@principal-ade/dynamic-file-tree 0.2.2 → 0.2.4
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 +99 -25
- package/dist/src/components/CanvasListTree/CanvasListTreeCore.d.ts.map +1 -1
- package/dist/src/components/CanvasListTree/types.d.ts +13 -0
- package/dist/src/components/CanvasListTree/types.d.ts.map +1 -1
- package/dist/src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.d.ts.map +1 -1
- package/dist/src/components/StoryboardWorkflowsTree/types.d.ts +18 -0
- package/dist/src/components/StoryboardWorkflowsTree/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1951,8 +1951,8 @@ 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,
|
|
1955
|
-
import React13, { useMemo as useMemo9, useRef as useRef5 } from "react";
|
|
1954
|
+
import { Package, FolderKanban, LayoutDashboard, Workflow, BookOpen, FolderOpen, GitCommit, ExternalLink } from "lucide-react";
|
|
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
|
|
|
1958
1958
|
// src/utils/gitStatus.tsx
|
|
@@ -2262,6 +2262,11 @@ var buildTreeDataFromStoryboards = (storyboards, workflowCoverageMap, traceWorkf
|
|
|
2262
2262
|
};
|
|
2263
2263
|
var buildTreeDataFromVersions = (versionSnapshots, workflowCoverageMap, filterMode, traceWorkflowsSet, gitStatusMap, scenarioStatusMap, canvasNodeStatusMap) => {
|
|
2264
2264
|
const result = [];
|
|
2265
|
+
const repoCountMap = new Map;
|
|
2266
|
+
for (const snapshot of versionSnapshots) {
|
|
2267
|
+
const count = repoCountMap.get(snapshot.repositoryUrl) || 0;
|
|
2268
|
+
repoCountMap.set(snapshot.repositoryUrl, count + 1);
|
|
2269
|
+
}
|
|
2265
2270
|
for (const snapshot of versionSnapshots) {
|
|
2266
2271
|
const versionKey = `${snapshot.repositoryUrl}@${snapshot.commitSha}`;
|
|
2267
2272
|
const versionHasTracedWorkflows = snapshot.storyboards.some((storyboard) => storyboard.workflows.some((workflow) => traceWorkflowsSet?.has(workflow.id) ?? false));
|
|
@@ -2278,9 +2283,10 @@ var buildTreeDataFromVersions = (versionSnapshots, workflowCoverageMap, filterMo
|
|
|
2278
2283
|
}
|
|
2279
2284
|
const repoName = snapshot.repositoryUrl.replace("https://github.com/", "");
|
|
2280
2285
|
const shortSha = snapshot.commitSha.substring(0, 8);
|
|
2286
|
+
const hasMultipleVersions = (repoCountMap.get(snapshot.repositoryUrl) || 0) > 1;
|
|
2281
2287
|
result.push({
|
|
2282
2288
|
id: `version:${versionKey}`,
|
|
2283
|
-
name: `${repoName}@${shortSha}
|
|
2289
|
+
name: hasMultipleVersions ? `${repoName}@${shortSha}` : repoName,
|
|
2284
2290
|
type: "version",
|
|
2285
2291
|
versionSnapshot: snapshot,
|
|
2286
2292
|
repositoryUrl: snapshot.repositoryUrl,
|
|
@@ -2410,6 +2416,8 @@ var StoryboardWorkflowsTreeCore = ({
|
|
|
2410
2416
|
selectedNodeId,
|
|
2411
2417
|
defaultOpen = false,
|
|
2412
2418
|
initialOpenState,
|
|
2419
|
+
openState,
|
|
2420
|
+
onToggle,
|
|
2413
2421
|
horizontalNodePadding = "16px",
|
|
2414
2422
|
verticalNodePadding = "6px",
|
|
2415
2423
|
verticalPadding = "20px",
|
|
@@ -2423,7 +2431,8 @@ var StoryboardWorkflowsTreeCore = ({
|
|
|
2423
2431
|
getDragConfig,
|
|
2424
2432
|
scenarioStatusMap,
|
|
2425
2433
|
canvasNodeStatusMap,
|
|
2426
|
-
statusBarDisplay = "both"
|
|
2434
|
+
statusBarDisplay = "both",
|
|
2435
|
+
onVersionOpen
|
|
2427
2436
|
}) => {
|
|
2428
2437
|
const dndProps = getDndProps(enableDragAndDrop);
|
|
2429
2438
|
const parentDndManager = useParentDndManager();
|
|
@@ -2550,16 +2559,37 @@ var StoryboardWorkflowsTreeCore = ({
|
|
|
2550
2559
|
}, gitDisplay.icon));
|
|
2551
2560
|
}
|
|
2552
2561
|
}
|
|
2553
|
-
if (data.type === "version" && data.
|
|
2554
|
-
indicators.push(
|
|
2555
|
-
key: "
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2562
|
+
if (data.type === "version" && data.versionSnapshot && onVersionOpen) {
|
|
2563
|
+
indicators.push(/* @__PURE__ */ React13.createElement("button", {
|
|
2564
|
+
key: "open",
|
|
2565
|
+
onClick: (e) => {
|
|
2566
|
+
e.stopPropagation();
|
|
2567
|
+
onVersionOpen(data.versionSnapshot);
|
|
2568
|
+
},
|
|
2569
|
+
style: {
|
|
2570
|
+
display: "flex",
|
|
2571
|
+
alignItems: "center",
|
|
2572
|
+
justifyContent: "center",
|
|
2573
|
+
marginLeft: "6px",
|
|
2574
|
+
padding: "2px",
|
|
2575
|
+
background: "transparent",
|
|
2576
|
+
border: "none",
|
|
2577
|
+
cursor: "pointer",
|
|
2578
|
+
color: theme.colors.textMuted,
|
|
2579
|
+
borderRadius: "4px"
|
|
2580
|
+
},
|
|
2581
|
+
onMouseEnter: (e) => {
|
|
2582
|
+
e.currentTarget.style.color = theme.colors.text;
|
|
2583
|
+
e.currentTarget.style.background = theme.colors.backgroundHover || "rgba(255,255,255,0.1)";
|
|
2584
|
+
},
|
|
2585
|
+
onMouseLeave: (e) => {
|
|
2586
|
+
e.currentTarget.style.color = theme.colors.textMuted;
|
|
2587
|
+
e.currentTarget.style.background = "transparent";
|
|
2588
|
+
},
|
|
2589
|
+
title: "Open version"
|
|
2590
|
+
}, /* @__PURE__ */ React13.createElement(ExternalLink, {
|
|
2591
|
+
size: 14
|
|
2592
|
+
})));
|
|
2563
2593
|
}
|
|
2564
2594
|
return indicators.length > 0 ? /* @__PURE__ */ React13.createElement("div", {
|
|
2565
2595
|
style: { display: "flex", alignItems: "center" }
|
|
@@ -2595,6 +2625,24 @@ var StoryboardWorkflowsTreeCore = ({
|
|
|
2595
2625
|
};
|
|
2596
2626
|
const initialHeight = 600;
|
|
2597
2627
|
const [containerRef, containerHeight] = useContainerHeight(initialHeight);
|
|
2628
|
+
const treeRef = useRef5(null);
|
|
2629
|
+
const [treeKey, setTreeKey] = useState7(0);
|
|
2630
|
+
const prevOpenStateRef = useRef5(openState);
|
|
2631
|
+
useEffect3(() => {
|
|
2632
|
+
if (openState !== undefined && openState !== prevOpenStateRef.current) {
|
|
2633
|
+
prevOpenStateRef.current = openState;
|
|
2634
|
+
setTreeKey((k) => k + 1);
|
|
2635
|
+
}
|
|
2636
|
+
}, [openState]);
|
|
2637
|
+
const handleToggle = (id) => {
|
|
2638
|
+
if (onToggle && treeRef.current) {
|
|
2639
|
+
const node = treeRef.current.get(id);
|
|
2640
|
+
if (node) {
|
|
2641
|
+
onToggle(id, node.isOpen);
|
|
2642
|
+
}
|
|
2643
|
+
}
|
|
2644
|
+
};
|
|
2645
|
+
const effectiveInitialOpenState = openState ?? initialOpenState;
|
|
2598
2646
|
return /* @__PURE__ */ React13.createElement("div", {
|
|
2599
2647
|
ref: containerRef,
|
|
2600
2648
|
style: {
|
|
@@ -2605,11 +2653,14 @@ var StoryboardWorkflowsTreeCore = ({
|
|
|
2605
2653
|
...verticalPadding ? { paddingTop: verticalPadding, paddingBottom: verticalPadding } : {}
|
|
2606
2654
|
}
|
|
2607
2655
|
}, /* @__PURE__ */ React13.createElement(Tree3, {
|
|
2656
|
+
key: treeKey,
|
|
2657
|
+
ref: treeRef,
|
|
2608
2658
|
data: treeData,
|
|
2609
2659
|
onSelect: handleSelect,
|
|
2610
2660
|
openByDefault: defaultOpen,
|
|
2611
|
-
...
|
|
2661
|
+
...effectiveInitialOpenState !== undefined && { initialOpenState: effectiveInitialOpenState },
|
|
2612
2662
|
...selectedNodeId !== undefined && { selection: selectedNodeId },
|
|
2663
|
+
...onToggle !== undefined && { onToggle: handleToggle },
|
|
2613
2664
|
width: "100%",
|
|
2614
2665
|
height: containerHeight,
|
|
2615
2666
|
rowHeight,
|
|
@@ -2854,7 +2905,7 @@ var WorkflowScenarioTreeCore = ({
|
|
|
2854
2905
|
};
|
|
2855
2906
|
// src/components/CanvasListTree/CanvasListTreeCore.tsx
|
|
2856
2907
|
import { Package as Package3, Folder, LayoutDashboard as LayoutDashboard2, FileText } from "lucide-react";
|
|
2857
|
-
import React15, { useMemo as useMemo11, useRef as useRef6 } from "react";
|
|
2908
|
+
import React15, { useMemo as useMemo11, useRef as useRef6, useState as useState8, useEffect as useEffect4 } from "react";
|
|
2858
2909
|
import { Tree as Tree5 } from "react-arborist";
|
|
2859
2910
|
var buildTreeData = (canvases, gitStatusMap) => {
|
|
2860
2911
|
const packagesMap = new Map;
|
|
@@ -3032,6 +3083,8 @@ var CanvasListTreeCore = ({
|
|
|
3032
3083
|
selectedNodeId,
|
|
3033
3084
|
defaultOpen = false,
|
|
3034
3085
|
initialOpenState,
|
|
3086
|
+
openState,
|
|
3087
|
+
onToggle,
|
|
3035
3088
|
horizontalNodePadding = "16px",
|
|
3036
3089
|
verticalNodePadding = "6px",
|
|
3037
3090
|
verticalPadding = "20px",
|
|
@@ -3107,6 +3160,24 @@ var CanvasListTreeCore = ({
|
|
|
3107
3160
|
};
|
|
3108
3161
|
const initialHeight = 600;
|
|
3109
3162
|
const [containerRef, containerHeight] = useContainerHeight(initialHeight);
|
|
3163
|
+
const treeRef = useRef6(null);
|
|
3164
|
+
const [treeKey, setTreeKey] = useState8(0);
|
|
3165
|
+
const prevOpenStateRef = useRef6(openState);
|
|
3166
|
+
useEffect4(() => {
|
|
3167
|
+
if (openState !== undefined && openState !== prevOpenStateRef.current) {
|
|
3168
|
+
prevOpenStateRef.current = openState;
|
|
3169
|
+
setTreeKey((k) => k + 1);
|
|
3170
|
+
}
|
|
3171
|
+
}, [openState]);
|
|
3172
|
+
const handleToggle = (id) => {
|
|
3173
|
+
if (onToggle && treeRef.current) {
|
|
3174
|
+
const node = treeRef.current.get(id);
|
|
3175
|
+
if (node) {
|
|
3176
|
+
onToggle(id, node.isOpen);
|
|
3177
|
+
}
|
|
3178
|
+
}
|
|
3179
|
+
};
|
|
3180
|
+
const effectiveInitialOpenState = openState ?? initialOpenState;
|
|
3110
3181
|
return /* @__PURE__ */ React15.createElement("div", {
|
|
3111
3182
|
ref: containerRef,
|
|
3112
3183
|
style: {
|
|
@@ -3117,11 +3188,14 @@ var CanvasListTreeCore = ({
|
|
|
3117
3188
|
...verticalPadding ? { paddingTop: verticalPadding, paddingBottom: verticalPadding } : {}
|
|
3118
3189
|
}
|
|
3119
3190
|
}, /* @__PURE__ */ React15.createElement(Tree5, {
|
|
3191
|
+
key: treeKey,
|
|
3192
|
+
ref: treeRef,
|
|
3120
3193
|
initialData: treeData,
|
|
3121
3194
|
onSelect: handleSelect,
|
|
3122
3195
|
openByDefault: defaultOpen,
|
|
3123
|
-
...
|
|
3196
|
+
...effectiveInitialOpenState !== undefined && { initialOpenState: effectiveInitialOpenState },
|
|
3124
3197
|
...selectedNodeId !== undefined && { selection: selectedNodeId },
|
|
3198
|
+
...onToggle !== undefined && { onToggle: handleToggle },
|
|
3125
3199
|
width: "100%",
|
|
3126
3200
|
height: containerHeight,
|
|
3127
3201
|
rowHeight,
|
|
@@ -3324,8 +3398,8 @@ var RepositoryTreeCore = ({
|
|
|
3324
3398
|
// src/components/TelemetryCoverageFileTree.tsx
|
|
3325
3399
|
import {
|
|
3326
3400
|
Activity,
|
|
3327
|
-
CircleDot
|
|
3328
|
-
Circle
|
|
3401
|
+
CircleDot,
|
|
3402
|
+
Circle,
|
|
3329
3403
|
TestTube
|
|
3330
3404
|
} from "lucide-react";
|
|
3331
3405
|
import React17, { useMemo as useMemo13, useRef as useRef7 } from "react";
|
|
@@ -3356,7 +3430,7 @@ var getCoverageStatusDisplay = (coverage, _theme) => {
|
|
|
3356
3430
|
};
|
|
3357
3431
|
case "partial":
|
|
3358
3432
|
return {
|
|
3359
|
-
icon: /* @__PURE__ */ React17.createElement(
|
|
3433
|
+
icon: /* @__PURE__ */ React17.createElement(CircleDot, {
|
|
3360
3434
|
size: 14
|
|
3361
3435
|
}),
|
|
3362
3436
|
color: "#eab308",
|
|
@@ -3365,7 +3439,7 @@ var getCoverageStatusDisplay = (coverage, _theme) => {
|
|
|
3365
3439
|
};
|
|
3366
3440
|
case "none":
|
|
3367
3441
|
return {
|
|
3368
|
-
icon: /* @__PURE__ */ React17.createElement(
|
|
3442
|
+
icon: /* @__PURE__ */ React17.createElement(Circle, {
|
|
3369
3443
|
size: 14
|
|
3370
3444
|
}),
|
|
3371
3445
|
color: "#6b7280",
|
|
@@ -3517,7 +3591,7 @@ var TelemetryCoverageFileTree = ({
|
|
|
3517
3591
|
opacity: 0.5
|
|
3518
3592
|
},
|
|
3519
3593
|
title: "No telemetry instrumentation"
|
|
3520
|
-
}, /* @__PURE__ */ React17.createElement(
|
|
3594
|
+
}, /* @__PURE__ */ React17.createElement(Circle, {
|
|
3521
3595
|
size: 14
|
|
3522
3596
|
})) : null;
|
|
3523
3597
|
return /* @__PURE__ */ React17.createElement(TreeNode, {
|
|
@@ -3634,7 +3708,7 @@ var calculateTelemetryCoverageStats = (coverageData) => {
|
|
|
3634
3708
|
};
|
|
3635
3709
|
// src/components/TelemetryCoverageFileTreeContainer.tsx
|
|
3636
3710
|
import { RefreshCw as RefreshCw2, Eye as Eye2, EyeOff as EyeOff2, AlertCircle as AlertCircle5, Activity as Activity2 } from "lucide-react";
|
|
3637
|
-
import React18, { useState as
|
|
3711
|
+
import React18, { useState as useState9, useMemo as useMemo14 } from "react";
|
|
3638
3712
|
var TelemetryCoverageFileTreeContainer = ({
|
|
3639
3713
|
fileTree,
|
|
3640
3714
|
theme,
|
|
@@ -3654,8 +3728,8 @@ var TelemetryCoverageFileTreeContainer = ({
|
|
|
3654
3728
|
verticalNodePadding,
|
|
3655
3729
|
verticalPadding
|
|
3656
3730
|
}) => {
|
|
3657
|
-
const [filters, setFilters] =
|
|
3658
|
-
const [showUncoveredFiles, setShowUncoveredFiles] =
|
|
3731
|
+
const [filters, setFilters] = useState9([]);
|
|
3732
|
+
const [showUncoveredFiles, setShowUncoveredFiles] = useState9(true);
|
|
3659
3733
|
const selectedDirectories = useMemo14(() => {
|
|
3660
3734
|
return filters.filter((f) => f.mode === "include").map((f) => f.path);
|
|
3661
3735
|
}, [filters]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CanvasListTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/CanvasListTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"CanvasListTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/CanvasListTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAQpE,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAuNjB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA0M5D,CAAC"}
|
|
@@ -20,6 +20,19 @@ export interface CanvasListTreeProps {
|
|
|
20
20
|
selectedNodeId?: string;
|
|
21
21
|
defaultOpen?: boolean;
|
|
22
22
|
initialOpenState?: Record<string, boolean>;
|
|
23
|
+
/**
|
|
24
|
+
* Controlled open state for tree nodes. When provided, the tree becomes controlled.
|
|
25
|
+
* Keys are node IDs, values are boolean (true = open, false = closed).
|
|
26
|
+
* Use with onToggle to handle state changes.
|
|
27
|
+
*/
|
|
28
|
+
openState?: Record<string, boolean>;
|
|
29
|
+
/**
|
|
30
|
+
* Callback fired when a node is toggled open/closed.
|
|
31
|
+
* Use with openState for controlled mode.
|
|
32
|
+
* @param nodeId - The ID of the toggled node
|
|
33
|
+
* @param isOpen - Whether the node is now open
|
|
34
|
+
*/
|
|
35
|
+
onToggle?: (nodeId: string, isOpen: boolean) => void;
|
|
23
36
|
horizontalNodePadding?: string;
|
|
24
37
|
verticalNodePadding?: string;
|
|
25
38
|
verticalPadding?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG5D,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAErF,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAGhC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAG5B,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAGhC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,UAAU,GAAG,SAAS,CAAC;CACtE"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/CanvasListTree/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG5D,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAEjC,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,eAAe,GAAG,QAAQ,GAAG,UAAU,CAAC;AAErF,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAGhC,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC5C,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;IAG5B,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;IAGhC;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,UAAU,GAAG,SAAS,CAAC;CACtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoryboardWorkflowsTreeCore.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/StoryboardWorkflowsTreeCore.tsx"],"names":[],"mappings":"AACA,OAAO,
|
|
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,EAO7B,MAAM,SAAS,CAAC;AAgZjB,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CA6X9E,CAAC"}
|
|
@@ -73,6 +73,19 @@ export interface StoryboardWorkflowsTreeProps {
|
|
|
73
73
|
selectedNodeId?: string;
|
|
74
74
|
defaultOpen?: boolean;
|
|
75
75
|
initialOpenState?: Record<string, boolean>;
|
|
76
|
+
/**
|
|
77
|
+
* Controlled open state for tree nodes. When provided, the tree becomes controlled.
|
|
78
|
+
* Keys are node IDs, values are boolean (true = open, false = closed).
|
|
79
|
+
* Use with onToggle to handle state changes.
|
|
80
|
+
*/
|
|
81
|
+
openState?: Record<string, boolean>;
|
|
82
|
+
/**
|
|
83
|
+
* Callback fired when a node is toggled open/closed.
|
|
84
|
+
* Use with openState for controlled mode.
|
|
85
|
+
* @param nodeId - The ID of the toggled node
|
|
86
|
+
* @param isOpen - Whether the node is now open
|
|
87
|
+
*/
|
|
88
|
+
onToggle?: (nodeId: string, isOpen: boolean) => void;
|
|
76
89
|
horizontalNodePadding?: string;
|
|
77
90
|
verticalNodePadding?: string;
|
|
78
91
|
verticalPadding?: string;
|
|
@@ -99,5 +112,10 @@ export interface StoryboardWorkflowsTreeProps {
|
|
|
99
112
|
* Return undefined to disable dragging for a specific node.
|
|
100
113
|
*/
|
|
101
114
|
getDragConfig?: (node: StoryboardWorkflowNodeData) => DragConfig | undefined;
|
|
115
|
+
/**
|
|
116
|
+
* Callback fired when the open button is clicked on a version node.
|
|
117
|
+
* @param versionSnapshot - The version snapshot data for the clicked node
|
|
118
|
+
*/
|
|
119
|
+
onVersionOpen?: (versionSnapshot: VersionSnapshot) => void;
|
|
102
120
|
}
|
|
103
121
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/StoryboardWorkflowsTree/types.ts"],"names":[],"mappings":"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
|
|
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;AAEtL,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,eAAe,EAAE,CAAC;AAE7I,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAEjI;;;;;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;IAE9D,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;;;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;CAC5D"}
|