comins-table 0.1.11 → 0.2.0

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 (132) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/README.md +9 -7
  3. package/dist/browser/clipboard.d.ts +4 -0
  4. package/dist/browser/clipboard.d.ts.map +1 -0
  5. package/dist/browser/measurements.d.ts +28 -0
  6. package/dist/browser/measurements.d.ts.map +1 -0
  7. package/dist/browser/pointer.d.ts +25 -0
  8. package/dist/browser/pointer.d.ts.map +1 -0
  9. package/dist/browser/scroll.d.ts +9 -0
  10. package/dist/browser/scroll.d.ts.map +1 -0
  11. package/dist/browser/table-transfer.d.ts +38 -0
  12. package/dist/browser/table-transfer.d.ts.map +1 -0
  13. package/dist/browser/viewport-requests.d.ts +27 -0
  14. package/dist/browser/viewport-requests.d.ts.map +1 -0
  15. package/dist/cell-fill.d.ts +1 -1
  16. package/dist/cell-fill.d.ts.map +1 -1
  17. package/dist/clipboard-CNrbmDue.js +959 -0
  18. package/dist/clipboard-CNrbmDue.js.map +1 -0
  19. package/dist/clipboard.d.ts +2 -2
  20. package/dist/clipboard.d.ts.map +1 -1
  21. package/dist/clipboard.js +3 -2
  22. package/dist/column-layout.d.ts +24 -0
  23. package/dist/column-layout.d.ts.map +1 -0
  24. package/dist/component-renderer.d.ts +1 -1
  25. package/dist/component-renderer.d.ts.map +1 -1
  26. package/dist/core/editing/cells.d.ts +9 -0
  27. package/dist/core/editing/cells.d.ts.map +1 -0
  28. package/dist/core/editing/clipboard.d.ts +8 -0
  29. package/dist/core/editing/clipboard.d.ts.map +1 -0
  30. package/dist/core/editing/export.d.ts +4 -0
  31. package/dist/core/editing/export.d.ts.map +1 -0
  32. package/dist/core/layout/columns.d.ts +69 -0
  33. package/dist/core/layout/columns.d.ts.map +1 -0
  34. package/dist/core/layout/row-height.d.ts +25 -0
  35. package/dist/core/layout/row-height.d.ts.map +1 -0
  36. package/dist/core/layout/viewport.d.ts +21 -0
  37. package/dist/core/layout/viewport.d.ts.map +1 -0
  38. package/dist/core/layout/virtual.d.ts +119 -0
  39. package/dist/core/layout/virtual.d.ts.map +1 -0
  40. package/dist/core/model.d.ts +128 -0
  41. package/dist/core/model.d.ts.map +1 -0
  42. package/dist/core/rows/filtering.d.ts +45 -0
  43. package/dist/core/rows/filtering.d.ts.map +1 -0
  44. package/dist/core/rows/grouping.d.ts +97 -0
  45. package/dist/core/rows/grouping.d.ts.map +1 -0
  46. package/dist/core/rows/projection.d.ts +73 -0
  47. package/dist/core/rows/projection.d.ts.map +1 -0
  48. package/dist/core/rows/summary.d.ts +3 -0
  49. package/dist/core/rows/summary.d.ts.map +1 -0
  50. package/dist/core/selection/navigation.d.ts +49 -0
  51. package/dist/core/selection/navigation.d.ts.map +1 -0
  52. package/dist/core/selection/state.d.ts +131 -0
  53. package/dist/core/selection/state.d.ts.map +1 -0
  54. package/dist/core/state/access.d.ts +11 -0
  55. package/dist/core/state/access.d.ts.map +1 -0
  56. package/dist/core/state/changes.d.ts +14 -0
  57. package/dist/core/state/changes.d.ts.map +1 -0
  58. package/dist/core/state/reconcile.d.ts +18 -0
  59. package/dist/core/state/reconcile.d.ts.map +1 -0
  60. package/dist/core/state/table.d.ts +77 -0
  61. package/dist/core/state/table.d.ts.map +1 -0
  62. package/dist/core/transfer/policy.d.ts +116 -0
  63. package/dist/core/transfer/policy.d.ts.map +1 -0
  64. package/dist/core/viewport/data.d.ts +70 -0
  65. package/dist/core/viewport/data.d.ts.map +1 -0
  66. package/dist/core/viewport/requests.d.ts +19 -0
  67. package/dist/core/viewport/requests.d.ts.map +1 -0
  68. package/dist/core-compat-B4I2OHGY.js +391 -0
  69. package/dist/core-compat-B4I2OHGY.js.map +1 -0
  70. package/dist/core.d.ts +9 -714
  71. package/dist/core.d.ts.map +1 -1
  72. package/dist/core.js +3 -2
  73. package/dist/export-Cfk5Jz4a.js +37 -0
  74. package/dist/export-Cfk5Jz4a.js.map +1 -0
  75. package/dist/filtering.d.ts +8 -9
  76. package/dist/filtering.d.ts.map +1 -1
  77. package/dist/grouping.d.ts +11 -21
  78. package/dist/grouping.d.ts.map +1 -1
  79. package/dist/index.d.ts +11 -8
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +3202 -2694
  82. package/dist/index.js.map +1 -1
  83. package/dist/model.d.ts +140 -0
  84. package/dist/model.d.ts.map +1 -0
  85. package/dist/react/core-compat.d.ts +141 -0
  86. package/dist/react/core-compat.d.ts.map +1 -0
  87. package/dist/react/edit-policy.d.ts +9 -0
  88. package/dist/react/edit-policy.d.ts.map +1 -0
  89. package/dist/react/model.d.ts +14 -0
  90. package/dist/react/model.d.ts.map +1 -0
  91. package/dist/react/rows.d.ts +6 -0
  92. package/dist/react/rows.d.ts.map +1 -0
  93. package/dist/react/state.d.ts +43 -0
  94. package/dist/react/state.d.ts.map +1 -0
  95. package/dist/react/table-transfer.d.ts +55 -0
  96. package/dist/react/table-transfer.d.ts.map +1 -0
  97. package/dist/react/viewport.d.ts +10 -0
  98. package/dist/react/viewport.d.ts.map +1 -0
  99. package/dist/react-types.d.ts +292 -0
  100. package/dist/react-types.d.ts.map +1 -0
  101. package/dist/row-detail.d.ts +2 -0
  102. package/dist/row-detail.d.ts.map +1 -1
  103. package/dist/row-height.d.ts +1 -24
  104. package/dist/row-height.d.ts.map +1 -1
  105. package/dist/row-value.d.ts +2 -0
  106. package/dist/row-value.d.ts.map +1 -0
  107. package/dist/selection-data.d.ts +2 -1
  108. package/dist/selection-data.d.ts.map +1 -1
  109. package/dist/selection.d.ts +2 -2
  110. package/dist/selection.d.ts.map +1 -1
  111. package/dist/selection.js +2 -2
  112. package/dist/summary.d.ts +1 -1
  113. package/dist/summary.d.ts.map +1 -1
  114. package/dist/table-state.d.ts +24 -0
  115. package/dist/table-state.d.ts.map +1 -0
  116. package/dist/table-transfer.d.ts +1 -152
  117. package/dist/table-transfer.d.ts.map +1 -1
  118. package/dist/tree-drag.d.ts.map +1 -1
  119. package/dist/tree.d.ts +1 -1
  120. package/dist/tree.d.ts.map +1 -1
  121. package/dist/use-viewport.d.ts.map +1 -1
  122. package/dist/viewport-data.d.ts +8 -71
  123. package/dist/viewport-data.d.ts.map +1 -1
  124. package/dist/viewport-layout.d.ts +1 -20
  125. package/dist/viewport-layout.d.ts.map +1 -1
  126. package/dist/viewport-requests.d.ts +1 -8
  127. package/dist/viewport-requests.d.ts.map +1 -1
  128. package/dist/virtual-layout.d.ts +1 -118
  129. package/dist/virtual-layout.d.ts.map +1 -1
  130. package/package.json +5 -2
  131. package/dist/core-C1tlvY8Q.js +0 -963
  132. package/dist/core-C1tlvY8Q.js.map +0 -1
@@ -0,0 +1,119 @@
1
+ import type { CominsRowId } from "../model";
2
+ export declare const COMINS_MAX_PHYSICAL_TOTAL_HEIGHT = 1500000;
3
+ export type CominsDataVirtualSlot<TData> = {
4
+ absoluteIndex?: number;
5
+ dataIndex: number;
6
+ detail?: {
7
+ estimated: boolean;
8
+ height: number;
9
+ mode: "auto" | "fixed";
10
+ };
11
+ key: string;
12
+ kind: "data";
13
+ rowHeight?: number;
14
+ autoHeight?: boolean;
15
+ row: TData;
16
+ rowId: CominsRowId;
17
+ visibleIndex: number;
18
+ };
19
+ export type CominsGroupVirtualSlot = {
20
+ groupId: CominsRowId;
21
+ height: number;
22
+ key: string;
23
+ kind: "group";
24
+ };
25
+ export type CominsPlaceholderVirtualSlot = {
26
+ kind: "placeholder";
27
+ key: string;
28
+ absoluteIndex: number;
29
+ height: number;
30
+ };
31
+ export type CominsVirtualSlot<TData> = CominsDataVirtualSlot<TData> | CominsPlaceholderVirtualSlot | CominsGroupVirtualSlot;
32
+ export type CominsVirtualRange = {
33
+ endIndex: number;
34
+ logicalScrollTop: number;
35
+ logicalStartOffset: number;
36
+ physicalScrollHeight: number;
37
+ renderOffset: number;
38
+ scrollScale: number;
39
+ startIndex: number;
40
+ };
41
+ export type CominsScrollAnchor = {
42
+ key: string;
43
+ offsetWithinSlot: number;
44
+ previousIndex: number;
45
+ };
46
+ export declare function getCominsDataSlotKey(rowId: CominsRowId): string;
47
+ export declare function createCominsDataVirtualSlot<TData>(input: {
48
+ dataIndex: number;
49
+ detail: CominsDataVirtualSlot<TData>["detail"] | null;
50
+ row: TData;
51
+ rowHeight: number;
52
+ autoHeight?: boolean;
53
+ rowId: CominsRowId;
54
+ visibleIndex: number;
55
+ }): CominsDataVirtualSlot<TData>;
56
+ export declare function normalizeCominsDetailEstimate(value: number | undefined, fallbackHeight: number): number;
57
+ export declare function normalizeCominsDetailHeight(value: number | "auto" | undefined): {
58
+ mode: "auto";
59
+ } | {
60
+ height: number;
61
+ mode: "fixed";
62
+ };
63
+ export declare class CominsHeightIndex {
64
+ private readonly heights;
65
+ private readonly tree;
66
+ private totalHeight;
67
+ private constructor();
68
+ static from(heights: readonly number[]): CominsHeightIndex;
69
+ private add;
70
+ getHeight(index: number): number;
71
+ getPrefixHeight(endExclusive: number): number;
72
+ getTotalHeight(): number;
73
+ findIndexAtOffset(offset: number): number;
74
+ updateHeight(index: number, height: number): number;
75
+ }
76
+ export type CominsDetailMeasurement = {
77
+ height: number;
78
+ width: number;
79
+ };
80
+ export declare function getCominsSlotHeight<TData>(slot: CominsVirtualSlot<TData>, rowHeight: number): number;
81
+ export declare function getCominsScrollScale(logicalTotalHeight: number, viewportHeight: number): {
82
+ logicalScrollableHeight: number;
83
+ physicalScrollableHeight: number;
84
+ physicalScrollHeight: number;
85
+ scrollScale: number;
86
+ };
87
+ export declare function getCominsMixedVirtualRange(input: {
88
+ heightIndex: Pick<CominsHeightIndex, "getTotalHeight" | "getPrefixHeight" | "findIndexAtOffset">;
89
+ overscan: number;
90
+ physicalScrollTop: number;
91
+ viewportHeight: number;
92
+ }): CominsVirtualRange;
93
+ export declare function resolveCominsMeasuredDetailHeight(cache: ReadonlyMap<CominsRowId, CominsDetailMeasurement>, rowId: CominsRowId, width: number, estimate: number): {
94
+ estimated: boolean;
95
+ height: number;
96
+ };
97
+ export declare function reconcileCominsDetailMeasurements(cache: Map<CominsRowId, CominsDetailMeasurement>, rowIds: ReadonlySet<CominsRowId>): void;
98
+ export declare function captureCominsScrollAnchor(input: {
99
+ heightIndex: CominsHeightIndex;
100
+ keys: readonly string[];
101
+ logicalScrollTop: number;
102
+ }): CominsScrollAnchor | undefined;
103
+ export declare function resolveCominsAnchorLogicalScrollTop(input: {
104
+ anchor: CominsScrollAnchor;
105
+ nextHeightIndex: CominsHeightIndex;
106
+ nextKeys: readonly string[];
107
+ previousKeys: readonly string[];
108
+ }): number;
109
+ export declare function resolveCominsAnchorTarget(input: {
110
+ anchor: CominsScrollAnchor;
111
+ getNextHeight: (index: number) => number;
112
+ nextKeys: readonly string[];
113
+ previousKeys: readonly string[];
114
+ }): {
115
+ index: number;
116
+ offsetWithinSlot: number;
117
+ } | undefined;
118
+ export declare function getCominsPhysicalScrollTop(logicalScrollTop: number, logicalTotalHeight: number, viewportHeight: number): number;
119
+ //# sourceMappingURL=virtual.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual.d.ts","sourceRoot":"","sources":["../../../src/core/layout/virtual.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ /** Framework-neutral table contracts. Rendering metadata belongs to the adapter. */
2
+ import type { CominsRowId, CominsComponentRowPayload, CominsColumnRuntimeState, CominsColumnGroupRuntimeState, CominsColumnLayout, CominsPaginationState, CominsSelectionState, CominsSortState, CominsSortModel } from "../model";
3
+ import type { CominsColumnPinned } from "../column-pinning";
4
+ export type * from "../model";
5
+ export type { CominsColumnPinned } from "../column-pinning";
6
+ export type CominsCellFormatParams<TData, TValue = unknown> = {
7
+ column: CominsTableRuntimeColumn<TData, TValue>;
8
+ row: TData;
9
+ rowId: CominsRowId;
10
+ value: TValue;
11
+ };
12
+ export type CominsColumnValueResolver<TData, TValue> = TValue | ((params: CominsCellFormatParams<TData, TValue>) => TValue);
13
+ export type CominsComponentColumnPayload<TData, TValue = unknown> = {
14
+ definition: CominsTableRuntimeColumn<TData, TValue>;
15
+ field: string;
16
+ id: string;
17
+ index: number;
18
+ label: string;
19
+ };
20
+ export type CominsCellComponentPayload<TData, TValue = unknown> = {
21
+ column: CominsComponentColumnPayload<TData, TValue>;
22
+ row: CominsComponentRowPayload<TData>;
23
+ selection: {
24
+ selectedRowCount: number;
25
+ };
26
+ value: TValue;
27
+ };
28
+ export type CominsClipboardGuard<TData, TValue = unknown> = boolean | ((params: CominsCellComponentPayload<TData, TValue>) => boolean);
29
+ export type CominsHeaderComponentPayload<TData, TValue = unknown> = {
30
+ column: CominsComponentColumnPayload<TData, TValue>;
31
+ layout: {
32
+ hidden: boolean;
33
+ width?: number;
34
+ };
35
+ sort: {
36
+ count: number;
37
+ direction: CominsSortState["direction"] | null;
38
+ enabled: boolean;
39
+ priority: number | null;
40
+ };
41
+ };
42
+ export type CoreCellDataConfig<TData, TValue = unknown> = {
43
+ disabled?: CominsClipboardGuard<TData, TValue>;
44
+ copyable?: CominsClipboardGuard<TData, TValue>;
45
+ pasteable?: CominsClipboardGuard<TData, TValue>;
46
+ parseClipboard?: (params: CominsCellComponentPayload<TData, TValue> & {
47
+ text: string;
48
+ }) => TValue;
49
+ validateFill?: (params: Omit<CominsCellComponentPayload<TData, TValue>, "value"> & {
50
+ value: unknown;
51
+ }) => boolean | void;
52
+ };
53
+ export type CominsColumnFilterKind = "boolean" | "date" | "number" | "text";
54
+ export type CominsColumnFilterConfig<TData, TValue = unknown> = {
55
+ caseSensitive?: boolean;
56
+ getValue?: (params: CominsCellFormatParams<TData, TValue>) => unknown;
57
+ kind: CominsColumnFilterKind;
58
+ };
59
+ export type CominsTableColumn<TData, TValue = unknown> = {
60
+ cell?: CoreCellDataConfig<TData, TValue>;
61
+ field: string;
62
+ filter?: CominsColumnFilterConfig<TData, TValue>;
63
+ hidden?: boolean;
64
+ id?: string;
65
+ label: string;
66
+ lockPosition?: boolean;
67
+ maxWidth?: number;
68
+ minWidth?: number;
69
+ pinned?: CominsColumnPinned;
70
+ sort?: boolean | ((left: TValue, right: TValue, leftRow: TData, rightRow: TData) => number);
71
+ width?: number;
72
+ };
73
+ export type CominsTableColumnGroup = {
74
+ children: string[];
75
+ hidden?: boolean;
76
+ id: string;
77
+ label: string;
78
+ lockPosition?: boolean;
79
+ pinned?: CominsColumnPinned;
80
+ };
81
+ export type CominsTableRuntimeColumn<TData, TValue = unknown> = Omit<CominsTableColumn<TData, TValue>, "id"> & {
82
+ id: string;
83
+ };
84
+ export type CominsTableRuntimeColumnGroup = CominsTableColumnGroup;
85
+ export type CominsEventColumn<TData, TValue = unknown> = CominsComponentColumnPayload<TData, TValue>;
86
+ export type CominsTableState<TData> = {
87
+ columnOrder: string[];
88
+ columnGroups: CominsTableRuntimeColumnGroup[];
89
+ columnGroupState: Record<string, CominsColumnGroupRuntimeState>;
90
+ columns: CominsTableRuntimeColumn<TData>[];
91
+ columnState: Record<string, CominsColumnRuntimeState>;
92
+ getRowId: (row: TData, index: number) => CominsRowId;
93
+ pagination: CominsPaginationState;
94
+ rowIds: CominsRowId[];
95
+ rows: TData[];
96
+ selection: CominsSelectionState;
97
+ showHeader: boolean;
98
+ sort: CominsSortState | null;
99
+ sortModel: CominsSortModel;
100
+ };
101
+ export type CominsTableStateInput<TData> = {
102
+ columnLayout?: Partial<CominsColumnLayout>;
103
+ columnGroups?: readonly CominsTableColumnGroup[];
104
+ columns: readonly CominsTableColumn<TData>[];
105
+ getRowId?: (row: TData, index: number) => CominsRowId;
106
+ pagination?: Partial<CominsPaginationState>;
107
+ rows: readonly TData[];
108
+ showHeader?: boolean;
109
+ sort?: CominsSortState | null;
110
+ sortModel?: CominsSortModel;
111
+ };
112
+ export type CominsHeaderColumnCell<TData> = {
113
+ colSpan: 1;
114
+ column: CominsTableRuntimeColumn<TData>;
115
+ columnId: string;
116
+ groupId?: string;
117
+ kind: "column";
118
+ rowSpan: 1 | 2;
119
+ };
120
+ export type CominsHeaderGroupCell = {
121
+ colSpan: number;
122
+ group: CominsTableRuntimeColumnGroup;
123
+ groupId: string;
124
+ kind: "group";
125
+ rowSpan: 1;
126
+ };
127
+ export type CominsHeaderCell<TData> = CominsHeaderColumnCell<TData> | CominsHeaderGroupCell;
128
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { CominsCellFormatParams, CominsTableRuntimeColumn } from "../model";
2
+ import type { CominsRowId } from "../model";
3
+ import type { CominsColumnFilterConfig as CoreFilterConfig, CominsColumnFilterKind } from "../model";
4
+ export type { CominsColumnFilterKind } from "../model";
5
+ export type CominsColumnFilterOperator = "between" | "contains" | "endsWith" | "equals" | "greaterThan" | "greaterThanOrEqual" | "isEmpty" | "isNotEmpty" | "lessThan" | "lessThanOrEqual" | "notContains" | "notEquals" | "startsWith";
6
+ export type CominsColumnFilterConfig<TData, TValue = unknown> = Omit<CoreFilterConfig<TData, TValue>, "getValue"> & {
7
+ getValue?: (params: CominsCellFormatParams<TData, TValue>) => unknown;
8
+ };
9
+ export type CominsColumnFilterRule = {
10
+ columnId: string;
11
+ operator: CominsColumnFilterOperator;
12
+ value?: boolean | null | number | string;
13
+ valueTo?: null | number | string;
14
+ };
15
+ export type CominsColumnFilterModel = readonly CominsColumnFilterRule[];
16
+ export type CominsColumnFilteringConfig = {
17
+ model: CominsColumnFilterModel;
18
+ onChangeModel?: (model: CominsColumnFilterRule[]) => void;
19
+ onChangeOpenColumnId?: (columnId: string | null) => void;
20
+ openColumnId?: string | null;
21
+ };
22
+ export type CominsColumnFilteringSourceRow<TData> = {
23
+ data: TData;
24
+ dataIndex: number;
25
+ id: CominsRowId;
26
+ };
27
+ type CominsNormalizedFilterValue = boolean | number | string;
28
+ export type CominsNormalizedColumnFilterRule<TData> = {
29
+ column: CominsTableRuntimeColumn<TData>;
30
+ config: CominsColumnFilterConfig<TData>;
31
+ operator: CominsColumnFilterOperator;
32
+ value?: CominsNormalizedFilterValue;
33
+ valueTo?: number;
34
+ };
35
+ export declare function getCominsColumnFilterOperators(kind: CominsColumnFilterKind): CominsColumnFilterOperator[];
36
+ export declare function normalizeCominsColumnFilterModel<TData>({ columns, model, }: {
37
+ columns: readonly CominsTableRuntimeColumn<TData>[];
38
+ model: unknown;
39
+ }): CominsNormalizedColumnFilterRule<TData>[];
40
+ export declare function getCominsFilteredRowIndexes<TData>({ columns, model, rows, }: {
41
+ columns: readonly CominsTableRuntimeColumn<TData>[];
42
+ model: unknown;
43
+ rows: readonly CominsColumnFilteringSourceRow<TData>[];
44
+ }): number[];
45
+ //# sourceMappingURL=filtering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["../../../src/core/rows/filtering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,KAAK,EAAE,wBAAwB,IAAI,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAErG,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,MAAM,MAAM,0BAA0B,GAClC,SAAS,GACT,UAAU,GACV,UAAU,GACV,QAAQ,GACR,aAAa,GACb,oBAAoB,GACpB,SAAS,GACT,YAAY,GACZ,UAAU,GACV,iBAAiB,GACjB,aAAa,GACb,WAAW,GACX,YAAY,CAAC;AAEjB,MAAM,MAAM,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG;IAClH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,0BAA0B,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IACzC,OAAO,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,SAAS,sBAAsB,EAAE,CAAC;AAExE,MAAM,MAAM,2BAA2B,GAAG;IACxC,KAAK,EAAE,uBAAuB,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,IAAI,CAAC;IAC1D,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,8BAA8B,CAAC,KAAK,IAAI;IAClD,IAAI,EAAE,KAAK,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,WAAW,CAAC;CACjB,CAAC;AAEF,KAAK,2BAA2B,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7D,MAAM,MAAM,gCAAgC,CAAC,KAAK,IAAI;IACpD,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,EAAE,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACxC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,KAAK,CAAC,EAAE,2BAA2B,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AA2CF,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,sBAAsB,gCAE1E;AAwED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,EACtD,OAAO,EACP,KAAK,GACN,EAAE;IACD,OAAO,EAAE,SAAS,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;IACpD,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,gCAAgC,CAAC,KAAK,CAAC,EAAE,CAgE5C;AAkGD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,EACjD,OAAO,EACP,KAAK,EACL,IAAI,GACL,EAAE;IACD,OAAO,EAAE,SAAS,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;IACpD,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,SAAS,8BAA8B,CAAC,KAAK,CAAC,EAAE,CAAC;CACxD,YAQA"}
@@ -0,0 +1,97 @@
1
+ import type { CominsRowId, CominsSortModel, CominsTableRuntimeColumn } from "../model";
2
+ export type CominsRowGroupAggregation = "avg" | "count" | "max" | "min" | "sum";
3
+ export type CominsRowGroupDropPosition = "after" | "before";
4
+ export type CominsRowGroupingConfig<TData, TGroup> = {
5
+ aggregations?: Readonly<Partial<Record<string, CominsRowGroupAggregation>>>;
6
+ groups: readonly TGroup[];
7
+ getGroupId: (group: TGroup) => CominsRowId;
8
+ };
9
+ export type CominsRowGroupingSourceRow<TData> = {
10
+ data: TData;
11
+ dataIndex: number;
12
+ id: CominsRowId;
13
+ };
14
+ export type CominsAggregateState = {
15
+ count: number;
16
+ kind: "avg";
17
+ sum: number;
18
+ } | {
19
+ count: number;
20
+ kind: "count";
21
+ } | {
22
+ hasValue: boolean;
23
+ kind: "max" | "min";
24
+ value: number;
25
+ } | {
26
+ count: number;
27
+ kind: "sum";
28
+ sum: number;
29
+ };
30
+ export type CominsNormalizedGroup<TGroup> = {
31
+ group: TGroup;
32
+ groupId: CominsRowId;
33
+ groupIndex: number;
34
+ };
35
+ export type CominsGroupNode<TGroup> = CominsNormalizedGroup<TGroup> & {
36
+ aggregationState: ReadonlyMap<string, CominsAggregateState>;
37
+ leafSourceIndexes: readonly number[];
38
+ };
39
+ export type CominsGroupModel<TGroup> = {
40
+ groupIds: readonly CominsRowId[];
41
+ groupsById: ReadonlyMap<CominsRowId, CominsGroupNode<TGroup>>;
42
+ };
43
+ export type CominsOrderedGroupModel<TGroup> = CominsGroupModel<TGroup> & {
44
+ orderedLeafSourceIndexesById: ReadonlyMap<CominsRowId, readonly number[]>;
45
+ };
46
+ export type CominsGroupingProjectionEntry = {
47
+ groupId: CominsRowId;
48
+ key: string;
49
+ kind: "group";
50
+ } | {
51
+ dataIndex: number;
52
+ key: string;
53
+ kind: "data";
54
+ rowId: CominsRowId;
55
+ visibleLeafIndex: number;
56
+ };
57
+ export declare function getCominsAggregateValue(state: CominsAggregateState): number | null;
58
+ export declare function getCominsGroupSlotKey(groupId: CominsRowId): string;
59
+ export declare function normalizeCominsRowGrouping<TData, TGroup>(input: {
60
+ columns: readonly CominsTableRuntimeColumn<TData>[];
61
+ config: CominsRowGroupingConfig<TData, TGroup>;
62
+ }): {
63
+ aggregationColumns: Map<string, CominsTableRuntimeColumn<TData>>;
64
+ aggregations: Map<string, CominsRowGroupAggregation>;
65
+ groupIds: CominsRowId[];
66
+ groupsById: Map<CominsRowId, CominsNormalizedGroup<TGroup>>;
67
+ };
68
+ export declare function createCominsGroupModel<TData, TGroup>(input: {
69
+ aggregationColumns?: ReadonlyMap<string, CominsTableRuntimeColumn<TData>>;
70
+ aggregations: ReadonlyMap<string, CominsRowGroupAggregation>;
71
+ getRowGroupId: (row: TData, dataIndex: number) => CominsRowId;
72
+ groupIds: readonly CominsRowId[];
73
+ groupsById: ReadonlyMap<CominsRowId, CominsNormalizedGroup<TGroup>>;
74
+ rows: readonly CominsRowGroupingSourceRow<TData>[];
75
+ }): CominsGroupModel<TGroup>;
76
+ export declare function orderCominsGroupModel<TData, TGroup>(input: {
77
+ columns: readonly CominsTableRuntimeColumn<TData>[];
78
+ model: CominsGroupModel<TGroup>;
79
+ rows: readonly TData[];
80
+ sortModel: CominsSortModel;
81
+ }): CominsOrderedGroupModel<TGroup>;
82
+ export declare function projectCominsGroups<TGroup>(input: {
83
+ expandedGroupIds: readonly CominsRowId[];
84
+ model: CominsOrderedGroupModel<TGroup>;
85
+ rowIds: readonly CominsRowId[];
86
+ }): {
87
+ entries: CominsGroupingProjectionEntry[];
88
+ visibleLeafRowIds: CominsRowId[];
89
+ };
90
+ export declare function moveCominsRowGroup<TGroup>(input: {
91
+ getGroupId: (group: TGroup) => CominsRowId;
92
+ groups: readonly TGroup[];
93
+ position: CominsRowGroupDropPosition;
94
+ sourceGroupId: CominsRowId;
95
+ targetGroupId: CominsRowId;
96
+ }): TGroup[];
97
+ //# sourceMappingURL=grouping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grouping.d.ts","sourceRoot":"","sources":["../../../src/core/rows/grouping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ import type { CominsPaginationState, CominsRowId, CominsSortModel, CominsTableColumn } from "../model";
2
+ import type { CominsGroupingProjectionEntry, projectCominsGroups } from "./grouping";
3
+ import { type CominsTreeNode } from "../../tree";
4
+ type Source<TData> = {
5
+ rows: readonly TData[];
6
+ rowIds: readonly CominsRowId[];
7
+ };
8
+ export type CoreDataEntry<TData> = {
9
+ kind: "data";
10
+ key: string;
11
+ row: TData;
12
+ rowId: CominsRowId;
13
+ dataIndex: number;
14
+ visibleLeafIndex: number;
15
+ absoluteIndex?: number;
16
+ };
17
+ export type CoreProjectionEntry<TData> = CoreDataEntry<TData> | Extract<CominsGroupingProjectionEntry, {
18
+ kind: "group";
19
+ }> | {
20
+ kind: "placeholder";
21
+ key: string;
22
+ absoluteIndex: number;
23
+ };
24
+ export type CoreProjectionInput<TData, TGroup = unknown> = Source<TData> & ({
25
+ mode: "flat";
26
+ dataIndexes: number[];
27
+ pagination?: CominsPaginationState;
28
+ virtualized?: boolean;
29
+ } | {
30
+ mode: "tree";
31
+ dataIndexes: number[];
32
+ } | {
33
+ mode: "grouped";
34
+ projection: ReturnType<typeof projectCominsGroups<TGroup>>;
35
+ } | {
36
+ mode: "viewport";
37
+ dataIndexes: number[];
38
+ absoluteIndexById: ReadonlyMap<CominsRowId, number>;
39
+ rowCount: number;
40
+ range?: {
41
+ startIndex: number;
42
+ endIndex: number;
43
+ };
44
+ });
45
+ export type CoreProjection<TData> = {
46
+ entries: CoreProjectionEntry<TData>[];
47
+ dataIndexes: number[];
48
+ visibleRowIds: CominsRowId[];
49
+ pageDataIndexes: number[];
50
+ pageStartIndex: number;
51
+ };
52
+ export declare function getCorePageProjection(visibleRowCount: number, pagination: CominsPaginationState): {
53
+ pageSize: number;
54
+ maxPageIndex: number;
55
+ effectivePageIndex: number;
56
+ pageStartIndex: number;
57
+ };
58
+ export declare function projectCoreViewportWindow<TEntry extends {
59
+ kind: "data";
60
+ absoluteIndex?: number;
61
+ }>(loaded: readonly TEntry[], range: {
62
+ startIndex: number;
63
+ endIndex: number;
64
+ }, rowCount: number): (TEntry | {
65
+ kind: "placeholder";
66
+ key: string;
67
+ absoluteIndex: number;
68
+ })[];
69
+ /** Inputs are prepared by the separately memoized filter/sort/group phases. */
70
+ export declare function projectCoreRows<TData, TGroup = unknown>(input: CoreProjectionInput<TData, TGroup>): CoreProjection<TData>;
71
+ export declare function getSortedCoreTree<TData>(data: readonly CominsTreeNode<TData>[], columns: readonly CominsTableColumn<TData>[], sortModel: CominsSortModel): readonly CominsTreeNode<TData>[];
72
+ export {};
73
+ //# sourceMappingURL=projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/core/rows/projection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type CominsSummaryBuiltin = "avg" | "count" | "max" | "min" | "sum";
2
+ export declare function getBuiltinSummaryValue(kind: CominsSummaryBuiltin, values: readonly unknown[]): number | null;
3
+ //# sourceMappingURL=summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../../src/core/rows/summary.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAM3E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,GAAG,IAAI,CAoB5G"}
@@ -0,0 +1,49 @@
1
+ import type { CominsCellAddress, CominsCellRange, CominsRowId } from "../model";
2
+ import type { CominsTreeDropPosition } from "../../tree";
3
+ export { getCominsColumnMouseIntent } from "../../column-pointer";
4
+ export { getCominsDragAutoScrollTop, getCominsDragAutoScrollVelocity } from "../../drag-autoscroll";
5
+ export type CoreCellBounds = {
6
+ top: number;
7
+ bottom: number;
8
+ left: number;
9
+ right: number;
10
+ };
11
+ export declare function getCoreCellBounds(range: CominsCellRange, rows: readonly CominsRowId[], columns: readonly string[]): CoreCellBounds | null;
12
+ export declare function getCoreCellRange(box: CoreCellBounds, rows: readonly CominsRowId[], columns: readonly string[]): CominsCellRange;
13
+ export declare function resolveCoreFillTarget({ source, address, rowIds, columnIds }: {
14
+ source: CominsCellRange;
15
+ address: CominsCellAddress | null;
16
+ rowIds: readonly CominsRowId[];
17
+ columnIds: readonly string[];
18
+ }): CominsCellRange | null;
19
+ export declare function planCoreSelectionCopy({ cells, selectedRowIds, rowIds: order, columnIds, target }: {
20
+ cells: readonly CominsCellAddress[];
21
+ selectedRowIds: readonly CominsRowId[];
22
+ rowIds: readonly CominsRowId[];
23
+ columnIds: readonly string[];
24
+ target: "auto" | "cells" | "rows";
25
+ }): {
26
+ target: "cells" | "rows";
27
+ rowIds: readonly CominsRowId[];
28
+ columnIds: readonly string[];
29
+ selected: Map<CominsRowId, Set<string>>;
30
+ } | null;
31
+ export declare function resolveCoreTreeDropContext<TEntry extends {
32
+ rowId: CominsRowId;
33
+ path: readonly number[];
34
+ }>({ entries, sourceId, targetId, position }: {
35
+ entries: readonly TEntry[];
36
+ sourceId: CominsRowId;
37
+ targetId: CominsRowId;
38
+ position: CominsTreeDropPosition;
39
+ }): {
40
+ source: TEntry;
41
+ target: TEntry;
42
+ position: CominsTreeDropPosition;
43
+ destination: {
44
+ parentId: CominsRowId | null;
45
+ beforeRowId: CominsRowId | null;
46
+ };
47
+ } | null;
48
+ export declare function resolveCoreTreePointerPosition(fraction: number, allowReparent: boolean | undefined): CominsTreeDropPosition;
49
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/core/selection/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAChF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAEpG,MAAM,MAAM,cAAc,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,SAAS,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,cAAc,GAAG,IAAI,CAIzI;AACD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAE/H;AACD,wBAAgB,qBAAqB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;IAC5E,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1H,GAAG,eAAe,GAAG,IAAI,CASzB;AAED,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;IACjG,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAAC,cAAc,EAAE,SAAS,WAAW,EAAE,CAAC;IAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAC9K;;;;;SAuBA;AAGD,wBAAgB,0BAA0B,CAAC,MAAM,SAAS;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IACpJ,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,sBAAsB,CAAC;CAC5G;;;;;;;;SASA;AACD,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,SAAS,GAAG,sBAAsB,CAE3H"}