@xxmachina/components 19.50.0 → 19.80.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 (118) hide show
  1. package/fesm2022/xxmachina-components-extras-flow.mjs +73 -140
  2. package/fesm2022/xxmachina-components-extras-flow.mjs.map +1 -1
  3. package/fesm2022/xxmachina-components-features-query.mjs +3 -29
  4. package/fesm2022/xxmachina-components-features-query.mjs.map +1 -1
  5. package/fesm2022/xxmachina-components-groups-query-form.mjs +0 -54
  6. package/fesm2022/xxmachina-components-groups-query-form.mjs.map +1 -1
  7. package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs +0 -1
  8. package/fesm2022/xxmachina-components-molecules-inline-edit-field.mjs.map +1 -1
  9. package/fesm2022/xxmachina-components-molecules-user-avatar-menu.mjs +96 -0
  10. package/fesm2022/xxmachina-components-molecules-user-avatar-menu.mjs.map +1 -0
  11. package/fesm2022/xxmachina-components-molecules-weekly-header.mjs +2 -2
  12. package/fesm2022/xxmachina-components-molecules-workspace-selector.mjs +123 -0
  13. package/fesm2022/xxmachina-components-molecules-workspace-selector.mjs.map +1 -0
  14. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs +2 -2
  15. package/fesm2022/xxmachina-components-organisms-calendar-section.mjs.map +1 -1
  16. package/fesm2022/xxmachina-components-organisms-event-input-section.mjs +0 -1
  17. package/fesm2022/xxmachina-components-organisms-event-input-section.mjs.map +1 -1
  18. package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs +2 -18
  19. package/fesm2022/xxmachina-components-organisms-terminal-input-section.mjs.map +1 -1
  20. package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs +0 -3
  21. package/fesm2022/xxmachina-components-organisms-video-trimmer-section.mjs.map +1 -1
  22. package/fesm2022/xxmachina-components-organisms-xterm.mjs +283 -261
  23. package/fesm2022/xxmachina-components-organisms-xterm.mjs.map +1 -1
  24. package/fesm2022/xxmachina-components-pages-command.mjs +3 -9
  25. package/fesm2022/xxmachina-components-pages-command.mjs.map +1 -1
  26. package/fesm2022/xxmachina-components-pages-query-v2.mjs +0 -13
  27. package/fesm2022/xxmachina-components-pages-query-v2.mjs.map +1 -1
  28. package/fesm2022/xxmachina-components-pages-query.mjs +3 -67
  29. package/fesm2022/xxmachina-components-pages-query.mjs.map +1 -1
  30. package/fesm2022/xxmachina-components-pages-thread.mjs +2 -18
  31. package/fesm2022/xxmachina-components-pages-thread.mjs.map +1 -1
  32. package/fesm2022/{xxmachina-components-routes-commands-command.routes-CSwIdXZg.mjs → xxmachina-components-routes-commands-command.routes-Ca2yVrwL.mjs} +1 -2
  33. package/fesm2022/xxmachina-components-routes-commands-command.routes-Ca2yVrwL.mjs.map +1 -0
  34. package/fesm2022/{xxmachina-components-routes-commands-pages.routes-j2xVop4W.mjs → xxmachina-components-routes-commands-pages.routes-COpFeEsz.mjs} +2 -2
  35. package/fesm2022/{xxmachina-components-routes-commands-pages.routes-j2xVop4W.mjs.map → xxmachina-components-routes-commands-pages.routes-COpFeEsz.mjs.map} +1 -1
  36. package/fesm2022/xxmachina-components-routes-commands.mjs +1 -2
  37. package/fesm2022/xxmachina-components-routes-commands.mjs.map +1 -1
  38. package/fesm2022/xxmachina-components-routes-pages.mjs +0 -1
  39. package/fesm2022/xxmachina-components-routes-pages.mjs.map +1 -1
  40. package/fesm2022/xxmachina-components-routes-queries.mjs +0 -2
  41. package/fesm2022/xxmachina-components-routes-queries.mjs.map +1 -1
  42. package/fesm2022/{xxmachina-components-routes-query-pages.routes-CxTbOJDQ.mjs → xxmachina-components-routes-query-pages.routes-BNuONo3g.mjs} +1 -5
  43. package/fesm2022/xxmachina-components-routes-query-pages.routes-BNuONo3g.mjs.map +1 -0
  44. package/fesm2022/xxmachina-components-routes-query.mjs +1 -1
  45. package/fesm2022/{xxmachina-components-routes-resources-pages.routes-CRXxavHb.mjs → xxmachina-components-routes-resources-pages.routes-DEu2qpeu.mjs} +2 -2
  46. package/fesm2022/{xxmachina-components-routes-resources-pages.routes-CRXxavHb.mjs.map → xxmachina-components-routes-resources-pages.routes-DEu2qpeu.mjs.map} +1 -1
  47. package/fesm2022/{xxmachina-components-routes-resources-resource.routes-CkkmqB2_.mjs → xxmachina-components-routes-resources-resource.routes-CWxi2agj.mjs} +1 -2
  48. package/fesm2022/xxmachina-components-routes-resources-resource.routes-CWxi2agj.mjs.map +1 -0
  49. package/fesm2022/xxmachina-components-routes-resources.mjs +1 -1
  50. package/fesm2022/xxmachina-components-routes-transformer.mjs +0 -1
  51. package/fesm2022/xxmachina-components-routes-transformer.mjs.map +1 -1
  52. package/fesm2022/xxmachina-components-services-forms-query.mjs +1 -1
  53. package/fesm2022/xxmachina-components-services-forms-query.mjs.map +1 -1
  54. package/fesm2022/xxmachina-components-services-graphql.mjs +0 -4
  55. package/fesm2022/xxmachina-components-services-graphql.mjs.map +1 -1
  56. package/fesm2022/xxmachina-components-services-json-schema.mjs +6 -12
  57. package/fesm2022/xxmachina-components-services-json-schema.mjs.map +1 -1
  58. package/fesm2022/xxmachina-components-services-query.mjs +0 -7
  59. package/fesm2022/xxmachina-components-services-query.mjs.map +1 -1
  60. package/fesm2022/xxmachina-components-services-recording.mjs +0 -13
  61. package/fesm2022/xxmachina-components-services-recording.mjs.map +1 -1
  62. package/fesm2022/xxmachina-components-services-thread.mjs +0 -2
  63. package/fesm2022/xxmachina-components-services-thread.mjs.map +1 -1
  64. package/fesm2022/xxmachina-components-services-version.mjs +171 -0
  65. package/fesm2022/xxmachina-components-services-version.mjs.map +1 -0
  66. package/fesm2022/xxmachina-components-services-workspace-switcher.mjs +9 -0
  67. package/fesm2022/xxmachina-components-services-workspace-switcher.mjs.map +1 -0
  68. package/fesm2022/xxmachina-components-templates-agent.mjs +98 -146
  69. package/fesm2022/xxmachina-components-templates-agent.mjs.map +1 -1
  70. package/fesm2022/xxmachina-components-templates-background.mjs +10 -30
  71. package/fesm2022/xxmachina-components-templates-background.mjs.map +1 -1
  72. package/fesm2022/xxmachina-components-templates-env.mjs +295 -0
  73. package/fesm2022/xxmachina-components-templates-env.mjs.map +1 -0
  74. package/fesm2022/xxmachina-components-templates-flow-nodes-issue.mjs.map +1 -1
  75. package/fesm2022/xxmachina-components-templates-flow.mjs +1 -1
  76. package/fesm2022/xxmachina-components-templates-flow.mjs.map +1 -1
  77. package/fesm2022/xxmachina-components-templates-machina-icon-button-menu.mjs +78 -0
  78. package/fesm2022/xxmachina-components-templates-machina-icon-button-menu.mjs.map +1 -0
  79. package/fesm2022/xxmachina-components.mjs +9 -10
  80. package/fesm2022/xxmachina-components.mjs.map +1 -1
  81. package/package.json +25 -1
  82. package/types/xxmachina-components-extras-flow.d.ts +8 -43
  83. package/types/xxmachina-components-extras-flow.d.ts.map +1 -1
  84. package/types/xxmachina-components-features-query.d.ts +3 -24
  85. package/types/xxmachina-components-features-query.d.ts.map +1 -1
  86. package/types/xxmachina-components-groups-query-form.d.ts +2 -2
  87. package/types/xxmachina-components-molecules-user-avatar-menu.d.ts +19 -0
  88. package/types/xxmachina-components-molecules-user-avatar-menu.d.ts.map +1 -0
  89. package/types/xxmachina-components-molecules-workspace-selector.d.ts +25 -0
  90. package/types/xxmachina-components-molecules-workspace-selector.d.ts.map +1 -0
  91. package/types/xxmachina-components-organisms-xterm.d.ts +130 -111
  92. package/types/xxmachina-components-organisms-xterm.d.ts.map +1 -1
  93. package/types/xxmachina-components-pages-query-v2.d.ts +0 -3
  94. package/types/xxmachina-components-pages-query-v2.d.ts.map +1 -1
  95. package/types/xxmachina-components-pages-query.d.ts +0 -19
  96. package/types/xxmachina-components-pages-query.d.ts.map +1 -1
  97. package/types/xxmachina-components-services-forms-query.d.ts +1 -1
  98. package/types/xxmachina-components-services-graphql.d.ts +0 -3
  99. package/types/xxmachina-components-services-graphql.d.ts.map +1 -1
  100. package/types/xxmachina-components-services-query.d.ts +0 -7
  101. package/types/xxmachina-components-services-query.d.ts.map +1 -1
  102. package/types/xxmachina-components-services-version.d.ts +32 -0
  103. package/types/xxmachina-components-services-version.d.ts.map +1 -0
  104. package/types/xxmachina-components-services-workspace-switcher.d.ts +17 -0
  105. package/types/xxmachina-components-services-workspace-switcher.d.ts.map +1 -0
  106. package/types/xxmachina-components-templates-agent.d.ts +2 -1
  107. package/types/xxmachina-components-templates-agent.d.ts.map +1 -1
  108. package/types/xxmachina-components-templates-env.d.ts +43 -0
  109. package/types/xxmachina-components-templates-env.d.ts.map +1 -0
  110. package/types/xxmachina-components-templates-flow-nodes-issue.d.ts +0 -2
  111. package/types/xxmachina-components-templates-flow-nodes-issue.d.ts.map +1 -1
  112. package/types/xxmachina-components-templates-machina-icon-button-menu.d.ts +18 -0
  113. package/types/xxmachina-components-templates-machina-icon-button-menu.d.ts.map +1 -0
  114. package/types/xxmachina-components.d.ts +2 -0
  115. package/types/xxmachina-components.d.ts.map +1 -1
  116. package/fesm2022/xxmachina-components-routes-commands-command.routes-CSwIdXZg.mjs.map +0 -1
  117. package/fesm2022/xxmachina-components-routes-query-pages.routes-CxTbOJDQ.mjs.map +0 -1
  118. package/fesm2022/xxmachina-components-routes-resources-resource.routes-CkkmqB2_.mjs.map +0 -1
@@ -1,10 +1,10 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, output, Directive, Component, inject, EnvironmentInjector, createComponent, Injectable, Input, ElementRef, ViewContainerRef, contentChildren, computed, effect, ViewEncapsulation } from '@angular/core';
2
+ import { input, output, Directive, Input, inject, ElementRef, ViewContainerRef, contentChildren, computed, effect, ViewEncapsulation, Component } from '@angular/core';
3
3
  import { NgAtomicComponent } from '@ng-atomic/core';
4
4
  import * as React from 'react';
5
- import React__default, { useMemo, useRef, useEffect, memo, useState } from 'react';
5
+ import React__default, { useRef, useEffect, useMemo, useState } from 'react';
6
6
  import { createRoot } from 'react-dom/client';
7
- import ReactFlow, { useViewport, BackgroundVariant, MiniMap, Controls, Background, ReactFlowProvider, NodeResizer, Handle, Position } from 'reactflow';
7
+ import ReactFlow, { useStore, useViewport, BackgroundVariant, MiniMap, Controls, Background, ReactFlowProvider, NodeResizer, Handle, Position } from 'reactflow';
8
8
 
9
9
  function arePropsEqual(prev, next) {
10
10
  return (prev.props.nodes === next.props.nodes &&
@@ -22,11 +22,41 @@ function arePropsEqual(prev, next) {
22
22
  prev.props.coordinateLabelInterval === next.props.coordinateLabelInterval);
23
23
  }
24
24
 
25
+ const VisibleNodesReporter = ({ marginPx, onChange }) => {
26
+ const visibleIdsKey = useStore((s) => {
27
+ const [tx, ty, zoom] = s.transform;
28
+ const rect = {
29
+ x: (-marginPx - tx) / zoom,
30
+ y: (-marginPx - ty) / zoom,
31
+ width: (s.width + marginPx * 2) / zoom,
32
+ height: (s.height + marginPx * 2) / zoom,
33
+ };
34
+ const ids = [];
35
+ s.nodeInternals.forEach((n) => {
36
+ const pos = n.positionAbsolute ?? n.position;
37
+ const w = n.width;
38
+ const h = n.height;
39
+ const notInitialized = w == null || h == null;
40
+ const overlapX = Math.min(pos.x + (w ?? 0), rect.x + rect.width) - Math.max(pos.x, rect.x);
41
+ const overlapY = Math.min(pos.y + (h ?? 0), rect.y + rect.height) - Math.max(pos.y, rect.y);
42
+ if (notInitialized || n.dragging || (overlapX > 0 && overlapY > 0)) {
43
+ ids.push(n.id);
44
+ }
45
+ });
46
+ return ids.sort().join(' ');
47
+ });
48
+ const onChangeRef = useRef(onChange);
49
+ onChangeRef.current = onChange;
50
+ useEffect(() => {
51
+ onChangeRef.current(visibleIdsKey ? visibleIdsKey.split(' ') : []);
52
+ }, [visibleIdsKey]);
53
+ return null;
54
+ };
55
+
25
56
  const CoordinateLabels = ({ gap, interval }) => {
26
57
  const { x, y, zoom } = useViewport();
27
58
  const labels = useMemo(() => {
28
59
  const result = [];
29
- // Calculate visible range based on viewport (assume 2000x1500 visible area)
30
60
  const viewWidth = 2000 / zoom;
31
61
  const viewHeight = 1500 / zoom;
32
62
  const startX = Math.floor(-x / zoom / gap / interval) * interval;
@@ -75,6 +105,7 @@ const ReactFlowWrapperComponent = ({ props }) => {
75
105
  const minimapStyle = {
76
106
  height: 120,
77
107
  };
108
+ const onVisibleNodesChange = props.onVisibleNodesChange;
78
109
  const mergedProps = {
79
110
  ...props,
80
111
  nodesDraggable: props.nodesDraggable !== false,
@@ -82,13 +113,12 @@ const ReactFlowWrapperComponent = ({ props }) => {
82
113
  elementsSelectable: props.elementsSelectable !== false,
83
114
  proOptions: { hideAttribution: true, ...props.proOptions },
84
115
  };
85
- // Background settings with defaults
116
+ delete mergedProps.onVisibleNodesChange;
86
117
  const showBackground = props.showBackground !== false;
87
118
  const backgroundVariant = props.backgroundVariant ?? BackgroundVariant.Dots;
88
119
  const backgroundGap = props.backgroundGap ?? 16;
89
120
  const backgroundSize = props.backgroundSize ?? 1;
90
121
  const backgroundColor = props.backgroundColor;
91
- // MiniMap and Controls are opt-in (hidden by default)
92
122
  const showMiniMap = props.showMiniMap === true;
93
123
  const showControls = props.showControls === true;
94
124
  const showCoordinateLabels = props.showCoordinateLabels === true;
@@ -111,22 +141,24 @@ const ReactFlowWrapperComponent = ({ props }) => {
111
141
  const gap = typeof backgroundGap === 'number' ? backgroundGap : backgroundGap[0];
112
142
  children.push(React.createElement(CoordinateLabels, { key: 'coordinates', gap, interval: coordinateLabelInterval }));
113
143
  }
144
+ if (onVisibleNodesChange) {
145
+ children.push(React.createElement(VisibleNodesReporter, {
146
+ key: 'visible-nodes-reporter',
147
+ marginPx: 200,
148
+ onChange: onVisibleNodesChange,
149
+ }));
150
+ }
114
151
  return React.createElement(ReactFlowProvider, null, React.createElement(ReactFlow, mergedProps, ...children));
115
152
  };
116
- // Memoize ReactFlowWrapper to prevent unnecessary re-renders
117
- // Re-render when nodes, edges, or background/coordinate settings change
118
153
  const ReactFlowWrapper = React.memo(ReactFlowWrapperComponent, arePropsEqual);
119
154
 
120
155
  class ReactFlowComponentStore {
121
- // Signal inputs
122
156
  nodes = input(...(ngDevMode ? [undefined, { debugName: "nodes" }] : []));
123
157
  edges = input(...(ngDevMode ? [undefined, { debugName: "edges" }] : []));
124
158
  defaultNodes = input(...(ngDevMode ? [undefined, { debugName: "defaultNodes" }] : []));
125
159
  defaultEdges = input(...(ngDevMode ? [undefined, { debugName: "defaultEdges" }] : []));
126
160
  defaultEdgeOptions = input(...(ngDevMode ? [undefined, { debugName: "defaultEdgeOptions" }] : []));
127
- // Node templates for custom rendering
128
161
  nodeTemplates = input(...(ngDevMode ? [undefined, { debugName: "nodeTemplates" }] : []));
129
- // Signal inputs for configuration
130
162
  nodeTypes = input(...(ngDevMode ? [undefined, { debugName: "nodeTypes" }] : []));
131
163
  edgeTypes = input(...(ngDevMode ? [undefined, { debugName: "edgeTypes" }] : []));
132
164
  connectionLineType = input(...(ngDevMode ? [undefined, { debugName: "connectionLineType" }] : []));
@@ -181,7 +213,6 @@ class ReactFlowComponentStore {
181
213
  autoPanOnNodeDrag = input(...(ngDevMode ? [undefined, { debugName: "autoPanOnNodeDrag" }] : []));
182
214
  autoPanOnConnect = input(...(ngDevMode ? [undefined, { debugName: "autoPanOnConnect" }] : []));
183
215
  connectionRadius = input(...(ngDevMode ? [undefined, { debugName: "connectionRadius" }] : []));
184
- // Background configuration
185
216
  backgroundVariant = input(...(ngDevMode ? [undefined, { debugName: "backgroundVariant" }] : []));
186
217
  backgroundGap = input(...(ngDevMode ? [undefined, { debugName: "backgroundGap" }] : []));
187
218
  backgroundColor = input(...(ngDevMode ? [undefined, { debugName: "backgroundColor" }] : []));
@@ -191,7 +222,6 @@ class ReactFlowComponentStore {
191
222
  showControls = input(...(ngDevMode ? [undefined, { debugName: "showControls" }] : []));
192
223
  showCoordinateLabels = input(...(ngDevMode ? [undefined, { debugName: "showCoordinateLabels" }] : []));
193
224
  coordinateLabelInterval = input(...(ngDevMode ? [undefined, { debugName: "coordinateLabelInterval" }] : []));
194
- // Signal outputs for events
195
225
  onNodeClick = output();
196
226
  onNodeDoubleClick = output();
197
227
  onNodeMouseEnter = output();
@@ -240,96 +270,35 @@ class ReactFlowComponentStore {
240
270
  onPaneMouseLeave = output();
241
271
  onError = output();
242
272
  onNodeResizeEnd = output();
273
+ onVisibleNodesChange = output();
243
274
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ReactFlowComponentStore, deps: [], target: i0.ɵɵFactoryTarget.Directive });
244
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: ReactFlowComponentStore, isStandalone: true, inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, edges: { classPropertyName: "edges", publicName: "edges", isSignal: true, isRequired: false, transformFunction: null }, defaultNodes: { classPropertyName: "defaultNodes", publicName: "defaultNodes", isSignal: true, isRequired: false, transformFunction: null }, defaultEdges: { classPropertyName: "defaultEdges", publicName: "defaultEdges", isSignal: true, isRequired: false, transformFunction: null }, defaultEdgeOptions: { classPropertyName: "defaultEdgeOptions", publicName: "defaultEdgeOptions", isSignal: true, isRequired: false, transformFunction: null }, nodeTemplates: { classPropertyName: "nodeTemplates", publicName: "nodeTemplates", isSignal: true, isRequired: false, transformFunction: null }, nodeTypes: { classPropertyName: "nodeTypes", publicName: "nodeTypes", isSignal: true, isRequired: false, transformFunction: null }, edgeTypes: { classPropertyName: "edgeTypes", publicName: "edgeTypes", isSignal: true, isRequired: false, transformFunction: null }, connectionLineType: { classPropertyName: "connectionLineType", publicName: "connectionLineType", isSignal: true, isRequired: false, transformFunction: null }, connectionLineStyle: { classPropertyName: "connectionLineStyle", publicName: "connectionLineStyle", isSignal: true, isRequired: false, transformFunction: null }, connectionLineComponent: { classPropertyName: "connectionLineComponent", publicName: "connectionLineComponent", isSignal: true, isRequired: false, transformFunction: null }, connectionLineContainerStyle: { classPropertyName: "connectionLineContainerStyle", publicName: "connectionLineContainerStyle", isSignal: true, isRequired: false, transformFunction: null }, connectionMode: { classPropertyName: "connectionMode", publicName: "connectionMode", isSignal: true, isRequired: false, transformFunction: null }, deleteKeyCode: { classPropertyName: "deleteKeyCode", publicName: "deleteKeyCode", isSignal: true, isRequired: false, transformFunction: null }, selectionKeyCode: { classPropertyName: "selectionKeyCode", publicName: "selectionKeyCode", isSignal: true, isRequired: false, transformFunction: null }, selectionOnDrag: { classPropertyName: "selectionOnDrag", publicName: "selectionOnDrag", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, panActivationKeyCode: { classPropertyName: "panActivationKeyCode", publicName: "panActivationKeyCode", isSignal: true, isRequired: false, transformFunction: null }, multiSelectionKeyCode: { classPropertyName: "multiSelectionKeyCode", publicName: "multiSelectionKeyCode", isSignal: true, isRequired: false, transformFunction: null }, zoomActivationKeyCode: { classPropertyName: "zoomActivationKeyCode", publicName: "zoomActivationKeyCode", isSignal: true, isRequired: false, transformFunction: null }, snapToGrid: { classPropertyName: "snapToGrid", publicName: "snapToGrid", isSignal: true, isRequired: false, transformFunction: null }, snapGrid: { classPropertyName: "snapGrid", publicName: "snapGrid", isSignal: true, isRequired: false, transformFunction: null }, onlyRenderVisibleElements: { classPropertyName: "onlyRenderVisibleElements", publicName: "onlyRenderVisibleElements", isSignal: true, isRequired: false, transformFunction: null }, nodesDraggable: { classPropertyName: "nodesDraggable", publicName: "nodesDraggable", isSignal: true, isRequired: false, transformFunction: null }, nodesConnectable: { classPropertyName: "nodesConnectable", publicName: "nodesConnectable", isSignal: true, isRequired: false, transformFunction: null }, nodesFocusable: { classPropertyName: "nodesFocusable", publicName: "nodesFocusable", isSignal: true, isRequired: false, transformFunction: null }, nodeOrigin: { classPropertyName: "nodeOrigin", publicName: "nodeOrigin", isSignal: true, isRequired: false, transformFunction: null }, edgesFocusable: { classPropertyName: "edgesFocusable", publicName: "edgesFocusable", isSignal: true, isRequired: false, transformFunction: null }, initNodeOrigin: { classPropertyName: "initNodeOrigin", publicName: "initNodeOrigin", isSignal: true, isRequired: false, transformFunction: null }, elementsSelectable: { classPropertyName: "elementsSelectable", publicName: "elementsSelectable", isSignal: true, isRequired: false, transformFunction: null }, selectNodesOnDrag: { classPropertyName: "selectNodesOnDrag", publicName: "selectNodesOnDrag", isSignal: true, isRequired: false, transformFunction: null }, panOnDrag: { classPropertyName: "panOnDrag", publicName: "panOnDrag", isSignal: true, isRequired: false, transformFunction: null }, minZoom: { classPropertyName: "minZoom", publicName: "minZoom", isSignal: true, isRequired: false, transformFunction: null }, maxZoom: { classPropertyName: "maxZoom", publicName: "maxZoom", isSignal: true, isRequired: false, transformFunction: null }, defaultViewport: { classPropertyName: "defaultViewport", publicName: "defaultViewport", isSignal: true, isRequired: false, transformFunction: null }, translateExtent: { classPropertyName: "translateExtent", publicName: "translateExtent", isSignal: true, isRequired: false, transformFunction: null }, preventScrolling: { classPropertyName: "preventScrolling", publicName: "preventScrolling", isSignal: true, isRequired: false, transformFunction: null }, nodeExtent: { classPropertyName: "nodeExtent", publicName: "nodeExtent", isSignal: true, isRequired: false, transformFunction: null }, defaultMarkerColor: { classPropertyName: "defaultMarkerColor", publicName: "defaultMarkerColor", isSignal: true, isRequired: false, transformFunction: null }, zoomOnScroll: { classPropertyName: "zoomOnScroll", publicName: "zoomOnScroll", isSignal: true, isRequired: false, transformFunction: null }, zoomOnPinch: { classPropertyName: "zoomOnPinch", publicName: "zoomOnPinch", isSignal: true, isRequired: false, transformFunction: null }, panOnScroll: { classPropertyName: "panOnScroll", publicName: "panOnScroll", isSignal: true, isRequired: false, transformFunction: null }, panOnScrollSpeed: { classPropertyName: "panOnScrollSpeed", publicName: "panOnScrollSpeed", isSignal: true, isRequired: false, transformFunction: null }, panOnScrollMode: { classPropertyName: "panOnScrollMode", publicName: "panOnScrollMode", isSignal: true, isRequired: false, transformFunction: null }, zoomOnDoubleClick: { classPropertyName: "zoomOnDoubleClick", publicName: "zoomOnDoubleClick", isSignal: true, isRequired: false, transformFunction: null }, edgeUpdaterRadius: { classPropertyName: "edgeUpdaterRadius", publicName: "edgeUpdaterRadius", isSignal: true, isRequired: false, transformFunction: null }, noDragClassName: { classPropertyName: "noDragClassName", publicName: "noDragClassName", isSignal: true, isRequired: false, transformFunction: null }, noWheelClassName: { classPropertyName: "noWheelClassName", publicName: "noWheelClassName", isSignal: true, isRequired: false, transformFunction: null }, noPanClassName: { classPropertyName: "noPanClassName", publicName: "noPanClassName", isSignal: true, isRequired: false, transformFunction: null }, fitView: { classPropertyName: "fitView", publicName: "fitView", isSignal: true, isRequired: false, transformFunction: null }, fitViewOptions: { classPropertyName: "fitViewOptions", publicName: "fitViewOptions", isSignal: true, isRequired: false, transformFunction: null }, connectOnClick: { classPropertyName: "connectOnClick", publicName: "connectOnClick", isSignal: true, isRequired: false, transformFunction: null }, attributionPosition: { classPropertyName: "attributionPosition", publicName: "attributionPosition", isSignal: true, isRequired: false, transformFunction: null }, proOptions: { classPropertyName: "proOptions", publicName: "proOptions", isSignal: true, isRequired: false, transformFunction: null }, elevateNodesOnSelect: { classPropertyName: "elevateNodesOnSelect", publicName: "elevateNodesOnSelect", isSignal: true, isRequired: false, transformFunction: null }, elevateEdgesOnSelect: { classPropertyName: "elevateEdgesOnSelect", publicName: "elevateEdgesOnSelect", isSignal: true, isRequired: false, transformFunction: null }, disableKeyboardA11y: { classPropertyName: "disableKeyboardA11y", publicName: "disableKeyboardA11y", isSignal: true, isRequired: false, transformFunction: null }, autoPanOnNodeDrag: { classPropertyName: "autoPanOnNodeDrag", publicName: "autoPanOnNodeDrag", isSignal: true, isRequired: false, transformFunction: null }, autoPanOnConnect: { classPropertyName: "autoPanOnConnect", publicName: "autoPanOnConnect", isSignal: true, isRequired: false, transformFunction: null }, connectionRadius: { classPropertyName: "connectionRadius", publicName: "connectionRadius", isSignal: true, isRequired: false, transformFunction: null }, backgroundVariant: { classPropertyName: "backgroundVariant", publicName: "backgroundVariant", isSignal: true, isRequired: false, transformFunction: null }, backgroundGap: { classPropertyName: "backgroundGap", publicName: "backgroundGap", isSignal: true, isRequired: false, transformFunction: null }, backgroundColor: { classPropertyName: "backgroundColor", publicName: "backgroundColor", isSignal: true, isRequired: false, transformFunction: null }, backgroundSize: { classPropertyName: "backgroundSize", publicName: "backgroundSize", isSignal: true, isRequired: false, transformFunction: null }, showBackground: { classPropertyName: "showBackground", publicName: "showBackground", isSignal: true, isRequired: false, transformFunction: null }, showMiniMap: { classPropertyName: "showMiniMap", publicName: "showMiniMap", isSignal: true, isRequired: false, transformFunction: null }, showControls: { classPropertyName: "showControls", publicName: "showControls", isSignal: true, isRequired: false, transformFunction: null }, showCoordinateLabels: { classPropertyName: "showCoordinateLabels", publicName: "showCoordinateLabels", isSignal: true, isRequired: false, transformFunction: null }, coordinateLabelInterval: { classPropertyName: "coordinateLabelInterval", publicName: "coordinateLabelInterval", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNodeClick: "onNodeClick", onNodeDoubleClick: "onNodeDoubleClick", onNodeMouseEnter: "onNodeMouseEnter", onNodeMouseMove: "onNodeMouseMove", onNodeMouseLeave: "onNodeMouseLeave", onNodeContextMenu: "onNodeContextMenu", onNodeDragStart: "onNodeDragStart", onNodeDrag: "onNodeDrag", onNodeDragStop: "onNodeDragStop", onEdgeClick: "onEdgeClick", onEdgeUpdate: "onEdgeUpdate", onEdgeContextMenu: "onEdgeContextMenu", onEdgeMouseEnter: "onEdgeMouseEnter", onEdgeMouseMove: "onEdgeMouseMove", onEdgeMouseLeave: "onEdgeMouseLeave", onEdgeDoubleClick: "onEdgeDoubleClick", onEdgeUpdateStart: "onEdgeUpdateStart", onEdgeUpdateEnd: "onEdgeUpdateEnd", onNodesChange: "onNodesChange", onEdgesChange: "onEdgesChange", onNodesDelete: "onNodesDelete", onEdgesDelete: "onEdgesDelete", onSelectionDragStart: "onSelectionDragStart", onSelectionDrag: "onSelectionDrag", onSelectionDragStop: "onSelectionDragStop", onSelectionStart: "onSelectionStart", onSelectionEnd: "onSelectionEnd", onSelectionContextMenu: "onSelectionContextMenu", onConnect: "onConnect", onConnectStart: "onConnectStart", onConnectEnd: "onConnectEnd", onClickConnectStart: "onClickConnectStart", onClickConnectEnd: "onClickConnectEnd", onDragOver: "onDragOver", onDrop: "onDrop", onInit: "onInit", onMove: "onMove", onMoveStart: "onMoveStart", onMoveEnd: "onMoveEnd", onSelectionChange: "onSelectionChange", onPaneScroll: "onPaneScroll", onPaneClick: "onPaneClick", onPaneContextMenu: "onPaneContextMenu", onPaneMouseEnter: "onPaneMouseEnter", onPaneMouseMove: "onPaneMouseMove", onPaneMouseLeave: "onPaneMouseLeave", onError: "onError", onNodeResizeEnd: "onNodeResizeEnd" }, ngImport: i0 });
275
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.1.6", type: ReactFlowComponentStore, isStandalone: true, inputs: { nodes: { classPropertyName: "nodes", publicName: "nodes", isSignal: true, isRequired: false, transformFunction: null }, edges: { classPropertyName: "edges", publicName: "edges", isSignal: true, isRequired: false, transformFunction: null }, defaultNodes: { classPropertyName: "defaultNodes", publicName: "defaultNodes", isSignal: true, isRequired: false, transformFunction: null }, defaultEdges: { classPropertyName: "defaultEdges", publicName: "defaultEdges", isSignal: true, isRequired: false, transformFunction: null }, defaultEdgeOptions: { classPropertyName: "defaultEdgeOptions", publicName: "defaultEdgeOptions", isSignal: true, isRequired: false, transformFunction: null }, nodeTemplates: { classPropertyName: "nodeTemplates", publicName: "nodeTemplates", isSignal: true, isRequired: false, transformFunction: null }, nodeTypes: { classPropertyName: "nodeTypes", publicName: "nodeTypes", isSignal: true, isRequired: false, transformFunction: null }, edgeTypes: { classPropertyName: "edgeTypes", publicName: "edgeTypes", isSignal: true, isRequired: false, transformFunction: null }, connectionLineType: { classPropertyName: "connectionLineType", publicName: "connectionLineType", isSignal: true, isRequired: false, transformFunction: null }, connectionLineStyle: { classPropertyName: "connectionLineStyle", publicName: "connectionLineStyle", isSignal: true, isRequired: false, transformFunction: null }, connectionLineComponent: { classPropertyName: "connectionLineComponent", publicName: "connectionLineComponent", isSignal: true, isRequired: false, transformFunction: null }, connectionLineContainerStyle: { classPropertyName: "connectionLineContainerStyle", publicName: "connectionLineContainerStyle", isSignal: true, isRequired: false, transformFunction: null }, connectionMode: { classPropertyName: "connectionMode", publicName: "connectionMode", isSignal: true, isRequired: false, transformFunction: null }, deleteKeyCode: { classPropertyName: "deleteKeyCode", publicName: "deleteKeyCode", isSignal: true, isRequired: false, transformFunction: null }, selectionKeyCode: { classPropertyName: "selectionKeyCode", publicName: "selectionKeyCode", isSignal: true, isRequired: false, transformFunction: null }, selectionOnDrag: { classPropertyName: "selectionOnDrag", publicName: "selectionOnDrag", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, panActivationKeyCode: { classPropertyName: "panActivationKeyCode", publicName: "panActivationKeyCode", isSignal: true, isRequired: false, transformFunction: null }, multiSelectionKeyCode: { classPropertyName: "multiSelectionKeyCode", publicName: "multiSelectionKeyCode", isSignal: true, isRequired: false, transformFunction: null }, zoomActivationKeyCode: { classPropertyName: "zoomActivationKeyCode", publicName: "zoomActivationKeyCode", isSignal: true, isRequired: false, transformFunction: null }, snapToGrid: { classPropertyName: "snapToGrid", publicName: "snapToGrid", isSignal: true, isRequired: false, transformFunction: null }, snapGrid: { classPropertyName: "snapGrid", publicName: "snapGrid", isSignal: true, isRequired: false, transformFunction: null }, onlyRenderVisibleElements: { classPropertyName: "onlyRenderVisibleElements", publicName: "onlyRenderVisibleElements", isSignal: true, isRequired: false, transformFunction: null }, nodesDraggable: { classPropertyName: "nodesDraggable", publicName: "nodesDraggable", isSignal: true, isRequired: false, transformFunction: null }, nodesConnectable: { classPropertyName: "nodesConnectable", publicName: "nodesConnectable", isSignal: true, isRequired: false, transformFunction: null }, nodesFocusable: { classPropertyName: "nodesFocusable", publicName: "nodesFocusable", isSignal: true, isRequired: false, transformFunction: null }, nodeOrigin: { classPropertyName: "nodeOrigin", publicName: "nodeOrigin", isSignal: true, isRequired: false, transformFunction: null }, edgesFocusable: { classPropertyName: "edgesFocusable", publicName: "edgesFocusable", isSignal: true, isRequired: false, transformFunction: null }, initNodeOrigin: { classPropertyName: "initNodeOrigin", publicName: "initNodeOrigin", isSignal: true, isRequired: false, transformFunction: null }, elementsSelectable: { classPropertyName: "elementsSelectable", publicName: "elementsSelectable", isSignal: true, isRequired: false, transformFunction: null }, selectNodesOnDrag: { classPropertyName: "selectNodesOnDrag", publicName: "selectNodesOnDrag", isSignal: true, isRequired: false, transformFunction: null }, panOnDrag: { classPropertyName: "panOnDrag", publicName: "panOnDrag", isSignal: true, isRequired: false, transformFunction: null }, minZoom: { classPropertyName: "minZoom", publicName: "minZoom", isSignal: true, isRequired: false, transformFunction: null }, maxZoom: { classPropertyName: "maxZoom", publicName: "maxZoom", isSignal: true, isRequired: false, transformFunction: null }, defaultViewport: { classPropertyName: "defaultViewport", publicName: "defaultViewport", isSignal: true, isRequired: false, transformFunction: null }, translateExtent: { classPropertyName: "translateExtent", publicName: "translateExtent", isSignal: true, isRequired: false, transformFunction: null }, preventScrolling: { classPropertyName: "preventScrolling", publicName: "preventScrolling", isSignal: true, isRequired: false, transformFunction: null }, nodeExtent: { classPropertyName: "nodeExtent", publicName: "nodeExtent", isSignal: true, isRequired: false, transformFunction: null }, defaultMarkerColor: { classPropertyName: "defaultMarkerColor", publicName: "defaultMarkerColor", isSignal: true, isRequired: false, transformFunction: null }, zoomOnScroll: { classPropertyName: "zoomOnScroll", publicName: "zoomOnScroll", isSignal: true, isRequired: false, transformFunction: null }, zoomOnPinch: { classPropertyName: "zoomOnPinch", publicName: "zoomOnPinch", isSignal: true, isRequired: false, transformFunction: null }, panOnScroll: { classPropertyName: "panOnScroll", publicName: "panOnScroll", isSignal: true, isRequired: false, transformFunction: null }, panOnScrollSpeed: { classPropertyName: "panOnScrollSpeed", publicName: "panOnScrollSpeed", isSignal: true, isRequired: false, transformFunction: null }, panOnScrollMode: { classPropertyName: "panOnScrollMode", publicName: "panOnScrollMode", isSignal: true, isRequired: false, transformFunction: null }, zoomOnDoubleClick: { classPropertyName: "zoomOnDoubleClick", publicName: "zoomOnDoubleClick", isSignal: true, isRequired: false, transformFunction: null }, edgeUpdaterRadius: { classPropertyName: "edgeUpdaterRadius", publicName: "edgeUpdaterRadius", isSignal: true, isRequired: false, transformFunction: null }, noDragClassName: { classPropertyName: "noDragClassName", publicName: "noDragClassName", isSignal: true, isRequired: false, transformFunction: null }, noWheelClassName: { classPropertyName: "noWheelClassName", publicName: "noWheelClassName", isSignal: true, isRequired: false, transformFunction: null }, noPanClassName: { classPropertyName: "noPanClassName", publicName: "noPanClassName", isSignal: true, isRequired: false, transformFunction: null }, fitView: { classPropertyName: "fitView", publicName: "fitView", isSignal: true, isRequired: false, transformFunction: null }, fitViewOptions: { classPropertyName: "fitViewOptions", publicName: "fitViewOptions", isSignal: true, isRequired: false, transformFunction: null }, connectOnClick: { classPropertyName: "connectOnClick", publicName: "connectOnClick", isSignal: true, isRequired: false, transformFunction: null }, attributionPosition: { classPropertyName: "attributionPosition", publicName: "attributionPosition", isSignal: true, isRequired: false, transformFunction: null }, proOptions: { classPropertyName: "proOptions", publicName: "proOptions", isSignal: true, isRequired: false, transformFunction: null }, elevateNodesOnSelect: { classPropertyName: "elevateNodesOnSelect", publicName: "elevateNodesOnSelect", isSignal: true, isRequired: false, transformFunction: null }, elevateEdgesOnSelect: { classPropertyName: "elevateEdgesOnSelect", publicName: "elevateEdgesOnSelect", isSignal: true, isRequired: false, transformFunction: null }, disableKeyboardA11y: { classPropertyName: "disableKeyboardA11y", publicName: "disableKeyboardA11y", isSignal: true, isRequired: false, transformFunction: null }, autoPanOnNodeDrag: { classPropertyName: "autoPanOnNodeDrag", publicName: "autoPanOnNodeDrag", isSignal: true, isRequired: false, transformFunction: null }, autoPanOnConnect: { classPropertyName: "autoPanOnConnect", publicName: "autoPanOnConnect", isSignal: true, isRequired: false, transformFunction: null }, connectionRadius: { classPropertyName: "connectionRadius", publicName: "connectionRadius", isSignal: true, isRequired: false, transformFunction: null }, backgroundVariant: { classPropertyName: "backgroundVariant", publicName: "backgroundVariant", isSignal: true, isRequired: false, transformFunction: null }, backgroundGap: { classPropertyName: "backgroundGap", publicName: "backgroundGap", isSignal: true, isRequired: false, transformFunction: null }, backgroundColor: { classPropertyName: "backgroundColor", publicName: "backgroundColor", isSignal: true, isRequired: false, transformFunction: null }, backgroundSize: { classPropertyName: "backgroundSize", publicName: "backgroundSize", isSignal: true, isRequired: false, transformFunction: null }, showBackground: { classPropertyName: "showBackground", publicName: "showBackground", isSignal: true, isRequired: false, transformFunction: null }, showMiniMap: { classPropertyName: "showMiniMap", publicName: "showMiniMap", isSignal: true, isRequired: false, transformFunction: null }, showControls: { classPropertyName: "showControls", publicName: "showControls", isSignal: true, isRequired: false, transformFunction: null }, showCoordinateLabels: { classPropertyName: "showCoordinateLabels", publicName: "showCoordinateLabels", isSignal: true, isRequired: false, transformFunction: null }, coordinateLabelInterval: { classPropertyName: "coordinateLabelInterval", publicName: "coordinateLabelInterval", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onNodeClick: "onNodeClick", onNodeDoubleClick: "onNodeDoubleClick", onNodeMouseEnter: "onNodeMouseEnter", onNodeMouseMove: "onNodeMouseMove", onNodeMouseLeave: "onNodeMouseLeave", onNodeContextMenu: "onNodeContextMenu", onNodeDragStart: "onNodeDragStart", onNodeDrag: "onNodeDrag", onNodeDragStop: "onNodeDragStop", onEdgeClick: "onEdgeClick", onEdgeUpdate: "onEdgeUpdate", onEdgeContextMenu: "onEdgeContextMenu", onEdgeMouseEnter: "onEdgeMouseEnter", onEdgeMouseMove: "onEdgeMouseMove", onEdgeMouseLeave: "onEdgeMouseLeave", onEdgeDoubleClick: "onEdgeDoubleClick", onEdgeUpdateStart: "onEdgeUpdateStart", onEdgeUpdateEnd: "onEdgeUpdateEnd", onNodesChange: "onNodesChange", onEdgesChange: "onEdgesChange", onNodesDelete: "onNodesDelete", onEdgesDelete: "onEdgesDelete", onSelectionDragStart: "onSelectionDragStart", onSelectionDrag: "onSelectionDrag", onSelectionDragStop: "onSelectionDragStop", onSelectionStart: "onSelectionStart", onSelectionEnd: "onSelectionEnd", onSelectionContextMenu: "onSelectionContextMenu", onConnect: "onConnect", onConnectStart: "onConnectStart", onConnectEnd: "onConnectEnd", onClickConnectStart: "onClickConnectStart", onClickConnectEnd: "onClickConnectEnd", onDragOver: "onDragOver", onDrop: "onDrop", onInit: "onInit", onMove: "onMove", onMoveStart: "onMoveStart", onMoveEnd: "onMoveEnd", onSelectionChange: "onSelectionChange", onPaneScroll: "onPaneScroll", onPaneClick: "onPaneClick", onPaneContextMenu: "onPaneContextMenu", onPaneMouseEnter: "onPaneMouseEnter", onPaneMouseMove: "onPaneMouseMove", onPaneMouseLeave: "onPaneMouseLeave", onError: "onError", onNodeResizeEnd: "onNodeResizeEnd", onVisibleNodesChange: "onVisibleNodesChange" }, ngImport: i0 });
245
276
  }
246
277
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ReactFlowComponentStore, decorators: [{
247
278
  type: Directive,
248
279
  args: [{ standalone: true }]
249
- }], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: false }] }], edges: [{ type: i0.Input, args: [{ isSignal: true, alias: "edges", required: false }] }], defaultNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultNodes", required: false }] }], defaultEdges: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultEdges", required: false }] }], defaultEdgeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultEdgeOptions", required: false }] }], nodeTemplates: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeTemplates", required: false }] }], nodeTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeTypes", required: false }] }], edgeTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "edgeTypes", required: false }] }], connectionLineType: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionLineType", required: false }] }], connectionLineStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionLineStyle", required: false }] }], connectionLineComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionLineComponent", required: false }] }], connectionLineContainerStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionLineContainerStyle", required: false }] }], connectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionMode", required: false }] }], deleteKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "deleteKeyCode", required: false }] }], selectionKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionKeyCode", required: false }] }], selectionOnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionOnDrag", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], panActivationKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "panActivationKeyCode", required: false }] }], multiSelectionKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSelectionKeyCode", required: false }] }], zoomActivationKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomActivationKeyCode", required: false }] }], snapToGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapToGrid", required: false }] }], snapGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapGrid", required: false }] }], onlyRenderVisibleElements: [{ type: i0.Input, args: [{ isSignal: true, alias: "onlyRenderVisibleElements", required: false }] }], nodesDraggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodesDraggable", required: false }] }], nodesConnectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodesConnectable", required: false }] }], nodesFocusable: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodesFocusable", required: false }] }], nodeOrigin: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeOrigin", required: false }] }], edgesFocusable: [{ type: i0.Input, args: [{ isSignal: true, alias: "edgesFocusable", required: false }] }], initNodeOrigin: [{ type: i0.Input, args: [{ isSignal: true, alias: "initNodeOrigin", required: false }] }], elementsSelectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "elementsSelectable", required: false }] }], selectNodesOnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectNodesOnDrag", required: false }] }], panOnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "panOnDrag", required: false }] }], minZoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "minZoom", required: false }] }], maxZoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxZoom", required: false }] }], defaultViewport: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultViewport", required: false }] }], translateExtent: [{ type: i0.Input, args: [{ isSignal: true, alias: "translateExtent", required: false }] }], preventScrolling: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventScrolling", required: false }] }], nodeExtent: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeExtent", required: false }] }], defaultMarkerColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultMarkerColor", required: false }] }], zoomOnScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomOnScroll", required: false }] }], zoomOnPinch: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomOnPinch", required: false }] }], panOnScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "panOnScroll", required: false }] }], panOnScrollSpeed: [{ type: i0.Input, args: [{ isSignal: true, alias: "panOnScrollSpeed", required: false }] }], panOnScrollMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "panOnScrollMode", required: false }] }], zoomOnDoubleClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomOnDoubleClick", required: false }] }], edgeUpdaterRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "edgeUpdaterRadius", required: false }] }], noDragClassName: [{ type: i0.Input, args: [{ isSignal: true, alias: "noDragClassName", required: false }] }], noWheelClassName: [{ type: i0.Input, args: [{ isSignal: true, alias: "noWheelClassName", required: false }] }], noPanClassName: [{ type: i0.Input, args: [{ isSignal: true, alias: "noPanClassName", required: false }] }], fitView: [{ type: i0.Input, args: [{ isSignal: true, alias: "fitView", required: false }] }], fitViewOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "fitViewOptions", required: false }] }], connectOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectOnClick", required: false }] }], attributionPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "attributionPosition", required: false }] }], proOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "proOptions", required: false }] }], elevateNodesOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "elevateNodesOnSelect", required: false }] }], elevateEdgesOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "elevateEdgesOnSelect", required: false }] }], disableKeyboardA11y: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableKeyboardA11y", required: false }] }], autoPanOnNodeDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoPanOnNodeDrag", required: false }] }], autoPanOnConnect: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoPanOnConnect", required: false }] }], connectionRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionRadius", required: false }] }], backgroundVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundVariant", required: false }] }], backgroundGap: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundGap", required: false }] }], backgroundColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundColor", required: false }] }], backgroundSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundSize", required: false }] }], showBackground: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBackground", required: false }] }], showMiniMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMiniMap", required: false }] }], showControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "showControls", required: false }] }], showCoordinateLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCoordinateLabels", required: false }] }], coordinateLabelInterval: [{ type: i0.Input, args: [{ isSignal: true, alias: "coordinateLabelInterval", required: false }] }], onNodeClick: [{ type: i0.Output, args: ["onNodeClick"] }], onNodeDoubleClick: [{ type: i0.Output, args: ["onNodeDoubleClick"] }], onNodeMouseEnter: [{ type: i0.Output, args: ["onNodeMouseEnter"] }], onNodeMouseMove: [{ type: i0.Output, args: ["onNodeMouseMove"] }], onNodeMouseLeave: [{ type: i0.Output, args: ["onNodeMouseLeave"] }], onNodeContextMenu: [{ type: i0.Output, args: ["onNodeContextMenu"] }], onNodeDragStart: [{ type: i0.Output, args: ["onNodeDragStart"] }], onNodeDrag: [{ type: i0.Output, args: ["onNodeDrag"] }], onNodeDragStop: [{ type: i0.Output, args: ["onNodeDragStop"] }], onEdgeClick: [{ type: i0.Output, args: ["onEdgeClick"] }], onEdgeUpdate: [{ type: i0.Output, args: ["onEdgeUpdate"] }], onEdgeContextMenu: [{ type: i0.Output, args: ["onEdgeContextMenu"] }], onEdgeMouseEnter: [{ type: i0.Output, args: ["onEdgeMouseEnter"] }], onEdgeMouseMove: [{ type: i0.Output, args: ["onEdgeMouseMove"] }], onEdgeMouseLeave: [{ type: i0.Output, args: ["onEdgeMouseLeave"] }], onEdgeDoubleClick: [{ type: i0.Output, args: ["onEdgeDoubleClick"] }], onEdgeUpdateStart: [{ type: i0.Output, args: ["onEdgeUpdateStart"] }], onEdgeUpdateEnd: [{ type: i0.Output, args: ["onEdgeUpdateEnd"] }], onNodesChange: [{ type: i0.Output, args: ["onNodesChange"] }], onEdgesChange: [{ type: i0.Output, args: ["onEdgesChange"] }], onNodesDelete: [{ type: i0.Output, args: ["onNodesDelete"] }], onEdgesDelete: [{ type: i0.Output, args: ["onEdgesDelete"] }], onSelectionDragStart: [{ type: i0.Output, args: ["onSelectionDragStart"] }], onSelectionDrag: [{ type: i0.Output, args: ["onSelectionDrag"] }], onSelectionDragStop: [{ type: i0.Output, args: ["onSelectionDragStop"] }], onSelectionStart: [{ type: i0.Output, args: ["onSelectionStart"] }], onSelectionEnd: [{ type: i0.Output, args: ["onSelectionEnd"] }], onSelectionContextMenu: [{ type: i0.Output, args: ["onSelectionContextMenu"] }], onConnect: [{ type: i0.Output, args: ["onConnect"] }], onConnectStart: [{ type: i0.Output, args: ["onConnectStart"] }], onConnectEnd: [{ type: i0.Output, args: ["onConnectEnd"] }], onClickConnectStart: [{ type: i0.Output, args: ["onClickConnectStart"] }], onClickConnectEnd: [{ type: i0.Output, args: ["onClickConnectEnd"] }], onDragOver: [{ type: i0.Output, args: ["onDragOver"] }], onDrop: [{ type: i0.Output, args: ["onDrop"] }], onInit: [{ type: i0.Output, args: ["onInit"] }], onMove: [{ type: i0.Output, args: ["onMove"] }], onMoveStart: [{ type: i0.Output, args: ["onMoveStart"] }], onMoveEnd: [{ type: i0.Output, args: ["onMoveEnd"] }], onSelectionChange: [{ type: i0.Output, args: ["onSelectionChange"] }], onPaneScroll: [{ type: i0.Output, args: ["onPaneScroll"] }], onPaneClick: [{ type: i0.Output, args: ["onPaneClick"] }], onPaneContextMenu: [{ type: i0.Output, args: ["onPaneContextMenu"] }], onPaneMouseEnter: [{ type: i0.Output, args: ["onPaneMouseEnter"] }], onPaneMouseMove: [{ type: i0.Output, args: ["onPaneMouseMove"] }], onPaneMouseLeave: [{ type: i0.Output, args: ["onPaneMouseLeave"] }], onError: [{ type: i0.Output, args: ["onError"] }], onNodeResizeEnd: [{ type: i0.Output, args: ["onNodeResizeEnd"] }] } });
250
-
251
- class NodeComponent {
252
- data = input(...(ngDevMode ? [undefined, { debugName: "data" }] : []));
253
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
254
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.6", type: NodeComponent, isStandalone: true, selector: "machina-task-node", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
255
- <div class="task-node" [class]="'status-' + data()?.status">
256
- <div class="task-header">
257
- <span class="status-indicator"></span>
258
- <span class="assignee">あああ{{ data()?.assignee }}</span>
259
- </div>
260
- <div class="task-label">{{ data()?.label }}</div>
261
- </div>
262
- `, isInline: true, styles: [":host .task-node{background:#fff;border:2px solid #ddd;border-radius:8px;padding:10px;min-width:200px;box-shadow:0 2px 4px #0000001a}:host .task-node.status-pending{border-color:#9e9e9e}:host .task-node.status-pending .status-indicator{background:#9e9e9e}:host .task-node.status-in_progress{border-color:#2196f3}:host .task-node.status-in_progress .status-indicator{background:#2196f3}:host .task-node.status-completed{border-color:#4caf50}:host .task-node.status-completed .status-indicator{background:#4caf50}:host .task-node.status-abandoned{border-color:#f44336}:host .task-node.status-abandoned .status-indicator{background:#f44336}:host .task-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}:host .status-indicator{width:8px;height:8px;border-radius:50%;background:#ddd}:host .assignee{font-size:12px;color:#666}:host .task-label{font-size:14px;font-weight:500;color:#333}\n"] });
263
- }
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NodeComponent, decorators: [{
265
- type: Component,
266
- args: [{ selector: 'machina-task-node', standalone: true, imports: [], template: `
267
- <div class="task-node" [class]="'status-' + data()?.status">
268
- <div class="task-header">
269
- <span class="status-indicator"></span>
270
- <span class="assignee">あああ{{ data()?.assignee }}</span>
271
- </div>
272
- <div class="task-label">{{ data()?.label }}</div>
273
- </div>
274
- `, styles: [":host .task-node{background:#fff;border:2px solid #ddd;border-radius:8px;padding:10px;min-width:200px;box-shadow:0 2px 4px #0000001a}:host .task-node.status-pending{border-color:#9e9e9e}:host .task-node.status-pending .status-indicator{background:#9e9e9e}:host .task-node.status-in_progress{border-color:#2196f3}:host .task-node.status-in_progress .status-indicator{background:#2196f3}:host .task-node.status-completed{border-color:#4caf50}:host .task-node.status-completed .status-indicator{background:#4caf50}:host .task-node.status-abandoned{border-color:#f44336}:host .task-node.status-abandoned .status-indicator{background:#f44336}:host .task-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}:host .status-indicator{width:8px;height:8px;border-radius:50%;background:#ddd}:host .assignee{font-size:12px;color:#666}:host .task-label{font-size:14px;font-weight:500;color:#333}\n"] }]
275
- }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }] } });
280
+ }], propDecorators: { nodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodes", required: false }] }], edges: [{ type: i0.Input, args: [{ isSignal: true, alias: "edges", required: false }] }], defaultNodes: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultNodes", required: false }] }], defaultEdges: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultEdges", required: false }] }], defaultEdgeOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultEdgeOptions", required: false }] }], nodeTemplates: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeTemplates", required: false }] }], nodeTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeTypes", required: false }] }], edgeTypes: [{ type: i0.Input, args: [{ isSignal: true, alias: "edgeTypes", required: false }] }], connectionLineType: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionLineType", required: false }] }], connectionLineStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionLineStyle", required: false }] }], connectionLineComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionLineComponent", required: false }] }], connectionLineContainerStyle: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionLineContainerStyle", required: false }] }], connectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionMode", required: false }] }], deleteKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "deleteKeyCode", required: false }] }], selectionKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionKeyCode", required: false }] }], selectionOnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionOnDrag", required: false }] }], selectionMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectionMode", required: false }] }], panActivationKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "panActivationKeyCode", required: false }] }], multiSelectionKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "multiSelectionKeyCode", required: false }] }], zoomActivationKeyCode: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomActivationKeyCode", required: false }] }], snapToGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapToGrid", required: false }] }], snapGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "snapGrid", required: false }] }], onlyRenderVisibleElements: [{ type: i0.Input, args: [{ isSignal: true, alias: "onlyRenderVisibleElements", required: false }] }], nodesDraggable: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodesDraggable", required: false }] }], nodesConnectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodesConnectable", required: false }] }], nodesFocusable: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodesFocusable", required: false }] }], nodeOrigin: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeOrigin", required: false }] }], edgesFocusable: [{ type: i0.Input, args: [{ isSignal: true, alias: "edgesFocusable", required: false }] }], initNodeOrigin: [{ type: i0.Input, args: [{ isSignal: true, alias: "initNodeOrigin", required: false }] }], elementsSelectable: [{ type: i0.Input, args: [{ isSignal: true, alias: "elementsSelectable", required: false }] }], selectNodesOnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectNodesOnDrag", required: false }] }], panOnDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "panOnDrag", required: false }] }], minZoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "minZoom", required: false }] }], maxZoom: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxZoom", required: false }] }], defaultViewport: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultViewport", required: false }] }], translateExtent: [{ type: i0.Input, args: [{ isSignal: true, alias: "translateExtent", required: false }] }], preventScrolling: [{ type: i0.Input, args: [{ isSignal: true, alias: "preventScrolling", required: false }] }], nodeExtent: [{ type: i0.Input, args: [{ isSignal: true, alias: "nodeExtent", required: false }] }], defaultMarkerColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultMarkerColor", required: false }] }], zoomOnScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomOnScroll", required: false }] }], zoomOnPinch: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomOnPinch", required: false }] }], panOnScroll: [{ type: i0.Input, args: [{ isSignal: true, alias: "panOnScroll", required: false }] }], panOnScrollSpeed: [{ type: i0.Input, args: [{ isSignal: true, alias: "panOnScrollSpeed", required: false }] }], panOnScrollMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "panOnScrollMode", required: false }] }], zoomOnDoubleClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomOnDoubleClick", required: false }] }], edgeUpdaterRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "edgeUpdaterRadius", required: false }] }], noDragClassName: [{ type: i0.Input, args: [{ isSignal: true, alias: "noDragClassName", required: false }] }], noWheelClassName: [{ type: i0.Input, args: [{ isSignal: true, alias: "noWheelClassName", required: false }] }], noPanClassName: [{ type: i0.Input, args: [{ isSignal: true, alias: "noPanClassName", required: false }] }], fitView: [{ type: i0.Input, args: [{ isSignal: true, alias: "fitView", required: false }] }], fitViewOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "fitViewOptions", required: false }] }], connectOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectOnClick", required: false }] }], attributionPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "attributionPosition", required: false }] }], proOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "proOptions", required: false }] }], elevateNodesOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "elevateNodesOnSelect", required: false }] }], elevateEdgesOnSelect: [{ type: i0.Input, args: [{ isSignal: true, alias: "elevateEdgesOnSelect", required: false }] }], disableKeyboardA11y: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableKeyboardA11y", required: false }] }], autoPanOnNodeDrag: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoPanOnNodeDrag", required: false }] }], autoPanOnConnect: [{ type: i0.Input, args: [{ isSignal: true, alias: "autoPanOnConnect", required: false }] }], connectionRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectionRadius", required: false }] }], backgroundVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundVariant", required: false }] }], backgroundGap: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundGap", required: false }] }], backgroundColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundColor", required: false }] }], backgroundSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "backgroundSize", required: false }] }], showBackground: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBackground", required: false }] }], showMiniMap: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMiniMap", required: false }] }], showControls: [{ type: i0.Input, args: [{ isSignal: true, alias: "showControls", required: false }] }], showCoordinateLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCoordinateLabels", required: false }] }], coordinateLabelInterval: [{ type: i0.Input, args: [{ isSignal: true, alias: "coordinateLabelInterval", required: false }] }], onNodeClick: [{ type: i0.Output, args: ["onNodeClick"] }], onNodeDoubleClick: [{ type: i0.Output, args: ["onNodeDoubleClick"] }], onNodeMouseEnter: [{ type: i0.Output, args: ["onNodeMouseEnter"] }], onNodeMouseMove: [{ type: i0.Output, args: ["onNodeMouseMove"] }], onNodeMouseLeave: [{ type: i0.Output, args: ["onNodeMouseLeave"] }], onNodeContextMenu: [{ type: i0.Output, args: ["onNodeContextMenu"] }], onNodeDragStart: [{ type: i0.Output, args: ["onNodeDragStart"] }], onNodeDrag: [{ type: i0.Output, args: ["onNodeDrag"] }], onNodeDragStop: [{ type: i0.Output, args: ["onNodeDragStop"] }], onEdgeClick: [{ type: i0.Output, args: ["onEdgeClick"] }], onEdgeUpdate: [{ type: i0.Output, args: ["onEdgeUpdate"] }], onEdgeContextMenu: [{ type: i0.Output, args: ["onEdgeContextMenu"] }], onEdgeMouseEnter: [{ type: i0.Output, args: ["onEdgeMouseEnter"] }], onEdgeMouseMove: [{ type: i0.Output, args: ["onEdgeMouseMove"] }], onEdgeMouseLeave: [{ type: i0.Output, args: ["onEdgeMouseLeave"] }], onEdgeDoubleClick: [{ type: i0.Output, args: ["onEdgeDoubleClick"] }], onEdgeUpdateStart: [{ type: i0.Output, args: ["onEdgeUpdateStart"] }], onEdgeUpdateEnd: [{ type: i0.Output, args: ["onEdgeUpdateEnd"] }], onNodesChange: [{ type: i0.Output, args: ["onNodesChange"] }], onEdgesChange: [{ type: i0.Output, args: ["onEdgesChange"] }], onNodesDelete: [{ type: i0.Output, args: ["onNodesDelete"] }], onEdgesDelete: [{ type: i0.Output, args: ["onEdgesDelete"] }], onSelectionDragStart: [{ type: i0.Output, args: ["onSelectionDragStart"] }], onSelectionDrag: [{ type: i0.Output, args: ["onSelectionDrag"] }], onSelectionDragStop: [{ type: i0.Output, args: ["onSelectionDragStop"] }], onSelectionStart: [{ type: i0.Output, args: ["onSelectionStart"] }], onSelectionEnd: [{ type: i0.Output, args: ["onSelectionEnd"] }], onSelectionContextMenu: [{ type: i0.Output, args: ["onSelectionContextMenu"] }], onConnect: [{ type: i0.Output, args: ["onConnect"] }], onConnectStart: [{ type: i0.Output, args: ["onConnectStart"] }], onConnectEnd: [{ type: i0.Output, args: ["onConnectEnd"] }], onClickConnectStart: [{ type: i0.Output, args: ["onClickConnectStart"] }], onClickConnectEnd: [{ type: i0.Output, args: ["onClickConnectEnd"] }], onDragOver: [{ type: i0.Output, args: ["onDragOver"] }], onDrop: [{ type: i0.Output, args: ["onDrop"] }], onInit: [{ type: i0.Output, args: ["onInit"] }], onMove: [{ type: i0.Output, args: ["onMove"] }], onMoveStart: [{ type: i0.Output, args: ["onMoveStart"] }], onMoveEnd: [{ type: i0.Output, args: ["onMoveEnd"] }], onSelectionChange: [{ type: i0.Output, args: ["onSelectionChange"] }], onPaneScroll: [{ type: i0.Output, args: ["onPaneScroll"] }], onPaneClick: [{ type: i0.Output, args: ["onPaneClick"] }], onPaneContextMenu: [{ type: i0.Output, args: ["onPaneContextMenu"] }], onPaneMouseEnter: [{ type: i0.Output, args: ["onPaneMouseEnter"] }], onPaneMouseMove: [{ type: i0.Output, args: ["onPaneMouseMove"] }], onPaneMouseLeave: [{ type: i0.Output, args: ["onPaneMouseLeave"] }], onError: [{ type: i0.Output, args: ["onError"] }], onNodeResizeEnd: [{ type: i0.Output, args: ["onNodeResizeEnd"] }], onVisibleNodesChange: [{ type: i0.Output, args: ["onVisibleNodesChange"] }] } });
276
281
 
277
- // Global reference to Angular app injector (will be set by ReactFlowComponent)
278
- let globalInjector = null;
279
- function setAngularContext(injector, appRef) {
280
- globalInjector = injector;
282
+ function isOutputLike(value) {
283
+ return !!value && typeof value.emit === 'function';
281
284
  }
282
- class NodeService {
283
- componentCache = new Map();
284
- injector = inject(EnvironmentInjector);
285
- createNodeComponent(hostElement) {
286
- if (this.componentCache.has(hostElement)) {
287
- return this.componentCache.get(hostElement);
288
- }
289
- const component = createComponent(NodeComponent, {
290
- environmentInjector: this.injector,
291
- hostElement,
292
- });
293
- this.componentCache.set(hostElement, component);
294
- return component;
285
+ function buildOutputHandlers(store) {
286
+ const handlers = {};
287
+ for (const [key, value] of Object.entries(store)) {
288
+ if (!key.startsWith('on') || !isOutputLike(value))
289
+ continue;
290
+ handlers[key] = (...args) => {
291
+ value.emit(key === 'onError' ? args[0] : args);
292
+ };
295
293
  }
296
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NodeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
297
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NodeService, providedIn: 'root' });
294
+ return handlers;
298
295
  }
299
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: NodeService, decorators: [{
300
- type: Injectable,
301
- args: [{ providedIn: 'root' }]
302
- }] });
303
- const Node = ({ data }) => {
304
- const containerRef = useRef(null);
305
- const component = globalInjector?.get(NodeService).createNodeComponent(containerRef.current);
306
- useEffect(() => component.setInput('data', data), [data]);
307
- return (React__default.createElement("div", { ref: containerRef },
308
- React__default.createElement(NodeResizer, { minWidth: 400, minHeight: 300, isVisible: true }),
309
- React__default.createElement(Handle, { type: "target", position: Position.Left, style: { zIndex: 10 } }),
310
- React__default.createElement(Handle, { type: "source", position: Position.Right, style: { zIndex: 10 } })));
311
- };
312
- var TaskNode = memo(Node);
313
-
314
- const GroupNode = ({ data }) => {
315
- return (React__default.createElement("div", { className: "group-node" },
316
- React__default.createElement(Handle, { type: "target", position: Position.Left }),
317
- React__default.createElement("div", { className: "group-node-header" },
318
- React__default.createElement("h3", null, data.label),
319
- React__default.createElement("span", { className: "group-assignee" }, data.assignee)),
320
- React__default.createElement(Handle, { type: "source", position: Position.Right })));
321
- };
322
- var GroupNode$1 = memo(GroupNode);
323
296
 
324
- function createTemplateNodeComponent(template, vcr, onNodeResizeEnd) {
297
+ function createTemplateNodeComponent(template, vcr, onNodeResizeEnd, showHandles = true) {
325
298
  const TemplateNode = ({ data, selected, id }) => {
326
299
  const containerRef = useRef(null);
327
300
  const viewRefRef = useRef(null);
328
- // resize ハンドル drag 中の即時反映用ローカル state。
329
- // NodeResizer は onResize/onResizeEnd が wire up されないと、
330
- // SVG handle だけ伸びて Angular template (中身) は元サイズのままになる。
331
301
  const [resizeOverride, setResizeOverride] = useState(null);
332
- // 初回のみAngularビューを作成(破棄・再作成を防ぐ)
333
302
  useEffect(() => {
334
303
  const viewRef = vcr.createEmbeddedView(template, {});
335
304
  viewRef.rootNodes.forEach(node => containerRef.current.appendChild(node));
@@ -342,8 +311,7 @@ function createTemplateNodeComponent(template, vcr, onNodeResizeEnd) {
342
311
  viewRefRef.current = null;
343
312
  }
344
313
  };
345
- }, []); // 空の依存配列 - 初回のみ実行
346
- // dataが変更されたときはコンテキストのみ更新(ビューは再作成しない)
314
+ }, []);
347
315
  useEffect(() => {
348
316
  if (viewRefRef.current) {
349
317
  viewRefRef.current.context = { $implicit: data, data };
@@ -351,36 +319,25 @@ function createTemplateNodeComponent(template, vcr, onNodeResizeEnd) {
351
319
  }
352
320
  }, [data]);
353
321
  const handleResize = (_event, params) => {
354
- // drag の各 frame で wrapper div を伸縮 → Angular template も追従
355
322
  setResizeOverride({ width: params.width, height: params.height });
356
323
  };
357
324
  const handleResizeEnd = (_event, params) => {
358
- // drag 完了。 server へ通知 → applyLayout で sizes/sizePinned 書き込み →
359
- // round-trip で signal の node.style.width/height が新値になるため override は不要になる。
360
325
  setResizeOverride(null);
361
326
  if (onNodeResizeEnd) {
362
327
  onNodeResizeEnd(id, params.width, params.height);
363
328
  }
364
329
  };
365
- // resize 中は wrapper を強制サイズ、 通常時は親 (React Flow) が style.width/height を制御。
366
330
  const wrapperStyle = resizeOverride
367
331
  ? { width: resizeOverride.width, height: resizeOverride.height }
368
332
  : { width: '100%', height: '100%' };
369
333
  return (React__default.createElement("div", { ref: containerRef, style: wrapperStyle },
370
- React__default.createElement(NodeResizer, { minWidth: 400, minHeight: 300, isVisible: true, onResize: handleResize, onResizeEnd: handleResizeEnd }),
371
- React__default.createElement(Handle, { type: "target", position: data.targetPosition ?? Position.Left, style: { zIndex: 10 } }),
372
- React__default.createElement(Handle, { type: "source", position: data.sourcePosition ?? Position.Right, style: { zIndex: 10 } })));
334
+ React__default.createElement(NodeResizer, { minWidth: 400, minHeight: 300, isVisible: true, lineStyle: { borderColor: 'transparent' }, handleStyle: { opacity: 0 }, onResize: handleResize, onResizeEnd: handleResizeEnd }),
335
+ React__default.createElement(Handle, { type: "target", position: data.targetPosition ?? Position.Left, style: { zIndex: 10, opacity: showHandles ? 1 : 0 } }),
336
+ React__default.createElement(Handle, { type: "source", position: data.sourcePosition ?? Position.Right, style: { zIndex: 10, opacity: showHandles ? 1 : 0 } })));
373
337
  };
374
- // memoなしで返す(デバッグ用:renameが動作するか確認)
375
- // 動作確認後、適切なmemo戦略を検討
376
338
  return TemplateNode;
377
339
  }
378
340
 
379
- const NODE_TYPES = {
380
- task: TaskNode,
381
- group: GroupNode$1,
382
- };
383
-
384
341
  class FlowNodeDirective {
385
342
  template;
386
343
  type;
@@ -412,16 +369,12 @@ class ReactFlowComponent extends NgAtomicComponent {
412
369
  contentNodeTemplates = contentChildren(FlowNodeDirective, ...(ngDevMode ? [{ debugName: "contentNodeTemplates" }] : []));
413
370
  _touchCleanup = null;
414
371
  _ancestorScrollCleanup = null;
415
- /**
416
- * PR-G fix: drag end 直後の server-driven snap back を react flow internal state に強制反映する用。
417
- * effect 内で常時 setNodes 呼ぶと updateNodeDimensions chain で NG0103 大量発生するため、
418
- * onNodeDragStop event hook で drag 完了 800ms 後に one-shot で呼ぶ局所化。
419
- */
420
372
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
421
373
  _instance = null;
422
374
  _dragEndSnapBackTimer = null;
423
375
  enableTouchPassthrough = input(false, ...(ngDevMode ? [{ debugName: "enableTouchPassthrough" }] : []));
424
- /** Pre-computed React props signal依存を分離してrender()を軽量化 */
376
+ handlesVisible = input(true, ...(ngDevMode ? [{ debugName: "handlesVisible" }] : []));
377
+ outputHandlers = buildOutputHandlers(this.store);
425
378
  reactFlowProps = computed(() => ({
426
379
  ...Object.entries(this.store)
427
380
  .filter(([key, value]) => !key.startsWith('on') && typeof value === 'function' && key !== 'nodeTypes' && key !== 'nodeTemplates')
@@ -430,20 +383,12 @@ class ReactFlowComponent extends NgAtomicComponent {
430
383
  return acc;
431
384
  }, {}),
432
385
  nodeTypes: this.nodeTypes(),
433
- ...Object.entries(this.store)
434
- .filter(([key, value]) => key.startsWith('on') && value && typeof value.emit === 'function')
435
- .reduce((handlers, [eventName, output]) => {
436
- handlers[eventName] = (...args) => {
437
- const emitValue = eventName === 'onError' ? args[0] : args;
438
- output.emit(emitValue);
439
- };
440
- return handlers;
441
- }, {})
386
+ ...this.outputHandlers,
442
387
  }), ...(ngDevMode ? [{ debugName: "reactFlowProps" }] : []));
443
388
  constructor() {
444
389
  super();
445
390
  effect(() => this.render());
446
- effect(() => this.applyTransitionClass()); // DOM操作をrender()ホットパスから分離
391
+ effect(() => this.applyTransitionClass());
447
392
  effect(() => {
448
393
  if (this.enableTouchPassthrough()) {
449
394
  this.setupTouchPassthrough();
@@ -452,14 +397,10 @@ class ReactFlowComponent extends NgAtomicComponent {
452
397
  this.cleanupTouchPassthrough();
453
398
  }
454
399
  });
455
- // PR-G fix: onInit event で react flow instance を取得して保持。
456
400
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
457
401
  this.store.onInit?.subscribe((args) => {
458
402
  this._instance = Array.isArray(args) ? args[0] : args;
459
403
  });
460
- // PR-G fix: drag end 後 800ms に server-driven snap back を強制反映 (one-shot)。
461
- // 副作用を drag end 直後の局所範囲のみに限定し、 effect 常時 setNodes による
462
- // NG0103 (updateNodeDimensions → output emit chain → CD cycle 中 signal 変化) を回避。
463
404
  this.store.onNodeDragStop?.subscribe(() => {
464
405
  if (this._dragEndSnapBackTimer)
465
406
  clearTimeout(this._dragEndSnapBackTimer);
@@ -526,13 +467,6 @@ class ReactFlowComponent extends NgAtomicComponent {
526
467
  this.store.onNodeClick?.emit([new MouseEvent('click', { clientX, clientY }), node]);
527
468
  }
528
469
  }
529
- /**
530
- * 祖先要素のスクロールをロックする。
531
- * overflow:clip は .react-flow 自体のスクロールを防ぐが、
532
- * 祖先のスクロールコンテナ(例: ScrollFrame の .contents)には効かない。
533
- * ノード内 input 入力時のブラウザ自動スクロールを防ぐため、
534
- * 全祖先の scroll イベントを監視して即座にリセットする。
535
- */
536
470
  lockAncestorScroll() {
537
471
  const cleanups = [];
538
472
  let parent = this.el.nativeElement.parentElement;
@@ -555,10 +489,9 @@ class ReactFlowComponent extends NgAtomicComponent {
555
489
  if (templates) {
556
490
  templates.forEach((template) => {
557
491
  if (!this._nodeTypesCache[template.type]) {
558
- // onNodeResizeEndコールバックを渡す
559
492
  this._nodeTypesCache[template.type] = createTemplateNodeComponent(template.template, this.vcr, (nodeId, width, height) => {
560
493
  this.store.onNodeResizeEnd?.emit({ nodeId, width, height });
561
- });
494
+ }, this.handlesVisible());
562
495
  }
563
496
  nodeTypes[template.type] = this._nodeTypesCache[template.type];
564
497
  });
@@ -569,7 +502,6 @@ class ReactFlowComponent extends NgAtomicComponent {
569
502
  const nodes = this.store.nodes?.();
570
503
  const positionKey = nodes?.map(n => `${n.id}:${n.position?.x},${n.position?.y}:${n.style?.width},${n.style?.height}`).join('|') ?? '';
571
504
  if (this._prevNodePositions !== null && this._prevNodePositions !== positionKey) {
572
- // 複数ノードの位置が一括で変わった場合のみtransitionを適用(autolayout検知)
573
505
  const prevPositions = this._prevNodePositions.split('|');
574
506
  const currPositions = positionKey.split('|');
575
507
  const changedCount = prevPositions.filter((p, i) => p !== currPositions[i]).length;
@@ -592,7 +524,7 @@ class ReactFlowComponent extends NgAtomicComponent {
592
524
  }));
593
525
  }
594
526
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ReactFlowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
595
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: ReactFlowComponent, isStandalone: true, selector: "machina-react-flow", inputs: { enableTouchPassthrough: { classPropertyName: "enableTouchPassthrough", publicName: "enableTouchPassthrough", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "contentNodeTemplates", predicate: FlowNodeDirective, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: ReactFlowComponentStore, inputs: ["nodes", "nodes", "edges", "edges", "defaultNodes", "defaultNodes", "defaultEdges", "defaultEdges", "defaultEdgeOptions", "defaultEdgeOptions", "nodeTemplates", "nodeTemplates", "nodeTypes", "nodeTypes", "edgeTypes", "edgeTypes", "connectionLineType", "connectionLineType", "connectionLineStyle", "connectionLineStyle", "connectionLineComponent", "connectionLineComponent", "connectionLineContainerStyle", "connectionLineContainerStyle", "connectionMode", "connectionMode", "deleteKeyCode", "deleteKeyCode", "selectionKeyCode", "selectionKeyCode", "selectionOnDrag", "selectionOnDrag", "selectionMode", "selectionMode", "panActivationKeyCode", "panActivationKeyCode", "multiSelectionKeyCode", "multiSelectionKeyCode", "zoomActivationKeyCode", "zoomActivationKeyCode", "snapToGrid", "snapToGrid", "snapGrid", "snapGrid", "onlyRenderVisibleElements", "onlyRenderVisibleElements", "nodesDraggable", "nodesDraggable", "nodesConnectable", "nodesConnectable", "nodesFocusable", "nodesFocusable", "nodeOrigin", "nodeOrigin", "edgesFocusable", "edgesFocusable", "initNodeOrigin", "initNodeOrigin", "elementsSelectable", "elementsSelectable", "selectNodesOnDrag", "selectNodesOnDrag", "panOnDrag", "panOnDrag", "minZoom", "minZoom", "maxZoom", "maxZoom", "defaultViewport", "defaultViewport", "translateExtent", "translateExtent", "preventScrolling", "preventScrolling", "nodeExtent", "nodeExtent", "defaultMarkerColor", "defaultMarkerColor", "zoomOnScroll", "zoomOnScroll", "zoomOnPinch", "zoomOnPinch", "panOnScroll", "panOnScroll", "panOnScrollSpeed", "panOnScrollSpeed", "panOnScrollMode", "panOnScrollMode", "zoomOnDoubleClick", "zoomOnDoubleClick", "edgeUpdaterRadius", "edgeUpdaterRadius", "noDragClassName", "noDragClassName", "noWheelClassName", "noWheelClassName", "noPanClassName", "noPanClassName", "fitView", "fitView", "fitViewOptions", "fitViewOptions", "connectOnClick", "connectOnClick", "attributionPosition", "attributionPosition", "proOptions", "proOptions", "elevateNodesOnSelect", "elevateNodesOnSelect", "elevateEdgesOnSelect", "elevateEdgesOnSelect", "disableKeyboardA11y", "disableKeyboardA11y", "autoPanOnNodeDrag", "autoPanOnNodeDrag", "autoPanOnConnect", "autoPanOnConnect", "connectionRadius", "connectionRadius", "backgroundVariant", "backgroundVariant", "backgroundGap", "backgroundGap", "backgroundColor", "backgroundColor", "backgroundSize", "backgroundSize", "showBackground", "showBackground", "showMiniMap", "showMiniMap", "showControls", "showControls", "showCoordinateLabels", "showCoordinateLabels", "coordinateLabelInterval", "coordinateLabelInterval"], outputs: ["onNodeClick", "onNodeClick", "onNodeDoubleClick", "onNodeDoubleClick", "onNodeMouseEnter", "onNodeMouseEnter", "onNodeMouseMove", "onNodeMouseMove", "onNodeMouseLeave", "onNodeMouseLeave", "onNodeContextMenu", "onNodeContextMenu", "onNodeDragStart", "onNodeDragStart", "onNodeDrag", "onNodeDrag", "onNodeDragStop", "onNodeDragStop", "onEdgeClick", "onEdgeClick", "onEdgeUpdate", "onEdgeUpdate", "onEdgeContextMenu", "onEdgeContextMenu", "onEdgeMouseEnter", "onEdgeMouseEnter", "onEdgeMouseMove", "onEdgeMouseMove", "onEdgeMouseLeave", "onEdgeMouseLeave", "onEdgeDoubleClick", "onEdgeDoubleClick", "onEdgeUpdateStart", "onEdgeUpdateStart", "onEdgeUpdateEnd", "onEdgeUpdateEnd", "onNodesChange", "onNodesChange", "onEdgesChange", "onEdgesChange", "onNodesDelete", "onNodesDelete", "onEdgesDelete", "onEdgesDelete", "onSelectionDragStart", "onSelectionDragStart", "onSelectionDrag", "onSelectionDrag", "onSelectionDragStop", "onSelectionDragStop", "onSelectionStart", "onSelectionStart", "onSelectionEnd", "onSelectionEnd", "onSelectionContextMenu", "onSelectionContextMenu", "onConnect", "onConnect", "onConnectStart", "onConnectStart", "onConnectEnd", "onConnectEnd", "onClickConnectStart", "onClickConnectStart", "onClickConnectEnd", "onClickConnectEnd", "onDragOver", "onDragOver", "onDrop", "onDrop", "onInit", "onInit", "onMove", "onMove", "onMoveStart", "onMoveStart", "onMoveEnd", "onMoveEnd", "onSelectionChange", "onSelectionChange", "onPaneScroll", "onPaneScroll", "onPaneClick", "onPaneClick", "onPaneContextMenu", "onPaneContextMenu", "onPaneMouseEnter", "onPaneMouseEnter", "onPaneMouseMove", "onPaneMouseMove", "onPaneMouseLeave", "onPaneMouseLeave", "onError", "onError", "onNodeResizeEnd", "onNodeResizeEnd"] }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [".react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}machina-react-flow{display:block;width:100%;height:100%}machina-react-flow.touch-mode .react-flow .react-flow__node{pointer-events:none!important}machina-react-flow .react-flow{width:100%;height:100%;overflow:clip!important}machina-react-flow .react-flow .react-flow__renderer{z-index:1}machina-react-flow .react-flow .react-flow__nodes{z-index:4}machina-react-flow .react-flow .react-flow__node{cursor:grab!important;z-index:5!important}machina-react-flow .react-flow .react-flow__node.transitioning{transition:transform .3s ease-out,width .3s ease-out,height .3s ease-out!important}machina-react-flow .react-flow .react-flow__node:active{cursor:grabbing!important}machina-react-flow .react-flow .react-flow__node.nopan{cursor:grab!important}machina-react-flow .react-flow .react-flow__node-default{background:#4ecdc4!important;border:3px solid #333!important;border-radius:8px!important;padding:15px!important;color:#fff!important;font-weight:700!important;font-size:18px!important;box-shadow:0 4px 8px #0000004d!important;opacity:1!important;min-width:200px!important}machina-react-flow .react-flow .react-flow__node-default[data-id=\"1\"]{background:#ff6b6b!important}machina-react-flow .react-flow .react-flow__node-default[data-id=\"2\"]{background:#4ecdc4!important}machina-react-flow .react-flow .react-flow__handle{background:#555!important;width:12px!important;height:12px!important;border:2px solid #fff!important;opacity:1!important}machina-react-flow .react-flow .react-flow__handle:hover{background:#1976d2!important}machina-react-flow .react-flow .react-flow__handle-top{top:-6px!important}machina-react-flow .react-flow .react-flow__handle-right{right:-6px!important}machina-react-flow .react-flow .react-flow__handle-bottom{bottom:-6px!important}machina-react-flow .react-flow .react-flow__handle-left{left:-6px!important}machina-react-flow .react-flow .react-flow__edge-path{stroke:#000!important;stroke-width:3px!important}machina-react-flow .react-flow .react-flow__edge.selected .react-flow__edge-path{stroke:#1976d2!important;stroke-width:3}machina-react-flow .react-flow .react-flow__controls button{background:#fff!important;border:1px solid #333!important;color:#333!important}machina-react-flow .react-flow .react-flow__controls button:hover{background:#f0f0f0!important}machina-react-flow .react-flow .react-flow__minimap{border:1px solid #333!important}machina-react-flow .react-flow .react-flow__minimap .react-flow__minimap-mask{fill:#e0e0e0!important}machina-react-flow .react-flow .react-flow__minimap .react-flow__minimap-node{fill:#333!important}machina-react-flow .react-flow .react-flow__connectionline .react-flow__edge-path{stroke:#1976d2!important;stroke-width:3px!important;stroke-dasharray:5 5!important;animation:dash .5s linear infinite!important}@keyframes dash{to{stroke-dashoffset:-10}}machina-react-flow .react-flow .react-flow__node-group{background:#f0f0f099!important;border:2px dashed #d1d5db!important;border-radius:16px!important;padding:60px 40px 40px!important;pointer-events:all!important;box-sizing:border-box!important}machina-react-flow .react-flow .react-flow__node-group.selected{border-color:#3b82f6!important;border-style:solid!important;background:#f0f0f0cc!important}machina-react-flow .react-flow .react-flow__node-task{background:transparent!important;border:none!important;padding:0!important}machina-react-flow .react-flow .react-flow__node-issue{background:transparent!important;border:none!important;padding:0!important}\n"], encapsulation: i0.ViewEncapsulation.None });
527
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.1.6", type: ReactFlowComponent, isStandalone: true, selector: "machina-react-flow", inputs: { enableTouchPassthrough: { classPropertyName: "enableTouchPassthrough", publicName: "enableTouchPassthrough", isSignal: true, isRequired: false, transformFunction: null }, handlesVisible: { classPropertyName: "handlesVisible", publicName: "handlesVisible", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "contentNodeTemplates", predicate: FlowNodeDirective, isSignal: true }], usesInheritance: true, hostDirectives: [{ directive: ReactFlowComponentStore, inputs: ["nodes", "nodes", "edges", "edges", "defaultNodes", "defaultNodes", "defaultEdges", "defaultEdges", "defaultEdgeOptions", "defaultEdgeOptions", "nodeTemplates", "nodeTemplates", "nodeTypes", "nodeTypes", "edgeTypes", "edgeTypes", "connectionLineType", "connectionLineType", "connectionLineStyle", "connectionLineStyle", "connectionLineComponent", "connectionLineComponent", "connectionLineContainerStyle", "connectionLineContainerStyle", "connectionMode", "connectionMode", "deleteKeyCode", "deleteKeyCode", "selectionKeyCode", "selectionKeyCode", "selectionOnDrag", "selectionOnDrag", "selectionMode", "selectionMode", "panActivationKeyCode", "panActivationKeyCode", "multiSelectionKeyCode", "multiSelectionKeyCode", "zoomActivationKeyCode", "zoomActivationKeyCode", "snapToGrid", "snapToGrid", "snapGrid", "snapGrid", "onlyRenderVisibleElements", "onlyRenderVisibleElements", "nodesDraggable", "nodesDraggable", "nodesConnectable", "nodesConnectable", "nodesFocusable", "nodesFocusable", "nodeOrigin", "nodeOrigin", "edgesFocusable", "edgesFocusable", "initNodeOrigin", "initNodeOrigin", "elementsSelectable", "elementsSelectable", "selectNodesOnDrag", "selectNodesOnDrag", "panOnDrag", "panOnDrag", "minZoom", "minZoom", "maxZoom", "maxZoom", "defaultViewport", "defaultViewport", "translateExtent", "translateExtent", "preventScrolling", "preventScrolling", "nodeExtent", "nodeExtent", "defaultMarkerColor", "defaultMarkerColor", "zoomOnScroll", "zoomOnScroll", "zoomOnPinch", "zoomOnPinch", "panOnScroll", "panOnScroll", "panOnScrollSpeed", "panOnScrollSpeed", "panOnScrollMode", "panOnScrollMode", "zoomOnDoubleClick", "zoomOnDoubleClick", "edgeUpdaterRadius", "edgeUpdaterRadius", "noDragClassName", "noDragClassName", "noWheelClassName", "noWheelClassName", "noPanClassName", "noPanClassName", "fitView", "fitView", "fitViewOptions", "fitViewOptions", "connectOnClick", "connectOnClick", "attributionPosition", "attributionPosition", "proOptions", "proOptions", "elevateNodesOnSelect", "elevateNodesOnSelect", "elevateEdgesOnSelect", "elevateEdgesOnSelect", "disableKeyboardA11y", "disableKeyboardA11y", "autoPanOnNodeDrag", "autoPanOnNodeDrag", "autoPanOnConnect", "autoPanOnConnect", "connectionRadius", "connectionRadius", "backgroundVariant", "backgroundVariant", "backgroundGap", "backgroundGap", "backgroundColor", "backgroundColor", "backgroundSize", "backgroundSize", "showBackground", "showBackground", "showMiniMap", "showMiniMap", "showControls", "showControls", "showCoordinateLabels", "showCoordinateLabels", "coordinateLabelInterval", "coordinateLabelInterval"], outputs: ["onNodeClick", "onNodeClick", "onNodeDoubleClick", "onNodeDoubleClick", "onNodeMouseEnter", "onNodeMouseEnter", "onNodeMouseMove", "onNodeMouseMove", "onNodeMouseLeave", "onNodeMouseLeave", "onNodeContextMenu", "onNodeContextMenu", "onNodeDragStart", "onNodeDragStart", "onNodeDrag", "onNodeDrag", "onNodeDragStop", "onNodeDragStop", "onEdgeClick", "onEdgeClick", "onEdgeUpdate", "onEdgeUpdate", "onEdgeContextMenu", "onEdgeContextMenu", "onEdgeMouseEnter", "onEdgeMouseEnter", "onEdgeMouseMove", "onEdgeMouseMove", "onEdgeMouseLeave", "onEdgeMouseLeave", "onEdgeDoubleClick", "onEdgeDoubleClick", "onEdgeUpdateStart", "onEdgeUpdateStart", "onEdgeUpdateEnd", "onEdgeUpdateEnd", "onNodesChange", "onNodesChange", "onEdgesChange", "onEdgesChange", "onNodesDelete", "onNodesDelete", "onEdgesDelete", "onEdgesDelete", "onSelectionDragStart", "onSelectionDragStart", "onSelectionDrag", "onSelectionDrag", "onSelectionDragStop", "onSelectionDragStop", "onSelectionStart", "onSelectionStart", "onSelectionEnd", "onSelectionEnd", "onSelectionContextMenu", "onSelectionContextMenu", "onConnect", "onConnect", "onConnectStart", "onConnectStart", "onConnectEnd", "onConnectEnd", "onClickConnectStart", "onClickConnectStart", "onClickConnectEnd", "onClickConnectEnd", "onDragOver", "onDragOver", "onDrop", "onDrop", "onInit", "onInit", "onMove", "onMove", "onMoveStart", "onMoveStart", "onMoveEnd", "onMoveEnd", "onSelectionChange", "onSelectionChange", "onPaneScroll", "onPaneScroll", "onPaneClick", "onPaneClick", "onPaneContextMenu", "onPaneContextMenu", "onPaneMouseEnter", "onPaneMouseEnter", "onPaneMouseMove", "onPaneMouseMove", "onPaneMouseLeave", "onPaneMouseLeave", "onError", "onError", "onNodeResizeEnd", "onNodeResizeEnd", "onVisibleNodesChange", "onVisibleNodesChange"] }], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [".react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}machina-react-flow{display:block;width:100%;height:100%}machina-react-flow.touch-mode .react-flow .react-flow__node{pointer-events:none!important}machina-react-flow .react-flow{width:100%;height:100%;overflow:clip!important}machina-react-flow .react-flow .react-flow__renderer{z-index:1}machina-react-flow .react-flow .react-flow__nodes{z-index:4}machina-react-flow .react-flow .react-flow__node{cursor:grab!important;z-index:5!important}machina-react-flow .react-flow .react-flow__node.transitioning{transition:transform .3s ease-out,width .3s ease-out,height .3s ease-out!important}machina-react-flow .react-flow .react-flow__node:active{cursor:grabbing!important}machina-react-flow .react-flow .react-flow__node.nopan{cursor:grab!important}machina-react-flow .react-flow .react-flow__handle{background:#555!important;width:12px!important;height:12px!important;border:2px solid #fff!important}machina-react-flow .react-flow .react-flow__handle:hover{background:#1976d2!important}machina-react-flow .react-flow .react-flow__handle-top{top:-6px!important}machina-react-flow .react-flow .react-flow__handle-right{right:-6px!important}machina-react-flow .react-flow .react-flow__handle-bottom{bottom:-6px!important}machina-react-flow .react-flow .react-flow__handle-left{left:-6px!important}machina-react-flow .react-flow .react-flow__edge-path{stroke:#000!important;stroke-width:3px!important}machina-react-flow .react-flow .react-flow__edge.selected .react-flow__edge-path{stroke:#1976d2!important;stroke-width:3}machina-react-flow .react-flow .react-flow__controls button{background:#fff!important;border:1px solid #333!important;color:#333!important}machina-react-flow .react-flow .react-flow__controls button:hover{background:#f0f0f0!important}machina-react-flow .react-flow .react-flow__minimap{border:1px solid #333!important}machina-react-flow .react-flow .react-flow__minimap .react-flow__minimap-mask{fill:#e0e0e0!important}machina-react-flow .react-flow .react-flow__minimap .react-flow__minimap-node{fill:#333!important}machina-react-flow .react-flow .react-flow__connectionline .react-flow__edge-path{stroke:#1976d2!important;stroke-width:3px!important;stroke-dasharray:5 5!important;animation:dash .5s linear infinite!important}@keyframes dash{to{stroke-dashoffset:-10}}machina-react-flow .react-flow .react-flow__node-node{background:transparent!important;border:none!important;padding:0!important}machina-react-flow .react-flow .react-flow__node-node.flow-node--group{background:#f0f0f099!important;border:2px dashed #d1d5db!important;border-radius:16px!important;padding:60px 40px 40px!important;pointer-events:all!important;box-sizing:border-box!important}machina-react-flow .react-flow .react-flow__node-node.flow-node--group.selected{border-color:#3b82f6!important;border-style:solid!important;background:#f0f0f0cc!important}\n"], encapsulation: i0.ViewEncapsulation.None });
596
528
  }
597
529
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImport: i0, type: ReactFlowComponent, decorators: [{
598
530
  type: Component,
@@ -630,15 +562,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.6", ngImpor
630
562
  'onConnect', 'onConnectStart', 'onConnectEnd', 'onClickConnectStart',
631
563
  'onClickConnectEnd', 'onDragOver', 'onDrop', 'onInit', 'onMove', 'onMoveStart',
632
564
  'onMoveEnd', 'onSelectionChange', 'onPaneScroll', 'onPaneClick', 'onPaneContextMenu',
633
- 'onPaneMouseEnter', 'onPaneMouseMove', 'onPaneMouseLeave', 'onError', 'onNodeResizeEnd'
565
+ 'onPaneMouseEnter', 'onPaneMouseMove', 'onPaneMouseLeave', 'onError', 'onNodeResizeEnd',
566
+ 'onVisibleNodesChange'
634
567
  ]
635
568
  }
636
- ], styles: [".react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}machina-react-flow{display:block;width:100%;height:100%}machina-react-flow.touch-mode .react-flow .react-flow__node{pointer-events:none!important}machina-react-flow .react-flow{width:100%;height:100%;overflow:clip!important}machina-react-flow .react-flow .react-flow__renderer{z-index:1}machina-react-flow .react-flow .react-flow__nodes{z-index:4}machina-react-flow .react-flow .react-flow__node{cursor:grab!important;z-index:5!important}machina-react-flow .react-flow .react-flow__node.transitioning{transition:transform .3s ease-out,width .3s ease-out,height .3s ease-out!important}machina-react-flow .react-flow .react-flow__node:active{cursor:grabbing!important}machina-react-flow .react-flow .react-flow__node.nopan{cursor:grab!important}machina-react-flow .react-flow .react-flow__node-default{background:#4ecdc4!important;border:3px solid #333!important;border-radius:8px!important;padding:15px!important;color:#fff!important;font-weight:700!important;font-size:18px!important;box-shadow:0 4px 8px #0000004d!important;opacity:1!important;min-width:200px!important}machina-react-flow .react-flow .react-flow__node-default[data-id=\"1\"]{background:#ff6b6b!important}machina-react-flow .react-flow .react-flow__node-default[data-id=\"2\"]{background:#4ecdc4!important}machina-react-flow .react-flow .react-flow__handle{background:#555!important;width:12px!important;height:12px!important;border:2px solid #fff!important;opacity:1!important}machina-react-flow .react-flow .react-flow__handle:hover{background:#1976d2!important}machina-react-flow .react-flow .react-flow__handle-top{top:-6px!important}machina-react-flow .react-flow .react-flow__handle-right{right:-6px!important}machina-react-flow .react-flow .react-flow__handle-bottom{bottom:-6px!important}machina-react-flow .react-flow .react-flow__handle-left{left:-6px!important}machina-react-flow .react-flow .react-flow__edge-path{stroke:#000!important;stroke-width:3px!important}machina-react-flow .react-flow .react-flow__edge.selected .react-flow__edge-path{stroke:#1976d2!important;stroke-width:3}machina-react-flow .react-flow .react-flow__controls button{background:#fff!important;border:1px solid #333!important;color:#333!important}machina-react-flow .react-flow .react-flow__controls button:hover{background:#f0f0f0!important}machina-react-flow .react-flow .react-flow__minimap{border:1px solid #333!important}machina-react-flow .react-flow .react-flow__minimap .react-flow__minimap-mask{fill:#e0e0e0!important}machina-react-flow .react-flow .react-flow__minimap .react-flow__minimap-node{fill:#333!important}machina-react-flow .react-flow .react-flow__connectionline .react-flow__edge-path{stroke:#1976d2!important;stroke-width:3px!important;stroke-dasharray:5 5!important;animation:dash .5s linear infinite!important}@keyframes dash{to{stroke-dashoffset:-10}}machina-react-flow .react-flow .react-flow__node-group{background:#f0f0f099!important;border:2px dashed #d1d5db!important;border-radius:16px!important;padding:60px 40px 40px!important;pointer-events:all!important;box-sizing:border-box!important}machina-react-flow .react-flow .react-flow__node-group.selected{border-color:#3b82f6!important;border-style:solid!important;background:#f0f0f0cc!important}machina-react-flow .react-flow .react-flow__node-task{background:transparent!important;border:none!important;padding:0!important}machina-react-flow .react-flow .react-flow__node-issue{background:transparent!important;border:none!important;padding:0!important}\n"] }]
637
- }], ctorParameters: () => [], propDecorators: { contentNodeTemplates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => FlowNodeDirective), { isSignal: true }] }], enableTouchPassthrough: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableTouchPassthrough", required: false }] }] } });
569
+ ], styles: [".react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}machina-react-flow{display:block;width:100%;height:100%}machina-react-flow.touch-mode .react-flow .react-flow__node{pointer-events:none!important}machina-react-flow .react-flow{width:100%;height:100%;overflow:clip!important}machina-react-flow .react-flow .react-flow__renderer{z-index:1}machina-react-flow .react-flow .react-flow__nodes{z-index:4}machina-react-flow .react-flow .react-flow__node{cursor:grab!important;z-index:5!important}machina-react-flow .react-flow .react-flow__node.transitioning{transition:transform .3s ease-out,width .3s ease-out,height .3s ease-out!important}machina-react-flow .react-flow .react-flow__node:active{cursor:grabbing!important}machina-react-flow .react-flow .react-flow__node.nopan{cursor:grab!important}machina-react-flow .react-flow .react-flow__handle{background:#555!important;width:12px!important;height:12px!important;border:2px solid #fff!important}machina-react-flow .react-flow .react-flow__handle:hover{background:#1976d2!important}machina-react-flow .react-flow .react-flow__handle-top{top:-6px!important}machina-react-flow .react-flow .react-flow__handle-right{right:-6px!important}machina-react-flow .react-flow .react-flow__handle-bottom{bottom:-6px!important}machina-react-flow .react-flow .react-flow__handle-left{left:-6px!important}machina-react-flow .react-flow .react-flow__edge-path{stroke:#000!important;stroke-width:3px!important}machina-react-flow .react-flow .react-flow__edge.selected .react-flow__edge-path{stroke:#1976d2!important;stroke-width:3}machina-react-flow .react-flow .react-flow__controls button{background:#fff!important;border:1px solid #333!important;color:#333!important}machina-react-flow .react-flow .react-flow__controls button:hover{background:#f0f0f0!important}machina-react-flow .react-flow .react-flow__minimap{border:1px solid #333!important}machina-react-flow .react-flow .react-flow__minimap .react-flow__minimap-mask{fill:#e0e0e0!important}machina-react-flow .react-flow .react-flow__minimap .react-flow__minimap-node{fill:#333!important}machina-react-flow .react-flow .react-flow__connectionline .react-flow__edge-path{stroke:#1976d2!important;stroke-width:3px!important;stroke-dasharray:5 5!important;animation:dash .5s linear infinite!important}@keyframes dash{to{stroke-dashoffset:-10}}machina-react-flow .react-flow .react-flow__node-node{background:transparent!important;border:none!important;padding:0!important}machina-react-flow .react-flow .react-flow__node-node.flow-node--group{background:#f0f0f099!important;border:2px dashed #d1d5db!important;border-radius:16px!important;padding:60px 40px 40px!important;pointer-events:all!important;box-sizing:border-box!important}machina-react-flow .react-flow .react-flow__node-node.flow-node--group.selected{border-color:#3b82f6!important;border-style:solid!important;background:#f0f0f0cc!important}\n"] }]
570
+ }], ctorParameters: () => [], propDecorators: { contentNodeTemplates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => FlowNodeDirective), { isSignal: true }] }], enableTouchPassthrough: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableTouchPassthrough", required: false }] }], handlesVisible: [{ type: i0.Input, args: [{ isSignal: true, alias: "handlesVisible", required: false }] }] } });
638
571
 
639
572
  /**
640
573
  * Generated bundle index. Do not edit.
641
574
  */
642
575
 
643
- export { FlowNodeDirective, NODE_TYPES, ReactFlowComponent, ReactFlowComponentStore, createTemplateNodeComponent, setAngularContext };
576
+ export { FlowNodeDirective, ReactFlowComponent, ReactFlowComponentStore, createTemplateNodeComponent };
644
577
  //# sourceMappingURL=xxmachina-components-extras-flow.mjs.map