{"version":3,"file":"scripts/chunks/src_widgets_subscription-pop-up_subscription-pop-up_js.4c2da25058f804b9ac42.js","mappings":"mLAUA,SAASA,EAAkBC,GACzB,MAAMC,EAAOC,KACbD,EAAKD,GAAKG,EAAEH,GACZC,EAAKG,IAAO,oBACZH,EAAKI,MAAQJ,EAAKD,GAAGM,KAAK,aAE1BL,EAAKM,0BAA4B,WAE/B,OADwBC,SAASC,EAAAA,EAAQC,IAAK,sCACpB,CAC5B,EAEAT,EAAKU,MAAQ,WACX,IAAIC,EAAkBJ,SAASC,EAAAA,EAAQC,IAAK,qCAC5CE,EAAkB,EAAIA,IAAqBA,EAAkB,EAE7DH,EAAAA,EAAQI,IAAK,mCAAmC,EAAG,CACjDC,QAAS,IACTC,KAAM,MAGRd,EAAKI,MAAMA,MAAM,OACnB,EAEAJ,EAAKe,WAAa,KAChBf,EAAKI,MAAMC,KAAK,eAAeW,OAAM,SAAUC,GAC7CA,EAAMC,iBACNlB,EAAKU,OACP,IAEAV,EAAKI,MAAMC,KAAK,uCAAuCW,OAAM,SAAUC,GAErEjB,EAAKU,OACP,GAAE,EAGJV,EAAKmB,KAAO,WAMNnB,EAAKM,8BAMac,OAAOC,IAAIC,UAAUC,0BAA0B,wBAOnEvB,EAAKe,aACLf,EAAKwB,wBANLJ,OAAOC,IAAII,aAAaC,UAAU,gBAAgB,SAAUC,GAC1D3B,EAAKe,aACLf,EAAKwB,sBACP,IAKJ,EAEAxB,EAAKwB,qBAAuB,KAI1B,IAAII,GAAmB,EAGvB,IAAIC,EADgB3B,EAAE,iDAIV4B,GAAG,SAAS,KACtBC,QAAQC,IAAI,wBACRH,IACFI,aAAaJ,GACbA,EAAa,KACf,IAIFT,OAAOc,iBAAiB,UAAU,KAEhC,IAAKN,GAAoBR,OAAOe,SAnBV,IAmBsC,CAG1D,GAFAP,GAAmB,EAEf5B,EAAKM,4BACP,OAGF2B,aAAaJ,GACb7B,EAAKI,MACFA,MAAM,CACLgC,UAAU,IAEXhC,MAAM,OAEX,KAGF,IAAIiC,EAAY9B,SAASL,EAAE,+BAA+BoC,KAAK,sBAAuB,EAClFD,IACFR,EAAaU,YAAW,WAClBvC,EAAKM,6BAGTN,EAAKI,MACFA,MAAM,CACLgC,UAAU,IAEXhC,MAAM,OACX,GAAe,IAAZiC,GAKL,CAEJ,CA3HAG,QAAQC,IAAI,CAAC,uFAAuCC,MAAK,KAEvDxC,EAAE,+BAA+ByC,MAAK,SAAUC,EAAG7C,GACjDG,EAAEH,GAAI4B,KAAK,SAAU,IAAI7B,EAAkBC,IAC3CG,EAAEH,GAAI4B,KAAK,UAAUR,MACvB,GAAE,G","sources":["webpack://disp0001/./src/widgets/subscription-pop-up/subscription-pop-up.js"],"sourcesContent":["import Cookies from 'js-cookie'\r\n\r\nPromise.all([import('./subscription-pop-up.scss')]).then(() => {\r\n\r\n $('.widget.subscription-pop-up').each(function (i, el) {\r\n $(el).data('widget', new SubscriptionPopUp(el))\r\n $(el).data('widget').init()\r\n })\r\n})\r\n\r\nfunction SubscriptionPopUp(el) {\r\n const self = this\r\n self.el = $(el)\r\n self.uid = `SubscriptionPopUp`\r\n self.modal = self.el.find('.ui.modal')\r\n\r\n self.hasReachedAppearanceLimit = function () {\r\n const appearanceCount = parseInt(Cookies.get(`SubscriptionPopUpAppearanceCount`))\r\n return appearanceCount >= 1\r\n }\r\n\r\n self.close = function () {\r\n let appearanceCount = parseInt(Cookies.get(`SubscriptionPopUpAppearanceCount`))\r\n appearanceCount > 0 ? appearanceCount++ : (appearanceCount = 1)\r\n\r\n Cookies.set(`SubscriptionPopUpAppearanceCount`, 1, {\r\n expires: 365, // in days\r\n path: '/',\r\n })\r\n\r\n self.modal.modal('hide')\r\n }\r\n\r\n self.setupPopup = () => {\r\n self.modal.find('.close.icon').click(function (event) {\r\n event.preventDefault()\r\n self.close()\r\n })\r\n\r\n self.modal.find('.subscription-btn.js-modal-cta-link').click(function (event) {\r\n //event.preventDefault()\r\n self.close()\r\n })\r\n }\r\n\r\n self.init = function () {\r\n if (process.env.NODE_ENV === 'development') {\r\n console.log('SubscriptionPopUp init', self)\r\n }\r\n\r\n // Check if we should show the modal on page load\r\n if (self.hasReachedAppearanceLimit()) return\r\n\r\n\r\n // If the user has not accepted GDPR, we want to wait for them to action that before initializing the rest of the popup\r\n\r\n\r\n var hasAcceptedGDPR = window.dbs.utilities.getLocalStorageWithExpiry('gdprConsentAccepted');\r\n if (!hasAcceptedGDPR) {\r\n window.dbs.globalEvents.subscribe('gdprAccepted', function (data) {\r\n self.setupPopup();\r\n self.setupEventsAndTimers();\r\n });\r\n } else {\r\n self.setupPopup();\r\n self.setupEventsAndTimers();\r\n }\r\n }\r\n\r\n self.setupEventsAndTimers = () => {\r\n // Set the threshold in pixels\r\n const scrollThreshold = 1000;\r\n // Flag to ensure the action only happens once\r\n let thresholdReached = false;\r\n\r\n const searchInput = $('.search-form-container input[name=\"location\"]')\r\n let popupTimer;\r\n\r\n // Add focus event listener to remove the delayed popup\r\n searchInput.on('focus', () => {\r\n console.log('Input field focused!');\r\n if (popupTimer) {\r\n clearTimeout(popupTimer);\r\n popupTimer = null;\r\n }\r\n });\r\n\r\n // Scroll listener, if the user scrolls past the threshhold, show it\r\n window.addEventListener('scroll', () => {\r\n // If we haven't reached threshold yet and now we have\r\n if (!thresholdReached && window.scrollY >= scrollThreshold) {\r\n thresholdReached = true;\r\n\r\n if (self.hasReachedAppearanceLimit()) {\r\n return;\r\n }\r\n\r\n clearTimeout(popupTimer); // clear timed popup\r\n self.modal\r\n .modal({\r\n closable: false,\r\n })\r\n .modal('show')\r\n\r\n }\r\n });\r\n\r\n let waitTimer = parseInt($('.widget.subscription-pop-up').attr('data-wait-timer')) || false\r\n if (waitTimer) {\r\n popupTimer = setTimeout(function () {\r\n if (self.hasReachedAppearanceLimit()) {\r\n return;\r\n }\r\n self.modal\r\n .modal({\r\n closable: false,\r\n })\r\n .modal('show');\r\n }, waitTimer * 1000) // * 1000 for seconds\r\n } else {\r\n if (process.env.NODE_ENV === 'development') {\r\n console.warn('No wait timer found!')\r\n }\r\n }\r\n }\r\n}\r\n"],"names":["SubscriptionPopUp","el","self","this","$","uid","modal","find","hasReachedAppearanceLimit","parseInt","Cookies","get","close","appearanceCount","set","expires","path","setupPopup","click","event","preventDefault","init","window","dbs","utilities","getLocalStorageWithExpiry","setupEventsAndTimers","globalEvents","subscribe","data","thresholdReached","popupTimer","on","console","log","clearTimeout","addEventListener","scrollY","closable","waitTimer","attr","setTimeout","Promise","all","then","each","i"],"sourceRoot":""}