{"version":3,"file":"main.3c2fff427ff030be260a.js","mappings":"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","sources":["webpack://norra-web/./Dev/js/components/_onpage-nav.js","webpack://norra-web/./Dev/js/components/mail-links.js","webpack://norra-web/./Dev/js/index.skogsskolan.js","webpack://norra-web/./Dev/scss/skogsskolan.scss?3961"],"sourcesContent":["export class OnPageNav {\r\n currentLink = null\r\n constructor () {\r\n if (!('IntersectionObserver' in window)) {\r\n return\r\n }\r\n\r\n const nav = document.querySelector('.onpage-nav .btns')\r\n\r\n if (!nav) {\r\n return\r\n }\r\n\r\n const modules = document.querySelectorAll('.section[data-anchor=true]')\r\n\r\n if (!(modules && modules.length)) {\r\n return\r\n }\r\n // get the sticky element\r\n // const stickyElm = document.querySelector('.onpage-nav')\r\n\r\n // const stickyObserver = new IntersectionObserver(\r\n // (entries) => {\r\n // const entry = entries[0]\r\n // entry.target.dataset.sticky = (!entry.isIntersecting)\r\n // },\r\n // { threshold: 1, rootMargin: '-80px 0px 0px 0px' }\r\n // )\r\n\r\n // stickyObserver.observe(stickyElm)\r\n\r\n const observer = new IntersectionObserver((entries) => {\r\n const entry = entries[0]\r\n\r\n const link = document.querySelector(`.onpage-nav a[href='#${entry.target.id}']`)\r\n\r\n if (link) {\r\n if (entry.isIntersecting) {\r\n if (this.currentLink && this.currentLink !== link) {\r\n this.currentLink.dataset.active = false\r\n }\r\n link.dataset.active = true\r\n this.currentLink = link\r\n } else {\r\n link.dataset.active = false\r\n }\r\n } else if (this.currentLink) {\r\n this.currentLink.dataset.active = false\r\n }\r\n }, { root: null, threshold: 0, rootMargin: '-170px 0px -50% 0px' })\r\n\r\n modules.forEach(el => {\r\n observer.observe(el)\r\n })\r\n }\r\n}\r\n","export const mailLinks = () => {\r\n const els = document.querySelectorAll('.mail-link')\r\n\r\n els.forEach(el => {\r\n el.addEventListener('click', e => {\r\n window.location = `mailto:${decode(e.currentTarget.dataset.value)}`\r\n })\r\n })\r\n}\r\n\r\nconst decode = (s) => {\r\n const s1 = s.replaceAll(':', '@').replaceAll('|', '.')\r\n\r\n return decodeROT13(s1)\r\n}\r\n\r\n// const encode = (s) => {\r\n// const s1 = s.replaceAll('@', ':').replaceAll('.', '|')\r\n// return decodeROT13(s1)\r\n// }\r\n\r\nconst decodeROT13 = (s) => {\r\n return s.replace(/[a-zA-Z]/g, function (c) {\r\n return String.fromCharCode((c <= 'Z' ? 90 : 122) >= (c = c.charCodeAt(0) + 13) ? c : c - 26)\r\n })\r\n}\r\n","/* eslint-disable no-new */\r\n/* eslint-disable vue/one-component-per-file */\r\nimport '../scss/skogsskolan.scss'\r\nimport { createApp, defineAsyncComponent } from 'vue'\r\nimport { OnPageNav } from './components/_onpage-nav.js'\r\nimport { mailLinks } from './components/mail-links.js'\r\nimport 'bootstrap'\r\n\r\nconst pageInit = () => {\r\n mailLinks()\r\n if (document.getElementById('mobilenav')) {\r\n const NavigationComp = defineAsyncComponent(() => import(/* webpackChunkName: \"navigation\" */ './vue/components/_navigation.vue'))\r\n const app = createApp({\r\n components: {\r\n 'v-comp': NavigationComp\r\n }\r\n })\r\n app.mount('#mobilenav')\r\n }\r\n\r\n const coursemodules = document.querySelectorAll('.course-module')\r\n\r\n if (coursemodules?.length) {\r\n const CourseModule = defineAsyncComponent(() => import(/* webpackChunkName: \"coursemodule\" */ './vue/components/course/_coursemodule.vue'))\r\n\r\n coursemodules.forEach(el => {\r\n const app = createApp({\r\n components: {\r\n 'v-comp': CourseModule\r\n }\r\n })\r\n app.mount(`#${el.id}`)\r\n })\r\n }\r\n\r\n if (document.querySelector('.splide--events')) {\r\n import(/* webpackChunkName: \"event-slider\" */ './components/_event-slider').then(module => {\r\n module.eventSlider()\r\n })\r\n }\r\n const videos = document.querySelectorAll('.video')\r\n\r\n if (videos?.length) {\r\n const Video = defineAsyncComponent(() => import(/* webpackChunkName: \"video\" */ './vue/components/video/_video.vue'))\r\n\r\n videos.forEach(el => {\r\n const app = createApp({\r\n components: {\r\n 'v-comp': Video\r\n }\r\n })\r\n app.mount(`#${el.id}`)\r\n })\r\n }\r\n\r\n const eventsCarousels = document.querySelectorAll('.events-carousel')\r\n\r\n if (eventsCarousels?.length) {\r\n const EventsCarousel = defineAsyncComponent(() => import(/* webpackChunkName: \"eventscarousel\" */ './vue/components/carousels/_eventscarousel.vue'))\r\n\r\n eventsCarousels.forEach(el => {\r\n const app = createApp({\r\n components: {\r\n 'v-comp': EventsCarousel\r\n }\r\n })\r\n app.mount(`#${el.id}`)\r\n })\r\n }\r\n const accordions = document.querySelectorAll('.accordion')\r\n\r\n if (accordions?.length) {\r\n const Accordion = defineAsyncComponent(() => import(/* webpackChunkName: \"faqlist\" */ './vue/components/faq/_faqlist.vue'))\r\n\r\n accordions.forEach(el => {\r\n const app = createApp({\r\n components: {\r\n 'v-comp': Accordion\r\n }\r\n })\r\n app.mount(`#${el.id}`)\r\n })\r\n }\r\n\r\n const documntLibrarys = document.querySelectorAll('.document-library')\r\n\r\n if (documntLibrarys?.length) {\r\n const DocumentLibrary = defineAsyncComponent(() => import(/* webpackChunkName: \"documentlibrary\" */ './vue/components/documentlibrary/_documentlibrary.vue'))\r\n\r\n documntLibrarys.forEach(el => {\r\n const app = createApp({\r\n components: {\r\n 'v-comp': DocumentLibrary\r\n }\r\n })\r\n app.mount(`#${el.id}`)\r\n })\r\n }\r\n\r\n new OnPageNav()\r\n}\r\n\r\nconst pageLoad = () => {\r\n if (document.getElementById('courseListing')) {\r\n const CourseListing = defineAsyncComponent(() => import(/* webpackChunkName: \"courseListing\" */ './vue/components/course/_courselisting.vue'))\r\n const app = createApp({\r\n components: {\r\n 'v-comp': CourseListing\r\n }\r\n })\r\n app.mount('#courseListing')\r\n }\r\n\r\n if (document.getElementById('imageLibrary')) {\r\n const ImageLibrary = defineAsyncComponent(() => import(/* webpackChunkName: \"imagelibrary\" */ './vue/components/imagelibrary/_imagelibrary.vue'))\r\n const app = createApp({\r\n components: {\r\n 'v-comp': ImageLibrary\r\n }\r\n })\r\n app.mount('#imageLibrary')\r\n }\r\n\r\n if (document.getElementById('faqList')) {\r\n const FaqList = defineAsyncComponent(() => import(/* webpackChunkName: \"faqlist\" */ './vue/components/faq/_faqlist.vue'))\r\n const app = createApp({\r\n components: {\r\n 'v-comp': FaqList\r\n }\r\n })\r\n app.mount('#faqList')\r\n }\r\n}\r\n\r\npageInit()\r\nwindow.addEventListener('load', pageLoad)\r\n","// extracted by mini-css-extract-plugin\nexport {};"],"names":["OnPageNav","currentLink","constructor","window","nav","document","querySelector","modules","querySelectorAll","length","observer","IntersectionObserver","entries","entry","link","target","id","isIntersecting","dataset","active","root","threshold","rootMargin","forEach","el","observe","mailLinks","els","addEventListener","e","location","decode","currentTarget","value","s","s1","replaceAll","decodeROT13","replace","c","String","fromCharCode","charCodeAt","createApp","defineAsyncComponent","pageInit","getElementById","NavigationComp","app","components","mount","coursemodules","CourseModule","then","module","eventSlider","videos","Video","eventsCarousels","EventsCarousel","accordions","Accordion","documntLibrarys","DocumentLibrary","pageLoad","CourseListing","ImageLibrary","FaqList"],"sourceRoot":""}