{"version":3,"file":"main.js","sources":["../../scripts/functions/searchPageFunctions.ts","../../scripts/main.ts"],"sourcesContent":["export function addSearchUrlParameter(\r\n name: string,\r\n value: never,\r\n checked: boolean\r\n) {\r\n const searchParams = new URLSearchParams(window.location.search)\r\n\r\n let params: string[] = []\r\n\r\n if (searchParams.has('showAll')) {\r\n searchParams.set('showAll', value)\r\n }\r\n\r\n if (searchParams.has('pageNumber')) {\r\n searchParams.set('pageNumber', '1')\r\n }\r\n\r\n if (searchParams.has(name)) {\r\n params = searchParams.get(name)?.split(',') || []\r\n }\r\n\r\n if (checked) {\r\n if (!params.includes(value)) {\r\n params.push(value)\r\n }\r\n } else {\r\n params = params.filter((item) => item !== value)\r\n }\r\n if (params.length > 0) {\r\n searchParams.set(name, params.join(','))\r\n } else {\r\n searchParams.delete(name)\r\n }\r\n window.location.search = searchParams.toString()\r\n}\r\n\r\nexport function onSearchSubmit(event) {\r\n event.preventDefault()\r\n const searchText = event.target[0].value\r\n const params = new URLSearchParams()\r\n\r\n if (searchText) {\r\n params.set('q', searchText)\r\n }\r\n window.location.search = params.toString()\r\n}\r\n\r\nexport function setParam(param: string, value: string) {\r\n const params = new URLSearchParams(window.location.search)\r\n params.set(param, value)\r\n window.location.search = params.toString()\r\n}\r\n\r\nexport function resetParams() {\r\n const params = new URLSearchParams(window.location.search)\r\n params.forEach((value) => params.delete(value))\r\n}\r\n","import '../styles/main.css'\r\nimport './apps'\r\nimport {\r\n addSearchUrlParameter,\r\n onSearchSubmit,\r\n setParam,\r\n} from './functions/searchPageFunctions'\r\n\r\nwindow.addEventListener('DOMContentLoaded', () => {\r\n window.addSearchUrlParameter = addSearchUrlParameter\r\n window.onSearchSubmit = onSearchSubmit\r\n window.setParam = setParam\r\n let offset = 0\r\n\r\n const screenSize = window.innerWidth\r\n if (screenSize < 1440) {\r\n offset = 140\r\n } else {\r\n offset = 60\r\n }\r\n\r\n const inPageNavigation = document.getElementById('in-page-navigation')\r\n const inPageNavigationHight =\r\n inPageNavigation?.getBoundingClientRect().height || 0\r\n let offsetAnchor = inPageNavigationHight\r\n if (screenSize < 1440) {\r\n offsetAnchor = inPageNavigationHight + 80\r\n }\r\n\r\n const anchors = document.querySelectorAll('a[data-anchor]')\r\n let anchorCount = 0\r\n\r\n anchors.forEach((anchor) => {\r\n anchor.addEventListener('click', function (event) {\r\n event.preventDefault()\r\n anchors.forEach(anchor => {\r\n anchor.classList.remove('active')\r\n });\r\n const id = anchor.getAttribute('href')?.substring(1)\r\n if (id) {\r\n const target = document.getElementById(id)\r\n if (target) {\r\n const top = target.offsetTop - offsetAnchor\r\n window.scrollTo({\r\n top: top,\r\n behavior: 'smooth',\r\n })\r\n }\r\n }\r\n })\r\n })\r\n\r\n window.addEventListener('scroll', () => {\r\n const inPageNavigation = document.getElementById('in-page-navigation')\r\n const footer = document.getElementById('footer')\r\n const footerRect = footer?.getBoundingClientRect()\r\n\r\n\r\n if (inPageNavigation) {\r\n anchors.forEach((anchor, index) => {\r\n const id = anchor.getAttribute('data-anchor')\r\n\r\n if (id) {\r\n const target = document.getElementById(id)\r\n\r\n if (target) {\r\n const parent = target.parentNode as HTMLDivElement\r\n if (parent) {\r\n const uncle = parent.nextElementSibling\r\n const screenHeight = window.innerHeight\r\n if (uncle) {\r\n const uncleRect = uncle.getBoundingClientRect()\r\n const rect = target.getBoundingClientRect()\r\n\r\n if (rect.top <= offset * 2 && rect.top >= offset / 2) {\r\n if(anchorCount < 1) {\r\n anchor.classList.add('active')\r\n anchorCount++\r\n }\r\n inPageNavigation.scrollLeft =\r\n (anchor as HTMLElement).offsetLeft - 16\r\n }\r\n\r\n if (\r\n index === anchors.length - 1 &&\r\n rect.top <= window.innerHeight / 2 &&\r\n footerRect?.top < window.innerHeight\r\n ) {\r\n if(anchorCount < 1) {\r\n anchor.classList.add('active')\r\n anchorCount++\r\n }\r\n inPageNavigation.scrollLeft =\r\n (anchor as HTMLElement).offsetLeft - 16\r\n }\r\n\r\n if (\r\n index === anchors.length - 1 &&\r\n rect.top > footerRect?.top - window.innerHeight &&\r\n footerRect?.top > window.innerHeight\r\n ) {\r\n if(anchor.classList.contains('active')) {\r\n anchor.classList.remove('active')\r\n anchorCount--\r\n }\r\n \r\n const anchorElement = anchor as HTMLElement\r\n anchorElement.blur()\r\n }\r\n\r\n if (\r\n uncleRect.bottom < offset * 2 ||\r\n uncleRect.top > screenHeight\r\n ) {\r\n if(anchor.classList.contains('active')) {\r\n anchor.classList.remove('active')\r\n anchorCount--\r\n }\r\n const anchorElement = anchor as HTMLElement\r\n anchorElement.blur()\r\n }\r\n }\r\n }\r\n }\r\n }\r\n })\r\n }\r\n })\r\n\r\n const debounce = (fn, delay) => {\r\n let timeoutId = null\r\n return () => {\r\n clearTimeout(timeoutId)\r\n timeoutId = setTimeout(fn, delay)\r\n }\r\n }\r\n\r\n const throttle = (fn, delay) => {\r\n let waiting = false\r\n return () => {\r\n if (!waiting) {\r\n fn()\r\n waiting = true\r\n setTimeout(() => (waiting = false), delay)\r\n }\r\n }\r\n }\r\n\r\n const reset = (element) => {\r\n if (element.className !== element.dataset.taosClass) {\r\n element.className = element.dataset.taosClass\r\n }\r\n }\r\n const before = (element) =>\r\n (element.className = element.className.replaceAll('taos:', ''))\r\n\r\n const initElement = (element) => {\r\n if (!element.className.includes('taos-init')) {\r\n element.dataset.taosClass = element.className + ' taos-init'\r\n reset(element)\r\n }\r\n element.className += ' !duration-[0ms] !delay-[0ms]'\r\n\r\n before(element)\r\n\r\n return {\r\n element,\r\n once: getComputedStyle(element)['animation-iteration-count'] === '1',\r\n offset: parseInt(element.dataset.taosOffset || 0),\r\n }\r\n }\r\n\r\n let elements = []\r\n let innerWidth = window.innerWidth\r\n let scrollY = window.scrollY\r\n\r\n const refreshTriggers = throttle(() => {\r\n elements.forEach((el) => {\r\n let trigger =\r\n el.element.getBoundingClientRect().top -\r\n window.innerHeight +\r\n el.offset +\r\n scrollY\r\n\r\n if (el.element) {\r\n const elementCont = el.element.closest('.animation-trigger')\r\n if (elementCont && elementCont !== el.element) {\r\n const block = elements.find((elem) => elem.element === elementCont)\r\n if (block && block.trigger) {\r\n trigger = block.trigger\r\n }\r\n }\r\n }\r\n\r\n return (el.trigger = trigger)\r\n })\r\n }, 0)\r\n\r\n const refresh = () => {\r\n elements = []\r\n document\r\n .querySelectorAll('[class*=\"taos\"]')\r\n .forEach((el) => elements.push(initElement(el)))\r\n refreshTriggers()\r\n requestAnimationFrame(handleScroll)\r\n }\r\n\r\n window.animationRefresh = () => {\r\n document.querySelectorAll('[class*=\"taos\"]').forEach((el) => {\r\n if (!el.className.includes('taos-init')) {\r\n elements.push(initElement(el))\r\n }\r\n })\r\n refreshTriggers()\r\n requestAnimationFrame(handleScroll)\r\n window.scroll()\r\n }\r\n\r\n const handleScroll = () => {\r\n scrollY = window.scrollY\r\n elements.forEach(({ element, trigger, once }) => {\r\n if (trigger < scrollY) {\r\n reset(element)\r\n } else if (!once && element.className?.includes('taos:')) {\r\n before(element)\r\n }\r\n })\r\n refreshTriggers()\r\n }\r\n\r\n const handleResize = () => {\r\n if (innerWidth !== window.innerWidth) {\r\n innerWidth = window.innerWidth\r\n refresh()\r\n }\r\n }\r\n\r\n refresh()\r\n addEventListener('scroll', throttle(handleScroll, 32))\r\n addEventListener('orientationchange', refresh)\r\n addEventListener('resize', debounce(handleResize, 250))\r\n\r\n const observer = new MutationObserver((mutations) => {\r\n mutations.forEach(({ target }) => {\r\n if (\r\n target.className &&\r\n !target.className?.includes('taos-init') &&\r\n target.className?.includes('taos:')\r\n ) {\r\n elements.push(initElement(target))\r\n }\r\n })\r\n })\r\n observer.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n subtree: true,\r\n })\r\n})\r\n"],"names":["addSearchUrlParameter","name","value","checked","searchParams","params","_a","item","onSearchSubmit","event","searchText","setParam","param","offset","screenSize","inPageNavigation","inPageNavigationHight","offsetAnchor","anchors","anchorCount","anchor","id","target","top","footer","footerRect","index","parent","uncle","screenHeight","uncleRect","rect","debounce","fn","delay","timeoutId","throttle","waiting","reset","element","before","initElement","elements","innerWidth","scrollY","refreshTriggers","el","trigger","elementCont","block","elem","refresh","handleScroll","once","handleResize","mutations","_b"],"mappings":"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"}