You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 lines
5.2 KiB

{"ast":null,"code":"import SubMenu from './submenu.mjs';\nimport { EVENT_CODE } from '../../../../constants/aria.mjs';\nimport { triggerEvent } from '../../../../utils/dom/aria.mjs';\nclass MenuItem {\n constructor(domNode, namespace) {\n this.domNode = domNode;\n this.submenu = null;\n this.submenu = null;\n this.init(namespace);\n }\n init(namespace) {\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 addListeners() {\n this.domNode.addEventListener(\"keydown\", event => {\n let prevDef = false;\n switch (event.code) {\n case EVENT_CODE.down:\n {\n triggerEvent(event.currentTarget, \"mouseenter\");\n this.submenu && this.submenu.gotoSubIndex(0);\n prevDef = true;\n break;\n }\n case EVENT_CODE.up:\n {\n triggerEvent(event.currentTarget, \"mouseenter\");\n this.submenu && this.submenu.gotoSubIndex(this.submenu.subMenuItems.length - 1);\n prevDef = true;\n break;\n }\n case EVENT_CODE.tab:\n {\n triggerEvent(event.currentTarget, \"mouseleave\");\n break;\n }\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n case EVENT_CODE.space:\n {\n prevDef = true;\n event.currentTarget.click();\n break;\n }\n }\n if (prevDef) {\n event.preventDefault();\n }\n });\n }\n}\nexport { MenuItem as default };","map":{"version":3,"names":["MenuItem","constructor","domNode","namespace","submenu","init","setAttribute","menuChild","querySelector","SubMenu","addListeners","addEventListener","event","prevDef","code","EVENT_CODE","down","triggerEvent","currentTarget","gotoSubIndex","up","subMenuItems","length","tab","enter","numpadEnter","space","click","preventDefault"],"sources":["../../../../../../../packages/components/menu/src/utils/menu-item.ts"],"sourcesContent":["// @ts-nocheck\nimport { 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(public domNode: HTMLElement, namespace: string) {\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 let prevDef = false\n switch (event.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"],"mappings":";;;AAGA,MAAMA,QAAQ,CAAC;EACbC,WAAWA,CAACC,OAAO,EAAEC,SAAS,EAAE;IAC9B,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACE,OAAO,GAAG,IAAI;IACnB,IAAI,CAACA,OAAO,GAAG,IAAI;IACnB,IAAI,CAACC,IAAI,CAACF,SAAS,CAAC;EACxB;EACEE,IAAIA,CAACF,SAAS,EAAE;IACd,IAAI,CAACD,OAAO,CAACI,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC;IAC1C,MAAMC,SAAS,GAAG,IAAI,CAACL,OAAO,CAACM,aAAa,CAAC,IAAIL,SAAS,OAAO,CAAC;IAClE,IAAII,SAAS,EAAE;MACb,IAAI,CAACH,OAAO,GAAG,IAAIK,OAAO,CAAC,IAAI,EAAEF,SAAS,CAAC;IACjD;IACI,IAAI,CAACG,YAAY,EAAE;EACvB;EACEA,YAAYA,CAAA,EAAG;IACb,IAAI,CAACR,OAAO,CAACS,gBAAgB,CAAC,SAAS,EAAGC,KAAK,IAAK;MAClD,IAAIC,OAAO,GAAG,KAAK;MACnB,QAAQD,KAAK,CAACE,IAAI;QAChB,KAAKC,UAAU,CAACC,IAAI;UAAE;YACpBC,YAAY,CAACL,KAAK,CAACM,aAAa,EAAE,YAAY,CAAC;YAC/C,IAAI,CAACd,OAAO,IAAI,IAAI,CAACA,OAAO,CAACe,YAAY,CAAC,CAAC,CAAC;YAC5CN,OAAO,GAAG,IAAI;YACd;UACV;QACQ,KAAKE,UAAU,CAACK,EAAE;UAAE;YAClBH,YAAY,CAACL,KAAK,CAACM,aAAa,EAAE,YAAY,CAAC;YAC/C,IAAI,CAACd,OAAO,IAAI,IAAI,CAACA,OAAO,CAACe,YAAY,CAAC,IAAI,CAACf,OAAO,CAACiB,YAAY,CAACC,MAAM,GAAG,CAAC,CAAC;YAC/ET,OAAO,GAAG,IAAI;YACd;UACV;QACQ,KAAKE,UAAU,CAACQ,GAAG;UAAE;YACnBN,YAAY,CAACL,KAAK,CAACM,aAAa,EAAE,YAAY,CAAC;YAC/C;UACV;QACQ,KAAKH,UAAU,CAACS,KAAK;QACrB,KAAKT,UAAU,CAACU,WAAW;QAC3B,KAAKV,UAAU,CAACW,KAAK;UAAE;YACrBb,OAAO,GAAG,IAAI;YACdD,KAAK,CAACM,aAAa,CAACS,KAAK,EAAE;YAC3B;UACV;MACA;MACM,IAAId,OAAO,EAAE;QACXD,KAAK,CAACgB,cAAc,EAAE;MAC9B;IACA,CAAK,CAAC;EACN;AACA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}