{"version":3,"sources":["webpack:///../../../src/components/VDataTable/VSimpleTable.ts","webpack:///./node_modules/vuetify/src/components/VDataIterator/VDataFooter.sass?2e9c","webpack:///./node_modules/vuetify/src/components/VDataTable/VSimpleTable.sass?6ca9","webpack:///../../../src/components/VData/VData.ts","webpack:///../../../src/components/VDataIterator/VDataFooter.ts","webpack:///../../../src/components/VDataIterator/VDataIterator.ts","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/MobileRow.ts","webpack:///../../../src/components/VDataTable/VDataTable.ts","webpack:///./node_modules/vuetify/src/components/VDataTable/VDataTable.sass?914e","webpack:///../../../src/components/VBtn/index.ts","webpack:///./node_modules/vuetify/src/components/VDataTable/VDataTableHeader.sass?6276"],"names":["mixins","Themeable","extend","name","props","dense","Boolean","fixedHeader","height","Number","String","computed","classes","$slots","top","bottom","themeClasses","methods","genWrapper","wrapper","$createElement","staticClass","style","convertToUnit","default","render","h","class","Vue","inheritAttrs","items","type","Array","options","Object","sortBy","sortDesc","customSort","Function","sortItems","mustSort","multiSort","page","itemsPerPage","groupBy","groupDesc","customGroup","groupItems","locale","disableSort","disablePagination","disableFiltering","search","customFilter","searchItems","serverItemsLength","data","internalOptions","wrapInArray","assign","sortDiff","length","groupDiff","push","fillArray","itemsLength","filteredItems","pageCount","Math","ceil","pageStart","pageStop","min","isGrouped","pagination","slice","computedItems","paginateItems","groupedItems","scopedProps","sort","sortArray","group","updateOptions","originalItemsLength","computedOptions","watch","handler","old","deepEqual","deep","immediate","$emit","isArray","toggle","key","oldBy","oldDesc","by","desc","byIndex","findIndex","k","splice","map","s","i","max","$scopedSlots","required","itemsPerPageOptions","prevIcon","nextIcon","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","disableNextPageIcon","computedDataItemsPerPageOptions","option","genDataItemsPerPageOption","obj","onFirstPage","onPreviousPage","onNextPage","onLastPage","onChangeItemsPerPage","text","$vuetify","lang","t","value","genItemsPerPageSelect","computedIPPO","find","ippo","VSelect","attrs","disabled","hideDetails","auto","minWidth","on","input","genPaginationInfo","children","genIcon","click","label","icon","VBtn","VIcon","genIcons","before","after","rtl","unshift","toString","getSlot","Mobile","VData","itemKey","singleSelect","expanded","mobileBreakpoint","singleExpand","loading","noResultsText","noDataText","loadingText","hideDefaultFooter","footerProps","selectableKey","selection","expansion","internalCurrentItems","shiftKeyDown","lastEntry","everyItem","selectableItems","every","isSelected","someItems","some","sanitizedFooterProps","camelizeObjectKeys","filter","item","isSelectable","reduce","getObjectValueByPath","keys","values","includes","created","breakingProps","forEach","original","replacement","$attrs","hasOwnProperty","breaking","removedProps","prop","removed","mounted","window","addEventListener","onKeyDown","onKeyUp","beforeDestroy","removeEventListener","e","keyCode","keyCodes","shift","toggleSelectAll","select","emit","index","x","lastEntryKey","lastEntryKeySelected","multipleSelect","start","end","currentItem","isExpanded","expand","createItemProps","v","isMobile","genEmptyWrapper","content","genEmpty","filteredItemsLength","noData","noResults","genItems","empty","genFooter","scopedSlots","getPrefixedScopedSlots","VDataFooter","genDefaultScopedSlot","outerProps","$props","directives","ripple","headers","checkboxColor","sortIcon","showGroupBy","genSelectAll","indeterminate","color","VSimpleCheckbox","genSortIcon","size","header","sortByText","genSortChip","sortIndex","beingSorted","isDesc","sortable","active","asc","VChip","stopPropagation","genSortSelect","multiple","menuProps","closeOnContentClick","change","width","sortHeaders","th","undefined","tr","genGroupByToggle","getAria","$t","ariaSort","ariaLabel","join","genHeader","role","scope","align","divider","groupable","dedupeModelListeners","model","indexOf","callback","rebuildFunctionalSlots","slots","slot","functional","mobile","rebuildSlots","mergeData","VDataTableHeaderMobile","VDataTableHeaderDesktop","computedSlots","columns","slotName","scopedSlot","regularSlot","textAlign","cellClass","headerClass","contentClass","summaryClass","hideDefaultHeader","mobileRowChildren","filterFn","searchTableItems","headersWithCustomFilters","headersWithoutCustomFilters","trim","matchesColumnFilters","defaultFilter","matchesSearchTerm","VDataIterator","Loadable","showSelect","showExpand","caption","headerProps","calculateWidths","headersLength","expandIcon","itemClass","loaderHeight","internalGroupBy","openCache","widths","computedHeaders","defaultHeader","colspanAttrs","colspan","columnSorters","acc","filterable","sanitizedHeaderProps","computedItemsPerPage","firstOption","calcWidths","from","$el","querySelectorAll","clientWidth","customFilterWithColumns","customSortWithHeaders","call","genCaption","genColgroup","genLoading","genProgress","genHeaders","VDataTableHeader","genGroupedRows","genRows","$set","genDefaultGroupedRow","isOpen","toggleFn","removeFn","remove","small","column","RowGroup","genScopedRows","genDefaultRows","rows","genDefaultExpandedRow","genDefaultSimpleRow","headerRow","expandedRow","val","MobileRow","Row","mergeClasses","getPropertyFromItem","contextmenu","event","dblclick","genBody","body","genFoot","foot","_this$$scopedSlots$fo","genFooters","simpleProps","VSimpleTable","proxySlot"],"mappings":"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","file":"js/chunk-967217fe.abc4283d.js","sourcesContent":["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","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// Helpers\nimport { wrapInArray, sortItems, deepEqual, groupItems, searchItems, fillArray } from '../../util/helpers'\nimport Vue, { VNode } from 'vue'\n\n// Types\nimport {\n DataOptions,\n DataPagination,\n DataScopeProps,\n DataSortFunction,\n DataGroupFunction,\n DataSearchFunction,\n ItemGroup,\n} from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Vue.extend({\n name: 'v-data',\n\n inheritAttrs: false,\n\n props: {\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\n options: {\n type: Object,\n default: () => ({}),\n } as PropValidator>,\n sortBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n sortDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator,\n customSort: {\n type: Function,\n default: sortItems,\n } as PropValidator,\n mustSort: Boolean,\n multiSort: Boolean,\n page: {\n type: Number,\n default: 1,\n },\n itemsPerPage: {\n type: Number,\n default: 10,\n },\n groupBy: {\n type: [String, Array],\n default: () => [],\n } as PropValidator,\n groupDesc: {\n type: [Boolean, Array],\n default: () => [],\n } as PropValidator,\n customGroup: {\n type: Function,\n default: groupItems,\n } as PropValidator,\n locale: {\n type: String,\n default: 'en-US',\n },\n disableSort: Boolean,\n disablePagination: Boolean,\n disableFiltering: Boolean,\n search: String,\n customFilter: {\n type: Function,\n default: searchItems,\n } as PropValidator,\n serverItemsLength: {\n type: Number,\n default: -1,\n },\n },\n\n data () {\n let internalOptions: DataOptions = {\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n sortBy: wrapInArray(this.sortBy),\n sortDesc: wrapInArray(this.sortDesc),\n groupBy: wrapInArray(this.groupBy),\n groupDesc: wrapInArray(this.groupDesc),\n mustSort: this.mustSort,\n multiSort: this.multiSort,\n }\n\n if (this.options) {\n internalOptions = Object.assign(internalOptions, this.options)\n }\n\n const { sortBy, sortDesc, groupBy, groupDesc } = internalOptions\n const sortDiff = sortBy.length - sortDesc.length\n const groupDiff = groupBy.length - groupDesc.length\n\n if (sortDiff > 0) {\n internalOptions.sortDesc.push(...fillArray(sortDiff, false))\n }\n\n if (groupDiff > 0) {\n internalOptions.groupDesc.push(...fillArray(groupDiff, false))\n }\n\n return {\n internalOptions,\n }\n },\n\n computed: {\n itemsLength (): number {\n return this.serverItemsLength >= 0 ? this.serverItemsLength : this.filteredItems.length\n },\n pageCount (): number {\n return this.internalOptions.itemsPerPage <= 0\n ? 1\n : Math.ceil(this.itemsLength / this.internalOptions.itemsPerPage)\n },\n pageStart (): number {\n if (this.internalOptions.itemsPerPage === -1 || !this.items.length) return 0\n\n return (this.internalOptions.page - 1) * this.internalOptions.itemsPerPage\n },\n pageStop (): number {\n if (this.internalOptions.itemsPerPage === -1) return this.itemsLength\n if (!this.items.length) return 0\n\n return Math.min(this.itemsLength, this.internalOptions.page * this.internalOptions.itemsPerPage)\n },\n isGrouped (): boolean {\n return !!this.internalOptions.groupBy.length\n },\n pagination (): DataPagination {\n return {\n page: this.internalOptions.page,\n itemsPerPage: this.internalOptions.itemsPerPage,\n pageStart: this.pageStart,\n pageStop: this.pageStop,\n pageCount: this.pageCount,\n itemsLength: this.itemsLength,\n }\n },\n filteredItems (): any[] {\n let items = this.items.slice()\n\n if (!this.disableFiltering && this.serverItemsLength <= 0) {\n items = this.customFilter(items, this.search)\n }\n\n return items\n },\n computedItems (): any[] {\n let items = this.filteredItems.slice()\n\n if ((!this.disableSort || this.internalOptions.groupBy.length) && this.serverItemsLength <= 0) {\n items = this.sortItems(items)\n }\n\n if (!this.disablePagination && this.serverItemsLength <= 0) {\n items = this.paginateItems(items)\n }\n\n return items\n },\n groupedItems (): ItemGroup[] | null {\n return this.isGrouped ? this.groupItems(this.computedItems) : null\n },\n scopedProps (): DataScopeProps {\n return {\n sort: this.sort,\n sortArray: this.sortArray,\n group: this.group,\n items: this.computedItems,\n options: this.internalOptions,\n updateOptions: this.updateOptions,\n pagination: this.pagination,\n groupedItems: this.groupedItems,\n originalItemsLength: this.items.length,\n }\n },\n computedOptions (): DataOptions {\n return { ...this.options } as DataOptions\n },\n },\n\n watch: {\n computedOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n\n this.updateOptions(options)\n },\n deep: true,\n immediate: true,\n },\n internalOptions: {\n handler (options: DataOptions, old: DataOptions) {\n if (deepEqual(options, old)) return\n this.$emit('update:options', options)\n },\n deep: true,\n immediate: true,\n },\n page (page: number) {\n this.updateOptions({ page })\n },\n 'internalOptions.page' (page: number) {\n this.$emit('update:page', page)\n },\n itemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage })\n },\n 'internalOptions.itemsPerPage' (itemsPerPage: number) {\n this.$emit('update:items-per-page', itemsPerPage)\n },\n sortBy (sortBy: string | string[]) {\n this.updateOptions({ sortBy: wrapInArray(sortBy) })\n },\n 'internalOptions.sortBy' (sortBy: string[], old: string[]) {\n !deepEqual(sortBy, old) && this.$emit('update:sort-by', Array.isArray(this.sortBy) ? sortBy : sortBy[0])\n },\n sortDesc (sortDesc: boolean | boolean[]) {\n this.updateOptions({ sortDesc: wrapInArray(sortDesc) })\n },\n 'internalOptions.sortDesc' (sortDesc: boolean[], old: boolean[]) {\n !deepEqual(sortDesc, old) && this.$emit('update:sort-desc', Array.isArray(this.sortDesc) ? sortDesc : sortDesc[0])\n },\n groupBy (groupBy: string | string[]) {\n this.updateOptions({ groupBy: wrapInArray(groupBy) })\n },\n 'internalOptions.groupBy' (groupBy: string[], old: string[]) {\n !deepEqual(groupBy, old) && this.$emit('update:group-by', Array.isArray(this.groupBy) ? groupBy : groupBy[0])\n },\n groupDesc (groupDesc: boolean | boolean[]) {\n this.updateOptions({ groupDesc: wrapInArray(groupDesc) })\n },\n 'internalOptions.groupDesc' (groupDesc: boolean[], old: boolean[]) {\n !deepEqual(groupDesc, old) && this.$emit('update:group-desc', Array.isArray(this.groupDesc) ? groupDesc : groupDesc[0])\n },\n multiSort (multiSort: boolean) {\n this.updateOptions({ multiSort })\n },\n 'internalOptions.multiSort' (multiSort: boolean) {\n this.$emit('update:multi-sort', multiSort)\n },\n mustSort (mustSort: boolean) {\n this.updateOptions({ mustSort })\n },\n 'internalOptions.mustSort' (mustSort: boolean) {\n this.$emit('update:must-sort', mustSort)\n },\n pageCount: {\n handler (pageCount: number) {\n this.$emit('page-count', pageCount)\n },\n immediate: true,\n },\n computedItems: {\n handler (computedItems: any[]) {\n this.$emit('current-items', computedItems)\n },\n immediate: true,\n },\n pagination: {\n handler (pagination: DataPagination, old: DataPagination) {\n if (deepEqual(pagination, old)) return\n this.$emit('pagination', this.pagination)\n },\n immediate: true,\n },\n },\n\n methods: {\n toggle (key: string, oldBy: string[], oldDesc: boolean[], page: number, mustSort: boolean, multiSort: boolean) {\n let by = oldBy.slice()\n let desc = oldDesc.slice()\n const byIndex = by.findIndex((k: string) => k === key)\n\n if (byIndex < 0) {\n if (!multiSort) {\n by = []\n desc = []\n }\n\n by.push(key)\n desc.push(false)\n } else if (byIndex >= 0 && !desc[byIndex]) {\n desc[byIndex] = true\n } else if (!mustSort) {\n by.splice(byIndex, 1)\n desc.splice(byIndex, 1)\n } else {\n desc[byIndex] = false\n }\n\n // Reset page to 1 if sortBy or sortDesc have changed\n if (!deepEqual(by, oldBy) || !deepEqual(desc, oldDesc)) {\n page = 1\n }\n\n return { by, desc, page }\n },\n group (key: string): void {\n const { by: groupBy, desc: groupDesc, page } = this.toggle(\n key,\n this.internalOptions.groupBy,\n this.internalOptions.groupDesc,\n this.internalOptions.page,\n true,\n false\n )\n this.updateOptions({ groupBy, groupDesc, page })\n },\n sort (key: string | string[]): void {\n if (Array.isArray(key)) return this.sortArray(key)\n\n const { by: sortBy, desc: sortDesc, page } = this.toggle(\n key,\n this.internalOptions.sortBy,\n this.internalOptions.sortDesc,\n this.internalOptions.page,\n this.internalOptions.mustSort,\n this.internalOptions.multiSort\n )\n this.updateOptions({ sortBy, sortDesc, page })\n },\n sortArray (sortBy: string[]) {\n const sortDesc = sortBy.map(s => {\n const i = this.internalOptions.sortBy.findIndex((k: string) => k === s)\n return i > -1 ? this.internalOptions.sortDesc[i] : false\n })\n\n this.updateOptions({ sortBy, sortDesc })\n },\n updateOptions (options: any) {\n this.internalOptions = {\n ...this.internalOptions,\n ...options,\n page: this.serverItemsLength < 0\n ? Math.max(1, Math.min(options.page || this.internalOptions.page, this.pageCount))\n : options.page || this.internalOptions.page,\n }\n },\n sortItems (items: any[]): any[] {\n let sortBy: string[] = []\n let sortDesc: boolean[] = []\n\n if (!this.disableSort) {\n sortBy = this.internalOptions.sortBy\n sortDesc = this.internalOptions.sortDesc\n }\n\n if (this.internalOptions.groupBy.length) {\n sortBy = [...this.internalOptions.groupBy, ...sortBy]\n sortDesc = [...this.internalOptions.groupDesc, ...sortDesc]\n }\n\n return this.customSort(items, sortBy, sortDesc, this.locale)\n },\n groupItems (items: any[]): ItemGroup[] {\n return this.customGroup(items, this.internalOptions.groupBy, this.internalOptions.groupDesc)\n },\n paginateItems (items: any[]): any[] {\n // Make sure we don't try to display non-existant page if items suddenly change\n // TODO: Could possibly move this to pageStart/pageStop?\n if (this.serverItemsLength === -1 && items.length <= this.pageStart) {\n this.internalOptions.page = Math.max(1, Math.ceil(items.length / this.internalOptions.itemsPerPage)) || 1 // Prevent NaN\n }\n\n return items.slice(this.pageStart, this.pageStop)\n },\n },\n\n render (): VNode {\n return this.$scopedSlots.default && this.$scopedSlots.default(this.scopedProps) as any\n },\n})\n","import './VDataFooter.sass'\n\n// Components\nimport VSelect from '../VSelect/VSelect'\nimport VIcon from '../VIcon'\nimport VBtn from '../VBtn'\n\n// Types\nimport Vue, { VNode, VNodeChildrenArrayContents, PropType } from 'vue'\nimport { DataPagination, DataOptions, DataItemsPerPageOption } from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\nimport { getSlot } from '../../util/helpers'\n\nexport default Vue.extend({\n name: 'v-data-footer',\n\n props: {\n options: {\n type: Object as PropType,\n required: true,\n },\n pagination: {\n type: Object as PropType,\n required: true,\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => ([5, 10, 15, -1]),\n } as PropValidator,\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n itemsPerPageAllText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageAll',\n },\n showFirstLastPage: Boolean,\n showCurrentPage: Boolean,\n disablePagination: Boolean,\n disableItemsPerPage: Boolean,\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n },\n\n computed: {\n disableNextPageIcon (): boolean {\n return this.options.itemsPerPage <= 0 ||\n this.options.page * this.options.itemsPerPage >= this.pagination.itemsLength ||\n this.pagination.pageStop < 0\n },\n computedDataItemsPerPageOptions (): any[] {\n return this.itemsPerPageOptions.map(option => {\n if (typeof option === 'object') return option\n else return this.genDataItemsPerPageOption(option)\n })\n },\n },\n\n methods: {\n updateOptions (obj: object) {\n this.$emit('update:options', Object.assign({}, this.options, obj))\n },\n onFirstPage () {\n this.updateOptions({ page: 1 })\n },\n onPreviousPage () {\n this.updateOptions({ page: this.options.page - 1 })\n },\n onNextPage () {\n this.updateOptions({ page: this.options.page + 1 })\n },\n onLastPage () {\n this.updateOptions({ page: this.pagination.pageCount })\n },\n onChangeItemsPerPage (itemsPerPage: number) {\n this.updateOptions({ itemsPerPage, page: 1 })\n },\n genDataItemsPerPageOption (option: number) {\n return {\n text: option === -1 ? this.$vuetify.lang.t(this.itemsPerPageAllText) : String(option),\n value: option,\n }\n },\n genItemsPerPageSelect () {\n let value = this.options.itemsPerPage\n const computedIPPO = this.computedDataItemsPerPageOptions\n\n if (computedIPPO.length <= 1) return null\n\n if (!computedIPPO.find(ippo => ippo.value === value)) value = computedIPPO[0]\n\n return this.$createElement('div', {\n staticClass: 'v-data-footer__select',\n }, [\n this.$vuetify.lang.t(this.itemsPerPageText),\n this.$createElement(VSelect, {\n attrs: {\n 'aria-label': this.$vuetify.lang.t(this.itemsPerPageText),\n },\n props: {\n disabled: this.disableItemsPerPage,\n items: computedIPPO,\n value,\n hideDetails: true,\n auto: true,\n minWidth: '75px',\n },\n on: {\n input: this.onChangeItemsPerPage,\n },\n }),\n ])\n },\n genPaginationInfo () {\n let children: VNodeChildrenArrayContents = ['–']\n const itemsLength: number = this.pagination.itemsLength\n let pageStart: number = this.pagination.pageStart\n let pageStop: number = this.pagination.pageStop\n\n if (this.pagination.itemsLength && this.pagination.itemsPerPage) {\n pageStart = this.pagination.pageStart + 1\n pageStop = itemsLength < this.pagination.pageStop || this.pagination.pageStop < 0\n ? itemsLength\n : this.pagination.pageStop\n\n children = this.$scopedSlots['page-text']\n ? [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n : [this.$vuetify.lang.t(this.pageText, pageStart, pageStop, itemsLength)]\n } else if (this.$scopedSlots['page-text']) {\n children = [this.$scopedSlots['page-text']!({ pageStart, pageStop, itemsLength })]\n }\n\n return this.$createElement('div', {\n class: 'v-data-footer__pagination',\n }, children)\n },\n genIcon (click: Function, disabled: boolean, label: string, icon: string): VNode {\n return this.$createElement(VBtn, {\n props: {\n disabled: disabled || this.disablePagination,\n icon: true,\n text: true,\n // dark: this.dark, // TODO: add mixin\n // light: this.light // TODO: add mixin\n },\n on: {\n click,\n },\n attrs: {\n 'aria-label': label, // TODO: Localization\n },\n }, [this.$createElement(VIcon, icon)])\n },\n genIcons () {\n const before: VNodeChildrenArrayContents = []\n const after: VNodeChildrenArrayContents = []\n\n before.push(this.genIcon(\n this.onPreviousPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.prevPage'),\n this.$vuetify.rtl ? this.nextIcon : this.prevIcon\n ))\n\n after.push(this.genIcon(\n this.onNextPage,\n this.disableNextPageIcon,\n this.$vuetify.lang.t('$vuetify.dataFooter.nextPage'),\n this.$vuetify.rtl ? this.prevIcon : this.nextIcon\n ))\n\n if (this.showFirstLastPage) {\n before.unshift(this.genIcon(\n this.onFirstPage,\n this.options.page === 1,\n this.$vuetify.lang.t('$vuetify.dataFooter.firstPage'),\n this.$vuetify.rtl ? this.lastIcon : this.firstIcon\n ))\n\n after.push(this.genIcon(\n this.onLastPage,\n this.options.page >= this.pagination.pageCount || this.options.itemsPerPage === -1,\n this.$vuetify.lang.t('$vuetify.dataFooter.lastPage'),\n this.$vuetify.rtl ? this.firstIcon : this.lastIcon\n ))\n }\n\n return [\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-before',\n }, before),\n this.showCurrentPage && this.$createElement('span', [this.options.page.toString()]),\n this.$createElement('div', {\n staticClass: 'v-data-footer__icons-after',\n }, after),\n ]\n },\n },\n\n render (): VNode {\n return this.$createElement('div', {\n staticClass: 'v-data-footer',\n }, [\n getSlot(this, 'prepend'),\n this.genItemsPerPageSelect(),\n this.genPaginationInfo(),\n this.genIcons(),\n ])\n },\n})\n","// Components\nimport { VData } from '../VData'\nimport VDataFooter from './VDataFooter'\n\n// Mixins\nimport Mobile from '../../mixins/mobile'\nimport Themeable from '../../mixins/themeable'\n\n// Helpers\nimport mixins from '../../util/mixins'\nimport { deepEqual, getObjectValueByPath, getPrefixedScopedSlots, getSlot, camelizeObjectKeys, keyCodes } from '../../util/helpers'\nimport { breaking, removed } from '../../util/console'\n\n// Types\nimport { VNode, VNodeChildren } from 'vue'\nimport { PropValidator } from 'vue/types/options'\nimport { DataItemProps, DataScopeProps } from 'vuetify/types'\n\n/* @vue/component */\nexport default mixins(\n Mobile,\n Themeable\n).extend({\n name: 'v-data-iterator',\n\n props: {\n ...VData.options.props, // TODO: filter out props not used\n itemKey: {\n type: String,\n default: 'id',\n },\n value: {\n type: Array,\n default: () => [],\n } as PropValidator,\n singleSelect: Boolean,\n expanded: {\n type: Array,\n default: () => [],\n } as PropValidator,\n mobileBreakpoint: {\n ...Mobile.options.props.mobileBreakpoint,\n default: 600,\n },\n singleExpand: Boolean,\n loading: [Boolean, String],\n noResultsText: {\n type: String,\n default: '$vuetify.dataIterator.noResultsText',\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideDefaultFooter: Boolean,\n footerProps: Object,\n selectableKey: {\n type: String,\n default: 'isSelectable',\n },\n },\n\n data: () => ({\n selection: {} as Record,\n expansion: {} as Record,\n internalCurrentItems: [] as any[],\n shiftKeyDown: false,\n lastEntry: -1,\n }),\n\n computed: {\n everyItem (): boolean {\n return !!this.selectableItems.length && this.selectableItems.every((i: any) => this.isSelected(i))\n },\n someItems (): boolean {\n return this.selectableItems.some((i: any) => this.isSelected(i))\n },\n sanitizedFooterProps (): Record {\n return camelizeObjectKeys(this.footerProps)\n },\n selectableItems (): any[] {\n return this.internalCurrentItems.filter(item => this.isSelectable(item))\n },\n },\n\n watch: {\n value: {\n handler (value: any[]) {\n this.selection = value.reduce((selection, item) => {\n selection[getObjectValueByPath(item, this.itemKey)] = item\n return selection\n }, {})\n },\n immediate: true,\n },\n selection (value: Record, old: Record) {\n if (deepEqual(Object.keys(value), Object.keys(old))) return\n\n this.$emit('input', Object.values(value))\n },\n expanded: {\n handler (value: any[]) {\n this.expansion = value.reduce((expansion, item) => {\n expansion[getObjectValueByPath(item, this.itemKey)] = true\n return expansion\n }, {})\n },\n immediate: true,\n },\n expansion (value: Record, old: Record) {\n if (deepEqual(value, old)) return\n const keys = Object.keys(value).filter(k => value[k])\n const expanded = !keys.length ? [] : this.items.filter(i => keys.includes(String(getObjectValueByPath(i, this.itemKey))))\n this.$emit('update:expanded', expanded)\n },\n },\n\n created () {\n const breakingProps = [\n ['disable-initial-sort', 'sort-by'],\n ['filter', 'custom-filter'],\n ['pagination', 'options'],\n ['total-items', 'server-items-length'],\n ['hide-actions', 'hide-default-footer'],\n ['rows-per-page-items', 'footer-props.items-per-page-options'],\n ['rows-per-page-text', 'footer-props.items-per-page-text'],\n ['prev-icon', 'footer-props.prev-icon'],\n ['next-icon', 'footer-props.next-icon'],\n ]\n\n /* istanbul ignore next */\n breakingProps.forEach(([original, replacement]) => {\n if (this.$attrs.hasOwnProperty(original)) breaking(original, replacement, this)\n })\n\n const removedProps = [\n 'expand',\n 'content-class',\n 'content-props',\n 'content-tag',\n ]\n\n /* istanbul ignore next */\n removedProps.forEach(prop => {\n if (this.$attrs.hasOwnProperty(prop)) removed(prop)\n })\n },\n\n mounted () {\n window.addEventListener('keydown', this.onKeyDown)\n window.addEventListener('keyup', this.onKeyUp)\n },\n beforeDestroy () {\n window.removeEventListener('keydown', this.onKeyDown)\n window.removeEventListener('keyup', this.onKeyUp)\n },\n\n methods: {\n onKeyDown (e: KeyboardEvent): void {\n if (e.keyCode !== keyCodes.shift) return\n this.shiftKeyDown = true\n },\n onKeyUp (e: KeyboardEvent): void {\n if (e.keyCode !== keyCodes.shift) return\n this.shiftKeyDown = false\n },\n toggleSelectAll (value: boolean): void {\n const selection = Object.assign({}, this.selection)\n\n for (let i = 0; i < this.selectableItems.length; i++) {\n const item = this.selectableItems[i]\n\n if (!this.isSelectable(item)) continue\n\n const key = getObjectValueByPath(item, this.itemKey)\n if (value) selection[key] = item\n else delete selection[key]\n }\n\n this.selection = selection\n this.$emit('toggle-select-all', { items: this.internalCurrentItems, value })\n },\n isSelectable (item: any): boolean {\n return getObjectValueByPath(item, this.selectableKey) !== false\n },\n isSelected (item: any): boolean {\n return !!this.selection[getObjectValueByPath(item, this.itemKey)] || false\n },\n select (item: any, value = true, emit = true): void {\n if (!this.isSelectable(item)) return\n\n const selection = this.singleSelect ? {} : Object.assign({}, this.selection)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) selection[key] = item\n else delete selection[key]\n\n const index = this.selectableItems.findIndex(x => getObjectValueByPath(x, this.itemKey) === key)\n if (this.lastEntry === -1) this.lastEntry = index\n else if (this.shiftKeyDown && !this.singleSelect && emit) {\n const lastEntryKey = getObjectValueByPath(this.selectableItems[this.lastEntry], this.itemKey)\n const lastEntryKeySelected = Object.keys(this.selection).includes(String(lastEntryKey))\n this.multipleSelect(lastEntryKeySelected, emit, selection, index)\n }\n this.lastEntry = index\n\n if (this.singleSelect && emit) {\n const keys = Object.keys(this.selection)\n const old = keys.length && getObjectValueByPath(this.selection[keys[0]], this.itemKey)\n old && old !== key && this.$emit('item-selected', { item: this.selection[old], value: false })\n }\n this.selection = selection\n emit && this.$emit('item-selected', { item, value })\n },\n multipleSelect (value = true, emit = true, selection: any, index: number): void {\n const start = index < this.lastEntry ? index : this.lastEntry\n const end = index < this.lastEntry ? this.lastEntry : index\n for (let i = start; i <= end; i++) {\n const currentItem = this.selectableItems[i]\n const key = getObjectValueByPath(currentItem, this.itemKey)\n if (value) selection[key] = currentItem\n else delete selection[key]\n emit && this.$emit('item-selected', { currentItem, value })\n }\n },\n isExpanded (item: any): boolean {\n return this.expansion[getObjectValueByPath(item, this.itemKey)] || false\n },\n expand (item: any, value = true): void {\n const expansion = this.singleExpand ? {} : Object.assign({}, this.expansion)\n const key = getObjectValueByPath(item, this.itemKey)\n\n if (value) expansion[key] = true\n else delete expansion[key]\n\n this.expansion = expansion\n this.$emit('item-expanded', { item, value })\n },\n createItemProps (item: any, index: number): DataItemProps {\n return {\n item,\n index,\n select: (v: boolean) => this.select(item, v),\n isSelected: this.isSelected(item),\n expand: (v: boolean) => this.expand(item, v),\n isExpanded: this.isExpanded(item),\n isMobile: this.isMobile,\n }\n },\n genEmptyWrapper (content: VNodeChildren) {\n return this.$createElement('div', content)\n },\n genEmpty (originalItemsLength: number, filteredItemsLength: number) {\n if (originalItemsLength === 0 && this.loading) {\n const loading = this.$slots.loading || this.$vuetify.lang.t(this.loadingText)\n return this.genEmptyWrapper(loading)\n } else if (originalItemsLength === 0) {\n const noData = this.$slots['no-data'] || this.$vuetify.lang.t(this.noDataText)\n return this.genEmptyWrapper(noData)\n } else if (filteredItemsLength === 0) {\n const noResults = this.$slots['no-results'] || this.$vuetify.lang.t(this.noResultsText)\n return this.genEmptyWrapper(noResults)\n }\n\n return null\n },\n genItems (props: DataScopeProps) {\n const empty = this.genEmpty(props.originalItemsLength, props.pagination.itemsLength)\n if (empty) return [empty]\n\n if (this.$scopedSlots.default) {\n return this.$scopedSlots.default({\n ...props,\n isSelected: this.isSelected,\n select: this.select,\n isExpanded: this.isExpanded,\n isMobile: this.isMobile,\n expand: this.expand,\n })\n }\n\n if (this.$scopedSlots.item) {\n return props.items.map((item: any, index) => this.$scopedSlots.item!(this.createItemProps(\n item,\n index\n )))\n }\n\n return []\n },\n genFooter (props: DataScopeProps) {\n if (this.hideDefaultFooter) return null\n\n const data = {\n props: {\n ...this.sanitizedFooterProps,\n options: props.options,\n pagination: props.pagination,\n },\n on: {\n 'update:options': (value: any) => props.updateOptions(value),\n },\n }\n\n const scopedSlots = getPrefixedScopedSlots('footer.', this.$scopedSlots)\n\n return this.$createElement(VDataFooter, {\n scopedSlots,\n ...data,\n })\n },\n genDefaultScopedSlot (props: any) {\n const outerProps = {\n ...props,\n someItems: this.someItems,\n everyItem: this.everyItem,\n toggleSelectAll: this.toggleSelectAll,\n }\n\n return this.$createElement('div', {\n staticClass: 'v-data-iterator',\n }, [\n getSlot(this, 'header', outerProps, true),\n this.genItems(props),\n this.genFooter(props),\n getSlot(this, 'footer', outerProps, true),\n ])\n },\n },\n\n render (): VNode {\n return this.$createElement(VData, {\n props: this.$props,\n on: {\n 'update:options': (v: any, old: any) => !deepEqual(v, old) && this.$emit('update:options', v),\n 'update:page': (v: any) => this.$emit('update:page', v),\n 'update:items-per-page': (v: any) => this.$emit('update:items-per-page', v),\n 'update:sort-by': (v: any) => this.$emit('update:sort-by', v),\n 'update:sort-desc': (v: any) => this.$emit('update:sort-desc', v),\n 'update:group-by': (v: any) => this.$emit('update:group-by', v),\n 'update:group-desc': (v: any) => this.$emit('update:group-desc', v),\n pagination: (v: any, old: any) => !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","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[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 } from '../../util/helpers'\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: VNode[] = 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[slotName]\n const regularSlot = computedSlots[slotName]\n\n if (scopedSlot) {\n children.push(scopedSlot({\n item: props.item,\n isMobile: false,\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 textAlign = `text-${header.align || 'start'}`\n\n return h('td', {\n class: [\n textAlign,\n header.cellClass,\n {\n 'v-data-table__divider': header.divider,\n },\n ],\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 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[slotName]\n const regularSlot = 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 },\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, `${props.options.groupBy[0]}: ${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: () => this.$emit('click:row', item, data),\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","// extracted by mini-css-extract-plugin","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\n","// extracted by mini-css-extract-plugin"],"sourceRoot":""}