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