@dimailn/vuetify 2.7.2-alpha4 → 2.7.2-alpha6
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.
- package/dist/vuetify.js +31 -15
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VData/VData.js +14 -2
- package/es5/components/VData/VData.js.map +1 -1
- package/es5/components/VDataTable/Row.js +5 -5
- package/es5/components/VDataTable/Row.js.map +1 -1
- package/es5/components/VDataTable/VDataTable.js.map +1 -1
- package/es5/components/VImg/VImg.js +1 -1
- package/es5/components/VImg/VImg.js.map +1 -1
- package/es5/components/VMenu/VMenu.js +1 -2
- package/es5/components/VMenu/VMenu.js.map +1 -1
- package/es5/framework.js +1 -1
- package/es5/mixins/activatable/index.js +8 -3
- package/es5/mixins/activatable/index.js.map +1 -1
- package/lib/components/VData/VData.js +15 -2
- package/lib/components/VData/VData.js.map +1 -1
- package/lib/components/VDataTable/Row.js +5 -5
- package/lib/components/VDataTable/Row.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VImg/VImg.js +1 -1
- package/lib/components/VImg/VImg.js.map +1 -1
- package/lib/components/VMenu/VMenu.js +1 -2
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/framework.js +1 -1
- package/lib/mixins/activatable/index.js +9 -4
- package/lib/mixins/activatable/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/VData/VData.ts +12 -1
- package/src/components/VImg/VImg.ts +1 -1
- package/src/mixins/activatable/index.ts +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VDataTable/VDataTable.ts"],"names":[],"mappings":"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","sourcesContent":["import './VDataTable.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, VNodeChildren, h } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DataTableHeader,\n DataTableFilterFunction,\n DataScopeProps,\n DataOptions,\n DataPagination,\n DataTableCompareFunction,\n DataItemsPerPageOption,\n ItemGroup,\n RowClassFunction,\n RowStyleFunction,\n DataTableItemProps,\n DataTableFilterMode,\n} from 'vuetify/types'\n\n// Components\nimport { VData } from '../VData'\nimport { VDataFooter, VDataIterator } from '../VDataIterator'\nimport VBtn from '../VBtn'\nimport VDataTableHeader from './VDataTableHeader'\n// import VVirtualTable from './VVirtualTable'\nimport VIcon from '../VIcon'\nimport Row from './Row'\nimport RowGroup from './RowGroup'\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VSimpleTable from './VSimpleTable'\nimport MobileRow from './MobileRow'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Mouse from '../../mixins/mouse'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, defaultFilter, camelizeObjectKeys, getPropertyFromItem } from '../../util/helpers'\nimport { breaking } from '../../util/console'\nimport { mergeClasses, mergeStyles } from '../../util/mergeData'\n\nfunction filterFn (item: any, search: string | null, filter: DataTableFilterFunction) {\n return (header: DataTableHeader) => {\n const value = getObjectValueByPath(item, header.value)\n return header.filter ? header.filter(value, search, item) : filter(value, search, item)\n }\n}\n\nfunction searchTableItems (\n items: any[],\n search: string | null,\n headersWithCustomFilters: DataTableHeader[],\n headersWithoutCustomFilters: DataTableHeader[],\n customFilter: DataTableFilterFunction,\n filterMode: DataTableFilterMode,\n) {\n search = typeof search === 'string' ? search.trim() : null\n\n if (filterMode === 'union') {\n // If the `search` property is empty and there are no custom filters in use, there is nothing to do.\n if (!(search && headersWithoutCustomFilters.length) && !headersWithCustomFilters.length) return items\n\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n if (headersWithCustomFilters.length && headersWithCustomFilters.every(filterFn(item, search, defaultFilter))) {\n return true\n }\n\n // Otherwise, the `search` property is used to filter columns without a custom filter.\n return (search && headersWithoutCustomFilters.some(filterFn(item, search, customFilter)))\n })\n } else if (filterMode === 'intersection') {\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n // We need to match every filter to be included in the results.\n const matchesColumnFilters = headersWithCustomFilters.every(filterFn(item, search, defaultFilter))\n\n // Headers without custom filters are only filtered by the `search` property if it is defined.\n // We only need a single column to match the search term to be included in the results.\n const matchesSearchTerm = !search || headersWithoutCustomFilters.some(filterFn(item, search, customFilter))\n\n return matchesColumnFilters && matchesSearchTerm\n })\n } else {\n return items\n }\n}\n\n/* @vue/component */\nexport default mixins(\n VDataIterator,\n Loadable,\n Mouse,\n).extend({\n name: 'v-data-table',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => [],\n } as PropValidator<DataTableHeader[]>,\n showSelect: Boolean,\n checkboxColor: String,\n showExpand: Boolean,\n showGroupBy: Boolean,\n // TODO: Fix\n // virtualRows: Boolean,\n height: [Number, String],\n hideDefaultHeader: Boolean,\n caption: String,\n dense: Boolean,\n headerProps: Object,\n calculateWidths: Boolean,\n fixedHeader: Boolean,\n headersLength: Number,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n customFilter: {\n type: Function,\n default: defaultFilter,\n } as PropValidator<typeof defaultFilter>,\n filterMode: {\n type: String,\n default: 'intersection',\n } as PropValidator<DataTableFilterMode>,\n itemClass: {\n type: [String, Function],\n default: () => '',\n } as PropValidator<RowClassFunction | string>,\n itemStyle: {\n type: [String, Function],\n default: () => '',\n } as PropValidator<RowStyleFunction | string>,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n },\n\n data () {\n return {\n internalGroupBy: [] as string[],\n openCache: {} as { [key: string]: boolean },\n widths: [] as number[],\n }\n },\n\n computed: {\n computedHeaders (): DataTableHeader[] {\n if (!this.headers) return []\n const headers = this.headers.filter(h => h.value === undefined || !this.internalGroupBy.find(v => v === h.value))\n const defaultHeader = { text: '', sortable: false, width: '1px' }\n\n if (this.showSelect) {\n const index = headers.findIndex(h => h.value === 'data-table-select')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-select' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n if (this.showExpand) {\n const index = headers.findIndex(h => h.value === 'data-table-expand')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-expand' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n return headers\n },\n colspanAttrs (): object | undefined {\n return this.isMobile ? undefined : {\n colspan: this.headersLength || this.computedHeaders.length,\n }\n },\n columnSorters (): Record<string, DataTableCompareFunction> {\n return this.computedHeaders.reduce<Record<string, DataTableCompareFunction>>((acc, header) => {\n if (header.sort) acc[header.value] = header.sort\n return acc\n }, {})\n },\n headersWithCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n headersWithoutCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => !header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n sanitizedHeaderProps (): Record<string, any> {\n return camelizeObjectKeys(this.headerProps)\n },\n computedItemsPerPage (): number {\n const itemsPerPage = this.options && this.options.itemsPerPage ? this.options.itemsPerPage : this.itemsPerPage\n const itemsPerPageOptions: DataItemsPerPageOption[] | undefined = this.sanitizedFooterProps.itemsPerPageOptions\n\n if (\n itemsPerPageOptions &&\n !itemsPerPageOptions.find(item => typeof item === 'number' ? item === itemsPerPage : item.value === itemsPerPage)\n ) {\n const firstOption = itemsPerPageOptions[0]\n return typeof firstOption === 'object' ? firstOption.value : firstOption\n }\n\n return itemsPerPage\n },\n groupByText (): string {\n return this.headers?.find(header => header.value === this.internalGroupBy?.[0])?.text ?? ''\n },\n },\n\n created () {\n const breakingProps = [\n ['sort-icon', 'header-props.sort-icon'],\n ['hide-headers', 'hide-default-header'],\n ['select-all', 'show-select'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n mounted () {\n // if ((!this.sortBy || !this.sortBy.length) && (!this.options.sortBy || !this.options.sortBy.length)) {\n // const firstSortable = this.headers.find(h => !('sortable' in h) || !!h.sortable)\n // if (firstSortable) this.updateOptions({ sortBy: [firstSortable.value], sortDesc: [false] })\n // }\n\n if (this.calculateWidths) {\n window.addEventListener('resize', this.calcWidths)\n this.calcWidths()\n }\n },\n\n beforeDestroy () {\n if (this.calculateWidths) {\n window.removeEventListener('resize', this.calcWidths)\n }\n },\n\n methods: {\n calcWidths () {\n this.widths = Array.from(this.$el.querySelectorAll('th')).map(e => e.clientWidth)\n },\n customFilterWithColumns (items: any[], search: string) {\n return searchTableItems(\n items,\n search,\n this.headersWithCustomFilters,\n this.headersWithoutCustomFilters,\n this.customFilter,\n this.filterMode\n )\n },\n customSortWithHeaders (items: any[], sortBy: string[], sortDesc: boolean[], locale: string) {\n return this.customSort(items, sortBy, sortDesc, locale, this.columnSorters)\n },\n createItemProps (item: any, index: number): DataTableItemProps {\n const data = {\n ...VDataIterator.methods.createItemProps.call(this, item, index),\n headers: this.computedHeaders,\n }\n\n return {\n ...data,\n class: {\n 'v-data-table__selected': data.isSelected,\n },\n ...this.getDefaultMouseEventHandlers(':row', () => data, true),\n // TODO: the first argument should be the event, and the second argument should be data,\n // but this is a breaking change so it's for v3\n onClick: (event: MouseEvent) => this.$emit('click:row', item, data, event)\n }\n },\n genCaption (props: DataScopeProps) {\n if (this.caption) return [h('caption', [this.caption])]\n\n return getSlot(this, 'caption', props, true)\n },\n genColgroup (props: DataScopeProps) {\n return h('colgroup', this.computedHeaders.map(header => {\n return h('col', {\n class: {\n divider: header.divider,\n },\n })\n }))\n },\n genLoading () {\n const th = h('th', {\n class: 'column',\n attrs: this.colspanAttrs,\n }, [this.genProgress()])\n\n const tr = h('tr', {\n class: 'v-data-table__progress',\n }, [th])\n\n return h('thead', [tr])\n },\n genHeaders (props: DataScopeProps) {\n const data = {\n ...this.sanitizedHeaderProps,\n headers: this.computedHeaders,\n options: props.options,\n mobile: this.isMobile,\n showGroupBy: this.showGroupBy,\n checkboxColor: this.checkboxColor,\n someItems: this.someItems,\n everyItem: this.everyItem,\n singleSelect: this.singleSelect,\n disableSort: this.disableSort,\n onSort: props.sort,\n onGroup: props.group,\n 'onToggle-select-all': this.toggleSelectAll\n }\n\n\n // TODO: rename to 'head'? (thead, tbody, tfoot)\n const children: VNodeChildrenArrayContents = [getSlot(this, 'header', {\n ...data,\n isMobile: this.isMobile,\n })]\n\n if (!this.hideDefaultHeader) {\n const scopedSlots = getPrefixedScopedSlots('header.', this.$slots)\n children.push(h(VDataTableHeader, {\n ...data,\n\n }, scopedSlots))\n }\n\n if (this.loading) children.push(this.genLoading())\n\n return children\n },\n genEmptyWrapper (content: VNodeChildrenArrayContents) {\n return h('tr', {\n class: 'v-data-table__empty-wrapper',\n }, [\n h('td', {\n attrs: this.colspanAttrs,\n }, content),\n ])\n },\n genItems (items: any[], props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n return props.groupedItems\n ? this.genGroupedRows(props.groupedItems, props)\n : this.genRows(items, props)\n },\n genGroupedRows (groupedItems: ItemGroup<any>[], props: DataScopeProps) {\n return groupedItems.map(group => {\n if (!this.openCache.hasOwnProperty(group.name)) this.openCache[group.name] = true\n\n if (this.$slots.group) {\n return this.$slots.group({\n group: group.name,\n options: props.options,\n isMobile: this.isMobile,\n items: group.items,\n headers: this.computedHeaders,\n })\n } else {\n return this.genDefaultGroupedRow(group.name, group.items, props)\n }\n })\n },\n genDefaultGroupedRow (group: string, items: any[], props: DataScopeProps) {\n const isOpen = !!this.openCache[group]\n const children: VNodeChildren = [\n h('template', { slot: 'row.content' }, this.genRows(items, props)),\n ]\n const toggleFn = () => this.openCache[group] = !this.openCache[group]\n const removeFn = () => props.updateOptions({ groupBy: [], groupDesc: [] })\n\n if (this.$slots['group.header']) {\n children.unshift(h('template', { slot: 'column.header' }, [\n this.$slots['group.header']!({\n group,\n groupBy: props.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n remove: removeFn,\n }),\n ]))\n } else {\n const toggle = h(VBtn, {\n class: 'ma-0',\n icon: true,\n small: true,\n onClick: toggleFn\n }, [h(VIcon, [isOpen ? '$minus' : '$plus'])])\n\n const remove = h(VBtn, {\n class: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: removeFn,\n },\n }, [h(VIcon, ['$close'])])\n\n const column = h('td', {\n class: 'text-start',\n attrs: this.colspanAttrs,\n }, [toggle, `${this.groupByText}: ${group}`, remove])\n\n children.unshift(h('template', { slot: 'column.header' }, [column]))\n }\n\n if (this.$slots['group.summary']) {\n children.push(h('template', { slot: 'column.summary' }, [\n this.$slots['group.summary']!({\n group,\n groupBy: props.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n }),\n ]))\n }\n\n return h(RowGroup, {\n key: group,\n props: {\n value: isOpen,\n },\n }, children)\n },\n genRows (items: any[], props: DataScopeProps) {\n return this.$slots.item ? this.genScopedRows(items, props) : this.genDefaultRows(items, props)\n },\n genScopedRows (items: any[], props: DataScopeProps) {\n const rows = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n rows.push(this.$slots.item!({\n ...this.createItemProps(item, i),\n isMobile: this.isMobile,\n }))\n\n if (this.isExpanded(item)) {\n rows.push(this.$slots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n index: i,\n item,\n }))\n }\n }\n\n return rows\n },\n genDefaultRows (items: any[], props: DataScopeProps) {\n return this.$slots['expanded-item']\n ? items.map((item, index) => this.genDefaultExpandedRow(item, index))\n : items.map((item, index) => this.genDefaultSimpleRow(item, index))\n },\n genDefaultExpandedRow (item: any, index: number): VNode {\n const isExpanded = this.isExpanded(item)\n const classes = {\n 'v-data-table__expanded v-data-table__expanded__row': isExpanded,\n }\n const headerRow = this.genDefaultSimpleRow(item, index, classes)\n const expandedRow = h('tr', {\n class: 'v-data-table__expanded v-data-table__expanded__content',\n }, [this.$slots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n item,\n })])\n\n return h(RowGroup, {\n props: {\n value: isExpanded,\n },\n }, [\n h('template', { slot: 'row.header' }, [headerRow]),\n h('template', { slot: 'row.content' }, [expandedRow]),\n ])\n },\n genDefaultSimpleRow (item: any, index: number, classes: Record<string, boolean> = {}): VNode {\n const scopedSlots = getPrefixedScopedSlots('item.', this.$slots)\n\n const data = this.createItemProps(item, index)\n\n if (this.showSelect) {\n const slot = scopedSlots['data-table-select']\n scopedSlots['data-table-select'] = slot ? () => slot({\n ...data,\n isMobile: this.isMobile,\n }) : () => h(VSimpleCheckbox, {\n class: 'v-data-table__checkbox',\n value: data.isSelected,\n disabled: !this.isSelectable(item),\n color: this.checkboxColor ?? '',\n onInput: (val: boolean) => data.select(val),\n })\n }\n\n if (this.showExpand) {\n const slot = scopedSlots['data-table-expand']\n scopedSlots['data-table-expand'] = slot ? () => slot(data) : () => h(VIcon, {\n class: ['v-data-table__expand-icon', {\n 'v-data-table__expand-icon--active': data.isExpanded,\n }],\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n data.expand(!data.isExpanded)\n }\n }, [this.expandIcon])\n }\n\n return h(this.isMobile ? MobileRow : Row, {\n key: getObjectValueByPath(item, this.itemKey),\n class: mergeClasses(\n { ...classes, 'v-data-table__selected': data.isSelected },\n getPropertyFromItem(item, this.itemClass)\n ),\n style: mergeStyles({}, getPropertyFromItem(item, this.itemStyle)),\n headers: this.computedHeaders,\n hideDefaultHeader: this.hideDefaultHeader,\n index,\n item,\n rtl: this.$vuetify.rtl,\n on: data.on,\n }, scopedSlots)\n },\n genBody (props: DataScopeProps): VNode | string | VNodeChildren {\n const data = {\n ...props,\n expand: this.expand,\n headers: this.computedHeaders,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n isSelected: this.isSelected,\n select: this.select,\n }\n\n if (this.$slots.body) {\n return this.$slots.body!(data)\n }\n\n return h('tbody', [\n getSlot(this, 'body.prepend', data, true),\n this.genItems(props.items, props),\n getSlot(this, 'body.append', data, true),\n ])\n },\n genFoot (props: DataScopeProps): VNode[] | undefined {\n return this.$slots.foot?.(props)\n },\n genFooters (props: DataScopeProps) {\n const data = {\n options: props.options,\n pagination: props.pagination,\n itemsPerPageText: '$vuetify.dataTable.itemsPerPageText',\n ...this.sanitizedFooterProps,\n 'onUpdate:options': (value: any) => props.updateOptions(value),\n }\n\n const children: VNodeChildren = [\n getSlot(this, 'footer', {\n ...data,\n widths: this.widths,\n headers: this.computedHeaders\n }, true),\n ]\n\n if (!this.hideDefaultFooter) {\n children.push(h(VDataFooter, {\n ...data\n }, getPrefixedScopedSlots('footer.', this.$slots)))\n }\n\n return children\n },\n genDefaultScopedSlot (props: DataScopeProps): VNode {\n const simpleProps = {\n height: this.height,\n fixedHeader: this.fixedHeader,\n dense: this.dense,\n }\n\n // if (this.virtualRows) {\n // return h(VVirtualTable, {\n // props: Object.assign(simpleProps, {\n // items: props.items,\n // height: this.height,\n // rowHeight: this.dense ? 24 : 48,\n // headerHeight: this.dense ? 32 : 48,\n // // TODO: expose rest of props from virtual table?\n // }),\n // scopedSlots: {\n // items: ({ items }) => this.genItems(items, props) as any,\n // },\n // }, [\n // this.proxySlot('body.before', [this.genCaption(props), this.genHeaders(props)]),\n // this.proxySlot('bottom', this.genFooters(props)),\n // ])\n // }\n\n return h(VSimpleTable, {\n ...simpleProps,\n class: {\n 'v-data-table--mobile': this.isMobile,\n 'v-data-table--selectable': this.showSelect,\n },\n }, {\n default: () => [\n this.genCaption(props),\n this.genColgroup(props),\n this.genHeaders(props),\n this.genBody(props),\n this.genFoot(props),\n ],\n top: getSlot(this, 'top', {\n ...props,\n isMobile: this.isMobile,\n }, true),\n bottom: this.genFooters(props)\n })\n }\n },\n\n render (): VNode {\n return h(VData, {\n ...this.$props,\n customFilter: this.customFilterWithColumns,\n customSort: this.customSortWithHeaders,\n itemsPerPage: this.computedItemsPerPage,\n 'onUpdate:options': (v: DataOptions, old: DataOptions) => {\n this.internalGroupBy = v.groupBy || []\n !deepEqual(v, old) && this.$emit('update:options', v)\n },\n 'onUpdate:page': (v: number) => this.$emit('update:page', v),\n 'onUpdate:items-per-page': (v: number) => this.$emit('update:items-per-page', v),\n 'onUpdate:sort-by': (v: string | string[]) => this.$emit('update:sort-by', v),\n 'onUpdate:sort-desc': (v: boolean | boolean[]) => this.$emit('update:sort-desc', v),\n 'onUpdate:group-by': (v: string | string[]) => this.$emit('update:group-by', v),\n 'onUpdate:group-desc': (v: boolean | boolean[]) => this.$emit('update:group-desc', v),\n onPagination: (v: DataPagination, old: DataPagination) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'onCurrent-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'onPage-count': (v: number) => this.$emit('page-count', v),\n }, this.genDefaultScopedSlot)\n },\n})\n"],"sourceRoot":"","file":"VDataTable.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VDataTable/VDataTable.ts"],"names":[],"mappings":"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","sourcesContent":["import './VDataTable.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, VNodeChildren, h } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport {\n DataTableHeader,\n DataTableFilterFunction,\n DataScopeProps,\n DataOptions,\n DataPagination,\n DataTableCompareFunction,\n DataItemsPerPageOption,\n ItemGroup,\n RowClassFunction,\n RowStyleFunction,\n DataTableItemProps,\n DataTableFilterMode,\n} from 'vuetify/types'\n\n// Components\nimport { VData } from '../VData'\nimport { VDataFooter, VDataIterator } from '../VDataIterator'\nimport VBtn from '../VBtn'\nimport VDataTableHeader from './VDataTableHeader'\n// import VVirtualTable from './VVirtualTable'\nimport VIcon from '../VIcon'\nimport Row from './Row'\nimport RowGroup from './RowGroup'\nimport VSimpleCheckbox from '../VCheckbox/VSimpleCheckbox'\nimport VSimpleTable from './VSimpleTable'\nimport MobileRow from './MobileRow'\n\n// Mixins\nimport Loadable from '../../mixins/loadable'\nimport Mouse from '../../mixins/mouse'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, defaultFilter, camelizeObjectKeys, getPropertyFromItem } from '../../util/helpers'\nimport { breaking } from '../../util/console'\nimport { mergeClasses, mergeStyles } from '../../util/mergeData'\n\nfunction filterFn (item: any, search: string | null, filter: DataTableFilterFunction) {\n return (header: DataTableHeader) => {\n const value = getObjectValueByPath(item, header.value)\n return header.filter ? header.filter(value, search, item) : filter(value, search, item)\n }\n}\n\nfunction searchTableItems (\n items: any[],\n search: string | null,\n headersWithCustomFilters: DataTableHeader[],\n headersWithoutCustomFilters: DataTableHeader[],\n customFilter: DataTableFilterFunction,\n filterMode: DataTableFilterMode,\n) {\n search = typeof search === 'string' ? search.trim() : null\n\n if (filterMode === 'union') {\n // If the `search` property is empty and there are no custom filters in use, there is nothing to do.\n if (!(search && headersWithoutCustomFilters.length) && !headersWithCustomFilters.length) return items\n\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n if (headersWithCustomFilters.length && headersWithCustomFilters.every(filterFn(item, search, defaultFilter))) {\n return true\n }\n\n // Otherwise, the `search` property is used to filter columns without a custom filter.\n return (search && headersWithoutCustomFilters.some(filterFn(item, search, customFilter)))\n })\n } else if (filterMode === 'intersection') {\n return items.filter(item => {\n // Headers with custom filters are evaluated whether or not a search term has been provided.\n // We need to match every filter to be included in the results.\n const matchesColumnFilters = headersWithCustomFilters.every(filterFn(item, search, defaultFilter))\n\n // Headers without custom filters are only filtered by the `search` property if it is defined.\n // We only need a single column to match the search term to be included in the results.\n const matchesSearchTerm = !search || headersWithoutCustomFilters.some(filterFn(item, search, customFilter))\n\n return matchesColumnFilters && matchesSearchTerm\n })\n } else {\n return items\n }\n}\n\n/* @vue/component */\nexport default mixins(\n VDataIterator,\n Loadable,\n Mouse,\n).extend({\n name: 'v-data-table',\n\n // https://github.com/vuejs/vue/issues/6872\n directives: {\n ripple,\n },\n\n props: {\n headers: {\n type: Array,\n default: () => [],\n } as PropValidator<DataTableHeader[]>,\n showSelect: Boolean,\n checkboxColor: String,\n showExpand: Boolean,\n showGroupBy: Boolean,\n // TODO: Fix\n // virtualRows: Boolean,\n height: [Number, String],\n hideDefaultHeader: Boolean,\n caption: String,\n dense: Boolean,\n headerProps: Object,\n calculateWidths: Boolean,\n fixedHeader: Boolean,\n headersLength: Number,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n customFilter: {\n type: Function,\n default: defaultFilter,\n } as PropValidator<typeof defaultFilter>,\n filterMode: {\n type: String,\n default: 'intersection',\n } as PropValidator<DataTableFilterMode>,\n itemClass: {\n type: [String, Function],\n default: () => '',\n } as PropValidator<RowClassFunction | string>,\n itemStyle: {\n type: [String, Function],\n default: () => '',\n } as PropValidator<RowStyleFunction | string>,\n loaderHeight: {\n type: [Number, String],\n default: 4,\n },\n },\n\n data () {\n return {\n internalGroupBy: [] as string[],\n openCache: {} as { [key: string]: boolean },\n widths: [] as number[],\n }\n },\n\n computed: {\n computedHeaders (): DataTableHeader[] {\n if (!this.headers) return []\n const headers = this.headers.filter(h => h.value === undefined || !this.internalGroupBy.find(v => v === h.value))\n const defaultHeader = { text: '', sortable: false, width: '1px' }\n\n if (this.showSelect) {\n const index = headers.findIndex(h => h.value === 'data-table-select')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-select' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n if (this.showExpand) {\n const index = headers.findIndex(h => h.value === 'data-table-expand')\n if (index < 0) headers.unshift({ ...defaultHeader, value: 'data-table-expand' })\n else headers.splice(index, 1, { ...defaultHeader, ...headers[index] })\n }\n\n return headers\n },\n colspanAttrs (): object | undefined {\n return this.isMobile ? undefined : {\n colspan: this.headersLength || this.computedHeaders.length,\n }\n },\n columnSorters (): Record<string, DataTableCompareFunction> {\n return this.computedHeaders.reduce<Record<string, DataTableCompareFunction>>((acc, header) => {\n if (header.sort) acc[header.value] = header.sort\n return acc\n }, {})\n },\n headersWithCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n headersWithoutCustomFilters (): DataTableHeader[] {\n return this.headers.filter(header => !header.filter && (!header.hasOwnProperty('filterable') || header.filterable === true))\n },\n sanitizedHeaderProps (): Record<string, any> {\n return camelizeObjectKeys(this.headerProps)\n },\n computedItemsPerPage (): number {\n const itemsPerPage = this.options && this.options.itemsPerPage ? this.options.itemsPerPage : this.itemsPerPage\n const itemsPerPageOptions: DataItemsPerPageOption[] | undefined = this.sanitizedFooterProps.itemsPerPageOptions\n\n if (\n itemsPerPageOptions &&\n !itemsPerPageOptions.find(item => typeof item === 'number' ? item === itemsPerPage : item.value === itemsPerPage)\n ) {\n const firstOption = itemsPerPageOptions[0]\n return typeof firstOption === 'object' ? firstOption.value : firstOption\n }\n\n return itemsPerPage\n },\n groupByText (): string {\n return this.headers?.find(header => header.value === this.internalGroupBy?.[0])?.text ?? ''\n },\n },\n\n created () {\n const breakingProps = [\n ['sort-icon', 'header-props.sort-icon'],\n ['hide-headers', 'hide-default-header'],\n ['select-all', 'show-select'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n },\n\n mounted () {\n // if ((!this.sortBy || !this.sortBy.length) && (!this.options.sortBy || !this.options.sortBy.length)) {\n // const firstSortable = this.headers.find(h => !('sortable' in h) || !!h.sortable)\n // if (firstSortable) this.updateOptions({ sortBy: [firstSortable.value], sortDesc: [false] })\n // }\n\n if (this.calculateWidths) {\n window.addEventListener('resize', this.calcWidths)\n this.calcWidths()\n }\n },\n\n beforeDestroy () {\n if (this.calculateWidths) {\n window.removeEventListener('resize', this.calcWidths)\n }\n },\n\n methods: {\n calcWidths () {\n this.widths = Array.from(this.$el.querySelectorAll('th')).map(e => e.clientWidth)\n },\n customFilterWithColumns (items: any[], search: string) {\n return searchTableItems(\n items,\n search,\n this.headersWithCustomFilters,\n this.headersWithoutCustomFilters,\n this.customFilter,\n this.filterMode\n )\n },\n customSortWithHeaders (items: any[], sortBy: string[], sortDesc: boolean[], locale: string) {\n return this.customSort(items, sortBy, sortDesc, locale, this.columnSorters)\n },\n createItemProps (item: any, index: number): DataTableItemProps {\n const data = {\n ...VDataIterator.methods.createItemProps.call(this, item, index),\n headers: this.computedHeaders,\n }\n\n return {\n ...data,\n class: {\n 'v-data-table__selected': data.isSelected,\n },\n ...this.getDefaultMouseEventHandlers(':row', () => data, true),\n // TODO: the first argument should be the event, and the second argument should be data,\n // but this is a breaking change so it's for v3\n onClick: (event: MouseEvent) => this.$emit('click:row', item, data, event)\n }\n },\n genCaption (props: DataScopeProps) {\n if (this.caption) return [h('caption', [this.caption])]\n\n return getSlot(this, 'caption', props, true)\n },\n genColgroup (props: DataScopeProps) {\n return h('colgroup', this.computedHeaders.map(header => {\n return h('col', {\n class: {\n divider: header.divider,\n },\n })\n }))\n },\n genLoading () {\n const th = h('th', {\n class: 'column',\n attrs: this.colspanAttrs,\n }, [this.genProgress()])\n\n const tr = h('tr', {\n class: 'v-data-table__progress',\n }, [th])\n\n return h('thead', [tr])\n },\n genHeaders (props: DataScopeProps) {\n const data = {\n ...this.sanitizedHeaderProps,\n headers: this.computedHeaders,\n options: props.options,\n mobile: this.isMobile,\n showGroupBy: this.showGroupBy,\n checkboxColor: this.checkboxColor,\n someItems: this.someItems,\n everyItem: this.everyItem,\n singleSelect: this.singleSelect,\n disableSort: this.disableSort,\n onSort: props.sort,\n onGroup: props.group,\n 'onToggle-select-all': this.toggleSelectAll\n }\n\n\n // TODO: rename to 'head'? (thead, tbody, tfoot)\n const children: VNodeChildrenArrayContents = [getSlot(this, 'header', {\n ...data,\n isMobile: this.isMobile,\n })]\n\n if (!this.hideDefaultHeader) {\n const scopedSlots = getPrefixedScopedSlots('header.', this.$slots)\n children.push(h(VDataTableHeader, {\n ...data,\n\n }, scopedSlots))\n }\n\n if (this.loading) children.push(this.genLoading())\n\n return children\n },\n genEmptyWrapper (content: VNodeChildrenArrayContents) {\n return h('tr', {\n class: 'v-data-table__empty-wrapper',\n }, [\n h('td', {\n attrs: this.colspanAttrs,\n }, content),\n ])\n },\n genItems (items: any[], props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n return props.groupedItems\n ? this.genGroupedRows(props.groupedItems, props)\n : this.genRows(items, props)\n },\n genGroupedRows (groupedItems: ItemGroup<any>[], props: DataScopeProps) {\n return groupedItems.map(group => {\n if (!this.openCache.hasOwnProperty(group.name)) this.openCache[group.name] = true\n\n if (this.$slots.group) {\n return this.$slots.group({\n group: group.name,\n options: props.options,\n isMobile: this.isMobile,\n items: group.items,\n headers: this.computedHeaders,\n })\n } else {\n return this.genDefaultGroupedRow(group.name, group.items, props)\n }\n })\n },\n genDefaultGroupedRow (group: string, items: any[], props: DataScopeProps) {\n const isOpen = !!this.openCache[group]\n const children: VNodeChildren = [\n h('template', { slot: 'row.content' }, this.genRows(items, props)),\n ]\n const toggleFn = () => this.openCache[group] = !this.openCache[group]\n const removeFn = () => props.updateOptions({ groupBy: [], groupDesc: [] })\n\n if (this.$slots['group.header']) {\n children.unshift(h('template', { slot: 'column.header' }, [\n this.$slots['group.header']!({\n group,\n groupBy: props.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n remove: removeFn,\n }),\n ]))\n } else {\n const toggle = h(VBtn, {\n class: 'ma-0',\n icon: true,\n small: true,\n onClick: toggleFn\n }, [h(VIcon, [isOpen ? '$minus' : '$plus'])])\n\n const remove = h(VBtn, {\n class: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: removeFn,\n },\n }, [h(VIcon, ['$close'])])\n\n const column = h('td', {\n class: 'text-start',\n attrs: this.colspanAttrs,\n }, [toggle, `${this.groupByText}: ${group}`, remove])\n\n children.unshift(h('template', { slot: 'column.header' }, [column]))\n }\n\n if (this.$slots['group.summary']) {\n children.push(h('template', { slot: 'column.summary' }, [\n this.$slots['group.summary']!({\n group,\n groupBy: props.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n }),\n ]))\n }\n\n return h(RowGroup, {\n key: group,\n props: {\n value: isOpen,\n },\n }, children)\n },\n genRows (items: any[], props: DataScopeProps) {\n return this.$slots.item ? this.genScopedRows(items, props) : this.genDefaultRows(items, props)\n },\n genScopedRows (items: any[], props: DataScopeProps) {\n const rows = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n rows.push(this.$slots.item!({\n ...this.createItemProps(item, i),\n isMobile: this.isMobile,\n }))\n\n\n if (this.isExpanded(item)) {\n rows.push(this.$slots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n index: i,\n item,\n }))\n }\n }\n\n return rows\n },\n genDefaultRows (items: any[], props: DataScopeProps) {\n return this.$slots['expanded-item']\n ? items.map((item, index) => this.genDefaultExpandedRow(item, index))\n : items.map((item, index) => this.genDefaultSimpleRow(item, index))\n },\n genDefaultExpandedRow (item: any, index: number): VNode {\n const isExpanded = this.isExpanded(item)\n const classes = {\n 'v-data-table__expanded v-data-table__expanded__row': isExpanded,\n }\n const headerRow = this.genDefaultSimpleRow(item, index, classes)\n const expandedRow = h('tr', {\n class: 'v-data-table__expanded v-data-table__expanded__content',\n }, [this.$slots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n item,\n })])\n\n return h(RowGroup, {\n props: {\n value: isExpanded,\n },\n }, [\n h('template', { slot: 'row.header' }, [headerRow]),\n h('template', { slot: 'row.content' }, [expandedRow]),\n ])\n },\n genDefaultSimpleRow (item: any, index: number, classes: Record<string, boolean> = {}): VNode {\n const scopedSlots = getPrefixedScopedSlots('item.', this.$slots)\n\n const data = this.createItemProps(item, index)\n\n if (this.showSelect) {\n const slot = scopedSlots['data-table-select']\n scopedSlots['data-table-select'] = slot ? () => slot({\n ...data,\n isMobile: this.isMobile,\n }) : () => h(VSimpleCheckbox, {\n class: 'v-data-table__checkbox',\n value: data.isSelected,\n disabled: !this.isSelectable(item),\n color: this.checkboxColor ?? '',\n onInput: (val: boolean) => data.select(val),\n })\n }\n\n if (this.showExpand) {\n const slot = scopedSlots['data-table-expand']\n scopedSlots['data-table-expand'] = slot ? () => slot(data) : () => h(VIcon, {\n class: ['v-data-table__expand-icon', {\n 'v-data-table__expand-icon--active': data.isExpanded,\n }],\n onClick: (e: MouseEvent) => {\n e.stopPropagation()\n data.expand(!data.isExpanded)\n }\n }, [this.expandIcon])\n }\n\n return h(this.isMobile ? MobileRow : Row, {\n key: getObjectValueByPath(item, this.itemKey),\n class: mergeClasses(\n { ...classes, 'v-data-table__selected': data.isSelected },\n getPropertyFromItem(item, this.itemClass)\n ),\n style: mergeStyles({}, getPropertyFromItem(item, this.itemStyle)),\n headers: this.computedHeaders,\n hideDefaultHeader: this.hideDefaultHeader,\n index,\n item,\n rtl: this.$vuetify.rtl,\n on: data.on,\n }, scopedSlots)\n },\n genBody (props: DataScopeProps): VNode | string | VNodeChildren {\n const data = {\n ...props,\n expand: this.expand,\n headers: this.computedHeaders,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n isSelected: this.isSelected,\n select: this.select,\n }\n\n if (this.$slots.body) {\n return this.$slots.body!(data)\n }\n\n return h('tbody', [\n getSlot(this, 'body.prepend', data, true),\n this.genItems(props.items, props),\n getSlot(this, 'body.append', data, true),\n ])\n },\n genFoot (props: DataScopeProps): VNode[] | undefined {\n return this.$slots.foot?.(props)\n },\n genFooters (props: DataScopeProps) {\n const data = {\n options: props.options,\n pagination: props.pagination,\n itemsPerPageText: '$vuetify.dataTable.itemsPerPageText',\n ...this.sanitizedFooterProps,\n 'onUpdate:options': (value: any) => props.updateOptions(value),\n }\n\n const children: VNodeChildren = [\n getSlot(this, 'footer', {\n ...data,\n widths: this.widths,\n headers: this.computedHeaders\n }, true),\n ]\n\n if (!this.hideDefaultFooter) {\n children.push(h(VDataFooter, {\n ...data\n }, getPrefixedScopedSlots('footer.', this.$slots)))\n }\n\n return children\n },\n genDefaultScopedSlot (props: DataScopeProps): VNode {\n const simpleProps = {\n height: this.height,\n fixedHeader: this.fixedHeader,\n dense: this.dense,\n }\n\n // if (this.virtualRows) {\n // return h(VVirtualTable, {\n // props: Object.assign(simpleProps, {\n // items: props.items,\n // height: this.height,\n // rowHeight: this.dense ? 24 : 48,\n // headerHeight: this.dense ? 32 : 48,\n // // TODO: expose rest of props from virtual table?\n // }),\n // scopedSlots: {\n // items: ({ items }) => this.genItems(items, props) as any,\n // },\n // }, [\n // this.proxySlot('body.before', [this.genCaption(props), this.genHeaders(props)]),\n // this.proxySlot('bottom', this.genFooters(props)),\n // ])\n // }\n\n return h(VSimpleTable, {\n ...simpleProps,\n class: {\n 'v-data-table--mobile': this.isMobile,\n 'v-data-table--selectable': this.showSelect,\n },\n }, {\n default: () => [\n this.genCaption(props),\n this.genColgroup(props),\n this.genHeaders(props),\n this.genBody(props),\n this.genFoot(props),\n ],\n top: getSlot(this, 'top', {\n ...props,\n isMobile: this.isMobile,\n }, true),\n bottom: this.genFooters(props)\n })\n }\n },\n\n render (): VNode {\n return h(VData, {\n ...this.$props,\n customFilter: this.customFilterWithColumns,\n customSort: this.customSortWithHeaders,\n itemsPerPage: this.computedItemsPerPage,\n 'onUpdate:options': (v: DataOptions, old: DataOptions) => {\n this.internalGroupBy = v.groupBy || []\n !deepEqual(v, old) && this.$emit('update:options', v)\n },\n 'onUpdate:page': (v: number) => this.$emit('update:page', v),\n 'onUpdate:items-per-page': (v: number) => this.$emit('update:items-per-page', v),\n 'onUpdate:sort-by': (v: string | string[]) => this.$emit('update:sort-by', v),\n 'onUpdate:sort-desc': (v: boolean | boolean[]) => this.$emit('update:sort-desc', v),\n 'onUpdate:group-by': (v: string | string[]) => this.$emit('update:group-by', v),\n 'onUpdate:group-desc': (v: boolean | boolean[]) => this.$emit('update:group-desc', v),\n onPagination: (v: DataPagination, old: DataPagination) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'onCurrent-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'onPage-count': (v: number) => this.$emit('page-count', v),\n }, this.genDefaultScopedSlot)\n },\n})\n"],"sourceRoot":"","file":"VDataTable.js"}
|
|
@@ -215,7 +215,7 @@ export default mixins(VResponsive, Themeable).extend({
|
|
|
215
215
|
let content = VResponsive.methods.genContent.call(this);
|
|
216
216
|
|
|
217
217
|
if (this.naturalWidth) {
|
|
218
|
-
content = h(content.type, mergeProps(content.
|
|
218
|
+
content = h(content.type, mergeProps(content.props, {
|
|
219
219
|
style: {
|
|
220
220
|
width: `${this.naturalWidth}px`
|
|
221
221
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VImg/VImg.ts"],"names":[],"mappings":"AAAA,SAAQ,CAAR,EAAW,UAAX,EAAuB,cAAvB,EAAuC,UAAvC,QAAwD,KAAxD,C,CACA;;AACA,OAAO,wCAAP,C,CAEA;;AACA,OAAO,SAAP,MAAsB,4BAAtB,C,CAMA;;AACA,OAAO,WAAP,MAAwB,gBAAxB,C,CAEA;;AACA,OAAO,SAAP,MAAsB,wBAAtB,C,CAEA;;AACA,OAAO,MAAP,MAAmB,mBAAnB;AACA,OAAO,SAAP,MAAsB,sBAAtB;AACA,SAAS,WAAT,QAA4B,oBAA5B;AACA,SAAS,OAAT,QAAwB,oBAAxB;AACA,OAAO,SAAP,MAAsB,4BAAtB;AAUA,MAAM,YAAY,GAAG,OAAO,MAAP,KAAkB,WAAlB,IAAiC,0BAA0B,MAAhF;AAEA;;AACA,eAAe,MAAM,CACnB,WADmB,EAEnB,SAFmB,CAAN,CAGb,MAHa,CAGN;AACP,EAAA,IAAI,EAAE,OADC;AAGP,EAAA,UAAU,EAAE;AAAE,IAAA;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,OAAO;AACd,QAAA,IAAI,EAAE,SADQ;AAEd,QAAA,UAAU,EAAE,SAFE;AAGd,QAAA,SAAS,EAAE;AAHG,OAAP;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,IAAI,GAAA;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,mBAAmB,GAAA;AACjB,aAAO,MAAM,CAAC,KAAK,aAAL,CAAmB,MAAnB,IAA6B,KAAK,qBAAnC,CAAb;AACD,KAHO;;AAIR,IAAA,aAAa,GAAA;AACX,aAAO,KAAK,GAAL,IAAY,OAAO,KAAK,GAAZ,KAAoB,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,aAAa,GAAA;AACX,UAAI,EAAE,KAAK,aAAL,CAAmB,GAAnB,IAA0B,KAAK,aAAL,CAAmB,OAA7C,IAAwD,KAAK,QAA/D,CAAJ,EAA8E,OAAO,EAAP;AAE9E,YAAM,eAAe,GAAa,EAAlC;AACA,YAAM,GAAG,GAAG,KAAK,SAAL,GAAiB,KAAK,aAAL,CAAmB,OAApC,GAA8C,KAAK,UAA/D;AAEA,UAAI,KAAK,QAAT,EAAmB,eAAe,CAAC,IAAhB,CAAqB,mBAAmB,KAAK,QAAQ,GAArD;AACnB,UAAI,GAAJ,EAAS,eAAe,CAAC,IAAhB,CAAqB,QAAQ,GAAG,IAAhC;AAET,YAAM,KAAK,GAAG,CAAC,CAAC,KAAD,EAAQ;AACrB,QAAA,KAAK,EAAE;AACL,qCAA2B,KAAK,SAD3B;AAEL,qCAA2B,KAAK,OAF3B;AAGL,mCAAyB,CAAC,KAAK,OAH1B;AAIL,4BAAkB;AAJb,SADc;AAOrB,QAAA,KAAK,EAAE;AACL,UAAA,eAAe,EAAE,eAAe,CAAC,IAAhB,CAAqB,IAArB,CADZ;AAEL,UAAA,kBAAkB,EAAE,KAAK;AAFpB,SAPc;AAWrB,QAAA,GAAG,EAAE,CAAC,KAAK;AAXU,OAAR,CAAf;AAcA;;AACA,UAAI,CAAC,KAAK,UAAV,EAAsB,OAAO,KAAP;AAEtB,aAAO,CAAC,CAAC,UAAD,EAAa;AACnB,QAAA,IAAI,EAAE,KAAK,UADQ;AAEnB,QAAA,IAAI,EAAE;AAFa,OAAb,EAGL,CAAC,KAAD,CAHK,CAAR;AAID;;AAhDO,GAhDH;AAmGP,EAAA,KAAK,EAAE;AACL,IAAA,GAAG,GAAA;AACD;AACA,UAAI,CAAC,KAAK,SAAV,EAAqB,KAAK,IAAL,CAAU,SAAV,EAAqB,SAArB,EAAgC,IAAhC,EAArB,KACK,KAAK,SAAL;AACN,KALI;;AAML,iCAA6B;AANxB,GAnGA;;AA4GP,EAAA,OAAO,GAAA;AACL,SAAK,IAAL;AACD,GA9GM;;AAgHP,EAAA,OAAO,EAAE;AACP,IAAA,IAAI,CACF,OADE,EAEF,QAFE,EAGF,cAHE,EAGsB;AAExB;AACA;AACA;AACA,UACE,YAAY,IACZ,CAAC,cADD,IAEA,CAAC,KAAK,KAHR,EAIE;;AAEF,UAAI,KAAK,aAAL,CAAmB,OAAvB,EAAgC;AAC9B,cAAM,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,MAAM,GAAA;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,OAAO,GAAA;AACL,WAAK,QAAL,GAAgB,IAAhB;AACA,WAAK,KAAL,CAAW,OAAX,EAAoB,KAAK,GAAzB;AACD,KA3CM;;AA4CP,IAAA,MAAM,GAAA;AACJ;AACA,UAAI,KAAK,KAAT,EAAgB,KAAK,UAAL,GAAkB,KAAK,KAAL,CAAW,UAAX,IAAyB,KAAK,KAAL,CAAW,GAAtD;AACjB,KA/CM;;AAgDP,IAAA,SAAS,GAAA;AACP,YAAM,KAAK,GAAG,IAAI,KAAJ,EAAd;AACA,WAAK,KAAL,GAAa,KAAb;;AAEA,MAAA,KAAK,CAAC,MAAN,GAAe,MAAK;AAClB;AACA,YAAI,KAAK,CAAC,MAAV,EAAkB;AAChB,UAAA,KAAK,CAAC,MAAN,GAAe,KAAf,CAAsB,GAAD,IAAsB;AACzC,YAAA,WAAW,CACT,qDAAA,GACA,QAAQ,KAAK,aAAL,CAAmB,GAAG,EAD9B,IAEC,GAAG,CAAC,OAAJ,GAAc,qBAAqB,GAAG,CAAC,OAAO,EAA9C,GAAmD,EAFpD,CADS,EAIT,IAJS,CAAX;AAMD,WAPD,EAOG,IAPH,CAOQ,KAAK,MAPb;AAQD,SATD,MASO;AACL,eAAK,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,WAAW,CAAE,GAAF,EAAyB,OAAA,GAAyB,GAAlD,EAAqD;AAC9D,YAAM,IAAI,GAAG,MAAK;AAChB,cAAM;AAAE,UAAA,aAAF;AAAiB,UAAA;AAAjB,YAAkC,GAAxC;;AAEA,YAAI,aAAa,IAAI,YAArB,EAAmC;AACjC,eAAK,YAAL,GAAoB,YAApB;AACA,eAAK,qBAAL,GAA6B,YAAY,GAAG,aAA5C;AACD,SAHD,MAGO,IAAI,CAAC,GAAG,CAAC,QAAL,IAAiB,KAAK,SAAtB,IAAmC,CAAC,KAAK,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,UAAU,GAAA;AACR,UAAI,OAAO,GAAU,WAAW,CAAC,OAAZ,CAAoB,UAApB,CAA+B,IAA/B,CAAoC,IAApC,CAArB;;AAEA,UAAI,KAAK,YAAT,EAAuB;AACrB,QAAA,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAT,EAAe,UAAU,CAAC,OAAO,CAAC,IAAT,EAAgB;AAClD,UAAA,KAAK,EAAE;AAAE,YAAA,KAAK,EAAE,GAAG,KAAK,YAAY;AAA7B;AAD2C,SAAhB,CAAzB,EAEP,OAAO,CAAC,QAFD,CAAX;AAGD;;AAED,aAAO,OAAP;AACD,KAtGM;;AAuGP,IAAA,gBAAgB,GAAA;AACd,YAAM,IAAI,GAAG,OAAO,CAAC,IAAD,EAAO,aAAP,CAApB;;AACA,UAAI,IAAJ,EAAU;AACR,cAAM,WAAW,GAAG,KAAK,SAAL,GAChB,CAAC,CAAC,CAAC,KAAD,EAAQ;AACV,UAAA,KAAK,EAAE;AADG,SAAR,EAED,IAFC,CAAF,CADgB,GAIhB,EAJJ;AAMA,YAAI,CAAC,KAAK,UAAV,EAAsB,OAAO,WAAW,CAAC,CAAD,CAAlB;AAEtB,eAAO,CAAC,CAAC,UAAD,EAAa;AACnB,UAAA,MAAM,EAAE,IADW;AAEnB,UAAA,IAAI,EAAE,KAAK;AAFQ,SAAb,EAGL,WAHK,CAAR;AAID;AACF;;AAvHM,GAhHF;;AA0OP,EAAA,MAAM,GAAA;AACJ,QAAI,IAAI,GAAG,WAAW,CAAC,MAAZ,CAAmB,IAAnB,CAAwB,IAAxB,EAA8B,CAA9B,CAAX;AAEA,UAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,KAAN,EAAa;AACjC,oBAAc,KAAK,GADc;AAEjC,MAAA,IAAI,EAAE,KAAK,GAAL,GAAW,KAAX,GAAmB,SAFQ;AAGjC,MAAA,KAAK,EAAG,EACN,GAAG,KAAK,YADF;AAEN,mBAAW;AAFL;AAHyB,KAAb,CAAtB;AASA,IAAA,IAAI,CAAC,QAAL,GAAgB,CACd,KAAK,aADS,EAEd,KAAK,aAFS,EAGd,KAAK,gBAAL,EAHc,EAId,KAAK,UAAL,EAJc,CAAhB;AAOA,IAAA,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAN,EAAY,IAAZ,EAAkB,IAAI,CAAC,QAAvB,CAAR;AAEA,WAAO,cAAc,CAAC,IAAD,EAAO,YAAY,GACpC,CACA,CACE,SADF,EAEE;AACE,MAAA,OAAO,EAAE,KAAK,IADhB;AAEE,MAAA,OAAO,EAAE,KAAK;AAFhB,KAFF,EAME,EANF,EAOE;AACE,MAAA,IAAI,EAAE;AADR,KAPF,CADA,CADoC,GAepC,EAfiB,CAArB;AAgBD;;AA/QM,CAHM,CAAf","sourcesContent":["import {h, Transition, withDirectives, mergeProps} from 'vue'\n// 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'\nimport Intersect from '../../directives/intersect'\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 = h('div', {\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n 'v-image__image': true\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 h(Transition, {\n name: this.transition,\n mode: 'in-out',\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 let content: VNode = VResponsive.methods.genContent.call(this)\n\n if (this.naturalWidth) {\n content = h(content.type, mergeProps(content.data!, {\n style: { width: `${this.naturalWidth}px` },\n }), content.children)\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 ? [h('div', {\n class: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return h(Transition, {\n appear: true,\n name: this.transition,\n }, placeholder)\n }\n },\n },\n\n render (): VNode {\n let node = VResponsive.render.call(this, h)\n\n const data = mergeData(node.props, {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n class: {\n ...this.themeClasses,\n 'v-image': true\n }\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n node = h(node.type, data, node.children)\n\n return withDirectives(node, hasIntersect\n ? [\n [\n Intersect,\n {\n handler: this.init,\n options: this.options,\n },\n '',\n {\n once: true\n }\n ]\n ]\n\n : [])\n },\n})\n"],"sourceRoot":"","file":"VImg.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VImg/VImg.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, Transition, withDirectives, mergeProps} from 'vue'\n// 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'\nimport Intersect from '../../directives/intersect'\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 = h('div', {\n class: {\n 'v-image__image--preload': this.isLoading,\n 'v-image__image--contain': this.contain,\n 'v-image__image--cover': !this.contain,\n 'v-image__image': true\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 h(Transition, {\n name: this.transition,\n mode: 'in-out',\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 let content: VNode = VResponsive.methods.genContent.call(this)\n\n if (this.naturalWidth) {\n content = h(content.type, mergeProps(content.props, {\n style: { width: `${this.naturalWidth}px` },\n }), content.children)\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 ? [h('div', {\n class: 'v-image__placeholder',\n }, slot)]\n : []\n\n if (!this.transition) return placeholder[0]\n\n return h(Transition, {\n appear: true,\n name: this.transition,\n }, placeholder)\n }\n },\n },\n\n render (): VNode {\n let node = VResponsive.render.call(this, h)\n\n const data = mergeData(node.props, {\n 'aria-label': this.alt,\n role: this.alt ? 'img' : undefined,\n class: {\n ...this.themeClasses,\n 'v-image': true\n }\n })\n\n node.children = [\n this.__cachedSizer,\n this.__cachedImage,\n this.__genPlaceholder(),\n this.genContent(),\n ] as VNode[]\n\n node = h(node.type, data, node.children)\n\n return withDirectives(node, hasIntersect\n ? [\n [\n Intersect,\n {\n handler: this.init,\n options: this.options,\n },\n '',\n {\n once: true\n }\n ]\n ]\n\n : [])\n },\n})\n"],"sourceRoot":"","file":"VImg.js"}
|
|
@@ -447,8 +447,7 @@ export default baseMixins.extend({
|
|
|
447
447
|
'v-menu--attached': this.attach === '' || this.attach === true || this.attach === 'attach'
|
|
448
448
|
}]
|
|
449
449
|
};
|
|
450
|
-
const directives = [[Resize, this.onResize, '500']];
|
|
451
|
-
|
|
450
|
+
const directives = [[Resize, this.onResize, '500']];
|
|
452
451
|
return withDirectives(h('div', data, [!this.activator && this.genActivator(), this.showLazyContent(() => [h(VThemeProvider, {
|
|
453
452
|
root: true,
|
|
454
453
|
light: this.light,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VMenu/VMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, Transition, vShow, withDirectives} from 'vue'\n// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData, PropType } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n contentProps: {\n type: Object as PropType<Record<string, any>>,\n default: () => ({}),\n },\n },\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.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.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 h(Transition, {\n name: this.transition\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [[\n vShow,\n this.isContentActive\n ]]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push([\n ClickOutside,\n {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n ])\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n ...this.getScopeIdAttrs(),\n ...this.contentProps,\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n class: ['v-menu__content', {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n }],\n style: this.styles,\n ref: 'content',\n onClick: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n onKeydown: this.onKeyDown,\n } as VNodeData\n\n if (this.onScroll) {\n options.onScroll = this.onScroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.onMouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.onMouseleave = this.mouseLeaveHandler\n }\n\n const directives = this.genDirectives()\n\n return withDirectives(h('div', options, this.getContentSlot()), directives)\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.disableKeys) return\n\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (): VNode {\n const data = {\n class: ['v-menu', {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }]\n }\n\n const directives = [[\n Resize,\n this.onResize,\n '500'\n ]]\n\n // console.log('vmenurender', this, this.activator, this.getActivator())\n\n return withDirectives(h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n h(VThemeProvider, {\n root: true,\n light: this.light,\n dark: this.dark,\n }, [this.genTransition()]),\n ]),\n ]), directives)\n },\n})\n"],"sourceRoot":"","file":"VMenu.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VMenu/VMenu.ts"],"names":[],"mappings":"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","sourcesContent":["import {h, Transition, vShow, withDirectives} from 'vue'\n// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VThemeProvider } from '../VThemeProvider'\n\n// Mixins\nimport Activatable from '../../mixins/activatable'\nimport Delayable from '../../mixins/delayable'\nimport Dependent from '../../mixins/dependent'\nimport Menuable from '../../mixins/menuable'\nimport Returnable from '../../mixins/returnable'\nimport Roundable from '../../mixins/roundable'\nimport Themeable from '../../mixins/themeable'\n\n// Directives\nimport ClickOutside from '../../directives/click-outside'\nimport Resize from '../../directives/resize'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { removed } from '../../util/console'\nimport {\n convertToUnit,\n keyCodes,\n} from '../../util/helpers'\nimport goTo from '../../services/goto'\n\n// Types\nimport { VNode, VNodeDirective, VNodeData, PropType } from 'vue'\n\nconst baseMixins = mixins(\n Dependent,\n Delayable,\n Returnable,\n Roundable,\n Themeable,\n Menuable,\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-menu',\n\n provide (): object {\n return {\n isInMenu: true,\n // Pass theme through to default slot\n theme: this.theme,\n }\n },\n\n props: {\n auto: Boolean,\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n closeOnContentClick: {\n type: Boolean,\n default: true,\n },\n disabled: Boolean,\n disableKeys: Boolean,\n maxHeight: {\n type: [Number, String],\n default: 'auto',\n },\n offsetX: Boolean,\n offsetY: Boolean,\n openOnHover: Boolean,\n origin: {\n type: String,\n default: 'top left',\n },\n transition: {\n type: [Boolean, String],\n default: 'v-menu-transition',\n },\n contentProps: {\n type: Object as PropType<Record<string, any>>,\n default: () => ({}),\n },\n },\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.methods.genActivatorAttributes.call(this)\n\n if (this.activeTile && this.activeTile.id) {\n return {\n ...attributes,\n 'aria-activedescendant': this.activeTile.id,\n }\n }\n\n return attributes\n },\n genActivatorListeners () {\n const listeners = Menuable.methods.genActivatorListeners.call(this)\n\n if (!this.disableKeys) {\n listeners.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 h(Transition, {\n name: this.transition\n }, [content])\n },\n genDirectives (): VNodeDirective[] {\n const directives = [[\n vShow,\n this.isContentActive\n ]]\n\n // Do not add click outside for hover menu\n if (!this.openOnHover && this.closeOnClick) {\n directives.push([\n ClickOutside,\n {\n handler: () => { this.isActive = false },\n closeConditional: this.closeConditional,\n include: () => [this.$el, ...this.getOpenDependentElements()],\n },\n ])\n }\n\n return directives\n },\n genContent (): VNode {\n const options = {\n ...this.getScopeIdAttrs(),\n ...this.contentProps,\n role: 'role' in this.$attrs ? this.$attrs.role : 'menu',\n class: ['v-menu__content', {\n ...this.rootThemeClasses,\n ...this.roundedClasses,\n 'v-menu__content--auto': this.auto,\n 'v-menu__content--fixed': this.activatorFixed,\n menuable__content__active: this.isActive,\n [this.contentClass.trim()]: true,\n }],\n style: this.styles,\n ref: 'content',\n onClick: (e: Event) => {\n const target = e.target as HTMLElement\n\n if (target.getAttribute('disabled')) return\n if (this.closeOnContentClick) this.isActive = false\n },\n onKeydown: this.onKeyDown,\n } as VNodeData\n\n if (this.onScroll) {\n options.onScroll = this.onScroll\n }\n\n if (!this.disabled && this.openOnHover) {\n options.onMouseenter = this.mouseEnterHandler\n }\n\n if (this.openOnHover) {\n options.onMouseleave = this.mouseLeaveHandler\n }\n\n const directives = this.genDirectives()\n\n return withDirectives(h('div', options, this.getContentSlot()), directives)\n },\n getTiles () {\n if (!this.$refs.content) return\n\n this.tiles = Array.from(this.$refs.content.querySelectorAll('.v-list-item, .v-divider, .v-subheader'))\n },\n mouseEnterHandler () {\n this.runDelay('open', () => {\n if (this.hasJustFocused) return\n\n this.hasJustFocused = true\n })\n },\n mouseLeaveHandler (e: MouseEvent) {\n // Prevent accidental re-activation\n this.runDelay('close', () => {\n if (this.$refs.content?.contains(e.relatedTarget as HTMLElement)) return\n\n requestAnimationFrame(() => {\n this.isActive = false\n this.callDeactivate()\n })\n })\n },\n nextTile () {\n const tile = this.tiles[this.listIndex + 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = -1\n this.nextTile()\n\n return\n }\n\n this.listIndex++\n if (tile.tabIndex === -1) this.nextTile()\n },\n prevTile () {\n const tile = this.tiles[this.listIndex - 1]\n\n if (!tile) {\n if (!this.tiles.length) return\n\n this.listIndex = this.tiles.length\n this.prevTile()\n\n return\n }\n\n this.listIndex--\n if (tile.tabIndex === -1) this.prevTile()\n },\n lastTile () {\n const tile = this.tiles[this.tiles.length - 1]\n\n if (!tile) return\n\n this.listIndex = this.tiles.length - 1\n\n if (tile.tabIndex === -1) this.prevTile()\n },\n firstTile () {\n const tile = this.tiles[0]\n\n if (!tile) return\n\n this.listIndex = 0\n\n if (tile.tabIndex === -1) this.nextTile()\n },\n onKeyDown (e: KeyboardEvent) {\n if (this.disableKeys) return\n\n if (e.keyCode === keyCodes.esc) {\n // Wait for dependent elements to close first\n setTimeout(() => { this.isActive = false })\n const activator = this.getActivator()\n this.$nextTick(() => activator && activator.focus())\n } else if (\n !this.isActive &&\n [keyCodes.up, keyCodes.down].includes(e.keyCode)\n ) {\n this.isActive = true\n }\n\n // Allow for isActive watcher to generate tile list\n this.$nextTick(() => this.changeListIndex(e))\n },\n onResize () {\n if (!this.isActive) return\n\n // Account for screen resize\n // and orientation change\n // eslint-disable-next-line no-unused-expressions\n this.$refs.content.offsetWidth\n this.updateDimensions()\n\n // When resizing to a smaller width\n // content width is evaluated before\n // the new activator width has been\n // set, causing it to not size properly\n // hacky but will revisit in the future\n clearTimeout(this.resizeTimeout)\n this.resizeTimeout = window.setTimeout(this.updateDimensions, 100)\n },\n },\n\n render (): VNode {\n const data = {\n class: ['v-menu', {\n 'v-menu--attached':\n this.attach === '' ||\n this.attach === true ||\n this.attach === 'attach',\n }]\n }\n\n const directives = [[\n Resize,\n this.onResize,\n '500'\n ]]\n\n return withDirectives(h('div', data, [\n !this.activator && this.genActivator(),\n this.showLazyContent(() => [\n h(VThemeProvider, {\n root: true,\n light: this.light,\n dark: this.dark,\n }, [this.genTransition()]),\n ]),\n ]), directives)\n },\n})\n"],"sourceRoot":"","file":"VMenu.js"}
|
package/lib/framework.js
CHANGED
|
@@ -71,12 +71,15 @@ export default baseMixins.extend({
|
|
|
71
71
|
},
|
|
72
72
|
|
|
73
73
|
genActivator() {
|
|
74
|
-
|
|
74
|
+
let node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {
|
|
75
75
|
attrs: { ...this.genActivatorListeners(),
|
|
76
76
|
...this.genActivatorAttributes()
|
|
77
77
|
}
|
|
78
78
|
})) || [];
|
|
79
|
-
|
|
79
|
+
node = Array.isArray(node) ? node : [node];
|
|
80
|
+
this.activatorNode = node.flatMap(node => {
|
|
81
|
+
return node.type === Symbol.for('v-fgt') ? node.children : node;
|
|
82
|
+
});
|
|
80
83
|
return node;
|
|
81
84
|
},
|
|
82
85
|
|
|
@@ -123,7 +126,9 @@ export default baseMixins.extend({
|
|
|
123
126
|
},
|
|
124
127
|
|
|
125
128
|
getActivator(e) {
|
|
126
|
-
// If we've already fetched the activator, re-use
|
|
129
|
+
var _a; // If we've already fetched the activator, re-use
|
|
130
|
+
|
|
131
|
+
|
|
127
132
|
if (this.activatorElement) return this.activatorElement;
|
|
128
133
|
let activator = null;
|
|
129
134
|
|
|
@@ -144,7 +149,7 @@ export default baseMixins.extend({
|
|
|
144
149
|
// Use the contents of the activator slot
|
|
145
150
|
// There's either only one element in it or we
|
|
146
151
|
// don't have a click event to use as a last resort
|
|
147
|
-
const vm = this.activatorNode[0].component.ctx;
|
|
152
|
+
const vm = (_a = this.activatorNode[0].component) === null || _a === void 0 ? void 0 : _a.ctx;
|
|
148
153
|
|
|
149
154
|
if (vm && (vm.isActivatable !== undefined || vm.isMenuable !== undefined)) {
|
|
150
155
|
// Activator is actually another activatible component, use its activator (#8846)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mixins/activatable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Delayable from '../delayable'\nimport Toggleable from '../toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype Listeners = Dictionary<(e: MouseEvent & KeyboardEvent & FocusEvent) => void>\n\nconst baseMixins = mixins(\n Delayable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'activatable',\n\n props: {\n activator: {\n default: null as unknown as PropType<string | HTMLElement | VNode | Element | null>,\n validator: (val: string | object) => {\n return ['string', 'object'].includes(typeof val)\n },\n },\n disabled: Boolean,\n internalActivator: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n openOnFocus: Boolean,\n },\n\n data: () => ({\n // Do not use this directly, call getActivator() instead\n activatorElement: null as HTMLElement | null,\n activatorNode: [] as VNode[],\n events: ['click', 'mouseenter', 'mouseleave', 'focus'],\n listeners: {} as Listeners,\n }),\n\n watch: {\n activator: 'resetActivator',\n openOnFocus: 'resetActivator',\n openOnHover: 'resetActivator',\n },\n\n mounted () {\n const slotType = getSlotType(this, 'activator', true)\n\n if (slotType && ['v-slot', 'normal'].includes(slotType)) {\n consoleError(`The activator slot must be bound, try '<template v-slot:activator=\"{ on }\"><v-btn v-on=\"on\">'`, this)\n }\n\n this.addActivatorEvents()\n },\n\n beforeDestroy () {\n this.removeActivatorEvents()\n },\n\n computed: {\n isActivatable() {\n return true\n }\n },\n\n methods: {\n addActivatorEvents () {\n if (\n !this.activator ||\n this.disabled ||\n !this.getActivator()\n ) return\n\n this.listeners = this.genActivatorListeners()\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n this.getActivator()!.addEventListener(key, this.listeners[key] as any)\n }\n },\n genActivator () {\n const node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n attrs: {\n ...this.genActivatorListeners(),\n ...this.genActivatorAttributes(),\n }\n })) || []\n\n this.activatorNode = node\n\n return node\n },\n genActivatorAttributes () {\n return {\n role: (this.openOnClick && !this.openOnHover) ? 'button' : undefined,\n 'aria-haspopup': true,\n 'aria-expanded': String(this.isActive),\n }\n },\n genActivatorListeners () {\n if (this.disabled) return {}\n\n const listeners: Listeners = {}\n\n if (this.openOnHover) {\n listeners.onMouseenter = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('open')\n }\n listeners.onMouseleave = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('close')\n }\n } else if (this.openOnClick) {\n listeners.onClick = (e: MouseEvent) => {\n const activator = this.getActivator(e)\n if (activator) activator.focus()\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n if (this.openOnFocus) {\n listeners.onFocus = (e: FocusEvent) => {\n this.getActivator(e)\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n return listeners\n },\n getActivator (e?: Event): HTMLElement | null {\n // If we've already fetched the activator, re-use\n if (this.activatorElement) return this.activatorElement\n\n let activator = null\n\n if (this.activator) {\n const target = this.internalActivator ? this.$el : document\n\n if (typeof this.activator === 'string') {\n // Selector\n activator = target.querySelector(this.activator)\n } else if ((this.activator as any).$el) {\n // Component (ref)\n activator = (this.activator as any).$el\n } else {\n // HTMLElement | Element\n activator = this.activator\n }\n } else if (this.activatorNode.length === 1 || (this.activatorNode.length && !e)) {\n\n // Use the contents of the activator slot\n // There's either only one element in it or we\n // don't have a click event to use as a last resort\n const vm = this.activatorNode[0].component.ctx\n if (\n vm &&\n (vm.isActivatable !== undefined || vm.isMenuable !== undefined)\n ) {\n // Activator is actually another activatible component, use its activator (#8846)\n activator = (vm as any).getActivator()\n } else {\n activator = this.activatorNode[0].el as HTMLElement\n }\n } else if (e) {\n // Activated by a click or focus event\n activator = (e.currentTarget || e.target) as HTMLElement\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n this.activatorElement = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return this.activatorElement\n },\n getContentSlot () {\n return getSlot(this, 'default', this.getValueProxy(), true)\n },\n getValueProxy (): object {\n const self = this\n return {\n get value () {\n return self.isActive\n },\n set value (isActive: boolean) {\n self.isActive = isActive\n },\n }\n },\n removeActivatorEvents () {\n if (\n !this.activator ||\n !this.activatorElement\n ) return\n\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n (this.activatorElement as any).removeEventListener(key, this.listeners[key])\n }\n\n this.listeners = {}\n },\n resetActivator () {\n this.removeActivatorEvents()\n this.activatorElement = null\n this.getActivator()\n this.addActivatorEvents()\n }\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/mixins/activatable/index.ts"],"names":[],"mappings":"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","sourcesContent":["// Mixins\nimport Delayable from '../delayable'\nimport Toggleable from '../toggleable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { getSlot, getSlotType } from '../../util/helpers'\nimport { consoleError } from '../../util/console'\n\n// Types\nimport { VNode, PropType } from 'vue'\n\ntype Listeners = Dictionary<(e: MouseEvent & KeyboardEvent & FocusEvent) => void>\n\nconst baseMixins = mixins(\n Delayable,\n Toggleable\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'activatable',\n\n props: {\n activator: {\n default: null as unknown as PropType<string | HTMLElement | VNode | Element | null>,\n validator: (val: string | object) => {\n return ['string', 'object'].includes(typeof val)\n },\n },\n disabled: Boolean,\n internalActivator: Boolean,\n openOnClick: {\n type: Boolean,\n default: true,\n },\n openOnHover: Boolean,\n openOnFocus: Boolean,\n },\n\n data: () => ({\n // Do not use this directly, call getActivator() instead\n activatorElement: null as HTMLElement | null,\n activatorNode: [] as VNode[],\n events: ['click', 'mouseenter', 'mouseleave', 'focus'],\n listeners: {} as Listeners,\n }),\n\n watch: {\n activator: 'resetActivator',\n openOnFocus: 'resetActivator',\n openOnHover: 'resetActivator',\n },\n\n mounted () {\n const slotType = getSlotType(this, 'activator', true)\n\n if (slotType && ['v-slot', 'normal'].includes(slotType)) {\n consoleError(`The activator slot must be bound, try '<template v-slot:activator=\"{ on }\"><v-btn v-on=\"on\">'`, this)\n }\n\n this.addActivatorEvents()\n },\n\n beforeDestroy () {\n this.removeActivatorEvents()\n },\n\n computed: {\n isActivatable() {\n return true\n }\n },\n\n methods: {\n addActivatorEvents () {\n if (\n !this.activator ||\n this.disabled ||\n !this.getActivator()\n ) return\n\n this.listeners = this.genActivatorListeners()\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n this.getActivator()!.addEventListener(key, this.listeners[key] as any)\n }\n },\n genActivator () {\n let node = getSlot(this, 'activator', Object.assign(this.getValueProxy(), {\n attrs: {\n ...this.genActivatorListeners(),\n ...this.genActivatorAttributes(),\n }\n })) || []\n\n node = Array.isArray(node) ? node : [node]\n\n this.activatorNode = node.flatMap(node => {\n return node.type === Symbol.for('v-fgt') ? node.children : node\n })\n\n return node\n },\n genActivatorAttributes () {\n return {\n role: (this.openOnClick && !this.openOnHover) ? 'button' : undefined,\n 'aria-haspopup': true,\n 'aria-expanded': String(this.isActive),\n }\n },\n genActivatorListeners () {\n if (this.disabled) return {}\n\n const listeners: Listeners = {}\n\n if (this.openOnHover) {\n listeners.onMouseenter = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('open')\n }\n listeners.onMouseleave = (e: MouseEvent) => {\n this.getActivator(e)\n this.runDelay('close')\n }\n } else if (this.openOnClick) {\n listeners.onClick = (e: MouseEvent) => {\n const activator = this.getActivator(e)\n if (activator) activator.focus()\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n if (this.openOnFocus) {\n listeners.onFocus = (e: FocusEvent) => {\n this.getActivator(e)\n\n e.stopPropagation()\n\n this.isActive = !this.isActive\n }\n }\n\n return listeners\n },\n getActivator (e?: Event): HTMLElement | null {\n // If we've already fetched the activator, re-use\n if (this.activatorElement) return this.activatorElement\n\n let activator = null\n\n if (this.activator) {\n const target = this.internalActivator ? this.$el : document\n\n if (typeof this.activator === 'string') {\n // Selector\n activator = target.querySelector(this.activator)\n } else if ((this.activator as any).$el) {\n // Component (ref)\n activator = (this.activator as any).$el\n } else {\n // HTMLElement | Element\n activator = this.activator\n }\n } else if (this.activatorNode.length === 1 || (this.activatorNode.length && !e)) {\n\n // Use the contents of the activator slot\n // There's either only one element in it or we\n // don't have a click event to use as a last resort\n const vm = this.activatorNode[0].component?.ctx\n if (\n vm &&\n (vm.isActivatable !== undefined || vm.isMenuable !== undefined)\n ) {\n // Activator is actually another activatible component, use its activator (#8846)\n activator = (vm as any).getActivator()\n } else {\n activator = this.activatorNode[0].el as HTMLElement\n }\n } else if (e) {\n // Activated by a click or focus event\n activator = (e.currentTarget || e.target) as HTMLElement\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n this.activatorElement = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return this.activatorElement\n },\n getContentSlot () {\n return getSlot(this, 'default', this.getValueProxy(), true)\n },\n getValueProxy (): object {\n const self = this\n return {\n get value () {\n return self.isActive\n },\n set value (isActive: boolean) {\n self.isActive = isActive\n },\n }\n },\n removeActivatorEvents () {\n if (\n !this.activator ||\n !this.activatorElement\n ) return\n\n const keys = Object.keys(this.listeners)\n\n for (const key of keys) {\n (this.activatorElement as any).removeEventListener(key, this.listeners[key])\n }\n\n this.listeners = {}\n },\n resetActivator () {\n this.removeActivatorEvents()\n this.activatorElement = null\n this.getActivator()\n this.addActivatorEvents()\n }\n },\n})\n"],"sourceRoot":"","file":"index.js"}
|
package/package.json
CHANGED
|
@@ -203,7 +203,15 @@ export default defineComponent({
|
|
|
203
203
|
this.$emit('update:options', options)
|
|
204
204
|
},
|
|
205
205
|
deep: true,
|
|
206
|
-
|
|
206
|
+
/*
|
|
207
|
+
In Vue 3 this watcher fires even before created hook and
|
|
208
|
+
if mounting fails and the consumer code relies on update:options event to fetch data
|
|
209
|
+
it causes infinite loop because each data update triggers an attempt to render a table,
|
|
210
|
+
but because mounting constantly fails(for example, due to error in slot) it never happens.
|
|
211
|
+
Previously, in Vue 2 slot errors didn't cause mounting failure, we had partially rendered component.
|
|
212
|
+
This immediate prop is compensated by firing event in mounted hook.
|
|
213
|
+
*/
|
|
214
|
+
// immediate: true,
|
|
207
215
|
},
|
|
208
216
|
page (page: number) {
|
|
209
217
|
this.updateOptions({ page })
|
|
@@ -378,4 +386,7 @@ export default defineComponent({
|
|
|
378
386
|
render (): VNode {
|
|
379
387
|
return this.$slots.default && this.$slots.default(this.scopedProps)[0] as any
|
|
380
388
|
},
|
|
389
|
+
mounted() {
|
|
390
|
+
this.$emit('update:options', this.internalOptions)
|
|
391
|
+
},
|
|
381
392
|
})
|
|
@@ -244,7 +244,7 @@ export default mixins(
|
|
|
244
244
|
let content: VNode = VResponsive.methods.genContent.call(this)
|
|
245
245
|
|
|
246
246
|
if (this.naturalWidth) {
|
|
247
|
-
content = h(content.type, mergeProps(content.
|
|
247
|
+
content = h(content.type, mergeProps(content.props, {
|
|
248
248
|
style: { width: `${this.naturalWidth}px` },
|
|
249
249
|
}), content.children)
|
|
250
250
|
}
|