{"version":3,"file":"jarallax.js","sources":["../src/utils/ready.js","../src/utils/global.js","../src/core.js","../src/core.umd.js"],"sourcesContent":["function ready(callback) {\n if ('complete' === document.readyState || 'interactive' === document.readyState) {\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 ('undefined' !== typeof window) {\n win = window;\n} else if ('undefined' !== typeof global) {\n win = global;\n} else if ('undefined' !== typeof self) {\n win = self;\n} else {\n win = {};\n}\n\nexport default win;\n","import domReady from './utils/ready';\nimport global from './utils/global';\n\nconst { navigator } = global;\n\nconst isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n);\n\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\n// Window height data\nlet wndH;\nfunction updateWndVars() {\n if (isMobile) {\n wndH = getDeviceHeight();\n } else {\n wndH = global.innerHeight || document.documentElement.clientHeight;\n }\n}\nupdateWndVars();\nglobal.addEventListener('resize', updateWndVars);\nglobal.addEventListener('orientationchange', updateWndVars);\nglobal.addEventListener('load', updateWndVars);\ndomReady(() => {\n updateWndVars({\n type: 'dom-loaded',\n });\n});\n\n// list with all jarallax instances\n// need to render all in one scroll/resize event\nconst jarallaxList = [];\n\n// get all parents of the element.\nfunction getParents(elem) {\n const parents = [];\n\n while (null !== elem.parentElement) {\n elem = elem.parentElement;\n\n if (1 === elem.nodeType) {\n parents.push(elem);\n }\n }\n\n return parents;\n}\n\nfunction updateParallax() {\n if (!jarallaxList.length) {\n return;\n }\n\n jarallaxList.forEach((data, k) => {\n const { instance, oldData } = data;\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: global.innerWidth,\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\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 = {\n type: 'scroll', // type of parallax: scroll, scale, opacity, scale-opacity, scroll-opacity\n speed: 0.5, // supported value from -1 to 2\n imgSrc: null,\n imgElement: '.jarallax-img',\n imgSize: 'cover',\n imgPosition: '50% 50%',\n imgRepeat: 'no-repeat', // supported only for background, not for
tag\n keepImg: false, // keep
tag in it's default place\n elementInViewport: null,\n zIndex: -100,\n disableParallax: false,\n disableVideo: false,\n\n // video\n videoSrc: null,\n videoStartTime: 0,\n videoEndTime: 0,\n videoVolume: 0,\n videoLoop: true,\n videoPlayOnlyVisible: true,\n videoLazyLoading: true,\n\n // events\n onScroll: null, // function(calculations) {}\n onInit: null, // function() {}\n onDestroy: null, // function() {}\n onCoverImage: null, // function() {}\n };\n\n // prepare data-options\n const dataOptions = self.$item.dataset || {};\n const pureDataOptions = {};\n Object.keys(dataOptions).forEach((key) => {\n const loweCaseOption = key.substr(0, 1).toLowerCase() + key.substr(1);\n if (loweCaseOption && 'undefined' !== typeof self.defaults[loweCaseOption]) {\n pureDataOptions[loweCaseOption] = 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 ('true' === self.options[key]) {\n self.options[key] = true;\n } else if ('false' === self.options[key]) {\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 ('string' === typeof self.options.disableParallax) {\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 ('function' !== typeof self.options.disableParallax) {\n self.options.disableParallax = () => false;\n }\n\n // prepare disableVideo callback\n if ('string' === typeof self.options.disableVideo) {\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 ('function' !== typeof self.options.disableVideo) {\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 'object' === typeof elementInVP &&\n 'undefined' !== typeof elementInVP.length\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 // add styles to element\n // eslint-disable-next-line class-methods-use-this\n css(el, styles) {\n if ('string' === typeof styles) {\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 // eslint-disable-next-line class-methods-use-this\n 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 window size and scroll position. Useful for extensions\n // eslint-disable-next-line class-methods-use-this\n getWindowData() {\n return {\n width: global.innerWidth || document.documentElement.clientWidth,\n height: wndH,\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 && 'string' === typeof $imgElement) {\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 (null === self.image.src) {\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 || 'none' === self.image.bgImage);\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 ('static' === self.css(self.$item, 'position')) {\n self.css(self.$item, {\n position: 'relative',\n });\n }\n if ('auto' === self.css(self.$item, 'z-index')) {\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 ('fixed' === this.image.position) {\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 self.image.$container.setAttribute('id', `jarallax-container-${self.instanceID}`);\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 'opacity' === self.options.type ||\n 'scale' === self.options.type ||\n 'scale-opacity' === self.options.type ||\n 1 === self.options.speed\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 ('fixed' === self.image.position) {\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 && 'none' !== parentTransform) ||\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 ('none' !== self.css(self.$item, 'background-image')) {\n self.css(self.$item, {\n 'background-image': 'none',\n });\n }\n\n self.addToParallaxList();\n }\n\n // add to parallax instances list\n addToParallaxList() {\n jarallaxList.push({\n instance: this,\n });\n\n if (1 === jarallaxList.length) {\n global.requestAnimationFrame(updateParallax);\n }\n }\n\n // remove from parallax instances list\n removeFromParallaxList() {\n const self = this;\n\n jarallaxList.forEach((data, key) => {\n if (data.instance.instanceID === self.instanceID) {\n jarallaxList.splice(key, 1);\n }\n });\n }\n\n destroy() {\n const self = this;\n\n self.removeFromParallaxList();\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 // Fallback for removed function.\n // Does nothing now.\n // eslint-disable-next-line class-methods-use-this\n clipContainer() {}\n\n coverImage() {\n const self = this;\n\n const rect = self.image.$container.getBoundingClientRect();\n const contH = rect.height;\n const { speed } = self.options;\n const isScroll = 'scroll' === self.options.type || 'scroll-opacity' === self.options.type;\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 (0 > speed) {\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 (1 < speed) {\n resultH = Math.abs(scrollDist - wndH);\n } else if (0 > speed) {\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: 'fixed' === self.image.position ? `${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 const rect = self.$item.getBoundingClientRect();\n const contT = rect.top;\n const contH = rect.height;\n const styles = {};\n\n // check if in viewport\n let viewportRect = rect;\n if (self.options.elementInViewport) {\n viewportRect = self.options.elementInViewport.getBoundingClientRect();\n }\n self.isElementInViewport =\n 0 <= viewportRect.bottom &&\n 0 <= viewportRect.right &&\n viewportRect.top <= wndH &&\n viewportRect.left <= global.innerWidth;\n\n // stop calculations if item is not in viewport\n if (force ? false : !self.isElementInViewport) {\n return;\n }\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 'opacity' === self.options.type ||\n 'scale-opacity' === self.options.type ||\n 'scroll-opacity' === self.options.type\n ) {\n styles.transform = 'translate3d(0,0,0)';\n styles.opacity = visiblePercent;\n }\n\n // scale\n if ('scale' === self.options.type || 'scale-opacity' === self.options.type) {\n let scale = 1;\n if (0 > self.options.speed) {\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 ('scroll' === self.options.type || 'scroll-opacity' === self.options.type) {\n let positionY = self.parallaxScrollDistance * fromViewportCenter;\n\n // fix if parallax block in absolute position\n if ('absolute' === self.image.position) {\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 'object' === typeof HTMLElement\n ? items instanceof HTMLElement\n : items &&\n 'object' === typeof items &&\n null !== items &&\n 1 === items.nodeType &&\n 'string' === typeof items.nodeName\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 ('object' === typeof options || 'undefined' === typeof options) {\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 ('undefined' !== typeof ret) {\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 ('undefined' !== typeof $) {\n const $Plugin = function (...args) {\n Array.prototype.unshift.call(args, this);\n const res = jarallax.apply(global, args);\n return 'object' !== typeof res ? 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","navigator","isMobile","test","userAgent","$deviceHelper","getDeviceHeight","body","createElement","style","cssText","appendChild","clientHeight","innerHeight","documentElement","wndH","updateWndVars","domReady","jarallaxList","getParents","elem","parents","parentElement","nodeType","push","updateParallax","length","forEach","data","k","instance","oldData","clientRect","$item","getBoundingClientRect","newData","width","height","top","bottom","wndW","innerWidth","isResized","isScrolled","onResize","onScroll","requestAnimationFrame","instanceID","Jarallax","constructor","item","userOptions","defaults","type","speed","imgSrc","imgElement","imgSize","imgPosition","imgRepeat","keepImg","elementInViewport","zIndex","disableParallax","disableVideo","videoSrc","videoStartTime","videoEndTime","videoVolume","videoLoop","videoPlayOnlyVisible","videoLazyLoading","onInit","onDestroy","onCoverImage","dataOptions","dataset","pureDataOptions","Object","keys","key","loweCaseOption","substr","toLowerCase","options","extend","pureOptions","Math","min","max","parseFloat","RegExp","disableParallaxRegexp","disableVideoRegexp","elementInVP","Element","image","src","$container","useImgTag","position","initImg","canInitParallax","init","css","el","styles","getComputedStyle","getPropertyValue","out","args","i","getWindowData","clientWidth","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","addToParallaxList","removeFromParallaxList","splice","destroy","originalStylesTag","removeAttribute","originalStylesImgTag","removeChild","jarallax","clipContainer","coverImage","rect","contH","isScroll","scrollDist","resultH","resultMT","abs","parallaxScrollDistance","marginTop","container","isVisible","isElementInViewport","force","contT","viewportRect","right","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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"}