{ "version": 3, "sources": ["../../../../Vettvangur.Frontend/src/scripts/scripts.ts"], "sourcesContent": ["function preloadTimeout() {\n setTimeout(() => {\n document.querySelector('.body').classList.add('loaded')\n }, 100)\n setTimeout(() => {\n document.querySelector('.body').classList.add('preload--hidden')\n document.querySelector('.body').classList.remove('preload--transitions')\n }, 400)\n}\n\nconst moduleMap: Record Promise> = {\n '.form': () => import('components/form'),\n '.header': () => import('sections/header'),\n '.mobile-navigation': () => import('components/navigation/mobile-navigation'),\n '.main-navigation': () => import('components/navigation/main-navigation'),\n '.subnav': () => import('components/navigation/subnavigation'),\n '.accordion': () => import('components/accordion'),\n '.read-more': () => import('components/read-more'),\n '.sailing-schedule': () => import('components/sailing-schedule/sailing-schedule'),\n '.sailing-schedule__p2p-list': () => import('components/sailing-schedule/sailing-schedule-p2p'),\n '.ar-vessel-block__list': () => import('components/vessel'),\n '.sailing-schedule-block': () => import('components/sailing-schedule/sailing-schedule-block'),\n '.dpicker': () => import('components/datepicker'),\n '.moving-calculator': () => import('sections/moving-calculator'),\n '.amount-control': () => import('components/amount-control'),\n '.fake-select': () => import('components/fake-select'),\n '.articles': () => import('components/article-category/article-sorting'),\n '.youtube-block': () => import('blocks/youtube-block'),\n '.search': () => import('sections/search'),\n '.sidebar-select': () => import('components/sidebar/sidebar-select'),\n '.history-block': () => import('components/sidebar/history-nav'),\n '.notifications': () => import('components/notifications'),\n '.office-overview, .office': () => import('components/office/office-overview'),\n '.office': () => import('components/office/office-overview'),\n '.rate-request': () => import('sections/rate-request/rate-request'),\n '.stream': () => import('components/stream'),\n '.image-gallery-block__swiper': () => import('blocks/image-gallery-block'),\n '.js-p-target': () => import('components/priority-nav'),\n '.financial-block': () => import('blocks/financial-statement-block'),\n '.contact-hint-form': () => import('components/contact-hint-form'),\n '.ar-nav': () => import('components/ar-nav'),\n '.whistleblower-report': () => import('components/whistleblower-report'),\n '.calendar-month': () => import('components/modal/modal-calendar'),\n}\n\nfunction scripts() {\n // import('focus-visible').then((module) => module())\n\n import('utility/prefetch').then((module) => module.default.init())\n import('components/modal/modal').then((module) => module.default.init())\n\n import('libs/clickoutside').then(async (module) => {\n const mobileNavigation = (await import('components/navigation/mobile-navigation')).default\n const accordionComponent = (await import('components/accordion')).default\n const accordion = document.querySelectorAll('.accordion')\n\n return module.default(() => {\n if (accordion) {\n accordionComponent.reset(new Event('reset'))\n }\n if (mobileNavigation.el.root.classList.contains('open')) {\n mobileNavigation.reset()\n }\n })\n })\n\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n const target = entry.target as HTMLElement\n // Iterate through keys of moduleMap to find matching selectors\n const matchedSelector = Object.keys(moduleMap).find((key) => {\n if (key.includes(',')) {\n // If key contains commas, split and check each part\n return key.split(',').some((subSelector) => target.matches(subSelector.trim()))\n }\n // Regular match for single selectors\n return target.matches(key)\n })\n\n if (!matchedSelector) {\n return\n }\n\n moduleMap[matchedSelector]()\n .then((module) => {\n if (module.default && typeof module.default.init === 'function') {\n module.default.init(target)\n }\n observer.unobserve(target)\n })\n .catch((error) => console.error(`Error loading module for selector ${matchedSelector}:`, error))\n }\n })\n })\n\n Object.keys(moduleMap).forEach((selector) => {\n if (selector.includes(',')) {\n // Handle multiple selectors split by commas\n selector.split(',').forEach((subSelector) => {\n document.querySelectorAll(subSelector.trim()).forEach((element) => {\n observer.observe(element)\n })\n })\n return\n }\n\n document.querySelectorAll(selector).forEach((element) => {\n observer.observe(element)\n })\n })\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n preloadTimeout()\n\n if (document.querySelectorAll('[data-scroll]')) {\n import('components/scrollers').then((module) => module.default.init())\n }\n})\n\nwindow.onload = scripts\n\ndocument.body.addEventListener('htmx:afterSettle', () => {})\n\n// HTMX cleanup event.\n// document.body.addEventListener('htmx:beforeSwap', (e: CustomEvent) => {\n// // Remove 'button--loading' class from all buttons\n// document.querySelectorAll('.button--loading').forEach((button) => button.classList.remove('button--loading'))\n\n// const target = e.detail.target\n\n// // Skip scrolling if the target has specific classes\n// if (\n// (target?.classList &&\n// ['product-calendar__pickup', 'product-calendar'].some((cls) => target.classList.contains(cls))) ||\n// e.detail.pathInfo.requestPaths.contains('n')\n// ) {\n// return\n// }\n\n// window.scrollTo({ top: 0, behavior: 'smooth' })\n// })\n"], "mappings": "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", "names": ["preloadTimeout", "moduleMap", "scripts", "module", "mobileNavigation", "accordionComponent", "accordion", "observer", "entries", "entry", "target", "matchedSelector", "key", "subSelector", "error", "selector", "element"] }