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
@@ -46,16 +46,10 @@ var _default2 = _vue.default.extend({
46
46
  }
47
47
  },
48
48
  sortBy: {
49
- type: [String, Array],
50
- default: function _default() {
51
- return [];
52
- }
49
+ type: [String, Array]
53
50
  },
54
51
  sortDesc: {
55
- type: [Boolean, Array],
56
- default: function _default() {
57
- return [];
58
- }
52
+ type: [Boolean, Array]
59
53
  },
60
54
  customSort: {
61
55
  type: Function,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VData/VData.ts"],"names":[],"mappings":"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","sourcesContent":["// Helpers\nimport { wrapInArray, sortItems, deepEqual, groupItems, searchItems, fillArray } from '../../util/helpers'\nimport Vue, { VNode } from 'vue'\n\n// Types\nimport {\n DataOptions,\n DataPagination,\n DataScopeProps,\n DataSortFunction,\n DataGroupFunction,\n DataSearchFunction,\n ItemGroup,\n} from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Vue.extend({\n name: 'v-data',\n\n inheritAttrs: false,\n\n props: {\n items: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n options: {\n type: Object,\n default: () => ({}),\n } as PropValidator<Partial<DataOptions>>,\n sortBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<string | string[]>,\n sortDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator<boolean | boolean[]>,\n customSort: {\n type: Function,\n default: sortItems,\n } as PropValidator<DataSortFunction>,\n mustSort: Boolean,\n multiSort: Boolean,\n page: {\n type: Number,\n default: 1,\n },\n itemsPerPage: {\n type: Number,\n default: 10,\n },\n groupBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<string | string[]>,\n groupDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator<boolean | boolean[]>,\n customGroup: {\n type: Function,\n default: groupItems,\n } as PropValidator<DataGroupFunction>,\n locale: {\n type: String,\n default: 'en-US',\n },\n disableSort: Boolean,\n disablePagination: Boolean,\n disableFiltering: Boolean,\n search: String,\n customFilter: {\n type: Function,\n default: searchItems,\n } as PropValidator<DataSearchFunction>,\n serverItemsLength: {\n type: Number,\n default: -1,\n },\n },\n\n data () {\n let internalOptions: DataOptions = {\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n sortBy: wrapInArray(this.sortBy),\n sortDesc: wrapInArray(this.sortDesc),\n groupBy: wrapInArray(this.groupBy),\n groupDesc: wrapInArray(this.groupDesc),\n mustSort: this.mustSort,\n multiSort: this.multiSort,\n }\n\n if (this.options) {\n internalOptions = Object.assign(internalOptions, this.options)\n }\n\n const { sortBy, sortDesc, groupBy, groupDesc } = internalOptions\n const sortDiff = sortBy.length - sortDesc.length\n const groupDiff = groupBy.length - groupDesc.length\n\n if (sortDiff > 0) {\n internalOptions.sortDesc.push(...fillArray(sortDiff, false))\n }\n\n if (groupDiff > 0) {\n internalOptions.groupDesc.push(...fillArray(groupDiff, false))\n }\n\n return {\n internalOptions,\n }\n },\n\n computed: {\n itemsLength (): number {\n return this.serverItemsLength >= 0 ? this.serverItemsLength : this.filteredItems.length\n },\n pageCount (): number {\n return this.internalOptions.itemsPerPage <= 0\n ? 1\n : Math.ceil(this.itemsLength / this.internalOptions.itemsPerPage)\n },\n pageStart (): number {\n if (this.internalOptions.itemsPerPage === -1 || !this.items.length) return 0\n\n return (this.internalOptions.page - 1) * this.internalOptions.itemsPerPage\n },\n pageStop (): number {\n if (this.internalOptions.itemsPerPage === -1) return this.itemsLength\n if (!this.items.length) return 0\n\n return Math.min(this.itemsLength, this.internalOptions.page * this.internalOptions.itemsPerPage)\n },\n isGrouped (): boolean {\n return !!this.internalOptions.groupBy.length\n },\n pagination (): DataPagination {\n return {\n page: this.internalOptions.page,\n itemsPerPage: this.internalOptions.itemsPerPage,\n pageStart: this.pageStart,\n pageStop: this.pageStop,\n pageCount: this.pageCount,\n itemsLength: this.itemsLength,\n }\n },\n filteredItems (): any[] {\n let items = this.items.slice()\n\n if (!this.disableFiltering && this.serverItemsLength <= 0) {\n items = this.customFilter(items, this.search)\n }\n\n return items\n },\n computedItems (): any[] {\n let items = this.filteredItems.slice()\n\n if ((!this.disableSort || this.internalOptions.groupBy.length) && this.serverItemsLength <= 0) {\n items = this.sortItems(items)\n }\n\n if (!this.disablePagination && this.serverItemsLength <= 0) {\n items = this.paginateItems(items)\n }\n\n return items\n },\n groupedItems (): ItemGroup<any>[] | null {\n return this.isGrouped ? this.groupItems(this.computedItems) : null\n },\n scopedProps (): DataScopeProps {\n return {\n sort: this.sort,\n sortArray: this.sortArray,\n group: this.group,\n items: this.computedItems,\n options: this.internalOptions,\n updateOptions: this.updateOptions,\n pagination: this.pagination,\n groupedItems: this.groupedItems,\n originalItemsLength: this.items.length,\n }\n },\n computedOptions (): DataOptions {\n return { ...this.options } as DataOptions\n },\n },\n\n watch: {\n computedOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n\n this.updateOptions(options)\n },\n deep: true,\n immediate: true,\n },\n internalOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n this.$emit('update:options', options)\n },\n deep: true,\n immediate: true,\n },\n page (page: number) {\n this.updateOptions({ page })\n },\n 'internalOptions.page' (page: number) {\n this.$emit('update:page', page)\n },\n itemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage })\n },\n 'internalOptions.itemsPerPage' (itemsPerPage: number) {\n this.$emit('update:items-per-page', itemsPerPage)\n },\n sortBy (sortBy: string | string[]) {\n this.updateOptions({ sortBy: wrapInArray(sortBy) })\n },\n 'internalOptions.sortBy' (sortBy: string[], old: string[]) {\n !deepEqual(sortBy, old) && this.$emit('update:sort-by', Array.isArray(this.sortBy) ? sortBy : sortBy[0])\n },\n sortDesc (sortDesc: boolean | boolean[]) {\n this.updateOptions({ sortDesc: wrapInArray(sortDesc) })\n },\n 'internalOptions.sortDesc' (sortDesc: boolean[], old: boolean[]) {\n !deepEqual(sortDesc, old) && this.$emit('update:sort-desc', Array.isArray(this.sortDesc) ? sortDesc : sortDesc[0])\n },\n groupBy (groupBy: string | string[]) {\n this.updateOptions({ groupBy: wrapInArray(groupBy) })\n },\n 'internalOptions.groupBy' (groupBy: string[], old: string[]) {\n !deepEqual(groupBy, old) && this.$emit('update:group-by', Array.isArray(this.groupBy) ? groupBy : groupBy[0])\n },\n groupDesc (groupDesc: boolean | boolean[]) {\n this.updateOptions({ groupDesc: wrapInArray(groupDesc) })\n },\n 'internalOptions.groupDesc' (groupDesc: boolean[], old: boolean[]) {\n !deepEqual(groupDesc, old) && this.$emit('update:group-desc', Array.isArray(this.groupDesc) ? groupDesc : groupDesc[0])\n },\n multiSort (multiSort: boolean) {\n this.updateOptions({ multiSort })\n },\n 'internalOptions.multiSort' (multiSort: boolean) {\n this.$emit('update:multi-sort', multiSort)\n },\n mustSort (mustSort: boolean) {\n this.updateOptions({ mustSort })\n },\n 'internalOptions.mustSort' (mustSort: boolean) {\n this.$emit('update:must-sort', mustSort)\n },\n pageCount: {\n handler (pageCount: number) {\n this.$emit('page-count', pageCount)\n },\n immediate: true,\n },\n computedItems: {\n handler (computedItems: any[]) {\n this.$emit('current-items', computedItems)\n },\n immediate: true,\n },\n pagination: {\n handler (pagination: DataPagination, old: DataPagination) {\n if (deepEqual(pagination, old)) return\n this.$emit('pagination', this.pagination)\n },\n immediate: true,\n },\n },\n\n methods: {\n toggle (key: string, oldBy: string[], oldDesc: boolean[], page: number, mustSort: boolean, multiSort: boolean) {\n let by = oldBy.slice()\n let desc = oldDesc.slice()\n const byIndex = by.findIndex((k: string) => k === key)\n\n if (byIndex < 0) {\n if (!multiSort) {\n by = []\n desc = []\n }\n\n by.push(key)\n desc.push(false)\n } else if (byIndex >= 0 && !desc[byIndex]) {\n desc[byIndex] = true\n } else if (!mustSort) {\n by.splice(byIndex, 1)\n desc.splice(byIndex, 1)\n } else {\n desc[byIndex] = false\n }\n\n // Reset page to 1 if sortBy or sortDesc have changed\n if (!deepEqual(by, oldBy) || !deepEqual(desc, oldDesc)) {\n page = 1\n }\n\n return { by, desc, page }\n },\n group (key: string): void {\n const { by: groupBy, desc: groupDesc, page } = this.toggle(\n key,\n this.internalOptions.groupBy,\n this.internalOptions.groupDesc,\n this.internalOptions.page,\n true,\n false\n )\n this.updateOptions({ groupBy, groupDesc, page })\n },\n sort (key: string | string[]): void {\n if (Array.isArray(key)) return this.sortArray(key)\n\n const { by: sortBy, desc: sortDesc, page } = this.toggle(\n key,\n this.internalOptions.sortBy,\n this.internalOptions.sortDesc,\n this.internalOptions.page,\n this.internalOptions.mustSort,\n this.internalOptions.multiSort\n )\n this.updateOptions({ sortBy, sortDesc, page })\n },\n sortArray (sortBy: string[]) {\n const sortDesc = sortBy.map(s => {\n const i = this.internalOptions.sortBy.findIndex((k: string) => k === s)\n return i > -1 ? this.internalOptions.sortDesc[i] : false\n })\n\n this.updateOptions({ sortBy, sortDesc })\n },\n updateOptions (options: any) {\n this.internalOptions = {\n ...this.internalOptions,\n ...options,\n page: this.serverItemsLength < 0\n ? Math.max(1, Math.min(options.page || this.internalOptions.page, this.pageCount))\n : options.page || this.internalOptions.page,\n }\n },\n sortItems (items: any[]): any[] {\n let sortBy: string[] = []\n let sortDesc: boolean[] = []\n\n if (!this.disableSort) {\n sortBy = this.internalOptions.sortBy\n sortDesc = this.internalOptions.sortDesc\n }\n\n if (this.internalOptions.groupBy.length) {\n sortBy = [...this.internalOptions.groupBy, ...sortBy]\n sortDesc = [...this.internalOptions.groupDesc, ...sortDesc]\n }\n\n return this.customSort(items, sortBy, sortDesc, this.locale)\n },\n groupItems (items: any[]): ItemGroup<any>[] {\n return this.customGroup(items, this.internalOptions.groupBy, this.internalOptions.groupDesc)\n },\n paginateItems (items: any[]): any[] {\n // Make sure we don't try to display non-existant page if items suddenly change\n // TODO: Could possibly move this to pageStart/pageStop?\n if (this.serverItemsLength === -1 && items.length <= this.pageStart) {\n this.internalOptions.page = Math.max(1, Math.ceil(items.length / this.internalOptions.itemsPerPage)) || 1 // Prevent NaN\n }\n\n return items.slice(this.pageStart, this.pageStop)\n },\n },\n\n render (): VNode {\n return this.$scopedSlots.default && this.$scopedSlots.default(this.scopedProps) as any\n },\n})\n"],"sourceRoot":"","file":"VData.js"}
1
+ {"version":3,"sources":["../../../src/components/VData/VData.ts"],"names":[],"mappings":"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","sourcesContent":["// Helpers\nimport { wrapInArray, sortItems, deepEqual, groupItems, searchItems, fillArray } from '../../util/helpers'\nimport Vue, { VNode } from 'vue'\n\n// Types\nimport {\n DataOptions,\n DataPagination,\n DataScopeProps,\n DataSortFunction,\n DataGroupFunction,\n DataSearchFunction,\n ItemGroup,\n} from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Vue.extend({\n name: 'v-data',\n\n inheritAttrs: false,\n\n props: {\n items: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\n options: {\n type: Object,\n default: () => ({}),\n } as PropValidator<Partial<DataOptions>>,\n sortBy: {\n type: [String, Array],\n } as PropValidator<string | string[] | undefined>,\n sortDesc: {\n type: [Boolean, Array],\n } as PropValidator<boolean | boolean[] | undefined>,\n customSort: {\n type: Function,\n default: sortItems,\n } as PropValidator<DataSortFunction>,\n mustSort: Boolean,\n multiSort: Boolean,\n page: {\n type: Number,\n default: 1,\n },\n itemsPerPage: {\n type: Number,\n default: 10,\n },\n groupBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator<string | string[]>,\n groupDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator<boolean | boolean[]>,\n customGroup: {\n type: Function,\n default: groupItems,\n } as PropValidator<DataGroupFunction>,\n locale: {\n type: String,\n default: 'en-US',\n },\n disableSort: Boolean,\n disablePagination: Boolean,\n disableFiltering: Boolean,\n search: String,\n customFilter: {\n type: Function,\n default: searchItems,\n } as PropValidator<DataSearchFunction>,\n serverItemsLength: {\n type: Number,\n default: -1,\n },\n },\n\n data () {\n let internalOptions: DataOptions = {\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n sortBy: wrapInArray(this.sortBy),\n sortDesc: wrapInArray(this.sortDesc),\n groupBy: wrapInArray(this.groupBy),\n groupDesc: wrapInArray(this.groupDesc),\n mustSort: this.mustSort,\n multiSort: this.multiSort,\n }\n\n if (this.options) {\n internalOptions = Object.assign(internalOptions, this.options)\n }\n\n const { sortBy, sortDesc, groupBy, groupDesc } = internalOptions\n const sortDiff = sortBy.length - sortDesc.length\n const groupDiff = groupBy.length - groupDesc.length\n\n if (sortDiff > 0) {\n internalOptions.sortDesc.push(...fillArray(sortDiff, false))\n }\n\n if (groupDiff > 0) {\n internalOptions.groupDesc.push(...fillArray(groupDiff, false))\n }\n\n return {\n internalOptions,\n }\n },\n\n computed: {\n itemsLength (): number {\n return this.serverItemsLength >= 0 ? this.serverItemsLength : this.filteredItems.length\n },\n pageCount (): number {\n return this.internalOptions.itemsPerPage <= 0\n ? 1\n : Math.ceil(this.itemsLength / this.internalOptions.itemsPerPage)\n },\n pageStart (): number {\n if (this.internalOptions.itemsPerPage === -1 || !this.items.length) return 0\n\n return (this.internalOptions.page - 1) * this.internalOptions.itemsPerPage\n },\n pageStop (): number {\n if (this.internalOptions.itemsPerPage === -1) return this.itemsLength\n if (!this.items.length) return 0\n\n return Math.min(this.itemsLength, this.internalOptions.page * this.internalOptions.itemsPerPage)\n },\n isGrouped (): boolean {\n return !!this.internalOptions.groupBy.length\n },\n pagination (): DataPagination {\n return {\n page: this.internalOptions.page,\n itemsPerPage: this.internalOptions.itemsPerPage,\n pageStart: this.pageStart,\n pageStop: this.pageStop,\n pageCount: this.pageCount,\n itemsLength: this.itemsLength,\n }\n },\n filteredItems (): any[] {\n let items = this.items.slice()\n\n if (!this.disableFiltering && this.serverItemsLength <= 0) {\n items = this.customFilter(items, this.search)\n }\n\n return items\n },\n computedItems (): any[] {\n let items = this.filteredItems.slice()\n\n if ((!this.disableSort || this.internalOptions.groupBy.length) && this.serverItemsLength <= 0) {\n items = this.sortItems(items)\n }\n\n if (!this.disablePagination && this.serverItemsLength <= 0) {\n items = this.paginateItems(items)\n }\n\n return items\n },\n groupedItems (): ItemGroup<any>[] | null {\n return this.isGrouped ? this.groupItems(this.computedItems) : null\n },\n scopedProps (): DataScopeProps {\n return {\n sort: this.sort,\n sortArray: this.sortArray,\n group: this.group,\n items: this.computedItems,\n options: this.internalOptions,\n updateOptions: this.updateOptions,\n pagination: this.pagination,\n groupedItems: this.groupedItems,\n originalItemsLength: this.items.length,\n }\n },\n computedOptions (): DataOptions {\n return { ...this.options } as DataOptions\n },\n },\n\n watch: {\n computedOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n\n this.updateOptions(options)\n },\n deep: true,\n immediate: true,\n },\n internalOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n this.$emit('update:options', options)\n },\n deep: true,\n immediate: true,\n },\n page (page: number) {\n this.updateOptions({ page })\n },\n 'internalOptions.page' (page: number) {\n this.$emit('update:page', page)\n },\n itemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage })\n },\n 'internalOptions.itemsPerPage' (itemsPerPage: number) {\n this.$emit('update:items-per-page', itemsPerPage)\n },\n sortBy (sortBy: string | string[]) {\n this.updateOptions({ sortBy: wrapInArray(sortBy) })\n },\n 'internalOptions.sortBy' (sortBy: string[], old: string[]) {\n !deepEqual(sortBy, old) && this.$emit('update:sort-by', Array.isArray(this.sortBy) ? sortBy : sortBy[0])\n },\n sortDesc (sortDesc: boolean | boolean[]) {\n this.updateOptions({ sortDesc: wrapInArray(sortDesc) })\n },\n 'internalOptions.sortDesc' (sortDesc: boolean[], old: boolean[]) {\n !deepEqual(sortDesc, old) && this.$emit('update:sort-desc', Array.isArray(this.sortDesc) ? sortDesc : sortDesc[0])\n },\n groupBy (groupBy: string | string[]) {\n this.updateOptions({ groupBy: wrapInArray(groupBy) })\n },\n 'internalOptions.groupBy' (groupBy: string[], old: string[]) {\n !deepEqual(groupBy, old) && this.$emit('update:group-by', Array.isArray(this.groupBy) ? groupBy : groupBy[0])\n },\n groupDesc (groupDesc: boolean | boolean[]) {\n this.updateOptions({ groupDesc: wrapInArray(groupDesc) })\n },\n 'internalOptions.groupDesc' (groupDesc: boolean[], old: boolean[]) {\n !deepEqual(groupDesc, old) && this.$emit('update:group-desc', Array.isArray(this.groupDesc) ? groupDesc : groupDesc[0])\n },\n multiSort (multiSort: boolean) {\n this.updateOptions({ multiSort })\n },\n 'internalOptions.multiSort' (multiSort: boolean) {\n this.$emit('update:multi-sort', multiSort)\n },\n mustSort (mustSort: boolean) {\n this.updateOptions({ mustSort })\n },\n 'internalOptions.mustSort' (mustSort: boolean) {\n this.$emit('update:must-sort', mustSort)\n },\n pageCount: {\n handler (pageCount: number) {\n this.$emit('page-count', pageCount)\n },\n immediate: true,\n },\n computedItems: {\n handler (computedItems: any[]) {\n this.$emit('current-items', computedItems)\n },\n immediate: true,\n },\n pagination: {\n handler (pagination: DataPagination, old: DataPagination) {\n if (deepEqual(pagination, old)) return\n this.$emit('pagination', this.pagination)\n },\n immediate: true,\n },\n },\n\n methods: {\n toggle (key: string, oldBy: string[], oldDesc: boolean[], page: number, mustSort: boolean, multiSort: boolean) {\n let by = oldBy.slice()\n let desc = oldDesc.slice()\n const byIndex = by.findIndex((k: string) => k === key)\n\n if (byIndex < 0) {\n if (!multiSort) {\n by = []\n desc = []\n }\n\n by.push(key)\n desc.push(false)\n } else if (byIndex >= 0 && !desc[byIndex]) {\n desc[byIndex] = true\n } else if (!mustSort) {\n by.splice(byIndex, 1)\n desc.splice(byIndex, 1)\n } else {\n desc[byIndex] = false\n }\n\n // Reset page to 1 if sortBy or sortDesc have changed\n if (!deepEqual(by, oldBy) || !deepEqual(desc, oldDesc)) {\n page = 1\n }\n\n return { by, desc, page }\n },\n group (key: string): void {\n const { by: groupBy, desc: groupDesc, page } = this.toggle(\n key,\n this.internalOptions.groupBy,\n this.internalOptions.groupDesc,\n this.internalOptions.page,\n true,\n false\n )\n this.updateOptions({ groupBy, groupDesc, page })\n },\n sort (key: string | string[]): void {\n if (Array.isArray(key)) return this.sortArray(key)\n\n const { by: sortBy, desc: sortDesc, page } = this.toggle(\n key,\n this.internalOptions.sortBy,\n this.internalOptions.sortDesc,\n this.internalOptions.page,\n this.internalOptions.mustSort,\n this.internalOptions.multiSort\n )\n this.updateOptions({ sortBy, sortDesc, page })\n },\n sortArray (sortBy: string[]) {\n const sortDesc = sortBy.map(s => {\n const i = this.internalOptions.sortBy.findIndex((k: string) => k === s)\n return i > -1 ? this.internalOptions.sortDesc[i] : false\n })\n\n this.updateOptions({ sortBy, sortDesc })\n },\n updateOptions (options: any) {\n this.internalOptions = {\n ...this.internalOptions,\n ...options,\n page: this.serverItemsLength < 0\n ? Math.max(1, Math.min(options.page || this.internalOptions.page, this.pageCount))\n : options.page || this.internalOptions.page,\n }\n },\n sortItems (items: any[]): any[] {\n let sortBy: string[] = []\n let sortDesc: boolean[] = []\n\n if (!this.disableSort) {\n sortBy = this.internalOptions.sortBy\n sortDesc = this.internalOptions.sortDesc\n }\n\n if (this.internalOptions.groupBy.length) {\n sortBy = [...this.internalOptions.groupBy, ...sortBy]\n sortDesc = [...this.internalOptions.groupDesc, ...sortDesc]\n }\n\n return this.customSort(items, sortBy, sortDesc, this.locale)\n },\n groupItems (items: any[]): ItemGroup<any>[] {\n return this.customGroup(items, this.internalOptions.groupBy, this.internalOptions.groupDesc)\n },\n paginateItems (items: any[]): any[] {\n // Make sure we don't try to display non-existant page if items suddenly change\n // TODO: Could possibly move this to pageStart/pageStop?\n if (this.serverItemsLength === -1 && items.length <= this.pageStart) {\n this.internalOptions.page = Math.max(1, Math.ceil(items.length / this.internalOptions.itemsPerPage)) || 1 // Prevent NaN\n }\n\n return items.slice(this.pageStart, this.pageStop)\n },\n },\n\n render (): VNode {\n return this.$scopedSlots.default && this.$scopedSlots.default(this.scopedProps) as any\n },\n})\n"],"sourceRoot":"","file":"VData.js"}
@@ -21,8 +21,6 @@ var _returnable = _interopRequireDefault(require("../../mixins/returnable"));
21
21
 
22
22
  var _stackable = _interopRequireDefault(require("../../mixins/stackable"));
23
23
 
24
- var _toggleable = _interopRequireDefault(require("../../mixins/toggleable"));
25
-
26
24
  var _clickOutside = _interopRequireDefault(require("../../directives/click-outside"));
27
25
 
28
26
  var _mixins = _interopRequireDefault(require("../../util/mixins"));
@@ -51,7 +49,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
51
49
 
52
50
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
53
51
 
54
- var baseMixins = (0, _mixins.default)(_activatable.default, _dependent.default, _detachable.default, _overlayable.default, _returnable.default, _stackable.default, _toggleable.default);
52
+ var baseMixins = (0, _mixins.default)(_dependent.default, _detachable.default, _overlayable.default, _returnable.default, _stackable.default, _activatable.default);
55
53
  /* @vue/component */
56
54
 
57
55
  var _default = baseMixins.extend({
@@ -87,7 +85,6 @@ var _default = baseMixins.extend({
87
85
  activatedBy: null,
88
86
  animate: false,
89
87
  animateTimeout: -1,
90
- isActive: !!this.value,
91
88
  stackMinZIndex: 200,
92
89
  previousActiveElement: null
93
90
  };
@@ -264,8 +261,9 @@ var _default = baseMixins.extend({
264
261
  }, [_this4.$createElement('div', {
265
262
  class: _this4.contentClasses,
266
263
  attrs: _objectSpread({
267
- role: 'document',
268
- tabindex: _this4.isActive ? 0 : undefined
264
+ role: 'dialog',
265
+ tabindex: _this4.isActive ? 0 : undefined,
266
+ 'aria-modal': _this4.hideOverlay ? undefined : 'true'
269
267
  }, _this4.getScopeIdAttrs()),
270
268
  on: {
271
269
  keydown: _this4.onKeydown
@@ -323,9 +321,6 @@ var _default = baseMixins.extend({
323
321
  staticClass: 'v-dialog__container',
324
322
  class: {
325
323
  'v-dialog__container--attached': this.attach === '' || this.attach === true || this.attach === 'attach'
326
- },
327
- attrs: {
328
- role: 'dialog'
329
324
  }
330
325
  }, [this.genActivator(), this.genContent()]);
331
326
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VDialog/VDialog.ts"],"names":[],"mappings":"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","sourcesContent":["// 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'\nimport Toggleable from '../../mixins/toggleable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { removed } 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 Activatable,\n Dependent,\n Detachable,\n Overlayable,\n Returnable,\n Stackable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-dialog',\n\n directives: { ClickOutside },\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 data () {\n return {\n activatedBy: null as EventTarget | null,\n animate: false,\n animateTimeout: -1,\n isActive: !!this.value,\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.$scopedSlots.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 /* 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 beforeDestroy () {\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.options.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.content.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.content.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 // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.content.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.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'document',\n tabindex: this.isActive ? 0 : undefined,\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: 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 this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\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 this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\n 'v-dialog__container--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n attrs: { role: 'dialog' },\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":["// 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 } 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 directives: { ClickOutside },\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 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.$scopedSlots.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 /* 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 beforeDestroy () {\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.options.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.content.contains(document.activeElement)) {\n this.previousActiveElement = document.activeElement as HTMLElement\n this.$refs.content.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 // It isn't the document or the dialog body\n ![document, this.$refs.content].includes(target) &&\n // It isn't inside the dialog body\n !this.$refs.content.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.content.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])')\n const el = [...focusable].find(el => !el.hasAttribute('disabled')) as HTMLElement | undefined\n el && el.focus()\n }\n },\n genContent () {\n return this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [\n this.$createElement('div', {\n class: this.contentClasses,\n attrs: {\n role: 'dialog',\n tabindex: this.isActive ? 0 : undefined,\n 'aria-modal': this.hideOverlay ? undefined : 'true',\n ...this.getScopeIdAttrs(),\n },\n on: { keydown: 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 this.$createElement('transition', {\n props: {\n name: this.transition,\n origin: this.origin,\n appear: true,\n },\n }, [content])\n },\n genInnerContent () {\n const data: VNodeData = {\n class: this.classes,\n ref: 'dialog',\n directives: [\n {\n name: 'click-outside',\n value: {\n handler: this.onClickOutside,\n closeConditional: this.closeConditional,\n include: this.getOpenDependentElements,\n },\n },\n { name: 'show', value: this.isActive },\n ],\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 this.$createElement('div', data, this.getContentSlot())\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-dialog__container',\n class: {\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"}
@@ -19,6 +19,8 @@ var _mergeData = _interopRequireDefault(require("../../util/mergeData"));
19
19
 
20
20
  var _console = require("../../util/console");
21
21
 
22
+ var _helpers = require("../../util/helpers");
23
+
22
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
25
 
24
26
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -229,10 +231,12 @@ var _default2 = (0, _mixins.default)(_VResponsive.default, _themeable.default).e
229
231
  return content;
230
232
  },
231
233
  __genPlaceholder: function __genPlaceholder() {
232
- if (this.$slots.placeholder) {
234
+ var slot = (0, _helpers.getSlot)(this, 'placeholder');
235
+
236
+ if (slot) {
233
237
  var placeholder = this.isLoading ? [this.$createElement('div', {
234
238
  staticClass: 'v-image__placeholder'
235
- }, this.$slots.placeholder)] : [];
239
+ }, slot)] : [];
236
240
  if (!this.transition) return placeholder[0];
237
241
  return this.$createElement('transition', {
238
242
  props: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VImg/VImg.ts"],"names":[],"mappings":"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","sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator<IntersectionObserverInit>,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator<string | srcObject>,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n if (this.$slots.placeholder) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, this.$slots.placeholder)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n"],"sourceRoot":"","file":"VImg.js"}
1
+ {"version":3,"sources":["../../../src/components/VImg/VImg.ts"],"names":[],"mappings":";;;;;;;AACA;;AAGA;;AAOA;;AAGA;;AAGA;;AACA;;AACA;;AACA;;;;;;AAUA,IAAM,YAAY,GAAG,OAAO,MAAP,KAAkB,WAAlB,IAAiC,0BAA0B,MAAhF;AAEA;;gBACe,qBACb,oBADa,EAEb,kBAFa,EAGb,MAHa,CAGN;AACP,EAAA,IAAI,EAAE,OADC;AAGP,EAAA,UAAU,EAAE;AAAE,IAAA,SAAS,EAAT;AAAF,GAHL;AAKP,EAAA,KAAK,EAAE;AACL,IAAA,GAAG,EAAE,MADA;AAEL,IAAA,OAAO,EAAE,OAFJ;AAGL,IAAA,KAAK,EAAE,OAHF;AAIL,IAAA,QAAQ,EAAE,MAJL;AAKL,IAAA,OAAO,EAAE,MALJ;AAML,IAAA,OAAO,EAAE;AACP,MAAA,IAAI,EAAE,MADC;AAEP;AACA;AACA,MAAA,OAAO,EAAE;AAAA,eAAO;AACd,UAAA,IAAI,EAAE,SADQ;AAEd,UAAA,UAAU,EAAE,SAFE;AAGd,UAAA,SAAS,EAAE;AAHG,SAAP;AAAA;AAJF,KANJ;AAgBL,IAAA,QAAQ,EAAE;AACR,MAAA,IAAI,EAAE,MADE;AAER,MAAA,OAAO,EAAE;AAFD,KAhBL;AAoBL,IAAA,KAAK,EAAE,MApBF;AAqBL,IAAA,GAAG,EAAE;AACH,MAAA,IAAI,EAAE,CAAC,MAAD,EAAS,MAAT,CADH;AAEH,MAAA,OAAO,EAAE;AAFN,KArBA;AAyBL,IAAA,MAAM,EAAE,MAzBH;AA0BL,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,CAAC,OAAD,EAAU,MAAV,CADI;AAEV,MAAA,OAAO,EAAE;AAFC;AA1BP,GALA;AAqCP,EAAA,IArCO,kBAqCH;AACF,WAAO;AACL,MAAA,UAAU,EAAE,EADP;AAEL,MAAA,KAAK,EAAE,IAFF;AAGL,MAAA,SAAS,EAAE,IAHN;AAIL,MAAA,qBAAqB,EAAE,SAJlB;AAKL,MAAA,YAAY,EAAE,SALT;AAML,MAAA,QAAQ,EAAE;AANL,KAAP;AAQD,GA9CM;AAgDP,EAAA,QAAQ,EAAE;AACR,IAAA,mBADQ,iCACW;AACjB,aAAO,MAAM,CAAC,KAAK,aAAL,CAAmB,MAAnB,IAA6B,KAAK,qBAAnC,CAAb;AACD,KAHO;AAIR,IAAA,aAJQ,2BAIK;AACX,aAAO,KAAK,GAAL,IAAY,QAAO,KAAK,GAAZ,MAAoB,QAAhC,GACH;AACA,QAAA,GAAG,EAAE,KAAK,GAAL,CAAS,GADd;AAEA,QAAA,MAAM,EAAE,KAAK,MAAL,IAAe,KAAK,GAAL,CAAS,MAFhC;AAGA,QAAA,OAAO,EAAE,KAAK,OAAL,IAAgB,KAAK,GAAL,CAAS,OAHlC;AAIA,QAAA,MAAM,EAAE,MAAM,CAAC,KAAK,WAAL,IAAoB,KAAK,GAAL,CAAS,MAA9B;AAJd,OADG,GAMD;AACF,QAAA,GAAG,EAAE,KAAK,GADR;AAEF,QAAA,MAAM,EAAE,KAAK,MAFX;AAGF,QAAA,OAAO,EAAE,KAAK,OAHZ;AAIF,QAAA,MAAM,EAAE,MAAM,CAAC,KAAK,WAAL,IAAoB,CAArB;AAJZ,OANN;AAYD,KAjBO;AAkBR,IAAA,aAlBQ,2BAkBK;AACX,UAAI,EAAE,KAAK,aAAL,CAAmB,GAAnB,IAA0B,KAAK,aAAL,CAAmB,OAA7C,IAAwD,KAAK,QAA/D,CAAJ,EAA8E,OAAO,EAAP;AAE9E,UAAM,eAAe,GAAa,EAAlC;AACA,UAAM,GAAG,GAAG,KAAK,SAAL,GAAiB,KAAK,aAAL,CAAmB,OAApC,GAA8C,KAAK,UAA/D;AAEA,UAAI,KAAK,QAAT,EAAmB,eAAe,CAAC,IAAhB,2BAAwC,KAAK,QAA7C;AACnB,UAAI,GAAJ,EAAS,eAAe,CAAC,IAAhB,iBAA6B,GAA7B;AAET,UAAM,KAAK,GAAG,KAAK,cAAL,CAAoB,KAApB,EAA2B;AACvC,QAAA,WAAW,EAAE,gBAD0B;AAEvC,QAAA,KAAK,EAAE;AACL,qCAA2B,KAAK,SAD3B;AAEL,qCAA2B,KAAK,OAF3B;AAGL,mCAAyB,CAAC,KAAK;AAH1B,SAFgC;AAOvC,QAAA,KAAK,EAAE;AACL,UAAA,eAAe,EAAE,eAAe,CAAC,IAAhB,CAAqB,IAArB,CADZ;AAEL,UAAA,kBAAkB,EAAE,KAAK;AAFpB,SAPgC;AAWvC,QAAA,GAAG,EAAE,CAAC,KAAK;AAX4B,OAA3B,CAAd;AAcA;;AACA,UAAI,CAAC,KAAK,UAAV,EAAsB,OAAO,KAAP;AAEtB,aAAO,KAAK,cAAL,CAAoB,YAApB,EAAkC;AACvC,QAAA,KAAK,EAAE;AACL,UAAA,IAAI,EAAE,KAAK,UADN;AAEL,UAAA,IAAI,EAAE;AAFD;AADgC,OAAlC,EAKJ,CAAC,KAAD,CALI,CAAP;AAMD;AAlDO,GAhDH;AAqGP,EAAA,KAAK,EAAE;AACL,IAAA,GADK,iBACF;AACD;AACA,UAAI,CAAC,KAAK,SAAV,EAAqB,KAAK,IAAL,CAAU,SAAV,EAAqB,SAArB,EAAgC,IAAhC,EAArB,KACK,KAAK,SAAL;AACN,KALI;AAML,iCAA6B;AANxB,GArGA;AA8GP,EAAA,OA9GO,qBA8GA;AACL,SAAK,IAAL;AACD,GAhHM;AAkHP,EAAA,OAAO,EAAE;AACP,IAAA,IADO,gBAEL,OAFK,EAGL,QAHK,EAIL,cAJK,EAImB;AAExB;AACA;AACA;AACA,UACE,YAAY,IACZ,CAAC,cADD,IAEA,CAAC,KAAK,KAHR,EAIE;;AAEF,UAAI,KAAK,aAAL,CAAmB,OAAvB,EAAgC;AAC9B,YAAM,OAAO,GAAG,IAAI,KAAJ,EAAhB;AACA,QAAA,OAAO,CAAC,GAAR,GAAc,KAAK,aAAL,CAAmB,OAAjC;AACA,aAAK,WAAL,CAAiB,OAAjB,EAA0B,IAA1B;AACD;AACD;;;AACA,UAAI,KAAK,aAAL,CAAmB,GAAvB,EAA4B,KAAK,SAAL;AAC7B,KAtBM;AAuBP,IAAA,MAvBO,oBAuBD;AACJ,WAAK,MAAL;AACA,WAAK,SAAL,GAAiB,KAAjB;AACA,WAAK,KAAL,CAAW,MAAX,EAAmB,KAAK,GAAxB;;AAEA,UACE,KAAK,KAAL,KACC,KAAK,aAAL,CAAmB,GAAnB,CAAuB,QAAvB,CAAgC,MAAhC,KAA2C,KAAK,aAAL,CAAmB,GAAnB,CAAuB,UAAvB,CAAkC,oBAAlC,CAD5C,CADF,EAGE;AACA,YAAI,KAAK,KAAL,CAAW,aAAX,IAA4B,KAAK,KAAL,CAAW,YAA3C,EAAyD;AACvD,eAAK,YAAL,GAAoB,KAAK,KAAL,CAAW,YAA/B;AACA,eAAK,qBAAL,GAA6B,KAAK,KAAL,CAAW,YAAX,GAA0B,KAAK,KAAL,CAAW,aAAlE;AACD,SAHD,MAGO;AACL,eAAK,qBAAL,GAA6B,CAA7B;AACD;AACF;AACF,KAvCM;AAwCP,IAAA,OAxCO,qBAwCA;AACL,WAAK,QAAL,GAAgB,IAAhB;AACA,WAAK,KAAL,CAAW,OAAX,EAAoB,KAAK,GAAzB;AACD,KA3CM;AA4CP,IAAA,MA5CO,oBA4CD;AACJ;AACA,UAAI,KAAK,KAAT,EAAgB,KAAK,UAAL,GAAkB,KAAK,KAAL,CAAW,UAAX,IAAyB,KAAK,KAAL,CAAW,GAAtD;AACjB,KA/CM;AAgDP,IAAA,SAhDO,uBAgDE;AAAA;;AACP,UAAM,KAAK,GAAG,IAAI,KAAJ,EAAd;AACA,WAAK,KAAL,GAAa,KAAb;;AAEA,MAAA,KAAK,CAAC,MAAN,GAAe,YAAK;AAClB;AACA,YAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,UAAA,KAAK,CAAC,MAAN,GAAe,KAAf,CAAqB,UAAC,GAAD,EAAsB;AACzC,sCACE,uEACQ,KAAI,CAAC,aAAL,CAAmB,GAD3B,KAEC,GAAG,CAAC,OAAJ,+BAAmC,GAAG,CAAC,OAAvC,IAAmD,EAFpD,CADF,EAIE,KAJF;AAMD,WAPD,EAOG,IAPH,CAOQ,KAAI,CAAC,MAPb;AAQD,SATD,MASO;AACL,UAAA,KAAI,CAAC,MAAL;AACD;AACF,OAdD;;AAeA,MAAA,KAAK,CAAC,OAAN,GAAgB,KAAK,OAArB;AAEA,WAAK,QAAL,GAAgB,KAAhB;AACA,WAAK,KAAL,KAAe,KAAK,CAAC,KAAN,GAAc,KAAK,KAAlC;AACA,WAAK,aAAL,CAAmB,MAAnB,KAA8B,KAAK,CAAC,MAAN,GAAe,KAAK,aAAL,CAAmB,MAAhE;AACA,MAAA,KAAK,CAAC,GAAN,GAAY,KAAK,aAAL,CAAmB,GAA/B;AACA,WAAK,KAAL,CAAW,WAAX,EAAwB,KAAK,aAAL,CAAmB,GAA3C;AAEA,WAAK,WAAL,IAAoB,KAAK,WAAL,CAAiB,KAAjB,CAApB;AACA,WAAK,MAAL;AACD,KA7EM;AA8EP,IAAA,WA9EO,uBA8EM,GA9EN,EA8EyD;AAAA;;AAAA,UAA5B,OAA4B,uEAAH,GAAG;;AAC9D,UAAM,IAAI,GAAG,SAAP,IAAO,GAAK;AAAA,YACR,aADQ,GACwB,GADxB,CACR,aADQ;AAAA,YACO,YADP,GACwB,GADxB,CACO,YADP;;AAGhB,YAAI,aAAa,IAAI,YAArB,EAAmC;AACjC,UAAA,MAAI,CAAC,YAAL,GAAoB,YAApB;AACA,UAAA,MAAI,CAAC,qBAAL,GAA6B,YAAY,GAAG,aAA5C;AACD,SAHD,MAGO,IAAI,CAAC,GAAG,CAAC,QAAL,IAAiB,MAAI,CAAC,SAAtB,IAAmC,CAAC,MAAI,CAAC,QAAzC,IAAqD,OAAO,IAAI,IAApE,EAA0E;AAC/E,UAAA,UAAU,CAAC,IAAD,EAAO,OAAP,CAAV;AACD;AACF,OATD;;AAWA,MAAA,IAAI;AACL,KA3FM;AA4FP,IAAA,UA5FO,wBA4FG;AACR,UAAM,OAAO,GAAU,qBAAY,OAAZ,CAAoB,OAApB,CAA4B,UAA5B,CAAuC,IAAvC,CAA4C,IAA5C,CAAvB;;AACA,UAAI,KAAK,YAAT,EAAuB;AACrB,aAAK,EAAL,CAAQ,OAAO,CAAC,IAAhB,EAAuB,KAAvB,EAA8B;AAC5B,UAAA,KAAK,EAAE;AAAE,YAAA,KAAK,YAAK,KAAK,YAAV;AAAP;AADqB,SAA9B;AAGD;;AAED,aAAO,OAAP;AACD,KArGM;AAsGP,IAAA,gBAtGO,8BAsGS;AACd,UAAM,IAAI,GAAG,sBAAQ,IAAR,EAAc,aAAd,CAAb;;AACA,UAAI,IAAJ,EAAU;AACR,YAAM,WAAW,GAAG,KAAK,SAAL,GAChB,CAAC,KAAK,cAAL,CAAoB,KAApB,EAA2B;AAC5B,UAAA,WAAW,EAAE;AADe,SAA3B,EAEA,IAFA,CAAD,CADgB,GAIhB,EAJJ;AAMA,YAAI,CAAC,KAAK,UAAV,EAAsB,OAAO,WAAW,CAAC,CAAD,CAAlB;AAEtB,eAAO,KAAK,cAAL,CAAoB,YAApB,EAAkC;AACvC,UAAA,KAAK,EAAE;AACL,YAAA,MAAM,EAAE,IADH;AAEL,YAAA,IAAI,EAAE,KAAK;AAFN;AADgC,SAAlC,EAKJ,WALI,CAAP;AAMD;AACF;AAxHM,GAlHF;AA6OP,EAAA,MA7OO,kBA6OC,CA7OD,EA6OE;AACP,QAAM,IAAI,GAAG,qBAAY,OAAZ,CAAoB,MAApB,CAA2B,IAA3B,CAAgC,IAAhC,EAAsC,CAAtC,CAAb;;AAEA,QAAM,IAAI,GAAG,wBAAU,IAAI,CAAC,IAAf,EAAsB;AACjC,MAAA,WAAW,EAAE,SADoB;AAEjC,MAAA,KAAK,EAAE;AACL,sBAAc,KAAK,GADd;AAEL,QAAA,IAAI,EAAE,KAAK,GAAL,GAAW,KAAX,GAAmB;AAFpB,OAF0B;AAMjC,MAAA,KAAK,EAAE,KAAK,YANqB;AAOjC;AACA;AACA,MAAA,UAAU,EAAE,YAAY,GACpB,CAAC;AACD,QAAA,IAAI,EAAE,WADL;AAED,QAAA,SAAS,EAAE;AAAE,UAAA,IAAI,EAAE;AAAR,SAFV;AAGD,QAAA,KAAK,EAAE;AACL,UAAA,OAAO,EAAE,KAAK,IADT;AAEL,UAAA,OAAO,EAAE,KAAK;AAFT;AAHN,OAAD,CADoB,GASpB;AAlB6B,KAAtB,CAAb;AAqBA,IAAA,IAAI,CAAC,QAAL,GAAgB,CACd,KAAK,aADS,EAEd,KAAK,aAFS,EAGd,KAAK,gBAAL,EAHc,EAId,KAAK,UAAL,EAJc,CAAhB;AAOA,WAAO,CAAC,CAAC,IAAI,CAAC,GAAN,EAAW,IAAX,EAAiB,IAAI,CAAC,QAAtB,CAAR;AACD;AA7QM,CAHM,C","sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Directives\nimport intersect from '../../directives/intersect'\n\n// Types\nimport { VNode } from 'vue'\nimport { PropValidator } from 'vue/types/options'\n\n// Components\nimport VResponsive from '../VResponsive'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\n\n// Utils\nimport mixins from '../../util/mixins'\nimport mergeData from '../../util/mergeData'\nimport { consoleWarn } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src: string\n srcset?: string\n lazySrc: string\n aspect: number\n}\n\nconst hasIntersect = typeof window !== 'undefined' && 'IntersectionObserver' in window\n\n/* @vue/component */\nexport default mixins(\n VResponsive,\n Themeable,\n).extend({\n name: 'v-img',\n\n directives: { intersect },\n\n props: {\n alt: String,\n contain: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n } as PropValidator<IntersectionObserverInit>,\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object],\n default: '',\n } as PropValidator<string | srcObject>,\n srcset: String,\n transition: {\n type: [Boolean, String],\n default: 'fade-transition',\n },\n },\n\n data () {\n return {\n currentSrc: '', // Set from srcset\n image: null as HTMLImageElement | null,\n isLoading: true,\n calculatedAspectRatio: undefined as number | undefined,\n naturalWidth: undefined as number | undefined,\n hasError: false,\n }\n },\n\n computed: {\n computedAspectRatio (): number {\n return Number(this.normalisedSrc.aspect || this.calculatedAspectRatio)\n },\n normalisedSrc (): srcObject {\n return this.src && typeof this.src === 'object'\n ? {\n src: this.src.src,\n srcset: this.srcset || this.src.srcset,\n lazySrc: this.lazySrc || this.src.lazySrc,\n aspect: Number(this.aspectRatio || this.src.aspect),\n } : {\n src: this.src,\n srcset: this.srcset,\n lazySrc: this.lazySrc,\n aspect: Number(this.aspectRatio || 0),\n }\n },\n __cachedImage (): VNode | [] {\n if (!(this.normalisedSrc.src || this.normalisedSrc.lazySrc || this.gradient)) return []\n\n const backgroundImage: string[] = []\n const src = this.isLoading ? this.normalisedSrc.lazySrc : this.currentSrc\n\n if (this.gradient) backgroundImage.push(`linear-gradient(${this.gradient})`)\n if (src) backgroundImage.push(`url(\"${src}\")`)\n\n const image = this.$createElement('div', {\n staticClass: 'v-image__image',\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n },\n style: {\n backgroundImage: backgroundImage.join(', '),\n backgroundPosition: this.position,\n },\n key: +this.isLoading,\n })\n\n /* istanbul ignore if */\n if (!this.transition) return image\n\n return this.$createElement('transition', {\n attrs: {\n name: this.transition,\n mode: 'in-out',\n },\n }, [image])\n },\n },\n\n watch: {\n src () {\n // Force re-init when src changes\n if (!this.isLoading) this.init(undefined, undefined, true)\n else this.loadImage()\n },\n '$vuetify.breakpoint.width': 'getSrc',\n },\n\n mounted () {\n this.init()\n },\n\n methods: {\n init (\n entries?: IntersectionObserverEntry[],\n observer?: IntersectionObserver,\n isIntersecting?: boolean\n ) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n hasIntersect &&\n !isIntersecting &&\n !this.eager\n ) return\n\n if (this.normalisedSrc.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = this.normalisedSrc.lazySrc\n this.pollForSize(lazyImg, null)\n }\n /* istanbul ignore else */\n if (this.normalisedSrc.src) this.loadImage()\n },\n onLoad () {\n this.getSrc()\n this.isLoading = false\n this.$emit('load', this.src)\n\n if (\n this.image &&\n (this.normalisedSrc.src.endsWith('.svg') || this.normalisedSrc.src.startsWith('data:image/svg+xml'))\n ) {\n if (this.image.naturalHeight && this.image.naturalWidth) {\n this.naturalWidth = this.image.naturalWidth\n this.calculatedAspectRatio = this.image.naturalWidth / this.image.naturalHeight\n } else {\n this.calculatedAspectRatio = 1\n }\n }\n },\n onError () {\n this.hasError = true\n this.$emit('error', this.src)\n },\n getSrc () {\n /* istanbul ignore else */\n if (this.image) this.currentSrc = this.image.currentSrc || this.image.src\n },\n loadImage () {\n const image = new Image()\n this.image = image\n\n image.onload = () => {\n /* istanbul ignore if */\n if (image.decode) {\n image.decode().catch((err: DOMException) => {\n consoleWarn(\n `Failed to decode image, trying to render anyway\\n\\n` +\n `src: ${this.normalisedSrc.src}` +\n (err.message ? `\\nOriginal error: ${err.message}` : ''),\n this\n )\n }).then(this.onLoad)\n } else {\n this.onLoad()\n }\n }\n image.onerror = this.onError\n\n this.hasError = false\n this.sizes && (image.sizes = this.sizes)\n this.normalisedSrc.srcset && (image.srcset = this.normalisedSrc.srcset)\n image.src = this.normalisedSrc.src\n this.$emit('loadstart', this.normalisedSrc.src)\n\n this.aspectRatio || this.pollForSize(image)\n this.getSrc()\n },\n pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalWidth = naturalWidth\n this.calculatedAspectRatio = naturalWidth / naturalHeight\n } else if (!img.complete && this.isLoading && !this.hasError && timeout != null) {\n setTimeout(poll, timeout)\n }\n }\n\n poll()\n },\n genContent () {\n const content: VNode = VResponsive.options.methods.genContent.call(this)\n if (this.naturalWidth) {\n this._b(content.data!, 'div', {\n style: { width: `${this.naturalWidth}px` },\n })\n }\n\n return content\n },\n __genPlaceholder (): VNode | void {\n const slot = getSlot(this, 'placeholder')\n if (slot) {\n const placeholder = this.isLoading\n ? [this.$createElement('div', {\n staticClass: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return this.$createElement('transition', {\n props: {\n appear: true,\n name: this.transition,\n },\n }, placeholder)\n }\n },\n },\n\n render (h): VNode {\n const node = VResponsive.options.render.call(this, h)\n\n const data = mergeData(node.data!, {\n staticClass: 'v-image',\n attrs: {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n },\n class: this.themeClasses,\n // Only load intersect directive if it\n // will work in the current browser.\n directives: hasIntersect\n ? [{\n name: 'intersect',\n modifiers: { once: true },\n value: {\n handler: this.init,\n options: this.options,\n },\n }]\n : undefined,\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n return h(node.tag, data, node.children)\n },\n})\n"],"sourceRoot":"","file":"VImg.js"}
@@ -21,8 +21,6 @@ var _returnable = _interopRequireDefault(require("../../mixins/returnable"));
21
21
 
22
22
  var _roundable = _interopRequireDefault(require("../../mixins/roundable"));
23
23
 
24
- var _toggleable = _interopRequireDefault(require("../../mixins/toggleable"));
25
-
26
24
  var _themeable = _interopRequireDefault(require("../../mixins/themeable"));
27
25
 
28
26
  var _clickOutside = _interopRequireDefault(require("../../directives/click-outside"));
@@ -57,7 +55,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
57
55
 
58
56
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
59
57
 
60
- var baseMixins = (0, _mixins.default)(_dependent.default, _delayable.default, _menuable.default, _returnable.default, _roundable.default, _toggleable.default, _themeable.default);
58
+ var baseMixins = (0, _mixins.default)(_dependent.default, _delayable.default, _returnable.default, _roundable.default, _themeable.default, _menuable.default);
61
59
  /* @vue/component */
62
60
 
63
61
  var _default = baseMixins.extend({
@@ -387,7 +385,9 @@ var _default = baseMixins.extend({
387
385
 
388
386
  // Prevent accidental re-activation
389
387
  this.runDelay('close', function () {
390
- if (_this5.$refs.content.contains(e.relatedTarget)) return;
388
+ var _this5$$refs$content;
389
+
390
+ if ((_this5$$refs$content = _this5.$refs.content) != null && _this5$$refs$content.contains(e.relatedTarget)) return;
391
391
  requestAnimationFrame(function () {
392
392
  _this5.isActive = false;
393
393
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VMenu/VMenu.ts"],"names":[],"mappings":"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","sourcesContent":["// 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 Toggleable from '../../mixins/toggleable'\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 } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Menuable,\n Returnable,\n Roundable,\n Toggleable,\n Themeable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n directives: {\n ClickOutside,\n Resize,\n },\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 },\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 ? '200px'\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 /* 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.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.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.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = 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 this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\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 attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\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 directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (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 keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\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 (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 (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n"],"sourceRoot":"","file":"VMenu.js"}
1
+ {"version":3,"sources":["../../../src/components/VMenu/VMenu.ts"],"names":[],"mappings":"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","sourcesContent":["// 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 } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData } 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 directives: {\n ClickOutside,\n Resize,\n },\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 },\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 ? '200px'\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 /* 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.contains(target)\n },\n genActivatorAttributes () {\n const attributes = Activatable.options.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.options.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.keydown = 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 this.$createElement('transition', {\n props: {\n name: this.transition,\n },\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives: VNodeDirective[] = [{\n name: 'show',\n value: this.isContentActive,\n }]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push({\n name: 'click-outside',\n value: {\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 attrs: {\n ...this.getScopeIdAttrs(),\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n },\n staticClass: 'v-menu__content',\n class: {\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 directives: this.genDirectives(),\n ref: 'content',\n on: {\n click: (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 keydown: this.onKeyDown,\n },\n } as VNodeData\n\n if (this.$listeners.scroll) {\n options.on = options.on || {}\n options.on.scroll = this.$listeners.scroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.on = options.on || {}\n options.on.mouseleave = this.mouseLeaveHandler\n }\n\n return this.$createElement('div', options, this.getContentSlot())\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 (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 (h): VNode {\n const data = {\n staticClass: 'v-menu',\n class: {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n },\n directives: [{\n arg: '500',\n name: 'resize',\n value: this.onResize,\n }],\n }\n\n return h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n this.$createElement(VThemeProvider, {\n props: {\n root: true,\n light: this.light,\n dark: this.dark,\n },\n }, [this.genTransition()]),\n ]),\n ])\n },\n})\n"],"sourceRoot":"","file":"VMenu.js"}
@@ -372,7 +372,7 @@ var _default2 = baseMixins.extend({
372
372
  return isNaN(width) ? this.$el.clientWidth : width;
373
373
  },
374
374
  updateMiniVariant: function updateMiniVariant(val) {
375
- if (this.miniVariant !== val) this.$emit('update:mini-variant', val);
375
+ if (this.expandOnHover && this.miniVariant !== val) this.$emit('update:mini-variant', val);
376
376
  }
377
377
  },
378
378
  render: function render(h) {