UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 3.57 kB
{"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,QAAS,CAAA;AAAA,EAEb,WAAA,CACS,SACP,SACA,EAAA;AAFO,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA,CAAA;AAFT,IAAA,IAAA,CAAO,OAAmB,GAAA,IAAA,CAAA;AAKxB,IAAA,IAAA,CAAK,OAAU,GAAA,IAAA,CAAA;AACf,IAAA,IAAA,CAAK,KAAK,SAAS,CAAA,CAAA;AAAA,GACrB;AAAA,EAEA,KAAK,SAAyB,EAAA;AAC5B,IAAK,IAAA,CAAA,OAAA,CAAQ,YAAa,CAAA,UAAA,EAAY,GAAG,CAAA,CAAA;AACzC,IAAA,MAAM,SAAY,GAAA,IAAA,CAAK,OAAQ,CAAA,aAAA,CAAc,IAAI,SAAgB,CAAA,KAAA,CAAA,CAAA,CAAA;AACjE,IAAA,IAAI,SAAW,EAAA;AACb,MAAA,IAAA,CAAK,OAAU,GAAA,IAAI,OAAQ,CAAA,IAAA,EAAM,SAAS,CAAA,CAAA;AAAA,KAC5C;AACA,IAAA,IAAA,CAAK,YAAa,EAAA,CAAA;AAAA,GACpB;AAAA,EAEA,YAAqB,GAAA;AACnB,IAAA,IAAA,CAAK,OAAQ,CAAA,gBAAA,CAAiB,SAAW,EAAA,CAAC,KAAyB,KAAA;AACjE,MAAM,MAAA,IAAA,GAAO,aAAa,KAAK,CAAA,CAAA;AAC/B,MAAA,IAAI,OAAU,GAAA,KAAA,CAAA;AAEd,MAAQ,QAAA,IAAA;AAAA,QAAA,KACD,WAAW,IAAM,EAAA;AACpB,UAAa,YAAA,CAAA,KAAA,CAAM,eAA8B,YAAY,CAAA,CAAA;AAC7D,UAAA,IAAA,CAAK,OAAW,IAAA,IAAA,CAAK,OAAQ,CAAA,YAAA,CAAa,CAAC,CAAA,CAAA;AAC3C,UAAU,OAAA,GAAA,IAAA,CAAA;AACV,UAAA,MAAA;AAAA,SACF;AAAA,QAAA,KACK,WAAW,EAAI,EAAA;AAClB,UAAa,YAAA,CAAA,KAAA,CAAM,eAA8B,YAAY,CAAA,CAAA;AAC7D,UAAK,IAAA,CAAA,OAAA,IACH,KAAK,OAAQ,CAAA,YAAA,CAAa,KAAK,OAAQ,CAAA,YAAA,CAAa,SAAS,CAAC,CAAA,CAAA;AAChE,UAAU,OAAA,GAAA,IAAA,CAAA;AACV,UAAA,MAAA;AAAA,SACF;AAAA,QAAA,KACK,WAAW,GAAK,EAAA;AACnB,UAAa,YAAA,CAAA,KAAA,CAAM,eAA8B,YAAY,CAAA,CAAA;AAC7D,UAAA,MAAA;AAAA,SACF;AAAA,QAAA,KACK,UAAW,CAAA,KAAA,CAAA;AAAA,QAAA,KACX,UAAW,CAAA,WAAA,CAAA;AAAA,QAAA,KACX,WAAW,KAAO,EAAA;AACrB,UAAU,OAAA,GAAA,IAAA,CAAA;AACT,UAAC,KAAA,CAAM,cAA8B,KAAM,EAAA,CAAA;AAC5C,UAAA,MAAA;AAAA,SACF;AAAA,OAAA;AAEF,MAAA,IAAI,OAAS,EAAA;AACX,QAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AAAA,OACvB;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AACF;;;;"}