{"version":3,"file":"4829-bundle.js","mappings":"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","sources":["webpack://flippingbooksite/./sources/src/analytics-loaders/GA.js","webpack://flippingbooksite/./sources/src/analytics-loaders/bing.js","webpack://flippingbooksite/./sources/src/analytics-loaders/mixpanel.js","webpack://flippingbooksite/./sources/src/services/reload-counter.ts","webpack://flippingbooksite/./sources/src/services/instance/reload-counter.ts","webpack://flippingbooksite/./sources/src/app/app.ts","webpack://flippingbooksite/./sources/src/analytics-loaders/fb-analytics.ts","webpack://flippingbooksite/./sources/src/analytics-loaders/index.ts","webpack://flippingbooksite/./sources/src/components/base-page/index.ts","webpack://flippingbooksite/./sources/src/modernScriptsLoader.ts","webpack://flippingbooksite/./sources/src/pages/bem.ts","webpack://flippingbooksite/./sources/src/services/consentService.ts","webpack://flippingbooksite/./sources/src/services/instance/api/httpClient.ts","webpack://flippingbooksite/./sources/src/services/instance/api/serviceClient.ts","webpack://flippingbooksite/./sources/src/services/instance/api/serviceLocatorApi.ts","webpack://flippingbooksite/./sources/src/services/instance/consentService.ts","webpack://flippingbooksite/./sources/src/services/instance/l10n.ts","webpack://flippingbooksite/./sources/src/services/instance/serviceLocator.ts","webpack://flippingbooksite/./sources/src/services/l10n-serivce.ts","webpack://flippingbooksite/./sources/src/util/run-with-new-task.ts","webpack://flippingbooksite/./sources/src/localization/ lazy ^\\.\\/.*$ namespace object"],"sourcesContent":["// GOOGLE ANALYTICS\r\n/* eslint-disable */\r\n(function () {\r\n    var scriptTag = document.createElement('script');\r\n    scriptTag.async = 1;\r\n    scriptTag.src = 'https://www.googletagmanager.com/gtag/js?id=' + window.Mediaparts.GaSettings.V4ApiKey;\r\n    setTimeout(function () {\r\n        document.body.appendChild(scriptTag);\r\n    });\r\n})();\r\n\r\nwindow.dataLayer = window.dataLayer || [];\r\nfunction gtag() {\r\n    window.dataLayer.push(arguments);\r\n}\r\n\r\nwindow.gtag = gtag;\r\n\r\ngtag('js', new Date());\r\n\r\ngtag('set', {\r\n    anonymize_ip: true,\r\n    link_attribution: true,\r\n});\r\n\r\nif (window.Mediaparts.GaSettings.referrer) {\r\n    gtag('set', {\r\n        referrer: window.Mediaparts.GaSettings.referrer,\r\n    });\r\n}\r\n\r\ngtag('config', window.Mediaparts.GaSettings.V4ApiKey, {\r\n    send_page_view: false,\r\n    custom_map: {\r\n        dimension3: 'clientId',\r\n        dimension4: 'fboPlan',\r\n    },\r\n});\r\n\r\ngtag('config', window.Mediaparts.GaSettings.AWApiKey, {\r\n    send_page_view: false,\r\n});\r\n\r\nif (!/(^\\/account($|\\/.*))/.test(window.location.pathname)) {\r\n    gtag('event', 'page_view');\r\n}\r\n","// Bing ads\r\n/* eslint-disable */\r\n(function (w, d, t, r, u) {\r\n    var f, n, i;\r\n    (w[u] = w[u] || []),\r\n        (f = function () {\r\n            var o = { ti: window.Mediaparts.BingSettings.bingId };\r\n            (o.q = w[u]), (w[u] = new UET(o)), w[u].push('pageLoad');\r\n        }),\r\n        (n = d.createElement(t)),\r\n        (n.src = r),\r\n        (n.async = 1),\r\n        (n.onload = n.onreadystatechange =\r\n            function () {\r\n                var s = this.readyState;\r\n                (s && s !== 'loaded' && s !== 'complete') || (f(), (n.onload = n.onreadystatechange = null));\r\n            }),\r\n        (i = d.getElementsByTagName(t)[0]),\r\n        setTimeout(function () {\r\n            i.parentNode.insertBefore(n, i);\r\n        });\r\n})(window, document, 'script', '//bat.bing.com/bat.js', 'uetq');\r\n","/* eslint-disable */\r\nvar Deferred = require('@flippingbook/web.utils/dist/util/deferred').Deferred;\r\nwindow.mixpanelLoaded = new Deferred();\r\n\r\n// Mixpanel\r\n(function (e, a) {\r\n    if (!a.__SV) {\r\n        var b = window;\r\n        try {\r\n            var c,\r\n                l,\r\n                i,\r\n                j = b.location,\r\n                g = j.hash;\r\n            c = function (a, b) {\r\n                return (l = a.match(RegExp(b + '=([^&]*)'))) ? l[1] : null;\r\n            };\r\n            g &&\r\n                c(g, 'state') &&\r\n                ((i = JSON.parse(decodeURIComponent(c(g, 'state')))),\r\n                'mpeditor' === i.action &&\r\n                    (b.sessionStorage.setItem('_mpcehash', g),\r\n                    history.replaceState(i.desiredHash || '', e.title, j.pathname + j.search)));\r\n        } catch (m) {}\r\n        var k, h;\r\n        window.mixpanel = a;\r\n        a._i = [];\r\n        a.init = function (b, c, f) {\r\n            function e(b, a) {\r\n                var c = a.split('.');\r\n                2 == c.length && ((b = b[c[0]]), (a = c[1]));\r\n                b[a] = function () {\r\n                    b.push([a].concat(Array.prototype.slice.call(arguments, 0)));\r\n                };\r\n            }\r\n            var d = a;\r\n            'undefined' !== typeof f ? (d = a[f] = []) : (f = 'mixpanel');\r\n            d.people = d.people || [];\r\n            d.toString = function (b) {\r\n                var a = 'mixpanel';\r\n                'mixpanel' !== f && (a += '.' + f);\r\n                b || (a += ' (stub)');\r\n                return a;\r\n            };\r\n            d.people.toString = function () {\r\n                return d.toString(1) + '.people (stub)';\r\n            };\r\n            k =\r\n                'disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user'.split(\r\n                    ' ',\r\n                );\r\n            for (h = 0; h < k.length; h++) e(d, k[h]);\r\n            a._i.push([b, c, f]);\r\n        };\r\n        a.__SV = 1.2;\r\n        b = e.createElement('script');\r\n        b.type = 'text/javascript';\r\n        b.async = !0;\r\n        b.src =\r\n            'undefined' !== typeof MIXPANEL_CUSTOM_LIB_URL\r\n                ? MIXPANEL_CUSTOM_LIB_URL\r\n                : 'file:' === e.location.protocol && '//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js'.match(/^\\/\\//)\r\n                  ? 'https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js'\r\n                  : '//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js';\r\n        c = e.getElementsByTagName('script')[0];\r\n        setTimeout(function () {\r\n            c.parentNode.insertBefore(b, c);\r\n        });\r\n    }\r\n})(document, window.mixpanel || []);\r\n\r\n(function () {\r\n    var INITIAL_LANDING_PAGE_PROPERTY_NAME = 'Initial Landing Page';\r\n    var LAST_VISITED_PAGE_LS_KEY = '--Flippingbook.Site.LastPage';\r\n\r\n    var pageLocale = (((window.Mediaparts || {}).Bootstrap || {}).Params || {}).locale || 'en';\r\n    var isPageLocalized = pageLocale !== 'en';\r\n\r\n    function writeToUserProfileOnce(property, value) {\r\n        var propertyValueFromMixPanel = mixpanel.get_property(property);\r\n        var setOnceParams = {};\r\n        setOnceParams[property] = propertyValueFromMixPanel === undefined ? value : propertyValueFromMixPanel;\r\n        mixpanel.people.set_once(setOnceParams);\r\n    }\r\n\r\n    function getPathWithoutLang(path) {\r\n        return path === '/' || path === '/' + pageLocale ? '/' : path.replace(new RegExp('^/' + pageLocale + '/'), '/');\r\n    }\r\n\r\n    function getPagePath(pathname) {\r\n        var pagePath = (pathname || '').split('?')[0].replace(window.location.origin, '');\r\n\r\n        return getPathWithoutLang(pagePath);\r\n    }\r\n\r\n    function silent(cb) {\r\n        try {\r\n            return cb();\r\n        } catch (e) {\r\n            //do nothing\r\n        }\r\n    }\r\n\r\n    function getPrevPage() {\r\n        var pathFromStorage = silent(function () {\r\n            return sessionStorage.getItem(LAST_VISITED_PAGE_LS_KEY);\r\n        });\r\n\r\n        return getPagePath(pathFromStorage || document.referrer || window.location.pathname);\r\n    }\r\n\r\n    function savePrevPage(path) {\r\n        silent(function () {\r\n            sessionStorage.setItem(LAST_VISITED_PAGE_LS_KEY, path);\r\n        });\r\n    }\r\n\r\n    function getQueryParam(url, param) {\r\n        param = param.replace(/[\\[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n        var regexS = '[\\\\?&]' + param + '=([^&#]*)',\r\n            regex = new RegExp(regexS),\r\n            results = regex.exec(url);\r\n        if (results === null || (results && typeof results[1] !== 'string' && results[1].length)) {\r\n            return '';\r\n        } else {\r\n            return decodeURIComponent(results[1]).replace(/\\+/g, ' ');\r\n        }\r\n    }\r\n\r\n    var campaign_keywords = 'source medium campaign content term'.split(' ');\r\n    var kw = '';\r\n    var params = {};\r\n    var first_params = {};\r\n    var over_params = {};\r\n    var index;\r\n\r\n    for (index = 0; index < campaign_keywords.length; ++index) {\r\n        kw =\r\n            getQueryParam(document.URL, 'utm_' + campaign_keywords[index]) ||\r\n            getQueryParam(document.URL, campaign_keywords[index]);\r\n        if (kw.length) {\r\n            first_params['utm_' + campaign_keywords[index] + ' [first touch]'] = kw;\r\n            params['utm_' + campaign_keywords[index] + ' [last touch]'] = kw;\r\n            over_params['utm_' + campaign_keywords[index]] = kw;\r\n        }\r\n    }\r\n\r\n    mixpanel.init(window.Mediaparts.MixPanelSettings.token, {\r\n        loaded: function (mixpanel) {\r\n            window.mixpanelLoaded.resolve(mixpanel);\r\n\r\n            mixpanel.people.set_once(first_params);\r\n            mixpanel.register_once(over_params);\r\n            mixpanel.register(params);\r\n\r\n            var pagePath = getPagePath(window.location.pathname);\r\n\r\n            var registerOnceParams = {};\r\n            registerOnceParams[INITIAL_LANDING_PAGE_PROPERTY_NAME] = pagePath;\r\n\r\n            mixpanel.register_once(registerOnceParams);\r\n\r\n            var userId = mixpanel.get_property('$user_id');\r\n\r\n            if (userId) {\r\n                writeToUserProfileOnce(INITIAL_LANDING_PAGE_PROPERTY_NAME, pagePath);\r\n            }\r\n\r\n            if (pagePath != '/externallogin') {\r\n                mixpanel.register({ 'Previous Page': getPrevPage() });\r\n                savePrevPage(pagePath);\r\n            }\r\n\r\n            if (isPageLocalized) {\r\n                var userLocalizationPropertyName = 'Localization ' + pageLocale.toUpperCase();\r\n                writeToUserProfileOnce(userLocalizationPropertyName, 'Seen');\r\n            }\r\n\r\n            var initEvent = new CustomEvent('mixpanelInitiated');\r\n\r\n            window.dispatchEvent(initEvent);\r\n        },\r\n    });\r\n})();\r\n/* eslint-enable */\r\n","import { Parametrized } from '@flippingbook/web.utils/dist/service';\r\nimport type { IStorageProvider } from '@flippingbook/web.utils/dist/storage';\r\n\r\nconst STORAGE_KEY = '--FlippingBook.Site.ReloadCounter.Value';\r\n\r\nexport class ReloadCounter extends Parametrized<ReloadCounter.Params> {\r\n    private count = Number(this.params.storage.get(STORAGE_KEY)) || 0;\r\n\r\n    increment() {\r\n        this.count += 1;\r\n        this.params.storage.set(STORAGE_KEY, `${this.count}`);\r\n    }\r\n\r\n    get value() {\r\n        return this.count;\r\n    }\r\n}\r\n\r\nexport namespace ReloadCounter {\r\n    export interface Params {\r\n        storage: IStorageProvider;\r\n    }\r\n}\r\n","import { sessionStorage } from '@flippingbook/web.utils/dist/storage';\r\n\r\nimport { ReloadCounter } from '../reload-counter';\r\n\r\nexport const reloadCounter = new ReloadCounter({\r\n    storage: sessionStorage,\r\n});\r\n","import { Parametrized } from '@flippingbook/web.utils/dist/service';\r\n\r\nimport { ConsentGroup } from '../services/consentService';\r\nimport { consentService } from '../services/instance/consentService';\r\nimport { l10n } from '../services/instance/l10n';\r\nimport { reloadCounter } from '../services/instance/reload-counter';\r\nimport { runWithNewTask } from '../util/run-with-new-task';\r\n\r\nconst LAST_VISITED_PAGE_LOCALIZATION_STATUS_LS_KEY = '--Flippingbook.Site.LastLoc';\r\n\r\nexport class App extends Parametrized<App.Params> {\r\n    public contentBase: string;\r\n    public user = { loggedIn: false };\r\n\r\n    constructor(params: App.Params) {\r\n        super(params);\r\n\r\n        const localContentBase = '/content/';\r\n        this.contentBase = document.body.dataset.contentBase || localContentBase;\r\n    }\r\n\r\n    public async start() {\r\n        const { locale, pageLocale } = this.params;\r\n        await l10n.loadTranslations({ locale });\r\n\r\n        void runWithNewTask(async () => {\r\n            const { visitTracker } = await import('../services/instance/visitTracker');\r\n            visitTracker.trackVisit();\r\n        });\r\n\r\n        void runWithNewTask(async () => {\r\n            const { localStorage } = await import('@flippingbook/web.utils/dist/storage/StorageProvider');\r\n\r\n            if (consentService.hasConsent([ConsentGroup.Performance])) {\r\n                localStorage.setJSON(LAST_VISITED_PAGE_LOCALIZATION_STATUS_LS_KEY, {\r\n                    locale,\r\n                    pageLocale,\r\n                });\r\n            }\r\n        });\r\n\r\n        await runWithNewTask(async () => {\r\n            const [{ Layout }] = await Promise.all([runWithNewTask(() => import('../components/layout'))]);\r\n\r\n            const layout = new Layout(document.body, {});\r\n            void runWithNewTask(() => layout.onDescribe());\r\n\r\n            const { getLogger } = await import('../logger');\r\n            const logger = await runWithNewTask(() => getLogger(layout));\r\n\r\n            window.addEventListener('unhandledrejection', (event) => {\r\n                event.preventDefault();\r\n                const { reason } = event;\r\n\r\n                if (reason?.stack) {\r\n                    const driftApiUrl = 'js.driftt.com';\r\n\r\n                    if (reason.stack.toString().includes(driftApiUrl)) {\r\n                        return;\r\n                    }\r\n                }\r\n\r\n                if (/Loading( CSS)? chunk [\\d]+ failed/.test((reason?.message as string) || '')) {\r\n                    if (reloadCounter.value < 2) {\r\n                        reloadCounter.increment();\r\n                        window.location.reload();\r\n                        return;\r\n                    }\r\n                }\r\n\r\n                void logger.critical({\r\n                    title: 'Unhandled Promise Rejection',\r\n                    error: reason,\r\n                    message: reason && reason.toString(),\r\n                });\r\n            });\r\n        });\r\n\r\n        void runWithNewTask(() => {\r\n            const loadDrift = async () => {\r\n                const [{ driftService }, { mobileDetect }] = await Promise.all([\r\n                    runWithNewTask(() => import('../services/instance/driftService')),\r\n                    runWithNewTask(() => import('../services/instance/mobileDetect')),\r\n                ]);\r\n\r\n                const isMobile = await mobileDetect.isMobile();\r\n\r\n                if (isMobile) {\r\n                    driftService.initDriftIcon();\r\n                } else {\r\n                    void driftService.loadDriftWidget();\r\n                }\r\n            };\r\n\r\n            consentService.onBannerClosed(loadDrift);\r\n        });\r\n\r\n        if (this.params.webVitalsCollect) {\r\n            void runWithNewTask(async () => {\r\n                const { webVitalsService } = await import('../services/instance/web-vitals-service');\r\n                webVitalsService.start();\r\n            });\r\n        }\r\n    }\r\n}\r\n\r\nexport namespace App {\r\n    export interface Params {\r\n        locale: string;\r\n        pageLocale: string;\r\n        webVitalsCollect: boolean;\r\n    }\r\n}\r\n","import { FbAnalyticsApi } from '@flippingbook/web.utils/dist/apis/fb-analytics';\r\nimport { FbAnalytics } from '@flippingbook/web.utils/dist/fb-analytics';\r\nimport { localStorage } from '@flippingbook/web.utils/dist/storage';\r\n\r\nimport { serviceClient } from '../services/instance/api/serviceClient';\r\n\r\nconst fbAnalyticsApi = new FbAnalyticsApi({\r\n    client: serviceClient,\r\n});\r\n\r\nconst fbAnalytics = new FbAnalytics({\r\n    fbAnalyticsApi,\r\n    storage: localStorage,\r\n});\r\n\r\nwindow.fbAnalytics = fbAnalytics;\r\n\r\nexport const initLandingPageParam = () => {\r\n    const pageLocale = window.Mediaparts?.Bootstrap?.Params?.locale || 'en';\r\n    const path = window.location.pathname;\r\n    const initialPage =\r\n        path === '/' || path === `/${pageLocale}` ? '/' : path.replace(new RegExp(`^/${pageLocale}/`), '/');\r\n\r\n    fbAnalytics.registerOnce({ 'Initial Landing Page': initialPage });\r\n};\r\n","import { ConsentGroup } from '../services/consentService';\r\nimport { consentService } from '../services/instance/consentService';\r\nimport { runWithNewTask } from '../util/run-with-new-task';\r\n\r\nimport { initLandingPageParam } from './fb-analytics';\r\n\r\nconst importAnalytics = () => {\r\n    initLandingPageParam();\r\n    void runWithNewTask(() => {\r\n        // eslint-disable-next-line @typescript-eslint/no-require-imports\r\n        require('./bing');\r\n    });\r\n    if (consentService.hasConsent([ConsentGroup.Performance])) {\r\n        void runWithNewTask(() => {\r\n            // eslint-disable-next-line @typescript-eslint/no-require-imports\r\n            require('./GA');\r\n        });\r\n        void runWithNewTask(() => {\r\n            // eslint-disable-next-line @typescript-eslint/no-require-imports\r\n            require('./mixpanel');\r\n        });\r\n    }\r\n    window.removeEventListener('consentDataLoaded', importAnalytics);\r\n};\r\n\r\nwindow.addEventListener('consentDataLoaded', importAnalytics);\r\n","import { ModernScriptsLoader } from '../../modernScriptsLoader';\r\nimport { BemBlock } from '../../pages/bem';\r\nimport { runWithNewTask } from '../../util/run-with-new-task';\r\nimport '../../analytics-loaders';\r\n\r\nimport '../layout/style/index.css';\r\n\r\nvoid new ModernScriptsLoader().load();\r\n\r\nexport abstract class BasePage<P = Record<string, never>, E extends HTMLElement = HTMLElement> extends BemBlock<P, E> {\r\n    onDescribe() {\r\n        void runWithNewTask(async () => {\r\n            const { describeAccountMenu } = await import('../account-menu');\r\n            describeAccountMenu();\r\n        });\r\n\r\n        void runWithNewTask(async () => {\r\n            const { linkOutlineVisible } = await import('../../services/instance/linkOutlineVisible');\r\n            linkOutlineVisible.activate();\r\n        });\r\n    }\r\n}\r\n","import { App } from './app';\r\nimport { setLoadedClassForImage } from './util/image';\r\nimport { runWithNewTask } from './util/run-with-new-task';\r\n\r\nimport './components/loadable-image/style.css';\r\n\r\nexport class ModernScriptsLoader {\r\n    async load() {\r\n        void runWithNewTask(() => setLoadedClassForImage());\r\n\r\n        const bootstrap = window.Mediaparts?.Bootstrap;\r\n\r\n        if (!bootstrap) {\r\n            return;\r\n        }\r\n\r\n        const appParams: ConstructorParameters<typeof App>[0] = {\r\n            locale: 'en',\r\n            pageLocale: 'en',\r\n            webVitalsCollect: false,\r\n            ...bootstrap.Params,\r\n        };\r\n\r\n        await runWithNewTask(() => {\r\n            const flippingbook = new App(appParams);\r\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n            (window as any).flippingbook = flippingbook;\r\n        });\r\n\r\n        void runWithNewTask(async () => {\r\n            await window.flippingbook.start();\r\n\r\n            await runWithNewTask(() => bootstrap.InitScripts());\r\n        });\r\n    }\r\n}\r\n","import { Parametrized } from '@flippingbook/web.utils/dist/service';\r\n\r\nexport interface DescribeOptions {\r\n    index?: number;\r\n}\r\n\r\nabstract class Modifiable<P, E extends HTMLElement> extends Parametrized<P> {\r\n    protected readonly el: E;\r\n\r\n    constructor(el: E, params: P) {\r\n        super(params);\r\n        this.el = el;\r\n    }\r\n\r\n    protected applyModifiers(modifiers: BemBlock.ModifiersMap) {\r\n        const modifierClassName = (mod: string) => `${this.baseClassName()}--${mod}`;\r\n        const { toAdd, toRemove } = Object.keys(modifiers).reduce(\r\n            (acc, mod) => {\r\n                (modifiers[mod] ? acc.toAdd : acc.toRemove).push(modifierClassName(mod));\r\n                return acc;\r\n            },\r\n            {\r\n                toAdd: [] as string[],\r\n                toRemove: [] as string[],\r\n            },\r\n        );\r\n\r\n        toRemove.forEach((item) => this.el.classList.remove(item));\r\n        toAdd.forEach((item) => this.el.classList.add(item));\r\n    }\r\n\r\n    protected abstract baseClassName(): string;\r\n}\r\n\r\nexport abstract class BemBlock<P = Record<string, never>, E extends HTMLElement = HTMLElement> extends Modifiable<\r\n    P,\r\n    E\r\n> {\r\n    constructor(el: E, params: P) {\r\n        super(el, params);\r\n        this.checkClassName();\r\n    }\r\n\r\n    find(selector: string): HTMLElement | null {\r\n        return this.el.querySelector(selector);\r\n    }\r\n\r\n    ensure(selector: string): HTMLElement {\r\n        const found = this.find(selector);\r\n        if (!found) {\r\n            throw new Error(`Could not find ${selector}`);\r\n        }\r\n        return found;\r\n    }\r\n\r\n    findAll(selector: string): NodeListOf<HTMLElement> {\r\n        return this.el.querySelectorAll(selector);\r\n    }\r\n\r\n    elementClass(name: string, modifiers: BemBlock.ModifiersMap = {}): string {\r\n        const elementClass = `${this.blockName()}__${name}`;\r\n        return BemBlock.attachModifiers(elementClass, modifiers);\r\n    }\r\n\r\n    element(name: string): HTMLElement | null {\r\n        return this.find(`.${this.elementClass(name)}`);\r\n    }\r\n\r\n    allElements(name: string): HTMLElement[] {\r\n        return Array.from(this.findAll(`.${this.elementClass(name)}`));\r\n    }\r\n\r\n    ensureElement(name: string): HTMLElement {\r\n        return this.ensure(`.${this.elementClass(name)}`);\r\n    }\r\n\r\n    private static attachModifiers(className: string, modifiers: BemBlock.ModifiersMap) {\r\n        const selectedModifiers = Object.keys(modifiers).reduce((acc, mod) => {\r\n            return modifiers[mod] ? [...acc, `${className}--${mod}`] : acc;\r\n        }, [] as string[]);\r\n        const modifierClasses = selectedModifiers.join(' ');\r\n        return modifierClasses ? `${className} ${modifierClasses}` : className;\r\n    }\r\n\r\n    private checkClassName() {\r\n        if (!this.el.className.includes(this.blockName())) {\r\n            console.warn(`${this.el.className} does not include block name ${this.blockName()}`);\r\n        }\r\n    }\r\n\r\n    protected className(modifiers: BemBlock.ModifiersMap = {}): string {\r\n        return BemBlock.attachModifiers(this.blockName(), modifiers);\r\n    }\r\n\r\n    protected describeBlock<T, E extends HTMLElement, I extends BemBlock<T, E>>(\r\n        element: string,\r\n        BlockConstructor: BemBlock.Constructor<T, E, I>,\r\n        params: T,\r\n    ): I {\r\n        const foundElement = this.ensureElement(element);\r\n        const mountPoint = foundElement.firstElementChild as E;\r\n        if (!mountPoint) {\r\n            throw new Error(`Cannot describe empty element contents of ${foundElement.className}`);\r\n        }\r\n        const createdBlock = new BlockConstructor(mountPoint, params);\r\n        createdBlock.onDescribe();\r\n        return createdBlock;\r\n    }\r\n\r\n    protected describeAllBlocks<T, E extends HTMLElement, I extends BemBlock<T, E>>(\r\n        element: string,\r\n        BlockConstructor: BemBlock.Constructor<T, E, I>,\r\n        params: T,\r\n    ): I[] {\r\n        const elements = this.allElements(element);\r\n        return elements.map((element, index) => {\r\n            const mountPoint = element.firstElementChild as E;\r\n            if (!mountPoint) {\r\n                throw new Error(`Cannot describe empty element contents of ${element.className}`);\r\n            }\r\n            const createdBlock = new BlockConstructor(mountPoint, params);\r\n            createdBlock.onDescribe({ index });\r\n            return createdBlock;\r\n        });\r\n    }\r\n\r\n    protected describeElement<T, E extends HTMLElement, I extends BemElement<T, E>>(\r\n        element: string,\r\n        ElementConstructor: BemElement.Constructor<T, E, I>,\r\n        params: T,\r\n    ): I {\r\n        const targetEl = this.ensureElement(element) as E;\r\n        const createdElement = new ElementConstructor(targetEl, element, this.elementClass(element), params);\r\n        createdElement.onDescribe();\r\n        return createdElement;\r\n    }\r\n\r\n    protected describeAllElements<T, E extends HTMLElement, I extends BemElement<T, E>>(\r\n        elementName: string,\r\n        ElementConstructor: BemElement.Constructor<T, E, I>,\r\n        params: T,\r\n    ): I[] {\r\n        const elements = this.allElements(elementName);\r\n        return elements.map((element, index) => {\r\n            const createdElement = new ElementConstructor(\r\n                element as E,\r\n                elementName,\r\n                this.elementClass(elementName),\r\n                params,\r\n            );\r\n            createdElement.onDescribe({ index });\r\n            return createdElement;\r\n        });\r\n    }\r\n\r\n    protected abstract blockName(): string;\r\n\r\n    protected baseClassName(): string {\r\n        return this.blockName();\r\n    }\r\n\r\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n    onDescribe(options?: DescribeOptions) {}\r\n}\r\n\r\nexport namespace BemBlock {\r\n    export interface ModifiersMap {\r\n        [modifier: string]: boolean;\r\n    }\r\n\r\n    export interface Constructor<P, E extends HTMLElement, I extends BemBlock<P, E>> {\r\n        new (el: E, params: P): I;\r\n    }\r\n}\r\n\r\nexport abstract class BemElement<P = Record<string, never>, E extends HTMLElement = HTMLElement> extends Modifiable<\r\n    P,\r\n    E\r\n> {\r\n    protected readonly elementClassName: string;\r\n    protected readonly elementName: string;\r\n\r\n    constructor(el: E, elementName: string, elementClassName: string, params: P) {\r\n        super(el, params);\r\n        this.elementName = elementName;\r\n        this.elementClassName = elementClassName;\r\n        this.checkClassName();\r\n    }\r\n\r\n    private checkClassName() {\r\n        if (!this.el.className.includes(this.elementName)) {\r\n            console.warn(`${this.el.className} does not include element name ${this.elementName}`);\r\n        }\r\n    }\r\n\r\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n    onDescribe(options?: DescribeOptions) {}\r\n\r\n    protected baseClassName(): string {\r\n        return this.elementClassName;\r\n    }\r\n}\r\n\r\nexport namespace BemElement {\r\n    export interface Constructor<P, E extends HTMLElement, I extends BemElement<P, E>> {\r\n        new (el: E, elementName: string, elementClassName: string, params: P): I;\r\n    }\r\n}\r\n","export enum ConsentGroup {\r\n    Necessary = 'C0001',\r\n    Performance = 'C0002',\r\n    Functional = 'C0003',\r\n    Targeting = 'C0004',\r\n    Media = 'C0005',\r\n}\r\n\r\nexport class ConsentService {\r\n    private groups: ConsentGroup[] = [];\r\n\r\n    private getFromCookie() {\r\n        const match = document.cookie.match('(^| )OptanonConsent=([^;]+)');\r\n        if (match) {\r\n            const groups = new URLSearchParams(decodeURIComponent(match[2])).get('groups');\r\n            if (groups) {\r\n                return groups.split(',').reduce((acc, curr) => {\r\n                    const group = curr.split(':');\r\n                    if (group[1] === '1') {\r\n                        return `${acc},${group[0]}`;\r\n                    }\r\n                    return acc;\r\n                }, '');\r\n            }\r\n        }\r\n    }\r\n\r\n    public onBannerClosed(cb: () => Promise<void> | void) {\r\n        if (window.OneTrust && 'GetDomainData' in window.OneTrust) {\r\n            this.actClosedCallback(cb);\r\n        } else {\r\n            window.addEventListener('consentDataLoaded', () => this.actClosedCallback(cb));\r\n        }\r\n    }\r\n\r\n    private actClosedCallback = (cb: () => Promise<void> | void) => {\r\n        const domainData = window.OneTrust?.GetDomainData?.();\r\n        if (!domainData?.ForceConsent || window.OneTrust?.IsAlertBoxClosed()) {\r\n            void cb();\r\n        } else {\r\n            window.OneTrust?.OnConsentChanged(cb);\r\n        }\r\n    };\r\n\r\n    private updateGroups = () => {\r\n        const groupString = window.OnetrustActiveGroups || this.getFromCookie();\r\n        this.groups = (groupString?.split(',').filter((x) => x !== '') as ConsentGroup[]) || [];\r\n    };\r\n\r\n    public constructor() {\r\n        this.updateGroups();\r\n\r\n        const handleDataLoaded = () => {\r\n            this.updateGroups();\r\n            window.removeEventListener('consentDataLoaded', handleDataLoaded);\r\n        };\r\n\r\n        window.addEventListener('consentDataLoaded', handleDataLoaded);\r\n    }\r\n\r\n    public hasConsent(groups: ConsentGroup[]) {\r\n        if (!this.groups.length) {\r\n            return true;\r\n        }\r\n\r\n        return groups.every((g) => this.groups.includes(g));\r\n    }\r\n}\r\n","import { HttpClient, jsonFetcher } from '@flippingbook/web.utils/dist/webservice';\r\nimport type { IHttpClient } from '@flippingbook/web.utils/dist/webservice';\r\n\r\nexport const httpClient: IHttpClient = new HttpClient({\r\n    fetcher: jsonFetcher(window.fetch),\r\n});\r\n","import { ServiceClient } from '@flippingbook/web.utils/dist/webservice';\r\nimport type { IServiceClient } from '@flippingbook/web.utils/dist/webservice';\r\n\r\nimport { serviceLocator } from '../serviceLocator';\r\n\r\nimport { httpClient } from './httpClient';\r\n\r\nexport const serviceClient: IServiceClient = new ServiceClient({\r\n    httpClient,\r\n    serviceLocator,\r\n});\r\n","import { ServiceLocatorApi } from '@flippingbook/web.utils/dist/apis/service-locator';\r\nimport type { IServiceLocatorApi } from '@flippingbook/web.utils/dist/apis/service-locator';\r\n\r\nimport { httpClient } from './httpClient';\r\n\r\nconst locatorUrl = window.Mediaparts!.Bootstrap!.Params!.registry.url;\r\n\r\nexport const serviceLocatorApi: IServiceLocatorApi = new ServiceLocatorApi({\r\n    httpClient,\r\n    locatorUrl,\r\n});\r\n","import { ConsentService } from '../consentService';\r\n\r\nexport const consentService = new ConsentService();\r\n","import { L10nService } from '../l10n-serivce';\r\nimport type { IL10nService } from '../l10n-serivce';\r\n\r\nexport const l10n: IL10nService = new L10nService();\r\n","import type { ServiceEndpointJson } from '@flippingbook/web.utils/dist/apis/service-locator/IServiceLocatorApi';\r\nimport { ServiceLocator } from '@flippingbook/web.utils/dist/webservice';\r\nimport type { IServiceLocator, LocatorCache } from '@flippingbook/web.utils/dist/webservice';\r\n\r\nimport { serviceLocatorApi } from './api/serviceLocatorApi';\r\n\r\ntype Preseed = {\r\n    [key: string]: {\r\n        [subsystem: string]: { [service: string]: ServiceEndpointJson[] };\r\n    };\r\n};\r\n\r\nconst prepareLocatorCache = () => {\r\n    const preseed: Preseed = window.Mediaparts?.Bootstrap?.Params?.registry.preseed ?? {};\r\n    return Object.keys(preseed)\r\n        .filter((key) => key?.[0] !== '/')\r\n        .reduce((cache: LocatorCache, key) => {\r\n            const [subsystem, service] = key.split('/');\r\n            const endpoints = preseed?.[key]?.[subsystem]?.[service];\r\n            const endpoint = endpoints?.reduce((previousEndpoint, currentEndpoint) => {\r\n                if (!previousEndpoint.Version || !currentEndpoint.Version) {\r\n                    return previousEndpoint;\r\n                }\r\n\r\n                return currentEndpoint.Version > previousEndpoint.Version ? currentEndpoint : previousEndpoint;\r\n            });\r\n\r\n            return endpoint\r\n                ? {\r\n                      ...cache,\r\n                      [subsystem]: {\r\n                          ...cache[subsystem],\r\n                          [service]: ServiceLocator.endpointUrl(endpoint),\r\n                      },\r\n                  }\r\n                : cache;\r\n        }, {});\r\n};\r\n\r\nexport const serviceLocator: IServiceLocator = new ServiceLocator({\r\n    serviceLocatorApi,\r\n    cache: prepareLocatorCache(),\r\n});\r\n","import type { en as AllLocsType } from '../localization/en';\r\n\r\nexport interface IL10nService {\r\n    loadTranslations(params?: { locale: string }): Promise<void>;\r\n    get(): typeof AllLocsType;\r\n    getLoadedLocale(): string;\r\n    pluralForm(forms: string, n: number): string;\r\n}\r\n\r\nconst DEFAULT_LOCALE = 'en';\r\n\r\nexport class L10nService implements IL10nService {\r\n    private translations: typeof AllLocsType | null = null;\r\n    private loadedLocale = DEFAULT_LOCALE;\r\n\r\n    async loadTranslations(params: { locale?: string } = {}): Promise<void> {\r\n        const locale = params.locale || window.Mediaparts?.Bootstrap?.Params?.locale || DEFAULT_LOCALE;\r\n\r\n        try {\r\n            this.translations = (await import(`../localization/${locale}`)).default;\r\n            this.loadedLocale = locale;\r\n        } catch {\r\n            this.translations = (await import(`../localization/${DEFAULT_LOCALE}`)).default;\r\n        }\r\n    }\r\n\r\n    get(): typeof AllLocsType {\r\n        if (!this.translations) {\r\n            throw new Error('loadTranslations should be called before get');\r\n        }\r\n        return this.translations;\r\n    }\r\n\r\n    getLoadedLocale() {\r\n        return this.loadedLocale;\r\n    }\r\n\r\n    pluralForm(forms: string, n: number): string {\r\n        const pluralRule = this.translations?.Common.PluralForms;\r\n\r\n        if (!pluralRule) {\r\n            throw new Error('loadTranslations should be called before pluralForm');\r\n        }\r\n\r\n        if (!forms) {\r\n            return `${n}`;\r\n        }\r\n\r\n        // eslint-disable-next-line prefer-const\r\n        let nplurals = 1;\r\n        // eslint-disable-next-line prefer-const\r\n        let plural = 0;\r\n        // eslint-disable-next-line no-eval\r\n        eval(pluralRule);\r\n        return forms.split('|')[plural % nplurals].replace('~', `${n}`);\r\n    }\r\n}\r\n","export function runWithNewTask<T>(callback: () => T) {\r\n    return new Promise<T>((resolve) =>\r\n        requestAnimationFrame(() => {\r\n            setTimeout(() => {\r\n                const result = callback();\r\n                resolve(result);\r\n            });\r\n        }),\r\n    );\r\n}\r\n","var map = {\n\t\"./de\": [\n\t\t66451,\n\t\t6451\n\t],\n\t\"./de/\": [\n\t\t66451,\n\t\t6451\n\t],\n\t\"./de/index\": [\n\t\t66451,\n\t\t6451\n\t],\n\t\"./de/index.ts\": [\n\t\t66451,\n\t\t6451\n\t],\n\t\"./en\": [\n\t\t33567,\n\t\t3567\n\t],\n\t\"./en/\": [\n\t\t33567,\n\t\t3567\n\t],\n\t\"./en/index\": [\n\t\t33567,\n\t\t3567\n\t],\n\t\"./en/index.ts\": [\n\t\t33567,\n\t\t3567\n\t],\n\t\"./es\": [\n\t\t93276,\n\t\t3276\n\t],\n\t\"./es/\": [\n\t\t93276,\n\t\t3276\n\t],\n\t\"./es/index\": [\n\t\t93276,\n\t\t3276\n\t],\n\t\"./es/index.ts\": [\n\t\t93276,\n\t\t3276\n\t],\n\t\"./fr\": [\n\t\t31620,\n\t\t1620\n\t],\n\t\"./fr/\": [\n\t\t31620,\n\t\t1620\n\t],\n\t\"./fr/index\": [\n\t\t31620,\n\t\t1620\n\t],\n\t\"./fr/index.ts\": [\n\t\t31620,\n\t\t1620\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 2481;\nmodule.exports = webpackAsyncContext;"],"names":["scriptTag","gtag","window","dataLayer","push","arguments","document","createElement","async","src","Mediaparts","GaSettings","V4ApiKey","setTimeout","body","appendChild","Date","anonymize_ip","link_attribution","referrer","send_page_view","custom_map","dimension3","dimension4","AWApiKey","test","location","pathname","w","d","t","u","f","n","i","o","ti","BingSettings","bingId","q","UET","onload","onreadystatechange","s","this","readyState","getElementsByTagName","parentNode","insertBefore","Deferred","mixpanelLoaded","e","a","__SV","k","h","b","c","l","j","g","hash","match","RegExp","JSON","parse","decodeURIComponent","action","sessionStorage","setItem","history","replaceState","desiredHash","title","search","m","mixpanel","_i","init","split","length","concat","Array","prototype","slice","call","people","toString","type","MIXPANEL_CUSTOM_LIB_URL","protocol","INITIAL_LANDING_PAGE_PROPERTY_NAME","LAST_VISITED_PAGE_LS_KEY","pageLocale","Bootstrap","Params","locale","isPageLocalized","writeToUserProfileOnce","property","value","propertyValueFromMixPanel","get_property","setOnceParams","undefined","set_once","getPagePath","path","pagePath","replace","origin","silent","cb","getQueryParam","url","param","results","exec","index","campaign_keywords","kw","params","first_params","over_params","URL","MixPanelSettings","token","loaded","resolve","register_once","register","registerOnceParams","getItem","toUpperCase","initEvent","CustomEvent","dispatchEvent","STORAGE_KEY","ReloadCounter","Parametrized","count","Number","storage","get","increment","set","reloadCounter","App","constructor","super","user","loggedIn","contentBase","dataset","start","l10n","loadTranslations","visitTracker","trackVisit","localStorage","hasConsent","Performance","setJSON","Layout","Promise","all","layout","onDescribe","getLogger","logger","addEventListener","event","preventDefault","reason","stack","driftApiUrl","includes","message","reload","critical","error","onBannerClosed","driftService","mobileDetect","isMobile","initDriftIcon","loadDriftWidget","webVitalsCollect","webVitalsService","fbAnalyticsApi","client","serviceClient","fbAnalytics","importAnalytics","initialPage","registerOnce","initLandingPageParam","removeEventListener","load","bootstrap","appParams","flippingbook","InitScripts","BasePage","describeAccountMenu","linkOutlineVisible","activate","Modifiable","el","applyModifiers","modifiers","modifierClassName","mod","baseClassName","toAdd","toRemove","Object","keys","reduce","acc","forEach","item","classList","remove","add","BemBlock","checkClassName","find","selector","querySelector","ensure","found","Error","findAll","querySelectorAll","elementClass","name","blockName","attachModifiers","element","allElements","from","ensureElement","className","modifierClasses","join","console","warn","describeBlock","BlockConstructor","foundElement","mountPoint","firstElementChild","createdBlock","describeAllBlocks","map","describeElement","ElementConstructor","createdElement","describeAllElements","elementName","options","BemElement","elementClassName","ConsentGroup","ConsentService","getFromCookie","cookie","groups","URLSearchParams","curr","group","OneTrust","actClosedCallback","domainData","GetDomainData","ForceConsent","IsAlertBoxClosed","OnConsentChanged","updateGroups","groupString","OnetrustActiveGroups","filter","x","handleDataLoaded","every","httpClient","fetcher","fetch","serviceLocator","locatorUrl","registry","serviceLocatorApi","consentService","cache","preseed","key","subsystem","service","endpoints","endpoint","previousEndpoint","currentEndpoint","Version","endpointUrl","prepareLocatorCache","DEFAULT_LOCALE","L10nService","translations","loadedLocale","default","getLoadedLocale","pluralForm","forms","pluralRule","Common","PluralForms","nplurals","plural","eval","runWithNewTask","callback","requestAnimationFrame","result","webpackAsyncContext","req","__webpack_require__","then","code","ids","id","module","exports"],"sourceRoot":""}