{"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":""}