UNPKG

primevue

Version:

PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBloc

324 lines (318 loc) 11.6 kB
import { localeComparator, resolveFieldData, sort } from '@primeuix/utils/object'; import Paginator from 'primevue/paginator'; import BaseComponent from '@primevue/core/basecomponent'; import DataViewStyle from 'primevue/dataview/style'; import { resolveComponent, createElementBlock, openBlock, mergeProps, createCommentVNode, createBlock, createElementVNode, renderSlot, normalizeClass, createSlots, withCtx, Fragment, createTextVNode, toDisplayString } from 'vue'; var script$1 = { name: 'BaseDataView', "extends": BaseComponent, props: { value: { type: Array, "default": null }, layout: { type: String, "default": 'list' }, rows: { type: Number, "default": 0 }, first: { type: Number, "default": 0 }, totalRecords: { type: Number, "default": 0 }, paginator: { type: Boolean, "default": false }, paginatorPosition: { type: String, "default": 'bottom' }, alwaysShowPaginator: { type: Boolean, "default": true }, paginatorTemplate: { type: String, "default": 'FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown' }, pageLinkSize: { type: Number, "default": 5 }, rowsPerPageOptions: { type: Array, "default": null }, currentPageReportTemplate: { type: String, "default": '({currentPage} of {totalPages})' }, sortField: { type: [String, Function], "default": null }, sortOrder: { type: Number, "default": null }, lazy: { type: Boolean, "default": false }, dataKey: { type: String, "default": null } }, style: DataViewStyle, provide: function provide() { return { $pcDataView: this, $parentInstance: this }; } }; function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } var script = { name: 'DataView', "extends": script$1, inheritAttrs: false, emits: ['update:first', 'update:rows', 'page'], data: function data() { return { d_first: this.first, d_rows: this.rows }; }, watch: { first: function first(newValue) { this.d_first = newValue; }, rows: function rows(newValue) { this.d_rows = newValue; }, sortField: function sortField() { this.resetPage(); }, sortOrder: function sortOrder() { this.resetPage(); } }, methods: { getKey: function getKey(item, index) { return this.dataKey ? resolveFieldData(item, this.dataKey) : index; }, onPage: function onPage(event) { this.d_first = event.first; this.d_rows = event.rows; this.$emit('update:first', this.d_first); this.$emit('update:rows', this.d_rows); this.$emit('page', event); }, sort: function sort$1() { var _this = this; if (this.value) { var value = _toConsumableArray(this.value); var comparer = localeComparator(); value.sort(function (data1, data2) { var value1 = resolveFieldData(data1, _this.sortField); var value2 = resolveFieldData(data2, _this.sortField); return sort(value1, value2, _this.sortOrder, comparer); }); return value; } else { return null; } }, resetPage: function resetPage() { this.d_first = 0; this.$emit('update:first', this.d_first); } }, computed: { getTotalRecords: function getTotalRecords() { if (this.totalRecords) return this.totalRecords;else return this.value ? this.value.length : 0; }, empty: function empty() { return !this.value || this.value.length === 0; }, emptyMessageText: function emptyMessageText() { var _this$$primevue$confi; return ((_this$$primevue$confi = this.$primevue.config) === null || _this$$primevue$confi === void 0 || (_this$$primevue$confi = _this$$primevue$confi.locale) === null || _this$$primevue$confi === void 0 ? void 0 : _this$$primevue$confi.emptyMessage) || ''; }, paginatorTop: function paginatorTop() { return this.paginator && (this.paginatorPosition !== 'bottom' || this.paginatorPosition === 'both'); }, paginatorBottom: function paginatorBottom() { return this.paginator && (this.paginatorPosition !== 'top' || this.paginatorPosition === 'both'); }, items: function items() { if (this.value && this.value.length) { var data = this.value; if (data && data.length && this.sortField) { data = this.sort(); } if (this.paginator) { var first = this.lazy ? 0 : this.d_first; return data.slice(first, first + this.d_rows); } else { return data; } } else { return null; } } }, components: { DVPaginator: Paginator } }; function render(_ctx, _cache, $props, $setup, $data, $options) { var _component_DVPaginator = resolveComponent("DVPaginator"); return openBlock(), createElementBlock("div", mergeProps({ "class": _ctx.cx('root') }, _ctx.ptmi('root')), [_ctx.$slots.header ? (openBlock(), createElementBlock("div", mergeProps({ key: 0, "class": _ctx.cx('header') }, _ctx.ptm('header')), [renderSlot(_ctx.$slots, "header")], 16)) : createCommentVNode("", true), $options.paginatorTop ? (openBlock(), createBlock(_component_DVPaginator, { key: 1, rows: $data.d_rows, first: $data.d_first, totalRecords: $options.getTotalRecords, pageLinkSize: _ctx.pageLinkSize, template: _ctx.paginatorTemplate, rowsPerPageOptions: _ctx.rowsPerPageOptions, currentPageReportTemplate: _ctx.currentPageReportTemplate, "class": normalizeClass(_ctx.cx('pcPaginator', { position: 'top' })), alwaysShow: _ctx.alwaysShowPaginator, onPage: _cache[0] || (_cache[0] = function ($event) { return $options.onPage($event); }), unstyled: _ctx.unstyled, pt: _ctx.ptm('pcPaginator') }, createSlots({ _: 2 }, [_ctx.$slots.paginatorcontainer ? { name: "container", fn: withCtx(function (slotProps) { return [renderSlot(_ctx.$slots, "paginatorcontainer", { first: slotProps.first, last: slotProps.last, rows: slotProps.rows, page: slotProps.page, pageCount: slotProps.pageCount, pageLinks: slotProps.pageLinks, totalRecords: slotProps.totalRecords, firstPageCallback: slotProps.firstPageCallback, lastPageCallback: slotProps.lastPageCallback, prevPageCallback: slotProps.prevPageCallback, nextPageCallback: slotProps.nextPageCallback, rowChangeCallback: slotProps.rowChangeCallback, changePageCallback: slotProps.changePageCallback })]; }), key: "0" } : undefined, _ctx.$slots.paginatorstart ? { name: "start", fn: withCtx(function () { return [renderSlot(_ctx.$slots, "paginatorstart")]; }), key: "1" } : undefined, _ctx.$slots.paginatorend ? { name: "end", fn: withCtx(function () { return [renderSlot(_ctx.$slots, "paginatorend")]; }), key: "2" } : undefined]), 1032, ["rows", "first", "totalRecords", "pageLinkSize", "template", "rowsPerPageOptions", "currentPageReportTemplate", "class", "alwaysShow", "unstyled", "pt"])) : createCommentVNode("", true), createElementVNode("div", mergeProps({ "class": _ctx.cx('content') }, _ctx.ptm('content')), [!$options.empty ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [_ctx.$slots.list && _ctx.layout === 'list' ? renderSlot(_ctx.$slots, "list", { key: 0, items: $options.items }) : createCommentVNode("", true), _ctx.$slots.grid && _ctx.layout === 'grid' ? renderSlot(_ctx.$slots, "grid", { key: 1, items: $options.items }) : createCommentVNode("", true)], 64)) : (openBlock(), createElementBlock("div", mergeProps({ key: 1, "class": _ctx.cx('emptyMessage') }, _ctx.ptm('emptyMessage')), [renderSlot(_ctx.$slots, "empty", { layout: _ctx.layout }, function () { return [createTextVNode(toDisplayString($options.emptyMessageText), 1)]; })], 16))], 16), $options.paginatorBottom ? (openBlock(), createBlock(_component_DVPaginator, { key: 2, rows: $data.d_rows, first: $data.d_first, totalRecords: $options.getTotalRecords, pageLinkSize: _ctx.pageLinkSize, template: _ctx.paginatorTemplate, rowsPerPageOptions: _ctx.rowsPerPageOptions, currentPageReportTemplate: _ctx.currentPageReportTemplate, "class": normalizeClass(_ctx.cx('pcPaginator', { position: 'bottom' })), alwaysShow: _ctx.alwaysShowPaginator, onPage: _cache[1] || (_cache[1] = function ($event) { return $options.onPage($event); }), unstyled: _ctx.unstyled, pt: _ctx.ptm('pcPaginator') }, createSlots({ _: 2 }, [_ctx.$slots.paginatorcontainer ? { name: "container", fn: withCtx(function (slotProps) { return [renderSlot(_ctx.$slots, "paginatorcontainer", { first: slotProps.first, last: slotProps.last, rows: slotProps.rows, page: slotProps.page, pageCount: slotProps.pageCount, pageLinks: slotProps.pageLinks, totalRecords: slotProps.totalRecords, firstPageCallback: slotProps.firstPageCallback, lastPageCallback: slotProps.lastPageCallback, prevPageCallback: slotProps.prevPageCallback, nextPageCallback: slotProps.nextPageCallback, rowChangeCallback: slotProps.rowChangeCallback, changePageCallback: slotProps.changePageCallback })]; }), key: "0" } : undefined, _ctx.$slots.paginatorstart ? { name: "start", fn: withCtx(function () { return [renderSlot(_ctx.$slots, "paginatorstart")]; }), key: "1" } : undefined, _ctx.$slots.paginatorend ? { name: "end", fn: withCtx(function () { return [renderSlot(_ctx.$slots, "paginatorend")]; }), key: "2" } : undefined]), 1032, ["rows", "first", "totalRecords", "pageLinkSize", "template", "rowsPerPageOptions", "currentPageReportTemplate", "class", "alwaysShow", "unstyled", "pt"])) : createCommentVNode("", true), _ctx.$slots.footer ? (openBlock(), createElementBlock("div", mergeProps({ key: 3, "class": _ctx.cx('footer') }, _ctx.ptm('footer')), [renderSlot(_ctx.$slots, "footer")], 16)) : createCommentVNode("", true)], 16); } script.render = render; export { script as default }; //# sourceMappingURL=index.mjs.map