cogsbox-state 0.5.296 → 0.5.298

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/store.d.ts CHANGED
@@ -36,6 +36,8 @@ export type CogsGlobalState = {
36
36
  shadowStateStore: {
37
37
  [key: string]: any;
38
38
  };
39
+ shadowStateSubscribers: Map<string, Set<() => void>>;
40
+ subscribeToShadowState: (key: string, callback: () => void) => () => void;
39
41
  initializeShadowState: (key: string, initialState: any) => void;
40
42
  updateShadowAtPath: (key: string, path: string[], newValue: any) => void;
41
43
  insertShadowArrayElement: (key: string, arrayPath: string[], newItem: any) => void;
@@ -68,44 +70,47 @@ export type CogsGlobalState = {
68
70
  iniitialCreatedState: {
69
71
  [key: string]: StateValue;
70
72
  };
71
- validationErrors: Map<string, string[]>;
72
73
  serverState: {
73
74
  [key: string]: StateValue;
74
75
  };
76
+ getUpdaterState: (key: string) => StateUpdater<StateValue>;
77
+ setUpdaterState: (key: string, newUpdater: any) => void;
78
+ getKeyState: <StateKey extends StateKeys>(key: StateKey) => StateValue;
79
+ getNestedState: <StateKey extends StateKeys>(key: StateKey, path: string[]) => StateValue;
80
+ setState: <StateKey extends StateKeys>(key: StateKey, value: StateUpdater<StateValue>) => void;
81
+ setInitialStates: (initialState: StateValue) => void;
82
+ setCreatedState: (initialState: StateValue) => void;
83
+ updateInitialStateGlobal: (key: string, newState: StateValue) => void;
84
+ updateInitialCreatedState: (key: string, newState: StateValue) => void;
85
+ setIsLoadingGlobal: (key: string, value: boolean) => void;
86
+ setServerState: <StateKey extends StateKeys>(key: StateKey, value: StateValue) => void;
87
+ getInitialOptions: (key: string) => OptionsType | undefined;
88
+ setInitialStateOptions: (key: string, value: OptionsType) => void;
89
+ validationErrors: Map<string, string[]>;
90
+ addValidationError: (path: string, message: string) => void;
91
+ getValidationErrors: (path: string) => string[];
92
+ removeValidationError: (path: string) => void;
75
93
  serverSyncActions: {
76
94
  [key: string]: SyncActionsType<any>;
77
95
  };
78
96
  serverSyncLog: {
79
97
  [key: string]: SyncLogType[];
80
98
  };
99
+ stateLog: {
100
+ [key: string]: UpdateTypeDetail[];
101
+ };
102
+ syncInfoStore: Map<string, SyncInfo>;
81
103
  serverSideOrNot: {
82
104
  [key: string]: boolean;
83
105
  };
84
106
  setServerSyncLog: (key: string, newValue: SyncLogType) => void;
85
107
  setServerSideOrNot: (key: string, value: boolean) => void;
86
108
  getServerSideOrNot: (key: string) => boolean | undefined;
87
- setServerState: <StateKey extends StateKeys>(key: StateKey, value: StateValue) => void;
88
109
  getThisLocalUpdate: (key: string) => UpdateTypeDetail[] | undefined;
89
110
  setServerSyncActions: (key: string, value: SyncActionsType<any>) => void;
90
- addValidationError: (path: string, message: string) => void;
91
- getValidationErrors: (path: string) => string[];
92
- updateInitialStateGlobal: (key: string, newState: StateValue) => void;
93
- updateInitialCreatedState: (key: string, newState: StateValue) => void;
94
- getInitialOptions: (key: string) => OptionsType | undefined;
95
- getUpdaterState: (key: string) => StateUpdater<StateValue>;
96
- setUpdaterState: (key: string, newUpdater: any) => void;
97
- getKeyState: <StateKey extends StateKeys>(key: StateKey) => StateValue;
98
- getNestedState: <StateKey extends StateKeys>(key: StateKey, path: string[]) => StateValue;
99
- setState: <StateKey extends StateKeys>(key: StateKey, value: StateUpdater<StateValue>) => void;
100
- setInitialStates: (initialState: StateValue) => void;
101
- setCreatedState: (initialState: StateValue) => void;
102
- stateLog: {
103
- [key: string]: UpdateTypeDetail[];
104
- };
105
111
  setStateLog: (key: string, updater: (prevUpdates: UpdateTypeDetail[]) => UpdateTypeDetail[]) => void;
106
- setIsLoadingGlobal: (key: string, value: boolean) => void;
107
- setInitialStateOptions: (key: string, value: OptionsType) => void;
108
- removeValidationError: (path: string) => void;
112
+ setSyncInfo: (key: string, syncInfo: SyncInfo) => void;
113
+ getSyncInfo: (key: string) => SyncInfo | null;
109
114
  signalDomElements: Map<string, Set<{
110
115
  instanceId: string;
111
116
  parentId: string;
@@ -121,6 +126,7 @@ export type CogsGlobalState = {
121
126
  map?: string;
122
127
  }) => void;
123
128
  removeSignalElement: (signalId: string, instanceId: string) => void;
129
+ stateComponents: Map<string, ComponentsType>;
124
130
  reRenderTriggerPrevValue: Record<string, any>;
125
131
  reactiveDeps: Record<string, {
126
132
  deps: any[];
@@ -134,10 +140,6 @@ export type CogsGlobalState = {
134
140
  }) => void;
135
141
  deleteReactiveDeps: (key: string) => void;
136
142
  subscribe: (listener: () => void) => () => void;
137
- stateComponents: Map<string, ComponentsType>;
138
- syncInfoStore: Map<string, SyncInfo>;
139
- setSyncInfo: (key: string, syncInfo: SyncInfo) => void;
140
- getSyncInfo: (key: string) => SyncInfo | null;
141
143
  };
142
144
  export declare const getGlobalStore: import('zustand').UseBoundStore<import('zustand').StoreApi<CogsGlobalState>>;
143
145
  export {};
package/dist/store.js CHANGED
@@ -13,8 +13,8 @@ const w = u((s, S) => ({
13
13
  // Get all refs that start with the stateKey prefix
14
14
  getFormRefsByStateKey: (e) => {
15
15
  const r = S().formRefs, t = e + ".", n = /* @__PURE__ */ new Map();
16
- return r.forEach((o, a) => {
17
- (a.startsWith(t) || a === e) && n.set(a, o);
16
+ return r.forEach((a, o) => {
17
+ (o.startsWith(t) || o === e) && n.set(o, a);
18
18
  }), n;
19
19
  }
20
20
  })), h = u((s, S) => ({
@@ -23,32 +23,19 @@ const w = u((s, S) => ({
23
23
  const t = S().shadowStateStore[e];
24
24
  if (!t) return null;
25
25
  let n = t;
26
- for (const o of r)
27
- if (n = n?.[o], !n) return null;
26
+ for (const a of r)
27
+ if (n = n?.[a], !n) return null;
28
28
  return n;
29
29
  },
30
- setShadowMetadata: (e, r, t) => {
31
- s((n) => {
32
- const o = { ...n.shadowStateStore };
33
- if (!o[e]) return n;
34
- o[e] = JSON.parse(JSON.stringify(o[e]));
35
- let a = o[e];
36
- for (const i of r)
37
- a[i] || (a[i] = {}), a = a[i];
38
- return Object.keys(t).forEach((i) => {
39
- a[i] || (a[i] = {}), Object.assign(a[i], t[i]);
40
- }), { shadowStateStore: o };
41
- });
42
- },
43
30
  initializeShadowState: (e, r) => {
44
31
  const t = (n) => {
45
32
  if (Array.isArray(n))
46
- return new Array(n.length).fill(null).map((o, a) => t(n[a]));
33
+ return new Array(n.length).fill(null).map((a, o) => t(n[o]));
47
34
  if (typeof n == "object" && n !== null) {
48
- const o = {};
49
- for (const a in n)
50
- o[a] = t(n[a]);
51
- return o;
35
+ const a = {};
36
+ for (const o in n)
37
+ a[o] = t(n[o]);
38
+ return a;
52
39
  }
53
40
  return {};
54
41
  };
@@ -61,49 +48,76 @@ const w = u((s, S) => ({
61
48
  },
62
49
  updateShadowAtPath: (e, r, t) => {
63
50
  s((n) => {
64
- const o = { ...n.shadowStateStore };
65
- if (!o[e]) return n;
66
- let a = o[e];
67
- const i = [...r], c = i.pop();
68
- for (const l of i)
69
- a[l] || (a[l] = {}), a = a[l];
70
- return c !== void 0 && (Array.isArray(t) ? a[c] = new Array(t.length) : typeof t == "object" && t !== null ? a[c] = {} : a[c] = a[c] || {}), { shadowStateStore: o };
51
+ const a = { ...n.shadowStateStore };
52
+ if (!a[e]) return n;
53
+ let o = a[e];
54
+ const i = [...r], l = i.pop();
55
+ for (const c of i)
56
+ o[c] || (o[c] = {}), o = o[c];
57
+ return l !== void 0 && (Array.isArray(t) ? o[l] = new Array(t.length) : typeof t == "object" && t !== null ? o[l] = {} : o[l] = o[l] || {}), { shadowStateStore: a };
71
58
  });
72
59
  },
73
60
  insertShadowArrayElement: (e, r, t) => {
74
61
  s((n) => {
75
- const o = { ...n.shadowStateStore };
76
- if (!o[e]) return n;
77
- o[e] = JSON.parse(JSON.stringify(o[e]));
78
- let a = o[e];
62
+ const a = { ...n.shadowStateStore };
63
+ if (!a[e]) return n;
64
+ a[e] = JSON.parse(JSON.stringify(a[e]));
65
+ let o = a[e];
79
66
  for (const i of r)
80
- if (a = a[i], !a) return n;
81
- if (Array.isArray(a)) {
82
- const i = (c) => {
83
- if (Array.isArray(c))
84
- return c.map((l) => i(l));
85
- if (typeof c == "object" && c !== null) {
86
- const l = {};
87
- for (const d in c)
88
- l[d] = i(c[d]);
89
- return l;
67
+ if (o = o[i], !o) return n;
68
+ if (Array.isArray(o)) {
69
+ const i = (l) => {
70
+ if (Array.isArray(l))
71
+ return l.map((c) => i(c));
72
+ if (typeof l == "object" && l !== null) {
73
+ const c = {};
74
+ for (const d in l)
75
+ c[d] = i(l[d]);
76
+ return c;
90
77
  }
91
78
  return {};
92
79
  };
93
- a.push(i(t));
80
+ o.push(i(t));
94
81
  }
95
- return { shadowStateStore: o };
82
+ return { shadowStateStore: a };
96
83
  });
97
84
  },
98
85
  removeShadowArrayElement: (e, r, t) => {
99
86
  s((n) => {
100
- const o = { ...n.shadowStateStore };
101
- let a = o[e];
87
+ const a = { ...n.shadowStateStore };
88
+ let o = a[e];
102
89
  for (const i of r)
103
- a = a?.[i];
104
- return Array.isArray(a) && a.splice(t, 1), { shadowStateStore: o };
90
+ o = o?.[i];
91
+ return Array.isArray(o) && o.splice(t, 1), { shadowStateStore: a };
105
92
  });
106
93
  },
94
+ shadowStateSubscribers: /* @__PURE__ */ new Map(),
95
+ // key -> Set of callbacks
96
+ subscribeToShadowState: (e, r) => (s((t) => {
97
+ const n = new Map(t.shadowStateSubscribers), a = n.get(e) || /* @__PURE__ */ new Set();
98
+ return a.add(r), n.set(e, a), { shadowStateSubscribers: n };
99
+ }), () => {
100
+ s((t) => {
101
+ const n = new Map(t.shadowStateSubscribers), a = n.get(e);
102
+ return a && a.delete(r), { shadowStateSubscribers: n };
103
+ });
104
+ }),
105
+ setShadowMetadata: (e, r, t) => {
106
+ let n = !1;
107
+ if (s((a) => {
108
+ const o = { ...a.shadowStateStore };
109
+ if (!o[e]) return a;
110
+ o[e] = JSON.parse(JSON.stringify(o[e]));
111
+ let i = o[e];
112
+ for (const d of r)
113
+ i[d] || (i[d] = {}), i = i[d];
114
+ const l = i.virtualizer?.itemHeight, c = t.virtualizer?.itemHeight;
115
+ return c && l !== c && (n = !0, i.virtualizer || (i.virtualizer = {}), i.virtualizer.itemHeight = c), { shadowStateStore: o };
116
+ }), n) {
117
+ const a = S().shadowStateSubscribers.get(e);
118
+ a && a.forEach((o) => o());
119
+ }
120
+ },
107
121
  selectedIndicesMap: /* @__PURE__ */ new Map(),
108
122
  // Add the new methods
109
123
  getSelectedIndex: (e, r) => {
@@ -113,11 +127,11 @@ const w = u((s, S) => ({
113
127
  },
114
128
  setSelectedIndex: (e, r, t) => {
115
129
  s((n) => {
116
- const o = new Map(n.selectedIndicesMap);
117
- let a = o.get(e);
118
- return a || (a = /* @__PURE__ */ new Map(), o.set(e, a)), t === void 0 ? a.delete(r) : a.set(r, t), {
130
+ const a = new Map(n.selectedIndicesMap);
131
+ let o = a.get(e);
132
+ return o || (o = /* @__PURE__ */ new Map(), a.set(e, o)), t === void 0 ? o.delete(r) : o.set(r, t), {
119
133
  ...n,
120
- selectedIndicesMap: o
134
+ selectedIndicesMap: a
121
135
  };
122
136
  });
123
137
  },
@@ -126,10 +140,10 @@ const w = u((s, S) => ({
126
140
  path: r
127
141
  }) => {
128
142
  s((t) => {
129
- const n = new Map(t.selectedIndicesMap), o = n.get(e);
130
- if (!o) return t;
131
- const a = r.join(".");
132
- return o.delete(a), {
143
+ const n = new Map(t.selectedIndicesMap), a = n.get(e);
144
+ if (!a) return t;
145
+ const o = r.join(".");
146
+ return a.delete(o), {
133
147
  ...t,
134
148
  selectedIndicesMap: n
135
149
  };
@@ -168,8 +182,8 @@ const w = u((s, S) => ({
168
182
  },
169
183
  removeSignalElement: (e, r) => {
170
184
  const t = S().signalDomElements, n = t.get(e);
171
- n && n.forEach((o) => {
172
- o.instanceId === r && n.delete(o);
185
+ n && n.forEach((a) => {
186
+ a.instanceId === r && n.delete(a);
173
187
  }), s({ signalDomElements: new Map(t) });
174
188
  },
175
189
  initialStateOptions: {},
@@ -221,11 +235,11 @@ const w = u((s, S) => ({
221
235
  },
222
236
  setStateLog: (e, r) => {
223
237
  s((t) => {
224
- const n = t.stateLog[e] ?? [], o = r(n);
238
+ const n = t.stateLog[e] ?? [], a = r(n);
225
239
  return {
226
240
  stateLog: {
227
241
  ...t.stateLog,
228
- [e]: o
242
+ [e]: a
229
243
  }
230
244
  };
231
245
  });
@@ -248,78 +262,78 @@ const w = u((s, S) => ({
248
262
  },
249
263
  addValidationError: (e, r) => {
250
264
  console.log("addValidationError---"), s((t) => {
251
- const n = new Map(t.validationErrors), o = n.get(e) || [];
252
- return console.log("addValidationError", e, r, o), n.set(e, [...o, r]), { validationErrors: n };
265
+ const n = new Map(t.validationErrors), a = n.get(e) || [];
266
+ return console.log("addValidationError", e, r, a), n.set(e, [...a, r]), { validationErrors: n };
253
267
  });
254
268
  },
255
269
  removeValidationError: (e) => {
256
270
  s((r) => {
257
271
  const t = new Map(r.validationErrors);
258
272
  let n = !1;
259
- const o = e.split(".");
260
- return Array.from(t.keys()).forEach((a) => {
261
- const i = a.split(".");
262
- if (i.length >= o.length) {
263
- let c = !0;
264
- for (let l = 0; l < o.length; l++)
265
- if (i[l] !== o[l]) {
266
- c = !1;
273
+ const a = e.split(".");
274
+ return Array.from(t.keys()).forEach((o) => {
275
+ const i = o.split(".");
276
+ if (i.length >= a.length) {
277
+ let l = !0;
278
+ for (let c = 0; c < a.length; c++)
279
+ if (i[c] !== a[c]) {
280
+ l = !1;
267
281
  break;
268
282
  }
269
- c && (n = !0, t.delete(a));
283
+ l && (n = !0, t.delete(o));
270
284
  }
271
285
  }), n ? { validationErrors: t } : r;
272
286
  });
273
287
  },
274
288
  getValidationErrors: (e) => {
275
- const r = [], t = S().validationErrors, n = e.split("."), o = (a, i) => a === "[*]" ? !0 : Array.isArray(a) ? a.includes(parseInt(i)) : a === i;
276
- return Array.from(t.keys()).forEach((a) => {
277
- const i = a.split(".");
289
+ const r = [], t = S().validationErrors, n = e.split("."), a = (o, i) => o === "[*]" ? !0 : Array.isArray(o) ? o.includes(parseInt(i)) : o === i;
290
+ return Array.from(t.keys()).forEach((o) => {
291
+ const i = o.split(".");
278
292
  if (i.length >= n.length) {
279
- let c = !0;
280
- for (let l = 0; l < n.length; l++) {
281
- const d = n[l], f = i[l];
293
+ let l = !0;
294
+ for (let c = 0; c < n.length; c++) {
295
+ const d = n[c], f = i[c];
282
296
  if (d === "[*]" || Array.isArray(d)) {
283
297
  const p = parseInt(f);
284
298
  if (isNaN(p)) {
285
- c = !1;
299
+ l = !1;
286
300
  break;
287
301
  }
288
- if (!o(d, f)) {
289
- c = !1;
302
+ if (!a(d, f)) {
303
+ l = !1;
290
304
  break;
291
305
  }
292
306
  } else if (d !== f) {
293
- c = !1;
307
+ l = !1;
294
308
  break;
295
309
  }
296
310
  }
297
- if (c) {
298
- const l = t.get(a);
299
- l && r.push(...l);
311
+ if (l) {
312
+ const c = t.get(o);
313
+ c && r.push(...c);
300
314
  }
301
315
  }
302
316
  }), r;
303
317
  },
304
318
  getInitialOptions: (e) => S().initialStateOptions[e],
305
319
  getNestedState: (e, r) => {
306
- const t = S().cogsStateStore[e], n = (o, a) => {
307
- if (a.length === 0) return o;
308
- const i = a[0], c = a.slice(1);
320
+ const t = S().cogsStateStore[e], n = (a, o) => {
321
+ if (o.length === 0) return a;
322
+ const i = o[0], l = o.slice(1);
309
323
  if (i === "[*]") {
310
- if (!Array.isArray(o)) {
324
+ if (!Array.isArray(a)) {
311
325
  console.warn("Asterisk notation used on non-array value");
312
326
  return;
313
327
  }
314
- if (c.length === 0) return o;
315
- const d = o.map(
316
- (f) => n(f, c)
328
+ if (l.length === 0) return a;
329
+ const d = a.map(
330
+ (f) => n(f, l)
317
331
  );
318
332
  return Array.isArray(d[0]) ? d.flat() : d;
319
333
  }
320
- const l = o[i];
321
- if (l !== void 0)
322
- return n(l, c);
334
+ const c = a[i];
335
+ if (c !== void 0)
336
+ return n(c, l);
323
337
  };
324
338
  return n(t, r);
325
339
  },
package/dist/store.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sources":["../src/store.ts"],"sourcesContent":["import { create } from \"zustand\";\r\nimport type {\r\n OptionsType,\r\n ReactivityType,\r\n StateKeys,\r\n SyncActionsType,\r\n SyncInfo,\r\n UpdateTypeDetail,\r\n} from \"./CogsState.js\";\r\n\r\ntype StateUpdater<StateValue> =\r\n | StateValue\r\n | ((prevValue: StateValue) => StateValue);\r\n\r\nexport type FreshValuesObject = {\r\n pathsToValues?: string[];\r\n prevValue?: any;\r\n newValue?: any;\r\n timeStamp: number;\r\n};\r\n\r\ntype SyncLogType = {\r\n timeStamp: number;\r\n};\r\ntype StateValue = any;\r\n\r\nexport type TrieNode = {\r\n subscribers: Set<string>;\r\n children: Map<string, TrieNode>;\r\n};\r\nexport type ComponentsType = {\r\n components: Map<\r\n string,\r\n {\r\n forceUpdate: () => void;\r\n paths: Set<string>;\r\n deps?: any[];\r\n depsFunction?: (state: any) => any[] | true;\r\n reactiveType: ReactivityType[] | ReactivityType;\r\n }\r\n >;\r\n};\r\nexport type FormRefStoreState = {\r\n formRefs: Map<string, React.RefObject<any>>;\r\n registerFormRef: (id: string, ref: React.RefObject<any>) => void;\r\n getFormRef: (id: string) => React.RefObject<any> | undefined;\r\n removeFormRef: (id: string) => void;\r\n // New method to get all refs for a stateKey\r\n getFormRefsByStateKey: (\r\n stateKey: string\r\n ) => Map<string, React.RefObject<any>>;\r\n};\r\n\r\nexport const formRefStore = create<FormRefStoreState>((set, get) => ({\r\n formRefs: new Map(),\r\n\r\n registerFormRef: (id, ref) =>\r\n set((state) => {\r\n const newRefs = new Map(state.formRefs);\r\n newRefs.set(id, ref);\r\n return { formRefs: newRefs };\r\n }),\r\n\r\n getFormRef: (id) => get().formRefs.get(id),\r\n\r\n removeFormRef: (id) =>\r\n set((state) => {\r\n const newRefs = new Map(state.formRefs);\r\n newRefs.delete(id);\r\n return { formRefs: newRefs };\r\n }),\r\n\r\n // Get all refs that start with the stateKey prefix\r\n getFormRefsByStateKey: (stateKey) => {\r\n const allRefs = get().formRefs;\r\n const stateKeyPrefix = stateKey + \".\";\r\n const filteredRefs = new Map();\r\n\r\n allRefs.forEach((ref, id) => {\r\n if (id.startsWith(stateKeyPrefix) || id === stateKey) {\r\n filteredRefs.set(id, ref);\r\n }\r\n });\r\n\r\n return filteredRefs;\r\n },\r\n}));\r\n\r\ntype ShadowMetadata = {\r\n virtualisedState?: { listItemHeight: number };\r\n syncInfo?: { status: string };\r\n // Add other metadata fields you need\r\n};\r\n\r\ntype ShadowState<T> =\r\n T extends Array<infer U>\r\n ? Array<ShadowState<U>> & ShadowMetadata\r\n : T extends object\r\n ? { [K in keyof T]: ShadowState<T[K]> } & ShadowMetadata\r\n : ShadowMetadata;\r\nexport type CogsGlobalState = {\r\n shadowStateStore: { [key: string]: any };\r\n initializeShadowState: (key: string, initialState: any) => void;\r\n updateShadowAtPath: (key: string, path: string[], newValue: any) => void;\r\n insertShadowArrayElement: (\r\n key: string,\r\n arrayPath: string[],\r\n newItem: any\r\n ) => void;\r\n removeShadowArrayElement: (\r\n key: string,\r\n arrayPath: string[],\r\n index: number\r\n ) => void;\r\n getShadowMetadata: (key: string, path: string[]) => any;\r\n setShadowMetadata: (key: string, path: string[], metadata: any) => void;\r\n\r\n selectedIndicesMap: Map<string, Map<string, number>>; // stateKey -> (parentPath -> selectedIndex)\r\n\r\n // Add these new methods\r\n getSelectedIndex: (\r\n stateKey: string,\r\n parentPath: string\r\n ) => number | undefined;\r\n setSelectedIndex: (\r\n stateKey: string,\r\n parentPath: string,\r\n index: number | undefined\r\n ) => void;\r\n clearSelectedIndex: ({\r\n stateKey,\r\n path,\r\n }: {\r\n stateKey: string;\r\n path: string[];\r\n }) => void;\r\n clearSelectedIndexesForState: (stateKey: string) => void;\r\n updaterState: { [key: string]: any };\r\n initialStateOptions: { [key: string]: OptionsType };\r\n cogsStateStore: { [key: string]: StateValue };\r\n isLoadingGlobal: { [key: string]: boolean };\r\n\r\n initialStateGlobal: { [key: string]: StateValue };\r\n iniitialCreatedState: { [key: string]: StateValue };\r\n validationErrors: Map<string, string[]>;\r\n\r\n serverState: { [key: string]: StateValue };\r\n serverSyncActions: { [key: string]: SyncActionsType<any> };\r\n\r\n serverSyncLog: { [key: string]: SyncLogType[] };\r\n serverSideOrNot: { [key: string]: boolean };\r\n setServerSyncLog: (key: string, newValue: SyncLogType) => void;\r\n\r\n setServerSideOrNot: (key: string, value: boolean) => void;\r\n getServerSideOrNot: (key: string) => boolean | undefined;\r\n setServerState: <StateKey extends StateKeys>(\r\n key: StateKey,\r\n value: StateValue\r\n ) => void;\r\n\r\n getThisLocalUpdate: (key: string) => UpdateTypeDetail[] | undefined;\r\n setServerSyncActions: (key: string, value: SyncActionsType<any>) => void;\r\n addValidationError: (path: string, message: string) => void;\r\n getValidationErrors: (path: string) => string[];\r\n updateInitialStateGlobal: (key: string, newState: StateValue) => void;\r\n updateInitialCreatedState: (key: string, newState: StateValue) => void;\r\n getInitialOptions: (key: string) => OptionsType | undefined;\r\n getUpdaterState: (key: string) => StateUpdater<StateValue>;\r\n setUpdaterState: (key: string, newUpdater: any) => void;\r\n getKeyState: <StateKey extends StateKeys>(key: StateKey) => StateValue;\r\n getNestedState: <StateKey extends StateKeys>(\r\n key: StateKey,\r\n path: string[]\r\n ) => StateValue;\r\n setState: <StateKey extends StateKeys>(\r\n key: StateKey,\r\n value: StateUpdater<StateValue>\r\n ) => void;\r\n setInitialStates: (initialState: StateValue) => void;\r\n setCreatedState: (initialState: StateValue) => void;\r\n stateLog: { [key: string]: UpdateTypeDetail[] };\r\n setStateLog: (\r\n key: string,\r\n updater: (prevUpdates: UpdateTypeDetail[]) => UpdateTypeDetail[]\r\n ) => void;\r\n setIsLoadingGlobal: (key: string, value: boolean) => void;\r\n\r\n setInitialStateOptions: (key: string, value: OptionsType) => void;\r\n removeValidationError: (path: string) => void;\r\n signalDomElements: Map<\r\n string,\r\n Set<{\r\n instanceId: string;\r\n parentId: string;\r\n position: number;\r\n effect?: string;\r\n map?: string;\r\n }>\r\n >;\r\n addSignalElement: (\r\n signalId: string,\r\n elementInfo: {\r\n instanceId: string;\r\n parentId: string;\r\n position: number;\r\n effect?: string;\r\n map?: string;\r\n }\r\n ) => void;\r\n removeSignalElement: (signalId: string, instanceId: string) => void;\r\n reRenderTriggerPrevValue: Record<string, any>;\r\n\r\n reactiveDeps: Record<\r\n string,\r\n {\r\n deps: any[];\r\n updaters: Set<() => void>;\r\n depsFunction: ((state: any) => any[] | true) | null;\r\n }\r\n >;\r\n setReactiveDeps: (\r\n key: string,\r\n record: {\r\n deps: any[];\r\n updaters: Set<() => void>;\r\n depsFunction: ((state: any) => any[] | true) | null;\r\n }\r\n ) => void;\r\n deleteReactiveDeps: (key: string) => void;\r\n subscribe: (listener: () => void) => () => void;\r\n\r\n stateComponents: Map<string, ComponentsType>;\r\n syncInfoStore: Map<string, SyncInfo>;\r\n setSyncInfo: (key: string, syncInfo: SyncInfo) => void;\r\n getSyncInfo: (key: string) => SyncInfo | null;\r\n};\r\n\r\nexport const getGlobalStore = create<CogsGlobalState>((set, get) => ({\r\n shadowStateStore: {},\r\n getShadowMetadata: (key: string, path: string[]) => {\r\n const shadow = get().shadowStateStore[key];\r\n if (!shadow) return null;\r\n\r\n let current = shadow;\r\n for (const segment of path) {\r\n current = current?.[segment];\r\n if (!current) return null;\r\n }\r\n\r\n return current;\r\n },\r\n\r\n setShadowMetadata: (key: string, path: string[], metadata: any) => {\r\n set((state) => {\r\n const newShadow = { ...state.shadowStateStore };\r\n if (!newShadow[key]) return state;\r\n\r\n newShadow[key] = JSON.parse(JSON.stringify(newShadow[key]));\r\n\r\n let current: any = newShadow[key];\r\n for (const segment of path) {\r\n if (!current[segment]) current[segment] = {};\r\n current = current[segment];\r\n }\r\n\r\n // Merge the metadata into the existing structure\r\n Object.keys(metadata).forEach((category) => {\r\n if (!current[category]) {\r\n current[category] = {};\r\n }\r\n Object.assign(current[category], metadata[category]);\r\n });\r\n\r\n return { shadowStateStore: newShadow };\r\n });\r\n },\r\n initializeShadowState: (key: string, initialState: any) => {\r\n const createShadowStructure = (obj: any): any => {\r\n if (Array.isArray(obj)) {\r\n return new Array(obj.length)\r\n .fill(null)\r\n .map((_, i) => createShadowStructure(obj[i]));\r\n }\r\n if (typeof obj === \"object\" && obj !== null) {\r\n const shadow: any = {};\r\n for (const k in obj) {\r\n shadow[k] = createShadowStructure(obj[k]);\r\n }\r\n return shadow;\r\n }\r\n return {}; // Leaf node - empty object for metadata\r\n };\r\n\r\n set((state) => ({\r\n shadowStateStore: {\r\n ...state.shadowStateStore,\r\n [key]: createShadowStructure(initialState),\r\n },\r\n }));\r\n },\r\n\r\n updateShadowAtPath: (key: string, path: string[], newValue: any) => {\r\n set((state) => {\r\n const newShadow = { ...state.shadowStateStore };\r\n if (!newShadow[key]) return state;\r\n\r\n let current = newShadow[key];\r\n const pathCopy = [...path];\r\n const lastSegment = pathCopy.pop();\r\n\r\n // Navigate to parent\r\n for (const segment of pathCopy) {\r\n if (!current[segment]) current[segment] = {};\r\n current = current[segment];\r\n }\r\n\r\n // Update shadow structure to match new value structure\r\n if (lastSegment !== undefined) {\r\n if (Array.isArray(newValue)) {\r\n current[lastSegment] = new Array(newValue.length);\r\n } else if (typeof newValue === \"object\" && newValue !== null) {\r\n current[lastSegment] = {};\r\n } else {\r\n current[lastSegment] = current[lastSegment] || {};\r\n }\r\n }\r\n\r\n return { shadowStateStore: newShadow };\r\n });\r\n },\r\n\r\n insertShadowArrayElement: (\r\n key: string,\r\n arrayPath: string[],\r\n newItem: any\r\n ) => {\r\n set((state) => {\r\n const newShadow = { ...state.shadowStateStore };\r\n if (!newShadow[key]) return state;\r\n\r\n newShadow[key] = JSON.parse(JSON.stringify(newShadow[key]));\r\n\r\n let current: any = newShadow[key];\r\n\r\n for (const segment of arrayPath) {\r\n current = current[segment];\r\n if (!current) return state;\r\n }\r\n\r\n if (Array.isArray(current)) {\r\n // Create shadow structure based on the actual new item\r\n const createShadowStructure = (obj: any): any => {\r\n if (Array.isArray(obj)) {\r\n return obj.map((item) => createShadowStructure(item));\r\n }\r\n if (typeof obj === \"object\" && obj !== null) {\r\n const shadow: any = {};\r\n for (const k in obj) {\r\n shadow[k] = createShadowStructure(obj[k]);\r\n }\r\n return shadow;\r\n }\r\n return {}; // Leaf nodes get empty object for metadata\r\n };\r\n\r\n current.push(createShadowStructure(newItem));\r\n }\r\n\r\n return { shadowStateStore: newShadow };\r\n });\r\n },\r\n removeShadowArrayElement: (\r\n key: string,\r\n arrayPath: string[],\r\n index: number\r\n ) => {\r\n set((state) => {\r\n const newShadow = { ...state.shadowStateStore };\r\n let current = newShadow[key];\r\n\r\n for (const segment of arrayPath) {\r\n current = current?.[segment];\r\n }\r\n\r\n if (Array.isArray(current)) {\r\n current.splice(index, 1);\r\n }\r\n\r\n return { shadowStateStore: newShadow };\r\n });\r\n },\r\n selectedIndicesMap: new Map<string, Map<string, number>>(),\r\n\r\n // Add the new methods\r\n getSelectedIndex: (stateKey: string, parentPath: string) => {\r\n const stateMap = get().selectedIndicesMap.get(stateKey);\r\n if (!stateMap) return undefined;\r\n return stateMap.get(parentPath);\r\n },\r\n\r\n setSelectedIndex: (\r\n stateKey: string,\r\n parentPath: string,\r\n index: number | undefined\r\n ) => {\r\n set((state) => {\r\n const newMap = new Map(state.selectedIndicesMap);\r\n let stateMap = newMap.get(stateKey);\r\n\r\n if (!stateMap) {\r\n stateMap = new Map<string, number>();\r\n newMap.set(stateKey, stateMap);\r\n }\r\n\r\n if (index === undefined) {\r\n stateMap.delete(parentPath);\r\n } else {\r\n stateMap.set(parentPath, index);\r\n }\r\n\r\n return {\r\n ...state,\r\n selectedIndicesMap: newMap,\r\n };\r\n });\r\n },\r\n clearSelectedIndex: ({\r\n stateKey,\r\n path,\r\n }: {\r\n stateKey: string;\r\n path: string[];\r\n }) => {\r\n set((state) => {\r\n const newMap = new Map(state.selectedIndicesMap);\r\n const stateMap = newMap.get(stateKey);\r\n if (!stateMap) return state;\r\n const parentPath = path.join(\".\");\r\n stateMap.delete(parentPath);\r\n return {\r\n ...state,\r\n selectedIndicesMap: newMap,\r\n };\r\n });\r\n },\r\n clearSelectedIndexesForState: (stateKey: string) => {\r\n set((state) => {\r\n const newOuterMap = new Map(state.selectedIndicesMap);\r\n const changed = newOuterMap.delete(stateKey);\r\n if (changed) {\r\n console.log(\r\n `Cleared selected indices map entry for stateKey: ${stateKey}`\r\n );\r\n return { selectedIndicesMap: newOuterMap };\r\n } else {\r\n return {};\r\n }\r\n });\r\n },\r\n stateComponents: new Map(),\r\n subscribe: (listener: () => void) => {\r\n // zustand's subscribe returns an unsubscribe function\r\n return get().subscribe(listener);\r\n },\r\n\r\n reactiveDeps: {},\r\n setReactiveDeps: (key, record) =>\r\n set((state) => ({\r\n ...state,\r\n reactiveDeps: {\r\n ...state.reactiveDeps,\r\n [key]: record,\r\n },\r\n })),\r\n deleteReactiveDeps: (key) =>\r\n set((state) => {\r\n const { [key]: _, ...rest } = state.reactiveDeps;\r\n return {\r\n ...state,\r\n reactiveDeps: rest,\r\n };\r\n }),\r\n\r\n reRenderTriggerPrevValue: {},\r\n signalDomElements: new Map(),\r\n addSignalElement: (\r\n signalId: string,\r\n elementInfo: { instanceId: string; parentId: string; position: number }\r\n ) => {\r\n const current = get().signalDomElements;\r\n if (!current.has(signalId)) {\r\n current.set(signalId, new Set());\r\n }\r\n current.get(signalId)!.add(elementInfo);\r\n\r\n set({ signalDomElements: new Map(current) }); // Create new reference to trigger update\r\n },\r\n removeSignalElement: (signalId: string, instanceId: string) => {\r\n const current = get().signalDomElements;\r\n const elements = current.get(signalId);\r\n if (elements) {\r\n elements.forEach((el) => {\r\n if (el.instanceId === instanceId) {\r\n elements.delete(el);\r\n }\r\n });\r\n }\r\n set({ signalDomElements: new Map(current) });\r\n },\r\n initialStateOptions: {},\r\n updaterState: {},\r\n stateTimeline: {},\r\n cogsStateStore: {},\r\n stateLog: {},\r\n isLoadingGlobal: {},\r\n\r\n initialStateGlobal: {},\r\n iniitialCreatedState: {},\r\n updateInitialCreatedState: (key, newState) => {\r\n set((prev) => ({\r\n iniitialCreatedState: {\r\n ...prev.iniitialCreatedState,\r\n [key]: newState,\r\n },\r\n }));\r\n },\r\n\r\n validationErrors: new Map(),\r\n\r\n serverState: {},\r\n\r\n serverSyncActions: {},\r\n\r\n serverSyncLog: {},\r\n serverSideOrNot: {},\r\n setServerSyncLog: (key, newValue) => {\r\n set((state) => ({\r\n serverSyncLog: {\r\n ...state.serverSyncLog,\r\n [key]: [...(state.serverSyncLog[key] ?? []), newValue],\r\n },\r\n }));\r\n },\r\n setServerSideOrNot: (key, value) => {\r\n set((state) => ({\r\n serverSideOrNot: {\r\n ...state.serverSideOrNot,\r\n [key]: value,\r\n },\r\n }));\r\n },\r\n getServerSideOrNot: (key) => {\r\n return get().serverSideOrNot[key];\r\n },\r\n\r\n getThisLocalUpdate: (key: string) => {\r\n return get().stateLog[key];\r\n },\r\n setServerState: <StateKey extends StateKeys>(\r\n key: StateKey,\r\n value: StateValue\r\n ) => {\r\n set((prev) => ({\r\n serverState: {\r\n ...prev.serverState,\r\n [key]: value,\r\n },\r\n }));\r\n },\r\n\r\n setStateLog: (\r\n key: string,\r\n updater: (prevUpdates: UpdateTypeDetail[]) => UpdateTypeDetail[]\r\n ) => {\r\n set((prev) => {\r\n const currentUpdates = prev.stateLog[key] ?? [];\r\n const newUpdates = updater(currentUpdates);\r\n return {\r\n stateLog: {\r\n ...prev.stateLog,\r\n [key]: newUpdates,\r\n },\r\n };\r\n });\r\n },\r\n setIsLoadingGlobal: (key: string, value: boolean) => {\r\n set((prev) => ({\r\n isLoadingGlobal: {\r\n ...prev.isLoadingGlobal,\r\n [key]: value,\r\n },\r\n }));\r\n },\r\n setServerSyncActions: (key: string, value: SyncActionsType<any>) => {\r\n set((prev) => ({\r\n serverSyncActions: {\r\n ...prev.serverSyncActions,\r\n [key]: value,\r\n },\r\n }));\r\n },\r\n addValidationError: (path, message) => {\r\n console.log(\"addValidationError---\");\r\n set((prev) => {\r\n const updatedErrors = new Map(prev.validationErrors);\r\n const existingMessages = updatedErrors.get(path) || [];\r\n console.log(\"addValidationError\", path, message, existingMessages);\r\n // Append the new message instead of replacing\r\n updatedErrors.set(path, [...existingMessages, message]);\r\n return { validationErrors: updatedErrors };\r\n });\r\n },\r\n removeValidationError: (path) => {\r\n set((prev) => {\r\n const updatedErrors = new Map(prev.validationErrors);\r\n\r\n let doSomething = false;\r\n const pathArray = path.split(\".\");\r\n Array.from(updatedErrors.keys()).forEach((key) => {\r\n const keyArray = key.split(\".\");\r\n if (keyArray.length >= pathArray.length) {\r\n let match = true;\r\n for (let i = 0; i < pathArray.length; i++) {\r\n if (keyArray[i] !== pathArray[i]) {\r\n match = false;\r\n break;\r\n }\r\n }\r\n\r\n if (match) {\r\n doSomething = true;\r\n updatedErrors.delete(key);\r\n }\r\n }\r\n });\r\n\r\n return doSomething ? { validationErrors: updatedErrors } : prev;\r\n });\r\n },\r\n getValidationErrors: (path: string) => {\r\n const errors: string[] = [];\r\n const valErrors = get().validationErrors;\r\n const pathArray = path.split(\".\");\r\n\r\n // Helper to check if an index matches either a wildcard or is in an array of indices\r\n const isIndexMatch = (pathSegment: string, keySegment: string) => {\r\n if (pathSegment === \"[*]\") return true;\r\n if (Array.isArray(pathSegment)) {\r\n return pathSegment.includes(parseInt(keySegment));\r\n }\r\n return pathSegment === keySegment;\r\n };\r\n\r\n Array.from(valErrors.keys()).forEach((key) => {\r\n const keyArray = key.split(\".\");\r\n if (keyArray.length >= pathArray.length) {\r\n let match = true;\r\n for (let i = 0; i < pathArray.length; i++) {\r\n const pathSegment = pathArray[i];\r\n const keySegment = keyArray[i]!;\r\n\r\n // If current path segment is a number or [*], we need special handling\r\n if (pathSegment === \"[*]\" || Array.isArray(pathSegment)) {\r\n // Key segment should be a number if we're using [*] or array indices\r\n const keyIndex = parseInt(keySegment);\r\n if (isNaN(keyIndex)) {\r\n match = false;\r\n break;\r\n }\r\n\r\n if (!isIndexMatch(pathSegment, keySegment)) {\r\n match = false;\r\n break;\r\n }\r\n } else if (pathSegment !== keySegment) {\r\n match = false;\r\n break;\r\n }\r\n }\r\n\r\n if (match) {\r\n const errorMessages = valErrors.get(key);\r\n if (errorMessages) {\r\n errors.push(...errorMessages);\r\n }\r\n }\r\n }\r\n });\r\n\r\n return errors;\r\n },\r\n getInitialOptions: (key) => {\r\n return get().initialStateOptions[key];\r\n },\r\n getNestedState: (key: string, path: string[]) => {\r\n const rootState = get().cogsStateStore[key];\r\n\r\n const getValueWithAsterisk = (obj: any, pathArray: string[]): any => {\r\n if (pathArray.length === 0) return obj;\r\n\r\n const currentPath = pathArray[0];\r\n const remainingPath = pathArray.slice(1);\r\n\r\n if (currentPath === \"[*]\") {\r\n if (!Array.isArray(obj)) {\r\n console.warn(\"Asterisk notation used on non-array value\");\r\n return undefined;\r\n }\r\n\r\n if (remainingPath.length === 0) return obj;\r\n\r\n // Get result for each array item\r\n const results = obj.map((item) =>\r\n getValueWithAsterisk(item, remainingPath)\r\n );\r\n\r\n // If the next path segment exists and returns arrays, flatten them\r\n if (Array.isArray(results[0])) {\r\n return results.flat();\r\n }\r\n\r\n return results;\r\n }\r\n\r\n const value = obj[currentPath as keyof typeof obj];\r\n if (value === undefined) return undefined;\r\n\r\n return getValueWithAsterisk(value, remainingPath);\r\n };\r\n\r\n // This will still get the value but we need to make it reactive only to specific paths\r\n return getValueWithAsterisk(rootState, path);\r\n },\r\n setInitialStateOptions: (key, value) => {\r\n set((prev) => ({\r\n initialStateOptions: {\r\n ...prev.initialStateOptions,\r\n [key]: value,\r\n },\r\n }));\r\n },\r\n updateInitialStateGlobal: (key, newState) => {\r\n set((prev) => ({\r\n initialStateGlobal: {\r\n ...prev.initialStateGlobal,\r\n [key]: newState,\r\n },\r\n }));\r\n },\r\n getUpdaterState: (key) => {\r\n return get().updaterState[key];\r\n },\r\n setUpdaterState: (key, newUpdater) => {\r\n const current = get().updaterState;\r\n\r\n if (!key || !newUpdater) return;\r\n\r\n set({ updaterState: { ...(current ?? {}), [key]: newUpdater } });\r\n },\r\n getKeyState: <StateKey extends StateKeys>(key: StateKey) => {\r\n return get().cogsStateStore[key];\r\n },\r\n\r\n setState: <StateKey extends StateKeys>(key: StateKey, value: StateValue) => {\r\n set((prev) => {\r\n return {\r\n cogsStateStore: {\r\n ...prev.cogsStateStore,\r\n [key]:\r\n typeof value === \"function\"\r\n ? value(prev.cogsStateStore[key])\r\n : value,\r\n },\r\n };\r\n });\r\n },\r\n setInitialStates: <StateKey extends StateKeys>(initialState: StateValue) => {\r\n set((prev) => ({\r\n cogsStateStore: {\r\n ...prev.cogsStateStore,\r\n ...initialState,\r\n },\r\n }));\r\n },\r\n setCreatedState: (initialState: StateValue) => {\r\n set((prev) => ({\r\n iniitialCreatedState: {\r\n ...prev.cogsStateStore,\r\n ...initialState,\r\n },\r\n }));\r\n },\r\n\r\n syncInfoStore: new Map<string, SyncInfo>(),\r\n setSyncInfo: (key: string, syncInfo: SyncInfo) =>\r\n set((state) => {\r\n const newMap = new Map(state.syncInfoStore);\r\n newMap.set(key, syncInfo);\r\n return { ...state, syncInfoStore: newMap };\r\n }),\r\n getSyncInfo: (key: string) => get().syncInfoStore.get(key) || null,\r\n}));\r\n"],"names":["formRefStore","create","set","get","id","ref","state","newRefs","stateKey","allRefs","stateKeyPrefix","filteredRefs","getGlobalStore","key","path","shadow","current","segment","metadata","newShadow","category","initialState","createShadowStructure","obj","_","i","k","newValue","pathCopy","lastSegment","arrayPath","newItem","item","index","parentPath","stateMap","newMap","newOuterMap","listener","record","rest","signalId","elementInfo","instanceId","elements","el","newState","prev","value","updater","currentUpdates","newUpdates","message","updatedErrors","existingMessages","doSomething","pathArray","keyArray","match","errors","valErrors","isIndexMatch","pathSegment","keySegment","keyIndex","errorMessages","rootState","getValueWithAsterisk","currentPath","remainingPath","results","newUpdater","syncInfo"],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sources":["../src/store.ts"],"sourcesContent":["import { create } from \"zustand\";\r\nimport type {\r\n OptionsType,\r\n ReactivityType,\r\n StateKeys,\r\n SyncActionsType,\r\n SyncInfo,\r\n UpdateTypeDetail,\r\n} from \"./CogsState.js\";\r\n\r\ntype StateUpdater<StateValue> =\r\n | StateValue\r\n | ((prevValue: StateValue) => StateValue);\r\n\r\nexport type FreshValuesObject = {\r\n pathsToValues?: string[];\r\n prevValue?: any;\r\n newValue?: any;\r\n timeStamp: number;\r\n};\r\n\r\ntype SyncLogType = {\r\n timeStamp: number;\r\n};\r\ntype StateValue = any;\r\n\r\nexport type TrieNode = {\r\n subscribers: Set<string>;\r\n children: Map<string, TrieNode>;\r\n};\r\nexport type ComponentsType = {\r\n components: Map<\r\n string,\r\n {\r\n forceUpdate: () => void;\r\n paths: Set<string>;\r\n deps?: any[];\r\n depsFunction?: (state: any) => any[] | true;\r\n reactiveType: ReactivityType[] | ReactivityType;\r\n }\r\n >;\r\n};\r\nexport type FormRefStoreState = {\r\n formRefs: Map<string, React.RefObject<any>>;\r\n registerFormRef: (id: string, ref: React.RefObject<any>) => void;\r\n getFormRef: (id: string) => React.RefObject<any> | undefined;\r\n removeFormRef: (id: string) => void;\r\n // New method to get all refs for a stateKey\r\n getFormRefsByStateKey: (\r\n stateKey: string\r\n ) => Map<string, React.RefObject<any>>;\r\n};\r\n\r\nexport const formRefStore = create<FormRefStoreState>((set, get) => ({\r\n formRefs: new Map(),\r\n\r\n registerFormRef: (id, ref) =>\r\n set((state) => {\r\n const newRefs = new Map(state.formRefs);\r\n newRefs.set(id, ref);\r\n return { formRefs: newRefs };\r\n }),\r\n\r\n getFormRef: (id) => get().formRefs.get(id),\r\n\r\n removeFormRef: (id) =>\r\n set((state) => {\r\n const newRefs = new Map(state.formRefs);\r\n newRefs.delete(id);\r\n return { formRefs: newRefs };\r\n }),\r\n\r\n // Get all refs that start with the stateKey prefix\r\n getFormRefsByStateKey: (stateKey) => {\r\n const allRefs = get().formRefs;\r\n const stateKeyPrefix = stateKey + \".\";\r\n const filteredRefs = new Map();\r\n\r\n allRefs.forEach((ref, id) => {\r\n if (id.startsWith(stateKeyPrefix) || id === stateKey) {\r\n filteredRefs.set(id, ref);\r\n }\r\n });\r\n\r\n return filteredRefs;\r\n },\r\n}));\r\n\r\ntype ShadowMetadata = {\r\n virtualisedState?: { listItemHeight: number };\r\n syncInfo?: { status: string };\r\n // Add other metadata fields you need\r\n};\r\n\r\ntype ShadowState<T> =\r\n T extends Array<infer U>\r\n ? Array<ShadowState<U>> & ShadowMetadata\r\n : T extends object\r\n ? { [K in keyof T]: ShadowState<T[K]> } & ShadowMetadata\r\n : ShadowMetadata;\r\n\r\nexport type CogsGlobalState = {\r\n // --- Shadow State and Subscription System ---\r\n shadowStateStore: { [key: string]: any };\r\n shadowStateSubscribers: Map<string, Set<() => void>>; // Stores subscribers for shadow state updates\r\n subscribeToShadowState: (key: string, callback: () => void) => () => void; // Subscribes a listener, returns an unsubscribe function\r\n initializeShadowState: (key: string, initialState: any) => void;\r\n updateShadowAtPath: (key: string, path: string[], newValue: any) => void;\r\n insertShadowArrayElement: (\r\n key: string,\r\n arrayPath: string[],\r\n newItem: any\r\n ) => void;\r\n removeShadowArrayElement: (\r\n key: string,\r\n arrayPath: string[],\r\n index: number\r\n ) => void;\r\n getShadowMetadata: (key: string, path: string[]) => any;\r\n setShadowMetadata: (key: string, path: string[], metadata: any) => void;\r\n\r\n // --- Selected Item State ---\r\n selectedIndicesMap: Map<string, Map<string, number>>; // stateKey -> (parentPath -> selectedIndex)\r\n getSelectedIndex: (\r\n stateKey: string,\r\n parentPath: string\r\n ) => number | undefined;\r\n setSelectedIndex: (\r\n stateKey: string,\r\n parentPath: string,\r\n index: number | undefined\r\n ) => void;\r\n clearSelectedIndex: ({\r\n stateKey,\r\n path,\r\n }: {\r\n stateKey: string;\r\n path: string[];\r\n }) => void;\r\n clearSelectedIndexesForState: (stateKey: string) => void;\r\n\r\n // --- Core State and Updaters ---\r\n updaterState: { [key: string]: any };\r\n initialStateOptions: { [key: string]: OptionsType };\r\n cogsStateStore: { [key: string]: StateValue };\r\n isLoadingGlobal: { [key: string]: boolean };\r\n initialStateGlobal: { [key: string]: StateValue };\r\n iniitialCreatedState: { [key: string]: StateValue };\r\n serverState: { [key: string]: StateValue };\r\n\r\n getUpdaterState: (key: string) => StateUpdater<StateValue>;\r\n setUpdaterState: (key: string, newUpdater: any) => void;\r\n getKeyState: <StateKey extends StateKeys>(key: StateKey) => StateValue;\r\n getNestedState: <StateKey extends StateKeys>(\r\n key: StateKey,\r\n path: string[]\r\n ) => StateValue;\r\n setState: <StateKey extends StateKeys>(\r\n key: StateKey,\r\n value: StateUpdater<StateValue>\r\n ) => void;\r\n setInitialStates: (initialState: StateValue) => void;\r\n setCreatedState: (initialState: StateValue) => void;\r\n updateInitialStateGlobal: (key: string, newState: StateValue) => void;\r\n updateInitialCreatedState: (key: string, newState: StateValue) => void;\r\n setIsLoadingGlobal: (key: string, value: boolean) => void;\r\n setServerState: <StateKey extends StateKeys>(\r\n key: StateKey,\r\n value: StateValue\r\n ) => void;\r\n getInitialOptions: (key: string) => OptionsType | undefined;\r\n setInitialStateOptions: (key: string, value: OptionsType) => void;\r\n\r\n // --- Validation ---\r\n validationErrors: Map<string, string[]>;\r\n addValidationError: (path: string, message: string) => void;\r\n getValidationErrors: (path: string) => string[];\r\n removeValidationError: (path: string) => void;\r\n\r\n // --- Server Sync and Logging ---\r\n serverSyncActions: { [key: string]: SyncActionsType<any> };\r\n serverSyncLog: { [key: string]: SyncLogType[] };\r\n stateLog: { [key: string]: UpdateTypeDetail[] };\r\n syncInfoStore: Map<string, SyncInfo>;\r\n serverSideOrNot: { [key: string]: boolean };\r\n setServerSyncLog: (key: string, newValue: SyncLogType) => void;\r\n setServerSideOrNot: (key: string, value: boolean) => void;\r\n getServerSideOrNot: (key: string) => boolean | undefined;\r\n getThisLocalUpdate: (key: string) => UpdateTypeDetail[] | undefined;\r\n setServerSyncActions: (key: string, value: SyncActionsType<any>) => void;\r\n setStateLog: (\r\n key: string,\r\n updater: (prevUpdates: UpdateTypeDetail[]) => UpdateTypeDetail[]\r\n ) => void;\r\n setSyncInfo: (key: string, syncInfo: SyncInfo) => void;\r\n getSyncInfo: (key: string) => SyncInfo | null;\r\n\r\n // --- Component and DOM Integration ---\r\n signalDomElements: Map<\r\n string,\r\n Set<{\r\n instanceId: string;\r\n parentId: string;\r\n position: number;\r\n effect?: string;\r\n map?: string;\r\n }>\r\n >;\r\n addSignalElement: (\r\n signalId: string,\r\n elementInfo: {\r\n instanceId: string;\r\n parentId: string;\r\n position: number;\r\n effect?: string;\r\n map?: string;\r\n }\r\n ) => void;\r\n removeSignalElement: (signalId: string, instanceId: string) => void;\r\n stateComponents: Map<string, ComponentsType>;\r\n\r\n // --- Deprecated/Legacy (Review for removal) ---\r\n reRenderTriggerPrevValue: Record<string, any>;\r\n reactiveDeps: Record<\r\n string,\r\n {\r\n deps: any[];\r\n updaters: Set<() => void>;\r\n depsFunction: ((state: any) => any[] | true) | null;\r\n }\r\n >;\r\n setReactiveDeps: (\r\n key: string,\r\n record: {\r\n deps: any[];\r\n updaters: Set<() => void>;\r\n depsFunction: ((state: any) => any[] | true) | null;\r\n }\r\n ) => void;\r\n deleteReactiveDeps: (key: string) => void;\r\n subscribe: (listener: () => void) => () => void;\r\n};\r\n\r\nexport const getGlobalStore = create<CogsGlobalState>((set, get) => ({\r\n shadowStateStore: {},\r\n getShadowMetadata: (key: string, path: string[]) => {\r\n const shadow = get().shadowStateStore[key];\r\n if (!shadow) return null;\r\n\r\n let current = shadow;\r\n for (const segment of path) {\r\n current = current?.[segment];\r\n if (!current) return null;\r\n }\r\n\r\n return current;\r\n },\r\n\r\n initializeShadowState: (key: string, initialState: any) => {\r\n const createShadowStructure = (obj: any): any => {\r\n if (Array.isArray(obj)) {\r\n return new Array(obj.length)\r\n .fill(null)\r\n .map((_, i) => createShadowStructure(obj[i]));\r\n }\r\n if (typeof obj === \"object\" && obj !== null) {\r\n const shadow: any = {};\r\n for (const k in obj) {\r\n shadow[k] = createShadowStructure(obj[k]);\r\n }\r\n return shadow;\r\n }\r\n return {}; // Leaf node - empty object for metadata\r\n };\r\n\r\n set((state) => ({\r\n shadowStateStore: {\r\n ...state.shadowStateStore,\r\n [key]: createShadowStructure(initialState),\r\n },\r\n }));\r\n },\r\n\r\n updateShadowAtPath: (key: string, path: string[], newValue: any) => {\r\n set((state) => {\r\n const newShadow = { ...state.shadowStateStore };\r\n if (!newShadow[key]) return state;\r\n\r\n let current = newShadow[key];\r\n const pathCopy = [...path];\r\n const lastSegment = pathCopy.pop();\r\n\r\n // Navigate to parent\r\n for (const segment of pathCopy) {\r\n if (!current[segment]) current[segment] = {};\r\n current = current[segment];\r\n }\r\n\r\n // Update shadow structure to match new value structure\r\n if (lastSegment !== undefined) {\r\n if (Array.isArray(newValue)) {\r\n current[lastSegment] = new Array(newValue.length);\r\n } else if (typeof newValue === \"object\" && newValue !== null) {\r\n current[lastSegment] = {};\r\n } else {\r\n current[lastSegment] = current[lastSegment] || {};\r\n }\r\n }\r\n\r\n return { shadowStateStore: newShadow };\r\n });\r\n },\r\n\r\n insertShadowArrayElement: (\r\n key: string,\r\n arrayPath: string[],\r\n newItem: any\r\n ) => {\r\n set((state) => {\r\n const newShadow = { ...state.shadowStateStore };\r\n if (!newShadow[key]) return state;\r\n\r\n newShadow[key] = JSON.parse(JSON.stringify(newShadow[key]));\r\n\r\n let current: any = newShadow[key];\r\n\r\n for (const segment of arrayPath) {\r\n current = current[segment];\r\n if (!current) return state;\r\n }\r\n\r\n if (Array.isArray(current)) {\r\n // Create shadow structure based on the actual new item\r\n const createShadowStructure = (obj: any): any => {\r\n if (Array.isArray(obj)) {\r\n return obj.map((item) => createShadowStructure(item));\r\n }\r\n if (typeof obj === \"object\" && obj !== null) {\r\n const shadow: any = {};\r\n for (const k in obj) {\r\n shadow[k] = createShadowStructure(obj[k]);\r\n }\r\n return shadow;\r\n }\r\n return {}; // Leaf nodes get empty object for metadata\r\n };\r\n\r\n current.push(createShadowStructure(newItem));\r\n }\r\n\r\n return { shadowStateStore: newShadow };\r\n });\r\n },\r\n removeShadowArrayElement: (\r\n key: string,\r\n arrayPath: string[],\r\n index: number\r\n ) => {\r\n set((state) => {\r\n const newShadow = { ...state.shadowStateStore };\r\n let current = newShadow[key];\r\n\r\n for (const segment of arrayPath) {\r\n current = current?.[segment];\r\n }\r\n\r\n if (Array.isArray(current)) {\r\n current.splice(index, 1);\r\n }\r\n\r\n return { shadowStateStore: newShadow };\r\n });\r\n },\r\n shadowStateSubscribers: new Map<string, Set<() => void>>(), // key -> Set of callbacks\r\n\r\n subscribeToShadowState: (key: string, callback: () => void) => {\r\n set((state) => {\r\n const newSubs = new Map(state.shadowStateSubscribers);\r\n const subsForKey = newSubs.get(key) || new Set();\r\n subsForKey.add(callback);\r\n newSubs.set(key, subsForKey);\r\n return { shadowStateSubscribers: newSubs };\r\n });\r\n // Return an unsubscribe function\r\n return () => {\r\n set((state) => {\r\n const newSubs = new Map(state.shadowStateSubscribers);\r\n const subsForKey = newSubs.get(key);\r\n if (subsForKey) {\r\n subsForKey.delete(callback);\r\n }\r\n return { shadowStateSubscribers: newSubs };\r\n });\r\n };\r\n },\r\n\r\n setShadowMetadata: (key: string, path: string[], metadata: any) => {\r\n let hasChanged = false;\r\n set((state) => {\r\n const newShadow = { ...state.shadowStateStore };\r\n if (!newShadow[key]) return state;\r\n\r\n newShadow[key] = JSON.parse(JSON.stringify(newShadow[key]));\r\n\r\n let current: any = newShadow[key];\r\n for (const segment of path) {\r\n if (!current[segment]) current[segment] = {};\r\n current = current[segment];\r\n }\r\n\r\n const oldHeight = current.virtualizer?.itemHeight;\r\n const newHeight = metadata.virtualizer?.itemHeight;\r\n\r\n if (newHeight && oldHeight !== newHeight) {\r\n hasChanged = true;\r\n if (!current.virtualizer) current.virtualizer = {};\r\n current.virtualizer.itemHeight = newHeight;\r\n }\r\n\r\n return { shadowStateStore: newShadow };\r\n });\r\n\r\n // If a height value was actually changed, notify the specific subscribers.\r\n if (hasChanged) {\r\n const subscribers = get().shadowStateSubscribers.get(key);\r\n if (subscribers) {\r\n subscribers.forEach((callback) => callback());\r\n }\r\n }\r\n },\r\n selectedIndicesMap: new Map<string, Map<string, number>>(),\r\n\r\n // Add the new methods\r\n getSelectedIndex: (stateKey: string, parentPath: string) => {\r\n const stateMap = get().selectedIndicesMap.get(stateKey);\r\n if (!stateMap) return undefined;\r\n return stateMap.get(parentPath);\r\n },\r\n\r\n setSelectedIndex: (\r\n stateKey: string,\r\n parentPath: string,\r\n index: number | undefined\r\n ) => {\r\n set((state) => {\r\n const newMap = new Map(state.selectedIndicesMap);\r\n let stateMap = newMap.get(stateKey);\r\n\r\n if (!stateMap) {\r\n stateMap = new Map<string, number>();\r\n newMap.set(stateKey, stateMap);\r\n }\r\n\r\n if (index === undefined) {\r\n stateMap.delete(parentPath);\r\n } else {\r\n stateMap.set(parentPath, index);\r\n }\r\n\r\n return {\r\n ...state,\r\n selectedIndicesMap: newMap,\r\n };\r\n });\r\n },\r\n clearSelectedIndex: ({\r\n stateKey,\r\n path,\r\n }: {\r\n stateKey: string;\r\n path: string[];\r\n }) => {\r\n set((state) => {\r\n const newMap = new Map(state.selectedIndicesMap);\r\n const stateMap = newMap.get(stateKey);\r\n if (!stateMap) return state;\r\n const parentPath = path.join(\".\");\r\n stateMap.delete(parentPath);\r\n return {\r\n ...state,\r\n selectedIndicesMap: newMap,\r\n };\r\n });\r\n },\r\n clearSelectedIndexesForState: (stateKey: string) => {\r\n set((state) => {\r\n const newOuterMap = new Map(state.selectedIndicesMap);\r\n const changed = newOuterMap.delete(stateKey);\r\n if (changed) {\r\n console.log(\r\n `Cleared selected indices map entry for stateKey: ${stateKey}`\r\n );\r\n return { selectedIndicesMap: newOuterMap };\r\n } else {\r\n return {};\r\n }\r\n });\r\n },\r\n stateComponents: new Map(),\r\n subscribe: (listener: () => void) => {\r\n // zustand's subscribe returns an unsubscribe function\r\n return get().subscribe(listener);\r\n },\r\n\r\n reactiveDeps: {},\r\n setReactiveDeps: (key, record) =>\r\n set((state) => ({\r\n ...state,\r\n reactiveDeps: {\r\n ...state.reactiveDeps,\r\n [key]: record,\r\n },\r\n })),\r\n deleteReactiveDeps: (key) =>\r\n set((state) => {\r\n const { [key]: _, ...rest } = state.reactiveDeps;\r\n return {\r\n ...state,\r\n reactiveDeps: rest,\r\n };\r\n }),\r\n\r\n reRenderTriggerPrevValue: {},\r\n signalDomElements: new Map(),\r\n addSignalElement: (\r\n signalId: string,\r\n elementInfo: { instanceId: string; parentId: string; position: number }\r\n ) => {\r\n const current = get().signalDomElements;\r\n if (!current.has(signalId)) {\r\n current.set(signalId, new Set());\r\n }\r\n current.get(signalId)!.add(elementInfo);\r\n\r\n set({ signalDomElements: new Map(current) }); // Create new reference to trigger update\r\n },\r\n removeSignalElement: (signalId: string, instanceId: string) => {\r\n const current = get().signalDomElements;\r\n const elements = current.get(signalId);\r\n if (elements) {\r\n elements.forEach((el) => {\r\n if (el.instanceId === instanceId) {\r\n elements.delete(el);\r\n }\r\n });\r\n }\r\n set({ signalDomElements: new Map(current) });\r\n },\r\n initialStateOptions: {},\r\n updaterState: {},\r\n stateTimeline: {},\r\n cogsStateStore: {},\r\n stateLog: {},\r\n isLoadingGlobal: {},\r\n\r\n initialStateGlobal: {},\r\n iniitialCreatedState: {},\r\n updateInitialCreatedState: (key, newState) => {\r\n set((prev) => ({\r\n iniitialCreatedState: {\r\n ...prev.iniitialCreatedState,\r\n [key]: newState,\r\n },\r\n }));\r\n },\r\n\r\n validationErrors: new Map(),\r\n\r\n serverState: {},\r\n\r\n serverSyncActions: {},\r\n\r\n serverSyncLog: {},\r\n serverSideOrNot: {},\r\n setServerSyncLog: (key, newValue) => {\r\n set((state) => ({\r\n serverSyncLog: {\r\n ...state.serverSyncLog,\r\n [key]: [...(state.serverSyncLog[key] ?? []), newValue],\r\n },\r\n }));\r\n },\r\n setServerSideOrNot: (key, value) => {\r\n set((state) => ({\r\n serverSideOrNot: {\r\n ...state.serverSideOrNot,\r\n [key]: value,\r\n },\r\n }));\r\n },\r\n getServerSideOrNot: (key) => {\r\n return get().serverSideOrNot[key];\r\n },\r\n\r\n getThisLocalUpdate: (key: string) => {\r\n return get().stateLog[key];\r\n },\r\n setServerState: <StateKey extends StateKeys>(\r\n key: StateKey,\r\n value: StateValue\r\n ) => {\r\n set((prev) => ({\r\n serverState: {\r\n ...prev.serverState,\r\n [key]: value,\r\n },\r\n }));\r\n },\r\n\r\n setStateLog: (\r\n key: string,\r\n updater: (prevUpdates: UpdateTypeDetail[]) => UpdateTypeDetail[]\r\n ) => {\r\n set((prev) => {\r\n const currentUpdates = prev.stateLog[key] ?? [];\r\n const newUpdates = updater(currentUpdates);\r\n return {\r\n stateLog: {\r\n ...prev.stateLog,\r\n [key]: newUpdates,\r\n },\r\n };\r\n });\r\n },\r\n setIsLoadingGlobal: (key: string, value: boolean) => {\r\n set((prev) => ({\r\n isLoadingGlobal: {\r\n ...prev.isLoadingGlobal,\r\n [key]: value,\r\n },\r\n }));\r\n },\r\n setServerSyncActions: (key: string, value: SyncActionsType<any>) => {\r\n set((prev) => ({\r\n serverSyncActions: {\r\n ...prev.serverSyncActions,\r\n [key]: value,\r\n },\r\n }));\r\n },\r\n addValidationError: (path, message) => {\r\n console.log(\"addValidationError---\");\r\n set((prev) => {\r\n const updatedErrors = new Map(prev.validationErrors);\r\n const existingMessages = updatedErrors.get(path) || [];\r\n console.log(\"addValidationError\", path, message, existingMessages);\r\n // Append the new message instead of replacing\r\n updatedErrors.set(path, [...existingMessages, message]);\r\n return { validationErrors: updatedErrors };\r\n });\r\n },\r\n removeValidationError: (path) => {\r\n set((prev) => {\r\n const updatedErrors = new Map(prev.validationErrors);\r\n\r\n let doSomething = false;\r\n const pathArray = path.split(\".\");\r\n Array.from(updatedErrors.keys()).forEach((key) => {\r\n const keyArray = key.split(\".\");\r\n if (keyArray.length >= pathArray.length) {\r\n let match = true;\r\n for (let i = 0; i < pathArray.length; i++) {\r\n if (keyArray[i] !== pathArray[i]) {\r\n match = false;\r\n break;\r\n }\r\n }\r\n\r\n if (match) {\r\n doSomething = true;\r\n updatedErrors.delete(key);\r\n }\r\n }\r\n });\r\n\r\n return doSomething ? { validationErrors: updatedErrors } : prev;\r\n });\r\n },\r\n getValidationErrors: (path: string) => {\r\n const errors: string[] = [];\r\n const valErrors = get().validationErrors;\r\n const pathArray = path.split(\".\");\r\n\r\n // Helper to check if an index matches either a wildcard or is in an array of indices\r\n const isIndexMatch = (pathSegment: string, keySegment: string) => {\r\n if (pathSegment === \"[*]\") return true;\r\n if (Array.isArray(pathSegment)) {\r\n return pathSegment.includes(parseInt(keySegment));\r\n }\r\n return pathSegment === keySegment;\r\n };\r\n\r\n Array.from(valErrors.keys()).forEach((key) => {\r\n const keyArray = key.split(\".\");\r\n if (keyArray.length >= pathArray.length) {\r\n let match = true;\r\n for (let i = 0; i < pathArray.length; i++) {\r\n const pathSegment = pathArray[i];\r\n const keySegment = keyArray[i]!;\r\n\r\n // If current path segment is a number or [*], we need special handling\r\n if (pathSegment === \"[*]\" || Array.isArray(pathSegment)) {\r\n // Key segment should be a number if we're using [*] or array indices\r\n const keyIndex = parseInt(keySegment);\r\n if (isNaN(keyIndex)) {\r\n match = false;\r\n break;\r\n }\r\n\r\n if (!isIndexMatch(pathSegment, keySegment)) {\r\n match = false;\r\n break;\r\n }\r\n } else if (pathSegment !== keySegment) {\r\n match = false;\r\n break;\r\n }\r\n }\r\n\r\n if (match) {\r\n const errorMessages = valErrors.get(key);\r\n if (errorMessages) {\r\n errors.push(...errorMessages);\r\n }\r\n }\r\n }\r\n });\r\n\r\n return errors;\r\n },\r\n getInitialOptions: (key) => {\r\n return get().initialStateOptions[key];\r\n },\r\n getNestedState: (key: string, path: string[]) => {\r\n const rootState = get().cogsStateStore[key];\r\n\r\n const getValueWithAsterisk = (obj: any, pathArray: string[]): any => {\r\n if (pathArray.length === 0) return obj;\r\n\r\n const currentPath = pathArray[0];\r\n const remainingPath = pathArray.slice(1);\r\n\r\n if (currentPath === \"[*]\") {\r\n if (!Array.isArray(obj)) {\r\n console.warn(\"Asterisk notation used on non-array value\");\r\n return undefined;\r\n }\r\n\r\n if (remainingPath.length === 0) return obj;\r\n\r\n // Get result for each array item\r\n const results = obj.map((item) =>\r\n getValueWithAsterisk(item, remainingPath)\r\n );\r\n\r\n // If the next path segment exists and returns arrays, flatten them\r\n if (Array.isArray(results[0])) {\r\n return results.flat();\r\n }\r\n\r\n return results;\r\n }\r\n\r\n const value = obj[currentPath as keyof typeof obj];\r\n if (value === undefined) return undefined;\r\n\r\n return getValueWithAsterisk(value, remainingPath);\r\n };\r\n\r\n // This will still get the value but we need to make it reactive only to specific paths\r\n return getValueWithAsterisk(rootState, path);\r\n },\r\n setInitialStateOptions: (key, value) => {\r\n set((prev) => ({\r\n initialStateOptions: {\r\n ...prev.initialStateOptions,\r\n [key]: value,\r\n },\r\n }));\r\n },\r\n updateInitialStateGlobal: (key, newState) => {\r\n set((prev) => ({\r\n initialStateGlobal: {\r\n ...prev.initialStateGlobal,\r\n [key]: newState,\r\n },\r\n }));\r\n },\r\n getUpdaterState: (key) => {\r\n return get().updaterState[key];\r\n },\r\n setUpdaterState: (key, newUpdater) => {\r\n const current = get().updaterState;\r\n\r\n if (!key || !newUpdater) return;\r\n\r\n set({ updaterState: { ...(current ?? {}), [key]: newUpdater } });\r\n },\r\n getKeyState: <StateKey extends StateKeys>(key: StateKey) => {\r\n return get().cogsStateStore[key];\r\n },\r\n\r\n setState: <StateKey extends StateKeys>(key: StateKey, value: StateValue) => {\r\n set((prev) => {\r\n return {\r\n cogsStateStore: {\r\n ...prev.cogsStateStore,\r\n [key]:\r\n typeof value === \"function\"\r\n ? value(prev.cogsStateStore[key])\r\n : value,\r\n },\r\n };\r\n });\r\n },\r\n setInitialStates: <StateKey extends StateKeys>(initialState: StateValue) => {\r\n set((prev) => ({\r\n cogsStateStore: {\r\n ...prev.cogsStateStore,\r\n ...initialState,\r\n },\r\n }));\r\n },\r\n setCreatedState: (initialState: StateValue) => {\r\n set((prev) => ({\r\n iniitialCreatedState: {\r\n ...prev.cogsStateStore,\r\n ...initialState,\r\n },\r\n }));\r\n },\r\n\r\n syncInfoStore: new Map<string, SyncInfo>(),\r\n setSyncInfo: (key: string, syncInfo: SyncInfo) =>\r\n set((state) => {\r\n const newMap = new Map(state.syncInfoStore);\r\n newMap.set(key, syncInfo);\r\n return { ...state, syncInfoStore: newMap };\r\n }),\r\n getSyncInfo: (key: string) => get().syncInfoStore.get(key) || null,\r\n}));\r\n"],"names":["formRefStore","create","set","get","id","ref","state","newRefs","stateKey","allRefs","stateKeyPrefix","filteredRefs","getGlobalStore","key","path","shadow","current","segment","initialState","createShadowStructure","obj","_","i","k","newValue","newShadow","pathCopy","lastSegment","arrayPath","newItem","item","index","callback","newSubs","subsForKey","metadata","hasChanged","oldHeight","newHeight","subscribers","parentPath","stateMap","newMap","newOuterMap","listener","record","rest","signalId","elementInfo","instanceId","elements","el","newState","prev","value","updater","currentUpdates","newUpdates","message","updatedErrors","existingMessages","doSomething","pathArray","keyArray","match","errors","valErrors","isIndexMatch","pathSegment","keySegment","keyIndex","errorMessages","rootState","getValueWithAsterisk","currentPath","remainingPath","results","newUpdater","syncInfo"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cogsbox-state",
3
- "version": "0.5.296",
3
+ "version": "0.5.298",
4
4
  "description": "React state management library with form controls and server sync",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",