cogsbox-state 0.5.344 → 0.5.346
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 +609 -615
- package/dist/CogsState.jsx.map +1 -1
- package/package.json +1 -1
- package/src/CogsState.tsx +68 -66
package/dist/CogsState.jsx
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
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 ft } from "react/jsx-runtime";
|
|
3
|
+
import { useState as Y, useRef as Z, useEffect as tt, useLayoutEffect as it, useMemo as St, createElement as ot, useSyncExternalStore as Ct, startTransition as bt, useCallback as yt } from "react";
|
|
4
|
+
import { transformStateFunc as Nt, isDeepEqual as H, isFunction as q, getNestedValue as B, getDifferences as mt, debounce as Vt } from "./utility.js";
|
|
5
|
+
import { pushFunc as gt, updateFn as rt, cutFunc as st, ValidationWrapper as Pt, FormControlComponent as xt } from "./Functions.jsx";
|
|
6
|
+
import _t from "superjson";
|
|
7
|
+
import { v4 as ht } from "uuid";
|
|
8
8
|
import "zod";
|
|
9
|
-
import { getGlobalStore as r, formRefStore as
|
|
10
|
-
import { useCogsConfig as
|
|
11
|
-
import { applyPatch as
|
|
12
|
-
import
|
|
13
|
-
function
|
|
14
|
-
const
|
|
9
|
+
import { getGlobalStore as r, formRefStore as It } from "./store.js";
|
|
10
|
+
import { useCogsConfig as Et } from "./CogsStateClient.jsx";
|
|
11
|
+
import { applyPatch as Ot } from "fast-json-patch";
|
|
12
|
+
import Mt from "react-use-measure";
|
|
13
|
+
function pt(t, i) {
|
|
14
|
+
const h = r.getState().getInitialOptions, f = r.getState().setInitialStateOptions, I = h(t) || {};
|
|
15
15
|
f(t, {
|
|
16
|
-
...
|
|
17
|
-
...
|
|
16
|
+
...I,
|
|
17
|
+
...i
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
function
|
|
20
|
+
function wt({
|
|
21
21
|
stateKey: t,
|
|
22
|
-
options:
|
|
23
|
-
initialOptionsPart:
|
|
22
|
+
options: i,
|
|
23
|
+
initialOptionsPart: h
|
|
24
24
|
}) {
|
|
25
|
-
const f =
|
|
26
|
-
let
|
|
27
|
-
if (
|
|
28
|
-
for (const a in
|
|
29
|
-
|
|
30
|
-
!
|
|
31
|
-
|
|
25
|
+
const f = K(t) || {}, I = h[t] || {}, k = r.getState().setInitialStateOptions, w = { ...I, ...f };
|
|
26
|
+
let p = !1;
|
|
27
|
+
if (i)
|
|
28
|
+
for (const a in i)
|
|
29
|
+
w.hasOwnProperty(a) ? (a == "localStorage" && i[a] && w[a].key !== i[a]?.key && (p = !0, w[a] = i[a]), a == "initialState" && i[a] && w[a] !== i[a] && // Different references
|
|
30
|
+
!H(w[a], i[a]) && (p = !0, w[a] = i[a])) : (p = !0, w[a] = i[a]);
|
|
31
|
+
p && k(t, w);
|
|
32
32
|
}
|
|
33
|
-
function
|
|
34
|
-
return { initialState: t, formElements:
|
|
33
|
+
function re(t, { formElements: i, validation: h }) {
|
|
34
|
+
return { initialState: t, formElements: i, validation: h };
|
|
35
35
|
}
|
|
36
|
-
const
|
|
37
|
-
let
|
|
38
|
-
const [f,
|
|
39
|
-
(Object.keys(
|
|
40
|
-
|
|
41
|
-
...
|
|
36
|
+
const oe = (t, i) => {
|
|
37
|
+
let h = t;
|
|
38
|
+
const [f, I] = Nt(h);
|
|
39
|
+
(Object.keys(I).length > 0 || i && Object.keys(i).length > 0) && Object.keys(I).forEach((p) => {
|
|
40
|
+
I[p] = I[p] || {}, I[p].formElements = {
|
|
41
|
+
...i?.formElements,
|
|
42
42
|
// Global defaults first
|
|
43
|
-
...
|
|
44
|
-
...
|
|
43
|
+
...i?.validation,
|
|
44
|
+
...I[p].formElements || {}
|
|
45
45
|
// State-specific overrides
|
|
46
|
-
},
|
|
46
|
+
}, K(p) || r.getState().setInitialStateOptions(p, I[p]);
|
|
47
47
|
}), r.getState().setInitialStates(f), r.getState().setCreatedState(f);
|
|
48
|
-
const k = (
|
|
49
|
-
const [
|
|
50
|
-
|
|
51
|
-
stateKey:
|
|
48
|
+
const k = (p, a) => {
|
|
49
|
+
const [y] = Y(a?.componentId ?? ht());
|
|
50
|
+
wt({
|
|
51
|
+
stateKey: p,
|
|
52
52
|
options: a,
|
|
53
|
-
initialOptionsPart:
|
|
53
|
+
initialOptionsPart: I
|
|
54
54
|
});
|
|
55
|
-
const n = r.getState().cogsStateStore[
|
|
55
|
+
const n = r.getState().cogsStateStore[p] || f[p], S = a?.modifyState ? a.modifyState(n) : n, [F, U] = Gt(
|
|
56
56
|
S,
|
|
57
57
|
{
|
|
58
|
-
stateKey:
|
|
58
|
+
stateKey: p,
|
|
59
59
|
syncUpdate: a?.syncUpdate,
|
|
60
|
-
componentId:
|
|
60
|
+
componentId: y,
|
|
61
61
|
localStorage: a?.localStorage,
|
|
62
62
|
middleware: a?.middleware,
|
|
63
63
|
enabledSync: a?.enabledSync,
|
|
@@ -70,109 +70,109 @@ const le = (t, c) => {
|
|
|
70
70
|
);
|
|
71
71
|
return U;
|
|
72
72
|
};
|
|
73
|
-
function p
|
|
74
|
-
|
|
73
|
+
function w(p, a) {
|
|
74
|
+
wt({ stateKey: p, options: a, initialOptionsPart: I }), a.localStorage && Dt(p, a), ut(p);
|
|
75
75
|
}
|
|
76
|
-
return { useCogsState: k, setCogsOptions:
|
|
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
|
-
} = r.getState(),
|
|
89
|
-
|
|
78
|
+
setUpdaterState: ct,
|
|
79
|
+
setState: X,
|
|
80
|
+
getInitialOptions: K,
|
|
81
|
+
getKeyState: $t,
|
|
82
|
+
getValidationErrors: Rt,
|
|
83
|
+
setStateLog: Ut,
|
|
84
|
+
updateInitialStateGlobal: vt,
|
|
85
|
+
addValidationError: jt,
|
|
86
|
+
removeValidationError: z,
|
|
87
|
+
setServerSyncActions: Lt
|
|
88
|
+
} = r.getState(), At = (t, i, h, f, I) => {
|
|
89
|
+
h?.log && console.log(
|
|
90
90
|
"saving to localstorage",
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
i,
|
|
92
|
+
h.localStorage?.key,
|
|
93
93
|
f
|
|
94
94
|
);
|
|
95
|
-
const k =
|
|
95
|
+
const k = q(h?.localStorage?.key) ? h.localStorage?.key(t) : h?.localStorage?.key;
|
|
96
96
|
if (k && f) {
|
|
97
|
-
const
|
|
98
|
-
let
|
|
97
|
+
const w = `${f}-${i}-${k}`;
|
|
98
|
+
let p;
|
|
99
99
|
try {
|
|
100
|
-
|
|
100
|
+
p = dt(w)?.lastSyncedWithServer;
|
|
101
101
|
} catch {
|
|
102
102
|
}
|
|
103
103
|
const a = {
|
|
104
104
|
state: t,
|
|
105
105
|
lastUpdated: Date.now(),
|
|
106
|
-
lastSyncedWithServer:
|
|
107
|
-
},
|
|
106
|
+
lastSyncedWithServer: I ?? p
|
|
107
|
+
}, y = _t.serialize(a);
|
|
108
108
|
window.localStorage.setItem(
|
|
109
|
-
|
|
110
|
-
JSON.stringify(
|
|
109
|
+
w,
|
|
110
|
+
JSON.stringify(y.json)
|
|
111
111
|
);
|
|
112
112
|
}
|
|
113
|
-
},
|
|
113
|
+
}, dt = (t) => {
|
|
114
114
|
if (!t) return null;
|
|
115
115
|
try {
|
|
116
|
-
const
|
|
117
|
-
return
|
|
118
|
-
} catch (
|
|
119
|
-
return console.error("Error loading from localStorage:",
|
|
116
|
+
const i = window.localStorage.getItem(t);
|
|
117
|
+
return i ? JSON.parse(i) : null;
|
|
118
|
+
} catch (i) {
|
|
119
|
+
return console.error("Error loading from localStorage:", i), null;
|
|
120
120
|
}
|
|
121
|
-
},
|
|
122
|
-
const
|
|
123
|
-
if (
|
|
124
|
-
const k =
|
|
125
|
-
`${f}-${t}-${
|
|
121
|
+
}, Dt = (t, i) => {
|
|
122
|
+
const h = r.getState().cogsStateStore[t], { sessionId: f } = Et(), I = q(i?.localStorage?.key) ? i.localStorage.key(h) : i?.localStorage?.key;
|
|
123
|
+
if (I && f) {
|
|
124
|
+
const k = dt(
|
|
125
|
+
`${f}-${t}-${I}`
|
|
126
126
|
);
|
|
127
127
|
if (k && k.lastUpdated > (k.lastSyncedWithServer || 0))
|
|
128
|
-
return
|
|
128
|
+
return X(t, k.state), ut(t), !0;
|
|
129
129
|
}
|
|
130
130
|
return !1;
|
|
131
|
-
},
|
|
132
|
-
const
|
|
133
|
-
initialState:
|
|
134
|
-
updaterState:
|
|
131
|
+
}, kt = (t, i, h, f, I, k) => {
|
|
132
|
+
const w = {
|
|
133
|
+
initialState: i,
|
|
134
|
+
updaterState: lt(
|
|
135
135
|
t,
|
|
136
136
|
f,
|
|
137
|
-
|
|
137
|
+
I,
|
|
138
138
|
k
|
|
139
139
|
),
|
|
140
|
-
state:
|
|
140
|
+
state: h
|
|
141
141
|
};
|
|
142
|
-
|
|
143
|
-
},
|
|
144
|
-
const
|
|
145
|
-
if (!
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
(f ? Array.isArray(f.reactiveType) ? f.reactiveType : [f.reactiveType || "component"] : null)?.includes("none") ||
|
|
142
|
+
vt(t, w.initialState), ct(t, w.updaterState), X(t, w.state);
|
|
143
|
+
}, ut = (t) => {
|
|
144
|
+
const i = r.getState().stateComponents.get(t);
|
|
145
|
+
if (!i) return;
|
|
146
|
+
const h = /* @__PURE__ */ new Set();
|
|
147
|
+
i.components.forEach((f) => {
|
|
148
|
+
(f ? Array.isArray(f.reactiveType) ? f.reactiveType : [f.reactiveType || "component"] : null)?.includes("none") || h.add(() => f.forceUpdate());
|
|
149
149
|
}), queueMicrotask(() => {
|
|
150
|
-
|
|
150
|
+
h.forEach((f) => f());
|
|
151
151
|
});
|
|
152
|
-
},
|
|
153
|
-
const
|
|
154
|
-
if (
|
|
155
|
-
const f = `${t}////${
|
|
156
|
-
if ((
|
|
152
|
+
}, ae = (t, i) => {
|
|
153
|
+
const h = r.getState().stateComponents.get(t);
|
|
154
|
+
if (h) {
|
|
155
|
+
const f = `${t}////${i}`, I = h.components.get(f);
|
|
156
|
+
if ((I ? Array.isArray(I.reactiveType) ? I.reactiveType : [I.reactiveType || "component"] : null)?.includes("none"))
|
|
157
157
|
return;
|
|
158
|
-
|
|
158
|
+
I && I.forceUpdate();
|
|
159
159
|
}
|
|
160
|
-
},
|
|
160
|
+
}, Ft = (t, i, h, f) => {
|
|
161
161
|
switch (t) {
|
|
162
162
|
case "update":
|
|
163
163
|
return {
|
|
164
|
-
oldValue: B(
|
|
165
|
-
newValue: B(
|
|
164
|
+
oldValue: B(i, f),
|
|
165
|
+
newValue: B(h, f)
|
|
166
166
|
};
|
|
167
167
|
case "insert":
|
|
168
168
|
return {
|
|
169
169
|
oldValue: null,
|
|
170
170
|
// or undefined
|
|
171
|
-
newValue: B(
|
|
171
|
+
newValue: B(h, f)
|
|
172
172
|
};
|
|
173
173
|
case "cut":
|
|
174
174
|
return {
|
|
175
|
-
oldValue: B(
|
|
175
|
+
oldValue: B(i, f),
|
|
176
176
|
newValue: null
|
|
177
177
|
// or undefined
|
|
178
178
|
};
|
|
@@ -180,72 +180,72 @@ const le = (t, c) => {
|
|
|
180
180
|
return { oldValue: null, newValue: null };
|
|
181
181
|
}
|
|
182
182
|
};
|
|
183
|
-
function
|
|
184
|
-
stateKey:
|
|
185
|
-
serverSync:
|
|
183
|
+
function Gt(t, {
|
|
184
|
+
stateKey: i,
|
|
185
|
+
serverSync: h,
|
|
186
186
|
localStorage: f,
|
|
187
|
-
formElements:
|
|
187
|
+
formElements: I,
|
|
188
188
|
reactiveDeps: k,
|
|
189
|
-
reactiveType:
|
|
190
|
-
componentId:
|
|
189
|
+
reactiveType: w,
|
|
190
|
+
componentId: p,
|
|
191
191
|
initialState: a,
|
|
192
|
-
syncUpdate:
|
|
192
|
+
syncUpdate: y,
|
|
193
193
|
dependencies: n,
|
|
194
194
|
serverState: S
|
|
195
195
|
} = {}) {
|
|
196
|
-
const [
|
|
197
|
-
let
|
|
198
|
-
const [
|
|
196
|
+
const [F, U] = Y({}), { sessionId: j } = Et();
|
|
197
|
+
let G = !i;
|
|
198
|
+
const [v] = Y(i ?? ht()), l = r.getState().stateLog[v], at = Z(/* @__PURE__ */ new Set()), J = Z(p ?? ht()), M = Z(
|
|
199
199
|
null
|
|
200
200
|
);
|
|
201
|
-
|
|
202
|
-
if (
|
|
203
|
-
|
|
201
|
+
M.current = K(v) ?? null, tt(() => {
|
|
202
|
+
if (y && y.stateKey === v && y.path?.[0]) {
|
|
203
|
+
X(v, (o) => ({
|
|
204
204
|
...o,
|
|
205
|
-
[
|
|
205
|
+
[y.path[0]]: y.newValue
|
|
206
206
|
}));
|
|
207
|
-
const e = `${
|
|
207
|
+
const e = `${y.stateKey}:${y.path.join(".")}`;
|
|
208
208
|
r.getState().setSyncInfo(e, {
|
|
209
|
-
timeStamp:
|
|
210
|
-
userId:
|
|
209
|
+
timeStamp: y.timeStamp,
|
|
210
|
+
userId: y.userId
|
|
211
211
|
});
|
|
212
212
|
}
|
|
213
|
-
}, [
|
|
213
|
+
}, [y]), tt(() => {
|
|
214
214
|
if (a) {
|
|
215
|
-
|
|
215
|
+
pt(v, {
|
|
216
216
|
initialState: a
|
|
217
217
|
});
|
|
218
|
-
const e =
|
|
219
|
-
if (!(
|
|
218
|
+
const e = M.current, s = e?.serverState?.id !== void 0 && e?.serverState?.status === "success" && e?.serverState?.data, c = r.getState().initialStateGlobal[v];
|
|
219
|
+
if (!(c && !H(c, a) || !c) && !s)
|
|
220
220
|
return;
|
|
221
|
-
let
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
let
|
|
225
|
-
const
|
|
226
|
-
s &&
|
|
227
|
-
|
|
221
|
+
let u = null;
|
|
222
|
+
const T = q(e?.localStorage?.key) ? e?.localStorage?.key(a) : e?.localStorage?.key;
|
|
223
|
+
T && j && (u = dt(`${j}-${v}-${T}`));
|
|
224
|
+
let A = a, E = !1;
|
|
225
|
+
const P = s ? Date.now() : 0, V = u?.lastUpdated || 0, N = u?.lastSyncedWithServer || 0;
|
|
226
|
+
s && P > V ? (A = e.serverState.data, E = !0) : u && V > N && (A = u.state, e?.localStorage?.onChange && e?.localStorage?.onChange(A)), r.getState().initializeShadowState(v, a), kt(
|
|
227
|
+
v,
|
|
228
228
|
a,
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
),
|
|
229
|
+
A,
|
|
230
|
+
et,
|
|
231
|
+
J.current,
|
|
232
|
+
j
|
|
233
|
+
), E && T && j && At(A, v, e, j, Date.now()), ut(v), (Array.isArray(w) ? w : [w || "component"]).includes("none") || U({});
|
|
234
234
|
}
|
|
235
235
|
}, [
|
|
236
236
|
a,
|
|
237
237
|
S?.status,
|
|
238
238
|
S?.data,
|
|
239
239
|
...n || []
|
|
240
|
-
]),
|
|
241
|
-
|
|
242
|
-
serverSync:
|
|
243
|
-
formElements:
|
|
240
|
+
]), it(() => {
|
|
241
|
+
G && pt(v, {
|
|
242
|
+
serverSync: h,
|
|
243
|
+
formElements: I,
|
|
244
244
|
initialState: a,
|
|
245
245
|
localStorage: f,
|
|
246
|
-
middleware:
|
|
246
|
+
middleware: M.current?.middleware
|
|
247
247
|
});
|
|
248
|
-
const e = `${
|
|
248
|
+
const e = `${v}////${J.current}`, o = r.getState().stateComponents.get(v) || {
|
|
249
249
|
components: /* @__PURE__ */ new Map()
|
|
250
250
|
};
|
|
251
251
|
return o.components.set(e, {
|
|
@@ -253,253 +253,253 @@ function qt(t, {
|
|
|
253
253
|
paths: /* @__PURE__ */ new Set(),
|
|
254
254
|
deps: [],
|
|
255
255
|
depsFunction: k || void 0,
|
|
256
|
-
reactiveType:
|
|
257
|
-
}), r.getState().stateComponents.set(
|
|
258
|
-
o && (o.components.delete(e), o.components.size === 0 && r.getState().stateComponents.delete(
|
|
256
|
+
reactiveType: w ?? ["component", "deps"]
|
|
257
|
+
}), r.getState().stateComponents.set(v, o), U({}), () => {
|
|
258
|
+
o && (o.components.delete(e), o.components.size === 0 && r.getState().stateComponents.delete(v));
|
|
259
259
|
};
|
|
260
260
|
}, []);
|
|
261
|
-
const
|
|
261
|
+
const et = (e, o, s, c) => {
|
|
262
262
|
if (Array.isArray(o)) {
|
|
263
|
-
const
|
|
264
|
-
at.current.add(
|
|
263
|
+
const u = `${v}-${o.join(".")}`;
|
|
264
|
+
at.current.add(u);
|
|
265
265
|
}
|
|
266
|
-
const
|
|
267
|
-
|
|
268
|
-
const
|
|
269
|
-
if (
|
|
270
|
-
let
|
|
271
|
-
if ((!
|
|
272
|
-
const
|
|
273
|
-
if (Array.isArray(
|
|
274
|
-
|
|
275
|
-
const
|
|
276
|
-
|
|
266
|
+
const g = r.getState();
|
|
267
|
+
X(v, (u) => {
|
|
268
|
+
const T = q(e) ? e(u) : e, A = `${v}-${o.join(".")}`;
|
|
269
|
+
if (A) {
|
|
270
|
+
let O = !1, C = g.signalDomElements.get(A);
|
|
271
|
+
if ((!C || C.size === 0) && (s.updateType === "insert" || s.updateType === "cut")) {
|
|
272
|
+
const R = o.slice(0, -1), L = B(T, R);
|
|
273
|
+
if (Array.isArray(L)) {
|
|
274
|
+
O = !0;
|
|
275
|
+
const m = `${v}-${R.join(".")}`;
|
|
276
|
+
C = g.signalDomElements.get(m);
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
|
-
if (
|
|
280
|
-
const
|
|
281
|
-
|
|
279
|
+
if (C) {
|
|
280
|
+
const R = O ? B(T, o.slice(0, -1)) : B(T, o);
|
|
281
|
+
C.forEach(({ parentId: L, position: m, effect: $ }) => {
|
|
282
282
|
const b = document.querySelector(
|
|
283
|
-
`[data-parent-id="${
|
|
283
|
+
`[data-parent-id="${L}"]`
|
|
284
284
|
);
|
|
285
285
|
if (b) {
|
|
286
|
-
const
|
|
287
|
-
if (
|
|
288
|
-
const
|
|
289
|
-
|
|
286
|
+
const x = Array.from(b.childNodes);
|
|
287
|
+
if (x[m]) {
|
|
288
|
+
const _ = $ ? new Function("state", `return (${$})(state)`)(R) : R;
|
|
289
|
+
x[m].textContent = String(_);
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
292
|
});
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
|
-
console.log("shadowState",
|
|
296
|
-
(
|
|
295
|
+
console.log("shadowState", g.shadowStateStore), s.updateType === "update" && (c || M.current?.validation?.key) && o && z(
|
|
296
|
+
(c || M.current?.validation?.key) + "." + o.join(".")
|
|
297
297
|
);
|
|
298
|
-
const
|
|
299
|
-
s.updateType === "cut" &&
|
|
300
|
-
|
|
301
|
-
), s.updateType === "insert" &&
|
|
302
|
-
|
|
303
|
-
).filter(([
|
|
304
|
-
let
|
|
305
|
-
if (
|
|
306
|
-
let
|
|
307
|
-
|
|
298
|
+
const E = o.slice(0, o.length - 1);
|
|
299
|
+
s.updateType === "cut" && M.current?.validation?.key && z(
|
|
300
|
+
M.current?.validation?.key + "." + E.join(".")
|
|
301
|
+
), s.updateType === "insert" && M.current?.validation?.key && Rt(
|
|
302
|
+
M.current?.validation?.key + "." + E.join(".")
|
|
303
|
+
).filter(([C, R]) => {
|
|
304
|
+
let L = C?.split(".").length;
|
|
305
|
+
if (C == E.join(".") && L == E.length - 1) {
|
|
306
|
+
let m = C + "." + E;
|
|
307
|
+
z(C), jt(m, R);
|
|
308
308
|
}
|
|
309
309
|
});
|
|
310
|
-
const
|
|
311
|
-
if (console.log("stateEntry >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>",
|
|
312
|
-
const
|
|
310
|
+
const P = g.stateComponents.get(v);
|
|
311
|
+
if (console.log("stateEntry >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", P), P) {
|
|
312
|
+
const O = mt(u, T), C = new Set(O), R = s.updateType === "update" ? o.join(".") : o.slice(0, -1).join(".") || "";
|
|
313
313
|
for (const [
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
] of
|
|
317
|
-
let
|
|
318
|
-
const b = Array.isArray(
|
|
319
|
-
if (console.log("component",
|
|
314
|
+
L,
|
|
315
|
+
m
|
|
316
|
+
] of P.components.entries()) {
|
|
317
|
+
let $ = !1;
|
|
318
|
+
const b = Array.isArray(m.reactiveType) ? m.reactiveType : [m.reactiveType || "component"];
|
|
319
|
+
if (console.log("component", m), !b.includes("none")) {
|
|
320
320
|
if (b.includes("all")) {
|
|
321
|
-
|
|
321
|
+
m.forceUpdate();
|
|
322
322
|
continue;
|
|
323
323
|
}
|
|
324
|
-
if (b.includes("component") && ((
|
|
325
|
-
for (const
|
|
326
|
-
let
|
|
324
|
+
if (b.includes("component") && ((m.paths.has(R) || m.paths.has("")) && ($ = !0), !$))
|
|
325
|
+
for (const x of C) {
|
|
326
|
+
let _ = x;
|
|
327
327
|
for (; ; ) {
|
|
328
|
-
if (
|
|
329
|
-
|
|
328
|
+
if (m.paths.has(_)) {
|
|
329
|
+
$ = !0;
|
|
330
330
|
break;
|
|
331
331
|
}
|
|
332
|
-
const
|
|
333
|
-
if (
|
|
334
|
-
const
|
|
332
|
+
const Q = _.lastIndexOf(".");
|
|
333
|
+
if (Q !== -1) {
|
|
334
|
+
const nt = _.substring(
|
|
335
335
|
0,
|
|
336
|
-
|
|
336
|
+
Q
|
|
337
337
|
);
|
|
338
338
|
if (!isNaN(
|
|
339
|
-
Number(
|
|
340
|
-
) &&
|
|
341
|
-
|
|
339
|
+
Number(_.substring(Q + 1))
|
|
340
|
+
) && m.paths.has(nt)) {
|
|
341
|
+
$ = !0;
|
|
342
342
|
break;
|
|
343
343
|
}
|
|
344
|
-
|
|
344
|
+
_ = nt;
|
|
345
345
|
} else
|
|
346
|
-
|
|
347
|
-
if (
|
|
346
|
+
_ = "";
|
|
347
|
+
if (_ === "")
|
|
348
348
|
break;
|
|
349
349
|
}
|
|
350
|
-
if (
|
|
350
|
+
if ($) break;
|
|
351
351
|
}
|
|
352
|
-
if (
|
|
353
|
-
const
|
|
354
|
-
let
|
|
355
|
-
typeof
|
|
352
|
+
if (!$ && b.includes("deps") && m.depsFunction) {
|
|
353
|
+
const x = m.depsFunction(T);
|
|
354
|
+
let _ = !1;
|
|
355
|
+
typeof x == "boolean" ? x && (_ = !0) : H(m.deps, x) || (m.deps = x, _ = !0), _ && ($ = !0);
|
|
356
356
|
}
|
|
357
|
-
|
|
357
|
+
$ && m.forceUpdate();
|
|
358
358
|
}
|
|
359
359
|
}
|
|
360
360
|
}
|
|
361
|
-
const
|
|
362
|
-
o = o.map((
|
|
363
|
-
const
|
|
364
|
-
return
|
|
361
|
+
const V = Date.now();
|
|
362
|
+
o = o.map((O, C) => {
|
|
363
|
+
const R = o.slice(0, -1), L = B(T, R);
|
|
364
|
+
return C === o.length - 1 && ["insert", "cut"].includes(s.updateType) ? (L.length - 1).toString() : O;
|
|
365
365
|
});
|
|
366
|
-
const { oldValue:
|
|
366
|
+
const { oldValue: N, newValue: D } = Ft(
|
|
367
367
|
s.updateType,
|
|
368
|
-
|
|
369
|
-
|
|
368
|
+
u,
|
|
369
|
+
T,
|
|
370
370
|
o
|
|
371
|
-
),
|
|
372
|
-
timeStamp:
|
|
373
|
-
stateKey:
|
|
371
|
+
), W = {
|
|
372
|
+
timeStamp: V,
|
|
373
|
+
stateKey: v,
|
|
374
374
|
path: o,
|
|
375
375
|
updateType: s.updateType,
|
|
376
376
|
status: "new",
|
|
377
|
-
oldValue:
|
|
378
|
-
newValue:
|
|
377
|
+
oldValue: N,
|
|
378
|
+
newValue: D
|
|
379
379
|
};
|
|
380
380
|
switch (s.updateType) {
|
|
381
381
|
case "update":
|
|
382
|
-
|
|
382
|
+
g.updateShadowAtPath(v, o, T);
|
|
383
383
|
break;
|
|
384
384
|
case "insert":
|
|
385
|
-
const
|
|
386
|
-
|
|
385
|
+
const O = o.slice(0, -1);
|
|
386
|
+
g.insertShadowArrayElement(v, O, D);
|
|
387
387
|
break;
|
|
388
388
|
case "cut":
|
|
389
|
-
const
|
|
390
|
-
|
|
389
|
+
const C = o.slice(0, -1), R = parseInt(o[o.length - 1]);
|
|
390
|
+
g.removeShadowArrayElement(v, C, R);
|
|
391
391
|
break;
|
|
392
392
|
}
|
|
393
|
-
if (
|
|
394
|
-
const
|
|
395
|
-
const
|
|
396
|
-
return b ? (b.timeStamp = Math.max(b.timeStamp,
|
|
393
|
+
if (Ut(v, (O) => {
|
|
394
|
+
const R = [...O ?? [], W].reduce((L, m) => {
|
|
395
|
+
const $ = `${m.stateKey}:${JSON.stringify(m.path)}`, b = L.get($);
|
|
396
|
+
return b ? (b.timeStamp = Math.max(b.timeStamp, m.timeStamp), b.newValue = m.newValue, b.oldValue = b.oldValue ?? m.oldValue, b.updateType = m.updateType) : L.set($, { ...m }), L;
|
|
397
397
|
}, /* @__PURE__ */ new Map());
|
|
398
|
-
return Array.from(
|
|
399
|
-
}),
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
),
|
|
398
|
+
return Array.from(R.values());
|
|
399
|
+
}), At(
|
|
400
|
+
T,
|
|
401
|
+
v,
|
|
402
|
+
M.current,
|
|
403
|
+
j
|
|
404
|
+
), M.current?.middleware && M.current.middleware({
|
|
405
405
|
updateLog: l,
|
|
406
|
-
update:
|
|
407
|
-
}),
|
|
408
|
-
const
|
|
409
|
-
|
|
410
|
-
syncKey: typeof
|
|
411
|
-
rollBackState:
|
|
412
|
-
actionTimeStamp: Date.now() + (
|
|
406
|
+
update: W
|
|
407
|
+
}), M.current?.serverSync) {
|
|
408
|
+
const O = g.serverState[v], C = M.current?.serverSync;
|
|
409
|
+
Lt(v, {
|
|
410
|
+
syncKey: typeof C.syncKey == "string" ? C.syncKey : C.syncKey({ state: T }),
|
|
411
|
+
rollBackState: O,
|
|
412
|
+
actionTimeStamp: Date.now() + (C.debounce ?? 3e3),
|
|
413
413
|
status: "waiting"
|
|
414
414
|
});
|
|
415
415
|
}
|
|
416
|
-
return
|
|
416
|
+
return T;
|
|
417
417
|
});
|
|
418
418
|
};
|
|
419
|
-
r.getState().updaterState[
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
419
|
+
r.getState().updaterState[v] || (ct(
|
|
420
|
+
v,
|
|
421
|
+
lt(
|
|
422
|
+
v,
|
|
423
|
+
et,
|
|
424
|
+
J.current,
|
|
425
|
+
j
|
|
426
426
|
)
|
|
427
|
-
), r.getState().cogsStateStore[
|
|
428
|
-
const d =
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
), [
|
|
434
|
-
return [
|
|
427
|
+
), r.getState().cogsStateStore[v] || X(v, t), r.getState().initialStateGlobal[v] || vt(v, t));
|
|
428
|
+
const d = St(() => lt(
|
|
429
|
+
v,
|
|
430
|
+
et,
|
|
431
|
+
J.current,
|
|
432
|
+
j
|
|
433
|
+
), [v, j]);
|
|
434
|
+
return [$t(v), d];
|
|
435
435
|
}
|
|
436
|
-
function
|
|
437
|
-
const
|
|
436
|
+
function lt(t, i, h, f) {
|
|
437
|
+
const I = /* @__PURE__ */ new Map();
|
|
438
438
|
let k = 0;
|
|
439
|
-
const
|
|
440
|
-
const n =
|
|
441
|
-
for (const [S] of
|
|
442
|
-
(S === n || S.startsWith(n + ".")) &&
|
|
439
|
+
const w = (y) => {
|
|
440
|
+
const n = y.join(".");
|
|
441
|
+
for (const [S] of I)
|
|
442
|
+
(S === n || S.startsWith(n + ".")) && I.delete(S);
|
|
443
443
|
k++;
|
|
444
|
-
},
|
|
445
|
-
removeValidation: (
|
|
446
|
-
|
|
444
|
+
}, p = {
|
|
445
|
+
removeValidation: (y) => {
|
|
446
|
+
y?.validationKey && z(y.validationKey);
|
|
447
447
|
},
|
|
448
|
-
revertToInitialState: (
|
|
448
|
+
revertToInitialState: (y) => {
|
|
449
449
|
const n = r.getState().getInitialOptions(t)?.validation;
|
|
450
|
-
n?.key &&
|
|
450
|
+
n?.key && z(n?.key), y?.validationKey && z(y.validationKey);
|
|
451
451
|
const S = r.getState().initialStateGlobal[t];
|
|
452
|
-
r.getState().clearSelectedIndexesForState(t),
|
|
453
|
-
const
|
|
454
|
-
|
|
455
|
-
const
|
|
456
|
-
return
|
|
452
|
+
r.getState().clearSelectedIndexesForState(t), I.clear(), k++;
|
|
453
|
+
const F = a(S, []), U = K(t), j = q(U?.localStorage?.key) ? U?.localStorage?.key(S) : U?.localStorage?.key, G = `${f}-${t}-${j}`;
|
|
454
|
+
G && localStorage.removeItem(G), ct(t, F), X(t, S);
|
|
455
|
+
const v = r.getState().stateComponents.get(t);
|
|
456
|
+
return v && v.components.forEach((l) => {
|
|
457
457
|
l.forceUpdate();
|
|
458
458
|
}), S;
|
|
459
459
|
},
|
|
460
|
-
updateInitialState: (
|
|
461
|
-
|
|
462
|
-
const n =
|
|
460
|
+
updateInitialState: (y) => {
|
|
461
|
+
I.clear(), k++;
|
|
462
|
+
const n = lt(
|
|
463
463
|
t,
|
|
464
|
-
|
|
465
|
-
|
|
464
|
+
i,
|
|
465
|
+
h,
|
|
466
466
|
f
|
|
467
|
-
), S = r.getState().initialStateGlobal[t],
|
|
468
|
-
return localStorage.getItem(
|
|
469
|
-
|
|
470
|
-
const
|
|
471
|
-
|
|
472
|
-
|
|
467
|
+
), S = r.getState().initialStateGlobal[t], F = K(t), U = q(F?.localStorage?.key) ? F?.localStorage?.key(S) : F?.localStorage?.key, j = `${f}-${t}-${U}`;
|
|
468
|
+
return localStorage.getItem(j) && localStorage.removeItem(j), bt(() => {
|
|
469
|
+
vt(t, y), r.getState().initializeShadowState(t, y), ct(t, n), X(t, y);
|
|
470
|
+
const G = r.getState().stateComponents.get(t);
|
|
471
|
+
G && G.components.forEach((v) => {
|
|
472
|
+
v.forceUpdate();
|
|
473
473
|
});
|
|
474
474
|
}), {
|
|
475
|
-
fetchId: (
|
|
475
|
+
fetchId: (G) => n.get()[G]
|
|
476
476
|
};
|
|
477
477
|
},
|
|
478
478
|
_initialState: r.getState().initialStateGlobal[t],
|
|
479
479
|
_serverState: r.getState().serverState[t],
|
|
480
480
|
_isLoading: r.getState().isLoadingGlobal[t],
|
|
481
481
|
_isServerSynced: () => {
|
|
482
|
-
const
|
|
483
|
-
return !!(
|
|
482
|
+
const y = r.getState().serverState[t];
|
|
483
|
+
return !!(y && H(y, $t(t)));
|
|
484
484
|
}
|
|
485
485
|
};
|
|
486
|
-
function a(
|
|
487
|
-
const
|
|
488
|
-
|
|
486
|
+
function a(y, n = [], S) {
|
|
487
|
+
const F = n.map(String).join(".");
|
|
488
|
+
I.get(F);
|
|
489
489
|
const U = function() {
|
|
490
490
|
return r().getNestedState(t, n);
|
|
491
491
|
};
|
|
492
|
-
Object.keys(
|
|
493
|
-
U[
|
|
492
|
+
Object.keys(p).forEach((v) => {
|
|
493
|
+
U[v] = p[v];
|
|
494
494
|
});
|
|
495
|
-
const
|
|
496
|
-
apply(
|
|
495
|
+
const j = {
|
|
496
|
+
apply(v, l, at) {
|
|
497
497
|
return console.log(
|
|
498
498
|
`PROXY APPLY TRAP HIT: stateKey=${t}, path=${n.join(".")}`
|
|
499
499
|
), console.trace("Apply trap stack trace"), r().getNestedState(t, n);
|
|
500
500
|
},
|
|
501
|
-
get(
|
|
502
|
-
S?.validIndices && !Array.isArray(
|
|
501
|
+
get(v, l) {
|
|
502
|
+
S?.validIndices && !Array.isArray(y) && (S = { ...S, validIndices: void 0 });
|
|
503
503
|
const at = /* @__PURE__ */ new Set([
|
|
504
504
|
"insert",
|
|
505
505
|
"cut",
|
|
@@ -524,23 +524,23 @@ function ut(t, c, m, f) {
|
|
|
524
524
|
"getComponents"
|
|
525
525
|
]);
|
|
526
526
|
if (l !== "then" && !l.startsWith("$") && l !== "stateMapNoRender" && !at.has(l)) {
|
|
527
|
-
const d = `${t}////${
|
|
527
|
+
const d = `${t}////${h}`, e = r.getState().stateComponents.get(t);
|
|
528
528
|
if (e) {
|
|
529
529
|
const o = e.components.get(d);
|
|
530
530
|
if (o && !o.paths.has("")) {
|
|
531
531
|
const s = n.join(".");
|
|
532
|
-
let
|
|
533
|
-
for (const
|
|
534
|
-
if (s.startsWith(
|
|
535
|
-
|
|
532
|
+
let c = !0;
|
|
533
|
+
for (const g of o.paths)
|
|
534
|
+
if (s.startsWith(g) && (s === g || s[g.length] === ".")) {
|
|
535
|
+
c = !1;
|
|
536
536
|
break;
|
|
537
537
|
}
|
|
538
|
-
|
|
538
|
+
c && o.paths.add(s);
|
|
539
539
|
}
|
|
540
540
|
}
|
|
541
541
|
}
|
|
542
542
|
if (l === "getDifferences")
|
|
543
|
-
return () =>
|
|
543
|
+
return () => mt(
|
|
544
544
|
r.getState().cogsStateStore[t],
|
|
545
545
|
r.getState().initialStateGlobal[t]
|
|
546
546
|
);
|
|
@@ -551,25 +551,25 @@ function ut(t, c, m, f) {
|
|
|
551
551
|
return console.error(`No mutation defined for state key "${t}"`), { success: !1, error: "No mutation defined" };
|
|
552
552
|
const o = r.getState().getNestedState(t, []), s = d?.validation?.key;
|
|
553
553
|
try {
|
|
554
|
-
const
|
|
555
|
-
if (
|
|
556
|
-
r.getState().removeValidationError(s),
|
|
557
|
-
const
|
|
558
|
-
r.getState().addValidationError(
|
|
554
|
+
const c = await e.action(o);
|
|
555
|
+
if (c && !c.success && c.errors && s) {
|
|
556
|
+
r.getState().removeValidationError(s), c.errors.forEach((u) => {
|
|
557
|
+
const T = [s, ...u.path].join(".");
|
|
558
|
+
r.getState().addValidationError(T, u.message);
|
|
559
559
|
});
|
|
560
|
-
const
|
|
561
|
-
|
|
562
|
-
|
|
560
|
+
const g = r.getState().stateComponents.get(t);
|
|
561
|
+
g && g.components.forEach((u) => {
|
|
562
|
+
u.forceUpdate();
|
|
563
563
|
});
|
|
564
564
|
}
|
|
565
|
-
return
|
|
566
|
-
} catch (
|
|
567
|
-
return e.onError && e.onError(
|
|
565
|
+
return c?.success && e.onSuccess ? e.onSuccess(c.data) : !c?.success && e.onError && e.onError(c.error), c;
|
|
566
|
+
} catch (c) {
|
|
567
|
+
return e.onError && e.onError(c), { success: !1, error: c };
|
|
568
568
|
}
|
|
569
569
|
};
|
|
570
570
|
if (l === "_status") {
|
|
571
571
|
const d = r.getState().getNestedState(t, n), e = r.getState().initialStateGlobal[t], o = B(e, n);
|
|
572
|
-
return
|
|
572
|
+
return H(d, o) ? "fresh" : "stale";
|
|
573
573
|
}
|
|
574
574
|
if (l === "getStatus")
|
|
575
575
|
return function() {
|
|
@@ -577,11 +577,11 @@ function ut(t, c, m, f) {
|
|
|
577
577
|
t,
|
|
578
578
|
n
|
|
579
579
|
), e = r.getState().initialStateGlobal[t], o = B(e, n);
|
|
580
|
-
return
|
|
580
|
+
return H(d, o) ? "fresh" : "stale";
|
|
581
581
|
};
|
|
582
582
|
if (l === "removeStorage")
|
|
583
583
|
return () => {
|
|
584
|
-
const d = r.getState().initialStateGlobal[t], e =
|
|
584
|
+
const d = r.getState().initialStateGlobal[t], e = K(t), o = q(e?.localStorage?.key) ? e?.localStorage?.key(d) : e?.localStorage?.key, s = `${f}-${t}-${o}`;
|
|
585
585
|
s && localStorage.removeItem(s);
|
|
586
586
|
};
|
|
587
587
|
if (l === "showValidationErrors")
|
|
@@ -591,8 +591,8 @@ function ut(t, c, m, f) {
|
|
|
591
591
|
throw new Error("Validation key not found");
|
|
592
592
|
return r.getState().getValidationErrors(d.key + "." + n.join("."));
|
|
593
593
|
};
|
|
594
|
-
if (Array.isArray(
|
|
595
|
-
const d = () => S?.validIndices ?
|
|
594
|
+
if (Array.isArray(y)) {
|
|
595
|
+
const d = () => S?.validIndices ? y.map((o, s) => ({
|
|
596
596
|
item: o,
|
|
597
597
|
originalIndex: S.validIndices[s]
|
|
598
598
|
})) : r.getState().getNestedState(t, n).map((o, s) => ({
|
|
@@ -604,7 +604,7 @@ function ut(t, c, m, f) {
|
|
|
604
604
|
const e = r.getState().getSelectedIndex(t, n.join("."));
|
|
605
605
|
if (e !== void 0)
|
|
606
606
|
return a(
|
|
607
|
-
|
|
607
|
+
y[e],
|
|
608
608
|
[...n, e.toString()],
|
|
609
609
|
S
|
|
610
610
|
);
|
|
@@ -620,173 +620,167 @@ function ut(t, c, m, f) {
|
|
|
620
620
|
const {
|
|
621
621
|
itemHeight: o = 50,
|
|
622
622
|
overscan: s = 6,
|
|
623
|
-
stickToBottom:
|
|
624
|
-
} = e,
|
|
625
|
-
startIndex:
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
} : { startIndex: 0, endIndex: 10 }, [w, E] = X(g), A = Q(i), [M, P] = X(0);
|
|
631
|
-
et(() => r.getState().subscribeToShadowState(t, () => {
|
|
632
|
-
P((b) => b + 1);
|
|
623
|
+
stickToBottom: c = !1
|
|
624
|
+
} = e, g = Z(null), [u, T] = Y({
|
|
625
|
+
startIndex: 0,
|
|
626
|
+
endIndex: 10
|
|
627
|
+
}), A = Z(c), [E, P] = Y(0);
|
|
628
|
+
tt(() => r.getState().subscribeToShadowState(t, () => {
|
|
629
|
+
P(($) => $ + 1);
|
|
633
630
|
}), [t]);
|
|
634
|
-
const
|
|
631
|
+
const V = r().getNestedState(
|
|
635
632
|
t,
|
|
636
633
|
n
|
|
637
|
-
),
|
|
638
|
-
const
|
|
639
|
-
let
|
|
640
|
-
const
|
|
641
|
-
for (let
|
|
642
|
-
|
|
643
|
-
const
|
|
644
|
-
|
|
634
|
+
), N = V.length, { totalHeight: D, positions: W } = St(() => {
|
|
635
|
+
const m = r.getState().getShadowMetadata(t, n) || [];
|
|
636
|
+
let $ = 0;
|
|
637
|
+
const b = [];
|
|
638
|
+
for (let x = 0; x < N; x++) {
|
|
639
|
+
b[x] = $;
|
|
640
|
+
const _ = m[x]?.virtualizer?.itemHeight;
|
|
641
|
+
$ += _ || o;
|
|
645
642
|
}
|
|
646
|
-
return { totalHeight:
|
|
643
|
+
return { totalHeight: $, positions: b };
|
|
647
644
|
}, [
|
|
648
|
-
|
|
645
|
+
N,
|
|
649
646
|
t,
|
|
650
647
|
n.join("."),
|
|
651
648
|
o,
|
|
652
|
-
|
|
653
|
-
]),
|
|
654
|
-
const
|
|
655
|
-
{ length:
|
|
656
|
-
(
|
|
657
|
-
),
|
|
658
|
-
return a(
|
|
649
|
+
E
|
|
650
|
+
]), O = St(() => {
|
|
651
|
+
const m = Math.max(0, u.startIndex), $ = Math.min(N, u.endIndex), b = Array.from(
|
|
652
|
+
{ length: $ - m },
|
|
653
|
+
(_, Q) => m + Q
|
|
654
|
+
), x = b.map((_) => V[_]);
|
|
655
|
+
return a(x, n, {
|
|
659
656
|
...S,
|
|
660
|
-
validIndices:
|
|
657
|
+
validIndices: b
|
|
661
658
|
});
|
|
662
|
-
}, [
|
|
663
|
-
|
|
664
|
-
const
|
|
665
|
-
if (!
|
|
659
|
+
}, [u.startIndex, u.endIndex, V, N]);
|
|
660
|
+
it(() => {
|
|
661
|
+
const m = g.current;
|
|
662
|
+
if (!m || !A.current || N === 0)
|
|
666
663
|
return;
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
});
|
|
696
|
-
}, j = () => {
|
|
697
|
-
T.scrollHeight - T.scrollTop - T.clientHeight < 1 || (A.current = !1), b();
|
|
664
|
+
console.log("ALGORITHM: Starting..."), T({
|
|
665
|
+
startIndex: Math.max(0, N - 10 - s),
|
|
666
|
+
endIndex: N
|
|
667
|
+
}), console.log(
|
|
668
|
+
"ALGORITHM: Starting LOOP to wait for measurement."
|
|
669
|
+
);
|
|
670
|
+
let b = 0;
|
|
671
|
+
const x = setInterval(() => {
|
|
672
|
+
b++, console.log(`LOOP ${b}: Checking last item...`);
|
|
673
|
+
const _ = N - 1, nt = (r.getState().getShadowMetadata(t, n) || [])[_]?.virtualizer?.itemHeight || 0;
|
|
674
|
+
nt > 0 ? (console.log(
|
|
675
|
+
`%cSUCCESS: Last item height is ${nt}. Scrolling now.`,
|
|
676
|
+
"color: green; font-weight: bold;"
|
|
677
|
+
), clearInterval(x), m.scrollTo({
|
|
678
|
+
top: m.scrollHeight,
|
|
679
|
+
behavior: "smooth"
|
|
680
|
+
})) : (console.log("...WAITING. Height is not ready."), b > 20 && (console.error(
|
|
681
|
+
"LOOP TIMEOUT: Last item was never measured. Stopping loop."
|
|
682
|
+
), clearInterval(x)));
|
|
683
|
+
}, 100);
|
|
684
|
+
return () => {
|
|
685
|
+
console.log("ALGORITHM: Cleaning up loop."), clearInterval(x);
|
|
686
|
+
};
|
|
687
|
+
}, [N]), tt(() => {
|
|
688
|
+
const m = g.current;
|
|
689
|
+
if (!m) return;
|
|
690
|
+
const $ = () => {
|
|
691
|
+
m.scrollHeight - m.scrollTop - m.clientHeight < 1 || (A.current = !1, console.log("USER ACTION: Scroll lock DISABLED."));
|
|
698
692
|
};
|
|
699
|
-
return
|
|
693
|
+
return m.addEventListener("scroll", $, {
|
|
700
694
|
passive: !0
|
|
701
|
-
}),
|
|
702
|
-
}, [
|
|
703
|
-
const
|
|
704
|
-
(
|
|
705
|
-
|
|
706
|
-
top:
|
|
707
|
-
behavior:
|
|
695
|
+
}), () => m.removeEventListener("scroll", $);
|
|
696
|
+
}, []);
|
|
697
|
+
const C = yt(
|
|
698
|
+
(m = "smooth") => {
|
|
699
|
+
g.current && (A.current = !0, console.log("USER ACTION: Scroll lock ENABLED."), g.current.scrollTo({
|
|
700
|
+
top: g.current.scrollHeight,
|
|
701
|
+
behavior: m
|
|
708
702
|
}));
|
|
709
703
|
},
|
|
710
704
|
[]
|
|
711
|
-
),
|
|
712
|
-
(
|
|
713
|
-
|
|
714
|
-
top:
|
|
715
|
-
behavior:
|
|
705
|
+
), R = yt(
|
|
706
|
+
(m, $ = "smooth") => {
|
|
707
|
+
g.current && W[m] !== void 0 && (A.current = !1, console.log("USER ACTION: Scroll lock DISABLED."), g.current.scrollTo({
|
|
708
|
+
top: W[m],
|
|
709
|
+
behavior: $
|
|
716
710
|
}));
|
|
717
711
|
},
|
|
718
|
-
[
|
|
719
|
-
),
|
|
712
|
+
[W]
|
|
713
|
+
), L = {
|
|
720
714
|
outer: {
|
|
721
|
-
ref:
|
|
715
|
+
ref: g,
|
|
722
716
|
style: { overflowY: "auto", height: "100%" }
|
|
723
717
|
},
|
|
724
718
|
inner: {
|
|
725
719
|
style: {
|
|
726
|
-
height: `${
|
|
720
|
+
height: `${D}px`,
|
|
727
721
|
position: "relative"
|
|
728
722
|
}
|
|
729
723
|
},
|
|
730
724
|
list: {
|
|
731
725
|
style: {
|
|
732
|
-
transform: `translateY(${
|
|
726
|
+
transform: `translateY(${W[u.startIndex] || 0}px)`
|
|
733
727
|
}
|
|
734
728
|
}
|
|
735
729
|
};
|
|
736
730
|
return {
|
|
737
|
-
virtualState:
|
|
738
|
-
virtualizerProps:
|
|
739
|
-
scrollToBottom:
|
|
740
|
-
scrollToIndex:
|
|
731
|
+
virtualState: O,
|
|
732
|
+
virtualizerProps: L,
|
|
733
|
+
scrollToBottom: C,
|
|
734
|
+
scrollToIndex: R
|
|
741
735
|
};
|
|
742
736
|
};
|
|
743
737
|
if (l === "stateSort")
|
|
744
738
|
return (e) => {
|
|
745
739
|
const s = [...d()].sort(
|
|
746
|
-
(
|
|
747
|
-
),
|
|
740
|
+
(u, T) => e(u.item, T.item)
|
|
741
|
+
), c = s.map(({ item: u }) => u), g = {
|
|
748
742
|
...S,
|
|
749
743
|
validIndices: s.map(
|
|
750
|
-
({ originalIndex:
|
|
744
|
+
({ originalIndex: u }) => u
|
|
751
745
|
)
|
|
752
746
|
};
|
|
753
|
-
return a(
|
|
747
|
+
return a(c, n, g);
|
|
754
748
|
};
|
|
755
749
|
if (l === "stateFilter")
|
|
756
750
|
return (e) => {
|
|
757
751
|
const s = d().filter(
|
|
758
|
-
({ item:
|
|
759
|
-
),
|
|
752
|
+
({ item: u }, T) => e(u, T)
|
|
753
|
+
), c = s.map(({ item: u }) => u), g = {
|
|
760
754
|
...S,
|
|
761
755
|
validIndices: s.map(
|
|
762
|
-
({ originalIndex:
|
|
756
|
+
({ originalIndex: u }) => u
|
|
763
757
|
)
|
|
764
758
|
};
|
|
765
|
-
return a(
|
|
759
|
+
return a(c, n, g);
|
|
766
760
|
};
|
|
767
761
|
if (l === "stateMap")
|
|
768
762
|
return (e) => {
|
|
769
763
|
const o = r.getState().getNestedState(t, n);
|
|
770
|
-
return Array.isArray(o) ? (S?.validIndices || Array.from({ length: o.length }, (
|
|
771
|
-
const
|
|
772
|
-
return e(
|
|
764
|
+
return Array.isArray(o) ? (S?.validIndices || Array.from({ length: o.length }, (c, g) => g)).map((c, g) => {
|
|
765
|
+
const u = o[c], T = [...n, c.toString()], A = a(u, T, S);
|
|
766
|
+
return e(u, A, {
|
|
773
767
|
register: () => {
|
|
774
|
-
const [,
|
|
775
|
-
|
|
776
|
-
const
|
|
768
|
+
const [, P] = Y({}), V = `${h}-${n.join(".")}-${c}`;
|
|
769
|
+
it(() => {
|
|
770
|
+
const N = `${t}////${V}`, D = r.getState().stateComponents.get(t) || {
|
|
777
771
|
components: /* @__PURE__ */ new Map()
|
|
778
772
|
};
|
|
779
|
-
return
|
|
780
|
-
forceUpdate: () =>
|
|
781
|
-
paths: /* @__PURE__ */ new Set([
|
|
782
|
-
}), r.getState().stateComponents.set(t,
|
|
783
|
-
const
|
|
784
|
-
|
|
773
|
+
return D.components.set(N, {
|
|
774
|
+
forceUpdate: () => P({}),
|
|
775
|
+
paths: /* @__PURE__ */ new Set([T.join(".")])
|
|
776
|
+
}), r.getState().stateComponents.set(t, D), () => {
|
|
777
|
+
const W = r.getState().stateComponents.get(t);
|
|
778
|
+
W && W.components.delete(N);
|
|
785
779
|
};
|
|
786
|
-
}, [t,
|
|
780
|
+
}, [t, V]);
|
|
787
781
|
},
|
|
788
|
-
index:
|
|
789
|
-
originalIndex:
|
|
782
|
+
index: g,
|
|
783
|
+
originalIndex: c
|
|
790
784
|
});
|
|
791
785
|
}) : (console.warn(
|
|
792
786
|
`stateMap called on a non-array value at path: ${n.join(".")}. The current value is:`,
|
|
@@ -794,20 +788,20 @@ function ut(t, c, m, f) {
|
|
|
794
788
|
), null);
|
|
795
789
|
};
|
|
796
790
|
if (l === "stateMapNoRender")
|
|
797
|
-
return (e) =>
|
|
798
|
-
let
|
|
799
|
-
S?.validIndices && S.validIndices[
|
|
800
|
-
const
|
|
791
|
+
return (e) => y.map((s, c) => {
|
|
792
|
+
let g;
|
|
793
|
+
S?.validIndices && S.validIndices[c] !== void 0 ? g = S.validIndices[c] : g = c;
|
|
794
|
+
const u = [...n, g.toString()], T = a(s, u, S);
|
|
801
795
|
return e(
|
|
802
796
|
s,
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
a(
|
|
797
|
+
T,
|
|
798
|
+
c,
|
|
799
|
+
y,
|
|
800
|
+
a(y, n, S)
|
|
807
801
|
);
|
|
808
802
|
});
|
|
809
803
|
if (l === "$stateMap")
|
|
810
|
-
return (e) => ot(
|
|
804
|
+
return (e) => ot(Wt, {
|
|
811
805
|
proxy: {
|
|
812
806
|
_stateKey: t,
|
|
813
807
|
_path: n,
|
|
@@ -819,17 +813,17 @@ function ut(t, c, m, f) {
|
|
|
819
813
|
if (l === "stateList")
|
|
820
814
|
return (e) => {
|
|
821
815
|
const o = r.getState().getNestedState(t, n);
|
|
822
|
-
return Array.isArray(o) ? (S?.validIndices || Array.from({ length: o.length }, (
|
|
823
|
-
const
|
|
824
|
-
return ot(
|
|
825
|
-
key:
|
|
816
|
+
return Array.isArray(o) ? (S?.validIndices || Array.from({ length: o.length }, (c, g) => g)).map((c, g) => {
|
|
817
|
+
const u = o[c], T = [...n, c.toString()], A = a(u, T, S), E = `${h}-${n.join(".")}-${c}`;
|
|
818
|
+
return ot(Bt, {
|
|
819
|
+
key: c,
|
|
826
820
|
stateKey: t,
|
|
827
|
-
itemComponentId:
|
|
828
|
-
itemPath:
|
|
821
|
+
itemComponentId: E,
|
|
822
|
+
itemPath: T,
|
|
829
823
|
children: e(
|
|
830
|
-
g,
|
|
831
|
-
E,
|
|
832
824
|
u,
|
|
825
|
+
A,
|
|
826
|
+
g,
|
|
833
827
|
o,
|
|
834
828
|
a(o, n, S)
|
|
835
829
|
)
|
|
@@ -840,10 +834,10 @@ function ut(t, c, m, f) {
|
|
|
840
834
|
};
|
|
841
835
|
if (l === "stateFlattenOn")
|
|
842
836
|
return (e) => {
|
|
843
|
-
const o =
|
|
844
|
-
|
|
837
|
+
const o = y;
|
|
838
|
+
I.clear(), k++;
|
|
845
839
|
const s = o.flatMap(
|
|
846
|
-
(
|
|
840
|
+
(c) => c[e] ?? []
|
|
847
841
|
);
|
|
848
842
|
return a(
|
|
849
843
|
s,
|
|
@@ -853,107 +847,107 @@ function ut(t, c, m, f) {
|
|
|
853
847
|
};
|
|
854
848
|
if (l === "index")
|
|
855
849
|
return (e) => {
|
|
856
|
-
const o =
|
|
850
|
+
const o = y[e];
|
|
857
851
|
return a(o, [...n, e.toString()]);
|
|
858
852
|
};
|
|
859
853
|
if (l === "last")
|
|
860
854
|
return () => {
|
|
861
855
|
const e = r.getState().getNestedState(t, n);
|
|
862
856
|
if (e.length === 0) return;
|
|
863
|
-
const o = e.length - 1, s = e[o],
|
|
864
|
-
return a(s,
|
|
857
|
+
const o = e.length - 1, s = e[o], c = [...n, o.toString()];
|
|
858
|
+
return a(s, c);
|
|
865
859
|
};
|
|
866
860
|
if (l === "insert")
|
|
867
|
-
return (e) => (
|
|
861
|
+
return (e) => (w(n), gt(i, e, n, t), a(
|
|
868
862
|
r.getState().getNestedState(t, n),
|
|
869
863
|
n
|
|
870
864
|
));
|
|
871
865
|
if (l === "uniqueInsert")
|
|
872
866
|
return (e, o, s) => {
|
|
873
|
-
const
|
|
874
|
-
let
|
|
875
|
-
if (!
|
|
867
|
+
const c = r.getState().getNestedState(t, n), g = q(e) ? e(c) : e;
|
|
868
|
+
let u = null;
|
|
869
|
+
if (!c.some((A) => {
|
|
876
870
|
if (o) {
|
|
877
|
-
const
|
|
878
|
-
(
|
|
871
|
+
const P = o.every(
|
|
872
|
+
(V) => H(A[V], g[V])
|
|
879
873
|
);
|
|
880
|
-
return
|
|
874
|
+
return P && (u = A), P;
|
|
881
875
|
}
|
|
882
|
-
const
|
|
883
|
-
return
|
|
876
|
+
const E = H(A, g);
|
|
877
|
+
return E && (u = A), E;
|
|
884
878
|
}))
|
|
885
|
-
|
|
886
|
-
else if (s &&
|
|
887
|
-
const
|
|
888
|
-
(
|
|
879
|
+
w(n), gt(i, g, n, t);
|
|
880
|
+
else if (s && u) {
|
|
881
|
+
const A = s(u), E = c.map(
|
|
882
|
+
(P) => H(P, u) ? A : P
|
|
889
883
|
);
|
|
890
|
-
|
|
884
|
+
w(n), rt(i, E, n);
|
|
891
885
|
}
|
|
892
886
|
};
|
|
893
887
|
if (l === "cut")
|
|
894
888
|
return (e, o) => {
|
|
895
889
|
if (!o?.waitForSync)
|
|
896
|
-
return
|
|
890
|
+
return w(n), st(i, n, t, e), a(
|
|
897
891
|
r.getState().getNestedState(t, n),
|
|
898
892
|
n
|
|
899
893
|
);
|
|
900
894
|
};
|
|
901
895
|
if (l === "cutByValue")
|
|
902
896
|
return (e) => {
|
|
903
|
-
for (let o = 0; o <
|
|
904
|
-
|
|
897
|
+
for (let o = 0; o < y.length; o++)
|
|
898
|
+
y[o] === e && st(i, n, t, o);
|
|
905
899
|
};
|
|
906
900
|
if (l === "toggleByValue")
|
|
907
901
|
return (e) => {
|
|
908
|
-
const o =
|
|
909
|
-
o > -1 ?
|
|
902
|
+
const o = y.findIndex((s) => s === e);
|
|
903
|
+
o > -1 ? st(i, n, t, o) : gt(i, e, n, t);
|
|
910
904
|
};
|
|
911
905
|
if (l === "stateFind")
|
|
912
906
|
return (e) => {
|
|
913
907
|
const s = d().find(
|
|
914
|
-
({ item:
|
|
908
|
+
({ item: g }, u) => e(g, u)
|
|
915
909
|
);
|
|
916
910
|
if (!s) return;
|
|
917
|
-
const
|
|
918
|
-
return a(s.item,
|
|
911
|
+
const c = [...n, s.originalIndex.toString()];
|
|
912
|
+
return a(s.item, c, S);
|
|
919
913
|
};
|
|
920
914
|
if (l === "findWith")
|
|
921
915
|
return (e, o) => {
|
|
922
|
-
const
|
|
923
|
-
({ item:
|
|
916
|
+
const c = d().find(
|
|
917
|
+
({ item: u }) => u[e] === o
|
|
924
918
|
);
|
|
925
|
-
if (!
|
|
926
|
-
const
|
|
927
|
-
return a(
|
|
919
|
+
if (!c) return;
|
|
920
|
+
const g = [...n, c.originalIndex.toString()];
|
|
921
|
+
return a(c.item, g, S);
|
|
928
922
|
};
|
|
929
923
|
}
|
|
930
|
-
const
|
|
931
|
-
if (!isNaN(Number(
|
|
924
|
+
const J = n[n.length - 1];
|
|
925
|
+
if (!isNaN(Number(J))) {
|
|
932
926
|
const d = n.slice(0, -1), e = r.getState().getNestedState(t, d);
|
|
933
927
|
if (Array.isArray(e) && l === "cut")
|
|
934
|
-
return () =>
|
|
935
|
-
|
|
928
|
+
return () => st(
|
|
929
|
+
i,
|
|
936
930
|
d,
|
|
937
931
|
t,
|
|
938
|
-
Number(
|
|
932
|
+
Number(J)
|
|
939
933
|
);
|
|
940
934
|
}
|
|
941
935
|
if (l === "get")
|
|
942
936
|
return () => {
|
|
943
|
-
if (S?.validIndices && Array.isArray(
|
|
937
|
+
if (S?.validIndices && Array.isArray(y)) {
|
|
944
938
|
const d = r.getState().getNestedState(t, n);
|
|
945
939
|
return S.validIndices.map((e) => d[e]);
|
|
946
940
|
}
|
|
947
941
|
return r.getState().getNestedState(t, n);
|
|
948
942
|
};
|
|
949
943
|
if (l === "$derive")
|
|
950
|
-
return (d) =>
|
|
944
|
+
return (d) => Tt({
|
|
951
945
|
_stateKey: t,
|
|
952
946
|
_path: n,
|
|
953
947
|
_effect: d.toString()
|
|
954
948
|
});
|
|
955
949
|
if (l === "$get")
|
|
956
|
-
return () =>
|
|
950
|
+
return () => Tt({
|
|
957
951
|
_stateKey: t,
|
|
958
952
|
_path: n
|
|
959
953
|
});
|
|
@@ -962,7 +956,7 @@ function ut(t, c, m, f) {
|
|
|
962
956
|
return r.getState().getSyncInfo(d);
|
|
963
957
|
}
|
|
964
958
|
if (l == "getLocalStorage")
|
|
965
|
-
return (d) =>
|
|
959
|
+
return (d) => dt(f + "-" + t + "-" + d);
|
|
966
960
|
if (l === "_selected") {
|
|
967
961
|
const d = n.slice(0, -1), e = d.join("."), o = r.getState().getNestedState(t, d);
|
|
968
962
|
return Array.isArray(o) ? Number(n[n.length - 1]) === r.getState().getSelectedIndex(t, e) : void 0;
|
|
@@ -971,8 +965,8 @@ function ut(t, c, m, f) {
|
|
|
971
965
|
return (d) => {
|
|
972
966
|
const e = n.slice(0, -1), o = Number(n[n.length - 1]), s = e.join(".");
|
|
973
967
|
d ? r.getState().setSelectedIndex(t, s, o) : r.getState().setSelectedIndex(t, s, void 0);
|
|
974
|
-
const
|
|
975
|
-
rt(
|
|
968
|
+
const c = r.getState().getNestedState(t, [...e]);
|
|
969
|
+
rt(i, c, e), w(e);
|
|
976
970
|
};
|
|
977
971
|
if (l === "toggleSelected")
|
|
978
972
|
return () => {
|
|
@@ -982,74 +976,74 @@ function ut(t, c, m, f) {
|
|
|
982
976
|
o,
|
|
983
977
|
s === e ? void 0 : e
|
|
984
978
|
);
|
|
985
|
-
const
|
|
986
|
-
rt(
|
|
979
|
+
const c = r.getState().getNestedState(t, [...d]);
|
|
980
|
+
rt(i, c, d), w(d);
|
|
987
981
|
};
|
|
988
982
|
if (n.length == 0) {
|
|
989
983
|
if (l === "applyJsonPatch")
|
|
990
984
|
return (d) => {
|
|
991
|
-
const e = r.getState().cogsStateStore[t], s =
|
|
992
|
-
|
|
985
|
+
const e = r.getState().cogsStateStore[t], s = Ot(e, d).newDocument;
|
|
986
|
+
kt(
|
|
993
987
|
t,
|
|
994
988
|
r.getState().initialStateGlobal[t],
|
|
995
989
|
s,
|
|
996
|
-
|
|
997
|
-
|
|
990
|
+
i,
|
|
991
|
+
h,
|
|
998
992
|
f
|
|
999
993
|
);
|
|
1000
|
-
const
|
|
1001
|
-
if (
|
|
1002
|
-
const
|
|
994
|
+
const c = r.getState().stateComponents.get(t);
|
|
995
|
+
if (c) {
|
|
996
|
+
const g = mt(e, s), u = new Set(g);
|
|
1003
997
|
for (const [
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
] of
|
|
1007
|
-
let
|
|
1008
|
-
const
|
|
1009
|
-
if (!
|
|
1010
|
-
if (
|
|
1011
|
-
|
|
998
|
+
T,
|
|
999
|
+
A
|
|
1000
|
+
] of c.components.entries()) {
|
|
1001
|
+
let E = !1;
|
|
1002
|
+
const P = Array.isArray(A.reactiveType) ? A.reactiveType : [A.reactiveType || "component"];
|
|
1003
|
+
if (!P.includes("none")) {
|
|
1004
|
+
if (P.includes("all")) {
|
|
1005
|
+
A.forceUpdate();
|
|
1012
1006
|
continue;
|
|
1013
1007
|
}
|
|
1014
|
-
if (
|
|
1015
|
-
for (const
|
|
1016
|
-
if (
|
|
1017
|
-
|
|
1008
|
+
if (P.includes("component") && (A.paths.has("") && (E = !0), !E))
|
|
1009
|
+
for (const V of u) {
|
|
1010
|
+
if (A.paths.has(V)) {
|
|
1011
|
+
E = !0;
|
|
1018
1012
|
break;
|
|
1019
1013
|
}
|
|
1020
|
-
let
|
|
1021
|
-
for (;
|
|
1022
|
-
const
|
|
1023
|
-
if (
|
|
1024
|
-
|
|
1014
|
+
let N = V.lastIndexOf(".");
|
|
1015
|
+
for (; N !== -1; ) {
|
|
1016
|
+
const D = V.substring(0, N);
|
|
1017
|
+
if (A.paths.has(D)) {
|
|
1018
|
+
E = !0;
|
|
1025
1019
|
break;
|
|
1026
1020
|
}
|
|
1027
|
-
const
|
|
1028
|
-
|
|
1021
|
+
const W = V.substring(
|
|
1022
|
+
N + 1
|
|
1029
1023
|
);
|
|
1030
|
-
if (!isNaN(Number(
|
|
1031
|
-
const
|
|
1032
|
-
if (
|
|
1033
|
-
const
|
|
1024
|
+
if (!isNaN(Number(W))) {
|
|
1025
|
+
const O = D.lastIndexOf(".");
|
|
1026
|
+
if (O !== -1) {
|
|
1027
|
+
const C = D.substring(
|
|
1034
1028
|
0,
|
|
1035
|
-
|
|
1029
|
+
O
|
|
1036
1030
|
);
|
|
1037
|
-
if (
|
|
1038
|
-
|
|
1031
|
+
if (A.paths.has(C)) {
|
|
1032
|
+
E = !0;
|
|
1039
1033
|
break;
|
|
1040
1034
|
}
|
|
1041
1035
|
}
|
|
1042
1036
|
}
|
|
1043
|
-
|
|
1037
|
+
N = D.lastIndexOf(".");
|
|
1044
1038
|
}
|
|
1045
|
-
if (
|
|
1039
|
+
if (E) break;
|
|
1046
1040
|
}
|
|
1047
|
-
if (!
|
|
1048
|
-
const
|
|
1049
|
-
let
|
|
1050
|
-
typeof
|
|
1041
|
+
if (!E && P.includes("deps") && A.depsFunction) {
|
|
1042
|
+
const V = A.depsFunction(s);
|
|
1043
|
+
let N = !1;
|
|
1044
|
+
typeof V == "boolean" ? V && (N = !0) : H(A.deps, V) || (A.deps = V, N = !0), N && (E = !0);
|
|
1051
1045
|
}
|
|
1052
|
-
|
|
1046
|
+
E && A.forceUpdate();
|
|
1053
1047
|
}
|
|
1054
1048
|
}
|
|
1055
1049
|
}
|
|
@@ -1061,27 +1055,27 @@ function ut(t, c, m, f) {
|
|
|
1061
1055
|
throw new Error("Zod schema not found");
|
|
1062
1056
|
if (!d?.key)
|
|
1063
1057
|
throw new Error("Validation key not found");
|
|
1064
|
-
|
|
1058
|
+
z(d.key);
|
|
1065
1059
|
const o = r.getState().cogsStateStore[t];
|
|
1066
1060
|
try {
|
|
1067
1061
|
const s = r.getState().getValidationErrors(d.key);
|
|
1068
|
-
s && s.length > 0 && s.forEach(([
|
|
1069
|
-
|
|
1062
|
+
s && s.length > 0 && s.forEach(([g]) => {
|
|
1063
|
+
g && g.startsWith(d.key) && z(g);
|
|
1070
1064
|
});
|
|
1071
|
-
const
|
|
1072
|
-
return
|
|
1073
|
-
const
|
|
1074
|
-
e(
|
|
1075
|
-
}),
|
|
1065
|
+
const c = d.zodSchema.safeParse(o);
|
|
1066
|
+
return c.success ? !0 : (c.error.errors.forEach((u) => {
|
|
1067
|
+
const T = u.path, A = u.message, E = [d.key, ...T].join(".");
|
|
1068
|
+
e(E, A);
|
|
1069
|
+
}), ut(t), !1);
|
|
1076
1070
|
} catch (s) {
|
|
1077
1071
|
return console.error("Zod schema validation failed", s), !1;
|
|
1078
1072
|
}
|
|
1079
1073
|
};
|
|
1080
|
-
if (l === "_componentId") return
|
|
1074
|
+
if (l === "_componentId") return h;
|
|
1081
1075
|
if (l === "getComponents")
|
|
1082
1076
|
return () => r().stateComponents.get(t);
|
|
1083
1077
|
if (l === "getAllFormRefs")
|
|
1084
|
-
return () =>
|
|
1078
|
+
return () => It.getState().getFormRefsByStateKey(t);
|
|
1085
1079
|
if (l === "_initialState")
|
|
1086
1080
|
return r.getState().initialStateGlobal[t];
|
|
1087
1081
|
if (l === "_serverState")
|
|
@@ -1089,18 +1083,18 @@ function ut(t, c, m, f) {
|
|
|
1089
1083
|
if (l === "_isLoading")
|
|
1090
1084
|
return r.getState().isLoadingGlobal[t];
|
|
1091
1085
|
if (l === "revertToInitialState")
|
|
1092
|
-
return
|
|
1093
|
-
if (l === "updateInitialState") return
|
|
1094
|
-
if (l === "removeValidation") return
|
|
1086
|
+
return p.revertToInitialState;
|
|
1087
|
+
if (l === "updateInitialState") return p.updateInitialState;
|
|
1088
|
+
if (l === "removeValidation") return p.removeValidation;
|
|
1095
1089
|
}
|
|
1096
1090
|
if (l === "getFormRef")
|
|
1097
|
-
return () =>
|
|
1091
|
+
return () => It.getState().getFormRef(t + "." + n.join("."));
|
|
1098
1092
|
if (l === "validationWrapper")
|
|
1099
1093
|
return ({
|
|
1100
1094
|
children: d,
|
|
1101
1095
|
hideMessage: e
|
|
1102
|
-
}) => /* @__PURE__ */
|
|
1103
|
-
|
|
1096
|
+
}) => /* @__PURE__ */ ft(
|
|
1097
|
+
Pt,
|
|
1104
1098
|
{
|
|
1105
1099
|
formOpts: e ? { validation: { message: "" } } : void 0,
|
|
1106
1100
|
path: n,
|
|
@@ -1112,78 +1106,78 @@ function ut(t, c, m, f) {
|
|
|
1112
1106
|
);
|
|
1113
1107
|
if (l === "_stateKey") return t;
|
|
1114
1108
|
if (l === "_path") return n;
|
|
1115
|
-
if (l === "_isServerSynced") return
|
|
1109
|
+
if (l === "_isServerSynced") return p._isServerSynced;
|
|
1116
1110
|
if (l === "update")
|
|
1117
1111
|
return (d, e) => {
|
|
1118
1112
|
if (e?.debounce)
|
|
1119
|
-
|
|
1120
|
-
rt(
|
|
1113
|
+
Vt(() => {
|
|
1114
|
+
rt(i, d, n, "");
|
|
1121
1115
|
const o = r.getState().getNestedState(t, n);
|
|
1122
1116
|
e?.afterUpdate && e.afterUpdate(o);
|
|
1123
1117
|
}, e.debounce);
|
|
1124
1118
|
else {
|
|
1125
|
-
rt(
|
|
1119
|
+
rt(i, d, n, "");
|
|
1126
1120
|
const o = r.getState().getNestedState(t, n);
|
|
1127
1121
|
e?.afterUpdate && e.afterUpdate(o);
|
|
1128
1122
|
}
|
|
1129
|
-
|
|
1123
|
+
w(n);
|
|
1130
1124
|
};
|
|
1131
1125
|
if (l === "formElement")
|
|
1132
|
-
return (d, e) => /* @__PURE__ */
|
|
1133
|
-
|
|
1126
|
+
return (d, e) => /* @__PURE__ */ ft(
|
|
1127
|
+
xt,
|
|
1134
1128
|
{
|
|
1135
|
-
setState:
|
|
1129
|
+
setState: i,
|
|
1136
1130
|
stateKey: t,
|
|
1137
1131
|
path: n,
|
|
1138
1132
|
child: d,
|
|
1139
1133
|
formOpts: e
|
|
1140
1134
|
}
|
|
1141
1135
|
);
|
|
1142
|
-
const
|
|
1143
|
-
return a(
|
|
1136
|
+
const M = [...n, l], et = r.getState().getNestedState(t, M);
|
|
1137
|
+
return a(et, M, S);
|
|
1144
1138
|
}
|
|
1145
|
-
},
|
|
1146
|
-
return
|
|
1147
|
-
proxy:
|
|
1139
|
+
}, G = new Proxy(U, j);
|
|
1140
|
+
return I.set(F, {
|
|
1141
|
+
proxy: G,
|
|
1148
1142
|
stateVersion: k
|
|
1149
|
-
}),
|
|
1143
|
+
}), G;
|
|
1150
1144
|
}
|
|
1151
1145
|
return a(
|
|
1152
1146
|
r.getState().getNestedState(t, [])
|
|
1153
1147
|
);
|
|
1154
1148
|
}
|
|
1155
|
-
function
|
|
1156
|
-
return ot(
|
|
1149
|
+
function Tt(t) {
|
|
1150
|
+
return ot(Ht, { proxy: t });
|
|
1157
1151
|
}
|
|
1158
|
-
function
|
|
1152
|
+
function Wt({
|
|
1159
1153
|
proxy: t,
|
|
1160
|
-
rebuildStateShape:
|
|
1154
|
+
rebuildStateShape: i
|
|
1161
1155
|
}) {
|
|
1162
|
-
const
|
|
1163
|
-
return Array.isArray(
|
|
1164
|
-
|
|
1156
|
+
const h = r().getNestedState(t._stateKey, t._path);
|
|
1157
|
+
return Array.isArray(h) ? i(
|
|
1158
|
+
h,
|
|
1165
1159
|
t._path
|
|
1166
1160
|
).stateMapNoRender(
|
|
1167
|
-
(
|
|
1161
|
+
(I, k, w, p, a) => t._mapFn(I, k, w, p, a)
|
|
1168
1162
|
) : null;
|
|
1169
1163
|
}
|
|
1170
|
-
function
|
|
1164
|
+
function Ht({
|
|
1171
1165
|
proxy: t
|
|
1172
1166
|
}) {
|
|
1173
|
-
const
|
|
1174
|
-
return
|
|
1175
|
-
const f =
|
|
1167
|
+
const i = Z(null), h = `${t._stateKey}-${t._path.join(".")}`;
|
|
1168
|
+
return tt(() => {
|
|
1169
|
+
const f = i.current;
|
|
1176
1170
|
if (!f || !f.parentElement) return;
|
|
1177
|
-
const
|
|
1178
|
-
let
|
|
1179
|
-
|
|
1180
|
-
const
|
|
1171
|
+
const I = f.parentElement, w = Array.from(I.childNodes).indexOf(f);
|
|
1172
|
+
let p = I.getAttribute("data-parent-id");
|
|
1173
|
+
p || (p = `parent-${crypto.randomUUID()}`, I.setAttribute("data-parent-id", p));
|
|
1174
|
+
const y = {
|
|
1181
1175
|
instanceId: `instance-${crypto.randomUUID()}`,
|
|
1182
|
-
parentId:
|
|
1183
|
-
position:
|
|
1176
|
+
parentId: p,
|
|
1177
|
+
position: w,
|
|
1184
1178
|
effect: t._effect
|
|
1185
1179
|
};
|
|
1186
|
-
r.getState().addSignalElement(
|
|
1180
|
+
r.getState().addSignalElement(h, y);
|
|
1187
1181
|
const n = r.getState().getNestedState(t._stateKey, t._path);
|
|
1188
1182
|
let S;
|
|
1189
1183
|
if (t._effect)
|
|
@@ -1198,61 +1192,61 @@ function Yt({
|
|
|
1198
1192
|
else
|
|
1199
1193
|
S = n;
|
|
1200
1194
|
S !== null && typeof S == "object" && (S = JSON.stringify(S));
|
|
1201
|
-
const
|
|
1202
|
-
f.replaceWith(
|
|
1195
|
+
const F = document.createTextNode(String(S));
|
|
1196
|
+
f.replaceWith(F);
|
|
1203
1197
|
}, [t._stateKey, t._path.join("."), t._effect]), ot("span", {
|
|
1204
|
-
ref:
|
|
1198
|
+
ref: i,
|
|
1205
1199
|
style: { display: "none" },
|
|
1206
|
-
"data-signal-id":
|
|
1200
|
+
"data-signal-id": h
|
|
1207
1201
|
});
|
|
1208
1202
|
}
|
|
1209
|
-
function
|
|
1210
|
-
const
|
|
1211
|
-
(
|
|
1203
|
+
function se(t) {
|
|
1204
|
+
const i = Ct(
|
|
1205
|
+
(h) => {
|
|
1212
1206
|
const f = r.getState().stateComponents.get(t._stateKey) || {
|
|
1213
1207
|
components: /* @__PURE__ */ new Map()
|
|
1214
1208
|
};
|
|
1215
1209
|
return f.components.set(t._stateKey, {
|
|
1216
|
-
forceUpdate:
|
|
1210
|
+
forceUpdate: h,
|
|
1217
1211
|
paths: /* @__PURE__ */ new Set([t._path.join(".")])
|
|
1218
1212
|
}), () => f.components.delete(t._stateKey);
|
|
1219
1213
|
},
|
|
1220
1214
|
() => r.getState().getNestedState(t._stateKey, t._path)
|
|
1221
1215
|
);
|
|
1222
|
-
return ot("text", {}, String(
|
|
1216
|
+
return ot("text", {}, String(i));
|
|
1223
1217
|
}
|
|
1224
|
-
function
|
|
1218
|
+
function Bt({
|
|
1225
1219
|
stateKey: t,
|
|
1226
|
-
itemComponentId:
|
|
1227
|
-
itemPath:
|
|
1220
|
+
itemComponentId: i,
|
|
1221
|
+
itemPath: h,
|
|
1228
1222
|
children: f
|
|
1229
1223
|
}) {
|
|
1230
|
-
const [,
|
|
1231
|
-
return
|
|
1232
|
-
|
|
1224
|
+
const [, I] = Y({}), [k, w] = Mt(), p = Z(null);
|
|
1225
|
+
return tt(() => {
|
|
1226
|
+
w.height > 0 && w.height !== p.current && (p.current = w.height, r.getState().setShadowMetadata(t, h, {
|
|
1233
1227
|
virtualizer: {
|
|
1234
|
-
itemHeight:
|
|
1228
|
+
itemHeight: w.height
|
|
1235
1229
|
}
|
|
1236
1230
|
}));
|
|
1237
|
-
}, [
|
|
1238
|
-
const a = `${t}////${
|
|
1231
|
+
}, [w.height, t, h]), it(() => {
|
|
1232
|
+
const a = `${t}////${i}`, y = r.getState().stateComponents.get(t) || {
|
|
1239
1233
|
components: /* @__PURE__ */ new Map()
|
|
1240
1234
|
};
|
|
1241
|
-
return
|
|
1242
|
-
forceUpdate: () =>
|
|
1243
|
-
paths: /* @__PURE__ */ new Set([
|
|
1244
|
-
}), r.getState().stateComponents.set(t,
|
|
1235
|
+
return y.components.set(a, {
|
|
1236
|
+
forceUpdate: () => I({}),
|
|
1237
|
+
paths: /* @__PURE__ */ new Set([h.join(".")])
|
|
1238
|
+
}), r.getState().stateComponents.set(t, y), () => {
|
|
1245
1239
|
const n = r.getState().stateComponents.get(t);
|
|
1246
1240
|
n && n.components.delete(a);
|
|
1247
1241
|
};
|
|
1248
|
-
}, [t,
|
|
1242
|
+
}, [t, i, h.join(".")]), /* @__PURE__ */ ft("div", { ref: k, children: f });
|
|
1249
1243
|
}
|
|
1250
1244
|
export {
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1245
|
+
Tt as $cogsSignal,
|
|
1246
|
+
se as $cogsSignalStore,
|
|
1247
|
+
re as addStateOptions,
|
|
1248
|
+
oe as createCogsState,
|
|
1249
|
+
ae as notifyComponent,
|
|
1250
|
+
Gt as useCogsStateFn
|
|
1257
1251
|
};
|
|
1258
1252
|
//# sourceMappingURL=CogsState.jsx.map
|