{"version":3,"file":"kiosk.js","names":[],"sources":["../resources/javascript/kiosk/components/back-button.js","../resources/javascript/kiosk/kiosk.js","../resources/javascript/kiosk.js"],"sourcesContent":["/**\n * Initialize the kiosk back button, everywhere but the\n */\nexport const initKioskBackButton = () => {\n    if (!shouldShowBackButton()) {\n        return;\n    }\n\n    // Create back button\n    const backButton = document.createElement('div');\n    Object.assign(backButton, {\n        className: 'kiosk__back-button',\n    });\n\n    const circle = document.createElement('div');\n    Object.assign(circle, {\n        className: 'kiosk__back-button-circle',\n        innerHTML: '&#8678',\n    });\n\n    backButton.appendChild(circle);\n\n    const textSpan = document.createElement('span');\n    textSpan.textContent = 'Go Back';\n\n    backButton.appendChild(textSpan);\n\n    // Append back button to body\n    document.body.appendChild(backButton);\n\n    document\n        .querySelector('.kiosk__back-button')\n        .addEventListener('click', () => {\n            history.back();\n        });\n};\n\n/**\n * Check if the back button should be shown\n *\n * @returns {Boolean}\n */\nconst shouldShowBackButton = () => {\n    // Are we on the homepage?\n    return window.location.pathname == '/' ? false : true;\n};\n","import { debounce } from 'lodash-es';\nimport { loadOverlay } from '../features/overlays';\nimport { initKioskBackButton } from './components/back-button';\n\nexport default class Kiosk {\n    /* @var Number  */\n    timeout = 0;\n\n    /* @var Number */\n    timer = null;\n\n    /**\n     * @param {HTMLElement} elm\n     * @param {Object} options\n     */\n    constructor() {\n        if (!this.getKioskCookie()) {\n            return;\n        }\n\n        initKioskBackButton();\n\n        const timeout = this.getTimeoutValue();\n        if (!timeout) {\n            return;\n        }\n\n        this.timeout = timeout;\n        this.addEventListeners();\n    }\n\n    /**\n     * Get cookie by name\n     */\n    getKioskCookie() {\n        const value = `; ${document.cookie}`;\n        const parts = value.split(`; kiosk=`);\n        if (parts.length === 2) {\n            const data = decodeURIComponent(parts.pop().split(';').shift());\n            try {\n                return JSON.parse(data);\n            } catch {}\n        }\n\n        return null;\n    }\n\n    /**\n     * Get timeout value from cookie\n     */\n    getTimeoutValue() {\n        const KioskCookie = this.getKioskCookie();\n\n        if (\n            KioskCookie &&\n            typeof KioskCookie[0] !== 'undefined' &&\n            !isNaN(KioskCookie[0])\n        ) {\n            return parseInt(KioskCookie[0]) * 1000;\n        }\n\n        return null;\n    }\n\n    /**\n     * Show the overlay\n     */\n    showOverlay() {\n        loadOverlay('/kiosk/overlay', {\n            modifiers: ['takeover', 'inactivity'],\n        });\n\n        const oneTrustBanner = document.querySelector('#onetrust-consent-sdk');\n        if (oneTrustBanner) {\n            oneTrustBanner.remove();\n        }\n\n        const cookieScriptBanner = document.querySelector(\n            '#cookiescript_injected'\n        );\n        if (cookieScriptBanner) {\n            cookieScriptBanner.remove();\n        }\n    }\n\n    /**\n     * Debounced timer method\n     */\n    timerReset = debounce(() => {\n        clearTimeout(this.timer);\n        this.timer = setTimeout(this.showOverlay, this.timeout);\n    }, 1000);\n\n    /**\n     * Add event listeners to body/overlay\n     */\n    addEventListeners() {\n        const events = [\n            'click',\n            'touchstart',\n            'touchmove',\n            'wheel',\n            'pointerdown',\n            'pointermove',\n            'scroll',\n            'keydown',\n            'mousemove',\n        ];\n        events.forEach(event =>\n            document.body.addEventListener(event, () => {\n                this.timerReset();\n            })\n        );\n\n        this.timerReset();\n    }\n}\n","import Kiosk from './kiosk/kiosk';\n\nwindow.addEventListener('DOMContentLoaded', () => {\n    new Kiosk();\n});\n"],"mappings":"kGAGA,MAAa,MAA4B,CACrC,GAAI,CAAC,EAAqB,EACtB,OAIJ,IAAM,EAAa,SAAS,cAAc,KAAK,EAC/C,OAAO,OAAO,EAAY,CACtB,UAAW,oBACf,CAAC,EAED,IAAM,EAAS,SAAS,cAAc,KAAK,EAC3C,OAAO,OAAO,EAAQ,CAClB,UAAW,4BACX,UAAW,QACf,CAAC,EAED,EAAW,YAAY,CAAM,EAE7B,IAAM,EAAW,SAAS,cAAc,MAAM,EAC9C,EAAS,YAAc,UAEvB,EAAW,YAAY,CAAQ,EAG/B,SAAS,KAAK,YAAY,CAAU,EAEpC,SACK,cAAc,qBAAqB,CAAC,CACpC,iBAAiB,YAAe,CAC7B,QAAQ,KAAK,CACjB,CAAC,CACT,EAOM,MAEK,OAAO,SAAS,UAAY,ICxCvC,IAAqB,EAArB,KAA2B,CAWvB,aAAc,CACV,GADU,KATd,QAAU,EAAA,KAGV,MAAQ,UA+ER,WAAa,MAAe,CACxB,aAAa,KAAK,KAAK,EACvB,KAAK,MAAQ,WAAW,KAAK,YAAa,KAAK,OAAO,CAC1D,EAAG,GAAI,EA3EC,CAAC,KAAK,eAAe,EACrB,OAGJ,EAAoB,EAEpB,IAAM,EAAU,KAAK,gBAAgB,EAChC,IAIL,KAAK,QAAU,EACf,KAAK,kBAAkB,EAC3B,CAKA,gBAAiB,CAEb,IAAM,EAAQ,KADK,SAAS,SACR,MAAM,UAAU,EACpC,GAAI,EAAM,SAAW,EAAG,CACpB,IAAM,EAAO,mBAAmB,EAAM,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAC9D,GAAI,CACA,OAAO,KAAK,MAAM,CAAI,CAC1B,MAAQ,CAAC,CACb,CAEA,OAAO,IACX,CAKA,iBAAkB,CACd,IAAM,EAAc,KAAK,eAAe,EAUxC,OAPI,GACO,EAAY,KAAO,QAC1B,CAAC,MAAM,EAAY,EAAE,EAEd,SAAS,EAAY,EAAE,EAAI,IAG/B,IACX,CAKA,aAAc,CACV,EAAY,iBAAkB,CAC1B,UAAW,CAAC,WAAY,YAAY,CACxC,CAAC,EAED,IAAM,EAAiB,SAAS,cAAc,uBAAuB,EACjE,GACA,EAAe,OAAO,EAG1B,IAAM,EAAqB,SAAS,cAChC,wBACJ,EACI,GACA,EAAmB,OAAO,CAElC,CAaA,mBAAoB,CAYhB,CAVI,QACA,aACA,YACA,QACA,cACA,cACA,SACA,UACA,WAAA,CAEE,CAAC,QAAQ,GACX,SAAS,KAAK,iBAAiB,MAAa,CACxC,KAAK,WAAW,CACpB,CAAC,CACL,EAEA,KAAK,WAAW,CACpB,CACJ,EClHA,OAAO,iBAAiB,uBAA0B,CAC9C,IAAI,CACR,CAAC"}