cogsbox-state 0.5.410 → 0.5.412

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