vuetify 2.6.2 → 2.6.5

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 (91) hide show
  1. package/dist/json/web-types.json +9 -9
  2. package/dist/vuetify.css +18 -3
  3. package/dist/vuetify.css.map +1 -1
  4. package/dist/vuetify.js +96 -95
  5. package/dist/vuetify.js.map +1 -1
  6. package/dist/vuetify.min.css +2 -2
  7. package/dist/vuetify.min.js +2 -2
  8. package/es5/components/VData/VData.js +2 -8
  9. package/es5/components/VData/VData.js.map +1 -1
  10. package/es5/components/VDialog/VDialog.js +4 -9
  11. package/es5/components/VDialog/VDialog.js.map +1 -1
  12. package/es5/components/VImg/VImg.js +6 -2
  13. package/es5/components/VImg/VImg.js.map +1 -1
  14. package/es5/components/VMenu/VMenu.js +4 -4
  15. package/es5/components/VMenu/VMenu.js.map +1 -1
  16. package/es5/components/VNavigationDrawer/VNavigationDrawer.js +1 -1
  17. package/es5/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  18. package/es5/components/VPagination/VPagination.js +2 -1
  19. package/es5/components/VPagination/VPagination.js.map +1 -1
  20. package/es5/components/VResponsive/VResponsive.js +3 -1
  21. package/es5/components/VResponsive/VResponsive.js.map +1 -1
  22. package/es5/components/VSelect/VSelect.js +53 -49
  23. package/es5/components/VSelect/VSelect.js.map +1 -1
  24. package/es5/components/VTabs/VTab.js +1 -1
  25. package/es5/components/VTabs/VTab.js.map +1 -1
  26. package/es5/components/VTooltip/VTooltip.js +1 -3
  27. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  28. package/es5/components/VTreeview/VTreeview.js +1 -1
  29. package/es5/components/VTreeview/VTreeview.js.map +1 -1
  30. package/es5/framework.js +1 -1
  31. package/es5/locale/es.js +3 -3
  32. package/es5/locale/es.js.map +1 -1
  33. package/es5/locale/fi.js +5 -5
  34. package/es5/locale/fi.js.map +1 -1
  35. package/es5/mixins/menuable/index.js +2 -1
  36. package/es5/mixins/menuable/index.js.map +1 -1
  37. package/es5/mixins/selectable/index.js +6 -4
  38. package/es5/mixins/selectable/index.js.map +1 -1
  39. package/lib/components/VData/VData.js +2 -4
  40. package/lib/components/VData/VData.js.map +1 -1
  41. package/lib/components/VDialog/VDialog.js +4 -8
  42. package/lib/components/VDialog/VDialog.js.map +1 -1
  43. package/lib/components/VImg/VImg.js +5 -2
  44. package/lib/components/VImg/VImg.js.map +1 -1
  45. package/lib/components/VMenu/VMenu.js +4 -3
  46. package/lib/components/VMenu/VMenu.js.map +1 -1
  47. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +1 -1
  48. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  49. package/lib/components/VPagination/VPagination.js +2 -1
  50. package/lib/components/VPagination/VPagination.js.map +1 -1
  51. package/lib/components/VResponsive/VResponsive.js +2 -1
  52. package/lib/components/VResponsive/VResponsive.js.map +1 -1
  53. package/lib/components/VSelect/VSelect.js +9 -7
  54. package/lib/components/VSelect/VSelect.js.map +1 -1
  55. package/lib/components/VTabs/VTab.js +1 -1
  56. package/lib/components/VTabs/VTab.js.map +1 -1
  57. package/lib/components/VTooltip/VTooltip.js +2 -3
  58. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  59. package/lib/components/VTreeview/VTreeview.js +1 -1
  60. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  61. package/lib/framework.js +1 -1
  62. package/lib/locale/es.js +3 -3
  63. package/lib/locale/es.js.map +1 -1
  64. package/lib/locale/fi.js +5 -5
  65. package/lib/locale/fi.js.map +1 -1
  66. package/lib/mixins/menuable/index.js +2 -1
  67. package/lib/mixins/menuable/index.js.map +1 -1
  68. package/lib/mixins/selectable/index.js +7 -5
  69. package/lib/mixins/selectable/index.js.map +1 -1
  70. package/package.json +4 -3
  71. package/src/components/VCalendar/VCalendarCategory.sass +9 -3
  72. package/src/components/VData/VData.ts +2 -4
  73. package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +4 -4
  74. package/src/components/VDialog/VDialog.ts +3 -6
  75. package/src/components/VDialog/__tests__/__snapshots__/VDialog.spec.ts.snap +14 -32
  76. package/src/components/VImg/VImg.ts +4 -2
  77. package/src/components/VMenu/VMenu.ts +3 -5
  78. package/src/components/VNavigationDrawer/VNavigationDrawer.ts +1 -1
  79. package/src/components/VNavigationDrawer/__tests__/VNavigationDrawer.spec.ts +1 -1
  80. package/src/components/VPagination/VPagination.ts +2 -1
  81. package/src/components/VPagination/__tests__/VPagination.spec.ts +3 -1
  82. package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +3 -3
  83. package/src/components/VResponsive/VResponsive.ts +2 -1
  84. package/src/components/VSelect/VSelect.ts +6 -8
  85. package/src/components/VTabs/VTab.ts +1 -1
  86. package/src/components/VTooltip/VTooltip.ts +1 -2
  87. package/src/components/VTreeview/VTreeview.ts +6 -1
  88. package/src/locale/es.ts +3 -3
  89. package/src/locale/fi.ts +5 -5
  90. package/src/mixins/menuable/index.ts +2 -1
  91. package/src/mixins/selectable/index.ts +6 -4
@@ -100,7 +100,8 @@ export default baseMixins.extend().extend({
100
100
  const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0;
101
101
  const minWidth = Math.max(a.width, c.width);
102
102
  let left = 0;
103
- left += this.left ? activatorLeft - (minWidth - a.width) : activatorLeft;
103
+ left += activatorLeft;
104
+ if (this.left || this.$vuetify.rtl && !this.right) left -= minWidth - a.width;
104
105
 
105
106
  if (this.offsetX) {
106
107
  const maxWidth = isNaN(Number(this.maxWidth)) ? a.width : Math.min(a.width, Number(this.maxWidth));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/menuable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Stackable from '../stackable'\nimport { factory as positionableFactory } from '../positionable'\nimport Activatable from '../activatable'\nimport Detachable from '../detachable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Stackable,\n positionableFactory(['top', 'right', 'bottom', 'left', 'absolute']),\n Activatable,\n Detachable,\n)\n\ninterface dimensions {\n top: number\n left: number\n bottom: number\n right: number\n width: number\n height: number\n offsetTop: number\n scrollHeight: number\n offsetLeft: number\n}\n\ninterface options extends ExtractVue<typeof baseMixins> {\n attach: boolean | string | Element\n offsetY: boolean\n offsetX: boolean\n dimensions: {\n activator: dimensions\n content: dimensions\n }\n $refs: {\n content: HTMLElement\n activator: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n name: 'menuable',\n\n props: {\n allowOverflow: Boolean,\n light: Boolean,\n dark: Boolean,\n maxWidth: {\n type: [Number, String],\n default: 'auto',\n },\n minWidth: [Number, String],\n nudgeBottom: {\n type: [Number, String],\n default: 0,\n },\n nudgeLeft: {\n type: [Number, String],\n default: 0,\n },\n nudgeRight: {\n type: [Number, String],\n default: 0,\n },\n nudgeTop: {\n type: [Number, String],\n default: 0,\n },\n nudgeWidth: {\n type: [Number, String],\n default: 0,\n },\n offsetOverflow: Boolean,\n positionX: {\n type: Number,\n default: null,\n },\n positionY: {\n type: Number,\n default: null,\n },\n zIndex: {\n type: [Number, String],\n default: null,\n },\n },\n\n data: () => ({\n activatorNode: [] as VNode[],\n absoluteX: 0,\n absoluteY: 0,\n activatedBy: null as EventTarget | null,\n activatorFixed: false,\n dimensions: {\n activator: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n offsetLeft: 0,\n },\n content: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n },\n },\n relativeYOffset: 0,\n hasJustFocused: false,\n hasWindow: false,\n inputActivator: false,\n isContentActive: false,\n pageWidth: 0,\n pageYOffset: 0,\n stackClass: 'v-menu__content--active',\n stackMinZIndex: 6,\n }),\n\n computed: {\n computedLeft () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0\n const minWidth = Math.max(a.width, c.width)\n let left = 0\n left += this.left ? activatorLeft - (minWidth - a.width) : activatorLeft\n if (this.offsetX) {\n const maxWidth = isNaN(Number(this.maxWidth))\n ? a.width\n : Math.min(a.width, Number(this.maxWidth))\n\n left += this.left ? -maxWidth : a.width\n }\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return left\n },\n computedTop () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n let top = 0\n\n if (this.top) top += a.height - c.height\n if (this.attach !== false) top += a.offsetTop\n else top += a.top + this.pageYOffset\n if (this.offsetY) top += this.top ? -a.height : a.height\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n return top\n },\n hasActivator (): boolean {\n return !!this.$slots.activator || !!this.$scopedSlots.activator || !!this.activator || !!this.inputActivator\n },\n absoluteYOffset (): number {\n return this.pageYOffset - this.relativeYOffset\n },\n },\n\n watch: {\n disabled (val) {\n val && this.callDeactivate()\n },\n isActive (val) {\n if (this.disabled) return\n\n val ? this.callActivate() : this.callDeactivate()\n },\n positionX: 'updateDimensions',\n positionY: 'updateDimensions',\n },\n\n beforeMount () {\n this.hasWindow = typeof window !== 'undefined'\n\n if (this.hasWindow) {\n window.addEventListener('resize', this.updateDimensions, false)\n }\n },\n\n beforeDestroy () {\n if (this.hasWindow) {\n window.removeEventListener('resize', this.updateDimensions, false)\n }\n },\n\n methods: {\n absolutePosition () {\n return {\n offsetTop: this.positionY || this.absoluteY,\n offsetLeft: this.positionX || this.absoluteX,\n scrollHeight: 0,\n top: this.positionY || this.absoluteY,\n bottom: this.positionY || this.absoluteY,\n left: this.positionX || this.absoluteX,\n right: this.positionX || this.absoluteX,\n height: 0,\n width: 0,\n }\n },\n activate () {},\n calcLeft (menuWidth: number) {\n return convertToUnit(this.attach !== false\n ? this.computedLeft\n : this.calcXOverflow(this.computedLeft, menuWidth))\n },\n calcTop () {\n return convertToUnit(this.attach !== false\n ? this.computedTop\n : this.calcYOverflow(this.computedTop))\n },\n calcXOverflow (left: number, menuWidth: number) {\n const xOverflow = left + menuWidth - this.pageWidth + 12\n\n if ((!this.left || this.right) && xOverflow > 0) {\n left = Math.max(left - xOverflow, 0)\n } else {\n left = Math.max(left, 12)\n }\n\n return left + this.getOffsetLeft()\n },\n calcYOverflow (top: number) {\n const documentHeight = this.getInnerHeight()\n const toTop = this.absoluteYOffset + documentHeight\n const activator = this.dimensions.activator\n const contentHeight = this.dimensions.content.height\n const totalHeight = top + contentHeight\n const isOverflowing = toTop < totalHeight\n\n // If overflowing bottom and offset\n // TODO: set 'bottom' position instead of 'top'\n if (isOverflowing &&\n this.offsetOverflow &&\n // If we don't have enough room to offset\n // the overflow, don't offset\n activator.top > contentHeight\n ) {\n top = this.pageYOffset + (activator.top - contentHeight)\n // If overflowing bottom\n } else if (isOverflowing && !this.allowOverflow) {\n top = toTop - contentHeight - 12\n // If overflowing top\n } else if (top < this.absoluteYOffset && !this.allowOverflow) {\n top = this.absoluteYOffset + 12\n }\n\n return top < 12 ? 12 : top\n },\n callActivate () {\n if (!this.hasWindow) return\n\n this.activate()\n },\n callDeactivate () {\n this.isContentActive = false\n\n this.deactivate()\n },\n checkForPageYOffset () {\n if (this.hasWindow) {\n this.pageYOffset = this.activatorFixed ? 0 : this.getOffsetTop()\n }\n },\n checkActivatorFixed () {\n if (this.attach !== false) return\n let el = this.getActivator()\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n this.activatorFixed = true\n return\n }\n el = el.offsetParent as HTMLElement\n }\n this.activatorFixed = false\n },\n deactivate () {},\n genActivatorListeners () {\n const listeners = Activatable.options.methods.genActivatorListeners.call(this)\n\n const onClick = listeners.click\n\n if (onClick) {\n listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => {\n if (this.openOnClick) {\n onClick && onClick(e)\n }\n\n this.absoluteX = e.clientX\n this.absoluteY = e.clientY\n }\n }\n\n return listeners\n },\n getInnerHeight () {\n if (!this.hasWindow) return 0\n\n return window.innerHeight ||\n document.documentElement.clientHeight\n },\n getOffsetLeft () {\n if (!this.hasWindow) return 0\n\n return window.pageXOffset ||\n document.documentElement.scrollLeft\n },\n getOffsetTop () {\n if (!this.hasWindow) return 0\n\n return window.pageYOffset ||\n document.documentElement.scrollTop\n },\n getRoundedBoundedClientRect (el: Element) {\n const rect = el.getBoundingClientRect()\n return {\n top: Math.round(rect.top),\n left: Math.round(rect.left),\n bottom: Math.round(rect.bottom),\n right: Math.round(rect.right),\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n }\n },\n measure (el: HTMLElement) {\n if (!el || !this.hasWindow) return null\n\n const rect = this.getRoundedBoundedClientRect(el)\n\n // Account for activator margin\n if (this.attach !== false) {\n const style = window.getComputedStyle(el)\n\n rect.left = parseInt(style.marginLeft!)\n rect.top = parseInt(style.marginTop!)\n }\n\n return rect\n },\n sneakPeek (cb: () => void) {\n requestAnimationFrame(() => {\n const el = this.$refs.content\n\n if (!el || el.style.display !== 'none') {\n cb()\n return\n }\n\n el.style.display = 'inline-block'\n cb()\n el.style.display = 'none'\n })\n },\n startTransition () {\n return new Promise<void>(resolve => requestAnimationFrame(() => {\n this.isContentActive = this.hasJustFocused = this.isActive\n resolve()\n }))\n },\n updateDimensions () {\n this.hasWindow = typeof window !== 'undefined'\n this.checkActivatorFixed()\n this.checkForPageYOffset()\n this.pageWidth = document.documentElement.clientWidth\n\n const dimensions: any = {\n activator: { ...this.dimensions.activator },\n content: { ...this.dimensions.content },\n }\n\n // Activator should already be shown\n if (!this.hasActivator || this.absolute) {\n dimensions.activator = this.absolutePosition()\n } else {\n const activator = this.getActivator()\n if (!activator) return\n\n dimensions.activator = this.measure(activator)\n dimensions.activator.offsetLeft = activator.offsetLeft\n if (this.attach !== false) {\n // account for css padding causing things to not line up\n // this is mostly for v-autocomplete, hopefully it won't break anything\n dimensions.activator.offsetTop = activator.offsetTop\n } else {\n dimensions.activator.offsetTop = 0\n }\n }\n\n // Display and hide to get dimensions\n this.sneakPeek(() => {\n if (this.$refs.content) {\n if (this.$refs.content.offsetParent) {\n const offsetRect = this.getRoundedBoundedClientRect(this.$refs.content.offsetParent)\n\n this.relativeYOffset = window.pageYOffset + offsetRect.top\n dimensions.activator.top -= this.relativeYOffset\n dimensions.activator.left -= window.pageXOffset + offsetRect.left\n }\n\n dimensions.content = this.measure(this.$refs.content)\n }\n\n this.dimensions = dimensions\n })\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/menuable/index.ts"],"names":[],"mappings":"AAAA;AACA,OAAO,SAAP,MAAsB,cAAtB;AACA,SAAS,OAAO,IAAI,mBAApB,QAA+C,iBAA/C;AACA,OAAO,WAAP,MAAwB,gBAAxB;AACA,OAAO,UAAP,MAAuB,eAAvB,C,CAEA;;AACA,OAAO,MAAP,MAAmC,mBAAnC;AACA,SAAS,aAAT,QAA8B,oBAA9B;AAKA,MAAM,UAAU,GAAG,MAAM,CACvB,SADuB,EAEvB,mBAAmB,CAAC,CAAC,KAAD,EAAQ,OAAR,EAAiB,QAAjB,EAA2B,MAA3B,EAAmC,UAAnC,CAAD,CAFI,EAGvB,WAHuB,EAIvB,UAJuB,CAAzB;AAiCA;;AACA,eAAe,UAAU,CAAC,MAAX,GAA6B,MAA7B,CAAoC;AACjD,EAAA,IAAI,EAAE,UAD2C;AAGjD,EAAA,KAAK,EAAE;AACL,IAAA,aAAa,EAAE,OADV;AAEL,IAAA,KAAK,EAAE,OAFF;AAGL,IAAA,IAAI,EAAE,OAHD;AAIL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADE;AAER,MAAA,OAAO,EAAE;AAFD,KAJL;AAQL,IAAA,QAAQ,EAAE,CAAC,MAAD,EAAS,MAAT,CARL;AASL,IAAA,WAAW,EAAE;AACX,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADK;AAEX,MAAA,OAAO,EAAE;AAFE,KATR;AAaL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADG;AAET,MAAA,OAAO,EAAE;AAFA,KAbN;AAiBL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADI;AAEV,MAAA,OAAO,EAAE;AAFC,KAjBP;AAqBL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADE;AAER,MAAA,OAAO,EAAE;AAFD,KArBL;AAyBL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADI;AAEV,MAAA,OAAO,EAAE;AAFC,KAzBP;AA6BL,IAAA,cAAc,EAAE,OA7BX;AA8BL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,MADG;AAET,MAAA,OAAO,EAAE;AAFA,KA9BN;AAkCL,IAAA,SAAS,EAAE;AACT,MAAA,IAAI,EAAE,MADG;AAET,MAAA,OAAO,EAAE;AAFA,KAlCN;AAsCL,IAAA,MAAM,EAAE;AACN,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADA;AAEN,MAAA,OAAO,EAAE;AAFH;AAtCH,GAH0C;AA+CjD,EAAA,IAAI,EAAE,OAAO;AACX,IAAA,aAAa,EAAE,EADJ;AAEX,IAAA,SAAS,EAAE,CAFA;AAGX,IAAA,SAAS,EAAE,CAHA;AAIX,IAAA,WAAW,EAAE,IAJF;AAKX,IAAA,cAAc,EAAE,KALL;AAMX,IAAA,UAAU,EAAE;AACV,MAAA,SAAS,EAAE;AACT,QAAA,GAAG,EAAE,CADI;AAET,QAAA,IAAI,EAAE,CAFG;AAGT,QAAA,MAAM,EAAE,CAHC;AAIT,QAAA,KAAK,EAAE,CAJE;AAKT,QAAA,KAAK,EAAE,CALE;AAMT,QAAA,MAAM,EAAE,CANC;AAOT,QAAA,SAAS,EAAE,CAPF;AAQT,QAAA,YAAY,EAAE,CARL;AAST,QAAA,UAAU,EAAE;AATH,OADD;AAYV,MAAA,OAAO,EAAE;AACP,QAAA,GAAG,EAAE,CADE;AAEP,QAAA,IAAI,EAAE,CAFC;AAGP,QAAA,MAAM,EAAE,CAHD;AAIP,QAAA,KAAK,EAAE,CAJA;AAKP,QAAA,KAAK,EAAE,CALA;AAMP,QAAA,MAAM,EAAE,CAND;AAOP,QAAA,SAAS,EAAE,CAPJ;AAQP,QAAA,YAAY,EAAE;AARP;AAZC,KAND;AA6BX,IAAA,eAAe,EAAE,CA7BN;AA8BX,IAAA,cAAc,EAAE,KA9BL;AA+BX,IAAA,SAAS,EAAE,KA/BA;AAgCX,IAAA,cAAc,EAAE,KAhCL;AAiCX,IAAA,eAAe,EAAE,KAjCN;AAkCX,IAAA,SAAS,EAAE,CAlCA;AAmCX,IAAA,WAAW,EAAE,CAnCF;AAoCX,IAAA,UAAU,EAAE,yBApCD;AAqCX,IAAA,cAAc,EAAE;AArCL,GAAP,CA/C2C;AAuFjD,EAAA,QAAQ,EAAE;AACR,IAAA,YAAY,GAAA;AACV,YAAM,CAAC,GAAG,KAAK,UAAL,CAAgB,SAA1B;AACA,YAAM,CAAC,GAAG,KAAK,UAAL,CAAgB,OAA1B;AACA,YAAM,aAAa,GAAG,CAAC,KAAK,MAAL,KAAgB,KAAhB,GAAwB,CAAC,CAAC,UAA1B,GAAuC,CAAC,CAAC,IAA1C,KAAmD,CAAzE;AACA,YAAM,QAAQ,GAAG,IAAI,CAAC,GAAL,CAAS,CAAC,CAAC,KAAX,EAAkB,CAAC,CAAC,KAApB,CAAjB;AACA,UAAI,IAAI,GAAG,CAAX;AACA,MAAA,IAAI,IAAI,aAAR;AACA,UAAI,KAAK,IAAL,IAAc,KAAK,QAAL,CAAc,GAAd,IAAqB,CAAC,KAAK,KAA7C,EAAqD,IAAI,IAAK,QAAQ,GAAG,CAAC,CAAC,KAAtB;;AACrD,UAAI,KAAK,OAAT,EAAkB;AAChB,cAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,QAAN,CAAP,CAAL,GACb,CAAC,CAAC,KADW,GAEb,IAAI,CAAC,GAAL,CAAS,CAAC,CAAC,KAAX,EAAkB,MAAM,CAAC,KAAK,QAAN,CAAxB,CAFJ;AAIA,QAAA,IAAI,IAAI,KAAK,IAAL,GAAY,CAAC,QAAb,GAAwB,CAAC,CAAC,KAAlC;AACD;;AACD,UAAI,KAAK,SAAT,EAAoB,IAAI,IAAI,QAAQ,CAAC,KAAK,SAAN,CAAhB;AACpB,UAAI,KAAK,UAAT,EAAqB,IAAI,IAAI,QAAQ,CAAC,KAAK,UAAN,CAAhB;AAErB,aAAO,IAAP;AACD,KApBO;;AAqBR,IAAA,WAAW,GAAA;AACT,YAAM,CAAC,GAAG,KAAK,UAAL,CAAgB,SAA1B;AACA,YAAM,CAAC,GAAG,KAAK,UAAL,CAAgB,OAA1B;AACA,UAAI,GAAG,GAAG,CAAV;AAEA,UAAI,KAAK,GAAT,EAAc,GAAG,IAAI,CAAC,CAAC,MAAF,GAAW,CAAC,CAAC,MAApB;AACd,UAAI,KAAK,MAAL,KAAgB,KAApB,EAA2B,GAAG,IAAI,CAAC,CAAC,SAAT,CAA3B,KACK,GAAG,IAAI,CAAC,CAAC,GAAF,GAAQ,KAAK,WAApB;AACL,UAAI,KAAK,OAAT,EAAkB,GAAG,IAAI,KAAK,GAAL,GAAW,CAAC,CAAC,CAAC,MAAd,GAAuB,CAAC,CAAC,MAAhC;AAClB,UAAI,KAAK,QAAT,EAAmB,GAAG,IAAI,QAAQ,CAAC,KAAK,QAAN,CAAf;AACnB,UAAI,KAAK,WAAT,EAAsB,GAAG,IAAI,QAAQ,CAAC,KAAK,WAAN,CAAf;AAEtB,aAAO,GAAP;AACD,KAlCO;;AAmCR,IAAA,YAAY,GAAA;AACV,aAAO,CAAC,CAAC,KAAK,MAAL,CAAY,SAAd,IAA2B,CAAC,CAAC,KAAK,YAAL,CAAkB,SAA/C,IAA4D,CAAC,CAAC,KAAK,SAAnE,IAAgF,CAAC,CAAC,KAAK,cAA9F;AACD,KArCO;;AAsCR,IAAA,eAAe,GAAA;AACb,aAAO,KAAK,WAAL,GAAmB,KAAK,eAA/B;AACD;;AAxCO,GAvFuC;AAkIjD,EAAA,KAAK,EAAE;AACL,IAAA,QAAQ,CAAE,GAAF,EAAK;AACX,MAAA,GAAG,IAAI,KAAK,cAAL,EAAP;AACD,KAHI;;AAIL,IAAA,QAAQ,CAAE,GAAF,EAAK;AACX,UAAI,KAAK,QAAT,EAAmB;AAEnB,MAAA,GAAG,GAAG,KAAK,YAAL,EAAH,GAAyB,KAAK,cAAL,EAA5B;AACD,KARI;;AASL,IAAA,SAAS,EAAE,kBATN;AAUL,IAAA,SAAS,EAAE;AAVN,GAlI0C;;AA+IjD,EAAA,WAAW,GAAA;AACT,SAAK,SAAL,GAAiB,OAAO,MAAP,KAAkB,WAAnC;;AAEA,QAAI,KAAK,SAAT,EAAoB;AAClB,MAAA,MAAM,CAAC,gBAAP,CAAwB,QAAxB,EAAkC,KAAK,gBAAvC,EAAyD,KAAzD;AACD;AACF,GArJgD;;AAuJjD,EAAA,aAAa,GAAA;AACX,QAAI,KAAK,SAAT,EAAoB;AAClB,MAAA,MAAM,CAAC,mBAAP,CAA2B,QAA3B,EAAqC,KAAK,gBAA1C,EAA4D,KAA5D;AACD;AACF,GA3JgD;;AA6JjD,EAAA,OAAO,EAAE;AACP,IAAA,gBAAgB,GAAA;AACd,aAAO;AACL,QAAA,SAAS,EAAE,KAAK,SAAL,IAAkB,KAAK,SAD7B;AAEL,QAAA,UAAU,EAAE,KAAK,SAAL,IAAkB,KAAK,SAF9B;AAGL,QAAA,YAAY,EAAE,CAHT;AAIL,QAAA,GAAG,EAAE,KAAK,SAAL,IAAkB,KAAK,SAJvB;AAKL,QAAA,MAAM,EAAE,KAAK,SAAL,IAAkB,KAAK,SAL1B;AAML,QAAA,IAAI,EAAE,KAAK,SAAL,IAAkB,KAAK,SANxB;AAOL,QAAA,KAAK,EAAE,KAAK,SAAL,IAAkB,KAAK,SAPzB;AAQL,QAAA,MAAM,EAAE,CARH;AASL,QAAA,KAAK,EAAE;AATF,OAAP;AAWD,KAbM;;AAcP,IAAA,QAAQ,GAAA,CAAM,CAdP;;AAeP,IAAA,QAAQ,CAAE,SAAF,EAAmB;AACzB,aAAO,aAAa,CAAC,KAAK,MAAL,KAAgB,KAAhB,GACjB,KAAK,YADY,GAEjB,KAAK,aAAL,CAAmB,KAAK,YAAxB,EAAsC,SAAtC,CAFgB,CAApB;AAGD,KAnBM;;AAoBP,IAAA,OAAO,GAAA;AACL,aAAO,aAAa,CAAC,KAAK,MAAL,KAAgB,KAAhB,GACjB,KAAK,WADY,GAEjB,KAAK,aAAL,CAAmB,KAAK,WAAxB,CAFgB,CAApB;AAGD,KAxBM;;AAyBP,IAAA,aAAa,CAAE,IAAF,EAAgB,SAAhB,EAAiC;AAC5C,YAAM,SAAS,GAAG,IAAI,GAAG,SAAP,GAAmB,KAAK,SAAxB,GAAoC,EAAtD;;AAEA,UAAI,CAAC,CAAC,KAAK,IAAN,IAAc,KAAK,KAApB,KAA8B,SAAS,GAAG,CAA9C,EAAiD;AAC/C,QAAA,IAAI,GAAG,IAAI,CAAC,GAAL,CAAS,IAAI,GAAG,SAAhB,EAA2B,CAA3B,CAAP;AACD,OAFD,MAEO;AACL,QAAA,IAAI,GAAG,IAAI,CAAC,GAAL,CAAS,IAAT,EAAe,EAAf,CAAP;AACD;;AAED,aAAO,IAAI,GAAG,KAAK,aAAL,EAAd;AACD,KAnCM;;AAoCP,IAAA,aAAa,CAAE,GAAF,EAAa;AACxB,YAAM,cAAc,GAAG,KAAK,cAAL,EAAvB;AACA,YAAM,KAAK,GAAG,KAAK,eAAL,GAAuB,cAArC;AACA,YAAM,SAAS,GAAG,KAAK,UAAL,CAAgB,SAAlC;AACA,YAAM,aAAa,GAAG,KAAK,UAAL,CAAgB,OAAhB,CAAwB,MAA9C;AACA,YAAM,WAAW,GAAG,GAAG,GAAG,aAA1B;AACA,YAAM,aAAa,GAAG,KAAK,GAAG,WAA9B,CANwB,CAQxB;AACA;;AACA,UAAI,aAAa,IACf,KAAK,cADH,IAEF;AACA;AACA,MAAA,SAAS,CAAC,GAAV,GAAgB,aAJlB,EAKE;AACA,QAAA,GAAG,GAAG,KAAK,WAAL,IAAoB,SAAS,CAAC,GAAV,GAAgB,aAApC,CAAN,CADA,CAEF;AACC,OARD,MAQO,IAAI,aAAa,IAAI,CAAC,KAAK,aAA3B,EAA0C;AAC/C,QAAA,GAAG,GAAG,KAAK,GAAG,aAAR,GAAwB,EAA9B,CAD+C,CAEjD;AACC,OAHM,MAGA,IAAI,GAAG,GAAG,KAAK,eAAX,IAA8B,CAAC,KAAK,aAAxC,EAAuD;AAC5D,QAAA,GAAG,GAAG,KAAK,eAAL,GAAuB,EAA7B;AACD;;AAED,aAAO,GAAG,GAAG,EAAN,GAAW,EAAX,GAAgB,GAAvB;AACD,KA9DM;;AA+DP,IAAA,YAAY,GAAA;AACV,UAAI,CAAC,KAAK,SAAV,EAAqB;AAErB,WAAK,QAAL;AACD,KAnEM;;AAoEP,IAAA,cAAc,GAAA;AACZ,WAAK,eAAL,GAAuB,KAAvB;AAEA,WAAK,UAAL;AACD,KAxEM;;AAyEP,IAAA,mBAAmB,GAAA;AACjB,UAAI,KAAK,SAAT,EAAoB;AAClB,aAAK,WAAL,GAAmB,KAAK,cAAL,GAAsB,CAAtB,GAA0B,KAAK,YAAL,EAA7C;AACD;AACF,KA7EM;;AA8EP,IAAA,mBAAmB,GAAA;AACjB,UAAI,KAAK,MAAL,KAAgB,KAApB,EAA2B;AAC3B,UAAI,EAAE,GAAG,KAAK,YAAL,EAAT;;AACA,aAAO,EAAP,EAAW;AACT,YAAI,MAAM,CAAC,gBAAP,CAAwB,EAAxB,EAA4B,QAA5B,KAAyC,OAA7C,EAAsD;AACpD,eAAK,cAAL,GAAsB,IAAtB;AACA;AACD;;AACD,QAAA,EAAE,GAAG,EAAE,CAAC,YAAR;AACD;;AACD,WAAK,cAAL,GAAsB,KAAtB;AACD,KAzFM;;AA0FP,IAAA,UAAU,GAAA,CAAM,CA1FT;;AA2FP,IAAA,qBAAqB,GAAA;AACnB,YAAM,SAAS,GAAG,WAAW,CAAC,OAAZ,CAAoB,OAApB,CAA4B,qBAA5B,CAAkD,IAAlD,CAAuD,IAAvD,CAAlB;AAEA,YAAM,OAAO,GAAG,SAAS,CAAC,KAA1B;;AAEA,UAAI,OAAJ,EAAa;AACX,QAAA,SAAS,CAAC,KAAV,GAAmB,CAAD,IAA+C;AAC/D,cAAI,KAAK,WAAT,EAAsB;AACpB,YAAA,OAAO,IAAI,OAAO,CAAC,CAAD,CAAlB;AACD;;AAED,eAAK,SAAL,GAAiB,CAAC,CAAC,OAAnB;AACA,eAAK,SAAL,GAAiB,CAAC,CAAC,OAAnB;AACD,SAPD;AAQD;;AAED,aAAO,SAAP;AACD,KA5GM;;AA6GP,IAAA,cAAc,GAAA;AACZ,UAAI,CAAC,KAAK,SAAV,EAAqB,OAAO,CAAP;AAErB,aAAO,MAAM,CAAC,WAAP,IACL,QAAQ,CAAC,eAAT,CAAyB,YAD3B;AAED,KAlHM;;AAmHP,IAAA,aAAa,GAAA;AACX,UAAI,CAAC,KAAK,SAAV,EAAqB,OAAO,CAAP;AAErB,aAAO,MAAM,CAAC,WAAP,IACL,QAAQ,CAAC,eAAT,CAAyB,UAD3B;AAED,KAxHM;;AAyHP,IAAA,YAAY,GAAA;AACV,UAAI,CAAC,KAAK,SAAV,EAAqB,OAAO,CAAP;AAErB,aAAO,MAAM,CAAC,WAAP,IACL,QAAQ,CAAC,eAAT,CAAyB,SAD3B;AAED,KA9HM;;AA+HP,IAAA,2BAA2B,CAAE,EAAF,EAAa;AACtC,YAAM,IAAI,GAAG,EAAE,CAAC,qBAAH,EAAb;AACA,aAAO;AACL,QAAA,GAAG,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,GAAhB,CADA;AAEL,QAAA,IAAI,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,IAAhB,CAFD;AAGL,QAAA,MAAM,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,MAAhB,CAHH;AAIL,QAAA,KAAK,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,KAAhB,CAJF;AAKL,QAAA,KAAK,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,KAAhB,CALF;AAML,QAAA,MAAM,EAAE,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,MAAhB;AANH,OAAP;AAQD,KAzIM;;AA0IP,IAAA,OAAO,CAAE,EAAF,EAAiB;AACtB,UAAI,CAAC,EAAD,IAAO,CAAC,KAAK,SAAjB,EAA4B,OAAO,IAAP;AAE5B,YAAM,IAAI,GAAG,KAAK,2BAAL,CAAiC,EAAjC,CAAb,CAHsB,CAKtB;;AACA,UAAI,KAAK,MAAL,KAAgB,KAApB,EAA2B;AACzB,cAAM,KAAK,GAAG,MAAM,CAAC,gBAAP,CAAwB,EAAxB,CAAd;AAEA,QAAA,IAAI,CAAC,IAAL,GAAY,QAAQ,CAAC,KAAK,CAAC,UAAP,CAApB;AACA,QAAA,IAAI,CAAC,GAAL,GAAW,QAAQ,CAAC,KAAK,CAAC,SAAP,CAAnB;AACD;;AAED,aAAO,IAAP;AACD,KAxJM;;AAyJP,IAAA,SAAS,CAAE,EAAF,EAAgB;AACvB,MAAA,qBAAqB,CAAC,MAAK;AACzB,cAAM,EAAE,GAAG,KAAK,KAAL,CAAW,OAAtB;;AAEA,YAAI,CAAC,EAAD,IAAO,EAAE,CAAC,KAAH,CAAS,OAAT,KAAqB,MAAhC,EAAwC;AACtC,UAAA,EAAE;AACF;AACD;;AAED,QAAA,EAAE,CAAC,KAAH,CAAS,OAAT,GAAmB,cAAnB;AACA,QAAA,EAAE;AACF,QAAA,EAAE,CAAC,KAAH,CAAS,OAAT,GAAmB,MAAnB;AACD,OAXoB,CAArB;AAYD,KAtKM;;AAuKP,IAAA,eAAe,GAAA;AACb,aAAO,IAAI,OAAJ,CAAkB,OAAO,IAAI,qBAAqB,CAAC,MAAK;AAC7D,aAAK,eAAL,GAAuB,KAAK,cAAL,GAAsB,KAAK,QAAlD;AACA,QAAA,OAAO;AACR,OAHwD,CAAlD,CAAP;AAID,KA5KM;;AA6KP,IAAA,gBAAgB,GAAA;AACd,WAAK,SAAL,GAAiB,OAAO,MAAP,KAAkB,WAAnC;AACA,WAAK,mBAAL;AACA,WAAK,mBAAL;AACA,WAAK,SAAL,GAAiB,QAAQ,CAAC,eAAT,CAAyB,WAA1C;AAEA,YAAM,UAAU,GAAQ;AACtB,QAAA,SAAS,EAAE,EAAE,GAAG,KAAK,UAAL,CAAgB;AAArB,SADW;AAEtB,QAAA,OAAO,EAAE,EAAE,GAAG,KAAK,UAAL,CAAgB;AAArB;AAFa,OAAxB,CANc,CAWd;;AACA,UAAI,CAAC,KAAK,YAAN,IAAsB,KAAK,QAA/B,EAAyC;AACvC,QAAA,UAAU,CAAC,SAAX,GAAuB,KAAK,gBAAL,EAAvB;AACD,OAFD,MAEO;AACL,cAAM,SAAS,GAAG,KAAK,YAAL,EAAlB;AACA,YAAI,CAAC,SAAL,EAAgB;AAEhB,QAAA,UAAU,CAAC,SAAX,GAAuB,KAAK,OAAL,CAAa,SAAb,CAAvB;AACA,QAAA,UAAU,CAAC,SAAX,CAAqB,UAArB,GAAkC,SAAS,CAAC,UAA5C;;AACA,YAAI,KAAK,MAAL,KAAgB,KAApB,EAA2B;AACzB;AACA;AACA,UAAA,UAAU,CAAC,SAAX,CAAqB,SAArB,GAAiC,SAAS,CAAC,SAA3C;AACD,SAJD,MAIO;AACL,UAAA,UAAU,CAAC,SAAX,CAAqB,SAArB,GAAiC,CAAjC;AACD;AACF,OA3Ba,CA6Bd;;;AACA,WAAK,SAAL,CAAe,MAAK;AAClB,YAAI,KAAK,KAAL,CAAW,OAAf,EAAwB;AACtB,cAAI,KAAK,KAAL,CAAW,OAAX,CAAmB,YAAvB,EAAqC;AACnC,kBAAM,UAAU,GAAG,KAAK,2BAAL,CAAiC,KAAK,KAAL,CAAW,OAAX,CAAmB,YAApD,CAAnB;AAEA,iBAAK,eAAL,GAAuB,MAAM,CAAC,WAAP,GAAqB,UAAU,CAAC,GAAvD;AACA,YAAA,UAAU,CAAC,SAAX,CAAqB,GAArB,IAA4B,KAAK,eAAjC;AACA,YAAA,UAAU,CAAC,SAAX,CAAqB,IAArB,IAA6B,MAAM,CAAC,WAAP,GAAqB,UAAU,CAAC,IAA7D;AACD;;AAED,UAAA,UAAU,CAAC,OAAX,GAAqB,KAAK,OAAL,CAAa,KAAK,KAAL,CAAW,OAAxB,CAArB;AACD;;AAED,aAAK,UAAL,GAAkB,UAAlB;AACD,OAdD;AAeD;;AA1NM;AA7JwC,CAApC,CAAf","sourcesContent":["// Mixins\nimport Stackable from '../stackable'\nimport { factory as positionableFactory } from '../positionable'\nimport Activatable from '../activatable'\nimport Detachable from '../detachable'\n\n// Utilities\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { convertToUnit } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n Stackable,\n positionableFactory(['top', 'right', 'bottom', 'left', 'absolute']),\n Activatable,\n Detachable,\n)\n\ninterface dimensions {\n top: number\n left: number\n bottom: number\n right: number\n width: number\n height: number\n offsetTop: number\n scrollHeight: number\n offsetLeft: number\n}\n\ninterface options extends ExtractVue<typeof baseMixins> {\n attach: boolean | string | Element\n offsetY: boolean\n offsetX: boolean\n dimensions: {\n activator: dimensions\n content: dimensions\n }\n $refs: {\n content: HTMLElement\n activator: HTMLElement\n }\n}\n\n/* @vue/component */\nexport default baseMixins.extend<options>().extend({\n name: 'menuable',\n\n props: {\n allowOverflow: Boolean,\n light: Boolean,\n dark: Boolean,\n maxWidth: {\n type: [Number, String],\n default: 'auto',\n },\n minWidth: [Number, String],\n nudgeBottom: {\n type: [Number, String],\n default: 0,\n },\n nudgeLeft: {\n type: [Number, String],\n default: 0,\n },\n nudgeRight: {\n type: [Number, String],\n default: 0,\n },\n nudgeTop: {\n type: [Number, String],\n default: 0,\n },\n nudgeWidth: {\n type: [Number, String],\n default: 0,\n },\n offsetOverflow: Boolean,\n positionX: {\n type: Number,\n default: null,\n },\n positionY: {\n type: Number,\n default: null,\n },\n zIndex: {\n type: [Number, String],\n default: null,\n },\n },\n\n data: () => ({\n activatorNode: [] as VNode[],\n absoluteX: 0,\n absoluteY: 0,\n activatedBy: null as EventTarget | null,\n activatorFixed: false,\n dimensions: {\n activator: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n offsetLeft: 0,\n },\n content: {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n width: 0,\n height: 0,\n offsetTop: 0,\n scrollHeight: 0,\n },\n },\n relativeYOffset: 0,\n hasJustFocused: false,\n hasWindow: false,\n inputActivator: false,\n isContentActive: false,\n pageWidth: 0,\n pageYOffset: 0,\n stackClass: 'v-menu__content--active',\n stackMinZIndex: 6,\n }),\n\n computed: {\n computedLeft () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n const activatorLeft = (this.attach !== false ? a.offsetLeft : a.left) || 0\n const minWidth = Math.max(a.width, c.width)\n let left = 0\n left += activatorLeft\n if (this.left || (this.$vuetify.rtl && !this.right)) left -= (minWidth - a.width)\n if (this.offsetX) {\n const maxWidth = isNaN(Number(this.maxWidth))\n ? a.width\n : Math.min(a.width, Number(this.maxWidth))\n\n left += this.left ? -maxWidth : a.width\n }\n if (this.nudgeLeft) left -= parseInt(this.nudgeLeft)\n if (this.nudgeRight) left += parseInt(this.nudgeRight)\n\n return left\n },\n computedTop () {\n const a = this.dimensions.activator\n const c = this.dimensions.content\n let top = 0\n\n if (this.top) top += a.height - c.height\n if (this.attach !== false) top += a.offsetTop\n else top += a.top + this.pageYOffset\n if (this.offsetY) top += this.top ? -a.height : a.height\n if (this.nudgeTop) top -= parseInt(this.nudgeTop)\n if (this.nudgeBottom) top += parseInt(this.nudgeBottom)\n\n return top\n },\n hasActivator (): boolean {\n return !!this.$slots.activator || !!this.$scopedSlots.activator || !!this.activator || !!this.inputActivator\n },\n absoluteYOffset (): number {\n return this.pageYOffset - this.relativeYOffset\n },\n },\n\n watch: {\n disabled (val) {\n val && this.callDeactivate()\n },\n isActive (val) {\n if (this.disabled) return\n\n val ? this.callActivate() : this.callDeactivate()\n },\n positionX: 'updateDimensions',\n positionY: 'updateDimensions',\n },\n\n beforeMount () {\n this.hasWindow = typeof window !== 'undefined'\n\n if (this.hasWindow) {\n window.addEventListener('resize', this.updateDimensions, false)\n }\n },\n\n beforeDestroy () {\n if (this.hasWindow) {\n window.removeEventListener('resize', this.updateDimensions, false)\n }\n },\n\n methods: {\n absolutePosition () {\n return {\n offsetTop: this.positionY || this.absoluteY,\n offsetLeft: this.positionX || this.absoluteX,\n scrollHeight: 0,\n top: this.positionY || this.absoluteY,\n bottom: this.positionY || this.absoluteY,\n left: this.positionX || this.absoluteX,\n right: this.positionX || this.absoluteX,\n height: 0,\n width: 0,\n }\n },\n activate () {},\n calcLeft (menuWidth: number) {\n return convertToUnit(this.attach !== false\n ? this.computedLeft\n : this.calcXOverflow(this.computedLeft, menuWidth))\n },\n calcTop () {\n return convertToUnit(this.attach !== false\n ? this.computedTop\n : this.calcYOverflow(this.computedTop))\n },\n calcXOverflow (left: number, menuWidth: number) {\n const xOverflow = left + menuWidth - this.pageWidth + 12\n\n if ((!this.left || this.right) && xOverflow > 0) {\n left = Math.max(left - xOverflow, 0)\n } else {\n left = Math.max(left, 12)\n }\n\n return left + this.getOffsetLeft()\n },\n calcYOverflow (top: number) {\n const documentHeight = this.getInnerHeight()\n const toTop = this.absoluteYOffset + documentHeight\n const activator = this.dimensions.activator\n const contentHeight = this.dimensions.content.height\n const totalHeight = top + contentHeight\n const isOverflowing = toTop < totalHeight\n\n // If overflowing bottom and offset\n // TODO: set 'bottom' position instead of 'top'\n if (isOverflowing &&\n this.offsetOverflow &&\n // If we don't have enough room to offset\n // the overflow, don't offset\n activator.top > contentHeight\n ) {\n top = this.pageYOffset + (activator.top - contentHeight)\n // If overflowing bottom\n } else if (isOverflowing && !this.allowOverflow) {\n top = toTop - contentHeight - 12\n // If overflowing top\n } else if (top < this.absoluteYOffset && !this.allowOverflow) {\n top = this.absoluteYOffset + 12\n }\n\n return top < 12 ? 12 : top\n },\n callActivate () {\n if (!this.hasWindow) return\n\n this.activate()\n },\n callDeactivate () {\n this.isContentActive = false\n\n this.deactivate()\n },\n checkForPageYOffset () {\n if (this.hasWindow) {\n this.pageYOffset = this.activatorFixed ? 0 : this.getOffsetTop()\n }\n },\n checkActivatorFixed () {\n if (this.attach !== false) return\n let el = this.getActivator()\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n this.activatorFixed = true\n return\n }\n el = el.offsetParent as HTMLElement\n }\n this.activatorFixed = false\n },\n deactivate () {},\n genActivatorListeners () {\n const listeners = Activatable.options.methods.genActivatorListeners.call(this)\n\n const onClick = listeners.click\n\n if (onClick) {\n listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => {\n if (this.openOnClick) {\n onClick && onClick(e)\n }\n\n this.absoluteX = e.clientX\n this.absoluteY = e.clientY\n }\n }\n\n return listeners\n },\n getInnerHeight () {\n if (!this.hasWindow) return 0\n\n return window.innerHeight ||\n document.documentElement.clientHeight\n },\n getOffsetLeft () {\n if (!this.hasWindow) return 0\n\n return window.pageXOffset ||\n document.documentElement.scrollLeft\n },\n getOffsetTop () {\n if (!this.hasWindow) return 0\n\n return window.pageYOffset ||\n document.documentElement.scrollTop\n },\n getRoundedBoundedClientRect (el: Element) {\n const rect = el.getBoundingClientRect()\n return {\n top: Math.round(rect.top),\n left: Math.round(rect.left),\n bottom: Math.round(rect.bottom),\n right: Math.round(rect.right),\n width: Math.round(rect.width),\n height: Math.round(rect.height),\n }\n },\n measure (el: HTMLElement) {\n if (!el || !this.hasWindow) return null\n\n const rect = this.getRoundedBoundedClientRect(el)\n\n // Account for activator margin\n if (this.attach !== false) {\n const style = window.getComputedStyle(el)\n\n rect.left = parseInt(style.marginLeft!)\n rect.top = parseInt(style.marginTop!)\n }\n\n return rect\n },\n sneakPeek (cb: () => void) {\n requestAnimationFrame(() => {\n const el = this.$refs.content\n\n if (!el || el.style.display !== 'none') {\n cb()\n return\n }\n\n el.style.display = 'inline-block'\n cb()\n el.style.display = 'none'\n })\n },\n startTransition () {\n return new Promise<void>(resolve => requestAnimationFrame(() => {\n this.isContentActive = this.hasJustFocused = this.isActive\n resolve()\n }))\n },\n updateDimensions () {\n this.hasWindow = typeof window !== 'undefined'\n this.checkActivatorFixed()\n this.checkForPageYOffset()\n this.pageWidth = document.documentElement.clientWidth\n\n const dimensions: any = {\n activator: { ...this.dimensions.activator },\n content: { ...this.dimensions.content },\n }\n\n // Activator should already be shown\n if (!this.hasActivator || this.absolute) {\n dimensions.activator = this.absolutePosition()\n } else {\n const activator = this.getActivator()\n if (!activator) return\n\n dimensions.activator = this.measure(activator)\n dimensions.activator.offsetLeft = activator.offsetLeft\n if (this.attach !== false) {\n // account for css padding causing things to not line up\n // this is mostly for v-autocomplete, hopefully it won't break anything\n dimensions.activator.offsetTop = activator.offsetTop\n } else {\n dimensions.activator.offsetTop = 0\n }\n }\n\n // Display and hide to get dimensions\n this.sneakPeek(() => {\n if (this.$refs.content) {\n if (this.$refs.content.offsetParent) {\n const offsetRect = this.getRoundedBoundedClientRect(this.$refs.content.offsetParent)\n\n this.relativeYOffset = window.pageYOffset + offsetRect.top\n dimensions.activator.top -= this.relativeYOffset\n dimensions.activator.left -= window.pageXOffset + offsetRect.left\n }\n\n dimensions.content = this.measure(this.$refs.content)\n }\n\n this.dimensions = dimensions\n })\n },\n },\n})\n"],"sourceRoot":"","file":"index.js"}
@@ -114,10 +114,6 @@ export default mixins(VInput, Rippleable, Comparable).extend({
114
114
  });
115
115
  },
116
116
 
117
- onBlur() {
118
- this.isFocused = false;
119
- },
120
-
121
117
  onClick(e) {
122
118
  this.onChange();
123
119
  this.$emit('click', e);
@@ -152,8 +148,14 @@ export default mixins(VInput, Rippleable, Comparable).extend({
152
148
  this.hasColor = input;
153
149
  },
154
150
 
155
- onFocus() {
151
+ onFocus(e) {
156
152
  this.isFocused = true;
153
+ this.$emit('focus', e);
154
+ },
155
+
156
+ onBlur(e) {
157
+ this.isFocused = false;
158
+ this.$emit('blur', e);
157
159
  },
158
160
 
159
161
  /** @abstract */
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mixins/selectable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onBlur () {\n this.isFocused = false\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus () {\n this.isFocused = true\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":"","file":"index.js"}
1
+ {"version":3,"sources":["../../../src/mixins/selectable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Components\nimport VInput from '../../components/VInput'\n\n// Mixins\nimport Rippleable from '../rippleable'\nimport Comparable from '../comparable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport function prevent (e: Event) {\n e.preventDefault()\n}\n\n/* @vue/component */\nexport default mixins(\n VInput,\n Rippleable,\n Comparable\n).extend({\n name: 'selectable',\n\n model: {\n prop: 'inputValue',\n event: 'change',\n },\n\n props: {\n id: String,\n inputValue: null as any,\n falseValue: null as any,\n trueValue: null as any,\n multiple: {\n type: Boolean,\n default: null,\n },\n label: String,\n },\n\n data () {\n return {\n hasColor: this.inputValue,\n lazyValue: this.inputValue,\n }\n },\n\n computed: {\n computedColor (): string | undefined {\n if (!this.isActive) return undefined\n if (this.color) return this.color\n if (this.isDark && !this.appIsDark) return 'white'\n return 'primary'\n },\n isMultiple (): boolean {\n return this.multiple === true || (this.multiple === null && Array.isArray(this.internalValue))\n },\n isActive (): boolean {\n const value = this.value\n const input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) return false\n\n return input.some(item => this.valueComparator(item, value))\n }\n\n if (this.trueValue === undefined || this.falseValue === undefined) {\n return value\n ? this.valueComparator(value, input)\n : Boolean(input)\n }\n\n return this.valueComparator(input, this.trueValue)\n },\n isDirty (): boolean {\n return this.isActive\n },\n rippleState (): string | undefined {\n return !this.isDisabled && !this.validationState\n ? undefined\n : this.validationState\n },\n },\n\n watch: {\n inputValue (val) {\n this.lazyValue = val\n this.hasColor = val\n },\n },\n\n methods: {\n genLabel () {\n const label = VInput.options.methods.genLabel.call(this)\n\n if (!label) return label\n\n label!.data!.on = {\n // Label shouldn't cause the input to focus\n click: prevent,\n }\n\n return label\n },\n genInput (type: string, attrs: object) {\n return this.$createElement('input', {\n attrs: Object.assign({\n 'aria-checked': this.isActive.toString(),\n disabled: this.isDisabled,\n id: this.computedId,\n role: type,\n type,\n }, attrs),\n domProps: {\n value: this.value,\n checked: this.isActive,\n },\n on: {\n blur: this.onBlur,\n change: this.onChange,\n focus: this.onFocus,\n keydown: this.onKeydown,\n click: prevent,\n },\n ref: 'input',\n })\n },\n onClick (e: Event) {\n this.onChange()\n this.$emit('click', e)\n },\n onChange () {\n if (!this.isInteractive) return\n\n const value = this.value\n let input = this.internalValue\n\n if (this.isMultiple) {\n if (!Array.isArray(input)) {\n input = []\n }\n\n const length = input.length\n\n input = input.filter((item: any) => !this.valueComparator(item, value))\n\n if (input.length === length) {\n input.push(value)\n }\n } else if (this.trueValue !== undefined && this.falseValue !== undefined) {\n input = this.valueComparator(input, this.trueValue) ? this.falseValue : this.trueValue\n } else if (value) {\n input = this.valueComparator(input, value) ? null : value\n } else {\n input = !input\n }\n\n this.validate(true, input)\n this.internalValue = input\n this.hasColor = input\n },\n onFocus (e: FocusEvent) {\n this.isFocused = true\n this.$emit('focus', e)\n },\n onBlur (e: FocusEvent) {\n this.isFocused = false\n this.$emit('blur', e)\n },\n /** @abstract */\n onKeydown (e: Event) {},\n },\n})\n"],"sourceRoot":"","file":"index.js"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vuetify",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "2.6.2",
4
+ "version": "2.6.5",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"
@@ -44,7 +44,8 @@
44
44
  "dist/",
45
45
  "lib/",
46
46
  "es5/",
47
- "types/"
47
+ "types/",
48
+ "CHANGELOG.md"
48
49
  ],
49
50
  "scripts": {
50
51
  "watch": "cross-env TARGET=development webpack --config build/config.js --progress --hide-modules --watch",
@@ -112,5 +113,5 @@
112
113
  "attributes": "dist/json/attributes.json"
113
114
  },
114
115
  "web-types": "dist/json/web-types.json",
115
- "gitHead": "35d59f42026f02920e1a89e128aa75bb90e4aaa1"
116
+ "gitHead": "ec76888ebd16e0e3bfd93e636eb6e256f65ded4c"
116
117
  }
@@ -6,6 +6,15 @@
6
6
  .v-calendar-category__column-header
7
7
  border-right: map-deep-get($material, 'calendar', 'line-color') $calendar-line-width solid
8
8
 
9
+ .v-calendar-daily__head
10
+ background: map-deep-get($material, 'calendar', 'background-color')
11
+
12
+ .v-calendar-daily__intervals-head
13
+ background: map-deep-get($material, 'calendar', 'background-color')
14
+
15
+ .v-calendar-daily__intervals-body
16
+ background: map-deep-get($material, 'calendar', 'background-color')
17
+
9
18
  .v-calendar-category
10
19
  overflow: auto
11
20
  position: relative
@@ -33,7 +42,6 @@
33
42
  min-width: 100%
34
43
  position: sticky
35
44
  top: 0
36
- background: white
37
45
  z-index: 2
38
46
 
39
47
  .v-calendar-daily_head-day
@@ -44,7 +52,6 @@
44
52
  position: sticky
45
53
  left: 0
46
54
  top: 0
47
- background: white
48
55
  z-index: 2
49
56
 
50
57
  .v-calendar-daily_head-weekday
@@ -63,7 +70,6 @@
63
70
  .v-calendar-daily__intervals-body
64
71
  position: sticky
65
72
  left: 0
66
- background: white
67
73
  z-index: 1
68
74
 
69
75
  .v-calendar-daily__interval
@@ -30,12 +30,10 @@ export default Vue.extend({
30
30
  } as PropValidator<Partial<DataOptions>>,
31
31
  sortBy: {
32
32
  type: [String, Array],
33
- default: () => [],
34
- } as PropValidator<string | string[]>,
33
+ } as PropValidator<string | string[] | undefined>,
35
34
  sortDesc: {
36
35
  type: [Boolean, Array],
37
- default: () => [],
38
- } as PropValidator<boolean | boolean[]>,
36
+ } as PropValidator<boolean | boolean[] | undefined>,
39
37
  customSort: {
40
38
  type: Function,
41
39
  default: sortItems,
@@ -8312,16 +8312,16 @@ exports[`VDataTable.ts should render with group scoped slot 1`] = `
8312
8312
  </thead>
8313
8313
  <tbody>
8314
8314
  <div>
8315
- {"group":0,"options":{"page":1,"itemsPerPage":5,"sortBy":[],"sortDesc":[],"groupBy":["protein"],"groupDesc":[false],"mustSort":false,"multiSort":false},"isMobile":true,"items":[{"name":"Jelly bean","calories":375,"fat":0,"carbs":94,"protein":0,"iron":"0%"},{"name":"Lollipop","calories":392,"fat":0.2,"carbs":98,"protein":0,"iron":"2%"}],"headers":[{"text":"Dessert (100g serving)","align":"left","sortable":false,"value":"name"},{"text":"Calories","value":"calories"},{"text":"Fat (g)","value":"fat"},{"text":"Carbs (g)","value":"carbs"},{"text":"Iron (%)","value":"iron"}]}
8315
+ {"group":0,"options":{"page":1,"itemsPerPage":5,"sortBy":[],"sortDesc":[false],"groupBy":["protein"],"groupDesc":[false],"mustSort":false,"multiSort":false},"isMobile":true,"items":[{"name":"Jelly bean","calories":375,"fat":0,"carbs":94,"protein":0,"iron":"0%"},{"name":"Lollipop","calories":392,"fat":0.2,"carbs":98,"protein":0,"iron":"2%"}],"headers":[{"text":"Dessert (100g serving)","align":"left","sortable":false,"value":"name"},{"text":"Calories","value":"calories"},{"text":"Fat (g)","value":"fat"},{"text":"Carbs (g)","value":"carbs"},{"text":"Iron (%)","value":"iron"}]}
8316
8316
  </div>
8317
8317
  <div>
8318
- {"group":3.9,"options":{"page":1,"itemsPerPage":5,"sortBy":[],"sortDesc":[],"groupBy":["protein"],"groupDesc":[false],"mustSort":false,"multiSort":false},"isMobile":true,"items":[{"name":"Gingerbread","calories":356,"fat":16,"carbs":49,"protein":3.9,"iron":"16%"}],"headers":[{"text":"Dessert (100g serving)","align":"left","sortable":false,"value":"name"},{"text":"Calories","value":"calories"},{"text":"Fat (g)","value":"fat"},{"text":"Carbs (g)","value":"carbs"},{"text":"Iron (%)","value":"iron"}]}
8318
+ {"group":3.9,"options":{"page":1,"itemsPerPage":5,"sortBy":[],"sortDesc":[false],"groupBy":["protein"],"groupDesc":[false],"mustSort":false,"multiSort":false},"isMobile":true,"items":[{"name":"Gingerbread","calories":356,"fat":16,"carbs":49,"protein":3.9,"iron":"16%"}],"headers":[{"text":"Dessert (100g serving)","align":"left","sortable":false,"value":"name"},{"text":"Calories","value":"calories"},{"text":"Fat (g)","value":"fat"},{"text":"Carbs (g)","value":"carbs"},{"text":"Iron (%)","value":"iron"}]}
8319
8319
  </div>
8320
8320
  <div>
8321
- {"group":4,"options":{"page":1,"itemsPerPage":5,"sortBy":[],"sortDesc":[],"groupBy":["protein"],"groupDesc":[false],"mustSort":false,"multiSort":false},"isMobile":true,"items":[{"name":"Frozen Yogurt","calories":159,"fat":6,"carbs":24,"protein":4,"iron":"1%","class":"test"}],"headers":[{"text":"Dessert (100g serving)","align":"left","sortable":false,"value":"name"},{"text":"Calories","value":"calories"},{"text":"Fat (g)","value":"fat"},{"text":"Carbs (g)","value":"carbs"},{"text":"Iron (%)","value":"iron"}]}
8321
+ {"group":4,"options":{"page":1,"itemsPerPage":5,"sortBy":[],"sortDesc":[false],"groupBy":["protein"],"groupDesc":[false],"mustSort":false,"multiSort":false},"isMobile":true,"items":[{"name":"Frozen Yogurt","calories":159,"fat":6,"carbs":24,"protein":4,"iron":"1%","class":"test"}],"headers":[{"text":"Dessert (100g serving)","align":"left","sortable":false,"value":"name"},{"text":"Calories","value":"calories"},{"text":"Fat (g)","value":"fat"},{"text":"Carbs (g)","value":"carbs"},{"text":"Iron (%)","value":"iron"}]}
8322
8322
  </div>
8323
8323
  <div>
8324
- {"group":4.3,"options":{"page":1,"itemsPerPage":5,"sortBy":[],"sortDesc":[],"groupBy":["protein"],"groupDesc":[false],"mustSort":false,"multiSort":false},"isMobile":true,"items":[{"name":"Ice cream sandwich","calories":237,"fat":9,"carbs":37,"protein":4.3,"iron":"1%","class":["test","second"]}],"headers":[{"text":"Dessert (100g serving)","align":"left","sortable":false,"value":"name"},{"text":"Calories","value":"calories"},{"text":"Fat (g)","value":"fat"},{"text":"Carbs (g)","value":"carbs"},{"text":"Iron (%)","value":"iron"}]}
8324
+ {"group":4.3,"options":{"page":1,"itemsPerPage":5,"sortBy":[],"sortDesc":[false],"groupBy":["protein"],"groupDesc":[false],"mustSort":false,"multiSort":false},"isMobile":true,"items":[{"name":"Ice cream sandwich","calories":237,"fat":9,"carbs":37,"protein":4.3,"iron":"1%","class":["test","second"]}],"headers":[{"text":"Dessert (100g serving)","align":"left","sortable":false,"value":"name"},{"text":"Calories","value":"calories"},{"text":"Fat (g)","value":"fat"},{"text":"Carbs (g)","value":"carbs"},{"text":"Iron (%)","value":"iron"}]}
8325
8325
  </div>
8326
8326
  </tbody>
8327
8327
  </table>
@@ -11,7 +11,6 @@ import Detachable from '../../mixins/detachable'
11
11
  import Overlayable from '../../mixins/overlayable'
12
12
  import Returnable from '../../mixins/returnable'
13
13
  import Stackable from '../../mixins/stackable'
14
- import Toggleable from '../../mixins/toggleable'
15
14
 
16
15
  // Directives
17
16
  import ClickOutside from '../../directives/click-outside'
@@ -28,13 +27,12 @@ import {
28
27
  import { VNode, VNodeData } from 'vue'
29
28
 
30
29
  const baseMixins = mixins(
31
- Activatable,
32
30
  Dependent,
33
31
  Detachable,
34
32
  Overlayable,
35
33
  Returnable,
36
34
  Stackable,
37
- Toggleable
35
+ Activatable,
38
36
  )
39
37
 
40
38
  /* @vue/component */
@@ -72,7 +70,6 @@ export default baseMixins.extend({
72
70
  activatedBy: null as EventTarget | null,
73
71
  animate: false,
74
72
  animateTimeout: -1,
75
- isActive: !!this.value,
76
73
  stackMinZIndex: 200,
77
74
  previousActiveElement: null as HTMLElement | null,
78
75
  }
@@ -253,8 +250,9 @@ export default baseMixins.extend({
253
250
  this.$createElement('div', {
254
251
  class: this.contentClasses,
255
252
  attrs: {
256
- role: 'document',
253
+ role: 'dialog',
257
254
  tabindex: this.isActive ? 0 : undefined,
255
+ 'aria-modal': this.hideOverlay ? undefined : 'true',
258
256
  ...this.getScopeIdAttrs(),
259
257
  },
260
258
  on: { keydown: this.onKeydown },
@@ -318,7 +316,6 @@ export default baseMixins.extend({
318
316
  this.attach === true ||
319
317
  this.attach === 'attach',
320
318
  },
321
- attrs: { role: 'dialog' },
322
319
  }, [
323
320
  this.genActivator(),
324
321
  this.genContent(),
@@ -1,7 +1,8 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`VDialog.ts should only set tabindex if active 1`] = `
4
- <div role="document"
4
+ <div role="dialog"
5
+ aria-modal="true"
5
6
  class="v-dialog__content"
6
7
  style="z-index: 0;"
7
8
  >
@@ -13,7 +14,8 @@ exports[`VDialog.ts should only set tabindex if active 1`] = `
13
14
  `;
14
15
 
15
16
  exports[`VDialog.ts should only set tabindex if active 2`] = `
16
- <div role="document"
17
+ <div role="dialog"
18
+ aria-modal="true"
17
19
  class="v-dialog__content v-dialog__content--active"
18
20
  style="z-index: 202; z-index: 202;"
19
21
  tabindex="0"
@@ -26,71 +28,51 @@ exports[`VDialog.ts should only set tabindex if active 2`] = `
26
28
  `;
27
29
 
28
30
  exports[`VDialog.ts should render a disabled component and match snapshot 1`] = `
29
- <div role="dialog"
30
- class="v-dialog__container"
31
- >
31
+ <div class="v-dialog__container">
32
32
  </div>
33
33
  `;
34
34
 
35
35
  exports[`VDialog.ts should render a eager component and match snapshot 1`] = `
36
- <div role="dialog"
37
- class="v-dialog__container"
38
- >
36
+ <div class="v-dialog__container">
39
37
  </div>
40
38
  `;
41
39
 
42
40
  exports[`VDialog.ts should render a fullscreen component and match snapshot 1`] = `
43
- <div role="dialog"
44
- class="v-dialog__container"
45
- >
41
+ <div class="v-dialog__container">
46
42
  </div>
47
43
  `;
48
44
 
49
45
  exports[`VDialog.ts should render a persistent component and match snapshot 1`] = `
50
- <div role="dialog"
51
- class="v-dialog__container"
52
- >
46
+ <div class="v-dialog__container">
53
47
  </div>
54
48
  `;
55
49
 
56
50
  exports[`VDialog.ts should render a scrollable component and match snapshot 1`] = `
57
- <div role="dialog"
58
- class="v-dialog__container"
59
- >
51
+ <div class="v-dialog__container">
60
52
  </div>
61
53
  `;
62
54
 
63
55
  exports[`VDialog.ts should render component and match snapshot 1`] = `
64
- <div role="dialog"
65
- class="v-dialog__container"
66
- >
56
+ <div class="v-dialog__container">
67
57
  </div>
68
58
  `;
69
59
 
70
60
  exports[`VDialog.ts should render component with custom origin and match snapshot 1`] = `
71
- <div role="dialog"
72
- class="v-dialog__container"
73
- >
61
+ <div class="v-dialog__container">
74
62
  </div>
75
63
  `;
76
64
 
77
65
  exports[`VDialog.ts should render component with custom transition and match snapshot 1`] = `
78
- <div role="dialog"
79
- class="v-dialog__container"
80
- >
66
+ <div class="v-dialog__container">
81
67
  </div>
82
68
  `;
83
69
 
84
70
  exports[`VDialog.ts should render component with custom width (max-width) and match snapshot 1`] = `
85
- <div role="dialog"
86
- class="v-dialog__container"
87
- >
71
+ <div class="v-dialog__container">
88
72
  </div>
89
73
  `;
90
74
 
91
75
  exports[`VDialog.ts should render component with custom width and match snapshot 1`] = `
92
- <div role="dialog"
93
- class="v-dialog__container"
94
- >
76
+ <div class="v-dialog__container">
95
77
  </div>
96
78
  `;
@@ -18,6 +18,7 @@ import Themeable from '../../mixins/themeable'
18
18
  import mixins from '../../util/mixins'
19
19
  import mergeData from '../../util/mergeData'
20
20
  import { consoleWarn } from '../../util/console'
21
+ import { getSlot } from '../../util/helpers'
21
22
 
22
23
  // not intended for public use, this is passed in by vuetify-loader
23
24
  export interface srcObject {
@@ -250,11 +251,12 @@ export default mixins(
250
251
  return content
251
252
  },
252
253
  __genPlaceholder (): VNode | void {
253
- if (this.$slots.placeholder) {
254
+ const slot = getSlot(this, 'placeholder')
255
+ if (slot) {
254
256
  const placeholder = this.isLoading
255
257
  ? [this.$createElement('div', {
256
258
  staticClass: 'v-image__placeholder',
257
- }, this.$slots.placeholder)]
259
+ }, slot)]
258
260
  : []
259
261
 
260
262
  if (!this.transition) return placeholder[0]
@@ -11,7 +11,6 @@ import Dependent from '../../mixins/dependent'
11
11
  import Menuable from '../../mixins/menuable'
12
12
  import Returnable from '../../mixins/returnable'
13
13
  import Roundable from '../../mixins/roundable'
14
- import Toggleable from '../../mixins/toggleable'
15
14
  import Themeable from '../../mixins/themeable'
16
15
 
17
16
  // Directives
@@ -33,11 +32,10 @@ import { VNode, VNodeDirective, VNodeData } from 'vue'
33
32
  const baseMixins = mixins(
34
33
  Dependent,
35
34
  Delayable,
36
- Menuable,
37
35
  Returnable,
38
36
  Roundable,
39
- Toggleable,
40
- Themeable
37
+ Themeable,
38
+ Menuable,
41
39
  )
42
40
 
43
41
  /* @vue/component */
@@ -399,7 +397,7 @@ export default baseMixins.extend({
399
397
  mouseLeaveHandler (e: MouseEvent) {
400
398
  // Prevent accidental re-activation
401
399
  this.runDelay('close', () => {
402
- if (this.$refs.content.contains(e.relatedTarget as HTMLElement)) return
400
+ if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return
403
401
 
404
402
  requestAnimationFrame(() => {
405
403
  this.isActive = false
@@ -444,7 +444,7 @@ export default baseMixins.extend({
444
444
  return isNaN(width) ? this.$el.clientWidth : width
445
445
  },
446
446
  updateMiniVariant (val: boolean) {
447
- if (this.miniVariant !== val) this.$emit('update:mini-variant', val)
447
+ if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val)
448
448
  },
449
449
  },
450
450
 
@@ -391,7 +391,7 @@ describe('VNavigationDrawer', () => { // eslint-disable-line max-statements
391
391
  wrapper.setProps({ expandOnHover: false })
392
392
  await wrapper.vm.$nextTick()
393
393
 
394
- expect(calls).toEqual([true, false])
394
+ expect(calls).toEqual([true])
395
395
  })
396
396
 
397
397
  it('should react to open / close from touch events', async () => {
@@ -138,7 +138,7 @@ export default mixins(
138
138
  },
139
139
  },
140
140
 
141
- mounted () {
141
+ beforeMount () {
142
142
  this.init()
143
143
  },
144
144
 
@@ -146,6 +146,7 @@ export default mixins(
146
146
  init () {
147
147
  this.selected = null
148
148
 
149
+ this.onResize()
149
150
  this.$nextTick(this.onResize)
150
151
  // TODO: Change this (f75dee3a, cbdf7caa)
151
152
  setTimeout(() => (this.selected = this.value), 100)
@@ -229,7 +229,7 @@ describe('VPagination.ts', () => {
229
229
 
230
230
  const pagination = wrapper.find(VPagination.options)
231
231
 
232
- expect(pagination.vm.maxButtons).toBe(0)
232
+ expect(pagination.vm.maxButtons).toBe(22)
233
233
 
234
234
  pagination.vm.onResize()
235
235
 
@@ -249,6 +249,8 @@ describe('VPagination.ts', () => {
249
249
  },
250
250
  })
251
251
 
252
+ wrapper.setData({ maxButtons: 4 })
253
+
252
254
  expect(wrapper.vm.items).toHaveLength(4)
253
255
 
254
256
  wrapper.setData({ maxButtons: 12 })
@@ -244,9 +244,9 @@ exports[`VPagination.ts should only render middle of range if length is big and
244
244
  </li>
245
245
  <li>
246
246
  <button type="button"
247
+ aria-current="true"
247
248
  aria-label="$vuetify.pagination.ariaLabel.currentPage"
248
249
  class="v-pagination__item v-pagination__item--active primary"
249
- aria-current="true"
250
250
  >
251
251
  50
252
252
  </button>
@@ -628,7 +628,7 @@ exports[`VPagination.ts should render component in RTL mode and match snapshot 1
628
628
  class="v-pagination__navigation"
629
629
  >
630
630
  <i aria-hidden="true"
631
- class="v-icon notranslate mdi mdi-chevron-right theme--light"
631
+ class="v-icon notranslate mdi mdi-chevron-left theme--light"
632
632
  >
633
633
  </i>
634
634
  </button>
@@ -680,7 +680,7 @@ exports[`VPagination.ts should render component in RTL mode and match snapshot 1
680
680
  class="v-pagination__navigation"
681
681
  >
682
682
  <i aria-hidden="true"
683
- class="v-icon notranslate mdi mdi-chevron-left theme--light"
683
+ class="v-icon notranslate mdi mdi-chevron-right theme--light"
684
684
  >
685
685
  </i>
686
686
  </button>
@@ -8,6 +8,7 @@ import { VNode } from 'vue'
8
8
 
9
9
  // Utils
10
10
  import mixins from '../../util/mixins'
11
+ import { getSlot } from '../../util/helpers'
11
12
 
12
13
  /* @vue/component */
13
14
  export default mixins(Measurable).extend({
@@ -42,7 +43,7 @@ export default mixins(Measurable).extend({
42
43
  return this.$createElement('div', {
43
44
  staticClass: 'v-responsive__content',
44
45
  class: this.contentClass,
45
- }, this.$slots.default)
46
+ }, getSlot(this))
46
47
  },
47
48
  },
48
49
 
@@ -257,6 +257,12 @@ export default baseMixins.extend<options>().extend({
257
257
  internalValue (val) {
258
258
  this.initialValue = val
259
259
  this.setSelectedItems()
260
+
261
+ if (this.multiple) {
262
+ this.$nextTick(() => {
263
+ this.$refs.menu?.updateDimensions()
264
+ })
265
+ }
260
266
  },
261
267
  isMenuActive (val) {
262
268
  window.setTimeout(() => this.onMenuActiveChange(val))
@@ -836,14 +842,6 @@ export default baseMixins.extend<options>().extend({
836
842
  return this.returnObject ? i : this.getValue(i)
837
843
  }))
838
844
 
839
- // When selecting multiple
840
- // adjust menu after each
841
- // selection
842
- this.$nextTick(() => {
843
- this.$refs.menu &&
844
- (this.$refs.menu as { [key: string]: any }).updateDimensions()
845
- })
846
-
847
845
  // There is no item to re-highlight
848
846
  // when selections are hidden
849
847
  if (this.hideSelected) {