vuetify
Version:
Vue Material Component Framework
1 lines • 14.7 kB
Source Map (JSON)
{"version":3,"file":"VDataFooter.mjs","names":["VSelect","VIcon","VBtn","Vue","getSlot","extend","name","props","options","type","Object","required","pagination","itemsPerPageOptions","Array","default","prevIcon","String","nextIcon","firstIcon","lastIcon","itemsPerPageText","itemsPerPageAllText","showFirstLastPage","Boolean","showCurrentPage","disablePagination","disableItemsPerPage","pageText","computed","disableNextPageIcon","itemsPerPage","page","itemsLength","pageStop","computedDataItemsPerPageOptions","map","option","genDataItemsPerPageOption","methods","updateOptions","obj","$emit","assign","onFirstPage","onPreviousPage","onNextPage","onLastPage","pageCount","onChangeItemsPerPage","text","$vuetify","lang","t","value","genItemsPerPageSelect","computedIPPO","length","find","ippo","$createElement","staticClass","attrs","disabled","items","hideDetails","auto","minWidth","on","input","genPaginationInfo","children","pageStart","$scopedSlots","class","genIcon","click","label","icon","genIcons","before","after","push","rtl","unshift","toString","render"],"sources":["../../../src/components/VDataIterator/VDataFooter.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\nimport './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<DataOptions>,\n required: true,\n },\n pagination: {\n type: Object as PropType<DataPagination>,\n required: true,\n },\n itemsPerPageOptions: {\n type: Array,\n default: () => ([5, 10, 15, -1]),\n } as PropValidator<DataItemsPerPageOption[]>,\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"],"mappings":"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"}