{"version":3,"file":"jarallax.js","sources":["../src/utils/ready.js","../src/utils/global.js","../src/defaults.js","../src/utils/css.js","../src/utils/extend.js","../src/utils/getParents.js","../src/utils/isMobile.js","../src/utils/getWindowSize.js","../src/utils/observer.js","../src/core.js","../src/core.umd.js"],"sourcesContent":["/**\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\nexport default ready;\n","/* eslint-disable import/no-mutable-exports */\n/* eslint-disable no-restricted-globals */\nlet win;\n\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}\n\nexport default win;\n","export default {\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\n // Callbacks.\n onScroll: null,\n onInit: null,\n onDestroy: null,\n onCoverImage: null,\n\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\n // Video callbacks.\n onVideoInsert: null,\n onVideoWorkerInit: null,\n};\n","import global from './global';\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 */\nexport default function css(el, styles) {\n if (typeof styles === 'string') {\n return global.getComputedStyle(el).getPropertyValue(styles);\n }\n\n Object.keys(styles).forEach((key) => {\n el.style[key] = styles[key];\n });\n return el;\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 */\nexport default function extend(out, ...args) {\n out = out || {};\n\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\n return out;\n}\n","/**\n * Get all parents of the element.\n *\n * @param {Element} elem - DOM element.\n *\n * @returns {Array}\n */\nexport default function getParents(elem) {\n const parents = [];\n\n while (elem.parentElement !== null) {\n elem = elem.parentElement;\n\n if (elem.nodeType === 1) {\n parents.push(elem);\n }\n }\n\n return parents;\n}\n","import global from './global';\n\nconst { navigator } = global;\n\nconst mobileAgent = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n);\n\nexport default function isMobile() {\n return mobileAgent;\n}\n","import global from './global';\nimport domReady from './ready';\nimport isMobile from './isMobile';\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 =\n 'position: fixed; top: -9999px; left: 0; height: 100vh; width: 0;';\n document.body.appendChild($deviceHelper);\n }\n\n return (\n ($deviceHelper ? $deviceHelper.clientHeight : 0) ||\n global.innerHeight ||\n document.documentElement.clientHeight\n );\n}\n\nfunction updateWindowHeight() {\n wndW = global.innerWidth || document.documentElement.clientWidth;\n\n if (isMobile()) {\n wndH = getDeviceHeight();\n } else {\n wndH = global.innerHeight || document.documentElement.clientHeight;\n }\n}\n\nupdateWindowHeight();\nglobal.addEventListener('resize', updateWindowHeight);\nglobal.addEventListener('orientationchange', updateWindowHeight);\nglobal.addEventListener('load', updateWindowHeight);\ndomReady(() => {\n updateWindowHeight({\n type: 'dom-loaded',\n });\n});\n\nexport default function getWindowSize() {\n return {\n width: wndW,\n height: wndH,\n };\n}\n","import global from './global';\nimport getWindowSize from './getWindowSize';\n\n// List with all jarallax instances\n// need to render all in one scroll/resize event.\nconst jarallaxList = [];\n\nfunction updateParallax() {\n if (!jarallaxList.length) {\n return;\n }\n\n const { width: wndW, height: wndH } = getWindowSize();\n\n jarallaxList.forEach((data, k) => {\n const { instance, oldData } = data;\n\n if (!instance.isVisible()) {\n return;\n }\n\n const clientRect = instance.$item.getBoundingClientRect();\n\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\n const isResized =\n !oldData ||\n oldData.wndW !== newData.wndW ||\n oldData.wndH !== newData.wndH ||\n oldData.width !== newData.width ||\n oldData.height !== newData.height;\n const isScrolled =\n isResized || !oldData || oldData.top !== newData.top || oldData.bottom !== newData.bottom;\n\n jarallaxList[k].oldData = newData;\n\n if (isResized) {\n instance.onResize();\n }\n if (isScrolled) {\n instance.onScroll();\n }\n });\n\n global.requestAnimationFrame(updateParallax);\n}\n\nconst visibilityObserver = new global.IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n entry.target.jarallax.isElementInViewport = entry.isIntersecting;\n });\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 }\n);\n\nexport function addObserver(instance) {\n jarallaxList.push({\n instance,\n });\n\n if (jarallaxList.length === 1) {\n global.requestAnimationFrame(updateParallax);\n }\n\n visibilityObserver.observe(instance.options.elementInViewport || instance.$item);\n}\n\nexport function removeObserver(instance) {\n jarallaxList.forEach((data, key) => {\n if (data.instance.instanceID === instance.instanceID) {\n jarallaxList.splice(key, 1);\n }\n });\n\n visibilityObserver.unobserve(instance.options.elementInViewport || instance.$item);\n}\n","/* eslint-disable class-methods-use-this */\nimport defaults from './defaults';\nimport global from './utils/global';\nimport css from './utils/css';\nimport extend from './utils/extend';\nimport getParents from './utils/getParents';\nimport getWindowSize from './utils/getWindowSize';\nimport { addObserver, removeObserver } from './utils/observer';\n\nconst { navigator } = global;\n\nlet instanceID = 0;\n\n// Jarallax class\nclass Jarallax {\n constructor(item, userOptions) {\n const self = this;\n\n self.instanceID = instanceID;\n instanceID += 1;\n\n self.$item = item;\n\n self.defaults = { ...defaults };\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\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 self.options.disableParallax = () => false;\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 self.options.disableVideo = () => false;\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 (\n elementInVP &&\n typeof elementInVP === 'object' &&\n typeof elementInVP.length !== 'undefined'\n ) {\n [elementInVP] = elementInVP;\n }\n // check if dom element\n if (!(elementInVP instanceof Element)) {\n elementInVP = null;\n }\n self.options.elementInViewport = elementInVP;\n\n self.image = {\n src: self.options.imgSrc || null,\n $container: null,\n useImgTag: false,\n\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\n if (self.initImg() && self.canInitParallax()) {\n self.init();\n }\n }\n\n css(el, styles) {\n return css(el, styles);\n }\n\n extend(out, ...args) {\n return extend(out, ...args);\n }\n\n // get window size and scroll position. Useful for extensions\n getWindowData() {\n const { width, height } = getWindowSize();\n\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\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 =\n '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\n canInitParallax() {\n return !this.options.disableParallax();\n }\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\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\n self.$item.appendChild(self.image.$container);\n\n // use img tag\n if (self.image.useImgTag) {\n imageStyles = self.extend(\n {\n 'object-fit': self.options.imgSize,\n 'object-position': self.options.imgPosition,\n 'max-width': 'none',\n },\n containerStyles,\n imageStyles\n );\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 {\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 },\n containerStyles,\n imageStyles\n );\n }\n }\n\n if (\n self.options.type === 'opacity' ||\n self.options.type === 'scale' ||\n self.options.type === 'scale-opacity' ||\n self.options.speed === 1\n ) {\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.getComputedStyle(el);\n const parentTransform =\n styles['-webkit-transform'] || styles['-moz-transform'] || styles.transform;\n const overflowRegex = /(auto|scroll)/;\n\n return (\n (parentTransform && parentTransform !== 'none') ||\n overflowRegex.test(styles.overflow + styles['overflow-y'] + styles['overflow-x'])\n );\n });\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\n addObserver(self);\n }\n\n destroy() {\n const self = this;\n\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\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\n coverImage() {\n const self = this;\n\n const { height: wndH } = getWindowSize();\n const rect = self.image.$container.getBoundingClientRect();\n const contH = rect.height;\n const { speed } = 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\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\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\n isVisible() {\n return this.isElementInViewport || false;\n }\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\n const { height: wndH } = 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 (\n self.options.type === 'opacity' ||\n self.options.type === 'scale-opacity' ||\n self.options.type === 'scroll-opacity'\n ) {\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\n styles.transform = `translate3d(0,${positionY}px,0)`;\n }\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\n beforeTop,\n beforeTopEnd,\n afterTop,\n beforeBottom,\n beforeBottomEnd,\n afterBottom,\n\n visiblePercent,\n fromViewportCenter,\n });\n }\n }\n\n onResize() {\n this.coverImage();\n }\n}\n\n// global definition\nconst jarallax = 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 (\n typeof HTMLElement === 'object'\n ? items instanceof HTMLElement\n : items &&\n typeof items === 'object' &&\n items !== null &&\n items.nodeType === 1 &&\n typeof items.nodeName === 'string'\n ) {\n items = [items];\n }\n\n const len = items.length;\n let k = 0;\n let ret;\n\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\n return items;\n};\njarallax.constructor = Jarallax;\n\nexport default jarallax;\n","import domReady from './utils/ready';\nimport global from './utils/global';\nimport jarallax from './core';\n\nconst $ = global.jQuery;\n\n// jQuery support\nif (typeof $ !== 'undefined') {\n const $Plugin = function (...args) {\n Array.prototype.unshift.call(args, this);\n const res = jarallax.apply(global, args);\n return typeof res !== 'object' ? res : this;\n };\n $Plugin.constructor = jarallax.constructor;\n\n // no conflict\n const old$Plugin = $.fn.jarallax;\n $.fn.jarallax = $Plugin;\n $.fn.jarallax.noConflict = function () {\n $.fn.jarallax = old$Plugin;\n return this;\n };\n}\n\n// data-jarallax initialization\ndomReady(() => {\n jarallax(document.querySelectorAll('[data-jarallax]'));\n});\n\nexport default jarallax;\n"],"names":["ready","callback","document","readyState","addEventListener","capture","once","passive","win","window","global","self","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","css","el","styles","getComputedStyle","getPropertyValue","Object","keys","forEach","key","style","extend","out","args","i","getParents","elem","parents","parentElement","nodeType","push","navigator","mobileAgent","test","userAgent","isMobile","wndW","wndH","$deviceHelper","getDeviceHeight","body","createElement","cssText","appendChild","clientHeight","innerHeight","documentElement","updateWindowHeight","innerWidth","clientWidth","domReady","getWindowSize","width","height","jarallaxList","updateParallax","length","data","k","instance","oldData","isVisible","clientRect","$item","getBoundingClientRect","newData","top","bottom","isResized","isScrolled","onResize","requestAnimationFrame","visibilityObserver","IntersectionObserver","entries","entry","target","jarallax","isElementInViewport","isIntersecting","rootMargin","addObserver","observe","options","removeObserver","instanceID","splice","unobserve","Jarallax","constructor","item","userOptions","defaults","dataOptions","dataset","pureDataOptions","lowerCaseOption","substr","toLowerCase","pureOptions","Math","min","max","parseFloat","RegExp","disableParallaxRegexp","disableVideoRegexp","elementInVP","Element","image","src","$container","useImgTag","position","initImg","canInitParallax","init","getWindowData","y","scrollTop","$imgElement","querySelector","Image","cloneNode","$itemParent","parentNode","bgImage","containerStyles","left","overflow","imageStyles","pointerEvents","transformStyle","backfaceVisibility","curStyle","getAttribute","setAttribute","curImgStyle","$parents","filter","parentTransform","transform","overflowRegex","call","destroy","originalStylesTag","removeAttribute","originalStylesImgTag","removeChild","coverImage","rect","contH","isScroll","scrollDist","resultH","resultMT","abs","parallaxScrollDistance","marginTop","container","force","contT","beforeTop","beforeTopEnd","afterTop","beforeBottom","beforeBottomEnd","afterBottom","fromViewportCenter","visiblePercent","opacity","scale","positionY","section","items","HTMLElement","nodeName","len","ret","apply","$","jQuery","$Plugin","Array","prototype","unshift","res","old$Plugin","fn","noConflict","querySelectorAll"],"mappings":"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"}