primevue 4.3.4 → 4.3.6
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.
- package/accordion/index.mjs +4 -2
- package/accordion/index.mjs.map +1 -1
- package/accordioncontent/AccordionContent.vue +2 -2
- package/accordioncontent/index.mjs +2 -2
- package/accordioncontent/index.mjs.map +1 -1
- package/accordionheader/AccordionHeader.vue +2 -2
- package/accordionheader/index.mjs +2 -2
- package/accordionheader/index.mjs.map +1 -1
- package/accordionpanel/index.mjs.map +1 -1
- package/accordiontab/index.mjs.map +1 -1
- package/animateonscroll/index.mjs.map +1 -1
- package/autocomplete/AutoComplete.vue +3 -1
- package/autocomplete/index.mjs +10 -5
- package/autocomplete/index.mjs.map +1 -1
- package/autocomplete/style/index.mjs +6 -5
- package/autocomplete/style/index.mjs.map +1 -1
- package/avatar/index.mjs.map +1 -1
- package/avatargroup/index.mjs.map +1 -1
- package/badge/index.mjs.map +1 -1
- package/badge/style/index.mjs.map +1 -1
- package/badgedirective/index.mjs.map +1 -1
- package/blockui/index.mjs.map +1 -1
- package/breadcrumb/index.mjs +4 -2
- package/breadcrumb/index.mjs.map +1 -1
- package/button/Button.vue +1 -1
- package/button/index.d.ts +4 -0
- package/button/index.mjs +5 -4
- package/button/index.mjs.map +1 -1
- package/button/style/index.mjs.map +1 -1
- package/buttongroup/index.mjs.map +1 -1
- package/card/index.mjs.map +1 -1
- package/carousel/index.mjs +10 -5
- package/carousel/index.mjs.map +1 -1
- package/cascadeselect/index.mjs +10 -5
- package/cascadeselect/index.mjs.map +1 -1
- package/chart/index.mjs.map +1 -1
- package/checkbox/index.mjs.map +1 -1
- package/checkboxgroup/index.mjs.map +1 -1
- package/chip/Chip.vue +1 -1
- package/chip/index.mjs +1 -1
- package/chip/index.mjs.map +1 -1
- package/colorpicker/index.mjs.map +1 -1
- package/column/index.mjs.map +1 -1
- package/columngroup/index.mjs.map +1 -1
- package/confirmdialog/index.mjs.map +1 -1
- package/confirmpopup/index.mjs.map +1 -1
- package/contextmenu/index.mjs +16 -8
- package/contextmenu/index.mjs.map +1 -1
- package/datatable/BodyCell.vue +1 -1
- package/datatable/ColumnFilter.vue +2 -13
- package/datatable/DataTable.vue +8 -4
- package/datatable/index.d.ts +2 -2
- package/datatable/index.mjs +53 -57
- package/datatable/index.mjs.map +1 -1
- package/dataview/index.mjs.map +1 -1
- package/datepicker/DatePicker.vue +13 -2
- package/datepicker/index.mjs +68 -30
- package/datepicker/index.mjs.map +1 -1
- package/deferredcontent/index.mjs.map +1 -1
- package/dialog/Dialog.vue +1 -1
- package/dialog/index.mjs +1 -1
- package/dialog/index.mjs.map +1 -1
- package/dialog/style/index.mjs.map +1 -1
- package/divider/index.mjs.map +1 -1
- package/dock/index.mjs +8 -4
- package/dock/index.mjs.map +1 -1
- package/dock/style/index.mjs.map +1 -1
- package/drawer/index.mjs.map +1 -1
- package/drawer/style/index.mjs.map +1 -1
- package/dynamicdialog/index.mjs +6 -3
- package/dynamicdialog/index.mjs.map +1 -1
- package/editor/index.mjs.map +1 -1
- package/fieldset/index.mjs.map +1 -1
- package/fileupload/FileUpload.vue +27 -25
- package/fileupload/index.d.ts +5 -0
- package/fileupload/index.mjs +18 -9
- package/fileupload/index.mjs.map +1 -1
- package/fileupload/style/index.d.ts +5 -1
- package/fileupload/style/index.mjs +2 -1
- package/fileupload/style/index.mjs.map +1 -1
- package/floatlabel/index.d.ts +1 -1
- package/floatlabel/index.mjs.map +1 -1
- package/fluid/index.mjs.map +1 -1
- package/focustrap/index.mjs.map +1 -1
- package/galleria/index.mjs +8 -4
- package/galleria/index.mjs.map +1 -1
- package/iconfield/index.mjs.map +1 -1
- package/iftalabel/index.mjs.map +1 -1
- package/image/index.mjs.map +1 -1
- package/imagecompare/index.mjs.map +1 -1
- package/inlinemessage/index.mjs.map +1 -1
- package/inplace/index.mjs.map +1 -1
- package/inputchips/index.mjs +2 -1
- package/inputchips/index.mjs.map +1 -1
- package/inputgroup/index.mjs.map +1 -1
- package/inputgroupaddon/index.mjs.map +1 -1
- package/inputicon/index.mjs.map +1 -1
- package/inputmask/index.mjs.map +1 -1
- package/inputnumber/InputNumber.vue +10 -1
- package/inputnumber/index.mjs +8 -1
- package/inputnumber/index.mjs.map +1 -1
- package/inputotp/index.mjs.map +1 -1
- package/inputtext/index.mjs.map +1 -1
- package/keyfilter/index.mjs.map +1 -1
- package/knob/index.mjs +2 -2
- package/knob/index.mjs.map +1 -1
- package/listbox/BaseListbox.vue +4 -0
- package/listbox/Listbox.vue +8 -6
- package/listbox/index.d.ts +5 -0
- package/listbox/index.mjs +20 -10
- package/listbox/index.mjs.map +1 -1
- package/listbox/style/index.mjs +1 -0
- package/listbox/style/index.mjs.map +1 -1
- package/megamenu/index.d.ts +0 -1
- package/megamenu/index.mjs +22 -11
- package/megamenu/index.mjs.map +1 -1
- package/menu/index.mjs +6 -3
- package/menu/index.mjs.map +1 -1
- package/menubar/MenubarSub.vue +0 -1
- package/menubar/index.d.ts +0 -2
- package/menubar/index.mjs +15 -9
- package/menubar/index.mjs.map +1 -1
- package/message/index.mjs.map +1 -1
- package/metergroup/index.mjs +10 -5
- package/metergroup/index.mjs.map +1 -1
- package/multiselect/MultiSelect.vue +10 -5
- package/multiselect/index.mjs +17 -9
- package/multiselect/index.mjs.map +1 -1
- package/orderlist/index.mjs.map +1 -1
- package/organizationchart/index.mjs +6 -3
- package/organizationchart/index.mjs.map +1 -1
- package/overlaybadge/index.mjs.map +1 -1
- package/package.json +6 -6
- package/paginator/index.mjs +10 -4
- package/paginator/index.mjs.map +1 -1
- package/paginator/style/index.mjs.map +1 -1
- package/panel/index.mjs.map +1 -1
- package/panelmenu/index.mjs +42 -21
- package/panelmenu/index.mjs.map +1 -1
- package/passthrough/index.mjs.map +1 -1
- package/password/index.mjs.map +1 -1
- package/picklist/PickList.vue +8 -11
- package/picklist/index.mjs +15 -7
- package/picklist/index.mjs.map +1 -1
- package/popover/index.mjs.map +1 -1
- package/portal/index.mjs.map +1 -1
- package/progressbar/index.mjs.map +1 -1
- package/progressspinner/index.mjs.map +1 -1
- package/radiobutton/index.mjs.map +1 -1
- package/radiobuttongroup/index.mjs.map +1 -1
- package/rating/Rating.vue +2 -2
- package/rating/index.d.ts +10 -0
- package/rating/index.mjs +17 -6
- package/rating/index.mjs.map +1 -1
- package/ripple/index.mjs.map +1 -1
- package/row/index.mjs.map +1 -1
- package/scrollpanel/ScrollPanel.vue +3 -1
- package/scrollpanel/index.mjs +2 -1
- package/scrollpanel/index.mjs.map +1 -1
- package/scrolltop/index.mjs.map +1 -1
- package/select/Select.vue +3 -4
- package/select/index.mjs +15 -9
- package/select/index.mjs.map +1 -1
- package/selectbutton/BaseSelectButton.vue +4 -0
- package/selectbutton/index.d.ts +25 -0
- package/selectbutton/index.mjs +4 -0
- package/selectbutton/index.mjs.map +1 -1
- package/selectbutton/style/index.mjs +5 -2
- package/selectbutton/style/index.mjs.map +1 -1
- package/skeleton/index.mjs.map +1 -1
- package/slider/index.mjs.map +1 -1
- package/speeddial/index.mjs +6 -3
- package/speeddial/index.mjs.map +1 -1
- package/speeddial/style/index.mjs.map +1 -1
- package/splitbutton/index.mjs.map +1 -1
- package/splitter/Splitter.vue +1 -1
- package/splitter/index.mjs +5 -2
- package/splitter/index.mjs.map +1 -1
- package/splitterpanel/index.mjs.map +1 -1
- package/step/index.mjs.map +1 -1
- package/stepitem/index.mjs.map +1 -1
- package/steplist/index.mjs.map +1 -1
- package/steppanel/index.mjs.map +1 -1
- package/steppanels/index.mjs.map +1 -1
- package/stepper/index.mjs.map +1 -1
- package/steps/index.mjs +8 -4
- package/steps/index.mjs.map +1 -1
- package/styleclass/index.mjs.map +1 -1
- package/tab/index.mjs.map +1 -1
- package/tablist/index.mjs.map +1 -1
- package/tabmenu/index.mjs +8 -2
- package/tabmenu/index.mjs.map +1 -1
- package/tabpanel/index.mjs.map +1 -1
- package/tabpanels/index.mjs.map +1 -1
- package/tabs/index.mjs.map +1 -1
- package/tabview/index.mjs +8 -4
- package/tabview/index.mjs.map +1 -1
- package/tag/index.mjs.map +1 -1
- package/terminal/index.mjs +8 -4
- package/terminal/index.mjs.map +1 -1
- package/textarea/index.mjs.map +1 -1
- package/tieredmenu/index.mjs +18 -9
- package/tieredmenu/index.mjs.map +1 -1
- package/timeline/index.mjs +12 -6
- package/timeline/index.mjs.map +1 -1
- package/toast/Toast.vue +3 -0
- package/toast/ToastMessage.vue +21 -9
- package/toast/index.d.ts +16 -4
- package/toast/index.mjs +27 -14
- package/toast/index.mjs.map +1 -1
- package/toast/style/index.mjs.map +1 -1
- package/togglebutton/BaseToggleButton.vue +4 -0
- package/togglebutton/index.d.ts +5 -0
- package/togglebutton/index.mjs +4 -0
- package/togglebutton/index.mjs.map +1 -1
- package/togglebutton/style/index.mjs +1 -0
- package/togglebutton/style/index.mjs.map +1 -1
- package/toggleswitch/index.mjs.map +1 -1
- package/toggleswitch/style/index.d.ts +1 -5
- package/toolbar/index.mjs.map +1 -1
- package/tooltip/index.mjs.map +1 -1
- package/tree/index.mjs.map +1 -1
- package/treeselect/index.mjs +2 -1
- package/treeselect/index.mjs.map +1 -1
- package/treetable/TreeTable.vue +1 -1
- package/treetable/index.mjs +3 -2
- package/treetable/index.mjs.map +1 -1
- package/umd/primevue.min.js +1 -12213
- package/useconfirm/index.mjs.map +1 -1
- package/usedialog/index.mjs.map +1 -1
- package/usetoast/index.mjs.map +1 -1
- package/virtualscroller/VirtualScroller.vue +4 -1
- package/virtualscroller/index.mjs +3 -1
- package/virtualscroller/index.mjs.map +1 -1
- package/virtualscroller/style/index.mjs.map +1 -1
- package/web-types.json +1 -1
package/menubar/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/menubar/BaseMenubar.vue","../../src/menubar/MenubarSub.vue","../../src/menubar/MenubarSub.vue?vue&type=template&id=3775ff40&lang.js","../../src/menubar/Menubar.vue","../../src/menubar/Menubar.vue?vue&type=template&id=3e375c2c&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MenubarStyle from 'primevue/menubar/style';\n\nexport default {\n name: 'BaseMenubar',\n extends: BaseComponent,\n props: {\n model: {\n type: Array,\n default: null\n },\n buttonProps: {\n type: null,\n default: null\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: MenubarStyle,\n provide() {\n return {\n $pcMenubar: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ul :class=\"level === 0 ? cx('rootList') : cx('submenu')\" v-bind=\"level === 0 ? ptm('rootList') : ptm('submenu')\">\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\" :root=\"root\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" />\n <component v-else :is=\"root ? 'AngleDownIcon' : 'AngleRightIcon'\" :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\" :root=\"root\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <MenubarSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n :menuId=\"menuId\"\n role=\"menu\"\n :style=\"sx('submenu', true, { processedItem })\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :mobileActive=\"mobileActive\"\n :activeItemPath=\"activeItemPath\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :aria-labelledby=\"getItemLabelId(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 />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'MenubarSub',\n hostName: 'Menubar',\n extends: BaseComponent,\n emits: ['item-mouseenter', 'item-click', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n default: null\n },\n root: {\n type: Boolean,\n default: false\n },\n popup: {\n type: Boolean,\n default: false\n },\n mobileActive: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n }\n },\n list: null,\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 level: this.level\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 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 getAriaPosInset(index) {\n return index - this.calculateAriaSetSize.slice(0, index).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 },\n computed: {\n calculateAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator'));\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <ul :class=\"level === 0 ? cx('rootList') : cx('submenu')\" v-bind=\"level === 0 ? ptm('rootList') : ptm('submenu')\">\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\" :root=\"root\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" />\n <component v-else :is=\"root ? 'AngleDownIcon' : 'AngleRightIcon'\" :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\" :root=\"root\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <MenubarSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n :menuId=\"menuId\"\n role=\"menu\"\n :style=\"sx('submenu', true, { processedItem })\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :mobileActive=\"mobileActive\"\n :activeItemPath=\"activeItemPath\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :aria-labelledby=\"getItemLabelId(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 />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'MenubarSub',\n hostName: 'Menubar',\n extends: BaseComponent,\n emits: ['item-mouseenter', 'item-click', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n default: null\n },\n root: {\n type: Boolean,\n default: false\n },\n popup: {\n type: Boolean,\n default: false\n },\n mobileActive: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n }\n },\n list: null,\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 level: this.level\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 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 getAriaPosInset(index) {\n return index - this.calculateAriaSetSize.slice(0, index).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 },\n computed: {\n calculateAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator'));\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div :ref=\"containerRef\" :class=\"cx('root')\" 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 <slot :id=\"$id\" :name=\"$slots.button ? 'button' : 'menubutton'\" :class=\"cx('button')\" :toggleCallback=\"(event) => menuButtonClick(event)\">\n <!-- TODO: menubutton deprecated since v4.0-->\n <a\n v-if=\"model && model.length > 0\"\n ref=\"menubutton\"\n role=\"button\"\n tabindex=\"0\"\n :class=\"cx('button')\"\n :aria-haspopup=\"model.length && model.length > 0 ? true : false\"\n :aria-expanded=\"mobileActive\"\n :aria-controls=\"$id\"\n :aria-label=\"$primevue.config.locale.aria?.navigation\"\n @click=\"menuButtonClick($event)\"\n @keydown=\"menuButtonKeydown($event)\"\n v-bind=\"{ ...buttonProps, ...ptm('button') }\"\n >\n <!-- TODO: menubuttonicon deprecated since v4.0-->\n <slot :name=\"$slots.buttonicon ? 'buttonicon' : 'menubuttonicon'\">\n <BarsIcon v-bind=\"ptm('buttonicon')\" />\n </slot>\n </a>\n </slot>\n <MenubarSub\n :ref=\"menubarRef\"\n :id=\"$id + '_list'\"\n role=\"menubar\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :root=\"true\"\n :mobileActive=\"mobileActive\"\n tabindex=\"0\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"$id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :activeItemPath=\"activeItemPath\"\n :level=\"0\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\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 />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseMenubar from './BaseMenubar.vue';\nimport MenubarSub from './MenubarSub.vue';\n\nexport default {\n name: 'Menubar',\n extends: BaseMenubar,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n matchMediaListener: null,\n data() {\n return {\n mobileActive: false,\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n outsideClickListener: null,\n container: null,\n menubar: null,\n mounted() {\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.container) {\n ZIndex.clear(this.container);\n }\n\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 if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 1);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show() {\n focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.$refs.menubutton);\n }, 0);\n }\n\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\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 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 const activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n grouped && activeItemPath.push(processedItem);\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 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 this.mobileActive = false;\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 menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = processedItem ? isEmpty(processedItem.parent) : null;\n\n if (root) {\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.onArrowRightKey(event);\n }\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = isEmpty(processedItem.parent);\n\n if (root) {\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 const itemIndex = this.findLastItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n } else {\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowLeftKey(event);\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n }\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\n this.onItemChange({ originalEvent: event, processedItem: parentItem });\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\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 onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\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.onArrowDownKey(event);\n }\n } else {\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 },\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, 'a[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\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 event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (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 }\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 bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\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 bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\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 this.mobileActive = false;\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 MenubarSub: MenubarSub,\n BarsIcon: BarsIcon\n }\n};\n</script>\n","<template>\n <div :ref=\"containerRef\" :class=\"cx('root')\" 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 <slot :id=\"$id\" :name=\"$slots.button ? 'button' : 'menubutton'\" :class=\"cx('button')\" :toggleCallback=\"(event) => menuButtonClick(event)\">\n <!-- TODO: menubutton deprecated since v4.0-->\n <a\n v-if=\"model && model.length > 0\"\n ref=\"menubutton\"\n role=\"button\"\n tabindex=\"0\"\n :class=\"cx('button')\"\n :aria-haspopup=\"model.length && model.length > 0 ? true : false\"\n :aria-expanded=\"mobileActive\"\n :aria-controls=\"$id\"\n :aria-label=\"$primevue.config.locale.aria?.navigation\"\n @click=\"menuButtonClick($event)\"\n @keydown=\"menuButtonKeydown($event)\"\n v-bind=\"{ ...buttonProps, ...ptm('button') }\"\n >\n <!-- TODO: menubuttonicon deprecated since v4.0-->\n <slot :name=\"$slots.buttonicon ? 'buttonicon' : 'menubuttonicon'\">\n <BarsIcon v-bind=\"ptm('buttonicon')\" />\n </slot>\n </a>\n </slot>\n <MenubarSub\n :ref=\"menubarRef\"\n :id=\"$id + '_list'\"\n role=\"menubar\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :root=\"true\"\n :mobileActive=\"mobileActive\"\n tabindex=\"0\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"$id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :activeItemPath=\"activeItemPath\"\n :level=\"0\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\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 />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseMenubar from './BaseMenubar.vue';\nimport MenubarSub from './MenubarSub.vue';\n\nexport default {\n name: 'Menubar',\n extends: BaseMenubar,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n matchMediaListener: null,\n data() {\n return {\n mobileActive: false,\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n outsideClickListener: null,\n container: null,\n menubar: null,\n mounted() {\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.container) {\n ZIndex.clear(this.container);\n }\n\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 if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 1);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show() {\n focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.$refs.menubutton);\n }, 0);\n }\n\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\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 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 const activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n grouped && activeItemPath.push(processedItem);\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 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 this.mobileActive = false;\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 menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = processedItem ? isEmpty(processedItem.parent) : null;\n\n if (root) {\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.onArrowRightKey(event);\n }\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = isEmpty(processedItem.parent);\n\n if (root) {\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 const itemIndex = this.findLastItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n } else {\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowLeftKey(event);\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n }\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\n this.onItemChange({ originalEvent: event, processedItem: parentItem });\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\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 onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\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.onArrowDownKey(event);\n }\n } else {\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 },\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, 'a[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\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 event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (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 }\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 bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\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 bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\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 this.mobileActive = false;\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 MenubarSub: MenubarSub,\n BarsIcon: BarsIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","model","type","Array","buttonProps","breakpoint","String","ariaLabelledby","ariaLabel","style","MenubarStyle","provide","$pcMenubar","$parentInstance","hostName","emits","items","root","Boolean","popup","mobileActive","templates","Object","level","Number","menuId","focusedItemId","activeItemPath","list","methods","getItemId","processedItem","concat","key","getItemKey","getItemProp","params","item","resolve","undefined","getItemLabel","getItemLabelId","getPTOptions","index","ptm","context","active","isItemActive","focused","isItemFocused","disabled","isItemDisabled","some","path","isItemVisible","isItemGroup","isNotEmpty","onItemClick","event","originalEvent","$emit","isFocus","onItemMouseEnter","onItemMouseMove","getAriaPosInset","calculateAriaSetSize","slice","length","getMenuItemProps","action","mergeProps","cx","tabindex","icon","label","submenuicon","computed","_this","filter","getAriaSetSize","_this2","components","AngleRightIcon","AngleDownIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","$props","_ctx","_Fragment","_renderList","$options","id","role","_createElementVNode","onClick","$event","onMouseenter","onMousemove","_withDirectives","href","target","itemicon","_createBlock","_resolveDynamicComponent","_toDisplayString","_hoisted_4","hasSubmenu","_component_MenubarSub","_normalizeStyle","sx","pt","unstyled","_cache","onItemMouseenter","onItemMousemove","_hoisted_5","BaseMenubar","inheritAttrs","matchMediaListener","data","focusedItemInfo","parentKey","dirty","query","queryMatches","watch","newPath","bindOutsideClickListener","bindResizeListener","unbindOutsideClickListener","unbindResizeListener","outsideClickListener","container","menubar","mounted","bindMatchMediaListener","beforeUnmount","unbindMatchMediaListener","ZIndex","clear","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","toggle","hide","set","$primevue","config","zIndex","menu","setTimeout","show","preventDefault","focus","$refs","menubutton","onFocus","findFirstFocusedItemIndex","onBlur","searchValue","onKeyDown","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","isPrintableCharacter","searchItems","onItemChange","isEmpty","grouped","p","push","parent","selected","isSelected","startsWith","rootProcessedItem","find","changeFocusedItemIndex","menuButtonClick","menuButtonKeydown","visibleItems","itemIndex","findNextItemIndex","_this3","findLastItemIndex","parentItem","findPrevItemIndex","findLastFocusedItemIndex","_this4","findFirstItemIndex","element","findSingle","anchorElement","click","_focusedItemInfo","split","_this5","isOutsideContainer","contains","isOutsideTarget","document","addEventListener","removeEventListener","_this6","resizeListener","isTouchDevice","window","_this7","matchMedia","matches","isItemMatched","_this$getProccessedIt","isValidItem","toLocaleLowerCase","isValidSelectedItem","_this8","findIndex","_this9","findLastIndex","_this0","matchedItemIndex","_this1","findSelectedItemIndex","_this10","selectedIndex","char","_this11","matched","searchTimeout","clearTimeout","scrollInView","$id","scrollIntoView","block","inline","createProcessedItems","_this12","arguments","processedItems","forEach","newItem","containerRef","el","menubarRef","$el","_this13","MenubarSub","BarsIcon","ref","ptmi","$slots","start","_renderSlot","button","toggleCallback","_ctx$$primevue$config","$data","locale","aria","navigation","onKeydown","_objectSpread","buttonicon","_createVNode","_component_BarsIcon","end"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/menubar/BaseMenubar.vue","../../src/menubar/MenubarSub.vue","../../src/menubar/MenubarSub.vue?vue&type=template&id=0cb0deee&lang.js","../../src/menubar/Menubar.vue","../../src/menubar/Menubar.vue?vue&type=template&id=3e375c2c&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport MenubarStyle from 'primevue/menubar/style';\n\nexport default {\n name: 'BaseMenubar',\n extends: BaseComponent,\n props: {\n model: {\n type: Array,\n default: null\n },\n buttonProps: {\n type: null,\n default: null\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: MenubarStyle,\n provide() {\n return {\n $pcMenubar: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ul :class=\"level === 0 ? cx('rootList') : cx('submenu')\" v-bind=\"level === 0 ? ptm('rootList') : ptm('submenu')\">\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-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\" :root=\"root\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" />\n <component v-else :is=\"root ? 'AngleDownIcon' : 'AngleRightIcon'\" :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\" :root=\"root\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <MenubarSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n :menuId=\"menuId\"\n role=\"menu\"\n :style=\"sx('submenu', true, { processedItem })\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :mobileActive=\"mobileActive\"\n :activeItemPath=\"activeItemPath\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :aria-labelledby=\"getItemLabelId(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 />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'MenubarSub',\n hostName: 'Menubar',\n extends: BaseComponent,\n emits: ['item-mouseenter', 'item-click', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n default: null\n },\n root: {\n type: Boolean,\n default: false\n },\n popup: {\n type: Boolean,\n default: false\n },\n mobileActive: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n }\n },\n list: null,\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 level: this.level\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 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 getAriaPosInset(index) {\n return index - this.calculateAriaSetSize.slice(0, index).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 },\n computed: {\n calculateAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator'));\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <ul :class=\"level === 0 ? cx('rootList') : cx('submenu')\" v-bind=\"level === 0 ? ptm('rootList') : ptm('submenu')\">\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-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\" :root=\"root\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" />\n <component v-else :is=\"root ? 'AngleDownIcon' : 'AngleRightIcon'\" :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\" :root=\"root\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <MenubarSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n :menuId=\"menuId\"\n role=\"menu\"\n :style=\"sx('submenu', true, { processedItem })\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :mobileActive=\"mobileActive\"\n :activeItemPath=\"activeItemPath\"\n :templates=\"templates\"\n :level=\"level + 1\"\n :aria-labelledby=\"getItemLabelId(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 />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleDownIcon from '@primevue/icons/angledown';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'MenubarSub',\n hostName: 'Menubar',\n extends: BaseComponent,\n emits: ['item-mouseenter', 'item-click', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n default: null\n },\n root: {\n type: Boolean,\n default: false\n },\n popup: {\n type: Boolean,\n default: false\n },\n mobileActive: {\n type: Boolean,\n default: false\n },\n templates: {\n type: Object,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n }\n },\n list: null,\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 level: this.level\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 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 getAriaPosInset(index) {\n return index - this.calculateAriaSetSize.slice(0, index).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 },\n computed: {\n calculateAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator'));\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n }\n },\n components: {\n AngleRightIcon: AngleRightIcon,\n AngleDownIcon: AngleDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <div :ref=\"containerRef\" :class=\"cx('root')\" 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 <slot :id=\"$id\" :name=\"$slots.button ? 'button' : 'menubutton'\" :class=\"cx('button')\" :toggleCallback=\"(event) => menuButtonClick(event)\">\n <!-- TODO: menubutton deprecated since v4.0-->\n <a\n v-if=\"model && model.length > 0\"\n ref=\"menubutton\"\n role=\"button\"\n tabindex=\"0\"\n :class=\"cx('button')\"\n :aria-haspopup=\"model.length && model.length > 0 ? true : false\"\n :aria-expanded=\"mobileActive\"\n :aria-controls=\"$id\"\n :aria-label=\"$primevue.config.locale.aria?.navigation\"\n @click=\"menuButtonClick($event)\"\n @keydown=\"menuButtonKeydown($event)\"\n v-bind=\"{ ...buttonProps, ...ptm('button') }\"\n >\n <!-- TODO: menubuttonicon deprecated since v4.0-->\n <slot :name=\"$slots.buttonicon ? 'buttonicon' : 'menubuttonicon'\">\n <BarsIcon v-bind=\"ptm('buttonicon')\" />\n </slot>\n </a>\n </slot>\n <MenubarSub\n :ref=\"menubarRef\"\n :id=\"$id + '_list'\"\n role=\"menubar\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :root=\"true\"\n :mobileActive=\"mobileActive\"\n tabindex=\"0\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"$id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :activeItemPath=\"activeItemPath\"\n :level=\"0\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\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 />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseMenubar from './BaseMenubar.vue';\nimport MenubarSub from './MenubarSub.vue';\n\nexport default {\n name: 'Menubar',\n extends: BaseMenubar,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n matchMediaListener: null,\n data() {\n return {\n mobileActive: false,\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n outsideClickListener: null,\n container: null,\n menubar: null,\n mounted() {\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.container) {\n ZIndex.clear(this.container);\n }\n\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 if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 1);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show() {\n focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.$refs.menubutton);\n }, 0);\n }\n\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\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 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 const activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n grouped && activeItemPath.push(processedItem);\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 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 this.mobileActive = false;\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 menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = processedItem ? isEmpty(processedItem.parent) : null;\n\n if (root) {\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.onArrowRightKey(event);\n }\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = isEmpty(processedItem.parent);\n\n if (root) {\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 const itemIndex = this.findLastItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n } else {\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowLeftKey(event);\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n }\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\n this.onItemChange({ originalEvent: event, processedItem: parentItem });\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\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 onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\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.onArrowDownKey(event);\n }\n } else {\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 },\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, 'a[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\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 event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (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 }\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 bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\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 bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\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 this.mobileActive = false;\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 MenubarSub: MenubarSub,\n BarsIcon: BarsIcon\n }\n};\n</script>\n","<template>\n <div :ref=\"containerRef\" :class=\"cx('root')\" 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 <slot :id=\"$id\" :name=\"$slots.button ? 'button' : 'menubutton'\" :class=\"cx('button')\" :toggleCallback=\"(event) => menuButtonClick(event)\">\n <!-- TODO: menubutton deprecated since v4.0-->\n <a\n v-if=\"model && model.length > 0\"\n ref=\"menubutton\"\n role=\"button\"\n tabindex=\"0\"\n :class=\"cx('button')\"\n :aria-haspopup=\"model.length && model.length > 0 ? true : false\"\n :aria-expanded=\"mobileActive\"\n :aria-controls=\"$id\"\n :aria-label=\"$primevue.config.locale.aria?.navigation\"\n @click=\"menuButtonClick($event)\"\n @keydown=\"menuButtonKeydown($event)\"\n v-bind=\"{ ...buttonProps, ...ptm('button') }\"\n >\n <!-- TODO: menubuttonicon deprecated since v4.0-->\n <slot :name=\"$slots.buttonicon ? 'buttonicon' : 'menubuttonicon'\">\n <BarsIcon v-bind=\"ptm('buttonicon')\" />\n </slot>\n </a>\n </slot>\n <MenubarSub\n :ref=\"menubarRef\"\n :id=\"$id + '_list'\"\n role=\"menubar\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :root=\"true\"\n :mobileActive=\"mobileActive\"\n tabindex=\"0\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :menuId=\"$id\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :activeItemPath=\"activeItemPath\"\n :level=\"0\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\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 />\n <div v-if=\"$slots.end\" :class=\"cx('end')\" v-bind=\"ptm('end')\">\n <slot name=\"end\"></slot>\n </div>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport BarsIcon from '@primevue/icons/bars';\nimport BaseMenubar from './BaseMenubar.vue';\nimport MenubarSub from './MenubarSub.vue';\n\nexport default {\n name: 'Menubar',\n extends: BaseMenubar,\n inheritAttrs: false,\n emits: ['focus', 'blur'],\n matchMediaListener: null,\n data() {\n return {\n mobileActive: false,\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n dirty: false,\n query: null,\n queryMatches: false\n };\n },\n watch: {\n activeItemPath(newPath) {\n if (isNotEmpty(newPath)) {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n } else {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n outsideClickListener: null,\n container: null,\n menubar: null,\n mounted() {\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.mobileActive = false;\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n this.unbindMatchMediaListener();\n\n if (this.container) {\n ZIndex.clear(this.container);\n }\n\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 if (this.mobileActive) {\n this.mobileActive = false;\n ZIndex.clear(this.menubar);\n this.hide();\n } else {\n this.mobileActive = true;\n ZIndex.set('menu', this.menubar, this.$primevue.config.zIndex.menu);\n setTimeout(() => {\n this.show();\n }, 1);\n }\n\n this.bindOutsideClickListener();\n event.preventDefault();\n },\n show() {\n focus(this.menubar);\n },\n hide(event, isFocus) {\n if (this.mobileActive) {\n this.mobileActive = false;\n setTimeout(() => {\n focus(this.$refs.menubutton);\n }, 0);\n }\n\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n\n isFocus && focus(this.menubar);\n this.dirty = false;\n },\n onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: this.findFirstFocusedItemIndex(), level: 0, parentKey: '' };\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 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 const activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== parentKey && p.parentKey !== key);\n\n grouped && activeItemPath.push(processedItem);\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 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 this.mobileActive = false;\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 menuButtonClick(event) {\n this.toggle(event);\n },\n menuButtonKeydown(event) {\n (event.code === 'Enter' || event.code === 'NumpadEnter' || event.code === 'Space') && this.menuButtonClick(event);\n },\n onArrowDownKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = processedItem ? isEmpty(processedItem.parent) : null;\n\n if (root) {\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.onArrowRightKey(event);\n }\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const root = isEmpty(processedItem.parent);\n\n if (root) {\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 const itemIndex = this.findLastItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n } else {\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n\n if (this.focusedItemInfo.index === 0) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowLeftKey(event);\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n }\n }\n\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\n this.onItemChange({ originalEvent: event, processedItem: parentItem });\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\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 onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = processedItem ? this.activeItemPath.find((p) => p.key === processedItem.parentKey) : null;\n\n if (parentItem) {\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.onArrowDownKey(event);\n }\n } else {\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 },\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, 'a[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n\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 event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onEscapeKey(event) {\n if (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 }\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 bindOutsideClickListener() {\n if (!this.outsideClickListener) {\n this.outsideClickListener = (event) => {\n const isOutsideContainer = this.container && !this.container.contains(event.target);\n const isOutsideTarget = !(this.target && (this.target === event.target || this.target.contains(event.target)));\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 bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = (event) => {\n if (!isTouchDevice()) {\n this.hide(event, true);\n }\n\n this.mobileActive = false;\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 this.mobileActive = false;\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 MenubarSub: MenubarSub,\n BarsIcon: BarsIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","model","type","Array","buttonProps","breakpoint","String","ariaLabelledby","ariaLabel","style","MenubarStyle","provide","$pcMenubar","$parentInstance","hostName","emits","items","root","Boolean","popup","mobileActive","templates","Object","level","Number","menuId","focusedItemId","activeItemPath","list","methods","getItemId","processedItem","concat","key","getItemKey","getItemProp","params","item","resolve","undefined","getItemLabel","getItemLabelId","getPTOptions","index","ptm","context","active","isItemActive","focused","isItemFocused","disabled","isItemDisabled","some","path","isItemVisible","isItemGroup","isNotEmpty","onItemClick","event","originalEvent","$emit","isFocus","onItemMouseEnter","onItemMouseMove","getAriaPosInset","calculateAriaSetSize","slice","length","getMenuItemProps","action","mergeProps","cx","tabindex","icon","label","submenuicon","computed","_this","filter","getAriaSetSize","_this2","components","AngleRightIcon","AngleDownIcon","directives","ripple","Ripple","_openBlock","_createElementBlock","_mergeProps","$props","_ctx","_Fragment","_renderList","$options","id","role","_createElementVNode","onClick","$event","onMouseenter","onMousemove","_withDirectives","href","target","itemicon","_createBlock","_resolveDynamicComponent","ref_for","_toDisplayString","_hoisted_4","hasSubmenu","_component_MenubarSub","_normalizeStyle","sx","pt","unstyled","_cache","onItemMouseenter","onItemMousemove","_hoisted_5","BaseMenubar","inheritAttrs","matchMediaListener","data","focusedItemInfo","parentKey","dirty","query","queryMatches","watch","newPath","bindOutsideClickListener","bindResizeListener","unbindOutsideClickListener","unbindResizeListener","outsideClickListener","container","menubar","mounted","bindMatchMediaListener","beforeUnmount","unbindMatchMediaListener","ZIndex","clear","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","toggle","hide","set","$primevue","config","zIndex","menu","setTimeout","show","preventDefault","focus","$refs","menubutton","onFocus","findFirstFocusedItemIndex","onBlur","searchValue","onKeyDown","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","isPrintableCharacter","searchItems","onItemChange","isEmpty","grouped","p","push","parent","selected","isSelected","startsWith","rootProcessedItem","find","changeFocusedItemIndex","menuButtonClick","menuButtonKeydown","visibleItems","itemIndex","findNextItemIndex","_this3","findLastItemIndex","parentItem","findPrevItemIndex","findLastFocusedItemIndex","_this4","findFirstItemIndex","element","findSingle","anchorElement","click","_focusedItemInfo","split","_this5","isOutsideContainer","contains","isOutsideTarget","document","addEventListener","removeEventListener","_this6","resizeListener","isTouchDevice","window","_this7","matchMedia","matches","isItemMatched","_this$getProccessedIt","isValidItem","toLocaleLowerCase","isValidSelectedItem","_this8","findIndex","_this9","findLastIndex","_this0","matchedItemIndex","_this1","findSelectedItemIndex","_this10","selectedIndex","char","_this11","matched","searchTimeout","clearTimeout","scrollInView","$id","scrollIntoView","block","inline","createProcessedItems","_this12","arguments","processedItems","forEach","newItem","containerRef","el","menubarRef","$el","_this13","MenubarSub","BarsIcon","ref","ptmi","$slots","start","_renderSlot","button","toggleCallback","_ctx$$primevue$config","$data","locale","aria","navigation","onKeydown","_objectSpread","buttonicon","_createVNode","_component_BarsIcon","end"],"mappings":"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"}
|