zubin-grid 0.4.0 → 0.4.11
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 +73 -20
- package/dist/core/cell.d.ts.map +1 -1
- package/dist/core/cell.js +1 -1
- package/dist/core/cell.js.map +1 -1
- package/dist/core/grid.d.ts +4 -6
- package/dist/core/grid.d.ts.map +1 -1
- package/dist/core/grid.js +603 -168
- package/dist/core/grid.js.map +1 -1
- package/dist/core/grid.types.d.ts +32 -8
- package/dist/core/grid.types.d.ts.map +1 -1
- package/dist/core/tail.d.ts +1 -1
- package/dist/core/tail.d.ts.map +1 -1
- package/dist/core/tail.js +2 -1
- package/dist/core/tail.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -44,9 +44,9 @@ Create a grid from JSON-friendly row, column, and cell records:
|
|
|
44
44
|
import { grid } from 'zubin-grid'
|
|
45
45
|
|
|
46
46
|
type SalesSchema = {
|
|
47
|
-
rows:
|
|
48
|
-
columns:
|
|
49
|
-
cells:
|
|
47
|
+
rows: { id: string; label: string }[]
|
|
48
|
+
columns: { id: string; label: string }[]
|
|
49
|
+
cells: { rowId: string; columnId: string; value: number }[]
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
const initialState: SalesSchema = {
|
|
@@ -86,13 +86,13 @@ type BudgetRowId = 'marketing' | 'ops'
|
|
|
86
86
|
type BudgetColumnId = 'planned' | 'actual'
|
|
87
87
|
|
|
88
88
|
type BudgetSchema = {
|
|
89
|
-
rows:
|
|
90
|
-
columns:
|
|
91
|
-
cells:
|
|
89
|
+
rows: { id: BudgetRowId; label: string }[]
|
|
90
|
+
columns: { id: BudgetColumnId; label: string }[]
|
|
91
|
+
cells: {
|
|
92
92
|
rowId: BudgetRowId
|
|
93
93
|
columnId: BudgetColumnId
|
|
94
94
|
value: number
|
|
95
|
-
}
|
|
95
|
+
}[]
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
const budgetGrid = grid<BudgetSchema>(
|
|
@@ -177,10 +177,11 @@ export function MarketingRowTotal() {
|
|
|
177
177
|
|
|
178
178
|
## Reordering rows and columns
|
|
179
179
|
|
|
180
|
-
`useGrid` now stays focused on reading the ordered row and column ids. Mutating helpers such as `reorderRow` and `reorderColumn` live
|
|
180
|
+
`useGrid` now stays focused on reading the ordered row and column ids. Mutating helpers such as `reorderRow` and `reorderColumn` live on the `zubin-grid/helpers` subpath so the root package stays focused on the core store and hook primitives.
|
|
181
181
|
|
|
182
182
|
```tsx
|
|
183
|
-
import {
|
|
183
|
+
import { useGrid } from 'zubin-grid'
|
|
184
|
+
import { reorderColumn, reorderRow } from 'zubin-grid/helpers'
|
|
184
185
|
|
|
185
186
|
export function GridToolbar() {
|
|
186
187
|
const { rows, cols } = useGrid(budgetGrid)
|
|
@@ -202,17 +203,62 @@ export function GridToolbar() {
|
|
|
202
203
|
}
|
|
203
204
|
```
|
|
204
205
|
|
|
206
|
+
`useGrid` also accepts an optional `onGridUpdate` callback so React components can listen to every grid mutation with the current grid reference plus a structured diff.
|
|
207
|
+
|
|
208
|
+
```tsx
|
|
209
|
+
const { rows, cols } = useGrid(budgetGrid, {
|
|
210
|
+
onGridUpdate: (nextGrid, diff) => {
|
|
211
|
+
console.log(nextGrid.getState(), diff)
|
|
212
|
+
},
|
|
213
|
+
})
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Outside React, use `budgetGrid.subscribeGrid((grid, diff) => { ... })`.
|
|
217
|
+
|
|
218
|
+
## Full-grid updates and reset helpers
|
|
219
|
+
|
|
220
|
+
Use `setGrid` when you want to work with full snapshots instead of one row, column, or cell at a time.
|
|
221
|
+
|
|
222
|
+
```ts
|
|
223
|
+
salesGrid.setGrid({
|
|
224
|
+
rows: [{ id: 'west', label: 'West', order: 2 }],
|
|
225
|
+
columns: [{ id: 'mar', label: 'March', order: 2 }],
|
|
226
|
+
cells: [{ rowId: 'west', columnId: 'mar', value: 21 }],
|
|
227
|
+
}, 'update')
|
|
228
|
+
|
|
229
|
+
salesGrid.setGrid({
|
|
230
|
+
rows: [],
|
|
231
|
+
columns: [],
|
|
232
|
+
cells: [],
|
|
233
|
+
}, 'replace')
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
- `"update"` merges incoming rows, columns, and cells into the existing grid.
|
|
237
|
+
- `"replace"` swaps the current rows, columns, and cells with the incoming snapshot.
|
|
238
|
+
|
|
239
|
+
Reset helpers are available for the common clear flows:
|
|
240
|
+
|
|
241
|
+
```ts
|
|
242
|
+
salesGrid.clearCells()
|
|
243
|
+
salesGrid.clearGrid()
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
- `clearCells()` removes current cell entries while preserving row/column heads and tail registrations.
|
|
247
|
+
- `clearGrid()` clears rows, columns, cells, and tail registrations.
|
|
248
|
+
|
|
205
249
|
## Creating a grid from JSON-friendly state
|
|
206
250
|
|
|
207
251
|
If your data already exists as JSON-like records, you can create the grid from a single schema object.
|
|
208
252
|
|
|
253
|
+
`grid` only accepts this schema-based initializer form now.
|
|
254
|
+
|
|
209
255
|
```ts
|
|
210
256
|
import { grid } from 'zubin-grid'
|
|
211
257
|
|
|
212
258
|
type SalesSchema = {
|
|
213
|
-
rows:
|
|
214
|
-
columns:
|
|
215
|
-
cells:
|
|
259
|
+
rows: { id: string; label: string }[]
|
|
260
|
+
columns: { id: string; label: string }[]
|
|
261
|
+
cells: { rowId: string; columnId: string; value: number }[]
|
|
216
262
|
}
|
|
217
263
|
|
|
218
264
|
const initialState: SalesSchema = {
|
|
@@ -267,8 +313,8 @@ const bootstrappedSalesGrid = grid<SalesSchema>({}, {
|
|
|
267
313
|
```ts
|
|
268
314
|
const snapshot = salesGrid.getState()
|
|
269
315
|
|
|
270
|
-
salesGrid.
|
|
271
|
-
salesGrid.
|
|
316
|
+
salesGrid.upsertRows([{ id: 'west', label: 'West' }])
|
|
317
|
+
salesGrid.upsertColumns([{ id: 'mar', label: 'March' }])
|
|
272
318
|
salesGrid.upsertCell({ rowId: 'west', columnId: 'mar', value: 21 })
|
|
273
319
|
```
|
|
274
320
|
|
|
@@ -333,15 +379,24 @@ const persistedWithCustomAdapter = grid<SalesSchema>(initialState, {
|
|
|
333
379
|
|
|
334
380
|
### Grid helpers
|
|
335
381
|
|
|
336
|
-
- `useGrid(grid)` - reads the current ordered row and column ids
|
|
337
|
-
- `reorderRow(grid, activeRowId, overRowId)`
|
|
338
|
-
- `reorderColumn(grid, activeColumnId, overColumnId)`
|
|
382
|
+
- `useGrid(grid, { onGridUpdate })` - reads the current ordered row and column ids and can subscribe to every grid mutation
|
|
339
383
|
- `createGridKey(rowId, columnId)`
|
|
340
384
|
- `grid.getState()`
|
|
385
|
+
- `grid.setGrid(nextState, mode?)`
|
|
341
386
|
- `grid.upsertRow(...)`
|
|
387
|
+
- `grid.upsertRows(...)`
|
|
342
388
|
- `grid.upsertColumn(...)`
|
|
389
|
+
- `grid.upsertColumns(...)`
|
|
343
390
|
- `grid.upsertCell(...)`
|
|
344
391
|
- `grid.upsertCells(...)`
|
|
392
|
+
- `grid.clearCells()`
|
|
393
|
+
- `grid.clearGrid()`
|
|
394
|
+
- `grid.subscribeGrid((grid, diff) => { ... })`
|
|
395
|
+
|
|
396
|
+
### Helper subpath
|
|
397
|
+
|
|
398
|
+
- `reorderRow(grid, activeRowId, overRowId)` from `zubin-grid/helpers`
|
|
399
|
+
- `reorderColumn(grid, activeColumnId, overColumnId)` from `zubin-grid/helpers`
|
|
345
400
|
|
|
346
401
|
## Imports
|
|
347
402
|
|
|
@@ -351,8 +406,6 @@ Use the root package for most cases:
|
|
|
351
406
|
import {
|
|
352
407
|
cell,
|
|
353
408
|
grid,
|
|
354
|
-
reorderColumn,
|
|
355
|
-
reorderRow,
|
|
356
409
|
useCell,
|
|
357
410
|
useCellValue,
|
|
358
411
|
useRowHead,
|
|
@@ -367,7 +420,7 @@ Subpath imports are also available:
|
|
|
367
420
|
|
|
368
421
|
```ts
|
|
369
422
|
import { grid } from 'zubin-grid/grid'
|
|
370
|
-
import { reorderColumn } from 'zubin-grid/helpers'
|
|
423
|
+
import { reorderColumn, reorderRow } from 'zubin-grid/helpers'
|
|
371
424
|
import { useRowTail } from 'zubin-grid/tail'
|
|
372
425
|
```
|
|
373
426
|
|
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,EAAE,IAAI,EAAE,eAAe,EAAuB,MAAM,iBAAiB,CAAC;AAClF,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"cell.d.ts","sourceRoot":"","sources":["../../core/cell.ts"],"names":[],"mappings":"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"}
|
package/dist/core/cell.js
CHANGED
|
@@ -41,7 +41,7 @@ export function useCell(cellOrGrid, rowIdOrPosition, columnId) {
|
|
|
41
41
|
const subscribe = useCallback((callback) => currentCell.subscribe(callback), [currentCell]);
|
|
42
42
|
const getSnapshot = useCallback(() => currentCell.get(), [currentCell]);
|
|
43
43
|
const setValue = isGrid(cellOrGrid) && resolvedRowId !== undefined && resolvedColumnId !== undefined
|
|
44
|
-
? (newValue) => cellOrGrid.
|
|
44
|
+
? (newValue) => cellOrGrid.__setCellValue(resolvedRowId, resolvedColumnId, newValue)
|
|
45
45
|
: currentCell.set;
|
|
46
46
|
return [useSyncExternalStore(subscribe, getSnapshot), setValue];
|
|
47
47
|
}
|
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,WAAW,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;
|
|
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,13 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
export type { Grid, GridAxisIds, GridOptions, GridPersistAdapter, GridPersistOption, GridPosition, GridRows, GridSchemaOptions, GridState, GridStateCell, GridStateInitializer, GridUpsertHead, } from "./grid.types.js";
|
|
1
|
+
import type { Grid, GridAxisIds, GridRecord, GridSchemaOptions, GridState, GridStateInitializer, SchemaCell, SchemaCellValue, SchemaColumn, SchemaColumnHead, SchemaColumnId, SchemaRow, SchemaRowHead, SchemaRowId, SchemaSnapshot, UseGridOptions } from "./grid.types.js";
|
|
2
|
+
import type { GridHead } from "./head.types.js";
|
|
3
|
+
export type { Grid, GridAxisIds, GridPersistAdapter, GridPersistOption, GridPosition, GridRows, GridSchemaOptions, GridSetMode, GridState, GridStateCell, GridStateInitializer, GridSubscriber, GridUpdateAction, GridUpdateDiff, GridUpdateSource, GridUpdateType, GridUpsertHead, UseGridOptions, } from "./grid.types.js";
|
|
5
4
|
type BroadSchemaRowHead<TState extends GridState<GridRecord, GridRecord, GridRecord>> = SchemaRow<TState> & GridHead<string>;
|
|
6
5
|
type BroadSchemaColumnHead<TState extends GridState<GridRecord, GridRecord, GridRecord>> = SchemaColumn<TState> & GridHead<string>;
|
|
7
6
|
type BroadSchemaSnapshot<TState extends GridState<GridRecord, GridRecord, GridRecord>> = GridState<SchemaCell<TState>, BroadSchemaRowHead<TState>, BroadSchemaColumnHead<TState>>;
|
|
8
|
-
export declare function grid<TCell, TRowHeadInput extends GridHeadInput, TColumnHeadInput extends GridHeadInput>(cells: Cell<TCell>[][], options: GridOptions<TRowHeadInput, TColumnHeadInput, GridMatrixSnapshot<TCell, TRowHeadInput, TColumnHeadInput>>): Grid<TCell, GridHeadId<TRowHeadInput>, GridHeadId<TColumnHeadInput>, ResolvedGridHead<TRowHeadInput>, ResolvedGridHead<TColumnHeadInput>, GridStateCell<TCell, GridHeadId<TRowHeadInput>, GridHeadId<TColumnHeadInput>>, GridMatrixSnapshot<TCell, TRowHeadInput, TColumnHeadInput>>;
|
|
9
7
|
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>>;
|
|
10
8
|
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>>;
|
|
11
9
|
export declare function createGridKey(rowId: string, columnId: string): string;
|
|
12
|
-
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>): GridAxisIds<TRowId, TColumnId>;
|
|
10
|
+
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>;
|
|
13
11
|
//# 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":"AAMA,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EAIX,UAAU,EACV,iBAAiB,EAEjB,SAAS,EAGT,oBAAoB,EAIpB,UAAU,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,aAAa,EACb,WAAW,EACX,cAAc,EACd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAWzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,YAAY,EACV,IAAI,EACJ,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,KAAK,kBAAkB,CAAC,MAAM,SAAS,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,IAClF,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAEvC,KAAK,qBAAqB,CAAC,MAAM,SAAS,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,IACrF,YAAY,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE1C,KAAK,mBAAmB,CAAC,MAAM,SAAS,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,IACnF,SAAS,CACP,UAAU,CAAC,MAAM,CAAC,EAClB,kBAAkB,CAAC,MAAM,CAAC,EAC1B,qBAAqB,CAAC,MAAM,CAAC,CAC9B,CAAC;AAMJ,wBAAgB,IAAI,CAAC,MAAM,SAAS,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,EAC/E,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,EACpC,OAAO,EAAE,iBAAiB,CACxB,MAAM,EACN,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,EAChC,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,EACnC,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,EACjC,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,EACjC,mBAAmB,CAAC,MAAM,CAAC,CAC5B,GACA,IAAI,CACL,UAAU,CAAC,MAAM,CAAC,EAClB,MAAM,EACN,MAAM,EACN,kBAAkB,CAAC,MAAM,CAAC,EAC1B,qBAAqB,CAAC,MAAM,CAAC,EAC7B,UAAU,CAAC,MAAM,CAAC,EAClB,mBAAmB,CAAC,MAAM,CAAC,CAC5B,CAAC;AAEF,wBAAgB,IAAI,CAClB,MAAM,SAAS,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,EAC5D,aAAa,SAAS,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,EACtD,gBAAgB,SAAS,MAAM,YAAY,CAAC,MAAM,CAAC,GAAG,MAAM,EAC5D,WAAW,SAAS,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,EACrD,cAAc,SAAS,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,EAExD,MAAM,EAAE,oBAAoB,CAAC,MAAM,CAAC,EACpC,OAAO,EAAE,iBAAiB,CACxB,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,CAAC,CACrF,GACA,IAAI,CACL,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,CAAC,EACrF,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAClC,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC,EACxC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,EACpC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC1C,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,CAAC,EACrF,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,CAAC,CACrF,CAAC;AAgmCF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAE5D;AAED,wBAAgB,OAAO,CACrB,KAAK,EACL,MAAM,SAAS,MAAM,EACrB,SAAS,SAAS,MAAM,EACxB,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,EACjC,WAAW,SAAS,QAAQ,CAAC,SAAS,CAAC,EACvC,UAAU,EACV,MAAM,SAAS,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,EAE3D,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,EACtF,OAAO,CAAC,EAAE,cAAc,CACtB,KAAK,EACL,MAAM,EACN,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,MAAM,CACP,GACA,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAyChC"}
|