UNPKG

@justjarethb/table-core

Version:

Fork of @tanstack/table-core with support for event listeners in different windows

169 lines (163 loc) 6.28 kB
/** * table-core * * Copyright (c) TanStack * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var utils = require('../utils.js'); // const defaultPageIndex = 0; const defaultPageSize = 10; const getDefaultPaginationState = () => ({ pageIndex: defaultPageIndex, pageSize: defaultPageSize }); const Pagination = { getInitialState: state => { return { ...state, pagination: { ...getDefaultPaginationState(), ...(state == null ? void 0 : state.pagination) } }; }, getDefaultOptions: table => { return { onPaginationChange: utils.makeStateUpdater('pagination', table) }; }, createTable: table => { let registered = false; let queued = false; return { _autoResetPageIndex: () => { var _ref, _table$options$autoRe; if (!registered) { table._queue(() => { registered = true; }); return; } if ((_ref = (_table$options$autoRe = table.options.autoResetAll) != null ? _table$options$autoRe : table.options.autoResetPageIndex) != null ? _ref : !table.options.manualPagination) { if (queued) return; queued = true; table._queue(() => { table.resetPageIndex(); queued = false; }); } }, setPagination: updater => { const safeUpdater = old => { let newState = utils.functionalUpdate(updater, old); return newState; }; return table.options.onPaginationChange == null ? void 0 : table.options.onPaginationChange(safeUpdater); }, resetPagination: defaultState => { var _table$initialState$p; table.setPagination(defaultState ? getDefaultPaginationState() : (_table$initialState$p = table.initialState.pagination) != null ? _table$initialState$p : getDefaultPaginationState()); }, setPageIndex: updater => { table.setPagination(old => { let pageIndex = utils.functionalUpdate(updater, old.pageIndex); const maxPageIndex = typeof table.options.pageCount === 'undefined' || table.options.pageCount === -1 ? Number.MAX_SAFE_INTEGER : table.options.pageCount - 1; pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex)); return { ...old, pageIndex }; }); }, resetPageIndex: defaultState => { var _table$initialState$p2, _table$initialState, _table$initialState$p3; table.setPageIndex(defaultState ? defaultPageIndex : (_table$initialState$p2 = (_table$initialState = table.initialState) == null ? void 0 : (_table$initialState$p3 = _table$initialState.pagination) == null ? void 0 : _table$initialState$p3.pageIndex) != null ? _table$initialState$p2 : defaultPageIndex); }, resetPageSize: defaultState => { var _table$initialState$p4, _table$initialState2, _table$initialState2$; table.setPageSize(defaultState ? defaultPageSize : (_table$initialState$p4 = (_table$initialState2 = table.initialState) == null ? void 0 : (_table$initialState2$ = _table$initialState2.pagination) == null ? void 0 : _table$initialState2$.pageSize) != null ? _table$initialState$p4 : defaultPageSize); }, setPageSize: updater => { table.setPagination(old => { const pageSize = Math.max(1, utils.functionalUpdate(updater, old.pageSize)); const topRowIndex = old.pageSize * old.pageIndex; const pageIndex = Math.floor(topRowIndex / pageSize); return { ...old, pageIndex, pageSize }; }); }, setPageCount: updater => table.setPagination(old => { var _table$options$pageCo; let newPageCount = utils.functionalUpdate(updater, (_table$options$pageCo = table.options.pageCount) != null ? _table$options$pageCo : -1); if (typeof newPageCount === 'number') { newPageCount = Math.max(-1, newPageCount); } return { ...old, pageCount: newPageCount }; }), getPageOptions: utils.memo(() => [table.getPageCount()], pageCount => { let pageOptions = []; if (pageCount && pageCount > 0) { pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i); } return pageOptions; }, { key: process.env.NODE_ENV === 'development' && 'getPageOptions', debug: () => { var _table$options$debugA; return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable; } }), getCanPreviousPage: () => table.getState().pagination.pageIndex > 0, getCanNextPage: () => { const { pageIndex } = table.getState().pagination; const pageCount = table.getPageCount(); if (pageCount === -1) { return true; } if (pageCount === 0) { return false; } return pageIndex < pageCount - 1; }, previousPage: () => { return table.setPageIndex(old => old - 1); }, nextPage: () => { return table.setPageIndex(old => { return old + 1; }); }, getPrePaginationRowModel: () => table.getExpandedRowModel(), getPaginationRowModel: () => { if (!table._getPaginationRowModel && table.options.getPaginationRowModel) { table._getPaginationRowModel = table.options.getPaginationRowModel(table); } if (table.options.manualPagination || !table._getPaginationRowModel) { return table.getPrePaginationRowModel(); } return table._getPaginationRowModel(); }, getPageCount: () => { var _table$options$pageCo2; return (_table$options$pageCo2 = table.options.pageCount) != null ? _table$options$pageCo2 : Math.ceil(table.getPrePaginationRowModel().rows.length / table.getState().pagination.pageSize); } }; } }; exports.Pagination = Pagination; //# sourceMappingURL=Pagination.js.map