zubin-grid 0.41.13 → 0.43.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.
- package/README.md +113 -22
- 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 +20 -10
- package/dist/core/cell.d.ts.map +1 -1
- package/dist/core/cell.js +89 -104
- package/dist/core/cell.js.map +1 -1
- package/dist/core/grid.d.ts +3 -4
- package/dist/core/grid.d.ts.map +1 -1
- package/dist/core/grid.js +274 -85
- package/dist/core/grid.js.map +1 -1
- package/dist/core/head.d.ts +1 -5
- package/dist/core/head.d.ts.map +1 -1
- package/dist/core/head.js +0 -54
- package/dist/core/head.js.map +1 -1
- package/dist/core/persist.d.ts +3 -2
- package/dist/core/persist.d.ts.map +1 -1
- package/dist/core/persist.js +17 -1
- package/dist/core/persist.js.map +1 -1
- package/dist/core/tail.d.ts +1 -4
- package/dist/core/tail.d.ts.map +1 -1
- package/dist/core/tail.js +0 -23
- package/dist/core/tail.js.map +1 -1
- package/dist/core/types/cell.types.d.ts +5 -0
- package/dist/core/types/cell.types.d.ts.map +1 -1
- package/dist/core/types/grid.types.d.ts +18 -9
- package/dist/core/types/grid.types.d.ts.map +1 -1
- package/dist/core/types/persist.types.d.ts +3 -0
- package/dist/core/types/persist.types.d.ts.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +5 -1
package/dist/core/cell.d.ts
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
|
-
import type { Cell, CellInitializer } from "./types/cell.types.js";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
export type { Cell, Subscriber, Updater } from "./types/cell.types.js";
|
|
1
|
+
import type { Cell, CellInitializer, CellOptions } from "./types/cell.types.js";
|
|
2
|
+
import type { DimensionGridPosition, GridCellPosition, GridDimension } from "./types/grid.types.js";
|
|
3
|
+
import type { GridId } from "./types/head.types.js";
|
|
4
|
+
export type { Cell, CellOptions, CellPersistOption, 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
|
-
export declare function
|
|
11
|
-
|
|
14
|
+
export declare function cell<TCell>(initialValue: TCell | CellInitializer<TCell>, options: CellOptions<TCell>): Cell<TCell>;
|
|
15
|
+
export declare function isGrid(value: unknown): value is IndexedGrid;
|
|
16
|
+
export declare function isDimensionGrid(value: unknown): value is IndexedDimensionGrid;
|
|
17
|
+
export declare function resolveDimensionGridIndex(currentGrid: IndexedDimensionGrid, position: DimensionGridPosition): number;
|
|
18
|
+
export declare function resolveGridCoordinatesFromIndex<TRowId extends GridId, TColumnId extends GridId>(currentGrid: IndexedGrid<TRowId, TColumnId>, position: GridCellPosition): {
|
|
19
|
+
rowId: TRowId;
|
|
20
|
+
columnId: TColumnId;
|
|
21
|
+
};
|
|
12
22
|
//# 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":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cell.d.ts","sourceRoot":"","sources":["../../core/cell.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,IAAI,EACJ,eAAe,EACf,WAAW,EAGZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,YAAY,EACV,IAAI,EACJ,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,OAAO,GACR,MAAM,uBAAuB,CAAC;AAE/B,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,CAAC;AACvF,wBAAgB,IAAI,CAAC,KAAK,EACxB,YAAY,EAAE,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,EAC5C,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,GAC1B,IAAI,CAAC,KAAK,CAAC,CAAC;AAoHf,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,17 +1,62 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export function cell(initialValue) {
|
|
3
|
-
|
|
1
|
+
import { createGridPersistController, resolvePersistOption } from "./persist.js";
|
|
2
|
+
export function cell(initialValue, options) {
|
|
3
|
+
if (!options?.persist) {
|
|
4
|
+
return createCellStore(initialValue);
|
|
5
|
+
}
|
|
6
|
+
return createPersistedCellStore(initialValue, options.persist);
|
|
7
|
+
}
|
|
8
|
+
function createCellStore(initialValue) {
|
|
9
|
+
const runtimeCell = createRuntimeCell(typeof initialValue === "function" ? null : initialValue);
|
|
10
|
+
initializeCellValue(initialValue, (nextValue) => {
|
|
11
|
+
runtimeCell.set(nextValue);
|
|
12
|
+
});
|
|
13
|
+
return runtimeCell;
|
|
14
|
+
}
|
|
15
|
+
function createPersistedCellStore(initialValue, persist) {
|
|
16
|
+
const runtimeCell = createRuntimeCell(typeof initialValue === "function" ? null : initialValue);
|
|
17
|
+
const resolvedPersist = resolvePersistOption(persist);
|
|
18
|
+
if (!resolvedPersist) {
|
|
19
|
+
return runtimeCell;
|
|
20
|
+
}
|
|
21
|
+
let isApplyingState = false;
|
|
22
|
+
let didHydratePersistedValue = false;
|
|
23
|
+
const applyInternalValue = (nextValue) => {
|
|
24
|
+
isApplyingState = true;
|
|
25
|
+
try {
|
|
26
|
+
runtimeCell.set(nextValue);
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
isApplyingState = false;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
const { hydrate, markStateChanged } = createGridPersistController(resolvedPersist, {
|
|
33
|
+
getState: runtimeCell.get,
|
|
34
|
+
replaceState: applyInternalValue,
|
|
35
|
+
isApplyingState: () => isApplyingState,
|
|
36
|
+
onHydratedStateApplied: () => {
|
|
37
|
+
didHydratePersistedValue = true;
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
hydrate();
|
|
41
|
+
initializeCellValue(initialValue, (nextValue) => {
|
|
42
|
+
if (didHydratePersistedValue)
|
|
43
|
+
return;
|
|
44
|
+
applyInternalValue(nextValue);
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
...runtimeCell,
|
|
48
|
+
set: (nextValue) => {
|
|
49
|
+
runtimeCell.set(nextValue);
|
|
50
|
+
markStateChanged();
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function createRuntimeCell(initialValue) {
|
|
55
|
+
let value = initialValue;
|
|
4
56
|
const subscribers = new Set();
|
|
5
57
|
const notifySubscribers = () => {
|
|
6
58
|
subscribers.forEach((callback) => callback());
|
|
7
59
|
};
|
|
8
|
-
const initializeValue = async () => {
|
|
9
|
-
if (typeof initialValue !== "function")
|
|
10
|
-
return;
|
|
11
|
-
value = await initialValue();
|
|
12
|
-
notifySubscribers();
|
|
13
|
-
};
|
|
14
|
-
void initializeValue();
|
|
15
60
|
return {
|
|
16
61
|
get: () => value,
|
|
17
62
|
set: (newValue) => {
|
|
@@ -27,43 +72,22 @@ export function cell(initialValue) {
|
|
|
27
72
|
_subscribers: () => subscribers.size,
|
|
28
73
|
};
|
|
29
74
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const getSnapshot = useCallback(() => currentCellAccess.getCell().get(), [currentCellAccess]);
|
|
34
|
-
return [
|
|
35
|
-
useSyncExternalStore(subscribe, getSnapshot),
|
|
36
|
-
currentCellAccess.setValue,
|
|
37
|
-
];
|
|
38
|
-
}
|
|
39
|
-
export function useCellValue(cellOrGrid, position) {
|
|
40
|
-
const currentCellAccess = useMemo(() => resolveCellAccess(cellOrGrid, position), [cellOrGrid, position]);
|
|
41
|
-
const subscribe = useCallback((callback) => subscribeToResolvedCell(currentCellAccess, callback), [currentCellAccess]);
|
|
42
|
-
const getSnapshot = useCallback(() => currentCellAccess.getCell().get(), [currentCellAccess]);
|
|
43
|
-
return useSyncExternalStore(subscribe, getSnapshot);
|
|
44
|
-
}
|
|
45
|
-
function resolveCellAccess(cellOrGrid, position) {
|
|
46
|
-
if (isDimensionGrid(cellOrGrid)) {
|
|
47
|
-
return createDimensionGridCellAccess(cellOrGrid, position);
|
|
48
|
-
}
|
|
49
|
-
if (isGrid(cellOrGrid)) {
|
|
50
|
-
return createGridCellAccess(cellOrGrid, position);
|
|
75
|
+
function initializeCellValue(initialValue, onResolved) {
|
|
76
|
+
if (typeof initialValue !== "function") {
|
|
77
|
+
return;
|
|
51
78
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
cellOrGrid.set(newValue);
|
|
56
|
-
},
|
|
57
|
-
};
|
|
79
|
+
void Promise.resolve(initialValue()).then((nextValue) => {
|
|
80
|
+
onResolved(nextValue);
|
|
81
|
+
});
|
|
58
82
|
}
|
|
59
|
-
function isGrid(value) {
|
|
83
|
+
export function isGrid(value) {
|
|
60
84
|
return (typeof value === "object" &&
|
|
61
85
|
value !== null &&
|
|
62
86
|
"getCell" in value &&
|
|
63
87
|
"getRowHead" in value &&
|
|
64
88
|
"getColumnHead" in value);
|
|
65
89
|
}
|
|
66
|
-
function isDimensionGrid(value) {
|
|
90
|
+
export function isDimensionGrid(value) {
|
|
67
91
|
return (typeof value === "object" &&
|
|
68
92
|
value !== null &&
|
|
69
93
|
"dimension" in value &&
|
|
@@ -72,91 +96,52 @@ function isDimensionGrid(value) {
|
|
|
72
96
|
"getCell" in value &&
|
|
73
97
|
!("getRowHead" in value));
|
|
74
98
|
}
|
|
75
|
-
function
|
|
76
|
-
const getIndex = () => resolveDimensionGridIndex(currentGrid, position);
|
|
77
|
-
return {
|
|
78
|
-
getCell: () => currentGrid.getCell(getIndex()),
|
|
79
|
-
setValue: (newValue) => {
|
|
80
|
-
currentGrid.__setCellValue(getIndex(), newValue);
|
|
81
|
-
},
|
|
82
|
-
subscribeToPositionChanges: (callback) => currentGrid.subscribeGrid((_updatedGrid, diff) => {
|
|
83
|
-
if (diff.type === "dimension") {
|
|
84
|
-
callback();
|
|
85
|
-
}
|
|
86
|
-
}),
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
function createIndexedGridCellAccess(currentGrid, position) {
|
|
90
|
-
const getCoordinates = () => resolveGridCoordinatesFromIndex(currentGrid, position);
|
|
91
|
-
return {
|
|
92
|
-
getCell: () => {
|
|
93
|
-
const { rowId, columnId } = getCoordinates();
|
|
94
|
-
return currentGrid.getCell(rowId, columnId);
|
|
95
|
-
},
|
|
96
|
-
setValue: (newValue) => {
|
|
97
|
-
const { rowId, columnId } = getCoordinates();
|
|
98
|
-
currentGrid.__setCellValue(rowId, columnId, newValue);
|
|
99
|
-
},
|
|
100
|
-
subscribeToPositionChanges: (callback) => currentGrid.subscribeGrid((_updatedGrid, diff) => {
|
|
101
|
-
if (diff.type === "grid" ||
|
|
102
|
-
diff.type === "rows" ||
|
|
103
|
-
diff.type === "columns" ||
|
|
104
|
-
diff.type === "row-head" ||
|
|
105
|
-
diff.type === "column-head") {
|
|
106
|
-
callback();
|
|
107
|
-
}
|
|
108
|
-
}),
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
function createGridCellAccess(currentGrid, position) {
|
|
112
|
-
return createIndexedGridCellAccess(currentGrid, position);
|
|
113
|
-
}
|
|
114
|
-
function subscribeToResolvedCell(currentCellAccess, callback) {
|
|
115
|
-
let currentCell = currentCellAccess.getCell();
|
|
116
|
-
let unsubscribeCell = currentCell.subscribe(callback);
|
|
117
|
-
if (!currentCellAccess.subscribeToPositionChanges) {
|
|
118
|
-
return unsubscribeCell;
|
|
119
|
-
}
|
|
120
|
-
const unsubscribePositionChange = currentCellAccess.subscribeToPositionChanges(() => {
|
|
121
|
-
const nextCell = currentCellAccess.getCell();
|
|
122
|
-
if (nextCell !== currentCell) {
|
|
123
|
-
unsubscribeCell();
|
|
124
|
-
currentCell = nextCell;
|
|
125
|
-
unsubscribeCell = currentCell.subscribe(callback);
|
|
126
|
-
}
|
|
127
|
-
callback();
|
|
128
|
-
});
|
|
129
|
-
return () => {
|
|
130
|
-
unsubscribePositionChange();
|
|
131
|
-
unsubscribeCell();
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
function resolveDimensionGridIndex(currentGrid, position) {
|
|
99
|
+
export function resolveDimensionGridIndex(currentGrid, position) {
|
|
135
100
|
if (currentGrid.dimension === "rows") {
|
|
136
101
|
const row = position.row;
|
|
137
102
|
if (typeof row !== "number" || !Number.isInteger(row)) {
|
|
138
|
-
throw new Error(
|
|
103
|
+
throw new Error(`Row position must be an integer index. Received ${formatPositionValue(row)}.`);
|
|
104
|
+
}
|
|
105
|
+
if (row < 0 || row >= currentGrid.size) {
|
|
106
|
+
throw new Error(`Row position ${row} is out of range. ${describeAxisIndexRange("row", row, currentGrid.size)}`);
|
|
139
107
|
}
|
|
140
108
|
return row;
|
|
141
109
|
}
|
|
142
110
|
const col = position.col;
|
|
143
111
|
if (typeof col !== "number" || !Number.isInteger(col)) {
|
|
144
|
-
throw new Error(
|
|
112
|
+
throw new Error(`Column position must be an integer index. Received ${formatPositionValue(col)}.`);
|
|
113
|
+
}
|
|
114
|
+
if (col < 0 || col >= currentGrid.size) {
|
|
115
|
+
throw new Error(`Column position ${col} is out of range. ${describeAxisIndexRange("column", col, currentGrid.size)}`);
|
|
145
116
|
}
|
|
146
117
|
return col;
|
|
147
118
|
}
|
|
148
|
-
function resolveGridCoordinatesFromIndex(currentGrid, position) {
|
|
119
|
+
export function resolveGridCoordinatesFromIndex(currentGrid, position) {
|
|
149
120
|
if (!Number.isInteger(position.row) || !Number.isInteger(position.col)) {
|
|
150
|
-
throw new Error(
|
|
121
|
+
throw new Error(`Grid cell position is invalid. Expected integer indices but received { row: ${formatPositionValue(position.row)}, col: ${formatPositionValue(position.col)} }.`);
|
|
151
122
|
}
|
|
152
123
|
const rowId = currentGrid.rowHeaders[position.row];
|
|
153
124
|
const columnId = currentGrid.colHeaders[position.col];
|
|
154
125
|
if (rowId === undefined || columnId === undefined) {
|
|
155
|
-
throw new Error(
|
|
126
|
+
throw new Error([
|
|
127
|
+
`Grid cell position { row: ${position.row}, col: ${position.col} } is out of range.`,
|
|
128
|
+
describeAxisIndexRange("row", position.row, currentGrid.rowHeaders.length),
|
|
129
|
+
describeAxisIndexRange("column", position.col, currentGrid.colHeaders.length),
|
|
130
|
+
].join(" "));
|
|
156
131
|
}
|
|
157
132
|
return {
|
|
158
133
|
rowId,
|
|
159
134
|
columnId,
|
|
160
135
|
};
|
|
161
136
|
}
|
|
137
|
+
function describeAxisIndexRange(axis, index, size) {
|
|
138
|
+
const label = axis === "row" ? "rows" : "columns";
|
|
139
|
+
if (size === 0) {
|
|
140
|
+
return `The grid currently has no ${label}, so index ${index} cannot be selected.`;
|
|
141
|
+
}
|
|
142
|
+
return `${axis === "row" ? "Row" : "Column"} index ${index} must be between 0 and ${size - 1} (${size} total ${label}).`;
|
|
143
|
+
}
|
|
144
|
+
function formatPositionValue(value) {
|
|
145
|
+
return value === undefined ? "undefined" : JSON.stringify(value);
|
|
146
|
+
}
|
|
162
147
|
//# 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":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cell.js","sourceRoot":"","sources":["../../core/cell.ts"],"names":[],"mappings":"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"}
|
package/dist/core/grid.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { AnyGrid, BroadSchemaColumnHead, BroadSchemaRowHead, BroadSchemaSnapshot, Grid,
|
|
2
|
-
import type {
|
|
3
|
-
export type { CreateSubGridOptions, DimensionGrid, DimensionGridOptions, DimensionGridPosition, DimensionGridState, DimensionGridSubscriber, DimensionGridUpdateDiff, Grid, GridAxisIds, GridCellPosition, GridDimension, GridPersistAdapter, GridPersistOption, ParentDimensionGrid, ParentDimensionGridOptions, GridSchemaOptions, GridSetMode, GridState, GridStateCell, GridStateInitializer, GridSubscriber, GridUpdateAction, GridUpdateDiff, GridUpdateSource, GridUpdateType, GridUpsertHead, SubGrid, SubGridState,
|
|
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";
|
|
4
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
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
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>;
|
|
@@ -9,5 +9,4 @@ export declare function createDimensionGrid<TCell, TDimension extends GridDimens
|
|
|
9
9
|
export declare function createSubGrid<TCell, TParentGrid extends AnyGrid = AnyGrid>(parentGrid: TParentGrid): ParentSubGrid<TCell, TParentGrid>;
|
|
10
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
11
|
export declare function createGridKey(rowId: GridId, columnId: GridId): string;
|
|
12
|
-
export declare function useGrid<TCell, TRowId extends GridId, TColumnId extends GridId, 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>;
|
|
13
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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"}
|