{"version":3,"sources":["webpack:///../../../src/components/VData/VData.ts","webpack:///./node_modules/core-js/modules/es.string.search.js","webpack:///../../../src/components/VBtn/index.ts","webpack:///../../../src/components/VDataIterator/VDataIterator.ts","webpack:///../../../src/components/VDataIterator/VDataFooter.ts"],"names":["name","inheritAttrs","props","items","type","default","options","sortBy","String","sortDesc","Boolean","customSort","mustSort","multiSort","page","itemsPerPage","groupBy","groupDesc","customGroup","locale","disableSort","disablePagination","disableFiltering","search","customFilter","serverItemsLength","data","internalOptions","this","Object","sortDiff","groupDiff","computed","itemsLength","filteredItems","pageCount","Math","pageStart","pageStop","isGrouped","pagination","computedItems","sortItems","paginateItems","groupedItems","groupItems","scopedProps","sort","sortArray","group","updateOptions","originalItemsLength","length","computedOptions","watch","handler","deep","immediate","$emit","Array","methods","toggle","by","oldBy","desc","oldDesc","byIndex","k","s","i","render","$scopedSlots","fixRegExpWellKnownSymbolLogic","anObject","requireObjectCoercible","sameValue","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","O","searcher","undefined","call","RegExp","res","done","value","rx","S","previousLastIndex","lastIndex","result","index","itemKey","singleSelect","expanded","mobileBreakpoint","singleExpand","loading","noResultsText","noDataText","loadingText","hideDefaultFooter","footerProps","selectableKey","selection","expansion","internalCurrentItems","everyItem","selectableItems","every","someItems","some","sanitizedFooterProps","filter","item","keys","created","breakingProps","original","replacement","removedProps","prop","toggleSelectAll","isSelectable","key","isSelected","select","emit","old","isExpanded","expand","createItemProps","v","isMobile","genEmptyWrapper","$createElement","genEmpty","$slots","$vuetify","lang","t","noData","filteredItemsLength","noResults","genItems","empty","genFooter","on","scopedSlots","genDefaultScopedSlot","outerProps","staticClass","required","itemsPerPageOptions","prevIcon","nextIcon","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","showCurrentPage","disableItemsPerPage","pageText","disableNextPageIcon","computedDataItemsPerPageOptions","map","option","onFirstPage","onPreviousPage","onNextPage","onLastPage","onChangeItemsPerPage","genDataItemsPerPageOption","text","genItemsPerPageSelect","computedIPPO","ippo","attrs","disabled","hideDetails","auto","minWidth","input","genPaginationInfo","children","class","genIcon","icon","click","label","genIcons","before","after","rtl"],"mappings":"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","file":"js/chunk-066e76a5.adc8fc3e.js","sourcesContent":["// Helpers\nimport { wrapInArray, sortItems, deepEqual, groupItems, searchItems, fillArray } from '../../util/helpers'\nimport Vue, { VNode } from 'vue'\n\n// Types\nimport {\n DataOptions,\n DataPagination,\n DataScopeProps,\n DataSortFunction,\n DataGroupFunction,\n DataSearchFunction,\n ItemGroup,\n} from 'vuetify/types'\nimport { PropValidator } from 'vue/types/options'\n\nexport default Vue.extend({\n name: 'v-data',\n\n inheritAttrs: false,\n\n props: {\n items: {\n type: Array,\n default: () => [],\n } as PropValidator,\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.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 = this.internalOptions.sortBy\n let sortDesc = this.internalOptions.sortDesc\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, this.internalOptions.page - 1)\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","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","import VBtn from './VBtn'\n\nexport { VBtn }\nexport default VBtn\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 } 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 }),\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 methods: {\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 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 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 './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'\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 this.genItemsPerPageSelect(),\n this.genPaginationInfo(),\n this.genIcons(),\n ])\n },\n})\n"],"sourceRoot":""}