@awesome-flow/ecs 0.12.0 → 0.14.1

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-WWAJ6C2l.cjs +688 -0
  6. package/dist/canvas-WWAJ6C2l.cjs.map +1 -0
  7. package/dist/canvas-cO2NAQyX.mjs +677 -0
  8. package/dist/canvas-cO2NAQyX.mjs.map +1 -0
  9. package/dist/context/index.cjs +501 -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 +496 -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-2l9Vdh2S.d.mts +54 -0
  28. package/dist/index-2l9Vdh2S.d.mts.map +1 -0
  29. package/dist/index-BFqa6aqs.d.mts +99 -0
  30. package/dist/index-BFqa6aqs.d.mts.map +1 -0
  31. package/dist/index-BTs_8SY-.d.cts +20 -0
  32. package/dist/index-BTs_8SY-.d.cts.map +1 -0
  33. package/dist/index-C3QIukqX.d.cts +157 -0
  34. package/dist/index-C3QIukqX.d.cts.map +1 -0
  35. package/dist/index-CPTq4oOA.d.cts +67 -0
  36. package/dist/index-CPTq4oOA.d.cts.map +1 -0
  37. package/dist/index-CyeezgDI.d.mts +20 -0
  38. package/dist/index-CyeezgDI.d.mts.map +1 -0
  39. package/dist/index-D9zIjQH9.d.mts +1 -0
  40. package/dist/index-DLoAMD9J.d.cts +1 -0
  41. package/dist/index-Ht3fVcsn.d.cts +54 -0
  42. package/dist/index-Ht3fVcsn.d.cts.map +1 -0
  43. package/dist/index-edb-X9uc.d.mts +157 -0
  44. package/dist/index-edb-X9uc.d.mts.map +1 -0
  45. package/dist/index-pInK6VDK.d.cts +99 -0
  46. package/dist/index-pInK6VDK.d.cts.map +1 -0
  47. package/dist/index-vf1CSWta.d.mts +67 -0
  48. package/dist/index-vf1CSWta.d.mts.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-Bryks8-5.d.cts +45 -0
  58. package/dist/node-props-Bryks8-5.d.cts.map +1 -0
  59. package/dist/node-props-Cusf_qtn.d.mts +45 -0
  60. package/dist/node-props-Cusf_qtn.d.mts.map +1 -0
  61. package/dist/node-systems-module-B8aKhvBo.d.mts +22 -0
  62. package/dist/node-systems-module-B8aKhvBo.d.mts.map +1 -0
  63. package/dist/node-systems-module-Dx-hISbg.d.cts +22 -0
  64. package/dist/node-systems-module-Dx-hISbg.d.cts.map +1 -0
  65. package/dist/node-types-CNO_-52M.cjs +1866 -0
  66. package/dist/node-types-CNO_-52M.cjs.map +1 -0
  67. package/dist/node-types-l0GwV0mz.mjs +1651 -0
  68. package/dist/node-types-l0GwV0mz.mjs.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-CiwTFU-N.d.cts +35 -0
  74. package/dist/template-tool-nodes-CiwTFU-N.d.cts.map +1 -0
  75. package/dist/template-tool-nodes-DWhekyQg.d.mts +35 -0
  76. package/dist/template-tool-nodes-DWhekyQg.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,67 @@
1
+ import { n as EntityNodeData, s as EcsEntityTypeDescriptor } from "./node-props-Cusf_qtn.mjs";
2
+ import { _ as PipelineMetricsSummary, a as EcsFlowContextProps, d as EcsEventStreamFilter, f as EcsMetricsFilter, g as EntityUpdateCounts, h as EcsUpdateQueueSnapshot, l as EcsBridgeStoreName, m as EcsScopeSummary, p as EcsSchedulerSnapshot, u as EcsEventLogEntry } from "./index-edb-X9uc.mjs";
3
+ import { ISystemsModule, SystemType } from "@awesome-ecs/abstract/systems";
4
+ import * as _$_awesome_flow_core_abstract0 from "@awesome-flow/core/abstract";
5
+ import { EntityTypeUid, EntityUid, IEntity, IEntityProxy } from "@awesome-ecs/abstract/entities";
6
+ import { PipelineCategoryName } from "@awesome-ecs/abstract/factories";
7
+ import * as _$_awesome_ecs_abstract_utils0 from "@awesome-ecs/abstract/utils";
8
+
9
+ //#region src/abstract/handle-types.d.ts
10
+ declare enum EcsHandleDataType {
11
+ proxy = "proxy",
12
+ module = "module"
13
+ }
14
+ //#endregion
15
+ //#region src/abstract/templates.d.ts
16
+ declare enum EcsTemplateGroup {
17
+ ecs = "ECS",
18
+ entities = "ECS Entities",
19
+ tools = "ECS Tools"
20
+ }
21
+ //#endregion
22
+ //#region src/hooks/use-ecs-bridge.d.ts
23
+ declare function useEcsBridge(): EcsFlowContextProps;
24
+ declare function useBridgeStoreVersion(storeName: EcsBridgeStoreName): number;
25
+ //#endregion
26
+ //#region src/hooks/use-entities-in-scope.d.ts
27
+ declare function useEntitiesInScope<TEntity extends IEntity = IEntity>(scopeId: string | undefined): TEntity[];
28
+ //#endregion
29
+ //#region src/hooks/use-entity.d.ts
30
+ declare function useEntity<TEntity extends IEntity = IEntity>(proxy: IEntityProxy | undefined): TEntity | undefined;
31
+ //#endregion
32
+ //#region src/hooks/use-entity-list.d.ts
33
+ declare function useEntityList<TEntity extends IEntity = IEntity>(type?: EntityTypeUid): TEntity[];
34
+ //#endregion
35
+ //#region src/hooks/use-entity-type-descriptors.d.ts
36
+ declare function useEntityTypeDescriptors(): EcsEntityTypeDescriptor[];
37
+ //#endregion
38
+ //#region src/hooks/use-entity-type-templates.d.ts
39
+ declare function useEntityTypeTemplates(enabled?: boolean): _$_awesome_flow_core_abstract0.NodeTemplate<EntityNodeData>[];
40
+ //#endregion
41
+ //#region src/hooks/use-entity-updates.d.ts
42
+ declare function useEntityUpdates(target: IEntityProxy | EntityUid): EntityUpdateCounts;
43
+ //#endregion
44
+ //#region src/hooks/use-event-stream.d.ts
45
+ declare function useEventStream(filter?: EcsEventStreamFilter): EcsEventLogEntry[];
46
+ //#endregion
47
+ //#region src/hooks/use-pipeline-metrics.d.ts
48
+ declare function usePipelineMetrics(entityType?: EntityTypeUid, phase?: SystemType | string): PipelineMetricsSummary;
49
+ declare function useMiddlewareMetrics(filter?: EcsMetricsFilter & {
50
+ category?: PipelineCategoryName;
51
+ }): _$_awesome_ecs_abstract_utils0.MiddlewareMetricsSummary[];
52
+ //#endregion
53
+ //#region src/hooks/use-scheduler.d.ts
54
+ declare function useScheduler(): EcsSchedulerSnapshot;
55
+ //#endregion
56
+ //#region src/hooks/use-scope-list.d.ts
57
+ declare function useScopeList(): EcsScopeSummary[];
58
+ //#endregion
59
+ //#region src/hooks/use-systems-module.d.ts
60
+ declare function useSystemsModule<TEntity extends IEntity = IEntity>(type: EntityTypeUid | undefined): ISystemsModule<TEntity> | undefined;
61
+ declare function useSystemsModuleList(): ReadonlyMap<EntityTypeUid, ISystemsModule<IEntity>>;
62
+ //#endregion
63
+ //#region src/hooks/use-update-queue.d.ts
64
+ declare function useUpdateQueue(limit?: number): EcsUpdateQueueSnapshot;
65
+ //#endregion
66
+ export { EcsTemplateGroup as _, useScheduler as a, useEventStream as c, useEntityTypeDescriptors as d, useEntityList as f, useEcsBridge as g, useBridgeStoreVersion as h, useScopeList as i, useEntityUpdates as l, useEntitiesInScope as m, useSystemsModule as n, useMiddlewareMetrics as o, useEntity as p, useSystemsModuleList as r, usePipelineMetrics as s, useUpdateQueue as t, useEntityTypeTemplates as u, EcsHandleDataType as v };
67
+ //# sourceMappingURL=index-vf1CSWta.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-vf1CSWta.d.mts","names":[],"sources":["../src/abstract/handle-types.ts","../src/abstract/templates.ts","../src/hooks/use-ecs-bridge.ts","../src/hooks/use-entities-in-scope.ts","../src/hooks/use-entity.ts","../src/hooks/use-entity-list.ts","../src/hooks/use-entity-type-descriptors.ts","../src/hooks/use-entity-type-templates.ts","../src/hooks/use-entity-updates.ts","../src/hooks/use-event-stream.ts","../src/hooks/use-pipeline-metrics.ts","../src/hooks/use-scheduler.ts","../src/hooks/use-scope-list.ts","../src/hooks/use-systems-module.ts","../src/hooks/use-update-queue.ts"],"mappings":";;;;;;;;;aAAY,iBAAA;EACV,KAAA;EACA,MAAM;AAAA;;;aCFI,gBAAA;EACV,GAAA;EACA,QAAA;EACA,KAAA;AAAA;;;iBCCc,YAAA,CAAA,GAAY,mBAAA;AAAA,iBAUZ,qBAAA,CAAsB,SAA6B,EAAlB,kBAAkB;;;iBCVnD,kBAAA,iBAAmC,OAAA,GAAU,OAAA,CAAA,CAC3D,OAAA,uBACC,OAAA;;;iBCDa,SAAA,iBAA0B,OAAA,GAAU,OAAA,CAAA,CAClD,KAAA,EAAO,YAAA,eACN,OAAA;;;iBCHa,aAAA,iBAA8B,OAAA,GAAU,OAAA,CAAA,CACtD,IAAA,GAAO,aAAA,GACN,OAAA;;;iBCHa,wBAAA,CAAA,GAAwB,uBAAA;;;iBCCxB,sBAAA,CAAuB,OAAA,aAAc,8BAAA,CAAA,YAAA,CAAf,cAAA;;;iBCCtB,gBAAA,CAAiB,MAAA,EAAQ,YAAA,GAAe,SAAA,GAAY,kBAAA;;;iBCDpD,cAAA,CAAe,MAAA,GAAS,oBAAA,GAAoB,gBAAA;;;iBCG5C,kBAAA,CAAmB,UAAA,GAAa,aAAA,EAAe,KAAA,GAAQ,UAAA,YAAU,sBAAA;AAAA,iBAUjE,oBAAA,CAAqB,MAAA,GAAS,gBAAA;EAAqB,QAAA,GAAW,oBAAA;AAAA,IAAoB,8BAAA,CAAE,wBAAA;;;iBCdpF,YAAA,CAAA,GAAY,oBAAA;;;iBCAZ,YAAA,CAAA,GAAY,eAAA;;;iBCEZ,gBAAA,iBAAiC,OAAA,GAAU,OAAA,CAAA,CACzD,IAAA,EAAM,aAAA,eACL,cAAA,CAAe,OAAA;AAAA,iBAaF,oBAAA,CAAA,GAAwB,WAAA,CAAY,aAAA,EAAe,cAAA,CAAe,OAAA;;;iBCjBlE,cAAA,CAAe,KAAA,YAAD,sBAAe"}
package/dist/index.cjs CHANGED
@@ -1,532 +1,56 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- let react = require("react");
3
- let _awesome_flow_core_layout = require("@awesome-flow/core/layout");
4
- let _mantine_core = require("@mantine/core");
5
- let _mantine_hooks = require("@mantine/hooks");
6
- let react_inspector = require("react-inspector");
7
- let react_jsx_runtime = require("react/jsx-runtime");
8
- let _awesome_ecs_abstract_systems = require("@awesome-ecs/abstract/systems");
9
- let _xyflow_react = require("@xyflow/react");
10
- let _awesome_flow_core_canvas = require("@awesome-flow/core/canvas");
11
- let _awesome_flow_core_abstract = require("@awesome-flow/core/abstract");
12
- let _awesome_flow_core_hooks = require("@awesome-flow/core/hooks");
13
-
14
- //#region src/abstract/ecs-flow-context.ts
15
- const EcsFlowContext = (0, react.createContext)(null);
16
-
17
- //#endregion
18
- //#region src/utils/id-generator.ts
19
- var EcsIdGenerator = class {
20
- static entityProxy(proxy) {
21
- return `${proxy.entityType}:${proxy.entityUid}`;
22
- }
23
- };
24
-
25
- //#endregion
26
- //#region src/abstract/ecs-flow-repository.ts
27
- var EcsFlowRepository = class {
28
- nodes;
29
- constructor() {
30
- this.nodes = /* @__PURE__ */ new Map();
31
- }
32
- get sizeNodes() {
33
- return this.nodes.size;
34
- }
35
- addSystemModuleNode(node) {
36
- this.nodes.set(node.data.entityType.toString(), node);
37
- }
38
- getSystemModuleNode(entityType) {
39
- return this.nodes.get(entityType.toString());
40
- }
41
- addEntityNode(node) {
42
- this.nodes.set(EcsIdGenerator.entityProxy(node.data.entity), node);
43
- }
44
- getEntityNode(entity) {
45
- return this.nodes.get(EcsIdGenerator.entityProxy(entity));
46
- }
47
- listAllNodes() {
48
- return Array.from(this.nodes.values());
49
- }
50
- };
51
-
52
- //#endregion
53
- //#region src/abstract/handle-types.ts
54
- let EcsHandleDataType = /* @__PURE__ */ function(EcsHandleDataType) {
55
- EcsHandleDataType["proxy"] = "proxy";
56
- EcsHandleDataType["module"] = "module";
57
- return EcsHandleDataType;
58
- }({});
59
-
60
- //#endregion
61
- //#region src/components/formatter-camel-case.tsx
62
- function CamelCaseFormatter(props) {
63
- return (0, react.useMemo)(() => props.value?.toString().replace(/([a-z])([A-Z])/g, "$1 $2"), [props.value]);
64
- }
65
- var formatter_camel_case_default = (0, react.memo)(CamelCaseFormatter);
66
-
67
- //#endregion
68
- //#region src/components/object-inspector.tsx
69
- function ObjectInspector(props) {
70
- const colorScheme = (0, _mantine_core.useComputedColorScheme)();
71
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_inspector.Inspector, {
72
- table: false,
73
- theme: (0, react.useMemo)(() => colorScheme === "dark" ? "chromeDark" : "chromeLight", [colorScheme]),
74
- data: props.data
75
- });
76
- }
77
- var object_inspector_default = (0, react.memo)(ObjectInspector);
78
-
79
- //#endregion
80
- //#region src/components/entity-component-inspector.tsx
81
- function EntityComponentInspector(props) {
82
- const [opened, { toggle }] = (0, _mantine_hooks.useDisclosure)(false);
83
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Box, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Button, {
84
- variant: "outline",
85
- size: "xs",
86
- onClick: toggle,
87
- color: (0, react.useMemo)(() => opened ? "light" : "indigo", [opened]),
88
- fullWidth: true,
89
- children: props.component.componentType
90
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Collapse, {
91
- in: opened,
92
- children: opened && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(object_inspector_default, { data: props.component })
93
- })] });
94
- }
95
- var entity_component_inspector_default = (0, react.memo)(EntityComponentInspector);
96
-
97
- //#endregion
98
- //#region src/components/entity-component-list.tsx
99
- function EntityComponentList(props) {
100
- const components = Array.from(props.entity.components.values());
101
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Accordion.Item, {
102
- value: "components",
103
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Accordion.Control, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Badge, {
104
- fullWidth: true,
105
- variant: "light",
106
- rightSection: components.length,
107
- children: "Components"
108
- }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Accordion.Panel, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Stack, { children: components.map((c, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(entity_component_inspector_default, { component: c }, i)) }) })]
109
- }, "components");
110
- }
111
- var entity_component_list_default = (0, react.memo)(EntityComponentList);
112
-
113
- //#endregion
114
- //#region src/components/badge-list.tsx
115
- function BadgeList(props) {
116
- return props.items.map((value, i) => {
117
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Badge, {
118
- ...props.badge || [],
119
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(formatter_camel_case_default, { value })
120
- }, i);
121
- });
122
- }
123
- var badge_list_default = (0, react.memo)(BadgeList);
124
-
125
- //#endregion
126
- //#region src/components/entity-proxy-list.tsx
127
- function EntityProxyList(props) {
128
- const { entityProxyRepository } = (0, react.useContext)(EcsFlowContext);
129
- const items = Array.from(entityProxyRepository.getAll(props.entity.myProxy).values()).flat().map((p) => EcsIdGenerator.entityProxy(p));
130
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Accordion.Item, {
131
- value: "proxies",
132
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Accordion.Control, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Badge, {
133
- fullWidth: true,
134
- variant: "light",
135
- rightSection: items.length,
136
- children: "Proxies"
137
- }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Accordion.Panel, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Stack, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(badge_list_default, {
138
- items,
139
- badge: { variant: "outline" }
140
- }) }) })]
141
- }, "proxies");
142
- }
143
- var entity_proxy_list_default = (0, react.memo)(EntityProxyList);
144
-
145
- //#endregion
146
- //#region src/components/entity-subscription-list.tsx
147
- function EntitySubscriptionList(props) {
148
- const { entityEventsManager } = (0, react.useContext)(EcsFlowContext);
149
- const subscriptions = entityEventsManager.getSubscriptionsForEntity(props.entity.myProxy);
150
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Accordion.Item, {
151
- value: "subscriptions",
152
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Accordion.Control, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Badge, {
153
- fullWidth: true,
154
- variant: "light",
155
- rightSection: subscriptions.length,
156
- children: "Events"
157
- }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Accordion.Panel, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Stack, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(badge_list_default, {
158
- items: subscriptions,
159
- badge: { variant: "outline" }
160
- }) }) })]
161
- }, "subscriptions");
162
- }
163
- var entity_subscription_list_default = (0, react.memo)(EntitySubscriptionList);
164
-
165
- //#endregion
166
- //#region src/components/entity-update-counter.tsx
167
- function EntityUpdateCounter(props) {
168
- const [, setRefresh] = (0, react.useState)(0);
169
- const { entityUpdateCounter } = (0, react.useContext)(EcsFlowContext);
170
- const updates = entityUpdateCounter.getUpdateCount(props.entityUid) || 0;
171
- const removes = entityUpdateCounter.getRemoveCount(props.entityUid) || 0;
172
- (0, react.useEffect)(() => {
173
- const interval = setInterval(() => {
174
- setRefresh((refresh) => refresh + 1);
175
- }, 1e3);
176
- return () => {
177
- clearInterval(interval);
178
- };
179
- }, []);
180
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Badge, {
181
- variant: "light",
182
- children: updates
183
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Badge, {
184
- variant: "light",
185
- color: "orange",
186
- children: removes
187
- })] });
188
- }
189
- var entity_update_counter_default = (0, react.memo)(EntityUpdateCounter);
190
-
191
- //#endregion
192
- //#region src/layout/entity-layout.tsx
193
- function EntityLayout({ entity }) {
194
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
195
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Group, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Badge, {
196
- variant: "outline",
197
- color: "orange",
198
- children: entity.myProxy.entityUid
199
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(entity_update_counter_default, { entityUid: entity.myProxy.entityUid })] }),
200
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Divider, { my: 5 }),
201
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Accordion, { children: [
202
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(entity_component_list_default, { entity }),
203
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(entity_proxy_list_default, { entity }),
204
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(entity_subscription_list_default, { entity })
205
- ] })
206
- ] });
207
- }
208
-
209
- //#endregion
210
- //#region src/nodes/node-entity.tsx
211
- function EntityNode({ id, data, selected, type }) {
212
- const { entityRepository } = (0, react.useContext)(EcsFlowContext);
213
- const entity = (0, react.useMemo)(() => entityRepository.get(data.entity), [data.entity, entityRepository]);
214
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_layout.NodeContainer, {
215
- id,
216
- selected,
217
- data,
218
- title: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Badge, {
219
- fullWidth: true,
220
- variant: "transparent",
221
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(formatter_camel_case_default, { value: entity.myProxy.entityType })
222
- }),
223
- type,
224
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(EntityLayout, { entity })
225
- });
226
- }
227
-
228
- //#endregion
229
- //#region src/components/pipeline-middleware-list.tsx
230
- function PipelineMiddlewareList(props) {
231
- let middleware = [];
232
- if (props.pipeline) middleware = props.pipeline["middleware"];
233
- const components = middleware.map((m) => {
234
- return m.name || m.constructor.name;
235
- });
236
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Accordion.Item, {
237
- value: props.label,
238
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Accordion.Control, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Badge, {
239
- fullWidth: true,
240
- variant: "light",
241
- rightSection: components.length,
242
- children: props.label
243
- }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Accordion.Panel, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Stack, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(badge_list_default, {
244
- items: components,
245
- badge: { variant: "outline" }
246
- }) }) })]
247
- }, props.label);
248
- }
249
-
250
- //#endregion
251
- //#region src/layout/systems-module-layout.tsx
252
- function SystemsModuleLayout(props) {
253
- const { module } = props;
254
- const { systemContext, systemsModule } = module["runtimeContext"];
255
- const error = systemContext.runtime.error;
256
- const init = systemsModule.pipelines.get(_awesome_ecs_abstract_systems.SystemType.initialize);
257
- const update = systemsModule.pipelines.get(_awesome_ecs_abstract_systems.SystemType.update);
258
- const render = systemsModule.pipelines.get(_awesome_ecs_abstract_systems.SystemType.render);
259
- const sync = systemsModule.pipelines.get(_awesome_ecs_abstract_systems.SystemType.sync);
260
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Text, { children: ["Error?: ", error] }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mantine_core.Accordion, { children: [
261
- init && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PipelineMiddlewareList, {
262
- pipeline: init,
263
- label: "Initialize"
264
- }),
265
- update && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PipelineMiddlewareList, {
266
- pipeline: update,
267
- label: "Update"
268
- }),
269
- render && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PipelineMiddlewareList, {
270
- pipeline: render,
271
- label: "Render"
272
- }),
273
- sync && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PipelineMiddlewareList, {
274
- pipeline: sync,
275
- label: "Sync"
276
- })
277
- ] })] });
278
- }
279
-
280
- //#endregion
281
- //#region src/nodes/node-systems-module.tsx
282
- function SystemsModuleNode({ id, data, selected, type }) {
283
- const { systemsModuleRepository } = (0, react.useContext)(EcsFlowContext);
284
- const module = systemsModuleRepository.get(data.entityType);
285
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_layout.NodeContainer, {
286
- id,
287
- selected,
288
- data,
289
- title: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mantine_core.Badge, {
290
- fullWidth: true,
291
- color: "indigo",
292
- variant: "transparent",
293
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(formatter_camel_case_default, { value: data.entityType })
294
- }),
295
- type,
296
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SystemsModuleLayout, {
297
- type: data.entityType,
298
- module
299
- })
300
- });
301
- }
302
-
303
- //#endregion
304
- //#region src/abstract/templates.ts
305
- let EcsTemplateGroup = /* @__PURE__ */ function(EcsTemplateGroup) {
306
- EcsTemplateGroup["ecs"] = "ECS";
307
- return EcsTemplateGroup;
308
- }({});
309
-
310
- //#endregion
311
- //#region src/templates/template-entity-node.ts
312
- var EntityNodeTemplate = class {
313
- template = {
314
- type: EcsNodeType.entity,
315
- group: EcsTemplateGroup.ecs,
316
- data: {
317
- title: "Entity",
318
- entity: null
319
- },
320
- handles: [{
321
- dataType: EcsHandleDataType.proxy,
322
- position: _xyflow_react.Position.Left,
323
- connection: "target",
324
- disabled: true
325
- }, {
326
- dataType: EcsHandleDataType.proxy,
327
- position: _xyflow_react.Position.Right,
328
- connection: "source",
329
- disabled: true
330
- }]
331
- };
332
- };
333
-
334
- //#endregion
335
- //#region src/templates/template-systems-module.ts
336
- var SystemsModuleNodeTemplate = class {
337
- template = {
338
- type: EcsNodeType.systemsModule,
339
- group: EcsTemplateGroup.ecs,
340
- data: {
341
- title: "Systems Module",
342
- entityType: null
343
- },
344
- handles: [{
345
- dataType: EcsHandleDataType.module,
346
- position: _xyflow_react.Position.Left,
347
- connection: "target",
348
- disabled: true
349
- }]
350
- };
351
- };
352
-
353
- //#endregion
354
- //#region src/abstract/node-types.ts
355
- let EcsNodeType = /* @__PURE__ */ function(EcsNodeType) {
356
- EcsNodeType["systemsModule"] = "systems-module-node";
357
- EcsNodeType["entity"] = "entity-node";
358
- return EcsNodeType;
359
- }({});
360
- const ecsNodeTypes = {
361
- [EcsNodeType.systemsModule]: SystemsModuleNode,
362
- [EcsNodeType.entity]: EntityNode
363
- };
364
- const ecsNodeTemplates = {
365
- [EcsNodeType.entity]: new EntityNodeTemplate(),
366
- [EcsNodeType.systemsModule]: new SystemsModuleNodeTemplate()
367
- };
368
-
369
- //#endregion
370
- //#region src/flow/flow-ecs-edge-modules.tsx
371
- function FlowEcsEdgeModules(props) {
372
- const { nodesToConnect } = props;
373
- const onConnect = (0, _awesome_flow_core_hooks.useFlowStore)((state) => state.onConnect);
374
- const { ecsFlowRepository, entityRepository } = (0, react.useContext)(EcsFlowContext);
375
- (0, react.useEffect)(() => {
376
- for (const node of nodesToConnect) {
377
- const sourceHandle = node.data.handles.find((h) => h.connection === "source");
378
- const entity = entityRepository.get(node.data.entity);
379
- const systemModule = ecsFlowRepository.getSystemModuleNode(entity.myProxy.entityType);
380
- const targetHandle = systemModule?.data.handles.find((h) => h.connection === "target");
381
- if (targetHandle) onConnect({
382
- source: node.id,
383
- target: systemModule.id,
384
- sourceHandle: sourceHandle.handleId,
385
- targetHandle: targetHandle.handleId
386
- });
387
- }
388
- }, [
389
- nodesToConnect,
390
- ecsFlowRepository,
391
- entityRepository,
392
- onConnect
393
- ]);
394
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, {});
395
- }
396
-
397
- //#endregion
398
- //#region src/flow/flow-ecs-edge-proxies.tsx
399
- function FlowEcsEdgeProxies(props) {
400
- const { nodesToConnect } = props;
401
- const onConnect = (0, _awesome_flow_core_hooks.useFlowStore)((state) => state.onConnect);
402
- const { ecsFlowRepository, entityProxyRepository, entityRepository } = (0, react.useContext)(EcsFlowContext);
403
- (0, react.useEffect)(() => {
404
- for (const node of nodesToConnect) {
405
- const sourceHandle = node.data.handles.find((h) => h.connection === "source");
406
- const entity = entityRepository.get(node.data.entity);
407
- const proxies = Array.from(entityProxyRepository.getAll(entity.myProxy).values()).flat();
408
- for (const proxy of proxies) {
409
- const proxyNode = ecsFlowRepository.getEntityNode(proxy);
410
- if (proxyNode) {
411
- const targetHandle = proxyNode.data.handles.find((h) => h.connection === "target");
412
- onConnect({
413
- source: node.id,
414
- target: proxyNode.id,
415
- sourceHandle: sourceHandle.handleId,
416
- targetHandle: targetHandle.handleId
417
- });
418
- }
419
- }
420
- }
421
- }, [
422
- nodesToConnect,
423
- ecsFlowRepository,
424
- entityRepository,
425
- entityProxyRepository,
426
- onConnect
427
- ]);
428
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, {});
429
- }
430
-
431
- //#endregion
432
- //#region src/flow/flow-ecs-entities.tsx
433
- function FlowEcsEntities() {
434
- const { nodeFactory } = (0, react.useContext)(_awesome_flow_core_abstract.FlowContext);
435
- const addNodes = (0, _awesome_flow_core_hooks.useFlowStore)((state) => state.addNodes);
436
- const { ecsFlowRepository, entityRepository } = (0, react.useContext)(EcsFlowContext);
437
- const [entityNodes, setEntityNodes] = (0, react.useState)([]);
438
- (0, react.useEffect)(() => {
439
- const entities = entityRepository.listAll();
440
- const nodes = [];
441
- for (const entity of entities) {
442
- if (ecsFlowRepository.getEntityNode(entity.myProxy)) continue;
443
- const node = nodeFactory.createNodeFromType(EcsNodeType.entity);
444
- node.data.entity = entity.myProxy;
445
- node.position = {
446
- x: 0,
447
- y: 0
448
- };
449
- ecsFlowRepository.addEntityNode(node);
450
- nodes.push(node);
451
- }
452
- setEntityNodes(nodes);
453
- addNodes(nodes);
454
- }, [
455
- entityRepository,
456
- entityRepository.size,
457
- ecsFlowRepository,
458
- nodeFactory,
459
- addNodes
460
- ]);
461
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(FlowEcsEdgeProxies, { nodesToConnect: entityNodes }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FlowEcsEdgeModules, { nodesToConnect: entityNodes })] });
462
- }
463
-
464
- //#endregion
465
- //#region src/flow/flow-ecs-modules.tsx
466
- function FlowEcsModules() {
467
- const { nodeFactory } = (0, react.useContext)(_awesome_flow_core_abstract.FlowContext);
468
- const addNodes = (0, _awesome_flow_core_hooks.useFlowStore)((state) => state.addNodes);
469
- const { ecsFlowRepository, systemsModuleRepository } = (0, react.useContext)(EcsFlowContext);
470
- (0, react.useEffect)(() => {
471
- const modules = Array.from(systemsModuleRepository.list()).filter((m) => !!m);
472
- const keys = Array.from(modules.values()).map((v) => v[0]);
473
- const nodesToAdd = [];
474
- for (const element of keys) {
475
- if (ecsFlowRepository.getSystemModuleNode(element)) continue;
476
- const node = nodeFactory.createNodeFromType(EcsNodeType.systemsModule);
477
- node.data.entityType = element;
478
- node.position = {
479
- x: 0,
480
- y: 0
481
- };
482
- ecsFlowRepository.addSystemModuleNode(node);
483
- nodesToAdd.push(node);
484
- }
485
- if (nodesToAdd.length) addNodes(nodesToAdd);
486
- }, [
487
- nodeFactory,
488
- addNodes,
489
- ecsFlowRepository,
490
- ecsFlowRepository.sizeNodes,
491
- systemsModuleRepository,
492
- systemsModuleRepository.size
493
- ]);
494
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, {});
495
- }
496
-
497
- //#endregion
498
- //#region src/flow/flow-ecs-state.tsx
499
- function FlowEcsState(props) {
500
- const [, setUpdates] = (0, react.useState)(0);
501
- const [refreshLayout, setRefreshLayout] = (0, react.useState)(false);
502
- const { ecsFlowRepository } = (0, react.useContext)(EcsFlowContext);
503
- (0, react.useEffect)(() => {
504
- setRefreshLayout(true);
505
- }, [ecsFlowRepository.sizeNodes]);
506
- (0, react.useEffect)(() => {
507
- setInterval(() => {
508
- setUpdates((updates) => updates + 1);
509
- }, 1e3);
510
- }, []);
511
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
512
- props.showSystemModules && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FlowEcsModules, {}),
513
- props.showEntities && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FlowEcsEntities, {}),
514
- props.autoLayout && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_canvas.FlowAutoLayout, { refreshLayout })
515
- ] });
516
- }
517
- var flow_ecs_state_default = (0, react.memo)(FlowEcsState);
518
-
519
- //#endregion
520
- exports.EcsFlowContext = EcsFlowContext;
521
- exports.EcsFlowRepository = EcsFlowRepository;
522
- exports.EcsHandleDataType = EcsHandleDataType;
523
- exports.EcsNodeType = EcsNodeType;
524
- exports.EcsTemplateGroup = EcsTemplateGroup;
525
- exports.EntityNode = EntityNode;
526
- exports.EntityNodeTemplate = EntityNodeTemplate;
527
- exports.FlowEcsState = flow_ecs_state_default;
528
- exports.SystemsModuleNode = SystemsModuleNode;
529
- exports.SystemsModuleNodeTemplate = SystemsModuleNodeTemplate;
530
- exports.ecsNodeTemplates = ecsNodeTemplates;
531
- exports.ecsNodeTypes = ecsNodeTypes;
532
- //# sourceMappingURL=index.cjs.map
2
+ const require_id_generator = require('./id-generator-C2_8g29M.cjs');
3
+ const require_node_types = require('./node-types-CNO_-52M.cjs');
4
+ const require_entity_component_inspector = require('./entity-component-inspector-VlwcaUqy.cjs');
5
+ const require_canvas = require('./canvas-WWAJ6C2l.cjs');
6
+ const require_context_index = require('./context/index.cjs');
7
+ require('./inspectors/index.cjs');
8
+ require('./nodes/index.cjs');
9
+ require('./templates/index.cjs');
10
+
11
+ exports.ComponentInspector = require_entity_component_inspector.entity_component_inspector_default;
12
+ exports.EcsBridge = require_context_index.EcsBridge;
13
+ exports.EcsCanvasProvider = require_context_index.EcsCanvasProvider;
14
+ exports.EcsFlowContext = require_id_generator.EcsFlowContext;
15
+ exports.EcsFlowRepository = require_context_index.EcsFlowRepository;
16
+ exports.EcsHandleDataType = require_node_types.EcsHandleDataType;
17
+ exports.EcsNodeType = require_node_types.EcsNodeType;
18
+ exports.EcsTemplateGroup = require_node_types.EcsTemplateGroup;
19
+ exports.EntityComponentInspector = require_entity_component_inspector.entity_component_inspector_default;
20
+ exports.EntityNode = require_node_types.EntityNode;
21
+ exports.EntityNodeTemplate = require_node_types.EntityNodeTemplate;
22
+ exports.EventTimelineNode = require_node_types.node_event_timeline_default;
23
+ exports.EventTimelineNodeTemplate = require_node_types.EventTimelineNodeTemplate;
24
+ exports.FlowEcsCanvas = require_canvas.FlowEcsCanvas;
25
+ exports.FlowEcsState = require_canvas.flow_ecs_state_default;
26
+ exports.ObjectInspector = require_entity_component_inspector.object_inspector_default;
27
+ exports.SchedulerNode = require_node_types.node_scheduler_default;
28
+ exports.SchedulerNodeTemplate = require_node_types.SchedulerNodeTemplate;
29
+ exports.ScopeGroupNode = require_node_types.node_scope_group_default;
30
+ exports.ScopeGroupNodeTemplate = require_node_types.ScopeGroupNodeTemplate;
31
+ exports.SystemsModuleNode = require_node_types.SystemsModuleNode;
32
+ exports.SystemsModuleNodeTemplate = require_node_types.SystemsModuleNodeTemplate;
33
+ exports.TelemetryNode = require_node_types.node_telemetry_default;
34
+ exports.TelemetryNodeTemplate = require_node_types.TelemetryNodeTemplate;
35
+ exports.UpdateQueueNode = require_node_types.node_update_queue_default;
36
+ exports.UpdateQueueNodeTemplate = require_node_types.UpdateQueueNodeTemplate;
37
+ exports.createEcsBridge = require_context_index.createEcsBridge;
38
+ exports.createEntityTypeTemplate = require_node_types.createEntityTypeTemplate;
39
+ exports.ecsNodeTemplates = require_node_types.ecsNodeTemplates;
40
+ exports.ecsNodeTypes = require_node_types.ecsNodeTypes;
41
+ exports.useBridgeStoreVersion = require_node_types.useBridgeStoreVersion;
42
+ exports.useEcsBridge = require_node_types.useEcsBridge;
43
+ exports.useEntitiesInScope = require_node_types.useEntitiesInScope;
44
+ exports.useEntity = require_node_types.useEntity;
45
+ exports.useEntityList = require_node_types.useEntityList;
46
+ exports.useEntityTypeDescriptors = require_node_types.useEntityTypeDescriptors;
47
+ exports.useEntityTypeTemplates = require_node_types.useEntityTypeTemplates;
48
+ exports.useEntityUpdates = require_node_types.useEntityUpdates;
49
+ exports.useEventStream = require_node_types.useEventStream;
50
+ exports.useMiddlewareMetrics = require_node_types.useMiddlewareMetrics;
51
+ exports.usePipelineMetrics = require_node_types.usePipelineMetrics;
52
+ exports.useScheduler = require_node_types.useScheduler;
53
+ exports.useScopeList = require_node_types.useScopeList;
54
+ exports.useSystemsModule = require_node_types.useSystemsModule;
55
+ exports.useSystemsModuleList = require_node_types.useSystemsModuleList;
56
+ exports.useUpdateQueue = require_node_types.useUpdateQueue;