UNPKG

@tanstack/table-core

Version:

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

63 lines (61 loc) 2.16 kB
import { assignPrototypeAPIs, assignTableAPIs } from "../../utils.js"; import { column_getFlatColumns, column_getLeafColumns, table_getAllColumns, table_getAllFlatColumns, table_getAllFlatColumnsById, table_getAllLeafColumns, table_getAllLeafColumnsById, table_getColumn, table_getDefaultColumnDef } from "./coreColumnsFeature.utils.js"; //#region src/core/columns/coreColumnsFeature.ts /** * Core feature that builds the column tree and exposes table/column APIs. */ const coreColumnsFeature = { assignColumnPrototype: (prototype, table) => { assignPrototypeAPIs("coreColumnsFeature", prototype, table, { column_getFlatColumns: { fn: (column) => column_getFlatColumns(column), memoDeps: (column) => [column.table.options.columns] }, column_getLeafColumns: { fn: (column) => column_getLeafColumns(column), memoDeps: (column) => [ column.table.atoms.columnOrder?.get(), column.table.atoms.grouping?.get(), column.table.options.columns, column.table.options.groupedColumnMode ] } }); }, constructTableAPIs: (table) => { assignTableAPIs("coreColumnsFeature", table, { table_getDefaultColumnDef: { fn: () => table_getDefaultColumnDef(table), memoDeps: () => [table.options.defaultColumn] }, table_getAllColumns: { fn: () => table_getAllColumns(table), memoDeps: () => [table.options.columns] }, table_getAllFlatColumns: { fn: () => table_getAllFlatColumns(table), memoDeps: () => [table.options.columns] }, table_getAllFlatColumnsById: { fn: () => table_getAllFlatColumnsById(table), memoDeps: () => [table.options.columns] }, table_getAllLeafColumns: { fn: () => table_getAllLeafColumns(table), memoDeps: () => [ table.atoms.columnOrder?.get(), table.atoms.grouping?.get(), table.options.columns, table.options.groupedColumnMode ] }, table_getAllLeafColumnsById: { fn: () => table_getAllLeafColumnsById(table), memoDeps: () => [table.getAllLeafColumns()] }, table_getColumn: { fn: (columnId) => table_getColumn(table, columnId) } }); } }; //#endregion export { coreColumnsFeature };