cogsbox-state 0.5.406 → 0.5.407
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/dist/CogsState.jsx +360 -415
- package/dist/CogsState.jsx.map +1 -1
- package/package.json +1 -1
- package/src/CogsState.tsx +39 -112
package/dist/CogsState.jsx
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
3
|
-
import { useState as
|
|
4
|
-
import { transformStateFunc as
|
|
5
|
-
import { pushFunc as
|
|
6
|
-
import
|
|
7
|
-
import { v4 as
|
|
2
|
+
import { jsx as yt } from "react/jsx-runtime";
|
|
3
|
+
import { useState as et, useRef as Q, useEffect as nt, useLayoutEffect as Tt, useMemo as It, createElement as ct, useSyncExternalStore as Mt, startTransition as jt, useCallback as At } from "react";
|
|
4
|
+
import { transformStateFunc as Rt, isDeepEqual as J, isFunction as K, getNestedValue as Y, getDifferences as pt, debounce as Ot } from "./utility.js";
|
|
5
|
+
import { pushFunc as vt, updateFn as it, cutFunc as gt, ValidationWrapper as Ut, FormControlComponent as Ft } from "./Functions.jsx";
|
|
6
|
+
import Dt from "superjson";
|
|
7
|
+
import { v4 as wt } from "uuid";
|
|
8
8
|
import "zod";
|
|
9
|
-
import { getGlobalStore as o, formRefStore as
|
|
10
|
-
import { useCogsConfig as
|
|
11
|
-
import { applyPatch as
|
|
12
|
-
import
|
|
13
|
-
function
|
|
9
|
+
import { getGlobalStore as o, formRefStore as kt } from "./store.js";
|
|
10
|
+
import { useCogsConfig as Nt } from "./CogsStateClient.jsx";
|
|
11
|
+
import { applyPatch as Wt } from "fast-json-patch";
|
|
12
|
+
import Lt from "react-use-measure";
|
|
13
|
+
function $t(t, c) {
|
|
14
14
|
const S = o.getState().getInitialOptions, g = o.getState().setInitialStateOptions, y = S(t) || {};
|
|
15
15
|
g(t, {
|
|
16
16
|
...y,
|
|
17
17
|
...c
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
function
|
|
20
|
+
function bt({
|
|
21
21
|
stateKey: t,
|
|
22
22
|
options: c,
|
|
23
23
|
initialOptionsPart: S
|
|
@@ -27,7 +27,7 @@ function Vt({
|
|
|
27
27
|
if (c)
|
|
28
28
|
for (const s in c)
|
|
29
29
|
w.hasOwnProperty(s) ? (s == "localStorage" && c[s] && w[s].key !== c[s]?.key && (I = !0, w[s] = c[s]), s == "initialState" && c[s] && w[s] !== c[s] && // Different references
|
|
30
|
-
!
|
|
30
|
+
!J(w[s], c[s]) && (I = !0, w[s] = c[s])) : (I = !0, w[s] = c[s]);
|
|
31
31
|
I && x(t, w);
|
|
32
32
|
}
|
|
33
33
|
function ue(t, { formElements: c, validation: S }) {
|
|
@@ -35,7 +35,7 @@ function ue(t, { formElements: c, validation: S }) {
|
|
|
35
35
|
}
|
|
36
36
|
const ge = (t, c) => {
|
|
37
37
|
let S = t;
|
|
38
|
-
const [g, y] =
|
|
38
|
+
const [g, y] = Rt(S);
|
|
39
39
|
(Object.keys(y).length > 0 || c && Object.keys(c).length > 0) && Object.keys(y).forEach((I) => {
|
|
40
40
|
y[I] = y[I] || {}, y[I].formElements = {
|
|
41
41
|
...c?.formElements,
|
|
@@ -46,13 +46,13 @@ const ge = (t, c) => {
|
|
|
46
46
|
}, at(I) || o.getState().setInitialStateOptions(I, y[I]);
|
|
47
47
|
}), o.getState().setInitialStates(g), o.getState().setCreatedState(g);
|
|
48
48
|
const x = (I, s) => {
|
|
49
|
-
const [h] =
|
|
50
|
-
|
|
49
|
+
const [h] = et(s?.componentId ?? wt());
|
|
50
|
+
bt({
|
|
51
51
|
stateKey: I,
|
|
52
52
|
options: s,
|
|
53
53
|
initialOptionsPart: y
|
|
54
54
|
});
|
|
55
|
-
const r = o.getState().cogsStateStore[I] || g[I], f = s?.modifyState ? s.modifyState(r) : r, [
|
|
55
|
+
const r = o.getState().cogsStateStore[I] || g[I], f = s?.modifyState ? s.modifyState(r) : r, [G, O] = Jt(
|
|
56
56
|
f,
|
|
57
57
|
{
|
|
58
58
|
stateKey: I,
|
|
@@ -71,21 +71,21 @@ const ge = (t, c) => {
|
|
|
71
71
|
return O;
|
|
72
72
|
};
|
|
73
73
|
function w(I, s) {
|
|
74
|
-
|
|
74
|
+
bt({ stateKey: I, options: s, initialOptionsPart: y }), s.localStorage && zt(I, s), lt(I);
|
|
75
75
|
}
|
|
76
76
|
return { useCogsState: x, setCogsOptions: w };
|
|
77
77
|
}, {
|
|
78
|
-
setUpdaterState:
|
|
79
|
-
setState:
|
|
78
|
+
setUpdaterState: ft,
|
|
79
|
+
setState: rt,
|
|
80
80
|
getInitialOptions: at,
|
|
81
|
-
getKeyState:
|
|
82
|
-
getValidationErrors:
|
|
83
|
-
setStateLog:
|
|
84
|
-
updateInitialStateGlobal:
|
|
85
|
-
addValidationError:
|
|
86
|
-
removeValidationError:
|
|
87
|
-
setServerSyncActions:
|
|
88
|
-
} = o.getState(),
|
|
81
|
+
getKeyState: Ct,
|
|
82
|
+
getValidationErrors: Gt,
|
|
83
|
+
setStateLog: Bt,
|
|
84
|
+
updateInitialStateGlobal: Et,
|
|
85
|
+
addValidationError: Pt,
|
|
86
|
+
removeValidationError: X,
|
|
87
|
+
setServerSyncActions: Ht
|
|
88
|
+
} = o.getState(), xt = (t, c, S, g, y) => {
|
|
89
89
|
S?.log && console.log(
|
|
90
90
|
"saving to localstorage",
|
|
91
91
|
c,
|
|
@@ -97,20 +97,20 @@ const ge = (t, c) => {
|
|
|
97
97
|
const w = `${g}-${c}-${x}`;
|
|
98
98
|
let I;
|
|
99
99
|
try {
|
|
100
|
-
I =
|
|
100
|
+
I = mt(w)?.lastSyncedWithServer;
|
|
101
101
|
} catch {
|
|
102
102
|
}
|
|
103
103
|
const s = {
|
|
104
104
|
state: t,
|
|
105
105
|
lastUpdated: Date.now(),
|
|
106
106
|
lastSyncedWithServer: y ?? I
|
|
107
|
-
}, h =
|
|
107
|
+
}, h = Dt.serialize(s);
|
|
108
108
|
window.localStorage.setItem(
|
|
109
109
|
w,
|
|
110
110
|
JSON.stringify(h.json)
|
|
111
111
|
);
|
|
112
112
|
}
|
|
113
|
-
},
|
|
113
|
+
}, mt = (t) => {
|
|
114
114
|
if (!t) return null;
|
|
115
115
|
try {
|
|
116
116
|
const c = window.localStorage.getItem(t);
|
|
@@ -118,20 +118,20 @@ const ge = (t, c) => {
|
|
|
118
118
|
} catch (c) {
|
|
119
119
|
return console.error("Error loading from localStorage:", c), null;
|
|
120
120
|
}
|
|
121
|
-
},
|
|
122
|
-
const S = o.getState().cogsStateStore[t], { sessionId: g } =
|
|
121
|
+
}, zt = (t, c) => {
|
|
122
|
+
const S = o.getState().cogsStateStore[t], { sessionId: g } = Nt(), y = K(c?.localStorage?.key) ? c.localStorage.key(S) : c?.localStorage?.key;
|
|
123
123
|
if (y && g) {
|
|
124
|
-
const x =
|
|
124
|
+
const x = mt(
|
|
125
125
|
`${g}-${t}-${y}`
|
|
126
126
|
);
|
|
127
127
|
if (x && x.lastUpdated > (x.lastSyncedWithServer || 0))
|
|
128
|
-
return
|
|
128
|
+
return rt(t, x.state), lt(t), !0;
|
|
129
129
|
}
|
|
130
130
|
return !1;
|
|
131
|
-
},
|
|
131
|
+
}, _t = (t, c, S, g, y, x) => {
|
|
132
132
|
const w = {
|
|
133
133
|
initialState: c,
|
|
134
|
-
updaterState:
|
|
134
|
+
updaterState: St(
|
|
135
135
|
t,
|
|
136
136
|
g,
|
|
137
137
|
y,
|
|
@@ -139,8 +139,8 @@ const ge = (t, c) => {
|
|
|
139
139
|
),
|
|
140
140
|
state: S
|
|
141
141
|
};
|
|
142
|
-
|
|
143
|
-
},
|
|
142
|
+
Et(t, w.initialState), ft(t, w.updaterState), rt(t, w.state);
|
|
143
|
+
}, lt = (t) => {
|
|
144
144
|
const c = o.getState().stateComponents.get(t);
|
|
145
145
|
if (!c) return;
|
|
146
146
|
const S = /* @__PURE__ */ new Set();
|
|
@@ -157,7 +157,7 @@ const ge = (t, c) => {
|
|
|
157
157
|
return;
|
|
158
158
|
y && y.forceUpdate();
|
|
159
159
|
}
|
|
160
|
-
},
|
|
160
|
+
}, qt = (t, c, S, g) => {
|
|
161
161
|
switch (t) {
|
|
162
162
|
case "update":
|
|
163
163
|
return {
|
|
@@ -180,7 +180,7 @@ const ge = (t, c) => {
|
|
|
180
180
|
return { oldValue: null, newValue: null };
|
|
181
181
|
}
|
|
182
182
|
};
|
|
183
|
-
function
|
|
183
|
+
function Jt(t, {
|
|
184
184
|
stateKey: c,
|
|
185
185
|
serverSync: S,
|
|
186
186
|
localStorage: g,
|
|
@@ -193,14 +193,14 @@ function Zt(t, {
|
|
|
193
193
|
dependencies: r,
|
|
194
194
|
serverState: f
|
|
195
195
|
} = {}) {
|
|
196
|
-
const [
|
|
197
|
-
let
|
|
198
|
-
const [m] =
|
|
196
|
+
const [G, O] = et({}), { sessionId: U } = Nt();
|
|
197
|
+
let B = !c;
|
|
198
|
+
const [m] = et(c ?? wt()), l = o.getState().stateLog[m], dt = Q(/* @__PURE__ */ new Set()), tt = Q(I ?? wt()), j = Q(
|
|
199
199
|
null
|
|
200
200
|
);
|
|
201
|
-
|
|
201
|
+
j.current = at(m) ?? null, nt(() => {
|
|
202
202
|
if (h && h.stateKey === m && h.path?.[0]) {
|
|
203
|
-
|
|
203
|
+
rt(m, (n) => ({
|
|
204
204
|
...n,
|
|
205
205
|
[h.path[0]]: h.newValue
|
|
206
206
|
}));
|
|
@@ -210,40 +210,40 @@ function Zt(t, {
|
|
|
210
210
|
userId: h.userId
|
|
211
211
|
});
|
|
212
212
|
}
|
|
213
|
-
}, [h]),
|
|
213
|
+
}, [h]), nt(() => {
|
|
214
214
|
if (s) {
|
|
215
|
-
|
|
215
|
+
$t(m, {
|
|
216
216
|
initialState: s
|
|
217
217
|
});
|
|
218
|
-
const e =
|
|
219
|
-
if (!(i && !
|
|
218
|
+
const e = j.current, a = e?.serverState?.id !== void 0 && e?.serverState?.status === "success" && e?.serverState?.data, i = o.getState().initialStateGlobal[m];
|
|
219
|
+
if (!(i && !J(i, s) || !i) && !a)
|
|
220
220
|
return;
|
|
221
221
|
let u = null;
|
|
222
222
|
const p = K(e?.localStorage?.key) ? e?.localStorage?.key(s) : e?.localStorage?.key;
|
|
223
|
-
p &&
|
|
224
|
-
let T = s,
|
|
225
|
-
const _ = a ? Date.now() : 0,
|
|
226
|
-
a && _ >
|
|
223
|
+
p && U && (u = mt(`${U}-${m}-${p}`));
|
|
224
|
+
let T = s, A = !1;
|
|
225
|
+
const _ = a ? Date.now() : 0, k = u?.lastUpdated || 0, M = u?.lastSyncedWithServer || 0;
|
|
226
|
+
a && _ > k ? (T = e.serverState.data, A = !0) : u && k > M && (T = u.state, e?.localStorage?.onChange && e?.localStorage?.onChange(T)), o.getState().initializeShadowState(m, s), _t(
|
|
227
227
|
m,
|
|
228
228
|
s,
|
|
229
229
|
T,
|
|
230
230
|
st,
|
|
231
231
|
tt.current,
|
|
232
|
-
|
|
233
|
-
),
|
|
232
|
+
U
|
|
233
|
+
), A && p && U && xt(T, m, e, U, Date.now()), lt(m), (Array.isArray(w) ? w : [w || "component"]).includes("none") || O({});
|
|
234
234
|
}
|
|
235
235
|
}, [
|
|
236
236
|
s,
|
|
237
237
|
f?.status,
|
|
238
238
|
f?.data,
|
|
239
239
|
...r || []
|
|
240
|
-
]),
|
|
241
|
-
|
|
240
|
+
]), Tt(() => {
|
|
241
|
+
B && $t(m, {
|
|
242
242
|
serverSync: S,
|
|
243
243
|
formElements: y,
|
|
244
244
|
initialState: s,
|
|
245
245
|
localStorage: g,
|
|
246
|
-
middleware:
|
|
246
|
+
middleware: j.current?.middleware
|
|
247
247
|
});
|
|
248
248
|
const e = `${m}////${tt.current}`, n = o.getState().stateComponents.get(m) || {
|
|
249
249
|
components: /* @__PURE__ */ new Map()
|
|
@@ -261,115 +261,115 @@ function Zt(t, {
|
|
|
261
261
|
const st = (e, n, a, i) => {
|
|
262
262
|
if (Array.isArray(n)) {
|
|
263
263
|
const u = `${m}-${n.join(".")}`;
|
|
264
|
-
|
|
264
|
+
dt.current.add(u);
|
|
265
265
|
}
|
|
266
266
|
const v = o.getState();
|
|
267
|
-
|
|
267
|
+
rt(m, (u) => {
|
|
268
268
|
const p = K(e) ? e(u) : e, T = `${m}-${n.join(".")}`;
|
|
269
269
|
if (T) {
|
|
270
|
-
let
|
|
271
|
-
if ((!
|
|
272
|
-
const C = n.slice(0, -1),
|
|
273
|
-
if (Array.isArray(
|
|
274
|
-
|
|
275
|
-
const
|
|
276
|
-
|
|
270
|
+
let b = !1, N = v.signalDomElements.get(T);
|
|
271
|
+
if ((!N || N.size === 0) && (a.updateType === "insert" || a.updateType === "cut")) {
|
|
272
|
+
const C = n.slice(0, -1), W = Y(p, C);
|
|
273
|
+
if (Array.isArray(W)) {
|
|
274
|
+
b = !0;
|
|
275
|
+
const E = `${m}-${C.join(".")}`;
|
|
276
|
+
N = v.signalDomElements.get(E);
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
-
if (
|
|
280
|
-
const C =
|
|
281
|
-
|
|
282
|
-
const
|
|
283
|
-
`[data-parent-id="${
|
|
279
|
+
if (N) {
|
|
280
|
+
const C = b ? Y(p, n.slice(0, -1)) : Y(p, n);
|
|
281
|
+
N.forEach(({ parentId: W, position: E, effect: F }) => {
|
|
282
|
+
const R = document.querySelector(
|
|
283
|
+
`[data-parent-id="${W}"]`
|
|
284
284
|
);
|
|
285
|
-
if (
|
|
286
|
-
const
|
|
287
|
-
if (
|
|
288
|
-
const
|
|
289
|
-
|
|
285
|
+
if (R) {
|
|
286
|
+
const V = Array.from(R.childNodes);
|
|
287
|
+
if (V[E]) {
|
|
288
|
+
const $ = F ? new Function("state", `return (${F})(state)`)(C) : C;
|
|
289
|
+
V[E].textContent = String($);
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
292
|
});
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
|
-
console.log("shadowState", v.shadowStateStore), a.updateType === "update" && (i ||
|
|
296
|
-
(i ||
|
|
295
|
+
console.log("shadowState", v.shadowStateStore), a.updateType === "update" && (i || j.current?.validation?.key) && n && X(
|
|
296
|
+
(i || j.current?.validation?.key) + "." + n.join(".")
|
|
297
297
|
);
|
|
298
|
-
const
|
|
299
|
-
a.updateType === "cut" &&
|
|
300
|
-
|
|
301
|
-
), a.updateType === "insert" &&
|
|
302
|
-
|
|
303
|
-
).filter(([
|
|
304
|
-
let
|
|
305
|
-
if (
|
|
306
|
-
let
|
|
307
|
-
|
|
298
|
+
const A = n.slice(0, n.length - 1);
|
|
299
|
+
a.updateType === "cut" && j.current?.validation?.key && X(
|
|
300
|
+
j.current?.validation?.key + "." + A.join(".")
|
|
301
|
+
), a.updateType === "insert" && j.current?.validation?.key && Gt(
|
|
302
|
+
j.current?.validation?.key + "." + A.join(".")
|
|
303
|
+
).filter(([N, C]) => {
|
|
304
|
+
let W = N?.split(".").length;
|
|
305
|
+
if (N == A.join(".") && W == A.length - 1) {
|
|
306
|
+
let E = N + "." + A;
|
|
307
|
+
X(N), Pt(E, C);
|
|
308
308
|
}
|
|
309
309
|
});
|
|
310
310
|
const _ = v.stateComponents.get(m);
|
|
311
311
|
if (console.log("stateEntry >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", _), _) {
|
|
312
|
-
const
|
|
312
|
+
const b = pt(u, p), N = new Set(b), C = a.updateType === "update" ? n.join(".") : n.slice(0, -1).join(".") || "";
|
|
313
313
|
for (const [
|
|
314
|
-
|
|
315
|
-
|
|
314
|
+
W,
|
|
315
|
+
E
|
|
316
316
|
] of _.components.entries()) {
|
|
317
|
-
let
|
|
318
|
-
const
|
|
319
|
-
if (console.log("component",
|
|
320
|
-
if (
|
|
321
|
-
|
|
317
|
+
let F = !1;
|
|
318
|
+
const R = Array.isArray(E.reactiveType) ? E.reactiveType : [E.reactiveType || "component"];
|
|
319
|
+
if (console.log("component", E), !R.includes("none")) {
|
|
320
|
+
if (R.includes("all")) {
|
|
321
|
+
E.forceUpdate();
|
|
322
322
|
continue;
|
|
323
323
|
}
|
|
324
|
-
if (
|
|
325
|
-
for (const
|
|
326
|
-
let
|
|
324
|
+
if (R.includes("component") && ((E.paths.has(C) || E.paths.has("")) && (F = !0), !F))
|
|
325
|
+
for (const V of N) {
|
|
326
|
+
let $ = V;
|
|
327
327
|
for (; ; ) {
|
|
328
|
-
if (
|
|
329
|
-
|
|
328
|
+
if (E.paths.has($)) {
|
|
329
|
+
F = !0;
|
|
330
330
|
break;
|
|
331
331
|
}
|
|
332
|
-
const
|
|
333
|
-
if (
|
|
334
|
-
const
|
|
332
|
+
const D = $.lastIndexOf(".");
|
|
333
|
+
if (D !== -1) {
|
|
334
|
+
const L = $.substring(
|
|
335
335
|
0,
|
|
336
|
-
|
|
336
|
+
D
|
|
337
337
|
);
|
|
338
338
|
if (!isNaN(
|
|
339
|
-
Number(
|
|
340
|
-
) &&
|
|
341
|
-
|
|
339
|
+
Number($.substring(D + 1))
|
|
340
|
+
) && E.paths.has(L)) {
|
|
341
|
+
F = !0;
|
|
342
342
|
break;
|
|
343
343
|
}
|
|
344
|
-
|
|
344
|
+
$ = L;
|
|
345
345
|
} else
|
|
346
|
-
|
|
347
|
-
if (
|
|
346
|
+
$ = "";
|
|
347
|
+
if ($ === "")
|
|
348
348
|
break;
|
|
349
349
|
}
|
|
350
|
-
if (
|
|
350
|
+
if (F) break;
|
|
351
351
|
}
|
|
352
|
-
if (!
|
|
353
|
-
const
|
|
354
|
-
let
|
|
355
|
-
typeof
|
|
352
|
+
if (!F && R.includes("deps") && E.depsFunction) {
|
|
353
|
+
const V = E.depsFunction(p);
|
|
354
|
+
let $ = !1;
|
|
355
|
+
typeof V == "boolean" ? V && ($ = !0) : J(E.deps, V) || (E.deps = V, $ = !0), $ && (F = !0);
|
|
356
356
|
}
|
|
357
|
-
|
|
357
|
+
F && E.forceUpdate();
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
360
|
}
|
|
361
|
-
const
|
|
362
|
-
n = n.map((
|
|
363
|
-
const C = n.slice(0, -1),
|
|
364
|
-
return
|
|
361
|
+
const k = Date.now();
|
|
362
|
+
n = n.map((b, N) => {
|
|
363
|
+
const C = n.slice(0, -1), W = Y(p, C);
|
|
364
|
+
return N === n.length - 1 && ["insert", "cut"].includes(a.updateType) ? (W.length - 1).toString() : b;
|
|
365
365
|
});
|
|
366
|
-
const { oldValue: M, newValue: P } =
|
|
366
|
+
const { oldValue: M, newValue: P } = qt(
|
|
367
367
|
a.updateType,
|
|
368
368
|
u,
|
|
369
369
|
p,
|
|
370
370
|
n
|
|
371
|
-
),
|
|
372
|
-
timeStamp:
|
|
371
|
+
), H = {
|
|
372
|
+
timeStamp: k,
|
|
373
373
|
stateKey: m,
|
|
374
374
|
path: n,
|
|
375
375
|
updateType: a.updateType,
|
|
@@ -382,58 +382,58 @@ function Zt(t, {
|
|
|
382
382
|
v.updateShadowAtPath(m, n, p);
|
|
383
383
|
break;
|
|
384
384
|
case "insert":
|
|
385
|
-
const
|
|
386
|
-
v.insertShadowArrayElement(m,
|
|
385
|
+
const b = n.slice(0, -1);
|
|
386
|
+
v.insertShadowArrayElement(m, b, P);
|
|
387
387
|
break;
|
|
388
388
|
case "cut":
|
|
389
|
-
const
|
|
390
|
-
v.removeShadowArrayElement(m,
|
|
389
|
+
const N = n.slice(0, -1), C = parseInt(n[n.length - 1]);
|
|
390
|
+
v.removeShadowArrayElement(m, N, C);
|
|
391
391
|
break;
|
|
392
392
|
}
|
|
393
|
-
if (
|
|
394
|
-
const C = [...
|
|
395
|
-
const
|
|
396
|
-
return
|
|
393
|
+
if (Bt(m, (b) => {
|
|
394
|
+
const C = [...b ?? [], H].reduce((W, E) => {
|
|
395
|
+
const F = `${E.stateKey}:${JSON.stringify(E.path)}`, R = W.get(F);
|
|
396
|
+
return R ? (R.timeStamp = Math.max(R.timeStamp, E.timeStamp), R.newValue = E.newValue, R.oldValue = R.oldValue ?? E.oldValue, R.updateType = E.updateType) : W.set(F, { ...E }), W;
|
|
397
397
|
}, /* @__PURE__ */ new Map());
|
|
398
398
|
return Array.from(C.values());
|
|
399
|
-
}),
|
|
399
|
+
}), xt(
|
|
400
400
|
p,
|
|
401
401
|
m,
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
),
|
|
402
|
+
j.current,
|
|
403
|
+
U
|
|
404
|
+
), j.current?.middleware && j.current.middleware({
|
|
405
405
|
updateLog: l,
|
|
406
|
-
update:
|
|
407
|
-
}),
|
|
408
|
-
const
|
|
409
|
-
|
|
410
|
-
syncKey: typeof
|
|
411
|
-
rollBackState:
|
|
412
|
-
actionTimeStamp: Date.now() + (
|
|
406
|
+
update: H
|
|
407
|
+
}), j.current?.serverSync) {
|
|
408
|
+
const b = v.serverState[m], N = j.current?.serverSync;
|
|
409
|
+
Ht(m, {
|
|
410
|
+
syncKey: typeof N.syncKey == "string" ? N.syncKey : N.syncKey({ state: p }),
|
|
411
|
+
rollBackState: b,
|
|
412
|
+
actionTimeStamp: Date.now() + (N.debounce ?? 3e3),
|
|
413
413
|
status: "waiting"
|
|
414
414
|
});
|
|
415
415
|
}
|
|
416
416
|
return p;
|
|
417
417
|
});
|
|
418
418
|
};
|
|
419
|
-
o.getState().updaterState[m] || (
|
|
419
|
+
o.getState().updaterState[m] || (ft(
|
|
420
420
|
m,
|
|
421
|
-
|
|
421
|
+
St(
|
|
422
422
|
m,
|
|
423
423
|
st,
|
|
424
424
|
tt.current,
|
|
425
|
-
|
|
425
|
+
U
|
|
426
426
|
)
|
|
427
|
-
), o.getState().cogsStateStore[m] ||
|
|
428
|
-
const d =
|
|
427
|
+
), o.getState().cogsStateStore[m] || rt(m, t), o.getState().initialStateGlobal[m] || Et(m, t));
|
|
428
|
+
const d = It(() => St(
|
|
429
429
|
m,
|
|
430
430
|
st,
|
|
431
431
|
tt.current,
|
|
432
|
-
|
|
433
|
-
), [m,
|
|
434
|
-
return [
|
|
432
|
+
U
|
|
433
|
+
), [m, U]);
|
|
434
|
+
return [Ct(m), d];
|
|
435
435
|
}
|
|
436
|
-
function
|
|
436
|
+
function St(t, c, S, g) {
|
|
437
437
|
const y = /* @__PURE__ */ new Map();
|
|
438
438
|
let x = 0;
|
|
439
439
|
const w = (h) => {
|
|
@@ -443,15 +443,15 @@ function vt(t, c, S, g) {
|
|
|
443
443
|
x++;
|
|
444
444
|
}, I = {
|
|
445
445
|
removeValidation: (h) => {
|
|
446
|
-
h?.validationKey &&
|
|
446
|
+
h?.validationKey && X(h.validationKey);
|
|
447
447
|
},
|
|
448
448
|
revertToInitialState: (h) => {
|
|
449
449
|
const r = o.getState().getInitialOptions(t)?.validation;
|
|
450
|
-
r?.key &&
|
|
450
|
+
r?.key && X(r?.key), h?.validationKey && X(h.validationKey);
|
|
451
451
|
const f = o.getState().initialStateGlobal[t];
|
|
452
452
|
o.getState().clearSelectedIndexesForState(t), y.clear(), x++;
|
|
453
|
-
const
|
|
454
|
-
|
|
453
|
+
const G = s(f, []), O = at(t), U = K(O?.localStorage?.key) ? O?.localStorage?.key(f) : O?.localStorage?.key, B = `${g}-${t}-${U}`;
|
|
454
|
+
B && localStorage.removeItem(B), ft(t, G), rt(t, f);
|
|
455
455
|
const m = o.getState().stateComponents.get(t);
|
|
456
456
|
return m && m.components.forEach((l) => {
|
|
457
457
|
l.forceUpdate();
|
|
@@ -459,20 +459,20 @@ function vt(t, c, S, g) {
|
|
|
459
459
|
},
|
|
460
460
|
updateInitialState: (h) => {
|
|
461
461
|
y.clear(), x++;
|
|
462
|
-
const r =
|
|
462
|
+
const r = St(
|
|
463
463
|
t,
|
|
464
464
|
c,
|
|
465
465
|
S,
|
|
466
466
|
g
|
|
467
|
-
), f = o.getState().initialStateGlobal[t],
|
|
468
|
-
return localStorage.getItem(
|
|
469
|
-
|
|
470
|
-
const
|
|
471
|
-
|
|
467
|
+
), f = o.getState().initialStateGlobal[t], G = at(t), O = K(G?.localStorage?.key) ? G?.localStorage?.key(f) : G?.localStorage?.key, U = `${g}-${t}-${O}`;
|
|
468
|
+
return localStorage.getItem(U) && localStorage.removeItem(U), jt(() => {
|
|
469
|
+
Et(t, h), o.getState().initializeShadowState(t, h), ft(t, r), rt(t, h);
|
|
470
|
+
const B = o.getState().stateComponents.get(t);
|
|
471
|
+
B && B.components.forEach((m) => {
|
|
472
472
|
m.forceUpdate();
|
|
473
473
|
});
|
|
474
474
|
}), {
|
|
475
|
-
fetchId: (
|
|
475
|
+
fetchId: (B) => r.get()[B]
|
|
476
476
|
};
|
|
477
477
|
},
|
|
478
478
|
_initialState: o.getState().initialStateGlobal[t],
|
|
@@ -480,27 +480,27 @@ function vt(t, c, S, g) {
|
|
|
480
480
|
_isLoading: o.getState().isLoadingGlobal[t],
|
|
481
481
|
_isServerSynced: () => {
|
|
482
482
|
const h = o.getState().serverState[t];
|
|
483
|
-
return !!(h &&
|
|
483
|
+
return !!(h && J(h, Ct(t)));
|
|
484
484
|
}
|
|
485
485
|
};
|
|
486
486
|
function s(h, r = [], f) {
|
|
487
|
-
const
|
|
488
|
-
y.get(
|
|
487
|
+
const G = r.map(String).join(".");
|
|
488
|
+
y.get(G);
|
|
489
489
|
const O = function() {
|
|
490
490
|
return o().getNestedState(t, r);
|
|
491
491
|
};
|
|
492
492
|
Object.keys(I).forEach((m) => {
|
|
493
493
|
O[m] = I[m];
|
|
494
494
|
});
|
|
495
|
-
const
|
|
496
|
-
apply(m, l,
|
|
495
|
+
const U = {
|
|
496
|
+
apply(m, l, dt) {
|
|
497
497
|
return console.log(
|
|
498
498
|
`PROXY APPLY TRAP HIT: stateKey=${t}, path=${r.join(".")}`
|
|
499
499
|
), console.trace("Apply trap stack trace"), o().getNestedState(t, r);
|
|
500
500
|
},
|
|
501
501
|
get(m, l) {
|
|
502
502
|
f?.validIndices && !Array.isArray(h) && (f = { ...f, validIndices: void 0 });
|
|
503
|
-
const
|
|
503
|
+
const dt = /* @__PURE__ */ new Set([
|
|
504
504
|
"insert",
|
|
505
505
|
"cut",
|
|
506
506
|
"cutByValue",
|
|
@@ -523,7 +523,7 @@ function vt(t, c, S, g) {
|
|
|
523
523
|
"_stateKey",
|
|
524
524
|
"getComponents"
|
|
525
525
|
]);
|
|
526
|
-
if (l !== "then" && !l.startsWith("$") && l !== "stateMapNoRender" && !
|
|
526
|
+
if (l !== "then" && !l.startsWith("$") && l !== "stateMapNoRender" && !dt.has(l)) {
|
|
527
527
|
const d = `${t}////${S}`, e = o.getState().stateComponents.get(t);
|
|
528
528
|
if (e) {
|
|
529
529
|
const n = e.components.get(d);
|
|
@@ -540,7 +540,7 @@ function vt(t, c, S, g) {
|
|
|
540
540
|
}
|
|
541
541
|
}
|
|
542
542
|
if (l === "getDifferences")
|
|
543
|
-
return () =>
|
|
543
|
+
return () => pt(
|
|
544
544
|
o.getState().cogsStateStore[t],
|
|
545
545
|
o.getState().initialStateGlobal[t]
|
|
546
546
|
);
|
|
@@ -569,7 +569,7 @@ function vt(t, c, S, g) {
|
|
|
569
569
|
};
|
|
570
570
|
if (l === "_status") {
|
|
571
571
|
const d = o.getState().getNestedState(t, r), e = o.getState().initialStateGlobal[t], n = Y(e, r);
|
|
572
|
-
return
|
|
572
|
+
return J(d, n) ? "fresh" : "stale";
|
|
573
573
|
}
|
|
574
574
|
if (l === "getStatus")
|
|
575
575
|
return function() {
|
|
@@ -577,7 +577,7 @@ function vt(t, c, S, g) {
|
|
|
577
577
|
t,
|
|
578
578
|
r
|
|
579
579
|
), e = o.getState().initialStateGlobal[t], n = Y(e, r);
|
|
580
|
-
return
|
|
580
|
+
return J(d, n) ? "fresh" : "stale";
|
|
581
581
|
};
|
|
582
582
|
if (l === "removeStorage")
|
|
583
583
|
return () => {
|
|
@@ -622,177 +622,126 @@ function vt(t, c, S, g) {
|
|
|
622
622
|
overscan: a = 6,
|
|
623
623
|
stickToBottom: i = !1,
|
|
624
624
|
dependencies: v = []
|
|
625
|
-
} = e
|
|
626
|
-
console.log("useVirtualView initialized with:", {
|
|
627
|
-
itemHeight: n,
|
|
628
|
-
overscan: a,
|
|
629
|
-
stickToBottom: i
|
|
630
|
-
});
|
|
631
|
-
const u = X(null), [p, T] = nt({
|
|
625
|
+
} = e, u = Q(null), [p, T] = et({
|
|
632
626
|
startIndex: 0,
|
|
633
627
|
endIndex: 10
|
|
634
|
-
}), [
|
|
628
|
+
}), [A, _] = et(0), k = Q(!1), M = Q(!0), P = Q(
|
|
635
629
|
null
|
|
636
630
|
);
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
})
|
|
640
|
-
const
|
|
631
|
+
nt(() => o.getState().subscribeToShadowState(t, () => {
|
|
632
|
+
_(($) => $ + 1);
|
|
633
|
+
}), [t]);
|
|
634
|
+
const H = o().getNestedState(
|
|
641
635
|
t,
|
|
642
636
|
r
|
|
643
|
-
),
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
W[j] = E;
|
|
652
|
-
const Q = $[j]?.virtualizer?.itemHeight;
|
|
653
|
-
E += Q || n;
|
|
637
|
+
), b = H.length, { totalHeight: N, positions: C } = It(() => {
|
|
638
|
+
const V = o.getState().getShadowMetadata(t, r) || [];
|
|
639
|
+
let $ = 0;
|
|
640
|
+
const D = [];
|
|
641
|
+
for (let L = 0; L < b; L++) {
|
|
642
|
+
D[L] = $;
|
|
643
|
+
const Z = V[L]?.virtualizer?.itemHeight;
|
|
644
|
+
$ += Z || n;
|
|
654
645
|
}
|
|
655
|
-
return
|
|
646
|
+
return { totalHeight: $, positions: D };
|
|
656
647
|
}, [
|
|
657
|
-
|
|
648
|
+
b,
|
|
658
649
|
t,
|
|
659
650
|
r.join("."),
|
|
660
651
|
n,
|
|
661
|
-
|
|
662
|
-
]),
|
|
663
|
-
const
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
const W = Array.from(
|
|
669
|
-
{ length: E - $ },
|
|
670
|
-
(Q, G) => $ + G
|
|
671
|
-
), j = W.map((Q) => J[Q]);
|
|
672
|
-
return s(j, r, {
|
|
652
|
+
A
|
|
653
|
+
]), W = It(() => {
|
|
654
|
+
const V = Math.max(0, p.startIndex), $ = Math.min(b, p.endIndex), D = Array.from(
|
|
655
|
+
{ length: $ - V },
|
|
656
|
+
(Z, q) => V + q
|
|
657
|
+
), L = D.map((Z) => H[Z]);
|
|
658
|
+
return s(L, r, {
|
|
673
659
|
...f,
|
|
674
|
-
validIndices:
|
|
660
|
+
validIndices: D
|
|
675
661
|
});
|
|
676
|
-
}, [p.startIndex, p.endIndex,
|
|
677
|
-
|
|
678
|
-
if (
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
return;
|
|
687
|
-
}
|
|
688
|
-
if (!u.current) {
|
|
689
|
-
console.log("No container ref, skipping");
|
|
690
|
-
return;
|
|
691
|
-
}
|
|
692
|
-
if (k === 0) {
|
|
693
|
-
console.log("No items, skipping");
|
|
694
|
-
return;
|
|
695
|
-
}
|
|
696
|
-
if (!M.current) {
|
|
697
|
-
console.log(
|
|
698
|
-
"Should not stick to bottom (user scrolled), skipping"
|
|
699
|
-
);
|
|
700
|
-
return;
|
|
701
|
-
}
|
|
702
|
-
console.log("Proceeding with auto-scroll logic"), P.current && (console.log("Clearing existing scroll interval"), clearInterval(P.current));
|
|
703
|
-
const $ = 50, E = p.endIndex < $, W = k > p.endIndex + $;
|
|
704
|
-
if (console.log("Jump check:", {
|
|
705
|
-
isInitialLoad: E,
|
|
706
|
-
isBigJump: W,
|
|
707
|
-
totalCount: k,
|
|
708
|
-
currentEndIndex: p.endIndex
|
|
709
|
-
}), E || W) {
|
|
710
|
-
const G = {
|
|
711
|
-
startIndex: Math.max(0, k - 20),
|
|
712
|
-
endIndex: k
|
|
662
|
+
}, [p.startIndex, p.endIndex, H, b]);
|
|
663
|
+
nt(() => {
|
|
664
|
+
if (!i || !u.current || b === 0 || !M.current) return;
|
|
665
|
+
P.current && clearInterval(P.current);
|
|
666
|
+
const V = 50, $ = p.endIndex < V, D = b > p.endIndex + V;
|
|
667
|
+
if ($ || D) {
|
|
668
|
+
k.current = !0;
|
|
669
|
+
const q = {
|
|
670
|
+
startIndex: Math.max(0, b - 20),
|
|
671
|
+
endIndex: b
|
|
713
672
|
};
|
|
714
|
-
|
|
673
|
+
T(q), setTimeout(() => {
|
|
674
|
+
k.current = !1;
|
|
675
|
+
}, 100);
|
|
715
676
|
}
|
|
716
|
-
let
|
|
717
|
-
const
|
|
718
|
-
return
|
|
719
|
-
const
|
|
720
|
-
if (!
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
console.log(`Scroll attempt ${j}:`, {
|
|
727
|
-
currentBottom: St,
|
|
728
|
-
actualBottom: lt,
|
|
729
|
-
isAtBottom: B,
|
|
730
|
-
scrollTop: it,
|
|
731
|
-
scrollHeight: et,
|
|
732
|
-
clientHeight: ct
|
|
733
|
-
}), B || j >= Q ? (console.log(
|
|
734
|
-
B ? "Successfully reached bottom!" : "Timeout - giving up"
|
|
735
|
-
), clearInterval(P.current), P.current = null) : (console.log("Scrolling to", G.scrollHeight), G.scrollTop = G.scrollHeight);
|
|
677
|
+
let L = 0;
|
|
678
|
+
const Z = 50;
|
|
679
|
+
return P.current = setInterval(() => {
|
|
680
|
+
const q = u.current;
|
|
681
|
+
if (!q) return;
|
|
682
|
+
L++;
|
|
683
|
+
const { scrollTop: ot, scrollHeight: ut, clientHeight: ht } = q, z = ot + ht;
|
|
684
|
+
ut - z < 5 || L >= Z ? (clearInterval(P.current), P.current = null) : (k.current = !0, q.scrollTop = q.scrollHeight, setTimeout(() => {
|
|
685
|
+
k.current = !1;
|
|
686
|
+
}, 50));
|
|
736
687
|
}, 100), () => {
|
|
737
|
-
|
|
688
|
+
P.current && (clearInterval(P.current), P.current = null);
|
|
738
689
|
};
|
|
739
|
-
}, [
|
|
740
|
-
const
|
|
741
|
-
if (
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
}, 150);
|
|
753
|
-
let et = 0;
|
|
754
|
-
for (let B = 0; B < C.length; B++)
|
|
755
|
-
if (C[B] > j - n * a) {
|
|
756
|
-
et = Math.max(0, B - 1);
|
|
690
|
+
}, [b, i, p.startIndex, p.endIndex]), nt(() => {
|
|
691
|
+
const V = u.current;
|
|
692
|
+
if (!V) return;
|
|
693
|
+
const $ = () => {
|
|
694
|
+
if (k.current)
|
|
695
|
+
return;
|
|
696
|
+
P.current && (clearInterval(P.current), P.current = null);
|
|
697
|
+
const { scrollTop: D, scrollHeight: L, clientHeight: Z } = V, q = L - D - Z < 10;
|
|
698
|
+
M.current = q;
|
|
699
|
+
let ot = 0;
|
|
700
|
+
for (let z = 0; z < C.length; z++)
|
|
701
|
+
if (C[z] > D - n * a) {
|
|
702
|
+
ot = Math.max(0, z - 1);
|
|
757
703
|
break;
|
|
758
704
|
}
|
|
759
|
-
let
|
|
760
|
-
const
|
|
761
|
-
for (let
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
startIndex: Math.max(0,
|
|
765
|
-
endIndex: Math.min(
|
|
766
|
-
};
|
|
767
|
-
console.log("Updating visible range:", lt), T(lt);
|
|
705
|
+
let ut = ot;
|
|
706
|
+
const ht = D + Z;
|
|
707
|
+
for (let z = ot; z < C.length && !(C[z] > ht + n * a); z++)
|
|
708
|
+
ut = z;
|
|
709
|
+
T({
|
|
710
|
+
startIndex: Math.max(0, ot),
|
|
711
|
+
endIndex: Math.min(b, ut + 1 + a)
|
|
712
|
+
});
|
|
768
713
|
};
|
|
769
|
-
return
|
|
714
|
+
return V.addEventListener("scroll", $, {
|
|
770
715
|
passive: !0
|
|
771
|
-
}),
|
|
772
|
-
|
|
716
|
+
}), $(), () => {
|
|
717
|
+
V.removeEventListener("scroll", $);
|
|
773
718
|
};
|
|
774
|
-
}, [C,
|
|
775
|
-
const
|
|
776
|
-
(
|
|
777
|
-
|
|
719
|
+
}, [C, b, n, a]);
|
|
720
|
+
const E = At(
|
|
721
|
+
(V = "auto") => {
|
|
722
|
+
M.current = !0, k.current = !0, u.current && (u.current.scrollTop = u.current.scrollHeight), setTimeout(() => {
|
|
723
|
+
k.current = !1;
|
|
724
|
+
}, 100);
|
|
778
725
|
},
|
|
779
726
|
[]
|
|
780
|
-
),
|
|
781
|
-
(
|
|
782
|
-
|
|
783
|
-
top: C[
|
|
784
|
-
behavior:
|
|
785
|
-
})
|
|
727
|
+
), F = At(
|
|
728
|
+
(V, $ = "smooth") => {
|
|
729
|
+
k.current = !0, u.current && C[V] !== void 0 && u.current.scrollTo({
|
|
730
|
+
top: C[V],
|
|
731
|
+
behavior: $
|
|
732
|
+
}), setTimeout(() => {
|
|
733
|
+
k.current = !1;
|
|
734
|
+
}, 100);
|
|
786
735
|
},
|
|
787
736
|
[C]
|
|
788
|
-
),
|
|
737
|
+
), R = {
|
|
789
738
|
outer: {
|
|
790
739
|
ref: u,
|
|
791
740
|
style: { overflowY: "auto", height: "100%" }
|
|
792
741
|
},
|
|
793
742
|
inner: {
|
|
794
743
|
style: {
|
|
795
|
-
height: `${
|
|
744
|
+
height: `${N}px`,
|
|
796
745
|
position: "relative"
|
|
797
746
|
}
|
|
798
747
|
},
|
|
@@ -802,15 +751,11 @@ function vt(t, c, S, g) {
|
|
|
802
751
|
}
|
|
803
752
|
}
|
|
804
753
|
};
|
|
805
|
-
return
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
virtualState: L,
|
|
811
|
-
virtualizerProps: U,
|
|
812
|
-
scrollToBottom: A,
|
|
813
|
-
scrollToIndex: D
|
|
754
|
+
return {
|
|
755
|
+
virtualState: W,
|
|
756
|
+
virtualizerProps: R,
|
|
757
|
+
scrollToBottom: E,
|
|
758
|
+
scrollToIndex: F
|
|
814
759
|
};
|
|
815
760
|
};
|
|
816
761
|
if (l === "stateSort")
|
|
@@ -844,19 +789,19 @@ function vt(t, c, S, g) {
|
|
|
844
789
|
const u = n[i], p = [...r, i.toString()], T = s(u, p, f);
|
|
845
790
|
return e(u, T, {
|
|
846
791
|
register: () => {
|
|
847
|
-
const [, _] =
|
|
848
|
-
|
|
849
|
-
const M = `${t}////${
|
|
792
|
+
const [, _] = et({}), k = `${S}-${r.join(".")}-${i}`;
|
|
793
|
+
Tt(() => {
|
|
794
|
+
const M = `${t}////${k}`, P = o.getState().stateComponents.get(t) || {
|
|
850
795
|
components: /* @__PURE__ */ new Map()
|
|
851
796
|
};
|
|
852
797
|
return P.components.set(M, {
|
|
853
798
|
forceUpdate: () => _({}),
|
|
854
799
|
paths: /* @__PURE__ */ new Set([p.join(".")])
|
|
855
800
|
}), o.getState().stateComponents.set(t, P), () => {
|
|
856
|
-
const
|
|
857
|
-
|
|
801
|
+
const H = o.getState().stateComponents.get(t);
|
|
802
|
+
H && H.components.delete(M);
|
|
858
803
|
};
|
|
859
|
-
}, [t,
|
|
804
|
+
}, [t, k]);
|
|
860
805
|
},
|
|
861
806
|
index: v,
|
|
862
807
|
originalIndex: i
|
|
@@ -880,7 +825,7 @@ function vt(t, c, S, g) {
|
|
|
880
825
|
);
|
|
881
826
|
});
|
|
882
827
|
if (l === "$stateMap")
|
|
883
|
-
return (e) =>
|
|
828
|
+
return (e) => ct(Yt, {
|
|
884
829
|
proxy: {
|
|
885
830
|
_stateKey: t,
|
|
886
831
|
_path: r,
|
|
@@ -893,11 +838,11 @@ function vt(t, c, S, g) {
|
|
|
893
838
|
return (e) => {
|
|
894
839
|
const n = o.getState().getNestedState(t, r);
|
|
895
840
|
return Array.isArray(n) ? (f?.validIndices || Array.from({ length: n.length }, (i, v) => v)).map((i, v) => {
|
|
896
|
-
const u = n[i], p = [...r, i.toString()], T = s(u, p, f),
|
|
897
|
-
return
|
|
841
|
+
const u = n[i], p = [...r, i.toString()], T = s(u, p, f), A = `${S}-${r.join(".")}-${i}`;
|
|
842
|
+
return ct(Xt, {
|
|
898
843
|
key: i,
|
|
899
844
|
stateKey: t,
|
|
900
|
-
itemComponentId:
|
|
845
|
+
itemComponentId: A,
|
|
901
846
|
itemPath: p,
|
|
902
847
|
children: e(
|
|
903
848
|
u,
|
|
@@ -937,7 +882,7 @@ function vt(t, c, S, g) {
|
|
|
937
882
|
return s(a, i);
|
|
938
883
|
};
|
|
939
884
|
if (l === "insert")
|
|
940
|
-
return (e) => (w(r),
|
|
885
|
+
return (e) => (w(r), vt(c, e, r, t), s(
|
|
941
886
|
o.getState().getNestedState(t, r),
|
|
942
887
|
r
|
|
943
888
|
));
|
|
@@ -948,25 +893,25 @@ function vt(t, c, S, g) {
|
|
|
948
893
|
if (!i.some((T) => {
|
|
949
894
|
if (n) {
|
|
950
895
|
const _ = n.every(
|
|
951
|
-
(
|
|
896
|
+
(k) => J(T[k], v[k])
|
|
952
897
|
);
|
|
953
898
|
return _ && (u = T), _;
|
|
954
899
|
}
|
|
955
|
-
const
|
|
956
|
-
return
|
|
900
|
+
const A = J(T, v);
|
|
901
|
+
return A && (u = T), A;
|
|
957
902
|
}))
|
|
958
|
-
w(r),
|
|
903
|
+
w(r), vt(c, v, r, t);
|
|
959
904
|
else if (a && u) {
|
|
960
|
-
const T = a(u),
|
|
961
|
-
(_) =>
|
|
905
|
+
const T = a(u), A = i.map(
|
|
906
|
+
(_) => J(_, u) ? T : _
|
|
962
907
|
);
|
|
963
|
-
w(r),
|
|
908
|
+
w(r), it(c, A, r);
|
|
964
909
|
}
|
|
965
910
|
};
|
|
966
911
|
if (l === "cut")
|
|
967
912
|
return (e, n) => {
|
|
968
913
|
if (!n?.waitForSync)
|
|
969
|
-
return w(r),
|
|
914
|
+
return w(r), gt(c, r, t, e), s(
|
|
970
915
|
o.getState().getNestedState(t, r),
|
|
971
916
|
r
|
|
972
917
|
);
|
|
@@ -974,12 +919,12 @@ function vt(t, c, S, g) {
|
|
|
974
919
|
if (l === "cutByValue")
|
|
975
920
|
return (e) => {
|
|
976
921
|
for (let n = 0; n < h.length; n++)
|
|
977
|
-
h[n] === e &&
|
|
922
|
+
h[n] === e && gt(c, r, t, n);
|
|
978
923
|
};
|
|
979
924
|
if (l === "toggleByValue")
|
|
980
925
|
return (e) => {
|
|
981
926
|
const n = h.findIndex((a) => a === e);
|
|
982
|
-
n > -1 ?
|
|
927
|
+
n > -1 ? gt(c, r, t, n) : vt(c, e, r, t);
|
|
983
928
|
};
|
|
984
929
|
if (l === "stateFind")
|
|
985
930
|
return (e) => {
|
|
@@ -1004,7 +949,7 @@ function vt(t, c, S, g) {
|
|
|
1004
949
|
if (!isNaN(Number(tt))) {
|
|
1005
950
|
const d = r.slice(0, -1), e = o.getState().getNestedState(t, d);
|
|
1006
951
|
if (Array.isArray(e) && l === "cut")
|
|
1007
|
-
return () =>
|
|
952
|
+
return () => gt(
|
|
1008
953
|
c,
|
|
1009
954
|
d,
|
|
1010
955
|
t,
|
|
@@ -1020,13 +965,13 @@ function vt(t, c, S, g) {
|
|
|
1020
965
|
return o.getState().getNestedState(t, r);
|
|
1021
966
|
};
|
|
1022
967
|
if (l === "$derive")
|
|
1023
|
-
return (d) =>
|
|
968
|
+
return (d) => Vt({
|
|
1024
969
|
_stateKey: t,
|
|
1025
970
|
_path: r,
|
|
1026
971
|
_effect: d.toString()
|
|
1027
972
|
});
|
|
1028
973
|
if (l === "$get")
|
|
1029
|
-
return () =>
|
|
974
|
+
return () => Vt({
|
|
1030
975
|
_stateKey: t,
|
|
1031
976
|
_path: r
|
|
1032
977
|
});
|
|
@@ -1035,7 +980,7 @@ function vt(t, c, S, g) {
|
|
|
1035
980
|
return o.getState().getSyncInfo(d);
|
|
1036
981
|
}
|
|
1037
982
|
if (l == "getLocalStorage")
|
|
1038
|
-
return (d) =>
|
|
983
|
+
return (d) => mt(g + "-" + t + "-" + d);
|
|
1039
984
|
if (l === "_selected") {
|
|
1040
985
|
const d = r.slice(0, -1), e = d.join("."), n = o.getState().getNestedState(t, d);
|
|
1041
986
|
return Array.isArray(n) ? Number(r[r.length - 1]) === o.getState().getSelectedIndex(t, e) : void 0;
|
|
@@ -1045,7 +990,7 @@ function vt(t, c, S, g) {
|
|
|
1045
990
|
const e = r.slice(0, -1), n = Number(r[r.length - 1]), a = e.join(".");
|
|
1046
991
|
d ? o.getState().setSelectedIndex(t, a, n) : o.getState().setSelectedIndex(t, a, void 0);
|
|
1047
992
|
const i = o.getState().getNestedState(t, [...e]);
|
|
1048
|
-
|
|
993
|
+
it(c, i, e), w(e);
|
|
1049
994
|
};
|
|
1050
995
|
if (l === "toggleSelected")
|
|
1051
996
|
return () => {
|
|
@@ -1056,7 +1001,7 @@ function vt(t, c, S, g) {
|
|
|
1056
1001
|
a === e ? void 0 : e
|
|
1057
1002
|
);
|
|
1058
1003
|
const i = o.getState().getNestedState(t, [...d]);
|
|
1059
|
-
|
|
1004
|
+
it(c, i, d), w(d);
|
|
1060
1005
|
};
|
|
1061
1006
|
if (r.length == 0) {
|
|
1062
1007
|
if (l === "addValidation")
|
|
@@ -1064,15 +1009,15 @@ function vt(t, c, S, g) {
|
|
|
1064
1009
|
const e = o.getState().getInitialOptions(t)?.validation;
|
|
1065
1010
|
if (!e?.key)
|
|
1066
1011
|
throw new Error("Validation key not found");
|
|
1067
|
-
|
|
1012
|
+
X(e.key), console.log("addValidationError", d), d.forEach((n) => {
|
|
1068
1013
|
const a = [e.key, ...n.path].join(".");
|
|
1069
|
-
console.log("fullErrorPath", a),
|
|
1070
|
-
}),
|
|
1014
|
+
console.log("fullErrorPath", a), Pt(a, n.message);
|
|
1015
|
+
}), lt(t);
|
|
1071
1016
|
};
|
|
1072
1017
|
if (l === "applyJsonPatch")
|
|
1073
1018
|
return (d) => {
|
|
1074
|
-
const e = o.getState().cogsStateStore[t], a =
|
|
1075
|
-
|
|
1019
|
+
const e = o.getState().cogsStateStore[t], a = Wt(e, d).newDocument;
|
|
1020
|
+
_t(
|
|
1076
1021
|
t,
|
|
1077
1022
|
o.getState().initialStateGlobal[t],
|
|
1078
1023
|
a,
|
|
@@ -1082,57 +1027,57 @@ function vt(t, c, S, g) {
|
|
|
1082
1027
|
);
|
|
1083
1028
|
const i = o.getState().stateComponents.get(t);
|
|
1084
1029
|
if (i) {
|
|
1085
|
-
const v =
|
|
1030
|
+
const v = pt(e, a), u = new Set(v);
|
|
1086
1031
|
for (const [
|
|
1087
1032
|
p,
|
|
1088
1033
|
T
|
|
1089
1034
|
] of i.components.entries()) {
|
|
1090
|
-
let
|
|
1035
|
+
let A = !1;
|
|
1091
1036
|
const _ = Array.isArray(T.reactiveType) ? T.reactiveType : [T.reactiveType || "component"];
|
|
1092
1037
|
if (!_.includes("none")) {
|
|
1093
1038
|
if (_.includes("all")) {
|
|
1094
1039
|
T.forceUpdate();
|
|
1095
1040
|
continue;
|
|
1096
1041
|
}
|
|
1097
|
-
if (_.includes("component") && (T.paths.has("") && (
|
|
1098
|
-
for (const
|
|
1099
|
-
if (T.paths.has(
|
|
1100
|
-
|
|
1042
|
+
if (_.includes("component") && (T.paths.has("") && (A = !0), !A))
|
|
1043
|
+
for (const k of u) {
|
|
1044
|
+
if (T.paths.has(k)) {
|
|
1045
|
+
A = !0;
|
|
1101
1046
|
break;
|
|
1102
1047
|
}
|
|
1103
|
-
let M =
|
|
1048
|
+
let M = k.lastIndexOf(".");
|
|
1104
1049
|
for (; M !== -1; ) {
|
|
1105
|
-
const P =
|
|
1050
|
+
const P = k.substring(0, M);
|
|
1106
1051
|
if (T.paths.has(P)) {
|
|
1107
|
-
|
|
1052
|
+
A = !0;
|
|
1108
1053
|
break;
|
|
1109
1054
|
}
|
|
1110
|
-
const
|
|
1055
|
+
const H = k.substring(
|
|
1111
1056
|
M + 1
|
|
1112
1057
|
);
|
|
1113
|
-
if (!isNaN(Number(
|
|
1114
|
-
const
|
|
1115
|
-
if (
|
|
1116
|
-
const
|
|
1058
|
+
if (!isNaN(Number(H))) {
|
|
1059
|
+
const b = P.lastIndexOf(".");
|
|
1060
|
+
if (b !== -1) {
|
|
1061
|
+
const N = P.substring(
|
|
1117
1062
|
0,
|
|
1118
|
-
|
|
1063
|
+
b
|
|
1119
1064
|
);
|
|
1120
|
-
if (T.paths.has(
|
|
1121
|
-
|
|
1065
|
+
if (T.paths.has(N)) {
|
|
1066
|
+
A = !0;
|
|
1122
1067
|
break;
|
|
1123
1068
|
}
|
|
1124
1069
|
}
|
|
1125
1070
|
}
|
|
1126
1071
|
M = P.lastIndexOf(".");
|
|
1127
1072
|
}
|
|
1128
|
-
if (
|
|
1073
|
+
if (A) break;
|
|
1129
1074
|
}
|
|
1130
|
-
if (!
|
|
1131
|
-
const
|
|
1075
|
+
if (!A && _.includes("deps") && T.depsFunction) {
|
|
1076
|
+
const k = T.depsFunction(a);
|
|
1132
1077
|
let M = !1;
|
|
1133
|
-
typeof
|
|
1078
|
+
typeof k == "boolean" ? k && (M = !0) : J(T.deps, k) || (T.deps = k, M = !0), M && (A = !0);
|
|
1134
1079
|
}
|
|
1135
|
-
|
|
1080
|
+
A && T.forceUpdate();
|
|
1136
1081
|
}
|
|
1137
1082
|
}
|
|
1138
1083
|
}
|
|
@@ -1144,18 +1089,18 @@ function vt(t, c, S, g) {
|
|
|
1144
1089
|
throw new Error("Zod schema not found");
|
|
1145
1090
|
if (!d?.key)
|
|
1146
1091
|
throw new Error("Validation key not found");
|
|
1147
|
-
|
|
1092
|
+
X(d.key);
|
|
1148
1093
|
const n = o.getState().cogsStateStore[t];
|
|
1149
1094
|
try {
|
|
1150
1095
|
const a = o.getState().getValidationErrors(d.key);
|
|
1151
1096
|
a && a.length > 0 && a.forEach(([v]) => {
|
|
1152
|
-
v && v.startsWith(d.key) &&
|
|
1097
|
+
v && v.startsWith(d.key) && X(v);
|
|
1153
1098
|
});
|
|
1154
1099
|
const i = d.zodSchema.safeParse(n);
|
|
1155
1100
|
return i.success ? !0 : (i.error.errors.forEach((u) => {
|
|
1156
|
-
const p = u.path, T = u.message,
|
|
1157
|
-
e(
|
|
1158
|
-
}),
|
|
1101
|
+
const p = u.path, T = u.message, A = [d.key, ...p].join(".");
|
|
1102
|
+
e(A, T);
|
|
1103
|
+
}), lt(t), !1);
|
|
1159
1104
|
} catch (a) {
|
|
1160
1105
|
return console.error("Zod schema validation failed", a), !1;
|
|
1161
1106
|
}
|
|
@@ -1164,7 +1109,7 @@ function vt(t, c, S, g) {
|
|
|
1164
1109
|
if (l === "getComponents")
|
|
1165
1110
|
return () => o().stateComponents.get(t);
|
|
1166
1111
|
if (l === "getAllFormRefs")
|
|
1167
|
-
return () =>
|
|
1112
|
+
return () => kt.getState().getFormRefsByStateKey(t);
|
|
1168
1113
|
if (l === "_initialState")
|
|
1169
1114
|
return o.getState().initialStateGlobal[t];
|
|
1170
1115
|
if (l === "_serverState")
|
|
@@ -1177,13 +1122,13 @@ function vt(t, c, S, g) {
|
|
|
1177
1122
|
if (l === "removeValidation") return I.removeValidation;
|
|
1178
1123
|
}
|
|
1179
1124
|
if (l === "getFormRef")
|
|
1180
|
-
return () =>
|
|
1125
|
+
return () => kt.getState().getFormRef(t + "." + r.join("."));
|
|
1181
1126
|
if (l === "validationWrapper")
|
|
1182
1127
|
return ({
|
|
1183
1128
|
children: d,
|
|
1184
1129
|
hideMessage: e
|
|
1185
|
-
}) => /* @__PURE__ */
|
|
1186
|
-
|
|
1130
|
+
}) => /* @__PURE__ */ yt(
|
|
1131
|
+
Ut,
|
|
1187
1132
|
{
|
|
1188
1133
|
formOpts: e ? { validation: { message: "" } } : void 0,
|
|
1189
1134
|
path: r,
|
|
@@ -1199,21 +1144,21 @@ function vt(t, c, S, g) {
|
|
|
1199
1144
|
if (l === "update")
|
|
1200
1145
|
return (d, e) => {
|
|
1201
1146
|
if (e?.debounce)
|
|
1202
|
-
|
|
1203
|
-
|
|
1147
|
+
Ot(() => {
|
|
1148
|
+
it(c, d, r, "");
|
|
1204
1149
|
const n = o.getState().getNestedState(t, r);
|
|
1205
1150
|
e?.afterUpdate && e.afterUpdate(n);
|
|
1206
1151
|
}, e.debounce);
|
|
1207
1152
|
else {
|
|
1208
|
-
|
|
1153
|
+
it(c, d, r, "");
|
|
1209
1154
|
const n = o.getState().getNestedState(t, r);
|
|
1210
1155
|
e?.afterUpdate && e.afterUpdate(n);
|
|
1211
1156
|
}
|
|
1212
1157
|
w(r);
|
|
1213
1158
|
};
|
|
1214
1159
|
if (l === "formElement")
|
|
1215
|
-
return (d, e) => /* @__PURE__ */
|
|
1216
|
-
|
|
1160
|
+
return (d, e) => /* @__PURE__ */ yt(
|
|
1161
|
+
Ft,
|
|
1217
1162
|
{
|
|
1218
1163
|
setState: c,
|
|
1219
1164
|
stateKey: t,
|
|
@@ -1222,23 +1167,23 @@ function vt(t, c, S, g) {
|
|
|
1222
1167
|
formOpts: e
|
|
1223
1168
|
}
|
|
1224
1169
|
);
|
|
1225
|
-
const
|
|
1226
|
-
return s(st,
|
|
1170
|
+
const j = [...r, l], st = o.getState().getNestedState(t, j);
|
|
1171
|
+
return s(st, j, f);
|
|
1227
1172
|
}
|
|
1228
|
-
},
|
|
1229
|
-
return y.set(
|
|
1230
|
-
proxy:
|
|
1173
|
+
}, B = new Proxy(O, U);
|
|
1174
|
+
return y.set(G, {
|
|
1175
|
+
proxy: B,
|
|
1231
1176
|
stateVersion: x
|
|
1232
|
-
}),
|
|
1177
|
+
}), B;
|
|
1233
1178
|
}
|
|
1234
1179
|
return s(
|
|
1235
1180
|
o.getState().getNestedState(t, [])
|
|
1236
1181
|
);
|
|
1237
1182
|
}
|
|
1238
|
-
function
|
|
1239
|
-
return
|
|
1183
|
+
function Vt(t) {
|
|
1184
|
+
return ct(Zt, { proxy: t });
|
|
1240
1185
|
}
|
|
1241
|
-
function
|
|
1186
|
+
function Yt({
|
|
1242
1187
|
proxy: t,
|
|
1243
1188
|
rebuildStateShape: c
|
|
1244
1189
|
}) {
|
|
@@ -1250,11 +1195,11 @@ function Xt({
|
|
|
1250
1195
|
(y, x, w, I, s) => t._mapFn(y, x, w, I, s)
|
|
1251
1196
|
) : null;
|
|
1252
1197
|
}
|
|
1253
|
-
function
|
|
1198
|
+
function Zt({
|
|
1254
1199
|
proxy: t
|
|
1255
1200
|
}) {
|
|
1256
|
-
const c =
|
|
1257
|
-
return
|
|
1201
|
+
const c = Q(null), S = `${t._stateKey}-${t._path.join(".")}`;
|
|
1202
|
+
return nt(() => {
|
|
1258
1203
|
const g = c.current;
|
|
1259
1204
|
if (!g || !g.parentElement) return;
|
|
1260
1205
|
const y = g.parentElement, w = Array.from(y.childNodes).indexOf(g);
|
|
@@ -1281,16 +1226,16 @@ function Qt({
|
|
|
1281
1226
|
else
|
|
1282
1227
|
f = r;
|
|
1283
1228
|
f !== null && typeof f == "object" && (f = JSON.stringify(f));
|
|
1284
|
-
const
|
|
1285
|
-
g.replaceWith(
|
|
1286
|
-
}, [t._stateKey, t._path.join("."), t._effect]),
|
|
1229
|
+
const G = document.createTextNode(String(f));
|
|
1230
|
+
g.replaceWith(G);
|
|
1231
|
+
}, [t._stateKey, t._path.join("."), t._effect]), ct("span", {
|
|
1287
1232
|
ref: c,
|
|
1288
1233
|
style: { display: "none" },
|
|
1289
1234
|
"data-signal-id": S
|
|
1290
1235
|
});
|
|
1291
1236
|
}
|
|
1292
1237
|
function Se(t) {
|
|
1293
|
-
const c =
|
|
1238
|
+
const c = Mt(
|
|
1294
1239
|
(S) => {
|
|
1295
1240
|
const g = o.getState().stateComponents.get(t._stateKey) || {
|
|
1296
1241
|
components: /* @__PURE__ */ new Map()
|
|
@@ -1302,22 +1247,22 @@ function Se(t) {
|
|
|
1302
1247
|
},
|
|
1303
1248
|
() => o.getState().getNestedState(t._stateKey, t._path)
|
|
1304
1249
|
);
|
|
1305
|
-
return
|
|
1250
|
+
return ct("text", {}, String(c));
|
|
1306
1251
|
}
|
|
1307
|
-
function
|
|
1252
|
+
function Xt({
|
|
1308
1253
|
stateKey: t,
|
|
1309
1254
|
itemComponentId: c,
|
|
1310
1255
|
itemPath: S,
|
|
1311
1256
|
children: g
|
|
1312
1257
|
}) {
|
|
1313
|
-
const [, y] =
|
|
1314
|
-
return
|
|
1258
|
+
const [, y] = et({}), [x, w] = Lt(), I = Q(null);
|
|
1259
|
+
return nt(() => {
|
|
1315
1260
|
w.height > 0 && w.height !== I.current && (I.current = w.height, o.getState().setShadowMetadata(t, S, {
|
|
1316
1261
|
virtualizer: {
|
|
1317
1262
|
itemHeight: w.height
|
|
1318
1263
|
}
|
|
1319
1264
|
}));
|
|
1320
|
-
}, [w.height, t, S]),
|
|
1265
|
+
}, [w.height, t, S]), Tt(() => {
|
|
1321
1266
|
const s = `${t}////${c}`, h = o.getState().stateComponents.get(t) || {
|
|
1322
1267
|
components: /* @__PURE__ */ new Map()
|
|
1323
1268
|
};
|
|
@@ -1328,14 +1273,14 @@ function Kt({
|
|
|
1328
1273
|
const r = o.getState().stateComponents.get(t);
|
|
1329
1274
|
r && r.components.delete(s);
|
|
1330
1275
|
};
|
|
1331
|
-
}, [t, c, S.join(".")]), /* @__PURE__ */
|
|
1276
|
+
}, [t, c, S.join(".")]), /* @__PURE__ */ yt("div", { ref: x, children: g });
|
|
1332
1277
|
}
|
|
1333
1278
|
export {
|
|
1334
|
-
|
|
1279
|
+
Vt as $cogsSignal,
|
|
1335
1280
|
Se as $cogsSignalStore,
|
|
1336
1281
|
ue as addStateOptions,
|
|
1337
1282
|
ge as createCogsState,
|
|
1338
1283
|
fe as notifyComponent,
|
|
1339
|
-
|
|
1284
|
+
Jt as useCogsStateFn
|
|
1340
1285
|
};
|
|
1341
1286
|
//# sourceMappingURL=CogsState.jsx.map
|