tinybase 8.6.0-beta.0 → 9.0.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/@types/_internal/queries/with-schemas/index.d.ts +1 -2
- package/@types/_internal/ui/with-schemas/index.d.ts +8 -16
- package/@types/mergeable-store/index.d.ts +4 -4
- package/@types/mergeable-store/with-schemas/index.d.ts +41 -17
- package/@types/persisters/index.d.ts +34 -13
- package/@types/persisters/persister-durable-object-sql-storage/index.d.ts +9 -8
- package/@types/persisters/persister-durable-object-sql-storage/with-schemas/index.d.ts +10 -10
- package/@types/persisters/with-schemas/index.d.ts +72 -30
- package/@types/queries/index.d.ts +5 -7
- package/@types/queries/with-schemas/index.d.ts +9 -15
- package/@types/store/index.d.ts +1 -2
- package/@types/store/with-schemas/index.d.ts +19 -29
- package/@types/synchronizers/synchronizer-ws-client/index.d.ts +9 -3
- package/@types/synchronizers/synchronizer-ws-client/with-schemas/index.d.ts +10 -3
- package/@types/synchronizers/synchronizer-ws-server/index.d.ts +15 -2
- package/@types/synchronizers/synchronizer-ws-server/with-schemas/index.d.ts +17 -2
- package/@types/synchronizers/synchronizer-ws-server-durable-object/index.d.ts +51 -0
- package/@types/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.d.ts +51 -0
- package/@types/ui-react/with-schemas/index.d.ts +3 -6
- package/@types/ui-react-dom/with-schemas/index.d.ts +6 -12
- package/@types/ui-react-dom-charts/with-schemas/index.d.ts +3 -4
- package/@types/ui-solid/with-schemas/index.d.ts +4 -8
- package/@types/ui-solid-dom/with-schemas/index.d.ts +6 -12
- package/@types/ui-svelte-dom/with-schemas/index.d.ts +6 -12
- package/index.js +67 -25
- package/indexes/index.js +6 -8
- package/indexes/with-schemas/index.js +6 -8
- package/mergeable-store/index.js +46 -6
- package/mergeable-store/with-schemas/index.js +46 -6
- package/metrics/index.js +6 -8
- package/metrics/with-schemas/index.js +6 -8
- package/min/index.js +1 -1
- package/min/index.js.gz +0 -0
- package/min/mergeable-store/index.js +1 -1
- package/min/mergeable-store/index.js.gz +0 -0
- package/min/mergeable-store/with-schemas/index.js +1 -1
- package/min/mergeable-store/with-schemas/index.js.gz +0 -0
- package/min/omni/index.js +1 -1
- package/min/omni/index.js.gz +0 -0
- package/min/omni/with-schemas/index.js +1 -1
- package/min/omni/with-schemas/index.js.gz +0 -0
- package/min/persisters/index.js +1 -1
- package/min/persisters/index.js.gz +0 -0
- package/min/persisters/persister-automerge/index.js +1 -1
- package/min/persisters/persister-automerge/index.js.gz +0 -0
- package/min/persisters/persister-automerge/with-schemas/index.js +1 -1
- package/min/persisters/persister-automerge/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-browser/index.js +1 -1
- package/min/persisters/persister-browser/index.js.gz +0 -0
- package/min/persisters/persister-browser/with-schemas/index.js +1 -1
- package/min/persisters/persister-browser/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-cr-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-sql-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/index.js.gz +0 -0
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js +1 -1
- package/min/persisters/persister-durable-object-storage/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/index.js +1 -1
- package/min/persisters/persister-electric-sql/index.js.gz +0 -0
- package/min/persisters/persister-electric-sql/with-schemas/index.js +1 -1
- package/min/persisters/persister-electric-sql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-expo-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-file/index.js +1 -1
- package/min/persisters/persister-file/index.js.gz +0 -0
- package/min/persisters/persister-file/with-schemas/index.js +1 -1
- package/min/persisters/persister-file/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/index.js +1 -1
- package/min/persisters/persister-indexed-db/index.js.gz +0 -0
- package/min/persisters/persister-indexed-db/with-schemas/index.js +1 -1
- package/min/persisters/persister-indexed-db/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-libsql/index.js +1 -1
- package/min/persisters/persister-libsql/index.js.gz +0 -0
- package/min/persisters/persister-libsql/with-schemas/index.js +1 -1
- package/min/persisters/persister-libsql/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/index.js +1 -1
- package/min/persisters/persister-partykit-client/index.js.gz +0 -0
- package/min/persisters/persister-partykit-client/with-schemas/index.js +1 -1
- package/min/persisters/persister-partykit-client/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-pglite/index.js +1 -1
- package/min/persisters/persister-pglite/index.js.gz +0 -0
- package/min/persisters/persister-pglite/with-schemas/index.js +1 -1
- package/min/persisters/persister-pglite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-postgres/index.js +1 -1
- package/min/persisters/persister-postgres/index.js.gz +0 -0
- package/min/persisters/persister-postgres/with-schemas/index.js +1 -1
- package/min/persisters/persister-postgres/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-powersync/index.js +1 -1
- package/min/persisters/persister-powersync/index.js.gz +0 -0
- package/min/persisters/persister-powersync/with-schemas/index.js +1 -1
- package/min/persisters/persister-powersync/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/index.js.gz +0 -0
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-mmkv/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/index.js.gz +0 -0
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js +1 -1
- package/min/persisters/persister-react-native-sqlite/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-remote/index.js +1 -1
- package/min/persisters/persister-remote/index.js.gz +0 -0
- package/min/persisters/persister-remote/with-schemas/index.js +1 -1
- package/min/persisters/persister-remote/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-bun/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/index.js.gz +0 -0
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite-wasm/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/index.js +1 -1
- package/min/persisters/persister-sqlite3/index.js.gz +0 -0
- package/min/persisters/persister-sqlite3/with-schemas/index.js +1 -1
- package/min/persisters/persister-sqlite3/with-schemas/index.js.gz +0 -0
- package/min/persisters/persister-yjs/index.js +1 -1
- package/min/persisters/persister-yjs/index.js.gz +0 -0
- package/min/persisters/persister-yjs/with-schemas/index.js +1 -1
- package/min/persisters/persister-yjs/with-schemas/index.js.gz +0 -0
- package/min/persisters/with-schemas/index.js +1 -1
- package/min/persisters/with-schemas/index.js.gz +0 -0
- package/min/queries/index.js +1 -1
- package/min/queries/index.js.gz +0 -0
- package/min/queries/with-schemas/index.js +1 -1
- package/min/queries/with-schemas/index.js.gz +0 -0
- package/min/store/index.js +1 -1
- package/min/store/index.js.gz +0 -0
- package/min/store/with-schemas/index.js +1 -1
- package/min/store/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/index.js +1 -1
- package/min/synchronizers/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/index.js +1 -1
- package/min/synchronizers/synchronizer-local/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-local/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-local/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-client/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/index.js.gz +0 -0
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +1 -1
- package/min/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js.gz +0 -0
- package/min/synchronizers/with-schemas/index.js +1 -1
- package/min/synchronizers/with-schemas/index.js.gz +0 -0
- package/min/ui-react-inspector/index.js +1 -1
- package/min/ui-react-inspector/index.js.gz +0 -0
- package/min/ui-react-inspector/with-schemas/index.js +1 -1
- package/min/ui-react-inspector/with-schemas/index.js.gz +0 -0
- package/min/ui-solid-inspector/index.js +1 -1
- package/min/ui-solid-inspector/index.js.gz +0 -0
- package/min/ui-solid-inspector/with-schemas/index.js +1 -1
- package/min/ui-solid-inspector/with-schemas/index.js.gz +0 -0
- package/min/ui-svelte-inspector/index.js +1 -1
- package/min/ui-svelte-inspector/index.js.gz +0 -0
- package/min/ui-svelte-inspector/with-schemas/index.js +1 -1
- package/min/ui-svelte-inspector/with-schemas/index.js.gz +0 -0
- package/min/with-schemas/index.js +1 -1
- package/min/with-schemas/index.js.gz +0 -0
- package/omni/index.js +364 -155
- package/omni/with-schemas/index.js +364 -155
- package/package.json +8 -8
- package/persisters/index.js +133 -40
- package/persisters/persister-automerge/index.js +4 -3
- package/persisters/persister-automerge/with-schemas/index.js +4 -3
- package/persisters/persister-browser/index.js +4 -3
- package/persisters/persister-browser/with-schemas/index.js +4 -3
- package/persisters/persister-cr-sqlite-wasm/index.js +133 -40
- package/persisters/persister-cr-sqlite-wasm/with-schemas/index.js +133 -40
- package/persisters/persister-durable-object-sql-storage/index.js +275 -113
- package/persisters/persister-durable-object-sql-storage/with-schemas/index.js +275 -113
- package/persisters/persister-durable-object-storage/index.js +4 -3
- package/persisters/persister-durable-object-storage/with-schemas/index.js +4 -3
- package/persisters/persister-electric-sql/index.js +133 -40
- package/persisters/persister-electric-sql/with-schemas/index.js +133 -40
- package/persisters/persister-expo-sqlite/index.js +133 -40
- package/persisters/persister-expo-sqlite/with-schemas/index.js +133 -40
- package/persisters/persister-file/index.js +4 -3
- package/persisters/persister-file/with-schemas/index.js +4 -3
- package/persisters/persister-indexed-db/index.js +4 -3
- package/persisters/persister-indexed-db/with-schemas/index.js +4 -3
- package/persisters/persister-libsql/index.js +133 -40
- package/persisters/persister-libsql/with-schemas/index.js +133 -40
- package/persisters/persister-partykit-client/index.js +4 -3
- package/persisters/persister-partykit-client/with-schemas/index.js +4 -3
- package/persisters/persister-pglite/index.js +134 -40
- package/persisters/persister-pglite/with-schemas/index.js +134 -40
- package/persisters/persister-postgres/index.js +134 -40
- package/persisters/persister-postgres/with-schemas/index.js +134 -40
- package/persisters/persister-powersync/index.js +186 -120
- package/persisters/persister-powersync/with-schemas/index.js +186 -120
- package/persisters/persister-react-native-mmkv/index.js +4 -3
- package/persisters/persister-react-native-mmkv/with-schemas/index.js +4 -3
- package/persisters/persister-react-native-sqlite/index.js +133 -40
- package/persisters/persister-react-native-sqlite/with-schemas/index.js +133 -40
- package/persisters/persister-remote/index.js +4 -3
- package/persisters/persister-remote/with-schemas/index.js +4 -3
- package/persisters/persister-sqlite-bun/index.js +133 -40
- package/persisters/persister-sqlite-bun/with-schemas/index.js +133 -40
- package/persisters/persister-sqlite-wasm/index.js +133 -40
- package/persisters/persister-sqlite-wasm/with-schemas/index.js +133 -40
- package/persisters/persister-sqlite3/index.js +133 -40
- package/persisters/persister-sqlite3/with-schemas/index.js +133 -40
- package/persisters/persister-yjs/index.js +4 -3
- package/persisters/persister-yjs/with-schemas/index.js +4 -3
- package/persisters/with-schemas/index.js +133 -40
- package/queries/index.js +21 -19
- package/queries/with-schemas/index.js +21 -19
- package/readme.md +14 -14
- package/relationships/index.js +6 -8
- package/relationships/with-schemas/index.js +6 -8
- package/releases.md +72 -57
- package/store/index.js +33 -2
- package/store/with-schemas/index.js +33 -2
- package/synchronizers/index.js +4 -3
- package/synchronizers/synchronizer-broadcast-channel/index.js +4 -3
- package/synchronizers/synchronizer-broadcast-channel/with-schemas/index.js +4 -3
- package/synchronizers/synchronizer-local/index.js +4 -3
- package/synchronizers/synchronizer-local/with-schemas/index.js +4 -3
- package/synchronizers/synchronizer-ws-client/index.js +120 -45
- package/synchronizers/synchronizer-ws-client/with-schemas/index.js +120 -45
- package/synchronizers/synchronizer-ws-server/index.js +116 -36
- package/synchronizers/synchronizer-ws-server/with-schemas/index.js +116 -36
- package/synchronizers/synchronizer-ws-server-durable-object/index.js +125 -41
- package/synchronizers/synchronizer-ws-server-durable-object/with-schemas/index.js +125 -41
- package/synchronizers/with-schemas/index.js +4 -3
- package/ui-react-inspector/index.js +36 -5
- package/ui-react-inspector/with-schemas/index.js +36 -5
- package/ui-solid-inspector/index.js +36 -5
- package/ui-solid-inspector/with-schemas/index.js +36 -5
- package/ui-svelte/index.js +1 -1
- package/ui-svelte/with-schemas/index.js +1 -1
- package/ui-svelte-dom/index.js +2 -2
- package/ui-svelte-dom/with-schemas/index.js +2 -2
- package/ui-svelte-inspector/index.js +38 -7
- package/ui-svelte-inspector/with-schemas/index.js +38 -7
- package/with-schemas/index.js +67 -25
package/with-schemas/index.js
CHANGED
|
@@ -339,14 +339,12 @@ const getDefinableFunctions = (
|
|
|
339
339
|
const newRowValue = hasRow(tableId, rowId)
|
|
340
340
|
? validateRowValue(getRowValue(getCell, rowId))
|
|
341
341
|
: void 0;
|
|
342
|
-
if (
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
)
|
|
349
|
-
) {
|
|
342
|
+
if (!(
|
|
343
|
+
oldRowValue === newRowValue ||
|
|
344
|
+
(isArray(oldRowValue) &&
|
|
345
|
+
isArray(newRowValue) &&
|
|
346
|
+
arrayIsEqual(oldRowValue, newRowValue))
|
|
347
|
+
)) {
|
|
350
348
|
mapSet(changedRowValues, rowId, [oldRowValue, newRowValue]);
|
|
351
349
|
}
|
|
352
350
|
if (!isUndefined(getSortKey)) {
|
|
@@ -1227,8 +1225,10 @@ const createStore = () => {
|
|
|
1227
1225
|
const changedRowIds = mapNew();
|
|
1228
1226
|
const changedCellIds = mapNew();
|
|
1229
1227
|
const changedCells = mapNew();
|
|
1228
|
+
const defaultedCells = mapNew();
|
|
1230
1229
|
const changedValueIds = mapNew();
|
|
1231
1230
|
const changedValues = mapNew();
|
|
1231
|
+
const defaultedValues = setNew();
|
|
1232
1232
|
const invalidCells = mapNew();
|
|
1233
1233
|
const invalidValues = mapNew();
|
|
1234
1234
|
const tablesSchemaMap = mapNew();
|
|
@@ -1402,6 +1402,16 @@ const createStore = () => {
|
|
|
1402
1402
|
collForEach(rowDefaulted, (cell, cellId) => {
|
|
1403
1403
|
if (!objHas(row, cellId)) {
|
|
1404
1404
|
row[cellId] = cell;
|
|
1405
|
+
ifNotUndefined(rowId, (rowId2) =>
|
|
1406
|
+
setAdd(
|
|
1407
|
+
mapEnsure(
|
|
1408
|
+
mapEnsure(defaultedCells, tableId, mapNew),
|
|
1409
|
+
rowId2,
|
|
1410
|
+
setNew,
|
|
1411
|
+
),
|
|
1412
|
+
cellId,
|
|
1413
|
+
),
|
|
1414
|
+
);
|
|
1405
1415
|
}
|
|
1406
1416
|
});
|
|
1407
1417
|
collForEach(rowNonDefaulted, (cellId) => {
|
|
@@ -1418,6 +1428,7 @@ const createStore = () => {
|
|
|
1418
1428
|
collForEach(valuesDefaulted, (value, valueId) => {
|
|
1419
1429
|
if (!objHas(values, valueId)) {
|
|
1420
1430
|
values[valueId] = value;
|
|
1431
|
+
setAdd(defaultedValues, valueId);
|
|
1421
1432
|
}
|
|
1422
1433
|
});
|
|
1423
1434
|
collForEach(valuesNonDefaulted, (valueId) => {
|
|
@@ -1821,18 +1832,34 @@ const createStore = () => {
|
|
|
1821
1832
|
);
|
|
1822
1833
|
};
|
|
1823
1834
|
const cellChanged = (tableId, rowId, cellId, oldCell, newCell) => {
|
|
1835
|
+
const defaulted =
|
|
1836
|
+
collHas(mapGet(mapGet(defaultedCells, tableId), rowId), cellId) &&
|
|
1837
|
+
isUndefined(oldCell)
|
|
1838
|
+
? 1
|
|
1839
|
+
: 0;
|
|
1824
1840
|
mapEnsure(
|
|
1825
1841
|
mapEnsure(mapEnsure(changedCells, tableId, mapNew), rowId, mapNew),
|
|
1826
1842
|
cellId,
|
|
1827
1843
|
() => [oldCell, 0],
|
|
1828
1844
|
)[1] = newCell;
|
|
1829
|
-
internalListeners[3]?.(
|
|
1845
|
+
internalListeners[3]?.(
|
|
1846
|
+
tableId,
|
|
1847
|
+
rowId,
|
|
1848
|
+
cellId,
|
|
1849
|
+
newCell,
|
|
1850
|
+
mutating,
|
|
1851
|
+
defaulted,
|
|
1852
|
+
);
|
|
1853
|
+
collDel(mapGet(mapGet(defaultedCells, tableId), rowId), cellId);
|
|
1830
1854
|
};
|
|
1831
1855
|
const valueIdsChanged = (valueId, addedOrRemoved) =>
|
|
1832
1856
|
idsChanged(changedValueIds, valueId, addedOrRemoved);
|
|
1833
1857
|
const valueChanged = (valueId, oldValue, newValue) => {
|
|
1858
|
+
const defaulted =
|
|
1859
|
+
collHas(defaultedValues, valueId) && isUndefined(oldValue) ? 1 : 0;
|
|
1834
1860
|
mapEnsure(changedValues, valueId, () => [oldValue, 0])[1] = newValue;
|
|
1835
|
-
internalListeners[4]?.(valueId, newValue, mutating);
|
|
1861
|
+
internalListeners[4]?.(valueId, newValue, mutating, defaulted);
|
|
1862
|
+
collDel(defaultedValues, valueId);
|
|
1836
1863
|
};
|
|
1837
1864
|
const cellInvalid = (tableId, rowId, cellId, invalidCell, defaultedCell) => {
|
|
1838
1865
|
arrayPush(
|
|
@@ -2620,9 +2647,11 @@ const createStore = () => {
|
|
|
2620
2647
|
changedRowIds,
|
|
2621
2648
|
changedCellIds,
|
|
2622
2649
|
changedCells,
|
|
2650
|
+
defaultedCells,
|
|
2623
2651
|
invalidCells,
|
|
2624
2652
|
changedValueIds,
|
|
2625
2653
|
changedValues,
|
|
2654
|
+
defaultedValues,
|
|
2626
2655
|
invalidValues,
|
|
2627
2656
|
],
|
|
2628
2657
|
collClear,
|
|
@@ -3127,7 +3156,14 @@ const createMergeableStore = (uniqueId, getNow) => {
|
|
|
3127
3156
|
collClear(touchedCells);
|
|
3128
3157
|
collClear(touchedValues);
|
|
3129
3158
|
};
|
|
3130
|
-
const cellChanged = (
|
|
3159
|
+
const cellChanged = (
|
|
3160
|
+
tableId,
|
|
3161
|
+
rowId,
|
|
3162
|
+
cellId,
|
|
3163
|
+
newCell,
|
|
3164
|
+
mutating,
|
|
3165
|
+
defaulted,
|
|
3166
|
+
) => {
|
|
3131
3167
|
setAdd(
|
|
3132
3168
|
mapEnsure(mapEnsure(touchedCells, tableId, mapNew), rowId, setNew),
|
|
3133
3169
|
cellId,
|
|
@@ -3145,7 +3181,9 @@ const createMergeableStore = (uniqueId, getNow) => {
|
|
|
3145
3181
|
{
|
|
3146
3182
|
[cellId]: [
|
|
3147
3183
|
newCell,
|
|
3148
|
-
defaultingContent
|
|
3184
|
+
defaultingContent || defaulted
|
|
3185
|
+
? EMPTY_STRING
|
|
3186
|
+
: getNextHlc(),
|
|
3149
3187
|
],
|
|
3150
3188
|
},
|
|
3151
3189
|
],
|
|
@@ -3158,7 +3196,7 @@ const createMergeableStore = (uniqueId, getNow) => {
|
|
|
3158
3196
|
]);
|
|
3159
3197
|
}
|
|
3160
3198
|
};
|
|
3161
|
-
const valueChanged = (valueId, newValue, mutating) => {
|
|
3199
|
+
const valueChanged = (valueId, newValue, mutating, defaulted) => {
|
|
3162
3200
|
setAdd(touchedValues, valueId);
|
|
3163
3201
|
if (listeningToRawStoreChanges || mutating) {
|
|
3164
3202
|
if (mutating) {
|
|
@@ -3170,7 +3208,7 @@ const createMergeableStore = (uniqueId, getNow) => {
|
|
|
3170
3208
|
{
|
|
3171
3209
|
[valueId]: [
|
|
3172
3210
|
newValue,
|
|
3173
|
-
defaultingContent ? EMPTY_STRING : getNextHlc(),
|
|
3211
|
+
defaultingContent || defaulted ? EMPTY_STRING : getNextHlc(),
|
|
3174
3212
|
],
|
|
3175
3213
|
},
|
|
3176
3214
|
],
|
|
@@ -3753,9 +3791,9 @@ const PARAMS_TABLE = '_';
|
|
|
3753
3791
|
const PARAM_LISTENER_PREFIX = 'p';
|
|
3754
3792
|
const createQueries = getCreateFunction((store) => {
|
|
3755
3793
|
const createStore = store._[0];
|
|
3756
|
-
const preStore = createStore();
|
|
3757
3794
|
const paramStore = createStore();
|
|
3758
3795
|
const resultStore = createStore();
|
|
3796
|
+
const preStores = mapNew();
|
|
3759
3797
|
const resultStores = mapNew();
|
|
3760
3798
|
const redefiningQueryIds = setNew();
|
|
3761
3799
|
const routedResultListeners = mapNew();
|
|
@@ -3798,12 +3836,13 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3798
3836
|
);
|
|
3799
3837
|
const getResultStore = (queryId) =>
|
|
3800
3838
|
mapEnsure(resultStores, queryId, createStore);
|
|
3801
|
-
const
|
|
3839
|
+
const getPreStore = (queryId) => mapEnsure(preStores, queryId, createStore);
|
|
3840
|
+
const addPreStoreListener = (preStore, queryId, ...listenerIds) =>
|
|
3802
3841
|
arrayForEach(listenerIds, (listenerId) =>
|
|
3803
3842
|
setAdd(
|
|
3804
3843
|
mapEnsure(
|
|
3805
3844
|
mapEnsure(preStoreListenerIds, queryId, mapNew),
|
|
3806
|
-
|
|
3845
|
+
preStore,
|
|
3807
3846
|
setNew,
|
|
3808
3847
|
),
|
|
3809
3848
|
listenerId,
|
|
@@ -3813,16 +3852,17 @@ const createQueries = getCreateFunction((store) => {
|
|
|
3813
3852
|
ifNotUndefined(
|
|
3814
3853
|
mapGet(preStoreListenerIds, queryId),
|
|
3815
3854
|
(queryPreStoreListenerIds) => {
|
|
3816
|
-
mapForEach(queryPreStoreListenerIds, (
|
|
3855
|
+
mapForEach(queryPreStoreListenerIds, (preStore, listenerIds) =>
|
|
3817
3856
|
collForEach(listenerIds, (listenerId) =>
|
|
3818
|
-
|
|
3857
|
+
preStore.delListener(listenerId),
|
|
3819
3858
|
),
|
|
3820
3859
|
);
|
|
3821
3860
|
collClear(queryPreStoreListenerIds);
|
|
3822
3861
|
},
|
|
3823
3862
|
);
|
|
3824
|
-
arrayForEach(
|
|
3825
|
-
|
|
3863
|
+
arrayForEach(
|
|
3864
|
+
[getResultStore(queryId), mapGet(preStores, queryId)],
|
|
3865
|
+
(store2) => store2?.delTable(queryId),
|
|
3826
3866
|
);
|
|
3827
3867
|
};
|
|
3828
3868
|
const addSourceStoreListeners = (
|
|
@@ -4050,10 +4090,12 @@ const createQueries = getCreateFunction((store) => {
|
|
|
4050
4090
|
),
|
|
4051
4091
|
);
|
|
4052
4092
|
const groups = mapNew(groupEntries);
|
|
4053
|
-
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4093
|
+
const hasGroupsOrHavings =
|
|
4094
|
+
!collIsEmpty(groups) || !arrayIsEmpty(havings);
|
|
4095
|
+
const selectJoinWhereStore = hasGroupsOrHavings
|
|
4096
|
+
? getPreStore(queryId)
|
|
4097
|
+
: resultStore2;
|
|
4098
|
+
if (hasGroupsOrHavings) {
|
|
4057
4099
|
synchronizeTransactions(queryId, selectJoinWhereStore, resultStore2);
|
|
4058
4100
|
const groupedSelectedCellIds = mapNew();
|
|
4059
4101
|
mapForEach(groups, (groupedCellId, [selectedCellId, aggregators]) =>
|