{ "version": 3, "sources": ["../node_modules/css-has-pseudo/src/encode/decode.mjs", "../node_modules/css-has-pseudo/src/encode/encode.mjs", "../node_modules/css-has-pseudo/src/browser.js", "../node_modules/css-has-pseudo/src/encode/extract.mjs", "../node_modules/@mrhenry/core-web/modules/~element-qsa-has.js", "../modules/sbec.com/sbec/accordion/default/index.js", "../modules/sbec.com/sbec/site-header/index.js", "../modules/sbec.com/sbec/tabs/default/index.js", "../modules/sbec.com/sbec/page-list/filters/index.js", "../modules/sbec.com/sbec/article/default/index.js", "../modules/sbec.com/sbec/video/default/index.js", "../modules/sbec.com/sbec/floating-image/blue-background-animated/index.js", "../node_modules/blaze-slider/dist/blaze-slider.esm.js", "../modules/sbec.com/sbec/carousel/default/index.js", "sbec.com/modal.js", "sbec.com/tables.js", "common/aos.js", "sbec.com/animations.js", "sbec.com/index.js"], "sourcesContent": ["\n/** Decodes an identifier back into a CSS selector */\nexport default function decodeCSS(value) {\n\tif (value.slice(0, 13) !== 'csstools-has-') {\n\t\treturn '';\n\t}\n\n\tvalue = value.slice(13);\n\tlet values = value.split('-');\n\n\tlet result = '';\n\tfor (let i = 0; i < values.length; i++) {\n\t\tresult += String.fromCharCode(parseInt(values[i], 36));\n\t}\n\n\treturn result;\n}\n", "\n/** Returns the string as an encoded CSS identifier. */\nexport default function encodeCSS(value) {\n\tif (value === '') {\n\t\treturn '';\n\t}\n\n\tlet hex;\n\tlet result = '';\n\tfor (let i = 0; i < value.length; i++) {\n\t\thex = value.charCodeAt(i).toString(36);\n\t\tif (i === 0) {\n\t\t\tresult += hex;\n\t\t} else {\n\t\t\tresult += '-' + hex;\n\t\t}\n\t}\n\n\treturn 'csstools-has-' + result;\n}\n", "/* global MutationObserver,requestAnimationFrame,cancelAnimationFrame,self,HTMLElement */\n\nimport '@mrhenry/core-web/modules/~element-qsa-has.js';\nimport extractEncodedSelectors from './encode/extract.mjs';\nimport encodeCSS from './encode/encode.mjs';\n\nfunction hasNativeSupport() {\n\ttry {\n\t\tif (!('CSS' in self) || !('supports' in self.CSS) || !self.CSS.supports('selector(:has(div))')) {\n\t\t\treturn false;\n\t\t}\n\n\t} catch (_) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\nexport default function cssHasPseudo(document, options) {\n\t// OPTIONS\n\t{\n\t\tif (!options) {\n\t\t\toptions = {};\n\t\t}\n\n\t\toptions = {\n\t\t\thover: (!!options.hover) || false,\n\t\t\tdebug: (!!options.debug) || false,\n\t\t\tobservedAttributes: options.observedAttributes || [],\n\t\t\tforcePolyfill: (!!options.forcePolyfill) || false,\n\t\t};\n\n\t\toptions.mustPolyfill = options.forcePolyfill || !hasNativeSupport();\n\n\t\tif (!Array.isArray(options.observedAttributes)) {\n\t\t\toptions.observedAttributes = [];\n\t\t}\n\n\t\toptions.observedAttributes = options.observedAttributes.filter((x) => {\n\t\t\treturn (typeof x === 'string');\n\t\t});\n\n\t\t// https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes\n\t\t// `data-*` and `style` were omitted\n\t\toptions.observedAttributes = options.observedAttributes.concat(['accept', 'accept-charset', 'accesskey', 'action', 'align', 'allow', 'alt', 'async', 'autocapitalize', 'autocomplete', 'autofocus', 'autoplay', 'buffered', 'capture', 'challenge', 'charset', 'checked', 'cite', 'class', 'code', 'codebase', 'cols', 'colspan', 'content', 'contenteditable', 'contextmenu', 'controls', 'coords', 'crossorigin', 'csp', 'data', 'datetime', 'decoding', 'default', 'defer', 'dir', 'dirname', 'disabled', 'download', 'draggable', 'enctype', 'enterkeyhint', 'for', 'form', 'formaction', 'formenctype', 'formmethod', 'formnovalidate', 'formtarget', 'headers', 'hidden', 'high', 'href', 'hreflang', 'http-equiv', 'icon', 'id', 'importance', 'integrity', 'intrinsicsize', 'inputmode', 'ismap', 'itemprop', 'keytype', 'kind', 'label', 'lang', 'language', 'list', 'loop', 'low', 'manifest', 'max', 'maxlength', 'minlength', 'media', 'method', 'min', 'multiple', 'muted', 'name', 'novalidate', 'open', 'optimum', 'pattern', 'ping', 'placeholder', 'poster', 'preload', 'radiogroup', 'readonly', 'referrerpolicy', 'rel', 'required', 'reversed', 'rows', 'rowspan', 'sandbox', 'scope', 'scoped', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'spellcheck', 'src', 'srcdoc', 'srclang', 'srcset', 'start', 'step', 'summary', 'tabindex', 'target', 'title', 'translate', 'type', 'usemap', 'value', 'width', 'wrap']);\n\t}\n\n\tconst observedItems = [];\n\n\t// document.createAttribute() doesn't support `:` in the name. innerHTML does\n\tconst attributeElement = document.createElement('x');\n\n\t// walk all stylesheets to collect observed css rules\n\t[].forEach.call(document.styleSheets, walkStyleSheet);\n\tif (!options.mustPolyfill) {\n\t\t// Cleanup of rules will have happened in `walkStyleSheet`\n\t\t// Native support will take over from here\n\t\treturn;\n\t}\n\n\ttransformObservedItemsThrottled();\n\n\t// observe DOM modifications that affect selectors\n\tif ('MutationObserver' in self) {\n\t\tconst mutationObserver = new MutationObserver((mutationsList) => {\n\t\t\tmutationsList.forEach(mutation => {\n\t\t\t\t[].forEach.call(mutation.addedNodes || [], node => {\n\t\t\t\t\t// walk stylesheets to collect observed css rules\n\t\t\t\t\tif (node.nodeType === 1 && node.sheet) {\n\t\t\t\t\t\twalkStyleSheet(node.sheet);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// transform observed css rules\n\t\t\t\tcleanupObservedCssRules();\n\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t});\n\t\t});\n\n\t\tmutationObserver.observe(document, { childList: true, subtree: true, attributes: true, attributeFilter: options.observedAttributes });\n\t}\n\n\t// observe DOM events that affect pseudo-selectors\n\tdocument.addEventListener('focus', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('blur', transformObservedItemsThrottled, true);\n\tdocument.addEventListener('input', transformObservedItemsThrottled);\n\tdocument.addEventListener('change', transformObservedItemsThrottled, true);\n\n\tif (options.hover) {\n\t\tif ('onpointerenter' in document) {\n\t\t\tdocument.addEventListener('pointerenter', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('pointerleave', transformObservedItemsThrottled, true);\n\t\t} else {\n\t\t\tdocument.addEventListener('mouseover', transformObservedItemsThrottled, true);\n\t\t\tdocument.addEventListener('mouseout', transformObservedItemsThrottled, true);\n\t\t}\n\t}\n\n\t// observe Javascript setters that effect pseudo-selectors\n\tif ('defineProperty' in Object && 'getOwnPropertyDescriptor' in Object && 'hasOwnProperty' in Object) {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-inner-declarations\n\t\t\tfunction observeProperty(proto, property) {\n\t\t\t\t// eslint-disable-next-line no-prototype-builtins\n\t\t\t\tif (proto.hasOwnProperty(property)) {\n\t\t\t\t\tconst descriptor = Object.getOwnPropertyDescriptor(proto, property);\n\t\t\t\t\tif (descriptor && descriptor.configurable && 'set' in descriptor) {\n\t\t\t\t\t\tObject.defineProperty(proto, property, {\n\t\t\t\t\t\t\tconfigurable: descriptor.configurable,\n\t\t\t\t\t\t\tenumerable: descriptor.enumerable,\n\t\t\t\t\t\t\tget: function () {\n\t\t\t\t\t\t\t\treturn descriptor.get.apply(this, arguments);\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tset: function () {\n\t\t\t\t\t\t\t\tdescriptor.set.apply(this, arguments);\n\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\ttransformObservedItemsThrottled();\n\t\t\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t\t\t// should never happen as there is an inner try/catch\n\t\t\t\t\t\t\t\t\t// but just in case\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ('HTMLElement' in self && HTMLElement.prototype) {\n\t\t\t\tobserveProperty(HTMLElement.prototype, 'disabled');\n\t\t\t}\n\n\t\t\t// Not all of these elements have all of these properties.\n\t\t\t// But the code above checks if they exist first.\n\t\t\t['checked', 'selected', 'readOnly', 'required'].forEach((property) => {\n\t\t\t\t[\n\t\t\t\t\t'HTMLButtonElement',\n\t\t\t\t\t'HTMLFieldSetElement',\n\t\t\t\t\t'HTMLInputElement',\n\t\t\t\t\t'HTMLMeterElement',\n\t\t\t\t\t'HTMLOptGroupElement',\n\t\t\t\t\t'HTMLOptionElement',\n\t\t\t\t\t'HTMLOutputElement',\n\t\t\t\t\t'HTMLProgressElement',\n\t\t\t\t\t'HTMLSelectElement',\n\t\t\t\t\t'HTMLTextAreaElement',\n\t\t\t\t].forEach((elementName) => {\n\t\t\t\t\tif (elementName in self && self[elementName].prototype) {\n\t\t\t\t\t\tobserveProperty(self[elementName].prototype, property);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n\n\tlet transformObservedItemsThrottledBusy = false;\n\tfunction transformObservedItemsThrottled() {\n\t\tif (transformObservedItemsThrottledBusy) {\n\t\t\tcancelAnimationFrame(transformObservedItemsThrottledBusy);\n\t\t}\n\n\t\ttransformObservedItemsThrottledBusy = requestAnimationFrame(() => {\n\t\t\ttransformObservedItems();\n\t\t});\n\t}\n\n\t// transform observed css rules\n\tfunction transformObservedItems() {\n\t\tobservedItems.forEach((item) => {\n\t\t\tconst nodes = [];\n\n\t\t\tlet matches = [];\n\t\t\ttry {\n\t\t\t\tmatches = document.querySelectorAll(item.selector);\n\t\t\t} catch (e) {\n\t\t\t\tif (options.debug) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t[].forEach.call(matches, (element) => {\n\t\t\t\t// memorize the node\n\t\t\t\tnodes.push(element);\n\n\t\t\t\t// set an attribute with an irregular attribute name\n\t\t\t\t// document.createAttribute() doesn't support special characters\n\t\t\t\tattributeElement.innerHTML = '';\n\n\t\t\t\telement.setAttributeNode(attributeElement.children[0].attributes[0].cloneNode());\n\n\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t});\n\n\t\t\t// remove the encoded attribute from all nodes that no longer match them\n\t\t\titem.nodes.forEach(node => {\n\t\t\t\tif (nodes.indexOf(node) === -1) {\n\t\t\t\t\tnode.removeAttribute(item.attributeName);\n\n\t\t\t\t\t// trigger a style refresh in IE and Edge\n\t\t\t\t\tdocument.documentElement.style.zoom = 1; document.documentElement.style.zoom = null;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// update the\n\t\t\titem.nodes = nodes;\n\t\t});\n\t}\n\n\t// remove any observed cssrules that no longer apply\n\tfunction cleanupObservedCssRules() {\n\t\t[].push.apply(\n\t\t\tobservedItems,\n\t\t\tobservedItems.splice(0).filter((item) => {\n\t\t\t\treturn item.rule.parentStyleSheet &&\n\t\t\t\t\titem.rule.parentStyleSheet.ownerNode &&\n\t\t\t\t\tdocument.documentElement.contains(item.rule.parentStyleSheet.ownerNode);\n\t\t\t}),\n\t\t);\n\t}\n\n\t// walk a stylesheet to collect observed css rules\n\tfunction walkStyleSheet(styleSheet) {\n\t\ttry {\n\t\t\t// walk a css rule to collect observed css rules\n\t\t\t[].forEach.call(styleSheet.cssRules || [], (rule, index) => {\n\t\t\t\tif (rule.selectorText) {\n\t\t\t\t\trule.selectorText = rule.selectorText.replace(/\\.js-has-pseudo\\s/g, '');\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\t// decode the selector text in all browsers to:\n\t\t\t\t\t\tconst hasSelectors = extractEncodedSelectors(rule.selectorText.toString());\n\t\t\t\t\t\tif (hasSelectors.length === 0) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!options.mustPolyfill) {\n\t\t\t\t\t\t\tstyleSheet.deleteRule(index);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let i = 0; i < hasSelectors.length; i++) {\n\t\t\t\t\t\t\tconst hasSelector = hasSelectors[i];\n\t\t\t\t\t\t\tobservedItems.push({\n\t\t\t\t\t\t\t\trule: rule,\n\t\t\t\t\t\t\t\tselector: hasSelector,\n\t\t\t\t\t\t\t\tattributeName: encodeCSS(hasSelector),\n\t\t\t\t\t\t\t\tnodes: [],\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tif (options.debug) {\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\twalkStyleSheet(rule);\n\t\t\t\t}\n\t\t\t});\n\t\t} catch (e) {\n\t\t\tif (options.debug) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t}\n\t}\n}\n", "import decodeCSS from './decode.mjs';\n\n/** Extract encoded selectors out of attribute selectors */\nexport default function extractEncodedSelectors(value) {\n\tlet out = [];\n\n\tlet depth = 0;\n\tlet candidate;\n\n\tlet quoted = false;\n\tlet quotedMark;\n\n\tlet containsUnescapedUnquotedHasAtDepth1 = false;\n\n\t// Stryker disable next-line EqualityOperator\n\tfor (let i = 0; i < value.length; i++) {\n\t\tconst char = value[i];\n\n\t\tswitch (char) {\n\t\t\tcase '[':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (depth === 0) {\n\t\t\t\t\tcandidate = '';\n\t\t\t\t} else {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t}\n\n\t\t\t\tdepth++;\n\t\t\t\tcontinue;\n\t\t\tcase ']':\n\t\t\t\tif (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t{\n\t\t\t\t\tdepth--;\n\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\tconst decoded = decodeCSS(candidate);\n\t\t\t\t\t\tif (containsUnescapedUnquotedHasAtDepth1) {\n\t\t\t\t\t\t\tout.push(decoded);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcandidate += char;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\tcase '\\\\':\n\t\t\t\tcandidate += value[i];\n\t\t\t\tcandidate += value[i+1];\n\t\t\t\ti++;\n\t\t\t\tcontinue;\n\n\t\t\tcase '\"':\n\t\t\tcase '\\'':\n\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if (quoted) {\n\t\t\t\t\tcandidate += char;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tquoted = true;\n\t\t\t\tquotedMark = char;\n\t\t\t\tcontinue;\n\n\t\t\tdefault:\n\t\t\t\tif (candidate === '' && depth === 1 && (value.slice(i, i + 13) === 'csstools-has-')) {\n\t\t\t\t\tcontainsUnescapedUnquotedHasAtDepth1 = true;\n\t\t\t\t}\n\n\t\t\t\tcandidate += char;\n\t\t\t\tcontinue;\n\t\t}\n\t}\n\n\tconst unique = [];\n\tfor (let i = 0; i < out.length; i++) {\n\t\tif (unique.indexOf(out[i]) === -1) {\n\t\t\tunique.push(out[i]);\n\t\t}\n\t}\n\n\treturn unique;\n}\n", "/* eslint-disable */\n(function (global) {\n\ttry {\n\t\t// test for has support\n\t\tglobal.document.querySelector(':has(*, :does-not-exist, > *)');\n\t\tglobal.document.querySelector(':has(:has(any))');\n\n\t\tif (!global.document.querySelector(':has(:scope *)')) {\n\t\t\treturn;\n\t\t}\n\t} catch (_) { }\n\n\t// ELEMENT\n\t// polyfill Element#querySelector\n\tvar querySelectorWithHasElement = polyfill(global.Element.prototype.querySelector);\n\n\tglobal.Element.prototype.querySelector = function querySelector(selectors) {\n\t\treturn querySelectorWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#querySelectorAll\n\tvar querySelectorAllWithHasElement = polyfill(global.Element.prototype.querySelectorAll);\n\n\tglobal.Element.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\treturn querySelectorAllWithHasElement.apply(this, arguments);\n\t};\n\n\t// polyfill Element#matches\n\tif (global.Element.prototype.matches) {\n\t\tvar matchesWithHasElement = polyfill(global.Element.prototype.matches);\n\n\t\tglobal.Element.prototype.matches = function matches(selectors) {\n\t\t\treturn matchesWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// polyfill Element#closest\n\tif (global.Element.prototype.closest) {\n\t\tvar closestWithHasElement = polyfill(global.Element.prototype.closest);\n\n\t\tglobal.Element.prototype.closest = function closest(selectors) {\n\t\t\treturn closestWithHasElement.apply(this, arguments);\n\t\t};\n\t}\n\n\t// DOCUMENT\n\tif ('Document' in global && 'prototype' in global.Document) {\n\t\t// polyfill Document#querySelector\n\t\tvar querySelectorWithHasDocument = polyfill(global.Document.prototype.querySelector);\n\n\t\tglobal.Document.prototype.querySelector = function querySelector(selectors) {\n\t\t\treturn querySelectorWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#querySelectorAll\n\t\tvar querySelectorAllWithHasDocument = polyfill(global.Document.prototype.querySelectorAll);\n\n\t\tglobal.Document.prototype.querySelectorAll = function querySelectorAll(selectors) {\n\t\t\treturn querySelectorAllWithHasDocument.apply(this, arguments);\n\t\t};\n\n\t\t// polyfill Document#matches\n\t\tif (global.Document.prototype.matches) {\n\t\t\tvar matchesWithHasDocument = polyfill(global.Document.prototype.matches);\n\n\t\t\tglobal.Document.prototype.matches = function matches(selectors) {\n\t\t\t\treturn matchesWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\n\t\t// polyfill Document#closest\n\t\tif (global.Document.prototype.closest) {\n\t\t\tvar closestWithHasDocument = polyfill(global.Document.prototype.closest);\n\n\t\t\tglobal.Document.prototype.closest = function closest(selectors) {\n\t\t\t\treturn closestWithHasDocument.apply(this, arguments);\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction pseudoClassHasInnerQuery(query) {\n\t\tvar current = '';\n\t\tvar start = 0;\n\t\tvar depth = 0;\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar inHas = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':has(' && !inHas) {\n\t\t\t\tinHas = true;\n\t\t\t\tstart = i;\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tif (!inHas) {\n\t\t\t\t\t\tcurrent = '';\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tdepth++;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase ')':\n\t\t\t\t\tif (inHas) {\n\t\t\t\t\t\tif (depth === 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tinnerQuery: current,\n\t\t\t\t\t\t\t\tstart: start,\n\t\t\t\t\t\t\t\tend: i-1\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdepth--;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction replaceScopeWithAttr(query, attr) {\n\t\tvar parts = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar bracketed = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (quoted) {\n\t\t\t\tif (char === quotedMark) {\n\t\t\t\t\tquoted = false;\n\t\t\t\t}\n\n\t\t\t\tcurrent += char;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (current.toLowerCase() === ':scope' && !bracketed && (/^[\\[\\.\\:\\\\\"\\s|+>~#&,)]/.test(char || ''))) {\n\t\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\t\tparts.push('[' + attr + ']');\n\t\t\t\tcurrent = '';\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ':':\n\t\t\t\t\tparts.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '[':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tbracketed++;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase \"]\":\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tif (bracketed > 0) {\n\t\t\t\t\t\tbracketed--\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (current.toLowerCase() === ':scope') {\n\t\t\tparts.push(current.slice(0, current.length - 6));\n\t\t\tparts.push('[' + attr + ']');\n\t\t\tcurrent = '';\n\t\t}\n\n\t\tif (parts.length === 0) {\n\t\t\treturn query;\n\t\t}\n\n\t\treturn parts.join('') + current;\n\t}\n\n\tfunction charIsNestedMarkMirror(char, mark) {\n\t\tif (mark === '(' && char === ')') {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (mark === '[' && char === ']') {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction splitSelector(query) {\n\t\tvar selectors = [];\n\t\tvar current = '';\n\n\t\tvar escaped = false;\n\n\t\tvar quoted = false;\n\t\tvar quotedMark = false;\n\n\t\tvar nestedMark = false;\n\t\tvar nestedDepth = 0;\n\n\t\tfor (var i = 0; i < query.length; i++) {\n\t\t\tvar char = query[i];\n\n\t\t\tif (escaped) {\n\t\t\t\tcurrent += char;\n\t\t\t\tescaped = false;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tswitch (char) {\n\t\t\t\tcase ',':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (nestedDepth > 0) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tselectors.push(current);\n\t\t\t\t\tcurrent = '';\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\\\\':\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tescaped = true;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '\"':\n\t\t\t\tcase \"'\":\n\t\t\t\t\tif (quoted && char === quotedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tquoted = false;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tquoted = true;\n\t\t\t\t\tquotedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tcase '(':\n\t\t\t\tcase ')':\n\t\t\t\tcase '[':\n\t\t\t\tcase ']':\n\t\t\t\t\tif (quoted) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (charIsNestedMarkMirror(char, nestedMark)) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth--;\n\n\t\t\t\t\t\tif (nestedDepth === 0) {\n\t\t\t\t\t\t\tnestedMark = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (char === nestedMark) {\n\t\t\t\t\t\tcurrent += char;\n\t\t\t\t\t\tnestedDepth++;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tnestedDepth++;\n\t\t\t\t\tnestedMark = char;\n\t\t\t\t\tcontinue;\n\n\t\t\t\tdefault:\n\t\t\t\t\tcurrent += char;\n\t\t\t\t\tcontinue;\n\n\t\t\t}\n\t\t}\n\n\t\tselectors.push(current);\n\n\t\treturn selectors;\n\t}\n\n\tfunction replaceAllWithTempAttr(query, nested, callback) {\n\t\tvar inner = pseudoClassHasInnerQuery(query);\n\t\tif (!inner) {\n\t\t\treturn query;\n\t\t}\n\n\t\tif (nested) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar innerQuery = inner.innerQuery;\n\t\tvar attr = 'q-has' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\tvar innerReplacement = '[' + attr + ']';\n\n\t\tvar x = query;\n\n\t\tif (inner.innerQuery.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar innerParts = splitSelector(inner.innerQuery);\n\t\t\tvar newInnerParts = [];\n\t\t\tfor (var i = 0; i < innerParts.length; i++) {\n\t\t\t\tvar innerPart = innerParts[i];\n\n\t\t\t\t// Nested has is not supported.\n\t\t\t\t// If a recursive/nested call returns \"false\" we replace with \":not(*)\"\n\t\t\t\tvar innerPartReplaced = replaceAllWithTempAttr(innerPart, true, function () { });\n\t\t\t\tif (!innerPartReplaced) {\n\t\t\t\t\tnewInnerParts.push(':not(*)');\n\t\t\t\t} else {\n\t\t\t\t\tnewInnerParts.push(innerPart);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\t\treturn _prefix + newInnerParts.join(', ') + _suffix;\n\t\t}\n\n\t\tvar _prefix = x.substring(0, inner.start - 5); // ':has('.length === 5\n\t\tvar _suffix = x.substring(inner.end + 2); // ')'.length === 1\n\n\t\tx = _prefix + innerReplacement + _suffix;\n\n\t\tcallback(innerQuery, attr);\n\t\tif (x.toLowerCase().indexOf(':has(') > -1) {\n\t\t\tvar y = replaceAllWithTempAttr(x, false, callback);\n\t\t\tif (y) {\n\t\t\t\treturn y;\n\t\t\t}\n\t\t}\n\n\t\treturn x;\n\t}\n\n\tfunction walkNode(rootNode, callback) {\n\t\tif (('setAttribute' in (rootNode)) && ('querySelector' in (rootNode))) {\n\t\t\tcallback(rootNode);\n\t\t}\n\n\t\tif (rootNode.hasChildNodes()) {\n\t\t\tvar nodes = rootNode.childNodes;\n\t\t\tfor (var i = 0; i < nodes.length; ++i) {\n\t\t\t\twalkNode(nodes[i], callback);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction polyfill(qsa) {\n\t\treturn function (selectors) {\n\t\t\tif ((selectors.toLowerCase().indexOf(':has(') === -1) || !pseudoClassHasInnerQuery(selectors)) {\n\t\t\t\treturn qsa.apply(this, arguments);\n\t\t\t}\n\n\t\t\tvar rootNode;\n\t\t\tif ('getRootNode' in this) {\n\t\t\t\trootNode = this.getRootNode();\n\t\t\t} else {\n\t\t\t\tvar r = this;\n\t\t\t\twhile (r) {\n\t\t\t\t\trootNode = r;\n\t\t\t\t\tr = r.parentNode;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar _focus = this;\n\t\t\tif (_focus === global.document) {\n\t\t\t\t_focus = global.document.documentElement;\n\t\t\t}\n\n\t\t\tvar scopeAttr = 'q-has-scope' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t_focus.setAttribute(scopeAttr, '');\n\n\t\t\ttry {\n\t\t\t\tselectors = replaceScopeWithAttr(selectors, scopeAttr);\n\n\t\t\t\tvar attrs = [scopeAttr];\n\t\t\t\tvar newQuery = replaceAllWithTempAttr(selectors, false, function (inner, attr) {\n\t\t\t\t\tattrs.push(attr);\n\n\t\t\t\t\tvar selectorParts = splitSelector(inner);\n\t\t\t\t\tfor (var x = 0; x < selectorParts.length; x++) {\n\t\t\t\t\t\tvar selectorPart = selectorParts[x].trim();\n\t\t\t\t\t\tvar absoluteSelectorPart = selectorPart;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tselectorPart[0] === '>' ||\n\t\t\t\t\t\t\tselectorPart[0] === '+' ||\n\t\t\t\t\t\t\tselectorPart[0] === '~'\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tabsoluteSelectorPart = selectorPart.slice(1).trim();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tabsoluteSelectorPart = ':scope ' + selectorPart;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\twalkNode(rootNode, function (node) {\n\t\t\t\t\t\t\t\tif (!(node.querySelector(absoluteSelectorPart))) {\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tswitch (selectorPart[0]) {\n\t\t\t\t\t\t\t\t\tcase '~':\n\t\t\t\t\t\t\t\t\tcase '+':\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tvar siblings = node.childNodes;\n\t\t\t\t\t\t\t\t\t\t\tfor (var i = 0; i < siblings.length; i++) {\n\t\t\t\t\t\t\t\t\t\t\t\tvar sibling = siblings[i];\n\t\t\t\t\t\t\t\t\t\t\t\tif (!('setAttribute' in sibling)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope [' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsibling.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tsibling.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tcase '>':\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tvar idAttr = 'q-has-id' + (Math.floor(Math.random() * 9000000) + 1000000);\n\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(idAttr, '');\n\n\t\t\t\t\t\t\t\t\t\t\tif (node.querySelector(':scope[' + idAttr + ']' + ' ' + selectorPart)) {\n\t\t\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tnode.removeAttribute(idAttr);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tnode.setAttribute(attr, '');\n\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (_) {\n\t\t\t\t\t\t\t// `:has` takes a forgiving selector list.\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\targuments[0] = newQuery;\n\n\t\t\t\t// results of the qsa\n\t\t\t\tvar elementOrNodeList = qsa.apply(this, arguments);\n\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// return the results of the qsa\n\t\t\t\treturn elementOrNodeList;\n\t\t\t} catch (err) {\n\t\t\t\t_focus.removeAttribute(scopeAttr);\n\n\t\t\t\tif (attrs.length > 0) {\n\t\t\t\t\t// remove the fallback attribute\n\t\t\t\t\tvar attrsForQuery = [];\n\t\t\t\t\tfor (var j = 0; j < attrs.length; j++) {\n\t\t\t\t\t\tattrsForQuery.push('[' + attrs[j] + ']');\n\t\t\t\t\t}\n\n\t\t\t\t\tvar elements = global.document.querySelectorAll(attrsForQuery.join(','));\n\t\t\t\t\tfor (var k = 0; k < elements.length; k++) {\n\t\t\t\t\t\tvar element = elements[k];\n\t\t\t\t\t\tfor (var l = 0; l < attrs.length; l++) {\n\t\t\t\t\t\t\telement.removeAttribute(attrs[l]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthrow err;\n\t\t\t}\n\t\t};\n\t}\n})(self);\n", "const $ = (selector, parent = document) => parent.querySelector(selector);\nconst $$ = (selector, parent = document) => parent.querySelectorAll(selector);\n\n/**\n * Handles keyboard navigations on the \n *\n * * Down Arrow: moves focus to next `` in the accordion,\n * or the first ``.\n * * Up Arrow: moves focus to previous `` in the accordion,\n * or the last ``.\n * * Home : moves focus to the first accordion header.\n * * End : moves focus to the last accordion header.\n * @param {KeyboardEvent} event\n */\nfunction onKeyDownOnAccordion(event) {\n const target = /** @type {HTMLElement} */(event.target);\n const key = event.key;\n\n // Ignores if event is not coming from an accordion header.\n if (target.tagName !== \"SUMMARY\") {\n return;\n }\n\n // Ignore other keys\n if ([\"Down\", \"ArrowDown\", \"Up\", \"ArrowUp\", \"Home\", \"End\"].indexOf(key) === -1) {\n return;\n }\n\n const accordion = target.closest(\".accordion\");\n const triggers = Array.from(accordion.querySelectorAll(\"summary\"));\n const length = triggers.length;\n const index = triggers.indexOf(target);\n let newIndex;\n\n switch (key) {\n case \"Down\": // IE/Edge specific value\n case \"ArrowDown\":\n newIndex = (index + length + 1) % length;\n break;\n case \"Up\": // IE/Edge specific value\n case \"ArrowUp\":\n newIndex = (index + length -1) % length;\n break;\n case \"Home\":\n // Go to first accordion\n newIndex = 0;\n break;\n case \"End\":\n // Go to last accordion\n newIndex = length - 1;\n break;\n }\n\n triggers[newIndex].focus();\n event.preventDefault();\n}\n\ndocument.querySelectorAll(\".accordion\").forEach((accordion) => {\n let details = $$(\"details\", accordion);\n\n details.forEach ((detail) => {\n detail.addEventListener(\"toggle\", function(e) {\n\n if (e.target.getAttribute(\"open\") !== null) {\n $$(\"details[open]\", accordion).forEach((openTab) => {\n if (openTab !== e.target) {\n openTab.removeAttribute(\"open\");\n }\n })\n\n let scrollTop = window.pageYOffset || document.documentElement.scrollTop\n let samBar = 0;\n\n if ($(\"body\").classList.contains(\"samadmin\")) {\n samBar = 97;\n }\n\n window.scroll({\n top: e.target.getBoundingClientRect()[\"top\"] + scrollTop - samBar - 20,\n behavior: 'smooth'\n });\n }\n })\n })\n accordion.addEventListener(\"keydown\", onKeyDownOnAccordion);\n});", "const $ = (selector, parent = document) => parent.querySelector(selector);\nconst $$ = (selector, parent = document) => parent.querySelectorAll(selector);\n\nconst desktopMediaQuery = window.matchMedia('(max-width: 1023px)');\nconst mobileMenu = $(\"header[role='banner'].platforma-nav-with-utility\");\n\nfunction toggleMobileMenu() {\n const button = $(`.platforma-nav-with-utility [aria-controls=\"primary-nav\"]`);\n const state = button.getAttribute(\"aria-expanded\");\n const isOpen = state === \"true\";\n const mobileMenu = $(\"header[role='banner'].platforma-nav-with-utility\");\n\n button.setAttribute(\"aria-expanded\", isOpen ? \"false\" : \"true\");\n button.innerText = isOpen ? \"Menu\" : \"Close\";\n mobileMenu.classList.toggle(\"menu-open\");\n $(\"body\").classList.toggle(\"overflow-hidden\");\n}\n\nfunction openSubnav(parent) {\n const button = $(\"button\", parent);\n\n parent?.classList.add(\"open\");\n button?.setAttribute(`aria-expanded`, `true`);\n}\n\nfunction closeSubnav(parent) {\n const button = $(\"button\", parent);\n\n parent?.classList.remove(\"open\");\n button?.setAttribute(`aria-expanded`, `false`);\n}\n\nfunction closeSubnavs() {\n const openMenus = $$(\".platforma-nav-with-utility .isParent.open, .platforma-nav-with-utility .isGrandParent.open\");\n openMenus.forEach(function(menu) {\n closeSubnav(menu);\n })\n}\n\ndocument.addEventListener(\"click\", function(event) {\n const button = event.target.closest(`.platforma-nav-with-utility [aria-controls=\"primary-nav\"]`);\n if (!button) {\n return;\n }\n\n toggleMobileMenu();\n});\n\ndocument.addEventListener('touchend', function (event) {\n let closest = event.target.closest(\".platforma-nav-with-utility:not(.menu-open) .isParent > a, .platforma-nav-with-utility:not(.menu-open) .isGrandParent > a\");\n if ($(\".platforma-nav-with-utility.menu-open\")) {\n return;\n }\n if (!closest){\n closeSubnavs();\n return;\n }\n let parent = closest.parentNode;\n if (parent.classList.contains(\"open\")) return;\n\n closeSubnavs();\n openSubnav(parent);\n event.preventDefault();\n}, false);\n\ndocument.addEventListener('mouseover', function (event) {\n let closest = event.target.closest(\".platforma-nav-with-utility:not(.menu-open) nav > ul > .isParent, .platforma-nav-with-utility:not(.menu-open) nav > ul > .isGrandParent\");\n if (!closest) return;\n openSubnav(closest);\n}, false);\n\ndocument.addEventListener('mouseout', function (event) {\n let closest = event.target.closest(\".platforma-nav-with-utility:not(.menu-open) nav > ul > .isParent, .platforma-nav-with-utility:not(.menu-open) nav > ul > .isGrandParent\");\n if (!closest) return;\n closeSubnav(closest);\n}, false);\n\ndocument.addEventListener('click', function (event) {\n let closest = event.target.closest(\".platforma-nav-with-utility:not(.menu-open) .primary-nav a + button\");\n if (!closest) return;\n\n let $toggle = closest;\n let $navItem = $toggle.closest(`li`);\n let $otherNavItems = Array.prototype.filter.call($navItem.parentNode.children, function(child){\n return child !== $navItem;\n });\n\n $otherNavItems.forEach(item => {\n closeSubnav(item);\n })\n\n if ($navItem.classList.contains(\"open\")) {\n closeSubnav($navItem);\n } else {\n openSubnav($navItem);\n }\n}, false);\n\ndocument.addEventListener('click', function (event) {\n const targets = `\n .platforma-nav-with-utility.menu-open nav .isParent > a,\n .platforma-nav-with-utility.menu-open nav .isParent > button,\n .platforma-nav-with-utility.menu-open nav .isGrandParent > a,\n .platforma-nav-with-utility.menu-open nav .isGrandParent > button\n `\n\n const closest = event.target.closest(targets);\n if (!closest) return;\n\n const $navItem = closest.parentNode;\n let siblings = Array.prototype.filter.call($navItem.parentNode.children, function(child){\n return child !== $navItem;\n });\n\n event.preventDefault();\n\n if ($navItem.classList.contains(`open`)) {\n closeSubnav($navItem);\n } else {\n openSubnav($navItem);\n siblings.forEach(sibling => {\n closeSubnav(sibling);\n })\n }\n}, false);\n\nfunction throttle(fn, wait) {\n let time = Date.now();\n return function() {\n if ((time + wait - Date.now()) < 0) {\n fn();\n time = Date.now();\n }\n }\n}\n\nfunction scrollTo(id) {\n let $el = $(id);\n let scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n let $header = $(\"header[role='banner']\");\n\n if (!$el) {\n return;\n }\n\n let headerOffset = 0 + $header.offsetHeight;\n if ($(\"body\").classList.contains(\"samadmin\")) {\n headerOffset = headerOffset + 97;\n }\n\n window.scroll({\n top: $el.getBoundingClientRect()[\"top\"] + scrollTop\n - headerOffset\n - 45 /* Extra padding for visual look */,\n behavior: 'smooth'\n });\n};\n\nfunction setHeaderTop(header) {\n let height = header.offsetHeight;\n if ($(\"body\").classList.contains(\"samadmin\")) {\n let adminBarHeight = $(\"#SAMAdminTools\").offsetHeight;\n height = height - adminBarHeight;\n }\n height = height * -1;\n header.style.top = `${height}px`;\n}\n\nlet lastScrollTop = window.pageYOffset || document.documentElement.scrollTop;\nlet header = $(\"header.platforma-nav-with-utility\");\nlet inPageHeader = true;\nlet resizeTimer;\n\nif (header) {\n window.addEventListener('load', function () {\n setHeaderTop(header);\n })\n\n window.addEventListener('resize', function(e) {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function() {\n setHeaderTop(header);\n\n if (!desktopMediaQuery.matches) {\n if (mobileMenu.classList.contains(\"menu-open\")) {\n toggleMobileMenu();\n }\n }\n }, 250);\n });\n}\n\nlet scrollCallback = function(){\n\n let scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n let diff = Math.abs(lastScrollTop - scrollTop);\n if (!header.classList.contains(\"menu-open\")) {\n if (scrollTop> lastScrollTop){\n if (header.classList.contains(\"unfold\") && diff > 10) {\n header.classList.remove(\"unfold\");\n header.style.transform = `translateY(0px)`;\n }\n } else {\n if (!header.classList.contains(\"unfold\") && diff > 10 && !inPageHeader) {\n header.classList.add(\"unfold\");\n header.style.transform = `translateY(${header.offsetHeight}px)`;\n } else if (header.classList.contains(\"unfold\") && inPageHeader) {\n header.classList.remove(\"unfold\");\n header.style.transform = `translateY(0px)`;\n }\n }\n }\n\n if (diff > 10) {\n lastScrollTop = scrollTop<= 0 ? 0 : scrollTop; // For Mobile or negative scrolling\n }\n}\n\nlet intersectionCallback = (entries, observer) => {\n entries.forEach(entry => {\n inPageHeader = entry.isIntersecting;\n });\n};\n\nlet options = {\n root: null,\n rootMargin: `0px`,\n threshold: 0\n}\n\nlet observer = new IntersectionObserver(intersectionCallback, options);\nobserver.observe($(\"main > *:first-child\"));\nwindow.addEventListener(\"scroll\", throttle(scrollCallback, 25) , false);", "const $ = (selector, parent = document) => parent.querySelector(selector);\nconst $$ = (selector, parent = document) => parent.querySelectorAll(selector);\n\nconst BACKSPACE = 8;\nconst TAB = 9;\nconst ENTER = 13;\nconst SHIFT = 16;\nconst ESCAPE = 27;\nconst SPACE = 32;\nconst PAGE_UP = 33;\nconst PAGE_DOWN = 34;\nconst END = 35;\nconst HOME = 36;\nconst ARROW_LEFT = 37;\nconst ARROW_UP = 38;\nconst ARROW_RIGHT = 39;\nconst ARROW_DOWN = 40;\nconst DELETE = 46;\n\nconst direction = {\n 37: -1,\n 38: -1,\n 39: 1,\n 40: 1,\n};\n\n// Tabs with Automatic Activation\n// https://www.w3.org/TR/wai-aria-practices/examples/tabs/tabs-1/tabs.html\nclass A11yTab {\n constructor(tablist, options = {}) {\n this.tablist = tablist;\n this.orientation = tablist.getAttribute(\"aria-orientation\") || \"horizontal\";\n const tabs = this.tabs = [];\n const panels = this.panels = [];\n const tabImages = this.tabImages = [];\n\n // Bind.\n this.onKeydown = this.onKeydown.bind(this);\n this.onKeyup = this.onKeyup.bind(this);\n this.onClick = this.onClick.bind(this);\n this.focusEventHandler = this.focusEventHandler.bind(this);\n\n // Determine whether there should be a delay when user navigates with\n // the arrow keys, default is\n this.delay = tablist.getAttribute(\"data-delay\") || 0;\n\n const hash = window.location.hash;\n\n let activeTab;\n tablist.querySelectorAll(`[role=\"tab\"]`).forEach((tab, index) => {\n tabs.push(tab);\n const panelId = tab.getAttribute(\"aria-controls\");\n panels.push(document.getElementById(panelId));\n tabImages.push(document.getElementById(`${panelId}-image`));\n\n const active = hash === `#${ panelId }`;\n if (active) {\n activeTab = tab;\n }\n\n tab.addEventListener(\"click\", this.onClick, false);\n tab.addEventListener(\"keydown\", this.onKeydown, false);\n tab.addEventListener(\"keyup\", this.onKeyup, false);\n });\n\n if (activeTab) {\n this.activateTab(activeTab);\n }\n }\n\n /**\n * Click event listener\n *\n * When a tab is clicked, activateTab is fired to activate it\n *\n * @param {object} event\n * @return void\n */\n onClick(event) {\n const tab = event.target;\n this.activateTab(tab, false);\n\n const href = tab.getAttribute(\"href\");\n if (href) {\n event.preventDefault();\n }\n }\n\n /**\n * Keydown event listener\n *\n * Handle keydown on tabs\n *\n * @param {object} event\n * @return void\n */\n onKeydown(event) {\n const { keyCode: key } = event;\n\n const codes = {\n [END]: () => {\n event.preventDefault();\n this.activateTab(this.tabs[this.tabs.length - 1]);\n },\n [HOME]: () => {\n event.preventDefault();\n this.activateTab(this.tabs[0]);\n },\n [PAGE_UP]: () => this.determineOrientation(event),\n [PAGE_DOWN]: () => this.determineOrientation(event),\n // Up and down are in keydown because we need to prevent page scroll >:)\n [ARROW_UP]: () => this.determineOrientation(event),\n [ARROW_DOWN]: () => this.determineOrientation(event),\n default: () => false,\n };\n\n return (codes[key] || codes.default)();\n }\n\n /**\n * Keyup event listener\n *\n * Handle keyup on tabs\n *\n * @param {object} event\n * @return void\n */\n onKeyup(event) {\n const { keyCode: key, target } = event;\n // const selected = target.getAttribute(\"aria-selected\") === \"true\";\n\n const codes = {\n [ARROW_LEFT]: () => this.determineOrientation(event),\n [ARROW_RIGHT]: () => this.determineOrientation(event),\n // [DELETE]: () => selected && this.determineDeletable(event),\n // [BACKSPACE]: () => selected && this.determineDeletable(event),\n default: () => false,\n };\n\n return (codes[key] || codes.default)();\n }\n\n /**\n * Determine orientation\n *\n * When a tablist's aria-orientation is set to vertical, only up and down\n * arrow should function. In all other cases only left and right arrow\n * function.\n *\n * @param {object} event\n */\n determineOrientation(event) {\n const { keyCode: key } = event;\n const vertical = \"vertical\" === this.orientation;\n let proceed = false;\n\n if (vertical && (key === PAGE_UP || key === PAGE_DOWN || key === ARROW_UP || key === ARROW_DOWN)) {\n event.preventDefault();\n proceed = true;\n } else if (key === ARROW_LEFT || key === ARROW_RIGHT) {\n proceed = true;\n }\n\n if (proceed) {\n this.switchTabOnArrowPress(event);\n }\n }\n\n /**\n * Switch tab on arrow press\n *\n * Either focus the next, previous, first, or last tab depening on key\n * pressed\n *\n * @param {object} event\n * @return void\n */\n switchTabOnArrowPress(event) {\n const { target, keyCode: key } = event;\n const tabs = this.tabs;\n\n tabs.forEach(tab => tab.addEventListener(\"focus\", this.focusEventHandler));\n\n if (direction[key]) {\n const index = this.tabs.indexOf(target);\n if (index !== undefined) {\n if (this.tabs[index + direction[key]]) {\n this.tabs[index + direction[key]].focus();\n } else if (key === ARROW_LEFT || key === PAGE_UP || key === ARROW_UP) {\n this.focusLastTab();\n } else if (key === ARROW_RIGHT || key === PAGE_DOWN || key === ARROW_DOWN) {\n this.focusFirstTab();\n }\n }\n }\n }\n\n /**\n * Activate tab\n *\n * Activates any given tab panel\n *\n * @param {object} tab\n * @param {boolean} [setFocus=true]\n * @return void\n */\n activateTab(tab, setFocus = true) {\n // Deactivate all other tabs\n this.deactivateTabs();\n\n tab.setAttribute(\"tabindex\", 0);\n // Set the tab as selected\n tab.setAttribute(\"aria-selected\", \"true\");\n // Get the value of aria-controls (which is an ID)\n const panelId = tab.getAttribute(\"aria-controls\");\n const panel = document.getElementById(panelId);\n const tabImage = document.getElementById(`${panelId}-image`);\n const panelDetails = $(\"details\", panel);\n\n // Remove hidden attribute from tab panel to make it visible\n // panel.removeAttribute(\"aria-hidden\");\n panel.classList.add(\"open\");\n panelDetails.setAttribute(\"open\",\"open\");\n\n if (tabImage) {\n tabImage.classList.remove(\"hidden\");\n }\n\n // Set focus when required\n if (setFocus) {\n tab.click();\n } else {\n history.replaceState(null, null, `#${ panel.id}`);\n }\n\n const event = new CustomEvent(\"change\", {\n detail: {\n currentTab: tab,\n currentIndex: this.tabs.indexOf(tab),\n }\n });\n this.tablist.dispatchEvent(event);\n\n // Dispatches a \"resize\" event so content inside tabs can redraw if needs.\n window.dispatchEvent(new Event(\"resize\"));\n }\n\n /**\n * Deactivate tabs\n *\n * Deactivate all tabs and tab panels\n *\n * @return void\n */\n deactivateTabs() {\n this.tabs.forEach(tab => {\n tab.setAttribute(\"tabindex\", -1);\n tab.setAttribute(\"aria-selected\", \"false\");\n tab.removeEventListener(\"focus\", this.focusEventHandler);\n });\n\n this.panels.forEach(panel => {\n const panelDetails = $(\"details\", panel);\n //panel.setAttribute(\"aria-hidden\", \"true\");\n panel.classList.remove(\"open\");\n panelDetails.removeAttribute(\"open\");\n });\n\n this.tabImages.forEach(image => {\n image.classList.add(\"hidden\");\n })\n }\n\n /**\n * Focus first tab\n *\n * @return\n */\n focusFirstTab() {\n return this.tabs[0].focus();\n }\n\n\n /**\n * Focus last tab\n *\n * @return\n */\n focusLastTab() {\n return this.tabs[this.tabs.length - 1].focus();\n }\n\n /**\n * Focus event handler\n *\n * @param {object} event\n * @return void\n */\n focusEventHandler(event) {\n const { target } = event;\n\n setTimeout(() => {\n this.checkTabFocus(target);\n }, this.delay);\n }\n\n /**\n * Check tab focus\n *\n * Only activate tab on focus if it still has focus after the delay\n *\n * @param {object} target\n * @return void\n */\n checkTabFocus(target) {\n const focused = document.activeElement;\n\n if (target === focused) {\n this.activateTab(target, false);\n }\n }\n}\n\n/** @type {NodeListOf} */\nconst tabsCollections = document.querySelectorAll(\"[role=\\\"tablist\\\"\");\nfor (let i = 0, count = tabsCollections.length; i < count; i++) {\n new A11yTab(tabsCollections[i], {\n\n });\n}\n\nconst tabContainers = document.querySelectorAll('.tabs');\ntabContainers.forEach(function(tabContainer) {\n const tabDetails = document.querySelectorAll('details', tabContainer);\n\n tabDetails.forEach(function(detail){\n detail.addEventListener(\"toggle\", closeOthers);\n })\n\n function closeOthers(e) {\n if (e.target.open) {\n tabDetails.forEach(function(detail){\n if (detail!= e.target && detail.open) {\n detail.open = false;\n }\n });\n }\n }\n})\n\nexport default A11yTab;\n", "const $ = (selector, parent = document) => parent.querySelector(selector);\nconst $$ = (selector, parent = document) => parent.querySelectorAll(selector);\n\nconst submarketMap = {\n \"Midstream\": [\"NGL Fractionation\", \"Gas Processing\"],\n \"Terminals\": [\"Ethane\",\"LPG\",\"Ethane & LPG\",\"Refined Products\"],\n \"Chemicals & Refining\": [\"Petrochemicals\",\"Refining\",\"Syngas\",\"Renewable Fuels\",\"Specialty Chemicals\"],\n \"Energy Transition\": [\"Renewable Fuels\",\"Ethanol\",\"Hydrogen\",\"Carbon Capture\"],\n \"Advanced Recycling\": [],\n \"Power & Industrial\": [\"Manufacturing\",\"Cogeneration\",\"Simple & Combined Cycle\"],\n \"Marine\": [],\n \"Infrastructure\": [\"Transportation\",\"Water\",\"Federal\"],\n \"Federal\": [],\n \"Pulp & Paper\": []\n};\n\nfunction restrictSubmarkets(market) {\n const submarkets = $$(`fieldset[name=\"submarket\"] label`);\n const allSubmarketInput = $(`fieldset[name=\"submarket\"] input[id=\"submarket-all\"]`);\n const control = allSubmarketInput.parentNode.parentNode.parentNode;\n const controlButton = $(\"button\", control);\n const buttonText = $(\".button-text\", controlButton);\n\n $(`fieldset[name=\"submarket\"] input#submarket-all + span`).textContent = \"All\";\n allSubmarketInput.checked = true;\n buttonText.textContent = controlButton.getAttribute(\"data-field\");\n submarkets.forEach((submarket, index) => {\n if (index !== 0) {\n submarket.classList.add(\"hidden\");\n }\n })\n\n if (market === \"on\") {\n submarkets.forEach((submarket, index) => {\n if (index !== 0) {\n submarket.classList.remove(\"hidden\");\n }\n })\n } else {\n const validSubmarkets = submarketMap[market];\n if (validSubmarkets.length === 0) {\n $(`fieldset[name=\"submarket\"] input#submarket-all + span`).textContent = \"None\";\n } else {\n validSubmarkets.forEach((submarket) => {\n $(`fieldset[name=\"submarket\"] input[value=\"${submarket}\"]`).parentNode.classList.remove(\"hidden\");\n })\n }\n }\n}\n\nfunction getParams (url = window.location) {\n let params = {};\n\n new URL(url).searchParams.forEach(function (val, key) {\n if (params[key] !== undefined) {\n if (!Array.isArray(params[key])) {\n params[key] = [params[key]];\n }\n params[key].push(val);\n } else {\n params[key] = val;\n }\n });\n\n return params;\n}\n\nfunction scrollTo (element) {\n let scrollTop = window.pageYOffset || document.documentElement.scrollTop\n if (!element) {\n return;\n }\n\n let headerOffset = 0;\n if ($(\"body\").classList.contains(\"samadmin\")) {\n headerOffset = headerOffset + 97;\n }\n\n window.scroll({\n top: element.getBoundingClientRect()[\"top\"] + scrollTop\n - headerOffset\n - 45 /* Extra padding for visual look */,\n behavior: 'smooth'\n });\n};\n\nclass FilterList {\n constructor(component, options = {}) {\n const filterControls = $$(\".filter-control fieldset\", component);\n const filterButtons = $$(\".filter-control > button\", component);\n const searchControl = $(\".filter-search\");\n const loadMoreSection = $(\".load-more\", component.parentNode);\n const emptyMessage = $(\".empty-message\", component.parentNode);\n const items = $$(\"div[itemprop='itemListElement']\", component.parentNode);\n const filters = $$(\".filter-control input[type='radio']\", component);\n const displayAmount = 6;\n let filterSelectors = [];\n let queryParams = getParams();\n\n filterControls.forEach(fieldset => {\n filterSelectors.push(`.filter-control input[name='${fieldset.name}']:checked`);\n\n //Sorts the filter options\n let items = fieldset.childNodes;\n let itemsArr = [];\n for (var i in items) {\n if (items[i].nodeType == 1) { // get rid of the whitespace text nodes\n itemsArr.push(items[i]);\n }\n }\n\n itemsArr.sort(function(a, b) {\n let aSpan = $(\"span\", a);\n let bSpan = $(\"span\", b);\n let aSpanText = aSpan.innerHTML.toLowerCase();\n let bSpanText = bSpan.innerHTML.toLowerCase();\n\n if(bSpanText === 'all') {\n return 1;\n } else if (aSpanText === 'all') {\n return -1;\n } else if (aSpanText == bSpanText) {\n return 0;\n } else if (aSpanText > bSpanText) {\n return 1;\n } else {\n return -1;\n }\n });\n\n for (let i = 0; i < itemsArr.length; ++i) {\n fieldset.appendChild(itemsArr[i]);\n }\n })\n\n this.displayAmount = displayAmount;\n this.searchControl = searchControl;\n this.filterSelectors = filterSelectors;\n this.loadMoreSection = loadMoreSection;\n this.emptyMessage = emptyMessage;\n this.items = items;\n this.filterControls = filterControls;\n this.filterButtons = filterButtons;\n this.revealItems = this.revealItems.bind(this);\n this.filterItems = this.filterItems.bind(this);\n this.openFilters = this.openFilters.bind(this);\n this.closeFilters = this.closeFilters.bind(this);\n this.initLoadMore = this.initLoadMore.bind(this);\n this.loadMore = this.loadMore.bind(this);\n this.component = component;\n let filterItems = this.filterItems;\n let openFilters = this.openFilters;\n let closeFilters = this.closeFilters;\n\n filters.forEach(input => {\n input.addEventListener('change', () => {\n const control = input.parentNode.parentNode.parentNode;\n const fieldset = input.parentNode.parentNode\n const controlButton = $(\"button\", control);\n const buttonText = $(\".button-text\", controlButton);\n\n if (input.value === \"on\") {\n buttonText.textContent = controlButton.getAttribute(\"data-field\");\n } else {\n buttonText.textContent = input.value;\n }\n\n if (fieldset.getAttribute(\"name\") === \"market\" && $(`fieldset[name=\"submarket\"]`, component.parentNode)) {\n restrictSubmarkets(input.value);\n }\n\n this.filterItems();\n })\n })\n\n //Selects filters when query strings are passed\n let filterQuery = false;\n Object.keys(queryParams).forEach(param => {\n let radio = $(`.filter-control input[type='radio'][name='${param}'][value='${queryParams[param]}']`);\n if (radio) {\n let evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n radio.dispatchEvent(evt);\n filterQuery = true;\n }\n })\n\n if (filterQuery) {\n scrollTo(component.parentNode);\n }\n\n //Close filter on outer click\n document.addEventListener('click', function (event) {\n let closest = event.target.closest(\".filter-control\");\n if (closest) return;\n\n closeFilters();\n }, false);\n\n document.addEventListener('click', function (event) {\n let closest = event.target.closest(\"button.filter-button\");\n if (!closest) return;\n\n openFilters(closest);\n }, false);\n\n if (searchControl) {\n $(\"input\", searchControl).addEventListener('keyup', function(event) {\n if (event.code === 'Enter') {\n event.preventDefault();\n filterItems();\n }\n });\n $(\"button\", searchControl).addEventListener(\"click\", this.filterItems);\n }\n\n if (loadMoreSection && items.length > displayAmount) {\n loadMoreSection.classList.remove(\"hidden\");\n $(\"button\", loadMoreSection).addEventListener(\"click\", this.loadMore);\n }\n\n //Catch browsers retained radio button selection on back button hit\n setTimeout(() => {\n filterItems();\n }, 200);\n }\n\n filterItems() {\n let items = this.items;\n\n this.closeFilters();\n\n items.forEach(item => {\n item.classList.remove(\"filtered\");\n item.classList.remove(\"revealed\");\n })\n\n const unspecifiedFilters = [];\n\n this.filterSelectors.forEach(selector => {\n const filter = $(selector, this.component);\n let value = filter.value;\n let name = filter.name;\n\n if (value !== 'on') {\n items.forEach(item => {\n let content = item.getAttribute(`data-${name}`);\n if (content.indexOf(value) === -1) {\n if (\"Engineering,Procurement,Construction\".indexOf(value) !== -1) {\n if (content.indexOf(\"Integrated EPC\") === -1) {\n item.classList.add(\"filtered\");\n }\n } else {\n item.classList.add(\"filtered\");\n }\n }\n })\n } else {\n unspecifiedFilters.push(filter);\n }\n })\n\n if (this.searchControl) {\n let searchInput = $(\"input\", this.searchControl).value.toLowerCase();\n\n if (searchInput !== '') {\n items.forEach(item => {\n let content = item.textContent.toLowerCase();\n if (content.indexOf(searchInput) === -1) {\n item.classList.add(\"filtered\");\n }\n })\n }\n }\n\n let remainingItems = Array.from($$(\"div[itemprop='itemListElement']:not(.filtered)\", this.component.parentNode));\n\n // Hides options in other filters which would not yield results.\n unspecifiedFilters.forEach((filter) => {\n const name = filter.name;\n const options = filter.closest(`fieldset[name=${name}]`).querySelectorAll(`input[type='radio'][value]`);\n options.forEach(({ value, parentElement }) => {\n const items = remainingItems.filter((item) => item.getAttribute(`data-${name}`) === value);\n parentElement.toggleAttribute(\"hidden\", !items.length);\n });\n });\n\n if (remainingItems.length === 0) {\n this.emptyMessage.classList.remove(\"hidden\");\n } else {\n this.emptyMessage.classList.add(\"hidden\");\n }\n\n if (this.loadMoreSection) {\n remainingItems = Array.prototype.slice.call(remainingItems);\n this.revealItems(remainingItems);\n }\n }\n\n initLoadMore(targetedItems) {\n this.items.forEach(item => {\n item.classList.remove(\"hidden\");\n })\n\n if (targetedItems.length > this.displayAmount) {\n\n targetedItems.forEach((item, index) => {\n if (index >= this.displayAmount) {\n item.classList.add(\"hidden\");\n }\n })\n\n this.loadMoreSection.classList.remove(\"hidden\");\n } else {\n this.loadMoreSection.classList.add(\"hidden\");\n }\n }\n\n loadMore() {\n let hiddenNotFiltered = $$(\"div[itemprop='itemListElement']:not(.revealed):not(.filtered)\", this.component.parentNode);\n let items = Array.prototype.slice.call(hiddenNotFiltered);\n this.revealItems(items);\n }\n\n revealItems(items) {\n let slicedItems = items.slice(0, this.displayAmount);\n\n slicedItems.forEach(item => {\n item.classList.add(\"revealed\");\n })\n\n if (items.length <= this.displayAmount) {\n this.loadMoreSection.classList.add(\"hidden\");\n } else {\n this.loadMoreSection.classList.remove(\"hidden\");\n }\n }\n\n openFilters(button) {\n let fieldset = button.nextElementSibling;;\n let openedFilters = $$(\".filter-control fieldset.block\");\n let opened = fieldset.classList.contains(\"block\");\n\n openedFilters.forEach(filter => {\n filter.classList.remove(\"block\");\n filter.classList.add(\"hidden\");\n filter.previousElementSibling.setAttribute(\"aria-expanded\",\"false\");\n })\n\n if (!opened) {\n fieldset.classList.add(\"block\");\n fieldset.classList.remove(\"hidden\");\n button.setAttribute(\"aria-expanded\",\"true\");\n }\n }\n\n closeFilters() {\n let openedFilters = $$(\".filter-control fieldset.block\");\n\n openedFilters.forEach(filter => {\n filter.classList.remove(\"block\");\n filter.classList.add(\"hidden\");\n filter.previousElementSibling.setAttribute(\"aria-expanded\",\"false\");\n })\n }\n}\n\nconst filterForms = document.querySelectorAll(\".filters\");\nfor (let i = 0, count = filterForms.length; i < count; i++) {\n new FilterList(filterForms[i], {\n\n });\n}\n\nexport default FilterList;\n", "const $ = (selector, parent = document) => parent.querySelector(selector);\nconst $$ = (selector, parent = document) => parent.querySelectorAll(selector);\n\nconst shareTool = $(\".article-share-tool\");\nconst shareButton = $(\".share\");\n\nif (shareTool) {\n let url = document.location.href;\n let title = document.title;\n\n $(\".article-share-tool .icon-facebook\")?.setAttribute(\"href\",`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(url)}&t=${encodeURIComponent(title)}`);\n $(\".article-share-tool .icon-twitter\")?.setAttribute(\"href\",`https://twitter.com/intent/tweet?text=${encodeURIComponent(title)}&url=${encodeURIComponent(url)}`);\n $(\".article-share-tool .icon-linkedin\")?.setAttribute(\"href\",`https://www.linkedin.com/shareArticle?mini=true&url=${encodeURIComponent(url)}&title=${encodeURIComponent(title)}`);\n const mailHREF = $(\".article-share-tool .mailto\")?.getAttribute(\"href\");\n $(\".article-share-tool .mailto\")?.setAttribute(\"href\", `${mailHREF}&body=${encodeURIComponent(url)}`);\n}\n\nif (shareButton) {\n document.addEventListener(\"click\", function(event) {\n const popup = event.target.closest(`.share-popup`);\n if (!popup) {\n shareButton.parentNode.classList.remove(\"open-share\");\n return;\n }\n });\n\n document.addEventListener(\"click\", function(event) {\n const close = event.target.closest(`.share-popup .close`);\n if (!close) {\n return;\n }\n\n shareButton.parentNode.classList.toggle(\"open-share\");\n });\n\n document.addEventListener(\"click\", function(event) {\n const button = event.target.closest(`.share`);\n if (!button) {\n return;\n }\n\n button.parentNode.classList.toggle(\"open-share\");\n });\n\n document.addEventListener(\"click\", function(event) {\n const copy = event.target.closest(`.share-popup .copy`);\n if (!copy) {\n return;\n }\n\n navigator.clipboard.writeText(window.location.href).then(() => {\n $(\".share-popup #popup-message\").textContent = \"Copied page URL to clipboard\";\n })\n });\n}", "const $ = (selector, parent = document) => parent.querySelector(selector);\nconst $$ = (selector, parent = document) => parent.querySelectorAll(selector);\nconst videoLinks = $$(\".video-embed a\");\n\nfunction youtube_parser(url){\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n const match = url.match(regExp);\n return match && match[2].length === 11 ? match[2] : undefined;\n}\n\nfunction vimeo_parser(url){\n const match = /vimeo.*\\/(\\d+)/i.exec(url);\n if (match) {\n return match[1];\n } else {\n return undefined;\n }\n}\n\nvideoLinks.forEach((link) => {\n const url = link.href;\n let formattedURL = \"\";\n\n if (url.indexOf(\"youtu\") !== -1) {\n const ID = youtube_parser(url);\n if (ID) {\n formattedURL = `https://www.youtube.com/embed/${ID}?autoplay=1&rel=0`;\n }\n } else if (url.indexOf(\"vimeo\") !== -1) {\n const ID = vimeo_parser(url);\n if (ID) {\n formattedURL = `https://player.vimeo.com/video/${ID}?h=5d4560c5a6&color=00a7a1&title=0&byline=0&portrait=0&autoplay=1`;\n }\n }\n\n if (formattedURL !== \"\") {\n link.addEventListener(\"click\", function(event) {\n event.preventDefault();\n const replacementDiv = document.createElement('div');\n const videoEmbed = ``;\n replacementDiv.innerHTML = videoEmbed;\n link.replaceWith(replacementDiv);\n })\n }\n});", "const $ = (selector, parent = document) => parent.querySelector(selector);\nconst $$ = (selector, parent = document) => parent.querySelectorAll(selector);\n\nclass FloatParallax {\n constructor(target) {\n this.viewportHeight = 0;\n this.distance = 50;\n this.fromTop = false;\n this.time = Date.now();\n this.wait = 10;\n this.target = target;\n this.desktop = window.matchMedia('(min-width: 768px)');\n\n this.boundScroll = () => this.onScroll();\n this.boundThrottle = (fn, wait) => this.throttle(fn, wait);\n }\n\n easeInOut(currentProgress) {\n currentProgress /= this.viewportHeight / 2;\n if (currentProgress < 1) {\n return Math.round((this.distance / 2) * (Math.pow(currentProgress, 3)));\n }\n currentProgress -= 2;\n return Math.round(this.distance / 2 * (Math.pow(currentProgress, 3) + 2));\n }\n\n triggerIntersection(fromTop, viewportHeight) {\n this.viewportHeight = viewportHeight;\n this.linkToScroll();\n }\n\n leaveIntersection() {\n this.unlinkToScroll();\n }\n\n linkToScroll() {\n this.startY = window.scrollY;\n window.addEventListener(\"scroll\", this.boundScroll, false);\n }\n\n unlinkToScroll() {\n window.removeEventListener(\"scroll\", this.boundScroll, false);\n }\n\n onScroll() {\n if ((this.time + this.wait - Date.now()) < 0) {\n let imageTop = this.target.getBoundingClientRect().top;\n if (imageTop > 0) {\n let move = this.distance - this.easeInOut(imageTop);\n if (!this.desktop.matches) {\n move = 0;\n }\n this.target.style.transform = `translateY(${move}px)`;\n this.time = Date.now();\n }\n }\n }\n}\n\nconst animationElements = $$(\".float-parallax\");\nconst animations = [];\n\nlet options = {\n root: document.querySelector(\"null\"),\n rootMargin: \"0% 0% -25% 0%\",\n threshold: 0\n};\n\nlet callback = function animationCallback(entries, observer) {\n entries.forEach(entry => {\n let animationIndex = Array.prototype.indexOf.call(animationElements, entry.target);\n if (entry.isIntersecting) {\n let fromTop = false;\n if (entry.intersectionRect.y === 0) {\n fromTop = true;\n }\n animations[animationIndex].triggerIntersection(fromTop, entry.rootBounds.height);\n } else {\n animations[animationIndex].leaveIntersection();\n }\n });\n};\n\nlet observer = new IntersectionObserver(callback, options);\n\nanimationElements.forEach(function animate(animation) {\n let target = $(\".float-target\", animation);\n let floatAnimation = new FloatParallax(target);\n\n animations.push(floatAnimation);\n observer.observe(animation);\n});", "/* blaze-slider v1.9.3 by Manan Tank */\n/**\n * calculate pages and return\n */\nfunction calculatePages(slider) {\n const { slidesToShow, slidesToScroll, loop } = slider.config;\n const { isStatic, totalSlides } = slider;\n const pages = [];\n const lastIndex = totalSlides - 1;\n // start with index 0, keep adding slidesToScroll to get the new page\n for (let startIndex = 0; startIndex < totalSlides; startIndex += slidesToScroll) {\n const _endIndex = startIndex + slidesToShow - 1;\n const overflow = _endIndex > lastIndex;\n if (overflow) {\n // if not looped\n if (!loop) {\n // adjust the startIndex\n const startIndex = lastIndex - slidesToShow + 1;\n const lastPageIndex = pages.length - 1;\n // create page only if adjusting the startIndex does not make it the same as previously saved page\n if (pages.length === 0 ||\n (pages.length > 0 && pages[lastPageIndex][0] !== startIndex)) {\n pages.push([startIndex, lastIndex]);\n }\n break;\n }\n // if looped\n else {\n // adjust the endIndex\n const endIndex = _endIndex - totalSlides;\n pages.push([startIndex, endIndex]);\n }\n }\n else {\n pages.push([startIndex, _endIndex]);\n }\n // if static, only allow 1 iteration\n if (isStatic) {\n break;\n }\n }\n return pages;\n}\n\n/**\n * calculate all possible states of given slider\n */\nfunction calculateStates(slider) {\n const { totalSlides } = slider;\n const { loop } = slider.config;\n // get all possible pages\n const pages = calculatePages(slider);\n const states = [];\n const lastPageIndex = pages.length - 1;\n for (let pageIndex = 0; pageIndex < pages.length; pageIndex++) {\n // calculate prev and next page index based on config\n let nextPageIndex, prevPageIndex;\n if (loop) {\n nextPageIndex = pageIndex === lastPageIndex ? 0 : pageIndex + 1;\n prevPageIndex = pageIndex === 0 ? lastPageIndex : pageIndex - 1;\n }\n else {\n nextPageIndex =\n pageIndex === lastPageIndex ? lastPageIndex : pageIndex + 1;\n prevPageIndex = pageIndex === 0 ? 0 : pageIndex - 1;\n }\n const currentPageStartIndex = pages[pageIndex][0];\n const nextPageStartIndex = pages[nextPageIndex][0];\n const prevPageStartIndex = pages[prevPageIndex][0];\n // calculate slides that need to be moved for transitioning to next and prev state from current state\n let nextDiff = nextPageStartIndex - currentPageStartIndex;\n if (nextPageStartIndex < currentPageStartIndex) {\n nextDiff += totalSlides;\n }\n let prevDiff = currentPageStartIndex - prevPageStartIndex;\n if (prevPageStartIndex > currentPageStartIndex) {\n prevDiff += totalSlides;\n }\n states.push({\n page: pages[pageIndex],\n next: {\n stateIndex: nextPageIndex,\n moveSlides: nextDiff,\n },\n prev: {\n stateIndex: prevPageIndex,\n moveSlides: prevDiff,\n },\n });\n }\n return states;\n}\n\nconst START = 'start';\nconst END = 'end';\nconst DEV = process.env.NODE_ENV !== 'production';\n\n/**\n * it fixes below scenarios which are wrong (and adds a warning in console in development)\n * - config.slidesToShow greater than totalSlides\n * - config.slidesToScroll greater than config.slidesToShow which skips showing certain slides\n * - config.slidesToScroll too high such that it causes glitches\n */\nfunction fixSliderConfig(slider) {\n const { slidesToScroll, slidesToShow } = slider.config;\n const { totalSlides, config } = slider;\n if (totalSlides < slidesToShow) {\n if (DEV) {\n console.warn('slidesToShow can not be larger than number of slides. Setting slidesToShow = totalSlides instead.');\n }\n config.slidesToShow = totalSlides;\n }\n if (totalSlides <= slidesToShow) {\n // return because slidesToScroll does not need to be checked\n return;\n }\n // detect slider skipping\n if (slidesToScroll > slidesToShow) {\n if (DEV) {\n console.warn('slidesToScroll can not be greater than slidesToShow. Setting slidesToScroll = slidesToShow instead');\n }\n config.slidesToScroll = slidesToShow;\n }\n // detect slider jumping glitch\n if (totalSlides < slidesToScroll + slidesToShow) {\n const properSlidesToScroll = totalSlides - slidesToShow;\n if (DEV) {\n console.warn(`slidesToScroll = ${slidesToScroll} is too large for a slider with ${totalSlides} slides with slidesToShow=${slidesToShow}, setting max possible slidesToScroll = ${properSlidesToScroll} instead.`);\n }\n config.slidesToScroll = properSlidesToScroll;\n }\n}\n\nclass Automata {\n constructor(totalSlides, config) {\n this.config = config;\n this.totalSlides = totalSlides;\n this.isTransitioning = false;\n constructAutomata(this, totalSlides, config);\n }\n next(pages = 1) {\n if (this.isTransitioning || this.isStatic)\n return;\n const { stateIndex } = this;\n let slidesMoved = 0;\n let newStateIndex = stateIndex;\n for (let i = 0; i < pages; i++) {\n const state = this.states[newStateIndex];\n slidesMoved += state.next.moveSlides;\n newStateIndex = state.next.stateIndex;\n }\n if (newStateIndex === stateIndex)\n return;\n this.stateIndex = newStateIndex;\n return [stateIndex, slidesMoved];\n }\n prev(pages = 1) {\n if (this.isTransitioning || this.isStatic)\n return;\n const { stateIndex } = this;\n let slidesMoved = 0;\n let newStateIndex = stateIndex;\n for (let i = 0; i < pages; i++) {\n const state = this.states[newStateIndex];\n slidesMoved += state.prev.moveSlides;\n newStateIndex = state.prev.stateIndex;\n }\n if (newStateIndex === stateIndex)\n return;\n this.stateIndex = newStateIndex;\n return [stateIndex, slidesMoved];\n }\n}\n// this will be called when slider is refreshed\nfunction constructAutomata(automata, totalSlides, config) {\n automata.stateIndex = 0;\n fixSliderConfig(automata);\n automata.isStatic = totalSlides <= config.slidesToShow;\n automata.states = calculateStates(automata);\n}\n\nfunction scrollPrev(slider, slideCount) {\n const rAf = requestAnimationFrame;\n if (!slider.config.loop) {\n noLoopScroll(slider);\n }\n else {\n // shift elements and apply negative transform to make it look like nothing changed\n // disable transition\n disableTransition(slider);\n // apply negative transform\n slider.offset = -1 * slideCount;\n updateTransform(slider);\n // and move the elements\n wrapPrev(slider, slideCount);\n const reset = () => {\n rAf(() => {\n enableTransition(slider);\n rAf(() => {\n slider.offset = 0;\n updateTransform(slider);\n onSlideEnd(slider);\n });\n });\n };\n // if the scroll was done as part of dragging\n // reset should be done after the dragging is completed\n if (slider.isDragging) {\n if (isTouch()) {\n slider.track.addEventListener('touchend', reset, { once: true });\n }\n else {\n slider.track.addEventListener('pointerup', reset, { once: true });\n }\n }\n else {\n rAf(reset);\n }\n }\n}\n// <--- move slider to left for showing content on right\nfunction scrollNext(slider, slideCount) {\n const rAf = requestAnimationFrame;\n if (!slider.config.loop) {\n noLoopScroll(slider);\n }\n else {\n // apply offset and let the slider scroll from <- (right to left)\n slider.offset = -1 * slideCount;\n updateTransform(slider);\n // once the transition is done\n setTimeout(() => {\n // remove the elements from start that are no longer visible and put them at the end\n wrapNext(slider, slideCount);\n disableTransition(slider);\n // apply transform where the slider should go\n slider.offset = 0;\n updateTransform(slider);\n rAf(() => {\n rAf(() => {\n enableTransition(slider);\n onSlideEnd(slider);\n });\n });\n }, slider.config.transitionDuration);\n }\n}\nfunction onSlideEnd(slider) {\n if (slider.onSlideCbs) {\n const state = slider.states[slider.stateIndex];\n const [firstSlideIndex, lastSlideIndex] = state.page;\n slider.onSlideCbs.forEach((cb) => cb(slider.stateIndex, firstSlideIndex, lastSlideIndex));\n }\n}\n\n// when loop is disabled, we must update the offset\nfunction noLoopScroll(slider) {\n slider.offset = -1 * slider.states[slider.stateIndex].page[0];\n updateTransform(slider);\n onSlideEnd(slider);\n}\nfunction wrapPrev(slider, count) {\n const len = slider.slides.length;\n for (let i = 0; i < count; i++) {\n // pick the last and move to first\n const slide = slider.slides[len - 1];\n // @ts-ignore\n slider.track.prepend(slide);\n }\n}\nfunction wrapNext(slider, count) {\n for (let i = 0; i < count; i++) {\n slider.track.append(slider.slides[0]);\n }\n}\nfunction updateTransform(slider) {\n const { track, offset, dragged } = slider;\n if (offset === 0) {\n track.style.transform = `translate3d(${dragged}px,0px,0px)`;\n }\n else {\n track.style.transform = `translate3d( calc( ${dragged}px + ${offset} * (var(--slide-width) + ${slider.config.slideGap})),0px,0px)`;\n }\n}\nfunction enableTransition(slider) {\n slider.track.style.transitionDuration = `${slider.config.transitionDuration}ms`;\n}\nfunction disableTransition(slider) {\n slider.track.style.transitionDuration = `0ms`;\n}\n\nconst slideThreshold = 10;\nconst isTouch = () => 'ontouchstart' in window;\nfunction handlePointerDown(downEvent) {\n const track = this;\n const slider = track.slider;\n if (slider.isTransitioning)\n return;\n slider.dragged = 0;\n track.isScrolled = false;\n track.startMouseClientX =\n 'touches' in downEvent ? downEvent.touches[0].clientX : downEvent.clientX;\n if (!('touches' in downEvent)) {\n // do not directly setPointerCapture on track - it blocks the click events\n // https://github.com/GoogleChromeLabs/pointer-tracker/issues/4\n const el = (downEvent.target || track);\n el.setPointerCapture(downEvent.pointerId);\n }\n disableTransition(slider);\n updateEventListener(track, 'addEventListener');\n}\nfunction handlePointerMove(moveEvent) {\n const track = this;\n const x = 'touches' in moveEvent ? moveEvent.touches[0].clientX : moveEvent.clientX;\n const dragged = (track.slider.dragged = x - track.startMouseClientX);\n const draggedAbs = Math.abs(dragged);\n // consider dragging only if the user has dragged more than 5px\n if (draggedAbs > 5) {\n // track.setAttribute('data-dragging', 'true')\n track.slider.isDragging = true;\n }\n // prevent vertical scrolling if horizontal scrolling is happening\n if (draggedAbs > 15) {\n moveEvent.preventDefault();\n }\n track.slider.dragged = dragged;\n updateTransform(track.slider);\n if (!track.isScrolled && track.slider.config.loop) {\n if (dragged > slideThreshold) {\n track.isScrolled = true;\n track.slider.prev();\n }\n }\n}\nfunction handlePointerUp() {\n const track = this;\n const dragged = track.slider.dragged;\n track.slider.isDragging = false;\n updateEventListener(track, 'removeEventListener');\n // reset drag\n track.slider.dragged = 0;\n updateTransform(track.slider);\n enableTransition(track.slider);\n if (!track.isScrolled) {\n if (dragged < -1 * slideThreshold) {\n track.slider.next();\n }\n else if (dragged > slideThreshold) {\n track.slider.prev();\n }\n }\n}\nconst preventDefault = (event) => event.preventDefault();\n/**\n * drag based navigation for slider\n */\nfunction dragSupport(slider) {\n // @ts-expect-error\n const track = slider.track;\n track.slider = slider;\n const event = isTouch() ? 'touchstart' : 'pointerdown';\n // @ts-expect-error\n track.addEventListener(event, handlePointerDown);\n // prevent click default when slider is being dragged or transitioning\n track.addEventListener('click', (event) => {\n if (slider.isTransitioning || slider.isDragging) {\n event.preventDefault();\n event.stopImmediatePropagation();\n event.stopPropagation();\n }\n }, {\n capture: true,\n });\n // prevent dragging of elements inside the slider\n track.addEventListener('dragstart', preventDefault);\n}\nfunction updateEventListener(track, method) {\n track[method]('contextmenu', handlePointerUp);\n if (isTouch()) {\n track[method]('touchend', handlePointerUp);\n // @ts-expect-error\n track[method]('touchmove', handlePointerMove);\n }\n else {\n track[method]('pointerup', handlePointerUp);\n // @ts-expect-error\n track[method]('pointermove', handlePointerMove);\n }\n}\n\nfunction handleAutoplay(slider) {\n const config = slider.config;\n if (!config.enableAutoplay)\n return;\n const dir = config.autoplayDirection === 'to left' ? 'next' : 'prev';\n slider.autoplayTimer = setInterval(() => {\n slider[dir]();\n }, config.autoplayInterval);\n if (config.stopAutoplayOnInteraction) {\n slider.el.addEventListener(isTouch() ? 'touchstart' : 'mousedown', () => {\n clearInterval(slider.autoplayTimer);\n }, { once: true });\n }\n}\n\nconst defaultConfig = {\n // layout\n slideGap: '20px',\n slidesToScroll: 1,\n slidesToShow: 1,\n // behavior\n loop: true,\n // autoplay\n enableAutoplay: false,\n stopAutoplayOnInteraction: true,\n autoplayInterval: 3000,\n autoplayDirection: 'to left',\n // pagination\n enablePagination: true,\n // transition\n transitionDuration: 300,\n transitionTimingFunction: 'ease',\n draggable: true,\n};\nfunction createConfig(blazeConfig) {\n // start with default config clone\n const config = { ...defaultConfig };\n for (const media in blazeConfig) {\n // if the media matches, override the config with media config\n if (window.matchMedia(media).matches) {\n const mediaConfig = blazeConfig[media];\n for (const key in mediaConfig) {\n // @ts-expect-error\n config[key] = mediaConfig[key];\n }\n }\n }\n return config;\n}\n\nfunction handleNavigation(slider) {\n const prev = slider.el.querySelector('.blaze-prev');\n const next = slider.el.querySelector('.blaze-next');\n if (prev) {\n prev.onclick = () => {\n slider.prev();\n };\n }\n if (next) {\n next.onclick = () => {\n slider.next();\n };\n }\n}\n\nfunction handlePagination(slider) {\n if (!slider.config.enablePagination || slider.isStatic)\n return;\n const paginationContainer = slider.el.querySelector('.blaze-pagination');\n if (!paginationContainer)\n return;\n slider.paginationButtons = [];\n const total = slider.states.length;\n for (let index = 0; index < total; index++) {\n const button = document.createElement('button');\n slider.paginationButtons.push(button);\n button.textContent = 1 + index + '';\n button.ariaLabel = `${index + 1} of ${total}`;\n paginationContainer.append(button);\n // @ts-expect-error\n button.slider = slider;\n // @ts-expect-error\n button.index = index;\n // @ts-expect-error\n button.onclick = handlePaginationButtonClick;\n }\n // initially the first button is active\n slider.paginationButtons[0].classList.add('active');\n}\nfunction handlePaginationButtonClick() {\n const index = this.index;\n const slider = this.slider;\n const stateIndex = slider.stateIndex;\n const loop = slider.config.loop;\n const diff = Math.abs(index - stateIndex);\n const inverseDiff = slider.states.length - diff;\n const isDiffLargerThanHalf = diff > slider.states.length / 2;\n const scrollOpposite = isDiffLargerThanHalf && loop;\n // if target state is ahead of current state\n if (index > stateIndex) {\n // but the diff is too large\n if (scrollOpposite) {\n // scroll in opposite direction to reduce scrolling\n slider.prev(inverseDiff);\n }\n else {\n // scroll normally\n slider.next(diff);\n }\n }\n // if target state is before current state\n else {\n // but the diff is too large\n if (scrollOpposite) {\n // scroll in opposite direction\n slider.next(inverseDiff);\n }\n else {\n // scroll normally\n slider.prev(diff);\n }\n }\n}\n\nfunction isTransitioning(slider, time = slider.config.transitionDuration) {\n slider.isTransitioning = true;\n setTimeout(() => {\n slider.isTransitioning = false;\n }, time);\n}\nclass BlazeSlider extends Automata {\n constructor(blazeSliderEl, blazeConfig) {\n const track = blazeSliderEl.querySelector('.blaze-track');\n const slides = track.children;\n const config = blazeConfig\n ? createConfig(blazeConfig)\n : { ...defaultConfig };\n super(slides.length, config);\n this.config = config;\n this.el = blazeSliderEl;\n this.track = track;\n this.slides = slides;\n this.offset = 0;\n this.dragged = 0;\n this.isDragging = false;\n // @ts-ignore - for debugging\n this.el.blazeSlider = this;\n this.passedConfig = blazeConfig;\n const slider = this;\n track.slider = slider;\n construct(config, slider);\n // throttled to refresh every 200ms when resizing\n let ignoreResize = false;\n let width = 0;\n window.addEventListener('resize', () => {\n if (width === 0) {\n width = window.innerWidth;\n return;\n }\n const newWidth = window.innerWidth;\n // ignore height change - only refresh if the width is changed\n if (width === newWidth)\n return;\n width = newWidth;\n if (!ignoreResize) {\n ignoreResize = true;\n setTimeout(() => {\n slider.refresh();\n ignoreResize = false;\n }, 200);\n }\n });\n }\n next(count) {\n if (this.isTransitioning)\n return;\n const transition = super.next(count);\n if (!transition) {\n isTransitioning(this);\n return;\n }\n const [prevStateIndex, slideCount] = transition;\n handleStateChange(this, prevStateIndex);\n isTransitioning(this);\n scrollNext(this, slideCount);\n }\n prev(count) {\n if (this.isTransitioning)\n return;\n const transition = super.prev(count);\n if (!transition) {\n isTransitioning(this);\n return;\n }\n const [prevStateIndex, slideCount] = transition;\n handleStateChange(this, prevStateIndex);\n isTransitioning(this);\n scrollPrev(this, slideCount);\n }\n stopAutoplay() {\n clearInterval(this.autoplayTimer);\n }\n destroy() {\n // remove side effects that won't be overridden by construct()\n // remove old drag event handler\n this.track.removeEventListener(isTouch() ? 'touchstart' : 'pointerdown', \n // @ts-expect-error\n handlePointerDown);\n // stop autoplay\n this.stopAutoplay();\n // remove pagination buttons\n this.paginationButtons?.forEach((button) => button.remove());\n // remove classes\n this.el.classList.remove('static');\n this.el.classList.remove(START);\n }\n refresh() {\n const newConfig = this.passedConfig\n ? createConfig(this.passedConfig)\n : { ...defaultConfig };\n this.destroy();\n construct(newConfig, this);\n }\n /**\n * Subscribe for slide change event\n * Returns a function to unsubscribe from slide change event\n */\n onSlide(cb) {\n if (!this.onSlideCbs)\n this.onSlideCbs = new Set();\n this.onSlideCbs.add(cb);\n return () => this.onSlideCbs.delete(cb);\n }\n}\nfunction handleStateChange(slider, prevStateIndex) {\n const classList = slider.el.classList;\n const stateIndex = slider.stateIndex;\n const buttons = slider.paginationButtons;\n if (!slider.config.loop) {\n if (stateIndex === 0) {\n classList.add(START);\n }\n else {\n classList.remove(START);\n }\n if (stateIndex === slider.states.length - 1) {\n classList.add(END);\n }\n else {\n classList.remove(END);\n }\n }\n if (buttons && slider.config.enablePagination) {\n buttons[prevStateIndex].classList.remove('active');\n buttons[stateIndex].classList.add('active');\n }\n}\nfunction construct(config, slider) {\n const track = slider.track;\n slider.slides = track.children;\n slider.offset = 0;\n slider.config = config;\n constructAutomata(slider, slider.totalSlides, config);\n // if a side effect is in condition - make sure to add it for both conditions - so it gets cleaned up\n // when refresh is called\n if (!config.loop) {\n slider.el.classList.add(START);\n }\n if (config.enableAutoplay && !config.loop) {\n if (DEV) {\n console.warn('enableAutoplay:true is not consistent with loop:false, auto-fixing with enableAutoplay:false');\n }\n config.enableAutoplay = false;\n }\n track.style.transitionProperty = 'transform';\n track.style.transitionTimingFunction = slider.config.transitionTimingFunction;\n track.style.transitionDuration = `${slider.config.transitionDuration}ms`;\n const { slidesToShow, slideGap } = slider.config;\n slider.el.style.setProperty('--slides-to-show', slidesToShow + '');\n slider.el.style.setProperty('--slide-gap', slideGap);\n if (!slider.isStatic) {\n if (config.draggable) {\n dragSupport(slider);\n }\n }\n else {\n slider.el.classList.add('static');\n }\n handlePagination(slider);\n handleAutoplay(slider);\n handleNavigation(slider);\n updateTransform(slider);\n}\n\nexport { BlazeSlider as default };\n", "import BlazeSlider from 'blaze-slider';\nconst body = document.querySelector(\"body\");\nconst slider = document.querySelector(\".blaze-slider\");\n\nif (slider) {\n const blaze = new BlazeSlider(slider, {\n all: {\n slidesToScroll: 1,\n slidesToShow: 3,\n loop: false,\n },\n \"(max-width: 1024px)\": {\n slidesToShow: 2\n },\n \"(max-width: 600px)\": {\n slidesToShow: 1,\n loop: true\n }\n });\n\n if (body.classList.contains(\"samadmin\")) {\n blaze.track.onpointerdown = null;\n }\n}", "document.querySelectorAll(\"dialog\").forEach(dialog => {\n // Handles \"faux\" close button using empty anchor to clear the `target:`\n const closeButton = dialog.querySelector(`a[href=\"#close\"`);\n if (closeButton) {\n closeButton.addEventListener(\"click\", function(event) {\n dialog.close();\n });\n }\n});\n\n/**\n * Opens faux modal using CSS `target:` to actual modal.\n */\n function openModalByHash() {\n const hash = window.location.hash;\n if (hash) {\n const modal = document.querySelector(`dialog[id=\"${hash.substring(1)}\"]`);\n if (modal) {\n !modal.open && modal.show();\n }\n }\n}\n\nwindow.addEventListener(\"hashchange\", openModalByHash, false);\nopenModalByHash();\n", "const $ = (selector, parent = document) => parent.querySelector(selector);\nconst $$ = (selector, parent = document) => parent.querySelectorAll(selector);\n\nconst tables = $$(\".content table\");\n\ntables.forEach((table) => {\n const wrapper = document.createElement(\"div\");\n wrapper.classList.add(\"table-scroll\");\n table.parentNode.insertBefore(wrapper, table);\n wrapper.appendChild(table);\n});", "/**\n * Default options\n */\n const defaultOptions = {\n offset: 120,\n delay: 0,\n easing: `ease`,\n duration: 400,\n disable: false,\n once: true,\n mirror: false,\n anchorPlacement: `top-bottom`,\n startEvent: `DOMContentLoaded`,\n animatedClassName: `aos-animate`,\n initClassName: `aos-init`,\n useClassNames: false,\n rootMargin: null,\n};\n\nclass AOS {\n static init(options = {}) {\n return new AOS(options);\n }\n\n constructor(options = {}) {\n options = this.options = { ...defaultOptions, ...options };\n\n /**\n * Set global settings on body, based on options so CSS can use it\n */\n const body = document.querySelector(`body`);\n body.setAttribute(`data-aos-easing`, options.easing);\n body.setAttribute(`data-aos-duration`, options.duration);\n body.setAttribute(`data-aos-delay`, options.delay);\n\n let offset = options.offset;\n offset = isNaN(offset) ? offset : `${offset}px`;\n\n const observer = this.observer = new IntersectionObserver((entries, _observer) => {\n entries.forEach((entry) => {\n const { target, intersectionRatio } = entry;\n\n if (intersectionRatio > 0) {\n target.classList.add(options.animatedClassName);\n\n fireEvent(`aos:in`, entry);\n\n if (options.once) {\n observer.unobserve(target);\n\n // clear the aos after specified delay/duration so things like hover effects can still work.\n let delay = target.getAttribute(\"data-aos-delay\") ? parseInt(target.getAttribute(\"data-aos-delay\")) : options.delay;\n let duration = target.getAttribute(\"data-aos-duration\") ? parseInt(target.getAttribute(\"data-aos-duration\")) : options.duration;\n setTimeout(() => {\n target.removeAttribute(\"data-aos\");\n }, (delay + duration));\n }\n } else {\n target.classList.remove(options.animatedClassName);\n fireEvent(`aos:out`, entry);\n }\n });\n }, {\n rootMargin: options.rootMargin || `0px 0px -${offset} 0px`\n });\n\n const elements = [].filter.call(\n document.querySelectorAll(`[data-aos]`),\n element => !element.classList.contains(this.options.animatedClassName)\n );\n\n // start observing your elements\n elements.forEach((element) => observer.observe(element));\n }\n}\n\nexport default AOS;\n\nconst fireEvent = (eventName, data) => {\n const customEvent = new CustomEvent(eventName, {\n bubbles: true,\n detail: data\n });\n\n return data.target.dispatchEvent(customEvent);\n};", "import AOS from \"../common/aos.js\";\nconst $ = (selector, parent = document) => parent.querySelector(selector);\nconst $$ = (selector, parent = document) => parent.querySelectorAll(selector);\n\nconst desktopMediaQuery = window.matchMedia('(min-width: 1024px)');\nconst tabletMediaQuery = window.matchMedia('(min-width: 768px)');\n\nconst homeHeroBox = $(\".home .hero .content-box\");\nif (homeHeroBox) {\n const h1 = $(\"h1\", homeHeroBox);\n const paragraphs = $$(\"p\", homeHeroBox);\n h1.classList.add(\"reveal\");\n setTimeout(function() {\n paragraphs.forEach(function(paragraph) {\n paragraph.classList.add(\"reveal\");\n })\n }, 500)\n}\n\ndocument.querySelectorAll(\".four-column figure, .three-column figure\").forEach(figure => {\n figure.setAttribute(\"data-aos\",\"fade-up\");\n});\n\nif (tabletMediaQuery.matches) {\n document.querySelectorAll(\".float-target img\").forEach(figure => {\n figure.setAttribute(\"data-aos\",\"fade-up\");\n });\n}\n\nif (desktopMediaQuery.matches) {\n document.querySelectorAll(\".graphic-placement img, .page-list-insights article\").forEach(figure => {\n figure.setAttribute(\"data-aos\",\"fade-up\");\n });\n}\n\nAOS.init();", "import cssHasPseudo from \"../../node_modules/css-has-pseudo/dist/browser.mjs\";\n\nimport \"./imports.js\";\nimport \"./modal.js\";\nimport \"./tables.js\";\nimport \"./animations.js\";\n\ncssHasPseudo(document);\n"], "mappings": "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", "names": ["decodeCSS", "value", "slice", "values", "split", "result", "i", "length", "String", "fromCharCode", "parseInt", "encodeCSS", "hex", "charCodeAt", "toString", "cssHasPseudo", "document", "options", "hover", "debug", "observedAttributes", "forcePolyfill", "mustPolyfill", "self", "CSS", "supports", "_", "hasNativeSupport", "Array", "isArray", "filter", "x", "concat", "observedItems", "attributeElement", "createElement", "forEach", "call", "styleSheets", "walkStyleSheet", "transformObservedItemsThrottled", "MutationObserver", "mutationsList", "mutation", "addedNodes", "node", "nodeType", "sheet", "push", "apply", "splice", "item", "rule", "parentStyleSheet", "ownerNode", "documentElement", "contains", "observe", "childList", "subtree", "attributes", "attributeFilter", "addEventListener", "Object", "observeProperty", "proto", "property", "hasOwnProperty", "descriptor", "getOwnPropertyDescriptor", "configurable", "defineProperty", "enumerable", "get", "this", "arguments", "set", "HTMLElement", "prototype", "elementName", "e", "console", "error", "transformObservedItemsThrottledBusy", "cancelAnimationFrame", "requestAnimationFrame", "nodes", "matches", "querySelectorAll", "selector", "element", "innerHTML", "attributeName", "setAttributeNode", "children", "cloneNode", "style", "zoom", "indexOf", "removeAttribute", "styleSheet", "cssRules", "index", "selectorText", "replace", "hasSelectors", "candidate", "quotedMark", "out", "depth", "quoted", "containsUnescapedUnquotedHasAtDepth1", "char", "decoded", "unique", "deleteRule", "hasSelector", "global", "querySelector", "querySelectorWithHasElement", "polyfill", "Element", "selectors", "querySelectorAllWithHasElement", "matchesWithHasElement", "closest", "closestWithHasElement", "Document", "querySelectorWithHasDocument", "querySelectorAllWithHasDocument", "matchesWithHasDocument", "closestWithHasDocument", "pseudoClassHasInnerQuery", "query", "current", "start", "escaped", "inHas", "toLowerCase", "innerQuery", "end", "replaceScopeWithAttr", "attr", "parts", "bracketed", "test", "join", "splitSelector", "mark", "nestedMark", "nestedDepth", "replaceAllWithTempAttr", "nested", "callback", "inner", "Math", "floor", "random", "innerReplacement", "innerParts", "newInnerParts", "innerPart", "_prefix", "substring", "_suffix", "y", "walkNode", "rootNode", "hasChildNodes", "childNodes", "qsa", "getRootNode", "r", "parentNode", "_focus", "scopeAttr", "setAttribute", "attrs", "newQuery", "selectorParts", "selectorPart", "trim", "absoluteSelectorPart", "siblings", "sibling", "idAttr", "elementOrNodeList", "attrsForQuery", "j", "elements", "k", "l", "err", "$", "selector", "parent", "$$", "onKeyDownOnAccordion", "event", "target", "key", "accordion", "triggers", "length", "index", "newIndex", "detail", "e", "openTab", "scrollTop", "samBar", "$", "selector", "parent", "$$", "desktopMediaQuery", "mobileMenu", "toggleMobileMenu", "button", "isOpen", "openSubnav", "closeSubnav", "closeSubnavs", "menu", "event", "closest", "$navItem", "child", "item", "targets", "siblings", "sibling", "throttle", "fn", "wait", "time", "setHeaderTop", "header", "height", "$", "adminBarHeight", "lastScrollTop", "inPageHeader", "resizeTimer", "desktopMediaQuery", "mobileMenu", "toggleMobileMenu", "scrollCallback", "scrollTop", "diff", "intersectionCallback", "entries", "observer", "entry", "options", "throttle", "$", "selector", "parent", "direction", "A11yTab", "tablist", "options", "tabs", "panels", "tabImages", "hash", "activeTab", "tab", "index", "panelId", "event", "key", "codes", "target", "vertical", "proceed", "setFocus", "panel", "tabImage", "panelDetails", "$", "image", "focused", "tabsCollections", "i", "count", "tabContainers", "tabContainer", "tabDetails", "detail", "closeOthers", "e", "$", "selector", "parent", "$$", "submarketMap", "restrictSubmarkets", "market", "submarkets", "allSubmarketInput", "control", "controlButton", "buttonText", "submarket", "index", "validSubmarkets", "getParams", "url", "params", "val", "key", "scrollTo", "element", "scrollTop", "headerOffset", "FilterList", "component", "options", "filterControls", "filterButtons", "searchControl", "loadMoreSection", "emptyMessage", "items", "filters", "displayAmount", "filterSelectors", "queryParams", "fieldset", "itemsArr", "i", "a", "aSpan", "bSpan", "aSpanText", "bSpanText", "filterItems", "openFilters", "closeFilters", "input", "filterQuery", "param", "radio", "evt", "event", "closest", "item", "unspecifiedFilters", "filter", "value", "name", "content", "searchInput", "remainingItems", "parentElement", "targetedItems", "hiddenNotFiltered", "button", "openedFilters", "opened", "filterForms", "count", "$", "selector", "parent", "shareTool", "$", "shareButton", "_a", "_b", "_c", "_d", "_e", "url", "title", "mailHREF", "event", "button", "$$", "selector", "parent", "videoLinks", "youtube_parser", "url", "regExp", "match", "vimeo_parser", "link", "formattedURL", "ID", "event", "replacementDiv", "videoEmbed", "$", "selector", "parent", "$$", "FloatParallax", "target", "fn", "wait", "currentProgress", "fromTop", "viewportHeight", "imageTop", "move", "animationElements", "animations", "options", "callback", "entries", "observer", "entry", "animationIndex", "animation", "floatAnimation", "calculatePages", "slider", "slidesToShow", "slidesToScroll", "loop", "isStatic", "totalSlides", "pages", "lastIndex", "startIndex", "_endIndex", "endIndex", "lastPageIndex", "calculateStates", "states", "pageIndex", "nextPageIndex", "prevPageIndex", "currentPageStartIndex", "nextPageStartIndex", "prevPageStartIndex", "nextDiff", "prevDiff", "START", "END", "DEV", "fixSliderConfig", "config", "properSlidesToScroll", "Automata", "constructAutomata", "stateIndex", "slidesMoved", "newStateIndex", "state", "automata", "scrollPrev", "slideCount", "rAf", "noLoopScroll", "disableTransition", "updateTransform", "wrapPrev", "reset", "enableTransition", "onSlideEnd", "isTouch", "scrollNext", "wrapNext", "firstSlideIndex", "lastSlideIndex", "cb", "count", "len", "i", "slide", "track", "offset", "dragged", "slideThreshold", "handlePointerDown", "downEvent", "updateEventListener", "handlePointerMove", "moveEvent", "x", "draggedAbs", "handlePointerUp", "preventDefault", "event", "dragSupport", "method", "handleAutoplay", "dir", "defaultConfig", "createConfig", "blazeConfig", "__spreadValues", "media", "mediaConfig", "key", "handleNavigation", "prev", "next", "handlePagination", "paginationContainer", "total", "index", "button", "handlePaginationButtonClick", "diff", "inverseDiff", "scrollOpposite", "isTransitioning", "time", "BlazeSlider", "blazeSliderEl", "slides", "construct", "ignoreResize", "width", "newWidth", "transition", "prevStateIndex", "handleStateChange", "_a", "newConfig", "classList", "buttons", "slideGap", "body", "slider", "blaze", "BlazeSlider", "dialog", "closeButton", "event", "openModalByHash", "hash", "modal", "$$", "selector", "parent", "tables", "table", "wrapper", "defaultOptions", "AOS", "options", "__spreadValues", "body", "offset", "observer", "entries", "_observer", "entry", "target", "intersectionRatio", "fireEvent", "delay", "duration", "element", "aos_default", "eventName", "data", "customEvent", "$", "selector", "parent", "$$", "desktopMediaQuery", "tabletMediaQuery", "homeHeroBox", "h1", "paragraphs", "paragraph", "figure", "aos_default", "r"] }