digivue
Version:
PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBloc
1 lines • 41.3 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../src/dock/BaseDock.vue","../../src/dock/DockSub.vue","../../src/dock/DockSub.vue?vue&type=template&id=ac42e2ba&lang.js","../../src/dock/Dock.vue","../../src/dock/Dock.vue?vue&type=template&id=2f238c36&lang.js"],"sourcesContent":["<script>\nimport BaseComponent from '@digivue/core/basecomponent';\nimport DockStyle from 'digivue/dock/style';\n\nexport default {\n name: 'BaseDock',\n extends: BaseComponent,\n props: {\n position: {\n type: String,\n default: 'bottom'\n },\n model: null,\n class: null,\n style: null,\n tooltipOptions: null,\n menuId: {\n type: String,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n },\n breakpoint: {\n type: String,\n default: '960px'\n },\n ariaLabel: {\n type: String,\n default: null\n },\n ariaLabelledby: {\n type: String,\n default: null\n }\n },\n style: DockStyle,\n provide() {\n return {\n $pcDock: this,\n $parentInstance: this\n };\n }\n};\n</script>\n","<template>\n <div :class=\"cx('listContainer')\" v-bind=\"ptm('listContainer')\">\n <ul\n ref=\"list\"\n :id=\"id\"\n :class=\"cx('list')\"\n role=\"menu\"\n :aria-orientation=\"position === 'bottom' || position === 'top' ? 'horizontal' : 'vertical'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :tabindex=\"tabindex\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n @focus=\"onListFocus\"\n @blur=\"onListBlur\"\n @keydown=\"onListKeyDown\"\n @mouseleave=\"onListMouseLeave\"\n v-bind=\"ptm('list')\"\n >\n <template v-for=\"(processedItem, index) of model\" :key=\"index\">\n <li\n :id=\"getItemId(index)\"\n :class=\"cx('item', { processedItem, id: getItemId(index) })\"\n role=\"menuitem\"\n :aria-label=\"processedItem.label\"\n :aria-disabled=\"disabled(processedItem)\"\n @click=\"onItemClick($event, processedItem)\"\n @mouseenter=\"onItemMouseEnter(index)\"\n v-bind=\"getPTOptions('item', processedItem, index)\"\n :data-p-focused=\"isItemActive(getItemId(index))\"\n :data-p-disabled=\"disabled(processedItem) || false\"\n >\n <div :class=\"cx('itemContent')\" v-bind=\"getPTOptions('itemContent', processedItem, index)\">\n <template v-if=\"!templates['item']\">\n <a\n v-tooltip:[tooltipOptions]=\"{ value: processedItem.label, disabled: !tooltipOptions }\"\n :href=\"processedItem.url\"\n :class=\"cx('itemLink')\"\n :target=\"processedItem.target\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n v-bind=\"getPTOptions('itemLink', processedItem, index)\"\n >\n <!-- TODO: icon deprecated since v4.0-->\n <template v-if=\"!templates['icon'] && !templates['itemicon']\">\n <span v-ripple :class=\"[cx('itemIcon'), processedItem.icon]\" v-bind=\"getPTOptions('itemIcon', processedItem, index)\"></span>\n </template>\n <component v-else :is=\"templates['icon'] || templates['itemicon']\" :item=\"processedItem\" :class=\"cx('itemIcon')\"></component>\n </a>\n </template>\n <component v-else :is=\"templates['item']\" :item=\"processedItem\" :index=\"index\" :label=\"processedItem.label\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n </li>\n </template>\n </ul>\n </div>\n</template>\n\n<script>\nimport { find, findSingle } from '@digivue/utils/dom';\nimport { resolve } from '@digivue/utils/object';\nimport BaseComponent from '@digivue/core/basecomponent';\nimport { UniqueComponentId } from '@digivue/core/utils';\nimport Ripple from 'digivue/ripple';\nimport Tooltip from 'digivue/tooltip';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'DockSub',\n hostName: 'Dock',\n extends: BaseComponent,\n emits: ['focus', 'blur'],\n props: {\n position: {\n type: String,\n default: 'bottom'\n },\n model: {\n type: Array,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n tooltipOptions: null,\n menuId: {\n type: String,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabel: {\n type: String,\n default: null\n },\n ariaLabelledby: {\n type: String,\n default: null\n }\n },\n data() {\n return {\n id: this.menuId,\n currentIndex: -3,\n focused: false,\n focusedOptionIndex: -1\n };\n },\n watch: {\n menuId(newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n },\n methods: {\n getItemId(index) {\n return `${this.id}_${index}`;\n },\n getItemProp(processedItem, name) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined;\n },\n getPTOptions(key, item, index) {\n return this.ptm(key, {\n context: {\n index,\n item,\n active: this.isItemActive(this.getItemId(index))\n }\n });\n },\n isSameMenuItem(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[data-pc-section=\"item\"]')));\n },\n isItemActive(id) {\n return id === this.focusedOptionIndex;\n },\n onListMouseLeave() {\n this.currentIndex = -3;\n },\n onItemMouseEnter(index) {\n this.currentIndex = index;\n },\n onItemClick(event, processedItem) {\n if (this.isSameMenuItem(event)) {\n const command = this.getItemProp(processedItem, 'command');\n\n command && command({ originalEvent: event, item: processedItem.item });\n }\n },\n onListFocus(event) {\n this.focused = true;\n this.changeFocusedOptionIndex(0);\n this.$emit('focus', event);\n },\n onListBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onListKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown': {\n if (this.position === 'left' || this.position === 'right') this.onArrowDownKey();\n event.preventDefault();\n break;\n }\n\n case 'ArrowUp': {\n if (this.position === 'left' || this.position === 'right') this.onArrowUpKey();\n event.preventDefault();\n break;\n }\n\n case 'ArrowRight': {\n if (this.position === 'top' || this.position === 'bottom') this.onArrowDownKey();\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n if (this.position === 'top' || this.position === 'bottom') this.onArrowUpKey();\n event.preventDefault();\n break;\n }\n\n case 'Home': {\n this.onHomeKey();\n event.preventDefault();\n break;\n }\n\n case 'End': {\n this.onEndKey();\n event.preventDefault();\n break;\n }\n\n case 'Enter':\n case 'NumpadEnter':\n\n case 'Space': {\n this.onSpaceKey(event);\n event.preventDefault();\n break;\n }\n\n default:\n break;\n }\n },\n onArrowDownKey() {\n const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n },\n onArrowUpKey() {\n const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n },\n onHomeKey() {\n this.changeFocusedOptionIndex(0);\n },\n onEndKey() {\n this.changeFocusedOptionIndex(find(this.$refs.list, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]').length - 1);\n },\n onSpaceKey() {\n const element = findSingle(this.$refs.list, `li[id=\"${`${this.focusedOptionIndex}`}\"]`);\n const anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n },\n findNextOptionIndex(index) {\n const menuitems = find(this.$refs.list, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...menuitems].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;\n },\n findPrevOptionIndex(index) {\n const menuitems = find(this.$refs.list, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...menuitems].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;\n },\n changeFocusedOptionIndex(index) {\n const menuitems = find(this.$refs.list, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n\n let order = index >= menuitems.length ? menuitems.length - 1 : index < 0 ? 0 : index;\n\n this.focusedOptionIndex = menuitems[order].getAttribute('id');\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled;\n },\n getMenuItemProps(item, index) {\n return {\n action: mergeProps(\n {\n tabindex: -1,\n class: this.cx('itemLink')\n },\n this.getPTOptions('itemLink', item, index)\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), item.icon]\n },\n this.getPTOptions('itemIcon', item, index)\n )\n };\n }\n },\n computed: {\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;\n }\n },\n directives: {\n ripple: Ripple,\n tooltip: Tooltip\n }\n};\n</script>\n","<template>\n <div :class=\"cx('listContainer')\" v-bind=\"ptm('listContainer')\">\n <ul\n ref=\"list\"\n :id=\"id\"\n :class=\"cx('list')\"\n role=\"menu\"\n :aria-orientation=\"position === 'bottom' || position === 'top' ? 'horizontal' : 'vertical'\"\n :aria-activedescendant=\"focused ? focusedOptionId : undefined\"\n :tabindex=\"tabindex\"\n :aria-label=\"ariaLabel\"\n :aria-labelledby=\"ariaLabelledby\"\n @focus=\"onListFocus\"\n @blur=\"onListBlur\"\n @keydown=\"onListKeyDown\"\n @mouseleave=\"onListMouseLeave\"\n v-bind=\"ptm('list')\"\n >\n <template v-for=\"(processedItem, index) of model\" :key=\"index\">\n <li\n :id=\"getItemId(index)\"\n :class=\"cx('item', { processedItem, id: getItemId(index) })\"\n role=\"menuitem\"\n :aria-label=\"processedItem.label\"\n :aria-disabled=\"disabled(processedItem)\"\n @click=\"onItemClick($event, processedItem)\"\n @mouseenter=\"onItemMouseEnter(index)\"\n v-bind=\"getPTOptions('item', processedItem, index)\"\n :data-p-focused=\"isItemActive(getItemId(index))\"\n :data-p-disabled=\"disabled(processedItem) || false\"\n >\n <div :class=\"cx('itemContent')\" v-bind=\"getPTOptions('itemContent', processedItem, index)\">\n <template v-if=\"!templates['item']\">\n <a\n v-tooltip:[tooltipOptions]=\"{ value: processedItem.label, disabled: !tooltipOptions }\"\n :href=\"processedItem.url\"\n :class=\"cx('itemLink')\"\n :target=\"processedItem.target\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n v-bind=\"getPTOptions('itemLink', processedItem, index)\"\n >\n <!-- TODO: icon deprecated since v4.0-->\n <template v-if=\"!templates['icon'] && !templates['itemicon']\">\n <span v-ripple :class=\"[cx('itemIcon'), processedItem.icon]\" v-bind=\"getPTOptions('itemIcon', processedItem, index)\"></span>\n </template>\n <component v-else :is=\"templates['icon'] || templates['itemicon']\" :item=\"processedItem\" :class=\"cx('itemIcon')\"></component>\n </a>\n </template>\n <component v-else :is=\"templates['item']\" :item=\"processedItem\" :index=\"index\" :label=\"processedItem.label\" :props=\"getMenuItemProps(processedItem, index)\"></component>\n </div>\n </li>\n </template>\n </ul>\n </div>\n</template>\n\n<script>\nimport { find, findSingle } from '@digivue/utils/dom';\nimport { resolve } from '@digivue/utils/object';\nimport BaseComponent from '@digivue/core/basecomponent';\nimport { UniqueComponentId } from '@digivue/core/utils';\nimport Ripple from 'digivue/ripple';\nimport Tooltip from 'digivue/tooltip';\nimport { mergeProps } from 'vue';\n\nexport default {\n name: 'DockSub',\n hostName: 'Dock',\n extends: BaseComponent,\n emits: ['focus', 'blur'],\n props: {\n position: {\n type: String,\n default: 'bottom'\n },\n model: {\n type: Array,\n default: null\n },\n templates: {\n type: null,\n default: null\n },\n tooltipOptions: null,\n menuId: {\n type: String,\n default: null\n },\n tabindex: {\n type: Number,\n default: 0\n },\n ariaLabel: {\n type: String,\n default: null\n },\n ariaLabelledby: {\n type: String,\n default: null\n }\n },\n data() {\n return {\n id: this.menuId,\n currentIndex: -3,\n focused: false,\n focusedOptionIndex: -1\n };\n },\n watch: {\n menuId(newValue) {\n this.id = newValue || UniqueComponentId();\n }\n },\n mounted() {\n this.id = this.id || UniqueComponentId();\n },\n methods: {\n getItemId(index) {\n return `${this.id}_${index}`;\n },\n getItemProp(processedItem, name) {\n return processedItem && processedItem.item ? resolve(processedItem.item[name]) : undefined;\n },\n getPTOptions(key, item, index) {\n return this.ptm(key, {\n context: {\n index,\n item,\n active: this.isItemActive(this.getItemId(index))\n }\n });\n },\n isSameMenuItem(event) {\n return event.currentTarget && (event.currentTarget.isSameNode(event.target) || event.currentTarget.isSameNode(event.target.closest('[data-pc-section=\"item\"]')));\n },\n isItemActive(id) {\n return id === this.focusedOptionIndex;\n },\n onListMouseLeave() {\n this.currentIndex = -3;\n },\n onItemMouseEnter(index) {\n this.currentIndex = index;\n },\n onItemClick(event, processedItem) {\n if (this.isSameMenuItem(event)) {\n const command = this.getItemProp(processedItem, 'command');\n\n command && command({ originalEvent: event, item: processedItem.item });\n }\n },\n onListFocus(event) {\n this.focused = true;\n this.changeFocusedOptionIndex(0);\n this.$emit('focus', event);\n },\n onListBlur(event) {\n this.focused = false;\n this.focusedOptionIndex = -1;\n this.$emit('blur', event);\n },\n onListKeyDown(event) {\n switch (event.code) {\n case 'ArrowDown': {\n if (this.position === 'left' || this.position === 'right') this.onArrowDownKey();\n event.preventDefault();\n break;\n }\n\n case 'ArrowUp': {\n if (this.position === 'left' || this.position === 'right') this.onArrowUpKey();\n event.preventDefault();\n break;\n }\n\n case 'ArrowRight': {\n if (this.position === 'top' || this.position === 'bottom') this.onArrowDownKey();\n event.preventDefault();\n break;\n }\n\n case 'ArrowLeft': {\n if (this.position === 'top' || this.position === 'bottom') this.onArrowUpKey();\n event.preventDefault();\n break;\n }\n\n case 'Home': {\n this.onHomeKey();\n event.preventDefault();\n break;\n }\n\n case 'End': {\n this.onEndKey();\n event.preventDefault();\n break;\n }\n\n case 'Enter':\n case 'NumpadEnter':\n\n case 'Space': {\n this.onSpaceKey(event);\n event.preventDefault();\n break;\n }\n\n default:\n break;\n }\n },\n onArrowDownKey() {\n const optionIndex = this.findNextOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n },\n onArrowUpKey() {\n const optionIndex = this.findPrevOptionIndex(this.focusedOptionIndex);\n\n this.changeFocusedOptionIndex(optionIndex);\n },\n onHomeKey() {\n this.changeFocusedOptionIndex(0);\n },\n onEndKey() {\n this.changeFocusedOptionIndex(find(this.$refs.list, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]').length - 1);\n },\n onSpaceKey() {\n const element = findSingle(this.$refs.list, `li[id=\"${`${this.focusedOptionIndex}`}\"]`);\n const anchorElement = element && findSingle(element, '[data-pc-section=\"itemlink\"]');\n\n anchorElement ? anchorElement.click() : element && element.click();\n },\n findNextOptionIndex(index) {\n const menuitems = find(this.$refs.list, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...menuitems].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex + 1 : 0;\n },\n findPrevOptionIndex(index) {\n const menuitems = find(this.$refs.list, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n const matchedOptionIndex = [...menuitems].findIndex((link) => link.id === index);\n\n return matchedOptionIndex > -1 ? matchedOptionIndex - 1 : 0;\n },\n changeFocusedOptionIndex(index) {\n const menuitems = find(this.$refs.list, 'li[data-pc-section=\"item\"][data-p-disabled=\"false\"]');\n\n let order = index >= menuitems.length ? menuitems.length - 1 : index < 0 ? 0 : index;\n\n this.focusedOptionIndex = menuitems[order].getAttribute('id');\n },\n disabled(item) {\n return typeof item.disabled === 'function' ? item.disabled() : item.disabled;\n },\n getMenuItemProps(item, index) {\n return {\n action: mergeProps(\n {\n tabindex: -1,\n class: this.cx('itemLink')\n },\n this.getPTOptions('itemLink', item, index)\n ),\n icon: mergeProps(\n {\n class: [this.cx('itemIcon'), item.icon]\n },\n this.getPTOptions('itemIcon', item, index)\n )\n };\n }\n },\n computed: {\n focusedOptionId() {\n return this.focusedOptionIndex !== -1 ? this.focusedOptionIndex : null;\n }\n },\n directives: {\n ripple: Ripple,\n tooltip: Tooltip\n }\n};\n</script>\n","<template>\n <div :class=\"containerClass\" :style=\"style\" v-bind=\"ptmi('root')\">\n <DockSub :model=\"model\" :templates=\"$slots\" :tooltipOptions=\"tooltipOptions\" :position=\"position\" :menuId=\"menuId\" :aria-label=\"ariaLabel\" :aria-labelledby=\"ariaLabelledby\" :tabindex=\"tabindex\" :pt=\"pt\" :unstyled=\"unstyled\"></DockSub>\n </div>\n</template>\n\n<script>\nimport BaseDock from './BaseDock.vue';\nimport DockSub from './DockSub.vue';\n\nexport default {\n name: 'Dock',\n extends: BaseDock,\n inheritAttrs: false,\n matchMediaListener: null,\n data() {\n return {\n query: null,\n queryMatches: false\n };\n },\n mounted() {\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindMatchMediaListener();\n },\n methods: {\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n }\n },\n computed: {\n containerClass() {\n return [this.class, this.cx('root')];\n }\n },\n components: {\n DockSub\n }\n};\n</script>\n","<template>\n <div :class=\"containerClass\" :style=\"style\" v-bind=\"ptmi('root')\">\n <DockSub :model=\"model\" :templates=\"$slots\" :tooltipOptions=\"tooltipOptions\" :position=\"position\" :menuId=\"menuId\" :aria-label=\"ariaLabel\" :aria-labelledby=\"ariaLabelledby\" :tabindex=\"tabindex\" :pt=\"pt\" :unstyled=\"unstyled\"></DockSub>\n </div>\n</template>\n\n<script>\nimport BaseDock from './BaseDock.vue';\nimport DockSub from './DockSub.vue';\n\nexport default {\n name: 'Dock',\n extends: BaseDock,\n inheritAttrs: false,\n matchMediaListener: null,\n data() {\n return {\n query: null,\n queryMatches: false\n };\n },\n mounted() {\n this.bindMatchMediaListener();\n },\n beforeUnmount() {\n this.unbindMatchMediaListener();\n },\n methods: {\n bindMatchMediaListener() {\n if (!this.matchMediaListener) {\n const query = matchMedia(`(max-width: ${this.breakpoint})`);\n\n this.query = query;\n this.queryMatches = query.matches;\n\n this.matchMediaListener = () => {\n this.queryMatches = query.matches;\n this.mobileActive = false;\n };\n\n this.query.addEventListener('change', this.matchMediaListener);\n }\n },\n unbindMatchMediaListener() {\n if (this.matchMediaListener) {\n this.query.removeEventListener('change', this.matchMediaListener);\n this.matchMediaListener = null;\n }\n }\n },\n computed: {\n containerClass() {\n return [this.class, this.cx('root')];\n }\n },\n components: {\n DockSub\n }\n};\n</script>\n"],"names":["name","BaseComponent","props","position","type","String","model","style","tooltipOptions","menuId","tabindex","Number","breakpoint","ariaLabel","ariaLabelledby","DockStyle","provide","$pcDock","$parentInstance","hostName","emits","Array","templates","data","id","currentIndex","focused","focusedOptionIndex","watch","newValue","UniqueComponentId","mounted","methods","getItemId","index","concat","getItemProp","processedItem","item","resolve","undefined","getPTOptions","key","ptm","context","active","isItemActive","isSameMenuItem","event","currentTarget","isSameNode","target","closest","onListMouseLeave","onItemMouseEnter","onItemClick","command","originalEvent","onListFocus","changeFocusedOptionIndex","$emit","onListBlur","onListKeyDown","code","onArrowDownKey","preventDefault","onArrowUpKey","onHomeKey","onEndKey","onSpaceKey","optionIndex","findNextOptionIndex","findPrevOptionIndex","find","$refs","list","length","element","findSingle","anchorElement","click","menuitems","matchedOptionIndex","_toConsumableArray","findIndex","link","order","getAttribute","disabled","getMenuItemProps","action","mergeProps","cx","icon","computed","focusedOptionId","directives","ripple","Ripple","tooltip","Tooltip","_openBlock","_createElementBlock","_mergeProps","_ctx","_createElementVNode","ref","$data","role","$props","$options","onFocus","apply","arguments","onBlur","onKeydown","onMouseleave","_Fragment","_renderList","label","onClick","$event","onMouseenter","_withDirectives","href","url","_createBlock","_resolveDynamicComponent","_directive_tooltip","value","BaseDock","inheritAttrs","matchMediaListener","query","queryMatches","bindMatchMediaListener","beforeUnmount","unbindMatchMediaListener","_this","matchMedia","matches","mobileActive","addEventListener","removeEventListener","containerClass","components","DockSub","ptmi","_createVNode","_component_DockSub","$slots","pt","unstyled"],"mappings":"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"}