tinybase 4.1.0-beta.2 → 4.1.0-beta.4
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/bin/cli.js +1 -1
- package/lib/checkpoints.js +1 -1
- package/lib/checkpoints.js.gz +0 -0
- package/lib/cjs/checkpoints.cjs +1 -1
- package/lib/cjs/checkpoints.cjs.gz +0 -0
- package/lib/cjs/common.cjs +1 -1
- package/lib/cjs/common.cjs.gz +0 -0
- package/lib/cjs/indexes.cjs +1 -1
- package/lib/cjs/indexes.cjs.gz +0 -0
- package/lib/cjs/metrics.cjs +1 -1
- package/lib/cjs/metrics.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-browser.cjs +1 -1
- package/lib/cjs/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-file.cjs +1 -1
- package/lib/cjs/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-remote.cjs +1 -1
- package/lib/cjs/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs/queries.cjs +1 -1
- package/lib/cjs/queries.cjs.gz +0 -0
- package/lib/cjs/relationships.cjs +1 -1
- package/lib/cjs/relationships.cjs.gz +0 -0
- 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/tools.cjs +1 -1
- package/lib/cjs/tools.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom-debug.cjs +1 -0
- package/lib/cjs/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs/ui-react-dom.cjs +1 -1
- package/lib/cjs/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs/ui-react.cjs +1 -1
- package/lib/cjs/ui-react.cjs.gz +0 -0
- package/lib/cjs-es6/checkpoints.cjs +1 -1
- package/lib/cjs-es6/checkpoints.cjs.gz +0 -0
- package/lib/cjs-es6/common.cjs +1 -1
- package/lib/cjs-es6/common.cjs.gz +0 -0
- package/lib/cjs-es6/indexes.cjs +1 -1
- package/lib/cjs-es6/indexes.cjs.gz +0 -0
- package/lib/cjs-es6/metrics.cjs +1 -1
- package/lib/cjs-es6/metrics.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-browser.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-browser.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-cr-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-file.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-file.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-remote.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-remote.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite-wasm.cjs.gz +0 -0
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs +1 -1
- package/lib/cjs-es6/persisters/persister-sqlite3.cjs.gz +0 -0
- package/lib/cjs-es6/queries.cjs +1 -1
- package/lib/cjs-es6/queries.cjs.gz +0 -0
- package/lib/cjs-es6/relationships.cjs +1 -1
- package/lib/cjs-es6/relationships.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/tools.cjs +1 -1
- package/lib/cjs-es6/tools.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs +1 -0
- package/lib/cjs-es6/ui-react-dom-debug.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react-dom.cjs +1 -1
- package/lib/cjs-es6/ui-react-dom.cjs.gz +0 -0
- package/lib/cjs-es6/ui-react.cjs +1 -1
- package/lib/cjs-es6/ui-react.cjs.gz +0 -0
- package/lib/common.js +1 -1
- package/lib/common.js.gz +0 -0
- package/lib/debug/checkpoints.js +7 -7
- package/lib/debug/common.js +2 -1
- package/lib/debug/indexes.js +10 -9
- package/lib/debug/metrics.js +13 -13
- package/lib/debug/persisters/persister-browser.js +10 -19
- package/lib/debug/persisters/persister-cr-sqlite-wasm.js +6 -15
- package/lib/debug/persisters/persister-file.js +10 -19
- package/lib/debug/persisters/persister-remote.js +10 -19
- package/lib/debug/persisters/persister-sqlite-wasm.js +6 -15
- package/lib/debug/persisters/persister-sqlite3.js +6 -15
- package/lib/debug/persisters.js +4 -4
- package/lib/debug/queries.js +3 -1
- package/lib/debug/relationships.js +8 -8
- package/lib/debug/store.js +48 -30
- package/lib/debug/tinybase.js +53 -34
- package/lib/debug/tools.js +14 -13
- package/lib/debug/ui-react-dom.js +2269 -72
- package/lib/debug/ui-react.js +89 -29
- package/lib/es6/checkpoints.js +1 -1
- package/lib/es6/checkpoints.js.gz +0 -0
- package/lib/es6/common.js +1 -1
- package/lib/es6/common.js.gz +0 -0
- package/lib/es6/indexes.js +1 -1
- package/lib/es6/indexes.js.gz +0 -0
- package/lib/es6/metrics.js +1 -1
- package/lib/es6/metrics.js.gz +0 -0
- package/lib/es6/persisters/persister-browser.js +1 -1
- package/lib/es6/persisters/persister-browser.js.gz +0 -0
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-file.js +1 -1
- package/lib/es6/persisters/persister-file.js.gz +0 -0
- package/lib/es6/persisters/persister-remote.js +1 -1
- package/lib/es6/persisters/persister-remote.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/es6/persisters/persister-sqlite3.js +1 -1
- package/lib/es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/es6/queries.js +1 -1
- package/lib/es6/queries.js.gz +0 -0
- package/lib/es6/relationships.js +1 -1
- package/lib/es6/relationships.js.gz +0 -0
- 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/tools.js +1 -1
- package/lib/es6/tools.js.gz +0 -0
- package/lib/es6/ui-react-dom-debug.js +1 -0
- package/lib/es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/es6/ui-react-dom.js +1 -1
- package/lib/es6/ui-react-dom.js.gz +0 -0
- package/lib/es6/ui-react.js +1 -1
- package/lib/es6/ui-react.js.gz +0 -0
- package/lib/indexes.js +1 -1
- package/lib/indexes.js.gz +0 -0
- package/lib/metrics.js +1 -1
- package/lib/metrics.js.gz +0 -0
- package/lib/persisters/persister-browser.js +1 -1
- package/lib/persisters/persister-browser.js.gz +0 -0
- package/lib/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-file.js +1 -1
- package/lib/persisters/persister-file.js.gz +0 -0
- package/lib/persisters/persister-remote.js +1 -1
- package/lib/persisters/persister-remote.js.gz +0 -0
- package/lib/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/persisters/persister-sqlite3.js +1 -1
- package/lib/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/queries.js +1 -1
- package/lib/queries.js.gz +0 -0
- package/lib/relationships.js +1 -1
- package/lib/relationships.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/tools.js +1 -1
- package/lib/tools.js.gz +0 -0
- package/lib/types/queries.d.ts +304 -19
- package/lib/types/store.d.ts +155 -0
- package/lib/types/ui-react-dom.d.ts +402 -16
- package/lib/types/ui-react.d.ts +532 -1
- package/lib/types/with-schemas/internal/ui-react.d.ts +24 -14
- package/lib/types/with-schemas/queries.d.ts +338 -21
- package/lib/types/with-schemas/store.d.ts +188 -0
- package/lib/types/with-schemas/ui-react-dom.d.ts +435 -24
- package/lib/types/with-schemas/ui-react.d.ts +576 -2
- package/lib/ui-react-dom.js +1 -1
- package/lib/ui-react-dom.js.gz +0 -0
- package/lib/ui-react.js +1 -1
- package/lib/ui-react.js.gz +0 -0
- package/lib/umd/checkpoints.js +1 -1
- package/lib/umd/checkpoints.js.gz +0 -0
- package/lib/umd/common.js +1 -1
- package/lib/umd/common.js.gz +0 -0
- package/lib/umd/indexes.js +1 -1
- package/lib/umd/indexes.js.gz +0 -0
- package/lib/umd/metrics.js +1 -1
- package/lib/umd/metrics.js.gz +0 -0
- package/lib/umd/persisters/persister-browser.js +1 -1
- package/lib/umd/persisters/persister-browser.js.gz +0 -0
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-file.js +1 -1
- package/lib/umd/persisters/persister-file.js.gz +0 -0
- package/lib/umd/persisters/persister-remote.js +1 -1
- package/lib/umd/persisters/persister-remote.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd/persisters/persister-sqlite3.js +1 -1
- package/lib/umd/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd/queries.js +1 -1
- package/lib/umd/queries.js.gz +0 -0
- package/lib/umd/relationships.js +1 -1
- package/lib/umd/relationships.js.gz +0 -0
- 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/tools.js +1 -1
- package/lib/umd/tools.js.gz +0 -0
- package/lib/umd/ui-react-dom-debug.js +1 -0
- package/lib/umd/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd/ui-react-dom.js +1 -1
- package/lib/umd/ui-react-dom.js.gz +0 -0
- package/lib/umd/ui-react.js +1 -1
- package/lib/umd/ui-react.js.gz +0 -0
- package/lib/umd-es6/checkpoints.js +1 -1
- package/lib/umd-es6/checkpoints.js.gz +0 -0
- package/lib/umd-es6/common.js +1 -1
- package/lib/umd-es6/common.js.gz +0 -0
- package/lib/umd-es6/indexes.js +1 -1
- package/lib/umd-es6/indexes.js.gz +0 -0
- package/lib/umd-es6/metrics.js +1 -1
- package/lib/umd-es6/metrics.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-browser.js +1 -1
- package/lib/umd-es6/persisters/persister-browser.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-cr-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-file.js +1 -1
- package/lib/umd-es6/persisters/persister-file.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-remote.js +1 -1
- package/lib/umd-es6/persisters/persister-remote.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite-wasm.js.gz +0 -0
- package/lib/umd-es6/persisters/persister-sqlite3.js +1 -1
- package/lib/umd-es6/persisters/persister-sqlite3.js.gz +0 -0
- package/lib/umd-es6/queries.js +1 -1
- package/lib/umd-es6/queries.js.gz +0 -0
- package/lib/umd-es6/relationships.js +1 -1
- package/lib/umd-es6/relationships.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/tools.js +1 -1
- package/lib/umd-es6/tools.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom-debug.js +1 -0
- package/lib/umd-es6/ui-react-dom-debug.js.gz +0 -0
- package/lib/umd-es6/ui-react-dom.js +1 -1
- package/lib/umd-es6/ui-react-dom.js.gz +0 -0
- package/lib/umd-es6/ui-react.js +1 -1
- package/lib/umd-es6/ui-react.js.gz +0 -0
- package/package.json +18 -17
- package/readme.md +3 -3
package/lib/debug/tinybase.js
CHANGED
|
@@ -19,6 +19,7 @@ const TABLE = 'Table';
|
|
|
19
19
|
const TABLES = TABLE + 's';
|
|
20
20
|
const TABLE_IDS = TABLE + IDS;
|
|
21
21
|
const ROW = 'Row';
|
|
22
|
+
const ROW_COUNT = ROW + 'Count';
|
|
22
23
|
const ROW_IDS = ROW + IDS;
|
|
23
24
|
const SORTED_ROW_IDS = 'Sorted' + ROW + IDS;
|
|
24
25
|
const CELL = 'Cell';
|
|
@@ -28,6 +29,20 @@ const VALUES = VALUE + 's';
|
|
|
28
29
|
const VALUE_IDS = VALUE + IDS;
|
|
29
30
|
const id = (key) => EMPTY_STRING + key;
|
|
30
31
|
|
|
32
|
+
const mathMax = Math.max;
|
|
33
|
+
const mathMin = Math.min;
|
|
34
|
+
const isFiniteNumber = isFinite;
|
|
35
|
+
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
36
|
+
const isUndefined = (thing) => thing == void 0;
|
|
37
|
+
const ifNotUndefined = (value, then, otherwise) =>
|
|
38
|
+
isUndefined(value) ? otherwise?.() : then(value);
|
|
39
|
+
const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
|
|
40
|
+
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
41
|
+
const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
|
|
42
|
+
const isArray = (thing) => Array.isArray(thing);
|
|
43
|
+
const test = (regex, subject) => regex.test(subject);
|
|
44
|
+
const getUndefined = () => void 0;
|
|
45
|
+
|
|
31
46
|
const arrayHas = (array, value) => array.includes(value);
|
|
32
47
|
const arrayEvery = (array, cb) => array.every(cb);
|
|
33
48
|
const arrayIsEqual = (array1, array2) =>
|
|
@@ -52,34 +67,6 @@ const arrayPop = (array) => array.pop();
|
|
|
52
67
|
const arrayUnshift = (array, ...values) => array.unshift(...values);
|
|
53
68
|
const arrayShift = (array) => array.shift();
|
|
54
69
|
|
|
55
|
-
const jsonString = (obj) =>
|
|
56
|
-
JSON.stringify(obj, (_key, value) =>
|
|
57
|
-
isInstanceOf(value, Map)
|
|
58
|
-
? arrayReduce(
|
|
59
|
-
[...value],
|
|
60
|
-
(obj2, [key, value2]) => {
|
|
61
|
-
obj2[key] = value2;
|
|
62
|
-
return obj2;
|
|
63
|
-
},
|
|
64
|
-
{},
|
|
65
|
-
)
|
|
66
|
-
: value,
|
|
67
|
-
);
|
|
68
|
-
const jsonParse = JSON.parse;
|
|
69
|
-
const mathMax = Math.max;
|
|
70
|
-
const mathMin = Math.min;
|
|
71
|
-
const isFiniteNumber = isFinite;
|
|
72
|
-
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
73
|
-
const isUndefined = (thing) => thing == void 0;
|
|
74
|
-
const ifNotUndefined = (value, then, otherwise) =>
|
|
75
|
-
isUndefined(value) ? otherwise?.() : then(value);
|
|
76
|
-
const isTypeStringOrBoolean = (type) => type == STRING || type == BOOLEAN;
|
|
77
|
-
const isString = (thing) => getTypeOf(thing) == STRING;
|
|
78
|
-
const isFunction = (thing) => getTypeOf(thing) == FUNCTION;
|
|
79
|
-
const isArray = (thing) => Array.isArray(thing);
|
|
80
|
-
const test = (regex, subject) => regex.test(subject);
|
|
81
|
-
const getUndefined = () => void 0;
|
|
82
|
-
|
|
83
70
|
const object = Object;
|
|
84
71
|
const objIds = object.keys;
|
|
85
72
|
const objFrozen = object.isFrozen;
|
|
@@ -99,7 +86,7 @@ const objIsEmpty = (obj) => isObject(obj) && objSize(obj) == 0;
|
|
|
99
86
|
|
|
100
87
|
const collSizeN = (collSizer) => (coll) =>
|
|
101
88
|
arrayReduce(collValues(coll), (total, coll2) => total + collSizer(coll2), 0);
|
|
102
|
-
const collSize = (coll) => coll
|
|
89
|
+
const collSize = (coll) => coll?.size ?? 0;
|
|
103
90
|
const collSize2 = collSizeN(collSize);
|
|
104
91
|
const collSize3 = collSizeN(collSize2);
|
|
105
92
|
const collSize4 = collSizeN(collSize3);
|
|
@@ -670,7 +657,8 @@ const createCheckpoints = getCreateFunction((store) => {
|
|
|
670
657
|
return objFreeze(checkpoints.clear());
|
|
671
658
|
});
|
|
672
659
|
|
|
673
|
-
const defaultSorter = (sortKey1, sortKey2) =>
|
|
660
|
+
const defaultSorter = (sortKey1, sortKey2) =>
|
|
661
|
+
(sortKey1 ?? 0) < (sortKey2 ?? 0) ? -1 : 1;
|
|
674
662
|
|
|
675
663
|
const createIndexes = getCreateFunction((store) => {
|
|
676
664
|
const sliceIdsListeners = mapNew();
|
|
@@ -1564,6 +1552,7 @@ const createQueries = getCreateFunction((store) => {
|
|
|
1564
1552
|
{
|
|
1565
1553
|
[TABLE]: [1, 1],
|
|
1566
1554
|
[TABLE + CELL_IDS]: [0, 1],
|
|
1555
|
+
[ROW_COUNT]: [0, 1],
|
|
1567
1556
|
[ROW_IDS]: [0, 1],
|
|
1568
1557
|
[SORTED_ROW_IDS]: [0, 5],
|
|
1569
1558
|
[ROW]: [1, 2],
|
|
@@ -1781,6 +1770,12 @@ const pairNewMap = () => [mapNew(), mapNew()];
|
|
|
1781
1770
|
const pairClone = (array) => [...array];
|
|
1782
1771
|
const pairIsEqual = ([entry1, entry2]) => entry1 === entry2;
|
|
1783
1772
|
|
|
1773
|
+
const jsonString = (obj) =>
|
|
1774
|
+
JSON.stringify(obj, (_key, value) =>
|
|
1775
|
+
isInstanceOf(value, Map) ? object.fromEntries([...value]) : value,
|
|
1776
|
+
);
|
|
1777
|
+
const jsonParse = JSON.parse;
|
|
1778
|
+
|
|
1784
1779
|
const validate = (obj, validateChild, onInvalidObj) => {
|
|
1785
1780
|
if (isUndefined(obj) || !isObject(obj) || objIsEmpty(obj) || objFrozen(obj)) {
|
|
1786
1781
|
onInvalidObj?.();
|
|
@@ -1807,6 +1802,7 @@ const createStore = () => {
|
|
|
1807
1802
|
let transactions = 0;
|
|
1808
1803
|
const changedTableIds = mapNew();
|
|
1809
1804
|
const changedTableCellIds = mapNew();
|
|
1805
|
+
const changedRowCount = mapNew();
|
|
1810
1806
|
const changedRowIds = mapNew();
|
|
1811
1807
|
const changedCellIds = mapNew();
|
|
1812
1808
|
const changedCells = mapNew();
|
|
@@ -1827,6 +1823,7 @@ const createStore = () => {
|
|
|
1827
1823
|
const tableIdsListeners = pairNewMap();
|
|
1828
1824
|
const tableListeners = pairNewMap();
|
|
1829
1825
|
const tableCellIdsListeners = pairNewMap();
|
|
1826
|
+
const rowCountListeners = pairNewMap();
|
|
1830
1827
|
const rowIdsListeners = pairNewMap();
|
|
1831
1828
|
const sortedRowIdsListeners = pairNewMap();
|
|
1832
1829
|
const rowListeners = pairNewMap();
|
|
@@ -2132,6 +2129,11 @@ const createStore = () => {
|
|
|
2132
2129
|
mapEnsure(changedRowIds, tableId, mapNew),
|
|
2133
2130
|
rowId,
|
|
2134
2131
|
addedOrRemoved,
|
|
2132
|
+
) &&
|
|
2133
|
+
mapSet(
|
|
2134
|
+
changedRowCount,
|
|
2135
|
+
tableId,
|
|
2136
|
+
mapEnsure(changedRowCount, tableId, () => 0) + addedOrRemoved,
|
|
2135
2137
|
);
|
|
2136
2138
|
const cellIdsChanged = (tableId, rowId, cellId, addedOrRemoved) => {
|
|
2137
2139
|
const cellIds = mapGet(tableCellIds, tableId);
|
|
@@ -2238,6 +2240,7 @@ const createStore = () => {
|
|
|
2238
2240
|
const emptyIdListeners =
|
|
2239
2241
|
collIsEmpty(cellIdsListeners[mutator]) &&
|
|
2240
2242
|
collIsEmpty(tableCellIdsListeners[mutator]) &&
|
|
2243
|
+
collIsEmpty(rowCountListeners[mutator]) &&
|
|
2241
2244
|
collIsEmpty(rowIdsListeners[mutator]) &&
|
|
2242
2245
|
emptySortedRowIdListeners &&
|
|
2243
2246
|
collIsEmpty(tableIdsListeners[mutator]);
|
|
@@ -2251,6 +2254,7 @@ const createStore = () => {
|
|
|
2251
2254
|
? [
|
|
2252
2255
|
mapClone(changedTableIds),
|
|
2253
2256
|
mapClone2(changedTableCellIds),
|
|
2257
|
+
mapClone(changedRowCount),
|
|
2254
2258
|
mapClone2(changedRowIds),
|
|
2255
2259
|
mapClone3(changedCellIds),
|
|
2256
2260
|
mapClone3(changedCells),
|
|
@@ -2258,6 +2262,7 @@ const createStore = () => {
|
|
|
2258
2262
|
: [
|
|
2259
2263
|
changedTableIds,
|
|
2260
2264
|
changedTableCellIds,
|
|
2265
|
+
changedRowCount,
|
|
2261
2266
|
changedRowIds,
|
|
2262
2267
|
changedCellIds,
|
|
2263
2268
|
changedCells,
|
|
@@ -2271,8 +2276,17 @@ const createStore = () => {
|
|
|
2271
2276
|
[tableId],
|
|
2272
2277
|
),
|
|
2273
2278
|
);
|
|
2279
|
+
collForEach(changes[2], (changedCount, tableId) => {
|
|
2280
|
+
if (changedCount != 0) {
|
|
2281
|
+
callListeners(
|
|
2282
|
+
rowCountListeners[mutator],
|
|
2283
|
+
[tableId],
|
|
2284
|
+
getRowCount(tableId),
|
|
2285
|
+
);
|
|
2286
|
+
}
|
|
2287
|
+
});
|
|
2274
2288
|
const calledSortableTableIds = setNew();
|
|
2275
|
-
collForEach(changes[
|
|
2289
|
+
collForEach(changes[3], (changedIds, tableId) => {
|
|
2276
2290
|
if (
|
|
2277
2291
|
callIdsListenersIfChanged(rowIdsListeners[mutator], changedIds, [
|
|
2278
2292
|
tableId,
|
|
@@ -2284,7 +2298,7 @@ const createStore = () => {
|
|
|
2284
2298
|
}
|
|
2285
2299
|
});
|
|
2286
2300
|
if (!emptySortedRowIdListeners) {
|
|
2287
|
-
collForEach(changes[
|
|
2301
|
+
collForEach(changes[5], (rows, tableId) => {
|
|
2288
2302
|
if (!collHas(calledSortableTableIds, tableId)) {
|
|
2289
2303
|
const sortableCellIds = setNew();
|
|
2290
2304
|
collForEach(rows, (cells) =>
|
|
@@ -2303,7 +2317,7 @@ const createStore = () => {
|
|
|
2303
2317
|
}
|
|
2304
2318
|
});
|
|
2305
2319
|
}
|
|
2306
|
-
collForEach(changes[
|
|
2320
|
+
collForEach(changes[4], (rowCellIds, tableId) =>
|
|
2307
2321
|
collForEach(rowCellIds, (changedIds, rowId) =>
|
|
2308
2322
|
callIdsListenersIfChanged(cellIdsListeners[mutator], changedIds, [
|
|
2309
2323
|
tableId,
|
|
@@ -2314,7 +2328,7 @@ const createStore = () => {
|
|
|
2314
2328
|
}
|
|
2315
2329
|
if (!emptyOtherListeners) {
|
|
2316
2330
|
let tablesChanged;
|
|
2317
|
-
collForEach(changes[
|
|
2331
|
+
collForEach(changes[5], (rows, tableId) => {
|
|
2318
2332
|
let tableChanged;
|
|
2319
2333
|
collForEach(rows, (cells, rowId) => {
|
|
2320
2334
|
let rowChanged;
|
|
@@ -2428,6 +2442,7 @@ const createStore = () => {
|
|
|
2428
2442
|
const getTable = (tableId) => mapToObj2(mapGet(tablesMap, id(tableId)));
|
|
2429
2443
|
const getTableCellIds = (tableId) =>
|
|
2430
2444
|
mapKeys(mapGet(tableCellIds, id(tableId)));
|
|
2445
|
+
const getRowCount = (tableId) => collSize(mapGet(tablesMap, id(tableId)));
|
|
2431
2446
|
const getRowIds = (tableId) => mapKeys(mapGet(tablesMap, id(tableId)));
|
|
2432
2447
|
const getSortedRowIds = (tableId, cellId, descending, offset = 0, limit) =>
|
|
2433
2448
|
arrayMap(
|
|
@@ -2772,6 +2787,7 @@ const createStore = () => {
|
|
|
2772
2787
|
[
|
|
2773
2788
|
changedTableIds,
|
|
2774
2789
|
changedTableCellIds,
|
|
2790
|
+
changedRowCount,
|
|
2775
2791
|
changedRowIds,
|
|
2776
2792
|
changedCellIds,
|
|
2777
2793
|
changedCells,
|
|
@@ -2867,6 +2883,7 @@ const createStore = () => {
|
|
|
2867
2883
|
tableIds: pairCollSize2(tableIdsListeners),
|
|
2868
2884
|
tableCellIds: pairCollSize2(tableCellIdsListeners),
|
|
2869
2885
|
table: pairCollSize2(tableListeners),
|
|
2886
|
+
rowCount: pairCollSize2(rowCountListeners),
|
|
2870
2887
|
rowIds: pairCollSize2(rowIdsListeners),
|
|
2871
2888
|
sortedRowIds: pairCollSize2(sortedRowIdsListeners),
|
|
2872
2889
|
row: pairCollSize2(rowListeners, collSize3),
|
|
@@ -2887,6 +2904,7 @@ const createStore = () => {
|
|
|
2887
2904
|
getTableIds,
|
|
2888
2905
|
getTable,
|
|
2889
2906
|
getTableCellIds,
|
|
2907
|
+
getRowCount,
|
|
2890
2908
|
getRowIds,
|
|
2891
2909
|
getSortedRowIds,
|
|
2892
2910
|
getRow,
|
|
@@ -2957,6 +2975,7 @@ const createStore = () => {
|
|
|
2957
2975
|
[TABLE_IDS]: [0, tableIdsListeners],
|
|
2958
2976
|
[TABLE]: [1, tableListeners, [getTableIds]],
|
|
2959
2977
|
[TABLE + CELL_IDS]: [1, tableCellIdsListeners, [getTableIds]],
|
|
2978
|
+
[ROW_COUNT]: [1, rowCountListeners, [getTableIds]],
|
|
2960
2979
|
[ROW_IDS]: [1, rowIdsListeners, [getTableIds]],
|
|
2961
2980
|
[ROW]: [2, rowListeners, [getTableIds, getRowIds]],
|
|
2962
2981
|
[CELL_IDS]: [2, cellIdsListeners, [getTableIds, getRowIds]],
|
package/lib/debug/tools.js
CHANGED
|
@@ -23,19 +23,6 @@ const VALUE = 'Value';
|
|
|
23
23
|
const VALUES = VALUE + 's';
|
|
24
24
|
const VALUE_IDS = VALUE + IDS;
|
|
25
25
|
|
|
26
|
-
const arrayEvery = (array, cb) => array.every(cb);
|
|
27
|
-
const arraySort = (array, sorter) => array.sort(sorter);
|
|
28
|
-
const arrayForEach = (array, cb) => array.forEach(cb);
|
|
29
|
-
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
30
|
-
const arrayMap = (array, cb) => array.map(cb);
|
|
31
|
-
const arrayLength = (array) => array.length;
|
|
32
|
-
const arrayFilter = (array, cb) => array.filter(cb);
|
|
33
|
-
const arrayPush = (array, ...values) => array.push(...values);
|
|
34
|
-
const arrayPop = (array) => array.pop();
|
|
35
|
-
const arrayUnshift = (array, ...values) => array.unshift(...values);
|
|
36
|
-
const arrayShift = (array) => array.shift();
|
|
37
|
-
|
|
38
|
-
const jsonParse = JSON.parse;
|
|
39
26
|
const isFiniteNumber = isFinite;
|
|
40
27
|
const isInstanceOf = (thing, cls) => thing instanceof cls;
|
|
41
28
|
const isUndefined = (thing) => thing == void 0;
|
|
@@ -50,6 +37,18 @@ const getCellOrValueType = (cell) => {
|
|
|
50
37
|
: void 0;
|
|
51
38
|
};
|
|
52
39
|
|
|
40
|
+
const arrayEvery = (array, cb) => array.every(cb);
|
|
41
|
+
const arraySort = (array, sorter) => array.sort(sorter);
|
|
42
|
+
const arrayForEach = (array, cb) => array.forEach(cb);
|
|
43
|
+
const arrayJoin = (array, sep = EMPTY_STRING) => array.join(sep);
|
|
44
|
+
const arrayMap = (array, cb) => array.map(cb);
|
|
45
|
+
const arrayLength = (array) => array.length;
|
|
46
|
+
const arrayFilter = (array, cb) => array.filter(cb);
|
|
47
|
+
const arrayPush = (array, ...values) => array.push(...values);
|
|
48
|
+
const arrayPop = (array) => array.pop();
|
|
49
|
+
const arrayUnshift = (array, ...values) => array.unshift(...values);
|
|
50
|
+
const arrayShift = (array) => array.shift();
|
|
51
|
+
|
|
53
52
|
const object = Object;
|
|
54
53
|
const objIds = object.keys;
|
|
55
54
|
const objFreeze = object.freeze;
|
|
@@ -2803,6 +2802,8 @@ const getStoreApi = (tablesSchema, valuesSchema, module) => {
|
|
|
2803
2802
|
];
|
|
2804
2803
|
};
|
|
2805
2804
|
|
|
2805
|
+
const jsonParse = JSON.parse;
|
|
2806
|
+
|
|
2806
2807
|
const prettierConfig = {
|
|
2807
2808
|
parser: 'typescript',
|
|
2808
2809
|
singleQuote: true,
|