@zenwave360/vistas-eventflow 0.1.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/FLOWVIEWMODEL_EXAMPLES.md +896 -0
- package/LICENSE +21 -0
- package/README.md +151 -0
- package/dist/EventFlowVisualizer.d.ts +25 -0
- package/dist/EventFlowVisualizer.d.ts.map +1 -0
- package/dist/ServiceMapVisualizer.d.ts +14 -0
- package/dist/ServiceMapVisualizer.d.ts.map +1 -0
- package/dist/components/CausationEdge.d.ts +8 -0
- package/dist/components/CausationEdge.d.ts.map +1 -0
- package/dist/components/CommandNode.d.ts +10 -0
- package/dist/components/CommandNode.d.ts.map +1 -0
- package/dist/components/EndNode.d.ts +10 -0
- package/dist/components/EndNode.d.ts.map +1 -0
- package/dist/components/EventNode.d.ts +10 -0
- package/dist/components/EventNode.d.ts.map +1 -0
- package/dist/components/OutcomeNode.d.ts +7 -0
- package/dist/components/OutcomeNode.d.ts.map +1 -0
- package/dist/components/PolicyNode.d.ts +16 -0
- package/dist/components/PolicyNode.d.ts.map +1 -0
- package/dist/components/ServiceGroupNode.d.ts +10 -0
- package/dist/components/ServiceGroupNode.d.ts.map +1 -0
- package/dist/components/ServiceMapNode.d.ts +8 -0
- package/dist/components/ServiceMapNode.d.ts.map +1 -0
- package/dist/components/StartNode.d.ts +10 -0
- package/dist/components/StartNode.d.ts.map +1 -0
- package/dist/components/SystemGroupNode.d.ts +7 -0
- package/dist/components/SystemGroupNode.d.ts.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +645 -0
- package/dist/index.js.map +1 -0
- package/dist/labelFormatting.d.ts +6 -0
- package/dist/labelFormatting.d.ts.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/types/FlowViewModel-updated.d.ts +114 -0
- package/dist/types/FlowViewModel-updated.d.ts.map +1 -0
- package/dist/types/FlowViewModel.d.ts +124 -0
- package/dist/types/FlowViewModel.d.ts.map +1 -0
- package/dist/types/ServiceViewModel.d.ts +64 -0
- package/dist/types/ServiceViewModel.d.ts.map +1 -0
- package/event-flow-architecture-and-contracts.md +1067 -0
- package/package.json +54 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022-2023 ZenWave's Authors and Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# @zenwave360/vistas-eventflow
|
|
2
|
+
|
|
3
|
+
A React Flow visualizer for EventFlow diagrams with pre-computed positions.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- Event-storming-inspired node legend
|
|
8
|
+
- Timeline-first rendering with no system swimlanes
|
|
9
|
+
- START nodes rendered as green circles
|
|
10
|
+
- END/end-outcome nodes rendered as red squares
|
|
11
|
+
- Visual distinction for `CAUSATION`, `TRIGGER`, `CONDITIONAL`, and `ERROR` edges
|
|
12
|
+
- Light and dark themes
|
|
13
|
+
- Source navigation hooks for IDE integrations
|
|
14
|
+
|
|
15
|
+
## Quick Start
|
|
16
|
+
|
|
17
|
+
From the monorepo root, run `pnpm install` and then
|
|
18
|
+
`pnpm --filter @zenwave360/vistas-eventflow-webview-app dev`. This opens
|
|
19
|
+
`test.html`, where you can paste `FlowViewModel` JSON to test the viewer.
|
|
20
|
+
|
|
21
|
+
## Static Bundle For IntelliJ / JCEF
|
|
22
|
+
|
|
23
|
+
Build the static webview bundle with:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
pnpm --filter @zenwave360/vistas-eventflow-webview-app build
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The build output is written to:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
dist/index.html
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Vite is configured to emit relative asset paths so the bundle can be loaded from a local `file://` URL inside IntelliJ JCEF.
|
|
36
|
+
|
|
37
|
+
## Typecheck
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npm run typecheck
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
This checks both:
|
|
44
|
+
|
|
45
|
+
- browser app code via `tsconfig.json`
|
|
46
|
+
- Vite and Node-side config via `tsconfig.node.json`
|
|
47
|
+
|
|
48
|
+
## Basic Usage
|
|
49
|
+
|
|
50
|
+
```tsx
|
|
51
|
+
import {
|
|
52
|
+
EventFlowVisualizer,
|
|
53
|
+
type FlowViewModel,
|
|
54
|
+
} from '@zenwave360/vistas-eventflow/react';
|
|
55
|
+
import '@zenwave360/vistas-eventflow/styles.css';
|
|
56
|
+
|
|
57
|
+
const flowData: FlowViewModel = {
|
|
58
|
+
schema: "zfl.eventflow.view@1",
|
|
59
|
+
nodes: [
|
|
60
|
+
{
|
|
61
|
+
id: "event:CustomerRequestsSubscriptionRenewal",
|
|
62
|
+
type: "START",
|
|
63
|
+
label: "CustomerRequestsSubscriptionRenewal",
|
|
64
|
+
position: { x: 40, y: 140 },
|
|
65
|
+
dimensions: { width: 100, height: 100 },
|
|
66
|
+
system: null,
|
|
67
|
+
service: null,
|
|
68
|
+
sourceRef: { file: "flow.zfl", line: 1, column: 1 }
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: "command:renewSubscription",
|
|
72
|
+
type: "COMMAND",
|
|
73
|
+
label: "renewSubscription",
|
|
74
|
+
position: { x: 220, y: 160 },
|
|
75
|
+
dimensions: { width: 180, height: 64 },
|
|
76
|
+
system: "Subscription",
|
|
77
|
+
service: "SubscriptionService",
|
|
78
|
+
sourceRef: { file: "flow.zfl", line: 3, column: 1 }
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
edges: [
|
|
82
|
+
{
|
|
83
|
+
id: "e1",
|
|
84
|
+
source: "event:CustomerRequestsSubscriptionRenewal",
|
|
85
|
+
target: "command:renewSubscription",
|
|
86
|
+
type: "TRIGGER",
|
|
87
|
+
outcome: null,
|
|
88
|
+
label: null,
|
|
89
|
+
sourceRef: null
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
systemGroups: null,
|
|
93
|
+
layout: {
|
|
94
|
+
engine: "elk-layered",
|
|
95
|
+
direction: "LR",
|
|
96
|
+
rankSpacing: 180,
|
|
97
|
+
nodeSpacing: 80
|
|
98
|
+
},
|
|
99
|
+
bounds: { x: 0, y: 0, width: 1200, height: 400 }
|
|
100
|
+
};
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## FlowViewModel Notes
|
|
104
|
+
|
|
105
|
+
- `position` and `dimensions` can be `null` before layout is applied.
|
|
106
|
+
- Node end-state labels are read from `endOutcome`; edge outcome labels are read from `outcome`.
|
|
107
|
+
- When a command emits multiple events for the same `outcome`, the viewer inserts a synthetic outcome pill node at render time.
|
|
108
|
+
- When a command has a single event for an `outcome`, the viewer keeps a direct edge and uses the outcome text as the edge label.
|
|
109
|
+
- The viewer skips nodes without layout information instead of crashing.
|
|
110
|
+
- `systemGroups` may be `null` and is ignored by the viewer.
|
|
111
|
+
- System and service metadata are preserved as tooltip metadata, not as visual grouping.
|
|
112
|
+
- The viewer can emit a full updated `FlowViewModel` after drag-based layout edits via `onFlowViewModelChange`.
|
|
113
|
+
|
|
114
|
+
## Layout Editing
|
|
115
|
+
|
|
116
|
+
```tsx
|
|
117
|
+
<EventFlowVisualizer
|
|
118
|
+
flowViewModel={flowData}
|
|
119
|
+
displaySettings={{ humanizeLabels: true }}
|
|
120
|
+
onFlowViewModelChange={(updatedFlowViewModel) => {
|
|
121
|
+
console.log(updatedFlowViewModel.nodes.map((node) => node.position));
|
|
122
|
+
}}
|
|
123
|
+
/>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The emitted model keeps the original schema, edges, metadata, and dimensions, while updating node positions and recomputed bounds.
|
|
127
|
+
|
|
128
|
+
`displaySettings.humanizeLabels` is enabled by default and converts viewer labels like `RenewalCancelled` into `Renewal Cancelled` without changing the underlying JSON.
|
|
129
|
+
|
|
130
|
+
## Node Legend
|
|
131
|
+
|
|
132
|
+
- `START`: green circle
|
|
133
|
+
- `COMMAND`: blue rounded rectangle
|
|
134
|
+
- `EVENT`: orange pill
|
|
135
|
+
- `POLICY`: purple dashed rule box
|
|
136
|
+
- `END`: red square end outcome
|
|
137
|
+
|
|
138
|
+
## Edge Legend
|
|
139
|
+
|
|
140
|
+
- `CAUSATION`: solid neutral edge
|
|
141
|
+
- `TRIGGER`: dashed purple edge
|
|
142
|
+
- `CONDITIONAL`: dashed teal edge
|
|
143
|
+
- `ERROR`: dashed red edge
|
|
144
|
+
|
|
145
|
+
## Notes
|
|
146
|
+
|
|
147
|
+
This is a visualization-only component:
|
|
148
|
+
|
|
149
|
+
- Does not parse ZFL source files
|
|
150
|
+
- Does not compute layout positions
|
|
151
|
+
- Renders the provided flow model and preserves branching in the source layout
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EventFlow Visualizer - React Flow visualizer for FlowViewModel
|
|
3
|
+
*
|
|
4
|
+
* The component renders pre-computed flow positions and supports interactive
|
|
5
|
+
* drag-based layout editing without performing automatic layout locally.
|
|
6
|
+
*/
|
|
7
|
+
import 'reactflow/dist/style.css';
|
|
8
|
+
import './styles/eventflow.css';
|
|
9
|
+
import { DiagramDisplaySettings } from './labelFormatting';
|
|
10
|
+
import { FlowViewModel, SourceRef } from './types/FlowViewModel';
|
|
11
|
+
export interface EventFlowVisualizerProps {
|
|
12
|
+
flowViewModel: FlowViewModel;
|
|
13
|
+
theme?: 'light' | 'dark';
|
|
14
|
+
editable?: boolean;
|
|
15
|
+
displaySettings?: EventFlowDisplaySettings;
|
|
16
|
+
highlightedNodeIds?: string[];
|
|
17
|
+
onNodeClick?: (nodeId: string, sourceRef?: SourceRef) => void;
|
|
18
|
+
onSelectionChange?: (selectedNodes: string[], selectedEdges: string[]) => void;
|
|
19
|
+
onFlowViewModelChange?: (updatedFlowViewModel: FlowViewModel) => void;
|
|
20
|
+
}
|
|
21
|
+
export interface EventFlowDisplaySettings extends DiagramDisplaySettings {
|
|
22
|
+
}
|
|
23
|
+
export declare function EventFlowVisualizer({ flowViewModel, theme, editable, displaySettings, highlightedNodeIds, onNodeClick, onSelectionChange, onFlowViewModelChange, }: EventFlowVisualizerProps): import("react").JSX.Element;
|
|
24
|
+
export default EventFlowVisualizer;
|
|
25
|
+
//# sourceMappingURL=EventFlowVisualizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventFlowVisualizer.d.ts","sourceRoot":"","sources":["../src/EventFlowVisualizer.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,0BAA0B,CAAC;AAClC,OAAO,wBAAwB,CAAC;AAShC,OAAO,EAAE,sBAAsB,EAAiB,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAML,aAAa,EAEb,SAAS,EACV,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9D,iBAAiB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/E,qBAAqB,CAAC,EAAE,CAAC,oBAAoB,EAAE,aAAa,KAAK,IAAI,CAAC;CACvE;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;CAAG;AA8Z3E,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,KAAe,EACf,QAAe,EACf,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,qBAAqB,GACtB,EAAE,wBAAwB,+BAmJ1B;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import 'reactflow/dist/style.css';
|
|
2
|
+
import './styles/eventflow.css';
|
|
3
|
+
import { DiagramDisplaySettings } from './labelFormatting';
|
|
4
|
+
import type { ServiceViewModel } from './types/ServiceViewModel';
|
|
5
|
+
export interface ServiceMapVisualizerProps {
|
|
6
|
+
serviceViewModel: ServiceViewModel;
|
|
7
|
+
theme?: 'light' | 'dark';
|
|
8
|
+
editable?: boolean;
|
|
9
|
+
displaySettings?: DiagramDisplaySettings;
|
|
10
|
+
onServiceViewModelChange?: (updatedServiceViewModel: ServiceViewModel) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function ServiceMapVisualizer({ serviceViewModel, theme, editable, displaySettings, onServiceViewModelChange, }: ServiceMapVisualizerProps): import("react").JSX.Element;
|
|
13
|
+
export default ServiceMapVisualizer;
|
|
14
|
+
//# sourceMappingURL=ServiceMapVisualizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceMapVisualizer.d.ts","sourceRoot":"","sources":["../src/ServiceMapVisualizer.tsx"],"names":[],"mappings":"AAQA,OAAO,0BAA0B,CAAC;AAClC,OAAO,wBAAwB,CAAC;AAIhC,OAAO,EAAE,sBAAsB,EAAiB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAKV,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAGlC,MAAM,WAAW,yBAAyB;IACxC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,wBAAwB,CAAC,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAChF;AAiND,wBAAgB,oBAAoB,CAAC,EACnC,gBAAgB,EAChB,KAAe,EACf,QAAgB,EAChB,eAAe,EACf,wBAAwB,GACzB,EAAE,yBAAyB,+BAsD3B;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EdgeProps } from 'reactflow';
|
|
2
|
+
import { FlowEdgeType } from '../types/FlowViewModel';
|
|
3
|
+
interface EventFlowEdgeData {
|
|
4
|
+
edgeType?: FlowEdgeType;
|
|
5
|
+
}
|
|
6
|
+
export declare function CausationEdge(props: EdgeProps<EventFlowEdgeData>): import("react").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=CausationEdge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CausationEdge.d.ts","sourceRoot":"","sources":["../../src/components/CausationEdge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,SAAS,EAAiB,MAAM,WAAW,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,UAAU,iBAAiB;IACzB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAoBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC,iBAAiB,CAAC,+BAgChE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NodeProps } from 'reactflow';
|
|
2
|
+
import { SourceRef } from '../types/FlowViewModel';
|
|
3
|
+
export interface CommandNodeData {
|
|
4
|
+
label: string;
|
|
5
|
+
endOutcomeLabels?: string[];
|
|
6
|
+
sourceRef?: SourceRef;
|
|
7
|
+
title?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function CommandNode({ data }: NodeProps<CommandNodeData>): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=CommandNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommandNode.d.ts","sourceRoot":"","sources":["../../src/components/CommandNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAY,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,eAAe,CAAC,+BAe/D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NodeProps } from 'reactflow';
|
|
2
|
+
import { SourceRef } from '../types/FlowViewModel';
|
|
3
|
+
export interface EndNodeData {
|
|
4
|
+
label: string;
|
|
5
|
+
endOutcomeLabels?: string[];
|
|
6
|
+
sourceRef?: SourceRef;
|
|
7
|
+
title?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function EndNode({ data }: NodeProps<EndNodeData>): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=EndNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EndNode.d.ts","sourceRoot":"","sources":["../../src/components/EndNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAY,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,+BAcvD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NodeProps } from 'reactflow';
|
|
2
|
+
import { SourceRef } from '../types/FlowViewModel';
|
|
3
|
+
export interface EventNodeData {
|
|
4
|
+
label: string;
|
|
5
|
+
endOutcomeLabels?: string[];
|
|
6
|
+
sourceRef?: SourceRef;
|
|
7
|
+
title?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function EventNode({ data }: NodeProps<EventNodeData>): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=EventNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventNode.d.ts","sourceRoot":"","sources":["../../src/components/EventNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAY,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,aAAa,CAAC,+BAe3D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OutcomeNode.d.ts","sourceRoot":"","sources":["../../src/components/OutcomeNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAY,MAAM,WAAW,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,eAAe,CAAC,+BAQ/D"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NodeProps } from 'reactflow';
|
|
2
|
+
import { SourceRef } from '../types/FlowViewModel';
|
|
3
|
+
export interface PolicyNodeData {
|
|
4
|
+
label: string;
|
|
5
|
+
endOutcomeLabels?: string[];
|
|
6
|
+
sourceRef?: SourceRef;
|
|
7
|
+
title?: string;
|
|
8
|
+
policyLabelParts?: {
|
|
9
|
+
when: string;
|
|
10
|
+
condition: string;
|
|
11
|
+
do: string;
|
|
12
|
+
action: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
export declare function PolicyNode({ data }: NodeProps<PolicyNodeData>): import("react").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=PolicyNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolicyNode.d.ts","sourceRoot":"","sources":["../../src/components/PolicyNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAY,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,cAAc,CAAC,+BAwB7D"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { NodeProps } from 'reactflow';
|
|
2
|
+
export interface ServiceGroupNodeData {
|
|
3
|
+
legendLabel: string;
|
|
4
|
+
centerLabel: string;
|
|
5
|
+
centerX?: number;
|
|
6
|
+
centerWidth?: number;
|
|
7
|
+
title?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function ServiceGroupNode({ data }: NodeProps<ServiceGroupNodeData>): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=ServiceGroupNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceGroupNode.d.ts","sourceRoot":"","sources":["../../src/components/ServiceGroupNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,oBAAoB,CAAC,+BAkBzE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { NodeProps } from 'reactflow';
|
|
2
|
+
export interface ServiceMapNodeData {
|
|
3
|
+
label: string;
|
|
4
|
+
title?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function ServiceCommandNode({ data }: NodeProps<ServiceMapNodeData>): import("react").JSX.Element;
|
|
7
|
+
export declare function ServiceEventNode({ data }: NodeProps<ServiceMapNodeData>): import("react").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=ServiceMapNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ServiceMapNode.d.ts","sourceRoot":"","sources":["../../src/components/ServiceMapNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,kBAAkB,CAAC,+BAMzE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,kBAAkB,CAAC,+BAMvE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { NodeProps } from 'reactflow';
|
|
2
|
+
import { SourceRef } from '../types/FlowViewModel';
|
|
3
|
+
export interface StartNodeData {
|
|
4
|
+
label: string;
|
|
5
|
+
endOutcomeLabels?: string[];
|
|
6
|
+
sourceRef?: SourceRef;
|
|
7
|
+
title?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function StartNode({ data }: NodeProps<StartNodeData>): import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=StartNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StartNode.d.ts","sourceRoot":"","sources":["../../src/components/StartNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAU,SAAS,EAAY,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,aAAa,CAAC,+BAiB3D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { NodeProps } from 'reactflow';
|
|
2
|
+
import '@reactflow/node-resizer/dist/style.css';
|
|
3
|
+
export interface SystemGroupNodeData {
|
|
4
|
+
label: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function SystemGroupNode({ data, selected }: NodeProps<SystemGroupNodeData>): import("react").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=SystemGroupNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SystemGroupNode.d.ts","sourceRoot":"","sources":["../../src/components/SystemGroupNode.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,wCAAwC,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,CAAC,mBAAmB,CAAC,+BAYjF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EventFlow Visualizer - Main exports
|
|
3
|
+
*/
|
|
4
|
+
export { EventFlowVisualizer } from './EventFlowVisualizer';
|
|
5
|
+
export type { EventFlowDisplaySettings, EventFlowVisualizerProps } from './EventFlowVisualizer';
|
|
6
|
+
export { default } from './EventFlowVisualizer';
|
|
7
|
+
export { ServiceMapVisualizer } from './ServiceMapVisualizer';
|
|
8
|
+
export type { ServiceMapVisualizerProps } from './ServiceMapVisualizer';
|
|
9
|
+
export type { DiagramDisplaySettings } from './labelFormatting';
|
|
10
|
+
export { humanizeLabel, humanizeMultilineLabel } from './labelFormatting';
|
|
11
|
+
export type { FlowNode, FlowEdge, FlowIR, } from './types/FlowViewModel';
|
|
12
|
+
export type { SourceRef, Point, Dimensions, FlowNodeView, FlowEdgeView, FlowBounds, FlowSystemGroupView, LayoutMetadata, FlowViewModel, } from './types/FlowViewModel';
|
|
13
|
+
export { FlowNodeType, FlowEdgeType, Direction, createFlowViewModel, } from './types/FlowViewModel';
|
|
14
|
+
export type { ServiceGroupView, ServiceNodeView, ServiceViewModel, } from './types/ServiceViewModel';
|
|
15
|
+
export { ServiceNodeType, createServiceViewModel, } from './types/ServiceViewModel';
|
|
16
|
+
export { StartNode } from './components/StartNode';
|
|
17
|
+
export type { StartNodeData } from './components/StartNode';
|
|
18
|
+
export { CommandNode } from './components/CommandNode';
|
|
19
|
+
export type { CommandNodeData } from './components/CommandNode';
|
|
20
|
+
export { EventNode } from './components/EventNode';
|
|
21
|
+
export type { EventNodeData } from './components/EventNode';
|
|
22
|
+
export { PolicyNode } from './components/PolicyNode';
|
|
23
|
+
export type { PolicyNodeData } from './components/PolicyNode';
|
|
24
|
+
export { EndNode } from './components/EndNode';
|
|
25
|
+
export type { EndNodeData } from './components/EndNode';
|
|
26
|
+
export { OutcomeNode } from './components/OutcomeNode';
|
|
27
|
+
export type { OutcomeNodeData } from './components/OutcomeNode';
|
|
28
|
+
export { CausationEdge } from './components/CausationEdge';
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,YAAY,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,GACP,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,SAAS,EACT,KAAK,EACL,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,eAAe,EACf,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
|