PageSourceSearch

https://skara.se/webapp-resource/4.72fb099818dee7043b26633/360.3ae…/1695978223165/webapp-assets.js

js skara.se collected 2026-10-02 11:52:52 UTC 26,303 bytes, 515 lines download raw bytes

1AppRegistry.registerBundle({applicationId:'limepark.submenu|1.25.0',bundle: {"en":{"navLabelText":"Submenu","backLinkFormat":"Back to {0}","toggleButtonText":"Submenu for: {0}"},"sv":{"navLabelText":"Undermeny","backLinkFormat":"Tillbaka till {0}","toggleButtonText":"Undermeny för: {0}"}}});
2AppRegistry.registerModule({applicationId:'limepark.submenu|1.25.0',path:'/module/common/ToggleButton',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  var $ = require('jquery');
9  var TOGGLER_CSS_CLASS = 'lp-app-submenu__menu-item__toggler';
10  var APP_ICON_CSS_CLASS = 'lp-app-submenu__icon';
11  var ICON_CSS_CLASS = 'lp-app-submenu__toggler-icon';
12  var DEFAULT_OPTS = {
13    icons: {
14      open: '/sitevision/envision-icons.svg#icon-plus',
15      close: '/sitevision/envision-icons.svg#icon-minus'
16    },
17    level: ''
18  };
19  var iconMarkup = function iconMarkup(url, modifierKeyword) {
20    url = (url || '').toLowerCase();
21    if (url.indexOf('.svg') > -1) {
22      return "<svg class=\"".concat(APP_ICON_CSS_CLASS, " ").concat(ICON_CSS_CLASS, " ").concat(ICON_CSS_CLASS, "--").concat(modifierKeyword, " ").concat(ICON_CSS_CLASS, "--type-svg\" aria-hidden=\"true\"><use xlink:href=\"").concat(url, "\"></use></svg>");
23    } else if (url.indexOf('.jpg') > -1 || url.indexOf('.png') > -1) {
24      return "<img class=\"".concat(APP_ICON_CSS_CLASS, " ").concat(ICON_CSS_CLASS, " ").concat(ICON_CSS_CLASS, "--").concat(modifierKeyword, " ").concat(ICON_CSS_CLASS, "--type-img\" src=\"").concat(url, "\" alt=\"\" />");
25    }
26    return '';
27  };
28  return function (nodeId) {
29    var _opts$icons, _opts$icons2;
30    var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
31    var text = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
32    var opts = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
33    opts = _objectSpread(_objectSpread({}, DEFAULT_OPTS), opts);
34    var classes = [TOGGLER_CSS_CLASS];
35    if (opts.level) {
36      classes.push("".concat(TOGGLER_CSS_CLASS, "--level-").concat(opts.level));
37    }
38    var buttonOpts = {
39      'class': classes.join(' '),
40      'data-node-id': nodeId,
41      'data-level': opts.level,
42      'aria-expanded': 'false',
43      'type': 'button',
44      'html': [iconMarkup((_opts$icons = opts.icons) === null || _opts$icons === void 0 ? void 0 : _opts$icons.open, 'open'), iconMarkup((_opts$icons2 = opts.icons) === null || _opts$icons2 === void 0 ? void 0 : _opts$icons2.close, 'close'), $('<span>', {
45        'class': 'lp-app-submenu__visually-hidden',
46        'text': text
47      })]
48    };
49    if (target) {
50      buttonOpts['aria-controls'] = target;
51    }
52    return $('<button>', buttonOpts);
53  };
54});}});
55AppRegistry.registerModule({applicationId:'limepark.submenu|1.25.0',path:'/module/common/@limepark/uuidv4_2.0.0/index',module:function(define){'use strict';define(function(require) {
56      var exports = {};
57      var module = {
58        exports: exports
59      };
60
61      /**
62 * @file Generate UUID's.
63 * @module common/UUIDv4
64 */
65
66var DEFAULT_HTML_ID_PREFIX = 'lpid-';
67
68/**
69 * Gets a type 4 UUID.
70 * 
71 * @returns {string} Static factory to retrieve a type 4 (pseudo randomly generated) UUID.
72 * @memberof module:common/UUIDv4
73 */
74var getInstance = function getInstance() {
75  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
76    var r = Math.random() * 16 | 0,
77      v = c == 'x' ? r : r & 0x3 | 0x8;
78    return v.toString(16);
79  });
80};
81
82/**
83 * Gets a randomized html identifier suitable for the id attribute.
84 * 
85 * @param {string} prefix An optional prefix.
86 * @returns {string} Static factory to retrieve a type 4 (pseudo randomly generated) UUID, with a short prefix.
87 * @memberof module:common/UUIDv4
88 */
89var getHtmlId = function getHtmlId() {
90  var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_HTML_ID_PREFIX;
91  return (prefix || DEFAULT_HTML_ID_PREFIX) + getInstance();
92};
93module.exports = {
94  getInstance: getInstance,
95  getHtmlId: getHtmlId
96};;
97
98      return module.exports;
99    });}});
100AppRegistry.registerModule({applicationId:'limepark.submenu|1.25.0',path:'/template/menu-items',module:function(define){define(function(require){var _=require('underscore');return function(obj){
101var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
102with(obj||{}){
103__p+='';
104 items.forEach(function (item) { 
105__p+='\n  <li class="'+
106((__t=( itemClasses(item) ))==null?'':_.escape(__t))+
107'" data-has-children="'+
108((__t=( item.hasChildren ))==null?'':_.escape(__t))+
109'" data-short-id="'+
110((__t=( item.shortId ))==null?'':_.escape(__t))+
111'" data-node-id="'+
112((__t=( item.nodeId ))==null?'':_.escape(__t))+
113'" data-level="'+
114((__t=( item.level ))==null?'':_.escape(__t))+
115'">\n    <a href="'+
116((__t=( item.url ))==null?'':_.escape(__t))+
117'" class="'+
118((__t=( linkClasses(item) ))==null?'':_.escape(__t))+
119'" '+
120((__t=( item.current ? 'aria-current="page"' : '' ))==null?'':__t)+
121' '+
122((__t=( item.ariaLabel  ? 'aria-label="' + item.ariaLabel + '"' : '' ))==null?'':__t)+
123' '+
124((__t=( langAttrs(item) ))==null?'':__t)+
125' data-name="'+
126((__t=( item.name ))==null?'':_.escape(__t))+
127'">\n      '+
128((__t=( item.linkText ))==null?'':__t)+
129'\n      ';
130 if (useChildrenIcons && item.hasChildren) { 
131__p+='\n        '+
132((__t=( createIcon(childrenIcons.open, 'open') ))==null?'':__t)+
133'\n        '+
134((__t=( createIcon(childrenIcons.closed, 'closed') ))==null?'':__t)+
135'\n      ';
136 } 
137__p+='\n    </a><!--! .lp-app-submenu__menu-item__link -->\n    ';
138 if (item.hasChildren && item.children.length > 0) { 
139__p+='\n      '+
140((__t=( renderer.renderComponent('MenuItems', { items: item.children, level: item.level + 1, listId: item.listId }) ))==null?'':__t)+
141'\n    ';
142 } 
143__p+='\n  </li><!-- .lp-app-submenu__menu-item -->\n';
144 }) 
145__p+='\n';
146}
147return __p;
148};});}});
149AppRegistry.registerModule({applicationId:'limepark.submenu|1.25.0',path:'/template/main',module:function(define){define(function(require){var _=require('underscore');return function(obj){
150var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};
151with(obj||{}){
152__p+='';
153 if (backLink) { 
154__p+='\n  <a class="lp-app-submenu__back-link" href="'+
155((__t=( backLink.url ))==null?'':__t)+
156'" '+
157((__t=( backLink.hreflangAttr ))==null?'':__t)+
158'>'+
159((__t=( backLink.text ))==null?'':__t)+
160'</a><!--! .lp-app-submenu__back-link -->\n';
161 } 
162__p+='\n'+
163((__t=( renderer.renderComponent('MenuItems', { items: items, level: 1 }) ))==null?'':__t)+
164'\n';
165}
166return __p;
167};});}});
168AppRegistry.registerModule({applicationId:'limepark.submenu|1.25.0',path:'/module/common/hash-util',module:function(define){'use strict';function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
169function _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); } }
170function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
171function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
172function _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); }
173define(function () {
174  var DEFAULT_SHORT_ID_RADIX = 36;
175  var HashUtil = /*#__PURE__*/function () {
176    function HashUtil() {
177      _classCallCheck(this, HashUtil);
178    }
179    _createClass(HashUtil, [{
180      key: "crc32",
181      value: function crc32(str) {
182        for (var a, o = [], c = 0; c < 256; c++) {
183          a = c;
184          for (var f = 0; f < 8; f++) {
185            a = 1 & a ? 3988292384 ^ a >>> 1 : a >>> 1;
186          }
187          o[c] = a;
188        }
189        for (var n = -1, t = 0; t < str.length; t++) {
190          n = n >>> 8 ^ o[255 & (n ^ str.charCodeAt(t))];
191        }
192        return (-1 ^ n) >>> 0;
193      }
194    }, {
195      key: "shortId",
196      value: function shortId(str) {
197        var radix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_SHORT_ID_RADIX;
198        return this.crc32(str).toString(radix);
199      }
200    }]);
201    return HashUtil;
202  }();
203  var hashUtil = new HashUtil();
204  return hashUtil;
205});}});
206AppRegistry.registerModule({applicationId:'limepark.submenu|1.25.0',path:'/component/MenuItems',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; }
207function _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; }
208function _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; }
209function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
210function _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); }
211define(function (require) {
212  'use strict';
213
214  var Component = require('Component');
215  var requester = require('requester');
216  var router = require('router');
217  var template = require('/template/menu-items');
218  var $ = require('jquery');
219  var ToggleButton = require('/module/common/ToggleButton');
220  var _require = require("/module/common/@limepark/uuidv4_2.0.0/index"),
221    htmlId = _require.getHtmlId;
222  var AJAX_LOADER_DELAY = 300;
223  var AJAX_LOADER_TIMERS = {};
224  var AJAX_LOADER_REFS = {};
225  var SUBMENU_CSS_CLASS = 'lp-app-submenu__menu';
226  var ITEM_CSS_CLASS = 'lp-app-submenu__menu-item';
227  var LINK_CSS_CLASS = 'lp-app-submenu__menu-item__link';
228  var APP_ICON_CSS_CLASS = 'lp-app-submenu__icon';
229  var TOGGLER_LOADING_CSS_CLASS = 'lp-app-submenu__menu-item__toggler--is-loading';
230  var EVENT_NAMESPACE = 'lp-app-submenu';
231  var MenuItems = Component.extend({
232    template: template,
233    tagName: 'ul',
234    className: function className() {
235      var classes = [SUBMENU_CSS_CLASS, "".concat(SUBMENU_CSS_CLASS, "--level-").concat(this.state.level)];
236      return classes.join(' ');
237    },
238    attributes: function attributes() {
239      var _attrs = {
240        'data-level': this.state.level
241      };
242      if (this.state.listId) {
243        _attrs.id = this.state.listId;
244      }
245      return _attrs;
246    },
247    events: {
248      dom: {
249        'click > li > button[data-node-id]': 'handleToggleClick'
250      }
251    },
252    onRendered: function onRendered() {
253      this._prefersReducedMotion = matchMedia('(prefers-reduced-motion)');
254      if (this.state.useSubmenuToggles) {
255        this.setupToggleMarkup();
256      }
257    },
258    getSlideDurations: function getSlideDurations() {
259      // If media query matches, the user prefers reduced motions.
260      // Use 1 ms for the slide duration.
261      var durations = {
262        open: 1,
263        close: 1
264      };
265      if (!this._prefersReducedMotion.matches) {
266        durations.open = this.state.slideDuration;
267        durations.close = this.state.slideDurationClose;
268      }
269      return durations;
270    },
271    findOr: function findOr(element, findSelector) {
272      var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
273      var $element = element instanceof $ ? element : $(element);
274      var $findEl = $element.find(findSelector);
275      if ($findEl.length > 0) {
276        return $findEl;
277      }
278      return defaultValue;
279    },
280    /**
281     * Gets or creates and return a sub list for the list item.
282     * 
283     * @param {(HTMLElement|jQuery)} listItem 
284     */
285    ensureSubList: function ensureSubList(listItem) {
286      var $listItem = listItem instanceof $ ? listItem : $(listItem);
287      var $subList = $listItem.find('> ul');
288      if ($subList.length === 0) {
289        var level = parseInt(this.state.level || 1) + 1;
290        var shortId = $listItem.data('shortId');
291        var subListId = shortId ? this.state.id + '-' + shortId : htmlId();
292        $subList = $('<ul>', {
293          'id': subListId,
294          'class': "".concat(SUBMENU_CSS_CLASS, " ").concat(SUBMENU_CSS_CLASS, "--level-").concat(level),
295          'data-level': level,
296          'aria-hidden': 'true'
297        }).hide().appendTo($listItem);
298        var $toggler = $subList.prev('button');
299        if ($toggler.length > 0) {
300          $toggler.attr('aria-controls', subListId);
301        }
302      } else {
303        // sub list already exist so it's in the current active tree.
304        $subList.attr('aria-hidden', 'false');
305      }
306      return $subList;
307    },
308    setupToggleMarkup: function setupToggleMarkup() {
309      var _this = this;
310      this.$el.find('> [data-has-children="true"]').each(function (i, listItem) {
311        return _this.setupToggleMarkupForListItem(listItem);
312      });
313    },
314    setupToggleMarkupForListItem: function setupToggleMarkupForListItem(listItem) {
315      var $listItem = listItem instanceof $ ? listItem : $(listItem);
316      var $itemLink = $listItem.find('> a');
317      var $subList = this.findOr($listItem, '> ul', null);
318      var nodeId = $listItem.data('nodeId');
319      var level = $listItem.data('level');
320      var subListId = $subList ? $subList.attr('id') : null;
321      var opts = {
322        icons: this.state.togglerIcons,
323        level: parseInt(level)
324      };
325      var $button = ToggleButton(nodeId, subListId, this.state.texts.toggleButtonText.replace('{0}', $itemLink.data('name')), opts);
326      if ($subList) {
327        $button.attr('aria-expanded', 'true');
328        $subList.attr('aria-hidden', 'false');
329      }
330      $button.insertAfter($itemLink);
331    },
332    addLoader: function addLoader($button) {
333      var _this2 = this;
334      var nodeId = $button.data('nodeId');
335      this.removeLoader($button);
336      AJAX_LOADER_TIMERS[nodeId] = setTimeout(function () {
337        AJAX_LOADER_REFS[nodeId] = $(_this2.state.spinner);
338        $button.append(AJAX_LOADER_REFS[nodeId]).addClass(TOGGLER_LOADING_CSS_CLASS);
339      }, AJAX_LOADER_DELAY);
340    },
341    removeLoader: function removeLoader($button) {
342      var nodeId = $button.data('nodeId');
343      $button.removeClass(TOGGLER_LOADING_CSS_CLASS);
344      if (AJAX_LOADER_TIMERS[nodeId]) {
345        clearTimeout(AJAX_LOADER_TIMERS[nodeId]);
346      }
347      if (AJAX_LOADER_REFS[nodeId]) {
348        AJAX_LOADER_REFS[nodeId].remove();
349        AJAX_LOADER_REFS[nodeId] = null;
350      }
351    },
352    queueToggle: function queueToggle($button, $target, callback) {
353      var _this3 = this;
354      if ($target.is(':empty')) {
355        var nodeId = $button.data('nodeId');
356        var currentLevel = $button.data('level');
357        this.addLoader($button);
358        requester.doGet({
359          url: router.getStandaloneUrl("/children/".concat(nodeId)),
360          data: {
361            currentLevel: currentLevel
362          },
363          context: this
364        }).done(function (items) {
365          var menuItems = new MenuItems(_objectSpread(_objectSpread({}, _this3.state), {}, {
366            items: items,
367            level: parseInt($target.data('level') || 0),
368            useChildrenIcons: false
369          }));
370          var renderedElement = menuItems.render().$el;
371          renderedElement.attr({
372            id: $target.attr('id'),
373            'aria-hidden': true
374          }).hide();
375          $target.replaceWith(renderedElement);
376          callback($button, renderedElement);
377        }).fail(function (jqXHR, textStatus, errorThrown) {
378          $target.trigger("failed-fetch-children.".concat(EVENT_NAMESPACE), [$button, $target, nodeId, textStatus, errorThrown]);
379        }).always(function () {
380          _this3.removeLoader($button);
381        });
382      } else {
383        callback($button, $target);
384      }
385    },
386    handleToggleClick: function handleToggleClick(event) {
387      var _this4 = this;
388      var $originalButton = $(event.currentTarget);
389      var $buttonControls = this.$('#' + $originalButton.attr('aria-controls'));
390      var isOpen = $originalButton.attr('aria-expanded') === 'true';
391      var $originalTarget = $buttonControls.length > 0 ? $buttonControls : this.ensureSubList($originalButton.closest('li'));
392      this.queueToggle($originalButton, $originalTarget, function ($button, $target) {
393        // Switch states
394        $button.attr('aria-expanded', isOpen ? 'false' : 'true');
395        $target.attr('aria-hidden', isOpen ? 'true' : 'false');
396        $target.closest('li').toggleClass("".concat(ITEM_CSS_CLASS, "--is-open"), !isOpen);
397        $target.stop()[isOpen ? 'slideUp' : 'slideDown'](_this4.getSlideDurations()[isOpen ? 'close' : 'open'], function () {
398          $target.trigger("toggle.".concat(EVENT_NAMESPACE), [$button, $target, !isOpen]);
399        });
400      });
401    },
402    templateFunctions: function templateFunctions() {
403      var _this$state$currentLa = this.state.currentLang,
404        currentLang = _this$state$currentLa === void 0 ? '' : _this$state$currentLa;
405      return {
406        htmlId: htmlId,
407        itemClasses: function itemClasses(item) {
408          var classes = [ITEM_CSS_CLASS, "".concat(ITEM_CSS_CLASS, "--level-").concat(item.level)];
409          if (item.active) {
410            classes.push("".concat(ITEM_CSS_CLASS, "--is-active"));
411            classes.push("".concat(ITEM_CSS_CLASS, "--is-open"));
412          }
413          if (item.current) {
414            classes.push("".concat(ITEM_CSS_CLASS, "--is-current"));
415          }
416          if (item.hasChildren) {
417            classes.push("".concat(ITEM_CSS_CLASS, "--has-children"));
418          }
419          return classes.join(' ');
420        },
421        linkClasses: function linkClasses(item) {
422          var classes = [LINK_CSS_CLASS, "".concat(LINK_CSS_CLASS, "--level-").concat(item.level)];
423          if (item.active) {
424            classes.push("".concat(LINK_CSS_CLASS, "--is-active"));
425          }
426          if (item.current) {
427            classes.push("".concat(LINK_CSS_CLASS, "--is-current"));
428          }
429          return classes.join(' ');
430        },
431        langAttrs: function langAttrs(item) {
432          if (currentLang !== item.lang) {
433            return " lang=\"".concat(item.lang, "\" hreflang=\"").concat(item.lang, "\" ");
434          }
435          return '';
436        },
437        createIcon: function createIcon(url) {
438          var modifierKeyword = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
439          url = (url || '').toLowerCase();
440          var modifierClass = modifierKeyword ? "".concat(APP_ICON_CSS_CLASS, "--").concat(modifierKeyword) : '';
441          if (url.indexOf('.svg') > -1) {
442            return "<svg class=\"".concat(APP_ICON_CSS_CLASS, " ").concat(APP_ICON_CSS_CLASS, "--children-icon ").concat(modifierClass, " ").concat(APP_ICON_CSS_CLASS, "--type-svg\" aria-hidden=\"true\"><use xlink:href=\"").concat(url, "\"></use></svg>");
443          } else if (url.indexOf('.jpg') > -1 || url.indexOf('.png') > -1) {
444            return "<img class=\"".concat(APP_ICON_CSS_CLASS, " ").concat(APP_ICON_CSS_CLASS, "--children-icon ").concat(modifierClass, " ").concat(APP_ICON_CSS_CLASS, "--type-img\" src=\"").concat(url, "\" alt=\"\" />");
445          }
446          return '';
447        }
448      };
449    },
450    filterState: function filterState(state) {
451      var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
452      return _objectSpread(_objectSpread({}, state), opts);
453    }
454  });
455  return MenuItems;
456});}});
457AppRegistry.registerModule({applicationId:'limepark.submenu|1.25.0',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; }
458function _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; }
459function _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; }
460function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
461function _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); }
462define(function (require) {
463  'use strict';
464
465  var Component = require('Component');
466  var template = require('/template/main');
467  var EVENT_NAMESPACE = 'lp-app-submenu';
468  var CONTAINER_CSS_CLASS = 'lp-app-submenu';
469  return Component.extend({
470    template: template,
471    tagName: function tagName() {
472      return this.state.useNavElement ? 'nav' : 'div';
473    },
474    className: function className() {
475      var classes = [CONTAINER_CSS_CLASS];
476      if (this.state.containerClass) {
477        classes.push(this.state.containerClass);
478      }
479      if (!this.state.togglerIcons) {
480        classes.push("".concat(CONTAINER_CSS_CLASS, "--default-toggler-icons"));
481      }
482      if (!this.state.useSubmenuToggles) {
483        classes.push("".concat(CONTAINER_CSS_CLASS, "--no-submenu-toggles"));
484      }
485      if (this.state.hideSubmenuTogglesOnFirstLevel) {
486        classes.push("".concat(CONTAINER_CSS_CLASS, "--hide-submenu-toggles-on-first-level"));
487      }
488      return classes.join(' ');
489    },
490    attributes: function attributes() {
491      var attrs = {};
492      if (this.state.useNavElement) {
493        attrs['aria-label'] = this.state.texts.navLabelText;
494        attrs['tabindex'] = -1;
495      }
496      attrs.id = this.state.id;
497      return attrs;
498    },
499    onFailedFetchChildren: function onFailedFetchChildren() {
500      location.reload();
501    } /* event, $button, $target, nodeId, textStatus, errorThrown */,
502    onRendered: function onRendered() {
503      this.$el.on("failed-fetch-children.".concat(EVENT_NAMESPACE), this.onFailedFetchChildren);
504      this.$el.trigger("onRendered.".concat(EVENT_NAMESPACE), [this]);
505      this.$el.addClass("".concat(CONTAINER_CSS_CLASS, "--js"));
506      if (this.state.useSubmenuToggles) {
507        this.$el.addClass("".concat(CONTAINER_CSS_CLASS, "--use-submenu-toggles"));
508        this.$el.removeClass("".concat(CONTAINER_CSS_CLASS, "--no-submenu-toggles"));
509      }
510    },
511    filterState: function filterState(state) {
512      return _objectSpread({}, state);
513    }
514  });
515});}});

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.