{"version":3,"file":"dist/308.js","mappings":"sGAEO,SAASA,EAAwBC,GACpC,OAAOC,aAAaC,QAAQF,IAiBhC,SAAmBA,GACf,IACIG,GADQ,KAAOC,mBAAmBC,SAASC,SAC7BC,MAAM,KAAOP,EAAO,KACtC,GAAqB,IAAjBG,EAAMK,OAAc,OAAOL,EAAMM,MAAMF,MAAM,KAAKG,OAC1D,CArByCC,CAAUX,EACnD,CAEO,SAASY,EAAyBZ,EAAMa,EAAOC,GAC9CA,IACAA,EARyB,KAW7Bb,aAAac,QAAQf,EAAMa,GAe/B,SAAmBb,EAAMa,EAAOG,GAC5B,IAAIC,EAAc,IAAIC,KACtBD,EAAYE,QAAQF,EAAYG,UAAyB,GAAZJ,EAAiB,GAAK,GAAK,KACpEA,EAAY,WAAaC,EAAYI,cACzChB,SAASC,OAASN,EAAO,IAAMa,EAAQ,IAAMG,EAAY,SAC7D,CAnBIM,CAAUtB,EAAMa,EAAOC,EAC3B,CAEO,SAASS,EAA4BvB,GACxCC,aAAauB,WAAWxB,GAiB5B,SAAsBA,GAClBK,SAASC,OAASN,EAAO,mDAC7B,CAlBIyB,CAAazB,EACjB,CChBA,IAAI0B,EAAa,GACbC,EAAe,GAEZ,SAASC,IACZ,OAAOvB,SAASwB,KAAKC,UAAUC,SAAS,qBAC5C,CAiEO,SAASC,EAAYC,GAA0E,IAAnEC,EAAIC,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAAUE,EAAcF,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAAUG,EAAmBH,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GACxF,MAAMI,EAAUC,EAAWP,GAGrBQ,EAtDV,SAAmCF,GACjC,MAAMtB,EAAc,IAAIC,KAClBwB,EAAe,GAAGzB,EAAY0B,iBAAiB1B,EAAY2B,WAAa,IAExEC,EAAcC,KAAKC,MAAMhD,EAAwB,GAAGwC,eAAuB,uBAC3ES,EAAajD,EAAwBwC,GAG3C,GAAIM,EAAYI,OAASJ,EAAYI,QAAUP,GAA+B,WAAfM,EAG3D,OAFAzB,EAA4BgB,GAC5BhB,EAA4B,GAAGgB,eACxB,EAIX,IAAIW,EAAgB,IAAIhC,KAAK2B,EAAYK,eACzC,IAAKL,EAAYM,SAAWC,MAAMF,GAChC,GAAGL,EAAYK,gBAA6D,IAA5CL,EAAYK,cAAcG,QAAQ,KAAa,CAC3E,IAAIC,EAAYT,EAAYK,cAAc3C,MAAM,KAEzB,GAApB+C,EAAU9C,SACTe,EAA4BgB,GAC5BhB,EAA4B,GAAGgB,cAC/BgB,QAAQC,KAAK,yDAGjB,IAAIC,EAAOH,EAAU,GACjBL,EAA+B,GAAvBK,EAAU,GAAG9C,OAAc,IAAI8C,EAAU,KAAOA,EAAU,GAClEI,EAA6B,GAAvBJ,EAAU,GAAG9C,OAAc,IAAI8C,EAAU,KAAOA,EAAU,GACpEJ,EAAgB,IAAIhC,KAAK,GAAGuC,KAAQR,KAASS,KAC1CN,MAAMF,KACL3B,EAA4BgB,GAC5BhB,EAA4B,GAAGgB,cAC/BgB,QAAQC,KAAK,+DAErB,MACIjC,EAA4BgB,GAC5BhB,EAA4B,GAAGgB,cAC/BgB,QAAQC,KAAK,wDAInB,OADqBN,EAAcS,QAAQT,EAAcU,UAAY,GAClD3C,GAA8B,WAAf+B,GAA2BH,EAAYgB,MAAQ,IAC7EtC,EAA4BgB,IACrB,EAIb,CAMuBuB,CAA0BvB,GAE7C,GAAIL,EAAM,CASN,GARAD,EAAMH,UAAUiC,OAAO,QACvBC,GAAe,EAAO/B,GACtBP,EAAaA,EAAWuC,QAAOC,GAAKA,IAAMjC,IACtCN,EAAanB,OAAS,GACtBwB,EAAYL,EAAajB,SAAS,GAAO,GAIzC2B,EAAgB,CAGhB,GAD0D,eAArCtC,EAAwBwC,GAC3B,OAClB3B,EAAyB2B,EAASD,EAAsB,aAAe,SAC3E,CACA,MACJ,CAIA,GAAIG,IAAef,EAAWlB,OAI1B,OAHAyB,EAAMH,UAAUqC,IAAI,QACpBH,GAAe,EAAM/B,QACrBP,EAAW0C,KAAKnC,GAKpB,GAAIP,EAAWlB,OAAS,EAEpB,YADAmB,EAAayC,KAAKnC,GAKtB,MAAMe,EAAajD,EAAwBwC,GAC3C,GAAkB,UAAdS,GAEuBpB,IAKnB,OAHAoC,GAAe,EAAM/B,GACrBA,EAAMH,UAAUqC,IAAI,aACpBzC,EAAW0C,KAAKnC,GAMpB,CAAC,SAAU,cAAcoC,SAASrB,GAAc,MAEpDf,EAAMH,UAAUqC,IAAI,QACpBH,GAAe,EAAM/B,GACrBP,EAAW0C,KAAKnC,GACpB,CAEA,SAASO,EAAWP,GAChB,OAAOA,EAAMqC,aAAa,QAAS,IAAIpD,MAAOE,UAAUmD,UAC5D,CAEA,SAASC,EAAmBjC,GACxB,MAAMtB,EAAc,IAAIC,KAClBwB,EAAe,GAAGzB,EAAY0B,iBAAiB1B,EAAY2B,WAAa,IACxEM,EAAgBjC,EAAYwD,mBAAmB,SAErD,IAAI5B,EAAcC,KAAKC,MAAMhD,EAAwB,GAAGwC,eAAuB,MAW/E,OAVIM,EAAYI,QAAUP,IACtBG,EAAc,CAAEI,MAAOP,EAAcmB,MAAO,IAGhDhB,EAAYK,cAAgBA,EAE5BL,EAAYgB,QAEZjD,EAAyB,GAAG2B,aAAoBO,KAAK4B,UAAU7B,KAExD,CACX,CAEA,SAAS8B,EAAgB1C,GAAkC,IAA3B2C,EAAiBzC,UAAA3B,OAAA,QAAA4B,IAAAD,UAAA,IAAAA,UAAA,GAC7C,MAAM0C,EAAc5C,EAAM6C,cAAc,qBAEnCD,IACDD,EACAC,EAAYd,SAIhBc,EAAYE,iBAAiB,SAAS,KAElC,MAAMC,EAAeR,EAAmBhC,EAAWP,IAEnDD,EAAYC,GAAO,EAAM+C,EAAa,IAE9C,CAEA,SAAShB,EAAeiB,EAAMhD,GAC1B,MAAMiD,EAAa7E,SAASyE,cAAc,sBACpCK,EAAqBvD,IAC3B,GAAIK,EAAMH,UAAUC,SAAS,eAAgB,OAC7C,GAAIkD,EAAM,CACN,MAAMG,EAAW/E,SAASgF,cAAc,OAMxC,GALAD,EAAStD,UAAUqC,IAAI,iBAAiB,gCACxC9D,SAASwB,KAAKyD,YAAYF,GAE1BA,EAASG,MAAMC,OAAS,OAEpBL,EACA,OAaJ,OAVAC,EAASL,iBAAiB,SAAS,KAC/B,MAAMC,EAAeR,EAAmBhC,EAAWP,IAEnDD,EAAYC,GAAO,EAAM+C,GAEzBI,EAASrB,QAAQ,SAIjBmB,GAAYA,EAAWH,iBAAiB,SAASU,GAAKzD,EAAYC,GAAO,GAAM,KAEvF,CAEIiD,GAAYA,EAAWQ,oBAAoB,SAASD,GAAKzD,EAAYC,GAAO,GAAM,KACtF,MAAMmD,EAAW/E,SAASyE,cAAc,gDACpCM,GAAUA,EAASrB,QAC3B,CC7HA,SAAS4B,EAAqBpD,GAE1B,MAAMqD,EC7EH,SAAyCC,GAC5C,MACMC,EAAkB,IADGzF,SAAS0F,iBAAiB,yBACL9B,QAAO+B,IACnD,MAAMC,EAAgBD,EAAM1B,aAAa,yBAAyB/D,MAAM,KACxE,SAAI0F,GACgBA,EAAchC,QAAOC,GAAKA,IAAM2B,IACpCrF,OAAS,EAEb,IAEhB,OAAIsF,EAAgBtF,OAAS,GAAUsF,CAE3C,CDiE6BI,CAAgC3D,GACrDqD,GACAA,EAAiBO,SAAQjC,GAAKA,EAAEpC,UAAUqC,IAAI,cAIlD,MAAMiC,EAAiBxE,IACjBK,EAAQ5B,SAASgG,eAAe9D,GAClCN,GAASmE,GACKnE,EAAM8D,iBAAiB,KAC/BI,SAAQG,IACVA,EAAKC,gBAAgB,SAAS,IAGtC3F,EAAyB2B,EAAS,aF9FL,IE+FjC,CCnDAlC,SAAS0E,iBAAiB,oBA3B1B,WAC+B1E,SAAS0F,iBAAiB,wBAClCI,SAAQK,IACvB,MAAMC,EAAoBD,EAAalC,aAAa,wBACpD,IAAKmC,EAAmB,OACxB,MAAMC,EAAqBD,EAAkBlG,MAAM,KACnDmG,EAAmBP,SAAQQ,IACvB,MAAMC,EAAwB7G,EAAwB4G,GACjDF,GAA+C,eAA1BG,IAC1BJ,EAAa1E,UAAUqC,IAAI,YAMvC,SAA6CuC,GACzCA,EAAmBP,SAAQQ,IAEvB,GAD0D,eAArC5G,EAAwB4G,GAC3B,OAClB/F,EAAyB+F,EAAS,aHpCT,KGqCzB,MAAME,EAAexG,SAASgG,eAAeM,GACzCE,GACA7E,EAAY6E,GAAc,GAAM,EACpC,GAER,CAfYC,CAAoCJ,GAAmB,GACzD,GAEV,ICiCAK,OAAOC,uCAAyC,SAAUzE,GACxD,MAAMN,EAAQ5B,SAASgG,eAAe9D,GAClCN,GAAOD,EAAYC,GAAO,GAAM,EACtC,EFtDA,WAEI,IAAKgF,EAAE,gCAAgCzG,OACnC,OAEJ,MAAM0G,EAAiD,KAZ3D,WACE,MAAMC,EAAoB9G,SAASgG,eAAe,uBAClD,GAAKc,EAEL,OAAOA,EAAkBtG,KAC3B,CAOmCuG,GAC/BH,EAAE,oDAAoD/E,OACtD+E,EAAE,4DAA4DI,MAAK,WEjBhE,IAA8CC,GAoDrD,SAAyBrF,GACvB,MAAM4C,EAAc5C,EAAM6C,cAAc,qBACnCD,GAELA,EAAYE,iBAAiB,SAAS,KAClC/C,EAAYC,GAAO,GAAM,EAAK,GAEpC,EA1DE0C,CADmD2C,EFkBRC,MEhB3CvF,EAAYsF,EFiBV,IAEAL,EAAE,sDAAsDI,MAAK,WACzDJ,EAAEM,MAAMC,KAAK,qBAAqBC,OAAM,WACpCR,EAAEM,MAAMG,QAAQ,0BAA0BxF,MAC9C,GACJ,IACA,MAAMyF,EAAiCtH,SAAS0F,iBAAiB,sDACjEgB,OAAOpB,qBAAuBA,EAEzBuB,GACLS,EAA+BxB,SAASlE,IACpC,MAAM2F,EAAmBC,eAAe3H,QAAQ,wBAC1C4H,GAAgBF,GAAmBG,SAASH,GAAoB,EAEtE,GADsB3F,EAAMH,UAAUC,SAAS,kBACzB+F,EAAe,OAErC,MAAME,EA6DGjI,EAIjB,WACE,IAAIkI,EAAa5H,SAASyE,cAAc,2BAA4BjE,MAE/DoH,IACDA,EAAa5H,SAASyE,cAAc,wBAAyBjE,MAAMqH,eAEvE,IAAIC,EAAM,GACV,OAAQF,GACJ,IAAK,SACDE,EAAM,yBACN,MACJ,IAAK,QACDA,EAAM,uBACN,MACJ,IAAK,KACDA,EAAM,uBACN,MACJ,QACIA,EAAM,oBAId,OAAOA,CACT,CA5BcC,IA3DAC,GAAeL,GAASD,SAASC,GAAU,EAClB/F,EAAMH,UAAUC,SAAS,+BAC1BsG,IDhC/B,SAAyBpG,GACDL,IACN+C,EAAgB1C,GAAO,GAAQ0C,EAAgB1C,GAkMxE,SAAwBA,GAEpB,MAAMqG,EAAarG,EAAM6C,cAAc,gCACvC,GAAI7C,EAAMH,UAAUC,SAAS,gBAAkBuG,EAAY,CACvDA,EAAWvE,SACX,MAAMwE,EAAetG,EAAM6C,cAAc,wBACzCyD,GAAcC,sBAAsB,WAAYF,EACpD,CACJ,CAzMIG,CAAexG,GAEf,IAAIyG,EAAiB,EACrB,MAAMC,EAAU1G,EAAMqC,aAAa,gBAC/BqE,IAAYvF,MAAM2E,SAASY,MAC3BD,EAAiBX,SAASY,IAE9B5B,OAAO6B,YAAW,IAAM5G,EAAYC,IAAQ,IAAOyG,EACvD,CCuBQG,CAAgB5G,GAQxB,SAA0BA,GAEtB,MAAM6G,EAAO7G,EAAM6C,cAAc,QACjC,IAAKgE,EAAM,OAEX,MAAMC,EAAYD,EAAKhE,cAAc,qBAChCiE,GAELA,EAAUhE,iBAAiB,SAAS,SAASU,GACzCA,EAAEuD,iBAEFJ,YAAW,KACHE,EAAKhH,UAAUC,SAAS,sBAOhC6G,YAAW,KACP5G,EAAYC,GAAO,GAAM,GAAM,EAAK,GACrC,KAPC,GACD,IACP,GAOJ,CA9BQgH,CAAiBhH,GACAA,EAAM6C,cAAc,cExBtC,SAA4B7C,GAC/B,MAAMiH,EAAejH,EAAM8D,iBAAiB,6BAEtCoD,EAAelH,EAAM8D,iBAAiB,sBACtCqD,EAAanH,EAAM6C,cAAc,kCAClCsE,IAELF,EAAa/C,SAAQkD,IACqB,OAAlCA,EAAM/E,aAAa,YAAwB+E,EAAMC,UACjDD,EAAMC,SAAU,GAGpBD,EAAMC,SAAU,CAAK,IAGzBH,EAAahD,SAAQoD,IACjBA,EAAOxE,iBAAiB,SAAUU,KA9B1C,SAAyB+D,EAAOJ,GAC5B,MAAMK,EAAaD,EAAME,OAAOC,QAAQ,eAAe7E,cAAc,uBACrE,GAAK2E,IAELA,EAAWH,SAAU,EAEjBF,GAAY,CACZ,MAAMQ,EAAY3C,EAAEuC,EAAME,QAAQC,QAAQ,iBAC1CC,EAAUC,SAAS,0BACnBD,EAAUpC,KAAK,wBAAwBsC,YAAY,QAAQA,YAAY,QACvEV,EAAW3B,OACf,CACJ,CAmBUsC,CAAgBtE,EAAG2D,GACnB,MAAMY,EAAY/H,EAAM6C,cAAc,oBACjCkF,GAELpB,YAAW,MACWoB,EAAUC,gBACxBD,EAAUC,kBACVhD,EAAE+C,GAAWE,GAAG,cAEhBlI,EAAYC,GAAO,GAAM,GAAM,EACnC,GACD,KAAK,GACR,IAEV,CFLQkI,CAAmBlI,GAAM,GAEjC,CA2BAmI,E","sources":["webpack://vaneckweb/../Static/au/js/insights/src/override/sticky-gated-content/utils.js","webpack://vaneckweb/../Static/au/js/insights/src/override/sticky-gated-content/toggle-modal.js","webpack://vaneckweb/../Static/au/js/insights/src/override/sticky-gated-content/sticky-premium-form.js","webpack://vaneckweb/../Static/au/js/insights/src/override/sticky-gated-content/gated-content-block.js","webpack://vaneckweb/../Static/au/js/insights/src/override/sticky-gated-content/simple-sticky-premium-content.js"],"sourcesContent":["export const defaultExpireDays = 365;\r\n\r\nexport function getLocalStorageOrCookie(name) {\r\n    return localStorage.getItem(name) ?? getCookie(name);\r\n}\r\n\r\nexport function setLocalStorageAndCookie(name, value, cookieExpiresIn){\r\n    if(!cookieExpiresIn) {\r\n        cookieExpiresIn = defaultExpireDays;\r\n    }\r\n\r\n    localStorage.setItem(name, value);\r\n    setCookie(name, value, cookieExpiresIn)\r\n}\r\n\r\nexport function removeLocalStorageAndCookie(name) {\r\n    localStorage.removeItem(name);\r\n    removeCookie(name);\r\n}\r\n\r\nfunction getCookie(name) {\r\n    var value = \"; \" + decodeURIComponent(document.cookie);\r\n    var parts = value.split(\"; \" + name + \"=\");\r\n    if (parts.length === 2) return parts.pop().split(\";\").shift();\r\n}\r\n\r\nfunction setCookie(name, value, expiresIn) {\r\n    var currentDate = new Date();\r\n    currentDate.setTime(currentDate.getTime() + (expiresIn * 24 * 60 * 60 * 1000));\r\n    var expiresIn = \"expires=\" + currentDate.toUTCString();\r\n    document.cookie = name + \"=\" + value + \";\" + expiresIn + \";path=/\";\r\n}\r\n\r\nfunction removeCookie(name) {\r\n    document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\r\n}","import { getLocalStorageOrCookie, removeLocalStorageAndCookie, setLocalStorageAndCookie } from \"./utils\";\r\n\r\nlet openModals = [];\r\nlet queuedModals = [];\r\n\r\nexport function checkIfGatedContentPage() {\r\n    return document.body.classList.contains('gated-content-page');\r\n}\r\n\r\nexport function initialiseModal(modal) {\r\n    const isGatedContentPage = checkIfGatedContentPage();\r\n    isGatedContentPage ? bindCloseButton(modal, true) : bindCloseButton(modal);\r\n    moveDisclaimer(modal);\r\n    //get timeout\r\n    let timeoutSeconds = 8;\r\n    const timeout = modal.getAttribute('data-timeout');\r\n    if (timeout && !isNaN(parseInt(timeout))) {\r\n        timeoutSeconds = parseInt(timeout);\r\n    }\r\n    window.setTimeout(() => toggleModal(modal), 1000 * timeoutSeconds);\r\n}\r\n\r\nfunction checkAndHandleMonthChange(modalId) {\r\n  const currentDate = new Date();\r\n  const currentMonth = `${currentDate.getFullYear()}-${currentDate.getMonth() + 1}`;\r\n  \r\n  const closureData = JSON.parse(getLocalStorageOrCookie(`${modalId}_closures`) || '{ \"default\": true }');\r\n  const modalState = getLocalStorageOrCookie(modalId);\r\n\r\n  // show if we entered new month\r\n  if (closureData.month && closureData.month !== currentMonth && modalState === 'hidden') {\r\n      removeLocalStorageAndCookie(modalId);\r\n      removeLocalStorageAndCookie(`${modalId}_closures`);\r\n      return true;\r\n  }\r\n\r\n  // show if week has past in current month\r\n  let lastShownDate = new Date(closureData.lastShownDate);\r\n  if (!closureData.default && isNaN(lastShownDate)) {\r\n    if(closureData.lastShownDate && closureData.lastShownDate.indexOf(\"-\") !== -1) {\r\n        let dateParts = closureData.lastShownDate.split(\"-\");\r\n        // invalid settings stored\r\n        if(dateParts.length != 3){\r\n            removeLocalStorageAndCookie(modalId);\r\n            removeLocalStorageAndCookie(`${modalId}_closures`);\r\n            console.warn(\"Invalid closure date format, clearing modal closures\")\r\n        }\r\n\r\n        let year = dateParts[0];\r\n        let month = dateParts[1].length == 1 ? `0${dateParts[1]}` : dateParts[1];\r\n        let day = dateParts[2].length == 1 ? `0${dateParts[2]}` : dateParts[2];\r\n        lastShownDate = new Date(`${year}-${month}-${day}`);\r\n        if(isNaN(lastShownDate)){\r\n            removeLocalStorageAndCookie(modalId);\r\n            removeLocalStorageAndCookie(`${modalId}_closures`);\r\n            console.warn(\"Last shown date is not processable, clearing modal closures\")\r\n        }\r\n    } else {\r\n        removeLocalStorageAndCookie(modalId);\r\n        removeLocalStorageAndCookie(`${modalId}_closures`);\r\n        console.warn(\"Invalid closure date format, clearing modal closures\")\r\n    }\r\n  }\r\n  const nextShowDate = lastShownDate.setDate(lastShownDate.getDate() + 7);\r\n  if (nextShowDate < currentDate && modalState === 'hidden' && closureData.count < 3) {\r\n      removeLocalStorageAndCookie(modalId);\r\n      return true;\r\n  }\r\n\r\n  return false;\r\n}\r\n\r\nexport function toggleModal(modal, hide = false, neverShowAgain = false, setRegisteredStatus = false) {\r\n    const modalId = getModalId(modal);;\r\n\r\n    // Check for month change before doing anything else\r\n    const stateReset = checkAndHandleMonthChange(modalId);\r\n\r\n    if (hide) {\r\n        modal.classList.remove('show');\r\n        toggleBackDrop(false, modal);\r\n        openModals = openModals.filter(x => x !== modal);\r\n        if (queuedModals.length > 0) {\r\n            toggleModal(queuedModals.shift(), false, false);\r\n        }\r\n\r\n        //save in session storage, that the modal was closed.\r\n        if (neverShowAgain) {\r\n            //check if they have already registered first\r\n            const isRegistered = getLocalStorageOrCookie(modalId) === \"registered\";\r\n            if (isRegistered) return;\r\n            setLocalStorageAndCookie(modalId, setRegisteredStatus ? 'registered' : 'hidden');\r\n        }\r\n        return;\r\n    }\r\n\r\n    // If state was reset due to month change, we should show the modal\r\n    // also ensure we have only one modal open\r\n    if (stateReset && !openModals.length) {\r\n        modal.classList.add('show');\r\n        toggleBackDrop(true, modal);\r\n        openModals.push(modal);\r\n        return;\r\n    }\r\n\r\n    //see if a modal is already open\r\n    if (openModals.length > 0) {\r\n        queuedModals.push(modal);\r\n        return;\r\n    }\r\n\r\n    //check if the modal was closed before\r\n    const modalState = getLocalStorageOrCookie(modalId);\r\n    if (modalState == 'hidden') {\r\n        //if it was hidden, see if there is a gated content block, if so it should be force shown.\r\n        const isGatedContent = checkIfGatedContentPage();\r\n        if (isGatedContent) {\r\n            toggleBackDrop(true, modal);\r\n            modal.classList.add(\"show\");\r\n            openModals.push(modal);\r\n            return;\r\n        }\r\n    }\r\n\r\n    //if no gated content blocks, simply see if it was hidden or registed before.\r\n    if (['hidden', 'registered'].includes(modalState ?? '')) return;\r\n\r\n    modal.classList.add('show');\r\n    toggleBackDrop(true, modal);\r\n    openModals.push(modal);\r\n}\r\n\r\nfunction getModalId(modal) {\r\n    return modal.getAttribute('id') ?? new Date().getTime().toString();\r\n}\r\n\r\nfunction handleModalClosure(modalId) {\r\n    const currentDate = new Date();\r\n    const currentMonth = `${currentDate.getFullYear()}-${currentDate.getMonth() + 1}`;\r\n    const lastShownDate = currentDate.toLocaleDateString(\"en-US\");\r\n    \r\n    let closureData = JSON.parse(getLocalStorageOrCookie(`${modalId}_closures`) || '{}');\r\n    if (closureData.month !== currentMonth) {\r\n        closureData = { month: currentMonth, count: 0 };\r\n    }\r\n\r\n    closureData.lastShownDate = lastShownDate;\r\n    \r\n    closureData.count++;\r\n    \r\n    setLocalStorageAndCookie(`${modalId}_closures`, JSON.stringify(closureData));\r\n    \r\n    return true;\r\n}\r\n\r\nfunction bindCloseButton(modal, removeCloseButton = false) {\r\n    const closeButton = modal.querySelector('button.close-icon');\r\n\r\n    if (!closeButton) return;\r\n    if (removeCloseButton) {\r\n        closeButton.remove();\r\n        return;\r\n    }\r\n\r\n    closeButton.addEventListener('click', () => {\r\n        \r\n        const closeForever = handleModalClosure(getModalId(modal));\r\n        \r\n        toggleModal(modal, true, closeForever);\r\n    });\r\n}\r\n\r\nfunction toggleBackDrop(open, modal) {\r\n    const siteHeader = document.querySelector('header.site-header');\r\n    const isGatedContentPage = checkIfGatedContentPage();\r\n    if (modal.classList.contains('no-backdrop')) return;\r\n    if (open) {\r\n        const backdrop = document.createElement('div');\r\n        backdrop.classList.add('modal-backdrop','sticky-premium-form-backdrop');\r\n        document.body.appendChild(backdrop);\r\n\r\n        backdrop.style.zIndex = '1080';\r\n\r\n        if (isGatedContentPage) {\r\n            return;\r\n        }\r\n\r\n        backdrop.addEventListener('click', () => {\r\n            const closeForever = handleModalClosure(getModalId(modal));\r\n\r\n            toggleModal(modal, true, closeForever);\r\n\r\n            backdrop.remove();\r\n        });\r\n\r\n        // bind to the site header to close the modal\r\n        if (siteHeader) siteHeader.addEventListener(\"click\", e => toggleModal(modal, true, false));\r\n        return;\r\n    }\r\n\r\n    if (siteHeader) siteHeader.removeEventListener(\"click\", e => toggleModal(modal, true, false));\r\n    const backdrop = document.querySelector('.modal-backdrop.sticky-premium-form-backdrop');\r\n    if (backdrop) backdrop.remove();\r\n}\r\n\r\nfunction moveDisclaimer(modal) {\r\n    //copy the disclaimer to under the last text box if it is a large-modal.\r\n    const disclaimer = modal.querySelector('.subscribe-block__disclaimer');\r\n    if (modal.classList.contains('large-modal') && disclaimer) {\r\n        disclaimer.remove();\r\n        const emailTextBox = modal.querySelector('.FormTextbox  .Email');\r\n        emailTextBox?.insertAdjacentElement('afterend', disclaimer);\r\n    }\r\n}\r\n","import { getAssociatedGatedContentBlocks } from \"./gated-content-block\";\r\nimport { initialiseSimpleStickyPremiumContent, handleEpiFormSteps } from \"./simple-sticky-premium-content\";\r\nimport { checkIfGatedContentPage, initialiseModal, toggleModal } from \"./toggle-modal\";\r\nimport { getLocalStorageOrCookie, setLocalStorageAndCookie, defaultExpireDays } from \"./utils\";\r\n\r\nfunction checkInvestorType() {\r\n  const investorTypeInput = document.getElementById('hdnSelectedAudience');\r\n  if (!investorTypeInput) return;\r\n\r\n  return investorTypeInput.value;\r\n}\r\n\r\nfunction stickyPremiumForm() {\r\n    //return function if .sticky-premium-content-form doesn't exist\r\n    if (!$('.sticky-premium-content-form').length) {\r\n        return;\r\n    }\r\n    const ifInvestorTypeIsChosen = checkInvestorType() !== '';\r\n    $(\".sticky-premium-content-form #veSpinnerContainer\").hide()\r\n    $('.sticky-premium-content-form:not(.premium-content-modal)').each(function () {\r\n        initialiseSimpleStickyPremiumContent(this);\r\n    });\r\n    //handle premium content modals\r\n    $('.sticky-premium-content-form.premium-content-modal').each(function () {\r\n        $(this).find('button.close-icon').click(function () {\r\n            $(this).parents(\".premium-content-modal\").hide();\r\n        });\r\n    });\r\n    const stickyPremiumContentFormModals = document.querySelectorAll('.sticky-premium-content-form.premium-content-modal');\r\n    window.flagUserAsRegistered = flagUserAsRegistered;\r\n    \r\n    if (!ifInvestorTypeIsChosen) return;\r\n    stickyPremiumContentFormModals.forEach((modal) => {\r\n        const sessionPageCount = sessionStorage.getItem(\"ve-PageVisitCount-au\");\r\n        const isLandingPage = sessionPageCount ? parseInt(sessionPageCount) < 2 : true;\r\n        const isSurveyModal = modal.classList.contains('survey-modal');\r\n        if (isSurveyModal && !isLandingPage) return;\r\n\r\n        const visits = getVisitsCount();\r\n        const isFirstVisit = visits ? parseInt(visits) < 2 : true;\r\n        const isUpcomingWebinarPopup = modal.classList.contains('webinar_registration_popup');\r\n        if (isUpcomingWebinarPopup && isFirstVisit) return;\r\n\r\n        initialiseModal(modal);\r\n        handleFormSubmit(modal)\r\n        const formStep = modal.querySelector('.FormStep');\r\n        if (!formStep) return;\r\n        handleEpiFormSteps(modal);\r\n    });\r\n}\r\n\r\nfunction handleFormSubmit(modal) {\r\n\r\n    const form = modal.querySelector('form');\r\n    if (!form) return;\r\n\r\n    const submitBtn = form.querySelector('.FormSubmitButton');\r\n    if (!submitBtn) return;\r\n\r\n    submitBtn.addEventListener('click', function(e) {\r\n        e.preventDefault();\r\n        \r\n        setTimeout(() => {\r\n            if (form.classList.contains('ValidationSuccess')) {\r\n                checkSuccessAndToggleModal();\r\n            }\r\n        }, 100);\r\n    });\r\n\r\n    function checkSuccessAndToggleModal() {\r\n        setTimeout(() => {\r\n            toggleModal(modal, true, true, true);\r\n        }, 3400);\r\n    }\r\n}\r\n\r\nstickyPremiumForm();\r\n\r\nfunction flagUserAsRegistered(modalId) {\r\n    //unhide any associated gated content\r\n    const associatedBlocks = getAssociatedGatedContentBlocks(modalId);\r\n    if (associatedBlocks) {\r\n        associatedBlocks.forEach(x => x.classList.add(\"unlocked\"));\r\n    }\r\n    //if it is a gated content block, remove the _blank from the link\r\n    //check if it a gated content page\r\n    const isGatedContent = checkIfGatedContentPage();\r\n    const modal = document.getElementById(modalId);\r\n    if (modal && isGatedContent) {\r\n        const links = modal.querySelectorAll(\"a\");\r\n        links.forEach(link => {\r\n            link.removeAttribute(\"target\");\r\n        });\r\n    }\r\n    setLocalStorageAndCookie(modalId, 'registered', defaultExpireDays);\r\n}\r\n\r\nfunction getVisitsCount() {\r\n  const key = getLocalStorageKeyByMicrosite();\r\n  const visits = getLocalStorageOrCookie(key);\r\n  return visits;\r\n}\r\n\r\nfunction getLocalStorageKeyByMicrosite() {\r\n  let microsite = (document.querySelector(\"#hdnCurrentMicrositeId\"))?.value;\r\n  // AU workaround\r\n  if (!microsite) {\r\n      microsite = (document.querySelector(\"#hdnSelectedCountry\"))?.value.toLowerCase();\r\n  }\r\n  let key = \"\";\r\n  switch (microsite) {\r\n      case \"global\":\r\n          key = \"ve-PageVisitCount-corp\";\r\n          break;\r\n      case \"ucits\":\r\n          key = \"ve-PageVisitCount-eu\";\r\n          break;\r\n      case \"au\":\r\n          key = \"ve-PageVisitCount-au\";\r\n          break;\r\n      default:\r\n          key = \"ve-PageVisitCount\";\r\n          break;\r\n  }\r\n\r\n  return key;\r\n}","import { toggleModal } from \"./toggle-modal\";\r\nimport { getLocalStorageOrCookie, setLocalStorageAndCookie, defaultExpireDays } from \"./utils\";\r\n\r\nexport function getAssociatedGatedContentBlocks(modalID) {\r\n    const gatedContentBlocks = document.querySelectorAll(\".gated-content-block\");\r\n    const associatedBlock = [...gatedContentBlocks].filter(block => {\r\n        const associatedIds = block.getAttribute(\"data-associatedblock\")?.split(\",\");\r\n        if (associatedIds) {\r\n            const matches = associatedIds.filter(x => x === modalID);\r\n            if (matches.length > 0) return true;\r\n        }\r\n        return false;\r\n    });\r\n    if (associatedBlock.length > 0) return associatedBlock;\r\n    return false;\r\n}\r\n\r\nfunction initialiseGatedContentBlocks() {\r\n    const gatedContentBlocks = document.querySelectorAll(\".gated-content-block\");\r\n    gatedContentBlocks.forEach(contentBlock => {\r\n        const associatedBlockId = contentBlock.getAttribute(\"data-associatedblock\");\r\n        if (!associatedBlockId) return;\r\n        const associatedBlockIds = associatedBlockId.split(\",\");\r\n        associatedBlockIds.forEach(blockId => {\r\n            const associatedBlockIdFlag = getLocalStorageOrCookie(blockId);\r\n            if (!associatedBlockId || associatedBlockIdFlag !== \"registered\") return;\r\n            contentBlock.classList.add(\"unlocked\");\r\n            markAllAssociatedModelsAsRegistered(associatedBlockIds);\r\n        })\r\n    })\r\n}\r\n\r\nfunction markAllAssociatedModelsAsRegistered(associatedBlockIds) {\r\n    associatedBlockIds.forEach(blockId => {\r\n        const isRegistered = getLocalStorageOrCookie(blockId) === \"registered\";\r\n        if (isRegistered) return;\r\n        setLocalStorageAndCookie(blockId, \"registered\", defaultExpireDays);\r\n        const modalElement = document.getElementById(blockId);\r\n        if (modalElement) {\r\n            toggleModal(modalElement, true, true);\r\n        }\r\n    })\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", initialiseGatedContentBlocks);","import { toggleModal } from \"./toggle-modal\";\r\n\r\nexport function initialiseSimpleStickyPremiumContent(component) {\r\n  bindCloseButton(component);\r\n  toggleModal(component);\r\n}\r\n\r\nfunction handleSelection(event, nextButton) {\r\n    const radioInput = event.target.closest('.FormChoice').querySelector('input[type=\"radio\"]');\r\n    if (!radioInput) return;\r\n\r\n    radioInput.checked = true;\r\n    \r\n    if (nextButton) {\r\n        const container = $(event.target).closest('.survey-modal');\r\n        container.addClass('initial-step-submitted');\r\n        container.find('.js-survey-container').removeClass('mb-3').removeClass('pt-3')\r\n        nextButton.click();\r\n    }\r\n}\r\n\r\nexport function handleEpiFormSteps(modal) {\r\n    const ratingInputs = modal.querySelectorAll('.FormChoice__Input--Radio');\r\n   \r\n    const ratingLabels = modal.querySelectorAll('.FormChoice__Label');\r\n    const nextButton = modal.querySelector('button[data-f-navigation-next]');\r\n    if (!nextButton) return;\r\n\r\n    ratingInputs.forEach(input => {\r\n        if (input.getAttribute('checked') !== null && !input.checked) {\r\n            input.checked = true;\r\n        }\r\n        \r\n        input.checked = false;\r\n    });\r\n   \r\n    ratingLabels.forEach(rating => {\r\n        rating.addEventListener('click', (e) => {\r\n          handleSelection(e, nextButton);\r\n          const isSuccess = modal.querySelector('.success-message');\r\n          if (!isSuccess) return;\r\n\r\n          setTimeout(() => {\r\n              const isVisible = isSuccess.checkVisibility \r\n                ? isSuccess.checkVisibility()\r\n                : $(isSuccess).is(\":visible\");\r\n              if (isVisible) {\r\n                  toggleModal(modal, true, true, true)\r\n              }\r\n          }, 3500);\r\n        });\r\n    });\r\n}\r\n\r\nfunction bindCloseButton(modal) {\r\n  const closeButton = modal.querySelector('button.close-icon');\r\n  if (!closeButton) return;\r\n\r\n  closeButton.addEventListener('click', () => {\r\n      toggleModal(modal, true, true);\r\n  });\r\n}\r\n\r\nwindow.markSimpleStickyPremiumContentAsClosed = function (modalId) {\r\n  const modal = document.getElementById(modalId);\r\n  if (modal) toggleModal(modal, true, true);\r\n}"],"names":["getLocalStorageOrCookie","name","localStorage","getItem","parts","decodeURIComponent","document","cookie","split","length","pop","shift","getCookie","setLocalStorageAndCookie","value","cookieExpiresIn","setItem","expiresIn","currentDate","Date","setTime","getTime","toUTCString","setCookie","removeLocalStorageAndCookie","removeItem","removeCookie","openModals","queuedModals","checkIfGatedContentPage","body","classList","contains","toggleModal","modal","hide","arguments","undefined","neverShowAgain","setRegisteredStatus","modalId","getModalId","stateReset","currentMonth","getFullYear","getMonth","closureData","JSON","parse","modalState","month","lastShownDate","default","isNaN","indexOf","dateParts","console","warn","year","day","setDate","getDate","count","checkAndHandleMonthChange","remove","toggleBackDrop","filter","x","add","push","includes","getAttribute","toString","handleModalClosure","toLocaleDateString","stringify","bindCloseButton","removeCloseButton","closeButton","querySelector","addEventListener","closeForever","open","siteHeader","isGatedContentPage","backdrop","createElement","appendChild","style","zIndex","e","removeEventListener","flagUserAsRegistered","associatedBlocks","modalID","associatedBlock","querySelectorAll","block","associatedIds","getAssociatedGatedContentBlocks","forEach","isGatedContent","getElementById","link","removeAttribute","contentBlock","associatedBlockId","associatedBlockIds","blockId","associatedBlockIdFlag","modalElement","markAllAssociatedModelsAsRegistered","window","markSimpleStickyPremiumContentAsClosed","$","ifInvestorTypeIsChosen","investorTypeInput","checkInvestorType","each","component","this","find","click","parents","stickyPremiumContentFormModals","sessionPageCount","sessionStorage","isLandingPage","parseInt","visits","microsite","toLowerCase","key","getLocalStorageKeyByMicrosite","isFirstVisit","disclaimer","emailTextBox","insertAdjacentElement","moveDisclaimer","timeoutSeconds","timeout","setTimeout","initialiseModal","form","submitBtn","preventDefault","handleFormSubmit","ratingInputs","ratingLabels","nextButton","input","checked","rating","event","radioInput","target","closest","container","addClass","removeClass","handleSelection","isSuccess","checkVisibility","is","handleEpiFormSteps","stickyPremiumForm"],"sourceRoot":""}