{"version":3,"file":"menu-item.mjs","sources":["../../../../../../../packages/components/menu/src/utils/menu-item.ts"],"sourcesContent":["import { triggerEvent, EVENT_CODE } from '@sgui-plus/utils/aria'\r\nimport SubMenu from './submenu'\r\n\r\nclass MenuItem {\r\n  public submenu: SubMenu = null!\r\n  constructor(public domNode: HTMLElement) {\r\n    this.submenu = null!\r\n    this.init()\r\n  }\r\n\r\n  init(): void {\r\n    this.domNode.setAttribute('tabindex', '0')\r\n    const menuChild = this.domNode.querySelector('.el-menu')\r\n    if (menuChild) {\r\n      this.submenu = new SubMenu(this, menuChild)\r\n    }\r\n    this.addListeners()\r\n  }\r\n\r\n  addListeners(): void {\r\n    this.domNode.addEventListener('keydown', (event: KeyboardEvent) => {\r\n      let prevDef = false\r\n      switch (event.code) {\r\n        case EVENT_CODE.down: {\r\n          triggerEvent(event.currentTarget as HTMLElement, 'mouseenter')\r\n          this.submenu && this.submenu.gotoSubIndex(0)\r\n          prevDef = true\r\n          break\r\n        }\r\n        case EVENT_CODE.up: {\r\n          triggerEvent(event.currentTarget as HTMLElement, 'mouseenter')\r\n          this.submenu &&\r\n            this.submenu.gotoSubIndex(this.submenu.subMenuItems.length - 1)\r\n          prevDef = true\r\n          break\r\n        }\r\n        case EVENT_CODE.tab: {\r\n          triggerEvent(event.currentTarget as HTMLElement, 'mouseleave')\r\n          break\r\n        }\r\n        case EVENT_CODE.enter:\r\n        case EVENT_CODE.space: {\r\n          prevDef = true\r\n          ;(event.currentTarget as HTMLElement).click()\r\n          break\r\n        }\r\n      }\r\n      if (prevDef) {\r\n        event.preventDefault()\r\n      }\r\n    })\r\n  }\r\n}\r\n\r\nexport default MenuItem\r\n"],"names":[],"mappings":";;;AAEA,MAAM,QAAQ,CAAC;AACf,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC/C,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC7D,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;AACxB,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AACxD,MAAM,IAAI,OAAO,GAAG,KAAK,CAAC;AAC1B,MAAM,QAAQ,KAAK,CAAC,IAAI;AACxB,QAAQ,KAAK,UAAU,CAAC,IAAI,EAAE;AAC9B,UAAU,YAAY,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AAC1D,UAAU,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACvD,UAAU,OAAO,GAAG,IAAI,CAAC;AACzB,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,KAAK,UAAU,CAAC,EAAE,EAAE;AAC5B,UAAU,YAAY,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AAC1D,UAAU,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1F,UAAU,OAAO,GAAG,IAAI,CAAC;AACzB,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,KAAK,UAAU,CAAC,GAAG,EAAE;AAC7B,UAAU,YAAY,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AAC1D,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,KAAK,UAAU,CAAC,KAAK,CAAC;AAC9B,QAAQ,KAAK,UAAU,CAAC,KAAK,EAAE;AAC/B,UAAU,OAAO,GAAG,IAAI,CAAC;AACzB,UAAU,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACtC,UAAU,MAAM;AAChB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH;;;;"}