[ Index ]

PHP Cross Reference of Joomla 4.2.2 documentation

title

Body

[close]

/media/vendor/metismenujs/js/ -> metismenujs.js.map (source)

   1  {"version":3,"file":"metismenujs.js","sources":["../src/constant.ts","../src/index.ts"],"sourcesContent":["import { IMMOptions } from './interface';\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';\nimport { IMMOptions } from './interface';\nimport { EventType, SpecificEventListener, CustomEventListener } from './types';\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  /**\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.init();\n  }\n\n  static attach(el: Element, opt?: IMMOptions) {\n    return new MetisMenu(el, opt);\n  }\n\n  private init(): void {\n    const { METIS, ACTIVE, COLLAPSE } = ClassName;\n    this.element.classList.add(METIS);\n\n    [].slice.call(this.element.querySelectorAll<HTMLElement>(this.config.subMenu!)).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.clickEvent.bind(this));\n      this.triggerArr.push(a!);\n    });\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.clickEvent.bind(this));\n    });\n    this.disposed = true;\n  }\n\n  on<K extends EventType>(evtType: K, handler: SpecificEventListener<K>, options?: AddEventListenerOptions | boolean): MetisMenu;\n\n  on<E extends Event>(evtType: E, handler: CustomEventListener<E>, options?: AddEventListenerOptions | boolean): MetisMenu;\n\n  on(evtType: MetisMenuEvents, handler: EventListener, options?: AddEventListenerOptions | boolean) {\n    this.element.addEventListener(evtType, handler, options);\n    return this;\n  }\n\n  off<K extends EventType>(evtType: K, handler: SpecificEventListener<K>, options?: AddEventListenerOptions | boolean): MetisMenu;\n\n  off<E extends Event>(evtType: E, handler: CustomEventListener<E>, options?: AddEventListenerOptions | boolean): MetisMenu;\n\n  off(evtType: MetisMenuEvents, handler: EventListener, options?: AddEventListenerOptions | boolean): MetisMenu {\n    this.element.removeEventListener(evtType, handler, options);\n    return this;\n  }\n\n  emit<T extends object>(evtType: string, evtData: T, shouldBubble = false): void {\n    const evt = new CustomEvent<T>(evtType, {\n        bubbles: shouldBubble,\n        detail: evtData,\n      });\n    this.element.dispatchEvent(evt);\n  }\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  show(el: Element) {\n    const ul = el as HTMLElement;\n    const {\n      ACTIVE, COLLAPSE, COLLAPSED, COLLAPSING, SHOW,\n    } = 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\n      .call(li?.parentNode?.children)\n      .filter((c) => 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  hide(el: Element) {\n    const {\n      ACTIVE, COLLAPSE, COLLAPSED, COLLAPSING, SHOW,\n    } = 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  private setTransitioning(isTransitioning: boolean) {\n    this.isTransitioning = isTransitioning;\n  }\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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"}


Generated: Wed Sep 7 05:41:13 2022 Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer