@industry-theme/principal-view-panels 0.12.81 → 0.12.82
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/panels/StoryboardListPanel.d.ts.map +1 -1
- package/dist/panels/canvas-list/hooks/useCanvasData.d.ts +2 -1
- package/dist/panels/canvas-list/hooks/useCanvasData.d.ts.map +1 -1
- package/dist/panels/canvas-list/hooks/useCanvasWorkflowData.d.ts +2 -1
- package/dist/panels/canvas-list/hooks/useCanvasWorkflowData.d.ts.map +1 -1
- package/dist/panels.bundle.js +206 -12
- package/dist/panels.bundle.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoryboardListPanel.d.ts","sourceRoot":"","sources":["../../src/panels/StoryboardListPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AA2K9D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,
|
|
1
|
+
{"version":3,"file":"StoryboardListPanel.d.ts","sourceRoot":"","sources":["../../src/panels/StoryboardListPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAC;AA2K9D;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,6BAA6B,CAivDvE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PanelActions, DataSlice } from '@principal-ade/panel-framework-core';
|
|
2
|
-
import { CanvasDiscovery, type DiscoveredCanvas, type DiscoveredStoryboard, type DiscoveredTestTrace } from '@principal-ai/principal-view-core';
|
|
2
|
+
import { CanvasDiscovery, type DiscoveredCanvas, type DiscoveredStoryboard, type DiscoveredTestTrace, type DiscoveredDashboard } from '@principal-ai/principal-view-core';
|
|
3
3
|
import type { FileTree } from '@principal-ai/repository-abstraction';
|
|
4
4
|
interface UseCanvasDataContext {
|
|
5
5
|
fileTree: DataSlice<FileTree | null>;
|
|
@@ -12,6 +12,7 @@ interface UseCanvasDataReturn {
|
|
|
12
12
|
canvases: DiscoveredCanvas[];
|
|
13
13
|
storyboards: DiscoveredStoryboard[];
|
|
14
14
|
testTraces: DiscoveredTestTrace[];
|
|
15
|
+
dashboards: DiscoveredDashboard[];
|
|
15
16
|
isLoading: boolean;
|
|
16
17
|
error: string | null;
|
|
17
18
|
refreshCanvases: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCanvasData.d.ts","sourceRoot":"","sources":["../../../../src/panels/canvas-list/hooks/useCanvasData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EACL,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErE,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CACtC;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,oEAAoE;IACpE,SAAS,EAAE,eAAe,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"useCanvasData.d.ts","sourceRoot":"","sources":["../../../../src/panels/canvas-list/hooks/useCanvasData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EACL,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErE,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CACtC;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,oBAAoB,CAAC;IAC9B,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,oEAAoE;IACpE,SAAS,EAAE,eAAe,CAAC;CAC5B;AAQD;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,uBAG3B,mBAAmB,KAAG,mBAsGxB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PanelActions, DataSlice } from '@principal-ade/panel-framework-core';
|
|
2
|
-
import type { DiscoveredCanvas, DiscoveredStoryboard, DiscoveredTestTrace, DiscoveredWorkflow, WorkflowTemplate } from '@principal-ai/principal-view-core';
|
|
2
|
+
import type { DiscoveredCanvas, DiscoveredStoryboard, DiscoveredTestTrace, DiscoveredDashboard, DiscoveredWorkflow, WorkflowTemplate } from '@principal-ai/principal-view-core';
|
|
3
3
|
import type { FileTree } from '@principal-ai/repository-abstraction';
|
|
4
4
|
interface UseCanvasWorkflowDataContext {
|
|
5
5
|
fileTree: DataSlice<FileTree | null>;
|
|
@@ -12,6 +12,7 @@ interface UseCanvasNarrativeDataReturn {
|
|
|
12
12
|
canvases: DiscoveredCanvas[];
|
|
13
13
|
storyboards: DiscoveredStoryboard[];
|
|
14
14
|
testTraces: DiscoveredTestTrace[];
|
|
15
|
+
dashboards: DiscoveredDashboard[];
|
|
15
16
|
workflows: Array<{
|
|
16
17
|
file: DiscoveredWorkflow;
|
|
17
18
|
template: WorkflowTemplate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCanvasWorkflowData.d.ts","sourceRoot":"","sources":["../../../../src/panels/canvas-list/hooks/useCanvasWorkflowData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAGrE,UAAU,4BAA4B;IACpC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CACtC;AAED,UAAU,4BAA4B;IACpC,OAAO,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,UAAU,4BAA4B;IACpC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,kBAAkB,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,oEAAoE;IACpE,SAAS,EAAE,OAAO,mCAAmC,EAAE,eAAe,CAAC;CACxE;AAKD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,uBAGnC,4BAA4B,KAAG,
|
|
1
|
+
{"version":3,"file":"useCanvasWorkflowData.d.ts","sourceRoot":"","sources":["../../../../src/panels/canvas-list/hooks/useCanvasWorkflowData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAGrE,UAAU,4BAA4B;IACpC,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;CACtC;AAED,UAAU,4BAA4B;IACpC,OAAO,EAAE,4BAA4B,CAAC;IACtC,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,UAAU,4BAA4B;IACpC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,kBAAkB,CAAC;QAAC,QAAQ,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,oEAAoE;IACpE,SAAS,EAAE,OAAO,mCAAmC,EAAE,eAAe,CAAC;CACxE;AAKD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,uBAGnC,4BAA4B,KAAG,4BAkIjC,CAAC"}
|
package/dist/panels.bundle.js
CHANGED
|
@@ -195390,6 +195390,7 @@ function gt(o, e, t, r2) {
|
|
|
195390
195390
|
const EMPTY_CANVAS_ARRAY = [];
|
|
195391
195391
|
const EMPTY_STORYBOARDS_ARRAY = [];
|
|
195392
195392
|
const EMPTY_TEST_TRACES_ARRAY = [];
|
|
195393
|
+
const EMPTY_DASHBOARDS_ARRAY = [];
|
|
195393
195394
|
const useCanvasData = ({
|
|
195394
195395
|
context: context2,
|
|
195395
195396
|
actions
|
|
@@ -195397,6 +195398,7 @@ const useCanvasData = ({
|
|
|
195397
195398
|
const [canvases, setCanvases] = useState(EMPTY_CANVAS_ARRAY);
|
|
195398
195399
|
const [storyboards, setStoryboards] = useState(EMPTY_STORYBOARDS_ARRAY);
|
|
195399
195400
|
const [testTraces, setTestTraces] = useState(EMPTY_TEST_TRACES_ARRAY);
|
|
195401
|
+
const [dashboards, setDashboards] = useState(EMPTY_DASHBOARDS_ARRAY);
|
|
195400
195402
|
const [isLoading, setIsLoading] = useState(true);
|
|
195401
195403
|
const [error, setError] = useState(null);
|
|
195402
195404
|
const fileTreeSlice = context2.fileTree;
|
|
@@ -195439,6 +195441,7 @@ const useCanvasData = ({
|
|
|
195439
195441
|
setCanvases(sortedCanvases);
|
|
195440
195442
|
setStoryboards(result.storyboards);
|
|
195441
195443
|
setTestTraces(result.testTraces);
|
|
195444
|
+
setDashboards(result.dashboards);
|
|
195442
195445
|
lastLoadedSha.current = fileTreeSha;
|
|
195443
195446
|
} catch (err) {
|
|
195444
195447
|
const errorMessage = err instanceof Error ? err.message : "Failed to load canvases";
|
|
@@ -195460,6 +195463,7 @@ const useCanvasData = ({
|
|
|
195460
195463
|
canvases,
|
|
195461
195464
|
storyboards,
|
|
195462
195465
|
testTraces,
|
|
195466
|
+
dashboards,
|
|
195463
195467
|
isLoading,
|
|
195464
195468
|
error,
|
|
195465
195469
|
refreshCanvases,
|
|
@@ -195475,6 +195479,7 @@ const useCanvasWorkflowData = ({
|
|
|
195475
195479
|
canvases,
|
|
195476
195480
|
storyboards,
|
|
195477
195481
|
testTraces,
|
|
195482
|
+
dashboards,
|
|
195478
195483
|
isLoading: canvasesLoading,
|
|
195479
195484
|
error: canvasesError,
|
|
195480
195485
|
refreshCanvases,
|
|
@@ -195559,6 +195564,7 @@ const useCanvasWorkflowData = ({
|
|
|
195559
195564
|
canvases,
|
|
195560
195565
|
storyboards,
|
|
195561
195566
|
testTraces,
|
|
195567
|
+
dashboards,
|
|
195562
195568
|
workflows,
|
|
195563
195569
|
isLoading,
|
|
195564
195570
|
error,
|
|
@@ -195968,7 +195974,7 @@ const StoryboardListPanel = ({
|
|
|
195968
195974
|
actions,
|
|
195969
195975
|
events
|
|
195970
195976
|
}) => {
|
|
195971
|
-
var _a2;
|
|
195977
|
+
var _a2, _b2;
|
|
195972
195978
|
const { theme: theme2 } = useTheme();
|
|
195973
195979
|
const panelRef = useRef(null);
|
|
195974
195980
|
gt("storyboard-list", events, () => {
|
|
@@ -196017,10 +196023,13 @@ const StoryboardListPanel = ({
|
|
|
196017
196023
|
const [spanConventionFilter, setSpanConventionFilter] = useState(null);
|
|
196018
196024
|
const [showSpanFilterDropdown, setShowSpanFilterDropdown] = useState(false);
|
|
196019
196025
|
const spanFilterRef = useRef(null);
|
|
196026
|
+
const [scopeFilter, setScopeFilter] = useState(null);
|
|
196027
|
+
const [showScopeFilterDropdown, setShowScopeFilterDropdown] = useState(false);
|
|
196028
|
+
const scopeFilterRef = useRef(null);
|
|
196020
196029
|
const [contextMenu, setContextMenu] = useState(null);
|
|
196021
196030
|
const [contextMenuCopied, setContextMenuCopied] = useState(false);
|
|
196022
196031
|
const contextMenuRef = useRef(null);
|
|
196023
|
-
const { storyboards, workflows, testTraces, isLoading, error, discovery } = useCanvasWorkflowData({ context: context2, actions });
|
|
196032
|
+
const { storyboards, workflows, testTraces, dashboards, isLoading, error, discovery } = useCanvasWorkflowData({ context: context2, actions });
|
|
196024
196033
|
useEffect(() => {
|
|
196025
196034
|
if (!events) return;
|
|
196026
196035
|
const handleSelectNode = (event) => {
|
|
@@ -196088,6 +196097,22 @@ const StoryboardListPanel = ({
|
|
|
196088
196097
|
const regular = storyboards.filter((sb) => architectureTypes.includes(sb.canvas.type)).length;
|
|
196089
196098
|
return { otelCount: otel, staticCount: regular };
|
|
196090
196099
|
}, [storyboards]);
|
|
196100
|
+
const uniqueScopes = useMemo(() => {
|
|
196101
|
+
const scopeMap = /* @__PURE__ */ new Map();
|
|
196102
|
+
for (const storyboard of storyboards) {
|
|
196103
|
+
if (storyboard.canvas.type !== "otel") continue;
|
|
196104
|
+
for (const workflow of storyboard.workflows) {
|
|
196105
|
+
const workflowWithScope = workflow;
|
|
196106
|
+
const scope = workflowWithScope.instrumentationScope;
|
|
196107
|
+
if (scope) {
|
|
196108
|
+
if (!scopeMap.has(scope) || workflowWithScope.instrumentationScopeLabel) {
|
|
196109
|
+
scopeMap.set(scope, workflowWithScope.instrumentationScopeLabel);
|
|
196110
|
+
}
|
|
196111
|
+
}
|
|
196112
|
+
}
|
|
196113
|
+
}
|
|
196114
|
+
return Array.from(scopeMap.entries()).map(([scope, label]) => ({ scope, label })).sort((a, b) => (a.label || a.scope).localeCompare(b.label || b.scope));
|
|
196115
|
+
}, [storyboards]);
|
|
196091
196116
|
const uniqueSpanConventions = useMemo(() => {
|
|
196092
196117
|
const spanMap = /* @__PURE__ */ new Map();
|
|
196093
196118
|
for (const storyboard of storyboards) {
|
|
@@ -196096,15 +196121,19 @@ const StoryboardListPanel = ({
|
|
|
196096
196121
|
const referencedSpans = workflow.referencedSpans;
|
|
196097
196122
|
if (referencedSpans) {
|
|
196098
196123
|
for (const span of referencedSpans) {
|
|
196099
|
-
|
|
196100
|
-
|
|
196124
|
+
const existing = spanMap.get(span.pattern);
|
|
196125
|
+
if (!existing || span.label || span.scope) {
|
|
196126
|
+
spanMap.set(span.pattern, {
|
|
196127
|
+
label: span.label || (existing == null ? void 0 : existing.label),
|
|
196128
|
+
scope: span.scope || (existing == null ? void 0 : existing.scope)
|
|
196129
|
+
});
|
|
196101
196130
|
}
|
|
196102
196131
|
}
|
|
196103
196132
|
}
|
|
196104
196133
|
}
|
|
196105
196134
|
}
|
|
196106
|
-
return Array.from(spanMap.entries()).map(([pattern,
|
|
196107
|
-
}, [storyboards]);
|
|
196135
|
+
return Array.from(spanMap.entries()).map(([pattern, info]) => ({ pattern, label: info.label, scope: info.scope })).filter((span) => !scopeFilter || span.scope === scopeFilter).sort((a, b) => (a.label || a.pattern).localeCompare(b.label || b.pattern));
|
|
196136
|
+
}, [storyboards, scopeFilter]);
|
|
196108
196137
|
const telemetry = useStoryboardListPanelTelemetry({
|
|
196109
196138
|
isLoading,
|
|
196110
196139
|
error,
|
|
@@ -196237,6 +196266,14 @@ const StoryboardListPanel = ({
|
|
|
196237
196266
|
}
|
|
196238
196267
|
return storyboard.canvas.type === effectiveCanvasTypeFilter;
|
|
196239
196268
|
});
|
|
196269
|
+
if (scopeFilter && effectiveCanvasTypeFilter === "otel") {
|
|
196270
|
+
filtered = filtered.filter((storyboard) => {
|
|
196271
|
+
return storyboard.workflows.some((workflow) => {
|
|
196272
|
+
const workflowWithScope = workflow;
|
|
196273
|
+
return workflowWithScope.instrumentationScope === scopeFilter;
|
|
196274
|
+
});
|
|
196275
|
+
});
|
|
196276
|
+
}
|
|
196240
196277
|
if (spanConventionFilter && effectiveCanvasTypeFilter === "otel") {
|
|
196241
196278
|
filtered = filtered.filter((storyboard) => {
|
|
196242
196279
|
return storyboard.workflows.some((workflow) => {
|
|
@@ -196258,17 +196295,17 @@ const StoryboardListPanel = ({
|
|
|
196258
196295
|
});
|
|
196259
196296
|
}
|
|
196260
196297
|
return filtered;
|
|
196261
|
-
}, [storyboards, searchQuery, effectiveCanvasTypeFilter, spanConventionFilter]);
|
|
196298
|
+
}, [storyboards, searchQuery, effectiveCanvasTypeFilter, scopeFilter, spanConventionFilter]);
|
|
196262
196299
|
const filteredCanvases = useMemo(() => {
|
|
196263
196300
|
return filteredStoryboards.map((storyboard) => storyboard.canvas);
|
|
196264
196301
|
}, [filteredStoryboards]);
|
|
196265
196302
|
const handleTreeNodeClick = useCallback((node2, event) => {
|
|
196266
|
-
var _a3,
|
|
196303
|
+
var _a3, _b3, _c, _d, _e4, _f, _g;
|
|
196267
196304
|
if ((event == null ? void 0 : event.metaKey) || (event == null ? void 0 : event.ctrlKey)) {
|
|
196268
196305
|
let filePath;
|
|
196269
196306
|
if (node2.type === "canvas" && ((_a3 = node2.canvas) == null ? void 0 : _a3.path)) {
|
|
196270
196307
|
filePath = node2.canvas.path;
|
|
196271
|
-
} else if (node2.type === "workflow" && "workflow" in node2 && ((
|
|
196308
|
+
} else if (node2.type === "workflow" && "workflow" in node2 && ((_b3 = node2.workflow) == null ? void 0 : _b3.path)) {
|
|
196272
196309
|
filePath = node2.workflow.path;
|
|
196273
196310
|
} else if (node2.markdownPath) {
|
|
196274
196311
|
filePath = node2.markdownPath;
|
|
@@ -196358,10 +196395,10 @@ const StoryboardListPanel = ({
|
|
|
196358
196395
|
}
|
|
196359
196396
|
}, [events, getCanvasFileInfo, workflows, telemetry]);
|
|
196360
196397
|
const getNodeFilePath = useCallback((node2) => {
|
|
196361
|
-
var _a3,
|
|
196398
|
+
var _a3, _b3, _c, _d, _e4;
|
|
196362
196399
|
if (node2.type === "canvas" && ((_a3 = node2.canvas) == null ? void 0 : _a3.path)) {
|
|
196363
196400
|
return node2.canvas.path;
|
|
196364
|
-
} else if (node2.type === "workflow" && "workflow" in node2 && ((
|
|
196401
|
+
} else if (node2.type === "workflow" && "workflow" in node2 && ((_b3 = node2.workflow) == null ? void 0 : _b3.path)) {
|
|
196365
196402
|
return node2.workflow.path;
|
|
196366
196403
|
} else if (node2.type === "overview" && node2.markdownPath) {
|
|
196367
196404
|
return node2.markdownPath;
|
|
@@ -196434,6 +196471,23 @@ const StoryboardListPanel = ({
|
|
|
196434
196471
|
document.removeEventListener("keydown", handleKeyDown);
|
|
196435
196472
|
};
|
|
196436
196473
|
}, [showSpanFilterDropdown]);
|
|
196474
|
+
useEffect(() => {
|
|
196475
|
+
if (!showScopeFilterDropdown) return;
|
|
196476
|
+
const handleClickOutside = (e) => {
|
|
196477
|
+
if (scopeFilterRef.current && !scopeFilterRef.current.contains(e.target)) {
|
|
196478
|
+
setShowScopeFilterDropdown(false);
|
|
196479
|
+
}
|
|
196480
|
+
};
|
|
196481
|
+
const handleKeyDown = (e) => {
|
|
196482
|
+
if (e.key === "Escape") setShowScopeFilterDropdown(false);
|
|
196483
|
+
};
|
|
196484
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
196485
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
196486
|
+
return () => {
|
|
196487
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
196488
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
196489
|
+
};
|
|
196490
|
+
}, [showScopeFilterDropdown]);
|
|
196437
196491
|
useEffect(() => {
|
|
196438
196492
|
handleTreeNodeClickRef.current = handleTreeNodeClick;
|
|
196439
196493
|
}, [handleTreeNodeClick]);
|
|
@@ -196703,6 +196757,145 @@ const StoryboardListPanel = ({
|
|
|
196703
196757
|
}
|
|
196704
196758
|
)
|
|
196705
196759
|
] }),
|
|
196760
|
+
effectiveCanvasTypeFilter === "otel" && uniqueScopes.length > 0 && /* @__PURE__ */ jsxs(
|
|
196761
|
+
"div",
|
|
196762
|
+
{
|
|
196763
|
+
ref: scopeFilterRef,
|
|
196764
|
+
style: { position: "relative" },
|
|
196765
|
+
children: [
|
|
196766
|
+
/* @__PURE__ */ jsxs(
|
|
196767
|
+
"button",
|
|
196768
|
+
{
|
|
196769
|
+
onClick: () => setShowScopeFilterDropdown(!showScopeFilterDropdown),
|
|
196770
|
+
style: {
|
|
196771
|
+
width: "100%",
|
|
196772
|
+
display: "flex",
|
|
196773
|
+
alignItems: "center",
|
|
196774
|
+
justifyContent: "space-between",
|
|
196775
|
+
gap: "8px",
|
|
196776
|
+
padding: "8px 12px",
|
|
196777
|
+
background: scopeFilter ? theme2.colors.primary : theme2.colors.backgroundSecondary,
|
|
196778
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
196779
|
+
borderRadius: theme2.radii[2],
|
|
196780
|
+
cursor: "pointer",
|
|
196781
|
+
fontSize: theme2.fontSizes[1],
|
|
196782
|
+
fontFamily: theme2.fonts.body,
|
|
196783
|
+
color: scopeFilter ? theme2.colors.textOnPrimary : theme2.colors.text,
|
|
196784
|
+
transition: "all 0.2s ease"
|
|
196785
|
+
},
|
|
196786
|
+
children: [
|
|
196787
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
|
|
196788
|
+
/* @__PURE__ */ jsx(Layers, { size: 14 }),
|
|
196789
|
+
/* @__PURE__ */ jsx("span", { children: scopeFilter ? `Scope: ${((_a2 = uniqueScopes.find((s2) => s2.scope === scopeFilter)) == null ? void 0 : _a2.label) || scopeFilter}` : "Filter by Scope" })
|
|
196790
|
+
] }),
|
|
196791
|
+
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
|
|
196792
|
+
scopeFilter && /* @__PURE__ */ jsx(
|
|
196793
|
+
"button",
|
|
196794
|
+
{
|
|
196795
|
+
onClick: (e) => {
|
|
196796
|
+
e.stopPropagation();
|
|
196797
|
+
setScopeFilter(null);
|
|
196798
|
+
setSpanConventionFilter(null);
|
|
196799
|
+
},
|
|
196800
|
+
style: {
|
|
196801
|
+
display: "flex",
|
|
196802
|
+
alignItems: "center",
|
|
196803
|
+
justifyContent: "center",
|
|
196804
|
+
padding: "2px",
|
|
196805
|
+
background: "transparent",
|
|
196806
|
+
border: "none",
|
|
196807
|
+
cursor: "pointer",
|
|
196808
|
+
borderRadius: "4px"
|
|
196809
|
+
},
|
|
196810
|
+
title: "Clear filter",
|
|
196811
|
+
children: /* @__PURE__ */ jsx(X$2, { size: 14, color: scopeFilter ? theme2.colors.textOnPrimary : theme2.colors.textSecondary })
|
|
196812
|
+
}
|
|
196813
|
+
),
|
|
196814
|
+
/* @__PURE__ */ jsx(
|
|
196815
|
+
ChevronDown,
|
|
196816
|
+
{
|
|
196817
|
+
size: 14,
|
|
196818
|
+
style: {
|
|
196819
|
+
transform: showScopeFilterDropdown ? "rotate(180deg)" : "none",
|
|
196820
|
+
transition: "transform 0.2s ease"
|
|
196821
|
+
}
|
|
196822
|
+
}
|
|
196823
|
+
)
|
|
196824
|
+
] })
|
|
196825
|
+
]
|
|
196826
|
+
}
|
|
196827
|
+
),
|
|
196828
|
+
showScopeFilterDropdown && /* @__PURE__ */ jsx(
|
|
196829
|
+
"div",
|
|
196830
|
+
{
|
|
196831
|
+
style: {
|
|
196832
|
+
position: "absolute",
|
|
196833
|
+
top: "100%",
|
|
196834
|
+
left: 0,
|
|
196835
|
+
right: 0,
|
|
196836
|
+
marginTop: "4px",
|
|
196837
|
+
background: theme2.colors.background,
|
|
196838
|
+
border: `1px solid ${theme2.colors.border}`,
|
|
196839
|
+
borderRadius: theme2.radii[2],
|
|
196840
|
+
boxShadow: "0 4px 12px rgba(0, 0, 0, 0.15)",
|
|
196841
|
+
zIndex: 100,
|
|
196842
|
+
maxHeight: "200px",
|
|
196843
|
+
overflowY: "auto"
|
|
196844
|
+
},
|
|
196845
|
+
children: uniqueScopes.map((scopeInfo) => /* @__PURE__ */ jsxs(
|
|
196846
|
+
"button",
|
|
196847
|
+
{
|
|
196848
|
+
onClick: () => {
|
|
196849
|
+
const newScope = scopeInfo.scope === scopeFilter ? null : scopeInfo.scope;
|
|
196850
|
+
setScopeFilter(newScope);
|
|
196851
|
+
if (newScope !== scopeFilter) {
|
|
196852
|
+
setSpanConventionFilter(null);
|
|
196853
|
+
}
|
|
196854
|
+
setShowScopeFilterDropdown(false);
|
|
196855
|
+
},
|
|
196856
|
+
style: {
|
|
196857
|
+
width: "100%",
|
|
196858
|
+
display: "flex",
|
|
196859
|
+
flexDirection: "column",
|
|
196860
|
+
alignItems: "flex-start",
|
|
196861
|
+
gap: "2px",
|
|
196862
|
+
padding: "8px 12px",
|
|
196863
|
+
background: scopeInfo.scope === scopeFilter ? theme2.colors.backgroundTertiary : "transparent",
|
|
196864
|
+
border: "none",
|
|
196865
|
+
cursor: "pointer",
|
|
196866
|
+
textAlign: "left",
|
|
196867
|
+
transition: "background 0.15s ease"
|
|
196868
|
+
},
|
|
196869
|
+
onMouseEnter: (e) => {
|
|
196870
|
+
if (scopeInfo.scope !== scopeFilter) {
|
|
196871
|
+
e.currentTarget.style.background = theme2.colors.backgroundSecondary;
|
|
196872
|
+
}
|
|
196873
|
+
},
|
|
196874
|
+
onMouseLeave: (e) => {
|
|
196875
|
+
if (scopeInfo.scope !== scopeFilter) {
|
|
196876
|
+
e.currentTarget.style.background = "transparent";
|
|
196877
|
+
}
|
|
196878
|
+
},
|
|
196879
|
+
children: [
|
|
196880
|
+
/* @__PURE__ */ jsx("span", { style: {
|
|
196881
|
+
fontSize: theme2.fontSizes[1],
|
|
196882
|
+
fontFamily: theme2.fonts.body,
|
|
196883
|
+
color: theme2.colors.text
|
|
196884
|
+
}, children: scopeInfo.label || scopeInfo.scope }),
|
|
196885
|
+
scopeInfo.label && /* @__PURE__ */ jsx("span", { style: {
|
|
196886
|
+
fontSize: theme2.fontSizes[0],
|
|
196887
|
+
fontFamily: theme2.fonts.monospace,
|
|
196888
|
+
color: theme2.colors.textMuted
|
|
196889
|
+
}, children: scopeInfo.scope })
|
|
196890
|
+
]
|
|
196891
|
+
},
|
|
196892
|
+
scopeInfo.scope
|
|
196893
|
+
))
|
|
196894
|
+
}
|
|
196895
|
+
)
|
|
196896
|
+
]
|
|
196897
|
+
}
|
|
196898
|
+
),
|
|
196706
196899
|
effectiveCanvasTypeFilter === "otel" && uniqueSpanConventions.length > 0 && /* @__PURE__ */ jsxs(
|
|
196707
196900
|
"div",
|
|
196708
196901
|
{
|
|
@@ -196732,7 +196925,7 @@ const StoryboardListPanel = ({
|
|
|
196732
196925
|
children: [
|
|
196733
196926
|
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
|
|
196734
196927
|
/* @__PURE__ */ jsx(Funnel, { size: 14 }),
|
|
196735
|
-
/* @__PURE__ */ jsx("span", { children: spanConventionFilter ? `Surface: ${((
|
|
196928
|
+
/* @__PURE__ */ jsx("span", { children: spanConventionFilter ? `Surface: ${((_b2 = uniqueSpanConventions.find((s2) => s2.pattern === spanConventionFilter)) == null ? void 0 : _b2.label) || spanConventionFilter}` : "Filter by Surface" })
|
|
196736
196929
|
] }),
|
|
196737
196930
|
/* @__PURE__ */ jsxs("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
|
|
196738
196931
|
spanConventionFilter && /* @__PURE__ */ jsx(
|
|
@@ -197089,6 +197282,7 @@ const StoryboardListPanel = ({
|
|
|
197089
197282
|
CanvasListTreeCore,
|
|
197090
197283
|
{
|
|
197091
197284
|
canvases: filteredCanvases,
|
|
197285
|
+
dashboards,
|
|
197092
197286
|
theme: theme2,
|
|
197093
197287
|
onClick: handleTreeNodeClick,
|
|
197094
197288
|
onContextMenu: handleContextMenu,
|