{"version":3,"file":"online-pdf-document-view-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/services/CTAanalytics.ts","webpack://flippingbooksite/./sources/src/services/instance/cta-analytics.ts","webpack://flippingbooksite/./sources/src/components/go-trial-button.ts","webpack://flippingbooksite/./sources/src/util/run-once-on-intersect.ts","webpack://flippingbooksite/./sources/src/pages/benefits/online-pdf-document-view/cta.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/benefits/online-pdf-document-view/features.ts","webpack://flippingbooksite/./sources/src/components/animated-element.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/util/chain-animation.ts","webpack://flippingbooksite/./sources/src/components/chain-animation-element.ts","webpack://flippingbooksite/./sources/src/pages/benefits/online-pdf-document-view/first-screen.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/pages/benefits/online-pdf-document-view/how-to.ts","webpack://flippingbooksite/./sources/src/pages/benefits/online-pdf-document-view/little-things.ts","webpack://flippingbooksite/./sources/src/components/our-products-coffee/index.ts","webpack://flippingbooksite/./sources/src/components/our-products-coffee-most-popular/fbo-card.ts","webpack://flippingbooksite/./sources/src/components/our-products-coffee-most-popular/index.ts","webpack://flippingbooksite/./sources/src/pages/benefits/online-pdf-document-view/our-products.ts","webpack://flippingbooksite/./sources/src/components/horizon-scrollable-block/content.ts","webpack://flippingbooksite/./sources/src/components/horizon-scrollable-block/index.ts","webpack://flippingbooksite/./sources/src/components/tabber/TabberElement.ts","webpack://flippingbooksite/./sources/src/components/tabber/TabberPanel.ts","webpack://flippingbooksite/./sources/src/components/tabber/TabberTab.ts","webpack://flippingbooksite/./sources/src/components/industries-tabber/index.ts","webpack://flippingbooksite/./sources/src/pages/benefits/online-pdf-document-view/users-feedback.ts","webpack://flippingbooksite/./sources/src/pages/benefits/online-pdf-document-view/index.ts","webpack://flippingbooksite/./sources/src/services/analytics.ts","webpack://flippingbooksite/./sources/src/services/instance/analytics.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/serviceLocator.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/external var \"{\\\"locatorUrl\\\":\\\"https://registry-tc.dev.flippingbook.com/api\\\",\\\"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 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","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 { 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","import { GoTrialButton } from '../../../components/go-trial-button';\r\nimport { runOnceOnIntersect } from '../../../util/run-once-on-intersect';\r\nimport { BemBlock } from '../../bem';\r\n\r\nexport class CallToAction extends BemBlock {\r\n    protected blockName() {\r\n        return 'S-Online-Pdf-Document-View-Call-To-Action';\r\n    }\r\n\r\n    onDescribe() {\r\n        this.describeElement('go-trial', GoTrialButton, {\r\n            position: 'bottom',\r\n        });\r\n\r\n        runOnceOnIntersect({\r\n            el: this.el,\r\n            fn: this.animate,\r\n            threshold: 1,\r\n        });\r\n    }\r\n\r\n    private animate = () => this.applyModifiers({ 'lines-show': true });\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() {\r\n        return 'S-Online-Pdf-Document-View-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\nconst animationEvent = {\r\n    animation: 'animationend',\r\n    transition: 'transitionend',\r\n};\r\n\r\nconst DEFAULT_ANIMATE_CLASS = 'animate';\r\n\r\nexport class AnimatedElement extends BemElement<AnimatedElement.Params> {\r\n    private clearClass(className: string) {\r\n        this.applyModifiers({ [className]: false });\r\n    }\r\n\r\n    animate(className = DEFAULT_ANIMATE_CLASS): Promise<() => void> {\r\n        const eventName = animationEvent[this.params.animationType];\r\n\r\n        return new Promise((resolve) => {\r\n            const onAnimationEnd = () => {\r\n                this.el.removeEventListener(eventName, onAnimationEnd);\r\n                requestAnimationFrame(() => resolve(() => this.clearClass(className)));\r\n            };\r\n\r\n            this.el.addEventListener(eventName, onAnimationEnd);\r\n\r\n            requestAnimationFrame(() => this.applyModifiers({ [className]: true }));\r\n        });\r\n    }\r\n}\r\n\r\nnamespace AnimatedElement {\r\n    export interface Params {\r\n        animationType: 'transition' | 'animation';\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 { Parametrized } from '@flippingbook/web.utils/dist/service';\r\n\r\nexport class ChainAnimation<T extends HTMLElement> extends Parametrized<ChainAnimation.Params<T>> {\r\n    private applyAnimation = (el: T, cb: () => void) => {\r\n        requestAnimationFrame(() => el.classList.add('animate'));\r\n\r\n        el.addEventListener('transitionend', cb);\r\n        el.addEventListener('animationend', cb);\r\n    };\r\n\r\n    private animatePart(selector: string) {\r\n        return new Promise((resolve) => {\r\n            const elements = this.params.rootElement.querySelectorAll<T>(selector);\r\n            let animationsInQuery = elements.length;\r\n\r\n            if (!animationsInQuery) {\r\n                resolve(undefined);\r\n                return;\r\n            }\r\n\r\n            Array.from(elements).forEach((el) => {\r\n                const onAnimationEnd = () => {\r\n                    el.removeEventListener('transitionend', onAnimationEnd);\r\n                    el.removeEventListener('animationend', onAnimationEnd);\r\n                    el.classList.add('animationend');\r\n\r\n                    animationsInQuery = animationsInQuery - 1;\r\n\r\n                    if (animationsInQuery === 0) {\r\n                        resolve(undefined);\r\n                    }\r\n                };\r\n                this.applyAnimation(el, onAnimationEnd);\r\n            });\r\n        });\r\n    }\r\n\r\n    private deleteAnimationPart(selector: string) {\r\n        const elements = this.params.rootElement.querySelectorAll<T>(selector);\r\n\r\n        Array.from(elements).forEach((el) => {\r\n            el.classList.remove('animate', 'animationend');\r\n        });\r\n    }\r\n\r\n    async animate() {\r\n        for (const selector of this.params.selectorSequence) {\r\n            await this.animatePart(selector);\r\n        }\r\n    }\r\n\r\n    reset() {\r\n        for (const selector of this.params.selectorSequence) {\r\n            this.deleteAnimationPart(selector);\r\n        }\r\n    }\r\n}\r\n\r\nnamespace ChainAnimation {\r\n    export interface Params<T extends HTMLElement> {\r\n        rootElement: T;\r\n        selectorSequence: string[];\r\n    }\r\n}\r\n","import { BemElement } from '../pages/bem';\r\nimport { ChainAnimation } from '../util/chain-animation';\r\n\r\nexport namespace ChainAnimationElement {\r\n    export interface Params {\r\n        animationElementSequence: string[];\r\n    }\r\n}\r\n\r\nexport class ChainAnimationElement extends BemElement<ChainAnimationElement.Params> {\r\n    private chainAnimation = new ChainAnimation({\r\n        rootElement: this.el,\r\n        selectorSequence: this.params.animationElementSequence.map((className) => `.${className}`),\r\n    });\r\n\r\n    async animate() {\r\n        this.applyModifiers({ shown: true });\r\n\r\n        await this.chainAnimation.animate();\r\n    }\r\n}\r\n","import { AnimatedElement } from '../../../components/animated-element';\r\nimport { CalendlyButtonFBO } from '../../../components/calendly-button/fbo';\r\nimport { ChainAnimationElement } from '../../../components/chain-animation-element';\r\nimport { GoTrialButton } from '../../../components/go-trial-button';\r\nimport { waitForAllImagesLoad } from '../../../util/image';\r\nimport { BemBlock } from '../../bem';\r\n\r\nexport class FirstScreen extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Online-Pdf-Document-View-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        if (this.element('calendly')) {\r\n            this.describeElement('calendly', CalendlyButtonFBO, {});\r\n        }\r\n\r\n        const circleIcon = this.describeElement('circle', AnimatedElement, { animationType: 'animation' });\r\n\r\n        const arrowLine = this.describeElement('line1', ChainAnimationElement, {\r\n            animationElementSequence: ['first-screen-line1-path', 'first-screen-line1-arrow'],\r\n        });\r\n\r\n        const bottomLine = this.describeElement('line2', ChainAnimationElement, {\r\n            animationElementSequence: ['first-screen-line2'],\r\n        });\r\n\r\n        const startAnimation = async () => {\r\n            await circleIcon.animate('bounce');\r\n            void circleIcon.animate('hover');\r\n            await bottomLine.animate();\r\n            void arrowLine.animate();\r\n        };\r\n\r\n        void (async () => {\r\n            await waitForAllImagesLoad({\r\n                container: this.el,\r\n                classNames: ['preview', 'logo'].map((elementName) => `${this.elementClass(elementName)}`),\r\n            });\r\n\r\n            this.applyModifiers({ 'logo-icon-shown': true });\r\n\r\n            setTimeout(() => {\r\n                void startAnimation();\r\n            }, 1000);\r\n        })();\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 { Embed } from '../../../components/embed';\r\nimport { BemBlock } from '../../bem';\r\n\r\nexport class HowTo extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Online-Pdf-Document-View-How-To';\r\n    }\r\n\r\n    onDescribe() {\r\n        this.describeBlock('embed', Embed, { type: 'fbo' });\r\n    }\r\n}\r\n","import { AnimatedElement } from '../../../components/animated-element';\r\nimport { runOnceOnIntersect } from '../../../util/run-once-on-intersect';\r\nimport { BemBlock } from '../../bem';\r\n\r\nexport class LittleThings extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Online-Pdf-Document-View-Little-Things';\r\n    }\r\n\r\n    onDescribe() {\r\n        const things = this.describeElement('things', AnimatedElement, {\r\n            animationType: 'transition',\r\n        });\r\n\r\n        const startAnimation = async () => {\r\n            await things.animate();\r\n            this.applyModifiers({ shining: true });\r\n        };\r\n\r\n        runOnceOnIntersect({\r\n            el: this.ensureElement('animation-trigger'),\r\n            fn: startAnimation,\r\n            threshold: 1,\r\n        });\r\n    }\r\n}\r\n","import { BemBlock } from '../../pages/bem';\r\nimport { GoTrialButton } from '../go-trial-button';\r\nimport './styles/index.css';\r\n\r\nexport class OurProductsCoffee<T> extends BemBlock<T> {\r\n    protected blockName(): string {\r\n        return 'S-Our-Products-Coffee';\r\n    }\r\n\r\n    onDescribe() {\r\n        this.describeElement('fbo-product-card', GoTrialButton, {\r\n            position: 'middle',\r\n        });\r\n    }\r\n}\r\n","import { BemBlock } from '../../pages/bem';\r\nimport { l10n } from '../../services/instance/l10n';\r\nimport { ChainAnimation } from '../../util/chain-animation';\r\n\r\nimport './styles/index.css';\r\n\r\nexport class FboCard extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Our-Products-Coffee-FboProductCard';\r\n    }\r\n\r\n    private createBadge() {\r\n        const container = document.createElement('div');\r\n        container.className = this.elementClass('badge-wrapper');\r\n\r\n        const text = l10n.get().OurProductsCoffee.MostPopularBadgeText;\r\n\r\n        container.innerHTML =\r\n            `<div class=\"${this.elementClass('badge')}\">` +\r\n            `<div class=\"${this.elementClass('badge-side-line-wrapper')}\">` +\r\n            `<div class=\"${this.elementClass('badge-side-line')}\"></div>` +\r\n            '</div>' +\r\n            `<div class=\"${this.elementClass('badge-arrow-line-wrapper')}\">` +\r\n            `<div class=\"${this.elementClass('badge-arrow-line')}\">` +\r\n            `<div class=\"${this.elementClass('badge-arrow-line-shadow')}\"></div>` +\r\n            `<span class=\"${this.elementClass('badge-arrow-line-text')}\">${text}</span>` +\r\n            '</div>' +\r\n            '</div>' +\r\n            '</div>';\r\n\r\n        return container;\r\n    }\r\n\r\n    private showStub() {\r\n        return new Promise<void>((resolve) =>\r\n            requestAnimationFrame(() => {\r\n                this.applyModifiers({ 'stub-show': true });\r\n                resolve();\r\n            }),\r\n        );\r\n    }\r\n\r\n    async showMostPopular() {\r\n        const badge = this.createBadge();\r\n        const ctaWrapperElement = this.ensureElement('cta-wrapper');\r\n\r\n        this.el.insertBefore(badge, ctaWrapperElement);\r\n\r\n        await this.showStub();\r\n\r\n        const chainAnimation = new ChainAnimation({\r\n            rootElement: this.el,\r\n            selectorSequence: ['badge-side-line', 'badge-arrow-line'].map(\r\n                (className) => `.${this.elementClass(className)}`,\r\n            ),\r\n        });\r\n\r\n        await chainAnimation.animate();\r\n\r\n        requestAnimationFrame(() => this.applyModifiers({ 'animation-finish': true }));\r\n    }\r\n}\r\n","import { runOnceOnIntersect } from '../../util/run-once-on-intersect';\r\nimport { OurProductsCoffee } from '../our-products-coffee';\r\n\r\nimport { FboCard } from './fbo-card';\r\nimport './styles/index.css';\r\n\r\nexport class OurProductsCoffeeMostPopular extends OurProductsCoffee<OurProductsCoffeeMostPopular.Params> {\r\n    private fboCard = this.describeBlock('fbo-product-card', FboCard, {});\r\n\r\n    showMostPopular() {\r\n        return this.fboCard.showMostPopular();\r\n    }\r\n\r\n    onDescribe() {\r\n        super.onDescribe();\r\n\r\n        runOnceOnIntersect({\r\n            el: this.ensureElement('fbo-product-card'),\r\n            fn: this.params.onFboCardIntersect,\r\n            threshold: 1,\r\n        });\r\n    }\r\n}\r\n\r\nnamespace OurProductsCoffeeMostPopular {\r\n    export interface Params {\r\n        onFboCardIntersect: () => void;\r\n    }\r\n}\r\n","import { OurProductsCoffeeMostPopular } from '../../../components/our-products-coffee-most-popular';\r\nimport { BemBlock } from '../../bem';\r\n\r\nexport class OurProducts extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Online-Pdf-Document-View-Our-Products';\r\n    }\r\n\r\n    private products = this.describeBlock('products', OurProductsCoffeeMostPopular, {\r\n        onFboCardIntersect: () => {\r\n            void this.startAnimation();\r\n        },\r\n    });\r\n\r\n    private animateLines = () => this.applyModifiers({ 'lines-show': true });\r\n\r\n    private startAnimation() {\r\n        const reducedMotionMode = window.matchMedia('(prefers-reduced-motion)').matches;\r\n\r\n        this.animateLines();\r\n\r\n        setTimeout(\r\n            () => {\r\n                void this.products.showMostPopular();\r\n            },\r\n            reducedMotionMode ? 0 : 1000,\r\n        );\r\n    }\r\n}\r\n","import { BemElement } from '../../pages/bem';\r\nimport type { BemBlock } from '../../pages/bem';\r\nimport { runWithNewTask } from '../../util/run-with-new-task';\r\n\r\nconst MAX_SCROLL_DURATION = 200;\r\n\r\nexport class Content extends BemElement<Content.Params> {\r\n    private prefersReducedMotion = matchMedia('(prefers-reduced-motion)').matches;\r\n\r\n    private updateEdgesVisibility = () => {\r\n        const visibleWidth = this.el.offsetWidth;\r\n        const scrollWidth = this.el.scrollWidth;\r\n\r\n        const updateVisibilityOnScroll = () => {\r\n            const scrollLeft = this.el.scrollLeft;\r\n\r\n            const rightEdgeVisible = scrollLeft < scrollWidth - visibleWidth;\r\n            const leftEdgeVisible = scrollLeft > 0;\r\n\r\n            this.params.onFadeEdgesChange({\r\n                'fade-right': rightEdgeVisible,\r\n                'fade-left': leftEdgeVisible,\r\n            });\r\n        };\r\n\r\n        const shouldShowEdges = visibleWidth < scrollWidth;\r\n\r\n        updateVisibilityOnScroll();\r\n\r\n        if (shouldShowEdges) {\r\n            this.el.addEventListener('scroll', updateVisibilityOnScroll);\r\n        } else {\r\n            this.el.removeEventListener('scroll', updateVisibilityOnScroll);\r\n        }\r\n    };\r\n\r\n    private hasScrollBar() {\r\n        return this.el.scrollWidth > this.el.offsetWidth;\r\n    }\r\n\r\n    scrollByOffset = (endOffset: number) => {\r\n        if (!this.hasScrollBar()) {\r\n            return;\r\n        }\r\n\r\n        const startTime = new Date().getTime();\r\n\r\n        const el = this.el;\r\n        const startOffset = el.scrollLeft;\r\n\r\n        if (this.prefersReducedMotion) {\r\n            el.scrollTo({\r\n                left: endOffset,\r\n            });\r\n\r\n            return;\r\n        }\r\n\r\n        function scrollByStep() {\r\n            const now = new Date().getTime();\r\n            const progress = Math.min(1, (now - startTime) / MAX_SCROLL_DURATION);\r\n            const step = startOffset + (endOffset - startOffset) * progress;\r\n\r\n            el.scrollTo({\r\n                left: step,\r\n            });\r\n\r\n            if (progress === 1) {\r\n                return;\r\n            }\r\n\r\n            window.requestAnimationFrame(scrollByStep);\r\n        }\r\n\r\n        if ('scrollTo' in el) {\r\n            // ie11 is not supported\r\n            scrollByStep();\r\n        }\r\n    };\r\n\r\n    async onDescribe() {\r\n        const { default: _debounce } = await import('lodash-es/debounce');\r\n\r\n        await runWithNewTask(() => this.updateEdgesVisibility());\r\n\r\n        window.addEventListener('resize', _debounce(this.updateEdgesVisibility, 100));\r\n    }\r\n}\r\n\r\nnamespace Content {\r\n    export interface Params {\r\n        onFadeEdgesChange: (modifiers: BemBlock.ModifiersMap) => void;\r\n    }\r\n}\r\n","import { BemBlock } from '../../pages/bem';\r\n\r\nimport { Content } from './content';\r\nimport './style.css';\r\n\r\ninterface IHorizonScrollableBlockItem {\r\n    getOffsetParams(): {\r\n        width: number;\r\n        offsetLeft: number;\r\n    };\r\n}\r\n\r\nexport class HorizonScrollableBlock extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Horizon-Scrollable';\r\n    }\r\n\r\n    private content = this.describeElement('content', Content, {\r\n        onFadeEdgesChange: (modifiers) => this.applyModifiers(modifiers),\r\n    });\r\n\r\n    scrollToElement(element: IHorizonScrollableBlockItem) {\r\n        const offsetParams = element.getOffsetParams();\r\n        const offset = offsetParams.offsetLeft - this.el.offsetWidth / 2 + offsetParams.width / 2;\r\n\r\n        this.content.scrollByOffset(offset);\r\n    }\r\n}\r\n","import { BemElement } from '../../pages/bem';\r\nimport { runWithNewTask } from '../../util/run-with-new-task';\r\n\r\nimport type { TabberPanel } from './TabberPanel';\r\nimport type { TabberTab } from './TabberTab';\r\n\r\nexport class TabberElement extends BemElement<TabberElement.Params> {\r\n    public onDescribe() {\r\n        this.params.tabs.forEach((tab) => {\r\n            void runWithNewTask(() => tab.addOnClickListener(this.onTabClick));\r\n        });\r\n        if (this.params.defaultTabId) {\r\n            this.onTabClick(this.params.defaultTabId);\r\n        }\r\n    }\r\n\r\n    private onTabClick = (id: string) => {\r\n        this.params.tabs.forEach((tab) => tab.updateTabState(id));\r\n        this.params.panels.forEach((panel) => panel.updateContentState(id));\r\n    };\r\n}\r\n\r\nexport namespace TabberElement {\r\n    export interface Params {\r\n        tabs: TabberTab[];\r\n        panels: TabberPanel[];\r\n        defaultTabId?: string;\r\n    }\r\n}\r\n","import { BemElement } from '../../pages/bem';\r\n\r\nexport class TabberPanel extends BemElement<TabberPanel.Params> {\r\n    private id = this.el.getAttribute('data-id') || this.el.getAttribute('aria-labelledby') || '';\r\n\r\n    public onDescribe() {\r\n        this.applyModifiers({ 'active-default': false });\r\n    }\r\n\r\n    public updateContentState = (id: string) => {\r\n        const active = this.id === id;\r\n        this.applyModifiers({ active });\r\n\r\n        if (active) {\r\n            this.el.removeAttribute('hidden');\r\n        } else {\r\n            this.el.setAttribute('hidden', 'hidden');\r\n        }\r\n    };\r\n}\r\n\r\nexport namespace TabberPanel {\r\n    export interface Params {\r\n        animated: boolean;\r\n    }\r\n}\r\n","import { BemElement } from '../../pages/bem';\r\n\r\nexport class TabberTab extends BemElement {\r\n    private id = this.el.getAttribute('data-id') || this.el.getAttribute('id') || '';\r\n    private label = this.el.getAttribute('data-label') || '';\r\n\r\n    public getId = () => {\r\n        return this.id;\r\n    };\r\n\r\n    public getOffsetParams = () => {\r\n        return {\r\n            offsetLeft: this.el.offsetLeft,\r\n            width: this.el.offsetWidth,\r\n        };\r\n    };\r\n\r\n    public addOnClickListener = (listenter: (id: string, label: string) => void) => {\r\n        const onClick = (ev: Event) => {\r\n            ev.preventDefault();\r\n            listenter(this.id, this.label);\r\n        };\r\n        this.el.addEventListener('click', onClick);\r\n    };\r\n\r\n    public updateTabState = (dataId: string) => {\r\n        const active = dataId === this.id;\r\n        this.applyModifiers({ active });\r\n        this.el.setAttribute('aria-selected', active ? 'true' : 'false');\r\n    };\r\n}\r\n","import { BemBlock } from '../../pages/bem';\r\nimport { runWithNewTask } from '../../util/run-with-new-task';\r\nimport { HorizonScrollableBlock } from '../horizon-scrollable-block';\r\nimport { TabberElement } from '../tabber/TabberElement';\r\nimport { TabberPanel } from '../tabber/TabberPanel';\r\nimport { TabberTab } from '../tabber/TabberTab';\r\n\r\nimport './style.css';\r\n\r\nexport class IndustriesTabber extends BemBlock<IndustriesTabber.Params> {\r\n    protected blockName(): string {\r\n        return 'S-Industries-Tabber';\r\n    }\r\n\r\n    private tabs = this.describeAllElements('tabs-tab', TabberTab, {});\r\n    private tabHeader = this.describeBlock('tabs-scrollable', HorizonScrollableBlock, {});\r\n\r\n    private prefersReducedMotion = matchMedia('(prefers-reduced-motion)').matches;\r\n\r\n    onDescribe() {\r\n        const tabs = this.tabs;\r\n        const defaultTabId = tabs[0].getId();\r\n        const panels = this.describeAllElements('tabs-panel', TabberPanel, {\r\n            animated: true,\r\n        });\r\n\r\n        tabs.forEach((tab) => {\r\n            void runWithNewTask(() => tab.addOnClickListener(this.onTabClick));\r\n        });\r\n\r\n        this.describeElement('tabs', TabberElement, {\r\n            tabs,\r\n            panels,\r\n            defaultTabId,\r\n        } as TabberElement.Params);\r\n\r\n        void (async () => {\r\n            if (!this.prefersReducedMotion) {\r\n                const { BubbleGroup } = await import('../animated-bubbles');\r\n                this.describeBlock('bubble-group', BubbleGroup, {});\r\n            }\r\n        })();\r\n    }\r\n\r\n    private onTabClick = (id: string) => {\r\n        const tab = this.tabs.find((x) => x.getId() === id);\r\n\r\n        if (tab) {\r\n            this.tabHeader.scrollToElement(tab);\r\n\r\n            if (this.params.onTabClick) {\r\n                this.params.onTabClick(id);\r\n            }\r\n        }\r\n    };\r\n}\r\n\r\nexport namespace IndustriesTabber {\r\n    export interface Params {\r\n        onTabClick?: (id: string) => void;\r\n    }\r\n}\r\n","import { IndustriesTabber } from '../../../components/industries-tabber';\r\nimport { BemBlock } from '../../bem';\r\n\r\nexport class UsersFeedback extends BemBlock {\r\n    protected blockName(): string {\r\n        return 'S-Online-Pdf-Document-View-Users-Feedback';\r\n    }\r\n\r\n    onDescribe() {\r\n        this.describeBlock('tabs', IndustriesTabber, {});\r\n    }\r\n}\r\n","import { BasePage } from '../../../components/base-page';\r\nimport { GoTrialButtonWrapper } from '../../../components/go-trial-button';\r\nimport { runWithNewTask } from '../../../util/run-with-new-task';\r\n\r\nimport '../../../components/demo-wrapper';\r\n\r\nimport { CallToAction } from './cta';\r\nimport { Features } from './features';\r\nimport { FirstScreen } from './first-screen';\r\nimport { HowTo } from './how-to';\r\nimport { LittleThings } from './little-things';\r\nimport { OurProducts } from './our-products';\r\nimport { UsersFeedback } from './users-feedback';\r\n\r\nimport './styles/index.css';\r\n\r\nclass OnlinePdfDocumentView extends BasePage {\r\n    protected blockName() {\r\n        return 'S-Online-Pdf-Document-View';\r\n    }\r\n\r\n    onDescribe() {\r\n        super.onDescribe();\r\n\r\n        void runWithNewTask(() => this.describeBlock('first-screen', FirstScreen, {}));\r\n\r\n        void runWithNewTask(() => this.describeBlock('our-products', OurProducts, {}));\r\n\r\n        this.describeBlock('little-things', LittleThings, {});\r\n        this.describeBlock('call-to-action', CallToAction, {});\r\n        this.describeBlock('features', Features, {});\r\n        this.describeBlock('users-feedback', UsersFeedback, {});\r\n\r\n        void runWithNewTask(() =>\r\n            this.describeBlock('examples', GoTrialButtonWrapper(`${this.blockName()}-Examples`), {\r\n                position: 'middle',\r\n            }),\r\n        );\r\n\r\n        void runWithNewTask(() => this.describeBlock('how-to', HowTo, {}));\r\n    }\r\n}\r\n\r\nexport { OnlinePdfDocumentView 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\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            ...properties,\r\n        });\r\n    }\r\n}\r\n","import type { IAnalyticsService } from '@flippingbook/web.utils/dist/analytics';\r\nimport { 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 { SiteAnalyticsService } from '../analytics';\r\n\r\nimport { serviceClient } from './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\nexport const analytics: IAnalyticsService = new SiteAnalyticsService({\r\n    fbAnalytics,\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\nimport config from 'config';\r\n\r\nimport { httpClient } from './httpClient';\r\n\r\nconst locatorUrl = config.locatorUrl;\r\n\r\nexport const serviceLocatorApi: IServiceLocatorApi = new ServiceLocatorApi({\r\n    httpClient,\r\n    locatorUrl,\r\n});\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 = 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","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","module.exports = {\"locatorUrl\":\"https://registry-tc.dev.flippingbook.com/api\",\"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 = 8519;","__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\t8519: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"812\":1,\"957\":1,\"1597\":1,\"2989\":1,\"5515\":1,\"7273\":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\t8519: 0,\n\t4514: 0,\n\t5949: 0,\n\t5908: 0,\n\t2577: 0,\n\t4531: 0,\n\t307: 0,\n\t2688: 0,\n\t9608: 0,\n\t3863: 0,\n\t2435: 0,\n\t2737: 0,\n\t3213: 0,\n\t5118: 0,\n\t5594: 0,\n\t7499: 0,\n\t9880: 0,\n\t2709: 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(!/^(2(435|577|709)|45(14|31)|59(08|49)|1597|3863|9608|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,4531,9608,3863,2435,2709,947,6324,9874], () => (__webpack_require__(1610)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","CTAAnalyticsService","Parametrized","send","position","this","params","analytics","gaEvent","category","button_location","ctaAnalytics","GoTrialButton","B","direction","el","getAttribute","product","sendAnalytics","onLinkClick","async","ev","preventDefault","stopPropagation","newLink","loggedIn","baseRegisterUrl","serviceLocator","resolve","subsystem","service","registerUrl","siteAntispamService","getUserDetachedContext","window","encodeURIComponent","location","origin","getLink","url","setTimeout","href","onDescribe","addEventListener","GoTrialButtonWrapper","blockName","describeElement","blockThreshold","runOnceOnIntersect","fn","threshold","rootMargin","intersector","onIntersectionChange","entry","isIntersecting","unobserve","observe","CallToAction","animate","applyModifiers","LayoutChecker","isIn","layout","mobileLayoutChecker","tabletLayoutChecker","FeaturePane","onResizeThrottled","alignmentTitlesHeight","titleElements","allElements","onDesktopLineSize","Number","dataset","lineSize","length","isMobile","resetTitlesHeight","isTablet","requestAnimationFrame","recalculateTitlesHeight","forEach","titleElement","style","height","heights","getMaxTitleHeightsByLineSize","setTitlesHeight","elementHeights","map","getBoundingClientRect","linesCount","Math","ceil","Array","from","_","i","startIndex","endIndex","max","slice","floor","Features","describeBlock","animationEvent","animation","transition","AnimatedElement","clearClass","className","eventName","animationType","Promise","onAnimationEnd","removeEventListener","CalendlyButton","CalendlyButtonFBO","ChainAnimation","applyAnimation","cb","classList","add","animatePart","selector","elements","rootElement","querySelectorAll","animationsInQuery","undefined","deleteAnimationPart","remove","selectorSequence","reset","ChainAnimationElement","chainAnimation","animationElementSequence","shown","FirstScreen","element","circleIcon","arrowLine","bottomLine","container","classNames","elementName","elementClass","startAnimation","contentRoot","maybeContentBaseElement","document","querySelector","replace","loadJs","load","loadCss","flipbookEmbedScript","addFBOScriptByHashId","hashId","fboLoadPromise","addSalespalScriptById","id","salespalLoadPromise","addCLDBZScript","cldbzLoadPromise","InteractiveStub","loading","onClick","once","embedLinkParamsMap","fbo","type","globalEmbedName","activationClassName","embedIdName","onEmbedScriptAdd","salespal","cldbz","EmbedLink","embedId","addEmbedScript","showLink","display","prepareForActivate","hasConsent","Targeting","Performance","setAttribute","activateEmbeds","parseAllEmbeds","Embed","embedLink","hideStub","loaded","watch","intersectionRatio","matchMedia","matches","stubParams","hideStubTimeoutId","publicationLoadedHandler","event","test","data","action","clearTimeout","noIframe","HowTo","LittleThings","things","ensureElement","shining","OurProductsCoffee","FboCard","createBadge","createElement","text","l10n","get","MostPopularBadgeText","innerHTML","showStub","showMostPopular","badge","ctaWrapperElement","insertBefore","OurProductsCoffeeMostPopular","fboCard","super","onFboCardIntersect","OurProducts","products","animateLines","reducedMotionMode","Content","prefersReducedMotion","updateEdgesVisibility","visibleWidth","offsetWidth","scrollWidth","updateVisibilityOnScroll","scrollLeft","rightEdgeVisible","leftEdgeVisible","onFadeEdgesChange","shouldShowEdges","scrollByOffset","endOffset","hasScrollBar","startTime","Date","getTime","startOffset","scrollTo","left","scrollByStep","now","progress","min","step","default","_debounce","HorizonScrollableBlock","content","modifiers","scrollToElement","offsetParams","getOffsetParams","offset","offsetLeft","width","TabberElement","onTabClick","tabs","tab","updateTabState","panels","panel","updateContentState","addOnClickListener","defaultTabId","TabberPanel","active","removeAttribute","TabberTab","label","getId","listenter","dataId","IndustriesTabber","describeAllElements","tabHeader","find","x","animated","BubbleGroup","UsersFeedback","OnlinePdfDocumentView","SiteAnalyticsService","properties","area","fbAnalyticsApi","client","serviceClient","fbAnalytics","storage","httpClient","fetcher","fetch","locatorUrl","serviceLocatorApi","cache","preseed","Mediaparts","Bootstrap","Params","registry","Object","keys","filter","key","reduce","split","endpoints","endpoint","previousEndpoint","currentEndpoint","Version","endpointUrl","prepareLocatorCache","__flippingbook_user_detached_context__","SingleElementIntersector","constructor","observerCallback","entries","observer","IntersectionObserver","currentLayout","testarea","getElementById","getElementsByTagName","acc","substring","getLoginConsumer","loginConsumer","getImageLoadList","c","join","imgElement","waitForImageLoad","image","complete","handleImageLoad","waitForAllImagesLoad","loadList","all","setLoadedClassForImage","imgElements","loadedClassName","isLoggedIn","Boolean","flippingbook","user","isVisible","elem","offsetHeight","getClientRects","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","m","amdO","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","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","charset","timeout","nc","src","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","bind","target","head","appendChild","Symbol","toStringTag","nmd","paths","children","p","loadStylesheet","reject","fullhref","existingLinkTags","dataHref","tag","rel","existingStyleTags","findStylesheet","oldTag","linkTag","nonce","errorType","realHref","err","Error","name","code","request","nextSibling","createStylesheet","installedCssChunks","miniCss","installedChunks","installedChunkData","promise","error","realSrc","message","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}