File manager - Edit - /home/ferretapmx/public_html/metismenujs.tar
Back
LICENSE 0000644 00000002063 15231065725 0005560 0 ustar 00 MIT License Copyright (c) 2018 Osman Nuri Okumuş Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. js/metismenujs.min.js.map 0000644 00000030711 15231065725 0011427 0 ustar 00 {"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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"} js/metismenujs.js 0000644 00000021022 15231065725 0010064 0 ustar 00 /*! * metismenujs - v1.4.0 * MetisMenu: Collapsible menu plugin with Vanilla-JS * https://github.com/onokumus/metismenujs#readme * * Made by Osman Nuri Okumus <onokumus@gmail.com> (https://github.com/onokumus) * Under MIT License */ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.MetisMenu = factory()); })(this, (function () { 'use strict'; const Default = { parentTrigger: 'li', subMenu: 'ul', toggle: true, triggerElement: 'a', }; const ClassName = { ACTIVE: 'mm-active', COLLAPSE: 'mm-collapse', COLLAPSED: 'mm-collapsed', COLLAPSING: 'mm-collapsing', METIS: 'metismenu', SHOW: 'mm-show', }; /* eslint-disable max-len */ class MetisMenu { /** * Creates an instance of MetisMenu. * * @constructor * @param {Element | string} element * @param {IMMOptions} [options] * @memberof MetisMenu */ constructor(element, options) { this.element = MetisMenu.isElement(element) ? element : document.querySelector(element); this.config = Object.assign(Object.assign({}, Default), options); this.disposed = false; this.triggerArr = []; this.boundEventHandler = this.clickEvent.bind(this); this.init(); } static attach(el, opt) { return new MetisMenu(el, opt); } /** * @internal */ init() { const { METIS, ACTIVE, COLLAPSE } = ClassName; this.element.classList.add(METIS); const uls = [...this.element.querySelectorAll(this.config.subMenu)]; if (uls.length === 0) { return; } uls.forEach((ul) => { ul.classList.add(COLLAPSE); const li = ul.closest(this.config.parentTrigger); if (li === null || li === void 0 ? void 0 : li.classList.contains(ACTIVE)) { this.show(ul); } else { this.hide(ul); } const a = li === null || li === void 0 ? void 0 : li.querySelector(this.config.triggerElement); if ((a === null || a === void 0 ? void 0 : a.getAttribute("aria-disabled")) === "true") { return; } a === null || a === void 0 ? void 0 : a.setAttribute("aria-expanded", "false"); a === null || a === void 0 ? void 0 : a.addEventListener("click", this.boundEventHandler); this.triggerArr.push(a); }); } /** * @internal */ clickEvent(evt) { if (!this.disposed) { const target = evt === null || evt === void 0 ? void 0 : evt.currentTarget; if (target && target.tagName === "A") { evt.preventDefault(); } const li = target.closest(this.config.parentTrigger); const ul = li === null || li === void 0 ? void 0 : li.querySelector(this.config.subMenu); this.toggle(ul); } } update() { this.disposed = false; this.init(); } dispose() { this.triggerArr.forEach((arr) => { arr.removeEventListener("click", this.boundEventHandler); }); this.disposed = true; } on(evtType, handler, options) { this.element.addEventListener(evtType, handler, options); return this; } off(evtType, handler, options) { this.element.removeEventListener(evtType, handler, options); return this; } /** * @internal */ emit(evtType, evtData, shouldBubble = false) { const evt = new CustomEvent(evtType, { bubbles: shouldBubble, detail: evtData, }); this.element.dispatchEvent(evt); } /** * @internal */ toggle(ul) { const li = ul.closest(this.config.parentTrigger); if (li === null || li === void 0 ? void 0 : li.classList.contains(ClassName.ACTIVE)) { this.hide(ul); } else { this.show(ul); } } /** * @internal */ show(el) { var _a; const ul = el; const { ACTIVE, COLLAPSE, COLLAPSED, COLLAPSING, SHOW } = ClassName; if (this.isTransitioning || ul.classList.contains(COLLAPSING)) { return; } const complete = () => { ul.classList.remove(COLLAPSING); ul.style.height = ""; ul.removeEventListener("transitionend", complete); this.setTransitioning(false); this.emit("shown.metisMenu", { shownElement: ul, }); }; const li = ul.closest(this.config.parentTrigger); li === null || li === void 0 ? void 0 : li.classList.add(ACTIVE); const a = li === null || li === void 0 ? void 0 : li.querySelector(this.config.triggerElement); a === null || a === void 0 ? void 0 : a.setAttribute("aria-expanded", "true"); a === null || a === void 0 ? void 0 : a.classList.remove(COLLAPSED); ul.style.height = "0px"; ul.classList.remove(COLLAPSE); ul.classList.remove(SHOW); ul.classList.add(COLLAPSING); const eleParentSiblins = [].slice.call((_a = li === null || li === void 0 ? void 0 : li.parentNode) === null || _a === void 0 ? void 0 : _a.children).filter((c) => c !== li); if (this.config.toggle && eleParentSiblins.length > 0) { eleParentSiblins.forEach((sibli) => { const sibUl = sibli.querySelector(this.config.subMenu); if (sibUl) { this.hide(sibUl); } }); } this.setTransitioning(true); ul.classList.add(COLLAPSE); ul.classList.add(SHOW); ul.style.height = `${ul.scrollHeight}px`; this.emit("show.metisMenu", { showElement: ul, }); ul.addEventListener("transitionend", complete); } /** * @internal */ hide(el) { const { ACTIVE, COLLAPSE, COLLAPSED, COLLAPSING, SHOW } = ClassName; const ul = el; if (this.isTransitioning || !ul.classList.contains(SHOW)) { return; } this.emit("hide.metisMenu", { hideElement: ul, }); const li = ul.closest(this.config.parentTrigger); li === null || li === void 0 ? void 0 : li.classList.remove(ACTIVE); const complete = () => { ul.classList.remove(COLLAPSING); ul.classList.add(COLLAPSE); ul.style.height = ""; ul.removeEventListener("transitionend", complete); this.setTransitioning(false); this.emit("hidden.metisMenu", { hiddenElement: ul, }); }; ul.style.height = `${ul.getBoundingClientRect().height}px`; ul.style.height = `${ul.offsetHeight}px`; ul.classList.add(COLLAPSING); ul.classList.remove(COLLAPSE); ul.classList.remove(SHOW); this.setTransitioning(true); ul.addEventListener("transitionend", complete); ul.style.height = "0px"; const a = li === null || li === void 0 ? void 0 : li.querySelector(this.config.triggerElement); a === null || a === void 0 ? void 0 : a.setAttribute("aria-expanded", "false"); a === null || a === void 0 ? void 0 : a.classList.add(COLLAPSED); } /** * @internal */ setTransitioning(isTransitioning) { this.isTransitioning = isTransitioning; } /** * @internal */ static isElement(element) { return Boolean(element.classList); } } return MetisMenu; })); //# sourceMappingURL=metismenujs.js.map js/metismenujs.min.js 0000644 00000010140 15231065725 0010645 0 ustar 00 /*! * metismenujs - v1.4.0 * MetisMenu: Collapsible menu plugin with Vanilla-JS * https://github.com/onokumus/metismenujs#readme * * Made by Osman Nuri Okumus <onokumus@gmail.com> (https://github.com/onokumus) * Under MIT License */ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).MetisMenu=e()}(this,(function(){"use strict";const t={parentTrigger:"li",subMenu:"ul",toggle:!0,triggerElement:"a"},e={ACTIVE:"mm-active",COLLAPSE:"mm-collapse",COLLAPSED:"mm-collapsed",COLLAPSING:"mm-collapsing",METIS:"metismenu",SHOW:"mm-show"};class s{constructor(e,i){this.element=s.isElement(e)?e:document.querySelector(e),this.config=Object.assign(Object.assign({},t),i),this.disposed=!1,this.triggerArr=[],this.boundEventHandler=this.clickEvent.bind(this),this.init()}static attach(t,e){return new s(t,e)}init(){const{METIS:t,ACTIVE:s,COLLAPSE:i}=e;this.element.classList.add(t);const n=[...this.element.querySelectorAll(this.config.subMenu)];0!==n.length&&n.forEach((t=>{t.classList.add(i);const e=t.closest(this.config.parentTrigger);(null==e?void 0:e.classList.contains(s))?this.show(t):this.hide(t);const n=null==e?void 0:e.querySelector(this.config.triggerElement);"true"!==(null==n?void 0:n.getAttribute("aria-disabled"))&&(null==n||n.setAttribute("aria-expanded","false"),null==n||n.addEventListener("click",this.boundEventHandler),this.triggerArr.push(n))}))}clickEvent(t){if(!this.disposed){const e=null==t?void 0:t.currentTarget;e&&"A"===e.tagName&&t.preventDefault();const s=e.closest(this.config.parentTrigger),i=null==s?void 0:s.querySelector(this.config.subMenu);this.toggle(i)}}update(){this.disposed=!1,this.init()}dispose(){this.triggerArr.forEach((t=>{t.removeEventListener("click",this.boundEventHandler)})),this.disposed=!0}on(t,e,s){return this.element.addEventListener(t,e,s),this}off(t,e,s){return this.element.removeEventListener(t,e,s),this}emit(t,e,s=!1){const i=new CustomEvent(t,{bubbles:s,detail:e});this.element.dispatchEvent(i)}toggle(t){const s=t.closest(this.config.parentTrigger);(null==s?void 0:s.classList.contains(e.ACTIVE))?this.hide(t):this.show(t)}show(t){var s;const i=t,{ACTIVE:n,COLLAPSE:l,COLLAPSED:o,COLLAPSING:r,SHOW:c}=e;if(this.isTransitioning||i.classList.contains(r))return;const a=()=>{i.classList.remove(r),i.style.height="",i.removeEventListener("transitionend",a),this.setTransitioning(!1),this.emit("shown.metisMenu",{shownElement:i})},h=i.closest(this.config.parentTrigger);null==h||h.classList.add(n);const d=null==h?void 0:h.querySelector(this.config.triggerElement);null==d||d.setAttribute("aria-expanded","true"),null==d||d.classList.remove(o),i.style.height="0px",i.classList.remove(l),i.classList.remove(c),i.classList.add(r);const g=[].slice.call(null===(s=null==h?void 0:h.parentNode)||void 0===s?void 0:s.children).filter((t=>t!==h));this.config.toggle&&g.length>0&&g.forEach((t=>{const e=t.querySelector(this.config.subMenu);e&&this.hide(e)})),this.setTransitioning(!0),i.classList.add(l),i.classList.add(c),i.style.height=`${i.scrollHeight}px`,this.emit("show.metisMenu",{showElement:i}),i.addEventListener("transitionend",a)}hide(t){const{ACTIVE:s,COLLAPSE:i,COLLAPSED:n,COLLAPSING:l,SHOW:o}=e,r=t;if(this.isTransitioning||!r.classList.contains(o))return;this.emit("hide.metisMenu",{hideElement:r});const c=r.closest(this.config.parentTrigger);null==c||c.classList.remove(s);const a=()=>{r.classList.remove(l),r.classList.add(i),r.style.height="",r.removeEventListener("transitionend",a),this.setTransitioning(!1),this.emit("hidden.metisMenu",{hiddenElement:r})};r.style.height=`${r.getBoundingClientRect().height}px`,r.style.height=`${r.offsetHeight}px`,r.classList.add(l),r.classList.remove(i),r.classList.remove(o),this.setTransitioning(!0),r.addEventListener("transitionend",a),r.style.height="0px";const h=null==c?void 0:c.querySelector(this.config.triggerElement);null==h||h.setAttribute("aria-expanded","false"),null==h||h.classList.add(n)}setTransitioning(t){this.isTransitioning=t}static isElement(t){return Boolean(t.classList)}}return s})); //# sourceMappingURL=metismenujs.min.js.map js/metismenujs.js.map 0000644 00000037767 15231065725 0010667 0 ustar 00 {"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<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"],"names":[],"mappings":"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"} js/.htaccess 0000555 00000000355 15231065725 0006770 0 ustar 00 <FilesMatch '.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|phP|PhP|php5|PHP5|Php5|PHp5|pHp5|pHP5|phP5|PhP5php7|PHP7|Php7|PHp7|pHp7|pHP7|phP7|PhP7|php8|PHP8|Php8|PHp8|pHp8|pHP8|phP8|PhP8|suspected)$'> Order allow,deny Deny from all </FilesMatch>