simple-table-core 4.0.4 → 4.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/cjs/index.js +1 -1
  2. package/dist/consts/general-consts.d.ts +2 -2
  3. package/dist/core/SimpleTableVanilla.d.ts +3 -3
  4. package/dist/core/api/TableAPIImpl.d.ts +6 -6
  5. package/dist/core/initialization/TableInitializer.d.ts +4 -4
  6. package/dist/core/rendering/RenderOrchestrator.d.ts +9 -9
  7. package/dist/core/rendering/SectionRenderer.d.ts +3 -3
  8. package/dist/core/rendering/TableRenderer.d.ts +8 -8
  9. package/dist/hooks/contentHeight.d.ts +2 -2
  10. package/dist/hooks/expandedDepths.d.ts +1 -1
  11. package/dist/hooks/handleOutsideClick.d.ts +3 -3
  12. package/dist/hooks/useAggregatedRows.d.ts +2 -2
  13. package/dist/hooks/useQuickFilter.d.ts +2 -2
  14. package/dist/index.d.ts +2 -3
  15. package/dist/index.es.js +1 -1
  16. package/dist/managers/AutoScaleManager.d.ts +5 -5
  17. package/dist/managers/ColumnManager.d.ts +12 -12
  18. package/dist/managers/DimensionManager.d.ts +2 -2
  19. package/dist/managers/DragHandlerManager.d.ts +20 -20
  20. package/dist/managers/FilterManager.d.ts +2 -2
  21. package/dist/managers/PivotManager.d.ts +4 -4
  22. package/dist/managers/RowManager.d.ts +2 -2
  23. package/dist/managers/SelectionManager/types.d.ts +3 -3
  24. package/dist/managers/SortManager.d.ts +2 -2
  25. package/dist/managers/TableManager.d.ts +4 -4
  26. package/dist/types/CellChangeProps.d.ts +1 -1
  27. package/dist/types/CellClickProps.d.ts +1 -1
  28. package/dist/types/CellRendererProps.d.ts +1 -1
  29. package/dist/types/{HeaderObject.d.ts → ColumnDef.d.ts} +3 -5
  30. package/dist/types/ColumnEditorConfig.d.ts +2 -2
  31. package/dist/types/ColumnEditorCustomRendererProps.d.ts +2 -2
  32. package/dist/types/ColumnEditorRowRendererProps.d.ts +5 -5
  33. package/dist/types/ColumnVisibilityTypes.d.ts +1 -1
  34. package/dist/types/DragHandlerProps.d.ts +6 -6
  35. package/dist/types/FilterTypes.d.ts +1 -1
  36. package/dist/types/FlattenedHeader.d.ts +3 -3
  37. package/dist/types/HandleResizeStartProps.d.ts +5 -5
  38. package/dist/types/HeaderRendererProps.d.ts +3 -3
  39. package/dist/types/OnRowGroupExpandProps.d.ts +1 -1
  40. package/dist/types/OnSortProps.d.ts +1 -1
  41. package/dist/types/PinnedSectionsState.d.ts +1 -1
  42. package/dist/types/PivotTypes.d.ts +3 -3
  43. package/dist/types/QuickFilterTypes.d.ts +1 -1
  44. package/dist/types/SharedTableProps.d.ts +7 -7
  45. package/dist/types/SimpleTableConfig.d.ts +24 -16
  46. package/dist/types/SimpleTableProps.d.ts +19 -58
  47. package/dist/types/SortColumn.d.ts +2 -2
  48. package/dist/types/TableAPI.d.ts +4 -4
  49. package/dist/types/TableBodyProps.d.ts +3 -3
  50. package/dist/types/TableHeaderProps.d.ts +4 -4
  51. package/dist/types/TableHeaderSectionProps.d.ts +2 -2
  52. package/dist/types/TableRow.d.ts +2 -2
  53. package/dist/types/TableRowProps.d.ts +6 -6
  54. package/dist/types/UpdateCellProps.d.ts +1 -1
  55. package/dist/utils/bodyCell/content.d.ts +2 -2
  56. package/dist/utils/bodyCell/types.d.ts +6 -6
  57. package/dist/utils/cellClipboardUtils.d.ts +4 -4
  58. package/dist/utils/cellUtils.d.ts +3 -3
  59. package/dist/utils/collapseUtils.d.ts +7 -7
  60. package/dist/utils/columnEditor/columnEditorUtils.d.ts +5 -5
  61. package/dist/utils/columnEditor/createColumnEditor.d.ts +5 -5
  62. package/dist/utils/columnEditor/createColumnEditorPopout.d.ts +4 -4
  63. package/dist/utils/columnEditor/createColumnEditorRow.d.ts +6 -6
  64. package/dist/utils/columnIndicesUtils.d.ts +4 -4
  65. package/dist/utils/columnVirtualizationUtils.d.ts +10 -10
  66. package/dist/utils/csvExportUtils.d.ts +3 -3
  67. package/dist/utils/filters/createBooleanFilter.d.ts +2 -2
  68. package/dist/utils/filters/createDateFilter.d.ts +2 -2
  69. package/dist/utils/filters/createEnumFilter.d.ts +2 -2
  70. package/dist/utils/filters/createFilterDropdown.d.ts +2 -2
  71. package/dist/utils/filters/createNumberFilter.d.ts +2 -2
  72. package/dist/utils/filters/createStringFilter.d.ts +2 -2
  73. package/dist/utils/footer/createTableFooter.d.ts +1 -1
  74. package/dist/utils/generalUtils.d.ts +2 -2
  75. package/dist/utils/headerCell/collapsing.d.ts +2 -2
  76. package/dist/utils/headerCell/dragging.d.ts +4 -4
  77. package/dist/utils/headerCell/editing.d.ts +3 -3
  78. package/dist/utils/headerCell/eventTracking.d.ts +3 -3
  79. package/dist/utils/headerCell/filtering.d.ts +2 -2
  80. package/dist/utils/headerCell/resizing.d.ts +2 -2
  81. package/dist/utils/headerCell/sorting.d.ts +2 -2
  82. package/dist/utils/headerCell/types.d.ts +13 -13
  83. package/dist/utils/headerLayoutUtils.d.ts +2 -2
  84. package/dist/utils/headerUtils.d.ts +5 -5
  85. package/dist/utils/headerWidthUtils.d.ts +10 -10
  86. package/dist/utils/horizontalScrollbarRenderer.d.ts +1 -1
  87. package/dist/utils/infiniteScrollUtils.d.ts +1 -1
  88. package/dist/utils/normalizeConfig.d.ts +7 -43
  89. package/dist/utils/pinnedColumnUtils.d.ts +12 -12
  90. package/dist/utils/pivot/pivotRows.d.ts +4 -4
  91. package/dist/utils/propSyncEqual.d.ts +1 -1
  92. package/dist/utils/resizeUtils/autoExpandResize.d.ts +5 -5
  93. package/dist/utils/resizeUtils/compensation.d.ts +2 -2
  94. package/dist/utils/resizeUtils/domUpdates.d.ts +3 -3
  95. package/dist/utils/resizeUtils/index.d.ts +5 -5
  96. package/dist/utils/resizeUtils/maxWidth.d.ts +3 -3
  97. package/dist/utils/resizeUtils/parentHeaderResize.d.ts +2 -2
  98. package/dist/utils/resizeUtils/sectionWidths.d.ts +2 -2
  99. package/dist/utils/rowFlattening.d.ts +2 -2
  100. package/dist/utils/rowProcessing.d.ts +2 -2
  101. package/dist/utils/rowSelectionUtils.d.ts +2 -2
  102. package/dist/utils/rowUtils.d.ts +2 -2
  103. package/dist/utils/sortUtils.d.ts +2 -2
  104. package/dist/utils/stickyParentsRenderer.d.ts +5 -5
  105. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
1
+ import ColumnDef, { Accessor } from "../types/ColumnDef";
2
2
  interface AutoScaleConfig {
3
3
  autoExpandColumns: boolean;
4
4
  containerWidth: number;
@@ -16,8 +16,8 @@ interface AutoScaleConfig {
16
16
  */
17
17
  collapsedHeaders?: Set<Accessor>;
18
18
  }
19
- type HeaderUpdateCallback = (headers: HeaderObject[]) => void;
20
- export declare const applyAutoScaleToHeaders: (headers: HeaderObject[], options: AutoScaleConfig) => HeaderObject[];
19
+ type HeaderUpdateCallback = (headers: ColumnDef[]) => void;
20
+ export declare const applyAutoScaleToHeaders: (headers: ColumnDef[], options: AutoScaleConfig) => ColumnDef[];
21
21
  export declare class AutoScaleManager {
22
22
  private config;
23
23
  private onHeadersUpdate;
@@ -26,8 +26,8 @@ export declare class AutoScaleManager {
26
26
  constructor(config: AutoScaleConfig, onHeadersUpdate: HeaderUpdateCallback);
27
27
  updateConfig(config: Partial<AutoScaleConfig>): void;
28
28
  private triggerAutoScale;
29
- applyAutoScale(headers: HeaderObject[]): HeaderObject[];
30
- setHeaders(headersOrUpdater: HeaderObject[] | ((prev: HeaderObject[]) => HeaderObject[]), currentHeaders: HeaderObject[]): HeaderObject[];
29
+ applyAutoScale(headers: ColumnDef[]): ColumnDef[];
30
+ setHeaders(headersOrUpdater: ColumnDef[] | ((prev: ColumnDef[]) => ColumnDef[]), currentHeaders: ColumnDef[]): ColumnDef[];
31
31
  destroy(): void;
32
32
  }
33
33
  export {};
@@ -1,18 +1,18 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
1
+ import ColumnDef, { Accessor } from "../types/ColumnDef";
2
2
  import { ColumnVisibilityState } from "../types/ColumnVisibilityTypes";
3
3
  export interface ColumnManagerConfig {
4
- headers: HeaderObject[];
4
+ headers: ColumnDef[];
5
5
  collapsedHeaders: Set<Accessor>;
6
- onColumnOrderChange?: (newHeaders: HeaderObject[]) => void;
6
+ onColumnOrderChange?: (newHeaders: ColumnDef[]) => void;
7
7
  onColumnVisibilityChange?: (visibilityState: ColumnVisibilityState) => void;
8
- onColumnWidthChange?: (headers: HeaderObject[]) => void;
8
+ onColumnWidthChange?: (headers: ColumnDef[]) => void;
9
9
  }
10
10
  export interface ColumnManagerState {
11
- headers: HeaderObject[];
11
+ headers: ColumnDef[];
12
12
  collapsedHeaders: Set<Accessor>;
13
13
  columnVisibility: ColumnVisibilityState;
14
- draggedHeader: HeaderObject | null;
15
- hoveredHeader: HeaderObject | null;
14
+ draggedHeader: ColumnDef | null;
15
+ hoveredHeader: ColumnDef | null;
16
16
  }
17
17
  type StateChangeCallback = (state: ColumnManagerState) => void;
18
18
  export declare class ColumnManager {
@@ -24,16 +24,16 @@ export declare class ColumnManager {
24
24
  updateConfig(config: Partial<ColumnManagerConfig>): void;
25
25
  subscribe(callback: StateChangeCallback): () => void;
26
26
  private notifySubscribers;
27
- setHeaders(headers: HeaderObject[]): void;
27
+ setHeaders(headers: ColumnDef[]): void;
28
28
  setCollapsedHeaders(collapsedHeaders: Set<Accessor>): void;
29
29
  toggleColumnCollapse(accessor: Accessor): void;
30
30
  setColumnVisibility(accessor: Accessor, visible: boolean): void;
31
31
  updateColumnWidth(accessor: Accessor, width: number | string): void;
32
- reorderColumns(newHeaders: HeaderObject[]): void;
33
- setDraggedHeader(header: HeaderObject | null): void;
34
- setHoveredHeader(header: HeaderObject | null): void;
32
+ reorderColumns(newHeaders: ColumnDef[]): void;
33
+ setDraggedHeader(header: ColumnDef | null): void;
34
+ setHoveredHeader(header: ColumnDef | null): void;
35
35
  getState(): ColumnManagerState;
36
- getHeaders(): HeaderObject[];
36
+ getHeaders(): ColumnDef[];
37
37
  getCollapsedHeaders(): Set<Accessor>;
38
38
  getColumnVisibility(): ColumnVisibilityState;
39
39
  isColumnVisible(accessor: Accessor): boolean;
@@ -1,6 +1,6 @@
1
- import HeaderObject from "../types/HeaderObject";
1
+ import ColumnDef from "../types/ColumnDef";
2
2
  export interface DimensionManagerConfig {
3
- effectiveHeaders: HeaderObject[];
3
+ effectiveHeaders: ColumnDef[];
4
4
  headerHeight?: number;
5
5
  rowHeight: number;
6
6
  height?: string | number;
@@ -1,27 +1,27 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
2
- export declare const getHeaderIndexPath: (headers: HeaderObject[], targetAccessor: Accessor, currentPath?: number[]) => number[] | null;
3
- export declare const getSiblingArray: (headers: HeaderObject[], indexPath: number[]) => HeaderObject[];
4
- export declare const setSiblingArray: (headers: HeaderObject[], indexPath: number[], newSiblings: HeaderObject[]) => HeaderObject[];
5
- export declare const getHeaderSection: (header: HeaderObject, rootHeaders: HeaderObject[]) => "left" | "main" | "right";
6
- export declare const updateHeaderPinnedProperty: (header: HeaderObject, targetSection: "left" | "main" | "right") => HeaderObject;
7
- export declare function swapHeaders(headers: HeaderObject[], draggedPath: number[], hoveredPath: number[]): {
8
- newHeaders: HeaderObject[];
1
+ import ColumnDef, { Accessor } from "../types/ColumnDef";
2
+ export declare const getHeaderIndexPath: (headers: ColumnDef[], targetAccessor: Accessor, currentPath?: number[]) => number[] | null;
3
+ export declare const getSiblingArray: (headers: ColumnDef[], indexPath: number[]) => ColumnDef[];
4
+ export declare const setSiblingArray: (headers: ColumnDef[], indexPath: number[], newSiblings: ColumnDef[]) => ColumnDef[];
5
+ export declare const getHeaderSection: (header: ColumnDef, rootHeaders: ColumnDef[]) => "left" | "main" | "right";
6
+ export declare const updateHeaderPinnedProperty: (header: ColumnDef, targetSection: "left" | "main" | "right") => ColumnDef;
7
+ export declare function swapHeaders(headers: ColumnDef[], draggedPath: number[], hoveredPath: number[]): {
8
+ newHeaders: ColumnDef[];
9
9
  emergencyBreak: boolean;
10
10
  };
11
11
  export declare function insertHeaderAcrossSections({ headers, draggedHeader, hoveredHeader, }: {
12
- headers: HeaderObject[];
13
- draggedHeader: HeaderObject;
14
- hoveredHeader: HeaderObject;
12
+ headers: ColumnDef[];
13
+ draggedHeader: ColumnDef;
14
+ hoveredHeader: ColumnDef;
15
15
  }): {
16
- newHeaders: HeaderObject[];
16
+ newHeaders: ColumnDef[];
17
17
  emergencyBreak: boolean;
18
18
  };
19
19
  export interface DragHandlerManagerConfig {
20
- headers: HeaderObject[];
20
+ headers: ColumnDef[];
21
21
  essentialAccessors?: ReadonlySet<string>;
22
- onTableHeaderDragEnd: (newHeaders: HeaderObject[]) => void;
23
- onColumnOrderChange?: (newHeaders: HeaderObject[]) => void;
24
- onHeadersChange?: (newHeaders: HeaderObject[]) => void;
22
+ onTableHeaderDragEnd: (newHeaders: ColumnDef[]) => void;
23
+ onColumnOrderChange?: (newHeaders: ColumnDef[]) => void;
24
+ onHeadersChange?: (newHeaders: ColumnDef[]) => void;
25
25
  }
26
26
  export declare class DragHandlerManager {
27
27
  private config;
@@ -32,12 +32,12 @@ export declare class DragHandlerManager {
32
32
  private prevHeadersTracker;
33
33
  constructor(config: DragHandlerManagerConfig);
34
34
  updateConfig(config: Partial<DragHandlerManagerConfig>): void;
35
- getDraggedHeader(): HeaderObject | null;
36
- getHoveredHeader(): HeaderObject | null;
37
- handleDragStart(header: HeaderObject): void;
35
+ getDraggedHeader(): ColumnDef | null;
36
+ getHoveredHeader(): ColumnDef | null;
37
+ handleDragStart(header: ColumnDef): void;
38
38
  handleDragOver({ event, hoveredHeader, }: {
39
39
  event: DragEvent;
40
- hoveredHeader: HeaderObject;
40
+ hoveredHeader: ColumnDef;
41
41
  }): void;
42
42
  handleDragEnd(): void;
43
43
  destroy(): void;
@@ -1,9 +1,9 @@
1
1
  import { TableFilterState, FilterCondition } from "../types/FilterTypes";
2
2
  import Row from "../types/Row";
3
- import HeaderObject, { Accessor } from "../types/HeaderObject";
3
+ import ColumnDef, { Accessor } from "../types/ColumnDef";
4
4
  export interface FilterManagerConfig {
5
5
  rows: Row[];
6
- headers: HeaderObject[];
6
+ headers: ColumnDef[];
7
7
  externalFilterHandling: boolean;
8
8
  onFilterChange?: (filters: TableFilterState) => void;
9
9
  announce?: (message: string) => void;
@@ -1,16 +1,16 @@
1
- import type HeaderObject from "../types/HeaderObject";
2
- import type { Accessor } from "../types/HeaderObject";
1
+ import type ColumnDef from "../types/ColumnDef";
2
+ import type { Accessor } from "../types/ColumnDef";
3
3
  import type Row from "../types/Row";
4
4
  import type { PivotConfig } from "../types/PivotTypes";
5
5
  export interface PivotManagerConfig {
6
6
  sourceRows: Row[];
7
- fieldHeaders: HeaderObject[];
7
+ fieldHeaders: ColumnDef[];
8
8
  pivot: PivotConfig | null;
9
9
  }
10
10
  export interface PivotManagerState {
11
11
  active: boolean;
12
12
  pivotedRows: Row[];
13
- headers: HeaderObject[];
13
+ headers: ColumnDef[];
14
14
  rowGrouping?: Accessor[];
15
15
  pivot: PivotConfig | null;
16
16
  }
@@ -1,4 +1,4 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
1
+ import ColumnDef, { Accessor } from "../types/ColumnDef";
2
2
  import Row from "../types/Row";
3
3
  import RowState from "../types/RowState";
4
4
  import TableRow from "../types/TableRow";
@@ -7,7 +7,7 @@ import { CustomTheme } from "../types/CustomTheme";
7
7
  import { GetRowId } from "../types/GetRowId";
8
8
  export interface RowManagerConfig {
9
9
  rows: Row[];
10
- headers: HeaderObject[];
10
+ headers: ColumnDef[];
11
11
  rowGrouping?: Accessor[];
12
12
  getRowId?: GetRowId;
13
13
  rowHeight: number;
@@ -1,5 +1,5 @@
1
- import type HeaderObject from "../../types/HeaderObject";
2
- import type { Accessor } from "../../types/HeaderObject";
1
+ import type ColumnDef from "../../types/ColumnDef";
2
+ import type { Accessor } from "../../types/ColumnDef";
3
3
  import type TableRowType from "../../types/TableRow";
4
4
  import type Cell from "../../types/Cell";
5
5
  import type { CustomTheme } from "../../types/CustomTheme";
@@ -12,7 +12,7 @@ export interface SelectionManagerConfig {
12
12
  * even if this is false.
13
13
  */
14
14
  selectableColumns?: boolean;
15
- headers: HeaderObject[];
15
+ headers: ColumnDef[];
16
16
  tableRows: TableRowType[];
17
17
  onCellEdit?: (props: any) => void;
18
18
  cellRegistry?: Map<string, any>;
@@ -1,8 +1,8 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
1
+ import ColumnDef, { Accessor } from "../types/ColumnDef";
2
2
  import Row from "../types/Row";
3
3
  import SortColumn, { SortDirection } from "../types/SortColumn";
4
4
  export interface SortManagerConfig {
5
- headers: HeaderObject[];
5
+ headers: ColumnDef[];
6
6
  tableRows: Row[];
7
7
  externalSortHandling: boolean;
8
8
  onSortChange?: (sort: SortColumn | null) => void;
@@ -1,4 +1,4 @@
1
- import HeaderObject, { Accessor } from "../types/HeaderObject";
1
+ import ColumnDef, { Accessor } from "../types/ColumnDef";
2
2
  import Row from "../types/Row";
3
3
  import SortColumn, { SortDirection } from "../types/SortColumn";
4
4
  import { TableFilterState } from "../types/FilterTypes";
@@ -13,7 +13,7 @@ import { DimensionManager } from "./DimensionManager";
13
13
  import { ScrollManager } from "./ScrollManager";
14
14
  import { SelectionManager } from "./SelectionManager";
15
15
  export interface TableManagerConfig {
16
- headers: HeaderObject[];
16
+ headers: ColumnDef[];
17
17
  rows: Row[];
18
18
  rowHeight: number;
19
19
  headerHeight?: number;
@@ -32,9 +32,9 @@ export interface TableManagerConfig {
32
32
  initialSortDirection?: SortDirection;
33
33
  onSortChange?: (sort: SortColumn | null) => void;
34
34
  onFilterChange?: (filters: TableFilterState) => void;
35
- onColumnOrderChange?: (newHeaders: HeaderObject[]) => void;
35
+ onColumnOrderChange?: (newHeaders: ColumnDef[]) => void;
36
36
  onColumnVisibilityChange?: (visibilityState: ColumnVisibilityState) => void;
37
- onColumnWidthChange?: (headers: HeaderObject[]) => void;
37
+ onColumnWidthChange?: (headers: ColumnDef[]) => void;
38
38
  onLoadMore?: () => void;
39
39
  onCellEdit?: (props: any) => void;
40
40
  announce?: (message: string) => void;
@@ -1,5 +1,5 @@
1
1
  import CellValue from "./CellValue";
2
- import { Accessor } from "./HeaderObject";
2
+ import { Accessor } from "./ColumnDef";
3
3
  import Row from "./Row";
4
4
  type CellChangeProps = {
5
5
  accessor: Accessor;
@@ -1,5 +1,5 @@
1
1
  import CellValue from "./CellValue";
2
- import { Accessor } from "./HeaderObject";
2
+ import { Accessor } from "./ColumnDef";
3
3
  import Row from "./Row";
4
4
  type CellClickProps = {
5
5
  accessor: Accessor;
@@ -1,4 +1,4 @@
1
- import type { Accessor } from "./HeaderObject";
1
+ import type { Accessor } from "./ColumnDef";
2
2
  import type Row from "./Row";
3
3
  import type Theme from "./Theme";
4
4
  import type CellValue from "./CellValue";
@@ -60,7 +60,7 @@ export interface ExportValueProps {
60
60
  }
61
61
  export type ExportValueGetter = (props: ExportValueProps) => string | number;
62
62
  export declare const DEFAULT_SHOW_WHEN: ShowWhen;
63
- type HeaderObject = {
63
+ export type ColumnDef = {
64
64
  accessor: Accessor;
65
65
  aggregation?: AggregationConfig;
66
66
  align?: "left" | "center" | "right";
@@ -73,7 +73,7 @@ type HeaderObject = {
73
73
  autoSizeMode?: AutoSizeMode;
74
74
  cellRenderer?: CellRenderer;
75
75
  chartOptions?: ChartOptions;
76
- children?: HeaderObject[];
76
+ children?: ColumnDef[];
77
77
  collapsible?: boolean;
78
78
  collapseDefault?: boolean;
79
79
  comparator?: Comparator;
@@ -135,6 +135,4 @@ type HeaderObject = {
135
135
  width: number | string;
136
136
  maxWidth?: number | string;
137
137
  };
138
- export default HeaderObject;
139
- /** Preferred name for column definitions. Alias of {@link HeaderObject}. */
140
- export type ColumnDef = HeaderObject;
138
+ export default ColumnDef;
@@ -1,4 +1,4 @@
1
- import HeaderObject from "./HeaderObject";
1
+ import ColumnDef from "./ColumnDef";
2
2
  import { ColumnEditorRowRenderer } from "./ColumnEditorRowRendererProps";
3
3
  import { ColumnEditorCustomRenderer } from "./ColumnEditorCustomRendererProps";
4
4
  /**
@@ -7,7 +7,7 @@ import { ColumnEditorCustomRenderer } from "./ColumnEditorCustomRendererProps";
7
7
  * @param searchTerm - The current search term
8
8
  * @returns true if the header matches the search term, false otherwise
9
9
  */
10
- export type ColumnEditorSearchFunction = (header: HeaderObject, searchTerm: string) => boolean;
10
+ export type ColumnEditorSearchFunction = (header: ColumnDef, searchTerm: string) => boolean;
11
11
  /**
12
12
  * Configuration options for the column editor/visibility drawer
13
13
  */
@@ -1,7 +1,7 @@
1
- import type HeaderObject from "./HeaderObject";
1
+ import type ColumnDef from "./ColumnDef";
2
2
  export interface ColumnEditorCustomRendererProps {
3
3
  /** The current headers array */
4
- headers: HeaderObject[];
4
+ headers: ColumnDef[];
5
5
  /** Pre-built search input section, or null if search is disabled */
6
6
  searchSection: HTMLElement | null;
7
7
  /** Pre-built column list section with drag-and-drop, checkboxes, etc. */
@@ -1,5 +1,5 @@
1
- import type { Accessor } from "./HeaderObject";
2
- import type HeaderObject from "./HeaderObject";
1
+ import type { Accessor } from "./ColumnDef";
2
+ import type ColumnDef from "./ColumnDef";
3
3
  import type { IconElement } from "./IconsConfig";
4
4
  import type { PanelSection } from "./PanelSection";
5
5
  export interface ColumnEditorRowRendererComponents {
@@ -10,7 +10,7 @@ export interface ColumnEditorRowRendererComponents {
10
10
  /** Default pin column (outline / filled); omit when building a fully custom row */
11
11
  pinIcon?: IconElement;
12
12
  }
13
- /** Pin / unpin actions for column editor rows (also use for lock/tooltip UX via HeaderObject.essential). */
13
+ /** Pin / unpin actions for column editor rows (also use for lock/tooltip UX via ColumnDef.essential). */
14
14
  export interface ColumnEditorPinControl {
15
15
  pinnedSide: "left" | "right" | null;
16
16
  canPinLeft: boolean;
@@ -22,11 +22,11 @@ export interface ColumnEditorPinControl {
22
22
  }
23
23
  interface ColumnEditorRowRendererProps {
24
24
  accessor: Accessor;
25
- header: HeaderObject;
25
+ header: ColumnDef;
26
26
  components: ColumnEditorRowRendererComponents;
27
27
  /** Which panel section this row is rendered in */
28
28
  panelSection?: PanelSection;
29
- /** Resolved from HeaderObject.essential / essentialAccessors */
29
+ /** Resolved from ColumnDef.essential / essentialAccessors */
30
30
  essential?: boolean;
31
31
  /** False when visibility cannot be toggled (essential columns) */
32
32
  canToggleVisibility?: boolean;
@@ -1,4 +1,4 @@
1
- import { Accessor } from "./HeaderObject";
1
+ import { Accessor } from "./ColumnDef";
2
2
  export interface ColumnVisibilityState {
3
3
  [accessor: Accessor]: boolean;
4
4
  }
@@ -1,14 +1,14 @@
1
- import HeaderObject, { Accessor } from "./HeaderObject";
1
+ import ColumnDef, { Accessor } from "./ColumnDef";
2
2
  type useDragHandlerProps = {
3
3
  draggedHeaderRef: {
4
- current: HeaderObject | null;
4
+ current: ColumnDef | null;
5
5
  };
6
6
  essentialAccessors?: ReadonlySet<Accessor | string>;
7
- headers: HeaderObject[];
7
+ headers: ColumnDef[];
8
8
  hoveredHeaderRef: {
9
- current: HeaderObject | null;
9
+ current: ColumnDef | null;
10
10
  };
11
- onColumnOrderChange?: (newHeaders: HeaderObject[]) => void;
12
- onTableHeaderDragEnd: (newHeaders: HeaderObject[]) => void;
11
+ onColumnOrderChange?: (newHeaders: ColumnDef[]) => void;
12
+ onTableHeaderDragEnd: (newHeaders: ColumnDef[]) => void;
13
13
  };
14
14
  export default useDragHandlerProps;
@@ -1,5 +1,5 @@
1
1
  import CellValue from "./CellValue";
2
- import { Accessor } from "./HeaderObject";
2
+ import { Accessor } from "./ColumnDef";
3
3
  export type StringFilterOperator = "equals" | "notEquals" | "contains" | "notContains" | "startsWith" | "endsWith" | "isEmpty" | "isNotEmpty";
4
4
  export type NumberFilterOperator = "equals" | "notEquals" | "greaterThan" | "lessThan" | "greaterThanOrEqual" | "lessThanOrEqual" | "between" | "notBetween" | "isEmpty" | "isNotEmpty";
5
5
  export type BooleanFilterOperator = "equals" | "isEmpty" | "isNotEmpty";
@@ -1,10 +1,10 @@
1
- import HeaderObject from "./HeaderObject";
1
+ import ColumnDef from "./ColumnDef";
2
2
  import type { PanelSection } from "./PanelSection";
3
3
  export type FlattenedHeader = {
4
- header: HeaderObject;
4
+ header: ColumnDef;
5
5
  visualIndex: number;
6
6
  depth: number;
7
- parent: HeaderObject | null;
7
+ parent: ColumnDef | null;
8
8
  indexPath: number[];
9
9
  panelSection?: PanelSection;
10
10
  };
@@ -1,4 +1,4 @@
1
- import { HeaderObject, Accessor } from "..";
1
+ import { ColumnDef, Accessor } from "..";
2
2
  export interface RefObject<T> {
3
3
  current: T | null;
4
4
  }
@@ -8,16 +8,16 @@ export type HandleResizeStartProps = {
8
8
  containerWidth: number;
9
9
  event: MouseEvent | TouchEvent;
10
10
  forceUpdate: () => void;
11
- header: HeaderObject;
12
- headers: HeaderObject[];
11
+ header: ColumnDef;
12
+ headers: ColumnDef[];
13
13
  mainBodyRef: RefObject<HTMLDivElement>;
14
- onColumnWidthChange?: (headers: HeaderObject[]) => void;
14
+ onColumnWidthChange?: (headers: ColumnDef[]) => void;
15
15
  /** Persist the dragged column(s)' final widths as their natural widths (autoExpandColumns). */
16
16
  onAutoExpandNaturalWidths?: (widths: Map<string, number>) => void;
17
17
  pinnedLeftRef: RefObject<HTMLDivElement>;
18
18
  pinnedRightRef: RefObject<HTMLDivElement>;
19
19
  reverse: boolean;
20
- setHeaders: (headers: HeaderObject[] | ((prev: HeaderObject[]) => HeaderObject[])) => void;
20
+ setHeaders: (headers: ColumnDef[] | ((prev: ColumnDef[]) => ColumnDef[])) => void;
21
21
  setIsResizing: (isResizing: boolean | ((prev: boolean) => boolean)) => void;
22
22
  /** Natural-width shrink floors (accessor -> px) for compensating neighbors (autoExpandColumns). */
23
23
  shrinkFloors?: Map<string, number>;
@@ -1,5 +1,5 @@
1
- import type { Accessor } from "./HeaderObject";
2
- import type HeaderObject from "./HeaderObject";
1
+ import type { Accessor } from "./ColumnDef";
2
+ import type ColumnDef from "./ColumnDef";
3
3
  import type { IconElement } from "./IconsConfig";
4
4
  export interface HeaderRendererComponents {
5
5
  sortIcon?: IconElement;
@@ -10,7 +10,7 @@ export interface HeaderRendererComponents {
10
10
  interface HeaderRendererProps {
11
11
  accessor: Accessor;
12
12
  colIndex: number;
13
- header: HeaderObject;
13
+ header: ColumnDef;
14
14
  components?: HeaderRendererComponents;
15
15
  }
16
16
  export type HeaderRenderer = (props: HeaderRendererProps) => HTMLElement | string | null;
@@ -1,5 +1,5 @@
1
1
  import Row from "./Row";
2
- import { Accessor } from "./HeaderObject";
2
+ import { Accessor } from "./ColumnDef";
3
3
  interface OnRowGroupExpandProps {
4
4
  row: Row;
5
5
  depth: number;
@@ -1,3 +1,3 @@
1
- import { Accessor } from "./HeaderObject";
1
+ import { Accessor } from "./ColumnDef";
2
2
  type OnSortProps = (accessor: Accessor) => void;
3
3
  export default OnSortProps;
@@ -1,4 +1,4 @@
1
- import { Accessor } from "./HeaderObject";
1
+ import { Accessor } from "./ColumnDef";
2
2
  export type PinnedSectionsState = {
3
3
  left: Accessor[];
4
4
  main: Accessor[];
@@ -1,6 +1,6 @@
1
- import { Accessor } from "./HeaderObject";
1
+ import { Accessor } from "./ColumnDef";
2
2
  import { AggregationConfig } from "./AggregationTypes";
3
- import HeaderObject from "./HeaderObject";
3
+ import ColumnDef from "./ColumnDef";
4
4
  import Row from "./Row";
5
5
  export type PivotValueConfig = {
6
6
  accessor: Accessor;
@@ -31,7 +31,7 @@ export declare const PIVOT_ACCESSOR_PREFIX = "__pivot:";
31
31
  export declare const PIVOT_BLANK_LABEL = "(blank)";
32
32
  export type PivotResult = {
33
33
  rows: Row[];
34
- headers: HeaderObject[];
34
+ headers: ColumnDef[];
35
35
  /** Internal rowGrouping to use while pivot is active (undefined when flat). */
36
36
  rowGrouping?: Accessor[];
37
37
  };
@@ -1,4 +1,4 @@
1
- import { Accessor } from "./HeaderObject";
1
+ import { Accessor } from "./ColumnDef";
2
2
  import Row from "./Row";
3
3
  export type QuickFilterMode = "simple" | "smart";
4
4
  export interface QuickFilterConfig {
@@ -1,22 +1,22 @@
1
- import HeaderObject from "./HeaderObject";
1
+ import ColumnDef from "./ColumnDef";
2
2
  export interface RefObject<T> {
3
3
  current: T | null;
4
4
  }
5
5
  interface SharedTableProps {
6
6
  centerHeaderRef: RefObject<HTMLDivElement | null>;
7
7
  draggedHeaderRef: {
8
- current: HeaderObject | null;
8
+ current: ColumnDef | null;
9
9
  };
10
10
  headerContainerRef: RefObject<HTMLDivElement | null>;
11
- headers: HeaderObject[];
11
+ headers: ColumnDef[];
12
12
  hoveredHeaderRef: {
13
- current: HeaderObject | null;
13
+ current: ColumnDef | null;
14
14
  };
15
15
  mainBodyRef: RefObject<HTMLDivElement | null>;
16
- onTableHeaderDragEnd: (newHeaders: HeaderObject[]) => void;
17
- pinnedLeftColumns: HeaderObject[];
16
+ onTableHeaderDragEnd: (newHeaders: ColumnDef[]) => void;
17
+ pinnedLeftColumns: ColumnDef[];
18
18
  pinnedLeftHeaderRef: RefObject<HTMLDivElement | null>;
19
- pinnedRightColumns: HeaderObject[];
19
+ pinnedRightColumns: ColumnDef[];
20
20
  pinnedRightHeaderRef: RefObject<HTMLDivElement | null>;
21
21
  rowHeight: number;
22
22
  tableBodyContainerRef: RefObject<HTMLDivElement | null>;
@@ -1,4 +1,5 @@
1
- import HeaderObject, { Accessor } from "./HeaderObject";
1
+ import type ColumnDef from "./ColumnDef";
2
+ import { Accessor } from "./ColumnDef";
2
3
  import Row from "./Row";
3
4
  import { VanillaEmptyStateRenderer, VanillaErrorStateRenderer, VanillaLoadingStateRenderer } from "./RowStateRendererProps";
4
5
  import FooterRendererProps from "./FooterRendererProps";
@@ -23,9 +24,8 @@ import { AnimationsConfig } from "./AnimationsConfig";
23
24
  import type { FooterPosition } from "./FooterPosition";
24
25
  import type { PivotConfig } from "./PivotTypes";
25
26
  /**
26
- * Canonical runtime config after {@link normalizeConfig}. Consumer-facing
27
- * aliases (`columns`, `enableColumnEditor`, …) are accepted on
28
- * {@link SimpleTableConfigInput} / {@link SimpleTableProps} and collapsed here.
27
+ * Canonical runtime config after {@link normalizeConfig}.
28
+ * Preferred public prop names only (no legacy aliases).
29
29
  */
30
30
  export interface SimpleTableConfig {
31
31
  animations?: AnimationsConfig;
@@ -44,13 +44,18 @@ export interface SimpleTableConfig {
44
44
  columnEditorConfig?: ColumnEditorConfig;
45
45
  columnReordering?: boolean;
46
46
  columnResizing?: boolean;
47
+ /** Column definitions. */
48
+ columns: ColumnDef[];
47
49
  copyHeadersToClipboard?: boolean;
48
50
  customTheme?: CustomThemeProps;
49
- defaultHeaders: HeaderObject[];
50
- editColumns?: boolean;
51
- editColumnsInitOpen?: boolean;
51
+ /** Show the column editor / visibility UI. */
52
+ enableColumnEditor?: boolean;
53
+ /** Open the column editor when the table loads. */
54
+ enableColumnEditorInitOpen?: boolean;
52
55
  emptyStateRenderer?: VanillaEmptyStateRenderer;
53
56
  enableHeaderEditing?: boolean;
57
+ /** Enable client-side pagination. */
58
+ enablePagination?: boolean;
54
59
  enableRowSelection?: boolean;
55
60
  /** @see SimpleTableProps.rowSelectionMode */
56
61
  rowSelectionMode?: RowSelectionMode;
@@ -78,6 +83,8 @@ export interface SimpleTableConfig {
78
83
  height?: string | number;
79
84
  hideFooter?: boolean;
80
85
  hideHeader?: boolean;
86
+ /** Highlight the hovered row. */
87
+ hoverRowBackground?: boolean;
81
88
  icons?: VanillaIconsConfig;
82
89
  includeHeadersInCSVExport?: boolean;
83
90
  initialSortColumn?: string;
@@ -85,15 +92,20 @@ export interface SimpleTableConfig {
85
92
  isLoading?: boolean;
86
93
  loadingStateRenderer?: VanillaLoadingStateRenderer;
87
94
  maxHeight?: string | number;
95
+ /** Alternate column background. */
96
+ oddColumnBackground?: boolean;
97
+ /** Alternate odd/even row backgrounds. */
98
+ oddEvenRowBackground?: boolean;
88
99
  onCellClick?: (props: CellClickProps) => void;
89
100
  onCellEdit?: (props: CellChangeProps) => void;
90
- onColumnOrderChange?: (newHeaders: HeaderObject[]) => void;
91
- onColumnSelect?: (header: HeaderObject) => void;
101
+ onColumnOrderChange?: (newHeaders: ColumnDef[]) => void;
102
+ onColumnSelect?: (header: ColumnDef) => void;
92
103
  onColumnVisibilityChange?: (visibilityState: ColumnVisibilityState) => void;
93
- onColumnWidthChange?: (headers: HeaderObject[]) => void;
104
+ onColumnWidthChange?: (headers: ColumnDef[]) => void;
94
105
  onFilterChange?: (filters: TableFilterState) => void;
95
- onGridReady?: () => void;
96
- onHeaderEdit?: (header: HeaderObject, newLabel: string) => void;
106
+ /** Called once when the table is ready. */
107
+ onTableReady?: () => void;
108
+ onHeaderEdit?: (header: ColumnDef, newLabel: string) => void;
97
109
  infiniteScrollThreshold?: number;
98
110
  onLoadMore?: () => void;
99
111
  onNextPage?: OnNextPage;
@@ -125,11 +137,7 @@ export interface SimpleTableConfig {
125
137
  selectableCells?: boolean;
126
138
  selectableColumns?: boolean;
127
139
  serverSidePagination?: boolean;
128
- shouldPaginate?: boolean;
129
140
  tableEmptyStateRenderer?: HTMLElement | string | null;
130
141
  theme?: Theme;
131
142
  totalRowCount?: number;
132
- useHoverRowBackground?: boolean;
133
- useOddColumnBackground?: boolean;
134
- useOddEvenRowBackground?: boolean;
135
143
  }