PageSourceSearch

https://www.london.gov.uk/sites/default/files/js/js_EW4OeGClIB80ga…TP-aVEIr_dQ2Ua3r9JzpktfhPc-ltg0ei1yXT9dXZ6U

js london.gov.uk collected 2026-09-24 08:25:53 UTC 48,298 bytes, 1,043 lines download raw bytes

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.