{"version":3,"file":"content-toggle.js","sources":["../../../resources/javascript/util/boolean.js","../../../resources/javascript/features/content-toggle/index.js","../../../resources/javascript/entrypoint/content-toggle.js"],"sourcesContent":["const TRUTHY_VALUES = new Set([\n    1,\n    '1',\n    true,\n    'true',\n    'on',\n    'yes',\n    'show',\n]);\n\nexport const getBool = (value) =>\n    TRUTHY_VALUES.has(typeof value === 'string' ? value.toLowerCase() : value);\n","import { dataLayerPush } from \"../tracking\";\nimport { getBool } from \"../../util/boolean\";\n\nexport const storeContentToggle = (checkbox)  => {\n    dataLayerPush({\n        'event': 'Content Toggle Clicked',\n        'properties': {\n            'label': checkbox.name,\n            'state': checkbox.checked ? 'on' : 'off', // Not Bool here, human readable\n        },\n    });\n\n    sessionStorage.setItem(checkbox.name, checkbox.checked);\n\n    applyContentToggleEffects(checkbox.name);\n}\n\nexport const applyContentToggleEffects = (label) => {\n    document.querySelectorAll(`[data-content-togglable-label=\"${label}\"]`).forEach((block) => {\n        const effect = block.dataset.contentTogglableEffect;\n        const isOn = getBool(sessionStorage.getItem(label));\n\n        if (effect === 'hide') {\n            block.style.display = isOn ? 'none' : '';\n            block.classList.toggle('block--hidden', isOn);\n        }\n\n        if (effect === 'show') {\n            block.style.display = !isOn ? 'none' : '';\n            block.classList.toggle('block--hidden', !isOn);\n        }\n    });\n}\n\nexport const getContentToggleUrlState = (label) => {\n    const params = new URLSearchParams(window.location.search);\n    const key = `contentToggle[${label}]`;\n\n    if (!params.has(key)) {\n        return null;\n    }\n\n    const value = params.get(key).toLowerCase();\n\n    return getBool(value);\n}\n\nfunction initCheckboxState(checkbox) {\n    const urlState = getContentToggleUrlState(checkbox.name);\n\n    if (urlState !== null) {\n        checkbox.checked = urlState;\n        sessionStorage.setItem(checkbox.name, urlState);\n        return;\n    }\n\n    const saved = sessionStorage.getItem(checkbox.name);\n\n    if (saved !== null) {\n        checkbox.checked = getBool(saved);\n    } else {\n        checkbox.checked = getBool(checkbox.dataset.defaultState);\n        sessionStorage.setItem(checkbox.name, checkbox.checked);\n    }\n}\n\nexport const initContentToggle = () => {\n    document.querySelectorAll('.content-toggle').forEach((block) => {\n        const label = block.dataset.contentToggle;\n        const checkbox = document.querySelector(`#toggle-${label}`);\n\n        if (checkbox) {\n            initCheckboxState(checkbox);\n            checkbox.addEventListener('change', () => storeContentToggle(checkbox));\n        }\n    \n        applyContentToggleEffects(label);\n    });\n}\n","import { initContentToggle } from '../features/content-toggle';\nimport { onDOMContentLoaded } from '../util/loaded';\n\nonDOMContentLoaded(() => {\n    initContentToggle();\n});\n"],"names":["TRUTHY_VALUES","Set","getBool","value","has","toLowerCase","applyContentToggleEffects","label","document","querySelectorAll","forEach","block","effect","dataset","contentTogglableEffect","isOn","sessionStorage","getItem","style","display","classList","toggle","initCheckboxState","checkbox","urlState","params","URLSearchParams","window","location","search","key","get","getContentToggleUrlState","name","checked","setItem","saved","defaultState","initContentToggle","contentToggle","querySelector","addEventListener","dataLayerPush","event","properties","state","storeContentToggle","onDOMContentLoaded"],"mappings":"kGAAA,MAAMA,EAAgB,IAAIC,IAAI,CAC1B,EACA,KACA,EACA,OACA,KACA,MACA,SAGSC,EAAWC,GACpBH,EAAcI,IAAqB,iBAAVD,EAAqBA,EAAME,cAAgBF,GCM3DG,EAA6BC,IACtCC,SAASC,iBAAkB,kCAAiCF,OAAWG,SAASC,IAC5E,MAAMC,EAASD,EAAME,QAAQC,uBACvBC,EAAOb,EAAQc,eAAeC,QAAQV,IAE7B,SAAXK,IACAD,EAAMO,MAAMC,QAAUJ,EAAO,OAAS,GACtCJ,EAAMS,UAAUC,OAAO,gBAAiBN,IAG7B,SAAXH,IACAD,EAAMO,MAAMC,QAAWJ,EAAgB,GAAT,OAC9BJ,EAAMS,UAAUC,OAAO,iBAAkBN,GAC5C,GACH,EAgBN,SAASO,EAAkBC,GACvB,MAAMC,EAd+BjB,KACrC,MAAMkB,EAAS,IAAIC,gBAAgBC,OAAOC,SAASC,QAC7CC,EAAO,iBAAgBvB,KAE7B,IAAKkB,EAAOrB,IAAI0B,GACZ,OAAO,KAGX,MAAM3B,EAAQsB,EAAOM,IAAID,GAAKzB,cAE9B,OAAOH,EAAQC,EAAM,EAIJ6B,CAAyBT,EAASU,MAEnD,GAAiB,OAAbT,EAGA,OAFAD,EAASW,QAAUV,OACnBR,eAAemB,QAAQZ,EAASU,KAAMT,GAI1C,MAAMY,EAAQpB,eAAeC,QAAQM,EAASU,MAEhC,OAAVG,EACAb,EAASW,QAAUhC,EAAQkC,IAE3Bb,EAASW,QAAUhC,EAAQqB,EAASV,QAAQwB,cAC5CrB,eAAemB,QAAQZ,EAASU,KAAMV,EAASW,SAEvD,CAEO,MAAMI,EAAoBA,KAC7B9B,SAASC,iBAAiB,mBAAmBC,SAASC,IAClD,MAAMJ,EAAQI,EAAME,QAAQ0B,cACtBhB,EAAWf,SAASgC,cAAe,WAAUjC,KAE/CgB,IACAD,EAAkBC,GAClBA,EAASkB,iBAAiB,UAAU,IAtEblB,KAC/BmB,EAAc,CACVC,MAAS,yBACTC,WAAc,CACVrC,MAASgB,EAASU,KAClBY,MAAStB,EAASW,QAAU,KAAO,SAI3ClB,eAAemB,QAAQZ,EAASU,KAAMV,EAASW,SAE/C5B,EAA0BiB,EAASU,KAAK,EA2DUa,CAAmBvB,MAGjEjB,EAA0BC,EAAM,GAClC,EC1ENwC,GAAmB,KACfT,GAAmB"}