{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/helpers/index.js","webpack://@verndale/toolkit/./src/js/helpers/motion.js","webpack://@verndale/toolkit/./src/js/modules/AccordionRow.js","webpack://@verndale/toolkit/./node_modules/uuid/dist/esm-browser/rng.js","webpack://@verndale/toolkit/./node_modules/uuid/dist/esm-browser/regex.js","webpack://@verndale/toolkit/./node_modules/uuid/dist/esm-browser/validate.js","webpack://@verndale/toolkit/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://@verndale/toolkit/./node_modules/uuid/dist/esm-browser/v4.js"],"names":[],"mappings":"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","file":"scripts/5346.61fa07a01bab8f4ae2b3.js","sourcesContent":["// /**\n// * debounce function\n// * Delays the processing of the event\n// */\nexport const debounce = (callback, wait) => {\n let timerId;\n return (...args) => {\n clearTimeout(timerId);\n timerId = setTimeout(() => {\n callback(...args);\n }, wait);\n };\n};\n\nexport const throttle = (callback, wait) => {\n let inThrottle;\n return (...args) => {\n if (!inThrottle) {\n callback(...args);\n inThrottle = true;\n setTimeout(() => {\n inThrottle = false;\n }, wait);\n }\n };\n};\n// /**\n// * Checks if an element is focusable\n// *\n// * @param {Object} el - HTML element you want to check if it's focusable\n// */\nexport const isFocusable = el => {\n if (\n el.tabIndex > 0 ||\n (el.tabIndex === 0 && el.getAttribute('tabIndex') !== null)\n ) {\n return true;\n }\n\n if (el.disabled) {\n return false;\n }\n\n /* eslint-disable indent */\n switch (el.nodeName) {\n case 'A':\n return !!el.href && el.rel !== 'ignore';\n case 'INPUT':\n return el.type !== 'hidden' && el.type !== 'file';\n case 'BUTTON':\n case 'SELECT':\n case 'TEXTAREA':\n return true;\n default:\n return false;\n }\n /* eslint-enable indent */\n};\n\n// /**\n// * Key code list object\n// */\nexport const keyCode = {\n TAB: 9,\n RETURN: 13,\n ESC: 27,\n SPACE: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\n\n// /**\n// * Breakpoints list object\n// */\nexport const breakpoints = {\n mobile: 360,\n tablet: 768,\n tabletLandscape: 1024,\n desktop: 1280,\n wide: 1600\n};\n\n// /**\n// * Bicentennial Swiper Object\n// */\n\nexport const bicentennialSwiperConfig = {\n allowTouchMove: false,\n autoHeight: false,\n rewind: true,\n slidesPerView: 1,\n spaceBetween: 0,\n speed: 1000,\n watchOverflow: true,\n watchSlidesProgress: true\n}\n\n// /**\n// * Convert Unicode characters inside a string to their actual characters\n// */\n\nexport const convertUnicode = (input) => {\n if (typeof input === 'string') {\n return input.replace(/\\\\+u([0-9a-fA-F]{4})/g, (a, b) =>\n String.fromCharCode(parseInt(b, 16)))\n }\n return input;\n};\n","import { animate } from 'motion';\n\nexport const open = (element, duration = 1, easing = [0.19, 1, 0.22, 1]) =>\n animate(\n element,\n {\n maxHeight: `${element.scrollHeight}px`,\n opacity: 1\n },\n {\n duration,\n easing\n }\n );\n\nexport const close = (element, duration = 1, easing = [0.19, 1, 0.22, 1]) =>\n animate(\n element,\n {\n maxHeight: 0,\n opacity: 0\n },\n {\n duration,\n easing\n }\n );\n\nexport const hideOpacity = (\n element,\n duration = 1,\n delay = 0,\n easing = [0.19, 1, 0.22, 1]\n) =>\n animate(\n element,\n {\n opacity: 0\n },\n {\n duration,\n delay,\n easing\n }\n );\n\nexport const showOpacity = (\n element,\n duration = 1,\n delay = 0,\n easing = [0.19, 1, 0.22, 1]\n) =>\n animate(\n element,\n {\n opacity: 1\n },\n {\n duration,\n delay,\n easing\n }\n );\n\nexport const show = (\n element,\n duration = 1,\n delay = 0,\n easing = [0.19, 1, 0.22, 1]\n) =>\n animate(\n element,\n {\n maxBlockSize: 'unset'\n },\n {\n duration,\n delay,\n easing\n }\n );\n\nexport const hide = (\n element,\n maxBlockSize = 0,\n duration = 1,\n delay = 0,\n easing = [0.19, 1, 0.22, 1]\n) =>\n animate(\n element,\n {\n maxBlockSize\n },\n {\n duration,\n delay,\n easing\n }\n );\n\nexport const showFromBottom = (\n element,\n delay = 0.2,\n duration = 0.2,\n easing = [0.11, 0, 0.5, 0]\n) =>\n animate(\n element,\n {\n opacity: 1,\n translateY: 0\n },\n {\n delay,\n duration,\n easing\n }\n );\n\nexport const hideFromTop = (\n element,\n delay = 0.2,\n duration = 0.2,\n easing = [0.11, 0, 0.5, 0]\n) =>\n animate(\n element,\n {\n opacity: 0,\n translateY: 30\n },\n {\n delay,\n duration,\n easing\n }\n );\n\nexport const hideToRight = (\n element,\n delay = 0.2,\n duration = 0.2,\n easing = [0.11, 0, 0.5, 0]\n) =>\n animate(\n element,\n {\n opacity: 0,\n translateX: 90\n },\n {\n delay,\n duration,\n easing\n }\n );\n\nexport const hideToLeft = (\n element,\n delay = 0.2,\n duration = 0.2,\n easing = [0.11, 0, 0.5, 0]\n) =>\n animate(\n element,\n {\n opacity: 0,\n translateX: -90\n },\n {\n delay,\n duration,\n easing\n }\n );\n","import { Component } from '@verndale/core';\nimport { v4 as uuidv4 } from 'uuid';\nimport { keyCode, debounce } from '../helpers';\nimport { open, close } from '../helpers/motion';\n\nclass Accordion extends Component {\n constructor(el) {\n super(el);\n\n this.initAccordion();\n }\n\n setupDefaults() {\n this.dom = {\n container: this.el.querySelector('.accordion-row__tabs'),\n items: this.el.querySelectorAll('.accordion-tab'),\n triggers: [...this.el.querySelectorAll('.accordion-tab__trigger')],\n panels: [...this.el.querySelectorAll('.accordion-tab__panel')]\n };\n }\n\n addListeners() {\n window.addEventListener(\n 'resize',\n debounce(this.handleResize.bind(this), 100)\n );\n this.dom.container.addEventListener(\n 'keydown',\n this.handleKeyDown.bind(this)\n );\n this.dom.triggers.forEach(trigger =>\n trigger.addEventListener('click', this.handleClick.bind(this))\n );\n }\n\n initAccordion() {\n this.dom.items.forEach(item => {\n const guid = uuidv4();\n\n const trigger = item.querySelector('.accordion-tab__trigger');\n const content = item.querySelector('.accordion-tab__panel');\n\n if (trigger.getAttribute('aria-expanded') === 'true') {\n this.openPanel(content);\n } else {\n this.closePanel(content);\n }\n\n trigger.setAttribute('aria-controls', `tabcontent-${guid}`);\n trigger.setAttribute('id', `tab-${guid}`);\n content.setAttribute('aria-labelledby', `tab-${guid}`);\n content.setAttribute('id', `tabcontent-${guid}`);\n\n content.setAttribute(\n 'aria-hidden',\n trigger.getAttribute('aria-expanded') !== 'true'\n );\n });\n }\n\n openItem(trigger) {\n const content = document.getElementById(\n trigger.getAttribute('aria-controls')\n );\n trigger.setAttribute('aria-expanded', true);\n this.openPanel(content);\n }\n\n openPanel(panel) {\n const tab = panel.closest('.accordion-tab');\n if (tab) tab.classList.add('accordion-tab--expanded');\n\n open(panel, 0.5).finished.then(() => {\n panel.setAttribute('aria-hidden', false);\n });\n }\n\n closeItem(trigger) {\n const content = document.getElementById(\n trigger.getAttribute('aria-controls')\n );\n trigger.setAttribute('aria-expanded', false);\n this.closePanel(content);\n }\n\n closePanel(panel) {\n const tab = panel.closest('.accordion-tab');\n if (tab) tab.classList.remove('accordion-tab--expanded');\n\n close(panel, 0.5).finished.then(() => {\n panel.setAttribute('aria-hidden', true);\n panel.querySelector('video')?.setAttribute('tabindex', '-1');\n panel.querySelector('video')?.pause();\n panel.querySelector('button')?.setAttribute('tabindex', '-1');\n });\n }\n\n handleResize() {\n this.dom.items.forEach(item => {\n const content = item.querySelector('.accordion-tab__panel');\n\n if (content.getAttribute('aria-hidden') === 'false') {\n content.style.maxHeight = null;\n content.style.maxHeight = `${content.scrollHeight}px`;\n }\n });\n }\n\n handleClick(e) {\n const button = e.currentTarget;\n if (button.getAttribute('aria-expanded') === 'true') {\n this.closeItem(button);\n } else {\n this.openItem(button);\n }\n }\n\n handleKeyDown(e) {\n const { target } = e;\n const key = e.which || e.keyCode;\n\n const ctrlModifier =\n e.ctrlKey && (key === keyCode.PAGEUP || key === keyCode.PAGEDOWN);\n\n if (target.classList.contains('accordion-tab__trigger')) {\n if (key === keyCode.UP || key === keyCode.DOWN || ctrlModifier) {\n const index = this.dom.triggers.indexOf(target);\n const direction =\n key === keyCode.PAGEDOWN || key === keyCode.DOWN ? 1 : -1;\n const { length } = this.dom.triggers;\n const newIndex = (index + length + direction) % length;\n\n this.dom.triggers[newIndex].focus();\n\n e.preventDefault();\n } else if (key === keyCode.END || key === keyCode.HOME) {\n switch (key) {\n case keyCode.HOME:\n this.dom.triggers[0].focus();\n break;\n case keyCode.END:\n this.dom.triggers[this.dom.triggers.length - 1].focus();\n break;\n default:\n break;\n }\n e.preventDefault();\n }\n }\n }\n}\n\nexport default Accordion;\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;"],"sourceRoot":""}