cogsbox-state 0.5.404 → 0.5.405
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 +392 -390
- package/dist/CogsState.jsx.map +1 -1
- package/package.json +1 -1
- package/src/CogsState.tsx +11 -3
package/dist/CogsState.jsx
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
3
|
-
import { useState as et, useRef as
|
|
4
|
-
import { transformStateFunc as
|
|
5
|
-
import { pushFunc as
|
|
6
|
-
import
|
|
7
|
-
import { v4 as
|
|
2
|
+
import { jsx as Tt } from "react/jsx-runtime";
|
|
3
|
+
import { useState as et, useRef as K, useEffect as nt, useLayoutEffect as kt, useMemo as Et, createElement as dt, useSyncExternalStore as Ut, startTransition as Ft, useCallback as xt } from "react";
|
|
4
|
+
import { transformStateFunc as Dt, isDeepEqual as Y, isFunction as rt, getNestedValue as Z, getDifferences as $t, debounce as Wt } from "./utility.js";
|
|
5
|
+
import { pushFunc as wt, updateFn as lt, cutFunc as mt, ValidationWrapper as Lt, FormControlComponent as Gt } from "./Functions.jsx";
|
|
6
|
+
import Bt from "superjson";
|
|
7
|
+
import { v4 as At } 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 Vt } from "./store.js";
|
|
10
|
+
import { useCogsConfig as Mt } from "./CogsStateClient.jsx";
|
|
11
|
+
import { applyPatch as Ht } from "fast-json-patch";
|
|
12
|
+
import zt from "react-use-measure";
|
|
13
|
+
function Nt(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 Ct({
|
|
21
21
|
stateKey: t,
|
|
22
22
|
options: c,
|
|
23
23
|
initialOptionsPart: S
|
|
24
24
|
}) {
|
|
25
|
-
const g =
|
|
25
|
+
const g = it(t) || {}, y = S[t] || {}, k = o.getState().setInitialStateOptions, w = { ...y, ...g };
|
|
26
26
|
let I = !1;
|
|
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
|
-
!
|
|
31
|
-
I &&
|
|
30
|
+
!Y(w[s], c[s]) && (I = !0, w[s] = c[s])) : (I = !0, w[s] = c[s]);
|
|
31
|
+
I && k(t, w);
|
|
32
32
|
}
|
|
33
|
-
function
|
|
33
|
+
function fe(t, { formElements: c, validation: S }) {
|
|
34
34
|
return { initialState: t, formElements: c, validation: S };
|
|
35
35
|
}
|
|
36
|
-
const
|
|
36
|
+
const Se = (t, c) => {
|
|
37
37
|
let S = t;
|
|
38
|
-
const [g, y] =
|
|
38
|
+
const [g, y] = Dt(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,
|
|
@@ -43,16 +43,16 @@ const ge = (t, c) => {
|
|
|
43
43
|
...c?.validation,
|
|
44
44
|
...y[I].formElements || {}
|
|
45
45
|
// State-specific overrides
|
|
46
|
-
},
|
|
46
|
+
}, it(I) || o.getState().setInitialStateOptions(I, y[I]);
|
|
47
47
|
}), o.getState().setInitialStates(g), o.getState().setCreatedState(g);
|
|
48
|
-
const
|
|
49
|
-
const [h] = et(s?.componentId ??
|
|
50
|
-
|
|
48
|
+
const k = (I, s) => {
|
|
49
|
+
const [h] = et(s?.componentId ?? At());
|
|
50
|
+
Ct({
|
|
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, [G,
|
|
55
|
+
const r = o.getState().cogsStateStore[I] || g[I], f = s?.modifyState ? s.modifyState(r) : r, [G, O] = Qt(
|
|
56
56
|
f,
|
|
57
57
|
{
|
|
58
58
|
stateKey: I,
|
|
@@ -68,49 +68,49 @@ const ge = (t, c) => {
|
|
|
68
68
|
serverState: s?.serverState
|
|
69
69
|
}
|
|
70
70
|
);
|
|
71
|
-
return
|
|
71
|
+
return O;
|
|
72
72
|
};
|
|
73
73
|
function w(I, s) {
|
|
74
|
-
|
|
74
|
+
Ct({ stateKey: I, options: s, initialOptionsPart: y }), s.localStorage && Zt(I, s), ut(I);
|
|
75
75
|
}
|
|
76
|
-
return { useCogsState:
|
|
76
|
+
return { useCogsState: k, setCogsOptions: w };
|
|
77
77
|
}, {
|
|
78
|
-
setUpdaterState:
|
|
79
|
-
setState:
|
|
80
|
-
getInitialOptions:
|
|
81
|
-
getKeyState:
|
|
82
|
-
getValidationErrors:
|
|
83
|
-
setStateLog:
|
|
84
|
-
updateInitialStateGlobal:
|
|
85
|
-
addValidationError:
|
|
86
|
-
removeValidationError:
|
|
87
|
-
setServerSyncActions:
|
|
88
|
-
} = o.getState(),
|
|
78
|
+
setUpdaterState: ht,
|
|
79
|
+
setState: at,
|
|
80
|
+
getInitialOptions: it,
|
|
81
|
+
getKeyState: jt,
|
|
82
|
+
getValidationErrors: qt,
|
|
83
|
+
setStateLog: Jt,
|
|
84
|
+
updateInitialStateGlobal: bt,
|
|
85
|
+
addValidationError: Rt,
|
|
86
|
+
removeValidationError: Q,
|
|
87
|
+
setServerSyncActions: Yt
|
|
88
|
+
} = o.getState(), Pt = (t, c, S, g, y) => {
|
|
89
89
|
S?.log && console.log(
|
|
90
90
|
"saving to localstorage",
|
|
91
91
|
c,
|
|
92
92
|
S.localStorage?.key,
|
|
93
93
|
g
|
|
94
94
|
);
|
|
95
|
-
const
|
|
96
|
-
if (
|
|
97
|
-
const w = `${g}-${c}-${
|
|
95
|
+
const k = rt(S?.localStorage?.key) ? S.localStorage?.key(t) : S?.localStorage?.key;
|
|
96
|
+
if (k && g) {
|
|
97
|
+
const w = `${g}-${c}-${k}`;
|
|
98
98
|
let I;
|
|
99
99
|
try {
|
|
100
|
-
I =
|
|
100
|
+
I = yt(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 = Bt.serialize(s);
|
|
108
108
|
window.localStorage.setItem(
|
|
109
109
|
w,
|
|
110
110
|
JSON.stringify(h.json)
|
|
111
111
|
);
|
|
112
112
|
}
|
|
113
|
-
},
|
|
113
|
+
}, yt = (t) => {
|
|
114
114
|
if (!t) return null;
|
|
115
115
|
try {
|
|
116
116
|
const c = window.localStorage.getItem(t);
|
|
@@ -118,29 +118,29 @@ 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 } = Mt(), y = rt(c?.localStorage?.key) ? c.localStorage.key(S) : c?.localStorage?.key;
|
|
123
123
|
if (y && g) {
|
|
124
|
-
const
|
|
124
|
+
const k = yt(
|
|
125
125
|
`${g}-${t}-${y}`
|
|
126
126
|
);
|
|
127
|
-
if (
|
|
128
|
-
return
|
|
127
|
+
if (k && k.lastUpdated > (k.lastSyncedWithServer || 0))
|
|
128
|
+
return at(t, k.state), ut(t), !0;
|
|
129
129
|
}
|
|
130
130
|
return !1;
|
|
131
|
-
},
|
|
131
|
+
}, Ot = (t, c, S, g, y, k) => {
|
|
132
132
|
const w = {
|
|
133
133
|
initialState: c,
|
|
134
|
-
updaterState:
|
|
134
|
+
updaterState: vt(
|
|
135
135
|
t,
|
|
136
136
|
g,
|
|
137
137
|
y,
|
|
138
|
-
|
|
138
|
+
k
|
|
139
139
|
),
|
|
140
140
|
state: S
|
|
141
141
|
};
|
|
142
|
-
|
|
143
|
-
},
|
|
142
|
+
bt(t, w.initialState), ht(t, w.updaterState), at(t, w.state);
|
|
143
|
+
}, ut = (t) => {
|
|
144
144
|
const c = o.getState().stateComponents.get(t);
|
|
145
145
|
if (!c) return;
|
|
146
146
|
const S = /* @__PURE__ */ new Set();
|
|
@@ -149,7 +149,7 @@ const ge = (t, c) => {
|
|
|
149
149
|
}), queueMicrotask(() => {
|
|
150
150
|
S.forEach((g) => g());
|
|
151
151
|
});
|
|
152
|
-
},
|
|
152
|
+
}, me = (t, c) => {
|
|
153
153
|
const S = o.getState().stateComponents.get(t);
|
|
154
154
|
if (S) {
|
|
155
155
|
const g = `${t}////${c}`, y = S.components.get(g);
|
|
@@ -157,22 +157,22 @@ const ge = (t, c) => {
|
|
|
157
157
|
return;
|
|
158
158
|
y && y.forceUpdate();
|
|
159
159
|
}
|
|
160
|
-
},
|
|
160
|
+
}, Xt = (t, c, S, g) => {
|
|
161
161
|
switch (t) {
|
|
162
162
|
case "update":
|
|
163
163
|
return {
|
|
164
|
-
oldValue:
|
|
165
|
-
newValue:
|
|
164
|
+
oldValue: Z(c, g),
|
|
165
|
+
newValue: Z(S, g)
|
|
166
166
|
};
|
|
167
167
|
case "insert":
|
|
168
168
|
return {
|
|
169
169
|
oldValue: null,
|
|
170
170
|
// or undefined
|
|
171
|
-
newValue:
|
|
171
|
+
newValue: Z(S, g)
|
|
172
172
|
};
|
|
173
173
|
case "cut":
|
|
174
174
|
return {
|
|
175
|
-
oldValue:
|
|
175
|
+
oldValue: Z(c, g),
|
|
176
176
|
newValue: null
|
|
177
177
|
// or undefined
|
|
178
178
|
};
|
|
@@ -180,12 +180,12 @@ const ge = (t, c) => {
|
|
|
180
180
|
return { oldValue: null, newValue: null };
|
|
181
181
|
}
|
|
182
182
|
};
|
|
183
|
-
function
|
|
183
|
+
function Qt(t, {
|
|
184
184
|
stateKey: c,
|
|
185
185
|
serverSync: S,
|
|
186
186
|
localStorage: g,
|
|
187
187
|
formElements: y,
|
|
188
|
-
reactiveDeps:
|
|
188
|
+
reactiveDeps: k,
|
|
189
189
|
reactiveType: w,
|
|
190
190
|
componentId: I,
|
|
191
191
|
initialState: s,
|
|
@@ -193,14 +193,14 @@ function Zt(t, {
|
|
|
193
193
|
dependencies: r,
|
|
194
194
|
serverState: f
|
|
195
195
|
} = {}) {
|
|
196
|
-
const [G,
|
|
196
|
+
const [G, O] = et({}), { sessionId: U } = Mt();
|
|
197
197
|
let B = !c;
|
|
198
|
-
const [m] = et(c ??
|
|
198
|
+
const [m] = et(c ?? At()), l = o.getState().stateLog[m], gt = K(/* @__PURE__ */ new Set()), ot = K(I ?? At()), j = K(
|
|
199
199
|
null
|
|
200
200
|
);
|
|
201
|
-
j.current =
|
|
201
|
+
j.current = it(m) ?? null, nt(() => {
|
|
202
202
|
if (h && h.stateKey === m && h.path?.[0]) {
|
|
203
|
-
|
|
203
|
+
at(m, (n) => ({
|
|
204
204
|
...n,
|
|
205
205
|
[h.path[0]]: h.newValue
|
|
206
206
|
}));
|
|
@@ -212,261 +212,261 @@ function Zt(t, {
|
|
|
212
212
|
}
|
|
213
213
|
}, [h]), nt(() => {
|
|
214
214
|
if (s) {
|
|
215
|
-
|
|
215
|
+
Nt(m, {
|
|
216
216
|
initialState: s
|
|
217
217
|
});
|
|
218
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 && !
|
|
219
|
+
if (!(i && !Y(i, s) || !i) && !a)
|
|
220
220
|
return;
|
|
221
221
|
let u = null;
|
|
222
|
-
const p =
|
|
223
|
-
p &&
|
|
224
|
-
let T = s,
|
|
225
|
-
const
|
|
226
|
-
a &&
|
|
222
|
+
const p = rt(e?.localStorage?.key) ? e?.localStorage?.key(s) : e?.localStorage?.key;
|
|
223
|
+
p && U && (u = yt(`${U}-${m}-${p}`));
|
|
224
|
+
let T = s, $ = !1;
|
|
225
|
+
const P = a ? Date.now() : 0, V = u?.lastUpdated || 0, _ = u?.lastSyncedWithServer || 0;
|
|
226
|
+
a && P > V ? (T = e.serverState.data, $ = !0) : u && V > _ && (T = u.state, e?.localStorage?.onChange && e?.localStorage?.onChange(T)), o.getState().initializeShadowState(m, s), Ot(
|
|
227
227
|
m,
|
|
228
228
|
s,
|
|
229
229
|
T,
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
),
|
|
230
|
+
ct,
|
|
231
|
+
ot.current,
|
|
232
|
+
U
|
|
233
|
+
), $ && p && U && Pt(T, m, e, U, Date.now()), ut(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
|
-
B &&
|
|
240
|
+
]), kt(() => {
|
|
241
|
+
B && Nt(m, {
|
|
242
242
|
serverSync: S,
|
|
243
243
|
formElements: y,
|
|
244
244
|
initialState: s,
|
|
245
245
|
localStorage: g,
|
|
246
246
|
middleware: j.current?.middleware
|
|
247
247
|
});
|
|
248
|
-
const e = `${m}////${
|
|
248
|
+
const e = `${m}////${ot.current}`, n = o.getState().stateComponents.get(m) || {
|
|
249
249
|
components: /* @__PURE__ */ new Map()
|
|
250
250
|
};
|
|
251
251
|
return n.components.set(e, {
|
|
252
|
-
forceUpdate: () =>
|
|
252
|
+
forceUpdate: () => O({}),
|
|
253
253
|
paths: /* @__PURE__ */ new Set(),
|
|
254
254
|
deps: [],
|
|
255
|
-
depsFunction:
|
|
255
|
+
depsFunction: k || void 0,
|
|
256
256
|
reactiveType: w ?? ["component", "deps"]
|
|
257
|
-
}), o.getState().stateComponents.set(m, n),
|
|
257
|
+
}), o.getState().stateComponents.set(m, n), O({}), () => {
|
|
258
258
|
n && (n.components.delete(e), n.components.size === 0 && o.getState().stateComponents.delete(m));
|
|
259
259
|
};
|
|
260
260
|
}, []);
|
|
261
|
-
const
|
|
261
|
+
const ct = (e, n, a, i) => {
|
|
262
262
|
if (Array.isArray(n)) {
|
|
263
263
|
const u = `${m}-${n.join(".")}`;
|
|
264
|
-
|
|
264
|
+
gt.current.add(u);
|
|
265
265
|
}
|
|
266
266
|
const v = o.getState();
|
|
267
|
-
|
|
268
|
-
const p =
|
|
267
|
+
at(m, (u) => {
|
|
268
|
+
const p = rt(e) ? e(u) : e, T = `${m}-${n.join(".")}`;
|
|
269
269
|
if (T) {
|
|
270
|
-
let
|
|
271
|
-
if ((!
|
|
272
|
-
const
|
|
273
|
-
if (Array.isArray(
|
|
274
|
-
|
|
275
|
-
const E = `${m}-${
|
|
276
|
-
|
|
270
|
+
let A = !1, b = v.signalDomElements.get(T);
|
|
271
|
+
if ((!b || b.size === 0) && (a.updateType === "insert" || a.updateType === "cut")) {
|
|
272
|
+
const x = n.slice(0, -1), W = Z(p, x);
|
|
273
|
+
if (Array.isArray(W)) {
|
|
274
|
+
A = !0;
|
|
275
|
+
const E = `${m}-${x.join(".")}`;
|
|
276
|
+
b = v.signalDomElements.get(E);
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
-
if (
|
|
280
|
-
const
|
|
281
|
-
|
|
279
|
+
if (b) {
|
|
280
|
+
const x = A ? Z(p, n.slice(0, -1)) : Z(p, n);
|
|
281
|
+
b.forEach(({ parentId: W, position: E, effect: F }) => {
|
|
282
282
|
const R = document.querySelector(
|
|
283
|
-
`[data-parent-id="${
|
|
283
|
+
`[data-parent-id="${W}"]`
|
|
284
284
|
);
|
|
285
285
|
if (R) {
|
|
286
|
-
const
|
|
287
|
-
if (
|
|
288
|
-
const
|
|
289
|
-
|
|
286
|
+
const q = Array.from(R.childNodes);
|
|
287
|
+
if (q[E]) {
|
|
288
|
+
const D = F ? new Function("state", `return (${F})(state)`)(x) : x;
|
|
289
|
+
q[E].textContent = String(D);
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
292
|
});
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
|
-
console.log("shadowState", v.shadowStateStore), a.updateType === "update" && (i || j.current?.validation?.key) && n &&
|
|
295
|
+
console.log("shadowState", v.shadowStateStore), a.updateType === "update" && (i || j.current?.validation?.key) && n && Q(
|
|
296
296
|
(i || j.current?.validation?.key) + "." + n.join(".")
|
|
297
297
|
);
|
|
298
|
-
const
|
|
299
|
-
a.updateType === "cut" && j.current?.validation?.key &&
|
|
300
|
-
j.current?.validation?.key + "." +
|
|
301
|
-
), a.updateType === "insert" && j.current?.validation?.key &&
|
|
302
|
-
j.current?.validation?.key + "." +
|
|
303
|
-
).filter(([
|
|
304
|
-
let
|
|
305
|
-
if (
|
|
306
|
-
let E =
|
|
307
|
-
|
|
298
|
+
const $ = n.slice(0, n.length - 1);
|
|
299
|
+
a.updateType === "cut" && j.current?.validation?.key && Q(
|
|
300
|
+
j.current?.validation?.key + "." + $.join(".")
|
|
301
|
+
), a.updateType === "insert" && j.current?.validation?.key && qt(
|
|
302
|
+
j.current?.validation?.key + "." + $.join(".")
|
|
303
|
+
).filter(([b, x]) => {
|
|
304
|
+
let W = b?.split(".").length;
|
|
305
|
+
if (b == $.join(".") && W == $.length - 1) {
|
|
306
|
+
let E = b + "." + $;
|
|
307
|
+
Q(b), Rt(E, x);
|
|
308
308
|
}
|
|
309
309
|
});
|
|
310
|
-
const
|
|
311
|
-
if (console.log("stateEntry >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>",
|
|
312
|
-
const
|
|
310
|
+
const P = v.stateComponents.get(m);
|
|
311
|
+
if (console.log("stateEntry >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", P), P) {
|
|
312
|
+
const A = $t(u, p), b = new Set(A), x = a.updateType === "update" ? n.join(".") : n.slice(0, -1).join(".") || "";
|
|
313
313
|
for (const [
|
|
314
|
-
|
|
314
|
+
W,
|
|
315
315
|
E
|
|
316
|
-
] of
|
|
317
|
-
let
|
|
316
|
+
] of P.components.entries()) {
|
|
317
|
+
let F = !1;
|
|
318
318
|
const R = Array.isArray(E.reactiveType) ? E.reactiveType : [E.reactiveType || "component"];
|
|
319
319
|
if (console.log("component", E), !R.includes("none")) {
|
|
320
320
|
if (R.includes("all")) {
|
|
321
321
|
E.forceUpdate();
|
|
322
322
|
continue;
|
|
323
323
|
}
|
|
324
|
-
if (R.includes("component") && ((E.paths.has(
|
|
325
|
-
for (const
|
|
326
|
-
let
|
|
324
|
+
if (R.includes("component") && ((E.paths.has(x) || E.paths.has("")) && (F = !0), !F))
|
|
325
|
+
for (const q of b) {
|
|
326
|
+
let D = q;
|
|
327
327
|
for (; ; ) {
|
|
328
|
-
if (E.paths.has(
|
|
329
|
-
|
|
328
|
+
if (E.paths.has(D)) {
|
|
329
|
+
F = !0;
|
|
330
330
|
break;
|
|
331
331
|
}
|
|
332
|
-
const
|
|
333
|
-
if (
|
|
334
|
-
const
|
|
332
|
+
const C = D.lastIndexOf(".");
|
|
333
|
+
if (C !== -1) {
|
|
334
|
+
const M = D.substring(
|
|
335
335
|
0,
|
|
336
|
-
|
|
336
|
+
C
|
|
337
337
|
);
|
|
338
338
|
if (!isNaN(
|
|
339
|
-
Number(
|
|
340
|
-
) && E.paths.has(
|
|
341
|
-
|
|
339
|
+
Number(D.substring(C + 1))
|
|
340
|
+
) && E.paths.has(M)) {
|
|
341
|
+
F = !0;
|
|
342
342
|
break;
|
|
343
343
|
}
|
|
344
|
-
|
|
344
|
+
D = M;
|
|
345
345
|
} else
|
|
346
|
-
|
|
347
|
-
if (
|
|
346
|
+
D = "";
|
|
347
|
+
if (D === "")
|
|
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 q = E.depsFunction(p);
|
|
354
|
+
let D = !1;
|
|
355
|
+
typeof q == "boolean" ? q && (D = !0) : Y(E.deps, q) || (E.deps = q, D = !0), D && (F = !0);
|
|
356
356
|
}
|
|
357
|
-
|
|
357
|
+
F && E.forceUpdate();
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
360
|
}
|
|
361
|
-
const
|
|
362
|
-
n = n.map((
|
|
363
|
-
const
|
|
364
|
-
return
|
|
361
|
+
const V = Date.now();
|
|
362
|
+
n = n.map((A, b) => {
|
|
363
|
+
const x = n.slice(0, -1), W = Z(p, x);
|
|
364
|
+
return b === n.length - 1 && ["insert", "cut"].includes(a.updateType) ? (W.length - 1).toString() : A;
|
|
365
365
|
});
|
|
366
|
-
const { oldValue:
|
|
366
|
+
const { oldValue: _, newValue: N } = Xt(
|
|
367
367
|
a.updateType,
|
|
368
368
|
u,
|
|
369
369
|
p,
|
|
370
370
|
n
|
|
371
371
|
), z = {
|
|
372
|
-
timeStamp:
|
|
372
|
+
timeStamp: V,
|
|
373
373
|
stateKey: m,
|
|
374
374
|
path: n,
|
|
375
375
|
updateType: a.updateType,
|
|
376
376
|
status: "new",
|
|
377
|
-
oldValue:
|
|
378
|
-
newValue:
|
|
377
|
+
oldValue: _,
|
|
378
|
+
newValue: N
|
|
379
379
|
};
|
|
380
380
|
switch (a.updateType) {
|
|
381
381
|
case "update":
|
|
382
382
|
v.updateShadowAtPath(m, n, p);
|
|
383
383
|
break;
|
|
384
384
|
case "insert":
|
|
385
|
-
const
|
|
386
|
-
v.insertShadowArrayElement(m,
|
|
385
|
+
const A = n.slice(0, -1);
|
|
386
|
+
v.insertShadowArrayElement(m, A, N);
|
|
387
387
|
break;
|
|
388
388
|
case "cut":
|
|
389
|
-
const
|
|
390
|
-
v.removeShadowArrayElement(m,
|
|
389
|
+
const b = n.slice(0, -1), x = parseInt(n[n.length - 1]);
|
|
390
|
+
v.removeShadowArrayElement(m, b, x);
|
|
391
391
|
break;
|
|
392
392
|
}
|
|
393
|
-
if (
|
|
394
|
-
const
|
|
395
|
-
const
|
|
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) :
|
|
393
|
+
if (Jt(m, (A) => {
|
|
394
|
+
const x = [...A ?? [], z].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
|
-
return Array.from(
|
|
399
|
-
}),
|
|
398
|
+
return Array.from(x.values());
|
|
399
|
+
}), Pt(
|
|
400
400
|
p,
|
|
401
401
|
m,
|
|
402
402
|
j.current,
|
|
403
|
-
|
|
403
|
+
U
|
|
404
404
|
), j.current?.middleware && j.current.middleware({
|
|
405
405
|
updateLog: l,
|
|
406
406
|
update: z
|
|
407
407
|
}), j.current?.serverSync) {
|
|
408
|
-
const
|
|
409
|
-
|
|
410
|
-
syncKey: typeof
|
|
411
|
-
rollBackState:
|
|
412
|
-
actionTimeStamp: Date.now() + (
|
|
408
|
+
const A = v.serverState[m], b = j.current?.serverSync;
|
|
409
|
+
Yt(m, {
|
|
410
|
+
syncKey: typeof b.syncKey == "string" ? b.syncKey : b.syncKey({ state: p }),
|
|
411
|
+
rollBackState: A,
|
|
412
|
+
actionTimeStamp: Date.now() + (b.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] || (ht(
|
|
420
420
|
m,
|
|
421
|
-
|
|
421
|
+
vt(
|
|
422
422
|
m,
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
423
|
+
ct,
|
|
424
|
+
ot.current,
|
|
425
|
+
U
|
|
426
426
|
)
|
|
427
|
-
), o.getState().cogsStateStore[m] ||
|
|
428
|
-
const d =
|
|
427
|
+
), o.getState().cogsStateStore[m] || at(m, t), o.getState().initialStateGlobal[m] || bt(m, t));
|
|
428
|
+
const d = Et(() => vt(
|
|
429
429
|
m,
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
), [m,
|
|
434
|
-
return [
|
|
430
|
+
ct,
|
|
431
|
+
ot.current,
|
|
432
|
+
U
|
|
433
|
+
), [m, U]);
|
|
434
|
+
return [jt(m), d];
|
|
435
435
|
}
|
|
436
|
-
function
|
|
436
|
+
function vt(t, c, S, g) {
|
|
437
437
|
const y = /* @__PURE__ */ new Map();
|
|
438
|
-
let
|
|
438
|
+
let k = 0;
|
|
439
439
|
const w = (h) => {
|
|
440
440
|
const r = h.join(".");
|
|
441
441
|
for (const [f] of y)
|
|
442
442
|
(f === r || f.startsWith(r + ".")) && y.delete(f);
|
|
443
|
-
|
|
443
|
+
k++;
|
|
444
444
|
}, I = {
|
|
445
445
|
removeValidation: (h) => {
|
|
446
|
-
h?.validationKey &&
|
|
446
|
+
h?.validationKey && Q(h.validationKey);
|
|
447
447
|
},
|
|
448
448
|
revertToInitialState: (h) => {
|
|
449
449
|
const r = o.getState().getInitialOptions(t)?.validation;
|
|
450
|
-
r?.key &&
|
|
450
|
+
r?.key && Q(r?.key), h?.validationKey && Q(h.validationKey);
|
|
451
451
|
const f = o.getState().initialStateGlobal[t];
|
|
452
|
-
o.getState().clearSelectedIndexesForState(t), y.clear(),
|
|
453
|
-
const G = s(f, []),
|
|
454
|
-
B && localStorage.removeItem(B),
|
|
452
|
+
o.getState().clearSelectedIndexesForState(t), y.clear(), k++;
|
|
453
|
+
const G = s(f, []), O = it(t), U = rt(O?.localStorage?.key) ? O?.localStorage?.key(f) : O?.localStorage?.key, B = `${g}-${t}-${U}`;
|
|
454
|
+
B && localStorage.removeItem(B), ht(t, G), at(t, f);
|
|
455
455
|
const m = o.getState().stateComponents.get(t);
|
|
456
456
|
return m && m.components.forEach((l) => {
|
|
457
457
|
l.forceUpdate();
|
|
458
458
|
}), f;
|
|
459
459
|
},
|
|
460
460
|
updateInitialState: (h) => {
|
|
461
|
-
y.clear(),
|
|
462
|
-
const r =
|
|
461
|
+
y.clear(), k++;
|
|
462
|
+
const r = vt(
|
|
463
463
|
t,
|
|
464
464
|
c,
|
|
465
465
|
S,
|
|
466
466
|
g
|
|
467
|
-
), f = o.getState().initialStateGlobal[t], G =
|
|
468
|
-
return localStorage.getItem(
|
|
469
|
-
|
|
467
|
+
), f = o.getState().initialStateGlobal[t], G = it(t), O = rt(G?.localStorage?.key) ? G?.localStorage?.key(f) : G?.localStorage?.key, U = `${g}-${t}-${O}`;
|
|
468
|
+
return localStorage.getItem(U) && localStorage.removeItem(U), Ft(() => {
|
|
469
|
+
bt(t, h), o.getState().initializeShadowState(t, h), ht(t, r), at(t, h);
|
|
470
470
|
const B = o.getState().stateComponents.get(t);
|
|
471
471
|
B && B.components.forEach((m) => {
|
|
472
472
|
m.forceUpdate();
|
|
@@ -480,27 +480,27 @@ function mt(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 && Y(h, jt(t)));
|
|
484
484
|
}
|
|
485
485
|
};
|
|
486
486
|
function s(h, r = [], f) {
|
|
487
487
|
const G = r.map(String).join(".");
|
|
488
488
|
y.get(G);
|
|
489
|
-
const
|
|
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, gt) {
|
|
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 gt = /* @__PURE__ */ new Set([
|
|
504
504
|
"insert",
|
|
505
505
|
"cut",
|
|
506
506
|
"cutByValue",
|
|
@@ -523,7 +523,7 @@ function mt(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" && !gt.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 mt(t, c, S, g) {
|
|
|
540
540
|
}
|
|
541
541
|
}
|
|
542
542
|
if (l === "getDifferences")
|
|
543
|
-
return () =>
|
|
543
|
+
return () => $t(
|
|
544
544
|
o.getState().cogsStateStore[t],
|
|
545
545
|
o.getState().initialStateGlobal[t]
|
|
546
546
|
);
|
|
@@ -568,20 +568,20 @@ function mt(t, c, S, g) {
|
|
|
568
568
|
}
|
|
569
569
|
};
|
|
570
570
|
if (l === "_status") {
|
|
571
|
-
const d = o.getState().getNestedState(t, r), e = o.getState().initialStateGlobal[t], n =
|
|
572
|
-
return
|
|
571
|
+
const d = o.getState().getNestedState(t, r), e = o.getState().initialStateGlobal[t], n = Z(e, r);
|
|
572
|
+
return Y(d, n) ? "fresh" : "stale";
|
|
573
573
|
}
|
|
574
574
|
if (l === "getStatus")
|
|
575
575
|
return function() {
|
|
576
576
|
const d = o().getNestedState(
|
|
577
577
|
t,
|
|
578
578
|
r
|
|
579
|
-
), e = o.getState().initialStateGlobal[t], n =
|
|
580
|
-
return
|
|
579
|
+
), e = o.getState().initialStateGlobal[t], n = Z(e, r);
|
|
580
|
+
return Y(d, n) ? "fresh" : "stale";
|
|
581
581
|
};
|
|
582
582
|
if (l === "removeStorage")
|
|
583
583
|
return () => {
|
|
584
|
-
const d = o.getState().initialStateGlobal[t], e =
|
|
584
|
+
const d = o.getState().initialStateGlobal[t], e = it(t), n = rt(e?.localStorage?.key) ? e?.localStorage?.key(d) : e?.localStorage?.key, a = `${g}-${t}-${n}`;
|
|
585
585
|
a && localStorage.removeItem(a);
|
|
586
586
|
};
|
|
587
587
|
if (l === "showValidationErrors")
|
|
@@ -622,133 +622,135 @@ function mt(t, c, S, g) {
|
|
|
622
622
|
overscan: a = 6,
|
|
623
623
|
stickToBottom: i = !1,
|
|
624
624
|
dependencies: v = []
|
|
625
|
-
} = e, u =
|
|
625
|
+
} = e, u = K(null), [p, T] = et({
|
|
626
626
|
startIndex: 0,
|
|
627
627
|
endIndex: 10
|
|
628
|
-
}), [
|
|
628
|
+
}), [$, P] = et(0), V = K(!1), _ = K(!0), N = K(
|
|
629
629
|
null
|
|
630
630
|
);
|
|
631
631
|
nt(() => o.getState().subscribeToShadowState(t, () => {
|
|
632
|
-
|
|
632
|
+
P((M) => M + 1);
|
|
633
633
|
}), [t]);
|
|
634
634
|
const z = o().getNestedState(
|
|
635
635
|
t,
|
|
636
636
|
r
|
|
637
|
-
),
|
|
638
|
-
const
|
|
639
|
-
let
|
|
640
|
-
const
|
|
641
|
-
for (let
|
|
642
|
-
|
|
643
|
-
const
|
|
644
|
-
|
|
637
|
+
), A = z.length, { totalHeight: b, positions: x } = Et(() => {
|
|
638
|
+
const C = o.getState().getShadowMetadata(t, r) || [];
|
|
639
|
+
let M = 0;
|
|
640
|
+
const J = [];
|
|
641
|
+
for (let L = 0; L < A; L++) {
|
|
642
|
+
J[L] = M;
|
|
643
|
+
const tt = C[L]?.virtualizer?.itemHeight;
|
|
644
|
+
M += tt || n;
|
|
645
645
|
}
|
|
646
|
-
return { totalHeight:
|
|
646
|
+
return { totalHeight: M, positions: J };
|
|
647
647
|
}, [
|
|
648
|
-
|
|
648
|
+
A,
|
|
649
649
|
t,
|
|
650
650
|
r.join("."),
|
|
651
651
|
n,
|
|
652
|
-
|
|
653
|
-
]),
|
|
654
|
-
const
|
|
655
|
-
{ length:
|
|
656
|
-
(
|
|
657
|
-
),
|
|
658
|
-
return s(
|
|
652
|
+
$
|
|
653
|
+
]), W = Et(() => {
|
|
654
|
+
const C = Math.max(0, p.startIndex), M = Math.min(A, p.endIndex), J = Array.from(
|
|
655
|
+
{ length: M - C },
|
|
656
|
+
(tt, X) => C + X
|
|
657
|
+
), L = J.map((tt) => z[tt]);
|
|
658
|
+
return s(L, r, {
|
|
659
659
|
...f,
|
|
660
|
-
validIndices:
|
|
660
|
+
validIndices: J
|
|
661
661
|
});
|
|
662
|
-
}, [p.startIndex, p.endIndex, z,
|
|
662
|
+
}, [p.startIndex, p.endIndex, z, A]), [E, F] = et(!1);
|
|
663
663
|
nt(() => {
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
664
|
+
F(!0);
|
|
665
|
+
}, []), nt(() => {
|
|
666
|
+
if (!i || !u.current || A === 0 || !_.current && E) return;
|
|
667
|
+
N.current && clearInterval(N.current);
|
|
668
|
+
const C = 50, M = p.endIndex < C, J = A > p.endIndex + C;
|
|
669
|
+
(M || J) && T({
|
|
670
|
+
startIndex: Math.max(0, A - 20),
|
|
671
|
+
endIndex: A
|
|
670
672
|
});
|
|
671
|
-
let
|
|
672
|
-
const
|
|
673
|
-
return
|
|
674
|
-
const
|
|
675
|
-
if (!
|
|
676
|
-
|
|
677
|
-
const { scrollTop:
|
|
673
|
+
let L = 0;
|
|
674
|
+
const tt = 50;
|
|
675
|
+
return N.current = setInterval(() => {
|
|
676
|
+
const X = u.current;
|
|
677
|
+
if (!X) return;
|
|
678
|
+
L++;
|
|
679
|
+
const { scrollTop: It, scrollHeight: st, clientHeight: ft } = X, St = It + ft, H = st, pt = H - St < 5;
|
|
678
680
|
console.log(
|
|
679
|
-
`Scroll attempt ${
|
|
680
|
-
),
|
|
681
|
-
|
|
682
|
-
)) :
|
|
681
|
+
`Scroll attempt ${L}: currentBottom=${St}, actualBottom=${H}, isAtBottom=${pt}, hasMounted=${E}`
|
|
682
|
+
), pt || L >= tt ? (clearInterval(N.current), N.current = null, console.log(
|
|
683
|
+
pt ? "Reached bottom!" : "Timeout - giving up"
|
|
684
|
+
)) : X.scrollTop = X.scrollHeight;
|
|
683
685
|
}, 100), () => {
|
|
684
|
-
|
|
686
|
+
N.current && (clearInterval(N.current), N.current = null);
|
|
685
687
|
};
|
|
686
|
-
}, [
|
|
687
|
-
const
|
|
688
|
-
if (!
|
|
689
|
-
let
|
|
690
|
-
const
|
|
691
|
-
|
|
692
|
-
const { scrollTop:
|
|
693
|
-
|
|
694
|
-
|
|
688
|
+
}, [A, i, E]), nt(() => {
|
|
689
|
+
const C = u.current;
|
|
690
|
+
if (!C) return;
|
|
691
|
+
let M;
|
|
692
|
+
const J = () => {
|
|
693
|
+
N.current && (clearInterval(N.current), N.current = null);
|
|
694
|
+
const { scrollTop: L, scrollHeight: tt, clientHeight: X } = C, It = tt - L - X < 10;
|
|
695
|
+
_.current = It, clearTimeout(M), V.current = !0, M = setTimeout(() => {
|
|
696
|
+
V.current = !1;
|
|
695
697
|
}, 150);
|
|
696
|
-
let
|
|
697
|
-
for (let H = 0; H <
|
|
698
|
-
if (
|
|
699
|
-
|
|
698
|
+
let st = 0;
|
|
699
|
+
for (let H = 0; H < x.length; H++)
|
|
700
|
+
if (x[H] > L - n * a) {
|
|
701
|
+
st = Math.max(0, H - 1);
|
|
700
702
|
break;
|
|
701
703
|
}
|
|
702
|
-
let
|
|
703
|
-
const
|
|
704
|
-
for (let H =
|
|
705
|
-
|
|
704
|
+
let ft = st;
|
|
705
|
+
const St = L + X;
|
|
706
|
+
for (let H = st; H < x.length && !(x[H] > St + n * a); H++)
|
|
707
|
+
ft = H;
|
|
706
708
|
T({
|
|
707
|
-
startIndex: Math.max(0,
|
|
708
|
-
endIndex: Math.min(
|
|
709
|
+
startIndex: Math.max(0, st),
|
|
710
|
+
endIndex: Math.min(A, ft + 1 + a)
|
|
709
711
|
});
|
|
710
712
|
};
|
|
711
|
-
return
|
|
713
|
+
return C.addEventListener("scroll", J, {
|
|
712
714
|
passive: !0
|
|
713
|
-
}),
|
|
714
|
-
|
|
715
|
+
}), J(), () => {
|
|
716
|
+
C.removeEventListener("scroll", J), clearTimeout(M);
|
|
715
717
|
};
|
|
716
|
-
}, [
|
|
717
|
-
const
|
|
718
|
-
(
|
|
719
|
-
|
|
718
|
+
}, [x, A, n, a]);
|
|
719
|
+
const R = xt(
|
|
720
|
+
(C = "auto") => {
|
|
721
|
+
_.current = !0, u.current && (u.current.scrollTop = u.current.scrollHeight);
|
|
720
722
|
},
|
|
721
723
|
[]
|
|
722
|
-
),
|
|
723
|
-
(
|
|
724
|
-
u.current &&
|
|
725
|
-
top:
|
|
726
|
-
behavior:
|
|
724
|
+
), q = xt(
|
|
725
|
+
(C, M = "smooth") => {
|
|
726
|
+
u.current && x[C] !== void 0 && u.current.scrollTo({
|
|
727
|
+
top: x[C],
|
|
728
|
+
behavior: M
|
|
727
729
|
});
|
|
728
730
|
},
|
|
729
|
-
[
|
|
730
|
-
),
|
|
731
|
+
[x]
|
|
732
|
+
), D = {
|
|
731
733
|
outer: {
|
|
732
734
|
ref: u,
|
|
733
735
|
style: { overflowY: "auto", height: "100%" }
|
|
734
736
|
},
|
|
735
737
|
inner: {
|
|
736
738
|
style: {
|
|
737
|
-
height: `${
|
|
739
|
+
height: `${b}px`,
|
|
738
740
|
position: "relative"
|
|
739
741
|
}
|
|
740
742
|
},
|
|
741
743
|
list: {
|
|
742
744
|
style: {
|
|
743
|
-
transform: `translateY(${
|
|
745
|
+
transform: `translateY(${x[p.startIndex] || 0}px)`
|
|
744
746
|
}
|
|
745
747
|
}
|
|
746
748
|
};
|
|
747
749
|
return {
|
|
748
|
-
virtualState:
|
|
749
|
-
virtualizerProps:
|
|
750
|
-
scrollToBottom:
|
|
751
|
-
scrollToIndex:
|
|
750
|
+
virtualState: W,
|
|
751
|
+
virtualizerProps: D,
|
|
752
|
+
scrollToBottom: R,
|
|
753
|
+
scrollToIndex: q
|
|
752
754
|
};
|
|
753
755
|
};
|
|
754
756
|
if (l === "stateSort")
|
|
@@ -782,19 +784,19 @@ function mt(t, c, S, g) {
|
|
|
782
784
|
const u = n[i], p = [...r, i.toString()], T = s(u, p, f);
|
|
783
785
|
return e(u, T, {
|
|
784
786
|
register: () => {
|
|
785
|
-
const [,
|
|
786
|
-
|
|
787
|
-
const
|
|
787
|
+
const [, P] = et({}), V = `${S}-${r.join(".")}-${i}`;
|
|
788
|
+
kt(() => {
|
|
789
|
+
const _ = `${t}////${V}`, N = o.getState().stateComponents.get(t) || {
|
|
788
790
|
components: /* @__PURE__ */ new Map()
|
|
789
791
|
};
|
|
790
|
-
return
|
|
791
|
-
forceUpdate: () =>
|
|
792
|
+
return N.components.set(_, {
|
|
793
|
+
forceUpdate: () => P({}),
|
|
792
794
|
paths: /* @__PURE__ */ new Set([p.join(".")])
|
|
793
|
-
}), o.getState().stateComponents.set(t,
|
|
795
|
+
}), o.getState().stateComponents.set(t, N), () => {
|
|
794
796
|
const z = o.getState().stateComponents.get(t);
|
|
795
|
-
z && z.components.delete(
|
|
797
|
+
z && z.components.delete(_);
|
|
796
798
|
};
|
|
797
|
-
}, [t,
|
|
799
|
+
}, [t, V]);
|
|
798
800
|
},
|
|
799
801
|
index: v,
|
|
800
802
|
originalIndex: i
|
|
@@ -818,7 +820,7 @@ function mt(t, c, S, g) {
|
|
|
818
820
|
);
|
|
819
821
|
});
|
|
820
822
|
if (l === "$stateMap")
|
|
821
|
-
return (e) =>
|
|
823
|
+
return (e) => dt(Kt, {
|
|
822
824
|
proxy: {
|
|
823
825
|
_stateKey: t,
|
|
824
826
|
_path: r,
|
|
@@ -831,11 +833,11 @@ function mt(t, c, S, g) {
|
|
|
831
833
|
return (e) => {
|
|
832
834
|
const n = o.getState().getNestedState(t, r);
|
|
833
835
|
return Array.isArray(n) ? (f?.validIndices || Array.from({ length: n.length }, (i, v) => v)).map((i, v) => {
|
|
834
|
-
const u = n[i], p = [...r, i.toString()], T = s(u, p, f),
|
|
835
|
-
return
|
|
836
|
+
const u = n[i], p = [...r, i.toString()], T = s(u, p, f), $ = `${S}-${r.join(".")}-${i}`;
|
|
837
|
+
return dt(ee, {
|
|
836
838
|
key: i,
|
|
837
839
|
stateKey: t,
|
|
838
|
-
itemComponentId:
|
|
840
|
+
itemComponentId: $,
|
|
839
841
|
itemPath: p,
|
|
840
842
|
children: e(
|
|
841
843
|
u,
|
|
@@ -852,7 +854,7 @@ function mt(t, c, S, g) {
|
|
|
852
854
|
if (l === "stateFlattenOn")
|
|
853
855
|
return (e) => {
|
|
854
856
|
const n = h;
|
|
855
|
-
y.clear(),
|
|
857
|
+
y.clear(), k++;
|
|
856
858
|
const a = n.flatMap(
|
|
857
859
|
(i) => i[e] ?? []
|
|
858
860
|
);
|
|
@@ -875,36 +877,36 @@ function mt(t, c, S, g) {
|
|
|
875
877
|
return s(a, i);
|
|
876
878
|
};
|
|
877
879
|
if (l === "insert")
|
|
878
|
-
return (e) => (w(r),
|
|
880
|
+
return (e) => (w(r), wt(c, e, r, t), s(
|
|
879
881
|
o.getState().getNestedState(t, r),
|
|
880
882
|
r
|
|
881
883
|
));
|
|
882
884
|
if (l === "uniqueInsert")
|
|
883
885
|
return (e, n, a) => {
|
|
884
|
-
const i = o.getState().getNestedState(t, r), v =
|
|
886
|
+
const i = o.getState().getNestedState(t, r), v = rt(e) ? e(i) : e;
|
|
885
887
|
let u = null;
|
|
886
888
|
if (!i.some((T) => {
|
|
887
889
|
if (n) {
|
|
888
|
-
const
|
|
889
|
-
(
|
|
890
|
+
const P = n.every(
|
|
891
|
+
(V) => Y(T[V], v[V])
|
|
890
892
|
);
|
|
891
|
-
return
|
|
893
|
+
return P && (u = T), P;
|
|
892
894
|
}
|
|
893
|
-
const
|
|
894
|
-
return
|
|
895
|
+
const $ = Y(T, v);
|
|
896
|
+
return $ && (u = T), $;
|
|
895
897
|
}))
|
|
896
|
-
w(r),
|
|
898
|
+
w(r), wt(c, v, r, t);
|
|
897
899
|
else if (a && u) {
|
|
898
|
-
const T = a(u),
|
|
899
|
-
(
|
|
900
|
+
const T = a(u), $ = i.map(
|
|
901
|
+
(P) => Y(P, u) ? T : P
|
|
900
902
|
);
|
|
901
|
-
w(r),
|
|
903
|
+
w(r), lt(c, $, r);
|
|
902
904
|
}
|
|
903
905
|
};
|
|
904
906
|
if (l === "cut")
|
|
905
907
|
return (e, n) => {
|
|
906
908
|
if (!n?.waitForSync)
|
|
907
|
-
return w(r),
|
|
909
|
+
return w(r), mt(c, r, t, e), s(
|
|
908
910
|
o.getState().getNestedState(t, r),
|
|
909
911
|
r
|
|
910
912
|
);
|
|
@@ -912,12 +914,12 @@ function mt(t, c, S, g) {
|
|
|
912
914
|
if (l === "cutByValue")
|
|
913
915
|
return (e) => {
|
|
914
916
|
for (let n = 0; n < h.length; n++)
|
|
915
|
-
h[n] === e &&
|
|
917
|
+
h[n] === e && mt(c, r, t, n);
|
|
916
918
|
};
|
|
917
919
|
if (l === "toggleByValue")
|
|
918
920
|
return (e) => {
|
|
919
921
|
const n = h.findIndex((a) => a === e);
|
|
920
|
-
n > -1 ?
|
|
922
|
+
n > -1 ? mt(c, r, t, n) : wt(c, e, r, t);
|
|
921
923
|
};
|
|
922
924
|
if (l === "stateFind")
|
|
923
925
|
return (e) => {
|
|
@@ -938,15 +940,15 @@ function mt(t, c, S, g) {
|
|
|
938
940
|
return s(i.item, v, f);
|
|
939
941
|
};
|
|
940
942
|
}
|
|
941
|
-
const
|
|
942
|
-
if (!isNaN(Number(
|
|
943
|
+
const ot = r[r.length - 1];
|
|
944
|
+
if (!isNaN(Number(ot))) {
|
|
943
945
|
const d = r.slice(0, -1), e = o.getState().getNestedState(t, d);
|
|
944
946
|
if (Array.isArray(e) && l === "cut")
|
|
945
|
-
return () =>
|
|
947
|
+
return () => mt(
|
|
946
948
|
c,
|
|
947
949
|
d,
|
|
948
950
|
t,
|
|
949
|
-
Number(
|
|
951
|
+
Number(ot)
|
|
950
952
|
);
|
|
951
953
|
}
|
|
952
954
|
if (l === "get")
|
|
@@ -958,13 +960,13 @@ function mt(t, c, S, g) {
|
|
|
958
960
|
return o.getState().getNestedState(t, r);
|
|
959
961
|
};
|
|
960
962
|
if (l === "$derive")
|
|
961
|
-
return (d) =>
|
|
963
|
+
return (d) => _t({
|
|
962
964
|
_stateKey: t,
|
|
963
965
|
_path: r,
|
|
964
966
|
_effect: d.toString()
|
|
965
967
|
});
|
|
966
968
|
if (l === "$get")
|
|
967
|
-
return () =>
|
|
969
|
+
return () => _t({
|
|
968
970
|
_stateKey: t,
|
|
969
971
|
_path: r
|
|
970
972
|
});
|
|
@@ -973,7 +975,7 @@ function mt(t, c, S, g) {
|
|
|
973
975
|
return o.getState().getSyncInfo(d);
|
|
974
976
|
}
|
|
975
977
|
if (l == "getLocalStorage")
|
|
976
|
-
return (d) =>
|
|
978
|
+
return (d) => yt(g + "-" + t + "-" + d);
|
|
977
979
|
if (l === "_selected") {
|
|
978
980
|
const d = r.slice(0, -1), e = d.join("."), n = o.getState().getNestedState(t, d);
|
|
979
981
|
return Array.isArray(n) ? Number(r[r.length - 1]) === o.getState().getSelectedIndex(t, e) : void 0;
|
|
@@ -983,7 +985,7 @@ function mt(t, c, S, g) {
|
|
|
983
985
|
const e = r.slice(0, -1), n = Number(r[r.length - 1]), a = e.join(".");
|
|
984
986
|
d ? o.getState().setSelectedIndex(t, a, n) : o.getState().setSelectedIndex(t, a, void 0);
|
|
985
987
|
const i = o.getState().getNestedState(t, [...e]);
|
|
986
|
-
|
|
988
|
+
lt(c, i, e), w(e);
|
|
987
989
|
};
|
|
988
990
|
if (l === "toggleSelected")
|
|
989
991
|
return () => {
|
|
@@ -994,7 +996,7 @@ function mt(t, c, S, g) {
|
|
|
994
996
|
a === e ? void 0 : e
|
|
995
997
|
);
|
|
996
998
|
const i = o.getState().getNestedState(t, [...d]);
|
|
997
|
-
|
|
999
|
+
lt(c, i, d), w(d);
|
|
998
1000
|
};
|
|
999
1001
|
if (r.length == 0) {
|
|
1000
1002
|
if (l === "addValidation")
|
|
@@ -1002,15 +1004,15 @@ function mt(t, c, S, g) {
|
|
|
1002
1004
|
const e = o.getState().getInitialOptions(t)?.validation;
|
|
1003
1005
|
if (!e?.key)
|
|
1004
1006
|
throw new Error("Validation key not found");
|
|
1005
|
-
|
|
1007
|
+
Q(e.key), console.log("addValidationError", d), d.forEach((n) => {
|
|
1006
1008
|
const a = [e.key, ...n.path].join(".");
|
|
1007
|
-
console.log("fullErrorPath", a),
|
|
1008
|
-
}),
|
|
1009
|
+
console.log("fullErrorPath", a), Rt(a, n.message);
|
|
1010
|
+
}), ut(t);
|
|
1009
1011
|
};
|
|
1010
1012
|
if (l === "applyJsonPatch")
|
|
1011
1013
|
return (d) => {
|
|
1012
|
-
const e = o.getState().cogsStateStore[t], a =
|
|
1013
|
-
|
|
1014
|
+
const e = o.getState().cogsStateStore[t], a = Ht(e, d).newDocument;
|
|
1015
|
+
Ot(
|
|
1014
1016
|
t,
|
|
1015
1017
|
o.getState().initialStateGlobal[t],
|
|
1016
1018
|
a,
|
|
@@ -1020,57 +1022,57 @@ function mt(t, c, S, g) {
|
|
|
1020
1022
|
);
|
|
1021
1023
|
const i = o.getState().stateComponents.get(t);
|
|
1022
1024
|
if (i) {
|
|
1023
|
-
const v =
|
|
1025
|
+
const v = $t(e, a), u = new Set(v);
|
|
1024
1026
|
for (const [
|
|
1025
1027
|
p,
|
|
1026
1028
|
T
|
|
1027
1029
|
] of i.components.entries()) {
|
|
1028
|
-
let
|
|
1029
|
-
const
|
|
1030
|
-
if (!
|
|
1031
|
-
if (
|
|
1030
|
+
let $ = !1;
|
|
1031
|
+
const P = Array.isArray(T.reactiveType) ? T.reactiveType : [T.reactiveType || "component"];
|
|
1032
|
+
if (!P.includes("none")) {
|
|
1033
|
+
if (P.includes("all")) {
|
|
1032
1034
|
T.forceUpdate();
|
|
1033
1035
|
continue;
|
|
1034
1036
|
}
|
|
1035
|
-
if (
|
|
1036
|
-
for (const
|
|
1037
|
-
if (T.paths.has(
|
|
1038
|
-
|
|
1037
|
+
if (P.includes("component") && (T.paths.has("") && ($ = !0), !$))
|
|
1038
|
+
for (const V of u) {
|
|
1039
|
+
if (T.paths.has(V)) {
|
|
1040
|
+
$ = !0;
|
|
1039
1041
|
break;
|
|
1040
1042
|
}
|
|
1041
|
-
let
|
|
1042
|
-
for (;
|
|
1043
|
-
const
|
|
1044
|
-
if (T.paths.has(
|
|
1045
|
-
|
|
1043
|
+
let _ = V.lastIndexOf(".");
|
|
1044
|
+
for (; _ !== -1; ) {
|
|
1045
|
+
const N = V.substring(0, _);
|
|
1046
|
+
if (T.paths.has(N)) {
|
|
1047
|
+
$ = !0;
|
|
1046
1048
|
break;
|
|
1047
1049
|
}
|
|
1048
|
-
const z =
|
|
1049
|
-
|
|
1050
|
+
const z = V.substring(
|
|
1051
|
+
_ + 1
|
|
1050
1052
|
);
|
|
1051
1053
|
if (!isNaN(Number(z))) {
|
|
1052
|
-
const
|
|
1053
|
-
if (
|
|
1054
|
-
const
|
|
1054
|
+
const A = N.lastIndexOf(".");
|
|
1055
|
+
if (A !== -1) {
|
|
1056
|
+
const b = N.substring(
|
|
1055
1057
|
0,
|
|
1056
|
-
|
|
1058
|
+
A
|
|
1057
1059
|
);
|
|
1058
|
-
if (T.paths.has(
|
|
1059
|
-
|
|
1060
|
+
if (T.paths.has(b)) {
|
|
1061
|
+
$ = !0;
|
|
1060
1062
|
break;
|
|
1061
1063
|
}
|
|
1062
1064
|
}
|
|
1063
1065
|
}
|
|
1064
|
-
|
|
1066
|
+
_ = N.lastIndexOf(".");
|
|
1065
1067
|
}
|
|
1066
|
-
if (
|
|
1068
|
+
if ($) break;
|
|
1067
1069
|
}
|
|
1068
|
-
if (
|
|
1069
|
-
const
|
|
1070
|
-
let
|
|
1071
|
-
typeof
|
|
1070
|
+
if (!$ && P.includes("deps") && T.depsFunction) {
|
|
1071
|
+
const V = T.depsFunction(a);
|
|
1072
|
+
let _ = !1;
|
|
1073
|
+
typeof V == "boolean" ? V && (_ = !0) : Y(T.deps, V) || (T.deps = V, _ = !0), _ && ($ = !0);
|
|
1072
1074
|
}
|
|
1073
|
-
|
|
1075
|
+
$ && T.forceUpdate();
|
|
1074
1076
|
}
|
|
1075
1077
|
}
|
|
1076
1078
|
}
|
|
@@ -1082,18 +1084,18 @@ function mt(t, c, S, g) {
|
|
|
1082
1084
|
throw new Error("Zod schema not found");
|
|
1083
1085
|
if (!d?.key)
|
|
1084
1086
|
throw new Error("Validation key not found");
|
|
1085
|
-
|
|
1087
|
+
Q(d.key);
|
|
1086
1088
|
const n = o.getState().cogsStateStore[t];
|
|
1087
1089
|
try {
|
|
1088
1090
|
const a = o.getState().getValidationErrors(d.key);
|
|
1089
1091
|
a && a.length > 0 && a.forEach(([v]) => {
|
|
1090
|
-
v && v.startsWith(d.key) &&
|
|
1092
|
+
v && v.startsWith(d.key) && Q(v);
|
|
1091
1093
|
});
|
|
1092
1094
|
const i = d.zodSchema.safeParse(n);
|
|
1093
1095
|
return i.success ? !0 : (i.error.errors.forEach((u) => {
|
|
1094
|
-
const p = u.path, T = u.message,
|
|
1095
|
-
e(
|
|
1096
|
-
}),
|
|
1096
|
+
const p = u.path, T = u.message, $ = [d.key, ...p].join(".");
|
|
1097
|
+
e($, T);
|
|
1098
|
+
}), ut(t), !1);
|
|
1097
1099
|
} catch (a) {
|
|
1098
1100
|
return console.error("Zod schema validation failed", a), !1;
|
|
1099
1101
|
}
|
|
@@ -1102,7 +1104,7 @@ function mt(t, c, S, g) {
|
|
|
1102
1104
|
if (l === "getComponents")
|
|
1103
1105
|
return () => o().stateComponents.get(t);
|
|
1104
1106
|
if (l === "getAllFormRefs")
|
|
1105
|
-
return () =>
|
|
1107
|
+
return () => Vt.getState().getFormRefsByStateKey(t);
|
|
1106
1108
|
if (l === "_initialState")
|
|
1107
1109
|
return o.getState().initialStateGlobal[t];
|
|
1108
1110
|
if (l === "_serverState")
|
|
@@ -1115,13 +1117,13 @@ function mt(t, c, S, g) {
|
|
|
1115
1117
|
if (l === "removeValidation") return I.removeValidation;
|
|
1116
1118
|
}
|
|
1117
1119
|
if (l === "getFormRef")
|
|
1118
|
-
return () =>
|
|
1120
|
+
return () => Vt.getState().getFormRef(t + "." + r.join("."));
|
|
1119
1121
|
if (l === "validationWrapper")
|
|
1120
1122
|
return ({
|
|
1121
1123
|
children: d,
|
|
1122
1124
|
hideMessage: e
|
|
1123
|
-
}) => /* @__PURE__ */
|
|
1124
|
-
|
|
1125
|
+
}) => /* @__PURE__ */ Tt(
|
|
1126
|
+
Lt,
|
|
1125
1127
|
{
|
|
1126
1128
|
formOpts: e ? { validation: { message: "" } } : void 0,
|
|
1127
1129
|
path: r,
|
|
@@ -1137,21 +1139,21 @@ function mt(t, c, S, g) {
|
|
|
1137
1139
|
if (l === "update")
|
|
1138
1140
|
return (d, e) => {
|
|
1139
1141
|
if (e?.debounce)
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
+
Wt(() => {
|
|
1143
|
+
lt(c, d, r, "");
|
|
1142
1144
|
const n = o.getState().getNestedState(t, r);
|
|
1143
1145
|
e?.afterUpdate && e.afterUpdate(n);
|
|
1144
1146
|
}, e.debounce);
|
|
1145
1147
|
else {
|
|
1146
|
-
|
|
1148
|
+
lt(c, d, r, "");
|
|
1147
1149
|
const n = o.getState().getNestedState(t, r);
|
|
1148
1150
|
e?.afterUpdate && e.afterUpdate(n);
|
|
1149
1151
|
}
|
|
1150
1152
|
w(r);
|
|
1151
1153
|
};
|
|
1152
1154
|
if (l === "formElement")
|
|
1153
|
-
return (d, e) => /* @__PURE__ */
|
|
1154
|
-
|
|
1155
|
+
return (d, e) => /* @__PURE__ */ Tt(
|
|
1156
|
+
Gt,
|
|
1155
1157
|
{
|
|
1156
1158
|
setState: c,
|
|
1157
1159
|
stateKey: t,
|
|
@@ -1160,23 +1162,23 @@ function mt(t, c, S, g) {
|
|
|
1160
1162
|
formOpts: e
|
|
1161
1163
|
}
|
|
1162
1164
|
);
|
|
1163
|
-
const j = [...r, l],
|
|
1164
|
-
return s(
|
|
1165
|
+
const j = [...r, l], ct = o.getState().getNestedState(t, j);
|
|
1166
|
+
return s(ct, j, f);
|
|
1165
1167
|
}
|
|
1166
|
-
}, B = new Proxy(
|
|
1168
|
+
}, B = new Proxy(O, U);
|
|
1167
1169
|
return y.set(G, {
|
|
1168
1170
|
proxy: B,
|
|
1169
|
-
stateVersion:
|
|
1171
|
+
stateVersion: k
|
|
1170
1172
|
}), B;
|
|
1171
1173
|
}
|
|
1172
1174
|
return s(
|
|
1173
1175
|
o.getState().getNestedState(t, [])
|
|
1174
1176
|
);
|
|
1175
1177
|
}
|
|
1176
|
-
function
|
|
1177
|
-
return
|
|
1178
|
+
function _t(t) {
|
|
1179
|
+
return dt(te, { proxy: t });
|
|
1178
1180
|
}
|
|
1179
|
-
function
|
|
1181
|
+
function Kt({
|
|
1180
1182
|
proxy: t,
|
|
1181
1183
|
rebuildStateShape: c
|
|
1182
1184
|
}) {
|
|
@@ -1185,13 +1187,13 @@ function Xt({
|
|
|
1185
1187
|
S,
|
|
1186
1188
|
t._path
|
|
1187
1189
|
).stateMapNoRender(
|
|
1188
|
-
(y,
|
|
1190
|
+
(y, k, w, I, s) => t._mapFn(y, k, w, I, s)
|
|
1189
1191
|
) : null;
|
|
1190
1192
|
}
|
|
1191
|
-
function
|
|
1193
|
+
function te({
|
|
1192
1194
|
proxy: t
|
|
1193
1195
|
}) {
|
|
1194
|
-
const c =
|
|
1196
|
+
const c = K(null), S = `${t._stateKey}-${t._path.join(".")}`;
|
|
1195
1197
|
return nt(() => {
|
|
1196
1198
|
const g = c.current;
|
|
1197
1199
|
if (!g || !g.parentElement) return;
|
|
@@ -1213,22 +1215,22 @@ function Qt({
|
|
|
1213
1215
|
"state",
|
|
1214
1216
|
`return (${t._effect})(state)`
|
|
1215
1217
|
)(r);
|
|
1216
|
-
} catch (
|
|
1217
|
-
console.error("Error evaluating effect function during mount:",
|
|
1218
|
+
} catch (O) {
|
|
1219
|
+
console.error("Error evaluating effect function during mount:", O), f = r;
|
|
1218
1220
|
}
|
|
1219
1221
|
else
|
|
1220
1222
|
f = r;
|
|
1221
1223
|
f !== null && typeof f == "object" && (f = JSON.stringify(f));
|
|
1222
1224
|
const G = document.createTextNode(String(f));
|
|
1223
1225
|
g.replaceWith(G);
|
|
1224
|
-
}, [t._stateKey, t._path.join("."), t._effect]),
|
|
1226
|
+
}, [t._stateKey, t._path.join("."), t._effect]), dt("span", {
|
|
1225
1227
|
ref: c,
|
|
1226
1228
|
style: { display: "none" },
|
|
1227
1229
|
"data-signal-id": S
|
|
1228
1230
|
});
|
|
1229
1231
|
}
|
|
1230
|
-
function
|
|
1231
|
-
const c =
|
|
1232
|
+
function he(t) {
|
|
1233
|
+
const c = Ut(
|
|
1232
1234
|
(S) => {
|
|
1233
1235
|
const g = o.getState().stateComponents.get(t._stateKey) || {
|
|
1234
1236
|
components: /* @__PURE__ */ new Map()
|
|
@@ -1240,22 +1242,22 @@ function Se(t) {
|
|
|
1240
1242
|
},
|
|
1241
1243
|
() => o.getState().getNestedState(t._stateKey, t._path)
|
|
1242
1244
|
);
|
|
1243
|
-
return
|
|
1245
|
+
return dt("text", {}, String(c));
|
|
1244
1246
|
}
|
|
1245
|
-
function
|
|
1247
|
+
function ee({
|
|
1246
1248
|
stateKey: t,
|
|
1247
1249
|
itemComponentId: c,
|
|
1248
1250
|
itemPath: S,
|
|
1249
1251
|
children: g
|
|
1250
1252
|
}) {
|
|
1251
|
-
const [, y] = et({}), [
|
|
1253
|
+
const [, y] = et({}), [k, w] = zt(), I = K(null);
|
|
1252
1254
|
return nt(() => {
|
|
1253
1255
|
w.height > 0 && w.height !== I.current && (I.current = w.height, o.getState().setShadowMetadata(t, S, {
|
|
1254
1256
|
virtualizer: {
|
|
1255
1257
|
itemHeight: w.height
|
|
1256
1258
|
}
|
|
1257
1259
|
}));
|
|
1258
|
-
}, [w.height, t, S]),
|
|
1260
|
+
}, [w.height, t, S]), kt(() => {
|
|
1259
1261
|
const s = `${t}////${c}`, h = o.getState().stateComponents.get(t) || {
|
|
1260
1262
|
components: /* @__PURE__ */ new Map()
|
|
1261
1263
|
};
|
|
@@ -1266,14 +1268,14 @@ function Kt({
|
|
|
1266
1268
|
const r = o.getState().stateComponents.get(t);
|
|
1267
1269
|
r && r.components.delete(s);
|
|
1268
1270
|
};
|
|
1269
|
-
}, [t, c, S.join(".")]), /* @__PURE__ */
|
|
1271
|
+
}, [t, c, S.join(".")]), /* @__PURE__ */ Tt("div", { ref: k, children: g });
|
|
1270
1272
|
}
|
|
1271
1273
|
export {
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1274
|
+
_t as $cogsSignal,
|
|
1275
|
+
he as $cogsSignalStore,
|
|
1276
|
+
fe as addStateOptions,
|
|
1277
|
+
Se as createCogsState,
|
|
1278
|
+
me as notifyComponent,
|
|
1279
|
+
Qt as useCogsStateFn
|
|
1278
1280
|
};
|
|
1279
1281
|
//# sourceMappingURL=CogsState.jsx.map
|