{"version":3,"file":"z-search.min.js","sources":["../../src/scripts/foundation/moduleInitializer.js","../../src/scripts/utilities/cookie.js","../../src/scripts/feature/usagetype/usagetype.js","../../src/scripts/search.js"],"sourcesContent":["import document from 'document';\r\n\r\nexport const loadModules = modules => {\r\n modules.forEach((Module, index) => {\r\n if (!Module || typeof Module !== 'function') {\r\n console.log('Invalid module format', module, index);\r\n }\r\n\r\n const module = Module();\r\n \r\n if (module.selector) {\r\n const components = document.querySelectorAll(module.selector);\r\n if (components) {\r\n [...components].forEach(component => {\r\n //console.log('initializing module', module.selector);\r\n module.init(component);\r\n });\r\n } else {\r\n //console.log('module not found', module.selector);\r\n }\r\n } else {\r\n module.init();\r\n }\r\n });\r\n};","import document from 'document';\r\n\r\nexport const cookie = (() => { \r\n const createCookie = (name, value, days) => {\r\n let expires;\r\n if (days) {\r\n var date = new Date();\r\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n expires = '; expires=' + date.toGMTString();\r\n } else {\r\n expires = '';\r\n }\r\n document.cookie = name + '=' + value + expires + '; path=/';\r\n }\r\n \r\n const cookieExists = (name) => {\r\n const cookies = document.cookie.split(';');\r\n return cookies.some(cookie => cookie.indexOf(`${name}=`) > -1);\r\n }\r\n\r\n const readCookie = (cookieName) => {\r\n var cookieString=RegExp(cookieName+\"=[^;]+\").exec(document.cookie);\r\n return decodeURIComponent(cookieString ? cookieString.toString().replace(/^[^=]+./,\"\") : \"\");\r\n \r\n };\r\n\r\n return {\r\n cookieExists,\r\n createCookie,\r\n readCookie\r\n }\r\n})()","import document from 'document';\r\nimport { cookie } from '../../utilities/cookie';\r\n\r\nexport const usageType = () => \r\n{\r\n const cookieInfo = {\r\n name: 'usageType',\r\n bch: 'BCH',\r\n pch: 'PCH'\r\n }\r\n\r\n const contractType = 'contract_type';\r\n\r\n const refreshState = {\r\n standard: 'standard',\r\n search: 'search'\r\n }\r\n\r\n const refreshAttributeName= 'data-refresh';\r\n\r\n const searchScreenUrl= 'search-personal-leasing';\r\n\r\n const selectors = {\r\n personalBusinessToggle: 'PersonalBusinessToggle',\r\n personalBusinessToggleContainer: 'PersonalBusinessToggleContainer',\r\n };\r\n\r\n function setDataLayer(isChecked) {\r\n const productType = isChecked ? \"Business\" : \"Personal\";\r\n window.dataLayer.push(\r\n {\r\n 'event' : 'product_toggle',\r\n 'category' : 'Product Type',\r\n 'action' : 'toggle',\r\n 'label' : productType\r\n });\r\n }\r\n\r\n function removeQueryParam(url, keyToRemove) {\r\n const urlParts = url.split('?');\r\n if (urlParts.length < 2) {\r\n // If there are no query parameters, return the original URL.\r\n return url;\r\n }\r\n\r\n const baseURL = urlParts[0];\r\n const queryParams = urlParts[1].split('&');\r\n const updatedParams = [];\r\n\r\n for (const param of queryParams) {\r\n const [key] = param.split('=');\r\n if (key !== keyToRemove) {\r\n updatedParams.push(param);\r\n }\r\n }\r\n\r\n if (updatedParams.length === 0) {\r\n return baseURL;\r\n }\r\n\r\n return baseURL + '?' + updatedParams.join('&');\r\n }\r\n\r\n\r\n const handlePersonalBusinessToggleClick = event => {\r\n if (event) {\r\n cookie.createCookie(cookieInfo.name, event.target.checked ? cookieInfo.bch:cookieInfo.pch);\r\n if (!event.target.checked) {\r\n let params = new URLSearchParams(window.location.search);\r\n if (history.replaceState && params.has(contractType)) {\r\n let searchString = removeQueryParam(window.location.search, contractType);\r\n let newUrl = window.location.protocol + '//' + window.location.host + window.location.pathname + searchString + window.location.hash;\r\n history.replaceState(null, '', newUrl);\r\n }\r\n }\r\n const toggleContainer = document.getElementById(selectors.personalBusinessToggleContainer);\r\n setDataLayer(event.target.checked);\r\n if (toggleContainer) {\r\n const dataType = toggleContainer.getAttribute(refreshAttributeName);\r\n if (dataType && dataType === refreshState.standard && !event.isStopReload) {\r\n window.location.reload();\r\n }\r\n }\r\n }\r\n }\r\n\r\n const init = () => {\r\n const toggle = document.getElementById(selectors.personalBusinessToggle);\r\n if(toggle){\r\n toggle.addEventListener('change', event => handlePersonalBusinessToggleClick(event));\r\n const toggleContainer = document.getElementById(selectors.personalBusinessToggleContainer);\r\n var currentLocation = window.location;\r\n if (currentLocation.href.indexOf(searchScreenUrl) > -1) {\r\n toggleContainer.setAttribute(refreshAttributeName,refreshState.search);\r\n } else {\r\n toggleContainer.setAttribute(refreshAttributeName,refreshState.standard);\r\n }\r\n const cookieValue = cookie.readCookie(cookieInfo.name);\r\n\r\n if (cookieValue && cookieValue.length > 0) {\r\n cookieValue == cookieInfo.bch ? toggle.checked = true : toggle.checked = false;\r\n }\r\n\r\n let params = new URLSearchParams(window.location.search);\r\n if(params.has(contractType) && params.get(contractType).toLowerCase() === cookieInfo.bch.toLowerCase()) {\r\n toggle.checked = true;\r\n var event = new Event('change');\r\n // set not reload needed\r\n event.isStopReload = true;\r\n // Dispatch the event manually.\r\n toggle.dispatchEvent(event);\r\n }\r\n }\r\n };\r\n return {\r\n init\r\n };\r\n};","import window from 'window';\r\n\r\nimport { loadModules } from './foundation/moduleInitializer';\r\nimport { usageType } from './feature/usagetype/usagetype';\r\n\r\nconst app = (function() {\r\n const modules = [\r\n usageType\r\n ];\r\n\r\n return {\r\n init() {\r\n loadModules(modules);\r\n }\r\n };\r\n})();\r\n\r\nwindow.addEventListener('DOMContentLoaded', app.init);"],"names":["cookie","cookieExists","name","document","split","some","indexOf","createCookie","value","days","expires","date","Date","setTime","getTime","toGMTString","readCookie","cookieName","cookieString","RegExp","exec","decodeURIComponent","toString","replace","usageType","cookieInfo","bch","pch","refreshState","selectors","handlePersonalBusinessToggleClick","event","target","checked","params","URLSearchParams","window","location","search","history","replaceState","has","searchString","url","keyToRemove","urlParts","length","baseURL","queryParams","updatedParams","param","key","push","join","removeQueryParam","newUrl","protocol","host","pathname","hash","toggleContainer","getElementById","isChecked","productType","dataLayer","category","action","label","setDataLayer","dataType","getAttribute","isStopReload","reload","init","toggle","addEventListener","href","setAttribute","cookieValue","get","toLowerCase","Event","dispatchEvent","app","modules","[object Object]","forEach","Module","index","console","log","module","selector","components","querySelectorAll","component","loadModules"],"mappings":"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"}