@angflow/angular 0.3.6 → 0.3.8
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/dist/base.css +23 -0
- package/dist/esm/lib/agent/agent-bridge.service.d.ts +20 -4
- package/dist/esm/lib/agent/agent-bridge.service.js +364 -34
- package/dist/esm/lib/agent/agent-bridge.service.js.map +1 -1
- package/dist/esm/lib/agent/index.d.ts +2 -1
- package/dist/esm/lib/agent/index.js.map +1 -1
- package/dist/esm/lib/agent/op-log.d.ts +35 -0
- package/dist/esm/lib/agent/op-log.js +41 -0
- package/dist/esm/lib/agent/op-log.js.map +1 -0
- package/dist/esm/lib/agent/provide-agent-bridge.d.ts +12 -1
- package/dist/esm/lib/agent/provide-agent-bridge.js +4 -1
- package/dist/esm/lib/agent/provide-agent-bridge.js.map +1 -1
- package/dist/esm/lib/agent/tool-schemas.js +133 -8
- package/dist/esm/lib/agent/tool-schemas.js.map +1 -1
- package/dist/esm/lib/agent/types.d.ts +10 -0
- package/dist/esm/lib/components/a11y-descriptions/a11y-descriptions.component.js +2 -2
- package/dist/esm/lib/components/controls/control-button.component.d.ts +20 -0
- package/dist/esm/lib/components/controls/control-button.component.js +35 -0
- package/dist/esm/lib/components/controls/control-button.component.js.map +1 -0
- package/dist/esm/lib/components/controls/controls.component.d.ts +6 -0
- package/dist/esm/lib/components/controls/controls.component.js +22 -16
- package/dist/esm/lib/components/controls/controls.component.js.map +1 -1
- package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js +5 -1
- package/dist/esm/lib/components/edge-toolbar/edge-toolbar.component.js.map +1 -1
- package/dist/esm/lib/components/edges/simple-bezier-edge.component.js +2 -2
- package/dist/esm/lib/components/edges/simple-bezier-edge.component.js.map +1 -1
- package/dist/esm/lib/components/handle/handle.component.d.ts +24 -3
- package/dist/esm/lib/components/handle/handle.component.js +64 -9
- package/dist/esm/lib/components/handle/handle.component.js.map +1 -1
- package/dist/esm/lib/components/minimap/minimap.component.d.ts +6 -0
- package/dist/esm/lib/components/minimap/minimap.component.js +32 -6
- package/dist/esm/lib/components/minimap/minimap.component.js.map +1 -1
- package/dist/esm/lib/components/node-resizer/node-resizer.component.d.ts +10 -0
- package/dist/esm/lib/components/node-resizer/node-resizer.component.js +70 -25
- package/dist/esm/lib/components/node-resizer/node-resizer.component.js.map +1 -1
- package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js +50 -14
- package/dist/esm/lib/components/node-toolbar/node-toolbar.component.js.map +1 -1
- package/dist/esm/lib/components/selection-box/selection-box.component.js +62 -50
- package/dist/esm/lib/components/selection-box/selection-box.component.js.map +1 -1
- package/dist/esm/lib/container/edge-renderer/edge-renderer.component.d.ts +13 -2
- package/dist/esm/lib/container/edge-renderer/edge-renderer.component.js +61 -16
- 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 +11 -3
- package/dist/esm/lib/container/ng-flow/ng-flow.component.js +77 -9
- package/dist/esm/lib/container/ng-flow/ng-flow.component.js.map +1 -1
- package/dist/esm/lib/container/node-renderer/node-renderer.component.js +14 -0
- package/dist/esm/lib/container/node-renderer/node-renderer.component.js.map +1 -1
- package/dist/esm/lib/container/pane/pane.component.d.ts +24 -9
- package/dist/esm/lib/container/pane/pane.component.js +128 -54
- package/dist/esm/lib/container/pane/pane.component.js.map +1 -1
- package/dist/esm/lib/directives/key-handler.directive.d.ts +7 -0
- package/dist/esm/lib/directives/key-handler.directive.js +18 -1
- package/dist/esm/lib/directives/key-handler.directive.js.map +1 -1
- package/dist/esm/lib/public-api.d.ts +6 -4
- package/dist/esm/lib/public-api.js +3 -1
- package/dist/esm/lib/public-api.js.map +1 -1
- package/dist/esm/lib/services/flow-history.service.d.ts +56 -0
- package/dist/esm/lib/services/flow-history.service.js +105 -0
- package/dist/esm/lib/services/flow-history.service.js.map +1 -0
- package/dist/esm/lib/services/flow-store.service.d.ts +32 -18
- package/dist/esm/lib/services/flow-store.service.js +67 -21
- package/dist/esm/lib/services/flow-store.service.js.map +1 -1
- package/dist/esm/lib/services/ng-flow.service.d.ts +62 -25
- package/dist/esm/lib/services/ng-flow.service.js +176 -19
- package/dist/esm/lib/services/ng-flow.service.js.map +1 -1
- package/dist/style.css +23 -0
- package/package.json +1 -1
package/dist/base.css
CHANGED
|
@@ -830,6 +830,9 @@ svg.xy-flow__connectionline {
|
|
|
830
830
|
.xy-flow__pane {
|
|
831
831
|
z-index: 1;
|
|
832
832
|
cursor: default;
|
|
833
|
+
/* Stop the browser from claiming a touch that starts on the pane as a
|
|
834
|
+
scroll/pan gesture, so pan/pinch/marquee-drag start reliably on touch. */
|
|
835
|
+
touch-action: none;
|
|
833
836
|
}
|
|
834
837
|
|
|
835
838
|
.xy-flow__pane.selection { cursor: pointer; }
|
|
@@ -934,6 +937,8 @@ svg.xy-flow__connectionline {
|
|
|
934
937
|
transform-origin: 0 0;
|
|
935
938
|
box-sizing: border-box;
|
|
936
939
|
cursor: default;
|
|
940
|
+
/* Allow touch-drag of the node without the browser hijacking it for scroll. */
|
|
941
|
+
touch-action: none;
|
|
937
942
|
}
|
|
938
943
|
|
|
939
944
|
.xy-flow__node.selectable { cursor: pointer; }
|
|
@@ -1011,9 +1016,14 @@ svg.xy-flow__connectionline {
|
|
|
1011
1016
|
position: absolute;
|
|
1012
1017
|
pointer-events: all;
|
|
1013
1018
|
cursor: grab;
|
|
1019
|
+
touch-action: none;
|
|
1014
1020
|
}
|
|
1015
1021
|
|
|
1016
1022
|
|
|
1023
|
+
/* Resize controls must capture the touch-drag rather than let it scroll. */
|
|
1024
|
+
.xy-flow__resize-control { touch-action: none; }
|
|
1025
|
+
|
|
1026
|
+
|
|
1017
1027
|
/* ── Handles ────────────────────────────────────────────────────── */
|
|
1018
1028
|
.xy-flow__handle {
|
|
1019
1029
|
position: absolute;
|
|
@@ -1126,6 +1136,8 @@ svg.xy-flow__connectionline {
|
|
|
1126
1136
|
/* ── Minimap ────────────────────────────────────────────────────── */
|
|
1127
1137
|
.xy-flow__minimap {
|
|
1128
1138
|
background: var(--xy-minimap-background-color, var(--xy-minimap-background-color-default));
|
|
1139
|
+
/* Let touch pan/zoom the minimap instead of scrolling the page. */
|
|
1140
|
+
touch-action: none;
|
|
1129
1141
|
}
|
|
1130
1142
|
|
|
1131
1143
|
.xy-flow__minimap-svg { display: block; }
|
|
@@ -1187,6 +1199,17 @@ svg.xy-flow__connectionline {
|
|
|
1187
1199
|
left: 0;
|
|
1188
1200
|
top: 0;
|
|
1189
1201
|
user-select: none;
|
|
1202
|
+
/* Paint above the pane (z-index:1) and node/edge renderer (z-index:4) so
|
|
1203
|
+
projected overlays are visible and hit-testable. The host itself must not
|
|
1204
|
+
capture pointer events (it covers the whole canvas) — projected content
|
|
1205
|
+
opts back in with `pointer-events: all`, matching the edge-label renderer. */
|
|
1206
|
+
z-index: 5;
|
|
1207
|
+
transform-origin: 0 0;
|
|
1208
|
+
pointer-events: none;
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
.xy-flow__viewport-portal > * {
|
|
1212
|
+
pointer-events: all;
|
|
1190
1213
|
}
|
|
1191
1214
|
|
|
1192
1215
|
|
|
@@ -2,7 +2,8 @@ import { InjectionToken } from '@angular/core';
|
|
|
2
2
|
import type { NgFlowService } from '../services/ng-flow.service';
|
|
3
3
|
import type { AgentLayoutFn } from '../types/node-template';
|
|
4
4
|
import type { AgentHistoryOptions } from './history';
|
|
5
|
-
import type {
|
|
5
|
+
import type { OpLogEntry, OpLogOptions } from './op-log';
|
|
6
|
+
import type { AgentTransport, AgentCanMutateFn } from './types';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
/** Provider token holding the user-supplied transport(s). */
|
|
8
9
|
export declare const AGENT_TRANSPORTS: InjectionToken<AgentTransport[]>;
|
|
@@ -16,6 +17,12 @@ export declare const AGENT_ON_ERROR: InjectionToken<(err: unknown, ctx: {
|
|
|
16
17
|
}) => void>;
|
|
17
18
|
/** Optional host-provided layout function backing the `layout_nodes` tool. */
|
|
18
19
|
export declare const AGENT_LAYOUT: InjectionToken<AgentLayoutFn>;
|
|
20
|
+
/** Optional host write-guard for mutating tools. */
|
|
21
|
+
export declare const AGENT_CAN_MUTATE: InjectionToken<AgentCanMutateFn>;
|
|
22
|
+
/** Optional sink receiving each applied mutating op (for host persistence/replay). */
|
|
23
|
+
export declare const AGENT_ON_OP: InjectionToken<(entry: OpLogEntry) => void>;
|
|
24
|
+
/** Op-log config. `false` disables the op-log + get_changes_since. Default { maxOps: 1000 }. */
|
|
25
|
+
export declare const AGENT_OPLOG_OPTIONS: InjectionToken<false | OpLogOptions>;
|
|
19
26
|
/**
|
|
20
27
|
* Routes JSON-RPC requests from one or more transports to registered
|
|
21
28
|
* `NgFlowService` instances, and pushes change events back to the agent.
|
|
@@ -46,12 +53,16 @@ export declare class AngflowAgentBridge {
|
|
|
46
53
|
private readonly flows;
|
|
47
54
|
private readonly transports;
|
|
48
55
|
private readonly history;
|
|
56
|
+
private readonly opLog;
|
|
57
|
+
private readonly onOp;
|
|
49
58
|
private readonly handlers;
|
|
50
59
|
private readonly injector;
|
|
51
60
|
private readonly destroyRef;
|
|
52
61
|
private readonly layoutFn;
|
|
62
|
+
private readonly canMutate;
|
|
53
63
|
private started;
|
|
54
64
|
private nextInProcessId;
|
|
65
|
+
private nextNodeIdSeq;
|
|
55
66
|
private warnedOnBeforeDeleteBypass;
|
|
56
67
|
/** Bumped every time a flow registers/unregisters. Useful for diagnostics. */
|
|
57
68
|
readonly registeredFlows: import("@angular/core").WritableSignal<string[]>;
|
|
@@ -60,7 +71,7 @@ export declare class AngflowAgentBridge {
|
|
|
60
71
|
kind: 'transport-start' | 'transport-send' | 'dispatch';
|
|
61
72
|
transport?: AgentTransport;
|
|
62
73
|
method?: string;
|
|
63
|
-
}) => void) | null, layoutFn: AgentLayoutFn | null);
|
|
74
|
+
}) => void) | null, layoutFn: AgentLayoutFn | null, canMutate: AgentCanMutateFn | null, onOp: ((entry: OpLogEntry) => void) | null, opLogOptions: OpLogOptions | false | null);
|
|
64
75
|
private reportError;
|
|
65
76
|
/**
|
|
66
77
|
* Register a flow under `id`. The bridge subscribes to its `nodes`,
|
|
@@ -75,23 +86,28 @@ export declare class AngflowAgentBridge {
|
|
|
75
86
|
unregister(id: string): void;
|
|
76
87
|
/** Look up a registered flow. */
|
|
77
88
|
getFlow(id: string): NgFlowService | undefined;
|
|
89
|
+
/** Mint a unique node/group id for a flow (collision-safe vs agent-supplied ids). */
|
|
90
|
+
private mintId;
|
|
78
91
|
/**
|
|
79
92
|
* Invoke a tool directly without going through a transport. Behaves
|
|
80
93
|
* identically to a JSON-RPC request: captures a history snapshot, emits
|
|
81
94
|
* `flow.history` / `flow.state` events, and throws a structured error
|
|
82
95
|
* (with `code` and `data` attached) on failure.
|
|
83
96
|
*/
|
|
84
|
-
callTool(method: string, params?: Record<string, unknown
|
|
97
|
+
callTool(method: string, params?: Record<string, unknown>, opts?: {
|
|
98
|
+
source?: string;
|
|
99
|
+
}): Promise<unknown>;
|
|
85
100
|
private start;
|
|
86
101
|
/** Stop all transports. Invoked automatically when the owning injector is destroyed. */
|
|
87
102
|
private stop;
|
|
88
103
|
private dispatch;
|
|
89
104
|
private findFlowId;
|
|
90
105
|
private emitHistory;
|
|
106
|
+
private recordOp;
|
|
91
107
|
private emit;
|
|
92
108
|
private resolveFlow;
|
|
93
109
|
private watchFlow;
|
|
94
110
|
private installHandlers;
|
|
95
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AngflowAgentBridge, [{ optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
111
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AngflowAgentBridge, [{ optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
|
|
96
112
|
static ɵprov: i0.ɵɵInjectableDeclaration<AngflowAgentBridge>;
|
|
97
113
|
}
|