{"version":3,"file":"menu-item.mjs","sources":["../../../../../packages/utils/menu/menu-item.ts"],"sourcesContent":["import { EVENT_CODE, triggerEvent } from '../aria'\nimport SubMenu from './submenu'\n\nclass MenuItem {\n  public submenu: SubMenu = null\n  constructor(public domNode: HTMLElement) {\n    this.submenu = null\n    this.init()\n  }\n\n  init(): void {\n    this.domNode.setAttribute('tabindex', '0')\n    const menuChild = this.domNode.querySelector('.el-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.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":";;;AAGA,eAAe;AAAA,EAEb,YAAmB,SAAsB;AAAtB;AADZ,mBAAmB;AAExB,SAAK,UAAU;AACf,SAAK;AAAA;AAAA,EAGP,OAAa;AACX,SAAK,QAAQ,aAAa,YAAY;AACtC,UAAM,YAAY,KAAK,QAAQ,cAAc;AAC7C,QAAI,WAAW;AACb,WAAK,UAAU,IAAI,QAAQ,MAAM;AAAA;AAEnC,SAAK;AAAA;AAAA,EAGP,eAAqB;AACnB,SAAK,QAAQ,iBAAiB,WAAW,CAAC,UAAyB;AACjE,UAAI,UAAU;AACd,cAAQ,MAAM;AAAA,aACP,WAAW,MAAM;AACpB,uBAAa,MAAM,eAA8B;AACjD,eAAK,WAAW,KAAK,QAAQ,aAAa;AAC1C,oBAAU;AACV;AAAA;AAAA,aAEG,WAAW,IAAI;AAClB,uBAAa,MAAM,eAA8B;AACjD,eAAK,WACH,KAAK,QAAQ,aAAa,KAAK,QAAQ,aAAa,SAAS;AAC/D,oBAAU;AACV;AAAA;AAAA,aAEG,WAAW,KAAK;AACnB,uBAAa,MAAM,eAA8B;AACjD;AAAA;AAAA,aAEG,WAAW;AAAA,aACX,WAAW,OAAO;AACrB,oBAAU;AACT,UAAC,MAAM,cAA8B;AACtC;AAAA;AAAA;AAGJ,UAAI,SAAS;AACX,cAAM;AAAA;AAAA;AAAA;AAAA;;;;"}