{"version":3,"sources":["wishlist.js","../../vendor/soho/wishlists/resources/javascript/wishlist.js"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","_regeneratorRuntime","e","t","r","Object","n","hasOwnProperty","defineProperty","value","i","a","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","toPrimitive","String","Number","asyncGeneratorStep","_asyncToGenerator","_next","_throw","Dialog","window","delegateEvent","root","eventName","selector","handler","addEventListener","_e$target","target","closest","contains","getWishlistId","elm","wishlist","document","querySelector","dataset","wishlistUuid","wishlistURL","uuid","URL","concat","location","origin","updateWishlist","_ref","_callee","response","body","_context","fetch","headers","URLSearchParams","wishlist_name","credentials","redirect","json","ok","cause","status","_x","_x2","shareWishlist","_ref2","_callee2","_body$payload","_shareDialog$querySel","url","shareDialog","_context2","searchParams","set","payload","html","HTMLElement","innerHTML","render","modifiers","callback","btn","content","_e$target$closest","preventDefault","link","navigator","clipboard","writeText","textElm","innerText","_x3","errorAlert","message","duration","undefined","alertBox","createElement","assign","style","position","top","left","transform","background","color","padding","zIndex","textContent","appendChild","setTimeout","remove","getWishlistElements","wishlistBanner","wishlistTitle","mediaQuery","matchMedia","matches","_current$target","current","opened","id","indexOf","close","_getWishlistElements","isEditable","setAttribute","focus","_ref3","_callee3","_context3","_x4","_ref4","_callee4","_body$payload$count","_window$Soho","count","basketCount","quickBasketWrap","_context4","stopPropagation","href","result","Soho","flyout","load","scrollToTop","dispatchEvent","CustomEvent","detail","popupHtml","basketUrl","t0","console","error","_x5","_x6","_ref5","_callee5","_getWishlistElements2","title","original","listName","optionElm","_context5","removeAttribute","pathname","_x7","updateEmbeddedWishlistItem","product","option","_product$closest","key","sku","querySelectorAll","active","classList","add","wishlistButton","productLink","removeLink","search","hash","initEmbeddedWishlistListings","listing","embeddedWishlistInitialised","event","defaultPrevented","readyState"],"mappings":"AAAA,SAASA,QAAQC,GAAgC,OAAOD,QAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBC,QAAUD,EAAEG,cAAgBF,QAAUD,IAAMC,OAAOG,UAAY,gBAAkBJ,CAAG,EAAGD,QAAQC,EAAI,CAC7T,SAASK,sBAAwB,aCAjCA,oBAAA,WAAA,OAAAC,CAAA,EAAA,IAAAC,EAAAD,EAAA,CAAA,EAAAE,EAAAC,OAAAL,UAAAM,EAAAF,EAAAG,eAAAX,EAAAS,OAAAG,gBAAA,SAAAL,EAAAD,EAAAE,GAAAD,EAAAD,GAAAE,EAAAK,KAAA,EAAAC,EAAA,mBAAAb,OAAAA,OAAA,CAAA,EAAAc,EAAAD,EAAAZ,UAAA,aAAAc,EAAAF,EAAAG,eAAA,kBAAAC,EAAAJ,EAAAK,aAAA,gBAAA,SAAAC,EAAAb,EAAAD,EAAAE,GAAA,OAAAC,OAAAG,eAAAL,EAAAD,EAAA,CAAAO,MAAAL,EAAAa,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAhB,EAAAD,EAAA,CAAA,IAAAc,EAAA,CAAA,EAAA,GAAA,CAAA,MAAAb,GAAAa,EAAA,SAAAb,EAAAD,EAAAE,GAAA,OAAAD,EAAAD,GAAAE,CAAA,CAAA,CAAA,SAAAgB,EAAAjB,EAAAD,EAAAE,EAAAE,GAAA,IAAAI,EAAAR,GAAAA,EAAAF,qBAAAqB,EAAAnB,EAAAmB,EAAAV,EAAAN,OAAAiB,OAAAZ,EAAAV,WAAAY,EAAA,IAAAW,EAAAjB,GAAA,IAAA,OAAAV,EAAAe,EAAA,UAAA,CAAAF,MAAAe,EAAArB,EAAAC,EAAAQ,KAAAD,CAAA,CAAA,SAAAc,EAAAtB,EAAAD,EAAAE,GAAA,IAAA,MAAA,CAAAsB,KAAA,SAAAC,IAAAxB,EAAAyB,KAAA1B,EAAAE,GAAA,CAAA,MAAAD,GAAA,MAAA,CAAAuB,KAAA,QAAAC,IAAAxB,EAAA,CAAA,CAAAD,EAAAkB,KAAAA,EAAA,IAAAS,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,YAAAC,EAAA,YAAAC,EAAA,CAAA,EAAA,SAAAZ,IAAA,CAAA,SAAAa,IAAA,CAAA,SAAAC,IAAA,CAAA,IAAAC,EAAA,CAAA,EAAApB,EAAAoB,EAAAzB,GAAA,WAAA,OAAA0B,IAAA,IAAA,IAAAC,EAAAjC,OAAAkC,eAAAC,EAAAF,GAAAA,EAAAA,EAAAG,EAAA,MAAAD,GAAAA,IAAApC,GAAAE,EAAAsB,KAAAY,EAAA7B,KAAAyB,EAAAI,GAAA,IAAAE,EAAAP,EAAAnC,UAAAqB,EAAArB,UAAAK,OAAAiB,OAAAc,GAAA,SAAAO,EAAAxC,GAAA,CAAA,OAAA,QAAA,UAAAyC,SAAA,SAAA1C,GAAAc,EAAAb,EAAAD,GAAA,SAAAC,GAAA,OAAAkC,KAAAQ,QAAA3C,EAAAC,EAAA,GAAA,GAAA,CAAA,SAAA2C,EAAA3C,EAAAD,GAAA,SAAA6C,EAAA3C,EAAAR,EAAAc,EAAAC,GAAA,IAAAC,EAAAa,EAAAtB,EAAAC,GAAAD,EAAAP,GAAA,GAAA,UAAAgB,EAAAc,KAAA,CAAA,IAAAZ,EAAAF,EAAAe,IAAAE,EAAAf,EAAAL,MAAA,OAAAoB,GAAA,UAAAlC,QAAAkC,IAAAvB,EAAAsB,KAAAC,EAAA,WAAA3B,EAAA8C,QAAAnB,EAAAoB,SAAAC,MAAA,SAAA/C,GAAA4C,EAAA,OAAA5C,EAAAO,EAAAC,EAAA,IAAA,SAAAR,GAAA4C,EAAA,QAAA5C,EAAAO,EAAAC,EAAA,IAAAT,EAAA8C,QAAAnB,GAAAqB,MAAA,SAAA/C,GAAAW,EAAAL,MAAAN,EAAAO,EAAAI,EAAA,IAAA,SAAAX,GAAA,OAAA4C,EAAA,QAAA5C,EAAAO,EAAAC,EAAA,GAAA,CAAAA,EAAAC,EAAAe,IAAA,CAAA,IAAAvB,EAAAR,EAAAyC,KAAA,UAAA,CAAA5B,MAAA,SAAAN,EAAAG,GAAA,SAAA6C,IAAA,OAAA,IAAAjD,GAAA,SAAAA,EAAAE,GAAA2C,EAAA5C,EAAAG,EAAAJ,EAAAE,EAAA,GAAA,CAAA,OAAAA,EAAAA,EAAAA,EAAA8C,KAAAC,EAAAA,GAAAA,GAAA,GAAA,CAAA,SAAA3B,EAAAtB,EAAAE,EAAAE,GAAA,IAAAV,EAAAiC,EAAA,OAAA,SAAAnB,EAAAC,GAAA,GAAAf,IAAAmC,EAAA,MAAAqB,MAAA,gCAAA,GAAAxD,IAAAoC,EAAA,CAAA,GAAA,UAAAtB,EAAA,MAAAC,EAAA,MAAA,CAAAF,MAAAN,EAAAkD,MAAA,EAAA,CAAA,IAAA/C,EAAAgD,OAAA5C,EAAAJ,EAAAqB,IAAAhB,IAAA,CAAA,IAAAC,EAAAN,EAAAiD,SAAA,GAAA3C,EAAA,CAAA,IAAAE,EAAA0C,EAAA5C,EAAAN,GAAA,GAAAQ,EAAA,CAAA,GAAAA,IAAAmB,EAAA,SAAA,OAAAnB,CAAA,CAAA,CAAA,GAAA,SAAAR,EAAAgD,OAAAhD,EAAAmD,KAAAnD,EAAAoD,MAAApD,EAAAqB,SAAA,GAAA,UAAArB,EAAAgD,OAAA,CAAA,GAAA1D,IAAAiC,EAAA,MAAAjC,EAAAoC,EAAA1B,EAAAqB,IAAArB,EAAAqD,kBAAArD,EAAAqB,IAAA,KAAA,WAAArB,EAAAgD,QAAAhD,EAAAsD,OAAA,SAAAtD,EAAAqB,KAAA/B,EAAAmC,EAAA,IAAAK,EAAAX,EAAAvB,EAAAE,EAAAE,GAAA,GAAA,WAAA8B,EAAAV,KAAA,CAAA,GAAA9B,EAAAU,EAAA+C,KAAArB,EAAAF,EAAAM,EAAAT,MAAAM,EAAA,SAAA,MAAA,CAAAxB,MAAA2B,EAAAT,IAAA0B,KAAA/C,EAAA+C,KAAA,CAAA,UAAAjB,EAAAV,OAAA9B,EAAAoC,EAAA1B,EAAAgD,OAAA,QAAAhD,EAAAqB,IAAAS,EAAAT,IAAA,CAAA,CAAA,CAAA,SAAA6B,EAAAtD,EAAAE,GAAA,IAAAE,EAAAF,EAAAkD,OAAA1D,EAAAM,EAAAJ,SAAAQ,GAAA,GAAAV,IAAAO,EAAA,OAAAC,EAAAmD,SAAA,KAAA,UAAAjD,GAAAJ,EAAAJ,SAAA+D,SAAAzD,EAAAkD,OAAA,SAAAlD,EAAAuB,IAAAxB,EAAAqD,EAAAtD,EAAAE,GAAA,UAAAA,EAAAkD,SAAA,WAAAhD,IAAAF,EAAAkD,OAAA,QAAAlD,EAAAuB,IAAA,IAAAmC,UAAA,oCAAAxD,EAAA,aAAA2B,EAAA,IAAAvB,EAAAe,EAAA7B,EAAAM,EAAAJ,SAAAM,EAAAuB,KAAA,GAAA,UAAAjB,EAAAgB,KAAA,OAAAtB,EAAAkD,OAAA,QAAAlD,EAAAuB,IAAAjB,EAAAiB,IAAAvB,EAAAmD,SAAA,KAAAtB,EAAA,IAAAtB,EAAAD,EAAAiB,IAAA,OAAAhB,EAAAA,EAAA0C,MAAAjD,EAAAF,EAAA6D,YAAApD,EAAAF,MAAAL,EAAA4D,KAAA9D,EAAA+D,QAAA,WAAA7D,EAAAkD,SAAAlD,EAAAkD,OAAA,OAAAlD,EAAAuB,IAAAxB,GAAAC,EAAAmD,SAAA,KAAAtB,GAAAtB,GAAAP,EAAAkD,OAAA,QAAAlD,EAAAuB,IAAA,IAAAmC,UAAA,oCAAA1D,EAAAmD,SAAA,KAAAtB,EAAA,CAAA,SAAAiC,EAAA/D,GAAA,IAAAD,EAAA,CAAAiE,OAAAhE,EAAA,IAAA,KAAAA,IAAAD,EAAAkE,SAAAjE,EAAA,IAAA,KAAAA,IAAAD,EAAAmE,WAAAlE,EAAA,GAAAD,EAAAoE,SAAAnE,EAAA,IAAAkC,KAAAkC,WAAAC,KAAAtE,EAAA,CAAA,SAAAuE,EAAAtE,GAAA,IAAAD,EAAAC,EAAAuE,YAAA,CAAA,EAAAxE,EAAAwB,KAAA,gBAAAxB,EAAAyB,IAAAxB,EAAAuE,WAAAxE,CAAA,CAAA,SAAAqB,EAAApB,GAAAkC,KAAAkC,WAAA,CAAA,CAAAJ,OAAA,SAAAhE,EAAAyC,QAAAsB,EAAA7B,MAAAA,KAAAsC,OAAA,EAAA,CAAA,SAAAlC,EAAAvC,GAAA,GAAAA,GAAA,KAAAA,EAAA,CAAA,IAAAE,EAAAF,EAAAS,GAAA,GAAAP,EAAA,OAAAA,EAAAwB,KAAA1B,GAAA,GAAA,mBAAAA,EAAA8D,KAAA,OAAA9D,EAAA,IAAA0E,MAAA1E,EAAA2E,QAAA,CAAA,IAAAjF,GAAA,EAAAc,EAAA,SAAAsD,IAAA,OAAApE,EAAAM,EAAA2E,QAAA,GAAAvE,EAAAsB,KAAA1B,EAAAN,GAAA,OAAAoE,EAAAvD,MAAAP,EAAAN,GAAAoE,EAAAX,MAAA,EAAAW,EAAA,OAAAA,EAAAvD,MAAAN,EAAA6D,EAAAX,MAAA,EAAAW,CAAA,EAAA,OAAAtD,EAAAsD,KAAAtD,CAAA,CAAA,CAAA,MAAA,IAAAoD,UAAAnE,QAAAO,GAAA,mBAAA,CAAA,OAAAgC,EAAAlC,UAAAmC,EAAAvC,EAAA8C,EAAA,cAAA,CAAAjC,MAAA0B,EAAAjB,cAAA,IAAAtB,EAAAuC,EAAA,cAAA,CAAA1B,MAAAyB,EAAAhB,cAAA,IAAAgB,EAAA4C,YAAA9D,EAAAmB,EAAArB,EAAA,qBAAAZ,EAAA6E,oBAAA,SAAA5E,GAAA,IAAAD,EAAA,mBAAAC,GAAAA,EAAAJ,YAAA,QAAAG,IAAAA,IAAAgC,GAAA,uBAAAhC,EAAA4E,aAAA5E,EAAA8E,MAAA,EAAA9E,EAAA+E,KAAA,SAAA9E,GAAA,OAAAE,OAAA6E,eAAA7E,OAAA6E,eAAA/E,EAAAgC,IAAAhC,EAAAgF,UAAAhD,EAAAnB,EAAAb,EAAAW,EAAA,sBAAAX,EAAAH,UAAAK,OAAAiB,OAAAoB,GAAAvC,CAAA,EAAAD,EAAAkF,MAAA,SAAAjF,GAAA,MAAA,CAAA8C,QAAA9C,EAAA,EAAAwC,EAAAG,EAAA9C,WAAAgB,EAAA8B,EAAA9C,UAAAY,GAAA,WAAA,OAAAyB,IAAA,IAAAnC,EAAA4C,cAAAA,EAAA5C,EAAAmF,MAAA,SAAAlF,EAAAC,EAAAE,EAAAV,EAAAc,QAAA,IAAAA,IAAAA,EAAA4E,SAAA,IAAA3E,EAAA,IAAAmC,EAAA1B,EAAAjB,EAAAC,EAAAE,EAAAV,GAAAc,GAAA,OAAAR,EAAA6E,oBAAA3E,GAAAO,EAAAA,EAAAqD,OAAAd,MAAA,SAAA/C,GAAA,OAAAA,EAAAkD,KAAAlD,EAAAM,MAAAE,EAAAqD,MAAA,GAAA,EAAArB,EAAAD,GAAA1B,EAAA0B,EAAA5B,EAAA,aAAAE,EAAA0B,EAAA/B,GAAA,WAAA,OAAA0B,IAAA,IAAArB,EAAA0B,EAAA,YAAA,WAAA,MAAA,oBAAA,IAAAxC,EAAAqF,KAAA,SAAApF,GAAA,IAAAD,EAAAG,OAAAF,GAAAC,EAAA,GAAA,IAAA,IAAAE,KAAAJ,EAAAE,EAAAoE,KAAAlE,GAAA,OAAAF,EAAAoF,UAAA,SAAAxB,IAAA,KAAA5D,EAAAyE,QAAA,CAAA,IAAA1E,EAAAC,EAAAqF,MAAA,GAAAtF,KAAAD,EAAA,OAAA8D,EAAAvD,MAAAN,EAAA6D,EAAAX,MAAA,EAAAW,CAAA,CAAA,OAAAA,EAAAX,MAAA,EAAAW,CAAA,CAAA,EAAA9D,EAAAuC,OAAAA,EAAAlB,EAAAvB,UAAA,CAAAD,YAAAwB,EAAAoD,MAAA,SAAAzE,GAAA,GAAAmC,KAAAqD,KAAA,EAAArD,KAAA2B,KAAA,EAAA3B,KAAAoB,KAAApB,KAAAqB,MAAAvD,EAAAkC,KAAAgB,MAAA,EAAAhB,KAAAkB,SAAA,KAAAlB,KAAAiB,OAAA,OAAAjB,KAAAV,IAAAxB,EAAAkC,KAAAkC,WAAA3B,QAAA6B,IAAAvE,EAAA,IAAA,IAAAE,KAAAiC,KAAA,MAAAjC,EAAAuF,OAAA,IAAArF,EAAAsB,KAAAS,KAAAjC,KAAAwE,OAAAxE,EAAAwF,MAAA,MAAAvD,KAAAjC,GAAAD,EAAA,EAAA0F,KAAA,WAAAxD,KAAAgB,MAAA,EAAA,IAAAlD,EAAAkC,KAAAkC,WAAA,GAAAG,WAAA,GAAA,UAAAvE,EAAAuB,KAAA,MAAAvB,EAAAwB,IAAA,OAAAU,KAAAyD,IAAA,EAAAnC,kBAAA,SAAAzD,GAAA,GAAAmC,KAAAgB,KAAA,MAAAnD,EAAA,IAAAE,EAAAiC,KAAA,SAAA0D,EAAAzF,EAAAV,GAAA,OAAAe,EAAAe,KAAA,QAAAf,EAAAgB,IAAAzB,EAAAE,EAAA4D,KAAA1D,EAAAV,IAAAQ,EAAAkD,OAAA,OAAAlD,EAAAuB,IAAAxB,KAAAP,CAAA,CAAA,IAAA,IAAAA,EAAAyC,KAAAkC,WAAAM,OAAA,EAAAjF,GAAA,IAAAA,EAAA,CAAA,IAAAc,EAAA2B,KAAAkC,WAAA3E,GAAAe,EAAAD,EAAAgE,WAAA,GAAA,SAAAhE,EAAAyD,OAAA,OAAA4B,EAAA,OAAA,GAAArF,EAAAyD,QAAA9B,KAAAqD,KAAA,CAAA,IAAA9E,EAAAN,EAAAsB,KAAAlB,EAAA,YAAAI,EAAAR,EAAAsB,KAAAlB,EAAA,cAAA,GAAAE,GAAAE,EAAA,CAAA,GAAAuB,KAAAqD,KAAAhF,EAAA0D,SAAA,OAAA2B,EAAArF,EAAA0D,UAAA,GAAA,GAAA/B,KAAAqD,KAAAhF,EAAA2D,WAAA,OAAA0B,EAAArF,EAAA2D,WAAA,MAAA,GAAAzD,GAAA,GAAAyB,KAAAqD,KAAAhF,EAAA0D,SAAA,OAAA2B,EAAArF,EAAA0D,UAAA,OAAA,CAAA,IAAAtD,EAAA,MAAAsC,MAAA,0CAAA,GAAAf,KAAAqD,KAAAhF,EAAA2D,WAAA,OAAA0B,EAAArF,EAAA2D,WAAA,CAAA,CAAA,CAAA,EAAAT,OAAA,SAAAzD,EAAAD,GAAA,IAAA,IAAAE,EAAAiC,KAAAkC,WAAAM,OAAA,EAAAzE,GAAA,IAAAA,EAAA,CAAA,IAAAR,EAAAyC,KAAAkC,WAAAnE,GAAA,GAAAR,EAAAuE,QAAA9B,KAAAqD,MAAApF,EAAAsB,KAAAhC,EAAA,eAAAyC,KAAAqD,KAAA9F,EAAAyE,WAAA,CAAA,IAAA3D,EAAAd,EAAA,KAAA,CAAA,CAAAc,IAAA,UAAAP,GAAA,aAAAA,IAAAO,EAAAyD,QAAAjE,GAAAA,GAAAQ,EAAA2D,aAAA3D,EAAA,MAAA,IAAAC,EAAAD,EAAAA,EAAAgE,WAAA,CAAA,EAAA,OAAA/D,EAAAe,KAAAvB,EAAAQ,EAAAgB,IAAAzB,EAAAQ,GAAA2B,KAAAiB,OAAA,OAAAjB,KAAA2B,KAAAtD,EAAA2D,WAAApC,GAAAI,KAAA2D,SAAArF,EAAA,EAAAqF,SAAA,SAAA7F,EAAAD,GAAA,GAAA,UAAAC,EAAAuB,KAAA,MAAAvB,EAAAwB,IAAA,MAAA,UAAAxB,EAAAuB,MAAA,aAAAvB,EAAAuB,KAAAW,KAAA2B,KAAA7D,EAAAwB,IAAA,WAAAxB,EAAAuB,MAAAW,KAAAyD,KAAAzD,KAAAV,IAAAxB,EAAAwB,IAAAU,KAAAiB,OAAA,SAAAjB,KAAA2B,KAAA,OAAA,WAAA7D,EAAAuB,MAAAxB,IAAAmC,KAAA2B,KAAA9D,GAAA+B,CAAA,EAAAgE,OAAA,SAAA9F,GAAA,IAAA,IAAAD,EAAAmC,KAAAkC,WAAAM,OAAA,EAAA3E,GAAA,IAAAA,EAAA,CAAA,IAAAE,EAAAiC,KAAAkC,WAAArE,GAAA,GAAAE,EAAAiE,aAAAlE,EAAA,OAAAkC,KAAA2D,SAAA5F,EAAAsE,WAAAtE,EAAAkE,UAAAG,EAAArE,GAAA6B,CAAA,CAAA,EAAAiE,MAAA,SAAA/F,GAAA,IAAA,IAAAD,EAAAmC,KAAAkC,WAAAM,OAAA,EAAA3E,GAAA,IAAAA,EAAA,CAAA,IAAAE,EAAAiC,KAAAkC,WAAArE,GAAA,GAAAE,EAAA+D,SAAAhE,EAAA,CAAA,IAAAG,EAAAF,EAAAsE,WAAA,GAAA,UAAApE,EAAAoB,KAAA,CAAA,IAAA9B,EAAAU,EAAAqB,IAAA8C,EAAArE,EAAA,CAAA,OAAAR,CAAA,CAAA,CAAA,MAAAwD,MAAA,wBAAA,EAAA+C,cAAA,SAAAjG,EAAAE,EAAAE,GAAA,OAAA+B,KAAAkB,SAAA,CAAAzD,SAAA2C,EAAAvC,GAAA6D,WAAA3D,EAAA6D,QAAA3D,GAAA,SAAA+B,KAAAiB,SAAAjB,KAAAV,IAAAxB,GAAA8B,CAAA,GAAA/B,CAAA,CAAA,SAAAkG,QAAAlG,EAAAE,GAAA,IAAAD,EAAAE,OAAAkF,KAAArF,GAAA,GAAAG,OAAAgG,sBAAA,CAAA,IAAAzG,EAAAS,OAAAgG,sBAAAnG,GAAAE,IAAAR,EAAAA,EAAA0G,QAAA,SAAAlG,GAAA,OAAAC,OAAAkG,yBAAArG,EAAAE,GAAAa,UAAA,KAAAd,EAAAqE,KAAAgC,MAAArG,EAAAP,EAAA,CAAA,OAAAO,CAAA,CAAA,SAAAsG,cAAAvG,GAAA,IAAA,IAAAE,EAAA,EAAAA,EAAAsG,UAAA7B,OAAAzE,IAAA,CAAA,IAAAD,EAAA,MAAAuG,UAAAtG,GAAAsG,UAAAtG,GAAA,CAAA,EAAAA,EAAA,EAAAgG,QAAA/F,OAAAF,IAAA,GAAAyC,SAAA,SAAAxC,GAAAuG,gBAAAzG,EAAAE,EAAAD,EAAAC,GAAA,IAAAC,OAAAuG,0BAAAvG,OAAAwG,iBAAA3G,EAAAG,OAAAuG,0BAAAzG,IAAAiG,QAAA/F,OAAAF,IAAAyC,SAAA,SAAAxC,GAAAC,OAAAG,eAAAN,EAAAE,EAAAC,OAAAkG,yBAAApG,EAAAC,GAAA,GAAA,CAAA,OAAAF,CAAA,CAAA,SAAAyG,gBAAAzG,EAAAE,EAAAD,GAAA,OAAAC,EAAA0G,eAAA1G,MAAAF,EAAAG,OAAAG,eAAAN,EAAAE,EAAA,CAAAK,MAAAN,EAAAc,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAjB,EAAAE,GAAAD,EAAAD,CAAA,CAAA,SAAA4G,eAAA3G,GAAA,IAAAO,EAAAqG,aAAA5G,EAAA,UAAA,MAAA,UAAAR,QAAAe,GAAAA,EAAAA,EAAA,EAAA,CAAA,SAAAqG,aAAA5G,EAAAC,GAAA,GAAA,UAAAT,QAAAQ,KAAAA,EAAA,OAAAA,EAAA,IAAAD,EAAAC,EAAAN,OAAAmH,aAAA,QAAA,IAAA9G,EAAA,CAAA,IAAAQ,EAAAR,EAAA0B,KAAAzB,EAAAC,GAAA,WAAA,GAAA,UAAAT,QAAAe,GAAA,OAAAA,EAAA,MAAA,IAAAoD,UAAA,+CAAA,CAAA,OAAA,WAAA1D,EAAA6G,OAAAC,QAAA/G,EAAA,CAAA,SAAAgH,mBAAA7G,EAAAH,EAAAD,EAAAE,EAAAR,EAAAe,EAAAC,GAAA,IAAA,IAAAF,EAAAJ,EAAAK,GAAAC,GAAAE,EAAAJ,EAAAD,KAAA,CAAA,MAAAH,GAAA,YAAAJ,EAAAI,EAAA,CAAAI,EAAA2C,KAAAlD,EAAAW,GAAAwE,QAAAtC,QAAAlC,GAAAoC,KAAA9C,EAAAR,EAAA,CAAA,SAAAwH,kBAAA9G,GAAA,OAAA,WAAA,IAAAH,EAAAkC,KAAAnC,EAAAwG,UAAA,OAAA,IAAApB,SAAA,SAAAlF,EAAAR,GAAA,IAAAe,EAAAL,EAAAkG,MAAArG,EAAAD,GAAA,SAAAmH,EAAA/G,GAAA6G,mBAAAxG,EAAAP,EAAAR,EAAAyH,EAAAC,EAAA,OAAAhH,EAAA,CAAA,SAAAgH,EAAAhH,GAAA6G,mBAAAxG,EAAAP,EAAAR,EAAAyH,EAAAC,EAAA,QAAAhH,EAAA,CAAA+G,OAAA,EAAA,GAAA,CAAA,CAMA,IAAAE,OAAAC,OAAAD,OAEAE,cAAA,SAAAC,EAAAC,EAAAC,EAAAC,GACAH,EAAAI,iBAAAH,GAAA,SAAAzH,GAAA,IAAA6H,EACAC,EAAA,QAAAD,EAAA7H,EAAA8H,cAAA,IAAAD,OAAA,EAAAA,EAAAE,QAAAL,GACAI,GAAAN,EAAAQ,SAAAF,IAIAH,EAAA3H,EAAA8H,EACA,GACA,EAEAG,cAAA,SAAAC,GACA,IAAAC,EAAAD,GAAAE,SAAAC,cAAA,aAEA,OAAAF,GAAAA,EAAAG,QAAAC,aAIAJ,EAAAG,QAAAC,aAHA,IAIA,EAEAC,YAAA,SAAAC,GAAA,OACA,IAAAC,IAAA,aAAAC,OAAAF,EAAA,IAAAE,OAAAF,GAAA,IAAAnB,OAAAsB,SAAAC,OAAA,EAEAC,eAAA,WAAA,IAAAC,EAAA7B,kBAAAnH,sBAAAgF,MAAA,SAAAiE,EAAAP,EAAA3D,GAAA,IAAAmE,EAAAC,EAAA,OAAAnJ,sBAAAmB,MAAA,SAAAiI,GAAA,cAAAA,EAAA3D,KAAA2D,EAAArF,MAAA,KAAA,EAAA,OAAAqF,EAAArF,KAAA,EACAsF,MAAA,cAAAT,OAAAF,GAAA,CACArF,OAAA,MACAiG,QAAA,CACA,eAAA,qCAEAH,KAAA,IAAAI,gBAAA,CACAC,cAAAzE,IAEA0E,YAAA,UACAC,SAAA,UACA,KAAA,EAVA,OAAAR,EAAAE,EAAA5F,KAAA4F,EAAArF,KAAA,EAYAmF,EAAAS,OAAA,KAAA,EAAA,GAAAR,EAAAC,EAAA5F,KAEA0F,EAAAU,GAAA,CAAAR,EAAArF,KAAA,EAAA,KAAA,CAAA,MACA,IAAAZ,MAAA,4BAAA,CACA0G,MAAArD,cAAA,CACAsD,OAAAZ,EAAAY,QACAX,KAEA,KAAA,EAAA,OAAAC,EAAAzF,OAAA,SAGAwF,GAAA,KAAA,EAAA,IAAA,MAAA,OAAAC,EAAAxD,OAAA,GAAAqD,EAAA,KACA,OAAA,SAzBAc,EAAAC,GAAA,OAAAhB,EAAAzC,MAAAnE,KAAAqE,UAAA,CAAA,CAAA,GA2BAwD,cAAA,WAAA,IAAAC,EAAA/C,kBAAAnH,sBAAAgF,MAAA,SAAAmF,EAAAzB,GAAA,IAAA0B,EAAAC,EAAAC,EAAApB,EAAAC,EAAAoB,EAAA,OAAAvK,sBAAAmB,MAAA,SAAAqJ,GAAA,cAAAA,EAAA/E,KAAA+E,EAAAzG,MAAA,KAAA,EAEA,OADAuG,EAAA,IAAA3B,IAAA,cAAAC,OAAAF,EAAA,UAAAnB,OAAAsB,SAAAC,SACA2B,aAAAC,IAAA,OAAA,KAAAF,EAAAzG,KAAA,EAEAsF,MAAAiB,EAAA,CACAjH,OAAA,MACAoG,YAAA,UACAC,SAAA,UACA,KAAA,EAJA,OAAAR,EAAAsB,EAAAhH,KAAAgH,EAAAzG,KAAA,EAMAmF,EAAAS,OAAA,KAAA,EAAA,GAAAR,EAAAqB,EAAAhH,KAEA0F,EAAAU,GAAA,CAAAY,EAAAzG,KAAA,GAAA,KAAA,CAAA,MACA,IAAAZ,MAAA,2BAAA,CACA0G,MAAArD,cAAA,CACAsD,OAAAZ,EAAAY,QACAX,KAEA,KAAA,GAAA,GAGA,QAHAiB,EAGAjB,EAAAwB,eAAA,IAAAP,GAAAA,EAAAQ,KAAA,CAAAJ,EAAAzG,KAAA,GAAA,KAAA,CAAA,OAAAyG,EAAA7G,OAAA,UAAA,KAAA,GAIA,IAAA4G,EAAAlC,SAAAC,cAAA,8BACAuC,YAAA,CAAAL,EAAAzG,KAAA,GAAA,KAAA,CAAA,OAAAyG,EAAA7G,OAAA,UAAA,KAAA,IAKA,QADA0G,EACAE,EAAAjC,cAAA,2BAAA,IAAA+B,EAAAA,EAAAE,GACAO,UAAA3B,EAAAwB,QAAAC,KAEAtD,OAAAyD,OAAA,kBAAA,CACAC,UAAA,CAAA,WAAA,WACAC,SAAA,WACA,IAAAC,EAAA9I,KAAA+I,QAAA7C,cAAA,iBAEA4C,aAAAL,aAIAK,EAAArD,iBAAA,SAAA,SAAA5H,GAAA,IAAAmL,EACAnL,EAAAoL,iBAEA,IAAAC,EACA,QADAF,EAAAnL,EAAA8H,OACAC,QAAA,qCAAA,IAAAoD,GACA,QADAA,EADAA,EAEA9C,cAAA,gBAAA,IAAA8C,OAAA,EAFAA,EAEA5K,MAEA,GAAA8K,EAAA,CAIAC,UAAAC,UAAAC,UAAAH,GAEA,IAAAI,EAAAR,EAAA5C,cAAA,QACAoD,IACAA,EAAAC,UAAA,SANA,CAQA,GACA,IACA,KAAA,GAAA,IAAA,MAAA,OAAAnB,EAAA5E,OAAA,GAAAuE,EAAA,KACA,OAAA,SA/DAyB,GAAA,OAAA1B,EAAA3D,MAAAnE,KAAAqE,UAAA,CAAA,CAAA,GAiEAoF,WAAA,SAAAC,GAAA,IAAAC,EAAAtF,UAAA7B,OAAA,QAAAoH,IAAAvF,UAAA,GAAAA,UAAA,GAAA,IACAwF,EAAA5D,SAAA6D,cAAA,OACA9L,OAAA+L,OAAAF,EAAAG,MAAA,CACAC,SAAA,QACAC,IAAA,OACAC,KAAA,MACAC,UAAA,mBACAC,WAAA,OACAC,MAAA,OACAC,QAAA,MACAC,OAAA,aAEAX,EAAAY,YAAAf,EACAzD,SAAAc,KAAA2D,YAAAb,GACAc,YAAA,WAAA,OAAAd,EAAAe,QAAA,GAAAjB,EACA,EAEAkB,oBAAA,WACA,IAAA7E,EAAAC,SAAAC,cAAA,aAEA,MAAA,CACAF,SAAAA,EACA8E,gBAAA9E,aAAA,EAAAA,EAAAE,cAAA,sBAAA,KACA6E,eACA/E,aAAA,EAAAA,EAAAE,cAAA,6BAAA,KAEA,EAEA8E,WAAA7F,OAAA8F,WAAA,sBAEAD,WAAAvF,iBAAA,UAAA,SAAA5H,GACA,IAAAA,EAAAqN,QAAA,CAAA,IAAAC,EACAC,EAAAlG,kBAAA,EAAAA,OAAAkG,QACAA,SAAAA,EAAAC,SAAA,QAAAF,EAAAC,EAAAzF,cAAA,IAAAwF,GAAA,QAAAA,EAAAA,EAAAG,UAAA,IAAAH,OAAA,EAAAA,EAAAI,QAAA,YAAA,GACArG,OAAAsG,OAEA,CACA,IAEApG,cAAAa,SAAA,QAAA,4BAAA,SAAApI,GACA,IAAA4N,EAAAZ,sBAAAC,EAAAW,EAAAX,eAAAC,EAAAU,EAAAV,cACAD,GAAAC,IAIAD,EAAA3E,QAAAuF,YAAA,EACAX,EAAAY,aAAA,mBAAA,GACAZ,EAAAa,QACA,IAEAxG,cAAAa,SAAA,QAAA,qBAAA,WAAA,IAAA4F,EAAA9G,kBAAAnH,sBAAAgF,MAAA,SAAAkJ,EAAAjO,GAAA,OAAAD,sBAAAmB,MAAA,SAAAgN,GAAA,cAAAA,EAAA1I,KAAA0I,EAAApK,MAAA,KAAA,EAAA,OAAAoK,EAAApK,KAAA,EACAkG,cAAA/B,iBAAA,KAAA,EAAA,IAAA,MAAA,OAAAiG,EAAAvI,OAAA,GAAAsI,EAAA,KACA,OAAA,SAAAE,GAAA,OAAAH,EAAA1H,MAAAnE,KAAAqE,UAAA,CAAA,CAFA,IAIAe,cAAAa,SAAA,QAAA,uBAAA,WAAA,IAAAgG,EAAAlH,kBAAAnH,sBAAAgF,MAAA,SAAAsJ,EAAArO,EAAA8H,GAAA,IAAAuC,EAAAiE,EAAAC,EAAAtF,EAAAC,EAAAsF,EAAAC,EAAAC,EAAA,OAAA3O,sBAAAmB,MAAA,SAAAyN,GAAA,cAAAA,EAAAnJ,KAAAmJ,EAAA7K,MAAA,KAAA,EAKA,OAJA9D,EAAAoL,iBACApL,EAAA4O,mBAEAvE,EAAA,IAAA3B,IAAAZ,EAAA+G,KAAAvH,OAAAsB,SAAAC,SACA2B,aAAAC,IAAA,OAAA,KAAAkE,EAAAnJ,KAAA,EAAAmJ,EAAA7K,KAAA,EAGAsF,MAAAiB,EAAA,CACAjH,OAAA,MACAoG,YAAA,UACAC,SAAA,QACAJ,QAAA,CACA,mBAAA,oBAEA,KAAA,EAPA,IAAAJ,EAAA0F,EAAApL,MASAoG,GAAA,CAAAgF,EAAA7K,KAAA,GAAA,KAAA,CAAA,MACA,IAAAZ,MAAA,oCAAA,CACA0G,MAAA,CACAC,OAAAZ,EAAAY,UAEA,KAAA,GAAA,OAAA8E,EAAA7K,KAAA,GAGAmF,EAAAS,OAAA,KAAA,GAAA,IAAAR,EAAAyF,EAAApL,MAEAuL,QAAA5F,EAAAwB,QAAA,CAAAiE,EAAA7K,KAAA,GAAA,KAAA,CAAA,MACA,IAAAZ,MAAA,0CAAA,KAAA,GAGAsL,EAAA,QAAAF,EAAApF,EAAAwB,QAAA8D,aAAA,IAAAF,EAAAA,EAAApF,EAAAwB,QAAA+D,aACAA,EAAArG,SAAAC,cACA,iDAEA0D,IAAAyC,IACAC,EAAA5D,UAAA2D,GAGA,QAAAD,EAAAjH,OAAAyH,YAAA,IAAAR,GAAAA,EAAAS,OACA1H,OAAAyH,KAAAC,OAAAC,KAAA,CAAAC,aAAA,IACAhG,EAAAwB,QAAAC,OAEA+D,EAAAtG,SAAAC,cAAA,2BAEAqG,EAAAS,cAAA,IAAAC,YAAA,mBAAA,CACAC,OAAA,CACAZ,YAAAD,EACAc,UAAApG,EAAAwB,QAAAC,SAMAzB,EAAAwB,QAAA6E,YACAjI,OAAAsB,SAAAiG,KAAA3F,EAAAwB,QAAA6E,WACAZ,EAAA7K,KAAA,GAAA,MAAA,KAAA,GAAA6K,EAAAnJ,KAAA,GAAAmJ,EAAAa,GAAAb,EAAA,MAAA,GAEAc,QAAAC,MAAA,oCAAAf,EAAAa,IAAA,KAAA,GAAA,IAAA,MAAA,OAAAb,EAAAhJ,OAAA,GAAA0I,EAAA,KAAA,CAAA,CAAA,EAAA,KAAA,KAEA,OAAA,SAAAsB,EAAAC,GAAA,OAAAxB,EAAA9H,MAAAnE,KAAAqE,UAAA,CAAA,CA5DA,IA8DAe,cAAAa,SAAA,QAAA,6BAAA,WAAA,IAAAyH,EAAA3I,kBAAAnH,sBAAAgF,MAAA,SAAA+K,EAAA9P,GAAA,IAAA+P,EAAA9C,EAAAC,EAAA8C,EAAAC,EAAAC,EAAAC,EAAA3B,EAAA,OAAAzO,sBAAAmB,MAAA,SAAAkP,GAAA,cAAAA,EAAA5K,KAAA4K,EAAAtM,MAAA,KAAA,EACA,GADAiM,EACA/C,sBAAAC,EAAA8C,EAAA9C,eAAAC,EAAA6C,EAAA7C,cACAD,GAAAC,EAAA,CAAAkD,EAAAtM,KAAA,EAAA,KAAA,CAAA,OAAAsM,EAAA1M,OAAA,UAAA,KAAA,EAOA,GAHAsM,EAAA/C,EAAA5E,cAAA,2BACA4H,EAAAhD,EAAA5E,cACA,+BAGA2H,GAAAC,EAAA,CAAAG,EAAAtM,KAAA,EAAA,KAAA,CAAA,OAAAsM,EAAA1M,OAAA,UAAA,KAAA,EAOA,cAHAuJ,EAAA3E,QAAAuF,WACAX,EAAAmD,gBAAA,mBAEAH,EAAAF,EAAApD,YAAAwD,EAAA5K,KAAA,GAAA4K,EAAAtM,KAAA,GAGAgF,eAAAb,gBAAAiI,GAAA,KAAA,GAAAE,EAAAtM,KAAA,GAAA,MAAA,KAAA,GAKA,OALAsM,EAAA5K,KAAA,GAAA4K,EAAAZ,GAAAY,EAAA,MAAA,IAEAX,QAAAC,MAAA,4BAAAU,EAAAZ,IACA5D,WAAA,gDAEAoE,EAAApD,YAAAqD,EAAA1P,MAAA6P,EAAA1M,OAAA,UAAA,KAAA,GAKAuM,EAAA1P,MAAAyP,EAAApD,aAGAuD,EAAAlD,EAAA5E,cAAA,WAAAM,OACAH,YAAAP,iBAAAqI,SAAA,YAGA9B,EAAA2B,EAAA9H,cAAA,QACA8H,EAAAvD,YAAAoD,EAAApD,YAAA,IAEA4B,GACA2B,EAAAtD,YAAA2B,IAEA,KAAA,GAAA,IAAA,MAAA,OAAA4B,EAAAzK,OAAA,GAAAmK,EAAA,KAAA,CAAA,CAAA,GAAA,KAAA,KACA,OAAA,SAAAS,GAAA,OAAAV,EAAAvJ,MAAAnE,KAAAqE,UAAA,CAAA,CA7CA,ID/OA,IAAAgK,2BAAA,SAAAC,EAAAC,GAAA,IAAAC,EACAC,EAAAF,EAAApI,QAAAsI,IACAC,EAAAH,EAAApI,QAAAuI,IAEA,GAAAD,EAAA,CAIAH,EAAAK,iBAAA,qCAAApO,SAAA,SAAAqO,GACAA,EAAAC,UAAAjE,OAAA,iBACA,IACA2D,EAAAM,UAAAC,IAAA,kBAEA,IAAAC,EAAAT,EAAApI,cAAA,oBACA6I,IACAA,EAAA5I,QAAAsI,IAAAA,EACAC,IACAK,EAAA5I,QAAAuI,IAAAA,IAIA,IAAAM,EAAAV,EAAApI,cAAA,6BACA8I,GAAAN,IACAM,EAAA7I,QAAAuI,IAAAA,GAGA,IAAAO,EAAA,QAAAT,EAAAF,EAAA1I,QAAA,6BAAA,IAAA4I,OAAA,EAAAA,EAAAtI,cAAA,+BACA,GAAA+I,EAAA,CACA,IAAA/G,EAAA,IAAA3B,IAAA0I,EAAAvC,KAAAvH,OAAAsB,SAAAC,QACAwB,EAAAG,aAAAC,IAAA,MAAAmG,GACAQ,EAAAvC,KAAA,GAAAlG,OAAA0B,EAAAiG,UAAA3H,OAAA0B,EAAAgH,QAAA1I,OAAA0B,EAAAiH,KACA,CAzBA,CA0BA,EAEAC,6BAAA,WACAnJ,SAAA0I,iBAAA,sBAAApO,SAAA,SAAA8O,GACAA,EAAAlJ,QAAAmJ,8BAIAD,EAAAlJ,QAAAmJ,4BAAA,OACAD,EAAA5J,iBAAA,SAAA,SAAA8J,GACA,IAAAhB,EAAAgB,EAAA5J,OAAAC,QAAA,gCAEA,GAAA2I,GAAAc,EAAAxJ,SAAA0I,IAAAA,EAAApI,QAAAsI,IAAA,CAIA,IAAAH,EAAAC,EAAA3I,QAAA,YACA0I,IAIAD,2BAAAC,EAAAC,GAEAA,EAAApI,QAAAuG,KACAvH,OAAAwF,YAAA,WACA4E,EAAAC,kBACArK,OAAAsB,SAAAsD,OAAAwE,EAAApI,QAAAuG,KAEA,GAAA,IAIA6C,EAAAtG,iBACAsG,EAAA9C,mBAnBA,CAoBA,IACA,GACA,EAEA,YAAAxG,SAAAwJ,WACAxJ,SAAAR,iBAAA,mBAAA2J,8BAEAA","file":"../../javascript/wishlist.js","sourcesContent":["// Wishlist entrypoint.\n//\n// This script is loaded on wishlist pages.\n//\n// the dialog module exposes itself globally as window.Dialog; we reference it\n// here rather than via a bare es import because this file is bundled (gulp-include\n// + terser) and served as a single module without an import map to resolve \"dialog\".\nconst Dialog = window.Dialog;\n\nconst delegateEvent = (root, eventName, selector, handler) => {\n    root.addEventListener(eventName, e => {\n        const target = e.target?.closest(selector);\n        if (!target || !root.contains(target)) {\n            return;\n        }\n\n        handler(e, target);\n    });\n};\n\nconst getWishlistId = elm => {\n    const wishlist = elm || document.querySelector('.wishlist');\n\n    if (!wishlist || !wishlist.dataset.wishlistUuid) {\n        return null;\n    }\n\n    return wishlist.dataset.wishlistUuid;\n};\n\nconst wishlistURL = uuid =>\n    new URL(`/wishlists${uuid ? `/${uuid}` : ''}`, window.location.origin);\n\nconst updateWishlist = async (uuid, name) => {\n    const response = await fetch(`/wishlists/${uuid}`, {\n        method: 'PUT',\n        headers: {\n            'Content-type': 'application/x-www-form-urlencoded',\n        },\n        body: new URLSearchParams({\n            wishlist_name: name,\n        }),\n        credentials: 'include',\n        redirect: 'error',\n    });\n\n    const body = await response.json();\n\n    if (!response.ok) {\n        throw new Error('Failed to update wishlist', {\n            cause: {\n                status: response.status,\n                ...body,\n            },\n        });\n    }\n\n    return body;\n};\n\nconst shareWishlist = async uuid => {\n    const url = new URL(`/wishlists/${uuid}/share`, window.location.origin);\n    url.searchParams.set('ajax', '1');\n\n    const response = await fetch(url, {\n        method: 'GET',\n        credentials: 'include',\n        redirect: 'error',\n    });\n\n    const body = await response.json();\n\n    if (!response.ok) {\n        throw new Error('Failed to share wishlist', {\n            cause: {\n                status: response.status,\n                ...body,\n            },\n        });\n    }\n\n    if (!body.payload?.html) {\n        return;\n    }\n\n    const shareDialog = document.querySelector('#wishlist-share');\n    if (!(shareDialog instanceof HTMLElement)) {\n        return;\n    }\n\n    const content =\n        shareDialog.querySelector('.dialog__content') ?? shareDialog;\n    content.innerHTML = body.payload.html;\n\n    Dialog.render('#wishlist-share', {\n        modifiers: ['wishlist', 'sidebar'],\n        callback: function () {\n            const btn = this.content.querySelector('.js-copy-text');\n\n            if (!(btn instanceof HTMLElement)) {\n                return;\n            }\n\n            btn.addEventListener('click', e => {\n                e.preventDefault();\n\n                const link = e.target\n                    .closest('.wishlist-dialog__form-row')\n                    ?.querySelector('input')?.value;\n\n                if (!link) {\n                    return;\n                }\n\n                navigator.clipboard.writeText(link);\n\n                const textElm = btn.querySelector('span');\n                if (textElm) {\n                    textElm.innerText = 'Copied';\n                }\n            });\n        },\n    });\n};\n\nconst errorAlert = (message, duration = 3000) => {\n    const alertBox = document.createElement('div');\n    Object.assign(alertBox.style, {\n        position: 'fixed',\n        top: '1rem',\n        left: '50%',\n        transform: 'translateX(-50%)',\n        background: '#333',\n        color: '#fff',\n        padding: '1em',\n        zIndex: 2147483647,\n    });\n    alertBox.textContent = message;\n    document.body.appendChild(alertBox);\n    setTimeout(() => alertBox.remove(), duration);\n};\n\nconst getWishlistElements = () => {\n    const wishlist = document.querySelector('.wishlist');\n\n    return {\n        wishlist,\n        wishlistBanner: wishlist?.querySelector('.wishlist-banner') || null,\n        wishlistTitle:\n            wishlist?.querySelector('.wishlist-banner__title') || null,\n    };\n};\n\nconst mediaQuery = window.matchMedia('(max-width: 750px)');\n\nmediaQuery.addEventListener('change', e => {\n    if (!e.matches) {\n        const current = Dialog?.current;\n        if (current?.opened && current.target?.id?.indexOf('mobile') > -1) {\n            Dialog.close();\n        }\n    }\n});\n\ndelegateEvent(document, 'click', `.js-wishlist-banner-edit`, e => {\n    const { wishlistBanner, wishlistTitle } = getWishlistElements();\n    if (!wishlistBanner || !wishlistTitle) {\n        return;\n    }\n\n    wishlistBanner.dataset.isEditable = true;\n    wishlistTitle.setAttribute('contenteditable', true);\n    wishlistTitle.focus();\n});\n\ndelegateEvent(document, 'click', `.js-share-wishlist`, async e => {\n    await shareWishlist(getWishlistId());\n});\n\ndelegateEvent(document, 'click', `.js-wishlist-add-all`, async (e, target) => {\n    e.preventDefault();\n    e.stopPropagation();\n\n    const url = new URL(target.href, window.location.origin);\n    url.searchParams.set('ajax', '1');\n\n    try {\n        const response = await fetch(url, {\n            method: 'GET',\n            credentials: 'include',\n            redirect: 'error',\n            headers: {\n                'X-Requested-With': 'XMLHttpRequest',\n            },\n        });\n\n        if (!response.ok) {\n            throw new Error('Failed to add all items to basket', {\n                cause: {\n                    status: response.status,\n                },\n            });\n        }\n\n        const body = await response.json();\n\n        if (!body.result || !body.payload) {\n            throw new Error('Invalid response from add-all endpoint');\n        }\n\n        const count = body.payload.count ?? body.payload.basketCount;\n        const basketCount = document.querySelector(\n            '.js-basket-count .header-action__count'\n        );\n        if (basketCount && count !== undefined) {\n            basketCount.innerHTML = count;\n        }\n\n        if (window.Soho?.flyout) {\n            window.Soho.flyout.load({ scrollToTop: true });\n        } else if (body.payload.html) {\n            // Fallback for non basket-v2 sites using the old quick-basket popup.\n            const quickBasketWrap = document.querySelector('.js-quick-basket__wrap');\n            if (quickBasketWrap) {\n                quickBasketWrap.dispatchEvent(new CustomEvent('wishlist.add-all', {\n                    detail: {\n                        basketCount: count,\n                        popupHtml: body.payload.html,\n                    },\n                }));\n            } else if (body.payload.basketUrl) {\n                window.location.href = body.payload.basketUrl;\n            }\n        } else if (body.payload.basketUrl) {\n            window.location.href = body.payload.basketUrl;\n        }\n    } catch (err) {\n        console.error('Failed to add all items to basket', err);\n    }\n});\n\ndelegateEvent(document, 'click', `.js-wishlist-banner-update`, async e => {\n    const { wishlistBanner, wishlistTitle } = getWishlistElements();\n    if (!wishlistBanner || !wishlistTitle) {\n        return;\n    }\n\n    const title = wishlistBanner.querySelector('.wishlist-banner__title');\n    const original = wishlistBanner.querySelector(\n        'input[name=\"wishlist-name\"]'\n    );\n\n    if (!title || !original) {\n        return;\n    }\n\n    delete wishlistBanner.dataset.isEditable;\n    wishlistTitle.removeAttribute('contenteditable');\n\n    const listName = title.textContent;\n\n    try {\n        await updateWishlist(getWishlistId(), listName);\n    } catch (e) {\n        console.error('Failed to update wishlist', e);\n        errorAlert('Failed to update wishlist. Please try again.');\n\n        title.textContent = original.value;\n        return;\n    }\n\n    //update input\n    original.value = title.textContent;\n\n    // update inner option label\n    const optionElm = wishlistBanner.querySelector(\n        `a[href=\"${wishlistURL(getWishlistId()).pathname}\"] p`\n    );\n    if (optionElm) {\n        const count = optionElm.querySelector('span');\n        optionElm.textContent = title.textContent + ' ';\n\n        if (count) {\n            optionElm.appendChild(count);\n        }\n    }\n});\n\n\nconst updateEmbeddedWishlistItem = (product, option) => {\n    const key = option.dataset.key;\n    const sku = option.dataset.sku;\n\n    if (!key) {\n        return;\n    }\n\n    product.querySelectorAll('.colour-selection .swatch--active').forEach(active => {\n        active.classList.remove('swatch--active');\n    });\n    option.classList.add('swatch--active');\n\n    const wishlistButton = product.querySelector('.js-wishlist-add');\n    if (wishlistButton) {\n        wishlistButton.dataset.key = key;\n        if (sku) {\n            wishlistButton.dataset.sku = sku;\n        }\n    }\n\n    const productLink = product.querySelector('a.product__link[data-sku]');\n    if (productLink && sku) {\n        productLink.dataset.sku = sku;\n    }\n\n    const removeLink = product.closest('.listing-item-wrap')?.querySelector('.listing-item__remove[href]');\n    if (removeLink) {\n        const url = new URL(removeLink.href, window.location.origin);\n        url.searchParams.set('key', key);\n        removeLink.href = `${url.pathname}${url.search}${url.hash}`;\n    }\n};\n\nconst initEmbeddedWishlistListings = () => {\n    document.querySelectorAll('.listing--embedded').forEach(listing => {\n        if (listing.dataset.embeddedWishlistInitialised) {\n            return;\n        }\n\n        listing.dataset.embeddedWishlistInitialised = 'true';\n        listing.addEventListener('click', event => {\n            const option = event.target.closest('.colour-selection [data-key]');\n\n            if (!option || !listing.contains(option) || !option.dataset.key) {\n                return;\n            }\n\n            const product = option.closest('.product');\n            if (!product) {\n                return;\n            }\n\n            updateEmbeddedWishlistItem(product, option);\n\n            if (option.dataset.href) {\n                window.setTimeout(() => {\n                    if (!event.defaultPrevented) {\n                        window.location.assign(option.dataset.href);\n                    }\n                }, 0);\n                return;\n            }\n\n            event.preventDefault();\n            event.stopPropagation();\n        });\n    });\n};\n\nif (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initEmbeddedWishlistListings);\n} else {\n    initEmbeddedWishlistListings();\n}\n","// Wishlist entrypoint.\n//\n// This script is loaded on wishlist pages.\n//\n// the dialog module exposes itself globally as window.Dialog; we reference it\n// here rather than via a bare es import because this file is bundled (gulp-include\n// + terser) and served as a single module without an import map to resolve \"dialog\".\nconst Dialog = window.Dialog;\n\nconst delegateEvent = (root, eventName, selector, handler) => {\n    root.addEventListener(eventName, e => {\n        const target = e.target?.closest(selector);\n        if (!target || !root.contains(target)) {\n            return;\n        }\n\n        handler(e, target);\n    });\n};\n\nconst getWishlistId = elm => {\n    const wishlist = elm || document.querySelector('.wishlist');\n\n    if (!wishlist || !wishlist.dataset.wishlistUuid) {\n        return null;\n    }\n\n    return wishlist.dataset.wishlistUuid;\n};\n\nconst wishlistURL = uuid =>\n    new URL(`/wishlists${uuid ? `/${uuid}` : ''}`, window.location.origin);\n\nconst updateWishlist = async (uuid, name) => {\n    const response = await fetch(`/wishlists/${uuid}`, {\n        method: 'PUT',\n        headers: {\n            'Content-type': 'application/x-www-form-urlencoded',\n        },\n        body: new URLSearchParams({\n            wishlist_name: name,\n        }),\n        credentials: 'include',\n        redirect: 'error',\n    });\n\n    const body = await response.json();\n\n    if (!response.ok) {\n        throw new Error('Failed to update wishlist', {\n            cause: {\n                status: response.status,\n                ...body,\n            },\n        });\n    }\n\n    return body;\n};\n\nconst shareWishlist = async uuid => {\n    const url = new URL(`/wishlists/${uuid}/share`, window.location.origin);\n    url.searchParams.set('ajax', '1');\n\n    const response = await fetch(url, {\n        method: 'GET',\n        credentials: 'include',\n        redirect: 'error',\n    });\n\n    const body = await response.json();\n\n    if (!response.ok) {\n        throw new Error('Failed to share wishlist', {\n            cause: {\n                status: response.status,\n                ...body,\n            },\n        });\n    }\n\n    if (!body.payload?.html) {\n        return;\n    }\n\n    const shareDialog = document.querySelector('#wishlist-share');\n    if (!(shareDialog instanceof HTMLElement)) {\n        return;\n    }\n\n    const content =\n        shareDialog.querySelector('.dialog__content') ?? shareDialog;\n    content.innerHTML = body.payload.html;\n\n    Dialog.render('#wishlist-share', {\n        modifiers: ['wishlist', 'sidebar'],\n        callback: function () {\n            const btn = this.content.querySelector('.js-copy-text');\n\n            if (!(btn instanceof HTMLElement)) {\n                return;\n            }\n\n            btn.addEventListener('click', e => {\n                e.preventDefault();\n\n                const link = e.target\n                    .closest('.wishlist-dialog__form-row')\n                    ?.querySelector('input')?.value;\n\n                if (!link) {\n                    return;\n                }\n\n                navigator.clipboard.writeText(link);\n\n                const textElm = btn.querySelector('span');\n                if (textElm) {\n                    textElm.innerText = 'Copied';\n                }\n            });\n        },\n    });\n};\n\nconst errorAlert = (message, duration = 3000) => {\n    const alertBox = document.createElement('div');\n    Object.assign(alertBox.style, {\n        position: 'fixed',\n        top: '1rem',\n        left: '50%',\n        transform: 'translateX(-50%)',\n        background: '#333',\n        color: '#fff',\n        padding: '1em',\n        zIndex: 2147483647,\n    });\n    alertBox.textContent = message;\n    document.body.appendChild(alertBox);\n    setTimeout(() => alertBox.remove(), duration);\n};\n\nconst getWishlistElements = () => {\n    const wishlist = document.querySelector('.wishlist');\n\n    return {\n        wishlist,\n        wishlistBanner: wishlist?.querySelector('.wishlist-banner') || null,\n        wishlistTitle:\n            wishlist?.querySelector('.wishlist-banner__title') || null,\n    };\n};\n\nconst mediaQuery = window.matchMedia('(max-width: 750px)');\n\nmediaQuery.addEventListener('change', e => {\n    if (!e.matches) {\n        const current = Dialog?.current;\n        if (current?.opened && current.target?.id?.indexOf('mobile') > -1) {\n            Dialog.close();\n        }\n    }\n});\n\ndelegateEvent(document, 'click', `.js-wishlist-banner-edit`, e => {\n    const { wishlistBanner, wishlistTitle } = getWishlistElements();\n    if (!wishlistBanner || !wishlistTitle) {\n        return;\n    }\n\n    wishlistBanner.dataset.isEditable = true;\n    wishlistTitle.setAttribute('contenteditable', true);\n    wishlistTitle.focus();\n});\n\ndelegateEvent(document, 'click', `.js-share-wishlist`, async e => {\n    await shareWishlist(getWishlistId());\n});\n\ndelegateEvent(document, 'click', `.js-wishlist-add-all`, async (e, target) => {\n    e.preventDefault();\n    e.stopPropagation();\n\n    const url = new URL(target.href, window.location.origin);\n    url.searchParams.set('ajax', '1');\n\n    try {\n        const response = await fetch(url, {\n            method: 'GET',\n            credentials: 'include',\n            redirect: 'error',\n            headers: {\n                'X-Requested-With': 'XMLHttpRequest',\n            },\n        });\n\n        if (!response.ok) {\n            throw new Error('Failed to add all items to basket', {\n                cause: {\n                    status: response.status,\n                },\n            });\n        }\n\n        const body = await response.json();\n\n        if (!body.result || !body.payload) {\n            throw new Error('Invalid response from add-all endpoint');\n        }\n\n        const count = body.payload.count ?? body.payload.basketCount;\n        const basketCount = document.querySelector(\n            '.js-basket-count .header-action__count'\n        );\n        if (basketCount && count !== undefined) {\n            basketCount.innerHTML = count;\n        }\n\n        if (window.Soho?.flyout) {\n            window.Soho.flyout.load({ scrollToTop: true });\n        } else if (body.payload.html) {\n            // Fallback for non basket-v2 sites using the old quick-basket popup.\n            const quickBasketWrap = document.querySelector('.js-quick-basket__wrap');\n            if (quickBasketWrap) {\n                quickBasketWrap.dispatchEvent(new CustomEvent('wishlist.add-all', {\n                    detail: {\n                        basketCount: count,\n                        popupHtml: body.payload.html,\n                    },\n                }));\n            } else if (body.payload.basketUrl) {\n                window.location.href = body.payload.basketUrl;\n            }\n        } else if (body.payload.basketUrl) {\n            window.location.href = body.payload.basketUrl;\n        }\n    } catch (err) {\n        console.error('Failed to add all items to basket', err);\n    }\n});\n\ndelegateEvent(document, 'click', `.js-wishlist-banner-update`, async e => {\n    const { wishlistBanner, wishlistTitle } = getWishlistElements();\n    if (!wishlistBanner || !wishlistTitle) {\n        return;\n    }\n\n    const title = wishlistBanner.querySelector('.wishlist-banner__title');\n    const original = wishlistBanner.querySelector(\n        'input[name=\"wishlist-name\"]'\n    );\n\n    if (!title || !original) {\n        return;\n    }\n\n    delete wishlistBanner.dataset.isEditable;\n    wishlistTitle.removeAttribute('contenteditable');\n\n    const listName = title.textContent;\n\n    try {\n        await updateWishlist(getWishlistId(), listName);\n    } catch (e) {\n        console.error('Failed to update wishlist', e);\n        errorAlert('Failed to update wishlist. Please try again.');\n\n        title.textContent = original.value;\n        return;\n    }\n\n    //update input\n    original.value = title.textContent;\n\n    // update inner option label\n    const optionElm = wishlistBanner.querySelector(\n        `a[href=\"${wishlistURL(getWishlistId()).pathname}\"] p`\n    );\n    if (optionElm) {\n        const count = optionElm.querySelector('span');\n        optionElm.textContent = title.textContent + ' ';\n\n        if (count) {\n            optionElm.appendChild(count);\n        }\n    }\n});\n"],"sourceRoot":"../../../../resources/javascript"}