n8n-editor-ui 1.93.0 → 1.94.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 (120) hide show
  1. package/dist/assets/{AnimatedSpinner-hbTZDd93.js → AnimatedSpinner-D6WDdcap.js} +1 -1
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CYzc5StE.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BIiF0RoL.js} +1 -1
  3. package/dist/assets/{AuthView-8SLMP0H_.js → AuthView-B4QlUHa3.js} +2 -2
  4. package/dist/assets/{CanvasChatSwitch-Dt8TgNJg.js → CanvasChatSwitch-K2_X0yVZ.js} +17 -18
  5. package/dist/assets/{ChangePasswordView-DIRyDp89.js → ChangePasswordView-nJzqV_9k.js} +3 -3
  6. package/dist/assets/CollectionParameter-DSAqoHVF.js +4 -0
  7. package/dist/assets/{CredentialsView-B6-VxAJ6.js → CredentialsView-DwV08zbe.js} +7 -7
  8. package/dist/assets/{DemoFooter-CIHwH5PG.js → DemoFooter-DKvO12Ew.js} +7 -8
  9. package/dist/assets/{ErrorView-C7i0TZwT.js → ErrorView-BJvgdQd3.js} +1 -1
  10. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang--2G21NNR.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-ykvCUf2F.js} +2 -2
  11. package/dist/assets/{ExecutionsView-C_YtciAr.js → ExecutionsView-Dv-BEvYW.js} +19 -18
  12. package/dist/assets/{FileSaver.min-bgn7Q9Gt.js → FileSaver.min-BuBI9fyd.js} +1 -1
  13. package/dist/assets/{FixedCollectionParameter-BPCJ5aaq.js → FixedCollectionParameter-C_dNC7Pj.js} +1 -1
  14. package/dist/assets/{ForgotMyPasswordView-DyUaGd6Z.js → ForgotMyPasswordView-BqD6YlYn.js} +3 -3
  15. package/dist/assets/{InsightsChartAverageRuntime-BB2I2vpV.js → InsightsChartAverageRuntime-yZMYNCP5.js} +4 -4
  16. package/dist/assets/{InsightsChartFailed-CN_Rl3Bl.js → InsightsChartFailed-DswsKdTF.js} +4 -4
  17. package/dist/assets/{InsightsChartFailureRate-CHKlg6tg.js → InsightsChartFailureRate-ChXUUpeM.js} +4 -4
  18. package/dist/assets/{InsightsChartTimeSaved-Cd05cM8q.js → InsightsChartTimeSaved-8QcRGtZx.js} +4 -4
  19. package/dist/assets/{InsightsChartTotal-ChAO7myf.js → InsightsChartTotal-NdMdI8Qq.js} +4 -4
  20. package/dist/assets/{InsightsDashboard-Bx4vx9gz.css → InsightsDashboard-BSrakbzr.css} +42 -8
  21. package/dist/assets/{InsightsDashboard-BeCfBVUz.js → InsightsDashboard-D41M-gz3.js} +40 -41
  22. package/dist/assets/{InsightsPaywall-Chz8CDc3.js → InsightsPaywall-bBhcjWHb.js} +1 -1
  23. package/dist/assets/{InsightsSummary-CdlaUpAt.css → InsightsSummary-DzGQpM5h.css} +27 -24
  24. package/dist/assets/InsightsSummary-cD6ZTQoq.js +209 -0
  25. package/dist/assets/{InsightsTableWorkflows-5rpYY7YT.js → InsightsTableWorkflows-D-kstco3.js} +5 -6
  26. package/dist/assets/{InsightsTableWorkflows-Blv_GPUj.css → InsightsTableWorkflows-DfTZQkWL.css} +3 -4
  27. package/dist/assets/{Logo-DUDCllkm.js → Logo-BWI1k82s.js} +1 -1
  28. package/dist/assets/{LogsPanel-D9r5AcQH.js → LogsPanel-dLKjFOi5.js} +331 -336
  29. package/dist/assets/{MainHeader-DkKOOZ_D.js → MainHeader-DKuLugMM.js} +13 -13
  30. package/dist/assets/{MainHeader-CEMGASqv.css → MainHeader-Y95RcfHb.css} +18 -18
  31. package/dist/assets/{MainSidebar-ZUBIWeXm.js → MainSidebar-D2cUU1u5.js} +2 -2
  32. package/dist/assets/{NodeCreation-DCfAFuL5.js → NodeCreation-ueFdk4bA.js} +3 -4
  33. package/dist/assets/{NodeCreator-a0YVv1IE.js → NodeCreator-BWDbSeT1.js} +172 -68
  34. package/dist/assets/{NodeCreator-D18StsVZ.css → NodeCreator-Cp8Apzva.css} +38 -21
  35. package/dist/assets/{NodeDetailsView-pYP-34nS.css → NodeDetailsView-DpO8nTmN.css} +16 -16
  36. package/dist/assets/{NodeDetailsView-C5_hVJzj.js → NodeDetailsView-Drob-YV5.js} +20 -11
  37. package/dist/assets/{NodeView-Bk9h8GYy.js → NodeView-Dnn0dJFr.js} +81 -38
  38. package/dist/assets/{ProjectCardBadge-DRlDZx3d.js → ProjectCardBadge-DK_f2cCt.js} +1 -1
  39. package/dist/assets/{ProjectHeader-DNm605Kk.js → ProjectHeader-NRCcW7_U.js} +2 -2
  40. package/dist/assets/{ProjectSettings-Dge_6KaR.js → ProjectSettings-B98B3ftD.js} +14 -4
  41. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-CUf0LkWR.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-EcrEFKi4.js} +1 -1
  42. package/dist/assets/{ResourcesListLayout-Bbl-1i4l.js → ResourcesListLayout-sZKInqTx.js} +2 -2
  43. package/dist/assets/{RunData-DQeENuzG.css → RunData-CE5FsU6k.css} +2 -2
  44. package/dist/assets/{RunData-b0RE2JWc.js → RunData-D3endKo8.js} +233 -92
  45. package/dist/assets/{RunDataAi-DnWcCR_0.js → RunDataAi-DtrK7pjQ.js} +3 -4
  46. package/dist/assets/{RunDataJson-CptVuHuA.js → RunDataJson-BJ8lDeAI.js} +7 -7
  47. package/dist/assets/{RunDataJsonActions-3jjDztw7.js → RunDataJsonActions-DpCNv6bq.js} +1 -1
  48. package/dist/assets/{RunDataParsedAiContent-BbXv-NPD.js → RunDataParsedAiContent--QjlaSo3.js} +5 -5
  49. package/dist/assets/{RunDataSearch-B90wjsDA.js → RunDataSearch-InL45suv.js} +1 -1
  50. package/dist/assets/{RunDataTable-CpS78GlT.js → RunDataTable-CRwBT8_s.js} +3 -3
  51. package/dist/assets/{SamlOnboarding-Ch9K5rRW.js → SamlOnboarding-CKncz2Ro.js} +3 -3
  52. package/dist/assets/{SettingsApiView-9GU5n_rm.js → SettingsApiView-CE0y_6pn.js} +1 -1
  53. package/dist/assets/{SettingsCommunityNodesView-CPnVRzNX.js → SettingsCommunityNodesView-Dec23ei2.js} +4 -4
  54. package/dist/assets/{SettingsExternalSecrets-D7xTMV9h.js → SettingsExternalSecrets-Dqp4cvDN.js} +1 -1
  55. package/dist/assets/{SettingsLdapView-OfrjGKkt.js → SettingsLdapView-Dk8y5NtN.js} +1 -1
  56. package/dist/assets/{SettingsLogStreamingView-C_VnOaeX.js → SettingsLogStreamingView-BqphnxJz.js} +1 -1
  57. package/dist/assets/{SettingsPersonalView-Dm24akPV.js → SettingsPersonalView-aoam48uq.js} +1 -1
  58. package/dist/assets/{SettingsSourceControl-DDCmL82j.js → SettingsSourceControl-B_1iGyw9.js} +1 -1
  59. package/dist/assets/{SettingsSso-BGGQ0Cpg.js → SettingsSso-CRDg8n6o.js} +1 -1
  60. package/dist/assets/{SettingsUsageAndPlan-BzO_zdkH.js → SettingsUsageAndPlan-DALiZmtM.js} +1 -1
  61. package/dist/assets/{SettingsUsersView-DHQUqhqB.js → SettingsUsersView-BFmyoREW.js} +1 -1
  62. package/dist/assets/{SettingsView-CbtAqjOX.js → SettingsView-Ct5FP8RA.js} +1 -1
  63. package/dist/assets/{SetupView-BME1OE6U.js → SetupView-CWBcWcHu.js} +3 -3
  64. package/dist/assets/{SetupWorkflowCredentialsButton-DZr4TCPC.js → SetupWorkflowCredentialsButton-DNjlHJdz.js} +1 -1
  65. package/dist/assets/{SetupWorkflowFromTemplateView-CPkKEY04.js → SetupWorkflowFromTemplateView-CDxjlwvR.js} +3 -3
  66. package/dist/assets/{SigninView-DUeRvOiY.js → SigninView-w-cjH-9l.js} +3 -3
  67. package/dist/assets/{SignoutView-BC7SBunZ.js → SignoutView-BQRpyJSJ.js} +1 -1
  68. package/dist/assets/{SignupView-B5ecYJ2q.js → SignupView-C7787Mur.js} +3 -3
  69. package/dist/assets/{TemplateDetails-DjanZgC1.js → TemplateDetails-xekR6vvf.js} +1 -1
  70. package/dist/assets/{TemplateList-8TyNGxY-.js → TemplateList-ChkM_l8S.js} +1 -1
  71. package/dist/assets/{TemplatesCollectionView-BkH4pJCv.js → TemplatesCollectionView-C7G8-LtU.js} +5 -5
  72. package/dist/assets/{TemplatesSearchView-Bcdhi1SL.js → TemplatesSearchView-D1zNGFYQ.js} +3 -3
  73. package/dist/assets/{TemplatesView-De2XB6We.js → TemplatesView-l-xkgW6-.js} +1 -1
  74. package/dist/assets/{TemplatesWorkflowView-BVnwtrMa.js → TemplatesWorkflowView-VjCM8q6w.js} +5 -5
  75. package/dist/assets/{TestDefinitionEditView-DjmPnrTk.js → TestDefinitionEditView-NwOMxo3u.js} +6 -7
  76. package/dist/assets/{TestDefinitionListView-BL2s_qBZ.js → TestDefinitionListView-BWV9O0Q3.js} +1 -1
  77. package/dist/assets/{TestDefinitionNewView-B9BqJZST.js → TestDefinitionNewView-CPb07jVn.js} +2 -2
  78. package/dist/assets/{TestDefinitionRootView-AlWyxbc0.js → TestDefinitionRootView-dvJQLmpk.js} +1 -1
  79. package/dist/assets/{VariablesView-BZCvPfan.js → VariablesView-BVls8Qra.js} +4 -4
  80. package/dist/assets/{WorkerView-CigxqnWi.js → WorkerView-Dm9dqtjG.js} +6 -6
  81. package/dist/assets/{WorkflowActivator-B7jRy4L1.js → WorkflowActivator-DfshltMu.js} +11 -9
  82. package/dist/assets/{WorkflowExecutionsInfoAccordion-C_ZycbsF.js → WorkflowExecutionsInfoAccordion-CrrBjf1F.js} +1 -1
  83. package/dist/assets/{WorkflowExecutionsLandingPage-DOqrfKlC.js → WorkflowExecutionsLandingPage-DrIX9hPD.js} +2 -2
  84. package/dist/assets/{WorkflowExecutionsPreview-B4Cj2gXW.js → WorkflowExecutionsPreview-C3ZM2R3J.js} +6 -6
  85. package/dist/assets/{WorkflowExecutionsView-RXfP7zkJ.js → WorkflowExecutionsView-BfWgLIZh.js} +10 -10
  86. package/dist/assets/{WorkflowHistory-DrXrRwIS.js → WorkflowHistory-gIJ3qyRQ.js} +3 -3
  87. package/dist/assets/{WorkflowOnboardingView-CXH1vCW2.js → WorkflowOnboardingView-CuOxA3HS.js} +1 -1
  88. package/dist/assets/{WorkflowPreview-B_MuFEV8.js → WorkflowPreview-DeCTI_GV.js} +1 -1
  89. package/dist/assets/{WorkflowsView-D90hfJ35.js → WorkflowsView-D65lDvqh.js} +9 -9
  90. package/dist/assets/{chartjs.utils-DalQn9bk.js → chartjs.utils-BpJiEmTU.js} +2 -2
  91. package/dist/assets/{dateFormatter-BPfJSa6q.js → dateFormatter-DNA1ez0J.js} +1 -1
  92. package/dist/assets/{easyAiWorkflowUtils-kgtpBx2h.js → easyAiWorkflowUtils-CGShRraC.js} +1 -1
  93. package/dist/assets/{global-link-actions-CnWOMvqA.js → global-link-actions-C7aXjvv8.js} +1 -1
  94. package/dist/assets/{import-curl-BvX_O56D.js → import-curl-Cp0oelYK.js} +1 -1
  95. package/dist/assets/{index-Bb2NNknG.js → index-B9xszJYe.js} +1 -1
  96. package/dist/assets/{index-DZ6VpjNj.js → index-BEvy7DZc.js} +60295 -57650
  97. package/dist/assets/{index-yNaoC3fo.css → index-Ed_z14lJ.css} +91 -435
  98. package/dist/assets/{pickBy-B_HGYyxS.js → pickBy-B7cHrDCV.js} +1 -1
  99. package/dist/assets/{polyfills-CLZ4X0Ad.js → polyfills-J2x06Gdp.js} +157 -224
  100. package/dist/assets/{templateActions-DQfZ3ni5.js → templateActions-D2DZ5K8P.js} +1 -1
  101. package/dist/assets/{typescript.worker-BsxN2afA.js → typescript.worker-B1loTpxy.js} +1 -1
  102. package/dist/assets/{useBeforeUnload-Cu0LPVWe.js → useBeforeUnload-DkXUEOdq.js} +1 -1
  103. package/dist/assets/{useCanvasMapping-VtpW_QZA.css → useCanvasMapping-CFf4cwnq.css} +6 -6
  104. package/dist/assets/{useCanvasMapping-CTTq6x8X.js → useCanvasMapping-DjhK-zhP.js} +56 -31
  105. package/dist/assets/{useClearExecutionButtonVisible-Dwc1_eG9.js → useClearExecutionButtonVisible--2zd8JTS.js} +1 -2
  106. package/dist/assets/{useExecutionDebugging-rc72wLIp.js → useExecutionDebugging-CfJ1doKR.js} +1 -1
  107. package/dist/assets/{useExecutionHelpers-DqwMonFW.js → useExecutionHelpers-DcgY6WXs.js} +3 -3
  108. package/dist/assets/{useImportCurlCommand-D_onuFvo.js → useImportCurlCommand-D5kLqokm.js} +2 -2
  109. package/dist/assets/{useProjectPages-e8b03-5_.js → useProjectPages-DgIy9DQO.js} +1 -1
  110. package/dist/assets/{usePushConnection-wm-7Id6Q.js → usePushConnection-DieWXsRW.js} +16 -111
  111. package/dist/assets/{useTestDefinitionForm-DlUOnNC0.js → useTestDefinitionForm-Mm_EnTMi.js} +1 -1
  112. package/dist/assets/{useWorkflowActivate-65xML23U.js → useWorkflowActivate-CkyGF_8r.js} +1 -1
  113. package/dist/assets/{useWorkflowSaving-CUel20JA.js → useWorkflowSaving-B0hVR80g.js} +1 -1
  114. package/dist/index.html +3 -3
  115. package/package.json +1 -1
  116. package/tsconfig.json +1 -0
  117. package/vite.config.mts +4 -0
  118. package/dist/assets/CollectionParameter-Cj4t6-hd.js +0 -4
  119. package/dist/assets/InsightsSummary-MECenLJQ.js +0 -207
  120. package/dist/assets/useCanvasOperations-u8oSDa_u.js +0 -2834
@@ -1006,7 +1006,7 @@
1006
1006
  -------------------------- */
1007
1007
  /* BEM
1008
1008
  -------------------------- */
1009
- .node-settings[data-v-a3c6ba66] {
1009
+ .node-settings[data-v-d0343287] {
1010
1010
  display: flex;
1011
1011
  flex-direction: column;
1012
1012
  overflow: hidden;
@@ -1014,19 +1014,19 @@
1014
1014
  height: 100%;
1015
1015
  width: 100%;
1016
1016
  }
1017
- .node-settings .no-parameters[data-v-a3c6ba66] {
1017
+ .node-settings .no-parameters[data-v-d0343287] {
1018
1018
  margin-top: var(--spacing-xs);
1019
1019
  }
1020
- .node-settings .header-side-menu[data-v-a3c6ba66] {
1020
+ .node-settings .header-side-menu[data-v-d0343287] {
1021
1021
  padding: var(--spacing-s) var(--spacing-s) var(--spacing-s) var(--spacing-s);
1022
1022
  font-size: var(--font-size-l);
1023
1023
  display: flex;
1024
1024
  justify-content: space-between;
1025
1025
  }
1026
- .node-settings .header-side-menu .node-name[data-v-a3c6ba66] {
1026
+ .node-settings .header-side-menu .node-name[data-v-d0343287] {
1027
1027
  padding-top: var(--spacing-5xs);
1028
1028
  }
1029
- .node-settings .node-is-not-valid[data-v-a3c6ba66] {
1029
+ .node-settings .node-is-not-valid[data-v-d0343287] {
1030
1030
  height: 75%;
1031
1031
  padding: 10px;
1032
1032
  display: flex;
@@ -1036,54 +1036,54 @@
1036
1036
  text-align: center;
1037
1037
  line-height: var(--font-line-height-regular);
1038
1038
  }
1039
- .node-settings .node-parameters-wrapper[data-v-a3c6ba66] {
1039
+ .node-settings .node-parameters-wrapper[data-v-d0343287] {
1040
1040
  overflow-y: auto;
1041
1041
  padding: 0 var(--spacing-m) var(--spacing-l) var(--spacing-m);
1042
1042
  flex-grow: 1;
1043
1043
  }
1044
- .node-settings.dragging[data-v-a3c6ba66] {
1044
+ .node-settings.dragging[data-v-d0343287] {
1045
1045
  border-color: var(--color-primary);
1046
1046
  box-shadow: 0px 6px 16px rgba(255, 74, 51, 0.15);
1047
1047
  }
1048
- .parameter-content[data-v-a3c6ba66] {
1048
+ .parameter-content[data-v-d0343287] {
1049
1049
  font-size: 0.9em;
1050
1050
  margin-right: -15px;
1051
1051
  margin-left: -15px;
1052
1052
  }
1053
- .parameter-content input[data-v-a3c6ba66] {
1053
+ .parameter-content input[data-v-d0343287] {
1054
1054
  width: calc(100% - 35px);
1055
1055
  padding: 5px;
1056
1056
  }
1057
- .parameter-content select[data-v-a3c6ba66] {
1057
+ .parameter-content select[data-v-d0343287] {
1058
1058
  width: calc(100% - 20px);
1059
1059
  padding: 5px;
1060
1060
  }
1061
- .parameter-content[data-v-a3c6ba66]:before {
1061
+ .parameter-content[data-v-d0343287]:before {
1062
1062
  display: table;
1063
1063
  content: " ";
1064
1064
  position: relative;
1065
1065
  box-sizing: border-box;
1066
1066
  clear: both;
1067
1067
  }
1068
- .parameter-wrapper[data-v-a3c6ba66] {
1068
+ .parameter-wrapper[data-v-d0343287] {
1069
1069
  padding: 0 1em;
1070
1070
  }
1071
- .color-reset-button-wrapper[data-v-a3c6ba66] {
1071
+ .color-reset-button-wrapper[data-v-d0343287] {
1072
1072
  position: relative;
1073
1073
  }
1074
- .color-reset-button[data-v-a3c6ba66] {
1074
+ .color-reset-button[data-v-d0343287] {
1075
1075
  position: absolute;
1076
1076
  right: 7px;
1077
1077
  top: -25px;
1078
1078
  }
1079
- .node-version[data-v-a3c6ba66] {
1079
+ .node-version[data-v-d0343287] {
1080
1080
  border-top: var(--border-base);
1081
1081
  font-size: var(--font-size-xs);
1082
1082
  font-size: var(--font-size-2xs);
1083
1083
  padding: var(--spacing-xs) 0 var(--spacing-2xs) 0;
1084
1084
  color: var(--color-text-light);
1085
1085
  }
1086
- .parameter-value input.expression[data-v-a3c6ba66] {
1086
+ .parameter-value input.expression[data-v-d0343287] {
1087
1087
  border-style: dashed;
1088
1088
  border-color: #ff9600;
1089
1089
  display: inline-block;
@@ -1,13 +1,12 @@
1
- import { d as defineComponent, r as ref, q as computed, h as resolveComponent, i as createElementBlock, g as openBlock, n as normalizeClass, k as createBaseVNode, j as createVNode, bC as _sfc_main$g, w as withCtx, bd as withKeys, b2 as withModifiers, l as createTextVNode, t as toDisplayString, m as unref, c as useI18n, e as createBlock, f as createCommentVNode, z as nextTick, _ as _export_sfc, as as useNDVStore, Q as useWorkflowsStore, dG as isCommunityPackageName, cO as NPM_PACKAGE_DOCS_BASE_URL, h_ as BUILTIN_NODES_DOCS_URL, cQ as COMMUNITY_NODES_INSTALLATION_DOCS_URL, aP as useExternalHooks, ag as useTelemetry, bm as NodeConnectionTypes, b as useRouter, bf as useClipboard, a5 as useWorkflowHelpers, a as useToast, h$ as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, i0 as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, fE as MCP_TRIGGER_NODE_TYPE, fm as FORM_TRIGGER_NODE_TYPE, bk as CHAT_TRIGGER_NODE_TYPE, X as watch, F as Fragment, D as renderList, aQ as onClickOutside, aq as h, i1 as toRef, i2 as tryOnScopeDispose, i3 as toValue, i4 as isIOS, i5 as noop, i6 as isObject, i7 as isClient, bz as useNodeTypesStore, bA as useNodeHelpers, G as useDebounce, B as normalizeStyle, gl as TitledList, bw as getNodeInputs, i8 as SWITCH_NODE_TYPE, eq as isEqual, i9 as captureException, p as useSettingsStore, au as usePostHog, bS as useCredentialsStore, u as useUsersStore, a1 as useProjectsStore, dL as OPEN_AI_API_CREDENTIAL_TYPE, ia as AI_CREDITS_EXPERIMENT, bV as useHistoryStore, ab as ProjectTypes, bx as getConnectionTypes, o as onMounted, bI as ndvEventBus, y as onBeforeUnmount, ib as _sfc_main$h, ic as CUSTOM_NODES_DOCS_URL, aA as withDirectives, aB as vShow, hA as _sfc_main$i, id as NodeCredentials, bo as get, fV as getNodeParameters, cn as deepCopy, ie as set, ig as unset, fK as RenameNodeCommand, hz as isINodePropertyCollectionList, ih as isINodePropertiesList, ii as isINodePropertyOptionsList, ij as displayParameter, hf as Draggable, bN as useThrottleFn, H as useUIStore, fZ as useSlots, ik as MAIN_NODE_PANEL_WIDTH, aJ as useStorage, il as LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH, x as renderSlot, co as resolveDirective, ds as InfoTip, cT as storeToRefs, gp as useNodeDirtiness, e0 as useNodeType, bq as usePinnedData, gm as CanvasNodeDirtiness, aV as createSlots, be as N8nText, im as waitingNodeTooltip, bH as N8nRadioButtons, el as isPresent, io as truncate, h4 as createStaticVNode, bZ as START_NODE_TYPE, fj as MANUAL_TRIGGER_NODE_TYPE, ip as CRON_NODE_TYPE, iq as INTERVAL_NODE_TYPE, by as getNodeOutputs, ir as uniqBy, b6 as resolveDynamicComponent, aR as N8nTooltip, bE as N8nIcon, is as isTriggerPanelObject, dB as getTriggerNodeServiceName, fd as WEBHOOK_NODE_TYPE, dv as CopyInput, C as createEventBus, go as Transition, V as VIEWS, ak as WORKFLOW_SETTINGS_MODAL_KEY, ge as useDeviceSupport, it as EXECUTABLE_TRIGGER_NODE_TYPES, ay as STICKY_NODE_TYPE, iu as BASE_NODE_SURVEY_URL, aa as EnterpriseEditionFeature, e7 as dataPinningEventBus, bK as useStyles, iv as APP_MODALS_ELEMENT_ID, ai as useMessage, aj as MODAL_CONFIRM, c0 as jsonParse } from "./index-DZ6VpjNj.js";
2
- import { i as importCurlEventBus } from "./import-curl-BvX_O56D.js";
3
- import { R as RunData } from "./RunData-b0RE2JWc.js";
4
- import { b as convertToDisplayDateComponents } from "./dateFormatter-BPfJSa6q.js";
5
- import { R as RunDataAi } from "./RunDataAi-DnWcCR_0.js";
6
- import { u as useWorkflowActivate } from "./useWorkflowActivate-65xML23U.js";
7
- import "./FileSaver.min-bgn7Q9Gt.js";
8
- import "./useExecutionHelpers-DqwMonFW.js";
9
- import "./RunDataParsedAiContent-BbXv-NPD.js";
10
- import "./useCanvasOperations-u8oSDa_u.js";
1
+ import { d as defineComponent, r as ref, q as computed, h as resolveComponent, i as createElementBlock, g as openBlock, n as normalizeClass, k as createBaseVNode, j as createVNode, bD as _sfc_main$g, w as withCtx, be as withKeys, b3 as withModifiers, l as createTextVNode, t as toDisplayString, m as unref, c as useI18n, e as createBlock, f as createCommentVNode, z as nextTick, _ as _export_sfc, as as useNDVStore, Q as useWorkflowsStore, dN as isCommunityPackageName, cU as NPM_PACKAGE_DOCS_BASE_URL, gY as BUILTIN_NODES_DOCS_URL, cW as COMMUNITY_NODES_INSTALLATION_DOCS_URL, aP as useExternalHooks, ag as useTelemetry, by as NodeConnectionTypes, b as useRouter, bg as useClipboard, a5 as useWorkflowHelpers, a as useToast, gZ as OPEN_URL_PANEL_TRIGGER_NODE_TYPES, g_ as PRODUCTION_ONLY_TRIGGER_NODE_TYPES, g$ as MCP_TRIGGER_NODE_TYPE, h0 as FORM_TRIGGER_NODE_TYPE, c4 as CHAT_TRIGGER_NODE_TYPE, X as watch, F as Fragment, D as renderList, aQ as onClickOutside, aq as h, h1 as toRef, h2 as tryOnScopeDispose, h3 as toValue, h4 as isIOS, h5 as noop, h6 as isObject, h7 as isClient, bz as useNodeTypesStore, bA as useNodeHelpers, G as useDebounce, B as normalizeStyle, f5 as TitledList, bv as getNodeInputs, h8 as SWITCH_NODE_TYPE, ey as isEqual, h9 as captureException, p as useSettingsStore, au as usePostHog, bU as useCredentialsStore, u as useUsersStore, a1 as useProjectsStore, dS as OPEN_AI_API_CREDENTIAL_TYPE, ha as AI_CREDITS_EXPERIMENT, bX as useHistoryStore, ab as ProjectTypes, bw as getConnectionTypes, o as onMounted, bQ as ndvEventBus, y as onBeforeUnmount, hb as _sfc_main$h, hc as CUSTOM_NODES_DOCS_URL, aA as withDirectives, aB as vShow, gp as _sfc_main$i, hd as NodeCredentials, gr as get, he as getNodeParameters, ct as deepCopy, hf as set, hg as unset, hh as getUpdatedToolDescription, hi as RenameNodeCommand, go as isINodePropertyCollectionList, hj as isINodePropertiesList, hk as isINodePropertyOptionsList, hl as displayParameter, g4 as Draggable, bO as useThrottleFn, H as useUIStore, eF as useSlots, hm as MAIN_NODE_PANEL_WIDTH, aJ as useStorage, hn as LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH, x as renderSlot, cu as resolveDirective, dy as InfoTip, cZ as storeToRefs, fa as useNodeDirtiness, e8 as useNodeType, bl as usePinnedData, f6 as CanvasNodeDirtiness, aV as createSlots, bf as N8nText, ho as waitingNodeTooltip, bJ as N8nRadioButtons, et as isPresent, hp as truncate, fV as createStaticVNode, c0 as START_NODE_TYPE, gF as MANUAL_TRIGGER_NODE_TYPE, hq as CRON_NODE_TYPE, hr as INTERVAL_NODE_TYPE, bx as getNodeOutputs, hs as uniqBy, b7 as resolveDynamicComponent, aR as N8nTooltip, bF as N8nIcon, ht as isTriggerPanelObject, dH as getTriggerNodeServiceName, gL as WEBHOOK_NODE_TYPE, dB as CopyInput, C as createEventBus, f8 as Transition, V as VIEWS, ak as WORKFLOW_SETTINGS_MODAL_KEY, e_ as useDeviceSupport, hu as EXECUTABLE_TRIGGER_NODE_TYPES, ay as STICKY_NODE_TYPE, hv as BASE_NODE_SURVEY_URL, aa as EnterpriseEditionFeature, ef as dataPinningEventBus, bM as useStyles, hw as APP_MODALS_ELEMENT_ID, ai as useMessage, aj as MODAL_CONFIRM, c3 as jsonParse } from "./index-BEvy7DZc.js";
2
+ import { i as importCurlEventBus } from "./import-curl-Cp0oelYK.js";
3
+ import { R as RunData } from "./RunData-D3endKo8.js";
4
+ import { b as convertToDisplayDateComponents } from "./dateFormatter-DNA1ez0J.js";
5
+ import { R as RunDataAi } from "./RunDataAi-DtrK7pjQ.js";
6
+ import { u as useWorkflowActivate } from "./useWorkflowActivate-CkyGF_8r.js";
7
+ import "./FileSaver.min-BuBI9fyd.js";
8
+ import "./useExecutionHelpers-DcgY6WXs.js";
9
+ import "./RunDataParsedAiContent--QjlaSo3.js";
11
10
  const _sfc_main$f = /* @__PURE__ */ defineComponent({
12
11
  __name: "NodeTitle",
13
12
  props: {
@@ -1566,6 +1565,16 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
1566
1565
  _node,
1567
1566
  nodeType
1568
1567
  );
1568
+ if (isToolNode.value) {
1569
+ const updatedDescription = getUpdatedToolDescription(
1570
+ props.nodeType,
1571
+ nodeParameters,
1572
+ node2.value?.parameters
1573
+ );
1574
+ if (updatedDescription && nodeParameters) {
1575
+ nodeParameters.toolDescription = updatedDescription;
1576
+ }
1577
+ }
1569
1578
  for (const key of Object.keys(nodeParameters)) {
1570
1579
  if (nodeParameters && nodeParameters[key] !== null && nodeParameters[key] !== void 0) {
1571
1580
  setValue(`parameters.${key}`, nodeParameters[key]);
@@ -2134,7 +2143,7 @@ const style0$8 = {
2134
2143
  const cssModules$9 = {
2135
2144
  "$style": style0$8
2136
2145
  };
2137
- const NodeSettings = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$9], ["__scopeId", "data-v-a3c6ba66"]]);
2146
+ const NodeSettings = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$9], ["__scopeId", "data-v-d0343287"]]);
2138
2147
  const _sfc_main$9 = /* @__PURE__ */ defineComponent({
2139
2148
  __name: "PanelDragButton",
2140
2149
  props: {
@@ -1,13 +1,12 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-DCfAFuL5.js","assets/index-DZ6VpjNj.js","assets/index-yNaoC3fo.css","assets/useCanvasOperations-u8oSDa_u.js","assets/NodeCreation-RKvezEeg.css","assets/NodeDetailsView-C5_hVJzj.js","assets/import-curl-BvX_O56D.js","assets/RunData-b0RE2JWc.js","assets/FileSaver.min-bgn7Q9Gt.js","assets/useExecutionHelpers-DqwMonFW.js","assets/dateFormatter-BPfJSa6q.js","assets/RunData-DQeENuzG.css","assets/RunDataAi-DnWcCR_0.js","assets/RunDataParsedAiContent-BbXv-NPD.js","assets/RunDataParsedAiContent-9EEUzCKp.css","assets/RunDataAi-D9VLFXIf.css","assets/useWorkflowActivate-65xML23U.js","assets/NodeDetailsView-pYP-34nS.css","assets/SetupWorkflowCredentialsButton-DZr4TCPC.js"])))=>i.map(i=>d[i]);
2
- import { d as defineComponent, h as resolveComponent, e as createBlock, g as openBlock, C as createEventBus, Y as useCssModule, bO as toRef, q as computed, r as ref, bP as refThrottled, i as createElementBlock, k as createBaseVNode, x as renderSlot, f as createCommentVNode, b7 as mergeProps, m as unref, n as normalizeClass, _ as _export_sfc, c as useI18n, bQ as KeyboardShortcutTooltip, w as withCtx, j as createVNode, b2 as withModifiers, bR as reactive, o as onMounted, bb as onUnmounted, l as createTextVNode, t as toDisplayString, b as useRouter, R as useRoute, a as useToast, a4 as useDocumentTitle, a5 as useWorkflowHelpers, bA as useNodeHelpers, bz as useNodeTypesStore, H as useUIStore, Q as useWorkflowsStore, a0 as useSourceControlStore, p as useSettingsStore, bS as useCredentialsStore, bT as useEnvironmentsStore, bU as useExternalSecretsStore, Z as useRootStore, at as useExecutionsStore, $ as useCanvasStore, a3 as useNpsSurveyStore, bV as useHistoryStore, a1 as useProjectsStore, u as useUsersStore, E as useTagsStore, P as usePushConnectionStore, as as useNDVStore, aN as useTemplatesStore, bW as useBuilderStore, a2 as useFoldersStore, bX as useAgentRequestStore, bB as useRunWorkflow, bf as useClipboard, S as PLACEHOLDER_EMPTY_WORKFLOW_ID, bY as NEW_WORKFLOW_ID, V as VIEWS, aZ as LOGS_PANEL_STATE, bZ as START_NODE_TYPE, b_ as getNodeViewTab, s as MAIN_HEADER_TABS, b$ as VALID_WORKFLOW_IMPORT_URL_REGEX, ai as useMessage, aj as MODAL_CONFIRM, c0 as jsonParse, a7 as getResourcePermissions, bk as CHAT_TRIGGER_NODE_TYPE, bl as MANUAL_CHAT_TRIGGER_NODE_TYPE, X as watch, c1 as onBeforeRouteLeave, az as onBeforeMount, ak as WORKFLOW_SETTINGS_MODAL_KEY, aP as useExternalHooks, c2 as onActivated, c3 as onDeactivated, y as onBeforeUnmount, c4 as Suspense, c5 as defineAsyncComponent, c6 as N8nCallout, ao as __vitePreload, aa as EnterpriseEditionFeature, z as nextTick, ag as useTelemetry, c7 as tryToParseNumber, ah as nodeViewEventBus, bm as NodeConnectionTypes, c8 as isValidNodeConnectionType, c9 as CanvasConnectionMode, ca as historyBus, aF as sourceControlEventBus, cb as getNodesWithNormalizedPosition, aq as h, cc as NODE_CREATOR_OPEN_SOURCES, cd as CanvasNodeRenderType, ay as STICKY_NODE_TYPE, ce as needsAgentInput, cf as FROM_AI_PARAMETERS_MODAL_KEY, cg as DRAG_EVENT_DATA_KEY } from "./index-DZ6VpjNj.js";
3
- import { u as useVueFlow, a as useCanvasMapping, C as Canvas } from "./useCanvasMapping-CTTq6x8X.js";
4
- import { g as globalLinkActionsEventBus } from "./global-link-actions-CnWOMvqA.js";
5
- import { u as useNodeCreatorStore, a as useCanvasOperations, c as createCanvasConnectionHandleString } from "./useCanvasOperations-u8oSDa_u.js";
6
- import { u as useExecutionDebugging } from "./useExecutionDebugging-rc72wLIp.js";
7
- import { u as useBeforeUnload } from "./useBeforeUnload-Cu0LPVWe.js";
8
- import { g as getEasyAiWorkflowJson } from "./easyAiWorkflowUtils-kgtpBx2h.js";
9
- import { u as useClearExecutionButtonVisible } from "./useClearExecutionButtonVisible-Dwc1_eG9.js";
10
- import { u as useWorkflowSaving } from "./useWorkflowSaving-CUel20JA.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-ueFdk4bA.js","assets/index-BEvy7DZc.js","assets/index-Ed_z14lJ.css","assets/NodeCreation-RKvezEeg.css","assets/NodeDetailsView-Drob-YV5.js","assets/import-curl-Cp0oelYK.js","assets/RunData-D3endKo8.js","assets/FileSaver.min-BuBI9fyd.js","assets/useExecutionHelpers-DcgY6WXs.js","assets/dateFormatter-DNA1ez0J.js","assets/RunData-CE5FsU6k.css","assets/RunDataAi-DtrK7pjQ.js","assets/RunDataParsedAiContent--QjlaSo3.js","assets/RunDataParsedAiContent-9EEUzCKp.css","assets/RunDataAi-D9VLFXIf.css","assets/useWorkflowActivate-CkyGF_8r.js","assets/NodeDetailsView-DpO8nTmN.css","assets/SetupWorkflowCredentialsButton-DNjlHJdz.js"])))=>i.map(i=>d[i]);
2
+ import { d as defineComponent, h as resolveComponent, e as createBlock, g as openBlock, C as createEventBus, Y as useCssModule, bI as toRef, q as computed, r as ref, bR as refThrottled, i as createElementBlock, k as createBaseVNode, x as renderSlot, f as createCommentVNode, b8 as mergeProps, m as unref, n as normalizeClass, _ as _export_sfc, c as useI18n, bL as KeyboardShortcutTooltip, w as withCtx, j as createVNode, b3 as withModifiers, bS as reactive, o as onMounted, bc as onUnmounted, l as createTextVNode, t as toDisplayString, b as useRouter, R as useRoute, a as useToast, a4 as useDocumentTitle, a5 as useWorkflowHelpers, bA as useNodeHelpers, bz as useNodeTypesStore, H as useUIStore, Q as useWorkflowsStore, a0 as useSourceControlStore, bT as useNodeCreatorStore, p as useSettingsStore, bU as useCredentialsStore, bV as useEnvironmentsStore, bW as useExternalSecretsStore, Z as useRootStore, at as useExecutionsStore, $ as useCanvasStore, a3 as useNpsSurveyStore, bX as useHistoryStore, a1 as useProjectsStore, u as useUsersStore, E as useTagsStore, P as usePushConnectionStore, as as useNDVStore, aN as useTemplatesStore, bY as useBuilderStore, a2 as useFoldersStore, bZ as useAgentRequestStore, aY as useLogsStore, bB as useRunWorkflow, b_ as useCanvasOperations, bg as useClipboard, S as PLACEHOLDER_EMPTY_WORKFLOW_ID, b$ as NEW_WORKFLOW_ID, V as VIEWS, c0 as START_NODE_TYPE, c1 as getNodeViewTab, s as MAIN_HEADER_TABS, c2 as VALID_WORKFLOW_IMPORT_URL_REGEX, ai as useMessage, aj as MODAL_CONFIRM, c3 as jsonParse, a7 as getResourcePermissions, c4 as CHAT_TRIGGER_NODE_TYPE, c5 as MANUAL_CHAT_TRIGGER_NODE_TYPE, X as watch, c6 as onBeforeRouteLeave, az as onBeforeMount, ak as WORKFLOW_SETTINGS_MODAL_KEY, aP as useExternalHooks, c7 as onActivated, c8 as onDeactivated, y as onBeforeUnmount, c9 as Suspense, ca as defineAsyncComponent, F as Fragment, cb as N8nCallout, ao as __vitePreload, aa as EnterpriseEditionFeature, z as nextTick, ag as useTelemetry, cc as tryToParseNumber, ah as nodeViewEventBus, by as NodeConnectionTypes, cd as createCanvasConnectionHandleString, ce as isValidNodeConnectionType, cf as CanvasConnectionMode, aF as sourceControlEventBus, cg as getNodesWithNormalizedPosition, aq as h, ch as NODE_CREATOR_OPEN_SOURCES, ci as CanvasNodeRenderType, ay as STICKY_NODE_TYPE, cj as needsAgentInput, ck as FROM_AI_PARAMETERS_MODAL_KEY, cl as historyBus, cm as DRAG_EVENT_DATA_KEY } from "./index-BEvy7DZc.js";
3
+ import { u as useVueFlow, a as useCanvasMapping, C as Canvas } from "./useCanvasMapping-DjhK-zhP.js";
4
+ import { g as globalLinkActionsEventBus } from "./global-link-actions-C7aXjvv8.js";
5
+ import { u as useExecutionDebugging } from "./useExecutionDebugging-CfJ1doKR.js";
6
+ import { u as useBeforeUnload } from "./useBeforeUnload-DkXUEOdq.js";
7
+ import { g as getEasyAiWorkflowJson } from "./easyAiWorkflowUtils-CGShRraC.js";
8
+ import { u as useClearExecutionButtonVisible } from "./useClearExecutionButtonVisible--2zd8JTS.js";
9
+ import { u as useWorkflowSaving } from "./useWorkflowSaving-B0hVR80g.js";
11
10
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
12
11
  __name: "CanvasChatButton",
13
12
  props: {
@@ -285,13 +284,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
285
284
  __name: "NodeView",
286
285
  setup(__props) {
287
286
  const LazyNodeCreation = defineAsyncComponent(
288
- async () => await __vitePreload(() => import("./NodeCreation-DCfAFuL5.js").then((n) => n.N), true ? __vite__mapDeps([0,1,2,3,4]) : void 0)
287
+ async () => await __vitePreload(() => import("./NodeCreation-ueFdk4bA.js").then((n) => n.N), true ? __vite__mapDeps([0,1,2,3]) : void 0)
289
288
  );
290
289
  const LazyNodeDetailsView = defineAsyncComponent(
291
- async () => await __vitePreload(() => import("./NodeDetailsView-C5_hVJzj.js"), true ? __vite__mapDeps([5,1,2,6,7,8,9,10,11,12,13,14,3,15,16,17]) : void 0)
290
+ async () => await __vitePreload(() => import("./NodeDetailsView-Drob-YV5.js"), true ? __vite__mapDeps([4,1,2,5,6,7,8,9,10,11,12,13,14,15,16]) : void 0)
292
291
  );
293
292
  const LazySetupWorkflowCredentialsButton = defineAsyncComponent(
294
- async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-DZr4TCPC.js"), true ? __vite__mapDeps([18,1,2]) : void 0)
293
+ async () => await __vitePreload(() => import("./SetupWorkflowCredentialsButton-DNjlHJdz.js"), true ? __vite__mapDeps([17,1,2]) : void 0)
295
294
  );
296
295
  const $style = useCssModule();
297
296
  const router = useRouter();
@@ -327,6 +326,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
327
326
  const builderStore = useBuilderStore();
328
327
  const foldersStore = useFoldersStore();
329
328
  const agentRequestStore = useAgentRequestStore();
329
+ const logsStore = useLogsStore();
330
330
  const canvasEventBus = createEventBus();
331
331
  const { addBeforeUnloadEventBindings, removeBeforeUnloadEventBindings } = useBeforeUnload({
332
332
  route
@@ -373,7 +373,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
373
373
  editableWorkflow,
374
374
  editableWorkflowObject,
375
375
  lastClickPosition,
376
- toggleChatOpen
376
+ startChat
377
377
  } = useCanvasOperations({ router });
378
378
  const { applyExecutionData } = useExecutionDebugging();
379
379
  useClipboard({ onPaste: onClipboardPaste });
@@ -405,7 +405,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
405
405
  const keyBindingsEnabled = computed(() => {
406
406
  return !ndvStore.activeNode && uiStore.activeModals.length === 0;
407
407
  });
408
- const isLogsPanelOpen = computed(() => workflowsStore.logsPanelState !== LOGS_PANEL_STATE.CLOSED);
408
+ const isLogsPanelOpen = computed(() => logsStore.isOpen);
409
409
  async function initializeData() {
410
410
  const loadPromises = (() => {
411
411
  if (settingsStore.isPreviewMode && isDemoRoute.value) return [];
@@ -686,7 +686,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
686
686
  }
687
687
  toggleNodesDisabled(ids);
688
688
  }
689
- function onClickNode() {
689
+ function onClickNode(_id, event) {
690
+ lastClickPosition.value = [event.x, event.y];
690
691
  closeNodeCreator();
691
692
  }
692
693
  function onSetNodeActivated(id, event) {
@@ -743,7 +744,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
743
744
  if (!workflowData) {
744
745
  return;
745
746
  }
746
- const result = await importWorkflowData(workflowData, "paste", false);
747
+ const result = await importWorkflowData(workflowData, "paste", {
748
+ importTags: false,
749
+ viewport: viewportBoundaries.value
750
+ });
747
751
  selectNodes(result.nodes?.map((node) => node.id) ?? []);
748
752
  }
749
753
  async function onCutNodes(ids) {
@@ -757,7 +761,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
757
761
  if (!checkIfEditingIsAllowed()) {
758
762
  return;
759
763
  }
760
- const newIds = await duplicateNodes(ids);
764
+ const newIds = await duplicateNodes(ids, {
765
+ viewport: viewportBoundaries.value
766
+ });
761
767
  selectNodes(newIds);
762
768
  }
763
769
  function onPinNodes(ids, source) {
@@ -919,7 +925,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
919
925
  }
920
926
  async function onImportWorkflowDataEvent(data) {
921
927
  const workflowData = data.data;
922
- await importWorkflowData(workflowData, "file");
928
+ await importWorkflowData(workflowData, "file", {
929
+ viewport: viewportBoundaries.value
930
+ });
923
931
  fitView();
924
932
  selectNodes(workflowData.nodes?.map((node) => node.id) ?? []);
925
933
  if (data.tidyUp) {
@@ -933,7 +941,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
933
941
  if (!workflowData) {
934
942
  return;
935
943
  }
936
- await importWorkflowData(workflowData, "url");
944
+ await importWorkflowData(workflowData, "url", {
945
+ viewport: viewportBoundaries.value
946
+ });
937
947
  fitView();
938
948
  selectNodes(workflowData.nodes?.map((node) => node.id) ?? []);
939
949
  }
@@ -954,6 +964,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
954
964
  const addedNodes = await addNodes(nodes, {
955
965
  dragAndDrop,
956
966
  position,
967
+ viewport: viewportBoundaries.value,
957
968
  trackHistory: true,
958
969
  telemetry: true
959
970
  });
@@ -1185,11 +1196,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1185
1196
  if (!chatTriggerNode.value) return null;
1186
1197
  return workflowsStore.pinDataByNodeName(chatTriggerNode.value.name);
1187
1198
  });
1188
- async function onToggleChat() {
1189
- await toggleChatOpen("main");
1190
- }
1191
- async function onOpenChat() {
1192
- await toggleChatOpen("main", true);
1199
+ function onOpenChat() {
1200
+ startChat("main");
1193
1201
  }
1194
1202
  function addUndoRedoEventBindings() {
1195
1203
  historyBus.on("nodeMove", onRevertNodePosition);
@@ -1349,9 +1357,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1349
1357
  });
1350
1358
  }
1351
1359
  const viewportTransform = ref({ x: 0, y: 0, zoom: 1 });
1352
- function onViewportChange(event) {
1353
- viewportTransform.value = event;
1354
- uiStore.nodeViewOffsetPosition = [event.x, event.y];
1360
+ const viewportDimensions = ref({ width: 0, height: 0 });
1361
+ const viewportBoundaries = computed(() => {
1362
+ const { x, y, zoom } = viewportTransform.value;
1363
+ const { width, height } = viewportDimensions.value;
1364
+ const xMin = -x / zoom;
1365
+ const yMin = -y / zoom;
1366
+ const xMax = (width - x) / zoom;
1367
+ const yMax = (height - y) / zoom;
1368
+ return { xMin, yMin, xMax, yMax };
1369
+ });
1370
+ function onViewportChange(viewport, dimensions) {
1371
+ viewportTransform.value = viewport;
1372
+ viewportDimensions.value = dimensions;
1373
+ uiStore.nodeViewOffsetPosition = [viewport.x, viewport.y];
1355
1374
  }
1356
1375
  function fitView() {
1357
1376
  setTimeout(() => canvasEventBus.emit("fitView"));
@@ -1363,6 +1382,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1363
1382
  lastClickPosition.value = [position.x, position.y];
1364
1383
  onSetNodeSelected();
1365
1384
  }
1385
+ function onSelectionEnd(position) {
1386
+ lastClickPosition.value = [position.x, position.y];
1387
+ }
1366
1388
  async function onDragAndDrop(position, event) {
1367
1389
  if (!event.dataTransfer) {
1368
1390
  return;
@@ -1553,6 +1575,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1553
1575
  showAddFirstStepIfEnabled();
1554
1576
  });
1555
1577
  onDeactivated(() => {
1578
+ uiStore.closeModal(WORKFLOW_SETTINGS_MODAL_KEY);
1556
1579
  removeUndoRedoEventBindings();
1557
1580
  });
1558
1581
  onBeforeUnmount(() => {
@@ -1590,6 +1613,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1590
1613
  "onUpdate:node:parameters": onUpdateNodeParameters,
1591
1614
  "onUpdate:node:inputs": onUpdateNodeInputs,
1592
1615
  "onUpdate:node:outputs": onUpdateNodeOutputs,
1616
+ "onUpdate:logsOpen": _cache[2] || (_cache[2] = ($event) => unref(logsStore).toggleOpen($event)),
1617
+ "onUpdate:logs:inputOpen": unref(logsStore).toggleInputOpen,
1618
+ "onUpdate:logs:outputOpen": unref(logsStore).toggleOutputOpen,
1593
1619
  "onOpen:subWorkflow": onOpenSubWorkflow,
1594
1620
  "onClick:node": onClickNode,
1595
1621
  "onClick:node:add": onClickNodeAdd,
@@ -1608,12 +1634,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1608
1634
  "onDuplicate:nodes": onDuplicateNodes,
1609
1635
  "onCopy:nodes": onCopyNodes,
1610
1636
  "onCut:nodes": onCutNodes,
1611
- "onRun:workflow": _cache[1] || (_cache[1] = ($event) => unref(runEntireWorkflow)("main")),
1637
+ "onRun:workflow": _cache[3] || (_cache[3] = ($event) => unref(runEntireWorkflow)("main")),
1612
1638
  "onSave:workflow": onSaveWorkflow,
1613
1639
  "onCreate:workflow": onCreateWorkflow,
1614
- onViewportChange,
1640
+ "onViewport:change": onViewportChange,
1641
+ "onSelection:end": onSelectionEnd,
1615
1642
  onDragAndDrop,
1616
- onTidyUp
1643
+ onTidyUp,
1644
+ onStartChat: _cache[4] || (_cache[4] = ($event) => unref(startChat)())
1617
1645
  }, {
1618
1646
  default: withCtx(() => [
1619
1647
  (openBlock(), createBlock(Suspense, null, {
@@ -1637,12 +1665,27 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1637
1665
  onMouseleave: onRunWorkflowButtonMouseLeave,
1638
1666
  onClick: _cache[0] || (_cache[0] = ($event) => unref(runEntireWorkflow)("main"))
1639
1667
  }, null, 8, ["waiting-for-webhook", "disabled", "executing"])) : createCommentVNode("", true),
1640
- containsChatTriggerNodes.value ? (openBlock(), createBlock(_component_CanvasChatButton, {
1641
- key: 1,
1642
- type: isLogsPanelOpen.value ? "tertiary" : "primary",
1643
- label: isLogsPanelOpen.value ? unref(i18n).baseText("chat.hide") : unref(i18n).baseText("chat.open"),
1644
- onClick: onToggleChat
1645
- }, null, 8, ["type", "label"])) : createCommentVNode("", true),
1668
+ containsChatTriggerNodes.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
1669
+ isLogsPanelOpen.value ? (openBlock(), createBlock(_component_CanvasChatButton, {
1670
+ key: 0,
1671
+ type: "tertiary",
1672
+ label: unref(i18n).baseText("chat.hide"),
1673
+ onClick: _cache[1] || (_cache[1] = ($event) => unref(logsStore).toggleOpen(false))
1674
+ }, null, 8, ["label"])) : (openBlock(), createBlock(KeyboardShortcutTooltip, {
1675
+ key: 1,
1676
+ label: unref(i18n).baseText("chat.open"),
1677
+ shortcut: { keys: ["c"] }
1678
+ }, {
1679
+ default: withCtx(() => [
1680
+ createVNode(_component_CanvasChatButton, {
1681
+ type: "primary",
1682
+ label: unref(i18n).baseText("chat.open"),
1683
+ onClick: onOpenChat
1684
+ }, null, 8, ["label"])
1685
+ ]),
1686
+ _: 1
1687
+ }, 8, ["label"]))
1688
+ ], 64)) : createCommentVNode("", true),
1646
1689
  isStopExecutionButtonVisible.value ? (openBlock(), createBlock(_sfc_main$4, {
1647
1690
  key: 2,
1648
1691
  stopping: isStoppingExecution.value,
@@ -1698,7 +1741,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1698
1741
  }))
1699
1742
  ]),
1700
1743
  _: 1
1701
- }, 8, ["id", "workflow", "workflow-object", "fallback-nodes", "show-fallback-nodes", "event-bus", "read-only", "executing", "key-bindings"])) : createCommentVNode("", true);
1744
+ }, 8, ["id", "workflow", "workflow-object", "fallback-nodes", "show-fallback-nodes", "event-bus", "read-only", "executing", "key-bindings", "onUpdate:logs:inputOpen", "onUpdate:logs:outputOpen"])) : createCommentVNode("", true);
1702
1745
  };
1703
1746
  }
1704
1747
  });
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, b as useRouter, q as computed, c as useI18n, h as resolveComponent, e as createBlock, g as openBlock, m as unref, V as VIEWS, ab as ProjectTypes, hh as splitName, h5 as ResourceType, co as resolveDirective, i as createElementBlock, b7 as mergeProps, j as createVNode, x as renderSlot, w as withCtx, f as createCommentVNode, n as normalizeClass, aA as withDirectives, dI as ProjectIcon, k as createBaseVNode, l as createTextVNode, t as toDisplayString, _ as _export_sfc } from "./index-DZ6VpjNj.js";
1
+ import { d as defineComponent, b as useRouter, q as computed, c as useI18n, h as resolveComponent, e as createBlock, g as openBlock, m as unref, V as VIEWS, ab as ProjectTypes, g6 as splitName, fW as ResourceType, cu as resolveDirective, i as createElementBlock, b8 as mergeProps, j as createVNode, x as renderSlot, w as withCtx, f as createCommentVNode, n as normalizeClass, aA as withDirectives, dP as ProjectIcon, k as createBaseVNode, l as createTextVNode, t as toDisplayString, _ as _export_sfc } from "./index-BEvy7DZc.js";
2
2
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
3
3
  __name: "EmptySharedSectionActionBox",
4
4
  props: {
@@ -1,5 +1,5 @@
1
- import { d as defineComponent, R as useRoute, r as ref, q as computed, V as VIEWS, c as useI18n, X as watch, h as resolveComponent, e as createBlock, g as openBlock, i as createElementBlock, n as normalizeClass, x as renderSlot, j as createVNode, m as unref, gW as N8nActionToggle, w as withCtx, aT as _sfc_main$3, _ as _export_sfc, b as useRouter, a1 as useProjectsStore, a0 as useSourceControlStore, p as useSettingsStore, ab as ProjectTypes, a7 as getResourcePermissions, k as createBaseVNode, f as createCommentVNode, dI as ProjectIcon, l as createTextVNode, t as toDisplayString, bg as N8nButton, b7 as mergeProps, aR as N8nTooltip } from "./index-DZ6VpjNj.js";
2
- import { u as useProjectPages } from "./useProjectPages-e8b03-5_.js";
1
+ import { d as defineComponent, R as useRoute, r as ref, q as computed, V as VIEWS, c as useI18n, X as watch, h as resolveComponent, e as createBlock, g as openBlock, i as createElementBlock, n as normalizeClass, x as renderSlot, j as createVNode, m as unref, fL as N8nActionToggle, w as withCtx, aT as _sfc_main$3, _ as _export_sfc, b as useRouter, a1 as useProjectsStore, a0 as useSourceControlStore, p as useSettingsStore, ab as ProjectTypes, a7 as getResourcePermissions, k as createBaseVNode, f as createCommentVNode, dP as ProjectIcon, l as createTextVNode, t as toDisplayString, bh as N8nButton, b8 as mergeProps, aR as N8nTooltip } from "./index-BEvy7DZc.js";
2
+ import { u as useProjectPages } from "./useProjectPages-DgIy9DQO.js";
3
3
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
4
4
  __name: "ProjectTabs",
5
5
  props: {
@@ -1,6 +1,6 @@
1
- import { d as defineComponent, gj as mergeModels, gk as useModel, r as ref, q as computed, c as useI18n, h as resolveComponent, e as createBlock, g as openBlock, w as withCtx, j as createVNode, k as createBaseVNode, l as createTextVNode, t as toDisplayString, m as unref, i as createElementBlock, f as createCommentVNode, n as normalizeClass, gB as ProjectSharing, b2 as withModifiers, _ as _export_sfc, a6 as usePageRedirectionHelper, u as useUsersStore, a1 as useProjectsStore, hr as useRolesStore, aI as useCloudPlanStore, a as useToast, b as useRouter, a4 as useDocumentTitle, hs as getAllIconNames, X as watch, az as onBeforeMount, o as onMounted, di as N8nFormInput, F as Fragment, D as renderList, cn as deepCopy, ag as useTelemetry, z as nextTick, V as VIEWS } from "./index-DZ6VpjNj.js";
2
- import { P as ProjectHeader } from "./ProjectHeader-DNm605Kk.js";
3
- import "./useProjectPages-e8b03-5_.js";
1
+ import { d as defineComponent, f3 as mergeModels, f4 as useModel, r as ref, q as computed, c as useI18n, h as resolveComponent, e as createBlock, g as openBlock, w as withCtx, j as createVNode, k as createBaseVNode, l as createTextVNode, t as toDisplayString, m as unref, i as createElementBlock, f as createCommentVNode, n as normalizeClass, fq as ProjectSharing, b3 as withModifiers, _ as _export_sfc, a6 as usePageRedirectionHelper, u as useUsersStore, a1 as useProjectsStore, gg as useRolesStore, aI as useCloudPlanStore, a as useToast, b as useRouter, a4 as useDocumentTitle, gh as getAllIconNames, X as watch, az as onBeforeMount, o as onMounted, dp as N8nFormInput, F as Fragment, D as renderList, ct as deepCopy, V as VIEWS, ag as useTelemetry, z as nextTick } from "./index-BEvy7DZc.js";
2
+ import { P as ProjectHeader } from "./ProjectHeader-NRCcW7_U.js";
3
+ import "./useProjectPages-DgIy9DQO.js";
4
4
  const _hoisted_1$2 = { class: "pt-l" };
5
5
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
6
6
  __name: "ProjectDeleteDialog",
@@ -452,6 +452,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
452
452
  },
453
453
  { immediate: true }
454
454
  );
455
+ const relationUsers = computed(
456
+ () => formData.value.relations.map((relation) => {
457
+ const user = usersStore.usersById[relation.id];
458
+ if (!user) return relation;
459
+ return {
460
+ ...user,
461
+ ...relation
462
+ };
463
+ })
464
+ );
455
465
  onBeforeMount(async () => {
456
466
  await usersStore.fetchUsers();
457
467
  });
@@ -528,7 +538,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
528
538
  }, 8, ["users", "current-user-id", "placeholder"]),
529
539
  createVNode(_component_N8nUsersList, {
530
540
  actions: [],
531
- users: formData.value.relations,
541
+ users: relationUsers.value,
532
542
  "current-user-id": unref(usersStore).currentUser?.id,
533
543
  "delete-label": unref(i18n).baseText("workflows.shareModal.list.delete")
534
544
  }, {
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, P as usePushConnectionStore, q as computed, h as resolveComponent, co as resolveDirective, i as createElementBlock, g as openBlock, x as renderSlot, j as createVNode, w as withCtx, k as createBaseVNode, l as createTextVNode, t as toDisplayString, m as unref, c as useI18n, aA as withDirectives } from "./index-DZ6VpjNj.js";
1
+ import { d as defineComponent, P as usePushConnectionStore, q as computed, h as resolveComponent, cu as resolveDirective, i as createElementBlock, g as openBlock, x as renderSlot, j as createVNode, w as withCtx, k as createBaseVNode, l as createTextVNode, t as toDisplayString, m as unref, c as useI18n, aA as withDirectives } from "./index-BEvy7DZc.js";
2
2
  const _hoisted_1 = {
3
3
  key: 0,
4
4
  class: "push-connection-lost primary-color"
@@ -1,5 +1,5 @@
1
- import { _ as _export_sfc, i as createElementBlock, g as openBlock, x as renderSlot, k as createBaseVNode, n as normalizeClass, d as defineComponent, f as createCommentVNode, a1 as useProjectsStore, q as computed, X as watch, az as onBeforeMount, h as resolveComponent, e as createBlock, w as withCtx, m as unref, aa as EnterpriseEditionFeature, j as createVNode, c as useI18n, gB as ProjectSharing, l as createTextVNode, t as toDisplayString, av as useLocalStorage, gC as LOCAL_STORAGE_WORKFLOW_LIST_PREFERENCES_KEY, R as useRoute, b as useRouter, G as useDebounce, u as useUsersStore, r as ref, fZ as useSlots, gD as isSharedResource, gE as isResourceSortableByDate, o as onMounted, z as nextTick, y as onBeforeUnmount, F as Fragment, D as renderList, aA as withDirectives, b4 as normalizeProps, b5 as guardReactiveProps, aB as vShow, ag as useTelemetry } from "./index-DZ6VpjNj.js";
2
- import { u as useProjectPages } from "./useProjectPages-e8b03-5_.js";
1
+ import { _ as _export_sfc, i as createElementBlock, g as openBlock, x as renderSlot, k as createBaseVNode, n as normalizeClass, d as defineComponent, f as createCommentVNode, a1 as useProjectsStore, q as computed, X as watch, az as onBeforeMount, h as resolveComponent, e as createBlock, w as withCtx, m as unref, aa as EnterpriseEditionFeature, j as createVNode, c as useI18n, fq as ProjectSharing, l as createTextVNode, t as toDisplayString, av as useLocalStorage, fr as LOCAL_STORAGE_WORKFLOW_LIST_PREFERENCES_KEY, R as useRoute, b as useRouter, G as useDebounce, u as useUsersStore, r as ref, eF as useSlots, fs as isSharedResource, ft as isResourceSortableByDate, o as onMounted, z as nextTick, y as onBeforeUnmount, F as Fragment, D as renderList, aA as withDirectives, b5 as normalizeProps, b6 as guardReactiveProps, aB as vShow, ag as useTelemetry } from "./index-BEvy7DZc.js";
2
+ import { u as useProjectPages } from "./useProjectPages-DgIy9DQO.js";
3
3
  const wrapper$1 = "_wrapper_1x8n3_123";
4
4
  const content = "_content_1x8n3_139";
5
5
  const style0$3 = {
@@ -1728,7 +1728,7 @@ video {
1728
1728
  -------------------------- */
1729
1729
  /* BEM
1730
1730
  -------------------------- */
1731
- .run-data .code-node-editor[data-v-148793aa] {
1731
+ .run-data .code-node-editor[data-v-03f081bd] {
1732
1732
  height: 100%;
1733
1733
  }/* BEM support Func
1734
1734
  -------------------------- */
@@ -1852,7 +1852,7 @@ video {
1852
1852
  -------------------------- */
1853
1853
  /* BEM
1854
1854
  -------------------------- */
1855
- [data-v-148793aa] .highlight {
1855
+ [data-v-03f081bd] .highlight {
1856
1856
  background-color: #f7dc55;
1857
1857
  color: black;
1858
1858
  border-radius: var(--border-radius-base);