@awesome-flow/ecs 0.12.0 → 0.14.0

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.
Files changed (85) hide show
  1. package/dist/canvas/index.cjs +5 -0
  2. package/dist/canvas/index.d.cts +2 -0
  3. package/dist/canvas/index.d.mts +2 -0
  4. package/dist/canvas/index.mjs +3 -0
  5. package/dist/canvas-C4nDXlkK.mjs +677 -0
  6. package/dist/canvas-C4nDXlkK.mjs.map +1 -0
  7. package/dist/canvas-DlWcWu05.cjs +688 -0
  8. package/dist/canvas-DlWcWu05.cjs.map +1 -0
  9. package/dist/context/index.cjs +497 -0
  10. package/dist/context/index.cjs.map +1 -0
  11. package/dist/context/index.d.cts +2 -0
  12. package/dist/context/index.d.mts +2 -0
  13. package/dist/context/index.mjs +492 -0
  14. package/dist/context/index.mjs.map +1 -0
  15. package/dist/entity-component-inspector-CNaN8Scf.mjs +79 -0
  16. package/dist/entity-component-inspector-CNaN8Scf.mjs.map +1 -0
  17. package/dist/entity-component-inspector-VlwcaUqy.cjs +90 -0
  18. package/dist/entity-component-inspector-VlwcaUqy.cjs.map +1 -0
  19. package/dist/hooks/index.cjs +19 -0
  20. package/dist/hooks/index.d.cts +2 -0
  21. package/dist/hooks/index.d.mts +2 -0
  22. package/dist/hooks/index.mjs +3 -0
  23. package/dist/id-generator-C2_8g29M.cjs +45 -0
  24. package/dist/id-generator-C2_8g29M.cjs.map +1 -0
  25. package/dist/id-generator-DDsv3NdX.mjs +34 -0
  26. package/dist/id-generator-DDsv3NdX.mjs.map +1 -0
  27. package/dist/index-B9WbxxFC.d.mts +67 -0
  28. package/dist/index-B9WbxxFC.d.mts.map +1 -0
  29. package/dist/index-BTs_8SY-.d.cts +20 -0
  30. package/dist/index-BTs_8SY-.d.cts.map +1 -0
  31. package/dist/index-C-TDFHpq.d.mts +54 -0
  32. package/dist/index-C-TDFHpq.d.mts.map +1 -0
  33. package/dist/index-CNCqWBLh.d.cts +54 -0
  34. package/dist/index-CNCqWBLh.d.cts.map +1 -0
  35. package/dist/index-CyeezgDI.d.mts +20 -0
  36. package/dist/index-CyeezgDI.d.mts.map +1 -0
  37. package/dist/index-D9zIjQH9.d.mts +1 -0
  38. package/dist/index-DCOd7jg-.d.mts +99 -0
  39. package/dist/index-DCOd7jg-.d.mts.map +1 -0
  40. package/dist/index-DGjpWDlm.d.cts +99 -0
  41. package/dist/index-DGjpWDlm.d.cts.map +1 -0
  42. package/dist/index-DLoAMD9J.d.cts +1 -0
  43. package/dist/index-YNgbjS9S.d.cts +159 -0
  44. package/dist/index-YNgbjS9S.d.cts.map +1 -0
  45. package/dist/index-_BgjSgkQ.d.mts +159 -0
  46. package/dist/index-_BgjSgkQ.d.mts.map +1 -0
  47. package/dist/index-t3_yRTa6.d.cts +67 -0
  48. package/dist/index-t3_yRTa6.d.cts.map +1 -0
  49. package/dist/index.cjs +55 -531
  50. package/dist/index.d.cts +9 -106
  51. package/dist/index.d.mts +9 -106
  52. package/dist/index.mjs +10 -520
  53. package/dist/inspectors/index.cjs +6 -0
  54. package/dist/inspectors/index.d.cts +2 -0
  55. package/dist/inspectors/index.d.mts +2 -0
  56. package/dist/inspectors/index.mjs +3 -0
  57. package/dist/node-props-BtAkmdqr.d.mts +45 -0
  58. package/dist/node-props-BtAkmdqr.d.mts.map +1 -0
  59. package/dist/node-props-DkuSwMA0.d.cts +45 -0
  60. package/dist/node-props-DkuSwMA0.d.cts.map +1 -0
  61. package/dist/node-systems-module-CPDV8u8O.d.mts +22 -0
  62. package/dist/node-systems-module-CPDV8u8O.d.mts.map +1 -0
  63. package/dist/node-systems-module-CzkoMbdF.d.cts +22 -0
  64. package/dist/node-systems-module-CzkoMbdF.d.cts.map +1 -0
  65. package/dist/node-types-BRcpbaeR.mjs +1604 -0
  66. package/dist/node-types-BRcpbaeR.mjs.map +1 -0
  67. package/dist/node-types-D_NfbsUT.cjs +1819 -0
  68. package/dist/node-types-D_NfbsUT.cjs.map +1 -0
  69. package/dist/nodes/index.cjs +10 -0
  70. package/dist/nodes/index.d.cts +3 -0
  71. package/dist/nodes/index.d.mts +3 -0
  72. package/dist/nodes/index.mjs +3 -0
  73. package/dist/template-tool-nodes-B7sT2iRc.d.cts +35 -0
  74. package/dist/template-tool-nodes-B7sT2iRc.d.cts.map +1 -0
  75. package/dist/template-tool-nodes-BwavFwMh.d.mts +35 -0
  76. package/dist/template-tool-nodes-BwavFwMh.d.mts.map +1 -0
  77. package/dist/templates/index.cjs +11 -0
  78. package/dist/templates/index.d.cts +2 -0
  79. package/dist/templates/index.d.mts +2 -0
  80. package/dist/templates/index.mjs +3 -0
  81. package/package.json +85 -25
  82. package/dist/index.cjs.map +0 -1
  83. package/dist/index.d.cts.map +0 -1
  84. package/dist/index.d.mts.map +0 -1
  85. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,1604 @@
1
+ import { n as EcsFlowContext, t as EcsIdGenerator } from "./id-generator-DDsv3NdX.mjs";
2
+ import { t as entity_component_inspector_default } from "./entity-component-inspector-CNaN8Scf.mjs";
3
+ import { c } from "react/compiler-runtime";
4
+ import { Accordion, Badge, Divider, Group, Stack, Text } from "@mantine/core";
5
+ import { memo, useContext, useSyncExternalStore } from "react";
6
+ import { NodeCollapse, NodeContainer } from "@awesome-flow/core/layout";
7
+ import { NodeResizer, Position } from "@xyflow/react";
8
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
+ import { useGroupNode } from "@awesome-flow/core/hooks";
10
+ import { SystemType } from "@awesome-ecs/abstract/systems";
11
+
12
+ //#region src/hooks/use-ecs-bridge.ts
13
+ function useEcsBridge() {
14
+ const bridge = useContext(EcsFlowContext);
15
+ if (!bridge) throw new Error("useEcsBridge must be used inside an EcsCanvasProvider.");
16
+ return bridge;
17
+ }
18
+ function useBridgeStoreVersion(storeName) {
19
+ const store = useEcsBridge().stores[storeName];
20
+ return useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
21
+ }
22
+
23
+ //#endregion
24
+ //#region src/hooks/use-entities-in-scope.ts
25
+ function useEntitiesInScope(scopeId) {
26
+ const $ = c(4);
27
+ const bridge = useEcsBridge();
28
+ useBridgeStoreVersion("entities");
29
+ useBridgeStoreVersion("proxies");
30
+ let t0;
31
+ bb0: {
32
+ if (!scopeId) {
33
+ let t1;
34
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
35
+ t1 = [];
36
+ $[0] = t1;
37
+ } else t1 = $[0];
38
+ t0 = t1;
39
+ break bb0;
40
+ }
41
+ let t1;
42
+ if ($[1] !== bridge || $[2] !== scopeId) {
43
+ t1 = bridge.getEntitiesInScope(scopeId);
44
+ $[1] = bridge;
45
+ $[2] = scopeId;
46
+ $[3] = t1;
47
+ } else t1 = $[3];
48
+ t0 = t1;
49
+ }
50
+ return t0;
51
+ }
52
+
53
+ //#endregion
54
+ //#region src/hooks/use-entity.ts
55
+ function useEntity(proxy) {
56
+ const $ = c(3);
57
+ const bridge = useEcsBridge();
58
+ useBridgeStoreVersion("entities");
59
+ proxy && EcsIdGenerator.entityProxy(proxy);
60
+ let t0;
61
+ bb0: {
62
+ if (!proxy || !bridge.entityRepository.has(proxy)) {
63
+ t0 = void 0;
64
+ break bb0;
65
+ }
66
+ let t1;
67
+ if ($[0] !== bridge.entityRepository || $[1] !== proxy) {
68
+ t1 = bridge.entityRepository.get(proxy);
69
+ $[0] = bridge.entityRepository;
70
+ $[1] = proxy;
71
+ $[2] = t1;
72
+ } else t1 = $[2];
73
+ t0 = t1;
74
+ }
75
+ return t0;
76
+ }
77
+
78
+ //#endregion
79
+ //#region src/hooks/use-entity-list.ts
80
+ function useEntityList(type) {
81
+ const $ = c(5);
82
+ const bridge = useEcsBridge();
83
+ useBridgeStoreVersion("entities");
84
+ let t0;
85
+ bb0: {
86
+ if (type !== void 0) {
87
+ let t1;
88
+ if ($[0] !== bridge.entityRepository || $[1] !== type) {
89
+ t1 = bridge.entityRepository.getAll(type);
90
+ $[0] = bridge.entityRepository;
91
+ $[1] = type;
92
+ $[2] = t1;
93
+ } else t1 = $[2];
94
+ t0 = t1;
95
+ break bb0;
96
+ }
97
+ let t1;
98
+ if ($[3] !== bridge.entityRepository) {
99
+ t1 = Array.from(bridge.entityRepository.listAll());
100
+ $[3] = bridge.entityRepository;
101
+ $[4] = t1;
102
+ } else t1 = $[4];
103
+ t0 = t1;
104
+ }
105
+ return t0;
106
+ }
107
+
108
+ //#endregion
109
+ //#region src/hooks/use-entity-type-descriptors.ts
110
+ function useEntityTypeDescriptors() {
111
+ const $ = c(2);
112
+ const bridge = useEcsBridge();
113
+ useBridgeStoreVersion("entityTypes");
114
+ let t0;
115
+ if ($[0] !== bridge) {
116
+ t0 = bridge.getEntityTypeDescriptors();
117
+ $[0] = bridge;
118
+ $[1] = t0;
119
+ } else t0 = $[1];
120
+ return t0;
121
+ }
122
+
123
+ //#endregion
124
+ //#region src/abstract/handle-types.ts
125
+ let EcsHandleDataType = /* @__PURE__ */ function(EcsHandleDataType) {
126
+ EcsHandleDataType["proxy"] = "proxy";
127
+ EcsHandleDataType["module"] = "module";
128
+ return EcsHandleDataType;
129
+ }({});
130
+
131
+ //#endregion
132
+ //#region src/abstract/templates.ts
133
+ let EcsTemplateGroup = /* @__PURE__ */ function(EcsTemplateGroup) {
134
+ EcsTemplateGroup["ecs"] = "ECS";
135
+ EcsTemplateGroup["entities"] = "ECS Entities";
136
+ EcsTemplateGroup["tools"] = "ECS Tools";
137
+ return EcsTemplateGroup;
138
+ }({});
139
+
140
+ //#endregion
141
+ //#region src/templates/template-entity-node.ts
142
+ const entityNodeHandles = [{
143
+ dataType: "proxy",
144
+ position: Position.Left,
145
+ connection: "target",
146
+ disabled: true
147
+ }, {
148
+ dataType: "proxy",
149
+ position: Position.Right,
150
+ connection: "source",
151
+ disabled: true
152
+ }];
153
+ function createEntityTypeTemplate(descriptor) {
154
+ const id = descriptor.id ?? EcsIdGenerator.entityType(descriptor.entityType);
155
+ return {
156
+ id: EcsIdGenerator.entityTypeTemplate(descriptor.entityType, id),
157
+ type: "entity-node",
158
+ group: descriptor.group ?? "ECS Entities",
159
+ data: {
160
+ title: descriptor.title ?? descriptor.entityType.toString(),
161
+ entityType: descriptor.entityType,
162
+ spawn: {
163
+ descriptorId: id,
164
+ entityType: descriptor.entityType,
165
+ scopeId: descriptor.scopeId
166
+ }
167
+ },
168
+ handles: entityNodeHandles
169
+ };
170
+ }
171
+ var EntityNodeTemplate = class {
172
+ template = {
173
+ type: "entity-node",
174
+ group: "ECS",
175
+ data: { title: "Entity" },
176
+ handles: entityNodeHandles
177
+ };
178
+ };
179
+
180
+ //#endregion
181
+ //#region src/hooks/use-entity-type-templates.ts
182
+ function useEntityTypeTemplates(t0) {
183
+ const $ = c(3);
184
+ const enabled = t0 === void 0 ? true : t0;
185
+ const descriptors = useEntityTypeDescriptors();
186
+ let t1;
187
+ bb0: {
188
+ if (!enabled) {
189
+ let t2;
190
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
191
+ t2 = [];
192
+ $[0] = t2;
193
+ } else t2 = $[0];
194
+ t1 = t2;
195
+ break bb0;
196
+ }
197
+ let t2;
198
+ if ($[1] !== descriptors) {
199
+ t2 = descriptors.map(createEntityTypeTemplate);
200
+ $[1] = descriptors;
201
+ $[2] = t2;
202
+ } else t2 = $[2];
203
+ t1 = t2;
204
+ }
205
+ return t1;
206
+ }
207
+
208
+ //#endregion
209
+ //#region src/hooks/use-entity-updates.ts
210
+ function useEntityUpdates(target) {
211
+ const $ = c(3);
212
+ const bridge = useEcsBridge();
213
+ useBridgeStoreVersion("updates");
214
+ let t0;
215
+ if ($[0] !== bridge || $[1] !== target) {
216
+ t0 = bridge.getEntityUpdateCounts(target);
217
+ $[0] = bridge;
218
+ $[1] = target;
219
+ $[2] = t0;
220
+ } else t0 = $[2];
221
+ return t0;
222
+ }
223
+
224
+ //#endregion
225
+ //#region src/hooks/use-event-stream.ts
226
+ function useEventStream(filter) {
227
+ const $ = c(3);
228
+ const bridge = useEcsBridge();
229
+ useBridgeStoreVersion("events");
230
+ let t0;
231
+ if ($[0] !== bridge || $[1] !== filter) {
232
+ t0 = bridge.getEventStream(filter);
233
+ $[0] = bridge;
234
+ $[1] = filter;
235
+ $[2] = t0;
236
+ } else t0 = $[2];
237
+ return t0;
238
+ }
239
+
240
+ //#endregion
241
+ //#region src/hooks/use-pipeline-metrics.ts
242
+ function usePipelineMetrics(entityType, phase) {
243
+ const $ = c(4);
244
+ const bridge = useEcsBridge();
245
+ useBridgeStoreVersion("metrics");
246
+ let t0;
247
+ if ($[0] !== bridge || $[1] !== entityType || $[2] !== phase) {
248
+ t0 = bridge.getPipelineMetrics(entityType, phase);
249
+ $[0] = bridge;
250
+ $[1] = entityType;
251
+ $[2] = phase;
252
+ $[3] = t0;
253
+ } else t0 = $[3];
254
+ return t0;
255
+ }
256
+ function useMiddlewareMetrics(filter) {
257
+ const $ = c(3);
258
+ const bridge = useEcsBridge();
259
+ useBridgeStoreVersion("metrics");
260
+ let t0;
261
+ if ($[0] !== bridge || $[1] !== filter) {
262
+ t0 = bridge.getMiddlewareMetrics(filter);
263
+ $[0] = bridge;
264
+ $[1] = filter;
265
+ $[2] = t0;
266
+ } else t0 = $[2];
267
+ return t0;
268
+ }
269
+
270
+ //#endregion
271
+ //#region src/hooks/use-scheduler.ts
272
+ function useScheduler() {
273
+ const $ = c(2);
274
+ const bridge = useEcsBridge();
275
+ useBridgeStoreVersion("scheduler");
276
+ let t0;
277
+ if ($[0] !== bridge) {
278
+ t0 = bridge.getSchedulerSnapshot();
279
+ $[0] = bridge;
280
+ $[1] = t0;
281
+ } else t0 = $[1];
282
+ return t0;
283
+ }
284
+
285
+ //#endregion
286
+ //#region src/hooks/use-scope-list.ts
287
+ function useScopeList() {
288
+ const $ = c(2);
289
+ const bridge = useEcsBridge();
290
+ useBridgeStoreVersion("entities");
291
+ useBridgeStoreVersion("scopes");
292
+ let t0;
293
+ if ($[0] !== bridge) {
294
+ t0 = bridge.getScopes();
295
+ $[0] = bridge;
296
+ $[1] = t0;
297
+ } else t0 = $[1];
298
+ return t0;
299
+ }
300
+
301
+ //#endregion
302
+ //#region src/hooks/use-systems-module.ts
303
+ function useSystemsModule(type) {
304
+ const $ = c(3);
305
+ const bridge = useEcsBridge();
306
+ useBridgeStoreVersion("modules");
307
+ let t0;
308
+ bb0: {
309
+ if (type === void 0) {
310
+ t0 = void 0;
311
+ break bb0;
312
+ }
313
+ let t1;
314
+ if ($[0] !== bridge.systemsModuleRepository || $[1] !== type) {
315
+ t1 = bridge.systemsModuleRepository.get(type);
316
+ $[0] = bridge.systemsModuleRepository;
317
+ $[1] = type;
318
+ $[2] = t1;
319
+ } else t1 = $[2];
320
+ t0 = t1;
321
+ }
322
+ return t0;
323
+ }
324
+ function useSystemsModuleList() {
325
+ const $ = c(2);
326
+ const bridge = useEcsBridge();
327
+ useBridgeStoreVersion("modules");
328
+ let t0;
329
+ if ($[0] !== bridge) {
330
+ t0 = bridge.listSystemsModules();
331
+ $[0] = bridge;
332
+ $[1] = t0;
333
+ } else t0 = $[1];
334
+ return t0;
335
+ }
336
+
337
+ //#endregion
338
+ //#region src/hooks/use-update-queue.ts
339
+ function useUpdateQueue(limit) {
340
+ const $ = c(3);
341
+ const bridge = useEcsBridge();
342
+ useBridgeStoreVersion("queue");
343
+ let t0;
344
+ if ($[0] !== bridge || $[1] !== limit) {
345
+ t0 = bridge.getUpdateQueueSnapshot(limit);
346
+ $[0] = bridge;
347
+ $[1] = limit;
348
+ $[2] = t0;
349
+ } else t0 = $[2];
350
+ return t0;
351
+ }
352
+
353
+ //#endregion
354
+ //#region src/nodes/node-event-timeline.tsx
355
+ function EventTimelineNode(t0) {
356
+ const $ = c(18);
357
+ const { id, data, selected, type } = t0;
358
+ const t1 = data.limit ?? 10;
359
+ let t2;
360
+ if ($[0] !== t1) {
361
+ t2 = { limit: t1 };
362
+ $[0] = t1;
363
+ $[1] = t2;
364
+ } else t2 = $[1];
365
+ const events = useEventStream(t2);
366
+ let t3;
367
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
368
+ t3 = /* @__PURE__ */ jsx(Badge, {
369
+ fullWidth: true,
370
+ color: "grape",
371
+ variant: "transparent",
372
+ children: "Event Timeline"
373
+ });
374
+ $[2] = t3;
375
+ } else t3 = $[2];
376
+ let t4;
377
+ let t5;
378
+ if ($[3] !== events.length) {
379
+ t4 = /* @__PURE__ */ jsxs(Badge, {
380
+ variant: "light",
381
+ children: ["events ", events.length]
382
+ });
383
+ t5 = events.length === 0 && /* @__PURE__ */ jsx(Text, {
384
+ size: "xs",
385
+ c: "dimmed",
386
+ children: "No events recorded."
387
+ });
388
+ $[3] = events.length;
389
+ $[4] = t4;
390
+ $[5] = t5;
391
+ } else {
392
+ t4 = $[4];
393
+ t5 = $[5];
394
+ }
395
+ let t6;
396
+ if ($[6] !== events) {
397
+ t6 = events.map(_temp$5);
398
+ $[6] = events;
399
+ $[7] = t6;
400
+ } else t6 = $[7];
401
+ let t7;
402
+ if ($[8] !== t4 || $[9] !== t5 || $[10] !== t6) {
403
+ t7 = /* @__PURE__ */ jsxs(Stack, {
404
+ gap: "xs",
405
+ children: [
406
+ t4,
407
+ t5,
408
+ t6
409
+ ]
410
+ });
411
+ $[8] = t4;
412
+ $[9] = t5;
413
+ $[10] = t6;
414
+ $[11] = t7;
415
+ } else t7 = $[11];
416
+ let t8;
417
+ if ($[12] !== data || $[13] !== id || $[14] !== selected || $[15] !== t7 || $[16] !== type) {
418
+ t8 = /* @__PURE__ */ jsx(NodeContainer, {
419
+ id,
420
+ selected,
421
+ data,
422
+ title: t3,
423
+ type,
424
+ children: t7
425
+ });
426
+ $[12] = data;
427
+ $[13] = id;
428
+ $[14] = selected;
429
+ $[15] = t7;
430
+ $[16] = type;
431
+ $[17] = t8;
432
+ } else t8 = $[17];
433
+ return t8;
434
+ }
435
+ function _temp$5(entry) {
436
+ return /* @__PURE__ */ jsxs(Stack, {
437
+ gap: 2,
438
+ children: [/* @__PURE__ */ jsxs(Group, {
439
+ gap: "xs",
440
+ wrap: "nowrap",
441
+ children: [/* @__PURE__ */ jsx(Badge, {
442
+ size: "xs",
443
+ variant: "outline",
444
+ children: entry.event.data.uid
445
+ }), /* @__PURE__ */ jsx(Text, {
446
+ size: "xs",
447
+ c: "dimmed",
448
+ children: new Date(entry.recordedAt).toLocaleTimeString()
449
+ })]
450
+ }), /* @__PURE__ */ jsxs(Text, {
451
+ size: "xs",
452
+ truncate: true,
453
+ children: [
454
+ EcsIdGenerator.entityProxy(entry.event.origin),
455
+ " -> ",
456
+ entry.event.target ? EcsIdGenerator.entityProxy(entry.event.target) : `${entry.targets.length} target(s)`
457
+ ]
458
+ })]
459
+ }, `${entry.recordedAt}:${entry.event.data.uid}`);
460
+ }
461
+ var node_event_timeline_default = memo(EventTimelineNode);
462
+
463
+ //#endregion
464
+ //#region src/components/formatter-camel-case.tsx
465
+ function CamelCaseFormatter(props) {
466
+ const $ = c(2);
467
+ let t0;
468
+ if ($[0] !== props.value) {
469
+ t0 = props.value?.toString().replace(/([a-z])([A-Z])/g, "$1 $2");
470
+ $[0] = props.value;
471
+ $[1] = t0;
472
+ } else t0 = $[1];
473
+ return t0;
474
+ }
475
+ var formatter_camel_case_default = memo(CamelCaseFormatter);
476
+
477
+ //#endregion
478
+ //#region src/components/entity-component-list.tsx
479
+ function EntityComponentList(props) {
480
+ const $ = c(9);
481
+ let t0;
482
+ if ($[0] !== props.entity.components) {
483
+ t0 = Array.from(props.entity.components.values());
484
+ $[0] = props.entity.components;
485
+ $[1] = t0;
486
+ } else t0 = $[1];
487
+ const components = t0;
488
+ let t1;
489
+ if ($[2] !== components.length) {
490
+ t1 = /* @__PURE__ */ jsx(Accordion.Control, { children: /* @__PURE__ */ jsx(Badge, {
491
+ fullWidth: true,
492
+ variant: "light",
493
+ rightSection: components.length,
494
+ children: "Components"
495
+ }) });
496
+ $[2] = components.length;
497
+ $[3] = t1;
498
+ } else t1 = $[3];
499
+ let t2;
500
+ if ($[4] !== components) {
501
+ t2 = /* @__PURE__ */ jsx(Accordion.Panel, { children: /* @__PURE__ */ jsx(Stack, { children: components.map(_temp$4) }) });
502
+ $[4] = components;
503
+ $[5] = t2;
504
+ } else t2 = $[5];
505
+ let t3;
506
+ if ($[6] !== t1 || $[7] !== t2) {
507
+ t3 = /* @__PURE__ */ jsxs(Accordion.Item, {
508
+ value: "components",
509
+ children: [t1, t2]
510
+ }, "components");
511
+ $[6] = t1;
512
+ $[7] = t2;
513
+ $[8] = t3;
514
+ } else t3 = $[8];
515
+ return t3;
516
+ }
517
+ function _temp$4(c, i) {
518
+ return /* @__PURE__ */ jsx(entity_component_inspector_default, { component: c }, i);
519
+ }
520
+ var entity_component_list_default = memo(EntityComponentList);
521
+
522
+ //#endregion
523
+ //#region src/components/badge-list.tsx
524
+ function BadgeList(props) {
525
+ return props.items.map((value, i) => {
526
+ return /* @__PURE__ */ jsx(Badge, {
527
+ ...props.badge || [],
528
+ children: /* @__PURE__ */ jsx(formatter_camel_case_default, { value })
529
+ }, i);
530
+ });
531
+ }
532
+ var badge_list_default = memo(BadgeList);
533
+
534
+ //#endregion
535
+ //#region src/components/entity-proxy-list.tsx
536
+ function EntityProxyList(props) {
537
+ const $ = c(11);
538
+ const bridge = useEcsBridge();
539
+ useBridgeStoreVersion("proxies");
540
+ let t0;
541
+ if ($[0] !== bridge.entityProxyRepository || $[1] !== props.entity.myProxy) {
542
+ t0 = Array.from(bridge.entityProxyRepository.getAll(props.entity.myProxy).values()).flat().map(_temp$3);
543
+ $[0] = bridge.entityProxyRepository;
544
+ $[1] = props.entity.myProxy;
545
+ $[2] = t0;
546
+ } else t0 = $[2];
547
+ const items = t0;
548
+ let t1;
549
+ if ($[3] !== items.length) {
550
+ t1 = /* @__PURE__ */ jsx(Accordion.Control, { children: /* @__PURE__ */ jsx(Badge, {
551
+ fullWidth: true,
552
+ variant: "light",
553
+ rightSection: items.length,
554
+ children: "Proxies"
555
+ }) });
556
+ $[3] = items.length;
557
+ $[4] = t1;
558
+ } else t1 = $[4];
559
+ let t2;
560
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
561
+ t2 = { variant: "outline" };
562
+ $[5] = t2;
563
+ } else t2 = $[5];
564
+ let t3;
565
+ if ($[6] !== items) {
566
+ t3 = /* @__PURE__ */ jsx(Accordion.Panel, { children: /* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(badge_list_default, {
567
+ items,
568
+ badge: t2
569
+ }) }) });
570
+ $[6] = items;
571
+ $[7] = t3;
572
+ } else t3 = $[7];
573
+ let t4;
574
+ if ($[8] !== t1 || $[9] !== t3) {
575
+ t4 = /* @__PURE__ */ jsxs(Accordion.Item, {
576
+ value: "proxies",
577
+ children: [t1, t3]
578
+ }, "proxies");
579
+ $[8] = t1;
580
+ $[9] = t3;
581
+ $[10] = t4;
582
+ } else t4 = $[10];
583
+ return t4;
584
+ }
585
+ function _temp$3(p) {
586
+ return EcsIdGenerator.entityProxy(p);
587
+ }
588
+ var entity_proxy_list_default = memo(EntityProxyList);
589
+
590
+ //#endregion
591
+ //#region src/components/entity-subscription-list.tsx
592
+ function EntitySubscriptionList(props) {
593
+ const $ = c(11);
594
+ const bridge = useEcsBridge();
595
+ useBridgeStoreVersion("subscriptions");
596
+ let t0;
597
+ if ($[0] !== bridge.entityEventsManager || $[1] !== props.entity.myProxy) {
598
+ t0 = bridge.entityEventsManager.getSubscriptionsForEntity(props.entity.myProxy);
599
+ $[0] = bridge.entityEventsManager;
600
+ $[1] = props.entity.myProxy;
601
+ $[2] = t0;
602
+ } else t0 = $[2];
603
+ const subscriptions = t0;
604
+ let t1;
605
+ if ($[3] !== subscriptions.length) {
606
+ t1 = /* @__PURE__ */ jsx(Accordion.Control, { children: /* @__PURE__ */ jsx(Badge, {
607
+ fullWidth: true,
608
+ variant: "light",
609
+ rightSection: subscriptions.length,
610
+ children: "Events"
611
+ }) });
612
+ $[3] = subscriptions.length;
613
+ $[4] = t1;
614
+ } else t1 = $[4];
615
+ let t2;
616
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
617
+ t2 = { variant: "outline" };
618
+ $[5] = t2;
619
+ } else t2 = $[5];
620
+ let t3;
621
+ if ($[6] !== subscriptions) {
622
+ t3 = /* @__PURE__ */ jsx(Accordion.Panel, { children: /* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(badge_list_default, {
623
+ items: subscriptions,
624
+ badge: t2
625
+ }) }) });
626
+ $[6] = subscriptions;
627
+ $[7] = t3;
628
+ } else t3 = $[7];
629
+ let t4;
630
+ if ($[8] !== t1 || $[9] !== t3) {
631
+ t4 = /* @__PURE__ */ jsxs(Accordion.Item, {
632
+ value: "subscriptions",
633
+ children: [t1, t3]
634
+ }, "subscriptions");
635
+ $[8] = t1;
636
+ $[9] = t3;
637
+ $[10] = t4;
638
+ } else t4 = $[10];
639
+ return t4;
640
+ }
641
+ var entity_subscription_list_default = memo(EntitySubscriptionList);
642
+
643
+ //#endregion
644
+ //#region src/components/entity-update-counter.tsx
645
+ function EntityUpdateCounter(props) {
646
+ const $ = c(7);
647
+ const { updates, removes } = useEntityUpdates(props.entityUid);
648
+ let t0;
649
+ if ($[0] !== updates) {
650
+ t0 = /* @__PURE__ */ jsx(Badge, {
651
+ variant: "light",
652
+ children: updates
653
+ });
654
+ $[0] = updates;
655
+ $[1] = t0;
656
+ } else t0 = $[1];
657
+ let t1;
658
+ if ($[2] !== removes) {
659
+ t1 = /* @__PURE__ */ jsx(Badge, {
660
+ variant: "light",
661
+ color: "orange",
662
+ children: removes
663
+ });
664
+ $[2] = removes;
665
+ $[3] = t1;
666
+ } else t1 = $[3];
667
+ let t2;
668
+ if ($[4] !== t0 || $[5] !== t1) {
669
+ t2 = /* @__PURE__ */ jsxs(Fragment, { children: [t0, t1] });
670
+ $[4] = t0;
671
+ $[5] = t1;
672
+ $[6] = t2;
673
+ } else t2 = $[6];
674
+ return t2;
675
+ }
676
+ var entity_update_counter_default = memo(EntityUpdateCounter);
677
+
678
+ //#endregion
679
+ //#region src/layout/entity-layout.tsx
680
+ function EntityLayout(t0) {
681
+ const $ = c(8);
682
+ const { entity } = t0;
683
+ let t1;
684
+ if ($[0] !== entity.myProxy.entityUid) {
685
+ t1 = /* @__PURE__ */ jsxs(Group, { children: [/* @__PURE__ */ jsx(Badge, {
686
+ variant: "outline",
687
+ color: "orange",
688
+ children: entity.myProxy.entityUid
689
+ }), /* @__PURE__ */ jsx(entity_update_counter_default, { entityUid: entity.myProxy.entityUid })] });
690
+ $[0] = entity.myProxy.entityUid;
691
+ $[1] = t1;
692
+ } else t1 = $[1];
693
+ let t2;
694
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
695
+ t2 = /* @__PURE__ */ jsx(Divider, { my: 5 });
696
+ $[2] = t2;
697
+ } else t2 = $[2];
698
+ let t3;
699
+ if ($[3] !== entity) {
700
+ t3 = /* @__PURE__ */ jsxs(Accordion, { children: [
701
+ /* @__PURE__ */ jsx(entity_component_list_default, { entity }),
702
+ /* @__PURE__ */ jsx(entity_proxy_list_default, { entity }),
703
+ /* @__PURE__ */ jsx(entity_subscription_list_default, { entity })
704
+ ] });
705
+ $[3] = entity;
706
+ $[4] = t3;
707
+ } else t3 = $[4];
708
+ let t4;
709
+ if ($[5] !== t1 || $[6] !== t3) {
710
+ t4 = /* @__PURE__ */ jsxs(Fragment, { children: [
711
+ t1,
712
+ t2,
713
+ t3
714
+ ] });
715
+ $[5] = t1;
716
+ $[6] = t3;
717
+ $[7] = t4;
718
+ } else t4 = $[7];
719
+ return t4;
720
+ }
721
+
722
+ //#endregion
723
+ //#region src/nodes/node-entity.tsx
724
+ function EntityNode(t0) {
725
+ const $ = c(16);
726
+ const { id, data, selected, type } = t0;
727
+ const entity = useEntity(data.entity);
728
+ const entityType = entity?.myProxy.entityType ?? data.entity?.entityType ?? data.entityType;
729
+ const pending = data.spawnStatus === "queued" && !entity;
730
+ const t1 = entityType ?? data.title;
731
+ let t2;
732
+ if ($[0] !== t1) {
733
+ t2 = /* @__PURE__ */ jsx(Badge, {
734
+ fullWidth: true,
735
+ variant: "transparent",
736
+ children: /* @__PURE__ */ jsx(formatter_camel_case_default, { value: t1 })
737
+ });
738
+ $[0] = t1;
739
+ $[1] = t2;
740
+ } else t2 = $[1];
741
+ let t3;
742
+ if ($[2] !== entity) {
743
+ t3 = entity && /* @__PURE__ */ jsx(EntityLayout, { entity });
744
+ $[2] = entity;
745
+ $[3] = t3;
746
+ } else t3 = $[3];
747
+ let t4;
748
+ if ($[4] !== data.entity || $[5] !== entity || $[6] !== pending) {
749
+ t4 = !entity && /* @__PURE__ */ jsxs(Stack, {
750
+ gap: "xs",
751
+ children: [/* @__PURE__ */ jsx(Badge, {
752
+ variant: "light",
753
+ color: pending ? "yellow" : "gray",
754
+ children: pending ? "upsert queued" : "no entity bound"
755
+ }), data.entity && /* @__PURE__ */ jsxs(Text, {
756
+ size: "xs",
757
+ c: "dimmed",
758
+ truncate: true,
759
+ children: [
760
+ data.entity.entityType,
761
+ ":",
762
+ data.entity.entityUid
763
+ ]
764
+ })]
765
+ });
766
+ $[4] = data.entity;
767
+ $[5] = entity;
768
+ $[6] = pending;
769
+ $[7] = t4;
770
+ } else t4 = $[7];
771
+ let t5;
772
+ if ($[8] !== data || $[9] !== id || $[10] !== selected || $[11] !== t2 || $[12] !== t3 || $[13] !== t4 || $[14] !== type) {
773
+ t5 = /* @__PURE__ */ jsxs(NodeContainer, {
774
+ id,
775
+ selected,
776
+ data,
777
+ title: t2,
778
+ type,
779
+ children: [t3, t4]
780
+ });
781
+ $[8] = data;
782
+ $[9] = id;
783
+ $[10] = selected;
784
+ $[11] = t2;
785
+ $[12] = t3;
786
+ $[13] = t4;
787
+ $[14] = type;
788
+ $[15] = t5;
789
+ } else t5 = $[15];
790
+ return t5;
791
+ }
792
+
793
+ //#endregion
794
+ //#region src/nodes/node-scheduler.tsx
795
+ function SchedulerNode(t0) {
796
+ const $ = c(29);
797
+ const { id, data, selected, type } = t0;
798
+ const scheduler = useScheduler();
799
+ let t1;
800
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
801
+ t1 = /* @__PURE__ */ jsx(Badge, {
802
+ fullWidth: true,
803
+ color: "cyan",
804
+ variant: "transparent",
805
+ children: "Scheduler"
806
+ });
807
+ $[0] = t1;
808
+ } else t1 = $[0];
809
+ const t2 = scheduler?.pendingCount ?? 0;
810
+ let t3;
811
+ if ($[1] !== t2) {
812
+ t3 = /* @__PURE__ */ jsxs(Badge, {
813
+ variant: "light",
814
+ children: ["pending ", t2]
815
+ });
816
+ $[1] = t2;
817
+ $[2] = t3;
818
+ } else t3 = $[2];
819
+ const t4 = scheduler?.schedules.length ?? 0;
820
+ let t5;
821
+ if ($[3] !== t4) {
822
+ t5 = /* @__PURE__ */ jsxs(Badge, {
823
+ variant: "light",
824
+ children: ["scheduled ", t4]
825
+ });
826
+ $[3] = t4;
827
+ $[4] = t5;
828
+ } else t5 = $[4];
829
+ let t6;
830
+ if ($[5] !== t3 || $[6] !== t5) {
831
+ t6 = /* @__PURE__ */ jsxs(Group, {
832
+ gap: "xs",
833
+ children: [t3, t5]
834
+ });
835
+ $[5] = t3;
836
+ $[6] = t5;
837
+ $[7] = t6;
838
+ } else t6 = $[7];
839
+ const t7 = scheduler?.isPaused ? "filled" : "outline";
840
+ const t8 = scheduler?.isPaused ? "orange" : "gray";
841
+ const t9 = scheduler?.isPaused ? "paused" : "running";
842
+ let t10;
843
+ if ($[8] !== t7 || $[9] !== t8 || $[10] !== t9) {
844
+ t10 = /* @__PURE__ */ jsx(Badge, {
845
+ variant: t7,
846
+ color: t8,
847
+ children: t9
848
+ });
849
+ $[8] = t7;
850
+ $[9] = t8;
851
+ $[10] = t9;
852
+ $[11] = t10;
853
+ } else t10 = $[11];
854
+ const t11 = scheduler?.frameSubscriptions.length ?? 0;
855
+ let t12;
856
+ if ($[12] !== t11) {
857
+ t12 = /* @__PURE__ */ jsxs(Badge, {
858
+ variant: "outline",
859
+ children: ["per-frame ", t11]
860
+ });
861
+ $[12] = t11;
862
+ $[13] = t12;
863
+ } else t12 = $[13];
864
+ let t13;
865
+ if ($[14] !== t10 || $[15] !== t12) {
866
+ t13 = /* @__PURE__ */ jsxs(Group, {
867
+ gap: "xs",
868
+ children: [t10, t12]
869
+ });
870
+ $[14] = t10;
871
+ $[15] = t12;
872
+ $[16] = t13;
873
+ } else t13 = $[16];
874
+ let t14;
875
+ if ($[17] !== scheduler) {
876
+ t14 = !scheduler && /* @__PURE__ */ jsx(Text, {
877
+ size: "xs",
878
+ c: "dimmed",
879
+ children: "No scheduler connected."
880
+ });
881
+ $[17] = scheduler;
882
+ $[18] = t14;
883
+ } else t14 = $[18];
884
+ let t15;
885
+ if ($[19] !== t13 || $[20] !== t14 || $[21] !== t6) {
886
+ t15 = /* @__PURE__ */ jsxs(Stack, {
887
+ gap: "xs",
888
+ children: [
889
+ t6,
890
+ t13,
891
+ t14
892
+ ]
893
+ });
894
+ $[19] = t13;
895
+ $[20] = t14;
896
+ $[21] = t6;
897
+ $[22] = t15;
898
+ } else t15 = $[22];
899
+ let t16;
900
+ if ($[23] !== data || $[24] !== id || $[25] !== selected || $[26] !== t15 || $[27] !== type) {
901
+ t16 = /* @__PURE__ */ jsx(NodeContainer, {
902
+ id,
903
+ selected,
904
+ data,
905
+ title: t1,
906
+ type,
907
+ children: t15
908
+ });
909
+ $[23] = data;
910
+ $[24] = id;
911
+ $[25] = selected;
912
+ $[26] = t15;
913
+ $[27] = type;
914
+ $[28] = t16;
915
+ } else t16 = $[28];
916
+ return t16;
917
+ }
918
+ var node_scheduler_default = memo(SchedulerNode);
919
+
920
+ //#endregion
921
+ //#region src/nodes/node-scope-group.tsx
922
+ function ScopeGroupNode(t0) {
923
+ const $ = c(36);
924
+ const { id, selected, data, type, width, height } = t0;
925
+ let t1;
926
+ if ($[0] !== data || $[1] !== height || $[2] !== id || $[3] !== width) {
927
+ t1 = {
928
+ id,
929
+ data,
930
+ width,
931
+ height
932
+ };
933
+ $[0] = data;
934
+ $[1] = height;
935
+ $[2] = id;
936
+ $[3] = width;
937
+ $[4] = t1;
938
+ } else t1 = $[4];
939
+ const { groupNodes, groupData, onCollapsed } = useGroupNode(t1);
940
+ const t2 = data.initialSize?.width || 320;
941
+ const t3 = data.initialSize?.height || 220;
942
+ let t4;
943
+ if ($[5] !== t2 || $[6] !== t3) {
944
+ t4 = {
945
+ width: t2,
946
+ height: t3
947
+ };
948
+ $[5] = t2;
949
+ $[6] = t3;
950
+ $[7] = t4;
951
+ } else t4 = $[7];
952
+ const size = t4;
953
+ const t5 = groupNodes?.length || 0;
954
+ let t6;
955
+ if ($[8] !== t5) {
956
+ t6 = /* @__PURE__ */ jsx(Badge, {
957
+ size: "xs",
958
+ variant: "outline",
959
+ radius: "xs",
960
+ color: "teal",
961
+ children: t5
962
+ });
963
+ $[8] = t5;
964
+ $[9] = t6;
965
+ } else t6 = $[9];
966
+ let t7;
967
+ if ($[10] !== data.isCollapsed || $[11] !== id || $[12] !== onCollapsed) {
968
+ t7 = /* @__PURE__ */ jsx(NodeCollapse, {
969
+ nodeId: id,
970
+ isCollapsed: data.isCollapsed,
971
+ onCollapsed
972
+ });
973
+ $[10] = data.isCollapsed;
974
+ $[11] = id;
975
+ $[12] = onCollapsed;
976
+ $[13] = t7;
977
+ } else t7 = $[13];
978
+ let t8;
979
+ if ($[14] !== t6 || $[15] !== t7) {
980
+ t8 = /* @__PURE__ */ jsxs(Group, {
981
+ gap: "xs",
982
+ wrap: "nowrap",
983
+ children: [t6, t7]
984
+ });
985
+ $[14] = t6;
986
+ $[15] = t7;
987
+ $[16] = t8;
988
+ } else t8 = $[16];
989
+ let t9;
990
+ if ($[17] !== data.scopeId) {
991
+ t9 = /* @__PURE__ */ jsx(Text, {
992
+ size: "xs",
993
+ c: "dimmed",
994
+ truncate: true,
995
+ children: data.scopeId
996
+ });
997
+ $[17] = data.scopeId;
998
+ $[18] = t9;
999
+ } else t9 = $[18];
1000
+ let t10;
1001
+ if ($[19] !== t8 || $[20] !== t9) {
1002
+ t10 = /* @__PURE__ */ jsxs(Group, {
1003
+ justify: "space-between",
1004
+ wrap: "nowrap",
1005
+ children: [t8, t9]
1006
+ });
1007
+ $[19] = t8;
1008
+ $[20] = t9;
1009
+ $[21] = t10;
1010
+ } else t10 = $[21];
1011
+ const title = t10;
1012
+ let t11;
1013
+ if ($[22] !== groupData || $[23] !== id || $[24] !== selected || $[25] !== title || $[26] !== type) {
1014
+ t11 = /* @__PURE__ */ jsx(NodeContainer, {
1015
+ id,
1016
+ selected,
1017
+ data: groupData,
1018
+ title,
1019
+ type
1020
+ });
1021
+ $[22] = groupData;
1022
+ $[23] = id;
1023
+ $[24] = selected;
1024
+ $[25] = title;
1025
+ $[26] = type;
1026
+ $[27] = t11;
1027
+ } else t11 = $[27];
1028
+ const t12 = selected && !data.isCollapsed;
1029
+ let t13;
1030
+ if ($[28] !== id || $[29] !== size.height || $[30] !== size.width || $[31] !== t12) {
1031
+ t13 = /* @__PURE__ */ jsx(NodeResizer, {
1032
+ nodeId: id,
1033
+ minWidth: size.width,
1034
+ minHeight: size.height,
1035
+ isVisible: t12
1036
+ });
1037
+ $[28] = id;
1038
+ $[29] = size.height;
1039
+ $[30] = size.width;
1040
+ $[31] = t12;
1041
+ $[32] = t13;
1042
+ } else t13 = $[32];
1043
+ let t14;
1044
+ if ($[33] !== t11 || $[34] !== t13) {
1045
+ t14 = /* @__PURE__ */ jsxs(Fragment, { children: [t11, t13] });
1046
+ $[33] = t11;
1047
+ $[34] = t13;
1048
+ $[35] = t14;
1049
+ } else t14 = $[35];
1050
+ return t14;
1051
+ }
1052
+ var node_scope_group_default = memo(ScopeGroupNode);
1053
+
1054
+ //#endregion
1055
+ //#region src/components/pipeline-middleware-list.tsx
1056
+ function PipelineMiddlewareList(props) {
1057
+ const $ = c(13);
1058
+ let t0;
1059
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
1060
+ t0 = [];
1061
+ $[0] = t0;
1062
+ } else t0 = $[0];
1063
+ let middleware = t0;
1064
+ if (props.pipeline) middleware = props.pipeline.middleware;
1065
+ let t1;
1066
+ if ($[1] !== middleware) {
1067
+ t1 = middleware.map(_temp$2);
1068
+ $[1] = middleware;
1069
+ $[2] = t1;
1070
+ } else t1 = $[2];
1071
+ const components = t1;
1072
+ let t2;
1073
+ if ($[3] !== components.length || $[4] !== props.label) {
1074
+ t2 = /* @__PURE__ */ jsx(Accordion.Control, { children: /* @__PURE__ */ jsx(Badge, {
1075
+ fullWidth: true,
1076
+ variant: "light",
1077
+ rightSection: components.length,
1078
+ children: props.label
1079
+ }) });
1080
+ $[3] = components.length;
1081
+ $[4] = props.label;
1082
+ $[5] = t2;
1083
+ } else t2 = $[5];
1084
+ let t3;
1085
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
1086
+ t3 = { variant: "outline" };
1087
+ $[6] = t3;
1088
+ } else t3 = $[6];
1089
+ let t4;
1090
+ if ($[7] !== components) {
1091
+ t4 = /* @__PURE__ */ jsx(Accordion.Panel, { children: /* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(badge_list_default, {
1092
+ items: components,
1093
+ badge: t3
1094
+ }) }) });
1095
+ $[7] = components;
1096
+ $[8] = t4;
1097
+ } else t4 = $[8];
1098
+ let t5;
1099
+ if ($[9] !== props.label || $[10] !== t2 || $[11] !== t4) {
1100
+ t5 = /* @__PURE__ */ jsxs(Accordion.Item, {
1101
+ value: props.label,
1102
+ children: [t2, t4]
1103
+ }, props.label);
1104
+ $[9] = props.label;
1105
+ $[10] = t2;
1106
+ $[11] = t4;
1107
+ $[12] = t5;
1108
+ } else t5 = $[12];
1109
+ return t5;
1110
+ }
1111
+ function _temp$2(m) {
1112
+ return m.name || m.constructor.name;
1113
+ }
1114
+
1115
+ //#endregion
1116
+ //#region src/layout/systems-module-layout.tsx
1117
+ function SystemsModuleLayout(props) {
1118
+ const $ = c(26);
1119
+ const { module } = props;
1120
+ const runtimeContext = module.runtimeContext;
1121
+ const systemsModule = runtimeContext?.systemsModule ?? module;
1122
+ const error = runtimeContext?.systemContext?.runtime?.error;
1123
+ let t0;
1124
+ if ($[0] !== systemsModule.builder.pipelines) {
1125
+ t0 = systemsModule.builder.pipelines.get(SystemType.initialize);
1126
+ $[0] = systemsModule.builder.pipelines;
1127
+ $[1] = t0;
1128
+ } else t0 = $[1];
1129
+ const init = t0;
1130
+ let t1;
1131
+ if ($[2] !== systemsModule.builder.pipelines) {
1132
+ t1 = systemsModule.builder.pipelines.get(SystemType.update);
1133
+ $[2] = systemsModule.builder.pipelines;
1134
+ $[3] = t1;
1135
+ } else t1 = $[3];
1136
+ const update = t1;
1137
+ let t2;
1138
+ if ($[4] !== systemsModule.builder.pipelines) {
1139
+ t2 = systemsModule.builder.pipelines.get(SystemType.render);
1140
+ $[4] = systemsModule.builder.pipelines;
1141
+ $[5] = t2;
1142
+ } else t2 = $[5];
1143
+ const render = t2;
1144
+ let t3;
1145
+ if ($[6] !== systemsModule.builder.pipelines) {
1146
+ t3 = systemsModule.builder.pipelines.get(SystemType.sync);
1147
+ $[6] = systemsModule.builder.pipelines;
1148
+ $[7] = t3;
1149
+ } else t3 = $[7];
1150
+ const sync = t3;
1151
+ let t4;
1152
+ if ($[8] !== error) {
1153
+ t4 = error && /* @__PURE__ */ jsxs(Text, { children: ["Error: ", error] });
1154
+ $[8] = error;
1155
+ $[9] = t4;
1156
+ } else t4 = $[9];
1157
+ let t5;
1158
+ if ($[10] !== init) {
1159
+ t5 = init && /* @__PURE__ */ jsx(PipelineMiddlewareList, {
1160
+ pipeline: init,
1161
+ label: "Initialize"
1162
+ });
1163
+ $[10] = init;
1164
+ $[11] = t5;
1165
+ } else t5 = $[11];
1166
+ let t6;
1167
+ if ($[12] !== update) {
1168
+ t6 = update && /* @__PURE__ */ jsx(PipelineMiddlewareList, {
1169
+ pipeline: update,
1170
+ label: "Update"
1171
+ });
1172
+ $[12] = update;
1173
+ $[13] = t6;
1174
+ } else t6 = $[13];
1175
+ let t7;
1176
+ if ($[14] !== render) {
1177
+ t7 = render && /* @__PURE__ */ jsx(PipelineMiddlewareList, {
1178
+ pipeline: render,
1179
+ label: "Render"
1180
+ });
1181
+ $[14] = render;
1182
+ $[15] = t7;
1183
+ } else t7 = $[15];
1184
+ let t8;
1185
+ if ($[16] !== sync) {
1186
+ t8 = sync && /* @__PURE__ */ jsx(PipelineMiddlewareList, {
1187
+ pipeline: sync,
1188
+ label: "Sync"
1189
+ });
1190
+ $[16] = sync;
1191
+ $[17] = t8;
1192
+ } else t8 = $[17];
1193
+ let t9;
1194
+ if ($[18] !== t5 || $[19] !== t6 || $[20] !== t7 || $[21] !== t8) {
1195
+ t9 = /* @__PURE__ */ jsxs(Accordion, { children: [
1196
+ t5,
1197
+ t6,
1198
+ t7,
1199
+ t8
1200
+ ] });
1201
+ $[18] = t5;
1202
+ $[19] = t6;
1203
+ $[20] = t7;
1204
+ $[21] = t8;
1205
+ $[22] = t9;
1206
+ } else t9 = $[22];
1207
+ let t10;
1208
+ if ($[23] !== t4 || $[24] !== t9) {
1209
+ t10 = /* @__PURE__ */ jsxs(Fragment, { children: [t4, t9] });
1210
+ $[23] = t4;
1211
+ $[24] = t9;
1212
+ $[25] = t10;
1213
+ } else t10 = $[25];
1214
+ return t10;
1215
+ }
1216
+
1217
+ //#endregion
1218
+ //#region src/nodes/node-systems-module.tsx
1219
+ function SystemsModuleNode(t0) {
1220
+ const $ = c(12);
1221
+ const { id, data, selected, type } = t0;
1222
+ const module = useSystemsModule(data.entityType);
1223
+ let t1;
1224
+ if ($[0] !== data.entityType) {
1225
+ t1 = /* @__PURE__ */ jsx(Badge, {
1226
+ fullWidth: true,
1227
+ color: "indigo",
1228
+ variant: "transparent",
1229
+ children: /* @__PURE__ */ jsx(formatter_camel_case_default, { value: data.entityType })
1230
+ });
1231
+ $[0] = data.entityType;
1232
+ $[1] = t1;
1233
+ } else t1 = $[1];
1234
+ let t2;
1235
+ if ($[2] !== data.entityType || $[3] !== module) {
1236
+ t2 = module && /* @__PURE__ */ jsx(SystemsModuleLayout, {
1237
+ type: data.entityType,
1238
+ module
1239
+ });
1240
+ $[2] = data.entityType;
1241
+ $[3] = module;
1242
+ $[4] = t2;
1243
+ } else t2 = $[4];
1244
+ let t3;
1245
+ if ($[5] !== data || $[6] !== id || $[7] !== selected || $[8] !== t1 || $[9] !== t2 || $[10] !== type) {
1246
+ t3 = /* @__PURE__ */ jsx(NodeContainer, {
1247
+ id,
1248
+ selected,
1249
+ data,
1250
+ title: t1,
1251
+ type,
1252
+ children: t2
1253
+ });
1254
+ $[5] = data;
1255
+ $[6] = id;
1256
+ $[7] = selected;
1257
+ $[8] = t1;
1258
+ $[9] = t2;
1259
+ $[10] = type;
1260
+ $[11] = t3;
1261
+ } else t3 = $[11];
1262
+ return t3;
1263
+ }
1264
+
1265
+ //#endregion
1266
+ //#region src/nodes/node-telemetry.tsx
1267
+ function TelemetryNode(t0) {
1268
+ const $ = c(33);
1269
+ const { id, data, selected, type } = t0;
1270
+ const metrics = useMiddlewareMetrics();
1271
+ let T0;
1272
+ let T1;
1273
+ let t1;
1274
+ let t2;
1275
+ let t3;
1276
+ let t4;
1277
+ let t5;
1278
+ let t6;
1279
+ let t7;
1280
+ let t8;
1281
+ let t9;
1282
+ if ($[0] !== data || $[1] !== id || $[2] !== metrics || $[3] !== selected || $[4] !== type) {
1283
+ const visibleMetrics = metrics.slice(0, data.limit ?? 6);
1284
+ T1 = NodeContainer;
1285
+ t5 = id;
1286
+ t6 = selected;
1287
+ t7 = data;
1288
+ if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
1289
+ t8 = /* @__PURE__ */ jsx(Badge, {
1290
+ fullWidth: true,
1291
+ color: "lime",
1292
+ variant: "transparent",
1293
+ children: "Telemetry"
1294
+ });
1295
+ $[16] = t8;
1296
+ } else t8 = $[16];
1297
+ t9 = type;
1298
+ T0 = Stack;
1299
+ t1 = "xs";
1300
+ if ($[17] !== metrics.length) {
1301
+ t2 = /* @__PURE__ */ jsxs(Badge, {
1302
+ variant: "light",
1303
+ children: ["metrics ", metrics.length]
1304
+ });
1305
+ $[17] = metrics.length;
1306
+ $[18] = t2;
1307
+ } else t2 = $[18];
1308
+ t3 = visibleMetrics.length === 0 && /* @__PURE__ */ jsx(Text, {
1309
+ size: "xs",
1310
+ c: "dimmed",
1311
+ children: "No metrics recorded."
1312
+ });
1313
+ t4 = visibleMetrics.map(_temp$1);
1314
+ $[0] = data;
1315
+ $[1] = id;
1316
+ $[2] = metrics;
1317
+ $[3] = selected;
1318
+ $[4] = type;
1319
+ $[5] = T0;
1320
+ $[6] = T1;
1321
+ $[7] = t1;
1322
+ $[8] = t2;
1323
+ $[9] = t3;
1324
+ $[10] = t4;
1325
+ $[11] = t5;
1326
+ $[12] = t6;
1327
+ $[13] = t7;
1328
+ $[14] = t8;
1329
+ $[15] = t9;
1330
+ } else {
1331
+ T0 = $[5];
1332
+ T1 = $[6];
1333
+ t1 = $[7];
1334
+ t2 = $[8];
1335
+ t3 = $[9];
1336
+ t4 = $[10];
1337
+ t5 = $[11];
1338
+ t6 = $[12];
1339
+ t7 = $[13];
1340
+ t8 = $[14];
1341
+ t9 = $[15];
1342
+ }
1343
+ let t10;
1344
+ if ($[19] !== T0 || $[20] !== t1 || $[21] !== t2 || $[22] !== t3 || $[23] !== t4) {
1345
+ t10 = /* @__PURE__ */ jsxs(T0, {
1346
+ gap: t1,
1347
+ children: [
1348
+ t2,
1349
+ t3,
1350
+ t4
1351
+ ]
1352
+ });
1353
+ $[19] = T0;
1354
+ $[20] = t1;
1355
+ $[21] = t2;
1356
+ $[22] = t3;
1357
+ $[23] = t4;
1358
+ $[24] = t10;
1359
+ } else t10 = $[24];
1360
+ let t11;
1361
+ if ($[25] !== T1 || $[26] !== t10 || $[27] !== t5 || $[28] !== t6 || $[29] !== t7 || $[30] !== t8 || $[31] !== t9) {
1362
+ t11 = /* @__PURE__ */ jsx(T1, {
1363
+ id: t5,
1364
+ selected: t6,
1365
+ data: t7,
1366
+ title: t8,
1367
+ type: t9,
1368
+ children: t10
1369
+ });
1370
+ $[25] = T1;
1371
+ $[26] = t10;
1372
+ $[27] = t5;
1373
+ $[28] = t6;
1374
+ $[29] = t7;
1375
+ $[30] = t8;
1376
+ $[31] = t9;
1377
+ $[32] = t11;
1378
+ } else t11 = $[32];
1379
+ return t11;
1380
+ }
1381
+ function _temp$1(metric) {
1382
+ return /* @__PURE__ */ jsxs(Group, {
1383
+ justify: "space-between",
1384
+ gap: "xs",
1385
+ wrap: "nowrap",
1386
+ children: [/* @__PURE__ */ jsx(Text, {
1387
+ size: "xs",
1388
+ truncate: true,
1389
+ children: metric.name
1390
+ }), /* @__PURE__ */ jsxs(Badge, {
1391
+ size: "xs",
1392
+ variant: "outline",
1393
+ children: [metric.lastMs.toFixed(2), "ms"]
1394
+ })]
1395
+ }, `${metric.category}:${metric.name}`);
1396
+ }
1397
+ var node_telemetry_default = memo(TelemetryNode);
1398
+
1399
+ //#endregion
1400
+ //#region src/nodes/node-update-queue.tsx
1401
+ function UpdateQueueNode(t0) {
1402
+ const $ = c(19);
1403
+ const { id, data, selected, type } = t0;
1404
+ const queue = useUpdateQueue(data.limit ?? 10);
1405
+ let t1;
1406
+ if ($[0] !== queue?.items) {
1407
+ t1 = queue?.items ?? [];
1408
+ $[0] = queue?.items;
1409
+ $[1] = t1;
1410
+ } else t1 = $[1];
1411
+ const items = t1;
1412
+ let t2;
1413
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
1414
+ t2 = /* @__PURE__ */ jsx(Badge, {
1415
+ fullWidth: true,
1416
+ color: "orange",
1417
+ variant: "transparent",
1418
+ children: "Update Queue"
1419
+ });
1420
+ $[2] = t2;
1421
+ } else t2 = $[2];
1422
+ const t3 = queue?.size ?? 0;
1423
+ let t4;
1424
+ if ($[3] !== t3) {
1425
+ t4 = /* @__PURE__ */ jsxs(Badge, {
1426
+ variant: "light",
1427
+ children: ["queued ", t3]
1428
+ });
1429
+ $[3] = t3;
1430
+ $[4] = t4;
1431
+ } else t4 = $[4];
1432
+ let t5;
1433
+ if ($[5] !== queue) {
1434
+ t5 = !queue && /* @__PURE__ */ jsx(Text, {
1435
+ size: "xs",
1436
+ c: "dimmed",
1437
+ children: "No update queue connected."
1438
+ });
1439
+ $[5] = queue;
1440
+ $[6] = t5;
1441
+ } else t5 = $[6];
1442
+ let t6;
1443
+ if ($[7] !== items) {
1444
+ t6 = items.map(_temp);
1445
+ $[7] = items;
1446
+ $[8] = t6;
1447
+ } else t6 = $[8];
1448
+ let t7;
1449
+ if ($[9] !== t4 || $[10] !== t5 || $[11] !== t6) {
1450
+ t7 = /* @__PURE__ */ jsxs(Stack, {
1451
+ gap: "xs",
1452
+ children: [
1453
+ t4,
1454
+ t5,
1455
+ t6
1456
+ ]
1457
+ });
1458
+ $[9] = t4;
1459
+ $[10] = t5;
1460
+ $[11] = t6;
1461
+ $[12] = t7;
1462
+ } else t7 = $[12];
1463
+ let t8;
1464
+ if ($[13] !== data || $[14] !== id || $[15] !== selected || $[16] !== t7 || $[17] !== type) {
1465
+ t8 = /* @__PURE__ */ jsx(NodeContainer, {
1466
+ id,
1467
+ selected,
1468
+ data,
1469
+ title: t2,
1470
+ type,
1471
+ children: t7
1472
+ });
1473
+ $[13] = data;
1474
+ $[14] = id;
1475
+ $[15] = selected;
1476
+ $[16] = t7;
1477
+ $[17] = type;
1478
+ $[18] = t8;
1479
+ } else t8 = $[18];
1480
+ return t8;
1481
+ }
1482
+ function _temp(item, index) {
1483
+ return /* @__PURE__ */ jsxs(Group, {
1484
+ gap: "xs",
1485
+ wrap: "nowrap",
1486
+ children: [/* @__PURE__ */ jsx(Badge, {
1487
+ size: "xs",
1488
+ variant: "outline",
1489
+ children: item.type
1490
+ }), /* @__PURE__ */ jsx(Text, {
1491
+ size: "xs",
1492
+ truncate: true,
1493
+ children: EcsIdGenerator.entityProxy(item.entity)
1494
+ })]
1495
+ }, `${item.type}:${EcsIdGenerator.entityProxy(item.entity)}:${index}`);
1496
+ }
1497
+ var node_update_queue_default = memo(UpdateQueueNode);
1498
+
1499
+ //#endregion
1500
+ //#region src/templates/template-scope-group.ts
1501
+ var ScopeGroupNodeTemplate = class {
1502
+ template = {
1503
+ type: "scope-group-node",
1504
+ group: "ECS",
1505
+ data: {
1506
+ title: "Scope Group",
1507
+ isGroup: true,
1508
+ scopeId: null,
1509
+ initialSize: {
1510
+ width: 420,
1511
+ height: 260
1512
+ },
1513
+ collapsedSize: {
1514
+ width: 320,
1515
+ height: 80
1516
+ }
1517
+ },
1518
+ handles: []
1519
+ };
1520
+ };
1521
+
1522
+ //#endregion
1523
+ //#region src/templates/template-systems-module.ts
1524
+ var SystemsModuleNodeTemplate = class {
1525
+ template = {
1526
+ type: "systems-module-node",
1527
+ group: "ECS",
1528
+ data: {
1529
+ title: "Systems Module",
1530
+ entityType: null
1531
+ },
1532
+ handles: [{
1533
+ dataType: "module",
1534
+ position: Position.Left,
1535
+ connection: "target",
1536
+ disabled: true
1537
+ }]
1538
+ };
1539
+ };
1540
+
1541
+ //#endregion
1542
+ //#region src/templates/template-tool-nodes.ts
1543
+ function createToolTemplate(type, title) {
1544
+ return {
1545
+ type,
1546
+ group: "ECS Tools",
1547
+ data: {
1548
+ title,
1549
+ limit: 10,
1550
+ initialSize: {
1551
+ width: 260,
1552
+ height: 180
1553
+ }
1554
+ },
1555
+ handles: []
1556
+ };
1557
+ }
1558
+ var SchedulerNodeTemplate = class {
1559
+ template = createToolTemplate("scheduler-node", "Scheduler");
1560
+ };
1561
+ var EventTimelineNodeTemplate = class {
1562
+ template = createToolTemplate("event-timeline-node", "Event Timeline");
1563
+ };
1564
+ var TelemetryNodeTemplate = class {
1565
+ template = createToolTemplate("telemetry-node", "Telemetry");
1566
+ };
1567
+ var UpdateQueueNodeTemplate = class {
1568
+ template = createToolTemplate("update-queue-node", "Update Queue");
1569
+ };
1570
+
1571
+ //#endregion
1572
+ //#region src/abstract/node-types.ts
1573
+ let EcsNodeType = /* @__PURE__ */ function(EcsNodeType) {
1574
+ EcsNodeType["systemsModule"] = "systems-module-node";
1575
+ EcsNodeType["entity"] = "entity-node";
1576
+ EcsNodeType["scopeGroup"] = "scope-group-node";
1577
+ EcsNodeType["scheduler"] = "scheduler-node";
1578
+ EcsNodeType["eventTimeline"] = "event-timeline-node";
1579
+ EcsNodeType["telemetry"] = "telemetry-node";
1580
+ EcsNodeType["updateQueue"] = "update-queue-node";
1581
+ return EcsNodeType;
1582
+ }({});
1583
+ const ecsNodeTypes = {
1584
+ ["systems-module-node"]: SystemsModuleNode,
1585
+ ["entity-node"]: EntityNode,
1586
+ ["scope-group-node"]: node_scope_group_default,
1587
+ ["scheduler-node"]: node_scheduler_default,
1588
+ ["event-timeline-node"]: node_event_timeline_default,
1589
+ ["telemetry-node"]: node_telemetry_default,
1590
+ ["update-queue-node"]: node_update_queue_default
1591
+ };
1592
+ const ecsNodeTemplates = {
1593
+ ["entity-node"]: new EntityNodeTemplate(),
1594
+ ["systems-module-node"]: new SystemsModuleNodeTemplate(),
1595
+ ["scope-group-node"]: new ScopeGroupNodeTemplate(),
1596
+ ["scheduler-node"]: new SchedulerNodeTemplate(),
1597
+ ["event-timeline-node"]: new EventTimelineNodeTemplate(),
1598
+ ["telemetry-node"]: new TelemetryNodeTemplate(),
1599
+ ["update-queue-node"]: new UpdateQueueNodeTemplate()
1600
+ };
1601
+
1602
+ //#endregion
1603
+ export { EcsHandleDataType as A, usePipelineMetrics as C, EntityNodeTemplate as D, useEntityTypeTemplates as E, useBridgeStoreVersion as F, useEcsBridge as I, useEntityList as M, useEntity as N, createEntityTypeTemplate as O, useEntitiesInScope as P, useMiddlewareMetrics as S, useEntityUpdates as T, useUpdateQueue as _, SchedulerNodeTemplate as a, useScopeList as b, SystemsModuleNodeTemplate as c, node_telemetry_default as d, SystemsModuleNode as f, node_event_timeline_default as g, EntityNode as h, EventTimelineNodeTemplate as i, useEntityTypeDescriptors as j, EcsTemplateGroup as k, ScopeGroupNodeTemplate as l, node_scheduler_default as m, ecsNodeTemplates as n, TelemetryNodeTemplate as o, node_scope_group_default as p, ecsNodeTypes as r, UpdateQueueNodeTemplate as s, EcsNodeType as t, node_update_queue_default as u, useSystemsModule as v, useEventStream as w, useScheduler as x, useSystemsModuleList as y };
1604
+ //# sourceMappingURL=node-types-BRcpbaeR.mjs.map