{"version":3,"file":"online-digital-newsletter-bundle.js","mappings":"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","sources":["webpack://flippingbooksite/webpack/runtime/chunk loaded","webpack://flippingbooksite/webpack/runtime/create fake namespace object","webpack://flippingbooksite/webpack/runtime/load script","webpack://flippingbooksite/./sources/src/components/go-trial-button.ts","webpack://flippingbooksite/./sources/src/util/load.ts","webpack://flippingbooksite/./sources/src/services/instance/flipbook-embed-script.ts","webpack://flippingbooksite/./sources/src/services/flipbook-embed-script.ts","webpack://flippingbooksite/./sources/src/components/interactive-stub/index.ts","webpack://flippingbooksite/./sources/src/components/embed/index.ts","webpack://flippingbooksite/./sources/src/components/hidden.ts","webpack://flippingbooksite/./sources/src/components/our-products/index.ts","webpack://flippingbooksite/./sources/src/components/video.ts","webpack://flippingbooksite/./sources/src/pages/demos/online-digital-newsletter/brand-your.ts","webpack://flippingbooksite/./sources/src/pages/demos/online-digital-newsletter/deliver.ts","webpack://flippingbooksite/./sources/src/services/layout-checker.ts","webpack://flippingbooksite/./sources/src/services/instance/layoutChecker.ts","webpack://flippingbooksite/./sources/src/components/FeaturePane/index.ts","webpack://flippingbooksite/./sources/src/pages/demos/online-digital-newsletter/features.ts","webpack://flippingbooksite/./sources/src/components/calendly-button/base/index.ts","webpack://flippingbooksite/./sources/src/components/calendly-button/fbo/index.ts","webpack://flippingbooksite/./sources/src/pages/demos/online-digital-newsletter/first-screen.ts","webpack://flippingbooksite/./sources/src/pages/demos/online-digital-newsletter/index.ts","webpack://flippingbooksite/./sources/src/services/analytics.ts","webpack://flippingbooksite/./sources/src/services/instance/analytics.ts","webpack://flippingbooksite/./sources/src/services/CTAanalytics.ts","webpack://flippingbooksite/./sources/src/services/instance/cta-analytics.ts","webpack://flippingbooksite/./sources/src/services/instance/siteAntispamService.ts","webpack://flippingbooksite/./sources/src/services/intersector.ts","webpack://flippingbooksite/./sources/src/util/current-layout.ts","webpack://flippingbooksite/./sources/src/util/get-login-consumer.ts","webpack://flippingbooksite/./sources/src/util/image.ts","webpack://flippingbooksite/./sources/src/util/is-logged-in.ts","webpack://flippingbooksite/./sources/src/util/is-visible.ts","webpack://flippingbooksite/./sources/src/util/run-once-on-intersect.ts","webpack://flippingbooksite/external var \"{\\\"featureFlags\\\":{},\\\"sentryDsn\\\":\\\"https://8fa71d45f6aa4a06be961166e0ee495b@sentry.io/1359544\\\",\\\"sentryEnable\\\":false}\"","webpack://flippingbooksite/webpack/bootstrap","webpack://flippingbooksite/webpack/runtime/amd options","webpack://flippingbooksite/webpack/runtime/compat get default export","webpack://flippingbooksite/webpack/runtime/define property getters","webpack://flippingbooksite/webpack/runtime/ensure chunk","webpack://flippingbooksite/webpack/runtime/get javascript chunk filename","webpack://flippingbooksite/webpack/runtime/get mini-css chunk filename","webpack://flippingbooksite/webpack/runtime/global","webpack://flippingbooksite/webpack/runtime/hasOwnProperty shorthand","webpack://flippingbooksite/webpack/runtime/make namespace object","webpack://flippingbooksite/webpack/runtime/node module decorator","webpack://flippingbooksite/webpack/runtime/runtimeId","webpack://flippingbooksite/webpack/runtime/publicPath","webpack://flippingbooksite/webpack/runtime/css loading","webpack://flippingbooksite/webpack/runtime/jsonp chunk loading","webpack://flippingbooksite/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"flippingbooksite:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","import { BemBlock, BemElement } from '../pages/bem';\r\nimport type { CTAAnalyticsService } from '../services/CTAanalytics';\r\nimport { ctaAnalytics } from '../services/instance/cta-analytics';\r\nimport { serviceLocator } from '../services/instance/serviceLocator';\r\nimport { siteAntispamService } from '../services/instance/siteAntispamService';\r\nimport { getLoginConsumer } from '../util/get-login-consumer';\r\nimport { isLoggedIn } from '../util/is-logged-in';\r\nimport { runWithNewTask } from '../util/run-with-new-task';\r\n\r\nfunction goToUrlOnNextTask(url: string) {\r\n    // transition to the page should be performed after all other events\r\n    // Example: sending analytics\r\n    setTimeout(() => {\r\n        window.location.href = url;\r\n    }, 0);\r\n}\r\n\r\nasync function getLink(product: string, direction: string | null) {\r\n    const loggedIn = isLoggedIn();\r\n\r\n    const [baseRegisterUrl] = await serviceLocator.resolve({\r\n        subsystem: 'generic',\r\n        service: 'logon-register-ui',\r\n    });\r\n    const consumer = getLoginConsumer();\r\n    const userDetachedContext = siteAntispamService.getUserDetachedContext();\r\n    const registerUrl = `${baseRegisterUrl}?r=${consumer}&t=both&asc=${userDetachedContext}`;\r\n\r\n    if (product === 'fb-online') {\r\n        return !loggedIn ? `${registerUrl}&products=FBOnline` : '/account/online';\r\n    }\r\n\r\n    if (product === 'fb-publisher' && direction === 'auto') {\r\n        return !loggedIn\r\n            ? `${registerUrl}&products=Publisher2&resume-url=${window.encodeURIComponent(\r\n                  `${window.location.origin}/downloads?autostart=true`,\r\n              )}`\r\n            : '/downloads?autostart=true';\r\n    }\r\n\r\n    if (product === 'fb-publisher' && direction === 'account') {\r\n        return '/account/software';\r\n    }\r\n\r\n    if (product === 'fb-publisher') {\r\n        return '/downloads';\r\n    }\r\n\r\n    if (product === 'fb-server') {\r\n        return '/automation';\r\n    }\r\n\r\n    if (loggedIn) {\r\n        return '/account/autonav';\r\n    }\r\n\r\n    return '/account/signup';\r\n}\r\n\r\nexport class GoTrialButton extends BemElement<GoTrialButton.Params> {\r\n    private direction = this.el.getAttribute('data-direction');\r\n    private product = this.el.getAttribute('data-product') || 'fb-online';\r\n\r\n    public onDescribe() {\r\n        this.el.addEventListener('click', (ev) => {\r\n            void this.onLinkClick(ev);\r\n        });\r\n    }\r\n\r\n    private sendAnalytics = () => {\r\n        return ctaAnalytics.send(this.params.position);\r\n    };\r\n\r\n    private onLinkClick = async (ev: Event) => {\r\n        ev.preventDefault();\r\n        ev.stopPropagation();\r\n\r\n        await runWithNewTask(() => this.sendAnalytics());\r\n\r\n        const newLink = await getLink(this.product, this.direction);\r\n        goToUrlOnNextTask(newLink);\r\n    };\r\n}\r\nexport namespace GoTrialButton {\r\n    export interface Params {\r\n        position: CTAAnalyticsService.Position;\r\n    }\r\n}\r\n\r\nexport const GoTrialButtonWrapper = (blockName: string) =>\r\n    class GoTrialButtonWrapper extends BemBlock<GoTrialButton.Params> {\r\n        protected blockName(): string {\r\n            return blockName;\r\n        }\r\n\r\n        onDescribe() {\r\n            this.describeElement('go-trial', GoTrialButton, this.params);\r\n        }\r\n    };\r\n","import * as load from '@flippingbook/web.utils/dist/util/load';\r\n\r\nconst contentRoot = () => {\r\n    const maybeContentBaseElement = document.querySelector('[data-content-base]');\r\n    const contentBase = maybeContentBaseElement ? maybeContentBaseElement.getAttribute('data-content-base') || '' : '';\r\n    return contentBase.replace(/\\/$/, '');\r\n};\r\n\r\nexport const loadJs = load.loadJs(contentRoot());\r\nexport const loadCss = load.loadCss(contentRoot());\r\n","import { FlipbookEmbedScript } from '../flipbook-embed-script';\r\n\r\nexport const flipbookEmbedScript = new FlipbookEmbedScript();\r\n","import { loadJs } from '../util/load';\r\n\r\nexport class FlipbookEmbedScript {\r\n    private fboLoadPromise: Promise<void> | undefined;\r\n    private salespalLoadPromise: Promise<void> | undefined;\r\n    private cldbzLoadPromise: Promise<void> | undefined;\r\n\r\n    addFBOScriptByHashId(hashId: string) {\r\n        if (this.fboLoadPromise === undefined) {\r\n            this.fboLoadPromise = loadJs(`https://online.flippingbook.com/EmbedScriptUrl.aspx?m=redir&hid=${hashId}`);\r\n        }\r\n\r\n        return this.fboLoadPromise;\r\n    }\r\n\r\n    addSalespalScriptById(id: string) {\r\n        if (this.salespalLoadPromise === undefined) {\r\n            this.salespalLoadPromise = loadJs(`https://api.salespal.com/embed-script-url/?id=${id}`);\r\n        }\r\n\r\n        return this.salespalLoadPromise;\r\n    }\r\n\r\n    addCLDBZScript(id: string) {\r\n        if (this.cldbzLoadPromise === undefined) {\r\n            this.cldbzLoadPromise = loadJs(`https://cld.bz/e/${id}/embed.js?mode=redir&uni=4.0.0`);\r\n        }\r\n\r\n        return this.cldbzLoadPromise;\r\n    }\r\n}\r\n","import { BemBlock } from '../../pages/bem';\r\n\r\nexport class InteractiveStub extends BemBlock<InteractiveStub.Params> {\r\n    protected blockName(): string {\r\n        return 'S-Interactive-Stub';\r\n    }\r\n\r\n    onDescribe(): void {\r\n        this.el.addEventListener(\r\n            'click',\r\n            () => {\r\n                this.applyModifiers({ loading: true });\r\n\r\n                if (this.params.onClick) {\r\n                    this.params.onClick();\r\n                }\r\n            },\r\n            { once: true },\r\n        );\r\n    }\r\n}\r\n\r\nexport namespace InteractiveStub {\r\n    export interface Params {\r\n        onClick?: () => void;\r\n    }\r\n}\r\n","import { BemBlock, BemElement } from '../../pages/bem';\r\nimport { ConsentGroup } from '../../services/consentService';\r\nimport { consentService } from '../../services/instance/consentService';\r\nimport { flipbookEmbedScript } from '../../services/instance/flipbook-embed-script';\r\nimport { SingleElementIntersector } from '../../services/intersector';\r\nimport { InteractiveStub } from '../interactive-stub';\r\n\r\nconst THRESHOLD = 0;\r\n\r\nconst embedLinkParamsMap = {\r\n    fbo: {\r\n        type: 'fbo',\r\n        globalEmbedName: 'fboEmbed',\r\n        activationClassName: 'fbo-embed',\r\n        embedIdName: 'fboId',\r\n        onEmbedScriptAdd: (id: string) => flipbookEmbedScript.addFBOScriptByHashId(id),\r\n    },\r\n    salespal: {\r\n        type: 'fbp',\r\n        globalEmbedName: 'fbpEmbed',\r\n        activationClassName: 'fbp-embed',\r\n        embedIdName: 'fbpId',\r\n        onEmbedScriptAdd: (id: string) => flipbookEmbedScript.addSalespalScriptById(id),\r\n    },\r\n    cldbz: {\r\n        type: 'fbc',\r\n        globalEmbedName: 'fbcEmbed',\r\n        activationClassName: 'fbc-embed',\r\n        embedIdName: 'fbcId',\r\n        onEmbedScriptAdd: (id: string) => flipbookEmbedScript.addCLDBZScript(id),\r\n    },\r\n};\r\n\r\nclass EmbedLink extends BemElement<EmbedLink.Params> {\r\n    get embedId() {\r\n        return this.el.dataset[this.params.embedIdName] || '';\r\n    }\r\n\r\n    addEmbedScript() {\r\n        return this.params.onEmbedScriptAdd(this.embedId);\r\n    }\r\n\r\n    showLink() {\r\n        this.el.style.display = '';\r\n    }\r\n\r\n    prepareForActivate() {\r\n        this.el.style.display = 'none';\r\n        if (!consentService.hasConsent([ConsentGroup.Targeting, ConsentGroup.Performance])) {\r\n            this.el.setAttribute(`data-${this.params.type}-nocookie`, '');\r\n        }\r\n        this.el.classList.add(this.params.activationClassName);\r\n    }\r\n\r\n    activateEmbeds() {\r\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n        // @ts-ignore\r\n        window[this.params.globalEmbedName].parseAllEmbeds();\r\n    }\r\n}\r\n\r\nnamespace EmbedLink {\r\n    export interface Params {\r\n        type: Embed.EmbedType;\r\n        globalEmbedName: string;\r\n        activationClassName: string;\r\n        embedIdName: string;\r\n        onEmbedScriptAdd: (id: string) => Promise<void>;\r\n    }\r\n}\r\n\r\nexport class Embed extends BemBlock<Embed.Params> {\r\n    protected blockName(): string {\r\n        return 'S-Embed';\r\n    }\r\n\r\n    private embedLink = this.describeElement('link', EmbedLink, embedLinkParamsMap[this.params.type]);\r\n\r\n    private hideStub = () => this.applyModifiers({ loaded: true });\r\n\r\n    watch() {\r\n        const threshold = this.params.threshold || THRESHOLD;\r\n        const intersector = new SingleElementIntersector({\r\n            el: this.el,\r\n            onIntersectionChange: async (entry: IntersectionObserverEntry) => {\r\n                if (entry.isIntersecting && entry.intersectionRatio >= threshold) {\r\n                    intersector.unobserve();\r\n                    this.embedLink.prepareForActivate();\r\n\r\n                    try {\r\n                        await this.embedLink.addEmbedScript();\r\n                        this.embedLink.activateEmbeds();\r\n                    } catch {\r\n                        this.embedLink.showLink();\r\n                    }\r\n                }\r\n            },\r\n            threshold,\r\n        });\r\n        intersector.observe();\r\n    }\r\n\r\n    onDescribe(): void {\r\n        const reducedMotionMode = window.matchMedia('(prefers-reduced-motion)').matches;\r\n\r\n        if (!reducedMotionMode) {\r\n            this.watch();\r\n            return;\r\n        }\r\n\r\n        const stubParams: InteractiveStub.Params = {\r\n            onClick: async () => {\r\n                this.embedLink.prepareForActivate();\r\n\r\n                let hideStubTimeoutId = 0;\r\n\r\n                const publicationLoadedHandler = (event: MessageEvent) => {\r\n                    if (\r\n                        /.flippingbook.(com|cld.bz)$/.test(event.origin) &&\r\n                        event.data.action === 'publicationLoaded' &&\r\n                        this.embedLink.embedId === event.data.id\r\n                    ) {\r\n                        clearTimeout(hideStubTimeoutId);\r\n                        window.removeEventListener('message', publicationLoadedHandler);\r\n                        setTimeout(() => this.hideStub(), 1000);\r\n                    }\r\n                };\r\n\r\n                try {\r\n                    window.addEventListener('message', publicationLoadedHandler);\r\n\r\n                    await this.embedLink.addEmbedScript();\r\n                    this.embedLink.activateEmbeds();\r\n\r\n                    if (this.params.noIframe) {\r\n                        window.removeEventListener('message', publicationLoadedHandler);\r\n                        this.hideStub();\r\n                    }\r\n\r\n                    hideStubTimeoutId = window.setTimeout(() => {\r\n                        window.removeEventListener('message', publicationLoadedHandler);\r\n                        this.hideStub();\r\n                    }, 3000);\r\n                } catch {\r\n                    this.embedLink.showLink();\r\n                    window.removeEventListener('message', publicationLoadedHandler);\r\n                }\r\n            },\r\n        };\r\n\r\n        this.describeBlock('stub', InteractiveStub, stubParams);\r\n    }\r\n}\r\n\r\nexport namespace Embed {\r\n    export type EmbedType = 'fbo' | 'salespal' | 'cldbz';\r\n\r\n    export interface Params {\r\n        type: EmbedType;\r\n        noIframe?: boolean;\r\n        threshold?: number;\r\n    }\r\n}\r\n\r\nexport const EmbedWrapper = (blockName: string) =>\r\n    class EmbedWrapper extends BemBlock<Embed.Params> {\r\n        protected blockName(): string {\r\n            return blockName;\r\n        }\r\n\r\n        onDescribe() {\r\n            this.describeBlock('embed', Embed, this.params);\r\n        }\r\n    };\r\n","import { BemElement } from '../pages/bem';\r\nimport type { BemBlock } from '../pages/bem';\r\nimport { SingleElementIntersector } from '../services/intersector';\r\n\r\nexport class HiddenElement<P extends HiddenElement.Params = Record<string, never>> extends BemElement<P> {\r\n    private shown = false;\r\n\r\n    show() {\r\n        this.shown = true;\r\n        this.applyModifiers();\r\n        this.params.onShow?.();\r\n    }\r\n\r\n    protected applyModifiers(modifiers: BemBlock.ModifiersMap = {}) {\r\n        return super.applyModifiers({ ...modifiers, shown: this.shown });\r\n    }\r\n}\r\n\r\nexport namespace HiddenElement {\r\n    export interface Params {\r\n        onShow?: () => void;\r\n    }\r\n}\r\n\r\nexport class AnimatedHiddenElement<P extends AnimatedHiddenElement.Params> extends HiddenElement<P> {\r\n    private animated = false;\r\n    private reducedMotionMode: boolean = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n\r\n    onDescribe() {\r\n        super.onDescribe();\r\n        if (this.reducedMotionMode) {\r\n            return;\r\n        }\r\n        new SingleElementIntersector({\r\n            el: this.el,\r\n            onIntersectionChange: (entry) => this.onIntersectionChange(entry),\r\n            threshold: [0, this.treshold()],\r\n        }).observe();\r\n        if (this.params.onTransitionEnd) {\r\n            this.el.addEventListener('transitionend', this.params.onTransitionEnd);\r\n        }\r\n    }\r\n\r\n    protected applyModifiers(modifiers: BemBlock.ModifiersMap = {}) {\r\n        return super.applyModifiers({ ...modifiers, animated: this.animated });\r\n    }\r\n\r\n    private onIntersectionChange(entry: IntersectionObserverEntry) {\r\n        if (entry.isIntersecting && entry.intersectionRatio >= this.treshold()) {\r\n            this.onShown();\r\n        } else {\r\n            this.onHidden(entry);\r\n        }\r\n    }\r\n\r\n    private onShown() {\r\n        this.animate();\r\n        if (this.params.onScrollIn) {\r\n            this.params.onScrollIn();\r\n        }\r\n    }\r\n\r\n    private onHidden(entry: IntersectionObserverEntry): void {\r\n        if (entry.boundingClientRect.top < 0) {\r\n            this.animate();\r\n        }\r\n        this.params.onScrollOut?.();\r\n    }\r\n\r\n    private animate() {\r\n        this.animated = true;\r\n        this.applyModifiers();\r\n        this.params.onAnimate?.();\r\n    }\r\n\r\n    protected treshold(): number {\r\n        return this.params.treshold || 0;\r\n    }\r\n}\r\n\r\nexport namespace AnimatedHiddenElement {\r\n    export interface Params extends HiddenElement.Params {\r\n        onTransitionEnd?: (e: TransitionEvent) => void;\r\n        onScrollOut?: () => void;\r\n        onScrollIn?: () => void;\r\n        onAnimate?: () => void;\r\n        treshold?: number;\r\n    }\r\n}\r\n","import { BemBlock, BemElement } from '../../pages/bem';\r\nimport { GoTrialButton } from '../go-trial-button';\r\nimport { AnimatedHiddenElement } from '../hidden';\r\n\r\nimport './style.css';\r\n\r\nclass Product extends BemElement {\r\n    onDescribe() {\r\n        this.el.addEventListener('transitionend', this.activateScale);\r\n    }\r\n\r\n    private activateScale = () => {\r\n        this.applyModifiers({ scaled: true });\r\n        this.el.removeEventListener('transitionend', this.activateScale);\r\n    };\r\n}\r\n\r\nexport class Products extends BemBlock {\r\n    protected blockName() {\r\n        return 'S-Our-Products';\r\n    }\r\n\r\n    onDescribe() {\r\n        super.onDescribe();\r\n\r\n        this.describeElement('intersection', AnimatedHiddenElement, {\r\n            treshold: 0.7,\r\n        });\r\n\r\n        this.describeAllElements('product', Product, {});\r\n\r\n        if (this.params.ctaAnalytics) {\r\n            this.describeElement('go-trial', GoTrialButton, {\r\n                position: 'middle',\r\n            });\r\n        }\r\n    }\r\n}\r\n","import { Deferred } from '@flippingbook/web.utils/dist/util/deferred';\r\n\r\nimport { BemElement } from '../pages/bem';\r\nimport { SingleElementIntersector } from '../services/intersector';\r\nimport { runOnceOnIntersect } from '../util/run-once-on-intersect';\r\n\r\nconst HAVE_CURRENT_DATA = 2;\r\n\r\nexport class Video extends BemElement<Video.Params, HTMLVideoElement> {\r\n    private isVisible: boolean = false;\r\n    private isPlaying: boolean = false;\r\n    private prefersReducedMotion: boolean = window.matchMedia('(prefers-reduced-motion)').matches;\r\n    private autoplayEnabled: boolean = Boolean(this.params.autoplay && !this.prefersReducedMotion);\r\n\r\n    private loadedPromise = new Deferred();\r\n\r\n    private static isHighResScreen() {\r\n        return window.devicePixelRatio > 1;\r\n    }\r\n\r\n    private static setSourceForElement(el: HTMLVideoElement | HTMLSourceElement) {\r\n        const dataHighResSrc = el.dataset.highResSrc;\r\n        const dataSrc = el.dataset.src;\r\n\r\n        const src = dataHighResSrc && Video.isHighResScreen() ? dataHighResSrc : dataSrc;\r\n\r\n        if (src) {\r\n            el.setAttribute('src', src);\r\n        }\r\n    }\r\n\r\n    private onLoadedData = () => {\r\n        if (this.el.readyState >= HAVE_CURRENT_DATA) {\r\n            this.loadedPromise.resolve();\r\n            this.params.onLoad?.();\r\n        }\r\n    };\r\n\r\n    private onLoadedMetadata = () => {\r\n        this.el.load();\r\n        this.el.removeEventListener('loadedmetadata', this.onLoadedMetadata);\r\n    };\r\n\r\n    onDescribe() {\r\n        new SingleElementIntersector({\r\n            el: this.el,\r\n            onIntersectionChange: (entry) => this.onObserve(entry),\r\n            threshold: [0, this.treshold()],\r\n        }).observe();\r\n\r\n        this.el.addEventListener('ended', () => this.ended());\r\n        this.el.addEventListener('play', () => this.onPlay());\r\n        this.el.addEventListener('playing', () => this.onPlaying());\r\n        this.el.addEventListener('pause', () => this.onPause());\r\n        this.el.addEventListener('click', () => this.onClick());\r\n        this.el.addEventListener('loadeddata', () => this.onLoadedData());\r\n        this.el.addEventListener('loadedmetadata', this.onLoadedMetadata);\r\n\r\n        const onTimeUpdate = this.params.onTimeUpdate;\r\n\r\n        if (onTimeUpdate) {\r\n            this.el.addEventListener('timeupdate', () => onTimeUpdate());\r\n        }\r\n\r\n        runOnceOnIntersect({\r\n            el: this.el,\r\n            fn: () => {\r\n                if (this.el.childElementCount) {\r\n                    for (const child of this.el.children) {\r\n                        if (child.tagName !== 'SOURCE') {\r\n                            continue;\r\n                        }\r\n\r\n                        Video.setSourceForElement(child as HTMLSourceElement);\r\n                    }\r\n\r\n                    this.el.load();\r\n                    return;\r\n                }\r\n\r\n                Video.setSourceForElement(this.el);\r\n            },\r\n            threshold: [0, this.treshold()],\r\n        });\r\n\r\n        if (this.prefersReducedMotion) {\r\n            void this.onReducedMotionMode();\r\n        }\r\n        this.onLoadedData();\r\n    }\r\n\r\n    private onObserve(entry: IntersectionObserverEntry) {\r\n        if (entry.isIntersecting && entry.intersectionRatio >= this.treshold()) {\r\n            this.becameVisible();\r\n        } else {\r\n            this.becameHidden();\r\n        }\r\n    }\r\n\r\n    async autoplay() {\r\n        if (this.prefersReducedMotion) {\r\n            return;\r\n        }\r\n\r\n        this.autoplayEnabled = true;\r\n        if (!this.isVisible) {\r\n            return;\r\n        }\r\n        try {\r\n            await this.loadedPromise.promise;\r\n            await this.el.play();\r\n        } catch {\r\n            this.applyModifiers({ failed: true });\r\n            this.params.onPlaybackFail?.();\r\n        }\r\n    }\r\n\r\n    async play(from?: number): Promise<void> {\r\n        if (this.prefersReducedMotion) {\r\n            return;\r\n        }\r\n\r\n        return this.start(from);\r\n    }\r\n\r\n    protected async start(from?: number): Promise<void> {\r\n        if (from !== undefined) {\r\n            this.currentTime = from;\r\n        }\r\n        this.autoplayEnabled = true;\r\n\r\n        if (!this.isPlaying) {\r\n            await this.loadedPromise.promise;\r\n            await this.el.play();\r\n        }\r\n    }\r\n\r\n    stop() {\r\n        this.pause();\r\n        if (!this.params.freezeLastFrame) {\r\n            this.currentTime = 0;\r\n        }\r\n        this.autoplayEnabled = false;\r\n    }\r\n\r\n    get isActive() {\r\n        return this.autoplayEnabled;\r\n    }\r\n\r\n    get currentTime() {\r\n        return this.el.currentTime;\r\n    }\r\n\r\n    private set currentTime(time: number) {\r\n        this.el.currentTime = time;\r\n    }\r\n\r\n    private pause() {\r\n        if (this.isPlaying) {\r\n            this.el.pause?.();\r\n        }\r\n    }\r\n\r\n    private becameVisible() {\r\n        this.isVisible = true;\r\n        if (this.autoplayEnabled) {\r\n            void this.start();\r\n        }\r\n    }\r\n\r\n    private becameHidden() {\r\n        this.isVisible = false;\r\n        this.pause();\r\n    }\r\n\r\n    private ended() {\r\n        this.stop();\r\n        this.params.onPlayEnd?.();\r\n    }\r\n\r\n    private onPlay() {\r\n        this.applyModifiers({ failed: false });\r\n        this.params.onPlay?.();\r\n    }\r\n\r\n    private onPlaying() {\r\n        this.isPlaying = true;\r\n    }\r\n\r\n    private onPause() {\r\n        this.isPlaying = false;\r\n    }\r\n\r\n    private onClick() {\r\n        if (this.prefersReducedMotion) {\r\n            void this.start(0);\r\n        }\r\n        this.params.onClick?.();\r\n    }\r\n\r\n    private async onReducedMotionMode() {\r\n        this.el.loop = false;\r\n        this.el.autoplay = false;\r\n        this.el.style.cursor = 'pointer';\r\n\r\n        await this.loadedPromise.promise;\r\n        this.currentTime = this.params.reducedMotionModeFreezeTime ?? this.el.duration;\r\n    }\r\n\r\n    protected treshold() {\r\n        return this.params.autoplayTreshold === undefined ? 0.5 : this.params.autoplayTreshold;\r\n    }\r\n}\r\n\r\nexport namespace Video {\r\n    export interface Params {\r\n        autoplay?: boolean;\r\n        freezeLastFrame?: boolean;\r\n        reducedMotionModeFreezeTime?: number;\r\n        onPlay?: () => void;\r\n        onTimeUpdate?: () => void;\r\n        onPlayEnd?: () => void;\r\n        onClick?: () => void;\r\n        onPlaybackFail?: () => void;\r\n        onLoad?: () => void;\r\n        autoplayTreshold?: number;\r\n    }\r\n}\r\n\r\nexport class ClickableVideo extends Video {\r\n    constructor(el: HTMLVideoElement, elementName: string, elementClassName: string, params: Video.Params) {\r\n        super(el, elementName, elementClassName, {\r\n            ...params,\r\n            onPlayEnd: () => {\r\n                this.onVideoEnd();\r\n                params.onPlayEnd?.();\r\n            },\r\n            onClick: () => {\r\n                this.onVideoClick();\r\n                params.onClick?.();\r\n            },\r\n        });\r\n    }\r\n\r\n    private onVideoEnd() {\r\n        this.applyModifiers({ playing: false, ended: true });\r\n    }\r\n\r\n    private onVideoClick() {\r\n        this.applyModifiers({ playing: true, ended: false });\r\n        void this.start(0);\r\n    }\r\n}\r\n","import { Video } from '../../../components/video';\r\nimport { runOnceOnIntersect } from '../../../util/run-once-on-intersect';\r\nimport { BemBlock } from '../../bem';\r\n\r\nexport class BrandYour extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Newsletter-Brand-Your';\r\n    }\r\n\r\n    onDescribe() {\r\n        const brandVideo = this.describeElement('video', Video, {\r\n            autoplay: false,\r\n            freezeLastFrame: true,\r\n        });\r\n\r\n        runOnceOnIntersect({\r\n            el: this.ensureElement('video-wrapper'),\r\n            fn: async () => {\r\n                await brandVideo.play();\r\n                this.applyModifiers({ 'show-link': true });\r\n            },\r\n            threshold: 0.8,\r\n        });\r\n    }\r\n}\r\n","import { Video } from '../../../components/video';\r\nimport { runOnceOnIntersect } from '../../../util/run-once-on-intersect';\r\nimport { BemBlock } from '../../bem';\r\n\r\nexport class Deliver extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Newsletter-Deliver';\r\n    }\r\n\r\n    onDescribe() {\r\n        const phoneVideo = this.describeElement('video', Video, {\r\n            autoplay: false,\r\n            freezeLastFrame: true,\r\n        });\r\n\r\n        runOnceOnIntersect({\r\n            el: this.ensureElement('phone'),\r\n            fn: () => phoneVideo.play(),\r\n            threshold: 0.8,\r\n        });\r\n    }\r\n}\r\n","import { Parametrized } from '@flippingbook/web.utils/dist/service';\r\n\r\nimport { currentLayout } from '../util/current-layout';\r\n\r\nexport class LayoutChecker extends Parametrized<LayoutChecker.Params> {\r\n    isIn() {\r\n        return this.params.layout === currentLayout();\r\n    }\r\n}\r\n\r\nexport namespace LayoutChecker {\r\n    export type LayoutSize = 'lg' | 'md' | 'sm' | 'xs';\r\n\r\n    export interface Params {\r\n        layout: LayoutSize;\r\n    }\r\n}\r\n","import { LayoutChecker } from '../layout-checker';\r\n\r\nexport const mobileLayoutChecker = new LayoutChecker({ layout: 'xs' });\r\nexport const tabletLayoutChecker = new LayoutChecker({ layout: 'sm' });\r\n","import _throttle from 'lodash-es/throttle';\r\n\r\nimport { BemBlock } from '../../pages/bem';\r\nimport { mobileLayoutChecker, tabletLayoutChecker } from '../../services/instance/layoutChecker';\r\nimport './style.css';\r\n\r\nconst onTabletLineSize = 2;\r\n\r\nexport class FeaturePane extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Feature-Pane';\r\n    }\r\n\r\n    onDescribe() {\r\n        this.alignmentTitlesHeight();\r\n        window.addEventListener('resize', this.onResizeThrottled);\r\n    }\r\n\r\n    private onResizeThrottled = _throttle(() => this.alignmentTitlesHeight(), 300);\r\n\r\n    private titleElements = this.allElements('title-text');\r\n    private onDesktopLineSize = Number(this.el.dataset.lineSize) || 3;\r\n\r\n    private alignmentTitlesHeight() {\r\n        if (this.titleElements.length) {\r\n            const isMobile = mobileLayoutChecker.isIn();\r\n\r\n            this.resetTitlesHeight();\r\n            if (!isMobile) {\r\n                const isTablet = tabletLayoutChecker.isIn();\r\n\r\n                requestAnimationFrame(() => {\r\n                    this.recalculateTitlesHeight(isTablet ? onTabletLineSize : this.onDesktopLineSize);\r\n                });\r\n            }\r\n        }\r\n    }\r\n\r\n    private resetTitlesHeight() {\r\n        this.titleElements.forEach((titleElement: HTMLElement) => {\r\n            titleElement.style.height = '';\r\n        });\r\n    }\r\n\r\n    private recalculateTitlesHeight(lineSize: number) {\r\n        const heights = this.getMaxTitleHeightsByLineSize(lineSize);\r\n\r\n        if (heights.length) {\r\n            this.setTitlesHeight(heights, lineSize);\r\n        }\r\n    }\r\n\r\n    private getMaxTitleHeightsByLineSize(lineSize: number) {\r\n        const elementHeights = this.titleElements.map(\r\n            (titleElement: HTMLElement) => titleElement.getBoundingClientRect().height,\r\n        );\r\n        const linesCount = Math.ceil(this.titleElements.length / lineSize);\r\n        const maxHeightsByLine = Array.from(Array(linesCount), (_, i) => {\r\n            const startIndex = i * lineSize;\r\n            const endIndex = i * lineSize + lineSize;\r\n\r\n            return Math.max(...elementHeights.slice(startIndex, endIndex));\r\n        });\r\n\r\n        return maxHeightsByLine;\r\n    }\r\n\r\n    private setTitlesHeight(heights: number[], lineSize: number) {\r\n        this.titleElements.forEach((titleElement: HTMLElement, i: number) => {\r\n            titleElement.style.height = `${heights[Math.floor(i / lineSize)]}px`;\r\n        });\r\n    }\r\n}\r\n","import { FeaturePane } from '../../../components/FeaturePane';\r\nimport { BemBlock } from '../../bem';\r\n\r\nexport class Features extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Newsletter-Features';\r\n    }\r\n\r\n    onDescribe() {\r\n        this.describeBlock('feature-pane', FeaturePane, {});\r\n    }\r\n}\r\n","import { BemElement } from '../../../pages/bem';\r\n\r\nimport './style.css';\r\n\r\nexport abstract class CalendlyButton extends BemElement {\r\n    onDescribe() {}\r\n}\r\n","import { CalendlyButton } from '../base';\r\n\r\nimport './style.css';\r\n\r\nexport class CalendlyButtonFBO extends CalendlyButton {}\r\n","import { CalendlyButtonFBO } from '../../../components/calendly-button/fbo';\r\nimport { GoTrialButton } from '../../../components/go-trial-button';\r\nimport { waitForAllImagesLoad } from '../../../util/image';\r\nimport { runWithNewTask } from '../../../util/run-with-new-task';\r\nimport { BemBlock } from '../../bem';\r\n\r\nexport class FirstScreen extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Newsletter-First-Screen';\r\n    }\r\n\r\n    onDescribe() {\r\n        this.describeElement('go-trial', GoTrialButton, {\r\n            position: 'top',\r\n        });\r\n\r\n        const calendlyElementName = 'calendly';\r\n\r\n        if (this.element(calendlyElementName)) {\r\n            this.describeElement(calendlyElementName, CalendlyButtonFBO, {});\r\n        }\r\n\r\n        void (async () => {\r\n            await waitForAllImagesLoad({\r\n                container: this.el,\r\n                classNames: ['back', 'book', 'front'].map((elementName) => `${this.elementClass(elementName)}-image`),\r\n            });\r\n\r\n            void runWithNewTask(() => this.applyModifiers({ 'book-shown': true }));\r\n        })();\r\n    }\r\n}\r\n","import { BasePage } from '../../../components/base-page';\r\nimport { EmbedWrapper } from '../../../components/embed';\r\nimport { GoTrialButtonWrapper } from '../../../components/go-trial-button';\r\nimport { Products } from '../../../components/our-products';\r\nimport { runOnceOnIntersect } from '../../../util/run-once-on-intersect';\r\nimport { runWithNewTask } from '../../../util/run-with-new-task';\r\n\r\nimport '../../../components/demo-wrapper';\r\nimport '../../../components/more-link';\r\n\r\nimport './styles/index.css';\r\n\r\nimport { BrandYour } from './brand-your';\r\nimport { Deliver } from './deliver';\r\nimport { Features } from './features';\r\nimport { FirstScreen } from './first-screen';\r\n\r\nclass OnlineNewsletterPage extends BasePage {\r\n    protected blockName(): string {\r\n        return 'S-Newsletter';\r\n    }\r\n\r\n    onDescribe() {\r\n        super.onDescribe();\r\n\r\n        const tasks = [\r\n            () => this.describeBlock('first-screen', FirstScreen, {}),\r\n            async () => {\r\n                const { BrandsBlock } = await import('../../../components/brands-block');\r\n                this.describeBlock('brands', BrandsBlock, {});\r\n            },\r\n            () =>\r\n                this.describeBlock('embed', EmbedWrapper(`${this.blockName()}-Embed`), {\r\n                    type: 'fbo',\r\n                    threshold: 0.25,\r\n                }),\r\n            () => this.describeBlock('features', Features, {}),\r\n            () => this.describeBlock('brand-your', BrandYour, {}),\r\n            () => this.describeBlock('deliver', Deliver, {}),\r\n            () =>\r\n                this.describeBlock('demos', GoTrialButtonWrapper(`${this.blockName()}-Demos`), {\r\n                    position: 'middle',\r\n                }),\r\n            () =>\r\n                this.describeBlock('cta', GoTrialButtonWrapper(`${this.blockName()}-CTA`), {\r\n                    position: 'bottom',\r\n                }),\r\n            () => this.describeBlock('products', Products, {}),\r\n            () => {\r\n                const faqElementName = 'faq';\r\n\r\n                runOnceOnIntersect({\r\n                    el: this.ensureElement(faqElementName),\r\n                    fn: async () => {\r\n                        const { FAQWrapper } = await import('../../../components/faq');\r\n                        this.describeBlock(faqElementName, FAQWrapper(`${this.blockName()}-FAQ`), {});\r\n                    },\r\n                });\r\n            },\r\n        ];\r\n\r\n        for (const task of tasks) {\r\n            void runWithNewTask(() => task());\r\n        }\r\n    }\r\n}\r\n\r\nexport { OnlineNewsletterPage as page };\r\n","import { AnalyticsService } from '@flippingbook/web.utils/dist/analytics';\r\nimport type { IAnalyticsService } from '@flippingbook/web.utils/dist/analytics';\r\n\r\nconst release = process.env.BUILD_DATE || 'local';\r\n\r\nexport class SiteAnalyticsService extends AnalyticsService implements IAnalyticsService {\r\n    override gaEvent(eventName: string, properties?: Record<string, unknown>) {\r\n        return super.gaEvent(eventName, {\r\n            area: 'website',\r\n            release,\r\n            ...properties,\r\n        });\r\n    }\r\n\r\n    override event(\r\n        eventName: string,\r\n        eventData: IAnalyticsService.EventData,\r\n        gtagEventParams?: Partial<IAnalyticsService.GtagEventParams>,\r\n    ) {\r\n        return super.event(\r\n            eventName,\r\n            {\r\n                release,\r\n                ...eventData,\r\n            },\r\n            gtagEventParams,\r\n        );\r\n    }\r\n}\r\n","import type { IAnalyticsService } from '@flippingbook/web.utils/dist/analytics';\r\n\r\nimport { SiteAnalyticsService } from '../analytics';\r\n\r\nexport const analytics: IAnalyticsService = new SiteAnalyticsService({});\r\n","import type { IAnalyticsService } from '@flippingbook/web.utils/dist/analytics';\r\nimport { Parametrized } from '@flippingbook/web.utils/dist/service';\r\n\r\nexport class CTAAnalyticsService extends Parametrized<CTAAnalyticsService.Params> {\r\n    send(position: CTAAnalyticsService.Position) {\r\n        return this.params.analytics.gaEvent('button_click_trial', {\r\n            category: 'button',\r\n            button_location: position,\r\n        });\r\n    }\r\n}\r\n\r\nexport namespace CTAAnalyticsService {\r\n    export type Position = 'header' | 'mobile-menu' | 'top' | 'middle' | 'bottom';\r\n\r\n    export interface Params {\r\n        analytics: IAnalyticsService;\r\n    }\r\n}\r\n","import { CTAAnalyticsService } from '../CTAanalytics';\r\n\r\nimport { analytics } from './analytics';\r\n\r\nexport const ctaAnalytics = new CTAAnalyticsService({\r\n    analytics,\r\n});\r\n","export const siteAntispamService = {\r\n    getUserDetachedContext: () => window.__flippingbook_user_detached_context__,\r\n};\r\n","import { Parametrized } from '@flippingbook/web.utils/dist/service';\r\n\r\nexport class SingleElementIntersector extends Parametrized<SingleElementIntersector.Params> {\r\n    private intersector: IntersectionObserver;\r\n\r\n    private observerCallback = (entries: IntersectionObserverEntry[], observer: IntersectionObserver) =>\r\n        entries.forEach((entry) => this.params.onIntersectionChange(entry, observer));\r\n\r\n    constructor(params: SingleElementIntersector.Params) {\r\n        super(params);\r\n        this.intersector = new IntersectionObserver(this.observerCallback, params);\r\n    }\r\n\r\n    observe() {\r\n        this.intersector.observe(this.params.el);\r\n    }\r\n\r\n    unobserve() {\r\n        this.intersector.unobserve(this.params.el);\r\n    }\r\n}\r\n\r\nexport namespace SingleElementIntersector {\r\n    export interface Params extends IntersectionObserverInit {\r\n        el: HTMLElement;\r\n        onIntersectionChange: (entry: IntersectionObserverEntry, observer: IntersectionObserver) => void;\r\n    }\r\n}\r\n","import type { LayoutChecker } from '../services/layout-checker';\r\n\r\nimport { isVisible } from './is-visible';\r\n\r\nexport const currentLayout = () => {\r\n    const testarea = document.getElementById('layout-test')!;\r\n    const divs = Array.from(testarea.getElementsByTagName('div'));\r\n    const hiddenElem = divs.reduce((acc, el) => (!isVisible(el) ? el.className : acc), '');\r\n    return hiddenElem.substring(7) as LayoutChecker.LayoutSize;\r\n};\r\n","export function getLoginConsumer(): string {\r\n    return Mediaparts?.Bootstrap?.Params?.loginConsumer || 'site';\r\n}\r\n","function waitForImageLoad(image: HTMLImageElement) {\r\n    return new Promise<void>((resolve) => {\r\n        if (image.complete) {\r\n            resolve();\r\n            return;\r\n        }\r\n\r\n        const handleImageLoad = () => {\r\n            image.removeEventListener('load', handleImageLoad);\r\n            resolve();\r\n        };\r\n\r\n        image.addEventListener('load', handleImageLoad);\r\n    });\r\n}\r\n\r\nfunction getImageLoadList(params: { container?: HTMLElement; classNames: string[] }) {\r\n    const selector = params.classNames.map((c) => `.${c}`).join(', ');\r\n    const container = params.container || document;\r\n    const imgElements = Array.from(container.querySelectorAll<HTMLImageElement>(selector));\r\n\r\n    return imgElements.map((imgElement) => waitForImageLoad(imgElement));\r\n}\r\n\r\nexport function waitForAllImagesLoad(params: { container?: HTMLElement; classNames: string[] }) {\r\n    const loadList = getImageLoadList(params);\r\n    return Promise.all(loadList);\r\n}\r\n\r\nexport function waitForAnyImagesLoad(params: { container?: HTMLElement; classNames: string[] }) {\r\n    const loadList = getImageLoadList(params);\r\n    return Promise.race(loadList);\r\n}\r\n\r\nexport function setLoadedClassForImage() {\r\n    const imgElements = Array.from(document.querySelectorAll<HTMLImageElement>('img'));\r\n    const loadedClassName = 'loaded';\r\n\r\n    imgElements.forEach((imgElement) => {\r\n        if (imgElement.complete) {\r\n            imgElement.classList.add(loadedClassName);\r\n            return;\r\n        }\r\n\r\n        const handleImageLoad = () => {\r\n            imgElement.removeEventListener('load', handleImageLoad);\r\n            imgElement.classList.add(loadedClassName);\r\n        };\r\n\r\n        imgElement.addEventListener('load', handleImageLoad);\r\n    });\r\n}\r\n","import { localStorage, sessionStorage } from '@flippingbook/web.utils/dist/storage';\r\n\r\nexport function isLoggedIn() {\r\n    return Boolean(\r\n        (flippingbook.user && flippingbook.user.loggedIn) ||\r\n            sessionStorage.get('PA.TokenService.Token') ||\r\n            localStorage.get('FlippingBook.PA.DefaultProduct'),\r\n    );\r\n}\r\n","// like jQuery :visible\r\nexport const isVisible = function <E extends HTMLElement = HTMLElement>(elem: E) {\r\n    return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\r\n};\r\n","import { SingleElementIntersector } from '../services/intersector';\r\n\r\nimport { runWithNewTask } from './run-with-new-task';\r\n\r\nconst blockThreshold = [0, 1];\r\n\r\ninterface Params {\r\n    el: HTMLElement;\r\n    fn: () => void | Promise<void>;\r\n    threshold?: number | number[];\r\n    rootMargin?: string;\r\n}\r\n\r\nexport function runOnceOnIntersect(params: Params) {\r\n    const { el, fn, threshold, rootMargin = '0px' } = params;\r\n\r\n    const intersector = new SingleElementIntersector({\r\n        onIntersectionChange: (entry: IntersectionObserverEntry) => {\r\n            if (entry.isIntersecting) {\r\n                intersector.unobserve();\r\n\r\n                void runWithNewTask(fn);\r\n            }\r\n        },\r\n        threshold: threshold || blockThreshold,\r\n        el,\r\n        rootMargin,\r\n    });\r\n    intersector.observe();\r\n}\r\n","module.exports = {\"featureFlags\":{},\"sentryDsn\":\"https://8fa71d45f6aa4a06be961166e0ee495b@sentry.io/1359544\",\"sentryEnable\":false};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-bundle.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-bundle.css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 8287;","__webpack_require__.p = \"/content/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t8287: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"957\":1,\"1597\":1,\"2989\":1,\"5515\":1,\"6783\":1,\"9974\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t8287: 0,\n\t4514: 0,\n\t5949: 0,\n\t5908: 0,\n\t2577: 0,\n\t8393: 0,\n\t215: 0,\n\t356: 0,\n\t790: 0,\n\t1086: 0,\n\t1266: 0,\n\t2596: 0,\n\t2688: 0,\n\t2737: 0,\n\t2983: 0,\n\t3083: 0,\n\t3171: 0,\n\t3213: 0,\n\t5118: 0,\n\t5364: 0,\n\t5453: 0,\n\t5464: 0,\n\t5545: 0,\n\t5552: 0,\n\t5594: 0,\n\t7499: 0,\n\t7926: 0,\n\t8409: 0,\n\t8705: 0,\n\t9880: 0,\n\t3333: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(59(08|49)|(298|333|839)3|1597|2577|4514|9974)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunkflippingbooksite\"] = globalThis[\"webpackChunkflippingbooksite\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4514,5949,5908,2577,8393,2983,3333,8351,9006,4829], () => (__webpack_require__(82112)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","GoTrialButton","B","direction","this","el","getAttribute","product","sendAnalytics","send","params","position","onLinkClick","async","ev","preventDefault","stopPropagation","newLink","loggedIn","baseRegisterUrl","resolve","subsystem","service","registerUrl","getUserDetachedContext","window","encodeURIComponent","location","origin","getLink","url","setTimeout","href","onDescribe","addEventListener","GoTrialButtonWrapper","blockName","describeElement","contentRoot","maybeContentBaseElement","document","querySelector","replace","loadJs","load","loadCss","flipbookEmbedScript","addFBOScriptByHashId","hashId","undefined","fboLoadPromise","addSalespalScriptById","id","salespalLoadPromise","addCLDBZScript","cldbzLoadPromise","InteractiveStub","applyModifiers","loading","onClick","once","embedLinkParamsMap","fbo","type","globalEmbedName","activationClassName","embedIdName","onEmbedScriptAdd","salespal","cldbz","EmbedLink","embedId","dataset","addEmbedScript","showLink","style","display","prepareForActivate","hasConsent","Targeting","Performance","setAttribute","classList","add","activateEmbeds","parseAllEmbeds","Embed","embedLink","hideStub","loaded","watch","threshold","intersector","onIntersectionChange","entry","isIntersecting","intersectionRatio","unobserve","observe","matchMedia","matches","stubParams","hideStubTimeoutId","publicationLoadedHandler","event","test","data","action","clearTimeout","removeEventListener","noIframe","describeBlock","EmbedWrapper","HiddenElement","shown","show","onShow","modifiers","super","AnimatedHiddenElement","animated","reducedMotionMode","treshold","onTransitionEnd","onShown","onHidden","animate","onScrollIn","boundingClientRect","top","onScrollOut","onAnimate","Product","activateScale","scaled","Products","describeAllElements","ctaAnalytics","Video","isVisible","isPlaying","prefersReducedMotion","autoplayEnabled","Boolean","autoplay","loadedPromise","onLoadedData","readyState","onLoad","onLoadedMetadata","isHighResScreen","devicePixelRatio","setSourceForElement","dataHighResSrc","highResSrc","dataSrc","src","onObserve","ended","onPlay","onPlaying","onPause","onTimeUpdate","fn","childElementCount","child","children","tagName","onReducedMotionMode","becameVisible","becameHidden","promise","play","failed","onPlaybackFail","from","start","currentTime","stop","pause","freezeLastFrame","isActive","time","onPlayEnd","loop","cursor","reducedMotionModeFreezeTime","duration","autoplayTreshold","BrandYour","brandVideo","ensureElement","Deliver","phoneVideo","LayoutChecker","Parametrized","isIn","layout","mobileLayoutChecker","tabletLayoutChecker","FeaturePane","onResizeThrottled","alignmentTitlesHeight","titleElements","allElements","onDesktopLineSize","Number","lineSize","length","isMobile","resetTitlesHeight","isTablet","requestAnimationFrame","recalculateTitlesHeight","forEach","titleElement","height","heights","getMaxTitleHeightsByLineSize","setTitlesHeight","elementHeights","map","getBoundingClientRect","linesCount","Math","ceil","Array","_","i","startIndex","endIndex","max","slice","floor","Features","CalendlyButton","CalendlyButtonFBO","FirstScreen","calendlyElementName","element","container","classNames","elementName","elementClass","OnlineNewsletterPage","tasks","BrandsBlock","FAQWrapper","task","release","SiteAnalyticsService","gaEvent","eventName","properties","area","eventData","gtagEventParams","CTAAnalyticsService","analytics","category","button_location","siteAntispamService","__flippingbook_user_detached_context__","SingleElementIntersector","constructor","observerCallback","entries","observer","IntersectionObserver","currentLayout","testarea","getElementById","getElementsByTagName","reduce","acc","className","substring","getLoginConsumer","Mediaparts","Bootstrap","Params","loginConsumer","getImageLoadList","selector","c","join","querySelectorAll","imgElement","waitForImageLoad","image","Promise","complete","handleImageLoad","waitForAllImagesLoad","loadList","all","setLoadedClassForImage","imgElements","loadedClassName","isLoggedIn","flippingbook","user","get","elem","offsetWidth","offsetHeight","getClientRects","blockThreshold","runOnceOnIntersect","rootMargin","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","m","amdO","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","t","value","mode","then","ns","create","def","current","indexOf","getOwnPropertyNames","definition","o","defineProperty","enumerable","f","e","chunkId","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","l","done","push","script","needAttach","scripts","s","createElement","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","bind","target","head","appendChild","Symbol","toStringTag","nmd","paths","p","loadStylesheet","reject","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","oldTag","linkTag","nonce","errorType","realHref","err","Error","name","code","request","insertBefore","nextSibling","createStylesheet","installedCssChunks","miniCss","installedChunks","installedChunkData","error","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}