tinybase 4.3.23 → 4.4.0-beta.1
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/lib/cjs/store.cjs +1 -1
- package/lib/cjs/store.cjs.gz +0 -0
- package/lib/cjs/tinybase.cjs +1 -1
- package/lib/cjs/tinybase.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs-es6/store.cjs +1 -1
- package/lib/cjs-es6/store.cjs.gz +0 -0
- package/lib/cjs-es6/tinybase.cjs +1 -1
- package/lib/cjs-es6/tinybase.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/debug/store.js +112 -25
- package/lib/debug/tinybase.js +112 -25
- package/lib/debug/ui-react-dom.js +112 -25
- package/lib/es6/store.js +1 -1
- package/lib/es6/store.js.gz +0 -0
- package/lib/es6/tinybase.js +1 -1
- package/lib/es6/tinybase.js.gz +0 -0
- package/lib/es6/ui-react-dom-debug.js +1 -1
- package/lib/es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/store.js +1 -1
- package/lib/store.js.gz +0 -0
- package/lib/tinybase.js +1 -1
- package/lib/tinybase.js.gz +0 -0
- package/lib/types/store.d.ts +911 -31
- package/lib/types/with-schemas/store.d.ts +1179 -35
- package/lib/umd/store.js +1 -1
- package/lib/umd/store.js.gz +0 -0
- package/lib/umd/tinybase.js +1 -1
- package/lib/umd/tinybase.js.gz +0 -0
- package/lib/umd/ui-react-dom-debug.js +1 -1
- package/lib/umd/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd-es6/store.js +1 -1
- package/lib/umd-es6/store.js.gz +0 -0
- package/lib/umd-es6/tinybase.js +1 -1
- package/lib/umd-es6/tinybase.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom-debug.js +1 -1
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/package.json +4 -4
- package/readme.md +13 -13
package/lib/debug/tinybase.js
CHANGED
|
@@ -27,6 +27,7 @@ const CELL_IDS = CELL + IDS;
|
|
|
27
27
|
const VALUE = 'Value';
|
|
28
28
|
const VALUES = VALUE + 's';
|
|
29
29
|
const VALUE_IDS = VALUE + IDS;
|
|
30
|
+
const HAS = 'Has';
|
|
30
31
|
const id = (key) => EMPTY_STRING + key;
|
|
31
32
|
|
|
32
33
|
const mathMax = Math.max;
|
|
@@ -1876,6 +1877,8 @@ const createStore = () => {
|
|
|
1876
1877
|
let hasValuesSchema;
|
|
1877
1878
|
let cellsTouched = false;
|
|
1878
1879
|
let valuesTouched = false;
|
|
1880
|
+
let hadTables = false;
|
|
1881
|
+
let hadValues = false;
|
|
1879
1882
|
let transactions = 0;
|
|
1880
1883
|
const changedTableIds = mapNew();
|
|
1881
1884
|
const changedTableCellIds = mapNew();
|
|
@@ -1896,20 +1899,27 @@ const createStore = () => {
|
|
|
1896
1899
|
const tableCellIds = mapNew();
|
|
1897
1900
|
const tablesMap = mapNew();
|
|
1898
1901
|
const valuesMap = mapNew();
|
|
1902
|
+
const hasTablesListeners = pairNewMap();
|
|
1899
1903
|
const tablesListeners = pairNewMap();
|
|
1900
1904
|
const tableIdsListeners = pairNewMap();
|
|
1905
|
+
const hasTableListeners = pairNewMap();
|
|
1901
1906
|
const tableListeners = pairNewMap();
|
|
1902
1907
|
const tableCellIdsListeners = pairNewMap();
|
|
1908
|
+
const hasTableCellListeners = pairNewMap();
|
|
1903
1909
|
const rowCountListeners = pairNewMap();
|
|
1904
1910
|
const rowIdsListeners = pairNewMap();
|
|
1905
1911
|
const sortedRowIdsListeners = pairNewMap();
|
|
1912
|
+
const hasRowListeners = pairNewMap();
|
|
1906
1913
|
const rowListeners = pairNewMap();
|
|
1907
1914
|
const cellIdsListeners = pairNewMap();
|
|
1915
|
+
const hasCellListeners = pairNewMap();
|
|
1908
1916
|
const cellListeners = pairNewMap();
|
|
1909
1917
|
const invalidCellListeners = pairNewMap();
|
|
1910
1918
|
const invalidValueListeners = pairNewMap();
|
|
1919
|
+
const hasValuesListeners = pairNewMap();
|
|
1911
1920
|
const valuesListeners = pairNewMap();
|
|
1912
1921
|
const valueIdsListeners = pairNewMap();
|
|
1922
|
+
const hasValueListeners = pairNewMap();
|
|
1913
1923
|
const valueListeners = pairNewMap();
|
|
1914
1924
|
const startTransactionListeners = mapNew();
|
|
1915
1925
|
const finishTransactionListeners = pairNewMap();
|
|
@@ -2304,29 +2314,45 @@ const createStore = () => {
|
|
|
2304
2314
|
),
|
|
2305
2315
|
)
|
|
2306
2316
|
: 0;
|
|
2307
|
-
const
|
|
2317
|
+
const callIdsAndHasListenersIfChanged = (
|
|
2318
|
+
changedIds,
|
|
2319
|
+
idListeners,
|
|
2320
|
+
hasListeners,
|
|
2321
|
+
ids,
|
|
2322
|
+
) => {
|
|
2308
2323
|
if (!collIsEmpty(changedIds)) {
|
|
2309
|
-
callListeners(
|
|
2324
|
+
callListeners(idListeners, ids, () => mapToObj(changedIds));
|
|
2325
|
+
mapForEach(changedIds, (changedId, changed) =>
|
|
2326
|
+
callListeners(hasListeners, [...(ids ?? []), changedId], changed == 1),
|
|
2327
|
+
);
|
|
2310
2328
|
return 1;
|
|
2311
2329
|
}
|
|
2312
2330
|
};
|
|
2313
2331
|
const callTabularListenersForChanges = (mutator) => {
|
|
2332
|
+
const hasTablesNow = hasTables();
|
|
2333
|
+
if (hasTablesNow != hadTables) {
|
|
2334
|
+
callListeners(hasTablesListeners[mutator], void 0, hasTablesNow);
|
|
2335
|
+
}
|
|
2314
2336
|
const emptySortedRowIdListeners = collIsEmpty(
|
|
2315
2337
|
sortedRowIdsListeners[mutator],
|
|
2316
2338
|
);
|
|
2317
|
-
const
|
|
2339
|
+
const emptyIdAndHasListeners =
|
|
2318
2340
|
collIsEmpty(cellIdsListeners[mutator]) &&
|
|
2341
|
+
collIsEmpty(hasCellListeners[mutator]) &&
|
|
2342
|
+
collIsEmpty(rowIdsListeners[mutator]) &&
|
|
2343
|
+
collIsEmpty(hasRowListeners[mutator]) &&
|
|
2319
2344
|
collIsEmpty(tableCellIdsListeners[mutator]) &&
|
|
2345
|
+
collIsEmpty(hasTableCellListeners[mutator]) &&
|
|
2320
2346
|
collIsEmpty(rowCountListeners[mutator]) &&
|
|
2321
|
-
collIsEmpty(rowIdsListeners[mutator]) &&
|
|
2322
2347
|
emptySortedRowIdListeners &&
|
|
2323
|
-
collIsEmpty(tableIdsListeners[mutator])
|
|
2348
|
+
collIsEmpty(tableIdsListeners[mutator]) &&
|
|
2349
|
+
collIsEmpty(hasTableListeners[mutator]);
|
|
2324
2350
|
const emptyOtherListeners =
|
|
2325
2351
|
collIsEmpty(cellListeners[mutator]) &&
|
|
2326
2352
|
collIsEmpty(rowListeners[mutator]) &&
|
|
2327
2353
|
collIsEmpty(tableListeners[mutator]) &&
|
|
2328
2354
|
collIsEmpty(tablesListeners[mutator]);
|
|
2329
|
-
if (!
|
|
2355
|
+
if (!emptyIdAndHasListeners || !emptyOtherListeners) {
|
|
2330
2356
|
const changes = mutator
|
|
2331
2357
|
? [
|
|
2332
2358
|
mapClone(changedTableIds),
|
|
@@ -2344,12 +2370,17 @@ const createStore = () => {
|
|
|
2344
2370
|
changedCellIds,
|
|
2345
2371
|
changedCells,
|
|
2346
2372
|
];
|
|
2347
|
-
if (!
|
|
2348
|
-
|
|
2373
|
+
if (!emptyIdAndHasListeners) {
|
|
2374
|
+
callIdsAndHasListenersIfChanged(
|
|
2375
|
+
changes[0],
|
|
2376
|
+
tableIdsListeners[mutator],
|
|
2377
|
+
hasTableListeners[mutator],
|
|
2378
|
+
);
|
|
2349
2379
|
collForEach(changes[1], (changedIds, tableId) =>
|
|
2350
|
-
|
|
2351
|
-
tableCellIdsListeners[mutator],
|
|
2380
|
+
callIdsAndHasListenersIfChanged(
|
|
2352
2381
|
changedIds,
|
|
2382
|
+
tableCellIdsListeners[mutator],
|
|
2383
|
+
hasTableCellListeners[mutator],
|
|
2353
2384
|
[tableId],
|
|
2354
2385
|
),
|
|
2355
2386
|
);
|
|
@@ -2365,9 +2396,12 @@ const createStore = () => {
|
|
|
2365
2396
|
const calledSortableTableIds = setNew();
|
|
2366
2397
|
collForEach(changes[3], (changedIds, tableId) => {
|
|
2367
2398
|
if (
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2399
|
+
callIdsAndHasListenersIfChanged(
|
|
2400
|
+
changedIds,
|
|
2401
|
+
rowIdsListeners[mutator],
|
|
2402
|
+
hasRowListeners[mutator],
|
|
2403
|
+
[tableId],
|
|
2404
|
+
) &&
|
|
2371
2405
|
!emptySortedRowIdListeners
|
|
2372
2406
|
) {
|
|
2373
2407
|
callListeners(sortedRowIdsListeners[mutator], [tableId, null]);
|
|
@@ -2396,10 +2430,12 @@ const createStore = () => {
|
|
|
2396
2430
|
}
|
|
2397
2431
|
collForEach(changes[4], (rowCellIds, tableId) =>
|
|
2398
2432
|
collForEach(rowCellIds, (changedIds, rowId) =>
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
|
|
2402
|
-
|
|
2433
|
+
callIdsAndHasListenersIfChanged(
|
|
2434
|
+
changedIds,
|
|
2435
|
+
cellIdsListeners[mutator],
|
|
2436
|
+
hasCellListeners[mutator],
|
|
2437
|
+
[tableId, rowId],
|
|
2438
|
+
),
|
|
2403
2439
|
),
|
|
2404
2440
|
);
|
|
2405
2441
|
}
|
|
@@ -2439,17 +2475,27 @@ const createStore = () => {
|
|
|
2439
2475
|
}
|
|
2440
2476
|
}
|
|
2441
2477
|
};
|
|
2442
|
-
const
|
|
2443
|
-
const
|
|
2478
|
+
const callValuesListenersForChanges = (mutator) => {
|
|
2479
|
+
const hasValuesNow = hasValues();
|
|
2480
|
+
if (hasValuesNow != hadValues) {
|
|
2481
|
+
callListeners(hasValuesListeners[mutator], void 0, hasValuesNow);
|
|
2482
|
+
}
|
|
2483
|
+
const emptyIdAndHasListeners =
|
|
2484
|
+
collIsEmpty(valueIdsListeners[mutator]) &&
|
|
2485
|
+
collIsEmpty(hasValueListeners[mutator]);
|
|
2444
2486
|
const emptyOtherListeners =
|
|
2445
2487
|
collIsEmpty(valueListeners[mutator]) &&
|
|
2446
2488
|
collIsEmpty(valuesListeners[mutator]);
|
|
2447
|
-
if (!
|
|
2489
|
+
if (!emptyIdAndHasListeners || !emptyOtherListeners) {
|
|
2448
2490
|
const changes = mutator
|
|
2449
2491
|
? [mapClone(changedValueIds), mapClone(changedValues)]
|
|
2450
2492
|
: [changedValueIds, changedValues];
|
|
2451
|
-
if (!
|
|
2452
|
-
|
|
2493
|
+
if (!emptyIdAndHasListeners) {
|
|
2494
|
+
callIdsAndHasListenersIfChanged(
|
|
2495
|
+
changes[0],
|
|
2496
|
+
valueIdsListeners[mutator],
|
|
2497
|
+
hasValueListeners[mutator],
|
|
2498
|
+
);
|
|
2453
2499
|
}
|
|
2454
2500
|
if (!emptyOtherListeners) {
|
|
2455
2501
|
let valuesChanged;
|
|
@@ -2822,7 +2868,7 @@ const createStore = () => {
|
|
|
2822
2868
|
}
|
|
2823
2869
|
callInvalidValueListeners(1);
|
|
2824
2870
|
if (valuesTouched) {
|
|
2825
|
-
|
|
2871
|
+
callValuesListenersForChanges(1);
|
|
2826
2872
|
}
|
|
2827
2873
|
if (doRollback?.(getTransactionChanges, getTransactionLog)) {
|
|
2828
2874
|
collForEach(changedCells, (table, tableId) =>
|
|
@@ -2850,7 +2896,7 @@ const createStore = () => {
|
|
|
2850
2896
|
}
|
|
2851
2897
|
callInvalidValueListeners(0);
|
|
2852
2898
|
if (valuesTouched) {
|
|
2853
|
-
|
|
2899
|
+
callValuesListenersForChanges(0);
|
|
2854
2900
|
}
|
|
2855
2901
|
callListeners(
|
|
2856
2902
|
finishTransactionListeners[1],
|
|
@@ -2860,6 +2906,8 @@ const createStore = () => {
|
|
|
2860
2906
|
);
|
|
2861
2907
|
transactions = 0;
|
|
2862
2908
|
cellsTouched = valuesTouched = false;
|
|
2909
|
+
hadTables = hasTables();
|
|
2910
|
+
hadValues = hasValues();
|
|
2863
2911
|
arrayForEach(
|
|
2864
2912
|
[
|
|
2865
2913
|
changedTableIds,
|
|
@@ -2956,19 +3004,26 @@ const createStore = () => {
|
|
|
2956
3004
|
return store;
|
|
2957
3005
|
};
|
|
2958
3006
|
const getListenerStats = () => ({
|
|
3007
|
+
hasTables: pairCollSize2(hasTablesListeners),
|
|
2959
3008
|
tables: pairCollSize2(tablesListeners),
|
|
2960
3009
|
tableIds: pairCollSize2(tableIdsListeners),
|
|
2961
|
-
|
|
3010
|
+
hasTable: pairCollSize2(hasTableListeners),
|
|
2962
3011
|
table: pairCollSize2(tableListeners),
|
|
3012
|
+
tableCellIds: pairCollSize2(tableCellIdsListeners),
|
|
3013
|
+
hasTableCell: pairCollSize2(hasTableCellListeners, collSize3),
|
|
2963
3014
|
rowCount: pairCollSize2(rowCountListeners),
|
|
2964
3015
|
rowIds: pairCollSize2(rowIdsListeners),
|
|
2965
3016
|
sortedRowIds: pairCollSize2(sortedRowIdsListeners),
|
|
3017
|
+
hasRow: pairCollSize2(hasRowListeners, collSize3),
|
|
2966
3018
|
row: pairCollSize2(rowListeners, collSize3),
|
|
2967
3019
|
cellIds: pairCollSize2(cellIdsListeners, collSize3),
|
|
3020
|
+
hasCell: pairCollSize2(hasCellListeners, collSize4),
|
|
2968
3021
|
cell: pairCollSize2(cellListeners, collSize4),
|
|
2969
3022
|
invalidCell: pairCollSize2(invalidCellListeners, collSize4),
|
|
3023
|
+
hasValues: pairCollSize2(hasValuesListeners),
|
|
2970
3024
|
values: pairCollSize2(valuesListeners),
|
|
2971
3025
|
valueIds: pairCollSize2(valueIdsListeners),
|
|
3026
|
+
hasValue: pairCollSize2(hasValueListeners),
|
|
2972
3027
|
value: pairCollSize2(valueListeners),
|
|
2973
3028
|
invalidValue: pairCollSize2(invalidValueListeners),
|
|
2974
3029
|
transaction:
|
|
@@ -3053,14 +3108,39 @@ const createStore = () => {
|
|
|
3053
3108
|
};
|
|
3054
3109
|
objMap(
|
|
3055
3110
|
{
|
|
3111
|
+
[HAS + TABLES]: [0, hasTablesListeners, [], () => [hasTables()]],
|
|
3056
3112
|
[TABLES]: [0, tablesListeners],
|
|
3057
3113
|
[TABLE_IDS]: [0, tableIdsListeners],
|
|
3114
|
+
[HAS + TABLE]: [
|
|
3115
|
+
1,
|
|
3116
|
+
hasTableListeners,
|
|
3117
|
+
[getTableIds],
|
|
3118
|
+
(ids) => [hasTable(...ids)],
|
|
3119
|
+
],
|
|
3058
3120
|
[TABLE]: [1, tableListeners, [getTableIds]],
|
|
3059
3121
|
[TABLE + CELL_IDS]: [1, tableCellIdsListeners, [getTableIds]],
|
|
3122
|
+
[HAS + TABLE + CELL]: [
|
|
3123
|
+
2,
|
|
3124
|
+
hasTableCellListeners,
|
|
3125
|
+
[getTableIds, getTableCellIds],
|
|
3126
|
+
(ids) => [hasTableCell(...ids)],
|
|
3127
|
+
],
|
|
3060
3128
|
[ROW_COUNT]: [1, rowCountListeners, [getTableIds]],
|
|
3061
3129
|
[ROW_IDS]: [1, rowIdsListeners, [getTableIds]],
|
|
3130
|
+
[HAS + ROW]: [
|
|
3131
|
+
2,
|
|
3132
|
+
hasRowListeners,
|
|
3133
|
+
[getTableIds, getRowIds],
|
|
3134
|
+
(ids) => [hasRow(...ids)],
|
|
3135
|
+
],
|
|
3062
3136
|
[ROW]: [2, rowListeners, [getTableIds, getRowIds]],
|
|
3063
3137
|
[CELL_IDS]: [2, cellIdsListeners, [getTableIds, getRowIds]],
|
|
3138
|
+
[HAS + CELL]: [
|
|
3139
|
+
3,
|
|
3140
|
+
hasCellListeners,
|
|
3141
|
+
[getTableIds, getRowIds, getCellIds],
|
|
3142
|
+
(ids) => [hasCell(...ids)],
|
|
3143
|
+
],
|
|
3064
3144
|
[CELL]: [
|
|
3065
3145
|
3,
|
|
3066
3146
|
cellListeners,
|
|
@@ -3068,8 +3148,15 @@ const createStore = () => {
|
|
|
3068
3148
|
(ids) => pairNew(getCell(...ids)),
|
|
3069
3149
|
],
|
|
3070
3150
|
InvalidCell: [3, invalidCellListeners],
|
|
3151
|
+
[HAS + VALUES]: [0, hasValuesListeners, [], () => [hasValues()]],
|
|
3071
3152
|
[VALUES]: [0, valuesListeners],
|
|
3072
3153
|
[VALUE_IDS]: [0, valueIdsListeners],
|
|
3154
|
+
[HAS + VALUE]: [
|
|
3155
|
+
1,
|
|
3156
|
+
hasValueListeners,
|
|
3157
|
+
[getValueIds],
|
|
3158
|
+
(ids) => [hasValue(...ids)],
|
|
3159
|
+
],
|
|
3073
3160
|
[VALUE]: [
|
|
3074
3161
|
1,
|
|
3075
3162
|
valueListeners,
|
|
@@ -65,6 +65,7 @@ const CELL_IDS = CELL + IDS;
|
|
|
65
65
|
const VALUE = 'Value';
|
|
66
66
|
const VALUES = VALUE + 's';
|
|
67
67
|
const VALUE_IDS = VALUE + IDS;
|
|
68
|
+
const HAS = 'Has';
|
|
68
69
|
const CURRENT_TARGET = 'currentTarget';
|
|
69
70
|
const _VALUE = 'value';
|
|
70
71
|
const id = (key) => EMPTY_STRING + key;
|
|
@@ -1891,6 +1892,8 @@ const createStore = () => {
|
|
|
1891
1892
|
let hasValuesSchema;
|
|
1892
1893
|
let cellsTouched = false;
|
|
1893
1894
|
let valuesTouched = false;
|
|
1895
|
+
let hadTables = false;
|
|
1896
|
+
let hadValues = false;
|
|
1894
1897
|
let transactions = 0;
|
|
1895
1898
|
const changedTableIds = mapNew();
|
|
1896
1899
|
const changedTableCellIds = mapNew();
|
|
@@ -1911,20 +1914,27 @@ const createStore = () => {
|
|
|
1911
1914
|
const tableCellIds = mapNew();
|
|
1912
1915
|
const tablesMap = mapNew();
|
|
1913
1916
|
const valuesMap = mapNew();
|
|
1917
|
+
const hasTablesListeners = pairNewMap();
|
|
1914
1918
|
const tablesListeners = pairNewMap();
|
|
1915
1919
|
const tableIdsListeners = pairNewMap();
|
|
1920
|
+
const hasTableListeners = pairNewMap();
|
|
1916
1921
|
const tableListeners = pairNewMap();
|
|
1917
1922
|
const tableCellIdsListeners = pairNewMap();
|
|
1923
|
+
const hasTableCellListeners = pairNewMap();
|
|
1918
1924
|
const rowCountListeners = pairNewMap();
|
|
1919
1925
|
const rowIdsListeners = pairNewMap();
|
|
1920
1926
|
const sortedRowIdsListeners = pairNewMap();
|
|
1927
|
+
const hasRowListeners = pairNewMap();
|
|
1921
1928
|
const rowListeners = pairNewMap();
|
|
1922
1929
|
const cellIdsListeners = pairNewMap();
|
|
1930
|
+
const hasCellListeners = pairNewMap();
|
|
1923
1931
|
const cellListeners = pairNewMap();
|
|
1924
1932
|
const invalidCellListeners = pairNewMap();
|
|
1925
1933
|
const invalidValueListeners = pairNewMap();
|
|
1934
|
+
const hasValuesListeners = pairNewMap();
|
|
1926
1935
|
const valuesListeners = pairNewMap();
|
|
1927
1936
|
const valueIdsListeners = pairNewMap();
|
|
1937
|
+
const hasValueListeners = pairNewMap();
|
|
1928
1938
|
const valueListeners = pairNewMap();
|
|
1929
1939
|
const startTransactionListeners = mapNew();
|
|
1930
1940
|
const finishTransactionListeners = pairNewMap();
|
|
@@ -2319,29 +2329,45 @@ const createStore = () => {
|
|
|
2319
2329
|
),
|
|
2320
2330
|
)
|
|
2321
2331
|
: 0;
|
|
2322
|
-
const
|
|
2332
|
+
const callIdsAndHasListenersIfChanged = (
|
|
2333
|
+
changedIds,
|
|
2334
|
+
idListeners,
|
|
2335
|
+
hasListeners,
|
|
2336
|
+
ids,
|
|
2337
|
+
) => {
|
|
2323
2338
|
if (!collIsEmpty(changedIds)) {
|
|
2324
|
-
callListeners(
|
|
2339
|
+
callListeners(idListeners, ids, () => mapToObj(changedIds));
|
|
2340
|
+
mapForEach(changedIds, (changedId, changed) =>
|
|
2341
|
+
callListeners(hasListeners, [...(ids ?? []), changedId], changed == 1),
|
|
2342
|
+
);
|
|
2325
2343
|
return 1;
|
|
2326
2344
|
}
|
|
2327
2345
|
};
|
|
2328
2346
|
const callTabularListenersForChanges = (mutator) => {
|
|
2347
|
+
const hasTablesNow = hasTables();
|
|
2348
|
+
if (hasTablesNow != hadTables) {
|
|
2349
|
+
callListeners(hasTablesListeners[mutator], void 0, hasTablesNow);
|
|
2350
|
+
}
|
|
2329
2351
|
const emptySortedRowIdListeners = collIsEmpty(
|
|
2330
2352
|
sortedRowIdsListeners[mutator],
|
|
2331
2353
|
);
|
|
2332
|
-
const
|
|
2354
|
+
const emptyIdAndHasListeners =
|
|
2333
2355
|
collIsEmpty(cellIdsListeners[mutator]) &&
|
|
2356
|
+
collIsEmpty(hasCellListeners[mutator]) &&
|
|
2357
|
+
collIsEmpty(rowIdsListeners[mutator]) &&
|
|
2358
|
+
collIsEmpty(hasRowListeners[mutator]) &&
|
|
2334
2359
|
collIsEmpty(tableCellIdsListeners[mutator]) &&
|
|
2360
|
+
collIsEmpty(hasTableCellListeners[mutator]) &&
|
|
2335
2361
|
collIsEmpty(rowCountListeners[mutator]) &&
|
|
2336
|
-
collIsEmpty(rowIdsListeners[mutator]) &&
|
|
2337
2362
|
emptySortedRowIdListeners &&
|
|
2338
|
-
collIsEmpty(tableIdsListeners[mutator])
|
|
2363
|
+
collIsEmpty(tableIdsListeners[mutator]) &&
|
|
2364
|
+
collIsEmpty(hasTableListeners[mutator]);
|
|
2339
2365
|
const emptyOtherListeners =
|
|
2340
2366
|
collIsEmpty(cellListeners[mutator]) &&
|
|
2341
2367
|
collIsEmpty(rowListeners[mutator]) &&
|
|
2342
2368
|
collIsEmpty(tableListeners[mutator]) &&
|
|
2343
2369
|
collIsEmpty(tablesListeners[mutator]);
|
|
2344
|
-
if (!
|
|
2370
|
+
if (!emptyIdAndHasListeners || !emptyOtherListeners) {
|
|
2345
2371
|
const changes = mutator
|
|
2346
2372
|
? [
|
|
2347
2373
|
mapClone(changedTableIds),
|
|
@@ -2359,12 +2385,17 @@ const createStore = () => {
|
|
|
2359
2385
|
changedCellIds,
|
|
2360
2386
|
changedCells,
|
|
2361
2387
|
];
|
|
2362
|
-
if (!
|
|
2363
|
-
|
|
2388
|
+
if (!emptyIdAndHasListeners) {
|
|
2389
|
+
callIdsAndHasListenersIfChanged(
|
|
2390
|
+
changes[0],
|
|
2391
|
+
tableIdsListeners[mutator],
|
|
2392
|
+
hasTableListeners[mutator],
|
|
2393
|
+
);
|
|
2364
2394
|
collForEach(changes[1], (changedIds, tableId) =>
|
|
2365
|
-
|
|
2366
|
-
tableCellIdsListeners[mutator],
|
|
2395
|
+
callIdsAndHasListenersIfChanged(
|
|
2367
2396
|
changedIds,
|
|
2397
|
+
tableCellIdsListeners[mutator],
|
|
2398
|
+
hasTableCellListeners[mutator],
|
|
2368
2399
|
[tableId],
|
|
2369
2400
|
),
|
|
2370
2401
|
);
|
|
@@ -2380,9 +2411,12 @@ const createStore = () => {
|
|
|
2380
2411
|
const calledSortableTableIds = setNew();
|
|
2381
2412
|
collForEach(changes[3], (changedIds, tableId) => {
|
|
2382
2413
|
if (
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2414
|
+
callIdsAndHasListenersIfChanged(
|
|
2415
|
+
changedIds,
|
|
2416
|
+
rowIdsListeners[mutator],
|
|
2417
|
+
hasRowListeners[mutator],
|
|
2418
|
+
[tableId],
|
|
2419
|
+
) &&
|
|
2386
2420
|
!emptySortedRowIdListeners
|
|
2387
2421
|
) {
|
|
2388
2422
|
callListeners(sortedRowIdsListeners[mutator], [tableId, null]);
|
|
@@ -2411,10 +2445,12 @@ const createStore = () => {
|
|
|
2411
2445
|
}
|
|
2412
2446
|
collForEach(changes[4], (rowCellIds, tableId) =>
|
|
2413
2447
|
collForEach(rowCellIds, (changedIds, rowId) =>
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2448
|
+
callIdsAndHasListenersIfChanged(
|
|
2449
|
+
changedIds,
|
|
2450
|
+
cellIdsListeners[mutator],
|
|
2451
|
+
hasCellListeners[mutator],
|
|
2452
|
+
[tableId, rowId],
|
|
2453
|
+
),
|
|
2418
2454
|
),
|
|
2419
2455
|
);
|
|
2420
2456
|
}
|
|
@@ -2454,17 +2490,27 @@ const createStore = () => {
|
|
|
2454
2490
|
}
|
|
2455
2491
|
}
|
|
2456
2492
|
};
|
|
2457
|
-
const
|
|
2458
|
-
const
|
|
2493
|
+
const callValuesListenersForChanges = (mutator) => {
|
|
2494
|
+
const hasValuesNow = hasValues();
|
|
2495
|
+
if (hasValuesNow != hadValues) {
|
|
2496
|
+
callListeners(hasValuesListeners[mutator], void 0, hasValuesNow);
|
|
2497
|
+
}
|
|
2498
|
+
const emptyIdAndHasListeners =
|
|
2499
|
+
collIsEmpty(valueIdsListeners[mutator]) &&
|
|
2500
|
+
collIsEmpty(hasValueListeners[mutator]);
|
|
2459
2501
|
const emptyOtherListeners =
|
|
2460
2502
|
collIsEmpty(valueListeners[mutator]) &&
|
|
2461
2503
|
collIsEmpty(valuesListeners[mutator]);
|
|
2462
|
-
if (!
|
|
2504
|
+
if (!emptyIdAndHasListeners || !emptyOtherListeners) {
|
|
2463
2505
|
const changes = mutator
|
|
2464
2506
|
? [mapClone(changedValueIds), mapClone(changedValues)]
|
|
2465
2507
|
: [changedValueIds, changedValues];
|
|
2466
|
-
if (!
|
|
2467
|
-
|
|
2508
|
+
if (!emptyIdAndHasListeners) {
|
|
2509
|
+
callIdsAndHasListenersIfChanged(
|
|
2510
|
+
changes[0],
|
|
2511
|
+
valueIdsListeners[mutator],
|
|
2512
|
+
hasValueListeners[mutator],
|
|
2513
|
+
);
|
|
2468
2514
|
}
|
|
2469
2515
|
if (!emptyOtherListeners) {
|
|
2470
2516
|
let valuesChanged;
|
|
@@ -2837,7 +2883,7 @@ const createStore = () => {
|
|
|
2837
2883
|
}
|
|
2838
2884
|
callInvalidValueListeners(1);
|
|
2839
2885
|
if (valuesTouched) {
|
|
2840
|
-
|
|
2886
|
+
callValuesListenersForChanges(1);
|
|
2841
2887
|
}
|
|
2842
2888
|
if (doRollback?.(getTransactionChanges, getTransactionLog)) {
|
|
2843
2889
|
collForEach(changedCells, (table, tableId) =>
|
|
@@ -2865,7 +2911,7 @@ const createStore = () => {
|
|
|
2865
2911
|
}
|
|
2866
2912
|
callInvalidValueListeners(0);
|
|
2867
2913
|
if (valuesTouched) {
|
|
2868
|
-
|
|
2914
|
+
callValuesListenersForChanges(0);
|
|
2869
2915
|
}
|
|
2870
2916
|
callListeners(
|
|
2871
2917
|
finishTransactionListeners[1],
|
|
@@ -2875,6 +2921,8 @@ const createStore = () => {
|
|
|
2875
2921
|
);
|
|
2876
2922
|
transactions = 0;
|
|
2877
2923
|
cellsTouched = valuesTouched = false;
|
|
2924
|
+
hadTables = hasTables();
|
|
2925
|
+
hadValues = hasValues();
|
|
2878
2926
|
arrayForEach(
|
|
2879
2927
|
[
|
|
2880
2928
|
changedTableIds,
|
|
@@ -2971,19 +3019,26 @@ const createStore = () => {
|
|
|
2971
3019
|
return store;
|
|
2972
3020
|
};
|
|
2973
3021
|
const getListenerStats = () => ({
|
|
3022
|
+
hasTables: pairCollSize2(hasTablesListeners),
|
|
2974
3023
|
tables: pairCollSize2(tablesListeners),
|
|
2975
3024
|
tableIds: pairCollSize2(tableIdsListeners),
|
|
2976
|
-
|
|
3025
|
+
hasTable: pairCollSize2(hasTableListeners),
|
|
2977
3026
|
table: pairCollSize2(tableListeners),
|
|
3027
|
+
tableCellIds: pairCollSize2(tableCellIdsListeners),
|
|
3028
|
+
hasTableCell: pairCollSize2(hasTableCellListeners, collSize3),
|
|
2978
3029
|
rowCount: pairCollSize2(rowCountListeners),
|
|
2979
3030
|
rowIds: pairCollSize2(rowIdsListeners),
|
|
2980
3031
|
sortedRowIds: pairCollSize2(sortedRowIdsListeners),
|
|
3032
|
+
hasRow: pairCollSize2(hasRowListeners, collSize3),
|
|
2981
3033
|
row: pairCollSize2(rowListeners, collSize3),
|
|
2982
3034
|
cellIds: pairCollSize2(cellIdsListeners, collSize3),
|
|
3035
|
+
hasCell: pairCollSize2(hasCellListeners, collSize4),
|
|
2983
3036
|
cell: pairCollSize2(cellListeners, collSize4),
|
|
2984
3037
|
invalidCell: pairCollSize2(invalidCellListeners, collSize4),
|
|
3038
|
+
hasValues: pairCollSize2(hasValuesListeners),
|
|
2985
3039
|
values: pairCollSize2(valuesListeners),
|
|
2986
3040
|
valueIds: pairCollSize2(valueIdsListeners),
|
|
3041
|
+
hasValue: pairCollSize2(hasValueListeners),
|
|
2987
3042
|
value: pairCollSize2(valueListeners),
|
|
2988
3043
|
invalidValue: pairCollSize2(invalidValueListeners),
|
|
2989
3044
|
transaction:
|
|
@@ -3068,14 +3123,39 @@ const createStore = () => {
|
|
|
3068
3123
|
};
|
|
3069
3124
|
objMap(
|
|
3070
3125
|
{
|
|
3126
|
+
[HAS + TABLES]: [0, hasTablesListeners, [], () => [hasTables()]],
|
|
3071
3127
|
[TABLES]: [0, tablesListeners],
|
|
3072
3128
|
[TABLE_IDS]: [0, tableIdsListeners],
|
|
3129
|
+
[HAS + TABLE]: [
|
|
3130
|
+
1,
|
|
3131
|
+
hasTableListeners,
|
|
3132
|
+
[getTableIds],
|
|
3133
|
+
(ids) => [hasTable(...ids)],
|
|
3134
|
+
],
|
|
3073
3135
|
[TABLE]: [1, tableListeners, [getTableIds]],
|
|
3074
3136
|
[TABLE + CELL_IDS]: [1, tableCellIdsListeners, [getTableIds]],
|
|
3137
|
+
[HAS + TABLE + CELL]: [
|
|
3138
|
+
2,
|
|
3139
|
+
hasTableCellListeners,
|
|
3140
|
+
[getTableIds, getTableCellIds],
|
|
3141
|
+
(ids) => [hasTableCell(...ids)],
|
|
3142
|
+
],
|
|
3075
3143
|
[ROW_COUNT]: [1, rowCountListeners, [getTableIds]],
|
|
3076
3144
|
[ROW_IDS]: [1, rowIdsListeners, [getTableIds]],
|
|
3145
|
+
[HAS + ROW]: [
|
|
3146
|
+
2,
|
|
3147
|
+
hasRowListeners,
|
|
3148
|
+
[getTableIds, getRowIds],
|
|
3149
|
+
(ids) => [hasRow(...ids)],
|
|
3150
|
+
],
|
|
3077
3151
|
[ROW]: [2, rowListeners, [getTableIds, getRowIds]],
|
|
3078
3152
|
[CELL_IDS]: [2, cellIdsListeners, [getTableIds, getRowIds]],
|
|
3153
|
+
[HAS + CELL]: [
|
|
3154
|
+
3,
|
|
3155
|
+
hasCellListeners,
|
|
3156
|
+
[getTableIds, getRowIds, getCellIds],
|
|
3157
|
+
(ids) => [hasCell(...ids)],
|
|
3158
|
+
],
|
|
3079
3159
|
[CELL]: [
|
|
3080
3160
|
3,
|
|
3081
3161
|
cellListeners,
|
|
@@ -3083,8 +3163,15 @@ const createStore = () => {
|
|
|
3083
3163
|
(ids) => pairNew(getCell(...ids)),
|
|
3084
3164
|
],
|
|
3085
3165
|
InvalidCell: [3, invalidCellListeners],
|
|
3166
|
+
[HAS + VALUES]: [0, hasValuesListeners, [], () => [hasValues()]],
|
|
3086
3167
|
[VALUES]: [0, valuesListeners],
|
|
3087
3168
|
[VALUE_IDS]: [0, valueIdsListeners],
|
|
3169
|
+
[HAS + VALUE]: [
|
|
3170
|
+
1,
|
|
3171
|
+
hasValueListeners,
|
|
3172
|
+
[getValueIds],
|
|
3173
|
+
(ids) => [hasValue(...ids)],
|
|
3174
|
+
],
|
|
3088
3175
|
[VALUE]: [
|
|
3089
3176
|
1,
|
|
3090
3177
|
valueListeners,
|
package/lib/es6/store.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=e=>typeof e,l="",t=e(l),n=e(!0),s=e(0),a=e(e),r="type",o="default",u="Ids",i="Table",d=i+"s",c=i+u,h="Row",v=h+"Count",g=h+u,f="Cell",T=f+u,V="Value",b=V+"s",C=V+u,S=e=>l+e,w=isFinite,I=e=>null==e,m=(e,l,t)=>I(e)?null==t?void 0:t():l(e),y=e=>e==t||e==n,R=l=>e(l)==a,p=(e,l,t)=>e.slice(l,t),J=e=>e.length,L=(e,l)=>e.forEach(l),E=(e,l)=>e.map(l),F=(e,...l)=>e.push(...l),O=Object,z=e=>O.getPrototypeOf(e),P=O.keys,k=O.isFrozen,A=O.freeze,M=e=>!I(e)&&m(z(e),(e=>e==O.prototype||I(z(e))),(()=>!0)),N=(e,l)=>!I(((e,l)=>m(e,(e=>e[l])))(e,l)),j=(e,l)=>(delete e[l],e),x=(e,l)=>E(O.entries(e),(([e,t])=>l(t,e))),D=e=>M(e)&&0==(e=>J(P(e)))(e),W=e=>{var l;return null!=(l=null==e?void 0:e.size)?l:0},$=(e,l)=>{var t;return null!=(t=null==e?void 0:e.has(l))&&t},q=e=>I(e)||0==W(e),B=e=>e.clear(),G=(e,l)=>null==e?void 0:e.forEach(l),H=(e,l)=>null==e?void 0:e.delete(l),K=e=>new Map(e),Q=e=>{var l;return[...null!=(l=null==e?void 0:e.keys())?l:[]]},U=(e,l)=>null==e?void 0:e.get(l),X=(e,l)=>G(e,((e,t)=>l(t,e))),Y=(e,l,t)=>I(t)?(H(e,l),e):null==e?void 0:e.set(l,t),Z=(e,l,t)=>($(e,l)||Y(e,l,t()),U(e,l)),_=(e,l,t,n=Y)=>(x(l,((l,n)=>t(e,n,l))),X(e,(t=>N(l,t)?0:n(e,t))),e),ee=(e,l,t)=>{const n={};return G(e,((e,s)=>{const a=l?l(e,s):e;!(null==t?void 0:t(a,e))&&(n[s]=a)})),n},le=(e,l,t)=>ee(e,(e=>ee(e,l,t)),D),te=(e,l,t)=>ee(e,(e=>le(e,l,t)),D),ne=(e,l)=>{const t=K();return G(e,((e,n)=>{var s;return t.set(n,null!=(s=null==l?void 0:l(e))?s:e)})),t},se=e=>ne(e,ne),ae=e=>ne(e,se),re=(e,l,t,n,s=0)=>m((t?Z:U)(e,l[s],s>J(l)-2?t:K),(a=>{if(s>J(l)-2)return(null==n?void 0:n(a))&&Y(e,l[s]),a;const r=re(a,l,t,n,s+1);return q(a)&&Y(e,l[s]),r})),oe=e=>new Set(Array.isArray(e)||I(e)?e:[e]),ue=(e,l)=>null==e?void 0:e.add(l),ie=/^\d+$/,de=()=>{const e=[];let t=0;return[n=>{var s;return null!=(s=n?e.shift():null)?s:l+t++},l=>{ie.test(l)&&J(e)<1e3&&F(e,l)}]},ce=e=>[e,e],he=()=>[K(),K()],ve=e=>[...e],ge=([e,l])=>e===l,fe=l=>{const t=e(l);return y(t)||t==s&&w(l)?t:void 0},Te=(e,l,t,n,s)=>I(s)?e.delCell(l,t,n,!0):e.setCell(l,t,n,s),Ve=(e,l,t)=>I(t)?e.delValue(l):e.setValue(l,t),be=e=>JSON.stringify(e,((e,l)=>l instanceof Map?O.fromEntries([...l]):l)),Ce=JSON.parse,Se=(e,l,t)=>I(e)||!M(e)||D(e)||k(e)?(null==t||t(),!1):(x(e,((t,n)=>{l(t,n)||j(e,n)})),!D(e)),we=(e,l,t)=>Y(e,l,U(e,l)==-t?void 0:t),Ie=()=>{let e,t,n=!1,a=!1,u=0;const w=K(),O=K(),z=K(),P=K(),k=K(),M=K(),ie=K(),me=K(),ye=K(),Re=K(),pe=K(),Je=K(),Le=K(),Ee=K(),Fe=oe(),Oe=K(),ze=K(),Pe=K(),ke=K(),Ae=he(),Me=he(),Ne=he(),je=he(),xe=he(),De=he(),We=he(),$e=he(),qe=he(),Be=he(),Ge=he(),He=he(),Ke=he(),Qe=he(),Ue=he(),Xe=K(),Ye=he(),[Ze,_e,el,ll]=(e=>{let t;const[n,s]=de(),a=K();return[(e,s,r,o=[],u=(()=>[]))=>{null!=t||(t=ft);const i=n(1);return Y(a,i,[e,s,r,o,u]),ue(re(s,null!=r?r:[l],oe),i),i},(e,n,...s)=>L(((e,t=[l])=>{const n=[],s=(e,l)=>l==J(t)?F(n,e):null===t[l]?G(e,(e=>s(e,l+1))):L([t[l],null],(t=>s(U(e,t),l+1)));return s(e,0),n})(e,n),(e=>G(e,(e=>U(a,e)[0](t,...null!=n?n:[],...s))))),e=>m(U(a,e),(([,t,n])=>(re(t,null!=n?n:[l],void 0,(l=>(H(l,e),q(l)?1:0))),Y(a,e),s(e),n))),e=>m(U(a,e),(([e,,l=[],n,s])=>{const a=(...r)=>{var o,u;const i=J(r);i==J(l)?e(t,...r,...s(r)):I(l[i])?L(null!=(u=null==(o=n[i])?void 0:o.call(n,...r))?u:[],(e=>a(...r,e))):a(...r,l[i])};a()}))]})(),tl=e=>{if(!Se(e,((e,l)=>[r,o].includes(l))))return!1;const l=e[r];return!(!y(l)&&l!=s||(fe(e[o])!=l&&j(e,o),0))},nl=(l,t)=>(!e||$(pe,t)||Pl(t))&&Se(l,((e,l)=>sl(t,l,e)),(()=>Pl(t))),sl=(e,l,t,n)=>Se(n?t:ul(t,e,l),((n,s)=>m(al(e,l,s,n),(e=>(t[s]=e,!0)),(()=>!1))),(()=>Pl(e,l))),al=(l,t,n,s)=>e?m(U(U(pe,l),n),(e=>fe(s)!=e[r]?Pl(l,t,n,s,e[o]):s),(()=>Pl(l,t,n,s))):I(fe(s))?Pl(l,t,n,s):s,rl=(e,l)=>Se(l?e:il(e),((l,t)=>m(ol(t,l),(l=>(e[t]=l,!0)),(()=>!1))),(()=>kl())),ol=(e,l)=>t?m(U(Le,e),(t=>fe(l)!=t[r]?kl(e,l,t[o]):l),(()=>kl(e,l))):I(fe(l))?kl(e,l):l,ul=(e,l,t)=>(m(U(Je,l),(([n,s])=>{G(n,((l,t)=>{N(e,t)||(e[t]=l)})),G(s,(n=>{N(e,n)||Pl(l,t,n)}))})),e),il=e=>(t&&(G(Ee,((l,t)=>{N(e,t)||(e[t]=l)})),G(Fe,(l=>{N(e,l)||kl(l)}))),e),dl=e=>_(pe,e,((e,l,t)=>{const n=K(),s=oe();_(Z(pe,l,K),t,((e,l,t)=>{Y(e,l,t),m(t[o],(e=>Y(n,l,e)),(()=>ue(s,l)))})),Y(Je,l,[n,s])}),((e,l)=>{Y(pe,l),Y(Je,l)})),cl=e=>_(Le,e,((e,l,t)=>{Y(Le,l,t),m(t[o],(e=>Y(Ee,l,e)),(()=>ue(Fe,l)))}),((e,l)=>{Y(Le,l),Y(Ee,l),H(Fe,l)})),hl=e=>D(e)?rt():lt(e),vl=e=>_(Pe,e,((e,l,t)=>gl(l,t)),((e,l)=>ml(l))),gl=(e,l)=>_(Z(Pe,e,(()=>(Jl(e,1),Y(Oe,e,de()),Y(ze,e,K()),K()))),l,((l,t,n)=>fl(e,l,t,n)),((l,t)=>yl(e,l,t))),fl=(e,l,t,n,s)=>_(Z(l,t,(()=>(Ll(e,t,1),K()))),n,((l,n,s)=>Tl(e,t,l,n,s)),((n,a)=>Rl(e,l,t,n,a,s))),Tl=(e,l,t,n,s)=>{$(t,n)||El(e,l,n,1);const a=U(t,n);s!==a&&(Fl(e,l,n,a,s),Y(t,n,s))},Vl=(e,l,t,n,s)=>m(U(l,t),(l=>Tl(e,t,l,n,s)),(()=>fl(e,l,t,ul({[n]:s},e,t)))),bl=e=>D(e)?it():tt(e),Cl=e=>_(ke,e,((e,l,t)=>Sl(l,t)),((e,l)=>pl(l))),Sl=(e,l)=>{$(ke,e)||Ol(e,1);const t=U(ke,e);l!==t&&(zl(e,t,l),Y(ke,e,l))},wl=(e,l)=>{const[t]=U(Oe,e),n=t(l);return $(U(Pe,e),n)?wl(e,l):n},Il=e=>{var l;return null!=(l=U(Pe,e))?l:gl(e,{})},ml=e=>gl(e,{}),yl=(e,l,t)=>{const[,n]=U(Oe,e);n(t),fl(e,l,t,{},!0)},Rl=(e,l,t,n,s,a)=>{var r;const o=U(null==(r=U(Je,e))?void 0:r[0],s);if(!I(o)&&!a)return Tl(e,t,n,s,o);const u=l=>{Fl(e,t,l,U(n,l)),El(e,t,l,-1),Y(n,l)};I(o)?u(s):X(n,u),q(n)&&(Ll(e,t,-1),q(Y(l,t))&&(Jl(e,-1),Y(Pe,e),Y(Oe,e),Y(ze,e)))},pl=e=>{const l=U(Ee,e);if(!I(l))return Sl(e,l);zl(e,U(ke,e)),Ol(e,-1),Y(ke,e)},Jl=(e,l)=>we(w,e,l),Ll=(e,l,t)=>we(Z(P,e,K),l,t)&&Y(z,e,Z(z,e,(()=>0))+t),El=(e,l,t,n)=>{var s;const a=U(ze,e),r=null!=(s=U(a,t))?s:0;(0==r&&1==n||1==r&&-1==n)&&we(Z(O,e,K),t,n),Y(a,t,r!=-n?r+n:null),we(Z(Z(k,e,K),l,K),t,n)},Fl=(e,l,t,n,s)=>Z(Z(Z(M,e,K),l,K),t,(()=>[n,0]))[1]=s,Ol=(e,l)=>we(ie,e,l),zl=(e,l,t)=>Z(me,e,(()=>[l,0]))[1]=t,Pl=(e,l,t,n,s)=>(F(Z(Z(Z(ye,e,K),l,K),t,(()=>[])),n),s),kl=(e,l,t)=>(F(Z(Re,e,(()=>[])),l),t),Al=(e,l,t)=>m(U(U(U(M,e),l),t),(([e,l])=>[!0,e,l]),(()=>[!1,...ce(Yl(e,l,t))])),Ml=e=>m(U(me,e),(([e,l])=>[!0,e,l]),(()=>[!1,...ce(et(e))])),Nl=e=>q(ye)||q(Ge[e])?0:G(e?ae(ye):ye,((l,t)=>G(l,((l,n)=>G(l,((l,s)=>_e(Ge[e],[t,n,s],l))))))),jl=e=>q(Re)||q(He[e])?0:G(e?ne(Re):Re,((l,t)=>_e(He[e],[t],l))),xl=(e,l,t)=>{if(!q(l))return _e(e,t,(()=>ee(l))),1},Dl=e=>{const l=q(We[e]),t=q(qe[e])&&q(je[e])&&q(xe[e])&&q(De[e])&&l&&q(Me[e]),n=q(Be[e])&&q($e[e])&&q(Ne[e])&&q(Ae[e]);if(!t||!n){const s=e?[ne(w),se(O),ne(z),se(P),ae(k),ae(M)]:[w,O,z,P,k,M];if(!t){xl(Me[e],s[0]),G(s[1],((l,t)=>xl(je[e],l,[t]))),G(s[2],((l,t)=>{0!=l&&_e(xe[e],[t],Kl(t))}));const t=oe();G(s[3],((n,s)=>{xl(De[e],n,[s])&&!l&&(_e(We[e],[s,null]),ue(t,s))})),l||G(s[5],((l,n)=>{if(!$(t,n)){const t=oe();G(l,(e=>G(e,(([l,n],s)=>n!==l?ue(t,s):H(e,s))))),G(t,(l=>_e(We[e],[n,l])))}})),G(s[4],((l,t)=>G(l,((l,n)=>xl(qe[e],l,[t,n])))))}if(!n){let l;G(s[5],((t,n)=>{let s;G(t,((t,a)=>{let r;G(t,(([t,o],u)=>{o!==t&&(_e(Be[e],[n,a,u],o,t,Al),l=s=r=1)})),r&&_e($e[e],[n,a],Al)})),s&&_e(Ne[e],[n],Al)})),l&&_e(Ae[e],void 0,Al)}}},Wl=e=>{const l=q(Qe[e]),t=q(Ue[e])&&q(Ke[e]);if(!l||!t){const n=e?[ne(ie),ne(me)]:[ie,me];if(l||xl(Qe[e],n[0]),!t){let l;G(n[1],(([t,n],s)=>{n!==t&&(_e(Ue[e],[s],n,t,Ml),l=1)})),l&&_e(Ke[e],void 0,Ml)}}},$l=(e,...l)=>(ht((()=>e(...E(l,S)))),ft),ql=()=>[ee(M,((e,l)=>-1===U(w,l)?null:ee(e,((e,t)=>-1===U(U(P,l),t)?null:ee(e,(([,e])=>null!=e?e:null),((e,l)=>ge(l)))),D)),D),ee(me,(([,e])=>null!=e?e:null),((e,l)=>ge(l)))],Bl=()=>({cellsTouched:n,valuesTouched:a,changedCells:te(M,ve,ge),invalidCells:te(ye),changedValues:ee(me,ve,ge),invalidValues:ee(Re),changedTableIds:ee(w),changedRowIds:le(P),changedCellIds:te(k),changedValueIds:ee(ie)}),Gl=()=>te(Pe),Hl=()=>Q(Pe),Kl=e=>W(U(Pe,S(e))),Ql=e=>Q(U(Pe,S(e))),Ul=(e,l,t,n=0,s)=>{return E(p((r=U(Pe,S(e)),o=(e,t)=>[I(l)?t:U(e,S(l)),t],a=([e],[l])=>{return((null!=(n=e)?n:0)<(null!=(s=l)?s:0)?-1:1)*(t?-1:1);var n,s},E([...null!=(u=null==r?void 0:r.entries())?u:[]],(([e,l])=>o(l,e))).sort(a)),n,I(s)?s:n+s),(([,e])=>e));var a,r,o,u},Xl=(e,l)=>Q(U(U(Pe,S(e)),S(l))),Yl=(e,l,t)=>U(U(U(Pe,S(e)),S(l)),S(t)),Zl=()=>ee(ke),_l=()=>Q(ke),et=e=>U(ke,S(e)),lt=e=>$l((()=>(e=>Se(e,nl,Pl))(e)?vl(e):0)),tt=e=>$l((()=>rl(e)?Cl(e):0)),nt=e=>{try{hl(Ce(e))}catch(e){}return ft},st=l=>$l((()=>{if((e=Se(l,(e=>Se(e,tl))))&&(dl(l),!q(Pe))){const e=Gl();rt(),lt(e)}})),at=e=>$l((()=>{if(t=(e=>Se(e,tl))(e)){const l=Zl();ct(),it(),t=!0,cl(e),tt(l)}})),rt=()=>$l((()=>vl({}))),ot=e=>$l((e=>$(Pe,e)?ml(e):0),e),ut=(e,l)=>$l(((e,l)=>m(U(Pe,e),(t=>$(t,l)?yl(e,t,l):0))),e,l),it=()=>$l((()=>Cl({}))),dt=()=>$l((()=>{dl({}),e=!1})),ct=()=>$l((()=>{cl({}),t=!1})),ht=(e,l)=>{if(-1!=u){vt();const t=e();return gt(l),t}},vt=()=>(-1!=u&&u++,1==u&&_e(Xe,void 0,ql,Bl),ft),gt=e=>(u>0&&(u--,0==u&&(n=!q(M),a=!q(me),u=1,Nl(1),n&&Dl(1),jl(1),a&&Wl(1),(null==e?void 0:e(ql,Bl))&&(G(M,((e,l)=>G(e,((e,t)=>G(e,(([e],n)=>Te(ft,l,t,n,e))))))),G(me,(([e],l)=>Ve(ft,l,e))),n=a=!1),_e(Ye[0],void 0,ql,Bl),u=-1,Nl(0),n&&Dl(0),jl(0),a&&Wl(0),_e(Ye[1],void 0,ql,Bl),u=0,n=a=!1,L([w,O,z,P,k,M,ye,ie,me,Re],B))),ft),ft={getContent:()=>[Gl(),Zl()],getTables:Gl,getTableIds:Hl,getTable:e=>le(U(Pe,S(e))),getTableCellIds:e=>Q(U(ze,S(e))),getRowCount:Kl,getRowIds:Ql,getSortedRowIds:Ul,getRow:(e,l)=>ee(U(U(Pe,S(e)),S(l))),getCellIds:Xl,getCell:Yl,getValues:Zl,getValueIds:_l,getValue:et,hasTables:()=>!q(Pe),hasTable:e=>$(Pe,S(e)),hasTableCell:(e,l)=>$(U(ze,S(e)),S(l)),hasRow:(e,l)=>$(U(Pe,S(e)),S(l)),hasCell:(e,l,t)=>$(U(U(Pe,S(e)),S(l)),S(t)),hasValues:()=>!q(ke),hasValue:e=>$(ke,S(e)),getTablesJson:()=>be(Pe),getValuesJson:()=>be(ke),getJson:()=>be([Pe,ke]),getTablesSchemaJson:()=>be(pe),getValuesSchemaJson:()=>be(Le),getSchemaJson:()=>be([pe,Le]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,l])=>$l((()=>{(D(e)?rt:lt)(e),(D(l)?it:tt)(l)})),setTables:lt,setTable:(e,l)=>$l((e=>nl(l,e)?gl(e,l):0),e),setRow:(e,l,t)=>$l(((e,l)=>sl(e,l,t)?fl(e,Il(e),l,t):0),e,l),addRow:(e,l,t=!0)=>ht((()=>{let n;return sl(e,n,l)&&(e=S(e),fl(e,Il(e),n=wl(e,t?1:0),l)),n})),setPartialRow:(e,l,t)=>$l(((e,l)=>{if(sl(e,l,t,1)){const n=Il(e);x(t,((t,s)=>Vl(e,n,l,s,t)))}}),e,l),setCell:(e,l,t,n)=>$l(((e,l,t)=>m(al(e,l,t,R(n)?n(Yl(e,l,t)):n),(n=>Vl(e,Il(e),l,t,n)))),e,l,t),setValues:tt,setPartialValues:e=>$l((()=>rl(e,1)?x(e,((e,l)=>Sl(l,e))):0)),setValue:(e,l)=>$l((e=>m(ol(e,R(l)?l(et(e)):l),(l=>Sl(e,l)))),e),setTransactionChanges:e=>$l((()=>{x(e[0],((e,l)=>I(e)?ot(l):x(e,((e,t)=>I(e)?ut(l,t):x(e,((e,n)=>Te(ft,l,t,n,e))))))),x(e[1],((e,l)=>Ve(ft,l,e)))})),setTablesJson:nt,setValuesJson:e=>{try{bl(Ce(e))}catch(e){}return ft},setJson:e=>$l((()=>{try{const[l,t]=Ce(e);hl(l),bl(t)}catch(l){nt(e)}})),setTablesSchema:st,setValuesSchema:at,setSchema:(e,l)=>$l((()=>{st(e),at(l)})),delTables:rt,delTable:ot,delRow:ut,delCell:(e,l,t,n)=>$l(((e,l,t)=>m(U(Pe,e),(s=>m(U(s,l),(a=>$(a,t)?Rl(e,s,l,a,t,n):0))))),e,l,t),delValues:it,delValue:e=>$l((e=>$(ke,e)?pl(e):0),e),delTablesSchema:dt,delValuesSchema:ct,delSchema:()=>$l((()=>{dt(),ct()})),transaction:ht,startTransaction:vt,finishTransaction:gt,forEachTable:e=>G(Pe,((l,t)=>e(t,(e=>G(l,((l,t)=>e(t,(e=>X(l,e))))))))),forEachTableCell:(e,l)=>X(U(ze,S(e)),l),forEachRow:(e,l)=>G(U(Pe,S(e)),((e,t)=>l(t,(l=>X(e,l))))),forEachCell:(e,l,t)=>X(U(U(Pe,S(e)),S(l)),t),forEachValue:e=>X(ke,e),addSortedRowIdsListener:(e,l,t,n,s,a,r)=>{let o=Ul(e,l,t,n,s);return Ze((()=>{const r=Ul(e,l,t,n,s);var u,i,d;i=o,J(u=r)===J(i)&&(d=(e,l)=>i[l]===e,u.every(d))||(o=r,a(ft,e,l,t,n,s,o))}),We[r?1:0],[e,l],[Hl])},addStartTransactionListener:e=>Ze(e,Xe),addWillFinishTransactionListener:e=>Ze(e,Ye[0]),addDidFinishTransactionListener:e=>Ze(e,Ye[1]),callListener:e=>(ll(e),ft),delListener:e=>(el(e),ft),getListenerStats:()=>({}),createStore:Ie,addListener:Ze,callListeners:_e};return x({[d]:[0,Ae],[c]:[0,Me],[i]:[1,Ne,[Hl]],[i+T]:[1,je,[Hl]],[v]:[1,xe,[Hl]],[g]:[1,De,[Hl]],[h]:[2,$e,[Hl,Ql]],[T]:[2,qe,[Hl,Ql]],[f]:[3,Be,[Hl,Ql,Xl],e=>ce(Yl(...e))],InvalidCell:[3,Ge],[b]:[0,Ke],[C]:[0,Qe],[V]:[1,Ue,[_l],e=>ce(et(e[0]))],InvalidValue:[1,He]},(([e,l,t,n],s)=>{ft["add"+s+"Listener"]=(...s)=>Ze(s[e],l[s[e+1]?1:0],e>0?p(s,0,e):void 0,t,n)})),A(ft)};export{Ie as createStore};
|
|
1
|
+
const e=e=>typeof e,l="",t=e(l),n=e(!0),s=e(0),a=e(e),r="type",o="default",u="Ids",i="Table",d=i+"s",c=i+u,h="Row",v=h+"Count",g=h+u,f="Cell",T=f+u,V="Value",b=V+"s",C=V+u,S="Has",w=e=>l+e,I=isFinite,m=e=>null==e,y=(e,l,t)=>m(e)?null==t?void 0:t():l(e),R=e=>e==t||e==n,p=l=>e(l)==a,J=(e,l,t)=>e.slice(l,t),L=e=>e.length,E=(e,l)=>e.forEach(l),F=(e,l)=>e.map(l),O=(e,...l)=>e.push(...l),z=Object,P=e=>z.getPrototypeOf(e),k=z.keys,A=z.isFrozen,M=z.freeze,N=e=>!m(e)&&y(P(e),(e=>e==z.prototype||m(P(e))),(()=>!0)),j=(e,l)=>!m(((e,l)=>y(e,(e=>e[l])))(e,l)),x=(e,l)=>(delete e[l],e),D=(e,l)=>F(z.entries(e),(([e,t])=>l(t,e))),H=e=>N(e)&&0==(e=>L(k(e)))(e),W=e=>{var l;return null!=(l=null==e?void 0:e.size)?l:0},$=(e,l)=>{var t;return null!=(t=null==e?void 0:e.has(l))&&t},q=e=>m(e)||0==W(e),B=e=>e.clear(),G=(e,l)=>null==e?void 0:e.forEach(l),K=(e,l)=>null==e?void 0:e.delete(l),Q=e=>new Map(e),U=e=>{var l;return[...null!=(l=null==e?void 0:e.keys())?l:[]]},X=(e,l)=>null==e?void 0:e.get(l),Y=(e,l)=>G(e,((e,t)=>l(t,e))),Z=(e,l,t)=>m(t)?(K(e,l),e):null==e?void 0:e.set(l,t),_=(e,l,t)=>($(e,l)||Z(e,l,t()),X(e,l)),ee=(e,l,t,n=Z)=>(D(l,((l,n)=>t(e,n,l))),Y(e,(t=>j(l,t)?0:n(e,t))),e),le=(e,l,t)=>{const n={};return G(e,((e,s)=>{const a=l?l(e,s):e;!(null==t?void 0:t(a,e))&&(n[s]=a)})),n},te=(e,l,t)=>le(e,(e=>le(e,l,t)),H),ne=(e,l,t)=>le(e,(e=>te(e,l,t)),H),se=(e,l)=>{const t=Q();return G(e,((e,n)=>{var s;return t.set(n,null!=(s=null==l?void 0:l(e))?s:e)})),t},ae=e=>se(e,se),re=e=>se(e,ae),oe=(e,l,t,n,s=0)=>y((t?_:X)(e,l[s],s>L(l)-2?t:Q),(a=>{if(s>L(l)-2)return(null==n?void 0:n(a))&&Z(e,l[s]),a;const r=oe(a,l,t,n,s+1);return q(a)&&Z(e,l[s]),r})),ue=e=>new Set(Array.isArray(e)||m(e)?e:[e]),ie=(e,l)=>null==e?void 0:e.add(l),de=/^\d+$/,ce=()=>{const e=[];let t=0;return[n=>{var s;return null!=(s=n?e.shift():null)?s:l+t++},l=>{de.test(l)&&L(e)<1e3&&O(e,l)}]},he=e=>[e,e],ve=()=>[Q(),Q()],ge=e=>[...e],fe=([e,l])=>e===l,Te=l=>{const t=e(l);return R(t)||t==s&&I(l)?t:void 0},Ve=(e,l,t,n,s)=>m(s)?e.delCell(l,t,n,!0):e.setCell(l,t,n,s),be=(e,l,t)=>m(t)?e.delValue(l):e.setValue(l,t),Ce=e=>JSON.stringify(e,((e,l)=>l instanceof Map?z.fromEntries([...l]):l)),Se=JSON.parse,we=(e,l,t)=>m(e)||!N(e)||H(e)||A(e)?(null==t||t(),!1):(D(e,((t,n)=>{l(t,n)||x(e,n)})),!H(e)),Ie=(e,l,t)=>Z(e,l,X(e,l)==-t?void 0:t),me=()=>{let e,t,n=!1,a=!1,u=!1,I=!1,z=0;const P=Q(),k=Q(),A=Q(),N=Q(),de=Q(),ye=Q(),Re=Q(),pe=Q(),Je=Q(),Le=Q(),Ee=Q(),Fe=Q(),Oe=Q(),ze=Q(),Pe=ue(),ke=Q(),Ae=Q(),Me=Q(),Ne=Q(),je=ve(),xe=ve(),De=ve(),He=ve(),We=ve(),$e=ve(),qe=ve(),Be=ve(),Ge=ve(),Ke=ve(),Qe=ve(),Ue=ve(),Xe=ve(),Ye=ve(),Ze=ve(),_e=ve(),el=ve(),ll=ve(),tl=ve(),nl=ve(),sl=ve(),al=ve(),rl=Q(),ol=ve(),[ul,il,dl,cl]=(e=>{let t;const[n,s]=ce(),a=Q();return[(e,s,r,o=[],u=(()=>[]))=>{null!=t||(t=Pt);const i=n(1);return Z(a,i,[e,s,r,o,u]),ie(oe(s,null!=r?r:[l],ue),i),i},(e,n,...s)=>E(((e,t=[l])=>{const n=[],s=(e,l)=>l==L(t)?O(n,e):null===t[l]?G(e,(e=>s(e,l+1))):E([t[l],null],(t=>s(X(e,t),l+1)));return s(e,0),n})(e,n),(e=>G(e,(e=>X(a,e)[0](t,...null!=n?n:[],...s))))),e=>y(X(a,e),(([,t,n])=>(oe(t,null!=n?n:[l],void 0,(l=>(K(l,e),q(l)?1:0))),Z(a,e),s(e),n))),e=>y(X(a,e),(([e,,l=[],n,s])=>{const a=(...r)=>{var o,u;const i=L(r);i==L(l)?e(t,...r,...s(r)):m(l[i])?E(null!=(u=null==(o=n[i])?void 0:o.call(n,...r))?u:[],(e=>a(...r,e))):a(...r,l[i])};a()}))]})(),hl=e=>{if(!we(e,((e,l)=>[r,o].includes(l))))return!1;const l=e[r];return!(!R(l)&&l!=s||(Te(e[o])!=l&&x(e,o),0))},vl=(l,t)=>(!e||$(Ee,t)||$l(t))&&we(l,((e,l)=>gl(t,l,e)),(()=>$l(t))),gl=(e,l,t,n)=>we(n?t:bl(t,e,l),((n,s)=>y(fl(e,l,s,n),(e=>(t[s]=e,!0)),(()=>!1))),(()=>$l(e,l))),fl=(l,t,n,s)=>e?y(X(X(Ee,l),n),(e=>Te(s)!=e[r]?$l(l,t,n,s,e[o]):s),(()=>$l(l,t,n,s))):m(Te(s))?$l(l,t,n,s):s,Tl=(e,l)=>we(l?e:Cl(e),((l,t)=>y(Vl(t,l),(l=>(e[t]=l,!0)),(()=>!1))),(()=>ql())),Vl=(e,l)=>t?y(X(Oe,e),(t=>Te(l)!=t[r]?ql(e,l,t[o]):l),(()=>ql(e,l))):m(Te(l))?ql(e,l):l,bl=(e,l,t)=>(y(X(Fe,l),(([n,s])=>{G(n,((l,t)=>{j(e,t)||(e[t]=l)})),G(s,(n=>{j(e,n)||$l(l,t,n)}))})),e),Cl=e=>(t&&(G(ze,((l,t)=>{j(e,t)||(e[t]=l)})),G(Pe,(l=>{j(e,l)||ql(l)}))),e),Sl=e=>ee(Ee,e,((e,l,t)=>{const n=Q(),s=ue();ee(_(Ee,l,Q),t,((e,l,t)=>{Z(e,l,t),y(t[o],(e=>Z(n,l,e)),(()=>ie(s,l)))})),Z(Fe,l,[n,s])}),((e,l)=>{Z(Ee,l),Z(Fe,l)})),wl=e=>ee(Oe,e,((e,l,t)=>{Z(Oe,l,t),y(t[o],(e=>Z(ze,l,e)),(()=>ie(Pe,l)))}),((e,l)=>{Z(Oe,l),Z(ze,l),K(Pe,l)})),Il=e=>H(e)?yt():Ct(e),ml=e=>ee(Me,e,((e,l,t)=>yl(l,t)),((e,l)=>Pl(l))),yl=(e,l)=>ee(_(Me,e,(()=>(Nl(e,1),Z(ke,e,ce()),Z(Ae,e,Q()),Q()))),l,((l,t,n)=>Rl(e,l,t,n)),((l,t)=>kl(e,l,t))),Rl=(e,l,t,n,s)=>ee(_(l,t,(()=>(jl(e,t,1),Q()))),n,((l,n,s)=>pl(e,t,l,n,s)),((n,a)=>Al(e,l,t,n,a,s))),pl=(e,l,t,n,s)=>{$(t,n)||xl(e,l,n,1);const a=X(t,n);s!==a&&(Dl(e,l,n,a,s),Z(t,n,s))},Jl=(e,l,t,n,s)=>y(X(l,t),(l=>pl(e,t,l,n,s)),(()=>Rl(e,l,t,bl({[n]:s},e,t)))),Ll=e=>H(e)?Jt():St(e),El=e=>ee(Ne,e,((e,l,t)=>Fl(l,t)),((e,l)=>Ml(l))),Fl=(e,l)=>{$(Ne,e)||Hl(e,1);const t=X(Ne,e);l!==t&&(Wl(e,t,l),Z(Ne,e,l))},Ol=(e,l)=>{const[t]=X(ke,e),n=t(l);return $(X(Me,e),n)?Ol(e,l):n},zl=e=>{var l;return null!=(l=X(Me,e))?l:yl(e,{})},Pl=e=>yl(e,{}),kl=(e,l,t)=>{const[,n]=X(ke,e);n(t),Rl(e,l,t,{},!0)},Al=(e,l,t,n,s,a)=>{var r;const o=X(null==(r=X(Fe,e))?void 0:r[0],s);if(!m(o)&&!a)return pl(e,t,n,s,o);const u=l=>{Dl(e,t,l,X(n,l)),xl(e,t,l,-1),Z(n,l)};m(o)?u(s):Y(n,u),q(n)&&(jl(e,t,-1),q(Z(l,t))&&(Nl(e,-1),Z(Me,e),Z(ke,e),Z(Ae,e)))},Ml=e=>{const l=X(ze,e);if(!m(l))return Fl(e,l);Wl(e,X(Ne,e)),Hl(e,-1),Z(Ne,e)},Nl=(e,l)=>Ie(P,e,l),jl=(e,l,t)=>Ie(_(N,e,Q),l,t)&&Z(A,e,_(A,e,(()=>0))+t),xl=(e,l,t,n)=>{var s;const a=X(Ae,e),r=null!=(s=X(a,t))?s:0;(0==r&&1==n||1==r&&-1==n)&&Ie(_(k,e,Q),t,n),Z(a,t,r!=-n?r+n:null),Ie(_(_(de,e,Q),l,Q),t,n)},Dl=(e,l,t,n,s)=>_(_(_(ye,e,Q),l,Q),t,(()=>[n,0]))[1]=s,Hl=(e,l)=>Ie(Re,e,l),Wl=(e,l,t)=>_(pe,e,(()=>[l,0]))[1]=t,$l=(e,l,t,n,s)=>(O(_(_(_(Je,e,Q),l,Q),t,(()=>[])),n),s),ql=(e,l,t)=>(O(_(Le,e,(()=>[])),l),t),Bl=(e,l,t)=>y(X(X(X(ye,e),l),t),(([e,l])=>[!0,e,l]),(()=>[!1,...he(ut(e,l,t))])),Gl=e=>y(X(pe,e),(([e,l])=>[!0,e,l]),(()=>[!1,...he(ct(e))])),Kl=e=>q(Je)||q(_e[e])?0:G(e?re(Je):Je,((l,t)=>G(l,((l,n)=>G(l,((l,s)=>il(_e[e],[t,n,s],l))))))),Ql=e=>q(Le)||q(el[e])?0:G(e?se(Le):Le,((l,t)=>il(el[e],[t],l))),Ul=(e,l,t,n)=>{if(!q(e))return il(l,n,(()=>le(e))),Y(e,((e,l)=>il(t,[...null!=n?n:[],e],1==l))),1},Xl=e=>{const l=ht();l!=u&&il(je[e],void 0,l);const t=q(Ke[e]),n=q(Xe[e])&&q(Ye[e])&&q(Ge[e])&&q(Qe[e])&&q($e[e])&&q(qe[e])&&q(Be[e])&&t&&q(De[e])&&q(He[e]),s=q(Ze[e])&&q(Ue[e])&&q(We[e])&&q(xe[e]);if(!n||!s){const l=e?[se(P),ae(k),se(A),ae(N),re(de),re(ye)]:[P,k,A,N,de,ye];if(!n){Ul(l[0],De[e],He[e]),G(l[1],((l,t)=>Ul(l,$e[e],qe[e],[t]))),G(l[2],((l,t)=>{0!=l&&il(Be[e],[t],st(t))}));const n=ue();G(l[3],((l,s)=>{Ul(l,Ge[e],Qe[e],[s])&&!t&&(il(Ke[e],[s,null]),ie(n,s))})),t||G(l[5],((l,t)=>{if(!$(n,t)){const n=ue();G(l,(e=>G(e,(([l,t],s)=>t!==l?ie(n,s):K(e,s))))),G(n,(l=>il(Ke[e],[t,l])))}})),G(l[4],((l,t)=>G(l,((l,n)=>Ul(l,Xe[e],Ye[e],[t,n])))))}if(!s){let t;G(l[5],((l,n)=>{let s;G(l,((l,a)=>{let r;G(l,(([l,o],u)=>{o!==l&&(il(Ze[e],[n,a,u],o,l,Bl),t=s=r=1)})),r&&il(Ue[e],[n,a],Bl)})),s&&il(We[e],[n],Bl)})),t&&il(xe[e],void 0,Bl)}}},Yl=e=>{const l=Vt();l!=I&&il(ll[e],void 0,l);const t=q(nl[e])&&q(sl[e]),n=q(al[e])&&q(tl[e]);if(!t||!n){const l=e?[se(Re),se(pe)]:[Re,pe];if(t||Ul(l[0],nl[e],sl[e]),!n){let t;G(l[1],(([l,n],s)=>{n!==l&&(il(al[e],[s],n,l,Gl),t=1)})),t&&il(tl[e],void 0,Gl)}}},Zl=(e,...l)=>(Ft((()=>e(...F(l,w)))),Pt),_l=()=>[le(ye,((e,l)=>-1===X(P,l)?null:le(e,((e,t)=>-1===X(X(N,l),t)?null:le(e,(([,e])=>null!=e?e:null),((e,l)=>fe(l)))),H)),H),le(pe,(([,e])=>null!=e?e:null),((e,l)=>fe(l)))],et=()=>({cellsTouched:n,valuesTouched:a,changedCells:ne(ye,ge,fe),invalidCells:ne(Je),changedValues:le(pe,ge,fe),invalidValues:le(Le),changedTableIds:le(P),changedRowIds:te(N),changedCellIds:ne(de),changedValueIds:le(Re)}),lt=()=>ne(Me),tt=()=>U(Me),nt=e=>U(X(Ae,w(e))),st=e=>W(X(Me,w(e))),at=e=>U(X(Me,w(e))),rt=(e,l,t,n=0,s)=>{return F(J((r=X(Me,w(e)),o=(e,t)=>[m(l)?t:X(e,w(l)),t],a=([e],[l])=>{return((null!=(n=e)?n:0)<(null!=(s=l)?s:0)?-1:1)*(t?-1:1);var n,s},F([...null!=(u=null==r?void 0:r.entries())?u:[]],(([e,l])=>o(l,e))).sort(a)),n,m(s)?s:n+s),(([,e])=>e));var a,r,o,u},ot=(e,l)=>U(X(X(Me,w(e)),w(l))),ut=(e,l,t)=>X(X(X(Me,w(e)),w(l)),w(t)),it=()=>le(Ne),dt=()=>U(Ne),ct=e=>X(Ne,w(e)),ht=()=>!q(Me),vt=e=>$(Me,w(e)),gt=(e,l)=>$(X(Ae,w(e)),w(l)),ft=(e,l)=>$(X(Me,w(e)),w(l)),Tt=(e,l,t)=>$(X(X(Me,w(e)),w(l)),w(t)),Vt=()=>!q(Ne),bt=e=>$(Ne,w(e)),Ct=e=>Zl((()=>(e=>we(e,vl,$l))(e)?ml(e):0)),St=e=>Zl((()=>Tl(e)?El(e):0)),wt=e=>{try{Il(Se(e))}catch(e){}return Pt},It=l=>Zl((()=>{if((e=we(l,(e=>we(e,hl))))&&(Sl(l),!q(Me))){const e=lt();yt(),Ct(e)}})),mt=e=>Zl((()=>{if(t=(e=>we(e,hl))(e)){const l=it();Et(),Jt(),t=!0,wl(e),St(l)}})),yt=()=>Zl((()=>ml({}))),Rt=e=>Zl((e=>$(Me,e)?Pl(e):0),e),pt=(e,l)=>Zl(((e,l)=>y(X(Me,e),(t=>$(t,l)?kl(e,t,l):0))),e,l),Jt=()=>Zl((()=>El({}))),Lt=()=>Zl((()=>{Sl({}),e=!1})),Et=()=>Zl((()=>{wl({}),t=!1})),Ft=(e,l)=>{if(-1!=z){Ot();const t=e();return zt(l),t}},Ot=()=>(-1!=z&&z++,1==z&&il(rl,void 0,_l,et),Pt),zt=e=>(z>0&&(z--,0==z&&(n=!q(ye),a=!q(pe),z=1,Kl(1),n&&Xl(1),Ql(1),a&&Yl(1),(null==e?void 0:e(_l,et))&&(G(ye,((e,l)=>G(e,((e,t)=>G(e,(([e],n)=>Ve(Pt,l,t,n,e))))))),G(pe,(([e],l)=>be(Pt,l,e))),n=a=!1),il(ol[0],void 0,_l,et),z=-1,Kl(0),n&&Xl(0),Ql(0),a&&Yl(0),il(ol[1],void 0,_l,et),z=0,n=a=!1,u=ht(),I=Vt(),E([P,k,A,N,de,ye,Je,Re,pe,Le],B))),Pt),Pt={getContent:()=>[lt(),it()],getTables:lt,getTableIds:tt,getTable:e=>te(X(Me,w(e))),getTableCellIds:nt,getRowCount:st,getRowIds:at,getSortedRowIds:rt,getRow:(e,l)=>le(X(X(Me,w(e)),w(l))),getCellIds:ot,getCell:ut,getValues:it,getValueIds:dt,getValue:ct,hasTables:ht,hasTable:vt,hasTableCell:gt,hasRow:ft,hasCell:Tt,hasValues:Vt,hasValue:bt,getTablesJson:()=>Ce(Me),getValuesJson:()=>Ce(Ne),getJson:()=>Ce([Me,Ne]),getTablesSchemaJson:()=>Ce(Ee),getValuesSchemaJson:()=>Ce(Oe),getSchemaJson:()=>Ce([Ee,Oe]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:([e,l])=>Zl((()=>{(H(e)?yt:Ct)(e),(H(l)?Jt:St)(l)})),setTables:Ct,setTable:(e,l)=>Zl((e=>vl(l,e)?yl(e,l):0),e),setRow:(e,l,t)=>Zl(((e,l)=>gl(e,l,t)?Rl(e,zl(e),l,t):0),e,l),addRow:(e,l,t=!0)=>Ft((()=>{let n;return gl(e,n,l)&&(e=w(e),Rl(e,zl(e),n=Ol(e,t?1:0),l)),n})),setPartialRow:(e,l,t)=>Zl(((e,l)=>{if(gl(e,l,t,1)){const n=zl(e);D(t,((t,s)=>Jl(e,n,l,s,t)))}}),e,l),setCell:(e,l,t,n)=>Zl(((e,l,t)=>y(fl(e,l,t,p(n)?n(ut(e,l,t)):n),(n=>Jl(e,zl(e),l,t,n)))),e,l,t),setValues:St,setPartialValues:e=>Zl((()=>Tl(e,1)?D(e,((e,l)=>Fl(l,e))):0)),setValue:(e,l)=>Zl((e=>y(Vl(e,p(l)?l(ct(e)):l),(l=>Fl(e,l)))),e),setTransactionChanges:e=>Zl((()=>{D(e[0],((e,l)=>m(e)?Rt(l):D(e,((e,t)=>m(e)?pt(l,t):D(e,((e,n)=>Ve(Pt,l,t,n,e))))))),D(e[1],((e,l)=>be(Pt,l,e)))})),setTablesJson:wt,setValuesJson:e=>{try{Ll(Se(e))}catch(e){}return Pt},setJson:e=>Zl((()=>{try{const[l,t]=Se(e);Il(l),Ll(t)}catch(l){wt(e)}})),setTablesSchema:It,setValuesSchema:mt,setSchema:(e,l)=>Zl((()=>{It(e),mt(l)})),delTables:yt,delTable:Rt,delRow:pt,delCell:(e,l,t,n)=>Zl(((e,l,t)=>y(X(Me,e),(s=>y(X(s,l),(a=>$(a,t)?Al(e,s,l,a,t,n):0))))),e,l,t),delValues:Jt,delValue:e=>Zl((e=>$(Ne,e)?Ml(e):0),e),delTablesSchema:Lt,delValuesSchema:Et,delSchema:()=>Zl((()=>{Lt(),Et()})),transaction:Ft,startTransaction:Ot,finishTransaction:zt,forEachTable:e=>G(Me,((l,t)=>e(t,(e=>G(l,((l,t)=>e(t,(e=>Y(l,e))))))))),forEachTableCell:(e,l)=>Y(X(Ae,w(e)),l),forEachRow:(e,l)=>G(X(Me,w(e)),((e,t)=>l(t,(l=>Y(e,l))))),forEachCell:(e,l,t)=>Y(X(X(Me,w(e)),w(l)),t),forEachValue:e=>Y(Ne,e),addSortedRowIdsListener:(e,l,t,n,s,a,r)=>{let o=rt(e,l,t,n,s);return ul((()=>{const r=rt(e,l,t,n,s);var u,i,d;i=o,L(u=r)===L(i)&&(d=(e,l)=>i[l]===e,u.every(d))||(o=r,a(Pt,e,l,t,n,s,o))}),Ke[r?1:0],[e,l],[tt])},addStartTransactionListener:e=>ul(e,rl),addWillFinishTransactionListener:e=>ul(e,ol[0]),addDidFinishTransactionListener:e=>ul(e,ol[1]),callListener:e=>(cl(e),Pt),delListener:e=>(dl(e),Pt),getListenerStats:()=>({}),createStore:me,addListener:ul,callListeners:il};return D({[S+d]:[0,je,[],()=>[ht()]],[d]:[0,xe],[c]:[0,De],[S+i]:[1,He,[tt],e=>[vt(...e)]],[i]:[1,We,[tt]],[i+T]:[1,$e,[tt]],[S+i+f]:[2,qe,[tt,nt],e=>[gt(...e)]],[v]:[1,Be,[tt]],[g]:[1,Ge,[tt]],[S+h]:[2,Qe,[tt,at],e=>[ft(...e)]],[h]:[2,Ue,[tt,at]],[T]:[2,Xe,[tt,at]],[S+f]:[3,Ye,[tt,at,ot],e=>[Tt(...e)]],[f]:[3,Ze,[tt,at,ot],e=>he(ut(...e))],InvalidCell:[3,_e],[S+b]:[0,ll,[],()=>[Vt()]],[b]:[0,tl],[C]:[0,nl],[S+V]:[1,sl,[dt],e=>[bt(...e)]],[V]:[1,al,[dt],e=>he(ct(e[0]))],InvalidValue:[1,el]},(([e,l,t,n],s)=>{Pt["add"+s+"Listener"]=(...s)=>ul(s[e],l[s[e+1]?1:0],e>0?J(s,0,e):void 0,t,n)})),M(Pt)};export{me as createStore};
|
package/lib/es6/store.js.gz
CHANGED
|
Binary file
|