UNPKG

@tanstack/table-core

Version:

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

51 lines (49 loc) 1.65 kB
import { assignPrototypeAPIs, assignTableAPIs } from "../../utils.js"; import { header_getContext, header_getLeafHeaders, table_getFlatHeaders, table_getFooterGroups, table_getHeaderGroups, table_getLeafHeaders } from "./coreHeadersFeature.utils.js"; //#region src/core/headers/coreHeadersFeature.ts /** * Core feature that builds header groups and exposes header context APIs. */ const coreHeadersFeature = { assignHeaderPrototype: (prototype, table) => { assignPrototypeAPIs("coreHeadersFeature", prototype, table, { header_getLeafHeaders: { fn: (header) => header_getLeafHeaders(header), memoDeps: (header) => [header.column.table.options.columns] }, header_getContext: { fn: (header) => header_getContext(header), memoDeps: (header) => [header.column.table.options.columns] } }); }, constructTableAPIs: (table) => { assignTableAPIs("coreHeadersFeature", table, { table_getHeaderGroups: { fn: () => table_getHeaderGroups(table), memoDeps: () => [ table.options.columns, table.atoms.columnOrder?.get(), table.atoms.grouping?.get(), table.atoms.columnPinning?.get(), table.atoms.columnVisibility?.get(), table.options.groupedColumnMode ] }, table_getFooterGroups: { fn: () => table_getFooterGroups(table), memoDeps: () => [table.getHeaderGroups()] }, table_getFlatHeaders: { fn: () => table_getFlatHeaders(table), memoDeps: () => [table.getHeaderGroups()] }, table_getLeafHeaders: { fn: () => table_getLeafHeaders(table), memoDeps: () => [table.getHeaderGroups()] } }); } }; //#endregion export { coreHeadersFeature };