@memberjunction/ng-core-entity-forms 2.86.0 → 2.88.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.
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js +7 -7
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-agent-form-section.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/condition-editor/condition-editor.component.d.ts +29 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/condition-editor/condition-editor.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/condition-editor/condition-editor.component.js +198 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/condition-editor/condition-editor.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/confirmation-dialog/confirmation-dialog.component.d.ts +14 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/confirmation-dialog/confirmation-dialog.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/confirmation-dialog/confirmation-dialog.component.js +98 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/confirmation-dialog/confirmation-dialog.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/custom-node/custom-node.component.d.ts +44 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/custom-node/custom-node.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/custom-node/custom-node.component.js +282 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/custom-node/custom-node.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/execution-panel/execution-panel.component.d.ts +35 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/execution-panel/execution-panel.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/execution-panel/execution-panel.component.js +287 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/execution-panel/execution-panel.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/flow-editor/flow-editor.component.d.ts +106 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/flow-editor/flow-editor.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/flow-editor/flow-editor.component.js +951 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/flow-editor/flow-editor.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/prompt-editor/prompt-editor.component.d.ts +30 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/prompt-editor/prompt-editor.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/prompt-editor/prompt-editor.component.js +450 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/prompt-editor/prompt-editor.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/properties-panel/properties-panel.component.d.ts +25 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/properties-panel/properties-panel.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/properties-panel/properties-panel.component.js +423 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/properties-panel/properties-panel.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/simple-condition-editor/simple-condition-editor.component.d.ts +21 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/simple-condition-editor/simple-condition-editor.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/simple-condition-editor/simple-condition-editor.component.js +182 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/simple-condition-editor/simple-condition-editor.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/step/step.component.d.ts +34 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/step/step.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/step/step.component.js +171 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/step/step.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/toolbar/toolbar.component.d.ts +17 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/toolbar/toolbar.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/toolbar/toolbar.component.js +78 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/components/toolbar/toolbar.component.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/connection.model.d.ts +17 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/connection.model.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/connection.model.js +11 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/connection.model.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/mj-extended.model.d.ts +21 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/mj-extended.model.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/mj-extended.model.js +2 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/mj-extended.model.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/module.model.d.ts +33 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/module.model.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/module.model.js +2 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/module.model.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/step.model.d.ts +44 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/step.model.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/step.model.js +166 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/models/step.model.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-editor.service.d.ts +14 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-editor.service.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-editor.service.js +31 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-editor.service.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-executor.service.d.ts +63 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-executor.service.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-executor.service.js +294 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/flow-executor.service.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/mj-flow-transformer.service.d.ts +77 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/mj-flow-transformer.service.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/mj-flow-transformer.service.js +408 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/mj-flow-transformer.service.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/module-manager.service.d.ts +19 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/module-manager.service.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/module-manager.service.js +116 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/module-manager.service.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/prompt-manager.service.d.ts +25 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/prompt-manager.service.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/prompt-manager.service.js +90 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/flow-editor-integration/services/prompt-manager.service.js.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.d.ts +52 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.d.ts.map +1 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.js +500 -0
- package/dist/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.js.map +1 -0
- package/dist/lib/custom/custom-forms.module.d.ts +2 -1
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +10 -4
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/generated/Entities/Component/sections/details.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/Component/sections/details.component.js +40 -4
- package/dist/lib/generated/Entities/Component/sections/details.component.js.map +1 -1
- package/package.json +16 -16
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { Subject, takeUntil, debounceTime } from 'rxjs';
|
|
5
|
+
import { Metadata } from '@memberjunction/core';
|
|
6
|
+
// Import standalone flow editor components
|
|
7
|
+
import { FlowEditorComponent } from './flow-editor-integration/components/flow-editor/flow-editor.component';
|
|
8
|
+
import { PropertiesPanelComponent } from './flow-editor-integration/components/properties-panel/properties-panel.component';
|
|
9
|
+
import { ExecutionPanelComponent } from './flow-editor-integration/components/execution-panel/execution-panel.component';
|
|
10
|
+
import { ToolbarComponent } from './flow-editor-integration/components/toolbar/toolbar.component';
|
|
11
|
+
// Import services
|
|
12
|
+
import { FlowEditorService } from './flow-editor-integration/services/flow-editor.service';
|
|
13
|
+
import { FlowExecutorService } from './flow-editor-integration/services/flow-executor.service';
|
|
14
|
+
import { MJFlowTransformerService } from './flow-editor-integration/services/mj-flow-transformer.service';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "./flow-editor-integration/services/flow-editor.service";
|
|
17
|
+
import * as i2 from "./flow-editor-integration/services/flow-executor.service";
|
|
18
|
+
import * as i3 from "./flow-editor-integration/services/mj-flow-transformer.service";
|
|
19
|
+
import * as i4 from "@angular/common";
|
|
20
|
+
const _c0 = ["flowEditor"];
|
|
21
|
+
function MJIntegratedFlowEditorComponent_span_3_Template(rf, ctx) { if (rf & 1) {
|
|
22
|
+
i0.ɵɵelementStart(0, "span", 20);
|
|
23
|
+
i0.ɵɵtext(1);
|
|
24
|
+
i0.ɵɵelementEnd();
|
|
25
|
+
} if (rf & 2) {
|
|
26
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
27
|
+
i0.ɵɵadvance();
|
|
28
|
+
i0.ɵɵtextInterpolate1("Agent ID: ", ctx_r1.agentId, "");
|
|
29
|
+
} }
|
|
30
|
+
function MJIntegratedFlowEditorComponent_button_5_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
32
|
+
i0.ɵɵelementStart(0, "button", 21);
|
|
33
|
+
i0.ɵɵlistener("click", function MJIntegratedFlowEditorComponent_button_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.saveAllChanges()); });
|
|
34
|
+
i0.ɵɵelement(1, "i", 22);
|
|
35
|
+
i0.ɵɵtext(2);
|
|
36
|
+
i0.ɵɵelementEnd();
|
|
37
|
+
} if (rf & 2) {
|
|
38
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
39
|
+
i0.ɵɵproperty("disabled", ctx_r1.saving);
|
|
40
|
+
i0.ɵɵadvance();
|
|
41
|
+
i0.ɵɵclassProp("fa-save", !ctx_r1.saving)("fa-spinner", ctx_r1.saving)("fa-spin", ctx_r1.saving);
|
|
42
|
+
i0.ɵɵadvance();
|
|
43
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r1.saving ? "Saving..." : "Save All Changes", " ");
|
|
44
|
+
} }
|
|
45
|
+
function MJIntegratedFlowEditorComponent_div_7_Template(rf, ctx) { if (rf & 1) {
|
|
46
|
+
const _r4 = i0.ɵɵgetCurrentView();
|
|
47
|
+
i0.ɵɵelementStart(0, "div", 23)(1, "app-toolbar", 24);
|
|
48
|
+
i0.ɵɵlistener("stepDragStart", function MJIntegratedFlowEditorComponent_div_7_Template_app_toolbar_stepDragStart_1_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onStepDragStart($event)); })("stepDragEnd", function MJIntegratedFlowEditorComponent_div_7_Template_app_toolbar_stepDragEnd_1_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onStepDragEnd()); });
|
|
49
|
+
i0.ɵɵelementEnd()();
|
|
50
|
+
} }
|
|
51
|
+
function MJIntegratedFlowEditorComponent_app_properties_panel_12_Template(rf, ctx) { if (rf & 1) {
|
|
52
|
+
i0.ɵɵelement(0, "app-properties-panel");
|
|
53
|
+
} }
|
|
54
|
+
function MJIntegratedFlowEditorComponent_div_13_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
+
i0.ɵɵelementStart(0, "div", 25);
|
|
56
|
+
i0.ɵɵelement(1, "app-execution-panel");
|
|
57
|
+
i0.ɵɵelementEnd();
|
|
58
|
+
} }
|
|
59
|
+
function MJIntegratedFlowEditorComponent_span_21_Template(rf, ctx) { if (rf & 1) {
|
|
60
|
+
i0.ɵɵelementStart(0, "span", 15);
|
|
61
|
+
i0.ɵɵelement(1, "i", 26);
|
|
62
|
+
i0.ɵɵtext(2);
|
|
63
|
+
i0.ɵɵpipe(3, "date");
|
|
64
|
+
i0.ɵɵelementEnd();
|
|
65
|
+
} if (rf & 2) {
|
|
66
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
67
|
+
i0.ɵɵadvance(2);
|
|
68
|
+
i0.ɵɵtextInterpolate1(" Last saved: ", i0.ɵɵpipeBind2(3, 1, ctx_r1.lastSaved, "short"), " ");
|
|
69
|
+
} }
|
|
70
|
+
function MJIntegratedFlowEditorComponent_span_22_Template(rf, ctx) { if (rf & 1) {
|
|
71
|
+
i0.ɵɵelementStart(0, "span", 27);
|
|
72
|
+
i0.ɵɵelement(1, "i", 28);
|
|
73
|
+
i0.ɵɵtext(2, " Unsaved changes ");
|
|
74
|
+
i0.ɵɵelementEnd();
|
|
75
|
+
} }
|
|
76
|
+
export class MJIntegratedFlowEditorComponent {
|
|
77
|
+
constructor(flowEditorService, flowExecutorService, transformerService, cdr) {
|
|
78
|
+
this.flowEditorService = flowEditorService;
|
|
79
|
+
this.flowExecutorService = flowExecutorService;
|
|
80
|
+
this.transformerService = transformerService;
|
|
81
|
+
this.cdr = cdr;
|
|
82
|
+
this.agentId = null;
|
|
83
|
+
this.steps = [];
|
|
84
|
+
this.paths = [];
|
|
85
|
+
this.EditMode = false;
|
|
86
|
+
this.stepsChanged = new EventEmitter();
|
|
87
|
+
this.pathsChanged = new EventEmitter();
|
|
88
|
+
// UI state
|
|
89
|
+
this.showExecutionPanel = false;
|
|
90
|
+
this.selectedStep = null;
|
|
91
|
+
this.stepCount = 0;
|
|
92
|
+
this.connectionCount = 0;
|
|
93
|
+
this.lastSaved = null;
|
|
94
|
+
this.hasUnsavedChanges = false;
|
|
95
|
+
this.saving = false;
|
|
96
|
+
this.destroy$ = new Subject();
|
|
97
|
+
this.changeDebounce$ = new Subject();
|
|
98
|
+
}
|
|
99
|
+
ngOnChanges(changes) {
|
|
100
|
+
// When input data changes, reload the flow
|
|
101
|
+
if ((changes['steps'] || changes['paths']) && this.flowEditorComponent) {
|
|
102
|
+
this.loadFlowData();
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
ngOnInit() {
|
|
106
|
+
// Subscribe to flow editor changes
|
|
107
|
+
if (this.flowEditorService && this.flowEditorService.selectedNode) {
|
|
108
|
+
this.flowEditorService.selectedNode
|
|
109
|
+
.pipe(takeUntil(this.destroy$))
|
|
110
|
+
.subscribe((node) => {
|
|
111
|
+
this.selectedStep = node;
|
|
112
|
+
this.cdr.detectChanges();
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
// Track changes for auto-save indication
|
|
116
|
+
this.changeDebounce$
|
|
117
|
+
.pipe(debounceTime(1000), takeUntil(this.destroy$))
|
|
118
|
+
.subscribe(() => {
|
|
119
|
+
this.hasUnsavedChanges = true;
|
|
120
|
+
this.cdr.detectChanges();
|
|
121
|
+
});
|
|
122
|
+
// Subscribe to flow changes
|
|
123
|
+
this.subscribeToFlowChanges();
|
|
124
|
+
}
|
|
125
|
+
ngAfterViewInit() {
|
|
126
|
+
// Load flow data after view is initialized
|
|
127
|
+
// This ensures the flow editor component is ready
|
|
128
|
+
this.loadFlowData();
|
|
129
|
+
}
|
|
130
|
+
ngOnDestroy() {
|
|
131
|
+
this.destroy$.next();
|
|
132
|
+
this.destroy$.complete();
|
|
133
|
+
}
|
|
134
|
+
loadFlowData() {
|
|
135
|
+
// Transform MJ entities to standalone models
|
|
136
|
+
const { steps: transformedSteps, connections } = this.transformerService.transformToStandaloneModels(this.steps, this.paths);
|
|
137
|
+
// Load saved positions from LocalStorage if available
|
|
138
|
+
if (this.agentId) {
|
|
139
|
+
const savedPositions = this.loadPositionsFromLocalStorage();
|
|
140
|
+
if (savedPositions) {
|
|
141
|
+
transformedSteps.forEach(step => {
|
|
142
|
+
const savedPos = savedPositions[step.id];
|
|
143
|
+
if (savedPos) {
|
|
144
|
+
step.position = [savedPos.x, savedPos.y];
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Load transformed data into the flow editor
|
|
150
|
+
// Load into flow editor service
|
|
151
|
+
this.flowEditorService.setAllSteps(transformedSteps);
|
|
152
|
+
// Store connections in a property for now
|
|
153
|
+
this.flowEditorService.connections = connections;
|
|
154
|
+
// Update counts
|
|
155
|
+
this.stepCount = transformedSteps.length;
|
|
156
|
+
this.connectionCount = connections.length;
|
|
157
|
+
// Initialize the flow editor component if it exists
|
|
158
|
+
// We need to wait for the component to be ready
|
|
159
|
+
setTimeout(() => {
|
|
160
|
+
if (this.flowEditorComponent) {
|
|
161
|
+
this.flowEditorComponent.steps = transformedSteps;
|
|
162
|
+
this.flowEditorComponent.connections = connections;
|
|
163
|
+
// Trigger the flow editor to render the data
|
|
164
|
+
this.flowEditorComponent.loadFlowData();
|
|
165
|
+
}
|
|
166
|
+
}, 100);
|
|
167
|
+
}
|
|
168
|
+
subscribeToFlowChanges() {
|
|
169
|
+
// For now, we'll track changes through the component itself
|
|
170
|
+
// since the service doesn't have observables for these
|
|
171
|
+
this.stepCount = this.steps.length;
|
|
172
|
+
this.connectionCount = this.paths.length;
|
|
173
|
+
}
|
|
174
|
+
async saveAllChanges() {
|
|
175
|
+
if (!this.EditMode || this.saving)
|
|
176
|
+
return;
|
|
177
|
+
this.saving = true;
|
|
178
|
+
try {
|
|
179
|
+
// Get current state from flow editor
|
|
180
|
+
const currentSteps = this.flowEditorService.getAllSteps();
|
|
181
|
+
const currentConnections = (this.flowEditorService.connections || []);
|
|
182
|
+
// Transform back to MJ entities
|
|
183
|
+
const { stepsToUpdate, pathsToUpdate, stepsToCreate, pathsToCreate } = this.transformerService.transformToMJEntities(currentSteps, currentConnections, this.steps, this.paths);
|
|
184
|
+
// Save all updates
|
|
185
|
+
const md = new Metadata();
|
|
186
|
+
// Update existing steps
|
|
187
|
+
for (const step of stepsToUpdate) {
|
|
188
|
+
await step.Save();
|
|
189
|
+
}
|
|
190
|
+
// Create new steps
|
|
191
|
+
for (const stepData of stepsToCreate) {
|
|
192
|
+
const newStep = await md.GetEntityObject('MJ: AI Agent Steps');
|
|
193
|
+
Object.assign(newStep, stepData);
|
|
194
|
+
newStep.AgentID = this.agentId;
|
|
195
|
+
await newStep.Save();
|
|
196
|
+
// Add to our steps array and update the standalone model
|
|
197
|
+
this.steps.push(newStep);
|
|
198
|
+
// Update the mjEntityId in the standalone model
|
|
199
|
+
const standaloneStep = currentSteps.find((s) => s.name === stepData.Name);
|
|
200
|
+
if (standaloneStep) {
|
|
201
|
+
standaloneStep.mjEntityId = newStep.ID;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
// Update existing paths
|
|
205
|
+
for (const path of pathsToUpdate) {
|
|
206
|
+
await path.Save();
|
|
207
|
+
}
|
|
208
|
+
// Create new paths
|
|
209
|
+
for (const pathData of pathsToCreate) {
|
|
210
|
+
const newPath = await md.GetEntityObject('MJ: AI Agent Step Paths');
|
|
211
|
+
Object.assign(newPath, pathData);
|
|
212
|
+
await newPath.Save();
|
|
213
|
+
// Add to our paths array
|
|
214
|
+
this.paths.push(newPath);
|
|
215
|
+
// Update the mjEntityId in the standalone model
|
|
216
|
+
// Note: We need to find by comparing the original step IDs, not the numeric IDs
|
|
217
|
+
const standaloneConnection = currentConnections.find((c) => {
|
|
218
|
+
// Find source and target steps by their MJ entity IDs
|
|
219
|
+
const sourceStep = currentSteps.find(s => s.mjEntityId === pathData.OriginStepID);
|
|
220
|
+
const targetStep = currentSteps.find(s => s.mjEntityId === pathData.DestinationStepID);
|
|
221
|
+
return sourceStep && targetStep && c.source === sourceStep.id && c.target === targetStep.id;
|
|
222
|
+
});
|
|
223
|
+
if (standaloneConnection) {
|
|
224
|
+
standaloneConnection.mjEntityId = newPath.ID;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// Handle deletions (steps/paths that exist in MJ but not in current editor state)
|
|
228
|
+
await this.handleDeletions(currentSteps, currentConnections);
|
|
229
|
+
// Update state
|
|
230
|
+
this.lastSaved = new Date();
|
|
231
|
+
this.hasUnsavedChanges = false;
|
|
232
|
+
// Emit change events
|
|
233
|
+
this.stepsChanged.emit();
|
|
234
|
+
this.pathsChanged.emit();
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
console.error('Failed to save changes:', error);
|
|
238
|
+
alert('Failed to save changes. Please check the console for details.');
|
|
239
|
+
}
|
|
240
|
+
finally {
|
|
241
|
+
this.saving = false;
|
|
242
|
+
this.cdr.detectChanges();
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
async handleDeletions(currentSteps, currentConnections) {
|
|
246
|
+
// Find steps that exist in MJ but not in current state
|
|
247
|
+
const currentStepIds = new Set(currentSteps.map(s => s.mjEntityId).filter(id => id));
|
|
248
|
+
const stepsToDelete = this.steps.filter(mjStep => !currentStepIds.has(mjStep.ID));
|
|
249
|
+
// Find paths that exist in MJ but not in current state
|
|
250
|
+
const currentPathIds = new Set(currentConnections.map(c => c.mjEntityId).filter(id => id));
|
|
251
|
+
const pathsToDelete = this.paths.filter(mjPath => !currentPathIds.has(mjPath.ID));
|
|
252
|
+
// Delete removed paths first (due to foreign key constraints)
|
|
253
|
+
for (const path of pathsToDelete) {
|
|
254
|
+
await path.Delete();
|
|
255
|
+
const index = this.paths.indexOf(path);
|
|
256
|
+
if (index > -1) {
|
|
257
|
+
this.paths.splice(index, 1);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// Delete removed steps
|
|
261
|
+
for (const step of stepsToDelete) {
|
|
262
|
+
await step.Delete();
|
|
263
|
+
const index = this.steps.indexOf(step);
|
|
264
|
+
if (index > -1) {
|
|
265
|
+
this.steps.splice(index, 1);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
toggleExecutionPanel() {
|
|
270
|
+
this.showExecutionPanel = !this.showExecutionPanel;
|
|
271
|
+
this.cdr.detectChanges();
|
|
272
|
+
}
|
|
273
|
+
onStepDragStart(event) {
|
|
274
|
+
// Handle drag start from toolbar
|
|
275
|
+
}
|
|
276
|
+
onStepDragEnd() {
|
|
277
|
+
// Handle drag end
|
|
278
|
+
// Save positions when step dragging ends
|
|
279
|
+
this.savePositionsToLocalStorage();
|
|
280
|
+
}
|
|
281
|
+
onStepMoved(step) {
|
|
282
|
+
// Save positions to LocalStorage when a step is moved
|
|
283
|
+
this.savePositionsToLocalStorage();
|
|
284
|
+
}
|
|
285
|
+
onStepUpdated(updatedStep) {
|
|
286
|
+
// Handle step updates from properties panel
|
|
287
|
+
// Find and update the step in our local array
|
|
288
|
+
const index = this.flowEditorService.getAllSteps().findIndex((s) => s.id === updatedStep.id);
|
|
289
|
+
if (index !== -1) {
|
|
290
|
+
const steps = this.flowEditorService.getAllSteps();
|
|
291
|
+
steps[index] = updatedStep;
|
|
292
|
+
this.flowEditorService.setAllSteps(steps);
|
|
293
|
+
// Mark as having unsaved changes
|
|
294
|
+
this.hasUnsavedChanges = true;
|
|
295
|
+
this.changeDebounce$.next();
|
|
296
|
+
this.cdr.detectChanges();
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
// Public methods for parent component interaction
|
|
300
|
+
refreshFlow() {
|
|
301
|
+
this.loadFlowData();
|
|
302
|
+
}
|
|
303
|
+
async executeFlow() {
|
|
304
|
+
if (!this.showExecutionPanel) {
|
|
305
|
+
this.showExecutionPanel = true;
|
|
306
|
+
}
|
|
307
|
+
// Execute using the flow executor service
|
|
308
|
+
const steps = this.flowEditorService.getAllSteps();
|
|
309
|
+
const connections = (this.flowEditorService.connections || []);
|
|
310
|
+
await this.flowExecutorService.executeFlow(steps, connections);
|
|
311
|
+
}
|
|
312
|
+
loadPositionsFromLocalStorage() {
|
|
313
|
+
if (!this.agentId)
|
|
314
|
+
return null;
|
|
315
|
+
const storageKey = `flow-positions-${this.agentId}`;
|
|
316
|
+
const savedData = localStorage.getItem(storageKey);
|
|
317
|
+
if (savedData) {
|
|
318
|
+
try {
|
|
319
|
+
const parsed = JSON.parse(savedData);
|
|
320
|
+
return parsed.steps || null;
|
|
321
|
+
}
|
|
322
|
+
catch (e) {
|
|
323
|
+
console.error('Failed to parse saved positions:', e);
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
return null;
|
|
328
|
+
}
|
|
329
|
+
savePositionsToLocalStorage() {
|
|
330
|
+
if (!this.agentId || !this.flowEditorComponent)
|
|
331
|
+
return;
|
|
332
|
+
const positions = {};
|
|
333
|
+
this.flowEditorComponent.steps.forEach(step => {
|
|
334
|
+
positions[step.id] = {
|
|
335
|
+
x: step.position[0],
|
|
336
|
+
y: step.position[1]
|
|
337
|
+
};
|
|
338
|
+
});
|
|
339
|
+
const storageKey = `flow-positions-${this.agentId}`;
|
|
340
|
+
const dataToSave = {
|
|
341
|
+
steps: positions,
|
|
342
|
+
timestamp: new Date().toISOString()
|
|
343
|
+
};
|
|
344
|
+
localStorage.setItem(storageKey, JSON.stringify(dataToSave));
|
|
345
|
+
}
|
|
346
|
+
static { this.ɵfac = function MJIntegratedFlowEditorComponent_Factory(t) { return new (t || MJIntegratedFlowEditorComponent)(i0.ɵɵdirectiveInject(i1.FlowEditorService), i0.ɵɵdirectiveInject(i2.FlowExecutorService), i0.ɵɵdirectiveInject(i3.MJFlowTransformerService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
|
|
347
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MJIntegratedFlowEditorComponent, selectors: [["mj-integrated-flow-editor"]], viewQuery: function MJIntegratedFlowEditorComponent_Query(rf, ctx) { if (rf & 1) {
|
|
348
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
349
|
+
} if (rf & 2) {
|
|
350
|
+
let _t;
|
|
351
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.flowEditorComponent = _t.first);
|
|
352
|
+
} }, inputs: { agentId: "agentId", steps: "steps", paths: "paths", EditMode: "EditMode" }, outputs: { stepsChanged: "stepsChanged", pathsChanged: "pathsChanged" }, standalone: true, features: [i0.ɵɵProvidersFeature([FlowEditorService, FlowExecutorService, MJFlowTransformerService]), i0.ɵɵNgOnChangesFeature, i0.ɵɵStandaloneFeature], decls: 23, vars: 15, consts: [["flowEditor", ""], [1, "mj-integrated-flow-editor"], [1, "editor-header"], [1, "header-left"], ["class", "agent-id", 4, "ngIf"], [1, "header-right"], ["class", "btn-save", 3, "disabled", "click", 4, "ngIf"], [1, "editor-container"], ["class", "toolbar-container", 4, "ngIf"], [1, "canvas-container"], [3, "toggleExecution", "stepMoved"], [1, "properties-container"], [4, "ngIf"], ["class", "execution-container", 4, "ngIf"], [1, "status-bar"], [1, "status-item"], [1, "fa-solid", "fa-circle-nodes"], [1, "fa-solid", "fa-link"], ["class", "status-item", 4, "ngIf"], ["class", "status-item unsaved", 4, "ngIf"], [1, "agent-id"], [1, "btn-save", 3, "click", "disabled"], [1, "fa-solid"], [1, "toolbar-container"], [3, "stepDragStart", "stepDragEnd"], [1, "execution-container"], [1, "fa-solid", "fa-clock"], [1, "status-item", "unsaved"], [1, "fa-solid", "fa-exclamation-triangle"]], template: function MJIntegratedFlowEditorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
353
|
+
const _r1 = i0.ɵɵgetCurrentView();
|
|
354
|
+
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "div", 3);
|
|
355
|
+
i0.ɵɵtemplate(3, MJIntegratedFlowEditorComponent_span_3_Template, 2, 1, "span", 4);
|
|
356
|
+
i0.ɵɵelementEnd();
|
|
357
|
+
i0.ɵɵelementStart(4, "div", 5);
|
|
358
|
+
i0.ɵɵtemplate(5, MJIntegratedFlowEditorComponent_button_5_Template, 3, 8, "button", 6);
|
|
359
|
+
i0.ɵɵelementEnd()();
|
|
360
|
+
i0.ɵɵelementStart(6, "div", 7);
|
|
361
|
+
i0.ɵɵtemplate(7, MJIntegratedFlowEditorComponent_div_7_Template, 2, 0, "div", 8);
|
|
362
|
+
i0.ɵɵelementStart(8, "div", 9)(9, "app-flow-editor", 10, 0);
|
|
363
|
+
i0.ɵɵlistener("toggleExecution", function MJIntegratedFlowEditorComponent_Template_app_flow_editor_toggleExecution_9_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.toggleExecutionPanel()); })("stepMoved", function MJIntegratedFlowEditorComponent_Template_app_flow_editor_stepMoved_9_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onStepMoved($event)); });
|
|
364
|
+
i0.ɵɵelementEnd()();
|
|
365
|
+
i0.ɵɵelementStart(11, "div", 11);
|
|
366
|
+
i0.ɵɵtemplate(12, MJIntegratedFlowEditorComponent_app_properties_panel_12_Template, 1, 0, "app-properties-panel", 12);
|
|
367
|
+
i0.ɵɵelementEnd()();
|
|
368
|
+
i0.ɵɵtemplate(13, MJIntegratedFlowEditorComponent_div_13_Template, 2, 0, "div", 13);
|
|
369
|
+
i0.ɵɵelementStart(14, "div", 14)(15, "span", 15);
|
|
370
|
+
i0.ɵɵelement(16, "i", 16);
|
|
371
|
+
i0.ɵɵtext(17);
|
|
372
|
+
i0.ɵɵelementEnd();
|
|
373
|
+
i0.ɵɵelementStart(18, "span", 15);
|
|
374
|
+
i0.ɵɵelement(19, "i", 17);
|
|
375
|
+
i0.ɵɵtext(20);
|
|
376
|
+
i0.ɵɵelementEnd();
|
|
377
|
+
i0.ɵɵtemplate(21, MJIntegratedFlowEditorComponent_span_21_Template, 4, 4, "span", 18)(22, MJIntegratedFlowEditorComponent_span_22_Template, 3, 0, "span", 19);
|
|
378
|
+
i0.ɵɵelementEnd()();
|
|
379
|
+
} if (rf & 2) {
|
|
380
|
+
i0.ɵɵadvance(3);
|
|
381
|
+
i0.ɵɵproperty("ngIf", ctx.agentId);
|
|
382
|
+
i0.ɵɵadvance(2);
|
|
383
|
+
i0.ɵɵproperty("ngIf", ctx.EditMode);
|
|
384
|
+
i0.ɵɵadvance();
|
|
385
|
+
i0.ɵɵclassProp("with-execution", ctx.showExecutionPanel);
|
|
386
|
+
i0.ɵɵadvance();
|
|
387
|
+
i0.ɵɵproperty("ngIf", ctx.EditMode);
|
|
388
|
+
i0.ɵɵadvance(4);
|
|
389
|
+
i0.ɵɵstyleProp("width", ctx.selectedStep ? 320 : 0, "px");
|
|
390
|
+
i0.ɵɵclassProp("visible", ctx.selectedStep);
|
|
391
|
+
i0.ɵɵadvance();
|
|
392
|
+
i0.ɵɵproperty("ngIf", ctx.selectedStep);
|
|
393
|
+
i0.ɵɵadvance();
|
|
394
|
+
i0.ɵɵproperty("ngIf", ctx.showExecutionPanel);
|
|
395
|
+
i0.ɵɵadvance(4);
|
|
396
|
+
i0.ɵɵtextInterpolate1(" ", ctx.stepCount, " Steps ");
|
|
397
|
+
i0.ɵɵadvance(3);
|
|
398
|
+
i0.ɵɵtextInterpolate1(" ", ctx.connectionCount, " Connections ");
|
|
399
|
+
i0.ɵɵadvance();
|
|
400
|
+
i0.ɵɵproperty("ngIf", ctx.lastSaved);
|
|
401
|
+
i0.ɵɵadvance();
|
|
402
|
+
i0.ɵɵproperty("ngIf", ctx.hasUnsavedChanges);
|
|
403
|
+
} }, dependencies: [CommonModule, i4.NgIf, i4.DatePipe, FormsModule,
|
|
404
|
+
FlowEditorComponent,
|
|
405
|
+
PropertiesPanelComponent,
|
|
406
|
+
ExecutionPanelComponent,
|
|
407
|
+
ToolbarComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n width: 100%;\n height: 100%;\n min-height: 600px; \n\n }\n \n .mj-integrated-flow-editor[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 600px; \n\n background: #f5f6fa;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .editor-header[_ngcontent-%COMP%] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 20px;\n background: white;\n border-bottom: 1px solid #e1e4e8;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n }\n\n .header-left[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 15px;\n }\n\n .header-left[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .agent-id[_ngcontent-%COMP%] {\n font-size: 12px;\n color: #6c757d;\n background: #f0f2f5;\n padding: 4px 10px;\n border-radius: 12px;\n }\n\n .header-right[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n }\n\n .btn-save[_ngcontent-%COMP%], .btn-mode[_ngcontent-%COMP%] {\n padding: 8px 16px;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .btn-save[_ngcontent-%COMP%] {\n background: #10b981;\n color: white;\n }\n\n .btn-save[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #059669;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);\n }\n\n .btn-save[_ngcontent-%COMP%]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .btn-mode[_ngcontent-%COMP%] {\n background: #6366f1;\n color: white;\n }\n\n .btn-mode[_ngcontent-%COMP%]:hover {\n background: #4f46e5;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);\n }\n\n .editor-container[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n position: relative;\n overflow: visible; \n\n transition: margin-bottom 0.3s;\n min-height: 500px;\n }\n\n .editor-container.with-execution[_ngcontent-%COMP%] {\n margin-bottom: 250px;\n }\n\n .toolbar-container[_ngcontent-%COMP%] {\n width: 80px;\n background: white;\n border-right: 1px solid #e1e4e8;\n padding: 10px;\n overflow-y: auto;\n }\n\n .canvas-container[_ngcontent-%COMP%] {\n flex: 1;\n position: relative;\n background: #fafbfc;\n overflow: hidden; \n\n }\n\n .properties-container[_ngcontent-%COMP%] {\n width: 0;\n min-width: 0;\n max-width: 320px;\n background: white;\n border-left: 1px solid #e1e4e8;\n overflow: hidden;\n transition: width 0.3s ease, min-width 0.3s ease;\n position: relative;\n box-shadow: -2px 0 5px rgba(0,0,0,0.05);\n flex-shrink: 0; \n\n height: 100%; \n\n }\n\n .properties-container.visible[_ngcontent-%COMP%] {\n width: 320px !important; \n\n min-width: 320px !important;\n overflow-y: auto;\n overflow-x: hidden;\n }\n \n app-properties-panel[_ngcontent-%COMP%] {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .execution-container[_ngcontent-%COMP%] {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n height: 250px;\n background: white;\n border-top: 2px solid #e1e4e8;\n box-shadow: 0 -2px 10px rgba(0,0,0,0.1);\n z-index: 100;\n }\n\n .status-bar[_ngcontent-%COMP%] {\n display: flex;\n gap: 20px;\n padding: 8px 20px;\n background: white;\n border-top: 1px solid #e1e4e8;\n font-size: 12px;\n color: #6c757d;\n }\n\n .status-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 5px;\n }\n\n .status-item.unsaved[_ngcontent-%COMP%] {\n color: #f59e0b;\n font-weight: 500;\n }\n\n .status-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 11px;\n }"] }); }
|
|
408
|
+
}
|
|
409
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MJIntegratedFlowEditorComponent, [{
|
|
410
|
+
type: Component,
|
|
411
|
+
args: [{ selector: 'mj-integrated-flow-editor', standalone: true, imports: [
|
|
412
|
+
CommonModule,
|
|
413
|
+
FormsModule,
|
|
414
|
+
FlowEditorComponent,
|
|
415
|
+
PropertiesPanelComponent,
|
|
416
|
+
ExecutionPanelComponent,
|
|
417
|
+
ToolbarComponent
|
|
418
|
+
], template: `
|
|
419
|
+
<div class="mj-integrated-flow-editor">
|
|
420
|
+
<!-- Header with mode toggle -->
|
|
421
|
+
<div class="editor-header">
|
|
422
|
+
<div class="header-left">
|
|
423
|
+
<span class="agent-id" *ngIf="agentId">Agent ID: {{ agentId }}</span>
|
|
424
|
+
</div>
|
|
425
|
+
<div class="header-right">
|
|
426
|
+
<button class="btn-save" *ngIf="EditMode" (click)="saveAllChanges()" [disabled]="saving">
|
|
427
|
+
<i class="fa-solid" [class.fa-save]="!saving" [class.fa-spinner]="saving" [class.fa-spin]="saving"></i>
|
|
428
|
+
{{ saving ? 'Saving...' : 'Save All Changes' }}
|
|
429
|
+
</button>
|
|
430
|
+
</div>
|
|
431
|
+
</div>
|
|
432
|
+
|
|
433
|
+
<!-- Main editor area -->
|
|
434
|
+
<div class="editor-container" [class.with-execution]="showExecutionPanel">
|
|
435
|
+
<!-- Toolbar -->
|
|
436
|
+
<div class="toolbar-container" *ngIf="EditMode">
|
|
437
|
+
<app-toolbar
|
|
438
|
+
(stepDragStart)="onStepDragStart($event)"
|
|
439
|
+
(stepDragEnd)="onStepDragEnd()"></app-toolbar>
|
|
440
|
+
</div>
|
|
441
|
+
|
|
442
|
+
<!-- Flow Editor Canvas -->
|
|
443
|
+
<div class="canvas-container">
|
|
444
|
+
<app-flow-editor #flowEditor
|
|
445
|
+
(toggleExecution)="toggleExecutionPanel()"
|
|
446
|
+
(stepMoved)="onStepMoved($event)"></app-flow-editor>
|
|
447
|
+
</div>
|
|
448
|
+
|
|
449
|
+
<!-- Properties Panel -->
|
|
450
|
+
<div class="properties-container"
|
|
451
|
+
[class.visible]="selectedStep"
|
|
452
|
+
[style.width.px]="selectedStep ? 320 : 0">
|
|
453
|
+
<app-properties-panel *ngIf="selectedStep"></app-properties-panel>
|
|
454
|
+
</div>
|
|
455
|
+
</div>
|
|
456
|
+
|
|
457
|
+
<!-- Execution Panel -->
|
|
458
|
+
<div class="execution-container" *ngIf="showExecutionPanel">
|
|
459
|
+
<app-execution-panel></app-execution-panel>
|
|
460
|
+
</div>
|
|
461
|
+
|
|
462
|
+
<!-- Status Bar -->
|
|
463
|
+
<div class="status-bar">
|
|
464
|
+
<span class="status-item">
|
|
465
|
+
<i class="fa-solid fa-circle-nodes"></i>
|
|
466
|
+
{{ stepCount }} Steps
|
|
467
|
+
</span>
|
|
468
|
+
<span class="status-item">
|
|
469
|
+
<i class="fa-solid fa-link"></i>
|
|
470
|
+
{{ connectionCount }} Connections
|
|
471
|
+
</span>
|
|
472
|
+
<span class="status-item" *ngIf="lastSaved">
|
|
473
|
+
<i class="fa-solid fa-clock"></i>
|
|
474
|
+
Last saved: {{ lastSaved | date:'short' }}
|
|
475
|
+
</span>
|
|
476
|
+
<span class="status-item unsaved" *ngIf="hasUnsavedChanges">
|
|
477
|
+
<i class="fa-solid fa-exclamation-triangle"></i>
|
|
478
|
+
Unsaved changes
|
|
479
|
+
</span>
|
|
480
|
+
</div>
|
|
481
|
+
</div>
|
|
482
|
+
`, providers: [FlowEditorService, FlowExecutorService, MJFlowTransformerService], styles: ["\n :host {\n display: block;\n width: 100%;\n height: 100%;\n min-height: 600px; /* Ensure minimum height */\n }\n \n .mj-integrated-flow-editor {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 600px; /* Ensure minimum height */\n background: #f5f6fa;\n border-radius: 8px;\n overflow: hidden;\n }\n\n .editor-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 12px 20px;\n background: white;\n border-bottom: 1px solid #e1e4e8;\n box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n }\n\n .header-left {\n display: flex;\n align-items: center;\n gap: 15px;\n }\n\n .header-left h3 {\n margin: 0;\n font-size: 18px;\n font-weight: 600;\n color: #2c3e50;\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .agent-id {\n font-size: 12px;\n color: #6c757d;\n background: #f0f2f5;\n padding: 4px 10px;\n border-radius: 12px;\n }\n\n .header-right {\n display: flex;\n gap: 10px;\n }\n\n .btn-save, .btn-mode {\n padding: 8px 16px;\n border: none;\n border-radius: 6px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n display: flex;\n align-items: center;\n gap: 6px;\n }\n\n .btn-save {\n background: #10b981;\n color: white;\n }\n\n .btn-save:hover:not(:disabled) {\n background: #059669;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);\n }\n\n .btn-save:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n .btn-mode {\n background: #6366f1;\n color: white;\n }\n\n .btn-mode:hover {\n background: #4f46e5;\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3);\n }\n\n .editor-container {\n flex: 1;\n display: flex;\n position: relative;\n overflow: visible; /* Allow properties panel to be visible */\n transition: margin-bottom 0.3s;\n min-height: 500px;\n }\n\n .editor-container.with-execution {\n margin-bottom: 250px;\n }\n\n .toolbar-container {\n width: 80px;\n background: white;\n border-right: 1px solid #e1e4e8;\n padding: 10px;\n overflow-y: auto;\n }\n\n .canvas-container {\n flex: 1;\n position: relative;\n background: #fafbfc;\n overflow: hidden; /* Keep canvas overflow hidden */\n }\n\n .properties-container {\n width: 0;\n min-width: 0;\n max-width: 320px;\n background: white;\n border-left: 1px solid #e1e4e8;\n overflow: hidden;\n transition: width 0.3s ease, min-width 0.3s ease;\n position: relative;\n box-shadow: -2px 0 5px rgba(0,0,0,0.05);\n flex-shrink: 0; /* Prevent the container from shrinking */\n height: 100%; /* Full height of parent */\n }\n\n .properties-container.visible {\n width: 320px !important; /* Force the width with !important */\n min-width: 320px !important;\n overflow-y: auto;\n overflow-x: hidden;\n }\n \n app-properties-panel {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .execution-container {\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n height: 250px;\n background: white;\n border-top: 2px solid #e1e4e8;\n box-shadow: 0 -2px 10px rgba(0,0,0,0.1);\n z-index: 100;\n }\n\n .status-bar {\n display: flex;\n gap: 20px;\n padding: 8px 20px;\n background: white;\n border-top: 1px solid #e1e4e8;\n font-size: 12px;\n color: #6c757d;\n }\n\n .status-item {\n display: flex;\n align-items: center;\n gap: 5px;\n }\n\n .status-item.unsaved {\n color: #f59e0b;\n font-weight: 500;\n }\n\n .status-item i {\n font-size: 11px;\n }\n "] }]
|
|
483
|
+
}], () => [{ type: i1.FlowEditorService }, { type: i2.FlowExecutorService }, { type: i3.MJFlowTransformerService }, { type: i0.ChangeDetectorRef }], { flowEditorComponent: [{
|
|
484
|
+
type: ViewChild,
|
|
485
|
+
args: ['flowEditor']
|
|
486
|
+
}], agentId: [{
|
|
487
|
+
type: Input
|
|
488
|
+
}], steps: [{
|
|
489
|
+
type: Input
|
|
490
|
+
}], paths: [{
|
|
491
|
+
type: Input
|
|
492
|
+
}], EditMode: [{
|
|
493
|
+
type: Input
|
|
494
|
+
}], stepsChanged: [{
|
|
495
|
+
type: Output
|
|
496
|
+
}], pathsChanged: [{
|
|
497
|
+
type: Output
|
|
498
|
+
}] }); })();
|
|
499
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MJIntegratedFlowEditorComponent, { className: "MJIntegratedFlowEditorComponent", filePath: "src/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.ts", lineNumber: 291 }); })();
|
|
500
|
+
//# sourceMappingURL=mj-integrated-flow-editor.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mj-integrated-flow-editor.component.js","sourceRoot":"","sources":["../../../../../src/lib/custom/AIAgents/FlowAgentType/mj-integrated-flow-editor.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,9 +57,10 @@ import * as i55 from "@memberjunction/ng-deep-diff";
|
|
|
57
57
|
import * as i56 from "@progress/kendo-angular-treeview";
|
|
58
58
|
import * as i57 from "@memberjunction/ng-ai-test-harness";
|
|
59
59
|
import * as i58 from "@memberjunction/ng-action-gallery";
|
|
60
|
+
import * as i59 from "./AIAgents/FlowAgentType/mj-integrated-flow-editor.component";
|
|
60
61
|
export declare class MemberJunctionCoreEntityFormsModule {
|
|
61
62
|
static ɵfac: i0.ɵɵFactoryDeclaration<MemberJunctionCoreEntityFormsModule, never>;
|
|
62
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<MemberJunctionCoreEntityFormsModule, [typeof i1.EntityFormExtendedComponent, typeof i2.EntityActionExtendedFormComponent, typeof i3.ActionTopComponentExtended, typeof i4.TemplatesFormExtendedComponent, typeof i5.TemplateParamDialogComponent, typeof i6.TemplateParamsGridComponent, typeof i7.TemplateEditorComponent, typeof i8.AIPromptFormComponentExtended, typeof i9.AIAgentFormComponentExtended, typeof i10.NewAgentDialogComponent, typeof i11.AddActionDialogComponent, typeof i12.PromptSelectorDialogComponent, typeof i13.AgentPromptAdvancedSettingsDialogComponent, typeof i14.SubAgentAdvancedSettingsDialogComponent, typeof i15.SubAgentSelectorDialogComponent, typeof i16.CreatePromptDialogComponent, typeof i17.CreateSubAgentDialogComponent, typeof i18.EntitySelectorDialogComponent, typeof i19.AIPromptRunFormComponentExtended, typeof i20.ChatMessageViewerComponent, typeof i21.ActionFormComponentExtended, typeof i22.ActionTestHarnessComponent, typeof i23.ActionTestHarnessDialogComponent, typeof i24.ActionExecutionLogFormComponentExtended, typeof i25.ActionParamDialogComponent, typeof i26.AIAgentRunFormComponentExtended, typeof i27.AIAgentRunTimelineComponent, typeof i28.AIAgentRunStepNodeComponent, typeof i29.AIAgentRunAnalyticsComponent, typeof i30.AIAgentRunVisualizationComponent, typeof i31.AIAgentRunStepDetailComponent, typeof i32.QueryFormExtendedComponent, typeof i33.QueryRunDialogComponent, typeof i34.QueryCategoryDialogComponent, typeof i35.FlowAgentFormSectionComponent, typeof i36.StepInfoControlComponent, typeof i37.FlowAgentDiagramComponent], [typeof i38.CommonModule, typeof i39.FormsModule, typeof i39.ReactiveFormsModule, typeof i40.LayoutModule, typeof i40.ExpansionPanelModule, typeof i40.TabStripModule, typeof i40.SplitterModule, typeof i40.PanelBarModule, typeof i41.DialogsModule, typeof i41.WindowModule, typeof i42.GridModule, typeof i43.InputsModule, typeof i43.TextBoxModule, typeof i43.TextAreaModule, typeof i43.NumericTextBoxModule, typeof i43.SwitchModule, typeof i44.DropDownsModule, typeof i44.ComboBoxModule, typeof i44.DropDownTreesModule, typeof i44.DropDownListModule, typeof i45.ButtonsModule, typeof i45.ButtonModule, typeof i45.SplitButtonModule, typeof i46.DateInputsModule, typeof i47.UserViewGridModule, typeof i48.LinkDirectivesModule, typeof i49.JoinGridModule, typeof i50.BaseFormsModule, typeof i51.FormToolbarModule, typeof i52.MJTabStripModule, typeof i53.ContainerDirectivesModule, typeof i54.CodeEditorModule, typeof i55.DeepDiffModule, typeof i56.TreeViewModule, typeof i43.CheckBoxModule, typeof i57.AITestHarnessModule, typeof i58.ActionGalleryModule], [typeof i1.EntityFormExtendedComponent, typeof i3.ActionTopComponentExtended, typeof i2.EntityActionExtendedFormComponent, typeof i4.TemplatesFormExtendedComponent, typeof i7.TemplateEditorComponent, typeof i8.AIPromptFormComponentExtended, typeof i9.AIAgentFormComponentExtended, typeof i19.AIPromptRunFormComponentExtended, typeof i20.ChatMessageViewerComponent, typeof i21.ActionFormComponentExtended, typeof i22.ActionTestHarnessComponent, typeof i23.ActionTestHarnessDialogComponent, typeof i24.ActionExecutionLogFormComponentExtended, typeof i26.AIAgentRunFormComponentExtended, typeof i27.AIAgentRunTimelineComponent, typeof i28.AIAgentRunStepNodeComponent, typeof i29.AIAgentRunAnalyticsComponent, typeof i32.QueryFormExtendedComponent, typeof i35.FlowAgentFormSectionComponent, typeof i36.StepInfoControlComponent, typeof i37.FlowAgentDiagramComponent]>;
|
|
63
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<MemberJunctionCoreEntityFormsModule, [typeof i1.EntityFormExtendedComponent, typeof i2.EntityActionExtendedFormComponent, typeof i3.ActionTopComponentExtended, typeof i4.TemplatesFormExtendedComponent, typeof i5.TemplateParamDialogComponent, typeof i6.TemplateParamsGridComponent, typeof i7.TemplateEditorComponent, typeof i8.AIPromptFormComponentExtended, typeof i9.AIAgentFormComponentExtended, typeof i10.NewAgentDialogComponent, typeof i11.AddActionDialogComponent, typeof i12.PromptSelectorDialogComponent, typeof i13.AgentPromptAdvancedSettingsDialogComponent, typeof i14.SubAgentAdvancedSettingsDialogComponent, typeof i15.SubAgentSelectorDialogComponent, typeof i16.CreatePromptDialogComponent, typeof i17.CreateSubAgentDialogComponent, typeof i18.EntitySelectorDialogComponent, typeof i19.AIPromptRunFormComponentExtended, typeof i20.ChatMessageViewerComponent, typeof i21.ActionFormComponentExtended, typeof i22.ActionTestHarnessComponent, typeof i23.ActionTestHarnessDialogComponent, typeof i24.ActionExecutionLogFormComponentExtended, typeof i25.ActionParamDialogComponent, typeof i26.AIAgentRunFormComponentExtended, typeof i27.AIAgentRunTimelineComponent, typeof i28.AIAgentRunStepNodeComponent, typeof i29.AIAgentRunAnalyticsComponent, typeof i30.AIAgentRunVisualizationComponent, typeof i31.AIAgentRunStepDetailComponent, typeof i32.QueryFormExtendedComponent, typeof i33.QueryRunDialogComponent, typeof i34.QueryCategoryDialogComponent, typeof i35.FlowAgentFormSectionComponent, typeof i36.StepInfoControlComponent, typeof i37.FlowAgentDiagramComponent], [typeof i38.CommonModule, typeof i39.FormsModule, typeof i39.ReactiveFormsModule, typeof i40.LayoutModule, typeof i40.ExpansionPanelModule, typeof i40.TabStripModule, typeof i40.SplitterModule, typeof i40.PanelBarModule, typeof i41.DialogsModule, typeof i41.WindowModule, typeof i42.GridModule, typeof i43.InputsModule, typeof i43.TextBoxModule, typeof i43.TextAreaModule, typeof i43.NumericTextBoxModule, typeof i43.SwitchModule, typeof i44.DropDownsModule, typeof i44.ComboBoxModule, typeof i44.DropDownTreesModule, typeof i44.DropDownListModule, typeof i45.ButtonsModule, typeof i45.ButtonModule, typeof i45.SplitButtonModule, typeof i46.DateInputsModule, typeof i47.UserViewGridModule, typeof i48.LinkDirectivesModule, typeof i49.JoinGridModule, typeof i50.BaseFormsModule, typeof i51.FormToolbarModule, typeof i52.MJTabStripModule, typeof i53.ContainerDirectivesModule, typeof i54.CodeEditorModule, typeof i55.DeepDiffModule, typeof i56.TreeViewModule, typeof i43.CheckBoxModule, typeof i57.AITestHarnessModule, typeof i58.ActionGalleryModule, typeof i59.MJIntegratedFlowEditorComponent], [typeof i1.EntityFormExtendedComponent, typeof i3.ActionTopComponentExtended, typeof i2.EntityActionExtendedFormComponent, typeof i4.TemplatesFormExtendedComponent, typeof i7.TemplateEditorComponent, typeof i8.AIPromptFormComponentExtended, typeof i9.AIAgentFormComponentExtended, typeof i19.AIPromptRunFormComponentExtended, typeof i20.ChatMessageViewerComponent, typeof i21.ActionFormComponentExtended, typeof i22.ActionTestHarnessComponent, typeof i23.ActionTestHarnessDialogComponent, typeof i24.ActionExecutionLogFormComponentExtended, typeof i26.AIAgentRunFormComponentExtended, typeof i27.AIAgentRunTimelineComponent, typeof i28.AIAgentRunStepNodeComponent, typeof i29.AIAgentRunAnalyticsComponent, typeof i32.QueryFormExtendedComponent, typeof i35.FlowAgentFormSectionComponent, typeof i36.StepInfoControlComponent, typeof i37.FlowAgentDiagramComponent, typeof i59.MJIntegratedFlowEditorComponent]>;
|
|
63
64
|
static ɵinj: i0.ɵɵInjectorDeclaration<MemberJunctionCoreEntityFormsModule>;
|
|
64
65
|
}
|
|
65
66
|
export declare function LoadCoreCustomForms(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-forms.module.d.ts","sourceRoot":"","sources":["../../../src/lib/custom/custom-forms.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"custom-forms.module.d.ts","sourceRoot":"","sources":["../../../src/lib/custom/custom-forms.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+DA,qBA6Ga,mCAAmC;yCAAnC,mCAAmC;0CAAnC,mCAAmC;0CAAnC,mCAAmC;CAAI;AAEpD,wBAAgB,mBAAmB,SAWlC"}
|
|
@@ -59,6 +59,7 @@ import { QueryCategoryDialogComponent } from "./Queries/query-category-dialog.co
|
|
|
59
59
|
import { FlowAgentFormSectionComponent } from "./AIAgents/FlowAgentType/flow-agent-form-section.component";
|
|
60
60
|
import { StepInfoControlComponent } from "./AIAgents/FlowAgentType/step-info-control.component";
|
|
61
61
|
import { FlowAgentDiagramComponent } from "./AIAgents/FlowAgentType/flow-agent-diagram.component";
|
|
62
|
+
import { MJIntegratedFlowEditorComponent } from "./AIAgents/FlowAgentType/mj-integrated-flow-editor.component";
|
|
62
63
|
import * as i0 from "@angular/core";
|
|
63
64
|
import * as i1 from "@angular/common";
|
|
64
65
|
export class MemberJunctionCoreEntityFormsModule {
|
|
@@ -103,7 +104,8 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
103
104
|
TreeViewModule,
|
|
104
105
|
CheckBoxModule,
|
|
105
106
|
AITestHarnessModule,
|
|
106
|
-
ActionGalleryModule
|
|
107
|
+
ActionGalleryModule,
|
|
108
|
+
MJIntegratedFlowEditorComponent] }); }
|
|
107
109
|
}
|
|
108
110
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MemberJunctionCoreEntityFormsModule, [{
|
|
109
111
|
type: NgModule,
|
|
@@ -184,7 +186,8 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
184
186
|
TreeViewModule,
|
|
185
187
|
CheckBoxModule,
|
|
186
188
|
AITestHarnessModule,
|
|
187
|
-
ActionGalleryModule
|
|
189
|
+
ActionGalleryModule,
|
|
190
|
+
MJIntegratedFlowEditorComponent
|
|
188
191
|
],
|
|
189
192
|
exports: [
|
|
190
193
|
EntityFormExtendedComponent,
|
|
@@ -208,6 +211,7 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
208
211
|
FlowAgentFormSectionComponent,
|
|
209
212
|
StepInfoControlComponent,
|
|
210
213
|
FlowAgentDiagramComponent,
|
|
214
|
+
MJIntegratedFlowEditorComponent
|
|
211
215
|
],
|
|
212
216
|
providers: [
|
|
213
217
|
NewAgentDialogService,
|
|
@@ -287,7 +291,8 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
287
291
|
TreeViewModule,
|
|
288
292
|
CheckBoxModule,
|
|
289
293
|
AITestHarnessModule,
|
|
290
|
-
ActionGalleryModule
|
|
294
|
+
ActionGalleryModule,
|
|
295
|
+
MJIntegratedFlowEditorComponent], exports: [EntityFormExtendedComponent,
|
|
291
296
|
ActionTopComponentExtended,
|
|
292
297
|
EntityActionExtendedFormComponent,
|
|
293
298
|
TemplatesFormExtendedComponent,
|
|
@@ -307,7 +312,8 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
307
312
|
QueryFormExtendedComponent,
|
|
308
313
|
FlowAgentFormSectionComponent,
|
|
309
314
|
StepInfoControlComponent,
|
|
310
|
-
FlowAgentDiagramComponent
|
|
315
|
+
FlowAgentDiagramComponent,
|
|
316
|
+
MJIntegratedFlowEditorComponent] }); })();
|
|
311
317
|
i0.ɵɵsetComponentScope(AIAgentRunTimelineComponent, [i1.NgForOf, i1.NgIf, AIAgentRunTimelineComponent,
|
|
312
318
|
AIAgentRunStepNodeComponent], [i1.AsyncPipe]);
|
|
313
319
|
export function LoadCoreCustomForms() {
|