{ "version": 3, "sources": ["../../Scripting/ImageSlider.ts", "../../Scripting/Newsletter.ts", "../../Scripting/ImageLoader.ts", "../../Scripting/HandleNoWebP.ts", "../../Scripting/ParallaxHandler.ts", "../../Scripting/NavVisibility.ts", "../../Scripting/ActionPanel.ts", "../../Scripting/application.ts"], "sourcesContent": ["\uFEFFexport class ImageSlider {\r\n\r\n private images: NodeListOf = null;\r\n private activeImage: HTMLImageElement;\r\n private navigation: HTMLElement;\r\n constructor() {\r\n\r\n if (document.querySelector('imageslider img') == null)\r\n return;\r\n\r\n this.images = document.querySelectorAll('imageslider img');\r\n this.navigation = document.querySelector('imageslider navigation');\r\n\r\n this.initialImageState();\r\n this.initEventHandlers();\r\n\r\n\r\n }\r\n private initEventHandlers() {\r\n document.querySelectorAll('[id^=\"nav\"]')\r\n .forEach(element => {\r\n element.addEventListener('click', event => {\r\n this.setActiveImage();\r\n })\r\n });\r\n\r\n window.addEventListener(\"scroll\", event => {\r\n let yPos = 0 - window.pageYOffset / 2;\r\n\r\n this.navigation.style.top = yPos * 3 + \"px\";\r\n this.getActiveImage().style.top = -yPos + \"px\";\r\n });\r\n }\r\n getActiveImage(): HTMLImageElement {\r\n return document.querySelector('imageslider img.img_in');\r\n }\r\n private initialImageState() {\r\n\r\n this.images[0].classList.add('img_in');\r\n this.addTextOverlayForImage(this.images[0]);\r\n }\r\n\r\n private setActiveImage() {\r\n\r\n //this is only set by initialImageState, so just remove it and let hte navigation handle the logic\r\n\r\n let nextImage = this.getActiveImage().nextElementSibling as HTMLImageElement;\r\n let active = this.getActiveImage();\r\n\r\n if (nextImage != null) {\r\n let imageText = nextImage.closest('imageslider').querySelector('imagetext');\r\n nextImage.classList.add('img_in');\r\n nextImage.classList.remove('img_out');\r\n\r\n this.addTextOverlayForImage(nextImage);\r\n active.classList.remove('img_in');\r\n active.classList.add('img_out');\r\n nextImage.classList.remove('hidden');\r\n (imageText as HTMLElement).dataset[\"image\"] = nextImage.id;\r\n }\r\n else {\r\n let imageText = this.images[0].closest('imageslider').querySelector('imagetext');\r\n\r\n this.images[0].classList.remove('img_out');\r\n this.images[0].classList.add('img_in');\r\n this.addTextOverlayForImage(this.images[0]);\r\n active.classList.remove('img_in');\r\n active.classList.add('img_out');\r\n (imageText as HTMLElement).dataset[\"image\"] = this.images[0].id;\r\n\r\n\r\n }\r\n\r\n\r\n }\r\n elementOverlay: HTMLElement;\r\n private addTextOverlayForImage(element: HTMLImageElement) {\r\n\r\n if (this.elementOverlay != null)\r\n this.elementOverlay.classList.add('hidden')\r\n\r\n let activeImageId = element.id;\r\n this.elementOverlay = element.closest('imageslider').querySelector(`[data-img='${activeImageId}']`)\r\n\r\n this.elementOverlay.classList.remove('hidden');\r\n }\r\n\r\n\r\n}\r\n", "\uFEFF\r\nexport class Newsletter {\r\n\r\n constructor() {\r\n this.initEventHandlers();\r\n\r\n //document.addEventListener('scroll', function (e) {\r\n // console.log(window.scrollY);\r\n //})\r\n\r\n }\r\n \r\n private initEventHandlers() {\r\n\r\n \r\n document.querySelector('#email')?.addEventListener(\"focus\", event => {\r\n let hint = (event.target as HTMLElement).parentElement.previousElementSibling;\r\n hint.classList.remove('out')\r\n hint.classList.add('in')\r\n\r\n });\r\n\r\n document.querySelector('.newsletter button')?.addEventListener(\"click\", event => {\r\n let element = document.getElementById('newsletter');\r\n let headerOffset = 220;\r\n let elementPosition = element.getBoundingClientRect().top;\r\n let offsetPosition = elementPosition + window.pageYOffset - headerOffset;\r\n\r\n window.scrollTo({\r\n top: offsetPosition,\r\n behavior: \"smooth\"\r\n });\r\n\r\n });\r\n\r\n document.querySelector('#email')?.addEventListener(\"blur\", event => {\r\n let hint = (event.target as HTMLElement).parentElement.previousElementSibling;\r\n hint.classList.remove('in')\r\n hint.classList.add('out')\r\n });\r\n document.querySelector(\".notification\")?.addEventListener(\"click\", event => {\r\n (event.target as HTMLElement).parentElement.style.display = \"none\";\r\n });\r\n document.querySelector('newsletterform button')?.addEventListener('click', async event => {\r\n\r\n //if (!this.IsValidEmail())\r\n // return;\r\n\r\n const response = await this.Post('/Index?handler=newsletter',\r\n {\r\n Email: (document.querySelector('#email') as HTMLInputElement).value\r\n });\r\n\r\n let html = await response.text()\r\n {\r\n if (response.ok) {\r\n let p = document.querySelector(\".notification\") as HTMLElement;\r\n p.style.display = \"flex\";\r\n // disableBodyScroll(p);\r\n\r\n //fbq('track', 'CompleteRegistration');\r\n }\r\n }\r\n });\r\n\r\n //document.querySelector('#email')?.addEventListener(\"blur\", event => {\r\n // this.IsValidEmail();\r\n //});\r\n\r\n }\r\n\r\n private IsValidEmail(): boolean {\r\n let input = document.getElementById('email') as HTMLInputElement;\r\n\r\n let regexpEmail = new RegExp('^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$');\r\n\r\n if (!regexpEmail.test(input.value) && input.value != \"\") {\r\n input.parentElement.nextElementSibling.querySelector('error').classList.add('show')\r\n return false;\r\n } else\r\n input.parentElement.nextElementSibling.querySelector('error').classList.remove('show')\r\n\r\n return true;\r\n }\r\n\r\n private async Post(request: RequestInfo, postData: Object): Promise {\r\n\r\n let reqToken = document.getElementsByName('__RequestVerificationToken')[0] as HTMLInputElement;\r\n\r\n return await fetch(request, {\r\n method: 'POST',\r\n credentials: 'include',\r\n headers: {'Content-Type': 'application/json;charset=UTF-8', 'X-ANTI-FORGERY-TOKEN': reqToken.value},\r\n body: JSON.stringify(postData)\r\n });\r\n }\r\n\r\n\r\n}\r\n", "\uFEFFdeclare global {\r\n interface DocumentEventMap {\r\n 'bgLoaded': CustomEvent;\r\n }\r\n}\r\n\r\nexport default class ImageLoader {\r\n\r\n //load background image by setting class as specified in bg-load\r\n //special handling for webp and nowebp -> implicit convention, it is required to use that specific naming to check for support\r\n //naming convention for webp or nowebp is same filename \r\n //other image can also be loaded as is, just specify the class name \r\n //only load when images are intersecting\r\n //check support for webp and set class accordingly\r\n supportForWebP = supportForWebP();\r\n constructor() {\r\n\r\n let options = {\r\n rootMargin: '50px',\r\n threshold: 0\r\n };\r\n\r\n let observer = new IntersectionObserver(this.handle, options);\r\n\r\n let images = document.querySelectorAll('section[bg-load]');\r\n\r\n images.forEach(img => observer.observe(img));\r\n\r\n\r\n }\r\n\r\n private handle(entries: IntersectionObserverEntry[], observer: any): void {\r\n\r\n \r\n entries.forEach(entry => {\r\n\r\n\r\n let bgLoad = entry.target.getAttribute(\"bg-load\");\r\n if (bgLoad != null && entry.isIntersecting) {\r\n if (entry.isIntersecting && bgLoad == \"webp\")\r\n if (supportForWebP)\r\n entry.target.classList.add(\"webp\");\r\n else\r\n entry.target.classList.add(\"nowebp\");\r\n else if (entry.isIntersecting) {\r\n entry.target.classList.add(bgLoad);\r\n }\r\n entry.target.removeAttribute(\"bg-load\")\r\n }\r\n\r\n let bgEvent = entry.target.getAttribute(\"bg-event-onload\");\r\n if (bgEvent != null)\r\n document.dispatchEvent(new CustomEvent(bgEvent, { detail: entry }));\r\n });\r\n }\r\n}\r\n\r\nexport function supportForWebP(): boolean {\r\n let element = document.createElement('canvas')\r\n\r\n if (!!(element.getContext && element.getContext('2d'))) {\r\n return element.toDataURL('image/webp').indexOf('data:image/webp') == 0;\r\n }\r\n return false;\r\n}", "\uFEFFimport { supportForWebP } from \"./ImageLoader\";\r\n\r\nexport default class HandleNoWebP {\r\n\r\n constructor() {\r\n\r\n if (!supportForWebP()) {\r\n let elements = document.querySelectorAll('[data-fallback]');\r\n\r\n elements.forEach(element => {\r\n {\r\n var img = (element as HTMLImageElement);\r\n\r\n img.src = img.src\r\n .replace('.webp', '.' + (img.dataset['fallback']))\r\n .replace(img.baseURI, '');\r\n }\r\n });\r\n\r\n document.querySelectorAll('.webp')\r\n .forEach(element => element.classList.replace('webp', 'nowebp'));\r\n };\r\n }\r\n}", "\uFEFFexport default class ParallaxManager {\r\n\r\n parallaxHandlers = new Map();\r\n constructor() {\r\n document.addEventListener('parallaxLoaded', e => {\r\n this.handleEvent(e as CustomEvent);\r\n })\r\n }\r\n\r\n handleEvent({ detail }: CustomEvent) {\r\n\r\n if (detail.isIntersecting && !this.parallaxHandlers.has(detail.target.id))\r\n this.parallaxHandlers.set(detail.target.id, new ParallaxHandler(detail));\r\n\r\n if (!detail.isIntersecting && this.parallaxHandlers.has(detail.target.id)) {\r\n let ph = this.parallaxHandlers.get(detail.target.id);\r\n this.parallaxHandlers.delete(detail.target.id);\r\n ph.dispose();\r\n ph = null;\r\n }\r\n }\r\n}\r\n\r\nclass ParallaxHandler {\r\n\r\n private bg = this.detail.target as HTMLElement;\r\n private pa = this.bg.querySelector(\"parallax-view\") as HTMLElement;\r\n private listener: EventListener = () => this.positionParallax();\r\n\r\n constructor(private detail: IntersectionObserverEntry) {\r\n\r\n if (this.pa == null)\r\n console.error(\"Could not find element \");\r\n else\r\n window.addEventListener(\"scroll\", this.listener);\r\n\r\n }\r\n dispose() {\r\n window.removeEventListener(\"scroll\", this.listener);\r\n }\r\n positionParallax() {\r\n let bb = this.bg.getBoundingClientRect();\r\n\r\n if (bb.y < window.innerHeight) {\r\n if (bb.y > 0)\r\n this.pa.style.backgroundPositionY = `-${(bb.y) / 1.5}px`;\r\n else\r\n this.pa.style.backgroundPositionY = `${-bb.y / 1.5}px`;\r\n }\r\n }\r\n}", "\uFEFFexport default class NavVisibility {\r\n\r\n navbar = document.querySelector(\"nav\");\r\n sticky = this.navbar.offsetTop;\r\n\r\n constructor() {\r\n\r\n window.addEventListener(\"scroll\", event => {\r\n //this.setSticky();\r\n });\r\n\r\n }\r\n\r\n setSticky() {\r\n\r\n if (window.pageYOffset >= this.sticky) {\r\n this.navbar.classList.add(\"sticky\")\r\n } else {\r\n this.navbar.classList.remove(\"sticky\");\r\n }\r\n }\r\n}", "\uFEFFexport default class ActionPanel {\r\n\r\n private menu = document.querySelector('nav-panel .menu');\r\n private menuItems = document.querySelector('nav-panel menu-items');\r\n private main = document.querySelector('div main');\r\n private state = '0';\r\n\r\n constructor() {\r\n this.setup();\r\n }\r\n\r\n private setup() {\r\n\r\n let menuHeight = this.menuItems.clientHeight;\r\n\r\n (this.menuItems as HTMLElement).style.top = menuHeight + 'px';\r\n\r\n this.menu.addEventListener('click', e => {\r\n (this.menuItems as HTMLElement).style.position = 'relative';\r\n let menuButton = (e.target as HTMLElement).closest('action');\r\n this.state = menuButton.querySelector('img').dataset['src'].split(':')[0];\r\n let srcToggle = menuButton.querySelector('img').dataset['src'].split(':')[1];\r\n\r\n if (this.state == '0') {\r\n (this.menuItems as HTMLElement).className = 'out';\r\n (this.menuItems as HTMLElement).style.top = menuHeight + 'px';\r\n menuButton.querySelector('img').dataset['src'] = '1:' + menuButton.querySelector('img').getAttribute('src');\r\n menuButton.querySelector('img').src = srcToggle;\r\n }\r\n\r\n if (this.state == '1') {\r\n (this.menuItems as HTMLElement).className = 'in';\r\n (this.menuItems as HTMLElement).style.top = '0px';\r\n menuButton.querySelector('img').dataset['src'] = '0:' + menuButton.querySelector('img').getAttribute('src')\r\n menuButton.querySelector('img').src = srcToggle;\r\n\r\n }\r\n });\r\n\r\n this.menuItems.addEventListener('transitionend', e => {\r\n if ((this.menuItems as HTMLElement).className == 'out')\r\n (this.menuItems as HTMLElement).style.removeProperty('position')\r\n });\r\n\r\n this.main.addEventListener('click', e => {\r\n if (this.state == '1')\r\n this.menu.dispatchEvent(new Event('click'));\r\n });\r\n\r\n\r\n }\r\n}", "\uFEFFimport * as imageSlider from './ImageSlider'\r\nimport * as newsletter from './Newsletter'\r\nimport HandleNoWebP from './HandleNoWebP'\r\nimport ParallaxManager from './ParallaxHandler';\r\nimport NavVisibility from './NavVisibility';\r\nimport ImageLoader from './ImageLoader';\r\nimport ActionPanel from './ActionPanel';\r\n\r\nexport class Application {\r\n\r\n constructor() {\r\n\r\n new HandleNoWebP();\r\n\r\n new imageSlider.ImageSlider();\r\n new newsletter.Newsletter();\r\n\r\n //document.fonts.onloadingdone = e => {\r\n // document.querySelector('#header .brand').classList.add('visible');\r\n //}\r\n //setTimeout(() => { document.querySelector('#header .brand').classList.add('visible'); }, 500);\r\n \r\n new ParallaxManager();\r\n new NavVisibility();\r\n new ImageLoader();\r\n new ActionPanel();\r\n }\r\n}\r\n\r\nnew Application();"], "mappings": "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", "names": [] }