n8n-editor-ui 1.119.0 → 1.120.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (494) hide show
  1. package/.build/cache-marker +1 -1
  2. package/.build/node-popularity.json +1767 -1767
  3. package/dist/assets/{AddDataTableModal-78UiDOZ6.js → AddDataTableModal-CNPce2MK.js} +17 -17
  4. package/dist/assets/AddDataTableModal-legacy-D_q2DsYi.js +165 -0
  5. package/dist/assets/AnimatedSpinner-legacy-a37yY0a9.js +35 -0
  6. package/dist/assets/{AnnotationTagsDropdown.ee-B5SGfmxY.js → AnnotationTagsDropdown.ee-B3a6ceTY.js} +2 -2
  7. package/dist/assets/AnnotationTagsDropdown.ee-legacy-LINSaq2v.js +90 -0
  8. package/dist/assets/{AuthView-CaCXt20h.js → AuthView-BksSCUt6.js} +6 -6
  9. package/dist/assets/AuthView-legacy-CfV1HZE_.js +170 -0
  10. package/dist/assets/{ChangePasswordView-sh87mWR6.js → ChangePasswordView-Cvxj1PRp.js} +15 -15
  11. package/dist/assets/ChangePasswordView-legacy-xsAfjRRg.js +165 -0
  12. package/dist/assets/{ChatAgentsView-4SiYQ9YJ.js → ChatAgentsView-DJypCGml.js} +22 -22
  13. package/dist/assets/ChatAgentsView-legacy-BaECHABU.js +418 -0
  14. package/dist/assets/{ChatSidebar-C0XXqw3v.js → ChatSidebar-C13q9zqk.js} +29 -24
  15. package/dist/assets/ChatSidebar-legacy-DIt4TcYH.js +485 -0
  16. package/dist/assets/{ChatView-BlkLzP1X.js → ChatView-D2xZRN42.js} +26 -26
  17. package/dist/assets/ChatView-legacy-CFToQG1U.js +1192 -0
  18. package/dist/assets/CollectionParameter-legacy-IavnknS_.js +16 -0
  19. package/dist/assets/CollectionParameter-uuFxXssR.js +58 -0
  20. package/dist/assets/{CommunityNodeUpdateInfo-rHUGLO4H.js → CommunityNodeUpdateInfo-CLRP_8wC.js} +8 -8
  21. package/dist/assets/CommunityNodeUpdateInfo-legacy-DS8roZW5.js +395 -0
  22. package/dist/assets/{CopyInput-DX-FL085.js → CopyInput-Bn1XwSA8.js} +4 -4
  23. package/dist/assets/CopyInput-legacy-CiWOPgga.js +141 -0
  24. package/dist/assets/{CredentialIcon-DS3l06t2.js → CredentialIcon-BYz55hZ1.js} +2 -2
  25. package/dist/assets/CredentialIcon-legacy-Dj_Wwpq8.js +110 -0
  26. package/dist/assets/{CredentialsView-C3SKDwtI.js → CredentialsView-DAHDYrLs.js} +36 -36
  27. package/dist/assets/CredentialsView-legacy-DLPPpy9f.js +562 -0
  28. package/dist/assets/{DataTableActions-lgRuMb9F.js → DataTableActions-C64c3Y8N.js} +7 -7
  29. package/dist/assets/DataTableActions-legacy-DBVf0Yyo.js +113 -0
  30. package/dist/assets/{DataTableDetailsView-CoWw-4gy.js → DataTableDetailsView-ByMD0P9u.js} +23 -23
  31. package/dist/assets/DataTableDetailsView-legacy-DaV5zS6D.js +46280 -0
  32. package/dist/assets/{DataTableView-hUsgVnZS.js → DataTableView-7hlUIGsV.js} +33 -33
  33. package/dist/assets/DataTableView-legacy-CI8bni3b.js +348 -0
  34. package/dist/assets/DemoFooter-CXKoC-C4.js +70 -0
  35. package/dist/assets/DemoFooter-legacy-C9jTq-mk.js +39 -0
  36. package/dist/assets/{Draggable-DFf4aD-Y.js → Draggable-FGSUZI7J.js} +1 -1
  37. package/dist/assets/Draggable-legacy-DrwbjxUV.js +158 -0
  38. package/dist/assets/{EmptySharedSectionActionBox-BkPu0yI0.js → EmptySharedSectionActionBox-DC-L1kVD.js} +4 -4
  39. package/dist/assets/EmptySharedSectionActionBox-legacy-CcDbu4Qz.js +68 -0
  40. package/dist/assets/{EnterpriseEdition.ee-BoNEV-MB.js → EnterpriseEdition.ee-BLnkG_vb.js} +1 -1
  41. package/dist/assets/EnterpriseEdition.ee-legacy-qbLE7866.js +44 -0
  42. package/dist/assets/{EntityNotFound-Bs-aLs3W.js → EntityNotFound-BEd7ip46.js} +7 -7
  43. package/dist/assets/EntityNotFound-legacy-DYBNYDT_.js +116 -0
  44. package/dist/assets/{EntityUnAuthorised-BwhGn6eD.js → EntityUnAuthorised-BwJ3qYPD.js} +7 -7
  45. package/dist/assets/EntityUnAuthorised-legacy-igjo60QA.js +97 -0
  46. package/dist/assets/{ErrorView-Cvlb8nm0.js → ErrorView-BpDaPgmW.js} +9 -9
  47. package/dist/assets/ErrorView-legacy-DapUi98L.js +100 -0
  48. package/dist/assets/{EvaluationsRootView-BoWo5n7U.js → EvaluationsRootView-BeKeeOoI.js} +26 -26
  49. package/dist/assets/EvaluationsRootView-legacy-CKVE58to.js +633 -0
  50. package/dist/assets/{EvaluationsView-DxiPOlGL.js → EvaluationsView-BWf7BQC4.js} +20 -20
  51. package/dist/assets/EvaluationsView-legacy-DhlbC0Ea.js +612 -0
  52. package/dist/assets/{ExecutionsTime-DwXL-TY4.js → ExecutionsTime-EA00RsW3.js} +9 -9
  53. package/dist/assets/ExecutionsTime-legacy-DrbsbtIP.js +618 -0
  54. package/dist/assets/ExecutionsView-legacy-Dgt_HcPK.js +941 -0
  55. package/dist/assets/{ExecutionsView-B4XGhWmY.js → ExecutionsView-nE3nEcsV.js} +37 -37
  56. package/dist/assets/{ExternalSecretsProviderConnectionSwitch.ee-DCTg0mdX.js → ExternalSecretsProviderConnectionSwitch.ee-BWc-RcA5.js} +4 -4
  57. package/dist/assets/ExternalSecretsProviderConnectionSwitch.ee-legacy-vUb1CeAz.js +269 -0
  58. package/dist/assets/FileSaver.min-legacy-BTN44Z38.js +100 -0
  59. package/dist/assets/{FixedCollectionParameter-CbrkbI18.js → FixedCollectionParameter-B1yXNe91.js} +48 -48
  60. package/dist/assets/FixedCollectionParameter-legacy-D_uQ0vSg.js +346 -0
  61. package/dist/assets/{ForgotMyPasswordView-KkAVBYit.js → ForgotMyPasswordView-D7LLNbRv.js} +15 -15
  62. package/dist/assets/ForgotMyPasswordView-legacy-DftsnpqL.js +118 -0
  63. package/dist/assets/{InsightsChartAverageRuntime-D5Gh8Rz5.js → InsightsChartAverageRuntime-C7rtAGGH.js} +8 -8
  64. package/dist/assets/InsightsChartAverageRuntime-legacy-C8eNILht.js +91 -0
  65. package/dist/assets/{InsightsChartFailed-D7PZ_ctV.js → InsightsChartFailed-BVvAmkiO.js} +7 -7
  66. package/dist/assets/InsightsChartFailed-legacy-BrgEC_aN.js +82 -0
  67. package/dist/assets/{InsightsChartFailureRate-CpPU5Kwd.js → InsightsChartFailureRate-DwY4ZV2Q.js} +8 -8
  68. package/dist/assets/InsightsChartFailureRate-legacy-BOkyqauQ.js +85 -0
  69. package/dist/assets/{InsightsChartTimeSaved-DYrv2t2N.js → InsightsChartTimeSaved-g3dzoVe5.js} +8 -8
  70. package/dist/assets/InsightsChartTimeSaved-legacy-CRXGQDed.js +99 -0
  71. package/dist/assets/{InsightsChartTotal-CNqL-Qn3.js → InsightsChartTotal-BUzsVTHL.js} +7 -7
  72. package/dist/assets/InsightsChartTotal-legacy-BJMAB7NO.js +82 -0
  73. package/dist/assets/{InsightsDashboard-CrJZtNDS.js → InsightsDashboard-Z46a8mLm.js} +36 -36
  74. package/dist/assets/InsightsDashboard-legacy-BsKYh6Zu.js +562 -0
  75. package/dist/assets/{InsightsPaywall-DxgcxZ5z.js → InsightsPaywall-CM-5Wo37.js} +16 -16
  76. package/dist/assets/InsightsPaywall-legacy-Db6t4x-1.js +83 -0
  77. package/dist/assets/{InsightsSummary-Bew3_p6D.js → InsightsSummary-BKDZRj8q.js} +8 -8
  78. package/dist/assets/InsightsSummary-legacy-e5z3TegQ.js +225 -0
  79. package/dist/assets/{InsightsTableWorkflows-TAIASHgR.js → InsightsTableWorkflows-BNelOen0.js} +16 -16
  80. package/dist/assets/InsightsTableWorkflows-legacy-BDjUKHj8.js +269 -0
  81. package/dist/assets/{ItemsRenderer-CDnrNwFM.js → ItemsRenderer-DG_0Q-Gb.js} +8 -8
  82. package/dist/assets/ItemsRenderer-legacy-BcFXv3rI.js +1178 -0
  83. package/dist/assets/{KeyboardShortcutTooltip-y1pBqAge.js → KeyboardShortcutTooltip-BYhbaXL9.js} +1 -1
  84. package/dist/assets/KeyboardShortcutTooltip-legacy-DFhofumE.js +81 -0
  85. package/dist/assets/LogsPanel-Cr7P14px.js +57 -0
  86. package/dist/assets/{LogsPanel-DjqKF4Sg.js → LogsPanel-abfXyH7Y.js} +28 -30
  87. package/dist/assets/LogsPanel-legacy-BjPVIpZg.js +2951 -0
  88. package/dist/assets/LogsPanel-legacy-BjVvE6Y0.js +16 -0
  89. package/dist/assets/{MainHeader-BSUhbWAN.js → MainHeader-CsSHhx5_.js} +241 -65
  90. package/dist/assets/{MainHeader-Dz9UViYg.css → MainHeader-Csdi9iXJ.css} +177 -29
  91. package/dist/assets/MainHeader-legacy-CvmcTj8J.js +2193 -0
  92. package/dist/assets/MainSidebar-legacy-YxLN5JqH.js +1306 -0
  93. package/dist/assets/{MainSidebar-DIKtZSUX.js → MainSidebar-rOTUtkBP.js} +26 -26
  94. package/dist/assets/{MainSidebarUserArea-UHX8ACa4.js → MainSidebarUserArea-BJPw39X0.js} +5 -5
  95. package/dist/assets/MainSidebarUserArea-legacy-D6AOIGgS.js +172 -0
  96. package/dist/assets/{Modal-DwutFKNY.js → Modal-DCqr4mja.js} +5 -5
  97. package/dist/assets/Modal-legacy-JHEaiPBD.js +265 -0
  98. package/dist/assets/ModalDrawer-legacy-BJmqm_oA.js +308 -0
  99. package/dist/assets/{ModalDrawer-B2sNzJVm.js → ModalDrawer-tIdfksn8.js} +6 -6
  100. package/dist/assets/{NDVEmptyState-DdpBamQ9.js → NDVEmptyState-BHecevNV.js} +1 -1
  101. package/dist/assets/NDVEmptyState-legacy-MP5RoBw5.js +19819 -0
  102. package/dist/assets/{NodeCreation-C1Hw9qFl.js → NodeCreation-D55e03Og.js} +46 -46
  103. package/dist/assets/NodeCreation-legacy-C2W0brGN.js +273 -0
  104. package/dist/assets/NodeCreator-legacy-CTnRoQSx.js +1670 -0
  105. package/dist/assets/{NodeCreator-ZjTzj0ie.js → NodeCreator-s6kndVrv.js} +31 -31
  106. package/dist/assets/{NodeDetailsView-CvvoyhiW.js → NodeDetailsView-Bob_UNcq.js} +64 -64
  107. package/dist/assets/NodeDetailsView-legacy-DDTRIVzE.js +1116 -0
  108. package/dist/assets/{NodeDetailsViewV2-yMKVDJ3k.js → NodeDetailsViewV2-B9XEZfhu.js} +65 -65
  109. package/dist/assets/NodeDetailsViewV2-legacy-CK4dIDeL.js +1060 -0
  110. package/dist/assets/{NodeIcon-C-rkj6sB.js → NodeIcon-lOuyYMGN.js} +2 -2
  111. package/dist/assets/NodeIcon-legacy-DG2J9mhW.js +127 -0
  112. package/dist/assets/{NodeSettings-Dr-l_1nO.js → NodeSettings-B_ICqwDQ.js} +19 -19
  113. package/dist/assets/NodeSettings-legacy-CF2CaCzs.js +2811 -0
  114. package/dist/assets/NodeView-legacy-BMkGVdkr.js +2660 -0
  115. package/dist/assets/{NodeView-DUcpE7do.js → NodeView-ph9FnUki.js} +69 -69
  116. package/dist/assets/{SettingsProvisioningView-Dhfda99J.css → OAuthConsentView-CXZbBKS5.css} +74 -32
  117. package/dist/assets/OAuthConsentView-CtUbmPEv.js +225 -0
  118. package/dist/assets/OAuthConsentView-legacy-V4pqsJpk.js +292 -0
  119. package/dist/assets/PageViewLayout-legacy-B1As2gDz.js +44 -0
  120. package/dist/assets/{ParameterInputList-BzN5Xx73.js → ParameterInputList-CVOMMAVC.js} +29 -29
  121. package/dist/assets/ParameterInputList-legacy-D0lnTah6.js +38124 -0
  122. package/dist/assets/{PrebuiltAgentTemplatesView-BTy_QfVt.js → PrebuiltAgentTemplatesView-C66v0Rfw.js} +18 -18
  123. package/dist/assets/PrebuiltAgentTemplatesView-legacy-no2dr8dA.js +205 -0
  124. package/dist/assets/{ProjectBreadcrumb-scGlGqYf.js → ProjectBreadcrumb-CVitESde.js} +4 -4
  125. package/dist/assets/ProjectBreadcrumb-legacy-DuIjFcuf.js +140 -0
  126. package/dist/assets/{ProjectCardBadge-p4AY0ubu.js → ProjectCardBadge-RcG3IuSv.js} +5 -5
  127. package/dist/assets/ProjectCardBadge-legacy-Ckl-RNYt.js +251 -0
  128. package/dist/assets/{ProjectHeader-BZeiGuD6.js → ProjectHeader-BTxr_uZx.js} +12 -11
  129. package/dist/assets/ProjectHeader-legacy-CpJwWF0C.js +710 -0
  130. package/dist/assets/{ProjectIcon-DqKjDNbR.js → ProjectIcon-CfC5ZMJ_.js} +1 -1
  131. package/dist/assets/ProjectIcon-legacy-CCWF7GdT.js +109 -0
  132. package/dist/assets/{ProjectRoleView-ByzrSQP-.js → ProjectRoleView-CRCohRyJ.js} +16 -16
  133. package/dist/assets/ProjectRoleView-legacy-B73c7qRW.js +469 -0
  134. package/dist/assets/{ProjectRolesView-DclD8eEm.js → ProjectRolesView-BqZGQgVw.js} +19 -19
  135. package/dist/assets/ProjectRolesView-legacy-dTN29nao.js +316 -0
  136. package/dist/assets/{ProjectSettings-4wa93sE4.js → ProjectSettings-C29Ztobq.js} +26 -26
  137. package/dist/assets/ProjectSettings-legacy-B5WM8UM_.js +1069 -0
  138. package/dist/assets/{ProjectSharing-BVPUxo_M.js → ProjectSharing-DUdqsKIb.js} +5 -5
  139. package/dist/assets/ProjectSharing-legacy-DAHRQcVy.js +307 -0
  140. package/dist/assets/{ProjectVariables-x9spBaqX.js → ProjectVariables-k94KpZjl.js} +34 -34
  141. package/dist/assets/ProjectVariables-legacy-BtPtS2zC.js +572 -0
  142. package/dist/assets/{PushConnectionTracker-DYamPLyc.js → PushConnectionTracker-BRETfc_U.js} +3 -3
  143. package/dist/assets/PushConnectionTracker-legacy-C4k814hh.js +65 -0
  144. package/dist/assets/{ResourcesListLayout-UXbxK1S7.js → ResourcesListLayout-CgQqKl0f.js} +10 -10
  145. package/dist/assets/ResourcesListLayout-legacy-BLQXYEmh.js +938 -0
  146. package/dist/assets/RunDataHtml-B1O-g3bi.js +7 -0
  147. package/dist/assets/{RunDataHtml-DdtrEw19.js → RunDataHtml-BNcvZDMJ.js} +1 -1
  148. package/dist/assets/RunDataHtml-legacy-DopSvQCJ.js +63 -0
  149. package/dist/assets/RunDataHtml-legacy-h0qPMlWv.js +16 -0
  150. package/dist/assets/{RunDataJson-CxLotBq-.js → RunDataJson-CVLzOWUM.js} +14 -17
  151. package/dist/assets/RunDataJson-legacy-dGOOBvFu.js +253 -0
  152. package/dist/assets/{RunDataJsonActions-qylVa2u8.js → RunDataJsonActions-T_9PWIUO.js} +15 -15
  153. package/dist/assets/RunDataJsonActions-legacy-bMw-SnSs.js +5126 -0
  154. package/dist/assets/{RunDataParsedAiContent-Cs80jq_q.js → RunDataParsedAiContent-BTi5LXv5.js} +7 -7
  155. package/dist/assets/RunDataParsedAiContent-lLVWzL_j.js +25 -0
  156. package/dist/assets/RunDataParsedAiContent-legacy-BP9-BZ9y.js +234 -0
  157. package/dist/assets/RunDataParsedAiContent-legacy-Be3V5vPH.js +16 -0
  158. package/dist/assets/{RunDataSearch-BvoYWH8W.js → RunDataSearch-CfgrUp1Q.js} +10 -10
  159. package/dist/assets/RunDataSearch-legacy-Gct_MnP9.js +194 -0
  160. package/dist/assets/{RunDataTable-d3eXUdSg.js → RunDataTable-gBcLds6g.js} +16 -16
  161. package/dist/assets/RunDataTable-legacy-C3okH-2I.js +724 -0
  162. package/dist/assets/{SamlOnboarding-CRtDDWqf.js → SamlOnboarding-B9GmsTCa.js} +15 -15
  163. package/dist/assets/SamlOnboarding-legacy-DOsu-pYe.js +92 -0
  164. package/dist/assets/{SaveButton-D1iDaopV.js → SaveButton-DMlAg6iF.js} +3 -3
  165. package/dist/assets/SaveButton-legacy-D7IEJ_Eb.js +123 -0
  166. package/dist/assets/{SelectedItemsInfo-CSzniBOD.js → SelectedItemsInfo-BxomzONZ.js} +2 -2
  167. package/dist/assets/SelectedItemsInfo-legacy-Df4orSkP.js +95 -0
  168. package/dist/assets/{SettingsApiView-DqnHEaAj.js → SettingsApiView-C2JaCEY4.js} +20 -20
  169. package/dist/assets/SettingsApiView-legacy-C6d8TfWr.js +409 -0
  170. package/dist/assets/{SettingsCommunityNodesView-BzheuUxN.js → SettingsCommunityNodesView-_kOJvcAb.js} +34 -34
  171. package/dist/assets/SettingsCommunityNodesView-legacy-DWWeuTG5.js +443 -0
  172. package/dist/assets/{SettingsExternalSecrets-CqTHs6zk.js → SettingsExternalSecrets-C99m8ABz.js} +18 -18
  173. package/dist/assets/SettingsExternalSecrets-legacy-BzZ4XIFG.js +315 -0
  174. package/dist/assets/{SettingsLdapView-zifHhZKy.js → SettingsLdapView-C9WjBc7I.js} +21 -21
  175. package/dist/assets/SettingsLdapView-legacy-_AcWgHUq.js +2246 -0
  176. package/dist/assets/{SettingsLogStreamingView-CQwuqSl8.js → SettingsLogStreamingView-DHsRuyjZ.js} +20 -20
  177. package/dist/assets/SettingsLogStreamingView-legacy-tDLLJ44w.js +479 -0
  178. package/dist/assets/SettingsMCPView-51n0OMXD.js +936 -0
  179. package/dist/assets/SettingsMCPView-BGXq9o_x.css +1248 -0
  180. package/dist/assets/SettingsMCPView-legacy-i3kndEib.js +1111 -0
  181. package/dist/assets/{SettingsPersonalView-C1NF8zuk.js → SettingsPersonalView-D446WlNq.js} +16 -16
  182. package/dist/assets/SettingsPersonalView-legacy-BIKKlcFP.js +484 -0
  183. package/dist/assets/SettingsProvisioningView-C4D0a4Kz.css +303 -0
  184. package/dist/assets/SettingsProvisioningView-CMxF-qBt.js +448 -0
  185. package/dist/assets/SettingsProvisioningView-legacy-Dgc-3R2G.js +530 -0
  186. package/dist/assets/{SettingsSourceControl-CZryQCqT.js → SettingsSourceControl-CdGLap-v.js} +20 -20
  187. package/dist/assets/SettingsSourceControl-legacy-CRO9lIt0.js +580 -0
  188. package/dist/assets/{SettingsSso-CeeFO_Pv.js → SettingsSso-CRUwWu73.js} +21 -21
  189. package/dist/assets/SettingsSso-legacy-pdNyjmak.js +507 -0
  190. package/dist/assets/{SettingsUsageAndPlan-M1DF8QfE.js → SettingsUsageAndPlan-B6x8zZXr.js} +24 -24
  191. package/dist/assets/{SettingsUsageAndPlan-DLcBOCSU.css → SettingsUsageAndPlan-DcH3fsn1.css} +3 -3
  192. package/dist/assets/SettingsUsageAndPlan-legacy-DFV0qoLH.js +505 -0
  193. package/dist/assets/{SettingsUsersView-DWVyE4hY.js → SettingsUsersView-Dsbnghnu.js} +21 -21
  194. package/dist/assets/SettingsUsersView-legacy-u0Fwqh1l.js +931 -0
  195. package/dist/assets/{SettingsView-trF6L-tM.js → SettingsView-cK0an9QH.js} +13 -12
  196. package/dist/assets/SettingsView-legacy-4r_N7Sjz.js +346 -0
  197. package/dist/assets/{SetupTemplateFormStep-BsgzR5CN.js → SetupTemplateFormStep-0WNtoZGl.js} +6 -6
  198. package/dist/assets/SetupTemplateFormStep-legacy-OcWvmzbf.js +548 -0
  199. package/dist/assets/{SetupView-Bx4ZLcja.js → SetupView-BLVZ5AeU.js} +15 -15
  200. package/dist/assets/SetupView-legacy-CRn9XSyo.js +126 -0
  201. package/dist/assets/{SetupWorkflowCredentialsButton-DR_aufFd.js → SetupWorkflowCredentialsButton-C0LFoT-P.js} +12 -12
  202. package/dist/assets/SetupWorkflowCredentialsButton-legacy-QokrFtZ-.js +84 -0
  203. package/dist/assets/{SetupWorkflowFromTemplateView-Ded77Ph-.js → SetupWorkflowFromTemplateView-B9OOt2hJ.js} +21 -21
  204. package/dist/assets/SetupWorkflowFromTemplateView-legacy-CaJODj15.js +376 -0
  205. package/dist/assets/{SigninView-DXPofyPm.js → SigninView-BpvLJPl1.js} +16 -16
  206. package/dist/assets/SigninView-legacy-DvW5NQXx.js +441 -0
  207. package/dist/assets/{SignoutView-B7H_dRJO.js → SignoutView-BWZuW4X2.js} +10 -10
  208. package/dist/assets/SignoutView-legacy-Clx351-m.js +56 -0
  209. package/dist/assets/{SignupView-BHWVvwh8.js → SignupView-Bf89NmFx.js} +15 -15
  210. package/dist/assets/SignupView-legacy-y9mI7y_i.js +154 -0
  211. package/dist/assets/{TagsDropdown-D6CYk5R8.js → TagsDropdown-BGeOVful.js} +4 -4
  212. package/dist/assets/TagsDropdown-legacy-C4hvzF0m.js +285 -0
  213. package/dist/assets/{TemplateDetails-ezK9JOOl.js → TemplateDetails-B6qqstGY.js} +7 -7
  214. package/dist/assets/TemplateDetails-legacy-DJ5AmpDn.js +197 -0
  215. package/dist/assets/{TemplateList-DztR2yKa.js → TemplateList-BGEW-ffb.js} +5 -5
  216. package/dist/assets/TemplateList-legacy-DK9daXlW.js +411 -0
  217. package/dist/assets/{TemplatesCollectionView-Bu_YRd84.js → TemplatesCollectionView-CotElubt.js} +23 -23
  218. package/dist/assets/TemplatesCollectionView-legacy-BLpP7qpC.js +248 -0
  219. package/dist/assets/{TemplatesSearchView-C7zBEV2b.js → TemplatesSearchView-CF_JB0Nl.js} +21 -21
  220. package/dist/assets/TemplatesSearchView-legacy-D5-BrZSe.js +1427 -0
  221. package/dist/assets/{TemplatesView-BnozPkTX.js → TemplatesView-KjV1fZuK.js} +3 -3
  222. package/dist/assets/TemplatesView-legacy-BR7FfPHI.js +113 -0
  223. package/dist/assets/{TemplatesWorkflowView-BTyHc3MG.js → TemplatesWorkflowView-D3dhsGtS.js} +25 -25
  224. package/dist/assets/TemplatesWorkflowView-legacy-BwhS7Lp6.js +220 -0
  225. package/dist/assets/{TestRunDetailView-B76TM9u8.js → TestRunDetailView-CwCkkxlL.js} +18 -18
  226. package/dist/assets/TestRunDetailView-legacy-B8xeQdn3.js +500 -0
  227. package/dist/assets/TextWithHighlights-legacy-CVW5NpX4.js +108 -0
  228. package/dist/assets/{TimeAgo-Gv5h1Utx.js → TimeAgo-CxNgd8gh.js} +2 -2
  229. package/dist/assets/TimeAgo-legacy-C6dJd_gm.js +200 -0
  230. package/dist/assets/{TriggerPanel-BD9WuZSq.js → TriggerPanel-BGFaLV08.js} +80 -28
  231. package/dist/assets/{TriggerPanel-BQveVt6Q.css → TriggerPanel-jKx3Ut66.css} +31 -10
  232. package/dist/assets/TriggerPanel-legacy-B2UgkRPw.js +1519 -0
  233. package/dist/assets/VirtualSchema-BANmgn2J.js +43 -0
  234. package/dist/assets/{VirtualSchema-BwIrkOUg.js → VirtualSchema-CQeMCJz2.js} +16 -16
  235. package/dist/assets/VirtualSchema-legacy-DgLao-iv.js +16 -0
  236. package/dist/assets/VirtualSchema-legacy-DxxDcdpp.js +2655 -0
  237. package/dist/assets/{VueMarkdown-CiR4a0gO.js → VueMarkdown-BVDHDwjC.js} +1 -1
  238. package/dist/assets/VueMarkdown-legacy-C7HrPz2N.js +50 -0
  239. package/dist/assets/{WorkerView-DNyW9R8a.js → WorkerView-DaMext16.js} +39 -39
  240. package/dist/assets/WorkerView-legacy-BHcVajFe.js +636 -0
  241. package/dist/assets/{WorkflowActivator-k3HTYXbc.js → WorkflowActivator-B_HRrCra.js} +8 -8
  242. package/dist/assets/WorkflowActivator-legacy-DwUgfsYm.js +473 -0
  243. package/dist/assets/{WorkflowExecutionsInfoAccordion-DL5cBkbK.js → WorkflowExecutionsInfoAccordion-B9s5Q7yu.js} +7 -7
  244. package/dist/assets/WorkflowExecutionsInfoAccordion-legacy-BP2sx7KH.js +226 -0
  245. package/dist/assets/WorkflowExecutionsLandingPage-legacy-Bc8Pv97E.js +136 -0
  246. package/dist/assets/{WorkflowExecutionsLandingPage-DlXz9Jry.js → WorkflowExecutionsLandingPage-q-oTzfKu.js} +21 -21
  247. package/dist/assets/{WorkflowExecutionsPreview-DJWD2i74.js → WorkflowExecutionsPreview-LAeONz_V.js} +25 -25
  248. package/dist/assets/WorkflowExecutionsPreview-legacy-DYnU2VEN.js +745 -0
  249. package/dist/assets/{WorkflowExecutionsView-4l7hfPcb.js → WorkflowExecutionsView-CfFjhYz4.js} +38 -38
  250. package/dist/assets/WorkflowExecutionsView-legacy-DKAzbr8n.js +880 -0
  251. package/dist/assets/WorkflowHistory-legacy-Csdiq5NP.js +881 -0
  252. package/dist/assets/{WorkflowHistory-Cb-ZoRBp.js → WorkflowHistory-n0uzAdZE.js} +19 -19
  253. package/dist/assets/{WorkflowOnboardingView-CguOMlib.js → WorkflowOnboardingView-CHSk719X.js} +9 -9
  254. package/dist/assets/WorkflowOnboardingView-legacy-B9zP9lMz.js +95 -0
  255. package/dist/assets/{WorkflowPreview-DY79uYFw.js → WorkflowPreview-BRS-DBzm.js} +5 -5
  256. package/dist/assets/WorkflowPreview-legacy-DA2H3NgE.js +249 -0
  257. package/dist/assets/{WorkflowTagsDropdown-CdEFZM1A.js → WorkflowTagsDropdown-CxVnfj8H.js} +2 -2
  258. package/dist/assets/WorkflowTagsDropdown-legacy-DHfnvOJY.js +90 -0
  259. package/dist/assets/{WorkflowsView-DIavWNuQ.js → WorkflowsView-CypeB-OF.js} +98 -80
  260. package/dist/assets/{WorkflowsView-2XTsT7zB.css → WorkflowsView-M8ExG7Q2.css} +22 -19
  261. package/dist/assets/WorkflowsView-legacy-DMyidvQo.js +3521 -0
  262. package/dist/assets/{_MapCache-Byd-DTfo.js → _MapCache-Y29RpBXS.js} +50 -10
  263. package/dist/assets/_MapCache-legacy-GeIax_zP.js +11061 -0
  264. package/dist/assets/_plugin-vue_export-helper-legacy-DZMI5HPp.js +19 -0
  265. package/dist/assets/apiKeys.store-legacy-CpmQpacT.js +76 -0
  266. package/dist/assets/{apiKeys.store-CPsBJKkq.js → apiKeys.store-uglU3Z3p.js} +1 -1
  267. package/dist/assets/{assistant.store-DvuxtpS4.js → assistant.store-CxWBk3OU.js} +6 -6
  268. package/dist/assets/assistant.store-legacy-BM5rx1Eo.js +1313 -0
  269. package/dist/assets/{auth.eventBus-YsWbuB84.js → auth.eventBus-6li5BYVU.js} +1 -1
  270. package/dist/assets/auth.eventBus-legacy-BMxxHZ6c.js +22 -0
  271. package/dist/assets/{banners.store-BQPwuqhn.js → banners.store-DtwO0jVD.js} +3 -3
  272. package/dist/assets/banners.store-legacy-CpyAILCk.js +260 -0
  273. package/dist/assets/buttons.esm-legacy-BLrJSt1Z.js +419 -0
  274. package/dist/assets/chart-legacy-DbW-cf8m.js +12055 -0
  275. package/dist/assets/{chartjs.utils-Bf07Y-P-.js → chartjs.utils-BCpB09lQ.js} +3 -3
  276. package/dist/assets/chartjs.utils-legacy-DkVdV-lK.js +208 -0
  277. package/dist/assets/{chatPanel.store-fM-8PK9i.js → chatPanel.store-CB1RbrcJ.js} +4 -4
  278. package/dist/assets/chatPanel.store-legacy-BKAXbpla.js +153 -0
  279. package/dist/assets/chunk-legacy-Re9CbdfL.js +59 -0
  280. package/dist/assets/cloudPlan.store-legacy-BpTKyznI.js +208 -0
  281. package/dist/assets/{cloudPlan.store-DrraBpZJ.js → cloudPlan.store-oTKMV1Bw.js} +2 -2
  282. package/dist/assets/{col-DK_GtMhM.js → col-dYShDiWC.js} +3 -3
  283. package/dist/assets/col-legacy-BmizH2a4.js +186 -0
  284. package/dist/assets/{constants-DvlTm3U4.js → constants-COt-IPHd.js} +362 -356
  285. package/dist/assets/constants-legacy-D22nGw-a.js +26 -0
  286. package/dist/assets/constants-legacy-DiqA0Pu_.js +61343 -0
  287. package/dist/assets/{core-6lPsS9S5.js → core-CH2Kku_3.js} +1 -1
  288. package/dist/assets/core-legacy-BVoFM47F.js +1857 -0
  289. package/dist/assets/core-legacy-De470jmW.js +20 -0
  290. package/dist/assets/{dataTable.store-u9fGWest.js → dataTable.store-DIXUyEMT.js} +2 -2
  291. package/dist/assets/dataTable.store-legacy-CmwyMqOI.js +199 -0
  292. package/dist/assets/{date-picker-CVSd-BRt.js → date-picker-CTXxgDjF.js} +3 -3
  293. package/dist/assets/date-picker-legacy-igcU0G4D.js +4508 -0
  294. package/dist/assets/{dateFormatter-BD73Za8B.js → dateFormatter-DICwd3T9.js} +1 -1
  295. package/dist/assets/dateFormatter-legacy-DQcBot5g.js +53 -0
  296. package/dist/assets/dateformat-legacy-Xt1X-tys.js +161 -0
  297. package/dist/assets/{dialog-BMoy5MDa.js → dialog-B4B-qXLz.js} +4 -4
  298. package/dist/assets/dialog-legacy-CqQ_Lwls.js +518 -0
  299. package/dist/assets/{dist-CWw8iddm.js → dist-D33xoYUY.js} +1 -1
  300. package/dist/assets/dist-legacy-8f5owWm6.js +204 -0
  301. package/dist/assets/{empty-BuGRxzl4.js → empty-RTEMfF4N.js} +1 -1
  302. package/dist/assets/empty-legacy-DnVUoqbC.js +2409 -0
  303. package/dist/assets/en-legacy-Bgme8Vbm.js +98 -0
  304. package/dist/assets/en-legacy-BwVJMmMW.js +16 -0
  305. package/dist/assets/{es-BazDU8Wd.js → es-Cjns9o4Y.js} +1 -1
  306. package/dist/assets/es-legacy-8dRs2C3P.js +16006 -0
  307. package/dist/assets/{evaluation.constants-CIiAC2dT.js → evaluation.constants-CCdKPNue.js} +3 -3
  308. package/dist/assets/evaluation.constants-legacy-Cb1ghpxc.js +363 -0
  309. package/dist/assets/{executions.store-IU9p1s46.js → executions.store-CLBytlL8.js} +1 -1
  310. package/dist/assets/executions.store-legacy-b_Dcfsqp.js +246 -0
  311. package/dist/assets/exports-legacy-RTRnyI4R.js +3103 -0
  312. package/dist/assets/{externalSecrets.ee.store-1z63wMHN.js → externalSecrets.ee.store-DSLmsq-8.js} +2 -2
  313. package/dist/assets/externalSecrets.ee.store-legacy-DaQgDltD.js +145 -0
  314. package/dist/assets/{focusPanel.store-BJpwjMIG.js → focusPanel.store-DX5ouusK.js} +4 -4
  315. package/dist/assets/focusPanel.store-legacy-DwBTeIg0.js +264 -0
  316. package/dist/assets/{folders.store-Db975T-w.js → folders.store-ReN2UdkF.js} +2 -2
  317. package/dist/assets/folders.store-legacy-DpbE1pFn.js +267 -0
  318. package/dist/assets/{icon-DhADuA9N.js → icon-OKik-N-d.js} +1 -1
  319. package/dist/assets/icon-legacy-CdX_ytdJ.js +458 -0
  320. package/dist/assets/{index-C8erHZ_Y.css → index-4I6DPmNr.css} +1 -1
  321. package/dist/assets/{index-Dqdzxupj.js → index-BN-GABJS.js} +212 -1623
  322. package/dist/assets/index-legacy-Bah3XJ83.js +28424 -0
  323. package/dist/assets/insights.constants-legacy-D5Y8YhR_.js +64 -0
  324. package/dist/assets/{insights.store-DC_enAA-.js → insights.store-Bb-LzcON.js} +4 -4
  325. package/dist/assets/insights.store-legacy-CVTSLRio.js +89 -0
  326. package/dist/assets/{insights.utils-ClJRVRAK.js → insights.utils-CxISkct3.js} +8 -8
  327. package/dist/assets/insights.utils-legacy-Cmg92kBM.js +96 -0
  328. package/dist/assets/isEmpty-legacy-MFqoebb1.js +43393 -0
  329. package/dist/assets/{isEmpty-BLwDER56.js → isEmpty-wmU6JYi-.js} +30 -31
  330. package/dist/assets/{languageModules-CNluY7w0.js → languageModules-BF7Ga1Pj.js} +1 -1
  331. package/dist/assets/languageModules-legacy-BaU1eOK3.js +7184 -0
  332. package/dist/assets/{logStreaming.store-CPvxjcQB.js → logStreaming.store-Fc_T_-nj.js} +1 -1
  333. package/dist/assets/logStreaming.store-legacy-DWvVitNv.js +209 -0
  334. package/dist/assets/mcp.constants-BCNosk1p.js +5 -0
  335. package/dist/assets/mcp.constants-legacy-CZfk8DW2.js +18 -0
  336. package/dist/assets/{mcp.store-YGfe2oZU.js → mcp.store-C8IcP4Ke.js} +23 -3
  337. package/dist/assets/mcp.store-legacy-DdS8xt5B.js +125 -0
  338. package/dist/assets/{merge-CKEa8BM2.js → merge-B2-guEpy.js} +1 -1
  339. package/dist/assets/merge-legacy-qdjRv-L4.js +1529 -0
  340. package/dist/assets/{nodeCreator.store-Cxxl141g.js → nodeCreator.store-D147rfwl.js} +1775 -1775
  341. package/dist/assets/nodeCreator.store-legacy-DTmylsCF.js +4758 -0
  342. package/dist/assets/{nodeIcon-ry_JIpAT.js → nodeIcon-C5u0jQvj.js} +2 -2
  343. package/dist/assets/nodeIcon-legacy-BV5Z8WOV.js +122 -0
  344. package/dist/assets/{nodeTransforms-PeZUYiCs.js → nodeTransforms-DUsdQQqR.js} +2 -2
  345. package/dist/assets/nodeTransforms-legacy-CuPizwtt.js +86 -0
  346. package/dist/assets/{npsSurvey.store-BTpA4Bdf.js → npsSurvey.store-afUgQwnO.js} +2 -2
  347. package/dist/assets/npsSurvey.store-legacy-BbzLkX9z.js +123 -0
  348. package/dist/assets/{orderBy-CMVxNao4.js → orderBy-HPnqXwF2.js} +2 -2
  349. package/dist/assets/orderBy-legacy-soMIYLFU.js +63 -0
  350. package/dist/assets/{overlay-B8MMvNgs.js → overlay-DZyfhUVh.js} +2 -2
  351. package/dist/assets/overlay-legacy-CIUzKIyX.js +218 -0
  352. package/dist/assets/{path-browserify-DsmB_HMK.js → path-browserify-CTmc1OxV.js} +1 -1
  353. package/dist/assets/path-browserify-legacy-DJbEMZcd.js +328 -0
  354. package/dist/assets/{personalizedTemplatesV3.store-C0D2WZuq.js → personalizedTemplatesV3.store-01UVhq2y.js} +4 -4
  355. package/dist/assets/personalizedTemplatesV3.store-legacy-ZhQVYOUB.js +313 -0
  356. package/dist/assets/{pickBy-DWZbVA0W.js → pickBy-CknAbwMC.js} +2 -2
  357. package/dist/assets/pickBy-legacy-BBHSGJRx.js +59 -0
  358. package/dist/assets/polyfills-legacy-B4O_IIb-.js +4836 -0
  359. package/dist/assets/preload-helper-legacy-CXRjoQ0T.js +73 -0
  360. package/dist/assets/{radio-5XOrKEP7.js → radio-CYQWX3C9.js} +3 -3
  361. package/dist/assets/radio-legacy-cLdtGPV3.js +323 -0
  362. package/dist/assets/{readyToRunWorkflows.store-C23cIyhu.js → readyToRunWorkflows.store-B8_GmfI4.js} +5 -5
  363. package/dist/assets/readyToRunWorkflows.store-legacy-aejFCZX5.js +2086 -0
  364. package/dist/assets/{readyToRunWorkflowsV2.store-BxZUJyXQ.js → readyToRunWorkflowsV2.store-CuI-qJ95.js} +7 -7
  365. package/dist/assets/readyToRunWorkflowsV2.store-legacy-B_dd69MT.js +549 -0
  366. package/dist/assets/retry-legacy-CkXCWkMV.js +48 -0
  367. package/dist/assets/{roles.store-Bk6Eo7y8.js → roles.store-XKf-4ViI.js} +2 -2
  368. package/dist/assets/roles.store-legacy-Kp040fXj.js +67 -0
  369. package/dist/assets/{router-CSYdJor8.js → router-D93aC8Os.js} +93 -84
  370. package/dist/assets/router-legacy-FVND-nAr.js +1705 -0
  371. package/dist/assets/{sanitize-html-BuXr7o4T.js → sanitize-html-Cfxibw1n.js} +2 -2
  372. package/dist/assets/sanitize-html-legacy-DfOUEbdf.js +9987 -0
  373. package/dist/assets/{schemaPreview.store-BVhugjbw.js → schemaPreview.store-CpV1sUpD.js} +2 -2
  374. package/dist/assets/schemaPreview.store-legacy-CVGvdvdr.js +153 -0
  375. package/dist/assets/{semver-lN9oCZPq.js → semver-Did-vdFS.js} +2 -2
  376. package/dist/assets/semver-legacy-Bddl7qjT.js +1499 -0
  377. package/dist/assets/smartDecimal-legacy-BeOdMR2z.js +19 -0
  378. package/dist/assets/sortByProperty-legacy-CgPLoqtk.js +21 -0
  379. package/dist/assets/{sourceControl.eventBus-BkPwCZw_.js → sourceControl.eventBus-N8j1xdTf.js} +1 -1
  380. package/dist/assets/sourceControl.eventBus-legacy-eIVV95jW.js +17 -0
  381. package/dist/assets/{src-D6S9Khji.js → src-FybnR12q.js} +648 -600
  382. package/dist/assets/src-legacy-CpFWWEWr.js +64208 -0
  383. package/dist/assets/{sso.store-qzj82Xj4.js → sso.store-BBQEezoi.js} +1 -1
  384. package/dist/assets/sso.store-legacy-BAxqS36V.js +185 -0
  385. package/dist/assets/{table-s-zqHExs.js → table-B__ElSXJ.js} +3 -3
  386. package/dist/assets/table-legacy-BfKy4v-Q.js +4957 -0
  387. package/dist/assets/{templateActions-BeIpzgaa.js → templateActions-DgyOHFG1.js} +4 -4
  388. package/dist/assets/templateActions-legacy-P4q_vvOZ.js +134 -0
  389. package/dist/assets/{templateTransforms-Cgy40V1P.js → templateTransforms-BcdsUZmX.js} +1 -1
  390. package/dist/assets/templateTransforms-legacy-Cam0KIvq.js +84 -0
  391. package/dist/assets/{templates.store-COjIpQaS.js → templates.store-BFnRGJH7.js} +3 -3
  392. package/dist/assets/templates.store-legacy-ofk_8E3C.js +459 -0
  393. package/dist/assets/truncate-legacy-B1qmzcuB.js +5763 -0
  394. package/dist/assets/{truncate-DGRsht-H.js → truncate-mIB0DVrK.js} +1 -1
  395. package/dist/assets/{uniqBy-BUNHbbw3.js → uniqBy-BruAENgo.js} +1 -1
  396. package/dist/assets/uniqBy-legacy-Zm0uD9jw.js +52 -0
  397. package/dist/assets/{usage.store-EBmhHKPv.js → usage.store-l7Do-93n.js} +1 -1
  398. package/dist/assets/usage.store-legacy-DQDWAXO_.js +126 -0
  399. package/dist/assets/{useActions-BATfRxpg.js → useActions-CrswNkaq.js} +5 -5
  400. package/dist/assets/useActions-legacy-CbWvUxft.js +330 -0
  401. package/dist/assets/{useAgent-BHJHCfap.js → useAgent-C-QepMEq.js} +1 -1
  402. package/dist/assets/useAgent-legacy-USOKw7So.js +28 -0
  403. package/dist/assets/{useBeforeUnload-BPhnlPrH.js → useBeforeUnload-Wtg7mRCZ.js} +3 -3
  404. package/dist/assets/useBeforeUnload-legacy-uZWtAsqr.js +69 -0
  405. package/dist/assets/{useBugReporting-oDEHgPM1.js → useBugReporting-9AU3y7Z8.js} +9 -9
  406. package/dist/assets/useBugReporting-legacy-0ADndwuR.js +383 -0
  407. package/dist/assets/{useCanvasMapping-D6tov6XL.js → useCanvasMapping-C7uzjCWC.js} +19 -19
  408. package/dist/assets/useCanvasMapping-legacy-BUdFWQtI.js +14179 -0
  409. package/dist/assets/{useCanvasOperations-DTN9RbNQ.js → useCanvasOperations-DzLHi0LA.js} +13 -13
  410. package/dist/assets/useCanvasOperations-legacy-CuiWyxvs.js +1992 -0
  411. package/dist/assets/{useChatCredentials-CMV_NA0l.js → useChatCredentials-CXFcbFXx.js} +24 -12
  412. package/dist/assets/useChatCredentials-legacy-BMZumVNM.js +717 -0
  413. package/dist/assets/useChatHubSidebarState-legacy-BWvNeC2H.js +733 -0
  414. package/dist/assets/{useChatHubSidebarState-CM9tokIj.js → useChatHubSidebarState-rgjEM3H6.js} +14 -7
  415. package/dist/assets/{useClipboard-fRnZpGbX.js → useClipboard-CfXsW13v.js} +2 -2
  416. package/dist/assets/useClipboard-legacy-C5rVUk4S.js +78 -0
  417. package/dist/assets/{useCommandBar-BqWmMYs4.js → useCommandBar-C1qIX-PQ.js} +29 -25
  418. package/dist/assets/useCommandBar-legacy-RBZZ3P2i.js +2100 -0
  419. package/dist/assets/{useDebounce-BgcdaJ78.js → useDebounce-CETVIuiZ.js} +2 -2
  420. package/dist/assets/useDebounce-legacy-G9H-ixfO.js +326 -0
  421. package/dist/assets/{useExecutionData-Bk540rxU.js → useExecutionData-BVzhcmq6.js} +1 -1
  422. package/dist/assets/useExecutionData-legacy-BGiu76RX.js +42 -0
  423. package/dist/assets/{useExecutionDebugging-BNrxsZTN.js → useExecutionDebugging-Cx7SuR0i.js} +7 -7
  424. package/dist/assets/useExecutionDebugging-legacy-jpoCoaFv.js +152 -0
  425. package/dist/assets/{useExecutionHelpers-DrFWi6u7.js → useExecutionHelpers--Vys-PWr.js} +5 -5
  426. package/dist/assets/useExecutionHelpers-legacy-CE3q6ePz.js +120 -0
  427. package/dist/assets/useExternalHooks-legacy-CtWM2ToU.js +53 -0
  428. package/dist/assets/{useExternalHooks-SxBXYVNW.js → useExternalHooks-q8smeo6K.js} +1 -1
  429. package/dist/assets/{useImportCurlCommand-obipPNWg.js → useImportCurlCommand-BLpnR8N2.js} +11 -11
  430. package/dist/assets/useImportCurlCommand-legacy-DCbH-i63.js +8269 -0
  431. package/dist/assets/useIntersectionObserver-legacy-CQWXa295.js +69 -0
  432. package/dist/assets/{useKeybindings-Ds1QlWW4.js → useKeybindings-CDJKqPsl.js} +4 -4
  433. package/dist/assets/useKeybindings-legacy-B9KbjAsp.js +118 -0
  434. package/dist/assets/{useLogsTreeExpand-BWca4dLp.js → useLogsTreeExpand-BdGrNW1V.js} +11 -11
  435. package/dist/assets/useLogsTreeExpand-legacy-DXkemvCE.js +1039 -0
  436. package/dist/assets/{useMcp-_gyuyL1x.js → useMcp-CZmhzw91.js} +3 -7
  437. package/dist/assets/useMcp-legacy-DvW-r8YQ.js +46 -0
  438. package/dist/assets/{useMessage-Ceo97RRX.js → useMessage-Dtn5nLnt.js} +5 -5
  439. package/dist/assets/useMessage-legacy-DST2kUuY.js +683 -0
  440. package/dist/assets/{usePageRedirectionHelper-C_ctyI4O.js → usePageRedirectionHelper-50R23u-V.js} +4 -4
  441. package/dist/assets/usePageRedirectionHelper-legacy-C-71VW-Y.js +95 -0
  442. package/dist/assets/{usePinnedData-Csij2qN3.js → usePinnedData-DixE-21D.js} +5 -5
  443. package/dist/assets/usePinnedData-legacy-BsjuUA_c.js +283 -0
  444. package/dist/assets/{usePushConnection-30v29qWj.js → usePushConnection-C_hAm9wG.js} +11 -11
  445. package/dist/assets/usePushConnection-legacy-CXZhl2wR.js +763 -0
  446. package/dist/assets/{useRecentResources-BRKdroHL.js → useRecentResources-CKX-UtMk.js} +7 -7
  447. package/dist/assets/useRecentResources-legacy-BXsoflsL.js +159 -0
  448. package/dist/assets/{useRunWorkflow-hT6C_xWD.js → useRunWorkflow-C9HukKMl.js} +9 -9
  449. package/dist/assets/useRunWorkflow-legacy-C7-J9SJI.js +1136 -0
  450. package/dist/assets/{useTelemetry-EOV0Llso.js → useTelemetry-CWnh4Zlh.js} +89 -54
  451. package/dist/assets/useTelemetry-legacy-BDIroahM.js +31004 -0
  452. package/dist/assets/{useTelemetryContext-CSMUQPEW.js → useTelemetryContext-PE8JU_Iv.js} +1 -1
  453. package/dist/assets/useTelemetryContext-legacy-E2rB8GXt.js +81 -0
  454. package/dist/assets/{useToast-BlMNYwds.js → useToast-BxclFB6W.js} +6 -6
  455. package/dist/assets/useToast-legacy-B7FuM_6n.js +610 -0
  456. package/dist/assets/{useWorkflowActivate-OfPMIBJ5.js → useWorkflowActivate-Cmog1_-j.js} +8 -8
  457. package/dist/assets/useWorkflowActivate-legacy-5SOzZU7C.js +125 -0
  458. package/dist/assets/{useWorkflowSaving-CWyt929n.js → useWorkflowSaving-DSJgdRoP.js} +9 -9
  459. package/dist/assets/useWorkflowSaving-legacy-C5sOlXzQ.js +328 -0
  460. package/dist/assets/{useWorkflowsCache-BSXTJC8C.js → useWorkflowsCache-DKCw8FH2.js} +1 -1
  461. package/dist/assets/useWorkflowsCache-legacy-1OAIoSYM.js +217 -0
  462. package/dist/assets/{versions.store-Dx98n6R_.js → versions.store-Dh42EsAx.js} +3 -3
  463. package/dist/assets/versions.store-legacy-DeA4olF0.js +244 -0
  464. package/dist/assets/vue-json-pretty-BAtqAAV1.js +1130 -0
  465. package/dist/assets/vue-json-pretty-legacy-Dk5EQofb.js +1282 -0
  466. package/dist/assets/vue-legacy-Cj7LJTPA.js +4579 -0
  467. package/dist/assets/vue.runtime.esm-bundler-legacy-Bq05oSFs.js +8050 -0
  468. package/dist/assets/xml-legacy-Cyrxa7r6.js +1245 -0
  469. package/dist/index.html +107 -103
  470. package/dist/static/openChat.png +0 -0
  471. package/package.json +1 -1
  472. package/vite.config.mts +0 -2
  473. package/dist/assets/CollectionParameter-C5ROyrxR.js +0 -58
  474. package/dist/assets/DemoFooter-C4xOK61v.js +0 -71
  475. package/dist/assets/LogsPanel-DO45i29S.js +0 -58
  476. package/dist/assets/RunDataHtml-X9lzUZaX.js +0 -7
  477. package/dist/assets/RunDataParsedAiContent-DBP5JHe4.js +0 -25
  478. package/dist/assets/SettingsMCPView-3CpNrA5D.js +0 -584
  479. package/dist/assets/SettingsMCPView-BBO_ZyBU.css +0 -552
  480. package/dist/assets/SettingsProvisioningView-BFUB6c2Z.js +0 -252
  481. package/dist/assets/VirtualSchema-ksNVivg3.js +0 -43
  482. package/dist/assets/vue-json-pretty-BltKoWq2.js +0 -681
  483. /package/dist/assets/{AnimatedSpinner-Dd4F9nQ8.js → AnimatedSpinner-4ie3BOLv.js} +0 -0
  484. /package/dist/assets/{PageViewLayout-Ccqeja5V.js → PageViewLayout-kj_BBPfv.js} +0 -0
  485. /package/dist/assets/{buttons.esm-Euf82NbC.js → buttons.esm-CT4flsfB.js} +0 -0
  486. /package/dist/assets/{chart-BI8B7UPV.js → chart-CE3HWIkr.js} +0 -0
  487. /package/dist/assets/{constants-CPQyU8WO.js → constants-9ReQTHaF.js} +0 -0
  488. /package/dist/assets/{core-CIkXL_1D.js → core-CzunNfUb.js} +0 -0
  489. /package/dist/assets/{insights.constants-NogjFJ3a.js → insights.constants-DK2g3nnD.js} +0 -0
  490. /package/dist/assets/{smartDecimal-5rgLDM96.js → smartDecimal-e9uPsnJa.js} +0 -0
  491. /package/dist/assets/{sortByProperty-0UtqPmvJ.js → sortByProperty-CUhVU03p.js} +0 -0
  492. /package/dist/assets/{useIntersectionObserver-BkAtQAzK.js → useIntersectionObserver-C8Bz3yon.js} +0 -0
  493. /package/dist/assets/{vue-LyXhKoPx.js → vue-RAk0R0Jn.js} +0 -0
  494. /package/dist/assets/{xml-F7krcG3E.js → xml-B_gYdkaU.js} +0 -0
@@ -0,0 +1,2660 @@
1
+ ;
2
+ (function () {
3
+ System.register(["./vue.runtime.esm-bundler-legacy-Bq05oSFs.js", "./_MapCache-legacy-GeIax_zP.js", "./src-legacy-CpFWWEWr.js", "./en-legacy-Bgme8Vbm.js", "./preload-helper-legacy-CXRjoQ0T.js", "./_plugin-vue_export-helper-legacy-DZMI5HPp.js", "./truncate-legacy-B1qmzcuB.js", "./icon-legacy-CdX_ytdJ.js", "./date-picker-legacy-igcU0G4D.js", "./overlay-legacy-CIUzKIyX.js", "./ParameterInputList-legacy-D0lnTah6.js", "./empty-legacy-DnVUoqbC.js", "./useMessage-legacy-DST2kUuY.js", "./col-legacy-BmizH2a4.js", "./dialog-legacy-CqQ_Lwls.js", "./useTelemetry-legacy-BDIroahM.js", "./useToast-legacy-B7FuM_6n.js", "./sanitize-html-legacy-DfOUEbdf.js", "./path-browserify-legacy-DJbEMZcd.js", "./constants-legacy-DiqA0Pu_.js", "./merge-legacy-qdjRv-L4.js", "./assistant.store-legacy-BM5rx1Eo.js", "./dateformat-legacy-Xt1X-tys.js", "./useDebounce-legacy-G9H-ixfO.js", "./useExternalHooks-legacy-CtWM2ToU.js", "./chatPanel.store-legacy-BKAXbpla.js", "./npsSurvey.store-legacy-BbzLkX9z.js", "./cloudPlan.store-legacy-BpTKyznI.js", "./templates.store-legacy-ofk_8E3C.js", "./focusPanel.store-legacy-DwBTeIg0.js", "./useWorkflowSaving-legacy-C5sOlXzQ.js", "./retry-legacy-CkXCWkMV.js", "./executions.store-legacy-b_Dcfsqp.js", "./useRunWorkflow-legacy-C7-J9SJI.js", "./usePinnedData-legacy-BsjuUA_c.js", "./nodeCreator.store-legacy-DTmylsCF.js", "./nodeIcon-legacy-BV5Z8WOV.js", "./useClipboard-legacy-C5rVUk4S.js", "./useCanvasOperations-legacy-CuiWyxvs.js", "./folders.store-legacy-DpbE1pFn.js", "./NodeIcon-legacy-DG2J9mhW.js", "./KeyboardShortcutTooltip-legacy-DFhofumE.js", "./useCanvasMapping-legacy-BUdFWQtI.js", "./versions.store-legacy-DeA4olF0.js", "./usePageRedirectionHelper-legacy-C-71VW-Y.js", "./dataTable.store-legacy-CmwyMqOI.js", "./isEmpty-legacy-MFqoebb1.js", "./NDVEmptyState-legacy-MP5RoBw5.js", "./exports-legacy-RTRnyI4R.js", "./externalSecrets.ee.store-legacy-DaQgDltD.js", "./uniqBy-legacy-Zm0uD9jw.js", "./semver-legacy-Bddl7qjT.js", "./CommunityNodeUpdateInfo-legacy-DS8roZW5.js", "./Draggable-legacy-DrwbjxUV.js", "./VirtualSchema-legacy-DxxDcdpp.js", "./TextWithHighlights-legacy-CVW5NpX4.js", "./useTelemetryContext-legacy-E2rB8GXt.js", "./schemaPreview.store-legacy-CVGvdvdr.js", "./nodeTransforms-legacy-CuPizwtt.js", "./FileSaver.min-legacy-BTN44Z38.js", "./vue-json-pretty-legacy-Dk5EQofb.js", "./RunDataHtml-legacy-DopSvQCJ.js", "./dateFormatter-legacy-DQcBot5g.js", "./useExecutionHelpers-legacy-CE3q6ePz.js", "./NodeSettings-legacy-CF2CaCzs.js", "./useActions-legacy-CbWvUxft.js", "./vue-legacy-Cj7LJTPA.js", "./sourceControl.eventBus-legacy-eIVV95jW.js", "./useKeybindings-legacy-B9KbjAsp.js", "./useBeforeUnload-legacy-uZWtAsqr.js", "./readyToRunWorkflows.store-legacy-aejFCZX5.js", "./useExecutionData-legacy-BGiu76RX.js", "./useExecutionDebugging-legacy-jpoCoaFv.js"], function (_export, _context) {
4
+ "use strict";
5
+
6
+ var computed, createElementBlock, createCommentVNode, nextTick, unref, ref, onBeforeUnmount, onActivated, h, createVNode, defineAsyncComponent, defineComponent, reactive, onUnmounted, toDisplayString, createBlock, toRef, mergeProps, onDeactivated, onMounted, Fragment, normalizeClass, watch, renderSlot, withCtx, useCssModule, openBlock, withModifiers, renderList, createTextVNode, useTemplateRef, provide, onBeforeMount, createBaseVNode, Suspense, normalizeStyle, refThrottled, useActiveElement, useI18n, useThrottleFn, N8nInput_default, N8nCallout_default, N8nText_default, N8nButton_default, N8nInfoTip_default, N8nIconButton_default, CanvasThinkingPill_default, N8nInlineTextEdit_default, N8nKeyboardShortcut_default, useDeviceSupport, N8nRadioButtons_default, N8nResizeWrapper_default, N8nIcon_default, __vitePreload, __plugin_vue_export_helper_default, useRouter, onBeforeRouteLeave, createEventBus, useRoute, ExpressionEditorModalInput_default, CodeNodeEditor_default, JsEditor_default, SqlEditor_default, isValidParameterOption, ParameterOptions_default, getParameterTypeOption, HtmlEditor_default, CssEditor_default, formatAsExpression, useResolvedExpression, useNodeSettingsParameters, parseFromExpression, useMessage, useSettingsStore, getNodesWithNormalizedPosition, useWorkflowState, useHistoryStore, useSourceControlStore, nodeViewEventBus, useProjectsStore, useCredentialsStore, useUIStore, htmlEditorEventBus, getSampleWorkflowByTemplateId, historyBus, useRootStore, injectWorkflowState, CanvasNodeRenderType, useDocumentTitle, useCanvasStore, useVueFlow, isFocusableEl, useTagsStore, useNDVStore, isValueExpression, useEnvironmentsStore, useUsersStore, getBounds, usePostHog, globalLinkActionsEventBus, hasFocusOnInput, useWorkflowsStore, useNodeTypesStore, useTelemetry, getNodeViewTab, useNodeHelpers, useToast, isTriggerNode, WorkflowStateKey, FROM_AI_PARAMETERS_MODAL_KEY, jsonParse, EnterpriseEditionFeature, MANUAL_CHAT_TRIGGER_NODE_TYPE, isResourceLocatorValue, VALID_WORKFLOW_IMPORT_URL_REGEX, MODAL_CONFIRM, NDV_UI_OVERHAUL_EXPERIMENT, CHAT_TRIGGER_NODE_TYPE, DRAG_EVENT_DATA_KEY, getNodeInputs, getResourcePermissions, START_NODE_TYPE, EVALUATION_NODE_TYPE, EVALUATION_TRIGGER_NODE_TYPE, HTML_NODE_TYPE, ABOUT_MODAL_KEY, NODE_CREATOR_OPEN_SOURCES, VIEWS, NEW_WORKFLOW_ID, MAIN_HEADER_TABS, WORKFLOW_SETTINGS_MODAL_KEY, PLACEHOLDER_EMPTY_WORKFLOW_ID, AI_TRANSFORM_NODE_TYPE, getNodeOutputs, ExpressionLocalResolveContextSymbol, STICKY_NODE_TYPE, useBuilderStore, useExternalHooks, useNpsSurveyStore, useFocusPanelStore, useWorkflowSaving, useExecutionsStore, usePushConnectionStore, useAgentRequestStore, useRunWorkflow, useNodeCreatorStore, shouldIgnoreCanvasShortcut, useClipboard, useLogsStore, useExperimentalNdvStore, useParentFolder, canvasEventBus, useCanvasOperations, NodeIcon_default, KeyboardShortcutTooltip_default, ExperimentalCanvasNodeSettings_default, useWorkflowExtraction, Canvas_default, useContextMenuItems, useExpressionResolveCtx, useCanvasMapping, CanvasRunWorkflowButton_default, JsonEditor_default, useExternalSecretsStore, NodeExecuteButton_default, useTelemetryContext, needsAgentInput, sourceControlEventBus, useKeybindings, useBeforeUnload, useAITemplatesStarterCollectionStore, useReadyToRunWorkflowsStore, useExecutionData, useExecutionDebugging, __vite_style__, WorkflowCanvas_vue_vue_type_script_setup_true_lang_default, wrapper$2, canvas, WorkflowCanvas_vue_vue_type_style_index_0_lang_module_default, cssModules$4, WorkflowCanvas_default, ExperimentalNodeDetailsDrawer_vue_vue_type_script_setup_true_lang_default, component$1, multipleNodes, multipleNodesActions, multipleNodesAction, ExperimentalNodeDetailsDrawer_vue_vue_type_style_index_0_lang_module_default, cssModules$3, ExperimentalNodeDetailsDrawer_default, ExperimentalFocusPanelHeader_vue_vue_type_script_setup_true_lang_default, component, breadcrumbs, ExperimentalFocusPanelHeader_vue_vue_type_style_index_0_lang_module_default, cssModules$2, ExperimentalFocusPanelHeader_default, FocusPanel_vue_vue_type_script_setup_true_lang_default, wrapper$1, container, content, emptyContent, isNdvInFocusPanelEnabled, emptyText, focusParameterWrapper, iconWrapper, pointerIcon, tabHeader, tabHeaderText, buttonWrapper, parameterDetailsWrapper, parameterOptionsWrapper, noExecutionDataTip, editorContainer, editor, delayedShow, triggerShow, closeButton, heightFull, forceHover, FocusPanel_vue_vue_type_style_index_0_lang_module_default, cssModules$1, FocusPanel_default, state, CanvasStopCurrentExecutionButton_vue_vue_type_script_setup_true_lang_default, CanvasStopCurrentExecutionButton_default, CanvasStopWaitingForWebhookButton_vue_vue_type_script_setup_true_lang_default, CanvasStopWaitingForWebhookButton_default, _hoisted_1, _hoisted_2, NodeViewUnfinishedWorkflowMessage_vue_vue_type_script_setup_true_lang_default, NodeViewUnfinishedWorkflowMessage_default, CanvasChatButton_vue_vue_type_script_setup_true_lang_default, CanvasChatButton_default, NodeView_vue_vue_type_script_setup_true_lang_default, wrapper, executionButtons, chatButton, setupCredentialsButtonWrapper, readOnlyEnvironmentNotification, thinkingPill, NodeView_vue_vue_type_style_index_0_lang_module_default, cssModules, NodeView_default;
7
+ function useGlobalLinkActions() {
8
+ function registerCustomAction({
9
+ key,
10
+ action
11
+ }) {
12
+ state.customActions[key] = action;
13
+ }
14
+ function unregisterCustomAction(key) {
15
+ const {
16
+ [key]: _,
17
+ ...rest
18
+ } = state.customActions;
19
+ state.customActions = rest;
20
+ }
21
+ function getElementAttributes(element) {
22
+ const attributesObject = {};
23
+ for (let i = 0; i < element.attributes.length; i++) {
24
+ const attr = element.attributes[i];
25
+ if (attr.name.startsWith("data-action-parameter-")) attributesObject[attr.name.replace("data-action-parameter-", "")] = attr.value;
26
+ }
27
+ return attributesObject;
28
+ }
29
+ function delegateClick(e) {
30
+ const clickedElement = e.target;
31
+ if (!(clickedElement instanceof Element) || clickedElement.tagName !== "A") return;
32
+ const actionAttribute = clickedElement.getAttribute("data-action");
33
+ if (actionAttribute && typeof availableActions.value[actionAttribute] === "function") {
34
+ e.preventDefault();
35
+ const elementAttributes = getElementAttributes(clickedElement);
36
+ availableActions.value[actionAttribute](elementAttributes);
37
+ }
38
+ }
39
+ function reload() {
40
+ if (window.top) window.top.location.reload();else window.location.reload();
41
+ }
42
+ const availableActions = computed(() => ({
43
+ reload,
44
+ ...state.customActions
45
+ }));
46
+ onMounted(() => {
47
+ if (state.delegatedClickHandler) return;
48
+ state.delegatedClickHandler = delegateClick;
49
+ window.addEventListener("click", delegateClick);
50
+ globalLinkActionsEventBus.on("registerGlobalLinkAction", registerCustomAction);
51
+ });
52
+ onUnmounted(() => {
53
+ window.removeEventListener("click", delegateClick);
54
+ state.delegatedClickHandler = null;
55
+ globalLinkActionsEventBus.off("registerGlobalLinkAction", registerCustomAction);
56
+ });
57
+ return {
58
+ registerCustomAction,
59
+ unregisterCustomAction
60
+ };
61
+ }
62
+
63
+ //#endregion
64
+ //#region src/features/workflows/canvas/components/elements/buttons/CanvasStopCurrentExecutionButton.vue?vue&type=script&setup=true&lang.ts
65
+ return {
66
+ setters: [function (_vueRuntimeEsmBundlerLegacy003Js) {
67
+ computed = _vueRuntimeEsmBundlerLegacy003Js.C;
68
+ createElementBlock = _vueRuntimeEsmBundlerLegacy003Js.D;
69
+ createCommentVNode = _vueRuntimeEsmBundlerLegacy003Js.E;
70
+ nextTick = _vueRuntimeEsmBundlerLegacy003Js.G;
71
+ unref = _vueRuntimeEsmBundlerLegacy003Js.Gt;
72
+ ref = _vueRuntimeEsmBundlerLegacy003Js.It;
73
+ onBeforeUnmount = _vueRuntimeEsmBundlerLegacy003Js.J;
74
+ onActivated = _vueRuntimeEsmBundlerLegacy003Js.K;
75
+ h = _vueRuntimeEsmBundlerLegacy003Js.L;
76
+ createVNode = _vueRuntimeEsmBundlerLegacy003Js.M;
77
+ defineAsyncComponent = _vueRuntimeEsmBundlerLegacy003Js.N;
78
+ defineComponent = _vueRuntimeEsmBundlerLegacy003Js.P;
79
+ reactive = _vueRuntimeEsmBundlerLegacy003Js.Pt;
80
+ onUnmounted = _vueRuntimeEsmBundlerLegacy003Js.Q;
81
+ toDisplayString = _vueRuntimeEsmBundlerLegacy003Js.Sn;
82
+ createBlock = _vueRuntimeEsmBundlerLegacy003Js.T;
83
+ toRef = _vueRuntimeEsmBundlerLegacy003Js.Vt;
84
+ mergeProps = _vueRuntimeEsmBundlerLegacy003Js.W;
85
+ onDeactivated = _vueRuntimeEsmBundlerLegacy003Js.Y;
86
+ onMounted = _vueRuntimeEsmBundlerLegacy003Js.Z;
87
+ Fragment = _vueRuntimeEsmBundlerLegacy003Js._;
88
+ normalizeClass = _vueRuntimeEsmBundlerLegacy003Js._n;
89
+ watch = _vueRuntimeEsmBundlerLegacy003Js._t;
90
+ renderSlot = _vueRuntimeEsmBundlerLegacy003Js.at;
91
+ withCtx = _vueRuntimeEsmBundlerLegacy003Js.bt;
92
+ useCssModule = _vueRuntimeEsmBundlerLegacy003Js.c;
93
+ openBlock = _vueRuntimeEsmBundlerLegacy003Js.et;
94
+ withModifiers = _vueRuntimeEsmBundlerLegacy003Js.h;
95
+ renderList = _vueRuntimeEsmBundlerLegacy003Js.it;
96
+ createTextVNode = _vueRuntimeEsmBundlerLegacy003Js.j;
97
+ useTemplateRef = _vueRuntimeEsmBundlerLegacy003Js.mt;
98
+ provide = _vueRuntimeEsmBundlerLegacy003Js.nt;
99
+ onBeforeMount = _vueRuntimeEsmBundlerLegacy003Js.q;
100
+ createBaseVNode = _vueRuntimeEsmBundlerLegacy003Js.w;
101
+ Suspense = _vueRuntimeEsmBundlerLegacy003Js.y;
102
+ normalizeStyle = _vueRuntimeEsmBundlerLegacy003Js.yn;
103
+ }, function (_MapCacheLegacy005Js) {
104
+ refThrottled = _MapCacheLegacy005Js.Z;
105
+ useActiveElement = _MapCacheLegacy005Js.b;
106
+ useI18n = _MapCacheLegacy005Js.gt;
107
+ useThrottleFn = _MapCacheLegacy005Js.it;
108
+ }, function (_srcLegacy007Js) {
109
+ N8nInput_default = _srcLegacy007Js.Ct;
110
+ N8nCallout_default = _srcLegacy007Js.Fn;
111
+ N8nText_default = _srcLegacy007Js.In;
112
+ N8nButton_default = _srcLegacy007Js.Ln;
113
+ N8nInfoTip_default = _srcLegacy007Js.P;
114
+ N8nIconButton_default = _srcLegacy007Js.Tt;
115
+ CanvasThinkingPill_default = _srcLegacy007Js.Z;
116
+ N8nInlineTextEdit_default = _srcLegacy007Js.a;
117
+ N8nKeyboardShortcut_default = _srcLegacy007Js.nt;
118
+ useDeviceSupport = _srcLegacy007Js.rt;
119
+ N8nRadioButtons_default = _srcLegacy007Js.x;
120
+ N8nResizeWrapper_default = _srcLegacy007Js.y;
121
+ N8nIcon_default = _srcLegacy007Js.zn;
122
+ }, function (_enLegacy00bJs) {}, function (_preloadHelperLegacy00dJs) {
123
+ __vitePreload = _preloadHelperLegacy00dJs.t;
124
+ }, function (_pluginVue_exportHelperLegacy00fJs) {
125
+ __plugin_vue_export_helper_default = _pluginVue_exportHelperLegacy00fJs.t;
126
+ }, function (_truncateLegacy00hJs) {
127
+ useRouter = _truncateLegacy00hJs.b;
128
+ onBeforeRouteLeave = _truncateLegacy00hJs.v;
129
+ createEventBus = _truncateLegacy00hJs.x;
130
+ useRoute = _truncateLegacy00hJs.y;
131
+ }, function (_iconLegacy00lJs) {}, function (_datePickerLegacy00nJs) {}, function (_overlayLegacy00pJs) {}, function (_ParameterInputListLegacy00rJs) {
132
+ ExpressionEditorModalInput_default = _ParameterInputListLegacy00rJs.C;
133
+ CodeNodeEditor_default = _ParameterInputListLegacy00rJs.D;
134
+ JsEditor_default = _ParameterInputListLegacy00rJs.O;
135
+ SqlEditor_default = _ParameterInputListLegacy00rJs.S;
136
+ isValidParameterOption = _ParameterInputListLegacy00rJs._;
137
+ ParameterOptions_default = _ParameterInputListLegacy00rJs.a;
138
+ getParameterTypeOption = _ParameterInputListLegacy00rJs.g;
139
+ HtmlEditor_default = _ParameterInputListLegacy00rJs.k;
140
+ CssEditor_default = _ParameterInputListLegacy00rJs.l;
141
+ formatAsExpression = _ParameterInputListLegacy00rJs.m;
142
+ useResolvedExpression = _ParameterInputListLegacy00rJs.s;
143
+ useNodeSettingsParameters = _ParameterInputListLegacy00rJs.u;
144
+ parseFromExpression = _ParameterInputListLegacy00rJs.y;
145
+ }, function (_emptyLegacy00tJs) {}, function (_useMessageLegacy00vJs) {
146
+ useMessage = _useMessageLegacy00vJs.t;
147
+ }, function (_colLegacy00zJs) {}, function (_dialogLegacy00BJs) {}, function (_useTelemetryLegacy00FJs) {
148
+ useSettingsStore = _useTelemetryLegacy00FJs.Bo;
149
+ getNodesWithNormalizedPosition = _useTelemetryLegacy00FJs.C;
150
+ useWorkflowState = _useTelemetryLegacy00FJs.Cn;
151
+ useHistoryStore = _useTelemetryLegacy00FJs.Cr;
152
+ useSourceControlStore = _useTelemetryLegacy00FJs.Dn;
153
+ nodeViewEventBus = _useTelemetryLegacy00FJs.Ei;
154
+ useProjectsStore = _useTelemetryLegacy00FJs.En;
155
+ useCredentialsStore = _useTelemetryLegacy00FJs.Ht;
156
+ useUIStore = _useTelemetryLegacy00FJs.Ni;
157
+ htmlEditorEventBus = _useTelemetryLegacy00FJs.Oi;
158
+ getSampleWorkflowByTemplateId = _useTelemetryLegacy00FJs.Ot;
159
+ historyBus = _useTelemetryLegacy00FJs.Pr;
160
+ useRootStore = _useTelemetryLegacy00FJs.Qs;
161
+ injectWorkflowState = _useTelemetryLegacy00FJs.Sn;
162
+ CanvasNodeRenderType = _useTelemetryLegacy00FJs.Sr;
163
+ useDocumentTitle = _useTelemetryLegacy00FJs.Tn;
164
+ useCanvasStore = _useTelemetryLegacy00FJs.Un;
165
+ useVueFlow = _useTelemetryLegacy00FJs.V;
166
+ isFocusableEl = _useTelemetryLegacy00FJs._i;
167
+ useTagsStore = _useTelemetryLegacy00FJs._n;
168
+ useNDVStore = _useTelemetryLegacy00FJs.a;
169
+ isValueExpression = _useTelemetryLegacy00FJs.ai;
170
+ useEnvironmentsStore = _useTelemetryLegacy00FJs.bn;
171
+ useUsersStore = _useTelemetryLegacy00FJs.er;
172
+ getBounds = _useTelemetryLegacy00FJs.g;
173
+ usePostHog = _useTelemetryLegacy00FJs.i;
174
+ globalLinkActionsEventBus = _useTelemetryLegacy00FJs.ki;
175
+ hasFocusOnInput = _useTelemetryLegacy00FJs.mi;
176
+ useWorkflowsStore = _useTelemetryLegacy00FJs.o;
177
+ useNodeTypesStore = _useTelemetryLegacy00FJs.rt;
178
+ useTelemetry = _useTelemetryLegacy00FJs.t;
179
+ getNodeViewTab = _useTelemetryLegacy00FJs.x;
180
+ useNodeHelpers = _useTelemetryLegacy00FJs.xn;
181
+ }, function (_useToastLegacy00HJs) {
182
+ useToast = _useToastLegacy00HJs.t;
183
+ }, function (_sanitizeHtmlLegacy00JJs) {}, function (_pathBrowserifyLegacy00LJs) {}, function (_constantsLegacy00NJs) {
184
+ isTriggerNode = _constantsLegacy00NJs.Ai;
185
+ WorkflowStateKey = _constantsLegacy00NJs.Ds;
186
+ FROM_AI_PARAMETERS_MODAL_KEY = _constantsLegacy00NJs.Eo;
187
+ jsonParse = _constantsLegacy00NJs.Gi;
188
+ EnterpriseEditionFeature = _constantsLegacy00NJs.Hs;
189
+ MANUAL_CHAT_TRIGGER_NODE_TYPE = _constantsLegacy00NJs.It;
190
+ isResourceLocatorValue = _constantsLegacy00NJs.Li;
191
+ VALID_WORKFLOW_IMPORT_URL_REGEX = _constantsLegacy00NJs.M;
192
+ MODAL_CONFIRM = _constantsLegacy00NJs.No;
193
+ NDV_UI_OVERHAUL_EXPERIMENT = _constantsLegacy00NJs.Ps;
194
+ CHAT_TRIGGER_NODE_TYPE = _constantsLegacy00NJs.Q;
195
+ DRAG_EVENT_DATA_KEY = _constantsLegacy00NJs.R;
196
+ getNodeInputs = _constantsLegacy00NJs._i;
197
+ getResourcePermissions = _constantsLegacy00NJs._r;
198
+ START_NODE_TYPE = _constantsLegacy00NJs.bn;
199
+ EVALUATION_NODE_TYPE = _constantsLegacy00NJs.da;
200
+ EVALUATION_TRIGGER_NODE_TYPE = _constantsLegacy00NJs.fa;
201
+ HTML_NODE_TYPE = _constantsLegacy00NJs.ga;
202
+ ABOUT_MODAL_KEY = _constantsLegacy00NJs.ho;
203
+ NODE_CREATOR_OPEN_SOURCES = _constantsLegacy00NJs.io;
204
+ VIEWS = _constantsLegacy00NJs.mo;
205
+ NEW_WORKFLOW_ID = _constantsLegacy00NJs.o;
206
+ MAIN_HEADER_TABS = _constantsLegacy00NJs.po;
207
+ WORKFLOW_SETTINGS_MODAL_KEY = _constantsLegacy00NJs.qo;
208
+ PLACEHOLDER_EMPTY_WORKFLOW_ID = _constantsLegacy00NJs.s;
209
+ AI_TRANSFORM_NODE_TYPE = _constantsLegacy00NJs.sa;
210
+ getNodeOutputs = _constantsLegacy00NJs.vi;
211
+ ExpressionLocalResolveContextSymbol = _constantsLegacy00NJs.ws;
212
+ STICKY_NODE_TYPE = _constantsLegacy00NJs.xn;
213
+ }, function (_mergeLegacy00PJs) {}, function (_assistantStoreLegacy00RJs) {
214
+ useBuilderStore = _assistantStoreLegacy00RJs.i;
215
+ }, function (_dateformatLegacy00TJs) {}, function (_useDebounceLegacy00VJs) {}, function (_useExternalHooksLegacy00XJs) {
216
+ useExternalHooks = _useExternalHooksLegacy00XJs.t;
217
+ }, function (_chatPanelStoreLegacy00ZJs) {}, function (_npsSurveyStoreLegacy011Js) {
218
+ useNpsSurveyStore = _npsSurveyStoreLegacy011Js.t;
219
+ }, function (_cloudPlanStoreLegacy013Js) {}, function (_templatesStoreLegacy015Js) {}, function (_focusPanelStoreLegacy017Js) {
220
+ useFocusPanelStore = _focusPanelStoreLegacy017Js.t;
221
+ }, function (_useWorkflowSavingLegacy019Js) {
222
+ useWorkflowSaving = _useWorkflowSavingLegacy019Js.t;
223
+ }, function (_retryLegacy01bJs) {}, function (_executionsStoreLegacy01dJs) {
224
+ useExecutionsStore = _executionsStoreLegacy01dJs.t;
225
+ }, function (_useRunWorkflowLegacy01fJs) {
226
+ usePushConnectionStore = _useRunWorkflowLegacy01fJs.i;
227
+ useAgentRequestStore = _useRunWorkflowLegacy01fJs.n;
228
+ useRunWorkflow = _useRunWorkflowLegacy01fJs.t;
229
+ }, function (_usePinnedDataLegacy01hJs) {}, function (_nodeCreatorStoreLegacy01jJs) {
230
+ useNodeCreatorStore = _nodeCreatorStoreLegacy01jJs.t;
231
+ shouldIgnoreCanvasShortcut = _nodeCreatorStoreLegacy01jJs.u;
232
+ }, function (_nodeIconLegacy01lJs) {}, function (_useClipboardLegacy01nJs) {
233
+ useClipboard = _useClipboardLegacy01nJs.t;
234
+ }, function (_useCanvasOperationsLegacy01pJs) {
235
+ useLogsStore = _useCanvasOperationsLegacy01pJs.a;
236
+ useExperimentalNdvStore = _useCanvasOperationsLegacy01pJs.i;
237
+ useParentFolder = _useCanvasOperationsLegacy01pJs.n;
238
+ canvasEventBus = _useCanvasOperationsLegacy01pJs.r;
239
+ useCanvasOperations = _useCanvasOperationsLegacy01pJs.t;
240
+ }, function (_foldersStoreLegacy01tJs) {}, function (_NodeIconLegacy01vJs) {
241
+ NodeIcon_default = _NodeIconLegacy01vJs.t;
242
+ }, function (_KeyboardShortcutTooltipLegacy01xJs) {
243
+ KeyboardShortcutTooltip_default = _KeyboardShortcutTooltipLegacy01xJs.t;
244
+ }, function (_useCanvasMappingLegacy01zJs) {
245
+ ExperimentalCanvasNodeSettings_default = _useCanvasMappingLegacy01zJs.c;
246
+ useWorkflowExtraction = _useCanvasMappingLegacy01zJs.l;
247
+ Canvas_default = _useCanvasMappingLegacy01zJs.n;
248
+ useContextMenuItems = _useCanvasMappingLegacy01zJs.o;
249
+ useExpressionResolveCtx = _useCanvasMappingLegacy01zJs.s;
250
+ useCanvasMapping = _useCanvasMappingLegacy01zJs.t;
251
+ CanvasRunWorkflowButton_default = _useCanvasMappingLegacy01zJs.u;
252
+ }, function (_versionsStoreLegacy01BJs) {}, function (_usePageRedirectionHelperLegacy01DJs) {}, function (_dataTableStoreLegacy01HJs) {}, function (_isEmptyLegacy01TJs) {
253
+ JsonEditor_default = _isEmptyLegacy01TJs.c;
254
+ }, function (_NDVEmptyStateLegacy01VJs) {}, function (_exportsLegacy01XJs) {}, function (_externalSecretsEeStoreLegacy01ZJs) {
255
+ useExternalSecretsStore = _externalSecretsEeStoreLegacy01ZJs.t;
256
+ }, function (_uniqByLegacy01$Js) {}, function (_semverLegacy021Js) {}, function (_CommunityNodeUpdateInfoLegacy023Js) {}, function (_DraggableLegacy02dJs) {}, function (_VirtualSchemaLegacy02fJs) {
257
+ NodeExecuteButton_default = _VirtualSchemaLegacy02fJs.n;
258
+ }, function (_TextWithHighlightsLegacy02hJs) {}, function (_useTelemetryContextLegacy02jJs) {
259
+ useTelemetryContext = _useTelemetryContextLegacy02jJs.t;
260
+ }, function (_schemaPreviewStoreLegacy02lJs) {}, function (_nodeTransformsLegacy02nJs) {
261
+ needsAgentInput = _nodeTransformsLegacy02nJs.a;
262
+ }, function (_FileSaverMinLegacy02rJs) {}, function (_vueJsonPrettyLegacy02tJs) {}, function (_RunDataHtmlLegacy02vJs) {}, function (_dateFormatterLegacy02zJs) {}, function (_useExecutionHelpersLegacy02BJs) {}, function (_NodeSettingsLegacy02FJs) {}, function (_useActionsLegacy03dJs) {}, function (_vueLegacy03hJs) {}, function (_sourceControlEventBusLegacy03pJs) {
263
+ sourceControlEventBus = _sourceControlEventBusLegacy03pJs.t;
264
+ }, function (_useKeybindingsLegacy03tJs) {
265
+ useKeybindings = _useKeybindingsLegacy03tJs.t;
266
+ }, function (_useBeforeUnloadLegacy03NJs) {
267
+ useBeforeUnload = _useBeforeUnloadLegacy03NJs.t;
268
+ }, function (_readyToRunWorkflowsStoreLegacy03VJs) {
269
+ useAITemplatesStarterCollectionStore = _readyToRunWorkflowsStoreLegacy03VJs.n;
270
+ useReadyToRunWorkflowsStore = _readyToRunWorkflowsStoreLegacy03VJs.t;
271
+ }, function (_useExecutionDataLegacy04bJs) {
272
+ useExecutionData = _useExecutionDataLegacy04bJs.t;
273
+ }, function (_useExecutionDebuggingLegacy04dJs) {
274
+ useExecutionDebugging = _useExecutionDebuggingLegacy04dJs.t;
275
+ }],
276
+ execute: function () {
277
+ __vite_style__ = document.createElement('style');
278
+ __vite_style__.textContent = "/* BEM support Func\n -------------------------- */\n/* Transition\n-------------------------- */\n/* Color\n-------------------------- */\n/* Link\n-------------------------- */\n/* Border\n-------------------------- */\n/* Outline\n-------------------------- */\n/* Box shadow\n-------------------------- */\n/* Fill\n-------------------------- */\n/* Typography\n-------------------------- */\n/* z-index\n-------------------------- */\n/* Disable base\n-------------------------- */\n/* Icon\n-------------------------- */\n/* Checkbox\n-------------------------- */\n/* Radio\n-------------------------- */\n/* Select\n-------------------------- */\n/* Alert\n-------------------------- */\n/* MessageBox\n-------------------------- */\n/* Message\n-------------------------- */\n/* Notification\n-------------------------- */\n/* Input\n-------------------------- */\n/* Cascader\n-------------------------- */\n/* Group\n-------------------------- */\n/* Tab\n-------------------------- */\n/* Button\n-------------------------- */\n/* cascader\n-------------------------- */\n/* Switch\n-------------------------- */\n/* Dialog\n-------------------------- */\n/* Table\n-------------------------- */\n/* Pagination\n-------------------------- */\n/* Popup\n-------------------------- */\n/* Popover\n-------------------------- */\n/* Tooltip\n-------------------------- */\n/* Tag\n-------------------------- */\n/* Tree\n-------------------------- */\n/* Dropdown\n-------------------------- */\n/* Badge\n-------------------------- */\n/* Card\n--------------------------*/\n/* Slider\n--------------------------*/\n/* Steps\n--------------------------*/\n/* Menu\n--------------------------*/\n/* Rate\n--------------------------*/\n/* DatePicker\n--------------------------*/\n/* Loading\n--------------------------*/\n/* Scrollbar\n--------------------------*/\n/* Carousel\n--------------------------*/\n/* Collapse\n--------------------------*/\n/* Transfer\n--------------------------*/\n/* Header\n --------------------------*/\n/* Footer\n--------------------------*/\n/* Main\n--------------------------*/\n/* Timeline\n--------------------------*/\n/* Backtop\n--------------------------*/\n/* Link\n--------------------------*/\n/* Calendar\n--------------------------*/\n/* Form\n-------------------------- */\n/* Avatar\n--------------------------*/\n/* Break-point\n--------------------------*/\n/* Break-points\n -------------------------- */\n/* Scrollbar\n -------------------------- */\n/* Placeholder\n -------------------------- */\n/* BEM\n -------------------------- */\n._wrapper_jyurh_123 {\n display: flex;\n position: relative;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n._canvas_jyurh_131 {\n width: 100%;\n height: 100%;\n position: relative;\n display: block;\n align-items: stretch;\n justify-content: stretch;\n}/* BEM support Func\n -------------------------- */\n/* Transition\n-------------------------- */\n/* Color\n-------------------------- */\n/* Link\n-------------------------- */\n/* Border\n-------------------------- */\n/* Outline\n-------------------------- */\n/* Box shadow\n-------------------------- */\n/* Fill\n-------------------------- */\n/* Typography\n-------------------------- */\n/* z-index\n-------------------------- */\n/* Disable base\n-------------------------- */\n/* Icon\n-------------------------- */\n/* Checkbox\n-------------------------- */\n/* Radio\n-------------------------- */\n/* Select\n-------------------------- */\n/* Alert\n-------------------------- */\n/* MessageBox\n-------------------------- */\n/* Message\n-------------------------- */\n/* Notification\n-------------------------- */\n/* Input\n-------------------------- */\n/* Cascader\n-------------------------- */\n/* Group\n-------------------------- */\n/* Tab\n-------------------------- */\n/* Button\n-------------------------- */\n/* cascader\n-------------------------- */\n/* Switch\n-------------------------- */\n/* Dialog\n-------------------------- */\n/* Table\n-------------------------- */\n/* Pagination\n-------------------------- */\n/* Popup\n-------------------------- */\n/* Popover\n-------------------------- */\n/* Tooltip\n-------------------------- */\n/* Tag\n-------------------------- */\n/* Tree\n-------------------------- */\n/* Dropdown\n-------------------------- */\n/* Badge\n-------------------------- */\n/* Card\n--------------------------*/\n/* Slider\n--------------------------*/\n/* Steps\n--------------------------*/\n/* Menu\n--------------------------*/\n/* Rate\n--------------------------*/\n/* DatePicker\n--------------------------*/\n/* Loading\n--------------------------*/\n/* Scrollbar\n--------------------------*/\n/* Carousel\n--------------------------*/\n/* Collapse\n--------------------------*/\n/* Transfer\n--------------------------*/\n/* Header\n --------------------------*/\n/* Footer\n--------------------------*/\n/* Main\n--------------------------*/\n/* Timeline\n--------------------------*/\n/* Backtop\n--------------------------*/\n/* Link\n--------------------------*/\n/* Calendar\n--------------------------*/\n/* Form\n-------------------------- */\n/* Avatar\n--------------------------*/\n/* Break-point\n--------------------------*/\n/* Break-points\n -------------------------- */\n/* Scrollbar\n -------------------------- */\n/* Placeholder\n -------------------------- */\n/* BEM\n -------------------------- */\n._component_17fl4_123 {\n height: 100%;\n overflow: auto;\n}\n._multipleNodes_17fl4_128 {\n min-height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: start;\n padding: var(--spacing--3xl) var(--spacing--md);\n gap: var(--spacing--md);\n}\n._multipleNodesActions_17fl4_138 {\n align-self: stretch;\n list-style-type: none;\n}\n._multipleNodesAction_17fl4_138 {\n margin-top: -1px;\n}\n._multipleNodesAction_17fl4_138 button {\n width: 100%;\n border-radius: 0;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-color: var(--border-color--light);\n}\n._multipleNodesAction_17fl4_138 button:disabled {\n border-color: var(--border-color--light);\n}\n._multipleNodesAction_17fl4_138:first-of-type button {\n border-top-left-radius: var(--radius);\n border-top-right-radius: var(--radius);\n}\n._multipleNodesAction_17fl4_138:last-of-type button {\n border-bottom-left-radius: var(--radius);\n border-bottom-right-radius: var(--radius);\n}\n._multipleNodesAction_17fl4_138 button:hover {\n z-index: 1;\n}/* BEM support Func\n -------------------------- */\n/* Transition\n-------------------------- */\n/* Color\n-------------------------- */\n/* Link\n-------------------------- */\n/* Border\n-------------------------- */\n/* Outline\n-------------------------- */\n/* Box shadow\n-------------------------- */\n/* Fill\n-------------------------- */\n/* Typography\n-------------------------- */\n/* z-index\n-------------------------- */\n/* Disable base\n-------------------------- */\n/* Icon\n-------------------------- */\n/* Checkbox\n-------------------------- */\n/* Radio\n-------------------------- */\n/* Select\n-------------------------- */\n/* Alert\n-------------------------- */\n/* MessageBox\n-------------------------- */\n/* Message\n-------------------------- */\n/* Notification\n-------------------------- */\n/* Input\n-------------------------- */\n/* Cascader\n-------------------------- */\n/* Group\n-------------------------- */\n/* Tab\n-------------------------- */\n/* Button\n-------------------------- */\n/* cascader\n-------------------------- */\n/* Switch\n-------------------------- */\n/* Dialog\n-------------------------- */\n/* Table\n-------------------------- */\n/* Pagination\n-------------------------- */\n/* Popup\n-------------------------- */\n/* Popover\n-------------------------- */\n/* Tooltip\n-------------------------- */\n/* Tag\n-------------------------- */\n/* Tree\n-------------------------- */\n/* Dropdown\n-------------------------- */\n/* Badge\n-------------------------- */\n/* Card\n--------------------------*/\n/* Slider\n--------------------------*/\n/* Steps\n--------------------------*/\n/* Menu\n--------------------------*/\n/* Rate\n--------------------------*/\n/* DatePicker\n--------------------------*/\n/* Loading\n--------------------------*/\n/* Scrollbar\n--------------------------*/\n/* Carousel\n--------------------------*/\n/* Collapse\n--------------------------*/\n/* Transfer\n--------------------------*/\n/* Header\n --------------------------*/\n/* Footer\n--------------------------*/\n/* Main\n--------------------------*/\n/* Timeline\n--------------------------*/\n/* Backtop\n--------------------------*/\n/* Link\n--------------------------*/\n/* Calendar\n--------------------------*/\n/* Form\n-------------------------- */\n/* Avatar\n--------------------------*/\n/* Break-point\n--------------------------*/\n/* Break-points\n -------------------------- */\n/* Scrollbar\n -------------------------- */\n/* Placeholder\n -------------------------- */\n/* BEM\n -------------------------- */\n._component_hvb6m_123 {\n display: flex;\n align-items: center;\n padding: var(--spacing--2xs);\n gap: var(--spacing--2xs);\n border-bottom: var(--border);\n}\n._breadcrumbs_hvb6m_131 {\n display: flex;\n align-items: center;\n gap: var(--spacing--4xs);\n flex-grow: 1;\n flex-shrink: 1;\n}/* BEM support Func\n -------------------------- */\n/* Transition\n-------------------------- */\n/* Color\n-------------------------- */\n/* Link\n-------------------------- */\n/* Border\n-------------------------- */\n/* Outline\n-------------------------- */\n/* Box shadow\n-------------------------- */\n/* Fill\n-------------------------- */\n/* Typography\n-------------------------- */\n/* z-index\n-------------------------- */\n/* Disable base\n-------------------------- */\n/* Icon\n-------------------------- */\n/* Checkbox\n-------------------------- */\n/* Radio\n-------------------------- */\n/* Select\n-------------------------- */\n/* Alert\n-------------------------- */\n/* MessageBox\n-------------------------- */\n/* Message\n-------------------------- */\n/* Notification\n-------------------------- */\n/* Input\n-------------------------- */\n/* Cascader\n-------------------------- */\n/* Group\n-------------------------- */\n/* Tab\n-------------------------- */\n/* Button\n-------------------------- */\n/* cascader\n-------------------------- */\n/* Switch\n-------------------------- */\n/* Dialog\n-------------------------- */\n/* Table\n-------------------------- */\n/* Pagination\n-------------------------- */\n/* Popup\n-------------------------- */\n/* Popover\n-------------------------- */\n/* Tooltip\n-------------------------- */\n/* Tag\n-------------------------- */\n/* Tree\n-------------------------- */\n/* Dropdown\n-------------------------- */\n/* Badge\n-------------------------- */\n/* Card\n--------------------------*/\n/* Slider\n--------------------------*/\n/* Steps\n--------------------------*/\n/* Menu\n--------------------------*/\n/* Rate\n--------------------------*/\n/* DatePicker\n--------------------------*/\n/* Loading\n--------------------------*/\n/* Scrollbar\n--------------------------*/\n/* Carousel\n--------------------------*/\n/* Collapse\n--------------------------*/\n/* Transfer\n--------------------------*/\n/* Header\n --------------------------*/\n/* Footer\n--------------------------*/\n/* Main\n--------------------------*/\n/* Timeline\n--------------------------*/\n/* Backtop\n--------------------------*/\n/* Link\n--------------------------*/\n/* Calendar\n--------------------------*/\n/* Form\n-------------------------- */\n/* Avatar\n--------------------------*/\n/* Break-point\n--------------------------*/\n/* Break-points\n -------------------------- */\n/* Scrollbar\n -------------------------- */\n/* Placeholder\n -------------------------- */\n/* BEM\n -------------------------- */\n._wrapper_1aqcs_123 {\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n border-left: 1px solid var(--color--foreground);\n background: var(--color--background--light-3);\n overflow-y: hidden;\n height: 100%;\n flex-grow: 0;\n flex-shrink: 0;\n}\n._container_1aqcs_135 {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n._content_1aqcs_141 {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n}\n._content_1aqcs_141._emptyContent_1aqcs_147 {\n text-align: center;\n justify-content: center;\n align-items: center;\n}\n._isNdvInFocusPanelEnabled_1aqcs_152 ._content_1aqcs_141._emptyContent_1aqcs_147 {\n flex-direction: column-reverse;\n}\n._content_1aqcs_141._emptyContent_1aqcs_147 ._emptyText_1aqcs_155 {\n margin: 0 var(--spacing--xl);\n display: flex;\n flex-direction: column;\n gap: var(--spacing--2xs);\n}\n._content_1aqcs_141._emptyContent_1aqcs_147 ._focusParameterWrapper_1aqcs_161 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing--2xs);\n margin-block: var(--spacing--md);\n}\n._content_1aqcs_141._emptyContent_1aqcs_147 ._focusParameterWrapper_1aqcs_161 ._iconWrapper_1aqcs_168 {\n position: relative;\n display: inline-block;\n}\n._content_1aqcs_141._emptyContent_1aqcs_147 ._focusParameterWrapper_1aqcs_161 ._pointerIcon_1aqcs_172 {\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translate(-20%, -30%);\n pointer-events: none;\n}\n._content_1aqcs_141._emptyContent_1aqcs_147 ._focusParameterWrapper_1aqcs_161 [class*=\"_disabled_\"] {\n cursor: default !important;\n}\n._content_1aqcs_141 ._tabHeader_1aqcs_182 {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-bottom: 1px solid var(--color--foreground);\n padding: var(--spacing--2xs);\n}\n._content_1aqcs_141 ._tabHeader_1aqcs_182 ._tabHeaderText_1aqcs_189 {\n display: flex;\n gap: var(--spacing--4xs);\n align-items: baseline;\n}\n._content_1aqcs_141 ._tabHeader_1aqcs_182 ._buttonWrapper_1aqcs_194 {\n display: flex;\n gap: var(--spacing--2xs);\n align-items: center;\n}\n._content_1aqcs_141 ._parameterDetailsWrapper_1aqcs_199 {\n display: flex;\n height: 100%;\n flex-direction: column;\n gap: var(--spacing--2xs);\n padding: var(--spacing--2xs);\n}\n._content_1aqcs_141 ._parameterDetailsWrapper_1aqcs_199 ._parameterOptionsWrapper_1aqcs_206 {\n display: flex;\n justify-content: space-between;\n}\n._content_1aqcs_141 ._parameterDetailsWrapper_1aqcs_199 ._noExecutionDataTip_1aqcs_210 {\n align-content: center;\n}\n._content_1aqcs_141 ._parameterDetailsWrapper_1aqcs_199 ._editorContainer_1aqcs_213 {\n height: 0;\n flex-grow: 1;\n}\n._content_1aqcs_141 ._parameterDetailsWrapper_1aqcs_199 ._editorContainer_1aqcs_213 ._editor_1aqcs_213 {\n display: flex;\n height: 100%;\n width: 100%;\n font-size: var(--font-size--2xs);\n}\n._content_1aqcs_141 ._parameterDetailsWrapper_1aqcs_199 ._editorContainer_1aqcs_213 ._editor_1aqcs_213 .cm-editor {\n background-color: var(--code--color--background);\n width: 100%;\n}\n._delayedShow_1aqcs_228 {\n opacity: 0;\n transition: opacity 0.1s none;\n animation: _triggerShow_1aqcs_1 0.1s normal 0.1s forwards;\n}\n@keyframes _triggerShow_1aqcs_1 {\nto {\n opacity: 1;\n}\n}\n._closeButton_1aqcs_239 {\n cursor: pointer;\n}\n._heightFull_1aqcs_243 {\n height: 100%;\n}\n._forceHover_1aqcs_247 {\n color: var(--button--color--text--secondary--hover-active-focus);\n border-color: var(--button--border-color--secondary--hover-active-focus);\n}/* BEM support Func\n -------------------------- */\n/* Transition\n-------------------------- */\n/* Color\n-------------------------- */\n/* Link\n-------------------------- */\n/* Border\n-------------------------- */\n/* Outline\n-------------------------- */\n/* Box shadow\n-------------------------- */\n/* Fill\n-------------------------- */\n/* Typography\n-------------------------- */\n/* z-index\n-------------------------- */\n/* Disable base\n-------------------------- */\n/* Icon\n-------------------------- */\n/* Checkbox\n-------------------------- */\n/* Radio\n-------------------------- */\n/* Select\n-------------------------- */\n/* Alert\n-------------------------- */\n/* MessageBox\n-------------------------- */\n/* Message\n-------------------------- */\n/* Notification\n-------------------------- */\n/* Input\n-------------------------- */\n/* Cascader\n-------------------------- */\n/* Group\n-------------------------- */\n/* Tab\n-------------------------- */\n/* Button\n-------------------------- */\n/* cascader\n-------------------------- */\n/* Switch\n-------------------------- */\n/* Dialog\n-------------------------- */\n/* Table\n-------------------------- */\n/* Pagination\n-------------------------- */\n/* Popup\n-------------------------- */\n/* Popover\n-------------------------- */\n/* Tooltip\n-------------------------- */\n/* Tag\n-------------------------- */\n/* Tree\n-------------------------- */\n/* Dropdown\n-------------------------- */\n/* Badge\n-------------------------- */\n/* Card\n--------------------------*/\n/* Slider\n--------------------------*/\n/* Steps\n--------------------------*/\n/* Menu\n--------------------------*/\n/* Rate\n--------------------------*/\n/* DatePicker\n--------------------------*/\n/* Loading\n--------------------------*/\n/* Scrollbar\n--------------------------*/\n/* Carousel\n--------------------------*/\n/* Collapse\n--------------------------*/\n/* Transfer\n--------------------------*/\n/* Header\n --------------------------*/\n/* Footer\n--------------------------*/\n/* Main\n--------------------------*/\n/* Timeline\n--------------------------*/\n/* Backtop\n--------------------------*/\n/* Link\n--------------------------*/\n/* Calendar\n--------------------------*/\n/* Form\n-------------------------- */\n/* Avatar\n--------------------------*/\n/* Break-point\n--------------------------*/\n/* Break-points\n -------------------------- */\n/* Scrollbar\n -------------------------- */\n/* Placeholder\n -------------------------- */\n/* BEM\n -------------------------- */\n._wrapper_1ahwb_123 {\n display: flex;\n width: 100%;\n}\n._executionButtons_1ahwb_128 {\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: center;\n left: 50%;\n transform: translateX(-50%);\n bottom: var(--spacing--sm);\n width: auto;\n}\n@media screen and (max-width: 991px) {\n._executionButtons_1ahwb_128 {\n left: auto;\n right: var(--spacing--sm);\n transform: none;\n}\n}\n._executionButtons_1ahwb_128 button {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-left: 0.625rem;\n}\n._executionButtons_1ahwb_128 button:first-child {\n margin: 0;\n}\n@media screen and (max-width: 767px) {\n._executionButtons_1ahwb_128 button {\n text-indent: -10000px;\n width: 42px;\n height: 42px;\n padding: 0;\n}\n._executionButtons_1ahwb_128 button span {\n margin: 0;\n}\n}\n._executionButtons_1ahwb_128 ._chatButton_1ahwb_165 {\n align-self: stretch;\n}\n._setupCredentialsButtonWrapper_1ahwb_169 {\n position: absolute;\n left: var(--spacing--sm);\n top: var(--spacing--sm);\n}\n._readOnlyEnvironmentNotification_1ahwb_175 {\n position: absolute;\n bottom: 16px;\n left: 50%;\n transform: translateX(-50%);\n}\n._thinkingPill_1ahwb_182 {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n z-index: 10;\n}/*$vite$:1*/";
279
+ document.head.appendChild(__vite_style__);
280
+ //#region src/features/workflows/canvas/components/WorkflowCanvas.vue?vue&type=script&setup=true&lang.ts
281
+ WorkflowCanvas_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({
282
+ inheritAttrs: false,
283
+ __name: "WorkflowCanvas",
284
+ props: {
285
+ id: {
286
+ default: "canvas"
287
+ },
288
+ workflow: {},
289
+ workflowObject: {},
290
+ fallbackNodes: {
291
+ default: () => []
292
+ },
293
+ showFallbackNodes: {
294
+ type: Boolean,
295
+ default: true
296
+ },
297
+ eventBus: {
298
+ default: () => createEventBus()
299
+ },
300
+ readOnly: {
301
+ type: Boolean
302
+ },
303
+ executing: {
304
+ type: Boolean
305
+ },
306
+ suppressInteraction: {
307
+ type: Boolean,
308
+ default: false
309
+ }
310
+ },
311
+ setup(__props, {
312
+ expose: __expose
313
+ }) {
314
+ const props = __props;
315
+ const canvasRef = useTemplateRef("canvas");
316
+ const $style = useCssModule();
317
+ const {
318
+ onNodesInitialized
319
+ } = useVueFlow(props.id);
320
+ const workflow = toRef(props, "workflow");
321
+ const workflowObject = toRef(props, "workflowObject");
322
+ const {
323
+ nodes: mappedNodes,
324
+ connections: mappedConnections
325
+ } = useCanvasMapping({
326
+ nodes: computed(() => {
327
+ return props.showFallbackNodes ? [...props.workflow.nodes, ...props.fallbackNodes] : props.workflow.nodes;
328
+ }),
329
+ connections: computed(() => props.workflow.connections),
330
+ workflowObject
331
+ });
332
+ const initialFitViewDone = ref(false);
333
+ onNodesInitialized(() => {
334
+ if (!initialFitViewDone.value || props.showFallbackNodes) {
335
+ props.eventBus.emit("fitView");
336
+ initialFitViewDone.value = true;
337
+ }
338
+ });
339
+ const mappedNodesThrottled = refThrottled(mappedNodes, 200);
340
+ const mappedConnectionsThrottled = refThrottled(mappedConnections, 200);
341
+ __expose({
342
+ executeContextMenuAction: (action, nodeIds) => canvasRef.value?.executeContextMenuAction(action, nodeIds)
343
+ });
344
+ return (_ctx, _cache) => {
345
+ return openBlock(), createElementBlock("div", {
346
+ class: normalizeClass(unref($style).wrapper),
347
+ "data-test-id": "canvas-wrapper"
348
+ }, [createBaseVNode("div", {
349
+ id: "canvas",
350
+ class: normalizeClass(unref($style).canvas)
351
+ }, [workflow.value ? (openBlock(), createBlock(Canvas_default, mergeProps({
352
+ key: 0,
353
+ id: _ctx.id,
354
+ ref: "canvas",
355
+ nodes: _ctx.executing ? unref(mappedNodesThrottled) : unref(mappedNodes),
356
+ connections: _ctx.executing ? unref(mappedConnectionsThrottled) : unref(mappedConnections),
357
+ "event-bus": _ctx.eventBus,
358
+ "read-only": _ctx.readOnly,
359
+ executing: _ctx.executing,
360
+ "suppress-interaction": _ctx.suppressInteraction
361
+ }, _ctx.$attrs), null, 16, ["id", "nodes", "connections", "event-bus", "read-only", "executing", "suppress-interaction"])) : createCommentVNode("", true)], 2), renderSlot(_ctx.$slots, "default")], 2);
362
+ };
363
+ }
364
+ }); //#endregion
365
+ //#region src/features/workflows/canvas/components/WorkflowCanvas.vue?vue&type=style&index=0&lang.module.scss
366
+ wrapper$2 = "_wrapper_jyurh_123";
367
+ canvas = "_canvas_jyurh_131";
368
+ WorkflowCanvas_vue_vue_type_style_index_0_lang_module_default = {
369
+ wrapper: wrapper$2,
370
+ canvas
371
+ }; //#endregion
372
+ //#region src/features/workflows/canvas/components/WorkflowCanvas.vue
373
+ cssModules$4 = {
374
+ "$style": WorkflowCanvas_vue_vue_type_style_index_0_lang_module_default
375
+ };
376
+ WorkflowCanvas_default = /* @__PURE__ */__plugin_vue_export_helper_default(WorkflowCanvas_vue_vue_type_script_setup_true_lang_default, [["__cssModules", cssModules$4]]); //#endregion
377
+ //#region src/features/workflows/canvas/experimental/components/ExperimentalNodeDetailsDrawer.vue?vue&type=script&setup=true&lang.ts
378
+ ExperimentalNodeDetailsDrawer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({
379
+ __name: "ExperimentalNodeDetailsDrawer",
380
+ props: {
381
+ node: {},
382
+ nodeIds: {},
383
+ isReadOnly: {
384
+ type: Boolean
385
+ }
386
+ },
387
+ emits: ["openNdv", "contextMenuAction"],
388
+ setup(__props, {
389
+ emit: __emit
390
+ }) {
391
+ const emit = __emit;
392
+ const expressionResolveCtx = useExpressionResolveCtx(computed(() => __props.node));
393
+ const contextMenuItems = useContextMenuItems(computed(() => __props.nodeIds));
394
+ const ndvStore = useNDVStore();
395
+ const ndvCloseTimes = ref(0);
396
+ const nodeSettingsViewKey = computed(() => [__props.node.id, ndvCloseTimes.value].join("|"));
397
+ watch(() => ndvStore.activeNodeName, (name, oldName) => {
398
+ if (name === null && oldName !== null) ndvCloseTimes.value += 1;
399
+ });
400
+ provide(ExpressionLocalResolveContextSymbol, expressionResolveCtx);
401
+ return (_ctx, _cache) => {
402
+ return openBlock(), createElementBlock("div", {
403
+ class: normalizeClass(_ctx.$style.component)
404
+ }, [_ctx.nodeIds.length > 1 ? (openBlock(), createBlock(unref(N8nText_default), {
405
+ key: 0,
406
+ tag: "div",
407
+ color: "text-base",
408
+ class: normalizeClass(_ctx.$style.multipleNodes)
409
+ }, {
410
+ default: withCtx(() => [createBaseVNode("div", null, toDisplayString(_ctx.nodeIds.length) + " nodes selected", 1), createBaseVNode("ul", {
411
+ class: normalizeClass(_ctx.$style.multipleNodesActions)
412
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(contextMenuItems), action => {
413
+ return openBlock(), createElementBlock("li", {
414
+ key: action.id,
415
+ class: normalizeClass(_ctx.$style.multipleNodesAction)
416
+ }, [createVNode(unref(N8nButton_default), {
417
+ type: "secondary",
418
+ disabled: action.disabled,
419
+ onClick: $event => emit("contextMenuAction", action.id, _ctx.nodeIds)
420
+ }, {
421
+ default: withCtx(() => [createTextVNode(toDisplayString(action.label) + " ", 1), action.shortcut ? (openBlock(), createBlock(unref(N8nKeyboardShortcut_default), mergeProps({
422
+ key: 0,
423
+ ref_for: true
424
+ }, action.shortcut), null, 16)) : createCommentVNode("", true)]),
425
+ _: 2
426
+ }, 1032, ["disabled", "onClick"])], 2);
427
+ }), 128))], 2)]),
428
+ _: 1
429
+ }, 8, ["class"])) : _ctx.node ? (openBlock(), createBlock(ExperimentalCanvasNodeSettings_default, {
430
+ key: nodeSettingsViewKey.value,
431
+ "node-id": _ctx.node.id,
432
+ "is-read-only": _ctx.isReadOnly
433
+ }, null, 8, ["node-id", "is-read-only"])) : createCommentVNode("", true)], 2);
434
+ };
435
+ }
436
+ }); //#endregion
437
+ //#region src/features/workflows/canvas/experimental/components/ExperimentalNodeDetailsDrawer.vue?vue&type=style&index=0&lang.module.scss
438
+ component$1 = "_component_17fl4_123";
439
+ multipleNodes = "_multipleNodes_17fl4_128";
440
+ multipleNodesActions = "_multipleNodesActions_17fl4_138";
441
+ multipleNodesAction = "_multipleNodesAction_17fl4_138";
442
+ ExperimentalNodeDetailsDrawer_vue_vue_type_style_index_0_lang_module_default = {
443
+ component: component$1,
444
+ multipleNodes,
445
+ multipleNodesActions,
446
+ multipleNodesAction
447
+ }; //#endregion
448
+ //#region src/features/workflows/canvas/experimental/components/ExperimentalNodeDetailsDrawer.vue
449
+ cssModules$3 = {
450
+ "$style": ExperimentalNodeDetailsDrawer_vue_vue_type_style_index_0_lang_module_default
451
+ };
452
+ ExperimentalNodeDetailsDrawer_default = /* @__PURE__ */__plugin_vue_export_helper_default(ExperimentalNodeDetailsDrawer_vue_vue_type_script_setup_true_lang_default, [["__cssModules", cssModules$3]]); //#endregion
453
+ //#region src/features/workflows/canvas/experimental/components/ExperimentalFocusPanelHeader.vue?vue&type=script&setup=true&lang.ts
454
+ ExperimentalFocusPanelHeader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({
455
+ __name: "ExperimentalFocusPanelHeader",
456
+ props: {
457
+ node: {},
458
+ parameter: {},
459
+ isExecutable: {
460
+ type: Boolean
461
+ },
462
+ readOnly: {
463
+ type: Boolean
464
+ }
465
+ },
466
+ emits: ["execute", "openNdv", "clearParameter", "renameNode"],
467
+ setup(__props, {
468
+ emit: __emit
469
+ }) {
470
+ const emit = __emit;
471
+ const nodeTypesStore = useNodeTypesStore();
472
+ const i18n = useI18n();
473
+ const nodeType = computed(() => nodeTypesStore.getNodeType(__props.node.type, __props.node.typeVersion));
474
+ return (_ctx, _cache) => {
475
+ return openBlock(), createBlock(unref(N8nText_default), {
476
+ tag: "header",
477
+ size: "small",
478
+ bold: "",
479
+ class: normalizeClass(_ctx.$style.component)
480
+ }, {
481
+ default: withCtx(() => [createVNode(NodeIcon_default, {
482
+ "node-type": nodeType.value,
483
+ size: 16
484
+ }, null, 8, ["node-type"]), createBaseVNode("div", {
485
+ class: normalizeClass(_ctx.$style.breadcrumbs)
486
+ }, [_ctx.parameter ? (openBlock(), createElementBlock(Fragment, {
487
+ key: 0
488
+ }, [createVNode(unref(N8nText_default), {
489
+ size: "small",
490
+ color: "text-base",
491
+ bold: ""
492
+ }, {
493
+ default: withCtx(() => [createTextVNode(toDisplayString(_ctx.node.name), 1)]),
494
+ _: 1
495
+ }), createVNode(unref(N8nText_default), {
496
+ size: "small",
497
+ color: "text-light"
498
+ }, {
499
+ default: withCtx(() => _cache[4] || (_cache[4] = [createTextVNode("/")])),
500
+ _: 1
501
+ }), createTextVNode(" " + toDisplayString(_ctx.parameter.displayName), 1)], 64)) : (openBlock(), createBlock(unref(N8nInlineTextEdit_default), {
502
+ key: 1,
503
+ "model-value": _ctx.node.name,
504
+ "min-width": 0,
505
+ "max-width": 500,
506
+ placeholder: unref(i18n).baseText("ndv.title.rename.placeholder"),
507
+ "read-only": _ctx.readOnly,
508
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => emit("renameNode", $event))
509
+ }, null, 8, ["model-value", "placeholder", "read-only"]))], 2), _ctx.parameter ? (openBlock(), createBlock(unref(N8nIconButton_default), {
510
+ key: 0,
511
+ icon: "x",
512
+ size: "small",
513
+ type: "tertiary",
514
+ text: "",
515
+ onClick: _cache[1] || (_cache[1] = $event => emit("clearParameter"))
516
+ })) : (openBlock(), createBlock(unref(N8nIconButton_default), {
517
+ key: 1,
518
+ icon: "expand",
519
+ size: "small",
520
+ type: "tertiary",
521
+ text: "",
522
+ onClick: _cache[2] || (_cache[2] = $event => emit("openNdv"))
523
+ })), _ctx.isExecutable ? (openBlock(), createBlock(NodeExecuteButton_default, {
524
+ key: 2,
525
+ "data-test-id": "node-execute-button",
526
+ "node-name": _ctx.node.name,
527
+ tooltip: `Execute ${_ctx.node.name}`,
528
+ type: "secondary",
529
+ size: "small",
530
+ icon: "play",
531
+ square: true,
532
+ "hide-label": true,
533
+ "telemetry-source": "focus",
534
+ onExecute: _cache[3] || (_cache[3] = $event => emit("execute"))
535
+ }, null, 8, ["node-name", "tooltip"])) : createCommentVNode("", true)]),
536
+ _: 1
537
+ }, 8, ["class"]);
538
+ };
539
+ }
540
+ }); //#endregion
541
+ //#region src/features/workflows/canvas/experimental/components/ExperimentalFocusPanelHeader.vue?vue&type=style&index=0&lang.module.scss
542
+ component = "_component_hvb6m_123";
543
+ breadcrumbs = "_breadcrumbs_hvb6m_131";
544
+ ExperimentalFocusPanelHeader_vue_vue_type_style_index_0_lang_module_default = {
545
+ component,
546
+ breadcrumbs
547
+ }; //#endregion
548
+ //#region src/features/workflows/canvas/experimental/components/ExperimentalFocusPanelHeader.vue
549
+ cssModules$2 = {
550
+ "$style": ExperimentalFocusPanelHeader_vue_vue_type_style_index_0_lang_module_default
551
+ };
552
+ ExperimentalFocusPanelHeader_default = /* @__PURE__ */__plugin_vue_export_helper_default(ExperimentalFocusPanelHeader_vue_vue_type_script_setup_true_lang_default, [["__cssModules", cssModules$2]]); //#endregion
553
+ //#region src/app/components/FocusPanel.vue?vue&type=script&setup=true&lang.ts
554
+ FocusPanel_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({
555
+ name: "FocusPanel",
556
+ __name: "FocusPanel",
557
+ props: {
558
+ isCanvasReadOnly: {
559
+ type: Boolean
560
+ }
561
+ },
562
+ emits: ["focus", "saveKeyboardShortcut", "contextMenuAction"],
563
+ setup(__props, {
564
+ emit: __emit
565
+ }) {
566
+ const props = __props;
567
+ const emit = __emit;
568
+ const inputField = ref();
569
+ const wrapperRef = useTemplateRef("wrapper");
570
+ const locale = useI18n();
571
+ const nodeHelpers = useNodeHelpers();
572
+ const focusPanelStore = useFocusPanelStore();
573
+ const workflowsStore = useWorkflowsStore();
574
+ const workflowState = injectWorkflowState();
575
+ const nodeTypesStore = useNodeTypesStore();
576
+ const telemetry = useTelemetry();
577
+ const nodeSettingsParameters = useNodeSettingsParameters();
578
+ const environmentsStore = useEnvironmentsStore();
579
+ const experimentalNdvStore = useExperimentalNdvStore();
580
+ const ndvStore = useNDVStore();
581
+ const deviceSupport = useDeviceSupport();
582
+ const vueFlow = useVueFlow(workflowsStore.workflowId);
583
+ const activeElement = useActiveElement();
584
+ const {
585
+ renameNode
586
+ } = useCanvasOperations();
587
+ useTelemetryContext({
588
+ view_shown: "focus_panel"
589
+ });
590
+ const resolvedParameter = computed(() => focusPanelStore.resolvedParameter);
591
+ const inputValue = ref("");
592
+ const focusPanelActive = computed(() => focusPanelStore.focusPanelActive);
593
+ const focusPanelWidth = computed(() => focusPanelStore.focusPanelWidth);
594
+ const isDisabled = computed(() => {
595
+ if (!resolvedParameter.value) return false;
596
+ return !!resolvedParameter.value.parameter.disabledOptions && nodeSettingsParameters.shouldDisplayNodeParameter(resolvedParameter.value.node.parameters, resolvedParameter.value.node, resolvedParameter.value.parameter, resolvedParameter.value.parameterPath.split(".").slice(1, -1).join("."), "disabledOptions");
597
+ });
598
+ const isDisplayed = computed(() => {
599
+ if (!resolvedParameter.value) return true;
600
+ return nodeSettingsParameters.shouldDisplayNodeParameter(resolvedParameter.value.node.parameters, resolvedParameter.value.node, resolvedParameter.value.parameter, resolvedParameter.value.parameterPath.split(".").slice(1, -1).join("."), "displayOptions");
601
+ });
602
+ const node = computed(() => {
603
+ if (!experimentalNdvStore.isNdvInFocusPanelEnabled || resolvedParameter.value) return resolvedParameter.value?.node;
604
+ const selected = vueFlow.getSelectedNodes.value[0];
605
+ return selected?.data?.render.type === CanvasNodeRenderType.Default ? workflowsStore.allNodes.find(n => n.id === selected.id) : void 0;
606
+ });
607
+ const multipleNodesSelected = computed(() => vueFlow.getSelectedNodes.value.length > 1);
608
+ const isExecutable = computed(() => {
609
+ if (!node.value) return false;
610
+ if (!isDisplayed.value) return false;
611
+ const foreignCredentials = nodeHelpers.getForeignCredentialsIfSharingEnabled(node.value.credentials);
612
+ return nodeHelpers.isNodeExecutable(node.value, !props.isCanvasReadOnly, foreignCredentials);
613
+ });
614
+ const {
615
+ workflowRunData
616
+ } = useExecutionData({
617
+ node
618
+ });
619
+ const hasNodeRun = computed(() => {
620
+ if (!node.value) return true;
621
+ const parentNode = workflowsStore.workflowObject.getParentNodes(node.value.name, "main", 1)[0];
622
+ return Boolean(parentNode && workflowRunData.value && Object.prototype.hasOwnProperty.bind(workflowRunData.value)(parentNode));
623
+ });
624
+ function getTypeOption(optionName) {
625
+ return resolvedParameter.value ? getParameterTypeOption(resolvedParameter.value.parameter, optionName) : void 0;
626
+ }
627
+ const codeEditorMode = computed(() => {
628
+ return resolvedParameter.value?.node.parameters.mode;
629
+ });
630
+ const editorType = computed(() => {
631
+ return getTypeOption("editor") ?? void 0;
632
+ });
633
+ const editorLanguage = computed(() => {
634
+ if (editorType.value === "json" || resolvedParameter.value?.parameter.type === "json") return "json";
635
+ return getTypeOption("editorLanguage") ?? "javaScript";
636
+ });
637
+ const editorRows = computed(() => getTypeOption("rows"));
638
+ const isToolNode = computed(() => resolvedParameter.value ? nodeTypesStore.isToolNode(resolvedParameter.value?.node.type) : false);
639
+ const isHtmlNode = computed(() => !!resolvedParameter.value && resolvedParameter.value.node.type === "n8n-nodes-base.html");
640
+ const expressionModeEnabled = computed(() => resolvedParameter.value && isValueExpression(resolvedParameter.value.parameter, resolvedParameter.value.value));
641
+ const expression = computed(() => {
642
+ if (!expressionModeEnabled.value) return "";
643
+ return isResourceLocatorValue(resolvedParameter.value) ? resolvedParameter.value.value : resolvedParameter.value;
644
+ });
645
+ const shouldCaptureForPosthog = computed(() => resolvedParameter.value?.node.type === AI_TRANSFORM_NODE_TYPE);
646
+ const isReadOnly = computed(() => props.isCanvasReadOnly || isDisabled.value);
647
+ const resolvedAdditionalExpressionData = computed(() => {
648
+ return {
649
+ $vars: environmentsStore.variablesAsObject
650
+ };
651
+ });
652
+ const targetNodeParameterContext = computed(() => {
653
+ if (!resolvedParameter.value) return void 0;
654
+ return {
655
+ nodeName: resolvedParameter.value.node.name,
656
+ parameterPath: resolvedParameter.value.parameterPath
657
+ };
658
+ });
659
+ const isNodeExecuting = computed(() => workflowState.executingNode.isNodeExecuting(node.value?.name ?? ""));
660
+ const selectedNodeIds = computed(() => vueFlow.getSelectedNodes.value.map(n => n.id));
661
+ const emptyTitle = computed(() => experimentalNdvStore.isNdvInFocusPanelEnabled ? locale.baseText("nodeView.focusPanel.v2.noParameters.title") : locale.baseText("nodeView.focusPanel.noParameters.title"));
662
+ const emptySubtitle = computed(() => experimentalNdvStore.isNdvInFocusPanelEnabled ? locale.baseText("nodeView.focusPanel.v2.noParameters.subtitle") : locale.baseText("nodeView.focusPanel.noParameters.subtitle"));
663
+ const {
664
+ resolvedExpression
665
+ } = useResolvedExpression({
666
+ expression,
667
+ additionalData: resolvedAdditionalExpressionData,
668
+ stringifyObject: resolvedParameter.value && resolvedParameter.value.parameter.type !== "multiOptions"
669
+ });
670
+ function valueChanged(value) {
671
+ if (resolvedParameter.value === void 0) return;
672
+ nodeSettingsParameters.updateNodeParameter(toRef(resolvedParameter.value.node.parameters), {
673
+ value,
674
+ name: resolvedParameter.value.parameterPath
675
+ }, value, resolvedParameter.value.node, isToolNode.value);
676
+ }
677
+ async function setFocus() {
678
+ await nextTick();
679
+ if (inputField.value) {
680
+ if (hasFocusOnInput(inputField.value)) inputField.value.focusOnInput();else if (isFocusableEl(inputField.value)) inputField.value.focus();
681
+ }
682
+ emit("focus");
683
+ }
684
+ function optionSelected(command) {
685
+ if (!resolvedParameter.value) return;
686
+ switch (command) {
687
+ case "resetValue":
688
+ if (typeof resolvedParameter.value.parameter.default === "string") valueChanged(resolvedParameter.value.parameter.default);
689
+ setFocus();
690
+ break;
691
+ case "addExpression":
692
+ {
693
+ const newValue = formatAsExpression(resolvedParameter.value.value, resolvedParameter.value.parameter.type);
694
+ valueChanged(typeof newValue === "string" ? newValue : newValue.value);
695
+ setFocus();
696
+ break;
697
+ }
698
+ case "removeExpression":
699
+ {
700
+ const newValue = parseFromExpression(resolvedParameter.value.value, resolvedExpression.value, resolvedParameter.value.parameter.type, resolvedParameter.value.parameter.default, (resolvedParameter.value.parameter.options ?? []).filter(isValidParameterOption));
701
+ if (typeof newValue === "string") valueChanged(newValue);else if (newValue && typeof newValue.value === "string") valueChanged(newValue.value);
702
+ setFocus();
703
+ break;
704
+ }
705
+ case "formatHtml":
706
+ htmlEditorEventBus.emit("format-html");
707
+ break;
708
+ }
709
+ }
710
+ function closeFocusPanel() {
711
+ if (experimentalNdvStore.isNdvInFocusPanelEnabled && resolvedParameter.value) {
712
+ focusPanelStore.unsetParameters();
713
+ telemetry.track("User removed focused param", {
714
+ source: "closeIcon",
715
+ parameters: focusPanelStore.focusedNodeParametersInTelemetryFormat
716
+ });
717
+ return;
718
+ }
719
+ telemetry.track("User closed focus panel", {
720
+ source: "closeIcon",
721
+ parameters: focusPanelStore.focusedNodeParametersInTelemetryFormat
722
+ });
723
+ focusPanelStore.closeFocusPanel();
724
+ }
725
+ function onExecute() {
726
+ telemetry.track("User executed node from focus panel", focusPanelStore.focusedNodeParametersInTelemetryFormat[0]);
727
+ }
728
+ function onInputChange(val) {
729
+ inputValue.value = val;
730
+ valueChanged(val);
731
+ }
732
+ function focusWithDelay() {
733
+ setTimeout(() => {
734
+ setFocus();
735
+ }, 50);
736
+ }
737
+ function handleKeydown(event) {
738
+ if (event.key === "s" && deviceSupport.isCtrlKeyPressed(event)) {
739
+ event.stopPropagation();
740
+ event.preventDefault();
741
+ if (isReadOnly.value) return;
742
+ emit("saveKeyboardShortcut", event);
743
+ }
744
+ }
745
+ const registerKeyboardListener = () => {
746
+ document.addEventListener("keydown", handleKeydown, true);
747
+ };
748
+ const unregisterKeyboardListener = () => {
749
+ document.removeEventListener("keydown", handleKeydown, true);
750
+ };
751
+ watch([() => focusPanelStore.lastFocusTimestamp, () => expressionModeEnabled.value], () => focusWithDelay());
752
+ watch(() => focusPanelStore.focusPanelActive, newValue => {
753
+ if (newValue) registerKeyboardListener();else unregisterKeyboardListener();
754
+ }, {
755
+ immediate: true
756
+ });
757
+ watch(() => resolvedParameter.value, newValue => {
758
+ if (newValue) {
759
+ const value = newValue.value;
760
+ if (typeof value === "string" && value !== inputValue.value) inputValue.value = value;
761
+ }
762
+ }, {
763
+ immediate: true
764
+ });
765
+ watch(activeElement, active => {
766
+ if (!node.value || !active || !wrapperRef.value?.contains(active)) return;
767
+ const path = active.closest(".parameter-input")?.getAttribute("data-parameter-path");
768
+ if (!path) return;
769
+ telemetry.track("User focused focus panel", {
770
+ node_id: node.value.id,
771
+ node_type: node.value.type,
772
+ parameter_path: path
773
+ });
774
+ });
775
+ function onResize(event) {
776
+ focusPanelStore.updateWidth(event.width);
777
+ }
778
+ const onResizeThrottle = useThrottleFn(onResize, 10);
779
+ function onOpenNdv() {
780
+ if (node.value) ndvStore.setActiveNodeName(node.value.name, "focus_panel");
781
+ }
782
+ function onRenameNode(value) {
783
+ if (node.value) renameNode(node.value.name, value);
784
+ }
785
+ return (_ctx, _cache) => {
786
+ return focusPanelActive.value ? (openBlock(), createElementBlock("div", {
787
+ key: 0,
788
+ ref: "wrapper",
789
+ "data-test-id": "focus-panel",
790
+ class: normalizeClass([_ctx.$style.wrapper, "ignore-key-press-canvas", {
791
+ [_ctx.$style.isNdvInFocusPanelEnabled]: unref(experimentalNdvStore).isNdvInFocusPanelEnabled
792
+ }]),
793
+ onKeydown: _cache[10] || (_cache[10] = withModifiers(() => {}, ["stop"]))
794
+ }, [createVNode(unref(N8nResizeWrapper_default), {
795
+ width: focusPanelWidth.value,
796
+ "supported-directions": ["left"],
797
+ "min-width": 300,
798
+ "max-width": unref(experimentalNdvStore).isNdvInFocusPanelEnabled ? void 0 : 1e3,
799
+ "grid-size": 8,
800
+ style: normalizeStyle({
801
+ width: `${focusPanelWidth.value}px`
802
+ }),
803
+ onResize: unref(onResizeThrottle)
804
+ }, {
805
+ default: withCtx(() => [createBaseVNode("div", {
806
+ class: normalizeClass(_ctx.$style.container)
807
+ }, [unref(experimentalNdvStore).isNdvInFocusPanelEnabled && node.value && !multipleNodesSelected.value ? (openBlock(), createBlock(ExperimentalFocusPanelHeader_default, {
808
+ key: 0,
809
+ node: node.value,
810
+ parameter: resolvedParameter.value?.parameter,
811
+ "is-executable": isExecutable.value,
812
+ "read-only": _ctx.isCanvasReadOnly,
813
+ onExecute,
814
+ onOpenNdv,
815
+ onClearParameter: closeFocusPanel,
816
+ onRenameNode
817
+ }, null, 8, ["node", "parameter", "is-executable", "read-only"])) : createCommentVNode("", true), resolvedParameter.value ? (openBlock(), createElementBlock("div", {
818
+ key: 1,
819
+ class: normalizeClass(_ctx.$style.content),
820
+ "data-test-id": "focus-parameter"
821
+ }, [!unref(experimentalNdvStore).isNdvInFocusPanelEnabled ? (openBlock(), createElementBlock("div", {
822
+ key: 0,
823
+ class: normalizeClass(_ctx.$style.tabHeader)
824
+ }, [createBaseVNode("div", {
825
+ class: normalizeClass(_ctx.$style.tabHeaderText)
826
+ }, [createVNode(unref(N8nText_default), {
827
+ color: "text-dark",
828
+ size: "small"
829
+ }, {
830
+ default: withCtx(() => [createTextVNode(toDisplayString(resolvedParameter.value.parameter.displayName), 1)]),
831
+ _: 1
832
+ }), createVNode(unref(N8nText_default), {
833
+ color: "text-base",
834
+ size: "xsmall"
835
+ }, {
836
+ default: withCtx(() => [createTextVNode(toDisplayString(resolvedParameter.value.node.name), 1)]),
837
+ _: 1
838
+ })], 2), createBaseVNode("div", {
839
+ class: normalizeClass(_ctx.$style.buttonWrapper)
840
+ }, [createVNode(NodeExecuteButton_default, {
841
+ "data-test-id": "node-execute-button",
842
+ "node-name": resolvedParameter.value.node.name,
843
+ tooltip: `Execute ${resolvedParameter.value.node.name}`,
844
+ disabled: !isExecutable.value,
845
+ size: "small",
846
+ icon: "play",
847
+ square: true,
848
+ "hide-label": true,
849
+ "telemetry-source": "focus",
850
+ onExecute
851
+ }, null, 8, ["node-name", "tooltip", "disabled"]), createVNode(unref(N8nIcon_default), {
852
+ class: normalizeClass(_ctx.$style.closeButton),
853
+ icon: "x",
854
+ color: "text-base",
855
+ size: "xlarge",
856
+ onClick: closeFocusPanel
857
+ }, null, 8, ["class"])], 2)], 2)) : createCommentVNode("", true), createBaseVNode("div", {
858
+ class: normalizeClass(_ctx.$style.parameterDetailsWrapper)
859
+ }, [createBaseVNode("div", {
860
+ class: normalizeClass(_ctx.$style.parameterOptionsWrapper)
861
+ }, [createBaseVNode("div", {
862
+ class: normalizeClass(_ctx.$style.noExecutionDataTip)
863
+ }, [!hasNodeRun.value && !isNodeExecuting.value ? (openBlock(), createBlock(unref(N8nInfoTip_default), {
864
+ key: 0,
865
+ class: normalizeClass(_ctx.$style.delayedShow),
866
+ bold: true
867
+ }, {
868
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("nodeView.focusPanel.noExecutionData")), 1)]),
869
+ _: 1
870
+ }, 8, ["class"])) : createCommentVNode("", true)], 2), isDisplayed.value ? (openBlock(), createBlock(ParameterOptions_default, {
871
+ key: 0,
872
+ parameter: resolvedParameter.value.parameter,
873
+ value: resolvedParameter.value.value,
874
+ "is-read-only": isReadOnly.value,
875
+ "onUpdate:modelValue": optionSelected
876
+ }, null, 8, ["parameter", "value", "is-read-only"])) : createCommentVNode("", true)], 2), typeof resolvedParameter.value.value === "string" ? (openBlock(), createElementBlock("div", {
877
+ key: 0,
878
+ class: normalizeClass(_ctx.$style.editorContainer)
879
+ }, [!isDisplayed.value ? (openBlock(), createElementBlock("div", {
880
+ key: 0,
881
+ class: normalizeClass([_ctx.$style.content, _ctx.$style.emptyContent])
882
+ }, [createBaseVNode("div", {
883
+ class: normalizeClass(_ctx.$style.emptyText)
884
+ }, [createVNode(unref(N8nText_default), {
885
+ color: "text-base"
886
+ }, {
887
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("nodeView.focusPanel.missingParameter")), 1)]),
888
+ _: 1
889
+ })], 2)], 2)) : expressionModeEnabled.value ? (openBlock(), createBlock(ExpressionEditorModalInput_default, {
890
+ key: 1,
891
+ ref_key: "inputField",
892
+ ref: inputField,
893
+ modelValue: inputValue.value,
894
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => inputValue.value = $event),
895
+ class: normalizeClass(_ctx.$style.editor),
896
+ "is-read-only": isReadOnly.value,
897
+ path: resolvedParameter.value.parameterPath,
898
+ "data-test-id": "expression-modal-input",
899
+ "target-node-parameter-context": targetNodeParameterContext.value,
900
+ onChange: _cache[1] || (_cache[1] = $event => onInputChange($event.value))
901
+ }, null, 8, ["modelValue", "class", "is-read-only", "path", "target-node-parameter-context"])) : ["json", "string"].includes(resolvedParameter.value.parameter.type) ? (openBlock(), createElementBlock(Fragment, {
902
+ key: 2
903
+ }, [editorType.value === "codeNodeEditor" ? (openBlock(), createBlock(CodeNodeEditor_default, {
904
+ key: 0,
905
+ id: resolvedParameter.value.parameterPath,
906
+ ref_key: "inputField",
907
+ ref: inputField,
908
+ modelValue: inputValue.value,
909
+ "onUpdate:modelValue": [_cache[2] || (_cache[2] = $event => inputValue.value = $event), onInputChange],
910
+ class: normalizeClass(_ctx.$style.heightFull),
911
+ mode: codeEditorMode.value,
912
+ "default-value": resolvedParameter.value.parameter.default,
913
+ language: editorLanguage.value,
914
+ "is-read-only": isReadOnly.value,
915
+ "target-node-parameter-context": targetNodeParameterContext.value,
916
+ "fill-parent": "",
917
+ "disable-ask-ai": true
918
+ }, null, 8, ["id", "modelValue", "class", "mode", "default-value", "language", "is-read-only", "target-node-parameter-context"])) : editorType.value === "htmlEditor" ? (openBlock(), createBlock(HtmlEditor_default, {
919
+ key: 1,
920
+ ref_key: "inputField",
921
+ ref: inputField,
922
+ modelValue: inputValue.value,
923
+ "onUpdate:modelValue": [_cache[3] || (_cache[3] = $event => inputValue.value = $event), onInputChange],
924
+ "is-read-only": isReadOnly.value,
925
+ rows: editorRows.value,
926
+ "disable-expression-coloring": !isHtmlNode.value,
927
+ "disable-expression-completions": !isHtmlNode.value,
928
+ fullscreen: "",
929
+ "target-node-parameter-context": targetNodeParameterContext.value
930
+ }, null, 8, ["modelValue", "is-read-only", "rows", "disable-expression-coloring", "disable-expression-completions", "target-node-parameter-context"])) : editorType.value === "cssEditor" ? (openBlock(), createBlock(CssEditor_default, {
931
+ key: 2,
932
+ ref_key: "inputField",
933
+ ref: inputField,
934
+ modelValue: inputValue.value,
935
+ "onUpdate:modelValue": [_cache[4] || (_cache[4] = $event => inputValue.value = $event), onInputChange],
936
+ "is-read-only": isReadOnly.value,
937
+ rows: editorRows.value,
938
+ fullscreen: "",
939
+ "target-node-parameter-context": targetNodeParameterContext.value
940
+ }, null, 8, ["modelValue", "is-read-only", "rows", "target-node-parameter-context"])) : editorType.value === "sqlEditor" ? (openBlock(), createBlock(SqlEditor_default, {
941
+ key: 3,
942
+ ref_key: "inputField",
943
+ ref: inputField,
944
+ modelValue: inputValue.value,
945
+ "onUpdate:modelValue": [_cache[5] || (_cache[5] = $event => inputValue.value = $event), onInputChange],
946
+ dialect: getTypeOption("sqlDialect"),
947
+ "is-read-only": isReadOnly.value,
948
+ rows: editorRows.value,
949
+ fullscreen: "",
950
+ "target-node-parameter-context": targetNodeParameterContext.value
951
+ }, null, 8, ["modelValue", "dialect", "is-read-only", "rows", "target-node-parameter-context"])) : editorType.value === "jsEditor" ? (openBlock(), createBlock(JsEditor_default, {
952
+ key: 4,
953
+ ref_key: "inputField",
954
+ ref: inputField,
955
+ modelValue: inputValue.value,
956
+ "onUpdate:modelValue": [_cache[6] || (_cache[6] = $event => inputValue.value = $event), onInputChange],
957
+ "is-read-only": isReadOnly.value,
958
+ rows: editorRows.value,
959
+ "posthog-capture": shouldCaptureForPosthog.value,
960
+ "fill-parent": ""
961
+ }, null, 8, ["modelValue", "is-read-only", "rows", "posthog-capture"])) : resolvedParameter.value.parameter.type === "json" ? (openBlock(), createBlock(JsonEditor_default, {
962
+ key: 5,
963
+ ref_key: "inputField",
964
+ ref: inputField,
965
+ modelValue: inputValue.value,
966
+ "onUpdate:modelValue": [_cache[7] || (_cache[7] = $event => inputValue.value = $event), onInputChange],
967
+ "is-read-only": isReadOnly.value,
968
+ rows: editorRows.value,
969
+ fullscreen: "",
970
+ "fill-parent": ""
971
+ }, null, 8, ["modelValue", "is-read-only", "rows"])) : (openBlock(), createBlock(unref(N8nInput_default), {
972
+ key: 6,
973
+ ref_key: "inputField",
974
+ ref: inputField,
975
+ modelValue: inputValue.value,
976
+ "onUpdate:modelValue": [_cache[8] || (_cache[8] = $event => inputValue.value = $event), onInputChange],
977
+ class: normalizeClass(_ctx.$style.editor),
978
+ readonly: isReadOnly.value,
979
+ type: "textarea",
980
+ resize: "none"
981
+ }, null, 8, ["modelValue", "class", "readonly"]))], 64)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)], 2)], 2)) : node.value && unref(experimentalNdvStore).isNdvInFocusPanelEnabled ? (openBlock(), createBlock(ExperimentalNodeDetailsDrawer_default, {
982
+ key: 2,
983
+ node: node.value,
984
+ "node-ids": selectedNodeIds.value,
985
+ "is-read-only": isReadOnly.value,
986
+ onOpenNdv,
987
+ onContextMenuAction: _cache[9] || (_cache[9] = (action, nodeIds) => emit("contextMenuAction", action, nodeIds))
988
+ }, null, 8, ["node", "node-ids", "is-read-only"])) : (openBlock(), createElementBlock("div", {
989
+ key: 3,
990
+ class: normalizeClass([_ctx.$style.content, _ctx.$style.emptyContent])
991
+ }, [createBaseVNode("div", {
992
+ class: normalizeClass(_ctx.$style.focusParameterWrapper)
993
+ }, [createBaseVNode("div", {
994
+ class: normalizeClass(_ctx.$style.iconWrapper)
995
+ }, [createVNode(unref(N8nIcon_default), {
996
+ class: normalizeClass(_ctx.$style.forceHover),
997
+ icon: "panel-right",
998
+ size: "medium"
999
+ }, null, 8, ["class"]), createVNode(unref(N8nIcon_default), {
1000
+ class: normalizeClass(_ctx.$style.pointerIcon),
1001
+ icon: "mouse-pointer",
1002
+ color: "text-dark",
1003
+ size: "large"
1004
+ }, null, 8, ["class"])], 2), createVNode(unref(N8nIcon_default), {
1005
+ icon: "ellipsis-vertical",
1006
+ size: "small",
1007
+ color: "text-base"
1008
+ }), createVNode(unref(N8nRadioButtons_default), {
1009
+ size: "small",
1010
+ "model-value": "expression",
1011
+ disabled: true,
1012
+ options: [{
1013
+ label: unref(locale).baseText("parameterInput.fixed"),
1014
+ value: "fixed"
1015
+ }, {
1016
+ label: unref(locale).baseText("parameterInput.expression"),
1017
+ value: "expression"
1018
+ }]
1019
+ }, null, 8, ["options"])], 2), createBaseVNode("div", {
1020
+ class: normalizeClass(_ctx.$style.emptyText)
1021
+ }, [createVNode(unref(N8nText_default), {
1022
+ color: "text-base",
1023
+ size: "medium",
1024
+ bold: true
1025
+ }, {
1026
+ default: withCtx(() => [createTextVNode(toDisplayString(emptyTitle.value), 1)]),
1027
+ _: 1
1028
+ }), createVNode(unref(N8nText_default), {
1029
+ color: "text-base",
1030
+ size: "small"
1031
+ }, {
1032
+ default: withCtx(() => [createTextVNode(toDisplayString(emptySubtitle.value), 1)]),
1033
+ _: 1
1034
+ })], 2)], 2))], 2)]),
1035
+ _: 1
1036
+ }, 8, ["width", "max-width", "style", "onResize"])], 34)) : createCommentVNode("", true);
1037
+ };
1038
+ }
1039
+ }); //#endregion
1040
+ //#region src/app/components/FocusPanel.vue?vue&type=style&index=0&lang.module.scss
1041
+ wrapper$1 = "_wrapper_1aqcs_123";
1042
+ container = "_container_1aqcs_135";
1043
+ content = "_content_1aqcs_141";
1044
+ emptyContent = "_emptyContent_1aqcs_147";
1045
+ isNdvInFocusPanelEnabled = "_isNdvInFocusPanelEnabled_1aqcs_152";
1046
+ emptyText = "_emptyText_1aqcs_155";
1047
+ focusParameterWrapper = "_focusParameterWrapper_1aqcs_161";
1048
+ iconWrapper = "_iconWrapper_1aqcs_168";
1049
+ pointerIcon = "_pointerIcon_1aqcs_172";
1050
+ tabHeader = "_tabHeader_1aqcs_182";
1051
+ tabHeaderText = "_tabHeaderText_1aqcs_189";
1052
+ buttonWrapper = "_buttonWrapper_1aqcs_194";
1053
+ parameterDetailsWrapper = "_parameterDetailsWrapper_1aqcs_199";
1054
+ parameterOptionsWrapper = "_parameterOptionsWrapper_1aqcs_206";
1055
+ noExecutionDataTip = "_noExecutionDataTip_1aqcs_210";
1056
+ editorContainer = "_editorContainer_1aqcs_213";
1057
+ editor = "_editor_1aqcs_213";
1058
+ delayedShow = "_delayedShow_1aqcs_228";
1059
+ triggerShow = "_triggerShow_1aqcs_1";
1060
+ closeButton = "_closeButton_1aqcs_239";
1061
+ heightFull = "_heightFull_1aqcs_243";
1062
+ forceHover = "_forceHover_1aqcs_247";
1063
+ FocusPanel_vue_vue_type_style_index_0_lang_module_default = {
1064
+ wrapper: wrapper$1,
1065
+ container,
1066
+ content,
1067
+ emptyContent,
1068
+ isNdvInFocusPanelEnabled,
1069
+ emptyText,
1070
+ focusParameterWrapper,
1071
+ iconWrapper,
1072
+ pointerIcon,
1073
+ tabHeader,
1074
+ tabHeaderText,
1075
+ buttonWrapper,
1076
+ parameterDetailsWrapper,
1077
+ parameterOptionsWrapper,
1078
+ noExecutionDataTip,
1079
+ editorContainer,
1080
+ editor,
1081
+ delayedShow,
1082
+ triggerShow,
1083
+ closeButton,
1084
+ heightFull,
1085
+ forceHover
1086
+ }; //#endregion
1087
+ //#region src/app/components/FocusPanel.vue
1088
+ cssModules$1 = {
1089
+ "$style": FocusPanel_vue_vue_type_style_index_0_lang_module_default
1090
+ };
1091
+ FocusPanel_default = /* @__PURE__ */__plugin_vue_export_helper_default(FocusPanel_vue_vue_type_script_setup_true_lang_default, [["__cssModules", cssModules$1]]); //#endregion
1092
+ //#region src/app/composables/useGlobalLinkActions.ts
1093
+ state = reactive({
1094
+ customActions: {},
1095
+ delegatedClickHandler: null
1096
+ });
1097
+ CanvasStopCurrentExecutionButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({
1098
+ __name: "CanvasStopCurrentExecutionButton",
1099
+ props: {
1100
+ stopping: {
1101
+ type: Boolean
1102
+ }
1103
+ },
1104
+ setup(__props) {
1105
+ const props = __props;
1106
+ const i18n = useI18n();
1107
+ const title = computed(() => props.stopping ? i18n.baseText("nodeView.stoppingCurrentExecution") : i18n.baseText("nodeView.stopCurrentExecution"));
1108
+ return (_ctx, _cache) => {
1109
+ return openBlock(), createBlock(unref(N8nIconButton_default), {
1110
+ icon: "square",
1111
+ size: "large",
1112
+ class: "stop-execution",
1113
+ type: "secondary",
1114
+ title: title.value,
1115
+ loading: _ctx.stopping,
1116
+ "data-test-id": "stop-execution-button"
1117
+ }, null, 8, ["title", "loading"]);
1118
+ };
1119
+ }
1120
+ }); //#endregion
1121
+ //#region src/features/workflows/canvas/components/elements/buttons/CanvasStopCurrentExecutionButton.vue
1122
+ CanvasStopCurrentExecutionButton_default = CanvasStopCurrentExecutionButton_vue_vue_type_script_setup_true_lang_default; //#endregion
1123
+ //#region src/features/workflows/canvas/components/elements/buttons/CanvasStopWaitingForWebhookButton.vue?vue&type=script&setup=true&lang.ts
1124
+ CanvasStopWaitingForWebhookButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({
1125
+ __name: "CanvasStopWaitingForWebhookButton",
1126
+ setup(__props) {
1127
+ const i18n = useI18n();
1128
+ return (_ctx, _cache) => {
1129
+ return openBlock(), createBlock(unref(N8nIconButton_default), {
1130
+ class: "stop-execution",
1131
+ icon: "square",
1132
+ size: "large",
1133
+ title: unref(i18n).baseText("nodeView.stopWaitingForWebhookCall"),
1134
+ type: "secondary",
1135
+ "data-test-id": "stop-execution-waiting-for-webhook-button"
1136
+ }, null, 8, ["title"]);
1137
+ };
1138
+ }
1139
+ }); //#endregion
1140
+ //#region src/features/workflows/canvas/components/elements/buttons/CanvasStopWaitingForWebhookButton.vue
1141
+ CanvasStopWaitingForWebhookButton_default = CanvasStopWaitingForWebhookButton_vue_vue_type_script_setup_true_lang_default; //#endregion
1142
+ //#region src/app/components/NodeViewUnfinishedWorkflowMessage.vue?vue&type=script&setup=true&lang.ts
1143
+ _hoisted_1 = {
1144
+ "data-action": "reload"
1145
+ };
1146
+ _hoisted_2 = {
1147
+ href: "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.wait/",
1148
+ target: "_blank"
1149
+ };
1150
+ NodeViewUnfinishedWorkflowMessage_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({
1151
+ __name: "NodeViewUnfinishedWorkflowMessage",
1152
+ setup(__props) {
1153
+ const i18 = useI18n();
1154
+ return (_ctx, _cache) => {
1155
+ return openBlock(), createElementBlock("div", null, [createBaseVNode("a", _hoisted_1, toDisplayString(unref(i18).baseText("nodeView.refresh")), 1), createTextVNode(" " + toDisplayString(unref(i18).baseText("nodeView.toSeeTheLatestStatus")) + ". ", 1), _cache[0] || (_cache[0] = createBaseVNode("br", null, null, -1)), createBaseVNode("a", _hoisted_2, toDisplayString(unref(i18).baseText("nodeView.moreInfo")), 1)]);
1156
+ };
1157
+ }
1158
+ }); //#endregion
1159
+ //#region src/app/components/NodeViewUnfinishedWorkflowMessage.vue
1160
+ NodeViewUnfinishedWorkflowMessage_default = NodeViewUnfinishedWorkflowMessage_vue_vue_type_script_setup_true_lang_default; //#endregion
1161
+ //#region src/features/workflows/canvas/components/elements/buttons/CanvasChatButton.vue?vue&type=script&setup=true&lang.ts
1162
+ CanvasChatButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({
1163
+ __name: "CanvasChatButton",
1164
+ props: {
1165
+ label: {},
1166
+ type: {}
1167
+ },
1168
+ setup(__props) {
1169
+ return (_ctx, _cache) => {
1170
+ return openBlock(), createBlock(unref(N8nButton_default), {
1171
+ label: _ctx.label,
1172
+ size: "large",
1173
+ icon: "message-circle",
1174
+ type: _ctx.type,
1175
+ "data-test-id": "workflow-chat-button"
1176
+ }, null, 8, ["label", "type"]);
1177
+ };
1178
+ }
1179
+ }); //#endregion
1180
+ //#region src/features/workflows/canvas/components/elements/buttons/CanvasChatButton.vue
1181
+ CanvasChatButton_default = CanvasChatButton_vue_vue_type_script_setup_true_lang_default; //#endregion
1182
+ //#region src/app/views/NodeView.vue?vue&type=script&setup=true&lang.ts
1183
+ NodeView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({
1184
+ name: "NodeView",
1185
+ __name: "NodeView",
1186
+ setup(__props) {
1187
+ const LazyNodeCreation = defineAsyncComponent(async () => await __vitePreload(() => _context.import("./NodeCreation-legacy-C2W0brGN.js"), true ? void 0 : void 0));
1188
+ const LazyNodeDetailsView = defineAsyncComponent(async () => await __vitePreload(() => _context.import("./NodeDetailsView-legacy-DDTRIVzE.js"), true ? void 0 : void 0));
1189
+ const LazyNodeDetailsViewV2 = defineAsyncComponent(async () => await __vitePreload(() => _context.import("./NodeDetailsViewV2-legacy-CK4dIDeL.js"), true ? void 0 : void 0));
1190
+ const LazySetupWorkflowCredentialsButton = defineAsyncComponent(async () => await __vitePreload(() => _context.import("./SetupWorkflowCredentialsButton-legacy-QokrFtZ-.js"), true ? void 0 : void 0));
1191
+ const $style = useCssModule();
1192
+ const router = useRouter();
1193
+ const route = useRoute();
1194
+ const i18n = useI18n();
1195
+ const telemetry = useTelemetry();
1196
+ const externalHooks = useExternalHooks();
1197
+ const toast = useToast();
1198
+ const message = useMessage();
1199
+ const documentTitle = useDocumentTitle();
1200
+ const workflowSaving = useWorkflowSaving({
1201
+ router
1202
+ });
1203
+ const nodeHelpers = useNodeHelpers();
1204
+ const nodeTypesStore = useNodeTypesStore();
1205
+ const uiStore = useUIStore();
1206
+ const workflowsStore = useWorkflowsStore();
1207
+ const sourceControlStore = useSourceControlStore();
1208
+ const nodeCreatorStore = useNodeCreatorStore();
1209
+ const settingsStore = useSettingsStore();
1210
+ const credentialsStore = useCredentialsStore();
1211
+ const environmentsStore = useEnvironmentsStore();
1212
+ const externalSecretsStore = useExternalSecretsStore();
1213
+ const rootStore = useRootStore();
1214
+ const executionsStore = useExecutionsStore();
1215
+ const canvasStore = useCanvasStore();
1216
+ const npsSurveyStore = useNpsSurveyStore();
1217
+ const historyStore = useHistoryStore();
1218
+ const projectsStore = useProjectsStore();
1219
+ const usersStore = useUsersStore();
1220
+ const tagsStore = useTagsStore();
1221
+ const pushConnectionStore = usePushConnectionStore();
1222
+ const ndvStore = useNDVStore();
1223
+ const focusPanelStore = useFocusPanelStore();
1224
+ const builderStore = useBuilderStore();
1225
+ const posthogStore = usePostHog();
1226
+ const agentRequestStore = useAgentRequestStore();
1227
+ const logsStore = useLogsStore();
1228
+ const aiTemplatesStarterCollectionStore = useAITemplatesStarterCollectionStore();
1229
+ const readyToRunWorkflowsStore = useReadyToRunWorkflowsStore();
1230
+ const experimentalNdvStore = useExperimentalNdvStore();
1231
+ const workflowState = useWorkflowState();
1232
+ provide(WorkflowStateKey, workflowState);
1233
+ const {
1234
+ addBeforeUnloadEventBindings,
1235
+ removeBeforeUnloadEventBindings
1236
+ } = useBeforeUnload({
1237
+ route
1238
+ });
1239
+ const {
1240
+ registerCustomAction,
1241
+ unregisterCustomAction
1242
+ } = useGlobalLinkActions();
1243
+ const {
1244
+ runWorkflow,
1245
+ runEntireWorkflow,
1246
+ stopCurrentExecution,
1247
+ stopWaitingForWebhook
1248
+ } = useRunWorkflow({
1249
+ router
1250
+ });
1251
+ const {
1252
+ updateNodePosition,
1253
+ updateNodesPosition,
1254
+ tidyUp,
1255
+ revertUpdateNodePosition,
1256
+ renameNode,
1257
+ revertRenameNode,
1258
+ revertReplaceNodeParameters,
1259
+ setNodeActive,
1260
+ setNodeSelected,
1261
+ toggleNodesDisabled,
1262
+ revertToggleNodeDisabled,
1263
+ toggleNodesPinned,
1264
+ setNodeParameters,
1265
+ deleteNode,
1266
+ deleteNodes,
1267
+ copyNodes,
1268
+ cutNodes,
1269
+ duplicateNodes,
1270
+ revertDeleteNode,
1271
+ revertAddNode,
1272
+ createConnection,
1273
+ revertCreateConnection,
1274
+ deleteConnection,
1275
+ revertDeleteConnection,
1276
+ revalidateNodeInputConnections,
1277
+ revalidateNodeOutputConnections,
1278
+ setNodeActiveByName,
1279
+ clearNodeActive,
1280
+ tryToOpenSubworkflowInNewTab,
1281
+ importWorkflowData,
1282
+ fetchWorkflowDataFromUrl,
1283
+ resetWorkspace,
1284
+ initializeWorkspace,
1285
+ openExecution,
1286
+ editableWorkflow,
1287
+ editableWorkflowObject,
1288
+ lastClickPosition,
1289
+ startChat,
1290
+ addNodesAndConnections,
1291
+ fitView,
1292
+ openWorkflowTemplate,
1293
+ openWorkflowTemplateFromJSON
1294
+ } = useCanvasOperations();
1295
+ const {
1296
+ extractWorkflow
1297
+ } = useWorkflowExtraction();
1298
+ const {
1299
+ applyExecutionData
1300
+ } = useExecutionDebugging();
1301
+ const {
1302
+ fetchAndSetParentFolder
1303
+ } = useParentFolder();
1304
+ useClipboard({
1305
+ onPaste: onClipboardPaste
1306
+ });
1307
+ useKeybindings({
1308
+ ctrl_alt_o: () => uiStore.openModal(ABOUT_MODAL_KEY)
1309
+ });
1310
+ const canvasRef = useTemplateRef("canvas");
1311
+ const isLoading = ref(true);
1312
+ const readOnlyNotification = ref(null);
1313
+ const isProductionExecutionPreview = ref(false);
1314
+ const isExecutionPreview = ref(false);
1315
+ const canOpenNDV = ref(true);
1316
+ const hideNodeIssues = ref(false);
1317
+ const fallbackNodes = ref([]);
1318
+ const initializedWorkflowId = ref();
1319
+ const workflowId = computed(() => {
1320
+ const workflowIdParam = route.params.name;
1321
+ return ["__EMPTY__", "new"].includes(workflowIdParam) ? void 0 : workflowIdParam;
1322
+ });
1323
+ const routeNodeId = computed(() => route.params.nodeId);
1324
+ const isNewWorkflowRoute = computed(() => route.name === VIEWS.NEW_WORKFLOW || !workflowId.value);
1325
+ const isWorkflowRoute = computed(() => !!route?.meta?.nodeView || isDemoRoute.value);
1326
+ const isDemoRoute = computed(() => route.name === VIEWS.DEMO);
1327
+ const isReadOnlyRoute = computed(() => !!route?.meta?.readOnlyCanvas);
1328
+ const isReadOnlyEnvironment = computed(() => {
1329
+ return sourceControlStore.preferences.branchReadOnly;
1330
+ });
1331
+ const isNDVV2 = computed(() => posthogStore.isVariantEnabled(NDV_UI_OVERHAUL_EXPERIMENT.name, NDV_UI_OVERHAUL_EXPERIMENT.variant));
1332
+ const isCanvasReadOnly = computed(() => {
1333
+ return isDemoRoute.value || isReadOnlyEnvironment.value || !(workflowPermissions.value.update ?? projectPermissions.value.workflow.update) || editableWorkflow.value.isArchived || builderStore.streaming;
1334
+ });
1335
+ const showFallbackNodes = computed(() => triggerNodes.value.length === 0);
1336
+ const keyBindingsEnabled = computed(() => {
1337
+ return !ndvStore.activeNode && uiStore.activeModals.length === 0;
1338
+ });
1339
+ const isLogsPanelOpen = computed(() => logsStore.isOpen);
1340
+ /**
1341
+ * Initialization
1342
+ */
1343
+ async function initializeData() {
1344
+ const loadPromises = (() => {
1345
+ if (settingsStore.isPreviewMode && isDemoRoute.value) return [];
1346
+ const promises = [workflowsStore.fetchActiveWorkflows(), credentialsStore.fetchAllCredentials(), credentialsStore.fetchCredentialTypes(true)];
1347
+ if (settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.Variables]) promises.push(environmentsStore.fetchAllVariables());
1348
+ if (settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.ExternalSecrets]) promises.push(externalSecretsStore.fetchAllSecrets());
1349
+ return promises;
1350
+ })();
1351
+ if (nodeTypesStore.allNodeTypes.length === 0) loadPromises.push(nodeTypesStore.getNodeTypes());
1352
+ try {
1353
+ await Promise.all(loadPromises);
1354
+ nodeTypesStore.fetchCommunityNodePreviews();
1355
+ } catch (error) {
1356
+ toast.showError(error, i18n.baseText("nodeView.showError.mounted1.title"), i18n.baseText("nodeView.showError.mounted1.message") + ":");
1357
+ return;
1358
+ }
1359
+ }
1360
+ async function initializeRoute(force = false) {
1361
+ if (route.query.action === "workflowSave") {
1362
+ uiStore.stateIsDirty = false;
1363
+ await router.replace({
1364
+ query: {
1365
+ ...route.query,
1366
+ action: void 0
1367
+ }
1368
+ });
1369
+ return;
1370
+ }
1371
+ if (route.query.action === "addEvaluationTrigger") nodeCreatorStore.openNodeCreatorForTriggerNodes(NODE_CREATOR_OPEN_SOURCES.ADD_EVALUATION_TRIGGER_BUTTON);else if (route.query.action === "addEvaluationNode") nodeCreatorStore.openNodeCreatorForActions(EVALUATION_NODE_TYPE, NODE_CREATOR_OPEN_SOURCES.ADD_EVALUATION_NODE_BUTTON);else if (route.query.action === "executeEvaluation") {
1372
+ if (evaluationTriggerNode.value) runEntireWorkflow("node", evaluationTriggerNode.value.name);
1373
+ }
1374
+ const isAlreadyInitialized = !force && initializedWorkflowId.value && ["new", workflowId.value].includes(initializedWorkflowId.value);
1375
+ if (uiStore.isBlankRedirect) uiStore.isBlankRedirect = false;else if (route.name === VIEWS.TEMPLATE_IMPORT) {
1376
+ const loadWorkflowFromJSON = route.query.fromJson === "true";
1377
+ const templateId = route.params.id;
1378
+ if (!templateId) return;
1379
+ if (loadWorkflowFromJSON) {
1380
+ const workflow = getSampleWorkflowByTemplateId(templateId.toString());
1381
+ if (!workflow) {
1382
+ toast.showError(new Error(i18n.baseText("nodeView.couldntLoadWorkflow.invalidWorkflowObject")), i18n.baseText("nodeView.couldntImportWorkflow"));
1383
+ await router.replace({
1384
+ name: VIEWS.NEW_WORKFLOW
1385
+ });
1386
+ return;
1387
+ }
1388
+ await openWorkflowTemplateFromJSON(workflow);
1389
+ } else await openWorkflowTemplate(templateId.toString());
1390
+ } else if (isWorkflowRoute.value) {
1391
+ if (!isAlreadyInitialized) {
1392
+ historyStore.reset();
1393
+ if (!isDemoRoute.value) await loadCredentials();
1394
+ if (isNewWorkflowRoute.value || !workflowId.value) {
1395
+ if (route.meta?.nodeView === true) await initializeWorkspaceForNewWorkflow();
1396
+ return;
1397
+ }
1398
+ await initializeWorkspaceForExistingWorkflow(workflowId.value);
1399
+ nextTick(() => {
1400
+ updateNodesIssues();
1401
+ });
1402
+ }
1403
+ if (route.name === VIEWS.EXECUTION_DEBUG) await initializeDebugMode();
1404
+ }
1405
+ }
1406
+ async function initializeWorkspaceForNewWorkflow() {
1407
+ resetWorkspace();
1408
+ const parentFolderId = route.query.parentFolderId;
1409
+ await workflowState.getNewWorkflowDataAndMakeShareable(void 0, projectsStore.currentProjectId, parentFolderId);
1410
+ await projectsStore.refreshCurrentProject();
1411
+ await fetchAndSetParentFolder(parentFolderId);
1412
+ uiStore.nodeViewInitialized = true;
1413
+ initializedWorkflowId.value = "new";
1414
+ }
1415
+ async function initializeWorkspaceForExistingWorkflow(id) {
1416
+ try {
1417
+ const workflowData = await workflowsStore.fetchWorkflow(id);
1418
+ openWorkflow(workflowData);
1419
+ if (workflowData.parentFolder) workflowsStore.setParentFolder(workflowData.parentFolder);
1420
+ if (workflowData.meta?.onboardingId) trackOpenWorkflowFromOnboardingTemplate();
1421
+ if (workflowData.meta?.templateId?.startsWith("035_template_onboarding")) aiTemplatesStarterCollectionStore.trackUserOpenedWorkflow(workflowData.meta.templateId.split("-").pop() ?? "");
1422
+ if (workflowData.meta?.templateId?.startsWith("37_onboarding_experiments_batch_aug11")) readyToRunWorkflowsStore.trackOpenWorkflow(workflowData.meta.templateId.split("-").pop() ?? "");
1423
+ await projectsStore.setProjectNavActiveIdByWorkflowHomeProject(workflowData.homeProject, workflowData.sharedWithProjects);
1424
+ workflowsStore.fetchLastSuccessfulExecution();
1425
+ } catch (error) {
1426
+ if (error.httpStatusCode === 404) return await router.replace({
1427
+ name: VIEWS.ENTITY_NOT_FOUND,
1428
+ params: {
1429
+ entityType: "workflow"
1430
+ }
1431
+ });
1432
+ if (error.httpStatusCode === 403) return await router.replace({
1433
+ name: VIEWS.ENTITY_UNAUTHORIZED,
1434
+ params: {
1435
+ entityType: "workflow"
1436
+ }
1437
+ });
1438
+ toast.showError(error, i18n.baseText("openWorkflow.workflowNotFoundError"));
1439
+ router.push({
1440
+ name: VIEWS.NEW_WORKFLOW
1441
+ });
1442
+ } finally {
1443
+ uiStore.nodeViewInitialized = true;
1444
+ initializedWorkflowId.value = workflowId.value;
1445
+ }
1446
+ }
1447
+ function updateNodesIssues() {
1448
+ nodeHelpers.updateNodesInputIssues();
1449
+ nodeHelpers.updateNodesCredentialsIssues();
1450
+ nodeHelpers.updateNodesParameterIssues();
1451
+ }
1452
+ /**
1453
+ * Workflow
1454
+ */
1455
+ function openWorkflow(data) {
1456
+ resetWorkspace();
1457
+ documentTitle.setDocumentTitle(data.name, "IDLE");
1458
+ initializeWorkspace(data);
1459
+ externalHooks.run("workflow.open", {
1460
+ workflowId: data.id,
1461
+ workflowName: data.name
1462
+ });
1463
+ fitView();
1464
+ }
1465
+ function trackOpenWorkflowFromOnboardingTemplate() {
1466
+ telemetry.track(`User opened workflow from onboarding template with ID ${editableWorkflow.value.meta?.onboardingId}`, {
1467
+ workflow_id: workflowId.value
1468
+ });
1469
+ }
1470
+ /**
1471
+ * Nodes
1472
+ */
1473
+ const triggerNodes = computed(() => {
1474
+ return editableWorkflow.value.nodes.filter(node => node.type === "n8n-nodes-base.start" || nodeTypesStore.isTriggerNode(node.type));
1475
+ });
1476
+ const containsTriggerNodes = computed(() => triggerNodes.value.length > 0);
1477
+ const allTriggerNodesDisabled = computed(() => {
1478
+ return triggerNodes.value.filter(node => node.disabled).length === triggerNodes.value.length;
1479
+ });
1480
+ function onTidyUp(event, options) {
1481
+ tidyUp(event, options);
1482
+ }
1483
+ function onExtractWorkflow(nodeIds) {
1484
+ extractWorkflow(nodeIds);
1485
+ }
1486
+ function onUpdateNodesPosition(events) {
1487
+ updateNodesPosition(events, {
1488
+ trackHistory: true
1489
+ });
1490
+ }
1491
+ function onUpdateNodePosition(id, position) {
1492
+ updateNodePosition(id, position, {
1493
+ trackHistory: true
1494
+ });
1495
+ }
1496
+ function onRevertNodePosition({
1497
+ nodeName,
1498
+ position
1499
+ }) {
1500
+ revertUpdateNodePosition(nodeName, {
1501
+ x: position[0],
1502
+ y: position[1]
1503
+ });
1504
+ }
1505
+ function onDeleteNode(id) {
1506
+ const matchedFallbackNode = fallbackNodes.value.findIndex(node => node.id === id);
1507
+ if (matchedFallbackNode >= 0) fallbackNodes.value.splice(matchedFallbackNode, 1);else deleteNode(id, {
1508
+ trackHistory: true
1509
+ });
1510
+ }
1511
+ function onDeleteNodes(ids) {
1512
+ deleteNodes(ids);
1513
+ }
1514
+ function onRevertDeleteNode({
1515
+ node
1516
+ }) {
1517
+ revertDeleteNode(node);
1518
+ }
1519
+ function onToggleNodeDisabled(id) {
1520
+ if (!checkIfEditingIsAllowed()) return;
1521
+ toggleNodesDisabled([id]);
1522
+ }
1523
+ function onRevertToggleNodeDisabled({
1524
+ nodeName
1525
+ }) {
1526
+ revertToggleNodeDisabled(nodeName);
1527
+ }
1528
+ function onToggleNodesDisabled(ids) {
1529
+ if (!checkIfEditingIsAllowed()) return;
1530
+ toggleNodesDisabled(ids);
1531
+ }
1532
+ function onClickNode(_id, event) {
1533
+ lastClickPosition.value = [event.x, event.y];
1534
+ closeNodeCreator();
1535
+ }
1536
+ function onSetNodeActivated(id, event) {
1537
+ if (event?.metaKey || event?.ctrlKey) {
1538
+ if (tryToOpenSubworkflowInNewTab(id)) return;
1539
+ }
1540
+ setNodeActive(id, "canvas_default_view");
1541
+ }
1542
+ function onOpenSubWorkflow(id) {
1543
+ tryToOpenSubworkflowInNewTab(id);
1544
+ }
1545
+ function onSetNodeDeactivated() {
1546
+ clearNodeActive();
1547
+ }
1548
+ function onSetNodeSelected(id) {
1549
+ closeNodeCreator();
1550
+ setNodeSelected(id);
1551
+ }
1552
+ async function onCopyNodes(ids) {
1553
+ await copyNodes(ids);
1554
+ toast.showMessage({
1555
+ title: i18n.baseText("generic.copiedToClipboard"),
1556
+ type: "success"
1557
+ });
1558
+ }
1559
+ async function onClipboardPaste(plainTextData) {
1560
+ if (getNodeViewTab(route) !== MAIN_HEADER_TABS.WORKFLOW || !keyBindingsEnabled.value || !checkIfEditingIsAllowed()) return;
1561
+ let workflowData = null;
1562
+ if (plainTextData.match(VALID_WORKFLOW_IMPORT_URL_REGEX)) {
1563
+ if ((await message.confirm(i18n.baseText("nodeView.confirmMessage.onClipboardPasteEvent.message", {
1564
+ interpolate: {
1565
+ plainTextData
1566
+ }
1567
+ }), i18n.baseText("nodeView.confirmMessage.onClipboardPasteEvent.headline"), {
1568
+ type: "warning",
1569
+ confirmButtonText: i18n.baseText("nodeView.confirmMessage.onClipboardPasteEvent.confirmButtonText"),
1570
+ cancelButtonText: i18n.baseText("nodeView.confirmMessage.onClipboardPasteEvent.cancelButtonText")
1571
+ })) !== "confirm") return;
1572
+ workflowData = await fetchWorkflowDataFromUrl(plainTextData);
1573
+ } else workflowData = jsonParse(plainTextData, {
1574
+ fallbackValue: null
1575
+ });
1576
+ if (!workflowData) return;
1577
+ selectNodes((await importWorkflowData(workflowData, "paste", {
1578
+ importTags: false,
1579
+ viewport: viewportBoundaries.value
1580
+ })).nodes?.map(node => node.id) ?? []);
1581
+ }
1582
+ async function onCutNodes(ids) {
1583
+ if (isCanvasReadOnly.value) await copyNodes(ids);else await cutNodes(ids);
1584
+ }
1585
+ async function onDuplicateNodes(ids) {
1586
+ if (!checkIfEditingIsAllowed()) return;
1587
+ selectNodes(await duplicateNodes(ids, {
1588
+ viewport: viewportBoundaries.value
1589
+ }));
1590
+ }
1591
+ function onPinNodes(ids, source) {
1592
+ if (!checkIfEditingIsAllowed()) return;
1593
+ toggleNodesPinned(ids, source);
1594
+ }
1595
+ async function onSaveWorkflow() {
1596
+ const workflowIsSaved = !uiStore.stateIsDirty && !workflowsStore.isNewWorkflow;
1597
+ const workflowIsArchived = workflowsStore.workflow.isArchived;
1598
+ if (workflowIsSaved || workflowIsArchived) return;
1599
+ if (await workflowSaving.saveCurrentWorkflow()) canvasEventBus.emit("saved:workflow");
1600
+ }
1601
+ function onContextMenuAction(action, nodeIds) {
1602
+ canvasRef.value?.executeContextMenuAction(action, nodeIds);
1603
+ }
1604
+ function addWorkflowSavedEventBindings() {
1605
+ canvasEventBus.on("saved:workflow", npsSurveyStore.fetchPromptsData);
1606
+ canvasEventBus.on("saved:workflow", onSaveFromWithinNDV);
1607
+ }
1608
+ function removeWorkflowSavedEventBindings() {
1609
+ canvasEventBus.off("saved:workflow", npsSurveyStore.fetchPromptsData);
1610
+ canvasEventBus.off("saved:workflow", onSaveFromWithinNDV);
1611
+ canvasEventBus.off("saved:workflow", onSaveFromWithinExecutionDebug);
1612
+ }
1613
+ async function onSaveFromWithinNDV() {
1614
+ if (ndvStore.activeNodeName) toast.showMessage({
1615
+ title: i18n.baseText("generic.workflowSaved"),
1616
+ type: "success"
1617
+ });
1618
+ }
1619
+ async function onCreateWorkflow() {
1620
+ await router.push({
1621
+ name: VIEWS.NEW_WORKFLOW
1622
+ });
1623
+ }
1624
+ function onRenameNode(name) {
1625
+ if (ndvStore.activeNode?.name) renameNode(ndvStore.activeNode.name, name);
1626
+ }
1627
+ async function onOpenRenameNodeModal(id) {
1628
+ const currentName = workflowsStore.getNodeById(id)?.name ?? "";
1629
+ const activeElement = document.activeElement;
1630
+ if (activeElement && shouldIgnoreCanvasShortcut(activeElement)) return;
1631
+ if (!keyBindingsEnabled.value || document.querySelector(".rename-prompt")) return;
1632
+ try {
1633
+ const promptResponsePromise = message.prompt(i18n.baseText("nodeView.prompt.newName") + ":", i18n.baseText("nodeView.prompt.renameNode") + `: ${currentName}`, {
1634
+ customClass: "rename-prompt",
1635
+ confirmButtonText: i18n.baseText("nodeView.prompt.rename"),
1636
+ cancelButtonText: i18n.baseText("nodeView.prompt.cancel"),
1637
+ inputErrorMessage: i18n.baseText("nodeView.prompt.invalidName"),
1638
+ inputValue: currentName,
1639
+ inputValidator: value => {
1640
+ if (!value.trim()) return i18n.baseText("nodeView.prompt.invalidName");
1641
+ return true;
1642
+ }
1643
+ });
1644
+ await nextTick();
1645
+ const nameInput = document.querySelector(".rename-prompt .el-input__inner");
1646
+ nameInput?.focus();
1647
+ nameInput?.select();
1648
+ let shouldSaveAfterRename = false;
1649
+ const handleKeyDown = e => {
1650
+ if ((e.ctrlKey || e.metaKey) && e.key === "s") {
1651
+ e.preventDefault();
1652
+ shouldSaveAfterRename = true;
1653
+ nameInput?.dispatchEvent(new KeyboardEvent("keydown", {
1654
+ key: "Enter"
1655
+ }));
1656
+ }
1657
+ };
1658
+ nameInput?.addEventListener("keydown", handleKeyDown);
1659
+ const promptResponse = await promptResponsePromise;
1660
+ nameInput?.removeEventListener("keydown", handleKeyDown);
1661
+ if (promptResponse.action === "confirm") {
1662
+ await renameNode(currentName, promptResponse.value, {
1663
+ trackHistory: true
1664
+ });
1665
+ if (shouldSaveAfterRename) await onSaveWorkflow();
1666
+ }
1667
+ } catch (e) {}
1668
+ }
1669
+ async function onRevertRenameNode({
1670
+ currentName,
1671
+ newName
1672
+ }) {
1673
+ await revertRenameNode(currentName, newName);
1674
+ }
1675
+ async function onRevertReplaceNodeParameters({
1676
+ nodeId,
1677
+ currentProperties,
1678
+ newProperties
1679
+ }) {
1680
+ await revertReplaceNodeParameters(nodeId, currentProperties, newProperties);
1681
+ }
1682
+ function onUpdateNodeParameters(id, parameters) {
1683
+ setNodeParameters(id, parameters);
1684
+ }
1685
+ function onUpdateNodeInputs(id) {
1686
+ revalidateNodeInputConnections(id);
1687
+ }
1688
+ function onUpdateNodeOutputs(id) {
1689
+ revalidateNodeOutputConnections(id);
1690
+ }
1691
+ function onClickNodeAdd(source, sourceHandle) {
1692
+ nodeCreatorStore.openNodeCreatorForConnectingNode({
1693
+ connection: {
1694
+ source,
1695
+ sourceHandle
1696
+ },
1697
+ eventSource: NODE_CREATOR_OPEN_SOURCES.PLUS_ENDPOINT
1698
+ });
1699
+ }
1700
+ /**
1701
+ * Credentials
1702
+ */
1703
+ async function loadCredentials() {
1704
+ let options;
1705
+ if (workflowId.value) options = {
1706
+ workflowId: workflowId.value
1707
+ };else {
1708
+ const projectId = (typeof route.query?.projectId === "string" ? route.query?.projectId : void 0) ?? projectsStore.personalProject?.id;
1709
+ if (projectId === void 0) throw new Error("Could not find projectId in the query nor could I find the personal project in the project store");
1710
+ options = {
1711
+ projectId
1712
+ };
1713
+ }
1714
+ await credentialsStore.fetchAllCredentialsForWorkflow(options);
1715
+ }
1716
+ /**
1717
+ * Connections
1718
+ */
1719
+ function onCreateConnection(connection) {
1720
+ createConnection(connection, {
1721
+ trackHistory: true
1722
+ });
1723
+ }
1724
+ function onRevertCreateConnection({
1725
+ connection
1726
+ }) {
1727
+ revertCreateConnection(connection);
1728
+ }
1729
+ function onCreateConnectionCancelled(event, position, mouseEvent) {
1730
+ if ((mouseEvent?.target).classList?.contains("clickable")) return;
1731
+ uiStore.lastInteractedWithNodeId = event.nodeId;
1732
+ uiStore.lastInteractedWithNodeHandle = event.handleId;
1733
+ uiStore.lastCancelledConnectionPosition = [position.x, position.y];
1734
+ setTimeout(() => {
1735
+ if (!event.nodeId) return;
1736
+ nodeCreatorStore.openNodeCreatorForConnectingNode({
1737
+ connection: {
1738
+ source: event.nodeId,
1739
+ sourceHandle: event.handleId
1740
+ },
1741
+ eventSource: NODE_CREATOR_OPEN_SOURCES.NODE_CONNECTION_DROP
1742
+ });
1743
+ });
1744
+ }
1745
+ function onDeleteConnection(connection) {
1746
+ deleteConnection(connection, {
1747
+ trackHistory: true
1748
+ });
1749
+ }
1750
+ function onRevertDeleteConnection({
1751
+ connection
1752
+ }) {
1753
+ revertDeleteConnection(connection);
1754
+ }
1755
+ /**
1756
+ * Import / Export
1757
+ */
1758
+ async function importWorkflowExact({
1759
+ workflow: workflowData
1760
+ }) {
1761
+ if (!workflowData.nodes || !workflowData.connections) throw new Error("Invalid workflow object");
1762
+ resetWorkspace();
1763
+ await initializeData();
1764
+ initializeWorkspace({
1765
+ ...workflowData,
1766
+ nodes: getNodesWithNormalizedPosition(workflowData.nodes)
1767
+ });
1768
+ fitView();
1769
+ }
1770
+ async function onImportWorkflowDataEvent(data) {
1771
+ const workflowData = data.data;
1772
+ const trackEvents = typeof data.trackEvents === "boolean" ? data.trackEvents : void 0;
1773
+ await importWorkflowData(workflowData, "file", {
1774
+ viewport: viewportBoundaries.value,
1775
+ regenerateIds: data.regenerateIds === true || data.regenerateIds === void 0,
1776
+ trackEvents
1777
+ });
1778
+ await nextTick();
1779
+ fitView();
1780
+ selectNodes(workflowData.nodes?.map(node => node.id) ?? []);
1781
+ if (data.tidyUp) {
1782
+ const nodesIdsToTidyUp = data.nodesIdsToTidyUp;
1783
+ setTimeout(async () => {
1784
+ canvasEventBus.emit("tidyUp", {
1785
+ source: "import-workflow-data",
1786
+ nodeIdsFilter: nodesIdsToTidyUp,
1787
+ trackEvents
1788
+ });
1789
+ await nextTick();
1790
+ fitView();
1791
+ }, 0);
1792
+ }
1793
+ }
1794
+ async function onImportWorkflowUrlEvent(data) {
1795
+ const workflowData = await fetchWorkflowDataFromUrl(data.url);
1796
+ if (!workflowData) return;
1797
+ await importWorkflowData(workflowData, "url", {
1798
+ viewport: viewportBoundaries.value
1799
+ });
1800
+ fitView();
1801
+ selectNodes(workflowData.nodes?.map(node => node.id) ?? []);
1802
+ }
1803
+ function addImportEventBindings() {
1804
+ nodeViewEventBus.on("importWorkflowData", onImportWorkflowDataEvent);
1805
+ nodeViewEventBus.on("importWorkflowUrl", onImportWorkflowUrlEvent);
1806
+ nodeViewEventBus.on("openChat", onOpenChat);
1807
+ }
1808
+ function removeImportEventBindings() {
1809
+ nodeViewEventBus.off("importWorkflowData", onImportWorkflowDataEvent);
1810
+ nodeViewEventBus.off("importWorkflowUrl", onImportWorkflowUrlEvent);
1811
+ nodeViewEventBus.off("openChat", onOpenChat);
1812
+ }
1813
+ /**
1814
+ * Node creator
1815
+ */
1816
+ const nodeCreatorReplaceTargetId = ref(void 0);
1817
+ function onNodeCreatorClose() {
1818
+ nodeCreatorReplaceTargetId.value = void 0;
1819
+ }
1820
+ async function onAddNodesAndConnections({
1821
+ nodes,
1822
+ connections
1823
+ }, dragAndDrop = false, position) {
1824
+ if (!checkIfEditingIsAllowed()) return;
1825
+ if (nodeCreatorReplaceTargetId.value !== void 0) {
1826
+ uiStore.resetLastInteractedWith();
1827
+ nodes = nodes.map(x => ({
1828
+ ...x,
1829
+ openDetail: false
1830
+ }));
1831
+ }
1832
+ const {
1833
+ addedNodes
1834
+ } = await addNodesAndConnections(nodes, connections, {
1835
+ dragAndDrop,
1836
+ position,
1837
+ viewport: viewportBoundaries.value,
1838
+ telemetry: true,
1839
+ replaceNodeId: nodeCreatorReplaceTargetId.value
1840
+ });
1841
+ if (addedNodes.length > 0) {
1842
+ const lastAddedNodeId = addedNodes[addedNodes.length - 1].id;
1843
+ selectNodes([lastAddedNodeId]);
1844
+ }
1845
+ }
1846
+ async function onRevertAddNode({
1847
+ node
1848
+ }) {
1849
+ await revertAddNode(node.name);
1850
+ }
1851
+ function onSwitchActiveNode(nodeName) {
1852
+ const node = workflowsStore.getNodeByName(nodeName);
1853
+ if (!node) return;
1854
+ setNodeActiveByName(nodeName, "other");
1855
+ selectNodes([node.id]);
1856
+ }
1857
+ function onOpenSelectiveNodeCreator(node, connectionType, connectionIndex = 0) {
1858
+ nodeCreatorStore.openSelectiveNodeCreator({
1859
+ node,
1860
+ connectionType,
1861
+ connectionIndex
1862
+ });
1863
+ }
1864
+ function onToggleNodeCreator(options) {
1865
+ nodeCreatorStore.setNodeCreatorState(options);
1866
+ if (!options.createNodeActive) {
1867
+ nodeCreatorReplaceTargetId.value = void 0;
1868
+ if (!options.hasAddedNodes) uiStore.resetLastInteractedWith();
1869
+ }
1870
+ }
1871
+ function onOpenNodeCreatorFromCanvas(source) {
1872
+ onToggleNodeCreator({
1873
+ createNodeActive: true,
1874
+ source
1875
+ });
1876
+ }
1877
+ function onOpenNodeCreatorForTriggerNodes(source) {
1878
+ nodeCreatorStore.openNodeCreatorForTriggerNodes(source);
1879
+ }
1880
+ function onToggleFocusPanel() {
1881
+ focusPanelStore.toggleFocusPanel();
1882
+ telemetry.track(`User ${focusPanelStore.focusPanelActive ? "opened" : "closed"} focus panel`, {
1883
+ source: "canvasKeyboardShortcut",
1884
+ parameters: focusPanelStore.focusedNodeParametersInTelemetryFormat,
1885
+ parameterCount: focusPanelStore.focusedNodeParametersInTelemetryFormat.length
1886
+ });
1887
+ }
1888
+ function closeNodeCreator() {
1889
+ if (nodeCreatorStore.isCreateNodeActive) nodeCreatorStore.isCreateNodeActive = false;
1890
+ }
1891
+ function onCreateSticky() {
1892
+ onAddNodesAndConnections({
1893
+ nodes: [{
1894
+ type: STICKY_NODE_TYPE
1895
+ }],
1896
+ connections: []
1897
+ });
1898
+ }
1899
+ function onClickConnectionAdd(connection) {
1900
+ nodeCreatorStore.openNodeCreatorForConnectingNode({
1901
+ connection,
1902
+ eventSource: NODE_CREATOR_OPEN_SOURCES.NODE_CONNECTION_ACTION
1903
+ });
1904
+ }
1905
+ function onClickReplaceNode(nodeId) {
1906
+ const node = workflowsStore.getNodeById(nodeId);
1907
+ if (!node) return;
1908
+ const nodeType = nodeTypesStore.getNodeType(node.type);
1909
+ if (!nodeType) return;
1910
+ nodeCreatorReplaceTargetId.value = nodeId;
1911
+ if (isTriggerNode(nodeType)) nodeCreatorStore.openNodeCreatorForTriggerNodes(NODE_CREATOR_OPEN_SOURCES.REPLACE_NODE_ACTION);else {
1912
+ const inputs = getNodeInputs(editableWorkflowObject.value, node, nodeType).map(output => typeof output === "string" ? output : output.type);
1913
+ const outputs = getNodeOutputs(editableWorkflowObject.value, node, nodeType).map(output => typeof output === "string" ? output : output.type);
1914
+ if (inputs[0] && outputs[0] && inputs[0] !== outputs[0]) nodeCreatorStore.openNodeCreatorForRegularNodes(NODE_CREATOR_OPEN_SOURCES.REPLACE_NODE_ACTION);else nodeCreatorStore.openSelectiveNodeCreator({
1915
+ connectionType: inputs[0] ?? outputs[0],
1916
+ node: node.name
1917
+ });
1918
+ }
1919
+ }
1920
+ /**
1921
+ * Permissions
1922
+ */
1923
+ const workflowPermissions = computed(() => {
1924
+ return workflowId.value ? getResourcePermissions(workflowsStore.getWorkflowById(workflowId.value)?.scopes).workflow : {};
1925
+ });
1926
+ const projectPermissions = computed(() => {
1927
+ return getResourcePermissions((route.query?.projectId ? projectsStore.myProjects.find(p => p.id === route.query.projectId) : projectsStore.currentProject ?? projectsStore.personalProject)?.scopes);
1928
+ });
1929
+ /**
1930
+ * Executions
1931
+ */
1932
+ const isStoppingExecution = ref(false);
1933
+ const isWorkflowRunning = computed(() => workflowsStore.isWorkflowRunning);
1934
+ const isExecutionWaitingForWebhook = computed(() => workflowsStore.executionWaitingForWebhook);
1935
+ const isExecutionDisabled = computed(() => {
1936
+ if (containsChatTriggerNodes.value && isOnlyChatTriggerNodeActive.value && !chatTriggerNodePinnedData.value) return true;
1937
+ return !containsTriggerNodes.value || allTriggerNodesDisabled.value;
1938
+ });
1939
+ const isRunWorkflowButtonVisible = computed(() => !isOnlyChatTriggerNodeActive.value || chatTriggerNodePinnedData.value);
1940
+ const isStopExecutionButtonVisible = computed(() => isWorkflowRunning.value && !isExecutionWaitingForWebhook.value);
1941
+ const isStopWaitingForWebhookButtonVisible = computed(() => isWorkflowRunning.value && isExecutionWaitingForWebhook.value);
1942
+ async function onRunWorkflowToNode(id) {
1943
+ const node = workflowsStore.getNodeById(id);
1944
+ if (!node) return;
1945
+ if (needsAgentInput(node) && nodeTypesStore.isToolNode(node.type)) uiStore.openModalWithData({
1946
+ name: FROM_AI_PARAMETERS_MODAL_KEY,
1947
+ data: {
1948
+ nodeName: node.name
1949
+ }
1950
+ });else {
1951
+ trackRunWorkflowToNode(node);
1952
+ agentRequestStore.clearAgentRequests(workflowsStore.workflowId, node.id);
1953
+ runWorkflow({
1954
+ destinationNode: node.name,
1955
+ source: "Node.executeNode"
1956
+ });
1957
+ }
1958
+ }
1959
+ function trackRunWorkflowToNode(node) {
1960
+ const telemetryPayload = {
1961
+ node_type: node.type,
1962
+ workflow_id: workflowsStore.workflowId,
1963
+ source: "canvas",
1964
+ push_ref: ndvStore.pushRef
1965
+ };
1966
+ telemetry.track("User clicked execute node button", telemetryPayload);
1967
+ externalHooks.run("nodeView.onRunNode", telemetryPayload);
1968
+ }
1969
+ async function onOpenExecution(executionId, nodeId) {
1970
+ canvasStore.startLoading();
1971
+ resetWorkspace();
1972
+ await initializeData();
1973
+ const data = await openExecution(executionId, nodeId);
1974
+ if (!data) return;
1975
+ nextTick(() => {
1976
+ updateNodesIssues();
1977
+ });
1978
+ canvasStore.stopLoading();
1979
+ fitView();
1980
+ canvasEventBus.emit("open:execution", data);
1981
+ externalHooks.run("execution.open", {
1982
+ workflowId: data.workflowData.id,
1983
+ workflowName: data.workflowData.name,
1984
+ executionId
1985
+ });
1986
+ telemetry.track("User opened read-only execution", {
1987
+ workflow_id: data.workflowData.id,
1988
+ execution_mode: data.mode,
1989
+ execution_finished: data.finished
1990
+ });
1991
+ }
1992
+ function onExecutionOpenedWithError(data) {
1993
+ if (!data.finished && data.data?.resultData?.error) {
1994
+ let nodeErrorFound = false;
1995
+ if (data.data.resultData.runData) {
1996
+ const runData = data.data.resultData.runData;
1997
+ errorCheck: for (const nodeName of Object.keys(runData)) for (const taskData of runData[nodeName]) if (taskData.error) {
1998
+ nodeErrorFound = true;
1999
+ break errorCheck;
2000
+ }
2001
+ }
2002
+ if (!nodeErrorFound && (data.data.resultData.error.stack ?? data.data.resultData.error.message)) {
2003
+ console.error(`Execution ${data.id} error:`);
2004
+ console.error(data.data.resultData.error.stack);
2005
+ toast.showMessage({
2006
+ title: i18n.baseText("nodeView.showError.workflowError"),
2007
+ message: data.data.resultData.error.message,
2008
+ type: "error",
2009
+ duration: 0
2010
+ });
2011
+ }
2012
+ }
2013
+ }
2014
+ function onExecutionOpenedWithWaitTill(data) {
2015
+ if (data.waitTill) toast.showMessage({
2016
+ title: i18n.baseText("nodeView.thisExecutionHasntFinishedYet"),
2017
+ message: h(NodeViewUnfinishedWorkflowMessage_default),
2018
+ type: "warning",
2019
+ duration: 0
2020
+ });
2021
+ }
2022
+ function addExecutionOpenedEventBindings() {
2023
+ canvasEventBus.on("open:execution", onExecutionOpenedWithError);
2024
+ canvasEventBus.on("open:execution", onExecutionOpenedWithWaitTill);
2025
+ }
2026
+ function removeExecutionOpenedEventBindings() {
2027
+ canvasEventBus.off("open:execution", onExecutionOpenedWithError);
2028
+ canvasEventBus.off("open:execution", onExecutionOpenedWithWaitTill);
2029
+ }
2030
+ async function onStopExecution() {
2031
+ isStoppingExecution.value = true;
2032
+ await stopCurrentExecution();
2033
+ isStoppingExecution.value = false;
2034
+ }
2035
+ async function onStopWaitingForWebhook() {
2036
+ await stopWaitingForWebhook();
2037
+ }
2038
+ function onRunWorkflowButtonMouseEnter() {
2039
+ nodeViewEventBus.emit("runWorkflowButton:mouseenter");
2040
+ }
2041
+ function onRunWorkflowButtonMouseLeave() {
2042
+ nodeViewEventBus.emit("runWorkflowButton:mouseleave");
2043
+ }
2044
+ /**
2045
+ * Chat
2046
+ */
2047
+ const chatTriggerNode = computed(() => {
2048
+ return editableWorkflow.value.nodes.find(node => node.type === CHAT_TRIGGER_NODE_TYPE);
2049
+ });
2050
+ const containsChatTriggerNodes = computed(() => {
2051
+ return !isExecutionWaitingForWebhook.value && !!editableWorkflow.value.nodes.find(node => ["@n8n/n8n-nodes-langchain.manualChatTrigger", "@n8n/n8n-nodes-langchain.chatTrigger"].includes(node.type) && node.disabled !== true);
2052
+ });
2053
+ const isOnlyChatTriggerNodeActive = computed(() => {
2054
+ return triggerNodes.value.every(node => node.disabled || node.type === "@n8n/n8n-nodes-langchain.chatTrigger");
2055
+ });
2056
+ const chatTriggerNodePinnedData = computed(() => {
2057
+ if (!chatTriggerNode.value) return null;
2058
+ return workflowsStore.pinDataByNodeName(chatTriggerNode.value.name);
2059
+ });
2060
+ function onOpenChat() {
2061
+ startChat("main");
2062
+ }
2063
+ /**
2064
+ * Evaluation
2065
+ */
2066
+ const evaluationTriggerNode = computed(() => {
2067
+ return editableWorkflow.value.nodes.find(node => node.type === EVALUATION_TRIGGER_NODE_TYPE);
2068
+ });
2069
+ /**
2070
+ * History events
2071
+ */
2072
+ function addUndoRedoEventBindings() {
2073
+ historyBus.on("nodeMove", onRevertNodePosition);
2074
+ historyBus.on("revertAddNode", onRevertAddNode);
2075
+ historyBus.on("revertRemoveNode", onRevertDeleteNode);
2076
+ historyBus.on("revertAddConnection", onRevertCreateConnection);
2077
+ historyBus.on("revertRemoveConnection", onRevertDeleteConnection);
2078
+ historyBus.on("revertRenameNode", onRevertRenameNode);
2079
+ historyBus.on("revertReplaceNodeParameters", onRevertReplaceNodeParameters);
2080
+ historyBus.on("enableNodeToggle", onRevertToggleNodeDisabled);
2081
+ }
2082
+ function removeUndoRedoEventBindings() {
2083
+ historyBus.off("nodeMove", onRevertNodePosition);
2084
+ historyBus.off("revertAddNode", onRevertAddNode);
2085
+ historyBus.off("revertRemoveNode", onRevertDeleteNode);
2086
+ historyBus.off("revertAddConnection", onRevertCreateConnection);
2087
+ historyBus.off("revertRemoveConnection", onRevertDeleteConnection);
2088
+ historyBus.off("revertRenameNode", onRevertRenameNode);
2089
+ historyBus.off("revertReplaceNodeParameters", onRevertReplaceNodeParameters);
2090
+ historyBus.off("enableNodeToggle", onRevertToggleNodeDisabled);
2091
+ }
2092
+ /**
2093
+ * Source control
2094
+ */
2095
+ async function onSourceControlPull() {
2096
+ try {
2097
+ await Promise.all([environmentsStore.fetchAllVariables(), tagsStore.fetchAll(), loadCredentials(), projectsStore.getAvailableProjects()]);
2098
+ if (workflowId.value && !uiStore.stateIsDirty) {
2099
+ const workflowData = await workflowsStore.fetchWorkflow(workflowId.value);
2100
+ if (workflowData) {
2101
+ documentTitle.setDocumentTitle(workflowData.name, "IDLE");
2102
+ openWorkflow(workflowData);
2103
+ }
2104
+ }
2105
+ } catch (error) {
2106
+ console.error(error);
2107
+ }
2108
+ }
2109
+ function addSourceControlEventBindings() {
2110
+ sourceControlEventBus.on("pull", onSourceControlPull);
2111
+ }
2112
+ function removeSourceControlEventBindings() {
2113
+ sourceControlEventBus.off("pull", onSourceControlPull);
2114
+ }
2115
+ /**
2116
+ * Command bar
2117
+ * */
2118
+ function addCommandBarEventBindings() {
2119
+ canvasEventBus.on("create:sticky", onCreateSticky);
2120
+ }
2121
+ function removeCommandBarEventBindings() {
2122
+ canvasEventBus.off("create:sticky", onCreateSticky);
2123
+ }
2124
+ /**
2125
+ * Post message events
2126
+ */
2127
+ function addPostMessageEventBindings() {
2128
+ window.addEventListener("message", onPostMessageReceived);
2129
+ }
2130
+ function removePostMessageEventBindings() {
2131
+ window.removeEventListener("message", onPostMessageReceived);
2132
+ }
2133
+ function emitPostMessageReady() {
2134
+ if (window.parent) window.parent.postMessage(JSON.stringify({
2135
+ command: "n8nReady",
2136
+ version: rootStore.versionCli
2137
+ }), "*");
2138
+ }
2139
+ async function onPostMessageReceived(messageEvent) {
2140
+ if (!messageEvent || typeof messageEvent.data !== "string" || !messageEvent.data?.includes?.("\"command\"")) return;
2141
+ try {
2142
+ const json = JSON.parse(messageEvent.data);
2143
+ if (json && json.command === "openWorkflow") try {
2144
+ if (json.projectId) await projectsStore.fetchAndSetProject(json.projectId);
2145
+ await importWorkflowExact(json);
2146
+ canOpenNDV.value = json.canOpenNDV ?? true;
2147
+ hideNodeIssues.value = json.hideNodeIssues ?? false;
2148
+ isExecutionPreview.value = false;
2149
+ } catch (e) {
2150
+ if (window.top) window.top.postMessage(JSON.stringify({
2151
+ command: "error",
2152
+ message: i18n.baseText("openWorkflow.workflowImportError")
2153
+ }), "*");
2154
+ toast.showError(e, i18n.baseText("openWorkflow.workflowImportError"));
2155
+ } else if (json && json.command === "openExecution") try {
2156
+ if (json.projectId) await projectsStore.fetchAndSetProject(json.projectId);
2157
+ isProductionExecutionPreview.value = json.executionMode !== "manual" && json.executionMode !== "evaluation";
2158
+ await onOpenExecution(json.executionId, json.nodeId);
2159
+ canOpenNDV.value = json.canOpenNDV ?? true;
2160
+ hideNodeIssues.value = json.hideNodeIssues ?? false;
2161
+ isExecutionPreview.value = true;
2162
+ } catch (e) {
2163
+ if (window.top) window.top.postMessage(JSON.stringify({
2164
+ command: "error",
2165
+ message: i18n.baseText("nodeView.showError.openExecution.title")
2166
+ }), "*");
2167
+ toast.showMessage({
2168
+ title: i18n.baseText("nodeView.showError.openExecution.title"),
2169
+ message: e.message,
2170
+ type: "error"
2171
+ });
2172
+ } else if (json?.command === "setActiveExecution") executionsStore.activeExecution = await executionsStore.fetchExecution(json.executionId);
2173
+ } catch (e) {}
2174
+ }
2175
+ /**
2176
+ * Permission checks
2177
+ */
2178
+ function checkIfEditingIsAllowed() {
2179
+ if (!initializedWorkflowId.value) return true;
2180
+ if (readOnlyNotification.value?.visible) return false;
2181
+ if (isReadOnlyRoute.value || isReadOnlyEnvironment.value) {
2182
+ const messageContext = isReadOnlyRoute.value ? "executions" : "workflows";
2183
+ readOnlyNotification.value = toast.showMessage({
2184
+ title: i18n.baseText(isReadOnlyEnvironment.value ? `readOnlyEnv.showMessage.${messageContext}.title` : "readOnly.showMessage.executions.title"),
2185
+ message: i18n.baseText(isReadOnlyEnvironment.value ? `readOnlyEnv.showMessage.${messageContext}.message` : "readOnly.showMessage.executions.message"),
2186
+ type: "info"
2187
+ });
2188
+ return false;
2189
+ }
2190
+ return true;
2191
+ }
2192
+ function checkIfRouteIsAllowed() {
2193
+ if (isReadOnlyEnvironment.value && [VIEWS.NEW_WORKFLOW, VIEWS.TEMPLATE_IMPORT].find(view => view === route.name)) nextTick(async () => {
2194
+ resetWorkspace();
2195
+ uiStore.stateIsDirty = false;
2196
+ await router.replace({
2197
+ name: VIEWS.HOMEPAGE
2198
+ });
2199
+ });
2200
+ }
2201
+ /**
2202
+ * Debug mode
2203
+ */
2204
+ async function initializeDebugMode() {
2205
+ documentTitle.setDocumentTitle(workflowsStore.workflowName, "DEBUG");
2206
+ if (!workflowsStore.isInDebugMode) {
2207
+ await applyExecutionData(route.params.executionId);
2208
+ workflowsStore.isInDebugMode = true;
2209
+ }
2210
+ canvasEventBus.on("saved:workflow", onSaveFromWithinExecutionDebug);
2211
+ }
2212
+ async function onSaveFromWithinExecutionDebug() {
2213
+ if (route.name !== VIEWS.EXECUTION_DEBUG) return;
2214
+ await router.replace({
2215
+ name: VIEWS.WORKFLOW,
2216
+ params: {
2217
+ name: workflowId.value
2218
+ }
2219
+ });
2220
+ }
2221
+ /**
2222
+ * Canvas
2223
+ */
2224
+ const viewportTransform = ref({
2225
+ x: 0,
2226
+ y: 0,
2227
+ zoom: 1
2228
+ });
2229
+ const viewportDimensions = ref({
2230
+ width: 0,
2231
+ height: 0
2232
+ });
2233
+ const viewportBoundaries = computed(() => getBounds(viewportTransform.value, viewportDimensions.value));
2234
+ function onViewportChange(viewport, dimensions) {
2235
+ viewportTransform.value = viewport;
2236
+ viewportDimensions.value = dimensions;
2237
+ uiStore.nodeViewOffsetPosition = [viewport.x, viewport.y];
2238
+ }
2239
+ function selectNodes(ids) {
2240
+ setTimeout(() => canvasEventBus.emit("nodes:select", {
2241
+ ids
2242
+ }));
2243
+ }
2244
+ /**
2245
+ * Mouse events
2246
+ */
2247
+ function onClickPane(position) {
2248
+ lastClickPosition.value = [position.x, position.y];
2249
+ onSetNodeSelected();
2250
+ }
2251
+ function onSelectionEnd(position) {
2252
+ lastClickPosition.value = [position.x, position.y];
2253
+ }
2254
+ /**
2255
+ * Drag and Drop events
2256
+ */
2257
+ async function onDragAndDrop(position, event) {
2258
+ if (!event.dataTransfer) return;
2259
+ const dropData = jsonParse(event.dataTransfer.getData(DRAG_EVENT_DATA_KEY));
2260
+ if (dropData) {
2261
+ await onAddNodesAndConnections(dropData, true, [position.x, position.y]);
2262
+ onToggleNodeCreator({
2263
+ createNodeActive: false,
2264
+ hasAddedNodes: true
2265
+ });
2266
+ }
2267
+ }
2268
+ /**
2269
+ * Custom Actions
2270
+ */
2271
+ function registerCustomActions() {
2272
+ registerCustomAction({
2273
+ key: "openNodeDetail",
2274
+ action: ({
2275
+ node
2276
+ }) => {
2277
+ setNodeActiveByName(node, "other");
2278
+ }
2279
+ });
2280
+ registerCustomAction({
2281
+ key: "openSelectiveNodeCreator",
2282
+ action: ({
2283
+ creatorview: creatorView,
2284
+ connectiontype: connectionType,
2285
+ node
2286
+ }) => {
2287
+ nodeCreatorStore.openSelectiveNodeCreator({
2288
+ node,
2289
+ connectionType,
2290
+ creatorView
2291
+ });
2292
+ }
2293
+ });
2294
+ registerCustomAction({
2295
+ key: "showNodeCreator",
2296
+ action: () => {
2297
+ ndvStore.unsetActiveNodeName();
2298
+ nextTick(() => {
2299
+ onOpenNodeCreatorForTriggerNodes(NODE_CREATOR_OPEN_SOURCES.TAB);
2300
+ });
2301
+ }
2302
+ });
2303
+ }
2304
+ function unregisterCustomActions() {
2305
+ unregisterCustomAction("openNodeDetail");
2306
+ unregisterCustomAction("openSelectiveNodeCreator");
2307
+ unregisterCustomAction("showNodeCreator");
2308
+ }
2309
+ function showAddFirstStepIfEnabled() {
2310
+ if (uiStore.addFirstStepOnLoad) {
2311
+ onOpenNodeCreatorForTriggerNodes(NODE_CREATOR_OPEN_SOURCES.TRIGGER_PLACEHOLDER_BUTTON);
2312
+ uiStore.addFirstStepOnLoad = false;
2313
+ }
2314
+ }
2315
+ /**
2316
+ * Routing
2317
+ */
2318
+ function updateNodeRoute(nodeId) {
2319
+ const nodeUi = workflowsStore.findNodeByPartialId(nodeId);
2320
+ if (nodeUi) setNodeActive(nodeUi.id, "other");else {
2321
+ toast.showToast({
2322
+ title: i18n.baseText("nodeView.showMessage.ndvUrl.missingNodes.title"),
2323
+ message: i18n.baseText("nodeView.showMessage.ndvUrl.missingNodes.content"),
2324
+ type: "warning"
2325
+ });
2326
+ router.replace({
2327
+ name: route.name,
2328
+ params: {
2329
+ name: workflowId.value
2330
+ }
2331
+ });
2332
+ }
2333
+ }
2334
+ watch(() => route.name, async (newRouteName, oldRouteName) => {
2335
+ await initializeRoute(newRouteName === VIEWS.NEW_WORKFLOW && oldRouteName === VIEWS.WORKFLOW || newRouteName === VIEWS.WORKFLOW && oldRouteName === VIEWS.NEW_WORKFLOW);
2336
+ });
2337
+ watch(() => {
2338
+ return isLoading.value || isCanvasReadOnly.value || editableWorkflow.value.nodes.length !== 0;
2339
+ }, isReadOnlyOrLoading => {
2340
+ if (isReadOnlyOrLoading) {
2341
+ fallbackNodes.value = [];
2342
+ return;
2343
+ }
2344
+ const addNodesItem = {
2345
+ id: CanvasNodeRenderType.AddNodes,
2346
+ name: CanvasNodeRenderType.AddNodes,
2347
+ type: CanvasNodeRenderType.AddNodes,
2348
+ typeVersion: 1,
2349
+ position: [0, 0],
2350
+ parameters: {}
2351
+ };
2352
+ const choicePromptItem = {
2353
+ id: CanvasNodeRenderType.ChoicePrompt,
2354
+ name: CanvasNodeRenderType.ChoicePrompt,
2355
+ type: CanvasNodeRenderType.ChoicePrompt,
2356
+ typeVersion: 1,
2357
+ position: [0, 0],
2358
+ parameters: {},
2359
+ draggable: false
2360
+ };
2361
+ fallbackNodes.value = builderStore.isAIBuilderEnabled ? [choicePromptItem] : [addNodesItem];
2362
+ });
2363
+ watch(() => route.params.nodeId, async newId => {
2364
+ if (typeof newId !== "string" || newId === "") ndvStore.unsetActiveNodeName();else updateNodeRoute(newId);
2365
+ });
2366
+ watch(() => ndvStore.activeNode, async val => {
2367
+ if (![VIEWS.WORKFLOW].includes(String(route.name))) return;
2368
+ const nodeId = val?.id ? workflowsStore.getPartialIdForNode(val?.id) : "";
2369
+ if (nodeId !== route.params.nodeId) await router.replace({
2370
+ name: route.name,
2371
+ params: {
2372
+ name: workflowId.value,
2373
+ nodeId
2374
+ }
2375
+ });
2376
+ });
2377
+ onBeforeRouteLeave(async (to, from, next) => {
2378
+ const toNodeViewTab = getNodeViewTab(to);
2379
+ if (toNodeViewTab === MAIN_HEADER_TABS.EXECUTIONS || from.name === VIEWS.TEMPLATE_IMPORT || toNodeViewTab === MAIN_HEADER_TABS.WORKFLOW && from.name === VIEWS.EXECUTION_DEBUG || isReadOnlyEnvironment.value) {
2380
+ next();
2381
+ return;
2382
+ }
2383
+ await useWorkflowSaving({
2384
+ router
2385
+ }).promptSaveUnsavedWorkflowChanges(next, {
2386
+ async confirm() {
2387
+ if (from.name === VIEWS.NEW_WORKFLOW) {
2388
+ const savedWorkflowId = workflowsStore.workflowId;
2389
+ await router.replace({
2390
+ name: VIEWS.WORKFLOW,
2391
+ params: {
2392
+ name: savedWorkflowId
2393
+ }
2394
+ });
2395
+ await router.push(to);
2396
+ return false;
2397
+ }
2398
+ workflowState.setWorkflowId(PLACEHOLDER_EMPTY_WORKFLOW_ID);
2399
+ return true;
2400
+ }
2401
+ });
2402
+ });
2403
+ /**
2404
+ * Lifecycle
2405
+ */
2406
+ onBeforeMount(() => {
2407
+ if (!isDemoRoute.value) pushConnectionStore.pushConnect();
2408
+ addPostMessageEventBindings();
2409
+ });
2410
+ onMounted(() => {
2411
+ canvasStore.startLoading();
2412
+ documentTitle.reset();
2413
+ resetWorkspace();
2414
+ initializeData().then(() => {
2415
+ initializeRoute().then(() => {
2416
+ toast.showNotificationForViews([VIEWS.WORKFLOW, VIEWS.NEW_WORKFLOW]);
2417
+ if (route.query.settings) {
2418
+ uiStore.openModal(WORKFLOW_SETTINGS_MODAL_KEY);
2419
+ router.replace({
2420
+ query: {
2421
+ settings: void 0
2422
+ }
2423
+ });
2424
+ }
2425
+ }).finally(() => {
2426
+ isLoading.value = false;
2427
+ canvasStore.stopLoading();
2428
+ externalHooks.run("nodeView.mount").catch(() => {});
2429
+ setTimeout(() => {
2430
+ if (routeNodeId.value) updateNodeRoute(routeNodeId.value);
2431
+ }, 500);
2432
+ emitPostMessageReady();
2433
+ });
2434
+ usersStore.showPersonalizationSurvey();
2435
+ checkIfRouteIsAllowed();
2436
+ });
2437
+ addSourceControlEventBindings();
2438
+ addWorkflowSavedEventBindings();
2439
+ addBeforeUnloadEventBindings();
2440
+ addImportEventBindings();
2441
+ addExecutionOpenedEventBindings();
2442
+ addCommandBarEventBindings();
2443
+ registerCustomActions();
2444
+ });
2445
+ onActivated(() => {
2446
+ addUndoRedoEventBindings();
2447
+ showAddFirstStepIfEnabled();
2448
+ });
2449
+ onDeactivated(() => {
2450
+ uiStore.closeModal(WORKFLOW_SETTINGS_MODAL_KEY);
2451
+ removeUndoRedoEventBindings();
2452
+ });
2453
+ onBeforeUnmount(() => {
2454
+ removeSourceControlEventBindings();
2455
+ removePostMessageEventBindings();
2456
+ removeWorkflowSavedEventBindings();
2457
+ removeBeforeUnloadEventBindings();
2458
+ removeImportEventBindings();
2459
+ removeExecutionOpenedEventBindings();
2460
+ removeCommandBarEventBindings();
2461
+ unregisterCustomActions();
2462
+ if (!isDemoRoute.value) pushConnectionStore.pushDisconnect();
2463
+ });
2464
+ return (_ctx, _cache) => {
2465
+ return openBlock(), createElementBlock("div", {
2466
+ class: normalizeClass(unref($style).wrapper)
2467
+ }, [unref(editableWorkflow) && unref(editableWorkflowObject) && !isLoading.value ? (openBlock(), createBlock(WorkflowCanvas_default, {
2468
+ key: 0,
2469
+ id: unref(editableWorkflow).id,
2470
+ ref: "canvas",
2471
+ workflow: unref(editableWorkflow),
2472
+ "workflow-object": unref(editableWorkflowObject),
2473
+ "fallback-nodes": fallbackNodes.value,
2474
+ "show-fallback-nodes": showFallbackNodes.value,
2475
+ "event-bus": unref(canvasEventBus),
2476
+ "read-only": isCanvasReadOnly.value,
2477
+ executing: isWorkflowRunning.value,
2478
+ "key-bindings": keyBindingsEnabled.value,
2479
+ "suppress-interaction": unref(experimentalNdvStore).isMapperOpen,
2480
+ "onUpdate:nodes:position": onUpdateNodesPosition,
2481
+ "onUpdate:node:position": onUpdateNodePosition,
2482
+ "onUpdate:node:activated": onSetNodeActivated,
2483
+ "onUpdate:node:deactivated": onSetNodeDeactivated,
2484
+ "onUpdate:node:selected": onSetNodeSelected,
2485
+ "onUpdate:node:enabled": onToggleNodeDisabled,
2486
+ "onUpdate:node:name": onOpenRenameNodeModal,
2487
+ "onUpdate:node:parameters": onUpdateNodeParameters,
2488
+ "onUpdate:node:inputs": onUpdateNodeInputs,
2489
+ "onUpdate:node:outputs": onUpdateNodeOutputs,
2490
+ "onUpdate:logsOpen": _cache[3] || (_cache[3] = $event => unref(logsStore).toggleOpen($event)),
2491
+ "onUpdate:logs:inputOpen": unref(logsStore).toggleInputOpen,
2492
+ "onUpdate:logs:outputOpen": unref(logsStore).toggleOutputOpen,
2493
+ "onUpdate:hasRangeSelection": unref(canvasStore).setHasRangeSelection,
2494
+ "onOpen:subWorkflow": onOpenSubWorkflow,
2495
+ "onClick:node": onClickNode,
2496
+ "onClick:node:add": onClickNodeAdd,
2497
+ "onRun:node": onRunWorkflowToNode,
2498
+ "onDelete:node": onDeleteNode,
2499
+ "onCreate:connection": onCreateConnection,
2500
+ "onCreate:connection:cancelled": onCreateConnectionCancelled,
2501
+ "onDelete:connection": onDeleteConnection,
2502
+ "onClick:connection:add": onClickConnectionAdd,
2503
+ "onClick:pane": onClickPane,
2504
+ "onCreate:node": onOpenNodeCreatorFromCanvas,
2505
+ "onCreate:sticky": onCreateSticky,
2506
+ "onDelete:nodes": onDeleteNodes,
2507
+ "onUpdate:nodes:enabled": onToggleNodesDisabled,
2508
+ "onUpdate:nodes:pin": onPinNodes,
2509
+ "onDuplicate:nodes": onDuplicateNodes,
2510
+ "onCopy:nodes": onCopyNodes,
2511
+ "onCut:nodes": onCutNodes,
2512
+ "onReplace:node": onClickReplaceNode,
2513
+ "onRun:workflow": _cache[4] || (_cache[4] = $event => unref(runEntireWorkflow)("main")),
2514
+ "onSave:workflow": onSaveWorkflow,
2515
+ "onCreate:workflow": onCreateWorkflow,
2516
+ "onViewport:change": onViewportChange,
2517
+ "onSelection:end": onSelectionEnd,
2518
+ onDragAndDrop,
2519
+ onTidyUp,
2520
+ "onToggle:focusPanel": onToggleFocusPanel,
2521
+ onExtractWorkflow,
2522
+ onStartChat: _cache[5] || (_cache[5] = $event => unref(startChat)())
2523
+ }, {
2524
+ default: withCtx(() => [!isCanvasReadOnly.value ? (openBlock(), createBlock(Suspense, {
2525
+ key: 0
2526
+ }, {
2527
+ default: withCtx(() => [createVNode(unref(LazySetupWorkflowCredentialsButton), {
2528
+ class: normalizeClass(unref($style).setupCredentialsButtonWrapper)
2529
+ }, null, 8, ["class"])]),
2530
+ _: 1
2531
+ })) : createCommentVNode("", true), !isCanvasReadOnly.value ? (openBlock(), createElementBlock("div", {
2532
+ key: 1,
2533
+ class: normalizeClass(unref($style).executionButtons)
2534
+ }, [isRunWorkflowButtonVisible.value ? (openBlock(), createBlock(CanvasRunWorkflowButton_default, {
2535
+ key: 0,
2536
+ "waiting-for-webhook": isExecutionWaitingForWebhook.value,
2537
+ disabled: isExecutionDisabled.value,
2538
+ executing: isWorkflowRunning.value,
2539
+ "trigger-nodes": triggerNodes.value,
2540
+ "get-node-type": unref(nodeTypesStore).getNodeType,
2541
+ "selected-trigger-node-name": unref(workflowsStore).selectedTriggerNodeName,
2542
+ onMouseenter: onRunWorkflowButtonMouseEnter,
2543
+ onMouseleave: onRunWorkflowButtonMouseLeave,
2544
+ onExecute: _cache[0] || (_cache[0] = $event => unref(runEntireWorkflow)("main")),
2545
+ onSelectTriggerNode: unref(workflowsStore).setSelectedTriggerNodeName
2546
+ }, null, 8, ["waiting-for-webhook", "disabled", "executing", "trigger-nodes", "get-node-type", "selected-trigger-node-name", "onSelectTriggerNode"])) : createCommentVNode("", true), containsChatTriggerNodes.value ? (openBlock(), createElementBlock(Fragment, {
2547
+ key: 1
2548
+ }, [isLogsPanelOpen.value ? (openBlock(), createBlock(CanvasChatButton_default, {
2549
+ key: 0,
2550
+ type: "tertiary",
2551
+ label: unref(i18n).baseText("chat.hide"),
2552
+ class: normalizeClass(unref($style).chatButton),
2553
+ onClick: _cache[1] || (_cache[1] = $event => unref(logsStore).toggleOpen(false))
2554
+ }, null, 8, ["label", "class"])) : (openBlock(), createBlock(KeyboardShortcutTooltip_default, {
2555
+ key: 1,
2556
+ label: unref(i18n).baseText("chat.open"),
2557
+ shortcut: {
2558
+ keys: ["c"]
2559
+ }
2560
+ }, {
2561
+ default: withCtx(() => [createVNode(CanvasChatButton_default, {
2562
+ type: isRunWorkflowButtonVisible.value ? "secondary" : "primary",
2563
+ label: unref(i18n).baseText("chat.open"),
2564
+ class: normalizeClass(unref($style).chatButton),
2565
+ onClick: onOpenChat
2566
+ }, null, 8, ["type", "label", "class"])]),
2567
+ _: 1
2568
+ }, 8, ["label"]))], 64)) : createCommentVNode("", true), isStopExecutionButtonVisible.value ? (openBlock(), createBlock(CanvasStopCurrentExecutionButton_default, {
2569
+ key: 2,
2570
+ stopping: isStoppingExecution.value,
2571
+ onClick: onStopExecution
2572
+ }, null, 8, ["stopping"])) : createCommentVNode("", true), isStopWaitingForWebhookButtonVisible.value ? (openBlock(), createBlock(CanvasStopWaitingForWebhookButton_default, {
2573
+ key: 3,
2574
+ onClick: onStopWaitingForWebhook
2575
+ })) : createCommentVNode("", true)], 2)) : createCommentVNode("", true), isReadOnlyEnvironment.value ? (openBlock(), createBlock(unref(N8nCallout_default), {
2576
+ key: 2,
2577
+ theme: "warning",
2578
+ icon: "lock",
2579
+ class: normalizeClass(unref($style).readOnlyEnvironmentNotification)
2580
+ }, {
2581
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("readOnlyEnv.cantEditOrRun")), 1)]),
2582
+ _: 1
2583
+ }, 8, ["class"])) : createCommentVNode("", true), unref(builderStore).streaming ? (openBlock(), createBlock(unref(CanvasThinkingPill_default), {
2584
+ key: 3,
2585
+ class: normalizeClass(unref($style).thinkingPill),
2586
+ "show-stop": "",
2587
+ onStop: unref(builderStore).stopStreaming
2588
+ }, null, 8, ["class", "onStop"])) : createCommentVNode("", true), (openBlock(), createBlock(Suspense, null, {
2589
+ default: withCtx(() => [!isCanvasReadOnly.value ? (openBlock(), createBlock(unref(LazyNodeCreation), {
2590
+ key: 0,
2591
+ "create-node-active": unref(nodeCreatorStore).isCreateNodeActive,
2592
+ "node-view-scale": viewportTransform.value.zoom,
2593
+ "focus-panel-active": unref(focusPanelStore).focusPanelActive,
2594
+ onToggleNodeCreator,
2595
+ onAddNodes: onAddNodesAndConnections,
2596
+ onClose: onNodeCreatorClose
2597
+ }, null, 8, ["create-node-active", "node-view-scale", "focus-panel-active"])) : createCommentVNode("", true)]),
2598
+ _: 1
2599
+ })), (openBlock(), createBlock(Suspense, null, {
2600
+ default: withCtx(() => [!isNDVV2.value ? (openBlock(), createBlock(unref(LazyNodeDetailsView), {
2601
+ key: 0,
2602
+ "workflow-object": unref(editableWorkflowObject),
2603
+ "read-only": isCanvasReadOnly.value,
2604
+ "is-production-execution-preview": isProductionExecutionPreview.value,
2605
+ renaming: false,
2606
+ onValueChanged: _cache[2] || (_cache[2] = $event => onRenameNode($event.value)),
2607
+ onStopExecution,
2608
+ onSwitchSelectedNode: onSwitchActiveNode,
2609
+ onOpenConnectionNodeCreator: onOpenSelectiveNodeCreator,
2610
+ onSaveKeyboardShortcut: onSaveWorkflow
2611
+ }, null, 8, ["workflow-object", "read-only", "is-production-execution-preview"])) : createCommentVNode("", true)]),
2612
+ _: 1
2613
+ })), (openBlock(), createBlock(Suspense, null, {
2614
+ default: withCtx(() => [isNDVV2.value ? (openBlock(), createBlock(unref(LazyNodeDetailsViewV2), {
2615
+ key: 0,
2616
+ "workflow-object": unref(editableWorkflowObject),
2617
+ "read-only": isCanvasReadOnly.value,
2618
+ "is-production-execution-preview": isProductionExecutionPreview.value,
2619
+ onRenameNode,
2620
+ onStopExecution,
2621
+ onSwitchSelectedNode: onSwitchActiveNode,
2622
+ onOpenConnectionNodeCreator: onOpenSelectiveNodeCreator,
2623
+ onSaveKeyboardShortcut: onSaveWorkflow
2624
+ }, null, 8, ["workflow-object", "read-only", "is-production-execution-preview"])) : createCommentVNode("", true)]),
2625
+ _: 1
2626
+ }))]),
2627
+ _: 1
2628
+ }, 8, ["id", "workflow", "workflow-object", "fallback-nodes", "show-fallback-nodes", "event-bus", "read-only", "executing", "key-bindings", "suppress-interaction", "onUpdate:logs:inputOpen", "onUpdate:logs:outputOpen", "onUpdate:hasRangeSelection"])) : createCommentVNode("", true), !isLoading.value && (unref(experimentalNdvStore).isNdvInFocusPanelEnabled ? !isCanvasReadOnly.value : true) ? (openBlock(), createBlock(FocusPanel_default, {
2629
+ key: 1,
2630
+ "is-canvas-read-only": isCanvasReadOnly.value,
2631
+ onSaveKeyboardShortcut: onSaveWorkflow,
2632
+ onContextMenuAction
2633
+ }, null, 8, ["is-canvas-read-only"])) : createCommentVNode("", true)], 2);
2634
+ };
2635
+ }
2636
+ }); //#endregion
2637
+ //#region src/app/views/NodeView.vue?vue&type=style&index=0&lang.module.scss
2638
+ wrapper = "_wrapper_1ahwb_123";
2639
+ executionButtons = "_executionButtons_1ahwb_128";
2640
+ chatButton = "_chatButton_1ahwb_165";
2641
+ setupCredentialsButtonWrapper = "_setupCredentialsButtonWrapper_1ahwb_169";
2642
+ readOnlyEnvironmentNotification = "_readOnlyEnvironmentNotification_1ahwb_175";
2643
+ thinkingPill = "_thinkingPill_1ahwb_182";
2644
+ NodeView_vue_vue_type_style_index_0_lang_module_default = {
2645
+ wrapper,
2646
+ executionButtons,
2647
+ chatButton,
2648
+ setupCredentialsButtonWrapper,
2649
+ readOnlyEnvironmentNotification,
2650
+ thinkingPill
2651
+ }; //#endregion
2652
+ //#region src/app/views/NodeView.vue
2653
+ cssModules = {
2654
+ "$style": NodeView_vue_vue_type_style_index_0_lang_module_default
2655
+ };
2656
+ _export("default", NodeView_default = /* @__PURE__ */__plugin_vue_export_helper_default(NodeView_vue_vue_type_script_setup_true_lang_default, [["__cssModules", cssModules]])); //#endregion
2657
+ }
2658
+ };
2659
+ });
2660
+ })();