element-plus
Version:
A Component Library for Vue 3
1 lines • 3.46 kB
Source Map (JSON)
{"version":3,"file":"menu-item.mjs","sources":["../../../../../../../packages/components/menu/src/utils/menu-item.ts"],"sourcesContent":["// @ts-nocheck\nimport { getEventCode, triggerEvent } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport SubMenu from './submenu'\n\nclass MenuItem {\n public submenu: SubMenu = null\n constructor(\n public domNode: HTMLElement,\n namespace: string\n ) {\n this.submenu = null\n this.init(namespace)\n }\n\n init(namespace: string): void {\n this.domNode.setAttribute('tabindex', '0')\n const menuChild = this.domNode.querySelector(`.${namespace}-menu`)\n if (menuChild) {\n this.submenu = new SubMenu(this, menuChild)\n }\n this.addListeners()\n }\n\n addListeners(): void {\n this.domNode.addEventListener('keydown', (event: KeyboardEvent) => {\n const code = getEventCode(event)\n let prevDef = false\n\n switch (code) {\n case EVENT_CODE.down: {\n triggerEvent(event.currentTarget as HTMLElement, 'mouseenter')\n this.submenu && this.submenu.gotoSubIndex(0)\n prevDef = true\n break\n }\n case EVENT_CODE.up: {\n triggerEvent(event.currentTarget as HTMLElement, 'mouseenter')\n this.submenu &&\n this.submenu.gotoSubIndex(this.submenu.subMenuItems.length - 1)\n prevDef = true\n break\n }\n case EVENT_CODE.tab: {\n triggerEvent(event.currentTarget as HTMLElement, 'mouseleave')\n break\n }\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n case EVENT_CODE.space: {\n prevDef = true\n ;(event.currentTarget as HTMLElement).click()\n break\n }\n }\n if (prevDef) {\n event.preventDefault()\n }\n })\n }\n}\n\nexport default MenuItem\n"],"names":[],"mappings":";;;;;;;;AAKA,MAAM,QAAA,CAAS;AAAA,EAEb,WAAA,CACS,SACP,SAAA,EACA;AAFO,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AAFT,IAAA,aAAA,CAAA,IAAA,EAAO,SAAA,EAAmB,IAAA,CAAA;AAKxB,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AACf,IAAA,IAAA,CAAK,KAAK,SAAS,CAAA;AAAA,EACrB;AAAA,EAEA,KAAK,SAAA,EAAyB;AAC5B,IAAA,IAAA,CAAK,OAAA,CAAQ,YAAA,CAAa,UAAA,EAAY,GAAG,CAAA;AACzC,IAAA,MAAM,YAAY,IAAA,CAAK,OAAA,CAAQ,aAAA,CAAc,CAAA,CAAA,EAAI,SAAS,CAAA,KAAA,CAAO,CAAA;AACjE,IAAA,IAAI,SAAA,EAAW;AACb,MAAA,IAAA,CAAK,OAAA,GAAU,IAAI,OAAA,CAAQ,IAAA,EAAM,SAAS,CAAA;AAAA,IAC5C;AACA,IAAA,IAAA,CAAK,YAAA,EAAa;AAAA,EACpB;AAAA,EAEA,YAAA,GAAqB;AACnB,IAAA,IAAA,CAAK,OAAA,CAAQ,gBAAA,CAAiB,SAAA,EAAW,CAAC,KAAA,KAAyB;AACjE,MAAA,MAAM,IAAA,GAAO,aAAa,KAAK,CAAA;AAC/B,MAAA,IAAI,OAAA,GAAU,KAAA;AAEd,MAAA,QAAQ,IAAA;AAAM,QACZ,KAAK,WAAW,IAAA,EAAM;AACpB,UAAA,YAAA,CAAa,KAAA,CAAM,eAA8B,YAAY,CAAA;AAC7D,UAAA,IAAA,CAAK,OAAA,IAAW,IAAA,CAAK,OAAA,CAAQ,YAAA,CAAa,CAAC,CAAA;AAC3C,UAAA,OAAA,GAAU,IAAA;AACV,UAAA;AAAA,QACF;AAAA,QACA,KAAK,WAAW,EAAA,EAAI;AAClB,UAAA,YAAA,CAAa,KAAA,CAAM,eAA8B,YAAY,CAAA;AAC7D,UAAA,IAAA,CAAK,OAAA,IACH,KAAK,OAAA,CAAQ,YAAA,CAAa,KAAK,OAAA,CAAQ,YAAA,CAAa,SAAS,CAAC,CAAA;AAChE,UAAA,OAAA,GAAU,IAAA;AACV,UAAA;AAAA,QACF;AAAA,QACA,KAAK,WAAW,GAAA,EAAK;AACnB,UAAA,YAAA,CAAa,KAAA,CAAM,eAA8B,YAAY,CAAA;AAC7D,UAAA;AAAA,QACF;AAAA,QACA,KAAK,UAAA,CAAW,KAAA;AAAA,QAChB,KAAK,UAAA,CAAW,WAAA;AAAA,QAChB,KAAK,WAAW,KAAA,EAAO;AACrB,UAAA,OAAA,GAAU,IAAA;AACT,UAAC,KAAA,CAAM,cAA8B,KAAA,EAAM;AAC5C,UAAA;AAAA,QACF;AAAA;AAEF,MAAA,IAAI,OAAA,EAAS;AACX,QAAA,KAAA,CAAM,cAAA,EAAe;AAAA,MACvB;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AACF;;;;"}