{"version":3,"sources":["webpack:///../../../../src/components/VDataTable/mixins/header.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderMobile.ts","webpack:///../../../src/components/VDataTable/VDataTableHeaderDesktop.ts","webpack:///../../src/util/dedupeModelListeners.ts","webpack:///../../src/util/rebuildFunctionalSlots.ts","webpack:///../../../src/components/VDataTable/VDataTableHeader.ts","webpack:///../../../src/components/VDataTable/Row.ts","webpack:///../../../src/components/VDataTable/RowGroup.ts","webpack:///../../../src/components/VDataTable/VSimpleTable.ts","webpack:///../../../src/components/VDataTable/MobileRow.ts","webpack:///../../../src/components/VDataTable/VDataTable.ts"],"names":["mixins","extend","directives","ripple","props","headers","type","Array","default","options","Object","page","itemsPerPage","sortBy","sortDesc","groupBy","groupDesc","multiSort","mustSort","checkboxColor","String","sortIcon","everyItem","Boolean","someItems","showGroupBy","singleSelect","disableSort","methods","genSelectAll","data","value","this","indeterminate","color","_a","on","input","v","$emit","$scopedSlots","$createElement","VSimpleCheckbox","staticClass","genSortIcon","VIcon","size","header","name","sortByText","genSortChip","children","item","text","sortIndex","findIndex","k","beingSorted","isDesc","push","class","sortable","active","asc","desc","VChip","click","e","stopPropagation","genSortSelect","items","VSelect","label","$vuetify","lang","t","hideDetails","multiple","menuProps","closeOnContentClick","change","scopedSlots","selection","render","h","find","wrapInArray","attrs","width","sortHeaders","filter","map","length","th","undefined","tr","genGroupByToggle","getAria","$t","key","ariaSort","ariaLabel","join","genHeader","role","scope","style","convertToUnit","minWidth","align","divider","hasOwnProperty","unshift","groupable","dedupeModelListeners","model","isArray","i","indexOf","callback","splice","rebuildFunctionalSlots","slots","slot","Vue","functional","mobile","rebuildSlots","mergeData","VDataTableHeaderMobile","VDataTableHeaderDesktop","needsTd","includes","tag","index","Number","rtl","computedSlots","columns","getObjectValueByPath","slotName","scopedSlot","regularSlot","isMobile","textAlign","cellClass","headerClass","contentClass","summaryClass","Themeable","dense","fixedHeader","height","computed","classes","$slots","top","bottom","themeClasses","genWrapper","wrapper","hideDefaultHeader","mobileRowChildren","filterFn","search","searchTableItems","headersWithCustomFilters","headersWithoutCustomFilters","customFilter","trim","matchesColumnFilters","every","defaultFilter","matchesSearchTerm","some","VDataIterator","Loadable","showSelect","showExpand","caption","headerProps","calculateWidths","headersLength","expandIcon","Function","itemClass","loaderHeight","internalGroupBy","openCache","widths","computedHeaders","defaultHeader","colspanAttrs","colspan","columnSorters","reduce","acc","sort","filterable","sanitizedHeaderProps","camelizeObjectKeys","computedItemsPerPage","itemsPerPageOptions","sanitizedFooterProps","firstOption","groupByText","_b","_c","created","breakingProps","forEach","original","replacement","$attrs","breaking","mounted","window","addEventListener","calcWidths","beforeDestroy","removeEventListener","from","$el","querySelectorAll","clientWidth","customFilterWithColumns","customSortWithHeaders","locale","customSort","createItemProps","call","assign","genCaption","getSlot","genColgroup","genLoading","genProgress","genHeaders","group","toggleSelectAll","getPrefixedScopedSlots","VDataTableHeader","loading","genEmptyWrapper","content","genItems","empty","genEmpty","originalItemsLength","pagination","itemsLength","groupedItems","genGroupedRows","genRows","$set","genDefaultGroupedRow","isOpen","toggleFn","removeFn","updateOptions","toggle","remove","VBtn","icon","small","column","RowGroup","genScopedRows","genDefaultRows","rows","isExpanded","genDefaultExpandedRow","genDefaultSimpleRow","headerRow","expandedRow","isSelected","disabled","isSelectable","val","select","expand","MobileRow","Row","itemKey","mergeClasses","getPropertyFromItem","event","contextmenu","dblclick","genBody","body","genFoot","foot","genFooters","itemsPerPageText","hideDefaultFooter","VDataFooter","genDefaultScopedSlot","simpleProps","VSimpleTable","proxySlot","VData","$props","old","deepEqual","internalCurrentItems"],"mappings":"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","file":"static/js/chunk-6d179d02.9592a778.js","sourcesContent":["import { VDataTable } from '../'\nimport VIcon from '../../VIcon'\nimport VSimpleCheckbox from '../../VCheckbox/VSimpleCheckbox'\nimport ripple from '../../../directives/ripple'\n\nimport Vue from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport mixins from '../../../util/mixins'\nimport { DataOptions, DataTableHeader } from 'vuetify/types'\n\ntype VDataTableInstance = InstanceType\n\ninterface options extends Vue {\n dataTable: VDataTableInstance\n}\n\nexport default mixins().extend({\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,\n options: {\n type: Object,\n default: () => ({\n page: 1,\n itemsPerPage: 10,\n sortBy: [],\n sortDesc: [],\n groupBy: [],\n groupDesc: [],\n multiSort: false,\n mustSort: false,\n }),\n } as PropValidator,\n checkboxColor: String,\n sortIcon: {\n type: String,\n default: '$sort',\n },\n everyItem: Boolean,\n someItems: Boolean,\n showGroupBy: Boolean,\n singleSelect: Boolean,\n disableSort: Boolean,\n },\n\n methods: {\n genSelectAll () {\n const data = {\n props: {\n value: this.everyItem,\n indeterminate: !this.everyItem && this.someItems,\n color: this.checkboxColor ?? '',\n },\n on: {\n input: (v: boolean) => this.$emit('toggle-select-all', v),\n },\n }\n\n if (this.$scopedSlots['data-table-select']) {\n return this.$scopedSlots['data-table-select']!(data)\n }\n\n return this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n ...data,\n })\n },\n genSortIcon () {\n return this.$createElement(VIcon, {\n staticClass: 'v-data-table-header__icon',\n props: {\n size: 18,\n },\n }, [this.sortIcon])\n },\n },\n})\n","import { VNode, VNodeChildrenArrayContents } from 'vue'\nimport mixins from '../../util/mixins'\nimport VSelect from '../VSelect/VSelect'\nimport VChip from '../VChip'\nimport header from './mixins/header'\nimport { wrapInArray } from '../../util/helpers'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-mobile',\n\n props: {\n sortByText: {\n type: String,\n default: '$vuetify.dataTable.sortBy',\n },\n },\n\n methods: {\n genSortChip (props: any) {\n const children: VNodeChildrenArrayContents = [props.item.text]\n\n const sortIndex = this.options.sortBy.findIndex(k => k === props.item.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n children.push(this.$createElement('div', {\n staticClass: 'v-chip__close',\n class: {\n sortable: true,\n active: beingSorted,\n asc: beingSorted && !isDesc,\n desc: beingSorted && isDesc,\n },\n }, [this.genSortIcon()]))\n\n return this.$createElement(VChip, {\n staticClass: 'sortable',\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('sort', props.item.value)\n },\n },\n }, children)\n },\n genSortSelect (items: any[]) {\n return this.$createElement(VSelect, {\n props: {\n label: this.$vuetify.lang.t(this.sortByText),\n items,\n hideDetails: true,\n multiple: this.options.multiSort,\n value: this.options.multiSort ? this.options.sortBy : this.options.sortBy[0],\n menuProps: { closeOnContentClick: true },\n },\n on: {\n change: (v: string | string[]) => this.$emit('sort', v),\n },\n scopedSlots: {\n selection: props => this.genSortChip(props),\n },\n })\n },\n },\n\n render (h): VNode {\n const children: VNodeChildrenArrayContents = []\n\n const header = this.headers.find(h => h.value === 'data-table-select')\n if (header && !this.singleSelect) {\n children.push(this.$createElement('div', {\n class: [\n 'v-data-table-header-mobile__select',\n ...wrapInArray(header.class),\n ],\n attrs: {\n width: header.width,\n },\n }, [this.genSelectAll()]))\n }\n\n const sortHeaders = this.headers\n .filter(h => h.sortable !== false && h.value !== 'data-table-select')\n .map(h => ({\n text: h.text,\n value: h.value,\n }))\n\n if (!this.disableSort && sortHeaders.length) {\n children.push(this.genSortSelect(sortHeaders))\n }\n\n const th = children.length\n ? h('th', [h('div', { staticClass: 'v-data-table-header-mobile__wrapper' }, children)])\n : undefined\n\n const tr = h('tr', [th])\n\n return h('thead', {\n staticClass: 'v-data-table-header v-data-table-header-mobile',\n }, [tr])\n },\n})\n","// Helpers\nimport { VNode, VNodeData } from 'vue'\nimport mixins from '../../util/mixins'\nimport header from './mixins/header'\nimport { wrapInArray, convertToUnit } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default mixins(header).extend({\n name: 'v-data-table-header-desktop',\n\n methods: {\n genGroupByToggle (header: DataTableHeader) {\n return this.$createElement('span', {\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n this.$emit('group', header.value)\n },\n },\n }, ['group'])\n },\n getAria (beingSorted: boolean, isDesc: boolean) {\n const $t = (key: string) => this.$vuetify.lang.t(`$vuetify.dataTable.ariaLabel.${key}`)\n\n let ariaSort = 'none'\n let ariaLabel = [\n $t('sortNone'),\n $t('activateAscending'),\n ]\n\n if (!beingSorted) {\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n }\n\n if (isDesc) {\n ariaSort = 'descending'\n ariaLabel = [\n $t('sortDescending'),\n $t(this.options.mustSort ? 'activateAscending' : 'activateNone'),\n ]\n } else {\n ariaSort = 'ascending'\n ariaLabel = [\n $t('sortAscending'),\n $t('activateDescending'),\n ]\n }\n\n return { ariaSort, ariaLabel: ariaLabel.join(' ') }\n },\n genHeader (header: DataTableHeader) {\n const data: Required> = {\n attrs: {\n role: 'columnheader',\n scope: 'col',\n 'aria-label': header.text || '',\n },\n style: {\n width: convertToUnit(header.width),\n minWidth: convertToUnit(header.width),\n },\n class: [\n `text-${header.align || 'start'}`,\n ...wrapInArray(header.class),\n header.divider && 'v-data-table__divider',\n ],\n on: {},\n }\n const children = []\n\n if (header.value === 'data-table-select' && !this.singleSelect) {\n return this.$createElement('th', data, [this.genSelectAll()])\n }\n\n children.push(\n this.$scopedSlots.hasOwnProperty(header.value)\n ? this.$scopedSlots[header.value]!({ header })\n : this.$createElement('span', [header.text])\n )\n\n if (!this.disableSort && (header.sortable || !header.hasOwnProperty('sortable'))) {\n data.on.click = () => this.$emit('sort', header.value)\n\n const sortIndex = this.options.sortBy.findIndex(k => k === header.value)\n const beingSorted = sortIndex >= 0\n const isDesc = this.options.sortDesc[sortIndex]\n\n data.class.push('sortable')\n\n const { ariaLabel, ariaSort } = this.getAria(beingSorted, isDesc)\n\n data.attrs['aria-label'] += `${header.text ? ': ' : ''}${ariaLabel}`\n data.attrs['aria-sort'] = ariaSort\n\n if (beingSorted) {\n data.class.push('active')\n data.class.push(isDesc ? 'desc' : 'asc')\n }\n\n if (header.align === 'end') children.unshift(this.genSortIcon())\n else children.push(this.genSortIcon())\n\n if (this.options.multiSort && beingSorted) {\n children.push(this.$createElement('span', { class: 'v-data-table-header__sort-badge' }, [String(sortIndex + 1)]))\n }\n }\n\n if (this.showGroupBy && header.groupable !== false) children.push(this.genGroupByToggle(header))\n\n return this.$createElement('th', data, children)\n },\n },\n\n render (): VNode {\n return this.$createElement('thead', {\n staticClass: 'v-data-table-header',\n }, [\n this.$createElement('tr', this.headers.map(header => this.genHeader(header))),\n ])\n },\n})\n","import { VNodeData } from 'vue'\n\n/**\n * Removes duplicate `@input` listeners when\n * using v-model with functional components\n *\n * @see https://github.com/vuetifyjs/vuetify/issues/4460\n */\nexport default function dedupeModelListeners (data: VNodeData): void {\n if (data.model && data.on && data.on.input) {\n if (Array.isArray(data.on.input)) {\n const i = data.on.input.indexOf(data.model.callback)\n if (i > -1) data.on.input.splice(i, 1)\n } else {\n delete data.on.input\n }\n }\n}\n","import { CreateElement, VNode } from 'vue'\n\nexport default function rebuildFunctionalSlots (slots: { [key: string]: VNode[] | undefined }, h: CreateElement) {\n const children: VNode[] = []\n\n for (const slot in slots) {\n if (slots.hasOwnProperty(slot)) {\n children.push(h('template', { slot }, slots[slot]))\n }\n }\n\n return children\n}\n","// Styles\nimport './VDataTableHeader.sass'\n\n// Components\nimport VDataTableHeaderMobile from './VDataTableHeaderMobile'\nimport VDataTableHeaderDesktop from './VDataTableHeaderDesktop'\n\n// Mixins\nimport header from './mixins/header'\n\n// Utilities\nimport dedupeModelListeners from '../../util/dedupeModelListeners'\nimport mergeData from '../../util/mergeData'\nimport rebuildSlots from '../../util/rebuildFunctionalSlots'\n\n// Types\nimport Vue from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n name: 'v-data-table-header',\n\n functional: true,\n\n props: {\n ...header.options.props,\n mobile: Boolean,\n },\n\n render (h, { props, data, slots }) {\n dedupeModelListeners(data)\n const children = rebuildSlots(slots(), h)\n\n data = mergeData(data, { props })\n\n if (props.mobile) {\n return h(VDataTableHeaderMobile, data, children)\n } else {\n return h(VDataTableHeaderDesktop, data, children)\n }\n },\n})\n","// Types\nimport Vue, { VNode, PropType } from 'vue'\nimport { DataTableHeader } from 'vuetify/types'\n\n// Utils\nimport { getObjectValueByPath, wrapInArray } from '../../util/helpers'\n\nfunction needsTd (slot: VNode[] | undefined) {\n return slot!.length !== 1 ||\n !['td', 'th'].includes(slot![0]?.tag!)\n}\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns = props.headers.map((header: DataTableHeader) => {\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(...wrapInArray(scopedSlot({\n item: props.item,\n isMobile: false,\n header,\n index: props.index,\n value,\n })))\n } else if (regularSlot) {\n children.push(...wrapInArray(regularSlot))\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const textAlign = `text-${header.align || 'start'}`\n\n return needsTd(children)\n ? h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\n }, children)\n : children\n })\n\n return h('tr', data, columns)\n },\n})\n","import Vue, { VNode } from 'vue'\n\nexport default Vue.extend({\n name: 'row-group',\n\n functional: true,\n\n props: {\n value: {\n type: Boolean,\n default: true,\n },\n headerClass: {\n type: String,\n default: 'v-row-group__header',\n },\n contentClass: String,\n summaryClass: {\n type: String,\n default: 'v-row-group__summary',\n },\n },\n\n render (h, { slots, props }): VNode {\n const computedSlots = slots()\n const children = []\n\n if (computedSlots['column.header']) {\n children.push(h('tr', {\n staticClass: props.headerClass,\n }, computedSlots['column.header']))\n } else if (computedSlots['row.header']) {\n children.push(...computedSlots['row.header'])\n }\n\n if (computedSlots['row.content'] && props.value) children.push(...computedSlots['row.content'])\n\n if (computedSlots['column.summary']) {\n children.push(h('tr', {\n staticClass: props.summaryClass,\n }, computedSlots['column.summary']))\n } else if (computedSlots['row.summary']) {\n children.push(...computedSlots['row.summary'])\n }\n\n return children as any\n },\n})\n","import './VSimpleTable.sass'\n\nimport { convertToUnit } from '../../util/helpers'\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { VNode } from 'vue'\n\nexport default mixins(Themeable).extend({\n name: 'v-simple-table',\n\n props: {\n dense: Boolean,\n fixedHeader: Boolean,\n height: [Number, String],\n },\n\n computed: {\n classes (): Record {\n return {\n 'v-data-table--dense': this.dense,\n 'v-data-table--fixed-height': !!this.height && !this.fixedHeader,\n 'v-data-table--fixed-header': this.fixedHeader,\n 'v-data-table--has-top': !!this.$slots.top,\n 'v-data-table--has-bottom': !!this.$slots.bottom,\n ...this.themeClasses,\n }\n },\n },\n\n methods: {\n genWrapper () {\n return this.$slots.wrapper || this.$createElement('div', {\n staticClass: 'v-data-table__wrapper',\n style: {\n height: convertToUnit(this.height),\n },\n }, [\n this.$createElement('table', this.$slots.default),\n ])\n },\n },\n\n render (h): VNode {\n return h('div', {\n staticClass: 'v-data-table',\n class: this.classes,\n }, [\n this.$slots.top,\n this.genWrapper(),\n this.$slots.bottom,\n ])\n },\n})\n","import Vue, { VNode, PropType } from 'vue'\nimport { getObjectValueByPath } from '../../util/helpers'\nimport { DataTableHeader } from 'vuetify/types'\n\nexport default Vue.extend({\n name: 'row',\n\n functional: true,\n\n props: {\n headers: Array as PropType,\n hideDefaultHeader: Boolean,\n index: Number,\n item: Object,\n rtl: Boolean,\n },\n\n render (h, { props, slots, data }): VNode {\n const computedSlots = slots()\n\n const columns: VNode[] = props.headers.map((header: DataTableHeader) => {\n const classes = {\n 'v-data-table__mobile-row': true,\n }\n\n const children = []\n const value = getObjectValueByPath(props.item, header.value)\n\n const slotName = header.value\n const scopedSlot = data.scopedSlots && data.scopedSlots.hasOwnProperty(slotName) && data.scopedSlots[slotName]\n const regularSlot = computedSlots.hasOwnProperty(slotName) && computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n isMobile: true,\n header,\n index: props.index,\n value,\n }))\n } else if (regularSlot) {\n children.push(regularSlot)\n } else {\n children.push(value == null ? value : String(value))\n }\n\n const mobileRowChildren = [\n h('div', {\n staticClass: 'v-data-table__mobile-row__cell',\n }, children),\n ]\n\n if (header.value !== 'dataTableSelect' && !props.hideDefaultHeader) {\n mobileRowChildren.unshift(\n h('div', {\n staticClass: 'v-data-table__mobile-row__header',\n }, [header.text])\n )\n }\n\n return h('td', { class: classes }, mobileRowChildren)\n })\n\n return h('tr', { ...data, staticClass: 'v-data-table__mobile-table-row' }, columns)\n },\n})\n","import './VDataTable.sass'\n\n// Types\nimport { VNode, VNodeChildrenArrayContents, VNodeChildren } 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 DataTableItemProps,\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'\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 } 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) {\n search = typeof search === 'string' ? search.trim() : null\n\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}\n\n/* @vue/component */\nexport default mixins(\n VDataIterator,\n Loadable,\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,\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,\n itemClass: {\n type: [String, Function],\n default: () => '',\n } as PropValidator,\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 {\n return this.computedHeaders.reduce>((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 {\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(items, search, this.headersWithCustomFilters, this.headersWithoutCustomFilters, this.customFilter)\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 props = VDataIterator.options.methods.createItemProps.call(this, item, index)\n\n return Object.assign(props, { headers: this.computedHeaders })\n },\n genCaption (props: DataScopeProps) {\n if (this.caption) return [this.$createElement('caption', [this.caption])]\n\n return getSlot(this, 'caption', props, true)\n },\n genColgroup (props: DataScopeProps) {\n return this.$createElement('colgroup', this.computedHeaders.map(header => {\n return this.$createElement('col', {\n class: {\n divider: header.divider,\n },\n })\n }))\n },\n genLoading () {\n const th = this.$createElement('th', {\n staticClass: 'column',\n attrs: this.colspanAttrs,\n }, [this.genProgress()])\n\n const tr = this.$createElement('tr', {\n staticClass: 'v-data-table__progress',\n }, [th])\n\n return this.$createElement('thead', [tr])\n },\n genHeaders (props: DataScopeProps) {\n const data = {\n props: {\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 },\n on: {\n sort: props.sort,\n group: props.group,\n 'toggle-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.$scopedSlots)\n children.push(this.$createElement(VDataTableHeader, {\n ...data,\n scopedSlots,\n }))\n }\n\n if (this.loading) children.push(this.genLoading())\n\n return children\n },\n genEmptyWrapper (content: VNodeChildrenArrayContents) {\n return this.$createElement('tr', {\n staticClass: 'v-data-table__empty-wrapper',\n }, [\n this.$createElement('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[], props: DataScopeProps) {\n return groupedItems.map(group => {\n if (!this.openCache.hasOwnProperty(group.name)) this.$set(this.openCache, group.name, true)\n\n if (this.$scopedSlots.group) {\n return this.$scopedSlots.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 this.$createElement('template', { slot: 'row.content' }, this.genRows(items, props)),\n ]\n const toggleFn = () => this.$set(this.openCache, group, !this.openCache[group])\n const removeFn = () => props.updateOptions({ groupBy: [], groupDesc: [] })\n\n if (this.$scopedSlots['group.header']) {\n children.unshift(this.$createElement('template', { slot: 'column.header' }, [\n this.$scopedSlots['group.header']!({\n group,\n groupBy: props.options.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 = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: toggleFn,\n },\n }, [this.$createElement(VIcon, [isOpen ? '$minus' : '$plus'])])\n\n const remove = this.$createElement(VBtn, {\n staticClass: 'ma-0',\n props: {\n icon: true,\n small: true,\n },\n on: {\n click: removeFn,\n },\n }, [this.$createElement(VIcon, ['$close'])])\n\n const column = this.$createElement('td', {\n staticClass: 'text-start',\n attrs: this.colspanAttrs,\n }, [toggle, `${this.groupByText}: ${group}`, remove])\n\n children.unshift(this.$createElement('template', { slot: 'column.header' }, [column]))\n }\n\n if (this.$scopedSlots['group.summary']) {\n children.push(this.$createElement('template', { slot: 'column.summary' }, [\n this.$scopedSlots['group.summary']!({\n group,\n groupBy: props.options.groupBy,\n isMobile: this.isMobile,\n items,\n headers: this.computedHeaders,\n isOpen,\n toggle: toggleFn,\n }),\n ]))\n }\n\n return this.$createElement(RowGroup, {\n key: group,\n props: {\n value: isOpen,\n },\n }, children)\n },\n genRows (items: any[], props: DataScopeProps) {\n return this.$scopedSlots.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.$scopedSlots.item!({\n ...this.createItemProps(item, i),\n isMobile: this.isMobile,\n }))\n\n if (this.isExpanded(item)) {\n rows.push(this.$scopedSlots['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.$scopedSlots['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 = this.$createElement('tr', {\n staticClass: 'v-data-table__expanded v-data-table__expanded__content',\n }, [this.$scopedSlots['expanded-item']!({\n headers: this.computedHeaders,\n isMobile: this.isMobile,\n item,\n })])\n\n return this.$createElement(RowGroup, {\n props: {\n value: isExpanded,\n },\n }, [\n this.$createElement('template', { slot: 'row.header' }, [headerRow]),\n this.$createElement('template', { slot: 'row.content' }, [expandedRow]),\n ])\n },\n genDefaultSimpleRow (item: any, index: number, classes: Record = {}): VNode {\n const scopedSlots = getPrefixedScopedSlots('item.', this.$scopedSlots)\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 }) : () => this.$createElement(VSimpleCheckbox, {\n staticClass: 'v-data-table__checkbox',\n props: {\n value: data.isSelected,\n disabled: !this.isSelectable(item),\n color: this.checkboxColor ?? '',\n },\n on: {\n input: (val: boolean) => data.select(val),\n },\n })\n }\n\n if (this.showExpand) {\n const slot = scopedSlots['data-table-expand']\n scopedSlots['data-table-expand'] = slot ? () => slot(data) : () => this.$createElement(VIcon, {\n staticClass: 'v-data-table__expand-icon',\n class: {\n 'v-data-table__expand-icon--active': data.isExpanded,\n },\n on: {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n data.expand(!data.isExpanded)\n },\n },\n }, [this.expandIcon])\n }\n\n return this.$createElement(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 props: {\n headers: this.computedHeaders,\n hideDefaultHeader: this.hideDefaultHeader,\n index,\n item,\n rtl: this.$vuetify.rtl,\n },\n scopedSlots,\n on: {\n // TODO: for click, 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 click: (event: MouseEvent) => this.$emit('click:row', item, data, event),\n contextmenu: (event: MouseEvent) => this.$emit('contextmenu:row', event, data),\n dblclick: (event: MouseEvent) => this.$emit('dblclick:row', event, data),\n },\n })\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.$scopedSlots.body) {\n return this.$scopedSlots.body!(data)\n }\n\n return this.$createElement('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.$scopedSlots.foot?.(props)\n },\n genFooters (props: DataScopeProps) {\n const data = {\n props: {\n options: props.options,\n pagination: props.pagination,\n itemsPerPageText: '$vuetify.dataTable.itemsPerPageText',\n ...this.sanitizedFooterProps,\n },\n on: {\n 'update:options': (value: any) => props.updateOptions(value),\n },\n widths: this.widths,\n headers: this.computedHeaders,\n }\n\n const children: VNodeChildren = [\n getSlot(this, 'footer', data, true),\n ]\n\n if (!this.hideDefaultFooter) {\n children.push(this.$createElement(VDataFooter, {\n ...data,\n scopedSlots: getPrefixedScopedSlots('footer.', this.$scopedSlots),\n }))\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 this.$createElement(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 this.$createElement(VSimpleTable, {\n props: simpleProps,\n class: {\n 'v-data-table--mobile': this.isMobile,\n },\n }, [\n this.proxySlot('top', getSlot(this, 'top', {\n ...props,\n isMobile: this.isMobile,\n }, true)),\n this.genCaption(props),\n this.genColgroup(props),\n this.genHeaders(props),\n this.genBody(props),\n this.genFoot(props),\n this.proxySlot('bottom', this.genFooters(props)),\n ])\n },\n proxySlot (slot: string, content: VNodeChildren) {\n return this.$createElement('template', { slot }, content)\n },\n },\n\n render (): VNode {\n return this.$createElement(VData, {\n props: {\n ...this.$props,\n customFilter: this.customFilterWithColumns,\n customSort: this.customSortWithHeaders,\n itemsPerPage: this.computedItemsPerPage,\n },\n on: {\n 'update:options': (v: DataOptions, old: DataOptions) => {\n this.internalGroupBy = v.groupBy || []\n !deepEqual(v, old) && this.$emit('update:options', v)\n },\n 'update:page': (v: number) => this.$emit('update:page', v),\n 'update:items-per-page': (v: number) => this.$emit('update:items-per-page', v),\n 'update:sort-by': (v: string | string[]) => this.$emit('update:sort-by', v),\n 'update:sort-desc': (v: boolean | boolean[]) => this.$emit('update:sort-desc', v),\n 'update:group-by': (v: string | string[]) => this.$emit('update:group-by', v),\n 'update:group-desc': (v: boolean | boolean[]) => this.$emit('update:group-desc', v),\n pagination: (v: DataPagination, old: DataPagination) => !deepEqual(v, old) && this.$emit('pagination', v),\n 'current-items': (v: any[]) => {\n this.internalCurrentItems = v\n this.$emit('current-items', v)\n },\n 'page-count': (v: number) => this.$emit('page-count', v),\n },\n scopedSlots: {\n default: this.genDefaultScopedSlot,\n },\n })\n },\n})\n"],"sourceRoot":""}