{"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,GAAsB,CACvB,OAIJ,IAAM,EAAa,SAAS,cAAc,MAAM,CAChD,OAAO,OAAO,EAAY,CACtB,UAAW,qBACd,CAAC,CAEF,IAAM,EAAS,SAAS,cAAc,MAAM,CAC5C,OAAO,OAAO,EAAQ,CAClB,UAAW,4BACX,UAAW,SACd,CAAC,CAEF,EAAW,YAAY,EAAO,CAE9B,IAAM,EAAW,SAAS,cAAc,OAAO,CAC/C,EAAS,YAAc,UAEvB,EAAW,YAAY,EAAS,CAGhC,SAAS,KAAK,YAAY,EAAW,CAErC,SACK,cAAc,sBAAsB,CACpC,iBAAiB,YAAe,CAC7B,QAAQ,MAAM,EAChB,EAQJ,MAEK,OAAO,SAAS,UAAY,ICxCvC,IAAqB,EAArB,KAA2B,CAEvB,QAAU,EAGV,MAAQ,KAMR,aAAc,CACV,GAAI,CAAC,KAAK,gBAAgB,CACtB,OAGJ,GAAqB,CAErB,IAAM,EAAU,KAAK,iBAAiB,CACjC,IAIL,KAAK,QAAU,EACf,KAAK,mBAAmB,EAM5B,gBAAiB,CAEb,IAAM,EADQ,KAAK,SAAS,SACR,MAAM,WAAW,CACrC,GAAI,EAAM,SAAW,EAAG,CACpB,IAAM,EAAO,mBAAmB,EAAM,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAC/D,GAAI,CACA,OAAO,KAAK,MAAM,EAAK,MACnB,GAGZ,OAAO,KAMX,iBAAkB,CACd,IAAM,EAAc,KAAK,gBAAgB,CAUzC,OAPI,GACO,EAAY,KAAO,QAC1B,CAAC,MAAM,EAAY,GAAG,CAEf,SAAS,EAAY,GAAG,CAAG,IAG/B,KAMX,aAAc,CACV,EAAY,iBAAkB,CAC1B,UAAW,CAAC,WAAY,aAAA,CAC3B,CAAC,CAEF,IAAM,EAAiB,SAAS,cAAc,wBAAwB,CAClE,GACA,EAAe,QAAQ,CAG3B,IAAM,EAAqB,SAAS,cAChC,yBACH,CACG,GACA,EAAmB,QAAQ,CAOnC,WAAa,MAAe,CACxB,aAAa,KAAK,MAAM,CACxB,KAAK,MAAQ,WAAW,KAAK,YAAa,KAAK,QAAQ,EACxD,IAAK,CAKR,mBAAoB,CACD,CACX,QACA,aACA,YACA,QACA,cACA,cACA,SACA,UACA,YACH,CACM,QAAQ,GACX,SAAS,KAAK,iBAAiB,MAAa,CACxC,KAAK,YAAY,EACnB,CACL,CAED,KAAK,YAAY,GChHzB,OAAO,iBAAiB,uBAA0B,CAC9C,IAAI,GACN"}