{"version":3,"sources":["_global.js"],"names":["document","addEventListener","_global","initBlock","getOpacity","el","elHeight","offsetHeight","elBottomDistanceFromTop","getBoundingClientRect","top","elScrollPercentageOpacity","style","setProperty","debounce","func","wait","timeout","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","this","isElementVisible","rect","left","bottom","window","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","viewport","matchMedia","matches","Spinner","showFor","container","insertAdjacentHTML","hide","querySelectorAll","forEach","x","remove","renderPartial","content","showSpinner","clearArea","undefined","querySelector","innerHTML","Promise","resolve","then","loadedContent","appendChild","ControlBinders","run","err","reject","componentsToBind","hasRunAgainstDocument","runWrapper","scope","wrapper","isArray","item","selector","elm","bind","register","binder","push","registerEvent","eventType","callback","processor","Run"],"mappings":"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","sourcesContent":["document.addEventListener('DOMContentLoaded', () => {\r\n _global.initBlock();\r\n});\r\n\r\nconst _global = (() => {\r\n\r\n const initBlock = () => {\r\n \r\n };\r\n const getOpacity = (el) => {\r\n const elHeight = el.offsetHeight;\r\n const elPosition = el.getBoundingClientRect().top;\r\n const elBottomDistanceFromTop = elHeight + elPosition;\r\n if ((elBottomDistanceFromTop < elHeight) && elBottomDistanceFromTop >= 0) {\r\n const elScrollPercentage = (100 * elBottomDistanceFromTop) / elHeight;\r\n const elScrollPercentageOpacity = elScrollPercentage / 100;\r\n el.style.setProperty('--opacity', elScrollPercentageOpacity);\r\n }\r\n }\r\n\r\n return {initBlock, getOpacity};\r\n})();\r\n\r\n\r\nfunction debounce(func, wait) {\r\n let timeout;\r\n return function(...args) {\r\n clearTimeout(timeout);\r\n timeout = setTimeout(() => func.apply(this, args), wait);\r\n };\r\n}\r\n\r\nfunction isElementVisible(el) {\r\n if (!el) return false;\r\n const rect = el.getBoundingClientRect();\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n );\r\n}\r\n\r\n\r\nfunction viewport() {\r\n let viewport = 0;\r\n\r\n if (window.matchMedia('(min-width: 1920px)').matches) {\r\n viewport = 4;\r\n } else if (window.matchMedia('(min-width: 1200px)').matches) {\r\n viewport = 3;\r\n } else if (window.matchMedia('(min-width: 992px)').matches) {\r\n viewport = 2;\r\n } else if (window.matchMedia('(min-width: 768px)').matches) {\r\n viewport = 1;\r\n }\r\n return viewport;\r\n}\r\n\r\n\r\nconst Spinner = (() => {\r\n const template = `\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
`;\r\n\r\n const removeAll = () => {\r\n document.querySelectorAll(\".loading\").forEach(x => x.remove());\r\n }\r\n\r\n const showFor = (container) => {\r\n container.insertAdjacentHTML(\"afterbegin\", template);\r\n };\r\n\r\n const hide = () => removeAll();\r\n\r\n return {\r\n showFor,\r\n hide\r\n };\r\n})();\r\n\r\n\r\nconst renderPartial = (container, content, {showSpinner = true, clearArea = true} = {}) => {\r\n container = typeof container === \"string\" ? document.querySelector(container) : container;\r\n\r\n if (!container) {\r\n return Promise.reject(\"Container does not exist\");\r\n }\r\n\r\n if (clearArea) {\r\n container.innerHTML = \"\";\r\n }\r\n\r\n if (showSpinner) {\r\n Spinner.showFor(container);\r\n }\r\n\r\n return Promise.resolve(content)\r\n .then(loadedContent => {\r\n if (showSpinner) {\r\n Spinner.hide();\r\n }\r\n\r\n if (typeof loadedContent === \"string\") {\r\n container.innerHTML = loadedContent;\r\n } else {\r\n container.innerHTML = \"\";\r\n container.appendChild(loadedContent);\r\n }\r\n\r\n ControlBinders.run(container);\r\n\r\n return container;\r\n },\r\n (err) => {\r\n if (showSpinner) {\r\n Spinner.hide();\r\n }\r\n\r\n return Promise.reject(err);\r\n });\r\n}\r\n\r\n\r\nconst ControlBinders = (() => {\r\n const componentsToBind = [];\r\n let hasRunAgainstDocument = false;\r\n\r\n const runWrapper = (scope, wrapper) => {\r\n if (Array.isArray(scope)) {\r\n scope.forEach(item => {\r\n item.querySelectorAll(wrapper.selector).forEach(elm => wrapper.bind(elm));\r\n });\r\n } else {\r\n scope.querySelectorAll(wrapper.selector).forEach(elm => wrapper.bind(elm));\r\n }\r\n }\r\n\r\n const register = (selector, binder) => {\r\n const wrapper = {selector: selector, bind: binder};\r\n componentsToBind.push(wrapper);\r\n\r\n if (hasRunAgainstDocument) {\r\n runWrapper(document, wrapper);\r\n }\r\n }\r\n\r\n const registerEvent = (selector, eventType, callback) => {\r\n register(selector, elm => elm.addEventListener(eventType, callback));\r\n }\r\n\r\n const run = (scope = document) => {\r\n if (typeof processor === \"object\") {\r\n processor.Run(); //this is lazy image\r\n }\r\n\r\n componentsToBind.forEach(wrapper => runWrapper(scope, wrapper));\r\n\r\n if (scope === document) {\r\n hasRunAgainstDocument = true;\r\n }\r\n }\r\n\r\n return {\r\n register,\r\n registerEvent,\r\n run\r\n };\r\n})();\r\n\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n ControlBinders.run();\r\n});"],"file":"_global-min.js"}