cogsbox-state 0.5.201 → 0.5.203

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,40 +1,40 @@
1
1
  "use client";
2
- import { jsx as Se } from "react/jsx-runtime";
3
- import { useState as le, useRef as ee, useEffect as de, useLayoutEffect as ke, useMemo as $e, createElement as re, useSyncExternalStore as Te, startTransition as Ae } from "react";
4
- import { transformStateFunc as Ne, isDeepEqual as L, isFunction as Z, getNestedValue as q, getDifferences as he, debounce as Ve } from "./utility.js";
5
- import { pushFunc as se, updateFn as Q, cutFunc as K, ValidationWrapper as _e, FormControlComponent as Ce } from "./Functions.jsx";
6
- import Pe from "superjson";
7
- import { v4 as ue } from "uuid";
2
+ import { jsx as me } from "react/jsx-runtime";
3
+ import { useState as le, useRef as Q, useEffect as de, useLayoutEffect as $e, useMemo as ke, createElement as te, useSyncExternalStore as Te, startTransition as Ne } from "react";
4
+ import { transformStateFunc as Ae, isDeepEqual as G, isFunction as J, getNestedValue as W, getDifferences as ue, debounce as Ve } from "./utility.js";
5
+ import { pushFunc as se, updateFn as Y, cutFunc as X, ValidationWrapper as _e, FormControlComponent as be } from "./Functions.jsx";
6
+ import Ce from "superjson";
7
+ import { v4 as ge } from "uuid";
8
8
  import "zod";
9
- import { getGlobalStore as t, formRefStore as me } from "./store.js";
10
- import { useCogsConfig as pe } from "./CogsStateClient.jsx";
11
- import { applyPatch as be } from "fast-json-patch";
12
- function ye(e, i) {
13
- const S = t.getState().getInitialOptions, u = t.getState().setInitialStateOptions, f = S(e) || {};
9
+ import { getGlobalStore as n, formRefStore as ye } from "./store.js";
10
+ import { useCogsConfig as we } from "./CogsStateClient.jsx";
11
+ import { applyPatch as Pe } from "fast-json-patch";
12
+ function ve(e, i) {
13
+ const S = n.getState().getInitialOptions, u = n.getState().setInitialStateOptions, f = S(e) || {};
14
14
  u(e, {
15
15
  ...f,
16
16
  ...i
17
17
  });
18
18
  }
19
- function ve({
19
+ function Ie({
20
20
  stateKey: e,
21
21
  options: i,
22
22
  initialOptionsPart: S
23
23
  }) {
24
- const u = H(e) || {}, f = S[e] || {}, k = t.getState().setInitialStateOptions, h = { ...f, ...u };
24
+ const u = Z(e) || {}, f = S[e] || {}, T = n.getState().setInitialStateOptions, h = { ...f, ...u };
25
25
  let v = !1;
26
26
  if (i)
27
27
  for (const s in i)
28
28
  h.hasOwnProperty(s) ? (s == "localStorage" && i[s] && h[s].key !== i[s]?.key && (v = !0, h[s] = i[s]), s == "initialState" && i[s] && h[s] !== i[s] && // Different references
29
- !L(h[s], i[s]) && (v = !0, h[s] = i[s])) : (v = !0, h[s] = i[s]);
30
- v && k(e, h);
29
+ !G(h[s], i[s]) && (v = !0, h[s] = i[s])) : (v = !0, h[s] = i[s]);
30
+ v && T(e, h);
31
31
  }
32
32
  function Qe(e, { formElements: i, validation: S }) {
33
33
  return { initialState: e, formElements: i, validation: S };
34
34
  }
35
35
  const Ke = (e, i) => {
36
36
  let S = e;
37
- const [u, f] = Ne(S);
37
+ const [u, f] = Ae(S);
38
38
  (Object.keys(f).length > 0 || i && Object.keys(i).length > 0) && Object.keys(f).forEach((v) => {
39
39
  f[v] = f[v] || {}, f[v].formElements = {
40
40
  ...i?.formElements,
@@ -42,16 +42,16 @@ const Ke = (e, i) => {
42
42
  ...i?.validation,
43
43
  ...f[v].formElements || {}
44
44
  // State-specific overrides
45
- }, H(v) || t.getState().setInitialStateOptions(v, f[v]);
46
- }), t.getState().setInitialStates(u), t.getState().setCreatedState(u);
47
- const k = (v, s) => {
48
- const [m] = le(s?.componentId ?? ue());
49
- ve({
45
+ }, Z(v) || n.getState().setInitialStateOptions(v, f[v]);
46
+ }), n.getState().setInitialStates(u), n.getState().setCreatedState(u);
47
+ const T = (v, s) => {
48
+ const [m] = le(s?.componentId ?? ge());
49
+ Ie({
50
50
  stateKey: v,
51
51
  options: s,
52
52
  initialOptionsPart: f
53
53
  });
54
- const n = t.getState().cogsStateStore[v] || u[v], I = s?.modifyState ? s.modifyState(n) : n, [M, _] = Me(
54
+ const t = n.getState().cogsStateStore[v] || u[v], I = s?.modifyState ? s.modifyState(t) : t, [j, A] = De(
55
55
  I,
56
56
  {
57
57
  stateKey: v,
@@ -67,49 +67,49 @@ const Ke = (e, i) => {
67
67
  serverState: s?.serverState
68
68
  }
69
69
  );
70
- return _;
70
+ return A;
71
71
  };
72
72
  function h(v, s) {
73
- ve({ stateKey: v, options: s, initialOptionsPart: f }), s.localStorage && je(v, s), oe(v);
73
+ Ie({ stateKey: v, options: s, initialOptionsPart: f }), s.localStorage && je(v, s), re(v);
74
74
  }
75
- return { useCogsState: k, setCogsOptions: h };
75
+ return { useCogsState: T, setCogsOptions: h };
76
76
  }, {
77
- setUpdaterState: te,
78
- setState: Y,
79
- getInitialOptions: H,
80
- getKeyState: we,
77
+ setUpdaterState: K,
78
+ setState: B,
79
+ getInitialOptions: Z,
80
+ getKeyState: Ee,
81
81
  getValidationErrors: xe,
82
82
  setStateLog: Oe,
83
- updateInitialStateGlobal: ge,
83
+ updateInitialStateGlobal: fe,
84
84
  addValidationError: Fe,
85
- removeValidationError: B,
85
+ removeValidationError: z,
86
86
  setServerSyncActions: Re
87
- } = t.getState(), Ie = (e, i, S, u, f) => {
87
+ } = n.getState(), he = (e, i, S, u, f) => {
88
88
  S?.log && console.log(
89
89
  "saving to localstorage",
90
90
  i,
91
91
  S.localStorage?.key,
92
92
  u
93
93
  );
94
- const k = Z(S?.localStorage?.key) ? S.localStorage?.key(e) : S?.localStorage?.key;
95
- if (k && u) {
96
- const h = `${u}-${i}-${k}`;
94
+ const T = J(S?.localStorage?.key) ? S.localStorage?.key(e) : S?.localStorage?.key;
95
+ if (T && u) {
96
+ const h = `${u}-${i}-${T}`;
97
97
  let v;
98
98
  try {
99
- v = ae(h)?.lastSyncedWithServer;
99
+ v = ne(h)?.lastSyncedWithServer;
100
100
  } catch {
101
101
  }
102
102
  const s = {
103
103
  state: e,
104
104
  lastUpdated: Date.now(),
105
105
  lastSyncedWithServer: f ?? v
106
- }, m = Pe.serialize(s);
106
+ }, m = Ce.serialize(s);
107
107
  window.localStorage.setItem(
108
108
  h,
109
109
  JSON.stringify(m.json)
110
110
  );
111
111
  }
112
- }, ae = (e) => {
112
+ }, ne = (e) => {
113
113
  if (!e) return null;
114
114
  try {
115
115
  const i = window.localStorage.getItem(e);
@@ -118,29 +118,29 @@ const Ke = (e, i) => {
118
118
  return console.error("Error loading from localStorage:", i), null;
119
119
  }
120
120
  }, je = (e, i) => {
121
- const S = t.getState().cogsStateStore[e], { sessionId: u } = pe(), f = Z(i?.localStorage?.key) ? i.localStorage.key(S) : i?.localStorage?.key;
121
+ const S = n.getState().cogsStateStore[e], { sessionId: u } = we(), f = J(i?.localStorage?.key) ? i.localStorage.key(S) : i?.localStorage?.key;
122
122
  if (f && u) {
123
- const k = ae(
123
+ const T = ne(
124
124
  `${u}-${e}-${f}`
125
125
  );
126
- if (k && k.lastUpdated > (k.lastSyncedWithServer || 0))
127
- return Y(e, k.state), oe(e), !0;
126
+ if (T && T.lastUpdated > (T.lastSyncedWithServer || 0))
127
+ return B(e, T.state), re(e), !0;
128
128
  }
129
129
  return !1;
130
- }, Ee = (e, i, S, u, f, k) => {
130
+ }, pe = (e, i, S, u, f, T) => {
131
131
  const h = {
132
132
  initialState: i,
133
- updaterState: ne(
133
+ updaterState: ee(
134
134
  e,
135
135
  u,
136
136
  f,
137
- k
137
+ T
138
138
  ),
139
139
  state: S
140
140
  };
141
- ge(e, h.initialState), te(e, h.updaterState), Y(e, h.state);
142
- }, oe = (e) => {
143
- const i = t.getState().stateComponents.get(e);
141
+ fe(e, h.initialState), K(e, h.updaterState), B(e, h.state);
142
+ }, re = (e) => {
143
+ const i = n.getState().stateComponents.get(e);
144
144
  if (!i) return;
145
145
  const S = /* @__PURE__ */ new Set();
146
146
  i.components.forEach((u) => {
@@ -149,7 +149,7 @@ const Ke = (e, i) => {
149
149
  S.forEach((u) => u());
150
150
  });
151
151
  }, et = (e, i) => {
152
- const S = t.getState().stateComponents.get(e);
152
+ const S = n.getState().stateComponents.get(e);
153
153
  if (S) {
154
154
  const u = `${e}////${i}`, f = S.components.get(u);
155
155
  if ((f ? Array.isArray(f.reactiveType) ? f.reactiveType : [f.reactiveType || "component"] : null)?.includes("none"))
@@ -160,18 +160,18 @@ const Ke = (e, i) => {
160
160
  switch (e) {
161
161
  case "update":
162
162
  return {
163
- oldValue: q(i, u),
164
- newValue: q(S, u)
163
+ oldValue: W(i, u),
164
+ newValue: W(S, u)
165
165
  };
166
166
  case "insert":
167
167
  return {
168
168
  oldValue: null,
169
169
  // or undefined
170
- newValue: q(S, u)
170
+ newValue: W(S, u)
171
171
  };
172
172
  case "cut":
173
173
  return {
174
- oldValue: q(i, u),
174
+ oldValue: W(i, u),
175
175
  newValue: null
176
176
  // or undefined
177
177
  };
@@ -179,781 +179,765 @@ const Ke = (e, i) => {
179
179
  return { oldValue: null, newValue: null };
180
180
  }
181
181
  };
182
- function Me(e, {
182
+ function De(e, {
183
183
  stateKey: i,
184
184
  serverSync: S,
185
185
  localStorage: u,
186
186
  formElements: f,
187
- reactiveDeps: k,
187
+ reactiveDeps: T,
188
188
  reactiveType: h,
189
189
  componentId: v,
190
190
  initialState: s,
191
191
  syncUpdate: m,
192
- dependencies: n,
192
+ dependencies: t,
193
193
  serverState: I
194
194
  } = {}) {
195
- const [M, _] = le({}), { sessionId: C } = pe();
196
- let D = !i;
197
- const [g] = le(i ?? ue()), l = t.getState().stateLog[g], X = ee(/* @__PURE__ */ new Set()), J = ee(v ?? ue()), P = ee(
195
+ const [j, A] = le({}), { sessionId: V } = we();
196
+ let U = !i;
197
+ const [g] = le(i ?? ge()), c = n.getState().stateLog[g], H = Q(/* @__PURE__ */ new Set()), q = Q(v ?? ge()), _ = Q(
198
198
  null
199
199
  );
200
- P.current = H(g) ?? null, de(() => {
200
+ _.current = Z(g) ?? null, de(() => {
201
201
  if (m && m.stateKey === g && m.path?.[0]) {
202
- Y(g, (a) => ({
202
+ B(g, (a) => ({
203
203
  ...a,
204
204
  [m.path[0]]: m.newValue
205
205
  }));
206
206
  const o = `${m.stateKey}:${m.path.join(".")}`;
207
- t.getState().setSyncInfo(o, {
207
+ n.getState().setSyncInfo(o, {
208
208
  timeStamp: m.timeStamp,
209
209
  userId: m.userId
210
210
  });
211
211
  }
212
212
  }, [m]), de(() => {
213
213
  if (s) {
214
- ye(g, {
214
+ ve(g, {
215
215
  initialState: s
216
216
  });
217
- const o = P.current, c = o?.serverState?.id !== void 0 && o?.serverState?.status === "success" && o?.serverState?.data, p = t.getState().initialStateGlobal[g];
218
- if (!(p && !L(p, s) || !p) && !c)
217
+ const o = _.current, l = o?.serverState?.id !== void 0 && o?.serverState?.status === "success" && o?.serverState?.data, w = n.getState().initialStateGlobal[g];
218
+ if (!(w && !G(w, s) || !w) && !l)
219
219
  return;
220
- let w = null;
221
- const $ = Z(o?.localStorage?.key) ? o?.localStorage?.key(s) : o?.localStorage?.key;
222
- $ && C && (w = ae(`${C}-${g}-${$}`));
223
- let A = s, T = !1;
224
- const V = c ? Date.now() : 0, R = w?.lastUpdated || 0, b = w?.lastSyncedWithServer || 0;
225
- c && V > R ? (A = o.serverState.data, T = !0) : w && R > b && (A = w.state, o?.localStorage?.onChange && o?.localStorage?.onChange(A)), Ee(
220
+ let E = null;
221
+ const p = J(o?.localStorage?.key) ? o?.localStorage?.key(s) : o?.localStorage?.key;
222
+ p && V && (E = ne(`${V}-${g}-${p}`));
223
+ let k = s, b = !1;
224
+ const P = l ? Date.now() : 0, x = E?.lastUpdated || 0, ae = E?.lastSyncedWithServer || 0;
225
+ l && P > x ? (k = o.serverState.data, b = !0) : E && x > ae && (k = E.state, o?.localStorage?.onChange && o?.localStorage?.onChange(k)), pe(
226
226
  g,
227
227
  s,
228
- A,
228
+ k,
229
229
  d,
230
- J.current,
231
- C
232
- ), T && $ && C && Ie(A, g, o, C, Date.now()), oe(g), (Array.isArray(h) ? h : [h || "component"]).includes("none") || _({});
230
+ q.current,
231
+ V
232
+ ), b && p && V && he(k, g, o, V, Date.now()), re(g), (Array.isArray(h) ? h : [h || "component"]).includes("none") || A({});
233
233
  }
234
234
  }, [
235
235
  s,
236
236
  I?.status,
237
237
  I?.data,
238
- ...n || []
239
- ]), ke(() => {
240
- D && ye(g, {
238
+ ...t || []
239
+ ]), $e(() => {
240
+ U && ve(g, {
241
241
  serverSync: S,
242
242
  formElements: f,
243
243
  initialState: s,
244
244
  localStorage: u,
245
- middleware: P.current?.middleware
245
+ middleware: _.current?.middleware
246
246
  });
247
- const o = `${g}////${J.current}`, a = t.getState().stateComponents.get(g) || {
247
+ const o = `${g}////${q.current}`, a = n.getState().stateComponents.get(g) || {
248
248
  components: /* @__PURE__ */ new Map()
249
249
  };
250
250
  return a.components.set(o, {
251
- forceUpdate: () => _({}),
251
+ forceUpdate: () => A({}),
252
252
  paths: /* @__PURE__ */ new Set(),
253
253
  deps: [],
254
- depsFunction: k || void 0,
254
+ depsFunction: T || void 0,
255
255
  reactiveType: h ?? ["component", "deps"]
256
- }), t.getState().stateComponents.set(g, a), _({}), () => {
257
- const c = `${g}////${J.current}`;
258
- a && (a.components.delete(c), a.components.size === 0 && t.getState().stateComponents.delete(g));
256
+ }), n.getState().stateComponents.set(g, a), A({}), () => {
257
+ const l = `${g}////${q.current}`;
258
+ a && (a.components.delete(l), a.components.size === 0 && n.getState().stateComponents.delete(g));
259
259
  };
260
260
  }, []);
261
- const d = (o, a, c, p) => {
261
+ const d = (o, a, l, w) => {
262
262
  if (Array.isArray(a)) {
263
263
  const y = `${g}-${a.join(".")}`;
264
- X.current.add(y);
264
+ H.current.add(y);
265
265
  }
266
- Y(g, (y) => {
267
- const w = Z(o) ? o(y) : o, $ = `${g}-${a.join(".")}`;
268
- if ($) {
269
- let G = !1, N = t.getState().signalDomElements.get($);
270
- if ((!N || N.size === 0) && (c.updateType === "insert" || c.updateType === "cut")) {
271
- const j = a.slice(0, -1), W = q(w, j);
272
- if (Array.isArray(W)) {
273
- G = !0;
274
- const E = `${g}-${j.join(".")}`;
275
- N = t.getState().signalDomElements.get(E);
266
+ B(g, (y) => {
267
+ const E = J(o) ? o(y) : o, p = `${g}-${a.join(".")}`;
268
+ if (p) {
269
+ let M = !1, N = n.getState().signalDomElements.get(p);
270
+ if ((!N || N.size === 0) && (l.updateType === "insert" || l.updateType === "cut")) {
271
+ const F = a.slice(0, -1), D = W(E, F);
272
+ if (Array.isArray(D)) {
273
+ M = !0;
274
+ const $ = `${g}-${F.join(".")}`;
275
+ N = n.getState().signalDomElements.get($);
276
276
  }
277
277
  }
278
278
  if (N) {
279
- const j = G ? q(w, a.slice(0, -1)) : q(w, a);
280
- N.forEach(({ parentId: W, position: E, effect: F }) => {
281
- const O = document.querySelector(
282
- `[data-parent-id="${W}"]`
279
+ const F = M ? W(E, a.slice(0, -1)) : W(E, a);
280
+ N.forEach(({ parentId: D, position: $, effect: O }) => {
281
+ const C = document.querySelector(
282
+ `[data-parent-id="${D}"]`
283
283
  );
284
- if (O) {
285
- const z = Array.from(O.childNodes);
286
- if (z[E]) {
287
- const U = F ? new Function("state", `return (${F})(state)`)(j) : j;
288
- z[E].textContent = String(U);
284
+ if (C) {
285
+ const L = Array.from(C.childNodes);
286
+ if (L[$]) {
287
+ const R = O ? new Function("state", `return (${O})(state)`)(F) : F;
288
+ L[$].textContent = String(R);
289
289
  }
290
290
  }
291
291
  });
292
292
  }
293
293
  }
294
- c.updateType === "update" && (p || P.current?.validation?.key) && a && B(
295
- (p || P.current?.validation?.key) + "." + a.join(".")
294
+ l.updateType === "update" && (w || _.current?.validation?.key) && a && z(
295
+ (w || _.current?.validation?.key) + "." + a.join(".")
296
296
  );
297
- const A = a.slice(0, a.length - 1);
298
- c.updateType === "cut" && P.current?.validation?.key && B(
299
- P.current?.validation?.key + "." + A.join(".")
300
- ), c.updateType === "insert" && P.current?.validation?.key && xe(
301
- P.current?.validation?.key + "." + A.join(".")
302
- ).filter(([N, j]) => {
303
- let W = N?.split(".").length;
304
- if (N == A.join(".") && W == A.length - 1) {
305
- let E = N + "." + A;
306
- B(N), Fe(E, j);
297
+ const k = a.slice(0, a.length - 1);
298
+ l.updateType === "cut" && _.current?.validation?.key && z(
299
+ _.current?.validation?.key + "." + k.join(".")
300
+ ), l.updateType === "insert" && _.current?.validation?.key && xe(
301
+ _.current?.validation?.key + "." + k.join(".")
302
+ ).filter(([N, F]) => {
303
+ let D = N?.split(".").length;
304
+ if (N == k.join(".") && D == k.length - 1) {
305
+ let $ = N + "." + k;
306
+ z(N), Fe($, F);
307
307
  }
308
308
  });
309
- const T = t.getState().stateComponents.get(g);
310
- if (T) {
311
- const G = he(y, w), N = new Set(G), j = c.updateType === "update" ? a.join(".") : a.slice(0, -1).join(".") || "";
309
+ const b = n.getState().stateComponents.get(g);
310
+ if (b) {
311
+ const M = ue(y, E), N = new Set(M), F = l.updateType === "update" ? a.join(".") : a.slice(0, -1).join(".") || "";
312
312
  for (const [
313
- W,
314
- E
315
- ] of T.components.entries()) {
316
- let F = !1;
317
- const O = Array.isArray(E.reactiveType) ? E.reactiveType : [E.reactiveType || "component"];
318
- if (!O.includes("none")) {
319
- if (O.includes("all")) {
320
- E.forceUpdate();
313
+ D,
314
+ $
315
+ ] of b.components.entries()) {
316
+ let O = !1;
317
+ const C = Array.isArray($.reactiveType) ? $.reactiveType : [$.reactiveType || "component"];
318
+ if (!C.includes("none")) {
319
+ if (C.includes("all")) {
320
+ $.forceUpdate();
321
321
  continue;
322
322
  }
323
- if (O.includes("component") && ((E.paths.has(j) || E.paths.has("")) && (F = !0), !F))
324
- for (const z of N) {
325
- let U = z;
323
+ if (C.includes("component") && (($.paths.has(F) || $.paths.has("")) && (O = !0), !O))
324
+ for (const L of N) {
325
+ let R = L;
326
326
  for (; ; ) {
327
- if (E.paths.has(U)) {
328
- F = !0;
327
+ if ($.paths.has(R)) {
328
+ O = !0;
329
329
  break;
330
330
  }
331
- const ie = U.lastIndexOf(".");
331
+ const ie = R.lastIndexOf(".");
332
332
  if (ie !== -1) {
333
- const fe = U.substring(
333
+ const Se = R.substring(
334
334
  0,
335
335
  ie
336
336
  );
337
337
  if (!isNaN(
338
- Number(U.substring(ie + 1))
339
- ) && E.paths.has(fe)) {
340
- F = !0;
338
+ Number(R.substring(ie + 1))
339
+ ) && $.paths.has(Se)) {
340
+ O = !0;
341
341
  break;
342
342
  }
343
- U = fe;
343
+ R = Se;
344
344
  } else
345
- U = "";
346
- if (U === "")
345
+ R = "";
346
+ if (R === "")
347
347
  break;
348
348
  }
349
- if (F) break;
349
+ if (O) break;
350
350
  }
351
- if (!F && O.includes("deps") && E.depsFunction) {
352
- const z = E.depsFunction(w);
353
- let U = !1;
354
- typeof z == "boolean" ? z && (U = !0) : L(E.deps, z) || (E.deps = z, U = !0), U && (F = !0);
351
+ if (!O && C.includes("deps") && $.depsFunction) {
352
+ const L = $.depsFunction(E);
353
+ let R = !1;
354
+ typeof L == "boolean" ? L && (R = !0) : G($.deps, L) || ($.deps = L, R = !0), R && (O = !0);
355
355
  }
356
- F && E.forceUpdate();
356
+ O && $.forceUpdate();
357
357
  }
358
358
  }
359
359
  }
360
- const V = Date.now();
361
- a = a.map((G, N) => {
362
- const j = a.slice(0, -1), W = q(w, j);
363
- return N === a.length - 1 && ["insert", "cut"].includes(c.updateType) ? (W.length - 1).toString() : G;
360
+ const P = Date.now();
361
+ a = a.map((M, N) => {
362
+ const F = a.slice(0, -1), D = W(E, F);
363
+ return N === a.length - 1 && ["insert", "cut"].includes(l.updateType) ? (D.length - 1).toString() : M;
364
364
  }), console.log(
365
365
  "mmmmmmmmmmmmmmmmm22222222222222",
366
- c.updateType,
366
+ l.updateType,
367
367
  y,
368
- w,
368
+ E,
369
369
  a
370
370
  );
371
- const { oldValue: R, newValue: b } = Ue(
372
- c.updateType,
371
+ const { oldValue: x, newValue: ae } = Ue(
372
+ l.updateType,
373
373
  y,
374
- w,
374
+ E,
375
375
  a
376
- ), x = {
377
- timeStamp: V,
376
+ ), oe = {
377
+ timeStamp: P,
378
378
  stateKey: g,
379
379
  path: a,
380
- updateType: c.updateType,
380
+ updateType: l.updateType,
381
381
  status: "new",
382
- oldValue: R,
383
- newValue: b
382
+ oldValue: x,
383
+ newValue: ae
384
384
  };
385
- if (Oe(g, (G) => {
386
- const j = [...G ?? [], x].reduce((W, E) => {
387
- const F = `${E.stateKey}:${JSON.stringify(E.path)}`, O = W.get(F);
388
- return O ? (O.timeStamp = Math.max(O.timeStamp, E.timeStamp), O.newValue = E.newValue, O.oldValue = O.oldValue ?? E.oldValue, O.updateType = E.updateType) : W.set(F, { ...E }), W;
385
+ if (Oe(g, (M) => {
386
+ const F = [...M ?? [], oe].reduce((D, $) => {
387
+ const O = `${$.stateKey}:${JSON.stringify($.path)}`, C = D.get(O);
388
+ return C ? (C.timeStamp = Math.max(C.timeStamp, $.timeStamp), C.newValue = $.newValue, C.oldValue = C.oldValue ?? $.oldValue, C.updateType = $.updateType) : D.set(O, { ...$ }), D;
389
389
  }, /* @__PURE__ */ new Map());
390
- return Array.from(j.values());
391
- }), Ie(
392
- w,
390
+ return Array.from(F.values());
391
+ }), he(
392
+ E,
393
393
  g,
394
- P.current,
395
- C
396
- ), P.current?.middleware && P.current.middleware({
397
- updateLog: l,
398
- update: x
399
- }), P.current?.serverSync) {
400
- const G = t.getState().serverState[g], N = P.current?.serverSync;
394
+ _.current,
395
+ V
396
+ ), _.current?.middleware && _.current.middleware({
397
+ updateLog: c,
398
+ update: oe
399
+ }), _.current?.serverSync) {
400
+ const M = n.getState().serverState[g], N = _.current?.serverSync;
401
401
  Re(g, {
402
- syncKey: typeof N.syncKey == "string" ? N.syncKey : N.syncKey({ state: w }),
403
- rollBackState: G,
402
+ syncKey: typeof N.syncKey == "string" ? N.syncKey : N.syncKey({ state: E }),
403
+ rollBackState: M,
404
404
  actionTimeStamp: Date.now() + (N.debounce ?? 3e3),
405
405
  status: "waiting"
406
406
  });
407
407
  }
408
- return w;
408
+ return E;
409
409
  });
410
410
  };
411
- t.getState().updaterState[g] || (te(
411
+ n.getState().updaterState[g] || (K(
412
412
  g,
413
- ne(
413
+ ee(
414
414
  g,
415
415
  d,
416
- J.current,
417
- C
416
+ q.current,
417
+ V
418
418
  )
419
- ), t.getState().cogsStateStore[g] || Y(g, e), t.getState().initialStateGlobal[g] || ge(g, e));
420
- const r = $e(() => ne(
419
+ ), n.getState().cogsStateStore[g] || B(g, e), n.getState().initialStateGlobal[g] || fe(g, e));
420
+ const r = ke(() => ee(
421
421
  g,
422
422
  d,
423
- J.current,
424
- C
423
+ q.current,
424
+ V
425
425
  ), [g]);
426
- return [we(g), r];
426
+ return [Ee(g), r];
427
427
  }
428
- function ne(e, i, S, u) {
428
+ function ee(e, i, S, u) {
429
429
  const f = /* @__PURE__ */ new Map();
430
- let k = 0;
430
+ let T = 0;
431
431
  const h = (m) => {
432
- const n = m.join(".");
432
+ const t = m.join(".");
433
433
  for (const [I] of f)
434
- (I === n || I.startsWith(n + ".")) && f.delete(I);
435
- k++;
434
+ (I === t || I.startsWith(t + ".")) && f.delete(I);
435
+ T++;
436
436
  }, v = {
437
437
  removeValidation: (m) => {
438
- m?.validationKey && B(m.validationKey);
438
+ m?.validationKey && z(m.validationKey);
439
439
  },
440
440
  revertToInitialState: (m) => {
441
- const n = t.getState().getInitialOptions(e)?.validation;
442
- n?.key && B(n?.key), m?.validationKey && B(m.validationKey);
443
- const I = t.getState().initialStateGlobal[e];
444
- t.getState().clearSelectedIndexesForState(e), f.clear(), k++;
445
- const M = s(I, []), _ = H(e), C = Z(_?.localStorage?.key) ? _?.localStorage?.key(I) : _?.localStorage?.key, D = `${u}-${e}-${C}`;
446
- D && localStorage.removeItem(D), te(e, M), Y(e, I);
447
- const g = t.getState().stateComponents.get(e);
448
- return g && g.components.forEach((l) => {
449
- l.forceUpdate();
441
+ const t = n.getState().getInitialOptions(e)?.validation;
442
+ t?.key && z(t?.key), m?.validationKey && z(m.validationKey);
443
+ const I = n.getState().initialStateGlobal[e];
444
+ n.getState().clearSelectedIndexesForState(e), f.clear(), T++;
445
+ const j = s(I, []), A = Z(e), V = J(A?.localStorage?.key) ? A?.localStorage?.key(I) : A?.localStorage?.key, U = `${u}-${e}-${V}`;
446
+ U && localStorage.removeItem(U), K(e, j), B(e, I);
447
+ const g = n.getState().stateComponents.get(e);
448
+ return g && g.components.forEach((c) => {
449
+ c.forceUpdate();
450
450
  }), I;
451
451
  },
452
452
  updateInitialState: (m) => {
453
- f.clear(), k++;
454
- const n = ne(
453
+ f.clear(), T++;
454
+ const t = ee(
455
455
  e,
456
456
  i,
457
457
  S,
458
458
  u
459
- ), I = t.getState().initialStateGlobal[e], M = H(e), _ = Z(M?.localStorage?.key) ? M?.localStorage?.key(I) : M?.localStorage?.key, C = `${u}-${e}-${_}`;
460
- return console.log("removing storage", C), localStorage.getItem(C) && localStorage.removeItem(C), Ae(() => {
461
- ge(e, m), te(e, n), Y(e, m);
462
- const D = t.getState().stateComponents.get(e);
463
- D && D.components.forEach((g) => {
459
+ ), I = n.getState().initialStateGlobal[e], j = Z(e), A = J(j?.localStorage?.key) ? j?.localStorage?.key(I) : j?.localStorage?.key, V = `${u}-${e}-${A}`;
460
+ return console.log("removing storage", V), localStorage.getItem(V) && localStorage.removeItem(V), Ne(() => {
461
+ fe(e, m), K(e, t), B(e, m);
462
+ const U = n.getState().stateComponents.get(e);
463
+ U && U.components.forEach((g) => {
464
464
  g.forceUpdate();
465
465
  });
466
466
  }), {
467
- fetchId: (D) => n.get()[D]
467
+ fetchId: (U) => t.get()[U]
468
468
  };
469
469
  },
470
- _initialState: t.getState().initialStateGlobal[e],
471
- _serverState: t.getState().serverState[e],
472
- _isLoading: t.getState().isLoadingGlobal[e],
470
+ _initialState: n.getState().initialStateGlobal[e],
471
+ _serverState: n.getState().serverState[e],
472
+ _isLoading: n.getState().isLoadingGlobal[e],
473
473
  _isServerSynced: () => {
474
- const m = t.getState().serverState[e];
475
- return !!(m && L(m, we(e)));
474
+ const m = n.getState().serverState[e];
475
+ return !!(m && G(m, Ee(e)));
476
476
  }
477
477
  };
478
- function s(m, n = [], I) {
479
- const M = n.map(String).join(".");
480
- f.get(M);
481
- const _ = function() {
482
- return t().getNestedState(e, n);
478
+ function s(m, t = [], I) {
479
+ const j = t.map(String).join(".");
480
+ f.get(j);
481
+ const A = function() {
482
+ return n().getNestedState(e, t);
483
483
  };
484
484
  Object.keys(v).forEach((g) => {
485
- _[g] = v[g];
485
+ A[g] = v[g];
486
486
  });
487
- const C = {
488
- apply(g, l, X) {
487
+ const V = {
488
+ apply(g, c, H) {
489
489
  return console.log(
490
- `PROXY APPLY TRAP HIT: stateKey=${e}, path=${n.join(".")}`
491
- ), console.trace("Apply trap stack trace"), t().getNestedState(e, n);
490
+ `PROXY APPLY TRAP HIT: stateKey=${e}, path=${t.join(".")}`
491
+ ), console.trace("Apply trap stack trace"), n().getNestedState(e, t);
492
492
  },
493
- get(g, l) {
494
- if (l !== "then" && !l.startsWith("$") && l !== "stateMapNoRender") {
495
- const d = n.join("."), r = `${e}////${S}`, o = t.getState().stateComponents.get(e);
493
+ get(g, c) {
494
+ if (c !== "then" && !c.startsWith("$") && c !== "stateMapNoRender") {
495
+ const d = t.join("."), r = `${e}////${S}`, o = n.getState().stateComponents.get(e);
496
496
  if (o) {
497
497
  const a = o.components.get(r);
498
- a && (n.length > 0 || l === "get") && a.paths.add(d);
498
+ a && (t.length > 0 || c === "get") && a.paths.add(d);
499
499
  }
500
500
  }
501
- if (l === "getDifferences")
502
- return () => he(
503
- t.getState().cogsStateStore[e],
504
- t.getState().initialStateGlobal[e]
501
+ if (c === "getDifferences")
502
+ return () => ue(
503
+ n.getState().cogsStateStore[e],
504
+ n.getState().initialStateGlobal[e]
505
505
  );
506
- if (l === "sync" && n.length === 0)
506
+ if (c === "sync" && t.length === 0)
507
507
  return async function() {
508
- const d = t.getState().getInitialOptions(e), r = d?.sync;
508
+ const d = n.getState().getInitialOptions(e), r = d?.sync;
509
509
  if (!r)
510
510
  return console.error(`No mutation defined for state key "${e}"`), { success: !1, error: "No mutation defined" };
511
- const o = t.getState().getNestedState(e, []), a = d?.validation?.key;
511
+ const o = n.getState().getNestedState(e, []), a = d?.validation?.key;
512
512
  try {
513
- const c = await r.action(o);
514
- if (c && !c.success && c.errors && a) {
515
- t.getState().removeValidationError(a), c.errors.forEach((y) => {
516
- const w = [a, ...y.path].join(".");
517
- t.getState().addValidationError(w, y.message);
513
+ const l = await r.action(o);
514
+ if (l && !l.success && l.errors && a) {
515
+ n.getState().removeValidationError(a), l.errors.forEach((y) => {
516
+ const E = [a, ...y.path].join(".");
517
+ n.getState().addValidationError(E, y.message);
518
518
  });
519
- const p = t.getState().stateComponents.get(e);
520
- p && p.components.forEach((y) => {
519
+ const w = n.getState().stateComponents.get(e);
520
+ w && w.components.forEach((y) => {
521
521
  y.forceUpdate();
522
522
  });
523
523
  }
524
- return c?.success && r.onSuccess ? r.onSuccess(c.data) : !c?.success && r.onError && r.onError(c.error), c;
525
- } catch (c) {
526
- return r.onError && r.onError(c), { success: !1, error: c };
524
+ return l?.success && r.onSuccess ? r.onSuccess(l.data) : !l?.success && r.onError && r.onError(l.error), l;
525
+ } catch (l) {
526
+ return r.onError && r.onError(l), { success: !1, error: l };
527
527
  }
528
528
  };
529
- if (l === "_status") {
530
- const d = t.getState().getNestedState(e, n), r = t.getState().initialStateGlobal[e], o = q(r, n);
531
- return L(d, o) ? "fresh" : "stale";
529
+ if (c === "_status") {
530
+ const d = n.getState().getNestedState(e, t), r = n.getState().initialStateGlobal[e], o = W(r, t);
531
+ return G(d, o) ? "fresh" : "stale";
532
532
  }
533
- if (l === "getStatus")
533
+ if (c === "getStatus")
534
534
  return function() {
535
- const d = t().getNestedState(
535
+ const d = n().getNestedState(
536
536
  e,
537
- n
538
- ), r = t.getState().initialStateGlobal[e], o = q(r, n);
539
- return L(d, o) ? "fresh" : "stale";
537
+ t
538
+ ), r = n.getState().initialStateGlobal[e], o = W(r, t);
539
+ return G(d, o) ? "fresh" : "stale";
540
540
  };
541
- if (l === "removeStorage")
541
+ if (c === "removeStorage")
542
542
  return () => {
543
- const d = t.getState().initialStateGlobal[e], r = H(e), o = Z(r?.localStorage?.key) ? r?.localStorage?.key(d) : r?.localStorage?.key, a = `${u}-${e}-${o}`;
543
+ const d = n.getState().initialStateGlobal[e], r = Z(e), o = J(r?.localStorage?.key) ? r?.localStorage?.key(d) : r?.localStorage?.key, a = `${u}-${e}-${o}`;
544
544
  console.log("removing storage", a), a && localStorage.removeItem(a);
545
545
  };
546
- if (l === "showValidationErrors")
546
+ if (c === "showValidationErrors")
547
547
  return () => {
548
- const d = t.getState().getInitialOptions(e)?.validation;
548
+ const d = n.getState().getInitialOptions(e)?.validation;
549
549
  if (!d?.key)
550
550
  throw new Error("Validation key not found");
551
- return t.getState().getValidationErrors(d.key + "." + n.join("."));
551
+ return n.getState().getValidationErrors(d.key + "." + t.join("."));
552
552
  };
553
553
  if (Array.isArray(m)) {
554
554
  const d = () => I?.validIndices ? m.map((o, a) => ({
555
555
  item: o,
556
556
  originalIndex: I.validIndices[a]
557
- })) : t.getState().getNestedState(e, n).map((o, a) => ({
557
+ })) : n.getState().getNestedState(e, t).map((o, a) => ({
558
558
  item: o,
559
559
  originalIndex: a
560
560
  }));
561
- if (l === "getSelected")
561
+ if (c === "getSelected")
562
562
  return () => {
563
- const r = t.getState().getSelectedIndex(e, n.join("."));
563
+ const r = n.getState().getSelectedIndex(e, t.join("."));
564
564
  if (r !== void 0)
565
565
  return s(
566
566
  m[r],
567
- [...n, r.toString()],
567
+ [...t, r.toString()],
568
568
  I
569
569
  );
570
570
  };
571
- if (l === "clearSelected")
571
+ if (c === "clearSelected")
572
572
  return () => {
573
- t.getState().clearSelectedIndex({ stateKey: e, path: n });
573
+ n.getState().clearSelectedIndex({ stateKey: e, path: t });
574
574
  };
575
- if (l === "getSelectedIndex")
576
- return () => t.getState().getSelectedIndex(e, n.join(".")) ?? -1;
577
- if (l === "stateSort")
575
+ if (c === "getSelectedIndex")
576
+ return () => n.getState().getSelectedIndex(e, t.join(".")) ?? -1;
577
+ if (c === "stateSort")
578
578
  return (r) => {
579
579
  const a = [...d()].sort(
580
- (y, w) => r(y.item, w.item)
581
- ), c = a.map(({ item: y }) => y), p = {
580
+ (y, E) => r(y.item, E.item)
581
+ ), l = a.map(({ item: y }) => y), w = {
582
582
  ...I,
583
583
  validIndices: a.map(
584
584
  ({ originalIndex: y }) => y
585
585
  )
586
586
  };
587
- return s(c, n, p);
587
+ return s(l, t, w);
588
588
  };
589
- if (l === "stateFilter")
589
+ if (c === "stateFilter")
590
590
  return (r) => {
591
591
  const a = d().filter(
592
- ({ item: y }, w) => r(y, w)
593
- ), c = a.map(({ item: y }) => y), p = {
592
+ ({ item: y }, E) => r(y, E)
593
+ ), l = a.map(({ item: y }) => y), w = {
594
594
  ...I,
595
595
  validIndices: a.map(
596
596
  ({ originalIndex: y }) => y
597
597
  )
598
598
  };
599
- return s(c, n, p);
599
+ return s(l, t, w);
600
600
  };
601
- if (l === "stateMap" || l === "stateMapNoRender")
602
- return (r) => m.map((a, c) => {
603
- let p;
604
- I?.validIndices && I.validIndices[c] !== void 0 ? p = I.validIndices[c] : p = c;
605
- const y = [...n, p.toString()], w = s(a, y, I);
601
+ if (c === "stateMap" || c === "stateMapNoRender")
602
+ return (r) => m.map((a, l) => {
603
+ let w;
604
+ I?.validIndices && I.validIndices[l] !== void 0 ? w = I.validIndices[l] : w = l;
605
+ const y = [...t, w.toString()], E = s(a, y, I);
606
606
  return r(
607
607
  a,
608
- w,
609
- c,
608
+ E,
609
+ l,
610
610
  m,
611
- s(m, n, I)
611
+ s(m, t, I)
612
612
  );
613
613
  });
614
- if (l === "$stateMap")
615
- return (r) => re(De, {
614
+ if (c === "$stateMap")
615
+ return (r) => te(Me, {
616
616
  proxy: {
617
617
  _stateKey: e,
618
- _path: n,
618
+ _path: t,
619
619
  _mapFn: r
620
620
  // Pass the actual function, not string
621
621
  },
622
622
  rebuildStateShape: s
623
623
  });
624
- if (l === "stateFlattenOn")
624
+ if (c === "stateFlattenOn")
625
625
  return (r) => {
626
626
  const o = m;
627
- f.clear(), k++;
627
+ f.clear(), T++;
628
628
  const a = o.flatMap(
629
- (c) => c[r] ?? []
629
+ (l) => l[r] ?? []
630
630
  );
631
631
  return s(
632
632
  a,
633
- [...n, "[*]", r],
633
+ [...t, "[*]", r],
634
634
  I
635
635
  );
636
636
  };
637
- if (l === "index")
637
+ if (c === "index")
638
638
  return (r) => {
639
639
  const o = m[r];
640
- return s(o, [...n, r.toString()]);
640
+ return s(o, [...t, r.toString()]);
641
641
  };
642
- if (l === "last")
642
+ if (c === "last")
643
643
  return () => {
644
- const r = t.getState().getNestedState(e, n);
644
+ const r = n.getState().getNestedState(e, t);
645
645
  if (r.length === 0) return;
646
- const o = r.length - 1, a = r[o], c = [...n, o.toString()];
647
- return s(a, c);
646
+ const o = r.length - 1, a = r[o], l = [...t, o.toString()];
647
+ return s(a, l);
648
648
  };
649
- if (l === "insert")
650
- return (r) => (h(n), se(i, r, n, e), s(
651
- t.getState().getNestedState(e, n),
652
- n
649
+ if (c === "insert")
650
+ return (r) => (h(t), se(i, r, t, e), s(
651
+ n.getState().getNestedState(e, t),
652
+ t
653
653
  ));
654
- if (l === "uniqueInsert")
654
+ if (c === "uniqueInsert")
655
655
  return (r, o, a) => {
656
- const c = t.getState().getNestedState(e, n), p = Z(r) ? r(c) : r;
656
+ const l = n.getState().getNestedState(e, t), w = J(r) ? r(l) : r;
657
657
  let y = null;
658
- if (!c.some(($) => {
658
+ if (!l.some((p) => {
659
659
  if (o) {
660
- const T = o.every(
661
- (V) => L($[V], p[V])
660
+ const b = o.every(
661
+ (P) => G(p[P], w[P])
662
662
  );
663
- return T && (y = $), T;
663
+ return b && (y = p), b;
664
664
  }
665
- const A = L($, p);
666
- return A && (y = $), A;
665
+ const k = G(p, w);
666
+ return k && (y = p), k;
667
667
  }))
668
- h(n), se(i, p, n, e);
668
+ h(t), se(i, w, t, e);
669
669
  else if (a && y) {
670
- const $ = a(y), A = c.map(
671
- (T) => L(T, y) ? $ : T
670
+ const p = a(y), k = l.map(
671
+ (b) => G(b, y) ? p : b
672
672
  );
673
- h(n), Q(i, A, n);
673
+ h(t), Y(i, k, t);
674
674
  }
675
675
  };
676
- if (l === "cut")
676
+ if (c === "cut")
677
677
  return (r, o) => {
678
678
  if (!o?.waitForSync)
679
- return h(n), K(i, n, e, r), s(
680
- t.getState().getNestedState(e, n),
681
- n
679
+ return h(t), X(i, t, e, r), s(
680
+ n.getState().getNestedState(e, t),
681
+ t
682
682
  );
683
683
  };
684
- if (l === "cutByValue")
684
+ if (c === "cutByValue")
685
685
  return (r) => {
686
686
  for (let o = 0; o < m.length; o++)
687
- m[o] === r && K(i, n, e, o);
687
+ m[o] === r && X(i, t, e, o);
688
688
  };
689
- if (l === "toggleByValue")
689
+ if (c === "toggleByValue")
690
690
  return (r) => {
691
691
  const o = m.findIndex((a) => a === r);
692
- o > -1 ? K(i, n, e, o) : se(i, r, n, e);
692
+ o > -1 ? X(i, t, e, o) : se(i, r, t, e);
693
693
  };
694
- if (l === "stateFind")
694
+ if (c === "stateFind")
695
695
  return (r) => {
696
696
  const a = d().find(
697
- ({ item: p }, y) => r(p, y)
697
+ ({ item: w }, y) => r(w, y)
698
698
  );
699
699
  if (!a) return;
700
- const c = [...n, a.originalIndex.toString()];
701
- return s(a.item, c, I);
700
+ const l = [...t, a.originalIndex.toString()];
701
+ return s(a.item, l, I);
702
702
  };
703
- if (l === "findWith")
703
+ if (c === "findWith")
704
704
  return (r, o) => {
705
- const c = d().find(
705
+ const l = d().find(
706
706
  ({ item: y }) => y[r] === o
707
707
  );
708
- if (!c) return;
709
- const p = [...n, c.originalIndex.toString()];
710
- return s(c.item, p, I);
708
+ if (!l) return;
709
+ const w = [...t, l.originalIndex.toString()];
710
+ return s(l.item, w, I);
711
711
  };
712
712
  }
713
- const X = n[n.length - 1];
714
- if (!isNaN(Number(X))) {
715
- const d = n.slice(0, -1), r = t.getState().getNestedState(e, d);
716
- if (Array.isArray(r) && l === "cut")
717
- return () => K(
713
+ const H = t[t.length - 1];
714
+ if (!isNaN(Number(H))) {
715
+ const d = t.slice(0, -1), r = n.getState().getNestedState(e, d);
716
+ if (Array.isArray(r) && c === "cut")
717
+ return () => X(
718
718
  i,
719
719
  d,
720
720
  e,
721
- Number(X)
721
+ Number(H)
722
722
  );
723
723
  }
724
- if (l === "get")
725
- return () => t.getState().getNestedState(e, n);
726
- if (l === "$derive")
724
+ if (c === "get")
725
+ return () => n.getState().getNestedState(e, t);
726
+ if (c === "$derive")
727
727
  return (d) => ce({
728
728
  _stateKey: e,
729
- _path: n,
729
+ _path: t,
730
730
  _effect: d.toString()
731
731
  });
732
- if (l === "$derive")
732
+ if (c === "$derive")
733
733
  return (d) => ce({
734
734
  _stateKey: e,
735
- _path: n,
735
+ _path: t,
736
736
  _effect: d.toString()
737
737
  });
738
- if (l === "$get")
738
+ if (c === "$get")
739
739
  return () => ce({
740
740
  _stateKey: e,
741
- _path: n
741
+ _path: t
742
742
  });
743
- if (l === "lastSynced") {
744
- const d = `${e}:${n.join(".")}`;
745
- return t.getState().getSyncInfo(d);
743
+ if (c === "lastSynced") {
744
+ const d = `${e}:${t.join(".")}`;
745
+ return n.getState().getSyncInfo(d);
746
746
  }
747
- if (l == "getLocalStorage")
748
- return (d) => ae(u + "-" + e + "-" + d);
749
- if (l === "_selected") {
750
- const d = n.slice(0, -1), r = d.join("."), o = t.getState().getNestedState(e, d);
751
- return Array.isArray(o) ? Number(n[n.length - 1]) === t.getState().getSelectedIndex(e, r) : void 0;
747
+ if (c == "getLocalStorage")
748
+ return (d) => ne(u + "-" + e + "-" + d);
749
+ if (c === "_selected") {
750
+ const d = t.slice(0, -1), r = d.join("."), o = n.getState().getNestedState(e, d);
751
+ return Array.isArray(o) ? Number(t[t.length - 1]) === n.getState().getSelectedIndex(e, r) : void 0;
752
752
  }
753
- if (l === "setSelected")
753
+ if (c === "setSelected")
754
754
  return (d) => {
755
- const r = n.slice(0, -1), o = Number(n[n.length - 1]), a = r.join(".");
756
- d ? t.getState().setSelectedIndex(e, a, o) : t.getState().setSelectedIndex(e, a, void 0);
757
- const c = t.getState().getNestedState(e, [...r]);
758
- Q(i, c, r), h(r);
755
+ const r = t.slice(0, -1), o = Number(t[t.length - 1]), a = r.join(".");
756
+ d ? n.getState().setSelectedIndex(e, a, o) : n.getState().setSelectedIndex(e, a, void 0);
757
+ const l = n.getState().getNestedState(e, [...r]);
758
+ Y(i, l, r), h(r);
759
759
  };
760
- if (l === "toggleSelected")
760
+ if (c === "toggleSelected")
761
761
  return () => {
762
- const d = n.slice(0, -1), r = Number(n[n.length - 1]), o = d.join("."), a = t.getState().getSelectedIndex(e, o);
763
- t.getState().setSelectedIndex(
762
+ const d = t.slice(0, -1), r = Number(t[t.length - 1]), o = d.join("."), a = n.getState().getSelectedIndex(e, o);
763
+ n.getState().setSelectedIndex(
764
764
  e,
765
765
  o,
766
766
  a === r ? void 0 : r
767
767
  );
768
- const c = t.getState().getNestedState(e, [...d]);
769
- Q(i, c, d), h(d);
768
+ const l = n.getState().getNestedState(e, [...d]);
769
+ Y(i, l, d), h(d);
770
770
  };
771
- if (n.length == 0) {
772
- if (l === "applyJsonPatch")
771
+ if (t.length == 0) {
772
+ if (c === "applyJsonPatch")
773
773
  return (d) => {
774
- const r = t.getState().cogsStateStore[e], a = be(r, d).newDocument, c = H(e), p = c?.middleware, y = t.getState().setInitialStateOptions;
775
- c && p && y(e, {
776
- ...c,
777
- middleware: void 0
778
- }), Ee(
774
+ const r = n.getState().cogsStateStore[e], a = Pe(r, d).newDocument;
775
+ pe(
779
776
  e,
780
- t.getState().initialStateGlobal[e],
777
+ n.getState().initialStateGlobal[e],
781
778
  a,
782
779
  i,
783
780
  S,
784
781
  u
785
- ), c && p && y(e, {
786
- ...c,
787
- middleware: p
788
- });
789
- const w = t.getState().stateComponents.get(e);
790
- if (console.log("component update logic stateEntry", w), !w) return;
791
- const $ = /* @__PURE__ */ new Set();
792
- console.log("component update logic pathsToCheck", $), Array.isArray(r) && Array.isArray(a) && r.length !== a.length && $.add(""), console.log("component update logic pathsToCheck", $), d.forEach((A) => {
793
- const V = A.path.slice(1).split("/");
794
- if (A.op === "add" || A.op === "remove") {
795
- const b = V[V.length - 1];
796
- if (!isNaN(parseInt(b))) {
797
- const x = V.slice(0, -1).join(".");
798
- $.add(x), x === "" && $.add("");
799
- }
800
- }
801
- let R = "";
802
- V.forEach((b, x) => {
803
- x > 0 && (R += "."), R += b, $.add(R);
804
- }), $.add("");
805
- });
806
- for (const [
807
- A,
808
- T
809
- ] of w.components.entries()) {
810
- console.log("component update logic component", T);
811
- let V = !1;
812
- const R = Array.isArray(T.reactiveType) ? T.reactiveType : [T.reactiveType || "component"];
813
- if (!R.includes("none")) {
814
- if (R.includes("all")) {
815
- T.forceUpdate();
816
- continue;
817
- }
818
- if (R.includes("component"))
819
- for (const b of T.paths) {
820
- if ($.has(b)) {
821
- V = !0;
822
- break;
823
- }
824
- for (const x of $)
825
- if (x.startsWith(b + ".") || b === "" && x !== "") {
826
- V = !0;
782
+ );
783
+ const l = n.getState().stateComponents.get(e);
784
+ if (l) {
785
+ const w = ue(r, a), y = new Set(w);
786
+ for (const [
787
+ E,
788
+ p
789
+ ] of l.components.entries()) {
790
+ let k = !1;
791
+ const b = Array.isArray(p.reactiveType) ? p.reactiveType : [p.reactiveType || "component"];
792
+ if (!b.includes("none")) {
793
+ if (b.includes("all")) {
794
+ p.forceUpdate();
795
+ continue;
796
+ }
797
+ if (b.includes("component") && (p.paths.has("") && (k = !0), !k))
798
+ for (const P of y) {
799
+ if (p.paths.has(P)) {
800
+ k = !0;
827
801
  break;
828
802
  }
829
- if (V) break;
803
+ let x = P;
804
+ for (; x.includes("."); )
805
+ if (x = x.substring(
806
+ 0,
807
+ x.lastIndexOf(".")
808
+ ), p.paths.has(x)) {
809
+ k = !0;
810
+ break;
811
+ }
812
+ if (k) break;
813
+ }
814
+ if (!k && b.includes("deps") && p.depsFunction) {
815
+ const P = p.depsFunction(a);
816
+ let x = !1;
817
+ typeof P == "boolean" ? P && (x = !0) : G(p.deps, P) || (p.deps = P, x = !0), x && (k = !0);
830
818
  }
831
- if (!V && R.includes("deps") && T.depsFunction) {
832
- const b = T.depsFunction(a);
833
- let x = !1;
834
- typeof b == "boolean" ? b && (x = !0) : L(T.deps, b) || (T.deps = b, x = !0), x && (V = !0);
819
+ k && p.forceUpdate();
835
820
  }
836
- V && T.forceUpdate();
837
821
  }
838
822
  }
839
823
  };
840
- if (l === "validateZodSchema")
824
+ if (c === "validateZodSchema")
841
825
  return () => {
842
- const d = t.getState().getInitialOptions(e)?.validation, r = t.getState().addValidationError;
826
+ const d = n.getState().getInitialOptions(e)?.validation, r = n.getState().addValidationError;
843
827
  if (!d?.zodSchema)
844
828
  throw new Error("Zod schema not found");
845
829
  if (!d?.key)
846
830
  throw new Error("Validation key not found");
847
- B(d.key);
848
- const o = t.getState().cogsStateStore[e];
831
+ z(d.key);
832
+ const o = n.getState().cogsStateStore[e];
849
833
  try {
850
- const a = t.getState().getValidationErrors(d.key);
851
- a && a.length > 0 && a.forEach(([p]) => {
852
- p && p.startsWith(d.key) && B(p);
834
+ const a = n.getState().getValidationErrors(d.key);
835
+ a && a.length > 0 && a.forEach(([w]) => {
836
+ w && w.startsWith(d.key) && z(w);
853
837
  });
854
- const c = d.zodSchema.safeParse(o);
855
- return c.success ? !0 : (c.error.errors.forEach((y) => {
856
- const w = y.path, $ = y.message, A = [d.key, ...w].join(".");
857
- r(A, $);
858
- }), oe(e), !1);
838
+ const l = d.zodSchema.safeParse(o);
839
+ return l.success ? !0 : (l.error.errors.forEach((y) => {
840
+ const E = y.path, p = y.message, k = [d.key, ...E].join(".");
841
+ r(k, p);
842
+ }), re(e), !1);
859
843
  } catch (a) {
860
844
  return console.error("Zod schema validation failed", a), !1;
861
845
  }
862
846
  };
863
- if (l === "_componentId") return S;
864
- if (l === "getComponents")
865
- return () => t().stateComponents.get(e);
866
- if (l === "getAllFormRefs")
867
- return () => me.getState().getFormRefsByStateKey(e);
868
- if (l === "_initialState")
869
- return t.getState().initialStateGlobal[e];
870
- if (l === "_serverState")
871
- return t.getState().serverState[e];
872
- if (l === "_isLoading")
873
- return t.getState().isLoadingGlobal[e];
874
- if (l === "revertToInitialState")
847
+ if (c === "_componentId") return S;
848
+ if (c === "getComponents")
849
+ return () => n().stateComponents.get(e);
850
+ if (c === "getAllFormRefs")
851
+ return () => ye.getState().getFormRefsByStateKey(e);
852
+ if (c === "_initialState")
853
+ return n.getState().initialStateGlobal[e];
854
+ if (c === "_serverState")
855
+ return n.getState().serverState[e];
856
+ if (c === "_isLoading")
857
+ return n.getState().isLoadingGlobal[e];
858
+ if (c === "revertToInitialState")
875
859
  return v.revertToInitialState;
876
- if (l === "updateInitialState") return v.updateInitialState;
877
- if (l === "removeValidation") return v.removeValidation;
860
+ if (c === "updateInitialState") return v.updateInitialState;
861
+ if (c === "removeValidation") return v.removeValidation;
878
862
  }
879
- if (l === "getFormRef")
880
- return () => me.getState().getFormRef(e + "." + n.join("."));
881
- if (l === "validationWrapper")
863
+ if (c === "getFormRef")
864
+ return () => ye.getState().getFormRef(e + "." + t.join("."));
865
+ if (c === "validationWrapper")
882
866
  return ({
883
867
  children: d,
884
868
  hideMessage: r
885
- }) => /* @__PURE__ */ Se(
869
+ }) => /* @__PURE__ */ me(
886
870
  _e,
887
871
  {
888
872
  formOpts: r ? { validation: { message: "" } } : void 0,
889
- path: n,
890
- validationKey: t.getState().getInitialOptions(e)?.validation?.key || "",
873
+ path: t,
874
+ validationKey: n.getState().getInitialOptions(e)?.validation?.key || "",
891
875
  stateKey: e,
892
876
  validIndices: I?.validIndices,
893
877
  children: d
894
878
  }
895
879
  );
896
- if (l === "_stateKey") return e;
897
- if (l === "_path") return n;
898
- if (l === "_isServerSynced") return v._isServerSynced;
899
- if (l === "update")
880
+ if (c === "_stateKey") return e;
881
+ if (c === "_path") return t;
882
+ if (c === "_isServerSynced") return v._isServerSynced;
883
+ if (c === "update")
900
884
  return (d, r) => {
901
885
  if (r?.debounce)
902
886
  Ve(() => {
903
- Q(i, d, n, "");
904
- const o = t.getState().getNestedState(e, n);
887
+ Y(i, d, t, "");
888
+ const o = n.getState().getNestedState(e, t);
905
889
  r?.afterUpdate && r.afterUpdate(o);
906
890
  }, r.debounce);
907
891
  else {
908
- Q(i, d, n, "");
909
- const o = t.getState().getNestedState(e, n);
892
+ Y(i, d, t, "");
893
+ const o = n.getState().getNestedState(e, t);
910
894
  r?.afterUpdate && r.afterUpdate(o);
911
895
  }
912
- h(n);
896
+ h(t);
913
897
  };
914
- if (l === "formElement")
915
- return (d, r) => /* @__PURE__ */ Se(
916
- Ce,
898
+ if (c === "formElement")
899
+ return (d, r) => /* @__PURE__ */ me(
900
+ be,
917
901
  {
918
902
  setState: i,
919
903
  stateKey: e,
920
- path: n,
904
+ path: t,
921
905
  child: d,
922
906
  formOpts: r
923
907
  }
924
908
  );
925
- const J = [...n, l], P = t.getState().getNestedState(e, J);
926
- return s(P, J, I);
909
+ const q = [...t, c], _ = n.getState().getNestedState(e, q);
910
+ return s(_, q, I);
927
911
  }
928
- }, D = new Proxy(_, C);
929
- return f.set(M, {
930
- proxy: D,
931
- stateVersion: k
932
- }), D;
912
+ }, U = new Proxy(A, V);
913
+ return f.set(j, {
914
+ proxy: U,
915
+ stateVersion: T
916
+ }), U;
933
917
  }
934
918
  return s(
935
- t.getState().getNestedState(e, [])
919
+ n.getState().getNestedState(e, [])
936
920
  );
937
921
  }
938
922
  function ce(e) {
939
- return re(We, { proxy: e });
923
+ return te(Ge, { proxy: e });
940
924
  }
941
- function De({
925
+ function Me({
942
926
  proxy: e,
943
927
  rebuildStateShape: i
944
928
  }) {
945
- const S = t().getNestedState(e._stateKey, e._path);
929
+ const S = n().getNestedState(e._stateKey, e._path);
946
930
  return Array.isArray(S) ? i(
947
931
  S,
948
932
  e._path
949
933
  ).stateMapNoRender(
950
- (f, k, h, v, s) => e._mapFn(f, k, h, v, s)
934
+ (f, T, h, v, s) => e._mapFn(f, T, h, v, s)
951
935
  ) : null;
952
936
  }
953
- function We({
937
+ function Ge({
954
938
  proxy: e
955
939
  }) {
956
- const i = ee(null), S = `${e._stateKey}-${e._path.join(".")}`;
940
+ const i = Q(null), S = `${e._stateKey}-${e._path.join(".")}`;
957
941
  return de(() => {
958
942
  const u = i.current;
959
943
  if (!u || !u.parentElement) return;
@@ -966,24 +950,24 @@ function We({
966
950
  position: h,
967
951
  effect: e._effect
968
952
  };
969
- t.getState().addSignalElement(S, m);
970
- const n = t.getState().getNestedState(e._stateKey, e._path);
953
+ n.getState().addSignalElement(S, m);
954
+ const t = n.getState().getNestedState(e._stateKey, e._path);
971
955
  let I;
972
956
  if (e._effect)
973
957
  try {
974
958
  I = new Function(
975
959
  "state",
976
960
  `return (${e._effect})(state)`
977
- )(n);
978
- } catch (_) {
979
- console.error("Error evaluating effect function during mount:", _), I = n;
961
+ )(t);
962
+ } catch (A) {
963
+ console.error("Error evaluating effect function during mount:", A), I = t;
980
964
  }
981
965
  else
982
- I = n;
966
+ I = t;
983
967
  I !== null && typeof I == "object" && (I = JSON.stringify(I));
984
- const M = document.createTextNode(String(I));
985
- u.replaceWith(M);
986
- }, [e._stateKey, e._path.join("."), e._effect]), re("span", {
968
+ const j = document.createTextNode(String(I));
969
+ u.replaceWith(j);
970
+ }, [e._stateKey, e._path.join("."), e._effect]), te("span", {
987
971
  ref: i,
988
972
  style: { display: "none" },
989
973
  "data-signal-id": S
@@ -992,7 +976,7 @@ function We({
992
976
  function tt(e) {
993
977
  const i = Te(
994
978
  (S) => {
995
- const u = t.getState().stateComponents.get(e._stateKey) || {
979
+ const u = n.getState().stateComponents.get(e._stateKey) || {
996
980
  components: /* @__PURE__ */ new Map()
997
981
  };
998
982
  return u.components.set(e._stateKey, {
@@ -1000,9 +984,9 @@ function tt(e) {
1000
984
  paths: /* @__PURE__ */ new Set([e._path.join(".")])
1001
985
  }), () => u.components.delete(e._stateKey);
1002
986
  },
1003
- () => t.getState().getNestedState(e._stateKey, e._path)
987
+ () => n.getState().getNestedState(e._stateKey, e._path)
1004
988
  );
1005
- return re("text", {}, String(i));
989
+ return te("text", {}, String(i));
1006
990
  }
1007
991
  export {
1008
992
  ce as $cogsSignal,
@@ -1010,6 +994,6 @@ export {
1010
994
  Qe as addStateOptions,
1011
995
  Ke as createCogsState,
1012
996
  et as notifyComponent,
1013
- Me as useCogsStateFn
997
+ De as useCogsStateFn
1014
998
  };
1015
999
  //# sourceMappingURL=CogsState.jsx.map