@kestra-io/ui-libs 0.0.222 → 0.0.224
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/{FlowYamlUtils-B2iMnYvW.js → FlowYamlUtils-BnXiRqSX.js} +44 -44
- package/dist/{FlowYamlUtils-B2iMnYvW.js.map → FlowYamlUtils-BnXiRqSX.js.map} +1 -1
- package/dist/VueFlowUtils-DKrM_RaI.js +4513 -0
- package/dist/VueFlowUtils-DKrM_RaI.js.map +1 -0
- package/dist/VueFlowUtils-Dh7ybprm.cjs +2 -0
- package/dist/VueFlowUtils-Dh7ybprm.cjs.map +1 -0
- package/dist/components/nodes/BasicNode.vue.d.ts +1 -0
- package/dist/components/nodes/BasicNode.vue.d.ts.map +1 -1
- package/dist/components/nodes/CollapsedClusterNode.vue.d.ts +1 -0
- package/dist/components/nodes/CollapsedClusterNode.vue.d.ts.map +1 -1
- package/dist/components/nodes/EdgeNode.vue.d.ts +1 -0
- package/dist/components/nodes/TaskNode.vue.d.ts +1 -0
- package/dist/components/nodes/TaskNode.vue.d.ts.map +1 -1
- package/dist/components/nodes/TriggerNode.vue.d.ts +1 -0
- package/dist/components/nodes/TriggerNode.vue.d.ts.map +1 -1
- package/dist/components/topology/Topology.vue.d.ts +15 -4
- package/dist/components/topology/Topology.vue.d.ts.map +1 -1
- package/dist/components/topology/injectionKeys.d.ts +1 -0
- package/dist/components/topology/injectionKeys.d.ts.map +1 -1
- package/dist/kestra-flowyamlutils.es.js +6 -6
- package/dist/kestra-index.cjs.js +16 -16
- package/dist/kestra-index.cjs.js.map +1 -1
- package/dist/kestra-index.es.js +3940 -8270
- package/dist/kestra-index.es.js.map +1 -1
- package/dist/kestra-vueflowutils.cjs.js +2 -0
- package/dist/kestra-vueflowutils.cjs.js.map +1 -0
- package/dist/kestra-vueflowutils.es.js +33 -0
- package/dist/kestra-vueflowutils.es.js.map +1 -0
- package/dist/ui-libs.css +1 -1
- package/dist/utils/VueFlowUtils.d.ts +102 -49
- package/dist/utils/VueFlowUtils.d.ts.map +1 -1
- package/dist/utils/constants.d.ts +1 -0
- package/dist/utils/constants.d.ts.map +1 -1
- package/package.json +9 -1
- package/src/components/misc/ExecutionInformations.vue +2 -2
- package/src/components/nodes/TaskNode.vue +33 -1
- package/src/components/topology/Topology.vue +11 -3
- package/src/components/topology/injectionKeys.ts +2 -1
- package/src/scss/vue-material-design-icon.scss +26 -0
- package/src/utils/VueFlowUtils.test.ts +86 -0
- package/src/utils/VueFlowUtils.ts +566 -424
- package/src/utils/constants.ts +1 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@vue-flow/core");const e=require("./VueFlowUtils-Dh7ybprm.cjs");require("./FlowYamlUtils-CwE38P6I.cjs");exports.areTasksIdenticalInGraphUntilTask=e.areTasksIdenticalInGraphUntilTask;exports.cleanGraph=e.cleanGraph;exports.computeClusterColor=e.computeClusterColor;exports.default=e.VueFlowUtils;exports.flowHaveTasks=e.flowHaveTasks;exports.generateDagreGraph=e.generateDagreGraph;exports.generateGraph=e.generateGraph;exports.getEdgeColor=e.getEdgeColor;exports.getNextTaskNodes=e.getNextTaskNodes;exports.getNodeHeight=e.getNodeHeight;exports.getNodePosition=e.getNodePosition;exports.getNodeWidth=e.getNodeWidth;exports.getRootNodes=e.getRootNodes;exports.getTargetNodesEdges=e.getTargetNodesEdges;exports.haveAdd=e.haveAdd;exports.isClusterRootOrEnd=e.isClusterRootOrEnd;exports.isCollapsedCluster=e.isCollapsedCluster;exports.isExpandableTask=e.isExpandableTask;exports.isTaskNode=e.isTaskNode;exports.isTriggerNode=e.isTriggerNode;exports.linkedElements=e.linkedElements;exports.nodeColor=e.nodeColor;exports.predecessorsEdge=e.predecessorsEdge;exports.predecessorsNode=e.predecessorsNode;exports.replaceIfCollapsed=e.replaceIfCollapsed;exports.successorsEdge=e.successorsEdge;exports.successorsNode=e.successorsNode;
|
|
2
|
+
//# sourceMappingURL=kestra-vueflowutils.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kestra-vueflowutils.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import "@vue-flow/core";
|
|
2
|
+
import { I as r, c as t, B as d, V as l, w as g, k as i, g as p, z as n, H as c, o as N, m as h, n as k, F as u, G as C, y as T, A as E, u as m, D as G, q as f, t as x, l as I, x as v, p as H, i as w, v as A, h as D, j as R } from "./VueFlowUtils-DKrM_RaI.js";
|
|
3
|
+
import "./FlowYamlUtils-BnXiRqSX.js";
|
|
4
|
+
export {
|
|
5
|
+
r as areTasksIdenticalInGraphUntilTask,
|
|
6
|
+
t as cleanGraph,
|
|
7
|
+
d as computeClusterColor,
|
|
8
|
+
l as default,
|
|
9
|
+
g as flowHaveTasks,
|
|
10
|
+
i as generateDagreGraph,
|
|
11
|
+
p as generateGraph,
|
|
12
|
+
n as getEdgeColor,
|
|
13
|
+
c as getNextTaskNodes,
|
|
14
|
+
N as getNodeHeight,
|
|
15
|
+
h as getNodePosition,
|
|
16
|
+
k as getNodeWidth,
|
|
17
|
+
u as getRootNodes,
|
|
18
|
+
C as getTargetNodesEdges,
|
|
19
|
+
T as haveAdd,
|
|
20
|
+
E as isClusterRootOrEnd,
|
|
21
|
+
m as isCollapsedCluster,
|
|
22
|
+
G as isExpandableTask,
|
|
23
|
+
f as isTaskNode,
|
|
24
|
+
x as isTriggerNode,
|
|
25
|
+
I as linkedElements,
|
|
26
|
+
v as nodeColor,
|
|
27
|
+
H as predecessorsEdge,
|
|
28
|
+
w as predecessorsNode,
|
|
29
|
+
A as replaceIfCollapsed,
|
|
30
|
+
D as successorsEdge,
|
|
31
|
+
R as successorsNode
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=kestra-vueflowutils.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kestra-vueflowutils.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
package/dist/ui-libs.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--ks-background-body: #f9f9fa;--ks-background-box: #f9f9fa;--ks-background-cancelled: #fec9cb;--ks-background-card: #ffffff;--ks-background-card-hover: #ffffff;--ks-background-card-opacity: rgba(27, 28, 35, .8980392157);--ks-background-created: rgba(199, 240, 255, .39);--ks-background-error: #fff2f3;--ks-background-failed: #fff2f3;--ks-background-info: #c7f0ff;--ks-background-input: #ffffff;--ks-background-killed: #fffbef;--ks-background-killing: #fffbef;--ks-background-left-menu: #ffffff;--ks-background-logo: #2c0059;--ks-background-panel: #ffffff;--ks-background-paused: rgba(178, 178, 181, .2588235294);--ks-background-queued: #fffbef;--ks-background-restarted: #c7f0ff;--ks-background-retried: rgba(23, 97, 253, .2);--ks-background-retrying: #c7f0ff;--ks-background-running: #c7f0ff;--ks-background-skipped: rgba(178, 178, 181, .2588235294);--ks-background-success: #e4f9f3;--ks-background-table-header: #f9f9fa;--ks-background-table-row: #ffffff;--ks-background-table-row-hover: #f9f9fa;--ks-background-warning: #fff2ea;--ks-badge-background: #c7f0ff;--ks-badge-border: #3991ff;--ks-badge-content: #134ecc;--ks-border-active: #8405ff;--ks-border-cancelled: #fd7278;--ks-border-created: #7fbbff;--ks-border-error: #fd7278;--ks-border-failed: #fd7278;--ks-border-inactive: #ecebef;--ks-border-info: #7fbbff;--ks-border-killed: #ddc46d;--ks-border-killing: #fde592;--ks-border-paused: #cfd3d6;--ks-border-primary: #e1e3e5;--ks-border-queued: #ddc46d;--ks-border-restarted: #a2cdff;--ks-border-retried: #134ecc;--ks-border-retrying: #1761fd;--ks-border-running: #3991ff;--ks-border-secondary: #ecebef;--ks-border-skipped: #cfd3d6;--ks-border-success: #21ce9c;--ks-border-system: #3991ff;--ks-border-warning: #e9985b;--ks-button-background-inactive: #f9f9fa;--ks-button-background-primary: #8405ff;--ks-button-background-primary-active: #7400df;--ks-button-background-primary-hover: #8c4bff;--ks-button-background-secondary: #ffffff;--ks-button-background-secondary-active: #ecebef;--ks-button-background-secondary-hover: #f9f9fa;--ks-button-background-success: #029e73;--ks-button-background-success-active: #017f5c;--ks-button-background-success-hover: #02be8a;--ks-button-content-primary: #ffffff;--ks-card-shadow: #ecebef;--ks-chart-cancelled: #fd9297;--ks-chart-created: #1761fd;--ks-chart-debug: #7fbbff;--ks-chart-error: #fd7278;--ks-chart-failed: #fd7278;--ks-chart-info: #5bb8ff;--ks-chart-killed: #fdeaa8;--ks-chart-killing: #fde89d;--ks-chart-paused: #cfd3d6;--ks-chart-queued: #fdedb3;--ks-chart-restarted: #c7f0ff;--ks-chart-retried: #a2cdff;--ks-chart-retrying: #7fbbff;--ks-chart-running: #5bb8ff;--ks-chart-skipped: #cfd3d6;--ks-chart-success: #02be8a;--ks-chart-trace: #cfd3d6;--ks-chart-warn: #eeae7e;--ks-chart-warning: #f3c4a1;--ks-content-alert: #ab0009;--ks-content-cancelled: #ab0009;--ks-content-created: #1761fd;--ks-content-error: #ab0009;--ks-content-failed: #ab0009;--ks-content-id: #8405ff;--ks-content-inactive: #9797a6;--ks-content-info: #134ecc;--ks-content-inverse: #ffffff;--ks-content-killed: #7e703e;--ks-content-killing: #dd5f00;--ks-content-link: #8405ff;--ks-content-link-hover: #9470ff;--ks-content-paused: #2f3342;--ks-content-primary: #14181f;--ks-content-queued: #9e8c4e;--ks-content-restarted: #134ecc;--ks-content-retried: #051538;--ks-content-retrying: #0e3b9a;--ks-content-running: #134ecc;--ks-content-secondary: #262a35;--ks-content-skipped: #2f3342;--ks-content-success: #016046;--ks-content-tertiary: #9797a6;--ks-content-warning: #dd5f00;--ks-dialog-background: #ffffff;--ks-dialog-border: #cfd3d6;--ks-dialog-header: #ffffff;--ks-dialog-headerbtn: #9797a6;--ks-dialog-headerbtn-hover: #9470ff;--ks-dropdown-background: #ffffff;--ks-dropdown-background-active: #f9f9fa;--ks-dropdown-background-hover: #f9f9fa;--ks-editor-number: #c15300;--ks-editor-pabble: #e58238;--ks-editor-property: #8405ff;--ks-editor-punctuation: #404559;--ks-editor-value: #14181f;--ks-log-background-debug: #c7f0ff;--ks-log-background-error: #fff2f3;--ks-log-background-info: #c7f0ff;--ks-log-background-trace: #ecebef;--ks-log-background-warn: #fff2ea;--ks-log-border-debug: #3991ff;--ks-log-border-error: #e3262f;--ks-log-border-info: #7fbbff;--ks-log-border-trace: #9797a6;--ks-log-border-warn: #e58238;--ks-log-content-debug: #134ecc;--ks-log-content-error: #ab0009;--ks-log-content-info: #134ecc;--ks-log-content-trace: #2f3342;--ks-log-content-warn: #8a3b00;--ks-scrollbar-background: #ecebef;--ks-scrollbar-content: #cfd3d6;--ks-select-active: #ffffff;--ks-select-active-icon: #8405ff;--ks-select-background: #ffffff;--ks-select-border: #cfd3d6;--ks-select-hover: #f9f9fa;--ks-tag-background: #ecebef;--ks-tag-background-active: #f9f9fa;--ks-tag-background-hover: #cfd3d6;--ks-tag-content: #20232d;--ks-tooltip-background: #ffffff;--ks-tooltip-border: #9797a6}html.dark{--ks-background-body: #20232d;--ks-background-box: #20232d;--ks-background-cancelled: rgba(253, 146, 151, .2);--ks-background-card: #2f3342;--ks-background-card-hover: #404559;--ks-background-card-opacity: rgba(18, 19, 25, .8980392157);--ks-background-created: rgba(57, 145, 255, .2);--ks-background-error: rgba(38, 0, 2, .2);--ks-background-failed: rgba(38, 0, 2, .2);--ks-background-info: rgba(14, 59, 154, .2);--ks-background-input: #14181f;--ks-background-killed: rgba(253, 229, 146, .1);--ks-background-killing: rgba(126, 112, 62, .2);--ks-background-left-menu: #1e202a;--ks-background-logo: rgba(44, 0, 89, 0);--ks-background-panel: #1e202a;--ks-background-paused: #2f3342;--ks-background-queued: #262a35;--ks-background-restarted: rgba(91, 184, 255, .2);--ks-background-retried: rgba(87, 141, 255, .2);--ks-background-retrying: rgba(23, 97, 253, .2);--ks-background-running: rgba(23, 97, 253, .2);--ks-background-skipped: #2f3342;--ks-background-success: rgba(0, 35, 25, .2);--ks-background-table-header: #2f3342;--ks-background-table-row: #262a35;--ks-background-table-row-hover: #2c303f;--ks-background-warning: rgba(111, 48, 0, .2);--ks-badge-background: rgba(91, 184, 255, .2);--ks-badge-border: #5bb8ff;--ks-badge-content: #a2cdff;--ks-border-active: #8405ff;--ks-border-cancelled: #fd9297;--ks-border-created: #1761fd;--ks-border-error: #e3262f;--ks-border-failed: #e3262f;--ks-border-inactive: #404559;--ks-border-info: #1761fd;--ks-border-killed: #7e703e;--ks-border-killing: #fdedb3;--ks-border-paused: #9797a6;--ks-border-primary: #404559;--ks-border-queued: #9797a6;--ks-border-restarted: #a2cdff;--ks-border-retried: #a2cdff;--ks-border-retrying: #7fbbff;--ks-border-running: #3991ff;--ks-border-secondary: #2f3342;--ks-border-skipped: #9797a6;--ks-border-success: #02be8a;--ks-border-system: #5bb8ff;--ks-border-warning: #e9985b;--ks-button-background-inactive: #2c303f;--ks-button-background-primary: #8405ff;--ks-button-background-primary-active: #7400df;--ks-button-background-primary-hover: #8c4bff;--ks-button-background-secondary: #2f3342;--ks-button-background-secondary-active: #262a35;--ks-button-background-secondary-hover: #404559;--ks-button-background-success: #02be8a;--ks-button-background-success-active: #029e73;--ks-button-background-success-hover: #21ce9c;--ks-button-content-primary: #ffffff;--ks-card-shadow: #1e202a;--ks-chart-cancelled: #fd9297;--ks-chart-created: #3991ff;--ks-chart-debug: #3991ff;--ks-chart-error: #fd7278;--ks-chart-failed: #fd7278;--ks-chart-info: #1761fd;--ks-chart-killed: #ddc46d;--ks-chart-killing: #fdeaa8;--ks-chart-paused: #9797a6;--ks-chart-queued: #cfd3d6;--ks-chart-restarted: #c7f0ff;--ks-chart-retried: #a2cdff;--ks-chart-retrying: #7fbbff;--ks-chart-running: #5bb8ff;--ks-chart-skipped: #9797a6;--ks-chart-success: #21ce9c;--ks-chart-trace: #9797a6;--ks-chart-warn: #eeae7e;--ks-chart-warning: #eeae7e;--ks-content-alert: #fd7278;--ks-content-cancelled: #fff2f3;--ks-content-created: #a2cdff;--ks-content-error: #fd9297;--ks-content-failed: #fd9297;--ks-content-id: #bbbbff;--ks-content-inactive: #9797a6;--ks-content-info: #c7f0ff;--ks-content-inverse: #14181f;--ks-content-killed: #fdeaa8;--ks-content-killing: #fffbef;--ks-content-link: #bbbbff;--ks-content-link-hover: #e0e0ff;--ks-content-paused: #cfd3d6;--ks-content-primary: #ffffff;--ks-content-queued: #cfd3d6;--ks-content-restarted: #7fbbff;--ks-content-retried: #c7f0ff;--ks-content-retrying: #c7f0ff;--ks-content-running: #a2cdff;--ks-content-secondary: #cfd3d6;--ks-content-skipped: #cfd3d6;--ks-content-success: #beefe2;--ks-content-tertiary: #9797a6;--ks-content-warning: #eeae7e;--ks-dialog-background: #2f3342;--ks-dialog-border: #404559;--ks-dialog-header: #2f3342;--ks-dialog-headerbtn: #9797a6;--ks-dialog-headerbtn-hover: #a396ff;--ks-dropdown-background: #262a35;--ks-dropdown-background-active: #1e202a;--ks-dropdown-background-hover: #2c303f;--ks-editor-number: #f3c4a1;--ks-editor-pabble: #fff2ea;--ks-editor-property: #7cdfc4;--ks-editor-punctuation: #9797a6;--ks-editor-value: #5bb8ff;--ks-log-background-debug: rgba(91, 184, 255, .2);--ks-log-background-error: rgba(253, 114, 120, .2);--ks-log-background-info: rgba(14, 59, 154, .2);--ks-log-background-trace: #404559;--ks-log-background-warn: rgba(229, 130, 56, .2);--ks-log-border-debug: #5bb8ff;--ks-log-border-error: #fd7278;--ks-log-border-info: #1761fd;--ks-log-border-trace: #9797a6;--ks-log-border-warn: #e9985b;--ks-log-content-debug: #a2cdff;--ks-log-content-error: #fec9cb;--ks-log-content-info: #c7f0ff;--ks-log-content-trace: #ecebef;--ks-log-content-warn: #f3c4a1;--ks-scrollbar-background: #1e202a;--ks-scrollbar-content: #404559;--ks-select-active: #1e202a;--ks-select-active-icon: #bbbbff;--ks-select-background: #20232d;--ks-select-border: #404559;--ks-select-hover: #2c303f;--ks-tag-background: #262a35;--ks-tag-background-active: #2f3342;--ks-tag-background-hover: #404559;--ks-tag-content: #ffffff;--ks-tooltip-background: #262a35;--ks-tooltip-border: #404559}.tooltip-custom .tooltip-inner{max-width:none}.wrapper[data-v-23f8d853]{display:inline-block;width:100%;height:100%;position:relative}.wrapper[data-v-23f8d853] span{position:absolute;padding:1px;left:0;display:block;width:100%;height:100%}.wrapper[data-v-23f8d853] .icon{width:100%;height:100%;display:block;border-radius:3px;background-size:contain;background-repeat:no-repeat;background-position:center center}.dependency-node-wrapper[data-v-2271d5b0]{background-color:var(--ks-background-card);color:var(--bs-black);width:184px;height:44px;margin:0;padding:8px 18px 8px 6px;display:flex;align-items:center;box-shadow:0 12px 12px #82679e1a}html.dark .dependency-node-wrapper[data-v-2271d5b0]{background-color:var(--ks-background-card);color:var(--bs-white)}.wrapper[data-v-2271d5b0]{width:26px}.dependency-text[data-v-2271d5b0]{margin-left:.5rem}.dependency-flow-text[data-v-2271d5b0]{font-size:.85rem;font-weight:700;max-width:121px}.dependency-namespace-text[data-v-2271d5b0]{font-size:.625rem;font-weight:400;color:#564a75;max-width:121px}html.dark .dependency-namespace-text[data-v-2271d5b0]{color:#e3dbff}.circle-button[data-v-0c251e77]{border-radius:1rem;width:1rem;height:1rem;display:flex;justify-content:center;align-items:center;pointer-events:auto!important}.button-icon[data-v-0c251e77]{font-size:.75rem}.badge[data-v-0c251e77]{top:-3px;position:relative;left:-3px;display:inline-block;max-width:100%}.text-color[data-v-0c251e77]{color:var(--bs-white);font-size:.5rem;font-weight:700;padding:.25rem .5rem}.top-button-div[data-v-0c251e77]{position:absolute;top:-.5rem;right:-.5rem;justify-content:center;padding-right:3px;display:flex}.custom-handle[data-v-666f472b]{visibility:hidden}.dot[data-v-666f472b]{display:flex;flex-direction:column;align-items:center;font-size:5px}.dot.GraphClusterRoot[data-v-666f472b]{color:var(--ks-border-created)}.dot.GraphClusterFinally[data-v-666f472b]{color:var(--ks-border-warning)}.dot.GraphClusterEnd[data-v-666f472b]{color:var(--ks-border-active)}.add-task-div[data-v-4afc4738]{margin:.2rem;width:25px;height:25px;border:.4px solid var(--ks-border-primary);background-color:var(--ks-background-card);cursor:pointer}.add-task-div.text-danger[data-v-4afc4738]{border-color:#e36065}.stroke-danger[data-v-a3e1d999],.stroke-error[data-v-a3e1d999]{stroke:var(--ks-border-error)}.stroke-warning[data-v-a3e1d999]{stroke:var(--ks-border-warning)}.node-wrapper[data-v-ee0adf33]{background-color:var(--ks-background-card);width:184px;height:44px;margin:0;padding:8px;display:flex;z-index:150000;align-items:center;box-shadow:0 12px 12px #82679e1a}.node-wrapper.execution-no-taskrun[data-v-ee0adf33],.node-wrapper.disabled[data-v-ee0adf33]{background-color:var(--ks-background-card)}.node-wrapper.disabled .task-title[data-v-ee0adf33]{color:var(--ks-content-secondary);text-decoration:line-through}.node-wrapper .icon[data-v-ee0adf33]{margin:.2rem;width:25px;height:25px;border:.4px solid var(--ks-border-primary);min-width:25px;min-height:25px}.node-content[data-v-ee0adf33]{display:flex;flex-direction:column;justify-content:center;margin-left:.7rem}.node-content>.node-title[data-v-ee0adf33]{width:125px}.description-button[data-v-ee0adf33]{color:var(--ks-content-secondary);cursor:pointer}.material-design-icon.icon-rounded[data-v-ee0adf33]{border-radius:1rem;padding:1px}.button-icon[data-v-ee0adf33]{font-size:.75rem}.task-title[data-v-ee0adf33]{font-size:.75rem;font-weight:700;color:var(--ks-content-primary);flex-grow:1}.status-div[data-v-ee0adf33]{width:8px;height:100%;position:absolute;left:-.04438rem;border-radius:.5rem 0 0 .5rem}.ks-duration-tt{text-align:left;white-space:nowrap;max-width:none}.ks-duration-tt .ks-duration-tt-square{display:inline-block;width:10px;height:10px;margin-right:5px}.ks-duration-tt .ks-duration-tt-square-created{background-color:var(--ks-chart-created)}.ks-duration-tt .ks-duration-tt-square-restarted{background-color:var(--ks-chart-restarted)}.ks-duration-tt .ks-duration-tt-square-success{background-color:var(--ks-chart-success)}.ks-duration-tt .ks-duration-tt-square-running{background-color:var(--ks-chart-running)}.ks-duration-tt .ks-duration-tt-square-killing{background-color:var(--ks-chart-killing)}.ks-duration-tt .ks-duration-tt-square-killed{background-color:var(--ks-chart-killed)}.ks-duration-tt .ks-duration-tt-square-warning{background-color:var(--ks-chart-warning)}.ks-duration-tt .ks-duration-tt-square-failed{background-color:var(--ks-chart-failed)}.ks-duration-tt .ks-duration-tt-square-paused{background-color:var(--ks-chart-paused)}.ks-duration-tt .ks-duration-tt-square-cancelled{background-color:var(--ks-chart-cancelled)}.ks-duration-tt .ks-duration-tt-square-skipped{background-color:var(--ks-chart-skipped)}.ks-duration-tt .ks-duration-tt-square-queued{background-color:var(--ks-chart-queued)}.ks-duration-tt .ks-duration-tt-square-retrying{background-color:var(--ks-chart-retrying)}.ks-duration-tt .ks-duration-tt-square-retried{background-color:var(--ks-chart-retried)}.content[data-v-b7801302]{color:var(--bs-gray-700)}.content-children[data-v-b7801302]{font-size:.7rem}.collapsed-cluster-node[data-v-89413b39]{width:150px;height:44px;padding:8px}.node-text[data-v-89413b39]{color:#000;font-size:.9rem;display:flex;align-items:center}html.dark .node-text[data-v-89413b39]{color:#fff}.button-icon[data-v-89413b39]{font-size:.75rem}svg[data-v-084c51e6]{transform:scale(1.5)}svg[data-v-c77c1469]{transform:scale(1.5)}.circle-button{border-radius:1rem;width:1rem;height:1rem;display:flex;justify-content:center;align-items:center;margin-left:.25rem;z-index:2000}.button-icon{font-size:.66rem}.vue-flow__controls{border:1px solid var(--ks-border-primary);border-radius:var(--bs-border-radius)}.vue-flow__controls-button{color:var(--bs-black);border-bottom-color:var(--bs-border-color)}.vue-flow__controls-button svg{fill:var(--bs-black)}html.dark .vue-flow__controls-button{background:var(--ks-background-card);color:var(--bs-white)}html.dark .vue-flow__controls-button svg{fill:var(--bs-white)}:root{--ks-topology-edge-color: #9A8EB4}.vue-flow__container .top-button-div{position:absolute;top:-.5rem;right:-.5rem;justify-content:center;padding-right:3px;display:flex}.vue-flow__container .vue-flow__node-cluster{pointer-events:none!important}.vue-flow__container .vue-flow__handle{opacity:0!important}.vue-flow__container .vue-flow__edge-path{stroke:var(--ks-topology-edge-color)}.vue-flow__container .ks-topology-success-border{background-color:#02be8a0d;border:1px solid #02be8a}.vue-flow__container .ks-topology-primary-border{background-color:#8405ff0d;border:1px solid #8405ff}.vue-flow__container .ks-topology-danger-border{background-color:#ab00090d;border:1px solid #ab0009}.vue-flow__container .ks-topology-blue-border{background-color:#1761fd0d;border:1px solid #1761fd}.vue-flow__container .ks-topology-default-border{background-color:#2c303f0d;border:1px solid #2c303f}.material-design-icon.download-icon[data-v-5655b4c8]{max-width:12px}[data-v-5655b4c8] .unused-path{opacity:.3}.exporting[data-v-5655b4c8]{position:absolute;bottom:0;left:40px;padding:0;margin:0;z-index:1000;list-style-type:none;background:var(--ks-background-card);border:1px solid var(--ks-border-primary);box-shadow:0 12px 12px #82679e1a;border-radius:5px;text-align:left}.exporting .item[data-v-5655b4c8]{padding:5px 8px;cursor:pointer;color:var(--ks-content-primary);font-size:12px;width:110px}.exporting .item[data-v-5655b4c8]:first-child{border-bottom:1px solid var(--ks-border-primary)}.exporting .item[data-v-5655b4c8]:hover{background:var(--ks-button-background-secondary-hover)}.icon[data-v-ffd9a851]{margin-right:.3rem}.code-block[data-v-a899f6a1]{padding:1.25rem;border-radius:var(--bs-border-radius-lg);position:relative}.code-block .language[data-v-a899f6a1]{font-size:.75rem}.code-block[data-v-a899f6a1] pre{margin-bottom:0;padding:0;border:0!important}.code-block[data-v-a899f6a1] .shiki{background-color:transparent!important}.code-block[data-v-a899f6a1] .shiki code{display:flex;flex-direction:column}.code-block .copy[data-v-a899f6a1]{border:none;background:none}.code-block .copy .material-design-icon[data-v-a899f6a1],.code-block .copy .material-design-icon[data-v-a899f6a1] *{height:1.125rem!important;width:1.125rem!important}.code-block .copy[data-v-a899f6a1],.code-block .language[data-v-a899f6a1]{position:absolute;top:1.25rem;right:1.25rem}.code-block #copied-tooltip[data-v-a899f6a1]{border-radius:.25rem;background:#8997bd;padding:4px 8px;font-size:.75rem;margin-right:.2rem!important}.code-block #copied-tooltip #arrow[data-v-a899f6a1],.code-block #copied-tooltip #arrow[data-v-a899f6a1]:before{position:absolute;width:8px;height:8px;background:inherit}.code-block #copied-tooltip #arrow[data-v-a899f6a1]{visibility:hidden;right:-4px}.code-block #copied-tooltip #arrow[data-v-a899f6a1]:before{visibility:visible;content:"";transform:rotate(45deg)}[data-v-a899f6a1] pre code .line{display:block;min-height:1rem;white-space:pre-wrap}details[data-v-309ae3b9]{overflow:hidden}details[data-v-309ae3b9]::details-content{block-size:0%;transition:block-size .15s,content-visibility .15s;transition-behavior:allow-discrete}details[open][data-v-309ae3b9]::details-content{block-size:auto}.collapse-button[data-v-309ae3b9]{padding:0;border:none;background:none}.collapse-button[data-v-309ae3b9]:focus{outline:none;box-shadow:none}.doc-alert[data-v-f7fd8bc1]{display:flex;align-items:start;border:1px solid;border-left-width:5px!important;padding:1rem;margin-bottom:1rem;border-radius:.25rem}.doc-alert[data-v-f7fd8bc1]>*{margin:0}.doc-alert .alert-icon[data-v-f7fd8bc1]{font-size:22px}.doc-alert.alert-danger[data-v-f7fd8bc1]{border-color:var(--ks-border-error);color:var(--ks-content-error);background-color:var(--ks-background-error)}.doc-alert.alert-warning[data-v-f7fd8bc1]{border-color:var(--ks-border-warning);color:var(--ks-content-warning);background-color:var(--ks-background-warning)}.doc-alert.alert-info[data-v-f7fd8bc1]{border-color:var(--ks-border-info);color:var(--ks-content-info);background-color:var(--ks-background-info)}.doc-alert.alert-success[data-v-f7fd8bc1]{border-color:var(--ks-border-success);color:var(--ks-content-success);background-color:var(--ks-background-success)}.property-detail[data-v-79715a4e]>*{display:flex;justify-content:space-between;border-top:1px solid var(--ks-border-primary);align-items:center;padding:1rem 0;gap:var(--spacer)}.property-detail>* span[data-v-79715a4e],.property-detail>* .property-description[data-v-79715a4e] p{line-height:1.5rem;font-size:.875rem!important}.property-detail>* .property-description[data-v-79715a4e]{color:var(--ks-content-secondary)}.property-detail>* code[data-v-79715a4e]{color:var(--ks-content-primary);background:var(--ks-background-body)}.property-detail>* .border-red[data-v-79715a4e]{border-color:#e3262f!important}.property-detail[data-v-79715a4e]>*:first-child{padding-top:0;border-top:none!important}.property-detail[data-v-79715a4e]>*:last-child{padding-bottom:0}.property-detail[data-v-79715a4e]>*>*{width:fit-content}.type-box[data-v-0d36ff40],[data-v-0d36ff40] .type-box{border:1px solid #1761FD!important;background:none}.type-box .ref-type[data-v-0d36ff40],[data-v-0d36ff40] .type-box .ref-type{padding-right:.625rem}.type-box .ref-type[data-v-0d36ff40]+*,[data-v-0d36ff40] .type-box .ref-type+*{margin-left:.625rem}.border[data-v-0d36ff40]{border-radius:.5rem}.property[data-v-0d36ff40]{gap:0!important}.property[data-v-0d36ff40]>button{font-size:1rem!important;line-height:1.5rem}.property[data-v-0d36ff40]:not(:first-child){border-top:var(--bs-border-width) var(--bs-border-style) var(--collapsible-border-color)}.property[data-v-0d36ff40]>.collapse-button{padding:.75rem 1rem}.property[data-v-0d36ff40]>.collapse-button:not(.collapsed){border-bottom:var(--bs-border-width) var(--bs-border-style) var(--collapsible-border-color)}.property[data-v-0d36ff40]>.collapsible-body:not(.collapsed){padding-top:.75rem;padding-bottom:.75rem}.property[data-v-0d36ff40] .property-detail>*{padding-left:1rem;padding-right:1rem}.plugin-title[data-v-5953ec4c] p{font-size:1rem}[data-v-5953ec4c] .nested-button-py-2 button{padding-top:.5rem!important;padding-bottom:.5rem!important}[data-v-5953ec4c] .markdown pre,[data-v-5953ec4c] .markdown .code-block{margin:0}[data-v-5953ec4c] .markdown>ol,[data-v-5953ec4c] .markdown>ul,[data-v-5953ec4c] .markdown>dl{margin-top:0;margin-bottom:0}[data-v-5953ec4c] .plugin-section .material-design-icon,[data-v-5953ec4c] .plugin-section .material-design-icon *{height:1.5rem;width:1.5rem;bottom:0}[data-v-5953ec4c] .plugin-section .material-design-icon:not(.property .material-design-icon),[data-v-5953ec4c] .plugin-section .material-design-icon:not(.property .material-design-icon) *{height:2rem;width:2rem}[data-v-5953ec4c] .type-box{color:buttontext}[data-v-5953ec4c] .type-box .material-design-icon,[data-v-5953ec4c] .type-box .material-design-icon *{height:1rem;width:1rem}.row-link[data-v-b787c0f3]{border-width:1px}
|
|
1
|
+
:root{--ks-background-body: #f9f9fa;--ks-background-box: #f9f9fa;--ks-background-cancelled: #fec9cb;--ks-background-card: #ffffff;--ks-background-card-hover: #ffffff;--ks-background-card-opacity: rgba(27, 28, 35, .8980392157);--ks-background-created: rgba(199, 240, 255, .39);--ks-background-error: #fff2f3;--ks-background-failed: #fff2f3;--ks-background-info: #c7f0ff;--ks-background-input: #ffffff;--ks-background-killed: #fffbef;--ks-background-killing: #fffbef;--ks-background-left-menu: #ffffff;--ks-background-logo: #2c0059;--ks-background-panel: #ffffff;--ks-background-paused: rgba(178, 178, 181, .2588235294);--ks-background-queued: #fffbef;--ks-background-restarted: #c7f0ff;--ks-background-retried: rgba(23, 97, 253, .2);--ks-background-retrying: #c7f0ff;--ks-background-running: #c7f0ff;--ks-background-skipped: rgba(178, 178, 181, .2588235294);--ks-background-success: #e4f9f3;--ks-background-table-header: #f9f9fa;--ks-background-table-row: #ffffff;--ks-background-table-row-hover: #f9f9fa;--ks-background-warning: #fff2ea;--ks-badge-background: #c7f0ff;--ks-badge-border: #3991ff;--ks-badge-content: #134ecc;--ks-border-active: #8405ff;--ks-border-cancelled: #fd7278;--ks-border-created: #7fbbff;--ks-border-error: #fd7278;--ks-border-failed: #fd7278;--ks-border-inactive: #ecebef;--ks-border-info: #7fbbff;--ks-border-killed: #ddc46d;--ks-border-killing: #fde592;--ks-border-paused: #cfd3d6;--ks-border-primary: #e1e3e5;--ks-border-queued: #ddc46d;--ks-border-restarted: #a2cdff;--ks-border-retried: #134ecc;--ks-border-retrying: #1761fd;--ks-border-running: #3991ff;--ks-border-secondary: #ecebef;--ks-border-skipped: #cfd3d6;--ks-border-success: #21ce9c;--ks-border-system: #3991ff;--ks-border-warning: #e9985b;--ks-button-background-inactive: #f9f9fa;--ks-button-background-primary: #8405ff;--ks-button-background-primary-active: #7400df;--ks-button-background-primary-hover: #8c4bff;--ks-button-background-secondary: #ffffff;--ks-button-background-secondary-active: #ecebef;--ks-button-background-secondary-hover: #f9f9fa;--ks-button-background-success: #029e73;--ks-button-background-success-active: #017f5c;--ks-button-background-success-hover: #02be8a;--ks-button-content-primary: #ffffff;--ks-card-shadow: #ecebef;--ks-chart-cancelled: #fd9297;--ks-chart-created: #1761fd;--ks-chart-debug: #7fbbff;--ks-chart-error: #fd7278;--ks-chart-failed: #fd7278;--ks-chart-info: #5bb8ff;--ks-chart-killed: #fdeaa8;--ks-chart-killing: #fde89d;--ks-chart-paused: #cfd3d6;--ks-chart-queued: #fdedb3;--ks-chart-restarted: #c7f0ff;--ks-chart-retried: #a2cdff;--ks-chart-retrying: #7fbbff;--ks-chart-running: #5bb8ff;--ks-chart-skipped: #cfd3d6;--ks-chart-success: #02be8a;--ks-chart-trace: #cfd3d6;--ks-chart-warn: #eeae7e;--ks-chart-warning: #f3c4a1;--ks-content-alert: #ab0009;--ks-content-cancelled: #ab0009;--ks-content-created: #1761fd;--ks-content-error: #ab0009;--ks-content-failed: #ab0009;--ks-content-id: #8405ff;--ks-content-inactive: #9797a6;--ks-content-info: #134ecc;--ks-content-inverse: #ffffff;--ks-content-killed: #7e703e;--ks-content-killing: #dd5f00;--ks-content-link: #8405ff;--ks-content-link-hover: #9470ff;--ks-content-paused: #2f3342;--ks-content-primary: #14181f;--ks-content-queued: #9e8c4e;--ks-content-restarted: #134ecc;--ks-content-retried: #051538;--ks-content-retrying: #0e3b9a;--ks-content-running: #134ecc;--ks-content-secondary: #262a35;--ks-content-skipped: #2f3342;--ks-content-success: #016046;--ks-content-tertiary: #9797a6;--ks-content-warning: #dd5f00;--ks-dialog-background: #ffffff;--ks-dialog-border: #cfd3d6;--ks-dialog-header: #ffffff;--ks-dialog-headerbtn: #9797a6;--ks-dialog-headerbtn-hover: #9470ff;--ks-dropdown-background: #ffffff;--ks-dropdown-background-active: #f9f9fa;--ks-dropdown-background-hover: #f9f9fa;--ks-editor-number: #c15300;--ks-editor-pabble: #e58238;--ks-editor-property: #8405ff;--ks-editor-punctuation: #404559;--ks-editor-value: #14181f;--ks-log-background-debug: #c7f0ff;--ks-log-background-error: #fff2f3;--ks-log-background-info: #c7f0ff;--ks-log-background-trace: #ecebef;--ks-log-background-warn: #fff2ea;--ks-log-border-debug: #3991ff;--ks-log-border-error: #e3262f;--ks-log-border-info: #7fbbff;--ks-log-border-trace: #9797a6;--ks-log-border-warn: #e58238;--ks-log-content-debug: #134ecc;--ks-log-content-error: #ab0009;--ks-log-content-info: #134ecc;--ks-log-content-trace: #2f3342;--ks-log-content-warn: #8a3b00;--ks-scrollbar-background: #ecebef;--ks-scrollbar-content: #cfd3d6;--ks-select-active: #ffffff;--ks-select-active-icon: #8405ff;--ks-select-background: #ffffff;--ks-select-border: #cfd3d6;--ks-select-hover: #f9f9fa;--ks-tag-background: #ecebef;--ks-tag-background-active: #f9f9fa;--ks-tag-background-hover: #cfd3d6;--ks-tag-content: #20232d;--ks-tooltip-background: #ffffff;--ks-tooltip-border: #9797a6}html.dark{--ks-background-body: #20232d;--ks-background-box: #20232d;--ks-background-cancelled: rgba(253, 146, 151, .2);--ks-background-card: #2f3342;--ks-background-card-hover: #404559;--ks-background-card-opacity: rgba(18, 19, 25, .8980392157);--ks-background-created: rgba(57, 145, 255, .2);--ks-background-error: rgba(38, 0, 2, .2);--ks-background-failed: rgba(38, 0, 2, .2);--ks-background-info: rgba(14, 59, 154, .2);--ks-background-input: #14181f;--ks-background-killed: rgba(253, 229, 146, .1);--ks-background-killing: rgba(126, 112, 62, .2);--ks-background-left-menu: #1e202a;--ks-background-logo: rgba(44, 0, 89, 0);--ks-background-panel: #1e202a;--ks-background-paused: #2f3342;--ks-background-queued: #262a35;--ks-background-restarted: rgba(91, 184, 255, .2);--ks-background-retried: rgba(87, 141, 255, .2);--ks-background-retrying: rgba(23, 97, 253, .2);--ks-background-running: rgba(23, 97, 253, .2);--ks-background-skipped: #2f3342;--ks-background-success: rgba(0, 35, 25, .2);--ks-background-table-header: #2f3342;--ks-background-table-row: #262a35;--ks-background-table-row-hover: #2c303f;--ks-background-warning: rgba(111, 48, 0, .2);--ks-badge-background: rgba(91, 184, 255, .2);--ks-badge-border: #5bb8ff;--ks-badge-content: #a2cdff;--ks-border-active: #8405ff;--ks-border-cancelled: #fd9297;--ks-border-created: #1761fd;--ks-border-error: #e3262f;--ks-border-failed: #e3262f;--ks-border-inactive: #404559;--ks-border-info: #1761fd;--ks-border-killed: #7e703e;--ks-border-killing: #fdedb3;--ks-border-paused: #9797a6;--ks-border-primary: #404559;--ks-border-queued: #9797a6;--ks-border-restarted: #a2cdff;--ks-border-retried: #a2cdff;--ks-border-retrying: #7fbbff;--ks-border-running: #3991ff;--ks-border-secondary: #2f3342;--ks-border-skipped: #9797a6;--ks-border-success: #02be8a;--ks-border-system: #5bb8ff;--ks-border-warning: #e9985b;--ks-button-background-inactive: #2c303f;--ks-button-background-primary: #8405ff;--ks-button-background-primary-active: #7400df;--ks-button-background-primary-hover: #8c4bff;--ks-button-background-secondary: #2f3342;--ks-button-background-secondary-active: #262a35;--ks-button-background-secondary-hover: #404559;--ks-button-background-success: #02be8a;--ks-button-background-success-active: #029e73;--ks-button-background-success-hover: #21ce9c;--ks-button-content-primary: #ffffff;--ks-card-shadow: #1e202a;--ks-chart-cancelled: #fd9297;--ks-chart-created: #3991ff;--ks-chart-debug: #3991ff;--ks-chart-error: #fd7278;--ks-chart-failed: #fd7278;--ks-chart-info: #1761fd;--ks-chart-killed: #ddc46d;--ks-chart-killing: #fdeaa8;--ks-chart-paused: #9797a6;--ks-chart-queued: #cfd3d6;--ks-chart-restarted: #c7f0ff;--ks-chart-retried: #a2cdff;--ks-chart-retrying: #7fbbff;--ks-chart-running: #5bb8ff;--ks-chart-skipped: #9797a6;--ks-chart-success: #21ce9c;--ks-chart-trace: #9797a6;--ks-chart-warn: #eeae7e;--ks-chart-warning: #eeae7e;--ks-content-alert: #fd7278;--ks-content-cancelled: #fff2f3;--ks-content-created: #a2cdff;--ks-content-error: #fd9297;--ks-content-failed: #fd9297;--ks-content-id: #bbbbff;--ks-content-inactive: #9797a6;--ks-content-info: #c7f0ff;--ks-content-inverse: #14181f;--ks-content-killed: #fdeaa8;--ks-content-killing: #fffbef;--ks-content-link: #bbbbff;--ks-content-link-hover: #e0e0ff;--ks-content-paused: #cfd3d6;--ks-content-primary: #ffffff;--ks-content-queued: #cfd3d6;--ks-content-restarted: #7fbbff;--ks-content-retried: #c7f0ff;--ks-content-retrying: #c7f0ff;--ks-content-running: #a2cdff;--ks-content-secondary: #cfd3d6;--ks-content-skipped: #cfd3d6;--ks-content-success: #beefe2;--ks-content-tertiary: #9797a6;--ks-content-warning: #eeae7e;--ks-dialog-background: #2f3342;--ks-dialog-border: #404559;--ks-dialog-header: #2f3342;--ks-dialog-headerbtn: #9797a6;--ks-dialog-headerbtn-hover: #a396ff;--ks-dropdown-background: #262a35;--ks-dropdown-background-active: #1e202a;--ks-dropdown-background-hover: #2c303f;--ks-editor-number: #f3c4a1;--ks-editor-pabble: #fff2ea;--ks-editor-property: #7cdfc4;--ks-editor-punctuation: #9797a6;--ks-editor-value: #5bb8ff;--ks-log-background-debug: rgba(91, 184, 255, .2);--ks-log-background-error: rgba(253, 114, 120, .2);--ks-log-background-info: rgba(14, 59, 154, .2);--ks-log-background-trace: #404559;--ks-log-background-warn: rgba(229, 130, 56, .2);--ks-log-border-debug: #5bb8ff;--ks-log-border-error: #fd7278;--ks-log-border-info: #1761fd;--ks-log-border-trace: #9797a6;--ks-log-border-warn: #e9985b;--ks-log-content-debug: #a2cdff;--ks-log-content-error: #fec9cb;--ks-log-content-info: #c7f0ff;--ks-log-content-trace: #ecebef;--ks-log-content-warn: #f3c4a1;--ks-scrollbar-background: #1e202a;--ks-scrollbar-content: #404559;--ks-select-active: #1e202a;--ks-select-active-icon: #bbbbff;--ks-select-background: #20232d;--ks-select-border: #404559;--ks-select-hover: #2c303f;--ks-tag-background: #262a35;--ks-tag-background-active: #2f3342;--ks-tag-background-hover: #404559;--ks-tag-content: #ffffff;--ks-tooltip-background: #262a35;--ks-tooltip-border: #404559}.tooltip-custom .tooltip-inner{max-width:none}.wrapper[data-v-23f8d853]{display:inline-block;width:100%;height:100%;position:relative}.wrapper[data-v-23f8d853] span{position:absolute;padding:1px;left:0;display:block;width:100%;height:100%}.wrapper[data-v-23f8d853] .icon{width:100%;height:100%;display:block;border-radius:3px;background-size:contain;background-repeat:no-repeat;background-position:center center}.dependency-node-wrapper[data-v-2271d5b0]{background-color:var(--ks-background-card);color:var(--bs-black);width:184px;height:44px;margin:0;padding:8px 18px 8px 6px;display:flex;align-items:center;box-shadow:0 12px 12px #82679e1a}html.dark .dependency-node-wrapper[data-v-2271d5b0]{background-color:var(--ks-background-card);color:var(--bs-white)}.wrapper[data-v-2271d5b0]{width:26px}.dependency-text[data-v-2271d5b0]{margin-left:.5rem}.dependency-flow-text[data-v-2271d5b0]{font-size:.85rem;font-weight:700;max-width:121px}.dependency-namespace-text[data-v-2271d5b0]{font-size:.625rem;font-weight:400;color:#564a75;max-width:121px}html.dark .dependency-namespace-text[data-v-2271d5b0]{color:#e3dbff}.circle-button[data-v-0c251e77]{border-radius:1rem;width:1rem;height:1rem;display:flex;justify-content:center;align-items:center;pointer-events:auto!important}.button-icon[data-v-0c251e77]{font-size:.75rem}.badge[data-v-0c251e77]{top:-3px;position:relative;left:-3px;display:inline-block;max-width:100%}.text-color[data-v-0c251e77]{color:var(--bs-white);font-size:.5rem;font-weight:700;padding:.25rem .5rem}.top-button-div[data-v-0c251e77]{position:absolute;top:-.5rem;right:-.5rem;justify-content:center;padding-right:3px;display:flex}.custom-handle[data-v-666f472b]{visibility:hidden}.dot[data-v-666f472b]{display:flex;flex-direction:column;align-items:center;font-size:5px}.dot.GraphClusterRoot[data-v-666f472b]{color:var(--ks-border-created)}.dot.GraphClusterFinally[data-v-666f472b]{color:var(--ks-border-warning)}.dot.GraphClusterEnd[data-v-666f472b]{color:var(--ks-border-active)}.add-task-div[data-v-4afc4738]{margin:.2rem;width:25px;height:25px;border:.4px solid var(--ks-border-primary);background-color:var(--ks-background-card);cursor:pointer}.add-task-div.text-danger[data-v-4afc4738]{border-color:#e36065}.stroke-danger[data-v-a3e1d999],.stroke-error[data-v-a3e1d999]{stroke:var(--ks-border-error)}.stroke-warning[data-v-a3e1d999]{stroke:var(--ks-border-warning)}.node-wrapper[data-v-ee0adf33]{background-color:var(--ks-background-card);width:184px;height:44px;margin:0;padding:8px;display:flex;z-index:150000;align-items:center;box-shadow:0 12px 12px #82679e1a}.node-wrapper.execution-no-taskrun[data-v-ee0adf33],.node-wrapper.disabled[data-v-ee0adf33]{background-color:var(--ks-background-card)}.node-wrapper.disabled .task-title[data-v-ee0adf33]{color:var(--ks-content-secondary);text-decoration:line-through}.node-wrapper .icon[data-v-ee0adf33]{margin:.2rem;width:25px;height:25px;border:.4px solid var(--ks-border-primary);min-width:25px;min-height:25px}.node-content[data-v-ee0adf33]{display:flex;flex-direction:column;justify-content:center;margin-left:.7rem}.node-content>.node-title[data-v-ee0adf33]{width:125px}.description-button[data-v-ee0adf33]{color:var(--ks-content-secondary);cursor:pointer}.material-design-icon.icon-rounded[data-v-ee0adf33]{border-radius:1rem;padding:1px}.button-icon[data-v-ee0adf33]{font-size:.75rem}.task-title[data-v-ee0adf33]{font-size:.75rem;font-weight:700;color:var(--ks-content-primary);flex-grow:1}.status-div[data-v-ee0adf33]{width:8px;height:100%;position:absolute;left:-.04438rem;border-radius:.5rem 0 0 .5rem}.ks-duration-tt{text-align:left;white-space:nowrap;max-width:none}.ks-duration-tt .ks-duration-tt-square{display:inline-block;width:10px;height:10px;margin-right:5px}.ks-duration-tt .ks-duration-tt-square-created{background-color:var(--ks-chart-created)}.ks-duration-tt .ks-duration-tt-square-restarted{background-color:var(--ks-chart-restarted)}.ks-duration-tt .ks-duration-tt-square-success{background-color:var(--ks-chart-success)}.ks-duration-tt .ks-duration-tt-square-running{background-color:var(--ks-chart-running)}.ks-duration-tt .ks-duration-tt-square-killing{background-color:var(--ks-chart-killing)}.ks-duration-tt .ks-duration-tt-square-killed{background-color:var(--ks-chart-killed)}.ks-duration-tt .ks-duration-tt-square-warning{background-color:var(--ks-chart-warning)}.ks-duration-tt .ks-duration-tt-square-failed{background-color:var(--ks-chart-failed)}.ks-duration-tt .ks-duration-tt-square-paused{background-color:var(--ks-chart-paused)}.ks-duration-tt .ks-duration-tt-square-cancelled{background-color:var(--ks-chart-cancelled)}.ks-duration-tt .ks-duration-tt-square-skipped{background-color:var(--ks-chart-skipped)}.ks-duration-tt .ks-duration-tt-square-queued{background-color:var(--ks-chart-queued)}.ks-duration-tt .ks-duration-tt-square-retrying{background-color:var(--ks-chart-retrying)}.ks-duration-tt .ks-duration-tt-square-retried{background-color:var(--ks-chart-retried)}.content[data-v-a204e986]{color:var(--ks-content-secondary)}.content-children[data-v-a204e986]{font-size:.7rem}.playground-button[data-v-8b3dd8bd]{position:absolute;bottom:0;right:0;z-index:1;border:none;background:transparent;background-color:#1761fd;color:#fff;border-radius:3px;height:1rem;width:1rem;padding:0;margin:6px}.collapsed-cluster-node[data-v-89413b39]{width:150px;height:44px;padding:8px}.node-text[data-v-89413b39]{color:#000;font-size:.9rem;display:flex;align-items:center}html.dark .node-text[data-v-89413b39]{color:#fff}.button-icon[data-v-89413b39]{font-size:.75rem}svg[data-v-084c51e6]{transform:scale(1.5)}svg[data-v-c77c1469]{transform:scale(1.5)}.circle-button{border-radius:1rem;width:1rem;height:1rem;display:flex;justify-content:center;align-items:center;margin-left:.25rem;z-index:2000}.button-icon{font-size:.66rem}.vue-flow__controls{border:1px solid var(--ks-border-primary);border-radius:var(--bs-border-radius)}.vue-flow__controls-button{color:var(--bs-black);border-bottom-color:var(--bs-border-color)}.vue-flow__controls-button svg{fill:var(--bs-black)}html.dark .vue-flow__controls-button{background:var(--ks-background-card);color:var(--bs-white)}html.dark .vue-flow__controls-button svg{fill:var(--bs-white)}:root{--ks-topology-edge-color: #9A8EB4}.vue-flow__container .top-button-div{position:absolute;top:-.5rem;right:-.5rem;justify-content:center;padding-right:3px;display:flex}.vue-flow__container .vue-flow__node-cluster{pointer-events:none!important}.vue-flow__container .vue-flow__handle{opacity:0!important}.vue-flow__container .vue-flow__edge-path{stroke:var(--ks-topology-edge-color)}.vue-flow__container .ks-topology-success-border{background-color:#02be8a0d;border:1px solid #02be8a}.vue-flow__container .ks-topology-primary-border{background-color:#8405ff0d;border:1px solid #8405ff}.vue-flow__container .ks-topology-danger-border{background-color:#ab00090d;border:1px solid #ab0009}.vue-flow__container .ks-topology-blue-border{background-color:#1761fd0d;border:1px solid #1761fd}.vue-flow__container .ks-topology-default-border{background-color:#2c303f0d;border:1px solid #2c303f}.material-design-icon.download-icon[data-v-e2e42379]{max-width:12px}[data-v-e2e42379] .unused-path{opacity:.3}.exporting[data-v-e2e42379]{position:absolute;bottom:0;left:40px;padding:0;margin:0;z-index:1000;list-style-type:none;background:var(--ks-background-card);border:1px solid var(--ks-border-primary);box-shadow:0 12px 12px #82679e1a;border-radius:5px;text-align:left}.exporting .item[data-v-e2e42379]{padding:5px 8px;cursor:pointer;color:var(--ks-content-primary);font-size:12px;width:110px}.exporting .item[data-v-e2e42379]:first-child{border-bottom:1px solid var(--ks-border-primary)}.exporting .item[data-v-e2e42379]:hover{background:var(--ks-button-background-secondary-hover)}.icon[data-v-ffd9a851]{margin-right:.3rem}.code-block[data-v-a899f6a1]{padding:1.25rem;border-radius:var(--bs-border-radius-lg);position:relative}.code-block .language[data-v-a899f6a1]{font-size:.75rem}.code-block[data-v-a899f6a1] pre{margin-bottom:0;padding:0;border:0!important}.code-block[data-v-a899f6a1] .shiki{background-color:transparent!important}.code-block[data-v-a899f6a1] .shiki code{display:flex;flex-direction:column}.code-block .copy[data-v-a899f6a1]{border:none;background:none}.code-block .copy .material-design-icon[data-v-a899f6a1],.code-block .copy .material-design-icon[data-v-a899f6a1] *{height:1.125rem!important;width:1.125rem!important}.code-block .copy[data-v-a899f6a1],.code-block .language[data-v-a899f6a1]{position:absolute;top:1.25rem;right:1.25rem}.code-block #copied-tooltip[data-v-a899f6a1]{border-radius:.25rem;background:#8997bd;padding:4px 8px;font-size:.75rem;margin-right:.2rem!important}.code-block #copied-tooltip #arrow[data-v-a899f6a1],.code-block #copied-tooltip #arrow[data-v-a899f6a1]:before{position:absolute;width:8px;height:8px;background:inherit}.code-block #copied-tooltip #arrow[data-v-a899f6a1]{visibility:hidden;right:-4px}.code-block #copied-tooltip #arrow[data-v-a899f6a1]:before{visibility:visible;content:"";transform:rotate(45deg)}[data-v-a899f6a1] pre code .line{display:block;min-height:1rem;white-space:pre-wrap}details[data-v-309ae3b9]{overflow:hidden}details[data-v-309ae3b9]::details-content{block-size:0%;transition:block-size .15s,content-visibility .15s;transition-behavior:allow-discrete}details[open][data-v-309ae3b9]::details-content{block-size:auto}.collapse-button[data-v-309ae3b9]{padding:0;border:none;background:none}.collapse-button[data-v-309ae3b9]:focus{outline:none;box-shadow:none}.doc-alert[data-v-f7fd8bc1]{display:flex;align-items:start;border:1px solid;border-left-width:5px!important;padding:1rem;margin-bottom:1rem;border-radius:.25rem}.doc-alert[data-v-f7fd8bc1]>*{margin:0}.doc-alert .alert-icon[data-v-f7fd8bc1]{font-size:22px}.doc-alert.alert-danger[data-v-f7fd8bc1]{border-color:var(--ks-border-error);color:var(--ks-content-error);background-color:var(--ks-background-error)}.doc-alert.alert-warning[data-v-f7fd8bc1]{border-color:var(--ks-border-warning);color:var(--ks-content-warning);background-color:var(--ks-background-warning)}.doc-alert.alert-info[data-v-f7fd8bc1]{border-color:var(--ks-border-info);color:var(--ks-content-info);background-color:var(--ks-background-info)}.doc-alert.alert-success[data-v-f7fd8bc1]{border-color:var(--ks-border-success);color:var(--ks-content-success);background-color:var(--ks-background-success)}.property-detail[data-v-79715a4e]>*{display:flex;justify-content:space-between;border-top:1px solid var(--ks-border-primary);align-items:center;padding:1rem 0;gap:var(--spacer)}.property-detail>* span[data-v-79715a4e],.property-detail>* .property-description[data-v-79715a4e] p{line-height:1.5rem;font-size:.875rem!important}.property-detail>* .property-description[data-v-79715a4e]{color:var(--ks-content-secondary)}.property-detail>* code[data-v-79715a4e]{color:var(--ks-content-primary);background:var(--ks-background-body)}.property-detail>* .border-red[data-v-79715a4e]{border-color:#e3262f!important}.property-detail[data-v-79715a4e]>*:first-child{padding-top:0;border-top:none!important}.property-detail[data-v-79715a4e]>*:last-child{padding-bottom:0}.property-detail[data-v-79715a4e]>*>*{width:fit-content}.type-box[data-v-0d36ff40],[data-v-0d36ff40] .type-box{border:1px solid #1761FD!important;background:none}.type-box .ref-type[data-v-0d36ff40],[data-v-0d36ff40] .type-box .ref-type{padding-right:.625rem}.type-box .ref-type[data-v-0d36ff40]+*,[data-v-0d36ff40] .type-box .ref-type+*{margin-left:.625rem}.border[data-v-0d36ff40]{border-radius:.5rem}.property[data-v-0d36ff40]{gap:0!important}.property[data-v-0d36ff40]>button{font-size:1rem!important;line-height:1.5rem}.property[data-v-0d36ff40]:not(:first-child){border-top:var(--bs-border-width) var(--bs-border-style) var(--collapsible-border-color)}.property[data-v-0d36ff40]>.collapse-button{padding:.75rem 1rem}.property[data-v-0d36ff40]>.collapse-button:not(.collapsed){border-bottom:var(--bs-border-width) var(--bs-border-style) var(--collapsible-border-color)}.property[data-v-0d36ff40]>.collapsible-body:not(.collapsed){padding-top:.75rem;padding-bottom:.75rem}.property[data-v-0d36ff40] .property-detail>*{padding-left:1rem;padding-right:1rem}.plugin-title[data-v-5953ec4c] p{font-size:1rem}[data-v-5953ec4c] .nested-button-py-2 button{padding-top:.5rem!important;padding-bottom:.5rem!important}[data-v-5953ec4c] .markdown pre,[data-v-5953ec4c] .markdown .code-block{margin:0}[data-v-5953ec4c] .markdown>ol,[data-v-5953ec4c] .markdown>ul,[data-v-5953ec4c] .markdown>dl{margin-top:0;margin-bottom:0}[data-v-5953ec4c] .plugin-section .material-design-icon,[data-v-5953ec4c] .plugin-section .material-design-icon *{height:1.5rem;width:1.5rem;bottom:0}[data-v-5953ec4c] .plugin-section .material-design-icon:not(.property .material-design-icon),[data-v-5953ec4c] .plugin-section .material-design-icon:not(.property .material-design-icon) *{height:2rem;width:2rem}[data-v-5953ec4c] .type-box{color:buttontext}[data-v-5953ec4c] .type-box .material-design-icon,[data-v-5953ec4c] .type-box .material-design-icon *{height:1rem;width:1rem}.row-link[data-v-b787c0f3]{border-width:1px}
|
|
@@ -12,6 +12,7 @@ interface MinimalNode {
|
|
|
12
12
|
uid: string;
|
|
13
13
|
type: string;
|
|
14
14
|
task?: {
|
|
15
|
+
id?: string;
|
|
15
16
|
type: string;
|
|
16
17
|
namespace: string;
|
|
17
18
|
flowId: string;
|
|
@@ -43,56 +44,108 @@ export interface FlowGraph {
|
|
|
43
44
|
edges: GraphEdge[];
|
|
44
45
|
}
|
|
45
46
|
type EdgeReplacer = Record<string, string>;
|
|
47
|
+
export declare function predecessorsEdge(vueFlowId: string, nodeUid: string): GraphEdge[];
|
|
48
|
+
export declare function successorsEdge(vueFlowId: string, nodeUid: string): GraphEdge[];
|
|
49
|
+
export declare function predecessorsNode(vueFlowId: string, nodeUid: string): (GraphEdge | GraphNode)[];
|
|
50
|
+
export declare function successorsNode(vueFlowId: string, nodeUid: string): (GraphNode<any, any, string> | undefined)[];
|
|
51
|
+
export declare function linkedElements(vueFlowId: string, nodeUid: string): ((import("@vue-flow/core").DefaultEdge<any, any, string> & {
|
|
52
|
+
selected: boolean;
|
|
53
|
+
sourceNode: GraphNode;
|
|
54
|
+
targetNode: GraphNode;
|
|
55
|
+
data: any;
|
|
56
|
+
events: Partial<import("@vue-flow/core").EdgeEventsHandler<any>>;
|
|
57
|
+
type: string;
|
|
58
|
+
} & import("@vue-flow/core").EdgePositions) | GraphNode<any, any, string> | undefined)[];
|
|
59
|
+
export declare function generateDagreGraph(flowGraph: {
|
|
60
|
+
nodes: any;
|
|
61
|
+
clusters: any;
|
|
62
|
+
edges: any;
|
|
63
|
+
}, hiddenNodes: string[], isHorizontal: boolean, clustersWithoutRootNode: string[], edgeReplacer: EdgeReplacer, collapsed: Set<string>, clusterToNode: MinimalNode[]): dagre.graphlib.Graph<{}>;
|
|
64
|
+
export declare function getNodePosition(n: {
|
|
65
|
+
x: number;
|
|
66
|
+
y: number;
|
|
67
|
+
width: number;
|
|
68
|
+
height: number;
|
|
69
|
+
}, parent?: {
|
|
70
|
+
x: number;
|
|
71
|
+
y: number;
|
|
72
|
+
width: number;
|
|
73
|
+
height: number;
|
|
74
|
+
}): {
|
|
75
|
+
x: number;
|
|
76
|
+
y: number;
|
|
77
|
+
};
|
|
78
|
+
export declare function getNodeWidth(node: MinimalNode): 184 | 5 | 150;
|
|
79
|
+
export declare function getNodeHeight(node: MinimalNode): 44 | 5;
|
|
80
|
+
export declare function isTaskNode(node: MinimalNode): boolean;
|
|
81
|
+
export declare function isTriggerNode(node: MinimalNode): boolean;
|
|
82
|
+
export declare function isCollapsedCluster(node: MinimalNode): boolean;
|
|
83
|
+
export declare function replaceIfCollapsed(source: string, target: string, edgeReplacer: EdgeReplacer, hiddenNodes: string[]): {
|
|
84
|
+
target: string;
|
|
85
|
+
source: string;
|
|
86
|
+
} | null;
|
|
87
|
+
export declare function cleanGraph(vueflowId: string): void;
|
|
88
|
+
export declare function flowHaveTasks(source: string): boolean;
|
|
89
|
+
export declare function nodeColor(node: MinimalNode, collapsed: Set<string>): "default" | "success" | "primary" | "danger" | "warning" | "blue";
|
|
90
|
+
export declare function haveAdd(edge: GraphEdge, nodeByUid: Record<string, MinimalNode>, clustersRootTaskUids: string[], readOnlyUidPrefixes: string[]): (string | undefined)[] | undefined;
|
|
91
|
+
export declare function getEdgeColor(edge: GraphEdge, nodeByUid: Record<string, MinimalNode>, clusterByNodeUid: Record<string, Cluster>): "danger" | "warning" | null;
|
|
92
|
+
export declare function generateGraph(_vueFlowId: string, flowId: string | undefined, namespace: string | undefined, flowGraph: FlowGraph | undefined, flowSource: string | undefined, hiddenNodes: string[], isHorizontal: boolean, edgeReplacer: EdgeReplacer, collapsed: Set<string>, clusterToNode: MinimalNode[], isReadOnly: boolean, isAllowedEdit: boolean, enableSubflowInteraction: boolean): Elements | undefined;
|
|
93
|
+
export declare function isClusterRootOrEnd(node: MinimalNode): boolean;
|
|
94
|
+
export declare function computeClusterColor(cluster: Cluster): "success" | "primary" | "danger" | "blue";
|
|
95
|
+
export declare function isExpandableTask(node: MinimalNode, clusterByNodeUid: Record<string, Cluster>, edgeReplacer: EdgeReplacer, enableSubflowInteraction?: boolean): boolean | undefined;
|
|
96
|
+
/**
|
|
97
|
+
* Get nodes that have no incoming edges, i.e., root nodes of the graph.
|
|
98
|
+
*/
|
|
99
|
+
export declare function getRootNodes(graph: FlowGraph): MinimalNode[];
|
|
100
|
+
/**
|
|
101
|
+
* Get the edges connected as the source to a specific node. (outward facing arrows)
|
|
102
|
+
* @param graph The flow graph.
|
|
103
|
+
* @param nodeUid The UID of the node.
|
|
104
|
+
* @returns An array of edges connected to the node.
|
|
105
|
+
*/
|
|
106
|
+
export declare function getTargetNodesEdges(graph: FlowGraph, nodeUid?: string): GraphEdge[] | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* Follow the graph from a specific node to find the next task nodes.
|
|
109
|
+
* This function traverses the graph until it finds a node that is not a cluster.
|
|
110
|
+
* @param graph
|
|
111
|
+
* @param initialNode The initial node to start the search from.
|
|
112
|
+
* @returns An array of the next task nodes found.
|
|
113
|
+
*/
|
|
114
|
+
export declare function getNextTaskNodes(graph: FlowGraph, initialNode: MinimalNode): MinimalNode[];
|
|
115
|
+
/**
|
|
116
|
+
* Check if the tasks in the current graph are identical to the previous graph until the specified task.
|
|
117
|
+
* @param previousGraph The graph from the previous execution.
|
|
118
|
+
* @param currentGraph The graph from the current execution.
|
|
119
|
+
* @param taskId The ID of the task to check.
|
|
120
|
+
* @returns True if all tasks are identical, false otherwise.
|
|
121
|
+
*/
|
|
122
|
+
export declare function areTasksIdenticalInGraphUntilTask(previousGraph: FlowGraph, currentGraph: FlowGraph, taskId?: string): boolean;
|
|
123
|
+
/**
|
|
124
|
+
* @deprecated prefer using VueFlowUtils directly for tree shaking
|
|
125
|
+
*/
|
|
46
126
|
declare const _default: {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}, parent?: {
|
|
70
|
-
x: number;
|
|
71
|
-
y: number;
|
|
72
|
-
width: number;
|
|
73
|
-
height: number;
|
|
74
|
-
}): {
|
|
75
|
-
x: number;
|
|
76
|
-
y: number;
|
|
77
|
-
};
|
|
78
|
-
getNodeWidth(node: MinimalNode): 184 | 5 | 150;
|
|
79
|
-
getNodeHeight(node: MinimalNode): 44 | 5;
|
|
80
|
-
isTaskNode(node: MinimalNode): boolean;
|
|
81
|
-
isTriggerNode(node: MinimalNode): boolean;
|
|
82
|
-
isCollapsedCluster(node: MinimalNode): boolean;
|
|
83
|
-
replaceIfCollapsed(source: string, target: string, edgeReplacer: EdgeReplacer, hiddenNodes: string[]): {
|
|
84
|
-
target: string;
|
|
85
|
-
source: string;
|
|
86
|
-
} | null;
|
|
87
|
-
cleanGraph(vueflowId: string): void;
|
|
88
|
-
flowHaveTasks(source: string): boolean;
|
|
89
|
-
nodeColor(node: MinimalNode, collapsed: Set<string>): "default" | "success" | "primary" | "danger" | "warning" | "blue";
|
|
90
|
-
haveAdd(edge: GraphEdge, nodeByUid: Record<string, MinimalNode>, clustersRootTaskUids: string[], readOnlyUidPrefixes: string[]): (string | undefined)[] | undefined;
|
|
91
|
-
getEdgeColor(edge: GraphEdge, nodeByUid: Record<string, MinimalNode>, clusterByNodeUid: Record<string, Cluster>): "danger" | "warning" | null;
|
|
92
|
-
generateGraph(_vueFlowId: string, flowId: string | undefined, namespace: string | undefined, flowGraph: FlowGraph | undefined, flowSource: string | undefined, hiddenNodes: string[], isHorizontal: boolean, edgeReplacer: EdgeReplacer, collapsed: Set<string>, clusterToNode: MinimalNode[], isReadOnly: boolean, isAllowedEdit: boolean, enableSubflowInteraction: boolean): Elements | undefined;
|
|
93
|
-
isClusterRootOrEnd(node: MinimalNode): boolean;
|
|
94
|
-
computeClusterColor(cluster: Cluster): "success" | "primary" | "danger" | "blue";
|
|
95
|
-
isExpandableTask(node: MinimalNode, clusterByNodeUid: Record<string, Cluster>, edgeReplacer: EdgeReplacer, enableSubflowInteraction?: boolean): boolean | undefined;
|
|
127
|
+
isClusterRootOrEnd: typeof isClusterRootOrEnd;
|
|
128
|
+
computeClusterColor: typeof computeClusterColor;
|
|
129
|
+
isExpandableTask: typeof isExpandableTask;
|
|
130
|
+
generateGraph: typeof generateGraph;
|
|
131
|
+
generateDagreGraph: typeof generateDagreGraph;
|
|
132
|
+
getNodePosition: typeof getNodePosition;
|
|
133
|
+
getNodeWidth: typeof getNodeWidth;
|
|
134
|
+
getNodeHeight: typeof getNodeHeight;
|
|
135
|
+
isTaskNode: typeof isTaskNode;
|
|
136
|
+
isTriggerNode: typeof isTriggerNode;
|
|
137
|
+
isCollapsedCluster: typeof isCollapsedCluster;
|
|
138
|
+
replaceIfCollapsed: typeof replaceIfCollapsed;
|
|
139
|
+
cleanGraph: typeof cleanGraph;
|
|
140
|
+
flowHaveTasks: typeof flowHaveTasks;
|
|
141
|
+
nodeColor: typeof nodeColor;
|
|
142
|
+
haveAdd: typeof haveAdd;
|
|
143
|
+
getEdgeColor: typeof getEdgeColor;
|
|
144
|
+
predecessorsEdge: typeof predecessorsEdge;
|
|
145
|
+
successorsEdge: typeof successorsEdge;
|
|
146
|
+
predecessorsNode: typeof predecessorsNode;
|
|
147
|
+
successorsNode: typeof successorsNode;
|
|
148
|
+
linkedElements: typeof linkedElements;
|
|
96
149
|
};
|
|
97
150
|
export default _default;
|
|
98
151
|
//# sourceMappingURL=VueFlowUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VueFlowUtils.d.ts","sourceRoot":"","sources":["../../src/utils/VueFlowUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAE,SAAS,EAAoC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAChG,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,aAAK,UAAU;IACX,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,eAAe,oBAAoB;CACtC;AAED,UAAU,WAAW;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAClB,CAAA;CACJ;AAED,UAAU,OAAO;IACb,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,WAAW,EAAE,CAAA;IACpB,QAAQ,EAAE;QACN,GAAG,EAAE,MAAM,CAAA;QACX,IAAI,EAAE;YACF,IAAI,EAAE,MAAM,CAAA;YACZ,SAAS,EAAE,MAAM,CAAA;YACjB,MAAM,EAAE,MAAM,CAAA;SACjB,CAAA;KACJ,CAAA;IACD,UAAU,EAAE,UAAU,CAAA;CACzB;AAED,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE;YACL,GAAG,EAAE,MAAM,CAAC;SACf,EAAE,CAAC;KACP,EAAE,CAAC;IACJ,KAAK,EAAE,SAAS,EAAE,CAAA;CACrB;AAED,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA
|
|
1
|
+
{"version":3,"file":"VueFlowUtils.d.ts","sourceRoot":"","sources":["../../src/utils/VueFlowUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export declare const EVENTS: {
|
|
|
17
17
|
readonly ADD_ERROR: "addError";
|
|
18
18
|
readonly EXPAND_DEPENDENCIES: "expandDependencies";
|
|
19
19
|
readonly SHOW_CONDITION: "showCondition";
|
|
20
|
+
readonly RUN_TASK: "runTask";
|
|
20
21
|
};
|
|
21
22
|
export declare const CLUSTER_PREFIX = "cluster_";
|
|
22
23
|
export declare const stateGlobalChartTypes: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAEX,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAEX,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAeT,CAAC;AAEX,eAAO,MAAM,cAAc,aAAa,CAAC;AAEzC,eAAO,MAAM,qBAAqB;;;CAGxB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;CAWb,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;CAOlB,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAad,CAAC;AAEX,eAAO,MAAM,qBAAqB;;;CAGxB,CAAC;AAEX,eAAO,MAAM,kBAAkB;;CAErB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kestra-io/ui-libs",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.224",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -27,6 +27,14 @@
|
|
|
27
27
|
},
|
|
28
28
|
"require": "./dist/kestra-flowyamlutils.cjs.js"
|
|
29
29
|
},
|
|
30
|
+
"./vue-flow-utils": {
|
|
31
|
+
"types": "./dist/utils/VueFlowUtils.d.ts",
|
|
32
|
+
"import": {
|
|
33
|
+
"types": "./dist/utils/VueFlowUtils.d.ts",
|
|
34
|
+
"default": "./dist/kestra-vueflowutils.es.js"
|
|
35
|
+
},
|
|
36
|
+
"require": "./dist/kestra-vueflowutils.cjs.js"
|
|
37
|
+
},
|
|
30
38
|
"./style.css": "./dist/ui-libs.css",
|
|
31
39
|
"./src/*": "./src/*"
|
|
32
40
|
},
|
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
>
|
|
16
16
|
<template #content>
|
|
17
17
|
<execution-informations v-if="taskExecution" :execution="taskExecution" :task="data.node.task" :color="color" :uid="data.node.uid" />
|
|
18
|
+
<button v-if="playgroundEnabled && data.node.task" type="button" class="playground-button" @click="$emit(EVENTS.RUN_TASK, {task: data.node.task})">
|
|
19
|
+
<tooltip style="display: flex;" :title="$t('run task in playground')">
|
|
20
|
+
<PlayIcon class="button-play-icon" alt="Play task" />
|
|
21
|
+
</tooltip>
|
|
22
|
+
</button>
|
|
18
23
|
</template>
|
|
19
24
|
<template #badge-button-before>
|
|
20
25
|
<span
|
|
@@ -83,10 +88,15 @@
|
|
|
83
88
|
import Delete from "vue-material-design-icons/Delete.vue";
|
|
84
89
|
import TextBoxSearch from "vue-material-design-icons/TextBoxSearch.vue";
|
|
85
90
|
import AlertOutline from "vue-material-design-icons/AlertOutline.vue"
|
|
91
|
+
import PlayIcon from "vue-material-design-icons/Play.vue";
|
|
86
92
|
import SendLock from "vue-material-design-icons/SendLock.vue"
|
|
87
93
|
import Tooltip from "../misc/Tooltip.vue"
|
|
88
94
|
import Utils from "../../utils/Utils";
|
|
89
|
-
import {
|
|
95
|
+
import {
|
|
96
|
+
EXECUTION_INJECTION_KEY,
|
|
97
|
+
SUBFLOWS_EXECUTIONS_INJECTION_KEY,
|
|
98
|
+
PLAYGROUND_ENABLED_INJECTION_KEY
|
|
99
|
+
} from "../topology/injectionKeys";
|
|
90
100
|
|
|
91
101
|
export default {
|
|
92
102
|
name: "Task",
|
|
@@ -107,6 +117,9 @@
|
|
|
107
117
|
},
|
|
108
118
|
subflowsExecutions: {
|
|
109
119
|
from: SUBFLOWS_EXECUTIONS_INJECTION_KEY,
|
|
120
|
+
},
|
|
121
|
+
playgroundEnabled: {
|
|
122
|
+
from: PLAYGROUND_ENABLED_INJECTION_KEY,
|
|
110
123
|
}
|
|
111
124
|
},
|
|
112
125
|
computed: {
|
|
@@ -249,3 +262,22 @@
|
|
|
249
262
|
}
|
|
250
263
|
</script>
|
|
251
264
|
|
|
265
|
+
<style lang="scss" scoped>
|
|
266
|
+
@use "../../scss/_color-palette.scss" as _color-palette;
|
|
267
|
+
|
|
268
|
+
.playground-button {
|
|
269
|
+
position: absolute;
|
|
270
|
+
bottom: 0;
|
|
271
|
+
right: 0;
|
|
272
|
+
z-index: 1;
|
|
273
|
+
border: none;
|
|
274
|
+
background: transparent;
|
|
275
|
+
background-color: _color-palette.$base-blue-500;
|
|
276
|
+
color: _color-palette.$base-white;
|
|
277
|
+
border-radius: 3px;
|
|
278
|
+
height: 1rem;
|
|
279
|
+
width: 1rem;
|
|
280
|
+
padding: 0;
|
|
281
|
+
margin: 6px
|
|
282
|
+
}
|
|
283
|
+
</style>
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
:icon-component="iconComponent"
|
|
31
31
|
@edit="emit(EVENTS.EDIT, $event)"
|
|
32
32
|
@delete="emit(EVENTS.DELETE, $event)"
|
|
33
|
+
@run-task="emit(EVENTS.RUN_TASK, $event)"
|
|
33
34
|
@expand="expand($event)"
|
|
34
35
|
@open-link="emit(EVENTS.OPEN_LINK, $event)"
|
|
35
36
|
@show-logs="emit(EVENTS.SHOW_LOGS, $event)"
|
|
@@ -115,10 +116,10 @@
|
|
|
115
116
|
import {cssVariable} from "../../utils/global";
|
|
116
117
|
import {CLUSTER_PREFIX, EVENTS} from "../../utils/constants"
|
|
117
118
|
import Utils from "../../utils/Utils"
|
|
118
|
-
import
|
|
119
|
+
import * as VueFlowUtils from "../../utils/VueFlowUtils";
|
|
119
120
|
import {isParentChildrenRelation, swapBlocks} from "../../utils/FlowYamlUtils";
|
|
120
121
|
import {useScreenshot} from "./export/useScreenshot";
|
|
121
|
-
import {EXECUTION_INJECTION_KEY, SUBFLOWS_EXECUTIONS_INJECTION_KEY} from "./injectionKeys";
|
|
122
|
+
import {EXECUTION_INJECTION_KEY, SUBFLOWS_EXECUTIONS_INJECTION_KEY, PLAYGROUND_ENABLED_INJECTION_KEY} from "./injectionKeys";
|
|
122
123
|
|
|
123
124
|
const props = defineProps({
|
|
124
125
|
id: {
|
|
@@ -147,7 +148,7 @@
|
|
|
147
148
|
default: false,
|
|
148
149
|
},
|
|
149
150
|
flowGraph: {
|
|
150
|
-
type: Object as PropType<FlowGraph>,
|
|
151
|
+
type: Object as PropType<VueFlowUtils.FlowGraph>,
|
|
151
152
|
required: true
|
|
152
153
|
},
|
|
153
154
|
flowId: {
|
|
@@ -181,6 +182,10 @@
|
|
|
181
182
|
subflowsExecutions: {
|
|
182
183
|
type: Object as PropType<Record<string, any[]>>,
|
|
183
184
|
default: () => ({})
|
|
185
|
+
},
|
|
186
|
+
playgroundEnabled: {
|
|
187
|
+
type: Boolean,
|
|
188
|
+
default: false
|
|
184
189
|
}
|
|
185
190
|
});
|
|
186
191
|
|
|
@@ -195,15 +200,18 @@
|
|
|
195
200
|
|
|
196
201
|
provide(EXECUTION_INJECTION_KEY, computed(() => props.execution));
|
|
197
202
|
provide(SUBFLOWS_EXECUTIONS_INJECTION_KEY, computed(() => props.subflowsExecutions));
|
|
203
|
+
provide(PLAYGROUND_ENABLED_INJECTION_KEY, computed(() => props.playgroundEnabled));
|
|
198
204
|
|
|
199
205
|
|
|
200
206
|
const emit = defineEmits(
|
|
201
207
|
[
|
|
202
208
|
EVENTS.EDIT,
|
|
203
209
|
EVENTS.DELETE,
|
|
210
|
+
EVENTS.RUN_TASK,
|
|
204
211
|
EVENTS.OPEN_LINK,
|
|
205
212
|
EVENTS.SHOW_LOGS,
|
|
206
213
|
EVENTS.SHOW_DESCRIPTION,
|
|
214
|
+
EVENTS.RUN_TASK,
|
|
207
215
|
"on-add-flowable-error",
|
|
208
216
|
EVENTS.ADD_TASK,
|
|
209
217
|
"toggle-orientation",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type {ComputedRef, InjectionKey} from "vue"
|
|
2
2
|
|
|
3
3
|
export const EXECUTION_INJECTION_KEY = Symbol("execution-injection-key") as InjectionKey<ComputedRef<any>>
|
|
4
|
-
export const SUBFLOWS_EXECUTIONS_INJECTION_KEY = Symbol("subflows-executions-injection-key") as InjectionKey<ComputedRef<Record<string, any[]>>>
|
|
4
|
+
export const SUBFLOWS_EXECUTIONS_INJECTION_KEY = Symbol("subflows-executions-injection-key") as InjectionKey<ComputedRef<Record<string, any[]>>>
|
|
5
|
+
export const PLAYGROUND_ENABLED_INJECTION_KEY = Symbol("playground-enabled-injection-key") as InjectionKey<ComputedRef<boolean>>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.material-design-icon {
|
|
2
|
+
> .material-design-icon__svg {
|
|
3
|
+
bottom: 0;
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.material-design-icon.icon-2x {
|
|
8
|
+
height: 2em;
|
|
9
|
+
width: 2em;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.material-design-icon.icon-2x > .material-design-icon__svg {
|
|
13
|
+
height: 2em;
|
|
14
|
+
width: 2em;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.material-design-icon.icon-3x {
|
|
18
|
+
height: 3em;
|
|
19
|
+
width: 3em;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.material-design-icon.icon-3x > .material-design-icon__svg {
|
|
23
|
+
height: 3em;
|
|
24
|
+
width: 3em;
|
|
25
|
+
}
|
|
26
|
+
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import {test, expect, describe} from "vitest";
|
|
2
|
+
import * as VueFlowUtils from "./VueFlowUtils";
|
|
3
|
+
|
|
4
|
+
const graph = {
|
|
5
|
+
nodes: [
|
|
6
|
+
{uid: "1", type: "task"},
|
|
7
|
+
{uid: "2", type: "task", task: {
|
|
8
|
+
id: "task1",
|
|
9
|
+
type: "io.kestra.one"
|
|
10
|
+
}},
|
|
11
|
+
{uid: "3", type: "task", task: {
|
|
12
|
+
id: "task2",
|
|
13
|
+
type: "io.kestra.two"
|
|
14
|
+
}},
|
|
15
|
+
{uid: "4", type: "task", task: {
|
|
16
|
+
id: "task3",
|
|
17
|
+
type: "io.kestra.three"
|
|
18
|
+
}},
|
|
19
|
+
{uid: "5", type: "task", task: {
|
|
20
|
+
id: "task4",
|
|
21
|
+
type: "io.kestra.four"
|
|
22
|
+
}},
|
|
23
|
+
{uid: "6", type: "task", task: {
|
|
24
|
+
id: "task5",
|
|
25
|
+
type: "io.kestra.five"
|
|
26
|
+
}}
|
|
27
|
+
],
|
|
28
|
+
edges: [
|
|
29
|
+
{source: "1", target: "2", id: "e1", type: "default"},
|
|
30
|
+
{source: "1", target: "3", id: "e2", type: "default"},
|
|
31
|
+
{source: "2", target: "4", id: "e3", type: "default"},
|
|
32
|
+
{source: "3", target: "5", id: "e4", type: "default"},
|
|
33
|
+
{source: "4", target: "6", id: "e5", type: "default"},
|
|
34
|
+
{source: "5", target: "6", id: "e6", type: "default"}
|
|
35
|
+
],
|
|
36
|
+
clusters: []
|
|
37
|
+
} as any;
|
|
38
|
+
|
|
39
|
+
describe("VueFlowUtils", () => {
|
|
40
|
+
test("getRootNodes should return nodes with no incoming edges", () => {
|
|
41
|
+
const rootNodes = VueFlowUtils.getRootNodes(graph);
|
|
42
|
+
expect(rootNodes).toEqual([{uid: "1", type: "task"}]);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
test("getTargetNodesEdges should return edges connected to a node", () => {
|
|
46
|
+
const edges = VueFlowUtils.getTargetNodesEdges(graph, "1");
|
|
47
|
+
expect(edges).toEqual([
|
|
48
|
+
{source: "1", target: "2", id: "e1", type: "default"},
|
|
49
|
+
{source: "1", target: "3", id: "e2", type: "default"}
|
|
50
|
+
]);
|
|
51
|
+
});
|
|
52
|
+
test("getNextTaskNodes should return next task nodes", () => {
|
|
53
|
+
const nextTaskNodes = VueFlowUtils.getNextTaskNodes(graph, {uid: "1"} as any);
|
|
54
|
+
expect(nextTaskNodes).toEqual([
|
|
55
|
+
{uid: "2", type: "task", task: {id: "task1", type: "io.kestra.one"}},
|
|
56
|
+
{uid: "3", type: "task", task: {id: "task2", type: "io.kestra.two"}},
|
|
57
|
+
]);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
test("areTasksIdenticalInGraphUntilTask should return true for identical tasks", () => {
|
|
61
|
+
const previousGraph = {
|
|
62
|
+
...graph
|
|
63
|
+
};
|
|
64
|
+
const currentGraph = {
|
|
65
|
+
...graph
|
|
66
|
+
};
|
|
67
|
+
expect(previousGraph).toEqual(currentGraph);
|
|
68
|
+
expect(VueFlowUtils.areTasksIdenticalInGraphUntilTask(previousGraph, currentGraph, "task4")).toBeTruthy();
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
test("areTasksIdenticalInGraphUntilTask should return false for different tasks", () => {
|
|
72
|
+
const previousGraph = {
|
|
73
|
+
...graph
|
|
74
|
+
};
|
|
75
|
+
const currentGraph = {
|
|
76
|
+
...graph,
|
|
77
|
+
nodes: graph.nodes.map((node: any) => {
|
|
78
|
+
if (node.uid === "3") {
|
|
79
|
+
return {...node, task: {...node.task, id: "task1-modified"}};
|
|
80
|
+
}
|
|
81
|
+
return node;
|
|
82
|
+
})
|
|
83
|
+
};
|
|
84
|
+
expect(VueFlowUtils.areTasksIdenticalInGraphUntilTask(previousGraph, currentGraph, "task4")).toBeFalsy();
|
|
85
|
+
});
|
|
86
|
+
});
|