{
  "version": 3,
  "sources": ["/cdn/shop/t/29/assets/popup-component.js?x=1792575486972"],
  "sourcesContent": ["function triggerAfterScroll(offset = 500, trigger) {\n\tlet opened = false\n\tconst start = scrollY\n\twindow.addEventListener('scroll', (e) => {\n\t\tlet scrollTop = window.pageYOffset || (document.documentElement || document.body.parentNode || document.body).scrollTop\n\t\tif (scrollTop - start > offset && !opened) {\n\t\t\ttrigger()\n\t\t\topened = true\n\t\t\treturn\n\t\t}\n\t})\n}\n\nfunction triggerAfterDelay(delay = 5, trigger) {\n\tsetTimeout(() => trigger(), parseInt(delay) * 1000)\n}\n\nfunction exitIntent(trigger) {\n\tfunction onMouseOut(event) {\n\t\t// If the mouse is near the top of the window, show the popup\n\t\t// Also, do NOT trigger when hovering or clicking on selects\n\t\tconst shouldShowExitIntent =\n\t\t\t!event.toElement &&\n\t\t\t!event.relatedTarget &&\n\t\t\tevent.clientY < 50 &&\n\t\t\tevent.target.nodeName.toLowerCase() !== 'select'\n\n\t\tif (shouldShowExitIntent) {\n\t\t\t// Remove this event listener\n\t\t\tdocument.removeEventListener('mouseout', onMouseOut)\n\t\t\t// Show the popup\n\t\t\ttrigger()\n\t\t}\n\t}\n\n\tdocument.addEventListener('mouseout', onMouseOut)\n}\n\nfunction setRepeatOpen(saveKey, saveValue, repeat) {\n\tlet expires\n\tswitch (repeat) {\n\t\tcase 'no_repeat':\n\t\t\texpires = 365\n\t\t\tbreak\n\t\tcase 'every_3_mins':\n\t\t\texpires = 3/60/24\n\t\t\tbreak\n\t\tcase 'every_5_mins':\n\t\t\texpires = 5/60/24\n\t\t\tbreak\n\t\tcase 'every_10_mins':\n\t\t\texpires = 1/6/24\n\t\t\tbreak\n\t\tcase 'every_15_mins':\n\t\t\texpires = 15/60/24\n\t\t\tbreak\n\t\tcase 'every_30_mins':\n\t\t\texpires = 1/2/24\n\t\t\tbreak\n\t\tcase 'every_1_hr':\n\t\t\texpires = 1/24\n\t\t\tbreak\n\t\tcase 'every_6_hrs':\n\t\t\texpires = 6/24\n\t\t\tbreak\n\t\tcase 'every_12_hrs':\n\t\t\texpires = 1/2\n\t\t\tbreak\n\t\tcase 'every_day':\n\t\t\texpires = 1\n\t\t\tbreak\n\t\tcase 'every_3_days':\n\t\t\texpires = 3\n\t\t\tbreak\n\t\tcase 'every_week':\n\t\t\texpires = 7\n\t\t\tbreak\n\t\tcase 'every_2_week':\n\t\t\texpires = 14\n\t\t\tbreak\n\t\tcase 'every_month':\n\t\t\texpires = 30\n\t\t\tbreak\n\t\tdefault:\n\t\t\texpires = 7\n\t\t\tbreak\n\t}\n\tsetCookie(saveKey, JSON.stringify(saveValue), expires)\n}\n\nfunction copyToClipboard(value, button, text) {\n\tnavigator.clipboard.writeText(value)\n\tif (button) {\n\t\tbutton.classList.add('copied')\n\t\tif (text) button.innerText = text\n\t}\n}\n\nclass Popup extends HTMLElement{\n\tstatic get observedAttributes() {\n\t\treturn ['data-trigger-open', 'data-repeat-open']\n\t}\n\tconstructor() {\n\t\tsuper()\n\n\t\tthis.triggerOpen = this.dataset.triggerOpen\n\t\tthis.repeatOpen = this.dataset.repeatOpen\n\t\tthis.saveKey = '__foxtheme_popup'\n\n\t\tthis.handleOpen()\n\t\tthis.handleClose()\n\t\tthis.handleCopy()\n\n\t\tthis.addEventListener('keyup', (e) => {\n\t\t\tif (e.code.toUpperCase() === 'ESCAPE') {\n\t\t\t\tthis.close()\n\t\t\t}\n\t\t})\n\n\t\tthis.elementToFocus = this.querySelector('[role=\"dialog\"]')\n\t}\n\n\treset() {\n\t\tif (window.FoxThemeSettings.designMode) {\n\t\t\tlet cookieData = getCookie(this.saveKey)\n\t\t\tif (cookieData) {\n\t\t\t\tsetCookie(this.saveKey, '')\n\t\t\t}\n\t\t}\n\t}\n\n\topen(opener) {\n\t\tthis.openedBy = opener\n\t\tthis.setAttribute('open', 'true')\n\t\tdocument.body.classList.add('prevent-scroll')\n\t\tdocument.body.style.paddingRight = getScrollbarWidth() + 'px';\n\t\ttrapFocus(this, this.elementToFocus)\n\t\tif (!window.FoxThemeSettings.designMode) {\n\t\t\tsetRepeatOpen(this.saveKey, {opened: true}, this.repeatOpen)\n\t\t}\n\t}\n\n\tclose(e) {\n\t\tif (e) {\n\t\t\te.preventDefault()\n\t\t}\n\t\tremoveTrapFocus(this.openedBy)\n\t\tthis.setAttribute('closing', 'true')\n\t\tsetTimeout(() => {\n\t\t\tthis.removeAttribute('open')\n\t\t\tthis.removeAttribute('closing')\n\t\t\tdocument.body.classList.remove('prevent-scroll')\n\t\t\tdocument.body.style.paddingRight = ''\n\t\t}, 300)\n\t}\n\n\thandleOpen() {\n\t\tif (window.FoxThemeSettings.designMode) return\n\n\t\t// FrenchyCorner: reopen the popup after a successful sign-up so the visitor sees the thank-you message\n\t\tif (window.location.hash === '#ContactSubscribe-Popup' && window.location.search.indexOf('customer_posted=true') !== -1) {\n\t\t\tthis.open()\n\t\t\treturn\n\t\t}\n\n\t\tlet cookieData = getCookie(this.saveKey)\n\t\tif (cookieData) cookieData = JSON.parse(cookieData)\n\n\t\t// Don't show popup\n\t\tif (cookieData && cookieData.opened) {\n\t\t\treturn false\n\t\t}\n\n\t\tif (this.triggerOpen === 'delay') {\n\t\t\t// FrenchyCorner: 5 seconds (theme default was 10)\n\t\t\ttriggerAfterDelay(5, this.open.bind(this))\n\t\t} else if (this.triggerOpen === 'scroll_down') {\n\t\t\ttriggerAfterScroll(700, this.open.bind(this))\n\t\t} else if (this.triggerOpen === 'exit_intent' && !FoxThemeSettings.isMobile) {\n\t\t\texitIntent(this.open.bind(this))\n\t\t} else {\n\t\t\tthis.open()\n\t\t}\n\t}\n\n\thandleClose() {\n\t\taddEventDelegate({\n\t\t\tselector: 'popup-component',\n\t\t\thandler: (e) => {\n\t\t\t\tif (!e) return false;\n\t\t\t\tif (e.target === this || e.target.closest('.f-popup__close')) {\n\t\t\t\t\tthis.close(e)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n\n\thandleCopy() {\n\t\taddEventDelegate({\n\t\t\tcontext: this,\n\t\t\tselector: '.btn-apply',\n\t\t\thandler: async (e, target) => {\n\t\t\t\te.preventDefault()\n\t\t\t\tconst code = target.dataset.code\n\t\t\t\tif (code) copyToClipboard(code, target)\n\t\t\t}\n\t\t})\n\t}\n}\n\ncustomElements.define('popup-component', Popup)\n\nclass TeaserButton extends HTMLElement {\n\tconstructor() {\n\t\tsuper()\n\t\tconst popup = document.querySelector('popup-component')\n\t\tif (popup) {\n\t\t\tthis.querySelector('button').addEventListener('click', () => popup.open(this.querySelector('button')))\n\t\t}\n\t}\n}\ncustomElements.define('teaser-button', TeaserButton)\n"],
  "mappings": "AAAA,SAAS,mBAAmB,OAAS,IAAK,QAAS,CAClD,IAAI,OAAS,GACb,MAAM,MAAQ,QACd,OAAO,iBAAiB,SAAW,GAAM,CAExC,IADgB,OAAO,cAAgB,SAAS,iBAAmB,SAAS,KAAK,YAAc,SAAS,MAAM,WAC9F,MAAQ,QAAU,CAAC,OAAQ,CAC1C,QAAQ,EACR,OAAS,GACT,MACD,CACD,CAAC,CACF,CAEA,SAAS,kBAAkB,MAAQ,EAAG,QAAS,CAC9C,WAAW,IAAM,QAAQ,EAAG,SAAS,KAAK,EAAI,GAAI,CACnD,CAEA,SAAS,WAAW,QAAS,CAC5B,SAAS,WAAW,MAAO,CAIzB,CAAC,MAAM,WACP,CAAC,MAAM,eACP,MAAM,QAAU,IAChB,MAAM,OAAO,SAAS,YAAY,IAAM,WAIxC,SAAS,oBAAoB,WAAY,UAAU,EAEnD,QAAQ,EAEV,CAEA,SAAS,iBAAiB,WAAY,UAAU,CACjD,CAEA,SAAS,cAAc,QAAS,UAAW,OAAQ,CAClD,IAAI,QACJ,OAAQ,OAAQ,CACf,IAAK,YACJ,QAAU,IACV,MACD,IAAK,eACJ,QAAU,EAAE,GAAG,GACf,MACD,IAAK,eACJ,QAAU,EAAE,GAAG,GACf,MACD,IAAK,gBACJ,QAAU,EAAE,EAAE,GACd,MACD,IAAK,gBACJ,QAAU,GAAG,GAAG,GAChB,MACD,IAAK,gBACJ,QAAU,EAAE,EAAE,GACd,MACD,IAAK,aACJ,QAAU,EAAE,GACZ,MACD,IAAK,cACJ,QAAU,EAAE,GACZ,MACD,IAAK,eACJ,QAAU,EAAE,EACZ,MACD,IAAK,YACJ,QAAU,EACV,MACD,IAAK,eACJ,QAAU,EACV,MACD,IAAK,aACJ,QAAU,EACV,MACD,IAAK,eACJ,QAAU,GACV,MACD,IAAK,cACJ,QAAU,GACV,MACD,QACC,QAAU,EACV,KACF,CACA,UAAU,QAAS,KAAK,UAAU,SAAS,EAAG,OAAO,CACtD,CAEA,SAAS,gBAAgB,MAAO,OAAQ,KAAM,CAC7C,UAAU,UAAU,UAAU,KAAK,EAC/B,SACH,OAAO,UAAU,IAAI,QAAQ,EACzB,OAAM,OAAO,UAAY,MAE/B,CAEA,MAAM,cAAc,WAAW,CAC9B,WAAW,oBAAqB,CAC/B,MAAO,CAAC,oBAAqB,kBAAkB,CAChD,CACA,aAAc,CACb,MAAM,EAEN,KAAK,YAAc,KAAK,QAAQ,YAChC,KAAK,WAAa,KAAK,QAAQ,WAC/B,KAAK,QAAU,mBAEf,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,KAAK,iBAAiB,QAAU,GAAM,CACjC,EAAE,KAAK,YAAY,IAAM,UAC5B,KAAK,MAAM,CAEb,CAAC,EAED,KAAK,eAAiB,KAAK,cAAc,iBAAiB,CAC3D,CAEA,OAAQ,CACH,OAAO,iBAAiB,YACV,UAAU,KAAK,OAAO,GAEtC,UAAU,KAAK,QAAS,EAAE,CAG7B,CAEA,KAAK,OAAQ,CACZ,KAAK,SAAW,OAChB,KAAK,aAAa,OAAQ,MAAM,EAChC,SAAS,KAAK,UAAU,IAAI,gBAAgB,EAC5C,SAAS,KAAK,MAAM,aAAe,kBAAkB,EAAI,KACzD,UAAU,KAAM,KAAK,cAAc,EAC9B,OAAO,iBAAiB,YAC5B,cAAc,KAAK,QAAS,CAAC,OAAQ,EAAI,EAAG,KAAK,UAAU,CAE7D,CAEA,MAAM,EAAG,CACJ,GACH,EAAE,eAAe,EAElB,gBAAgB,KAAK,QAAQ,EAC7B,KAAK,aAAa,UAAW,MAAM,EACnC,WAAW,IAAM,CAChB,KAAK,gBAAgB,MAAM,EAC3B,KAAK,gBAAgB,SAAS,EAC9B,SAAS,KAAK,UAAU,OAAO,gBAAgB,EAC/C,SAAS,KAAK,MAAM,aAAe,EACpC,EAAG,GAAG,CACP,CAEA,YAAa,CACZ,GAAI,OAAO,iBAAiB,WAAY,OAGxC,GAAI,OAAO,SAAS,OAAS,2BAA6B,OAAO,SAAS,OAAO,QAAQ,sBAAsB,IAAM,GAAI,CACxH,KAAK,KAAK,EACV,MACD,CAEA,IAAI,WAAa,UAAU,KAAK,OAAO,EAIvC,GAHI,aAAY,WAAa,KAAK,MAAM,UAAU,GAG9C,YAAc,WAAW,OAC5B,MAAO,GAGJ,KAAK,cAAgB,QAExB,kBAAkB,EAAG,KAAK,KAAK,KAAK,IAAI,CAAC,EAC/B,KAAK,cAAgB,cAC/B,mBAAmB,IAAK,KAAK,KAAK,KAAK,IAAI,CAAC,EAClC,KAAK,cAAgB,eAAiB,CAAC,iBAAiB,SAClE,WAAW,KAAK,KAAK,KAAK,IAAI,CAAC,EAE/B,KAAK,KAAK,CAEZ,CAEA,aAAc,CACb,iBAAiB,CAChB,SAAU,kBACV,QAAU,GAAM,CACf,GAAI,CAAC,EAAG,MAAO,IACX,EAAE,SAAW,MAAQ,EAAE,OAAO,QAAQ,iBAAiB,IAC1D,KAAK,MAAM,CAAC,CAEd,CACD,CAAC,CACF,CAEA,YAAa,CACZ,iBAAiB,CAChB,QAAS,KACT,SAAU,aACV,QAAS,MAAO,EAAG,SAAW,CAC7B,EAAE,eAAe,EACjB,MAAM,KAAO,OAAO,QAAQ,KACxB,MAAM,gBAAgB,KAAM,MAAM,CACvC,CACD,CAAC,CACF,CACD,CAEA,eAAe,OAAO,kBAAmB,KAAK,EAE9C,MAAM,qBAAqB,WAAY,CACtC,aAAc,CACb,MAAM,EACN,MAAM,MAAQ,SAAS,cAAc,iBAAiB,EAClD,OACH,KAAK,cAAc,QAAQ,EAAE,iBAAiB,QAAS,IAAM,MAAM,KAAK,KAAK,cAAc,QAAQ,CAAC,CAAC,CAEvG,CACD,CACA,eAAe,OAAO,gBAAiB,YAAY",
  "names": []
}
