@awesome-flow/ecs 0.14.1 → 0.15.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 (83) hide show
  1. package/dist/canvas/index.cjs +1 -1
  2. package/dist/canvas/index.d.cts +1 -1
  3. package/dist/canvas/index.d.mts +1 -1
  4. package/dist/canvas/index.mjs +1 -1
  5. package/dist/{canvas-cO2NAQyX.mjs → canvas-B21OqInM.mjs} +62 -62
  6. package/dist/canvas-B21OqInM.mjs.map +1 -0
  7. package/dist/{canvas-WWAJ6C2l.cjs → canvas-CC3xvbbA.cjs} +61 -61
  8. package/dist/canvas-CC3xvbbA.cjs.map +1 -0
  9. package/dist/context/index.cjs.map +1 -1
  10. package/dist/context/index.d.cts +1 -1
  11. package/dist/context/index.d.mts +1 -1
  12. package/dist/context/index.mjs.map +1 -1
  13. package/dist/{entity-component-inspector-VlwcaUqy.cjs → entity-component-inspector-7f3SijXE.cjs} +2 -2
  14. package/dist/{entity-component-inspector-VlwcaUqy.cjs.map → entity-component-inspector-7f3SijXE.cjs.map} +1 -1
  15. package/dist/{entity-component-inspector-CNaN8Scf.mjs → entity-component-inspector-BKpliIkt.mjs} +2 -2
  16. package/dist/{entity-component-inspector-CNaN8Scf.mjs.map → entity-component-inspector-BKpliIkt.mjs.map} +1 -1
  17. package/dist/hooks/index.cjs +1 -1
  18. package/dist/hooks/index.d.cts +1 -1
  19. package/dist/hooks/index.d.mts +1 -1
  20. package/dist/hooks/index.mjs +1 -1
  21. package/dist/id-generator-C2_8g29M.cjs.map +1 -1
  22. package/dist/id-generator-DDsv3NdX.mjs.map +1 -1
  23. package/dist/{index-edb-X9uc.d.mts → index-BGxRtxzm.d.mts} +2 -3
  24. package/dist/index-BGxRtxzm.d.mts.map +1 -0
  25. package/dist/{index-2l9Vdh2S.d.mts → index-BabUtsGu.d.mts} +9 -8
  26. package/dist/index-BabUtsGu.d.mts.map +1 -0
  27. package/dist/{index-vf1CSWta.d.mts → index-BfZT1xsF.d.mts} +2 -2
  28. package/dist/index-BfZT1xsF.d.mts.map +1 -0
  29. package/dist/{index-CPTq4oOA.d.cts → index-CbjlHvOZ.d.cts} +2 -2
  30. package/dist/index-CbjlHvOZ.d.cts.map +1 -0
  31. package/dist/{index-BTs_8SY-.d.cts → index-Cet6AhTm.d.cts} +3 -4
  32. package/dist/index-Cet6AhTm.d.cts.map +1 -0
  33. package/dist/{index-BFqa6aqs.d.mts → index-D5HuA6I5.d.mts} +20 -13
  34. package/dist/index-D5HuA6I5.d.mts.map +1 -0
  35. package/dist/{index-pInK6VDK.d.cts → index-DRUvPELK.d.cts} +20 -13
  36. package/dist/index-DRUvPELK.d.cts.map +1 -0
  37. package/dist/{index-CyeezgDI.d.mts → index-DoQL-Kim.d.mts} +3 -4
  38. package/dist/index-DoQL-Kim.d.mts.map +1 -0
  39. package/dist/{index-C3QIukqX.d.cts → index-DwEO6FDo.d.cts} +2 -3
  40. package/dist/index-DwEO6FDo.d.cts.map +1 -0
  41. package/dist/{index-Ht3fVcsn.d.cts → index-N2r0CM_0.d.cts} +9 -8
  42. package/dist/index-N2r0CM_0.d.cts.map +1 -0
  43. package/dist/index.cjs +3 -3
  44. package/dist/index.d.cts +6 -6
  45. package/dist/index.d.mts +6 -6
  46. package/dist/index.mjs +3 -3
  47. package/dist/inspectors/index.cjs +1 -1
  48. package/dist/inspectors/index.d.cts +1 -1
  49. package/dist/inspectors/index.d.mts +1 -1
  50. package/dist/inspectors/index.mjs +1 -1
  51. package/dist/node-props-Bryks8-5.d.cts.map +1 -1
  52. package/dist/node-props-Cusf_qtn.d.mts.map +1 -1
  53. package/dist/{node-systems-module-Dx-hISbg.d.cts → node-systems-module-BiefT_Cv.d.cts} +4 -4
  54. package/dist/node-systems-module-BiefT_Cv.d.cts.map +1 -0
  55. package/dist/{node-systems-module-B8aKhvBo.d.mts → node-systems-module-EYtTf6Re.d.mts} +4 -4
  56. package/dist/node-systems-module-EYtTf6Re.d.mts.map +1 -0
  57. package/dist/{node-types-l0GwV0mz.mjs → node-types-DV97CoAJ.mjs} +65 -35
  58. package/dist/node-types-DV97CoAJ.mjs.map +1 -0
  59. package/dist/{node-types-CNO_-52M.cjs → node-types-Z4QaJir-.cjs} +64 -34
  60. package/dist/node-types-Z4QaJir-.cjs.map +1 -0
  61. package/dist/nodes/index.cjs +1 -1
  62. package/dist/nodes/index.d.cts +2 -2
  63. package/dist/nodes/index.d.mts +2 -2
  64. package/dist/nodes/index.mjs +1 -1
  65. package/dist/templates/index.cjs +1 -1
  66. package/dist/templates/index.mjs +1 -1
  67. package/package.json +13 -14
  68. package/dist/canvas-WWAJ6C2l.cjs.map +0 -1
  69. package/dist/canvas-cO2NAQyX.mjs.map +0 -1
  70. package/dist/index-2l9Vdh2S.d.mts.map +0 -1
  71. package/dist/index-BFqa6aqs.d.mts.map +0 -1
  72. package/dist/index-BTs_8SY-.d.cts.map +0 -1
  73. package/dist/index-C3QIukqX.d.cts.map +0 -1
  74. package/dist/index-CPTq4oOA.d.cts.map +0 -1
  75. package/dist/index-CyeezgDI.d.mts.map +0 -1
  76. package/dist/index-Ht3fVcsn.d.cts.map +0 -1
  77. package/dist/index-edb-X9uc.d.mts.map +0 -1
  78. package/dist/index-pInK6VDK.d.cts.map +0 -1
  79. package/dist/index-vf1CSWta.d.mts.map +0 -1
  80. package/dist/node-systems-module-B8aKhvBo.d.mts.map +0 -1
  81. package/dist/node-systems-module-Dx-hISbg.d.cts.map +0 -1
  82. package/dist/node-types-CNO_-52M.cjs.map +0 -1
  83. package/dist/node-types-l0GwV0mz.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"node-props-Cusf_qtn.d.mts","names":[],"sources":["../src/abstract/entity-type-descriptor.ts","../src/abstract/node-props.ts"],"mappings":";;;;KAEY,0BAAA;EACV,UAAA,EAAY,uBAAA;EACZ,UAAA,EAAY,aAAA;EACZ,OAAA;EACA,GAAA,EAAK,SAAA;AAAA;AAAA,KAGK,uBAAA;EACV,WAAA,IAAe,KAAA,EAAO,0BAAA,KAA+B,YAAA;EACrD,cAAA,IAAkB,KAAA,EAAO,0BAAA,KAA+B,eAAA;EACxD,KAAA;EACA,EAAA;EACA,OAAA;EACA,KAAA;EACA,UAAA,EAAY,aAAA;AAAA;AAAA,KAGF,qBAAA;EACV,YAAA;EACA,UAAA,EAAY,aAAA;EACZ,OAAA;EACA,GAAA,GAAM,SAAS;AAAA;;;KCnBL,qBAAA,GAAwB,aAAA;EAClC,UAAA,EAAY,aAAa;AAAA;AAAA,KAGf,cAAA,GAAiB,aAAA;EAC3B,MAAA,GAAS,YAAA;EACT,UAAA,GAAa,aAAA;EACb,KAAA,GAAQ,qBAAA;EACR,WAAA;AAAA;AAAA,KAGU,kBAAA,GAAqB,aAAa;EAC5C,OAAO;AAAA;AAAA,KAGG,eAAA,GAAkB,aAAa;EACzC,KAAK;AAAA"}
1
+ {"version":3,"file":"node-props-Cusf_qtn.d.mts","names":[],"sources":["../src/abstract/entity-type-descriptor.ts","../src/abstract/node-props.ts"],"mappings":";;;;KAEY,0BAAA;EACV,UAAA,EAAY,uBAAA;EACZ,UAAA,EAAY,aAAA;EACZ,OAAA;EACA,GAAA,EAAK,SAAA;AAAA;AAAA,KAGK,uBAAA;EACV,WAAA,IAAe,KAAA,EAAO,0BAAA,KAA+B,YAAA;EACrD,cAAA,IAAkB,KAAA,EAAO,0BAAA,KAA+B,eAAA;EACxD,KAAA;EACA,EAAA;EACA,OAAA;EACA,KAAA;EACA,UAAA,EAAY,aAAA;AAAA;AAAA,KAGF,qBAAA;EACV,YAAA;EACA,UAAA,EAAY,aAAA;EACZ,OAAA;EACA,GAAA,GAAM,SAAA;AAAA;;;KCnBI,qBAAA,GAAwB,aAAA;EAClC,UAAA,EAAY,aAAA;AAAA;AAAA,KAGF,cAAA,GAAiB,aAAA;EAC3B,MAAA,GAAS,YAAA;EACT,UAAA,GAAa,aAAA;EACb,KAAA,GAAQ,qBAAA;EACR,WAAA;AAAA;AAAA,KAGU,kBAAA,GAAqB,aAAA;EAC/B,OAAA;AAAA;AAAA,KAGU,eAAA,GAAkB,aAAA;EAC5B,KAAA;AAAA"}
@@ -1,5 +1,5 @@
1
1
  import { i as SystemsModuleNodeData, n as EntityNodeData } from "./node-props-Bryks8-5.cjs";
2
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
+ import * as _$react from "react";
3
3
  import { Node, NodeProps } from "@xyflow/react";
4
4
 
5
5
  //#region src/nodes/node-entity.d.ts
@@ -8,7 +8,7 @@ declare function EntityNode({
8
8
  data,
9
9
  selected,
10
10
  type
11
- }: NodeProps<Node<EntityNodeData>>): _$react_jsx_runtime0.JSX.Element;
11
+ }: NodeProps<Node<EntityNodeData>>): _$react.JSX.Element;
12
12
  //#endregion
13
13
  //#region src/nodes/node-systems-module.d.ts
14
14
  declare function SystemsModuleNode({
@@ -16,7 +16,7 @@ declare function SystemsModuleNode({
16
16
  data,
17
17
  selected,
18
18
  type
19
- }: NodeProps<Node<SystemsModuleNodeData>>): _$react_jsx_runtime0.JSX.Element;
19
+ }: NodeProps<Node<SystemsModuleNodeData>>): _$react.JSX.Element;
20
20
  //#endregion
21
21
  export { EntityNode as n, SystemsModuleNode as t };
22
- //# sourceMappingURL=node-systems-module-Dx-hISbg.d.cts.map
22
+ //# sourceMappingURL=node-systems-module-BiefT_Cv.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-systems-module-BiefT_Cv.d.cts","names":[],"sources":["../src/nodes/node-entity.tsx","../src/nodes/node-systems-module.tsx"],"mappings":";;;;;iBAQS,UAAA,CAAA;EAAa,EAAA;EAAI,IAAA;EAAM,QAAA;EAAU;AAAA,GAAQ,SAAA,CAAU,IAAA,CAAK,cAAA,KAAgB,OAAA,CAAA,GAAA,CAAA,OAAA;;;iBCAxE,iBAAA,CAAA;EAAoB,EAAA;EAAI,IAAA;EAAM,QAAA;EAAU;AAAA,GAAQ,SAAA,CAAU,IAAA,CAAK,qBAAA,KAAuB,OAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,6 +1,6 @@
1
1
  import { i as SystemsModuleNodeData, n as EntityNodeData } from "./node-props-Cusf_qtn.mjs";
2
+ import * as _$react from "react";
2
3
  import { Node, NodeProps } from "@xyflow/react";
3
- import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
5
5
  //#region src/nodes/node-entity.d.ts
6
6
  declare function EntityNode({
@@ -8,7 +8,7 @@ declare function EntityNode({
8
8
  data,
9
9
  selected,
10
10
  type
11
- }: NodeProps<Node<EntityNodeData>>): _$react_jsx_runtime0.JSX.Element;
11
+ }: NodeProps<Node<EntityNodeData>>): _$react.JSX.Element;
12
12
  //#endregion
13
13
  //#region src/nodes/node-systems-module.d.ts
14
14
  declare function SystemsModuleNode({
@@ -16,7 +16,7 @@ declare function SystemsModuleNode({
16
16
  data,
17
17
  selected,
18
18
  type
19
- }: NodeProps<Node<SystemsModuleNodeData>>): _$react_jsx_runtime0.JSX.Element;
19
+ }: NodeProps<Node<SystemsModuleNodeData>>): _$react.JSX.Element;
20
20
  //#endregion
21
21
  export { EntityNode as n, SystemsModuleNode as t };
22
- //# sourceMappingURL=node-systems-module-B8aKhvBo.d.mts.map
22
+ //# sourceMappingURL=node-systems-module-EYtTf6Re.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-systems-module-EYtTf6Re.d.mts","names":[],"sources":["../src/nodes/node-entity.tsx","../src/nodes/node-systems-module.tsx"],"mappings":";;;;;iBAQS,UAAA,CAAA;EAAa,EAAA;EAAI,IAAA;EAAM,QAAA;EAAU;AAAA,GAAQ,SAAA,CAAU,IAAA,CAAK,cAAA,KAAgB,OAAA,CAAA,GAAA,CAAA,OAAA;;;iBCAxE,iBAAA,CAAA;EAAoB,EAAA;EAAI,IAAA;EAAM,QAAA;EAAU;AAAA,GAAQ,SAAA,CAAU,IAAA,CAAK,qBAAA,KAAuB,OAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,9 +1,9 @@
1
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";
2
+ import { t as entity_component_inspector_default } from "./entity-component-inspector-BKpliIkt.mjs";
3
3
  import { c } from "react/compiler-runtime";
4
- import { Accordion, Badge, Divider, Group, Stack, Text } from "@mantine/core";
5
4
  import { memo, useContext, useSyncExternalStore } from "react";
6
- import { NodeCollapse, NodeContainer } from "@awesome-flow/core/layout";
5
+ import { GroupBackdrop, NodeCollapse, NodeContainer } from "@awesome-flow/core/layout";
6
+ import { Accordion, Badge, Divider, Group, Stack, Text } from "@mantine/core";
7
7
  import { NodeResizer, Position } from "@xyflow/react";
8
8
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
9
9
  import { useGroupNode } from "@awesome-flow/core/hooks";
@@ -964,8 +964,8 @@ var node_scheduler_default = memo(SchedulerNode);
964
964
  //#endregion
965
965
  //#region src/nodes/node-scope-group.tsx
966
966
  function ScopeGroupNode(t0) {
967
- const $ = c(36);
968
- const { id, selected, data, type, width, height } = t0;
967
+ const $ = c(45);
968
+ const { id, selected, data, type, width, height, positionAbsoluteX, positionAbsoluteY } = t0;
969
969
  let t1;
970
970
  if ($[0] !== data || $[1] !== height || $[2] !== id || $[3] !== width) {
971
971
  t1 = {
@@ -980,7 +980,7 @@ function ScopeGroupNode(t0) {
980
980
  $[3] = width;
981
981
  $[4] = t1;
982
982
  } else t1 = $[4];
983
- const { groupNodes, groupData, onCollapsed } = useGroupNode(t1);
983
+ const { groupNodes, groupData, onCollapsed, isDropTarget } = useGroupNode(t1);
984
984
  const t2 = data.initialSize?.width || 320;
985
985
  const t3 = data.initialSize?.height || 220;
986
986
  let t4;
@@ -1054,44 +1054,74 @@ function ScopeGroupNode(t0) {
1054
1054
  } else t10 = $[21];
1055
1055
  const title = t10;
1056
1056
  let t11;
1057
- if ($[22] !== groupData || $[23] !== id || $[24] !== selected || $[25] !== title || $[26] !== type) {
1058
- t11 = /* @__PURE__ */ jsx(NodeContainer, {
1057
+ if ($[22] !== height || $[23] !== positionAbsoluteX || $[24] !== positionAbsoluteY || $[25] !== width) {
1058
+ t11 = /* @__PURE__ */ jsx(GroupBackdrop, {
1059
+ x: positionAbsoluteX,
1060
+ y: positionAbsoluteY,
1061
+ width,
1062
+ height
1063
+ });
1064
+ $[22] = height;
1065
+ $[23] = positionAbsoluteX;
1066
+ $[24] = positionAbsoluteY;
1067
+ $[25] = width;
1068
+ $[26] = t11;
1069
+ } else t11 = $[26];
1070
+ let t12;
1071
+ if ($[27] !== isDropTarget) {
1072
+ t12 = isDropTarget && /* @__PURE__ */ jsx("span", {
1073
+ className: "flowGroupDropTarget",
1074
+ "aria-hidden": "true"
1075
+ });
1076
+ $[27] = isDropTarget;
1077
+ $[28] = t12;
1078
+ } else t12 = $[28];
1079
+ let t13;
1080
+ if ($[29] !== groupData || $[30] !== id || $[31] !== selected || $[32] !== title || $[33] !== type) {
1081
+ t13 = /* @__PURE__ */ jsx(NodeContainer, {
1059
1082
  id,
1060
1083
  selected,
1061
1084
  data: groupData,
1062
1085
  title,
1063
1086
  type
1064
1087
  });
1065
- $[22] = groupData;
1066
- $[23] = id;
1067
- $[24] = selected;
1068
- $[25] = title;
1069
- $[26] = type;
1070
- $[27] = t11;
1071
- } else t11 = $[27];
1072
- const t12 = selected && !data.isCollapsed;
1073
- let t13;
1074
- if ($[28] !== id || $[29] !== size.height || $[30] !== size.width || $[31] !== t12) {
1075
- t13 = /* @__PURE__ */ jsx(NodeResizer, {
1088
+ $[29] = groupData;
1089
+ $[30] = id;
1090
+ $[31] = selected;
1091
+ $[32] = title;
1092
+ $[33] = type;
1093
+ $[34] = t13;
1094
+ } else t13 = $[34];
1095
+ const t14 = selected && !data.isCollapsed;
1096
+ let t15;
1097
+ if ($[35] !== id || $[36] !== size.height || $[37] !== size.width || $[38] !== t14) {
1098
+ t15 = /* @__PURE__ */ jsx(NodeResizer, {
1076
1099
  nodeId: id,
1077
1100
  minWidth: size.width,
1078
1101
  minHeight: size.height,
1079
- isVisible: t12
1102
+ isVisible: t14
1080
1103
  });
1081
- $[28] = id;
1082
- $[29] = size.height;
1083
- $[30] = size.width;
1084
- $[31] = t12;
1085
- $[32] = t13;
1086
- } else t13 = $[32];
1087
- let t14;
1088
- if ($[33] !== t11 || $[34] !== t13) {
1089
- t14 = /* @__PURE__ */ jsxs(Fragment, { children: [t11, t13] });
1090
- $[33] = t11;
1091
- $[34] = t13;
1092
- $[35] = t14;
1093
- } else t14 = $[35];
1094
- return t14;
1104
+ $[35] = id;
1105
+ $[36] = size.height;
1106
+ $[37] = size.width;
1107
+ $[38] = t14;
1108
+ $[39] = t15;
1109
+ } else t15 = $[39];
1110
+ let t16;
1111
+ if ($[40] !== t11 || $[41] !== t12 || $[42] !== t13 || $[43] !== t15) {
1112
+ t16 = /* @__PURE__ */ jsxs(Fragment, { children: [
1113
+ t11,
1114
+ t12,
1115
+ t13,
1116
+ t15
1117
+ ] });
1118
+ $[40] = t11;
1119
+ $[41] = t12;
1120
+ $[42] = t13;
1121
+ $[43] = t15;
1122
+ $[44] = t16;
1123
+ } else t16 = $[44];
1124
+ return t16;
1095
1125
  }
1096
1126
  var node_scope_group_default = memo(ScopeGroupNode);
1097
1127
 
@@ -1648,4 +1678,4 @@ const ecsNodeTemplates = {
1648
1678
 
1649
1679
  //#endregion
1650
1680
  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 };
1651
- //# sourceMappingURL=node-types-l0GwV0mz.mjs.map
1681
+ //# sourceMappingURL=node-types-DV97CoAJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-types-DV97CoAJ.mjs","names":["useContext","useSyncExternalStore","EcsBridgeStoreName","EcsFlowContext","useEcsBridge","bridge","Error","useBridgeStoreVersion","storeName","store","stores","subscribe","getSnapshot","IEntity","useMemo","useBridgeStoreVersion","useEcsBridge","useEntitiesInScope","scopeId","$","_c","bridge","entityVersion","proxyVersion","t0","bb0","t1","Symbol","for","getEntitiesInScope","TEntity","IEntity","IEntityProxy","useMemo","EcsIdGenerator","useBridgeStoreVersion","useEcsBridge","useEntity","proxy","$","_c","bridge","version","proxyId","entityProxy","undefined","t0","bb0","entityRepository","has","t1","getEntity","EntityTypeUid","IEntity","useMemo","useBridgeStoreVersion","useEcsBridge","useEntityList","type","$","_c","bridge","version","t0","bb0","undefined","t1","entityRepository","getEntities","Array","from","listAll","TEntity","useMemo","useBridgeStoreVersion","useEcsBridge","useEntityTypeDescriptors","$","_c","bridge","version","t0","getEntityTypeDescriptors","EcsHandleDataType","proxy","module","EcsTemplateGroup","ecs","entities","tools","ITemplateFactory","NodeTemplate","Position","EcsEntityTypeDescriptor","EcsHandleDataType","EntityNodeData","EcsNodeType","EcsTemplateGroup","EcsIdGenerator","entityNodeHandles","dataType","proxy","position","Left","connection","const","disabled","Right","createEntityTypeTemplate","descriptor","id","entityType","entityTypeTemplate","type","entity","group","entities","data","title","toString","spawn","descriptorId","scopeId","handles","EntityNodeTemplate","template","ecs","useMemo","createEntityTypeTemplate","useEntityTypeDescriptors","useEntityTypeTemplates","t0","$","_c","enabled","undefined","descriptors","t1","bb0","t2","Symbol","for","map","EntityUid","IEntityProxy","useMemo","EntityUpdateCounts","useBridgeStoreVersion","useEcsBridge","useEntityUpdates","target","$","_c","bridge","version","t0","getEntityUpdateCounts","useMemo","EcsEventStreamFilter","useBridgeStoreVersion","useEcsBridge","useEventStream","filter","$","_c","bridge","version","t0","getEventStream","EntityTypeUid","PipelineCategoryName","SystemType","useMemo","EcsMetricsFilter","useBridgeStoreVersion","useEcsBridge","usePipelineMetrics","entityType","phase","$","_c","bridge","version","t0","getPipelineMetrics","useMiddlewareMetrics","filter","getMiddlewareMetrics","useMemo","useBridgeStoreVersion","useEcsBridge","useScheduler","$","_c","bridge","version","t0","getSchedulerSnapshot","useMemo","useBridgeStoreVersion","useEcsBridge","useScopeList","$","_c","bridge","entityVersion","scopeVersion","t0","getScopes","EntityTypeUid","IEntity","ISystemsModule","useMemo","useBridgeStoreVersion","useEcsBridge","useSystemsModule","type","$","_c","bridge","version","t0","bb0","undefined","t1","systemsModuleRepository","get","useSystemsModuleList","listSystemsModules","useMemo","useBridgeStoreVersion","useEcsBridge","useUpdateQueue","limit","$","_c","bridge","version","t0","getUpdateQueueSnapshot","NodeContainer","Badge","Group","Stack","Text","Node","NodeProps","memo","EcsToolNodeData","useEventStream","EcsIdGenerator","EventTimelineNode","t0","$","_c","id","data","selected","type","t1","limit","t2","events","t3","Symbol","for","t4","t5","length","t6","map","_temp","t7","t8","entry","recordedAt","event","uid","Date","toLocaleTimeString","entityProxy","origin","target","targets","memo","useMemo","CamelCaseFormatterProps","value","CamelCaseFormatter","props","$","_c","t0","toString","replace","IComponent","IEntity","Accordion","Badge","Stack","memo","EntityComponentInspector","EntityComponentListProps","entity","EntityComponentList","props","$","_c","T0","T1","T2","t0","t1","t2","t3","components","listComponents","Item","length","Panel","map","_temp","t4","t5","t6","c","i","field","value","Object","entries","isComponent","push","Badge","BadgeProps","memo","FormatterCamelCase","BadgeListProps","items","badge","BadgeList","props","Readonly","map","value","i","IEntity","Accordion","Badge","Stack","memo","useBridgeStoreVersion","useEcsBridge","EcsIdGenerator","BadgeList","EntityProxyListProps","entity","EntityProxyList","props","$","_c","bridge","t0","entityProxyRepository","identity","proxy","proxies","Array","from","getAllProxies","values","flat","map","_temp","items","t1","length","t2","Symbol","for","variant","t3","t4","p","entityProxy","IEntity","Accordion","Badge","Stack","memo","useBridgeStoreVersion","useEcsBridge","BadgeList","EntitySubscriptionListProps","entity","EntitySubscriptionList","props","$","_c","bridge","t0","entityEventsManager","identity","proxy","getSubscriptionsForEntity","subscriptions","t1","length","t2","Symbol","for","variant","t3","t4","EntityUid","Badge","memo","useEntityUpdates","EntityUpdateCounterProps","entityUid","EntityUpdateCounter","props","$","_c","updates","removes","t0","t1","t2","IEntity","Accordion","Badge","Divider","Group","EntityComponentList","EntityProxyList","EntitySubscriptionList","EntityUpdateCounter","NodeEntityProps","entity","EntityLayout","t0","$","_c","t1","identity","proxy","entityUid","t2","Symbol","for","t3","t4","NodeContainer","Badge","Stack","Text","Node","NodeProps","EntityNodeData","CamelCaseFormatter","useEntity","EntityLayout","EntityNode","t0","$","_c","id","data","selected","type","entity","entityType","identity","proxy","pending","spawnStatus","missingScheduler","t1","title","t2","t3","t4","entityUid","t5","NodeContainer","Badge","Group","Stack","Text","Node","NodeProps","memo","EcsToolNodeData","useScheduler","SchedulerNode","t0","$","_c","id","data","selected","type","scheduler","t1","Symbol","for","t2","pendingCount","t3","t4","schedules","length","t5","t6","t7","isPaused","t8","t9","t10","t11","frameSubscriptions","t12","t13","t14","t15","t16","NodeCollapse","NodeContainer","GroupBackdrop","Badge","Group","Text","Node","NodeProps","NodeResizer","memo","useMemo","useGroupNode","ScopeGroupNodeData","ScopeGroupNode","t0","$","_c","id","selected","data","type","width","height","positionAbsoluteX","positionAbsoluteY","t1","groupNodes","groupData","onCollapsed","isDropTarget","t2","initialSize","t3","t4","size","t5","length","t6","t7","isCollapsed","t8","t9","scopeId","t10","title","t11","t12","t13","t14","t15","t16","IMiddleware","IPipeline","IPipelineContext","Accordion","Badge","Stack","BadgeList","PipelineMiddlewareListProps","pipeline","label","PipelineMiddlewareList","props","$","_c","t0","Symbol","for","middleware","t1","map","_temp","components","t2","length","t3","variant","t4","t5","m","name","constructor","EntityTypeUid","IEntity","ISystemsModule","ISystemsRuntimeContext","SystemType","Accordion","Text","PipelineMiddlewareList","NodeSystemModuleProps","type","module","SystemsModuleLayout","props","$","_c","runtimeContext","systemsModule","error","dispatch","t0","builder","pipelines","get","initialize","init","t1","update","t2","render","t3","sync","t4","formatError","t5","t6","t7","t8","t9","t10","Error","message","String","NodeContainer","Badge","Node","NodeProps","SystemsModuleNodeData","CamelCaseFormatter","useSystemsModule","SystemsModuleLayout","SystemsModuleNode","t0","$","_c","id","data","selected","type","module","entityType","t1","t2","t3","NodeContainer","Badge","Group","Stack","Text","Node","NodeProps","memo","EcsToolNodeData","useMiddlewareMetrics","TelemetryNode","t0","$","_c","id","data","selected","type","metrics","T0","T1","t1","t2","t3","t4","t5","t6","t7","t8","t9","visibleMetrics","slice","limit","Symbol","for","length","map","_temp","t10","t11","metric","category","name","lastMs","toFixed","NodeContainer","Badge","Group","Stack","Text","Node","NodeProps","memo","EcsToolNodeData","useUpdateQueue","EcsIdGenerator","UpdateQueueNode","t0","$","_c","id","data","selected","type","queue","limit","t1","items","t2","Symbol","for","t3","size","t4","t5","t6","map","_temp","t7","t8","item","index","entityProxy","entity","ITemplateFactory","NodeTemplate","ScopeGroupNodeData","EcsNodeType","EcsTemplateGroup","ScopeGroupNodeTemplate","template","type","scopeGroup","group","ecs","data","title","isGroup","scopeId","initialSize","width","height","collapsedSize","handles","ITemplateFactory","NodeTemplate","Position","EcsHandleDataType","SystemsModuleNodeData","EcsNodeType","EcsTemplateGroup","SystemsModuleNodeTemplate","template","type","systemsModule","group","ecs","data","title","entityType","handles","dataType","module","position","Left","connection","disabled","ITemplateFactory","NodeTemplate","EcsToolNodeData","EcsNodeType","EcsTemplateGroup","createToolTemplate","type","title","group","tools","data","limit","initialSize","width","height","handles","SchedulerNodeTemplate","template","scheduler","EventTimelineNodeTemplate","eventTimeline","TelemetryNodeTemplate","telemetry","UpdateQueueNodeTemplate","updateQueue","NodeTypes","EventTimelineNode","EntityNode","SchedulerNode","ScopeGroupNode","SystemsModuleNode","TelemetryNode","UpdateQueueNode","EntityNodeTemplate","ScopeGroupNodeTemplate","SystemsModuleNodeTemplate","EventTimelineNodeTemplate","SchedulerNodeTemplate","TelemetryNodeTemplate","UpdateQueueNodeTemplate","EcsNodeType","systemsModule","entity","scopeGroup","scheduler","eventTimeline","telemetry","updateQueue","ecsNodeTypes","ecsNodeTemplates"],"sources":["../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/abstract/handle-types.ts","../src/abstract/templates.ts","../src/templates/template-entity-node.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","../src/nodes/node-event-timeline.tsx","../src/components/formatter-camel-case.tsx","../src/components/entity-component-list.tsx","../src/components/badge-list.tsx","../src/components/entity-proxy-list.tsx","../src/components/entity-subscription-list.tsx","../src/components/entity-update-counter.tsx","../src/layout/entity-layout.tsx","../src/nodes/node-entity.tsx","../src/nodes/node-scheduler.tsx","../src/nodes/node-scope-group.tsx","../src/components/pipeline-middleware-list.tsx","../src/layout/systems-module-layout.tsx","../src/nodes/node-systems-module.tsx","../src/nodes/node-telemetry.tsx","../src/nodes/node-update-queue.tsx","../src/templates/template-scope-group.ts","../src/templates/template-systems-module.ts","../src/templates/template-tool-nodes.ts","../src/abstract/node-types.ts"],"sourcesContent":["import { useContext, useSyncExternalStore } from 'react';\nimport { EcsBridgeStoreName } from '../context/ecs-bridge';\nimport { EcsFlowContext } from '../context/ecs-flow-context';\n\nexport function useEcsBridge() {\n const bridge = useContext(EcsFlowContext);\n\n if (!bridge) {\n throw new Error('useEcsBridge must be used inside an EcsCanvasProvider.');\n }\n\n return bridge;\n}\n\nexport function useBridgeStoreVersion(storeName: EcsBridgeStoreName): number {\n const bridge = useEcsBridge();\n const store = bridge.stores[storeName];\n\n return useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);\n}\n","import { IEntity } from '@awesome-ecs/abstract/entities';\nimport { useMemo } from 'react';\nimport { useBridgeStoreVersion, useEcsBridge } from './use-ecs-bridge';\n\nexport function useEntitiesInScope<TEntity extends IEntity = IEntity>(\n scopeId: string | undefined\n): TEntity[] {\n const bridge = useEcsBridge();\n const entityVersion = useBridgeStoreVersion('entities');\n const proxyVersion = useBridgeStoreVersion('proxies');\n\n return useMemo(() => {\n if (!scopeId) {\n return [];\n }\n\n return bridge.getEntitiesInScope(scopeId) as TEntity[];\n }, [bridge, entityVersion, proxyVersion, scopeId]);\n}\n","import { IEntity, IEntityProxy } from '@awesome-ecs/abstract/entities';\nimport { useMemo } from 'react';\nimport { EcsIdGenerator } from '../utils/id-generator';\nimport { useBridgeStoreVersion, useEcsBridge } from './use-ecs-bridge';\n\nexport function useEntity<TEntity extends IEntity = IEntity>(\n proxy: IEntityProxy | undefined\n): TEntity | undefined {\n const bridge = useEcsBridge();\n const version = useBridgeStoreVersion('entities');\n const proxyId = proxy ? EcsIdGenerator.entityProxy(proxy) : undefined;\n\n return useMemo(() => {\n if (!proxy || !bridge.entityRepository.has(proxy)) {\n return undefined;\n }\n\n return bridge.entityRepository.getEntity<TEntity>(proxy);\n }, [bridge, proxy, proxyId, version]);\n}\n","import { EntityTypeUid, IEntity } from '@awesome-ecs/abstract/entities';\nimport { useMemo } from 'react';\nimport { useBridgeStoreVersion, useEcsBridge } from './use-ecs-bridge';\n\nexport function useEntityList<TEntity extends IEntity = IEntity>(\n type?: EntityTypeUid\n): TEntity[] {\n const bridge = useEcsBridge();\n const version = useBridgeStoreVersion('entities');\n\n return useMemo(() => {\n if (type !== undefined) {\n return bridge.entityRepository.getEntities<TEntity>(type);\n }\n\n return Array.from(bridge.entityRepository.listAll()) as TEntity[];\n }, [bridge, type, version]);\n}\n","import { useMemo } from 'react';\nimport { useBridgeStoreVersion, useEcsBridge } from './use-ecs-bridge';\n\nexport function useEntityTypeDescriptors() {\n const bridge = useEcsBridge();\n const version = useBridgeStoreVersion('entityTypes');\n\n return useMemo(() => bridge.getEntityTypeDescriptors(), [bridge, version]);\n}\n","export enum EcsHandleDataType {\n proxy = 'proxy',\n module = 'module'\n}\n","export enum EcsTemplateGroup {\n ecs = 'ECS',\n entities = 'ECS Entities',\n tools = 'ECS Tools'\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/react';\nimport { EcsEntityTypeDescriptor } from '../abstract/entity-type-descriptor';\nimport { EcsHandleDataType } from '../abstract/handle-types';\nimport { EntityNodeData } from '../abstract/node-props';\nimport { EcsNodeType } from '../abstract/node-types';\nimport { EcsTemplateGroup } from '../abstract/templates';\nimport { EcsIdGenerator } from '../utils/id-generator';\n\nconst entityNodeHandles = [\n {\n dataType: EcsHandleDataType.proxy,\n position: Position.Left,\n connection: 'target' as const,\n disabled: true\n },\n {\n dataType: EcsHandleDataType.proxy,\n position: Position.Right,\n connection: 'source' as const,\n disabled: true\n }\n];\n\nexport function createEntityTypeTemplate(descriptor: EcsEntityTypeDescriptor): NodeTemplate<EntityNodeData> {\n const id = descriptor.id ?? EcsIdGenerator.entityType(descriptor.entityType);\n\n return {\n id: EcsIdGenerator.entityTypeTemplate(descriptor.entityType, id),\n type: EcsNodeType.entity,\n group: descriptor.group ?? EcsTemplateGroup.entities,\n data: {\n title: descriptor.title ?? descriptor.entityType.toString(),\n entityType: descriptor.entityType,\n spawn: {\n descriptorId: id,\n entityType: descriptor.entityType,\n scopeId: descriptor.scopeId\n }\n },\n handles: entityNodeHandles\n };\n}\n\nexport class EntityNodeTemplate implements ITemplateFactory {\n readonly template: NodeTemplate<EntityNodeData> = {\n type: EcsNodeType.entity,\n group: EcsTemplateGroup.ecs,\n data: {\n title: 'Entity'\n },\n handles: entityNodeHandles\n };\n}\n","import { useMemo } from 'react';\nimport { createEntityTypeTemplate } from '../templates/template-entity-node';\nimport { useEntityTypeDescriptors } from './use-entity-type-descriptors';\n\nexport function useEntityTypeTemplates(enabled = true) {\n const descriptors = useEntityTypeDescriptors();\n\n return useMemo(() => {\n if (!enabled) {\n return [];\n }\n\n return descriptors.map(createEntityTypeTemplate);\n }, [descriptors, enabled]);\n}\n","import { EntityUid, IEntityProxy } from '@awesome-ecs/abstract/entities';\nimport { useMemo } from 'react';\nimport { EntityUpdateCounts } from '../context/ecs-bridge';\nimport { useBridgeStoreVersion, useEcsBridge } from './use-ecs-bridge';\n\nexport function useEntityUpdates(target: IEntityProxy | EntityUid): EntityUpdateCounts {\n const bridge = useEcsBridge();\n const version = useBridgeStoreVersion('updates');\n\n return useMemo(() => bridge.getEntityUpdateCounts(target), [bridge, target, version]);\n}\n","import { useMemo } from 'react';\nimport { EcsEventStreamFilter } from '../context/ecs-bridge';\nimport { useBridgeStoreVersion, useEcsBridge } from './use-ecs-bridge';\n\nexport function useEventStream(filter?: EcsEventStreamFilter) {\n const bridge = useEcsBridge();\n const version = useBridgeStoreVersion('events');\n\n return useMemo(() => bridge.getEventStream(filter), [bridge, filter, version]);\n}\n","import { EntityTypeUid } from '@awesome-ecs/abstract/entities';\nimport { PipelineCategoryName } from '@awesome-ecs/abstract/factories';\nimport { SystemType } from '@awesome-ecs/abstract/systems';\nimport { useMemo } from 'react';\nimport { EcsMetricsFilter } from '../context/ecs-bridge';\nimport { useBridgeStoreVersion, useEcsBridge } from './use-ecs-bridge';\n\nexport function usePipelineMetrics(entityType?: EntityTypeUid, phase?: SystemType | string) {\n const bridge = useEcsBridge();\n const version = useBridgeStoreVersion('metrics');\n\n return useMemo(\n () => bridge.getPipelineMetrics(entityType, phase),\n [bridge, entityType, phase, version]\n );\n}\n\nexport function useMiddlewareMetrics(filter?: EcsMetricsFilter & { category?: PipelineCategoryName }) {\n const bridge = useEcsBridge();\n const version = useBridgeStoreVersion('metrics');\n\n return useMemo(() => bridge.getMiddlewareMetrics(filter), [bridge, filter, version]);\n}\n","import { useMemo } from 'react';\nimport { useBridgeStoreVersion, useEcsBridge } from './use-ecs-bridge';\n\nexport function useScheduler() {\n const bridge = useEcsBridge();\n const version = useBridgeStoreVersion('scheduler');\n\n return useMemo(() => bridge.getSchedulerSnapshot(), [bridge, version]);\n}\n","import { useMemo } from 'react';\nimport { useBridgeStoreVersion, useEcsBridge } from './use-ecs-bridge';\n\nexport function useScopeList() {\n const bridge = useEcsBridge();\n const entityVersion = useBridgeStoreVersion('entities');\n const scopeVersion = useBridgeStoreVersion('scopes');\n\n return useMemo(() => bridge.getScopes(), [bridge, entityVersion, scopeVersion]);\n}\n","import { EntityTypeUid, IEntity } from '@awesome-ecs/abstract/entities';\nimport { ISystemsModule } from '@awesome-ecs/abstract/systems';\nimport { useMemo } from 'react';\nimport { useBridgeStoreVersion, useEcsBridge } from './use-ecs-bridge';\n\nexport function useSystemsModule<TEntity extends IEntity = IEntity>(\n type: EntityTypeUid | undefined\n): ISystemsModule<TEntity> | undefined {\n const bridge = useEcsBridge();\n const version = useBridgeStoreVersion('modules');\n\n return useMemo(() => {\n if (type === undefined) {\n return undefined;\n }\n\n return bridge.systemsModuleRepository.get<TEntity>(type);\n }, [bridge, type, version]);\n}\n\nexport function useSystemsModuleList(): ReadonlyMap<EntityTypeUid, ISystemsModule<IEntity>> {\n const bridge = useEcsBridge();\n const version = useBridgeStoreVersion('modules');\n\n return useMemo(() => bridge.listSystemsModules(), [bridge, version]);\n}\n","import { useMemo } from 'react';\nimport { useBridgeStoreVersion, useEcsBridge } from './use-ecs-bridge';\n\nexport function useUpdateQueue(limit?: number) {\n const bridge = useEcsBridge();\n const version = useBridgeStoreVersion('queue');\n\n return useMemo(() => bridge.getUpdateQueueSnapshot(limit), [bridge, limit, version]);\n}\n","import { NodeContainer } from '@awesome-flow/core/layout';\nimport { Badge, Group, Stack, Text } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { memo } from 'react';\nimport { EcsToolNodeData } from '../abstract/node-props';\nimport { useEventStream } from '../hooks';\nimport { EcsIdGenerator } from '../utils/id-generator';\n\nfunction EventTimelineNode({ id, data, selected, type }: NodeProps<Node<EcsToolNodeData>>) {\n const events = useEventStream({ limit: data.limit ?? 10 });\n\n return (\n <NodeContainer\n id={id}\n selected={selected}\n data={data}\n title={\n <Badge fullWidth color=\"grape\" variant=\"transparent\">\n Event Timeline\n </Badge>\n }\n type={type}\n >\n <Stack gap=\"xs\">\n <Badge variant=\"light\">events {events.length}</Badge>\n {events.length === 0 && (\n <Text size=\"xs\" c=\"dimmed\">\n No events recorded.\n </Text>\n )}\n {events.map((entry) => (\n <Stack key={`${entry.recordedAt}:${entry.event.data.uid}`} gap={2}>\n <Group gap=\"xs\" wrap=\"nowrap\">\n <Badge size=\"xs\" variant=\"outline\">\n {entry.event.data.uid}\n </Badge>\n <Text size=\"xs\" c=\"dimmed\">\n {new Date(entry.recordedAt).toLocaleTimeString()}\n </Text>\n </Group>\n <Text size=\"xs\" truncate>\n {EcsIdGenerator.entityProxy(entry.event.origin)}\n {' -> '}\n {entry.event.target ? EcsIdGenerator.entityProxy(entry.event.target) : `${entry.targets.length} target(s)`}\n </Text>\n </Stack>\n ))}\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default memo(EventTimelineNode);\n","import { memo, useMemo } from 'react';\n\nexport type CamelCaseFormatterProps = {\n value: string | number;\n};\n\nfunction CamelCaseFormatter(props: Readonly<CamelCaseFormatterProps>) {\n const value = useMemo(\n () => props.value?.toString().replace(/([a-z])([A-Z])/g, '$1 $2'),\n [props.value]\n );\n return value;\n}\n\nexport default memo(CamelCaseFormatter);\n","import { IComponent } from '@awesome-ecs/abstract/components';\nimport { IEntity } from '@awesome-ecs/abstract/entities';\nimport { Accordion, Badge, Stack } from '@mantine/core';\nimport { memo } from 'react';\nimport EntityComponentInspector from './entity-component-inspector';\n\nexport type EntityComponentListProps = {\n entity: IEntity;\n};\n\nfunction EntityComponentList(props: Readonly<EntityComponentListProps>) {\n const components = listComponents(props.entity);\n\n return (\n <Accordion.Item key=\"components\" value=\"components\">\n <Accordion.Control>\n <Badge fullWidth variant=\"light\" rightSection={components.length}>\n Components\n </Badge>\n </Accordion.Control>\n <Accordion.Panel>\n <Stack>\n {components.map((c, i) => (\n <EntityComponentInspector component={c} key={i} />\n ))}\n </Stack>\n </Accordion.Panel>\n </Accordion.Item>\n );\n}\n\nfunction listComponents(entity: IEntity): IComponent[] {\n const components: IComponent[] = [];\n for (const [field, value] of Object.entries(entity)) {\n if (field === 'identity') {\n continue;\n }\n\n if (isComponent(value)) {\n components.push(value);\n }\n }\n\n return components;\n}\n\nfunction isComponent(value: unknown): value is IComponent {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'componentType' in value &&\n 'isSerializable' in value\n );\n}\n\nexport default memo(EntityComponentList);\n","import { Badge, BadgeProps } from '@mantine/core';\nimport { memo } from 'react';\nimport FormatterCamelCase from './formatter-camel-case';\n\nexport type BadgeListProps = {\n items: (string | number)[];\n badge?: BadgeProps;\n};\n\nfunction BadgeList(props: Readonly<BadgeListProps>) {\n return props.items.map((value, i) => {\n return (\n <Badge key={i} {...(props.badge || [])}>\n <FormatterCamelCase value={value} />\n </Badge>\n );\n });\n}\n\nexport default memo(BadgeList);\n","import { IEntity } from '@awesome-ecs/abstract/entities';\nimport { Accordion, Badge, Stack } from '@mantine/core';\nimport { memo } from 'react';\nimport { useBridgeStoreVersion, useEcsBridge } from '../hooks';\nimport { EcsIdGenerator } from '../utils/id-generator';\nimport BadgeList from './badge-list';\n\nexport type EntityProxyListProps = {\n entity: IEntity;\n};\n\nfunction EntityProxyList(props: Readonly<EntityProxyListProps>) {\n const bridge = useEcsBridge();\n useBridgeStoreVersion('proxies');\n\n const proxies = Array.from(bridge.entityProxyRepository.getAllProxies(props.entity.identity.proxy).values()).flat();\n const items = proxies.map((p) => EcsIdGenerator.entityProxy(p));\n\n return (\n <Accordion.Item key=\"proxies\" value=\"proxies\">\n <Accordion.Control>\n <Badge fullWidth variant=\"light\" rightSection={items.length}>\n Proxies\n </Badge>\n </Accordion.Control>\n <Accordion.Panel>\n <Stack>\n <BadgeList items={items} badge={{ variant: 'outline' }} />\n </Stack>\n </Accordion.Panel>\n </Accordion.Item>\n );\n}\n\nexport default memo(EntityProxyList);\n","import { IEntity } from '@awesome-ecs/abstract/entities';\nimport { Accordion, Badge, Stack } from '@mantine/core';\nimport { memo } from 'react';\nimport { useBridgeStoreVersion, useEcsBridge } from '../hooks';\nimport BadgeList from './badge-list';\n\nexport type EntitySubscriptionListProps = {\n entity: IEntity;\n};\n\nfunction EntitySubscriptionList(props: Readonly<EntitySubscriptionListProps>) {\n const bridge = useEcsBridge();\n useBridgeStoreVersion('subscriptions');\n\n const subscriptions = bridge.entityEventsManager.getSubscriptionsForEntity(props.entity.identity.proxy);\n\n return (\n <Accordion.Item key=\"subscriptions\" value=\"subscriptions\">\n <Accordion.Control>\n <Badge fullWidth variant=\"light\" rightSection={subscriptions.length}>\n Events\n </Badge>\n </Accordion.Control>\n <Accordion.Panel>\n <Stack>\n <BadgeList items={subscriptions} badge={{ variant: 'outline' }} />\n </Stack>\n </Accordion.Panel>\n </Accordion.Item>\n );\n}\n\nexport default memo(EntitySubscriptionList);\n","import { EntityUid } from '@awesome-ecs/abstract/entities';\nimport { Badge } from '@mantine/core';\nimport { memo } from 'react';\nimport { useEntityUpdates } from '../hooks';\n\nexport type EntityUpdateCounterProps = {\n entityUid: EntityUid;\n};\n\nfunction EntityUpdateCounter(props: Readonly<EntityUpdateCounterProps>) {\n const { updates, removes } = useEntityUpdates(props.entityUid);\n\n return (\n <>\n <Badge variant=\"light\">{updates}</Badge>\n <Badge variant=\"light\" color=\"orange\">\n {removes}\n </Badge>\n </>\n );\n}\n\nexport default memo(EntityUpdateCounter);\n","import { IEntity } from '@awesome-ecs/abstract/entities';\nimport { Accordion, Badge, Divider, Group } from '@mantine/core';\nimport EntityComponentList from '../components/entity-component-list';\nimport EntityProxyList from '../components/entity-proxy-list';\nimport EntitySubscriptionList from '../components/entity-subscription-list';\nimport EntityUpdateCounter from '../components/entity-update-counter';\n\nexport type NodeEntityProps = {\n entity: IEntity;\n};\n\nfunction EntityLayout({ entity }: Readonly<NodeEntityProps>) {\n return (\n <>\n <Group>\n <Badge variant=\"outline\" color=\"orange\">\n {entity.identity.proxy.entityUid}\n </Badge>\n <EntityUpdateCounter entityUid={entity.identity.proxy.entityUid} />\n </Group>\n <Divider my={5} />\n <Accordion>\n <EntityComponentList entity={entity} />\n <EntityProxyList entity={entity} />\n <EntitySubscriptionList entity={entity} />\n </Accordion>\n </>\n );\n}\n\nexport default EntityLayout;\n","import { NodeContainer } from '@awesome-flow/core/layout';\nimport { Badge, Stack, Text } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { EntityNodeData } from '../abstract/node-props';\nimport CamelCaseFormatter from '../components/formatter-camel-case';\nimport { useEntity } from '../hooks';\nimport EntityLayout from '../layout/entity-layout';\n\nfunction EntityNode({ id, data, selected, type }: NodeProps<Node<EntityNodeData>>) {\n const entity = useEntity(data.entity);\n const entityType = entity?.identity.proxy.entityType ?? data.entity?.entityType ?? data.entityType;\n const pending = data.spawnStatus === 'queued' && !entity;\n const missingScheduler = data.spawnStatus === 'missing-scheduler';\n\n return (\n <NodeContainer\n id={id}\n selected={selected}\n data={data}\n title={\n <Badge fullWidth variant=\"transparent\">\n <CamelCaseFormatter value={entityType ?? data.title} />\n </Badge>\n }\n type={type}\n >\n {entity && <EntityLayout entity={entity} />}\n {!entity && (\n <Stack gap=\"xs\">\n <Badge variant=\"light\" color={pending ? 'yellow' : 'gray'}>\n {pending ? 'upsert queued' : missingScheduler ? 'scheduler missing' : 'no entity bound'}\n </Badge>\n {data.entity && (\n <Text size=\"xs\" c=\"dimmed\" truncate>\n {data.entity.entityType}:{data.entity.entityUid}\n </Text>\n )}\n </Stack>\n )}\n </NodeContainer>\n );\n}\n\nexport default EntityNode;\n","import { NodeContainer } from '@awesome-flow/core/layout';\nimport { Badge, Group, Stack, Text } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { memo } from 'react';\nimport { EcsToolNodeData } from '../abstract/node-props';\nimport { useScheduler } from '../hooks';\n\nfunction SchedulerNode({ id, data, selected, type }: NodeProps<Node<EcsToolNodeData>>) {\n const scheduler = useScheduler();\n\n return (\n <NodeContainer\n id={id}\n selected={selected}\n data={data}\n title={\n <Badge fullWidth color=\"cyan\" variant=\"transparent\">\n Scheduler\n </Badge>\n }\n type={type}\n >\n <Stack gap=\"xs\">\n <Group gap=\"xs\">\n <Badge variant=\"light\">pending {scheduler?.pendingCount ?? 0}</Badge>\n <Badge variant=\"light\">scheduled {scheduler?.schedules.length ?? 0}</Badge>\n </Group>\n <Group gap=\"xs\">\n <Badge variant={scheduler?.isPaused ? 'filled' : 'outline'} color={scheduler?.isPaused ? 'orange' : 'gray'}>\n {scheduler?.isPaused ? 'paused' : 'running'}\n </Badge>\n <Badge variant=\"outline\">per-frame {scheduler?.frameSubscriptions.length ?? 0}</Badge>\n </Group>\n {!scheduler && (\n <Text size=\"xs\" c=\"dimmed\">\n No scheduler connected.\n </Text>\n )}\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default memo(SchedulerNode);\n","import { NodeCollapse, NodeContainer, GroupBackdrop } from '@awesome-flow/core/layout';\nimport { Badge, Group, Text } from '@mantine/core';\nimport { Node, NodeProps, NodeResizer } from '@xyflow/react';\nimport { memo, useMemo } from 'react';\nimport { useGroupNode } from '@awesome-flow/core/hooks';\nimport { ScopeGroupNodeData } from '../abstract/node-props';\n\nfunction ScopeGroupNode({\n id,\n selected,\n data,\n type,\n width,\n height,\n positionAbsoluteX,\n positionAbsoluteY\n}: NodeProps<Node<ScopeGroupNodeData>>) {\n const { groupNodes, groupData, onCollapsed, isDropTarget } = useGroupNode({ id, data, width, height });\n\n const size = useMemo(\n () => ({\n width: data.initialSize?.width || 320,\n height: data.initialSize?.height || 220\n }),\n [data.initialSize]\n );\n\n const title = useMemo(\n () => (\n <Group justify=\"space-between\" wrap=\"nowrap\">\n <Group gap=\"xs\" wrap=\"nowrap\">\n <Badge size=\"xs\" variant=\"outline\" radius=\"xs\" color=\"teal\">\n {groupNodes?.length || 0}\n </Badge>\n <NodeCollapse nodeId={id} isCollapsed={data.isCollapsed} onCollapsed={onCollapsed} />\n </Group>\n <Text size=\"xs\" c=\"dimmed\" truncate>\n {data.scopeId}\n </Text>\n </Group>\n ),\n [data.scopeId, data.isCollapsed, groupNodes, id, onCollapsed]\n );\n\n return (\n <>\n <GroupBackdrop x={positionAbsoluteX} y={positionAbsoluteY} width={width} height={height} />\n {isDropTarget && <span className=\"flowGroupDropTarget\" aria-hidden=\"true\" />}\n <NodeContainer id={id} selected={selected} data={groupData} title={title} type={type} />\n <NodeResizer nodeId={id} minWidth={size.width} minHeight={size.height} isVisible={selected && !data.isCollapsed} />\n </>\n );\n}\n\nexport default memo(ScopeGroupNode);\n","import { IMiddleware, IPipeline, IPipelineContext } from '@awesome-ecs/abstract/pipelines';\nimport { Accordion, Badge, Stack } from '@mantine/core';\nimport BadgeList from './badge-list';\n\nexport type PipelineMiddlewareListProps = {\n pipeline: IPipeline<IPipelineContext>;\n label: string;\n};\n\nfunction PipelineMiddlewareList(props: Readonly<PipelineMiddlewareListProps>) {\n let middleware: IMiddleware<IPipelineContext>[] = [];\n\n if (props.pipeline) {\n middleware = props.pipeline['middleware'] as IMiddleware<IPipelineContext>[];\n }\n\n const components = middleware.map((m) => {\n return m.name || m.constructor.name;\n });\n\n return (\n <Accordion.Item key={props.label} value={props.label}>\n <Accordion.Control>\n <Badge fullWidth variant=\"light\" rightSection={components.length}>\n {props.label}\n </Badge>\n </Accordion.Control>\n <Accordion.Panel>\n <Stack>\n <BadgeList items={components} badge={{ variant: 'outline' }} />\n </Stack>\n </Accordion.Panel>\n </Accordion.Item>\n );\n}\n\nexport default PipelineMiddlewareList;\n","import { EntityTypeUid, IEntity } from '@awesome-ecs/abstract/entities';\nimport { ISystemsModule, ISystemsRuntimeContext, SystemType } from '@awesome-ecs/abstract/systems';\nimport { Accordion, Text } from '@mantine/core';\nimport PipelineMiddlewareList from '../components/pipeline-middleware-list';\n\nexport type NodeSystemModuleProps = {\n type: EntityTypeUid;\n module: ISystemsModule<IEntity>;\n};\n\nfunction SystemsModuleLayout(props: Readonly<NodeSystemModuleProps>) {\n const { module } = props;\n\n const runtimeContext = module['runtimeContext'] as ISystemsRuntimeContext<IEntity> | undefined;\n const systemsModule = runtimeContext?.systemsModule ?? module;\n\n const error = runtimeContext?.dispatch?.error;\n\n const init = systemsModule.builder.pipelines.get(SystemType.initialize);\n const update = systemsModule.builder.pipelines.get(SystemType.update);\n const render = systemsModule.builder.pipelines.get(SystemType.render);\n const sync = systemsModule.builder.pipelines.get(SystemType.sync);\n\n return (\n <>\n {error && <Text>Error: {formatError(error)}</Text>}\n <Accordion>\n {init && <PipelineMiddlewareList pipeline={init} label=\"Initialize\" />}\n {update && <PipelineMiddlewareList pipeline={update} label=\"Update\" />}\n {render && <PipelineMiddlewareList pipeline={render} label=\"Render\" />}\n {sync && <PipelineMiddlewareList pipeline={sync} label=\"Sync\" />}\n </Accordion>\n </>\n );\n}\n\nfunction formatError(error: unknown): string {\n return error instanceof Error ? error.message : String(error);\n}\n\nexport default SystemsModuleLayout;\n","import { NodeContainer } from '@awesome-flow/core/layout';\nimport { Badge } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { SystemsModuleNodeData } from '../abstract/node-props';\nimport CamelCaseFormatter from '../components/formatter-camel-case';\nimport { useSystemsModule } from '../hooks';\nimport SystemsModuleLayout from '../layout/systems-module-layout';\n\nfunction SystemsModuleNode({ id, data, selected, type }: NodeProps<Node<SystemsModuleNodeData>>) {\n const module = useSystemsModule(data.entityType);\n\n return (\n <NodeContainer\n id={id}\n selected={selected}\n data={data}\n title={\n <Badge fullWidth color=\"indigo\" variant=\"transparent\">\n <CamelCaseFormatter value={data.entityType} />\n </Badge>\n }\n type={type}\n >\n {module && <SystemsModuleLayout type={data.entityType} module={module} />}\n </NodeContainer>\n );\n}\n\nexport default SystemsModuleNode;\n","import { NodeContainer } from '@awesome-flow/core/layout';\nimport { Badge, Group, Stack, Text } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { memo } from 'react';\nimport { EcsToolNodeData } from '../abstract/node-props';\nimport { useMiddlewareMetrics } from '../hooks';\n\nfunction TelemetryNode({ id, data, selected, type }: NodeProps<Node<EcsToolNodeData>>) {\n const metrics = useMiddlewareMetrics();\n const visibleMetrics = metrics.slice(0, data.limit ?? 6);\n\n return (\n <NodeContainer\n id={id}\n selected={selected}\n data={data}\n title={\n <Badge fullWidth color=\"lime\" variant=\"transparent\">\n Telemetry\n </Badge>\n }\n type={type}\n >\n <Stack gap=\"xs\">\n <Badge variant=\"light\">metrics {metrics.length}</Badge>\n {visibleMetrics.length === 0 && (\n <Text size=\"xs\" c=\"dimmed\">\n No metrics recorded.\n </Text>\n )}\n {visibleMetrics.map((metric) => (\n <Group key={`${metric.category}:${metric.name}`} justify=\"space-between\" gap=\"xs\" wrap=\"nowrap\">\n <Text size=\"xs\" truncate>\n {metric.name}\n </Text>\n <Badge size=\"xs\" variant=\"outline\">\n {metric.lastMs.toFixed(2)}ms\n </Badge>\n </Group>\n ))}\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default memo(TelemetryNode);\n","import { NodeContainer } from '@awesome-flow/core/layout';\nimport { Badge, Group, Stack, Text } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { memo } from 'react';\nimport { EcsToolNodeData } from '../abstract/node-props';\nimport { useUpdateQueue } from '../hooks';\nimport { EcsIdGenerator } from '../utils/id-generator';\n\nfunction UpdateQueueNode({ id, data, selected, type }: NodeProps<Node<EcsToolNodeData>>) {\n const queue = useUpdateQueue(data.limit ?? 10);\n const items = queue?.items ?? [];\n\n return (\n <NodeContainer\n id={id}\n selected={selected}\n data={data}\n title={\n <Badge fullWidth color=\"orange\" variant=\"transparent\">\n Dirty Updates\n </Badge>\n }\n type={type}\n >\n <Stack gap=\"xs\">\n <Badge variant=\"light\">dirty {queue?.size ?? 0}</Badge>\n {!queue && (\n <Text size=\"xs\" c=\"dimmed\">\n No runtime scheduler connected.\n </Text>\n )}\n {items.map((item, index) => (\n <Group key={`${item.type}:${EcsIdGenerator.entityProxy(item.entity)}:${index}`} gap=\"xs\" wrap=\"nowrap\">\n <Badge size=\"xs\" variant=\"outline\">\n {item.type}\n </Badge>\n <Text size=\"xs\" truncate>\n {EcsIdGenerator.entityProxy(item.entity)}\n </Text>\n </Group>\n ))}\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default memo(UpdateQueueNode);\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { ScopeGroupNodeData } from '../abstract/node-props';\nimport { EcsNodeType } from '../abstract/node-types';\nimport { EcsTemplateGroup } from '../abstract/templates';\n\nexport class ScopeGroupNodeTemplate implements ITemplateFactory {\n readonly template: NodeTemplate<ScopeGroupNodeData> = {\n type: EcsNodeType.scopeGroup,\n group: EcsTemplateGroup.ecs,\n data: {\n title: 'Scope Group',\n isGroup: true,\n scopeId: null,\n initialSize: {\n width: 420,\n height: 260\n },\n collapsedSize: {\n width: 320,\n height: 80\n }\n },\n handles: []\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/react';\nimport { EcsHandleDataType } from '../abstract/handle-types';\nimport { SystemsModuleNodeData } from '../abstract/node-props';\nimport { EcsNodeType } from '../abstract/node-types';\nimport { EcsTemplateGroup } from '../abstract/templates';\n\nexport class SystemsModuleNodeTemplate implements ITemplateFactory {\n readonly template: NodeTemplate<SystemsModuleNodeData> = {\n type: EcsNodeType.systemsModule,\n group: EcsTemplateGroup.ecs,\n data: {\n title: 'Systems Module',\n entityType: null\n },\n handles: [\n {\n dataType: EcsHandleDataType.module,\n position: Position.Left,\n connection: 'target',\n disabled: true\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { EcsToolNodeData } from '../abstract/node-props';\nimport { EcsNodeType } from '../abstract/node-types';\nimport { EcsTemplateGroup } from '../abstract/templates';\n\nfunction createToolTemplate(type: EcsNodeType, title: string): NodeTemplate<EcsToolNodeData> {\n return {\n type,\n group: EcsTemplateGroup.tools,\n data: {\n title,\n limit: 10,\n initialSize: {\n width: 260,\n height: 180\n }\n },\n handles: []\n };\n}\n\nexport class SchedulerNodeTemplate implements ITemplateFactory {\n readonly template = createToolTemplate(EcsNodeType.scheduler, 'Scheduler');\n}\n\nexport class EventTimelineNodeTemplate implements ITemplateFactory {\n readonly template = createToolTemplate(EcsNodeType.eventTimeline, 'Event Timeline');\n}\n\nexport class TelemetryNodeTemplate implements ITemplateFactory {\n readonly template = createToolTemplate(EcsNodeType.telemetry, 'Telemetry');\n}\n\nexport class UpdateQueueNodeTemplate implements ITemplateFactory {\n readonly template = createToolTemplate(EcsNodeType.updateQueue, 'Dirty Updates');\n}\n","import { NodeTypes } from '@xyflow/react';\nimport EventTimelineNode from '../nodes/node-event-timeline';\nimport EntityNode from '../nodes/node-entity';\nimport SchedulerNode from '../nodes/node-scheduler';\nimport ScopeGroupNode from '../nodes/node-scope-group';\nimport SystemsModuleNode from '../nodes/node-systems-module';\nimport TelemetryNode from '../nodes/node-telemetry';\nimport UpdateQueueNode from '../nodes/node-update-queue';\nimport { EntityNodeTemplate } from '../templates/template-entity-node';\nimport { ScopeGroupNodeTemplate } from '../templates/template-scope-group';\nimport { SystemsModuleNodeTemplate } from '../templates/template-systems-module';\nimport {\n EventTimelineNodeTemplate,\n SchedulerNodeTemplate,\n TelemetryNodeTemplate,\n UpdateQueueNodeTemplate\n} from '../templates/template-tool-nodes';\n\nexport enum EcsNodeType {\n systemsModule = 'systems-module-node',\n entity = 'entity-node',\n scopeGroup = 'scope-group-node',\n scheduler = 'scheduler-node',\n eventTimeline = 'event-timeline-node',\n telemetry = 'telemetry-node',\n updateQueue = 'update-queue-node'\n}\n\nexport const ecsNodeTypes = {\n [EcsNodeType.systemsModule]: SystemsModuleNode,\n [EcsNodeType.entity]: EntityNode,\n [EcsNodeType.scopeGroup]: ScopeGroupNode,\n [EcsNodeType.scheduler]: SchedulerNode,\n [EcsNodeType.eventTimeline]: EventTimelineNode,\n [EcsNodeType.telemetry]: TelemetryNode,\n [EcsNodeType.updateQueue]: UpdateQueueNode\n} satisfies NodeTypes;\n\nexport const ecsNodeTemplates = {\n [EcsNodeType.entity]: new EntityNodeTemplate(),\n [EcsNodeType.systemsModule]: new SystemsModuleNodeTemplate(),\n [EcsNodeType.scopeGroup]: new ScopeGroupNodeTemplate(),\n [EcsNodeType.scheduler]: new SchedulerNodeTemplate(),\n [EcsNodeType.eventTimeline]: new EventTimelineNodeTemplate(),\n [EcsNodeType.telemetry]: new TelemetryNodeTemplate(),\n [EcsNodeType.updateQueue]: new UpdateQueueNodeTemplate()\n};\n"],"mappings":";;;;;;;;;;;;AAIA,SAAOI,eAAA;CACL,MAAAC,SAAeL,WAAWG,eAAe;AAEzC,KAAI,CAACE,OACH,OAAM,IAAIC,MAAM,yDAAyD;AAC1E,QAEMD;;AAGT,SAAOE,sBAAAC,WAAA;CAEL,MAAAC,QADeL,cACK,CAAAM,OAAQF;AAAW,QAEhCP,qBAAqBQ,MAAKE,WAAYF,MAAKG,aAAcH,MAAKG,YAAa;;;;;ACdpF,SAAOK,mBAAAC,SAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAGL,MAAAC,SAAeL,cAAc;AACPD,uBAAsB,WAAW;AAClCA,uBAAsB,UAAU;CAAC,IAAAS;AAAAC,MAAA;AAGpD,MAAI,CAACP,SAAO;GAAA,IAAAQ;AAAA,OAAAP,EAAA,OAAAQ,OAAAC,IAAA,4BAAA,EAAA;AACHF,SAAA,EAAE;AAAAP,MAAA,KAAAO;SAAAA,MAAAP,EAAA;AAATK,QAAOE;AAAP,SAAAD;;EACD,IAAAC;AAAA,MAAAP,EAAA,OAAAE,UAAAF,EAAA,OAAAD,SAAA;AAEMQ,QAAAL,OAAMQ,mBAAoBX,QAAQ;AAAAC,KAAA,KAAAE;AAAAF,KAAA,KAAAD;AAAAC,KAAA,KAAAO;QAAAA,MAAAP,EAAA;AAAzCK,OAAOE;;AAAgD,QALlDF;;;;;ACNT,SAAOa,UAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAGL,MAAAC,SAAeL,cAAc;AACbD,uBAAsB,WAAW;AACjCG,UAAQJ,eAAcU,YAAaN,MAAkB;CAAC,IAAAQ;AAAAC,MAAA;AAGpE,MAAI,CAACT,SAAD,CAAWG,OAAMO,iBAAiBC,IAAKX,MAAM,EAAA;AAC/CQ,QAAOD;AAAP,SAAAE;;EACD,IAAAG;AAAA,MAAAX,EAAA,OAAAE,OAAAO,oBAAAT,EAAA,OAAAD,OAAA;AAEMY,QAAAT,OAAMO,iBAAiBG,UAAoBb,MAAM;AAAAC,KAAA,KAAAE,OAAAO;AAAAT,KAAA,KAAAD;AAAAC,KAAA,KAAAW;QAAAA,MAAAX,EAAA;AAAxDO,OAAOI;;AAAkD,QALpDJ;;;;;ACRT,SAAOW,cAAAC,MAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAGL,MAAAC,SAAeL,cAAc;AACbD,uBAAsB,WAAW;CAAC,IAAAQ;AAAAC,MAAA;AAGhD,MAAIN,SAASO,QAAS;GAAA,IAAAC;AAAA,OAAAP,EAAA,OAAAE,OAAAM,oBAAAR,EAAA,OAAAD,MAAA;AACbQ,SAAAL,OAAMM,iBAAiBC,YAAsBV,KAAK;AAAAC,MAAA,KAAAE,OAAAM;AAAAR,MAAA,KAAAD;AAAAC,MAAA,KAAAO;SAAAA,MAAAP,EAAA;AAAzDI,QAAOG;AAAP,SAAAF;;EACD,IAAAE;AAAA,MAAAP,EAAA,OAAAE,OAAAM,kBAAA;AAEMD,QAAAG,MAAKC,KAAMT,OAAMM,iBAAiBI,SAAU,CAAC;AAAAZ,KAAA,KAAAE,OAAAM;AAAAR,KAAA,KAAAO;QAAAA,MAAAP,EAAA;AAApDI,OAAOG;;AAA2D,QAL7DH;;;;;ACPT,SAAOa,2BAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAAC,SAAeJ,cAAc;AACbD,uBAAsB,cAAc;CAAC,IAAAO;AAAA,KAAAJ,EAAA,OAAAE,QAAA;AAEhCE,OAAAF,OAAMG,0BAA2B;AAAAL,IAAA,KAAAE;AAAAF,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAAjCI;;;;;ACPvB,IAAYE,oBAAL;AACLC;AACAC;;;;;;ACFF,IAAYC,mBAAL;AACLC;AACAC;AACAC;;;;;;ACMF,MAAMU,oBAAoB,CACxB;CACEC;CACAE,UAAUV,SAASW;CACnBC,YAAY;CACZE,UAAU;CACX,EACD;CACEN;CACAE,UAAUV,SAASe;CACnBH,YAAY;CACZE,UAAU;CACX,CACF;AAED,SAAgBE,yBAAyBC,YAAmE;CAC1G,MAAMC,KAAKD,WAAWC,MAAMZ,eAAea,WAAWF,WAAWE,WAAW;AAE5E,QAAO;EACLD,IAAIZ,eAAec,mBAAmBH,WAAWE,YAAYD,GAAG;EAChEG;EACAE,OAAON,WAAWM;EAClBE,MAAM;GACJC,OAAOT,WAAWS,SAAST,WAAWE,WAAWQ,UAAU;GAC3DR,YAAYF,WAAWE;GACvBS,OAAO;IACLC,cAAcX;IACdC,YAAYF,WAAWE;IACvBW,SAASb,WAAWa;IACtB;GACD;EACDC,SAASxB;EACV;;AAGH,IAAayB,qBAAb,MAA4D;CAC1D,AAASC,WAAyC;EAChDZ;EACAE;EACAE,MAAM,EACJC,OAAO,UACR;EACDK,SAASxB;EACV;;;;;AChDH,SAAO+B,uBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAgC,MAAAC,UAAAH,OAAAI,SAAA,OAAAJ;CACrC,MAAAK,cAAoBP,0BAA0B;CAAC,IAAAQ;AAAAC,MAAA;AAG7C,MAAI,CAACJ,SAAO;GAAA,IAAAK;AAAA,OAAAP,EAAA,OAAAQ,OAAAC,IAAA,4BAAA,EAAA;AACHF,SAAA,EAAE;AAAAP,MAAA,KAAAO;SAAAA,MAAAP,EAAA;AAATK,QAAOE;AAAP,SAAAD;;EACD,IAAAC;AAAA,MAAAP,EAAA,OAAAI,aAAA;AAEMG,QAAAH,YAAWM,IAAKd,yBAAyB;AAAAI,KAAA,KAAAI;AAAAJ,KAAA,KAAAO;QAAAA,MAAAP,EAAA;AAAhDK,OAAOE;;AAA0C,QAL5CF;;;;;ACFT,SAAOY,iBAAAC,QAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAAC,SAAeL,cAAc;AACbD,uBAAsB,UAAU;CAAC,IAAAQ;AAAA,KAAAJ,EAAA,OAAAE,UAAAF,EAAA,OAAAD,QAAA;AAE5BK,OAAAF,OAAMG,sBAAuBN,OAAO;AAAAC,IAAA,KAAAE;AAAAF,IAAA,KAAAD;AAAAC,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAApCI;;;;;ACLvB,SAAOM,eAAAC,QAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAAC,SAAeL,cAAc;AACbD,uBAAsB,SAAS;CAAC,IAAAQ;AAAA,KAAAJ,EAAA,OAAAE,UAAAF,EAAA,OAAAD,QAAA;AAE3BK,OAAAF,OAAMG,eAAgBN,OAAO;AAAAC,IAAA,KAAAE;AAAAF,IAAA,KAAAD;AAAAC,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAA7BI;;;;;ACDvB,SAAOS,mBAAAC,YAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAAC,SAAeN,cAAc;AACbD,uBAAsB,UAAU;CAAC,IAAAS;AAAA,KAAAJ,EAAA,OAAAE,UAAAF,EAAA,OAAAF,cAAAE,EAAA,OAAAD,OAAA;AAGzCK,OAAAF,OAAMG,mBAAoBP,YAAYC,MAAM;AAAAC,IAAA,KAAAE;AAAAF,IAAA,KAAAF;AAAAE,IAAA,KAAAD;AAAAC,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAA5CI;;AAKV,SAAOE,qBAAAC,QAAA;CAAA,MAAAP,IAAAC,EAAA,EAAA;CACL,MAAAC,SAAeN,cAAc;AACbD,uBAAsB,UAAU;CAAC,IAAAS;AAAA,KAAAJ,EAAA,OAAAE,UAAAF,EAAA,OAAAO,QAAA;AAE5BH,OAAAF,OAAMM,qBAAsBD,OAAO;AAAAP,IAAA,KAAAE;AAAAF,IAAA,KAAAO;AAAAP,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAAnCI;;;;;AClBvB,SAAOQ,eAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAAC,SAAeJ,cAAc;AACbD,uBAAsB,YAAY;CAAC,IAAAO;AAAA,KAAAJ,EAAA,OAAAE,QAAA;AAE9BE,OAAAF,OAAMG,sBAAuB;AAAAL,IAAA,KAAAE;AAAAF,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAA7BI;;;;;ACJvB,SAAOK,eAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAAC,SAAeJ,cAAc;AACPD,uBAAsB,WAAW;AAClCA,uBAAsB,SAAS;CAAC,IAAAQ;AAAA,KAAAL,EAAA,OAAAE,QAAA;AAEhCG,OAAAH,OAAMI,WAAY;AAAAN,IAAA,KAAAE;AAAAF,IAAA,KAAAK;OAAAA,MAAAL,EAAA;AAAA,QAAlBK;;;;;ACHvB,SAAOQ,iBAAAC,MAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAGL,MAAAC,SAAeL,cAAc;AACbD,uBAAsB,UAAU;CAAC,IAAAQ;AAAAC,MAAA;AAG/C,MAAIN,SAASO,QAAS;AACpBF,QAAOE;AAAP,SAAAD;;EACD,IAAAE;AAAA,MAAAP,EAAA,OAAAE,OAAAM,2BAAAR,EAAA,OAAAD,MAAA;AAEMQ,QAAAL,OAAMM,wBAAwBC,IAAcV,KAAK;AAAAC,KAAA,KAAAE,OAAAM;AAAAR,KAAA,KAAAD;AAAAC,KAAA,KAAAO;QAAAA,MAAAP,EAAA;AAAxDI,OAAOG;;AAAkD,QALpDH;;AAST,SAAOM,uBAAA;CAAA,MAAAV,IAAAC,EAAA,EAAA;CACL,MAAAC,SAAeL,cAAc;AACbD,uBAAsB,UAAU;CAAC,IAAAQ;AAAA,KAAAJ,EAAA,OAAAE,QAAA;AAE5BE,OAAAF,OAAMS,oBAAqB;AAAAX,IAAA,KAAAE;AAAAF,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAA3BI;;;;;ACrBvB,SAAOW,eAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAAC,SAAeL,cAAc;AACbD,uBAAsB,QAAQ;CAAC,IAAAQ;AAAA,KAAAJ,EAAA,OAAAE,UAAAF,EAAA,OAAAD,OAAA;AAE1BK,OAAAF,OAAMG,uBAAwBN,MAAM;AAAAC,IAAA,KAAAE;AAAAF,IAAA,KAAAD;AAAAC,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAApCI;;;;;ACCvB,SAAAa,kBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAA2B,MAAA,EAAAC,IAAAC,MAAAC,UAAAC,SAAAN;CACc,MAAAO,KAAAH,KAAII,SAAJ;CAAgB,IAAAC;AAAA,KAAAR,EAAA,OAAAM,IAAA;AAAzBE,OAAA,EAAAD,OAASD,IAAkB;AAAAN,IAAA,KAAAM;AAAAN,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAAzD,MAAAS,SAAeb,eAAeY,GAA4B;CAAC,IAAAE;AAAA,KAAAV,EAAA,OAAAW,OAAAC,IAAA,4BAAA,EAAA;AAQrDF,OAAA,oBAAC,OAAD;GAAO,WAAA;GAAgB,OAAA;GAAgB,SAAA;aAAc;GAE7C;AAAAV,IAAA,KAAAU;OAAAA,MAAAV,EAAA;CAAA,IAAAa;CAAA,IAAAC;AAAA,KAAAd,EAAA,OAAAS,OAAAM,QAAA;AAKRF,OAAA,qBAAC,OAAD;GAAe,SAAA;aAAf,CAAuB,WAAQJ,OAAMM,OAAgB;;AACpDD,OAAAL,OAAMM,WAAY,KACjB,oBAAC,MAAD;GAAW,MAAA;GAAO,GAAA;aAAS;GAG5B;AAAAf,IAAA,KAAAS,OAAAM;AAAAf,IAAA,KAAAa;AAAAb,IAAA,KAAAc;QAAA;AAAAD,OAAAb,EAAA;AAAAc,OAAAd,EAAA;;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,OAAAS,QAAA;AACAO,OAAAP,OAAMQ,IAAKC,QAgBV;AAAAlB,IAAA,KAAAS;AAAAT,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAmB;AAAA,KAAAnB,EAAA,OAAAa,MAAAb,EAAA,OAAAc,MAAAd,EAAA,QAAAgB,IAAA;AAvBJG,OAAA,qBAAC,OAAD;GAAW,KAAA;aAAX;IACEN;IACCC;IAKAE;IAiBK;;AAAAhB,IAAA,KAAAa;AAAAb,IAAA,KAAAc;AAAAd,IAAA,MAAAgB;AAAAhB,IAAA,MAAAmB;OAAAA,MAAAnB,EAAA;CAAA,IAAAoB;AAAA,KAAApB,EAAA,QAAAG,QAAAH,EAAA,QAAAE,MAAAF,EAAA,QAAAI,YAAAJ,EAAA,QAAAmB,MAAAnB,EAAA,QAAAK,MAAA;AAnCVe,OAAA,oBAAC,eAAD;GACMlB;GACME;GACJD;GAEJ,OAAAO;GAIIL;aAENc;GAyBc;AAAAnB,IAAA,MAAAG;AAAAH,IAAA,MAAAE;AAAAF,IAAA,MAAAI;AAAAJ,IAAA,MAAAmB;AAAAnB,IAAA,MAAAK;AAAAL,IAAA,MAAAoB;OAAAA,MAAApB,EAAA;AAAA,QApChBoB;;AAJJ,SAAAF,QAAAG,OAAA;AAAA,QAuBU,qBAAC,OAAD;EAAgE,KAAA;YAAhE,CACE,qBAAC,OAAD;GAAW,KAAA;GAAU,MAAA;aAArB,CACE,oBAAC,OAAD;IAAY,MAAA;IAAa,SAAA;cACtBA,MAAKE,MAAMpB,KAAKqB;IAEnB,uBAAC,MAAD;IAAW,MAAA;IAAO,GAAA;cACf,IAAIC,KAAKJ,MAAKC,WAAY,CAAAI,oBAAoB;IAEnD,EACA;2BAAC,MAAD;GAAW,MAAA;GAAK,UAAA;aAAhB;IACG7B,eAAc8B,YAAaN,MAAKE,MAAMK,OAAO;IAC7C;IACAP,MAAKE,MAAMM,SAAUhC,eAAc8B,YAAaN,MAAKE,MAAMM,OAA8C,GAAzG,GAAyER,MAAKS,QAAQf,OAAO;IAElG;KAAQ;IAdI,GAAGM,MAAKC,WAAW,GAAID,MAAKE,MAAMpB,KAAKqB,MAc3C;;AAOlB,kCAAe9B,KAAKI,kBAAkB;;;;AC9CtC,SAAAqC,mBAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAD,MAAAF,OAAA;AAEUK,OAAAH,MAAKF,OAAgBM,UAAU,CAAAC,QAAC,mBAAmB,QAAQ;AAAAJ,IAAA,KAAAD,MAAAF;AAAAG,IAAA,KAAAE;OAAAA,MAAAF,EAAA;AAEjE,QACKH;;AAGT,mCAAeH,KAAKI,mBAAmB;;;;ACJvC,SAAAgB,oBAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;AAAA,KAAAR,EAAA,OAAAD,MAAAF,QAAA;EACE,MAAAY,aAAmBC,eAAeX,MAAKF,OAAQ;AAG5CO,OAAAb,UAASoB;AAAUL,OAAA;AAAmBC,OAAA;AACrCC,OAAA,oBAAA,UAAA,SAAA,YACE,oBAAC,OAAD;GAAO,WAAA;GAAkB,SAAA;GAAsB,cAAAC,WAAUG;aAAS;GAGpE,GAAoB;AACnBT,OAAAZ,UAASsB;AACPX,OAAAT;AACEY,OAAAI,WAAUK,IAAKC,QAEd;AAAAf,IAAA,KAAAD,MAAAF;AAAAG,IAAA,KAAAE;AAAAF,IAAA,KAAAG;AAAAH,IAAA,KAAAI;AAAAJ,IAAA,KAAAK;AAAAL,IAAA,KAAAM;AAAAN,IAAA,KAAAO;AAAAP,IAAA,KAAAQ;QAAA;AAAAN,OAAAF,EAAA;AAAAG,OAAAH,EAAA;AAAAI,OAAAJ,EAAA;AAAAK,OAAAL,EAAA;AAAAM,OAAAN,EAAA;AAAAO,OAAAP,EAAA;AAAAQ,OAAAR,EAAA;;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,OAAAE,MAAAF,EAAA,OAAAK,IAAA;AAHJW,OAAA,oBAAC,IAAD,YACGX,IAGK;AAAAL,IAAA,KAAAE;AAAAF,IAAA,KAAAK;AAAAL,IAAA,MAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAiB;AAAA,KAAAjB,EAAA,QAAAG,MAAAH,EAAA,QAAAgB,IAAA;AALVC,OAAA,oBAAC,IAAD,YACED,IAKgB;AAAAhB,IAAA,MAAAG;AAAAH,IAAA,MAAAgB;AAAAhB,IAAA,MAAAiB;OAAAA,MAAAjB,EAAA;CAAA,IAAAkB;AAAA,KAAAlB,EAAA,QAAAI,MAAAJ,EAAA,QAAAM,MAAAN,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MAAAR,EAAA,QAAAiB,IAAA;AAZpBC,OAAA,qBAAC,IAAD;GAAuC,OAAAX;aAAvC,CACEC,IAKAS,GAOe;KAbGX,GAaH;AAAAN,IAAA,MAAAI;AAAAJ,IAAA,MAAAM;AAAAN,IAAA,MAAAO;AAAAP,IAAA,MAAAQ;AAAAR,IAAA,MAAAiB;AAAAjB,IAAA,MAAAkB;OAAAA,MAAAlB,EAAA;AAAA,QAbjBkB;;AAJJ,SAAAH,QAAAI,GAAAC,GAAA;AAAA,QAaY,oBAAC,oCAAD,EAAqCD,WAAAA,GAAa,EAALC,EAAK;;AAQ9D,SAASV,eAAeb,QAA+B;CACrD,MAAMY,aAA2B,EAAE;AACnC,MAAK,MAAM,CAACY,OAAOC,UAAUC,OAAOC,QAAQ3B,OAAO,EAAE;AACnD,MAAIwB,UAAU,WACZ;AAGF,MAAII,YAAYH,MAAM,CACpBb,YAAWiB,KAAKJ,MAAM;;AAI1B,QAAOb;;AAGT,SAASgB,YAAYH,OAAqC;AACxD,QACE,OAAOA,UAAU,YACjBA,UAAU,QACV,mBAAmBA,SACnB,oBAAoBA;;AAIxB,oCAAe5B,KAAKI,oBAAoB;;;;AC9CxC,SAASoC,UAAUC,OAAiC;AAClD,QAAOA,MAAMH,MAAMK,KAAKC,OAAOC,MAAM;AACnC,SACE,oBAAC,OAAD;GAAe,GAAKJ,MAAMF,SAAS,EAAG;aACpC,oBAAC,8BAAD,EAA2BK,OAAM;GAC3B,EAFIC,EAEJ;GAEV;;AAGJ,yBAAeV,KAAKK,UAAU;;;;ACR9B,SAAAiB,gBAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACE,MAAAC,SAAeT,cAAc;AAC7BD,uBAAsB,UAAU;CAAA,IAAAW;AAAA,KAAAH,EAAA,OAAAE,OAAAE,yBAAAJ,EAAA,OAAAD,MAAAF,OAAAQ,SAAAC,OAAA;AAGlBH,OADEK,MAAKC,KAAMP,OAAME,sBAAsBM,cAAeX,MAAKF,OAAOQ,SAASC,MAAO,CAAAK,QAAS,CAAC,CAAAC,MACvF,CAAAC,IAAKC,QAAqC;AAAAd,IAAA,KAAAE,OAAAE;AAAAJ,IAAA,KAAAD,MAAAF,OAAAQ,SAAAC;AAAAN,IAAA,KAAAG;OAAAA,MAAAH,EAAA;CAA/D,MAAAe,QAAcZ;CAAkD,IAAAa;AAAA,KAAAhB,EAAA,OAAAe,MAAAE,QAAA;AAI5DD,OAAA,oBAAA,UAAA,SAAA,YACE,oBAAC,OAAD;GAAO,WAAA;GAAkB,SAAA;GAAsB,cAAAD,MAAKE;aAAS;GAG/D,GAAoB;AAAAjB,IAAA,KAAAe,MAAAE;AAAAjB,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAkB;AAAA,KAAAlB,EAAA,OAAAmB,OAAAC,IAAA,4BAAA,EAAA;AAGgBF,OAAA,EAAAG,SAAW,WAAW;AAAArB,IAAA,KAAAkB;OAAAA,MAAAlB,EAAA;CAAA,IAAAsB;AAAA,KAAAtB,EAAA,OAAAe,OAAA;AAF1DO,OAAA,oBAAA,UAAA,OAAA,YACE,oBAAC,OAAD,YACE,oBAAC,oBAAD;GAAkBP;GAAc,OAAAG;GAClC,GACF,GAAkB;AAAAlB,IAAA,KAAAe;AAAAf,IAAA,KAAAsB;OAAAA,MAAAtB,EAAA;CAAA,IAAAuB;AAAA,KAAAvB,EAAA,OAAAgB,MAAAhB,EAAA,OAAAsB,IAAA;AAVpBC,OAAA,qBAAA,UAAA,MAAA;GAAoC,OAAA;aAApC,CACEP,IAKAM,GAKe;KAXG,UAWH;AAAAtB,IAAA,KAAAgB;AAAAhB,IAAA,KAAAsB;AAAAtB,IAAA,MAAAuB;OAAAA,MAAAvB,EAAA;AAAA,QAXjBuB;;AARJ,SAAAT,QAAAU,GAAA;AAAA,QAKmC9B,eAAc+B,YAAaD,EAAE;;AAkBhE,gCAAejC,KAAKO,gBAAgB;;;;ACxBpC,SAAAsC,uBAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACE,MAAAC,SAAeR,cAAc;AAC7BD,uBAAsB,gBAAgB;CAAA,IAAAU;AAAA,KAAAH,EAAA,OAAAE,OAAAE,uBAAAJ,EAAA,OAAAD,MAAAF,OAAAQ,SAAAC,OAAA;AAEhBH,OAAAD,OAAME,oBAAoBG,0BAA2BR,MAAKF,OAAOQ,SAASC,MAAO;AAAAN,IAAA,KAAAE,OAAAE;AAAAJ,IAAA,KAAAD,MAAAF,OAAAQ,SAAAC;AAAAN,IAAA,KAAAG;OAAAA,MAAAH,EAAA;CAAvG,MAAAQ,gBAAsBL;CAAkF,IAAAM;AAAA,KAAAT,EAAA,OAAAQ,cAAAE,QAAA;AAIpGD,OAAA,oBAAA,UAAA,SAAA,YACE,oBAAC,OAAD;GAAO,WAAA;GAAkB,SAAA;GAAsB,cAAAD,cAAaE;aAAS;GAGvE,GAAoB;AAAAV,IAAA,KAAAQ,cAAAE;AAAAV,IAAA,KAAAS;OAAAA,MAAAT,EAAA;CAAA,IAAAW;AAAA,KAAAX,EAAA,OAAAY,OAAAC,IAAA,4BAAA,EAAA;AAGwBF,OAAA,EAAAG,SAAW,WAAW;AAAAd,IAAA,KAAAW;OAAAA,MAAAX,EAAA;CAAA,IAAAe;AAAA,KAAAf,EAAA,OAAAQ,eAAA;AAFlEO,OAAA,oBAAA,UAAA,OAAA,YACE,oBAAC,OAAD,YACE,oBAAC,oBAAD;GAAkBP,OAAAA;GAAsB,OAAAG;GAC1C,GACF,GAAkB;AAAAX,IAAA,KAAAQ;AAAAR,IAAA,KAAAe;OAAAA,MAAAf,EAAA;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,OAAAS,MAAAT,EAAA,OAAAe,IAAA;AAVpBC,OAAA,qBAAA,UAAA,MAAA;GAA0C,OAAA;aAA1C,CACEP,IAKAM,GAKe;KAXG,gBAWH;AAAAf,IAAA,KAAAS;AAAAT,IAAA,KAAAe;AAAAf,IAAA,MAAAgB;OAAAA,MAAAhB,EAAA;AAAA,QAXjBgB;;AAeJ,uCAAexB,KAAKM,uBAAuB;;;;ACvB3C,SAAAyB,oBAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACE,MAAA,EAAAC,SAAAC,YAA6BR,iBAAiBI,MAAKF,UAAW;CAAC,IAAAO;AAAA,KAAAJ,EAAA,OAAAE,SAAA;AAI3DE,OAAA,oBAAC,OAAD;GAAe,SAAA;aAASF;GAAgB;AAAAF,IAAA,KAAAE;AAAAF,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;CAAA,IAAAK;AAAA,KAAAL,EAAA,OAAAG,SAAA;AACxCE,OAAA,oBAAC,OAAD;GAAe,SAAA;GAAc,OAAA;aAC1BF;GACK;AAAAH,IAAA,KAAAG;AAAAH,IAAA,KAAAK;OAAAA,MAAAL,EAAA;CAAA,IAAAM;AAAA,KAAAN,EAAA,OAAAI,MAAAJ,EAAA,OAAAK,IAAA;AAJVC,OAAA,4CACEF,IACAC,GAGC;AAAAL,IAAA,KAAAI;AAAAJ,IAAA,KAAAK;AAAAL,IAAA,KAAAM;OAAAA,MAAAN,EAAA;AAAA,QALHM;;AASJ,oCAAeZ,KAAKI,oBAAoB;;;;ACXxC,SAAAoB,aAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAAsB,MAAA,EAAAJ,WAAAE;CAAqC,IAAAG;AAAA,KAAAF,EAAA,OAAAH,OAAAM,SAAAC,MAAAC,WAAA;AAGrDH,OAAA,qBAAC,OAAD,aACE,oBAAC,OAAD;GAAe,SAAA;GAAgB,OAAA;aAC5BL,OAAMM,SAASC,MAAMC;GAExB,uBAAC,+BAAD,EAAgC,WAAAR,OAAMM,SAASC,MAAMC,WACvD,EAAQ;AAAAL,IAAA,KAAAH,OAAAM,SAAAC,MAAAC;AAAAL,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAAA,IAAAM;AAAA,KAAAN,EAAA,OAAAO,OAAAC,IAAA,4BAAA,EAAA;AACRF,OAAA,oBAAC,SAAD,EAAa,IAAA,GAAK;AAAAN,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAAA,IAAAS;AAAA,KAAAT,EAAA,OAAAH,QAAA;AAClBY,OAAA,qBAAC,WAAD;GACE,oBAAC,+BAAD,EAA6BZ,QAC7B;uBAAC,2BAAD,EAAyBA,QACzB;uBAAC,kCAAD,EAAgCA,QAClC;GAAY;AAAAG,IAAA,KAAAH;AAAAG,IAAA,KAAAS;OAAAA,MAAAT,EAAA;CAAA,IAAAU;AAAA,KAAAV,EAAA,OAAAE,MAAAF,EAAA,OAAAS,IAAA;AAZdC,OAAA;GACER;GAMAI;GACAG;GAKC;AAAAT,IAAA,KAAAE;AAAAF,IAAA,KAAAS;AAAAT,IAAA,KAAAU;OAAAA,MAAAV,EAAA;AAAA,QAbHU;;;;;ACLJ,SAAAW,WAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAoB,MAAA,EAAAC,IAAAC,MAAAC,UAAAC,SAAAN;CAClB,MAAAO,SAAeV,UAAUO,KAAIG,OAAQ;CACrC,MAAAC,aAAmBD,QAAME,SAAgBC,MAAWF,cAAIJ,KAAIG,QAAmBC,cAAIJ,KAAII;CACvF,MAAAG,UAAgBP,KAAIQ,gBAAiB,YAArB,CAAkCL;CAClD,MAAAM,mBAAyBT,KAAIQ,gBAAiB;CASX,MAAAE,KAAAN,cAAcJ,KAAIW;CAAM,IAAAC;AAAA,KAAAf,EAAA,OAAAa,IAAA;AADrDE,OAAA,oBAAC,OAAD;GAAO,WAAA;GAAkB,SAAA;aACvB,oBAAC,8BAAD,EAA2B,OAAAF,IAC7B;GAAQ;AAAAb,IAAA,KAAAa;AAAAb,IAAA,KAAAe;OAAAA,MAAAf,EAAA;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,OAAAM,QAAA;AAITU,OAAAV,UAAU,oBAAC,cAAD,EAAsBA,QAAU;AAAAN,IAAA,KAAAM;AAAAN,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAiB;AAAA,KAAAjB,EAAA,OAAAG,KAAAG,UAAAN,EAAA,OAAAM,UAAAN,EAAA,OAAAY,oBAAAZ,EAAA,OAAAU,SAAA;AAC1CO,OAAA,CAACX,UACA,qBAAC,OAAD;GAAW,KAAA;aAAX,CACE,oBAAC,OAAD;IAAe,SAAA;IAAe,OAAAI,UAAA,WAAA;cAC3BA,UAAA,kBAA4BE,mBAAA,sBAAA;IAE9B,GAAAT,KAAIG,UACH,qBAAC,MAAD;IAAW,MAAA;IAAO,GAAA;IAAS,UAAA;cAA3B;KACGH,KAAIG,OAAOC;KAAY;KAAEJ,KAAIG,OAAOY;KAEzC;MAEH;;AAAAlB,IAAA,KAAAG,KAAAG;AAAAN,IAAA,KAAAM;AAAAN,IAAA,KAAAY;AAAAZ,IAAA,KAAAU;AAAAV,IAAA,KAAAiB;OAAAA,MAAAjB,EAAA;CAAA,IAAAmB;AAAA,KAAAnB,EAAA,OAAAG,QAAAH,EAAA,QAAAE,MAAAF,EAAA,QAAAI,YAAAJ,EAAA,QAAAe,MAAAf,EAAA,QAAAgB,MAAAhB,EAAA,QAAAiB,MAAAjB,EAAA,QAAAK,MAAA;AAvBHc,OAAA,qBAAC,eAAD;GACMjB;GACME;GACJD;GAEJ,OAAAY;GAIIV;aATR,CAWGW,IACAC,GAYa;;AAAAjB,IAAA,KAAAG;AAAAH,IAAA,MAAAE;AAAAF,IAAA,MAAAI;AAAAJ,IAAA,MAAAe;AAAAf,IAAA,MAAAgB;AAAAhB,IAAA,MAAAiB;AAAAjB,IAAA,MAAAK;AAAAL,IAAA,MAAAmB;OAAAA,MAAAnB,EAAA;AAAA,QAxBhBmB;;;;;ACRJ,SAAAW,cAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAuB,MAAA,EAAAC,IAAAC,MAAAC,UAAAC,SAAAN;CACrB,MAAAO,YAAkBT,cAAc;CAAC,IAAAU;AAAA,KAAAP,EAAA,OAAAQ,OAAAC,IAAA,4BAAA,EAAA;AAQ3BF,OAAA,oBAAC,OAAD;GAAO,WAAA;GAAgB,OAAA;GAAe,SAAA;aAAc;GAE5C;AAAAP,IAAA,KAAAO;OAAAA,MAAAP,EAAA;CAM0B,MAAAU,KAAAJ,WAASK,gBAAT;CAA4B,IAAAC;AAAA,KAAAZ,EAAA,OAAAU,IAAA;AAA5DE,OAAA,qBAAC,OAAD;GAAe,SAAA;aAAf,CAAuB,YAASF,GAAqC;;AAAAV,IAAA,KAAAU;AAAAV,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;CACnC,MAAAa,KAAAP,WAASQ,UAAkBC,UAA3B;CAAgC,IAAAC;AAAA,KAAAhB,EAAA,OAAAa,IAAA;AAAlEG,OAAA,qBAAC,OAAD;GAAe,SAAA;aAAf,CAAuB,cAAWH,GAAyC;;AAAAb,IAAA,KAAAa;AAAAb,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAiB;AAAA,KAAAjB,EAAA,OAAAY,MAAAZ,EAAA,OAAAgB,IAAA;AAF7EC,OAAA,qBAAC,OAAD;GAAW,KAAA;aAAX,CACEL,IACAI,GACM;;AAAAhB,IAAA,KAAAY;AAAAZ,IAAA,KAAAgB;AAAAhB,IAAA,KAAAiB;OAAAA,MAAAjB,EAAA;CAEU,MAAAkB,KAAAZ,WAASa,WAAT,WAAA;CAAmD,MAAAC,KAAAd,WAASa,WAAT,WAAA;CAChE,MAAAE,KAAAf,WAASa,WAAT,WAAA;CAA0C,IAAAG;AAAA,KAAAtB,EAAA,OAAAkB,MAAAlB,EAAA,OAAAoB,MAAApB,EAAA,QAAAqB,IAAA;AAD7CC,QAAA,oBAAC,OAAD;GAAgB,SAAAJ;GAAmD,OAAAE;aAChEC;GACK;AAAArB,IAAA,KAAAkB;AAAAlB,IAAA,KAAAoB;AAAApB,IAAA,MAAAqB;AAAArB,IAAA,MAAAsB;OAAAA,OAAAtB,EAAA;CAC4B,MAAAuB,MAAAjB,WAASkB,mBAA2BT,UAApC;CAAyC,IAAAU;AAAA,KAAAzB,EAAA,QAAAuB,KAAA;AAA7EE,QAAA,qBAAC,OAAD;GAAe,SAAA;aAAf,CAAyB,cAAWF,IAAkD;;AAAAvB,IAAA,MAAAuB;AAAAvB,IAAA,MAAAyB;OAAAA,OAAAzB,EAAA;CAAA,IAAA0B;AAAA,KAAA1B,EAAA,QAAAsB,OAAAtB,EAAA,QAAAyB,KAAA;AAJxFC,QAAA,qBAAC,OAAD;GAAW,KAAA;aAAX,CACEJ,KAGAG,IACM;;AAAAzB,IAAA,MAAAsB;AAAAtB,IAAA,MAAAyB;AAAAzB,IAAA,MAAA0B;OAAAA,OAAA1B,EAAA;CAAA,IAAA2B;AAAA,KAAA3B,EAAA,QAAAM,WAAA;AACPqB,QAAA,CAACrB,aACA,oBAAC,MAAD;GAAW,MAAA;GAAO,GAAA;aAAS;GAG5B;AAAAN,IAAA,MAAAM;AAAAN,IAAA,MAAA2B;OAAAA,OAAA3B,EAAA;CAAA,IAAA4B;AAAA,KAAA5B,EAAA,QAAA0B,OAAA1B,EAAA,QAAA2B,OAAA3B,EAAA,QAAAiB,IAAA;AAfHW,QAAA,qBAAC,OAAD;GAAW,KAAA;aAAX;IACEX;IAIAS;IAMCC;IAKK;;AAAA3B,IAAA,MAAA0B;AAAA1B,IAAA,MAAA2B;AAAA3B,IAAA,MAAAiB;AAAAjB,IAAA,MAAA4B;OAAAA,OAAA5B,EAAA;CAAA,IAAA6B;AAAA,KAAA7B,EAAA,QAAAG,QAAAH,EAAA,QAAAE,MAAAF,EAAA,QAAAI,YAAAJ,EAAA,QAAA4B,OAAA5B,EAAA,QAAAK,MAAA;AA3BVwB,QAAA,oBAAC,eAAD;GACM3B;GACME;GACJD;GAEJ,OAAAI;GAIIF;aAENuB;GAiBc;AAAA5B,IAAA,MAAAG;AAAAH,IAAA,MAAAE;AAAAF,IAAA,MAAAI;AAAAJ,IAAA,MAAA4B;AAAA5B,IAAA,MAAAK;AAAAL,IAAA,MAAA6B;OAAAA,OAAA7B,EAAA;AAAA,QA5BhB6B;;AAgCJ,6BAAelC,KAAKG,cAAc;;;;ACpClC,SAAA6C,eAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAwB,MAAA,EAAAC,IAAAC,UAAAC,MAAAC,MAAAC,OAAAC,QAAAC,mBAAAC,sBAAAV;CASc,IAAAW;AAAA,KAAAV,EAAA,OAAAI,QAAAJ,EAAA,OAAAO,UAAAP,EAAA,OAAAE,MAAAF,EAAA,OAAAM,OAAA;AACsCI,OAAA;GAAAR;GAAAE;GAAAE;GAAAC;GAA2B;AAAAP,IAAA,KAAAI;AAAAJ,IAAA,KAAAO;AAAAP,IAAA,KAAAE;AAAAF,IAAA,KAAAM;AAAAN,IAAA,KAAAU;OAAAA,MAAAV,EAAA;CAArG,MAAA,EAAAW,YAAAC,WAAAC,aAAAC,iBAA6DlB,aAAac,GAA4B;CAI3F,MAAAK,KAAAX,KAAIY,aAAmBV,SAAvB;CACC,MAAAW,KAAAb,KAAIY,aAAoBT,UAAxB;CAA+B,IAAAW;AAAA,KAAAlB,EAAA,OAAAe,MAAAf,EAAA,OAAAiB,IAAA;AAFlCC,OAAA;GAAAZ,OACES;GAA8BR,QAC7BU;GACT;AAAAjB,IAAA,KAAAe;AAAAf,IAAA,KAAAiB;AAAAjB,IAAA,KAAAkB;OAAAA,MAAAlB,EAAA;CAJH,MAAAmB,OACSD;CAYE,MAAAE,KAAAT,YAAUU,UAAV;CAAuB,IAAAC;AAAA,KAAAtB,EAAA,OAAAoB,IAAA;AAD1BE,OAAA,oBAAC,OAAD;GAAY,MAAA;GAAa,SAAA;GAAiB,QAAA;GAAW,OAAA;aAClDF;GACK;AAAApB,IAAA,KAAAoB;AAAApB,IAAA,KAAAsB;OAAAA,MAAAtB,EAAA;CAAA,IAAAuB;AAAA,KAAAvB,EAAA,QAAAI,KAAAoB,eAAAxB,EAAA,QAAAE,MAAAF,EAAA,QAAAa,aAAA;AACRU,OAAA,oBAAC,cAAD;GAAsBrB,QAAAA;GAAiB,aAAAE,KAAIoB;GAA2BX;GAAe;AAAAb,IAAA,MAAAI,KAAAoB;AAAAxB,IAAA,MAAAE;AAAAF,IAAA,MAAAa;AAAAb,IAAA,MAAAuB;OAAAA,MAAAvB,EAAA;CAAA,IAAAyB;AAAA,KAAAzB,EAAA,QAAAsB,MAAAtB,EAAA,QAAAuB,IAAA;AAJvFE,OAAA,qBAAC,OAAD;GAAW,KAAA;GAAU,MAAA;aAArB,CACEH,IAGAC,GACM;;AAAAvB,IAAA,MAAAsB;AAAAtB,IAAA,MAAAuB;AAAAvB,IAAA,MAAAyB;OAAAA,MAAAzB,EAAA;CAAA,IAAA0B;AAAA,KAAA1B,EAAA,QAAAI,KAAAuB,SAAA;AACRD,OAAA,oBAAC,MAAD;GAAW,MAAA;GAAO,GAAA;GAAS,UAAA;aACxBtB,KAAIuB;GACA;AAAA3B,IAAA,MAAAI,KAAAuB;AAAA3B,IAAA,MAAA0B;OAAAA,MAAA1B,EAAA;CAAA,IAAA4B;AAAA,KAAA5B,EAAA,QAAAyB,MAAAzB,EAAA,QAAA0B,IAAA;AATTE,QAAA,qBAAC,OAAD;GAAe,SAAA;GAAqB,MAAA;aAApC,CACEH,IAMAC,GAGM;;AAAA1B,IAAA,MAAAyB;AAAAzB,IAAA,MAAA0B;AAAA1B,IAAA,MAAA4B;OAAAA,OAAA5B,EAAA;CAZZ,MAAA6B,QAEID;CAaF,IAAAE;AAAA,KAAA9B,EAAA,QAAAO,UAAAP,EAAA,QAAAQ,qBAAAR,EAAA,QAAAS,qBAAAT,EAAA,QAAAM,OAAA;AAIEwB,QAAA,oBAAC,eAAD;GAAkBtB,GAAAA;GAAsBC,GAAAA;GAA0BH;GAAeC;GAAU;AAAAP,IAAA,MAAAO;AAAAP,IAAA,MAAAQ;AAAAR,IAAA,MAAAS;AAAAT,IAAA,MAAAM;AAAAN,IAAA,MAAA8B;OAAAA,OAAA9B,EAAA;CAAA,IAAA+B;AAAA,KAAA/B,EAAA,QAAAc,cAAA;AAC1FiB,QAAAjB,gBAAgB,oBAAA,QAAA;GAAgB,WAAA;GAAkC,eAAA;GAAS;AAAAd,IAAA,MAAAc;AAAAd,IAAA,MAAA+B;OAAAA,OAAA/B,EAAA;CAAA,IAAAgC;AAAA,KAAAhC,EAAA,QAAAY,aAAAZ,EAAA,QAAAE,MAAAF,EAAA,QAAAG,YAAAH,EAAA,QAAA6B,SAAA7B,EAAA,QAAAK,MAAA;AAC5E2B,QAAA,oBAAC,eAAD;GAAmB9B;GAAcC;GAAgBS,MAAAA;GAAkBiB;GAAaxB;GAAQ;AAAAL,IAAA,MAAAY;AAAAZ,IAAA,MAAAE;AAAAF,IAAA,MAAAG;AAAAH,IAAA,MAAA6B;AAAA7B,IAAA,MAAAK;AAAAL,IAAA,MAAAgC;OAAAA,OAAAhC,EAAA;CACN,MAAAiC,MAAA9B,YAAA,CAAaC,KAAIoB;CAAY,IAAAU;AAAA,KAAAlC,EAAA,QAAAE,MAAAF,EAAA,QAAAmB,KAAAZ,UAAAP,EAAA,QAAAmB,KAAAb,SAAAN,EAAA,QAAAiC,KAAA;AAA/GC,QAAA,oBAAC,aAAD;GAAqBhC,QAAAA;GAAc,UAAAiB,KAAIb;GAAmB,WAAAa,KAAIZ;GAAoB,WAAA0B;GAAiC;AAAAjC,IAAA,MAAAE;AAAAF,IAAA,MAAAmB,KAAAZ;AAAAP,IAAA,MAAAmB,KAAAb;AAAAN,IAAA,MAAAiC;AAAAjC,IAAA,MAAAkC;OAAAA,OAAAlC,EAAA;CAAA,IAAAmC;AAAA,KAAAnC,EAAA,QAAA8B,OAAA9B,EAAA,QAAA+B,OAAA/B,EAAA,QAAAgC,OAAAhC,EAAA,QAAAkC,KAAA;AAJrHC,QAAA;GACEL;GACCC;GACDC;GACAE;GACC;AAAAlC,IAAA,MAAA8B;AAAA9B,IAAA,MAAA+B;AAAA/B,IAAA,MAAAgC;AAAAhC,IAAA,MAAAkC;AAAAlC,IAAA,MAAAmC;OAAAA,OAAAnC,EAAA;AAAA,QALHmC;;AASJ,+BAAezC,KAAKI,eAAe;;;;AC7CnC,SAAAgD,uBAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAA,IAAAC;AAAA,KAAAF,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AACoDF,OAAA,EAAE;AAAAF,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAApD,IAAAK,aAAkDH;AAElD,KAAIH,MAAKH,SACPS,cAAaN,MAAKH,SAASS;CAC5B,IAAAC;AAAA,KAAAN,EAAA,OAAAK,YAAA;AAEkBC,OAAAD,WAAUE,IAAKC,QAEhC;AAAAR,IAAA,KAAAK;AAAAL,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAFF,MAAAS,aAAmBH;CAEhB,IAAAI;AAAA,KAAAV,EAAA,OAAAS,WAAAE,UAAAX,EAAA,OAAAD,MAAAF,OAAA;AAICa,OAAA,oBAAA,UAAA,SAAA,YACE,oBAAC,OAAD;GAAO,WAAA;GAAkB,SAAA;GAAsB,cAAAD,WAAUE;aACtDZ,MAAKF;GAEV,GAAoB;AAAAG,IAAA,KAAAS,WAAAE;AAAAX,IAAA,KAAAD,MAAAF;AAAAG,IAAA,KAAAU;OAAAA,MAAAV,EAAA;CAAA,IAAAY;AAAA,KAAAZ,EAAA,OAAAG,OAAAC,IAAA,4BAAA,EAAA;AAGqBQ,OAAA,EAAAC,SAAW,WAAW;AAAAb,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;CAAA,IAAAc;AAAA,KAAAd,EAAA,OAAAS,YAAA;AAF/DK,OAAA,oBAAA,UAAA,OAAA,YACE,oBAAC,OAAD,YACE,oBAAC,oBAAD;GAAkBL,OAAAA;GAAmB,OAAAG;GACvC,GACF,GAAkB;AAAAZ,IAAA,KAAAS;AAAAT,IAAA,KAAAc;OAAAA,MAAAd,EAAA;CAAA,IAAAe;AAAA,KAAAf,EAAA,OAAAD,MAAAF,SAAAG,EAAA,QAAAU,MAAAV,EAAA,QAAAc,IAAA;AAVpBC,OAAA,qBAAA,UAAA,MAAA;GAAyC,OAAAhB,MAAKF;aAA9C,CACEa,IAKAI,GAKe;KAXIf,MAAKF,MAWT;AAAAG,IAAA,KAAAD,MAAAF;AAAAG,IAAA,MAAAU;AAAAV,IAAA,MAAAc;AAAAd,IAAA,MAAAe;OAAAA,MAAAf,EAAA;AAAA,QAXjBe;;AAZJ,SAAAP,QAAAQ,GAAA;AAAA,QAQWA,EAACC,QAASD,EAACE,YAAYD;;;;;ACPlC,SAAAa,oBAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACE,MAAA,EAAAJ,WAAmBE;CAEnB,MAAAG,iBAAuBL,OAAMK;CAC7B,MAAAC,gBAAsBD,gBAAcC,iBAAdN;CAEtB,MAAAO,QAAcF,gBAAcG,UAAiBD;CAAC,IAAAE;AAAA,KAAAN,EAAA,OAAAG,cAAAI,QAAAC,WAAA;AAEjCF,OAAAH,cAAaI,QAAQC,UAAUC,IAAKlB,WAAUmB,WAAY;AAAAV,IAAA,KAAAG,cAAAI,QAAAC;AAAAR,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAAvE,MAAAW,OAAaL;CAA2D,IAAAM;AAAA,KAAAZ,EAAA,OAAAG,cAAAI,QAAAC,WAAA;AACzDI,OAAAT,cAAaI,QAAQC,UAAUC,IAAKlB,WAAUsB,OAAQ;AAAAb,IAAA,KAAAG,cAAAI,QAAAC;AAAAR,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;CAArE,MAAAa,SAAeD;CAAuD,IAAAE;AAAA,KAAAd,EAAA,OAAAG,cAAAI,QAAAC,WAAA;AACvDM,OAAAX,cAAaI,QAAQC,UAAUC,IAAKlB,WAAUwB,OAAQ;AAAAf,IAAA,KAAAG,cAAAI,QAAAC;AAAAR,IAAA,KAAAc;OAAAA,MAAAd,EAAA;CAArE,MAAAe,SAAeD;CAAuD,IAAAE;AAAA,KAAAhB,EAAA,OAAAG,cAAAI,QAAAC,WAAA;AACzDQ,OAAAb,cAAaI,QAAQC,UAAUC,IAAKlB,WAAU0B,KAAM;AAAAjB,IAAA,KAAAG,cAAAI,QAAAC;AAAAR,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CAAjE,MAAAiB,OAAaD;CAAqD,IAAAE;AAAA,KAAAlB,EAAA,OAAAI,OAAA;AAI7Dc,OAAAd,SAAS,qBAAC,MAAD,aAAM,WAAQe,YAAYf,MAAK,CAAS;AAAAJ,IAAA,KAAAI;AAAAJ,IAAA,KAAAkB;OAAAA,MAAAlB,EAAA;CAAA,IAAAoB;AAAA,KAAApB,EAAA,QAAAW,MAAA;AAE/CS,OAAAT,QAAQ,oBAAC,wBAAD;GAAkCA,UAAAA;GAAY,OAAA;GAAe;AAAAX,IAAA,MAAAW;AAAAX,IAAA,MAAAoB;OAAAA,MAAApB,EAAA;CAAA,IAAAqB;AAAA,KAAArB,EAAA,QAAAa,QAAA;AACrEQ,OAAAR,UAAU,oBAAC,wBAAD;GAAkCA,UAAAA;GAAc,OAAA;GAAW;AAAAb,IAAA,MAAAa;AAAAb,IAAA,MAAAqB;OAAAA,MAAArB,EAAA;CAAA,IAAAsB;AAAA,KAAAtB,EAAA,QAAAe,QAAA;AACrEO,OAAAP,UAAU,oBAAC,wBAAD;GAAkCA,UAAAA;GAAc,OAAA;GAAW;AAAAf,IAAA,MAAAe;AAAAf,IAAA,MAAAsB;OAAAA,MAAAtB,EAAA;CAAA,IAAAuB;AAAA,KAAAvB,EAAA,QAAAiB,MAAA;AACrEM,OAAAN,QAAQ,oBAAC,wBAAD;GAAkCA,UAAAA;GAAY,OAAA;GAAS;AAAAjB,IAAA,MAAAiB;AAAAjB,IAAA,MAAAuB;OAAAA,MAAAvB,EAAA;CAAA,IAAAwB;AAAA,KAAAxB,EAAA,QAAAoB,MAAApB,EAAA,QAAAqB,MAAArB,EAAA,QAAAsB,MAAAtB,EAAA,QAAAuB,IAAA;AAJlEC,OAAA,qBAAC,WAAD;GACGJ;GACAC;GACAC;GACAC;GACS;AAAAvB,IAAA,MAAAoB;AAAApB,IAAA,MAAAqB;AAAArB,IAAA,MAAAsB;AAAAtB,IAAA,MAAAuB;AAAAvB,IAAA,MAAAwB;OAAAA,MAAAxB,EAAA;CAAA,IAAAyB;AAAA,KAAAzB,EAAA,QAAAkB,MAAAlB,EAAA,QAAAwB,IAAA;AAPdC,QAAA,4CACGP,IACDM,GAMC;AAAAxB,IAAA,MAAAkB;AAAAlB,IAAA,MAAAwB;AAAAxB,IAAA,MAAAyB;OAAAA,OAAAzB,EAAA;AAAA,QARHyB;;AAYJ,SAASN,YAAYf,OAAwB;AAC3C,QAAOA,iBAAiBsB,QAAQtB,MAAMuB,UAAUC,OAAOxB,MAAM;;;;;AC7B/D,SAAAiC,kBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAA2B,MAAA,EAAAC,IAAAC,MAAAC,UAAAC,SAAAN;CACzB,MAAAO,SAAeV,iBAAiBO,KAAII,WAAY;CAAC,IAAAC;AAAA,KAAAR,EAAA,OAAAG,KAAAI,YAAA;AAQ3CC,OAAA,oBAAC,OAAD;GAAO,WAAA;GAAgB,OAAA;GAAiB,SAAA;aACtC,oBAAC,8BAAD,EAA2B,OAAAL,KAAII,YACjC;GAAQ;AAAAP,IAAA,KAAAG,KAAAI;AAAAP,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAAA,IAAAS;AAAA,KAAAT,EAAA,OAAAG,KAAAI,cAAAP,EAAA,OAAAM,QAAA;AAITG,OAAAH,UAAU,oBAAC,qBAAD;GAA2B,MAAAH,KAAII;GAAqBD;GAAU;AAAAN,IAAA,KAAAG,KAAAI;AAAAP,IAAA,KAAAM;AAAAN,IAAA,KAAAS;OAAAA,MAAAT,EAAA;CAAA,IAAAU;AAAA,KAAAV,EAAA,OAAAG,QAAAH,EAAA,OAAAE,MAAAF,EAAA,OAAAI,YAAAJ,EAAA,OAAAQ,MAAAR,EAAA,OAAAS,MAAAT,EAAA,QAAAK,MAAA;AAX3EK,OAAA,oBAAC,eAAD;GACMR;GACME;GACJD;GAEJ,OAAAK;GAIIH;aAELI;GACa;AAAAT,IAAA,KAAAG;AAAAH,IAAA,KAAAE;AAAAF,IAAA,KAAAI;AAAAJ,IAAA,KAAAQ;AAAAR,IAAA,KAAAS;AAAAT,IAAA,MAAAK;AAAAL,IAAA,MAAAU;OAAAA,MAAAV,EAAA;AAAA,QAZhBU;;;;;ACLJ,SAAAW,cAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAuB,MAAA,EAAAC,IAAAC,MAAAC,UAAAC,SAAAN;CACrB,MAAAO,UAAgBT,sBAAsB;CAAC,IAAAU;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;AAAA,KAAAjB,EAAA,OAAAG,QAAAH,EAAA,OAAAE,MAAAF,EAAA,OAAAM,WAAAN,EAAA,OAAAI,YAAAJ,EAAA,OAAAK,MAAA;EACvC,MAAAa,iBAAuBZ,QAAOa,MAAO,GAAGhB,KAAIiB,SAAJ,EAAgB;AAGrDZ,OAAApB;AACKc,OAAAA;AACME,OAAAA;AACJD,OAAAA;AAAI,MAAAH,EAAA,QAAAqB,OAAAC,IAAA,4BAAA,EAAA;AAERN,QAAA,oBAAC,OAAD;IAAO,WAAA;IAAgB,OAAA;IAAe,SAAA;cAAc;IAE5C;AAAAhB,KAAA,MAAAgB;QAAAA,MAAAhB,EAAA;AAEJK,OAAAA;AAELE,OAAAhB;AAAUkB,OAAA;AAAI,MAAAT,EAAA,QAAAM,QAAAiB,QAAA;AACbb,QAAA,qBAAC,OAAD;IAAe,SAAA;cAAf,CAAuB,YAASJ,QAAOiB,OAAgB;;AAAAvB,KAAA,MAAAM,QAAAiB;AAAAvB,KAAA,MAAAU;QAAAA,MAAAV,EAAA;AACtDW,OAAAO,eAAcK,WAAY,KACzB,oBAAC,MAAD;GAAW,MAAA;GAAO,GAAA;aAAS;GAG5B;AACAX,OAAAM,eAAcM,IAAKC,QASlB;AAAAzB,IAAA,KAAAG;AAAAH,IAAA,KAAAE;AAAAF,IAAA,KAAAM;AAAAN,IAAA,KAAAI;AAAAJ,IAAA,KAAAK;AAAAL,IAAA,KAAAO;AAAAP,IAAA,KAAAQ;AAAAR,IAAA,KAAAS;AAAAT,IAAA,KAAAU;AAAAV,IAAA,KAAAW;AAAAX,IAAA,MAAAY;AAAAZ,IAAA,MAAAa;AAAAb,IAAA,MAAAc;AAAAd,IAAA,MAAAe;AAAAf,IAAA,MAAAgB;AAAAhB,IAAA,MAAAiB;QAAA;AAAAV,OAAAP,EAAA;AAAAQ,OAAAR,EAAA;AAAAS,OAAAT,EAAA;AAAAU,OAAAV,EAAA;AAAAW,OAAAX,EAAA;AAAAY,OAAAZ,EAAA;AAAAa,OAAAb,EAAA;AAAAc,OAAAd,EAAA;AAAAe,OAAAf,EAAA;AAAAgB,OAAAhB,EAAA;AAAAiB,OAAAjB,EAAA;;CAAA,IAAA0B;AAAA,KAAA1B,EAAA,QAAAO,MAAAP,EAAA,QAAAS,MAAAT,EAAA,QAAAU,MAAAV,EAAA,QAAAW,MAAAX,EAAA,QAAAY,IAAA;AAhBJc,QAAA,qBAAC,IAAD;GAAW,KAAAjB;aAAX;IACEC;IACCC;IAKAC;IAUK;;AAAAZ,IAAA,MAAAO;AAAAP,IAAA,MAAAS;AAAAT,IAAA,MAAAU;AAAAV,IAAA,MAAAW;AAAAX,IAAA,MAAAY;AAAAZ,IAAA,MAAA0B;OAAAA,OAAA1B,EAAA;CAAA,IAAA2B;AAAA,KAAA3B,EAAA,QAAAQ,MAAAR,EAAA,QAAA0B,OAAA1B,EAAA,QAAAa,MAAAb,EAAA,QAAAc,MAAAd,EAAA,QAAAe,MAAAf,EAAA,QAAAgB,MAAAhB,EAAA,QAAAiB,IAAA;AA5BVU,QAAA,oBAAC,IAAD;GACMzB,IAAAA;GACME,UAAAA;GACJD,MAAAA;GAEJ,OAAAa;GAIIX,MAAAA;aAENqB;GAkBc;AAAA1B,IAAA,MAAAQ;AAAAR,IAAA,MAAA0B;AAAA1B,IAAA,MAAAa;AAAAb,IAAA,MAAAc;AAAAd,IAAA,MAAAe;AAAAf,IAAA,MAAAgB;AAAAhB,IAAA,MAAAiB;AAAAjB,IAAA,MAAA2B;OAAAA,OAAA3B,EAAA;AAAA,QA7BhB2B;;AALJ,SAAAF,QAAAG,QAAA;AAAA,QAwBU,qBAAC,OAAD;EAAyD,SAAA;EAAoB,KAAA;EAAU,MAAA;YAAvF,CACE,oBAAC,MAAD;GAAW,MAAA;GAAK,UAAA;aACbA,OAAME;GAET,wBAAC,OAAD;GAAY,MAAA;GAAa,SAAA;aAAzB,CACGF,OAAMG,OAAOC,QAAS,EAAC,EAAE,KAE9B;KAAQ;IAPI,GAAGJ,OAAMC,SAAS,GAAID,OAAME,OAOhC;;AAOlB,6BAAenC,KAAKG,cAAc;;;;ACrClC,SAAA8C,gBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAyB,MAAA,EAAAC,IAAAC,MAAAC,UAAAC,SAAAN;CACvB,MAAAO,QAAcV,eAAeO,KAAII,SAAJ,GAAiB;CAAC,IAAAC;AAAA,KAAAR,EAAA,OAAAM,OAAAG,OAAA;AACjCD,OAAAF,OAAKG,SAAL,EAAkB;AAAAT,IAAA,KAAAM,OAAAG;AAAAT,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAAhC,MAAAS,QAAcD;CAAmB,IAAAE;AAAA,KAAAV,EAAA,OAAAW,OAAAC,IAAA,4BAAA,EAAA;AAQ3BF,OAAA,oBAAC,OAAD;GAAO,WAAA;GAAgB,OAAA;GAAiB,SAAA;aAAc;GAE9C;AAAAV,IAAA,KAAAU;OAAAA,MAAAV,EAAA;CAKsB,MAAAa,KAAAP,OAAKQ,QAAL;CAAgB,IAAAC;AAAA,KAAAf,EAAA,OAAAa,IAAA;AAA9CE,OAAA,qBAAC,OAAD;GAAe,SAAA;aAAf,CAAuB,UAAOF,GAAyB;;AAAAb,IAAA,KAAAa;AAAAb,IAAA,KAAAe;OAAAA,MAAAf,EAAA;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,OAAAM,OAAA;AACtDU,OAAA,CAACV,SACA,oBAAC,MAAD;GAAW,MAAA;GAAO,GAAA;aAAS;GAG5B;AAAAN,IAAA,KAAAM;AAAAN,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CAAA,IAAAiB;AAAA,KAAAjB,EAAA,OAAAS,OAAA;AACAQ,OAAAR,MAAKS,IAAKC,MAST;AAAAnB,IAAA,KAAAS;AAAAT,IAAA,KAAAiB;OAAAA,MAAAjB,EAAA;CAAA,IAAAoB;AAAA,KAAApB,EAAA,OAAAe,MAAAf,EAAA,QAAAgB,MAAAhB,EAAA,QAAAiB,IAAA;AAhBJG,OAAA,qBAAC,OAAD;GAAW,KAAA;aAAX;IACEL;IACCC;IAKAC;IAUK;;AAAAjB,IAAA,KAAAe;AAAAf,IAAA,MAAAgB;AAAAhB,IAAA,MAAAiB;AAAAjB,IAAA,MAAAoB;OAAAA,MAAApB,EAAA;CAAA,IAAAqB;AAAA,KAAArB,EAAA,QAAAG,QAAAH,EAAA,QAAAE,MAAAF,EAAA,QAAAI,YAAAJ,EAAA,QAAAoB,MAAApB,EAAA,QAAAK,MAAA;AA5BVgB,OAAA,oBAAC,eAAD;GACMnB;GACME;GACJD;GAEJ,OAAAO;GAIIL;aAENe;GAkBc;AAAApB,IAAA,MAAAG;AAAAH,IAAA,MAAAE;AAAAF,IAAA,MAAAI;AAAAJ,IAAA,MAAAoB;AAAApB,IAAA,MAAAK;AAAAL,IAAA,MAAAqB;OAAAA,MAAArB,EAAA;AAAA,QA7BhBqB;;AALJ,SAAAF,MAAAG,MAAAC,OAAA;AAAA,QAwBU,qBAAC,OAAD;EAAoF,KAAA;EAAU,MAAA;YAA9F,CACE,oBAAC,OAAD;GAAY,MAAA;GAAa,SAAA;aACtBD,KAAIjB;GAEP,uBAAC,MAAD;GAAW,MAAA;GAAK,UAAA;aACbR,eAAc2B,YAAaF,KAAIG,OAAO;GAE3C,EAAQ;IAPI,GAAGH,KAAIjB,KAAK,GAAIR,eAAc2B,YAAaF,KAAIG,OAAQ,CAAA,GAAIF,QAO/D;;AAOlB,gCAAe7B,KAAKI,gBAAgB;;;;ACzCpC,IAAaiC,yBAAb,MAAgE;CAC9D,AAASC,WAA6C;EACpDC;EACAE;EACAE,MAAM;GACJC,OAAO;GACPC,SAAS;GACTC,SAAS;GACTC,aAAa;IACXC,OAAO;IACPC,QAAQ;IACT;GACDC,eAAe;IACbF,OAAO;IACPC,QAAQ;IACV;GACD;EACDE,SAAS,EAAA;EACV;;;;;AChBH,IAAaQ,4BAAb,MAAmE;CACjE,AAASC,WAAgD;EACvDC;EACAE;EACAE,MAAM;GACJC,OAAO;GACPC,YAAY;GACb;EACDC,SAAS,CACP;GACEC;GACAE,UAAUjB,SAASkB;GACnBC,YAAY;GACZC,UAAU;GACX,CAAA;EAEJ;;;;;AClBH,SAASM,mBAAmBC,MAAmBC,OAA8C;AAC3F,QAAO;EACLD;EACAE;EACAE,MAAM;GACJH;GACAI,OAAO;GACPC,aAAa;IACXC,OAAO;IACPC,QAAQ;IACV;GACD;EACDC,SAAS,EAAA;EACV;;AAGH,IAAaC,wBAAb,MAA+D;CAC7D,AAASC,WAAWZ,qCAA0C,YAAY;;AAG5E,IAAac,4BAAb,MAAmE;CACjE,AAASF,WAAWZ,0CAA8C,iBAAiB;;AAGrF,IAAagB,wBAAb,MAA+D;CAC7D,AAASJ,WAAWZ,qCAA0C,YAAY;;AAG5E,IAAakB,0BAAb,MAAiE;CAC/D,AAASN,WAAWZ,wCAA4C,gBAAgB;;;;;AChBlF,IAAYmC,cAAL;AACLC;AACAC;AACAC;AACAC;AACAC;AACAC;AACAC;;KACF;AAEA,MAAaC,eAAe;0BACGlB;kBACPH;uBACIE;qBACDD;0BACIF;qBACJK;wBACEC;CAC5B;AAED,MAAaiB,mBAAmB;kBACR,IAAIhB,oBAAoB;0BACjB,IAAIE,2BAA2B;uBAClC,IAAID,wBAAwB;qBAC7B,IAAIG,uBAAuB;0BACvB,IAAID,2BAA2B;qBACnC,IAAIE,uBAAuB;wBACzB,IAAIC,yBAAwB;CACxD"}
@@ -1,9 +1,9 @@
1
1
  const require_id_generator = require('./id-generator-C2_8g29M.cjs');
2
- const require_entity_component_inspector = require('./entity-component-inspector-VlwcaUqy.cjs');
2
+ const require_entity_component_inspector = require('./entity-component-inspector-7f3SijXE.cjs');
3
3
  let react_compiler_runtime = require("react/compiler-runtime");
4
- let _mantine_core = require("@mantine/core");
5
4
  let react = require("react");
6
5
  let _awesome_flow_core_layout = require("@awesome-flow/core/layout");
6
+ let _mantine_core = require("@mantine/core");
7
7
  let _xyflow_react = require("@xyflow/react");
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
9
  let _awesome_flow_core_hooks = require("@awesome-flow/core/hooks");
@@ -964,8 +964,8 @@ var node_scheduler_default = (0, react.memo)(SchedulerNode);
964
964
  //#endregion
965
965
  //#region src/nodes/node-scope-group.tsx
966
966
  function ScopeGroupNode(t0) {
967
- const $ = (0, react_compiler_runtime.c)(36);
968
- const { id, selected, data, type, width, height } = t0;
967
+ const $ = (0, react_compiler_runtime.c)(45);
968
+ const { id, selected, data, type, width, height, positionAbsoluteX, positionAbsoluteY } = t0;
969
969
  let t1;
970
970
  if ($[0] !== data || $[1] !== height || $[2] !== id || $[3] !== width) {
971
971
  t1 = {
@@ -980,7 +980,7 @@ function ScopeGroupNode(t0) {
980
980
  $[3] = width;
981
981
  $[4] = t1;
982
982
  } else t1 = $[4];
983
- const { groupNodes, groupData, onCollapsed } = (0, _awesome_flow_core_hooks.useGroupNode)(t1);
983
+ const { groupNodes, groupData, onCollapsed, isDropTarget } = (0, _awesome_flow_core_hooks.useGroupNode)(t1);
984
984
  const t2 = data.initialSize?.width || 320;
985
985
  const t3 = data.initialSize?.height || 220;
986
986
  let t4;
@@ -1054,44 +1054,74 @@ function ScopeGroupNode(t0) {
1054
1054
  } else t10 = $[21];
1055
1055
  const title = t10;
1056
1056
  let t11;
1057
- if ($[22] !== groupData || $[23] !== id || $[24] !== selected || $[25] !== title || $[26] !== type) {
1058
- t11 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_layout.NodeContainer, {
1057
+ if ($[22] !== height || $[23] !== positionAbsoluteX || $[24] !== positionAbsoluteY || $[25] !== width) {
1058
+ t11 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_layout.GroupBackdrop, {
1059
+ x: positionAbsoluteX,
1060
+ y: positionAbsoluteY,
1061
+ width,
1062
+ height
1063
+ });
1064
+ $[22] = height;
1065
+ $[23] = positionAbsoluteX;
1066
+ $[24] = positionAbsoluteY;
1067
+ $[25] = width;
1068
+ $[26] = t11;
1069
+ } else t11 = $[26];
1070
+ let t12;
1071
+ if ($[27] !== isDropTarget) {
1072
+ t12 = isDropTarget && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
1073
+ className: "flowGroupDropTarget",
1074
+ "aria-hidden": "true"
1075
+ });
1076
+ $[27] = isDropTarget;
1077
+ $[28] = t12;
1078
+ } else t12 = $[28];
1079
+ let t13;
1080
+ if ($[29] !== groupData || $[30] !== id || $[31] !== selected || $[32] !== title || $[33] !== type) {
1081
+ t13 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_awesome_flow_core_layout.NodeContainer, {
1059
1082
  id,
1060
1083
  selected,
1061
1084
  data: groupData,
1062
1085
  title,
1063
1086
  type
1064
1087
  });
1065
- $[22] = groupData;
1066
- $[23] = id;
1067
- $[24] = selected;
1068
- $[25] = title;
1069
- $[26] = type;
1070
- $[27] = t11;
1071
- } else t11 = $[27];
1072
- const t12 = selected && !data.isCollapsed;
1073
- let t13;
1074
- if ($[28] !== id || $[29] !== size.height || $[30] !== size.width || $[31] !== t12) {
1075
- t13 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_xyflow_react.NodeResizer, {
1088
+ $[29] = groupData;
1089
+ $[30] = id;
1090
+ $[31] = selected;
1091
+ $[32] = title;
1092
+ $[33] = type;
1093
+ $[34] = t13;
1094
+ } else t13 = $[34];
1095
+ const t14 = selected && !data.isCollapsed;
1096
+ let t15;
1097
+ if ($[35] !== id || $[36] !== size.height || $[37] !== size.width || $[38] !== t14) {
1098
+ t15 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_xyflow_react.NodeResizer, {
1076
1099
  nodeId: id,
1077
1100
  minWidth: size.width,
1078
1101
  minHeight: size.height,
1079
- isVisible: t12
1102
+ isVisible: t14
1080
1103
  });
1081
- $[28] = id;
1082
- $[29] = size.height;
1083
- $[30] = size.width;
1084
- $[31] = t12;
1085
- $[32] = t13;
1086
- } else t13 = $[32];
1087
- let t14;
1088
- if ($[33] !== t11 || $[34] !== t13) {
1089
- t14 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [t11, t13] });
1090
- $[33] = t11;
1091
- $[34] = t13;
1092
- $[35] = t14;
1093
- } else t14 = $[35];
1094
- return t14;
1104
+ $[35] = id;
1105
+ $[36] = size.height;
1106
+ $[37] = size.width;
1107
+ $[38] = t14;
1108
+ $[39] = t15;
1109
+ } else t15 = $[39];
1110
+ let t16;
1111
+ if ($[40] !== t11 || $[41] !== t12 || $[42] !== t13 || $[43] !== t15) {
1112
+ t16 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
1113
+ t11,
1114
+ t12,
1115
+ t13,
1116
+ t15
1117
+ ] });
1118
+ $[40] = t11;
1119
+ $[41] = t12;
1120
+ $[42] = t13;
1121
+ $[43] = t15;
1122
+ $[44] = t16;
1123
+ } else t16 = $[44];
1124
+ return t16;
1095
1125
  }
1096
1126
  var node_scope_group_default = (0, react.memo)(ScopeGroupNode);
1097
1127
 
@@ -1863,4 +1893,4 @@ Object.defineProperty(exports, 'useUpdateQueue', {
1863
1893
  return useUpdateQueue;
1864
1894
  }
1865
1895
  });
1866
- //# sourceMappingURL=node-types-CNO_-52M.cjs.map
1896
+ //# sourceMappingURL=node-types-Z4QaJir-.cjs.map