/** * react-table * * 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 */ import * as React from 'react'; import { createTable } from '@tanstack/table-core'; export * from '@tanstack/table-core'; // /** * If rendering headers, cells, or footers with custom markup, use flexRender instead of `cell.getValue()` or `cell.renderValue()`. */ function flexRender(Comp, props) { return !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/React.createElement(Comp, props) : Comp; } function isReactComponent(component) { return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component); } function isClassComponent(component) { return typeof component === 'function' && (() => { const proto = Object.getPrototypeOf(component); return proto.prototype && proto.prototype.isReactComponent; })(); } function isExoticComponent(component) { return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description); } function useReactTable(options) { // Compose in the generic options to the user options const resolvedOptions = { state: {}, // Dummy state onStateChange: () => {}, // noop renderFallbackValue: null, ...options }; // Create a new table and store it in state const [tableRef] = React.useState(() => ({ current: createTable(resolvedOptions) })); // By default, manage table state here using the table's initial state const [state, setState] = React.useState(() => tableRef.current.initialState); // Compose the default state above with any user state. This will allow the user // to only control a subset of the state if desired. tableRef.current.setOptions(prev => ({ ...prev, ...options, state: { ...state, ...options.state }, // Similarly, we'll maintain both our internal state and any user-provided // state. onStateChange: updater => { setState(updater); options.onStateChange == null || options.onStateChange(updater); } })); return tableRef.current; } export { flexRender, useReactTable }; //# sourceMappingURL=index.mjs.map