{"version":3,"file":"js/mmenu.js","mappings":"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","sources":["webpack://clienti-baseline-webpack/./node_modules/core-js/internals/a-callable.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/an-object.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/array-for-each.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/array-iteration.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/array-method-is-strict.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/array-species-constructor.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/array-species-create.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/classof-raw.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/classof.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/create-property-descriptor.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/descriptors.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/document-create-element.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/dom-iterables.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/engine-user-agent.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/engine-v8-version.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/fails.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/function-bind-context.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/function-call.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/function-name.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/function-uncurry-this.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/get-built-in.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/get-method.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/global.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/has-own-property.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/hidden-keys.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/ie8-dom-define.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/indexed-object.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/inspect-source.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/internal-state.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/is-array.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/is-callable.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/is-constructor.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/is-object.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/is-pure.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/is-symbol.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/length-of-array-like.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/native-symbol.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/native-weak-map.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/object-define-property.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/object-to-string.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/redefine.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/require-object-coercible.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/set-global.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/shared-key.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/shared-store.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/shared.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/to-length.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/to-object.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/to-primitive.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/to-property-key.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/to-string-tag-support.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/try-to-string.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/uid.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://clienti-baseline-webpack/./node_modules/core-js/internals/well-known-symbol.js","webpack://clienti-baseline-webpack/./node_modules/core-js/modules/es.object.to-string.js","webpack://clienti-baseline-webpack/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://clienti-baseline-webpack/webpack/bootstrap","webpack://clienti-baseline-webpack/webpack/runtime/global","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/oncanvas/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/oncanvas/_configs.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/_modules/helpers.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/_modules/i18n.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/oncanvas/translations/nl.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/oncanvas/translations/fa.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/oncanvas/translations/de.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/oncanvas/translations/ru.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/_modules/dom.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/_modules/matchmedia.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/oncanvas/translations/translate.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/oncanvas/mmenu.oncanvas.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/offcanvas/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/offcanvas/_configs.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/_modules/eventlisteners.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/offcanvas/mmenu.offcanvas.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/screenreader/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/screenreader/_configs.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/screenreader/translations/fa.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/screenreader/translations/de.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/screenreader/translations/ru.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/screenreader/mmenu.screenreader.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/screenreader/translations/translate.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/screenreader/translations/nl.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/scrollbugfix/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/_modules/support.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/core/scrollbugfix/mmenu.scrollbugfix.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/autoheight/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/autoheight/mmenu.autoheight.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/backbutton/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/backbutton/mmenu.backbutton.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/columns/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/columns/mmenu.columns.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/counters/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/counters/mmenu.counters.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/dividers/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/dividers/mmenu.dividers.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/drag/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/_modules/dragevents/_support.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/_modules/dragevents/_defaults.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/_modules/dragevents/_settings.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/_modules/dragevents/_helpers.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/_modules/dragevents/index.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/drag/_drag.open.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/drag/mmenu.drag.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/dropdown/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/dropdown/_configs.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/dropdown/mmenu.dropdown.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/fixedelements/_configs.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/fixedelements/mmenu.fixedelements.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/iconbar/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/iconbar/mmenu.iconbar.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/iconpanels/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/iconpanels/mmenu.iconpanels.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/keyboardnavigation/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/keyboardnavigation/mmenu.keyboardnavigation.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/lazysubmenus/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/lazysubmenus/mmenu.lazysubmenus.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/navbars/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/navbars/_configs.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/navbars/mmenu.navbars.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/navbars/_navbar.breadcrumbs.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/navbars/_navbar.close.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/navbars/_navbar.prev.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/navbars/_navbar.searchfield.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/navbars/_navbar.title.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/navbars/_navbar.tabs.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/pagescroll/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/pagescroll/_configs.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/pagescroll/mmenu.pagescroll.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/searchfield/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/searchfield/_configs.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/searchfield/translations/fa.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/searchfield/translations/de.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/searchfield/translations/ru.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/searchfield/mmenu.searchfield.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/searchfield/translations/translate.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/searchfield/translations/nl.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/sectionindexer/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/sectionindexer/mmenu.sectionindexer.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/setselected/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/setselected/mmenu.setselected.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/sidebar/_options.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/sidebar/mmenu.sidebar.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/addons/toggles/mmenu.toggles.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/src/mmenu.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/wrappers/angular/mmenu.angular.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/wrappers/bootstrap/mmenu.bootstrap.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/wrappers/olark/mmenu.olark.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/wrappers/turbolinks/mmenu.turbolinks.js","webpack://clienti-baseline-webpack/./node_modules/mmenu-js/dist/wrappers/wordpress/mmenu.wordpress.js","webpack://clienti-baseline-webpack/./src/scripts/mmenu.js","webpack://clienti-baseline-webpack/./src/scripts/partials/mmenu.js"],"sourcesContent":["var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function (argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function (argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n // we can't check .prototype since constructors produced by .bind haven't it\n } return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n};\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.19.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","var options = {\n hooks: {},\n extensions: [],\n wrappers: [],\n navbar: {\n add: true,\n sticky: true,\n title: 'Menu',\n titleLink: 'parent'\n },\n onClick: {\n close: null,\n preventDefault: null,\n setSelected: true\n },\n slidingSubmenus: true\n};\nexport default options;\n","var configs = {\n classNames: {\n inset: 'Inset',\n nolistview: 'NoListview',\n nopanel: 'NoPanel',\n panel: 'Panel',\n selected: 'Selected',\n vertical: 'Vertical'\n },\n language: null,\n openingInterval: 25,\n panelNodetype: ['ul', 'ol', 'div'],\n transitionDuration: 400\n};\nexport default configs;\n","/**\n * Deep extend an object with the given defaults.\n * Note that the extended object is not a clone, meaning the original object will also be updated.\n *\n * @param \t{object}\torignl\tThe object to extend to.\n * @param \t{object}\tdfault\tThe object to extend from.\n * @return\t{object}\t\t\tThe extended \"orignl\" object.\n */\nexport function extend(orignl, dfault) {\n if (type(orignl) != 'object') {\n orignl = {};\n }\n if (type(dfault) != 'object') {\n dfault = {};\n }\n for (var k in dfault) {\n if (!dfault.hasOwnProperty(k)) {\n continue;\n }\n if (typeof orignl[k] == 'undefined') {\n orignl[k] = dfault[k];\n }\n else if (type(orignl[k]) == 'object') {\n extend(orignl[k], dfault[k]);\n }\n }\n return orignl;\n}\n/**\n * Detect the touch / dragging direction on a touch device.\n *\n * @param {HTMLElement} surface The element to monitor for touch events.\n * @return {object} Object with \"get\" function.\n */\nexport function touchDirection(surface) {\n var direction = '';\n surface.addEventListener('touchmove', function (evnt) {\n direction = '';\n if (evnt.movementY > 0) {\n direction = 'down';\n }\n else if (evnt.movementY < 0) {\n direction = 'up';\n }\n });\n return {\n get: function () { return direction; }\n };\n}\n/**\n * Get the type of any given variable. Improvement of \"typeof\".\n *\n * @param \t{any}\t\tvariable\tThe variable.\n * @return\t{string}\t\t\t\tThe type of the variable in lowercase.\n */\nexport function type(variable) {\n return {}.toString\n .call(variable)\n .match(/\\s([a-zA-Z]+)/)[1]\n .toLowerCase();\n}\n/**\n * Find the value from an option or function.\n * @param \t{HTMLElement} \telement \tScope for the function.\n * @param \t{any} \t\t\t[option] \tValue or function.\n * @param \t{any} \t\t\t[dfault] \tDefault fallback value.\n * @return\t{any}\t\t\t\t\t\tThe given evaluation of the given option, or the default fallback value.\n */\nexport function valueOrFn(element, option, dfault) {\n if (typeof option == 'function') {\n var value = option.call(element);\n if (typeof value != 'undefined') {\n return value;\n }\n }\n if ((option === null ||\n typeof option == 'function' ||\n typeof option == 'undefined') &&\n typeof dfault != 'undefined') {\n return dfault;\n }\n return option;\n}\n/**\n * Set and invoke a (single) transition-end function with fallback.\n *\n * @param {HTMLElement} \telement \tScope for the function.\n * @param {function}\t\tfunc\t\tFunction to invoke.\n * @param {number}\t\t\tduration\tThe duration of the animation (for the fallback).\n */\nexport function transitionend(element, func, duration) {\n var _ended = false, _fn = function (evnt) {\n if (typeof evnt !== 'undefined') {\n if (evnt.target !== element) {\n return;\n }\n }\n if (!_ended) {\n element.removeEventListener('transitionend', _fn);\n element.removeEventListener('webkitTransitionEnd', _fn);\n func.call(element);\n }\n _ended = true;\n };\n element.addEventListener('transitionend', _fn);\n element.addEventListener('webkitTransitionEnd', _fn);\n setTimeout(_fn, duration * 1.1);\n}\n/**\n * Get a (page wide) unique ID.\n */\nexport function uniqueId() {\n return 'mm-' + __id++;\n}\nvar __id = 0;\n/**\n * Get the original ID from a possibly prefixed ID.\n * @param id The possibly prefixed ID.\n */\nexport function originalId(id) {\n if (id.slice(0, 3) == 'mm-') {\n return id.slice(3);\n }\n return id;\n}\n","import { extend } from './helpers';\nvar translations = {};\n/**\n * Add translations to a language.\n * @param {object} text Object of key/value translations.\n * @param {string} language The translated language.\n */\nexport function add(text, language) {\n if (typeof translations[language] == 'undefined') {\n translations[language] = {};\n }\n extend(translations[language], text);\n}\n/**\n * Find a translated text in a language.\n * @param {string} text The text to find the translation for.\n * @param {string} language The language to search in.\n * @return {string} The translated text.\n */\nexport function get(text, language) {\n if (typeof language == 'string' &&\n typeof translations[language] != 'undefined') {\n return translations[language][text] || text;\n }\n return text;\n}\n/**\n * Get all translated text in a language.\n * @param {string} language The language to search for.\n * @return {object} The translations.\n */\nexport function all(language) {\n return translations;\n}\n","export default {\n 'Menu': 'Menu'\n};\n","export default {\n 'Menu': 'منو'\n};\n","export default {\n 'Menu': 'Menü'\n};\n","export default {\n 'Menu': 'Меню'\n};\n","/**\n * Create an element with classname.\n *\n * @param \t{string}\t\tselector\tThe nodeName and classnames for the element to create.\n * @return\t{HTMLElement}\t\t\t\tThe created element.\n */\nexport function create(selector) {\n var args = selector.split('.');\n var elem = document.createElement(args.shift());\n // IE11:\n args.forEach(function (classname) {\n elem.classList.add(classname);\n });\n // Better browsers:\n // elem.classList.add(...args);\n return elem;\n}\n/**\n * Find all elements matching the selector.\n * Basically the same as element.querySelectorAll() but it returns an actuall array.\n *\n * @param \t{HTMLElement} \telement Element to search in.\n * @param \t{string}\t\tfilter\tThe filter to match.\n * @return\t{array}\t\t\t\t\tArray of elements that match the filter.\n */\nexport function find(element, filter) {\n return Array.prototype.slice.call(element.querySelectorAll(filter));\n}\n/**\n * Find all child elements matching the (optional) selector.\n *\n * @param \t{HTMLElement} \telement Element to search in.\n * @param \t{string}\t\tfilter\tThe filter to match.\n * @return\t{array}\t\t\t\t\tArray of child elements that match the filter.\n */\nexport function children(element, filter) {\n var children = Array.prototype.slice.call(element.children);\n return filter\n ? children.filter(function (child) { return child.matches(filter); })\n : children;\n}\n/**\n * Find text excluding text from within child elements.\n * @param {HTMLElement} element Element to search in.\n * @return {string} The text.\n */\nexport function text(element) {\n return Array.prototype.slice\n .call(element.childNodes)\n .filter(function (child) { return child.nodeType == 3; })\n .map(function (child) { return child.textContent; })\n .join(' ');\n}\n/**\n * Find all preceding elements matching the selector.\n *\n * @param \t{HTMLElement} \telement Element to start searching from.\n * @param \t{string}\t\tfilter\tThe filter to match.\n * @return\t{array}\t\t\t\t\tArray of preceding elements that match the selector.\n */\nexport function parents(element, filter) {\n /** Array of preceding elements that match the selector. */\n var parents = [];\n /** Array of preceding elements that match the selector. */\n var parent = element.parentElement;\n while (parent) {\n parents.push(parent);\n parent = parent.parentElement;\n }\n return filter\n ? parents.filter(function (parent) { return parent.matches(filter); })\n : parents;\n}\n/**\n * Find all previous siblings matching the selecotr.\n *\n * @param \t{HTMLElement} \telement Element to start searching from.\n * @param \t{string}\t\tfilter\tThe filter to match.\n * @return\t{array}\t\t\t\t\tArray of previous siblings that match the selector.\n */\nexport function prevAll(element, filter) {\n /** Array of previous siblings that match the selector. */\n var previous = [];\n /** Current element in the loop */\n var current = element.previousElementSibling;\n while (current) {\n if (!filter || current.matches(filter)) {\n previous.push(current);\n }\n current = current.previousElementSibling;\n }\n return previous;\n}\n/**\n * Get an element offset relative to the document.\n *\n * @param \t{HTMLElement}\t element \t\t\tElement to start measuring from.\n * @param \t{string}\t\t [direction=top] \tOffset top or left.\n * @return\t{number}\t\t\t\t\t\t\tThe element offset relative to the document.\n */\nexport function offset(element, direction) {\n return (element.getBoundingClientRect()[direction] +\n document.body[direction === 'left' ? 'scrollLeft' : 'scrollTop']);\n}\n/**\n * Filter out non-listitem listitems.\n * @param {array} listitems \tElements to filter.\n * @return {array}\t\t\t\tThe filtered set of listitems.\n */\nexport function filterLI(listitems) {\n return listitems.filter(function (listitem) { return !listitem.matches('.mm-hidden'); });\n}\n/**\n * Find anchors in listitems (excluding anchor that open a sub-panel).\n * @param {array} \tlistitems \tElements to filter.\n * @return {array}\t\t\t\tThe found set of anchors.\n */\nexport function filterLIA(listitems) {\n var anchors = [];\n filterLI(listitems).forEach(function (listitem) {\n anchors.push.apply(anchors, children(listitem, 'a.mm-listitem__text'));\n });\n return anchors.filter(function (anchor) { return !anchor.matches('.mm-btn_next'); });\n}\n/**\n * Refactor a classname on multiple elements.\n * @param {HTMLElement} element \tElement to refactor.\n * @param {string}\t\toldClass \tClassname to remove.\n * @param {string}\t\tnewClass \tClassname to add.\n */\nexport function reClass(element, oldClass, newClass) {\n if (element.matches('.' + oldClass)) {\n element.classList.remove(oldClass);\n element.classList.add(newClass);\n }\n}\n","/** Collection of callback functions for media querys. */\nvar listeners = {};\n/**\n * Bind functions to a matchMedia listener (subscriber).\n *\n * @param {string|number} \tquery \tMedia query to match or number for min-width.\n * @param {function} \t\tyes \tFunction to invoke when the media query matches.\n * @param {function} \t\tno \t\tFunction to invoke when the media query doesn't match.\n */\nexport function add(query, yes, no) {\n if (typeof query == 'number') {\n query = '(min-width: ' + query + 'px)';\n }\n listeners[query] = listeners[query] || [];\n listeners[query].push({ yes: yes, no: no });\n}\n/**\n * Initialize the matchMedia listener.\n */\nexport function watch() {\n var _loop_1 = function (query) {\n var mqlist = window.matchMedia(query);\n fire(query, mqlist);\n mqlist.onchange = function (evnt) {\n fire(query, mqlist);\n };\n };\n for (var query in listeners) {\n _loop_1(query);\n }\n}\n/**\n * Invoke the \"yes\" or \"no\" function for a matchMedia listener (publisher).\n *\n * @param {string} \t\t\tquery \tMedia query to check for.\n * @param {MediaQueryList} \tmqlist \tMedia query list to check with.\n */\nexport function fire(query, mqlist) {\n var fn = mqlist.matches ? 'yes' : 'no';\n for (var m = 0; m < listeners[query].length; m++) {\n listeners[query][m][fn]();\n }\n}\n","import { add } from '../../../_modules/i18n';\nimport nl from './nl';\nimport fa from './fa';\nimport de from './de';\nimport ru from './ru';\nexport default function () {\n add(nl, 'nl');\n add(fa, 'fa');\n add(de, 'de');\n add(ru, 'ru');\n}\n","import options from './_options';\nimport configs from './_configs';\nimport translate from './translations/translate';\nimport * as DOM from '../../_modules/dom';\nimport * as i18n from '../../_modules/i18n';\nimport * as media from '../../_modules/matchmedia';\nimport { type, extend, transitionend, uniqueId, valueOrFn, } from '../../_modules/helpers';\n// Add the translations.\ntranslate();\n/**\n * Class for a mobile menu.\n */\nvar Mmenu = /** @class */ (function () {\n /**\n * Create a mobile menu.\n * @param {HTMLElement|string} \tmenu\t\t\t\t\t\tThe menu node.\n * @param {object} \t\t\t\t[options=Mmenu.options]\t\tOptions for the menu.\n * @param {object} \t\t\t\t[configs=Mmenu.configs]\t\tConfiguration options for the menu.\n */\n function Mmenu(menu, options, configs) {\n //\tExtend options and configuration from defaults.\n this.opts = extend(options, Mmenu.options);\n this.conf = extend(configs, Mmenu.configs);\n //\tMethods to expose in the API.\n this._api = [\n 'bind',\n 'initPanel',\n 'initListview',\n 'openPanel',\n 'closePanel',\n 'closeAllPanels',\n 'setSelected',\n ];\n //\tStorage objects for nodes, variables, hooks and click handlers.\n this.node = {};\n this.vars = {};\n this.hook = {};\n this.clck = [];\n //\tGet menu node from string or element.\n this.node.menu =\n typeof menu == 'string' ? document.querySelector(menu) : menu;\n if (typeof this._deprecatedWarnings == 'function') {\n this._deprecatedWarnings();\n }\n this._initWrappers();\n this._initAddons();\n this._initExtensions();\n this._initHooks();\n this._initAPI();\n this._initMenu();\n this._initPanels();\n this._initOpened();\n this._initAnchors();\n media.watch();\n return this;\n }\n /**\n * Open a panel.\n * @param {HTMLElement} panel\t\t\t\tPanel to open.\n * @param {boolean}\t\t[animation=true]\tWhether or not to open the panel with an animation.\n */\n Mmenu.prototype.openPanel = function (panel, animation) {\n var _this = this;\n //\tInvoke \"before\" hook.\n this.trigger('openPanel:before', [panel]);\n //\tFind panel.\n if (!panel) {\n return;\n }\n if (!panel.matches('.mm-panel')) {\n panel = panel.closest('.mm-panel');\n }\n if (!panel) {\n return;\n }\n //\t/Find panel.\n if (typeof animation != 'boolean') {\n animation = true;\n }\n //\tOpen a \"vertical\" panel.\n if (panel.parentElement.matches('.mm-listitem_vertical')) {\n //\tOpen current and all vertical parent panels.\n DOM.parents(panel, '.mm-listitem_vertical').forEach(function (listitem) {\n listitem.classList.add('mm-listitem_opened');\n DOM.children(listitem, '.mm-panel').forEach(function (panel) {\n panel.classList.remove('mm-hidden');\n });\n });\n //\tOpen first non-vertical parent panel.\n var parents = DOM.parents(panel, '.mm-panel').filter(function (panel) { return !panel.parentElement.matches('.mm-listitem_vertical'); });\n this.trigger('openPanel:start', [panel]);\n if (parents.length) {\n this.openPanel(parents[0]);\n }\n this.trigger('openPanel:finish', [panel]);\n //\tOpen a \"horizontal\" panel.\n }\n else {\n if (panel.matches('.mm-panel_opened')) {\n return;\n }\n var panels = DOM.children(this.node.pnls, '.mm-panel'), current_1 = DOM.children(this.node.pnls, '.mm-panel_opened')[0];\n //\tClose all child panels.\n panels\n .filter(function (parent) { return parent !== panel; })\n .forEach(function (parent) {\n parent.classList.remove('mm-panel_opened-parent');\n });\n //\tOpen all parent panels.\n var parent_1 = panel['mmParent'];\n while (parent_1) {\n parent_1 = parent_1.closest('.mm-panel');\n if (parent_1) {\n if (!parent_1.parentElement.matches('.mm-listitem_vertical')) {\n parent_1.classList.add('mm-panel_opened-parent');\n }\n parent_1 = parent_1['mmParent'];\n }\n }\n //\tAdd classes for animation.\n panels.forEach(function (panel) {\n panel.classList.remove('mm-panel_highest');\n });\n panels\n .filter(function (hidden) { return hidden !== current_1; })\n .filter(function (hidden) { return hidden !== panel; })\n .forEach(function (hidden) {\n hidden.classList.add('mm-hidden');\n });\n panel.classList.remove('mm-hidden');\n /**\tStart opening the panel. */\n var openPanelStart_1 = function () {\n if (current_1) {\n current_1.classList.remove('mm-panel_opened');\n }\n panel.classList.add('mm-panel_opened');\n if (panel.matches('.mm-panel_opened-parent')) {\n if (current_1) {\n current_1.classList.add('mm-panel_highest');\n }\n panel.classList.remove('mm-panel_opened-parent');\n }\n else {\n if (current_1) {\n current_1.classList.add('mm-panel_opened-parent');\n }\n panel.classList.add('mm-panel_highest');\n }\n //\tInvoke \"start\" hook.\n _this.trigger('openPanel:start', [panel]);\n };\n /**\tFinish opening the panel. */\n var openPanelFinish_1 = function () {\n if (current_1) {\n current_1.classList.remove('mm-panel_highest');\n current_1.classList.add('mm-hidden');\n }\n panel.classList.remove('mm-panel_highest');\n //\tInvoke \"finish\" hook.\n _this.trigger('openPanel:finish', [panel]);\n };\n if (animation && !panel.matches('.mm-panel_noanimation')) {\n //\tWithout the timeout the animation will not work because the element had display: none;\n setTimeout(function () {\n //\tCallback\n transitionend(panel, function () {\n openPanelFinish_1();\n }, _this.conf.transitionDuration);\n openPanelStart_1();\n }, this.conf.openingInterval);\n }\n else {\n openPanelStart_1();\n openPanelFinish_1();\n }\n }\n //\tInvoke \"after\" hook.\n this.trigger('openPanel:after', [panel]);\n };\n /**\n * Close a panel.\n * @param {HTMLElement} panel Panel to close.\n */\n Mmenu.prototype.closePanel = function (panel) {\n //\tInvoke \"before\" hook.\n this.trigger('closePanel:before', [panel]);\n var li = panel.parentElement;\n //\tOnly works for \"vertical\" panels.\n if (li.matches('.mm-listitem_vertical')) {\n li.classList.remove('mm-listitem_opened');\n panel.classList.add('mm-hidden');\n //\tInvoke main hook.\n this.trigger('closePanel', [panel]);\n }\n //\tInvoke \"after\" hook.\n this.trigger('closePanel:after', [panel]);\n };\n /**\n * Close all opened panels.\n * @param {HTMLElement} panel Panel to open after closing all other panels.\n */\n Mmenu.prototype.closeAllPanels = function (panel) {\n //\tInvoke \"before\" hook.\n this.trigger('closeAllPanels:before');\n //\tClose all \"vertical\" panels.\n var listitems = this.node.pnls.querySelectorAll('.mm-listitem');\n listitems.forEach(function (listitem) {\n listitem.classList.remove('mm-listitem_selected');\n listitem.classList.remove('mm-listitem_opened');\n });\n //\tClose all \"horizontal\" panels.\n var panels = DOM.children(this.node.pnls, '.mm-panel'), opened = panel ? panel : panels[0];\n DOM.children(this.node.pnls, '.mm-panel').forEach(function (panel) {\n if (panel !== opened) {\n panel.classList.remove('mm-panel_opened');\n panel.classList.remove('mm-panel_opened-parent');\n panel.classList.remove('mm-panel_highest');\n panel.classList.add('mm-hidden');\n }\n });\n //\tOpen first panel.\n this.openPanel(opened, false);\n //\tInvoke \"after\" hook.\n this.trigger('closeAllPanels:after');\n };\n /**\n * Toggle a panel opened/closed.\n * @param {HTMLElement} panel Panel to open or close.\n */\n Mmenu.prototype.togglePanel = function (panel) {\n var listitem = panel.parentElement;\n //\tOnly works for \"vertical\" panels.\n if (listitem.matches('.mm-listitem_vertical')) {\n this[listitem.matches('.mm-listitem_opened')\n ? 'closePanel'\n : 'openPanel'](panel);\n }\n };\n /**\n * Display a listitem as being \"selected\".\n * @param {HTMLElement} listitem Listitem to mark.\n */\n Mmenu.prototype.setSelected = function (listitem) {\n //\tInvoke \"before\" hook.\n this.trigger('setSelected:before', [listitem]);\n //\tFirst, remove the selected class from all listitems.\n DOM.find(this.node.menu, '.mm-listitem_selected').forEach(function (li) {\n li.classList.remove('mm-listitem_selected');\n });\n //\tNext, add the selected class to the provided listitem.\n listitem.classList.add('mm-listitem_selected');\n //\tInvoke \"after\" hook.\n this.trigger('setSelected:after', [listitem]);\n };\n /**\n * Bind functions to a hook (subscriber).\n * @param {string} \t\thook The hook.\n * @param {function} \tfunc The function.\n */\n Mmenu.prototype.bind = function (hook, func) {\n //\tCreate an array for the hook if it does not yet excist.\n this.hook[hook] = this.hook[hook] || [];\n //\tPush the function to the array.\n this.hook[hook].push(func);\n };\n /**\n * Invoke the functions bound to a hook (publisher).\n * @param {string} \thook \tThe hook.\n * @param {array}\t[args] \tArguments for the function.\n */\n Mmenu.prototype.trigger = function (hook, args) {\n if (this.hook[hook]) {\n for (var h = 0, l = this.hook[hook].length; h < l; h++) {\n this.hook[hook][h].apply(this, args);\n }\n }\n };\n /**\n * Create the API.\n */\n Mmenu.prototype._initAPI = function () {\n var _this = this;\n //\tWe need this=that because:\n //\t1) the \"arguments\" object can not be referenced in an arrow function in ES3 and ES5.\n var that = this;\n this.API = {};\n this._api.forEach(function (fn) {\n _this.API[fn] = function () {\n var re = that[fn].apply(that, arguments); // 1)\n return typeof re == 'undefined' ? that.API : re;\n };\n });\n //\tStore the API in the HTML node for external usage.\n this.node.menu['mmApi'] = this.API;\n };\n /**\n * Bind the hooks specified in the options (publisher).\n */\n Mmenu.prototype._initHooks = function () {\n for (var hook in this.opts.hooks) {\n this.bind(hook, this.opts.hooks[hook]);\n }\n };\n /**\n * Initialize the wrappers specified in the options.\n */\n Mmenu.prototype._initWrappers = function () {\n //\tInvoke \"before\" hook.\n this.trigger('initWrappers:before');\n for (var w = 0; w < this.opts.wrappers.length; w++) {\n var wrpr = Mmenu.wrappers[this.opts.wrappers[w]];\n if (typeof wrpr == 'function') {\n wrpr.call(this);\n }\n }\n //\tInvoke \"after\" hook.\n this.trigger('initWrappers:after');\n };\n /**\n * Initialize all available add-ons.\n */\n Mmenu.prototype._initAddons = function () {\n //\tInvoke \"before\" hook.\n this.trigger('initAddons:before');\n for (var addon in Mmenu.addons) {\n Mmenu.addons[addon].call(this);\n }\n //\tInvoke \"after\" hook.\n this.trigger('initAddons:after');\n };\n /**\n * Initialize the extensions specified in the options.\n */\n Mmenu.prototype._initExtensions = function () {\n var _this = this;\n //\tInvoke \"before\" hook.\n this.trigger('initExtensions:before');\n //\tConvert array to object with array.\n if (type(this.opts.extensions) == 'array') {\n this.opts.extensions = {\n all: this.opts.extensions,\n };\n }\n //\tLoop over object.\n Object.keys(this.opts.extensions).forEach(function (query) {\n var classnames = _this.opts.extensions[query].map(function (extension) { return 'mm-menu_' + extension; });\n if (classnames.length) {\n media.add(query, function () {\n // IE11:\n classnames.forEach(function (classname) {\n _this.node.menu.classList.add(classname);\n });\n // Better browsers:\n // this.node.menu.classList.add(...classnames);\n }, function () {\n // IE11:\n classnames.forEach(function (classname) {\n _this.node.menu.classList.remove(classname);\n });\n // Better browsers:\n // this.node.menu.classList.remove(...classnames);\n });\n }\n });\n //\tInvoke \"after\" hook.\n this.trigger('initExtensions:after');\n };\n /**\n * Initialize the menu.\n */\n Mmenu.prototype._initMenu = function () {\n var _this = this;\n //\tInvoke \"before\" hook.\n this.trigger('initMenu:before');\n //\tAdd class to the wrapper.\n this.node.wrpr = this.node.wrpr || this.node.menu.parentElement;\n this.node.wrpr.classList.add('mm-wrapper');\n //\tAdd an ID to the menu if it does not yet have one.\n this.node.menu.id = this.node.menu.id || uniqueId();\n //\tWrap the panels in a node.\n var panels = DOM.create('div.mm-panels');\n DOM.children(this.node.menu).forEach(function (panel) {\n if (_this.conf.panelNodetype.indexOf(panel.nodeName.toLowerCase()) >\n -1) {\n panels.append(panel);\n }\n });\n this.node.menu.append(panels);\n this.node.pnls = panels;\n //\tAdd class to the menu.\n this.node.menu.classList.add('mm-menu');\n //\tInvoke \"after\" hook.\n this.trigger('initMenu:after');\n };\n /**\n * Initialize panels.\n */\n Mmenu.prototype._initPanels = function () {\n var _this = this;\n //\tInvoke \"before\" hook.\n this.trigger('initPanels:before');\n //\tOpen / close panels.\n this.clck.push(function (anchor, args) {\n if (args.inMenu) {\n var href = anchor.getAttribute('href');\n if (href && href.length > 1 && href.slice(0, 1) == '#') {\n try {\n var panel = DOM.find(_this.node.menu, href)[0];\n if (panel && panel.matches('.mm-panel')) {\n if (anchor.parentElement.matches('.mm-listitem_vertical')) {\n _this.togglePanel(panel);\n }\n else {\n _this.openPanel(panel);\n }\n return true;\n }\n }\n catch (err) { }\n }\n }\n });\n /** The panels to initiate */\n var panels = DOM.children(this.node.pnls);\n panels.forEach(function (panel) {\n _this.initPanel(panel);\n });\n //\tInvoke \"after\" hook.\n this.trigger('initPanels:after');\n };\n /**\n * Initialize a single panel and its children.\n * @param {HTMLElement} panel The panel to initialize.\n */\n Mmenu.prototype.initPanel = function (panel) {\n var _this = this;\n /** Query selector for possible node-types for panels. */\n var panelNodetype = this.conf.panelNodetype.join(', ');\n if (panel.matches(panelNodetype)) {\n // Only once\n if (!panel.matches('.mm-panel')) {\n panel = this._initPanel(panel);\n }\n if (panel) {\n /** The sub panels. */\n var children_1 = [];\n //\tFind panel > panel\n children_1.push.apply(children_1, DOM.children(panel, '.' + this.conf.classNames.panel));\n //\tFind panel listitem > panel\n DOM.children(panel, '.mm-listview').forEach(function (listview) {\n DOM.children(listview, '.mm-listitem').forEach(function (listitem) {\n children_1.push.apply(children_1, DOM.children(listitem, panelNodetype));\n });\n });\n // Initiate subpanel(s).\n children_1.forEach(function (child) {\n _this.initPanel(child);\n });\n }\n }\n };\n /**\n * Initialize a single panel.\n * @param {HTMLElement} \t\tpanel \tPanel to initialize.\n * @return {HTMLElement|null} \t\t\tInitialized panel.\n */\n Mmenu.prototype._initPanel = function (panel) {\n var _this = this;\n //\tInvoke \"before\" hook.\n this.trigger('initPanel:before', [panel]);\n //\tRefactor panel classnames\n DOM.reClass(panel, this.conf.classNames.panel, 'mm-panel');\n DOM.reClass(panel, this.conf.classNames.nopanel, 'mm-nopanel');\n DOM.reClass(panel, this.conf.classNames.inset, 'mm-listview_inset');\n if (panel.matches('.mm-listview_inset')) {\n panel.classList.add('mm-nopanel');\n }\n //\tStop if not supposed to be a panel.\n if (panel.matches('.mm-nopanel')) {\n return null;\n }\n /** The original ID on the node. */\n var id = panel.id || uniqueId();\n // Vertical panel.\n var vertical = panel.matches('.' + this.conf.classNames.vertical) ||\n !this.opts.slidingSubmenus;\n panel.classList.remove(this.conf.classNames.vertical);\n //\tWrap UL/OL in DIV\n if (panel.matches('ul, ol')) {\n panel.removeAttribute('id');\n /** The panel. */\n var wrapper = DOM.create('div');\n //\tWrap the listview in the panel.\n panel.before(wrapper);\n wrapper.append(panel);\n panel = wrapper;\n }\n panel.id = id;\n panel.classList.add('mm-panel');\n panel.classList.add('mm-hidden');\n /** The parent listitem. */\n var parent = [panel.parentElement].filter(function (listitem) {\n return listitem.matches('li');\n })[0];\n if (vertical) {\n if (parent) {\n parent.classList.add('mm-listitem_vertical');\n }\n }\n else {\n this.node.pnls.append(panel);\n }\n if (parent) {\n //\tStore parent/child relation.\n parent['mmChild'] = panel;\n panel['mmParent'] = parent;\n //\tAdd open link to parent listitem\n if (parent && parent.matches('.mm-listitem')) {\n if (!DOM.children(parent, '.mm-btn').length) {\n /** The text node. */\n var item = DOM.children(parent, '.mm-listitem__text')[0];\n if (item) {\n /** The open link. */\n var button = DOM.create('a.mm-btn.mm-btn_next.mm-listitem__btn');\n button.setAttribute('href', '#' + panel.id);\n // If the item has no link,\n // Replace the item with the open link.\n if (item.matches('span')) {\n button.classList.add('mm-listitem__text');\n button.innerHTML = item.innerHTML;\n parent.insertBefore(button, item.nextElementSibling);\n item.remove();\n }\n // Otherwise, insert the button after the text.\n else {\n parent.insertBefore(button, DOM.children(parent, '.mm-panel')[0]);\n }\n }\n }\n }\n }\n this._initNavbar(panel);\n DOM.children(panel, 'ul, ol').forEach(function (listview) {\n _this.initListview(listview);\n });\n //\tInvoke \"after\" hook.\n this.trigger('initPanel:after', [panel]);\n return panel;\n };\n /**\n * Initialize a navbar.\n * @param {HTMLElement} panel Panel for the navbar.\n */\n Mmenu.prototype._initNavbar = function (panel) {\n //\tInvoke \"before\" hook.\n this.trigger('initNavbar:before', [panel]);\n //\tOnly one navbar per panel.\n if (DOM.children(panel, '.mm-navbar').length) {\n return;\n }\n /** The parent listitem. */\n var parentListitem = null;\n /** The parent panel. */\n var parentPanel = null;\n // The parent panel was specified in the data-mm-parent attribute.\n if (panel.getAttribute('data-mm-parent')) {\n parentPanel = DOM.find(this.node.pnls, panel.getAttribute('data-mm-parent'))[0];\n }\n // if (panel.dataset.mmParent) { // IE10 has no dataset\n // parentPanel = DOM.find(this.node.pnls, panel.dataset.mmParent)[0];\n // }\n // The parent panel from a listitem.\n else {\n parentListitem = panel['mmParent'];\n if (parentListitem) {\n parentPanel = parentListitem.closest('.mm-panel');\n }\n }\n // No navbar needed for vertical submenus.\n if (parentListitem && parentListitem.matches('.mm-listitem_vertical')) {\n return;\n }\n /** The navbar element. */\n var navbar = DOM.create('div.mm-navbar');\n // Hide navbar if specified in options.\n if (!this.opts.navbar.add) {\n navbar.classList.add('mm-hidden');\n }\n // Sticky navbars.\n else if (this.opts.navbar.sticky) {\n navbar.classList.add('mm-navbar_sticky');\n }\n // Add the back button.\n if (parentPanel) {\n /** The back button. */\n var prev = DOM.create('a.mm-btn.mm-btn_prev.mm-navbar__btn');\n prev.setAttribute('href', '#' + parentPanel.id);\n navbar.append(prev);\n }\n /** The anchor that opens the panel. */\n var opener = null;\n // The anchor is in a listitem.\n if (parentListitem) {\n opener = DOM.children(parentListitem, '.mm-listitem__text')[0];\n }\n // The anchor is in a panel.\n else if (parentPanel) {\n opener = DOM.find(parentPanel, 'a[href=\"#' + panel.id + '\"]')[0];\n }\n // Add the title.\n var title = DOM.create('a.mm-navbar__title');\n var titleText = DOM.create('span');\n title.append(titleText);\n titleText.innerHTML =\n // panel.dataset.mmTitle || // IE10 has no dataset :(\n panel.getAttribute('data-mm-title') ||\n (opener ? opener.textContent : '') ||\n this.i18n(this.opts.navbar.title) ||\n this.i18n('Menu');\n switch (this.opts.navbar.titleLink) {\n case 'anchor':\n if (opener) {\n title.setAttribute('href', opener.getAttribute('href'));\n }\n break;\n case 'parent':\n if (parentPanel) {\n title.setAttribute('href', '#' + parentPanel.id);\n }\n break;\n }\n navbar.append(title);\n panel.prepend(navbar);\n //\tInvoke \"after\" hook.\n this.trigger('initNavbar:after', [panel]);\n };\n /**\n * Initialize a listview.\n * @param {HTMLElement} listview Listview to initialize.\n */\n Mmenu.prototype.initListview = function (listview) {\n var _this = this;\n //\tInvoke \"before\" hook.\n this.trigger('initListview:before', [listview]);\n DOM.reClass(listview, this.conf.classNames.nolistview, 'mm-nolistview');\n if (!listview.matches('.mm-nolistview')) {\n listview.classList.add('mm-listview');\n DOM.children(listview).forEach(function (listitem) {\n listitem.classList.add('mm-listitem');\n DOM.reClass(listitem, _this.conf.classNames.selected, 'mm-listitem_selected');\n DOM.children(listitem, 'a, span').forEach(function (item) {\n if (!item.matches('.mm-btn')) {\n item.classList.add('mm-listitem__text');\n }\n });\n });\n }\n //\tInvoke \"after\" hook.\n this.trigger('initListview:after', [listview]);\n };\n /**\n * Find and open the correct panel after creating the menu.\n */\n Mmenu.prototype._initOpened = function () {\n //\tInvoke \"before\" hook.\n this.trigger('initOpened:before');\n /** The selected listitem(s). */\n var listitems = this.node.pnls.querySelectorAll('.mm-listitem_selected');\n /** The last selected listitem. */\n var lastitem = null;\n //\tDeselect the listitems.\n listitems.forEach(function (listitem) {\n lastitem = listitem;\n listitem.classList.remove('mm-listitem_selected');\n });\n //\tRe-select the last listitem.\n if (lastitem) {\n lastitem.classList.add('mm-listitem_selected');\n }\n /**\tThe current opened panel. */\n var current = lastitem\n ? lastitem.closest('.mm-panel')\n : DOM.children(this.node.pnls, '.mm-panel')[0];\n //\tOpen the current opened panel.\n this.openPanel(current, false);\n //\tInvoke \"after\" hook.\n this.trigger('initOpened:after');\n };\n /**\n * Initialize anchors in / for the menu.\n */\n Mmenu.prototype._initAnchors = function () {\n var _this = this;\n //\tInvoke \"before\" hook.\n this.trigger('initAnchors:before');\n document.addEventListener('click', function (evnt) {\n /** The clicked element. */\n var target = evnt.target.closest('a[href]');\n if (!target) {\n return;\n }\n /** Arguments passed to the bound methods. */\n var args = {\n inMenu: target.closest('.mm-menu') === _this.node.menu,\n inListview: target.matches('.mm-listitem > a'),\n toExternal: target.matches('[rel=\"external\"]') ||\n target.matches('[target=\"_blank\"]'),\n };\n var onClick = {\n close: null,\n setSelected: null,\n preventDefault: target.getAttribute('href').slice(0, 1) == '#',\n };\n //\tFind hooked behavior.\n for (var c = 0; c < _this.clck.length; c++) {\n var click = _this.clck[c].call(_this, target, args);\n if (click) {\n if (typeof click == 'boolean') {\n evnt.preventDefault();\n return;\n }\n if (type(click) == 'object') {\n onClick = extend(click, onClick);\n }\n }\n }\n //\tDefault behavior for anchors in lists.\n if (args.inMenu && args.inListview && !args.toExternal) {\n //\tSet selected item, Default: true\n if (valueOrFn(target, _this.opts.onClick.setSelected, onClick.setSelected)) {\n _this.setSelected(target.parentElement);\n }\n //\tPrevent default / don't follow link. Default: false.\n if (valueOrFn(target, _this.opts.onClick.preventDefault, onClick.preventDefault)) {\n evnt.preventDefault();\n }\n //\tClose menu. Default: false\n if (valueOrFn(target, _this.opts.onClick.close, onClick.close)) {\n if (_this.opts.offCanvas &&\n typeof _this.close == 'function') {\n _this.close();\n }\n }\n }\n }, true);\n //\tInvoke \"after\" hook.\n this.trigger('initAnchors:after');\n };\n /**\n * Get the translation for a text.\n * @param {string} text \tText to translate.\n * @return {string}\t\t\tThe translated text.\n */\n Mmenu.prototype.i18n = function (text) {\n return i18n.get(text, this.conf.language);\n };\n /**\tDefault options for menus. */\n Mmenu.options = options;\n /**\tDefault configuration for menus. */\n Mmenu.configs = configs;\n /**\tAvailable add-ons for the plugin. */\n Mmenu.addons = {};\n /** Available wrappers for the plugin. */\n Mmenu.wrappers = {};\n /**\tGlobally used HTML elements. */\n Mmenu.node = {};\n /** Globally used variables. */\n Mmenu.vars = {};\n return Mmenu;\n}());\nexport default Mmenu;\n","var options = {\n blockUI: true,\n moveBackground: true\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n;\n","var configs = {\n clone: false,\n menu: {\n insertMethod: 'prepend',\n insertSelector: 'body'\n },\n page: {\n nodetype: 'div',\n selector: null,\n noSelector: []\n }\n};\nexport default configs;\n","/**\n * Make the first letter in a word uppercase.\n * @param {string} word The word.\n */\nfunction ucFirst(word) {\n if (!word) {\n return '';\n }\n return word.charAt(0).toUpperCase() + word.slice(1);\n}\n/**\n * Bind an event listener to an element.\n * @param {HTMLElement} element The element to bind the event listener to.\n * @param {string} evnt The event to listen to.\n * @param {funcion} handler The function to invoke.\n */\nexport function on(element, evnt, handler) {\n // Extract the event name and space from the event (the event can include a namespace (click.foo)).\n var evntParts = evnt.split('.');\n evnt = 'mmEvent' + ucFirst(evntParts[0]) + ucFirst(evntParts[1]);\n element[evnt] = element[evnt] || [];\n element[evnt].push(handler);\n element.addEventListener(evntParts[0], handler);\n}\n/**\n * Remove an event listener from an element.\n * @param {HTMLElement} element The element to remove the event listeners from.\n * @param {string} evnt The event to remove.\n */\nexport function off(element, evnt) {\n // Extract the event name and space from the event (the event can include a namespace (click.foo)).\n var evntParts = evnt.split('.');\n evnt = 'mmEvent' + ucFirst(evntParts[0]) + ucFirst(evntParts[1]);\n (element[evnt] || []).forEach(function (handler) {\n element.removeEventListener(evntParts[0], handler);\n });\n}\n/**\n * Trigger the bound event listeners on an element.\n * @param {HTMLElement} element The element of which to trigger the event listeners from.\n * @param {string} evnt The event to trigger.\n * @param {object} [options] Options to pass to the handler.\n */\nexport function trigger(element, evnt, options) {\n var evntParts = evnt.split('.');\n evnt = 'mmEvent' + ucFirst(evntParts[0]) + ucFirst(evntParts[1]);\n (element[evnt] || []).forEach(function (handler) {\n handler(options || {});\n });\n}\n","import Mmenu from './../oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport configs from './_configs';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport * as events from '../../_modules/eventlisteners';\nimport { extend, transitionend, uniqueId, originalId } from '../../_modules/helpers';\n// Add the options and configs.\nMmenu.options.offCanvas = options;\nMmenu.configs.offCanvas = configs;\nexport default function () {\n var _this = this;\n if (!this.opts.offCanvas) {\n return;\n }\n var options = extendShorthandOptions(this.opts.offCanvas);\n this.opts.offCanvas = extend(options, Mmenu.options.offCanvas);\n var configs = this.conf.offCanvas;\n //\tAdd methods to the API.\n this._api.push('open', 'close', 'setPage');\n //\tSetup the menu.\n this.vars.opened = false;\n //\tAdd off-canvas behavior.\n this.bind('initMenu:before', function () {\n //\tClone if needed.\n if (configs.clone) {\n //\tClone the original menu and store it.\n _this.node.menu = _this.node.menu.cloneNode(true);\n //\tPrefix all ID's in the cloned menu.\n if (_this.node.menu.id) {\n _this.node.menu.id = 'mm-' + _this.node.menu.id;\n }\n DOM.find(_this.node.menu, '[id]').forEach(function (elem) {\n elem.id = 'mm-' + elem.id;\n });\n }\n _this.node.wrpr = document.body;\n //\tPrepend to the \n document\n .querySelector(configs.menu.insertSelector)[configs.menu.insertMethod](_this.node.menu);\n });\n this.bind('initMenu:after', function () {\n //\tSetup the UI blocker.\n initBlocker.call(_this);\n //\tSetup the page.\n _this.setPage(Mmenu.node.page);\n //\tSetup window events.\n initWindow.call(_this);\n //\tSetup the menu.\n _this.node.menu.classList.add('mm-menu_offcanvas');\n //\tOpen if url hash equals menu id (usefull when user clicks the hamburger icon before the menu is created)\n var hash = window.location.hash;\n if (hash) {\n var id = originalId(_this.node.menu.id);\n if (id && id == hash.slice(1)) {\n setTimeout(function () {\n _this.open();\n }, 1000);\n }\n }\n });\n //\tSync the blocker to target the page.\n this.bind('setPage:after', function (page) {\n if (Mmenu.node.blck) {\n DOM.children(Mmenu.node.blck, 'a').forEach(function (anchor) {\n anchor.setAttribute('href', '#' + page.id);\n });\n }\n });\n //\tAdd screenreader / aria support\n this.bind('open:start:sr-aria', function () {\n Mmenu.sr_aria(_this.node.menu, 'hidden', false);\n });\n this.bind('close:finish:sr-aria', function () {\n Mmenu.sr_aria(_this.node.menu, 'hidden', true);\n });\n this.bind('initMenu:after:sr-aria', function () {\n Mmenu.sr_aria(_this.node.menu, 'hidden', true);\n });\n //\tAdd screenreader / text support\n this.bind('initBlocker:after:sr-text', function () {\n DOM.children(Mmenu.node.blck, 'a').forEach(function (anchor) {\n anchor.innerHTML = Mmenu.sr_text(_this.i18n(_this.conf.screenReader.text.closeMenu));\n });\n });\n //\tAdd click behavior.\n //\tPrevents default behavior when clicking an anchor\n this.clck.push(function (anchor, args) {\n //\tOpen menu if the clicked anchor links to the menu\n var id = originalId(_this.node.menu.id);\n if (id) {\n if (anchor.matches('[href=\"#' + id + '\"]')) {\n //\tOpening this menu from within this menu\n //\t\t-> Open menu\n if (args.inMenu) {\n _this.open();\n return true;\n }\n //\tOpening this menu from within a second menu\n //\t\t-> Close the second menu before opening this menu\n var menu = anchor.closest('.mm-menu');\n if (menu) {\n var api = menu['mmApi'];\n if (api && api.close) {\n api.close();\n transitionend(menu, function () {\n _this.open();\n }, _this.conf.transitionDuration);\n return true;\n }\n }\n //\tOpening this menu\n _this.open();\n return true;\n }\n }\n //\tClose menu\n id = Mmenu.node.page.id;\n if (id) {\n if (anchor.matches('[href=\"#' + id + '\"]')) {\n _this.close();\n return true;\n }\n }\n return;\n });\n}\n/**\n * Open the menu.\n */\nMmenu.prototype.open = function () {\n var _this = this;\n //\tInvoke \"before\" hook.\n this.trigger('open:before');\n if (this.vars.opened) {\n return;\n }\n this._openSetup();\n //\tWithout the timeout, the animation won't work because the menu had display: none;\n setTimeout(function () {\n _this._openStart();\n }, this.conf.openingInterval);\n //\tInvoke \"after\" hook.\n this.trigger('open:after');\n};\nMmenu.prototype._openSetup = function () {\n var _this = this;\n var options = this.opts.offCanvas;\n //\tClose other menus\n this.closeAllOthers();\n //\tTrigger window-resize to measure height\n events.trigger(window, 'resize.page', { force: true });\n var clsn = ['mm-wrapper_opened'];\n //\tAdd options\n if (options.blockUI) {\n clsn.push('mm-wrapper_blocking');\n }\n if (options.blockUI == 'modal') {\n clsn.push('mm-wrapper_modal');\n }\n if (options.moveBackground) {\n clsn.push('mm-wrapper_background');\n }\n // IE11:\n clsn.forEach(function (classname) {\n _this.node.wrpr.classList.add(classname);\n });\n // Better browsers:\n // this.node.wrpr.classList.add(...clsn);\n //\tOpen\n //\tWithout the timeout, the animation won't work because the menu had display: none;\n setTimeout(function () {\n _this.vars.opened = true;\n }, this.conf.openingInterval);\n this.node.menu.classList.add('mm-menu_opened');\n};\n/**\n * Finish opening the menu.\n */\nMmenu.prototype._openStart = function () {\n var _this = this;\n //\tCallback when the page finishes opening.\n transitionend(Mmenu.node.page, function () {\n _this.trigger('open:finish');\n }, this.conf.transitionDuration);\n //\tOpening\n this.trigger('open:start');\n this.node.wrpr.classList.add('mm-wrapper_opening');\n};\nMmenu.prototype.close = function () {\n var _this = this;\n //\tInvoke \"before\" hook.\n this.trigger('close:before');\n if (!this.vars.opened) {\n return;\n }\n //\tCallback when the page finishes closing.\n transitionend(Mmenu.node.page, function () {\n _this.node.menu.classList.remove('mm-menu_opened');\n var classnames = [\n 'mm-wrapper_opened',\n 'mm-wrapper_blocking',\n 'mm-wrapper_modal',\n 'mm-wrapper_background'\n ];\n // IE11:\n classnames.forEach(function (classname) {\n _this.node.wrpr.classList.remove(classname);\n });\n // Better browsers:\n // this.node.wrpr.classList.remove(...classnames);\n _this.vars.opened = false;\n _this.trigger('close:finish');\n }, this.conf.transitionDuration);\n //\tClosing\n this.trigger('close:start');\n this.node.wrpr.classList.remove('mm-wrapper_opening');\n //\tInvoke \"after\" hook.\n this.trigger('close:after');\n};\n/**\n * Close all other menus.\n */\nMmenu.prototype.closeAllOthers = function () {\n var _this = this;\n DOM.find(document.body, '.mm-menu_offcanvas').forEach(function (menu) {\n if (menu !== _this.node.menu) {\n var api = menu['mmApi'];\n if (api && api.close) {\n api.close();\n }\n }\n });\n};\n/**\n * Set the \"page\" node.\n *\n * @param {HTMLElement} page Element to set as the page.\n */\nMmenu.prototype.setPage = function (page) {\n //\tInvoke \"before\" hook.\n this.trigger('setPage:before', [page]);\n var configs = this.conf.offCanvas;\n //\tIf no page was specified, find it.\n if (!page) {\n /** Array of elements that are / could be \"the page\". */\n var pages = typeof configs.page.selector == 'string'\n ? DOM.find(document.body, configs.page.selector)\n : DOM.children(document.body, configs.page.nodetype);\n //\tFilter out elements that are absolutely not \"the page\".\n pages = pages.filter(function (page) { return !page.matches('.mm-menu, .mm-wrapper__blocker'); });\n //\tFilter out elements that are configured to not be \"the page\".\n if (configs.page.noSelector.length) {\n pages = pages.filter(function (page) { return !page.matches(configs.page.noSelector.join(', ')); });\n }\n //\tWrap multiple pages in a single element.\n if (pages.length > 1) {\n var wrapper_1 = DOM.create('div');\n pages[0].before(wrapper_1);\n pages.forEach(function (page) {\n wrapper_1.append(page);\n });\n pages = [wrapper_1];\n }\n page = pages[0];\n }\n page.classList.add('mm-page');\n page.classList.add('mm-slideout');\n page.id = page.id || uniqueId();\n Mmenu.node.page = page;\n //\tInvoke \"after\" hook.\n this.trigger('setPage:after', [page]);\n};\n/**\n * Initialize the window.\n */\nvar initWindow = function () {\n var _this = this;\n //\tPrevent tabbing\n //\tBecause when tabbing outside the menu, the element that gains focus will be centered on the screen.\n //\tIn other words: The menu would move out of view.\n events.off(document.body, 'keydown.tabguard');\n events.on(document.body, 'keydown.tabguard', function (evnt) {\n if (evnt.keyCode == 9) {\n if (_this.node.wrpr.matches('.mm-wrapper_opened')) {\n evnt.preventDefault();\n }\n }\n });\n};\n/**\n * Initialize \"blocker\" node\n */\nvar initBlocker = function () {\n var _this = this;\n //\tInvoke \"before\" hook.\n this.trigger('initBlocker:before');\n var options = this.opts.offCanvas, configs = this.conf.offCanvas;\n if (!options.blockUI) {\n return;\n }\n //\tCreate the blocker node.\n if (!Mmenu.node.blck) {\n var blck = DOM.create('div.mm-wrapper__blocker.mm-slideout');\n blck.innerHTML = '';\n //\tAppend the blocker node to the body.\n document.querySelector(configs.menu.insertSelector).append(blck);\n //\tStore the blocker node.\n Mmenu.node.blck = blck;\n }\n //\tClose the menu when\n //\t\t1) clicking,\n //\t\t2) touching or\n //\t\t3) dragging the blocker node.\n var closeMenu = function (evnt) {\n evnt.preventDefault();\n evnt.stopPropagation();\n if (!_this.node.wrpr.matches('.mm-wrapper_modal')) {\n _this.close();\n }\n };\n Mmenu.node.blck.addEventListener('mousedown', closeMenu); // 1\n Mmenu.node.blck.addEventListener('touchstart', closeMenu); // 2\n Mmenu.node.blck.addEventListener('touchmove', closeMenu); // 3\n //\tInvoke \"after\" hook.\n this.trigger('initBlocker:after');\n};\n","var options = {\n aria: true,\n text: true\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n aria: options,\n text: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n;\n","var configs = {\n text: {\n closeMenu: 'Close menu',\n closeSubmenu: 'Close submenu',\n openSubmenu: 'Open submenu',\n toggleSubmenu: 'Toggle submenu'\n }\n};\nexport default configs;\n","export default {\n 'Close menu': 'بستن منو',\n 'Close submenu': 'بستن زیرمنو',\n 'Open submenu': 'بازکردن زیرمنو',\n 'Toggle submenu': 'سوییچ زیرمنو'\n};\n","export default {\n 'Close menu': 'Menü schließen',\n 'Close submenu': 'Untermenü schließen',\n 'Open submenu': 'Untermenü öffnen',\n 'Toggle submenu': 'Untermenü wechseln'\n};\n","export default {\n 'Close menu': 'Закрыть меню',\n 'Close submenu': 'Закрыть подменю',\n 'Open submenu': 'Открыть подменю',\n 'Toggle submenu': 'Переключить подменю'\n};\n","import Mmenu from './../oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport configs from './_configs';\nimport translate from './translations/translate';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport { extend } from '../../_modules/helpers';\n// Add the translations.\ntranslate();\n// Add the options and configs.\nMmenu.options.screenReader = options;\nMmenu.configs.screenReader = configs;\nexport default function () {\n var _this = this;\n //\tExtend options.\n var options = extendShorthandOptions(this.opts.screenReader);\n this.opts.screenReader = extend(options, Mmenu.options.screenReader);\n //\tExtend configs.\n var configs = this.conf.screenReader;\n //\tAdd Aria-* attributes\n if (options.aria) {\n //\tAdd screenreader / aria hooks for add-ons\n //\tIn orde to keep this list short, only extend hooks that are actually used by other add-ons.\n this.bind('initAddons:after', function () {\n _this.bind('initMenu:after', function () {\n this.trigger('initMenu:after:sr-aria', [].slice.call(arguments));\n });\n _this.bind('initNavbar:after', function () {\n this.trigger('initNavbar:after:sr-aria', [].slice.call(arguments));\n });\n _this.bind('openPanel:start', function () {\n this.trigger('openPanel:start:sr-aria', [].slice.call(arguments));\n });\n _this.bind('close:start', function () {\n this.trigger('close:start:sr-aria', [].slice.call(arguments));\n });\n _this.bind('close:finish', function () {\n this.trigger('close:finish:sr-aria', [].slice.call(arguments));\n });\n _this.bind('open:start', function () {\n this.trigger('open:start:sr-aria', [].slice.call(arguments));\n });\n _this.bind('initOpened:after', function () {\n this.trigger('initOpened:after:sr-aria', [].slice.call(arguments));\n });\n });\n //\tUpdate aria-hidden for hidden / visible listitems\n this.bind('updateListview', function () {\n _this.node.pnls\n .querySelectorAll('.mm-listitem')\n .forEach(function (listitem) {\n Mmenu.sr_aria(listitem, 'hidden', listitem.matches('.mm-hidden'));\n });\n });\n //\tUpdate aria-hidden for the panels when opening and closing a panel.\n this.bind('openPanel:start', function (panel) {\n /** Panels that should be considered \"hidden\". */\n var hidden = DOM.find(_this.node.pnls, '.mm-panel')\n .filter(function (hide) { return hide !== panel; })\n .filter(function (hide) { return !hide.parentElement.matches('.mm-panel'); });\n /** Panels that should be considered \"visible\". */\n var visible = [panel];\n DOM.find(panel, '.mm-listitem_vertical .mm-listitem_opened').forEach(function (listitem) {\n visible.push.apply(visible, DOM.children(listitem, '.mm-panel'));\n });\n //\tSet the panels to be considered \"hidden\" or \"visible\".\n hidden.forEach(function (panel) {\n Mmenu.sr_aria(panel, 'hidden', true);\n });\n visible.forEach(function (panel) {\n Mmenu.sr_aria(panel, 'hidden', false);\n });\n });\n this.bind('closePanel', function (panel) {\n Mmenu.sr_aria(panel, 'hidden', true);\n });\n // //\tAdd aria-haspopup and aria-owns to prev- and next buttons.\n // this.bind('initPanel:after', (panel: HTMLElement) => {\n // DOM.find(panel, '.mm-btn').forEach(button => {\n // Mmenu.sr_aria(button, 'haspopup', true);\n // let href = button.getAttribute('href');\n // if (href) {\n // Mmenu.sr_aria(button, 'owns', href.replace('#', ''));\n // }\n // });\n // });\n //\tAdd aria-hidden for navbars in panels.\n this.bind('initNavbar:after', function (panel) {\n /** The navbar in the panel. */\n var navbar = DOM.children(panel, '.mm-navbar')[0];\n /** Whether or not the navbar should be considered \"hidden\". */\n var hidden = navbar.matches('.mm-hidden');\n //\tSet the navbar to be considered \"hidden\" or \"visible\".\n Mmenu.sr_aria(navbar, 'hidden', hidden);\n });\n //\tText\n if (options.text) {\n //\tAdd aria-hidden to titles in navbars\n if (this.opts.navbar.titleLink == 'parent') {\n this.bind('initNavbar:after', function (panel) {\n /** The navbar in the panel. */\n var navbar = DOM.children(panel, '.mm-navbar')[0];\n /** Whether or not the navbar should be considered \"hidden\". */\n var hidden = navbar.querySelector('.mm-btn_prev')\n ? true\n : false;\n //\tSet the navbar-title to be considered \"hidden\" or \"visible\".\n Mmenu.sr_aria(DOM.find(navbar, '.mm-navbar__title')[0], 'hidden', hidden);\n });\n }\n }\n }\n //\tAdd screenreader text\n if (options.text) {\n //\tAdd screenreader / text hooks for add-ons\n //\tIn orde to keep this list short, only extend hooks that are actually used by other add-ons.\n this.bind('initAddons:after', function () {\n _this.bind('setPage:after', function () {\n this.trigger('setPage:after:sr-text', [].slice.call(arguments));\n });\n _this.bind('initBlocker:after', function () {\n this.trigger('initBlocker:after:sr-text', [].slice.call(arguments));\n });\n });\n //\tAdd text to the prev-buttons.\n this.bind('initNavbar:after', function (panel) {\n var navbar = DOM.children(panel, '.mm-navbar')[0];\n if (navbar) {\n var button = DOM.children(navbar, '.mm-btn_prev')[0];\n if (button) {\n button.innerHTML = Mmenu.sr_text(_this.i18n(configs.text.closeSubmenu));\n }\n }\n });\n //\tAdd text to the next-buttons.\n this.bind('initListview:after', function (listview) {\n var parent = listview.closest('.mm-panel')['mmParent'];\n if (parent) {\n var next = DOM.children(parent, '.mm-btn_next')[0];\n if (next) {\n var text = _this.i18n(configs.text[next.parentElement.matches('.mm-listitem_vertical')\n ? 'toggleSubmenu'\n : 'openSubmenu']);\n next.innerHTML += Mmenu.sr_text(text);\n }\n }\n });\n }\n}\n//\tMethods\n(function () {\n var attr = function (element, attr, value) {\n element[attr] = value;\n if (value) {\n element.setAttribute(attr, value.toString());\n }\n else {\n element.removeAttribute(attr);\n }\n };\n /**\n * Add aria (property and) attribute to a HTML element.\n *\n * @param {HTMLElement} \telement\tThe node to add the attribute to.\n * @param {string}\t\t\tname\tThe (non-aria-prefixed) attribute name.\n * @param {string|boolean}\tvalue\tThe attribute value.\n */\n Mmenu.sr_aria = function (element, name, value) {\n attr(element, 'aria-' + name, value);\n };\n /**\n * Add role attribute to a HTML element.\n *\n * @param {HTMLElement}\t\telement\tThe node to add the attribute to.\n * @param {string|boolean}\tvalue\tThe attribute value.\n */\n Mmenu.sr_role = function (element, value) {\n attr(element, 'role', value);\n };\n /**\n * Wrap a text in a screen-reader-only node.\n *\n * @param \t{string} text\tThe text to wrap.\n * @return\t{string}\t\tThe wrapped text.\n */\n Mmenu.sr_text = function (text) {\n return '' + text + '';\n };\n})();\n","import { add } from '../../../_modules/i18n';\nimport nl from './nl';\nimport fa from './fa';\nimport de from './de';\nimport ru from './ru';\nexport default function () {\n add(nl, 'nl');\n add(fa, 'fa');\n add(de, 'de');\n add(ru, 'ru');\n}\n","export default {\n 'Close menu': 'Menu sluiten',\n 'Close submenu': 'Submenu sluiten',\n 'Open submenu': 'Submenu openen',\n 'Toggle submenu': 'Submenu wisselen'\n};\n","var options = {\n fix: true\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n fix: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n;\n","/** Whether or not touch gestures are supported by the browser. */\nexport var touch = 'ontouchstart' in window ||\n (navigator.msMaxTouchPoints ? true : false) ||\n false;\n","import Mmenu from './../oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport * as support from '../../_modules/support';\nimport { extend, touchDirection } from '../../_modules/helpers';\n// Add the options.\nMmenu.options.scrollBugFix = options;\nexport default function () {\n var _this = this;\n //\tThe scrollBugFix add-on fixes a scrolling bug\n //\t\t1) on touch devices\n //\t\t2) in an off-canvas menu\n //\t\t3) that -when opened- blocks the UI from interaction\n if (!support.touch || // 1\n !this.opts.offCanvas || // 2\n !this.opts.offCanvas.blockUI // 3\n ) {\n return;\n }\n //\tExtend options.\n var options = extendShorthandOptions(this.opts.scrollBugFix);\n this.opts.scrollBugFix = extend(options, Mmenu.options.scrollBugFix);\n if (!options.fix) {\n return;\n }\n var touchDir = touchDirection(this.node.menu);\n /**\n * Prevent an event from doing its default and stop its propagation.\n * @param {ScrollBehavior} evnt The event to stop.\n */\n function stop(evnt) {\n evnt.preventDefault();\n evnt.stopPropagation();\n }\n // Prevent the page from scrolling when scrolling in the menu.\n this.node.menu.addEventListener('scroll', stop, {\n // Make sure to tell the browser the event will be prevented.\n passive: false,\n });\n // Prevent the page from scrolling when dragging in the menu.\n this.node.menu.addEventListener('touchmove', function (evnt) {\n var wrapper = evnt.target.closest('.mm-panel, .mm-iconbar__top, .mm-iconbar__bottom');\n if (wrapper && wrapper.closest('.mm-listitem_vertical')) {\n wrapper = DOM.parents(wrapper, '.mm-panel').pop();\n }\n if (wrapper) {\n // When dragging a non-scrollable panel,\n // we can simple preventDefault and stopPropagation.\n if (wrapper.scrollHeight === wrapper.offsetHeight) {\n stop(evnt);\n }\n // When dragging a scrollable panel,\n // that is fully scrolled up (or down).\n // It will not trigger the scroll event when dragging down (or up) (because you can't scroll up (or down)),\n // so we need to match the dragging direction with the scroll position before preventDefault and stopPropagation,\n // otherwise the panel would not scroll at all in any direction.\n else if (\n // When scrolled up and dragging down\n (wrapper.scrollTop == 0 && touchDir.get() == 'down') ||\n // When scrolled down and dragging up\n (wrapper.scrollHeight ==\n wrapper.scrollTop + wrapper.offsetHeight &&\n touchDir.get() == 'up')) {\n stop(evnt);\n }\n // When dragging anything other than a panel.\n }\n else {\n stop(evnt);\n }\n }, {\n // Make sure to tell the browser the event can be prevented.\n passive: false,\n });\n // Some small additional improvements\n //\tScroll the current opened panel to the top when opening the menu.\n this.bind('open:start', function () {\n var panel = DOM.children(_this.node.pnls, '.mm-panel_opened')[0];\n if (panel) {\n panel.scrollTop = 0;\n }\n });\n //\tFix issue after device rotation change.\n window.addEventListener('orientationchange', function (evnt) {\n var panel = DOM.children(_this.node.pnls, '.mm-panel_opened')[0];\n if (panel) {\n panel.scrollTop = 0;\n //\tApparently, changing the overflow-scrolling property triggers some event :)\n panel.style['-webkit-overflow-scrolling'] = 'auto';\n panel.style['-webkit-overflow-scrolling'] = 'touch';\n }\n });\n}\n","var opts = {\n height: 'default'\n};\nexport default opts;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean' && options) {\n options = {\n height: 'auto'\n };\n }\n if (typeof options == 'string') {\n options = {\n height: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n;\n","import Mmenu from './../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport { extend } from '../../_modules/helpers';\n//\tAdd the options.\nMmenu.options.autoHeight = options;\nexport default function () {\n var _this = this;\n var options = extendShorthandOptions(this.opts.autoHeight);\n this.opts.autoHeight = extend(options, Mmenu.options.autoHeight);\n if (options.height != 'auto' && options.height != 'highest') {\n return;\n }\n var setHeight = (function () {\n var getCurrent = function () {\n var panel = DOM.children(_this.node.pnls, '.mm-panel_opened')[0];\n if (panel) {\n panel = measurablePanel(panel);\n }\n //\tFallback, just to be sure we have a panel.\n if (!panel) {\n panel = DOM.children(_this.node.pnls, '.mm-panel')[0];\n }\n return panel.scrollHeight;\n };\n var getHighest = function () {\n var highest = 0;\n DOM.children(_this.node.pnls, '.mm-panel').forEach(function (panel) {\n panel = measurablePanel(panel);\n highest = Math.max(highest, panel.scrollHeight);\n });\n return highest;\n };\n var measurablePanel = function (panel) {\n //\tIf it's a vertically expanding panel...\n if (panel.parentElement.matches('.mm-listitem_vertical')) {\n //\t...find the first parent panel that isn't.\n panel = DOM.parents(panel, '.mm-panel').filter(function (panel) {\n return !panel.parentElement.matches('.mm-listitem_vertical');\n })[0];\n }\n return panel;\n };\n return function () {\n if (_this.opts.offCanvas && !_this.vars.opened) {\n return;\n }\n var _hgh = 0;\n var _dif = _this.node.menu.offsetHeight - _this.node.pnls.offsetHeight;\n //\tThe \"measuring\" classname undoes some CSS to be able to measure the height.\n _this.node.menu.classList.add('mm-menu_autoheight-measuring');\n //\tMeasure the height.\n if (options.height == 'auto') {\n _hgh = getCurrent();\n }\n else if (options.height == 'highest') {\n _hgh = getHighest();\n }\n //\tSet the height.\n _this.node.menu.style.height = _hgh + _dif + 'px';\n //\tRemove the \"measuring\" classname.\n _this.node.menu.classList.remove('mm-menu_autoheight-measuring');\n };\n })();\n //\tAdd the autoheight class to the menu.\n this.bind('initMenu:after', function () {\n _this.node.menu.classList.add('mm-menu_autoheight');\n });\n if (this.opts.offCanvas) {\n //\tMeasure the height when opening the off-canvas menu.\n this.bind('open:start', setHeight);\n }\n if (options.height == 'highest') {\n //\tMeasure the height when initiating panels.\n this.bind('initPanels:after', setHeight);\n }\n if (options.height == 'auto') {\n //\tMeasure the height when updating listviews.\n this.bind('updateListview', setHeight);\n //\tMeasure the height when opening a panel.\n this.bind('openPanel:start', setHeight);\n }\n}\n","var options = {\n close: false,\n open: false\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n close: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n;\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport { extend } from '../../_modules/helpers';\n//\tAdd the options.\nMmenu.options.backButton = options;\nexport default function () {\n var _this = this;\n if (!this.opts.offCanvas) {\n return;\n }\n var options = extendShorthandOptions(this.opts.backButton);\n this.opts.backButton = extend(options, Mmenu.options.backButton);\n var _menu = '#' + this.node.menu.id;\n //\tClose menu\n if (options.close) {\n var states = [];\n var setStates = function () {\n states = [_menu];\n DOM.children(_this.node.pnls, '.mm-panel_opened, .mm-panel_opened-parent').forEach(function (panel) {\n states.push('#' + panel.id);\n });\n };\n this.bind('open:finish', function () {\n history.pushState(null, document.title, _menu);\n });\n this.bind('open:finish', setStates);\n this.bind('openPanel:finish', setStates);\n this.bind('close:finish', function () {\n states = [];\n history.back();\n history.pushState(null, document.title, location.pathname + location.search);\n });\n window.addEventListener('popstate', function (evnt) {\n if (_this.vars.opened) {\n if (states.length) {\n states = states.slice(0, -1);\n var hash = states[states.length - 1];\n if (hash == _menu) {\n _this.close();\n }\n else {\n _this.openPanel(_this.node.menu.querySelector(hash));\n history.pushState(null, document.title, _menu);\n }\n }\n }\n });\n }\n if (options.open) {\n window.addEventListener('popstate', function (evnt) {\n if (!_this.vars.opened && location.hash == _menu) {\n _this.open();\n }\n });\n }\n}\n","var options = {\n add: false,\n visible: {\n min: 1,\n max: 3\n }\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n add: options\n };\n }\n if (typeof options == 'number') {\n options = {\n add: true,\n visible: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n if (typeof options.visible == 'number') {\n options.visible = {\n min: options.visible,\n max: options.visible\n };\n }\n return options;\n}\n;\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport { extend } from '../../_modules/helpers';\n//\tAdd the options.\nMmenu.options.columns = options;\nexport default function () {\n var _this = this;\n var options = extendShorthandOptions(this.opts.columns);\n this.opts.columns = extend(options, Mmenu.options.columns);\n //\tAdd the columns\n if (options.add) {\n options.visible.min = Math.max(1, Math.min(6, options.visible.min));\n options.visible.max = Math.max(options.visible.min, Math.min(6, options.visible.max));\n /** Columns related clasnames for the menu. */\n var colm = [];\n /** Columns related clasnames for the panels. */\n var colp = [];\n /** Classnames to remove from panels in favor of showing columns. */\n var rmvc = [\n 'mm-panel_opened',\n 'mm-panel_opened-parent',\n 'mm-panel_highest',\n ];\n for (var i = 0; i <= options.visible.max; i++) {\n colm.push('mm-menu_columns-' + i);\n colp.push('mm-panel_columns-' + i);\n }\n rmvc.push.apply(rmvc, colp);\n //\tClose all later opened panels\n this.bind('openPanel:before', function (panel) {\n /** The parent panel. */\n var parent;\n if (panel) {\n parent = panel['mmParent'];\n }\n if (!parent) {\n return;\n }\n if (parent.classList.contains('mm-listitem_vertical')) {\n return;\n }\n parent = parent.closest('.mm-panel');\n if (!parent) {\n return;\n }\n var classname = parent.className;\n if (!classname.length) {\n return;\n }\n classname = classname.split('mm-panel_columns-')[1];\n if (!classname) {\n return;\n }\n var colnr = parseInt(classname.split(' ')[0], 10) + 1;\n while (colnr > 0) {\n panel = DOM.children(_this.node.pnls, '.mm-panel_columns-' + colnr)[0];\n if (panel) {\n colnr++;\n panel.classList.add('mm-hidden');\n // IE11:\n rmvc.forEach(function (classname) {\n panel.classList.remove(classname);\n });\n // Better browsers:\n // panel.classList.remove(...rmvc);\n }\n else {\n colnr = -1;\n break;\n }\n }\n });\n this.bind('openPanel:start', function (panel) {\n if (panel) {\n /** The parent panel. */\n var parent_1 = panel['mmParent'];\n if (parent_1 &&\n parent_1.classList.contains('mm-listitem_vertical')) {\n return;\n }\n }\n var columns = DOM.children(_this.node.pnls, '.mm-panel_opened-parent').length;\n if (!panel.matches('.mm-panel_opened-parent')) {\n columns++;\n }\n columns = Math.min(options.visible.max, Math.max(options.visible.min, columns));\n // IE11:\n colm.forEach(function (classname) {\n _this.node.menu.classList.remove(classname);\n });\n // Better browsers:\n // this.node.menu.classList.remove(...colm);\n _this.node.menu.classList.add('mm-menu_columns-' + columns);\n var panels = [];\n DOM.children(_this.node.pnls, '.mm-panel').forEach(function (panel) {\n // IE11:\n colp.forEach(function (classname) {\n panel.classList.remove(classname);\n });\n // Better browsers:\n // panel.classList.remove(...colp);\n if (panel.matches('.mm-panel_opened-parent')) {\n panels.push(panel);\n }\n });\n panels.push(panel);\n panels.slice(-options.visible.max).forEach(function (panel, p) {\n panel.classList.add('mm-panel_columns-' + p);\n });\n });\n }\n}\n","var options = {\n add: false,\n addTo: 'panels',\n count: false\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n add: options,\n addTo: 'panels',\n count: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n if (options.addTo == 'panels') {\n options.addTo = '.mm-listview';\n }\n return options;\n}\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport { extend } from '../../_modules/helpers';\n//\tAdd the options.\nMmenu.options.counters = options;\n//\tAdd the classnames.\nMmenu.configs.classNames.counters = {\n counter: 'Counter',\n};\nexport default function () {\n var _this = this;\n var options = extendShorthandOptions(this.opts.counters);\n this.opts.counters = extend(options, Mmenu.options.counters);\n //\tRefactor counter class\n this.bind('initListview:after', function (listview) {\n var cntrclss = _this.conf.classNames.counters.counter, counters = DOM.find(listview, '.' + cntrclss);\n counters.forEach(function (counter) {\n DOM.reClass(counter, cntrclss, 'mm-counter');\n });\n });\n //\tAdd the counters after a listview is initiated.\n if (options.add) {\n this.bind('initListview:after', function (listview) {\n if (!listview.matches(options.addTo)) {\n return;\n }\n var parent = listview.closest('.mm-panel')['mmParent'];\n if (parent) {\n //\tCheck if no counter already excists.\n if (!DOM.find(parent, '.mm-counter').length) {\n var btn = DOM.children(parent, '.mm-btn')[0];\n if (btn) {\n btn.prepend(DOM.create('span.mm-counter'));\n }\n }\n }\n });\n }\n if (options.count) {\n var count = function (listview) {\n var panels = listview\n ? [listview.closest('.mm-panel')]\n : DOM.children(_this.node.pnls, '.mm-panel');\n panels.forEach(function (panel) {\n var parent = panel['mmParent'];\n if (!parent) {\n return;\n }\n var counter = DOM.find(parent, '.mm-counter')[0];\n if (!counter) {\n return;\n }\n var listitems = [];\n DOM.children(panel, '.mm-listview').forEach(function (listview) {\n listitems.push.apply(listitems, DOM.children(listview));\n });\n counter.innerHTML = DOM.filterLI(listitems).length.toString();\n });\n };\n this.bind('initListview:after', count);\n this.bind('updateListview', count);\n }\n}\n","var options = {\n add: false,\n addTo: 'panels'\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n add: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n if (options.addTo == 'panels') {\n options.addTo = '.mm-listview';\n }\n return options;\n}\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport { extend } from '../../_modules/helpers';\n//\tAdd the options.\nMmenu.options.dividers = options;\n// Add the classnames.\nMmenu.configs.classNames.divider = 'Divider';\nexport default function () {\n var _this = this;\n var options = extendShorthandOptions(this.opts.dividers);\n this.opts.dividers = extend(options, Mmenu.options.dividers);\n //\tRefactor divider classname\n this.bind('initListview:after', function (listview) {\n DOM.children(listview).forEach(function (listitem) {\n DOM.reClass(listitem, _this.conf.classNames.divider, 'mm-divider');\n if (listitem.matches('.mm-divider')) {\n listitem.classList.remove('mm-listitem');\n }\n });\n });\n //\tAdd dividers\n if (options.add) {\n this.bind('initListview:after', function (listview) {\n if (!listview.matches(options.addTo)) {\n return;\n }\n DOM.find(listview, '.mm-divider').forEach(function (divider) {\n divider.remove();\n });\n var lastletter = '', listitems = DOM.children(listview);\n DOM.filterLI(listitems).forEach(function (listitem) {\n var letter = DOM.children(listitem, '.mm-listitem__text')[0]\n .textContent.trim()\n .toLowerCase()[0];\n if (letter.length && letter != lastletter) {\n lastletter = letter;\n var divider = DOM.create('li.mm-divider');\n divider.textContent = letter;\n listview.insertBefore(divider, listitem);\n }\n });\n });\n }\n}\n","var options = {\n open: false,\n node: null\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n open: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n","/** Whether or not touch gestures are supported by the browser. */\nexport var touch = 'ontouchstart' in window ||\n (navigator.msMaxTouchPoints ? true : false) ||\n false;\n","/** How far from the sides the gesture can start. */\nexport var area = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n};\n/** Tresholds for gestures. */\nexport var treshold = {\n start: 15,\n swipe: 15\n};\n","/** Names of the possible directions. */\nexport var directionNames = {\n x: ['Right', 'Left'],\n y: ['Down', 'Up']\n};\n/** States for the gesture. */\nexport var state = {\n inactive: 0,\n watching: 1,\n dragging: 2\n};\n","/**\n * Calculate a distance from a percentage.\n * @param {string|number} position The percentage (e.g. \"75%\").\n * @param {number} size The available width or height in pixels.\n * @return {number} The calculated distance.\n */\nexport var percentage2number = function (position, size) {\n if (typeof position == 'string') {\n if (position.slice(-1) == '%') {\n position = parseInt(position.slice(0, -1), 10);\n position = size * (position / 100);\n }\n }\n return position;\n};\n","import * as support from './_support';\nimport * as options from './_defaults';\nimport * as settings from './_settings';\nimport { percentage2number } from './_helpers';\nimport { extend } from '../helpers';\nvar DragEvents = /** @class */ (function () {\n /**\n * Create the gestures.\n * @param {HTMLElement} surface The surface for the gesture.\n * @param {object} area Restriction where on the surface the gesture can be started.\n * @param {object} treshold Treshold for the gestures.\n */\n function DragEvents(surface, area, treshold) {\n this.surface = surface;\n this.area = extend(area, options.area);\n this.treshold = extend(treshold, options.treshold);\n //\tSet the mouse/touch events.\n if (!this.surface['mmHasDragEvents']) {\n this.surface.addEventListener(support.touch ? 'touchstart' : 'mousedown', this.start.bind(this));\n this.surface.addEventListener(support.touch ? 'touchend' : 'mouseup', this.stop.bind(this));\n this.surface.addEventListener(support.touch ? 'touchleave' : 'mouseleave', this.stop.bind(this));\n this.surface.addEventListener(support.touch ? 'touchmove' : 'mousemove', this.move.bind(this));\n }\n this.surface['mmHasDragEvents'] = true;\n }\n /**\n * Starting the touch gesture.\n * @param {Event} event The touch event.\n */\n DragEvents.prototype.start = function (event) {\n this.currentPosition = {\n x: event.touches ? event.touches[0].pageX : event.pageX || 0,\n y: event.touches ? event.touches[0].pageY : event.pageY || 0\n };\n /** The widht of the surface. */\n var width = this.surface.clientWidth;\n /** The height of the surface. */\n var height = this.surface.clientHeight;\n // Check if the gesture started below the area.top.\n var top = percentage2number(this.area.top, height);\n if (typeof top == 'number') {\n if (this.currentPosition.y < top) {\n return;\n }\n }\n // Check if the gesture started before the area.right.\n var right = percentage2number(this.area.right, width);\n if (typeof right == 'number') {\n right = width - right;\n if (this.currentPosition.x > right) {\n return;\n }\n }\n // Check if the gesture started above the area.bottom.\n var bottom = percentage2number(this.area.bottom, height);\n if (typeof bottom == 'number') {\n bottom = height - bottom;\n if (this.currentPosition.y > bottom) {\n return;\n }\n }\n // Check if the gesture started after the area.left.\n var left = percentage2number(this.area.left, width);\n if (typeof left == 'number') {\n if (this.currentPosition.x < left) {\n return;\n }\n }\n //\tStore the start x- and y-position.\n this.startPosition = {\n x: this.currentPosition.x,\n y: this.currentPosition.y\n };\n //\tSet the state of the gesture to \"watching\".\n this.state = settings.state.watching;\n };\n /**\n * Stopping the touch gesture.\n * @param {Event} event The touch event.\n */\n DragEvents.prototype.stop = function (event) {\n //\tDispatch the \"dragEnd\" events.\n if (this.state == settings.state.dragging) {\n /** The direction. */\n var dragDirection = this._dragDirection();\n /** The event information. */\n var detail = this._eventDetail(dragDirection);\n this._dispatchEvents('drag*End', detail);\n //\tDispatch the \"swipe\" events.\n if (Math.abs(this.movement[this.axis]) > this.treshold.swipe) {\n /** The direction. */\n var swipeDirection = this._swipeDirection();\n detail.direction = swipeDirection;\n this._dispatchEvents('swipe*', detail);\n }\n }\n //\tSet the state of the gesture to \"inactive\".\n this.state = settings.state.inactive;\n };\n /**\n * Doing the touch gesture.\n * @param {Event} event The touch event.\n */\n DragEvents.prototype.move = function (event) {\n switch (this.state) {\n case settings.state.watching:\n case settings.state.dragging:\n var position = {\n x: event.changedTouches\n ? event.touches[0].pageX\n : event.pageX || 0,\n y: event.changedTouches\n ? event.touches[0].pageY\n : event.pageY || 0\n };\n this.movement = {\n x: position.x - this.currentPosition.x,\n y: position.y - this.currentPosition.y\n };\n this.distance = {\n x: position.x - this.startPosition.x,\n y: position.y - this.startPosition.y\n };\n this.currentPosition = {\n x: position.x,\n y: position.y\n };\n this.axis =\n Math.abs(this.distance.x) > Math.abs(this.distance.y)\n ? 'x'\n : 'y';\n /** The direction. */\n var dragDirection = this._dragDirection();\n /** The event information. */\n var detail = this._eventDetail(dragDirection);\n //\tWatching for the gesture to go past the treshold.\n if (this.state == settings.state.watching) {\n if (Math.abs(this.distance[this.axis]) > this.treshold.start) {\n this._dispatchEvents('drag*Start', detail);\n //\tSet the state of the gesture to \"inactive\".\n this.state = settings.state.dragging;\n }\n }\n //\tDispatch the \"drag\" events.\n if (this.state == settings.state.dragging) {\n this._dispatchEvents('drag*Move', detail);\n }\n break;\n }\n };\n /**\n * Get the event details.\n * @param {string} direction Direction for the event (up, right, down, left).\n * @return {object} The event details.\n */\n DragEvents.prototype._eventDetail = function (direction) {\n var distX = this.distance.x;\n var distY = this.distance.y;\n if (this.axis == 'x') {\n distX -= distX > 0 ? this.treshold.start : 0 - this.treshold.start;\n }\n if (this.axis == 'y') {\n distY -= distY > 0 ? this.treshold.start : 0 - this.treshold.start;\n }\n return {\n axis: this.axis,\n direction: direction,\n movementX: this.movement.x,\n movementY: this.movement.y,\n distanceX: distX,\n distanceY: distY\n };\n };\n /**\n * Dispatch the events\n * @param {string} eventName The name for the events to dispatch.\n * @param {object} detail The event details.\n */\n DragEvents.prototype._dispatchEvents = function (eventName, detail) {\n /** General event, e.g. \"drag\" */\n var event = new CustomEvent(eventName.replace('*', ''), { detail: detail });\n this.surface.dispatchEvent(event);\n /** Axis event, e.g. \"dragX\" */\n var axis = new CustomEvent(eventName.replace('*', this.axis.toUpperCase()), { detail: detail });\n this.surface.dispatchEvent(axis);\n /** Direction event, e.g. \"dragLeft\" */\n var direction = new CustomEvent(eventName.replace('*', detail.direction), {\n detail: detail\n });\n this.surface.dispatchEvent(direction);\n };\n /**\n * Get the dragging direction.\n * @return {string} The direction in which the user is dragging.\n */\n DragEvents.prototype._dragDirection = function () {\n return settings.directionNames[this.axis][this.distance[this.axis] > 0 ? 0 : 1];\n };\n /**\n * Get the dragging direction.\n * @return {string} The direction in which the user is dragging.\n */\n DragEvents.prototype._swipeDirection = function () {\n return settings.directionNames[this.axis][this.movement[this.axis] > 0 ? 0 : 1];\n };\n return DragEvents;\n}());\nexport default DragEvents;\n","import DragEvents from '../../_modules/dragevents/index';\nimport * as DOM from '../../_modules/dom';\nimport * as events from '../../_modules/eventlisteners';\nimport * as media from '../../_modules/matchmedia';\n/** Instance of the DragEvents class. */\nvar dragInstance = null;\n/** THe node that can be dragged. */\nvar dragNode = null;\n/** How far the page (or menu) can be dragged. */\nvar maxDistance = 0;\nexport default function (page) {\n var _this = this;\n /** Variables that vary for each menu position (top, right, bottom, left. front, back). */\n var vars = {};\n /** Whether or not the page or menu is actually being moved. */\n var moving = false;\n /**\n * Add the dragging events.\n */\n var addEvents = function () {\n if (dragNode) {\n // Prepare the page or menu to be moved.\n events.on(dragNode, 'dragStart', function (evnt) {\n if (evnt['detail'].direction == vars.direction) {\n moving = true;\n // Class prevents interaction with the page.\n _this.node.wrpr.classList.add('mm-wrapper_dragging');\n // Prepare the menu to be opened.\n _this._openSetup();\n _this.trigger('open:start');\n // Get the maximum distance to move out the page or menu.\n maxDistance = _this.node.menu[vars.axis == 'x' ? 'clientWidth' : 'clientHeight'];\n }\n });\n // Move the page or menu when dragging.\n events.on(dragNode, 'dragMove', function (evnt) {\n if (evnt['detail'].axis == vars.axis) {\n if (moving) {\n var distance = evnt['detail']['distance' + vars.axis.toUpperCase()];\n switch (vars.position) {\n case 'right':\n case 'bottom':\n distance = Math.min(Math.max(distance, -maxDistance), 0);\n break;\n default:\n distance = Math.max(Math.min(distance, maxDistance), 0);\n }\n // Deviate for position front (the menu starts out of view).\n if (vars.zposition == 'front') {\n switch (vars.position) {\n case 'right':\n case 'bottom':\n distance += maxDistance;\n break;\n default:\n distance -= maxDistance;\n break;\n }\n }\n vars.slideOutNodes.forEach(function (node) {\n node.style['transform'] =\n 'translate' +\n vars.axis.toUpperCase() +\n '(' +\n distance +\n 'px)';\n });\n }\n }\n });\n // Stop the page or menu from being moved.\n events.on(dragNode, 'dragEnd', function (evnt) {\n if (evnt['detail'].axis == vars.axis) {\n if (moving) {\n moving = false;\n _this.node.wrpr.classList.remove('mm-wrapper_dragging');\n vars.slideOutNodes.forEach(function (node) {\n node.style['transform'] = '';\n });\n // Determine if the menu should open or close.\n var open_1 = Math.abs(evnt['detail']['distance' + vars.axis.toUpperCase()]) >=\n maxDistance * 0.75;\n if (!open_1) {\n var movement = evnt['detail']['movement' + vars.axis.toUpperCase()];\n switch (vars.position) {\n case 'right':\n case 'bottom':\n open_1 = movement <= 0;\n break;\n default:\n open_1 = movement >= 0;\n break;\n }\n }\n if (open_1) {\n _this._openStart();\n }\n else {\n _this.close();\n }\n }\n }\n });\n }\n };\n /**\n * Remove the dragging events.\n */\n var removeEvents = function () {\n if (dragNode) {\n events.off(dragNode, 'dragStart');\n events.off(dragNode, 'dragMove');\n events.off(dragNode, 'dragEnd');\n }\n };\n var addMatchMedia = function () {\n var queries = Object.keys(_this.opts.extensions);\n if (queries.length) {\n // A media query that'll match if any of the other media query matches:\n // set the defaults if it doesn't match.\n media.add(queries.join(', '), function () { }, function () {\n vars = getPositionVars(vars, [], _this.node.menu);\n });\n // The other media queries.\n queries.forEach(function (query) {\n media.add(query, function () {\n vars = getPositionVars(vars, _this.opts.extensions[query], _this.node.menu);\n }, function () { });\n });\n // No extensions, just use the defaults.\n }\n else {\n vars = getPositionVars(vars, [], _this.node.menu);\n }\n };\n // Remove events from previous \"page\"\n removeEvents();\n // Store new \"page\"\n dragNode = page;\n // Initialize the drag events.\n dragInstance = new DragEvents(dragNode);\n addMatchMedia();\n addMatchMedia = function () { };\n addEvents();\n}\nvar getPositionVars = function (vars, extensions, menu) {\n // Default position and z-position.\n vars.position = 'left';\n vars.zposition = 'back';\n // Find position.\n ['right', 'top', 'bottom'].forEach(function (pos) {\n if (extensions.indexOf('position-' + pos) > -1) {\n vars.position = pos;\n }\n });\n // Find z-position.\n ['front', 'top', 'bottom'].forEach(function (pos) {\n if (extensions.indexOf('position-' + pos) > -1) {\n vars.zposition = 'front';\n }\n });\n // Set the area where the dragging can start.\n dragInstance.area = {\n top: vars.position == 'bottom' ? '75%' : 0,\n right: vars.position == 'left' ? '75%' : 0,\n bottom: vars.position == 'top' ? '75%' : 0,\n left: vars.position == 'right' ? '75%' : 0\n };\n // What side of the menu to measure (width or height).\n // What axis to drag the menu along (x or y).\n switch (vars.position) {\n case 'top':\n case 'bottom':\n vars.axis = 'y';\n break;\n default:\n vars.axis = 'x';\n }\n // What direction to drag in.\n switch (vars.position) {\n case 'top':\n vars.direction = 'Down';\n break;\n case 'right':\n vars.direction = 'Left';\n break;\n case 'bottom':\n vars.direction = 'Up';\n break;\n default:\n vars.direction = 'Right';\n }\n // What nodes to slide out while dragging.\n switch (vars.zposition) {\n case 'front':\n vars.slideOutNodes = [menu];\n break;\n default:\n vars.slideOutNodes = DOM.find(document.body, '.mm-slideout');\n }\n return vars;\n};\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport dragOpen from './_drag.open';\nimport { extend } from '../../_modules/helpers';\n//\tAdd the options and configs.\nMmenu.options.drag = options;\nexport default function () {\n var _this = this;\n if (!this.opts.offCanvas) {\n return;\n }\n var options = extendShorthandOptions(this.opts.drag);\n this.opts.drag = extend(options, Mmenu.options.drag);\n //\tDrag open the menu\n if (options.open) {\n this.bind('setPage:after', function (page) {\n dragOpen.call(_this, options.node || page);\n });\n }\n}\n","var options = {\n drop: false,\n fitViewport: true,\n event: 'click',\n position: {},\n tip: true\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean' && options) {\n options = {\n drop: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n if (typeof options.position == 'string') {\n options.position = {\n of: options.position\n };\n }\n return options;\n}\n;\n","var configs = {\n offset: {\n button: {\n x: -5,\n y: 5\n },\n viewport: {\n x: 20,\n y: 20\n }\n },\n height: {\n max: 880\n },\n width: {\n max: 440\n }\n};\nexport default configs;\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport configs from './_configs';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport { extend, originalId } from '../../_modules/helpers';\n//\tAdd the options and configs.\nMmenu.options.dropdown = options;\nMmenu.configs.dropdown = configs;\nexport default function () {\n var _this = this;\n if (!this.opts.offCanvas) {\n return;\n }\n var options = extendShorthandOptions(this.opts.dropdown);\n this.opts.dropdown = extend(options, Mmenu.options.dropdown);\n var configs = this.conf.dropdown;\n if (!options.drop) {\n return;\n }\n var button;\n this.bind('initMenu:after', function () {\n _this.node.menu.classList.add('mm-menu_dropdown');\n if (typeof options.position.of != 'string') {\n var id = originalId(_this.node.menu.id);\n if (id) {\n options.position.of = '[href=\"#' + id + '\"]';\n }\n }\n if (typeof options.position.of != 'string') {\n return;\n }\n //\tGet the button to put the menu next to\n button = DOM.find(document.body, options.position.of)[0];\n //\tEmulate hover effect\n var events = options.event.split(' ');\n if (events.length == 1) {\n events[1] = events[0];\n }\n if (events[0] == 'hover') {\n button.addEventListener('mouseenter', function () {\n _this.open();\n }, { passive: true });\n }\n if (events[1] == 'hover') {\n _this.node.menu.addEventListener('mouseleave', function () {\n _this.close();\n }, { passive: true });\n }\n });\n //\tAdd/remove classname and style when opening/closing the menu\n this.bind('open:start', function () {\n _this.node.menu['mmStyle'] = _this.node.menu.getAttribute('style');\n _this.node.wrpr.classList.add('mm-wrapper_dropdown');\n });\n this.bind('close:finish', function () {\n _this.node.menu.setAttribute('style', _this.node.menu['mmStyle']);\n _this.node.wrpr.classList.remove('mm-wrapper_dropdown');\n });\n /**\n * Find the position (x, y) and sizes (width, height) for the menu.\n *\n * @param {string} dir The direction to measure (\"x\" for horizontal, \"y\" for vertical)\n * @param {object} obj The object where (previously) measured values are stored.\n * @return {object}\t\tThe object where measered values are stored.\n */\n var getPosition = function (dir, obj) {\n var css = obj[0], cls = obj[1];\n var _outerSize = dir == 'x' ? 'offsetWidth' : 'offsetHeight', _startPos = dir == 'x' ? 'left' : 'top', _stopPos = dir == 'x' ? 'right' : 'bottom', _size = dir == 'x' ? 'width' : 'height', _winSize = dir == 'x' ? 'innerWidth' : 'innerHeight', _maxSize = dir == 'x' ? 'maxWidth' : 'maxHeight', _position = null;\n var startPos = DOM.offset(button, _startPos), stopPos = startPos + button[_outerSize], windowSize = window[_winSize];\n /** Offset for the menu relative to the button. */\n var offs = configs.offset.button[dir] + configs.offset.viewport[dir];\n //\tPosition set in option\n if (options.position[dir]) {\n switch (options.position[dir]) {\n case 'left':\n case 'bottom':\n _position = 'after';\n break;\n case 'right':\n case 'top':\n _position = 'before';\n break;\n }\n }\n //\tPosition not set in option, find most space\n if (_position === null) {\n _position =\n startPos + (stopPos - startPos) / 2 < windowSize / 2\n ? 'after'\n : 'before';\n }\n //\tSet position and max\n var val, max;\n if (_position == 'after') {\n val = dir == 'x' ? startPos : stopPos;\n max = windowSize - (val + offs);\n css[_startPos] = val + configs.offset.button[dir] + 'px';\n css[_stopPos] = 'auto';\n if (options.tip) {\n cls.push('mm-menu_tip-' + (dir == 'x' ? 'left' : 'top'));\n }\n }\n else {\n val = dir == 'x' ? stopPos : startPos;\n max = val - offs;\n css[_stopPos] =\n 'calc( 100% - ' + (val - configs.offset.button[dir]) + 'px )';\n css[_startPos] = 'auto';\n if (options.tip) {\n cls.push('mm-menu_tip-' + (dir == 'x' ? 'right' : 'bottom'));\n }\n }\n if (options.fitViewport) {\n css[_maxSize] = Math.min(configs[_size].max, max) + 'px';\n }\n return [css, cls];\n };\n function position() {\n var _this = this;\n if (!this.vars.opened) {\n return;\n }\n this.node.menu.setAttribute('style', this.node.menu['mmStyle']);\n var obj = [{}, []];\n obj = getPosition.call(this, 'y', obj);\n obj = getPosition.call(this, 'x', obj);\n for (var s in obj[0]) {\n this.node.menu.style[s] = obj[0][s];\n }\n if (options.tip) {\n var classnames = [\n 'mm-menu_tip-left',\n 'mm-menu_tip-right',\n 'mm-menu_tip-top',\n 'mm-menu_tip-bottom'\n ];\n // IE11:\n classnames.forEach(function (classname) {\n _this.node.menu.classList.remove(classname);\n });\n obj[1].forEach(function (classname) {\n _this.node.menu.classList.add(classname);\n });\n // Better browsers:\n // this.node.menu.classList.remove(...classnames);\n // this.node.menu.classList.add(...obj[1]);\n }\n }\n this.bind('open:start', position);\n window.addEventListener('resize', function (evnt) {\n position.call(_this);\n }, { passive: true });\n if (!this.opts.offCanvas.blockUI) {\n window.addEventListener('scroll', function (evnt) {\n position.call(_this);\n }, { passive: true });\n }\n}\n","var configs = {\n insertMethod: 'append',\n insertSelector: 'body'\n};\nexport default configs;\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport configs from './_configs';\nimport * as DOM from '../../_modules/dom';\n//\tAdd the configs.\nMmenu.configs.fixedElements = configs;\n//\tAdd the classnames.\nMmenu.configs.classNames.fixedElements = {\n fixed: 'Fixed'\n};\nexport default function () {\n var _this = this;\n if (!this.opts.offCanvas) {\n return;\n }\n var configs = this.conf.fixedElements;\n var _fixd, fixed, wrppr;\n this.bind('setPage:after', function (page) {\n _fixd = _this.conf.classNames.fixedElements.fixed;\n wrppr = DOM.find(document, configs.insertSelector)[0];\n fixed = DOM.find(page, '.' + _fixd);\n fixed.forEach(function (fxd) {\n DOM.reClass(fxd, _fixd, 'mm-slideout');\n wrppr[configs.insertMethod](fxd);\n });\n });\n}\n","import { type } from '../../_modules/helpers';\nvar options = {\n use: false,\n top: [],\n bottom: [],\n position: 'left',\n type: 'default'\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (type(options) == 'array') {\n options = {\n use: true,\n top: options\n };\n }\n if (type(options) != 'object') {\n options = {};\n }\n if (typeof options.use == 'undefined') {\n options.use = true;\n }\n if (typeof options.use == 'boolean' && options.use) {\n options.use = true;\n }\n return options;\n}\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport * as media from '../../_modules/matchmedia';\nimport { type, extend } from '../../_modules/helpers';\n// Add the options.\nMmenu.options.iconbar = options;\nexport default function () {\n var _this = this;\n var options = extendShorthandOptions(this.opts.iconbar);\n this.opts.iconbar = extend(options, Mmenu.options.iconbar);\n if (!options.use) {\n return;\n }\n var iconbar;\n ['top', 'bottom'].forEach(function (position, n) {\n var ctnt = options[position];\n //\tExtend shorthand options\n if (type(ctnt) != 'array') {\n ctnt = [ctnt];\n }\n //\tCreate node\n var part = DOM.create('div.mm-iconbar__' + position);\n //\tAdd content\n for (var c = 0, l = ctnt.length; c < l; c++) {\n if (typeof ctnt[c] == 'string') {\n part.innerHTML += ctnt[c];\n }\n else {\n part.append(ctnt[c]);\n }\n }\n if (part.children.length) {\n if (!iconbar) {\n iconbar = DOM.create('div.mm-iconbar');\n }\n iconbar.append(part);\n }\n });\n //\tAdd to menu\n if (iconbar) {\n //\tAdd the iconbar.\n this.bind('initMenu:after', function () {\n _this.node.menu.prepend(iconbar);\n });\n //\tEn-/disable the iconbar.\n var classname_1 = 'mm-menu_iconbar-' + options.position;\n var enable = function () {\n _this.node.menu.classList.add(classname_1);\n Mmenu.sr_aria(iconbar, 'hidden', false);\n };\n var disable = function () {\n _this.node.menu.classList.remove(classname_1);\n Mmenu.sr_aria(iconbar, 'hidden', true);\n };\n if (typeof options.use == 'boolean') {\n this.bind('initMenu:after', enable);\n }\n else {\n media.add(options.use, enable, disable);\n }\n //\tTabs\n if (options.type == 'tabs') {\n iconbar.classList.add('mm-iconbar_tabs');\n iconbar.addEventListener('click', function (evnt) {\n var anchor = evnt.target;\n if (!anchor.matches('a')) {\n return;\n }\n if (anchor.matches('.mm-iconbar__tab_selected')) {\n evnt.stopImmediatePropagation();\n return;\n }\n try {\n var panel = _this.node.menu.querySelector(anchor.getAttribute('href'))[0];\n if (panel && panel.matches('.mm-panel')) {\n evnt.preventDefault();\n evnt.stopImmediatePropagation();\n _this.openPanel(panel, false);\n }\n }\n catch (err) { }\n });\n var selectTab_1 = function (panel) {\n DOM.find(iconbar, 'a').forEach(function (anchor) {\n anchor.classList.remove('mm-iconbar__tab_selected');\n });\n var anchor = DOM.find(iconbar, '[href=\"#' + panel.id + '\"]')[0];\n if (anchor) {\n anchor.classList.add('mm-iconbar__tab_selected');\n }\n else {\n var parent_1 = panel['mmParent'];\n if (parent_1) {\n selectTab_1(parent_1.closest('.mm-panel'));\n }\n }\n };\n this.bind('openPanel:start', selectTab_1);\n }\n }\n}\n","var options = {\n add: false,\n blockPanel: true,\n hideDivider: false,\n hideNavbar: true,\n visible: 3\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n add: options\n };\n }\n if (typeof options == 'number' ||\n typeof options == 'string') {\n options = {\n add: true,\n visible: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n;\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport { extend } from '../../_modules/helpers';\n//\tAdd the options.\nMmenu.options.iconPanels = options;\nexport default function () {\n var _this = this;\n var options = extendShorthandOptions(this.opts.iconPanels);\n this.opts.iconPanels = extend(options, Mmenu.options.iconPanels);\n var keepFirst = false;\n if (options.visible == 'first') {\n keepFirst = true;\n options.visible = 1;\n }\n options.visible = Math.min(3, Math.max(1, options.visible));\n options.visible++;\n //\tAdd the iconpanels\n if (options.add) {\n this.bind('initMenu:after', function () {\n var classnames = ['mm-menu_iconpanel'];\n if (options.hideNavbar) {\n classnames.push('mm-menu_hidenavbar');\n }\n if (options.hideDivider) {\n classnames.push('mm-menu_hidedivider');\n }\n // IE11:\n classnames.forEach(function (classname) {\n _this.node.menu.classList.add(classname);\n });\n // Better browsers:\n // this.node.menu.classList.add(...classnames);\n });\n var classnames_1 = [];\n if (!keepFirst) {\n for (var i = 0; i <= options.visible; i++) {\n classnames_1.push('mm-panel_iconpanel-' + i);\n }\n }\n this.bind('openPanel:start', function (panel) {\n var panels = DOM.children(_this.node.pnls, '.mm-panel');\n panel = panel || panels[0];\n if (panel.parentElement.matches('.mm-listitem_vertical')) {\n return;\n }\n if (keepFirst) {\n panels.forEach(function (panel, p) {\n panel.classList[p == 0 ? 'add' : 'remove']('mm-panel_iconpanel-first');\n });\n }\n else {\n //\tRemove the \"iconpanel\" classnames from all panels.\n panels.forEach(function (panel) {\n // IE11:\n classnames_1.forEach(function (classname) {\n panel.classList.remove(classname);\n });\n // Better browsers:\n // panel.classList.remove(...classnames);\n });\n //\tFilter out panels that are not opened.\n panels = panels.filter(function (panel) {\n return panel.matches('.mm-panel_opened-parent');\n });\n //\tAdd the current panel to the list.\n var panelAdded_1 = false;\n panels.forEach(function (elem) {\n if (panel === elem) {\n panelAdded_1 = true;\n }\n });\n if (!panelAdded_1) {\n panels.push(panel);\n }\n //\tRemove the \"hidden\" classname from all opened panels.\n panels.forEach(function (panel) {\n panel.classList.remove('mm-hidden');\n });\n //\tSlice the opened panels to the max visible amount.\n panels = panels.slice(-options.visible);\n //\tAdd the \"iconpanel\" classnames.\n panels.forEach(function (panel, p) {\n panel.classList.add('mm-panel_iconpanel-' + p);\n });\n }\n });\n this.bind('initPanel:after', function (panel) {\n if (options.blockPanel &&\n !panel.parentElement.matches('.mm-listitem_vertical') &&\n !DOM.children(panel, '.mm-panel__blocker')[0]) {\n var blocker = DOM.create('a.mm-panel__blocker');\n blocker.setAttribute('href', '#' + panel.closest('.mm-panel').id);\n panel.prepend(blocker);\n }\n });\n }\n}\n","var options = {\n enable: false,\n enhance: false\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean' || typeof options == 'string') {\n options = {\n enable: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n;\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport * as events from '../../_modules/eventlisteners';\nimport * as support from '../../_modules/support';\nimport { extend } from '../../_modules/helpers';\n// Add the options.\nMmenu.options.keyboardNavigation = options;\nexport default function () {\n var _this = this;\n //\tKeyboard navigation on touchscreens opens the virtual keyboard :/\n //\tLets prevent that.\n if (support.touch) {\n return;\n }\n var options = extendShorthandOptions(this.opts.keyboardNavigation);\n this.opts.keyboardNavigation = extend(options, Mmenu.options.keyboardNavigation);\n //\tEnable keyboard navigation\n if (options.enable) {\n var menuStart_1 = DOM.create('button.mm-tabstart.mm-sronly'), menuEnd_1 = DOM.create('button.mm-tabend.mm-sronly'), blockerEnd_1 = DOM.create('button.mm-tabend.mm-sronly');\n this.bind('initMenu:after', function () {\n if (options.enhance) {\n _this.node.menu.classList.add('mm-menu_keyboardfocus');\n }\n initWindow.call(_this, options.enhance);\n });\n this.bind('initOpened:before', function () {\n _this.node.menu.prepend(menuStart_1);\n _this.node.menu.append(menuEnd_1);\n DOM.children(_this.node.menu, '.mm-navbars-top, .mm-navbars-bottom').forEach(function (navbars) {\n navbars.querySelectorAll('.mm-navbar__title').forEach(function (title) {\n title.setAttribute('tabindex', '-1');\n });\n });\n });\n this.bind('initBlocker:after', function () {\n Mmenu.node.blck.append(blockerEnd_1);\n DOM.children(Mmenu.node.blck, 'a')[0].classList.add('mm-tabstart');\n });\n var focusable_1 = 'input, select, textarea, button, label, a[href]';\n var setFocus = function (panel) {\n panel =\n panel || DOM.children(_this.node.pnls, '.mm-panel_opened')[0];\n var focus = null;\n //\tFocus already is on an element in a navbar in this menu.\n var navbar = document.activeElement.closest('.mm-navbar');\n if (navbar) {\n if (navbar.closest('.mm-menu') == _this.node.menu) {\n return;\n }\n }\n //\tSet the focus to the first focusable element by default.\n if (options.enable == 'default') {\n //\tFirst visible anchor in a listview in the current panel.\n focus = DOM.find(panel, '.mm-listview a[href]:not(.mm-hidden)')[0];\n //\tFirst focusable and visible element in the current panel.\n if (!focus) {\n focus = DOM.find(panel, focusable_1 + ':not(.mm-hidden)')[0];\n }\n //\tFirst focusable and visible element in a navbar.\n if (!focus) {\n var elements_1 = [];\n DOM.children(_this.node.menu, '.mm-navbars_top, .mm-navbars_bottom').forEach(function (navbar) {\n elements_1.push.apply(elements_1, DOM.find(navbar, focusable_1 + ':not(.mm-hidden)'));\n });\n focus = elements_1[0];\n }\n }\n //\tDefault.\n if (!focus) {\n focus = DOM.children(_this.node.menu, '.mm-tabstart')[0];\n }\n if (focus) {\n focus.focus();\n }\n };\n this.bind('open:finish', setFocus);\n this.bind('openPanel:finish', setFocus);\n //\tAdd screenreader / aria support.\n this.bind('initOpened:after:sr-aria', function () {\n [_this.node.menu, Mmenu.node.blck].forEach(function (element) {\n DOM.children(element, '.mm-tabstart, .mm-tabend').forEach(function (tabber) {\n Mmenu.sr_aria(tabber, 'hidden', true);\n Mmenu.sr_role(tabber, 'presentation');\n });\n });\n });\n }\n}\n/**\n * Initialize the window for keyboard navigation.\n * @param {boolean} enhance - Whether or not to also rich enhance the keyboard behavior.\n **/\nvar initWindow = function (enhance) {\n var _this = this;\n //\tRe-enable tabbing in general\n events.off(document.body, 'keydown.tabguard');\n //\tIntersept the target when tabbing.\n events.off(document.body, 'focusin.tabguard');\n events.on(document.body, 'focusin.tabguard', function (evnt) {\n if (_this.node.wrpr.matches('.mm-wrapper_opened')) {\n var target = evnt.target;\n if (target.matches('.mm-tabend')) {\n var next = void 0;\n //\tJump from menu to blocker.\n if (target.parentElement.matches('.mm-menu')) {\n if (Mmenu.node.blck) {\n next = Mmenu.node.blck;\n }\n }\n //\tJump to opened menu.\n if (target.parentElement.matches('.mm-wrapper__blocker')) {\n next = DOM.find(document.body, '.mm-menu_offcanvas.mm-menu_opened')[0];\n }\n //\tIf no available element found, stay in current element.\n if (!next) {\n next = target.parentElement;\n }\n if (next) {\n DOM.children(next, '.mm-tabstart')[0].focus();\n }\n }\n }\n });\n //\tAdd Additional keyboard behavior.\n events.off(document.body, 'keydown.navigate');\n events.on(document.body, 'keydown.navigate', function (evnt) {\n var target = evnt.target;\n var menu = target.closest('.mm-menu');\n if (menu) {\n var api = menu['mmApi'];\n if (!target.matches('input, textarea')) {\n switch (evnt.keyCode) {\n //\tpress enter to toggle and check\n case 13:\n if (target.matches('.mm-toggle') ||\n target.matches('.mm-check')) {\n target.dispatchEvent(new Event('click'));\n }\n break;\n //\tprevent spacebar or arrows from scrolling the page\n case 32: //\tspace\n case 37: //\tleft\n case 38: //\ttop\n case 39: //\tright\n case 40: //\tbottom\n evnt.preventDefault();\n break;\n }\n }\n if (enhance) {\n //\tspecial case for input\n if (target.matches('input')) {\n switch (evnt.keyCode) {\n //\tempty searchfield with esc\n case 27:\n target.value = '';\n break;\n }\n }\n else {\n var api_1 = menu['mmApi'];\n switch (evnt.keyCode) {\n //\tclose submenu with backspace\n case 8:\n var parent_1 = DOM.find(menu, '.mm-panel_opened')[0]['mmParent'];\n if (parent_1) {\n api_1.openPanel(parent_1.closest('.mm-panel'));\n }\n break;\n //\tclose menu with esc\n case 27:\n if (menu.matches('.mm-menu_offcanvas')) {\n api_1.close();\n }\n break;\n }\n }\n }\n }\n });\n};\n","var options = {\n load: false\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n load: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n;\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport { extend } from '../../_modules/helpers';\n//\tAdd the options.\nMmenu.options.lazySubmenus = options;\nexport default function () {\n var _this = this;\n var options = extendShorthandOptions(this.opts.lazySubmenus);\n this.opts.lazySubmenus = extend(options, Mmenu.options.lazySubmenus);\n if (options.load) {\n //\tPrevent all sub panels from being initialized.\n this.bind('initPanels:before', function () {\n var panels = [];\n //\tFind all potential subpanels.\n DOM.find(_this.node.pnls, 'li').forEach(function (listitem) {\n panels.push.apply(panels, DOM.children(listitem, _this.conf.panelNodetype.join(', ')));\n });\n //\tFilter out all non-panels and add the lazyload classes\n panels\n .filter(function (panel) { return !panel.matches('.mm-listview_inset'); })\n .filter(function (panel) { return !panel.matches('.mm-nolistview'); })\n .filter(function (panel) { return !panel.matches('.mm-nopanel'); })\n .forEach(function (panel) {\n var classnames = [\n 'mm-panel_lazysubmenu',\n 'mm-nolistview',\n 'mm-nopanel',\n ];\n // IE11:\n classnames.forEach(function (classname) {\n panel.classList.add(classname);\n });\n // Better browsers:\n // panel.classList.add(...classnames);\n });\n });\n //\tre-enable the default opened panel to be initialized.\n this.bind('initPanels:before', function () {\n var panels = [];\n DOM.find(_this.node.pnls, '.' + _this.conf.classNames.selected).forEach(function (listitem) {\n panels.push.apply(panels, DOM.parents(listitem, '.mm-panel_lazysubmenu'));\n });\n if (panels.length) {\n panels.forEach(function (panel) {\n console.log(panel);\n var classnames = [\n 'mm-panel_lazysubmenu',\n 'mm-nolistview',\n 'mm-nopanel',\n ];\n // IE11:\n classnames.forEach(function (classname) {\n panel.classList.remove(classname);\n });\n // Better browsers:\n // panel.classList.remove(...classnames);\n });\n }\n });\n //\tinitPanel for current- and sub panels before openPanel\n this.bind('openPanel:before', function (panel) {\n var panels = DOM.find(panel, '.mm-panel_lazysubmenu').filter(function (panel) {\n return !panel.matches('.mm-panel_lazysubmenu .mm-panel_lazysubmenu');\n });\n if (panel.matches('.mm-panel_lazysubmenu')) {\n panels.unshift(panel);\n }\n panels.forEach(function (panel) {\n var classnames = [\n 'mm-panel_lazysubmenu',\n 'mm-nolistview',\n 'mm-nopanel',\n ];\n // IE11:\n classnames.forEach(function (classname) {\n panel.classList.remove(classname);\n });\n // Better browsers:\n // child.classList.remove(...classnames);\n _this.initPanel(panel);\n });\n });\n }\n}\n","var options = [];\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean' && options) {\n options = {};\n }\n if (typeof options != 'object') {\n options = {};\n }\n if (typeof options.content == 'undefined') {\n options.content = ['prev', 'title'];\n }\n if (!(options.content instanceof Array)) {\n options.content = [options.content];\n }\n if (typeof options.use == 'undefined') {\n options.use = true;\n }\n if (typeof options.use == 'boolean' && options.use) {\n options.use = true;\n }\n return options;\n}\n;\n","var configs = {\n breadcrumbs: {\n separator: '/',\n removeFirst: false\n }\n};\nexport default configs;\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport configs from './_configs';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport * as media from '../../_modules/matchmedia';\n// Add the options and configs.\nMmenu.options.navbars = options;\nMmenu.configs.navbars = configs;\n// Add the classnames.\nMmenu.configs.classNames.navbars = {\n panelPrev: 'Prev',\n panelTitle: 'Title'\n};\nimport breadcrumbs from './_navbar.breadcrumbs';\nimport close from './_navbar.close';\nimport prev from './_navbar.prev';\nimport searchfield from './_navbar.searchfield';\nimport title from './_navbar.title';\nNavbars.navbarContents = {\n breadcrumbs: breadcrumbs,\n close: close,\n prev: prev,\n searchfield: searchfield,\n title: title\n};\nimport tabs from './_navbar.tabs';\nNavbars.navbarTypes = {\n tabs: tabs\n};\nexport default function Navbars() {\n var _this = this;\n var navs = this.opts.navbars;\n if (typeof navs == 'undefined') {\n return;\n }\n if (!(navs instanceof Array)) {\n navs = [navs];\n }\n var navbars = {};\n if (!navs.length) {\n return;\n }\n navs.forEach(function (options) {\n options = extendShorthandOptions(options);\n if (!options.use) {\n return false;\n }\n //\tCreate the navbar element.\n var navbar = DOM.create('div.mm-navbar');\n //\tGet the position for the navbar.\n var position = options.position;\n //\tRestrict the position to either \"bottom\" or \"top\" (default).\n if (position !== 'bottom') {\n position = 'top';\n }\n //\tCreate the wrapper for the navbar position.\n if (!navbars[position]) {\n navbars[position] = DOM.create('div.mm-navbars_' + position);\n }\n navbars[position].append(navbar);\n //\tAdd content to the navbar.\n for (var c = 0, l = options.content.length; c < l; c++) {\n var ctnt = options.content[c];\n //\tThe content is a string.\n if (typeof ctnt == 'string') {\n var func = Navbars.navbarContents[ctnt];\n //\tThe content refers to one of the navbar-presets (\"prev\", \"title\", etc).\n if (typeof func == 'function') {\n //\tCall the preset function.\n func.call(_this, navbar);\n //\tThe content is just HTML.\n }\n else {\n //\tAdd the HTML.\n // Wrap the HTML in a single node\n var node = DOM.create('span');\n node.innerHTML = ctnt;\n // If there was only a single node, use that.\n var children = DOM.children(node);\n if (children.length == 1) {\n node = children[0];\n }\n navbar.append(node);\n }\n //\tThe content is not a string, it must be an element.\n }\n else {\n navbar.append(ctnt);\n }\n }\n //\tThe type option is set.\n if (typeof options.type == 'string') {\n //\tThe function refers to one of the navbar-presets (\"tabs\").\n var func = Navbars.navbarTypes[options.type];\n if (typeof func == 'function') {\n //\tCall the preset function.\n func.call(_this, navbar);\n }\n }\n //\tEn-/disable the navbar.\n var enable = function () {\n navbar.classList.remove('mm-hidden');\n Mmenu.sr_aria(navbar, 'hidden', false);\n };\n var disable = function () {\n navbar.classList.add('mm-hidden');\n Mmenu.sr_aria(navbar, 'hidden', true);\n };\n if (typeof options.use != 'boolean') {\n media.add(options.use, enable, disable);\n }\n });\n //\tAdd to menu.\n this.bind('initMenu:after', function () {\n for (var position in navbars) {\n _this.node.menu[position == 'bottom' ? 'append' : 'prepend'](navbars[position]);\n }\n });\n}\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport * as DOM from '../../_modules/dom';\nexport default function (navbar) {\n var _this = this;\n //\tAdd content\n var breadcrumbs = DOM.create('div.mm-navbar__breadcrumbs');\n navbar.append(breadcrumbs);\n this.bind('initNavbar:after', function (panel) {\n if (panel.querySelector('.mm-navbar__breadcrumbs')) {\n return;\n }\n DOM.children(panel, '.mm-navbar')[0].classList.add('mm-hidden');\n var crumbs = [], breadcrumbs = DOM.create('span.mm-navbar__breadcrumbs'), current = panel, first = true;\n while (current) {\n current = current.closest('.mm-panel');\n if (!current.parentElement.matches('.mm-listitem_vertical')) {\n var title = DOM.find(current, '.mm-navbar__title span')[0];\n if (title) {\n var text = title.textContent;\n if (text.length) {\n crumbs.unshift(first\n ? '' + text + ''\n : '' +\n text +\n '');\n }\n }\n first = false;\n }\n current = current['mmParent'];\n }\n if (_this.conf.navbars.breadcrumbs.removeFirst) {\n crumbs.shift();\n }\n breadcrumbs.innerHTML = crumbs.join('' +\n _this.conf.navbars.breadcrumbs.separator +\n '');\n DOM.children(panel, '.mm-navbar')[0].append(breadcrumbs);\n });\n //\tUpdate for to opened panel\n this.bind('openPanel:start', function (panel) {\n var crumbs = panel.querySelector('.mm-navbar__breadcrumbs');\n breadcrumbs.innerHTML = crumbs ? crumbs.innerHTML : '';\n });\n //\tAdd screenreader / aria support\n this.bind('initNavbar:after:sr-aria', function (panel) {\n DOM.find(panel, '.mm-breadcrumbs a').forEach(function (anchor) {\n Mmenu.sr_aria(anchor, 'owns', anchor.getAttribute('href').slice(1));\n });\n });\n}\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport * as DOM from '../../_modules/dom';\nexport default function (navbar) {\n var _this = this;\n //\tAdd content\n var close = DOM.create('a.mm-btn.mm-btn_close.mm-navbar__btn');\n navbar.append(close);\n //\tUpdate to page node\n this.bind('setPage:after', function (page) {\n close.setAttribute('href', '#' + page.id);\n });\n //\tAdd screenreader / text support\n this.bind('setPage:after:sr-text', function () {\n close.innerHTML = Mmenu.sr_text(_this.i18n(_this.conf.screenReader.text.closeMenu));\n });\n}\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport * as DOM from '../../_modules/dom';\nexport default function (navbar) {\n var _this = this;\n //\tAdd content.\n var prev = DOM.create('a.mm-btn.mm-btn_prev.mm-navbar__btn');\n navbar.append(prev);\n this.bind('initNavbar:after', function (panel) {\n DOM.children(panel, '.mm-navbar')[0].classList.add('mm-hidden');\n });\n //\tUpdate to opened panel.\n var org;\n var _url, _txt;\n this.bind('openPanel:start', function (panel) {\n if (panel.parentElement.matches('.mm-listitem_vertical')) {\n return;\n }\n org = panel.querySelector('.' + _this.conf.classNames.navbars.panelPrev);\n if (!org) {\n org = panel.querySelector('.mm-navbar__btn.mm-btn_prev');\n }\n _url = org ? org.getAttribute('href') : '';\n _txt = org ? org.innerHTML : '';\n if (_url) {\n prev.setAttribute('href', _url);\n }\n else {\n prev.removeAttribute('href');\n }\n prev.classList[_url || _txt ? 'remove' : 'add']('mm-hidden');\n prev.innerHTML = _txt;\n });\n //\tAdd screenreader / aria support\n this.bind('initNavbar:after:sr-aria', function (panel) {\n Mmenu.sr_aria(panel.querySelector('.mm-navbar'), 'hidden', true);\n });\n this.bind('openPanel:start:sr-aria', function (panel) {\n Mmenu.sr_aria(prev, 'hidden', prev.matches('.mm-hidden'));\n Mmenu.sr_aria(prev, 'owns', (prev.getAttribute('href') || '').slice(1));\n });\n}\n","import * as DOM from '../../_modules/dom';\nimport { type } from '../../_modules/helpers';\nexport default function (navbar) {\n if (type(this.opts.searchfield) != 'object') {\n this.opts.searchfield = {};\n }\n var searchfield = DOM.create('div.mm-navbar__searchfield');\n navbar.append(searchfield);\n this.opts.searchfield.add = true;\n this.opts.searchfield.addTo = [searchfield];\n}\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport * as DOM from '../../_modules/dom';\nexport default function (navbar) {\n var _this = this;\n //\tAdd content to the navbar.\n var title = DOM.create('a.mm-navbar__title');\n var titleText = DOM.create('span');\n title.append(titleText);\n navbar.append(title);\n //\tUpdate the title to the opened panel.\n var _url, _txt;\n var original;\n this.bind('openPanel:start', function (panel) {\n //\tDo nothing in a vertically expanding panel.\n if (panel.parentElement.matches('.mm-listitem_vertical')) {\n return;\n }\n //\tFind the original title in the opened panel.\n original = panel.querySelector('.' + _this.conf.classNames.navbars.panelTitle);\n if (!original) {\n original = panel.querySelector('.mm-navbar__title span');\n }\n //\tGet the URL for the title.\n _url =\n original && original.closest('a')\n ? original.closest('a').getAttribute('href')\n : '';\n if (_url) {\n title.setAttribute('href', _url);\n }\n else {\n title.removeAttribute('href');\n }\n //\tGet the text for the title.\n _txt = original ? original.innerHTML : '';\n titleText.innerHTML = _txt;\n });\n //\tAdd screenreader / aria support\n var prev;\n this.bind('openPanel:start:sr-aria', function (panel) {\n if (_this.opts.screenReader.text) {\n if (!prev) {\n var navbars = DOM.children(_this.node.menu, '.mm-navbars_top, .mm-navbars_bottom');\n navbars.forEach(function (navbar) {\n var btn = navbar.querySelector('.mm-btn_prev');\n if (btn) {\n prev = btn;\n }\n });\n }\n if (prev) {\n var hidden = true;\n if (_this.opts.navbar.titleLink == 'parent') {\n hidden = !prev.matches('.mm-hidden');\n }\n Mmenu.sr_aria(title, 'hidden', hidden);\n }\n }\n });\n}\n","import * as DOM from '../../_modules/dom';\nexport default function (navbar) {\n var _this = this;\n navbar.classList.add('mm-navbar_tabs');\n navbar.parentElement.classList.add('mm-navbars_has-tabs');\n var anchors = DOM.children(navbar, 'a');\n navbar.addEventListener('click', function (evnt) {\n var anchor = evnt.target;\n if (!anchor.matches('a')) {\n return;\n }\n if (anchor.matches('.mm-navbar__tab_selected')) {\n evnt.stopImmediatePropagation();\n return;\n }\n try {\n _this.openPanel(_this.node.menu.querySelector(anchor.getAttribute('href')), false);\n evnt.stopImmediatePropagation();\n }\n catch (err) { }\n });\n function selectTab(panel) {\n anchors.forEach(function (anchor) {\n anchor.classList.remove('mm-navbar__tab_selected');\n });\n var anchor = anchors.filter(function (anchor) {\n return anchor.matches('[href=\"#' + panel.id + '\"]');\n })[0];\n if (anchor) {\n anchor.classList.add('mm-navbar__tab_selected');\n }\n else {\n var parent = panel['mmParent'];\n if (parent) {\n selectTab.call(this, parent.closest('.mm-panel'));\n }\n }\n }\n this.bind('openPanel:start', selectTab);\n}\n","var options = {\n scroll: false,\n update: false\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n scroll: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n;\n","var configs = {\n scrollOffset: 0,\n updateOffset: 50\n};\nexport default configs;\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport configs from './_configs';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport { extend } from '../../_modules/helpers';\n//\tAdd the options and configs.\nMmenu.options.pageScroll = options;\nMmenu.configs.pageScroll = configs;\nexport default function () {\n var _this = this;\n var options = extendShorthandOptions(this.opts.pageScroll);\n this.opts.pageScroll = extend(options, Mmenu.options.pageScroll);\n var configs = this.conf.pageScroll;\n /** The currently \"active\" section */\n var section;\n function scrollTo() {\n if (section) {\n // section.scrollIntoView({ behavior: 'smooth' });\n window.scrollTo({\n top: section.getBoundingClientRect().top +\n document.scrollingElement.scrollTop -\n configs.scrollOffset,\n behavior: 'smooth'\n });\n }\n section = null;\n }\n function anchorInPage(href) {\n try {\n if (href != '#' && href.slice(0, 1) == '#') {\n return Mmenu.node.page.querySelector(href);\n }\n return null;\n }\n catch (err) {\n return null;\n }\n }\n //\tScroll to section after clicking menu item.\n if (options.scroll) {\n this.bind('close:finish', function () {\n scrollTo();\n });\n }\n //\tAdd click behavior.\n //\tPrevents default behavior when clicking an anchor.\n if (this.opts.offCanvas && options.scroll) {\n this.clck.push(function (anchor, args) {\n section = null;\n //\tDon't continue if the clicked anchor is not in the menu.\n if (!args.inMenu) {\n return;\n }\n //\tDon't continue if the targeted section is not on the page.\n var href = anchor.getAttribute('href');\n section = anchorInPage(href);\n if (!section) {\n return;\n }\n //\tIf the sidebar add-on is \"expanded\"...\n if (_this.node.menu.matches('.mm-menu_sidebar-expanded') &&\n _this.node.wrpr.matches('.mm-wrapper_sidebar-expanded')) {\n //\t... scroll the page to the section.\n scrollTo();\n //\t... otherwise...\n }\n else {\n //\t... close the menu.\n return {\n close: true\n };\n }\n });\n }\n //\tUpdate selected menu item after scrolling.\n if (options.update) {\n var scts_1 = [];\n this.bind('initListview:after', function (listview) {\n var listitems = DOM.children(listview, '.mm-listitem');\n DOM.filterLIA(listitems).forEach(function (anchor) {\n var href = anchor.getAttribute('href');\n var section = anchorInPage(href);\n if (section) {\n scts_1.unshift(section);\n }\n });\n });\n var _selected_1 = -1;\n window.addEventListener('scroll', function (evnt) {\n var scrollTop = window.scrollY;\n for (var s = 0; s < scts_1.length; s++) {\n if (scts_1[s].offsetTop < scrollTop + configs.updateOffset) {\n if (_selected_1 !== s) {\n _selected_1 = s;\n var panel = DOM.children(_this.node.pnls, '.mm-panel_opened')[0];\n var listitems = DOM.find(panel, '.mm-listitem');\n var anchors = DOM.filterLIA(listitems);\n anchors = anchors.filter(function (anchor) {\n return anchor.matches('[href=\"#' + scts_1[s].id + '\"]');\n });\n if (anchors.length) {\n _this.setSelected(anchors[0].parentElement);\n }\n }\n break;\n }\n }\n });\n }\n}\n","var options = {\n add: false,\n addTo: 'panels',\n cancel: false,\n noResults: 'No results found.',\n placeholder: 'Search',\n panel: {\n add: false,\n dividers: true,\n fx: 'none',\n id: null,\n splash: null,\n title: 'Search'\n },\n search: true,\n showTextItems: false,\n showSubPanels: true\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n add: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n if (typeof options.panel == 'boolean') {\n options.panel = {\n add: options.panel\n };\n }\n if (typeof options.panel != 'object') {\n options.panel = {};\n }\n //\tExtend logical options.\n if (options.addTo == 'panel') {\n options.panel.add = true;\n }\n if (options.panel.add) {\n options.showSubPanels = false;\n if (options.panel.splash) {\n options.cancel = true;\n }\n }\n return options;\n}\n;\n","var configs = {\n clear: false,\n form: false,\n input: false,\n submit: false\n};\nexport default configs;\n","export default {\n Search: 'جستجو',\n 'No results found.': 'نتیجه‌ای یافت نشد.',\n cancel: 'انصراف'\n};\n","export default {\n Search: 'Suche',\n 'No results found.': 'Keine Ergebnisse gefunden.',\n cancel: 'beenden'\n};\n","export default {\n Search: 'Найти',\n 'No results found.': 'Ничего не найдено.',\n cancel: 'отменить'\n};\n","var __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport configs from './_configs';\nimport translate from './translations/translate';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport * as events from '../../_modules/eventlisteners';\nimport { type, extend } from '../../_modules/helpers';\n// Add the translations.\ntranslate();\n// Add the options and configs.\nMmenu.options.searchfield = options;\nMmenu.configs.searchfield = configs;\nexport default function () {\n var _this = this;\n var options = extendShorthandOptions(this.opts.searchfield);\n this.opts.searchfield = extend(options, Mmenu.options.searchfield);\n var configs = this.conf.searchfield;\n if (!options.add) {\n return;\n }\n //\tBlur searchfield\n this.bind('close:start', function () {\n DOM.find(_this.node.menu, '.mm-searchfield').forEach(function (input) {\n input.blur();\n });\n });\n this.bind('initPanel:after', function (panel) {\n var searchpanel = null;\n //\tAdd the search panel\n if (options.panel.add) {\n searchpanel = initSearchPanel.call(_this);\n }\n //\tAdd the searchfield\n var addTo = null;\n switch (options.addTo) {\n case 'panels':\n addTo = [panel];\n break;\n case 'panel':\n addTo = [searchpanel];\n break;\n default:\n if (typeof options.addTo == 'string') {\n addTo = DOM.find(_this.node.menu, options.addTo);\n }\n else if (type(options.addTo) == 'array') {\n addTo = options.addTo;\n }\n break;\n }\n addTo.forEach(function (form) {\n form = initSearchfield.call(_this, form);\n if (options.search && form) {\n initSearching.call(_this, form);\n }\n });\n //\tAdd the no-results message\n if (options.noResults) {\n initNoResultsMsg.call(_this, options.panel.add ? searchpanel : panel);\n }\n });\n //\tAdd click behavior.\n //\tPrevents default behavior when clicking an anchor\n this.clck.push(function (anchor, args) {\n if (args.inMenu) {\n if (anchor.matches('.mm-searchfield__btn')) {\n //\tClicking the clear button\n if (anchor.matches('.mm-btn_close')) {\n var form = anchor.closest('.mm-searchfield'), input = DOM.find(form, 'input')[0];\n input.value = '';\n _this.search(input);\n return true;\n }\n //\tClicking the submit button\n if (anchor.matches('.mm-btn_next')) {\n var form = anchor.closest('form');\n if (form) {\n form.submit();\n }\n return true;\n }\n }\n }\n });\n}\nvar initSearchPanel = function () {\n var options = this.opts.searchfield, configs = this.conf.searchfield;\n var searchpanel = DOM.children(this.node.pnls, '.mm-panel_search')[0];\n //\tOnly once\n if (searchpanel) {\n return searchpanel;\n }\n searchpanel = DOM.create('div.mm-panel.mm-panel_search.mm-hidden');\n if (options.panel.id) {\n searchpanel.id = options.panel.id;\n }\n if (options.panel.title) {\n searchpanel.setAttribute('data-mm-title', options.panel.title);\n // searchpanel.dataset.mmTitle = options.panel.title; // IE10 has no dataset :(\n }\n var listview = DOM.create('ul');\n searchpanel.append(listview);\n this.node.pnls.append(searchpanel);\n this.initListview(listview);\n this._initNavbar(searchpanel);\n switch (options.panel.fx) {\n case false:\n break;\n case 'none':\n searchpanel.classList.add('mm-panel_noanimation');\n break;\n default:\n searchpanel.classList.add('mm-panel_fx-' + options.panel.fx);\n break;\n }\n //\tAdd splash content\n if (options.panel.splash) {\n var splash = DOM.create('div.mm-panel__content');\n splash.innerHTML = options.panel.splash;\n searchpanel.append(splash);\n }\n searchpanel.classList.add('mm-panel');\n searchpanel.classList.add('mm-hidden');\n this.node.pnls.append(searchpanel);\n return searchpanel;\n};\nvar initSearchfield = function (wrapper) {\n var options = this.opts.searchfield, configs = this.conf.searchfield;\n //\tNo searchfield in vertical submenus\n if (wrapper.parentElement.matches('.mm-listitem_vertical')) {\n return null;\n }\n //\tOnly one searchfield per panel\n var form = DOM.find(wrapper, '.mm-searchfield')[0];\n if (form) {\n return form;\n }\n function addAttributes(element, attr) {\n if (attr) {\n for (var a in attr) {\n element.setAttribute(a, attr[a]);\n }\n }\n }\n var form = DOM.create((configs.form ? 'form' : 'div') + '.mm-searchfield'), field = DOM.create('div.mm-searchfield__input'), input = DOM.create('input');\n input.type = 'text';\n input.autocomplete = 'off';\n input.placeholder = this.i18n(options.placeholder);\n field.append(input);\n form.append(field);\n wrapper.prepend(form);\n //\tAdd attributes to the input\n addAttributes(input, configs.input);\n //\tAdd the clear button\n if (configs.clear) {\n var anchor = DOM.create('a.mm-btn.mm-btn_close.mm-searchfield__btn');\n anchor.setAttribute('href', '#');\n field.append(anchor);\n }\n //\tAdd attributes and submit to the form\n addAttributes(form, configs.form);\n if (configs.form && configs.submit && !configs.clear) {\n var anchor = DOM.create('a.mm-btn.mm-btn_next.mm-searchfield__btn');\n anchor.setAttribute('href', '#');\n field.append(anchor);\n }\n if (options.cancel) {\n var anchor = DOM.create('a.mm-searchfield__cancel');\n anchor.setAttribute('href', '#');\n anchor.textContent = this.i18n('cancel');\n form.append(anchor);\n }\n return form;\n};\nvar initSearching = function (form) {\n var _this = this;\n var options = this.opts.searchfield, configs = this.conf.searchfield;\n var data = {};\n //\tIn the searchpanel.\n if (form.closest('.mm-panel_search')) {\n data.panels = DOM.find(this.node.pnls, '.mm-panel');\n data.noresults = [form.closest('.mm-panel')];\n //\tIn a panel\n }\n else if (form.closest('.mm-panel')) {\n data.panels = [form.closest('.mm-panel')];\n data.noresults = data.panels;\n //\tNot in a panel, global\n }\n else {\n data.panels = DOM.find(this.node.pnls, '.mm-panel');\n data.noresults = [this.node.menu];\n }\n //\tFilter out search panel\n data.panels = data.panels.filter(function (panel) { return !panel.matches('.mm-panel_search'); });\n //\tFilter out vertical submenus\n data.panels = data.panels.filter(function (panel) { return !panel.parentElement.matches('.mm-listitem_vertical'); });\n // Find listitems and dividers.\n data.listitems = [];\n data.dividers = [];\n data.panels.forEach(function (panel) {\n var _a, _b;\n (_a = data.listitems).push.apply(_a, DOM.find(panel, '.mm-listitem'));\n (_b = data.dividers).push.apply(_b, DOM.find(panel, '.mm-divider'));\n });\n var searchpanel = DOM.children(this.node.pnls, '.mm-panel_search')[0], input = DOM.find(form, 'input')[0], cancel = DOM.find(form, '.mm-searchfield__cancel')[0];\n input['mmSearchfield'] = data;\n //\tOpen the splash panel when focussing the input.\n if (options.panel.add && options.panel.splash) {\n events.off(input, 'focus.splash');\n events.on(input, 'focus.splash', function (evnt) {\n _this.openPanel(searchpanel);\n });\n }\n if (options.cancel) {\n //\tShow the cancel button when focussing the input.\n events.off(input, 'focus.cancel');\n events.on(input, 'focus.cancel', function (evnt) {\n cancel.classList.add('mm-searchfield__cancel-active');\n });\n //\tClose the splash panel when clicking the cancel button.\n events.off(cancel, 'click.splash');\n events.on(cancel, 'click.splash', function (evnt) {\n evnt.preventDefault();\n cancel.classList.remove('mm-searchfield__cancel-active');\n if (searchpanel.matches('.mm-panel_opened')) {\n var parents = DOM.children(_this.node.pnls, '.mm-panel_opened-parent');\n if (parents.length) {\n _this.openPanel(parents[parents.length - 1]);\n }\n }\n });\n }\n //\tFocus the input in the searchpanel when opening the searchpanel.\n if (options.panel.add && options.addTo == 'panel') {\n this.bind('openPanel:finish', function (panel) {\n if (panel === searchpanel) {\n input.focus();\n }\n });\n }\n //\tSearch while typing.\n events.off(input, 'input.search');\n events.on(input, 'input.search', function (evnt) {\n switch (evnt.keyCode) {\n case 9: //\ttab\n case 16: //\tshift\n case 17: //\tcontrol\n case 18: //\talt\n case 37: //\tleft\n case 38: //\ttop\n case 39: //\tright\n case 40: //\tbottom\n break;\n default:\n _this.search(input);\n break;\n }\n });\n //\tSearch initially.\n this.search(input);\n};\nvar initNoResultsMsg = function (wrapper) {\n if (!wrapper) {\n return;\n }\n var options = this.opts.searchfield, configs = this.conf.searchfield;\n //\tNot in a panel\n if (!wrapper.closest('.mm-panel')) {\n wrapper = DOM.children(this.node.pnls, '.mm-panel')[0];\n }\n //\tOnly once\n if (DOM.children(wrapper, '.mm-panel__noresultsmsg').length) {\n return;\n }\n //\tAdd no-results message\n var message = DOM.create('div.mm-panel__noresultsmsg.mm-hidden');\n message.innerHTML = this.i18n(options.noResults);\n wrapper.append(message);\n};\nMmenu.prototype.search = function (input, query) {\n var _a;\n var _this = this;\n var options = this.opts.searchfield, configs = this.conf.searchfield;\n query = query || '' + input.value;\n query = query.toLowerCase().trim();\n var data = input['mmSearchfield'];\n var form = input.closest('.mm-searchfield'), buttons = DOM.find(form, '.mm-btn'), searchpanel = DOM.children(this.node.pnls, '.mm-panel_search')[0];\n /** The panels. */\n var panels = data.panels;\n /** The \"no results\" messages in a cloned array. */\n var noresults = data.noresults;\n /** The listitems in a cloned array. */\n var listitems = data.listitems;\n /** Tje dividers in a cloned array. */\n var dividers = data.dividers;\n //\tReset previous results\n listitems.forEach(function (listitem) {\n listitem.classList.remove('mm-listitem_nosubitems');\n listitem.classList.remove('mm-listitem_onlysubitems');\n listitem.classList.remove('mm-hidden');\n });\n if (searchpanel) {\n DOM.children(searchpanel, '.mm-listview')[0].innerHTML = '';\n }\n panels.forEach(function (panel) {\n panel.scrollTop = 0;\n });\n //\tSearch\n if (query.length) {\n //\tInitially hide all dividers.\n dividers.forEach(function (divider) {\n divider.classList.add('mm-hidden');\n });\n //\tHide listitems that do not match.\n listitems.forEach(function (listitem) {\n var text = DOM.children(listitem, '.mm-listitem__text')[0];\n var add = false;\n // The listitem should be shown if:\n // 1) The text matches the query and\n // 2a) The text is a open-button and\n // 2b) the option showSubPanels is set to true.\n // or 3a) The text is not an anchor and\n // 3b) the option showTextItems is set to true.\n // or 4) The text is an anchor.\n // 1\n if (text &&\n DOM.text(text)\n .toLowerCase()\n .indexOf(query) > -1) {\n // 2a\n if (text.matches('.mm-listitem__btn')) {\n // 2b\n if (options.showSubPanels) {\n add = true;\n }\n }\n // 3a\n else if (!text.matches('a')) {\n // 3b\n if (options.showTextItems) {\n add = true;\n }\n }\n // 4\n else {\n add = true;\n }\n }\n if (!add) {\n listitem.classList.add('mm-hidden');\n }\n });\n /** Whether or not the query yielded results. */\n var hasResults = listitems.filter(function (listitem) { return !listitem.matches('.mm-hidden'); }).length;\n //\tShow all mached listitems in the search panel\n if (options.panel.add) {\n //\tClone all matched listitems into the search panel\n var allitems_1 = [];\n panels.forEach(function (panel) {\n var listitems = DOM.filterLI(DOM.find(panel, '.mm-listitem'));\n listitems = listitems.filter(function (listitem) { return !listitem.matches('.mm-hidden'); });\n if (listitems.length) {\n // Add a divider to indicate in what panel the listitems were.\n if (options.panel.dividers) {\n var divider = DOM.create('li.mm-divider');\n var title = DOM.find(panel, '.mm-navbar__title')[0];\n if (title) {\n divider.innerHTML = title.innerHTML;\n allitems_1.push(divider);\n }\n }\n listitems.forEach(function (listitem) {\n allitems_1.push(listitem.cloneNode(true));\n });\n }\n });\n //\tRemove toggles and checks.\n allitems_1.forEach(function (listitem) {\n listitem\n .querySelectorAll('.mm-toggle, .mm-check')\n .forEach(function (element) {\n element.remove();\n });\n });\n //\tAdd to the search panel.\n (_a = DOM.children(searchpanel, '.mm-listview')[0]).append.apply(_a, allitems_1);\n //\tOpen the search panel.\n this.openPanel(searchpanel);\n }\n else {\n //\tAlso show listitems in sub-panels for matched listitems\n if (options.showSubPanels) {\n panels.forEach(function (panel) {\n var listitems = DOM.find(panel, '.mm-listitem');\n DOM.filterLI(listitems).forEach(function (listitem) {\n var child = listitem['mmChild'];\n if (child) {\n DOM.find(child, '.mm-listitem').forEach(function (listitem) {\n listitem.classList.remove('mm-hidden');\n });\n }\n });\n });\n }\n //\tUpdate parent for sub-panel\n // .reverse() mutates the original array, therefor we \"clone\" it first using [...panels].\n __spreadArrays(panels).reverse().forEach(function (panel, p) {\n var parent = panel['mmParent'];\n if (parent) {\n //\tThe current panel has mached listitems\n var listitems_1 = DOM.find(panel, '.mm-listitem');\n if (DOM.filterLI(listitems_1).length) {\n //\tShow parent\n if (parent.matches('.mm-hidden')) {\n parent.classList.remove('mm-hidden');\n }\n parent.classList.add('mm-listitem_onlysubitems');\n }\n else if (!input.closest('.mm-panel')) {\n if (panel.matches('.mm-panel_opened') ||\n panel.matches('.mm-panel_opened-parent')) {\n //\tCompensate the timeout for the opening animation\n setTimeout(function () {\n _this.openPanel(parent.closest('.mm-panel'));\n }, (p + 1) * (_this.conf.openingInterval * 1.5));\n }\n parent.classList.add('mm-listitem_nosubitems');\n }\n }\n });\n //\tShow parent panels of vertical submenus\n panels.forEach(function (panel) {\n var listitems = DOM.find(panel, '.mm-listitem');\n DOM.filterLI(listitems).forEach(function (listitem) {\n DOM.parents(listitem, '.mm-listitem_vertical').forEach(function (parent) {\n if (parent.matches('.mm-hidden')) {\n parent.classList.remove('mm-hidden');\n parent.classList.add('mm-listitem_onlysubitems');\n }\n });\n });\n });\n //\tShow first preceeding divider of parent\n panels.forEach(function (panel) {\n var listitems = DOM.find(panel, '.mm-listitem');\n DOM.filterLI(listitems).forEach(function (listitem) {\n var divider = DOM.prevAll(listitem, '.mm-divider')[0];\n if (divider) {\n divider.classList.remove('mm-hidden');\n }\n });\n });\n }\n //\tShow submit / clear button\n buttons.forEach(function (button) { return button.classList.remove('mm-hidden'); });\n //\tShow/hide no results message\n noresults.forEach(function (wrapper) {\n DOM.find(wrapper, '.mm-panel__noresultsmsg').forEach(function (message) {\n return message.classList[hasResults ? 'add' : 'remove']('mm-hidden');\n });\n });\n if (options.panel.add) {\n //\tHide splash\n if (options.panel.splash) {\n DOM.find(searchpanel, '.mm-panel__content').forEach(function (splash) {\n return splash.classList.add('mm-hidden');\n });\n }\n //\tRe-show original listitems when in search panel\n listitems.forEach(function (listitem) {\n return listitem.classList.remove('mm-hidden');\n });\n dividers.forEach(function (divider) { return divider.classList.remove('mm-hidden'); });\n }\n //\tDon't search\n }\n else {\n //\tShow all items\n listitems.forEach(function (listitem) { return listitem.classList.remove('mm-hidden'); });\n dividers.forEach(function (divider) { return divider.classList.remove('mm-hidden'); });\n //\tHide submit / clear button\n buttons.forEach(function (button) { return button.classList.add('mm-hidden'); });\n //\tHide no results message\n noresults.forEach(function (wrapper) {\n DOM.find(wrapper, '.mm-panel__noresultsmsg').forEach(function (message) {\n return message.classList.add('mm-hidden');\n });\n });\n if (options.panel.add) {\n //\tShow splash\n if (options.panel.splash) {\n DOM.find(searchpanel, '.mm-panel__content').forEach(function (splash) {\n return splash.classList.remove('mm-hidden');\n });\n //\tClose panel\n }\n else if (!input.closest('.mm-panel_search')) {\n var opened = DOM.children(this.node.pnls, '.mm-panel_opened-parent');\n this.openPanel(opened.slice(-1)[0]);\n }\n }\n }\n //\tUpdate for other addons\n this.trigger('updateListview');\n};\n","import { add } from '../../../_modules/i18n';\nimport nl from './nl';\nimport fa from './fa';\nimport de from './de';\nimport ru from './ru';\nexport default function () {\n add(nl, 'nl');\n add(fa, 'fa');\n add(de, 'de');\n add(ru, 'ru');\n}\n","export default {\n Search: 'Zoeken',\n 'No results found.': 'Geen resultaten gevonden.',\n cancel: 'annuleren'\n};\n","var options = {\n add: false,\n addTo: 'panels'\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n add: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n;\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport * as support from '../../_modules/support';\nimport { extend } from '../../_modules/helpers';\n// Add the options.\nMmenu.options.sectionIndexer = options;\nexport default function () {\n var _this = this;\n var options = extendShorthandOptions(this.opts.sectionIndexer);\n this.opts.sectionIndexer = extend(options, Mmenu.options.sectionIndexer);\n if (!options.add) {\n return;\n }\n this.bind('initPanels:after', function () {\n //\tAdd the indexer, only if it does not allready excists\n if (!_this.node.indx) {\n var buttons_1 = '';\n 'abcdefghijklmnopqrstuvwxyz'.split('').forEach(function (letter) {\n buttons_1 += '' + letter + '';\n });\n var indexer = DOM.create('div.mm-sectionindexer');\n indexer.innerHTML = buttons_1;\n _this.node.pnls.prepend(indexer);\n _this.node.indx = indexer;\n //\tPrevent default behavior when clicking an anchor\n _this.node.indx.addEventListener('click', function (evnt) {\n var anchor = evnt.target;\n if (anchor.matches('a')) {\n evnt.preventDefault();\n }\n });\n //\tScroll onMouseOver / onTouchStart\n var mouseOverEvent = function (evnt) {\n if (!evnt.target.matches('a')) {\n return;\n }\n var letter = evnt.target.textContent, panel = DOM.children(_this.node.pnls, '.mm-panel_opened')[0];\n var newTop = -1, oldTop = panel.scrollTop;\n panel.scrollTop = 0;\n DOM.find(panel, '.mm-divider')\n .filter(function (divider) { return !divider.matches('.mm-hidden'); })\n .forEach(function (divider) {\n if (newTop < 0 &&\n letter ==\n divider.textContent\n .trim()\n .slice(0, 1)\n .toLowerCase()) {\n newTop = divider.offsetTop;\n }\n });\n panel.scrollTop = newTop > -1 ? newTop : oldTop;\n };\n if (support.touch) {\n _this.node.indx.addEventListener('touchstart', mouseOverEvent);\n _this.node.indx.addEventListener('touchmove', mouseOverEvent);\n }\n else {\n _this.node.indx.addEventListener('mouseover', mouseOverEvent);\n }\n }\n //\tShow or hide the indexer\n _this.bind('openPanel:start', function (panel) {\n var active = DOM.find(panel, '.mm-divider').filter(function (divider) { return !divider.matches('.mm-hidden'); }).length;\n _this.node.indx.classList[active ? 'add' : 'remove']('mm-sectionindexer_active');\n });\n });\n}\n","var options = {\n current: true,\n hover: false,\n parent: false\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'boolean') {\n options = {\n hover: options,\n parent: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n return options;\n}\n;\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport { extend } from '../../_modules/helpers';\n//\tAdd the options.\nMmenu.options.setSelected = options;\nexport default function () {\n var _this = this;\n var options = extendShorthandOptions(this.opts.setSelected);\n this.opts.setSelected = extend(options, Mmenu.options.setSelected);\n //\tFind current by URL\n if (options.current == 'detect') {\n var findCurrent_1 = function (url) {\n url = url.split('?')[0].split('#')[0];\n var anchor = _this.node.menu.querySelector('a[href=\"' + url + '\"], a[href=\"' + url + '/\"]');\n if (anchor) {\n _this.setSelected(anchor.parentElement);\n }\n else {\n var arr = url.split('/').slice(0, -1);\n if (arr.length) {\n findCurrent_1(arr.join('/'));\n }\n }\n };\n this.bind('initMenu:after', function () {\n findCurrent_1.call(_this, window.location.href);\n });\n //\tRemove current selected item\n }\n else if (!options.current) {\n this.bind('initListview:after', function (listview) {\n DOM.children(listview, '.mm-listitem_selected').forEach(function (listitem) {\n listitem.classList.remove('mm-listitem_selected');\n });\n });\n }\n //\tAdd :hover effect on items\n if (options.hover) {\n this.bind('initMenu:after', function () {\n _this.node.menu.classList.add('mm-menu_selected-hover');\n });\n }\n //\tSet parent item selected for submenus\n if (options.parent) {\n this.bind('openPanel:finish', function (panel) {\n //\tRemove all\n DOM.find(_this.node.pnls, '.mm-listitem_selected-parent').forEach(function (listitem) {\n listitem.classList.remove('mm-listitem_selected-parent');\n });\n //\tMove up the DOM tree\n var parent = panel['mmParent'];\n while (parent) {\n if (!parent.matches('.mm-listitem_vertical')) {\n parent.classList.add('mm-listitem_selected-parent');\n }\n parent = parent.closest('.mm-panel');\n parent = parent['mmParent'];\n }\n });\n this.bind('initMenu:after', function () {\n _this.node.menu.classList.add('mm-menu_selected-parent');\n });\n }\n}\n","var options = {\n collapsed: {\n use: false,\n blockMenu: true,\n hideDivider: false,\n hideNavbar: true\n },\n expanded: {\n use: false,\n initial: 'open'\n }\n};\nexport default options;\n/**\n * Extend shorthand options.\n *\n * @param {object} options The options to extend.\n * @return {object}\t\t\tThe extended options.\n */\nexport function extendShorthandOptions(options) {\n if (typeof options == 'string' ||\n (typeof options == 'boolean' && options) ||\n typeof options == 'number') {\n options = {\n expanded: options\n };\n }\n if (typeof options != 'object') {\n options = {};\n }\n //\tExtend collapsed shorthand options.\n if (typeof options.collapsed == 'boolean' && options.collapsed) {\n options.collapsed = {\n use: true\n };\n }\n if (typeof options.collapsed == 'string' ||\n typeof options.collapsed == 'number') {\n options.collapsed = {\n use: options.collapsed\n };\n }\n if (typeof options.collapsed != 'object') {\n options.collapsed = {};\n }\n //\tExtend expanded shorthand options.\n if (typeof options.expanded == 'boolean' && options.expanded) {\n options.expanded = {\n use: true\n };\n }\n if (typeof options.expanded == 'string' ||\n typeof options.expanded == 'number') {\n options.expanded = {\n use: options.expanded\n };\n }\n if (typeof options.expanded != 'object') {\n options.expanded = {};\n }\n return options;\n}\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport options from './_options';\nimport { extendShorthandOptions } from './_options';\nimport * as DOM from '../../_modules/dom';\nimport * as media from '../../_modules/matchmedia';\nimport { extend } from '../../_modules/helpers';\n// Add the options.\nMmenu.options.sidebar = options;\nexport default function () {\n var _this = this;\n if (!this.opts.offCanvas) {\n return;\n }\n var options = extendShorthandOptions(this.opts.sidebar);\n this.opts.sidebar = extend(options, Mmenu.options.sidebar);\n //\tCollapsed\n if (options.collapsed.use) {\n //\tMake the menu collapsable.\n this.bind('initMenu:after', function () {\n _this.node.menu.classList.add('mm-menu_sidebar-collapsed');\n if (options.collapsed.blockMenu &&\n _this.opts.offCanvas &&\n !DOM.children(_this.node.menu, '.mm-menu__blocker')[0]) {\n var anchor = DOM.create('a.mm-menu__blocker');\n anchor.setAttribute('href', '#' + _this.node.menu.id);\n _this.node.menu.prepend(anchor);\n }\n if (options.collapsed.hideNavbar) {\n _this.node.menu.classList.add('mm-menu_hidenavbar');\n }\n if (options.collapsed.hideDivider) {\n _this.node.menu.classList.add('mm-menu_hidedivider');\n }\n });\n //\tEn-/disable the collapsed sidebar.\n var enable = function () {\n _this.node.wrpr.classList.add('mm-wrapper_sidebar-collapsed');\n };\n var disable = function () {\n _this.node.wrpr.classList.remove('mm-wrapper_sidebar-collapsed');\n };\n if (typeof options.collapsed.use == 'boolean') {\n this.bind('initMenu:after', enable);\n }\n else {\n media.add(options.collapsed.use, enable, disable);\n }\n }\n //\tExpanded\n if (options.expanded.use) {\n //\tMake the menu expandable\n this.bind('initMenu:after', function () {\n _this.node.menu.classList.add('mm-menu_sidebar-expanded');\n });\n //\tEn-/disable the expanded sidebar.\n var enable = function () {\n _this.node.wrpr.classList.add('mm-wrapper_sidebar-expanded');\n if (!_this.node.wrpr.matches('.mm-wrapper_sidebar-closed')) {\n _this.open();\n }\n };\n var disable = function () {\n _this.node.wrpr.classList.remove('mm-wrapper_sidebar-expanded');\n _this.close();\n };\n if (typeof options.expanded.use == 'boolean') {\n this.bind('initMenu:after', enable);\n }\n else {\n media.add(options.expanded.use, enable, disable);\n }\n // Manually en-/disable the expanded sidebar (open / close the menu)\n this.bind('close:start', function () {\n if (_this.node.wrpr.matches('.mm-wrapper_sidebar-expanded')) {\n _this.node.wrpr.classList.add('mm-wrapper_sidebar-closed');\n if (options.expanded.initial == 'remember') {\n window.localStorage.setItem('mmenuExpandedState', 'closed');\n }\n }\n });\n this.bind('open:start', function () {\n if (_this.node.wrpr.matches('.mm-wrapper_sidebar-expanded')) {\n _this.node.wrpr.classList.remove('mm-wrapper_sidebar-closed');\n if (options.expanded.initial == 'remember') {\n window.localStorage.setItem('mmenuExpandedState', 'open');\n }\n }\n });\n // Set the initial state\n var initialState = options.expanded.initial;\n if (options.expanded.initial == 'remember') {\n var state = window.localStorage.getItem('mmenuExpandedState');\n switch (state) {\n case 'open':\n case 'closed':\n initialState = state;\n break;\n }\n }\n if (initialState == 'closed') {\n this.bind('initMenu:after', function () {\n _this.node.wrpr.classList.add('mm-wrapper_sidebar-closed');\n });\n }\n //\tAdd click behavior.\n //\tPrevents default behavior when clicking an anchor\n this.clck.push(function (anchor, args) {\n if (args.inMenu && args.inListview) {\n if (_this.node.wrpr.matches('.mm-wrapper_sidebar-expanded')) {\n return {\n close: options.expanded.initial == 'closed'\n };\n }\n }\n });\n }\n}\n","import Mmenu from '../../core/oncanvas/mmenu.oncanvas';\nimport * as DOM from '../../_modules/dom';\n//\tAdd the classnames.\nMmenu.configs.classNames.toggles = {\n toggle: 'Toggle',\n check: 'Check'\n};\nexport default function () {\n var _this = this;\n this.bind('initPanel:after', function (panel) {\n //\tRefactor toggle classes\n DOM.find(panel, 'input').forEach(function (input) {\n DOM.reClass(input, _this.conf.classNames.toggles.toggle, 'mm-toggle');\n DOM.reClass(input, _this.conf.classNames.toggles.check, 'mm-check');\n });\n });\n}\n","/*!\n * mmenu.js\n * mmenujs.com\n *\n * Copyright (c) Fred Heusschen\n * frebsite.nl\n */\n\n//\tCore\nimport Mmenu from '../dist/core/oncanvas/mmenu.oncanvas';\n\n//\tCore add-ons\nimport offcanvas from '../dist/core/offcanvas/mmenu.offcanvas';\nimport screenReader from '../dist/core/screenreader/mmenu.screenreader';\nimport scrollBugFix from '../dist/core/scrollbugfix/mmenu.scrollbugfix';\n\n//\tAdd-ons\nimport autoHeight from '../dist/addons/autoheight/mmenu.autoheight';\nimport backButton from '../dist/addons/backbutton/mmenu.backbutton';\nimport columns from '../dist/addons/columns/mmenu.columns';\nimport counters from '../dist/addons/counters/mmenu.counters';\nimport dividers from '../dist/addons/dividers/mmenu.dividers';\nimport drag from '../dist/addons/drag/mmenu.drag';\nimport dropdown from '../dist/addons/dropdown/mmenu.dropdown';\nimport fixedElements from '../dist/addons/fixedelements/mmenu.fixedelements';\nimport iconbar from '../dist/addons/iconbar/mmenu.iconbar';\nimport iconPanels from '../dist/addons/iconpanels/mmenu.iconpanels';\nimport keyboardNavigation from '../dist/addons/keyboardnavigation/mmenu.keyboardnavigation';\nimport lazySubmenus from '../dist/addons/lazysubmenus/mmenu.lazysubmenus';\nimport navbars from '../dist/addons/navbars/mmenu.navbars';\nimport pageScroll from '../dist/addons/pagescroll/mmenu.pagescroll';\nimport searchfield from '../dist/addons/searchfield/mmenu.searchfield';\nimport sectionIndexer from '../dist/addons/sectionindexer/mmenu.sectionindexer';\nimport setSelected from '../dist/addons/setselected/mmenu.setselected';\nimport sidebar from '../dist/addons/sidebar/mmenu.sidebar';\nimport toggles from '../dist/addons/toggles/mmenu.toggles';\n\n//\tWrappers\nimport angular from '../dist/wrappers/angular/mmenu.angular';\nimport bootstrap from '../dist/wrappers/bootstrap/mmenu.bootstrap';\nimport olark from '../dist/wrappers/olark/mmenu.olark';\nimport turbolinks from '../dist/wrappers/turbolinks/mmenu.turbolinks';\nimport wordpress from '../dist/wrappers/wordpress/mmenu.wordpress';\n\nMmenu.addons = {\n //\tCore add-ons\n offcanvas,\n screenReader,\n scrollBugFix,\n\n //\tAdd-ons\n autoHeight,\n backButton,\n columns,\n counters,\n dividers,\n drag,\n dropdown,\n fixedElements,\n iconbar,\n iconPanels,\n keyboardNavigation,\n lazySubmenus,\n navbars,\n pageScroll,\n searchfield,\n sectionIndexer,\n setSelected,\n sidebar,\n toggles\n};\n\n//\tWrappers\nMmenu.wrappers = {\n angular,\n bootstrap,\n olark,\n turbolinks,\n wordpress\n};\n\n// Export module\nexport default Mmenu;\n\n//\tGlobal namespace\nif (window) {\n window.Mmenu = Mmenu;\n}\n\n//\tjQuery plugin\n(function ($) {\n if ($) {\n $.fn.mmenu = function (options, configs) {\n var $result = $();\n\n this.each(function (e, element) {\n //\tDon't proceed if the element already is a mmenu.\n if (element.mmApi) {\n return;\n }\n\n var menu = new Mmenu(element, options, configs),\n $menu = $(menu.node.menu);\n\n //\tStore the API for backward compat.\n $menu.data('mmenu', menu.API);\n\n $result = $result.add($menu);\n });\n\n return $result;\n };\n }\n})(window.jQuery || window.Zepto || null);\n","export default function () {\n this.opts.onClick = {\n close: true,\n preventDefault: false,\n setSelected: true\n };\n}\n;\n","import * as DOM from '../../_modules/dom';\nexport default function () {\n var _this = this;\n //\tCreate the menu\n if (this.node.menu.matches('.navbar-collapse')) {\n //\tNo need for cloning the menu...\n if (this.conf.offCanvas) {\n this.conf.offCanvas.clone = false;\n }\n //\t... We'll create a new menu\n var nav = DOM.create('nav'), panel = DOM.create('div');\n nav.append(panel);\n DOM.children(this.node.menu).forEach(function (child) {\n switch (true) {\n case child.matches('.navbar-nav'):\n panel.append(cloneNav(child));\n break;\n case child.matches('.dropdown-menu'):\n panel.append(cloneDropdown(child));\n break;\n case child.matches('.form-inline'):\n _this.conf.searchfield.form = {\n action: child.getAttribute('action') || null,\n method: child.getAttribute('method') || null,\n };\n _this.conf.searchfield.input = {\n name: child.querySelector('input').getAttribute('name') ||\n null,\n };\n _this.conf.searchfield.clear = false;\n _this.conf.searchfield.submit = true;\n break;\n default:\n panel.append(child.cloneNode(true));\n break;\n }\n });\n //\tSet the menu\n this.bind('initMenu:before', function () {\n document.body.prepend(nav);\n _this.node.menu = nav;\n });\n //\tHijack the toggler.\n var parent_1 = this.node.menu.parentElement;\n if (parent_1) {\n var toggler = parent_1.querySelector('.navbar-toggler');\n if (toggler) {\n toggler.removeAttribute('data-target');\n // delete toggler.dataset.target; // IE10 has no dataset :(\n toggler.removeAttribute('aria-controls');\n //\tRemove all bound events.\n toggler.outerHTML = toggler.outerHTML;\n toggler = parent_1.querySelector('.navbar-toggler');\n // Open the menu on-click.\n toggler.addEventListener('click', function (evnt) {\n evnt.preventDefault();\n evnt.stopImmediatePropagation();\n _this[_this.vars.opened ? 'close' : 'open']();\n });\n }\n }\n }\n function cloneLink(anchor) {\n var link = DOM.create(anchor.matches('a') ? 'a' : 'span');\n //\tCopy attributes\n var attr = ['href', 'title', 'target'];\n for (var a = 0; a < attr.length; a++) {\n if (anchor.getAttribute(attr[a])) {\n link.setAttribute(attr[a], anchor.getAttribute(attr[a]));\n }\n }\n //\tCopy contents\n link.innerHTML = anchor.innerHTML;\n //\tRemove Screen reader text.\n DOM.find(link, '.sr-only').forEach(function (sro) {\n sro.remove();\n });\n return link;\n }\n function cloneDropdown(dropdown) {\n var list = DOM.create('ul');\n DOM.children(dropdown).forEach(function (anchor) {\n var item = DOM.create('li');\n if (anchor.matches('.dropdown-divider')) {\n item.classList.add('Divider');\n }\n else if (anchor.matches('.dropdown-item')) {\n item.append(cloneLink(anchor));\n }\n list.append(item);\n });\n return list;\n }\n function cloneNav(nav) {\n var list = DOM.create('ul');\n DOM.find(nav, '.nav-item').forEach(function (anchor) {\n var item = DOM.create('li');\n if (anchor.matches('.active')) {\n item.classList.add('Selected');\n }\n if (!anchor.matches('.nav-link')) {\n var dropdown = DOM.children(anchor, '.dropdown-menu')[0];\n if (dropdown) {\n item.append(cloneDropdown(dropdown));\n }\n anchor = DOM.children(anchor, '.nav-link')[0];\n }\n item.prepend(cloneLink(anchor));\n list.append(item);\n });\n return list;\n }\n}\n","export default function () {\n this.conf.offCanvas.page.noSelector.push('#olark');\n}\n;\n","export default function () {\n var classnames;\n document.addEventListener('turbolinks:before-visit', function (evnt) {\n classnames = document\n .querySelector('.mm-wrapper')\n .className.split(' ')\n .filter(function (name) { return /mm-/.test(name); });\n });\n document.addEventListener('turbolinks:load', function (evnt) {\n if (typeof classnames === 'undefined') {\n return;\n }\n document.querySelector('.mm-wrapper').className = classnames;\n });\n}\n","export default function () {\n this.conf.classNames.selected = 'current-menu-item';\n var wpadminbar = document.getElementById('wpadminbar');\n if (wpadminbar) {\n wpadminbar.style.position = 'fixed';\n wpadminbar.classList.add('mm-slideout');\n }\n}\n","/*************************************************/\r\n/* Partials */\r\n/*************************************************/\r\nimport { mmenu } from \"./partials/mmenu.js\";\r\n\r\n/*************************************************/\r\n/* Init */\r\n/*************************************************/\r\n\r\nconst ready = callback => {\r\n if (document.readyState != 'loading') callback();\r\n else document.addEventListener('DOMContentLoaded', callback);\r\n}\r\n\r\nready(() => {\r\n mmenu();\r\n});\r\n","/*************************************************/\r\n/* MMENU */\r\n/*************************************************/\r\nimport Mmenu from 'mmenu-js';\r\n\r\nexport function mmenu() {\r\n let mobileMenu,\r\n mobileMenuTrigger,\r\n breakpointMaxM = 768,\r\n resizeTimer;\r\n\r\n const mobileMenuSelector = '#mobile-menu',\r\n mainContentSelector = '#mainContent';\r\n\r\n const init = function () {\r\n mobileMenu = document.querySelector(mobileMenuSelector);\r\n mobileMenuTrigger = document.querySelector('.mm-trigger');\r\n breakpointMaxM = 768;\r\n const deactivated = document.querySelectorAll('.mobile-menu__deactivated-link');\r\n\r\n const menu = new Mmenu(mobileMenuSelector, {\r\n // options\r\n 'extensions': [\r\n 'position-right',\r\n 'pagedim-black',\r\n 'border-full',\r\n 'theme-dark',\r\n 'fx-menu-slide'\r\n ]\r\n }, {\r\n // configuration\r\n offCanvas: {\r\n page: {\r\n nodetype: 'main',\r\n selector:mainContentSelector\r\n }\r\n },\r\n classNames: {\r\n selected: 'custom-mm-selected',\r\n panel: 'custom-mm-panel'\r\n }\r\n });\r\n\r\n // Init mmenu api\r\n const mmenuApi = menu.API;\r\n\r\n // Open menu\r\n mobileMenuTrigger.addEventListener('click', () => {\r\n if (mmenuApi) {\r\n mobileMenu.setAttribute('style', '');\r\n deactivated.forEach(event => {\r\n event.addEventListener('click', () => {\r\n event.nextElementSibling.click();\r\n })\r\n })\r\n mmenuApi.open();\r\n }\r\n });\r\n\r\n // Close mmenu if screen width gets over breakpointMaxM (768px)\r\n window.addEventListener('resize', e => {\r\n clearTimeout(resizeTimer);\r\n resizeTimer = setTimeout(function () {\r\n const width = document.body.clientWidth;\r\n const mmIsOpened = document.querySelector('body').classList.contains('mm-wrapper_opening');\r\n if (mmenuApi && mmIsOpened && width > breakpointMaxM) {\r\n mmenuApi.close();\r\n }\r\n }, 250);\r\n });\r\n };\r\n\r\n init();\r\n}\r\n"],"names":["global","isCallable","tryToString","TypeError","module","exports","argument","isObject","String","$forEach","STRICT_METHOD","arrayMethodIsStrict","forEach","callbackfn","this","arguments","length","undefined","bind","uncurryThis","IndexedObject","toObject","lengthOfArrayLike","arraySpeciesCreate","push","createMethod","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","$this","that","specificCreate","value","result","O","self","boundFunction","index","create","target","map","filter","some","every","find","findIndex","filterReject","fails","METHOD_NAME","method","call","isArray","isConstructor","SPECIES","wellKnownSymbol","Array","originalArray","C","constructor","prototype","arraySpeciesConstructor","toString","stringSlice","slice","it","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","Object","CORRECT_ARGUMENTS","tag","key","error","tryGet","callee","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","object","f","bitmap","enumerable","configurable","writable","defineProperty","get","document","EXISTS","createElement","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","documentCreateElement","DOMTokenListPrototype","getBuiltIn","match","version","userAgent","process","Deno","versions","v8","split","exec","aCallable","fn","apply","Function","hasOwn","FunctionPrototype","getDescriptor","getOwnPropertyDescriptor","PROPER","name","CONFIGURABLE","callBind","aFunction","namespace","V","P","func","check","Math","globalThis","window","g","hasOwnProperty","a","classof","propertyIsEnumerable","store","functionToString","inspectSource","set","has","NATIVE_WEAK_MAP","createNonEnumerableProperty","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","type","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","called","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","obj","V8_VERSION","getOwnPropertySymbols","symbol","Symbol","sham","test","IE8_DOM_DEFINE","anObject","toPropertyKey","$defineProperty","Attributes","input","pref","val","valueOf","setGlobal","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","TEMPLATE","options","unsafe","simple","noTargetGet","replace","source","join","uid","keys","SHARED","IS_PURE","mode","copyright","ceil","floor","number","toIntegerOrInfinity","min","requireObjectCoercible","isSymbol","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","id","postfix","random","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","redefine","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","e","hooks","extensions","wrappers","navbar","add","sticky","title","titleLink","onClick","close","preventDefault","setSelected","slidingSubmenus","classNames","inset","nolistview","nopanel","panel","selected","vertical","language","openingInterval","panelNodetype","transitionDuration","extend","orignl","dfault","k","variable","toLowerCase","valueOrFn","element","option","transitionend","duration","_ended","_fn","evnt","removeEventListener","addEventListener","setTimeout","uniqueId","__id","originalId","translations","text","selector","args","elem","shift","classname","querySelectorAll","children","child","matches","parents","parent","parentElement","filterLI","listitems","listitem","filterLIA","anchors","anchor","reClass","oldClass","newClass","remove","listeners","query","yes","no","fire","mqlist","m","fa","de","ru","Mmenu","menu","configs","opts","conf","_api","node","vars","hook","clck","querySelector","_deprecatedWarnings","_initWrappers","_initAddons","_initExtensions","_initHooks","_initAPI","_initMenu","_initPanels","_initOpened","_initAnchors","_loop_1","matchMedia","onchange","openPanel","animation","_this","trigger","closest","panels","pnls","current_1","parent_1","hidden","openPanelStart_1","openPanelFinish_1","closePanel","li","closeAllPanels","opened","togglePanel","h","l","API","re","w","wrpr","addon","addons","all","classnames","extension","indexOf","nodeName","append","inMenu","href","getAttribute","err","initPanel","_initPanel","children_1","listview","removeAttribute","wrapper","before","item","button","setAttribute","innerHTML","insertBefore","nextElementSibling","_initNavbar","initListview","parentListitem","parentPanel","prev","opener","titleText","textContent","i18n","prepend","lastitem","current","inListview","toExternal","c","click","offCanvas","blockUI","moveBackground","clone","insertMethod","insertSelector","page","nodetype","noSelector","ucFirst","word","charAt","toUpperCase","on","handler","evntParts","off","_openSetup","_openStart","closeAllOthers","force","clsn","body","api","pages","wrapper_1","initWindow","keyCode","initBlocker","blck","closeMenu","stopPropagation","aria","closeSubmenu","openSubmenu","toggleSubmenu","attr","fix","touch","navigator","msMaxTouchPoints","height","open","visible","max","addTo","count","counter","top","right","bottom","left","start","swipe","directionNames","x","y","percentage2number","position","size","parseInt","DragEvents","surface","area","treshold","stop","move","event","currentPosition","touches","pageX","pageY","width","clientWidth","clientHeight","startPosition","dragDirection","_dragDirection","detail","_eventDetail","_dispatchEvents","abs","movement","axis","swipeDirection","_swipeDirection","direction","changedTouches","distance","distX","distY","movementX","movementY","distanceX","distanceY","eventName","CustomEvent","dispatchEvent","dragInstance","dragNode","maxDistance","moving","addMatchMedia","queries","getPositionVars","zposition","slideOutNodes","style","open_1","pos","drop","fitViewport","tip","offset","viewport","fixed","use","blockPanel","hideDivider","hideNavbar","enable","enhance","next","focus","Event","api_1","load","breadcrumbs","separator","removeFirst","Navbars","navs","navbars","content","ctnt","navbarContents","navbarTypes","panelPrev","panelTitle","crumbs","first","unshift","screenReader","org","_url","_txt","searchfield","original","btn","tabs","stopImmediatePropagation","selectTab","scroll","update","scrollOffset","updateOffset","cancel","noResults","placeholder","dividers","fx","splash","search","showTextItems","showSubPanels","clear","form","submit","Search","__spreadArrays","s","i","il","r","j","jl","initSearchPanel","searchpanel","initSearchfield","addAttributes","field","autocomplete","initSearching","data","noresults","_a","_b","initNoResultsMsg","message","trim","buttons","scrollTop","divider","childNodes","nodeType","hasResults","allitems_1","cloneNode","reverse","p","previous","previousElementSibling","hover","collapsed","blockMenu","expanded","initial","toggle","offcanvas","extendShorthandOptions","setPage","hash","location","hide","scrollBugFix","touchDir","passive","pop","scrollHeight","offsetHeight","autoHeight","measurablePanel","setHeight","highest","_hgh","_dif","backButton","_menu","states","setStates","history","pushState","back","pathname","columns","colm","colp","rmvc","contains","className","colnr","counters","cntrclss","lastletter","letter","drag","dropdown","of","events","getPosition","dir","css","cls","_outerSize","_startPos","_stopPos","_size","_winSize","_maxSize","_position","startPos","getBoundingClientRect","stopPos","windowSize","offs","fixedElements","_fixd","wrppr","fxd","iconbar","n","part","classname_1","selectTab_1","iconPanels","keepFirst","classnames_1","panelAdded_1","blocker","keyboardNavigation","menuStart_1","menuEnd_1","blockerEnd_1","focusable_1","setFocus","activeElement","elements_1","tabber","lazySubmenus","console","log","pageScroll","section","scrollTo","scrollingElement","behavior","anchorInPage","scts_1","_selected_1","scrollY","offsetTop","blur","sectionIndexer","indx","buttons_1","indexer","mouseOverEvent","newTop","oldTop","active","findCurrent_1","url","arr","sidebar","disable","localStorage","setItem","initialState","getItem","toggles","angular","bootstrap","nav","list","cloneDropdown","cloneLink","cloneNav","action","toggler","outerHTML","link","sro","olark","turbolinks","wordpress","wpadminbar","getElementById","$","jQuery","Zepto","mmenu","$result","each","mmApi","$menu","callback","mobileMenu","mobileMenuTrigger","resizeTimer","breakpointMaxM","mobileMenuSelector","deactivated","mmenuApi","clearTimeout","mmIsOpened","init","readyState"],"sourceRoot":""}