@angflow/angular 0.0.18 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +108 -15
- package/dist/base.css +8 -0
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/lib/agent/agent-bridge.service.d.ts +3 -1
- package/dist/esm/lib/agent/agent-bridge.service.js +130 -23
- package/dist/esm/lib/agent/agent-bridge.service.js.map +1 -1
- package/dist/esm/lib/agent/chat/agent-chat.component.d.ts +0 -1
- package/dist/esm/lib/agent/chat/agent-chat.service.d.ts +0 -1
- package/dist/esm/lib/agent/chat/agent-chat.service.js +11 -2
- package/dist/esm/lib/agent/chat/agent-chat.service.js.map +1 -1
- package/dist/esm/lib/agent/chat/default-system-prompt.d.ts +1 -2
- package/dist/esm/lib/agent/chat/default-system-prompt.js +2 -1
- package/dist/esm/lib/agent/chat/default-system-prompt.js.map +1 -1
- package/dist/esm/lib/agent/chat/index.d.ts +0 -1
- package/dist/esm/lib/agent/chat/provide-agent-chat.d.ts +0 -1
- package/dist/esm/lib/agent/chat/types.d.ts +0 -1
- package/dist/esm/lib/agent/history.d.ts +0 -1
- package/dist/esm/lib/agent/index.d.ts +0 -1
- package/dist/esm/lib/agent/provide-agent-bridge.d.ts +0 -1
- package/dist/esm/lib/agent/tool-schemas.d.ts +0 -1
- package/dist/esm/lib/agent/tool-schemas.js +3 -1
- package/dist/esm/lib/agent/tool-schemas.js.map +1 -1
- package/dist/esm/lib/agent/transports/websocket.d.ts +8 -1
- package/dist/esm/lib/agent/transports/websocket.js +14 -2
- package/dist/esm/lib/agent/transports/websocket.js.map +1 -1
- package/dist/esm/lib/agent/transports/window.d.ts +0 -1
- package/dist/esm/lib/agent/transports/window.js +2 -1
- package/dist/esm/lib/agent/transports/window.js.map +1 -1
- package/dist/esm/lib/agent/types.d.ts +0 -1
- package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.d.ts +0 -1
- package/dist/esm/lib/components/attribution/attribution.component.d.ts +0 -1
- package/dist/esm/lib/components/background/background.component.d.ts +0 -1
- package/dist/esm/lib/components/connection-line/connection-line.component.d.ts +0 -1
- package/dist/esm/lib/components/controls/controls.component.d.ts +0 -1
- package/dist/esm/lib/components/controls/controls.component.js +2 -1
- package/dist/esm/lib/components/controls/controls.component.js.map +1 -1
- package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.d.ts +0 -1
- package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.d.ts +7 -2
- package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js +11 -4
- package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js.map +1 -1
- package/dist/esm/lib/components/edges/base-edge.component.d.ts +0 -1
- package/dist/esm/lib/components/edges/bezier-edge.component.d.ts +0 -1
- package/dist/esm/lib/components/edges/bezier-edge.component.js +2 -1
- package/dist/esm/lib/components/edges/bezier-edge.component.js.map +1 -1
- package/dist/esm/lib/components/edges/edge-text.component.d.ts +0 -1
- package/dist/esm/lib/components/edges/simple-bezier-edge.component.d.ts +0 -1
- package/dist/esm/lib/components/edges/simple-bezier-edge.component.js +2 -1
- package/dist/esm/lib/components/edges/simple-bezier-edge.component.js.map +1 -1
- package/dist/esm/lib/components/edges/smooth-step-edge.component.d.ts +0 -1
- package/dist/esm/lib/components/edges/smooth-step-edge.component.js +2 -1
- package/dist/esm/lib/components/edges/smooth-step-edge.component.js.map +1 -1
- package/dist/esm/lib/components/edges/step-edge.component.d.ts +0 -1
- package/dist/esm/lib/components/edges/step-edge.component.js +2 -1
- package/dist/esm/lib/components/edges/step-edge.component.js.map +1 -1
- package/dist/esm/lib/components/edges/straight-edge.component.d.ts +0 -1
- package/dist/esm/lib/components/edges/straight-edge.component.js +2 -1
- package/dist/esm/lib/components/edges/straight-edge.component.js.map +1 -1
- package/dist/esm/lib/components/handle/handle.component.d.ts +1 -1
- package/dist/esm/lib/components/handle/handle.component.js +13 -1
- package/dist/esm/lib/components/handle/handle.component.js.map +1 -1
- package/dist/esm/lib/components/handle-group/handle-group.component.d.ts +0 -1
- package/dist/esm/lib/components/handle-group/handle-row.component.d.ts +0 -1
- package/dist/esm/lib/components/minimap/minimap.component.d.ts +36 -25
- package/dist/esm/lib/components/minimap/minimap.component.js +197 -213
- package/dist/esm/lib/components/minimap/minimap.component.js.map +1 -1
- package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.d.ts +13 -5
- package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.js +13 -4
- package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.js.map +1 -1
- package/dist/esm/lib/components/node-resizer/node-resizer.component.d.ts +2 -1
- package/dist/esm/lib/components/node-resizer/node-resizer.component.js +43 -26
- package/dist/esm/lib/components/node-resizer/node-resizer.component.js.map +1 -1
- package/dist/esm/lib/components/node-toolbar/node-toolbar.component.d.ts +0 -1
- package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js +1 -1
- package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js.map +1 -1
- package/dist/esm/lib/components/nodes/default-node.component.d.ts +6 -15
- package/dist/esm/lib/components/nodes/default-node.component.js +13 -22
- package/dist/esm/lib/components/nodes/default-node.component.js.map +1 -1
- package/dist/esm/lib/components/nodes/group-node.component.d.ts +5 -16
- package/dist/esm/lib/components/nodes/group-node.component.js +8 -16
- package/dist/esm/lib/components/nodes/group-node.component.js.map +1 -1
- package/dist/esm/lib/components/nodes/input-node.component.d.ts +6 -15
- package/dist/esm/lib/components/nodes/input-node.component.js +11 -20
- package/dist/esm/lib/components/nodes/input-node.component.js.map +1 -1
- package/dist/esm/lib/components/nodes/output-node.component.d.ts +6 -15
- package/dist/esm/lib/components/nodes/output-node.component.js +11 -20
- package/dist/esm/lib/components/nodes/output-node.component.js.map +1 -1
- package/dist/esm/lib/components/nodes/template-node.component.d.ts +2 -14
- package/dist/esm/lib/components/nodes/template-node.component.js +16 -26
- package/dist/esm/lib/components/nodes/template-node.component.js.map +1 -1
- package/dist/esm/lib/components/panel/panel.component.d.ts +0 -1
- package/dist/esm/lib/components/selection-box/selection-box.component.d.ts +11 -1
- package/dist/esm/lib/components/selection-box/selection-box.component.js +108 -3
- package/dist/esm/lib/components/selection-box/selection-box.component.js.map +1 -1
- package/dist/esm/lib/components/viewport-portal/viewport-portal.component.d.ts +0 -1
- package/dist/esm/lib/container/edge-renderer/edge-renderer.component.d.ts +27 -3
- package/dist/esm/lib/container/edge-renderer/edge-renderer.component.js +151 -61
- package/dist/esm/lib/container/edge-renderer/edge-renderer.component.js.map +1 -1
- package/dist/esm/lib/container/ng-flow/ng-flow.component.d.ts +4 -8
- package/dist/esm/lib/container/ng-flow/ng-flow.component.js +151 -54
- package/dist/esm/lib/container/ng-flow/ng-flow.component.js.map +1 -1
- package/dist/esm/lib/container/node-renderer/node-renderer.component.d.ts +7 -1
- package/dist/esm/lib/container/node-renderer/node-renderer.component.js +70 -14
- package/dist/esm/lib/container/node-renderer/node-renderer.component.js.map +1 -1
- package/dist/esm/lib/container/pane/pane.component.d.ts +0 -1
- package/dist/esm/lib/container/pane/pane.component.js +23 -3
- package/dist/esm/lib/container/pane/pane.component.js.map +1 -1
- package/dist/esm/lib/container/viewport/viewport.component.d.ts +0 -1
- package/dist/esm/lib/directives/drag.directive.d.ts +1 -2
- package/dist/esm/lib/directives/drag.directive.js +1 -1
- package/dist/esm/lib/directives/drag.directive.js.map +1 -1
- package/dist/esm/lib/directives/drop-zone.directive.d.ts +0 -1
- package/dist/esm/lib/directives/key-handler.directive.d.ts +0 -1
- package/dist/esm/lib/directives/key-handler.directive.js +6 -2
- package/dist/esm/lib/directives/key-handler.directive.js.map +1 -1
- package/dist/esm/lib/directives/node-type.directive.d.ts +0 -1
- package/dist/esm/lib/graph/collapse.d.ts +35 -0
- package/dist/esm/lib/graph/collapse.js +102 -0
- package/dist/esm/lib/graph/collapse.js.map +1 -0
- package/dist/esm/lib/graph/group-bounds.d.ts +42 -0
- package/dist/esm/lib/graph/group-bounds.js +34 -0
- package/dist/esm/lib/graph/group-bounds.js.map +1 -0
- package/dist/esm/lib/layout/dagre-layout.d.ts +0 -1
- package/dist/esm/lib/layout/index.d.ts +1 -2
- package/dist/esm/lib/layout/index.js.map +1 -1
- package/dist/esm/lib/layout/layout-nodes.d.ts +39 -5
- package/dist/esm/lib/layout/layout-nodes.js +94 -7
- package/dist/esm/lib/layout/layout-nodes.js.map +1 -1
- package/dist/esm/lib/public-api.d.ts +4 -2
- package/dist/esm/lib/public-api.js +2 -1
- package/dist/esm/lib/public-api.js.map +1 -1
- package/dist/esm/lib/services/flow-store.service.d.ts +25 -2
- package/dist/esm/lib/services/flow-store.service.js +101 -14
- package/dist/esm/lib/services/flow-store.service.js.map +1 -1
- package/dist/esm/lib/services/ng-flow.service.d.ts +82 -7
- package/dist/esm/lib/services/ng-flow.service.js +210 -26
- package/dist/esm/lib/services/ng-flow.service.js.map +1 -1
- package/dist/esm/lib/services/tokens.d.ts +0 -1
- package/dist/esm/lib/types/edges.d.ts +0 -1
- package/dist/esm/lib/types/general.d.ts +0 -1
- package/dist/esm/lib/types/index.d.ts +0 -1
- package/dist/esm/lib/types/node-template.d.ts +2 -1
- package/dist/esm/lib/types/nodes.d.ts +4 -1
- package/dist/esm/lib/types/store.d.ts +0 -1
- package/dist/esm/lib/utils/changes.d.ts +28 -2
- package/dist/esm/lib/utils/changes.js +57 -1
- package/dist/esm/lib/utils/changes.js.map +1 -1
- package/dist/esm/lib/utils/index.d.ts +2 -2
- package/dist/esm/lib/utils/index.js +2 -1
- package/dist/esm/lib/utils/index.js.map +1 -1
- package/dist/esm/lib/utils/inject-flow-store.d.ts +16 -0
- package/dist/esm/lib/utils/inject-flow-store.js +23 -0
- package/dist/esm/lib/utils/inject-flow-store.js.map +1 -0
- package/dist/esm/lib/utils/inject-ng-flow-node.d.ts +0 -1
- package/dist/esm/lib/utils/position-tween.d.ts +0 -1
- package/dist/esm/lib/utils/template-interpolation.d.ts +0 -1
- package/dist/esm/lib/utils/type-guards.d.ts +0 -1
- package/dist/esm/lib/utils/type-guards.js +2 -0
- package/dist/esm/lib/utils/type-guards.js.map +1 -1
- package/dist/esm/test-setup.d.ts +0 -1
- package/dist/style.css +8 -0
- package/package.json +83 -78
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/lib/agent/agent-bridge.service.d.ts.map +0 -1
- package/dist/esm/lib/agent/chat/agent-chat.component.d.ts.map +0 -1
- package/dist/esm/lib/agent/chat/agent-chat.service.d.ts.map +0 -1
- package/dist/esm/lib/agent/chat/default-system-prompt.d.ts.map +0 -1
- package/dist/esm/lib/agent/chat/index.d.ts.map +0 -1
- package/dist/esm/lib/agent/chat/provide-agent-chat.d.ts.map +0 -1
- package/dist/esm/lib/agent/chat/types.d.ts.map +0 -1
- package/dist/esm/lib/agent/history.d.ts.map +0 -1
- package/dist/esm/lib/agent/index.d.ts.map +0 -1
- package/dist/esm/lib/agent/provide-agent-bridge.d.ts.map +0 -1
- package/dist/esm/lib/agent/tool-schemas.d.ts.map +0 -1
- package/dist/esm/lib/agent/transports/websocket.d.ts.map +0 -1
- package/dist/esm/lib/agent/transports/window.d.ts.map +0 -1
- package/dist/esm/lib/agent/types.d.ts.map +0 -1
- package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.d.ts.map +0 -1
- package/dist/esm/lib/components/attribution/attribution.component.d.ts.map +0 -1
- package/dist/esm/lib/components/background/background.component.d.ts.map +0 -1
- package/dist/esm/lib/components/connection-line/connection-line.component.d.ts.map +0 -1
- package/dist/esm/lib/components/controls/controls.component.d.ts.map +0 -1
- package/dist/esm/lib/components/edge-label-renderer/edge-label-renderer.component.d.ts.map +0 -1
- package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.d.ts.map +0 -1
- package/dist/esm/lib/components/edges/base-edge.component.d.ts.map +0 -1
- package/dist/esm/lib/components/edges/bezier-edge.component.d.ts.map +0 -1
- package/dist/esm/lib/components/edges/edge-text.component.d.ts.map +0 -1
- package/dist/esm/lib/components/edges/simple-bezier-edge.component.d.ts.map +0 -1
- package/dist/esm/lib/components/edges/smooth-step-edge.component.d.ts.map +0 -1
- package/dist/esm/lib/components/edges/step-edge.component.d.ts.map +0 -1
- package/dist/esm/lib/components/edges/straight-edge.component.d.ts.map +0 -1
- package/dist/esm/lib/components/handle/handle.component.d.ts.map +0 -1
- package/dist/esm/lib/components/handle-group/handle-group.component.d.ts.map +0 -1
- package/dist/esm/lib/components/handle-group/handle-row.component.d.ts.map +0 -1
- package/dist/esm/lib/components/minimap/minimap.component.d.ts.map +0 -1
- package/dist/esm/lib/components/ng-flow-provider/ng-flow-provider.component.d.ts.map +0 -1
- package/dist/esm/lib/components/node-resizer/node-resizer.component.d.ts.map +0 -1
- package/dist/esm/lib/components/node-toolbar/node-toolbar.component.d.ts.map +0 -1
- package/dist/esm/lib/components/nodes/default-node.component.d.ts.map +0 -1
- package/dist/esm/lib/components/nodes/group-node.component.d.ts.map +0 -1
- package/dist/esm/lib/components/nodes/input-node.component.d.ts.map +0 -1
- package/dist/esm/lib/components/nodes/output-node.component.d.ts.map +0 -1
- package/dist/esm/lib/components/nodes/template-node.component.d.ts.map +0 -1
- package/dist/esm/lib/components/panel/panel.component.d.ts.map +0 -1
- package/dist/esm/lib/components/selection-box/selection-box.component.d.ts.map +0 -1
- package/dist/esm/lib/components/viewport-portal/viewport-portal.component.d.ts.map +0 -1
- package/dist/esm/lib/container/edge-renderer/edge-renderer.component.d.ts.map +0 -1
- package/dist/esm/lib/container/ng-flow/ng-flow.component.d.ts.map +0 -1
- package/dist/esm/lib/container/node-renderer/node-renderer.component.d.ts.map +0 -1
- package/dist/esm/lib/container/pane/pane.component.d.ts.map +0 -1
- package/dist/esm/lib/container/viewport/viewport.component.d.ts.map +0 -1
- package/dist/esm/lib/directives/drag.directive.d.ts.map +0 -1
- package/dist/esm/lib/directives/drop-zone.directive.d.ts.map +0 -1
- package/dist/esm/lib/directives/key-handler.directive.d.ts.map +0 -1
- package/dist/esm/lib/directives/node-type.directive.d.ts.map +0 -1
- package/dist/esm/lib/layout/dagre-layout.d.ts.map +0 -1
- package/dist/esm/lib/layout/index.d.ts.map +0 -1
- package/dist/esm/lib/layout/layout-nodes.d.ts.map +0 -1
- package/dist/esm/lib/public-api.d.ts.map +0 -1
- package/dist/esm/lib/services/flow-store.service.d.ts.map +0 -1
- package/dist/esm/lib/services/ng-flow.service.d.ts.map +0 -1
- package/dist/esm/lib/services/tokens.d.ts.map +0 -1
- package/dist/esm/lib/types/edges.d.ts.map +0 -1
- package/dist/esm/lib/types/general.d.ts.map +0 -1
- package/dist/esm/lib/types/index.d.ts.map +0 -1
- package/dist/esm/lib/types/node-template.d.ts.map +0 -1
- package/dist/esm/lib/types/nodes.d.ts.map +0 -1
- package/dist/esm/lib/types/store.d.ts.map +0 -1
- package/dist/esm/lib/utils/changes.d.ts.map +0 -1
- package/dist/esm/lib/utils/index.d.ts.map +0 -1
- package/dist/esm/lib/utils/inject-ng-flow-node.d.ts.map +0 -1
- package/dist/esm/lib/utils/position-tween.d.ts.map +0 -1
- package/dist/esm/lib/utils/template-interpolation.d.ts.map +0 -1
- package/dist/esm/lib/utils/type-guards.d.ts.map +0 -1
- package/dist/esm/test-setup.d.ts.map +0 -1
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
/**
|
|
3
3
|
* Provides a `FlowStore` and `NgFlowService` to its descendants without
|
|
4
|
-
* rendering a flow
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* rendering a flow, so flow state can be shared across siblings of a
|
|
5
|
+
* `<ng-flow>` rather than only its children.
|
|
6
|
+
*
|
|
7
|
+
* A descendant `<ng-flow>` reuses this provider's `FlowStore` and
|
|
8
|
+
* `NgFlowService` instead of creating its own (it resolves them with
|
|
9
|
+
* `skipSelf`), so any sibling that injects `NgFlowService` (e.g. a sidebar
|
|
10
|
+
* calling `fitView` or `setNodes`) observes and mutates the same state the
|
|
11
|
+
* flow renders. The provider owns the store's lifetime: unmounting the inner
|
|
12
|
+
* `<ng-flow>` does NOT clear the shared store's graph state (nodes, edges,
|
|
13
|
+
* etc.) — surviving siblings keep observing it, matching ReactFlow's provider
|
|
14
|
+
* semantics. Only the panZoom instance is cleared on inner unmount, because
|
|
15
|
+
* that DOM-bound object is destroyed along with the component.
|
|
7
16
|
*
|
|
8
17
|
* @example
|
|
9
18
|
* ```html
|
|
10
19
|
* <ng-flow-provider>
|
|
11
20
|
* <ng-flow [nodes]="nodes" [edges]="edges" />
|
|
12
|
-
* <my-sidebar /> <!--
|
|
21
|
+
* <my-sidebar /> <!-- inject NgFlowService; sees the same store -->
|
|
13
22
|
* </ng-flow-provider>
|
|
14
23
|
* ```
|
|
15
24
|
*/
|
|
@@ -17,4 +26,3 @@ export declare class NgFlowProviderComponent {
|
|
|
17
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgFlowProviderComponent, never>;
|
|
18
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<NgFlowProviderComponent, "ng-flow-provider", never, {}, {}, never, ["*"], true, never>;
|
|
19
28
|
}
|
|
20
|
-
//# sourceMappingURL=ng-flow-provider.component.d.ts.map
|
|
@@ -4,15 +4,24 @@ import { NgFlowService } from '../../services/ng-flow.service';
|
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
/**
|
|
6
6
|
* Provides a `FlowStore` and `NgFlowService` to its descendants without
|
|
7
|
-
* rendering a flow
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* rendering a flow, so flow state can be shared across siblings of a
|
|
8
|
+
* `<ng-flow>` rather than only its children.
|
|
9
|
+
*
|
|
10
|
+
* A descendant `<ng-flow>` reuses this provider's `FlowStore` and
|
|
11
|
+
* `NgFlowService` instead of creating its own (it resolves them with
|
|
12
|
+
* `skipSelf`), so any sibling that injects `NgFlowService` (e.g. a sidebar
|
|
13
|
+
* calling `fitView` or `setNodes`) observes and mutates the same state the
|
|
14
|
+
* flow renders. The provider owns the store's lifetime: unmounting the inner
|
|
15
|
+
* `<ng-flow>` does NOT clear the shared store's graph state (nodes, edges,
|
|
16
|
+
* etc.) — surviving siblings keep observing it, matching ReactFlow's provider
|
|
17
|
+
* semantics. Only the panZoom instance is cleared on inner unmount, because
|
|
18
|
+
* that DOM-bound object is destroyed along with the component.
|
|
10
19
|
*
|
|
11
20
|
* @example
|
|
12
21
|
* ```html
|
|
13
22
|
* <ng-flow-provider>
|
|
14
23
|
* <ng-flow [nodes]="nodes" [edges]="edges" />
|
|
15
|
-
* <my-sidebar /> <!--
|
|
24
|
+
* <my-sidebar /> <!-- inject NgFlowService; sees the same store -->
|
|
16
25
|
* </ng-flow-provider>
|
|
17
26
|
* ```
|
|
18
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-flow-provider.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/ng-flow-provider/ng-flow-provider.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;;AAE/D
|
|
1
|
+
{"version":3,"file":"ng-flow-provider.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/ng-flow-provider/ng-flow-provider.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;;AAE/D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAQH,MAAM,OAAO,uBAAuB;+GAAvB,uBAAuB;mGAAvB,uBAAuB,+DAJvB,CAAC,SAAS,EAAE,aAAa,CAAC,0BAE3B,gBAAgB;;4FAEf,uBAAuB;kBAPnC,SAAS;mBAAC;oBACT,QAAQ,EAAE,kBAAkB;oBAC5B,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE,gBAAgB;iBAC3B"}
|
|
@@ -14,6 +14,7 @@ import * as i0 from "@angular/core";
|
|
|
14
14
|
export declare class NodeResizerComponent implements AfterViewInit, OnDestroy {
|
|
15
15
|
private store;
|
|
16
16
|
private el;
|
|
17
|
+
private injector;
|
|
17
18
|
/** Node to resize. Defaults to the host node when placed inside a node template. Aliased as `nodeId`. */
|
|
18
19
|
readonly nodeIdInput: import("@angular/core").InputSignal<string | undefined>;
|
|
19
20
|
/** Minimum allowed width in pixels. */
|
|
@@ -77,8 +78,8 @@ export declare class NodeResizerComponent implements AfterViewInit, OnDestroy {
|
|
|
77
78
|
readonly effectivelyVisible: import("@angular/core").Signal<boolean>;
|
|
78
79
|
constructor(nodeId: string | null);
|
|
79
80
|
ngAfterViewInit(): void;
|
|
81
|
+
private applyResizerConfig;
|
|
80
82
|
ngOnDestroy(): void;
|
|
81
83
|
static ɵfac: i0.ɵɵFactoryDeclaration<NodeResizerComponent, [{ optional: true; }]>;
|
|
82
84
|
static ɵcmp: i0.ɵɵComponentDeclaration<NodeResizerComponent, "ng-flow-node-resizer", never, { "nodeIdInput": { "alias": "nodeId"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "keepAspectRatio": { "alias": "keepAspectRatio"; "required": false; "isSignal": true; }; "isVisible": { "alias": "isVisible"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "handleClassName": { "alias": "handleClassName"; "required": false; "isSignal": true; }; "handleStyle": { "alias": "handleStyle"; "required": false; "isSignal": true; }; "lineClassName": { "alias": "lineClassName"; "required": false; "isSignal": true; }; "lineStyle": { "alias": "lineStyle"; "required": false; "isSignal": true; }; "autoScale": { "alias": "autoScale"; "required": false; "isSignal": true; }; "shouldResize": { "alias": "shouldResize"; "required": false; "isSignal": true; }; "onResizeStartCb": { "alias": "onResizeStart"; "required": false; "isSignal": true; }; "onResizeCb": { "alias": "onResize"; "required": false; "isSignal": true; }; "onResizeEndCb": { "alias": "onResizeEnd"; "required": false; "isSignal": true; }; }, { "resizeStart": "resizeStart"; "resize": "resize"; "resizeEnd": "resizeEnd"; }, never, never, true, never>;
|
|
83
85
|
}
|
|
84
|
-
//# sourceMappingURL=node-resizer.component.d.ts.map
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy, input, output, inject, computed, ElementRef, Optional, Inject, } from '@angular/core';
|
|
1
|
+
import { Component, ChangeDetectionStrategy, input, output, inject, computed, effect, Injector, ElementRef, Optional, Inject, } from '@angular/core';
|
|
2
2
|
import { XYResizer, } from '@angflow/system';
|
|
3
3
|
import { FlowStore } from '../../services/flow-store.service';
|
|
4
4
|
import { NODE_ID } from '../../services/tokens';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
/** Control positions, in the same order as the template elements (4 corners, then 4 lines). */
|
|
7
|
+
const CONTROL_POSITIONS = [
|
|
8
|
+
'top-left', 'top-right', 'bottom-left', 'bottom-right',
|
|
9
|
+
'top', 'right', 'bottom', 'left',
|
|
10
|
+
];
|
|
6
11
|
/**
|
|
7
12
|
* Adds draggable resize handles and edges to a node. Place inside a node
|
|
8
13
|
* template — the resizer auto-discovers the host node id — or pass `[nodeId]`
|
|
@@ -17,6 +22,7 @@ export class NodeResizerComponent {
|
|
|
17
22
|
constructor(nodeId) {
|
|
18
23
|
this.store = inject(FlowStore);
|
|
19
24
|
this.el = inject((ElementRef));
|
|
25
|
+
this.injector = inject(Injector);
|
|
20
26
|
/** Node to resize. Defaults to the host node when placed inside a node template. Aliased as `nodeId`. */
|
|
21
27
|
this.nodeIdInput = input(undefined, { ...(ngDevMode ? { debugName: "nodeIdInput" } : /* istanbul ignore next */ {}), alias: 'nodeId' });
|
|
22
28
|
/** Minimum allowed width in pixels. */
|
|
@@ -84,13 +90,9 @@ export class NodeResizerComponent {
|
|
|
84
90
|
}
|
|
85
91
|
ngAfterViewInit() {
|
|
86
92
|
const resolvedNodeId = this.nodeIdInput() ?? this.nodeId;
|
|
87
|
-
// Template order: 4 corners, then 4 lines. Must match
|
|
93
|
+
// Template order: 4 corners, then 4 lines. Must match CONTROL_POSITIONS.
|
|
88
94
|
const handles = Array.from(this.el.nativeElement.querySelectorAll(':scope > .xy-flow__resize-control'));
|
|
89
|
-
|
|
90
|
-
'top-left', 'top-right', 'bottom-left', 'bottom-right',
|
|
91
|
-
'top', 'right', 'bottom', 'left',
|
|
92
|
-
];
|
|
93
|
-
handles.forEach((handle, index) => {
|
|
95
|
+
handles.forEach((handle) => {
|
|
94
96
|
const resizer = XYResizer({
|
|
95
97
|
domNode: handle,
|
|
96
98
|
nodeId: resolvedNodeId,
|
|
@@ -145,27 +147,42 @@ export class NodeResizerComponent {
|
|
|
145
147
|
this.resizeEnd.emit({ changes: change });
|
|
146
148
|
},
|
|
147
149
|
});
|
|
150
|
+
this.resizerInstances.push(resizer);
|
|
151
|
+
});
|
|
152
|
+
// Apply config now, then re-apply reactively whenever any config input
|
|
153
|
+
// changes. XYResizer.update() is idempotent, so the effect's first run
|
|
154
|
+
// re-applying the same config is harmless.
|
|
155
|
+
this.applyResizerConfig();
|
|
156
|
+
effect(() => this.applyResizerConfig(), { injector: this.injector });
|
|
157
|
+
}
|
|
158
|
+
applyResizerConfig() {
|
|
159
|
+
const boundaries = {
|
|
160
|
+
minWidth: this.minWidth(),
|
|
161
|
+
minHeight: this.minHeight(),
|
|
162
|
+
maxWidth: this.maxWidth(),
|
|
163
|
+
maxHeight: this.maxHeight(),
|
|
164
|
+
};
|
|
165
|
+
const keepAspectRatio = this.keepAspectRatio();
|
|
166
|
+
const shouldResize = this.shouldResize();
|
|
167
|
+
const onResizeStart = this.onResizeStartCb() ?? ((event, params) => {
|
|
168
|
+
this.resizeStart.emit({ event, ...params });
|
|
169
|
+
});
|
|
170
|
+
const onResize = this.onResizeCb() ?? ((event, params) => {
|
|
171
|
+
this.resize.emit({ event, ...params });
|
|
172
|
+
});
|
|
173
|
+
const onResizeEnd = this.onResizeEndCb() ?? ((event, params) => {
|
|
174
|
+
this.resizeEnd.emit({ event, ...params });
|
|
175
|
+
});
|
|
176
|
+
this.resizerInstances.forEach((resizer, index) => {
|
|
148
177
|
resizer.update({
|
|
149
|
-
controlPosition:
|
|
150
|
-
boundaries
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
keepAspectRatio: this.keepAspectRatio(),
|
|
157
|
-
onResizeStart: this.onResizeStartCb() ?? ((event, params) => {
|
|
158
|
-
this.resizeStart.emit({ event, ...params });
|
|
159
|
-
}),
|
|
160
|
-
onResize: this.onResizeCb() ?? ((event, params) => {
|
|
161
|
-
this.resize.emit({ event, ...params });
|
|
162
|
-
}),
|
|
163
|
-
onResizeEnd: this.onResizeEndCb() ?? ((event, params) => {
|
|
164
|
-
this.resizeEnd.emit({ event, ...params });
|
|
165
|
-
}),
|
|
166
|
-
shouldResize: this.shouldResize(),
|
|
178
|
+
controlPosition: CONTROL_POSITIONS[index],
|
|
179
|
+
boundaries,
|
|
180
|
+
keepAspectRatio,
|
|
181
|
+
onResizeStart,
|
|
182
|
+
onResize,
|
|
183
|
+
onResizeEnd,
|
|
184
|
+
shouldResize,
|
|
167
185
|
});
|
|
168
|
-
this.resizerInstances.push(resizer);
|
|
169
186
|
});
|
|
170
187
|
}
|
|
171
188
|
ngOnDestroy() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-resizer.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/node-resizer/node-resizer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,KAAK,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,UAAU,EAGV,QAAQ,EACR,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,SAAS,GAcV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;;AAEhD;;;;;;;;;GASG;AA0EH,MAAM,OAAO,oBAAoB;
|
|
1
|
+
{"version":3,"file":"node-resizer.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/node-resizer/node-resizer.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,4 +36,3 @@ export declare class NodeToolbarComponent {
|
|
|
36
36
|
static ɵfac: i0.ɵɵFactoryDeclaration<NodeToolbarComponent, [{ optional: true; }]>;
|
|
37
37
|
static ɵcmp: i0.ɵɵComponentDeclaration<NodeToolbarComponent, "ng-flow-node-toolbar", never, { "nodeIdInput": { "alias": "nodeId"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "isVisible": { "alias": "isVisible"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=node-toolbar.component.d.ts.map
|
|
@@ -51,6 +51,7 @@ export class NodeToolbarComponent {
|
|
|
51
51
|
});
|
|
52
52
|
}, ...(ngDevMode ? [{ debugName: "shouldShow" }] : /* istanbul ignore next */ []));
|
|
53
53
|
this.toolbarTransform = computed(() => {
|
|
54
|
+
this.store.version(); // react to measure/resize — nodeLookup is mutated in place
|
|
54
55
|
const ids = this.resolvedNodeIds();
|
|
55
56
|
if (ids.length === 0)
|
|
56
57
|
return '';
|
|
@@ -63,7 +64,6 @@ export class NodeToolbarComponent {
|
|
|
63
64
|
const pos = this.position();
|
|
64
65
|
const off = this.offset();
|
|
65
66
|
const alignVal = this.align();
|
|
66
|
-
let alignTranslate;
|
|
67
67
|
switch (pos) {
|
|
68
68
|
case Position.Top:
|
|
69
69
|
case Position.Bottom: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-toolbar.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/node-toolbar/node-toolbar.component.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"node-toolbar.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/node-toolbar/node-toolbar.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,23 +2,14 @@ import { Position } from '@angflow/system';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/**
|
|
4
4
|
* Built-in node renderer with a target handle on top and a source handle on
|
|
5
|
-
* bottom. Used when a node has no `type` or `type: 'default'`.
|
|
5
|
+
* bottom. Used when a node has no `type` or `type: 'default'`. Reads per-node
|
|
6
|
+
* state through `injectNgFlowNode()` (no `@Input()`s).
|
|
6
7
|
*/
|
|
7
8
|
export declare class DefaultNodeComponent {
|
|
8
9
|
readonly Position: typeof Position;
|
|
9
|
-
readonly
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
readonly selected: import("@angular/core").InputSignal<boolean>;
|
|
13
|
-
readonly dragging: import("@angular/core").InputSignal<boolean>;
|
|
14
|
-
readonly zIndex: import("@angular/core").InputSignal<number>;
|
|
15
|
-
readonly isConnectable: import("@angular/core").InputSignal<boolean>;
|
|
16
|
-
readonly positionAbsoluteX: import("@angular/core").InputSignal<number>;
|
|
17
|
-
readonly positionAbsoluteY: import("@angular/core").InputSignal<number>;
|
|
18
|
-
readonly sourcePosition: import("@angular/core").InputSignal<Position | undefined>;
|
|
19
|
-
readonly targetPosition: import("@angular/core").InputSignal<Position | undefined>;
|
|
20
|
-
readonly dragHandle: import("@angular/core").InputSignal<string | undefined>;
|
|
10
|
+
readonly node: import("../../types").NgFlowNodeContext<{
|
|
11
|
+
label?: string;
|
|
12
|
+
} & Record<string, unknown>>;
|
|
21
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<DefaultNodeComponent, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DefaultNodeComponent, "ng-flow-default-node", never, {
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DefaultNodeComponent, "ng-flow-default-node", never, {}, {}, never, never, true, never>;
|
|
23
15
|
}
|
|
24
|
-
//# sourceMappingURL=default-node.component.d.ts.map
|
|
@@ -1,32 +1,23 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy
|
|
1
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
2
2
|
import { HandleComponent } from '../handle/handle.component';
|
|
3
3
|
import { Position } from '@angflow/system';
|
|
4
|
+
import { injectNgFlowNode } from '../../utils/inject-ng-flow-node';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
6
7
|
* Built-in node renderer with a target handle on top and a source handle on
|
|
7
|
-
* bottom. Used when a node has no `type` or `type: 'default'`.
|
|
8
|
+
* bottom. Used when a node has no `type` or `type: 'default'`. Reads per-node
|
|
9
|
+
* state through `injectNgFlowNode()` (no `@Input()`s).
|
|
8
10
|
*/
|
|
9
11
|
export class DefaultNodeComponent {
|
|
10
12
|
constructor() {
|
|
11
13
|
this.Position = Position;
|
|
12
|
-
this.
|
|
13
|
-
this.data = input(...(ngDevMode ? [undefined, { debugName: "data" }] : /* istanbul ignore next */ []));
|
|
14
|
-
this.type = input(...(ngDevMode ? [undefined, { debugName: "type" }] : /* istanbul ignore next */ []));
|
|
15
|
-
this.selected = input(false, ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
16
|
-
this.dragging = input(false, ...(ngDevMode ? [{ debugName: "dragging" }] : /* istanbul ignore next */ []));
|
|
17
|
-
this.zIndex = input(0, ...(ngDevMode ? [{ debugName: "zIndex" }] : /* istanbul ignore next */ []));
|
|
18
|
-
this.isConnectable = input(true, ...(ngDevMode ? [{ debugName: "isConnectable" }] : /* istanbul ignore next */ []));
|
|
19
|
-
this.positionAbsoluteX = input(0, ...(ngDevMode ? [{ debugName: "positionAbsoluteX" }] : /* istanbul ignore next */ []));
|
|
20
|
-
this.positionAbsoluteY = input(0, ...(ngDevMode ? [{ debugName: "positionAbsoluteY" }] : /* istanbul ignore next */ []));
|
|
21
|
-
this.sourcePosition = input(...(ngDevMode ? [undefined, { debugName: "sourcePosition" }] : /* istanbul ignore next */ []));
|
|
22
|
-
this.targetPosition = input(...(ngDevMode ? [undefined, { debugName: "targetPosition" }] : /* istanbul ignore next */ []));
|
|
23
|
-
this.dragHandle = input(...(ngDevMode ? [undefined, { debugName: "dragHandle" }] : /* istanbul ignore next */ []));
|
|
14
|
+
this.node = injectNgFlowNode();
|
|
24
15
|
}
|
|
25
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: DefaultNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
27
|
-
<ng-flow-handle type="target" [position]="Position.Top" [isConnectable]="isConnectable()" />
|
|
28
|
-
<div>{{ data()?.label }}</div>
|
|
29
|
-
<ng-flow-handle type="source" [position]="Position.Bottom" [isConnectable]="isConnectable()" />
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.15", type: DefaultNodeComponent, isStandalone: true, selector: "ng-flow-default-node", ngImport: i0, template: `
|
|
18
|
+
<ng-flow-handle type="target" [position]="Position.Top" [isConnectable]="node.isConnectable()" />
|
|
19
|
+
<div>{{ node.data()?.label }}</div>
|
|
20
|
+
<ng-flow-handle type="source" [position]="Position.Bottom" [isConnectable]="node.isConnectable()" />
|
|
30
21
|
`, isInline: true, dependencies: [{ kind: "component", type: HandleComponent, selector: "ng-flow-handle", inputs: ["type", "position", "id", "isConnectable", "isConnectableStart", "isConnectableEnd", "isValidConnection", "data", "floating"], outputs: ["onConnect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
22
|
}
|
|
32
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: DefaultNodeComponent, decorators: [{
|
|
@@ -37,10 +28,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
37
28
|
imports: [HandleComponent],
|
|
38
29
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
39
30
|
template: `
|
|
40
|
-
<ng-flow-handle type="target" [position]="Position.Top" [isConnectable]="isConnectable()" />
|
|
41
|
-
<div>{{ data()?.label }}</div>
|
|
42
|
-
<ng-flow-handle type="source" [position]="Position.Bottom" [isConnectable]="isConnectable()" />
|
|
31
|
+
<ng-flow-handle type="target" [position]="Position.Top" [isConnectable]="node.isConnectable()" />
|
|
32
|
+
<div>{{ node.data()?.label }}</div>
|
|
33
|
+
<ng-flow-handle type="source" [position]="Position.Bottom" [isConnectable]="node.isConnectable()" />
|
|
43
34
|
`,
|
|
44
35
|
}]
|
|
45
|
-
}]
|
|
36
|
+
}] });
|
|
46
37
|
//# sourceMappingURL=default-node.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-node.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/nodes/default-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"default-node.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/nodes/default-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;;AAEnE;;;;GAIG;AAYH,MAAM,OAAO,oBAAoB;IAXjC;QAYW,aAAQ,GAAG,QAAQ,CAAC;QACpB,SAAI,GAAG,gBAAgB,EAAgD,CAAC;KAClF;+GAHY,oBAAoB;mGAApB,oBAAoB,gFANrB;;;;GAIT,4DANS,eAAe;;4FAQd,oBAAoB;kBAXhC,SAAS;mBAAC;oBACT,QAAQ,EAAE,sBAAsB;oBAChC,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,eAAe,CAAC;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE;;;;GAIT;iBACF"}
|
|
@@ -1,24 +1,13 @@
|
|
|
1
|
-
import { Position } from '@angflow/system';
|
|
2
1
|
import * as i0 from "@angular/core";
|
|
3
2
|
/**
|
|
4
3
|
* Built-in container node used for sub-flows. No handles and no label —
|
|
5
4
|
* other nodes parent to it via `parentId` and optionally constrain movement
|
|
6
|
-
* with `extent: 'parent'`.
|
|
5
|
+
* with `extent: 'parent'`. Reads per-node state through `injectNgFlowNode()`
|
|
6
|
+
* (no `@Input()`s); the renderer applies width/height/transform on the host
|
|
7
|
+
* wrapper, so the group body itself just fills its box.
|
|
7
8
|
*/
|
|
8
9
|
export declare class GroupNodeComponent {
|
|
9
|
-
readonly
|
|
10
|
-
readonly data: import("@angular/core").InputSignal<any>;
|
|
11
|
-
readonly type: import("@angular/core").InputSignal<string | undefined>;
|
|
12
|
-
readonly selected: import("@angular/core").InputSignal<boolean>;
|
|
13
|
-
readonly dragging: import("@angular/core").InputSignal<boolean>;
|
|
14
|
-
readonly zIndex: import("@angular/core").InputSignal<number>;
|
|
15
|
-
readonly isConnectable: import("@angular/core").InputSignal<boolean>;
|
|
16
|
-
readonly positionAbsoluteX: import("@angular/core").InputSignal<number>;
|
|
17
|
-
readonly positionAbsoluteY: import("@angular/core").InputSignal<number>;
|
|
18
|
-
readonly sourcePosition: import("@angular/core").InputSignal<Position | undefined>;
|
|
19
|
-
readonly targetPosition: import("@angular/core").InputSignal<Position | undefined>;
|
|
20
|
-
readonly dragHandle: import("@angular/core").InputSignal<string | undefined>;
|
|
10
|
+
readonly node: import("../../types").NgFlowNodeContext<unknown>;
|
|
21
11
|
static ɵfac: i0.ɵɵFactoryDeclaration<GroupNodeComponent, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GroupNodeComponent, "ng-flow-group-node", never, {
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GroupNodeComponent, "ng-flow-group-node", never, {}, {}, never, never, true, never>;
|
|
23
13
|
}
|
|
24
|
-
//# sourceMappingURL=group-node.component.d.ts.map
|
|
@@ -1,27 +1,19 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy
|
|
1
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { injectNgFlowNode } from '../../utils/inject-ng-flow-node';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
/**
|
|
4
5
|
* Built-in container node used for sub-flows. No handles and no label —
|
|
5
6
|
* other nodes parent to it via `parentId` and optionally constrain movement
|
|
6
|
-
* with `extent: 'parent'`.
|
|
7
|
+
* with `extent: 'parent'`. Reads per-node state through `injectNgFlowNode()`
|
|
8
|
+
* (no `@Input()`s); the renderer applies width/height/transform on the host
|
|
9
|
+
* wrapper, so the group body itself just fills its box.
|
|
7
10
|
*/
|
|
8
11
|
export class GroupNodeComponent {
|
|
9
12
|
constructor() {
|
|
10
|
-
this.
|
|
11
|
-
this.data = input(...(ngDevMode ? [undefined, { debugName: "data" }] : /* istanbul ignore next */ []));
|
|
12
|
-
this.type = input(...(ngDevMode ? [undefined, { debugName: "type" }] : /* istanbul ignore next */ []));
|
|
13
|
-
this.selected = input(false, ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
14
|
-
this.dragging = input(false, ...(ngDevMode ? [{ debugName: "dragging" }] : /* istanbul ignore next */ []));
|
|
15
|
-
this.zIndex = input(0, ...(ngDevMode ? [{ debugName: "zIndex" }] : /* istanbul ignore next */ []));
|
|
16
|
-
this.isConnectable = input(true, ...(ngDevMode ? [{ debugName: "isConnectable" }] : /* istanbul ignore next */ []));
|
|
17
|
-
this.positionAbsoluteX = input(0, ...(ngDevMode ? [{ debugName: "positionAbsoluteX" }] : /* istanbul ignore next */ []));
|
|
18
|
-
this.positionAbsoluteY = input(0, ...(ngDevMode ? [{ debugName: "positionAbsoluteY" }] : /* istanbul ignore next */ []));
|
|
19
|
-
this.sourcePosition = input(...(ngDevMode ? [undefined, { debugName: "sourcePosition" }] : /* istanbul ignore next */ []));
|
|
20
|
-
this.targetPosition = input(...(ngDevMode ? [undefined, { debugName: "targetPosition" }] : /* istanbul ignore next */ []));
|
|
21
|
-
this.dragHandle = input(...(ngDevMode ? [undefined, { debugName: "dragHandle" }] : /* istanbul ignore next */ []));
|
|
13
|
+
this.node = injectNgFlowNode();
|
|
22
14
|
}
|
|
23
15
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: GroupNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.15", type: GroupNodeComponent, isStandalone: true, selector: "ng-flow-group-node", host: { styleAttribute: "width: 100%; height: 100%;" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
17
|
}
|
|
26
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: GroupNodeComponent, decorators: [{
|
|
27
19
|
type: Component,
|
|
@@ -34,5 +26,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
34
26
|
},
|
|
35
27
|
template: ``,
|
|
36
28
|
}]
|
|
37
|
-
}]
|
|
29
|
+
}] });
|
|
38
30
|
//# sourceMappingURL=group-node.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-node.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/nodes/group-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"group-node.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/nodes/group-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;;AAEnE;;;;;;GAMG;AAUH,MAAM,OAAO,kBAAkB;IAT/B;QAUW,SAAI,GAAG,gBAAgB,EAAE,CAAC;KACpC;+GAFY,kBAAkB;mGAAlB,kBAAkB,sIAFnB,EAAE;;4FAED,kBAAkB;kBAT9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;oBAC9B,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,IAAI,EAAE;wBACJ,OAAO,EAAE,4BAA4B;qBACtC;oBACD,QAAQ,EAAE,EAAE;iBACb"}
|
|
@@ -2,23 +2,14 @@ import { Position } from '@angflow/system';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/**
|
|
4
4
|
* Built-in node renderer with only a source handle on the bottom.
|
|
5
|
-
* Used when a node has `type: 'input'`.
|
|
5
|
+
* Used when a node has `type: 'input'`. Reads per-node state through
|
|
6
|
+
* `injectNgFlowNode()` (no `@Input()`s).
|
|
6
7
|
*/
|
|
7
8
|
export declare class InputNodeComponent {
|
|
8
9
|
readonly Position: typeof Position;
|
|
9
|
-
readonly
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
readonly selected: import("@angular/core").InputSignal<boolean>;
|
|
13
|
-
readonly dragging: import("@angular/core").InputSignal<boolean>;
|
|
14
|
-
readonly zIndex: import("@angular/core").InputSignal<number>;
|
|
15
|
-
readonly isConnectable: import("@angular/core").InputSignal<boolean>;
|
|
16
|
-
readonly positionAbsoluteX: import("@angular/core").InputSignal<number>;
|
|
17
|
-
readonly positionAbsoluteY: import("@angular/core").InputSignal<number>;
|
|
18
|
-
readonly sourcePosition: import("@angular/core").InputSignal<Position | undefined>;
|
|
19
|
-
readonly targetPosition: import("@angular/core").InputSignal<Position | undefined>;
|
|
20
|
-
readonly dragHandle: import("@angular/core").InputSignal<string | undefined>;
|
|
10
|
+
readonly node: import("../../types").NgFlowNodeContext<{
|
|
11
|
+
label?: string;
|
|
12
|
+
} & Record<string, unknown>>;
|
|
21
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputNodeComponent, never>;
|
|
22
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<InputNodeComponent, "ng-flow-input-node", never, {
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InputNodeComponent, "ng-flow-input-node", never, {}, {}, never, never, true, never>;
|
|
23
15
|
}
|
|
24
|
-
//# sourceMappingURL=input-node.component.d.ts.map
|
|
@@ -1,31 +1,22 @@
|
|
|
1
|
-
import { Component, ChangeDetectionStrategy
|
|
1
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
2
2
|
import { HandleComponent } from '../handle/handle.component';
|
|
3
3
|
import { Position } from '@angflow/system';
|
|
4
|
+
import { injectNgFlowNode } from '../../utils/inject-ng-flow-node';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
/**
|
|
6
7
|
* Built-in node renderer with only a source handle on the bottom.
|
|
7
|
-
* Used when a node has `type: 'input'`.
|
|
8
|
+
* Used when a node has `type: 'input'`. Reads per-node state through
|
|
9
|
+
* `injectNgFlowNode()` (no `@Input()`s).
|
|
8
10
|
*/
|
|
9
11
|
export class InputNodeComponent {
|
|
10
12
|
constructor() {
|
|
11
13
|
this.Position = Position;
|
|
12
|
-
this.
|
|
13
|
-
this.data = input(...(ngDevMode ? [undefined, { debugName: "data" }] : /* istanbul ignore next */ []));
|
|
14
|
-
this.type = input(...(ngDevMode ? [undefined, { debugName: "type" }] : /* istanbul ignore next */ []));
|
|
15
|
-
this.selected = input(false, ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
|
|
16
|
-
this.dragging = input(false, ...(ngDevMode ? [{ debugName: "dragging" }] : /* istanbul ignore next */ []));
|
|
17
|
-
this.zIndex = input(0, ...(ngDevMode ? [{ debugName: "zIndex" }] : /* istanbul ignore next */ []));
|
|
18
|
-
this.isConnectable = input(true, ...(ngDevMode ? [{ debugName: "isConnectable" }] : /* istanbul ignore next */ []));
|
|
19
|
-
this.positionAbsoluteX = input(0, ...(ngDevMode ? [{ debugName: "positionAbsoluteX" }] : /* istanbul ignore next */ []));
|
|
20
|
-
this.positionAbsoluteY = input(0, ...(ngDevMode ? [{ debugName: "positionAbsoluteY" }] : /* istanbul ignore next */ []));
|
|
21
|
-
this.sourcePosition = input(...(ngDevMode ? [undefined, { debugName: "sourcePosition" }] : /* istanbul ignore next */ []));
|
|
22
|
-
this.targetPosition = input(...(ngDevMode ? [undefined, { debugName: "targetPosition" }] : /* istanbul ignore next */ []));
|
|
23
|
-
this.dragHandle = input(...(ngDevMode ? [undefined, { debugName: "dragHandle" }] : /* istanbul ignore next */ []));
|
|
14
|
+
this.node = injectNgFlowNode();
|
|
24
15
|
}
|
|
25
16
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: InputNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
27
|
-
<div>{{ data()?.label }}</div>
|
|
28
|
-
<ng-flow-handle type="source" [position]="Position.Bottom" [isConnectable]="isConnectable()" />
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.15", type: InputNodeComponent, isStandalone: true, selector: "ng-flow-input-node", ngImport: i0, template: `
|
|
18
|
+
<div>{{ node.data()?.label }}</div>
|
|
19
|
+
<ng-flow-handle type="source" [position]="Position.Bottom" [isConnectable]="node.isConnectable()" />
|
|
29
20
|
`, isInline: true, dependencies: [{ kind: "component", type: HandleComponent, selector: "ng-flow-handle", inputs: ["type", "position", "id", "isConnectable", "isConnectableStart", "isConnectableEnd", "isValidConnection", "data", "floating"], outputs: ["onConnect"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30
21
|
}
|
|
31
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImport: i0, type: InputNodeComponent, decorators: [{
|
|
@@ -36,9 +27,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.15", ngImpo
|
|
|
36
27
|
imports: [HandleComponent],
|
|
37
28
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
38
29
|
template: `
|
|
39
|
-
<div>{{ data()?.label }}</div>
|
|
40
|
-
<ng-flow-handle type="source" [position]="Position.Bottom" [isConnectable]="isConnectable()" />
|
|
30
|
+
<div>{{ node.data()?.label }}</div>
|
|
31
|
+
<ng-flow-handle type="source" [position]="Position.Bottom" [isConnectable]="node.isConnectable()" />
|
|
41
32
|
`,
|
|
42
33
|
}]
|
|
43
|
-
}]
|
|
34
|
+
}] });
|
|
44
35
|
//# sourceMappingURL=input-node.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-node.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/nodes/input-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,
|
|
1
|
+
{"version":3,"file":"input-node.component.js","sourceRoot":"","sources":["../../../../../src/lib/components/nodes/input-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;;AAEnE;;;;GAIG;AAWH,MAAM,OAAO,kBAAkB;IAV/B;QAWW,aAAQ,GAAG,QAAQ,CAAC;QACpB,SAAI,GAAG,gBAAgB,EAAgD,CAAC;KAClF;+GAHY,kBAAkB;mGAAlB,kBAAkB,8EALnB;;;GAGT,4DALS,eAAe;;4FAOd,kBAAkB;kBAV9B,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;oBAC9B,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,eAAe,CAAC;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE;;;GAGT;iBACF"}
|