zubin-grid 0.4.13 → 0.42.13
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/README.md +171 -36
- package/dist/adaptors/react/index.d.ts +71 -0
- package/dist/adaptors/react/index.d.ts.map +1 -0
- package/dist/adaptors/react/index.js +249 -0
- package/dist/adaptors/react/index.js.map +1 -0
- package/dist/core/cell.d.ts +17 -8
- package/dist/core/cell.d.ts.map +1 -1
- package/dist/core/cell.js +57 -39
- package/dist/core/cell.js.map +1 -1
- package/dist/core/grid-id.d.ts +7 -0
- package/dist/core/grid-id.d.ts.map +1 -0
- package/dist/core/grid-id.js +51 -0
- package/dist/core/grid-id.js.map +1 -0
- package/dist/core/grid.d.ts +9 -9
- package/dist/core/grid.d.ts.map +1 -1
- package/dist/core/grid.js +608 -199
- package/dist/core/grid.js.map +1 -1
- package/dist/core/head.d.ts +6 -12
- package/dist/core/head.d.ts.map +1 -1
- package/dist/core/head.js +20 -69
- package/dist/core/head.js.map +1 -1
- package/dist/core/helpers.d.ts +3 -3
- package/dist/core/helpers.d.ts.map +1 -1
- package/dist/core/helpers.js +5 -2
- package/dist/core/helpers.js.map +1 -1
- package/dist/core/persist.d.ts.map +1 -1
- package/dist/core/persist.js +53 -42
- package/dist/core/persist.js.map +1 -1
- package/dist/core/tail.d.ts +5 -10
- package/dist/core/tail.d.ts.map +1 -1
- package/dist/core/tail.js +7 -32
- package/dist/core/tail.js.map +1 -1
- package/dist/core/types/grid.types.d.ts +79 -32
- package/dist/core/types/grid.types.d.ts.map +1 -1
- package/dist/core/types/head.types.d.ts +7 -6
- package/dist/core/types/head.types.d.ts.map +1 -1
- package/dist/core/types/persist.types.d.ts +2 -0
- package/dist/core/types/persist.types.d.ts.map +1 -1
- package/dist/core/types/tail.types.d.ts +3 -2
- package/dist/core/types/tail.types.d.ts.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/package.json +5 -1
- package/dist/core/gridPersist.d.ts +0 -3
- package/dist/core/gridPersist.d.ts.map +0 -1
- package/dist/core/gridPersist.js +0 -2
- package/dist/core/gridPersist.js.map +0 -1
- package/dist/core/types/gridPersist.types.d.ts +0 -2
- package/dist/core/types/gridPersist.types.d.ts.map +0 -1
- package/dist/core/types/gridPersist.types.js +0 -2
- package/dist/core/types/gridPersist.types.js.map +0 -1
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { useCallback, useEffect, useRef, useSyncExternalStore } from "react";
|
|
2
|
+
import { isDimensionGrid, isGrid, resolveDimensionGridIndex, resolveGridCoordinatesFromIndex, } from "../../core/cell.js";
|
|
3
|
+
import { readReactiveTailValue } from "../../core/tail.js";
|
|
4
|
+
const STATIC_CELL_META = {
|
|
5
|
+
existsInDb: true,
|
|
6
|
+
isDirty: false,
|
|
7
|
+
};
|
|
8
|
+
export function useGrid(currentGrid, options) {
|
|
9
|
+
const snapshotRef = useRef({
|
|
10
|
+
rows: currentGrid.rowHeaders,
|
|
11
|
+
cols: currentGrid.colHeaders,
|
|
12
|
+
});
|
|
13
|
+
const onGridUpdateRef = useRef(options?.onGridUpdate);
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
onGridUpdateRef.current = options?.onGridUpdate;
|
|
16
|
+
}, [options?.onGridUpdate]);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
return currentGrid.subscribeGrid((updatedGrid, diff) => {
|
|
19
|
+
onGridUpdateRef.current?.(updatedGrid, diff);
|
|
20
|
+
});
|
|
21
|
+
}, [currentGrid]);
|
|
22
|
+
const subscribe = useCallback((callback) => currentGrid.subscribeGrid(() => callback()), [currentGrid]);
|
|
23
|
+
const getSnapshot = useCallback(() => {
|
|
24
|
+
const nextRows = currentGrid.rowHeaders;
|
|
25
|
+
const nextCols = currentGrid.colHeaders;
|
|
26
|
+
const currentSnapshot = snapshotRef.current;
|
|
27
|
+
if (currentSnapshot.rows === nextRows && currentSnapshot.cols === nextCols) {
|
|
28
|
+
return currentSnapshot;
|
|
29
|
+
}
|
|
30
|
+
const nextSnapshot = {
|
|
31
|
+
rows: nextRows,
|
|
32
|
+
cols: nextCols,
|
|
33
|
+
};
|
|
34
|
+
snapshotRef.current = nextSnapshot;
|
|
35
|
+
return nextSnapshot;
|
|
36
|
+
}, [currentGrid]);
|
|
37
|
+
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
38
|
+
}
|
|
39
|
+
export function useRowHead(currentGrid, rowId) {
|
|
40
|
+
const subscribe = useCallback((callback) => currentGrid.subscribeRowHead(rowId, callback), [currentGrid, rowId]);
|
|
41
|
+
const getSnapshot = useCallback(() => currentGrid.getRowHead(rowId), [currentGrid, rowId]);
|
|
42
|
+
const head = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
43
|
+
const setHead = useCallback((nextHead) => {
|
|
44
|
+
currentGrid.updateRowHead(rowId, nextHead);
|
|
45
|
+
}, [currentGrid, rowId]);
|
|
46
|
+
const updateLabel = useCallback((label) => {
|
|
47
|
+
currentGrid.updateRowHead(rowId, (currentHead) => ({
|
|
48
|
+
...currentHead,
|
|
49
|
+
label,
|
|
50
|
+
}));
|
|
51
|
+
}, [currentGrid, rowId]);
|
|
52
|
+
const updateOrder = useCallback((order) => {
|
|
53
|
+
currentGrid.updateRowHead(rowId, (currentHead) => ({
|
|
54
|
+
...currentHead,
|
|
55
|
+
order,
|
|
56
|
+
}));
|
|
57
|
+
}, [currentGrid, rowId]);
|
|
58
|
+
return {
|
|
59
|
+
head,
|
|
60
|
+
setHead,
|
|
61
|
+
updateLabel,
|
|
62
|
+
updateOrder,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export function useColumnHead(currentGrid, columnId) {
|
|
66
|
+
const subscribe = useCallback((callback) => currentGrid.subscribeColumnHead(columnId, callback), [currentGrid, columnId]);
|
|
67
|
+
const getSnapshot = useCallback(() => currentGrid.getColumnHead(columnId), [currentGrid, columnId]);
|
|
68
|
+
const head = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
69
|
+
const setHead = useCallback((nextHead) => {
|
|
70
|
+
currentGrid.updateColumnHead(columnId, nextHead);
|
|
71
|
+
}, [currentGrid, columnId]);
|
|
72
|
+
const updateLabel = useCallback((label) => {
|
|
73
|
+
currentGrid.updateColumnHead(columnId, (currentHead) => ({
|
|
74
|
+
...currentHead,
|
|
75
|
+
label,
|
|
76
|
+
}));
|
|
77
|
+
}, [currentGrid, columnId]);
|
|
78
|
+
const updateOrder = useCallback((order) => {
|
|
79
|
+
currentGrid.updateColumnHead(columnId, (currentHead) => ({
|
|
80
|
+
...currentHead,
|
|
81
|
+
order,
|
|
82
|
+
}));
|
|
83
|
+
}, [currentGrid, columnId]);
|
|
84
|
+
return {
|
|
85
|
+
head,
|
|
86
|
+
setHead,
|
|
87
|
+
updateLabel,
|
|
88
|
+
updateOrder,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export const useColHead = useColumnHead;
|
|
92
|
+
export function useRowTail(currentGrid, rowId, onRowUpdate) {
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
if (!onRowUpdate)
|
|
95
|
+
return;
|
|
96
|
+
return currentGrid.registerRowTail(rowId, onRowUpdate);
|
|
97
|
+
}, [currentGrid, rowId, onRowUpdate]);
|
|
98
|
+
const subscribe = useCallback((callback) => currentGrid.subscribeRowTail(rowId, callback), [currentGrid, rowId]);
|
|
99
|
+
const getSnapshot = useCallback(() => readReactiveTailValue(currentGrid.getRowTailState(rowId)), [currentGrid, rowId]);
|
|
100
|
+
const tail = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
101
|
+
return tail;
|
|
102
|
+
}
|
|
103
|
+
export function useColumnTail(currentGrid, columnId, onColumnUpdate) {
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
if (!onColumnUpdate)
|
|
106
|
+
return;
|
|
107
|
+
return currentGrid.registerColumnTail(columnId, onColumnUpdate);
|
|
108
|
+
}, [currentGrid, columnId, onColumnUpdate]);
|
|
109
|
+
const subscribe = useCallback((callback) => currentGrid.subscribeColumnTail(columnId, callback), [currentGrid, columnId]);
|
|
110
|
+
const getSnapshot = useCallback(() => readReactiveTailValue(currentGrid.getColumnTailState(columnId)), [currentGrid, columnId]);
|
|
111
|
+
const tail = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
112
|
+
return tail;
|
|
113
|
+
}
|
|
114
|
+
export function useCell(cellOrGrid, position, options) {
|
|
115
|
+
const snapshot = useCellStoreSnapshot(cellOrGrid, position, options?.placeholder);
|
|
116
|
+
const setValue = useResolvedCellSetter(cellOrGrid, position, options?.placeholder);
|
|
117
|
+
return [snapshot.value, setValue, snapshot.meta];
|
|
118
|
+
}
|
|
119
|
+
export function useCellValue(cellOrGrid, position, options) {
|
|
120
|
+
return useCellStoreSnapshot(cellOrGrid, position, options?.placeholder).value;
|
|
121
|
+
}
|
|
122
|
+
function useCellStoreSnapshot(cellOrGrid, position, placeholder) {
|
|
123
|
+
const snapshotRef = useRef();
|
|
124
|
+
const subscribe = useCallback((callback) => subscribeToCellSource(cellOrGrid, callback), [cellOrGrid]);
|
|
125
|
+
const getSnapshot = useCallback(() => {
|
|
126
|
+
const previousSnapshot = snapshotRef.current;
|
|
127
|
+
const nextSnapshot = readHookCellSnapshot(cellOrGrid, position, placeholder, previousSnapshot);
|
|
128
|
+
snapshotRef.current = nextSnapshot;
|
|
129
|
+
return nextSnapshot;
|
|
130
|
+
}, [cellOrGrid, placeholder, position]);
|
|
131
|
+
return useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
|
|
132
|
+
}
|
|
133
|
+
function useResolvedCellSetter(cellOrGrid, position, placeholder) {
|
|
134
|
+
return useCallback((nextValue) => {
|
|
135
|
+
const currentSnapshot = readHookCellSnapshot(cellOrGrid, position, placeholder);
|
|
136
|
+
if (isDimensionGrid(cellOrGrid)) {
|
|
137
|
+
const currentGrid = cellOrGrid;
|
|
138
|
+
const index = resolveDimensionGridIndex(currentGrid, position);
|
|
139
|
+
currentGrid.setCell(index, resolveUpdater(nextValue, currentSnapshot.value));
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (isGrid(cellOrGrid)) {
|
|
143
|
+
const currentGrid = cellOrGrid;
|
|
144
|
+
const { rowId, columnId } = resolveGridCoordinatesFromIndex(currentGrid, position);
|
|
145
|
+
currentGrid.setCell(rowId, columnId, resolveUpdater(nextValue, currentSnapshot.value));
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
const currentCell = cellOrGrid;
|
|
149
|
+
currentCell.set(resolveUpdater(nextValue, currentCell.get()));
|
|
150
|
+
}, [cellOrGrid, placeholder, position]);
|
|
151
|
+
}
|
|
152
|
+
function subscribeToCellSource(cellOrGrid, callback) {
|
|
153
|
+
if (isDimensionGrid(cellOrGrid) || isGrid(cellOrGrid)) {
|
|
154
|
+
return cellOrGrid.subscribeGrid(() => callback());
|
|
155
|
+
}
|
|
156
|
+
return cellOrGrid.subscribe(callback);
|
|
157
|
+
}
|
|
158
|
+
function readHookCellSnapshot(cellOrGrid, position, placeholder, previousSnapshot) {
|
|
159
|
+
if (isDimensionGrid(cellOrGrid)) {
|
|
160
|
+
const currentGrid = cellOrGrid;
|
|
161
|
+
const index = resolveDimensionGridIndex(currentGrid, position);
|
|
162
|
+
const storedSnapshot = currentGrid.readCell(index);
|
|
163
|
+
const placeholderContext = createDimensionPlaceholderContext(currentGrid, index, storedSnapshot.meta);
|
|
164
|
+
return createHookCellSnapshot(storedSnapshot.value, storedSnapshot.meta, placeholder, placeholderContext, previousSnapshot);
|
|
165
|
+
}
|
|
166
|
+
if (isGrid(cellOrGrid)) {
|
|
167
|
+
const currentGrid = cellOrGrid;
|
|
168
|
+
const resolvedPosition = position;
|
|
169
|
+
const { rowId, columnId } = resolveGridCoordinatesFromIndex(currentGrid, resolvedPosition);
|
|
170
|
+
const storedSnapshot = currentGrid.readCell(rowId, columnId);
|
|
171
|
+
const placeholderContext = {
|
|
172
|
+
row: resolvedPosition.row,
|
|
173
|
+
col: resolvedPosition.col,
|
|
174
|
+
rowId,
|
|
175
|
+
columnId,
|
|
176
|
+
meta: storedSnapshot.meta,
|
|
177
|
+
};
|
|
178
|
+
return createHookCellSnapshot(storedSnapshot.value, storedSnapshot.meta, placeholder, placeholderContext, previousSnapshot);
|
|
179
|
+
}
|
|
180
|
+
const currentCell = cellOrGrid;
|
|
181
|
+
const value = currentCell.get();
|
|
182
|
+
if (previousSnapshot &&
|
|
183
|
+
previousSnapshot.meta.existsInDb === STATIC_CELL_META.existsInDb &&
|
|
184
|
+
previousSnapshot.meta.isDirty === STATIC_CELL_META.isDirty &&
|
|
185
|
+
Object.is(previousSnapshot.value, value)) {
|
|
186
|
+
return previousSnapshot;
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
value,
|
|
190
|
+
storedValue: value,
|
|
191
|
+
meta: STATIC_CELL_META,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
function createHookCellSnapshot(storedValue, meta, placeholder, placeholderContext, previousSnapshot) {
|
|
195
|
+
const visibleValue = storedValue !== undefined
|
|
196
|
+
? storedValue
|
|
197
|
+
: resolveVisiblePlaceholder(meta, placeholder, placeholderContext, previousSnapshot);
|
|
198
|
+
if (previousSnapshot &&
|
|
199
|
+
sameCellMeta(previousSnapshot.meta, meta) &&
|
|
200
|
+
Object.is(previousSnapshot.storedValue, storedValue) &&
|
|
201
|
+
Object.is(previousSnapshot.value, visibleValue)) {
|
|
202
|
+
return previousSnapshot;
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
value: visibleValue,
|
|
206
|
+
storedValue,
|
|
207
|
+
meta,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
function resolveVisiblePlaceholder(meta, placeholder, placeholderContext, previousSnapshot) {
|
|
211
|
+
if (placeholder === undefined) {
|
|
212
|
+
return undefined;
|
|
213
|
+
}
|
|
214
|
+
if (previousSnapshot &&
|
|
215
|
+
previousSnapshot.storedValue === undefined &&
|
|
216
|
+
sameCellMeta(previousSnapshot.meta, meta)) {
|
|
217
|
+
return previousSnapshot.value;
|
|
218
|
+
}
|
|
219
|
+
return typeof placeholder === "function"
|
|
220
|
+
? placeholder(placeholderContext)
|
|
221
|
+
: placeholder;
|
|
222
|
+
}
|
|
223
|
+
function createDimensionPlaceholderContext(currentGrid, index, meta) {
|
|
224
|
+
if (currentGrid.dimension === "rows") {
|
|
225
|
+
return {
|
|
226
|
+
dimension: currentGrid.dimension,
|
|
227
|
+
index,
|
|
228
|
+
row: index,
|
|
229
|
+
rowId: currentGrid.rowHeaders[index],
|
|
230
|
+
meta,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
return {
|
|
234
|
+
dimension: currentGrid.dimension,
|
|
235
|
+
index,
|
|
236
|
+
col: index,
|
|
237
|
+
columnId: currentGrid.colHeaders[index],
|
|
238
|
+
meta,
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
function resolveUpdater(nextValue, currentValue) {
|
|
242
|
+
return typeof nextValue === "function"
|
|
243
|
+
? nextValue(currentValue)
|
|
244
|
+
: nextValue;
|
|
245
|
+
}
|
|
246
|
+
function sameCellMeta(leftMeta, rightMeta) {
|
|
247
|
+
return (leftMeta.existsInDb === rightMeta.existsInDb && leftMeta.isDirty === rightMeta.isDirty);
|
|
248
|
+
}
|
|
249
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../adaptors/react/index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/cell.d.ts
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
1
|
import type { Cell, CellInitializer } from "./types/cell.types.js";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { DimensionGridPosition, GridCellPosition, GridDimension } from "./types/grid.types.js";
|
|
3
|
+
import type { GridId } from "./types/head.types.js";
|
|
4
4
|
export type { Cell, Subscriber, Updater } from "./types/cell.types.js";
|
|
5
|
+
type IndexedGrid<TRowId extends GridId = GridId, TColumnId extends GridId = GridId> = {
|
|
6
|
+
rowHeaders: readonly TRowId[];
|
|
7
|
+
colHeaders: readonly TColumnId[];
|
|
8
|
+
};
|
|
9
|
+
type IndexedDimensionGrid<TDimension extends GridDimension = GridDimension> = {
|
|
10
|
+
dimension: TDimension;
|
|
11
|
+
size: number;
|
|
12
|
+
};
|
|
5
13
|
export declare function cell<TCell>(initialValue: TCell | CellInitializer<TCell>): Cell<TCell>;
|
|
6
|
-
export declare function
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function
|
|
10
|
-
|
|
11
|
-
|
|
14
|
+
export declare function isGrid(value: unknown): value is IndexedGrid;
|
|
15
|
+
export declare function isDimensionGrid(value: unknown): value is IndexedDimensionGrid;
|
|
16
|
+
export declare function resolveDimensionGridIndex(currentGrid: IndexedDimensionGrid, position: DimensionGridPosition): number;
|
|
17
|
+
export declare function resolveGridCoordinatesFromIndex<TRowId extends GridId, TColumnId extends GridId>(currentGrid: IndexedGrid<TRowId, TColumnId>, position: GridCellPosition): {
|
|
18
|
+
rowId: TRowId;
|
|
19
|
+
columnId: TColumnId;
|
|
20
|
+
};
|
|
12
21
|
//# sourceMappingURL=cell.d.ts.map
|
package/dist/core/cell.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell.d.ts","sourceRoot":"","sources":["../../core/cell.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cell.d.ts","sourceRoot":"","sources":["../../core/cell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAc,MAAM,uBAAuB,CAAC;AAC/E,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEvE,KAAK,WAAW,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,SAAS,SAAS,MAAM,GAAG,MAAM,IAAI;IACpF,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,SAAS,SAAS,EAAE,CAAC;CAClC,CAAC;AAEF,KAAK,oBAAoB,CAAC,UAAU,SAAS,aAAa,GAAG,aAAa,IAAI;IAC5E,SAAS,EAAE,UAAU,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAiCrF;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAQ3D;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAU7E;AAED,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,oBAAoB,EACjC,QAAQ,EAAE,qBAAqB,GAC9B,MAAM,CAkCR;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,SAAS,MAAM,EACrB,SAAS,SAAS,MAAM,EACxB,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,gBAAgB;;;EAwBxE"}
|
package/dist/core/cell.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { useCallback, useSyncExternalStore } from "react";
|
|
2
1
|
export function cell(initialValue) {
|
|
3
2
|
let value = typeof initialValue === "function" ? null : initialValue;
|
|
4
3
|
const subscribers = new Set();
|
|
@@ -27,49 +26,68 @@ export function cell(initialValue) {
|
|
|
27
26
|
_subscribers: () => subscribers.size,
|
|
28
27
|
};
|
|
29
28
|
}
|
|
30
|
-
export function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
: currentCell.set;
|
|
46
|
-
return [useSyncExternalStore(subscribe, getSnapshot), setValue];
|
|
29
|
+
export function isGrid(value) {
|
|
30
|
+
return (typeof value === "object" &&
|
|
31
|
+
value !== null &&
|
|
32
|
+
"getCell" in value &&
|
|
33
|
+
"getRowHead" in value &&
|
|
34
|
+
"getColumnHead" in value);
|
|
35
|
+
}
|
|
36
|
+
export function isDimensionGrid(value) {
|
|
37
|
+
return (typeof value === "object" &&
|
|
38
|
+
value !== null &&
|
|
39
|
+
"dimension" in value &&
|
|
40
|
+
"size" in value &&
|
|
41
|
+
"subscribeGrid" in value &&
|
|
42
|
+
"getCell" in value &&
|
|
43
|
+
!("getRowHead" in value));
|
|
47
44
|
}
|
|
48
|
-
export function
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
45
|
+
export function resolveDimensionGridIndex(currentGrid, position) {
|
|
46
|
+
if (currentGrid.dimension === "rows") {
|
|
47
|
+
const row = position.row;
|
|
48
|
+
if (typeof row !== "number" || !Number.isInteger(row)) {
|
|
49
|
+
throw new Error(`Row position must be an integer index. Received ${formatPositionValue(row)}.`);
|
|
50
|
+
}
|
|
51
|
+
if (row < 0 || row >= currentGrid.size) {
|
|
52
|
+
throw new Error(`Row position ${row} is out of range. ${describeAxisIndexRange("row", row, currentGrid.size)}`);
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
return row;
|
|
55
|
+
}
|
|
56
|
+
const col = position.col;
|
|
57
|
+
if (typeof col !== "number" || !Number.isInteger(col)) {
|
|
58
|
+
throw new Error(`Column position must be an integer index. Received ${formatPositionValue(col)}.`);
|
|
59
|
+
}
|
|
60
|
+
if (col < 0 || col >= currentGrid.size) {
|
|
61
|
+
throw new Error(`Column position ${col} is out of range. ${describeAxisIndexRange("column", col, currentGrid.size)}`);
|
|
62
|
+
}
|
|
63
|
+
return col;
|
|
62
64
|
}
|
|
63
|
-
function
|
|
64
|
-
if (!
|
|
65
|
-
|
|
65
|
+
export function resolveGridCoordinatesFromIndex(currentGrid, position) {
|
|
66
|
+
if (!Number.isInteger(position.row) || !Number.isInteger(position.col)) {
|
|
67
|
+
throw new Error(`Grid cell position is invalid. Expected integer indices but received { row: ${formatPositionValue(position.row)}, col: ${formatPositionValue(position.col)} }.`);
|
|
68
|
+
}
|
|
69
|
+
const rowId = currentGrid.rowHeaders[position.row];
|
|
70
|
+
const columnId = currentGrid.colHeaders[position.col];
|
|
71
|
+
if (rowId === undefined || columnId === undefined) {
|
|
72
|
+
throw new Error([
|
|
73
|
+
`Grid cell position { row: ${position.row}, col: ${position.col} } is out of range.`,
|
|
74
|
+
describeAxisIndexRange("row", position.row, currentGrid.rowHeaders.length),
|
|
75
|
+
describeAxisIndexRange("column", position.col, currentGrid.colHeaders.length),
|
|
76
|
+
].join(" "));
|
|
66
77
|
}
|
|
67
|
-
|
|
68
|
-
|
|
78
|
+
return {
|
|
79
|
+
rowId,
|
|
80
|
+
columnId,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function describeAxisIndexRange(axis, index, size) {
|
|
84
|
+
const label = axis === "row" ? "rows" : "columns";
|
|
85
|
+
if (size === 0) {
|
|
86
|
+
return `The grid currently has no ${label}, so index ${index} cannot be selected.`;
|
|
69
87
|
}
|
|
70
|
-
return
|
|
88
|
+
return `${axis === "row" ? "Row" : "Column"} index ${index} must be between 0 and ${size - 1} (${size} total ${label}).`;
|
|
71
89
|
}
|
|
72
|
-
function
|
|
73
|
-
return "
|
|
90
|
+
function formatPositionValue(value) {
|
|
91
|
+
return value === undefined ? "undefined" : JSON.stringify(value);
|
|
74
92
|
}
|
|
75
93
|
//# sourceMappingURL=cell.js.map
|
package/dist/core/cell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell.js","sourceRoot":"","sources":["../../core/cell.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cell.js","sourceRoot":"","sources":["../../core/cell.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { GridId } from "./types/head.types.js";
|
|
2
|
+
export declare function isGridId(value: unknown): value is GridId;
|
|
3
|
+
export declare function assertGridId(value: unknown, context: string): asserts value is GridId;
|
|
4
|
+
export declare function createGridIdKey(id: GridId): string;
|
|
5
|
+
export declare function areEqualGridIds(left: GridId, right: GridId): boolean;
|
|
6
|
+
export declare function formatGridId(id: GridId): string;
|
|
7
|
+
//# sourceMappingURL=grid-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-id.d.ts","sourceRoot":"","sources":["../../core/grid-id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAOxD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAQrF;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,UAkBzC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,WAE1D;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,UAYtC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
const GRID_ID_DESCRIPTION = "string, number, boolean, or Date";
|
|
2
|
+
export function isGridId(value) {
|
|
3
|
+
return (typeof value === "string" ||
|
|
4
|
+
typeof value === "number" ||
|
|
5
|
+
typeof value === "boolean" ||
|
|
6
|
+
value instanceof Date);
|
|
7
|
+
}
|
|
8
|
+
export function assertGridId(value, context) {
|
|
9
|
+
if (!isGridId(value)) {
|
|
10
|
+
throw new Error(`${context} must be a ${GRID_ID_DESCRIPTION} id.`);
|
|
11
|
+
}
|
|
12
|
+
if (value instanceof Date) {
|
|
13
|
+
readGridDateValue(value, context);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function createGridIdKey(id) {
|
|
17
|
+
if (typeof id === "string") {
|
|
18
|
+
return `string:${encodeURIComponent(id)}`;
|
|
19
|
+
}
|
|
20
|
+
if (typeof id === "number") {
|
|
21
|
+
if (Number.isNaN(id)) {
|
|
22
|
+
return "number:NaN";
|
|
23
|
+
}
|
|
24
|
+
return Object.is(id, -0) ? "number:-0" : `number:${id}`;
|
|
25
|
+
}
|
|
26
|
+
if (typeof id === "boolean") {
|
|
27
|
+
return `boolean:${id}`;
|
|
28
|
+
}
|
|
29
|
+
return `date:${readGridDateValue(id, "Grid id")}`;
|
|
30
|
+
}
|
|
31
|
+
export function areEqualGridIds(left, right) {
|
|
32
|
+
return createGridIdKey(left) === createGridIdKey(right);
|
|
33
|
+
}
|
|
34
|
+
export function formatGridId(id) {
|
|
35
|
+
if (typeof id === "string") {
|
|
36
|
+
return id;
|
|
37
|
+
}
|
|
38
|
+
if (typeof id === "number" || typeof id === "boolean") {
|
|
39
|
+
return String(id);
|
|
40
|
+
}
|
|
41
|
+
readGridDateValue(id, "Grid id");
|
|
42
|
+
return id.toISOString();
|
|
43
|
+
}
|
|
44
|
+
function readGridDateValue(id, context) {
|
|
45
|
+
const time = id.getTime();
|
|
46
|
+
if (!Number.isNaN(time)) {
|
|
47
|
+
return time;
|
|
48
|
+
}
|
|
49
|
+
throw new Error(`${context} must be a valid Date id.`);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=grid-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid-id.js","sourceRoot":"","sources":["../../core/grid-id.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GAAG,kCAAkC,CAAC;AAE/D,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,KAAK,YAAY,IAAI,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,OAAe;IAC1D,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,cAAc,mBAAmB,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,UAAU,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5C,CAAC;IAED,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,OAAO,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;IAC1D,CAAC;IAED,IAAI,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,WAAW,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,OAAO,QAAQ,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,KAAa;IACzD,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,eAAe,CAAC,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAU;IACrC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,CAAC;IAED,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAEjC,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,iBAAiB,CAAC,EAAQ,EAAE,OAAe;IAClD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAE1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,2BAA2B,CAAC,CAAC;AACzD,CAAC"}
|
package/dist/core/grid.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { AnyGrid, BroadSchemaColumnHead, BroadSchemaRowHead, BroadSchemaSnapshot, Grid,
|
|
2
|
-
import type {
|
|
3
|
-
export type { CreateSubGridOptions, Grid, GridAxisIds, GridPersistAdapter, GridPersistOption,
|
|
4
|
-
export declare function grid<TState extends GridState<GridRecord, GridRecord, GridRecord>>(source: GridStateInitializer<TState>, options: GridSchemaOptions<TState, keyof SchemaRow<TState> & string, keyof SchemaColumn<TState> & string, keyof SchemaCell<TState> & string, keyof SchemaCell<TState> & string, BroadSchemaSnapshot<TState>>): Grid<SchemaCell<TState>, string, string, BroadSchemaRowHead<TState>, BroadSchemaColumnHead<TState>, SchemaCell<TState>, BroadSchemaSnapshot<TState>>;
|
|
1
|
+
import type { AnyGrid, BroadSchemaColumnHead, BroadSchemaRowHead, BroadSchemaSnapshot, Grid, GridColumnIdOf, GridDimension, GridRecord, GridRowIdOf, GridSchemaOptions, GridState, GridStateCell, ParentDimensionGrid, ParentDimensionGridOptions, ParentSubGrid, ParentSubGridOptions, GridStateInitializer, SchemaCell, SchemaCellValue, SchemaColumn, SchemaColumnHead, SchemaColumnId, SchemaRow, SchemaRowHead, SchemaRowId, SchemaSnapshot } from "./types/grid.types.js";
|
|
2
|
+
import type { GridId } from "./types/head.types.js";
|
|
3
|
+
export type { CreateSubGridOptions, DimensionGrid, DimensionGridOptions, DimensionGridPosition, DimensionGridState, DimensionGridSubscriber, DimensionGridUpdateDiff, Grid, GridAxisIds, GridCellPosition, GridDimension, GridPersistAdapter, GridPersistOption, ParentDimensionGrid, ParentDimensionGridOptions, GridSchemaOptions, GridSetMode, GridCellMeta, GridCellSnapshot, GridState, GridStateCell, GridStateInitializer, GridSubscriber, GridUpdateAction, GridUpdateDiff, GridUpdateSource, GridUpdateType, GridUpsertHead, SubGrid, SubGridState, } from "./types/grid.types.js";
|
|
5
4
|
export declare function grid<TState extends GridState<GridRecord, GridRecord, GridRecord>, TRowHeadIdKey extends keyof SchemaRow<TState> & string, TColumnHeadIdKey extends keyof SchemaColumn<TState> & string, TRowCellKey extends keyof SchemaCell<TState> & string, TColumnCellKey extends keyof SchemaCell<TState> & string>(source: GridStateInitializer<TState>, options: GridSchemaOptions<TState, TRowHeadIdKey, TColumnHeadIdKey, TRowCellKey, TColumnCellKey, SchemaSnapshot<TState, TRowHeadIdKey, TColumnHeadIdKey, TRowCellKey, TColumnCellKey>>): Grid<SchemaCellValue<TState, TRowHeadIdKey, TColumnHeadIdKey, TRowCellKey, TColumnCellKey>, SchemaRowId<TState, TRowHeadIdKey>, SchemaColumnId<TState, TColumnHeadIdKey>, SchemaRowHead<TState, TRowHeadIdKey>, SchemaColumnHead<TState, TColumnHeadIdKey>, SchemaCellValue<TState, TRowHeadIdKey, TColumnHeadIdKey, TRowCellKey, TColumnCellKey>, SchemaSnapshot<TState, TRowHeadIdKey, TColumnHeadIdKey, TRowCellKey, TColumnCellKey>>;
|
|
5
|
+
export declare function grid<TState extends GridState<GridRecord, GridRecord, GridRecord>>(source: GridStateInitializer<TState>, options: GridSchemaOptions<TState, keyof SchemaRow<TState> & string, keyof SchemaColumn<TState> & string, keyof SchemaCell<TState> & string, keyof SchemaCell<TState> & string, BroadSchemaSnapshot<TState>>): Grid<SchemaCell<TState>, GridId, GridId, BroadSchemaRowHead<TState>, BroadSchemaColumnHead<TState>, SchemaCell<TState>, BroadSchemaSnapshot<TState>>;
|
|
6
|
+
export declare function createDimensionGrid<TCell, TParentGrid extends AnyGrid = AnyGrid>(parentGrid: TParentGrid, initialCells: readonly (TCell | undefined)[], dimension: "rows", options?: ParentDimensionGridOptions<TCell, "rows", TParentGrid>): ParentDimensionGrid<TCell, "rows", TParentGrid>;
|
|
7
|
+
export declare function createDimensionGrid<TCell, TParentGrid extends AnyGrid = AnyGrid>(parentGrid: TParentGrid, initialCells: readonly (TCell | undefined)[], dimension: "columns", options?: ParentDimensionGridOptions<TCell, "columns", TParentGrid>): ParentDimensionGrid<TCell, "columns", TParentGrid>;
|
|
8
|
+
export declare function createDimensionGrid<TCell, TDimension extends GridDimension = GridDimension, TParentGrid extends AnyGrid = AnyGrid>(parentGrid: TParentGrid, initialCells: readonly (TCell | undefined)[], dimension: TDimension, options?: ParentDimensionGridOptions<TCell, TDimension, TParentGrid>): ParentDimensionGrid<TCell, TDimension, TParentGrid>;
|
|
6
9
|
export declare function createSubGrid<TCell, TParentGrid extends AnyGrid = AnyGrid>(parentGrid: TParentGrid): ParentSubGrid<TCell, TParentGrid>;
|
|
7
|
-
export declare function createSubGrid<TCell, TParentGrid extends AnyGrid = AnyGrid>(parentGrid: TParentGrid, initialCells: readonly GridStateCell<TCell, GridRowIdOf<TParentGrid>, GridColumnIdOf<TParentGrid>>[],
|
|
8
|
-
export declare function
|
|
9
|
-
export declare function createSubGrid<TCell, TParentGrid extends AnyGrid = AnyGrid>(parentGrid: TParentGrid, options: ParentSubGridOptions<TCell, TParentGrid>): ParentSubGrid<TCell, TParentGrid>;
|
|
10
|
-
export declare function createGridKey(rowId: string, columnId: string): string;
|
|
11
|
-
export declare function useGrid<TCell, TRowId extends string, TColumnId extends string, TRowHead extends GridHead<TRowId>, TColumnHead extends GridHead<TColumnId>, TStateCell, TState extends GridState<TStateCell, TRowHead, TColumnHead>>(currentGrid: Grid<TCell, TRowId, TColumnId, TRowHead, TColumnHead, TStateCell, TState>, options?: UseGridOptions<TCell, TRowId, TColumnId, TRowHead, TColumnHead, TStateCell, TState>): GridAxisIds<TRowId, TColumnId>;
|
|
10
|
+
export declare function createSubGrid<TCell, TParentGrid extends AnyGrid = AnyGrid>(parentGrid: TParentGrid, initialCells: readonly GridStateCell<TCell, GridRowIdOf<TParentGrid>, GridColumnIdOf<TParentGrid>>[], options?: ParentSubGridOptions<TCell, TParentGrid>): ParentSubGrid<TCell, TParentGrid>;
|
|
11
|
+
export declare function createGridKey(rowId: GridId, columnId: GridId): string;
|
|
12
12
|
//# sourceMappingURL=grid.d.ts.map
|
package/dist/core/grid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../core/grid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../core/grid.ts"],"names":[],"mappings":"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"}
|