{"version":3,"sources":["webpack:///./cartridges/app_designholding_arclinea/cartridge/client/default/js/components/background-change/background-change.js","webpack:///./cartridges/app_designholding_arclinea/cartridge/client/default/js/components/background-change/index.js"],"names":["ELEMENT_TRIGGER_OFFSET_TOP","ELEMENT_TRIGGER_OFFSET_BOTTOM","WINDOW_TRIGGER_OFFSET","wrapper","document","querySelector","content","querySelectorAll","currentBackgroundEl","BackgroundChange","constructor","element","setBackground","RafThrottle","set","window","event","namespace","Math","random","toString","slice","Date","now","fn","bind","delay","classList","contains","add","elHeight","offsetHeight","elOffset","getBoundingClientRect","top","viewLine","documentElement","scrollTop","innerHeight","topEdge","bottomLine","backgroundColor","getAttribute","color","forEach","node","style","setProperty","remove","removeProperty"],"mappings":"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","file":"js/BackgroundScroll.js","sourcesContent":["import RafThrottle from '@utilities/raf-throttle';\n\nconst ELEMENT_TRIGGER_OFFSET_TOP = 0; // Offset position of the top edge of the element (0 - 1 out of element height)\nconst ELEMENT_TRIGGER_OFFSET_BOTTOM = 1; // Offset position of the bottom edge of the element (0 - 1 out of element height)\nconst WINDOW_TRIGGER_OFFSET = 0.7; // Offset position of the window trigger line (0 - 1 out of window height)\nconst wrapper = document.querySelector('body');\nconst content = document.querySelectorAll('[js-hook-background-component]');\nlet currentBackgroundEl = null;\n\nclass BackgroundChange {\n constructor(element) {\n this.element = element;\n this.setBackground();\n RafThrottle.set([\n {\n element: window,\n event: 'scroll',\n namespace: `BackgroundScroll${Math.random().toString(36).slice(10) + Date.now()}`,\n fn: this.setBackground.bind(this),\n delay: 5\n }\n ]);\n if (!wrapper.classList.contains('body-background-transition')) {\n wrapper.classList.add('body-background-transition');\n }\n }\n\n setBackground() {\n const elHeight = this.element.offsetHeight;\n const elOffset = this.element.getBoundingClientRect().top;\n const viewLine = document.documentElement.scrollTop + (window.innerHeight * WINDOW_TRIGGER_OFFSET); // The window trigger line\n \n // Trigger when the window view goes below this point\n const topEdge = (elOffset + document.documentElement.scrollTop) + (elHeight * ELEMENT_TRIGGER_OFFSET_TOP);\n \n // Trigger when the window view goes above this point\n const bottomLine = (elOffset + document.documentElement.scrollTop) + (elHeight * ELEMENT_TRIGGER_OFFSET_BOTTOM);\n \n // Triggered, scrolled inside new element\n if (viewLine > topEdge && viewLine < bottomLine) {\n if (currentBackgroundEl !== this.element) {\n currentBackgroundEl = this.element;\n const backgroundColor = this.element.getAttribute('js-hook-background-change');\n const color = this.element.getAttribute('js-hook-text-change');\n\n content.forEach(node => node.classList.add('background-updated'));\n wrapper.style.setProperty('--background-update-color', color);\n \n if (backgroundColor) {\n wrapper.style.backgroundColor = backgroundColor;\n }\n }\n } else if (currentBackgroundEl === this.element) {\n // Reset when leaving element\n content.forEach(node => node.classList.remove('background-updated'));\n wrapper.style.backgroundColor = '';\n wrapper.style.removeProperty('--background-update-color');\n currentBackgroundEl = null;\n }\n }\n}\n\nexport default BackgroundChange;\n","import BackgroundChange from './background-change';\n\nexport default BackgroundChange;\n"],"sourceRoot":""}