comins-table 0.1.9 → 0.1.10

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.
@@ -0,0 +1,25 @@
1
+ import type { CominsEventRow } from "./index";
2
+ export type CominsRowHeight = number | "auto";
3
+ export type CominsRowHeightParams<TData> = {
4
+ row: CominsEventRow<TData>;
5
+ };
6
+ export type CominsRowMeasurement<TData> = {
7
+ row: TData;
8
+ layoutKey: string;
9
+ contentRevision?: object;
10
+ height: number;
11
+ };
12
+ export declare function normalizeCominsRowHeight(value: number | undefined, fallback?: number): number;
13
+ export declare function resolveCominsRowHeight<TData>(input: {
14
+ value: CominsRowHeight | undefined;
15
+ rowHeight: number;
16
+ estimate?: number;
17
+ measurement?: CominsRowMeasurement<TData>;
18
+ row: TData;
19
+ layoutKey: string;
20
+ contentRevision?: object;
21
+ }): {
22
+ auto: boolean;
23
+ height: number;
24
+ };
25
+ //# sourceMappingURL=row-height.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-height.d.ts","sourceRoot":"","sources":["../src/row-height.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,CAAC;AAC9C,MAAM,MAAM,qBAAqB,CAAC,KAAK,IAAI;IAAE,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,CAAA;CAAE,CAAC;AAC1E,MAAM,MAAM,oBAAoB,CAAC,KAAK,IAAI;IAAE,GAAG,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,SAAK,UAEhF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE;IACnD,KAAK,EAAE,eAAe,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC1C,GAAG,EAAE,KAAK,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;;;EAWA"}
@@ -0,0 +1,14 @@
1
+ import { type CominsCellAddress, type CominsCopiedCellRange, type CominsRowId, type CominsTableState } from "./core";
2
+ export type CominsSelectedCell = CominsCellAddress & {
3
+ value: unknown;
4
+ };
5
+ export type CominsCopyTarget = "auto" | "cells" | "rows";
6
+ export type CominsSelectionCopy = {
7
+ target: "cells" | "rows";
8
+ text: string;
9
+ data: CominsCopiedCellRange;
10
+ };
11
+ export declare function selectedRowData<T>(state: CominsTableState<T>): T[];
12
+ export declare function selectedCellValues<T>(state: CominsTableState<T>, order?: readonly CominsRowId[]): CominsSelectedCell[];
13
+ export declare function copySelectionData<T>(state: CominsTableState<T>, target?: CominsCopyTarget, order?: readonly CominsRowId[]): CominsSelectionCopy | null;
14
+ //# sourceMappingURL=selection-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection-data.d.ts","sourceRoot":"","sources":["../src/selection-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAC5F,MAAM,QAAQ,CAAC;AAEhB,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AACzD,MAAM,MAAM,mBAAmB,GAAG;IAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAE1G,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAGlE;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,KAAK,GAAE,SAAS,WAAW,EAAiB,GAAG,kBAAkB,EAAE,CASpI;AASD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,MAAM,GAAE,gBAAyB,EAAE,KAAK,GAAE,SAAS,WAAW,EAAiB,GAAG,mBAAmB,GAAG,IAAI,CAoC5K"}
@@ -0,0 +1,46 @@
1
+ import type React from "react";
2
+ import type { CominsRowId } from "./core";
3
+ import type { CominsEventRow, CominsRowDragReason, CominsRowDragResult, CominsRowDragTarget, CominsTableRowProps } from "./index";
4
+ import { type CominsTreeDropContext, type CominsTreeNode, type CominsTreeRowDragConfig, type CominsVisibleTreeRow } from "./tree";
5
+ export type CominsBeforeTreeRowDragPayload<T> = {
6
+ event: React.PointerEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>;
7
+ row: CominsEventRow<T>;
8
+ };
9
+ export type CominsTreeRowDragPayload<T> = {
10
+ event: PointerEvent | KeyboardEvent;
11
+ row: CominsEventRow<T>;
12
+ target: CominsRowDragTarget;
13
+ };
14
+ export type CominsAfterTreeRowDragPayload<T> = {
15
+ event: PointerEvent | KeyboardEvent | null;
16
+ row: CominsEventRow<T>;
17
+ target?: CominsRowDragTarget;
18
+ reason: CominsRowDragReason;
19
+ result: CominsRowDragResult;
20
+ };
21
+ type Options<T> = {
22
+ data: readonly CominsTreeNode<T>[];
23
+ entries: readonly CominsVisibleTreeRow<T>[];
24
+ getRowId: (row: T, index: number) => CominsRowId;
25
+ config?: CominsTreeRowDragConfig<T>;
26
+ sorted: boolean;
27
+ rowProps?: CominsTableRowProps<T>;
28
+ onChangeData?: (data: CominsTreeNode<T>[]) => void;
29
+ onBeforeRowDrag?: (payload: CominsBeforeTreeRowDragPayload<T>) => boolean | void;
30
+ onRowDrag?: (payload: CominsTreeRowDragPayload<T>) => void;
31
+ onAfterDragRow?: (payload: CominsAfterTreeRowDragPayload<T>) => void;
32
+ };
33
+ type Preview<T> = {
34
+ context: CominsTreeDropContext<T>;
35
+ valid: boolean;
36
+ };
37
+ export declare function useCominsTreeDrag<T>(options: Options<T>): {
38
+ announcement: string;
39
+ navigateRef: React.RefObject<((id: CominsRowId) => void) | null>;
40
+ restoreFocus: () => void;
41
+ onPointerDown: (event: React.PointerEvent<HTMLElement>, row: CominsEventRow<T>) => void;
42
+ onKeyDown: (event: React.KeyboardEvent<HTMLElement>, row: CominsEventRow<T>) => void;
43
+ preview: Preview<T> | null;
44
+ };
45
+ export {};
46
+ //# sourceMappingURL=tree-drag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-drag.d.ts","sourceRoot":"","sources":["../src/tree-drag.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAElI,OAAO,EAAsB,KAAK,qBAAqB,EAA+B,KAAK,cAAc,EAAE,KAAK,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAEnL,MAAM,MAAM,8BAA8B,CAAC,CAAC,IAAI;IAC9C,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IAC1E,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI;IACxC,KAAK,EAAE,YAAY,GAAG,aAAa,CAAC;IACpC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,6BAA6B,CAAC,CAAC,IAAI;IAC7C,KAAK,EAAE,YAAY,GAAG,aAAa,GAAG,IAAI,CAAC;IAC3C,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;CAC7B,CAAC;AAEF,KAAK,OAAO,CAAC,CAAC,IAAI;IAChB,IAAI,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,OAAO,EAAE,SAAS,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC;IACjD,MAAM,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;IACnD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,IAAI,CAAC;IACjF,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC3D,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACtE,CAAC;AACF,KAAK,OAAO,CAAC,CAAC,IAAI;IAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAUxE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;;uCAGrB,WAAW,KAAK,IAAI;;2BAyFvB,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;uBA4E3D,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC;;EAcnF"}
package/dist/tree.d.ts CHANGED
@@ -7,6 +7,21 @@ export type CominsTreeNode<TItem> = {
7
7
  export type CominsTreeExpansionOptions = {
8
8
  defaultExpandAll?: boolean;
9
9
  };
10
+ export type CominsTreeMoveDestination = {
11
+ parentId: CominsRowId | null;
12
+ beforeRowId: CominsRowId | null;
13
+ };
14
+ export type CominsTreeDropPosition = "before" | "after" | "inside";
15
+ export type CominsTreeDropContext<TItem> = {
16
+ source: CominsVisibleTreeRow<TItem>;
17
+ target: CominsVisibleTreeRow<TItem>;
18
+ destination: CominsTreeMoveDestination;
19
+ position: CominsTreeDropPosition;
20
+ };
21
+ export type CominsTreeRowDragConfig<TItem> = {
22
+ allowReparent?: boolean;
23
+ canDrop?: (context: CominsTreeDropContext<TItem>) => boolean;
24
+ };
10
25
  export type CominsVisibleTreeRow<TItem> = {
11
26
  depth: number;
12
27
  expanded: boolean;
@@ -15,6 +30,10 @@ export type CominsVisibleTreeRow<TItem> = {
15
30
  path: readonly number[];
16
31
  rowId: CominsRowId;
17
32
  };
33
+ /** Move a complete subtree. Invalid and unchanged moves retain the input reference. */
34
+ export declare function moveCominsTreeNode<TItem>(nodes: readonly CominsTreeNode<TItem>[], rowId: CominsRowId, destination: CominsTreeMoveDestination, getRowId: (item: TItem, index: number) => CominsRowId, options?: {
35
+ allowReparent?: boolean;
36
+ }): readonly CominsTreeNode<TItem>[];
18
37
  export declare function flattenCominsTree<TItem>(nodes: readonly CominsTreeNode<TItem>[], getRowId: (item: TItem, index: number) => CominsRowId, options?: CominsTreeExpansionOptions): CominsVisibleTreeRow<TItem>[];
19
38
  export declare function getCominsTreeLeafItems<TItem>(nodes: readonly CominsTreeNode<TItem>[]): TItem[];
20
39
  export declare function toggleCominsTreeNode<TItem>(nodes: readonly CominsTreeNode<TItem>[], rowId: CominsRowId, getRowId: (item: TItem, index: number) => CominsRowId, options?: CominsTreeExpansionOptions): CominsTreeNode<TItem>[];
@@ -1 +1 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,MAAM,MAAM,cAAc,CAAC,KAAK,IAAI;IAClC,QAAQ,CAAC,EAAE,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,KAAK,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oBAAoB,CAAC,KAAK,IAAI;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,KAAK,CAAC;IACZ,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AA0EF,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,KAAK,EAAE,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,EACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,EACrD,OAAO,GAAE,0BAA+B,GACvC,oBAAoB,CAAC,KAAK,CAAC,EAAE,CA2B/B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,CAE9F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,KAAK,EAAE,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,EACvC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,EACrD,OAAO,GAAE,0BAA+B,GACvC,cAAc,CAAC,KAAK,CAAC,EAAE,CAWzB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EACxC,KAAK,EAAE,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,EACvC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,EACrD,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,KAAK,GAC7B,cAAc,CAAC,KAAK,CAAC,EAAE,CAQzB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAC1C,KAAK,EAAE,SAAS,cAAc,CAAC,KAAK,CAAC,EAAE,EACvC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,MAAM,GAC7C,cAAc,CAAC,KAAK,CAAC,EAAE,CAOzB"}
1
+ {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type CominsViewportData, type CominsViewportPatch, type CominsViewportRequest, type CominsViewportRevision } from "./viewport-data";
2
+ export type CominsViewportDatasource = {
3
+ revision: CominsViewportRevision;
4
+ maxConcurrentRequests?: number;
5
+ heightCacheSize?: number;
6
+ };
7
+ export type CominsViewportOptions<T> = {
8
+ rowCount: number;
9
+ queryKey: CominsViewportRevision;
10
+ getRows: (request: CominsViewportRequest) => readonly T[] | Promise<readonly T[]>;
11
+ blockSize?: number;
12
+ cacheSize?: number;
13
+ maxConcurrentRequests?: number;
14
+ heightCacheSize?: number;
15
+ onEdit?: (changes: readonly CominsViewportPatch<T>[]) => void;
16
+ };
17
+ /** State lives with the consumer. The Table receives a controlled snapshot and callbacks. */
18
+ export declare function useCominsViewport<T>(options: CominsViewportOptions<T>): {
19
+ data: CominsViewportData<T>;
20
+ tableProps: {
21
+ data: CominsViewportData<T>;
22
+ onChangeData: (next: CominsViewportData<T>) => void;
23
+ onViewportRequest: (request: CominsViewportRequest) => Promise<void>;
24
+ viewportDatasource: CominsViewportDatasource;
25
+ virtualized: true;
26
+ };
27
+ };
28
+ //# sourceMappingURL=use-viewport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-viewport.d.ts","sourceRoot":"","sources":["../src/use-viewport.ts"],"names":[],"mappings":"AACA,OAAO,EAAsD,KAAK,kBAAkB,EAAgC,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,KAAK,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE/N,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,mBAAmB,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;CAC/D,CAAC;AAEF,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;;;;6BA+B5B,kBAAkB,CAAC,CAAC,CAAC;qCAdP,qBAAqB;;;;EAyB5E"}
@@ -0,0 +1,73 @@
1
+ import type { CominsRowId, CominsSelectionState } from "./core";
2
+ export type CominsViewportRevision = string | number;
3
+ export type CominsViewportRange = {
4
+ startIndex: number;
5
+ endIndex: number;
6
+ };
7
+ export type CominsViewportRequest = CominsViewportRange & {
8
+ revision: CominsViewportRevision;
9
+ requestId: string;
10
+ signal: AbortSignal;
11
+ retainRange: CominsViewportRange;
12
+ };
13
+ export type CominsViewportBlock<T> = {
14
+ startIndex: number;
15
+ rows: readonly T[];
16
+ version: number;
17
+ touched: number;
18
+ };
19
+ export type CominsViewportRequestState = CominsViewportRange & {
20
+ requestId: string;
21
+ status: "loading" | "error";
22
+ version: number;
23
+ };
24
+ export type CominsViewportPatch<T> = {
25
+ index: number;
26
+ row: T;
27
+ };
28
+ export type CominsViewportData<T> = {
29
+ revision: CominsViewportRevision;
30
+ rowCount: number;
31
+ blockSize: number;
32
+ cacheSize: number;
33
+ blocks: readonly CominsViewportBlock<T>[];
34
+ requests: readonly CominsViewportRequestState[];
35
+ retainRange: CominsViewportRange;
36
+ version: number;
37
+ clock: number;
38
+ changes: readonly CominsViewportPatch<T>[];
39
+ };
40
+ export type CominsViewportDataOptions = {
41
+ revision: CominsViewportRevision;
42
+ rowCount: number;
43
+ blockSize?: number;
44
+ cacheSize?: number;
45
+ };
46
+ export type CominsViewportDataEvent<T> = {
47
+ type: "request";
48
+ request: CominsViewportRequest;
49
+ } | {
50
+ type: "cancel";
51
+ request: CominsViewportRequest;
52
+ } | {
53
+ type: "error";
54
+ request: CominsViewportRequest;
55
+ } | {
56
+ type: "success";
57
+ request: CominsViewportRequest;
58
+ rows: readonly T[];
59
+ } | {
60
+ type: "retain";
61
+ range: CominsViewportRange;
62
+ } | {
63
+ type: "patch";
64
+ changes: readonly CominsViewportPatch<T>[];
65
+ } | {
66
+ type: "reset";
67
+ options: CominsViewportDataOptions;
68
+ };
69
+ export declare function normalizeCominsViewportInteger(value: number | undefined, fallback: number): number;
70
+ export declare function createCominsViewportData<T>(options: CominsViewportDataOptions): CominsViewportData<T>;
71
+ export declare function reduceCominsViewportData<T>(data: CominsViewportData<T>, event: CominsViewportDataEvent<T>): CominsViewportData<T>;
72
+ export declare function reconcileCominsViewportSelection(selection: CominsSelectionState, rowIds: readonly CominsRowId[], indices: readonly number[], columnIds: readonly string[]): CominsSelectionState;
73
+ //# sourceMappingURL=viewport-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport-data.d.ts","sourceRoot":"","sources":["../src/viewport-data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { CominsViewportRange } from "./viewport-data";
2
+ /** Sparse measured blocks only: storage does not depend on total dataset length. */
3
+ export declare class CominsViewportHeightIndex {
4
+ readonly rowCount: number;
5
+ readonly estimate: number;
6
+ readonly blockSize: number;
7
+ readonly maxBlocks: number;
8
+ private blocks;
9
+ private deltas;
10
+ constructor(rowCount: number, estimate: number, blockSize?: number, maxBlocks?: number);
11
+ clone(): CominsViewportHeightIndex;
12
+ get measuredBlockCount(): number;
13
+ get measuredRowCount(): number;
14
+ getHeight(index: number): number;
15
+ getPrefixHeight(endExclusive: number): number;
16
+ getTotalHeight(): number;
17
+ findIndexAtOffset(offset: number): number;
18
+ updateHeight(index: number, value: number): number;
19
+ retain(range: CominsViewportRange): void;
20
+ }
21
+ //# sourceMappingURL=viewport-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport-layout.d.ts","sourceRoot":"","sources":["../src/viewport-layout.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,oFAAoF;AACpF,qBAAa,yBAAyB;IAGxB,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAAE,QAAQ,CAAC,SAAS;IAAQ,QAAQ,CAAC,SAAS;IAF9G,OAAO,CAAC,MAAM,CAA0C;IACxD,OAAO,CAAC,MAAM,CAA6B;IAC3C,YAAqB,QAAQ,EAAE,MAAM,EAAW,QAAQ,EAAE,MAAM,EAAW,SAAS,SAAM,EAAW,SAAS,SAAK,EAAI;IACvH,KAAK,8BAKJ;IACD,IAAI,kBAAkB,WAA+B;IACrD,IAAI,gBAAgB,WAAsF;IAC1G,SAAS,CAAC,KAAK,EAAE,MAAM,UAA8F;IACrH,eAAe,CAAC,YAAY,EAAE,MAAM,UAQnC;IACD,cAAc,WAAkD;IAChE,iBAAiB,CAAC,MAAM,EAAE,MAAM,UAW/B;IACD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAYxC;IACD,MAAM,CAAC,KAAK,EAAE,mBAAmB,QAShC;CACF"}
@@ -0,0 +1,9 @@
1
+ import { type CominsViewportData, type CominsViewportRange, type CominsViewportRequest } from "./viewport-data";
2
+ export declare function useCominsViewportRequests<T>(input: {
3
+ data?: CominsViewportData<T>;
4
+ range: CominsViewportRange;
5
+ maxConcurrentRequests?: number;
6
+ onRequest?: (request: CominsViewportRequest) => void | Promise<void>;
7
+ onChangeData?: (data: CominsViewportData<T>) => void;
8
+ }): (index: number) => void;
9
+ //# sourceMappingURL=viewport-requests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport-requests.d.ts","sourceRoot":"","sources":["../src/viewport-requests.ts"],"names":[],"mappings":"AACA,OAAO,EAA4D,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG1K,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE;IAClD,IAAI,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC7B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACtD,WA2CgB,MAAM,UAKtB"}
@@ -1,6 +1,7 @@
1
1
  import type { CominsRowId } from "./core";
2
2
  export declare const COMINS_MAX_PHYSICAL_TOTAL_HEIGHT = 1500000;
3
3
  export type CominsDataVirtualSlot<TData> = {
4
+ absoluteIndex?: number;
4
5
  dataIndex: number;
5
6
  detail?: {
6
7
  estimated: boolean;
@@ -9,6 +10,8 @@ export type CominsDataVirtualSlot<TData> = {
9
10
  };
10
11
  key: string;
11
12
  kind: "data";
13
+ rowHeight?: number;
14
+ autoHeight?: boolean;
12
15
  row: TData;
13
16
  rowId: CominsRowId;
14
17
  visibleIndex: number;
@@ -19,7 +22,13 @@ export type CominsGroupVirtualSlot = {
19
22
  key: string;
20
23
  kind: "group";
21
24
  };
22
- export type CominsVirtualSlot<TData> = CominsDataVirtualSlot<TData> | CominsGroupVirtualSlot;
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;
23
32
  export type CominsVirtualRange = {
24
33
  endIndex: number;
25
34
  logicalScrollTop: number;
@@ -40,6 +49,7 @@ export declare function createCominsDataVirtualSlot<TData>(input: {
40
49
  detail: CominsDataVirtualSlot<TData>["detail"] | null;
41
50
  row: TData;
42
51
  rowHeight: number;
52
+ autoHeight?: boolean;
43
53
  rowId: CominsRowId;
44
54
  visibleIndex: number;
45
55
  }): CominsDataVirtualSlot<TData>;
@@ -75,7 +85,7 @@ export declare function getCominsScrollScale(logicalTotalHeight: number, viewpor
75
85
  scrollScale: number;
76
86
  };
77
87
  export declare function getCominsMixedVirtualRange(input: {
78
- heightIndex: CominsHeightIndex;
88
+ heightIndex: Pick<CominsHeightIndex, "getTotalHeight" | "getPrefixHeight" | "findIndexAtOffset">;
79
89
  overscan: number;
80
90
  physicalScrollTop: number;
81
91
  viewportHeight: number;
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-layout.d.ts","sourceRoot":"","sources":["../src/virtual-layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virtual-layout.d.ts","sourceRoot":"","sources":["../src/virtual-layout.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "comins-table",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "repository": {
package/styles.css CHANGED
@@ -302,6 +302,12 @@
302
302
  padding-left: calc(var(--comins-tree-depth) * 16px);
303
303
  }
304
304
 
305
+ .comins-table__tr[data-comins-tree-drop="before"] > td { box-shadow: inset 0 2px var(--comins-table-accent-strong); }
306
+ .comins-table__tr[data-comins-tree-drop="after"] > td { box-shadow: inset 0 -2px var(--comins-table-accent-strong); }
307
+ .comins-table__tr[data-comins-tree-drop="inside"] > td { box-shadow: inset 0 0 0 2px var(--comins-table-accent-strong); }
308
+ .comins-table__tr[data-comins-tree-drop-valid="false"] > td { box-shadow: inset 0 0 0 2px #dc2626; }
309
+ .comins-table__sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
310
+
305
311
  .comins-tree-expander,
306
312
  .comins-tree-expander-spacer {
307
313
  flex: 0 0 24px;
@@ -474,6 +480,7 @@
474
480
  }
475
481
 
476
482
  .comins-table__body-viewport {
483
+ position: relative;
477
484
  box-sizing: border-box;
478
485
  flex: 1 1 auto;
479
486
  min-height: 0;
@@ -672,6 +679,12 @@
672
679
  min-width: 0;
673
680
  }
674
681
 
682
+ .comins-table__tr[data-comins-row-auto-height="true"] > .comins-table__td {
683
+ height: auto;
684
+ padding-top: var(--comins-table-cell-padding-y);
685
+ padding-bottom: var(--comins-table-cell-padding-y);
686
+ }
687
+
675
688
  .comins-table__td {
676
689
  background: var(--comins-table-cell-background);
677
690
  border-bottom: 1px solid var(--comins-table-row-border);