{"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\r\nexport function mmenu() {\r\n let mobileMenu,\r\n mobileMenuTrigger,\r\n breakpointMaxM = 768,\r\n resizeTimer;\r\n\r\n const mobileMenuSelector = '#mobile-menu',\r\n mainContentSelector = '#mainContent';\r\n\r\n const init = function () {\r\n mobileMenu = document.querySelector(mobileMenuSelector);\r\n mobileMenuTrigger = document.querySelector('.mm-trigger');\r\n breakpointMaxM = 768;\r\n\r\n const menu = new Mmenu(mobileMenuSelector, {\r\n // options\r\n 'extensions': [\r\n 'position-right',\r\n 'pagedim-black',\r\n 'border-full',\r\n 'theme-dark',\r\n 'fx-menu-slide'\r\n ]\r\n }, {\r\n // configuration\r\n offCanvas: {\r\n page: {\r\n nodetype: 'main',\r\n selector: mainContentSelector\r\n }\r\n },\r\n classNames: {\r\n selected: 'custom-mm-selected',\r\n panel: 'custom-mm-panel'\r\n }\r\n }\r\n );\r\n\r\n // Init mmenu api\r\n const mmenuApi = menu.API;\r\n\r\n // Open menu\r\n mobileMenuTrigger.addEventListener('click', () => {\r\n if (mmenuApi) {\r\n mobileMenu.setAttribute('style', '');\r\n mmenuApi.open();\r\n }\r\n });\r\n\r\n mobileMenuTrigger.click();\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","media","openPanel","animation","_this","trigger","closest","DOM","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","_openSetup","_openStart","closeAllOthers","events","force","clsn","body","api","pages","wrapper_1","initWindow","keyCode","initBlocker","blck","closeMenu","stopPropagation","aria","closeSubmenu","openSubmenu","toggleSubmenu","attr","name","fix","touch","navigator","msMaxTouchPoints","height","open","visible","min","max","addTo","count","counter","area","top","right","bottom","left","treshold","start","swipe","directionNames","x","y","state","percentage2number","position","size","parseInt","DragEvents","surface","support","stop","move","event","currentPosition","touches","pageX","pageY","width","clientWidth","clientHeight","startPosition","settings","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","drop","fitViewport","tip","offset","viewport","fixed","use","blockPanel","hideDivider","hideNavbar","enable","enhance","next","focus","Event","api_1","load","breadcrumbs","separator","removeFirst","Navbars","navs","navbars","content","extendShorthandOptions","ctnt","navbarContents","navbarTypes","panelPrev","panelTitle","crumbs","first","unshift","screenReader","org","_url","_txt","searchfield","original","btn","tabs","stopImmediatePropagation","selectTab","scroll","update","scrollOffset","updateOffset","cancel","noResults","placeholder","dividers","fx","splash","search","showTextItems","showSubPanels","clear","form","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","divider","childNodes","nodeType","hasResults","allitems_1","cloneNode","reverse","p","previous","previousElementSibling","hover","collapsed","blockMenu","expanded","initial","toggle","check","offcanvas","setPage","hash","location","hide","scrollBugFix","touchDir","get","passive","pop","scrollHeight","offsetHeight","autoHeight","measurablePanel","setHeight","highest","_hgh","_dif","backButton","_menu","states","setStates","history","pushState","back","pathname","columns","colm","colp","rmvc","contains","className","colnr","counters","cntrclss","lastletter","letter","drag","dragOpen","dropdown","of","getPosition","dir","obj","val","css","cls","_outerSize","_startPos","_stopPos","_size","_winSize","_maxSize","_position","startPos","getBoundingClientRect","stopPos","windowSize","offs","fixedElements","_fixd","wrppr","fxd","iconbar","n","part","classname_1","selectTab_1","iconPanels","keepFirst","classnames_1","panelAdded_1","blocker","keyboardNavigation","menuStart_1","menuEnd_1","blockerEnd_1","focusable_1","setFocus","activeElement","elements_1","tabber","lazySubmenus","console","log","pageScroll","section","scrollTo","scrollingElement","behavior","anchorInPage","scts_1","_selected_1","scrollY","offsetTop","blur","sectionIndexer","indx","buttons_1","indexer","mouseOverEvent","newTop","oldTop","active","findCurrent_1","url","arr","sidebar","disable","localStorage","setItem","initialState","getItem","toggles","angular","bootstrap","nav","list","cloneDropdown","cloneLink","cloneNav","action","method","toggler","outerHTML","link","sro","olark","turbolinks","test","wordpress","wpadminbar","getElementById","$","jQuery","Zepto","mmenu","$result","each","e","mmApi","$menu","callback","mobileMenu","mobileMenuTrigger","resizeTimer","breakpointMaxM","mobileMenuSelector","mmenuApi","clearTimeout","mmIsOpened","init","readyState"],"sourceRoot":""}