@principal-ade/dynamic-file-tree 0.2.4 → 0.2.6
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/index.mjs +101 -17
- package/dist/src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTree.stories.d.ts +8 -0
- package/dist/src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTree.stories.d.ts.map +1 -1
- package/dist/src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.d.ts.map +1 -1
- package/dist/src/components/StoryboardWorkflowsTree/types.d.ts +16 -3
- package/dist/src/components/StoryboardWorkflowsTree/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -1951,7 +1951,7 @@ var MultiFileTree = ({
|
|
|
1951
1951
|
}, "Selected: ", selectedFile.source.name, " / ", selectedFile.path));
|
|
1952
1952
|
};
|
|
1953
1953
|
// src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx
|
|
1954
|
-
import { Package, FolderKanban, LayoutDashboard, Workflow, BookOpen, FolderOpen, GitCommit, ExternalLink } from "lucide-react";
|
|
1954
|
+
import { Package, FolderKanban, LayoutDashboard, Workflow, BookOpen, FolderOpen, GitCommit, ExternalLink, List, ListX, Eye as Eye2, EyeOff as EyeOff2 } from "lucide-react";
|
|
1955
1955
|
import React13, { useMemo as useMemo9, useRef as useRef5, useState as useState7, useEffect as useEffect3 } from "react";
|
|
1956
1956
|
import { Tree as Tree3 } from "react-arborist";
|
|
1957
1957
|
|
|
@@ -2122,7 +2122,7 @@ var StatusBar = ({
|
|
|
2122
2122
|
};
|
|
2123
2123
|
|
|
2124
2124
|
// src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx
|
|
2125
|
-
var buildTreeDataFromStoryboards = (storyboards, workflowCoverageMap, traceWorkflowsSet, filterMode, versionPrefix, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap) => {
|
|
2125
|
+
var buildTreeDataFromStoryboards = (storyboards, workflowCoverageMap, traceWorkflowsSet, filterMode, versionPrefix, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap, scenarioTraceCounts, showScenarios) => {
|
|
2126
2126
|
const packagesMap = new Map;
|
|
2127
2127
|
const rootStoryboards = [];
|
|
2128
2128
|
for (const storyboard of storyboards) {
|
|
@@ -2166,6 +2166,33 @@ var buildTreeDataFromStoryboards = (storyboards, workflowCoverageMap, traceWorkf
|
|
|
2166
2166
|
const workflowNodeId = versionPrefix ? `workflow:${versionPrefix}:${workflow.id}` : `workflow:${workflow.id}`;
|
|
2167
2167
|
const workflowGitStatus = gitStatusMap ? lookupGitStatus(workflow.path, gitStatusMap) : null;
|
|
2168
2168
|
const scenarioStatus = scenarioStatusMap?.[workflow.id];
|
|
2169
|
+
let scenarioChildren;
|
|
2170
|
+
const workflowWithContent = workflow;
|
|
2171
|
+
if (showScenarios && workflowWithContent.content?.scenarios && workflowWithContent.content.scenarios.length > 0) {
|
|
2172
|
+
const outcomeOrder = { expected: 0, "expected-issue": 1, "unknown-issue": 2 };
|
|
2173
|
+
scenarioChildren = workflowWithContent.content.scenarios.map((scenario, index) => {
|
|
2174
|
+
const scenarioNodeId = versionPrefix ? `scenario:${versionPrefix}:${workflow.id}/${scenario.id}` : `scenario:${workflow.id}/${scenario.id}`;
|
|
2175
|
+
const traceCountKey = `${workflow.id}/${scenario.id}`;
|
|
2176
|
+
const traceCount = scenarioTraceCounts?.[traceCountKey] ?? 0;
|
|
2177
|
+
return {
|
|
2178
|
+
id: scenarioNodeId,
|
|
2179
|
+
name: scenario.description,
|
|
2180
|
+
type: "scenario",
|
|
2181
|
+
scenario,
|
|
2182
|
+
workflow,
|
|
2183
|
+
storyboard,
|
|
2184
|
+
traceCount,
|
|
2185
|
+
hasTraces: traceCount > 0,
|
|
2186
|
+
_originalIndex: index
|
|
2187
|
+
};
|
|
2188
|
+
}).sort((a, b) => {
|
|
2189
|
+
const aOrder = outcomeOrder[a.scenario?.outcomeType ?? "expected"];
|
|
2190
|
+
const bOrder = outcomeOrder[b.scenario?.outcomeType ?? "expected"];
|
|
2191
|
+
if (aOrder !== bOrder)
|
|
2192
|
+
return aOrder - bOrder;
|
|
2193
|
+
return (a._originalIndex ?? 0) - (b._originalIndex ?? 0);
|
|
2194
|
+
}).map(({ _originalIndex, ...node }) => node);
|
|
2195
|
+
}
|
|
2169
2196
|
return {
|
|
2170
2197
|
id: workflowNodeId,
|
|
2171
2198
|
name: workflow.name,
|
|
@@ -2175,7 +2202,8 @@ var buildTreeDataFromStoryboards = (storyboards, workflowCoverageMap, traceWorkf
|
|
|
2175
2202
|
isFullyCovered: workflowCoverageMap?.[workflow.id] ?? false,
|
|
2176
2203
|
hasTraces: workflowHasTraces,
|
|
2177
2204
|
gitStatus: workflowGitStatus,
|
|
2178
|
-
scenarioStatus
|
|
2205
|
+
scenarioStatus,
|
|
2206
|
+
children: scenarioChildren
|
|
2179
2207
|
};
|
|
2180
2208
|
}).sort((a, b) => a.name.localeCompare(b.name));
|
|
2181
2209
|
if (filterMode === "with-traces") {
|
|
@@ -2260,7 +2288,7 @@ var buildTreeDataFromStoryboards = (storyboards, workflowCoverageMap, traceWorkf
|
|
|
2260
2288
|
return allStoryboards.map(buildStoryboardNode).filter((node) => node !== null).sort((a, b) => a.name.localeCompare(b.name));
|
|
2261
2289
|
}
|
|
2262
2290
|
};
|
|
2263
|
-
var buildTreeDataFromVersions = (versionSnapshots, workflowCoverageMap, filterMode, traceWorkflowsSet, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap) => {
|
|
2291
|
+
var buildTreeDataFromVersions = (versionSnapshots, workflowCoverageMap, filterMode, traceWorkflowsSet, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap, scenarioTraceCounts, showScenarios) => {
|
|
2264
2292
|
const result = [];
|
|
2265
2293
|
const repoCountMap = new Map;
|
|
2266
2294
|
for (const snapshot of versionSnapshots) {
|
|
@@ -2277,7 +2305,7 @@ var buildTreeDataFromVersions = (versionSnapshots, workflowCoverageMap, filterMo
|
|
|
2277
2305
|
if (filterMode === "without-traces" && !versionHasUntracedWorkflows) {
|
|
2278
2306
|
continue;
|
|
2279
2307
|
}
|
|
2280
|
-
const storyboardChildren = buildTreeDataFromStoryboards(snapshot.storyboards, workflowCoverageMap, traceWorkflowsSet, filterMode, versionKey, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap);
|
|
2308
|
+
const storyboardChildren = buildTreeDataFromStoryboards(snapshot.storyboards, workflowCoverageMap, traceWorkflowsSet, filterMode, versionKey, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap, scenarioTraceCounts, showScenarios);
|
|
2281
2309
|
if (storyboardChildren.length === 0) {
|
|
2282
2310
|
continue;
|
|
2283
2311
|
}
|
|
@@ -2432,7 +2460,11 @@ var StoryboardWorkflowsTreeCore = ({
|
|
|
2432
2460
|
scenarioStatusMap,
|
|
2433
2461
|
canvasNodeStatusMap,
|
|
2434
2462
|
statusBarDisplay = "both",
|
|
2435
|
-
onVersionOpen
|
|
2463
|
+
onVersionOpen,
|
|
2464
|
+
scenarioTraceCounts,
|
|
2465
|
+
scenarioVisibilityMap,
|
|
2466
|
+
onScenarioVisibilityToggle,
|
|
2467
|
+
showScenarios = false
|
|
2436
2468
|
}) => {
|
|
2437
2469
|
const dndProps = getDndProps(enableDragAndDrop);
|
|
2438
2470
|
const parentDndManager = useParentDndManager();
|
|
@@ -2447,11 +2479,11 @@ var StoryboardWorkflowsTreeCore = ({
|
|
|
2447
2479
|
}, [verticalNodePadding]);
|
|
2448
2480
|
const treeData = useMemo9(() => {
|
|
2449
2481
|
if (versionSnapshots && versionSnapshots.length > 0) {
|
|
2450
|
-
return buildTreeDataFromVersions(versionSnapshots, workflowCoverageMap, workflowFilterMode, traceWorkflowsSet, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap);
|
|
2482
|
+
return buildTreeDataFromVersions(versionSnapshots, workflowCoverageMap, workflowFilterMode, traceWorkflowsSet, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap, scenarioTraceCounts, showScenarios);
|
|
2451
2483
|
} else {
|
|
2452
|
-
return buildTreeDataFromStoryboards(storyboards, workflowCoverageMap, traceWorkflowsSet, workflowFilterMode, undefined, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap);
|
|
2484
|
+
return buildTreeDataFromStoryboards(storyboards, workflowCoverageMap, traceWorkflowsSet, workflowFilterMode, undefined, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap, scenarioTraceCounts, showScenarios);
|
|
2453
2485
|
}
|
|
2454
|
-
}, [storyboards, versionSnapshots, workflowCoverageMap, traceWorkflowsSet, workflowFilterMode, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap]);
|
|
2486
|
+
}, [storyboards, versionSnapshots, workflowCoverageMap, traceWorkflowsSet, workflowFilterMode, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap, scenarioTraceCounts, showScenarios]);
|
|
2455
2487
|
const NodeRenderer = (props) => {
|
|
2456
2488
|
const { node } = props;
|
|
2457
2489
|
const data = node.data;
|
|
@@ -2467,11 +2499,15 @@ var StoryboardWorkflowsTreeCore = ({
|
|
|
2467
2499
|
size: 16
|
|
2468
2500
|
}) : data.type === "workflows" ? /* @__PURE__ */ React13.createElement(FolderOpen, {
|
|
2469
2501
|
size: 16
|
|
2502
|
+
}) : data.type === "scenario" ? data.scenario?.outcomeType === "expected-issue" || data.scenario?.outcomeType === "unknown-issue" ? /* @__PURE__ */ React13.createElement(ListX, {
|
|
2503
|
+
size: 16
|
|
2504
|
+
}) : /* @__PURE__ */ React13.createElement(List, {
|
|
2505
|
+
size: 16
|
|
2470
2506
|
}) : /* @__PURE__ */ React13.createElement(Workflow, {
|
|
2471
2507
|
size: 16
|
|
2472
2508
|
});
|
|
2473
|
-
const nameColor = data.type === "version" ? data.hasTraces ? "#a855f7" : theme.colors.textMuted : data.type === "package" ? theme.colors.primary : data.type === "storyboard" ? data.hasTraces ? theme.colors.success : theme.colors.textSecondary : data.type === "overview" ? theme.colors.info || "#3b82f6" : data.type === "canvas" ? theme.colors.warning || "#f59e0b" : data.type === "workflows" ? theme.colors.text : data.type === "workflow" ? data.hasTraces ? theme.colors.textSecondary : theme.colors.textMuted : theme.colors.textSecondary;
|
|
2474
|
-
const nodeHorizontalPadding = data.type === "overview" || data.type === "canvas" || data.type === "workflows" || data.type === "workflow" ? `calc(${horizontalNodePadding} + 12px)` : horizontalNodePadding;
|
|
2509
|
+
const nameColor = data.type === "version" ? data.hasTraces ? "#a855f7" : theme.colors.textMuted : data.type === "package" ? theme.colors.primary : data.type === "storyboard" ? data.hasTraces ? theme.colors.success : theme.colors.textSecondary : data.type === "overview" ? theme.colors.info || "#3b82f6" : data.type === "canvas" ? theme.colors.warning || "#f59e0b" : data.type === "workflows" ? theme.colors.text : data.type === "workflow" ? data.hasTraces ? theme.colors.textSecondary : theme.colors.textMuted : data.type === "scenario" ? data.hasTraces ? theme.colors.textSecondary : theme.colors.textMuted : theme.colors.textSecondary;
|
|
2510
|
+
const nodeHorizontalPadding = data.type === "overview" || data.type === "canvas" || data.type === "workflows" || data.type === "workflow" || data.type === "scenario" ? `calc(${horizontalNodePadding} + 12px)` : horizontalNodePadding;
|
|
2475
2511
|
const rightContent = (() => {
|
|
2476
2512
|
const indicators = [];
|
|
2477
2513
|
if (data.type === "storyboard" && data.storyboard && scenarioStatusMap && (statusBarDisplay === "traces" || statusBarDisplay === "both")) {
|
|
@@ -2550,6 +2586,54 @@ var StoryboardWorkflowsTreeCore = ({
|
|
|
2550
2586
|
}
|
|
2551
2587
|
}
|
|
2552
2588
|
}
|
|
2589
|
+
if (data.type === "scenario") {
|
|
2590
|
+
if (data.traceCount !== undefined) {
|
|
2591
|
+
indicators.push(/* @__PURE__ */ React13.createElement("span", {
|
|
2592
|
+
key: "trace-count",
|
|
2593
|
+
style: {
|
|
2594
|
+
marginLeft: "6px",
|
|
2595
|
+
fontSize: "11px",
|
|
2596
|
+
color: data.traceCount > 0 ? "#3b82f6" : theme.colors.textMuted
|
|
2597
|
+
}
|
|
2598
|
+
}, data.traceCount));
|
|
2599
|
+
}
|
|
2600
|
+
if (onScenarioVisibilityToggle && data.scenario) {
|
|
2601
|
+
const scenarioKey = `${data.workflow?.id}/${data.scenario.id}`;
|
|
2602
|
+
const isVisible = scenarioVisibilityMap?.[scenarioKey] ?? !(data.scenario.filterDefault ?? false);
|
|
2603
|
+
const EyeIcon = isVisible ? Eye2 : EyeOff2;
|
|
2604
|
+
indicators.push(/* @__PURE__ */ React13.createElement("button", {
|
|
2605
|
+
key: "visibility-toggle",
|
|
2606
|
+
onClick: (e) => {
|
|
2607
|
+
e.stopPropagation();
|
|
2608
|
+
onScenarioVisibilityToggle(scenarioKey, !isVisible);
|
|
2609
|
+
},
|
|
2610
|
+
style: {
|
|
2611
|
+
display: "flex",
|
|
2612
|
+
alignItems: "center",
|
|
2613
|
+
justifyContent: "center",
|
|
2614
|
+
marginLeft: "6px",
|
|
2615
|
+
padding: "2px",
|
|
2616
|
+
background: "transparent",
|
|
2617
|
+
border: "none",
|
|
2618
|
+
cursor: "pointer",
|
|
2619
|
+
color: isVisible ? theme.colors.textMuted : theme.colors.textMuted,
|
|
2620
|
+
opacity: isVisible ? 1 : 0.5,
|
|
2621
|
+
borderRadius: "4px"
|
|
2622
|
+
},
|
|
2623
|
+
onMouseEnter: (e) => {
|
|
2624
|
+
e.currentTarget.style.color = theme.colors.text;
|
|
2625
|
+
e.currentTarget.style.background = theme.colors.backgroundHover || "rgba(255,255,255,0.1)";
|
|
2626
|
+
},
|
|
2627
|
+
onMouseLeave: (e) => {
|
|
2628
|
+
e.currentTarget.style.color = theme.colors.textMuted;
|
|
2629
|
+
e.currentTarget.style.background = "transparent";
|
|
2630
|
+
},
|
|
2631
|
+
title: isVisible ? "Hide scenario" : "Show scenario"
|
|
2632
|
+
}, /* @__PURE__ */ React13.createElement(EyeIcon, {
|
|
2633
|
+
size: 14
|
|
2634
|
+
})));
|
|
2635
|
+
}
|
|
2636
|
+
}
|
|
2553
2637
|
if (data.gitStatus && (data.type === "canvas" || data.type === "overview" || data.type === "workflow")) {
|
|
2554
2638
|
const gitDisplay = getGitStatusDisplay3(data.gitStatus, theme);
|
|
2555
2639
|
if (gitDisplay) {
|
|
@@ -2619,7 +2703,7 @@ var StoryboardWorkflowsTreeCore = ({
|
|
|
2619
2703
|
return;
|
|
2620
2704
|
}
|
|
2621
2705
|
lastSelectionRef.current = { nodeId: nodeData.id, timestamp: now };
|
|
2622
|
-
if (nodeData.type === "overview" || nodeData.type === "canvas" || nodeData.type === "workflow") {
|
|
2706
|
+
if (nodeData.type === "overview" || nodeData.type === "canvas" || nodeData.type === "workflow" || nodeData.type === "scenario") {
|
|
2623
2707
|
onClick(nodeData);
|
|
2624
2708
|
}
|
|
2625
2709
|
};
|
|
@@ -2673,7 +2757,7 @@ function hasWorkflowContent(node) {
|
|
|
2673
2757
|
return node.workflow !== undefined && "content" in node.workflow && node.workflow.content !== undefined;
|
|
2674
2758
|
}
|
|
2675
2759
|
// src/components/WorkflowScenarioTree/WorkflowScenarioTreeCore.tsx
|
|
2676
|
-
import { Package as Package2, Workflow as Workflow2, GitCommit as GitCommit2, ListChecks, List } from "lucide-react";
|
|
2760
|
+
import { Package as Package2, Workflow as Workflow2, GitCommit as GitCommit2, ListChecks, List as List2 } from "lucide-react";
|
|
2677
2761
|
import React14, { useMemo as useMemo10 } from "react";
|
|
2678
2762
|
import { Tree as Tree4 } from "react-arborist";
|
|
2679
2763
|
var buildTreeDataFromWorkflows = (workflows, workflowTraceCounts, scenarioTraceCounts, filterMode, minTraceCount) => {
|
|
@@ -2848,7 +2932,7 @@ var WorkflowScenarioTreeCore = ({
|
|
|
2848
2932
|
size: 16
|
|
2849
2933
|
}) : data.type === "scenario" ? data.hasTraces ? /* @__PURE__ */ React14.createElement(ListChecks, {
|
|
2850
2934
|
size: 16
|
|
2851
|
-
}) : /* @__PURE__ */ React14.createElement(
|
|
2935
|
+
}) : /* @__PURE__ */ React14.createElement(List2, {
|
|
2852
2936
|
size: 16
|
|
2853
2937
|
}) : null;
|
|
2854
2938
|
const nameColor = data.type === "version" ? data.hasTraces ? "#a855f7" : theme.colors.textMuted : data.type === "package" ? theme.colors.primary : data.type === "workflow" ? data.hasTraces ? theme.colors.success : theme.colors.textSecondary : data.hasTraces ? theme.colors.secondary : theme.colors.textMuted;
|
|
@@ -3707,7 +3791,7 @@ var calculateTelemetryCoverageStats = (coverageData) => {
|
|
|
3707
3791
|
};
|
|
3708
3792
|
};
|
|
3709
3793
|
// src/components/TelemetryCoverageFileTreeContainer.tsx
|
|
3710
|
-
import { RefreshCw as RefreshCw2, Eye as
|
|
3794
|
+
import { RefreshCw as RefreshCw2, Eye as Eye3, EyeOff as EyeOff3, AlertCircle as AlertCircle5, Activity as Activity2 } from "lucide-react";
|
|
3711
3795
|
import React18, { useState as useState9, useMemo as useMemo14 } from "react";
|
|
3712
3796
|
var TelemetryCoverageFileTreeContainer = ({
|
|
3713
3797
|
fileTree,
|
|
@@ -3800,9 +3884,9 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
3800
3884
|
color: theme.colors.text
|
|
3801
3885
|
},
|
|
3802
3886
|
title: showUncoveredFiles ? "Show only covered files" : "Show all test files"
|
|
3803
|
-
}, showUncoveredFiles ? /* @__PURE__ */ React18.createElement(
|
|
3887
|
+
}, showUncoveredFiles ? /* @__PURE__ */ React18.createElement(EyeOff3, {
|
|
3804
3888
|
size: 14
|
|
3805
|
-
}) : /* @__PURE__ */ React18.createElement(
|
|
3889
|
+
}) : /* @__PURE__ */ React18.createElement(Eye3, {
|
|
3806
3890
|
size: 14
|
|
3807
3891
|
}), showUncoveredFiles ? "Hide uncovered" : "Show all"), onRefresh && /* @__PURE__ */ React18.createElement("button", {
|
|
3808
3892
|
onClick: handleRefresh,
|
|
@@ -32,4 +32,12 @@ export declare const GitStatusWithVersionGrouping: Story;
|
|
|
32
32
|
export declare const GitStatusMixedScenarios: Story;
|
|
33
33
|
export declare const DragAndDropTest: Story;
|
|
34
34
|
export declare const WithStatusBars: Story;
|
|
35
|
+
/**
|
|
36
|
+
* Workflows with Scenarios
|
|
37
|
+
*
|
|
38
|
+
* When workflows have content with scenarios (DiscoveredWorkflowWithContent),
|
|
39
|
+
* the scenarios are shown as expandable children under the workflow node.
|
|
40
|
+
* Each scenario displays its description and trace count.
|
|
41
|
+
*/
|
|
42
|
+
export declare const WorkflowsWithScenarios: Story;
|
|
35
43
|
//# sourceMappingURL=StoryboardWorkflowsTree.stories.d.ts.map
|
package/dist/src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTree.stories.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoryboardWorkflowsTree.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTree.stories.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAyP5E,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,2BAA2B,CAOlD,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE1D,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAuE7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KAkEpC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAgE7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAwB/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAiBlC,CAAC;AA4CF,eAAO,MAAM,eAAe,EAAE,KAe7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAqEvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAyFvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAiH9B,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KA2GzC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KAyEzC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,KAwF3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KA0H/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,KAwF1C,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAuIrC,CAAC;AAMF,eAAO,MAAM,eAAe,EAAE,KAqK7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAoH5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"StoryboardWorkflowsTree.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTree.stories.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAyP5E,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,2BAA2B,CAOlD,CAAC;AAEF,eAAe,IAAI,CAAC;AACpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAE1D,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAQ3B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAO3B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAOzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAOhC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAOxB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAuE7B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KAkEpC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAgE7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAwB/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAiBlC,CAAC;AA4CF,eAAO,MAAM,eAAe,EAAE,KAe7B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAqEvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,KAyFvC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAiH9B,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KA2GzC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KAyEzC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,KAwF3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KA0H/B,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,KAwF1C,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAuIrC,CAAC;AAMF,eAAO,MAAM,eAAe,EAAE,KAqK7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAoH5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,KA0JpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoryboardWorkflowsTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AASpE,OAAO,KAAK,EAEV,4BAA4B,
|
|
1
|
+
{"version":3,"file":"StoryboardWorkflowsTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AASpE,OAAO,KAAK,EAEV,4BAA4B,EAQ7B,MAAM,SAAS,CAAC;AA0bjB,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CA0c9E,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Theme } from '@principal-ade/industry-theme';
|
|
2
|
-
import type { DiscoveredStoryboard, DiscoveredCanvas, DiscoveredWorkflow, DiscoveredWorkflowWithContent, WorkflowTemplate, VersionSnapshot } from '@principal-ai/principal-view-core';
|
|
2
|
+
import type { DiscoveredStoryboard, DiscoveredCanvas, DiscoveredWorkflow, DiscoveredWorkflowWithContent, WorkflowTemplate, WorkflowScenario, ScenarioOutcomeType, VersionSnapshot } from '@principal-ai/principal-view-core';
|
|
3
3
|
import type { GitFileStatus, GitStatus } from '../../utils/gitStatus';
|
|
4
4
|
import type { TreeNodeData, DragConfig } from '../TreeNode';
|
|
5
|
-
export type { DiscoveredStoryboard, DiscoveredCanvas, DiscoveredWorkflow, DiscoveredWorkflowWithContent, WorkflowTemplate, VersionSnapshot };
|
|
6
|
-
export type StoryboardWorkflowNodeType = 'version' | 'package' | 'storyboard' | 'overview' | 'canvas' | 'workflows' | 'workflow';
|
|
5
|
+
export type { DiscoveredStoryboard, DiscoveredCanvas, DiscoveredWorkflow, DiscoveredWorkflowWithContent, WorkflowTemplate, WorkflowScenario, ScenarioOutcomeType, VersionSnapshot };
|
|
6
|
+
export type StoryboardWorkflowNodeType = 'version' | 'package' | 'storyboard' | 'overview' | 'canvas' | 'workflows' | 'workflow' | 'scenario';
|
|
7
7
|
/**
|
|
8
8
|
* Storyboard filter mode for filtering workflows by trace status
|
|
9
9
|
* - 'all': Show all workflows (default)
|
|
@@ -47,6 +47,8 @@ export interface StoryboardWorkflowNodeData extends TreeNodeData {
|
|
|
47
47
|
storyboard?: DiscoveredStoryboard;
|
|
48
48
|
canvas?: DiscoveredCanvas;
|
|
49
49
|
workflow?: DiscoveredWorkflow | DiscoveredWorkflowWithContent;
|
|
50
|
+
scenario?: WorkflowScenario;
|
|
51
|
+
traceCount?: number;
|
|
50
52
|
packageName?: string;
|
|
51
53
|
scope?: 'package' | 'root';
|
|
52
54
|
markdownPath?: string;
|
|
@@ -101,6 +103,12 @@ export interface StoryboardWorkflowsTreeProps {
|
|
|
101
103
|
canvasNodeStatusMap?: Record<string, CanvasNodeStatus>;
|
|
102
104
|
/** Which status bars to display: 'implementation', 'traces', or 'both' (default: 'both') */
|
|
103
105
|
statusBarDisplay?: StatusBarDisplay;
|
|
106
|
+
/** Map of scenario ID to trace count (format: "workflowId/scenarioId") */
|
|
107
|
+
scenarioTraceCounts?: Record<string, number>;
|
|
108
|
+
/** Map of scenario ID to visibility state (format: "workflowId/scenarioId"). True = visible (eye open), false = hidden (eye closed) */
|
|
109
|
+
scenarioVisibilityMap?: Record<string, boolean>;
|
|
110
|
+
/** Callback when scenario visibility is toggled */
|
|
111
|
+
onScenarioVisibilityToggle?: (scenarioId: string, isVisible: boolean) => void;
|
|
104
112
|
/**
|
|
105
113
|
* Enable dragging nodes to other panels (e.g., terminal).
|
|
106
114
|
* When enabled, nodes will transfer their path/data using the panel-framework-core format.
|
|
@@ -117,5 +125,10 @@ export interface StoryboardWorkflowsTreeProps {
|
|
|
117
125
|
* @param versionSnapshot - The version snapshot data for the clicked node
|
|
118
126
|
*/
|
|
119
127
|
onVersionOpen?: (versionSnapshot: VersionSnapshot) => void;
|
|
128
|
+
/**
|
|
129
|
+
* Whether to show scenario nodes under workflows (default: false).
|
|
130
|
+
* Set to true to display scenario nodes under workflow nodes.
|
|
131
|
+
*/
|
|
132
|
+
showScenarios?: boolean;
|
|
120
133
|
}
|
|
121
134
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAE7N,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG5D,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,6BAA6B,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC;AAEpL,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAC;AAE9I;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,KAAK,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAE5E;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,0CAA0C;IAC1C,SAAS,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,OAAO,CAAC;QAClB,sDAAsD;QACtD,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;KAC5D,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,0BAA2B,SAAQ,YAAY;IAC9D,IAAI,EAAE,0BAA0B,CAAC;IACjC,QAAQ,CAAC,EAAE,0BAA0B,EAAE,CAAC;IAGxC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAI1B,QAAQ,CAAC,EAAE,kBAAkB,GAAG,6BAA6B,CAAC;IAG9D,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,SAAS,CAAC,EAAE,SAAS,CAAC;IAGtB,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACxC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,0BAA0B,GAC/B,IAAI,IAAI,0BAA0B,GAAG;IAAE,QAAQ,EAAE,6BAA6B,CAAA;CAAE,CAMlF;AAED,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,IAAI,CAAC;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG9C,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC,kBAAkB,CAAC,EAAE,oBAAoB,CAAC;IAC1C,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAGhC,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAGhC,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC3D,6FAA6F;IAC7F,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACvD,4FAA4F;IAC5F,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAGpC,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG7C,uIAAuI;IACvI,qBAAqB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,mDAAmD;IACnD,0BAA0B,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAG9E;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,0BAA0B,KAAK,UAAU,GAAG,SAAS,CAAC;IAE7E;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,eAAe,EAAE,eAAe,KAAK,IAAI,CAAC;IAE3D;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@principal-ade/dynamic-file-tree",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "React component for selective directory filtering and file tree visualization",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.mjs",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"@principal-ade/industry-theme": "^0.1.8",
|
|
82
82
|
"@principal-ade/panel-framework-core": "^0.5.1",
|
|
83
83
|
"@principal-ai/alexandria-core-library": "^0.3.3",
|
|
84
|
-
"@principal-ai/principal-view-core": "
|
|
84
|
+
"@principal-ai/principal-view-core": "0.24.58",
|
|
85
85
|
"@principal-ai/repository-abstraction": "^0.5.7",
|
|
86
86
|
"@storybook/addon-docs": "^10.2.14",
|
|
87
87
|
"@storybook/addon-onboarding": "^10.2.14",
|