{"version":3,"file":"js/mmenu.js","mappings":"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","sources":["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 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// import {language} from './language.js';\r\n\r\nexport function mmenu() {\r\n let mobileMenu,\r\n mobileMenuTrigger,\r\n breakpointMaxM = 1920,\r\n resizeTimer;\r\n\r\n const mobileMenuSelector = '#mobile-menu',\r\n mainContentSelector = '#mainContent',\r\n mobileMenuTriggerSelector = '.mm-trigger';\r\n\r\n const init = function () {\r\n mobileMenu = document.querySelector(mobileMenuSelector);\r\n breakpointMaxM = 768;\r\n\r\n let mobileMenuExtras;\r\n let mobileMenuNavbar;\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 'custom-width'\r\n ],\r\n hooks: {\r\n \"openPanel:before\": (panel) => {\r\n const parser = new DOMParser();\r\n const panelContent = parser.parseFromString(panel.innerHTML, \"text/html\");\r\n const mobileMenuExtraElement = panelContent.querySelector('.mobile-menu__meta-menu');\r\n const mobileMenuNavbarElement = panelContent.querySelector('.mobile-menu__navbar');\r\n const panelDOMElement = document.getElementById(panel.id);\r\n\r\n if(mobileMenuExtraElement) {\r\n mobileMenuExtras = mobileMenuExtraElement;\r\n }else if(mobileMenuExtras) {\r\n panelDOMElement.querySelector('.mm-listview').append(mobileMenuExtras);\r\n }\r\n\r\n panelDOMElement.querySelector('.mm-navbar__title').innerHTML = \"\";\r\n\r\n //Insert language selector\r\n if(!panelDOMElement.querySelector('.mm-navbar').querySelector('.language-selector')) {\r\n const languageSelector = document.querySelector('.language-selector').cloneNode(true);\r\n panelDOMElement.querySelector('.mm-navbar').appendChild(languageSelector);\r\n }\r\n\r\n //Insert closing button\r\n if(!panelDOMElement.querySelector('.mm-navbar').querySelector('.menu-nav-mobile__btn')) {\r\n const mobileNavToggle = document.querySelector('.menu-nav-mobile__btn').cloneNode(true);\r\n panelDOMElement.querySelector('.mm-navbar').appendChild(mobileNavToggle);\r\n }\r\n }\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 // Toggle menu\r\n document.addEventListener(\"click\", (e) => {\r\n const mobileMenuTrigger = e.target.closest(mobileMenuTriggerSelector);\r\n if (mobileMenuTrigger) {\r\n if(document.body.classList.contains('mm-wrapper_opened')) {\r\n mmenuApi.close();\r\n }else {\r\n mobileMenu.setAttribute('style', '');\r\n mmenuApi.open();\r\n }\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":["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","type","hasOwnProperty","variable","toString","call","match","toLowerCase","valueOrFn","element","option","value","transitionend","func","duration","_ended","_fn","evnt","target","removeEventListener","addEventListener","setTimeout","uniqueId","__id","originalId","id","slice","translations","text","create","selector","args","split","elem","document","createElement","shift","forEach","classname","classList","find","filter","Array","prototype","querySelectorAll","children","child","matches","parents","parent","parentElement","push","filterLI","listitems","listitem","filterLIA","anchors","apply","anchor","reClass","oldClass","newClass","remove","listeners","query","yes","no","fire","mqlist","fn","m","length","fa","de","ru","Mmenu","menu","options","configs","this","opts","conf","_api","node","vars","hook","clck","querySelector","_deprecatedWarnings","_initWrappers","_initAddons","_initExtensions","_initHooks","_initAPI","_initMenu","_initPanels","_initOpened","_initAnchors","_loop_1","window","matchMedia","onchange","openPanel","animation","_this","trigger","closest","panels","pnls","current_1","parent_1","hidden","openPanelStart_1","openPanelFinish_1","closePanel","li","closeAllPanels","opened","togglePanel","bind","h","l","that","API","re","arguments","w","wrpr","addon","addons","all","Object","keys","classnames","map","extension","indexOf","nodeName","append","inMenu","href","getAttribute","err","initPanel","join","_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","open","_openSetup","_openStart","closeAllOthers","force","clsn","body","api","setPage","pages","wrapper_1","initWindow","keyCode","initBlocker","blck","closeMenu","stopPropagation","aria","closeSubmenu","openSubmenu","toggleSubmenu","attr","screenReader","sr_aria","name","sr_role","sr_text","fix","touch","navigator","msMaxTouchPoints","scrollBugFix","height","autoHeight","backButton","visible","min","max","columns","addTo","count","counters","counter","dividers","divider","top","right","bottom","left","start","swipe","directionNames","x","y","state","percentage2number","position","size","parseInt","DragEvents","surface","area","treshold","stop","move","event","currentPosition","touches","pageX","pageY","width","clientWidth","clientHeight","startPosition","dragDirection","_dragDirection","detail","_eventDetail","_dispatchEvents","Math","abs","movement","axis","swipeDirection","_swipeDirection","direction","changedTouches","distance","distX","distY","movementX","movementY","distanceX","distanceY","eventName","CustomEvent","replace","dispatchEvent","dragInstance","dragNode","maxDistance","moving","addMatchMedia","queries","getPositionVars","zposition","slideOutNodes","style","open_1","pos","drag","drop","fitViewport","tip","offset","viewport","dropdown","fixedElements","fixed","use","iconbar","blockPanel","hideDivider","hideNavbar","iconPanels","enable","enhance","keyboardNavigation","next","focus","Event","api_1","load","lazySubmenus","breadcrumbs","separator","removeFirst","Navbars","navs","navbars","content","ctnt","navbarContents","navbarTypes","panelPrev","panelTitle","crumbs","first","unshift","org","_url","_txt","searchfield","original","btn","tabs","stopImmediatePropagation","selectTab","scroll","update","scrollOffset","updateOffset","pageScroll","cancel","noResults","placeholder","fx","splash","search","showTextItems","showSubPanels","clear","form","input","submit","Search","__spreadArrays","s","i","il","r","a","j","jl","initSearchPanel","searchpanel","initSearchfield","addAttributes","field","autocomplete","initSearching","data","noresults","_a","_b","initNoResultsMsg","message","trim","buttons","scrollTop","childNodes","nodeType","hasResults","allitems_1","cloneNode","reverse","p","previous","previousElementSibling","sectionIndexer","hover","collapsed","blockMenu","expanded","initial","sidebar","toggles","toggle","check","offcanvas","extendShorthandOptions","hash","location","hide","touchDir","get","passive","pop","scrollHeight","offsetHeight","measurablePanel","setHeight","highest","_hgh","_dif","_menu","states","setStates","history","pushState","back","pathname","colm","colp","rmvc","contains","className","colnr","cntrclss","lastletter","letter","of","events","getPosition","dir","obj","val","css","cls","_outerSize","_startPos","_stopPos","_size","_winSize","_maxSize","_position","startPos","getBoundingClientRect","stopPos","windowSize","offs","_fixd","wrppr","fxd","n","part","classname_1","selectTab_1","keepFirst","classnames_1","panelAdded_1","blocker","menuStart_1","menuEnd_1","blockerEnd_1","focusable_1","setFocus","activeElement","elements_1","tabber","console","log","section","scrollTo","scrollingElement","behavior","anchorInPage","scts_1","_selected_1","scrollY","offsetTop","blur","indx","buttons_1","indexer","mouseOverEvent","newTop","oldTop","active","findCurrent_1","url","arr","disable","localStorage","setItem","initialState","getItem","angular","bootstrap","nav","list","cloneDropdown","cloneLink","cloneNav","action","method","toggler","outerHTML","link","sro","olark","turbolinks","test","wordpress","wpadminbar","getElementById","$","jQuery","Zepto","mmenu","$result","each","e","mmApi","$menu","callback","mobileMenu","resizeTimer","breakpointMaxM","mobileMenuSelector","mobileMenuExtras","mmenuApi","panelContent","DOMParser","parseFromString","mobileMenuExtraElement","panelDOMElement","languageSelector","appendChild","mobileNavToggle","clearTimeout","mmIsOpened","init","readyState"],"sourceRoot":""}