{"version":3,"file":"jarallax-element.min.js","sources":["../src/utils/ready.js","../src/utils/global.js","../src/deprecated/ext-element.js","../src/deprecated/ext-element.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","import global from '../utils/global';\n\nfunction jarallaxElement(jarallax = global.jarallax) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Jarallax Element extension is DEPRECATED, please, avoid using it. We recommend you look at something like `lax.js` library . It is much more powerful and has a less code (in cases when you don't want to add parallax backgrounds).\"\n );\n\n if (typeof jarallax === 'undefined') {\n return;\n }\n\n const Jarallax = jarallax.constructor;\n\n // redefine default methods\n [\n 'initImg',\n 'canInitParallax',\n 'init',\n 'destroy',\n 'coverImage',\n 'isVisible',\n 'onScroll',\n 'onResize',\n ].forEach((key) => {\n const def = Jarallax.prototype[key];\n Jarallax.prototype[key] = function (...args) {\n const self = this;\n\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\n self.pureOptions.threshold = self.$item.getAttribute('data-threshold') || '';\n\n switch (key) {\n case 'init': {\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\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\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\n return true;\n }\n case 'onResize': {\n const defTransform = self.css(self.$item, 'transform');\n self.css(self.$item, { transform: '' });\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, { transform: defTransform });\n break;\n }\n case 'onScroll': {\n const wnd = self.getWindowData();\n const centerPercent =\n (wnd.y + wnd.height / 2 - self.itemData.y - self.itemData.height / 2) /\n (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, { transform: `translate3d(${mx}px,${my}px,0)` });\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\nexport default jarallaxElement;\n","import domReady from '../utils/ready';\nimport global from '../utils/global';\n\nimport jarallaxElement from './ext-element';\n\njarallaxElement();\n\n// data-jarallax-element initialization\ndomReady(() => {\n if (typeof global.jarallax !== 'undefined') {\n global.jarallax(document.querySelectorAll('[data-jarallax-element]'));\n }\n});\n\nexport default jarallaxElement;\n"],"names":["g","f","exports","module","define","amd","globalThis","self","jarallaxElement","this","win","window","global","callback","jarallax","console","warn","Jarallax","constructor","forEach","key","def","prototype","args","$item","getAttribute","options","type","pureOptions","speed","apply","threshold","speedArr","split","speedY","parseFloat","speedX","thresholdArr","thresholdY","thresholdX","originalStylesTag","setAttribute","defTransform","css","transform","rect","getBoundingClientRect","itemData","width","height","y","top","getWindowData","x","left","wnd","centerPercent","moveY","moveX","my","mx","document","querySelectorAll","readyState","addEventListener","capture","once","passive"],"mappings":"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"}