@infinite-table/infinite-react 6.1.1-canary.0 → 6.1.1

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 (6) hide show
  1. package/index.d.ts +1288 -1274
  2. package/index.dev.js +483 -405
  3. package/index.dev.mjs +483 -405
  4. package/index.js +483 -405
  5. package/index.mjs +483 -405
  6. package/package.json +2 -2
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React$1 from 'react';
2
- import React__default, { CSSProperties, HTMLProps, RefCallback, MutableRefObject, MouseEvent, KeyboardEvent, HTMLAttributes, ReactNode, EffectCallback, DependencyList } from 'react';
2
+ import React__default, { RefCallback, CSSProperties, HTMLProps, MutableRefObject, MouseEvent, KeyboardEvent, HTMLAttributes, ReactNode, EffectCallback, DependencyList } from 'react';
3
3
 
4
4
  declare type ManagedComponentStateContextValue<T_STATE, T_ACTIONS> = {
5
5
  getComponentState: () => T_STATE;
@@ -489,1331 +489,1103 @@ declare class MatrixBrain extends Logger implements IBrain {
489
489
  destroy(): void;
490
490
  }
491
491
 
492
- declare enum InfiniteTableActionType {
493
- SET_COLUMN_SIZE = 0,
494
- SET_SCROLL_POSITION = 1,
495
- SET_BODY_SIZE = 2,
496
- SET_COLUMN_ORDER = 3,
497
- SET_COLUMN_VISIBILITY = 4,
498
- SET_COLUMN_SHIFTS = 5,
499
- SET_COLUMN_PINNING = 6,
500
- SET_COLUMN_AGGREGATIONS = 7,
501
- SET_DRAGGING_COLUMN_ID = 8
492
+ declare type CellSelectionPosition<ROW_PRIMARY_KEY_TYPE = any, COL_ID = string> = [ROW_PRIMARY_KEY_TYPE, COL_ID];
493
+ declare type CellSelectionStateObject = {
494
+ selectedCells: CellSelectionPosition[];
495
+ deselectedCells: CellSelectionPosition[];
496
+ defaultSelection: boolean;
497
+ } | {
498
+ defaultSelection: true;
499
+ deselectedCells: CellSelectionPosition[];
500
+ selectedCells?: CellSelectionPosition[];
501
+ } | {
502
+ defaultSelection: false;
503
+ selectedCells: CellSelectionPosition[];
504
+ deselectedCells?: CellSelectionPosition[];
505
+ };
506
+ declare class CellSelectionState {
507
+ wildcard: string;
508
+ cache: DeepMap<any, boolean>;
509
+ selectedRowsToColumns: Map<any, Set<string>>;
510
+ selectedColumnsToRows: Map<string, Set<any>>;
511
+ deselectedRowsToColumns: Map<any, Set<string>>;
512
+ deselectedColumnsToRows: Map<string, Set<any>>;
513
+ defaultSelection: boolean;
514
+ constructor(clone?: CellSelectionStateObject | CellSelectionState);
515
+ deselectAll: () => void;
516
+ selectAll: () => void;
517
+ selectCell(rowId: any, colId: string): void;
518
+ deselectCell(rowId: any, colId: string): void;
519
+ selectColumn(colId: string): void;
520
+ deselectColumn(colId: string): void;
521
+ setCellSelected(rowId: any, colId: string, selected: boolean): void;
522
+ private setCellInDeselection;
523
+ private setCellInSelection;
524
+ update(stateObject: CellSelectionStateObject): void;
525
+ /**
526
+ * Returns whether there is at least one selected cell in the row
527
+ *
528
+ * @param rowId the row id
529
+ * @param columnIds the columns currently available in the grid
530
+ * @returns boolean
531
+ */
532
+ isCellSelectionInRow(rowId: any, columnIds: string[]): boolean;
533
+ isCellSelected(rowId: any, colId: string): boolean;
534
+ private isCellSelected_Internal;
535
+ getState(): CellSelectionStateObject;
502
536
  }
503
537
 
504
- declare type InfiniteTableAction = {
505
- type: InfiniteTableActionType;
506
- payload?: any;
538
+ declare type PointCoords = {
539
+ top: number;
540
+ left: number;
507
541
  };
508
542
 
509
- declare type InfiniteTableBaseCellProps<T> = {
510
- column: InfiniteTableComputedColumn<T>;
511
- align?: InfiniteTableColumnAlignValues;
512
- horizontalLayoutPageIndex: number | null;
513
- rowId?: any;
514
- renderChildren: () => Renderable;
515
- width: number;
516
- cssEllipsis?: boolean;
517
- contentStyle?: CSSProperties;
518
- contentClassName?: string;
519
- virtualized?: boolean;
520
- skipColumnShifting?: boolean;
521
- beforeChildren?: Renderable;
522
- afterChildren?: Renderable;
523
- cssPosition?: CSSProperties['position'];
524
- domRef?: React.RefCallback<HTMLElement>;
543
+ declare type ForwardPropsToStateFnResult<TYPE_PROPS, TYPE_RESULT, COMPONENT_SETUP_STATE> = {
544
+ [propName in keyof TYPE_PROPS & keyof TYPE_RESULT]: 1 | ((value: TYPE_PROPS[propName], setupState: COMPONENT_SETUP_STATE) => TYPE_RESULT[propName]);
525
545
  };
526
- declare type InfiniteTableCellProps<T> = ({
527
- cellType: 'header';
528
- } & InfiniteTableBaseCellProps<T>) | ({
529
- cellType: 'body';
530
- } & InfiniteTableBaseCellProps<T>);
531
-
532
- declare type DiscriminatedUnion<A, B> = (A & {
533
- [K in keyof B]?: undefined;
534
- }) | (B & {
535
- [K in keyof A]?: undefined;
536
- });
537
- declare type KeyOfNoSymbol<T> = Exclude<keyof T, Symbol>;
538
- /**
539
- * Restrict using either exclusively the keys of T or exclusively the keys of U.
540
- *
541
- * No unique keys of T can be used simultaneously with any unique keys of U.
542
- *
543
- * @example
544
- *```
545
- * const myVar: XOR<T, U>
546
- *```
547
- *
548
- * @see https://github.com/maninak/ts-xor/tree/master#description
549
- */
550
- declare type XOR<T, U> = T | U extends object ? Prettify<Without<T, U> & U> | Prettify<Without<U, T> & T> : T | U;
551
- /**
552
- * Useful if applying XOR on more than 2 types.
553
- * It comes with the penalty of having the types wrapped in an array
554
- *
555
- * @example
556
- * ```
557
- * AllXOR<[
558
- * { a: AModule },
559
- * { b: BModule },
560
- * { c: CModule },
561
- * { d: DModule }
562
- * ]>
563
- * ```
564
- * @see https://github.com/Microsoft/TypeScript/issues/14094#issuecomment-723571692
565
- */
566
- declare type AllXOR<T extends any[]> = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? AllXOR<[XOR<A, B>, ...Rest]> : never;
567
- /**
568
- * Get the keys of T without any keys of U.
569
- */
570
- declare type Without<T, U> = {
571
- [P in Exclude<keyof T, keyof U>]?: never;
546
+ declare type ComponentStateRootConfig<T_PROPS, COMPONENT_MAPPED_STATE, COMPONENT_SETUP_STATE = {}, COMPONENT_DERIVED_STATE = {}, T_ACTIONS = {}, T_PARENT_STATE = {}> = {
547
+ debugName?: string;
548
+ initSetupState?: (props: T_PROPS) => COMPONENT_SETUP_STATE;
549
+ layoutEffect?: boolean;
550
+ forwardProps?: (setupState: COMPONENT_SETUP_STATE, props: T_PROPS) => ForwardPropsToStateFnResult<T_PROPS, COMPONENT_MAPPED_STATE, COMPONENT_SETUP_STATE>;
551
+ allowedControlledPropOverrides?: Record<keyof T_PROPS, true>;
552
+ interceptActions?: ComponentInterceptedActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>;
553
+ mappedCallbacks?: ComponentMappedCallbacks<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>;
554
+ onPropChange?: (params: {
555
+ name: keyof T_PROPS;
556
+ oldValue: any;
557
+ newValue: any;
558
+ }, props: T_PROPS, actions: ComponentStateActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>, state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & Partial<COMPONENT_DERIVED_STATE>) => void;
559
+ onPropsChange?: (newPropValues: {
560
+ [k in keyof T_PROPS]?: {
561
+ newValue: T_PROPS[k];
562
+ oldValue: T_PROPS[k];
563
+ };
564
+ }, props: T_PROPS, actions: ComponentStateActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>, state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & Partial<COMPONENT_DERIVED_STATE>) => void;
565
+ mapPropsToState?: (params: {
566
+ props: T_PROPS;
567
+ state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & Partial<COMPONENT_DERIVED_STATE>;
568
+ oldState: null | (COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & Partial<COMPONENT_DERIVED_STATE>);
569
+ parentState: T_PARENT_STATE | null;
570
+ }) => COMPONENT_DERIVED_STATE;
571
+ concludeReducer?: (params: {
572
+ previousState: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & COMPONENT_DERIVED_STATE;
573
+ state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & COMPONENT_DERIVED_STATE;
574
+ updatedProps: Partial<T_PROPS> | null;
575
+ parentState: T_PARENT_STATE | null;
576
+ }) => COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & COMPONENT_DERIVED_STATE;
577
+ getReducerActions?: (dispatch: React$1.Dispatch<any>) => T_ACTIONS;
578
+ getParentState?: () => T_PARENT_STATE;
579
+ cleanup?: (state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & COMPONENT_DERIVED_STATE) => void;
580
+ onControlledPropertyChange?: (name: string, newValue: any, oldValue: any) => void | ((value: any, oldValue: any) => any);
572
581
  };
573
- /**
574
- * Resolve mapped types and show the derived keys and their types when hovering in
575
- * IDEs, instead of just showing the names those mapped types are defined with.
576
- */
577
- declare type Prettify<T> = {
578
- [K in keyof T]: T[K];
579
- } & {};
582
+ declare function buildManagedComponent<T_PROPS, COMPONENT_MAPPED_STATE extends object, COMPONENT_SETUP_STATE extends object = {}, COMPONENT_DERIVED_STATE extends object = {}, T_ACTIONS = {}, T_PARENT_STATE = {}>(config: ComponentStateRootConfig<T_PROPS, COMPONENT_MAPPED_STATE, COMPONENT_SETUP_STATE, COMPONENT_DERIVED_STATE, T_ACTIONS, T_PARENT_STATE>): {
583
+ ManagedComponentContextProvider: React$1.NamedExoticComponent<T_PROPS & {
584
+ children: React$1.ReactNode;
585
+ }>;
586
+ useManagedComponent: (props: T_PROPS) => {
587
+ contextValue: {
588
+ componentState: COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE;
589
+ componentActions: ComponentStateGeneratedActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>;
590
+ getComponentState: () => COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE;
591
+ replaceState: (newState: COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE) => void;
592
+ assignState: (newState: Partial<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>) => void;
593
+ };
594
+ ContextComponent: React$1.Context<ManagedComponentStateContextValue<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE, ComponentStateGeneratedActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>>>;
595
+ };
596
+ };
597
+ declare function useManagedComponentState<COMPONENT_STATE>(): ManagedComponentStateContextValue<COMPONENT_STATE, ComponentStateGeneratedActions<COMPONENT_STATE>>;
580
598
 
581
- declare type MenuIconProps = {
582
- lineWidth?: number;
583
- lineStyle?: React$1.CSSProperties;
584
- style?: React$1.CSSProperties;
585
- className?: string;
586
- domProps?: React$1.HTMLAttributes<HTMLDivElement>;
587
- reserveSpaceWhenHidden?: boolean;
588
- menuVisible?: boolean;
589
- children?: React$1.ReactNode;
599
+ declare type NodePath$1<PRIMARY_KEY_TYPE = any> = PRIMARY_KEY_TYPE[];
600
+ declare type TreeExpandStateObject_ByPath<PRIMARY_KEY_TYPE = any> = {
601
+ expandedPaths: NodePath$1<PRIMARY_KEY_TYPE>[];
602
+ collapsedPaths: NodePath$1<PRIMARY_KEY_TYPE>[];
603
+ defaultExpanded: boolean;
604
+ collapsedIds?: never;
605
+ expandedIds?: never;
606
+ } | {
607
+ defaultExpanded: true;
608
+ collapsedPaths: NodePath$1<PRIMARY_KEY_TYPE>[];
609
+ expandedPaths?: NodePath$1<PRIMARY_KEY_TYPE>[];
610
+ collapsedIds?: never;
611
+ expandedIds?: never;
612
+ } | {
613
+ defaultExpanded: false;
614
+ collapsedPaths?: NodePath$1<PRIMARY_KEY_TYPE>[];
615
+ expandedPaths: NodePath$1<PRIMARY_KEY_TYPE>[];
616
+ collapsedIds?: never;
617
+ expandedIds?: never;
590
618
  };
591
- declare function MenuIcon(props: MenuIconProps): React$1.JSX.Element;
619
+ declare type TreeExpandStateObject_ById<PRIMARY_KEY_TYPE = any> = {
620
+ defaultExpanded: boolean;
621
+ expandedIds: PRIMARY_KEY_TYPE[];
622
+ collapsedIds: PRIMARY_KEY_TYPE[];
623
+ expandedPaths?: never;
624
+ collapsedPaths?: never;
625
+ } | {
626
+ defaultExpanded: true;
627
+ collapsedIds: PRIMARY_KEY_TYPE[];
628
+ expandedIds?: PRIMARY_KEY_TYPE[];
629
+ expandedPaths?: never;
630
+ collapsedPaths?: never;
631
+ } | {
632
+ defaultExpanded: false;
633
+ collapsedIds?: PRIMARY_KEY_TYPE[];
634
+ expandedIds: PRIMARY_KEY_TYPE[];
635
+ expandedPaths?: never;
636
+ collapsedPaths?: never;
637
+ };
638
+ declare type TreeExpandStateObject<PRIMARY_KEY_TYPE = any> = TreeExpandStateObject_ByPath<PRIMARY_KEY_TYPE> | TreeExpandStateObject_ById<PRIMARY_KEY_TYPE>;
639
+ declare type TreeExpandStateMode = 'id' | 'path';
640
+ declare class TreeExpandState<PRIMARY_KEY_TYPE = any> {
641
+ collapsedPathsMap: DeepMap<PRIMARY_KEY_TYPE, true>;
642
+ expandedPathsMap: DeepMap<PRIMARY_KEY_TYPE, true>;
643
+ collapsedIdsMap: Map<PRIMARY_KEY_TYPE, true>;
644
+ expandedIdsMap: Map<PRIMARY_KEY_TYPE, true>;
645
+ private _mode;
646
+ get mode(): TreeExpandStateMode;
647
+ defaultExpanded: boolean;
648
+ constructor(clone?: TreeExpandStateObject | TreeExpandState);
649
+ reset(): void;
650
+ destroy(): void;
651
+ expandAll: () => void;
652
+ collapseAll: () => void;
653
+ expandNode(nodePathOrId: PRIMARY_KEY_TYPE | NodePath$1<PRIMARY_KEY_TYPE>): void;
654
+ collapseNode(nodePathOrId: PRIMARY_KEY_TYPE | NodePath$1<PRIMARY_KEY_TYPE>): void;
655
+ setNodeExpanded(nodePathOrId: PRIMARY_KEY_TYPE | NodePath$1<PRIMARY_KEY_TYPE>, expanded: boolean): void;
656
+ isNodeExpandedByPath(nodePath: NodePath$1<PRIMARY_KEY_TYPE>): boolean;
657
+ isNodeExpandedById(id: PRIMARY_KEY_TYPE): boolean;
658
+ isNodeExpanded(nodePathOrId: PRIMARY_KEY_TYPE | NodePath$1<PRIMARY_KEY_TYPE>): boolean;
659
+ update(stateObject: TreeExpandStateObject): void;
660
+ getState(): TreeExpandStateObject;
661
+ }
592
662
 
593
663
  declare type NonUndefined<T> = T extends undefined ? never : T;
594
664
 
595
- declare type InfiniteTableToggleGroupRowFn = (groupKeys: any[]) => void;
596
- declare type InfiniteTableToggleTreeNodeFn = (nodePath: any[]) => void;
597
- declare type InfiniteTableToggleRowDetailsFn = (id: any) => void;
598
- declare type InfiniteTableSelectRowFn = (id: any) => void;
599
- declare type InfiniteTableColumnHeaderParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
600
- dragging: boolean;
601
- column: COL_TYPE;
602
- columnsMap: Map<string, COL_TYPE>;
603
- columnSortInfo: DataSourceSingleSortInfo<DATA_TYPE> | null;
604
- columnFilterValue: DataSourceFilterValueItem<DATA_TYPE> | null;
605
- selectionMode: DataSourcePropSelectionMode;
606
- horizontalLayoutPageIndex: null | number;
607
- allRowsSelected: boolean;
608
- someRowsSelected: boolean;
609
- filtered: boolean;
610
- api: InfiniteTableApi<DATA_TYPE>;
611
- dataSourceApi: DataSourceApi<DATA_TYPE>;
612
- columnApi: InfiniteTableColumnApi<DATA_TYPE>;
613
- renderBag: {
614
- all?: Renderable;
615
- header: string | number | Renderable;
616
- sortIcon?: Renderable;
617
- menuIcon?: Renderable;
618
- menuIconProps?: MenuIconProps;
619
- filterIcon?: Renderable;
620
- filterEditor?: Renderable;
621
- selectionCheckBox?: Renderable;
622
- };
665
+ declare type OnNodeStateChangeParam = DataSourceCallback_BaseParam<any> & {};
666
+ declare type TreeDataSourceOnlyProps<T> = {
667
+ nodesKey?: string;
668
+ treeSelection?: DataSourcePropTreeSelection;
669
+ treeFilterFunction?: DataSourcePropTreeFilterFunction<T>;
670
+ defaultTreeSelection?: DataSourcePropTreeSelection;
671
+ treeExpandState?: TreeExpandStateValue;
672
+ defaultTreeExpandState?: TreeExpandStateValue;
673
+ onTreeExpandStateChange?: (treeExpandState: TreeExpandStateObject<any>, params: {
674
+ dataSourceApi: DataSourceApi<T>;
675
+ nodePath: NodePath$1 | null;
676
+ nodeState: 'collapsed' | 'expanded';
677
+ }) => void;
678
+ onTreeDataMutations?: ({ dataArray, timestamp, treeMutations, nodesKey, }: {
679
+ nodesKey: keyof T | any;
680
+ dataArray: DataSourceState<T>['originalDataArray'];
681
+ timestamp: number;
682
+ treeMutations: NonUndefined<DataSourceState<T>['originalDataArrayChangedInfo']['treeMutations']>;
683
+ }) => void;
684
+ isNodeSelected?: DataSourcePropIsNodeSelected<T>;
685
+ isNodeSelectable?: DataSourcePropIsNodeSelectable<T>;
686
+ isNodeReadOnly?: DataSourcePropIsNodeReadOnly<T>;
687
+ /**
688
+ * Called when a node is expanded. Not called when treeApi.expandAll is called.
689
+ */
690
+ onNodeExpand?: (node: NodePath$1, param: OnNodeStateChangeParam) => void;
691
+ /**
692
+ * Called when a node is collapsed. Not called when treeApi.collapseAll is called.
693
+ */
694
+ onNodeCollapse?: (node: NodePath$1, param: OnNodeStateChangeParam) => void;
623
695
  } & ({
624
- domRef: InfiniteTableCellProps<DATA_TYPE>['domRef'];
625
- htmlElementRef: React__default.MutableRefObject<HTMLElement | null>;
626
- insideColumnMenu: false;
696
+ selectionMode?: 'multi-row';
697
+ treeSelection?: DataSourcePropTreeSelection_MultiNode;
698
+ defaultTreeSelection?: DataSourcePropTreeSelection_MultiNode;
699
+ onTreeSelectionChange?: DataSourcePropOnTreeSelectionChange_MultiNode;
627
700
  } | {
628
- insideColumnMenu: true;
701
+ selectionMode?: 'single-row';
702
+ treeSelection?: DataSourcePropTreeSelection_SingleNode;
703
+ defaultTreeSelection?: DataSourcePropTreeSelection_SingleNode;
704
+ onTreeSelectionChange?: DataSourcePropOnTreeSelectionChange_SingleNode;
705
+ } | {
706
+ selectionMode?: 'single-cell';
707
+ cellSelection?: DataSourcePropCellSelection_SingleCell;
708
+ defaultCellSelection?: DataSourcePropCellSelection_SingleCell;
709
+ onCellSelectionChange?: DataSourcePropOnCellSelectionChange_SingleCell;
710
+ } | {
711
+ selectionMode?: 'multi-cell';
712
+ cellSelection?: DataSourcePropCellSelection_MultiCell;
713
+ defaultCellSelection?: DataSourcePropCellSelection_MultiCell;
714
+ onCellSelectionChange?: DataSourcePropOnCellSelectionChange_MultiCell;
715
+ } | {
716
+ selectionMode?: false;
717
+ }) & ({
718
+ isNodeCollapsed?: DataSourcePropIsNodeExpanded<T>;
719
+ isNodeExpanded?: never;
720
+ } | {
721
+ isNodeExpanded?: DataSourcePropIsNodeExpanded<T>;
722
+ isNodeCollapsed?: never;
629
723
  });
630
- declare type InfiniteTableColumnRenderBag = {
631
- value: string | number | Renderable;
632
- groupIcon?: Renderable;
633
- treeIcon?: Renderable;
634
- rowDetailsIcon?: Renderable;
635
- all?: Renderable;
636
- selectionCheckBox?: Renderable;
724
+ declare type DataSourcePropsNotAvailableInTreeDataSource = keyof Pick<DataSourceProps<any>, 'groupBy' | 'defaultGroupBy' | 'nodesKey' | 'defaultGroupRowsState' | 'groupRowsState' | 'onGroupRowsStateChange' | 'onGroupByChange' | 'collapseGroupRowsOnDataFunctionChange' | 'livePagination' | 'onLivePaginationCursorChange' | 'groupMode' | 'filterFunction' | 'onPivotByChange' | 'pivotBy' | 'defaultPivotBy' | 'selectionMode' | 'rowSelection' | 'defaultRowSelection'>;
725
+ declare type TreeDataSourceProps<T> = Omit<DataSourceProps<T>, DataSourcePropsNotAvailableInTreeDataSource> & TreeDataSourceOnlyProps<T>;
726
+
727
+ declare type NodePath = any[];
728
+ declare type TreeSelectionStateObject = {
729
+ selectedPaths: NodePath;
730
+ deselectedPaths: NodePath;
731
+ defaultSelection: boolean;
732
+ } | {
733
+ defaultSelection: true;
734
+ deselectedPaths: NodePath;
735
+ selectedPaths?: NodePath;
736
+ } | {
737
+ defaultSelection: false;
738
+ selectedPaths: NodePath;
739
+ deselectedPaths?: NodePath;
637
740
  };
638
- declare type InfiniteTableColumnRenderParamBase<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
639
- domRef: InfiniteTableCellProps<DATA_TYPE>['domRef'];
640
- htmlElementRef: React__default.MutableRefObject<HTMLElement | null>;
641
- rowIndexInHorizontalLayoutPage: null | number;
642
- horizontalLayoutPageIndex: null | number;
643
- value: string | number | Renderable;
644
- align: InfiniteTableColumnAlignValues;
645
- verticalAlign: InfiniteTableColumnVerticalAlignValues;
646
- renderBag: InfiniteTableColumnRenderBag;
647
- rowIndex: number;
648
- rowActive: boolean;
649
- api: InfiniteTableApi<DATA_TYPE>;
650
- dataSourceApi: DataSourceApi<DATA_TYPE>;
651
- editError?: Error;
652
- column: COL_TYPE;
653
- columnsMap: Map<string, COL_TYPE>;
654
- fieldsToColumn: Map<keyof DATA_TYPE, COL_TYPE>;
655
- groupByColumn?: InfiniteTableComputedColumn<DATA_TYPE>;
656
- toggleCurrentGroupRow: () => void;
657
- toggleCurrentTreeNode: () => void;
658
- expandTreeNode: InfiniteTableToggleTreeNodeFn;
659
- collapseTreeNode: InfiniteTableToggleTreeNodeFn;
660
- toggleGroupRow: InfiniteTableToggleGroupRowFn;
661
- toggleTreeNode: InfiniteTableToggleTreeNodeFn;
662
- toggleCurrentTreeNodeSelection: () => void;
663
- toggleCurrentGroupRowSelection: () => void;
664
- toggleCurrentRowSelection: () => void;
665
- toggleCurrentRowDetails: () => void;
666
- toggleRowDetails: InfiniteTableToggleRowDetailsFn;
667
- expandRowDetails: InfiniteTableToggleRowDetailsFn;
668
- collapseRowDetails: InfiniteTableToggleRowDetailsFn;
669
- rowHasSelectedCells: boolean;
670
- cellSelected: boolean;
671
- selectCurrentRow: () => void;
672
- selectRow: InfiniteTableSelectRowFn;
673
- deselectRow: InfiniteTableSelectRowFn;
674
- deselectCurrentRow: () => void;
675
- selectCell: () => void;
676
- deselectCell: () => void;
677
- toggleRowSelection: InfiniteTableSelectRowFn;
678
- toggleGroupRowSelection: InfiniteTableToggleGroupRowFn;
679
- toggleTreeNodeSelection: InfiniteTableToggleTreeNodeFn;
680
- selectTreeNode: InfiniteTableToggleTreeNodeFn;
681
- deselectTreeNode: InfiniteTableToggleTreeNodeFn;
682
- selectionMode: DataSourcePropSelectionMode | undefined;
683
- rootGroupBy: DataSourceState<DATA_TYPE>['groupBy'];
684
- pivotBy?: DataSourceState<DATA_TYPE>['pivotBy'];
741
+ declare type TreeSelectionStateConfig<_T = any> = {
742
+ treeDeepMap: DeepMap<any, DeepMapTreeValueType<any, any>>;
685
743
  };
686
- declare type InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnRenderParamBase<DATA_TYPE, COL_TYPE> & InfiniteTableRowInfoDataDiscriminator<DATA_TYPE>;
687
- declare type InfiniteTableColumnRenderValueParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE>;
688
- declare type InfiniteTableColumnRowspanParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
689
- rowInfo: InfiniteTableRowInfo<DATA_TYPE>;
690
- data: DATA_TYPE | Partial<DATA_TYPE> | null;
691
- dataArray: InfiniteTableRowInfo<DATA_TYPE>[];
692
- rowIndex: number;
693
- column: COL_TYPE;
744
+ declare type GetTreeSelectionStateConfig<T> = () => TreeSelectionStateConfig<T>;
745
+ declare type NodeSelectionState = {
746
+ selected: boolean | null;
747
+ selectedCount: number;
748
+ deselectedCount: number;
749
+ leafCount: number;
694
750
  };
695
- declare type InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
696
- isGroupRow: true;
697
- }) => Renderable | null;
698
- declare type InfiniteTableColumnRenderFunctionForParentNode<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
699
- isTreeNode: true;
700
- isParentNode: true;
701
- }) => Renderable | null;
702
- declare type InfiniteTableColumnRenderFunctionForLeafNode<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
703
- isTreeNode: true;
704
- isParentNode: false;
705
- }) => Renderable | null;
706
- declare type InfiniteTableColumnRenderFunctionForNode<DATA_TYPE, EXTRA_NODE_PARAMS = Partial<InfiniteTableRowInfoDataDiscriminator_ParentNode<DATA_TYPE> | InfiniteTableRowInfoDataDiscriminator_LeafNode<DATA_TYPE>>, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & EXTRA_NODE_PARAMS) => Renderable | null;
707
- declare type InfiniteTableColumnRenderFunctionForNormalRows<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
708
- isGroupRow: false;
709
- }) => Renderable | null;
710
- declare type InfiniteTableColumnRenderFunction<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE>) => Renderable | null;
711
- declare type InfiniteTableColumnHeaderRenderFunction<T> = (headerParams: InfiniteTableColumnHeaderParam<T>) => Renderable;
712
- declare type InfiniteTableColumnOrHeaderRenderFunction<T> = (params: (InfiniteTableColumnCellContextType<T> & {
713
- rowInfo: InfiniteTableRowInfo<T>;
714
- }) | (InfiniteTableColumnHeaderParam<T> & {
715
- rowInfo: null;
716
- })) => ReturnType<InfiniteTableColumnRenderFunction<T>>;
717
- declare type InfiniteTableColumnContentFocusable<T> = boolean | InfiniteTableColumnContentFocusableFn<T>;
718
- declare type InfiniteTableColumnEditable<T> = boolean | InfiniteTableColumnEditableFn<T>;
719
- declare type InfiniteTableColumnContentFocusableFn<T> = (params: InfiniteTableColumnContentFocusableParams<T>) => boolean;
720
- declare type InfiniteTableColumnEditableFn<T> = (params: InfiniteTableColumnEditableParams<T>) => boolean | Promise<boolean>;
721
- declare type InfiniteTableColumnContentFocusableParams<T> = InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T>;
722
- declare type InfiniteTableColumnEditableParams<T> = InfiniteTableColumnContentFocusableParams<T>;
723
- declare type InfiniteTableColumnGetValueToPersistParams<T> = InfiniteTableColumnEditableParams<T> & {
724
- initialValue: any;
751
+ declare class TreeSelectionState<T = any> {
752
+ selectedPaths: NodePath[] | null;
753
+ deselectedPaths: NodePath[] | null;
754
+ defaultSelection: boolean;
755
+ selectionMap: DeepMap<NodePath, boolean>;
756
+ cache: DeepMap<NodePath, NodeSelectionState>;
757
+ getConfig: GetTreeSelectionStateConfig<T>;
758
+ getTreeDeepMap(): DeepMap<any, DeepMapTreeValueType<any, any>>;
759
+ isLeafNode(nodePath: NodePath): boolean;
760
+ getLeafNodesCount(nodePath: NodePath): number;
761
+ static from<T>(treeSelectionState: TreeSelectionStateObject, getConfig: GetTreeSelectionStateConfig<T>): TreeSelectionState<T>;
762
+ constructor(state: TreeSelectionStateObject | TreeSelectionState, getConfig: GetTreeSelectionStateConfig<T>);
763
+ setConfigFn(getConfig: GetTreeSelectionStateConfig<T>): void;
764
+ xcache(): void;
765
+ update(stateObject: TreeSelectionStateObject): void;
766
+ setSelectionForPath(nodePath: NodePath, selected: boolean): void;
767
+ getState(): TreeSelectionStateObject;
768
+ deselectAll(): void;
769
+ selectAll(): void;
770
+ isNodeSelected(nodePath: NodePath): boolean | null;
771
+ private isSelfSelected;
772
+ private cacheIt;
773
+ private getSelectionStateForNode;
774
+ private isPathSelected;
775
+ private getNodeBooleanSelectionStateFromParent;
776
+ setNodeSelection(nodePath: NodePath, selected: boolean): void;
777
+ selectNode(nodePath: NodePath): void;
778
+ deselectNode(nodePath: any[]): void;
779
+ toggleNodeSelection(nodePath: NodePath): void;
780
+ getSelectedCount(): number;
781
+ getDeselectedCount(): number;
782
+ getSelectionCountFor(nodePath?: NodePath): {
783
+ selectedCount: number;
784
+ deselectedCount: number;
785
+ };
786
+ destroy(): void;
787
+ }
788
+
789
+ declare type DataSourceStateRestoreForDetail<T> = {
790
+ originalDataArray: DataSourceState<T>['originalDataArray'] | undefined;
791
+ groupBy: DataSourceState<T>['groupBy'] | undefined;
792
+ groupRowsState: DataSourceState<T>['groupRowsState'] | undefined;
793
+ pivotBy: DataSourceState<T>['pivotBy'] | undefined;
794
+ sortInfo: DataSourceState<T>['sortInfo'] | undefined;
795
+ filterValue: DataSourceState<T>['filterValue'] | undefined;
796
+ livePaginationCursor: DataSourceState<T>['livePaginationCursor'] | undefined;
725
797
  };
726
- declare type InfiniteTableColumnAlignValues = 'start' | 'center' | 'end';
727
- declare type InfiniteTableColumnVerticalAlignValues = 'start' | 'center' | 'end';
728
- declare type InfiniteTableColumnHeader<T> = Renderable | InfiniteTableColumnHeaderRenderFunction<T>;
729
- declare type InfiniteTableDataTypeNames = 'string' | 'number' | 'date' | string;
730
- declare type InfiniteTableColumnTypeNames = 'string' | 'number' | 'date' | string;
731
- declare type InfiniteTableColumnStylingFnParams<T> = {
732
- value: Renderable;
733
- column: InfiniteTableComputedColumn<T>;
734
- rowIndexInHorizontalLayoutPage: null | number;
735
- horizontalLayoutPageIndex: null | number;
736
- inEdit: boolean;
737
- rowHasSelectedCells: boolean;
738
- editError: InfiniteTableColumnRenderParamBase<T>['editError'];
739
- } & InfiniteTableRowInfoDataDiscriminator<T>;
740
- declare type InfiniteTableColumnStyleFn<T> = (params: InfiniteTableColumnStylingFnParams<T>) => undefined | React__default.CSSProperties;
741
- declare type InfiniteTableColumnHeaderClassNameFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | string;
742
- declare type InfiniteTableColumnHeaderStyleFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | React__default.CSSProperties;
743
- declare type InfiniteTableColumnClassNameFn<T> = (params: InfiniteTableColumnStylingFnParams<T>) => undefined | string;
744
- declare type InfiniteTableColumnStyle<T> = CSSProperties | InfiniteTableColumnStyleFn<T>;
745
- declare type InfiniteTableColumnAlign<T> = InfiniteTableColumnAlignValues | InfiniteTableColumnAlignFn<T>;
746
- declare type InfiniteTableColumnVerticalAlign<T> = InfiniteTableColumnVerticalAlignValues | InfiniteTableColumnVerticalAlignFn<T>;
747
- declare type InfiniteTableColumnAlignFn<T> = (params: InfiniteTableColumnAlignFnParams<T>) => InfiniteTableColumnAlignValues;
748
- declare type InfiniteTableColumnAlignFnParams<T> = XOR<{
749
- isHeader: true;
750
- column: InfiniteTableComputedColumn<T>;
751
- }, InfiniteTableColumnStylingFnParams<T> & {
752
- isHeader: false;
753
- }>;
754
- declare type InfiniteTableColumnVerticalAlignFn<T> = (params: InfiniteTableColumnAlignFnParams<T>) => InfiniteTableColumnVerticalAlignValues;
755
- declare type InfiniteTableColumnHeaderStyle<T> = CSSProperties | InfiniteTableColumnHeaderStyleFn<T>;
756
- declare type InfiniteTableColumnClassName<T> = string | InfiniteTableColumnClassNameFn<T>;
757
- declare type InfiniteTableColumnHeaderClassName<T> = string | InfiniteTableColumnHeaderClassNameFn<T>;
758
- declare type InfiniteTableColumnValueGetterParams<T> = ValueGetterParams<T>;
759
- declare type InfiniteTableColumnValueFormatterParams<T> = InfiniteTableRowInfoDataDiscriminator<T>;
760
- declare type InfiniteTableColumnValueGetter<T, VALUE_GETTER_TYPE = string | number | boolean | Date | null | undefined> = (params: InfiniteTableColumnValueGetterParams<T>) => VALUE_GETTER_TYPE;
761
- declare type InfiniteTableColumnValueFormatter<T, VALUE_FORMATTER_TYPE = string | number | boolean | Date | null | undefined> = (params: InfiniteTableColumnValueFormatterParams<T>) => VALUE_FORMATTER_TYPE;
762
- declare type InfiniteTableColumnRowspanFn<T> = (params: InfiniteTableColumnRowspanParam<T>) => number;
763
- declare type InfiniteTableColumnComparer<T> = (a: T, b: T) => number;
764
- declare type InfiniteTableColumnSortableFn<T> = (context: {
765
- api: InfiniteTableApi<T>;
766
- columnApi: InfiniteTableColumnApi<T>;
767
- column: InfiniteTableComputedColumn<T>;
768
- columns: Map<string, InfiniteTableComputedColumn<T>>;
769
- }) => boolean;
770
- declare type InfiniteTableColumnSortable<T> = boolean | InfiniteTableColumnSortableFn<T>;
771
- /**
772
- * Defines a column in the table.
773
- *
774
- * @typeParam DATA_TYPE The type of the data in the table.
775
- *
776
- * Can be bound to a field which is a `keyof DATA_TYPE`.
777
- */
778
- declare type InfiniteTableColumn<DATA_TYPE> = {
779
- field?: KeyOfNoSymbol<DATA_TYPE>;
780
- valueGetter?: InfiniteTableColumnValueGetter<DATA_TYPE>;
781
- defaultSortable?: InfiniteTableColumnSortable<DATA_TYPE>;
782
- /**
783
- * Whether the column is draggable by default.
784
- *
785
- * This prop overrides the top-level columnDefaultDraggable prop, but is
786
- * overridden by the top-level draggableColumns prop.
787
- */
788
- defaultDraggable?: boolean;
789
- resizable?: boolean;
790
- shouldAcceptEdit?: (params: InfiniteTablePropOnEditAcceptedParams<DATA_TYPE>) => boolean | Error | Promise<boolean | Error>;
791
- contentFocusable?: InfiniteTableColumnContentFocusable<DATA_TYPE>;
792
- defaultEditable?: InfiniteTableColumnEditable<DATA_TYPE>;
793
- getValueToEdit?: (params: InfiniteTableColumnEditableParams<DATA_TYPE>) => any | Promise<any>;
794
- getValueToPersist?: (params: InfiniteTableColumnGetValueToPersistParams<DATA_TYPE>) => any | Promise<any>;
795
- comparer?: InfiniteTableColumnComparer<DATA_TYPE>;
796
- defaultHiddenWhenGroupedBy?: '*' | true | keyof DATA_TYPE | {
797
- [k in keyof Partial<DATA_TYPE>]: true;
798
- };
799
- align?: InfiniteTableColumnAlign<DATA_TYPE>;
800
- headerAlign?: InfiniteTableColumnAlign<DATA_TYPE>;
801
- verticalAlign?: InfiniteTableColumnVerticalAlign<DATA_TYPE>;
802
- columnGroup?: string;
803
- header?: InfiniteTableColumnHeader<DATA_TYPE>;
804
- renderHeader?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
805
- name?: Renderable;
806
- cssEllipsis?: boolean;
807
- headerCssEllipsis?: boolean;
808
- type?: InfiniteTableColumnTypeNames | InfiniteTableColumnTypeNames[] | null;
809
- dataType?: InfiniteTableDataTypeNames;
810
- sortType?: string | string[];
811
- filterType?: string;
812
- style?: InfiniteTableColumnStyle<DATA_TYPE>;
813
- headerStyle?: InfiniteTableColumnHeaderStyle<DATA_TYPE>;
814
- headerClassName?: InfiniteTableColumnHeaderClassName<DATA_TYPE>;
815
- className?: InfiniteTableColumnClassName<DATA_TYPE>;
816
- rowspan?: InfiniteTableColumnRowspanFn<DATA_TYPE>;
817
- render?: InfiniteTableColumnRenderFunction<DATA_TYPE>;
818
- renderValue?: InfiniteTableColumnRenderFunction<DATA_TYPE>;
819
- renderGroupValue?: InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE>;
820
- renderLeafValue?: InfiniteTableColumnRenderFunctionForNormalRows<DATA_TYPE>;
821
- valueFormatter?: InfiniteTableColumnValueFormatter<DATA_TYPE, Renderable>;
822
- defaultWidth?: number;
823
- defaultFlex?: number;
824
- defaultFilterable?: boolean;
825
- minWidth?: number;
826
- maxWidth?: number;
827
- renderGroupIcon?: InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE>;
828
- renderRowDetailIcon?: boolean | InfiniteTableColumnRenderFunction<DATA_TYPE>;
829
- renderTreeIcon?: boolean | InfiniteTableColumnRenderFunctionForNode<DATA_TYPE, {
830
- isTreeNode: true;
831
- isParentNode: boolean;
832
- isGroupRow: false;
833
- nodeExpanded: boolean;
834
- }>;
835
- renderTreeIconForParentNode?: InfiniteTableColumnRenderFunctionForParentNode<DATA_TYPE, {
836
- isTreeNode: true;
837
- isGroupRow: true;
838
- isParentNode: true;
839
- }>;
840
- renderTreeIconForLeafNode?: InfiniteTableColumnRenderFunctionForLeafNode<DATA_TYPE, {
841
- isTreeNode: true;
842
- isGroupRow: false;
843
- isLeafNode: true;
844
- }>;
845
- renderSortIcon?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
846
- renderFilterIcon?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
847
- renderSelectionCheckBox?: boolean | InfiniteTableColumnOrHeaderRenderFunction<DATA_TYPE>;
848
- renderMenuIcon?: boolean | InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
849
- renderHeaderSelectionCheckBox?: boolean | InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
850
- components?: {
851
- ColumnCell?: (props: HTMLProps<HTMLDivElement>) => JSX.Element | null;
852
- HeaderCell?: (props: HTMLProps<HTMLDivElement>) => JSX.Element | null;
853
- Editor?: () => JSX.Element | null;
854
- FilterEditor?: () => JSX.Element | null;
855
- FilterOperatorSwitch?: () => JSX.Element | null;
856
- MenuIcon?: (props: MenuIconProps) => JSX.Element | null;
857
- };
858
- };
859
- declare type InfiniteTableGeneratedGroupColumn<T> = Omit<InfiniteTableColumn<T>, 'defaultSortable'> & {
860
- groupByForColumn: GroupBy<T> | GroupBy<T>[];
861
- id?: string;
862
- };
863
- declare type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & ColumnTypeWithInherit<Partial<InfiniteTablePivotFinalColumnVariant<T, any>>>;
864
- declare type InfiniteTablePivotFinalColumnGroup<DataType, KeyType extends any = any> = InfiniteTableColumnGroup & {
865
- pivotBy: DataSourcePivotBy<DataType>[];
866
- pivotTotalColumnGroup?: true;
867
- pivotGroupKeys: KeyType[];
868
- pivotByAtIndex: PivotBy<DataType, KeyType>;
869
- pivotGroupKey: KeyType;
870
- pivotIndex: number;
871
- };
872
- declare type InfiniteTablePivotFinalColumn<DataType, KeyType extends any = any> = InfiniteTableColumn<DataType> & {
873
- pivotBy: DataSourcePivotBy<DataType>[];
874
- pivotColumn: true;
875
- pivotTotalColumn: boolean;
876
- pivotAggregator: AggregationReducer<DataType, any>;
877
- pivotAggregatorIndex: number;
878
- pivotGroupKeys: KeyType[];
879
- pivotByAtIndex?: PivotBy<DataType, KeyType>;
880
- pivotIndex: number;
881
- pivotGroupKey: KeyType;
882
- };
883
- declare type InfiniteTablePivotFinalColumnVariant<DataType, KeyType extends any = any> = InfiniteTablePivotFinalColumn<DataType, KeyType>;
884
- declare type InfiniteTableComputedColumnBase<T> = {
885
- computedFilterType: string;
886
- computedSortType: string | string[];
887
- computedDataType: string;
888
- computedWidth: number;
889
- computedFlex: number | null;
890
- computedMinWidth: number;
891
- computedMaxWidth: number;
892
- computedOffset: number;
893
- computedPinningOffset: number;
894
- computedAbsoluteOffset: number;
895
- computedSortInfo: DataSourceSingleSortInfo<T> | null;
896
- computedSorted: boolean;
897
- computedSortedAsc: boolean;
898
- computedSortedDesc: boolean;
899
- computedSortIndex: number;
900
- computedVisible: boolean;
901
- computedVisibleIndex: number;
902
- computedVisibleIndexInCategory: number;
903
- computedMultiSort: boolean;
904
- computedFiltered: boolean;
905
- computedFilterable: boolean;
906
- computedFilterValue: DataSourceFilterValueItem<T> | null;
907
- computedPinned: InfiniteTableColumnPinnedValues;
908
- computedDraggable: boolean;
909
- computedResizable: boolean;
910
- computedFirstInCategory: boolean;
911
- computedLastInCategory: boolean;
912
- computedFirst: boolean;
913
- computedLast: boolean;
914
- computedEditable: NonUndefined<InfiniteTableColumn<T>['defaultEditable']>;
915
- computedSortable: NonUndefined<InfiniteTableColumn<T>['defaultSortable']>;
916
- colType: InfiniteTableColumnType<T>;
917
- id: string;
798
+ declare type RowDetailCacheKey = string | number;
799
+ declare type RowDetailCacheEntry = {
800
+ all?: boolean;
801
+ groupBy?: boolean;
802
+ sortInfo?: boolean;
803
+ filterValue?: boolean;
804
+ data?: boolean;
805
+ livePaginationCursor?: boolean;
806
+ columnOrder?: boolean;
918
807
  };
919
- declare type InfiniteTableComputedColumn<T> = InfiniteTableColumn<T> & InfiniteTableComputedColumnBase<T> & Partial<InfiniteTablePivotFinalColumn<T>> & Partial<InfiniteTableGeneratedGroupColumn<T>>;
920
- declare type InfiniteTableComputedPivotFinalColumn<T> = InfiniteTableComputedColumn<T> & InfiniteTablePivotFinalColumn<T>;
921
808
 
922
- declare class RowSizeCache {
923
- rowHeight: Map<number, number>;
924
- rowDetailHeight: Map<number, number>;
925
- getTotalRowHeight(index: number): number;
926
- getRowHeight: (index: number) => number;
927
- getRowDetailHeight: (index: number) => number;
928
- getSize(index: number): {
929
- rowHeight: number;
930
- rowDetailHeight: number;
931
- totalRowHeight: number;
932
- };
809
+ interface RowDetailCacheStorage<_K, T> {
810
+ add(key: any, value: T): void;
811
+ get(key: any): T | undefined;
812
+ delete(key: any): void;
813
+ has(key: any): boolean;
814
+ }
815
+ interface RowDetailCacheStorageForCurrentRow<T = RowDetailCacheEntry> {
816
+ add(value: T): void;
817
+ get(): T | undefined;
818
+ delete(): void;
819
+ has(): boolean;
820
+ }
821
+ declare class RowDetailCache<K = RowDetailCacheKey, T = RowDetailCacheEntry> implements RowDetailCacheStorage<K, T> {
822
+ private cacheStorage;
823
+ constructor(cache?: boolean | number);
824
+ add(key: K, value: T): void;
825
+ get(key: K): T | undefined;
826
+ delete(key: K): void;
827
+ has(key: K): boolean;
933
828
  }
934
829
 
935
- declare type CellSelectionPosition<ROW_PRIMARY_KEY_TYPE = any, COL_ID = string> = [ROW_PRIMARY_KEY_TYPE, COL_ID];
936
- declare type CellSelectionStateObject = {
937
- selectedCells: CellSelectionPosition[];
938
- deselectedCells: CellSelectionPosition[];
939
- defaultSelection: boolean;
940
- } | {
941
- defaultSelection: true;
942
- deselectedCells: CellSelectionPosition[];
943
- selectedCells?: CellSelectionPosition[];
944
- } | {
945
- defaultSelection: false;
946
- selectedCells: CellSelectionPosition[];
947
- deselectedCells?: CellSelectionPosition[];
830
+ declare type BooleanCollectionStateKeys<KeyType> = true | KeyType[];
831
+ declare type BooleanCollectionStateObject<KeyType> = {
832
+ positiveItems: BooleanCollectionStateKeys<KeyType>;
833
+ negativeItems: BooleanCollectionStateKeys<KeyType>;
948
834
  };
949
- declare class CellSelectionState {
950
- wildcard: string;
951
- cache: DeepMap<any, boolean>;
952
- selectedRowsToColumns: Map<any, Set<string>>;
953
- selectedColumnsToRows: Map<string, Set<any>>;
954
- deselectedRowsToColumns: Map<any, Set<string>>;
955
- deselectedColumnsToRows: Map<string, Set<any>>;
956
- defaultSelection: boolean;
957
- constructor(clone?: CellSelectionStateObject | CellSelectionState);
958
- deselectAll: () => void;
959
- selectAll: () => void;
960
- selectCell(rowId: any, colId: string): void;
961
- deselectCell(rowId: any, colId: string): void;
962
- selectColumn(colId: string): void;
963
- deselectColumn(colId: string): void;
964
- setCellSelected(rowId: any, colId: string, selected: boolean): void;
965
- private setCellInDeselection;
966
- private setCellInSelection;
967
- update(stateObject: CellSelectionStateObject): void;
968
- /**
969
- * Returns whether there is at least one selected cell in the row
970
- *
971
- * @param rowId the row id
972
- * @param columnIds the columns currently available in the grid
973
- * @returns boolean
974
- */
975
- isCellSelectionInRow(rowId: any, columnIds: string[]): boolean;
976
- isCellSelected(rowId: any, colId: string): boolean;
977
- private isCellSelected_Internal;
978
- getState(): CellSelectionStateObject;
835
+ declare abstract class BooleanCollectionState<StateObject, KeyType> {
836
+ protected positiveMap?: Map<KeyType, true>;
837
+ protected negativeMap?: Map<KeyType, true>;
838
+ protected allNegative: boolean;
839
+ protected allPositive: boolean;
840
+ private initialState;
841
+ constructor(state: BooleanCollectionStateObject<KeyType> | BooleanCollectionState<StateObject, KeyType>);
842
+ abstract getPositiveFromState(state: StateObject): BooleanCollectionStateKeys<KeyType>;
843
+ abstract getNegativeFromState(state: StateObject): BooleanCollectionStateKeys<KeyType>;
844
+ abstract getState(): StateObject;
845
+ protected getInitialState(): BooleanCollectionStateObject<KeyType>;
846
+ destroy(): void;
847
+ private update;
848
+ protected isDefaultNegativeSelection(): boolean;
849
+ protected isDefaultPositiveSelection(): boolean;
850
+ protected areAllNegative(): boolean;
851
+ protected areAllPositive(): boolean;
852
+ protected makeAllNegative(): void;
853
+ protected makeAllPositive(): void;
854
+ protected isItemPositive(key: KeyType): boolean;
855
+ protected isItemNegative(key: KeyType): boolean;
856
+ protected setItemValue(key: KeyType, shouldMakePositive: boolean): void;
857
+ protected makeItemNegative(key: KeyType): void;
858
+ protected makeItemPositive(key: KeyType): void;
859
+ protected toggleItem(key: KeyType): void;
979
860
  }
980
861
 
981
- declare type CellPositionByIndex = {
862
+ declare class RowDetailState<KeyType = any> extends BooleanCollectionState<RowDetailStateObject<KeyType>, KeyType> {
863
+ constructor(state: RowDetailStateObject<KeyType> | RowDetailState<KeyType>);
864
+ getState(): RowDetailStateObject<KeyType>;
865
+ getPositiveFromState(state: RowDetailStateObject<KeyType>): true | KeyType[];
866
+ getNegativeFromState(state: RowDetailStateObject<KeyType>): true | KeyType[];
867
+ areAllCollapsed(): boolean;
868
+ areAllExpanded(): boolean;
869
+ collapseAll(): void;
870
+ expandAll(): void;
871
+ isRowDetailsExpanded: (key: KeyType) => boolean;
872
+ isRowDetailsCollapsed(key: KeyType): boolean;
873
+ setRowDetailsExpanded(key: KeyType, shouldExpand: boolean): void;
874
+ collapseRowDetails(key: KeyType): void;
875
+ expandRowDetails(key: KeyType): void;
876
+ toggleRowDetails(key: KeyType): void;
877
+ }
878
+
879
+ declare type TableRenderCellFnParam = {
880
+ domRef: RefCallback<HTMLElement>;
982
881
  rowIndex: number;
983
882
  colIndex: number;
883
+ rowspan: number;
884
+ colspan: number;
885
+ hidden: boolean;
886
+ width: number;
887
+ height: number;
888
+ widthWithColspan: number;
889
+ heightWithRowspan: number;
890
+ rowFixed: FixedPosition;
891
+ colFixed: FixedPosition;
892
+ onMouseEnter: VoidFunction;
893
+ onMouseLeave: VoidFunction;
984
894
  };
985
- declare type MultiSelectRangeOptions = {
986
- horizontalLayout: false;
987
- } | {
988
- horizontalLayout: true;
989
- rowsPerPage: number;
990
- columnsPerSet: number;
895
+ declare type TableRenderDetailRowFnParam = {
896
+ domRef: RefCallback<HTMLElement>;
897
+ rowIndex: number;
898
+ hidden: boolean;
899
+ height: number;
900
+ rowFixed: FixedPosition;
901
+ onMouseEnter: VoidFunction;
902
+ onMouseLeave: VoidFunction;
991
903
  };
992
-
993
- declare type MultiCellSelectorOptions = {
994
- getPrimaryKeyByIndex: (rowIndex: number) => string | number;
995
- getColumnIdByIndex: (colIndex: number) => string;
904
+ declare type TableRenderCellFn = (param: TableRenderCellFnParam) => Renderable;
905
+ declare type TableRenderDetailRowFn = (param: TableRenderDetailRowFnParam) => Renderable;
906
+ declare type RenderRangeOptions = {
907
+ force?: boolean;
908
+ renderCell: TableRenderCellFn;
909
+ renderDetailRow?: TableRenderDetailRowFn;
910
+ onRender: (items: Renderable[]) => void;
996
911
  };
997
- declare class MultiCellSelector {
998
- multiSelectStartPosition: CellPositionByIndex;
999
- multiSelectEndPosition?: CellPositionByIndex;
1000
- getPrimaryKeyByIndex: MultiCellSelectorOptions['getPrimaryKeyByIndex'];
1001
- getColumnIdByIndex: MultiCellSelectorOptions['getColumnIdByIndex'];
1002
- _cellSelectionState: CellSelectionState;
1003
- constructor(options: MultiCellSelectorOptions);
1004
- private getCellSelectionPosition;
1005
- set cellSelectionState(cellSelectionState: CellSelectionState);
1006
- get cellSelectionState(): CellSelectionState;
1007
- /**
1008
- * This is the single click, without any modifier
1009
- */
1010
- resetClick(position: CellPositionByIndex): void;
1011
- /**
1012
- * This is the click with ctrl/cmd key pressed
1013
- * @param position CellPosition
1014
- */
1015
- singleAddClick(position: CellPositionByIndex): void;
1016
- multiSelectClick(position: CellPositionByIndex, options: MultiSelectRangeOptions): void;
1017
- setRangeSelected(startPosition: CellPositionByIndex, endPosition: CellPositionByIndex, selected: boolean, options: MultiSelectRangeOptions): void;
1018
- deselectRange(startPosition: CellPositionByIndex, endPosition: CellPositionByIndex, options: MultiSelectRangeOptions): void;
1019
- selectRange(startPosition: CellPositionByIndex, endPosition: CellPositionByIndex, options: MultiSelectRangeOptions): void;
912
+ declare type HorizontalLayoutColVisibilityOptions = {
913
+ horizontalLayoutPageIndex?: number;
914
+ };
915
+
916
+ interface GridCellInterface<T_ADDITIONAL_CELL_INFO = any> {
917
+ debugId: string;
918
+ update(content: Renderable, additionalInfo?: T_ADDITIONAL_CELL_INFO): void;
919
+ getElement(): HTMLElement | null;
920
+ getNode(): Renderable;
921
+ destroy(): void;
922
+ onMount(callback: (cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>) => void): void;
923
+ getAdditionalInfo(): T_ADDITIONAL_CELL_INFO | undefined;
924
+ isMounted(): boolean;
925
+ ref: (htmlElement: HTMLElement) => void;
1020
926
  }
1021
927
 
1022
- declare type RowSelectionStateItem = (any | any[])[];
1023
- declare type RowSelectionStateObject = {
1024
- selectedRows: RowSelectionStateItem;
1025
- deselectedRows: RowSelectionStateItem;
1026
- defaultSelection: boolean;
1027
- } | {
1028
- defaultSelection: true;
1029
- deselectedRows: RowSelectionStateItem;
1030
- selectedRows?: RowSelectionStateItem;
1031
- } | {
1032
- defaultSelection: false;
1033
- selectedRows: RowSelectionStateItem;
1034
- deselectedRows?: RowSelectionStateItem;
1035
- };
1036
- declare type RowSelectionStateConfig<T> = {
1037
- groupBy: DataSourceState<T>['groupBy'];
1038
- groupDeepMap: DataSourceState<T>['groupDeepMap'];
1039
- toPrimaryKey: DataSourceState<T>['toPrimaryKey'];
1040
- totalCount: number;
1041
- indexer: DataSourceState<T>['indexer'];
1042
- lazyLoad: boolean;
1043
- onlyUsePrimaryKeys: boolean;
1044
- };
1045
- declare type GetRowSelectionStateConfig<T> = () => RowSelectionStateConfig<T>;
1046
- declare type RowSelectionStateOverride = {
1047
- getGroupKeysForPrimaryKey: RowSelectionState<any>['getGroupKeysForPrimaryKey'];
1048
- getGroupByLength: RowSelectionState<any>['getGroupByLength'];
1049
- getGroupCount: RowSelectionState<any>['getGroupCount'];
1050
- getGroupKeysDirectlyInsideGroup: RowSelectionState<any>['getGroupKeysDirectlyInsideGroup'];
1051
- getAllPrimaryKeysInsideGroup: RowSelectionState<any>['getAllPrimaryKeysInsideGroup'];
1052
- };
1053
- declare class RowSelectionState<T = any> {
1054
- selectedRows: RowSelectionStateItem | null;
1055
- deselectedRows: RowSelectionStateItem | null;
1056
- defaultSelection: boolean;
1057
- selectedMap: DeepMap<any, true>;
1058
- deselectedMap: DeepMap<any, true>;
1059
- onlyUsePrimaryKeys: boolean;
1060
- selectionCache: DeepMap<any, boolean | null>;
1061
- selectionCountCache: DeepMap<any, {
1062
- selectedCount: number;
1063
- deselectedCount: number;
1064
- }>;
1065
- getConfig: GetRowSelectionStateConfig<T>;
1066
- getGroupKeysForPrimaryKey(pk: any): any[];
1067
- getGroupDeepMap(): DeepMap<any, DeepMapGroupValueType<T, any>> | undefined;
1068
- getGroupCount(groupKeys: any[]): number;
1069
- getGroupKeysDirectlyInsideGroup(groupKeys: any[]): any[][];
1070
- getAllPrimaryKeysInsideGroup(groupKeys: any[]): any[];
1071
- getGroupByLength(): number;
1072
- static from<T>(rowSeleStateObject: RowSelectionStateObject, getConfig: GetRowSelectionStateConfig<T>, overrides?: RowSelectionStateOverride): RowSelectionState<T>;
1073
- constructor(state: RowSelectionStateObject | RowSelectionState, getConfig: GetRowSelectionStateConfig<T>, _forTestingOnly?: RowSelectionStateOverride);
1074
- mapSet: (name: 'selected' | 'deselected', key: any | any[]) => void;
1075
- _selectedMapSet: (key: any | any[]) => void;
1076
- _deselectedMapSet: (key: any | any[]) => void;
1077
- update(stateObject: RowSelectionStateObject): void;
1078
- private xcache;
1079
- getState(): RowSelectionStateObject;
1080
- deselectAll(): void;
1081
- selectAll(): void;
1082
- isRowDefaultSelected(): boolean;
1083
- isRowDefaultDeselected(): boolean;
1084
- /**
1085
- *
1086
- * @param key the id of the row - if a row in a grouped datasource, this is the final row id, without the group keys
1087
- * @param groupKeys the keys of row parents, in order
1088
- * @returns Whether the row is selected or not.
1089
- */
1090
- isRowSelected(key: any, groupKeys?: any[]): boolean;
1091
- isRowDeselected(key: any, groupKeys?: any[]): boolean;
1092
- setRowSelected(key: string | number, selected: boolean, groupKeys?: any[]): void;
928
+ declare type CellPos = [number, number];
929
+
930
+ declare class GridCellManager<T_ADDITIONAL_CELL_INFO> extends Logger {
931
+ private matrix;
932
+ private rowsWithCellsHistory;
933
+ private columnsWithCellsHistory;
934
+ private cellToMatrixPosition;
935
+ private pool;
936
+ debugId: string;
937
+ private offRemoveCell;
938
+ constructor(debugId: string);
939
+ private onRemoveCell;
940
+ set poolSize(cellCount: number);
941
+ get poolSize(): number;
942
+ getDetachedCell(): GridCellInterface<T_ADDITIONAL_CELL_INFO>;
943
+ private clearCellFromMatrix;
944
+ private addCellToMatrix;
945
+ private setCellPositionInMatrix;
946
+ renderNodeAtCell(node: Renderable, cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>, cellPos: CellPos, additionalInfo?: T_ADDITIONAL_CELL_INFO): GridCellInterface<T_ADDITIONAL_CELL_INFO>;
947
+ getCellPosition(cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>): CellPos | null;
948
+ getCellAt(cellPos: CellPos): GridCellInterface<T_ADDITIONAL_CELL_INFO> | undefined;
1093
949
  /**
1094
- * Returns if the selection state ('full','partial','none') for the current group
1095
- *
1096
- * The selection state will be full (true) if either of those are true:
1097
- * * the group keys are specified as selected
1098
- * * all the children are specified as selected
950
+ * This gets a cell for a given position.
951
+ * If there's already a cell currently attached at that position, it will be returned.
1099
952
  *
1100
- * The selection state will be partial (null) if either of those are true:
1101
- * * the group keys are partially selected
1102
- * * some of the children are specified as selected
953
+ * Otherwise, we try to return the most optimal cell to use for that position.
954
+ * If the optimise parameter is set to 'row', we will try to return a detached cell
955
+ * that was last rendered in that row.
1103
956
  *
957
+ * If the optimise parameter is set to 'column', we will try to return a detached cell
958
+ * that was last rendered in that column.
1104
959
  *
1105
- * @param groupKeys the keys of the group row
1106
- * @param children leaf children that belong to the group
1107
- * @returns boolean
960
+ * @param cellPos [rowIndex, colIndex]
961
+ * @param optimise 'row' | 'column'
1108
962
  */
1109
- getGroupRowSelectionState(initialGroupKeys: any[]): boolean | null;
1110
- private getGroupRowBooleanSelectionStateFromParent;
1111
- isGroupRowPartlySelected(groupKeys: any[]): boolean;
1112
- isGroupRowSelected(groupKeys: any[]): boolean;
1113
- isGroupRowDeselected(groupKeys: any[]): boolean;
1114
- selectGroupRow(groupKeys: any[]): void;
1115
- deselectGroupRow(groupKeys: any[]): void;
1116
- setRowAsSelected(key: string | number, groupKeys?: any[]): void;
1117
- setRowAsDeselected(key: string | number, groupKeys?: any[]): void;
1118
- deselectRow(key: any, groupKeys?: any[]): void;
1119
- selectRow(key: any, groupKeys?: any[]): void;
1120
- toggleGroupRowSelection(groupKeys: any[]): void;
1121
- toggleRowSelection(key: string | number, groupKeys?: any[] | undefined): void;
1122
- getSelectedCount(): number;
1123
- getDeselectedCount(): number;
1124
- getSelectionCountFor(groupKeys?: any[], parentSelected?: boolean): {
1125
- selectedCount: number;
1126
- deselectedCount: number;
1127
- };
963
+ getCellFor(cellPos: CellPos, optimise: 'row' | 'column'): GridCellInterface<T_ADDITIONAL_CELL_INFO>;
964
+ isCellAttached(cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>): boolean;
965
+ isCellAttachedAt(cellPos: CellPos): boolean;
966
+ getMatrix(): Renderable[][];
967
+ getAllCells(): GridCellInterface<T_ADDITIONAL_CELL_INFO>[];
968
+ getCellsForRow(rowIndex: number): GridCellInterface<T_ADDITIONAL_CELL_INFO>[];
969
+ getOneAttachedCell(): any;
970
+ getRowsWithCells(): number[];
971
+ getColumnsWithCells(): number[];
972
+ isRowAttached(rowIndex: number): boolean;
973
+ isColumnAttached(colIndex: number): boolean;
974
+ detachRow(rowIndex: number): void;
975
+ detachCol(colIndex: number): void;
976
+ detachCell(cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>): boolean;
977
+ detachCells(cells: Set<GridCellInterface<T_ADDITIONAL_CELL_INFO>>): void;
978
+ detachRowsStartingWith(rowIndex: number): void;
979
+ detachColsStartingWith(colIndex: number): void;
980
+ detachCellsStartingAt(cellPos: CellPos): void;
981
+ detachCellAt(cellPos: CellPos): boolean;
982
+ onCellAttachmentChange(callback: (cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>, attached: boolean) => void): VoidFn;
983
+ getCellsOutsideRenderRange: (range: TableRenderRange) => Set<GridCellInterface<T_ADDITIONAL_CELL_INFO>>;
984
+ getCellFromListForRow(cells: Set<GridCellInterface<T_ADDITIONAL_CELL_INFO>>, rowIndex: number): GridCellInterface<T_ADDITIONAL_CELL_INFO> | undefined;
985
+ getCellFromListForColumn(cells: Set<GridCellInterface<T_ADDITIONAL_CELL_INFO>>, colIndex: number): GridCellInterface<T_ADDITIONAL_CELL_INFO> | undefined;
986
+ getCellCountInMatrix(): number;
987
+ destroy(): void;
988
+ reset(): void;
989
+ makeDetachedCellsEmpty(): void;
990
+ withDetachedCells(fn: (cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>) => void): void;
1128
991
  }
1129
992
 
1130
- declare type MultiRowSelectorOptions = {
1131
- getIdForIndex: (index: number) => string | number;
1132
- isRowDisabledAt: (index: number) => boolean;
1133
- };
1134
- declare class MultiRowSelector {
1135
- getIdForIndex: MultiRowSelectorOptions['getIdForIndex'];
1136
- isRowDisabledAt: MultiRowSelectorOptions['isRowDisabledAt'];
1137
- multiSelectStartIndex: number;
1138
- multiSelectEndIndex?: number;
1139
- _rowSelectionState: RowSelectionState;
1140
- constructor(options: MultiRowSelectorOptions);
1141
- set rowSelectionState(rowSelectionState: RowSelectionState);
1142
- get rowSelectionState(): RowSelectionState;
1143
- private selectRange;
1144
- private deselectRange;
1145
- /**
1146
- * This is the single click, without any modifier
1147
- */
1148
- resetClick(index: number): void;
993
+ /**
994
+ * This is only used for rendering Detail rows in a master-detail DataGrid
995
+ */
996
+ interface ListRowInterface {
997
+ debugId: string;
998
+ update(content: Renderable): void;
999
+ getElement(): HTMLElement | null;
1000
+ getNode(): Renderable;
1001
+ destroy(): void;
1002
+ onMount(callback: (row: ListRowInterface) => void): void;
1003
+ isMounted(): boolean;
1004
+ ref: (htmlElement: HTMLElement) => void;
1005
+ }
1006
+
1007
+ declare class ListRowManager extends Logger {
1008
+ private pool;
1009
+ private indexToRow;
1010
+ private rowToIndex;
1011
+ debugId: string;
1012
+ private offRemoveRow;
1013
+ constructor(debugId: string);
1014
+ private onRemoveRow;
1015
+ set poolSize(rowCount: number);
1016
+ get poolSize(): number;
1017
+ getDetachedRow(): ListRowInterface;
1149
1018
  /**
1150
- * This is the click with ctrl/cmd key pressed
1151
- * @param index
1019
+ * This gets a row for a given position.
1020
+ * If there's already a row currently attached at that position, it will be returned.
1021
+ *
1022
+ * Otherwise, we return another row.
1023
+ * @param rowIndex
1152
1024
  */
1153
- singleAddClick(index: number): void;
1154
- multiSelectClick(index: number): void;
1025
+ getRowFor(rowIndex: number): ListRowInterface;
1026
+ private setRowIndexInList;
1027
+ detachStartingWith(rowIndex: number): void;
1028
+ getRowAt(rowPos: number): ListRowInterface | undefined;
1029
+ getRowIndex(row: ListRowInterface): number | undefined;
1030
+ isRowAttached(row: ListRowInterface): boolean;
1031
+ isRowAttachedAt(rowIndex: number): boolean;
1032
+ getList(): Renderable[];
1033
+ getAttachedCount(): number;
1034
+ forEachAttachedRow(fn: (row: ListRowInterface) => void): void;
1035
+ getAttachedIndexes(): number[];
1036
+ getAllRows(): ListRowInterface[];
1037
+ detachRowAt(rowIndex: number): void;
1038
+ detachRow(row: ListRowInterface): void;
1039
+ renderNodeAtRow(node: Renderable, row: ListRowInterface, rowIndex: number): ListRowInterface;
1040
+ makeDetachedRowsEmpty(): void;
1041
+ onRowAttachmentChange(callback: (row: ListRowInterface, attached: boolean) => void): VoidFn;
1042
+ withDetachedRows(fn: (row: ListRowInterface) => void): void;
1043
+ destroy(): void;
1044
+ reset(): void;
1155
1045
  }
1156
1046
 
1157
- interface InfiniteTableComputedValues<T> {
1158
- scrollbars: {
1159
- vertical: boolean;
1160
- horizontal: boolean;
1047
+ declare class GridRenderer extends Logger {
1048
+ protected brain: MatrixBrain;
1049
+ debugId: string;
1050
+ protected destroyed: boolean;
1051
+ private scrolling;
1052
+ cellHoverClassNames: string[];
1053
+ cellDetachedClassNames: string[];
1054
+ protected cellManager: GridCellManager<{
1055
+ renderRowIndex: number;
1056
+ renderColIndex: number;
1057
+ }>;
1058
+ protected rowManager: ListRowManager;
1059
+ private lastEnteredRow;
1060
+ private lastExitedRow;
1061
+ private onDestroy;
1062
+ private hoverRowUpdatesInProgress;
1063
+ private infiniteNode;
1064
+ private getInfiniteNode;
1065
+ setDetailTransform: (element: HTMLElement, _rowIndex: number, { y, scrollTop, scrollLeft, }: {
1066
+ y: number;
1067
+ scrollTop?: boolean | undefined;
1068
+ scrollLeft?: number | undefined;
1069
+ }) => void;
1070
+ setTransform: (element: HTMLElement, _rowIndex: number, colIndex: number, { x, y, scrollLeft, scrollTop, }: {
1071
+ x: number;
1072
+ y: number;
1073
+ scrollLeft?: boolean | undefined;
1074
+ scrollTop?: boolean | undefined;
1075
+ }, zIndex: number | 'auto' | undefined | null) => void;
1076
+ constructor(brain: MatrixBrain, debugId?: string);
1077
+ private onCellAttached;
1078
+ private onCellDetached;
1079
+ private onRowAttached;
1080
+ private onRowDetached;
1081
+ getFullyVisibleRowsRange: () => {
1082
+ start: number;
1083
+ end: number;
1084
+ } | null;
1085
+ getScrollPositionForScrollRowIntoView: (rowIndex: number, config?: {
1086
+ scrollAdjustPosition?: ScrollAdjustPosition;
1087
+ offset?: number;
1088
+ colIndex?: number;
1089
+ }) => ScrollPosition | null;
1090
+ getScrollPositionForScrollColumnIntoView: (colIndex: number, config?: {
1091
+ scrollAdjustPosition?: ScrollAdjustPosition;
1092
+ offset?: number;
1093
+ } & HorizontalLayoutColVisibilityOptions) => ScrollPosition | null;
1094
+ getScrollPositionForScrollCellIntoView: (rowIndex: number, colIndex: number, config?: {
1095
+ rowScrollAdjustPosition?: ScrollAdjustPosition;
1096
+ colScrollAdjustPosition?: ScrollAdjustPosition;
1097
+ scrollAdjustPosition?: ScrollAdjustPosition;
1098
+ offsetTop: number;
1099
+ offsetLeft: number;
1100
+ }) => ScrollPosition | null;
1101
+ isRowFullyVisible: (rowIndex: number, offsetMargin?: number) => boolean;
1102
+ isRowVisible: (rowIndex: number, offsetMargin?: number) => boolean;
1103
+ isRowRendered: (rowIndex: number) => boolean;
1104
+ isCellVisible: (rowIndex: number, colIndex: number) => boolean;
1105
+ isCellFullyVisible: (rowIndex: number, colIndex: number, opts?: HorizontalLayoutColVisibilityOptions | undefined) => boolean;
1106
+ isColumnFullyVisible: (colIndex: number, offsetMargin?: number, opts?: HorizontalLayoutColVisibilityOptions | undefined) => boolean;
1107
+ isColumnVisible: (colIndex: number, offsetMargin?: number, opts?: HorizontalLayoutColVisibilityOptions | undefined) => boolean;
1108
+ isCellRendered: (rowIndex: number, colIndex: number, opts?: HorizontalLayoutColVisibilityOptions | undefined) => boolean;
1109
+ isColumnRendered: (colIndex: number, opts?: HorizontalLayoutColVisibilityOptions | undefined) => boolean;
1110
+ getExtraSpanCellsForRange: (range: TableRenderRange) => [number, number][];
1111
+ isCellRenderedAndMappedCorrectly(row: number, col: number): {
1112
+ rendered: boolean;
1113
+ mapped: boolean;
1161
1114
  };
1162
- multiRowSelector: MultiRowSelector;
1163
- multiCellSelector: MultiCellSelector;
1164
- computedRowHeight: number | ((index: number) => number);
1165
- computedRowSizeCacheForDetails: RowSizeCache | undefined;
1166
- renderSelectionCheckBox: boolean;
1167
- rowspan?: MatrixBrainOptions['rowspan'];
1168
- computedPinnedStartOverflow: boolean;
1169
- computedPinnedEndOverflow: boolean;
1170
- computedPinnedStartColumns: InfiniteTableComputedColumn<T>[];
1171
- computedPinnedEndColumns: InfiniteTableComputedColumn<T>[];
1172
- computedUnpinnedColumns: InfiniteTableComputedColumn<T>[];
1173
- computedVisibleColumns: InfiniteTableComputedColumn<T>[];
1174
- computedVisibleColumnsMap: Map<string, InfiniteTableComputedColumn<T>>;
1175
- computedColumnsMap: Map<string, InfiniteTableComputedColumn<T>>;
1176
- computedColumnsMapInInitialOrder: Map<string, InfiniteTableComputedColumn<T>>;
1177
- computedColumnOrder: InfiniteTablePropColumnOrderNormalized;
1178
- computedPinnedStartColumnsWidth: number;
1179
- computedPinnedStartWidth: number;
1180
- computedPinnedEndColumnsWidth: number;
1181
- computedPinnedEndWidth: number;
1182
- computedUnpinnedColumnsWidth: number;
1183
- computedUnpinnedOffset: number;
1184
- computedPinnedEndOffset: number;
1185
- computedRemainingSpace: number;
1186
- fieldsToColumn: Map<keyof T, InfiniteTableComputedColumn<T>>;
1187
- toggleGroupRow: (groupKeys: any[]) => void;
1188
- columnSize: (colIndex: number) => number;
1115
+ renderRange(range: TableRenderRange, { renderCell, renderDetailRow, force, onRender }: RenderRangeOptions): Renderable[];
1116
+ getFixedRanges: (currentRenderRange: TableRenderRange) => TableRenderRange[];
1117
+ protected isCellFixed: (rowIndex: number, colIndex: number) => {
1118
+ row: FixedPosition;
1119
+ col: FixedPosition;
1120
+ };
1121
+ protected isCellCovered: (rowIndex: number, colIndex: number) => false | number[];
1122
+ private renderDetailRowAtElement;
1123
+ protected getCellRealCoordinates(rowIndex: number, colIndex: number): {
1124
+ rowIndex: number;
1125
+ colIndex: number;
1126
+ };
1127
+ protected renderCellAt(rowIndex: number, colIndex: number, cell: GridCellInterface, renderCell: TableRenderCellFn): void;
1128
+ protected onMouseEnter: (rowIndex: number) => void;
1129
+ private addHoverClass;
1130
+ protected onMouseLeave: (rowIndex: number) => void;
1131
+ private removeHoverClass;
1132
+ protected updateHoverClassNamesForRow: (rowIndex: number) => void;
1133
+ protected updateElementPosition: (cell: GridCellInterface<{
1134
+ renderRowIndex: number;
1135
+ renderColIndex: number;
1136
+ }>, options?: {
1137
+ hidden: boolean;
1138
+ rowspan: number;
1139
+ colspan: number;
1140
+ } | undefined) => void;
1141
+ private updateDetailElementPosition;
1142
+ private onScrollStart;
1143
+ private onScrollStop;
1144
+ adjustFixedElementsOnScroll: (scrollPosition?: ScrollPosition) => void;
1145
+ destroy: () => void;
1146
+ reset(): void;
1189
1147
  }
1190
1148
 
1191
- declare type PointCoords = {
1192
- top: number;
1193
- left: number;
1149
+ declare type CellPositionByIndex = {
1150
+ rowIndex: number;
1151
+ colIndex: number;
1194
1152
  };
1195
-
1196
- declare type ForwardPropsToStateFnResult<TYPE_PROPS, TYPE_RESULT, COMPONENT_SETUP_STATE> = {
1197
- [propName in keyof TYPE_PROPS & keyof TYPE_RESULT]: 1 | ((value: TYPE_PROPS[propName], setupState: COMPONENT_SETUP_STATE) => TYPE_RESULT[propName]);
1153
+ declare type MultiSelectRangeOptions = {
1154
+ horizontalLayout: false;
1155
+ } | {
1156
+ horizontalLayout: true;
1157
+ rowsPerPage: number;
1158
+ columnsPerSet: number;
1198
1159
  };
1199
- declare type ComponentStateRootConfig<T_PROPS, COMPONENT_MAPPED_STATE, COMPONENT_SETUP_STATE = {}, COMPONENT_DERIVED_STATE = {}, T_ACTIONS = {}, T_PARENT_STATE = {}> = {
1200
- debugName?: string;
1201
- initSetupState?: (props: T_PROPS) => COMPONENT_SETUP_STATE;
1202
- layoutEffect?: boolean;
1203
- forwardProps?: (setupState: COMPONENT_SETUP_STATE, props: T_PROPS) => ForwardPropsToStateFnResult<T_PROPS, COMPONENT_MAPPED_STATE, COMPONENT_SETUP_STATE>;
1204
- allowedControlledPropOverrides?: Record<keyof T_PROPS, true>;
1205
- interceptActions?: ComponentInterceptedActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>;
1206
- mappedCallbacks?: ComponentMappedCallbacks<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>;
1207
- onPropChange?: (params: {
1208
- name: keyof T_PROPS;
1209
- oldValue: any;
1210
- newValue: any;
1211
- }, props: T_PROPS, actions: ComponentStateActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>, state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & Partial<COMPONENT_DERIVED_STATE>) => void;
1212
- onPropsChange?: (newPropValues: {
1213
- [k in keyof T_PROPS]?: {
1214
- newValue: T_PROPS[k];
1215
- oldValue: T_PROPS[k];
1216
- };
1217
- }, props: T_PROPS, actions: ComponentStateActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>, state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & Partial<COMPONENT_DERIVED_STATE>) => void;
1218
- mapPropsToState?: (params: {
1219
- props: T_PROPS;
1220
- state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & Partial<COMPONENT_DERIVED_STATE>;
1221
- oldState: null | (COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & Partial<COMPONENT_DERIVED_STATE>);
1222
- parentState: T_PARENT_STATE | null;
1223
- }) => COMPONENT_DERIVED_STATE;
1224
- concludeReducer?: (params: {
1225
- previousState: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & COMPONENT_DERIVED_STATE;
1226
- state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & COMPONENT_DERIVED_STATE;
1227
- updatedProps: Partial<T_PROPS> | null;
1228
- parentState: T_PARENT_STATE | null;
1229
- }) => COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & COMPONENT_DERIVED_STATE;
1230
- getReducerActions?: (dispatch: React$1.Dispatch<any>) => T_ACTIONS;
1231
- getParentState?: () => T_PARENT_STATE;
1232
- cleanup?: (state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & COMPONENT_DERIVED_STATE) => void;
1233
- onControlledPropertyChange?: (name: string, newValue: any, oldValue: any) => void | ((value: any, oldValue: any) => any);
1160
+
1161
+ declare type SubscriptionCallbackOnChangeFn<T> = (node: T | null) => void;
1162
+ interface SubscriptionCallback<T> {
1163
+ (node: T, callback?: () => void): void;
1164
+ get: () => T | null;
1165
+ destroy: VoidFn;
1166
+ onChange: (fn: SubscriptionCallbackOnChangeFn<T>) => VoidFn;
1167
+ }
1168
+
1169
+ declare class ScrollListener {
1170
+ private scrollPosition;
1171
+ private onScrollFns;
1172
+ getScrollPosition: () => ScrollPosition;
1173
+ onScroll: (fn: OnScrollFn) => () => void;
1174
+ setScrollPosition: (scrollPosition: ScrollPosition) => void;
1175
+ private notifyScrollChange;
1176
+ destroy: () => void;
1177
+ }
1178
+
1179
+ declare type InfiniteTableBaseCellProps<T> = {
1180
+ column: InfiniteTableComputedColumn<T>;
1181
+ align?: InfiniteTableColumnAlignValues;
1182
+ horizontalLayoutPageIndex: number | null;
1183
+ rowId?: any;
1184
+ renderChildren: () => Renderable;
1185
+ width: number;
1186
+ cssEllipsis?: boolean;
1187
+ contentStyle?: CSSProperties;
1188
+ contentClassName?: string;
1189
+ virtualized?: boolean;
1190
+ skipColumnShifting?: boolean;
1191
+ beforeChildren?: Renderable;
1192
+ afterChildren?: Renderable;
1193
+ cssPosition?: CSSProperties['position'];
1194
+ domRef?: React.RefCallback<HTMLElement>;
1234
1195
  };
1235
- declare function buildManagedComponent<T_PROPS, COMPONENT_MAPPED_STATE extends object, COMPONENT_SETUP_STATE extends object = {}, COMPONENT_DERIVED_STATE extends object = {}, T_ACTIONS = {}, T_PARENT_STATE = {}>(config: ComponentStateRootConfig<T_PROPS, COMPONENT_MAPPED_STATE, COMPONENT_SETUP_STATE, COMPONENT_DERIVED_STATE, T_ACTIONS, T_PARENT_STATE>): {
1236
- ManagedComponentContextProvider: React$1.NamedExoticComponent<T_PROPS & {
1237
- children: React$1.ReactNode;
1238
- }>;
1239
- useManagedComponent: (props: T_PROPS) => {
1240
- contextValue: {
1241
- componentState: COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE;
1242
- componentActions: ComponentStateGeneratedActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>;
1243
- getComponentState: () => COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE;
1244
- replaceState: (newState: COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE) => void;
1245
- assignState: (newState: Partial<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>) => void;
1246
- };
1247
- ContextComponent: React$1.Context<ManagedComponentStateContextValue<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE, ComponentStateGeneratedActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>>>;
1248
- };
1196
+ declare type InfiniteTableCellProps<T> = ({
1197
+ cellType: 'header';
1198
+ } & InfiniteTableBaseCellProps<T>) | ({
1199
+ cellType: 'body';
1200
+ } & InfiniteTableBaseCellProps<T>);
1201
+
1202
+ declare type DiscriminatedUnion<A, B> = (A & {
1203
+ [K in keyof B]?: undefined;
1204
+ }) | (B & {
1205
+ [K in keyof A]?: undefined;
1206
+ });
1207
+ declare type KeyOfNoSymbol<T> = Exclude<keyof T, Symbol>;
1208
+ /**
1209
+ * Restrict using either exclusively the keys of T or exclusively the keys of U.
1210
+ *
1211
+ * No unique keys of T can be used simultaneously with any unique keys of U.
1212
+ *
1213
+ * @example
1214
+ *```
1215
+ * const myVar: XOR<T, U>
1216
+ *```
1217
+ *
1218
+ * @see https://github.com/maninak/ts-xor/tree/master#description
1219
+ */
1220
+ declare type XOR<T, U> = T | U extends object ? Prettify<Without<T, U> & U> | Prettify<Without<U, T> & T> : T | U;
1221
+ /**
1222
+ * Useful if applying XOR on more than 2 types.
1223
+ * It comes with the penalty of having the types wrapped in an array
1224
+ *
1225
+ * @example
1226
+ * ```
1227
+ * AllXOR<[
1228
+ * { a: AModule },
1229
+ * { b: BModule },
1230
+ * { c: CModule },
1231
+ * { d: DModule }
1232
+ * ]>
1233
+ * ```
1234
+ * @see https://github.com/Microsoft/TypeScript/issues/14094#issuecomment-723571692
1235
+ */
1236
+ declare type AllXOR<T extends any[]> = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? AllXOR<[XOR<A, B>, ...Rest]> : never;
1237
+ /**
1238
+ * Get the keys of T without any keys of U.
1239
+ */
1240
+ declare type Without<T, U> = {
1241
+ [P in Exclude<keyof T, keyof U>]?: never;
1249
1242
  };
1250
- declare function useManagedComponentState<COMPONENT_STATE>(): ManagedComponentStateContextValue<COMPONENT_STATE, ComponentStateGeneratedActions<COMPONENT_STATE>>;
1243
+ /**
1244
+ * Resolve mapped types and show the derived keys and their types when hovering in
1245
+ * IDEs, instead of just showing the names those mapped types are defined with.
1246
+ */
1247
+ declare type Prettify<T> = {
1248
+ [K in keyof T]: T[K];
1249
+ } & {};
1251
1250
 
1252
- declare type NodePath$1<PRIMARY_KEY_TYPE = any> = PRIMARY_KEY_TYPE[];
1253
- declare type TreeExpandStateObject_ByPath<PRIMARY_KEY_TYPE = any> = {
1254
- expandedPaths: NodePath$1<PRIMARY_KEY_TYPE>[];
1255
- collapsedPaths: NodePath$1<PRIMARY_KEY_TYPE>[];
1256
- defaultExpanded: boolean;
1257
- collapsedIds?: never;
1258
- expandedIds?: never;
1259
- } | {
1260
- defaultExpanded: true;
1261
- collapsedPaths: NodePath$1<PRIMARY_KEY_TYPE>[];
1262
- expandedPaths?: NodePath$1<PRIMARY_KEY_TYPE>[];
1263
- collapsedIds?: never;
1264
- expandedIds?: never;
1265
- } | {
1266
- defaultExpanded: false;
1267
- collapsedPaths?: NodePath$1<PRIMARY_KEY_TYPE>[];
1268
- expandedPaths: NodePath$1<PRIMARY_KEY_TYPE>[];
1269
- collapsedIds?: never;
1270
- expandedIds?: never;
1251
+ declare type MenuIconProps = {
1252
+ lineWidth?: number;
1253
+ lineStyle?: React$1.CSSProperties;
1254
+ style?: React$1.CSSProperties;
1255
+ className?: string;
1256
+ domProps?: React$1.HTMLAttributes<HTMLDivElement>;
1257
+ reserveSpaceWhenHidden?: boolean;
1258
+ menuVisible?: boolean;
1259
+ children?: React$1.ReactNode;
1271
1260
  };
1272
- declare type TreeExpandStateObject_ById<PRIMARY_KEY_TYPE = any> = {
1273
- defaultExpanded: boolean;
1274
- expandedIds: PRIMARY_KEY_TYPE[];
1275
- collapsedIds: PRIMARY_KEY_TYPE[];
1276
- expandedPaths?: never;
1277
- collapsedPaths?: never;
1278
- } | {
1279
- defaultExpanded: true;
1280
- collapsedIds: PRIMARY_KEY_TYPE[];
1281
- expandedIds?: PRIMARY_KEY_TYPE[];
1282
- expandedPaths?: never;
1283
- collapsedPaths?: never;
1261
+ declare function MenuIcon(props: MenuIconProps): React$1.JSX.Element;
1262
+
1263
+ declare type InfiniteTableToggleGroupRowFn = (groupKeys: any[]) => void;
1264
+ declare type InfiniteTableToggleTreeNodeFn = (nodePath: any[]) => void;
1265
+ declare type InfiniteTableToggleRowDetailsFn = (id: any) => void;
1266
+ declare type InfiniteTableSelectRowFn = (id: any) => void;
1267
+ declare type InfiniteTableColumnHeaderParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
1268
+ dragging: boolean;
1269
+ column: COL_TYPE;
1270
+ columnsMap: Map<string, COL_TYPE>;
1271
+ columnSortInfo: DataSourceSingleSortInfo<DATA_TYPE> | null;
1272
+ columnFilterValue: DataSourceFilterValueItem<DATA_TYPE> | null;
1273
+ selectionMode: DataSourcePropSelectionMode;
1274
+ horizontalLayoutPageIndex: null | number;
1275
+ allRowsSelected: boolean;
1276
+ someRowsSelected: boolean;
1277
+ filtered: boolean;
1278
+ api: InfiniteTableApi<DATA_TYPE>;
1279
+ dataSourceApi: DataSourceApi<DATA_TYPE>;
1280
+ columnApi: InfiniteTableColumnApi<DATA_TYPE>;
1281
+ renderBag: {
1282
+ all?: Renderable;
1283
+ header: string | number | Renderable;
1284
+ sortIcon?: Renderable;
1285
+ menuIcon?: Renderable;
1286
+ menuIconProps?: MenuIconProps;
1287
+ filterIcon?: Renderable;
1288
+ filterEditor?: Renderable;
1289
+ selectionCheckBox?: Renderable;
1290
+ };
1291
+ } & ({
1292
+ domRef: InfiniteTableCellProps<DATA_TYPE>['domRef'];
1293
+ htmlElementRef: React__default.MutableRefObject<HTMLElement | null>;
1294
+ insideColumnMenu: false;
1284
1295
  } | {
1285
- defaultExpanded: false;
1286
- collapsedIds?: PRIMARY_KEY_TYPE[];
1287
- expandedIds: PRIMARY_KEY_TYPE[];
1288
- expandedPaths?: never;
1289
- collapsedPaths?: never;
1296
+ insideColumnMenu: true;
1297
+ });
1298
+ declare type InfiniteTableColumnRenderBag = {
1299
+ value: string | number | Renderable;
1300
+ groupIcon?: Renderable;
1301
+ treeIcon?: Renderable;
1302
+ rowDetailsIcon?: Renderable;
1303
+ all?: Renderable;
1304
+ selectionCheckBox?: Renderable;
1290
1305
  };
1291
- declare type TreeExpandStateObject<PRIMARY_KEY_TYPE = any> = TreeExpandStateObject_ByPath<PRIMARY_KEY_TYPE> | TreeExpandStateObject_ById<PRIMARY_KEY_TYPE>;
1292
- declare type TreeExpandStateMode = 'id' | 'path';
1293
- declare class TreeExpandState<PRIMARY_KEY_TYPE = any> {
1294
- collapsedPathsMap: DeepMap<PRIMARY_KEY_TYPE, true>;
1295
- expandedPathsMap: DeepMap<PRIMARY_KEY_TYPE, true>;
1296
- collapsedIdsMap: Map<PRIMARY_KEY_TYPE, true>;
1297
- expandedIdsMap: Map<PRIMARY_KEY_TYPE, true>;
1298
- private _mode;
1299
- get mode(): TreeExpandStateMode;
1300
- defaultExpanded: boolean;
1301
- constructor(clone?: TreeExpandStateObject | TreeExpandState);
1302
- reset(): void;
1303
- destroy(): void;
1304
- expandAll: () => void;
1305
- collapseAll: () => void;
1306
- expandNode(nodePathOrId: PRIMARY_KEY_TYPE | NodePath$1<PRIMARY_KEY_TYPE>): void;
1307
- collapseNode(nodePathOrId: PRIMARY_KEY_TYPE | NodePath$1<PRIMARY_KEY_TYPE>): void;
1308
- setNodeExpanded(nodePathOrId: PRIMARY_KEY_TYPE | NodePath$1<PRIMARY_KEY_TYPE>, expanded: boolean): void;
1309
- isNodeExpandedByPath(nodePath: NodePath$1<PRIMARY_KEY_TYPE>): boolean;
1310
- isNodeExpandedById(id: PRIMARY_KEY_TYPE): boolean;
1311
- isNodeExpanded(nodePathOrId: PRIMARY_KEY_TYPE | NodePath$1<PRIMARY_KEY_TYPE>): boolean;
1312
- update(stateObject: TreeExpandStateObject): void;
1313
- getState(): TreeExpandStateObject;
1314
- }
1315
-
1316
- declare type OnNodeStateChangeParam = DataSourceCallback_BaseParam<any> & {};
1317
- declare type TreeDataSourceOnlyProps<T> = {
1318
- nodesKey?: string;
1319
- treeSelection?: DataSourcePropTreeSelection;
1320
- treeFilterFunction?: DataSourcePropTreeFilterFunction<T>;
1321
- defaultTreeSelection?: DataSourcePropTreeSelection;
1322
- treeExpandState?: TreeExpandStateValue;
1323
- defaultTreeExpandState?: TreeExpandStateValue;
1324
- onTreeExpandStateChange?: (treeExpandState: TreeExpandStateObject<any>, params: {
1325
- dataSourceApi: DataSourceApi<T>;
1326
- nodePath: NodePath$1 | null;
1327
- nodeState: 'collapsed' | 'expanded';
1328
- }) => void;
1329
- onTreeDataMutations?: ({ dataArray, timestamp, treeMutations, nodesKey, }: {
1330
- nodesKey: keyof T | any;
1331
- dataArray: DataSourceState<T>['originalDataArray'];
1332
- timestamp: number;
1333
- treeMutations: NonUndefined<DataSourceState<T>['originalDataArrayChangedInfo']['treeMutations']>;
1334
- }) => void;
1335
- isNodeSelected?: DataSourcePropIsNodeSelected<T>;
1336
- isNodeSelectable?: DataSourcePropIsNodeSelectable<T>;
1337
- isNodeReadOnly?: DataSourcePropIsNodeReadOnly<T>;
1338
- /**
1339
- * Called when a node is expanded. Not called when treeApi.expandAll is called.
1340
- */
1341
- onNodeExpand?: (node: NodePath$1, param: OnNodeStateChangeParam) => void;
1342
- /**
1343
- * Called when a node is collapsed. Not called when treeApi.collapseAll is called.
1344
- */
1345
- onNodeCollapse?: (node: NodePath$1, param: OnNodeStateChangeParam) => void;
1346
- } & ({
1347
- selectionMode?: 'multi-row';
1348
- treeSelection?: DataSourcePropTreeSelection_MultiNode;
1349
- defaultTreeSelection?: DataSourcePropTreeSelection_MultiNode;
1350
- onTreeSelectionChange?: DataSourcePropOnTreeSelectionChange_MultiNode;
1351
- } | {
1352
- selectionMode?: 'single-row';
1353
- treeSelection?: DataSourcePropTreeSelection_SingleNode;
1354
- defaultTreeSelection?: DataSourcePropTreeSelection_SingleNode;
1355
- onTreeSelectionChange?: DataSourcePropOnTreeSelectionChange_SingleNode;
1356
- } | {
1357
- selectionMode?: 'single-cell';
1358
- cellSelection?: DataSourcePropCellSelection_SingleCell;
1359
- defaultCellSelection?: DataSourcePropCellSelection_SingleCell;
1360
- onCellSelectionChange?: DataSourcePropOnCellSelectionChange_SingleCell;
1361
- } | {
1362
- selectionMode?: 'multi-cell';
1363
- cellSelection?: DataSourcePropCellSelection_MultiCell;
1364
- defaultCellSelection?: DataSourcePropCellSelection_MultiCell;
1365
- onCellSelectionChange?: DataSourcePropOnCellSelectionChange_MultiCell;
1366
- } | {
1367
- selectionMode?: false;
1368
- }) & ({
1369
- isNodeCollapsed?: DataSourcePropIsNodeExpanded<T>;
1370
- isNodeExpanded?: never;
1371
- } | {
1372
- isNodeExpanded?: DataSourcePropIsNodeExpanded<T>;
1373
- isNodeCollapsed?: never;
1374
- });
1375
- declare type DataSourcePropsNotAvailableInTreeDataSource = keyof Pick<DataSourceProps<any>, 'groupBy' | 'defaultGroupBy' | 'nodesKey' | 'defaultGroupRowsState' | 'groupRowsState' | 'onGroupRowsStateChange' | 'onGroupByChange' | 'collapseGroupRowsOnDataFunctionChange' | 'livePagination' | 'onLivePaginationCursorChange' | 'groupMode' | 'filterFunction' | 'onPivotByChange' | 'pivotBy' | 'defaultPivotBy' | 'selectionMode' | 'rowSelection' | 'defaultRowSelection'>;
1376
- declare type TreeDataSourceProps<T> = Omit<DataSourceProps<T>, DataSourcePropsNotAvailableInTreeDataSource> & TreeDataSourceOnlyProps<T>;
1377
-
1378
- declare type NodePath = any[];
1379
- declare type TreeSelectionStateObject = {
1380
- selectedPaths: NodePath;
1381
- deselectedPaths: NodePath;
1382
- defaultSelection: boolean;
1383
- } | {
1384
- defaultSelection: true;
1385
- deselectedPaths: NodePath;
1386
- selectedPaths?: NodePath;
1387
- } | {
1388
- defaultSelection: false;
1389
- selectedPaths: NodePath;
1390
- deselectedPaths?: NodePath;
1391
- };
1392
- declare type TreeSelectionStateConfig<_T = any> = {
1393
- treeDeepMap: DeepMap<any, DeepMapTreeValueType<any, any>>;
1394
- };
1395
- declare type GetTreeSelectionStateConfig<T> = () => TreeSelectionStateConfig<T>;
1396
- declare type NodeSelectionState = {
1397
- selected: boolean | null;
1398
- selectedCount: number;
1399
- deselectedCount: number;
1400
- leafCount: number;
1401
- };
1402
- declare class TreeSelectionState<T = any> {
1403
- selectedPaths: NodePath[] | null;
1404
- deselectedPaths: NodePath[] | null;
1405
- defaultSelection: boolean;
1406
- selectionMap: DeepMap<NodePath, boolean>;
1407
- cache: DeepMap<NodePath, NodeSelectionState>;
1408
- getConfig: GetTreeSelectionStateConfig<T>;
1409
- getTreeDeepMap(): DeepMap<any, DeepMapTreeValueType<any, any>>;
1410
- isLeafNode(nodePath: NodePath): boolean;
1411
- getLeafNodesCount(nodePath: NodePath): number;
1412
- static from<T>(treeSelectionState: TreeSelectionStateObject, getConfig: GetTreeSelectionStateConfig<T>): TreeSelectionState<T>;
1413
- constructor(state: TreeSelectionStateObject | TreeSelectionState, getConfig: GetTreeSelectionStateConfig<T>);
1414
- setConfigFn(getConfig: GetTreeSelectionStateConfig<T>): void;
1415
- xcache(): void;
1416
- update(stateObject: TreeSelectionStateObject): void;
1417
- setSelectionForPath(nodePath: NodePath, selected: boolean): void;
1418
- getState(): TreeSelectionStateObject;
1419
- deselectAll(): void;
1420
- selectAll(): void;
1421
- isNodeSelected(nodePath: NodePath): boolean | null;
1422
- private isSelfSelected;
1423
- private cacheIt;
1424
- private getSelectionStateForNode;
1425
- private isPathSelected;
1426
- private getNodeBooleanSelectionStateFromParent;
1427
- setNodeSelection(nodePath: NodePath, selected: boolean): void;
1428
- selectNode(nodePath: NodePath): void;
1429
- deselectNode(nodePath: any[]): void;
1430
- toggleNodeSelection(nodePath: NodePath): void;
1431
- getSelectedCount(): number;
1432
- getDeselectedCount(): number;
1433
- getSelectionCountFor(nodePath?: NodePath): {
1434
- selectedCount: number;
1435
- deselectedCount: number;
1436
- };
1437
- destroy(): void;
1438
- }
1439
-
1440
- declare type DataSourceStateRestoreForDetail<T> = {
1441
- originalDataArray: DataSourceState<T>['originalDataArray'] | undefined;
1442
- groupBy: DataSourceState<T>['groupBy'] | undefined;
1443
- groupRowsState: DataSourceState<T>['groupRowsState'] | undefined;
1444
- pivotBy: DataSourceState<T>['pivotBy'] | undefined;
1445
- sortInfo: DataSourceState<T>['sortInfo'] | undefined;
1446
- filterValue: DataSourceState<T>['filterValue'] | undefined;
1447
- livePaginationCursor: DataSourceState<T>['livePaginationCursor'] | undefined;
1306
+ declare type InfiniteTableColumnRenderParamBase<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
1307
+ domRef: InfiniteTableCellProps<DATA_TYPE>['domRef'];
1308
+ htmlElementRef: React__default.MutableRefObject<HTMLElement | null>;
1309
+ rowIndexInHorizontalLayoutPage: null | number;
1310
+ horizontalLayoutPageIndex: null | number;
1311
+ value: string | number | Renderable;
1312
+ align: InfiniteTableColumnAlignValues;
1313
+ verticalAlign: InfiniteTableColumnVerticalAlignValues;
1314
+ renderBag: InfiniteTableColumnRenderBag;
1315
+ rowIndex: number;
1316
+ rowActive: boolean;
1317
+ api: InfiniteTableApi<DATA_TYPE>;
1318
+ dataSourceApi: DataSourceApi<DATA_TYPE>;
1319
+ editError?: Error;
1320
+ column: COL_TYPE;
1321
+ columnsMap: Map<string, COL_TYPE>;
1322
+ fieldsToColumn: Map<keyof DATA_TYPE, COL_TYPE>;
1323
+ groupByColumn?: InfiniteTableComputedColumn<DATA_TYPE>;
1324
+ toggleCurrentGroupRow: () => void;
1325
+ toggleCurrentTreeNode: () => void;
1326
+ expandTreeNode: InfiniteTableToggleTreeNodeFn;
1327
+ collapseTreeNode: InfiniteTableToggleTreeNodeFn;
1328
+ toggleGroupRow: InfiniteTableToggleGroupRowFn;
1329
+ toggleTreeNode: InfiniteTableToggleTreeNodeFn;
1330
+ toggleCurrentTreeNodeSelection: () => void;
1331
+ toggleCurrentGroupRowSelection: () => void;
1332
+ toggleCurrentRowSelection: () => void;
1333
+ toggleCurrentRowDetails: () => void;
1334
+ toggleRowDetails: InfiniteTableToggleRowDetailsFn;
1335
+ expandRowDetails: InfiniteTableToggleRowDetailsFn;
1336
+ collapseRowDetails: InfiniteTableToggleRowDetailsFn;
1337
+ rowHasSelectedCells: boolean;
1338
+ cellSelected: boolean;
1339
+ selectCurrentRow: () => void;
1340
+ selectRow: InfiniteTableSelectRowFn;
1341
+ deselectRow: InfiniteTableSelectRowFn;
1342
+ deselectCurrentRow: () => void;
1343
+ selectCell: () => void;
1344
+ deselectCell: () => void;
1345
+ toggleRowSelection: InfiniteTableSelectRowFn;
1346
+ toggleGroupRowSelection: InfiniteTableToggleGroupRowFn;
1347
+ toggleTreeNodeSelection: InfiniteTableToggleTreeNodeFn;
1348
+ selectTreeNode: InfiniteTableToggleTreeNodeFn;
1349
+ deselectTreeNode: InfiniteTableToggleTreeNodeFn;
1350
+ selectionMode: DataSourcePropSelectionMode | undefined;
1351
+ rootGroupBy: DataSourceState<DATA_TYPE>['groupBy'];
1352
+ pivotBy?: DataSourceState<DATA_TYPE>['pivotBy'];
1448
1353
  };
1449
- declare type RowDetailCacheKey = string | number;
1450
- declare type RowDetailCacheEntry = {
1451
- all?: boolean;
1452
- groupBy?: boolean;
1453
- sortInfo?: boolean;
1454
- filterValue?: boolean;
1455
- data?: boolean;
1456
- livePaginationCursor?: boolean;
1457
- columnOrder?: boolean;
1354
+ declare type InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnRenderParamBase<DATA_TYPE, COL_TYPE> & InfiniteTableRowInfoDataDiscriminator<DATA_TYPE>;
1355
+ declare type InfiniteTableColumnRenderValueParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE>;
1356
+ declare type InfiniteTableColumnRowspanParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
1357
+ rowInfo: InfiniteTableRowInfo<DATA_TYPE>;
1358
+ data: DATA_TYPE | Partial<DATA_TYPE> | null;
1359
+ dataArray: InfiniteTableRowInfo<DATA_TYPE>[];
1360
+ rowIndex: number;
1361
+ column: COL_TYPE;
1458
1362
  };
1459
-
1460
- interface RowDetailCacheStorage<_K, T> {
1461
- add(key: any, value: T): void;
1462
- get(key: any): T | undefined;
1463
- delete(key: any): void;
1464
- has(key: any): boolean;
1465
- }
1466
- interface RowDetailCacheStorageForCurrentRow<T = RowDetailCacheEntry> {
1467
- add(value: T): void;
1468
- get(): T | undefined;
1469
- delete(): void;
1470
- has(): boolean;
1471
- }
1472
- declare class RowDetailCache<K = RowDetailCacheKey, T = RowDetailCacheEntry> implements RowDetailCacheStorage<K, T> {
1473
- private cacheStorage;
1474
- constructor(cache?: boolean | number);
1475
- add(key: K, value: T): void;
1476
- get(key: K): T | undefined;
1477
- delete(key: K): void;
1478
- has(key: K): boolean;
1479
- }
1480
-
1481
- declare type BooleanCollectionStateKeys<KeyType> = true | KeyType[];
1482
- declare type BooleanCollectionStateObject<KeyType> = {
1483
- positiveItems: BooleanCollectionStateKeys<KeyType>;
1484
- negativeItems: BooleanCollectionStateKeys<KeyType>;
1363
+ declare type InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
1364
+ isGroupRow: true;
1365
+ }) => Renderable | null;
1366
+ declare type InfiniteTableColumnRenderFunctionForParentNode<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
1367
+ isTreeNode: true;
1368
+ isParentNode: true;
1369
+ }) => Renderable | null;
1370
+ declare type InfiniteTableColumnRenderFunctionForLeafNode<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
1371
+ isTreeNode: true;
1372
+ isParentNode: false;
1373
+ }) => Renderable | null;
1374
+ declare type InfiniteTableColumnRenderFunctionForNode<DATA_TYPE, EXTRA_NODE_PARAMS = Partial<InfiniteTableRowInfoDataDiscriminator_ParentNode<DATA_TYPE> | InfiniteTableRowInfoDataDiscriminator_LeafNode<DATA_TYPE>>, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & EXTRA_NODE_PARAMS) => Renderable | null;
1375
+ declare type InfiniteTableColumnRenderFunctionForNormalRows<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
1376
+ isGroupRow: false;
1377
+ }) => Renderable | null;
1378
+ declare type InfiniteTableColumnRenderFunction<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE>) => Renderable | null;
1379
+ declare type InfiniteTableColumnHeaderRenderFunction<T> = (headerParams: InfiniteTableColumnHeaderParam<T>) => Renderable;
1380
+ declare type InfiniteTableColumnOrHeaderRenderFunction<T> = (params: (InfiniteTableColumnCellContextType<T> & {
1381
+ rowInfo: InfiniteTableRowInfo<T>;
1382
+ }) | (InfiniteTableColumnHeaderParam<T> & {
1383
+ rowInfo: null;
1384
+ })) => ReturnType<InfiniteTableColumnRenderFunction<T>>;
1385
+ declare type InfiniteTableColumnContentFocusable<T> = boolean | InfiniteTableColumnContentFocusableFn<T>;
1386
+ declare type InfiniteTableColumnEditable<T> = boolean | InfiniteTableColumnEditableFn<T>;
1387
+ declare type InfiniteTableColumnContentFocusableFn<T> = (params: InfiniteTableColumnContentFocusableParams<T>) => boolean;
1388
+ declare type InfiniteTableColumnEditableFn<T> = (params: InfiniteTableColumnEditableParams<T>) => boolean | Promise<boolean>;
1389
+ declare type InfiniteTableColumnContentFocusableParams<T> = InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T>;
1390
+ declare type InfiniteTableColumnEditableParams<T> = InfiniteTableColumnContentFocusableParams<T>;
1391
+ declare type InfiniteTableColumnGetValueToPersistParams<T> = InfiniteTableColumnEditableParams<T> & {
1392
+ initialValue: any;
1485
1393
  };
1486
- declare abstract class BooleanCollectionState<StateObject, KeyType> {
1487
- protected positiveMap?: Map<KeyType, true>;
1488
- protected negativeMap?: Map<KeyType, true>;
1489
- protected allNegative: boolean;
1490
- protected allPositive: boolean;
1491
- private initialState;
1492
- constructor(state: BooleanCollectionStateObject<KeyType> | BooleanCollectionState<StateObject, KeyType>);
1493
- abstract getPositiveFromState(state: StateObject): BooleanCollectionStateKeys<KeyType>;
1494
- abstract getNegativeFromState(state: StateObject): BooleanCollectionStateKeys<KeyType>;
1495
- abstract getState(): StateObject;
1496
- protected getInitialState(): BooleanCollectionStateObject<KeyType>;
1497
- destroy(): void;
1498
- private update;
1499
- protected isDefaultNegativeSelection(): boolean;
1500
- protected isDefaultPositiveSelection(): boolean;
1501
- protected areAllNegative(): boolean;
1502
- protected areAllPositive(): boolean;
1503
- protected makeAllNegative(): void;
1504
- protected makeAllPositive(): void;
1505
- protected isItemPositive(key: KeyType): boolean;
1506
- protected isItemNegative(key: KeyType): boolean;
1507
- protected setItemValue(key: KeyType, shouldMakePositive: boolean): void;
1508
- protected makeItemNegative(key: KeyType): void;
1509
- protected makeItemPositive(key: KeyType): void;
1510
- protected toggleItem(key: KeyType): void;
1511
- }
1512
-
1513
- declare class RowDetailState<KeyType = any> extends BooleanCollectionState<RowDetailStateObject<KeyType>, KeyType> {
1514
- constructor(state: RowDetailStateObject<KeyType> | RowDetailState<KeyType>);
1515
- getState(): RowDetailStateObject<KeyType>;
1516
- getPositiveFromState(state: RowDetailStateObject<KeyType>): true | KeyType[];
1517
- getNegativeFromState(state: RowDetailStateObject<KeyType>): true | KeyType[];
1518
- areAllCollapsed(): boolean;
1519
- areAllExpanded(): boolean;
1520
- collapseAll(): void;
1521
- expandAll(): void;
1522
- isRowDetailsExpanded: (key: KeyType) => boolean;
1523
- isRowDetailsCollapsed(key: KeyType): boolean;
1524
- setRowDetailsExpanded(key: KeyType, shouldExpand: boolean): void;
1525
- collapseRowDetails(key: KeyType): void;
1526
- expandRowDetails(key: KeyType): void;
1527
- toggleRowDetails(key: KeyType): void;
1528
- }
1529
-
1530
- declare type TableRenderCellFnParam = {
1531
- domRef: RefCallback<HTMLElement>;
1532
- rowIndex: number;
1533
- colIndex: number;
1534
- rowspan: number;
1535
- colspan: number;
1536
- hidden: boolean;
1537
- width: number;
1538
- height: number;
1539
- widthWithColspan: number;
1540
- heightWithRowspan: number;
1541
- rowFixed: FixedPosition;
1542
- colFixed: FixedPosition;
1543
- onMouseEnter: VoidFunction;
1544
- onMouseLeave: VoidFunction;
1545
- };
1546
- declare type TableRenderDetailRowFnParam = {
1547
- domRef: RefCallback<HTMLElement>;
1548
- rowIndex: number;
1549
- hidden: boolean;
1550
- height: number;
1551
- rowFixed: FixedPosition;
1552
- onMouseEnter: VoidFunction;
1553
- onMouseLeave: VoidFunction;
1554
- };
1555
- declare type TableRenderCellFn = (param: TableRenderCellFnParam) => Renderable;
1556
- declare type TableRenderDetailRowFn = (param: TableRenderDetailRowFnParam) => Renderable;
1557
- declare type RenderRangeOptions = {
1558
- force?: boolean;
1559
- renderCell: TableRenderCellFn;
1560
- renderDetailRow?: TableRenderDetailRowFn;
1561
- onRender: (items: Renderable[]) => void;
1562
- };
1563
- declare type HorizontalLayoutColVisibilityOptions = {
1564
- horizontalLayoutPageIndex?: number;
1565
- };
1566
-
1567
- interface GridCellInterface<T_ADDITIONAL_CELL_INFO = any> {
1568
- debugId: string;
1569
- update(content: Renderable, additionalInfo?: T_ADDITIONAL_CELL_INFO): void;
1570
- getElement(): HTMLElement | null;
1571
- getNode(): Renderable;
1572
- destroy(): void;
1573
- onMount(callback: (cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>) => void): void;
1574
- getAdditionalInfo(): T_ADDITIONAL_CELL_INFO | undefined;
1575
- isMounted(): boolean;
1576
- ref: (htmlElement: HTMLElement) => void;
1577
- }
1578
-
1579
- declare type CellPos = [number, number];
1580
-
1581
- declare class GridCellManager<T_ADDITIONAL_CELL_INFO> extends Logger {
1582
- private matrix;
1583
- private rowsWithCellsHistory;
1584
- private columnsWithCellsHistory;
1585
- private cellToMatrixPosition;
1586
- private pool;
1587
- debugId: string;
1588
- private offRemoveCell;
1589
- constructor(debugId: string);
1590
- private onRemoveCell;
1591
- set poolSize(cellCount: number);
1592
- get poolSize(): number;
1593
- getDetachedCell(): GridCellInterface<T_ADDITIONAL_CELL_INFO>;
1594
- private clearCellFromMatrix;
1595
- private addCellToMatrix;
1596
- private setCellPositionInMatrix;
1597
- renderNodeAtCell(node: Renderable, cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>, cellPos: CellPos, additionalInfo?: T_ADDITIONAL_CELL_INFO): GridCellInterface<T_ADDITIONAL_CELL_INFO>;
1598
- getCellPosition(cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>): CellPos | null;
1599
- getCellAt(cellPos: CellPos): GridCellInterface<T_ADDITIONAL_CELL_INFO> | undefined;
1600
- /**
1601
- * This gets a cell for a given position.
1602
- * If there's already a cell currently attached at that position, it will be returned.
1603
- *
1604
- * Otherwise, we try to return the most optimal cell to use for that position.
1605
- * If the optimise parameter is set to 'row', we will try to return a detached cell
1606
- * that was last rendered in that row.
1607
- *
1608
- * If the optimise parameter is set to 'column', we will try to return a detached cell
1609
- * that was last rendered in that column.
1610
- *
1611
- * @param cellPos [rowIndex, colIndex]
1612
- * @param optimise 'row' | 'column'
1613
- */
1614
- getCellFor(cellPos: CellPos, optimise: 'row' | 'column'): GridCellInterface<T_ADDITIONAL_CELL_INFO>;
1615
- isCellAttached(cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>): boolean;
1616
- isCellAttachedAt(cellPos: CellPos): boolean;
1617
- getMatrix(): Renderable[][];
1618
- getAllCells(): GridCellInterface<T_ADDITIONAL_CELL_INFO>[];
1619
- getCellsForRow(rowIndex: number): GridCellInterface<T_ADDITIONAL_CELL_INFO>[];
1620
- getOneAttachedCell(): any;
1621
- getRowsWithCells(): number[];
1622
- getColumnsWithCells(): number[];
1623
- isRowAttached(rowIndex: number): boolean;
1624
- isColumnAttached(colIndex: number): boolean;
1625
- detachRow(rowIndex: number): void;
1626
- detachCol(colIndex: number): void;
1627
- detachCell(cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>): boolean;
1628
- detachCells(cells: Set<GridCellInterface<T_ADDITIONAL_CELL_INFO>>): void;
1629
- detachRowsStartingWith(rowIndex: number): void;
1630
- detachColsStartingWith(colIndex: number): void;
1631
- detachCellsStartingAt(cellPos: CellPos): void;
1632
- detachCellAt(cellPos: CellPos): boolean;
1633
- onCellAttachmentChange(callback: (cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>, attached: boolean) => void): VoidFn;
1634
- getCellsOutsideRenderRange: (range: TableRenderRange) => Set<GridCellInterface<T_ADDITIONAL_CELL_INFO>>;
1635
- getCellFromListForRow(cells: Set<GridCellInterface<T_ADDITIONAL_CELL_INFO>>, rowIndex: number): GridCellInterface<T_ADDITIONAL_CELL_INFO> | undefined;
1636
- getCellFromListForColumn(cells: Set<GridCellInterface<T_ADDITIONAL_CELL_INFO>>, colIndex: number): GridCellInterface<T_ADDITIONAL_CELL_INFO> | undefined;
1637
- getCellCountInMatrix(): number;
1638
- destroy(): void;
1639
- reset(): void;
1640
- makeDetachedCellsEmpty(): void;
1641
- withDetachedCells(fn: (cell: GridCellInterface<T_ADDITIONAL_CELL_INFO>) => void): void;
1642
- }
1643
-
1394
+ declare type InfiniteTableColumnAlignValues = 'start' | 'center' | 'end';
1395
+ declare type InfiniteTableColumnVerticalAlignValues = 'start' | 'center' | 'end';
1396
+ declare type InfiniteTableColumnHeader<T> = Renderable | InfiniteTableColumnHeaderRenderFunction<T>;
1397
+ declare type InfiniteTableDataTypeNames = 'string' | 'number' | 'date' | string;
1398
+ declare type InfiniteTableColumnTypeNames = 'string' | 'number' | 'date' | string;
1399
+ declare type InfiniteTableColumnStylingFnParams<T> = {
1400
+ value: Renderable;
1401
+ column: InfiniteTableComputedColumn<T>;
1402
+ rowIndexInHorizontalLayoutPage: null | number;
1403
+ horizontalLayoutPageIndex: null | number;
1404
+ inEdit: boolean;
1405
+ rowHasSelectedCells: boolean;
1406
+ editError: InfiniteTableColumnRenderParamBase<T>['editError'];
1407
+ } & InfiniteTableRowInfoDataDiscriminator<T>;
1408
+ declare type InfiniteTableColumnStyleFn<T> = (params: InfiniteTableColumnStylingFnParams<T>) => undefined | React__default.CSSProperties;
1409
+ declare type InfiniteTableColumnHeaderClassNameFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | string;
1410
+ declare type InfiniteTableColumnHeaderStyleFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | React__default.CSSProperties;
1411
+ declare type InfiniteTableColumnClassNameFn<T> = (params: InfiniteTableColumnStylingFnParams<T>) => undefined | string;
1412
+ declare type InfiniteTableColumnStyle<T> = CSSProperties | InfiniteTableColumnStyleFn<T>;
1413
+ declare type InfiniteTableColumnAlign<T> = InfiniteTableColumnAlignValues | InfiniteTableColumnAlignFn<T>;
1414
+ declare type InfiniteTableColumnVerticalAlign<T> = InfiniteTableColumnVerticalAlignValues | InfiniteTableColumnVerticalAlignFn<T>;
1415
+ declare type InfiniteTableColumnAlignFn<T> = (params: InfiniteTableColumnAlignFnParams<T>) => InfiniteTableColumnAlignValues;
1416
+ declare type InfiniteTableColumnAlignFnParams<T> = XOR<{
1417
+ isHeader: true;
1418
+ column: InfiniteTableComputedColumn<T>;
1419
+ }, InfiniteTableColumnStylingFnParams<T> & {
1420
+ isHeader: false;
1421
+ }>;
1422
+ declare type InfiniteTableColumnVerticalAlignFn<T> = (params: InfiniteTableColumnAlignFnParams<T>) => InfiniteTableColumnVerticalAlignValues;
1423
+ declare type InfiniteTableColumnHeaderStyle<T> = CSSProperties | InfiniteTableColumnHeaderStyleFn<T>;
1424
+ declare type InfiniteTableColumnClassName<T> = string | InfiniteTableColumnClassNameFn<T>;
1425
+ declare type InfiniteTableColumnHeaderClassName<T> = string | InfiniteTableColumnHeaderClassNameFn<T>;
1426
+ declare type InfiniteTableColumnValueGetterParams<T> = ValueGetterParams<T>;
1427
+ declare type InfiniteTableColumnValueFormatterParams<T> = InfiniteTableRowInfoDataDiscriminator<T>;
1428
+ declare type InfiniteTableColumnValueGetter<T, VALUE_GETTER_TYPE = string | number | boolean | Date | null | undefined> = (params: InfiniteTableColumnValueGetterParams<T>) => VALUE_GETTER_TYPE;
1429
+ declare type InfiniteTableColumnValueFormatter<T, VALUE_FORMATTER_TYPE = string | number | boolean | Date | null | undefined> = (params: InfiniteTableColumnValueFormatterParams<T>) => VALUE_FORMATTER_TYPE;
1430
+ declare type InfiniteTableColumnRowspanFn<T> = (params: InfiniteTableColumnRowspanParam<T>) => number;
1431
+ declare type InfiniteTableColumnComparer<T> = (a: T, b: T) => number;
1432
+ declare type InfiniteTableColumnSortableFn<T> = (context: {
1433
+ api: InfiniteTableApi<T>;
1434
+ columnApi: InfiniteTableColumnApi<T>;
1435
+ column: InfiniteTableComputedColumn<T>;
1436
+ columns: Map<string, InfiniteTableComputedColumn<T>>;
1437
+ }) => boolean;
1438
+ declare type InfiniteTableColumnSortable<T> = boolean | InfiniteTableColumnSortableFn<T>;
1644
1439
  /**
1645
- * This is only used for rendering Detail rows in a master-detail DataGrid
1440
+ * Defines a column in the table.
1441
+ *
1442
+ * @typeParam DATA_TYPE The type of the data in the table.
1443
+ *
1444
+ * Can be bound to a field which is a `keyof DATA_TYPE`.
1646
1445
  */
1647
- interface ListRowInterface {
1648
- debugId: string;
1649
- update(content: Renderable): void;
1650
- getElement(): HTMLElement | null;
1651
- getNode(): Renderable;
1652
- destroy(): void;
1653
- onMount(callback: (row: ListRowInterface) => void): void;
1654
- isMounted(): boolean;
1655
- ref: (htmlElement: HTMLElement) => void;
1656
- }
1657
-
1658
- declare class ListRowManager extends Logger {
1659
- private pool;
1660
- private indexToRow;
1661
- private rowToIndex;
1662
- debugId: string;
1663
- private offRemoveRow;
1664
- constructor(debugId: string);
1665
- private onRemoveRow;
1666
- set poolSize(rowCount: number);
1667
- get poolSize(): number;
1668
- getDetachedRow(): ListRowInterface;
1446
+ declare type InfiniteTableColumn<DATA_TYPE> = {
1447
+ field?: KeyOfNoSymbol<DATA_TYPE>;
1448
+ valueGetter?: InfiniteTableColumnValueGetter<DATA_TYPE>;
1449
+ defaultSortable?: InfiniteTableColumnSortable<DATA_TYPE>;
1669
1450
  /**
1670
- * This gets a row for a given position.
1671
- * If there's already a row currently attached at that position, it will be returned.
1451
+ * Whether the column is draggable by default.
1672
1452
  *
1673
- * Otherwise, we return another row.
1674
- * @param rowIndex
1453
+ * This prop overrides the top-level columnDefaultDraggable prop, but is
1454
+ * overridden by the top-level draggableColumns prop.
1675
1455
  */
1676
- getRowFor(rowIndex: number): ListRowInterface;
1677
- private setRowIndexInList;
1678
- detachStartingWith(rowIndex: number): void;
1679
- getRowAt(rowPos: number): ListRowInterface | undefined;
1680
- getRowIndex(row: ListRowInterface): number | undefined;
1681
- isRowAttached(row: ListRowInterface): boolean;
1682
- isRowAttachedAt(rowIndex: number): boolean;
1683
- getList(): Renderable[];
1684
- getAttachedCount(): number;
1685
- forEachAttachedRow(fn: (row: ListRowInterface) => void): void;
1686
- getAttachedIndexes(): number[];
1687
- getAllRows(): ListRowInterface[];
1688
- detachRowAt(rowIndex: number): void;
1689
- detachRow(row: ListRowInterface): void;
1690
- renderNodeAtRow(node: Renderable, row: ListRowInterface, rowIndex: number): ListRowInterface;
1691
- makeDetachedRowsEmpty(): void;
1692
- onRowAttachmentChange(callback: (row: ListRowInterface, attached: boolean) => void): VoidFn;
1693
- withDetachedRows(fn: (row: ListRowInterface) => void): void;
1694
- destroy(): void;
1695
- reset(): void;
1696
- }
1697
-
1698
- declare class GridRenderer extends Logger {
1699
- protected brain: MatrixBrain;
1700
- debugId: string;
1701
- protected destroyed: boolean;
1702
- private scrolling;
1703
- cellHoverClassNames: string[];
1704
- cellDetachedClassNames: string[];
1705
- protected cellManager: GridCellManager<{
1706
- renderRowIndex: number;
1707
- renderColIndex: number;
1708
- }>;
1709
- protected rowManager: ListRowManager;
1710
- private lastEnteredRow;
1711
- private lastExitedRow;
1712
- private onDestroy;
1713
- private hoverRowUpdatesInProgress;
1714
- private infiniteNode;
1715
- private getInfiniteNode;
1716
- setDetailTransform: (element: HTMLElement, _rowIndex: number, { y, scrollTop, scrollLeft, }: {
1717
- y: number;
1718
- scrollTop?: boolean | undefined;
1719
- scrollLeft?: number | undefined;
1720
- }) => void;
1721
- setTransform: (element: HTMLElement, _rowIndex: number, colIndex: number, { x, y, scrollLeft, scrollTop, }: {
1722
- x: number;
1723
- y: number;
1724
- scrollLeft?: boolean | undefined;
1725
- scrollTop?: boolean | undefined;
1726
- }, zIndex: number | 'auto' | undefined | null) => void;
1727
- constructor(brain: MatrixBrain, debugId?: string);
1728
- private onCellAttached;
1729
- private onCellDetached;
1730
- private onRowAttached;
1731
- private onRowDetached;
1732
- getFullyVisibleRowsRange: () => {
1733
- start: number;
1734
- end: number;
1735
- } | null;
1736
- getScrollPositionForScrollRowIntoView: (rowIndex: number, config?: {
1737
- scrollAdjustPosition?: ScrollAdjustPosition;
1738
- offset?: number;
1739
- colIndex?: number;
1740
- }) => ScrollPosition | null;
1741
- getScrollPositionForScrollColumnIntoView: (colIndex: number, config?: {
1742
- scrollAdjustPosition?: ScrollAdjustPosition;
1743
- offset?: number;
1744
- } & HorizontalLayoutColVisibilityOptions) => ScrollPosition | null;
1745
- getScrollPositionForScrollCellIntoView: (rowIndex: number, colIndex: number, config?: {
1746
- rowScrollAdjustPosition?: ScrollAdjustPosition;
1747
- colScrollAdjustPosition?: ScrollAdjustPosition;
1748
- scrollAdjustPosition?: ScrollAdjustPosition;
1749
- offsetTop: number;
1750
- offsetLeft: number;
1751
- }) => ScrollPosition | null;
1752
- isRowFullyVisible: (rowIndex: number, offsetMargin?: number) => boolean;
1753
- isRowVisible: (rowIndex: number, offsetMargin?: number) => boolean;
1754
- isRowRendered: (rowIndex: number) => boolean;
1755
- isCellVisible: (rowIndex: number, colIndex: number) => boolean;
1756
- isCellFullyVisible: (rowIndex: number, colIndex: number, opts?: HorizontalLayoutColVisibilityOptions | undefined) => boolean;
1757
- isColumnFullyVisible: (colIndex: number, offsetMargin?: number, opts?: HorizontalLayoutColVisibilityOptions | undefined) => boolean;
1758
- isColumnVisible: (colIndex: number, offsetMargin?: number, opts?: HorizontalLayoutColVisibilityOptions | undefined) => boolean;
1759
- isCellRendered: (rowIndex: number, colIndex: number, opts?: HorizontalLayoutColVisibilityOptions | undefined) => boolean;
1760
- isColumnRendered: (colIndex: number, opts?: HorizontalLayoutColVisibilityOptions | undefined) => boolean;
1761
- getExtraSpanCellsForRange: (range: TableRenderRange) => [number, number][];
1762
- isCellRenderedAndMappedCorrectly(row: number, col: number): {
1763
- rendered: boolean;
1764
- mapped: boolean;
1765
- };
1766
- renderRange(range: TableRenderRange, { renderCell, renderDetailRow, force, onRender }: RenderRangeOptions): Renderable[];
1767
- getFixedRanges: (currentRenderRange: TableRenderRange) => TableRenderRange[];
1768
- protected isCellFixed: (rowIndex: number, colIndex: number) => {
1769
- row: FixedPosition;
1770
- col: FixedPosition;
1456
+ defaultDraggable?: boolean;
1457
+ resizable?: boolean;
1458
+ shouldAcceptEdit?: (params: InfiniteTablePropOnEditAcceptedParams<DATA_TYPE>) => boolean | Error | Promise<boolean | Error>;
1459
+ contentFocusable?: InfiniteTableColumnContentFocusable<DATA_TYPE>;
1460
+ defaultEditable?: InfiniteTableColumnEditable<DATA_TYPE>;
1461
+ getValueToEdit?: (params: InfiniteTableColumnEditableParams<DATA_TYPE>) => any | Promise<any>;
1462
+ getValueToPersist?: (params: InfiniteTableColumnGetValueToPersistParams<DATA_TYPE>) => any | Promise<any>;
1463
+ comparer?: InfiniteTableColumnComparer<DATA_TYPE>;
1464
+ defaultHiddenWhenGroupedBy?: '*' | true | keyof DATA_TYPE | {
1465
+ [k in keyof Partial<DATA_TYPE>]: true;
1771
1466
  };
1772
- protected isCellCovered: (rowIndex: number, colIndex: number) => false | number[];
1773
- private renderDetailRowAtElement;
1774
- protected getCellRealCoordinates(rowIndex: number, colIndex: number): {
1775
- rowIndex: number;
1776
- colIndex: number;
1467
+ align?: InfiniteTableColumnAlign<DATA_TYPE>;
1468
+ headerAlign?: InfiniteTableColumnAlign<DATA_TYPE>;
1469
+ verticalAlign?: InfiniteTableColumnVerticalAlign<DATA_TYPE>;
1470
+ columnGroup?: string;
1471
+ header?: InfiniteTableColumnHeader<DATA_TYPE>;
1472
+ renderHeader?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
1473
+ name?: Renderable;
1474
+ cssEllipsis?: boolean;
1475
+ headerCssEllipsis?: boolean;
1476
+ type?: InfiniteTableColumnTypeNames | InfiniteTableColumnTypeNames[] | null;
1477
+ dataType?: InfiniteTableDataTypeNames;
1478
+ sortType?: string | string[];
1479
+ filterType?: string;
1480
+ style?: InfiniteTableColumnStyle<DATA_TYPE>;
1481
+ headerStyle?: InfiniteTableColumnHeaderStyle<DATA_TYPE>;
1482
+ headerClassName?: InfiniteTableColumnHeaderClassName<DATA_TYPE>;
1483
+ className?: InfiniteTableColumnClassName<DATA_TYPE>;
1484
+ rowspan?: InfiniteTableColumnRowspanFn<DATA_TYPE>;
1485
+ render?: InfiniteTableColumnRenderFunction<DATA_TYPE>;
1486
+ renderValue?: InfiniteTableColumnRenderFunction<DATA_TYPE>;
1487
+ renderGroupValue?: InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE>;
1488
+ renderLeafValue?: InfiniteTableColumnRenderFunctionForNormalRows<DATA_TYPE>;
1489
+ valueFormatter?: InfiniteTableColumnValueFormatter<DATA_TYPE, Renderable>;
1490
+ defaultWidth?: number;
1491
+ defaultFlex?: number;
1492
+ defaultFilterable?: boolean;
1493
+ minWidth?: number;
1494
+ maxWidth?: number;
1495
+ renderGroupIcon?: InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE>;
1496
+ renderRowDetailIcon?: boolean | InfiniteTableColumnRenderFunction<DATA_TYPE>;
1497
+ renderTreeIcon?: boolean | InfiniteTableColumnRenderFunctionForNode<DATA_TYPE, {
1498
+ isTreeNode: true;
1499
+ isParentNode: boolean;
1500
+ isGroupRow: false;
1501
+ nodeExpanded: boolean;
1502
+ }>;
1503
+ renderTreeIconForParentNode?: InfiniteTableColumnRenderFunctionForParentNode<DATA_TYPE, {
1504
+ isTreeNode: true;
1505
+ isGroupRow: true;
1506
+ isParentNode: true;
1507
+ }>;
1508
+ renderTreeIconForLeafNode?: InfiniteTableColumnRenderFunctionForLeafNode<DATA_TYPE, {
1509
+ isTreeNode: true;
1510
+ isGroupRow: false;
1511
+ isLeafNode: true;
1512
+ }>;
1513
+ renderSortIcon?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
1514
+ renderFilterIcon?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
1515
+ renderSelectionCheckBox?: boolean | InfiniteTableColumnOrHeaderRenderFunction<DATA_TYPE>;
1516
+ renderMenuIcon?: boolean | InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
1517
+ renderHeaderSelectionCheckBox?: boolean | InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
1518
+ components?: {
1519
+ ColumnCell?: (props: HTMLProps<HTMLDivElement>) => JSX.Element | null;
1520
+ HeaderCell?: (props: HTMLProps<HTMLDivElement>) => JSX.Element | null;
1521
+ Editor?: () => JSX.Element | null;
1522
+ FilterEditor?: () => JSX.Element | null;
1523
+ FilterOperatorSwitch?: () => JSX.Element | null;
1524
+ MenuIcon?: (props: MenuIconProps) => JSX.Element | null;
1777
1525
  };
1778
- protected renderCellAt(rowIndex: number, colIndex: number, cell: GridCellInterface, renderCell: TableRenderCellFn): void;
1779
- protected onMouseEnter: (rowIndex: number) => void;
1780
- private addHoverClass;
1781
- protected onMouseLeave: (rowIndex: number) => void;
1782
- private removeHoverClass;
1783
- protected updateHoverClassNamesForRow: (rowIndex: number) => void;
1784
- protected updateElementPosition: (cell: GridCellInterface<{
1785
- renderRowIndex: number;
1786
- renderColIndex: number;
1787
- }>, options?: {
1788
- hidden: boolean;
1789
- rowspan: number;
1790
- colspan: number;
1791
- } | undefined) => void;
1792
- private updateDetailElementPosition;
1793
- private onScrollStart;
1794
- private onScrollStop;
1795
- adjustFixedElementsOnScroll: (scrollPosition?: ScrollPosition) => void;
1796
- destroy: () => void;
1797
- reset(): void;
1798
- }
1799
-
1800
- declare type SubscriptionCallbackOnChangeFn<T> = (node: T | null) => void;
1801
- interface SubscriptionCallback<T> {
1802
- (node: T, callback?: () => void): void;
1803
- get: () => T | null;
1804
- destroy: VoidFn;
1805
- onChange: (fn: SubscriptionCallbackOnChangeFn<T>) => VoidFn;
1806
- }
1807
-
1808
- declare class ScrollListener {
1809
- private scrollPosition;
1810
- private onScrollFns;
1811
- getScrollPosition: () => ScrollPosition;
1812
- onScroll: (fn: OnScrollFn) => () => void;
1813
- setScrollPosition: (scrollPosition: ScrollPosition) => void;
1814
- private notifyScrollChange;
1815
- destroy: () => void;
1816
- }
1526
+ };
1527
+ declare type InfiniteTableGeneratedGroupColumn<T> = Omit<InfiniteTableColumn<T>, 'defaultSortable'> & {
1528
+ groupByForColumn: GroupBy<T> | GroupBy<T>[];
1529
+ id?: string;
1530
+ };
1531
+ declare type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & ColumnTypeWithInherit<Partial<InfiniteTablePivotFinalColumnVariant<T, any>>>;
1532
+ declare type InfiniteTablePivotFinalColumnGroup<DataType, KeyType extends any = any> = InfiniteTableColumnGroup & {
1533
+ pivotBy: DataSourcePivotBy<DataType>[];
1534
+ pivotTotalColumnGroup?: true;
1535
+ pivotGroupKeys: KeyType[];
1536
+ pivotByAtIndex: PivotBy<DataType, KeyType>;
1537
+ pivotGroupKey: KeyType;
1538
+ pivotIndex: number;
1539
+ };
1540
+ declare type InfiniteTablePivotFinalColumn<DataType, KeyType extends any = any> = InfiniteTableColumn<DataType> & {
1541
+ pivotBy: DataSourcePivotBy<DataType>[];
1542
+ pivotColumn: true;
1543
+ pivotTotalColumn: boolean;
1544
+ pivotAggregator: AggregationReducer<DataType, any>;
1545
+ pivotAggregatorIndex: number;
1546
+ pivotGroupKeys: KeyType[];
1547
+ pivotByAtIndex?: PivotBy<DataType, KeyType>;
1548
+ pivotIndex: number;
1549
+ pivotGroupKey: KeyType;
1550
+ };
1551
+ declare type InfiniteTablePivotFinalColumnVariant<DataType, KeyType extends any = any> = InfiniteTablePivotFinalColumn<DataType, KeyType>;
1552
+ declare type InfiniteTableComputedColumnBase<T> = {
1553
+ computedFilterType: string;
1554
+ computedSortType: string | string[];
1555
+ computedDataType: string;
1556
+ computedWidth: number;
1557
+ computedFlex: number | null;
1558
+ computedMinWidth: number;
1559
+ computedMaxWidth: number;
1560
+ computedOffset: number;
1561
+ computedPinningOffset: number;
1562
+ computedAbsoluteOffset: number;
1563
+ computedSortInfo: DataSourceSingleSortInfo<T> | null;
1564
+ computedSorted: boolean;
1565
+ computedSortedAsc: boolean;
1566
+ computedSortedDesc: boolean;
1567
+ computedSortIndex: number;
1568
+ computedVisible: boolean;
1569
+ computedVisibleIndex: number;
1570
+ computedVisibleIndexInCategory: number;
1571
+ computedMultiSort: boolean;
1572
+ computedFiltered: boolean;
1573
+ computedFilterable: boolean;
1574
+ computedFilterValue: DataSourceFilterValueItem<T> | null;
1575
+ computedPinned: InfiniteTableColumnPinnedValues;
1576
+ computedDraggable: boolean;
1577
+ computedResizable: boolean;
1578
+ computedFirstInCategory: boolean;
1579
+ computedLastInCategory: boolean;
1580
+ computedFirst: boolean;
1581
+ computedLast: boolean;
1582
+ computedEditable: NonUndefined<InfiniteTableColumn<T>['defaultEditable']>;
1583
+ computedSortable: NonUndefined<InfiniteTableColumn<T>['defaultSortable']>;
1584
+ colType: InfiniteTableColumnType<T>;
1585
+ id: string;
1586
+ };
1587
+ declare type InfiniteTableComputedColumn<T> = InfiniteTableColumn<T> & InfiniteTableComputedColumnBase<T> & Partial<InfiniteTablePivotFinalColumn<T>> & Partial<InfiniteTableGeneratedGroupColumn<T>>;
1588
+ declare type InfiniteTableComputedPivotFinalColumn<T> = InfiniteTableComputedColumn<T> & InfiniteTablePivotFinalColumn<T>;
1817
1589
 
1818
1590
  declare type CellContextMenuLocation = {
1819
1591
  rowId: any;
@@ -2084,6 +1856,138 @@ declare type InfiniteTableCellSelectionApi<T> = {
2084
1856
  };
2085
1857
  };
2086
1858
 
1859
+ declare type CellNavigationConfig = {
1860
+ direction: 'top' | 'bottom' | 'left' | 'right';
1861
+ };
1862
+ interface InfiniteTableKeyboardNavigationApi<T> {
1863
+ setKeyboardNavigation: (keyboardNavigation: NonUndefined<InfiniteTableProps<T>['keyboardNavigation']>) => void;
1864
+ setActiveCellIndex: (activeCellIndex: NonUndefined<InfiniteTableProps<T>['activeCellIndex']>) => void;
1865
+ setActiveRowIndex: (activeRowIndex: NonUndefined<InfiniteTableProps<T>['activeRowIndex']>) => void;
1866
+ gotoNextRow: () => number | false;
1867
+ gotoPreviousRow: () => number | false;
1868
+ gotoRow: (direction: 1 | -1) => number | false;
1869
+ gotoCell: (config: CellNavigationConfig) => false | [number, number];
1870
+ }
1871
+
1872
+ declare type InfiniteTableRowDetailApi = {
1873
+ isRowDetailExpanded(pk: any): boolean;
1874
+ isRowDetailCollapsed(pk: any): boolean;
1875
+ expandRowDetail(pk: any): void;
1876
+ collapseRowDetail(pk: any): void;
1877
+ toggleRowDetail(pk: any): void;
1878
+ collapseAllDetails(): void;
1879
+ expandAllDetails(): void;
1880
+ isRowDetailEnabledForRow(pk: any): boolean;
1881
+ };
1882
+
1883
+ declare type RowSelectionStateItem = (any | any[])[];
1884
+ declare type RowSelectionStateObject = {
1885
+ selectedRows: RowSelectionStateItem;
1886
+ deselectedRows: RowSelectionStateItem;
1887
+ defaultSelection: boolean;
1888
+ } | {
1889
+ defaultSelection: true;
1890
+ deselectedRows: RowSelectionStateItem;
1891
+ selectedRows?: RowSelectionStateItem;
1892
+ } | {
1893
+ defaultSelection: false;
1894
+ selectedRows: RowSelectionStateItem;
1895
+ deselectedRows?: RowSelectionStateItem;
1896
+ };
1897
+ declare type RowSelectionStateConfig<T> = {
1898
+ groupBy: DataSourceState<T>['groupBy'];
1899
+ groupDeepMap: DataSourceState<T>['groupDeepMap'];
1900
+ toPrimaryKey: DataSourceState<T>['toPrimaryKey'];
1901
+ totalCount: number;
1902
+ indexer: DataSourceState<T>['indexer'];
1903
+ lazyLoad: boolean;
1904
+ onlyUsePrimaryKeys: boolean;
1905
+ };
1906
+ declare type GetRowSelectionStateConfig<T> = () => RowSelectionStateConfig<T>;
1907
+ declare type RowSelectionStateOverride = {
1908
+ getGroupKeysForPrimaryKey: RowSelectionState<any>['getGroupKeysForPrimaryKey'];
1909
+ getGroupByLength: RowSelectionState<any>['getGroupByLength'];
1910
+ getGroupCount: RowSelectionState<any>['getGroupCount'];
1911
+ getGroupKeysDirectlyInsideGroup: RowSelectionState<any>['getGroupKeysDirectlyInsideGroup'];
1912
+ getAllPrimaryKeysInsideGroup: RowSelectionState<any>['getAllPrimaryKeysInsideGroup'];
1913
+ };
1914
+ declare class RowSelectionState<T = any> {
1915
+ selectedRows: RowSelectionStateItem | null;
1916
+ deselectedRows: RowSelectionStateItem | null;
1917
+ defaultSelection: boolean;
1918
+ selectedMap: DeepMap<any, true>;
1919
+ deselectedMap: DeepMap<any, true>;
1920
+ onlyUsePrimaryKeys: boolean;
1921
+ selectionCache: DeepMap<any, boolean | null>;
1922
+ selectionCountCache: DeepMap<any, {
1923
+ selectedCount: number;
1924
+ deselectedCount: number;
1925
+ }>;
1926
+ getConfig: GetRowSelectionStateConfig<T>;
1927
+ getGroupKeysForPrimaryKey(pk: any): any[];
1928
+ getGroupDeepMap(): DeepMap<any, DeepMapGroupValueType<T, any>> | undefined;
1929
+ getGroupCount(groupKeys: any[]): number;
1930
+ getGroupKeysDirectlyInsideGroup(groupKeys: any[]): any[][];
1931
+ getAllPrimaryKeysInsideGroup(groupKeys: any[]): any[];
1932
+ getGroupByLength(): number;
1933
+ static from<T>(rowSeleStateObject: RowSelectionStateObject, getConfig: GetRowSelectionStateConfig<T>, overrides?: RowSelectionStateOverride): RowSelectionState<T>;
1934
+ constructor(state: RowSelectionStateObject | RowSelectionState, getConfig: GetRowSelectionStateConfig<T>, _forTestingOnly?: RowSelectionStateOverride);
1935
+ mapSet: (name: 'selected' | 'deselected', key: any | any[]) => void;
1936
+ _selectedMapSet: (key: any | any[]) => void;
1937
+ _deselectedMapSet: (key: any | any[]) => void;
1938
+ update(stateObject: RowSelectionStateObject): void;
1939
+ private xcache;
1940
+ getState(): RowSelectionStateObject;
1941
+ deselectAll(): void;
1942
+ selectAll(): void;
1943
+ isRowDefaultSelected(): boolean;
1944
+ isRowDefaultDeselected(): boolean;
1945
+ /**
1946
+ *
1947
+ * @param key the id of the row - if a row in a grouped datasource, this is the final row id, without the group keys
1948
+ * @param groupKeys the keys of row parents, in order
1949
+ * @returns Whether the row is selected or not.
1950
+ */
1951
+ isRowSelected(key: any, groupKeys?: any[]): boolean;
1952
+ isRowDeselected(key: any, groupKeys?: any[]): boolean;
1953
+ setRowSelected(key: string | number, selected: boolean, groupKeys?: any[]): void;
1954
+ /**
1955
+ * Returns if the selection state ('full','partial','none') for the current group
1956
+ *
1957
+ * The selection state will be full (true) if either of those are true:
1958
+ * * the group keys are specified as selected
1959
+ * * all the children are specified as selected
1960
+ *
1961
+ * The selection state will be partial (null) if either of those are true:
1962
+ * * the group keys are partially selected
1963
+ * * some of the children are specified as selected
1964
+ *
1965
+ *
1966
+ * @param groupKeys the keys of the group row
1967
+ * @param children leaf children that belong to the group
1968
+ * @returns boolean
1969
+ */
1970
+ getGroupRowSelectionState(initialGroupKeys: any[]): boolean | null;
1971
+ private getGroupRowBooleanSelectionStateFromParent;
1972
+ isGroupRowPartlySelected(groupKeys: any[]): boolean;
1973
+ isGroupRowSelected(groupKeys: any[]): boolean;
1974
+ isGroupRowDeselected(groupKeys: any[]): boolean;
1975
+ selectGroupRow(groupKeys: any[]): void;
1976
+ deselectGroupRow(groupKeys: any[]): void;
1977
+ setRowAsSelected(key: string | number, groupKeys?: any[]): void;
1978
+ setRowAsDeselected(key: string | number, groupKeys?: any[]): void;
1979
+ deselectRow(key: any, groupKeys?: any[]): void;
1980
+ selectRow(key: any, groupKeys?: any[]): void;
1981
+ toggleGroupRowSelection(groupKeys: any[]): void;
1982
+ toggleRowSelection(key: string | number, groupKeys?: any[] | undefined): void;
1983
+ getSelectedCount(): number;
1984
+ getDeselectedCount(): number;
1985
+ getSelectionCountFor(groupKeys?: any[], parentSelected?: boolean): {
1986
+ selectedCount: number;
1987
+ deselectedCount: number;
1988
+ };
1989
+ }
1990
+
2087
1991
  declare type ArrayOfIds = Pick<InfiniteTable_RowInfoBase<any>, 'id'>[];
2088
1992
  declare type InfiniteTableRowSelectionApi = {
2089
1993
  get allRowsSelected(): boolean;
@@ -2101,6 +2005,126 @@ declare type InfiniteTableRowSelectionApi = {
2101
2005
  deselectAll(): void;
2102
2006
  };
2103
2007
 
2008
+ declare enum InfiniteTableActionType {
2009
+ SET_COLUMN_SIZE = 0,
2010
+ SET_SCROLL_POSITION = 1,
2011
+ SET_BODY_SIZE = 2,
2012
+ SET_COLUMN_ORDER = 3,
2013
+ SET_COLUMN_VISIBILITY = 4,
2014
+ SET_COLUMN_SHIFTS = 5,
2015
+ SET_COLUMN_PINNING = 6,
2016
+ SET_COLUMN_AGGREGATIONS = 7,
2017
+ SET_DRAGGING_COLUMN_ID = 8
2018
+ }
2019
+
2020
+ declare type InfiniteTableAction = {
2021
+ type: InfiniteTableActionType;
2022
+ payload?: any;
2023
+ };
2024
+
2025
+ declare class RowSizeCache {
2026
+ rowHeight: Map<number, number>;
2027
+ rowDetailHeight: Map<number, number>;
2028
+ getTotalRowHeight(index: number): number;
2029
+ getRowHeight: (index: number) => number;
2030
+ getRowDetailHeight: (index: number) => number;
2031
+ getSize(index: number): {
2032
+ rowHeight: number;
2033
+ rowDetailHeight: number;
2034
+ totalRowHeight: number;
2035
+ };
2036
+ }
2037
+
2038
+ declare type MultiCellSelectorOptions = {
2039
+ getPrimaryKeyByIndex: (rowIndex: number) => string | number;
2040
+ getColumnIdByIndex: (colIndex: number) => string;
2041
+ };
2042
+ declare class MultiCellSelector {
2043
+ multiSelectStartPosition: CellPositionByIndex;
2044
+ multiSelectEndPosition?: CellPositionByIndex;
2045
+ getPrimaryKeyByIndex: MultiCellSelectorOptions['getPrimaryKeyByIndex'];
2046
+ getColumnIdByIndex: MultiCellSelectorOptions['getColumnIdByIndex'];
2047
+ _cellSelectionState: CellSelectionState;
2048
+ constructor(options: MultiCellSelectorOptions);
2049
+ private getCellSelectionPosition;
2050
+ set cellSelectionState(cellSelectionState: CellSelectionState);
2051
+ get cellSelectionState(): CellSelectionState;
2052
+ /**
2053
+ * This is the single click, without any modifier
2054
+ */
2055
+ resetClick(position: CellPositionByIndex): void;
2056
+ /**
2057
+ * This is the click with ctrl/cmd key pressed
2058
+ * @param position CellPosition
2059
+ */
2060
+ singleAddClick(position: CellPositionByIndex): void;
2061
+ multiSelectClick(position: CellPositionByIndex, options: MultiSelectRangeOptions): void;
2062
+ setRangeSelected(startPosition: CellPositionByIndex, endPosition: CellPositionByIndex, selected: boolean, options: MultiSelectRangeOptions): void;
2063
+ deselectRange(startPosition: CellPositionByIndex, endPosition: CellPositionByIndex, options: MultiSelectRangeOptions): void;
2064
+ selectRange(startPosition: CellPositionByIndex, endPosition: CellPositionByIndex, options: MultiSelectRangeOptions): void;
2065
+ }
2066
+
2067
+ declare type MultiRowSelectorOptions = {
2068
+ getIdForIndex: (index: number) => string | number;
2069
+ isRowDisabledAt: (index: number) => boolean;
2070
+ };
2071
+ declare class MultiRowSelector {
2072
+ getIdForIndex: MultiRowSelectorOptions['getIdForIndex'];
2073
+ isRowDisabledAt: MultiRowSelectorOptions['isRowDisabledAt'];
2074
+ multiSelectStartIndex: number;
2075
+ multiSelectEndIndex?: number;
2076
+ _rowSelectionState: RowSelectionState;
2077
+ constructor(options: MultiRowSelectorOptions);
2078
+ set rowSelectionState(rowSelectionState: RowSelectionState);
2079
+ get rowSelectionState(): RowSelectionState;
2080
+ private selectRange;
2081
+ private deselectRange;
2082
+ /**
2083
+ * This is the single click, without any modifier
2084
+ */
2085
+ resetClick(index: number): void;
2086
+ /**
2087
+ * This is the click with ctrl/cmd key pressed
2088
+ * @param index
2089
+ */
2090
+ singleAddClick(index: number): void;
2091
+ multiSelectClick(index: number): void;
2092
+ }
2093
+
2094
+ interface InfiniteTableComputedValues<T> {
2095
+ scrollbars: {
2096
+ vertical: boolean;
2097
+ horizontal: boolean;
2098
+ };
2099
+ multiRowSelector: MultiRowSelector;
2100
+ multiCellSelector: MultiCellSelector;
2101
+ computedRowHeight: number | ((index: number) => number);
2102
+ computedRowSizeCacheForDetails: RowSizeCache | undefined;
2103
+ renderSelectionCheckBox: boolean;
2104
+ rowspan?: MatrixBrainOptions['rowspan'];
2105
+ computedPinnedStartOverflow: boolean;
2106
+ computedPinnedEndOverflow: boolean;
2107
+ computedPinnedStartColumns: InfiniteTableComputedColumn<T>[];
2108
+ computedPinnedEndColumns: InfiniteTableComputedColumn<T>[];
2109
+ computedUnpinnedColumns: InfiniteTableComputedColumn<T>[];
2110
+ computedVisibleColumns: InfiniteTableComputedColumn<T>[];
2111
+ computedVisibleColumnsMap: Map<string, InfiniteTableComputedColumn<T>>;
2112
+ computedColumnsMap: Map<string, InfiniteTableComputedColumn<T>>;
2113
+ computedColumnsMapInInitialOrder: Map<string, InfiniteTableComputedColumn<T>>;
2114
+ computedColumnOrder: InfiniteTablePropColumnOrderNormalized;
2115
+ computedPinnedStartColumnsWidth: number;
2116
+ computedPinnedStartWidth: number;
2117
+ computedPinnedEndColumnsWidth: number;
2118
+ computedPinnedEndWidth: number;
2119
+ computedUnpinnedColumnsWidth: number;
2120
+ computedUnpinnedOffset: number;
2121
+ computedPinnedEndOffset: number;
2122
+ computedRemainingSpace: number;
2123
+ fieldsToColumn: Map<keyof T, InfiniteTableComputedColumn<T>>;
2124
+ toggleGroupRow: (groupKeys: any[]) => void;
2125
+ columnSize: (colIndex: number) => number;
2126
+ }
2127
+
2104
2128
  declare type InfiniteTableEventHandlerContext<T> = {
2105
2129
  getComputed: () => InfiniteTableComputedValues<T>;
2106
2130
  getState: () => InfiniteTableState<T>;
@@ -6484,17 +6508,6 @@ declare type MenuColumnRenderParam = {
6484
6508
  domProps: HTMLProps<HTMLDivElement>;
6485
6509
  };
6486
6510
 
6487
- declare type InfiniteTableRowDetailApi = {
6488
- isRowDetailExpanded(pk: any): boolean;
6489
- isRowDetailCollapsed(pk: any): boolean;
6490
- expandRowDetail(pk: any): void;
6491
- collapseRowDetail(pk: any): void;
6492
- toggleRowDetail(pk: any): void;
6493
- collapseAllDetails(): void;
6494
- expandAllDetails(): void;
6495
- isRowDetailEnabledForRow(pk: any): boolean;
6496
- };
6497
-
6498
6511
  declare type LoadMaskProps = {
6499
6512
  visible: boolean;
6500
6513
  children: Renderable;
@@ -6634,6 +6647,7 @@ interface InfiniteTableApi<T> {
6634
6647
  get rowDetailApi(): InfiniteTableRowDetailApi;
6635
6648
  get rowSelectionApi(): InfiniteTableRowSelectionApi;
6636
6649
  get cellSelectionApi(): InfiniteTableCellSelectionApi<T>;
6650
+ get keyboardNavigationApi(): InfiniteTableKeyboardNavigationApi<T>;
6637
6651
  get scrollContainer(): HTMLElement;
6638
6652
  setColumnOrder: (columnOrder: InfiniteTablePropColumnOrder) => void;
6639
6653
  setColumnVisibility: (columnVisibility: InfiniteTablePropColumnVisibility) => void;
@@ -7231,4 +7245,4 @@ declare const components: {
7231
7245
  NumberFilterEditor: typeof NumberFilterEditor;
7232
7246
  };
7233
7247
 
7234
- export { AdvancedAlignable, CellSelectionState, CellSelectionStateObject, ColumnTypeWithInherit, DataClient, DataSource, DataSourceAction, DataSourceActionType, DataSourceAggregationReducer, DataSourceApi, DataSourceCRUDParam, DataSourceCallback_BaseParam, DataSourceComponentActions, DataSourceContextValue, DataSourceData, DataSourceDataParams, DataSourceDataParamsChanges, DataSourceDerivedState, DataSourceFilterFunctionParam, DataSourceFilterOperator, DataSourceFilterOperatorFunction, DataSourceFilterOperatorFunctionParam, DataSourceFilterType, DataSourceFilterValueItem, DataSourceFilterValueItemValueGetter, DataSourceGroupBy, DataSourceGroupRowsList, DataSourceInsertParam, DataSourceLivePaginationCursorFn, DataSourceLivePaginationCursorParams, DataSourceLivePaginationCursorValue, DataSourceMappedState, DataSourceMappings, DataSourceMasterDetailContextValue, DataSourcePivotBy, DataSourcePropAggregationReducers, DataSourcePropCellSelection, DataSourcePropCellSelection_MultiCell, DataSourcePropCellSelection_SingleCell, DataSourcePropFilterFunction, DataSourcePropFilterTypes, DataSourcePropFilterValue, DataSourcePropGroupBy, DataSourcePropGroupRowsStateObject, DataSourcePropIsNodeExpanded, DataSourcePropIsNodeReadOnly, DataSourcePropIsNodeSelectable, DataSourcePropIsNodeSelected, DataSourcePropIsRowSelected, DataSourcePropLivePaginationCursor, DataSourcePropMultiRowSelectionChangeParamType, DataSourcePropOnCellSelectionChange, DataSourcePropOnCellSelectionChange_MultiCell, DataSourcePropOnCellSelectionChange_SingleCell, DataSourcePropOnRowSelectionChange, DataSourcePropOnRowSelectionChange_MultiRow, DataSourcePropOnRowSelectionChange_SingleRow, DataSourcePropOnTreeSelectionChange, DataSourcePropOnTreeSelectionChange_MultiNode, DataSourcePropOnTreeSelectionChange_SingleNode, DataSourcePropPivotBy, DataSourcePropRowInfoReducers, DataSourcePropRowSelection, DataSourcePropRowSelection_MultiRow, DataSourcePropRowSelection_SingleRow, DataSourcePropSelectionMode, DataSourcePropShouldReloadData, DataSourcePropShouldReloadDataObject, DataSourcePropSortFn, DataSourcePropSortInfo, DataSourcePropSortTypes, DataSourcePropTreeFilterFunction, DataSourcePropTreeSelection, DataSourcePropTreeSelection_MultiNode, DataSourcePropTreeSelection_SingleNode, DataSourceProps, DataSourcePropsNotAvailableInTreeDataSource, DataSourcePropsWithChildren, DataSourceRawReducer, DataSourceRemoteData, DataSourceRowInfoReducer, DataSourceSetupState, DataSourceSingleSortInfo, DataSourceSortInfo, DataSourceState, DataSourceUpdateParam, DebugLogger, DeepMap, ElementContainerGetter, FixedSizeSet, FlashingColumnCell, GroupRowsState, InfiniteColumnEditorContextType, InfiniteTable, InfiniteTableAction, InfiniteTableActionType, InfiniteTableApi, InfiniteTableClassName, InfiniteTableColumn, InfiniteTableColumnAggregator, InfiniteTableColumnApi, InfiniteTableColumnCellContextType, InfiniteTableColumnComparer, InfiniteTableColumnGroup, InfiniteTableColumnRenderFunctionForGroupRows, InfiniteTableColumnRenderFunctionForNormalRows, InfiniteTableColumnRenderValueParam, InfiniteTableColumnRowspanParam, InfiniteTableColumnSizingOptions, InfiniteTableColumnValueFormatterParams, InfiniteTableColumnValueGetterParams, InfiniteTableComponent, InfiniteTableComputedColumn, InfiniteTableComputedValues, InfiniteTableContextValue, InfiniteTableGroupColumnBase, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePivotColumn, InfiniteTablePropAutoSizeColumnsKey, InfiniteTablePropColumnGroupVisibility, InfiniteTablePropColumnGroups, InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnVisibility, InfiniteTablePropColumns, InfiniteTablePropComponents, InfiniteTablePropGetCellContextMenuItems, InfiniteTablePropGetColumnMenuItems, InfiniteTablePropGetContextMenuItems, InfiniteTablePropGroupColumn, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropHeaderOptions, InfiniteTablePropKeyboardNavigation, InfiniteTablePropKeyboardShorcut, InfiniteTablePropMultiSortBehavior, InfiniteTablePropRowClassName, InfiniteTablePropRowStyle, InfiniteTableProps, InfiniteTablePropsNotAvailableInTreeGrid, InfiniteTableRowClassNameFn, InfiniteTableRowInfo, InfiniteTableRowStyleFn, InfiniteTableState, InfiniteTable_HasGrouping_RowInfoGroup, InfiniteTable_HasGrouping_RowInfoNormal, InfiniteTable_Tree_RowInfoLeafNode, InfiniteTable_Tree_RowInfoNode, InfiniteTable_Tree_RowInfoParentNode, LazyGroupDataDeepMap, LazyGroupDataItem, LazyRowInfoGroup, Menu, MenuChildrenFnParam, MenuColumn, MenuColumnRenderParam, MenuDecoration, MenuIconProps, MenuItemActionContext, MenuItemDefinition, MenuItemObject, MenuProps, MenuRenderable, MenuRuntimeItem, MenuRuntimeItemSelectable, MenuSeparator, OverlayShowParams, RowDetailCache, RowDetailState, RowDetailStateObject, RowDisabledState, RowDisabledStateObject, RowSelectionState, ScrollStopInfo, Scrollbars, ShowOverlayFn, TableRenderRange, TreeDataSource, TreeDataSourceProps, TreeExpandState, TreeExpandStateValue, TreeGrid, TreeGridOnlyProps, TreeGridProps, TreeSelectionState, TreeSelectionValue, UpdateChildrenFn, UpdateOverlayContentFn, WaitForNodeOptions, WeakFixedSizeSet, alignNode, components, createFlashingColumnCellComponent, debounce, debug, defaultFilterTypes, eventMatchesKeyboardShortcut, defaultFilterTypes as filterTypes, flatten, buildManagedComponent as getComponentStateRoot, group, interceptMap, keyboardShortcuts, multisort, multisortNested, queryKeyToCacheKey, toTreeDataArray, useManagedComponentState as useComponentState, useDataSourceInternal, useDataSourceState, useEffectWhen, useEffectWhenSameDeps, useEffectWithChanges, useEffectWithObject, useGridScroll, useInfiniteColumnCell, useInfiniteColumnEditor, useInfiniteColumnFilterEditor, useInfiniteHeaderCell, useInfinitePortalContainer, useManagedDataSource, useMasterRowInfo, useOverlay, useOverlayPortal, usePrevious, useRowInfoReducers, useVisibleColumnSizes };
7248
+ export { AdvancedAlignable, CellSelectionState, CellSelectionStateObject, ColumnTypeWithInherit, DataClient, DataSource, DataSourceAction, DataSourceActionType, DataSourceAggregationReducer, DataSourceApi, DataSourceCRUDParam, DataSourceCallback_BaseParam, DataSourceComponentActions, DataSourceContextValue, DataSourceData, DataSourceDataParams, DataSourceDataParamsChanges, DataSourceDerivedState, DataSourceFilterFunctionParam, DataSourceFilterOperator, DataSourceFilterOperatorFunction, DataSourceFilterOperatorFunctionParam, DataSourceFilterType, DataSourceFilterValueItem, DataSourceFilterValueItemValueGetter, DataSourceGroupBy, DataSourceGroupRowsList, DataSourceInsertParam, DataSourceLivePaginationCursorFn, DataSourceLivePaginationCursorParams, DataSourceLivePaginationCursorValue, DataSourceMappedState, DataSourceMappings, DataSourceMasterDetailContextValue, DataSourcePivotBy, DataSourcePropAggregationReducers, DataSourcePropCellSelection, DataSourcePropCellSelection_MultiCell, DataSourcePropCellSelection_SingleCell, DataSourcePropFilterFunction, DataSourcePropFilterTypes, DataSourcePropFilterValue, DataSourcePropGroupBy, DataSourcePropGroupRowsStateObject, DataSourcePropIsNodeExpanded, DataSourcePropIsNodeReadOnly, DataSourcePropIsNodeSelectable, DataSourcePropIsNodeSelected, DataSourcePropIsRowSelected, DataSourcePropLivePaginationCursor, DataSourcePropMultiRowSelectionChangeParamType, DataSourcePropOnCellSelectionChange, DataSourcePropOnCellSelectionChange_MultiCell, DataSourcePropOnCellSelectionChange_SingleCell, DataSourcePropOnRowSelectionChange, DataSourcePropOnRowSelectionChange_MultiRow, DataSourcePropOnRowSelectionChange_SingleRow, DataSourcePropOnTreeSelectionChange, DataSourcePropOnTreeSelectionChange_MultiNode, DataSourcePropOnTreeSelectionChange_SingleNode, DataSourcePropPivotBy, DataSourcePropRowInfoReducers, DataSourcePropRowSelection, DataSourcePropRowSelection_MultiRow, DataSourcePropRowSelection_SingleRow, DataSourcePropSelectionMode, DataSourcePropShouldReloadData, DataSourcePropShouldReloadDataObject, DataSourcePropSortFn, DataSourcePropSortInfo, DataSourcePropSortTypes, DataSourcePropTreeFilterFunction, DataSourcePropTreeSelection, DataSourcePropTreeSelection_MultiNode, DataSourcePropTreeSelection_SingleNode, DataSourceProps, DataSourcePropsNotAvailableInTreeDataSource, DataSourcePropsWithChildren, DataSourceRawReducer, DataSourceRemoteData, DataSourceRowInfoReducer, DataSourceSetupState, DataSourceSingleSortInfo, DataSourceSortInfo, DataSourceState, DataSourceUpdateParam, DebugLogger, DeepMap, ElementContainerGetter, FixedSizeSet, FlashingColumnCell, GroupRowsState, InfiniteColumnEditorContextType, InfiniteTable, InfiniteTableAction, InfiniteTableActionType, InfiniteTableApi, InfiniteTableCellSelectionApi, InfiniteTableClassName, InfiniteTableColumn, InfiniteTableColumnAggregator, InfiniteTableColumnApi, InfiniteTableColumnCellContextType, InfiniteTableColumnComparer, InfiniteTableColumnGroup, InfiniteTableColumnRenderFunctionForGroupRows, InfiniteTableColumnRenderFunctionForNormalRows, InfiniteTableColumnRenderValueParam, InfiniteTableColumnRowspanParam, InfiniteTableColumnSizingOptions, InfiniteTableColumnValueFormatterParams, InfiniteTableColumnValueGetterParams, InfiniteTableComponent, InfiniteTableComputedColumn, InfiniteTableComputedValues, InfiniteTableContextValue, InfiniteTableGroupColumnBase, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTableKeyboardNavigationApi, InfiniteTablePivotColumn, InfiniteTablePropAutoSizeColumnsKey, InfiniteTablePropColumnGroupVisibility, InfiniteTablePropColumnGroups, InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnVisibility, InfiniteTablePropColumns, InfiniteTablePropComponents, InfiniteTablePropGetCellContextMenuItems, InfiniteTablePropGetColumnMenuItems, InfiniteTablePropGetContextMenuItems, InfiniteTablePropGroupColumn, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropHeaderOptions, InfiniteTablePropKeyboardNavigation, InfiniteTablePropKeyboardShorcut, InfiniteTablePropMultiSortBehavior, InfiniteTablePropRowClassName, InfiniteTablePropRowStyle, InfiniteTableProps, InfiniteTablePropsNotAvailableInTreeGrid, InfiniteTableRowClassNameFn, InfiniteTableRowDetailApi, InfiniteTableRowInfo, InfiniteTableRowSelectionApi, InfiniteTableRowStyleFn, InfiniteTableState, InfiniteTable_HasGrouping_RowInfoGroup, InfiniteTable_HasGrouping_RowInfoNormal, InfiniteTable_Tree_RowInfoLeafNode, InfiniteTable_Tree_RowInfoNode, InfiniteTable_Tree_RowInfoParentNode, LazyGroupDataDeepMap, LazyGroupDataItem, LazyRowInfoGroup, Menu, MenuChildrenFnParam, MenuColumn, MenuColumnRenderParam, MenuDecoration, MenuIconProps, MenuItemActionContext, MenuItemDefinition, MenuItemObject, MenuProps, MenuRenderable, MenuRuntimeItem, MenuRuntimeItemSelectable, MenuSeparator, OverlayShowParams, RowDetailCache, RowDetailState, RowDetailStateObject, RowDisabledState, RowDisabledStateObject, RowSelectionState, ScrollStopInfo, Scrollbars, ShowOverlayFn, TableRenderRange, TreeDataSource, TreeDataSourceProps, TreeExpandState, TreeExpandStateValue, TreeGrid, TreeGridOnlyProps, TreeGridProps, TreeSelectionState, TreeSelectionValue, UpdateChildrenFn, UpdateOverlayContentFn, WaitForNodeOptions, WeakFixedSizeSet, alignNode, components, createFlashingColumnCellComponent, debounce, debug, defaultFilterTypes, eventMatchesKeyboardShortcut, defaultFilterTypes as filterTypes, flatten, buildManagedComponent as getComponentStateRoot, group, interceptMap, keyboardShortcuts, multisort, multisortNested, queryKeyToCacheKey, toTreeDataArray, useManagedComponentState as useComponentState, useDataSourceInternal, useDataSourceState, useEffectWhen, useEffectWhenSameDeps, useEffectWithChanges, useEffectWithObject, useGridScroll, useInfiniteColumnCell, useInfiniteColumnEditor, useInfiniteColumnFilterEditor, useInfiniteHeaderCell, useInfinitePortalContainer, useManagedDataSource, useMasterRowInfo, useOverlay, useOverlayPortal, usePrevious, useRowInfoReducers, useVisibleColumnSizes };