1 line
118 KiB
Plaintext
1 line
118 KiB
Plaintext
{"version":3,"file":"index.mjs","sources":["../../src/panelmenu/BasePanelMenu.vue","../../src/panelmenu/PanelMenuSub.vue","../../src/panelmenu/PanelMenuSub.vue?vue&type=template&id=8ba4e396&lang.js","../../src/panelmenu/PanelMenuList.vue","../../src/panelmenu/PanelMenuList.vue?vue&type=template&id=e8284d84&lang.js","../../src/panelmenu/PanelMenu.vue","../../src/panelmenu/PanelMenu.vue?vue&type=template&id=093234d9&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport PanelMenuStyle from 'primevue/panelmenu/style';\n\nexport default {\n name: 'BasePanelMenu',\n extends: BaseComponent,\n props: {\n model: {\n type: Array,\n default: null\n },\n expandedKeys: {\n type: Object,\n default: null\n },\n multiple: {\n type: Boolean,\n default: false\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n style: PanelMenuStyle,\n provide() {\n return {\n $pcPanelMenu: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <ul :class=\"cx('submenu')\" :tabindex=\"tabindex\">\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"treeitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize()\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions('item', processedItem, index)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div :class=\"cx('itemContent')\" @click=\"onItemClick($event, processedItem)\" @mousemove=\"onItemMouseMove($event, processedItem)\" v-bind=\"getPTOptions('itemContent', processedItem, index)\">\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('itemLink', processedItem, index)\">\n <template v-if=\"isItemGroup(processedItem)\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :class=\"cx('submenuIcon')\" :active=\"isItemActive(processedItem)\" v-bind=\"getPTOptions('submenuIcon', processedItem, index)\" />\n <component v-else :is=\"isItemActive(processedItem) ? 'ChevronDownIcon' : 'ChevronRightIcon'\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions('submenuIcon', processedItem, index)\" />\n </template>\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('itemIcon', processedItem, index)\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel', processedItem, index)\">{{ getItemLabel(processedItem) }}</span>\n </a>\n </template>\n <component\n v-else\n :is=\"templates.item\"\n :item=\"processedItem.item\"\n :root=\"false\"\n :active=\"isItemActive(processedItem)\"\n :hasSubmenu=\"isItemGroup(processedItem)\"\n :label=\"getItemLabel(processedItem)\"\n :props=\"getMenuItemProps(processedItem, index)\"\n ></component>\n </div>\n <transition name=\"p-collapsible\" v-bind=\"ptm('transition')\">\n <div v-show=\"isItemActive(processedItem)\" :class=\"cx('contentContainer')\" v-bind=\"ptm('contentContainer')\">\n <div :class=\"cx('contentWrapper')\" v-bind=\"ptm('contentWrapper')\">\n <PanelMenuSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n role=\"group\"\n :panelId=\"panelId\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :level=\"level + 1\"\n :templates=\"templates\"\n :activeItemPath=\"activeItemPath\"\n @item-toggle=\"onItemToggle\"\n @item-mousemove=\"$emit('item-mousemove', $event)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n v-bind=\"ptm('submenu')\"\n />\n </div>\n </div>\n </transition>\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'PanelMenuSub',\n hostName: 'PanelMenu',\n extends: BaseComponent,\n emits: ['item-toggle', 'item-mousemove'],\n props: {\n panelId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n items: {\n type: Array,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: -1\n }\n },\n methods: {\n getItemId(processedItem) {\n return `${this.panelId}_${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 getPTOptions(key, processedItem, index) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive(processedItem) {\n return this.activeItemPath.some((path) => path.key === processedItem.key);\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-toggle', { processedItem, expanded: !this.isItemActive(processedItem) });\n },\n onItemToggle(event) {\n this.$emit('item-toggle', event);\n },\n onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', { originalEvent: event, processedItem });\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n },\n getAriaPosInset(index) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1\n },\n this.getPTOptions('itemLink', processedItem, index)\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions('itemIcon', processedItem, index)\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel', processedItem, index)\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions('submenuicon', processedItem, index)\n )\n };\n }\n },\n components: {\n ChevronRightIcon: ChevronRightIcon,\n ChevronDownIcon: ChevronDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <ul :class=\"cx('submenu')\" :tabindex=\"tabindex\">\n <template v-for=\"(processedItem, index) of items\" :key=\"getItemKey(processedItem)\">\n <li\n v-if=\"isItemVisible(processedItem) && !getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :class=\"[cx('item', { processedItem }), getItemProp(processedItem, 'class')]\"\n :style=\"getItemProp(processedItem, 'style')\"\n role=\"treeitem\"\n :aria-label=\"getItemLabel(processedItem)\"\n :aria-expanded=\"isItemGroup(processedItem) ? isItemActive(processedItem) : undefined\"\n :aria-level=\"level + 1\"\n :aria-setsize=\"getAriaSetSize()\"\n :aria-posinset=\"getAriaPosInset(index)\"\n v-bind=\"getPTOptions('item', processedItem, index)\"\n :data-p-focused=\"isItemFocused(processedItem)\"\n :data-p-disabled=\"isItemDisabled(processedItem)\"\n >\n <div :class=\"cx('itemContent')\" @click=\"onItemClick($event, processedItem)\" @mousemove=\"onItemMouseMove($event, processedItem)\" v-bind=\"getPTOptions('itemContent', processedItem, index)\">\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('itemLink', processedItem, index)\">\n <template v-if=\"isItemGroup(processedItem)\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :class=\"cx('submenuIcon')\" :active=\"isItemActive(processedItem)\" v-bind=\"getPTOptions('submenuIcon', processedItem, index)\" />\n <component v-else :is=\"isItemActive(processedItem) ? 'ChevronDownIcon' : 'ChevronRightIcon'\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions('submenuIcon', processedItem, index)\" />\n </template>\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('itemIcon', processedItem, index)\" />\n <span :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel', processedItem, index)\">{{ getItemLabel(processedItem) }}</span>\n </a>\n </template>\n <component\n v-else\n :is=\"templates.item\"\n :item=\"processedItem.item\"\n :root=\"false\"\n :active=\"isItemActive(processedItem)\"\n :hasSubmenu=\"isItemGroup(processedItem)\"\n :label=\"getItemLabel(processedItem)\"\n :props=\"getMenuItemProps(processedItem, index)\"\n ></component>\n </div>\n <transition name=\"p-collapsible\" v-bind=\"ptm('transition')\">\n <div v-show=\"isItemActive(processedItem)\" :class=\"cx('contentContainer')\" v-bind=\"ptm('contentContainer')\">\n <div :class=\"cx('contentWrapper')\" v-bind=\"ptm('contentWrapper')\">\n <PanelMenuSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n role=\"group\"\n :panelId=\"panelId\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :level=\"level + 1\"\n :templates=\"templates\"\n :activeItemPath=\"activeItemPath\"\n @item-toggle=\"onItemToggle\"\n @item-mousemove=\"$emit('item-mousemove', $event)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n v-bind=\"ptm('submenu')\"\n />\n </div>\n </div>\n </transition>\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n</template>\n\n<script>\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'PanelMenuSub',\n hostName: 'PanelMenu',\n extends: BaseComponent,\n emits: ['item-toggle', 'item-mousemove'],\n props: {\n panelId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n items: {\n type: Array,\n default: null\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: -1\n }\n },\n methods: {\n getItemId(processedItem) {\n return `${this.panelId}_${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 getPTOptions(key, processedItem, index) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n index,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem)\n }\n });\n },\n isItemActive(processedItem) {\n return this.activeItemPath.some((path) => path.key === processedItem.key);\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemFocused(processedItem) {\n return this.focusedItemId === this.getItemId(processedItem);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onItemClick(event, processedItem) {\n this.getItemProp(processedItem, 'command', { originalEvent: event, item: processedItem.item });\n this.$emit('item-toggle', { processedItem, expanded: !this.isItemActive(processedItem) });\n },\n onItemToggle(event) {\n this.$emit('item-toggle', event);\n },\n onItemMouseMove(event, processedItem) {\n this.$emit('item-mousemove', { originalEvent: event, processedItem });\n },\n getAriaSetSize() {\n return this.items.filter((processedItem) => this.isItemVisible(processedItem) && !this.getItemProp(processedItem, 'separator')).length;\n },\n getAriaPosInset(index) {\n return index - this.items.slice(0, index).filter((processedItem) => this.isItemVisible(processedItem) && this.getItemProp(processedItem, 'separator')).length + 1;\n },\n getMenuItemProps(processedItem, index) {\n return {\n action: mergeProps(\n {\n class: this.cx('itemLink'),\n tabindex: -1\n },\n this.getPTOptions('itemLink', processedItem, index)\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), this.getItemProp(processedItem, 'icon')]\n },\n this.getPTOptions('itemIcon', processedItem, index)\n ),\n label: mergeProps(\n {\n class: this.cx('itemLabel')\n },\n this.getPTOptions('itemLabel', processedItem, index)\n ),\n submenuicon: mergeProps(\n {\n class: this.cx('submenuIcon')\n },\n this.getPTOptions('submenuicon', processedItem, index)\n )\n };\n }\n },\n components: {\n ChevronRightIcon: ChevronRightIcon,\n ChevronDownIcon: ChevronDownIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <PanelMenuSub\n :id=\"panelId + '_list'\"\n :class=\"cx('rootList')\"\n role=\"tree\"\n :tabindex=\"-1\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :panelId=\"panelId\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :items=\"processedItems\"\n :templates=\"templates\"\n :activeItemPath=\"activeItemPath\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-toggle=\"onItemToggle\"\n @item-mousemove=\"onItemMouseMove\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n v-bind=\"ptm('rootList')\"\n />\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { findSingle, focus } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, findLast, isEmpty } from '@primeuix/utils/object';\nimport PanelMenuSub from './PanelMenuSub.vue';\n\nexport default {\n name: 'PanelMenuList',\n hostName: 'PanelMenu',\n extends: BaseComponent,\n emits: ['item-toggle', 'header-focus'],\n props: {\n panelId: {\n type: String,\n default: null\n },\n items: {\n type: Array,\n default: null\n },\n templates: {\n type: Object,\n default: null\n },\n expandedKeys: {\n type: Object,\n default: null\n }\n },\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n focused: false,\n focusedItem: null,\n activeItemPath: []\n };\n },\n watch: {\n expandedKeys(newValue) {\n this.autoUpdateActiveItemPath(newValue);\n }\n },\n created() {\n this.autoUpdateActiveItemPath(this.expandedKeys);\n },\n methods: {\n getItemProp(processedItem, name) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemActive(processedItem) {\n return this.activeItemPath.some((path) => path.key === processedItem.parentKey);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onFocus(event) {\n this.focused = true;\n this.focusedItem = this.focusedItem || (this.isElementInPanel(event, event.relatedTarget) ? this.findFirstItem() : this.findLastItem());\n },\n onBlur() {\n this.focused = false;\n this.focusedItem = null;\n this.searchValue = '';\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 case 'Tab':\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 onArrowDownKey(event) {\n const processedItem = isNotEmpty(this.focusedItem) ? this.findNextItem(this.focusedItem) : this.findFirstItem();\n\n this.changeFocusedItem({ originalEvent: event, processedItem, focusOnNext: true });\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const processedItem = isNotEmpty(this.focusedItem) ? this.findPrevItem(this.focusedItem) : this.findLastItem();\n\n this.changeFocusedItem({ originalEvent: event, processedItem, selfCheck: true });\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n if (isNotEmpty(this.focusedItem)) {\n const matched = this.activeItemPath.some((p) => p.key === this.focusedItem.key);\n\n if (matched) {\n this.activeItemPath = this.activeItemPath.filter((p) => p.key !== this.focusedItem.key);\n } else {\n this.focusedItem = isNotEmpty(this.focusedItem.parent) ? this.focusedItem.parent : this.focusedItem;\n }\n\n event.preventDefault();\n }\n },\n onArrowRightKey(event) {\n if (isNotEmpty(this.focusedItem)) {\n const grouped = this.isItemGroup(this.focusedItem);\n\n if (grouped) {\n const matched = this.activeItemPath.some((p) => p.key === this.focusedItem.key);\n\n if (matched) {\n this.onArrowDownKey(event);\n } else {\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItem.parentKey);\n this.activeItemPath.push(this.focusedItem);\n }\n }\n\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedItem({ originalEvent: event, processedItem: this.findFirstItem(), allowHeaderFocus: false });\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItem({ originalEvent: event, processedItem: this.findLastItem(), focusOnNext: true, allowHeaderFocus: false });\n event.preventDefault();\n },\n onEnterKey(event) {\n if (isNotEmpty(this.focusedItem)) {\n const element = findSingle(this.$el, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && (findSingle(element, '[data-pc-section=\"itemlink\"]') || findSingle(element, 'a,button'));\n\n anchorElement ? anchorElement.click() : element && element.click();\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onItemToggle(event) {\n const { processedItem, expanded } = event;\n\n if (this.expandedKeys) {\n this.$emit('item-toggle', { item: processedItem.item, expanded });\n } else {\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== processedItem.parentKey);\n expanded && this.activeItemPath.push(processedItem);\n }\n\n this.focusedItem = processedItem;\n focus(this.$el);\n },\n onItemMouseMove(event) {\n if (this.focused) {\n this.focusedItem = event.processedItem;\n }\n },\n isElementInPanel(event, element) {\n const panel = event.currentTarget.closest('[data-pc-section=\"panel\"]');\n\n return panel && panel.contains(element);\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getItemLabel(processedItem)?.toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n },\n isVisibleItem(processedItem) {\n return !!processedItem && (processedItem.level === 0 || this.isItemActive(processedItem)) && this.isItemVisible(processedItem);\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem) && !this.getItemProp(processedItem, 'separator');\n },\n findFirstItem() {\n return this.visibleItems.find((processedItem) => this.isValidItem(processedItem));\n },\n findLastItem() {\n return findLast(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItem(processedItem) {\n const index = this.visibleItems.findIndex((item) => item.key === processedItem.key);\n const matchedItem = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).find((pItem) => this.isValidItem(pItem)) : undefined;\n\n return matchedItem || processedItem;\n },\n findPrevItem(processedItem) {\n const index = this.visibleItems.findIndex((item) => item.key === processedItem.key);\n const matchedItem = index > 0 ? findLast(this.visibleItems.slice(0, index), (pItem) => this.isValidItem(pItem)) : undefined;\n\n return matchedItem || processedItem;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let matchedItem = null;\n let matched = false;\n\n if (isNotEmpty(this.focusedItem)) {\n const focusedItemIndex = this.visibleItems.findIndex((processedItem) => processedItem.key === this.focusedItem.key);\n\n matchedItem = this.visibleItems.slice(focusedItemIndex).find((processedItem) => this.isItemMatched(processedItem));\n matchedItem = isEmpty(matchedItem) ? this.visibleItems.slice(0, focusedItemIndex).find((processedItem) => this.isItemMatched(processedItem)) : matchedItem;\n } else {\n matchedItem = this.visibleItems.find((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (isNotEmpty(matchedItem)) {\n matched = true;\n }\n\n if (isEmpty(matchedItem) && isEmpty(this.focusedItem)) {\n matchedItem = this.findFirstItem();\n }\n\n if (isNotEmpty(matchedItem)) {\n this.changeFocusedItem({\n originalEvent: event,\n processedItem: matchedItem,\n allowHeaderFocus: false\n });\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 changeFocusedItem(event) {\n const { originalEvent, processedItem, focusOnNext, selfCheck, allowHeaderFocus = true } = event;\n\n if (isNotEmpty(this.focusedItem) && this.focusedItem.key !== processedItem.key) {\n this.focusedItem = processedItem;\n this.scrollInView();\n } else if (allowHeaderFocus) {\n this.$emit('header-focus', { originalEvent, focusOnNext, selfCheck });\n }\n },\n scrollInView() {\n const element = findSingle(this.$el, `li[id=\"${`${this.focusedItemId}`}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n },\n autoUpdateActiveItemPath(expandedKeys) {\n this.activeItemPath = Object.entries(expandedKeys || {}).reduce((acc, [key, val]) => {\n if (val) {\n const processedItem = this.findProcessedItemByItemKey(key);\n\n processedItem && acc.push(processedItem);\n }\n\n return acc;\n }, []);\n },\n findProcessedItemByItemKey(key, processedItems, level = 0) {\n processedItems = processedItems || (level === 0 && this.processedItems);\n\n if (!processedItems) return null;\n\n for (let i = 0; i < processedItems.length; i++) {\n const processedItem = processedItems[i];\n\n if (this.getItemProp(processedItem, 'key') === key) return processedItem;\n\n const matchedItem = this.findProcessedItemByItemKey(key, processedItem.items, level + 1);\n\n if (matchedItem) return matchedItem;\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 flatItems(processedItems, processedFlattenItems = []) {\n processedItems &&\n processedItems.forEach((processedItem) => {\n if (this.isVisibleItem(processedItem)) {\n processedFlattenItems.push(processedItem);\n this.flatItems(processedItem.items, processedFlattenItems);\n }\n });\n\n return processedFlattenItems;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.items || []);\n },\n visibleItems() {\n return this.flatItems(this.processedItems);\n },\n focusedItemId() {\n return isNotEmpty(this.focusedItem) ? `${this.panelId}_${this.focusedItem.key}` : null;\n }\n },\n components: {\n PanelMenuSub: PanelMenuSub\n }\n};\n</script>\n","<template>\n <PanelMenuSub\n :id=\"panelId + '_list'\"\n :class=\"cx('rootList')\"\n role=\"tree\"\n :tabindex=\"-1\"\n :aria-activedescendant=\"focused ? focusedItemId : undefined\"\n :panelId=\"panelId\"\n :focusedItemId=\"focused ? focusedItemId : undefined\"\n :items=\"processedItems\"\n :templates=\"templates\"\n :activeItemPath=\"activeItemPath\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-toggle=\"onItemToggle\"\n @item-mousemove=\"onItemMouseMove\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n v-bind=\"ptm('rootList')\"\n />\n</template>\n\n<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport { findSingle, focus } from '@primeuix/utils/dom';\nimport { resolve, isNotEmpty, isPrintableCharacter, findLast, isEmpty } from '@primeuix/utils/object';\nimport PanelMenuSub from './PanelMenuSub.vue';\n\nexport default {\n name: 'PanelMenuList',\n hostName: 'PanelMenu',\n extends: BaseComponent,\n emits: ['item-toggle', 'header-focus'],\n props: {\n panelId: {\n type: String,\n default: null\n },\n items: {\n type: Array,\n default: null\n },\n templates: {\n type: Object,\n default: null\n },\n expandedKeys: {\n type: Object,\n default: null\n }\n },\n searchTimeout: null,\n searchValue: null,\n data() {\n return {\n focused: false,\n focusedItem: null,\n activeItemPath: []\n };\n },\n watch: {\n expandedKeys(newValue) {\n this.autoUpdateActiveItemPath(newValue);\n }\n },\n created() {\n this.autoUpdateActiveItemPath(this.expandedKeys);\n },\n methods: {\n getItemProp(processedItem, name) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n isItemVisible(processedItem) {\n return this.getItemProp(processedItem, 'visible') !== false;\n },\n isItemDisabled(processedItem) {\n return this.getItemProp(processedItem, 'disabled');\n },\n isItemActive(processedItem) {\n return this.activeItemPath.some((path) => path.key === processedItem.parentKey);\n },\n isItemGroup(processedItem) {\n return isNotEmpty(processedItem.items);\n },\n onFocus(event) {\n this.focused = true;\n this.focusedItem = this.focusedItem || (this.isElementInPanel(event, event.relatedTarget) ? this.findFirstItem() : this.findLastItem());\n },\n onBlur() {\n this.focused = false;\n this.focusedItem = null;\n this.searchValue = '';\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 case 'Tab':\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 onArrowDownKey(event) {\n const processedItem = isNotEmpty(this.focusedItem) ? this.findNextItem(this.focusedItem) : this.findFirstItem();\n\n this.changeFocusedItem({ originalEvent: event, processedItem, focusOnNext: true });\n event.preventDefault();\n },\n onArrowUpKey(event) {\n const processedItem = isNotEmpty(this.focusedItem) ? this.findPrevItem(this.focusedItem) : this.findLastItem();\n\n this.changeFocusedItem({ originalEvent: event, processedItem, selfCheck: true });\n event.preventDefault();\n },\n onArrowLeftKey(event) {\n if (isNotEmpty(this.focusedItem)) {\n const matched = this.activeItemPath.some((p) => p.key === this.focusedItem.key);\n\n if (matched) {\n this.activeItemPath = this.activeItemPath.filter((p) => p.key !== this.focusedItem.key);\n } else {\n this.focusedItem = isNotEmpty(this.focusedItem.parent) ? this.focusedItem.parent : this.focusedItem;\n }\n\n event.preventDefault();\n }\n },\n onArrowRightKey(event) {\n if (isNotEmpty(this.focusedItem)) {\n const grouped = this.isItemGroup(this.focusedItem);\n\n if (grouped) {\n const matched = this.activeItemPath.some((p) => p.key === this.focusedItem.key);\n\n if (matched) {\n this.onArrowDownKey(event);\n } else {\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItem.parentKey);\n this.activeItemPath.push(this.focusedItem);\n }\n }\n\n event.preventDefault();\n }\n },\n onHomeKey(event) {\n this.changeFocusedItem({ originalEvent: event, processedItem: this.findFirstItem(), allowHeaderFocus: false });\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItem({ originalEvent: event, processedItem: this.findLastItem(), focusOnNext: true, allowHeaderFocus: false });\n event.preventDefault();\n },\n onEnterKey(event) {\n if (isNotEmpty(this.focusedItem)) {\n const element = findSingle(this.$el, `li[id=\"${`${this.focusedItemId}`}\"]`);\n const anchorElement = element && (findSingle(element, '[data-pc-section=\"itemlink\"]') || findSingle(element, 'a,button'));\n\n anchorElement ? anchorElement.click() : element && element.click();\n }\n\n event.preventDefault();\n },\n onSpaceKey(event) {\n this.onEnterKey(event);\n },\n onItemToggle(event) {\n const { processedItem, expanded } = event;\n\n if (this.expandedKeys) {\n this.$emit('item-toggle', { item: processedItem.item, expanded });\n } else {\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== processedItem.parentKey);\n expanded && this.activeItemPath.push(processedItem);\n }\n\n this.focusedItem = processedItem;\n focus(this.$el);\n },\n onItemMouseMove(event) {\n if (this.focused) {\n this.focusedItem = event.processedItem;\n }\n },\n isElementInPanel(event, element) {\n const panel = event.currentTarget.closest('[data-pc-section=\"panel\"]');\n\n return panel && panel.contains(element);\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getItemLabel(processedItem)?.toLocaleLowerCase(this.searchLocale).startsWith(this.searchValue.toLocaleLowerCase(this.searchLocale));\n },\n isVisibleItem(processedItem) {\n return !!processedItem && (processedItem.level === 0 || this.isItemActive(processedItem)) && this.isItemVisible(processedItem);\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem) && !this.getItemProp(processedItem, 'separator');\n },\n findFirstItem() {\n return this.visibleItems.find((processedItem) => this.isValidItem(processedItem));\n },\n findLastItem() {\n return findLast(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItem(processedItem) {\n const index = this.visibleItems.findIndex((item) => item.key === processedItem.key);\n const matchedItem = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).find((pItem) => this.isValidItem(pItem)) : undefined;\n\n return matchedItem || processedItem;\n },\n findPrevItem(processedItem) {\n const index = this.visibleItems.findIndex((item) => item.key === processedItem.key);\n const matchedItem = index > 0 ? findLast(this.visibleItems.slice(0, index), (pItem) => this.isValidItem(pItem)) : undefined;\n\n return matchedItem || processedItem;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let matchedItem = null;\n let matched = false;\n\n if (isNotEmpty(this.focusedItem)) {\n const focusedItemIndex = this.visibleItems.findIndex((processedItem) => processedItem.key === this.focusedItem.key);\n\n matchedItem = this.visibleItems.slice(focusedItemIndex).find((processedItem) => this.isItemMatched(processedItem));\n matchedItem = isEmpty(matchedItem) ? this.visibleItems.slice(0, focusedItemIndex).find((processedItem) => this.isItemMatched(processedItem)) : matchedItem;\n } else {\n matchedItem = this.visibleItems.find((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (isNotEmpty(matchedItem)) {\n matched = true;\n }\n\n if (isEmpty(matchedItem) && isEmpty(this.focusedItem)) {\n matchedItem = this.findFirstItem();\n }\n\n if (isNotEmpty(matchedItem)) {\n this.changeFocusedItem({\n originalEvent: event,\n processedItem: matchedItem,\n allowHeaderFocus: false\n });\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 changeFocusedItem(event) {\n const { originalEvent, processedItem, focusOnNext, selfCheck, allowHeaderFocus = true } = event;\n\n if (isNotEmpty(this.focusedItem) && this.focusedItem.key !== processedItem.key) {\n this.focusedItem = processedItem;\n this.scrollInView();\n } else if (allowHeaderFocus) {\n this.$emit('header-focus', { originalEvent, focusOnNext, selfCheck });\n }\n },\n scrollInView() {\n const element = findSingle(this.$el, `li[id=\"${`${this.focusedItemId}`}\"]`);\n\n if (element) {\n element.scrollIntoView && element.scrollIntoView({ block: 'nearest', inline: 'start' });\n }\n },\n autoUpdateActiveItemPath(expandedKeys) {\n this.activeItemPath = Object.entries(expandedKeys || {}).reduce((acc, [key, val]) => {\n if (val) {\n const processedItem = this.findProcessedItemByItemKey(key);\n\n processedItem && acc.push(processedItem);\n }\n\n return acc;\n }, []);\n },\n findProcessedItemByItemKey(key, processedItems, level = 0) {\n processedItems = processedItems || (level === 0 && this.processedItems);\n\n if (!processedItems) return null;\n\n for (let i = 0; i < processedItems.length; i++) {\n const processedItem = processedItems[i];\n\n if (this.getItemProp(processedItem, 'key') === key) return processedItem;\n\n const matchedItem = this.findProcessedItemByItemKey(key, processedItem.items, level + 1);\n\n if (matchedItem) return matchedItem;\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 flatItems(processedItems, processedFlattenItems = []) {\n processedItems &&\n processedItems.forEach((processedItem) => {\n if (this.isVisibleItem(processedItem)) {\n processedFlattenItems.push(processedItem);\n this.flatItems(processedItem.items, processedFlattenItems);\n }\n });\n\n return processedFlattenItems;\n }\n },\n computed: {\n processedItems() {\n return this.createProcessedItems(this.items || []);\n },\n visibleItems() {\n return this.flatItems(this.processedItems);\n },\n focusedItemId() {\n return isNotEmpty(this.focusedItem) ? `${this.panelId}_${this.focusedItem.key}` : null;\n }\n },\n components: {\n PanelMenuSub: PanelMenuSub\n }\n};\n</script>\n","<template>\n <div :id=\"$id\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-for=\"(item, index) of model\" :key=\"getPanelKey(index)\">\n <div v-if=\"isItemVisible(item)\" :style=\"getItemProp(item, 'style')\" :class=\"[cx('panel'), getItemProp(item, 'class')]\" v-bind=\"ptm('panel')\">\n <div\n :id=\"getHeaderId(index)\"\n :class=\"[cx('header', { item }), getItemProp(item, 'headerClass')]\"\n :tabindex=\"isItemDisabled(item) ? -1 : tabindex\"\n role=\"button\"\n :aria-label=\"getItemLabel(item)\"\n :aria-expanded=\"isItemActive(item)\"\n :aria-controls=\"getContentId(index)\"\n :aria-disabled=\"isItemDisabled(item)\"\n @click=\"onHeaderClick($event, item)\"\n @keydown=\"onHeaderKeyDown($event, item)\"\n v-bind=\"getPTOptions('header', item, index)\"\n :data-p-active=\"isItemActive(item)\"\n :data-p-disabled=\"isItemDisabled(item)\"\n >\n <div :class=\"cx('headerContent')\" v-bind=\"getPTOptions('headerContent', item, index)\">\n <template v-if=\"!$slots.item\">\n <a :href=\"getItemProp(item, 'url')\" :class=\"cx('headerLink')\" :tabindex=\"-1\" v-bind=\"getPTOptions('headerLink', item, index)\">\n <slot v-if=\"getItemProp(item, 'items')\" name=\"submenuicon\" :active=\"isItemActive(item)\">\n <component :is=\"isItemActive(item) ? 'ChevronDownIcon' : 'ChevronRightIcon'\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions('submenuIcon', item, index)\" />\n </slot>\n <component v-if=\"$slots.headericon\" :is=\"$slots.headericon\" :item=\"item\" :class=\"[cx('headerIcon'), getItemProp(item, 'icon')]\" />\n <span v-else-if=\"getItemProp(item, 'icon')\" :class=\"[cx('headerIcon'), getItemProp(item, 'icon')]\" v-bind=\"getPTOptions('headerIcon', item, index)\" />\n <span :class=\"cx('headerLabel')\" v-bind=\"getPTOptions('headerLabel', item, index)\">{{ getItemLabel(item) }}</span>\n </a>\n </template>\n <component v-else :is=\"$slots.item\" :item=\"item\" :root=\"true\" :active=\"isItemActive(item)\" :hasSubmenu=\"isItemGroup(item)\" :label=\"getItemLabel(item)\" :props=\"getMenuItemProps(item, index)\"></component>\n </div>\n </div>\n <transition name=\"p-collapsible\" v-bind=\"ptm('transition')\">\n <div v-show=\"isItemActive(item)\" :id=\"getContentId(index)\" :class=\"cx('contentContainer')\" role=\"region\" :aria-labelledby=\"getHeaderId(index)\" v-bind=\"ptm('contentContainer')\">\n <div :class=\"cx('contentWrapper')\" v-bind=\"ptm('contentWrapper')\">\n <div v-if=\"getItemProp(item, 'items')\" :class=\"cx('content')\" v-bind=\"ptm('content')\">\n <PanelMenuList\n :panelId=\"getPanelId(index)\"\n :items=\"getItemProp(item, 'items')\"\n :templates=\"$slots\"\n :expandedKeys=\"expandedKeys\"\n @item-toggle=\"changeExpandedKeys\"\n @header-focus=\"updateFocusedHeader\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </div>\n </div>\n </div>\n </transition>\n </div>\n </template>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, getAttribute } from '@primeuix/utils/dom';\nimport { equals, isNotEmpty, resolve } from '@primeuix/utils/object';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps } from 'vue';\nimport BasePanelMenu from './BasePanelMenu.vue';\nimport PanelMenuList from './PanelMenuList.vue';\n\nexport default {\n name: 'PanelMenu',\n extends: BasePanelMenu,\n inheritAttrs: false,\n emits: ['update:expandedKeys', 'panel-open', 'panel-close'],\n data() {\n return {\n activeItem: null,\n activeItems: []\n };\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 getPTOptions(key, item, index) {\n return this.ptm(key, {\n context: {\n index,\n active: this.isItemActive(item),\n focused: this.isItemFocused(item),\n disabled: this.isItemDisabled(item)\n }\n });\n },\n isItemActive(item) {\n return this.expandedKeys ? this.expandedKeys[this.getItemProp(item, 'key')] : this.multiple ? this.activeItems.some((subItem) => equals(item, subItem)) : equals(item, this.activeItem);\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemFocused(item) {\n return equals(item, this.activeItem);\n },\n isItemGroup(item) {\n return isNotEmpty(item.items);\n },\n getPanelId(index) {\n return `${this.$id}_${index}`;\n },\n getPanelKey(index) {\n return this.getPanelId(index);\n },\n getHeaderId(index) {\n return `${this.getPanelId(index)}_header`;\n },\n getContentId(index) {\n return `${this.getPanelId(index)}_content`;\n },\n onHeaderClick(event, item) {\n if (this.isItemDisabled(item)) {\n event.preventDefault();\n\n return;\n }\n\n if (item.command) {\n item.command({ originalEvent: event, item });\n }\n\n this.changeActiveItem(event, item);\n focus(event.currentTarget);\n },\n onHeaderKeyDown(event, item) {\n switch (event.code) {\n case 'ArrowDown':\n this.onHeaderArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onHeaderArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHeaderHomeKey(event);\n break;\n\n case 'End':\n this.onHeaderEndKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onHeaderEnterKey(event, item);\n break;\n\n default:\n break;\n }\n },\n onHeaderArrowDownKey(event) {\n const rootList = getAttribute(event.currentTarget, 'data-p-active') === true ? findSingle(event.currentTarget.nextElementSibling, '[data-pc-section=\"rootlist\"]') : null;\n\n rootList ? focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: true });\n event.preventDefault();\n },\n onHeaderArrowUpKey(event) {\n const prevHeader = this.findPrevHeader(event.currentTarget.parentElement) || this.findLastHeader();\n const rootList = getAttribute(prevHeader, 'data-p-active') === true ? findSingle(prevHeader.nextElementSibling, '[data-pc-section=\"rootlist\"]') : null;\n\n rootList ? focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: false });\n event.preventDefault();\n },\n onHeaderHomeKey(event) {\n this.changeFocusedHeader(event, this.findFirstHeader());\n event.preventDefault();\n },\n onHeaderEndKey(event) {\n this.changeFocusedHeader(event, this.findLastHeader());\n event.preventDefault();\n },\n onHeaderEnterKey(event, item) {\n const headerAction = findSingle(event.currentTarget, '[data-pc-section=\"headerlink\"]');\n\n headerAction ? headerAction.click() : this.onHeaderClick(event, item);\n event.preventDefault();\n },\n findNextHeader(panelElement, selfCheck = false) {\n const nextPanelElement = selfCheck ? panelElement : panelElement.nextElementSibling;\n const headerElement = findSingle(nextPanelElement, '[data-pc-section=\"header\"]');\n\n return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findNextHeader(headerElement.parentElement) : headerElement) : null;\n },\n findPrevHeader(panelElement, selfCheck = false) {\n const prevPanelElement = selfCheck ? panelElement : panelElement.previousElementSibling;\n const headerElement = findSingle(prevPanelElement, '[data-pc-section=\"header\"]');\n\n return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findPrevHeader(headerElement.parentElement) : headerElement) : null;\n },\n findFirstHeader() {\n return this.findNextHeader(this.$el.firstElementChild, true);\n },\n findLastHeader() {\n return this.findPrevHeader(this.$el.lastElementChild, true);\n },\n updateFocusedHeader(event) {\n const { originalEvent, focusOnNext, selfCheck } = event;\n const panelElement = originalEvent.currentTarget.closest('[data-pc-section=\"panel\"]');\n const header = selfCheck ? findSingle(panelElement, '[data-pc-section=\"header\"]') : focusOnNext ? this.findNextHeader(panelElement) : this.findPrevHeader(panelElement);\n\n header ? this.changeFocusedHeader(originalEvent, header) : focusOnNext ? this.onHeaderHomeKey(originalEvent) : this.onHeaderEndKey(originalEvent);\n },\n changeActiveItem(event, item, selfActive = false) {\n if (!this.isItemDisabled(item)) {\n const active = this.isItemActive(item);\n const eventName = !active ? 'panel-open' : 'panel-close';\n\n this.activeItem = selfActive ? item : this.activeItem && equals(item, this.activeItem) ? null : item;\n\n if (this.multiple) {\n // activeItem and activeItems should be separated because it should be only one focused root item\n if (this.activeItems.some((subItem) => equals(item, subItem))) {\n this.activeItems = this.activeItems.filter((subItem) => !equals(item, subItem));\n } else {\n this.activeItems.push(item);\n }\n }\n\n this.changeExpandedKeys({ item, expanded: !active });\n this.$emit(eventName, { originalEvent: event, item });\n }\n },\n changeExpandedKeys({ item, expanded = false }) {\n if (this.expandedKeys) {\n let _keys = { ...this.expandedKeys };\n\n if (expanded) _keys[item.key] = true;\n else delete _keys[item.key];\n\n this.$emit('update:expandedKeys', _keys);\n }\n },\n changeFocusedHeader(event, element) {\n element && focus(element);\n },\n getMenuItemProps(item, index) {\n return {\n icon: mergeProps(\n {\n class: [this.cx('headerIcon'), this.getItemProp(item, 'icon')]\n },\n this.getPTOptions('headerIcon', item, index)\n ),\n label: mergeProps(\n {\n class: this.cx('headerLabel')\n },\n this.getPTOptions('headerLabel', item, index)\n )\n };\n }\n },\n components: {\n PanelMenuList: PanelMenuList,\n ChevronRightIcon: ChevronRightIcon,\n ChevronDownIcon: ChevronDownIcon\n }\n};\n</script>\n","<template>\n <div :id=\"$id\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <template v-for=\"(item, index) of model\" :key=\"getPanelKey(index)\">\n <div v-if=\"isItemVisible(item)\" :style=\"getItemProp(item, 'style')\" :class=\"[cx('panel'), getItemProp(item, 'class')]\" v-bind=\"ptm('panel')\">\n <div\n :id=\"getHeaderId(index)\"\n :class=\"[cx('header', { item }), getItemProp(item, 'headerClass')]\"\n :tabindex=\"isItemDisabled(item) ? -1 : tabindex\"\n role=\"button\"\n :aria-label=\"getItemLabel(item)\"\n :aria-expanded=\"isItemActive(item)\"\n :aria-controls=\"getContentId(index)\"\n :aria-disabled=\"isItemDisabled(item)\"\n @click=\"onHeaderClick($event, item)\"\n @keydown=\"onHeaderKeyDown($event, item)\"\n v-bind=\"getPTOptions('header', item, index)\"\n :data-p-active=\"isItemActive(item)\"\n :data-p-disabled=\"isItemDisabled(item)\"\n >\n <div :class=\"cx('headerContent')\" v-bind=\"getPTOptions('headerContent', item, index)\">\n <template v-if=\"!$slots.item\">\n <a :href=\"getItemProp(item, 'url')\" :class=\"cx('headerLink')\" :tabindex=\"-1\" v-bind=\"getPTOptions('headerLink', item, index)\">\n <slot v-if=\"getItemProp(item, 'items')\" name=\"submenuicon\" :active=\"isItemActive(item)\">\n <component :is=\"isItemActive(item) ? 'ChevronDownIcon' : 'ChevronRightIcon'\" :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions('submenuIcon', item, index)\" />\n </slot>\n <component v-if=\"$slots.headericon\" :is=\"$slots.headericon\" :item=\"item\" :class=\"[cx('headerIcon'), getItemProp(item, 'icon')]\" />\n <span v-else-if=\"getItemProp(item, 'icon')\" :class=\"[cx('headerIcon'), getItemProp(item, 'icon')]\" v-bind=\"getPTOptions('headerIcon', item, index)\" />\n <span :class=\"cx('headerLabel')\" v-bind=\"getPTOptions('headerLabel', item, index)\">{{ getItemLabel(item) }}</span>\n </a>\n </template>\n <component v-else :is=\"$slots.item\" :item=\"item\" :root=\"true\" :active=\"isItemActive(item)\" :hasSubmenu=\"isItemGroup(item)\" :label=\"getItemLabel(item)\" :props=\"getMenuItemProps(item, index)\"></component>\n </div>\n </div>\n <transition name=\"p-collapsible\" v-bind=\"ptm('transition')\">\n <div v-show=\"isItemActive(item)\" :id=\"getContentId(index)\" :class=\"cx('contentContainer')\" role=\"region\" :aria-labelledby=\"getHeaderId(index)\" v-bind=\"ptm('contentContainer')\">\n <div :class=\"cx('contentWrapper')\" v-bind=\"ptm('contentWrapper')\">\n <div v-if=\"getItemProp(item, 'items')\" :class=\"cx('content')\" v-bind=\"ptm('content')\">\n <PanelMenuList\n :panelId=\"getPanelId(index)\"\n :items=\"getItemProp(item, 'items')\"\n :templates=\"$slots\"\n :expandedKeys=\"expandedKeys\"\n @item-toggle=\"changeExpandedKeys\"\n @header-focus=\"updateFocusedHeader\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n />\n </div>\n </div>\n </div>\n </transition>\n </div>\n </template>\n </div>\n</template>\n\n<script>\nimport { findSingle, focus, getAttribute } from '@primeuix/utils/dom';\nimport { equals, isNotEmpty, resolve } from '@primeuix/utils/object';\nimport ChevronDownIcon from '@primevue/icons/chevrondown';\nimport ChevronRightIcon from '@primevue/icons/chevronright';\nimport { mergeProps } from 'vue';\nimport BasePanelMenu from './BasePanelMenu.vue';\nimport PanelMenuList from './PanelMenuList.vue';\n\nexport default {\n name: 'PanelMenu',\n extends: BasePanelMenu,\n inheritAttrs: false,\n emits: ['update:expandedKeys', 'panel-open', 'panel-close'],\n data() {\n return {\n activeItem: null,\n activeItems: []\n };\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 getPTOptions(key, item, index) {\n return this.ptm(key, {\n context: {\n index,\n active: this.isItemActive(item),\n focused: this.isItemFocused(item),\n disabled: this.isItemDisabled(item)\n }\n });\n },\n isItemActive(item) {\n return this.expandedKeys ? this.expandedKeys[this.getItemProp(item, 'key')] : this.multiple ? this.activeItems.some((subItem) => equals(item, subItem)) : equals(item, this.activeItem);\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemFocused(item) {\n return equals(item, this.activeItem);\n },\n isItemGroup(item) {\n return isNotEmpty(item.items);\n },\n getPanelId(index) {\n return `${this.$id}_${index}`;\n },\n getPanelKey(index) {\n return this.getPanelId(index);\n },\n getHeaderId(index) {\n return `${this.getPanelId(index)}_header`;\n },\n getContentId(index) {\n return `${this.getPanelId(index)}_content`;\n },\n onHeaderClick(event, item) {\n if (this.isItemDisabled(item)) {\n event.preventDefault();\n\n return;\n }\n\n if (item.command) {\n item.command({ originalEvent: event, item });\n }\n\n this.changeActiveItem(event, item);\n focus(event.currentTarget);\n },\n onHeaderKeyDown(event, item) {\n switch (event.code) {\n case 'ArrowDown':\n this.onHeaderArrowDownKey(event);\n break;\n\n case 'ArrowUp':\n this.onHeaderArrowUpKey(event);\n break;\n\n case 'Home':\n this.onHeaderHomeKey(event);\n break;\n\n case 'End':\n this.onHeaderEndKey(event);\n break;\n\n case 'Enter':\n case 'NumpadEnter':\n case 'Space':\n this.onHeaderEnterKey(event, item);\n break;\n\n default:\n break;\n }\n },\n onHeaderArrowDownKey(event) {\n const rootList = getAttribute(event.currentTarget, 'data-p-active') === true ? findSingle(event.currentTarget.nextElementSibling, '[data-pc-section=\"rootlist\"]') : null;\n\n rootList ? focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: true });\n event.preventDefault();\n },\n onHeaderArrowUpKey(event) {\n const prevHeader = this.findPrevHeader(event.currentTarget.parentElement) || this.findLastHeader();\n const rootList = getAttribute(prevHeader, 'data-p-active') === true ? findSingle(prevHeader.nextElementSibling, '[data-pc-section=\"rootlist\"]') : null;\n\n rootList ? focus(rootList) : this.updateFocusedHeader({ originalEvent: event, focusOnNext: false });\n event.preventDefault();\n },\n onHeaderHomeKey(event) {\n this.changeFocusedHeader(event, this.findFirstHeader());\n event.preventDefault();\n },\n onHeaderEndKey(event) {\n this.changeFocusedHeader(event, this.findLastHeader());\n event.preventDefault();\n },\n onHeaderEnterKey(event, item) {\n const headerAction = findSingle(event.currentTarget, '[data-pc-section=\"headerlink\"]');\n\n headerAction ? headerAction.click() : this.onHeaderClick(event, item);\n event.preventDefault();\n },\n findNextHeader(panelElement, selfCheck = false) {\n const nextPanelElement = selfCheck ? panelElement : panelElement.nextElementSibling;\n const headerElement = findSingle(nextPanelElement, '[data-pc-section=\"header\"]');\n\n return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findNextHeader(headerElement.parentElement) : headerElement) : null;\n },\n findPrevHeader(panelElement, selfCheck = false) {\n const prevPanelElement = selfCheck ? panelElement : panelElement.previousElementSibling;\n const headerElement = findSingle(prevPanelElement, '[data-pc-section=\"header\"]');\n\n return headerElement ? (getAttribute(headerElement, 'data-p-disabled') ? this.findPrevHeader(headerElement.parentElement) : headerElement) : null;\n },\n findFirstHeader() {\n return this.findNextHeader(this.$el.firstElementChild, true);\n },\n findLastHeader() {\n return this.findPrevHeader(this.$el.lastElementChild, true);\n },\n updateFocusedHeader(event) {\n const { originalEvent, focusOnNext, selfCheck } = event;\n const panelElement = originalEvent.currentTarget.closest('[data-pc-section=\"panel\"]');\n const header = selfCheck ? findSingle(panelElement, '[data-pc-section=\"header\"]') : focusOnNext ? this.findNextHeader(panelElement) : this.findPrevHeader(panelElement);\n\n header ? this.changeFocusedHeader(originalEvent, header) : focusOnNext ? this.onHeaderHomeKey(originalEvent) : this.onHeaderEndKey(originalEvent);\n },\n changeActiveItem(event, item, selfActive = false) {\n if (!this.isItemDisabled(item)) {\n const active = this.isItemActive(item);\n const eventName = !active ? 'panel-open' : 'panel-close';\n\n this.activeItem = selfActive ? item : this.activeItem && equals(item, this.activeItem) ? null : item;\n\n if (this.multiple) {\n // activeItem and activeItems should be separated because it should be only one focused root item\n if (this.activeItems.some((subItem) => equals(item, subItem))) {\n this.activeItems = this.activeItems.filter((subItem) => !equals(item, subItem));\n } else {\n this.activeItems.push(item);\n }\n }\n\n this.changeExpandedKeys({ item, expanded: !active });\n this.$emit(eventName, { originalEvent: event, item });\n }\n },\n changeExpandedKeys({ item, expanded = false }) {\n if (this.expandedKeys) {\n let _keys = { ...this.expandedKeys };\n\n if (expanded) _keys[item.key] = true;\n else delete _keys[item.key];\n\n this.$emit('update:expandedKeys', _keys);\n }\n },\n changeFocusedHeader(event, element) {\n element && focus(element);\n },\n getMenuItemProps(item, index) {\n return {\n icon: mergeProps(\n {\n class: [this.cx('headerIcon'), this.getItemProp(item, 'icon')]\n },\n this.getPTOptions('headerIcon', item, index)\n ),\n label: mergeProps(\n {\n class: this.cx('headerLabel')\n },\n this.getPTOptions('headerLabel', item, index)\n )\n };\n }\n },\n components: {\n PanelMenuList: PanelMenuList,\n ChevronRightIcon: ChevronRightIcon,\n ChevronDownIcon: ChevronDownIcon\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","model","type","Array","expandedKeys","Object","multiple","Boolean","tabindex","Number","style","PanelMenuStyle","provide","$pcPanelMenu","$parentInstance","hostName","emits","panelId","String","focusedItemId","items","level","templates","activeItemPath","methods","getItemId","processedItem","concat","key","getItemKey","getItemProp","params","item","resolve","undefined","getItemLabel","getPTOptions","index","ptm","context","active","isItemActive","focused","isItemFocused","disabled","isItemDisabled","some","path","isItemVisible","isItemGroup","isNotEmpty","onItemClick","event","originalEvent","$emit","expanded","onItemToggle","onItemMouseMove","getAriaSetSize","_this","filter","length","getAriaPosInset","_this2","slice","getMenuItemProps","action","mergeProps","cx","icon","label","submenuicon","components","ChevronRightIcon","ChevronDownIcon","directives","ripple","Ripple","_createElementBlock","_ctx","$props","_openBlock","_Fragment","_renderList","$options","_mergeProps","id","role","_createElementVNode","onClick","$event","onMousemove","_withDirectives","href","target","_createBlock","_resolveDynamicComponent","itemicon","ref_for","_toDisplayString","root","hasSubmenu","_createVNode","_Transition","_component_PanelMenuSub","onItemMousemove","_cache","pt","unstyled","_vShow","searchTimeout","searchValue","data","focusedItem","watch","newValue","autoUpdateActiveItemPath","created","parentKey","onFocus","isElementInPanel","relatedTarget","findFirstItem","findLastItem","onBlur","onKeyDown","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","isPrintableCharacter","searchItems","findNextItem","changeFocusedItem","focusOnNext","preventDefault","findPrevItem","selfCheck","matched","p","parent","grouped","push","allowHeaderFocus","element","findSingle","$el","anchorElement","click","focus","panel","currentTarget","closest","contains","isItemMatched","_this$getItemLabel","isValidItem","toLocaleLowerCase","searchLocale","startsWith","isVisibleItem","_this3","visibleItems","find","_this4","findLast","_this5","findIndex","matchedItem","pItem","_this6","char","_this7","focusedItemIndex","isEmpty","clearTimeout","setTimeout","_event$allowHeaderFoc","scrollInView","scrollIntoView","block","inline","_this8","entries","reduce","acc","_ref","_ref2","_slicedToArray","val","findProcessedItemByItemKey","processedItems","arguments","i","createProcessedItems","_this9","forEach","newItem","flatItems","_this0","processedFlattenItems","computed","PanelMenuSub","$data","onKeydown","BasePanelMenu","inheritAttrs","activeItem","activeItems","subItem","equals","getPanelId","$id","getPanelKey","getHeaderId","getContentId","onHeaderClick","command","changeActiveItem","onHeaderKeyDown","onHeaderArrowDownKey","onHeaderArrowUpKey","onHeaderHomeKey","onHeaderEndKey","onHeaderEnterKey","rootList","getAttribute","nextElementSibling","updateFocusedHeader","prevHeader","findPrevHeader","parentElement","findLastHeader","changeFocusedHeader","findFirstHeader","headerAction","findNextHeader","panelElement","nextPanelElement","headerElement","prevPanelElement","previousElementSibling","firstElementChild","lastElementChild","header","selfActive","eventName","changeExpandedKeys","_ref$expanded","_keys","_objectSpread","PanelMenuList","ptmi","$slots","_renderSlot","headericon","_normalizeClass","_component_PanelMenuList","onHeaderFocus"],"mappings":"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"} |