forked from jchomaz/Vulture
Tracking de l'application VApp (IHM du jeu)
This commit is contained in:
140
VApp/node_modules/vuetify/lib/components/VDataTable/VDataTableFooter.mjs
generated
vendored
Normal file
140
VApp/node_modules/vuetify/lib/components/VDataTable/VDataTableFooter.mjs
generated
vendored
Normal file
@@ -0,0 +1,140 @@
|
||||
import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
||||
// Styles
|
||||
import "./VDataTableFooter.css";
|
||||
|
||||
// Components
|
||||
import { VPagination } from "../VPagination/index.mjs";
|
||||
import { VSelect } from "../VSelect/index.mjs"; // Composables
|
||||
import { usePagination } from "./composables/paginate.mjs";
|
||||
import { useLocale } from "../../composables/locale.mjs"; // Utilities
|
||||
import { computed } from 'vue';
|
||||
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
||||
export const makeVDataTableFooterProps = propsFactory({
|
||||
prevIcon: {
|
||||
type: String,
|
||||
default: '$prev'
|
||||
},
|
||||
nextIcon: {
|
||||
type: String,
|
||||
default: '$next'
|
||||
},
|
||||
firstIcon: {
|
||||
type: String,
|
||||
default: '$first'
|
||||
},
|
||||
lastIcon: {
|
||||
type: String,
|
||||
default: '$last'
|
||||
},
|
||||
itemsPerPageText: {
|
||||
type: String,
|
||||
default: '$vuetify.dataFooter.itemsPerPageText'
|
||||
},
|
||||
pageText: {
|
||||
type: String,
|
||||
default: '$vuetify.dataFooter.pageText'
|
||||
},
|
||||
firstPageLabel: {
|
||||
type: String,
|
||||
default: '$vuetify.dataFooter.firstPage'
|
||||
},
|
||||
prevPageLabel: {
|
||||
type: String,
|
||||
default: '$vuetify.dataFooter.prevPage'
|
||||
},
|
||||
nextPageLabel: {
|
||||
type: String,
|
||||
default: '$vuetify.dataFooter.nextPage'
|
||||
},
|
||||
lastPageLabel: {
|
||||
type: String,
|
||||
default: '$vuetify.dataFooter.lastPage'
|
||||
},
|
||||
itemsPerPageOptions: {
|
||||
type: Array,
|
||||
default: () => [{
|
||||
value: 10,
|
||||
title: '10'
|
||||
}, {
|
||||
value: 25,
|
||||
title: '25'
|
||||
}, {
|
||||
value: 50,
|
||||
title: '50'
|
||||
}, {
|
||||
value: 100,
|
||||
title: '100'
|
||||
}, {
|
||||
value: -1,
|
||||
title: '$vuetify.dataFooter.itemsPerPageAll'
|
||||
}]
|
||||
},
|
||||
showCurrentPage: Boolean
|
||||
}, 'VDataTableFooter');
|
||||
export const VDataTableFooter = genericComponent()({
|
||||
name: 'VDataTableFooter',
|
||||
props: makeVDataTableFooterProps(),
|
||||
setup(props, _ref) {
|
||||
let {
|
||||
slots
|
||||
} = _ref;
|
||||
const {
|
||||
t
|
||||
} = useLocale();
|
||||
const {
|
||||
page,
|
||||
pageCount,
|
||||
startIndex,
|
||||
stopIndex,
|
||||
itemsLength,
|
||||
itemsPerPage,
|
||||
setItemsPerPage
|
||||
} = usePagination();
|
||||
const itemsPerPageOptions = computed(() => props.itemsPerPageOptions.map(option => {
|
||||
if (typeof option === 'number') {
|
||||
return {
|
||||
value: option,
|
||||
title: option === -1 ? t('$vuetify.dataFooter.itemsPerPageAll') : String(option)
|
||||
};
|
||||
}
|
||||
return {
|
||||
...option,
|
||||
title: t(option.title)
|
||||
};
|
||||
}));
|
||||
useRender(() => {
|
||||
const paginationProps = VPagination.filterProps(props);
|
||||
return _createVNode("div", {
|
||||
"class": "v-data-table-footer"
|
||||
}, [slots.prepend?.(), _createVNode("div", {
|
||||
"class": "v-data-table-footer__items-per-page"
|
||||
}, [_createVNode("span", null, [t(props.itemsPerPageText)]), _createVNode(VSelect, {
|
||||
"items": itemsPerPageOptions.value,
|
||||
"modelValue": itemsPerPage.value,
|
||||
"onUpdate:modelValue": v => setItemsPerPage(Number(v)),
|
||||
"density": "compact",
|
||||
"variant": "outlined",
|
||||
"hide-details": true
|
||||
}, null)]), _createVNode("div", {
|
||||
"class": "v-data-table-footer__info"
|
||||
}, [_createVNode("div", null, [t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value)])]), _createVNode("div", {
|
||||
"class": "v-data-table-footer__pagination"
|
||||
}, [_createVNode(VPagination, _mergeProps({
|
||||
"modelValue": page.value,
|
||||
"onUpdate:modelValue": $event => page.value = $event,
|
||||
"density": "comfortable",
|
||||
"first-aria-label": props.firstPageLabel,
|
||||
"last-aria-label": props.lastPageLabel,
|
||||
"length": pageCount.value,
|
||||
"next-aria-label": props.nextPageLabel,
|
||||
"previous-aria-label": props.prevPageLabel,
|
||||
"rounded": true,
|
||||
"show-first-last-page": true,
|
||||
"total-visible": props.showCurrentPage ? 1 : 0,
|
||||
"variant": "plain"
|
||||
}, paginationProps), null)])]);
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VDataTableFooter.mjs.map
|
||||
Reference in New Issue
Block a user