comins-table 0.1.4 → 0.1.6
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.
- package/CHANGELOG.md +21 -0
- package/README.md +28 -6
- package/THIRD_PARTY_NOTICES.md +123 -0
- package/dist/core.d.ts +2 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +135 -90
- package/dist/core.js.map +1 -1
- package/dist/index.d.ts +23 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1732 -925
- package/dist/index.js.map +1 -1
- package/dist/row-detail.d.ts +23 -0
- package/dist/row-detail.d.ts.map +1 -0
- package/dist/table-icons.d.ts +15 -0
- package/dist/table-icons.d.ts.map +1 -0
- package/dist/virtual-layout.d.ts +109 -0
- package/dist/virtual-layout.d.ts.map +1 -0
- package/package.json +12 -9
- package/styles.css +240 -50
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
export declare function CominsRowDetailToggle(props: {
|
|
3
|
+
controlsId?: string;
|
|
4
|
+
disabled: boolean;
|
|
5
|
+
expanded: boolean;
|
|
6
|
+
id: string;
|
|
7
|
+
label: string;
|
|
8
|
+
onElement: (element: HTMLButtonElement | null) => void;
|
|
9
|
+
onToggle: () => void;
|
|
10
|
+
testId: string;
|
|
11
|
+
}): React.JSX.Element;
|
|
12
|
+
export declare function CominsRowDetailRow(props: {
|
|
13
|
+
children: React.ReactNode;
|
|
14
|
+
colSpan: number;
|
|
15
|
+
contentId: string;
|
|
16
|
+
fixedHeight?: number;
|
|
17
|
+
labelId: string;
|
|
18
|
+
onContentElement: (element: HTMLDivElement | null) => void;
|
|
19
|
+
ownerId: string;
|
|
20
|
+
testId: string;
|
|
21
|
+
getToggleElement: () => HTMLButtonElement | null;
|
|
22
|
+
}): React.JSX.Element;
|
|
23
|
+
//# sourceMappingURL=row-detail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row-detail.d.ts","sourceRoot":"","sources":["../src/row-detail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IACvD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,qBAuBA;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;CAClD,qBAqDA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type CominsTableIconName = "columnMove" | "disclosureCollapsed" | "disclosureExpanded" | "sortAscending" | "sortDescending" | "sortUnsorted";
|
|
3
|
+
export declare function CominsTableIcon({ className, name }: {
|
|
4
|
+
className?: string;
|
|
5
|
+
name: CominsTableIconName;
|
|
6
|
+
}): React.JSX.Element;
|
|
7
|
+
export type CominsTableIconButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "aria-label" | "children"> & {
|
|
8
|
+
"aria-label": string;
|
|
9
|
+
icon: CominsTableIconName;
|
|
10
|
+
};
|
|
11
|
+
export declare const CominsTableIconButton: React.ForwardRefExoticComponent<Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "aria-label" | "children"> & {
|
|
12
|
+
"aria-label": string;
|
|
13
|
+
icon: CominsTableIconName;
|
|
14
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
15
|
+
//# sourceMappingURL=table-icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-icons.d.ts","sourceRoot":"","sources":["../src/table-icons.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,mBAAmB,GAC3B,YAAY,GACZ,qBAAqB,GACrB,oBAAoB,GACpB,eAAe,GACf,gBAAgB,GAChB,cAAc,CAAC;AAWnB,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,qBAWrG;AAED,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,YAAY,GAAG,UAAU,CAC1B,GAAG;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,mBAAmB,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,qBAAqB;kBAJlB,MAAM;UACd,mBAAmB;2CAgB1B,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { CominsRowId } from "./core";
|
|
2
|
+
export declare const COMINS_MAX_PHYSICAL_TOTAL_HEIGHT = 1500000;
|
|
3
|
+
export type CominsDataVirtualSlot<TData> = {
|
|
4
|
+
dataIndex: number;
|
|
5
|
+
detail?: {
|
|
6
|
+
estimated: boolean;
|
|
7
|
+
height: number;
|
|
8
|
+
mode: "auto" | "fixed";
|
|
9
|
+
};
|
|
10
|
+
key: string;
|
|
11
|
+
kind: "data";
|
|
12
|
+
row: TData;
|
|
13
|
+
rowId: CominsRowId;
|
|
14
|
+
visibleIndex: number;
|
|
15
|
+
};
|
|
16
|
+
export type CominsGroupVirtualSlot = {
|
|
17
|
+
groupId: string;
|
|
18
|
+
height: number;
|
|
19
|
+
key: string;
|
|
20
|
+
kind: "group";
|
|
21
|
+
};
|
|
22
|
+
export type CominsVirtualSlot<TData> = CominsDataVirtualSlot<TData> | CominsGroupVirtualSlot;
|
|
23
|
+
export type CominsVirtualRange = {
|
|
24
|
+
endIndex: number;
|
|
25
|
+
logicalScrollTop: number;
|
|
26
|
+
logicalStartOffset: number;
|
|
27
|
+
physicalScrollHeight: number;
|
|
28
|
+
renderOffset: number;
|
|
29
|
+
scrollScale: number;
|
|
30
|
+
startIndex: number;
|
|
31
|
+
};
|
|
32
|
+
export type CominsScrollAnchor = {
|
|
33
|
+
key: string;
|
|
34
|
+
offsetWithinSlot: number;
|
|
35
|
+
previousIndex: number;
|
|
36
|
+
};
|
|
37
|
+
export declare function getCominsDataSlotKey(rowId: CominsRowId): string;
|
|
38
|
+
export declare function createCominsDataVirtualSlot<TData>(input: {
|
|
39
|
+
dataIndex: number;
|
|
40
|
+
detail: CominsDataVirtualSlot<TData>["detail"] | null;
|
|
41
|
+
row: TData;
|
|
42
|
+
rowHeight: number;
|
|
43
|
+
rowId: CominsRowId;
|
|
44
|
+
visibleIndex: number;
|
|
45
|
+
}): CominsDataVirtualSlot<TData>;
|
|
46
|
+
export declare function normalizeCominsDetailEstimate(value: number | undefined, fallbackHeight: number): number;
|
|
47
|
+
export declare function normalizeCominsDetailHeight(value: number | "auto" | undefined): {
|
|
48
|
+
mode: "auto";
|
|
49
|
+
} | {
|
|
50
|
+
height: number;
|
|
51
|
+
mode: "fixed";
|
|
52
|
+
};
|
|
53
|
+
export declare class CominsHeightIndex {
|
|
54
|
+
private readonly heights;
|
|
55
|
+
private readonly tree;
|
|
56
|
+
private totalHeight;
|
|
57
|
+
private constructor();
|
|
58
|
+
static from(heights: readonly number[]): CominsHeightIndex;
|
|
59
|
+
private add;
|
|
60
|
+
getHeight(index: number): number;
|
|
61
|
+
getPrefixHeight(endExclusive: number): number;
|
|
62
|
+
getTotalHeight(): number;
|
|
63
|
+
findIndexAtOffset(offset: number): number;
|
|
64
|
+
updateHeight(index: number, height: number): number;
|
|
65
|
+
}
|
|
66
|
+
export type CominsDetailMeasurement = {
|
|
67
|
+
height: number;
|
|
68
|
+
width: number;
|
|
69
|
+
};
|
|
70
|
+
export declare function getCominsSlotHeight<TData>(slot: CominsVirtualSlot<TData>, rowHeight: number): number;
|
|
71
|
+
export declare function getCominsScrollScale(logicalTotalHeight: number, viewportHeight: number): {
|
|
72
|
+
logicalScrollableHeight: number;
|
|
73
|
+
physicalScrollableHeight: number;
|
|
74
|
+
physicalScrollHeight: number;
|
|
75
|
+
scrollScale: number;
|
|
76
|
+
};
|
|
77
|
+
export declare function getCominsMixedVirtualRange(input: {
|
|
78
|
+
heightIndex: CominsHeightIndex;
|
|
79
|
+
overscan: number;
|
|
80
|
+
physicalScrollTop: number;
|
|
81
|
+
viewportHeight: number;
|
|
82
|
+
}): CominsVirtualRange;
|
|
83
|
+
export declare function resolveCominsMeasuredDetailHeight(cache: ReadonlyMap<CominsRowId, CominsDetailMeasurement>, rowId: CominsRowId, width: number, estimate: number): {
|
|
84
|
+
estimated: boolean;
|
|
85
|
+
height: number;
|
|
86
|
+
};
|
|
87
|
+
export declare function reconcileCominsDetailMeasurements(cache: Map<CominsRowId, CominsDetailMeasurement>, rowIds: ReadonlySet<CominsRowId>): void;
|
|
88
|
+
export declare function captureCominsScrollAnchor(input: {
|
|
89
|
+
heightIndex: CominsHeightIndex;
|
|
90
|
+
keys: readonly string[];
|
|
91
|
+
logicalScrollTop: number;
|
|
92
|
+
}): CominsScrollAnchor | undefined;
|
|
93
|
+
export declare function resolveCominsAnchorLogicalScrollTop(input: {
|
|
94
|
+
anchor: CominsScrollAnchor;
|
|
95
|
+
nextHeightIndex: CominsHeightIndex;
|
|
96
|
+
nextKeys: readonly string[];
|
|
97
|
+
previousKeys: readonly string[];
|
|
98
|
+
}): number;
|
|
99
|
+
export declare function resolveCominsAnchorTarget(input: {
|
|
100
|
+
anchor: CominsScrollAnchor;
|
|
101
|
+
getNextHeight: (index: number) => number;
|
|
102
|
+
nextKeys: readonly string[];
|
|
103
|
+
previousKeys: readonly string[];
|
|
104
|
+
}): {
|
|
105
|
+
index: number;
|
|
106
|
+
offsetWithinSlot: number;
|
|
107
|
+
} | undefined;
|
|
108
|
+
export declare function getCominsPhysicalScrollTop(logicalScrollTop: number, logicalTotalHeight: number, viewportHeight: number): number;
|
|
109
|
+
//# sourceMappingURL=virtual-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"scripts": {
|
|
15
15
|
"build": "vite build && tsc -p tsconfig.build.json",
|
|
16
16
|
"check:hygiene": "node scripts/check-repository-hygiene.mjs",
|
|
17
|
+
"check:licenses": "node scripts/check-licenses.mjs",
|
|
17
18
|
"dev": "vite --config vite.example.config.ts",
|
|
18
19
|
"docs:readme-gif": "node scripts/capture-readme-demo.mjs",
|
|
19
20
|
"lint": "tsc --noEmit",
|
|
@@ -23,8 +24,9 @@
|
|
|
23
24
|
"test:e2e": "env -u NO_COLOR playwright test --config=playwright.config.ts --grep-invert @perf",
|
|
24
25
|
"test:perf": "env -u NO_COLOR playwright test --config=playwright.config.ts --grep @perf",
|
|
25
26
|
"test:run": "vitest run",
|
|
27
|
+
"test:licenses": "node --test test/license-gates.node.mjs",
|
|
26
28
|
"test:security": "node --test test/sensitive-data-gates.node.mjs test/package-artifact-gate.node.mjs",
|
|
27
|
-
"verify": "npm run check:hygiene && npm run test:security && npm run lint && npm run test:run && npm run build",
|
|
29
|
+
"verify": "npm run check:hygiene && npm run test:security && npm run test:licenses && npm run check:licenses && npm run lint && npm run test:run && npm run build",
|
|
28
30
|
"verify:e2e": "npm run test:e2e",
|
|
29
31
|
"verify:full": "npm run verify && npm run verify:e2e",
|
|
30
32
|
"verify:package-artifact": "node scripts/verify-package-artifact.mjs"
|
|
@@ -52,7 +54,8 @@
|
|
|
52
54
|
"dist",
|
|
53
55
|
"README.md",
|
|
54
56
|
"styles.css",
|
|
55
|
-
"CHANGELOG.md"
|
|
57
|
+
"CHANGELOG.md",
|
|
58
|
+
"THIRD_PARTY_NOTICES.md"
|
|
56
59
|
],
|
|
57
60
|
"sideEffects": [
|
|
58
61
|
"./styles.css"
|
|
@@ -62,19 +65,19 @@
|
|
|
62
65
|
"react-dom": ">=18.0.0 <20.0.0"
|
|
63
66
|
},
|
|
64
67
|
"devDependencies": {
|
|
65
|
-
"@playwright/test": "^1.
|
|
68
|
+
"@playwright/test": "^1.62.1",
|
|
66
69
|
"@tailwindcss/postcss": "^4.3.3",
|
|
67
|
-
"@types/react": "^19.2.
|
|
68
|
-
"@types/react-dom": "^19.2.
|
|
69
|
-
"@vitejs/plugin-react": "^6.0.
|
|
70
|
+
"@types/react": "^19.2.18",
|
|
71
|
+
"@types/react-dom": "^19.2.4",
|
|
72
|
+
"@vitejs/plugin-react": "^6.0.5",
|
|
70
73
|
"jsdom": "^29.1.1",
|
|
71
74
|
"prism-react-renderer": "^2.4.1",
|
|
72
|
-
"react-router": "^8.
|
|
75
|
+
"react-router": "^8.3.0",
|
|
73
76
|
"typescript": "^7.0.2",
|
|
74
77
|
"vite": "^8.1.5",
|
|
75
78
|
"vitest": "^4.1.10"
|
|
76
79
|
},
|
|
77
80
|
"dependencies": {
|
|
78
|
-
"
|
|
81
|
+
"@radix-ui/react-icons": "1.3.2"
|
|
79
82
|
}
|
|
80
83
|
}
|