{"version":3,"file":"frontend-DkciqP1B.js","sources":["../src/frontend/scripts/components/mobile-bar.js","../src/frontend/scripts/components/modal.js","../src/frontend/scripts/pages/reduction-offer.js","../src/frontend/scripts/components/file-upload.js","../src/frontend/scripts/components/styled-form.js","../src/frontend/scripts/pages/reduction-request.js","../src/frontend/scripts/components/validate-form.js","../src/frontend/scripts/components/site-header.js","../src/frontend/scripts/components/ajax-form.js","../src/frontend/scripts/components/site-announcement-bar.js","../src/frontend/scripts/components/site-widget.js","../src/frontend/scripts/components/page-overlay.js","../src/frontend/scripts/common/slide.js","../src/frontend/scripts/components/slide-toggle.js","../src/frontend/index.js"],"sourcesContent":["export default {\n init: () => {\n const mobileBar = document.querySelector('.mobile-bar')\n\n if (mobileBar) {\n const observer = new IntersectionObserver(([e]) => mobileBar.classList.toggle('is-hidden', !e.isIntersecting))\n\n observer.observe(document.querySelector('.scroll-pixel'))\n }\n },\n}\n","import \"@frontend/styles/components/modal.css\";\nimport ajax from \"@common/scripts/ajax\";\nimport { on, fire } from \"delegated-events\";\nimport A11yDialog from \"a11y-dialog\";\n\nconst generateTemplate = (id, type, title = false, hideClose = false) => {\n const role = hideClose ? \"alertdialog\" : \"dialog\";\n const labeledBy = title ? 'aria-labelledby=\"modal-title\"' : \"\";\n\n let showClose = hideClose === false;\n\n if (type === \"image\") {\n showClose = false;\n }\n\n const html = `\n
\n
\n\n ${\n showClose\n ? ''\n : \"\"\n }\n\n
\n \n \n \n
\n
\n `;\n\n return html;\n};\n\nconst populateModal = async (opts = {}, modalEl) => {\n const type = opts.type;\n const title = opts.title ?? \"\";\n const url = opts.url;\n\n let modalContent = \"\";\n\n if (type === \"video\") {\n modalContent = `\n
\n

Watch ${title}

\n
\n \n
\n
\n `;\n\n modalEl.querySelector(\".modal-container\").innerHTML = modalContent;\n }\n\n if (type === \"image\") {\n modalContent = `\n
\n

${title}

\n
\n \n \"${title}\"\n
\n
\n `;\n\n modalEl.querySelector(\".modal-container\").innerHTML = modalContent;\n }\n\n if (type === \"content\") {\n modalContent = await ajax.get(url).text();\n\n modalEl.querySelector(\".modal-container\").innerHTML = modalContent;\n }\n\n fire(document.documentElement, \"modal:populate\", { modalEl });\n};\n\nconst handleModal = (e) => {\n e.preventDefault();\n\n const triggerEl = e.target.closest(\"[data-modal]\");\n\n openModal({\n type: triggerEl.dataset.modal,\n title: triggerEl.dataset.modalTitle,\n url: triggerEl.href,\n hideClose: triggerEl.dataset.modalHideClose ?? false,\n });\n\n return false;\n};\n\nconst openModal = (opts = {}) => {\n const type = opts.type;\n const title = opts.title ?? false;\n const hideClose = opts.hideClose;\n\n const id = `modal-${Math.floor(Math.random() * Date.now())}`;\n const template = generateTemplate(id, type, title, hideClose);\n const node = document.createRange().createContextualFragment(template);\n\n document.body.append(node);\n\n const modalEl = document.getElementById(id);\n const modal = new A11yDialog(modalEl);\n\n modal.on(\"show\", () => {\n document.documentElement.classList.add(\"has-modal-active\");\n });\n\n modal.on(\"hide\", () => {\n document.documentElement.classList.remove(\"has-modal-active\");\n\n modal.destroy();\n });\n\n modal.on(\"destroy\", (e) => {\n document.querySelector(\".modal-wrapper\").remove();\n e.target.remove();\n });\n\n modal.show();\n\n populateModal(\n {\n type: type,\n url: opts.url ?? false,\n },\n modalEl,\n );\n};\n\nexport default {\n init: () => {\n on(\"click\", \"[data-modal]\", handleModal);\n\n // If we have video modals, load the YouTube API\n if (document.querySelectorAll('[data-modal=\"video\"]').length) {\n const tag = document.createElement(\"script\");\n tag.src = \"https://www.youtube.com/iframe_api\";\n\n const firstScriptTag = document.getElementsByTagName(\"script\")[0];\n\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n }\n },\n openModal,\n};\n","import ajax from \"@common/scripts/ajax\";\nimport { on } from \"delegated-events\";\nimport { validateForm } from \"@common/scripts/validation\";\n\nlet stripe;\nlet elements;\n\nconst initializePaymentForm = async (form, type) => {\n stripe = window.Stripe(form.dataset.stripeKey);\n\n const appearance = {\n labels: \"floating\",\n theme: \"stripe\",\n variables: {\n colorPrimary: \"#213bc0\",\n colorBackground: \"#ffffff\",\n colorDanger: \"#b5134b\",\n fontFamily: \"Lato, system-ui, sans-serif\",\n borderRadius: \"8px\",\n },\n };\n\n try {\n const endpoint = form.dataset.paymentEndpoint;\n\n const data = new FormData();\n data.set(\"type\", type);\n\n const res = await ajax.post(endpoint, { body: data }).json();\n\n elements = stripe.elements({ clientSecret: res.clientSecret, appearance });\n\n const paymentElement = elements.create(\"payment\", {\n layout: \"tabs\",\n });\n paymentElement.mount(\"#payment-element\");\n } catch (error) {\n console.error(error);\n }\n};\n\nconst handlePaymentSubmit = async (e) => {\n e.preventDefault();\n\n const form = e.currentTarget;\n const submitButton = form.querySelector('[type=\"submit\"]');\n const isValid = validateForm(form);\n\n if (!isValid) {\n return;\n }\n\n const formData = new FormData(form);\n\n const billingDetails = {};\n\n if (document.getElementById(\"account-information-json\")) {\n const json = JSON.parse(document.getElementById(\"account-information-json\").textContent);\n billingDetails.name = `${json[\"FirstName\"]} ${json[\"LastName\"]}`;\n billingDetails.email = json[\"Email\"];\n billingDetails.phone = json[\"Phone\"];\n billingDetails.address = {\n line1: json[\"Address1\"],\n line2: json[\"Address2\"],\n city: json[\"City\"],\n state: json[\"State\"],\n };\n }\n\n if (!formData.get(\"SameBilling\")) {\n billingDetails.name = `${formData.get(\"BillingFirstName\")} ${formData.get(\"BillingLastName\")}`;\n billingDetails.email = formData.get(\"BillingEmail\");\n billingDetails.phone = formData.get(\"BillingPhone\");\n billingDetails.address = {\n line1: formData.get(\"BillingAddress1\"),\n line2: formData.get(\"BillingAddress2\"),\n city: formData.get(\"BillingCity\"),\n state: formData.get(\"BillingState\"),\n };\n }\n\n submitButton.disabled = true;\n submitButton.classList.add(\"is-loading\");\n\n const { error, paymentIntent } = await stripe.confirmPayment({\n elements,\n confirmParams: {\n return_url: \"https://ocgov.net\",\n payment_method_data: {\n billing_details: billingDetails,\n },\n },\n redirect: \"if_required\",\n });\n\n if (error && (error.type === \"card_error\" || error.type === \"validation_error\")) {\n showMessage(error.message);\n submitButton.disabled = false;\n submitButton.classList.remove(\"is-loading\");\n } else if (paymentIntent && paymentIntent.status === \"succeeded\") {\n form.submit();\n } else {\n showMessage(\"An unexpected error occurred.\");\n submitButton.disabled = false;\n submitButton.classList.remove(\"is-loading\");\n }\n};\n\nfunction showMessage(messageText) {\n const messageContainer = document.querySelector(\"#payment-message\");\n\n messageContainer.classList.remove(\"hidden\");\n messageContainer.textContent = messageText;\n\n setTimeout(function () {\n messageContainer.classList.add(\"hidden\");\n messageContainer.textContent = \"\";\n }, 4000);\n}\n\nconst handlePaymentForm = () => {\n const form = document.querySelector(\".payment-form\");\n\n if (!form) {\n return;\n }\n\n form.addEventListener(\"submit\", handlePaymentSubmit);\n\n initializePaymentForm(form);\n\n on(\"change\", '[name=\"PaymentType\"]', (e) => {\n initializePaymentForm(form, e.target.value);\n });\n};\n\nexport default {\n init: () => {\n handlePaymentForm();\n },\n};\n","import { on } from \"delegated-events\";\nimport ajax from \"@common/scripts/ajax\";\n\nexport default {\n init: () => {\n on(\"change\", '.styled-form input[type=\"file\"]:not(.additional-upload)', async (e) => {\n const input = e.target;\n const field = input.closest(\".field\");\n\n if (input.files.length === 0) {\n return;\n }\n\n const form = input.closest(\"form\");\n const endpoint = form.dataset.uploadEndpoint;\n\n const data = new FormData();\n\n data.append(\"FieldName\", input.name);\n data.append(\"FieldTitle\", input.dataset.title);\n data.append(\"Required\", field.dataset.required);\n data.append(\"Replacing\", true);\n data.append(\"File\", input.files[0]);\n data.append(\"SecurityID\", form.querySelector('[name=\"SecurityID\"]').value);\n\n input.disabled = true;\n field.classList.add(\"is-loading\");\n\n try {\n const res = await ajax.post(endpoint, { body: data }).text();\n const fieldHtml = document.createRange().createContextualFragment(res);\n\n field.replaceWith(fieldHtml);\n } catch (error) {\n console.error(error);\n } finally {\n input.disabled = false;\n field.classList.remove(\"is-loading\");\n }\n });\n\n on(\"change\", '.styled-form input[type=\"file\"].additional-upload', async (e) => {\n const input = e.target;\n const field = input.closest(\".field\");\n\n if (input.files.length === 0) {\n return;\n }\n\n const form = input.closest(\"form\");\n const endpoint = form.dataset.uploadEndpoint;\n const holder = form.querySelector(\".additional-documents-holder\");\n\n const data = new FormData();\n\n data.append(\"Additional\", true);\n data.append(\"Required\", false);\n data.append(\"File\", input.files[0]);\n data.append(\"SecurityID\", form.querySelector('[name=\"SecurityID\"]').value);\n\n input.disabled = true;\n field.classList.add(\"is-loading\");\n\n try {\n const res = await ajax.post(endpoint, { body: data }).text();\n const fieldHtml = document.createRange().createContextualFragment(res);\n holder.appendChild(fieldHtml);\n holder.offsetHeight;\n holder.lastElementChild.classList.add(\"is-enter\");\n } catch (error) {\n console.log(error);\n } finally {\n input.value = null;\n input.disabled = false;\n field.classList.remove(\"is-loading\");\n }\n });\n\n on(\"click\", \"[data-remove-file]\", (e) => {\n const button = e.currentTarget;\n const field = button.closest(\".field\");\n\n field.classList.add(\"is-exit\");\n\n field.addEventListener(\"transitionend\", () => {\n field.remove();\n });\n });\n\n on(\"click\", \"[data-clear-file]\", async (e) => {\n const button = e.currentTarget;\n const form = button.closest(\"form\");\n const endpoint = form.dataset.uploadEndpoint;\n const field = button.closest(\".field\");\n const input = field.querySelector('input[type=\"file\"]');\n\n const data = new FormData();\n\n data.append(\"FieldName\", input.name);\n data.append(\"FieldTitle\", input.dataset.title);\n data.append(\"Required\", field.dataset.required);\n data.append(\"Clear\", true);\n data.append(\"SecurityID\", form.querySelector('[name=\"SecurityID\"]').value);\n\n input.disabled = true;\n field.classList.add(\"is-loading\");\n\n try {\n const res = await ajax.post(endpoint, { body: data }).text();\n const fieldHtml = document.createRange().createContextualFragment(res);\n\n field.replaceWith(fieldHtml);\n } catch (error) {\n console.error(error);\n } finally {\n input.disabled = false;\n field.classList.remove(\"is-loading\");\n }\n });\n },\n};\n","import { on } from \"delegated-events\";\nimport datepicker from \"@common/scripts/components/datepicker\";\nimport dropdown from \"@common/scripts/components/dropdown\";\nimport fileUpload from \"@frontend/scripts/components/file-upload\";\nimport maskFields from \"@common/scripts/components/mask-fields\";\nimport toggleFields from \"@common/scripts/components/toggle-fields\";\n\nexport default {\n init: () => {\n datepicker.init();\n dropdown.init();\n fileUpload.init();\n\n document.querySelectorAll(\".styled-form\").forEach((form) => {\n maskFields.init(form);\n toggleFields.init(form);\n\n if (form.classList.contains(\"styled-form-edit-toggle\")) {\n form.querySelectorAll(\".edit-toggle-field\").forEach((field) => {\n field.setAttribute(\"readonly\", \"readonly\");\n });\n }\n });\n\n on(\"click\", \"[data-edit-form-toggle]\", (e) => {\n const button = e.target.closest(\"[data-edit-form-toggle]\");\n const formId = button.dataset.editFormToggle;\n const form = document.getElementById(formId);\n\n if (form) {\n if (button.getAttribute(\"aria-pressed\") === \"true\") {\n button.setAttribute(\"aria-pressed\", \"false\");\n\n form.querySelectorAll(\".edit-toggle-field\").forEach((field) => {\n field.setAttribute(\"readonly\", \"readonly\");\n });\n } else {\n button.setAttribute(\"aria-pressed\", \"true\");\n\n form.querySelectorAll(\".edit-toggle-field[readonly]\").forEach((field) => {\n field.removeAttribute(\"readonly\");\n });\n }\n }\n });\n\n on(\n \"focus\",\n \"input\",\n (e) => {\n if (\"ontouchstart\" in document.documentElement) {\n setTimeout(function () {\n const inputRect = e.target.getBoundingClientRect();\n const absoluteElementTop = inputRect.top + window.scrollY - inputRect.height;\n\n window.scrollTo({\n top: absoluteElementTop,\n behavior: \"smooth\",\n });\n }, 125);\n }\n },\n { capture: true },\n );\n },\n};\n","import { on } from \"delegated-events\";\nimport ajax from \"@common/scripts/ajax\";\nimport styledForm from \"@frontend/scripts/components/styled-form\";\n\nexport default {\n init: () => {\n on(\"click\", \"[data-add-ticket]\", async (e) => {\n const button = e.currentTarget;\n const url = button.dataset.addTicket;\n\n const holder = document.querySelector(\".tickets-holder\");\n const currentPositions = Array.from(holder.querySelectorAll(\"fieldset[data-pos]\")).map((el) =>\n parseInt(el.dataset.pos),\n );\n\n const maxPos = currentPositions.length ? Math.max(...currentPositions) : 1;\n const nextPos = maxPos + 1;\n\n button.disabled = true;\n\n try {\n const res = await ajax.get(url, { searchParams: { pos: nextPos } }).text();\n const fieldsHtml = document.createRange().createContextualFragment(res);\n holder.appendChild(fieldsHtml);\n holder.offsetHeight;\n holder.lastElementChild.classList.add(\"is-enter\");\n styledForm.init();\n\n const firstDateField = e.target.closest(\"form\").querySelector(\"[data-datepicker]\");\n const dateField = holder.lastElementChild.querySelector(\"input.as-date\");\n\n if (firstDateField && firstDateField.value && dateField) {\n dateField.value = firstDateField.value;\n }\n\n const firstCourtField = e.target.closest(\"form\").querySelector(\".item\");\n const courtField = holder.lastElementChild.querySelector(\"select\");\n\n if (firstCourtField && firstCourtField.dataset.value && courtField) {\n courtField.tomselect.setValue(firstCourtField.dataset.value);\n }\n\n } catch (error) {\n console.error(error);\n } finally {\n button.disabled = false;\n }\n });\n\n on(\"click\", \"[data-remove-ticket]\", (e) => {\n const button = e.currentTarget;\n const fields = button.closest(\".ticket-info-fields\");\n\n fields.classList.add(\"is-exit\");\n\n fields.addEventListener(\"transitionend\", () => {\n fields.remove();\n });\n });\n\n on(\"changeDate\", \"input.first-ticket-date\", (e) => {\n const value = e.target.value;\n\n document.querySelectorAll(\"input.additional-ticket-date\").forEach((input) => {\n input.value = value;\n });\n });\n\n on(\"change\", \"select.first-ticket-court\", (e) => {\n const value = e.target.tomselect.getValue();\n document.querySelectorAll(\"select.additional-ticket-court\").forEach((select) => {\n select.tomselect.setValue(value);\n });\n });\n\n },\n};\n","import { on } from \"delegated-events\";\nimport { validateForm } from \"@common/scripts/validation\";\n\nexport default {\n init: () => {\n on(\"submit\", \"[data-validate-form]\", (e) => {\n const form = e.currentTarget;\n const isValid = validateForm(form);\n\n if (!isValid) {\n e.preventDefault();\n return;\n }\n });\n },\n};\n","import { on } from \"delegated-events\";\n\nconst siteHeader = document.querySelector(\".site-header\");\nconst siteMenu = document.querySelector(\".site-menu\");\n\nexport default {\n init: () => {\n const scrollPixel = document.querySelector(\".scroll-pixel\");\n\n if (scrollPixel && siteHeader) {\n const observer = new IntersectionObserver(\n ([e]) => siteHeader.classList.toggle(\"is-stuck\", e.intersectionRatio < 1),\n {\n threshold: [1],\n },\n );\n\n observer.observe(document.querySelector(\".scroll-pixel\"));\n }\n\n on(\"click\", \".site-menu-open\", () => {\n siteMenu.classList.remove(\"invisible\");\n siteMenu.offsetHeight;\n document.documentElement.classList.add(\"js-menu-active\");\n });\n\n on(\"click\", \".site-menu-close\", () => {\n document.documentElement.classList.remove(\"js-menu-active\");\n\n siteMenu.addEventListener(\n \"transitionend\",\n () => {\n siteMenu.classList.add(\"invisible\");\n },\n { once: true },\n );\n });\n },\n};\n","import { on } from \"delegated-events\";\nimport ajax from \"@common/scripts/ajax\";\nimport { validateForm } from \"@common/scripts/validation\";\n\nconst toggleSubmit = (form) => {\n const submitButton =\n form.querySelector('[type=\"submit\"]') || document.querySelector(`[type=\"submit\"][form=\"${form.id}\"]`);\n\n if (submitButton) {\n submitButton.disabled = !submitButton.disabled;\n submitButton.classList.toggle(\"is-loading\");\n }\n};\n\nconst showFormMessages = (holder, message, success, autoHide) => {\n holder.style.display = \"block\";\n holder.innerHTML = message;\n\n if (success) {\n holder.classList.remove(\"form-message-error\");\n } else {\n holder.classList.add(\"form-message-error\");\n }\n\n if (autoHide) {\n setTimeout(() => {\n holder.style.display = \"none\";\n }, 5000);\n }\n};\n\nconst trackGoogleAnalytics = (event) => {\n if (window.dataLayer) {\n window.dataLayer.push(event);\n }\n};\n\nexport default {\n init: () => {\n on(\"submit\", \"[data-ajax-form]\", async (e) => {\n e.preventDefault();\n\n const form = e.currentTarget;\n const formMessages = form.querySelector(\".form-messages\");\n\n toggleSubmit(form);\n\n const isValid = validateForm(form);\n\n if (!isValid) {\n toggleSubmit(form);\n return;\n }\n\n const formData = new FormData(form);\n\n try {\n const res = await ajax.post(form.action, { body: formData }).json();\n\n if (res.success) {\n if (res.ga) {\n res.ga.forEach((event) => trackGoogleAnalytics(event));\n }\n\n form.reset();\n form.querySelectorAll(\"select\").forEach((x) => (x.value = null));\n form.querySelectorAll(\".form-content\").forEach((x) => x.classList.add(\"hidden\"));\n }\n\n if (res.message) {\n showFormMessages(formMessages, res.message, res.success, false);\n }\n } catch (error) {\n showFormMessages(formMessages, \"Sorry, there was a problem with your submission\");\n } finally {\n toggleSubmit(form);\n }\n });\n },\n};\n","import { on } from \"delegated-events\";\n\nconst topBar = document.querySelector(\".site-announcement-bar\");\n\nconst handleClose = () => {\n topBar.remove();\n setHeight();\n};\n\nconst setHeight = () => {\n document.documentElement.style.setProperty(\"--site-announcement-height\", `${topBar.offsetHeight}px`);\n};\n\nexport default {\n init: () => {\n if (topBar) {\n on(\"click\", \".site-announcement-bar-close\", handleClose);\n\n setHeight();\n window.addEventListener(\"resize\", setHeight);\n }\n },\n};\n","import Cookies from \"js-cookie\";\nimport { on } from \"delegated-events\";\n\nconst widget = document.querySelector(\".site-widget\");\n\nconst setCookie = (state) => {\n Cookies.set(\"widgetstate\", state, {\n expires: 1,\n });\n};\n\nconst handleToggle = () => {\n const offset = widget.querySelector(\".site-widget-top\").offsetHeight;\n\n if (widget.getAttribute(\"aria-expanded\") === \"false\") {\n widget.style.transform = \"translate3d(0, 0, 0)\";\n widget.setAttribute(\"aria-expanded\", \"true\");\n setCookie(\"active\");\n } else {\n widget.style.transform = `translate3d(0, calc(100% - ${offset}px), 0)`;\n widget.setAttribute(\"aria-expanded\", \"false\");\n setCookie(\"inactive\");\n }\n};\n\nconst handleClose = (e) => {\n e.stopPropagation();\n\n widget.remove();\n};\n\nexport default {\n init: () => {\n if (widget) {\n on(\"click\", \".site-widget-top\", handleToggle);\n on(\"click\", \".site-widget-close\", handleClose);\n\n const offset = widget.querySelector(\".site-widget-top\").offsetHeight;\n\n if (Cookies.get(\"widgetstate\") === \"inactive\") {\n setTimeout(() => {\n widget.style.transform = `translate3d(0, calc(100% - ${offset}px), 0)`;\n widget.setAttribute(\"aria-expanded\", \"false\");\n }, 25);\n setCookie(\"inactive\");\n } else {\n widget.classList.add(\"no-animate\");\n widget.style.transform = \"translate3d(0, 0, 0)\";\n widget.setAttribute(\"aria-expanded\", \"true\");\n setCookie(\"active\");\n\n setTimeout(() => {\n widget.classList.remove(\"no-animate\");\n }, 750);\n }\n\n if (widget.classList.contains(\"has-auto-hide\")) {\n setTimeout(() => {\n if (widget.getAttribute(\"aria-expanded\") === \"true\") {\n widget.style.transform = `translate3d(0, calc(100% - ${offset}px), 0)`;\n widget.setAttribute(\"aria-expanded\", \"false\");\n setCookie(\"inactive\");\n }\n }, 5000);\n }\n }\n },\n};\n","import Cookies from \"js-cookie\";\nimport modal from \"@frontend/scripts/components/modal\";\n\nexport default {\n init: async () => {\n const overlayUrl = document.body.dataset.pageOverlayUrl;\n const overlayCookie = document.body.dataset.pageOverlayCookie;\n\n if (overlayUrl) {\n modal.openModal({\n type: \"content\",\n url: overlayUrl,\n });\n\n if (parseInt(overlayCookie) === 1) {\n Cookies.set(\"seenpageoverlay\", true, { expires: 1 });\n }\n }\n },\n};\n","import { up, down, toggle } from \"slide-element\";\n\nexport const slideUp = (element, duration = 400, display = \"block\", easing = \"ease-out\") => {\n element.classList.add(\"is-sliding\");\n\n const slide = up(element, {\n duration,\n display,\n easing,\n });\n\n slide.then(() => {\n element.classList.remove(\"is-sliding\");\n });\n\n return slide;\n};\n\nexport const slideDown = (element, duration = 400, display = \"block\", easing = \"ease-out\") => {\n element.classList.add(\"is-sliding\");\n\n const slide = down(element, {\n duration,\n display,\n easing,\n });\n\n slide.then(() => {\n element.classList.remove(\"is-sliding\");\n });\n\n return slide;\n};\n\nexport const slideToggle = (element, duration = 400, display = \"block\", easing = \"ease-out\") => {\n element.classList.add(\"is-sliding\");\n\n const slide = toggle(element, {\n duration,\n display,\n easing,\n });\n\n slide.then(() => {\n element.classList.remove(\"is-sliding\");\n });\n\n return slide;\n};\n","import \"@frontend/styles/components/slide-toggle.css\";\nimport { on, off, fire } from \"delegated-events\";\nimport { slideToggle } from \"@frontend/scripts/common/slide\";\n\nconst handleToggle = async (e) => {\n if (e.type === \"keyup\" && e.keyCode !== 13) {\n return;\n }\n\n if (e.target.closest(\"[data-scroll]\")) {\n return;\n }\n\n const trigger = e.target.closest(\"[data-slide-toggle]\");\n\n if (!trigger) {\n return;\n }\n\n const target = document.getElementById(trigger.getAttribute(\"aria-controls\"));\n\n if (!target) {\n return;\n }\n\n const otherTriggers = Array.from(\n document.querySelectorAll(`[data-slide-toggle][aria-controls=\"${trigger.getAttribute(\"aria-controls\")}\"]`),\n ).filter((x) => x !== trigger);\n\n if (trigger.getAttribute(\"aria-expanded\") === \"false\") {\n trigger.setAttribute(\"aria-expanded\", \"true\");\n otherTriggers.forEach((x) => x.setAttribute(\"aria-expanded\", \"true\"));\n\n const holder = trigger.closest(\"[data-slide-toggle-holder]\");\n\n if (holder) {\n holder.classList.add(\"is-active\");\n } else {\n trigger.parentNode.classList.add(\"is-active\");\n otherTriggers.forEach((x) => x.parentNode.classList.add(\"is-active\"));\n }\n\n await slideToggle(target);\n\n fire(document.documentElement, \"slidetoggle:open\", { trigger });\n } else {\n slideToggle(target);\n trigger.setAttribute(\"aria-expanded\", \"false\");\n otherTriggers.forEach((x) => x.setAttribute(\"aria-expanded\", \"false\"));\n\n const holder = trigger.closest(\"[data-slide-toggle-holder]\");\n\n if (holder) {\n holder.classList.remove(\"is-active\");\n } else {\n trigger.parentNode.classList.remove(\"is-active\");\n otherTriggers.forEach((x) => x.parentNode.classList.remove(\"is-active\"));\n }\n\n fire(document.documentElement, \"slidetoggle:close\", { trigger });\n }\n};\n\nconst handleOpenedDefault = () => {\n document.querySelectorAll(\"[data-slide-toggle-opened-default]\").forEach((el) => {\n const trigger = el.closest(\"[data-slide-toggle]\");\n const target = document.getElementById(trigger.getAttribute(\"aria-controls\"));\n\n if (trigger && target) {\n trigger.setAttribute(\"aria-expanded\", \"true\");\n target.classList.remove(\"hidden\");\n }\n });\n};\n\nexport default {\n init: () => {\n const clickArgs = [\"click\", \"[data-slide-toggle]\", handleToggle];\n\n off(...clickArgs);\n on(...clickArgs);\n\n handleOpenedDefault();\n },\n};\n","import \"vite/modulepreload-polyfill\";\n\nimport \"@frontend/styles/index.css\";\n\nimport mobileBar from \"@frontend/scripts/components/mobile-bar\";\nimport modal from \"@frontend/scripts/components/modal\";\nimport reductionOffer from \"@frontend/scripts/pages/reduction-offer\";\nimport reductionRequest from \"@frontend/scripts/pages/reduction-request\";\nimport styledForm from \"@frontend/scripts/components/styled-form\";\nimport validateForm from \"@frontend/scripts/components/validate-form\";\nimport siteHeader from \"@frontend/scripts/components/site-header\";\nimport ajaxForm from \"@frontend/scripts/components/ajax-form\";\nimport siteAnnouncementBar from \"@frontend/scripts/components/site-announcement-bar\";\nimport siteWidget from \"@frontend/scripts/components/site-widget\";\nimport pageOverlay from \"@frontend/scripts/components/page-overlay\";\nimport slideToggle from \"@frontend/scripts/components/slide-toggle\";\n\nmobileBar.init();\nmodal.init();\nreductionOffer.init();\nreductionRequest.init();\nstyledForm.init();\nvalidateForm.init();\nsiteHeader.init();\najaxForm.init();\nsiteAnnouncementBar.init();\nsiteWidget.init();\npageOverlay.init();\nslideToggle.init();\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n setTimeout(() => {\n document.documentElement.classList.remove(\"_preload\");\n }, 250);\n});\n"],"names":["mobileBar","e","generateTemplate","id","type","title","hideClose","role","labeledBy","showClose","populateModal","opts","modalEl","url","modalContent","ajax","fire","handleModal","triggerEl","openModal","template","node","modal","A11yDialog","on","tag","firstScriptTag","stripe","elements","initializePaymentForm","form","appearance","endpoint","data","res","error","handlePaymentSubmit","submitButton","validateForm","formData","billingDetails","json","paymentIntent","showMessage","messageText","messageContainer","handlePaymentForm","reductionOffer","fileUpload","input","field","fieldHtml","holder","button","styledForm","datepicker","dropdown","maskFields","toggleFields","formId","inputRect","absoluteElementTop","reductionRequest","currentPositions","el","nextPos","fieldsHtml","firstDateField","dateField","firstCourtField","courtField","fields","value","select","siteHeader","siteMenu","siteHeader$1","toggleSubmit","showFormMessages","message","success","autoHide","trackGoogleAnalytics","event","ajaxForm","formMessages","x","topBar","handleClose","setHeight","siteAnnouncementBar","widget","setCookie","state","Cookies","handleToggle","offset","siteWidget","pageOverlay","overlayUrl","overlayCookie","slideToggle","element","duration","display","easing","slide","toggle","trigger","target","otherTriggers","handleOpenedDefault","clickArgs","off"],"mappings":"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"}