{ "version": 3, "sources": ["../src/ts/padding.ts", "../src/ts/timespan.ts", "../src/js/index.js"], "sourcesContent": ["export class PaddingMaxWidth {\n public element: HTMLElement;\n public max_width: number = 0;\n public side: string = \"left\";\n private dummy_element: HTMLElement | null;\n\n private bounding: any;\n\n\n public constructor(el: HTMLElement, max_width: number = 0, side: string = \"left\") {\n this.element = el;\n this.max_width = max_width;\n this.side = side;\n this.dummy_element = null;\n\n this.create_dummy_element();\n\n window.addEventListener(\"resize\", ev => {\n this.on_resize();\n });\n this.on_resize();\n }\n\n\n public create_dummy_element() {\n let dummy = document.createElement(\"div\");\n document.body.prepend(dummy);\n dummy.style.maxWidth = `${this.max_width}px`;\n dummy.style.width = `100%`;\n dummy.style.margin = `0 auto`;\n dummy.style.height = `0`;\n dummy.classList.add(\"dummy\");\n this.dummy_element = dummy;\n }\n\n public on_resize() {\n this.calculate_distance();\n }\n\n public calculate_distance() {\n this.bounding = (this.dummy_element).getBoundingClientRect();\n this.set_padding();\n }\n\n public set_padding() {\n let left = this.bounding.left;\n\n if (this.side == \"left\") {\n this.element.style.marginLeft = `${left}px`;\n } else {\n this.element.style.marginRight = `${left}px`;\n }\n }\n}\n", "\ninterface TimespanOptions {\n element: HTMLElement,\n links: HTMLElement[],\n breakpoint?: number\n}\n\n\nexport class Timespan {\n\n public options: TimespanOptions;\n\n constructor(options?: TimespanOptions) {\n let defaults: TimespanOptions = {\n element: document.body,\n links: [document.body, document.body],\n breakpoint: 800\n };\n\n this.options = Object.assign({}, defaults, options);\n\n this.calculate_layout();\n this.event_listeners();\n }\n\n event_listeners() {\n window.addEventListener(\"resize\", ev => {\n if (window.innerWidth > this.options.breakpoint) {\n this.options.element.style.opacity = \"1\";\n this.calculate_layout();\n } else {\n this.options.element.style.opacity = \"0\";\n }\n }, { passive: true });\n\n\n }\n\n\n calculate_layout() {\n let tallest = this.get_tallest_element()[0];\n\n (this.options.element.nextElementSibling).style.paddingTop = \"150px\";\n\n let curve_wrapper_width = this.options.links[1].offsetLeft - this.options.links[0].offsetLeft;\n let curve_wrapper = this.options.element.querySelector(\".curve-wrapper\");\n\n curve_wrapper.style.width = `${curve_wrapper_width}px`;\n curve_wrapper.style.left = `${(this.options.links[0].offsetLeft + (this.options.links[0].offsetWidth / 2))}px`;\n\n let left = curve_wrapper.querySelector(\".left\");\n let right = curve_wrapper.querySelector(\".right\");\n\n left.style.height = `${this.options.links[0].offsetTop}px`;\n right.style.height = `${this.options.links[1].offsetTop}px`;\n }\n\n\n get_tallest_element() {\n let tallest_element: HTMLElement | null = null;\n let tallest: number = 5000;\n let modals = (this.options.element.parentNode).querySelectorAll(\".modal\");\n modals.forEach(modal => {\n let top = (modal).offsetTop;\n if (top < tallest) {\n tallest_element = modal;\n tallest = top;\n }\n });\n return [tallest_element, tallest];\n }\n}", "import { PaddingMaxWidth } from '../ts/padding'\nimport { Timespan } from '../ts/timespan'\n\nwindow.addEventListener(\"DOMContentLoaded\", () => {\n\n AOS.init({duration:600, once: true});\n\n // Setting nav link color on current page\n let url = window.location.href.split('/');\n let page = url[3];\n if (page == \"\") {\n page = \"home\";\n }\n\n let links = document.querySelectorAll('nav .links a');\n for (let i = 0 ; i < links.length ; i++) {\n let match = links[i].getAttribute('href');\n if (match.includes(page) && (page.length < match.length + 3 && page.length > match.length - 3) ) { // is it \"like\" it. Not 100%\n links[i].classList.add('active');\n }\n else {\n links[i].classList.remove('active');\n }\n }\n\n // Initialize the timespan element, if it exists.\n let span = document.getElementById(\"span\");\n if(span !== null){\n let ids = span.getAttribute(\"data-link\").split(\":\");\n new Timespan({\n element: span,\n links: [document.getElementById(ids[0]), document.getElementById(ids[1])],\n breakpoint : 900\n })\n }\n\n // Add padding to some elements.\n let half_and_half = document.querySelectorAll(\".half-and-half\");\n if(half_and_half.length > 0){\n half_and_half.forEach(section => {\n if(section.classList.contains(\"reverse\")){\n new PaddingMaxWidth(section, 1575, \"right\");\n } else {\n new PaddingMaxWidth(section, 1575, \"left\");\n }\n });\n }\n\n // Select logo to use and set nav colors\n let check = document.querySelector('body');\n if (!check.classList.contains(\"page-template-home\") && !check.classList.contains(\"page-template-past-priorities\") && !check.classList.contains(\"single\") && !check.classList.contains(\"page-template-research\")) {\n document.querySelector('.logo .white').classList.add('hide');\n document.querySelector('.logo .black').classList.remove('hide');\n document.querySelector('nav.main').classList.add('invert');\n }\n\n // Contact form textarea grow\n let textFlag = false;\n let startHeight;\n let textArea = document.querySelector('textarea');\n if (document.querySelector('textarea')) {\n textArea.addEventListener('keyup', function() {\n if (!textFlag) {\n startHeight = textArea.scrollHeight;\n textFlag = true;\n }\n if (textArea.scrollHeight > startHeight) {\n // Adjust textarea height\n let prevrows = parseInt(textArea.getAttribute('rows'));\n textArea.setAttribute('rows', prevrows + 1);\n textFlag = false;\n }\n })\n }\n\n // Hamburger menu\n let mobile_state_open = false;\n\n document.body.addEventListener(\"click\", (event) => {\n if(mobile_state_open){\n if(!event.target.closest(\".mobile\") && !event.target.closest(\".hamburger\")){\n document.querySelector(\".mobile\").classList.remove(\"open\");\n }\n }\n\n });\n\n document.querySelector('.hamburger').addEventListener('click', function () {\n document.querySelector('nav.mobile').classList.add('open');\n mobile_state_open = true;\n });\n document.querySelector('.close').addEventListener('click', function () {\n document.querySelector('nav.mobile').classList.remove('open');\n mobile_state_open = false;\n });\n\n let appointment_form = document.getElementById('birs_book_appointment');\n if (appointment_form) {\n appointment_form.addEventListener('click', ev => {\n\n let qualification_field = document.querySelector('input[value=\"NO\"][name=\"birs_field_7\"]');\n console.log(qualification_field);\n if(qualification_field && qualification_field.checked){\n ev.preventDefault();\n alert('Our apologies, but you do not qualify for this service.');\n }\n\n });\n }\n});\n"], "mappings": "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", "names": [] }