1/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */ 2(() => { 3
vendor: 11,301 bytes, lines 3-278
3// node_modules/tabbable/dist/index.esm.js 4 var candidateSelectors = ["input", "select", "textarea", "a[href]", "button", "[tabindex]:not(slot)", "audio[controls]", "video[controls]", '[contenteditable]:not([contenteditable="false"])', "details>summary:first-of-type", "details"]; 5 var candidateSelector = /* @__PURE__ */ candidateSelectors.join(","); 6 var NoElement = typeof Element === "undefined"; 7 var matches = NoElement ? function() { 8 } : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; 9 var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) { 10 return element.getRootNode(); 11 } : function(element) { 12 return element.ownerDocument; 13 }; 14 var getCandidates = function getCandidates2(el, includeContainer, filter) { 15 var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector)); 16 if (includeContainer && matches.call(el, candidateSelector)) { 17 candidates.unshift(el); 18 } 19 candidates = candidates.filter(filter); 20 return candidates; 21 }; 22 var getCandidatesIteratively = function getCandidatesIteratively2(elements, includeContainer, options) { 23 var candidates = []; 24 var elementsToCheck = Array.from(elements); 25 while (elementsToCheck.length) { 26 var element = elementsToCheck.shift(); 27 if (element.tagName === "SLOT") { 28 var assigned = element.assignedElements(); 29 var content = assigned.length ? assigned : element.children; 30 var nestedCandidates = getCandidatesIteratively2(content, true, options); 31 if (options.flatten) { 32 candidates.push.apply(candidates, nestedCandidates); 33 } else { 34 candidates.push({ 35 scope: element, 36 candidates: nestedCandidates 37 }); 38 } 39 } else { 40 var validCandidate = matches.call(element, candidateSelector); 41 if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) { 42 candidates.push(element); 43 } 44 var shadowRoot = element.shadowRoot || // check for an undisclosed shadow 45 typeof options.getShadowRoot === "function" && options.getShadowRoot(element); 46 var validShadowRoot = !options.shadowRootFilter || options.shadowRootFilter(element); 47 if (shadowRoot && validShadowRoot) { 48 var _nestedCandidates = getCandidatesIteratively2(shadowRoot === true ? element.children : shadowRoot.children, true, options); 49 if (options.flatten) { 50 candidates.push.apply(candidates, _nestedCandidates); 51 } else { 52 candidates.push({ 53 scope: element, 54 candidates: _nestedCandidates 55 }); 56 } 57 } else { 58 elementsToCheck.unshift.apply(elementsToCheck, element.children); 59 } 60 } 61 } 62 return candidates; 63 }; 64 var getTabindex = function getTabindex2(node, isScope) { 65 if (node.tabIndex < 0) { 66 if ((isScope || /^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || node.isContentEditable) && isNaN(parseInt(node.getAttribute("tabindex"), 10))) { 67 return 0; 68 } 69 } 70 return node.tabIndex; 71 }; 72 var sortOrderedTabbables = function sortOrderedTabbables2(a, b) { 73 return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex; 74 }; 75 var isInput = function isInput2(node) { 76 return node.tagName === "INPUT"; 77 }; 78 var isHiddenInput = function isHiddenInput2(node) { 79 return isInput(node) && node.type === "hidden"; 80 }; 81 var isDetailsWithSummary = function isDetailsWithSummary2(node) { 82 var r = node.tagName === "DETAILS" && Array.prototype.slice.apply(node.children).some(function(child) { 83 return child.tagName === "SUMMARY"; 84 }); 85 return r; 86 }; 87 var getCheckedRadio = function getCheckedRadio2(nodes, form) { 88 for (var i = 0; i < nodes.length; i++) { 89 if (nodes[i].checked && nodes[i].form === form) { 90 return nodes[i]; 91 } 92 } 93 }; 94 var isTabbableRadio = function isTabbableRadio2(node) { 95 if (!node.name) { 96 return true; 97 } 98 var radioScope = node.form || getRootNode(node); 99 var queryRadios = function queryRadios2(name) { 100 return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]'); 101 }; 102 var radioSet; 103 if (typeof window !== "undefined" && typeof window.CSS !== "undefined" && typeof window.CSS.escape === "function") { 104 radioSet = queryRadios(window.CSS.escape(node.name)); 105 } else { 106 try { 107 radioSet = queryRadios(node.name); 108 } catch (err) { 109 console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s", err.message); 110 return false; 111 } 112 } 113 var checked = getCheckedRadio(radioSet, node.form); 114 return !checked || checked === node; 115 }; 116 var isRadio = function isRadio2(node) { 117 return isInput(node) && node.type === "radio"; 118 }; 119 var isNonTabbableRadio = function isNonTabbableRadio2(node) { 120 return isRadio(node) && !isTabbableRadio(node); 121 }; 122 var isZeroArea = function isZeroArea2(node) { 123 var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height; 124 return width === 0 && height === 0; 125 }; 126 var isHidden = function isHidden2(node, _ref) { 127 var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot; 128 if (getComputedStyle(node).visibility === "hidden") { 129 return true; 130 } 131 var isDirectSummary = matches.call(node, "details>summary:first-of-type"); 132 var nodeUnderDetails = isDirectSummary ? node.parentElement : node; 133 if (matches.call(nodeUnderDetails, "details:not([open]) *")) { 134 return true; 135 } 136 var nodeRootHost = getRootNode(node).host; 137 var nodeIsAttached = (nodeRootHost === null || nodeRootHost === void 0 ? void 0 : nodeRootHost.ownerDocument.contains(nodeRootHost)) || node.ownerDocument.contains(node); 138 if (!displayCheck || displayCheck === "full") { 139 if (typeof getShadowRoot === "function") { 140 var originalNode = node; 141 while (node) { 142 var parentElement = node.parentElement; 143 var rootNode = getRootNode(node); 144 if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) { 145 return isZeroArea(node); 146 } else if (node.assignedSlot) { 147 node = node.assignedSlot; 148 } else if (!parentElement && rootNode !== node.ownerDocument) { 149 node = rootNode.host; 150 } else { 151 node = parentElement; 152 } 153 } 154 node = originalNode; 155 } 156 if (nodeIsAttached) { 157 return !node.getClientRects().length; 158 } 159 } else if (displayCheck === "non-zero-area") { 160 return isZeroArea(node); 161 } 162 return false; 163 }; 164 var isDisabledFromFieldset = function isDisabledFromFieldset2(node) { 165 if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) { 166 var parentNode = node.parentElement; 167 while (parentNode) { 168 if (parentNode.tagName === "FIELDSET" && parentNode.disabled) { 169 for (var i = 0; i < parentNode.children.length; i++) { 170 var child = parentNode.children.item(i); 171 if (child.tagName === "LEGEND") { 172 return matches.call(parentNode, "fieldset[disabled] *") ? true : !child.contains(node); 173 } 174 } 175 return true; 176 } 177 parentNode = parentNode.parentElement; 178 } 179 } 180 return false; 181 }; 182 var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) { 183 if (node.disabled || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus 184 isDetailsWithSummary(node) || isDisabledFromFieldset(node)) { 185 return false; 186 } 187 return true; 188 }; 189 var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) { 190 if (isNonTabbableRadio(node) || getTabindex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) { 191 return false; 192 } 193 return true; 194 }; 195 var isValidShadowRootTabbable = function isValidShadowRootTabbable2(shadowHostNode) { 196 var tabIndex = parseInt(shadowHostNode.getAttribute("tabindex"), 10); 197 if (isNaN(tabIndex) || tabIndex >= 0) { 198 return true; 199 } 200 return false; 201 }; 202 var sortByOrder = function sortByOrder2(candidates) { 203 var regularTabbables = []; 204 var orderedTabbables = []; 205 candidates.forEach(function(item, i) { 206 var isScope = !!item.scope; 207 var element = isScope ? item.scope : item; 208 var candidateTabindex = getTabindex(element, isScope); 209 var elements = isScope ? sortByOrder2(item.candidates) : element; 210 if (candidateTabindex === 0) { 211 isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element); 212 } else { 213 orderedTabbables.push({ 214 documentOrder: i, 215 tabIndex: candidateTabindex, 216 item, 217 isScope, 218 content: elements 219 }); 220 } 221 }); 222 return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) { 223 sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content); 224 return acc; 225 }, []).concat(regularTabbables); 226 }; 227 var tabbable = function tabbable2(el, options) { 228 options = options || {}; 229 var candidates; 230 if (options.getShadowRoot) { 231 candidates = getCandidatesIteratively([el], options.includeContainer, { 232 filter: isNodeMatchingSelectorTabbable.bind(null, options), 233 flatten: false, 234 getShadowRoot: options.getShadowRoot, 235 shadowRootFilter: isValidShadowRootTabbable 236 }); 237 } else { 238 candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options)); 239 } 240 return sortByOrder(candidates); 241 }; 242 var focusable = function focusable2(el, options) { 243 options = options || {}; 244 var candidates; 245 if (options.getShadowRoot) { 246 candidates = getCandidatesIteratively([el], options.includeContainer, { 247 filter: isNodeMatchingSelectorFocusable.bind(null, options), 248 flatten: true, 249 getShadowRoot: options.getShadowRoot 250 }); 251 } else { 252 candidates = getCandidates(el, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options)); 253 } 254 return candidates; 255 }; 256 var isTabbable = function isTabbable2(node, options) { 257 options = options || {}; 258 if (!node) { 259 throw new Error("No node provided"); 260 } 261 if (matches.call(node, candidateSelector) === false) { 262 return false; 263 } 264 return isNodeMatchingSelectorTabbable(options, node); 265 }; 266 var focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat("iframe").join(","); 267 var isFocusable = function isFocusable2(node, options) { 268 options = options || {}; 269 if (!node) { 270 throw new Error("No node provided"); 271 } 272 if (matches.call(node, focusableCandidateSelector) === false) { 273 return false; 274 } 275 return isNodeMatchingSelectorFocusable(options, node); 276 }; 277 278
vendor: 20,554 bytes, lines 278-801
278// node_modules/focus-trap/dist/focus-trap.esm.js 279 function ownKeys(object, enumerableOnly) { 280 var keys = Object.keys(object); 281 if (Object.getOwnPropertySymbols) { 282 var symbols = Object.getOwnPropertySymbols(object); 283 enumerableOnly && (symbols = symbols.filter(function(sym) { 284 return Object.getOwnPropertyDescriptor(object, sym).enumerable; 285 })), keys.push.apply(keys, symbols); 286 } 287 return keys; 288 } 289 function _objectSpread2(target) { 290 for (var i = 1; i < arguments.length; i++) { 291 var source = null != arguments[i] ? arguments[i] : {}; 292 i % 2 ? ownKeys(Object(source), true).forEach(function(key) { 293 _defineProperty(target, key, source[key]); 294 }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) { 295 Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); 296 }); 297 } 298 return target; 299 } 300 function _defineProperty(obj, key, value) { 301 if (key in obj) { 302 Object.defineProperty(obj, key, { 303 value, 304 enumerable: true, 305 configurable: true, 306 writable: true 307 }); 308 } else { 309 obj[key] = value; 310 } 311 return obj; 312 } 313 var activeFocusTraps = function() { 314 var trapQueue = []; 315 return { 316 activateTrap: function activateTrap(trap) { 317 if (trapQueue.length > 0) { 318 var activeTrap = trapQueue[trapQueue.length - 1]; 319 if (activeTrap !== trap) { 320 activeTrap.pause(); 321 } 322 } 323 var trapIndex = trapQueue.indexOf(trap); 324 if (trapIndex === -1) { 325 trapQueue.push(trap); 326 } else { 327 trapQueue.splice(trapIndex, 1); 328 trapQueue.push(trap); 329 } 330 }, 331 deactivateTrap: function deactivateTrap(trap) { 332 var trapIndex = trapQueue.indexOf(trap); 333 if (trapIndex !== -1) { 334 trapQueue.splice(trapIndex, 1); 335 } 336 if (trapQueue.length > 0) { 337 trapQueue[trapQueue.length - 1].unpause(); 338 } 339 } 340 }; 341 }(); 342 var isSelectableInput = function isSelectableInput2(node) { 343 return node.tagName && node.tagName.toLowerCase() === "input" && typeof node.select === "function"; 344 }; 345 var isEscapeEvent = function isEscapeEvent2(e) { 346 return e.key === "Escape" || e.key === "Esc" || e.keyCode === 27; 347 }; 348 var isTabEvent = function isTabEvent2(e) { 349 return e.key === "Tab" || e.keyCode === 9; 350 }; 351 var delay = function delay2(fn) { 352 return setTimeout(fn, 0); 353 }; 354 var findIndex = function findIndex2(arr, fn) { 355 var idx = -1; 356 arr.every(function(value, i) { 357 if (fn(value)) { 358 idx = i; 359 return false; 360 } 361 return true; 362 }); 363 return idx; 364 }; 365 var valueOrHandler = function valueOrHandler2(value) { 366 for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { 367 params[_key - 1] = arguments[_key]; 368 } 369 return typeof value === "function" ? value.apply(void 0, params) : value; 370 }; 371 var getActualTarget = function getActualTarget2(event) { 372 return event.target.shadowRoot && typeof event.composedPath === "function" ? event.composedPath()[0] : event.target; 373 }; 374 var createFocusTrap = function createFocusTrap2(elements, userOptions) { 375 var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document; 376 var config = _objectSpread2({ 377 returnFocusOnDeactivate: true, 378 escapeDeactivates: true, 379 delayInitialFocus: true 380 }, userOptions); 381 var state = { 382 // containers given to createFocusTrap() 383 // @type {Array<HTMLElement>} 384 containers: [], 385 // list of objects identifying tabbable nodes in `containers` in the trap 386 // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap 387 // is active, but the trap should never get to a state where there isn't at least one group 388 // with at least one tabbable node in it (that would lead to an error condition that would 389 // result in an error being thrown) 390 // @type {Array<{ 391 // container: HTMLElement, 392 // tabbableNodes: Array<HTMLElement>, // empty if none 393 // focusableNodes: Array<HTMLElement>, // empty if none 394 // firstTabbableNode: HTMLElement|null, 395 // lastTabbableNode: HTMLElement|null, 396 // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined 397 // }>} 398 containerGroups: [], 399 // same order/length as `containers` list 400 // references to objects in `containerGroups`, but only those that actually have 401 // tabbable nodes in them 402 // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__ 403 // the same length 404 tabbableGroups: [], 405 nodeFocusedBeforeActivation: null, 406 mostRecentlyFocusedNode: null, 407 active: false, 408 paused: false, 409 // timer ID for when delayInitialFocus is true and initial focus in this trap 410 // has been delayed during activation 411 delayInitialFocusTimer: void 0 412 }; 413 var trap; 414 var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) { 415 return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName]; 416 }; 417 var findContainerIndex = function findContainerIndex2(element) { 418 return state.containerGroups.findIndex(function(_ref) { 419 var container = _ref.container, tabbableNodes = _ref.tabbableNodes; 420 return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any 421 // web components if the `tabbableOptions.getShadowRoot` option was used for 422 // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't 423 // look inside web components even if open) 424 tabbableNodes.find(function(node) { 425 return node === element; 426 }); 427 }); 428 }; 429 var getNodeForOption = function getNodeForOption2(optionName) { 430 var optionValue = config[optionName]; 431 if (typeof optionValue === "function") { 432 for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { 433 params[_key2 - 1] = arguments[_key2]; 434 } 435 optionValue = optionValue.apply(void 0, params); 436 } 437 if (optionValue === true) { 438 optionValue = void 0; 439 } 440 if (!optionValue) { 441 if (optionValue === void 0 || optionValue === false) { 442 return optionValue; 443 } 444 throw new Error("`".concat(optionName, "` was specified but was not a node, or did not return a node")); 445 } 446 var node = optionValue; 447 if (typeof optionValue === "string") { 448 node = doc.querySelector(optionValue); 449 if (!node) { 450 throw new Error("`".concat(optionName, "` as selector refers to no known node")); 451 } 452 } 453 return node; 454 }; 455 var getInitialFocusNode = function getInitialFocusNode2() { 456 var node = getNodeForOption("initialFocus"); 457 if (node === false) { 458 return false; 459 } 460 if (node === void 0) { 461 if (findContainerIndex(doc.activeElement) >= 0) { 462 node = doc.activeElement; 463 } else { 464 var firstTabbableGroup = state.tabbableGroups[0]; 465 var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode; 466 node = firstTabbableNode || getNodeForOption("fallbackFocus"); 467 } 468 } 469 if (!node) { 470 throw new Error("Your focus-trap needs to have at least one focusable element"); 471 } 472 return node; 473 }; 474 var updateTabbableNodes = function updateTabbableNodes2() { 475 state.containerGroups = state.containers.map(function(container) { 476 var tabbableNodes = tabbable(container, config.tabbableOptions); 477 var focusableNodes = focusable(container, config.tabbableOptions); 478 return { 479 container, 480 tabbableNodes, 481 focusableNodes, 482 firstTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[0] : null, 483 lastTabbableNode: tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : null, 484 /** 485 * Finds the __tabbable__ node that follows the given node in the specified direction, 486 * in this container, if any. 487 * @param {HTMLElement} node 488 * @param {boolean} [forward] True if going in forward tab order; false if going 489 * in reverse. 490 * @returns {HTMLElement|undefined} The next tabbable node, if any. 491 */ 492 nextTabbableNode: function nextTabbableNode(node) { 493 var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true; 494 var nodeIdx = focusableNodes.findIndex(function(n) { 495 return n === node; 496 }); 497 if (nodeIdx < 0) { 498 return void 0; 499 } 500 if (forward) { 501 return focusableNodes.slice(nodeIdx + 1).find(function(n) { 502 return isTabbable(n, config.tabbableOptions); 503 }); 504 } 505 return focusableNodes.slice(0, nodeIdx).reverse().find(function(n) { 506 return isTabbable(n, config.tabbableOptions); 507 }); 508 } 509 }; 510 }); 511 state.tabbableGroups = state.containerGroups.filter(function(group) { 512 return group.tabbableNodes.length > 0; 513 }); 514 if (state.tabbableGroups.length <= 0 && !getNodeForOption("fallbackFocus")) { 515 throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times"); 516 } 517 }; 518 var tryFocus = function tryFocus2(node) { 519 if (node === false) { 520 return; 521 } 522 if (node === doc.activeElement) { 523 return; 524 } 525 if (!node || !node.focus) { 526 tryFocus2(getInitialFocusNode()); 527 return; 528 } 529 node.focus({ 530 preventScroll: !!config.preventScroll 531 }); 532 state.mostRecentlyFocusedNode = node; 533 if (isSelectableInput(node)) { 534 node.select(); 535 } 536 }; 537 var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) { 538 var node = getNodeForOption("setReturnFocus", previousActiveElement); 539 return node ? node : node === false ? false : previousActiveElement; 540 }; 541 var checkPointerDown = function checkPointerDown2(e) { 542 var target = getActualTarget(e); 543 if (findContainerIndex(target) >= 0) { 544 return; 545 } 546 if (valueOrHandler(config.clickOutsideDeactivates, e)) { 547 trap.deactivate({ 548 // if, on deactivation, we should return focus to the node originally-focused 549 // when the trap was activated (or the configured `setReturnFocus` node), 550 // then assume it's also OK to return focus to the outside node that was 551 // just clicked, causing deactivation, as long as that node is focusable; 552 // if it isn't focusable, then return focus to the original node focused 553 // on activation (or the configured `setReturnFocus` node) 554 // NOTE: by setting `returnFocus: false`, deactivate() will do nothing, 555 // which will result in the outside click setting focus to the node 556 // that was clicked, whether it's focusable or not; by setting 557 // `returnFocus: true`, we'll attempt to re-focus the node originally-focused 558 // on activation (or the configured `setReturnFocus` node) 559 returnFocus: config.returnFocusOnDeactivate && !isFocusable(target, config.tabbableOptions) 560 }); 561 return; 562 } 563 if (valueOrHandler(config.allowOutsideClick, e)) { 564 return; 565 } 566 e.preventDefault(); 567 }; 568 var checkFocusIn = function checkFocusIn2(e) { 569 var target = getActualTarget(e); 570 var targetContained = findContainerIndex(target) >= 0; 571 if (targetContained || target instanceof Document) { 572 if (targetContained) { 573 state.mostRecentlyFocusedNode = target; 574 } 575 } else { 576 e.stopImmediatePropagation(); 577 tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode()); 578 } 579 }; 580 var checkTab = function checkTab2(e) { 581 var target = getActualTarget(e); 582 updateTabbableNodes(); 583 var destinationNode = null; 584 if (state.tabbableGroups.length > 0) { 585 var containerIndex = findContainerIndex(target); 586 var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0; 587 if (containerIndex < 0) { 588 if (e.shiftKey) { 589 destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode; 590 } else { 591 destinationNode = state.tabbableGroups[0].firstTabbableNode; 592 } 593 } else if (e.shiftKey) { 594 var startOfGroupIndex = findIndex(state.tabbableGroups, function(_ref2) { 595 var firstTabbableNode = _ref2.firstTabbableNode; 596 return target === firstTabbableNode; 597 }); 598 if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) { 599 startOfGroupIndex = containerIndex; 600 } 601 if (startOfGroupIndex >= 0) { 602 var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1; 603 var destinationGroup = state.tabbableGroups[destinationGroupIndex]; 604 destinationNode = destinationGroup.lastTabbableNode; 605 } 606 } else { 607 var lastOfGroupIndex = findIndex(state.tabbableGroups, function(_ref3) { 608 var lastTabbableNode = _ref3.lastTabbableNode; 609 return target === lastTabbableNode; 610 }); 611 if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) { 612 lastOfGroupIndex = containerIndex; 613 } 614 if (lastOfGroupIndex >= 0) { 615 var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1; 616 var _destinationGroup = state.tabbableGroups[_destinationGroupIndex]; 617 destinationNode = _destinationGroup.firstTabbableNode; 618 } 619 } 620 } else { 621 destinationNode = getNodeForOption("fallbackFocus"); 622 } 623 if (destinationNode) { 624 e.preventDefault(); 625 tryFocus(destinationNode); 626 } 627 }; 628 var checkKey = function checkKey2(e) { 629 if (isEscapeEvent(e) && valueOrHandler(config.escapeDeactivates, e) !== false) { 630 e.preventDefault(); 631 trap.deactivate(); 632 return; 633 } 634 if (isTabEvent(e)) { 635 checkTab(e); 636 return; 637 } 638 }; 639 var checkClick = function checkClick2(e) { 640 var target = getActualTarget(e); 641 if (findContainerIndex(target) >= 0) { 642 return; 643 } 644 if (valueOrHandler(config.clickOutsideDeactivates, e)) { 645 return; 646 } 647 if (valueOrHandler(config.allowOutsideClick, e)) { 648 return; 649 } 650 e.preventDefault(); 651 e.stopImmediatePropagation(); 652 }; 653 var addListeners = function addListeners2() { 654 if (!state.active) { 655 return; 656 } 657 activeFocusTraps.activateTrap(trap); 658 state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function() { 659 tryFocus(getInitialFocusNode()); 660 }) : tryFocus(getInitialFocusNode()); 661 doc.addEventListener("focusin", checkFocusIn, true); 662 doc.addEventListener("mousedown", checkPointerDown, { 663 capture: true, 664 passive: false 665 }); 666 doc.addEventListener("touchstart", checkPointerDown, { 667 capture: true, 668 passive: false 669 }); 670 doc.addEventListener("click", checkClick, { 671 capture: true, 672 passive: false 673 }); 674 doc.addEventListener("keydown", checkKey, { 675 capture: true, 676 passive: false 677 }); 678 return trap; 679 }; 680 var removeListeners = function removeListeners2() { 681 if (!state.active) { 682 return; 683 } 684 doc.removeEventListener("focusin", checkFocusIn, true); 685 doc.removeEventListener("mousedown", checkPointerDown, true); 686 doc.removeEventListener("touchstart", checkPointerDown, true); 687 doc.removeEventListener("click", checkClick, true); 688 doc.removeEventListener("keydown", checkKey, true); 689 return trap; 690 }; 691 trap = { 692 get active() { 693 return state.active; 694 }, 695 get paused() { 696 return state.paused; 697 }, 698 activate: function activate(activateOptions) { 699 if (state.active) { 700 return this; 701 } 702 var onActivate = getOption(activateOptions, "onActivate"); 703 var onPostActivate = getOption(activateOptions, "onPostActivate"); 704 var checkCanFocusTrap = getOption(activateOptions, "checkCanFocusTrap"); 705 if (!checkCanFocusTrap) { 706 updateTabbableNodes(); 707 } 708 state.active = true; 709 state.paused = false; 710 state.nodeFocusedBeforeActivation = doc.activeElement; 711 if (onActivate) { 712 onActivate(); 713 } 714 var finishActivation = function finishActivation2() { 715 if (checkCanFocusTrap) { 716 updateTabbableNodes(); 717 } 718 addListeners(); 719 if (onPostActivate) { 720 onPostActivate(); 721 } 722 }; 723 if (checkCanFocusTrap) { 724 checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation); 725 return this; 726 } 727 finishActivation(); 728 return this; 729 }, 730 deactivate: function deactivate(deactivateOptions) { 731 if (!state.active) { 732 return this; 733 } 734 var options = _objectSpread2({ 735 onDeactivate: config.onDeactivate, 736 onPostDeactivate: config.onPostDeactivate, 737 checkCanReturnFocus: config.checkCanReturnFocus 738 }, deactivateOptions); 739 clearTimeout(state.delayInitialFocusTimer); 740 state.delayInitialFocusTimer = void 0; 741 removeListeners(); 742 state.active = false; 743 state.paused = false; 744 activeFocusTraps.deactivateTrap(trap); 745 var onDeactivate = getOption(options, "onDeactivate"); 746 var onPostDeactivate = getOption(options, "onPostDeactivate"); 747 var checkCanReturnFocus = getOption(options, "checkCanReturnFocus"); 748 var returnFocus = getOption(options, "returnFocus", "returnFocusOnDeactivate"); 749 if (onDeactivate) { 750 onDeactivate(); 751 } 752 var finishDeactivation = function finishDeactivation2() { 753 delay(function() { 754 if (returnFocus) { 755 tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)); 756 } 757 if (onPostDeactivate) { 758 onPostDeactivate(); 759 } 760 }); 761 }; 762 if (returnFocus && checkCanReturnFocus) { 763 checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation); 764 return this; 765 } 766 finishDeactivation(); 767 return this; 768 }, 769 pause: function pause() { 770 if (state.paused || !state.active) { 771 return this; 772 } 773 state.paused = true; 774 removeListeners(); 775 return this; 776 }, 777 unpause: function unpause() { 778 if (!state.paused || !state.active) { 779 return this; 780 } 781 state.paused = false; 782 updateTabbableNodes(); 783 addListeners(); 784 return this; 785 }, 786 updateContainerElements: function updateContainerElements(containerElements) { 787 var elementsAsArray = [].concat(containerElements).filter(Boolean); 788 state.containers = elementsAsArray.map(function(element) { 789 return typeof element === "string" ? doc.querySelector(element) : element; 790 }); 791 if (state.active) { 792 updateTabbableNodes(); 793 } 794 return this; 795 } 796 }; 797 trap.updateContainerElements(elements); 798 return trap; 799 }; 800 801
vendor: 6,040 bytes, lines 801-1005
801// packages/focus/src/index.js 802 function src_default(Alpine) { 803 let lastFocused; 804 let currentFocused; 805 window.addEventListener("focusin", () => { 806 lastFocused = currentFocused; 807 currentFocused = document.activeElement; 808 }); 809 Alpine.magic("focus", (el) => { 810 let within = el; 811 return { 812 __noscroll: false, 813 __wrapAround: false, 814 within(el2) { 815 within = el2; 816 return this; 817 }, 818 withoutScrolling() { 819 this.__noscroll = true; 820 return this; 821 }, 822 noscroll() { 823 this.__noscroll = true; 824 return this; 825 }, 826 withWrapAround() { 827 this.__wrapAround = true; 828 return this; 829 }, 830 wrap() { 831 return this.withWrapAround(); 832 }, 833 focusable(el2) { 834 return isFocusable(el2); 835 }, 836 previouslyFocused() { 837 return lastFocused; 838 }, 839 lastFocused() { 840 return lastFocused; 841 }, 842 focused() { 843 return currentFocused; 844 }, 845 focusables() { 846 if (Array.isArray(within)) 847 return within; 848 return focusable(within, { displayCheck: "none" }); 849 }, 850 all() { 851 return this.focusables(); 852 }, 853 isFirst(el2) { 854 let els = this.all(); 855 return els[0] && els[0].isSameNode(el2); 856 }, 857 isLast(el2) { 858 let els = this.all(); 859 return els.length && els.slice(-1)[0].isSameNode(el2); 860 }, 861 getFirst() { 862 return this.all()[0]; 863 }, 864 getLast() { 865 return this.all().slice(-1)[0]; 866 }, 867 getNext() { 868 let list = this.all(); 869 let current = document.activeElement; 870 if (list.indexOf(current) === -1) 871 return; 872 if (this.__wrapAround && list.indexOf(current) === list.length - 1) { 873 return list[0]; 874 } 875 return list[list.indexOf(current) + 1]; 876 }, 877 getPrevious() { 878 let list = this.all(); 879 let current = document.activeElement; 880 if (list.indexOf(current) === -1) 881 return; 882 if (this.__wrapAround && list.indexOf(current) === 0) { 883 return list.slice(-1)[0]; 884 } 885 return list[list.indexOf(current) - 1]; 886 }, 887 first() { 888 this.focus(this.getFirst()); 889 }, 890 last() { 891 this.focus(this.getLast()); 892 }, 893 next() { 894 this.focus(this.getNext()); 895 }, 896 previous() { 897 this.focus(this.getPrevious()); 898 }, 899 prev() { 900 return this.previous(); 901 }, 902 focus(el2) { 903 if (!el2) 904 return; 905 setTimeout(() => { 906 if (!el2.hasAttribute("tabindex")) 907 el2.setAttribute("tabindex", "0"); 908 el2.focus({ preventScroll: this.__noscroll }); 909 }); 910 } 911 }; 912 }); 913 Alpine.directive("trap", Alpine.skipDuringClone( 914 (el, { expression, modifiers }, { effect, evaluateLater, cleanup }) => { 915 let evaluator = evaluateLater(expression); 916 let oldValue = false; 917 let options = { 918 escapeDeactivates: false, 919 allowOutsideClick: true, 920 fallbackFocus: () => el 921 }; 922 let undoInert = () => { 923 }; 924 if (modifiers.includes("noautofocus")) { 925 options.initialFocus = false; 926 } else { 927 let autofocusEl = el.querySelector("[autofocus]"); 928 if (autofocusEl) 929 options.initialFocus = autofocusEl; 930 } 931 if (modifiers.includes("inert")) { 932 options.onPostActivate = () => { 933 Alpine.nextTick(() => { 934 undoInert = setInert(el); 935 }); 936 }; 937 } 938 let trap = createFocusTrap(el, options); 939 let undoDisableScrolling = () => { 940 }; 941 const releaseFocus = () => { 942 undoInert(); 943 undoInert = () => { 944 }; 945 undoDisableScrolling(); 946 undoDisableScrolling = () => { 947 }; 948 trap.deactivate({ 949 returnFocus: !modifiers.includes("noreturn") 950 }); 951 }; 952 effect(() => evaluator((value) => { 953 if (oldValue === value) 954 return; 955 if (value && !oldValue) { 956 if (modifiers.includes("noscroll")) 957 undoDisableScrolling = disableScrolling(); 958 setTimeout(() => { 959 trap.activate(); 960 }, 15); 961 } 962 if (!value && oldValue) { 963 releaseFocus(); 964 } 965 oldValue = !!value; 966 })); 967 cleanup(releaseFocus); 968 }, 969 // When cloning, we only want to add aria-hidden attributes to the 970 // DOM and not try to actually trap, as trapping can mess with the 971 // live DOM and isn't just isolated to the cloned DOM. 972 (el, { expression, modifiers }, { evaluate }) => { 973 if (modifiers.includes("inert") && evaluate(expression)) 974 setInert(el); 975 } 976 )); 977 } 978 function setInert(el) { 979 let undos = []; 980 crawlSiblingsUp(el, (sibling) => { 981 let cache = sibling.hasAttribute("aria-hidden"); 982 sibling.setAttribute("aria-hidden", "true"); 983 undos.push(() => cache || sibling.removeAttribute("aria-hidden")); 984 }); 985 return () => { 986 while (undos.length) 987 undos.pop()(); 988 }; 989 } 990 function crawlSiblingsUp(el, callback) { 991 if (el.isSameNode(document.body) || !el.parentNode) 992 return; 993 Array.from(el.parentNode.children).forEach((sibling) => { 994 if (sibling.isSameNode(el)) { 995 crawlSiblingsUp(el.parentNode, callback); 996 } else { 997 callback(sibling); 998 } 999 }); 1000 } 1001 function disableScrolling() { 1002 let overflow = document.documentElement.style.overflow; 1003 let paddingRight = document.documentElement.style.paddingRight; 1004 let scrollbarWidth = window.innerWidth - document.documentElement.clientWidth; 1005
1005document.documentElement.style.overflow = "hidden"; 1006 document.documentElement.style.paddingRight = `${scrollbarWidth}px`; 1007 return () => { 1008 document.documentElement.style.overflow = overflow; 1009 document.documentElement.style.paddingRight = paddingRight; 1010 }; 1011 } 1012 1013
1013// packages/focus/builds/cdn.js 1014 document.addEventListener("alpine:init", () => { 1015 window.Alpine.plugin(src_default); 1016 }); 1017})(); 1018/*! Bundled license information: 1019 1020tabbable/dist/index.esm.js: 1021 (*! 1022 * tabbable 5.3.3 1023 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE 1024 *) 1025 1026focus-trap/dist/focus-trap.esm.js: 1027 (*! 1028 * focus-trap 6.9.4 1029 * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE 1030 *) 1031*/ 1032; 1033"use strict";function headerSearch(){Alpine.data("headerSearch",()=>({siteSearchOpen:!1,toggleSiteSearchOpen(){this.siteSearchOpen=!this.siteSearchOpen;},init(){const a=document.documentElement,b=()=>{var b,c;const d=null===(b=this.$refs["search-bar"])||void 0===b?void 0:b.clientHeight,e=null===(c=this.$refs["search-bar"])||void 0===c?void 0:c.getBoundingClientRect().bottom;a.style.setProperty("--search-bar-height","".concat(d,"px")),a.style.setProperty("--search-autocomplete-top","".concat(Math.floor(e),"px"));};this.$watch("siteSearchOpen",(a)=>{if(!0===a){var c;null===(c=document.getElementById("header-search-input"))||void 0===c||c.focus(),b(),window.addEventListener("resize",Drupal.debounce(b,250)),window.addEventListener("scroll",Drupal.debounce(b,100));}else b();});}})),Alpine.data("siteHeader",()=>({headroomInstance:null,pinHeader(){this.$root&&this.headroomInstance.pin();},init(){const a=document.documentElement,b=()=>{const b=document.getElementById("toolbar-bar"),c=this.$root.clientHeight,d=window.outerHeight,e=this.$root.getBoundingClientRect(),f=Math.max(0,0<e.top?Math.min(c,d-e.top):Math.min(e.bottom,d));if(b){const c=b.clientHeight,d=document.getElementsByClassName("toolbar-tray is-active toolbar-tray-horizontal")[0],e=d?d.clientHeight:0;a.style.setProperty("--header-height","".concat(f+(c+e),"px")),a.style.setProperty("--raw-header-height","".concat(f,"px"));}else{const b=f;a.style.setProperty("--header-height","".concat(b,"px")),a.style.setProperty("--raw-header-height","".concat(b,"px"));}};setTimeout(()=>{b();},1e3),window.addEventListener("resize",Drupal.debounce(b,250));const c={offset:{down:this.$root?this.$root.clientHeight:70},classes:{notTop:"u-sticky u-top-0 u-transform",pinned:"u-translate-y-0 u-ease-in pinned",unpinned:"u--translate-y-full u-ease-out"},onNotTop(){setTimeout(()=>{this.elem&&this.elem.classList.add("u-transition-transform");},500);},onTop(){this.elem&&this.elem.classList.remove("u-transition-transform");}};this.$root&&(this.headroomInstance=new Headroom(this.$root,c),this.headroomInstance.init());}})),Alpine.data("primaryNavigation",()=>({open:!1,currentSubLevel:null,menuTrail:["0"],toggle(){this.open=!this.open;const a=document.querySelector("#main-menu-aria-live");a!==void 0&&(!0===this.open?a.innerHTML="Menu has been opened.":(a.innerHTML="Menu has been closed.",setTimeout(function(){a.innerHTML="";},2e3)));},changeLevel(a,b){this.menuTrail.push(b);const c=()=>{let a=this.$refs["back-to-parent-".concat(b)].clientHeight;document.documentElement.style.setProperty("--parent-back-menu-height","".concat(a,"px"));},d=this.$refs["container--".concat(b)];bodyScrollLock.clearBodyLocks(d);const e=document.querySelector("#main-menu-aria-live");if(e!==void 0){const a=d.getAttribute("data-submenu-title");e.innerHTML="Sub menu "+a+" has been opened.";}setTimeout(()=>{c();const b=this.$refs["container--".concat(a)];b&&b.scrollTo(0,0);},500);},contractOneLevel(a){if(1>a){const a=document.querySelector("nav > .nav-list .nav-list");bodyScrollLock.clearBodyLocks(a);}this.menuTrail.pop();const b=document.querySelector("#main-menu-aria-live");if(b!==void 0){const a=this.menuTrail.at(-1),c=this.$refs["container--".concat(a)],d=c.getAttribute("data-submenu-title"),e=this.currentSubLevel,f=this.$refs["container--".concat(e)],g=f.getAttribute("data-submenu-title");let h="Sub menu "+g+" has been closed.";h+=void 0===d||null===d?" You have gone back to the top menu level.":" You have gone back to the parent menu "+d+".",b.innerHTML=h;}},isWithinTrail(a){return this.menuTrail.includes(a);},isMostExpandedLevel(a){return this.menuTrail[this.menuTrail.length-1]===a;},init(){this.$watch("menuTrail",(a)=>{this.currentSubLevel=a.at(-1);}),this.$watch("open",(a)=>{if(!(!0===a)){bodyScrollLock.clearBodyLocks();const a=this.$refs["container--0"];a&&a.scrollTo(0,0);}else if(this.currentSubLevel){const a=document.querySelector("nav > .nav-list .nav-list");bodyScrollLock.clearBodyLocks(a);}else{const a=document.querySelector("nav > .nav-list");bodyScrollLock.clearBodyLocks(a);}});}}));}window.Alpine?headerSearch():document.addEventListener("alpine:init",headerSearch);const removeAriaExanpanded=()=>{setTimeout(()=>{const a=document.querySelectorAll(".nav-list");a.forEach((a)=>{a.hasAttribute("aria-expanded")&&a.removeAttribute("aria-expanded");});},100);},menuBtn=document.querySelectorAll(".nav-list button");
vendor: 4,895 bytes, lines 1033-1040
1033menuBtn.forEach((a)=>{a.addEventListener("click",()=>{removeAriaExanpanded();});}),document.addEventListener("DOMContentLoaded",()=>{removeAriaExanpanded();});; 1034/** 1035 * what-input - A global utility for tracking the current input method (mouse, keyboard or touch). 1036 * @version v5.2.12 1037 * @link https://github.com/ten1seven/what-input 1038 * @license MIT 1039 */ 1040!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("whatInput",[],t):"object"==typeof exports?exports.whatInput=t():e.whatInput=t()}(this,function(){return i={},n.m=o=[function(e,t){"use strict";e.exports=function(){if("undefined"==typeof document||"undefined"==typeof window)return{ask:function(){return"initial"},element:function(){return null},ignoreKeys:function(){},specificKeys:function(){},registerOnChange:function(){},unRegisterOnChange:function(){}};var t=document.documentElement,n=null,u="initial",s=u,o=Date.now(),i=!1,d=["button","input","select","textarea"],r=[],c=[16,17,18,91,93],w=[],p={keydown:"keyboard",keyup:"keyboard",mousedown:"mouse",mousemove:"mouse",MSPointerDown:"pointer",MSPointerMove:"pointer",pointerdown:"pointer",pointermove:"pointer",touchstart:"touch",touchend:"touch"},a=!1,f={x:null,y:null},l={2:"touch",3:"touch",4:"mouse"},m=!1;try{var e=Object.defineProperty({},"passive",{get:function(){m=!0}});window.addEventListener("test",null,e)}catch(e){}var h=function(){var e=!m||{passive:!0,capture:!0};document.addEventListener("DOMContentLoaded",v,!0),window.PointerEvent?(window.addEventListener("pointerdown",y,!0),window.addEventListener("pointermove",E,!0)):window.MSPointerEvent?(window.addEventListener("MSPointerDown",y,!0),window.addEventListener("MSPointerMove",E,!0)):(window.addEventListener("mousedown",y,!0),window.addEventListener("mousemove",E,!0),"ontouchstart"in window&&(window.addEventListener("touchstart",y,e),window.addEventListener("touchend",y,!0))),window.addEventListener(O(),E,e),window.addEventListener("keydown",y,!0),window.addEventListener("keyup",y,!0),window.addEventListener("focusin",L,!0),window.addEventListener("focusout",b,!0)},v=function(){if(i=!("false"===t.getAttribute("data-whatpersist")||"false"===document.body.getAttribute("data-whatpersist")))try{window.sessionStorage.getItem("what-input")&&(u=window.sessionStorage.getItem("what-input")),window.sessionStorage.getItem("what-intent")&&(s=window.sessionStorage.getItem("what-intent"))}catch(e){}g("input"),g("intent")},y=function(e){var t=e.which,n=p[e.type];"pointer"===n&&(n=S(e));var o=!w.length&&-1===c.indexOf(t),i=w.length&&-1!==w.indexOf(t),r="keyboard"===n&&t&&(o||i)||"mouse"===n||"touch"===n;if(M(n)&&(r=!1),r&&u!==n&&(x("input",u=n),g("input")),r&&s!==n){var a=document.activeElement;a&&a.nodeName&&(-1===d.indexOf(a.nodeName.toLowerCase())||"button"===a.nodeName.toLowerCase()&&!C(a,"form"))&&(x("intent",s=n),g("intent"))}},g=function(e){t.setAttribute("data-what"+e,"input"===e?u:s),k(e)},E=function(e){var t=p[e.type];"pointer"===t&&(t=S(e)),A(e),(!a&&!M(t)||a&&"wheel"===e.type||"mousewheel"===e.type||"DOMMouseScroll"===e.type)&&s!==t&&(x("intent",s=t),g("intent"))},L=function(e){e.target.nodeName?(n=e.target.nodeName.toLowerCase(),t.setAttribute("data-whatelement",n),e.target.classList&&e.target.classList.length&&t.setAttribute("data-whatclasses",e.target.classList.toString().replace(" ",","))):b()},b=function(){n=null,t.removeAttribute("data-whatelement"),t.removeAttribute("data-whatclasses")},x=function(e,t){if(i)try{window.sessionStorage.setItem("what-"+e,t)}catch(e){}},S=function(e){return"number"==typeof e.pointerType?l[e.pointerType]:"pen"===e.pointerType?"touch":e.pointerType},M=function(e){var t=Date.now(),n="mouse"===e&&"touch"===u&&t-o<200;return o=t,n},O=function(){return"onwheel"in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll"},k=function(e){for(var t=0,n=r.length;t<n;t++)r[t].type===e&&r[t].fn.call(void 0,"input"===e?u:s)},A=function(e){f.x!==e.screenX||f.y!==e.screenY?(a=!1,f.x=e.screenX,f.y=e.screenY):a=!0},C=function(e,t){var n=window.Element.prototype;if(n.matches||(n.matches=n.msMatchesSelector||n.webkitMatchesSelector),n.closest)return e.closest(t);do{if(e.matches(t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null};return"addEventListener"in window&&Array.prototype.indexOf&&(p[O()]="mouse",h()),{ask:function(e){return"intent"===e?s:u},element:function(){return n},ignoreKeys:function(e){c=e},specificKeys:function(e){w=e},registerOnChange:function(e,t){r.push({fn:e,type:t||"input"})},unRegisterOnChange:function(e){var t=function(e){for(var t=0,n=r.length;t<n;t++)if(r[t].fn===e)return t}(e);!t&&0!==t||r.splice(t,1)},clearStorage:function(){window.sessionStorage.clear()}}}()}],n.c=i,n.p="",n(0);function n(e){if(i[e])return i[e].exports;var t=i[e]={exports:{},id:e,loaded:!1};
1040return o[e].call(t.exports,t,t.exports,n),t.loaded=!0,t.exports}var o,i}); 1041 1042; 1043document.addEventListener('DOMContentLoaded',(event)=>{if(document.getElementById('view-cookie-settings'))document.getElementById('view-cookie-settings').onclick=function(){if(CookieControl)CookieControl.open();};});;
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.