n8n-editor-ui 1.81.3 → 1.82.1

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.
Files changed (110) hide show
  1. package/biome.jsonc +2 -2
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BW998oiU.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CVAPh1f-.js} +1 -1
  3. package/dist/assets/{AuthView-D06Y8WaW.js → AuthView-f4oecjPB.js} +2 -2
  4. package/dist/assets/{CanvasChat-oFfeuF_m.css → CanvasChat-CSLR5tKe.css} +67 -67
  5. package/dist/assets/{CanvasChat-B1XqDPdJ.js → CanvasChat-DRLqKEil.js} +7 -7
  6. package/dist/assets/{ChangePasswordView-DlhvSj3v.js → ChangePasswordView-qEIbFcTO.js} +3 -3
  7. package/dist/assets/CollectionParameter-l-cUQi-f.js +4 -0
  8. package/dist/assets/{ConcurrentExecutionsHeader-DpmCHvh5.js → ConcurrentExecutionsHeader-Ddh95eQk.js} +2 -2
  9. package/dist/assets/{CredentialsView-gqJJjZnH.js → CredentialsView-BsOy9bMK.js} +6 -6
  10. package/dist/assets/{ErrorView-CWdS6JZF.js → ErrorView--froAN-1.js} +1 -1
  11. package/dist/assets/{ExecutionsView-D5yJwk_n.js → ExecutionsView-odqi6gmC.js} +6 -6
  12. package/dist/assets/{FileSaver.min-JqqCDClh.js → FileSaver.min-pwLVwMq4.js} +1 -1
  13. package/dist/assets/{FixedCollectionParameter-BReT5syB.css → FixedCollectionParameter-BATXrzXI.css} +18 -18
  14. package/dist/assets/{FixedCollectionParameter-B3QletY6.js → FixedCollectionParameter-DWdgl2BK.js} +2 -2
  15. package/dist/assets/{ForgotMyPasswordView-Ch9OesTT.js → ForgotMyPasswordView-DM8k7659.js} +3 -3
  16. package/dist/assets/{Logo-DNtRgn1M.js → Logo-86l8l_Uc.js} +1 -1
  17. package/dist/assets/{MainHeader-ByRLGpW_.css → MainHeader-CX-ZfeKE.css} +34 -40
  18. package/dist/assets/{MainHeader-W9wyL7aF.js → MainHeader-Ddeqm9X3.js} +112 -97
  19. package/dist/assets/{MainSidebar-iL8E6f86.js → MainSidebar-CBjO7dQF.js} +3 -3
  20. package/dist/assets/{MainSidebar-BQVC8zBU.css → MainSidebar-DULRx8tG.css} +2 -2
  21. package/dist/assets/{NodeCreation-LU_Jd7ZN.js → NodeCreation-D4zlvQth.js} +4 -4
  22. package/dist/assets/{NodeCreator-CbVtwR4D.js → NodeCreator-CRV2RNCc.js} +4 -4
  23. package/dist/assets/{NodeDetailsView-C5qgc2nE.js → NodeDetailsView-CGPkwklD.js} +43 -26
  24. package/dist/assets/{NodeDetailsView-C2CtoATD.css → NodeDetailsView-mr-1IzdH.css} +22 -22
  25. package/dist/assets/{NodeView-cgb1K0sK.js → NodeView-BO6hcUEI.js} +28 -18
  26. package/dist/assets/{ProjectCardBadge-DY9PI-lv.js → ProjectCardBadge-CukEqaMt.js} +1 -1
  27. package/dist/assets/{ProjectCreateResource-icMXxLmn.js → ProjectCreateResource-CtheSWks.js} +1 -1
  28. package/dist/assets/{ProjectHeader-B1QbGLAy.js → ProjectHeader-DyqSSbiB.js} +31 -12
  29. package/dist/assets/{ProjectSettings-Sjv7MdiW.js → ProjectSettings-A-Jx5EuH.js} +3 -3
  30. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-BkeJK_o6.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DCOYMajh.js} +2 -2
  31. package/dist/assets/{ResourcesListLayout-DgwDLCvq.js → ResourcesListLayout--Bt5VWxW.js} +31 -27
  32. package/dist/assets/{ResourcesListLayout-GXGxZsS7.css → ResourcesListLayout-CrglsyJJ.css} +28 -25
  33. package/dist/assets/{RunDataAi-CVZUcHKh.js → RunDataAi-3mvlRRpH.js} +95 -81
  34. package/dist/assets/{RunDataJson-v1xs8mOh.js → RunDataJson-zJPQ05WS.js} +12 -12
  35. package/dist/assets/{RunDataJsonActions-BF_w46-j.js → RunDataJsonActions-B7Oc2vSo.js} +2 -2
  36. package/dist/assets/{RunDataSearch-C9vTRbpZ.js → RunDataSearch-unoOqlxw.js} +1 -1
  37. package/dist/assets/{RunDataTable-Cyt-R5Ne.js → RunDataTable-D4ImpIT0.js} +2 -2
  38. package/dist/assets/{SamlOnboarding-B0GtxhUj.js → SamlOnboarding-79GZgVmm.js} +3 -3
  39. package/dist/assets/{SettingsApiView-BB3Lm3bi.css → SettingsApiView-BF29ifnH.css} +17 -7
  40. package/dist/assets/{SettingsApiView-BquBHARi.js → SettingsApiView-Bfu9Eq70.js} +96 -12
  41. package/dist/assets/{SettingsCommunityNodesView-MlgZs1pJ.js → SettingsCommunityNodesView-D0ljXB1M.js} +5 -5
  42. package/dist/assets/{SettingsExternalSecrets-B1tujBx-.js → SettingsExternalSecrets-B26gYiBu.js} +1 -1
  43. package/dist/assets/{SettingsLdapView-Bu2QmZFA.js → SettingsLdapView-vYxwcftp.js} +1 -1
  44. package/dist/assets/{SettingsLogStreamingView-4o7kKzWx.js → SettingsLogStreamingView-BdbopaRu.js} +1 -1
  45. package/dist/assets/{SettingsPersonalView-BT1ea9Z0.js → SettingsPersonalView-b-MqOeug.js} +1 -1
  46. package/dist/assets/{SettingsSourceControl-BgyzWk3N.js → SettingsSourceControl-uQItePJJ.js} +1 -1
  47. package/dist/assets/{SettingsSso-Bj2HtCgL.js → SettingsSso-Dax1Fk3N.js} +1 -1
  48. package/dist/assets/{SettingsUsageAndPlan-B5DEUrT3.css → SettingsUsageAndPlan-Cul4YcIk.css} +3 -3
  49. package/dist/assets/{SettingsUsageAndPlan-DjPctQ_D.js → SettingsUsageAndPlan-DmRaRr9Y.js} +2 -2
  50. package/dist/assets/{SettingsUsersView-CJO9WyW-.js → SettingsUsersView-Dq_Xawhz.js} +1 -1
  51. package/dist/assets/{SettingsView-D_eMci-B.js → SettingsView-CwE_fjon.js} +1 -1
  52. package/dist/assets/{SetupView-wadckBuD.js → SetupView-CBN-MPm-.js} +3 -3
  53. package/dist/assets/{SetupWorkflowCredentialsButton-BtI5-vnz.js → SetupWorkflowCredentialsButton-DMEKgnto.js} +1 -1
  54. package/dist/assets/{SetupWorkflowFromTemplateView-BXi0z9da.js → SetupWorkflowFromTemplateView-C-xX73HU.js} +3 -3
  55. package/dist/assets/{SigninView-CF48sXfq.js → SigninView-Y47sX3sc.js} +3 -3
  56. package/dist/assets/{SignoutView-Ce-O1UMs.js → SignoutView-L91VLZRK.js} +1 -1
  57. package/dist/assets/{SignupView-H4rvet3k.js → SignupView-BSHwg6_v.js} +3 -3
  58. package/dist/assets/{TemplateDetails-Bord-EUO.js → TemplateDetails-C6QQKqXn.js} +1 -1
  59. package/dist/assets/{TemplateList-D2yeNaWY.js → TemplateList-BzVBnzbc.js} +1 -1
  60. package/dist/assets/{TemplatesCollectionView-Cis6Moe6.js → TemplatesCollectionView-DKaMozRB.js} +5 -5
  61. package/dist/assets/{TemplatesSearchView-cQp7aQ8O.js → TemplatesSearchView-Avn4D7q4.js} +3 -3
  62. package/dist/assets/{TemplatesView-Bzt-Y5nc.js → TemplatesView-DktpANMP.js} +1 -1
  63. package/dist/assets/{TemplatesWorkflowView-g_-2p5ff.js → TemplatesWorkflowView-B-XJLYyE.js} +5 -5
  64. package/dist/assets/{TestDefinitionEditView-BLTcYPQo.js → TestDefinitionEditView-BA1sXEbp.js} +316 -446
  65. package/dist/assets/{TestDefinitionEditView-B-ShDvcb.css → TestDefinitionEditView-JONL00pA.css} +54 -239
  66. package/dist/assets/{TestDefinitionListView-DUy0g6ec.js → TestDefinitionListView-CFrLcIk_.js} +29 -35
  67. package/dist/assets/{TestDefinitionListView-DQQJ8Oqf.css → TestDefinitionListView-Di-Edppe.css} +5 -5
  68. package/dist/assets/{TestDefinitionNewView-B4zhJ4fN.js → TestDefinitionNewView-B0ez8o4U.js} +2 -2
  69. package/dist/assets/{TestDefinitionRootView-Bxlk4Tgo.js → TestDefinitionRootView-BIq9LbNz.js} +1 -1
  70. package/dist/assets/{VariablesView-BbD_NAsg.js → VariablesView-CJO6im3Q.js} +6 -6
  71. package/dist/assets/{VariablesView-0Eu4NnUq.css → VariablesView-CbTLdNwU.css} +10 -10
  72. package/dist/assets/{WorkerView-Bv8QDUJT.js → WorkerView-BZFdCgX1.js} +7 -7
  73. package/dist/assets/{WorkflowActivator-Zsg0lNt1.js → WorkflowActivator-Dio1FWuT.js} +2 -2
  74. package/dist/assets/{WorkflowExecutionsInfoAccordion-CSN7f5M7.js → WorkflowExecutionsInfoAccordion-DNiIxxXO.js} +1 -1
  75. package/dist/assets/{WorkflowExecutionsLandingPage-B50N9dpW.js → WorkflowExecutionsLandingPage-UiQavDut.js} +2 -2
  76. package/dist/assets/{WorkflowExecutionsPreview-DMeq-RS5.js → WorkflowExecutionsPreview-wbxiFm6F.js} +6 -6
  77. package/dist/assets/{WorkflowExecutionsView-FR2n2eBe.js → WorkflowExecutionsView-BXjP0BOn.js} +7 -7
  78. package/dist/assets/{WorkflowHistory-CEqY5Y6b.js → WorkflowHistory-lacb8AOz.js} +3 -3
  79. package/dist/assets/{WorkflowOnboardingView-Bi5Hxeov.js → WorkflowOnboardingView-BdS71XgS.js} +1 -1
  80. package/dist/assets/{WorkflowPreview-DKlt4Yv2.js → WorkflowPreview-DDD47V5y.js} +1 -1
  81. package/dist/assets/{WorkflowsView-B8AX9T7c.js → WorkflowsView-A_2DIum0.js} +633 -272
  82. package/dist/assets/{WorkflowsView-Dc4DNgGT.css → WorkflowsView-JN0Hvhvt.css} +323 -26
  83. package/dist/assets/{easyAiWorkflowUtils-BeiAbGC2.js → easyAiWorkflowUtils-qtdB9CeQ.js} +1 -1
  84. package/dist/assets/{global-link-actions-DeB7eHyR.js → global-link-actions-D2_SnpTc.js} +1 -1
  85. package/dist/assets/{import-curl-C7cTqHyb.js → import-curl-Bm8BI4Ms.js} +1 -1
  86. package/dist/assets/{index-CkwX7P7C.js → index-CnJ6KvXD.js} +1 -1
  87. package/dist/assets/{index-DSYFXmvJ.js → index-DkwrpQEB.js} +3391 -3352
  88. package/dist/assets/{index-CKK_xS1q.css → index-DvUG3hgI.css} +355 -148
  89. package/dist/assets/{pickBy-BHWEuElj.js → pickBy-4c9jgxg1.js} +1 -1
  90. package/dist/assets/{pushConnection.store-BZc1Uu8B.js → pushConnection.store-DAf-xv0B.js} +1 -1
  91. package/dist/assets/{templateActions-CzrfZkNs.js → templateActions-DhuUlB_y.js} +1 -1
  92. package/dist/assets/{useBeforeUnload-7dWWMCaC.js → useBeforeUnload-B-rNKRVu.js} +1 -1
  93. package/dist/assets/{useCanvasMapping-CM-3KDoy.js → useCanvasMapping-BE9PMjep.js} +4252 -279
  94. package/dist/assets/{useCanvasMapping-Bb0rYy8s.css → useCanvasMapping-CkNBF2SE.css} +184 -45
  95. package/dist/assets/{useCanvasOperations-C8HcBhlE.js → useCanvasOperations-BYt9MoCZ.js} +219 -21
  96. package/dist/assets/{useExecutionDebugging-CO_W_RS3.js → useExecutionDebugging-eHQMFoAz.js} +1 -1
  97. package/dist/assets/{useExecutionHelpers-DKm2JOsm.js → useExecutionHelpers-DTlfzIbO.js} +1 -1
  98. package/dist/assets/{useImportCurlCommand-CA75qM-Y.js → useImportCurlCommand-CWfidUYH.js} +2 -2
  99. package/dist/assets/{usePinnedData-CX8CCdD1.js → usePinnedData-cAEPUGIg.js} +1 -1
  100. package/dist/assets/{usePushConnection-CArtQ7pf.js → usePushConnection-De7r5t9d.js} +4 -4
  101. package/dist/assets/{useRunWorkflow-BsB1hrcR.js → useRunWorkflow-Cr62-QBr.js} +193 -18
  102. package/dist/assets/{useTestDefinitionForm-DgumxLYU.js → useTestDefinitionForm-wWVotwCR.js} +1 -1
  103. package/dist/assets/{useWorkflowActivate-C_9fNHFS.js → useWorkflowActivate-COcGS4jx.js} +1 -1
  104. package/dist/index.html +2 -2
  105. package/package.json +1 -1
  106. package/tsconfig.json +8 -12
  107. package/vite.config.mts +17 -16
  108. package/dist/assets/CollectionParameter-C8EYd2H8.js +0 -4
  109. /package/dist/{public/tree-sitter-bash.wasm → tree-sitter-bash.wasm} +0 -0
  110. /package/dist/{public/tree-sitter.wasm → tree-sitter.wasm} +0 -0
@@ -1,11 +1,11 @@
1
- import { u as useTestDefinitionForm } from "./useTestDefinitionForm-DgumxLYU.js";
2
- import { d as defineComponent, U as useWorkflowsStore, bo as useNodeTypesStore, W as useRoute, b as useRouter, r as ref, q as computed, o as onMounted, l as unref, c as openBlock, h as createElementBlock, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, n as normalizeClass, e as createBlock, f as createCommentVNode, aP as N8nTooltip, g as useI18n, D as createEventBus, ab as useCssModule, m as resolveComponent, ak as useTelemetry, _ as _export_sfc, j as createBaseVNode, v as renderSlot, ax as withDirectives, ay as vShow, fY as ElCollapseTransition, z as nextTick, cQ as useTemplateRef, F as Fragment, B as renderList, fZ as N8nInput, a2 as useProjectsStore, cP as N8nButton, aO as N8nLink, V as VIEWS, f_ as __unplugin_components_0$2, f$ as SAMPLE_EVALUATION_WORKFLOW, fj as mergeModels, fk as useModel, g0 as NODE_PINNING_MODAL_KEY, C as normalizeStyle, g1 as __unplugin_components_1, al as useMessage, dJ as dateFormat, bn as watchEffect, fV as N8nIcon, fU as N8nText, g2 as TestTableBase, K as useDebounce, a as useToast, bW as useTestDefinitionStore, fD as useAnnotationTagsStore, L as useUIStore, Z as useDocumentVisibility, I as watch, aQ as _sfc_main$a, g3 as InlineNameEdit } from "./index-DSYFXmvJ.js";
3
- import { u as useVueFlow, a as useCanvasMapping, _ as __unplugin_components_0$1 } from "./useCanvasMapping-CM-3KDoy.js";
4
- import { a as useCanvasOperations } from "./useCanvasOperations-C8HcBhlE.js";
5
- import { L as Line } from "./index-CkwX7P7C.js";
6
- import "./usePinnedData-CX8CCdD1.js";
7
- import "./useRunWorkflow-BsB1hrcR.js";
8
- import "./pushConnection.store-BZc1Uu8B.js";
1
+ import { u as useTestDefinitionForm } from "./useTestDefinitionForm-wWVotwCR.js";
2
+ import { d as defineComponent, U as useWorkflowsStore, bp as useNodeTypesStore, W as useRoute, b as useRouter, r as ref, q as computed, o as onMounted, l as unref, c as openBlock, h as createElementBlock, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, n as normalizeClass, e as createBlock, f as createCommentVNode, aQ as N8nTooltip, g as useI18n, D as createEventBus, ab as useCssModule, m as resolveComponent, ak as useTelemetry, _ as _export_sfc, j as createBaseVNode, fY as N8nText, v as renderSlot, F as Fragment, c$ as InfoTip, g0 as ne, cS as useTemplateRef, B as renderList, cR as N8nButton, z as nextTick, g1 as N8nInput, aR as _sfc_main$a, a2 as useProjectsStore, aP as N8nLink, V as VIEWS, g2 as __unplugin_components_0$2, g3 as SAMPLE_EVALUATION_WORKFLOW, fn as mergeModels, fo as useModel, g4 as Tag, g5 as NODE_PINNING_MODAL_KEY, g6 as __unplugin_components_1, al as useMessage, dS as dateFormat, bo as watchEffect, ax as withDirectives, ay as vShow, fZ as N8nIcon, C as normalizeStyle, g7 as TestTableBase, K as useDebounce, a as useToast, bX as useTestDefinitionStore, fH as useAnnotationTagsStore, L as useUIStore, Z as useDocumentVisibility, I as watch, g8 as InlineNameEdit } from "./index-DkwrpQEB.js";
3
+ import { u as useVueFlow, a as useCanvasMapping, _ as __unplugin_components_0$1 } from "./useCanvasMapping-BE9PMjep.js";
4
+ import { a as useCanvasOperations } from "./useCanvasOperations-BYt9MoCZ.js";
5
+ import { L as Line } from "./index-CnJ6KvXD.js";
6
+ import "./usePinnedData-cAEPUGIg.js";
7
+ import "./useRunWorkflow-Cr62-QBr.js";
8
+ import "./pushConnection.store-DAf-xv0B.js";
9
9
  const _sfc_main$9 = /* @__PURE__ */ defineComponent({
10
10
  __name: "NodesPinning",
11
11
  props: {
@@ -201,14 +201,14 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
201
201
  };
202
202
  }
203
203
  });
204
- const container$2 = "_container_z719h_123";
204
+ const container$1 = "_container_z719h_123";
205
205
  const pinButtonContainer = "_pinButtonContainer_z719h_128";
206
206
  const pinButtonContainerPinned = "_pinButtonContainerPinned_z719h_139";
207
207
  const customSecondary = "_customSecondary_z719h_143";
208
208
  const spinner = "_spinner_z719h_152";
209
209
  const noNodes = "_noNodes_z719h_159";
210
210
  const style0$8 = {
211
- container: container$2,
211
+ container: container$1,
212
212
  pinButtonContainer,
213
213
  pinButtonContainerPinned,
214
214
  customSecondary,
@@ -219,239 +219,211 @@ const cssModules$8 = {
219
219
  "$style": style0$8
220
220
  };
221
221
  const __unplugin_components_0 = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__cssModules", cssModules$8]]);
222
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
223
- __name: "BlockArrow",
224
- props: {
225
- state: {},
226
- hoverable: { type: Boolean }
227
- },
228
- setup(__props) {
229
- const props = __props;
230
- const css = useCssModule();
231
- const classes = computed(() => ({
232
- [css.arrowConnector]: true,
233
- [css.hoverable]: props.hoverable,
234
- [css.error]: props.state === "error",
235
- [css.success]: props.state === "success"
236
- }));
237
- return (_ctx, _cache) => {
238
- return openBlock(), createElementBlock("div", {
239
- class: normalizeClass(classes.value)
240
- }, [
241
- createBaseVNode("div", {
242
- class: normalizeClass(_ctx.$style.stalk)
243
- }, null, 2),
244
- createBaseVNode("div", {
245
- class: normalizeClass(_ctx.$style.arrowHead)
246
- }, null, 2)
247
- ], 2);
248
- };
249
- }
250
- });
251
- const arrowConnector = "_arrowConnector_12dj0_124";
252
- const stalk = "_stalk_12dj0_133";
253
- const arrowHead = "_arrowHead_12dj0_151";
254
- const hoverable = "_hoverable_12dj0_174";
255
- const error = "_error_12dj0_189";
256
- const success = "_success_12dj0_196";
222
+ const blockArrow = "_blockArrow_hbkir_123";
223
+ const stalk = "_stalk_hbkir_129";
224
+ const arrowHead = "_arrowHead_hbkir_136";
257
225
  const style0$7 = {
258
- arrowConnector,
226
+ blockArrow,
259
227
  stalk,
260
- arrowHead,
261
- hoverable,
262
- error,
263
- success
228
+ arrowHead
264
229
  };
230
+ const _sfc_main$8 = {};
231
+ function _sfc_render(_ctx, _cache) {
232
+ return openBlock(), createElementBlock("div", {
233
+ class: normalizeClass(_ctx.$style.blockArrow)
234
+ }, [
235
+ createBaseVNode("div", {
236
+ class: normalizeClass(_ctx.$style.stalk)
237
+ }, null, 2),
238
+ createBaseVNode("div", {
239
+ class: normalizeClass(_ctx.$style.arrowHead)
240
+ }, null, 2)
241
+ ], 2);
242
+ }
265
243
  const cssModules$7 = {
266
244
  "$style": style0$7
267
245
  };
268
- const BlockArrow = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__cssModules", cssModules$7]]);
269
- const _hoisted_1$3 = { key: 1 };
270
- const _hoisted_2$1 = ["aria-expanded"];
246
+ const BlockArrow = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["render", _sfc_render], ["__cssModules", cssModules$7]]);
271
247
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
272
248
  __name: "EvaluationStep",
273
249
  props: {
274
250
  title: { default: "" },
275
251
  warning: { type: Boolean, default: false },
276
- small: { type: Boolean, default: false },
277
252
  expanded: { type: Boolean, default: false },
278
253
  description: { default: "" },
279
254
  issues: { default: () => [] },
280
255
  showIssues: { type: Boolean, default: true },
281
- tooltip: {}
256
+ tooltip: {},
257
+ externalTooltip: { type: Boolean }
282
258
  },
283
259
  setup(__props) {
284
260
  const props = __props;
285
261
  const locale = useI18n();
286
262
  const isExpanded = ref(props.expanded);
287
- const contentRef = ref(null);
288
- const containerRef = ref(null);
289
- const showTooltip = ref(false);
290
263
  const $style = useCssModule();
264
+ const hasIssues = computed(() => props.issues.length > 0);
291
265
  const containerClass = computed(() => {
292
266
  return {
293
- [$style.wrap]: true,
294
- [$style.expanded]: isExpanded.value,
295
- [$style.hasIssues]: props.issues.length > 0
267
+ [$style.evaluationStep]: true,
268
+ [$style["has-issues"]]: true
296
269
  };
297
270
  });
298
- const toggleExpand = async () => {
299
- isExpanded.value = !isExpanded.value;
300
- if (isExpanded.value) {
301
- await nextTick();
302
- if (containerRef.value) {
303
- containerRef.value.style.height = "auto";
304
- }
305
- }
306
- };
307
- const handleMouseEnter = () => {
308
- if (!props.tooltip) return;
309
- showTooltip.value = true;
310
- };
311
- const handleMouseLeave = () => {
312
- showTooltip.value = false;
313
- };
271
+ const toggleExpand = () => isExpanded.value = !isExpanded.value;
314
272
  const renderIssues = computed(() => props.showIssues && props.issues.length);
315
273
  const issuesList = computed(() => props.issues.map((issue) => issue.message).join(", "));
274
+ const resizeModifier = {
275
+ name: "resize",
276
+ enabled: true,
277
+ phase: "beforeWrite",
278
+ requires: ["preventOverflow"],
279
+ fn({ state }) {
280
+ const overflow = ne(state);
281
+ const MARGIN_RIGHT = 15;
282
+ const maxWidth = state.rects.popper.width - overflow.right - MARGIN_RIGHT;
283
+ state.styles.popper.width = `${maxWidth}px`;
284
+ }
285
+ };
286
+ const popperModifiers = [
287
+ resizeModifier,
288
+ { name: "preventOverflow", options: { boundary: "document" } },
289
+ { name: "flip", enabled: false }
290
+ // prevent the tooltip from flipping
291
+ ];
316
292
  return (_ctx, _cache) => {
317
- const _component_N8nInfoTip = resolveComponent("N8nInfoTip");
318
293
  const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
319
294
  return openBlock(), createElementBlock("div", {
320
- class: normalizeClass(containerClass.value)
295
+ class: normalizeClass(containerClass.value),
296
+ "data-test-id": "evaluation-step"
321
297
  }, [
322
- renderSlot(_ctx.$slots, "containerPrefix"),
323
298
  createBaseVNode("div", {
324
- ref_key: "containerRef",
325
- ref: containerRef,
326
- class: normalizeClass([unref($style).evaluationStep, _ctx.small && unref($style).small]),
327
- "data-test-id": "evaluation-step",
328
- onMouseenter: handleMouseEnter,
329
- onMouseleave: handleMouseLeave
299
+ class: normalizeClass(unref($style).content)
330
300
  }, [
331
- createBaseVNode("div", {
332
- class: normalizeClass(unref($style).content)
333
- }, [
334
- createBaseVNode("div", {
335
- class: normalizeClass(unref($style).header),
336
- onClick: toggleExpand
337
- }, [
338
- createBaseVNode("h3", {
339
- class: normalizeClass(unref($style).title)
301
+ createVNode(unref(N8nTooltip), {
302
+ placement: "right",
303
+ disabled: !_ctx.externalTooltip,
304
+ "show-arrow": false,
305
+ "popper-class": unref($style).evaluationTooltip,
306
+ "popper-options": { modifiers: popperModifiers },
307
+ content: _ctx.tooltip
308
+ }, {
309
+ default: withCtx(() => [
310
+ createBaseVNode("div", {
311
+ class: normalizeClass(unref($style).header),
312
+ onClick: toggleExpand
340
313
  }, [
341
- createBaseVNode("span", {
314
+ createBaseVNode("div", {
342
315
  class: normalizeClass(unref($style).label)
343
316
  }, [
344
- _ctx.$slots.title ? renderSlot(_ctx.$slots, "title", { key: 0 }) : (openBlock(), createElementBlock("span", _hoisted_1$3, toDisplayString(_ctx.title), 1)),
345
- _ctx.tooltip ? (openBlock(), createBlock(_component_N8nInfoTip, {
346
- key: 2,
317
+ createVNode(unref(N8nText), { bold: "" }, {
318
+ default: withCtx(() => [
319
+ _ctx.$slots.title ? renderSlot(_ctx.$slots, "title", { key: 0 }) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
320
+ createTextVNode(toDisplayString(_ctx.title), 1)
321
+ ], 64))
322
+ ]),
323
+ _: 3
324
+ }),
325
+ !_ctx.externalTooltip ? (openBlock(), createBlock(unref(InfoTip), {
326
+ key: 0,
347
327
  class: normalizeClass(unref($style).infoTip),
348
328
  bold: true,
349
329
  type: "tooltip",
350
330
  theme: "info",
351
- "tooltip-placement": "top"
331
+ "tooltip-placement": "top",
332
+ enterable: false
352
333
  }, {
353
334
  default: withCtx(() => [
354
335
  createTextVNode(toDisplayString(_ctx.tooltip), 1)
355
336
  ]),
356
337
  _: 1
357
338
  }, 8, ["class"])) : createCommentVNode("", true)
339
+ ], 2),
340
+ createBaseVNode("div", {
341
+ class: normalizeClass(unref($style).actions)
342
+ }, [
343
+ renderIssues.value ? (openBlock(), createBlock(unref(InfoTip), {
344
+ key: 0,
345
+ bold: true,
346
+ type: "tooltip",
347
+ theme: "warning",
348
+ "tooltip-placement": "top",
349
+ enterable: false
350
+ }, {
351
+ default: withCtx(() => [
352
+ createTextVNode(toDisplayString(issuesList.value), 1)
353
+ ]),
354
+ _: 1
355
+ })) : createCommentVNode("", true),
356
+ _ctx.$slots.cardContent ? (openBlock(), createBlock(unref(N8nText), {
357
+ key: 1,
358
+ "data-test-id": "evaluation-step-collapse-button",
359
+ size: "xsmall",
360
+ color: hasIssues.value ? "primary" : "text-base",
361
+ bold: ""
362
+ }, {
363
+ default: withCtx(() => [
364
+ createTextVNode(toDisplayString(isExpanded.value ? unref(locale).baseText("testDefinition.edit.step.collapse") : unref(locale).baseText("testDefinition.edit.step.configure")) + " ", 1),
365
+ createVNode(_component_font_awesome_icon, {
366
+ icon: isExpanded.value ? "angle-up" : "angle-down",
367
+ size: "lg"
368
+ }, null, 8, ["icon"])
369
+ ]),
370
+ _: 1
371
+ }, 8, ["color"])) : createCommentVNode("", true)
358
372
  ], 2)
359
- ], 2),
360
- renderIssues.value ? (openBlock(), createElementBlock("span", {
373
+ ], 2)
374
+ ]),
375
+ _: 3
376
+ }, 8, ["disabled", "popper-class", "popper-options", "content"]),
377
+ _ctx.$slots.cardContent && isExpanded.value ? (openBlock(), createElementBlock("div", {
378
+ key: 0,
379
+ class: normalizeClass(unref($style).cardContentWrapper)
380
+ }, [
381
+ createBaseVNode("div", {
382
+ class: normalizeClass(unref($style).cardContent),
383
+ "data-test-id": "evaluation-step-content"
384
+ }, [
385
+ _ctx.description ? (openBlock(), createBlock(unref(N8nText), {
361
386
  key: 0,
362
- class: normalizeClass(unref($style).warningIcon)
363
- }, [
364
- createVNode(_component_N8nInfoTip, {
365
- bold: true,
366
- type: "tooltip",
367
- theme: "warning",
368
- "tooltip-placement": "right"
369
- }, {
370
- default: withCtx(() => [
371
- createTextVNode(toDisplayString(issuesList.value), 1)
372
- ]),
373
- _: 1
374
- })
375
- ], 2)) : createCommentVNode("", true),
376
- _ctx.$slots.cardContent ? (openBlock(), createElementBlock("button", {
377
- key: 1,
378
- class: normalizeClass(unref($style).collapseButton),
379
- "aria-expanded": isExpanded.value,
380
- "data-test-id": "evaluation-step-collapse-button"
381
- }, [
382
- createTextVNode(toDisplayString(isExpanded.value ? unref(locale).baseText("testDefinition.edit.step.collapse") : unref(locale).baseText("testDefinition.edit.step.configure")) + " ", 1),
383
- createVNode(_component_font_awesome_icon, {
384
- icon: isExpanded.value ? "angle-down" : "angle-right",
385
- size: "lg"
386
- }, null, 8, ["icon"])
387
- ], 10, _hoisted_2$1)) : createCommentVNode("", true)
388
- ], 2),
389
- _ctx.$slots.cardContent ? (openBlock(), createBlock(unref(ElCollapseTransition), { key: 0 }, {
390
- default: withCtx(() => [
391
- withDirectives(createBaseVNode("div", {
392
- class: normalizeClass(unref($style).cardContentWrapper)
393
- }, [
394
- createBaseVNode("div", {
395
- ref_key: "contentRef",
396
- ref: contentRef,
397
- class: normalizeClass(unref($style).cardContent),
398
- "data-test-id": "evaluation-step-content"
399
- }, [
400
- _ctx.description ? (openBlock(), createElementBlock("div", {
401
- key: 0,
402
- class: normalizeClass(unref($style).description)
403
- }, toDisplayString(_ctx.description), 3)) : createCommentVNode("", true),
404
- renderSlot(_ctx.$slots, "cardContent")
405
- ], 2)
406
- ], 2), [
407
- [vShow, isExpanded.value]
408
- ])
409
- ]),
410
- _: 3
411
- })) : createCommentVNode("", true)
412
- ], 2)
413
- ], 34)
387
+ size: "small",
388
+ color: "text-light"
389
+ }, {
390
+ default: withCtx(() => [
391
+ createTextVNode(toDisplayString(_ctx.description), 1)
392
+ ]),
393
+ _: 1
394
+ })) : createCommentVNode("", true),
395
+ renderSlot(_ctx.$slots, "cardContent")
396
+ ], 2)
397
+ ], 2)) : createCommentVNode("", true)
398
+ ], 2)
414
399
  ], 2);
415
400
  };
416
401
  }
417
402
  });
418
- const wrap = "_wrap_39j7h_123";
419
- const evaluationStep = "_evaluationStep_39j7h_127";
420
- const small = "_small_39j7h_138";
421
- const icon = "_icon_39j7h_143";
422
- const warning = "_warning_39j7h_152";
423
- const content$1 = "_content_39j7h_156";
424
- const header$1 = "_header_39j7h_160";
425
- const title = "_title_39j7h_168";
426
- const label = "_label_39j7h_174";
427
- const infoTip = "_infoTip_39j7h_180";
428
- const warningIcon = "_warningIcon_39j7h_188";
429
- const cardContent = "_cardContent_39j7h_192";
430
- const collapseButton = "_collapseButton_39j7h_198";
431
- const hasIssues = "_hasIssues_39j7h_210";
432
- const cardContentWrapper = "_cardContentWrapper_39j7h_214";
433
- const expanded = "_expanded_39j7h_217";
434
- const description$1 = "_description_39j7h_221";
435
- const customTooltip$1 = "_customTooltip_39j7h_227";
403
+ const evaluationStep = "_evaluationStep_1h8fm_123";
404
+ const evaluationTooltip = "_evaluationTooltip_1h8fm_133";
405
+ const icon = "_icon_1h8fm_141";
406
+ const warning = "_warning_1h8fm_150";
407
+ const content$1 = "_content_1h8fm_154";
408
+ const header$1 = "_header_1h8fm_158";
409
+ const label = "_label_1h8fm_166";
410
+ const infoTip = "_infoTip_1h8fm_172";
411
+ const actions = "_actions_1h8fm_180";
412
+ const cardContent = "_cardContent_1h8fm_186";
413
+ const cardContentWrapper = "_cardContentWrapper_1h8fm_192";
436
414
  const style0$6 = {
437
- wrap,
438
415
  evaluationStep,
439
- small,
416
+ evaluationTooltip,
440
417
  icon,
441
418
  warning,
442
419
  content: content$1,
443
420
  header: header$1,
444
- title,
445
421
  label,
446
422
  infoTip,
447
- warningIcon,
423
+ actions,
448
424
  cardContent,
449
- collapseButton,
450
- hasIssues,
451
425
  cardContentWrapper,
452
- expanded,
453
- description: description$1,
454
- customTooltip: customTooltip$1
426
+ "has-issues": "_has-issues_1h8fm_196"
455
427
  };
456
428
  const cssModules$6 = {
457
429
  "$style": style0$6
@@ -487,72 +459,46 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
487
459
  }
488
460
  }
489
461
  return (_ctx, _cache) => {
490
- const _component_n8n_icon_button = resolveComponent("n8n-icon-button");
491
- const _component_n8n_button = resolveComponent("n8n-button");
492
- const _component_n8n_input_label = resolveComponent("n8n-input-label");
493
- return openBlock(), createElementBlock("div", {
494
- class: normalizeClass([_ctx.$style.metrics])
495
- }, [
496
- createVNode(_component_n8n_input_label, {
497
- label: unref(locale).baseText("testDefinition.edit.metricsFields"),
498
- bold: false,
499
- class: normalizeClass(_ctx.$style.metricField)
500
- }, {
501
- default: withCtx(() => [
502
- createBaseVNode("div", {
503
- class: normalizeClass(_ctx.$style.metricsContainer)
504
- }, [
505
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.modelValue, (metric, index) => {
506
- return openBlock(), createElementBlock("div", {
507
- key: index,
508
- class: normalizeClass(_ctx.$style.metricItem)
509
- }, [
510
- createVNode(unref(N8nInput), {
511
- ref_for: true,
512
- ref: "metric",
513
- "data-test-id": "evaluation-metric-item",
514
- "model-value": metric.name,
515
- placeholder: unref(locale).baseText("testDefinition.edit.metricsPlaceholder"),
516
- "onUpdate:modelValue": (value) => updateMetric(index, value)
517
- }, null, 8, ["model-value", "placeholder", "onUpdate:modelValue"]),
518
- createVNode(_component_n8n_icon_button, {
519
- icon: "trash",
520
- type: "text",
521
- onClick: ($event) => onDeleteMetric(metric, index)
522
- }, null, 8, ["onClick"])
523
- ], 2);
524
- }), 128)),
525
- createVNode(_component_n8n_button, {
526
- type: "tertiary",
527
- label: unref(locale).baseText("testDefinition.edit.metricsNew"),
528
- class: normalizeClass(_ctx.$style.newMetricButton),
529
- onClick: addNewMetric
530
- }, null, 8, ["label", "class"])
531
- ], 2)
532
- ]),
533
- _: 1
534
- }, 8, ["label", "class"])
535
- ], 2);
462
+ return openBlock(), createElementBlock("div", null, [
463
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.modelValue, (metric, index) => {
464
+ return openBlock(), createElementBlock("div", {
465
+ key: index,
466
+ class: normalizeClass([_ctx.$style.metricItem, "mb-xs"])
467
+ }, [
468
+ createVNode(unref(N8nInput), {
469
+ ref_for: true,
470
+ ref: "metric",
471
+ "data-test-id": "evaluation-metric-item",
472
+ "model-value": metric.name,
473
+ placeholder: unref(locale).baseText("testDefinition.edit.metricsPlaceholder"),
474
+ "onUpdate:modelValue": (value) => updateMetric(index, value)
475
+ }, null, 8, ["model-value", "placeholder", "onUpdate:modelValue"]),
476
+ createVNode(unref(_sfc_main$a), {
477
+ icon: "trash",
478
+ type: "secondary",
479
+ text: "",
480
+ onClick: ($event) => onDeleteMetric(metric, index)
481
+ }, null, 8, ["onClick"])
482
+ ], 2);
483
+ }), 128)),
484
+ createVNode(unref(N8nButton), {
485
+ type: "secondary",
486
+ label: unref(locale).baseText("testDefinition.edit.metricsNew"),
487
+ onClick: addNewMetric
488
+ }, null, 8, ["label"])
489
+ ]);
536
490
  };
537
491
  }
538
492
  });
539
- const metricsContainer = "_metricsContainer_1eaf8_123";
540
- const metricItem = "_metricItem_1eaf8_129";
541
- const metricField = "_metricField_1eaf8_134";
542
- const metricsDivider = "_metricsDivider_1eaf8_139";
543
- const newMetricButton = "_newMetricButton_1eaf8_144";
493
+ const metricItem = "_metricItem_1hbcq_123";
544
494
  const style0$5 = {
545
- metricsContainer,
546
- metricItem,
547
- metricField,
548
- metricsDivider,
549
- newMetricButton
495
+ metricItem
550
496
  };
551
497
  const cssModules$5 = {
552
498
  "$style": style0$5
553
499
  };
554
500
  const MetricsInput = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__cssModules", cssModules$5]]);
555
- const _hoisted_1$2 = { class: "mt-xs" };
501
+ const _hoisted_1$3 = { class: "mt-xs" };
556
502
  const _sfc_main$5 = /* @__PURE__ */ defineComponent({
557
503
  __name: "WorkflowSelector",
558
504
  props: {
@@ -613,7 +559,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
613
559
  };
614
560
  return (_ctx, _cache) => {
615
561
  const _component_WorkflowSelectorParameterInput = __unplugin_components_0$2;
616
- return openBlock(), createElementBlock("div", _hoisted_1$2, [
562
+ return openBlock(), createElementBlock("div", _hoisted_1$3, [
617
563
  !_ctx.modelValue.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
618
564
  createVNode(unref(N8nButton), {
619
565
  type: "secondary",
@@ -659,10 +605,10 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
659
605
  };
660
606
  }
661
607
  });
608
+ const _hoisted_1$2 = { style: { "display": "flex", "flex-direction": "column" } };
662
609
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
663
610
  __name: "ConfigSection",
664
611
  props: /* @__PURE__ */ mergeModels({
665
- showConfig: { type: Boolean },
666
612
  tagsById: {},
667
613
  isLoading: { type: Boolean },
668
614
  examplePinnedData: {},
@@ -689,8 +635,6 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
689
635
  const props = __props;
690
636
  const emit = __emit;
691
637
  const locale = useI18n();
692
- const activeTooltip = ref(null);
693
- const tooltipPosition = ref(null);
694
638
  const tags = useModel(__props, "tags");
695
639
  const renameTag = async () => {
696
640
  const { prompt } = useMessage();
@@ -718,58 +662,39 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
718
662
  const metrics = useModel(__props, "metrics");
719
663
  const mockedNodes = useModel(__props, "mockedNodes");
720
664
  const nodePinningModal = ref(null);
721
- const selectedTag = computed(() => {
722
- return props.tagsById[tags.value.value[0]] ?? {};
723
- });
665
+ const selectedTag = computed(() => props.tagsById[tags.value.value[0]] ?? {});
724
666
  function openExecutionsView() {
725
667
  emit("openExecutionsViewForTag");
726
668
  }
727
- function showTooltip(event, tooltip) {
728
- const container2 = event.target;
729
- const containerRect = container2.getBoundingClientRect();
730
- activeTooltip.value = tooltip;
731
- tooltipPosition.value = {
732
- x: containerRect.right,
733
- y: containerRect.top,
734
- width: containerRect.width,
735
- height: containerRect.height,
736
- right: window.innerWidth
737
- };
738
- }
739
- function hideTooltip() {
740
- activeTooltip.value = null;
741
- tooltipPosition.value = null;
742
- }
743
669
  return (_ctx, _cache) => {
744
670
  const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
745
- const _component_N8nTag = resolveComponent("N8nTag");
746
671
  const _component_i18n_t = resolveComponent("i18n-t");
747
- const _component_n8n_button = resolveComponent("n8n-button");
748
672
  const _component_N8nHeading = resolveComponent("N8nHeading");
749
- const _component_N8nText = resolveComponent("N8nText");
750
673
  const _component_NodesPinning = __unplugin_components_0;
751
674
  const _component_Modal = __unplugin_components_1;
752
- return openBlock(), createElementBlock("div", {
753
- class: normalizeClass([_ctx.$style.container, { [_ctx.$style.hidden]: !_ctx.showConfig }])
754
- }, [
675
+ return openBlock(), createElementBlock("div", null, [
755
676
  createBaseVNode("div", {
756
677
  class: normalizeClass(_ctx.$style.editForm)
757
678
  }, [
758
- createBaseVNode("div", {
759
- class: normalizeClass(_ctx.$style.panelIntro)
760
- }, toDisplayString(unref(locale).baseText("testDefinition.edit.step.intro")), 3),
679
+ !_ctx.hasRuns ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
680
+ createVNode(unref(N8nText), {
681
+ tag: "div",
682
+ color: "text-dark",
683
+ size: "large",
684
+ class: "text-center"
685
+ }, {
686
+ default: withCtx(() => [
687
+ createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.edit.step.intro")), 1)
688
+ ]),
689
+ _: 1
690
+ }),
691
+ createVNode(BlockArrow, { class: "mt-5xs mb-5xs" })
692
+ ], 64)) : createCommentVNode("", true),
761
693
  createVNode(EvaluationStep, {
762
- class: normalizeClass([_ctx.$style.step, _ctx.$style.reducedSpacing]),
763
694
  issues: _ctx.getFieldIssues("tags"),
764
- tooltip: _ctx.hasRuns ? unref(locale).baseText("testDefinition.edit.step.executions.tooltip") : void 0,
765
- onMouseenter: _cache[0] || (_cache[0] = ($event) => showTooltip($event, unref(locale).baseText("testDefinition.edit.step.executions.tooltip"))),
766
- onMouseleave: hideTooltip
695
+ tooltip: unref(locale).baseText("testDefinition.edit.step.executions.tooltip"),
696
+ "external-tooltip": !_ctx.hasRuns
767
697
  }, {
768
- containerPrefix: withCtx(() => [
769
- createVNode(BlockArrow, {
770
- class: normalizeClass([_ctx.$style.middle, _ctx.$style.diagramArrow, _ctx.$style.sm])
771
- }, null, 8, ["class"])
772
- ]),
773
698
  title: withCtx(() => [
774
699
  createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.edit.step.executions", {
775
700
  adjustToNumber: selectedTag.value?.usageCount ?? 0
@@ -777,140 +702,116 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
777
702
  ]),
778
703
  cardContent: withCtx(() => [
779
704
  createBaseVNode("div", {
780
- class: normalizeClass(_ctx.$style.tagInputContainer)
705
+ class: normalizeClass(_ctx.$style.tagInputTag)
781
706
  }, [
782
- createBaseVNode("div", {
783
- class: normalizeClass(_ctx.$style.tagInputTag)
784
- }, [
785
- createVNode(_component_i18n_t, { keypath: "testDefinition.edit.step.tag" }, {
786
- tag: withCtx(() => [
787
- createVNode(_component_N8nTag, {
788
- text: selectedTag.value.name,
789
- clickable: true,
790
- onClick: renameTag
791
- }, {
792
- tag: withCtx(() => [
793
- createTextVNode(toDisplayString(selectedTag.value.name) + " ", 1),
794
- createVNode(_component_font_awesome_icon, {
795
- icon: "pen",
796
- size: "sm"
797
- })
798
- ]),
799
- _: 1
800
- }, 8, ["text"])
707
+ createVNode(_component_i18n_t, { keypath: "testDefinition.edit.step.tag" }, {
708
+ tag: withCtx(() => [
709
+ createVNode(unref(Tag), {
710
+ text: selectedTag.value.name,
711
+ clickable: true,
712
+ onClick: renameTag
713
+ }, {
714
+ tag: withCtx(() => [
715
+ createTextVNode(toDisplayString(selectedTag.value.name) + " ", 1),
716
+ createVNode(_component_font_awesome_icon, {
717
+ icon: "pen",
718
+ size: "sm"
719
+ })
720
+ ]),
721
+ _: 1
722
+ }, 8, ["text"])
723
+ ]),
724
+ _: 1
725
+ })
726
+ ], 2),
727
+ createVNode(unref(N8nButton), {
728
+ label: "Select executions",
729
+ type: "tertiary",
730
+ size: "small",
731
+ onClick: openExecutionsView
732
+ })
733
+ ]),
734
+ _: 1
735
+ }, 8, ["issues", "tooltip", "external-tooltip"]),
736
+ createBaseVNode("div", {
737
+ class: normalizeClass(_ctx.$style.nestedSteps)
738
+ }, [
739
+ createVNode(BlockArrow, { class: "mt-5xs mb-5xs" }),
740
+ createBaseVNode("div", _hoisted_1$2, [
741
+ createVNode(BlockArrow, { class: "mt-5xs mb-5xs ml-auto mr-2xl" }),
742
+ createVNode(EvaluationStep, {
743
+ issues: _ctx.getFieldIssues("mockedNodes"),
744
+ tooltip: unref(locale).baseText("testDefinition.edit.step.nodes.tooltip"),
745
+ "external-tooltip": !_ctx.hasRuns
746
+ }, {
747
+ title: withCtx(() => [
748
+ createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.edit.step.mockedNodes", {
749
+ adjustToNumber: mockedNodes.value?.length ?? 0
750
+ })) + " ", 1),
751
+ createVNode(unref(N8nText), null, {
752
+ default: withCtx(() => [
753
+ createTextVNode("(" + toDisplayString(unref(locale).baseText("generic.optional")) + ")", 1)
801
754
  ]),
802
755
  _: 1
803
756
  })
804
- ], 2),
805
- createBaseVNode("div", {
806
- class: normalizeClass(_ctx.$style.tagInputControls)
807
- }, [
808
- createVNode(_component_n8n_button, {
809
- label: "Select executions",
810
- type: "tertiary",
757
+ ]),
758
+ cardContent: withCtx(() => [
759
+ createVNode(unref(N8nButton), {
811
760
  size: "small",
812
- onClick: openExecutionsView
813
- })
814
- ], 2)
815
- ], 2)
816
- ]),
817
- _: 1
818
- }, 8, ["class", "issues", "tooltip"]),
819
- createVNode(EvaluationStep, {
820
- class: normalizeClass(_ctx.$style.step),
821
- title: unref(locale).baseText("testDefinition.edit.step.mockedNodes", {
822
- adjustToNumber: mockedNodes.value?.length ?? 0
823
- }),
824
- small: true,
825
- issues: _ctx.getFieldIssues("mockedNodes"),
826
- tooltip: _ctx.hasRuns ? unref(locale).baseText("testDefinition.edit.step.nodes.tooltip") : void 0,
827
- onMouseenter: _cache[2] || (_cache[2] = ($event) => showTooltip($event, unref(locale).baseText("testDefinition.edit.step.nodes.tooltip"))),
828
- onMouseleave: hideTooltip
829
- }, {
830
- containerPrefix: withCtx(() => [
831
- createVNode(BlockArrow, {
832
- class: normalizeClass([_ctx.$style.diagramArrow, _ctx.$style.right])
833
- }, null, 8, ["class"])
834
- ]),
835
- cardContent: withCtx(() => [
836
- createVNode(_component_n8n_button, {
837
- size: "small",
838
- "data-test-id": "select-nodes-button",
839
- label: unref(locale).baseText("testDefinition.edit.selectNodes"),
840
- type: "tertiary",
841
- onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("openPinningModal"))
842
- }, null, 8, ["label"])
843
- ]),
844
- _: 1
845
- }, 8, ["class", "title", "issues", "tooltip"]),
846
- createVNode(EvaluationStep, {
847
- class: normalizeClass(_ctx.$style.step),
848
- title: unref(locale).baseText("testDefinition.edit.step.reRunExecutions"),
849
- small: true,
850
- tooltip: _ctx.hasRuns ? unref(locale).baseText("testDefinition.edit.step.reRunExecutions.tooltip") : void 0,
851
- onMouseenter: _cache[3] || (_cache[3] = ($event) => showTooltip($event, unref(locale).baseText("testDefinition.edit.step.reRunExecutions.tooltip"))),
852
- onMouseleave: hideTooltip
853
- }, {
854
- containerPrefix: withCtx(() => [
855
- createVNode(BlockArrow, {
856
- class: normalizeClass([_ctx.$style.right, _ctx.$style.diagramArrow])
857
- }, null, 8, ["class"])
858
- ]),
859
- _: 1
860
- }, 8, ["class", "title", "tooltip"]),
761
+ "data-test-id": "select-nodes-button",
762
+ label: unref(locale).baseText("testDefinition.edit.selectNodes"),
763
+ type: "tertiary",
764
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("openPinningModal"))
765
+ }, null, 8, ["label"])
766
+ ]),
767
+ _: 1
768
+ }, 8, ["issues", "tooltip", "external-tooltip"]),
769
+ createVNode(BlockArrow, { class: "mt-5xs mb-5xs ml-auto mr-2xl" }),
770
+ createVNode(EvaluationStep, {
771
+ title: unref(locale).baseText("testDefinition.edit.step.reRunExecutions"),
772
+ tooltip: unref(locale).baseText("testDefinition.edit.step.reRunExecutions.tooltip"),
773
+ "external-tooltip": !_ctx.hasRuns
774
+ }, null, 8, ["title", "tooltip", "external-tooltip"]),
775
+ createVNode(BlockArrow, { class: "mt-5xs mb-5xs ml-auto mr-2xl" })
776
+ ])
777
+ ], 2),
861
778
  createVNode(EvaluationStep, {
862
- class: normalizeClass(_ctx.$style.step),
863
779
  title: unref(locale).baseText("testDefinition.edit.step.compareExecutions"),
864
780
  description: unref(locale).baseText("testDefinition.edit.workflowSelectorLabel"),
865
781
  issues: _ctx.getFieldIssues("evaluationWorkflow"),
866
- tooltip: _ctx.hasRuns ? unref(locale).baseText("testDefinition.edit.step.compareExecutions.tooltip") : void 0,
867
- onMouseenter: _cache[6] || (_cache[6] = ($event) => showTooltip($event, unref(locale).baseText("testDefinition.edit.step.compareExecutions.tooltip"))),
868
- onMouseleave: hideTooltip
782
+ tooltip: unref(locale).baseText("testDefinition.edit.step.compareExecutions.tooltip"),
783
+ "external-tooltip": !_ctx.hasRuns
869
784
  }, {
870
- containerPrefix: withCtx(() => [
871
- createVNode(BlockArrow, {
872
- class: normalizeClass([_ctx.$style.right, _ctx.$style.diagramArrow])
873
- }, null, 8, ["class"]),
874
- createVNode(BlockArrow, {
875
- class: normalizeClass([_ctx.$style.left, _ctx.$style.diagramArrow, _ctx.$style.lg])
876
- }, null, 8, ["class"])
877
- ]),
878
785
  cardContent: withCtx(() => [
879
786
  createVNode(_sfc_main$5, {
880
787
  modelValue: evaluationWorkflow.value,
881
- "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => evaluationWorkflow.value = $event),
788
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => evaluationWorkflow.value = $event),
882
789
  "example-pinned-data": _ctx.examplePinnedData,
883
790
  class: normalizeClass({ "has-issues": _ctx.getFieldIssues("evaluationWorkflow").length > 0 }),
884
791
  "sample-workflow-name": _ctx.sampleWorkflowName,
885
- onWorkflowCreated: _cache[5] || (_cache[5] = ($event) => _ctx.$emit("evaluationWorkflowCreated", $event))
792
+ onWorkflowCreated: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("evaluationWorkflowCreated", $event))
886
793
  }, null, 8, ["modelValue", "example-pinned-data", "class", "sample-workflow-name"])
887
794
  ]),
888
795
  _: 1
889
- }, 8, ["class", "title", "description", "issues", "tooltip"]),
796
+ }, 8, ["title", "description", "issues", "tooltip", "external-tooltip"]),
797
+ createVNode(BlockArrow, { class: "mt-5xs mb-5xs" }),
890
798
  createVNode(EvaluationStep, {
891
- class: normalizeClass(_ctx.$style.step),
892
799
  title: unref(locale).baseText("testDefinition.edit.step.metrics"),
893
800
  issues: _ctx.getFieldIssues("metrics"),
894
801
  description: unref(locale).baseText("testDefinition.edit.step.metrics.description"),
895
- tooltip: _ctx.hasRuns ? unref(locale).baseText("testDefinition.edit.step.metrics.tooltip") : void 0,
896
- onMouseenter: _cache[9] || (_cache[9] = ($event) => showTooltip($event, unref(locale).baseText("testDefinition.edit.step.metrics.tooltip"))),
897
- onMouseleave: hideTooltip
802
+ tooltip: unref(locale).baseText("testDefinition.edit.step.metrics.tooltip"),
803
+ "external-tooltip": !_ctx.hasRuns
898
804
  }, {
899
- containerPrefix: withCtx(() => [
900
- createVNode(BlockArrow, {
901
- class: normalizeClass([_ctx.$style.middle, _ctx.$style.diagramArrow])
902
- }, null, 8, ["class"])
903
- ]),
904
805
  cardContent: withCtx(() => [
905
806
  createVNode(MetricsInput, {
906
807
  modelValue: metrics.value,
907
- "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => metrics.value = $event),
908
- class: normalizeClass({ "has-issues": _ctx.getFieldIssues("metrics").length > 0 }),
909
- onDeleteMetric: _cache[8] || (_cache[8] = (metric) => emit("deleteMetric", metric))
808
+ "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => metrics.value = $event),
809
+ class: normalizeClass([{ "has-issues": _ctx.getFieldIssues("metrics").length > 0 }, "mt-xs"]),
810
+ onDeleteMetric: _cache[4] || (_cache[4] = (metric) => emit("deleteMetric", metric))
910
811
  }, null, 8, ["modelValue", "class"])
911
812
  ]),
912
813
  _: 1
913
- }, 8, ["class", "title", "issues", "description", "tooltip"])
814
+ }, 8, ["title", "issues", "description", "tooltip", "external-tooltip"])
914
815
  ], 2),
915
816
  createVNode(_component_Modal, {
916
817
  ref_key: "nodePinningModal",
@@ -929,68 +830,32 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
929
830
  ]),
930
831
  _: 1
931
832
  }),
932
- _cache[11] || (_cache[11] = createBaseVNode("br", null, null, -1)),
933
- createVNode(_component_N8nText, {
934
- class: normalizeClass(_ctx.$style.modalDescription)
935
- }, {
833
+ _cache[6] || (_cache[6] = createBaseVNode("br", null, null, -1)),
834
+ createVNode(unref(N8nText), null, {
936
835
  default: withCtx(() => [
937
836
  createTextVNode(toDisplayString(unref(locale).baseText("testDefinition.edit.modal.description")), 1)
938
837
  ]),
939
838
  _: 1
940
- }, 8, ["class"])
839
+ })
941
840
  ]),
942
841
  content: withCtx(() => [
943
842
  createVNode(_component_NodesPinning, {
944
843
  modelValue: mockedNodes.value,
945
- "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => mockedNodes.value = $event),
844
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => mockedNodes.value = $event),
946
845
  "data-test-id": "nodes-pinning-modal"
947
846
  }, null, 8, ["modelValue"])
948
847
  ]),
949
848
  _: 1
950
- }, 8, ["name"]),
951
- tooltipPosition.value && !_ctx.hasRuns ? (openBlock(), createElementBlock("div", {
952
- key: 0,
953
- class: normalizeClass(_ctx.$style.customTooltip),
954
- style: normalizeStyle({
955
- left: `${tooltipPosition.value.x}px`,
956
- top: `${tooltipPosition.value.y}px`,
957
- width: `${tooltipPosition.value.right - tooltipPosition.value.x}px`,
958
- height: `${tooltipPosition.value.height}px`
959
- })
960
- }, toDisplayString(activeTooltip.value), 7)) : createCommentVNode("", true)
961
- ], 2);
849
+ }, 8, ["name"])
850
+ ]);
962
851
  };
963
852
  }
964
853
  });
965
- const container$1 = "_container_1ca2u_123";
966
- const editForm = "_editForm_1ca2u_130";
967
- const hidden = "_hidden_1ca2u_141";
968
- const noRuns = "_noRuns_1ca2u_147";
969
- const customTooltip = "_customTooltip_1ca2u_151";
970
- const panelIntro = "_panelIntro_1ca2u_163";
971
- const diagramArrow = "_diagramArrow_1ca2u_171";
972
- const right = "_right_1ca2u_178";
973
- const middle = "_middle_1ca2u_182";
974
- const sm = "_sm_1ca2u_186";
975
- const lg = "_lg_1ca2u_189";
976
- const tagInputContainer = "_tagInputContainer_1ca2u_193";
977
- const tagInputTag = "_tagInputTag_1ca2u_199";
978
- const tagInputControls = "_tagInputControls_1ca2u_206";
854
+ const nestedSteps = "_nestedSteps_1784n_123";
855
+ const tagInputTag = "_tagInputTag_1784n_128";
979
856
  const style0$4 = {
980
- container: container$1,
981
- editForm,
982
- hidden,
983
- noRuns,
984
- customTooltip,
985
- panelIntro,
986
- diagramArrow,
987
- right,
988
- middle,
989
- sm,
990
- lg,
991
- tagInputContainer,
992
- tagInputTag,
993
- tagInputControls
857
+ nestedSteps,
858
+ tagInputTag
994
859
  };
995
860
  const cssModules$4 = {
996
861
  "$style": style0$4
@@ -1574,7 +1439,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1574
1439
  const _component_N8nTooltip = resolveComponent("N8nTooltip");
1575
1440
  return !isLoading.value ? (openBlock(), createElementBlock("div", {
1576
1441
  key: 0,
1577
- class: normalizeClass([_ctx.$style.container, { [_ctx.$style.noRuns]: !hasRuns.value }])
1442
+ class: normalizeClass([_ctx.$style.container])
1578
1443
  }, [
1579
1444
  createBaseVNode("div", {
1580
1445
  class: normalizeClass(_ctx.$style.header)
@@ -1583,9 +1448,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1583
1448
  createVNode(unref(_sfc_main$a), {
1584
1449
  icon: "arrow-left",
1585
1450
  type: "tertiary",
1586
- class: normalizeClass(_ctx.$style.arrowBack),
1451
+ text: "",
1587
1452
  onClick: _cache[0] || (_cache[0] = ($event) => unref(router).push({ name: unref(VIEWS).TEST_DEFINITION, params: { testId: _ctx.testId } }))
1588
- }, null, 8, ["class"]),
1453
+ }),
1589
1454
  createVNode(InlineNameEdit, {
1590
1455
  "model-value": unref(state).name.value,
1591
1456
  "max-height": "none",
@@ -1665,12 +1530,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1665
1530
  maxlength: 260,
1666
1531
  "max-height": "none",
1667
1532
  type: "Test description",
1668
- class: normalizeClass(_ctx.$style.editDescription),
1669
1533
  "onUpdate:modelValue": updateDescription
1670
1534
  }, {
1671
1535
  default: withCtx(() => [
1672
1536
  createVNode(unref(N8nText), {
1673
- size: "small",
1537
+ size: "medium",
1674
1538
  color: "text-base"
1675
1539
  }, {
1676
1540
  default: withCtx(() => [
@@ -1680,21 +1544,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1680
1544
  })
1681
1545
  ]),
1682
1546
  _: 1
1683
- }, 8, ["model-value", "class"])
1547
+ }, 8, ["model-value"])
1684
1548
  ], 2),
1685
1549
  createBaseVNode("div", {
1686
- class: normalizeClass(_ctx.$style.content)
1550
+ class: normalizeClass({ [_ctx.$style.content]: true, [_ctx.$style.contentWithRuns]: hasRuns.value })
1687
1551
  }, [
1688
- runs2.value.length > 0 ? (openBlock(), createBlock(RunsSection, {
1552
+ hasRuns.value ? (openBlock(), createBlock(RunsSection, {
1689
1553
  key: 0,
1690
1554
  selectedMetric: selectedMetric.value,
1691
1555
  "onUpdate:selectedMetric": _cache[1] || (_cache[1] = ($event) => selectedMetric.value = $event),
1556
+ class: normalizeClass(_ctx.$style.runs),
1692
1557
  runs: runs2.value,
1693
1558
  "test-id": _ctx.testId,
1694
1559
  "applied-theme": appliedTheme.value,
1695
1560
  onDeleteRuns
1696
- }, null, 8, ["selectedMetric", "runs", "test-id", "applied-theme"])) : createCommentVNode("", true),
1697
- createVNode(ConfigSection, {
1561
+ }, null, 8, ["selectedMetric", "class", "runs", "test-id", "applied-theme"])) : createCommentVNode("", true),
1562
+ showConfig.value ? (openBlock(), createBlock(ConfigSection, {
1563
+ key: 1,
1698
1564
  tags: unref(state).tags,
1699
1565
  "onUpdate:tags": _cache[2] || (_cache[2] = ($event) => unref(state).tags = $event),
1700
1566
  evaluationWorkflow: unref(state).evaluationWorkflow,
@@ -1712,8 +1578,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1712
1578
  _cache[5] || (_cache[5] = ($event) => unref(state).mockedNodes = $event),
1713
1579
  unref(handleUpdateTestDebounced)
1714
1580
  ],
1581
+ class: normalizeClass(_ctx.$style.config),
1715
1582
  "cancel-editing": unref(cancelEditing),
1716
- "show-config": showConfig.value,
1717
1583
  "tags-by-id": tagsById.value,
1718
1584
  "is-loading": isLoading.value,
1719
1585
  "get-field-issues": getFieldIssues,
@@ -1727,20 +1593,24 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1727
1593
  onDeleteMetric,
1728
1594
  onOpenExecutionsViewForTag: openExecutionsViewForTag,
1729
1595
  onEvaluationWorkflowCreated: _cache[7] || (_cache[7] = ($event) => onEvaluationWorkflowCreated($event))
1730
- }, null, 8, ["tags", "evaluationWorkflow", "metrics", "mockedNodes", "cancel-editing", "show-config", "tags-by-id", "is-loading", "start-editing", "save-changes", "has-runs", "example-pinned-data", "sample-workflow-name", "onUpdate:evaluationWorkflow", "onUpdate:mockedNodes"])
1596
+ }, null, 8, ["tags", "evaluationWorkflow", "metrics", "mockedNodes", "class", "cancel-editing", "tags-by-id", "is-loading", "start-editing", "save-changes", "has-runs", "example-pinned-data", "sample-workflow-name", "onUpdate:evaluationWorkflow", "onUpdate:mockedNodes"])) : createCommentVNode("", true)
1731
1597
  ], 2)
1732
1598
  ], 2)
1733
1599
  ], 2)) : createCommentVNode("", true);
1734
1600
  };
1735
1601
  }
1736
1602
  });
1737
- const content = "_content_vcpck_123";
1738
- const header = "_header_vcpck_129";
1739
- const wrapper = "_wrapper_vcpck_143";
1740
- const description = "_description_vcpck_148";
1741
- const arrowBack = "_arrowBack_vcpck_153";
1603
+ const content = "_content_1o8sl_123";
1604
+ const config = "_config_1o8sl_130";
1605
+ const contentWithRuns = "_contentWithRuns_1o8sl_133";
1606
+ const header = "_header_1o8sl_137";
1607
+ const wrapper = "_wrapper_1o8sl_151";
1608
+ const description = "_description_1o8sl_156";
1609
+ const arrowBack = "_arrowBack_1o8sl_161";
1742
1610
  const style0 = {
1743
1611
  content,
1612
+ config,
1613
+ contentWithRuns,
1744
1614
  header,
1745
1615
  wrapper,
1746
1616
  description,