{"version":3,"file":"static/chunks/9769-7f53d2c2bee73d4e.js","mappings":"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","sources":["webpack://_N_E/./node_modules/jarallax/dist/jarallax.esm.js","webpack://_N_E/../../../../src/shared/lib/lazy-dynamic/dynamic-bailout-to-csr.tsx","webpack://_N_E/../../../../src/shared/lib/lazy-dynamic/preload-css.tsx"],"sourcesContent":["/*!\n * Jarallax v2.2.1 (https://github.com/nk-o/jarallax)\n * Copyright 2024 nK <https://nkdev.info>\n * Licensed under MIT (https://github.com/nk-o/jarallax/blob/master/LICENSE)\n */\nvar defaults$1 = {\n // Base parallax options.\n type: 'scroll',\n speed: 0.5,\n containerClass: 'jarallax-container',\n imgSrc: null,\n imgElement: '.jarallax-img',\n imgSize: 'cover',\n imgPosition: '50% 50%',\n imgRepeat: 'no-repeat',\n keepImg: false,\n elementInViewport: null,\n zIndex: -100,\n disableParallax: false,\n // Callbacks.\n onScroll: null,\n onInit: null,\n onDestroy: null,\n onCoverImage: null,\n // Video options.\n videoClass: 'jarallax-video',\n videoSrc: null,\n videoStartTime: 0,\n videoEndTime: 0,\n videoVolume: 0,\n videoLoop: true,\n videoPlayOnlyVisible: true,\n videoLazyLoading: true,\n disableVideo: false,\n // Video callbacks.\n onVideoInsert: null,\n onVideoWorkerInit: null\n};\n\n/* eslint-disable import/no-mutable-exports */\n/* eslint-disable no-restricted-globals */\nlet win$1;\nif (typeof window !== 'undefined') {\n win$1 = window;\n} else if (typeof global !== 'undefined') {\n win$1 = global;\n} else if (typeof self !== 'undefined') {\n win$1 = self;\n} else {\n win$1 = {};\n}\nvar global$2 = win$1;\n\n/**\n * Add styles to element.\n *\n * @param {Element} el - element.\n * @param {String|Object} styles - styles list.\n *\n * @returns {Element}\n */\nfunction css(el, styles) {\n if (typeof styles === 'string') {\n return global$2.getComputedStyle(el).getPropertyValue(styles);\n }\n Object.keys(styles).forEach(key => {\n el.style[key] = styles[key];\n });\n return el;\n}\n\n/**\n * Extend like jQuery.extend\n *\n * @param {Object} out - output object.\n * @param {...any} args - additional objects to extend.\n *\n * @returns {Object}\n */\nfunction extend$1(out, ...args) {\n out = out || {};\n Object.keys(args).forEach(i => {\n if (!args[i]) {\n return;\n }\n Object.keys(args[i]).forEach(key => {\n out[key] = args[i][key];\n });\n });\n return out;\n}\n\n/**\n * Get all parents of the element.\n *\n * @param {Element} elem - DOM element.\n *\n * @returns {Array}\n */\nfunction getParents(elem) {\n const parents = [];\n while (elem.parentElement !== null) {\n elem = elem.parentElement;\n if (elem.nodeType === 1) {\n parents.push(elem);\n }\n }\n return parents;\n}\n\n/**\n * Document ready callback.\n * @param {Function} callback - callback will be fired once Document ready.\n */\nfunction ready(callback) {\n if (document.readyState === 'complete' || document.readyState === 'interactive') {\n // Already ready or interactive, execute callback\n callback();\n } else {\n document.addEventListener('DOMContentLoaded', callback, {\n capture: true,\n once: true,\n passive: true\n });\n }\n}\n\nconst {\n navigator: navigator$1\n} = global$2;\nconst mobileAgent = /*#__PURE__*/ /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator$1.userAgent);\nfunction isMobile() {\n return mobileAgent;\n}\n\nlet wndW;\nlet wndH;\nlet $deviceHelper;\n\n/**\n * The most popular mobile browsers changes height after page scroll and this generates image jumping.\n * We can fix it using this workaround with vh units.\n */\nfunction getDeviceHeight() {\n if (!$deviceHelper && document.body) {\n $deviceHelper = document.createElement('div');\n $deviceHelper.style.cssText = 'position: fixed; top: -9999px; left: 0; height: 100vh; width: 0;';\n document.body.appendChild($deviceHelper);\n }\n return ($deviceHelper ? $deviceHelper.clientHeight : 0) || global$2.innerHeight || document.documentElement.clientHeight;\n}\nfunction updateWindowHeight() {\n wndW = global$2.innerWidth || document.documentElement.clientWidth;\n if (isMobile()) {\n wndH = getDeviceHeight();\n } else {\n wndH = global$2.innerHeight || document.documentElement.clientHeight;\n }\n}\nupdateWindowHeight();\nglobal$2.addEventListener('resize', updateWindowHeight);\nglobal$2.addEventListener('orientationchange', updateWindowHeight);\nglobal$2.addEventListener('load', updateWindowHeight);\nready(() => {\n updateWindowHeight();\n});\nfunction getWindowSize() {\n return {\n width: wndW,\n height: wndH\n };\n}\n\n// List with all jarallax instances\n// need to render all in one scroll/resize event.\nconst jarallaxList = [];\nfunction updateParallax() {\n if (!jarallaxList.length) {\n return;\n }\n const {\n width: wndW,\n height: wndH\n } = getWindowSize();\n jarallaxList.forEach((data, k) => {\n const {\n instance,\n oldData\n } = data;\n if (!instance.isVisible()) {\n return;\n }\n const clientRect = instance.$item.getBoundingClientRect();\n const newData = {\n width: clientRect.width,\n height: clientRect.height,\n top: clientRect.top,\n bottom: clientRect.bottom,\n wndW,\n wndH\n };\n const isResized = !oldData || oldData.wndW !== newData.wndW || oldData.wndH !== newData.wndH || oldData.width !== newData.width || oldData.height !== newData.height;\n const isScrolled = isResized || !oldData || oldData.top !== newData.top || oldData.bottom !== newData.bottom;\n jarallaxList[k].oldData = newData;\n if (isResized) {\n instance.onResize();\n }\n if (isScrolled) {\n instance.onScroll();\n }\n });\n global$2.requestAnimationFrame(updateParallax);\n}\nconst visibilityObserver = /*#__PURE__*/new global$2.IntersectionObserver(entries => {\n entries.forEach(entry => {\n entry.target.jarallax.isElementInViewport = entry.isIntersecting;\n });\n}, {\n // We have to start parallax calculation before the block is in view\n // to prevent possible parallax jumping.\n rootMargin: '50px'\n});\nfunction addObserver(instance) {\n jarallaxList.push({\n instance\n });\n if (jarallaxList.length === 1) {\n global$2.requestAnimationFrame(updateParallax);\n }\n visibilityObserver.observe(instance.options.elementInViewport || instance.$item);\n}\nfunction removeObserver(instance) {\n jarallaxList.forEach((data, key) => {\n if (data.instance.instanceID === instance.instanceID) {\n jarallaxList.splice(key, 1);\n }\n });\n visibilityObserver.unobserve(instance.options.elementInViewport || instance.$item);\n}\n\n/* eslint-disable class-methods-use-this */\nconst {\n navigator\n} = global$2;\nlet instanceID = 0;\n\n// Jarallax class\nclass Jarallax {\n constructor(item, userOptions) {\n const self = this;\n self.instanceID = instanceID;\n instanceID += 1;\n self.$item = item;\n self.defaults = {\n ...defaults$1\n };\n\n // prepare data-options\n const dataOptions = self.$item.dataset || {};\n const pureDataOptions = {};\n Object.keys(dataOptions).forEach(key => {\n const lowerCaseOption = key.substr(0, 1).toLowerCase() + key.substr(1);\n if (lowerCaseOption && typeof self.defaults[lowerCaseOption] !== 'undefined') {\n pureDataOptions[lowerCaseOption] = dataOptions[key];\n }\n });\n self.options = self.extend({}, self.defaults, pureDataOptions, userOptions);\n self.pureOptions = self.extend({}, self.options);\n\n // prepare 'true' and 'false' strings to boolean\n Object.keys(self.options).forEach(key => {\n if (self.options[key] === 'true') {\n self.options[key] = true;\n } else if (self.options[key] === 'false') {\n self.options[key] = false;\n }\n });\n\n // fix speed option [-1.0, 2.0]\n self.options.speed = Math.min(2, Math.max(-1, parseFloat(self.options.speed)));\n\n // prepare disableParallax callback\n if (typeof self.options.disableParallax === 'string') {\n self.options.disableParallax = new RegExp(self.options.disableParallax);\n }\n if (self.options.disableParallax instanceof RegExp) {\n const disableParallaxRegexp = self.options.disableParallax;\n self.options.disableParallax = () => disableParallaxRegexp.test(navigator.userAgent);\n }\n if (typeof self.options.disableParallax !== 'function') {\n // Support for `true` option value.\n const disableParallaxDefault = self.options.disableParallax;\n self.options.disableParallax = () => disableParallaxDefault === true;\n }\n\n // prepare disableVideo callback\n if (typeof self.options.disableVideo === 'string') {\n self.options.disableVideo = new RegExp(self.options.disableVideo);\n }\n if (self.options.disableVideo instanceof RegExp) {\n const disableVideoRegexp = self.options.disableVideo;\n self.options.disableVideo = () => disableVideoRegexp.test(navigator.userAgent);\n }\n if (typeof self.options.disableVideo !== 'function') {\n // Support for `true` option value.\n const disableVideoDefault = self.options.disableVideo;\n self.options.disableVideo = () => disableVideoDefault === true;\n }\n\n // custom element to check if parallax in viewport\n let elementInVP = self.options.elementInViewport;\n // get first item from array\n if (elementInVP && typeof elementInVP === 'object' && typeof elementInVP.length !== 'undefined') {\n [elementInVP] = elementInVP;\n }\n // check if dom element\n if (!(elementInVP instanceof Element)) {\n elementInVP = null;\n }\n self.options.elementInViewport = elementInVP;\n self.image = {\n src: self.options.imgSrc || null,\n $container: null,\n useImgTag: false,\n // 1. Position fixed is needed for the most of browsers because absolute position have glitches\n // 2. On MacOS with smooth scroll there is a huge lags with absolute position - https://github.com/nk-o/jarallax/issues/75\n // 3. Previously used 'absolute' for mobile devices. But we re-tested on iPhone 12 and 'fixed' position is working better, then 'absolute', so for now position is always 'fixed'\n position: 'fixed'\n };\n if (self.initImg() && self.canInitParallax()) {\n self.init();\n }\n }\n css(el, styles) {\n return css(el, styles);\n }\n extend(out, ...args) {\n return extend$1(out, ...args);\n }\n\n // get window size and scroll position. Useful for extensions\n getWindowData() {\n const {\n width,\n height\n } = getWindowSize();\n return {\n width,\n height,\n y: document.documentElement.scrollTop\n };\n }\n\n // Jarallax functions\n initImg() {\n const self = this;\n\n // find image element\n let $imgElement = self.options.imgElement;\n if ($imgElement && typeof $imgElement === 'string') {\n $imgElement = self.$item.querySelector($imgElement);\n }\n\n // check if dom element\n if (!($imgElement instanceof Element)) {\n if (self.options.imgSrc) {\n $imgElement = new Image();\n $imgElement.src = self.options.imgSrc;\n } else {\n $imgElement = null;\n }\n }\n if ($imgElement) {\n if (self.options.keepImg) {\n self.image.$item = $imgElement.cloneNode(true);\n } else {\n self.image.$item = $imgElement;\n self.image.$itemParent = $imgElement.parentNode;\n }\n self.image.useImgTag = true;\n }\n\n // true if there is img tag\n if (self.image.$item) {\n return true;\n }\n\n // get image src\n if (self.image.src === null) {\n self.image.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n self.image.bgImage = self.css(self.$item, 'background-image');\n }\n return !(!self.image.bgImage || self.image.bgImage === 'none');\n }\n canInitParallax() {\n return !this.options.disableParallax();\n }\n init() {\n const self = this;\n const containerStyles = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n overflow: 'hidden'\n };\n let imageStyles = {\n pointerEvents: 'none',\n transformStyle: 'preserve-3d',\n backfaceVisibility: 'hidden'\n };\n if (!self.options.keepImg) {\n // save default user styles\n const curStyle = self.$item.getAttribute('style');\n if (curStyle) {\n self.$item.setAttribute('data-jarallax-original-styles', curStyle);\n }\n if (self.image.useImgTag) {\n const curImgStyle = self.image.$item.getAttribute('style');\n if (curImgStyle) {\n self.image.$item.setAttribute('data-jarallax-original-styles', curImgStyle);\n }\n }\n }\n\n // set relative position and z-index to the parent\n if (self.css(self.$item, 'position') === 'static') {\n self.css(self.$item, {\n position: 'relative'\n });\n }\n if (self.css(self.$item, 'z-index') === 'auto') {\n self.css(self.$item, {\n zIndex: 0\n });\n }\n\n // container for parallax image\n self.image.$container = document.createElement('div');\n self.css(self.image.$container, containerStyles);\n self.css(self.image.$container, {\n 'z-index': self.options.zIndex\n });\n\n // it will remove some image overlapping\n // overlapping occur due to an image position fixed inside absolute position element\n // needed only when background in fixed position\n if (this.image.position === 'fixed') {\n self.css(self.image.$container, {\n '-webkit-clip-path': 'polygon(0 0, 100% 0, 100% 100%, 0 100%)',\n 'clip-path': 'polygon(0 0, 100% 0, 100% 100%, 0 100%)'\n });\n }\n\n // Add container unique ID.\n self.image.$container.setAttribute('id', `jarallax-container-${self.instanceID}`);\n\n // Add container class.\n if (self.options.containerClass) {\n self.image.$container.setAttribute('class', self.options.containerClass);\n }\n self.$item.appendChild(self.image.$container);\n\n // use img tag\n if (self.image.useImgTag) {\n imageStyles = self.extend({\n 'object-fit': self.options.imgSize,\n 'object-position': self.options.imgPosition,\n 'max-width': 'none'\n }, containerStyles, imageStyles);\n\n // use div with background image\n } else {\n self.image.$item = document.createElement('div');\n if (self.image.src) {\n imageStyles = self.extend({\n 'background-position': self.options.imgPosition,\n 'background-size': self.options.imgSize,\n 'background-repeat': self.options.imgRepeat,\n 'background-image': self.image.bgImage || `url(\"${self.image.src}\")`\n }, containerStyles, imageStyles);\n }\n }\n if (self.options.type === 'opacity' || self.options.type === 'scale' || self.options.type === 'scale-opacity' || self.options.speed === 1) {\n self.image.position = 'absolute';\n }\n\n // 1. Check if one of parents have transform style (without this check, scroll transform will be inverted if used parallax with position fixed)\n // discussion - https://github.com/nk-o/jarallax/issues/9\n // 2. Check if parents have overflow scroll\n if (self.image.position === 'fixed') {\n const $parents = getParents(self.$item).filter(el => {\n const styles = global$2.getComputedStyle(el);\n const parentTransform = styles['-webkit-transform'] || styles['-moz-transform'] || styles.transform;\n const overflowRegex = /(auto|scroll)/;\n return parentTransform && parentTransform !== 'none' || overflowRegex.test(styles.overflow + styles['overflow-y'] + styles['overflow-x']);\n });\n self.image.position = $parents.length ? 'absolute' : 'fixed';\n }\n\n // add position to parallax block\n imageStyles.position = self.image.position;\n\n // insert parallax image\n self.css(self.image.$item, imageStyles);\n self.image.$container.appendChild(self.image.$item);\n\n // set initial position and size\n self.onResize();\n self.onScroll(true);\n\n // call onInit event\n if (self.options.onInit) {\n self.options.onInit.call(self);\n }\n\n // remove default user background\n if (self.css(self.$item, 'background-image') !== 'none') {\n self.css(self.$item, {\n 'background-image': 'none'\n });\n }\n addObserver(self);\n }\n destroy() {\n const self = this;\n removeObserver(self);\n\n // return styles on container as before jarallax init\n const originalStylesTag = self.$item.getAttribute('data-jarallax-original-styles');\n self.$item.removeAttribute('data-jarallax-original-styles');\n // null occurs if there is no style tag before jarallax init\n if (!originalStylesTag) {\n self.$item.removeAttribute('style');\n } else {\n self.$item.setAttribute('style', originalStylesTag);\n }\n if (self.image.useImgTag) {\n // return styles on img tag as before jarallax init\n const originalStylesImgTag = self.image.$item.getAttribute('data-jarallax-original-styles');\n self.image.$item.removeAttribute('data-jarallax-original-styles');\n // null occurs if there is no style tag before jarallax init\n if (!originalStylesImgTag) {\n self.image.$item.removeAttribute('style');\n } else {\n self.image.$item.setAttribute('style', originalStylesTag);\n }\n\n // move img tag to its default position\n if (self.image.$itemParent) {\n self.image.$itemParent.appendChild(self.image.$item);\n }\n }\n\n // remove additional dom elements\n if (self.image.$container) {\n self.image.$container.parentNode.removeChild(self.image.$container);\n }\n\n // call onDestroy event\n if (self.options.onDestroy) {\n self.options.onDestroy.call(self);\n }\n\n // delete jarallax from item\n delete self.$item.jarallax;\n }\n coverImage() {\n const self = this;\n const {\n height: wndH\n } = getWindowSize();\n const rect = self.image.$container.getBoundingClientRect();\n const contH = rect.height;\n const {\n speed\n } = self.options;\n const isScroll = self.options.type === 'scroll' || self.options.type === 'scroll-opacity';\n let scrollDist = 0;\n let resultH = contH;\n let resultMT = 0;\n\n // scroll parallax\n if (isScroll) {\n // scroll distance and height for image\n if (speed < 0) {\n scrollDist = speed * Math.max(contH, wndH);\n if (wndH < contH) {\n scrollDist -= speed * (contH - wndH);\n }\n } else {\n scrollDist = speed * (contH + wndH);\n }\n\n // size for scroll parallax\n if (speed > 1) {\n resultH = Math.abs(scrollDist - wndH);\n } else if (speed < 0) {\n resultH = scrollDist / speed + Math.abs(scrollDist);\n } else {\n resultH += (wndH - contH) * (1 - speed);\n }\n scrollDist /= 2;\n }\n\n // store scroll distance\n self.parallaxScrollDistance = scrollDist;\n\n // vertical center\n if (isScroll) {\n resultMT = (wndH - resultH) / 2;\n } else {\n resultMT = (contH - resultH) / 2;\n }\n\n // apply result to item\n self.css(self.image.$item, {\n height: `${resultH}px`,\n marginTop: `${resultMT}px`,\n left: self.image.position === 'fixed' ? `${rect.left}px` : '0',\n width: `${rect.width}px`\n });\n\n // call onCoverImage event\n if (self.options.onCoverImage) {\n self.options.onCoverImage.call(self);\n }\n\n // return some useful data. Used in the video cover function\n return {\n image: {\n height: resultH,\n marginTop: resultMT\n },\n container: rect\n };\n }\n isVisible() {\n return this.isElementInViewport || false;\n }\n onScroll(force) {\n const self = this;\n\n // stop calculations if item is not in viewport\n if (!force && !self.isVisible()) {\n return;\n }\n const {\n height: wndH\n } = getWindowSize();\n const rect = self.$item.getBoundingClientRect();\n const contT = rect.top;\n const contH = rect.height;\n const styles = {};\n\n // calculate parallax helping variables\n const beforeTop = Math.max(0, contT);\n const beforeTopEnd = Math.max(0, contH + contT);\n const afterTop = Math.max(0, -contT);\n const beforeBottom = Math.max(0, contT + contH - wndH);\n const beforeBottomEnd = Math.max(0, contH - (contT + contH - wndH));\n const afterBottom = Math.max(0, -contT + wndH - contH);\n const fromViewportCenter = 1 - 2 * ((wndH - contT) / (wndH + contH));\n\n // calculate on how percent of section is visible\n let visiblePercent = 1;\n if (contH < wndH) {\n visiblePercent = 1 - (afterTop || beforeBottom) / contH;\n } else if (beforeTopEnd <= wndH) {\n visiblePercent = beforeTopEnd / wndH;\n } else if (beforeBottomEnd <= wndH) {\n visiblePercent = beforeBottomEnd / wndH;\n }\n\n // opacity\n if (self.options.type === 'opacity' || self.options.type === 'scale-opacity' || self.options.type === 'scroll-opacity') {\n styles.transform = 'translate3d(0,0,0)';\n styles.opacity = visiblePercent;\n }\n\n // scale\n if (self.options.type === 'scale' || self.options.type === 'scale-opacity') {\n let scale = 1;\n if (self.options.speed < 0) {\n scale -= self.options.speed * visiblePercent;\n } else {\n scale += self.options.speed * (1 - visiblePercent);\n }\n styles.transform = `scale(${scale}) translate3d(0,0,0)`;\n }\n\n // scroll\n if (self.options.type === 'scroll' || self.options.type === 'scroll-opacity') {\n let positionY = self.parallaxScrollDistance * fromViewportCenter;\n\n // fix if parallax block in absolute position\n if (self.image.position === 'absolute') {\n positionY -= contT;\n }\n styles.transform = `translate3d(0,${positionY}px,0)`;\n }\n self.css(self.image.$item, styles);\n\n // call onScroll event\n if (self.options.onScroll) {\n self.options.onScroll.call(self, {\n section: rect,\n beforeTop,\n beforeTopEnd,\n afterTop,\n beforeBottom,\n beforeBottomEnd,\n afterBottom,\n visiblePercent,\n fromViewportCenter\n });\n }\n }\n onResize() {\n this.coverImage();\n }\n}\n\n// global definition\nconst jarallax$1 = function (items, options, ...args) {\n // check for dom element\n // thanks: http://stackoverflow.com/questions/384286/javascript-isdom-how-do-you-check-if-a-javascript-object-is-a-dom-object\n if (typeof HTMLElement === 'object' ? items instanceof HTMLElement : items && typeof items === 'object' && items !== null && items.nodeType === 1 && typeof items.nodeName === 'string') {\n items = [items];\n }\n const len = items.length;\n let k = 0;\n let ret;\n for (k; k < len; k += 1) {\n if (typeof options === 'object' || typeof options === 'undefined') {\n if (!items[k].jarallax) {\n items[k].jarallax = new Jarallax(items[k], options);\n }\n } else if (items[k].jarallax) {\n // eslint-disable-next-line prefer-spread\n ret = items[k].jarallax[options].apply(items[k].jarallax, args);\n }\n if (typeof ret !== 'undefined') {\n return ret;\n }\n }\n return items;\n};\njarallax$1.constructor = Jarallax;\n\n/*!\n * Video Worker v2.2.0 (https://github.com/nk-o/video-worker)\n * Copyright 2024 nK <https://nkdev.info>\n * Licensed under MIT (https://github.com/nk-o/video-worker/blob/master/LICENSE)\n */\n\nvar defaults = {\n autoplay: false,\n loop: false,\n mute: false,\n volume: 100,\n showControls: true,\n accessibilityHidden: false,\n // start / end video time in seconds\n startTime: 0,\n endTime: 0\n};\n\n/**\n * Extend like jQuery.extend\n *\n * @param {Object} out - output object.\n * @param {...any} args - additional objects to extend.\n *\n * @returns {Object}\n */\nfunction extend(out, ...args) {\n out = out || {};\n Object.keys(args).forEach(i => {\n if (!args[i]) {\n return;\n }\n Object.keys(args[i]).forEach(key => {\n out[key] = args[i][key];\n });\n });\n return out;\n}\nlet ID = 0;\nclass VideoWorkerBase {\n type = 'none';\n constructor(url, options) {\n const self = this;\n self.url = url;\n self.options_default = {\n ...defaults\n };\n self.options = extend({}, self.options_default, options);\n\n // check URL\n self.videoID = self.constructor.parseURL(url);\n\n // init\n if (self.videoID) {\n self.init();\n }\n }\n isValid() {\n return !!this.videoID;\n }\n init() {\n const self = this;\n self.ID = ID;\n ID += 1;\n self.playerID = `VideoWorker-${self.ID}`;\n }\n\n // events\n on(name, callback) {\n this.userEventsList = this.userEventsList || [];\n\n // add new callback in events list\n (this.userEventsList[name] || (this.userEventsList[name] = [])).push(callback);\n }\n off(name, callback) {\n if (!this.userEventsList || !this.userEventsList[name]) {\n return;\n }\n if (!callback) {\n delete this.userEventsList[name];\n } else {\n this.userEventsList[name].forEach((val, key) => {\n if (val === callback) {\n this.userEventsList[name][key] = false;\n }\n });\n }\n }\n fire(name, ...args) {\n if (this.userEventsList && typeof this.userEventsList[name] !== 'undefined') {\n this.userEventsList[name].forEach(val => {\n // call with all arguments\n if (val) {\n val.apply(this, args);\n }\n });\n }\n }\n\n /**\n * Methods used in providers.\n */\n /* eslint-disable */\n static parseURL(url) {\n return false;\n }\n play(start) {}\n pause() {}\n mute() {}\n unmute() {}\n setVolume(volume = false) {}\n getVolume(callback) {}\n getMuted(callback) {}\n setCurrentTime(currentTime = false) {}\n getCurrentTime(callback) {}\n getImageURL(callback) {}\n getVideo(callback) {}\n /* eslint-enable */\n}\n\n/* eslint-disable import/no-mutable-exports */\n/* eslint-disable no-restricted-globals */\nlet win;\nif (typeof window !== 'undefined') {\n win = window;\n} else if (typeof global !== 'undefined') {\n win = global;\n} else if (typeof self !== 'undefined') {\n win = self;\n} else {\n win = {};\n}\nvar global$1 = win;\n\n// Deferred\n// thanks http://stackoverflow.com/questions/18096715/implement-deferred-object-without-using-jquery\nfunction Deferred() {\n this.doneCallbacks = [];\n this.failCallbacks = [];\n}\nDeferred.prototype = {\n execute(list, args) {\n let i = list.length;\n // eslint-disable-next-line no-param-reassign\n args = Array.prototype.slice.call(args);\n while (i) {\n i -= 1;\n list[i].apply(null, args);\n }\n },\n resolve(...args) {\n this.execute(this.doneCallbacks, args);\n },\n reject(...args) {\n this.execute(this.failCallbacks, args);\n },\n done(callback) {\n this.doneCallbacks.push(callback);\n },\n fail(callback) {\n this.failCallbacks.push(callback);\n }\n};\nlet YoutubeAPIadded = 0;\nlet loadingYoutubePlayer = 0;\nconst loadingYoutubeDefer = /*#__PURE__*/new Deferred();\nfunction loadAPI$1() {\n if (YoutubeAPIadded) {\n return;\n }\n YoutubeAPIadded = true;\n const src = 'https://www.youtube.com/iframe_api';\n\n // add script in head section\n let tag = document.createElement('script');\n let head = document.getElementsByTagName('head')[0];\n tag.src = src;\n head.appendChild(tag);\n head = null;\n tag = null;\n}\nfunction onAPIready$1(callback) {\n // Listen for global YT player callback\n if ((typeof global$1.YT === 'undefined' || global$1.YT.loaded === 0) && !loadingYoutubePlayer) {\n // Prevents Ready event from being called twice\n loadingYoutubePlayer = 1;\n\n // Creates deferred so, other players know when to wait.\n global$1.onYouTubeIframeAPIReady = function () {\n global$1.onYouTubeIframeAPIReady = null;\n loadingYoutubeDefer.resolve('done');\n callback();\n };\n } else if (typeof global$1.YT === 'object' && global$1.YT.loaded === 1) {\n callback();\n } else {\n loadingYoutubeDefer.done(() => {\n callback();\n });\n }\n}\nclass VideoWorkerYoutube extends VideoWorkerBase {\n type = 'youtube';\n static parseURL(url) {\n // eslint-disable-next-line no-useless-escape\n const regExp = /.*(?:youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|shorts\\/|watch\\?v=)([^#\\&\\?]*).*/;\n const match = url.match(regExp);\n return match && match[1].length === 11 ? match[1] : false;\n }\n init() {\n super.init();\n loadAPI$1();\n }\n play(start) {\n const self = this;\n if (!self.player || !self.player.playVideo) {\n return;\n }\n if (typeof start !== 'undefined') {\n self.player.seekTo(start || 0);\n }\n if (global$1.YT.PlayerState.PLAYING !== self.player.getPlayerState()) {\n // Don't play if video is already ended and with no loop.\n if (self.options.endTime && !self.options.loop) {\n self.getCurrentTime(seconds => {\n if (seconds < self.options.endTime) {\n self.player.playVideo();\n }\n });\n } else {\n self.player.playVideo();\n }\n }\n }\n pause() {\n const self = this;\n if (!self.player || !self.player.pauseVideo) {\n return;\n }\n if (global$1.YT.PlayerState.PLAYING === self.player.getPlayerState()) {\n self.player.pauseVideo();\n }\n }\n mute() {\n const self = this;\n if (!self.player || !self.player.mute) {\n return;\n }\n self.player.mute();\n }\n unmute() {\n const self = this;\n if (!self.player || !self.player.unMute) {\n return;\n }\n self.player.unMute();\n }\n setVolume(volume = false) {\n const self = this;\n if (!self.player || typeof volume !== 'number' || !self.player.setVolume) {\n return;\n }\n self.player.setVolume(volume);\n }\n getVolume(callback) {\n const self = this;\n if (!self.player) {\n callback(false);\n return;\n }\n if (self.player.getVolume) {\n callback(self.player.getVolume());\n }\n }\n getMuted(callback) {\n const self = this;\n if (!self.player) {\n callback(null);\n return;\n }\n if (self.player.isMuted) {\n callback(self.player.isMuted());\n }\n }\n setCurrentTime(currentTime = false) {\n const self = this;\n if (!self.player || typeof currentTime !== 'number' || !self.player.seekTo) {\n return;\n }\n self.player.seekTo(currentTime);\n }\n getCurrentTime(callback) {\n const self = this;\n if (!self.player || !self.player.getCurrentTime) {\n return;\n }\n callback(self.player.getCurrentTime());\n }\n getImageURL(callback) {\n const self = this;\n if (self.videoImage) {\n callback(self.videoImage);\n return;\n }\n const availableSizes = ['maxresdefault', 'sddefault', 'hqdefault', '0'];\n let step = 0;\n const tempImg = new Image();\n tempImg.onload = function () {\n // if no thumbnail, youtube add their own image with width = 120px\n if ((this.naturalWidth || this.width) !== 120 || step === availableSizes.length - 1) {\n // ok\n self.videoImage = `https://img.youtube.com/vi/${self.videoID}/${availableSizes[step]}.jpg`;\n callback(self.videoImage);\n } else {\n // try another size\n step += 1;\n this.src = `https://img.youtube.com/vi/${self.videoID}/${availableSizes[step]}.jpg`;\n }\n };\n tempImg.src = `https://img.youtube.com/vi/${self.videoID}/${availableSizes[step]}.jpg`;\n }\n getVideo(callback) {\n const self = this;\n\n // return generated video block\n if (self.$video) {\n callback(self.$video);\n return;\n }\n\n // generate new video block\n onAPIready$1(() => {\n let hiddenDiv;\n if (!self.$video) {\n hiddenDiv = document.createElement('div');\n hiddenDiv.style.display = 'none';\n }\n self.playerOptions = {\n // GDPR Compliance.\n host: 'https://www.youtube-nocookie.com',\n videoId: self.videoID,\n playerVars: {\n autohide: 1,\n rel: 0,\n autoplay: 0,\n // autoplay enable on mobile devices\n playsinline: 1\n }\n };\n\n // hide controls\n if (!self.options.showControls) {\n self.playerOptions.playerVars.iv_load_policy = 3;\n self.playerOptions.playerVars.modestbranding = 1;\n self.playerOptions.playerVars.controls = 0;\n self.playerOptions.playerVars.showinfo = 0;\n self.playerOptions.playerVars.disablekb = 1;\n }\n\n // events\n let ytStarted;\n let ytProgressInterval;\n self.playerOptions.events = {\n onReady(e) {\n // mute\n if (self.options.mute) {\n e.target.mute();\n } else if (typeof self.options.volume === 'number') {\n e.target.setVolume(self.options.volume);\n }\n\n // autoplay\n if (self.options.autoplay) {\n self.play(self.options.startTime);\n }\n self.fire('ready', e);\n\n // For seamless loops, set the endTime to 0.1 seconds less than the video's duration\n // https://github.com/nk-o/video-worker/issues/2\n if (self.options.loop && !self.options.endTime) {\n const secondsOffset = 0.1;\n self.options.endTime = self.player.getDuration() - secondsOffset;\n }\n\n // volumechange\n setInterval(() => {\n self.getVolume(volume => {\n if (self.options.volume !== volume) {\n self.options.volume = volume;\n self.fire('volumechange', e);\n }\n });\n }, 150);\n },\n onStateChange(e) {\n // loop\n if (self.options.loop && e.data === global$1.YT.PlayerState.ENDED) {\n self.play(self.options.startTime);\n }\n if (!ytStarted && e.data === global$1.YT.PlayerState.PLAYING) {\n ytStarted = 1;\n self.fire('started', e);\n }\n if (e.data === global$1.YT.PlayerState.PLAYING) {\n self.fire('play', e);\n }\n if (e.data === global$1.YT.PlayerState.PAUSED) {\n self.fire('pause', e);\n }\n if (e.data === global$1.YT.PlayerState.ENDED) {\n self.fire('ended', e);\n }\n\n // progress check\n if (e.data === global$1.YT.PlayerState.PLAYING) {\n ytProgressInterval = setInterval(() => {\n self.fire('timeupdate', e);\n\n // check for end of video and play again or stop\n if (self.options.endTime && self.player.getCurrentTime() >= self.options.endTime) {\n if (self.options.loop) {\n self.play(self.options.startTime);\n } else {\n self.pause();\n }\n }\n }, 150);\n } else {\n clearInterval(ytProgressInterval);\n }\n },\n onError(e) {\n self.fire('error', e);\n }\n };\n const firstInit = !self.$video;\n if (firstInit) {\n const div = document.createElement('div');\n div.setAttribute('id', self.playerID);\n hiddenDiv.appendChild(div);\n document.body.appendChild(hiddenDiv);\n }\n self.player = self.player || new global$1.YT.Player(self.playerID, self.playerOptions);\n if (firstInit) {\n self.$video = document.getElementById(self.playerID);\n\n // add accessibility attributes\n if (self.options.accessibilityHidden) {\n self.$video.setAttribute('tabindex', '-1');\n self.$video.setAttribute('aria-hidden', 'true');\n }\n\n // get video width and height\n self.videoWidth = parseInt(self.$video.getAttribute('width'), 10) || 1280;\n self.videoHeight = parseInt(self.$video.getAttribute('height'), 10) || 720;\n }\n callback(self.$video);\n });\n }\n}\nlet VimeoAPIadded = 0;\nlet loadingVimeoPlayer = 0;\nconst loadingVimeoDefer = /*#__PURE__*/new Deferred();\nfunction loadAPI() {\n if (VimeoAPIadded) {\n return;\n }\n VimeoAPIadded = true;\n\n // Useful when Vimeo API added using RequireJS https://github.com/nk-o/video-worker/pull/7\n if (typeof global$1.Vimeo !== 'undefined') {\n return;\n }\n const src = 'https://player.vimeo.com/api/player.js';\n\n // add script in head section\n let tag = document.createElement('script');\n let head = document.getElementsByTagName('head')[0];\n tag.src = src;\n head.appendChild(tag);\n head = null;\n tag = null;\n}\nfunction onAPIready(callback) {\n if (typeof global$1.Vimeo === 'undefined' && !loadingVimeoPlayer) {\n loadingVimeoPlayer = 1;\n const vimeoInterval = setInterval(() => {\n if (typeof global$1.Vimeo !== 'undefined') {\n clearInterval(vimeoInterval);\n loadingVimeoDefer.resolve('done');\n callback();\n }\n }, 20);\n } else if (typeof global$1.Vimeo !== 'undefined') {\n callback();\n } else {\n loadingVimeoDefer.done(() => {\n callback();\n });\n }\n}\nclass VideoWorkerVimeo extends VideoWorkerBase {\n type = 'vimeo';\n static parseURL(url) {\n // eslint-disable-next-line no-useless-escape\n const regExp = /https?:\\/\\/(?:www\\.|player\\.)?vimeo.com\\/(?:channels\\/(?:\\w+\\/)?|groups\\/([^/]*)\\/videos\\/|album\\/(\\d+)\\/video\\/|video\\/|)(\\d+)(?:$|\\/|\\?)/;\n const match = url.match(regExp);\n return match && match[3] ? match[3] : false;\n }\n\n // Try to extract a hash for private videos from the URL.\n // Thanks to https://github.com/sampotts/plyr\n static parseURLHash(url) {\n /* This regex matches a hexadecimal hash if given in any of these forms:\n * - [https://player.]vimeo.com/video/{id}/{hash}[?params]\n * - [https://player.]vimeo.com/video/{id}?h={hash}[¶ms]\n * - [https://player.]vimeo.com/video/{id}?[params]&h={hash}\n * - video/{id}/{hash}\n * If matched, the hash is available in capture group 4\n */\n const regex = /^.*(vimeo.com\\/|video\\/)(\\d+)(\\?.*&*h=|\\/)+([\\d,a-f]+)/;\n const found = url.match(regex);\n return found && found.length === 5 ? found[4] : null;\n }\n init() {\n super.init();\n loadAPI();\n }\n play(start) {\n const self = this;\n if (!self.player) {\n return;\n }\n if (typeof start !== 'undefined') {\n self.player.setCurrentTime(start);\n }\n self.player.getPaused().then(paused => {\n if (paused) {\n // Don't play if video is already ended and with no loop.\n if (self.options.endTime && !self.options.loop) {\n self.getCurrentTime(seconds => {\n if (seconds < self.options.endTime) {\n self.player.play();\n }\n });\n } else {\n self.player.play();\n }\n }\n });\n }\n pause() {\n const self = this;\n if (!self.player) {\n return;\n }\n self.player.getPaused().then(paused => {\n if (!paused) {\n self.player.pause();\n }\n });\n }\n mute() {\n const self = this;\n if (!self.player || !self.player.setVolume) {\n return;\n }\n self.setVolume(0);\n }\n unmute() {\n const self = this;\n if (!self.player || !self.player.setVolume) {\n return;\n }\n\n // In case the default volume is 0, we have to set 100 when unmute.\n self.setVolume(self.options.volume || 100);\n }\n setVolume(volume = false) {\n const self = this;\n if (!self.player || typeof volume !== 'number' || !self.player.setVolume) {\n return;\n }\n self.player.setVolume(volume / 100);\n }\n getVolume(callback) {\n const self = this;\n if (!self.player) {\n callback(false);\n return;\n }\n if (self.player.getVolume) {\n self.player.getVolume().then(volume => {\n callback(volume * 100);\n });\n }\n }\n getMuted(callback) {\n const self = this;\n if (!self.player) {\n callback(null);\n return;\n }\n if (self.player.getVolume) {\n self.player.getVolume().then(volume => {\n callback(!!volume);\n });\n }\n }\n setCurrentTime(currentTime = false) {\n const self = this;\n if (!self.player || typeof currentTime !== 'number' || !self.player.setCurrentTime) {\n return;\n }\n self.player.setCurrentTime(currentTime);\n }\n getCurrentTime(callback) {\n const self = this;\n if (!self.player || !self.player.getCurrentTime) {\n return;\n }\n self.player.getCurrentTime().then(currentTime => {\n callback(currentTime);\n });\n }\n getImageURL(callback) {\n const self = this;\n if (self.videoImage) {\n callback(self.videoImage);\n return;\n }\n\n // We should provide width to get HQ thumbnail URL.\n let width = global$1.innerWidth || 1920;\n if (global$1.devicePixelRatio) {\n width *= global$1.devicePixelRatio;\n }\n width = Math.min(width, 1920);\n let request = new XMLHttpRequest();\n // https://vimeo.com/api/oembed.json?url=https://vimeo.com/235212527\n request.open('GET', `https://vimeo.com/api/oembed.json?url=${self.url}&width=${width}`, true);\n request.onreadystatechange = function () {\n if (this.readyState === 4) {\n if (this.status >= 200 && this.status < 400) {\n // Success!\n const response = JSON.parse(this.responseText);\n if (response.thumbnail_url) {\n self.videoImage = response.thumbnail_url;\n callback(self.videoImage);\n }\n }\n }\n };\n request.send();\n request = null;\n }\n getVideo(callback) {\n const self = this;\n\n // return generated video block\n if (self.$video) {\n callback(self.$video);\n return;\n }\n\n // generate new video block\n onAPIready(() => {\n let hiddenDiv;\n if (!self.$video) {\n hiddenDiv = document.createElement('div');\n hiddenDiv.style.display = 'none';\n }\n self.playerOptions = {\n // GDPR Compliance.\n dnt: 1,\n id: self.videoID,\n autopause: 0,\n transparent: 0,\n autoplay: self.options.autoplay ? 1 : 0,\n loop: self.options.loop ? 1 : 0,\n muted: self.options.mute || self.options.volume === 0 ? 1 : 0\n };\n\n // private video hash\n const urlHash = self.constructor.parseURLHash(self.url);\n if (urlHash) {\n self.playerOptions.h = urlHash;\n }\n\n // hide controls\n if (!self.options.showControls) {\n self.playerOptions.controls = 0;\n }\n\n // enable background option\n if (!self.options.showControls && self.options.loop && self.options.autoplay) {\n self.playerOptions.background = 1;\n }\n if (!self.$video) {\n let playerOptionsString = '';\n Object.keys(self.playerOptions).forEach(key => {\n if (playerOptionsString !== '') {\n playerOptionsString += '&';\n }\n playerOptionsString += `${key}=${encodeURIComponent(self.playerOptions[key])}`;\n });\n\n // we need to create iframe manually because when we create it using API\n // js events won't triggers after iframe moved to another place\n self.$video = document.createElement('iframe');\n self.$video.setAttribute('id', self.playerID);\n self.$video.setAttribute('src', `https://player.vimeo.com/video/${self.videoID}?${playerOptionsString}`);\n self.$video.setAttribute('frameborder', '0');\n self.$video.setAttribute('mozallowfullscreen', '');\n self.$video.setAttribute('allowfullscreen', '');\n self.$video.setAttribute('title', 'Vimeo video player');\n\n // add accessibility attributes\n if (self.options.accessibilityHidden) {\n self.$video.setAttribute('tabindex', '-1');\n self.$video.setAttribute('aria-hidden', 'true');\n }\n hiddenDiv.appendChild(self.$video);\n document.body.appendChild(hiddenDiv);\n }\n self.player = self.player || new global$1.Vimeo.Player(self.$video, self.playerOptions);\n\n // Since Vimeo removed the `volume` parameter, we have to set it manually.\n if (!self.options.mute && typeof self.options.volume === 'number') {\n self.setVolume(self.options.volume);\n }\n\n // set current time for autoplay\n if (self.options.startTime && self.options.autoplay) {\n self.player.setCurrentTime(self.options.startTime);\n }\n\n // get video width and height\n self.player.getVideoWidth().then(width => {\n self.videoWidth = width || 1280;\n });\n self.player.getVideoHeight().then(height => {\n self.videoHeight = height || 720;\n });\n\n // events\n let vmStarted;\n self.player.on('timeupdate', e => {\n if (!vmStarted) {\n self.fire('started', e);\n vmStarted = 1;\n }\n self.fire('timeupdate', e);\n\n // check for end of video and play again or stop\n if (self.options.endTime && e.seconds >= self.options.endTime) {\n if (self.options.loop) {\n self.play(self.options.startTime);\n } else {\n self.pause();\n }\n }\n });\n self.player.on('play', e => {\n self.fire('play', e);\n\n // check for the start time and start with it\n if (self.options.startTime && e.seconds === 0) {\n self.play(self.options.startTime);\n }\n });\n self.player.on('pause', e => {\n self.fire('pause', e);\n });\n self.player.on('ended', e => {\n self.fire('ended', e);\n });\n self.player.on('loaded', e => {\n self.fire('ready', e);\n });\n self.player.on('volumechange', e => {\n self.getVolume(volume => {\n self.options.volume = volume;\n });\n self.fire('volumechange', e);\n });\n self.player.on('error', e => {\n self.fire('error', e);\n });\n callback(self.$video);\n });\n }\n}\nclass VideoWorkerLocal extends VideoWorkerBase {\n type = 'local';\n static parseURL(url) {\n // eslint-disable-next-line no-useless-escape\n const videoFormats = url.split(/,(?=mp4\\:|webm\\:|ogv\\:|ogg\\:)/);\n const result = {};\n let ready = 0;\n videoFormats.forEach(val => {\n // eslint-disable-next-line no-useless-escape\n const match = val.match(/^(mp4|webm|ogv|ogg)\\:(.*)/);\n if (match && match[1] && match[2]) {\n // eslint-disable-next-line prefer-destructuring\n result[match[1] === 'ogv' ? 'ogg' : match[1]] = match[2];\n ready = 1;\n }\n });\n return ready ? result : false;\n }\n play(start) {\n const self = this;\n if (!self.player) {\n return;\n }\n if (typeof start !== 'undefined') {\n self.player.currentTime = start;\n }\n if (self.player.paused) {\n // Don't play if video is already ended and with no loop.\n if (self.options.endTime && !self.options.loop) {\n self.getCurrentTime(seconds => {\n if (seconds < self.options.endTime) {\n self.player.play();\n }\n });\n } else {\n self.player.play();\n }\n }\n }\n pause() {\n const self = this;\n if (!self.player || self.player.paused) {\n return;\n }\n self.player.pause();\n }\n mute() {\n const self = this;\n if (!self.player) {\n return;\n }\n self.$video.muted = true;\n }\n unmute() {\n const self = this;\n if (!self.player) {\n return;\n }\n self.$video.muted = false;\n }\n setVolume(volume = false) {\n const self = this;\n if (!self.player || typeof volume !== 'number') {\n return;\n }\n self.$video.volume = volume / 100;\n }\n getVolume(callback) {\n const self = this;\n if (!self.player) {\n callback(false);\n return;\n }\n callback(self.$video.volume * 100);\n }\n getMuted(callback) {\n const self = this;\n if (!self.player) {\n callback(null);\n return;\n }\n callback(self.$video.muted);\n }\n setCurrentTime(currentTime = false) {\n const self = this;\n if (!self.player || typeof currentTime !== 'number') {\n return;\n }\n self.$video.currentTime = currentTime;\n }\n getCurrentTime(callback) {\n const self = this;\n if (!self.player) {\n return;\n }\n callback(self.player.currentTime);\n }\n getImageURL(callback) {\n const self = this;\n if (self.videoImage) {\n callback(self.videoImage);\n }\n }\n getVideo(callback) {\n const self = this;\n\n // return generated video block\n if (self.$video) {\n callback(self.$video);\n return;\n }\n\n // generate new video block\n let hiddenDiv;\n if (!self.$video) {\n hiddenDiv = document.createElement('div');\n hiddenDiv.style.display = 'none';\n }\n function addSourceElement(element, src, type) {\n const source = document.createElement('source');\n source.src = src;\n source.type = type;\n element.appendChild(source);\n }\n if (!self.$video) {\n self.$video = document.createElement('video');\n self.player = self.$video;\n\n // show controls\n if (self.options.showControls) {\n self.$video.controls = true;\n }\n\n // set volume\n if (typeof self.options.volume === 'number') {\n self.setVolume(self.options.volume);\n }\n\n // mute (it is required to mute after the volume set)\n if (self.options.mute) {\n self.mute();\n }\n\n // loop\n if (self.options.loop) {\n self.$video.loop = true;\n }\n\n // autoplay enable on mobile devices\n self.$video.setAttribute('playsinline', '');\n self.$video.setAttribute('webkit-playsinline', '');\n\n // add accessibility attributes\n if (self.options.accessibilityHidden) {\n self.$video.setAttribute('tabindex', '-1');\n self.$video.setAttribute('aria-hidden', 'true');\n }\n self.$video.setAttribute('id', self.playerID);\n hiddenDiv.appendChild(self.$video);\n document.body.appendChild(hiddenDiv);\n Object.keys(self.videoID).forEach(key => {\n addSourceElement(self.$video, self.videoID[key], `video/${key}`);\n });\n }\n let locStarted;\n self.player.addEventListener('playing', e => {\n if (!locStarted) {\n self.fire('started', e);\n }\n locStarted = 1;\n });\n self.player.addEventListener('timeupdate', function (e) {\n self.fire('timeupdate', e);\n\n // check for end of video and play again or stop\n if (self.options.endTime && this.currentTime >= self.options.endTime) {\n if (self.options.loop) {\n self.play(self.options.startTime);\n } else {\n self.pause();\n }\n }\n });\n self.player.addEventListener('play', e => {\n self.fire('play', e);\n });\n self.player.addEventListener('pause', e => {\n self.fire('pause', e);\n });\n self.player.addEventListener('ended', e => {\n self.fire('ended', e);\n });\n self.player.addEventListener('loadedmetadata', function () {\n // get video width and height\n self.videoWidth = this.videoWidth || 1280;\n self.videoHeight = this.videoHeight || 720;\n self.fire('ready');\n\n // autoplay\n if (self.options.autoplay) {\n self.play(self.options.startTime);\n }\n });\n self.player.addEventListener('volumechange', e => {\n self.getVolume(volume => {\n self.options.volume = volume;\n });\n self.fire('volumechange', e);\n });\n self.player.addEventListener('error', e => {\n self.fire('error', e);\n });\n callback(self.$video);\n }\n}\nfunction VideoWorker(url, options) {\n let result = false;\n Object.keys(VideoWorker.providers).forEach(key => {\n if (!result && VideoWorker.providers[key].parseURL(url)) {\n result = new VideoWorker.providers[key](url, options);\n }\n });\n return result || new VideoWorkerBase(url, options);\n}\nVideoWorker.BaseClass = VideoWorkerBase;\nVideoWorker.providers = {\n Youtube: VideoWorkerYoutube,\n Vimeo: VideoWorkerVimeo,\n Local: VideoWorkerLocal\n};\n\nfunction jarallaxVideo$1(jarallax = global$2.jarallax) {\n if (typeof jarallax === 'undefined') {\n return;\n }\n const Jarallax = jarallax.constructor;\n\n // append video after when block will be visible.\n const defOnScroll = Jarallax.prototype.onScroll;\n Jarallax.prototype.onScroll = function () {\n const self = this;\n defOnScroll.apply(self);\n const isReady = !self.isVideoInserted && self.video && (!self.options.videoLazyLoading || self.isElementInViewport) && !self.options.disableVideo();\n if (isReady) {\n self.isVideoInserted = true;\n self.video.getVideo(video => {\n const $parent = video.parentNode;\n self.css(video, {\n position: self.image.position,\n top: '0px',\n left: '0px',\n right: '0px',\n bottom: '0px',\n width: '100%',\n height: '100%',\n maxWidth: 'none',\n maxHeight: 'none',\n pointerEvents: 'none',\n transformStyle: 'preserve-3d',\n backfaceVisibility: 'hidden',\n margin: 0,\n zIndex: -1\n });\n self.$video = video;\n\n // add Poster attribute to self-hosted video\n if (self.video.type === 'local') {\n if (self.image.src) {\n self.$video.setAttribute('poster', self.image.src);\n } else if (self.image.$item && self.image.$item.tagName === 'IMG' && self.image.$item.src) {\n self.$video.setAttribute('poster', self.image.$item.src);\n }\n }\n\n // add classname to video element\n if (self.options.videoClass) {\n self.$video.setAttribute('class', `${self.options.videoClass} ${self.options.videoClass}-${self.video.type}`);\n }\n\n // insert video tag\n self.image.$container.appendChild(video);\n\n // remove parent video element (created by VideoWorker)\n $parent.parentNode.removeChild($parent);\n\n // call onVideoInsert event\n if (self.options.onVideoInsert) {\n self.options.onVideoInsert.call(self);\n }\n });\n }\n };\n\n // cover video\n const defCoverImage = Jarallax.prototype.coverImage;\n Jarallax.prototype.coverImage = function () {\n const self = this;\n const imageData = defCoverImage.apply(self);\n const node = self.image.$item ? self.image.$item.nodeName : false;\n if (imageData && self.video && node && (node === 'IFRAME' || node === 'VIDEO')) {\n let h = imageData.image.height;\n let w = h * self.image.width / self.image.height;\n let ml = (imageData.container.width - w) / 2;\n let mt = imageData.image.marginTop;\n if (imageData.container.width > w) {\n w = imageData.container.width;\n h = w * self.image.height / self.image.width;\n ml = 0;\n mt += (imageData.image.height - h) / 2;\n }\n\n // add video height over than need to hide controls\n if (node === 'IFRAME') {\n h += 400;\n mt -= 200;\n }\n self.css(self.$video, {\n width: `${w}px`,\n marginLeft: `${ml}px`,\n height: `${h}px`,\n marginTop: `${mt}px`\n });\n }\n return imageData;\n };\n\n // init video\n const defInitImg = Jarallax.prototype.initImg;\n Jarallax.prototype.initImg = function () {\n const self = this;\n const defaultResult = defInitImg.apply(self);\n if (!self.options.videoSrc) {\n self.options.videoSrc = self.$item.getAttribute('data-jarallax-video') || null;\n }\n if (self.options.videoSrc) {\n self.defaultInitImgResult = defaultResult;\n return true;\n }\n return defaultResult;\n };\n const defCanInitParallax = Jarallax.prototype.canInitParallax;\n Jarallax.prototype.canInitParallax = function () {\n const self = this;\n let defaultResult = defCanInitParallax.apply(self);\n if (!self.options.videoSrc) {\n return defaultResult;\n }\n\n // Init video api\n const video = new VideoWorker(self.options.videoSrc, {\n autoplay: true,\n loop: self.options.videoLoop,\n showControls: false,\n accessibilityHidden: true,\n startTime: self.options.videoStartTime || 0,\n endTime: self.options.videoEndTime || 0,\n mute: !self.options.videoVolume,\n volume: self.options.videoVolume || 0\n });\n\n // call onVideoWorkerInit event\n if (self.options.onVideoWorkerInit) {\n self.options.onVideoWorkerInit.call(self, video);\n }\n function resetDefaultImage() {\n if (self.image.$default_item) {\n self.image.$item = self.image.$default_item;\n self.image.$item.style.display = 'block';\n\n // set image width and height\n self.coverImage();\n self.onScroll();\n }\n }\n if (video.isValid()) {\n // Force enable parallax.\n // When the parallax disabled on mobile devices, we still need to display videos.\n // https://github.com/nk-o/jarallax/issues/159\n if (this.options.disableParallax()) {\n defaultResult = true;\n self.image.position = 'absolute';\n self.options.type = 'scroll';\n self.options.speed = 1;\n }\n\n // if parallax will not be inited, we can add thumbnail on background.\n if (!defaultResult) {\n if (!self.defaultInitImgResult) {\n video.getImageURL(url => {\n // save default user styles\n const curStyle = self.$item.getAttribute('style');\n if (curStyle) {\n self.$item.setAttribute('data-jarallax-original-styles', curStyle);\n }\n\n // set new background\n self.css(self.$item, {\n 'background-image': `url(\"${url}\")`,\n 'background-position': 'center',\n 'background-size': 'cover'\n });\n });\n }\n\n // init video\n } else {\n video.on('ready', () => {\n if (self.options.videoPlayOnlyVisible) {\n const oldOnScroll = self.onScroll;\n self.onScroll = function () {\n oldOnScroll.apply(self);\n if (!self.videoError && (self.options.videoLoop || !self.options.videoLoop && !self.videoEnded)) {\n if (self.isVisible()) {\n video.play();\n } else {\n video.pause();\n }\n }\n };\n } else {\n video.play();\n }\n });\n video.on('started', () => {\n self.image.$default_item = self.image.$item;\n self.image.$item = self.$video;\n\n // set video width and height\n self.image.width = self.video.videoWidth || 1280;\n self.image.height = self.video.videoHeight || 720;\n self.coverImage();\n self.onScroll();\n\n // hide image\n if (self.image.$default_item) {\n self.image.$default_item.style.display = 'none';\n }\n });\n video.on('ended', () => {\n self.videoEnded = true;\n if (!self.options.videoLoop) {\n // show default image if Loop disabled.\n resetDefaultImage();\n }\n });\n video.on('error', () => {\n self.videoError = true;\n\n // show default image if video loading error.\n resetDefaultImage();\n });\n self.video = video;\n\n // set image if not exists\n if (!self.defaultInitImgResult) {\n // set empty image on self-hosted video if not defined\n self.image.src = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n if (video.type !== 'local') {\n video.getImageURL(url => {\n self.image.bgImage = `url(\"${url}\")`;\n self.init();\n });\n return false;\n }\n }\n }\n }\n return defaultResult;\n };\n\n // Destroy video parallax\n const defDestroy = Jarallax.prototype.destroy;\n Jarallax.prototype.destroy = function () {\n const self = this;\n if (self.image.$default_item) {\n self.image.$item = self.image.$default_item;\n delete self.image.$default_item;\n }\n defDestroy.apply(self);\n };\n}\n\nfunction jarallaxElement$1(jarallax = global$2.jarallax) {\n // eslint-disable-next-line no-console\n console.warn(\"Jarallax Element extension is DEPRECATED, please, avoid using it. We recommend you look at something like `lax.js` library <https://github.com/alexfoxy/lax.js>. It is much more powerful and has a less code (in cases when you don't want to add parallax backgrounds).\");\n if (typeof jarallax === 'undefined') {\n return;\n }\n const Jarallax = jarallax.constructor;\n\n // redefine default methods\n ['initImg', 'canInitParallax', 'init', 'destroy', 'coverImage', 'isVisible', 'onScroll', 'onResize'].forEach(key => {\n const def = Jarallax.prototype[key];\n Jarallax.prototype[key] = function (...args) {\n const self = this;\n if (key === 'initImg' && self.$item.getAttribute('data-jarallax-element') !== null) {\n self.options.type = 'element';\n self.pureOptions.speed = self.$item.getAttribute('data-jarallax-element') || '100';\n }\n if (self.options.type !== 'element') {\n return def.apply(self, args);\n }\n self.pureOptions.threshold = self.$item.getAttribute('data-threshold') || '';\n switch (key) {\n case 'init':\n {\n const speedArr = `${self.pureOptions.speed}`.split(' ');\n self.options.speed = self.pureOptions.speed || 0;\n self.options.speedY = speedArr[0] ? parseFloat(speedArr[0]) : 0;\n self.options.speedX = speedArr[1] ? parseFloat(speedArr[1]) : 0;\n const thresholdArr = self.pureOptions.threshold.split(' ');\n self.options.thresholdY = thresholdArr[0] ? parseFloat(thresholdArr[0]) : null;\n self.options.thresholdX = thresholdArr[1] ? parseFloat(thresholdArr[1]) : null;\n def.apply(self, args);\n\n // restore background image if available.\n const originalStylesTag = self.$item.getAttribute('data-jarallax-original-styles');\n if (originalStylesTag) {\n self.$item.setAttribute('style', originalStylesTag);\n }\n return true;\n }\n case 'onResize':\n {\n const defTransform = self.css(self.$item, 'transform');\n self.css(self.$item, {\n transform: ''\n });\n const rect = self.$item.getBoundingClientRect();\n self.itemData = {\n width: rect.width,\n height: rect.height,\n y: rect.top + self.getWindowData().y,\n x: rect.left\n };\n self.css(self.$item, {\n transform: defTransform\n });\n break;\n }\n case 'onScroll':\n {\n const wnd = self.getWindowData();\n const centerPercent = (wnd.y + wnd.height / 2 - self.itemData.y - self.itemData.height / 2) / (wnd.height / 2);\n const moveY = centerPercent * self.options.speedY;\n const moveX = centerPercent * self.options.speedX;\n let my = moveY;\n let mx = moveX;\n if (self.options.thresholdY !== null && moveY > self.options.thresholdY) my = 0;\n if (self.options.thresholdX !== null && moveX > self.options.thresholdX) mx = 0;\n self.css(self.$item, {\n transform: `translate3d(${mx}px,${my}px,0)`\n });\n break;\n }\n case 'initImg':\n case 'isVisible':\n case 'coverImage':\n return true;\n // no default\n }\n return def.apply(self, args);\n };\n });\n}\n\nconst jarallax = jarallax$1;\nconst jarallaxVideo = function jarallaxVideo() {\n return jarallaxVideo$1(jarallax);\n};\nconst jarallaxElement = function jarallaxElement() {\n return jarallaxElement$1(jarallax);\n};\n\nexport { jarallax, jarallaxElement, jarallaxVideo };\n//# sourceMappingURL=jarallax.esm.js.map\n"],"names":["win$1","wndW","wndH","$deviceHelper","win","callback","defaults$1","type","speed","containerClass","imgSrc","imgElement","imgSize","imgPosition","imgRepeat","keepImg","elementInViewport","zIndex","disableParallax","onScroll","onInit","onDestroy","onCoverImage","videoClass","videoSrc","videoStartTime","videoEndTime","videoVolume","videoLoop","videoPlayOnlyVisible","videoLazyLoading","disableVideo","onVideoInsert","onVideoWorkerInit","window","__webpack_require__","g","self","global$2","navigator","navigator$1","mobileAgent","test","userAgent","updateWindowHeight","innerWidth","document","documentElement","clientWidth","body","createElement","style","cssText","appendChild","clientHeight","innerHeight","getWindowSize","width","height","addEventListener","readyState","capture","once","passive","jarallaxList","updateParallax","length","forEach","data","k","instance","oldData","isVisible","clientRect","$item","getBoundingClientRect","newData","top","bottom","isResized","isScrolled","onResize","requestAnimationFrame","visibilityObserver","IntersectionObserver","entries","entry","target","jarallax","isElementInViewport","isIntersecting","rootMargin","instanceID","Jarallax","constructor","item","userOptions","defaults","dataOptions","dataset","pureDataOptions","Object","keys","key","lowerCaseOption","substr","toLowerCase","options","extend","pureOptions","Math","min","max","parseFloat","RegExp","disableParallaxRegexp","disableParallaxDefault","disableVideoRegexp","disableVideoDefault","elementInVP","Element","image","src","$container","useImgTag","position","initImg","canInitParallax","init","css","el","styles","getComputedStyle","getPropertyValue","out","args","extend$1","i","getWindowData","y","scrollTop","$imgElement","querySelector","Image","cloneNode","$itemParent","parentNode","bgImage","containerStyles","left","overflow","imageStyles","pointerEvents","transformStyle","backfaceVisibility","curStyle","getAttribute","setAttribute","curImgStyle","$parents","getParents","elem","parents","parentElement","nodeType","push","filter","parentTransform","transform","overflowRegex","call","observe","destroy","splice","unobserve","originalStylesTag","removeAttribute","originalStylesImgTag","removeChild","coverImage","rect","contH","isScroll","scrollDist","resultH","resultMT","abs","parallaxScrollDistance","marginTop","container","force","contT","beforeTopEnd","afterTop","beforeBottom","beforeBottomEnd","fromViewportCenter","visiblePercent","opacity","scale","positionY","section","beforeTop","afterBottom","jarallax$1","items","ret","HTMLElement","nodeName","len","apply","autoplay","loop","mute","volume","showControls","accessibilityHidden","startTime","endTime","ID","VideoWorkerBase","url","options_default","videoID","parseURL","isValid","playerID","on","name","userEventsList","off","val","fire","play","start","pause","unmute","setVolume","getVolume","getMuted","setCurrentTime","currentTime","getCurrentTime","getImageURL","getVideo","global$1","Deferred","doneCallbacks","failCallbacks","prototype","execute","list","Array","slice","resolve","reject","done","fail","YoutubeAPIadded","loadingYoutubePlayer","loadingYoutubeDefer","VideoWorkerYoutube","match","loadAPI$1","tag","head","getElementsByTagName","player","playVideo","seekTo","YT","PlayerState","PLAYING","getPlayerState","seconds","pauseVideo","unMute","isMuted","videoImage","availableSizes","step","tempImg","onload","naturalWidth","$video","hiddenDiv","ytStarted","ytProgressInterval","display","playerOptions","host","videoId","playerVars","autohide","rel","playsinline","iv_load_policy","modestbranding","controls","showinfo","disablekb","events","onReady","e","getDuration","setInterval","onStateChange","ENDED","PAUSED","clearInterval","onError","firstInit","div","Player","getElementById","videoWidth","parseInt","videoHeight","loaded","onYouTubeIframeAPIReady","VimeoAPIadded","loadingVimeoPlayer","loadingVimeoDefer","VideoWorkerVimeo","parseURLHash","found","loadAPI","Vimeo","getPaused","then","paused","devicePixelRatio","request","XMLHttpRequest","open","onreadystatechange","status","response","JSON","parse","responseText","thumbnail_url","send","onAPIready","vimeoInterval","vmStarted","dnt","id","autopause","transparent","muted","urlHash","h","background","playerOptionsString","encodeURIComponent","getVideoWidth","getVideoHeight","VideoWorkerLocal","videoFormats","split","result","ready","locStarted","addSourceElement","element","source","VideoWorker","providers","BaseClass","Youtube","Local","_bailouttocsr","require","BailoutToCSR","children","reason","param","BailoutToCSRError","_requestasyncstorageexternal","PreloadCss","moduleIds","allFiles","getExpectedRequestStore","requestStore","manifest","reactLoadableManifest","cssFiles","map","file","_jsxruntime","jsx","href","as","assetPrefix","encodeURI"],"sourceRoot":""}