UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 25.9 kB
{"version":3,"file":"VDataIterator.mjs","names":["VData","VDataFooter","Mobile","Themeable","mixins","deepEqual","getObjectValueByPath","getPrefixedScopedSlots","getSlot","camelizeObjectKeys","keyCodes","breaking","removed","extend","name","props","options","itemKey","type","String","default","value","Array","singleSelect","Boolean","expanded","mobileBreakpoint","singleExpand","loading","noResultsText","noDataText","loadingText","hideDefaultFooter","footerProps","Object","selectableKey","data","selection","expansion","internalCurrentItems","shiftKeyDown","lastEntry","computed","everyItem","selectableItems","length","every","i","isSelected","someItems","some","sanitizedFooterProps","filter","item","isSelectable","watch","handler","reduce","immediate","old","keys","$emit","values","k","items","includes","created","breakingProps","forEach","original","replacement","$attrs","hasOwnProperty","removedProps","prop","mounted","window","addEventListener","onKeyDown","onKeyUp","beforeDestroy","removeEventListener","methods","e","keyCode","shift","toggleSelectAll","assign","key","select","emit","index","findIndex","x","lastEntryKey","lastEntryKeySelected","multipleSelect","start","end","currentItem","isExpanded","expand","createItemProps","v","isMobile","genEmptyWrapper","content","$createElement","genEmpty","originalItemsLength","filteredItemsLength","$slots","$vuetify","lang","t","noData","noResults","genItems","empty","pagination","itemsLength","$scopedSlots","map","genFooter","on","updateOptions","scopedSlots","genDefaultScopedSlot","outerProps","staticClass","render","$props"],"sources":["../../../src/components/VDataIterator/VDataIterator.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\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<any[]>,\n singleSelect: Boolean,\n expanded: {\n type: Array,\n default: () => [],\n } as PropValidator<any[]>,\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<string, any>,\n expansion: {} as Record<string, boolean>,\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<string, any> {\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<string, boolean>, old: Record<string, boolean>) {\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<string, boolean>, old: Record<string, boolean>) {\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"],"mappings":"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"}