primevue 4.3.3 → 4.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/accordionheader/AccordionHeader.vue +1 -1
  2. package/accordionheader/index.d.ts +6 -1
  3. package/accordionheader/index.mjs +1 -1
  4. package/accordionheader/index.mjs.map +1 -1
  5. package/autocomplete/AutoComplete.vue +4 -1
  6. package/autocomplete/index.d.ts +4 -0
  7. package/autocomplete/index.mjs +30 -27
  8. package/autocomplete/index.mjs.map +1 -1
  9. package/cascadeselect/CascadeSelect.vue +3 -0
  10. package/cascadeselect/CascadeSelectSub.vue +1 -1
  11. package/cascadeselect/index.mjs +21 -18
  12. package/cascadeselect/index.mjs.map +1 -1
  13. package/colorpicker/ColorPicker.vue +4 -0
  14. package/colorpicker/index.mjs +4 -0
  15. package/colorpicker/index.mjs.map +1 -1
  16. package/confirmationoptions/index.d.ts +1 -1
  17. package/confirmdialog/index.d.ts +4 -0
  18. package/contextmenu/index.mjs +12 -12
  19. package/contextmenu/index.mjs.map +1 -1
  20. package/datatable/ColumnFilter.vue +2 -2
  21. package/datatable/index.d.ts +2 -2
  22. package/datatable/index.mjs +12 -12
  23. package/datatable/index.mjs.map +1 -1
  24. package/datatable/style/index.mjs +4 -4
  25. package/datatable/style/index.mjs.map +1 -1
  26. package/dataview/index.d.ts +5 -5
  27. package/datepicker/DatePicker.vue +10 -3
  28. package/datepicker/index.mjs +69 -59
  29. package/datepicker/index.mjs.map +1 -1
  30. package/fileupload/FileUpload.vue +2 -3
  31. package/fileupload/index.mjs +6 -8
  32. package/fileupload/index.mjs.map +1 -1
  33. package/image/Image.vue +1 -1
  34. package/image/index.mjs +1 -1
  35. package/image/index.mjs.map +1 -1
  36. package/inputmask/InputMask.vue +3 -3
  37. package/inputmask/index.d.ts +3 -3
  38. package/inputmask/index.mjs +3 -3
  39. package/inputmask/index.mjs.map +1 -1
  40. package/inputnumber/InputNumber.vue +1 -1
  41. package/inputnumber/index.mjs +2 -2
  42. package/inputnumber/index.mjs.map +1 -1
  43. package/inputtext/index.d.ts +2 -1
  44. package/listbox/Listbox.vue +1 -0
  45. package/listbox/index.mjs +27 -26
  46. package/listbox/index.mjs.map +1 -1
  47. package/megamenu/index.d.ts +1 -1
  48. package/megamenu/index.mjs +11 -11
  49. package/megamenu/index.mjs.map +1 -1
  50. package/menu/Menu.vue +4 -4
  51. package/menu/index.d.ts +3 -12
  52. package/menu/index.mjs +4 -4
  53. package/menu/index.mjs.map +1 -1
  54. package/menubar/index.mjs +16 -16
  55. package/menubar/index.mjs.map +1 -1
  56. package/metergroup/index.d.ts +1 -1
  57. package/multiselect/MultiSelect.vue +4 -1
  58. package/multiselect/index.d.ts +1 -1
  59. package/multiselect/index.mjs +51 -48
  60. package/multiselect/index.mjs.map +1 -1
  61. package/organizationchart/OrganizationChartNode.vue +1 -1
  62. package/organizationchart/index.mjs.map +1 -1
  63. package/organizationchart/style/index.mjs +11 -6
  64. package/organizationchart/style/index.mjs.map +1 -1
  65. package/package.json +6 -6
  66. package/panel/Panel.vue +2 -2
  67. package/panel/index.mjs +2 -2
  68. package/panel/index.mjs.map +1 -1
  69. package/panelmenu/index.mjs +3 -3
  70. package/panelmenu/index.mjs.map +1 -1
  71. package/password/Password.vue +7 -3
  72. package/password/index.d.ts +1 -1
  73. package/password/index.mjs +14 -8
  74. package/password/index.mjs.map +1 -1
  75. package/select/Select.vue +20 -1
  76. package/select/index.mjs +53 -35
  77. package/select/index.mjs.map +1 -1
  78. package/selectbutton/index.d.ts +0 -24
  79. package/splitter/Splitter.vue +1 -1
  80. package/splitter/index.d.ts +1 -1
  81. package/splitter/index.mjs +0 -1
  82. package/splitter/index.mjs.map +1 -1
  83. package/splitter/style/index.mjs +1 -13
  84. package/splitter/style/index.mjs.map +1 -1
  85. package/step/Step.vue +2 -2
  86. package/step/index.mjs +2 -2
  87. package/step/index.mjs.map +1 -1
  88. package/steppanel/StepPanel.vue +2 -2
  89. package/steppanel/index.mjs +2 -2
  90. package/steppanel/index.mjs.map +1 -1
  91. package/textarea/index.d.ts +2 -1
  92. package/tieredmenu/index.mjs +12 -12
  93. package/tieredmenu/index.mjs.map +1 -1
  94. package/tooltip/index.mjs +25 -14
  95. package/tooltip/index.mjs.map +1 -1
  96. package/treeselect/TreeSelect.vue +3 -0
  97. package/treeselect/index.mjs +3 -0
  98. package/treeselect/index.mjs.map +1 -1
  99. package/umd/primevue.min.js +12213 -1
  100. package/virtualscroller/index.mjs +18 -18
  101. package/virtualscroller/index.mjs.map +1 -1
  102. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/tieredmenu/BaseTieredMenu.vue","../../src/tieredmenu/TieredMenuSub.vue","../../src/tieredmenu/TieredMenuSub.vue?vue&type=template&id=34d7057f&lang.js","../../src/tieredmenu/TieredMenu.vue","../../src/tieredmenu/TieredMenu.vue?vue&type=template&id=6f9903c3&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TieredMenuStyle from 'primevue/tieredmenu/style';\n\nexport default {\n name: 'BaseTieredMenu',\n extends: BaseComponent,\n props: {\n popup: {\n type: Boolean,\n default: false\n },\n model: {\n type: Array,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n autoZIndex: {\n type: Boolean,\n default: true\n },\n baseZIndex: {\n type: Number,\n default: 0\n },\n disabled: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: TieredMenuStyle,\n provide() {\n return {\n $pcTieredMenu: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <transition name=\"p-tieredmenu\" @enter=\"onEnter\" v-bind=\"ptm('menu.transition')\">\n <ul v-if=\"level === 0 ? true : visible\" :ref=\"containerRef\" :tabindex=\"tabindex\">\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n role=\"menuitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-disabled=\"isItemDisabled(processedItem) || undefined\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-haspopup=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize()\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions(processedItem, index, 'item')\"\n :data-p-active=\"isItemActive(processedItem)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div\n :class=\"cx('itemContent')\"\n @click=\"onItemClick($event, processedItem)\"\n @mouseenter=\"onItemMouseEnter($event, processedItem)\"\n @mousemove=\"onItemMouseMove($event, processedItem)\"\n v-bind=\"getPTOptions(processedItem, index, 'itemContent')\"\n >\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"getItemProp(processedItem, 'url')\" :class=\"cx('itemLink')\" :target=\"getItemProp(processedItem, 'target')\" tabindex=\"-1\" v-bind=\"getPTOptions(processedItem, index, 'itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"processedItem.item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"getItemProp(processedItem, 'icon')\" :class=\"[cx('itemIcon'), getItemProp(processedItem, 'icon')]\" v-bind=\"getPTOptions(processedItem, index, 'itemIcon')\" />\n <span :id=\"getItemLabelId(processedItem)\" :class=\"cx('itemLabel')\" v-bind=\"getPTOptions(processedItem, index, 'itemLabel')\">{{ getItemLabel(processedItem) }}</span>\n <template v-if=\"getItemProp(processedItem, 'items')\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :class=\"cx('submenuIcon')\" :active=\"isItemActive(processedItem)\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n <AngleRightIcon v-else :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <TieredMenuSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n :class=\"cx('submenu')\"\n :style=\"sx('submenu', true, { processedItem })\"\n :aria-labelledby=\"getItemLabelId(processedItem)\"\n role=\"menu\"\n :menuId=\"menuId\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :templates=\"templates\"\n :activeItemPath=\"activeItemPath\"\n :level=\"level + 1\"\n :visible=\"isItemActive(processedItem) && isItemGroup(processedItem)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n @item-mousemove=\"$emit('item-mousemove', $event)\"\n v-bind=\"ptm('submenu')\"\n />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n </transition>\n</template>\n\n<script>\nimport { nestedPosition } from '@primeuix/utils/dom';\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'TieredMenuSub',\n hostName: 'TieredMenu',\n extends: BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n container: null,\n props: {\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n items: {\n type: Array,\n default: null\n },\n visible: {\n type: Boolean,\n default: false\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n methods: {\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId(processedItem) {\n return `${this.menuId}_${processedItem.key}_label`;\n },\n getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive(processedItem) {\n return this.activeItemPath.some((path) => path.key === processedItem.key);\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onEnter() {\n nestedPosition(this.container, this.level);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-click', { originalEvent: event, processedItem, isFocus: true });\n },\n onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', { originalEvent: event, processedItem });\n },\n onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', { originalEvent: event, processedItem });\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n },\n getAriaPosInset(index) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1\n },\n this.getPTOptions(processedItem, index, 'itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions(processedItem, index, 'itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions(processedItem, index, 'itemLabel')\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions(processedItem, index, 'submenuIcon')\n )\n };\n },\n containerRef(el) {\n this.container = el;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <transition name=\"p-tieredmenu\" @enter=\"onEnter\" v-bind=\"ptm('menu.transition')\">\n <ul v-if=\"level === 0 ? true : visible\" :ref=\"containerRef\" :tabindex=\"tabindex\">\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n role=\"menuitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-disabled=\"isItemDisabled(processedItem) || undefined\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-haspopup=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize()\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions(processedItem, index, 'item')\"\n :data-p-active=\"isItemActive(processedItem)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div\n :class=\"cx('itemContent')\"\n @click=\"onItemClick($event, processedItem)\"\n @mouseenter=\"onItemMouseEnter($event, processedItem)\"\n @mousemove=\"onItemMouseMove($event, processedItem)\"\n v-bind=\"getPTOptions(processedItem, index, 'itemContent')\"\n >\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"getItemProp(processedItem, 'url')\" :class=\"cx('itemLink')\" :target=\"getItemProp(processedItem, 'target')\" tabindex=\"-1\" v-bind=\"getPTOptions(processedItem, index, 'itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"processedItem.item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"getItemProp(processedItem, 'icon')\" :class=\"[cx('itemIcon'), getItemProp(processedItem, 'icon')]\" v-bind=\"getPTOptions(processedItem, index, 'itemIcon')\" />\n <span :id=\"getItemLabelId(processedItem)\" :class=\"cx('itemLabel')\" v-bind=\"getPTOptions(processedItem, index, 'itemLabel')\">{{ getItemLabel(processedItem) }}</span>\n <template v-if=\"getItemProp(processedItem, 'items')\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :class=\"cx('submenuIcon')\" :active=\"isItemActive(processedItem)\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n <AngleRightIcon v-else :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <TieredMenuSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n :class=\"cx('submenu')\"\n :style=\"sx('submenu', true, { processedItem })\"\n :aria-labelledby=\"getItemLabelId(processedItem)\"\n role=\"menu\"\n :menuId=\"menuId\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :templates=\"templates\"\n :activeItemPath=\"activeItemPath\"\n :level=\"level + 1\"\n :visible=\"isItemActive(processedItem) && isItemGroup(processedItem)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n @item-mousemove=\"$emit('item-mousemove', $event)\"\n v-bind=\"ptm('submenu')\"\n />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n </transition>\n</template>\n\n<script>\nimport { nestedPosition } from '@primeuix/utils/dom';\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'TieredMenuSub',\n hostName: 'TieredMenu',\n extends: BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n container: null,\n props: {\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n items: {\n type: Array,\n default: null\n },\n visible: {\n type: Boolean,\n default: false\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n methods: {\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId(processedItem) {\n return `${this.menuId}_${processedItem.key}_label`;\n },\n getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive(processedItem) {\n return this.activeItemPath.some((path) => path.key === processedItem.key);\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onEnter() {\n nestedPosition(this.container, this.level);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-click', { originalEvent: event, processedItem, isFocus: true });\n },\n onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', { originalEvent: event, processedItem });\n },\n onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', { originalEvent: event, processedItem });\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n },\n getAriaPosInset(index) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1\n },\n this.getPTOptions(processedItem, index, 'itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions(processedItem, index, 'itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions(processedItem, index, 'itemLabel')\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions(processedItem, index, 'submenuIcon')\n )\n };\n },\n containerRef(el) {\n this.container = el;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\" :disabled=\"!popup\">\n <transition name=\"p-connected-overlay\" @enter=\"onEnter\" @after-enter=\"onAfterEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"visible\" :ref=\"containerRef\" :id=\"$id\" :class=\"cx('root')\" @click=\"onOverlayClick\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <TieredMenuSub\n :ref=\"menubarRef\"\n :id=\"$id + '_list'\"\n :class=\"cx('rootList')\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"menubar\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-disabled=\"disabled || undefined\"\n aria-orientation=\"vertical\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"$id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :activeItemPath=\"activeItemPath\"\n :level=\"0\"\n :visible=\"submenuVisible\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n @item-mousemove=\"onItemMouseMove\"\n v-bind=\"ptm('rootList')\"\n />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseTieredMenu from './BaseTieredMenu.vue';\nimport TieredMenuSub from './TieredMenuSub.vue';\n\nexport default {\n name: 'TieredMenu',\n extends: BaseTieredMenu,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n matchMediaListener: null,\n scrollHandler: null,\n resizeListener: null,\n target: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n visible: !this.popup,\n submenuVisible: false,\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n activeItemPath(newPath) {\n if (!this.popup) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n }\n },\n mounted() {\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n this.visible ? this.hide(event, true) : this.show(event);\n },\n show(event, isFocus) {\n if (this.popup) {\n this.$emit('before-show');\n this.visible = true;\n this.target = this.target || event.currentTarget;\n this.relatedTarget = event.relatedTarget || null;\n }\n\n isFocus && focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.popup) {\n this.$emit('before-hide');\n this.visible = false;\n }\n\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.relatedTarget || this.target || this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n\n if (!this.popup) {\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n },\n onItemChange(event, type) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, level, parentKey, items } = processedItem;\n const grouped = isNotEmpty(items);\n\n const activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n\n this.focusedItemInfo = { index, level, parentKey };\n\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n\n if (type === 'hover' && this.queryMatches) {\n return;\n }\n\n this.activeItemPath = activeItemPath;\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n onItemClick(event) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, level, parentKey } = processedItem;\n\n this.activeItemPath = this.activeItemPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedItemInfo = { index, level, parentKey };\n\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n const rootProcessedItem = root ? processedItem : this.activeItemPath.find((p) => p.parentKey === '');\n\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event, 'hover');\n }\n },\n onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey(event) {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.popup && this.hide(event, true);\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n const root = isEmpty(processedItem.parent);\n\n if (!root) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n },\n onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.menubar, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n if (!this.popup) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (this.popup || this.focusedItemInfo.level !== 0) {\n const _focusedItemInfo = this.focusedItemInfo;\n\n this.hide(event, false);\n this.focusedItemInfo = { index: Number(_focusedItemInfo.parentKey.split('_')[0]), level: 0, parentKey: '' };\n this.popup && focus(this.target);\n }\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n onEnter(el) {\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n\n addStyle(el, { position: 'absolute', top: '0' });\n this.alignOverlay();\n focus(this.menubar);\n this.scrollInView();\n },\n onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.container = null;\n this.dirty = false;\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay() {\n absolutePosition(this.container, this.target);\n const targetWidth = getOuterWidth(this.target);\n\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = this.popup ? !(this.target && (this.target === event.target || this.target.contains(event.target))) : true;\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, (event) => {\n this.hide(event, true);\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return this.activeItemPath.some((p) => p.key === processedItem.key);\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.$id}_${index}` : this.focusedItemId;\n const element = findSingle(this.menubar, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n },\n createProcessedItems(items, level = 0, parent = {}, parentKey = '') {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newItem['items'] = this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n\n return processedItems;\n },\n containerRef(el) {\n this.container = el;\n },\n menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems() {\n const processedItem = this.activeItemPath.find((p) => p.key === this.focusedItemInfo.parentKey);\n\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? `${this.$id}${isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : ''}_${this.focusedItemInfo.index}` : null;\n }\n },\n components: {\n TieredMenuSub: TieredMenuSub,\n Portal: Portal\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\" :disabled=\"!popup\">\n <transition name=\"p-connected-overlay\" @enter=\"onEnter\" @after-enter=\"onAfterEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"visible\" :ref=\"containerRef\" :id=\"$id\" :class=\"cx('root')\" @click=\"onOverlayClick\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <TieredMenuSub\n :ref=\"menubarRef\"\n :id=\"$id + '_list'\"\n :class=\"cx('rootList')\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"menubar\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-disabled=\"disabled || undefined\"\n aria-orientation=\"vertical\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"$id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :activeItemPath=\"activeItemPath\"\n :level=\"0\"\n :visible=\"submenuVisible\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n @item-mousemove=\"onItemMouseMove\"\n v-bind=\"ptm('rootList')\"\n />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseTieredMenu from './BaseTieredMenu.vue';\nimport TieredMenuSub from './TieredMenuSub.vue';\n\nexport default {\n name: 'TieredMenu',\n extends: BaseTieredMenu,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n matchMediaListener: null,\n scrollHandler: null,\n resizeListener: null,\n target: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n visible: !this.popup,\n submenuVisible: false,\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n activeItemPath(newPath) {\n if (!this.popup) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n }\n },\n mounted() {\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n this.visible ? this.hide(event, true) : this.show(event);\n },\n show(event, isFocus) {\n if (this.popup) {\n this.$emit('before-show');\n this.visible = true;\n this.target = this.target || event.currentTarget;\n this.relatedTarget = event.relatedTarget || null;\n }\n\n isFocus && focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.popup) {\n this.$emit('before-hide');\n this.visible = false;\n }\n\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.relatedTarget || this.target || this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n\n if (!this.popup) {\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n },\n onItemChange(event, type) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, level, parentKey, items } = processedItem;\n const grouped = isNotEmpty(items);\n\n const activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n\n this.focusedItemInfo = { index, level, parentKey };\n\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n\n if (type === 'hover' && this.queryMatches) {\n return;\n }\n\n this.activeItemPath = activeItemPath;\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n onItemClick(event) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, level, parentKey } = processedItem;\n\n this.activeItemPath = this.activeItemPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedItemInfo = { index, level, parentKey };\n\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n const rootProcessedItem = root ? processedItem : this.activeItemPath.find((p) => p.parentKey === '');\n\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event, 'hover');\n }\n },\n onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey(event) {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.popup && this.hide(event, true);\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n const root = isEmpty(processedItem.parent);\n\n if (!root) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n },\n onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.menubar, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n if (!this.popup) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (this.popup || this.focusedItemInfo.level !== 0) {\n const _focusedItemInfo = this.focusedItemInfo;\n\n this.hide(event, false);\n this.focusedItemInfo = { index: Number(_focusedItemInfo.parentKey.split('_')[0]), level: 0, parentKey: '' };\n this.popup && focus(this.target);\n }\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n onEnter(el) {\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n\n addStyle(el, { position: 'absolute', top: '0' });\n this.alignOverlay();\n focus(this.menubar);\n this.scrollInView();\n },\n onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.container = null;\n this.dirty = false;\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay() {\n absolutePosition(this.container, this.target);\n const targetWidth = getOuterWidth(this.target);\n\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = this.popup ? !(this.target && (this.target === event.target || this.target.contains(event.target))) : true;\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, (event) => {\n this.hide(event, true);\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return this.activeItemPath.some((p) => p.key === processedItem.key);\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.$id}_${index}` : this.focusedItemId;\n const element = findSingle(this.menubar, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n },\n createProcessedItems(items, level = 0, parent = {}, parentKey = '') {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newItem['items'] = this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n\n return processedItems;\n },\n containerRef(el) {\n this.container = el;\n },\n menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems() {\n const processedItem = this.activeItemPath.find((p) => p.key === this.focusedItemInfo.parentKey);\n\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? `${this.$id}${isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : ''}_${this.focusedItemInfo.index}` : null;\n }\n },\n components: {\n TieredMenuSub: TieredMenuSub,\n Portal: Portal\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","popup","type","Boolean","model","Array","appendTo","String","Object","breakpoint","autoZIndex","baseZIndex","Number","disabled","tabindex","ariaLabelledby","ariaLabel","style","TieredMenuStyle","provide","$pcTieredMenu","$parentInstance","hostName","emits","container","menuId","focusedItemId","items","visible","level","templates","activeItemPath","methods","getItemId","processedItem","concat","key","getItemKey","getItemProp","params","item","resolve","undefined","getItemLabel","getItemLabelId","getPTOptions","index","ptm","context","active","isItemActive","focused","isItemFocused","isItemDisabled","some","path","isItemVisible","isItemGroup","isNotEmpty","onEnter","nestedPosition","onItemClick","event","originalEvent","$emit","isFocus","onItemMouseEnter","onItemMouseMove","getAriaSetSize","_this","filter","length","getAriaPosInset","_this2","slice","getMenuItemProps","action","mergeProps","cx","icon","label","submenuicon","containerRef","el","components","AngleRightIcon","directives","ripple","Ripple","_openBlock","_createBlock","_Transition","_mergeProps","$options","_ctx","$props","_createElementBlock","ref","_Fragment","_renderList","id","role","_createElementVNode","onClick","$event","onMouseenter","onMousemove","_withDirectives","href","target","itemicon","_resolveDynamicComponent","_toDisplayString","_hoisted_5","_component_AngleRightIcon","hasSubmenu","_component_TieredMenuSub","sx","pt","unstyled","_cache","onItemMouseenter","onItemMousemove","_hoisted_6","BaseTieredMenu","inheritAttrs","outsideClickListener","matchMediaListener","scrollHandler","resizeListener","menubar","searchTimeout","searchValue","data","focusedItemInfo","parentKey","submenuVisible","dirty","query","queryMatches","watch","newPath","bindOutsideClickListener","bindResizeListener","unbindOutsideClickListener","unbindResizeListener","mounted","bindMatchMediaListener","beforeUnmount","unbindMatchMediaListener","destroy","ZIndex","clear","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","toggle","hide","show","currentTarget","relatedTarget","focus","onFocus","findFirstFocusedItemIndex","onBlur","onKeyDown","preventDefault","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","isPrintableCharacter","searchItems","onItemChange","isEmpty","grouped","p","push","onOverlayClick","OverlayEventBus","emit","root","parent","selected","isSelected","startsWith","rootProcessedItem","find","changeFocusedItemIndex","itemIndex","findNextItemIndex","altKey","visibleItems","findPrevItemIndex","findLastFocusedItemIndex","parentItem","findFirstItemIndex","findLastItemIndex","element","findSingle","anchorElement","click","_focusedItemInfo","split","set","$primevue","config","zIndex","menu","addStyle","position","top","alignOverlay","scrollInView","onAfterEnter","bindScrollListener","onLeave","unbindScrollListener","onAfterLeave","absolutePosition","targetWidth","getOuterWidth","minWidth","isOutsideContainer","contains","isOutsideTarget","document","addEventListener","removeEventListener","_this3","ConnectedOverlayScrollHandler","_this4","isTouchDevice","window","_this5","matchMedia","matches","isItemMatched","_this$getProccessedIt","isValidItem","toLocaleLowerCase","isValidSelectedItem","_this6","findIndex","_this7","findLastIndex","_this8","matchedItemIndex","_this9","findSelectedItemIndex","_this10","selectedIndex","char","_this11","matched","clearTimeout","setTimeout","$id","scrollIntoView","block","inline","createProcessedItems","_this12","arguments","processedItems","forEach","newItem","menubarRef","$el","computed","_this13","TieredMenuSub","Portal","_component_Portal","_createVNode","$data","apply","ptmi","$slots","start","_renderSlot","onKeydown","end"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/tieredmenu/BaseTieredMenu.vue","../../src/tieredmenu/TieredMenuSub.vue","../../src/tieredmenu/TieredMenuSub.vue?vue&type=template&id=34d7057f&lang.js","../../src/tieredmenu/TieredMenu.vue","../../src/tieredmenu/TieredMenu.vue?vue&type=template&id=6f9903c3&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport TieredMenuStyle from 'primevue/tieredmenu/style';\n\nexport default {\n name: 'BaseTieredMenu',\n extends: BaseComponent,\n props: {\n popup: {\n type: Boolean,\n default: false\n },\n model: {\n type: Array,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n autoZIndex: {\n type: Boolean,\n default: true\n },\n baseZIndex: {\n type: Number,\n default: 0\n },\n disabled: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: TieredMenuStyle,\n provide() {\n return {\n $pcTieredMenu: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <transition name=\"p-tieredmenu\" @enter=\"onEnter\" v-bind=\"ptm('menu.transition')\">\n <ul v-if=\"level === 0 ? true : visible\" :ref=\"containerRef\" :tabindex=\"tabindex\">\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n role=\"menuitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-disabled=\"isItemDisabled(processedItem) || undefined\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-haspopup=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize()\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions(processedItem, index, 'item')\"\n :data-p-active=\"isItemActive(processedItem)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div\n :class=\"cx('itemContent')\"\n @click=\"onItemClick($event, processedItem)\"\n @mouseenter=\"onItemMouseEnter($event, processedItem)\"\n @mousemove=\"onItemMouseMove($event, processedItem)\"\n v-bind=\"getPTOptions(processedItem, index, 'itemContent')\"\n >\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"getItemProp(processedItem, 'url')\" :class=\"cx('itemLink')\" :target=\"getItemProp(processedItem, 'target')\" tabindex=\"-1\" v-bind=\"getPTOptions(processedItem, index, 'itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"processedItem.item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"getItemProp(processedItem, 'icon')\" :class=\"[cx('itemIcon'), getItemProp(processedItem, 'icon')]\" v-bind=\"getPTOptions(processedItem, index, 'itemIcon')\" />\n <span :id=\"getItemLabelId(processedItem)\" :class=\"cx('itemLabel')\" v-bind=\"getPTOptions(processedItem, index, 'itemLabel')\">{{ getItemLabel(processedItem) }}</span>\n <template v-if=\"getItemProp(processedItem, 'items')\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :class=\"cx('submenuIcon')\" :active=\"isItemActive(processedItem)\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n <AngleRightIcon v-else :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <TieredMenuSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n :class=\"cx('submenu')\"\n :style=\"sx('submenu', true, { processedItem })\"\n :aria-labelledby=\"getItemLabelId(processedItem)\"\n role=\"menu\"\n :menuId=\"menuId\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :templates=\"templates\"\n :activeItemPath=\"activeItemPath\"\n :level=\"level + 1\"\n :visible=\"isItemActive(processedItem) && isItemGroup(processedItem)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n @item-mousemove=\"$emit('item-mousemove', $event)\"\n v-bind=\"ptm('submenu')\"\n />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n </transition>\n</template>\n\n<script>\nimport { nestedPosition } from '@primeuix/utils/dom';\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'TieredMenuSub',\n hostName: 'TieredMenu',\n extends: BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n container: null,\n props: {\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n items: {\n type: Array,\n default: null\n },\n visible: {\n type: Boolean,\n default: false\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n methods: {\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId(processedItem) {\n return `${this.menuId}_${processedItem.key}_label`;\n },\n getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive(processedItem) {\n return this.activeItemPath.some((path) => path.key === processedItem.key);\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onEnter() {\n nestedPosition(this.container, this.level);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-click', { originalEvent: event, processedItem, isFocus: true });\n },\n onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', { originalEvent: event, processedItem });\n },\n onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', { originalEvent: event, processedItem });\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n },\n getAriaPosInset(index) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1\n },\n this.getPTOptions(processedItem, index, 'itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions(processedItem, index, 'itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions(processedItem, index, 'itemLabel')\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions(processedItem, index, 'submenuIcon')\n )\n };\n },\n containerRef(el) {\n this.container = el;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <transition name=\"p-tieredmenu\" @enter=\"onEnter\" v-bind=\"ptm('menu.transition')\">\n <ul v-if=\"level === 0 ? true : visible\" :ref=\"containerRef\" :tabindex=\"tabindex\">\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n role=\"menuitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-disabled=\"isItemDisabled(processedItem) || undefined\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-haspopup=\"isItemGroup(processedItem) && !getItemProp(processedItem, 'to') ? 'menu' : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize()\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions(processedItem, index, 'item')\"\n :data-p-active=\"isItemActive(processedItem)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div\n :class=\"cx('itemContent')\"\n @click=\"onItemClick($event, processedItem)\"\n @mouseenter=\"onItemMouseEnter($event, processedItem)\"\n @mousemove=\"onItemMouseMove($event, processedItem)\"\n v-bind=\"getPTOptions(processedItem, index, 'itemContent')\"\n >\n <template v-if=\"!templates.item\">\n <a v-ripple :href=\"getItemProp(processedItem, 'url')\" :class=\"cx('itemLink')\" :target=\"getItemProp(processedItem, 'target')\" tabindex=\"-1\" v-bind=\"getPTOptions(processedItem, index, 'itemLink')\">\n <component v-if=\"templates.itemicon\" :is=\"templates.itemicon\" :item=\"processedItem.item\" :class=\"cx('itemIcon')\" />\n <span v-else-if=\"getItemProp(processedItem, 'icon')\" :class=\"[cx('itemIcon'), getItemProp(processedItem, 'icon')]\" v-bind=\"getPTOptions(processedItem, index, 'itemIcon')\" />\n <span :id=\"getItemLabelId(processedItem)\" :class=\"cx('itemLabel')\" v-bind=\"getPTOptions(processedItem, index, 'itemLabel')\">{{ getItemLabel(processedItem) }}</span>\n <template v-if=\"getItemProp(processedItem, 'items')\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :class=\"cx('submenuIcon')\" :active=\"isItemActive(processedItem)\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n <AngleRightIcon v-else :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions(processedItem, index, 'submenuIcon')\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <TieredMenuSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n :class=\"cx('submenu')\"\n :style=\"sx('submenu', true, { processedItem })\"\n :aria-labelledby=\"getItemLabelId(processedItem)\"\n role=\"menu\"\n :menuId=\"menuId\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :templates=\"templates\"\n :activeItemPath=\"activeItemPath\"\n :level=\"level + 1\"\n :visible=\"isItemActive(processedItem) && isItemGroup(processedItem)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n @item-mousemove=\"$emit('item-mousemove', $event)\"\n v-bind=\"ptm('submenu')\"\n />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n </transition>\n</template>\n\n<script>\nimport { nestedPosition } from '@primeuix/utils/dom';\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'TieredMenuSub',\n hostName: 'TieredMenu',\n extends: BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n container: null,\n props: {\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n items: {\n type: Array,\n default: null\n },\n visible: {\n type: Boolean,\n default: false\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n methods: {\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId(processedItem) {\n return `${this.menuId}_${processedItem.key}_label`;\n },\n getPTOptions(processedItem, index, key) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive(processedItem) {\n return this.activeItemPath.some((path) => path.key === processedItem.key);\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onEnter() {\n nestedPosition(this.container, this.level);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-click', { originalEvent: event, processedItem, isFocus: true });\n },\n onItemMouseEnter(event, processedItem) {\n this.$emit('item-mouseenter', { originalEvent: event, processedItem });\n },\n onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', { originalEvent: event, processedItem });\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n },\n getAriaPosInset(index) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1\n },\n this.getPTOptions(processedItem, index, 'itemLink')\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions(processedItem, index, 'itemIcon')\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions(processedItem, index, 'itemLabel')\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions(processedItem, index, 'submenuIcon')\n )\n };\n },\n containerRef(el) {\n this.container = el;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\" :disabled=\"!popup\">\n <transition name=\"p-connected-overlay\" @enter=\"onEnter\" @after-enter=\"onAfterEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"visible\" :ref=\"containerRef\" :id=\"$id\" :class=\"cx('root')\" @click=\"onOverlayClick\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <TieredMenuSub\n :ref=\"menubarRef\"\n :id=\"$id + '_list'\"\n :class=\"cx('rootList')\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"menubar\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-disabled=\"disabled || undefined\"\n aria-orientation=\"vertical\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"$id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :activeItemPath=\"activeItemPath\"\n :level=\"0\"\n :visible=\"submenuVisible\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n @item-mousemove=\"onItemMouseMove\"\n v-bind=\"ptm('rootList')\"\n />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseTieredMenu from './BaseTieredMenu.vue';\nimport TieredMenuSub from './TieredMenuSub.vue';\n\nexport default {\n name: 'TieredMenu',\n extends: BaseTieredMenu,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n matchMediaListener: null,\n scrollHandler: null,\n resizeListener: null,\n target: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n visible: !this.popup,\n submenuVisible: false,\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n activeItemPath(newPath) {\n if (!this.popup) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n }\n },\n mounted() {\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n this.visible ? this.hide(event, true) : this.show(event);\n },\n show(event, isFocus) {\n if (this.popup) {\n this.$emit('before-show');\n this.visible = true;\n this.target = this.target || event.currentTarget;\n this.relatedTarget = event.relatedTarget || null;\n }\n\n isFocus && focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.popup) {\n this.$emit('before-hide');\n this.visible = false;\n }\n\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.relatedTarget || this.target || this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n\n if (!this.popup) {\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n },\n onItemChange(event, type) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, level, parentKey, items } = processedItem;\n const grouped = isNotEmpty(items);\n\n const activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n\n this.focusedItemInfo = { index, level, parentKey };\n\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n\n if (type === 'hover' && this.queryMatches) {\n return;\n }\n\n this.activeItemPath = activeItemPath;\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n onItemClick(event) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, level, parentKey } = processedItem;\n\n this.activeItemPath = this.activeItemPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedItemInfo = { index, level, parentKey };\n\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n const rootProcessedItem = root ? processedItem : this.activeItemPath.find((p) => p.parentKey === '');\n\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event, 'hover');\n }\n },\n onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey(event) {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.popup && this.hide(event, true);\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n const root = isEmpty(processedItem.parent);\n\n if (!root) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n },\n onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.menubar, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n if (!this.popup) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (this.popup || this.focusedItemInfo.level !== 0) {\n const _focusedItemInfo = this.focusedItemInfo;\n\n this.hide(event, false);\n this.focusedItemInfo = { index: Number(_focusedItemInfo.parentKey.split('_')[0]), level: 0, parentKey: '' };\n this.popup && focus(this.target);\n }\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n onEnter(el) {\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n\n addStyle(el, { position: 'absolute', top: '0' });\n this.alignOverlay();\n focus(this.menubar);\n this.scrollInView();\n },\n onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.container = null;\n this.dirty = false;\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay() {\n absolutePosition(this.container, this.target);\n const targetWidth = getOuterWidth(this.target);\n\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = this.popup ? !(this.target && (this.target === event.target || this.target.contains(event.target))) : true;\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, (event) => {\n this.hide(event, true);\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return this.activeItemPath.some((p) => p.key === processedItem.key);\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.$id}_${index}` : this.focusedItemId;\n const element = findSingle(this.menubar, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n },\n createProcessedItems(items, level = 0, parent = {}, parentKey = '') {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newItem['items'] = this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n\n return processedItems;\n },\n containerRef(el) {\n this.container = el;\n },\n menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems() {\n const processedItem = this.activeItemPath.find((p) => p.key === this.focusedItemInfo.parentKey);\n\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? `${this.$id}${isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : ''}_${this.focusedItemInfo.index}` : null;\n }\n },\n components: {\n TieredMenuSub: TieredMenuSub,\n Portal: Portal\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\" :disabled=\"!popup\">\n <transition name=\"p-connected-overlay\" @enter=\"onEnter\" @after-enter=\"onAfterEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"visible\" :ref=\"containerRef\" :id=\"$id\" :class=\"cx('root')\" @click=\"onOverlayClick\" v-bind=\"ptmi('root')\">\n <div v-if=\"$slots.start\" :class=\"cx('start')\" v-bind=\"ptm('start')\">\n <slot name=\"start\"></slot>\n </div>\n <TieredMenuSub\n :ref=\"menubarRef\"\n :id=\"$id + '_list'\"\n :class=\"cx('rootList')\"\n :tabindex=\"!disabled ? tabindex : -1\"\n role=\"menubar\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-disabled=\"disabled || undefined\"\n aria-orientation=\"vertical\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"$id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :activeItemPath=\"activeItemPath\"\n :level=\"0\"\n :visible=\"submenuVisible\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n @item-mousemove=\"onItemMouseMove\"\n v-bind=\"ptm('rootList')\"\n />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { absolutePosition, addStyle, findSingle, focus, getOuterWidth, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport { ConnectedOverlayScrollHandler } from '@primevue/core/utils';\nimport OverlayEventBus from 'primevue/overlayeventbus';\nimport Portal from 'primevue/portal';\nimport BaseTieredMenu from './BaseTieredMenu.vue';\nimport TieredMenuSub from './TieredMenuSub.vue';\n\nexport default {\n name: 'TieredMenu',\n extends: BaseTieredMenu,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'before-show', 'before-hide', 'hide', 'show'],\n outsideClickListener: null,\n matchMediaListener: null,\n scrollHandler: null,\n resizeListener: null,\n target: null,\n container: null,\n menubar: null,\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n visible: !this.popup,\n submenuVisible: false,\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n activeItemPath(newPath) {\n if (!this.popup) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n }\n },\n mounted() {\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.scrollHandler) {\n this.scrollHandler.destroy();\n this.scrollHandler = null;\n }\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n this.visible ? this.hide(event, true) : this.show(event);\n },\n show(event, isFocus) {\n if (this.popup) {\n this.$emit('before-show');\n this.visible = true;\n this.target = this.target || event.currentTarget;\n this.relatedTarget = event.relatedTarget || null;\n }\n\n isFocus && focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.popup) {\n this.$emit('before-hide');\n this.visible = false;\n }\n\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.relatedTarget || this.target || this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n\n if (!this.popup) {\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\n }\n\n this.$emit('focus', event);\n },\n onBlur(event) {\n this.focused = false;\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n this.searchValue = '';\n this.dirty = false;\n this.$emit('blur', event);\n },\n onKeyDown(event) {\n if (this.disabled) {\n event.preventDefault();\n\n return;\n }\n\n const metaKey = event.metaKey || event.ctrlKey;\n\n switch (event.code) {\n case 'ArrowDown':\n this.onArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onArrowUpKey(event);\n break;\n\n case 'ArrowLeft':\n this.onArrowLeftKey(event);\n break;\n\n case 'ArrowRight':\n this.onArrowRightKey(event);\n break;\n\n case 'Home':\n this.onHomeKey(event);\n break;\n\n case 'End':\n this.onEndKey(event);\n break;\n\n case 'Space':\n this.onSpaceKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n this.onEnterKey(event);\n break;\n\n case 'Escape':\n this.onEscapeKey(event);\n break;\n\n case 'Tab':\n this.onTabKey(event);\n break;\n\n case 'PageDown':\n case 'PageUp':\n case 'Backspace':\n case 'ShiftLeft':\n case 'ShiftRight':\n //NOOP\n break;\n\n default:\n if (!metaKey && isPrintableCharacter(event.key)) {\n this.searchItems(event, event.key);\n }\n\n break;\n }\n },\n onItemChange(event, type) {\n const { processedItem, isFocus } = event;\n\n if (isEmpty(processedItem)) return;\n\n const { index, key, level, parentKey, items } = processedItem;\n const grouped = isNotEmpty(items);\n\n const activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n\n this.focusedItemInfo = { index, level, parentKey };\n\n grouped && (this.dirty = true);\n isFocus && focus(this.menubar);\n\n if (type === 'hover' && this.queryMatches) {\n return;\n }\n\n this.activeItemPath = activeItemPath;\n },\n onOverlayClick(event) {\n OverlayEventBus.emit('overlay-click', {\n originalEvent: event,\n target: this.target\n });\n },\n onItemClick(event) {\n const { originalEvent, processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\n const root = isEmpty(processedItem.parent);\n const selected = this.isSelected(processedItem);\n\n if (selected) {\n const { index, key, level, parentKey } = processedItem;\n\n this.activeItemPath = this.activeItemPath.filter((p) => key !== p.key && key.startsWith(p.key));\n this.focusedItemInfo = { index, level, parentKey };\n\n this.dirty = !root;\n focus(this.menubar);\n } else {\n if (grouped) {\n this.onItemChange(event);\n } else {\n const rootProcessedItem = root ? processedItem : this.activeItemPath.find((p) => p.parentKey === '');\n\n this.hide(originalEvent);\n this.changeFocusedItemIndex(originalEvent, rootProcessedItem ? rootProcessedItem.index : -1);\n\n focus(this.menubar);\n }\n }\n },\n onItemMouseEnter(event) {\n if (this.dirty) {\n this.onItemChange(event, 'hover');\n }\n },\n onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey(event) {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.popup && this.hide(event, true);\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n const root = isEmpty(processedItem.parent);\n\n if (!root) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n },\n onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.menubar, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\n if (!this.popup) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n }\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (this.popup || this.focusedItemInfo.level !== 0) {\n const _focusedItemInfo = this.focusedItemInfo;\n\n this.hide(event, false);\n this.focusedItemInfo = { index: Number(_focusedItemInfo.parentKey.split('_')[0]), level: 0, parentKey: '' };\n this.popup && focus(this.target);\n }\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n onEnter(el) {\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n\n addStyle(el, { position: 'absolute', top: '0' });\n this.alignOverlay();\n focus(this.menubar);\n this.scrollInView();\n },\n onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindScrollListener();\n this.bindResizeListener();\n\n this.$emit('show');\n },\n onLeave() {\n this.unbindOutsideClickListener();\n this.unbindScrollListener();\n this.unbindResizeListener();\n\n this.$emit('hide');\n this.container = null;\n this.dirty = false;\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n },\n alignOverlay() {\n absolutePosition(this.container, this.target);\n const targetWidth = getOuterWidth(this.target);\n\n if (targetWidth > getOuterWidth(this.container)) {\n this.container.style.minWidth = getOuterWidth(this.target) + 'px';\n }\n },\n bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = this.popup ? !(this.target && (this.target === event.target || this.target.contains(event.target))) : true;\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n bindScrollListener() {\n if (!this.scrollHandler) {\n this.scrollHandler = new ConnectedOverlayScrollHandler(this.target, (event) => {\n this.hide(event, true);\n });\n }\n\n this.scrollHandler.bindScrollListener();\n },\n unbindScrollListener() {\n if (this.scrollHandler) {\n this.scrollHandler.unbindScrollListener();\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return this.activeItemPath.some((p) => p.key === processedItem.key);\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.$id}_${index}` : this.focusedItemId;\n const element = findSingle(this.menubar, `li[id=\"${id}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n },\n createProcessedItems(items, level = 0, parent = {}, parentKey = '') {\n const processedItems = [];\n\n items &&\n items.forEach((item, index) => {\n const key = (parentKey !== '' ? parentKey + '_' : '') + index;\n const newItem = {\n item,\n index,\n level,\n key,\n parent,\n parentKey\n };\n\n newItem['items'] = this.createProcessedItems(item.items, level + 1, newItem, key);\n processedItems.push(newItem);\n });\n\n return processedItems;\n },\n containerRef(el) {\n this.container = el;\n },\n menubarRef(el) {\n this.menubar = el ? el.$el : undefined;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.model || []);\n },\n visibleItems() {\n const processedItem = this.activeItemPath.find((p) => p.key === this.focusedItemInfo.parentKey);\n\n return processedItem ? processedItem.items : this.processedItems;\n },\n focusedItemId() {\n return this.focusedItemInfo.index !== -1 ? `${this.$id}${isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : ''}_${this.focusedItemInfo.index}` : null;\n }\n },\n components: {\n TieredMenuSub: TieredMenuSub,\n Portal: Portal\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","popup","type","Boolean","model","Array","appendTo","String","Object","breakpoint","autoZIndex","baseZIndex","Number","disabled","tabindex","ariaLabelledby","ariaLabel","style","TieredMenuStyle","provide","$pcTieredMenu","$parentInstance","hostName","emits","container","menuId","focusedItemId","items","visible","level","templates","activeItemPath","methods","getItemId","processedItem","concat","key","getItemKey","getItemProp","params","item","resolve","undefined","getItemLabel","getItemLabelId","getPTOptions","index","ptm","context","active","isItemActive","focused","isItemFocused","isItemDisabled","some","path","isItemVisible","isItemGroup","isNotEmpty","onEnter","nestedPosition","onItemClick","event","originalEvent","$emit","isFocus","onItemMouseEnter","onItemMouseMove","getAriaSetSize","_this","filter","length","getAriaPosInset","_this2","slice","getMenuItemProps","action","mergeProps","cx","icon","label","submenuicon","containerRef","el","components","AngleRightIcon","directives","ripple","Ripple","_openBlock","_createBlock","_Transition","_mergeProps","$options","_ctx","$props","_createElementBlock","ref","_Fragment","_renderList","id","role","_createElementVNode","onClick","$event","onMouseenter","onMousemove","_withDirectives","href","target","itemicon","_resolveDynamicComponent","_toDisplayString","_hoisted_5","_component_AngleRightIcon","hasSubmenu","_component_TieredMenuSub","sx","pt","unstyled","_cache","onItemMouseenter","onItemMousemove","_hoisted_6","BaseTieredMenu","inheritAttrs","outsideClickListener","matchMediaListener","scrollHandler","resizeListener","menubar","searchTimeout","searchValue","data","focusedItemInfo","parentKey","submenuVisible","dirty","query","queryMatches","watch","newPath","bindOutsideClickListener","bindResizeListener","unbindOutsideClickListener","unbindResizeListener","mounted","bindMatchMediaListener","beforeUnmount","unbindMatchMediaListener","destroy","ZIndex","clear","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","toggle","hide","show","currentTarget","relatedTarget","focus","onFocus","findFirstFocusedItemIndex","onBlur","onKeyDown","preventDefault","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","isPrintableCharacter","searchItems","onItemChange","isEmpty","grouped","p","push","onOverlayClick","OverlayEventBus","emit","root","parent","selected","isSelected","startsWith","rootProcessedItem","find","changeFocusedItemIndex","itemIndex","findNextItemIndex","altKey","visibleItems","findPrevItemIndex","findLastFocusedItemIndex","parentItem","findFirstItemIndex","findLastItemIndex","element","findSingle","anchorElement","click","_focusedItemInfo","split","set","$primevue","config","zIndex","menu","addStyle","position","top","alignOverlay","scrollInView","onAfterEnter","bindScrollListener","onLeave","unbindScrollListener","onAfterLeave","absolutePosition","targetWidth","getOuterWidth","minWidth","isOutsideContainer","contains","isOutsideTarget","document","addEventListener","removeEventListener","_this3","ConnectedOverlayScrollHandler","_this4","isTouchDevice","window","_this5","matchMedia","matches","isItemMatched","_this$getProccessedIt","isValidItem","toLocaleLowerCase","isValidSelectedItem","_this6","findIndex","_this7","findLastIndex","_this8","matchedItemIndex","_this9","findSelectedItemIndex","_this0","selectedIndex","char","_this1","matched","clearTimeout","setTimeout","$id","scrollIntoView","block","inline","createProcessedItems","_this10","arguments","processedItems","forEach","newItem","menubarRef","$el","computed","_this11","TieredMenuSub","Portal","_component_Portal","_createVNode","$data","apply","ptmi","$slots","start","_renderSlot","onKeydown","end"],"mappings":"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"}