@dimailn/vuetify 2.7.2-alpha36 → 2.7.2-alpha38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/vuetify.js +29 -16
  2. package/dist/vuetify.js.map +1 -1
  3. package/dist/vuetify.min.css +1 -1
  4. package/dist/vuetify.min.js +2 -2
  5. package/es5/components/VDialog/VDialog.js +1 -1
  6. package/es5/components/VDialog/VDialog.js.map +1 -1
  7. package/es5/components/VItemGroup/VItemGroup.js +1 -1
  8. package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
  9. package/es5/components/VMenu/VMenu.js +1 -1
  10. package/es5/components/VMenu/VMenu.js.map +1 -1
  11. package/es5/components/VNavigationDrawer/VNavigationDrawer.js +1 -1
  12. package/es5/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  13. package/es5/components/VSelect/VSelect.js +1 -1
  14. package/es5/components/VSelect/VSelect.js.map +1 -1
  15. package/es5/components/VSelect/VSelectList.js +12 -7
  16. package/es5/components/VSelect/VSelectList.js.map +1 -1
  17. package/es5/components/VSlideGroup/VSlideGroup.js +2 -2
  18. package/es5/components/VSlideGroup/VSlideGroup.js.map +1 -1
  19. package/es5/components/VTabs/VTabs.js +1 -1
  20. package/es5/components/VTabs/VTabs.js.map +1 -1
  21. package/es5/framework.js +1 -1
  22. package/es5/mixins/detachable/index.js +1 -1
  23. package/es5/mixins/detachable/index.js.map +1 -1
  24. package/es5/mixins/groupable/index.js +5 -1
  25. package/es5/mixins/groupable/index.js.map +1 -1
  26. package/es5/mixins/proxyable/index.js +1 -1
  27. package/es5/mixins/proxyable/index.js.map +1 -1
  28. package/lib/components/VDialog/VDialog.js +1 -1
  29. package/lib/components/VDialog/VDialog.js.map +1 -1
  30. package/lib/components/VItemGroup/VItemGroup.js +1 -1
  31. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  32. package/lib/components/VMenu/VMenu.js +1 -1
  33. package/lib/components/VMenu/VMenu.js.map +1 -1
  34. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +1 -1
  35. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  36. package/lib/components/VSelect/VSelect.js +1 -1
  37. package/lib/components/VSelect/VSelect.js.map +1 -1
  38. package/lib/components/VSelect/VSelectList.js +14 -4
  39. package/lib/components/VSelect/VSelectList.js.map +1 -1
  40. package/lib/components/VSlideGroup/VSlideGroup.js +2 -2
  41. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  42. package/lib/components/VTabs/VTabs.js +1 -1
  43. package/lib/components/VTabs/VTabs.js.map +1 -1
  44. package/lib/framework.js +1 -1
  45. package/lib/mixins/detachable/index.js +1 -1
  46. package/lib/mixins/detachable/index.js.map +1 -1
  47. package/lib/mixins/groupable/index.js +3 -1
  48. package/lib/mixins/groupable/index.js.map +1 -1
  49. package/lib/mixins/proxyable/index.js +1 -1
  50. package/lib/mixins/proxyable/index.js.map +1 -1
  51. package/package.json +1 -1
  52. package/src/components/VBtn/__tests__/VBtn.spec.ts +2 -1
  53. package/src/components/VDialog/VDialog.ts +1 -1
  54. package/src/components/VItemGroup/VItemGroup.ts +1 -1
  55. package/src/components/VMenu/VMenu.ts +1 -1
  56. package/src/components/VNavigationDrawer/VNavigationDrawer.ts +1 -1
  57. package/src/components/VSelect/VSelect.ts +1 -1
  58. package/src/components/VSelect/VSelectList.ts +14 -3
  59. package/src/components/VSlideGroup/VSlideGroup.ts +2 -2
  60. package/src/components/VTabs/VTabs.ts +1 -1
  61. package/src/mixins/detachable/index.ts +1 -1
  62. package/src/mixins/groupable/index.ts +3 -1
  63. package/src/mixins/proxyable/index.ts +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VTabs/VTabs.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, withDirectives } from 'vue'\n// Styles\nimport './VTabs.sass'\n\n// Components\nimport VTabsBar from './VTabsBar'\nimport VTabsItems from './VTabsItems'\nimport VTabsSlider from './VTabsSlider'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nconst baseMixins = mixins(\n Colorable,\n Proxyable,\n Themeable\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n $refs: {\n items: InstanceType<typeof VTabsBar>\n }\n}\n\nexport default baseMixins.extend({\n name: 'v-tabs',\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n alignWithTitle: Boolean,\n allowDeselect: {\n type: Boolean,\n default: false,\n },\n backgroundColor: String,\n centerActive: Boolean,\n centered: Boolean,\n fixedTabs: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n iconsAndText: Boolean,\n mobileBreakpoint: [String, Number],\n nextIcon: {\n type: String,\n default: '$next',\n },\n optional: Boolean,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n right: Boolean,\n showArrows: [Boolean, String],\n sliderColor: String,\n sliderSize: {\n type: [Number, String],\n default: 2,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n resizeTimeout: 0,\n slider: {\n height: null as null | number,\n left: null as null | number,\n right: null as null | number,\n top: null as null | number,\n width: null as null | number,\n },\n transitionTime: 300,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-tabs--align-with-title': this.alignWithTitle,\n 'v-tabs--centered': this.centered,\n 'v-tabs--fixed-tabs': this.fixedTabs,\n 'v-tabs--grow': this.grow,\n 'v-tabs--icons-and-text': this.iconsAndText,\n 'v-tabs--right': this.right,\n 'v-tabs--vertical': this.vertical,\n ...this.themeClasses,\n }\n },\n isReversed (): boolean {\n return this.$vuetify.rtl && this.vertical\n },\n sliderStyles (): object {\n return {\n height: convertToUnit(this.slider.height),\n left: this.isReversed ? undefined : convertToUnit(this.slider.left),\n right: this.isReversed ? convertToUnit(this.slider.right) : undefined,\n top: this.vertical ? convertToUnit(this.slider.top) : undefined,\n transition: this.slider.left != null ? null : 'none',\n width: convertToUnit(this.slider.width),\n }\n },\n computedColor (): string {\n if (this.color) return this.color\n else if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onChange', 'onUpdate:modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n watch: {\n alignWithTitle: 'callSlider',\n centered: 'callSlider',\n centerActive: 'callSlider',\n fixedTabs: 'callSlider',\n grow: 'callSlider',\n iconsAndText: 'callSlider',\n right: 'callSlider',\n showArrows: 'callSlider',\n vertical: 'callSlider',\n '$vuetify.application.left': 'onResize',\n '$vuetify.application.right': 'onResize',\n '$vuetify.rtl': 'onResize',\n modelValue (val: any) {\n this.validateModelValue(val)\n },\n },\n\n mounted () {\n this.validateModelValue(this.modelValue)\n\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n }\n\n this.$nextTick(() => {\n window.setTimeout(this.callSlider, 30)\n })\n },\n\n methods: {\n validateModelValue (val: any) {\n if (typeof val === 'number' && val < 0) {\n this.internalValue = 0\n }\n },\n callSlider () {\n if (\n this.hideSlider ||\n !this.$refs.items ||\n !this.$refs.items.selectedItems.length\n ) {\n this.slider.width = 0\n return false\n }\n\n this.$nextTick(() => {\n // Give screen time to paint\n const activeTab = this.$refs.items.selectedItems[0]\n /* istanbul ignore if */\n if (!activeTab || !activeTab.$el) {\n this.slider.width = 0\n this.slider.left = 0\n return\n }\n const el = activeTab.$el as HTMLElement\n\n this.slider = {\n height: !this.vertical ? Number(this.sliderSize) : el.scrollHeight,\n left: this.vertical ? 0 : el.offsetLeft,\n right: this.vertical ? 0 : el.offsetLeft + el.offsetWidth,\n top: el.offsetTop,\n width: this.vertical ? Number(this.sliderSize) : el.scrollWidth,\n }\n })\n\n return true\n },\n genBar (items: VNode[], slider: VNode | null) {\n const data = {\n style: {\n height: convertToUnit(this.height),\n },\n activeClass: this.activeClass,\n allowDeselect: this.allowDeselect,\n centerActive: this.centerActive,\n dark: this.dark,\n light: this.light,\n mandatory: !this.optional,\n mobileBreakpoint: this.mobileBreakpoint,\n nextIcon: this.nextIcon,\n prevIcon: this.prevIcon,\n showArrows: this.showArrows,\n modelValue: this.internalValue,\n 'onCall:slider': this.callSlider,\n 'onUpdate:modelValue': (val: any) => {\n this.internalValue = val\n },\n ref: 'items',\n }\n\n this.setTextColor(this.computedColor, data)\n this.setBackgroundColor(this.backgroundColor, data)\n\n return h(VTabsBar, data, () => [\n this.genSlider(slider),\n items,\n ])\n },\n genItems (items: VNode | null, item: VNode[]) {\n // If user provides items\n // opt to use theirs\n if (items) return items\n\n // If no tabs are provided\n // render nothing\n if (!item.length) return null\n\n return h(VTabsItems, {\n modelValue: this.internalValue,\n 'onUpdate:modelValue': (val: any) => {\n this.internalValue = val\n },\n }, () => item)\n },\n genSlider (slider: VNode | null) {\n if (this.hideSlider) return null\n\n if (!slider) {\n slider = h(VTabsSlider, {\n color: this.sliderColor,\n })\n }\n\n return h('div', {\n class: 'v-tabs-slider-wrapper',\n style: this.sliderStyles,\n }, [slider])\n },\n onResize () {\n if (this._isDestroyed) return\n\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.callSlider, 0)\n },\n parseNodes () {\n let items = null\n let slider = null\n const item = []\n const tab = []\n const slot = getSlot(this) || []\n const length = slot.length\n\n for (let i = 0; i < length; i++) {\n const vnode = slot[i]\n\n if (vnode.type) {\n switch (vnode.type.name) {\n case 'v-tabs-slider': slider = vnode\n break\n case 'v-tabs-items': items = vnode\n break\n case 'v-tab-item': item.push(vnode)\n break\n // case 'v-tab' - intentionally omitted\n default: tab.push(vnode)\n }\n } else {\n tab.push(vnode)\n }\n }\n\n /**\n * tab: array of `v-tab`\n * slider: single `v-tabs-slider`\n * items: single `v-tabs-items`\n * item: array of `v-tab-item`\n */\n return { tab, slider, items, item }\n },\n },\n\n render (): VNode {\n const { tab, slider, items, item } = this.parseNodes()\n\n return withDirectives(h('div', {\n class: ['v-tabs', this.classes],\n }, [\n this.genBar(tab, slider),\n this.genItems(items, item),\n ]), [\n [\n Resize,\n this.onResize,\n '',\n { quiet: true },\n ],\n ])\n },\n})\n"],"sourceRoot":"","file":"VTabs.js"}
1
+ {"version":3,"sources":["../../../src/components/VTabs/VTabs.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, withDirectives } from 'vue'\n// Styles\nimport './VTabs.sass'\n\n// Components\nimport VTabsBar from './VTabsBar'\nimport VTabsItems from './VTabsItems'\nimport VTabsSlider from './VTabsSlider'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport { convertToUnit, getSlot } from '../../util/helpers'\nimport { ExtractVue } from './../../util/mixins'\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue/types'\n\nconst baseMixins = mixins(\n Colorable,\n Proxyable,\n Themeable\n)\n\ninterface options extends ExtractVue<typeof baseMixins> {\n $refs: {\n items: InstanceType<typeof VTabsBar>\n }\n}\n\nexport default baseMixins.extend({\n name: 'v-tabs',\n\n props: {\n activeClass: {\n type: String,\n default: '',\n },\n alignWithTitle: Boolean,\n allowDeselect: {\n type: Boolean,\n default: false,\n },\n backgroundColor: String,\n centerActive: Boolean,\n centered: Boolean,\n fixedTabs: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n iconsAndText: Boolean,\n mobileBreakpoint: [String, Number],\n nextIcon: {\n type: String,\n default: '$next',\n },\n optional: Boolean,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n right: Boolean,\n showArrows: [Boolean, String],\n sliderColor: String,\n sliderSize: {\n type: [Number, String],\n default: 2,\n },\n vertical: Boolean,\n },\n\n data () {\n return {\n resizeTimeout: 0,\n slider: {\n height: null as null | number,\n left: null as null | number,\n right: null as null | number,\n top: null as null | number,\n width: null as null | number,\n },\n transitionTime: 300,\n }\n },\n\n computed: {\n classes (): object {\n return {\n 'v-tabs--align-with-title': this.alignWithTitle,\n 'v-tabs--centered': this.centered,\n 'v-tabs--fixed-tabs': this.fixedTabs,\n 'v-tabs--grow': this.grow,\n 'v-tabs--icons-and-text': this.iconsAndText,\n 'v-tabs--right': this.right,\n 'v-tabs--vertical': this.vertical,\n ...this.themeClasses,\n }\n },\n isReversed (): boolean {\n return this.$vuetify.rtl && this.vertical\n },\n sliderStyles (): object {\n return {\n height: convertToUnit(this.slider.height),\n left: this.isReversed ? undefined : convertToUnit(this.slider.left),\n right: this.isReversed ? convertToUnit(this.slider.right) : undefined,\n top: this.vertical ? convertToUnit(this.slider.top) : undefined,\n transition: this.slider.left != null ? null : 'none',\n width: convertToUnit(this.slider.width),\n }\n },\n computedColor (): string {\n if (this.color) return this.color\n else if (this.isDark && !this.appIsDark) return 'white'\n else return 'primary'\n },\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onChange', 'onUpdate:modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n watch: {\n alignWithTitle: 'callSlider',\n centered: 'callSlider',\n centerActive: 'callSlider',\n fixedTabs: 'callSlider',\n grow: 'callSlider',\n iconsAndText: 'callSlider',\n right: 'callSlider',\n showArrows: 'callSlider',\n vertical: 'callSlider',\n '$vuetify.application.left': 'onResize',\n '$vuetify.application.right': 'onResize',\n '$vuetify.rtl': 'onResize',\n modelValue (val: any) {\n this.validateModelValue(val)\n },\n },\n\n mounted () {\n this.validateModelValue(this.modelValue)\n\n if (typeof ResizeObserver !== 'undefined') {\n const obs = new ResizeObserver(() => {\n this.onResize()\n })\n obs.observe(this.$el)\n this.$on('hook:destroyed', () => {\n obs.disconnect()\n })\n }\n\n this.$nextTick(() => {\n window.setTimeout(this.callSlider, 30)\n })\n },\n\n methods: {\n validateModelValue (val: any) {\n if (typeof val === 'number' && val < 0) {\n this.internalValue = 0\n }\n },\n callSlider () {\n if (\n this.hideSlider ||\n !this.$refs.items ||\n !this.$refs.items.selectedItems.length\n ) {\n this.slider.width = 0\n return false\n }\n\n this.$nextTick(() => {\n // Give screen time to paint\n const activeTab = this.$refs.items.selectedItems[0]\n /* istanbul ignore if */\n if (!activeTab || !activeTab.$el) {\n this.slider.width = 0\n this.slider.left = 0\n return\n }\n const el = activeTab.$el as HTMLElement\n\n this.slider = {\n height: !this.vertical ? Number(this.sliderSize) : el.scrollHeight,\n left: this.vertical ? 0 : el.offsetLeft,\n right: this.vertical ? 0 : el.offsetLeft + el.offsetWidth,\n top: el.offsetTop,\n width: this.vertical ? Number(this.sliderSize) : el.scrollWidth,\n }\n })\n\n return true\n },\n genBar (items: VNode[], slider: VNode | null) {\n const data = {\n style: {\n height: convertToUnit(this.height),\n },\n activeClass: this.activeClass,\n allowDeselect: this.allowDeselect,\n centerActive: this.centerActive,\n dark: this.dark,\n light: this.light,\n mandatory: !this.optional,\n mobileBreakpoint: this.mobileBreakpoint,\n nextIcon: this.nextIcon,\n prevIcon: this.prevIcon,\n showArrows: this.showArrows,\n modelValue: this.internalValue,\n 'onCall:slider': this.callSlider,\n 'onUpdate:modelValue': (val: any) => {\n this.internalValue = val\n },\n ref: 'items',\n }\n\n this.setTextColor(this.computedColor, data)\n this.setBackgroundColor(this.backgroundColor, data)\n\n return h(VTabsBar, data, () => [\n this.genSlider(slider),\n items,\n ])\n },\n genItems (items: VNode | null, item: VNode[]) {\n // If user provides items\n // opt to use theirs\n if (items) return items\n\n // If no tabs are provided\n // render nothing\n if (!item.length) return null\n\n return h(VTabsItems, {\n modelValue: this.internalValue,\n 'onUpdate:modelValue': (val: any) => {\n this.internalValue = val\n },\n }, () => item)\n },\n genSlider (slider: VNode | null) {\n if (this.hideSlider) return null\n\n if (!slider) {\n slider = h(VTabsSlider, {\n color: this.sliderColor,\n })\n }\n\n return h('div', {\n class: 'v-tabs-slider-wrapper',\n style: this.sliderStyles,\n }, [slider])\n },\n onResize () {\n if (this.$.isUnmounted) return\n\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.callSlider, 0)\n },\n parseNodes () {\n let items = null\n let slider = null\n const item = []\n const tab = []\n const slot = getSlot(this) || []\n const length = slot.length\n\n for (let i = 0; i < length; i++) {\n const vnode = slot[i]\n\n if (vnode.type) {\n switch (vnode.type.name) {\n case 'v-tabs-slider': slider = vnode\n break\n case 'v-tabs-items': items = vnode\n break\n case 'v-tab-item': item.push(vnode)\n break\n // case 'v-tab' - intentionally omitted\n default: tab.push(vnode)\n }\n } else {\n tab.push(vnode)\n }\n }\n\n /**\n * tab: array of `v-tab`\n * slider: single `v-tabs-slider`\n * items: single `v-tabs-items`\n * item: array of `v-tab-item`\n */\n return { tab, slider, items, item }\n },\n },\n\n render (): VNode {\n const { tab, slider, items, item } = this.parseNodes()\n\n return withDirectives(h('div', {\n class: ['v-tabs', this.classes],\n }, [\n this.genBar(tab, slider),\n this.genItems(items, item),\n ]), [\n [\n Resize,\n this.onResize,\n '',\n { quiet: true },\n ],\n ])\n },\n})\n"],"sourceRoot":"","file":"VTabs.js"}
package/es5/framework.js CHANGED
@@ -79,7 +79,7 @@ var Vuetify = /*#__PURE__*/function () {
79
79
  exports.default = Vuetify;
80
80
  Vuetify.install = _install.install;
81
81
  Vuetify.installed = false;
82
- Vuetify.version = "2.7.2-alpha36";
82
+ Vuetify.version = "2.7.2-alpha38";
83
83
  Vuetify.config = {
84
84
  silent: false
85
85
  };
@@ -123,7 +123,7 @@ var _default = (0, _mixins.default)(_bootable.default).extend({
123
123
  return scopeIdAttrs;
124
124
  },
125
125
  initDetach: function initDetach() {
126
- if (this._isDestroyed || !this.$refs.content || this.hasDetached || // Leave menu in place if attached
126
+ if (this.$.isUnmounted || !this.$refs.content || this.hasDetached || // Leave menu in place if attached
127
127
  // and dev has not changed target
128
128
  this.attach === '' || // If used as a boolean prop (<v-menu attach>)
129
129
  this.attach === true || // If bound to a boolean (<v-menu :attach="true">)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/detachable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Bootable from '../bootable'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { PropOptions } from 'vue'\nimport { VNode } from 'vue/types'\n\ninterface options {\n $el: HTMLElement\n $refs: {\n content?: HTMLElement\n }\n}\n\nfunction validateAttachTarget (val: any) {\n const type = typeof val\n\n if (type === 'boolean' || type === 'string') return true\n\n return val.nodeType === Node.ELEMENT_NODE\n}\n\nfunction removeActivator (activator: VNode[]) {\n activator.forEach(node => {\n node.el &&\n node.el.parentNode &&\n node.el.parentNode.removeChild(node.el)\n })\n}\n\n/* @vue/component */\nexport default mixins<options &\n /* eslint-disable indent */\n ExtractVue<typeof Bootable>\n /* eslint-enable indent */\n>(Bootable).extend({\n name: 'detachable',\n\n props: {\n attach: {\n default: false,\n validator: validateAttachTarget,\n } as PropOptions<boolean | string | Element>,\n contentClass: {\n type: String,\n default: '',\n },\n },\n\n data: () => ({\n activatorNode: null as null | VNode | VNode[],\n hasDetached: false,\n }),\n\n watch: {\n attach () {\n this.hasDetached = false\n this.initDetach()\n },\n hasContent () {\n this.$nextTick(this.initDetach)\n },\n },\n\n beforeMount () {\n this.$nextTick(() => {\n if (this.activatorNode) {\n const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n\n activator.forEach(node => {\n if (!node.el) return\n if (!this.$el.parentNode) return\n\n const target = this.$el === this.$el.parentNode.firstChild\n ? this.$el\n : this.$el.nextSibling\n\n this.$el.parentNode.insertBefore(node.el, target)\n })\n }\n })\n },\n\n mounted () {\n this.hasContent && this.initDetach()\n },\n\n deactivated () {\n this.isActive = false\n },\n\n beforeUnmount () {\n if (\n this.$refs.content &&\n this.$refs.content.parentNode\n ) {\n this.$refs.content.parentNode.removeChild(this.$refs.content)\n }\n },\n\n unmounted () {\n if (this.activatorNode) {\n const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n if (this.$el.isConnected) {\n // Component has been destroyed but the element still exists, we must be in a transition\n // Wait for the transition to finish before cleaning up the detached activator\n const observer = new MutationObserver(list => {\n if (\n list.some(record => Array.from(record.removedNodes).includes(this.$el))\n ) {\n observer.disconnect()\n removeActivator(activator)\n }\n })\n observer.observe(this.$el.parentNode!, { subtree: false, childList: true })\n } else {\n removeActivator(activator)\n }\n }\n },\n\n methods: {\n getScopeIdAttrs () {\n if (!this.$attrs) return {}\n\n const scopeIdAttrs: Record<string, any> = {}\n\n // Ищем все data-v- атрибуты в $attrs\n Object.keys(this.$attrs).forEach(key => {\n if (key.startsWith('data-v-')) {\n scopeIdAttrs[key] = ''\n }\n })\n\n return scopeIdAttrs\n },\n initDetach () {\n if (this._isDestroyed ||\n !this.$refs.content ||\n this.hasDetached ||\n // Leave menu in place if attached\n // and dev has not changed target\n this.attach === '' || // If used as a boolean prop (<v-menu attach>)\n this.attach === true || // If bound to a boolean (<v-menu :attach=\"true\">)\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) return\n\n let target\n if (this.attach === false) {\n // Default, detach to app\n target = document.querySelector('[data-app]')\n } else if (typeof this.attach === 'string') {\n // CSS selector\n target = document.querySelector(this.attach)\n } else {\n // DOM Element\n target = this.attach\n }\n\n if (!target) {\n consoleWarn(`Unable to locate target ${this.attach || '[data-app]'}`, this)\n return\n }\n\n target.appendChild(this.$refs.content)\n\n this.hasDetached = true\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/detachable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Bootable from '../bootable'\n\n// Utilities\nimport { getObjectValueByPath } from '../../util/helpers'\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\n\n// Types\nimport { PropOptions } from 'vue'\nimport { VNode } from 'vue/types'\n\ninterface options {\n $el: HTMLElement\n $refs: {\n content?: HTMLElement\n }\n}\n\nfunction validateAttachTarget (val: any) {\n const type = typeof val\n\n if (type === 'boolean' || type === 'string') return true\n\n return val.nodeType === Node.ELEMENT_NODE\n}\n\nfunction removeActivator (activator: VNode[]) {\n activator.forEach(node => {\n node.el &&\n node.el.parentNode &&\n node.el.parentNode.removeChild(node.el)\n })\n}\n\n/* @vue/component */\nexport default mixins<options &\n /* eslint-disable indent */\n ExtractVue<typeof Bootable>\n /* eslint-enable indent */\n>(Bootable).extend({\n name: 'detachable',\n\n props: {\n attach: {\n default: false,\n validator: validateAttachTarget,\n } as PropOptions<boolean | string | Element>,\n contentClass: {\n type: String,\n default: '',\n },\n },\n\n data: () => ({\n activatorNode: null as null | VNode | VNode[],\n hasDetached: false,\n }),\n\n watch: {\n attach () {\n this.hasDetached = false\n this.initDetach()\n },\n hasContent () {\n this.$nextTick(this.initDetach)\n },\n },\n\n beforeMount () {\n this.$nextTick(() => {\n if (this.activatorNode) {\n const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n\n activator.forEach(node => {\n if (!node.el) return\n if (!this.$el.parentNode) return\n\n const target = this.$el === this.$el.parentNode.firstChild\n ? this.$el\n : this.$el.nextSibling\n\n this.$el.parentNode.insertBefore(node.el, target)\n })\n }\n })\n },\n\n mounted () {\n this.hasContent && this.initDetach()\n },\n\n deactivated () {\n this.isActive = false\n },\n\n beforeUnmount () {\n if (\n this.$refs.content &&\n this.$refs.content.parentNode\n ) {\n this.$refs.content.parentNode.removeChild(this.$refs.content)\n }\n },\n\n unmounted () {\n if (this.activatorNode) {\n const activator = Array.isArray(this.activatorNode) ? this.activatorNode : [this.activatorNode]\n if (this.$el.isConnected) {\n // Component has been destroyed but the element still exists, we must be in a transition\n // Wait for the transition to finish before cleaning up the detached activator\n const observer = new MutationObserver(list => {\n if (\n list.some(record => Array.from(record.removedNodes).includes(this.$el))\n ) {\n observer.disconnect()\n removeActivator(activator)\n }\n })\n observer.observe(this.$el.parentNode!, { subtree: false, childList: true })\n } else {\n removeActivator(activator)\n }\n }\n },\n\n methods: {\n getScopeIdAttrs () {\n if (!this.$attrs) return {}\n\n const scopeIdAttrs: Record<string, any> = {}\n\n // Ищем все data-v- атрибуты в $attrs\n Object.keys(this.$attrs).forEach(key => {\n if (key.startsWith('data-v-')) {\n scopeIdAttrs[key] = ''\n }\n })\n\n return scopeIdAttrs\n },\n initDetach () {\n if (this.$.isUnmounted ||\n !this.$refs.content ||\n this.hasDetached ||\n // Leave menu in place if attached\n // and dev has not changed target\n this.attach === '' || // If used as a boolean prop (<v-menu attach>)\n this.attach === true || // If bound to a boolean (<v-menu :attach=\"true\">)\n this.attach === 'attach' // If bound as boolean prop in pug (v-menu(attach))\n ) return\n\n let target\n if (this.attach === false) {\n // Default, detach to app\n target = document.querySelector('[data-app]')\n } else if (typeof this.attach === 'string') {\n // CSS selector\n target = document.querySelector(this.attach)\n } else {\n // DOM Element\n target = this.attach\n }\n\n if (!target) {\n consoleWarn(`Unable to locate target ${this.attach || '[data-app]'}`, this)\n return\n }\n\n target.appendChild(this.$refs.content)\n\n this.hasDetached = true\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -40,7 +40,11 @@ function factory(namespace, child, parent) {
40
40
  this[namespace] && this[namespace].register(this);
41
41
  },
42
42
  beforeUnmount: function beforeUnmount() {
43
- this[namespace] && this[namespace].unregister(this);
43
+ var _this = this;
44
+
45
+ this.$nextTick(function () {
46
+ _this[namespace] && _this[namespace].unregister(_this);
47
+ });
44
48
  },
45
49
  methods: {
46
50
  toggle: function toggle(e) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/groupable/index.ts"],"names":[],"mappings":";;;;;;;;AACA;;;;AAeM,SAAU,OAAV,CACJ,SADI,EAEJ,KAFI,EAGJ,MAHI,EAGW;AAEf,SAAO;AACL,IAAA,IAAI,EAAE,WADD;AAGL,IAAA,OAAO,EAAE,yBAAwB,SAAxB,EAAmC,KAAnC,EAA0C,MAA1C,CAHJ;AAIL,IAAA,KAAK,EAAE;AACL,MAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE;AADK,OADR;AAIL,MAAA,QAAQ,EAAE;AAJL,KAJF;AAWL,IAAA,IAXK,kBAWD;AACF,aAAO;AACL,QAAA,QAAQ,EAAE;AADL,OAAP;AAGD,KAfI;AAiBL,IAAA,QAAQ,EAAE;AACR,MAAA,YADQ,0BACI;AACV,YAAI,KAAK,WAAT,EAAsB,OAAO,KAAK,WAAZ;AAEtB,YAAI,CAAC,KAAK,SAAL,CAAL,EAAsB,OAAO,SAAP;AAEtB,eAAO,KAAK,SAAL,EAAgB,WAAvB;AACD,OAPO;AAQR,MAAA,YARQ,0BAQI;AACV,YAAI,CAAC,KAAK,YAAV,EAAwB,OAAO,EAAP;AAExB,mCACG,KAAK,YADR,EACuB,KAAK,QAD5B;AAGD;AAdO,KAjBL;AAkCL,IAAA,OAlCK,qBAkCE;AACL,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,QAAxB,CAAiC,IAAjC,CAApB;AACD,KApCI;AAsCL,IAAA,aAtCK,2BAsCQ;AACX,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,UAAxB,CAAmC,IAAnC,CAApB;AACD,KAxCI;AA0CL,IAAA,OAAO,EAAE;AACP,MAAA,MADO,kBACC,CADD,EACU;AACf,YAAI,KAAK,QAAL,IAAiB,CAArB,EAAwB;AACtB;AACA;AACA;AACA,UAAA,CAAC,CAAC,cAAF;AACA;AACD;;AACD,aAAK,KAAL,CAAW,QAAX;AACA,aAAK,WAAL,CAAiB,QAAjB;AACD;AAXM;AA1CJ,GAAP;AAwDD;AAED;;;AACA,IAAM,SAAS,GAAG,OAAO,CAAC,WAAD,CAAzB;eAEe,S","sourcesContent":["// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\n// import { ExtractVue } from '../../util/mixins'\nimport { Component } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable<T extends string, C extends Component | null = null> = Component<Registrable<T, C> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (e?: Event): void\n}>\n\nexport function factory<T extends string, C extends Component | null = null> (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable<T, C> {\n return {\n name: 'groupable',\n\n extends: RegistrableInject<T, C>(namespace, child, parent),\n props: {\n activeClass: {\n type: String,\n } as any as PropValidator<string>,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n $activeClass () {\n if (this.activeClass) return this.activeClass\n\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n groupClasses (): object {\n if (!this.$activeClass) return {}\n\n return {\n [this.$activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeUnmount () {\n this[namespace] && (this[namespace] as any).unregister(this)\n },\n\n methods: {\n toggle (e?: Event) {\n if (this.disabled && e) {\n // Prevent keyboard actions\n // from children elements\n // within disabled tabs\n e.preventDefault()\n return\n }\n this.$emit('change')\n this.$emitLegacy('change')\n },\n },\n }\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/groupable/index.ts"],"names":[],"mappings":";;;;;;;;AACA;;;;AAeM,SAAU,OAAV,CACJ,SADI,EAEJ,KAFI,EAGJ,MAHI,EAGW;AAEf,SAAO;AACL,IAAA,IAAI,EAAE,WADD;AAGL,IAAA,OAAO,EAAE,yBAAwB,SAAxB,EAAmC,KAAnC,EAA0C,MAA1C,CAHJ;AAIL,IAAA,KAAK,EAAE;AACL,MAAA,WAAW,EAAE;AACX,QAAA,IAAI,EAAE;AADK,OADR;AAIL,MAAA,QAAQ,EAAE;AAJL,KAJF;AAWL,IAAA,IAXK,kBAWD;AACF,aAAO;AACL,QAAA,QAAQ,EAAE;AADL,OAAP;AAGD,KAfI;AAiBL,IAAA,QAAQ,EAAE;AACR,MAAA,YADQ,0BACI;AACV,YAAI,KAAK,WAAT,EAAsB,OAAO,KAAK,WAAZ;AAEtB,YAAI,CAAC,KAAK,SAAL,CAAL,EAAsB,OAAO,SAAP;AAEtB,eAAO,KAAK,SAAL,EAAgB,WAAvB;AACD,OAPO;AAQR,MAAA,YARQ,0BAQI;AACV,YAAI,CAAC,KAAK,YAAV,EAAwB,OAAO,EAAP;AAExB,mCACG,KAAK,YADR,EACuB,KAAK,QAD5B;AAGD;AAdO,KAjBL;AAkCL,IAAA,OAlCK,qBAkCE;AACL,WAAK,SAAL,KAAoB,KAAK,SAAL,EAAwB,QAAxB,CAAiC,IAAjC,CAApB;AACD,KApCI;AAsCL,IAAA,aAtCK,2BAsCQ;AAAA;;AACX,WAAK,SAAL,CAAe,YAAK;AAClB,QAAA,KAAI,CAAC,SAAD,CAAJ,IAAoB,KAAI,CAAC,SAAD,CAAJ,CAAwB,UAAxB,CAAmC,KAAnC,CAApB;AACD,OAFD;AAGD,KA1CI;AA4CL,IAAA,OAAO,EAAE;AACP,MAAA,MADO,kBACC,CADD,EACU;AACf,YAAI,KAAK,QAAL,IAAiB,CAArB,EAAwB;AACtB;AACA;AACA;AACA,UAAA,CAAC,CAAC,cAAF;AACA;AACD;;AACD,aAAK,KAAL,CAAW,QAAX;AACA,aAAK,WAAL,CAAiB,QAAjB;AACD;AAXM;AA5CJ,GAAP;AA0DD;AAED;;;AACA,IAAM,SAAS,GAAG,OAAO,CAAC,WAAD,CAAzB;eAEe,S","sourcesContent":["// Mixins\nimport { Registrable, inject as RegistrableInject } from '../registrable'\n\n// Utilities\n// import { ExtractVue } from '../../util/mixins'\nimport { Component } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\nexport type Groupable<T extends string, C extends Component | null = null> = Component<Registrable<T, C> & {\n activeClass: string\n isActive: boolean\n disabled: boolean\n groupClasses: object\n toggle (e?: Event): void\n}>\n\nexport function factory<T extends string, C extends Component | null = null> (\n namespace: T,\n child?: string,\n parent?: string\n): Groupable<T, C> {\n return {\n name: 'groupable',\n\n extends: RegistrableInject<T, C>(namespace, child, parent),\n props: {\n activeClass: {\n type: String,\n } as any as PropValidator<string>,\n disabled: Boolean,\n },\n\n data () {\n return {\n isActive: false,\n }\n },\n\n computed: {\n $activeClass () {\n if (this.activeClass) return this.activeClass\n\n if (!this[namespace]) return undefined\n\n return this[namespace].activeClass\n },\n groupClasses (): object {\n if (!this.$activeClass) return {}\n\n return {\n [this.$activeClass]: this.isActive,\n }\n },\n },\n\n created () {\n this[namespace] && (this[namespace] as any).register(this)\n },\n\n beforeUnmount () {\n this.$nextTick(() => {\n this[namespace] && (this[namespace] as any).unregister(this)\n })\n },\n\n methods: {\n toggle (e?: Event) {\n if (this.disabled && e) {\n // Prevent keyboard actions\n // from children elements\n // within disabled tabs\n e.preventDefault()\n return\n }\n this.$emit('change')\n this.$emitLegacy('change')\n },\n },\n }\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Groupable = factory('itemGroup')\n\nexport default Groupable\n"],"sourceRoot":"","file":"index.js"}
@@ -32,7 +32,7 @@ function factory() {
32
32
  if (val === this.internalLazyValue) return;
33
33
  this.internalLazyValue = val; // Don't emit events if component is being destroyed
34
34
 
35
- if (!this._isDestroyed) {
35
+ if (!this.$.isUnmounted) {
36
36
  this.$emit(event, val);
37
37
  }
38
38
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/proxyable/index.ts"],"names":[],"mappings":";;;;;;;;AAAA;;;;AAQM,SAAU,OAAV,GAEuB;AAAA,MAD3B,IAC2B,uEADpB,YACoB;AAAA,MAA3B,KAA2B,uEAAnB,mBAAmB;AAE3B,SAAO,0BAAgB;AACrB,IAAA,IAAI,EAAE,WADe;AAGrB,IAAA,KAAK,sBACF,IADE,EACK;AACN,MAAA,QAAQ,EAAE;AADJ,KADL,CAHgB;AASrB,IAAA,IATqB,kBASjB;AACF,aAAO;AACL,QAAA,iBAAiB,EAAE,KAAK,IAAL;AADd,OAAP;AAGD,KAboB;AAerB,IAAA,QAAQ,EAAE;AACR,MAAA,aAAa,EAAE;AACb,QAAA,GADa,iBACV;AACD,iBAAO,KAAK,iBAAZ;AACD,SAHY;AAIb,QAAA,GAJa,eAIR,GAJQ,EAIA;AACX,cAAI,GAAG,KAAK,KAAK,iBAAjB,EAAoC;AAEpC,eAAK,iBAAL,GAAyB,GAAzB,CAHW,CAKX;;AACA,cAAI,CAAE,KAAa,YAAnB,EAAiC;AAC/B,iBAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB;AACD;AACF;AAbY;AADP,KAfW;AAiCrB,IAAA,KAAK,sBACF,IADE,YACK,GADL,EACQ;AACT,WAAK,iBAAL,GAAyB,GAAzB;AACD,KAHE;AAjCgB,GAAhB,CAAP;AAuCD;AAED;;;AACA,IAAM,SAAS,GAAG,OAAO,EAAzB;eAEe,S","sourcesContent":["import { defineComponent, Component, App } from 'vue'\n\nexport type Proxyable<T extends string = 'value'> = Component<App & {\n internalLazyValue: unknown\n internalValue: unknown\n} & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Proxyable<T>\nexport function factory (\n prop = 'modelValue',\n event = 'update:modelValue'\n) {\n return defineComponent({\n name: 'proxyable',\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n // Don't emit events if component is being destroyed\n if (!(this as any)._isDestroyed) {\n this.$emit(event, val)\n }\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/proxyable/index.ts"],"names":[],"mappings":";;;;;;;;AAAA;;;;AAQM,SAAU,OAAV,GAEuB;AAAA,MAD3B,IAC2B,uEADpB,YACoB;AAAA,MAA3B,KAA2B,uEAAnB,mBAAmB;AAE3B,SAAO,0BAAgB;AACrB,IAAA,IAAI,EAAE,WADe;AAGrB,IAAA,KAAK,sBACF,IADE,EACK;AACN,MAAA,QAAQ,EAAE;AADJ,KADL,CAHgB;AASrB,IAAA,IATqB,kBASjB;AACF,aAAO;AACL,QAAA,iBAAiB,EAAE,KAAK,IAAL;AADd,OAAP;AAGD,KAboB;AAerB,IAAA,QAAQ,EAAE;AACR,MAAA,aAAa,EAAE;AACb,QAAA,GADa,iBACV;AACD,iBAAO,KAAK,iBAAZ;AACD,SAHY;AAIb,QAAA,GAJa,eAIR,GAJQ,EAIA;AACX,cAAI,GAAG,KAAK,KAAK,iBAAjB,EAAoC;AAEpC,eAAK,iBAAL,GAAyB,GAAzB,CAHW,CAKX;;AACA,cAAI,CAAC,KAAK,CAAL,CAAO,WAAZ,EAAyB;AACvB,iBAAK,KAAL,CAAW,KAAX,EAAkB,GAAlB;AACD;AACF;AAbY;AADP,KAfW;AAiCrB,IAAA,KAAK,sBACF,IADE,YACK,GADL,EACQ;AACT,WAAK,iBAAL,GAAyB,GAAzB;AACD,KAHE;AAjCgB,GAAhB,CAAP;AAuCD;AAED;;;AACA,IAAM,SAAS,GAAG,OAAO,EAAzB;eAEe,S","sourcesContent":["import { defineComponent, Component, App } from 'vue'\n\nexport type Proxyable<T extends string = 'value'> = Component<App & {\n internalLazyValue: unknown\n internalValue: unknown\n} & Record<T, any>>\n\nexport function factory<T extends string = 'value'> (prop?: T, event?: string): Proxyable<T>\nexport function factory (\n prop = 'modelValue',\n event = 'update:modelValue'\n) {\n return defineComponent({\n name: 'proxyable',\n\n props: {\n [prop]: {\n required: false,\n },\n },\n\n data () {\n return {\n internalLazyValue: this[prop] as unknown,\n }\n },\n\n computed: {\n internalValue: {\n get (): unknown {\n return this.internalLazyValue\n },\n set (val: any) {\n if (val === this.internalLazyValue) return\n\n this.internalLazyValue = val\n\n // Don't emit events if component is being destroyed\n if (!this.$.isUnmounted) {\n this.$emit(event, val);\n }\n },\n },\n },\n\n watch: {\n [prop] (val) {\n this.internalLazyValue = val\n },\n },\n })\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-redeclare */\nconst Proxyable = factory()\n\nexport default Proxyable\n"],"sourceRoot":"","file":"index.js"}
@@ -151,7 +151,7 @@ export default baseMixins.extend({
151
151
  // if it was dragged onto the overlay (#6969),
152
152
  // or if this isn't the topmost dialog (#9907)
153
153
 
154
- return !(this._isDestroyed || !this.isActive || this.$refs.content.contains(target) || this.overlay && target && !this.overlay.$el.contains(target)) && this.activeZIndex >= this.getMaxZIndex();
154
+ return !(this.$.isUnmounted || !this.isActive || this.$refs.content.contains(target) || this.overlay && target && !this.overlay.$el.contains(target)) && this.activeZIndex >= this.getMaxZIndex();
155
155
  },
156
156
 
157
157
  hideScroll() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VDialog/VDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transition, h, vShow, withDirectives } from 'vue'\n// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed, breaking } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n emits: ['click:outside', 'keydown', 'update:return-value', 'update:modelValue'],\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$slots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeUnmount () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this._isDestroyed ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n h(VThemeProvider, {\n root: true,\n light: this.light,\n dark: this.dark,\n }, () => [\n h('div', {\n class: this.contentClasses,\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n onKeydown: this.onKeydown,\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n appear: true,\n }, () => [content])\n },\n genInnerContent () {\n const directives = [\n [\n ClickOutside,\n {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n ],\n [\n vShow,\n this.isActive,\n ],\n ]\n const data: VNodeData = {\n class: this.classes,\n tabindex: this.isActive ? 0 : undefined,\n ref: 'dialog',\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return withDirectives(\n h('div', data, this.getContentSlot()),\n directives\n )\n },\n },\n\n render (): VNode {\n return h('div', {\n class: ['v-dialog__container', {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }],\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDialog.js"}
1
+ {"version":3,"sources":["../../../src/components/VDialog/VDialog.ts"],"names":[],"mappings":"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","sourcesContent":["import { Transition, h, vShow, withDirectives } from 'vue'\n// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Dependent from '../../mixins/dependent'\nimport Detachable from '../../mixins/detachable'\nimport Overlayable from '../../mixins/overlayable'\nimport Returnable from '../../mixins/returnable'\nimport Stackable from '../../mixins/stackable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed, breaking } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\n\n// Types\nimport { VNode, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Activatable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n props: {\n dark: Boolean,\n disabled: Boolean,\n fullscreen: Boolean,\n light: Boolean,\n maxWidth: [String, Number],\n noClickAnimation: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n persistent: Boolean,\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n transition: {\n type: [String, Boolean],\n default: 'dialog-transition',\n },\n width: [String, Number],\n },\n\n emits: ['click:outside', 'keydown', 'update:return-value', 'update:modelValue'],\n\n data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n stackMinZIndex: 200,\n previousActiveElement: null as HTMLElement | null,\n }\n },\n\n computed: {\n classes (): object {\n return {\n [(`v-dialog ${this.contentClass}`).trim()]: true,\n 'v-dialog--active': this.isActive,\n 'v-dialog--persistent': this.persistent,\n 'v-dialog--fullscreen': this.fullscreen,\n 'v-dialog--scrollable': this.scrollable,\n 'v-dialog--animated': this.animate,\n }\n },\n contentClasses (): object {\n return {\n 'v-dialog__content': true,\n 'v-dialog__content--active': this.isActive,\n }\n },\n hasActivator (): boolean {\n return Boolean(\n !!this.$slots.activator ||\n !!this.$slots.activator\n )\n },\n },\n\n watch: {\n isActive (val) {\n if (val) {\n this.show()\n this.hideScroll()\n } else {\n this.removeOverlay()\n this.unbind()\n this.previousActiveElement?.focus()\n }\n },\n fullscreen (val) {\n if (!this.isActive) return\n\n if (val) {\n this.hideScroll()\n this.removeOverlay(false)\n } else {\n this.showScroll()\n this.genOverlay()\n }\n },\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n beforeMount () {\n this.$nextTick(() => {\n this.isBooted = this.isActive\n this.isActive && this.show()\n })\n },\n\n beforeUnmount () {\n if (typeof window !== 'undefined') this.unbind()\n },\n\n methods: {\n animateClick () {\n this.animate = false\n // Needed for when clicking very fast\n // outside of the dialog\n this.$nextTick(() => {\n this.animate = true\n window.clearTimeout(this.animateTimeout)\n this.animateTimeout = window.setTimeout(() => (this.animate = false), 150)\n })\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n // Ignore the click if the dialog is closed or destroyed,\n // if it was on an element inside the content,\n // if it was dragged onto the overlay (#6969),\n // or if this isn't the topmost dialog (#9907)\n return !(\n this.$.isUnmounted ||\n !this.isActive ||\n this.$refs.content.contains(target) ||\n (this.overlay && target && !this.overlay.$el.contains(target))\n ) && this.activeZIndex >= this.getMaxZIndex()\n },\n hideScroll () {\n if (this.fullscreen) {\n document.documentElement.classList.add('overflow-y-hidden')\n } else {\n Overlayable.methods.hideScroll.call(this)\n }\n },\n show () {\n !this.fullscreen && !this.hideOverlay && this.genOverlay()\n // Double nextTick to wait for lazy content to be generated\n this.$nextTick(() => {\n this.$nextTick(() => {\n if (!this.$refs.dialog?.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.dialog?.focus()\n }\n this.bind()\n })\n })\n },\n bind () {\n window.addEventListener('focusin', this.onFocusin)\n },\n unbind () {\n window.removeEventListener('focusin', this.onFocusin)\n },\n onClickOutside (e: Event) {\n this.$emit('click:outside', e)\n\n if (this.persistent) {\n this.noClickAnimation || this.animateClick()\n } else {\n this.isActive = false\n }\n },\n onKeydown (e: KeyboardEvent) {\n if (e.keyCode === keyCodes.esc && !this.getOpenDependents().length) {\n if (!this.persistent) {\n this.isActive = false\n const activator = this.getActivator()\n this.$nextTick(() => activator && (activator as HTMLElement).focus())\n } else if (!this.noClickAnimation) {\n this.animateClick()\n }\n }\n this.$emit('keydown', e)\n },\n // On focus change, wrap focus to stay inside the dialog\n // https://github.com/vuetifyjs/vuetify/issues/6892\n onFocusin (e: Event) {\n if (!e || !this.retainFocus) return\n\n const target = e.target as HTMLElement\n\n if (\n !!target &&\n this.$refs.dialog &&\n // It isn't the document or the dialog body\n ![document, this.$refs.dialog].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.dialog.contains(target) &&\n // We're the topmost dialog\n this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n // Find and focus the first available element inside the dialog\n const focusable = this.$refs.dialog.querySelectorAll('button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n h(VThemeProvider, {\n root: true,\n light: this.light,\n dark: this.dark,\n }, () => [\n h('div', {\n class: this.contentClasses,\n role: 'dialog',\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n onKeydown: this.onKeydown,\n style: { zIndex: this.activeZIndex },\n ref: 'content',\n }, [this.genTransition()]),\n ]),\n ])\n },\n genTransition () {\n const content = this.genInnerContent()\n\n if (!this.transition) return content\n\n return h(Transition, {\n name: this.transition,\n origin: this.origin,\n appear: true,\n }, () => [content])\n },\n genInnerContent () {\n const directives = [\n [\n ClickOutside,\n {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n ],\n [\n vShow,\n this.isActive,\n ],\n ]\n const data: VNodeData = {\n class: this.classes,\n tabindex: this.isActive ? 0 : undefined,\n ref: 'dialog',\n style: {\n transformOrigin: this.origin,\n },\n }\n\n if (!this.fullscreen) {\n data.style = {\n ...data.style as object,\n maxWidth: convertToUnit(this.maxWidth),\n width: convertToUnit(this.width),\n }\n }\n\n return withDirectives(\n h('div', data, this.getContentSlot()),\n directives\n )\n },\n },\n\n render (): VNode {\n return h('div', {\n class: ['v-dialog__container', {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }],\n }, [\n this.genActivator(),\n this.genContent(),\n ])\n },\n})\n"],"sourceRoot":"","file":"VDialog.js"}
@@ -127,7 +127,7 @@ export const BaseItemGroup = mixins(Comparable, Proxyable, Themeable).extend({
127
127
  },
128
128
 
129
129
  unregister(item) {
130
- if (this._isDestroyed) return;
130
+ if (this.$.isUnmounted) return;
131
131
  const index = this.items.indexOf(item);
132
132
  const value = this.getValue(item, index);
133
133
  this.items.splice(index, 1);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VItemGroup/VItemGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\nimport { defineComponent } from 'vue'\n\nexport type GroupableInstance = InstanceType<typeof Groupable> & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n emits: ['update:modelValue'],\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n allowDeselect: {\n type: Boolean,\n default: true,\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.modelValue !== undefined\n ? this.modelValue\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record<string, boolean> {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState'\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n // TODO!!!\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this._isDestroyed) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => this.valueComparator(val, value))\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = this.valueComparator(this.internalValue, value)\n\n if (this.mandatory && isSame) return\n if (!this.allowDeselect && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (): VNode {\n const data = this.genData()\n return h(this.tag, {\n class: data.class,\n ...data.attrs,\n }, getSlot(this))\n },\n})\n\nexport default defineComponent({\n name: 'v-item-group',\n extends: BaseItemGroup,\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n"],"sourceRoot":"","file":"VItemGroup.js"}
1
+ {"version":3,"sources":["../../../src/components/VItemGroup/VItemGroup.ts"],"names":[],"mappings":"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","sourcesContent":["import {h} from 'vue'\n// Styles\nimport './VItemGroup.sass'\n\n// Mixins\nimport Comparable from '../../mixins/comparable'\nimport Groupable from '../../mixins/groupable'\nimport Proxyable from '../../mixins/proxyable'\nimport Themeable from '../../mixins/themeable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue/types'\nimport { defineComponent } from 'vue'\n\nexport type GroupableInstance = InstanceType<typeof Groupable> & {\n id?: string\n to?: any\n value?: any\n }\n\nexport const BaseItemGroup = mixins(\n Comparable,\n Proxyable,\n Themeable\n).extend({\n name: 'base-item-group',\n\n emits: ['update:modelValue'],\n\n props: {\n activeClass: {\n type: String,\n default: 'v-item--active',\n },\n allowDeselect: {\n type: Boolean,\n default: true,\n },\n mandatory: Boolean,\n max: {\n type: [Number, String],\n default: null,\n },\n multiple: Boolean,\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n data () {\n return {\n // As long as a value is defined, show it\n // Otherwise, check if multiple\n // to determine which default to provide\n internalLazyValue: this.modelValue !== undefined\n ? this.modelValue\n : this.multiple ? [] : undefined,\n items: [] as GroupableInstance[],\n }\n },\n\n computed: {\n classes (): Record<string, boolean> {\n return {\n 'v-item-group': true,\n ...this.themeClasses,\n }\n },\n selectedIndex (): number {\n return (this.selectedItem && this.items.indexOf(this.selectedItem)) || -1\n },\n selectedItem (): GroupableInstance | undefined {\n if (this.multiple) return undefined\n\n return this.selectedItems[0]\n },\n selectedItems (): GroupableInstance[] {\n return this.items.filter((item, index) => {\n return this.toggleMethod(this.getValue(item, index))\n })\n },\n selectedValues (): any[] {\n if (this.internalValue == null) return []\n\n return Array.isArray(this.internalValue)\n ? this.internalValue\n : [this.internalValue]\n },\n toggleMethod (): (v: any) => boolean {\n if (!this.multiple) {\n return (v: any) => this.valueComparator(this.internalValue, v)\n }\n\n const internalValue = this.internalValue\n if (Array.isArray(internalValue)) {\n return (v: any) => internalValue.some(intern => this.valueComparator(intern, v))\n }\n\n return () => false\n },\n },\n\n watch: {\n internalValue: 'updateItemsState',\n items: 'updateItemsState'\n },\n\n created () {\n if (this.multiple && !Array.isArray(this.internalValue)) {\n consoleWarn('Model must be bound to an array if the multiple property is true.', this)\n }\n },\n\n methods: {\n\n genData (): object {\n return {\n class: this.classes,\n }\n },\n getValue (item: GroupableInstance, i: number): unknown {\n return item.value === undefined\n ? i\n : item.value\n },\n onClick (item: GroupableInstance) {\n this.updateInternalValue(\n this.getValue(item, this.items.indexOf(item))\n )\n },\n register (item: GroupableInstance) {\n const index = this.items.push(item) - 1\n\n // TODO!!!\n item.$on('change', () => this.onClick(item))\n\n // If no value provided and mandatory,\n // assign first registered item\n if (this.mandatory && !this.selectedValues.length) {\n this.updateMandatory()\n }\n\n this.updateItem(item, index)\n },\n unregister (item: GroupableInstance) {\n if (this.$.isUnmounted) return\n\n const index = this.items.indexOf(item)\n const value = this.getValue(item, index)\n\n this.items.splice(index, 1)\n\n const valueIndex = this.selectedValues.indexOf(value)\n\n // Items is not selected, do nothing\n if (valueIndex < 0) return\n\n // If not mandatory, use regular update process\n if (!this.mandatory) {\n return this.updateInternalValue(value)\n }\n\n // Remove the value\n if (this.multiple && Array.isArray(this.internalValue)) {\n this.internalValue = this.internalValue.filter(v => v !== value)\n } else {\n this.internalValue = undefined\n }\n\n // If mandatory and we have no selection\n // add the last item as value\n /* istanbul ignore else */\n if (!this.selectedItems.length) {\n this.updateMandatory(true)\n }\n },\n updateItem (item: GroupableInstance, index: number) {\n const value = this.getValue(item, index)\n\n item.isActive = this.toggleMethod(value)\n },\n // https://github.com/vuetifyjs/vuetify/issues/5352\n updateItemsState () {\n this.$nextTick(() => {\n if (this.mandatory &&\n !this.selectedItems.length\n ) {\n return this.updateMandatory()\n }\n\n // TODO: Make this smarter so it\n // doesn't have to iterate every\n // child in an update\n this.items.forEach(this.updateItem)\n })\n },\n updateInternalValue (value: any) {\n this.multiple\n ? this.updateMultiple(value)\n : this.updateSingle(value)\n },\n updateMandatory (last?: boolean) {\n if (!this.items.length) return\n\n const items = this.items.slice()\n\n if (last) items.reverse()\n\n const item = items.find(item => !item.disabled)\n\n // If no tabs are available\n // aborts mandatory value\n if (!item) return\n\n const index = this.items.indexOf(item)\n\n this.updateInternalValue(\n this.getValue(item, index)\n )\n },\n updateMultiple (value: any) {\n const defaultValue = Array.isArray(this.internalValue)\n ? this.internalValue\n : []\n const internalValue = defaultValue.slice()\n const index = internalValue.findIndex(val => this.valueComparator(val, value))\n\n if (\n this.mandatory &&\n // Item already exists\n index > -1 &&\n // value would be reduced below min\n internalValue.length - 1 < 1\n ) return\n\n if (\n // Max is set\n this.max != null &&\n // Item doesn't exist\n index < 0 &&\n // value would be increased above max\n internalValue.length + 1 > this.max\n ) return\n\n index > -1\n ? internalValue.splice(index, 1)\n : internalValue.push(value)\n\n this.internalValue = internalValue\n },\n updateSingle (value: any) {\n const isSame = this.valueComparator(this.internalValue, value)\n\n if (this.mandatory && isSame) return\n if (!this.allowDeselect && isSame) return\n\n this.internalValue = isSame ? undefined : value\n },\n },\n\n render (): VNode {\n const data = this.genData()\n return h(this.tag, {\n class: data.class,\n ...data.attrs,\n }, getSlot(this))\n },\n})\n\nexport default defineComponent({\n name: 'v-item-group',\n extends: BaseItemGroup,\n\n provide (): object {\n return {\n itemGroup: this,\n }\n },\n})\n"],"sourceRoot":"","file":"VItemGroup.js"}
@@ -264,7 +264,7 @@ export default baseMixins.extend({
264
264
 
265
265
  closeConditional(e) {
266
266
  const target = e.target;
267
- return this.isActive && !this._isDestroyed && this.closeOnClick && this.$refs.content && !this.$refs.content.contains(target);
267
+ return this.isActive && !this.$.isUnmounted && this.closeOnClick && this.$refs.content && !this.$refs.content.contains(target);
268
268
  },
269
269
 
270
270
  genActivatorAttributes() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VMenu/VMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, Transition, vShow, withDirectives } from 'vue'\n// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed, breaking } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData, PropType } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n contentProps: {\n type: Object as PropType<Record<string, any>>,\n default: () => ({}),\n },\n onScroll: {\n type: Function as PropType<(event: Event) => void>,\n default: undefined,\n },\n },\n\n emits: [\n 'keydown',\n 'update:modelValue',\n 'update:return-value',\n ],\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '220px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this._isDestroyed &&\n this.closeOnClick &&\n this.$refs.content &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.onKeydown = this.onKeyDown;\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return h(Transition, {\n name: this.transition\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [[\n vShow,\n this.isContentActive\n ]]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push([\n ClickOutside,\n {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n ])\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n ...this.getScopeIdAttrs(),\n ...this.contentProps,\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n class: ['v-menu__content', {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n }],\n style: this.styles,\n ref: 'content',\n onClick: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n onKeydown: this.onKeyDown,\n } as VNodeData\n\n if (this.onScroll) {\n options.onScroll = this.onScroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.onMouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.onMouseleave = this.mouseLeaveHandler\n }\n\n const directives = this.genDirectives()\n\n return withDirectives(h('div', options, this.getContentSlot()), directives)\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.disableKeys) return\n\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (): VNode {\n const data = {\n class: ['v-menu', {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }]\n }\n\n const directives = [[\n Resize,\n this.onResize,\n '500'\n ]]\n\n // console.log('vmenurender', this, this.activator, this.getActivator())\n\n return withDirectives(h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n h(VThemeProvider, {\n root: true,\n light: this.light,\n dark: this.dark,\n }, [this.genTransition()]),\n ]),\n ]), directives)\n },\n})\n"],"sourceRoot":"","file":"VMenu.js"}
1
+ {"version":3,"sources":["../../../src/components/VMenu/VMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import { h, Transition, vShow, withDirectives } from 'vue'\n// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed, breaking } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData, PropType } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n contentProps: {\n type: Object as PropType<Record<string, any>>,\n default: () => ({}),\n },\n onScroll: {\n type: Function as PropType<(event: Event) => void>,\n default: undefined,\n },\n },\n\n emits: [\n 'keydown',\n 'update:modelValue',\n 'update:return-value',\n ],\n\n data () {\n return {\n calculatedTopAuto: 0,\n defaultOffset: 8,\n hasJustFocused: false,\n listIndex: -1,\n resizeTimeout: 0,\n selectedIndex: null as null | number,\n tiles: [] as HTMLElement[],\n }\n },\n\n computed: {\n activeTile (): HTMLElement | undefined {\n return this.tiles[this.listIndex]\n },\n calculatedLeft (): string {\n const menuWidth = Math.max(this.dimensions.content.width, parseFloat(this.calculatedMinWidth))\n\n if (!this.auto) return this.calcLeft(menuWidth) || '0'\n\n return convertToUnit(this.calcXOverflow(this.calcLeftAuto(), menuWidth)) || '0'\n },\n calculatedMaxHeight (): string {\n const height = this.auto\n ? '220px'\n : convertToUnit(this.maxHeight)\n\n return height || '0'\n },\n calculatedMaxWidth (): string {\n return convertToUnit(this.maxWidth) || '0'\n },\n calculatedMinWidth (): string {\n if (this.minWidth) {\n return convertToUnit(this.minWidth) || '0'\n }\n\n const minWidth = Math.min(\n this.dimensions.activator.width +\n Number(this.nudgeWidth) +\n (this.auto ? 16 : 0),\n Math.max(this.pageWidth - 24, 0)\n )\n\n const calculatedMaxWidth = isNaN(parseInt(this.calculatedMaxWidth))\n ? minWidth\n : parseInt(this.calculatedMaxWidth)\n\n return convertToUnit(Math.min(\n calculatedMaxWidth,\n minWidth\n )) || '0'\n },\n calculatedTop (): string {\n const top = !this.auto\n ? this.calcTop()\n : convertToUnit(this.calcYOverflow(this.calculatedTopAuto))\n\n return top || '0'\n },\n hasClickableTiles (): boolean {\n return Boolean(this.tiles.find(tile => tile.tabIndex > -1))\n },\n styles (): object {\n return {\n maxHeight: this.calculatedMaxHeight,\n minWidth: this.calculatedMinWidth,\n maxWidth: this.calculatedMaxWidth,\n top: this.calculatedTop,\n left: this.calculatedLeft,\n transformOrigin: this.origin,\n zIndex: this.zIndex || this.activeZIndex,\n }\n },\n },\n\n watch: {\n isActive (val) {\n if (!val) this.listIndex = -1\n },\n isContentActive (val) {\n this.hasJustFocused = val\n },\n listIndex (next, prev) {\n if (next in this.tiles) {\n const tile = this.tiles[next]\n tile.classList.add('v-list-item--highlighted')\n const scrollTop = this.$refs.content.scrollTop\n const contentHeight = this.$refs.content.clientHeight\n\n if (scrollTop > tile.offsetTop - 8) {\n goTo(tile.offsetTop - tile.clientHeight, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n } else if (scrollTop + contentHeight < tile.offsetTop + tile.clientHeight + 8) {\n goTo(tile.offsetTop - contentHeight + tile.clientHeight * 2, {\n appOffset: false,\n duration: 300,\n container: this.$refs.content,\n })\n }\n }\n\n prev in this.tiles &&\n this.tiles[prev].classList.remove('v-list-item--highlighted')\n },\n },\n\n created () {\n const breakingProps = [\n ['value', 'modelValue'],\n ['onInput', 'onUpdate:modelValue'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n /* istanbul ignore next */\n if (this.$attrs.hasOwnProperty('full-width')) {\n removed('full-width', this)\n }\n },\n\n mounted () {\n this.isActive && this.callActivate()\n },\n\n methods: {\n activate () {\n // Update coordinates and dimensions of menu\n // and its activator\n this.updateDimensions()\n // Start the transition\n requestAnimationFrame(() => {\n // Once transitioning, calculate scroll and top position\n this.startTransition().then(() => {\n if (this.$refs.content) {\n this.calculatedTopAuto = this.calcTopAuto()\n this.auto && (this.$refs.content.scrollTop = this.calcScrollPosition())\n }\n })\n })\n },\n calcScrollPosition () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement\n const maxScrollTop = $el.scrollHeight - $el.offsetHeight\n\n return activeTile\n ? Math.min(maxScrollTop, Math.max(0, activeTile.offsetTop - $el.offsetHeight / 2 + activeTile.offsetHeight / 2))\n : $el.scrollTop\n },\n calcLeftAuto () {\n return parseInt(this.dimensions.activator.left - this.defaultOffset * 2)\n },\n calcTopAuto () {\n const $el = this.$refs.content\n const activeTile = $el.querySelector('.v-list-item--active') as HTMLElement | null\n\n if (!activeTile) {\n this.selectedIndex = null\n }\n\n if (this.offsetY || !activeTile) {\n return this.computedTop\n }\n\n this.selectedIndex = Array.from(this.tiles).indexOf(activeTile)\n\n const tileDistanceFromMenuTop = activeTile.offsetTop - this.calcScrollPosition()\n const firstTileOffsetTop = ($el.querySelector('.v-list-item') as HTMLElement).offsetTop\n\n return this.computedTop - tileDistanceFromMenuTop - firstTileOffsetTop - 1\n },\n changeListIndex (e: KeyboardEvent) {\n // For infinite scroll and autocomplete, re-evaluate children\n this.getTiles()\n\n if (!this.isActive || !this.hasClickableTiles) {\n return\n } else if (e.keyCode === keyCodes.tab) {\n this.isActive = false\n return\n } else if (e.keyCode === keyCodes.down) {\n this.nextTile()\n } else if (e.keyCode === keyCodes.up) {\n this.prevTile()\n } else if (e.keyCode === keyCodes.end) {\n this.lastTile()\n } else if (e.keyCode === keyCodes.home) {\n this.firstTile()\n } else if (e.keyCode === keyCodes.enter && this.listIndex !== -1) {\n this.tiles[this.listIndex].click()\n } else { return }\n // One of the conditions was met, prevent default action (#2988)\n e.preventDefault()\n },\n closeConditional (e: Event) {\n const target = e.target as HTMLElement\n\n return this.isActive &&\n !this.$.isUnmounted &&\n this.closeOnClick &&\n this.$refs.content &&\n !this.$refs.content.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.onKeydown = this.onKeyDown;\n }\n\n return listeners\n },\n genTransition (): VNode {\n const content = this.genContent()\n\n if (!this.transition) return content\n\n return h(Transition, {\n name: this.transition\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [[\n vShow,\n this.isContentActive\n ]]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push([\n ClickOutside,\n {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n ])\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n ...this.getScopeIdAttrs(),\n ...this.contentProps,\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n class: ['v-menu__content', {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n }],\n style: this.styles,\n ref: 'content',\n onClick: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n onKeydown: this.onKeyDown,\n } as VNodeData\n\n if (this.onScroll) {\n options.onScroll = this.onScroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.onMouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.onMouseleave = this.mouseLeaveHandler\n }\n\n const directives = this.genDirectives()\n\n return withDirectives(h('div', options, this.getContentSlot()), directives)\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.disableKeys) return\n\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (): VNode {\n const data = {\n class: ['v-menu', {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }]\n }\n\n const directives = [[\n Resize,\n this.onResize,\n '500'\n ]]\n\n // console.log('vmenurender', this, this.activator, this.getActivator())\n\n return withDirectives(h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n h(VThemeProvider, {\n root: true,\n light: this.light,\n dark: this.dark,\n }, [this.genTransition()]),\n ]),\n ]), directives)\n },\n})\n"],"sourceRoot":"","file":"VMenu.js"}
@@ -252,7 +252,7 @@ export default baseMixins.extend({
252
252
  },
253
253
 
254
254
  closeConditional() {
255
- return this.isActive && !this._isDestroyed && this.reactsToClick;
255
+ return this.isActive && !this.$.isUnmounted && this.reactsToClick;
256
256
  },
257
257
 
258
258
  genAppend() {