1 line
109 KiB
Plaintext
1 line
109 KiB
Plaintext
{"version":3,"file":"index.mjs","sources":["../../src/contextmenu/BaseContextMenu.vue","../../src/contextmenu/ContextMenuSub.vue","../../src/contextmenu/ContextMenuSub.vue?vue&type=template&id=112e8472&lang.js","../../src/contextmenu/ContextMenu.vue","../../src/contextmenu/ContextMenu.vue?vue&type=template&id=3b5be302&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@primevue/core/basecomponent';\nimport ContextMenuStyle from 'primevue/contextmenu/style';\n\nexport default {\n name: 'BaseContextMenu',\n extends: BaseComponent,\n props: {\n model: {\n type: Array,\n default: null\n },\n appendTo: {\n type: [String, Object],\n default: 'body'\n },\n autoZIndex: {\n type: Boolean,\n default: true\n },\n baseZIndex: {\n type: Number,\n default: 0\n },\n global: {\n type: Boolean,\n default: false\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabelledby: {\n type: String,\n default: null\n },\n ariaLabel: {\n type: String,\n default: null\n }\n },\n style: ContextMenuStyle,\n provide() {\n return {\n $pcContextMenu: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <transition name=\"p-anchored-overlay\" @enter=\"onEnter\" v-bind=\"ptm('menu.transition')\">\n <ul v-if=\"root ? true : visible\" ref=\"container\" :tabindex=\"tabindex\" v-bind=\"ptm('rootList')\">\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('item', processedItem, index)\"\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('itemContent', processedItem, index)\"\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('itemLink', processedItem, index)\">\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 :id=\"getItemLabelId(processedItem)\" :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel', processedItem, index)\">{{ getItemLabel(processedItem) }}</span>\n <template v-if=\"getItemProp(processedItem, 'items')\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" />\n <AngleRightIcon v-else :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions('submenuicon', processedItem, index)\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <ContextMenuSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n role=\"menu\"\n :class=\"cx('submenu')\"\n :menuId=\"menuId\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :templates=\"templates\"\n :activeItemPath=\"activeItemPath\"\n :level=\"level + 1\"\n :visible=\"isItemActive(processedItem) && isItemGroup(processedItem)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n @item-mousemove=\"$emit('item-mousemove', $event)\"\n :aria-labelledby=\"getItemLabelId(processedItem)\"\n v-bind=\"ptm('submenu')\"\n />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n </transition>\n</template>\n\n<script>\nimport { nestedPosition } from '@primeuix/utils/dom';\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ContextMenuSub',\n hostName: 'ContextMenu',\n extends: BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n default: null\n },\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n root: {\n type: Boolean,\n default: false\n },\n visible: {\n type: Boolean,\n default: false\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n methods: {\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId(processedItem) {\n return `${this.menuId}_${processedItem.key}_label`;\n },\n getPTOptions(key, processedItem, index) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem),\n index\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, isFocus: true });\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 onEnter() {\n nestedPosition(this.$refs.container, this.level);\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\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <transition name=\"p-anchored-overlay\" @enter=\"onEnter\" v-bind=\"ptm('menu.transition')\">\n <ul v-if=\"root ? true : visible\" ref=\"container\" :tabindex=\"tabindex\" v-bind=\"ptm('rootList')\">\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('item', processedItem, index)\"\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('itemContent', processedItem, index)\"\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('itemLink', processedItem, index)\">\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 :id=\"getItemLabelId(processedItem)\" :class=\"cx('itemLabel')\" v-bind=\"getPTOptions('itemLabel', processedItem, index)\">{{ getItemLabel(processedItem) }}</span>\n <template v-if=\"getItemProp(processedItem, 'items')\">\n <component v-if=\"templates.submenuicon\" :is=\"templates.submenuicon\" :active=\"isItemActive(processedItem)\" :class=\"cx('submenuIcon')\" />\n <AngleRightIcon v-else :class=\"cx('submenuIcon')\" v-bind=\"getPTOptions('submenuicon', processedItem, index)\" />\n </template>\n </a>\n </template>\n <component v-else :is=\"templates.item\" :item=\"processedItem.item\" :hasSubmenu=\"getItemProp(processedItem, 'items')\" :label=\"getItemLabel(processedItem)\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n <ContextMenuSub\n v-if=\"isItemVisible(processedItem) && isItemGroup(processedItem)\"\n :id=\"getItemId(processedItem) + '_list'\"\n role=\"menu\"\n :class=\"cx('submenu')\"\n :menuId=\"menuId\"\n :focusedItemId=\"focusedItemId\"\n :items=\"processedItem.items\"\n :templates=\"templates\"\n :activeItemPath=\"activeItemPath\"\n :level=\"level + 1\"\n :visible=\"isItemActive(processedItem) && isItemGroup(processedItem)\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @item-click=\"$emit('item-click', $event)\"\n @item-mouseenter=\"$emit('item-mouseenter', $event)\"\n @item-mousemove=\"$emit('item-mousemove', $event)\"\n :aria-labelledby=\"getItemLabelId(processedItem)\"\n v-bind=\"ptm('submenu')\"\n />\n </li>\n <li\n v-if=\"isItemVisible(processedItem) && getItemProp(processedItem, 'separator')\"\n :id=\"getItemId(processedItem)\"\n :style=\"getItemProp(processedItem, 'style')\"\n :class=\"[cx('separator'), getItemProp(processedItem, 'class')]\"\n role=\"separator\"\n v-bind=\"ptm('separator')\"\n ></li>\n </template>\n </ul>\n </transition>\n</template>\n\n<script>\nimport { nestedPosition } from '@primeuix/utils/dom';\nimport { isNotEmpty, resolve } from '@primeuix/utils/object';\nimport BaseComponent from '@primevue/core/basecomponent';\nimport AngleRightIcon from '@primevue/icons/angleright';\nimport Ripple from 'primevue/ripple';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'ContextMenuSub',\n hostName: 'ContextMenu',\n extends: BaseComponent,\n emits: ['item-click', 'item-mouseenter', 'item-mousemove'],\n props: {\n items: {\n type: Array,\n default: null\n },\n menuId: {\n type: String,\n default: null\n },\n focusedItemId: {\n type: String,\n default: null\n },\n root: {\n type: Boolean,\n default: false\n },\n visible: {\n type: Boolean,\n default: false\n },\n level: {\n type: Number,\n default: 0\n },\n templates: {\n type: Object,\n default: null\n },\n activeItemPath: {\n type: Object,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n methods: {\n getItemId(processedItem) {\n return `${this.menuId}_${processedItem.key}`;\n },\n getItemKey(processedItem) {\n return this.getItemId(processedItem);\n },\n getItemProp(processedItem, name, params) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name], params) : undefined;\n },\n getItemLabel(processedItem) {\n return this.getItemProp(processedItem, 'label');\n },\n getItemLabelId(processedItem) {\n return `${this.menuId}_${processedItem.key}_label`;\n },\n getPTOptions(key, processedItem, index) {\n return this.ptm(key, {\n context: {\n item: processedItem.item,\n active: this.isItemActive(processedItem),\n focused: this.isItemFocused(processedItem),\n disabled: this.isItemDisabled(processedItem),\n index\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, isFocus: true });\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 onEnter() {\n nestedPosition(this.$refs.container, this.level);\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\n components: {\n AngleRightIcon: AngleRightIcon\n },\n directives: {\n ripple: Ripple\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-anchored-overlay\" @enter=\"onEnter\" @after-enter=\"onAfterEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"visible\" :ref=\"containerRef\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <ContextMenuSub\n :ref=\"listRef\"\n :id=\"$id + '_list'\"\n :class=\"cx('rootList')\"\n role=\"menubar\"\n :root=\"true\"\n :tabindex=\"tabindex\"\n aria-orientation=\"vertical\"\n :aria-activedescendant=\"focused ? focusedItemIdx : undefined\"\n :menuId=\"$id\"\n :focusedItemId=\"focused ? focusedItemIdx : undefined\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :activeItemPath=\"activeItemPath\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n :level=\"0\"\n :visible=\"submenuVisible\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n @item-mousemove=\"onItemMouseMove\"\n />\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { addStyle, findSingle, focus, getHiddenElementOuterHeight, getHiddenElementOuterWidth, getViewport, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport Portal from 'primevue/portal';\nimport BaseContextMenu from './BaseContextMenu.vue';\nimport ContextMenuSub from './ContextMenuSub.vue';\n\nexport default {\n name: 'ContextMenu',\n extends: BaseContextMenu,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'show', 'hide', 'before-show', 'before-hide'],\n target: null,\n outsideClickListener: null,\n resizeListener: null,\n documentContextMenuListener: null,\n matchMediaListener: null,\n pageX: null,\n pageY: null,\n container: null,\n list: null,\n data() {\n return {\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n visible: false,\n submenuVisible: 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 if (!this.visible) {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n mounted() {\n this.bindMatchMediaListener();\n\n if (this.global) {\n this.bindDocumentContextMenuListener();\n }\n },\n beforeUnmount() {\n this.unbindResizeListener();\n this.unbindOutsideClickListener();\n this.unbindDocumentContextMenuListener();\n this.unbindMatchMediaListener();\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n this.visible ? this.hide() : this.show(event);\n },\n show(event) {\n this.$emit('before-show');\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n focus(this.list);\n\n this.pageX = event.pageX;\n this.pageY = event.pageY;\n this.visible ? this.position() : (this.visible = true);\n\n event.stopPropagation();\n event.preventDefault();\n },\n hide() {\n this.$emit('before-hide');\n this.visible = false;\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n },\n onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: -1, level: 0, parentKey: '' };\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.$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 if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n\n this.focusedItemInfo = { index, level, parentKey };\n\n isFocus && focus(this.list);\n\n if (type === 'hover' && this.queryMatches) {\n return;\n }\n\n this.activeItemPath = activeItemPath;\n },\n onItemClick(event) {\n const { processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\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 focus(this.list);\n } else {\n grouped ? this.onItemChange(event) : this.hide();\n }\n },\n onItemMouseEnter(event) {\n this.onItemChange(event, 'hover');\n },\n onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey(event) {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.popup && this.hide();\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n const root = isEmpty(processedItem.parent);\n\n if (!root) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n },\n onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.list, `li[id=\"${`${this.focusedItemIdx}`}\"]`);\n const anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\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 this.hide();\n !this.popup && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n onEnter(el) {\n addStyle(el, { position: 'absolute' });\n this.position();\n\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n },\n onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n\n this.$emit('show');\n focus(this.list);\n },\n onLeave() {\n this.$emit('hide');\n this.container = null;\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n },\n position() {\n let left = this.pageX + 1;\n let top = this.pageY + 1;\n let width = this.container.offsetParent ? this.container.offsetWidth : getHiddenElementOuterWidth(this.container);\n let height = this.container.offsetParent ? this.container.offsetHeight : getHiddenElementOuterHeight(this.container);\n let viewport = getViewport();\n let scrollTop = window.scrollY || document.documentElement.scrollTop || document.body.scrollTop || 0;\n let scrollLeft = window.scrollX || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\n\n //flip\n if (left + width - scrollLeft > viewport.width) {\n left -= width;\n }\n\n //flip\n if (top + height - scrollTop > viewport.height) {\n top -= height;\n }\n\n //fit\n if (left < scrollLeft) {\n left = scrollLeft;\n }\n\n //fit\n if (top < scrollTop) {\n top = scrollTop;\n }\n\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\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.visible ? !(this.target && (this.target === event.target || this.target.contains(event.target))) : true;\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.visible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindDocumentContextMenuListener() {\n if (!this.documentContextMenuListener) {\n this.documentContextMenuListener = (event) => {\n event.button === 2 && this.show(event);\n };\n\n document.addEventListener('contextmenu', this.documentContextMenuListener);\n }\n },\n unbindDocumentContextMenuListener() {\n if (this.documentContextMenuListener) {\n document.removeEventListener('contextmenu', this.documentContextMenuListener);\n this.documentContextMenuListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return this.activeItemPath.some((p) => p.key === processedItem.key);\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.$id}_${index}` : this.focusedItemIdx;\n const element = findSingle(this.list, `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 listRef(el) {\n this.list = 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 focusedItemIdx() {\n return this.focusedItemInfo.index !== -1 ? `${this.$id}${isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : ''}_${this.focusedItemInfo.index}` : null;\n }\n },\n components: {\n ContextMenuSub,\n Portal\n }\n};\n</script>\n","<template>\n <Portal :appendTo=\"appendTo\">\n <transition name=\"p-anchored-overlay\" @enter=\"onEnter\" @after-enter=\"onAfterEnter\" @leave=\"onLeave\" @after-leave=\"onAfterLeave\" v-bind=\"ptm('transition')\">\n <div v-if=\"visible\" :ref=\"containerRef\" :class=\"cx('root')\" v-bind=\"ptmi('root')\">\n <ContextMenuSub\n :ref=\"listRef\"\n :id=\"$id + '_list'\"\n :class=\"cx('rootList')\"\n role=\"menubar\"\n :root=\"true\"\n :tabindex=\"tabindex\"\n aria-orientation=\"vertical\"\n :aria-activedescendant=\"focused ? focusedItemIdx : undefined\"\n :menuId=\"$id\"\n :focusedItemId=\"focused ? focusedItemIdx : undefined\"\n :items=\"processedItems\"\n :templates=\"$slots\"\n :activeItemPath=\"activeItemPath\"\n :aria-labelledby=\"ariaLabelledby\"\n :aria-label=\"ariaLabel\"\n :level=\"0\"\n :visible=\"submenuVisible\"\n :pt=\"pt\"\n :unstyled=\"unstyled\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"onKeyDown\"\n @item-click=\"onItemClick\"\n @item-mouseenter=\"onItemMouseEnter\"\n @item-mousemove=\"onItemMouseMove\"\n />\n </div>\n </transition>\n </Portal>\n</template>\n\n<script>\nimport { addStyle, findSingle, focus, getHiddenElementOuterHeight, getHiddenElementOuterWidth, getViewport, isTouchDevice } from '@primeuix/utils/dom';\nimport { findLastIndex, isEmpty, isNotEmpty, isPrintableCharacter, resolve } from '@primeuix/utils/object';\nimport { ZIndex } from '@primeuix/utils/zindex';\nimport Portal from 'primevue/portal';\nimport BaseContextMenu from './BaseContextMenu.vue';\nimport ContextMenuSub from './ContextMenuSub.vue';\n\nexport default {\n name: 'ContextMenu',\n extends: BaseContextMenu,\n inheritAttrs: false,\n emits: ['focus', 'blur', 'show', 'hide', 'before-show', 'before-hide'],\n target: null,\n outsideClickListener: null,\n resizeListener: null,\n documentContextMenuListener: null,\n matchMediaListener: null,\n pageX: null,\n pageY: null,\n container: null,\n list: null,\n data() {\n return {\n focused: false,\n focusedItemInfo: { index: -1, level: 0, parentKey: '' },\n activeItemPath: [],\n visible: false,\n submenuVisible: 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 if (!this.visible) {\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n }\n }\n },\n mounted() {\n this.bindMatchMediaListener();\n\n if (this.global) {\n this.bindDocumentContextMenuListener();\n }\n },\n beforeUnmount() {\n this.unbindResizeListener();\n this.unbindOutsideClickListener();\n this.unbindDocumentContextMenuListener();\n this.unbindMatchMediaListener();\n\n if (this.container && this.autoZIndex) {\n ZIndex.clear(this.container);\n }\n\n this.target = null;\n this.container = null;\n },\n methods: {\n getItemProp(item, name) {\n return item ? resolve(item[name]) : undefined;\n },\n getItemLabel(item) {\n return this.getItemProp(item, 'label');\n },\n isItemDisabled(item) {\n return this.getItemProp(item, 'disabled');\n },\n isItemVisible(item) {\n return this.getItemProp(item, 'visible') !== false;\n },\n isItemGroup(item) {\n return isNotEmpty(this.getItemProp(item, 'items'));\n },\n isItemSeparator(item) {\n return this.getItemProp(item, 'separator');\n },\n getProccessedItemLabel(processedItem) {\n return processedItem ? this.getItemLabel(processedItem.item) : undefined;\n },\n isProccessedItemGroup(processedItem) {\n return processedItem && isNotEmpty(processedItem.items);\n },\n toggle(event) {\n this.visible ? this.hide() : this.show(event);\n },\n show(event) {\n this.$emit('before-show');\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n focus(this.list);\n\n this.pageX = event.pageX;\n this.pageY = event.pageY;\n this.visible ? this.position() : (this.visible = true);\n\n event.stopPropagation();\n event.preventDefault();\n },\n hide() {\n this.$emit('before-hide');\n this.visible = false;\n this.activeItemPath = [];\n this.focusedItemInfo = { index: -1, level: 0, parentKey: '' };\n },\n onFocus(event) {\n this.focused = true;\n this.focusedItemInfo = this.focusedItemInfo.index !== -1 ? this.focusedItemInfo : { index: -1, level: 0, parentKey: '' };\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.$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 if (grouped) {\n activeItemPath.push(processedItem);\n this.submenuVisible = true;\n }\n\n this.focusedItemInfo = { index, level, parentKey };\n\n isFocus && focus(this.list);\n\n if (type === 'hover' && this.queryMatches) {\n return;\n }\n\n this.activeItemPath = activeItemPath;\n },\n onItemClick(event) {\n const { processedItem } = event;\n const grouped = this.isProccessedItemGroup(processedItem);\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 focus(this.list);\n } else {\n grouped ? this.onItemChange(event) : this.hide();\n }\n },\n onItemMouseEnter(event) {\n this.onItemChange(event, 'hover');\n },\n onItemMouseMove(event) {\n if (this.focused) {\n this.changeFocusedItemIndex(event, event.processedItem.index);\n }\n },\n onArrowDownKey(event) {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findNextItemIndex(this.focusedItemInfo.index) : this.findFirstFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n },\n onArrowUpKey(event) {\n if (event.altKey) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.popup && this.hide();\n event.preventDefault();\n } else {\n const itemIndex = this.focusedItemInfo.index !== -1 ? this.findPrevItemIndex(this.focusedItemInfo.index) : this.findLastFocusedItemIndex();\n\n this.changeFocusedItemIndex(event, itemIndex);\n event.preventDefault();\n }\n },\n onArrowLeftKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const parentItem = this.activeItemPath.find((p) => p.key === processedItem.parentKey);\n const root = isEmpty(processedItem.parent);\n\n if (!root) {\n this.focusedItemInfo = { index: -1, parentKey: parentItem ? parentItem.parentKey : '' };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n this.activeItemPath = this.activeItemPath.filter((p) => p.parentKey !== this.focusedItemInfo.parentKey);\n\n event.preventDefault();\n },\n onArrowRightKey(event) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n if (grouped) {\n this.onItemChange({ originalEvent: event, processedItem });\n this.focusedItemInfo = { index: -1, parentKey: processedItem.key };\n this.searchValue = '';\n this.onArrowDownKey(event);\n }\n\n event.preventDefault();\n },\n onHomeKey(event) {\n this.changeFocusedItemIndex(event, this.findFirstItemIndex());\n event.preventDefault();\n },\n onEndKey(event) {\n this.changeFocusedItemIndex(event, this.findLastItemIndex());\n event.preventDefault();\n },\n onEnterKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const element = findSingle(this.list, `li[id=\"${`${this.focusedItemIdx}`}\"]`);\n const anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\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 this.hide();\n !this.popup && (this.focusedItemInfo.index = this.findFirstFocusedItemIndex());\n\n event.preventDefault();\n },\n onTabKey(event) {\n if (this.focusedItemInfo.index !== -1) {\n const processedItem = this.visibleItems[this.focusedItemInfo.index];\n const grouped = this.isProccessedItemGroup(processedItem);\n\n !grouped && this.onItemChange({ originalEvent: event, processedItem });\n }\n\n this.hide();\n },\n onEnter(el) {\n addStyle(el, { position: 'absolute' });\n this.position();\n\n if (this.autoZIndex) {\n ZIndex.set('menu', el, this.baseZIndex + this.$primevue.config.zIndex.menu);\n }\n },\n onAfterEnter() {\n this.bindOutsideClickListener();\n this.bindResizeListener();\n\n this.$emit('show');\n focus(this.list);\n },\n onLeave() {\n this.$emit('hide');\n this.container = null;\n },\n onAfterLeave(el) {\n if (this.autoZIndex) {\n ZIndex.clear(el);\n }\n\n this.unbindOutsideClickListener();\n this.unbindResizeListener();\n },\n position() {\n let left = this.pageX + 1;\n let top = this.pageY + 1;\n let width = this.container.offsetParent ? this.container.offsetWidth : getHiddenElementOuterWidth(this.container);\n let height = this.container.offsetParent ? this.container.offsetHeight : getHiddenElementOuterHeight(this.container);\n let viewport = getViewport();\n let scrollTop = window.scrollY || document.documentElement.scrollTop || document.body.scrollTop || 0;\n let scrollLeft = window.scrollX || document.documentElement.scrollLeft || document.body.scrollLeft || 0;\n\n //flip\n if (left + width - scrollLeft > viewport.width) {\n left -= width;\n }\n\n //flip\n if (top + height - scrollTop > viewport.height) {\n top -= height;\n }\n\n //fit\n if (left < scrollLeft) {\n left = scrollLeft;\n }\n\n //fit\n if (top < scrollTop) {\n top = scrollTop;\n }\n\n this.container.style.left = left + 'px';\n this.container.style.top = top + 'px';\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.visible ? !(this.target && (this.target === event.target || this.target.contains(event.target))) : true;\n\n if (isOutsideContainer && isOutsideTarget) {\n this.hide();\n }\n };\n\n document.addEventListener('click', this.outsideClickListener, true);\n }\n },\n unbindOutsideClickListener() {\n if (this.outsideClickListener) {\n document.removeEventListener('click', this.outsideClickListener, true);\n this.outsideClickListener = null;\n }\n },\n bindResizeListener() {\n if (!this.resizeListener) {\n this.resizeListener = () => {\n if (this.visible && !isTouchDevice()) {\n this.hide();\n }\n };\n\n window.addEventListener('resize', this.resizeListener);\n }\n },\n unbindResizeListener() {\n if (this.resizeListener) {\n window.removeEventListener('resize', this.resizeListener);\n this.resizeListener = null;\n }\n },\n bindDocumentContextMenuListener() {\n if (!this.documentContextMenuListener) {\n this.documentContextMenuListener = (event) => {\n event.button === 2 && this.show(event);\n };\n\n document.addEventListener('contextmenu', this.documentContextMenuListener);\n }\n },\n unbindDocumentContextMenuListener() {\n if (this.documentContextMenuListener) {\n document.removeEventListener('contextmenu', this.documentContextMenuListener);\n this.documentContextMenuListener = null;\n }\n },\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n },\n isItemMatched(processedItem) {\n return this.isValidItem(processedItem) && this.getProccessedItemLabel(processedItem)?.toLocaleLowerCase().startsWith(this.searchValue.toLocaleLowerCase());\n },\n isValidItem(processedItem) {\n return !!processedItem && !this.isItemDisabled(processedItem.item) && !this.isItemSeparator(processedItem.item) && this.isItemVisible(processedItem.item);\n },\n isValidSelectedItem(processedItem) {\n return this.isValidItem(processedItem) && this.isSelected(processedItem);\n },\n isSelected(processedItem) {\n return this.activeItemPath.some((p) => p.key === processedItem.key);\n },\n findFirstItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidItem(processedItem));\n },\n findLastItemIndex() {\n return findLastIndex(this.visibleItems, (processedItem) => this.isValidItem(processedItem));\n },\n findNextItemIndex(index) {\n const matchedItemIndex = index < this.visibleItems.length - 1 ? this.visibleItems.slice(index + 1).findIndex((processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex + index + 1 : index;\n },\n findPrevItemIndex(index) {\n const matchedItemIndex = index > 0 ? findLastIndex(this.visibleItems.slice(0, index), (processedItem) => this.isValidItem(processedItem)) : -1;\n\n return matchedItemIndex > -1 ? matchedItemIndex : index;\n },\n findSelectedItemIndex() {\n return this.visibleItems.findIndex((processedItem) => this.isValidSelectedItem(processedItem));\n },\n findFirstFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findFirstItemIndex() : selectedIndex;\n },\n findLastFocusedItemIndex() {\n const selectedIndex = this.findSelectedItemIndex();\n\n return selectedIndex < 0 ? this.findLastItemIndex() : selectedIndex;\n },\n searchItems(event, char) {\n this.searchValue = (this.searchValue || '') + char;\n\n let itemIndex = -1;\n let matched = false;\n\n if (this.focusedItemInfo.index !== -1) {\n itemIndex = this.visibleItems.slice(this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem));\n itemIndex = itemIndex === -1 ? this.visibleItems.slice(0, this.focusedItemInfo.index).findIndex((processedItem) => this.isItemMatched(processedItem)) : itemIndex + this.focusedItemInfo.index;\n } else {\n itemIndex = this.visibleItems.findIndex((processedItem) => this.isItemMatched(processedItem));\n }\n\n if (itemIndex !== -1) {\n matched = true;\n }\n\n if (itemIndex === -1 && this.focusedItemInfo.index === -1) {\n itemIndex = this.findFirstFocusedItemIndex();\n }\n\n if (itemIndex !== -1) {\n this.changeFocusedItemIndex(event, itemIndex);\n }\n\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n this.searchTimeout = setTimeout(() => {\n this.searchValue = '';\n this.searchTimeout = null;\n }, 500);\n\n return matched;\n },\n changeFocusedItemIndex(event, index) {\n if (this.focusedItemInfo.index !== index) {\n this.focusedItemInfo.index = index;\n this.scrollInView();\n }\n },\n scrollInView(index = -1) {\n const id = index !== -1 ? `${this.$id}_${index}` : this.focusedItemIdx;\n const element = findSingle(this.list, `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 listRef(el) {\n this.list = 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 focusedItemIdx() {\n return this.focusedItemInfo.index !== -1 ? `${this.$id}${isNotEmpty(this.focusedItemInfo.parentKey) ? '_' + this.focusedItemInfo.parentKey : ''}_${this.focusedItemInfo.index}` : null;\n }\n },\n components: {\n ContextMenuSub,\n Portal\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","model","type","Array","appendTo","String","Object","autoZIndex","Boolean","baseZIndex","Number","global","breakpoint","tabindex","ariaLabelledby","ariaLabel","style","ContextMenuStyle","provide","$pcContextMenu","$parentInstance","hostName","emits","items","menuId","focusedItemId","root","visible","level","templates","activeItemPath","methods","getItemId","processedItem","concat","key","getItemKey","getItemProp","params","item","resolve","undefined","getItemLabel","getItemLabelId","getPTOptions","index","ptm","context","active","isItemActive","focused","isItemFocused","disabled","isItemDisabled","some","path","isItemVisible","isItemGroup","isNotEmpty","onItemClick","event","originalEvent","$emit","isFocus","onItemMouseEnter","onItemMouseMove","getAriaSetSize","_this","filter","length","getAriaPosInset","_this2","slice","onEnter","nestedPosition","$refs","container","getMenuItemProps","action","mergeProps","cx","icon","label","submenuicon","components","AngleRightIcon","directives","ripple","Ripple","_openBlock","_createBlock","_Transition","_mergeProps","$options","_ctx","$props","_createElementBlock","ref","_Fragment","_renderList","id","role","_createElementVNode","onClick","$event","onMouseenter","onMousemove","_withDirectives","href","target","itemicon","_resolveDynamicComponent","ref_for","_toDisplayString","_hoisted_5","_component_AngleRightIcon","hasSubmenu","_component_ContextMenuSub","pt","unstyled","_cache","onItemMouseenter","onItemMousemove","_hoisted_6","BaseContextMenu","inheritAttrs","outsideClickListener","resizeListener","documentContextMenuListener","matchMediaListener","pageX","pageY","list","data","focusedItemInfo","parentKey","submenuVisible","query","queryMatches","watch","newPath","bindOutsideClickListener","bindResizeListener","unbindOutsideClickListener","unbindResizeListener","mounted","bindMatchMediaListener","bindDocumentContextMenuListener","beforeUnmount","unbindDocumentContextMenuListener","unbindMatchMediaListener","ZIndex","clear","isItemSeparator","getProccessedItemLabel","isProccessedItemGroup","toggle","hide","show","focus","position","stopPropagation","preventDefault","onFocus","onBlur","searchValue","onKeyDown","metaKey","ctrlKey","code","onArrowDownKey","onArrowUpKey","onArrowLeftKey","onArrowRightKey","onHomeKey","onEndKey","onSpaceKey","onEnterKey","onEscapeKey","onTabKey","isPrintableCharacter","searchItems","onItemChange","isEmpty","grouped","p","push","selected","isSelected","startsWith","changeFocusedItemIndex","itemIndex","findNextItemIndex","findFirstFocusedItemIndex","altKey","visibleItems","popup","findPrevItemIndex","findLastFocusedItemIndex","parentItem","find","parent","findFirstItemIndex","findLastItemIndex","element","findSingle","focusedItemIdx","anchorElement","click","el","addStyle","set","$primevue","config","zIndex","menu","onAfterEnter","onLeave","onAfterLeave","left","top","width","offsetParent","offsetWidth","getHiddenElementOuterWidth","height","offsetHeight","getHiddenElementOuterHeight","viewport","getViewport","scrollTop","window","scrollY","document","documentElement","body","scrollLeft","scrollX","isOutsideContainer","contains","isOutsideTarget","addEventListener","removeEventListener","_this3","isTouchDevice","_this4","button","_this5","matchMedia","matches","isItemMatched","_this$getProccessedIt","isValidItem","toLocaleLowerCase","isValidSelectedItem","_this6","findIndex","_this7","findLastIndex","_this8","matchedItemIndex","_this9","findSelectedItemIndex","_this0","selectedIndex","char","_this1","matched","searchTimeout","clearTimeout","setTimeout","scrollInView","$id","scrollIntoView","block","inline","createProcessedItems","_this10","arguments","processedItems","forEach","newItem","containerRef","listRef","$el","computed","_this11","ContextMenuSub","Portal","_component_Portal","_createVNode","$data","ptmi","$slots","onKeydown"],"mappings":"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"} |