{"version":3,"file":"metismenujs.js","sources":["../src/constant.ts","../src/metismenujs.ts"],"sourcesContent":["import { IMMOptions } from './interface.js';\n\nexport type MetisMenuEvents =\n | 'show.metisMenu'\n | 'shown.metisMenu'\n | 'hide.metisMenu'\n | 'hidden.metisMenu';\n\nexport const Default: IMMOptions = {\n parentTrigger: 'li',\n subMenu: 'ul',\n toggle: true,\n triggerElement: 'a',\n};\n\nexport const ClassName = {\n ACTIVE: 'mm-active',\n COLLAPSE: 'mm-collapse',\n COLLAPSED: 'mm-collapsed',\n COLLAPSING: 'mm-collapsing',\n METIS: 'metismenu',\n SHOW: 'mm-show',\n};\n","/* eslint-disable max-len */\nimport { ClassName, Default, MetisMenuEvents } from \"./constant.js\";\nimport { IMMOptions } from \"./interface.js\";\nimport {\n CustomEventListener,\n EventType,\n SpecificEventListener,\n} from \"./types.js\";\n\nclass MetisMenu {\n protected config: IMMOptions;\n\n protected element: Element;\n\n protected isTransitioning!: boolean;\n\n protected disposed: boolean;\n\n protected triggerArr: Array;\n\n boundEventHandler: (evt?: Event) => void;\n\n /**\n * Creates an instance of MetisMenu.\n *\n * @constructor\n * @param {Element | string} element\n * @param {IMMOptions} [options]\n * @memberof MetisMenu\n */\n\n constructor(element: Element | string, options?: IMMOptions) {\n this.element = MetisMenu.isElement(element) ? element : document.querySelector(element)!;\n this.config = { ...Default, ...options };\n this.disposed = false;\n this.triggerArr = [];\n this.boundEventHandler = this.clickEvent.bind(this);\n this.init();\n }\n\n static attach(el: Element, opt?: IMMOptions) {\n return new MetisMenu(el, opt);\n }\n\n /**\n * @internal\n */\n private init(): void {\n const { METIS, ACTIVE, COLLAPSE } = ClassName;\n this.element.classList.add(METIS);\n\n const uls = [...this.element.querySelectorAll(this.config.subMenu!)];\n\n if (uls.length === 0) {\n return;\n }\n\n uls.forEach((ul: Element) => {\n ul.classList.add(COLLAPSE!);\n const li = ul.closest(this.config.parentTrigger!);\n\n if (li?.classList.contains(ACTIVE!)) {\n this.show(ul as HTMLElement);\n } else {\n this.hide(ul);\n }\n\n const a = li?.querySelector(this.config.triggerElement!);\n if (a?.getAttribute(\"aria-disabled\") === \"true\") {\n return;\n }\n\n a?.setAttribute(\"aria-expanded\", \"false\");\n\n a?.addEventListener(\"click\", this.boundEventHandler);\n this.triggerArr.push(a!);\n });\n }\n /**\n * @internal\n */\n\n private clickEvent(evt?: Event) {\n if (!this.disposed) {\n const target = evt?.currentTarget as Element | null;\n if (target && target.tagName === \"A\") {\n evt!.preventDefault();\n }\n\n const li = target!.closest(this.config.parentTrigger!);\n const ul = li?.querySelector(this.config.subMenu!);\n this.toggle(ul!);\n }\n }\n\n update() {\n this.disposed = false;\n this.init();\n }\n\n dispose() {\n this.triggerArr.forEach((arr) => {\n arr.removeEventListener(\"click\", this.boundEventHandler);\n });\n this.disposed = true;\n }\n\n on(\n evtType: K,\n handler: SpecificEventListener,\n options?: AddEventListenerOptions | boolean,\n ): MetisMenu;\n\n on(\n evtType: E,\n handler: CustomEventListener,\n options?: AddEventListenerOptions | boolean,\n ): MetisMenu;\n\n on(\n evtType: MetisMenuEvents,\n handler: EventListener,\n options?: AddEventListenerOptions | boolean,\n ) {\n this.element.addEventListener(evtType, handler, options);\n return this;\n }\n\n off(\n evtType: K,\n handler: SpecificEventListener,\n options?: AddEventListenerOptions | boolean,\n ): MetisMenu;\n\n off(\n evtType: E,\n handler: CustomEventListener,\n options?: AddEventListenerOptions | boolean,\n ): MetisMenu;\n\n off(\n evtType: MetisMenuEvents,\n handler: EventListener,\n options?: AddEventListenerOptions | boolean,\n ): MetisMenu {\n this.element.removeEventListener(evtType, handler, options);\n return this;\n }\n\n /**\n * @internal\n */\n emit(\n evtType: string,\n evtData: T,\n shouldBubble = false,\n ): void {\n const evt = new CustomEvent(evtType, {\n bubbles: shouldBubble,\n detail: evtData,\n });\n this.element.dispatchEvent(evt);\n }\n\n /**\n * @internal\n */\n toggle(ul: Element) {\n const li = ul.closest(this.config.parentTrigger!);\n if (li?.classList.contains(ClassName.ACTIVE)) {\n this.hide(ul);\n } else {\n this.show(ul);\n }\n }\n\n /**\n * @internal\n */\n show(el: Element) {\n const ul = el as HTMLElement;\n const { ACTIVE, COLLAPSE, COLLAPSED, COLLAPSING, SHOW } = ClassName;\n\n if (this.isTransitioning || ul.classList.contains(COLLAPSING!)) {\n return;\n }\n const complete = () => {\n ul.classList.remove(COLLAPSING!);\n ul.style.height = \"\";\n ul.removeEventListener(\"transitionend\", complete);\n this.setTransitioning(false);\n this.emit(\"shown.metisMenu\", {\n shownElement: ul,\n });\n };\n\n const li = ul.closest(this.config.parentTrigger!);\n li?.classList.add(ACTIVE!);\n\n const a = li?.querySelector(this.config.triggerElement!);\n a?.setAttribute(\"aria-expanded\", \"true\");\n a?.classList.remove(COLLAPSED!);\n\n ul.style.height = \"0px\";\n ul.classList.remove(COLLAPSE!);\n ul.classList.remove(SHOW!);\n ul.classList.add(COLLAPSING!);\n const eleParentSiblins = [].slice.call(li?.parentNode?.children).filter((\n c,\n ) => c !== li);\n if (this.config.toggle && eleParentSiblins.length > 0) {\n eleParentSiblins.forEach((sibli: Element) => {\n const sibUl = sibli.querySelector(this.config.subMenu!);\n if (sibUl) {\n this.hide(sibUl);\n }\n });\n }\n\n this.setTransitioning(true);\n\n ul.classList.add(COLLAPSE!);\n ul.classList.add(SHOW!);\n ul.style.height = `${ul.scrollHeight}px`;\n this.emit(\"show.metisMenu\", {\n showElement: ul,\n });\n ul.addEventListener(\"transitionend\", complete);\n }\n\n /**\n * @internal\n */\n hide(el: Element) {\n const { ACTIVE, COLLAPSE, COLLAPSED, COLLAPSING, SHOW } = ClassName;\n const ul = el as HTMLElement;\n if (this.isTransitioning || !ul.classList.contains(SHOW!)) {\n return;\n }\n this.emit(\"hide.metisMenu\", {\n hideElement: ul,\n });\n\n const li = ul.closest(this.config.parentTrigger!);\n li?.classList.remove(ACTIVE!);\n\n const complete = () => {\n ul.classList.remove(COLLAPSING!);\n ul.classList.add(COLLAPSE!);\n ul.style.height = \"\";\n ul.removeEventListener(\"transitionend\", complete);\n this.setTransitioning(false);\n this.emit(\"hidden.metisMenu\", {\n hiddenElement: ul,\n });\n };\n\n ul.style.height = `${ul.getBoundingClientRect().height}px`;\n ul.style.height = `${ul.offsetHeight}px`;\n\n ul.classList.add(COLLAPSING!);\n ul.classList.remove(COLLAPSE!);\n ul.classList.remove(SHOW!);\n this.setTransitioning(true);\n\n ul.addEventListener(\"transitionend\", complete);\n\n ul.style.height = \"0px\";\n\n const a = li?.querySelector(this.config.triggerElement!);\n a?.setAttribute(\"aria-expanded\", \"false\");\n a?.classList.add(COLLAPSED!);\n }\n\n /**\n * @internal\n */\n private setTransitioning(isTransitioning: boolean) {\n this.isTransitioning = isTransitioning;\n }\n\n /**\n * @internal\n */\n static isElement(element: unknown): element is Element {\n return Boolean((element as Element).classList);\n }\n}\n\nexport default MetisMenu;\n"],"names":[],"mappings":"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"}