Spade
Mini Shell
| Directory:~$ /home/lmsyaran/public_html/joomla5/media/vendor/metismenujs/js/ |
| [Home] [System Details] [Kill Me] |
{"version":3,"names":["Default","parentTrigger","subMenu","toggle","triggerElement","ClassName","ACTIVE","COLLAPSE","COLLAPSED","COLLAPSING","METIS","SHOW","MetisMenu","constructor","element","options","this","isElement","document","querySelector","config","Object","assign","disposed","triggerArr","boundEventHandler","clickEvent","bind","init","static","el","opt","classList","add","uls","querySelectorAll","length","forEach","ul","li","closest","contains","show","hide","a","getAttribute","setAttribute","addEventListener","push","evt","target","currentTarget","tagName","preventDefault","update","dispose","arr","removeEventListener","on","evtType","handler","off","emit","evtData","shouldBubble","CustomEvent","bubbles","detail","dispatchEvent","isTransitioning","complete","remove","style","height","setTransitioning","shownElement","eleParentSiblins","slice","call","_a","parentNode","children","filter","c","sibli","sibUl","scrollHeight","showElement","hideElement","hiddenElement","getBoundingClientRect","offsetHeight","Boolean"],"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<Element>;\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<HTMLElement>(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<HTMLElement>(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<HTMLElement>(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<K extends EventType>(\n evtType: K,\n handler:
SpecificEventListener<K>,\n options?: AddEventListenerOptions |
boolean,\n ): MetisMenu;\n\n on<E extends Event>(\n evtType:
E,\n handler: CustomEventListener<E>,\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<K extends EventType>(\n evtType: K,\n
handler: SpecificEventListener<K>,\n options?:
AddEventListenerOptions | boolean,\n ): MetisMenu;\n\n off<E extends
Event>(\n evtType: E,\n handler: CustomEventListener<E>,\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<T extends
object>(\n evtType: string,\n evtData: T,\n shouldBubble =
false,\n ): void {\n const evt = new CustomEvent<T>(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<HTMLElement>(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<HTMLElement>(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"],"mappings":"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"}