@loopstack/loopstack-studio 0.29.4 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/rolldown_runtime.js +3 -1
- package/dist/api/config.js +5 -4
- package/dist/api/environments.js +5 -1
- package/dist/api/processor.js +4 -1
- package/dist/app/EnvironmentEmbedRoot.js +22 -30
- package/dist/components/ai-elements/code-block.js +4 -4
- package/dist/components/dynamic-form/CodeContent.js +1 -1
- package/dist/components/dynamic-form/Form.js +31 -51
- package/dist/components/dynamic-form/FormBody.js +1 -1
- package/dist/components/motion/FadeIn.js +72 -0
- package/dist/components/motion/StreamingText.js +49 -0
- package/dist/components/ui/accordion.js +2 -2
- package/dist/components/ui-widgets/UiWidget.js +11 -10
- package/dist/components/ui-widgets/widgets/AiPromptInput.js +31 -28
- package/dist/events/sse-client-events.js +7 -1
- package/dist/features/code-explorer/components/FileContentViewer.js +2 -2
- package/dist/features/debug/components/WorkflowFlowViewer.js +49 -51
- package/dist/features/documents/DocumentRenderer.js +18 -17
- package/dist/features/documents/components/DocumentItem.js +42 -20
- package/dist/features/documents/components/DocumentList.js +34 -36
- package/dist/features/documents/components/DocumentMetadataPills.js +102 -49
- package/dist/features/documents/document-details/DocumentDetails.js +577 -377
- package/dist/features/documents/document-details/PromptDetails.js +118 -130
- package/dist/features/documents/document-details/document-debug-utils.js +100 -0
- package/dist/features/documents/renderers/ChoicesRenderer.js +41 -38
- package/dist/features/documents/renderers/ConfirmPromptRenderer.js +31 -28
- package/dist/features/documents/renderers/DocumentFormRenderer.js +62 -70
- package/dist/features/documents/renderers/LlmMessage.js +52 -47
- package/dist/features/documents/renderers/TextPromptRenderer.js +32 -29
- package/dist/features/documents/renderers/useDocumentTransition.js +4 -4
- package/dist/features/feature-registry/FeatureRegistryProvider.js +32 -10
- package/dist/features/feature-registry/available-features.js +12 -0
- package/dist/features/feature-registry/index.js +2 -1
- package/dist/features/file-explorer/components/FileExplorerPanel.js +55 -51
- package/dist/features/git/components/GitBranchBadge.js +31 -0
- package/dist/features/git/components/GitCommitList.js +46 -0
- package/dist/features/git/components/GitRemoteStatus.js +84 -0
- package/dist/features/git/components/WorkbenchGitPanel.js +81 -0
- package/dist/features/git/git-feature.js +12 -0
- package/dist/features/git/hooks/useGit.js +78 -0
- package/dist/features/git/index.js +1 -0
- package/dist/features/oauth/OAuthPromptRenderer.js +137 -142
- package/dist/features/runs/Runs.js +4 -4
- package/dist/features/secrets/components/WorkbenchSecretsPanel.js +1 -1
- package/dist/features/secrets/renderers/SecretInputRenderer.js +30 -29
- package/dist/features/workbench/Workbench.js +25 -33
- package/dist/features/workbench/WorkflowItem.js +9 -9
- package/dist/features/workbench/WorkflowList.js +61 -62
- package/dist/features/workbench/components/NewRunDialog.js +237 -209
- package/dist/features/workbench/components/RecentRunItem.js +3 -3
- package/dist/features/workbench/components/WorkbenchEnvironmentPanel.js +8 -8
- package/dist/features/workbench/components/WorkbenchIconSidebar.js +1 -1
- package/dist/features/workbench/components/WorkbenchSidebarShell.js +3 -3
- package/dist/features/workbench/components/WorkflowForms.js +11 -10
- package/dist/features/workbench/components/WorkflowHistoryItem.js +16 -36
- package/dist/features/workbench/components/WorkflowHistoryList.js +19 -17
- package/dist/features/workbench/components/buttons/WorkflowButtons.js +3 -3
- package/dist/features/workbench/hooks/useLlmStreamingDocuments.js +159 -0
- package/dist/features/workbench/hooks/useWorkflowData.js +58 -31
- package/dist/features/workbench/index.js +2 -2
- package/dist/features/workbench/providers/WorkbenchLayoutProvider.js +53 -53
- package/dist/features/workspaces/Workspaces.js +134 -125
- package/dist/features/workspaces/components/CreateWorkspace.js +115 -107
- package/dist/features/workspaces/components/ExecutionTimeline.js +2 -2
- package/dist/features/workspaces/components/WorkflowRunForm.js +127 -104
- package/dist/features/workspaces/components/WorkspaceHomePage.js +6 -89
- package/dist/features/workspaces/components/workflow-form/ArgumentsView.js +1 -1
- package/dist/features/workspaces/components/workflow-form/SelectionView.js +15 -15
- package/dist/hooks/index.js +3 -2
- package/dist/hooks/query-keys.js +43 -30
- package/dist/hooks/useConfig.js +28 -22
- package/dist/hooks/useEnvironments.js +27 -2
- package/dist/hooks/useProcessor.js +14 -1
- package/dist/hooks/useWorkflows.js +4 -4
- package/dist/index.d.ts +116 -15
- package/dist/index.js +9 -8
- package/dist/node_modules/d3/src/index.js +13 -13
- package/dist/node_modules/d3-scale/src/continuous.js +16 -16
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-3BPJPVTR.js +43 -43
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-GPEHLZMM.js +270 -270
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/c4Diagram-AAUBKEIU.js +90 -90
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-3OPIFGDE.js +458 -458
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-55IACEB6.js +3 -3
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-5ZQYHXKU.js +37 -37
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-727SXJPM.js +208 -208
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-KSCS5N6A.js +145 -145
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ND2GUHAM.js +7 -7
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-O5CBEL6O.js +41 -41
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-WU5MYG2G.js +3 -3
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/cose-bilkent-S5V4N54A.js +6 -6
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-KO2AKTUF.js +30 -30
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-OG6HWLK6.js +82 -82
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/erDiagram-TEJ5UH35.js +65 -65
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/flowDiagram-I6XJVG4X.js +227 -227
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-6RSMTGT7.js +104 -104
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-PVQCEYII.js +104 -104
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/journeyDiagram-JHISSGLW.js +49 -49
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-W4KKPZXB.js +101 -101
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sankeyDiagram-5OEKKPKP.js +20 -20
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-3UESZ5HK.js +354 -354
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/stateDiagram-AJRCARHV.js +53 -53
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-PNZ67QCA.js +113 -113
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/vennDiagram-CIIHVFJN.js +90 -90
- package/dist/node_modules/mermaid/dist/mermaid.core.js +156 -156
- package/dist/node_modules/motion/dist/es/react.js +9 -2
- package/dist/pages/DebugWorkflowDetailsPage.js +2 -2
- package/dist/pages/DebugWorkflowsPage.js +76 -106
- package/dist/pages/EmbedWorkbenchPage.js +1 -1
- package/dist/pages/PreviewWorkbenchPage.js +6 -6
- package/dist/pages/WorkbenchPage.js +43 -47
- package/dist/pages/WorkflowDebugPage.js +6 -12
- package/dist/pages/WorkspacePage.js +40 -66
- package/dist/pages/WorkspaceRunsPage.js +24 -31
- package/package.json +2 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
import select_default from "../../../../d3-selection/src/select.js";
|
|
1
2
|
import { __name, log } from "./chunk-AGHRB4JF.js";
|
|
2
3
|
import rgba_default from "../../../../khroma/dist/methods/rgba.js";
|
|
3
4
|
import channel_default from "../../../../khroma/dist/methods/channel.js";
|
|
4
5
|
import { clear, common_default, configureSvgSize, getConfig, getConfig2, getEffectiveHtmlLabels, getUrl, sanitizeText } from "./chunk-CSCIHK7Q.js";
|
|
5
|
-
import select_default from "../../../../d3-selection/src/select.js";
|
|
6
6
|
import line_default from "../../../../d3-shape/src/line.js";
|
|
7
7
|
import basis_default from "../../../../d3-shape/src/curve/basis.js";
|
|
8
8
|
import "../../../../d3/src/index.js";
|
|
@@ -15,7 +15,7 @@ import { getIconStyles } from "./chunk-FMBD7UC4.js";
|
|
|
15
15
|
import { Graph } from "../../../../dagre-d3-es/src/graphlib/graph.js";
|
|
16
16
|
import "../../../../dagre-d3-es/src/graphlib/index.js";
|
|
17
17
|
var parser = (function() {
|
|
18
|
-
var
|
|
18
|
+
var e = /* @__PURE__ */ __name(function(e, S, C, w) {
|
|
19
19
|
for (C ||= {}, w = e.length; w--; C[e[w]] = S);
|
|
20
20
|
return C;
|
|
21
21
|
}, "o"), C = [1, 15], w = [1, 7], T = [1, 13], E = [1, 14], D = [1, 19], O = [1, 16], k = [1, 17], A = [1, 18], j = [8, 30], M = [
|
|
@@ -388,7 +388,7 @@ var parser = (function() {
|
|
|
388
388
|
46: A
|
|
389
389
|
},
|
|
390
390
|
{ 8: [1, 20] },
|
|
391
|
-
|
|
391
|
+
e(j, [2, 12], {
|
|
392
392
|
13: 4,
|
|
393
393
|
19: 5,
|
|
394
394
|
20: 6,
|
|
@@ -407,19 +407,19 @@ var parser = (function() {
|
|
|
407
407
|
43: k,
|
|
408
408
|
46: A
|
|
409
409
|
}),
|
|
410
|
-
|
|
410
|
+
e(M, [2, 16], {
|
|
411
411
|
14: 22,
|
|
412
412
|
15: N,
|
|
413
413
|
16: P
|
|
414
414
|
}),
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
415
|
+
e(M, [2, 17]),
|
|
416
|
+
e(M, [2, 18]),
|
|
417
|
+
e(M, [2, 19]),
|
|
418
|
+
e(M, [2, 20]),
|
|
419
|
+
e(M, [2, 21]),
|
|
420
|
+
e(M, [2, 22]),
|
|
421
|
+
e(F, [2, 25], { 27: [1, 25] }),
|
|
422
|
+
e(M, [2, 26]),
|
|
423
423
|
{
|
|
424
424
|
19: 26,
|
|
425
425
|
26: 12,
|
|
@@ -450,20 +450,20 @@ var parser = (function() {
|
|
|
450
450
|
},
|
|
451
451
|
{ 44: [1, 30] },
|
|
452
452
|
{ 47: [1, 31] },
|
|
453
|
-
|
|
453
|
+
e(I, [2, 29], {
|
|
454
454
|
32: 32,
|
|
455
455
|
35: [1, 33],
|
|
456
456
|
37: [1, 34]
|
|
457
457
|
}),
|
|
458
458
|
{ 1: [2, 7] },
|
|
459
|
-
|
|
459
|
+
e(j, [2, 13]),
|
|
460
460
|
{
|
|
461
461
|
26: 35,
|
|
462
462
|
31: D
|
|
463
463
|
},
|
|
464
464
|
{ 31: [2, 14] },
|
|
465
465
|
{ 17: [1, 36] },
|
|
466
|
-
|
|
466
|
+
e(F, [2, 24]),
|
|
467
467
|
{
|
|
468
468
|
10: C,
|
|
469
469
|
11: 37,
|
|
@@ -491,25 +491,25 @@ var parser = (function() {
|
|
|
491
491
|
{ 41: [1, 40] },
|
|
492
492
|
{ 45: [1, 41] },
|
|
493
493
|
{ 48: [1, 42] },
|
|
494
|
-
|
|
494
|
+
e(I, [2, 30]),
|
|
495
495
|
{ 18: [1, 43] },
|
|
496
496
|
{ 18: [1, 44] },
|
|
497
|
-
|
|
497
|
+
e(F, [2, 23]),
|
|
498
498
|
{ 18: [1, 45] },
|
|
499
499
|
{ 30: [1, 46] },
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
500
|
+
e(M, [2, 28]),
|
|
501
|
+
e(M, [2, 35]),
|
|
502
|
+
e(M, [2, 36]),
|
|
503
|
+
e(M, [2, 37]),
|
|
504
|
+
e(M, [2, 38]),
|
|
505
505
|
{ 36: [1, 47] },
|
|
506
506
|
{
|
|
507
507
|
33: 48,
|
|
508
508
|
34: L
|
|
509
509
|
},
|
|
510
510
|
{ 15: [1, 50] },
|
|
511
|
-
|
|
512
|
-
|
|
511
|
+
e(M, [2, 27]),
|
|
512
|
+
e(I, [2, 33]),
|
|
513
513
|
{ 38: [1, 51] },
|
|
514
514
|
{
|
|
515
515
|
33: 52,
|
|
@@ -517,7 +517,7 @@ var parser = (function() {
|
|
|
517
517
|
38: [2, 31]
|
|
518
518
|
},
|
|
519
519
|
{ 31: [2, 15] },
|
|
520
|
-
|
|
520
|
+
e(I, [2, 34]),
|
|
521
521
|
{ 38: [2, 32] }
|
|
522
522
|
],
|
|
523
523
|
defaultActions: {
|
|
@@ -533,10 +533,10 @@ var parser = (function() {
|
|
|
533
533
|
throw C.hash = S, C;
|
|
534
534
|
}
|
|
535
535
|
}, "parseError"),
|
|
536
|
-
parse: /* @__PURE__ */ __name(function(
|
|
536
|
+
parse: /* @__PURE__ */ __name(function(e) {
|
|
537
537
|
var C = this, w = [0], T = [], E = [null], D = [], O = this.table, k = "", A = 0, j = 0, M = 0, N = 2, P = 1, F = D.slice.call(arguments, 1), I = Object.create(this.lexer), L = { yy: {} };
|
|
538
538
|
for (var R in this.yy) Object.prototype.hasOwnProperty.call(this.yy, R) && (L.yy[R] = this.yy[R]);
|
|
539
|
-
I.setInput(
|
|
539
|
+
I.setInput(e, L.yy), L.yy.lexer = I, L.yy.parser = this, I.yylloc === void 0 && (I.yylloc = {});
|
|
540
540
|
var z = I.yylloc;
|
|
541
541
|
D.push(z);
|
|
542
542
|
var B = I.options && I.options.ranges;
|
|
@@ -1181,7 +1181,7 @@ var block_default = parser, blockDatabase = /* @__PURE__ */ new Map(), edgeList
|
|
|
1181
1181
|
}
|
|
1182
1182
|
C.classes ||= [], C.classes.push(S);
|
|
1183
1183
|
});
|
|
1184
|
-
}, "setCssClass"), populateBlockDatabase = /* @__PURE__ */ __name((e,
|
|
1184
|
+
}, "setCssClass"), populateBlockDatabase = /* @__PURE__ */ __name((e, S) => {
|
|
1185
1185
|
let w = e.flat(), T = [], E = w.find((e) => e?.type === "column-setting")?.columns ?? -1;
|
|
1186
1186
|
for (let e of w) {
|
|
1187
1187
|
if (typeof E == "number" && E > 0 && e.type !== "column-setting" && typeof e.widthInColumns == "number" && e.widthInColumns > E && log.warn(`Block ${e.id} width ${e.widthInColumns} exceeds configured column width ${E}`), e.label &&= sanitizeText2(e.label), e.type === "classDef") {
|
|
@@ -1196,7 +1196,7 @@ var block_default = parser, blockDatabase = /* @__PURE__ */ new Map(), edgeList
|
|
|
1196
1196
|
e?.stylesStr && addStyle2Node(e.id, e?.stylesStr);
|
|
1197
1197
|
continue;
|
|
1198
1198
|
}
|
|
1199
|
-
if (e.type === "column-setting")
|
|
1199
|
+
if (e.type === "column-setting") S.columns = e.columns ?? -1;
|
|
1200
1200
|
else if (e.type === "edge") {
|
|
1201
1201
|
let S = (edgeCount.get(e.id) ?? 0) + 1;
|
|
1202
1202
|
edgeCount.set(e.id, S), e.id = S + "-" + e.id, edgeList.push(e);
|
|
@@ -1212,7 +1212,7 @@ var block_default = parser, blockDatabase = /* @__PURE__ */ new Map(), edgeList
|
|
|
1212
1212
|
} else S === void 0 && T.push(e);
|
|
1213
1213
|
}
|
|
1214
1214
|
}
|
|
1215
|
-
|
|
1215
|
+
S.children = T;
|
|
1216
1216
|
}, "populateBlockDatabase"), blocks = [], rootBlock = {
|
|
1217
1217
|
id: "root",
|
|
1218
1218
|
type: "composite",
|
|
@@ -1313,8 +1313,8 @@ var cnt = 0, blockDB_default = {
|
|
|
1313
1313
|
}, "setDiagramId"),
|
|
1314
1314
|
getDiagramId: /* @__PURE__ */ __name(() => diagramId, "getDiagramId")
|
|
1315
1315
|
}, fade = /* @__PURE__ */ __name((e, S) => {
|
|
1316
|
-
let
|
|
1317
|
-
return rgba_default(
|
|
1316
|
+
let C = channel_default;
|
|
1317
|
+
return rgba_default(C(e, "r"), C(e, "g"), C(e, "b"), S);
|
|
1318
1318
|
}, "fade"), styles_default = /* @__PURE__ */ __name((e) => `.label {
|
|
1319
1319
|
font-family: ${e.fontFamily};
|
|
1320
1320
|
color: ${e.nodeTextColor || e.textColor};
|
|
@@ -1443,8 +1443,8 @@ var cnt = 0, blockDB_default = {
|
|
|
1443
1443
|
markers[S](e, C, w);
|
|
1444
1444
|
});
|
|
1445
1445
|
}, "insertMarkers"), markers = {
|
|
1446
|
-
extension: /* @__PURE__ */ __name((e,
|
|
1447
|
-
log.trace("Making markers for ", w), e.append("defs").append("marker").attr("id", w + "_" +
|
|
1446
|
+
extension: /* @__PURE__ */ __name((e, S, w) => {
|
|
1447
|
+
log.trace("Making markers for ", w), e.append("defs").append("marker").attr("id", w + "_" + S + "-extensionStart").attr("class", "marker extension " + S).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z"), e.append("defs").append("marker").attr("id", w + "_" + S + "-extensionEnd").attr("class", "marker extension " + S).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
|
|
1448
1448
|
}, "extension"),
|
|
1449
1449
|
composition: /* @__PURE__ */ __name((e, S, C) => {
|
|
1450
1450
|
e.append("defs").append("marker").attr("id", C + "_" + S + "-compositionStart").attr("class", "marker composition " + S).attr("refX", 18).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"), e.append("defs").append("marker").attr("id", C + "_" + S + "-compositionEnd").attr("class", "marker composition " + S).attr("refX", 1).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
|
|
@@ -1487,7 +1487,7 @@ function calculateBlockPosition(e, S) {
|
|
|
1487
1487
|
}
|
|
1488
1488
|
__name(calculateBlockPosition, "calculateBlockPosition");
|
|
1489
1489
|
var getMaxChildSize = /* @__PURE__ */ __name((e) => {
|
|
1490
|
-
let
|
|
1490
|
+
let S = 0, w = 0;
|
|
1491
1491
|
for (let T of e.children) {
|
|
1492
1492
|
let { width: e, height: E, x: D, y: O } = T.size ?? {
|
|
1493
1493
|
width: 0,
|
|
@@ -1497,14 +1497,14 @@ var getMaxChildSize = /* @__PURE__ */ __name((e) => {
|
|
|
1497
1497
|
};
|
|
1498
1498
|
if (log.debug("getMaxChildSize abc95 child:", T.id, "width:", e, "height:", E, "x:", D, "y:", O, T.type), T.type === "space") continue;
|
|
1499
1499
|
let k = e / (T.widthInColumns ?? 1);
|
|
1500
|
-
k >
|
|
1500
|
+
k > S && (S = k), E > w && (w = E);
|
|
1501
1501
|
}
|
|
1502
1502
|
return {
|
|
1503
|
-
width:
|
|
1503
|
+
width: S,
|
|
1504
1504
|
height: w
|
|
1505
1505
|
};
|
|
1506
1506
|
}, "getMaxChildSize");
|
|
1507
|
-
function setBlockSizes(e,
|
|
1507
|
+
function setBlockSizes(e, S, w = 0, T = 0) {
|
|
1508
1508
|
log.debug("setBlockSizes abc95 (start)", e.id, e?.size?.x, "block width =", e?.size, "siblingWidth", w), e?.size?.width || (e.size = {
|
|
1509
1509
|
width: w,
|
|
1510
1510
|
height: T,
|
|
@@ -1513,11 +1513,11 @@ function setBlockSizes(e, C, w = 0, T = 0) {
|
|
|
1513
1513
|
});
|
|
1514
1514
|
let E = 0, D = 0;
|
|
1515
1515
|
if (e.children?.length > 0) {
|
|
1516
|
-
for (let
|
|
1516
|
+
for (let C of e.children) setBlockSizes(C, S);
|
|
1517
1517
|
let O = getMaxChildSize(e);
|
|
1518
1518
|
E = O.width, D = O.height, log.debug("setBlockSizes abc95 maxWidth of", e.id, ":s children is ", E, D);
|
|
1519
|
-
for (let
|
|
1520
|
-
for (let
|
|
1519
|
+
for (let S of e.children) S.size && (log.debug(`abc95 Setting size of children of ${e.id} id=${S.id} ${E} ${D} ${JSON.stringify(S.size)}`), S.size.width = E * (S.widthInColumns ?? 1) + padding * ((S.widthInColumns ?? 1) - 1), S.size.height = D, S.size.x = 0, S.size.y = 0, log.debug(`abc95 updating size of ${e.id} children child:${S.id} maxWidth:${E} maxHeight:${D}`));
|
|
1520
|
+
for (let C of e.children) setBlockSizes(C, S, E, D);
|
|
1521
1521
|
let k = e.columns ?? -1, A = 0;
|
|
1522
1522
|
for (let S of e.children) A += S.widthInColumns ?? 1;
|
|
1523
1523
|
let j = e.children.length;
|
|
@@ -1525,15 +1525,15 @@ function setBlockSizes(e, C, w = 0, T = 0) {
|
|
|
1525
1525
|
let M = Math.ceil(A / j), N = j * (E + padding) + padding, P = M * (D + padding) + padding;
|
|
1526
1526
|
if (N < w) {
|
|
1527
1527
|
log.debug(`Detected to small sibling: abc95 ${e.id} siblingWidth ${w} siblingHeight ${T} width ${N}`), N = w, P = T;
|
|
1528
|
-
let
|
|
1529
|
-
log.debug("Size indata abc88", e.id, "childWidth",
|
|
1530
|
-
for (let
|
|
1528
|
+
let S = (w - j * padding - padding) / j, O = (T - M * padding - padding) / M;
|
|
1529
|
+
log.debug("Size indata abc88", e.id, "childWidth", S, "maxWidth", E), log.debug("Size indata abc88", e.id, "childHeight", O, "maxHeight", D), log.debug("Size indata abc88 xSize", j, "padding", padding);
|
|
1530
|
+
for (let C of e.children) C.size && (C.size.width = S, C.size.height = O, C.size.x = 0, C.size.y = 0);
|
|
1531
1531
|
}
|
|
1532
1532
|
if (log.debug(`abc95 (finale calc) ${e.id} xSize ${j} ySize ${M} columns ${k}${e.children.length} width=${Math.max(N, e.size?.width || 0)}`), N < (e?.size?.width || 0)) {
|
|
1533
1533
|
N = e?.size?.width || 0;
|
|
1534
|
-
let
|
|
1535
|
-
if (
|
|
1536
|
-
let w = (N -
|
|
1534
|
+
let S = k > 0 ? Math.min(e.children.length, k) : e.children.length;
|
|
1535
|
+
if (S > 0) {
|
|
1536
|
+
let w = (N - S * padding - padding) / S;
|
|
1537
1537
|
log.debug("abc95 (growing to fit) width", e.id, N, e.size?.width, w);
|
|
1538
1538
|
for (let S of e.children) S.size && (S.size.width = w);
|
|
1539
1539
|
}
|
|
@@ -1548,7 +1548,7 @@ function setBlockSizes(e, C, w = 0, T = 0) {
|
|
|
1548
1548
|
log.debug("setBlockSizes abc94 (done)", e.id, e?.size?.x, e?.size?.width, e?.size?.y, e?.size?.height);
|
|
1549
1549
|
}
|
|
1550
1550
|
__name(setBlockSizes, "setBlockSizes");
|
|
1551
|
-
function layoutBlocks(e,
|
|
1551
|
+
function layoutBlocks(e, S) {
|
|
1552
1552
|
log.debug(`abc85 layout blocks (=>layoutBlocks) ${e.id} x: ${e?.size?.x} y: ${e?.size?.y} width: ${e?.size?.width}`);
|
|
1553
1553
|
let w = e.columns ?? -1;
|
|
1554
1554
|
if (log.debug("layoutBlocks columns abc95", e.id, "=>", w, e), e.children && e.children.length > 0) {
|
|
@@ -1580,10 +1580,10 @@ function layoutBlocks(e, C) {
|
|
|
1580
1580
|
if (F != j && (j = F, A = e?.size?.x ? e?.size?.x + (-e?.size?.width / 2 || 0) : -padding, log.debug("New row in layout for block", e.id, " and child ", T.id, j)), log.debug(`abc89 layout blocks (child) id: ${T.id} Pos: ${k} (px, py) ${P},${F} (${E?.size?.x},${E?.size?.y}) parent: ${E.id} width: ${M}${padding}`), E.size) {
|
|
1581
1581
|
let e = M / 2;
|
|
1582
1582
|
T.size.x = A + padding + e, log.debug(`abc91 layout blocks (calc) px, pyid:${T.id} startingPos=X${A} new startingPosX${T.size.x} ${e} padding=${padding} width=${M} halfWidth=${e} => x:${T.size.x} y:${T.size.y} ${T.widthInColumns} (width * (child?.w || 1)) / 2 ${M * (T?.widthInColumns ?? 1) / 2}`), A = T.size.x + e;
|
|
1583
|
-
let
|
|
1584
|
-
T.size.y = E.size.y - E.size.height / 2 +
|
|
1583
|
+
let S = O.get(F) ?? 0, w = D.get(F) ?? N;
|
|
1584
|
+
T.size.y = E.size.y - E.size.height / 2 + S + w / 2 + padding, log.debug(`abc88 layout blocks (calc) px, pyid:${T.id}startingPosX${A}${padding}${e}=>x:${T.size.x}y:${T.size.y}${T.widthInColumns}(width * (child?.w || 1)) / 2${M * (T?.widthInColumns ?? 1) / 2}`);
|
|
1585
1585
|
}
|
|
1586
|
-
T.children && layoutBlocks(T,
|
|
1586
|
+
T.children && layoutBlocks(T, S);
|
|
1587
1587
|
let I = T?.widthInColumns ?? 1;
|
|
1588
1588
|
w > 0 && (I = Math.min(I, w - k % w)), k += I, log.debug("abc88 columnsPos", T, k);
|
|
1589
1589
|
}
|
|
@@ -1616,10 +1616,10 @@ function findBounds(e, { minX: S, minY: C, maxX: w, maxY: T } = {
|
|
|
1616
1616
|
}
|
|
1617
1617
|
__name(findBounds, "findBounds");
|
|
1618
1618
|
function layout(e) {
|
|
1619
|
-
let
|
|
1620
|
-
if (!
|
|
1621
|
-
setBlockSizes(
|
|
1622
|
-
let { minX: w, minY: T, maxX: E, maxY: D } = findBounds(
|
|
1619
|
+
let S = e.getBlock("root");
|
|
1620
|
+
if (!S) return;
|
|
1621
|
+
setBlockSizes(S, e, 0, 0), layoutBlocks(S, e), log.debug("getBlocks", JSON.stringify(S, null, 2));
|
|
1622
|
+
let { minX: w, minY: T, maxX: E, maxY: D } = findBounds(S), O = D - T;
|
|
1623
1623
|
return {
|
|
1624
1624
|
x: w,
|
|
1625
1625
|
y: T,
|
|
@@ -1652,88 +1652,88 @@ var createLabel_default = /* @__PURE__ */ __name(async (e, S, C, w = !1, T = !1)
|
|
|
1652
1652
|
composition: "composition",
|
|
1653
1653
|
dependency: "dependency",
|
|
1654
1654
|
lollipop: "lollipop"
|
|
1655
|
-
}, addEdgeMarker = /* @__PURE__ */ __name((e,
|
|
1655
|
+
}, addEdgeMarker = /* @__PURE__ */ __name((e, S, w, T, E, D) => {
|
|
1656
1656
|
let O = arrowTypesMap[w];
|
|
1657
1657
|
if (!O) {
|
|
1658
1658
|
log.warn(`Unknown arrow type: ${w}`);
|
|
1659
1659
|
return;
|
|
1660
1660
|
}
|
|
1661
|
-
let k =
|
|
1662
|
-
e.attr(`marker-${
|
|
1663
|
-
}, "addEdgeMarker"), edgeLabels = {}, terminalLabels = {}, insertEdgeLabel = /* @__PURE__ */ __name(async (
|
|
1664
|
-
let
|
|
1665
|
-
style:
|
|
1666
|
-
useHtmlLabels:
|
|
1667
|
-
addSvgBackground:
|
|
1661
|
+
let k = S === "start" ? "Start" : "End";
|
|
1662
|
+
e.attr(`marker-${S}`, `url(${T}#${E}_${D}-${O}${k})`);
|
|
1663
|
+
}, "addEdgeMarker"), edgeLabels = {}, terminalLabels = {}, insertEdgeLabel = /* @__PURE__ */ __name(async (S, C) => {
|
|
1664
|
+
let w = getConfig2(), T = getEffectiveHtmlLabels(w), E = S.insert("g").attr("class", "edgeLabel"), D = E.insert("g").attr("class", "label"), O = C.labelType === "markdown", k = await createText(S, C.label, {
|
|
1665
|
+
style: C.labelStyle,
|
|
1666
|
+
useHtmlLabels: T,
|
|
1667
|
+
addSvgBackground: O,
|
|
1668
1668
|
isNode: !1,
|
|
1669
|
-
markdown:
|
|
1670
|
-
width:
|
|
1671
|
-
},
|
|
1672
|
-
|
|
1673
|
-
let
|
|
1674
|
-
if (
|
|
1675
|
-
let
|
|
1676
|
-
|
|
1669
|
+
markdown: O,
|
|
1670
|
+
width: O ? void 0 : Infinity
|
|
1671
|
+
}, w);
|
|
1672
|
+
D.node().appendChild(k);
|
|
1673
|
+
let M = k.getBBox(), N = M;
|
|
1674
|
+
if (T) {
|
|
1675
|
+
let S = k.children[0], C = select_default(k);
|
|
1676
|
+
M = S.getBoundingClientRect(), N = M, C.attr("width", M.width), C.attr("height", M.height);
|
|
1677
1677
|
} else {
|
|
1678
|
-
let
|
|
1679
|
-
|
|
1678
|
+
let S = select_default(k).select("text").node();
|
|
1679
|
+
S && typeof S.getBBox == "function" && (N = S.getBBox());
|
|
1680
1680
|
}
|
|
1681
|
-
|
|
1681
|
+
D.attr("transform", computeLabelTransform(N, T)), edgeLabels[C.id] = E, C.width = M.width, C.height = M.height;
|
|
1682
1682
|
let P;
|
|
1683
|
-
if (
|
|
1684
|
-
let
|
|
1685
|
-
P =
|
|
1686
|
-
let
|
|
1687
|
-
if (
|
|
1688
|
-
let
|
|
1689
|
-
|
|
1683
|
+
if (C.startLabelLeft) {
|
|
1684
|
+
let w = S.insert("g").attr("class", "edgeTerminals"), E = w.insert("g").attr("class", "inner"), D = await createLabel_default(E, C.startLabelLeft, C.labelStyle);
|
|
1685
|
+
P = D;
|
|
1686
|
+
let O = D.getBBox();
|
|
1687
|
+
if (T) {
|
|
1688
|
+
let S = D.children[0], C = select_default(D);
|
|
1689
|
+
O = S.getBoundingClientRect(), C.attr("width", O.width), C.attr("height", O.height);
|
|
1690
1690
|
}
|
|
1691
|
-
|
|
1691
|
+
E.attr("transform", computeLabelTransform(O, T)), terminalLabels[C.id] || (terminalLabels[C.id] = {}), terminalLabels[C.id].startLeft = w, setTerminalWidth(P, C.startLabelLeft);
|
|
1692
1692
|
}
|
|
1693
|
-
if (
|
|
1694
|
-
let
|
|
1695
|
-
P =
|
|
1696
|
-
let
|
|
1697
|
-
if (
|
|
1698
|
-
let
|
|
1699
|
-
|
|
1693
|
+
if (C.startLabelRight) {
|
|
1694
|
+
let w = S.insert("g").attr("class", "edgeTerminals"), E = w.insert("g").attr("class", "inner"), D = await createLabel_default(E, C.startLabelRight, C.labelStyle);
|
|
1695
|
+
P = D;
|
|
1696
|
+
let O = D.getBBox();
|
|
1697
|
+
if (T) {
|
|
1698
|
+
let S = D.children[0], C = select_default(D);
|
|
1699
|
+
O = S.getBoundingClientRect(), C.attr("width", O.width), C.attr("height", O.height);
|
|
1700
1700
|
}
|
|
1701
|
-
|
|
1701
|
+
E.attr("transform", computeLabelTransform(O, T)), terminalLabels[C.id] || (terminalLabels[C.id] = {}), terminalLabels[C.id].startRight = w, setTerminalWidth(P, C.startLabelRight);
|
|
1702
1702
|
}
|
|
1703
|
-
if (
|
|
1704
|
-
let
|
|
1705
|
-
P =
|
|
1706
|
-
let
|
|
1707
|
-
if (
|
|
1708
|
-
let
|
|
1709
|
-
|
|
1703
|
+
if (C.endLabelLeft) {
|
|
1704
|
+
let w = S.insert("g").attr("class", "edgeTerminals"), E = w.insert("g").attr("class", "inner"), D = await createLabel_default(w, C.endLabelLeft, C.labelStyle);
|
|
1705
|
+
P = D;
|
|
1706
|
+
let O = D.getBBox();
|
|
1707
|
+
if (T) {
|
|
1708
|
+
let S = D.children[0], C = select_default(D);
|
|
1709
|
+
O = S.getBoundingClientRect(), C.attr("width", O.width), C.attr("height", O.height);
|
|
1710
1710
|
}
|
|
1711
|
-
|
|
1711
|
+
E.attr("transform", computeLabelTransform(O, T)), terminalLabels[C.id] || (terminalLabels[C.id] = {}), terminalLabels[C.id].endLeft = w, setTerminalWidth(P, C.endLabelLeft);
|
|
1712
1712
|
}
|
|
1713
|
-
if (
|
|
1714
|
-
let
|
|
1715
|
-
P =
|
|
1716
|
-
let
|
|
1717
|
-
if (
|
|
1718
|
-
let
|
|
1719
|
-
|
|
1713
|
+
if (C.endLabelRight) {
|
|
1714
|
+
let w = S.insert("g").attr("class", "edgeTerminals"), E = w.insert("g").attr("class", "inner"), D = await createLabel_default(w, C.endLabelRight, C.labelStyle);
|
|
1715
|
+
P = D;
|
|
1716
|
+
let O = D.getBBox();
|
|
1717
|
+
if (T) {
|
|
1718
|
+
let S = D.children[0], C = select_default(D);
|
|
1719
|
+
O = S.getBoundingClientRect(), C.attr("width", O.width), C.attr("height", O.height);
|
|
1720
1720
|
}
|
|
1721
|
-
|
|
1721
|
+
E.attr("transform", computeLabelTransform(O, T)), terminalLabels[C.id] || (terminalLabels[C.id] = {}), terminalLabels[C.id].endRight = w, setTerminalWidth(P, C.endLabelRight);
|
|
1722
1722
|
}
|
|
1723
|
-
return
|
|
1723
|
+
return k;
|
|
1724
1724
|
}, "insertEdgeLabel");
|
|
1725
1725
|
function setTerminalWidth(e, S) {
|
|
1726
1726
|
getEffectiveHtmlLabels(getConfig2()) && e && (e.style.width = S.length * 9 + "px", e.style.height = "12px");
|
|
1727
1727
|
}
|
|
1728
1728
|
__name(setTerminalWidth, "setTerminalWidth");
|
|
1729
|
-
var positionEdgeLabel = /* @__PURE__ */ __name((e,
|
|
1730
|
-
log.debug("Moving label abc88 ", e.id, e.label, edgeLabels[e.id],
|
|
1731
|
-
let w =
|
|
1729
|
+
var positionEdgeLabel = /* @__PURE__ */ __name((e, S) => {
|
|
1730
|
+
log.debug("Moving label abc88 ", e.id, e.label, edgeLabels[e.id], S);
|
|
1731
|
+
let w = S.updatedPath ? S.updatedPath : S.originalPath, { subGraphTitleTotalMargin: T } = getSubGraphTitleMargins(getConfig2());
|
|
1732
1732
|
if (e.label) {
|
|
1733
1733
|
let E = edgeLabels[e.id], D = e.x, O = e.y;
|
|
1734
1734
|
if (w) {
|
|
1735
1735
|
let T = utils_default.calcLabelPosition(w);
|
|
1736
|
-
log.debug("Moving label " + e.label + " from (", D, ",", O, ") to (", T.x, ",", T.y, ") abc88"),
|
|
1736
|
+
log.debug("Moving label " + e.label + " from (", D, ",", O, ") to (", T.x, ",", T.y, ") abc88"), S.updatedPath && (D = T.x, O = T.y);
|
|
1737
1737
|
}
|
|
1738
1738
|
E.attr("transform", `translate(${D}, ${O + T / 2})`);
|
|
1739
1739
|
}
|
|
@@ -1772,49 +1772,49 @@ var positionEdgeLabel = /* @__PURE__ */ __name((e, C) => {
|
|
|
1772
1772
|
}, "positionEdgeLabel"), outsideNode = /* @__PURE__ */ __name((e, S) => {
|
|
1773
1773
|
let C = e.x, w = e.y, T = Math.abs(S.x - C), E = Math.abs(S.y - w), D = e.width / 2, O = e.height / 2;
|
|
1774
1774
|
return T >= D || E >= O;
|
|
1775
|
-
}, "outsideNode"), intersection = /* @__PURE__ */ __name((e,
|
|
1775
|
+
}, "outsideNode"), intersection = /* @__PURE__ */ __name((e, S, w) => {
|
|
1776
1776
|
log.debug(`intersection calc abc89:
|
|
1777
|
-
outsidePoint: ${JSON.stringify(
|
|
1777
|
+
outsidePoint: ${JSON.stringify(S)}
|
|
1778
1778
|
insidePoint : ${JSON.stringify(w)}
|
|
1779
1779
|
node : x:${e.x} y:${e.y} w:${e.width} h:${e.height}`);
|
|
1780
|
-
let T = e.x, E = e.y, D = Math.abs(T - w.x), O = e.width / 2, k = w.x <
|
|
1781
|
-
if (Math.abs(E -
|
|
1782
|
-
let e = w.y <
|
|
1780
|
+
let T = e.x, E = e.y, D = Math.abs(T - w.x), O = e.width / 2, k = w.x < S.x ? O - D : O + D, A = e.height / 2, j = Math.abs(S.y - w.y), M = Math.abs(S.x - w.x);
|
|
1781
|
+
if (Math.abs(E - S.y) * O > Math.abs(T - S.x) * A) {
|
|
1782
|
+
let e = w.y < S.y ? S.y - A - E : E - A - S.y;
|
|
1783
1783
|
k = M * e / j;
|
|
1784
1784
|
let T = {
|
|
1785
|
-
x: w.x <
|
|
1786
|
-
y: w.y <
|
|
1785
|
+
x: w.x < S.x ? w.x + k : w.x - M + k,
|
|
1786
|
+
y: w.y < S.y ? w.y + j - e : w.y - j + e
|
|
1787
1787
|
};
|
|
1788
|
-
return k === 0 && (T.x =
|
|
1788
|
+
return k === 0 && (T.x = S.x, T.y = S.y), M === 0 && (T.x = S.x), j === 0 && (T.y = S.y), log.debug(`abc89 topp/bott calc, Q ${j}, q ${e}, R ${M}, r ${k}`, T), T;
|
|
1789
1789
|
} else {
|
|
1790
|
-
k = w.x <
|
|
1791
|
-
let e = j * k / M, E = w.x <
|
|
1790
|
+
k = w.x < S.x ? S.x - O - T : T - O - S.x;
|
|
1791
|
+
let e = j * k / M, E = w.x < S.x ? w.x + M - k : w.x - M + k, D = w.y < S.y ? w.y + e : w.y - e;
|
|
1792
1792
|
return log.debug(`sides calc abc89, Q ${j}, q ${e}, R ${M}, r ${k}`, {
|
|
1793
1793
|
_x: E,
|
|
1794
1794
|
_y: D
|
|
1795
|
-
}), k === 0 && (E =
|
|
1795
|
+
}), k === 0 && (E = S.x, D = S.y), M === 0 && (E = S.x), j === 0 && (D = S.y), {
|
|
1796
1796
|
x: E,
|
|
1797
1797
|
y: D
|
|
1798
1798
|
};
|
|
1799
1799
|
}
|
|
1800
|
-
}, "intersection"), cutPathAtIntersect = /* @__PURE__ */ __name((e,
|
|
1801
|
-
log.debug("abc88 cutPathAtIntersect", e,
|
|
1800
|
+
}, "intersection"), cutPathAtIntersect = /* @__PURE__ */ __name((e, S) => {
|
|
1801
|
+
log.debug("abc88 cutPathAtIntersect", e, S);
|
|
1802
1802
|
let w = [], T = e[0], E = !1;
|
|
1803
1803
|
return e.forEach((e) => {
|
|
1804
|
-
if (!outsideNode(
|
|
1805
|
-
let
|
|
1804
|
+
if (!outsideNode(S, e) && !E) {
|
|
1805
|
+
let C = intersection(S, T, e), D = !1;
|
|
1806
1806
|
w.forEach((e) => {
|
|
1807
|
-
D ||= e.x ===
|
|
1808
|
-
}), w.some((e) => e.x ===
|
|
1807
|
+
D ||= e.x === C.x && e.y === C.y;
|
|
1808
|
+
}), w.some((e) => e.x === C.x && e.y === C.y) || w.push(C), E = !0;
|
|
1809
1809
|
} else T = e, E || w.push(e);
|
|
1810
1810
|
}), w;
|
|
1811
|
-
}, "cutPathAtIntersect"), insertEdge = /* @__PURE__ */ __name(function(e,
|
|
1812
|
-
let
|
|
1813
|
-
log.debug("abc88 InsertEdge: edge=", w, "e=",
|
|
1814
|
-
let
|
|
1815
|
-
var I = D.node(
|
|
1816
|
-
I?.intersect && N?.intersect && (
|
|
1817
|
-
let R =
|
|
1811
|
+
}, "cutPathAtIntersect"), insertEdge = /* @__PURE__ */ __name(function(e, S, w, T, E, D, O) {
|
|
1812
|
+
let k = w.points;
|
|
1813
|
+
log.debug("abc88 InsertEdge: edge=", w, "e=", S);
|
|
1814
|
+
let j = !1, N = D.node(S.v);
|
|
1815
|
+
var I = D.node(S.w);
|
|
1816
|
+
I?.intersect && N?.intersect && (k = k.slice(1, w.points.length - 1), k.unshift(N.intersect(k[0])), k.push(I.intersect(k[k.length - 1]))), w.toCluster && (log.debug("to cluster abc88", T[w.toCluster]), k = cutPathAtIntersect(w.points, T[w.toCluster].node), j = !0), w.fromCluster && (log.debug("from cluster abc88", T[w.fromCluster]), k = cutPathAtIntersect(k.reverse(), T[w.fromCluster].node).reverse(), j = !0);
|
|
1817
|
+
let R = k.filter((e) => !Number.isNaN(e.y)), z = basis_default;
|
|
1818
1818
|
w.curve && (E === "graph" || E === "flowchart") && (z = w.curve);
|
|
1819
1819
|
let { x: B, y: V } = getLineFunctionsWithOffset(w), H = line_default().x(B).y(V).curve(z), U;
|
|
1820
1820
|
switch (w.thickness) {
|
|
@@ -1843,7 +1843,7 @@ var positionEdgeLabel = /* @__PURE__ */ __name((e, C) => {
|
|
|
1843
1843
|
let W = e.append("path").attr("d", H(R)).attr("id", w.id).attr("class", " " + U + (w.classes ? " " + w.classes : "")).attr("style", w.style), G = "";
|
|
1844
1844
|
(getConfig2().flowchart.arrowMarkerAbsolute || getConfig2().state.arrowMarkerAbsolute) && (G = getUrl(!0)), addEdgeMarkers(W, w, G, O, E);
|
|
1845
1845
|
let K = {};
|
|
1846
|
-
return
|
|
1846
|
+
return j && (K.updatedPath = k), K.originalPath = w.points, K;
|
|
1847
1847
|
}, "insertEdge"), expandAndDeduplicateDirections = /* @__PURE__ */ __name((e) => {
|
|
1848
1848
|
let S = /* @__PURE__ */ new Set();
|
|
1849
1849
|
for (let C of e) switch (C) {
|
|
@@ -2331,27 +2331,27 @@ var intersect_default = {
|
|
|
2331
2331
|
y: w + A
|
|
2332
2332
|
};
|
|
2333
2333
|
}, "intersectRect")
|
|
2334
|
-
}, labelHelper = /* @__PURE__ */ __name(async (
|
|
2335
|
-
let
|
|
2336
|
-
|
|
2337
|
-
let
|
|
2338
|
-
P =
|
|
2334
|
+
}, labelHelper = /* @__PURE__ */ __name(async (S, C, w, T) => {
|
|
2335
|
+
let E = getConfig2(), D, O = C.useHtmlLabels || getEffectiveHtmlLabels(E);
|
|
2336
|
+
D = w || "node default";
|
|
2337
|
+
let k = S.insert("g").attr("class", D).attr("id", C.domId || C.id), M = k.insert("g").attr("class", "label").attr("style", C.labelStyle), P;
|
|
2338
|
+
P = C.labelText === void 0 ? "" : typeof C.labelText == "string" ? C.labelText : C.labelText[0];
|
|
2339
2339
|
let F;
|
|
2340
|
-
F =
|
|
2341
|
-
useHtmlLabels:
|
|
2342
|
-
width:
|
|
2340
|
+
F = C.labelType === "markdown" ? createText(M, sanitizeText(decodeEntities(P), E), {
|
|
2341
|
+
useHtmlLabels: O,
|
|
2342
|
+
width: C.width || E.flowchart.wrappingWidth,
|
|
2343
2343
|
classes: "markdown-node-label"
|
|
2344
|
-
},
|
|
2345
|
-
let I = F.getBBox(), L =
|
|
2346
|
-
if (getEffectiveHtmlLabels(
|
|
2347
|
-
let
|
|
2348
|
-
await configureLabelImages(
|
|
2344
|
+
}, E) : await createLabel_default(M, sanitizeText(decodeEntities(P), E), C.labelStyle, !1, T);
|
|
2345
|
+
let I = F.getBBox(), L = C.padding / 2;
|
|
2346
|
+
if (getEffectiveHtmlLabels(E)) {
|
|
2347
|
+
let S = F.children[0], C = select_default(F);
|
|
2348
|
+
await configureLabelImages(S, P), I = S.getBoundingClientRect(), C.attr("width", I.width), C.attr("height", I.height);
|
|
2349
2349
|
}
|
|
2350
|
-
return
|
|
2351
|
-
shapeSvg:
|
|
2350
|
+
return O ? M.attr("transform", "translate(" + -I.width / 2 + ", " + -I.height / 2 + ")") : M.attr("transform", "translate(0, " + -I.height / 2 + ")"), C.centerLabel && M.attr("transform", "translate(" + -I.width / 2 + ", " + -I.height / 2 + ")"), M.insert("rect", ":first-child"), {
|
|
2351
|
+
shapeSvg: k,
|
|
2352
2352
|
bbox: I,
|
|
2353
2353
|
halfPadding: L,
|
|
2354
|
-
label:
|
|
2354
|
+
label: M
|
|
2355
2355
|
};
|
|
2356
2356
|
}, "labelHelper"), updateNodeBounds = /* @__PURE__ */ __name((e, S) => {
|
|
2357
2357
|
let C = S.node().getBBox();
|
|
@@ -2363,16 +2363,16 @@ function insertPolygonShape(e, S, C, w) {
|
|
|
2363
2363
|
}).join(" ")).attr("class", "label-container").attr("transform", "translate(" + -S / 2 + "," + C / 2 + ")");
|
|
2364
2364
|
}
|
|
2365
2365
|
__name(insertPolygonShape, "insertPolygonShape");
|
|
2366
|
-
var note_default = /* @__PURE__ */ __name(async (e,
|
|
2367
|
-
|
|
2368
|
-
let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e,
|
|
2369
|
-
log.info("Classes = ",
|
|
2366
|
+
var note_default = /* @__PURE__ */ __name(async (e, S) => {
|
|
2367
|
+
S.useHtmlLabels || getEffectiveHtmlLabels(getConfig2()) || (S.centerLabel = !0);
|
|
2368
|
+
let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, S, "node " + S.classes, !0);
|
|
2369
|
+
log.info("Classes = ", S.classes);
|
|
2370
2370
|
let D = w.insert("rect", ":first-child");
|
|
2371
|
-
return D.attr("rx",
|
|
2372
|
-
return intersect_default.rect(
|
|
2371
|
+
return D.attr("rx", S.rx).attr("ry", S.ry).attr("x", -T.width / 2 - E).attr("y", -T.height / 2 - E).attr("width", T.width + S.padding).attr("height", T.height + S.padding), updateNodeBounds(S, D), S.intersect = function(e) {
|
|
2372
|
+
return intersect_default.rect(S, e);
|
|
2373
2373
|
}, w;
|
|
2374
|
-
}, "note"), formatClass = /* @__PURE__ */ __name((e) => e ? " " + e : "", "formatClass"), getClassesFromNode = /* @__PURE__ */ __name((e, S) => `${S || "node default"}${formatClass(e.classes)} ${formatClass(e.class)}`, "getClassesFromNode"), question = /* @__PURE__ */ __name(async (e,
|
|
2375
|
-
let { shapeSvg: w, bbox: T } = await labelHelper(e,
|
|
2374
|
+
}, "note"), formatClass = /* @__PURE__ */ __name((e) => e ? " " + e : "", "formatClass"), getClassesFromNode = /* @__PURE__ */ __name((e, S) => `${S || "node default"}${formatClass(e.classes)} ${formatClass(e.class)}`, "getClassesFromNode"), question = /* @__PURE__ */ __name(async (e, S) => {
|
|
2375
|
+
let { shapeSvg: w, bbox: T } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), E = T.width + S.padding + (T.height + S.padding), D = [
|
|
2376
2376
|
{
|
|
2377
2377
|
x: E / 2,
|
|
2378
2378
|
y: 0
|
|
@@ -2392,8 +2392,8 @@ var note_default = /* @__PURE__ */ __name(async (e, C) => {
|
|
|
2392
2392
|
];
|
|
2393
2393
|
log.info("Question main (Circle)");
|
|
2394
2394
|
let O = insertPolygonShape(w, E, E, D);
|
|
2395
|
-
return O.attr("style",
|
|
2396
|
-
return log.warn("Intersect called"), intersect_default.polygon(
|
|
2395
|
+
return O.attr("style", S.style), updateNodeBounds(S, O), S.intersect = function(e) {
|
|
2396
|
+
return log.warn("Intersect called"), intersect_default.polygon(S, D, e);
|
|
2397
2397
|
}, w;
|
|
2398
2398
|
}, "question"), choice = /* @__PURE__ */ __name((e, S) => {
|
|
2399
2399
|
let C = e.insert("g").attr("class", "node default").attr("id", S.domId || S.id);
|
|
@@ -2604,88 +2604,88 @@ var note_default = /* @__PURE__ */ __name(async (e, C) => {
|
|
|
2604
2604
|
}
|
|
2605
2605
|
return C;
|
|
2606
2606
|
}, C;
|
|
2607
|
-
}, "cylinder"), rect = /* @__PURE__ */ __name(async (e,
|
|
2608
|
-
let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e,
|
|
2609
|
-
if (D.attr("class", "basic label-container").attr("style",
|
|
2610
|
-
let e = new Set(Object.keys(
|
|
2611
|
-
|
|
2607
|
+
}, "cylinder"), rect = /* @__PURE__ */ __name(async (e, S) => {
|
|
2608
|
+
let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, S, "node " + S.classes + " " + S.class, !0), D = w.insert("rect", ":first-child"), O = S.positioned ? S.width : T.width + S.padding, k = S.positioned ? S.height : T.height + S.padding, A = S.positioned ? -O / 2 : -T.width / 2 - E, j = S.positioned ? -k / 2 : -T.height / 2 - E;
|
|
2609
|
+
if (D.attr("class", "basic label-container").attr("style", S.style).attr("rx", S.rx).attr("ry", S.ry).attr("x", A).attr("y", j).attr("width", O).attr("height", k), S.props) {
|
|
2610
|
+
let e = new Set(Object.keys(S.props));
|
|
2611
|
+
S.props.borders && (applyNodePropertyBorders(D, S.props.borders, O, k), e.delete("borders")), e.forEach((e) => {
|
|
2612
2612
|
log.warn(`Unknown node property ${e}`);
|
|
2613
2613
|
});
|
|
2614
2614
|
}
|
|
2615
|
-
return updateNodeBounds(
|
|
2616
|
-
return intersect_default.rect(
|
|
2615
|
+
return updateNodeBounds(S, D), S.intersect = function(e) {
|
|
2616
|
+
return intersect_default.rect(S, e);
|
|
2617
2617
|
}, w;
|
|
2618
|
-
}, "rect"), composite = /* @__PURE__ */ __name(async (e,
|
|
2619
|
-
let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e,
|
|
2620
|
-
if (D.attr("class", "basic cluster composite label-container").attr("style",
|
|
2621
|
-
let e = new Set(Object.keys(
|
|
2622
|
-
|
|
2618
|
+
}, "rect"), composite = /* @__PURE__ */ __name(async (e, S) => {
|
|
2619
|
+
let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, S, "node " + S.classes, !0), D = w.insert("rect", ":first-child"), O = S.positioned ? S.width : T.width + S.padding, k = S.positioned ? S.height : T.height + S.padding, A = S.positioned ? -O / 2 : -T.width / 2 - E, j = S.positioned ? -k / 2 : -T.height / 2 - E;
|
|
2620
|
+
if (D.attr("class", "basic cluster composite label-container").attr("style", S.style).attr("rx", S.rx).attr("ry", S.ry).attr("x", A).attr("y", j).attr("width", O).attr("height", k), S.props) {
|
|
2621
|
+
let e = new Set(Object.keys(S.props));
|
|
2622
|
+
S.props.borders && (applyNodePropertyBorders(D, S.props.borders, O, k), e.delete("borders")), e.forEach((e) => {
|
|
2623
2623
|
log.warn(`Unknown node property ${e}`);
|
|
2624
2624
|
});
|
|
2625
2625
|
}
|
|
2626
|
-
return updateNodeBounds(
|
|
2627
|
-
return intersect_default.rect(
|
|
2626
|
+
return updateNodeBounds(S, D), S.intersect = function(e) {
|
|
2627
|
+
return intersect_default.rect(S, e);
|
|
2628
2628
|
}, w;
|
|
2629
|
-
}, "composite"), labelRect = /* @__PURE__ */ __name(async (e,
|
|
2630
|
-
let { shapeSvg: w } = await labelHelper(e,
|
|
2631
|
-
log.trace("Classes = ",
|
|
2629
|
+
}, "composite"), labelRect = /* @__PURE__ */ __name(async (e, S) => {
|
|
2630
|
+
let { shapeSvg: w } = await labelHelper(e, S, "label", !0);
|
|
2631
|
+
log.trace("Classes = ", S.class);
|
|
2632
2632
|
let T = w.insert("rect", ":first-child");
|
|
2633
|
-
if (T.attr("width", 0).attr("height", 0), w.attr("class", "label edgeLabel"),
|
|
2634
|
-
let e = new Set(Object.keys(
|
|
2635
|
-
|
|
2633
|
+
if (T.attr("width", 0).attr("height", 0), w.attr("class", "label edgeLabel"), S.props) {
|
|
2634
|
+
let e = new Set(Object.keys(S.props));
|
|
2635
|
+
S.props.borders && (applyNodePropertyBorders(T, S.props.borders, 0, 0), e.delete("borders")), e.forEach((e) => {
|
|
2636
2636
|
log.warn(`Unknown node property ${e}`);
|
|
2637
2637
|
});
|
|
2638
2638
|
}
|
|
2639
|
-
return updateNodeBounds(
|
|
2640
|
-
return intersect_default.rect(
|
|
2639
|
+
return updateNodeBounds(S, T), S.intersect = function(e) {
|
|
2640
|
+
return intersect_default.rect(S, e);
|
|
2641
2641
|
}, w;
|
|
2642
2642
|
}, "labelRect");
|
|
2643
|
-
function applyNodePropertyBorders(
|
|
2643
|
+
function applyNodePropertyBorders(e, w, T, E) {
|
|
2644
2644
|
let D = [], O = /* @__PURE__ */ __name((e) => {
|
|
2645
2645
|
D.push(e, 0);
|
|
2646
2646
|
}, "addBorder"), k = /* @__PURE__ */ __name((e) => {
|
|
2647
2647
|
D.push(0, e);
|
|
2648
2648
|
}, "skipBorder");
|
|
2649
|
-
w.includes("t") ? (log.debug("add top border"), O(T)) : k(T), w.includes("r") ? (log.debug("add right border"), O(E)) : k(E), w.includes("b") ? (log.debug("add bottom border"), O(T)) : k(T), w.includes("l") ? (log.debug("add left border"), O(E)) : k(E),
|
|
2649
|
+
w.includes("t") ? (log.debug("add top border"), O(T)) : k(T), w.includes("r") ? (log.debug("add right border"), O(E)) : k(E), w.includes("b") ? (log.debug("add bottom border"), O(T)) : k(T), w.includes("l") ? (log.debug("add left border"), O(E)) : k(E), e.attr("stroke-dasharray", D.join(" "));
|
|
2650
2650
|
}
|
|
2651
2651
|
__name(applyNodePropertyBorders, "applyNodePropertyBorders");
|
|
2652
|
-
var rectWithTitle = /* @__PURE__ */ __name(async (
|
|
2653
|
-
let
|
|
2654
|
-
|
|
2655
|
-
let
|
|
2656
|
-
|
|
2657
|
-
let P = await createLabel_default(
|
|
2652
|
+
var rectWithTitle = /* @__PURE__ */ __name(async (S, w) => {
|
|
2653
|
+
let T;
|
|
2654
|
+
T = w.classes ? "node " + w.classes : "node default";
|
|
2655
|
+
let E = S.insert("g").attr("class", T).attr("id", w.domId || w.id), D = E.insert("rect", ":first-child"), O = E.insert("line"), k = E.insert("g").attr("class", "label"), M = w.labelText.flat ? w.labelText.flat() : w.labelText, N = "";
|
|
2656
|
+
N = typeof M == "object" ? M[0] : M, log.info("Label text abc79", N, M, typeof M == "object");
|
|
2657
|
+
let P = await createLabel_default(k, N, w.labelStyle, !0, !0), F = {
|
|
2658
2658
|
width: 0,
|
|
2659
2659
|
height: 0
|
|
2660
2660
|
};
|
|
2661
2661
|
if (getEffectiveHtmlLabels(getConfig2())) {
|
|
2662
|
-
let
|
|
2663
|
-
F =
|
|
2662
|
+
let S = P.children[0], C = select_default(P);
|
|
2663
|
+
F = S.getBoundingClientRect(), C.attr("width", F.width), C.attr("height", F.height);
|
|
2664
2664
|
}
|
|
2665
|
-
log.info("Text 2",
|
|
2666
|
-
let I =
|
|
2665
|
+
log.info("Text 2", M);
|
|
2666
|
+
let I = M.slice(1, M.length), L = P.getBBox(), R = await createLabel_default(k, I.join ? I.join("<br/>") : I, w.labelStyle, !0, !0);
|
|
2667
2667
|
if (getEffectiveHtmlLabels(getConfig2())) {
|
|
2668
|
-
let
|
|
2669
|
-
F =
|
|
2668
|
+
let S = R.children[0], C = select_default(R);
|
|
2669
|
+
F = S.getBoundingClientRect(), C.attr("width", F.width), C.attr("height", F.height);
|
|
2670
2670
|
}
|
|
2671
|
-
let z =
|
|
2672
|
-
return select_default(R).attr("transform", "translate( " + (F.width > L.width ? 0 : (L.width - F.width) / 2) + ", " + (L.height + z + 5) + ")"), select_default(P).attr("transform", "translate( " + (F.width < L.width ? 0 : -(L.width - F.width) / 2) + ", 0)"), F =
|
|
2673
|
-
return intersect_default.rect(
|
|
2674
|
-
},
|
|
2671
|
+
let z = w.padding / 2;
|
|
2672
|
+
return select_default(R).attr("transform", "translate( " + (F.width > L.width ? 0 : (L.width - F.width) / 2) + ", " + (L.height + z + 5) + ")"), select_default(P).attr("transform", "translate( " + (F.width < L.width ? 0 : -(L.width - F.width) / 2) + ", 0)"), F = k.node().getBBox(), k.attr("transform", "translate(" + -F.width / 2 + ", " + (-F.height / 2 - z + 3) + ")"), D.attr("class", "outer title-state").attr("x", -F.width / 2 - z).attr("y", -F.height / 2 - z).attr("width", F.width + w.padding).attr("height", F.height + w.padding), O.attr("class", "divider").attr("x1", -F.width / 2 - z).attr("x2", F.width / 2 + z).attr("y1", -F.height / 2 - z + L.height + z).attr("y2", -F.height / 2 - z + L.height + z), updateNodeBounds(w, D), w.intersect = function(e) {
|
|
2673
|
+
return intersect_default.rect(w, e);
|
|
2674
|
+
}, E;
|
|
2675
2675
|
}, "rectWithTitle"), stadium = /* @__PURE__ */ __name(async (e, S) => {
|
|
2676
2676
|
let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.height + S.padding, E = w.width + T / 4 + S.padding;
|
|
2677
2677
|
return updateNodeBounds(S, C.insert("rect", ":first-child").attr("style", S.style).attr("rx", T / 2).attr("ry", T / 2).attr("x", -E / 2).attr("y", -T / 2).attr("width", E).attr("height", T)), S.intersect = function(e) {
|
|
2678
2678
|
return intersect_default.rect(S, e);
|
|
2679
2679
|
}, C;
|
|
2680
|
-
}, "stadium"), circle2 = /* @__PURE__ */ __name(async (e,
|
|
2681
|
-
let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e,
|
|
2682
|
-
return D.attr("style",
|
|
2683
|
-
return log.info("Circle intersect",
|
|
2680
|
+
}, "stadium"), circle2 = /* @__PURE__ */ __name(async (e, S) => {
|
|
2681
|
+
let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), D = w.insert("circle", ":first-child");
|
|
2682
|
+
return D.attr("style", S.style).attr("rx", S.rx).attr("ry", S.ry).attr("r", T.width / 2 + E).attr("width", T.width + S.padding).attr("height", T.height + S.padding), log.info("Circle main"), updateNodeBounds(S, D), S.intersect = function(e) {
|
|
2683
|
+
return log.info("Circle intersect", S, T.width / 2 + E, e), intersect_default.circle(S, T.width / 2 + E, e);
|
|
2684
2684
|
}, w;
|
|
2685
|
-
}, "circle"), doublecircle = /* @__PURE__ */ __name(async (e,
|
|
2686
|
-
let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e,
|
|
2687
|
-
return D.attr("class",
|
|
2688
|
-
return log.info("DoubleCircle intersect",
|
|
2685
|
+
}, "circle"), doublecircle = /* @__PURE__ */ __name(async (e, S) => {
|
|
2686
|
+
let { shapeSvg: w, bbox: T, halfPadding: E } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), D = w.insert("g", ":first-child"), O = D.insert("circle"), k = D.insert("circle");
|
|
2687
|
+
return D.attr("class", S.class), O.attr("style", S.style).attr("rx", S.rx).attr("ry", S.ry).attr("r", T.width / 2 + E + 5).attr("width", T.width + S.padding + 10).attr("height", T.height + S.padding + 10), k.attr("style", S.style).attr("rx", S.rx).attr("ry", S.ry).attr("r", T.width / 2 + E).attr("width", T.width + S.padding).attr("height", T.height + S.padding), log.info("DoubleCircle main"), updateNodeBounds(S, O), S.intersect = function(e) {
|
|
2688
|
+
return log.info("DoubleCircle intersect", S, T.width / 2 + E + 5, e), intersect_default.circle(S, T.width / 2 + E + 5, e);
|
|
2689
2689
|
}, w;
|
|
2690
2690
|
}, "doublecircle"), subroutine = /* @__PURE__ */ __name(async (e, S) => {
|
|
2691
2691
|
let { shapeSvg: C, bbox: w } = await labelHelper(e, S, getClassesFromNode(S, void 0), !0), T = w.width + S.padding, E = w.height + S.padding, D = [
|
|
@@ -2774,62 +2774,62 @@ var rectWithTitle = /* @__PURE__ */ __name(async (e, C) => {
|
|
|
2774
2774
|
subroutine,
|
|
2775
2775
|
fork: forkJoin,
|
|
2776
2776
|
join: forkJoin,
|
|
2777
|
-
class_box: /* @__PURE__ */ __name(async (
|
|
2778
|
-
let
|
|
2779
|
-
|
|
2780
|
-
let
|
|
2777
|
+
class_box: /* @__PURE__ */ __name(async (S, C) => {
|
|
2778
|
+
let w = C.padding / 2, T;
|
|
2779
|
+
T = C.classes ? "node " + C.classes : "node default";
|
|
2780
|
+
let E = S.insert("g").attr("class", T).attr("id", C.domId || C.id), D = E.insert("rect", ":first-child"), O = E.insert("line"), k = E.insert("line"), M = 0, N = 4, P = E.insert("g").attr("class", "label"), F = 0, I = C.classData.annotations?.[0], L = await createLabel_default(P, C.classData.annotations[0] ? "«" + C.classData.annotations[0] + "»" : "", C.labelStyle, !0, !0), R = L.getBBox();
|
|
2781
2781
|
if (getEffectiveHtmlLabels(getConfig2())) {
|
|
2782
|
-
let
|
|
2783
|
-
R =
|
|
2782
|
+
let S = L.children[0], C = select_default(L);
|
|
2783
|
+
R = S.getBoundingClientRect(), C.attr("width", R.width), C.attr("height", R.height);
|
|
2784
2784
|
}
|
|
2785
|
-
|
|
2786
|
-
let z =
|
|
2787
|
-
|
|
2788
|
-
let B = await createLabel_default(P, z,
|
|
2785
|
+
C.classData.annotations[0] && (N += R.height + 4, M += R.width);
|
|
2786
|
+
let z = C.classData.label;
|
|
2787
|
+
C.classData.type !== void 0 && C.classData.type !== "" && (getEffectiveHtmlLabels(getConfig2()) ? z += "<" + C.classData.type + ">" : z += "<" + C.classData.type + ">");
|
|
2788
|
+
let B = await createLabel_default(P, z, C.labelStyle, !0, !0);
|
|
2789
2789
|
select_default(B).attr("class", "classTitle");
|
|
2790
2790
|
let V = B.getBBox();
|
|
2791
2791
|
if (getEffectiveHtmlLabels(getConfig2())) {
|
|
2792
|
-
let
|
|
2793
|
-
V =
|
|
2792
|
+
let S = B.children[0], C = select_default(B);
|
|
2793
|
+
V = S.getBoundingClientRect(), C.attr("width", V.width), C.attr("height", V.height);
|
|
2794
2794
|
}
|
|
2795
|
-
|
|
2795
|
+
N += V.height + 4, V.width > M && (M = V.width);
|
|
2796
2796
|
let H = [];
|
|
2797
|
-
|
|
2798
|
-
let
|
|
2799
|
-
getEffectiveHtmlLabels(getConfig2()) && (
|
|
2800
|
-
let
|
|
2797
|
+
C.classData.members.forEach(async (S) => {
|
|
2798
|
+
let w = S.getDisplayDetails(), T = w.displayText;
|
|
2799
|
+
getEffectiveHtmlLabels(getConfig2()) && (T = T.replace(/</g, "<").replace(/>/g, ">"));
|
|
2800
|
+
let E = await createLabel_default(P, T, w.cssStyle ? w.cssStyle : C.labelStyle, !0, !0), D = E.getBBox();
|
|
2801
2801
|
if (getEffectiveHtmlLabels(getConfig2())) {
|
|
2802
|
-
let
|
|
2803
|
-
|
|
2802
|
+
let S = E.children[0], C = select_default(E);
|
|
2803
|
+
D = S.getBoundingClientRect(), C.attr("width", D.width), C.attr("height", D.height);
|
|
2804
2804
|
}
|
|
2805
|
-
|
|
2806
|
-
}),
|
|
2805
|
+
D.width > M && (M = D.width), N += D.height + 4, H.push(E);
|
|
2806
|
+
}), N += 8;
|
|
2807
2807
|
let U = [];
|
|
2808
|
-
if (
|
|
2809
|
-
let
|
|
2810
|
-
getEffectiveHtmlLabels(getConfig2()) && (
|
|
2811
|
-
let
|
|
2808
|
+
if (C.classData.methods.forEach(async (S) => {
|
|
2809
|
+
let w = S.getDisplayDetails(), T = w.displayText;
|
|
2810
|
+
getEffectiveHtmlLabels(getConfig2()) && (T = T.replace(/</g, "<").replace(/>/g, ">"));
|
|
2811
|
+
let E = await createLabel_default(P, T, w.cssStyle ? w.cssStyle : C.labelStyle, !0, !0), D = E.getBBox();
|
|
2812
2812
|
if (getEffectiveHtmlLabels(getConfig2())) {
|
|
2813
|
-
let
|
|
2814
|
-
|
|
2813
|
+
let S = E.children[0], C = select_default(E);
|
|
2814
|
+
D = S.getBoundingClientRect(), C.attr("width", D.width), C.attr("height", D.height);
|
|
2815
2815
|
}
|
|
2816
|
-
|
|
2817
|
-
}),
|
|
2818
|
-
let
|
|
2819
|
-
select_default(L).attr("transform", "translate( " + (-1 *
|
|
2816
|
+
D.width > M && (M = D.width), N += D.height + 4, U.push(E);
|
|
2817
|
+
}), N += 8, I) {
|
|
2818
|
+
let S = (M - R.width) / 2;
|
|
2819
|
+
select_default(L).attr("transform", "translate( " + (-1 * M / 2 + S) + ", " + -1 * N / 2 + ")"), F = R.height + 4;
|
|
2820
2820
|
}
|
|
2821
|
-
let W = (
|
|
2822
|
-
return select_default(B).attr("transform", "translate( " + (-1 *
|
|
2823
|
-
select_default(
|
|
2824
|
-
let
|
|
2825
|
-
F += (
|
|
2826
|
-
}), F += 8,
|
|
2827
|
-
select_default(
|
|
2828
|
-
let
|
|
2829
|
-
F += (
|
|
2830
|
-
}),
|
|
2831
|
-
return intersect_default.rect(
|
|
2832
|
-
},
|
|
2821
|
+
let W = (M - V.width) / 2;
|
|
2822
|
+
return select_default(B).attr("transform", "translate( " + (-1 * M / 2 + W) + ", " + (-1 * N / 2 + F) + ")"), F += V.height + 4, O.attr("class", "divider").attr("x1", -M / 2 - w).attr("x2", M / 2 + w).attr("y1", -N / 2 - w + 8 + F).attr("y2", -N / 2 - w + 8 + F), F += 8, H.forEach((S) => {
|
|
2823
|
+
select_default(S).attr("transform", "translate( " + -M / 2 + ", " + (-1 * N / 2 + F + 8 / 2) + ")");
|
|
2824
|
+
let C = S?.getBBox();
|
|
2825
|
+
F += (C?.height ?? 0) + 4;
|
|
2826
|
+
}), F += 8, k.attr("class", "divider").attr("x1", -M / 2 - w).attr("x2", M / 2 + w).attr("y1", -N / 2 - w + 8 + F).attr("y2", -N / 2 - w + 8 + F), F += 8, U.forEach((S) => {
|
|
2827
|
+
select_default(S).attr("transform", "translate( " + -M / 2 + ", " + (-1 * N / 2 + F) + ")");
|
|
2828
|
+
let C = S?.getBBox();
|
|
2829
|
+
F += (C?.height ?? 0) + 4;
|
|
2830
|
+
}), D.attr("style", C.style).attr("class", "outer title-state").attr("x", -M / 2 - w).attr("y", -(N / 2) - w).attr("width", M + C.padding).attr("height", N + C.padding), updateNodeBounds(C, D), C.intersect = function(e) {
|
|
2831
|
+
return intersect_default.rect(C, e);
|
|
2832
|
+
}, E;
|
|
2833
2833
|
}, "class_box")
|
|
2834
2834
|
}, nodeElems = {}, insertNode = /* @__PURE__ */ __name(async (e, S, C) => {
|
|
2835
2835
|
let w, T;
|
|
@@ -2839,21 +2839,21 @@ var rectWithTitle = /* @__PURE__ */ __name(async (e, C) => {
|
|
|
2839
2839
|
} else T = await shapes[S.shape](e, S, C), w = T;
|
|
2840
2840
|
return S.tooltip && T.attr("title", S.tooltip), S.class && T.attr("class", "node default " + S.class), nodeElems[S.id] = w, S.haveCallback && nodeElems[S.id].attr("class", nodeElems[S.id].attr("class") + " clickable"), w;
|
|
2841
2841
|
}, "insertNode"), positionNode = /* @__PURE__ */ __name((e) => {
|
|
2842
|
-
let
|
|
2842
|
+
let S = nodeElems[e.id];
|
|
2843
2843
|
log.trace("Transforming node", e.diff, e, "translate(" + (e.x - e.width / 2 - 5) + ", " + e.width / 2 + ")");
|
|
2844
2844
|
let w = e.diff || 0;
|
|
2845
|
-
return e.clusterNode ?
|
|
2845
|
+
return e.clusterNode ? S.attr("transform", "translate(" + (e.x + w - e.width / 2) + ", " + (e.y - e.height / 2 - 8) + ")") : S.attr("transform", "translate(" + e.x + ", " + e.y + ")"), w;
|
|
2846
2846
|
}, "positionNode");
|
|
2847
2847
|
function getNodeFromBlock(e, S, C = !1) {
|
|
2848
2848
|
let w = e, T = "default";
|
|
2849
2849
|
(w?.classes?.length || 0) > 0 && (T = (w?.classes ?? []).join(" ")), T += " flowchart-label";
|
|
2850
|
-
let E = 0, D = "",
|
|
2850
|
+
let E = 0, D = "", O;
|
|
2851
2851
|
switch (w.type) {
|
|
2852
2852
|
case "round":
|
|
2853
2853
|
E = 5, D = "rect";
|
|
2854
2854
|
break;
|
|
2855
2855
|
case "composite":
|
|
2856
|
-
E = 0, D = "composite",
|
|
2856
|
+
E = 0, D = "composite", O = 0;
|
|
2857
2857
|
break;
|
|
2858
2858
|
case "square":
|
|
2859
2859
|
D = "rect";
|
|
@@ -2932,7 +2932,7 @@ function getNodeFromBlock(e, S, C = !1) {
|
|
|
2932
2932
|
positioned: C,
|
|
2933
2933
|
intersect: void 0,
|
|
2934
2934
|
type: w.type,
|
|
2935
|
-
padding:
|
|
2935
|
+
padding: O ?? getConfig()?.block?.padding ?? 0,
|
|
2936
2936
|
widthInColumns: w.widthInColumns ?? 1
|
|
2937
2937
|
};
|
|
2938
2938
|
}
|
|
@@ -3033,22 +3033,22 @@ var diagram = {
|
|
|
3033
3033
|
parser: block_default,
|
|
3034
3034
|
db: blockDB_default,
|
|
3035
3035
|
renderer: {
|
|
3036
|
-
draw: /* @__PURE__ */ __name(async function(
|
|
3037
|
-
let { securityLevel:
|
|
3038
|
-
|
|
3039
|
-
let
|
|
3040
|
-
|
|
3041
|
-
let
|
|
3036
|
+
draw: /* @__PURE__ */ __name(async function(S, w, T, E) {
|
|
3037
|
+
let { securityLevel: D, block: A } = getConfig(), j = E.db;
|
|
3038
|
+
j.setDiagramId(w);
|
|
3039
|
+
let M;
|
|
3040
|
+
D === "sandbox" && (M = select_default("#i" + w));
|
|
3041
|
+
let N = select_default(D === "sandbox" ? M.nodes()[0].contentDocument.body : "body"), P = D === "sandbox" ? N.select(`[id="${w}"]`) : select_default(`[id="${w}"]`);
|
|
3042
3042
|
markers_default(P, [
|
|
3043
3043
|
"point",
|
|
3044
3044
|
"circle",
|
|
3045
3045
|
"cross"
|
|
3046
|
-
],
|
|
3047
|
-
let F =
|
|
3048
|
-
await calculateBlockSizes(R, F,
|
|
3049
|
-
let z = layout(
|
|
3050
|
-
if (await insertBlocks(R, F,
|
|
3051
|
-
let e = z,
|
|
3046
|
+
], E.type, w);
|
|
3047
|
+
let F = j.getBlocks(), I = j.getBlocksFlat(), L = j.getEdges(), R = P.insert("g").attr("class", "block");
|
|
3048
|
+
await calculateBlockSizes(R, F, j);
|
|
3049
|
+
let z = layout(j);
|
|
3050
|
+
if (await insertBlocks(R, F, j), await insertEdges(R, L, I, j, w), z) {
|
|
3051
|
+
let e = z, S = Math.max(1, Math.round(.125 * (e.width / e.height))), w = e.height + S + 10, T = e.width + 10, { useMaxWidth: E } = A;
|
|
3052
3052
|
configureSvgSize(P, w, T, !!E), log.debug("Here Bounds", z, e), P.attr("viewBox", `${e.x - 5} ${e.y - 5} ${e.width + 10} ${e.height + 10}`);
|
|
3053
3053
|
}
|
|
3054
3054
|
}, "draw"),
|