n8n-editor-ui 1.83.2 → 1.85.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/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-COOCXFFe.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BefsLZo6.js} +1 -1
- package/dist/assets/{AuthView-C7UxnH6d.js → AuthView-Bwnmj61F.js} +2 -2
- package/dist/assets/{CanvasChat-CSLR5tKe.css → CanvasChatSwitch-BcSDHC-c.css} +546 -33
- package/dist/assets/{CanvasChat-CmjR9yPV.js → CanvasChatSwitch-Dgc1t6ax.js} +1047 -550
- package/dist/assets/{ChangePasswordView-ah8H7l7b.js → ChangePasswordView-Ojbow8CX.js} +3 -3
- package/dist/assets/CollectionParameter-2r_LuiyO.js +4 -0
- package/dist/assets/CommitMonoVariable-ytizKI8U.woff2 +0 -0
- package/dist/assets/{CredentialsView-DqcTSsjv.js → CredentialsView-DhEvPiu_.js} +19 -9
- package/dist/assets/{ErrorView-DG7aEbhz.js → ErrorView-RGryGbpa.js} +1 -1
- package/dist/assets/{ConcurrentExecutionsHeader-CEBmSYNK.css → ExecutionsTime-BOPJEomw.css} +63 -63
- package/dist/assets/{ConcurrentExecutionsHeader-tdwilNra.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-Iwq0aeRX.js} +114 -114
- package/dist/assets/ExecutionsView-CL7Ei3Em.js +943 -0
- package/dist/assets/{ExecutionsView-CB1tvZfo.css → ExecutionsView-JCKikuIS.css} +60 -188
- package/dist/assets/{FileSaver.min-D9u6MONp.js → FileSaver.min-C4OYrSWg.js} +1 -1
- package/dist/assets/{FixedCollectionParameter-CLjLHGyL.js → FixedCollectionParameter-CJ4s-1jy.js} +1 -1
- package/dist/assets/{ForgotMyPasswordView-DDtUSUcw.js → ForgotMyPasswordView-7tFMaf89.js} +3 -3
- package/dist/assets/InterVariable-DiVDrmQJ.woff2 +0 -0
- package/dist/assets/InterVariable-Italic-FCBEiFp6.woff2 +0 -0
- package/dist/assets/{Logo-CBvZEey7.js → Logo-BW8jOa0h.js} +8 -19
- package/dist/assets/{ProjectHeader-BZ6b6lat.css → Logo-DLBj1gMw.css} +23 -17
- package/dist/assets/{MainHeader-PgJurmwZ.js → MainHeader-BUWCKbvC.js} +47 -22
- package/dist/assets/{MainHeader-CX-ZfeKE.css → MainHeader-CWA2JfVJ.css} +22 -22
- package/dist/assets/{MainSidebar-DsyUXL2c.js → MainSidebar-BeZfQeco.js} +75 -42
- package/dist/assets/{MainSidebar-BRAjTL7J.css → MainSidebar-CKMiDGvH.css} +13 -12
- package/dist/assets/{NodeCreation-CiSTfSrv.js → NodeCreation-DIg39Pbx.js} +5 -5
- package/dist/assets/{NodeCreator-16svYK-i.js → NodeCreator-BwYjrEUk.js} +10 -11
- package/dist/assets/{NodeCreator-DDiuO5S0.css → NodeCreator-D9fmPdS2.css} +12 -12
- package/dist/assets/{NodeDetailsView-CVVfk-zW.css → NodeDetailsView-C1z3N5z_.css} +46 -46
- package/dist/assets/{NodeDetailsView-D5ZKTnOO.js → NodeDetailsView-WuroVzlr.js} +93 -85
- package/dist/assets/{NodeView-CVxHVGxF.js → NodeView-CmjajouX.js} +63 -28
- package/dist/assets/{ProjectCardBadge-DKJ8uRN7.js → ProjectCardBadge-cIqYJxKe.js} +1 -1
- package/dist/assets/ProjectHeader-B-a6_GH6.css +285 -0
- package/dist/assets/{ProjectHeader-BY3TAX3C.js → ProjectHeader-BGrFY-5v.js} +66 -27
- package/dist/assets/{ProjectSettings-B3FxW1ze.js → ProjectSettings-D10vay6-.js} +2 -3
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-CzwYeMCe.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DJAYslHT.js} +2 -2
- package/dist/assets/{ResourcesListLayout-DbPhtDij.js → ResourcesListLayout-C6v8Zm5q.js} +25 -21
- package/dist/assets/{ResourcesListLayout-Brs7VKUf.css → ResourcesListLayout-CWgWhtKq.css} +43 -33
- package/dist/assets/{RunDataAi-DJ-PSs_k.css → RunDataAi-CN9FrT9c.css} +2 -2
- package/dist/assets/{RunDataAi-Cq_XIdUj.js → RunDataAi-dhPBStdr.js} +25 -20
- package/dist/assets/{RunDataJson-BYaB0x1O.js → RunDataJson-kGRhUGn3.js} +12 -12
- package/dist/assets/{RunDataJsonActions-CU0K3JKo.js → RunDataJsonActions-BTljOq8V.js} +2 -2
- package/dist/assets/{RunDataSearch-Cx3Q6SS-.js → RunDataSearch-mVQhE8PH.js} +1 -1
- package/dist/assets/{RunDataTable-thC_K8V5.js → RunDataTable-CFoDiExh.js} +2 -2
- package/dist/assets/{SamlOnboarding-kqju2Vdw.js → SamlOnboarding-dDZHHNp4.js} +3 -3
- package/dist/assets/{SettingsApiView-DZWY9nyk.js → SettingsApiView-C9hbuZ42.js} +2 -3
- package/dist/assets/{SettingsCommunityNodesView-BLPF2nGe.js → SettingsCommunityNodesView-0wzih2lc.js} +5 -5
- package/dist/assets/{SettingsExternalSecrets-giVhhOpK.js → SettingsExternalSecrets-BCDoBPTc.js} +1 -1
- package/dist/assets/{SettingsLdapView-CcLGbweG.js → SettingsLdapView-CBCprymb.js} +1 -1
- package/dist/assets/{SettingsLogStreamingView-T4v-UDVv.js → SettingsLogStreamingView-CMQQQdcB.js} +2 -2
- package/dist/assets/{SettingsPersonalView-C1vojEEm.js → SettingsPersonalView-DtAM5Qmb.js} +1 -1
- package/dist/assets/{SettingsSourceControl-mTHmVIMw.js → SettingsSourceControl-CysMFVZs.js} +1 -1
- package/dist/assets/{SettingsSso-BBoPSBvR.js → SettingsSso-B0PZUvVx.js} +7 -7
- package/dist/assets/{SettingsSso-BjoJZ2DU.css → SettingsSso-DyrGnPdA.css} +10 -10
- package/dist/assets/{SettingsUsageAndPlan-CT1Jb0GH.js → SettingsUsageAndPlan-2QUTEbXv.js} +8 -3
- package/dist/assets/{SettingsUsageAndPlan-Cul4YcIk.css → SettingsUsageAndPlan-b3WY2Ea_.css} +3 -3
- package/dist/assets/{SettingsUsersView-Cak1x7Pc.js → SettingsUsersView-C16e4GB4.js} +1 -1
- package/dist/assets/{SettingsView-DCkltMay.js → SettingsView-B-BQ6FGS.js} +1 -1
- package/dist/assets/{SetupView-DJmIQyS0.js → SetupView-Kx3RATQz.js} +3 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-DCfwCYAd.js → SetupWorkflowCredentialsButton-BQ2_-L-1.js} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-k_iBV2jh.js → SetupWorkflowFromTemplateView-D_E17TKc.js} +3 -3
- package/dist/assets/{SigninView-BnsteSQ9.js → SigninView-d0aJ1Mkg.js} +3 -3
- package/dist/assets/{SignoutView-CyCh9bOx.js → SignoutView-CvyFrh7y.js} +1 -1
- package/dist/assets/{SignupView-BsFwHPbF.js → SignupView-CnlD_UrJ.js} +3 -3
- package/dist/assets/{TemplateDetails-D_qS2oXP.js → TemplateDetails-DRuh9UqO.js} +3 -3
- package/dist/assets/{TemplateList-Bsr77oun.js → TemplateList-gpWBWX3r.js} +1 -1
- package/dist/assets/{TemplatesCollectionView-DOx2xwGE.js → TemplatesCollectionView-Y6-pxrOD.js} +5 -5
- package/dist/assets/{TemplatesSearchView-C6YmB2wy.js → TemplatesSearchView-DP8XRZ62.js} +3 -3
- package/dist/assets/{TemplatesView-DQBwrteM.js → TemplatesView-B3vanV3h.js} +1 -1
- package/dist/assets/{TemplatesWorkflowView-C2iuRHel.js → TemplatesWorkflowView-CIB9qsVC.js} +5 -5
- package/dist/assets/{TestDefinitionEditView-JONL00pA.css → TestDefinitionEditView-BXhOuJrU.css} +128 -116
- package/dist/assets/{TestDefinitionEditView-BhFe0nl4.js → TestDefinitionEditView-BkhmS3l4.js} +243 -252
- package/dist/assets/{TestDefinitionListView-xb_7O8DU.js → TestDefinitionListView-tvjwd9Ts.js} +1 -1
- package/dist/assets/{TestDefinitionNewView-DfTA2Tx8.js → TestDefinitionNewView-DOGHwct6.js} +13 -4
- package/dist/assets/{TestDefinitionRootView-CaoWSLan.js → TestDefinitionRootView-B-QvwldV.js} +1 -1
- package/dist/assets/{VariablesView-CbTLdNwU.css → VariablesView-ATWfdJsE.css} +7 -11
- package/dist/assets/{VariablesView-B2ttHbBo.js → VariablesView-CoBnz2nF.js} +6 -6
- package/dist/assets/{WorkerView-CzDTwlX2.js → WorkerView-CsTZzlRj.js} +7 -7
- package/dist/assets/{WorkflowActivator-mNogYc60.js → WorkflowActivator-DeLhupjy.js} +2 -2
- package/dist/assets/{WorkflowExecutionsInfoAccordion-CNoXKDkU.js → WorkflowExecutionsInfoAccordion-WRdvo2wq.js} +1 -1
- package/dist/assets/{WorkflowExecutionsLandingPage-XS-H1Pwn.js → WorkflowExecutionsLandingPage-DP8mgG6I.js} +2 -2
- package/dist/assets/{WorkflowExecutionsPreview-BMqpqyNP.js → WorkflowExecutionsPreview-BmG1Fptg.js} +270 -136
- package/dist/assets/{WorkflowExecutionsPreview-BDVLuC1z.css → WorkflowExecutionsPreview-CHu6M3Dh.css} +70 -38
- package/dist/assets/{WorkflowExecutionsView-BLj64NZs.js → WorkflowExecutionsView-DmN-exp3.js} +6 -7
- package/dist/assets/{WorkflowHistory-CFqqM71F.js → WorkflowHistory-CdEr7dbB.js} +3 -3
- package/dist/assets/{WorkflowOnboardingView-8o-XsXJA.js → WorkflowOnboardingView-D45YjFmk.js} +1 -1
- package/dist/assets/{WorkflowPreview-B05e6atY.js → WorkflowPreview-x0_AdULu.js} +1 -1
- package/dist/assets/{WorkflowsView-D6AZEJR8.js → WorkflowsView-BhcJ-MjE.js} +726 -341
- package/dist/assets/{WorkflowsView-JN0Hvhvt.css → WorkflowsView-r9qJOUEb.css} +64 -43
- package/dist/assets/{easyAiWorkflowUtils-DCq6uUmq.js → easyAiWorkflowUtils-NXaV8dgZ.js} +5 -5
- package/dist/assets/{global-link-actions-DhVbzPXz.js → global-link-actions-DgZH3fz2.js} +1 -1
- package/dist/assets/{import-curl-CpQ9LTub.js → import-curl-DUv4B2nO.js} +1 -1
- package/dist/assets/{index-ntAcmC2q.js → index-CDluwnbb.js} +4962 -3420
- package/dist/assets/{index-D534l065.css → index-CgXKy7t-.css} +2783 -2112
- package/dist/assets/{index-wbgX3Vnk.js → index-DAyhXitv.js} +1 -1
- package/dist/assets/{pickBy-DAl85H93.js → pickBy-D-hOoXP_.js} +1 -1
- package/dist/assets/{polyfills-C7eMRNFe.js → polyfills-CLZ4X0Ad.js} +2342 -1944
- package/dist/assets/{pushConnection.store-Cs7MLBaJ.js → pushConnection.store-Dl_VgTY2.js} +1 -1
- package/dist/assets/{templateActions-C6kwBsE2.js → templateActions-B4AFVixD.js} +1 -1
- package/dist/assets/{typescript.worker-DP34mIHW.js → typescript.worker-Bt3bByTc.js} +1158 -695
- package/dist/assets/{useBeforeUnload-Cr9E4FVX.js → useBeforeUnload-DS-CCd-3.js} +1 -1
- package/dist/assets/{useCanvasMapping-CkNBF2SE.css → useCanvasMapping-CJcAsQmx.css} +585 -585
- package/dist/assets/{useCanvasMapping-DwbUSpab.js → useCanvasMapping-DnPGwCm3.js} +10390 -10379
- package/dist/assets/{useCanvasOperations-Ch4-PXXM.js → useCanvasOperations-CY1OrN2X.js} +472 -185
- package/dist/assets/useClearExecutionButtonVisible-CjX9PqMR.js +23 -0
- package/dist/assets/{useExecutionDebugging-WtMBcJA-.js → useExecutionDebugging-BN-lQ24h.js} +1 -1
- package/dist/assets/{useExecutionHelpers-DYVB2XNC.js → useExecutionHelpers-wN0DRQB-.js} +1 -1
- package/dist/assets/{useImportCurlCommand-B6a2t4kf.js → useImportCurlCommand-DgTeVIgh.js} +13 -20
- package/dist/assets/useOverview-BBgWJdVL.js +161 -0
- package/dist/assets/{Logo-DJLTXpXC.css → useOverview-DcRuPjLJ.css} +97 -30
- package/dist/assets/{usePushConnection-BvuDmDSY.js → usePushConnection-F1s4Muc0.js} +5 -4
- package/dist/assets/{useRunWorkflow-BjW-TsKk.js → useRunWorkflow-RBDuKZVj.js} +13 -13
- package/dist/assets/{useTestDefinitionForm-uexL_DkW.js → useTestDefinitionForm-DX1gvhBC.js} +1 -1
- package/dist/assets/{useWorkflowActivate-BAjo-kUC.js → useWorkflowActivate-DsRC3mvG.js} +1 -1
- package/dist/index.html +3 -3
- package/package.json +1 -1
- package/dist/assets/CollectionParameter-Dk76idMw.js +0 -4
- package/dist/assets/ExecutionsView-zqdNLgx1.js +0 -983
- package/dist/assets/ProjectCreateResource-5lC9x1Ht.js +0 -56
- package/dist/assets/ProjectCreateResource-eYdTamXR.css +0 -139
- package/dist/assets/open-sans-latin-400-normal-kLvSbl7y.woff +0 -0
- package/dist/assets/open-sans-latin-400-normal-sjvN8RAh.woff2 +0 -0
- package/dist/assets/open-sans-latin-600-normal-BYc6TgXR.woff2 +0 -0
- package/dist/assets/open-sans-latin-600-normal-CJ2UE_uF.woff +0 -0
- package/dist/assets/open-sans-latin-700-normal-DMXgkrz3.woff +0 -0
- package/dist/assets/open-sans-latin-700-normal-DXyImmHa.woff2 +0 -0
- package/dist/assets/usePinnedData-CvnROquX.js +0 -274
package/dist/assets/{TestDefinitionEditView-BhFe0nl4.js → TestDefinitionEditView-BkhmS3l4.js}
RENAMED
|
@@ -1,233 +1,19 @@
|
|
|
1
|
-
import { u as useTestDefinitionForm } from "./useTestDefinitionForm-
|
|
2
|
-
import {
|
|
3
|
-
import { u as useVueFlow, a as useCanvasMapping,
|
|
4
|
-
import {
|
|
5
|
-
import { L as Line } from "./index-
|
|
6
|
-
import "./
|
|
7
|
-
import "./
|
|
8
|
-
import "./pushConnection.store-Cs7MLBaJ.js";
|
|
9
|
-
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
10
|
-
__name: "NodesPinning",
|
|
11
|
-
props: {
|
|
12
|
-
modelValue: {}
|
|
13
|
-
},
|
|
14
|
-
emits: ["update:modelValue"],
|
|
15
|
-
setup(__props, { emit: __emit }) {
|
|
16
|
-
const workflowsStore = useWorkflowsStore();
|
|
17
|
-
const nodeTypesStore = useNodeTypesStore();
|
|
18
|
-
const route = useRoute();
|
|
19
|
-
const router = useRouter();
|
|
20
|
-
const locale = useI18n();
|
|
21
|
-
const telemetry = useTelemetry();
|
|
22
|
-
const { resetWorkspace, initializeWorkspace } = useCanvasOperations({ router });
|
|
23
|
-
const eventBus = createEventBus();
|
|
24
|
-
const style = useCssModule();
|
|
25
|
-
const uuid = crypto.randomUUID();
|
|
26
|
-
const props = __props;
|
|
27
|
-
const emit = __emit;
|
|
28
|
-
const isLoading = ref(true);
|
|
29
|
-
const workflowId = computed(() => route.params.name);
|
|
30
|
-
const testId = computed(() => route.params.testId);
|
|
31
|
-
const workflow = computed(() => workflowsStore.getWorkflowById(workflowId.value));
|
|
32
|
-
const workflowObject = computed(() => workflowsStore.getCurrentWorkflow(true));
|
|
33
|
-
const canvasId = computed(() => `${uuid}-${testId.value}`);
|
|
34
|
-
const { onNodesInitialized, fitView, zoomTo } = useVueFlow({ id: canvasId.value });
|
|
35
|
-
const nodes = computed(() => {
|
|
36
|
-
return workflow.value.nodes ?? [];
|
|
37
|
-
});
|
|
38
|
-
const connections = computed(() => workflow.value.connections);
|
|
39
|
-
const { nodes: mappedNodes, connections: mappedConnections } = useCanvasMapping({
|
|
40
|
-
nodes,
|
|
41
|
-
connections,
|
|
42
|
-
workflowObject
|
|
43
|
-
});
|
|
44
|
-
async function loadData() {
|
|
45
|
-
workflowsStore.resetState();
|
|
46
|
-
resetWorkspace();
|
|
47
|
-
const loadingPromise = Promise.all([
|
|
48
|
-
nodeTypesStore.getNodeTypes(),
|
|
49
|
-
workflowsStore.fetchWorkflow(workflowId.value)
|
|
50
|
-
]);
|
|
51
|
-
await loadingPromise;
|
|
52
|
-
initializeWorkspace(workflow.value);
|
|
53
|
-
disableAllNodes();
|
|
54
|
-
}
|
|
55
|
-
function getNodeNameById(id) {
|
|
56
|
-
return mappedNodes.value.find((node) => node.id === id)?.data?.name;
|
|
57
|
-
}
|
|
58
|
-
function updateNodeClasses(nodeIds, isPinned2) {
|
|
59
|
-
eventBus.emit("nodes:action", {
|
|
60
|
-
ids: nodeIds,
|
|
61
|
-
action: "update:node:class",
|
|
62
|
-
payload: {
|
|
63
|
-
className: style.pinnedNode,
|
|
64
|
-
add: isPinned2
|
|
65
|
-
}
|
|
66
|
-
});
|
|
67
|
-
eventBus.emit("nodes:action", {
|
|
68
|
-
ids: nodeIds,
|
|
69
|
-
action: "update:node:class",
|
|
70
|
-
payload: {
|
|
71
|
-
className: style.notPinnedNode,
|
|
72
|
-
add: !isPinned2
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
function disableAllNodes() {
|
|
77
|
-
const ids = mappedNodes.value.map((node) => node.id);
|
|
78
|
-
updateNodeClasses(ids, false);
|
|
79
|
-
const pinnedNodes = props.modelValue.map((node) => node.id).filter((id) => id !== null);
|
|
80
|
-
if (pinnedNodes.length > 0) {
|
|
81
|
-
updateNodeClasses(pinnedNodes, true);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
function onPinButtonClick(data) {
|
|
85
|
-
const nodeName = getNodeNameById(data.id);
|
|
86
|
-
if (!nodeName) return;
|
|
87
|
-
const isPinned2 = props.modelValue.some((node) => node.id === data.id);
|
|
88
|
-
const updatedNodes = isPinned2 ? props.modelValue.filter((node) => node.id !== data.id) : [...props.modelValue, { name: nodeName, id: data.id }];
|
|
89
|
-
emit("update:modelValue", updatedNodes);
|
|
90
|
-
updateNodeClasses([data.id], !isPinned2);
|
|
91
|
-
if (!isPinned2) {
|
|
92
|
-
telemetry.track("User selected node to be mocked", {
|
|
93
|
-
node_id: data.id,
|
|
94
|
-
test_id: testId.value
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
function isPinButtonVisible(outputs, inputs) {
|
|
99
|
-
return outputs.length === 1 && inputs.length >= 1;
|
|
100
|
-
}
|
|
101
|
-
const isPinned = (data) => props.modelValue.some((node) => node.id === data.id);
|
|
102
|
-
onNodesInitialized(async () => {
|
|
103
|
-
await fitView();
|
|
104
|
-
isLoading.value = false;
|
|
105
|
-
await zoomTo(0.7, { duration: 400 });
|
|
106
|
-
});
|
|
107
|
-
onMounted(loadData);
|
|
108
|
-
return (_ctx, _cache) => {
|
|
109
|
-
const _component_N8nHeading = resolveComponent("N8nHeading");
|
|
110
|
-
const _component_N8nText = resolveComponent("N8nText");
|
|
111
|
-
const _component_N8nSpinner = resolveComponent("N8nSpinner");
|
|
112
|
-
const _component_N8nButton = resolveComponent("N8nButton");
|
|
113
|
-
const _component_Canvas = __unplugin_components_0$1;
|
|
114
|
-
return unref(mappedNodes).length === 0 ? (openBlock(), createElementBlock("div", {
|
|
115
|
-
key: 0,
|
|
116
|
-
class: normalizeClass(_ctx.$style.noNodes)
|
|
117
|
-
}, [
|
|
118
|
-
createVNode(_component_N8nHeading, {
|
|
119
|
-
size: "large",
|
|
120
|
-
bold: true,
|
|
121
|
-
class: normalizeClass(_ctx.$style.noNodesTitle)
|
|
122
|
-
}, {
|
|
123
|
-
default: withCtx(() => [
|
|
124
|
-
createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.edit.pinNodes.noNodes.title")), 1)
|
|
125
|
-
]),
|
|
126
|
-
_: 1
|
|
127
|
-
}, 8, ["class"]),
|
|
128
|
-
createVNode(_component_N8nText, null, {
|
|
129
|
-
default: withCtx(() => [
|
|
130
|
-
createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.edit.pinNodes.noNodes.description")), 1)
|
|
131
|
-
]),
|
|
132
|
-
_: 1
|
|
133
|
-
})
|
|
134
|
-
], 2)) : (openBlock(), createElementBlock("div", {
|
|
135
|
-
key: 1,
|
|
136
|
-
class: normalizeClass(_ctx.$style.container)
|
|
137
|
-
}, [
|
|
138
|
-
isLoading.value ? (openBlock(), createBlock(_component_N8nSpinner, {
|
|
139
|
-
key: 0,
|
|
140
|
-
size: "xlarge",
|
|
141
|
-
type: "dots",
|
|
142
|
-
class: normalizeClass(_ctx.$style.spinner)
|
|
143
|
-
}, null, 8, ["class"])) : createCommentVNode("", true),
|
|
144
|
-
createVNode(_component_Canvas, {
|
|
145
|
-
id: canvasId.value,
|
|
146
|
-
loading: isLoading.value,
|
|
147
|
-
class: normalizeClass({ [_ctx.$style.canvas]: true }),
|
|
148
|
-
nodes: unref(mappedNodes),
|
|
149
|
-
connections: unref(mappedConnections),
|
|
150
|
-
"show-bug-reporting-button": false,
|
|
151
|
-
"read-only": true,
|
|
152
|
-
"event-bus": unref(eventBus)
|
|
153
|
-
}, {
|
|
154
|
-
nodeToolbar: withCtx(({ data, outputs, inputs }) => [
|
|
155
|
-
isPinButtonVisible(outputs, inputs) ? (openBlock(), createElementBlock("div", {
|
|
156
|
-
key: 0,
|
|
157
|
-
class: normalizeClass({
|
|
158
|
-
[_ctx.$style.pinButtonContainer]: true,
|
|
159
|
-
[_ctx.$style.pinButtonContainerPinned]: isPinned(data)
|
|
160
|
-
})
|
|
161
|
-
}, [
|
|
162
|
-
createVNode(unref(N8nTooltip), { placement: "left" }, {
|
|
163
|
-
content: withCtx(() => [
|
|
164
|
-
createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.edit.nodesPinning.pinButtonTooltip")), 1)
|
|
165
|
-
]),
|
|
166
|
-
default: withCtx(() => [
|
|
167
|
-
isPinned(data) ? (openBlock(), createBlock(_component_N8nButton, {
|
|
168
|
-
key: 0,
|
|
169
|
-
icon: "thumbtack",
|
|
170
|
-
block: "",
|
|
171
|
-
type: "secondary",
|
|
172
|
-
class: normalizeClass(_ctx.$style.customSecondary),
|
|
173
|
-
"data-test-id": "node-pin-button",
|
|
174
|
-
onClick: ($event) => onPinButtonClick(data)
|
|
175
|
-
}, {
|
|
176
|
-
default: withCtx(() => _cache[0] || (_cache[0] = [
|
|
177
|
-
createTextVNode(" Un Mock ")
|
|
178
|
-
])),
|
|
179
|
-
_: 2
|
|
180
|
-
}, 1032, ["class", "onClick"])) : (openBlock(), createBlock(_component_N8nButton, {
|
|
181
|
-
key: 1,
|
|
182
|
-
icon: "thumbtack",
|
|
183
|
-
block: "",
|
|
184
|
-
type: "secondary",
|
|
185
|
-
"data-test-id": "node-pin-button",
|
|
186
|
-
onClick: ($event) => onPinButtonClick(data)
|
|
187
|
-
}, {
|
|
188
|
-
default: withCtx(() => _cache[1] || (_cache[1] = [
|
|
189
|
-
createTextVNode(" Mock ")
|
|
190
|
-
])),
|
|
191
|
-
_: 2
|
|
192
|
-
}, 1032, ["onClick"]))
|
|
193
|
-
]),
|
|
194
|
-
_: 2
|
|
195
|
-
}, 1024)
|
|
196
|
-
], 2)) : createCommentVNode("", true)
|
|
197
|
-
]),
|
|
198
|
-
_: 1
|
|
199
|
-
}, 8, ["id", "loading", "class", "nodes", "connections", "event-bus"])
|
|
200
|
-
], 2));
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
const container$1 = "_container_z719h_123";
|
|
205
|
-
const pinButtonContainer = "_pinButtonContainer_z719h_128";
|
|
206
|
-
const pinButtonContainerPinned = "_pinButtonContainerPinned_z719h_139";
|
|
207
|
-
const customSecondary = "_customSecondary_z719h_143";
|
|
208
|
-
const spinner = "_spinner_z719h_152";
|
|
209
|
-
const noNodes = "_noNodes_z719h_159";
|
|
210
|
-
const style0$8 = {
|
|
211
|
-
container: container$1,
|
|
212
|
-
pinButtonContainer,
|
|
213
|
-
pinButtonContainerPinned,
|
|
214
|
-
customSecondary,
|
|
215
|
-
spinner,
|
|
216
|
-
noNodes
|
|
217
|
-
};
|
|
218
|
-
const cssModules$8 = {
|
|
219
|
-
"$style": style0$8
|
|
220
|
-
};
|
|
221
|
-
const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__cssModules", cssModules$8]]);
|
|
1
|
+
import { u as useTestDefinitionForm } from "./useTestDefinitionForm-DX1gvhBC.js";
|
|
2
|
+
import { _ as _export_sfc, i as createElementBlock, g as openBlock, k as createBaseVNode, n as normalizeClass, d as defineComponent, r as ref, $ as useCssModule, q as computed, h as resolveComponent, m as unref, j as createVNode, f as createCommentVNode, aR as N8nTooltip, w as withCtx, e as createBlock, by as N8nText, x as renderSlot, F as Fragment, l as createTextVNode, t as toDisplayString, d9 as InfoTip, c as useI18n, g9 as ne, bw as useTemplateRef, D as renderList, ga as N8nInput, aT as _sfc_main$a, b9 as N8nButton, z as nextTick, T as useWorkflowsStore, bu as useNodeTypesStore, U as useRoute, b as useRouter, fJ as useModel, o as onMounted, cU as N8nHeading, gb as _sfc_main$b, b2 as mergeProps, ah as useTelemetry, a3 as useProjectsStore, gc as SAMPLE_EVALUATION_WORKFLOW, aS as N8nLink, gd as __unplugin_components_0, V as VIEWS, fI as mergeModels, ge as Tag, gf as NODE_PINNING_MODAL_KEY, gg as __unplugin_components_0$1, aj as useMessage, fi as dateFormat, ba as watchEffect, aB as withDirectives, aC as vShow, gh as TestTableBase, c6 as N8nIcon, B as normalizeStyle, K as useDebounce, a as useToast, c3 as useTestDefinitionStore, fT as useAnnotationTagsStore, L as useUIStore, Z as useDocumentVisibility, I as watch, gi as InlineNameEdit } from "./index-CDluwnbb.js";
|
|
3
|
+
import { u as useVueFlow, a as useCanvasMapping, C as Canvas, b as CanvasNode } from "./useCanvasMapping-DnPGwCm3.js";
|
|
4
|
+
import { b as useCanvasOperations } from "./useCanvasOperations-CY1OrN2X.js";
|
|
5
|
+
import { L as Line } from "./index-DAyhXitv.js";
|
|
6
|
+
import "./useRunWorkflow-RBDuKZVj.js";
|
|
7
|
+
import "./pushConnection.store-Dl_VgTY2.js";
|
|
222
8
|
const blockArrow = "_blockArrow_hbkir_123";
|
|
223
9
|
const stalk = "_stalk_hbkir_129";
|
|
224
10
|
const arrowHead = "_arrowHead_hbkir_136";
|
|
225
|
-
const style0$
|
|
11
|
+
const style0$8 = {
|
|
226
12
|
blockArrow,
|
|
227
13
|
stalk,
|
|
228
14
|
arrowHead
|
|
229
15
|
};
|
|
230
|
-
const _sfc_main$
|
|
16
|
+
const _sfc_main$9 = {};
|
|
231
17
|
function _sfc_render(_ctx, _cache) {
|
|
232
18
|
return openBlock(), createElementBlock("div", {
|
|
233
19
|
class: normalizeClass(_ctx.$style.blockArrow)
|
|
@@ -240,11 +26,11 @@ function _sfc_render(_ctx, _cache) {
|
|
|
240
26
|
}, null, 2)
|
|
241
27
|
], 2);
|
|
242
28
|
}
|
|
243
|
-
const cssModules$
|
|
244
|
-
"$style": style0$
|
|
29
|
+
const cssModules$8 = {
|
|
30
|
+
"$style": style0$8
|
|
245
31
|
};
|
|
246
|
-
const BlockArrow = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
247
|
-
const _sfc_main$
|
|
32
|
+
const BlockArrow = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["render", _sfc_render], ["__cssModules", cssModules$8]]);
|
|
33
|
+
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
248
34
|
__name: "EvaluationStep",
|
|
249
35
|
props: {
|
|
250
36
|
title: { default: "" },
|
|
@@ -411,7 +197,7 @@ const infoTip = "_infoTip_1h8fm_172";
|
|
|
411
197
|
const actions = "_actions_1h8fm_180";
|
|
412
198
|
const cardContent = "_cardContent_1h8fm_186";
|
|
413
199
|
const cardContentWrapper = "_cardContentWrapper_1h8fm_192";
|
|
414
|
-
const style0$
|
|
200
|
+
const style0$7 = {
|
|
415
201
|
evaluationStep,
|
|
416
202
|
evaluationTooltip,
|
|
417
203
|
icon,
|
|
@@ -425,11 +211,11 @@ const style0$6 = {
|
|
|
425
211
|
cardContentWrapper,
|
|
426
212
|
"has-issues": "_has-issues_1h8fm_196"
|
|
427
213
|
};
|
|
428
|
-
const cssModules$
|
|
429
|
-
"$style": style0$
|
|
214
|
+
const cssModules$7 = {
|
|
215
|
+
"$style": style0$7
|
|
430
216
|
};
|
|
431
|
-
const EvaluationStep = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
432
|
-
const _sfc_main$
|
|
217
|
+
const EvaluationStep = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__cssModules", cssModules$7]]);
|
|
218
|
+
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
433
219
|
__name: "MetricsInput",
|
|
434
220
|
props: {
|
|
435
221
|
modelValue: {}
|
|
@@ -491,13 +277,219 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
491
277
|
}
|
|
492
278
|
});
|
|
493
279
|
const metricItem = "_metricItem_1hbcq_123";
|
|
494
|
-
const style0$
|
|
280
|
+
const style0$6 = {
|
|
495
281
|
metricItem
|
|
496
282
|
};
|
|
283
|
+
const cssModules$6 = {
|
|
284
|
+
"$style": style0$6
|
|
285
|
+
};
|
|
286
|
+
const MetricsInput = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__cssModules", cssModules$6]]);
|
|
287
|
+
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
288
|
+
__name: "NodesPinning",
|
|
289
|
+
props: {
|
|
290
|
+
"modelValue": { required: true },
|
|
291
|
+
"modelModifiers": {}
|
|
292
|
+
},
|
|
293
|
+
emits: ["update:modelValue"],
|
|
294
|
+
setup(__props) {
|
|
295
|
+
const workflowsStore = useWorkflowsStore();
|
|
296
|
+
const nodeTypesStore = useNodeTypesStore();
|
|
297
|
+
const route = useRoute();
|
|
298
|
+
const router = useRouter();
|
|
299
|
+
const locale = useI18n();
|
|
300
|
+
const telemetry = useTelemetry();
|
|
301
|
+
const { resetWorkspace, initializeWorkspace } = useCanvasOperations({ router });
|
|
302
|
+
const uuid = crypto.randomUUID();
|
|
303
|
+
const model = useModel(__props, "modelValue");
|
|
304
|
+
const isLoading = ref(false);
|
|
305
|
+
const workflowId = computed(() => route.params.name);
|
|
306
|
+
const testId = computed(() => route.params.testId);
|
|
307
|
+
const workflow = computed(() => workflowsStore.getWorkflowById(workflowId.value));
|
|
308
|
+
const workflowObject = computed(() => workflowsStore.getCurrentWorkflow(true));
|
|
309
|
+
const canvasId = computed(() => `${uuid}-${testId.value}`);
|
|
310
|
+
const { onNodesInitialized, fitView, zoomTo, onNodeClick, viewport } = useVueFlow({
|
|
311
|
+
id: canvasId.value
|
|
312
|
+
});
|
|
313
|
+
const nodes = computed(() => workflow.value.nodes ?? []);
|
|
314
|
+
const connections = computed(() => workflow.value.connections);
|
|
315
|
+
const { nodes: mappedNodes, connections: mappedConnections } = useCanvasMapping({
|
|
316
|
+
nodes,
|
|
317
|
+
connections,
|
|
318
|
+
workflowObject
|
|
319
|
+
});
|
|
320
|
+
async function loadData() {
|
|
321
|
+
isLoading.value = true;
|
|
322
|
+
workflowsStore.resetState();
|
|
323
|
+
resetWorkspace();
|
|
324
|
+
await Promise.all([
|
|
325
|
+
nodeTypesStore.getNodeTypes(),
|
|
326
|
+
workflowsStore.fetchWorkflow(workflowId.value)
|
|
327
|
+
]);
|
|
328
|
+
workflow.value.pinData = {};
|
|
329
|
+
initializeWorkspace(workflow.value);
|
|
330
|
+
}
|
|
331
|
+
function getNodeNameById(id) {
|
|
332
|
+
return mappedNodes.value.find((node) => node.id === id)?.data?.name;
|
|
333
|
+
}
|
|
334
|
+
function isMocked(data) {
|
|
335
|
+
return model.value.some((node) => node.id === data.id);
|
|
336
|
+
}
|
|
337
|
+
function canBeMocked(outputs, inputs) {
|
|
338
|
+
return outputs.length === 1 && inputs.length >= 1;
|
|
339
|
+
}
|
|
340
|
+
function handleNodeClick(data) {
|
|
341
|
+
const nodeName = getNodeNameById(data.id);
|
|
342
|
+
if (!nodeName || !canBeMocked(data.outputs, data.inputs)) return;
|
|
343
|
+
const mocked = isMocked(data);
|
|
344
|
+
model.value = mocked ? model.value.filter((node) => node.id !== data.id) : model.value.concat({ name: nodeName, id: data.id });
|
|
345
|
+
if (!mocked) {
|
|
346
|
+
telemetry.track("User selected node to be mocked", {
|
|
347
|
+
node_id: data.id,
|
|
348
|
+
test_id: testId.value
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
function tooltipContent(data) {
|
|
353
|
+
if (nodeTypesStore.isTriggerNode(data.type)) {
|
|
354
|
+
return locale.baseText("testDefinition.edit.nodesPinning.triggerTooltip");
|
|
355
|
+
}
|
|
356
|
+
if (!canBeMocked(data.outputs, data.inputs)) {
|
|
357
|
+
return;
|
|
358
|
+
}
|
|
359
|
+
if (isMocked(data)) {
|
|
360
|
+
return locale.baseText("testDefinition.edit.nodesPinning.pinButtonTooltip.pinned");
|
|
361
|
+
} else {
|
|
362
|
+
return locale.baseText("testDefinition.edit.nodesPinning.pinButtonTooltip");
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
function tooltipOffset(data) {
|
|
366
|
+
if (nodeTypesStore.isTriggerNode(data.type)) return;
|
|
367
|
+
return 45 * viewport.value.zoom;
|
|
368
|
+
}
|
|
369
|
+
function tooltipProps(data) {
|
|
370
|
+
const content2 = tooltipContent(data);
|
|
371
|
+
return {
|
|
372
|
+
disabled: !content2,
|
|
373
|
+
content: content2,
|
|
374
|
+
offset: tooltipOffset(data)
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
onNodeClick(({ node }) => handleNodeClick(node.data));
|
|
378
|
+
onNodesInitialized(async () => {
|
|
379
|
+
await fitView();
|
|
380
|
+
await zoomTo(0.7);
|
|
381
|
+
await new Promise((resolve) => setTimeout(resolve, 400));
|
|
382
|
+
isLoading.value = false;
|
|
383
|
+
});
|
|
384
|
+
onMounted(loadData);
|
|
385
|
+
return (_ctx, _cache) => {
|
|
386
|
+
return unref(mappedNodes).length === 0 ? (openBlock(), createElementBlock("div", {
|
|
387
|
+
key: 0,
|
|
388
|
+
class: normalizeClass(_ctx.$style.noNodes)
|
|
389
|
+
}, [
|
|
390
|
+
createVNode(unref(N8nHeading), {
|
|
391
|
+
size: "large",
|
|
392
|
+
bold: true,
|
|
393
|
+
class: normalizeClass(_ctx.$style.noNodesTitle)
|
|
394
|
+
}, {
|
|
395
|
+
default: withCtx(() => [
|
|
396
|
+
createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.edit.pinNodes.noNodes.title")), 1)
|
|
397
|
+
]),
|
|
398
|
+
_: 1
|
|
399
|
+
}, 8, ["class"]),
|
|
400
|
+
createVNode(unref(N8nText), null, {
|
|
401
|
+
default: withCtx(() => [
|
|
402
|
+
createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.edit.pinNodes.noNodes.description")), 1)
|
|
403
|
+
]),
|
|
404
|
+
_: 1
|
|
405
|
+
})
|
|
406
|
+
], 2)) : (openBlock(), createElementBlock("div", {
|
|
407
|
+
key: 1,
|
|
408
|
+
class: normalizeClass(_ctx.$style.container)
|
|
409
|
+
}, [
|
|
410
|
+
isLoading.value ? (openBlock(), createBlock(unref(_sfc_main$b), {
|
|
411
|
+
key: 0,
|
|
412
|
+
size: "large",
|
|
413
|
+
type: "dots",
|
|
414
|
+
class: normalizeClass(_ctx.$style.spinner)
|
|
415
|
+
}, null, 8, ["class"])) : createCommentVNode("", true),
|
|
416
|
+
createVNode(Canvas, {
|
|
417
|
+
id: canvasId.value,
|
|
418
|
+
loading: isLoading.value,
|
|
419
|
+
nodes: unref(mappedNodes),
|
|
420
|
+
connections: unref(mappedConnections),
|
|
421
|
+
"show-bug-reporting-button": false,
|
|
422
|
+
"read-only": true
|
|
423
|
+
}, {
|
|
424
|
+
node: withCtx(({ nodeProps }) => [
|
|
425
|
+
createVNode(unref(N8nTooltip), mergeProps({ placement: "top" }, tooltipProps(nodeProps.data)), {
|
|
426
|
+
default: withCtx(() => [
|
|
427
|
+
createVNode(CanvasNode, mergeProps(nodeProps, {
|
|
428
|
+
class: {
|
|
429
|
+
[_ctx.$style.isTrigger]: unref(nodeTypesStore).isTriggerNode(nodeProps.data.type),
|
|
430
|
+
[_ctx.$style.mockNode]: true
|
|
431
|
+
}
|
|
432
|
+
}), {
|
|
433
|
+
toolbar: withCtx(({ data, outputs, inputs }) => [
|
|
434
|
+
canBeMocked(outputs, inputs) ? (openBlock(), createElementBlock("div", {
|
|
435
|
+
key: 0,
|
|
436
|
+
class: normalizeClass({
|
|
437
|
+
[_ctx.$style.pinButtonContainer]: true,
|
|
438
|
+
[_ctx.$style.pinButtonContainerPinned]: isMocked(data)
|
|
439
|
+
})
|
|
440
|
+
}, [
|
|
441
|
+
createVNode(unref(N8nButton), {
|
|
442
|
+
icon: "thumbtack",
|
|
443
|
+
block: "",
|
|
444
|
+
type: "secondary",
|
|
445
|
+
class: normalizeClass({ [_ctx.$style.customSecondary]: isMocked(data) }),
|
|
446
|
+
"data-test-id": "node-pin-button"
|
|
447
|
+
}, {
|
|
448
|
+
default: withCtx(() => [
|
|
449
|
+
isMocked(data) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
450
|
+
createTextVNode(toDisplayString(unref(locale).baseText("contextMenu.unpin")), 1)
|
|
451
|
+
], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
452
|
+
createTextVNode(toDisplayString(unref(locale).baseText("contextMenu.pin")), 1)
|
|
453
|
+
], 64))
|
|
454
|
+
]),
|
|
455
|
+
_: 2
|
|
456
|
+
}, 1032, ["class"])
|
|
457
|
+
], 2)) : createCommentVNode("", true)
|
|
458
|
+
]),
|
|
459
|
+
_: 2
|
|
460
|
+
}, 1040, ["class"])
|
|
461
|
+
]),
|
|
462
|
+
_: 2
|
|
463
|
+
}, 1040)
|
|
464
|
+
]),
|
|
465
|
+
_: 1
|
|
466
|
+
}, 8, ["id", "loading", "nodes", "connections"])
|
|
467
|
+
], 2));
|
|
468
|
+
};
|
|
469
|
+
}
|
|
470
|
+
});
|
|
471
|
+
const mockNode = "_mockNode_7xdc7_123";
|
|
472
|
+
const isTrigger = "_isTrigger_7xdc7_127";
|
|
473
|
+
const container$1 = "_container_7xdc7_131";
|
|
474
|
+
const pinButtonContainer = "_pinButtonContainer_7xdc7_138";
|
|
475
|
+
const pinButtonContainerPinned = "_pinButtonContainerPinned_7xdc7_149";
|
|
476
|
+
const customSecondary = "_customSecondary_7xdc7_153";
|
|
477
|
+
const spinner = "_spinner_7xdc7_162";
|
|
478
|
+
const noNodes = "_noNodes_7xdc7_169";
|
|
479
|
+
const style0$5 = {
|
|
480
|
+
mockNode,
|
|
481
|
+
isTrigger,
|
|
482
|
+
container: container$1,
|
|
483
|
+
pinButtonContainer,
|
|
484
|
+
pinButtonContainerPinned,
|
|
485
|
+
customSecondary,
|
|
486
|
+
spinner,
|
|
487
|
+
noNodes
|
|
488
|
+
};
|
|
497
489
|
const cssModules$5 = {
|
|
498
490
|
"$style": style0$5
|
|
499
491
|
};
|
|
500
|
-
const
|
|
492
|
+
const NodesPinning = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__cssModules", cssModules$5]]);
|
|
501
493
|
const _hoisted_1$3 = { class: "mt-xs" };
|
|
502
494
|
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
503
495
|
__name: "WorkflowSelector",
|
|
@@ -558,7 +550,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
558
550
|
window.open(href, "_blank");
|
|
559
551
|
};
|
|
560
552
|
return (_ctx, _cache) => {
|
|
561
|
-
const _component_WorkflowSelectorParameterInput = __unplugin_components_0
|
|
553
|
+
const _component_WorkflowSelectorParameterInput = __unplugin_components_0;
|
|
562
554
|
return openBlock(), createElementBlock("div", _hoisted_1$3, [
|
|
563
555
|
!_ctx.modelValue.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
564
556
|
createVNode(unref(N8nButton), {
|
|
@@ -661,7 +653,6 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
661
653
|
);
|
|
662
654
|
const metrics = useModel(__props, "metrics");
|
|
663
655
|
const mockedNodes = useModel(__props, "mockedNodes");
|
|
664
|
-
const nodePinningModal = ref(null);
|
|
665
656
|
const selectedTag = computed(() => props.tagsById[tags.value.value[0]] ?? {});
|
|
666
657
|
function openExecutionsView() {
|
|
667
658
|
emit("openExecutionsViewForTag");
|
|
@@ -669,9 +660,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
669
660
|
return (_ctx, _cache) => {
|
|
670
661
|
const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
|
|
671
662
|
const _component_i18n_t = resolveComponent("i18n-t");
|
|
672
|
-
const
|
|
673
|
-
const _component_NodesPinning = __unplugin_components_0;
|
|
674
|
-
const _component_Modal = __unplugin_components_1;
|
|
663
|
+
const _component_Modal = __unplugin_components_0$1;
|
|
675
664
|
return openBlock(), createElementBlock("div", null, [
|
|
676
665
|
createBaseVNode("div", {
|
|
677
666
|
class: normalizeClass(_ctx.$style.editForm)
|
|
@@ -814,24 +803,24 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
814
803
|
}, 8, ["title", "issues", "description", "tooltip", "external-tooltip"])
|
|
815
804
|
], 2),
|
|
816
805
|
createVNode(_component_Modal, {
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
height: "85vh",
|
|
806
|
+
width: "calc(100% - (48px * 2))",
|
|
807
|
+
height: "calc(100% - (48px * 2))",
|
|
808
|
+
"custom-class": _ctx.$style.pinnigModal,
|
|
821
809
|
name: unref(NODE_PINNING_MODAL_KEY)
|
|
822
810
|
}, {
|
|
823
811
|
header: withCtx(() => [
|
|
824
|
-
createVNode(
|
|
825
|
-
|
|
826
|
-
|
|
812
|
+
createVNode(unref(N8nHeading), {
|
|
813
|
+
tag: "h3",
|
|
814
|
+
size: "xlarge",
|
|
815
|
+
color: "text-dark",
|
|
816
|
+
class: "mb-2xs"
|
|
827
817
|
}, {
|
|
828
818
|
default: withCtx(() => [
|
|
829
819
|
createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.edit.selectNodes")), 1)
|
|
830
820
|
]),
|
|
831
821
|
_: 1
|
|
832
822
|
}),
|
|
833
|
-
|
|
834
|
-
createVNode(unref(N8nText), null, {
|
|
823
|
+
createVNode(unref(N8nText), { color: "text-base" }, {
|
|
835
824
|
default: withCtx(() => [
|
|
836
825
|
createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.edit.modal.description")), 1)
|
|
837
826
|
]),
|
|
@@ -839,21 +828,23 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
839
828
|
})
|
|
840
829
|
]),
|
|
841
830
|
content: withCtx(() => [
|
|
842
|
-
createVNode(
|
|
831
|
+
createVNode(NodesPinning, {
|
|
843
832
|
modelValue: mockedNodes.value,
|
|
844
833
|
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => mockedNodes.value = $event),
|
|
845
834
|
"data-test-id": "nodes-pinning-modal"
|
|
846
835
|
}, null, 8, ["modelValue"])
|
|
847
836
|
]),
|
|
848
837
|
_: 1
|
|
849
|
-
}, 8, ["name"])
|
|
838
|
+
}, 8, ["custom-class", "name"])
|
|
850
839
|
]);
|
|
851
840
|
};
|
|
852
841
|
}
|
|
853
842
|
});
|
|
854
|
-
const
|
|
855
|
-
const
|
|
843
|
+
const pinnigModal = "_pinnigModal_1qbos_123";
|
|
844
|
+
const nestedSteps = "_nestedSteps_1qbos_128";
|
|
845
|
+
const tagInputTag = "_tagInputTag_1qbos_133";
|
|
856
846
|
const style0$4 = {
|
|
847
|
+
pinnigModal,
|
|
857
848
|
nestedSteps,
|
|
858
849
|
tagInputTag
|
|
859
850
|
};
|
package/dist/assets/{TestDefinitionListView-xb_7O8DU.js → TestDefinitionListView-tvjwd9Ts.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as defineComponent, q as computed,
|
|
1
|
+
import { d as defineComponent, q as computed, i as createElementBlock, g as openBlock, n as normalizeClass, k as createBaseVNode, j as createVNode, w as withCtx, l as createTextVNode, m as unref, d3 as N8nBadge, e as createBlock, f as createCommentVNode, t as toDisplayString, c as useI18n, by as N8nText, b9 as N8nButton, F as Fragment, _ as _export_sfc, x as renderSlot, b2 as mergeProps, c6 as N8nIcon, cO as _sfc_main$3, D as renderList, b as useRouter, c3 as useTestDefinitionStore, a as useToast, d1 as useAsyncState, cY as orderBy, g7 as N8nLoading, cU as N8nHeading, J as withModifiers, g8 as N8nActionToggle, aR as N8nTooltip, aT as _sfc_main$4, ar as h, c4 as RouterLink, V as VIEWS, aj as useMessage, ak as MODAL_CONFIRM } from "./index-CDluwnbb.js";
|
|
2
2
|
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
3
3
|
__name: "EmptyState",
|
|
4
4
|
emits: ["create-test"],
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { u as useTestDefinitionForm } from "./useTestDefinitionForm-
|
|
2
|
-
import { d as defineComponent,
|
|
1
|
+
import { u as useTestDefinitionForm } from "./useTestDefinitionForm-DX1gvhBC.js";
|
|
2
|
+
import { d as defineComponent, c3 as useTestDefinitionStore, fT as useAnnotationTagsStore, au as useExecutionsStore, a as useToast, b as useRouter, U as useRoute, ah as useTelemetry, a0 as useRootStore, V as VIEWS, e as createBlock, g as openBlock, m as unref, g7 as N8nLoading } from "./index-CDluwnbb.js";
|
|
3
3
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
4
4
|
__name: "TestDefinitionNewView",
|
|
5
5
|
props: {
|
|
@@ -10,9 +10,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
10
10
|
const { state, createTest, updateTest } = useTestDefinitionForm();
|
|
11
11
|
const testDefinitionStore = useTestDefinitionStore();
|
|
12
12
|
const tagsStore = useAnnotationTagsStore();
|
|
13
|
+
const executionsStore = useExecutionsStore();
|
|
13
14
|
const toast = useToast();
|
|
14
15
|
const telemetry = useTelemetry();
|
|
15
16
|
const router = useRouter();
|
|
17
|
+
const route = useRoute();
|
|
16
18
|
function generateTagFromName(name) {
|
|
17
19
|
let tag = name.toLowerCase().replace(/\s+/g, "_");
|
|
18
20
|
if (tag.length > 18) {
|
|
@@ -35,9 +37,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
35
37
|
if (!test) {
|
|
36
38
|
throw new Error("no test found");
|
|
37
39
|
}
|
|
38
|
-
const tag = generateTagFromName(
|
|
40
|
+
const tag = generateTagFromName(test.name);
|
|
39
41
|
const testTag = await createTag(tag);
|
|
40
42
|
state.value.tags.value = [testTag.id];
|
|
43
|
+
if (typeof route.query?.executionId === "string" && Array.isArray(route.query.annotationTags)) {
|
|
44
|
+
const newTags = [...route.query.annotationTags, testTag.id];
|
|
45
|
+
await executionsStore.annotateExecution(route.query.executionId, { tags: newTags });
|
|
46
|
+
}
|
|
41
47
|
await updateTest(test.id);
|
|
42
48
|
testDefinitionStore.updateRunFieldIssues(test.id);
|
|
43
49
|
telemetry.track(
|
|
@@ -57,7 +63,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
57
63
|
});
|
|
58
64
|
});
|
|
59
65
|
return (_ctx, _cache) => {
|
|
60
|
-
return openBlock(),
|
|
66
|
+
return openBlock(), createBlock(unref(N8nLoading), {
|
|
67
|
+
loading: "",
|
|
68
|
+
rows: 3
|
|
69
|
+
});
|
|
61
70
|
};
|
|
62
71
|
}
|
|
63
72
|
});
|
package/dist/assets/{TestDefinitionRootView-CaoWSLan.js → TestDefinitionRootView-B-QvwldV.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as defineComponent, b as useRouter,
|
|
1
|
+
import { d as defineComponent, b as useRouter, a6 as useWorkflowHelpers, T as useWorkflowsStore, d1 as useAsyncState, h as resolveComponent, i as createElementBlock, g as openBlock, e as createBlock, f as createCommentVNode, m as unref, n as normalizeClass, _ as _export_sfc } from "./index-CDluwnbb.js";
|
|
2
2
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
3
3
|
__name: "TestDefinitionRootView",
|
|
4
4
|
props: {
|