tinybase 2.0.0-beta.2 → 2.0.0-beta.3

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.
Files changed (48) hide show
  1. package/lib/checkpoints.js +1 -1
  2. package/lib/checkpoints.js.gz +0 -0
  3. package/lib/debug/checkpoints.js +1 -4
  4. package/lib/debug/indexes.js +1 -3
  5. package/lib/debug/metrics.js +1 -4
  6. package/lib/debug/queries.d.ts +61 -296
  7. package/lib/debug/queries.js +59 -201
  8. package/lib/debug/relationships.js +1 -4
  9. package/lib/debug/store.d.ts +112 -90
  10. package/lib/debug/store.js +90 -149
  11. package/lib/debug/tinybase.js +130 -333
  12. package/lib/debug/ui-react.d.ts +81 -81
  13. package/lib/debug/ui-react.js +138 -173
  14. package/lib/indexes.js +1 -1
  15. package/lib/indexes.js.gz +0 -0
  16. package/lib/metrics.js +1 -1
  17. package/lib/metrics.js.gz +0 -0
  18. package/lib/queries.d.ts +61 -296
  19. package/lib/queries.js +1 -1
  20. package/lib/queries.js.gz +0 -0
  21. package/lib/relationships.js +1 -1
  22. package/lib/relationships.js.gz +0 -0
  23. package/lib/store.d.ts +112 -90
  24. package/lib/store.js +1 -1
  25. package/lib/store.js.gz +0 -0
  26. package/lib/tinybase.js +1 -1
  27. package/lib/tinybase.js.gz +0 -0
  28. package/lib/ui-react.d.ts +81 -81
  29. package/lib/ui-react.js +1 -1
  30. package/lib/ui-react.js.gz +0 -0
  31. package/lib/umd/checkpoints.js +1 -1
  32. package/lib/umd/checkpoints.js.gz +0 -0
  33. package/lib/umd/indexes.js +1 -1
  34. package/lib/umd/indexes.js.gz +0 -0
  35. package/lib/umd/metrics.js +1 -1
  36. package/lib/umd/metrics.js.gz +0 -0
  37. package/lib/umd/queries.js +1 -1
  38. package/lib/umd/queries.js.gz +0 -0
  39. package/lib/umd/relationships.js +1 -1
  40. package/lib/umd/relationships.js.gz +0 -0
  41. package/lib/umd/store.js +1 -1
  42. package/lib/umd/store.js.gz +0 -0
  43. package/lib/umd/tinybase.js +1 -1
  44. package/lib/umd/tinybase.js.gz +0 -0
  45. package/lib/umd/ui-react.js +1 -1
  46. package/lib/umd/ui-react.js.gz +0 -0
  47. package/package.json +9 -9
  48. package/readme.md +2 -2
@@ -3,6 +3,17 @@ import React, {useContext as useContext$1} from 'react';
3
3
  const getTypeOf = (thing) => typeof thing;
4
4
  const EMPTY_STRING = '';
5
5
  const STRING = getTypeOf(EMPTY_STRING);
6
+ const LISTENER = 'Listener';
7
+ const GET = 'get';
8
+ const ADD = 'add';
9
+ const TABLES = 'Tables';
10
+ const TABLE_IDS = 'TableIds';
11
+ const TABLE = 'Table';
12
+ const ROW_IDS = 'RowIds';
13
+ const SORTED_ROW_IDS = 'SortedRowIds';
14
+ const ROW = 'Row';
15
+ const CELL_IDS = 'CellIds';
16
+ const CELL = 'Cell';
6
17
 
7
18
  const arrayMap = (array, cb) => array.map(cb);
8
19
  const arrayLength = (array) => array.length;
@@ -60,14 +71,13 @@ const useListenable = (
60
71
  listenable,
61
72
  thing,
62
73
  defaulted,
63
- preArgs = [],
64
- postArgs = [],
74
+ args = [],
65
75
  getFromListenerArg,
66
76
  ) => {
67
77
  const [, rerender] = useState();
68
78
  const getResult = useCallback(
69
- () => thing?.['get' + listenable]?.(...preArgs) ?? defaulted,
70
- [thing, ...preArgs],
79
+ () => thing?.[GET + listenable]?.(...args) ?? defaulted,
80
+ [thing, ...args],
71
81
  );
72
82
  const [initialResult] = useState(getResult);
73
83
  const result = useRef(initialResult);
@@ -82,8 +92,7 @@ const useListenable = (
82
92
  rerender([]);
83
93
  },
84
94
  [],
85
- preArgs,
86
- ...postArgs,
95
+ args,
87
96
  );
88
97
  return result.current;
89
98
  };
@@ -96,7 +105,7 @@ const useListener = (
96
105
  ...postArgs
97
106
  ) =>
98
107
  useEffect(() => {
99
- const listenerId = thing?.[`add${listenable}Listener`]?.(
108
+ const listenerId = thing?.[ADD + listenable + LISTENER]?.(
100
109
  ...preArgs,
101
110
  listener,
102
111
  ...postArgs,
@@ -146,57 +155,43 @@ const useCheckpointAction = (checkpointsOrCheckpointsId, action, arg) => {
146
155
  const useCreateStore = (create, createDeps = []) =>
147
156
  useMemo$1(create, createDeps);
148
157
  const useTables = (storeOrStoreId) =>
149
- useListenable('Tables', useStoreOrStoreId(storeOrStoreId), {});
150
- const useTableIds = (storeOrStoreId, trackReorder) =>
151
- useListenable(
152
- 'TableIds',
153
- useStoreOrStoreId(storeOrStoreId),
154
- [],
155
- [],
156
- [trackReorder],
157
- );
158
+ useListenable(TABLES, useStoreOrStoreId(storeOrStoreId), {});
159
+ const useTableIds = (storeOrStoreId) =>
160
+ useListenable(TABLE_IDS, useStoreOrStoreId(storeOrStoreId), [], []);
158
161
  const useTable = (tableId, storeOrStoreId) =>
159
- useListenable('Table', useStoreOrStoreId(storeOrStoreId), {}, [tableId]);
160
- const useRowIds = (tableId, storeOrStoreId, trackReorder) =>
161
- useListenable(
162
- 'RowIds',
163
- useStoreOrStoreId(storeOrStoreId),
164
- [],
165
- [tableId],
166
- [trackReorder],
167
- );
162
+ useListenable(TABLE, useStoreOrStoreId(storeOrStoreId), {}, [tableId]);
163
+ const useRowIds = (tableId, storeOrStoreId) =>
164
+ useListenable(ROW_IDS, useStoreOrStoreId(storeOrStoreId), [], [tableId]);
168
165
  const useSortedRowIds = (
169
166
  tableId,
170
167
  cellId,
171
168
  descending,
169
+ offset = 0,
170
+ limit,
172
171
  storeOrStoreId,
173
- trackReorder,
174
172
  ) =>
175
173
  useListenable(
176
- 'SortedRowIds',
174
+ SORTED_ROW_IDS,
177
175
  useStoreOrStoreId(storeOrStoreId),
178
176
  [],
179
- [tableId, cellId, descending],
180
- [trackReorder],
181
- 4,
177
+ [tableId, cellId, descending, offset, limit],
178
+ 6,
182
179
  );
183
180
  const useRow = (tableId, rowId, storeOrStoreId) =>
184
- useListenable('Row', useStoreOrStoreId(storeOrStoreId), {}, [tableId, rowId]);
185
- const useCellIds = (tableId, rowId, storeOrStoreId, trackReorder) =>
181
+ useListenable(ROW, useStoreOrStoreId(storeOrStoreId), {}, [tableId, rowId]);
182
+ const useCellIds = (tableId, rowId, storeOrStoreId) =>
186
183
  useListenable(
187
- 'CellIds',
184
+ CELL_IDS,
188
185
  useStoreOrStoreId(storeOrStoreId),
189
186
  [],
190
187
  [tableId, rowId],
191
- [trackReorder],
192
188
  );
193
189
  const useCell = (tableId, rowId, cellId, storeOrStoreId) =>
194
190
  useListenable(
195
- 'Cell',
191
+ CELL,
196
192
  useStoreOrStoreId(storeOrStoreId),
197
193
  void 0,
198
194
  [tableId, rowId, cellId],
199
- [],
200
195
  4,
201
196
  );
202
197
  const useSetTablesCallback = (
@@ -208,7 +203,7 @@ const useSetTablesCallback = (
208
203
  ) =>
209
204
  useSetCallback(
210
205
  storeOrStoreId,
211
- 'Tables',
206
+ TABLES,
212
207
  getTables,
213
208
  getTablesDeps,
214
209
  then,
@@ -224,7 +219,7 @@ const useSetTableCallback = (
224
219
  ) =>
225
220
  useSetCallback(
226
221
  storeOrStoreId,
227
- 'Table',
222
+ TABLE,
228
223
  getTable,
229
224
  getTableDeps,
230
225
  then,
@@ -242,7 +237,7 @@ const useSetRowCallback = (
242
237
  ) =>
243
238
  useSetCallback(
244
239
  storeOrStoreId,
245
- 'Row',
240
+ ROW,
246
241
  getRow,
247
242
  getRowDeps,
248
243
  then,
@@ -300,7 +295,7 @@ const useSetCellCallback = (
300
295
  ) =>
301
296
  useSetCallback(
302
297
  storeOrStoreId,
303
- 'Cell',
298
+ CELL,
304
299
  getCell,
305
300
  getCellDeps,
306
301
  then,
@@ -310,11 +305,11 @@ const useSetCellCallback = (
310
305
  cellId,
311
306
  );
312
307
  const useDelTablesCallback = (storeOrStoreId, then, thenDeps) =>
313
- useDel(storeOrStoreId, 'Tables', then, thenDeps);
308
+ useDel(storeOrStoreId, TABLES, then, thenDeps);
314
309
  const useDelTableCallback = (tableId, storeOrStoreId, then, thenDeps) =>
315
- useDel(storeOrStoreId, 'Table', then, thenDeps, tableId);
310
+ useDel(storeOrStoreId, TABLE, then, thenDeps, tableId);
316
311
  const useDelRowCallback = (tableId, rowId, storeOrStoreId, then, thenDeps) =>
317
- useDel(storeOrStoreId, 'Row', then, thenDeps, tableId, rowId);
312
+ useDel(storeOrStoreId, ROW, then, thenDeps, tableId, rowId);
318
313
  const useDelCellCallback = (
319
314
  tableId,
320
315
  rowId,
@@ -326,7 +321,7 @@ const useDelCellCallback = (
326
321
  ) =>
327
322
  useDel(
328
323
  storeOrStoreId,
329
- 'Cell',
324
+ CELL,
330
325
  then,
331
326
  thenDeps,
332
327
  tableId,
@@ -336,27 +331,20 @@ const useDelCellCallback = (
336
331
  );
337
332
  const useTablesListener = (listener, listenerDeps, mutator, storeOrStoreId) =>
338
333
  useListener(
339
- 'Tables',
334
+ TABLES,
340
335
  useStoreOrStoreId(storeOrStoreId),
341
336
  listener,
342
337
  listenerDeps,
343
338
  [],
344
339
  mutator,
345
340
  );
346
- const useTableIdsListener = (
347
- listener,
348
- listenerDeps,
349
- trackReorder,
350
- mutator,
351
- storeOrStoreId,
352
- ) =>
341
+ const useTableIdsListener = (listener, listenerDeps, mutator, storeOrStoreId) =>
353
342
  useListener(
354
- 'TableIds',
343
+ TABLE_IDS,
355
344
  useStoreOrStoreId(storeOrStoreId),
356
345
  listener,
357
346
  listenerDeps,
358
347
  [],
359
- trackReorder,
360
348
  mutator,
361
349
  );
362
350
  const useTableListener = (
@@ -367,7 +355,7 @@ const useTableListener = (
367
355
  storeOrStoreId,
368
356
  ) =>
369
357
  useListener(
370
- 'Table',
358
+ TABLE,
371
359
  useStoreOrStoreId(storeOrStoreId),
372
360
  listener,
373
361
  listenerDeps,
@@ -378,34 +366,34 @@ const useRowIdsListener = (
378
366
  tableId,
379
367
  listener,
380
368
  listenerDeps,
381
- trackReorder,
382
369
  mutator,
383
370
  storeOrStoreId,
384
371
  ) =>
385
372
  useListener(
386
- 'RowIds',
373
+ ROW_IDS,
387
374
  useStoreOrStoreId(storeOrStoreId),
388
375
  listener,
389
376
  listenerDeps,
390
377
  [tableId],
391
- trackReorder,
392
378
  mutator,
393
379
  );
394
380
  const useSortedRowIdsListener = (
395
381
  tableId,
396
382
  cellId,
397
383
  descending,
384
+ offset,
385
+ limit,
398
386
  listener,
399
387
  listenerDeps,
400
388
  mutator,
401
389
  storeOrStoreId,
402
390
  ) =>
403
391
  useListener(
404
- 'SortedRowIds',
392
+ SORTED_ROW_IDS,
405
393
  useStoreOrStoreId(storeOrStoreId),
406
394
  listener,
407
395
  listenerDeps,
408
- [tableId, cellId, descending],
396
+ [tableId, cellId, descending, offset, limit],
409
397
  mutator,
410
398
  );
411
399
  const useRowListener = (
@@ -417,7 +405,7 @@ const useRowListener = (
417
405
  storeOrStoreId,
418
406
  ) =>
419
407
  useListener(
420
- 'Row',
408
+ ROW,
421
409
  useStoreOrStoreId(storeOrStoreId),
422
410
  listener,
423
411
  listenerDeps,
@@ -429,17 +417,15 @@ const useCellIdsListener = (
429
417
  rowId,
430
418
  listener,
431
419
  listenerDeps,
432
- trackReorder,
433
420
  mutator,
434
421
  storeOrStoreId,
435
422
  ) =>
436
423
  useListener(
437
- 'CellIds',
424
+ CELL_IDS,
438
425
  useStoreOrStoreId(storeOrStoreId),
439
426
  listener,
440
427
  listenerDeps,
441
428
  [tableId, rowId],
442
- trackReorder,
443
429
  mutator,
444
430
  );
445
431
  const useCellListener = (
@@ -452,7 +438,7 @@ const useCellListener = (
452
438
  storeOrStoreId,
453
439
  ) =>
454
440
  useListener(
455
- 'Cell',
441
+ CELL,
456
442
  useStoreOrStoreId(storeOrStoreId),
457
443
  listener,
458
444
  listenerDeps,
@@ -604,27 +590,27 @@ const useResultTable = (queryId, queriesOrQueriesId) =>
604
590
  useListenable('ResultTable', useQueriesOrQueriesId(queriesOrQueriesId), {}, [
605
591
  queryId,
606
592
  ]);
607
- const useResultRowIds = (queryId, queriesOrQueriesId, trackReorder) =>
593
+ const useResultRowIds = (queryId, queriesOrQueriesId) =>
608
594
  useListenable(
609
595
  'ResultRowIds',
610
596
  useQueriesOrQueriesId(queriesOrQueriesId),
611
597
  [],
612
598
  [queryId],
613
- [trackReorder],
614
599
  );
615
600
  const useResultSortedRowIds = (
616
601
  queryId,
617
602
  cellId,
618
603
  descending,
604
+ offset = 0,
605
+ limit,
619
606
  queriesOrQueriesId,
620
607
  ) =>
621
608
  useListenable(
622
609
  'ResultSortedRowIds',
623
610
  useQueriesOrQueriesId(queriesOrQueriesId),
624
611
  [],
625
- [queryId, cellId, descending],
626
- [],
627
- 4,
612
+ [queryId, cellId, descending, offset, limit],
613
+ 6,
628
614
  );
629
615
  const useResultRow = (queryId, rowId, queriesOrQueriesId) =>
630
616
  useListenable('ResultRow', useQueriesOrQueriesId(queriesOrQueriesId), {}, [
@@ -662,7 +648,6 @@ const useResultRowIdsListener = (
662
648
  queryId,
663
649
  listener,
664
650
  listenerDeps,
665
- trackReorder,
666
651
  queriesOrQueriesId,
667
652
  ) =>
668
653
  useListener(
@@ -671,12 +656,13 @@ const useResultRowIdsListener = (
671
656
  listener,
672
657
  listenerDeps,
673
658
  [queryId],
674
- trackReorder,
675
659
  );
676
660
  const useResultSortedRowIdsListener = (
677
661
  queryId,
678
662
  cellId,
679
663
  descending,
664
+ offset,
665
+ limit,
680
666
  listener,
681
667
  listenerDeps,
682
668
  queriesOrQueriesId,
@@ -686,7 +672,7 @@ const useResultSortedRowIdsListener = (
686
672
  useQueriesOrQueriesId(queriesOrQueriesId),
687
673
  listener,
688
674
  listenerDeps,
689
- [queryId, cellId, descending],
675
+ [queryId, cellId, descending, offset, limit],
690
676
  );
691
677
  const useResultRowListener = (
692
678
  queryId,
@@ -854,6 +840,58 @@ const useCreatePersister = (
854
840
  };
855
841
 
856
842
  const {createElement, useMemo} = React;
843
+ const tableView = (
844
+ {
845
+ tableId,
846
+ store,
847
+ rowComponent: Row = RowView,
848
+ getRowComponentProps,
849
+ separator,
850
+ debugIds,
851
+ },
852
+ rowIds,
853
+ ) =>
854
+ wrap(
855
+ arrayMap(rowIds, (rowId) =>
856
+ /* @__PURE__ */ createElement(Row, {
857
+ ...getProps(getRowComponentProps, rowId),
858
+ key: rowId,
859
+ tableId,
860
+ rowId,
861
+ store,
862
+ debugIds,
863
+ }),
864
+ ),
865
+ separator,
866
+ debugIds,
867
+ tableId,
868
+ );
869
+ const resultTableView = (
870
+ {
871
+ queryId,
872
+ queries,
873
+ resultRowComponent: ResultRow = ResultRowView,
874
+ getResultRowComponentProps,
875
+ separator,
876
+ debugIds,
877
+ },
878
+ rowIds,
879
+ ) =>
880
+ wrap(
881
+ arrayMap(rowIds, (rowId) =>
882
+ /* @__PURE__ */ createElement(ResultRow, {
883
+ ...getProps(getResultRowComponentProps, rowId),
884
+ key: rowId,
885
+ queryId,
886
+ rowId,
887
+ queries,
888
+ debugIds,
889
+ }),
890
+ ),
891
+ separator,
892
+ debugIds,
893
+ queryId,
894
+ );
857
895
  const useRelationshipsStoreTableId = (relationships) => {
858
896
  const resolvedRelationships =
859
897
  useRelationshipsOrRelationshipsId(relationships);
@@ -990,14 +1028,13 @@ const RowView = ({
990
1028
  tableId,
991
1029
  rowId,
992
1030
  store,
993
- trackReorder,
994
1031
  cellComponent: Cell = CellView,
995
1032
  getCellComponentProps,
996
1033
  separator,
997
1034
  debugIds,
998
1035
  }) =>
999
1036
  wrap(
1000
- arrayMap(useCellIds(tableId, rowId, store, trackReorder), (cellId) =>
1037
+ arrayMap(useCellIds(tableId, rowId, store), (cellId) =>
1001
1038
  /* @__PURE__ */ createElement(Cell, {
1002
1039
  ...getProps(getCellComponentProps, cellId),
1003
1040
  key: cellId,
@@ -1012,65 +1049,29 @@ const RowView = ({
1012
1049
  debugIds,
1013
1050
  rowId,
1014
1051
  );
1015
- const SortedTableView = ({
1016
- tableId,
1017
- cellId,
1018
- descending,
1019
- store,
1020
- rowComponent: Row = RowView,
1021
- getRowComponentProps,
1022
- separator,
1023
- debugIds,
1024
- }) =>
1025
- wrap(
1026
- arrayMap(useSortedRowIds(tableId, cellId, descending, store), (rowId) =>
1027
- /* @__PURE__ */ createElement(Row, {
1028
- ...getProps(getRowComponentProps, rowId),
1029
- key: rowId,
1030
- tableId,
1031
- rowId,
1032
- store,
1033
- debugIds,
1034
- }),
1052
+ const TableView = (props) =>
1053
+ tableView(props, useRowIds(props.tableId, props.store));
1054
+ const SortedTableView = ({cellId, descending, offset, limit, ...props}) =>
1055
+ tableView(
1056
+ props,
1057
+ useSortedRowIds(
1058
+ props.tableId,
1059
+ cellId,
1060
+ descending,
1061
+ offset,
1062
+ limit,
1063
+ props.store,
1035
1064
  ),
1036
- separator,
1037
- debugIds,
1038
- tableId,
1039
- );
1040
- const TableView = ({
1041
- tableId,
1042
- store,
1043
- trackReorder,
1044
- rowComponent: Row = RowView,
1045
- getRowComponentProps,
1046
- separator,
1047
- debugIds,
1048
- }) =>
1049
- wrap(
1050
- arrayMap(useRowIds(tableId, store, trackReorder), (rowId) =>
1051
- /* @__PURE__ */ createElement(Row, {
1052
- ...getProps(getRowComponentProps, rowId),
1053
- key: rowId,
1054
- tableId,
1055
- rowId,
1056
- store,
1057
- debugIds,
1058
- }),
1059
- ),
1060
- separator,
1061
- debugIds,
1062
- tableId,
1063
1065
  );
1064
1066
  const TablesView = ({
1065
1067
  store,
1066
- trackReorder,
1067
1068
  tableComponent: Table = TableView,
1068
1069
  getTableComponentProps,
1069
1070
  separator,
1070
1071
  debugIds,
1071
1072
  }) =>
1072
1073
  wrap(
1073
- arrayMap(useTableIds(store, trackReorder), (tableId) =>
1074
+ arrayMap(useTableIds(store), (tableId) =>
1074
1075
  /* @__PURE__ */ createElement(Table, {
1075
1076
  ...getProps(getTableComponentProps, tableId),
1076
1077
  key: tableId,
@@ -1209,56 +1210,19 @@ const ResultRowView = ({
1209
1210
  debugIds,
1210
1211
  rowId,
1211
1212
  );
1212
- const ResultTableView = ({
1213
- queryId,
1214
- queries,
1215
- trackReorder,
1216
- resultRowComponent: ResultRow = ResultRowView,
1217
- getResultRowComponentProps,
1218
- separator,
1219
- debugIds,
1220
- }) =>
1221
- wrap(
1222
- arrayMap(useResultRowIds(queryId, queries, trackReorder), (rowId) =>
1223
- /* @__PURE__ */ createElement(ResultRow, {
1224
- ...getProps(getResultRowComponentProps, rowId),
1225
- key: rowId,
1226
- queryId,
1227
- rowId,
1228
- queries,
1229
- debugIds,
1230
- }),
1213
+ const ResultTableView = (props) =>
1214
+ resultTableView(props, useResultRowIds(props.queryId, props.queries));
1215
+ const ResultSortedTableView = ({cellId, descending, offset, limit, ...props}) =>
1216
+ resultTableView(
1217
+ props,
1218
+ useResultSortedRowIds(
1219
+ props.queryId,
1220
+ cellId,
1221
+ descending,
1222
+ offset,
1223
+ limit,
1224
+ props.queries,
1231
1225
  ),
1232
- separator,
1233
- debugIds,
1234
- queryId,
1235
- );
1236
- const ResultSortedTableView = ({
1237
- queryId,
1238
- cellId,
1239
- descending,
1240
- queries,
1241
- resultRowComponent: ResultRow = ResultRowView,
1242
- getResultRowComponentProps,
1243
- separator,
1244
- debugIds,
1245
- }) =>
1246
- wrap(
1247
- arrayMap(
1248
- useResultSortedRowIds(queryId, cellId, descending, queries),
1249
- (rowId) =>
1250
- /* @__PURE__ */ createElement(ResultRow, {
1251
- ...getProps(getResultRowComponentProps, rowId),
1252
- key: rowId,
1253
- queryId,
1254
- rowId,
1255
- queries,
1256
- debugIds,
1257
- }),
1258
- ),
1259
- separator,
1260
- debugIds,
1261
- queryId,
1262
1226
  );
1263
1227
  const CheckpointView = ({checkpoints, checkpointId, debugIds}) =>
1264
1228
  wrap(
@@ -1298,6 +1262,7 @@ export {
1298
1262
  SortedTableView,
1299
1263
  TableView,
1300
1264
  TablesView,
1265
+ tableView,
1301
1266
  useAddRowCallback,
1302
1267
  useCell,
1303
1268
  useCellIds,
package/lib/indexes.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),n=(e,t)=>e.every(t),s=(e,t)=>n(e,((n,s)=>0==s||t(e[s-1],n)<=0)),o=(e,t)=>e.sort(t),r=(e,t)=>e.forEach(t),c=e=>e.length,l=(e,...t)=>e.push(...t),d=e=>null==e,i=(e,t,n)=>d(e)?n?.():t(e),a=(e,t)=>e?.has(t)??!1,u=e=>d(e)||0==(e=>e.size)(e),h=e=>[...e?.values()??[]],f=e=>e.clear(),I=(e,t)=>e?.forEach(t),g=(e,t)=>e?.delete(t),S=e=>new Map(e),w=e=>[...e?.keys()??[]],L=(e,t)=>e?.get(t),p=(e,t)=>I(e,((e,n)=>t(n,e))),v=(e,t,n)=>d(n)?(g(e,t),e):e?.set(t,n),x=(e,t,n)=>(a(e,t)||v(e,t,n()),L(e,t)),E=(e,t,n,s,o=0)=>i((n?x:L)(e,t[o],o>c(t)-2?n:S),(r=>{if(o>c(t)-2)return s?.(r)&&v(e,t[o]),r;const l=E(r,t,n,s,o+1);return u(r)&&v(e,t[o]),l})),R=e=>new Set(e),b=(e,t)=>e?.add(t),y=(e,t,n)=>{const s=e.hasRow,o=S(),l=S(),E=S(),y=S(),T=S(),k=(t,n,...s)=>{const o=x(T,t,R);return r(s,(t=>b(o,t)&&n&&e.callListener(t))),s},z=(t,...n)=>i(L(T,t),(s=>{r(0==c(n)?h(s):n,(t=>{e.delListener(t),g(s,t)})),u(s)&&v(T,t)})),C=(e,n)=>{v(o,e,n),a(l,e)||(v(l,e,t()),v(E,e,S()),v(y,e,S()))},D=e=>{v(o,e),v(l,e),v(E,e),v(y,e),z(e)};return[()=>e,()=>w(o),e=>p(l,e),e=>a(l,e),e=>L(o,e),e=>L(l,e),(e,t)=>v(l,e,t),C,(t,o,c,l,i)=>{C(t,o);const u=S(),h=S(),g=L(E,t),w=L(y,t),x=t=>{const r=n=>e.getCell(o,t,n),c=L(g,t),a=s(o,t)?n(l(r,t)):void 0;if(c!=a&&v(u,t,[c,a]),!d(i)){const e=L(w,t),n=s(o,t)?i(r,t):void 0;e!=n&&v(h,t,n)}},R=e=>{c((()=>{I(u,(([,e],t)=>v(g,t,e))),I(h,((e,t)=>v(w,t,e)))}),u,h,g,w,e),f(u),f(h)};p(g,x),e.hasTable(o)&&r(e.getRowIds(o),(e=>{a(g,e)||x(e)})),R(!0),z(t),k(t,0,e.addRowListener(o,null,((e,t,n)=>x(n))),e.addTableListener(o,(()=>R())))},D,()=>p(T,D),k,z]},T=(n,s)=>e(n)==t?e=>e(n):n??(()=>s??""),k=(e,t)=>e<t?-1:1,z=(e,t=[""])=>{const n=[],s=(e,o)=>o==c(t)?l(n,e):null===t[o]?I(e,(e=>s(e,o+1))):r([t[o],null],(t=>s(L(e,t),o+1)));return s(e,0),n},C=Object.freeze,D=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=S(),f=S(),[x,D,M,j,O,W,m,,q,A,B]=y(e,S,(e=>d(e)?"":e+"")),[F,G,H]=(e=>{let t,s=0;const o=[],a=S();return[(n,r,c)=>{t??=e();const l=o.pop()??""+s++;return v(a,l,[n,r,c]),b(E(r,c??[""],R),l),l},(e,n,...s)=>r(z(e,n),(e=>I(e,(e=>L(a,e)[0](t,...n??[],...s))))),e=>i(L(a,e),(([,t,n])=>(E(t,n??[""],void 0,(t=>(g(t,e),u(t)?1:0))),v(a,e),c(o)<1e3&&l(o,e),n))),(e,t)=>!n(z(e,t),d),(e,n,s)=>i(L(a,e),(([e,,o=[]])=>{const l=(...i)=>{const a=c(i);a==c(o)?e(t,...i,...s(i)):d(o[a])?r(n[a](...i),(e=>l(...i,e))):l(...i,o[a])};l()}))]})((()=>K)),J=(t,n,s)=>{const o=O(t);I(s,((t,s)=>n(s,(n=>I(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},K={setIndexDefinition:(e,n,r,c,l,h=k)=>{const w=d(l)?void 0:([e],[t])=>l(e,t);return q(e,n,((n,r,l,x,E,y)=>{let T=0;const k=R(),z=R(),C=W(e);if(I(r,(([e,t],n)=>{d(e)||(b(k,e),i(L(C,e),(t=>{g(t,n),u(t)&&(v(C,e),T=1)}))),d(t)||(b(k,t),a(C,t)||(v(C,t,R()),T=1),b(L(C,t),n),d(c)||b(z,t))})),n(),u(E)||(y?p(C,(e=>b(z,e))):p(l,(e=>i(L(x,e),(e=>b(z,e))))),I(z,(e=>{const t=(t,n)=>h(L(E,t),L(E,n),e),n=[...L(C,e)];s(n,t)||(v(C,e,R(o(n,t))),b(k,e))}))),(T||y)&&!d(w)){const t=[...C];s(t,w)||(m(e,S(o(t,w))),T=1)}T&&G(t,[e]),I(k,(t=>G(f,[e,t])))}),T(r),i(c,T)),K},delIndexDefinition:e=>(A(e),K),getStore:x,getIndexIds:D,forEachIndex:e=>M(((t,n)=>e(t,(e=>J(t,e,n))))),forEachSlice:(e,t)=>J(e,t,W(e)),hasIndex:j,hasSlice:(e,t)=>a(W(e),t),getTableId:O,getSliceIds:e=>w(W(e)),getSliceRowIds:(e,t)=>h(L(W(e),t)),addSliceIdsListener:(e,n)=>F(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>F(n,f,[e,t]),delListener:e=>(H(e),K),destroy:B,getListenerStats:()=>({})};return C(K)}));export{D as createIndexes};
1
+ const e=e=>typeof e,t=e(""),n=(e,t)=>((e,t)=>e.every(t))(e,((n,s)=>0==s||t(e[s-1],n)<=0)),s=(e,t)=>e.sort(t),o=(e,t)=>e.forEach(t),r=e=>e.length,c=(e,...t)=>e.push(...t),l=e=>null==e,d=(e,t,n)=>l(e)?n?.():t(e),i=(e,t)=>e?.has(t)??!1,a=e=>l(e)||0==(e=>e.size)(e),u=e=>[...e?.values()??[]],h=e=>e.clear(),f=(e,t)=>e?.forEach(t),I=(e,t)=>e?.delete(t),g=e=>new Map(e),S=e=>[...e?.keys()??[]],w=(e,t)=>e?.get(t),L=(e,t)=>f(e,((e,n)=>t(n,e))),p=(e,t,n)=>l(n)?(I(e,t),e):e?.set(t,n),v=(e,t,n)=>(i(e,t)||p(e,t,n()),w(e,t)),x=(e,t,n,s,o=0)=>d((n?v:w)(e,t[o],o>r(t)-2?n:g),(c=>{if(o>r(t)-2)return s?.(c)&&p(e,t[o]),c;const l=x(c,t,n,s,o+1);return a(c)&&p(e,t[o]),l})),E=e=>new Set(e),R=(e,t)=>e?.add(t),b=(e,t,n)=>{const s=e.hasRow,c=g(),x=g(),b=g(),y=g(),T=g(),k=(t,n,...s)=>{const r=v(T,t,E);return o(s,(t=>R(r,t)&&n&&e.callListener(t))),s},z=(t,...n)=>d(w(T,t),(s=>{o(0==r(n)?u(s):n,(t=>{e.delListener(t),I(s,t)})),a(s)&&p(T,t)})),C=(e,n)=>{p(c,e,n),i(x,e)||(p(x,e,t()),p(b,e,g()),p(y,e,g()))},D=e=>{p(c,e),p(x,e),p(b,e),p(y,e),z(e)};return[()=>e,()=>S(c),e=>L(x,e),e=>i(x,e),e=>w(c,e),e=>w(x,e),(e,t)=>p(x,e,t),C,(t,r,c,d,a)=>{C(t,r);const u=g(),I=g(),S=w(b,t),v=w(y,t),x=t=>{const o=n=>e.getCell(r,t,n),c=w(S,t),i=s(r,t)?n(d(o,t)):void 0;if(c!=i&&p(u,t,[c,i]),!l(a)){const e=w(v,t),n=s(r,t)?a(o,t):void 0;e!=n&&p(I,t,n)}},E=e=>{c((()=>{f(u,(([,e],t)=>p(S,t,e))),f(I,((e,t)=>p(v,t,e)))}),u,I,S,v,e),h(u),h(I)};L(S,x),e.hasTable(r)&&o(e.getRowIds(r),(e=>{i(S,e)||x(e)})),E(!0),z(t),k(t,0,e.addRowListener(r,null,((e,t,n)=>x(n))),e.addTableListener(r,(()=>E())))},D,()=>L(T,D),k,z]},y=(n,s)=>e(n)==t?e=>e(n):n??(()=>s??""),T=(e,t)=>e<t?-1:1,k=e=>{let t,n=0;const s=[],i=g();return[(o,r,c)=>{t??=e();const l=s.pop()??""+n++;return p(i,l,[o,r,c]),R(x(r,c??[""],E),l),l},(e,n,...s)=>o(((e,t=[""])=>{const n=[],s=(e,l)=>l==r(t)?c(n,e):null===t[l]?f(e,(e=>s(e,l+1))):o([t[l],null],(t=>s(w(e,t),l+1)));return s(e,0),n})(e,n),(e=>f(e,(e=>w(i,e)[0](t,...n??[],...s))))),e=>d(w(i,e),(([,t,n])=>(x(t,n??[""],void 0,(t=>(I(t,e),a(t)?1:0))),p(i,e),r(s)<1e3&&c(s,e),n))),(e,n,s)=>d(w(i,e),(([e,,c=[]])=>{const d=(...i)=>{const a=r(i);a==r(c)?e(t,...i,...s(i)):l(c[a])?o(n[a](...i),(e=>d(...i,e))):d(...i,c[a])};d()}))]},z=Object.freeze,C=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((e=>{const t=g(),o=g(),[r,c,h,v,x,C,D,,M,j,O]=b(e,g,(e=>l(e)?"":e+"")),[W,m,q]=k((()=>B)),A=(t,n,s)=>{const o=x(t);f(s,((t,s)=>n(s,(n=>f(t,(t=>n(t,(n=>e.forEachCell(o,t,n)))))))))},B={setIndexDefinition:(e,r,c,u,h,S=T)=>{const v=l(h)?void 0:([e],[t])=>h(e,t);return M(e,r,((r,c,h,x,b,y)=>{let T=0;const k=E(),z=E(),M=C(e);if(f(c,(([e,t],n)=>{l(e)||(R(k,e),d(w(M,e),(t=>{I(t,n),a(t)&&(p(M,e),T=1)}))),l(t)||(R(k,t),i(M,t)||(p(M,t,E()),T=1),R(w(M,t),n),l(u)||R(z,t))})),r(),a(b)||(y?L(M,(e=>R(z,e))):L(h,(e=>d(w(x,e),(e=>R(z,e))))),f(z,(e=>{const t=(t,n)=>S(w(b,t),w(b,n),e),o=[...w(M,e)];n(o,t)||(p(M,e,E(s(o,t))),R(k,e))}))),(T||y)&&!l(v)){const t=[...M];n(t,v)||(D(e,g(s(t,v))),T=1)}T&&m(t,[e]),f(k,(t=>m(o,[e,t])))}),y(c),d(u,y)),B},delIndexDefinition:e=>(j(e),B),getStore:r,getIndexIds:c,forEachIndex:e=>h(((t,n)=>e(t,(e=>A(t,e,n))))),forEachSlice:(e,t)=>A(e,t,C(e)),hasIndex:v,hasSlice:(e,t)=>i(C(e),t),getTableId:x,getSliceIds:e=>S(C(e)),getSliceRowIds:(e,t)=>u(w(C(e),t)),addSliceIdsListener:(e,n)=>W(n,t,[e]),addSliceRowIdsListener:(e,t,n)=>W(n,o,[e,t]),delListener:e=>(q(e),B),destroy:O,getListenerStats:()=>({})};return z(B)}));export{C as createIndexes};
package/lib/indexes.js.gz CHANGED
Binary file
package/lib/metrics.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),n=e(e),r=(e,t)=>e.forEach(t),s=e=>o(e,((e,t)=>e+t),0),i=e=>e.length,o=(e,t,n)=>e.reduce(t,n),c=(e,...t)=>e.push(...t),a=Math.max,d=Math.min,l=isFinite,u=e=>null==e,v=(e,t,n)=>u(e)?n?.():t(e),h=()=>{},g=e=>e.size,M=(e,t)=>e?.has(t)??!1,f=e=>u(e)||0==g(e),p=e=>[...e?.values()??[]],L=e=>e.clear(),m=(e,t)=>e?.forEach(t),w=(e,t)=>e?.delete(t),b=e=>new Map(e),y=(e,t)=>e?.get(t),x=(e,t)=>m(e,((e,n)=>t(n,e))),E=(e,t,n)=>u(n)?(w(e,t),e):e?.set(t,n),I=(e,t,n)=>(M(e,t)||E(e,t,n()),y(e,t)),R=(e,t,n,r,s=0)=>v((n?I:y)(e,t[s],s>i(t)-2?n:b),(o=>{if(s>i(t)-2)return r?.(o)&&E(e,t[s]),o;const c=R(o,t,n,r,s+1);return f(o)&&E(e,t[s]),c})),S=b([["avg",[(e,t)=>s(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,r)=>e+(t-n)/r]],["max",[e=>a(...e),(e,t)=>a(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:a(t,e)]],["min",[e=>d(...e),(e,t)=>d(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:d(t,e)]],["sum",[e=>s(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),T=e=>new Set(e),k=(e,t)=>e?.add(t),z=(e,t,n)=>{const s=e.hasRow,o=b(),c=b(),a=b(),d=b(),l=b(),h=(t,n,...s)=>{const i=I(l,t,T);return r(s,(t=>k(i,t)&&n&&e.callListener(t))),s},g=(t,...n)=>v(y(l,t),(s=>{r(0==i(n)?p(s):n,(t=>{e.delListener(t),w(s,t)})),f(s)&&E(l,t)})),R=(e,n)=>{E(o,e,n),M(c,e)||(E(c,e,t()),E(a,e,b()),E(d,e,b()))},S=e=>{E(o,e),E(c,e),E(a,e),E(d,e),g(e)};return[()=>e,()=>[...o?.keys()??[]],e=>x(c,e),e=>M(c,e),e=>y(o,e),e=>y(c,e),(e,t)=>E(c,e,t),R,(t,i,o,c,l)=>{R(t,i);const v=b(),f=b(),p=y(a,t),w=y(d,t),I=t=>{const r=n=>e.getCell(i,t,n),o=y(p,t),a=s(i,t)?n(c(r,t)):void 0;if(o!=a&&E(v,t,[o,a]),!u(l)){const e=y(w,t),n=s(i,t)?l(r,t):void 0;e!=n&&E(f,t,n)}},S=e=>{o((()=>{m(v,(([,e],t)=>E(p,t,e))),m(f,((e,t)=>E(w,t,e)))}),v,f,p,w,e),L(v),L(f)};x(p,I),e.hasTable(i)&&r(e.getRowIds(i),(e=>{M(p,e)||I(e)})),S(!0),g(t),h(t,0,e.addRowListener(i,null,((e,t,n)=>I(n))),e.addTableListener(i,(()=>S())))},S,()=>x(l,S),h,g]},D=(n,r)=>e(n)==t?e=>e(n):n??(()=>r??""),N=(e,t=[""])=>{const n=[],s=(e,o)=>o==i(t)?c(n,e):null===t[o]?m(e,(e=>s(e,o+1))):r([t[o],null],(t=>s(y(e,t),o+1)));return s(e,0),n},j=Object.freeze,C=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((t=>{const s=b(),[o,a,d,M,L,x,I,,C,F,O]=z(t,h,(e=>isNaN(e)||u(e)||!0===e||!1===e||""===e?void 0:1*e)),[W,q,A]=(e=>{let t,n=0;const s=[],o=b();return[(r,i,c)=>{t??=e();const a=s.pop()??""+n++;return E(o,a,[r,i,c]),k(R(i,c??[""],T),a),a},(e,n,...s)=>r(N(e,n),(e=>m(e,(e=>y(o,e)[0](t,...n??[],...s))))),e=>v(y(o,e),(([,t,n])=>(R(t,n??[""],void 0,(t=>(w(t,e),f(t)?1:0))),E(o,e),i(s)<1e3&&c(s,e),n))),(e,t)=>{return n=N(e,t),r=u,!n.every(r);var n,r},(e,n,s)=>v(y(o,e),(([e,,o=[]])=>{const c=(...a)=>{const d=i(a);d==i(o)?e(t,...a,...s(a)):u(o[d])?r(n[d](...a),(e=>c(...a,e))):c(...a,o[d])};c()}))]})((()=>B)),B={setMetricDefinition:(t,r,i,o,c,a,d)=>{const v=e(i)==n?[i,c,a,d]:y(S,i)??y(S,"sum");return C(t,r,((e,n,r,i,o,c)=>{const a=x(t),d=g(i);c||=u(a),e();let h=((e,t,n,r,s,i=!1)=>{if(f(n))return;const[o,c,a,d]=s;return i||=u(e),m(r,(([n,r])=>{i||(e=u(n)?c?.(e,r,t++):u(r)?a?.(e,n,t--):d?.(e,r,n,t),i||=u(e))})),i?o(p(n),g(n)):e})(a,d,i,n,v,c);l(h)||(h=void 0),h!=a&&(I(t,h),q(s,[t],h,a))}),D(o,1)),B},delMetricDefinition:e=>(F(e),B),getStore:o,getMetricIds:a,forEachMetric:d,hasMetric:M,getTableId:L,getMetric:x,addMetricListener:(e,t)=>W(t,s,[e]),delListener:e=>(A(e),B),destroy:O,getListenerStats:()=>({})};return j(B)}));export{C as createMetrics};
1
+ const e=e=>typeof e,t=e(""),n=e(e),r=(e,t)=>e.forEach(t),s=e=>o(e,((e,t)=>e+t),0),i=e=>e.length,o=(e,t,n)=>e.reduce(t,n),c=(e,...t)=>e.push(...t),a=Math.max,d=Math.min,l=isFinite,u=e=>null==e,h=(e,t,n)=>u(e)?n?.():t(e),g=()=>{},v=e=>e.size,M=(e,t)=>e?.has(t)??!1,f=e=>u(e)||0==v(e),p=e=>[...e?.values()??[]],L=e=>e.clear(),m=(e,t)=>e?.forEach(t),w=(e,t)=>e?.delete(t),b=e=>new Map(e),x=(e,t)=>e?.get(t),y=(e,t)=>m(e,((e,n)=>t(n,e))),E=(e,t,n)=>u(n)?(w(e,t),e):e?.set(t,n),I=(e,t,n)=>(M(e,t)||E(e,t,n()),x(e,t)),R=(e,t,n,r,s=0)=>h((n?I:x)(e,t[s],s>i(t)-2?n:b),(o=>{if(s>i(t)-2)return r?.(o)&&E(e,t[s]),o;const c=R(o,t,n,r,s+1);return f(o)&&E(e,t[s]),c})),S=b([["avg",[(e,t)=>s(e)/t,(e,t,n)=>e+(t-e)/(n+1),(e,t,n)=>e+(e-t)/(n-1),(e,t,n,r)=>e+(t-n)/r]],["max",[e=>a(...e),(e,t)=>a(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:a(t,e)]],["min",[e=>d(...e),(e,t)=>d(t,e),(e,t)=>t==e?void 0:e,(e,t,n)=>n==e?void 0:d(t,e)]],["sum",[e=>s(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,n)=>e-n+t]]]),T=e=>new Set(e),k=(e,t)=>e?.add(t),z=(e,t,n)=>{const s=e.hasRow,o=b(),c=b(),a=b(),d=b(),l=b(),g=(t,n,...s)=>{const i=I(l,t,T);return r(s,(t=>k(i,t)&&n&&e.callListener(t))),s},v=(t,...n)=>h(x(l,t),(s=>{r(0==i(n)?p(s):n,(t=>{e.delListener(t),w(s,t)})),f(s)&&E(l,t)})),R=(e,n)=>{E(o,e,n),M(c,e)||(E(c,e,t()),E(a,e,b()),E(d,e,b()))},S=e=>{E(o,e),E(c,e),E(a,e),E(d,e),v(e)};return[()=>e,()=>[...o?.keys()??[]],e=>y(c,e),e=>M(c,e),e=>x(o,e),e=>x(c,e),(e,t)=>E(c,e,t),R,(t,i,o,c,l)=>{R(t,i);const h=b(),f=b(),p=x(a,t),w=x(d,t),I=t=>{const r=n=>e.getCell(i,t,n),o=x(p,t),a=s(i,t)?n(c(r,t)):void 0;if(o!=a&&E(h,t,[o,a]),!u(l)){const e=x(w,t),n=s(i,t)?l(r,t):void 0;e!=n&&E(f,t,n)}},S=e=>{o((()=>{m(h,(([,e],t)=>E(p,t,e))),m(f,((e,t)=>E(w,t,e)))}),h,f,p,w,e),L(h),L(f)};y(p,I),e.hasTable(i)&&r(e.getRowIds(i),(e=>{M(p,e)||I(e)})),S(!0),v(t),g(t,0,e.addRowListener(i,null,((e,t,n)=>I(n))),e.addTableListener(i,(()=>S())))},S,()=>y(l,S),g,v]},D=(n,r)=>e(n)==t?e=>e(n):n??(()=>r??""),N=e=>{let t,n=0;const s=[],o=b();return[(r,i,c)=>{t??=e();const a=s.pop()??""+n++;return E(o,a,[r,i,c]),k(R(i,c??[""],T),a),a},(e,n,...s)=>r(((e,t=[""])=>{const n=[],s=(e,o)=>o==i(t)?c(n,e):null===t[o]?m(e,(e=>s(e,o+1))):r([t[o],null],(t=>s(x(e,t),o+1)));return s(e,0),n})(e,n),(e=>m(e,(e=>x(o,e)[0](t,...n??[],...s))))),e=>h(x(o,e),(([,t,n])=>(R(t,n??[""],void 0,(t=>(w(t,e),f(t)?1:0))),E(o,e),i(s)<1e3&&c(s,e),n))),(e,n,s)=>h(x(o,e),(([e,,o=[]])=>{const c=(...a)=>{const d=i(a);d==i(o)?e(t,...a,...s(a)):u(o[d])?r(n[d](...a),(e=>c(...a,e))):c(...a,o[d])};c()}))]},j=Object.freeze,C=(e=>{const t=new WeakMap;return n=>(t.has(n)||t.set(n,e(n)),t.get(n))})((t=>{const r=b(),[s,i,o,c,a,d,h,,M,L,w]=z(t,g,(e=>isNaN(e)||u(e)||!0===e||!1===e||""===e?void 0:1*e)),[y,E,I]=N((()=>R)),R={setMetricDefinition:(t,s,i,o,c,a,g)=>{const L=e(i)==n?[i,c,a,g]:x(S,i)??x(S,"sum");return M(t,s,((e,n,s,i,o,c)=>{const a=d(t),g=v(i);c||=u(a),e();let M=((e,t,n,r,s,i=!1)=>{if(f(n))return;const[o,c,a,d]=s;return i||=u(e),m(r,(([n,r])=>{i||(e=u(n)?c?.(e,r,t++):u(r)?a?.(e,n,t--):d?.(e,r,n,t),i||=u(e))})),i?o(p(n),v(n)):e})(a,g,i,n,L,c);l(M)||(M=void 0),M!=a&&(h(t,M),E(r,[t],M,a))}),D(o,1)),R},delMetricDefinition:e=>(L(e),R),getStore:s,getMetricIds:i,forEachMetric:o,hasMetric:c,getTableId:a,getMetric:d,addMetricListener:(e,t)=>y(t,r,[e]),delListener:e=>(I(e),R),destroy:w,getListenerStats:()=>({})};return j(R)}));export{C as createMetrics};
package/lib/metrics.js.gz CHANGED
Binary file