PageSourceSearch

https://www.falkoping.se/webapp-resource/4.4933f3551a04786e3042fa3…/1715692620513/webapp-assets.js

js falkoping.se collected 2026-09-24 20:30:54 UTC 50,496 bytes, 1,202 lines download raw bytes

1AppRegistry.registerBundle({applicationId:'limepark.webapp-overlay-button|2.1.1',bundle: {"en":{},"sv":{}}});
2AppRegistry.registerModule({applicationId:'limepark.webapp-overlay-button|2.1.1',path:'/module/client/focus-trap',module:function(define){'use strict';function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
6function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7define(function (require) {
8  /* eslint-disable curly, no-useless-return */
9  var tabbable = require("/module/client/tabbable");
10  var activeFocusDelay;
11  var activeFocusTraps = function () {
12    var trapQueue = [];
13    return {
14      activateTrap: function activateTrap(trap) {
15        if (trapQueue.length > 0) {
16          var activeTrap = trapQueue[trapQueue.length - 1];
17          if (activeTrap !== trap) {
18            activeTrap.pause();
19          }
20        }
21        var trapIndex = trapQueue.indexOf(trap);
22        if (trapIndex === -1) {
23          trapQueue.push(trap);
24        } else {
25          // move this existing trap to the front of the queue
26          trapQueue.splice(trapIndex, 1);
27          trapQueue.push(trap);
28        }
29      },
30      deactivateTrap: function deactivateTrap(trap) {
31        var trapIndex = trapQueue.indexOf(trap);
32        if (trapIndex !== -1) {
33          trapQueue.splice(trapIndex, 1);
34        }
35        if (trapQueue.length > 0) {
36          trapQueue[trapQueue.length - 1].unpause();
37        }
38      }
39    };
40  }();
41  function focusTrap(element, userOptions) {
42    var doc = document;
43    var container = typeof element === 'string' ? doc.querySelector(element) : element;
44    var config = _objectSpread({
45      returnFocusOnDeactivate: true,
46      escapeDeactivates: true
47    }, userOptions);
48    var state = {
49      firstTabbableNode: null,
50      lastTabbableNode: null,
51      nodeFocusedBeforeActivation: null,
52      mostRecentlyFocusedNode: null,
53      active: false,
54      paused: false
55    };
56    var trap = {
57      activate: activate,
58      deactivate: deactivate,
59      pause: pause,
60      unpause: unpause
61    };
62    return trap;
63    function activate(activateOptions) {
64      if (state.active) return;
65      updateTabbableNodes();
66      state.active = true;
67      state.paused = false;
68      state.nodeFocusedBeforeActivation = activateOptions.activeElement || doc.activeElement;
69      var onActivate = activateOptions && activateOptions.onActivate ? activateOptions.onActivate : config.onActivate;
70      if (onActivate) {
71        onActivate();
72      }
73      addListeners();
74      return trap;
75    }
76    function deactivate(deactivateOptions) {
77      if (!state.active) return;
78      clearTimeout(activeFocusDelay);
79      removeListeners();
80      state.active = false;
vendor: 4,535 bytes, lines 81-209
81      state.paused = false;
82      activeFocusTraps.deactivateTrap(trap);
83      var onDeactivate = deactivateOptions && deactivateOptions.onDeactivate !== undefined ? deactivateOptions.onDeactivate : config.onDeactivate;
84      if (onDeactivate) {
85        onDeactivate();
86      }
87      var returnFocus = deactivateOptions && deactivateOptions.returnFocus !== undefined ? deactivateOptions.returnFocus : config.returnFocusOnDeactivate;
88      if (returnFocus) {
89        delay(function () {
90          tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));
91        });
92      }
93      return trap;
94    }
95    function pause() {
96      if (state.paused || !state.active) return;
97      state.paused = true;
98      removeListeners();
99    }
100    function unpause() {
101      if (!state.paused || !state.active) return;
102      state.paused = false;
103      updateTabbableNodes();
104      addListeners();
105    }
106    function addListeners() {
107      if (!state.active) return;
108
109      // There can be only one listening focus trap at a time
110      activeFocusTraps.activateTrap(trap);
111
112      // Delay ensures that the focused element doesn't capture the event
113      // that caused the focus trap activation.
114      activeFocusDelay = delay(function () {
115        tryFocus(getInitialFocusNode());
116      });
117      doc.addEventListener('focusin', checkFocusIn, true);
118      doc.addEventListener('mousedown', checkPointerDown, {
119        capture: true,
120        passive: false
121      });
122      doc.addEventListener('touchstart', checkPointerDown, {
123        capture: true,
124        passive: false
125      });
126      doc.addEventListener('click', checkClick, {
127        capture: true,
128        passive: false
129      });
130      doc.addEventListener('keydown', checkKey, {
131        capture: true,
132        passive: false
133      });
134      return trap;
135    }
136    function removeListeners() {
137      if (!state.active) return;
138      doc.removeEventListener('focusin', checkFocusIn, true);
139      doc.removeEventListener('mousedown', checkPointerDown, true);
140      doc.removeEventListener('touchstart', checkPointerDown, true);
141      doc.removeEventListener('click', checkClick, true);
142      doc.removeEventListener('keydown', checkKey, true);
143      return trap;
144    }
145    function getNodeForOption(optionName) {
146      var optionValue = config[optionName];
147      var node = optionValue;
148      if (!optionValue) {
149        return null;
150      }
151      if (typeof optionValue === 'string') {
152        node = doc.querySelector(optionValue);
153        if (!node) {
154          throw new Error('`' + optionName + '` refers to no known node');
155        }
156      }
157      if (typeof optionValue === 'function') {
158        node = optionValue();
159        if (!node) {
160          throw new Error('`' + optionName + '` did not return a node');
161        }
162      }
163      return node;
164    }
165    function getInitialFocusNode() {
166      var node;
167      if (getNodeForOption('initialFocus') !== null) {
168        node = getNodeForOption('initialFocus');
169      } else if (container.contains(doc.activeElement)) {
170        node = doc.activeElement;
171      } else {
172        node = state.firstTabbableNode || getNodeForOption('fallbackFocus');
173      }
174      if (!node) {
175        throw new Error('Your focus-trap needs to have at least one focusable element');
176      }
177      return node;
178    }
179    function getReturnFocusNode(previousActiveElement) {
180      var node = getNodeForOption('setReturnFocus');
181      return node ? node : previousActiveElement;
182    }
183
184    // This needs to be done on mousedown and touchstart instead of click
185    // so that it precedes the focus event.
186    function checkPointerDown(e) {
187      if (container.contains(e.target)) return;
188      if (config.clickOutsideDeactivates) {
189        deactivate({
190          returnFocus: !tabbable.isFocusable(e.target)
191        });
192        return;
193      }
194      // This is needed for mobile devices.
195      // (If we'll only let `click` events through,
196      // then on mobile they will be blocked anyways if `touchstart` is blocked.)
197      if (config.allowOutsideClick && (typeof config.allowOutsideClick === 'boolean' ? config.allowOutsideClick : config.allowOutsideClick(e))) {
198        return;
199      }
200      e.preventDefault();
201    }
202
203    // In case focus escapes the trap for some strange reason, pull it back in.
204    function checkFocusIn(e) {
205      // In Firefox when you Tab out of an iframe the Document is briefly focused.
206      if (container.contains(e.target) || e.target instanceof Document) {
207        return;
208      }
209      e.stopImmediatePropagation();
210      tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());
211    }
212    function checkKey(e) {
213      if (config.escapeDeactivates !== false && isEscapeEvent(e)) {
214        e.preventDefault();
215        deactivate();
216        return;
217      }
218      if (isTabEvent(e)) {
219        checkTab(e);
220        return;
221      }
222    }
223
224    // Hijack Tab events on the first and last focusable nodes of the trap,
225    // in order to prevent focus from escaping. If it escapes for even a
226    // moment it can end up scrolling the page and causing confusion so we
227    // kind of need to capture the action at the keydown phase.
228    function checkTab(e) {
229      updateTabbableNodes();
230      if (e.shiftKey && e.target === state.firstTabbableNode) {
231        e.preventDefault();
232        tryFocus(state.lastTabbableNode);
233        return;
234      }
235      if (!e.shiftKey && e.target === state.lastTabbableNode) {
236        e.preventDefault();
237        tryFocus(state.firstTabbableNode);
238        return;
239      }
240    }
241    function checkClick(e) {
242      if (config.clickOutsideDeactivates) return;
243      if (container.contains(e.target)) return;
244      if (config.allowOutsideClick && (typeof config.allowOutsideClick === 'boolean' ? config.allowOutsideClick : config.allowOutsideClick(e))) {
245        return;
246      }
247      e.preventDefault();
248      e.stopImmediatePropagation();
249    }
250    function updateTabbableNodes() {
251      var tabbableNodes = tabbable.tabbable(container);
252      state.firstTabbableNode = tabbableNodes[0] || getInitialFocusNode();
253      state.lastTabbableNode = tabbableNodes[tabbableNodes.length - 1] || getInitialFocusNode();
254    }
255    function tryFocus(node) {
256      if (node === doc.activeElement) return;
257      if (!node || !node.focus) {
258        tryFocus(getInitialFocusNode());
259        return;
260      }
261      node.focus({
262        preventScroll: !!config.preventScroll
263      });
264      state.mostRecentlyFocusedNode = node;
265      if (isSelectableInput(node)) {
266        node.select();
267      }
268    }
269  }
270  function isSelectableInput(node) {
271    return node.tagName && node.tagName.toLowerCase() === 'input' && typeof node.select === 'function';
272  }
273  function isEscapeEvent(e) {
274    return e.key === 'Escape' || e.key === 'Esc' || e.keyCode === 27;
275  }
276  function isTabEvent(e) {
277    return e.key === 'Tab' || e.keyCode === 9;
278  }
279  function delay(fn) {
280    return setTimeout(fn, 0);
281  }
282  return {
283    create: focusTrap
284  };
285});}});
286AppRegistry.registerModule({applicationId:'limepark.webapp-overlay-button|2.1.1',path:'/module/common/domid-util',module:function(define){'use strict';function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
287function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
288function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
289function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
290function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
291define(function (require) {
292  var isClient = typeof window !== 'undefined';
293  var __req__ = require;
294  var escapeIdentifier = function escapeIdentifier(prefix, identifier) {
295    return prefix + identifier.replace('.', '_');
296  };
297  var portletId = function () {
298    if (isClient) {
299      return require('router').portletId;
300    } else {
301      return __req__('PortletContextUtil').getCurrentPortlet().getIdentifier();
302    }
303  }();
304  var portletDomId = escapeIdentifier('svid', portletId);
305  var properties = {};
306  var addProperty = function addProperty(name, value) {
307    var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'ID';
308    properties[name] = value;
309    properties[name + 'Selector'] = type === 'ID' ? '#' + value : '.' + value;
310  };
311  addProperty('pageHidden', "lp-overlay-page--hidden-".concat(portletDomId), 'CLASS');
312  addProperty('page', "lp-overlay-page-".concat(portletDomId), 'CLASS');
313  addProperty('containerVisible', "".concat(portletDomId, "-container--visible"), 'CLASS');
314  addProperty('button', portletDomId);
315  addProperty('container', portletDomId + '-container');
316  addProperty('backdrop', portletDomId + '-backdrop');
317  return _objectSpread({}, properties);
318});}});
319AppRegistry.registerModule({applicationId:'limepark.webapp-overlay-button|2.1.1',path:'/module/client/@limepark/event-api_3.0.2/EventApi',module:function(define){'use strict';define(function(require) {
320      var exports = {};
321      var module = {
322        exports: exports
323      };
324
325      var _class;
326function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
327function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
328function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
329function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
330function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
331function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
332var DEFAULT_EVENT_PREFIX = 'lp-client-event';
333var TARGET_ALL = 'LP_CLIENT_EVENT_TARGET_ALL';
334
335/**
336 * @class EventApi
337 */
338module.exports = (_class = /*#__PURE__*/function () {
339  /**
340   * Constructor
341   *
342   * @param {Object} opts An object with options
343   * @param {String} [opts.appIdentifier=''] The current app identifier from the manifest.
344   * @param {String} [opts.portletId=''] The current portlet's identifier.
345   */
346  function EventApi() {
347    var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
348    _classCallCheck(this, EventApi);
349    this.appIdentifier = (opts === null || opts === void 0 ? void 0 : opts.appIdentifier) || '';
350    this.portletIdentifier = (opts === null || opts === void 0 ? void 0 : opts.portletId) || '';
351    this.eventPrefix = DEFAULT_EVENT_PREFIX;
352  }
353
354  /**
355   * Internal method for building an array with identifiers for this instance.
356   * 
357   * @param {String[]} identifiers 
358   * @private
359   * @returns String[]
360   */
361  _createClass(EventApi, [{
362    key: "prepareIdentifiers",
363    value: function prepareIdentifiers(identifiers) {
364      identifiers = Array.isArray(identifiers) ? identifiers : [identifiers];
365      identifiers.push(TARGET_ALL);
366      if (this.appIdentifier && identifiers.indexOf(this.appIdentifier) === -1) {
367        identifiers.push(this.appIdentifier);
368      }
369      if (this.portletIdentifier && identifiers.indexOf(this.portletIdentifier) === -1) {
370        identifiers.push(this.portletIdentifier);
371      }
372      return identifiers.filter(function (ident) {
373        return String(ident || '').trim();
374      });
375    }
376
377    /**
378     * Namespaces an event with a prefix.
379     * 
380     * @param {string} key Event name to be namespaced.
381     * @returns {string} Namespaced event.
382     */
383  }, {
384    key: "createEventName",
385    value: function createEventName(key) {
386      return "".concat(this.eventPrefix, ":").concat(key);
387    }
388
389    /**
390     * Registers events on the document and returns a function for deregistering the same events.
391     * 
392     * @param {Object} events An object with events where the keys are the event names.
393     * @param {string[]} identifiers An array of identifiers for the app where the events are registered.
394     * @returns {Function}
395     */
396  }, {
397    key: "registerEvents",
398    value: function registerEvents() {
399      var _this = this;
400      var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
401      var identifiers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
402      identifiers = this.prepareIdentifiers(identifiers);
403      var listeners = [];
404      var _loop = function _loop(key) {
405        var eventName = _this.createEventName(key);
406        var listener = function listener(e) {
407          if (e.detail.identifier && identifiers.includes(e.detail.identifier)) {
408            events[key].call(null, e.detail.args, {
409              sender: e.detail.sender,
410              fromSelf: e.detail.sender && e.detail.sender === _this.portletIdentifier
411            });
412          }
413        };
414        document.addEventListener(eventName, listener);
415        listeners.push({
416          eventName: eventName,
417          listener: listener
418        });
419      };
420      for (var _i = 0, _Object$keys = Object.keys(events); _i < _Object$keys.length; _i++) {
421        var key = _Object$keys[_i];
422        _loop(key);
423      }
424      return function () {
425        listeners.forEach(function (_ref) {
426          var eventName = _ref.eventName,
427            listener = _ref.listener;
428          return document.removeEventListener(eventName, listener);
429        });
430      };
431    }
432
433    /**
434     * Trigger an event
435     * 
436     * @param {String} identifier An identifier for the event apis to talk to.
437     * @param {String} name The name of the event to be triggered.
438     * @param {Object} args The arguments which the registered event will get.
439     */
440  }, {
441    key: "triggerEvent",
442    value: function triggerEvent(identifier, name) {
443      var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
444      document.dispatchEvent(new CustomEvent(this.createEventName(name), {
445        detail: {
446          identifier: identifier,
447          args: args,
448          sender: this.portletIdentifier
449        }
450      }));
451    }
452  }]);
453  return EventApi;
454}(), _defineProperty(_class, "TARGET_ALL", TARGET_ALL), _class);;
455
456      return module.exports;
457    });}});
458AppRegistry.registerModule({applicationId:'limepark.webapp-overlay-button|2.1.1',path:'/module/client/@limepark/event-api_3.0.2/cjs',module:function(define){'use strict';define(function (require) {
459  var app = require('app');
460  var EventApi = require("/module/client/@limepark/event-api_3.0.2/EventApi");
461
462  // Default instance.
463  var api = new EventApi({
464    appIdentifier: app.webAppId,
465    portletId: app.portletId
466  });
467
468  /**
469   * 
470   * @param {string} identifier Identifier for the app to be triggered.
471   * @param {string} name Name of the event.
472   * @param {Object} args Arguments which should be passed to the event.
473   * @returns {Void}
474   */
475  function triggerEvent(identifier, name) {
476    var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
477    return api.triggerEvent(identifier, name, args);
478  }
479
480  /**
481   * Creates events which can be used to communicate with the app.
482   * 
483   * @param {Object} events An object with events where the keys are the event names.
484   * @param {string[]} identifiers An array of identifiers for the app where the events are registered.
485   * @returns {Function} Returns a function for deregistering the created events. Useful when registering in React.useEffect().
486   * @example
487   * // CJS example for old webapps.
488   * define((require) => {
489   *   const eventApi = require('@limepark/event-api/cjs');
490   *   
491   *   // ...
492   *   
493   *   return Component.extend({
494   *     onAttached() {
495   *       this._removeEventsCallback = eventApi.createEventApi({
496   *         setName ({ name }) {
497   *           // ...
498   *         }
499   *       });
500   *     }
501   *   });
502   * });
503   */
504  function createEventApi() {
505    var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
506    var identifiers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
507    return api.registerEvents(events, identifiers);
508  }
509  return {
510    EventApi: EventApi,
511    triggerEvent: triggerEvent,
512    createEventApi: createEventApi
513  };
514});}});
515AppRegistry.registerModule({applicationId:'limepark.webapp-overlay-button|2.1.1',path:'/template/main',module:function(define){define(function(require){var _=require('underscore');return function(obj){
516var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
517with(obj||{}){
518__p+='<button class="lp-overlay-button '+
519((__t=(buttonClasses))==null?'':_.escape(__t))+
520'">'+
521((__t=(buttonText))==null?'':__t)+
522'</button>';
523}
524return __p;
525};});}});
526AppRegistry.registerModule({applicationId:'limepark.webapp-overlay-button|2.1.1',path:'/template/overlay',module:function(define){define(function(require){var _=require('underscore');return function(obj){
527var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
528with(obj||{}){
529__p+='<div aria-label="'+
530((__t=(dialogLabel))==null?'':_.escape(__t))+
531'" class="lp-overlay__container '+
532((__t=(containerClasses))==null?'':_.escape(__t))+
533'" role="dialog" aria-hidden="true">\n  <div class="lp-overlay__inner">\n    <div class="lp-overlay__header">\n      ';
534 if (titleText || titleText !== '') { 
535__p+='\n        <h2 class="lp-overlay__title">'+
536((__t=(titleText))==null?'':__t)+
537'</h2>\n      ';
538 } 
539__p+='\n      <button class="lp-overlay__close-button" data-action-close-overlay>'+
540((__t=(closeButtonText))==null?'':__t)+
541'</button>\n    </div>\n    <div class="lp-overlay__content"></div>\n  </div>\n</div>';
542}
543return __p;
544};});}});
545AppRegistry.registerModule({applicationId:'limepark.webapp-overlay-button|2.1.1',path:'/module/client/tabbable',module:function(define){'use strict';define(function (require) {
546  /**
547   * Source: https://github.com/focus-trap/tabbable
548   */
549  var candidateSelectors = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable="false"])', 'details>summary'];
550  var candidateSelector = /* #__PURE__ */candidateSelectors.join(',');
551  var matches = typeof Element === 'undefined' ? function () {} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
552  function tabbable(el, options) {
553    options = options || {};
554    var regularTabbables = [];
555    var orderedTabbables = [];
556    var candidates = el.querySelectorAll(candidateSelector);
557    if (options.includeContainer) {
558      if (matches.call(el, candidateSelector)) {
559        candidates = Array.prototype.slice.apply(candidates);
560        candidates.unshift(el);
561      }
562    }
563    var candidate;
564    var candidateTabindex;
565    for (var i = 0; i < candidates.length; i++) {
566      candidate = candidates[i];
567      if (!isNodeMatchingSelectorTabbable(candidate)) {
568        continue;
569      }
570      candidateTabindex = getTabindex(candidate);
571      if (candidateTabindex === 0) {
572        regularTabbables.push(candidate);
573      } else {
574        orderedTabbables.push({
575          documentOrder: i,
576          tabIndex: candidateTabindex,
577          node: candidate
578        });
579      }
580    }
581    var tabbableNodes = orderedTabbables.sort(sortOrderedTabbables).map(function (a) {
582      return a.node;
583    }).concat(regularTabbables);
584    return tabbableNodes;
585  }
586  function isNodeMatchingSelectorTabbable(node) {
587    if (!isNodeMatchingSelectorFocusable(node) || isNonTabbableRadio(node) || getTabindex(node) < 0) {
588      return false;
589    }
590    return true;
591  }
592  function isTabbable(node) {
593    if (!node) {
594      throw new Error('No node provided');
595    }
596    if (matches.call(node, candidateSelector) === false) {
597      return false;
598    }
599    return isNodeMatchingSelectorTabbable(node);
600  }
601  function isNodeMatchingSelectorFocusable(node) {
602    if (node.disabled || isHiddenInput(node) || isHidden(node)) {
603      return false;
604    }
605    return true;
606  }
607  var focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');
608  function isFocusable(node) {
609    if (!node) {
610      throw new Error('No node provided');
611    }
612    if (matches.call(node, focusableCandidateSelector) === false) {
613      return false;
614    }
615    return isNodeMatchingSelectorFocusable(node);
616  }
617  function getTabindex(node) {
618    var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);
619    if (!isNaN(tabindexAttr)) {
620      return tabindexAttr;
621    }
622
623    // Browsers do not return `tabIndex` correctly for contentEditable nodes;
624    // so if they don't have a tabindex attribute specifically set, assume it's 0.
625    if (isContentEditable(node)) {
626      return 0;
627    }
628
629    // in Chrome, <audio controls/> and <video controls/> elements get a default
630    //  `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,
631    //  yet they are still part of the regular tab order; in FF, they get a default
632    //  `tabIndex` of 0; since Chrome still puts those elements in the regular tab
633    //  order, consider their tab index to be 0
634    if ((node.nodeName === 'AUDIO' || node.nodeName === 'VIDEO') && node.getAttribute('tabindex') === null) {
635      return 0;
636    }
637    return node.tabIndex;
638  }
639  function sortOrderedTabbables(a, b) {
640    return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;
641  }
642  function isContentEditable(node) {
643    return node.contentEditable === 'true';
644  }
645  function isInput(node) {
646    return node.tagName === 'INPUT';
647  }
648  function isHiddenInput(node) {
649    return isInput(node) && node.type === 'hidden';
650  }
651  function isRadio(node) {
652    return isInput(node) && node.type === 'radio';
653  }
654  function isNonTabbableRadio(node) {
655    return isRadio(node) && !isTabbableRadio(node);
656  }
657  function getCheckedRadio(nodes, form) {
658    for (var i = 0; i < nodes.length; i++) {
659      if (nodes[i].checked && nodes[i].form === form) {
660        return nodes[i];
661      }
662    }
663  }
664  function isTabbableRadio(node) {
665    if (!node.name) {
666      return true;
667    }
668    var radioScope = node.form || node.ownerDocument;
669    var radioSet = radioScope.querySelectorAll('input[type="radio"][name="' + node.name + '"]');
670    var checked = getCheckedRadio(radioSet, node.form);
671    return !checked || checked === node;
672  }
673  function isHidden(node) {
674    // offsetParent being null will allow detecting cases where an element is invisible or inside an invisible element,
675    // as long as the element does not use position: fixed. For them, their visibility has to be checked directly as well.
676    return node.offsetParent === null || getComputedStyle(node).visibility === 'hidden';
677  }
678  return {
679    tabbable: tabbable,
680    isTabbable: isTabbable,
681    isFocusable: isFocusable
682  };
683});}});
684AppRegistry.registerModule({applicationId:'limepark.webapp-overlay-button|2.1.1',path:'/module/common/@limepark/wdu-log_1.0.2/index',module:function(define){'use strict';/**
685 * Logger for use with the webapp dev utils `log` command.
686 * 
687 * @module common/wdu-log
688 * @example 
689 * const WDULog = require('!limepark:common/wdu-log');
690 * const log    = WDULog.getLogger(__filename);
691 * 
692 * function doSomeWork(data) {
693 *   log.debug('Trying to calculate data from', data);
694 *   var result = calculateData(data);
695 *   if (!data) {
696 *     log.warn('Unable to calculate result from specified data.');
697 *     return null;
698 *   }
699 *   
700 *   log.debug('Generated result', result);
701 *   
702 *   //
703 *   //...
704 * }
705 */
706/* globals require, module */
707(function (root, factory) {
708  if (typeof define === 'function') {
709    // AMD. Register as an anonymous module.
710    define(factory);
711  } else if (typeof module === 'object' && module.exports) {
712    // Node. Does not work with strict CommonJS, but
713    // only CommonJS-like environments that support module.exports,
714    // like Node.
715    module.exports = factory(require);
716  } else {
717    // Browser globals (root is window)
718    root.wduLog = factory();
719  }
720})(typeof self !== 'undefined' ? self : this, function (require) {
721  var _dereq_ = require;
722  var isBrowser = typeof window !== 'undefined';
723  var logUtil = isBrowser ? console : _dereq_('LogUtil');
724  if (isBrowser) {
725    logUtil.debug = logUtil.log;
726  }
727  var buildLogMessage = function buildLogMessage(logTag, message) {
728    var data = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
729    var messages = ["WDU[M#".concat("limepark.webapp-overlay-button", "/").concat(logTag, "]: ").concat(message)];
730    if (data) {
731      messages.push("WDU[D#".concat("limepark.webapp-overlay-button", "/").concat(logTag, "]: ").concat(JSON.stringify(data)));
732    }
733    return messages;
734  };
735
736  /**
737   * Creates a new Logger with a logTag
738   * 
739   * @param {string} logTag The log tag
740   * @module server/wdu-log/Logger
741   */
742  var Logger = function Logger(logTag) {
743    this.LOG_TAG = logTag;
744  };
745
746  /**
747   * Logs an info message
748   *
749   * @param {String} message The message
750   * @param {Mixed}
750 data Extra data for the message, will be stringified
751   * @memberof module:server/wdu-log/Logger
752   */
753  Logger.prototype.info = function Logger$$info(message) {
754    var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
755    buildLogMessage(this.LOG_TAG, message, data).forEach(function (m) {
756      return logUtil.info(m);
757    });
758  };
759
760  /**
761   * Logs a debug message
762   *
763   * @param {String} message The message
764   * @param {Mixed} data Extra data for the message, will be stringified
765   * @memberof module:server/wdu-log/Logger
766   */
767  Logger.prototype.debug = function Logger$$debug(message) {
768    var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
769    buildLogMessage(this.LOG_TAG, message, data).forEach(function (m) {
770      return logUtil.debug(m);
771    });
772  };
773
774  /**
775   * Logs a warn message
776   *
777   * @param {String} message The message
778   * @param {Mixed} data Extra data for the message, will be stringified
779   * @memberof module:server/wdu-log/Logger
780   */
781  Logger.prototype.warn = function Logger$$warn(message) {
782    var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
783    buildLogMessage(this.LOG_TAG, message, data).forEach(function (m) {
784      return logUtil.warn(m);
785    });
786  };
787
788  /**
789   * Logs an error message
790   *
791   * @param {String} message The message
792   * @param {Mixed} data Extra data for the message, will be stringified
793   * @memberof module:server/wdu-log/Logger
794   */
795  Logger.prototype.error = function Logger$$error(message) {
796    var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
797    buildLogMessage(this.LOG_TAG, message, data).forEach(function (m) {
798      return logUtil.error(m);
799    });
800  };
801  Logger.prototype._debugReportError = function Logger$$_debugReportError(e, filename, fnName, line, col) {
802    try {
803      buildLogMessage(this.LOG_TAG, "An error occured in ".concat(filename, " (").concat(fnName, ":").concat(line, ":").concat(col, ") at ").concat(e.lineNumber, ": ").concat(e.message), e.stack).forEach(function (m) {
804        return logUtil.error(m);
805      });
806    } catch (ex) {
807      logUtil.error('Error in wdu-log: ' + ex);
808    }
809  };
810
811  /**
812   * Creates a logger with a specific LogTag
813   *
814   * @param {String} logTag The logTag, typically filename or another unique tag.
815   * @memberof module:server/wdu-log
816   * @returns {module:server/wdu-log/Logger} The logger
817   */
818  var getLogger = function getLogger(logTag) {
819    return new Logger(logTag);
820  };
821  return {
822    getLogger: getLogger
823  };
824});}});
825AppRegistry.registerModule({applicationId:'limepark.webapp-overlay-button|2.1.1',path:'/main',module:function(define){'use strict';function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
826function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
827function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
828function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
829function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
830define(function (require) {
831  "use strict";
832
833  var eventApi = require("/module/client/@limepark/event-api_3.0.2/cjs");
834  var Component = require("Component");
835  var template = require("/template/main");
836  var $ = require("jquery");
837  var overlayTemplate = require("/template/overlay");
838  var FocusTrap = require("/module/client/focus-trap");
839  var events = require("events");
840  var tabbable = require("/module/client/tabbable");
841  var domId = require("/module/common/domid-util");
842  var CUSTOM_END_EVENT = "overlayButton:tranimationend";
843  var CUSTOM_EVENTS_NAMESPACE = "lp-overlay-button";
844  var KEYBOARD_TYPES = ["search", "date", "datetime-local", "email", "number", "password", "range", "tel", "text", "time", "url"];
845  var isOnline = function isOnline() {
846    return $("html").hasClass("sv-edit-mode");
847  };
848  return Component.extend({
849    template: template,
850    className: "lp-overlay-button__wrapper",
851    attributes: function attributes() {
852      var attributes = {};
853      if (this.state.ariaRole) {
854        attributes.role = this.state.ariaRole;
855      }
856      if (this.state.ariaLabel) {
857        attributes["aria-label"] = this.state.ariaLabel;
858      }
859      return attributes;
860    },
861    events: {
862      dom: {
863        "click button": "handleButtonClick"
864      }
865    },
866    _triggerCustomEvent: function _triggerCustomEvent(eventName) {
867      this.$el.trigger("".concat(eventName, ".").concat(CUSTOM_EVENTS_NAMESPACE), [this.$el, this._$container]);
868      events.trigger("".concat(CUSTOM_EVENTS_NAMESPACE, ":").concat(eventName), [this.$el, this._$container]);
869    },
870    _hasMovedContent: false,
871    onAttached: function onAttached() {
872      this._ensureContainer();
873      this._$pageContainer = $("body > div.sv-layout").eq(0).addClass("lp-overlay-page");
874      this._$pageContainer.attr("aria-hidden", "false");
875      this._pageContainerHiddenClass = domId.pageHidden;
876      this._$button = this.$("button").attr("aria-controls", this._containerId).attr("aria-expanded", "false");
877      var inst = this;
878      this._removeEventsCallback = eventApi.createEventApi({
879        close: function close(_ref) {
880          var _ref$trapOptions = _ref.trapOptions,
881            trapOptions = _ref$trapOptions === void 0 ? {} : _ref$trapOptions;
882          inst._hideContainer({
883            trapOptions: trapOptions
884          });
885        },
886        show: function show(_ref2) {
887          var _ref2$firstFocusNode = _ref2.firstFocusNode,
888            firstFocusNode = _ref2$firstFocusNode === void 0 ? null : _ref2$firstFocusNode;
889          inst._showContainer(firstFocusNode);
890        }
891      });
892      this._setupAnchorLinkHijacker();
893      this._ensureBackdrop();
894      this._setupBreakpointListener();
895      this._setupReducedMotionListener();
896      this._setupResizeListener();
897    },
898    onDestroy: function onDestroy() {
899      if (this._removeEventsCallback) {
900        this._removeEventsCallback();
901        this._removeEventsCallback = null;
902      }
903    },
904    _setupResizeListener: function _setupResizeListener() {
905      var _this = this;
906      $(window).on("resize", function () {
907        _this._$container.height($(window).innerHeight());
908      }).trigger("resize");
909    },
910    _setupAnchorLinkHijacker: function _setupAnchorLinkHijacker() {
911      var _this2 = this;
912      $("body").on("click", 'a[href^="#"]', function (e) {
913        if (!_this2._hasMovedContent) {
914          return;
915        }
916        var $target = $(e.target);
917        var targetId = $target.attr("href");
918        if (!targetId) {
919          return;
920        }
921        var $anchorTargetElement = null;
922        try {
923          $anchorTargetElement = _this2._$container.find(targetId);
924        } catch (ex) {
925          // not handeled.
926        }
927        if (!$anchorTargetElement || $anchorTargetElement.length === 0) {
928          return;
929        }
930        e.preventDefault();
931        _this2._showContainer($anchorTargetElement.get(0));
932        return false;
933      });
934    },
935    _ensureBackdrop: function _ensureBackdrop() {
936      this._$backdrop = $("#" + domId.backdrop);
937      if (!this._$backdrop.length) {
938        this._$backdrop = $('<div class="lp-overlay__backdrop" />').hide().attr("id", domId.backdrop);
939        $("body").append(this._$backdrop);
940      }
941    },
942    _setupReducedMotionListener: function _setupReducedMotionListener() {
943      var _this3 = this;
944      var mql = window.matchMedia("(prefers-reduced-motion: reduce)");
945      var onMqlChange = function onMqlChange() {
946        if (mql.matches) {
947          _this3._animationDuration = 1;
948        } else {
949          _this3._animationDuration = _this3.state.animationDuration;
950        }
951      };
952      mql.addListener(onMqlChange);
953      onMqlChange();
954    },
955    _setupBreakpointListener: function _setupBreakpointListener() {
956      var _this4 = this;
957      var mqlButton = window.matchMedia(this.state.breakpoints);
958      var onMqlButtonChange = function onMqlButtonChange() {
959        if (mqlButton.matches) {
960          _this4._ensureContent();
961          if (!isOnline()) {
962            _this4.$el.parent().show();
963          }
964        } else {
965          if (!isOnline()) {
966            _this4.$el.parent().hide();
967          }
968          _this4._hideContainer();
969          _this4._returnContent();
970        }
971      };
972      mqlButton.addListener(onMqlButtonChange);
973      onMqlButtonChange();
974      this.state.elements.reduce(function (elementList, element) {
975        var globalContext = _this4;
976        var $elements = $(element);
977        $elements.each(function () {
978          var mql = window.matchMedia(element.mediaQuery);
979          var onMqlElementChange = function onMqlElementChange() {
980            globalContext._ensureContent();
981          };
982          mql.addListener(onMqlElementChange);
983        });
984        return elementList;
985      }, []);
986    },
987    _ensureContent: function _ensureContent() {
988      this._returnContent();
989      this._hasMovedContent = true;
990      var $content = this._$container.find(".lp-overlay__content");
991      this.state.elements.forEach(function (element) {
992        var $elements = $(element.selector);
993        $elements.each(function () {
994          var $elem = $(this);
995          if (window.matchMedia(element.mediaQuery).matches) {
996            var $locationHolder = document.createComment("".concat(element.selector));
997            $elem.before($locationHolder);
998            $elem.data("orig-location", $locationHolder);
999            $content.append($elem);
1000          }
1001        });
1002      });
1003      this._triggerCustomEvent("content-moved");
1004    },
1005    _returnContent: function _returnContent() {
1006      if (!this._hasMovedContent) {
1007        return;
1008      }
1009      this._hasMovedContent = false;
1010      var $content = this._$container.find(".lp-overlay__content");
1011      $content.children().each(function () {
1012        var $elem = $(this);
1013        var $locationHolder = $elem.data("orig-location");
1014        $elem.insertAfter($locationHolder);
1015        $elem.data("orig-location", null);
1016        $locationHolder.remove();
1017      });
1018      this._triggerCustomEvent("content-restored");
1019    },
1020    _createContainer: function _createContainer() {
1021      var _this5 = this;
1022      var $container = $(overlayTemplate(_objectSpread({}, this.state))).appendTo("body").hide();
1023      $container.on("click", "[data-action-close-overlay]", function () {
1024        _this5._hideContainer();
1025      });
1026      this._$inner = $container.find(".lp-overlay__inner");
1027      this._$inner.on("transitionend animationend", function (e) {
1028        if (e.target === _this5._$inner.get(0)) {
1029          _this5._$inner.trigger(CUSTOM_END_EVENT);
1030        }
1031      });
1032      this._containerId = domId.container;
1033      this._containerVisibleClass = domId.containerVisible;
1034      $container.attr("aria-hidden", "true");
1035      $container.attr("id", this._containerId);
1036      this._focusTrap = FocusTrap.create($container.get(0), {
1037        onDeactivate: function onDeactivate() {
1038          _this5._hideContainer();
1039        },
1040        initialFocus: function initialFocus() {
1041          if (_this5._hasInputFocusHack) {
1042            setTimeout(function () {
1043              _this5._inputFocusHackElement.remove();
1044            }, 20);
1045          }
1046          var focusableNodes = tabbable.tabbable($container.get(0));
1047          if (focusableNodes.length === 1) {
1048            return focusableNodes[0];
1049          }
1050          return focusableNodes[1];
1051        },
1052        clickOutsideDeactivates: true
1053      });
1054      return $container;
1055    },
1056    _addAdvancedInClasses: function _addAdvancedInClasses($container) {
1057      if (!this.state.useAdvancedAnimation) {
1058        return $container;
1059      }
1060      var animationClasses = "animate__animated animate__" + this.state.animationIn;
1061      var $inner = $container.find(".lp-overlay__inner");
1062      $inner.addClass(animationClasses).one(CUSTOM_END_EVENT, function () {
1063        $inner.removeClass(animationClasses);
1064      });
1065      return $container;
1066    },
1067    _addAdvancedOutClasses: function _addAdvancedOutClasses($container) {
1068      if (!this.state.useAdvancedAnimation) {
1069        return $container;
1070      }
1071      var animationClasses = "animate__animated animate__" + this.state.animationOut;
1072      var $inner = $container.find(".lp-overlay__inner");
1073      $inner.addClass(animationClasses).one(CUSTOM_END_EVENT, function () {
1074        $inner.removeClass(animationClasses);
1075      });
1076      return $container;
1077    },
1078    _isKeyboardableInput: function _isKeyboardableInput(elem) {
1079      if (!elem) {
1080        return false;
1081      }
1082      var $elem = $(elem);
1083      if ($elem.prop("tagName") !== "INPUT") {
1084        return false;
1085      }
1086      var type = $elem.attr("type") || "text";
1087      return KEYBOARD_TYPES.indexOf(type) > -1;
1088    },
1089    _createInputHackElement: function _createInputHackElement() {
1090      var $fakeInput = $("<input type='text' />").css({
1091        position: "absolute",
1092        width: "200px",
1093        // zoom properly (iOS)
1094        height: 0,
1095        // hide cursor (font-size: 0 will zoom to quarks level) (iOS)
1096        opacity: 0 // make input transparent :]
1097      });
1098
1099      $fakeInput.appendTo(this._$container).focus();
1100      return $fakeInput;
1101    },
1102    _isVisible: false,
1103    _animating: false,
1104    _hasInputFocusHack: false,
1105    _inputFocusHackElement: null,
1106    _showContainer: function _showContainer() {
1107      var _tabbable$tabbable,
1108        _this6 = this;
1109      var firstFocusNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
1110      if (this._isVisible || this._animating) {
1111        return;
1112      }
1113      var scrollbarWidthPx = window.innerWidth - document.body.clientWidth;
1114      this._animating = true;
1115      $("body").addClass("lp-overlay-body--noscroll");
1116      $("html").addClass("lp-overlay-html--noscroll").css("margin-right", scrollbarWidthPx);
1117      this._addAdvancedInClasses(this._$container.addClass("lp-overlay__container--visible").show().addClass(this._containerVisibleClass).css("top", $(window).scrollTop()));
1118      this._$pageContainer.addClass("lp-overlay-page--hidden").addClass(domId.page).addClass(this._pageContainerHiddenClass);
1119      if (this.state.usePageTransform) {
1120        if (this.state.animationIn === "slideInDown") {
1121          this._$pageContainer.css("transform", "translateY(" + this._$inner.outerHeight() * this.state.pageTransformPercent + "px)");
1122        } else if (this.state.animationIn === "slideInUp") {
1123          this._$pageContainer.css("transform", "translateY(-" + this._$inner.outerHeight() * this.state.pageTransformPercent + "px)");
1124        } else if (this.state.animationIn === "slideInLeft") {
1125          this._$pageContainer.css("transform", "translateX(" + this._$inner.outerWidth() * this.state.pageTransformPercent + "px)");
1126        } else if (this.state.animationIn === "slideInRight") {
1127          this._$pageContainer.css("transform", "translateX(-" + this._$inner.outerWidth() * this.state.pageTransformPercent + "px)");
1128        }
1129      }
1130      this._$backdrop.css("height", $(document).height()).fadeIn(this._animationDuration);
1131      this._isVisible = true;
1132      var activeElement = null;
1133      if (this._isKeyboardableInput((_tabbable$tabbable = tabbable.tabbable(this._$container.get(0))) === null || _tabbable$tabbable === void 0 ? void 0 : _tabbable$tabbable[1])) {
1134        if (!firstFocusNode) {
1135          activeElement = document.activeElement;
1136        }
1137        this._hasInputFocusHack = true;
1138        this._inputFocusHackElement = this._createInputHackElement();
1139      }
1140      this._$inner.one(CUSTOM_END_EVENT, function () {
1141        _this6._$pageContainer.attr("aria-hidden", "true");
1142        _this6._$container.attr("aria-hidden", "false");
1143        _this6._$container.attr("aria-modal", "true");
1144        _this6._$button.attr("aria-expanded", "true");
1145        _this6._focusTrap.activate({
1146          initialFocus: firstFocusNode,
1147          activeElement: activeElement
1148        });
1149        _this6._animating = false;
1150        _this6._triggerCustomEvent("opened");
1151      });
1152      this._triggerCustomEvent("open");
1153    },
1154    _hideContainer: function _hideContainer() {
1155      var _this7 = this;
1156      var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
1157      if (!this._isVisible || this._animating) {
1158        return;
1159      }
1160      this._animating = true;
1161      this._addAdvancedOutClasses(this._$container.removeClass("lp-overlay__container--visible").removeClass(this._containerVisibleClass));
1162      this._$inner.one(CUSTOM_END_EVENT, function () {
1163        _this7._$container.hide();
1164        $("body").removeClass("lp-overlay-body--noscroll");
1165        $("html").removeClass("lp-overlay-html--noscroll").css("margin-right", 0);
1166        _this7._$pageContainer.removeClass(domId.page);
1167        _this7._$pageContainer.attr("aria-hidden", "false");
1168        _this7._$container.attr("aria-hidden", "true");
1169        _this7._$container.removeAttr("aria-modal");
1170        _this7._$button.attr("aria-expanded", "false");
1171        _this7._focusTrap.deactivate((opts === null || opts === void 0 ? void 0 : opts.trapOptions) || {});
1172        _this7._animating = false;
1173        _this7._triggerCustomEvent("closed");
1174      });
1175      this._$pageContainer.removeClass("lp-overlay-page--hidden").css("transform", "none").removeClass(this._pageContainerHiddenClass);
1176      this._$backdrop.fadeOut(this._animationDuration);
1177      this._isVisible = false;
1178      this._triggerCustomEvent("close");
1179    },
1180    _toggleContainer: function _toggleContainer() {
1181      if (!this._isVisible) {
1182        this._showContainer();
1183      } else {
1184        this._hideContainer();
1185      }
1186    },
1187    _ensureContainer: function _ensureContainer() {
1188      if (!this._$container) {
1189        this._$container = this._createContainer();
1190      }
1191      return this._$container;
1192    },
1193    handleButtonClick: function handleButtonClick() {
1194      this._ensureContainer();
1195      this._ensureContent();
1196      this._toggleContainer();
1197    },
1198    filterState: function filterState(state) {
1199      return _objectSpread({}, state);
1200    }
1201  });
1202});}});

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.