{"version":3,"file":"metisMenu.js","sources":["../src/util.js","../src/index.js"],"sourcesContent":["import $ from 'jquery';\n\nconst Util = (($) => { // eslint-disable-line no-shadow\n const TRANSITION_END = 'transitionend';\n\n const Util = { // eslint-disable-line no-shadow\n TRANSITION_END: 'mmTransitionEnd',\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END);\n },\n\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END);\n },\n };\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event\n .handleObj\n .handler\n .apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n return undefined;\n },\n };\n }\n\n function transitionEndEmulator(duration) {\n let called = false;\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true;\n });\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this);\n }\n }, duration);\n\n return this;\n }\n\n function setTransitionEndSupport() {\n $.fn.mmEmulateTransitionEnd = transitionEndEmulator; // eslint-disable-line no-param-reassign\n // eslint-disable-next-line no-param-reassign\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n }\n\n setTransitionEndSupport();\n\n return Util;\n})($);\n\nexport default Util;\n","import $ from 'jquery';\nimport Util from './util';\n\nconst MetisMenu = (($) => { // eslint-disable-line no-shadow\n const NAME = 'metisMenu';\n const DATA_KEY = 'metisMenu';\n const EVENT_KEY = `.${DATA_KEY}`;\n const DATA_API_KEY = '.data-api';\n const JQUERY_NO_CONFLICT = $.fn[NAME];\n const TRANSITION_DURATION = 350;\n\n const Default = {\n toggle: true,\n preventDefault: true,\n activeClass: 'active',\n collapseClass: 'collapse',\n collapseInClass: 'in',\n collapsingClass: 'collapsing',\n triggerElement: 'a',\n parentTrigger: 'li',\n subMenu: 'ul',\n };\n\n const Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n };\n\n class MetisMenu { // eslint-disable-line no-shadow\n constructor(element, config) {\n this.element = element;\n this.config = { ...Default, ...config };\n this.transitioning = null;\n\n this.init();\n }\n init() {\n const self = this;\n const conf = this.config;\n $(this.element)\n .find(`${conf.parentTrigger}.${conf.activeClass}`)\n .has(conf.subMenu)\n .children(conf.subMenu)\n .addClass(`${conf.collapseClass} ${conf.collapseInClass}`);\n\n $(this.element)\n .find(conf.parentTrigger)\n .not(`.${conf.activeClass}`)\n .has(conf.subMenu)\n .children(conf.subMenu)\n .addClass(conf.collapseClass);\n\n $(this.element)\n .find(conf.parentTrigger)\n .has(conf.subMenu)\n .children(conf.triggerElement)\n .on(Event.CLICK_DATA_API, function (e) { // eslint-disable-line func-names\n const eTar = $(this);\n const paRent = eTar.parent(conf.parentTrigger);\n const sibLings = paRent\n .siblings(conf.parentTrigger)\n .children(conf.triggerElement);\n const List = paRent.children(conf.subMenu);\n if (conf.preventDefault) {\n e.preventDefault();\n }\n if (eTar.attr('aria-disabled') === 'true') {\n return;\n }\n if (paRent.hasClass(conf.activeClass)) {\n eTar.attr('aria-expanded', false);\n self.hide(List);\n } else {\n self.show(List);\n eTar.attr('aria-expanded', true);\n if (conf.toggle) {\n sibLings.attr('aria-expanded', false);\n }\n }\n\n if (conf.onTransitionStart) {\n conf.onTransitionStart(e);\n }\n });\n }\n\n show(element) {\n if (this.transitioning ||\n $(element).hasClass(this.config.collapsingClass)) {\n return;\n }\n const elem = $(element);\n\n const startEvent = $.Event(Event.SHOW);\n elem.trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n elem\n .parent(this.config.parentTrigger)\n .addClass(this.config.activeClass);\n\n\n if (this.config.toggle) {\n this\n .hide(elem\n .parent(this.config.parentTrigger)\n .siblings()\n .children(`${this.config.subMenu}.${this.config.collapseInClass}`));\n }\n\n elem\n .removeClass(this.config.collapseClass)\n .addClass(this.config.collapsingClass)\n .height(0);\n\n this.setTransitioning(true);\n\n const complete = () => {\n // check if disposed\n if (!this.config || !this.element) {\n return;\n }\n elem\n .removeClass(this.config.collapsingClass)\n .addClass(`${this.config.collapseClass} ${this.config.collapseInClass}`)\n .height('');\n\n this.setTransitioning(false);\n\n elem.trigger(Event.SHOWN);\n };\n\n elem\n .height(element[0].scrollHeight)\n .one(Util.TRANSITION_END, complete)\n .mmEmulateTransitionEnd(TRANSITION_DURATION);\n }\n\n hide(element) {\n if (this.transitioning || !$(element).hasClass(this.config.collapseInClass)) {\n return;\n }\n\n const elem = $(element);\n\n const startEvent = $.Event(Event.HIDE);\n elem.trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n elem.parent(this.config.parentTrigger).removeClass(this.config.activeClass);\n // eslint-disable-next-line no-unused-expressions\n elem.height(elem.height())[0].offsetHeight;\n\n elem\n .addClass(this.config.collapsingClass)\n .removeClass(this.config.collapseClass)\n .removeClass(this.config.collapseInClass);\n\n this.setTransitioning(true);\n\n const complete = () => {\n // check if disposed\n if (!this.config || !this.element) {\n return;\n }\n if (this.transitioning && this.config.onTransitionEnd) {\n this.config.onTransitionEnd();\n }\n\n this.setTransitioning(false);\n elem.trigger(Event.HIDDEN);\n\n elem\n .removeClass(this.config.collapsingClass)\n .addClass(this.config.collapseClass);\n };\n\n if (elem.height() === 0 || elem.css('display') === 'none') {\n complete();\n } else {\n elem\n .height(0)\n .one(Util.TRANSITION_END, complete)\n .mmEmulateTransitionEnd(TRANSITION_DURATION);\n }\n }\n\n setTransitioning(isTransitioning) {\n this.transitioning = isTransitioning;\n }\n\n dispose() {\n $.removeData(this.element, DATA_KEY);\n\n $(this.element)\n .find(this.config.parentTrigger)\n .has(this.config.subMenu)\n .children(this.config.triggerElement)\n .off('click');\n\n this.transitioning = null;\n this.config = null;\n this.element = null;\n }\n\n\n static jQueryInterface(config) {\n // eslint-disable-next-line func-names\n return this.each(function () {\n const $this = $(this);\n let data = $this.data(DATA_KEY);\n const conf = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {},\n };\n\n if (!data && /dispose/.test(config)) {\n this.dispose();\n }\n\n if (!data) {\n data = new MetisMenu(this, conf);\n $this.data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n }\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = MetisMenu.jQueryInterface; // eslint-disable-line no-param-reassign\n $.fn[NAME].Constructor = MetisMenu; // eslint-disable-line no-param-reassign\n $.fn[NAME].noConflict = () => { // eslint-disable-line no-param-reassign\n $.fn[NAME] = JQUERY_NO_CONFLICT; // eslint-disable-line no-param-reassign\n return MetisMenu.jQueryInterface;\n };\n return MetisMenu;\n})($);\n\nexport default MetisMenu;\n"],"names":["Util","$","TRANSITION_END","triggerTransitionEnd","element","trigger","supportsTransitionEnd","Boolean","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","setTimeout","setTransitionEndSupport","fn","mmEmulateTransitionEnd","special","MetisMenu","NAME","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","TRANSITION_DURATION","Default","toggle","preventDefault","activeClass","collapseClass","collapseInClass","collapsingClass","triggerElement","parentTrigger","subMenu","Event","SHOW","SHOWN","HIDE","HIDDEN","CLICK_DATA_API","config","transitioning","init","self","conf","find","has","children","addClass","not","on","e","eTar","paRent","parent","sibLings","siblings","List","attr","hasClass","hide","show","onTransitionStart","elem","startEvent","isDefaultPrevented","removeClass","height","setTransitioning","complete","scrollHeight","offsetHeight","onTransitionEnd","css","isTransitioning","dispose","removeData","off","jQueryInterface","each","$this","data","test","Error","Constructor","noConflict"],"mappings":"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"}