cogsbox-state 0.5.94 → 0.5.95
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 +259 -250
- package/dist/CogsState.jsx.map +1 -1
- package/package.json +1 -1
package/dist/CogsState.jsx
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
3
|
-
import { useState as et, useRef as Z, useEffect as nt, useLayoutEffect as
|
|
4
|
-
import { transformStateFunc as wt, isFunction as L, getNestedValue as U, isDeepEqual as M, debounce as
|
|
5
|
-
import { pushFunc as K, updateFn as B, cutFunc as J, ValidationWrapper as
|
|
2
|
+
import { jsx as lt } from "react/jsx-runtime";
|
|
3
|
+
import { useState as et, useRef as Z, useEffect as nt, useLayoutEffect as _t, useMemo as Et, createElement as Q, useSyncExternalStore as $t, startTransition as H } from "react";
|
|
4
|
+
import { transformStateFunc as wt, isFunction as L, getNestedValue as U, isDeepEqual as M, debounce as Nt } from "./utility.js";
|
|
5
|
+
import { pushFunc as K, updateFn as B, cutFunc as J, ValidationWrapper as Vt, FormControlComponent as At } from "./Functions.jsx";
|
|
6
6
|
import "zod";
|
|
7
|
-
import { getGlobalStore as r, formRefStore as
|
|
8
|
-
import { useCogsConfig as
|
|
7
|
+
import { getGlobalStore as r, formRefStore as dt } from "./store.js";
|
|
8
|
+
import { useCogsConfig as ht } from "./CogsStateClient.jsx";
|
|
9
9
|
import rt from "./node_modules/uuid/dist/esm-browser/v4.js";
|
|
10
|
-
function
|
|
11
|
-
const m = r.getState().getInitialOptions, y = r.getState().setInitialStateOptions,
|
|
10
|
+
function ut(t, i) {
|
|
11
|
+
const m = r.getState().getInitialOptions, y = r.getState().setInitialStateOptions, g = m(t) || {};
|
|
12
12
|
y(t, {
|
|
13
|
-
...
|
|
13
|
+
...g,
|
|
14
14
|
...i
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function gt({
|
|
18
18
|
stateKey: t,
|
|
19
19
|
options: i,
|
|
20
20
|
initialOptionsPart: m
|
|
21
21
|
}) {
|
|
22
|
-
const y = q(t) || {},
|
|
22
|
+
const y = q(t) || {}, g = m[t] || {}, E = r.getState().setInitialStateOptions, _ = { ...g, ...y };
|
|
23
23
|
let v = !1;
|
|
24
24
|
if (i)
|
|
25
25
|
for (const l in i)
|
|
26
|
-
|
|
27
|
-
v &&
|
|
26
|
+
_.hasOwnProperty(l) ? l == "localStorage" && i[l] && _[l].key !== i[l]?.key && (v = !0, _[l] = i[l]) : (v = !0, _[l] = i[l]);
|
|
27
|
+
v && E(t, _);
|
|
28
28
|
}
|
|
29
29
|
function qt(t, { formElements: i, validation: m }) {
|
|
30
30
|
return { initialState: t, formElements: i, validation: m };
|
|
31
31
|
}
|
|
32
32
|
const zt = (t, i) => {
|
|
33
33
|
let m = t;
|
|
34
|
-
const [y,
|
|
35
|
-
(Object.keys(
|
|
36
|
-
|
|
34
|
+
const [y, g] = wt(m);
|
|
35
|
+
(Object.keys(g).length > 0 || i && Object.keys(i).length > 0) && Object.keys(g).forEach((v) => {
|
|
36
|
+
g[v] = g[v] || {}, g[v].formElements = {
|
|
37
37
|
...i?.formElements,
|
|
38
38
|
// Global defaults first
|
|
39
39
|
...i?.validation,
|
|
40
|
-
...
|
|
40
|
+
...g[v].formElements || {}
|
|
41
41
|
// State-specific overrides
|
|
42
|
-
}, q(v) || r.getState().setInitialStateOptions(v,
|
|
42
|
+
}, q(v) || r.getState().setInitialStateOptions(v, g[v]);
|
|
43
43
|
}), r.getState().setInitialStates(y);
|
|
44
|
-
const
|
|
44
|
+
const E = (v, l) => {
|
|
45
45
|
const [f] = et(l?.componentId ?? rt());
|
|
46
|
-
|
|
46
|
+
gt({
|
|
47
47
|
stateKey: v,
|
|
48
48
|
options: l,
|
|
49
|
-
initialOptionsPart:
|
|
49
|
+
initialOptionsPart: g
|
|
50
50
|
});
|
|
51
|
-
const e = r.getState().cogsStateStore[v] || y[v], S = l?.modifyState ? l.modifyState(e) : e, [
|
|
51
|
+
const e = r.getState().cogsStateStore[v] || y[v], S = l?.modifyState ? l.modifyState(e) : e, [T, h] = Ot(
|
|
52
52
|
S,
|
|
53
53
|
{
|
|
54
54
|
stateKey: v,
|
|
@@ -63,24 +63,24 @@ const zt = (t, i) => {
|
|
|
63
63
|
dependencies: l?.dependencies
|
|
64
64
|
}
|
|
65
65
|
);
|
|
66
|
-
return
|
|
66
|
+
return h;
|
|
67
67
|
};
|
|
68
|
-
function
|
|
69
|
-
|
|
68
|
+
function _(v, l) {
|
|
69
|
+
gt({ stateKey: v, options: l, initialOptionsPart: g });
|
|
70
70
|
}
|
|
71
|
-
return { useCogsState:
|
|
71
|
+
return { useCogsState: E, setCogsOptions: _ };
|
|
72
72
|
}, {
|
|
73
73
|
setUpdaterState: Y,
|
|
74
74
|
setState: D,
|
|
75
75
|
getInitialOptions: q,
|
|
76
|
-
getKeyState:
|
|
77
|
-
getValidationErrors:
|
|
78
|
-
setStateLog:
|
|
79
|
-
updateInitialStateGlobal:
|
|
80
|
-
addValidationError:
|
|
76
|
+
getKeyState: St,
|
|
77
|
+
getValidationErrors: Ct,
|
|
78
|
+
setStateLog: kt,
|
|
79
|
+
updateInitialStateGlobal: at,
|
|
80
|
+
addValidationError: pt,
|
|
81
81
|
removeValidationError: P,
|
|
82
|
-
setServerSyncActions:
|
|
83
|
-
} = r.getState(),
|
|
82
|
+
setServerSyncActions: xt
|
|
83
|
+
} = r.getState(), mt = (t) => {
|
|
84
84
|
if (!t) return null;
|
|
85
85
|
try {
|
|
86
86
|
const i = window.localStorage.getItem(t);
|
|
@@ -88,38 +88,38 @@ const zt = (t, i) => {
|
|
|
88
88
|
} catch (i) {
|
|
89
89
|
return console.error("Error loading from localStorage:", i), null;
|
|
90
90
|
}
|
|
91
|
-
},
|
|
91
|
+
}, Tt = (t, i, m, y) => {
|
|
92
92
|
m?.log && console.log(
|
|
93
93
|
"saving to localstorage",
|
|
94
94
|
i,
|
|
95
95
|
m.localStorage?.key,
|
|
96
96
|
y
|
|
97
97
|
);
|
|
98
|
-
const
|
|
99
|
-
if (
|
|
100
|
-
const
|
|
98
|
+
const g = L(m?.localStorage?.key) ? m.localStorage?.key(t) : m?.localStorage?.key;
|
|
99
|
+
if (g && y) {
|
|
100
|
+
const E = {
|
|
101
101
|
state: t,
|
|
102
102
|
lastUpdated: Date.now(),
|
|
103
103
|
lastSyncedWithServer: r.getState().serverSyncLog[i]?.[0]?.timeStamp,
|
|
104
104
|
baseServerState: r.getState().serverState[i]
|
|
105
|
-
},
|
|
106
|
-
window.localStorage.setItem(
|
|
105
|
+
}, _ = `${y}-${i}-${g}`;
|
|
106
|
+
window.localStorage.setItem(_, JSON.stringify(E));
|
|
107
107
|
}
|
|
108
|
-
},
|
|
109
|
-
const
|
|
108
|
+
}, ft = (t, i, m, y, g, E) => {
|
|
109
|
+
const _ = {
|
|
110
110
|
initialState: i,
|
|
111
111
|
updaterState: X(
|
|
112
112
|
t,
|
|
113
113
|
y,
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
g,
|
|
115
|
+
E
|
|
116
116
|
),
|
|
117
117
|
state: m
|
|
118
118
|
};
|
|
119
119
|
H(() => {
|
|
120
|
-
|
|
120
|
+
at(t, _.initialState), Y(t, _.updaterState), D(t, _.state);
|
|
121
121
|
});
|
|
122
|
-
},
|
|
122
|
+
}, ot = (t) => {
|
|
123
123
|
const i = r.getState().stateComponents.get(t);
|
|
124
124
|
if (!i) return;
|
|
125
125
|
const m = /* @__PURE__ */ new Set();
|
|
@@ -133,29 +133,29 @@ const zt = (t, i) => {
|
|
|
133
133
|
}, Bt = (t, i) => {
|
|
134
134
|
const m = r.getState().stateComponents.get(t);
|
|
135
135
|
if (m) {
|
|
136
|
-
const y = `${t}////${i}`,
|
|
137
|
-
|
|
136
|
+
const y = `${t}////${i}`, g = m.components.get(y);
|
|
137
|
+
g && g.forceUpdate();
|
|
138
138
|
}
|
|
139
139
|
};
|
|
140
140
|
function Ot(t, {
|
|
141
141
|
stateKey: i,
|
|
142
142
|
serverSync: m,
|
|
143
143
|
localStorage: y,
|
|
144
|
-
formElements:
|
|
145
|
-
middleware:
|
|
146
|
-
reactiveDeps:
|
|
144
|
+
formElements: g,
|
|
145
|
+
middleware: E,
|
|
146
|
+
reactiveDeps: _,
|
|
147
147
|
reactiveType: v,
|
|
148
148
|
componentId: l,
|
|
149
149
|
initialState: f,
|
|
150
150
|
syncUpdate: e,
|
|
151
151
|
dependencies: S
|
|
152
152
|
} = {}) {
|
|
153
|
-
const [
|
|
153
|
+
const [T, h] = et({}), { sessionId: x } = ht();
|
|
154
154
|
let R = !i;
|
|
155
|
-
const [
|
|
156
|
-
|
|
157
|
-
if (e && e.stateKey ===
|
|
158
|
-
D(
|
|
155
|
+
const [d] = et(i ?? rt()), s = r.getState().stateLog[d], G = Z(/* @__PURE__ */ new Set()), j = Z(l ?? rt()), k = Z(null);
|
|
156
|
+
k.current = q(d), nt(() => {
|
|
157
|
+
if (e && e.stateKey === d && e.path?.[0]) {
|
|
158
|
+
D(d, (o) => ({
|
|
159
159
|
...o,
|
|
160
160
|
[e.path[0]]: e.newValue
|
|
161
161
|
}));
|
|
@@ -166,171 +166,180 @@ function Ot(t, {
|
|
|
166
166
|
});
|
|
167
167
|
}
|
|
168
168
|
}, [e]), nt(() => {
|
|
169
|
-
|
|
169
|
+
ut(d, {
|
|
170
170
|
initialState: f
|
|
171
171
|
});
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
c?.log && (console.log("newoptions", c), console.log("localkey", d), console.log("initialState", f)), d && T && (o = ft(
|
|
176
|
-
T + "-" + g + "-" + d
|
|
177
|
-
));
|
|
178
|
-
let I = null, k = !1;
|
|
179
|
-
f && (I = f), o && o.lastUpdated > (o.lastSyncedWithServer || 0) && (I = o.state, k = !0), I && (console.log("newState thius is newstate", I), Tt(
|
|
180
|
-
g,
|
|
172
|
+
let c = null;
|
|
173
|
+
f && (c = f), c && (console.log("newState thius is newstate", c), ft(
|
|
174
|
+
d,
|
|
181
175
|
f,
|
|
182
|
-
|
|
176
|
+
c,
|
|
183
177
|
n,
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
),
|
|
187
|
-
}, [f, ...S || []]),
|
|
188
|
-
R &&
|
|
178
|
+
j.current,
|
|
179
|
+
x
|
|
180
|
+
), ot(d), h({}));
|
|
181
|
+
}, [f, ...S || []]), _t(() => {
|
|
182
|
+
R && ut(d, {
|
|
189
183
|
serverSync: m,
|
|
190
|
-
formElements:
|
|
184
|
+
formElements: g,
|
|
191
185
|
initialState: f,
|
|
192
186
|
localStorage: y,
|
|
193
|
-
middleware:
|
|
187
|
+
middleware: E
|
|
194
188
|
});
|
|
195
|
-
const c = `${
|
|
189
|
+
const c = `${d}////${j.current}`, o = r.getState().stateComponents.get(d) || {
|
|
196
190
|
components: /* @__PURE__ */ new Map()
|
|
197
191
|
};
|
|
198
|
-
|
|
199
|
-
forceUpdate: () =>
|
|
192
|
+
o.components.set(c, {
|
|
193
|
+
forceUpdate: () => h({}),
|
|
200
194
|
paths: /* @__PURE__ */ new Set(),
|
|
201
195
|
deps: [],
|
|
202
|
-
depsFunction:
|
|
196
|
+
depsFunction: _ || void 0,
|
|
203
197
|
reactiveType: v ?? ["component", "deps"]
|
|
204
|
-
}), r.getState().stateComponents.set(
|
|
205
|
-
|
|
206
|
-
|
|
198
|
+
}), r.getState().stateComponents.set(d, o);
|
|
199
|
+
const u = k.current, $ = L(u?.localStorage?.key) ? u?.localStorage?.key(f) : u?.localStorage?.key;
|
|
200
|
+
if ($ && x) {
|
|
201
|
+
let N = mt(
|
|
202
|
+
x + "-" + d + "-" + $
|
|
203
|
+
);
|
|
204
|
+
N.lastUpdated > (N.lastSyncedWithServer || 0) && (ft(
|
|
205
|
+
d,
|
|
206
|
+
f,
|
|
207
|
+
N.state,
|
|
208
|
+
n,
|
|
209
|
+
j.current,
|
|
210
|
+
x
|
|
211
|
+
), u?.localStorage?.onChange(N.state), ot(d));
|
|
212
|
+
}
|
|
213
|
+
return h({}), () => {
|
|
214
|
+
const N = `${d}////${j.current}`;
|
|
215
|
+
o && (o.components.delete(N), o.components.size === 0 && r.getState().stateComponents.delete(d));
|
|
207
216
|
};
|
|
208
217
|
}, []);
|
|
209
|
-
const n = (c, o,
|
|
218
|
+
const n = (c, o, u, $) => {
|
|
210
219
|
if (Array.isArray(o)) {
|
|
211
|
-
const
|
|
212
|
-
G.current.add(
|
|
220
|
+
const N = `${d}-${o.join(".")}`;
|
|
221
|
+
G.current.add(N);
|
|
213
222
|
}
|
|
214
|
-
D(
|
|
215
|
-
const
|
|
216
|
-
if (
|
|
217
|
-
let F = !1,
|
|
218
|
-
if ((!
|
|
219
|
-
const
|
|
220
|
-
if (Array.isArray(
|
|
223
|
+
D(d, (N) => {
|
|
224
|
+
const V = L(c) ? c(N) : c, b = `${d}-${o.join(".")}`;
|
|
225
|
+
if (b) {
|
|
226
|
+
let F = !1, I = r.getState().signalDomElements.get(b);
|
|
227
|
+
if ((!I || I.size === 0) && (u.updateType === "insert" || u.updateType === "cut")) {
|
|
228
|
+
const A = o.slice(0, -1), C = U(V, A);
|
|
229
|
+
if (Array.isArray(C)) {
|
|
221
230
|
F = !0;
|
|
222
|
-
const
|
|
223
|
-
|
|
231
|
+
const w = `${d}-${A.join(".")}`;
|
|
232
|
+
I = r.getState().signalDomElements.get(w);
|
|
224
233
|
}
|
|
225
234
|
}
|
|
226
|
-
if (
|
|
227
|
-
const
|
|
228
|
-
|
|
235
|
+
if (I) {
|
|
236
|
+
const A = F ? U(V, o.slice(0, -1)) : U(V, o);
|
|
237
|
+
I.forEach(({ parentId: C, position: w, effect: W }) => {
|
|
229
238
|
const O = document.querySelector(
|
|
230
|
-
`[data-parent-id="${
|
|
239
|
+
`[data-parent-id="${C}"]`
|
|
231
240
|
);
|
|
232
241
|
if (O) {
|
|
233
|
-
const
|
|
234
|
-
if (
|
|
235
|
-
const
|
|
236
|
-
|
|
242
|
+
const ct = Array.from(O.childNodes);
|
|
243
|
+
if (ct[w]) {
|
|
244
|
+
const It = W ? new Function("state", `return (${W})(state)`)(A) : A;
|
|
245
|
+
ct[w].textContent = String(It);
|
|
237
246
|
}
|
|
238
247
|
}
|
|
239
248
|
});
|
|
240
249
|
}
|
|
241
250
|
}
|
|
242
|
-
|
|
243
|
-
(
|
|
251
|
+
u.updateType === "update" && ($ || k.current?.validationKey) && o && P(
|
|
252
|
+
($ || k.current?.validationKey) + "." + o.join(".")
|
|
244
253
|
);
|
|
245
254
|
const p = o.slice(0, o.length - 1);
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
),
|
|
249
|
-
|
|
250
|
-
).filter(([
|
|
251
|
-
let
|
|
252
|
-
if (
|
|
253
|
-
let
|
|
254
|
-
P(
|
|
255
|
+
u.updateType === "cut" && k.current?.validationKey && P(
|
|
256
|
+
k.current?.validationKey + "." + p.join(".")
|
|
257
|
+
), u.updateType === "insert" && k.current?.validationKey && Ct(
|
|
258
|
+
k.current?.validationKey + "." + p.join(".")
|
|
259
|
+
).filter(([I, A]) => {
|
|
260
|
+
let C = I?.split(".").length;
|
|
261
|
+
if (I == p.join(".") && C == p.length - 1) {
|
|
262
|
+
let w = I + "." + p;
|
|
263
|
+
P(I), pt(w, A);
|
|
255
264
|
}
|
|
256
265
|
});
|
|
257
|
-
const z = U(
|
|
258
|
-
if (
|
|
259
|
-
for (const [F,
|
|
260
|
-
let
|
|
261
|
-
const
|
|
262
|
-
if (!
|
|
263
|
-
if (
|
|
264
|
-
|
|
266
|
+
const z = U(N, o), yt = U(V, o), vt = u.updateType === "update" ? o.join(".") : [...o].slice(0, -1).join("."), it = r.getState().stateComponents.get(d);
|
|
267
|
+
if (it)
|
|
268
|
+
for (const [F, I] of it.components.entries()) {
|
|
269
|
+
let A = !1;
|
|
270
|
+
const C = Array.isArray(I.reactiveType) ? I.reactiveType : [I.reactiveType || "component"];
|
|
271
|
+
if (!C.includes("none")) {
|
|
272
|
+
if (C.includes("all")) {
|
|
273
|
+
I.forceUpdate();
|
|
265
274
|
continue;
|
|
266
275
|
}
|
|
267
|
-
if (
|
|
268
|
-
const
|
|
269
|
-
typeof
|
|
276
|
+
if (C.includes("component") && I.paths && (I.paths.has(vt) || I.paths.has("")) && (A = !0), !A && C.includes("deps") && I.depsFunction) {
|
|
277
|
+
const w = I.depsFunction(V);
|
|
278
|
+
typeof w == "boolean" ? w && (A = !0) : M(I.deps, w) || (I.deps = w, A = !0);
|
|
270
279
|
}
|
|
271
|
-
|
|
280
|
+
A && I.forceUpdate();
|
|
272
281
|
}
|
|
273
282
|
}
|
|
274
|
-
const
|
|
283
|
+
const st = {
|
|
275
284
|
timeStamp: Date.now(),
|
|
276
|
-
stateKey:
|
|
285
|
+
stateKey: d,
|
|
277
286
|
path: o,
|
|
278
|
-
updateType:
|
|
287
|
+
updateType: u.updateType,
|
|
279
288
|
status: "new",
|
|
280
289
|
oldValue: z,
|
|
281
|
-
newValue:
|
|
290
|
+
newValue: yt
|
|
282
291
|
};
|
|
283
|
-
if (
|
|
284
|
-
const
|
|
285
|
-
const W = `${
|
|
286
|
-
return O ? (O.timeStamp = Math.max(O.timeStamp,
|
|
292
|
+
if (kt(d, (F) => {
|
|
293
|
+
const A = [...F ?? [], st].reduce((C, w) => {
|
|
294
|
+
const W = `${w.stateKey}:${JSON.stringify(w.path)}`, O = C.get(W);
|
|
295
|
+
return O ? (O.timeStamp = Math.max(O.timeStamp, w.timeStamp), O.newValue = w.newValue, O.oldValue = O.oldValue ?? w.oldValue, O.updateType = w.updateType) : C.set(W, { ...w }), C;
|
|
287
296
|
}, /* @__PURE__ */ new Map());
|
|
288
|
-
return Array.from(
|
|
289
|
-
}),
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
),
|
|
297
|
+
return Array.from(A.values());
|
|
298
|
+
}), Tt(
|
|
299
|
+
V,
|
|
300
|
+
d,
|
|
301
|
+
k.current,
|
|
302
|
+
x
|
|
303
|
+
), E && E({
|
|
295
304
|
updateLog: s,
|
|
296
|
-
update:
|
|
297
|
-
}),
|
|
298
|
-
const F = r.getState().serverState[
|
|
299
|
-
|
|
300
|
-
syncKey: typeof
|
|
305
|
+
update: st
|
|
306
|
+
}), k.current?.serverSync) {
|
|
307
|
+
const F = r.getState().serverState[d], I = k.current?.serverSync;
|
|
308
|
+
xt(d, {
|
|
309
|
+
syncKey: typeof I.syncKey == "string" ? I.syncKey : I.syncKey({ state: V }),
|
|
301
310
|
rollBackState: F,
|
|
302
|
-
actionTimeStamp: Date.now() + (
|
|
311
|
+
actionTimeStamp: Date.now() + (I.debounce ?? 3e3),
|
|
303
312
|
status: "waiting"
|
|
304
313
|
});
|
|
305
314
|
}
|
|
306
|
-
return
|
|
315
|
+
return V;
|
|
307
316
|
});
|
|
308
317
|
};
|
|
309
|
-
r.getState().updaterState[
|
|
310
|
-
|
|
318
|
+
r.getState().updaterState[d] || (Y(
|
|
319
|
+
d,
|
|
311
320
|
X(
|
|
312
|
-
|
|
321
|
+
d,
|
|
313
322
|
n,
|
|
314
|
-
|
|
315
|
-
|
|
323
|
+
j.current,
|
|
324
|
+
x
|
|
316
325
|
)
|
|
317
|
-
), r.getState().cogsStateStore[
|
|
318
|
-
const a =
|
|
319
|
-
|
|
326
|
+
), r.getState().cogsStateStore[d] || D(d, t), r.getState().initialStateGlobal[d] || at(d, t));
|
|
327
|
+
const a = Et(() => X(
|
|
328
|
+
d,
|
|
320
329
|
n,
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
), [
|
|
324
|
-
return [
|
|
330
|
+
j.current,
|
|
331
|
+
x
|
|
332
|
+
), [d]);
|
|
333
|
+
return [St(d), a];
|
|
325
334
|
}
|
|
326
335
|
function X(t, i, m, y) {
|
|
327
|
-
const
|
|
328
|
-
let
|
|
329
|
-
const
|
|
336
|
+
const g = /* @__PURE__ */ new Map();
|
|
337
|
+
let E = 0;
|
|
338
|
+
const _ = (f) => {
|
|
330
339
|
const e = f.join(".");
|
|
331
|
-
for (const [S] of
|
|
332
|
-
(S === e || S.startsWith(e + ".")) &&
|
|
333
|
-
|
|
340
|
+
for (const [S] of g)
|
|
341
|
+
(S === e || S.startsWith(e + ".")) && g.delete(S);
|
|
342
|
+
E++;
|
|
334
343
|
}, v = {
|
|
335
344
|
removeValidation: (f) => {
|
|
336
345
|
f?.validationKey && P(f.validationKey);
|
|
@@ -339,18 +348,18 @@ function X(t, i, m, y) {
|
|
|
339
348
|
const e = r.getState().getInitialOptions(t)?.validation;
|
|
340
349
|
e?.key && P(e?.key), f?.validationKey && P(f.validationKey);
|
|
341
350
|
const S = r.getState().initialStateGlobal[t];
|
|
342
|
-
|
|
343
|
-
const
|
|
351
|
+
g.clear(), E++;
|
|
352
|
+
const T = l(S, []), h = q(t), x = L(h?.localStorage?.key) ? h?.localStorage?.key(S) : h?.localStorage?.key, R = `${y}-${t}-${x}`;
|
|
344
353
|
return R && localStorage.removeItem(R), H(() => {
|
|
345
|
-
Y(t,
|
|
346
|
-
const
|
|
347
|
-
|
|
354
|
+
Y(t, T), D(t, S);
|
|
355
|
+
const d = r.getState().stateComponents.get(t);
|
|
356
|
+
d && d.components.forEach((s) => {
|
|
348
357
|
s.forceUpdate();
|
|
349
358
|
});
|
|
350
359
|
}), S;
|
|
351
360
|
},
|
|
352
361
|
updateInitialState: (f) => {
|
|
353
|
-
|
|
362
|
+
g.clear(), E++;
|
|
354
363
|
const e = X(
|
|
355
364
|
t,
|
|
356
365
|
i,
|
|
@@ -358,10 +367,10 @@ function X(t, i, m, y) {
|
|
|
358
367
|
y
|
|
359
368
|
);
|
|
360
369
|
return H(() => {
|
|
361
|
-
|
|
370
|
+
at(t, f), Y(t, e), D(t, f);
|
|
362
371
|
const S = r.getState().stateComponents.get(t);
|
|
363
|
-
S && S.components.forEach((
|
|
364
|
-
|
|
372
|
+
S && S.components.forEach((T) => {
|
|
373
|
+
T.forceUpdate();
|
|
365
374
|
});
|
|
366
375
|
}), {
|
|
367
376
|
fetchId: (S) => e.get()[S]
|
|
@@ -372,25 +381,25 @@ function X(t, i, m, y) {
|
|
|
372
381
|
_isLoading: r.getState().isLoadingGlobal[t],
|
|
373
382
|
_isServerSynced: () => {
|
|
374
383
|
const f = r.getState().serverState[t];
|
|
375
|
-
return !!(f && M(f,
|
|
384
|
+
return !!(f && M(f, St(t)));
|
|
376
385
|
}
|
|
377
386
|
};
|
|
378
387
|
function l(f, e = [], S) {
|
|
379
|
-
const
|
|
380
|
-
|
|
381
|
-
const
|
|
388
|
+
const T = e.map(String).join(".");
|
|
389
|
+
g.get(T);
|
|
390
|
+
const h = function() {
|
|
382
391
|
return r().getNestedState(t, e);
|
|
383
392
|
};
|
|
384
|
-
Object.keys(v).forEach((
|
|
385
|
-
|
|
393
|
+
Object.keys(v).forEach((d) => {
|
|
394
|
+
h[d] = v[d];
|
|
386
395
|
});
|
|
387
|
-
const
|
|
388
|
-
apply(
|
|
396
|
+
const x = {
|
|
397
|
+
apply(d, s, G) {
|
|
389
398
|
return console.log(
|
|
390
399
|
`PROXY APPLY TRAP HIT: stateKey=${t}, path=${e.join(".")}`
|
|
391
400
|
), console.trace("Apply trap stack trace"), r().getNestedState(t, e);
|
|
392
401
|
},
|
|
393
|
-
get(
|
|
402
|
+
get(d, s) {
|
|
394
403
|
if (s !== "then" && !s.startsWith("$") && s !== "stateMapNoRender") {
|
|
395
404
|
const n = e.join("."), a = `${t}////${m}`, c = r.getState().stateComponents.get(t);
|
|
396
405
|
if (c) {
|
|
@@ -437,14 +446,14 @@ function X(t, i, m, y) {
|
|
|
437
446
|
return () => r.getState().getSelectedIndex(t, e.join(".")) ?? -1;
|
|
438
447
|
if (s === "stateSort")
|
|
439
448
|
return (n) => {
|
|
440
|
-
const o = [...r.getState().getNestedState(t, e).map((
|
|
441
|
-
...
|
|
442
|
-
__origIndex:
|
|
449
|
+
const o = [...r.getState().getNestedState(t, e).map((u, $) => ({
|
|
450
|
+
...u,
|
|
451
|
+
__origIndex: $.toString()
|
|
443
452
|
}))].sort(n);
|
|
444
|
-
return
|
|
453
|
+
return g.clear(), E++, l(o, e, {
|
|
445
454
|
filtered: [...S?.filtered || [], e],
|
|
446
455
|
validIndices: o.map(
|
|
447
|
-
(
|
|
456
|
+
(u) => parseInt(u.__origIndex)
|
|
448
457
|
)
|
|
449
458
|
});
|
|
450
459
|
};
|
|
@@ -453,16 +462,16 @@ function X(t, i, m, y) {
|
|
|
453
462
|
const a = S?.filtered?.some(
|
|
454
463
|
(o) => o.join(".") === e.join(".")
|
|
455
464
|
), c = a ? f : r.getState().getNestedState(t, e);
|
|
456
|
-
return s !== "stateMapNoRender" && (
|
|
457
|
-
const
|
|
465
|
+
return s !== "stateMapNoRender" && (g.clear(), E++), c.map((o, u) => {
|
|
466
|
+
const $ = a && o.__origIndex ? o.__origIndex : u, N = l(
|
|
458
467
|
o,
|
|
459
|
-
[...e,
|
|
468
|
+
[...e, $.toString()],
|
|
460
469
|
S
|
|
461
470
|
);
|
|
462
471
|
return n(
|
|
463
472
|
o,
|
|
464
|
-
|
|
465
|
-
|
|
473
|
+
N,
|
|
474
|
+
u,
|
|
466
475
|
f,
|
|
467
476
|
l(f, e, S)
|
|
468
477
|
);
|
|
@@ -481,11 +490,11 @@ function X(t, i, m, y) {
|
|
|
481
490
|
if (s === "stateFlattenOn")
|
|
482
491
|
return (n) => {
|
|
483
492
|
const c = S?.filtered?.some(
|
|
484
|
-
(
|
|
493
|
+
(u) => u.join(".") === e.join(".")
|
|
485
494
|
) ? f : r.getState().getNestedState(t, e);
|
|
486
|
-
|
|
495
|
+
g.clear(), E++;
|
|
487
496
|
const o = c.flatMap(
|
|
488
|
-
(
|
|
497
|
+
(u, $) => u[n] ?? []
|
|
489
498
|
);
|
|
490
499
|
return l(
|
|
491
500
|
o,
|
|
@@ -496,11 +505,11 @@ function X(t, i, m, y) {
|
|
|
496
505
|
if (s === "findWith")
|
|
497
506
|
return (n, a) => {
|
|
498
507
|
const c = f.findIndex(
|
|
499
|
-
(
|
|
508
|
+
($) => $[n] === a
|
|
500
509
|
);
|
|
501
510
|
if (c === -1) return;
|
|
502
|
-
const o = f[c],
|
|
503
|
-
return
|
|
511
|
+
const o = f[c], u = [...e, c.toString()];
|
|
512
|
+
return g.clear(), E++, g.clear(), E++, l(o, u);
|
|
504
513
|
};
|
|
505
514
|
if (s === "index")
|
|
506
515
|
return (n) => {
|
|
@@ -508,35 +517,35 @@ function X(t, i, m, y) {
|
|
|
508
517
|
return l(a, [...e, n.toString()]);
|
|
509
518
|
};
|
|
510
519
|
if (s === "insert")
|
|
511
|
-
return (n) => (
|
|
520
|
+
return (n) => (_(e), K(i, n, e, t), l(
|
|
512
521
|
r.getState().cogsStateStore[t],
|
|
513
522
|
[]
|
|
514
523
|
));
|
|
515
524
|
if (s === "uniqueInsert")
|
|
516
525
|
return (n, a, c) => {
|
|
517
|
-
const o = r.getState().getNestedState(t, e),
|
|
518
|
-
let
|
|
519
|
-
if (!o.some((
|
|
526
|
+
const o = r.getState().getNestedState(t, e), u = L(n) ? n(o) : n;
|
|
527
|
+
let $ = null;
|
|
528
|
+
if (!o.some((V) => {
|
|
520
529
|
if (a) {
|
|
521
530
|
const p = a.every(
|
|
522
|
-
(z) => M(
|
|
531
|
+
(z) => M(V[z], u[z])
|
|
523
532
|
);
|
|
524
|
-
return p && (
|
|
533
|
+
return p && ($ = V), p;
|
|
525
534
|
}
|
|
526
|
-
const
|
|
527
|
-
return
|
|
535
|
+
const b = M(V, u);
|
|
536
|
+
return b && ($ = V), b;
|
|
528
537
|
}))
|
|
529
|
-
|
|
530
|
-
else if (c &&
|
|
531
|
-
const
|
|
532
|
-
(p) => M(p,
|
|
538
|
+
_(e), K(i, u, e, t);
|
|
539
|
+
else if (c && $) {
|
|
540
|
+
const V = c($), b = o.map(
|
|
541
|
+
(p) => M(p, $) ? V : p
|
|
533
542
|
);
|
|
534
|
-
|
|
543
|
+
_(e), B(i, b, e);
|
|
535
544
|
}
|
|
536
545
|
};
|
|
537
546
|
if (s === "cut")
|
|
538
547
|
return (n, a) => {
|
|
539
|
-
a?.waitForSync || (
|
|
548
|
+
a?.waitForSync || (_(e), J(i, e, t, n));
|
|
540
549
|
};
|
|
541
550
|
if (s === "cutByValue")
|
|
542
551
|
return (n) => {
|
|
@@ -550,13 +559,13 @@ function X(t, i, m, y) {
|
|
|
550
559
|
};
|
|
551
560
|
if (s === "stateFilter")
|
|
552
561
|
return (n) => {
|
|
553
|
-
const a = f.map((
|
|
554
|
-
...
|
|
555
|
-
__origIndex:
|
|
562
|
+
const a = f.map((u, $) => ({
|
|
563
|
+
...u,
|
|
564
|
+
__origIndex: $.toString()
|
|
556
565
|
})), c = [], o = [];
|
|
557
|
-
for (let
|
|
558
|
-
n(a[
|
|
559
|
-
return
|
|
566
|
+
for (let u = 0; u < a.length; u++)
|
|
567
|
+
n(a[u], u) && (c.push(u), o.push(a[u]));
|
|
568
|
+
return g.clear(), E++, l(o, e, {
|
|
560
569
|
filtered: [...S?.filtered || [], e],
|
|
561
570
|
validIndices: c
|
|
562
571
|
// Always pass validIndices, even if empty
|
|
@@ -598,7 +607,7 @@ function X(t, i, m, y) {
|
|
|
598
607
|
return r.getState().getSyncInfo(n);
|
|
599
608
|
}
|
|
600
609
|
if (s == "getLocalStorage")
|
|
601
|
-
return (n) =>
|
|
610
|
+
return (n) => mt(y + "-" + t + "-" + n);
|
|
602
611
|
if (s === "_selected") {
|
|
603
612
|
const n = e.slice(0, -1), a = n.join("."), c = r.getState().getNestedState(t, n);
|
|
604
613
|
return Array.isArray(c) ? Number(e[e.length - 1]) === r.getState().getSelectedIndex(t, a) : void 0;
|
|
@@ -607,8 +616,8 @@ function X(t, i, m, y) {
|
|
|
607
616
|
return (n) => {
|
|
608
617
|
const a = e.slice(0, -1), c = Number(e[e.length - 1]), o = a.join(".");
|
|
609
618
|
n ? r.getState().setSelectedIndex(t, o, c) : r.getState().setSelectedIndex(t, o, void 0);
|
|
610
|
-
const
|
|
611
|
-
B(i,
|
|
619
|
+
const u = r.getState().getNestedState(t, [...a]);
|
|
620
|
+
B(i, u, a), _(a);
|
|
612
621
|
};
|
|
613
622
|
if (e.length == 0) {
|
|
614
623
|
if (s === "validateZodSchema")
|
|
@@ -622,14 +631,14 @@ function X(t, i, m, y) {
|
|
|
622
631
|
const c = r.getState().cogsStateStore[t];
|
|
623
632
|
try {
|
|
624
633
|
const o = r.getState().getValidationErrors(n.key);
|
|
625
|
-
o && o.length > 0 && o.forEach(([
|
|
626
|
-
|
|
634
|
+
o && o.length > 0 && o.forEach(([$]) => {
|
|
635
|
+
$ && $.startsWith(n.key) && P($);
|
|
627
636
|
});
|
|
628
|
-
const
|
|
629
|
-
return
|
|
630
|
-
const
|
|
631
|
-
a(p,
|
|
632
|
-
}),
|
|
637
|
+
const u = n.zodSchema.safeParse(c);
|
|
638
|
+
return u.success ? !0 : (u.error.errors.forEach((N) => {
|
|
639
|
+
const V = N.path, b = N.message, p = [n.key, ...V].join(".");
|
|
640
|
+
a(p, b);
|
|
641
|
+
}), ot(t), !1);
|
|
633
642
|
} catch (o) {
|
|
634
643
|
return console.error("Zod schema validation failed", o), !1;
|
|
635
644
|
}
|
|
@@ -638,7 +647,7 @@ function X(t, i, m, y) {
|
|
|
638
647
|
if (s === "getComponents")
|
|
639
648
|
return () => r().stateComponents.get(t);
|
|
640
649
|
if (s === "getAllFormRefs")
|
|
641
|
-
return () =>
|
|
650
|
+
return () => dt.getState().getFormRefsByStateKey(t);
|
|
642
651
|
if (s === "_initialState")
|
|
643
652
|
return r.getState().initialStateGlobal[t];
|
|
644
653
|
if (s === "_serverState")
|
|
@@ -651,13 +660,13 @@ function X(t, i, m, y) {
|
|
|
651
660
|
if (s === "removeValidation") return v.removeValidation;
|
|
652
661
|
}
|
|
653
662
|
if (s === "getFormRef")
|
|
654
|
-
return () =>
|
|
663
|
+
return () => dt.getState().getFormRef(t + "." + e.join("."));
|
|
655
664
|
if (s === "validationWrapper")
|
|
656
665
|
return ({
|
|
657
666
|
children: n,
|
|
658
667
|
hideMessage: a
|
|
659
|
-
}) => /* @__PURE__ */
|
|
660
|
-
|
|
668
|
+
}) => /* @__PURE__ */ lt(
|
|
669
|
+
Vt,
|
|
661
670
|
{
|
|
662
671
|
formOpts: a ? { validation: { message: "" } } : void 0,
|
|
663
672
|
path: e,
|
|
@@ -673,7 +682,7 @@ function X(t, i, m, y) {
|
|
|
673
682
|
if (s === "update")
|
|
674
683
|
return (n, a) => {
|
|
675
684
|
if (a?.debounce)
|
|
676
|
-
|
|
685
|
+
Nt(() => {
|
|
677
686
|
B(i, n, e, "");
|
|
678
687
|
const c = r.getState().getNestedState(t, e);
|
|
679
688
|
a?.afterUpdate && a.afterUpdate(c);
|
|
@@ -683,11 +692,11 @@ function X(t, i, m, y) {
|
|
|
683
692
|
const c = r.getState().getNestedState(t, e);
|
|
684
693
|
a?.afterUpdate && a.afterUpdate(c);
|
|
685
694
|
}
|
|
686
|
-
|
|
695
|
+
_(e);
|
|
687
696
|
};
|
|
688
697
|
if (s === "formElement")
|
|
689
|
-
return (n, a) => /* @__PURE__ */
|
|
690
|
-
|
|
698
|
+
return (n, a) => /* @__PURE__ */ lt(
|
|
699
|
+
At,
|
|
691
700
|
{
|
|
692
701
|
setState: i,
|
|
693
702
|
stateKey: t,
|
|
@@ -696,13 +705,13 @@ function X(t, i, m, y) {
|
|
|
696
705
|
formOpts: a
|
|
697
706
|
}
|
|
698
707
|
);
|
|
699
|
-
const
|
|
700
|
-
return l(
|
|
708
|
+
const j = [...e, s], k = r.getState().getNestedState(t, j);
|
|
709
|
+
return l(k, j, S);
|
|
701
710
|
}
|
|
702
|
-
}, R = new Proxy(
|
|
703
|
-
return
|
|
711
|
+
}, R = new Proxy(h, x);
|
|
712
|
+
return g.set(T, {
|
|
704
713
|
proxy: R,
|
|
705
|
-
stateVersion:
|
|
714
|
+
stateVersion: E
|
|
706
715
|
}), R;
|
|
707
716
|
}
|
|
708
717
|
return l(
|
|
@@ -721,7 +730,7 @@ function jt({
|
|
|
721
730
|
m,
|
|
722
731
|
t._path
|
|
723
732
|
).stateMapNoRender(
|
|
724
|
-
(
|
|
733
|
+
(g, E, _, v, l) => t._mapFn(g, E, _, v, l)
|
|
725
734
|
) : null;
|
|
726
735
|
}
|
|
727
736
|
function bt({
|
|
@@ -731,13 +740,13 @@ function bt({
|
|
|
731
740
|
return nt(() => {
|
|
732
741
|
const y = i.current;
|
|
733
742
|
if (!y || !y.parentElement) return;
|
|
734
|
-
const
|
|
735
|
-
let v =
|
|
736
|
-
v || (v = `parent-${crypto.randomUUID()}`,
|
|
743
|
+
const g = y.parentElement, _ = Array.from(g.childNodes).indexOf(y);
|
|
744
|
+
let v = g.getAttribute("data-parent-id");
|
|
745
|
+
v || (v = `parent-${crypto.randomUUID()}`, g.setAttribute("data-parent-id", v));
|
|
737
746
|
const f = {
|
|
738
747
|
instanceId: `instance-${crypto.randomUUID()}`,
|
|
739
748
|
parentId: v,
|
|
740
|
-
position:
|
|
749
|
+
position: _,
|
|
741
750
|
effect: t._effect
|
|
742
751
|
};
|
|
743
752
|
r.getState().addSignalElement(m, f);
|
|
@@ -749,14 +758,14 @@ function bt({
|
|
|
749
758
|
"state",
|
|
750
759
|
`return (${t._effect})(state)`
|
|
751
760
|
)(e);
|
|
752
|
-
} catch (
|
|
753
|
-
console.error("Error evaluating effect function during mount:",
|
|
761
|
+
} catch (h) {
|
|
762
|
+
console.error("Error evaluating effect function during mount:", h), S = e;
|
|
754
763
|
}
|
|
755
764
|
else
|
|
756
765
|
S = e;
|
|
757
766
|
S !== null && typeof S == "object" && (S = JSON.stringify(S));
|
|
758
|
-
const
|
|
759
|
-
y.replaceWith(
|
|
767
|
+
const T = document.createTextNode(String(S));
|
|
768
|
+
y.replaceWith(T);
|
|
760
769
|
}, [t._stateKey, t._path.join("."), t._effect]), Q("span", {
|
|
761
770
|
ref: i,
|
|
762
771
|
style: { display: "none" },
|
|
@@ -764,7 +773,7 @@ function bt({
|
|
|
764
773
|
});
|
|
765
774
|
}
|
|
766
775
|
function Jt(t) {
|
|
767
|
-
const i =
|
|
776
|
+
const i = $t(
|
|
768
777
|
(m) => {
|
|
769
778
|
const y = r.getState().stateComponents.get(t._stateKey) || {
|
|
770
779
|
components: /* @__PURE__ */ new Map()
|