{"version":3,"file":"common~account.widgets~cart.widgets~checkout.widgets.bundle.js","mappings":"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","sources":["webpack://sfra-boilerplate/./cartridges/app_storefront_widgets/cartridge/client/default/js/widgets/global/SessionExpiration.ts"],"sourcesContent":["import { submitFormJson } from 'widgets/toolbox/ajax';\nimport { timeout } from 'widgets/toolbox/util';\nimport token from '../toolbox/token';\n\n/**\n * @description Base SessionExpiration implementation\n * @param Modal Base widget for extending\n * @returns SessionExpiration class\n */\nexport default function (Modal: ReturnType<typeof import('widgets/global/Modal').default>) {\n /**\n * @category widgets\n * @subcategory global\n * @class SessionExpiration\n * @augments Modal\n * @classdesc Session expiration component. Used to notify customer via popup, that his/her session is about to expire.\n * 1. At page loads starts a background timeout with configured time.\n * 2. After timeout, popup with session expiration alert will be shown. Popup also contains countdown before session will be expired.\n * 3. Any customer interaction with popup will lead to backend ping and CSRF token re-newal, which prolongs customer session.\n * 4. If popup was not closed - redirect to session expiration page happens.\n * @property {string} data-widget - Widget name `sessionExpiration`\n * @property {string} data-disable-rendering - Can disable modal dynamic content rendering.\n * Should be set to `true` in order countdown to work correctly!\n * @property {string} data-session-timeout-url - URL to redirect customer once session timeout\n * @property {string} data-session-continue-url - URL to get updated token and prolong customer's session\n * @property {number} data-initial-timeout - Initial timeout in minutes prior to expiration popup\n * @property {number} data-countdown-timeout - Countdown time in minutes up to session expires\n * @example <caption>Example of Session Expiration DOM structure</caption>\n * <div\n * data-widget=\"sessionExpiration\"\n * data-disable-rendering=\"true\"\n * data-session-timeout-url=\"${URLUtils.url('CSRF-Fail')}\"\n * data-session-continue-url=\"${URLUtils.url('CSRF-Generate')}\"\n * data-initial-timeout=\"24\"\n * data-countdown-timeout=\"5\"\n * >\n * <div\n * class=\"b-dialog\"\n * aria-label=\"\"\n * data-ref=\"container\"\n * hidden\n * >\n * <div\n * class=\"b-dialog-window\"\n * role=\"dialog\"\n * data-ref=\"dialog\"\n * aria-modal=\"true\"\n * >\n * <div class=\"b-dialog-header\">\n * <isinclude template=\"components/modal/closeButton\">\n * </div>\n * <div class=\"b-dialog-body b-user_content\">\n * <isprint value=\"${Resource.msg('sessionExpiration.abouttoexpire', 'global', null)}\" />\n * <div data-ref=\"countdown\"></div>\n * <svg class=\"b-countdown-icon\" data-ref=\"countdownCircle\">\n * <circle data-ref=\"countdownCircleBg\" class=\"b-countdown-circle_bg\" r=\"92\" cx=\"95\" cy=\"95\"></circle>\n * <circle data-ref=\"countdownCircleAnimated\" class=\"b-countdown-circle_animated\" r=\"92\" cx=\"95\" cy=\"95\"></circle>\n * </svg>\n * <button\n * type=\"button\"\n * class=\"b-button\"\n * data-event-click.prevent=\"continueSession\"\n * data-dismiss=\"modal\"\n * data-ref=\"lastFocusElement\"\n * >\n * <isprint value=\"${Resource.msg('sessionExpiration.continuesession', 'global', null)}\" />\n * </button>\n * </div>\n * </div>\n * </div>\n * </div>\n */\n class SessionExpiration extends Modal {\n countdown?: import('widgets/toolbox/SimpleCountdown').default;\n\n prefs() {\n return {\n initialTimeout: 24,\n countdownTimeout: 5,\n countdown: 'countdown',\n countdownCircleAnimated: 'countdownCircleAnimated',\n countdownIcon: 'countdownIcon',\n countdownCircleBg: 'countdownCircleBg',\n sessionTimeoutUrl: '',\n sessionContinueUrl: '',\n ...super.prefs()\n };\n }\n\n /**\n * @description Widget initialization logic\n * @listens module:ajax#responseok\n * @listens dom#focus\n * @returns {void}\n */\n init() {\n super.init();\n this.onDestroy(() => this.clearDisposableResources());\n this.eventBus().on('responseok', 'onOKResponse');\n this.resetInitialTimeout();\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'started' does not exist on type 'Session... Remove this comment to see the full error message\n this.started = Date.now();\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'focusListener' does not exist on type 'S... Remove this comment to see the full error message\n this.focusListener = this.ev('visibilitychange', () => this.handleVisibilityChange(), window.document);\n this.onDestroy(() => {\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'focusListener' does not exist on type 'S... Remove this comment to see the full error message\n if (this.focusListener) {\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'focusListener' does not exist on type 'S... Remove this comment to see the full error message\n this.focusListener.forEach((disposable) => disposable());\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'focusListener' does not exist on type 'S... Remove this comment to see the full error message\n this.focusListener = undefined;\n }\n });\n }\n\n /**\n * @description Evaluates actions needed after success AJAX response\n * @returns {void}\n */\n onOKResponse() {\n // TODO Do not reset session expiration timeout if response from service-worker cache\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'started' does not exist on type 'Session... Remove this comment to see the full error message\n this.started = Date.now();\n this.resetInitialTimeout();\n }\n\n /**\n * @description Method needed to properly handle mobile/tablet devices either\n * after application switch or after device turn on after sleep mode, because mobile/tablet\n * platforms will suspend `setTimeout`/`setInterval` operations, when tab is in background or device is in sleep mode\n * Method adjusts timings in comparison to last active time.\n * @returns {void}\n */\n handleVisibilityChange() {\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'started' does not exist on type 'Session... Remove this comment to see the full error message\n if (!this.started) {\n return;\n }\n\n const initialTimeout = this.prefs().initialTimeout * 1000 * 60;\n const countdownTimeout = this.prefs().countdownTimeout * 1000 * 60;\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'started' does not exist on type 'Session... Remove this comment to see the full error message\n const timePassed = Date.now() - this.started;\n\n const passedMoreThanInitialTimeout = timePassed > initialTimeout;\n const passedMoreThanCountdown = timePassed > (initialTimeout + countdownTimeout);\n\n if (passedMoreThanCountdown) {\n this.sessionExpired();\n\n return;\n }\n\n if (passedMoreThanInitialTimeout) {\n const remainingTimeForCountdown = (initialTimeout + countdownTimeout - timePassed) / 1000;\n\n // adjust countdown\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'countdownShown' does not exist on type '... Remove this comment to see the full error message\n if (!this.countdownShown) {\n this.startCountdown().then(() => this.adjustCountdown(remainingTimeForCountdown));\n } else {\n this.adjustCountdown(remainingTimeForCountdown);\n }\n\n return;\n }\n\n // adjust initial timeout\n\n // @ts-expect-error ts-migrate(2345) FIXME: Argument of type 'number' is not assignable to par... Remove this comment to see the full error message\n this.resetInitialTimeout(initialTimeout - timePassed);\n }\n\n /**\n * @description Executes started countdown adjustment\n * @param {number} time - time for countdown in seconds\n * @returns {void}\n */\n adjustCountdown(time) {\n this.clearDisposableResources();\n this.initCountdown(time);\n }\n\n /**\n * @description Resets initial timeout and starts new timeout. Usually is called once any ajax request finishes\n * @param {number|undefined} actualTimeout - actual time for initial timeout in milliseconds\n * @returns {void}\n */\n resetInitialTimeout(actualTimeout = undefined) {\n this.clearDisposableResources();\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'initialTimeout' does not exist on type '... Remove this comment to see the full error message\n this.initialTimeout = timeout(() => {\n this.startCountdown();\n }, actualTimeout || (this.prefs().initialTimeout * 60 * 1000));\n }\n\n /**\n * @description Shows \"Session expires in...\" modal and starts countdown.\n * Once countdown finishes, trigger session expiration logic\n * @returns {Promise} result\n */\n startCountdown() {\n this.showModal({});\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'countdownShown' does not exist on type '... Remove this comment to see the full error message\n this.countdownShown = true;\n this.ref('countdown').setText(`${this.prefs().countdownTimeout}:00`);\n const countdownCircle = this.ref('countdownCircle').get();\n const countdownCircleBg = this.ref('countdownCircleBg').get();\n const countdownCircleAnimated = this.ref('countdownCircleAnimated').get();\n\n if (countdownCircle && countdownCircleAnimated && countdownCircleBg) {\n const TAU = Math.PI * 2;\n const radius = 92;\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'circleLength' does not exist on type 'Se... Remove this comment to see the full error message\n this.circleLength = TAU * radius;\n countdownCircleBg.setAttributeNS(null, 'r', String(radius));\n countdownCircleAnimated.setAttributeNS(null, 'r', String(radius));\n }\n\n return this.initCountdown();\n }\n\n /**\n * @description Initiates countdown with predefined starting time\n * @param {number|undefined} time - time to start countdown\n * @returns {Promise} result\n */\n initCountdown(time = undefined) {\n const countdownCircleAnimated = this.ref('countdownCircleAnimated').get();\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'circleLength' does not exist on type 'Se... Remove this comment to see the full error message\n const circleLength = this.circleLength || 0;\n const countdownTimeoutSeconds = this.prefs().countdownTimeout * 60;\n\n return import(/* webpackChunkName: 'simplecountdown' */'widgets/toolbox/SimpleCountdown').then((SimpleCountdown) => {\n // eslint-disable-next-line new-cap\n this.countdown = new SimpleCountdown.default(progress => {\n this.ref('countdown').setText(`${progress.minutes}:${progress.seconds}`);\n\n const passedTimePercent = 1 - (progress.duration / countdownTimeoutSeconds);\n const visibleCircleLength = circleLength - Math.round(circleLength * passedTimePercent);\n\n if (countdownCircleAnimated) {\n countdownCircleAnimated.setAttributeNS(null, 'stroke-dasharray',\n (visibleCircleLength + ',' + circleLength));\n }\n // @ts-expect-error ts-migrate(2345) FIXME: Argument of type '{ time: number; }' is not assign... Remove this comment to see the full error message\n }, () => this.sessionExpired(), {\n time: time || this.prefs().countdownTimeout * 60\n });\n });\n }\n\n /**\n * @description Session expired logic. Redirects customer to given URL.\n * @returns {void}\n */\n sessionExpired() {\n this.clearDisposableResources();\n window.location.assign(this.prefs().sessionTimeoutUrl);\n }\n\n /**\n * @description Continue session logic. Sends request to update csrf-token.\n * @returns {Promise<object>} Promise object represents server response for session continuation\n */\n continueSession() {\n return submitFormJson(this.prefs().sessionContinueUrl, {}).then((response) => {\n // @ts-expect-error ts-migrate(2571) FIXME: Object is of type 'unknown'.\n token.name = response.csrf.tokenName;\n\n // @ts-expect-error ts-migrate(2571) FIXME: Object is of type 'unknown'.\n token.value = response.csrf.token;\n this.closeModal();\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'countdownShown' does not exist on type '... Remove this comment to see the full error message\n this.countdownShown = false;\n\n return response;\n });\n }\n\n /**\n * @description Method, which is called once customer closes modal\n * (i.e. press close button or clicked outside modal)\n * @returns {void}\n */\n cancel() {\n this.continueSession().finally(() => {\n super.cancel();\n });\n }\n\n /**\n * @description Clear disposable resources\n * @returns {void}\n */\n clearDisposableResources() {\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'initialTimeout' does not exist on type '... Remove this comment to see the full error message\n if (this.initialTimeout) {\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'initialTimeout' does not exist on type '... Remove this comment to see the full error message\n this.initialTimeout();\n\n // @ts-expect-error ts-migrate(2339) FIXME: Property 'initialTimeout' does not exist on type '... Remove this comment to see the full error message\n this.initialTimeout = undefined;\n }\n\n if (this.countdown) {\n this.countdown.destroy();\n this.countdown = undefined;\n }\n }\n }\n\n return SessionExpiration;\n}\n"],"names":["submitFormJson","timeout","token","Modal","SessionExpiration","prefs","initialTimeout","countdownTimeout","countdown","countdownCircleAnimated","countdownIcon","countdownCircleBg","sessionTimeoutUrl","sessionContinueUrl","init","onDestroy","clearDisposableResources","eventBus","on","resetInitialTimeout","started","Date","now","focusListener","ev","handleVisibilityChange","window","document","forEach","disposable","undefined","onOKResponse","timePassed","passedMoreThanInitialTimeout","passedMoreThanCountdown","sessionExpired","remainingTimeForCountdown","countdownShown","startCountdown","then","adjustCountdown","time","initCountdown","actualTimeout","showModal","ref","setText","countdownCircle","get","TAU","Math","PI","radius","circleLength","setAttributeNS","String","countdownTimeoutSeconds","SimpleCountdown","default","progress","minutes","seconds","passedTimePercent","duration","visibleCircleLength","round","location","assign","continueSession","response","name","csrf","tokenName","value","closeModal","cancel","finally","destroy"],"sourceRoot":""}