package.build.lib.features.Expanding.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of table-core Show documentation
Show all versions of table-core Show documentation
Headless UI for building powerful tables & datagrids for TS/JS.
The newest version!
/**
* 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 Expanding = {
getInitialState: state => {
return {
expanded: {},
...state
};
},
getDefaultOptions: table => {
return {
onExpandedChange: utils.makeStateUpdater('expanded', table),
paginateExpandedRows: true
};
},
createTable: table => {
let registered = false;
let queued = false;
return {
_autoResetExpanded: () => {
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.autoResetExpanded) != null ? _ref : !table.options.manualExpanding) {
if (queued) return;
queued = true;
table._queue(() => {
table.resetExpanded();
queued = false;
});
}
},
setExpanded: updater => table.options.onExpandedChange == null ? void 0 : table.options.onExpandedChange(updater),
toggleAllRowsExpanded: expanded => {
if (expanded != null ? expanded : !table.getIsAllRowsExpanded()) {
table.setExpanded(true);
} else {
table.setExpanded({});
}
},
resetExpanded: defaultState => {
var _table$initialState$e, _table$initialState;
table.setExpanded(defaultState ? {} : (_table$initialState$e = (_table$initialState = table.initialState) == null ? void 0 : _table$initialState.expanded) != null ? _table$initialState$e : {});
},
getCanSomeRowsExpand: () => {
return table.getPrePaginationRowModel().flatRows.some(row => row.getCanExpand());
},
getToggleAllRowsExpandedHandler: () => {
return e => {
e.persist == null ? void 0 : e.persist();
table.toggleAllRowsExpanded();
};
},
getIsSomeRowsExpanded: () => {
const expanded = table.getState().expanded;
return expanded === true || Object.values(expanded).some(Boolean);
},
getIsAllRowsExpanded: () => {
const expanded = table.getState().expanded;
// If expanded is true, save some cycles and return true
if (typeof expanded === 'boolean') {
return expanded === true;
}
if (!Object.keys(expanded).length) {
return false;
}
// If any row is not expanded, return false
if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {
return false;
}
// They must all be expanded :shrug:
return true;
},
getExpandedDepth: () => {
let maxDepth = 0;
const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);
rowIds.forEach(id => {
const splitId = id.split('.');
maxDepth = Math.max(maxDepth, splitId.length);
});
return maxDepth;
},
getPreExpandedRowModel: () => table.getSortedRowModel(),
getExpandedRowModel: () => {
if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {
table._getExpandedRowModel = table.options.getExpandedRowModel(table);
}
if (table.options.manualExpanding || !table._getExpandedRowModel) {
return table.getPreExpandedRowModel();
}
return table._getExpandedRowModel();
}
};
},
createRow: (row, table) => {
return {
toggleExpanded: expanded => {
table.setExpanded(old => {
var _expanded;
const exists = old === true ? true : !!(old != null && old[row.id]);
let oldExpanded = {};
if (old === true) {
Object.keys(table.getRowModel().rowsById).forEach(rowId => {
oldExpanded[rowId] = true;
});
} else {
oldExpanded = old;
}
expanded = (_expanded = expanded) != null ? _expanded : !exists;
if (!exists && expanded) {
return {
...oldExpanded,
[row.id]: true
};
}
if (exists && !expanded) {
const {
[row.id]: _,
...rest
} = oldExpanded;
return rest;
}
return old;
});
},
getIsExpanded: () => {
var _table$options$getIsR;
const expanded = table.getState().expanded;
return !!((_table$options$getIsR = table.options.getIsRowExpanded == null ? void 0 : table.options.getIsRowExpanded(row)) != null ? _table$options$getIsR : expanded === true || (expanded == null ? void 0 : expanded[row.id]));
},
getCanExpand: () => {
var _table$options$getRow, _table$options$enable, _row$subRows;
return (_table$options$getRow = table.options.getRowCanExpand == null ? void 0 : table.options.getRowCanExpand(row)) != null ? _table$options$getRow : ((_table$options$enable = table.options.enableExpanding) != null ? _table$options$enable : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);
},
getToggleExpandedHandler: () => {
const canExpand = row.getCanExpand();
return () => {
if (!canExpand) return;
row.toggleExpanded();
};
}
};
}
};
exports.Expanding = Expanding;
//# sourceMappingURL=Expanding.js.map
© 2015 - 2024 Weber Informatics LLC | Privacy Policy