cogsbox-state 0.5.401 → 0.5.403

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