UNPKG

@tanstack/table-core

Version:

Headless UI for building powerful tables & datagrids for TS/JS.

47 lines (43 loc) 1.43 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'; var utils = require('../utils.js'); function getExpandedRowModel() { return table => utils.memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => { if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) { return rowModel; } if (!paginateExpandedRows) { // Only expand rows at this point if they are being paginated return rowModel; } return expandRows(rowModel); }, utils.getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel')); } function expandRows(rowModel) { const expandedRows = []; const handleRow = row => { var _row$subRows; expandedRows.push(row); if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) { row.subRows.forEach(handleRow); } }; rowModel.rows.forEach(handleRow); return { rows: expandedRows, flatRows: rowModel.flatRows, rowsById: rowModel.rowsById }; } exports.expandRows = expandRows; exports.getExpandedRowModel = getExpandedRowModel; //# sourceMappingURL=getExpandedRowModel.js.map