UNPKG

es-grid-template

Version:

es-grid-template

39 lines (37 loc) 1.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.paginationFeature = paginationFeature; var _hooks = require("../../../grid-component/hooks"); const stateKey = 'pagination'; function paginationFeature(opts = {}) { return function paginationData(pipeline) { const { pagination } = opts; const dataSource = pipeline.getDataSource(); if (process.env.NODE_ENV !== 'production') { // if (!hasAnySortableColumns(columns)) { // console.warn( // '[ali-react-table] commonTransform.sort 缺少可排序的列,请通过 column.features.sortable 来指定哪些列可排序', // columns, // ) // } } pipeline.dataSource(processDataSource(dataSource)); return pipeline; function processDataSource(data) { if (pagination === false || pagination && pagination.onChange) { return data; } const currentPage = pagination?.currentPage ?? pipeline.getStateAtKey(stateKey)?.currentPage ?? 1; const pageSize = pagination?.pageSize ?? pipeline.getStateAtKey(stateKey)?.pageSize ?? _hooks.pageSizeOptions[0]; const safePage = Math.max(1, Math.min(currentPage, pagination?.total || 1)); const start = (safePage - 1) * pageSize; const end = start + pageSize; const pageData = data.slice(start, end); return pageData; } }; }