{"version":3,"file":"static/js/main.67f570cf.js","mappings":"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","sources":["app-consts.ts","webpack-public-path.js","utils/array.extensions.ts","polyfills.ts","index.tsx","load-jquery-for-automation.ts","launcher/utils/launcher-constants/launcher-constants.ts","orbit-startup-functions.ts","utils/automation-helpers.ts","utils/hybrid-utils.ts","utils/qa-mode-utils.ts","../node_modules/@sparkware/app-utils/src/index.ts","../node_modules/@sparkware/app-utils/src/utils/time_span/time-span.ts","../node_modules/@sparkware/app-utils/src/utils/type-checking/type-checking.ts","../node_modules/intersection-observer/intersection-observer.js","../node_modules/smoothscroll-polyfill/dist/smoothscroll.js","../node_modules/url-search-params-polyfill/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["export const ALL_CONFIGS_KEY = '$allConfigs';\nexport const LAUNCHER_DATA_STORAGE_KEY = 'cgp_client';","import {ALL_CONFIGS_KEY} from \"./app-consts\";\n\nconst allConfigs = window[ALL_CONFIGS_KEY];\nif (allConfigs) {\n let orbitServerPath = allConfigs.sdk.config.ExtraProperties.paths.server;\n if(!orbitServerPath.endsWith('/')) {\n orbitServerPath = orbitServerPath + '/';\n }\n /* eslint-disable-next-line no-undef */\n __webpack_public_path__ = orbitServerPath;\n}\n\n","import {DictionaryKey} from \"../common/types/dictionary-key-type\";\nimport {NullableUndefinedString} from \"../common/types/nullable-types\";\n\n\nif (!Array.prototype.toDictionary) {\n Array.prototype.toDictionary = function(keySelector: (item: TItem, index: number) => TKey,\n valueSelector?: (item: TItem, index: number) => TValue | TItem ): Record {\n const result: Record = {};\n\n if(!valueSelector) {\n valueSelector = (item) => item;\n }\n\n this.forEach((item, index) => {\n let key: any = keySelector(item, index);\n result[key] = valueSelector(item, index);\n })\n return result;\n }\n}\n\n\nif(!Array.prototype.groupByKey) {\n Array.prototype.groupByKey = function(keySelector: (item: TItem, index: number) => TKey,\n valueSelector?: (item: TItem, index: number) => TValue | TItem ): Record> {\n\n const result: Record> = {};\n\n if(!valueSelector) {\n valueSelector = (item => item);\n }\n\n this.forEach((item, index) => {\n const key: any = keySelector(item, index);\n if(!result[key]) {\n result[key] = [];\n }\n result[key].push(valueSelector(item, index));\n });\n return result;\n }\n}\n\nif(!Array.prototype.distinct) {\n Array.prototype.distinct = function(keySelector?: (item: TItem, index: number) => TKey | TItem,\n valueSelector?: (item: TItem, index: number) => TResult | TItem): Array {\n if(this.length === 0) {\n return [];\n }\n\n if(!keySelector) {\n keySelector = item => item;\n }\n\n if(!valueSelector) {\n valueSelector = item => item;\n }\n\n const uniqueItems: Record = {};\n\n this.forEach((item, index) => {\n const key: any = keySelector(item, index);\n uniqueItems[key] = valueSelector(item, index);\n })\n\n return Object.values(uniqueItems);\n }\n}\n\nif(!Array.prototype.all) {\n Array.prototype.all = function(predicate: (item: T) => boolean): boolean {\n if(this.length === 0) {\n return false;\n }\n\n for(let item of this) {\n if(!predicate(item)) {\n return false;\n }\n }\n return true;\n }\n}\n\nif(!Array.prototype.splitToChunks) {\n Array.prototype.splitToChunks = function(chunkSize: number): Array {\n if(this.length === 0) {\n return [];\n }\n\n let result: Array = [];\n for(let i = 0; i * chunkSize < this.length; i++) {\n result.push(this.slice(i * chunkSize, i * chunkSize + chunkSize));\n }\n\n return result;\n }\n}\n\nif(!Array.prototype.selectMany) {\n Array.prototype.selectMany = function(subItemsSelector: (item: TItem, index: number) => TValue[]): TValue[] {\n\n const result: TValue[] = [];\n this.forEach((item, index) => {\n for(let value of subItemsSelector(item, index)) {\n result.push(value);\n }\n });\n return result;\n }\n}\n\nif (!Array.prototype.findFirst) {\n Array.prototype.findFirst = function(filter: (item: T) => boolean): T | undefined {\n return this.filter(filter)[0];\n }\n}\n\nif (!Array.prototype.max) {\n Array.prototype.max = function(valueSelector: (item: T) => number): T | undefined {\n if(this.length === 0) {\n return undefined;\n }\n\n let max = this[0];\n\n for(let i = 1; i < this.length; i++) {\n if(valueSelector(max) < valueSelector(this[i])) {\n max = this[i];\n }\n }\n\n return max;\n }\n}\n\nif (!Array.prototype.min) {\n Array.prototype.min = function(valueSelector: (item: T) => number): T | undefined {\n if(this.length === 0) {\n return undefined;\n }\n\n let min = this[0];\n\n for(let i = 1; i < this.length; i++) {\n if(valueSelector(min) > valueSelector(this[i])) {\n min = this[i];\n }\n }\n\n return min;\n }\n}\n\nif(!Array.prototype.sum) {\n Array.prototype.sum = function(valueSelector: (item: T) => number): number {\n if(this.length === 0) {\n return 0;\n }\n let result = 0;\n this.forEach(item => {\n result += valueSelector(item);\n });\n\n return result;\n }\n}\n\n\nexport {};\n","import 'intersection-observer';\nimport 'url-search-params-polyfill'; // Edge 41 and 42 don't have this\nimport './utils/array.extensions'\nimport smoothscroll from 'smoothscroll-polyfill'; // this is for making window.scrollTo work in Edge\nsmoothscroll.polyfill();","import './webpack-public-path';\nimport './polyfills';\nimport {isLauncherPath} from \"./launcher/utils/launcher-constants/launcher-constants\";\nimport {isOrbitInQAMode} from './utils/qa-mode-utils';\nimport {isHybridEmbedded} from \"./utils/hybrid-utils\";\nimport {loadJQueryForAutomation} from \"./load-jquery-for-automation\";\n\nasync function startLauncher(): Promise {\n const module = await import(/* webpackChunkName: \"launcher\"*/ './startup-launcher');\n module.startLauncher();\n}\n\nasync function startHybridApp(): Promise {\n if (isOrbitInQAMode()) {\n if (isLauncherPath(window.location.pathname)) {\n await startLauncher();\n } else {\n const module = await import(/* webpackChunkName: \"hybrid-qa\"*/ './startup-orbit-hybrid-qa');\n await module.startOrbitHybridQA()\n }\n } else {\n const module = await import(/* webpackChunkName: \"hybrid-prod\"*/ './startup-orbit-hybrid-prod');\n await module.startupOrbitHybridProd();\n }\n}\n\nasync function startWebApp(): Promise {\n if(isOrbitInQAMode()) {\n if(isLauncherPath(window.location.pathname)) {\n await startLauncher();\n } else {\n import(/* webpackChunkName: \"orbit-qa\"*/ './startup-orbit-qa').then(module => module.startOrbitQA());\n }\n } else {\n import(/* webpackChunkName: \"orbit-prod\"*/ './startup-orbit-prod').then(module => module.startOrbitProd());\n }\n}\n\nasync function startApp(): Promise {\n await loadJQueryForAutomation();\n if(isHybridEmbedded()) {\n await startHybridApp();\n } else {\n await startWebApp();\n }\n}\n\n\nstartApp();\n\n","import {isInsideAutomation} from \"./utils/automation-helpers\";\n\nexport function loadJQueryForAutomation(): Promise {\n if(!isInsideAutomation()) {\n return Promise.resolve();\n }\n return new Promise((resolve, reject) => {\n const scriptTag = document.createElement('script');\n scriptTag.src = \"https://code.jquery.com/jquery-3.7.1.min.js\";\n scriptTag.onload = () => {\n resolve();\n };\n scriptTag.onerror = (err: any) => {\n reject(err);\n };\n document.head.appendChild(scriptTag);\n })\n}","export const MAIN_LAUNCHER_PATH = \"/launch/888debug\";\n\nconst LAUNCHER_PATHS = [MAIN_LAUNCHER_PATH, \"/cip/launch/888debug\", \"/cis/launch/888debug\"];\n\nexport function isLauncherPath(path: string): boolean {\n\n if(!path) {\n return false;\n }\n\n path = path.toLowerCase();\n for(let i = 0; i < LAUNCHER_PATHS.length; i++) {\n if(path.startsWith(LAUNCHER_PATHS[i])) {\n return true;\n }\n }\n\n return false;\n}","interface IOrbitStartupFunctions {\n isCip(): boolean;\n isCis(): boolean;\n isProgressiveWebApp(): boolean;\n logToElastic(eventCategory: string, eventAction: string, eventLabel: string, eventValue: string): void;\n isHybridEmbedded(): boolean;\n getOrbitInitParams(): {\n sdkApiOrigin: string;\n orbitCDNOrigin: string;\n country: string;\n cmsSource: string;\n languageIso3: string;\n languageIso2: string;\n publicationId: number;\n queryParams: string;\n }\n}\n\n\nexport const OrbitStartupFunctions = window['orbitStartupFunctions'] as IOrbitStartupFunctions;\n","import {Check, TimeSpan} from '@sparkware/app-utils';\nimport {ApplicationStartupConfigurations} from '../app-react/app-bootstrap/config-interfaces/application-startup.configurations';\nimport {TimeIntervalName} from '../common/utils/time-interval-names';\n\nexport const CYPRESS_TO_ORBIT_HOOKS_OBJECT_NAME = 'CypressToOrbitHooks';\nexport const CYPRESS_GLOBAL_OBJECT_NAME = 'Cypress';\n\nexport function isInsideAutomation(): boolean {\n return !Check.isNullOrUndefined(window[CYPRESS_GLOBAL_OBJECT_NAME])\n && !Check.isNullOrUndefined(window[CYPRESS_GLOBAL_OBJECT_NAME][CYPRESS_TO_ORBIT_HOOKS_OBJECT_NAME])\n}\n\n\nexport function mockApplicationStartupConfigs(configs: ApplicationStartupConfigurations): ApplicationStartupConfigurations {\n if(isInsideAutomation()) {\n getCypressToOrbitHooks().onAppStartupConfigs(configs);\n }\n return configs;\n}\n\nexport function getCypressToOrbitHooks(): ICypressToOrbitHooks {\n if(!isInsideAutomation()) {\n throw new Error('You can only call getCypressToOrbitHooks inside automation');\n }\n return window[CYPRESS_GLOBAL_OBJECT_NAME][CYPRESS_TO_ORBIT_HOOKS_OBJECT_NAME] as ICypressToOrbitHooks;\n}\n\nexport interface OnTimeIntervalCreationResult {\n ignoreJavaScriptImplementation: boolean;\n timerId?: number;\n}\n\nexport enum NamedIntervalType {\n setInterval,\n setTimeout\n}\n\nexport interface ICypressToOrbitHooks {\n onAppStartupConfigs(configs: ApplicationStartupConfigurations);\n onTimeIntervalCreation(name: TimeIntervalName, callback: () => void, interval: TimeSpan, intervalType: NamedIntervalType): OnTimeIntervalCreationResult;\n}\n\n","import {OrbitStartupFunctions} from \"../orbit-startup-functions\";\n\nexport function isHybridEmbedded(): boolean {\n return OrbitStartupFunctions.isHybridEmbedded();\n}\n","import {isHybridEmbedded} from \"./hybrid-utils\";\n\nfunction isHybridEmbeddedQA(): boolean {\n if(!isHybridEmbedded()) {\n return false;\n }\n\n if(window['isQAEnvironment']) {\n return window['isQAEnvironment']();\n }\n\n return false;\n}\n\nexport function isOrbitInQAMode(): boolean {\n return Boolean(window['isOrbitWebAppInQAMode']) || isHybridEmbeddedQA();\n}","import {TimeSpan} from \"./utils/time_span/time-span\";\nimport {Check} from \"./utils/type-checking/type-checking\";\n\nexport {TimeSpan, Check};","import {Check} from \"../..\";\n\nconst MILLIS_PER_SECOND = 1000;\nconst MILLIS_PER_MINUTE = MILLIS_PER_SECOND * 60; // 60,000\nconst MILLIS_PER_HOUR = MILLIS_PER_MINUTE * 60; // 3,600,000\nconst MILLIS_PER_DAY = MILLIS_PER_HOUR * 24; // 86,400,000\n\n\nexport class TimeSpan {\n\n private _totalMilliseconds: number = 0;\n\n constructor(days: number, hours: number, minutes: number, seconds: number = 0, milliseconds: number = 0) {\n const totalmilliseconds = days * MILLIS_PER_DAY\n + hours * MILLIS_PER_HOUR\n + minutes * MILLIS_PER_MINUTE\n + seconds * MILLIS_PER_SECOND\n + Math.floor(milliseconds); // only milliseconds will be \"trimmed\"\n\n // try to avoid double number issue\n this._totalMilliseconds = Math.round(totalmilliseconds);\n }\n\n private _getSign() : number {\n if(this._totalMilliseconds < 0) {\n return -1;\n } else {\n return 1;\n }\n }\n\n private _floor(value: number): number {\n return this._getSign() * Math.floor(Math.abs(value));\n }\n\n get days(): number {\n return this._floor(this.totalDays);\n }\n\n get hours(): number {\n return this._floor(this.totalHours % 24);\n }\n\n get minutes(): number {\n return this._floor(this.totalMinutes % 60);\n }\n\n get seconds(): number {\n return this._floor(this.totalSeconds % 60);\n }\n\n get milliseconds(): number {\n return this._floor(this._totalMilliseconds % MILLIS_PER_SECOND);\n }\n\n get totalDays(): number {\n return this._totalMilliseconds / MILLIS_PER_DAY;\n }\n\n get totalHours(): number {\n return this._totalMilliseconds / MILLIS_PER_HOUR;\n }\n\n get totalMinutes(): number {\n return this._totalMilliseconds / MILLIS_PER_MINUTE;\n }\n\n get totalSeconds(): number {\n return this._totalMilliseconds / MILLIS_PER_SECOND;\n }\n\n get totalMilliseconds(): number {\n return this._totalMilliseconds;\n }\n\n static areEquals(ts1: TimeSpan, ts2: TimeSpan) {\n if(Check.isNullOrUndefined(ts1) && Check.isNullOrUndefined(ts2)){\n return true;\n }\n\n if(Check.isNullOrUndefined(ts1)) {\n return false;\n }\n\n if(Check.isNullOrUndefined(ts2)) {\n return false;\n }\n\n return ts1.totalMilliseconds === ts2.totalMilliseconds;\n }\n\n static parse(text: string | null | undefined) {\n if(!text) {\n throw new Error('Null, undefined or empty string not allowed for TimeSpan format');\n }\n\n const components = text.split(/:/);\n if(components.length < 2) {\n throw new Error('Invalid TimeSpan input format ' + text);\n }\n\n let days = 0;\n let hours = 0;\n let minutes = 0;\n let seconds = 0;\n let milliseconds = 0;\n\n const daysAndHours = components[0].split(/\\./);\n if(daysAndHours.length === 2) {\n days = parseInt(daysAndHours[0]);\n hours = parseInt(daysAndHours[1]);\n } else {\n hours = parseInt(daysAndHours[0]);\n }\n\n minutes = parseInt(components[1]);\n\n if(components.length === 3) { // it means we have seconds and/or milliseconds\n let secondsAndMilliseconds = components[2].split(/\\./);\n if(secondsAndMilliseconds.length === 2) { // it means we have seconds and milliseconds\n seconds = parseInt(secondsAndMilliseconds[0]);\n milliseconds = TimeSpan._parseMilliseconds(secondsAndMilliseconds[1]);\n } else { // it means we have seconds without milliseconds\n seconds = parseInt(secondsAndMilliseconds[0]);\n }\n }\n return new TimeSpan(days, hours, minutes, seconds, milliseconds);\n }\n\n static _parseMilliseconds(ms: string): number {\n let milliseconds = parseInt(ms);\n\n if(milliseconds <= 999) {\n return milliseconds;\n }\n\n while(milliseconds > 999) {\n milliseconds = milliseconds / 10;\n }\n\n return Math.round(milliseconds);\n }\n\n static fromMilliseconds(totalMilliseconds: number): TimeSpan {\n return new TimeSpan(0, 0, 0, 0, totalMilliseconds);\n }\n\n static fromSeconds(totalSeconds: number): TimeSpan {\n return new TimeSpan(0, 0, 0, totalSeconds, 0);\n }\n\n static fromMinutes(totalMinutes: number): TimeSpan {\n return new TimeSpan(0, 0, totalMinutes, 0, 0);\n }\n\n static fromHours(totalHours: number): TimeSpan {\n return new TimeSpan(0, totalHours, 0, 0, 0);\n }\n\n static fromDays(days: number): TimeSpan {\n return new TimeSpan(days, 0, 0, 0, 0);\n }\n\n subtract(timeSpan: TimeSpan): TimeSpan {\n if(!timeSpan) {\n throw new Error('timeSpan argument cannot be null or undefined');\n }\n\n const milliseconds = this.totalMilliseconds - timeSpan.totalMilliseconds;\n return TimeSpan.fromMilliseconds(milliseconds);\n }\n\n add(timeSpan: TimeSpan): TimeSpan {\n if(!timeSpan) {\n throw new Error('timeSpan argument cannot be null or undefined');\n }\n\n let totalMilliseconds = this.totalMilliseconds + timeSpan.totalMilliseconds;\n return TimeSpan.fromMilliseconds(totalMilliseconds);\n }\n\n public toString(options: {useTotalHours?: boolean} = {}): string {\n\n // special negative case (we treat it like '-'+normal positive toString() result)\n if (this._totalMilliseconds < 0)\n return '-' + TimeSpan.fromMilliseconds(-this._totalMilliseconds).toString({useTotalHours: options.useTotalHours});\n\n let result = '';\n if (!options.useTotalHours) {\n if(this.days > 0) {\n result += this.days.toString() + '.';\n }\n result += this.hours.toString().padStart(2, '0') + ':';\n } else {\n result += this._floor(this.totalHours).toString().padStart(2, '0') + ':';\n }\n \n result += this.minutes.toString().padStart(2, '0') + ':';\n result += this.seconds.toString().padStart(2, '0');\n\n if(this.milliseconds > 0) {\n result += '.' + this.milliseconds.toString().padStart(3, '0');\n }\n\n return result;\n }\n\n public toHoursAndMinutesString(): string {\n return this.hours.toString().padStart(2, '0') + ':' + this.minutes.toString().padStart(2, '0');\n }\n\n public toHoursMinutesAndSecondsString(): string {\n return this.hours.toString().padStart(2, '0') + ':' + this.minutes.toString().padStart(2, '0') + ':' + this.seconds.toString().padStart(2, '0');\n }\n\n public toLocalTime(): TimeSpan {\n let localTime = new Date();\n localTime.setUTCHours(this.hours);\n localTime.setUTCMinutes(this.minutes);\n localTime.setUTCSeconds(this.seconds);\n localTime.setUTCMilliseconds(this.milliseconds);\n\n return new TimeSpan(0, localTime.getHours(), localTime.getMinutes(), localTime.getSeconds(), localTime.getMilliseconds());\n }\n}\n","export class Check {\n\n static isFunction(input: unknown) : boolean {\n return '[object Function]' === Object.prototype.toString.call(input);\n }\n\n static isString(input: unknown) : input is string {\n return '[object String]' === Object.prototype.toString.call(input);\n }\n\n static isNumber(input: unknown): input is number {\n return '[object Number]' === Object.prototype.toString.call(input) && !isNaN(input as number);\n }\n\n static isObject(input: unknown): input is object {\n return '[object Object]' === Object.prototype.toString.call(input);\n }\n\n static isDate(input: unknown): input is Date {\n return '[object Date]' === Object.prototype.toString.call(input) && (input as Date).toString() !== \"Invalid Date\";\n }\n\n static isArray(expectedArray: unknown): expectedArray is Array {\n return Array.isArray(expectedArray);\n }\n\n static isArrayOfStrings(expectedArray: unknown): expectedArray is string[] {\n if(!Array.isArray(expectedArray)) {\n return false;\n }\n\n for(let i = 0; i < expectedArray.length; i++) {\n if(!Check.isString(expectedArray[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n static isBoolean(input: unknown): input is boolean {\n return true === input || false === input || '[object Boolean]' === Object.prototype.toString.call(input);\n }\n\n\n static isError(input: unknown) : input is Error {\n return '[object Error]' === Object.prototype.toString.call(input);\n }\n\n static isSymbol(input: unknown): input is Symbol {\n return '[object Symbol]' === Object.prototype.toString.call(input);\n }\n\n static isUndefined(input: unknown): input is undefined {\n return '[object Undefined]' === Object.prototype.toString.call(input);\n }\n\n static isNull(value: unknown): value is null {\n return value === null;\n }\n\n static isNullOrUndefined(input: unknown): input is null | undefined {\n return this.isNull(input) || this.isUndefined(input);\n }\n\n static isEmpty(input: unknown): boolean {\n\n if(Check.isNullOrUndefined(input)) {\n return true;\n }\n\n if(Check.isString(input) || Check.isArray(input)) {\n return input.length === 0;\n }\n\n return Check.isObject(input) && Object.keys(input).length === 0;\n }\n\n}\n\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n/**\n * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\nfunction getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n}\n\n/**\n * A local reference to the root document.\n */\nvar document = (function(startDoc) {\n var doc = startDoc;\n var frame = getFrameElement(doc);\n while (frame) {\n doc = frame.ownerDocument;\n frame = getFrameElement(doc);\n }\n return doc;\n})(window.document);\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n/**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nvar crossOriginUpdater = null;\n\n/**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\nvar crossOriginRect = null;\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (\n options.root &&\n options.root.nodeType != 1 &&\n options.root.nodeType != 9\n ) {\n throw new Error('root must be a Document or Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n\n /** @private @const {!Array} */\n this._monitoringDocuments = [];\n /** @private @const {!Array} */\n this._monitoringUnsubscribes = [];\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nIntersectionObserver._setupCrossOriginUpdater = function() {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n registry.forEach(function(observer) {\n observer._checkForIntersections();\n });\n };\n }\n return crossOriginUpdater;\n};\n\n\n/**\n * Resets the cross-origin mode.\n */\nIntersectionObserver._resetCrossOriginUpdater = function() {\n crossOriginUpdater = null;\n crossOriginRect = null;\n};\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections(target.ownerDocument);\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n return item.element != target;\n });\n this._unmonitorIntersections(target.ownerDocument);\n if (this._observationTargets.length == 0) {\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorAllIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function(doc) {\n var win = doc.defaultView;\n if (!win) {\n // Already destroyed.\n return;\n }\n if (this._monitoringDocuments.indexOf(doc) != -1) {\n // Already monitoring.\n return;\n }\n\n // Private state for monitoring.\n var callback = this._checkForIntersections;\n var monitoringInterval = null;\n var domObserver = null;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n } else {\n addEvent(win, 'resize', callback, true);\n addEvent(doc, 'scroll', callback, true);\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {\n domObserver = new win.MutationObserver(callback);\n domObserver.observe(doc, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n this._monitoringDocuments.push(doc);\n this._monitoringUnsubscribes.push(function() {\n // Get the window object again. When a friendly iframe is destroyed, it\n // will be null.\n var win = doc.defaultView;\n\n if (win) {\n if (monitoringInterval) {\n win.clearInterval(monitoringInterval);\n }\n removeEvent(win, 'resize', callback, true);\n }\n\n removeEvent(doc, 'scroll', callback, true);\n if (domObserver) {\n domObserver.disconnect();\n }\n });\n\n // Also monitor the parent.\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._monitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function(doc) {\n var index = this._monitoringDocuments.indexOf(doc);\n if (index == -1) {\n return;\n }\n\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n\n // Check if any dependent targets are still remaining.\n var hasDependentTargets =\n this._observationTargets.some(function(item) {\n var itemDoc = item.element.ownerDocument;\n // Target is in this context.\n if (itemDoc == doc) {\n return true;\n }\n // Target is nested in this context.\n while (itemDoc && itemDoc != rootDoc) {\n var frame = getFrameElement(itemDoc);\n itemDoc = frame && frame.ownerDocument;\n if (itemDoc == doc) {\n return true;\n }\n }\n return false;\n });\n if (hasDependentTargets) {\n return;\n }\n\n // Unsubscribe.\n var unsubscribe = this._monitoringUnsubscribes[index];\n this._monitoringDocuments.splice(index, 1);\n this._monitoringUnsubscribes.splice(index, 1);\n unsubscribe();\n\n // Also unmonitor the parent.\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._unmonitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorAllIntersections = function() {\n var unsubscribes = this._monitoringUnsubscribes.slice(0);\n this._monitoringDocuments.length = 0;\n this._monitoringUnsubscribes.length = 0;\n for (var i = 0; i < unsubscribes.length; i++) {\n unsubscribes[i]();\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n if (!this.root && crossOriginUpdater && !crossOriginRect) {\n // Cross origin monitoring, but no initial data available yet.\n return;\n }\n\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, targetRect, rootRect);\n\n var rootBounds = null;\n if (!this._rootContainsTarget(target)) {\n rootBounds = getEmptyRect();\n } else if (!crossOriginUpdater || this.root) {\n rootBounds = rootRect;\n }\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootBounds,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} targetRect The bounding rect of the target.\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, targetRect, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot && parent) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return null;\n\n if (parent == this.root || parent.nodeType == /* DOCUMENT */ 9) {\n atRoot = true;\n if (parent == this.root || parent == document) {\n if (crossOriginUpdater && !this.root) {\n if (!crossOriginRect ||\n crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n // A 0-size cross-origin intersection means no-intersection.\n parent = null;\n parentRect = null;\n intersectionRect = null;\n } else {\n parentRect = crossOriginRect;\n }\n } else {\n parentRect = rootRect;\n }\n } else {\n // Check if there's a frame that can be navigated to.\n var frame = getParentNode(parent);\n var frameRect = frame && getBoundingClientRect(frame);\n var frameIntersect =\n frame &&\n this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n if (frameRect && frameIntersect) {\n parent = frame;\n parentRect = convertFromParentRect(frameRect, frameIntersect);\n } else {\n parent = null;\n intersectionRect = null;\n }\n }\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n var doc = parent.ownerDocument;\n if (parent != doc.body &&\n parent != doc.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n }\n if (!intersectionRect) break;\n parent = parent && getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {ClientRect} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root && !isDoc(this.root)) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var doc = isDoc(this.root) ? this.root : document;\n var html = doc.documentElement;\n var body = doc.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {DOMRect|ClientRect} rect The rect object to expand.\n * @return {ClientRect} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n var rootDoc =\n (this.root && (this.root.ownerDocument || this.root)) || document;\n return (\n containsDeep(rootDoc, target) &&\n (!this.root || rootDoc == target.ownerDocument)\n );\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detachEvent == 'function') {\n node.detachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object|?ClientRect} The intersection rect or undefined if no\n * intersection is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n } || null;\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {ClientRect} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n\n/**\n * Ensure that the result has all of the necessary fields of the DOMRect.\n * Specifically this ensures that `x` and `y` fields are set.\n *\n * @param {?DOMRect|?ClientRect} rect\n * @return {?DOMRect}\n */\nfunction ensureDOMRect(rect) {\n // A `DOMRect` object has `x` and `y` fields.\n if (!rect || 'x' in rect) {\n return rect;\n }\n // A IE's `ClientRect` type does not have `x` and `y`. The same is the case\n // for internally calculated Rect objects. For the purposes of\n // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`\n // for these fields.\n return {\n top: rect.top,\n y: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n right: rect.right,\n width: rect.width,\n height: rect.height\n };\n}\n\n\n/**\n * Inverts the intersection and bounding rect from the parent (frame) BCR to\n * the local BCR space.\n * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.\n * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.\n * @return {ClientRect} The local root bounding rect for the parent's children.\n */\nfunction convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n var top = parentIntersectionRect.top - parentBoundingRect.top;\n var left = parentIntersectionRect.left - parentBoundingRect.left;\n return {\n top: top,\n left: left,\n height: parentIntersectionRect.height,\n width: parentIntersectionRect.width,\n bottom: top + parentIntersectionRect.height,\n right: left + parentIntersectionRect.width\n };\n}\n\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (node.nodeType == /* DOCUMENT */ 9 && node != document) {\n // If this node is a document node, look for the embedding frame.\n return getFrameElement(node);\n }\n\n // If the parent has element that is assigned through shadow root slot\n if (parent && parent.assignedSlot) {\n parent = parent.assignedSlot.parentNode\n }\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n return parent;\n}\n\n/**\n * Returns true if `node` is a Document.\n * @param {!Node} node\n * @returns {boolean}\n */\nfunction isDoc(node) {\n return node && node.nodeType === 9;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}());\n","/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n","/**\n *\n *\n * @author Jerry Bendy \n * @licence MIT\n *\n */\n\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (function() {\n // #41 Fix issue in RN\n try {\n if (self.URLSearchParams && (new self.URLSearchParams('foo=bar')).get('foo') === 'bar') {\n return self.URLSearchParams;\n }\n } catch (e) {}\n return null;\n })(),\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return hasOwnProperty(this [__URLSearchParams__], name);\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var forSureUsePolyfill = !decodesPlusesCorrectly;\n var useProxy = (!forSureUsePolyfill && nativeURLSearchParams && !isSupportObjectConstructor && self.Proxy);\n var propValue; \n if (useProxy) {\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n propValue = new Proxy(nativeURLSearchParams, {\n construct: function (target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n })\n // Chrome <=60 .toString() on a function proxy got error \"Function.prototype.toString is not generic\"\n propValue.toString = Function.prototype.toString.bind(URLSearchParamsPolyfill);\n } else {\n propValue = URLSearchParamsPolyfill;\n }\n /*\n * Apply polifill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: propValue\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n USPProto.forEach = USPProto.forEach || function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n\n /**\n * Sort all name-value pairs\n */\n USPProto.sort = USPProto.sort || function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.keys = USPProto.keys || function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.values = USPProto.values || function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.entries = USPProto.entries || function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return str\n .replace(/[ +]/g, '%20')\n .replace(/(%[a-f0-9]{2})+/ig, function(match) {\n return decodeURIComponent(match);\n });\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n // if `search` is an array, treat it as a sequence\n if (isArray(search)) {\n for (var i = 0; i < search.length; i++) {\n var item = search[i];\n if (isArray(item) && item.length === 2) {\n appendTo(dict, item[0], item[1]);\n } else {\n throw new TypeError(\"Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements\");\n }\n }\n\n } else {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key]);\n }\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n );\n\n // #47 Prevent using `hasOwnProperty` as a property name\n if (hasOwnProperty(dict, name)) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n function isArray(val) {\n return !!val && '[object Array]' === Object.prototype.toString.call(val);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}"],"names":["ALL_CONFIGS_KEY","LAUNCHER_DATA_STORAGE_KEY","allConfigs","window","orbitServerPath","sdk","config","ExtraProperties","paths","server","endsWith","__webpack_public_path__","Array","prototype","toDictionary","keySelector","valueSelector","result","item","this","forEach","index","key","groupByKey","push","distinct","length","uniqueItems","Object","values","all","predicate","splitToChunks","chunkSize","i","slice","selectMany","subItemsSelector","value","findFirst","filter","max","min","sum","smoothscroll","startLauncher","startHybridApp","isOrbitInQAMode","isLauncherPath","location","pathname","module","startOrbitHybridQA","startupOrbitHybridProd","startWebApp","then","startOrbitQA","startOrbitProd","isInsideAutomation","Promise","resolve","reject","scriptTag","document","createElement","src","onload","onerror","err","head","appendChild","isHybridEmbedded","startApp","MAIN_LAUNCHER_PATH","LAUNCHER_PATHS","path","toLowerCase","startsWith","OrbitStartupFunctions","NamedIntervalType","CYPRESS_TO_ORBIT_HOOKS_OBJECT_NAME","CYPRESS_GLOBAL_OBJECT_NAME","Check","mockApplicationStartupConfigs","configs","getCypressToOrbitHooks","onAppStartupConfigs","Error","Boolean","exports","time_span_1","type_checking_1","MILLIS_PER_SECOND","MILLIS_PER_MINUTE","MILLIS_PER_HOUR","MILLIS_PER_DAY","days","hours","minutes","seconds","milliseconds","_totalMilliseconds","totalmilliseconds","Math","floor","round","TimeSpan","_getSign","abs","_floor","totalDays","totalHours","totalMinutes","totalSeconds","ts1","ts2","__1","isNullOrUndefined","totalMilliseconds","text","components","split","daysAndHours","parseInt","secondsAndMilliseconds","_parseMilliseconds","ms","timeSpan","fromMilliseconds","options","toString","useTotalHours","padStart","localTime","Date","setUTCHours","setUTCMinutes","setUTCSeconds","setUTCMilliseconds","getHours","getMinutes","getSeconds","getMilliseconds","input","call","isNaN","expectedArray","isArray","isString","isNull","isUndefined","isObject","keys","IntersectionObserverEntry","defineProperty","get","intersectionRatio","startDoc","doc","frame","getFrameElement","ownerDocument","registry","crossOriginUpdater","crossOriginRect","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","boundingClientRect","intersectionRect","convertFromParentRect","top","bottom","left","right","width","height","observer","_checkForIntersections","_resetCrossOriginUpdater","observe","target","_observationTargets","some","element","nodeType","_registerInstance","entry","_monitorIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","disconnect","_unmonitorAllIntersections","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","threshold","sort","t","a","_parseRootMargin","opt_rootMargin","margins","map","margin","parts","exec","parseFloat","unit","win","defaultView","_monitoringDocuments","indexOf","callback","monitoringInterval","domObserver","setInterval","addEvent","MutationObserver","attributes","childList","characterData","subtree","_monitoringUnsubscribes","clearInterval","removeEvent","rootDoc","root","hasDependentTargets","itemDoc","unsubscribe","splice","unsubscribes","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","getBoundingClientRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","rootBounds","newEntry","time","performance","now","_hasCrossedThreshold","isIntersecting","_callback","getComputedStyle","display","parent","getParentNode","atRoot","parentRect","parentComputedStyle","frameRect","frameIntersect","body","documentElement","overflow","computeRectIntersection","isDoc","html","clientWidth","clientHeight","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","frameElement","e","ensureDOMRect","targetArea","intersectionArea","Number","toFixed","opt_options","fn","timeout","timer","setTimeout","throttle","bind","rootMargin","join","node","event","opt_useCapture","addEventListener","attachEvent","removeEventListener","detachEvent","rect1","rect2","el","y","x","parentBoundingRect","parentIntersectionRect","child","parentNode","assignedSlot","host","polyfill","w","d","style","__forceSmoothScrollPolyfill__","userAgent","Element","HTMLElement","SCROLL_TIME","original","scroll","scrollTo","scrollBy","elementScroll","scrollElement","scrollIntoView","ROUNDING_TOLERANCE","navigator","RegExp","test","undefined","arguments","shouldBailOut","smoothScroll","scrollX","pageXOffset","scrollY","pageYOffset","scrollLeft","scrollTop","SyntaxError","behavior","scrollableParent","isScrollable","findScrollableParent","parentRects","clientRects","position","firstArg","TypeError","hasScrollableSpace","axis","scrollHeight","scrollWidth","canOverflow","overflowValue","isScrollableY","isScrollableX","step","context","currentX","currentY","k","elapsed","startTime","cos","PI","startX","startY","method","scrollable","requestAnimationFrame","self","nativeURLSearchParams","URLSearchParams","isSupportObjectConstructor","decodesPlusesCorrectly","__URLSearchParams__","encodesAmpersandsCorrectly","ampersandTest","append","URLSearchParamsPolyfill","iterable","Symbol","iterator","propValue","name","appendTo","dict","has","getAll","hasOwnProperty","set","query","encode","Proxy","construct","args","Function","USPProto","thisArg","parseToDict","getOwnPropertyNames","j","items","makeIterator","entries","search","str","replace","encodeURIComponent","match","decode","decodeURIComponent","arr","next","shift","done","pairs","val","JSON","stringify","obj","prop","global","_arrayLikeToArray","len","arr2","asyncGeneratorStep","gen","_next","_throw","arg","info","error","_asyncToGenerator","apply","_createForOfIteratorHelper","o","allowArrayLike","it","F","s","n","_e","f","normalCompletion","didErr","_e2","_regeneratorRuntime","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","Context","makeInvokeMethod","tryCatch","type","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","state","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","constructor","mark","setPrototypeOf","__proto__","awrap","async","iter","object","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","_typeof","_unsupportedIterableToArray","minLen","from"],"sourceRoot":""}