@atom8n/n8n-editor-ui 2.2.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 (310) hide show
  1. package/.stylelintcache +1 -0
  2. package/README.md +59 -0
  3. package/biome.jsonc +8 -0
  4. package/build.log +55 -0
  5. package/data/node-popularity.json +3998 -0
  6. package/dist/assets/AddDataTableModal-UINkk54_.js +1555 -0
  7. package/dist/assets/AgentEditorModal-CVww87TJ.js +358 -0
  8. package/dist/assets/Alert-Dy86dyOr.js +102 -0
  9. package/dist/assets/AnimatedSpinner-DmPN4poP.js +15 -0
  10. package/dist/assets/AnnotationTagsDropdown.ee-BJ7N9lek.js +71 -0
  11. package/dist/assets/AuthView-D2LWHrMp.js +106 -0
  12. package/dist/assets/BottomMenu-CIQiK_dJ.js +532 -0
  13. package/dist/assets/CalendarDate-DgQUMbNo.js +875 -0
  14. package/dist/assets/ChangePasswordView-Z6tUkw0u.js +133 -0
  15. package/dist/assets/ChatAgentAvatar-50YBnv3N.js +67 -0
  16. package/dist/assets/ChatFile-xZxmc2nV.js +146 -0
  17. package/dist/assets/ChatLayout-CTE_5SiM.js +96 -0
  18. package/dist/assets/ChatPersonalAgentsView-BGpHk03K.js +149 -0
  19. package/dist/assets/ChatSidebar-BkVwIypC.js +528 -0
  20. package/dist/assets/ChatView-BbbdeU9x.js +1559 -0
  21. package/dist/assets/ChatWorkflowAgentsView-BtunOxlC.js +116 -0
  22. package/dist/assets/CollectionParameter-BdcPG1lu.js +52 -0
  23. package/dist/assets/CommitMonoVariable-ytizKI8U.woff2 +0 -0
  24. package/dist/assets/CommunityNodeUpdateInfo-C37kca4W.js +273 -0
  25. package/dist/assets/CopyInput-DDZVu2iU.js +74 -0
  26. package/dist/assets/CredentialIcon-8YdTTFZ1.js +80 -0
  27. package/dist/assets/CredentialPicker-DWtj314o.js +293 -0
  28. package/dist/assets/CredentialSelectorModal-DTW2fKh0.js +138 -0
  29. package/dist/assets/CredentialsView-BjUchcCu.js +480 -0
  30. package/dist/assets/DataTableActions-DpAkoxg_.js +95 -0
  31. package/dist/assets/DataTableDetailsView-Coq7zdW5.js +41922 -0
  32. package/dist/assets/DataTableView-Cs-BIkzw.js +293 -0
  33. package/dist/assets/DemoFooter-Cga3jvi-.js +65 -0
  34. package/dist/assets/Draggable-vfvXl9Sp.js +105 -0
  35. package/dist/assets/EmptySharedSectionActionBox-DOXZtTCv.js +36 -0
  36. package/dist/assets/EnterpriseEdition.ee-D_rCFexM.js +15 -0
  37. package/dist/assets/EntityNotFound-3dhTRWsE.js +85 -0
  38. package/dist/assets/EntityUnAuthorised-ChJYZakE.js +66 -0
  39. package/dist/assets/ErrorView-zT9cX76a.js +61 -0
  40. package/dist/assets/EvaluationsRootView-C-OVWYnY.js +523 -0
  41. package/dist/assets/EvaluationsView-CJwJTruc.js +469 -0
  42. package/dist/assets/ExecutionsTime-DEQiyozR.js +573 -0
  43. package/dist/assets/ExecutionsView-Bd5Oh8TH.js +791 -0
  44. package/dist/assets/ExternalSecretsProviderConnectionSwitch.ee-C7Ih-uRo.js +191 -0
  45. package/dist/assets/FixedCollectionParameter-CYuTDW9t.js +496 -0
  46. package/dist/assets/ForgotMyPasswordView-Bs_L9P27.js +102 -0
  47. package/dist/assets/InsightsChartAverageRuntime-Bp3VA8_7.js +62 -0
  48. package/dist/assets/InsightsChartFailed-KPaNWoEr.js +52 -0
  49. package/dist/assets/InsightsChartFailureRate-DE6kE3FM.js +54 -0
  50. package/dist/assets/InsightsChartTimeSaved-auABNZlc.js +68 -0
  51. package/dist/assets/InsightsChartTotal-BKzYRKE7.js +56 -0
  52. package/dist/assets/InsightsDashboard-JWx4W6Db.js +473 -0
  53. package/dist/assets/InsightsPaywall-C8zLLKe8.js +63 -0
  54. package/dist/assets/InsightsSummary-cmN1lHDm.js +210 -0
  55. package/dist/assets/InsightsTableWorkflows-CqcC3IbQ.js +203 -0
  56. package/dist/assets/InterVariable-DiVDrmQJ.woff2 +0 -0
  57. package/dist/assets/InterVariable-Italic-FCBEiFp6.woff2 +0 -0
  58. package/dist/assets/ItemsRenderer-DC8WVyMv.js +922 -0
  59. package/dist/assets/KeyboardShortcutTooltip-D8PAK5JP.js +31 -0
  60. package/dist/assets/LogsPanel-BR06u9RK.js +52 -0
  61. package/dist/assets/LogsPanel-C-_acMHp.js +2325 -0
  62. package/dist/assets/MCPConnectWorkflowsModal-3g8_iUa4.js +303 -0
  63. package/dist/assets/MainHeader-DiQc1edn.js +2153 -0
  64. package/dist/assets/MainSidebar-CoPGG5Ea.js +804 -0
  65. package/dist/assets/MigrationRuleDetail-BAxk1Pvl.js +295 -0
  66. package/dist/assets/MigrationRules-IW9lZMpE.js +285 -0
  67. package/dist/assets/Modal-CIzXlZdZ.js +204 -0
  68. package/dist/assets/ModelByIdSelectorModal-DLvBjzJO.js +115 -0
  69. package/dist/assets/NDVEmptyState-33UoX00I.js +19743 -0
  70. package/dist/assets/NodeCreation-BNzbSWSB.js +240 -0
  71. package/dist/assets/NodeCreator-BftgCKx7.js +1288 -0
  72. package/dist/assets/NodeDetailsView-CsoQCpcF.js +1075 -0
  73. package/dist/assets/NodeDetailsViewV2-C_wNQR_3.js +981 -0
  74. package/dist/assets/NodeIcon-B9VW6tX6.js +87 -0
  75. package/dist/assets/NodeSettings-ZwVip6VR.js +1872 -0
  76. package/dist/assets/NodeView-D4WUEvLB.js +2452 -0
  77. package/dist/assets/OAuthConsentView-DlrUqZbT.js +230 -0
  78. package/dist/assets/PageViewLayout-NT1KPFgy.js +12 -0
  79. package/dist/assets/ParameterInputList-sG2nz-Jo.js +38091 -0
  80. package/dist/assets/PrebuiltAgentTemplatesView-Csi5U8dc.js +154 -0
  81. package/dist/assets/ProjectBreadcrumb-C_XiY7sc.js +98 -0
  82. package/dist/assets/ProjectCardBadge-t_hs7vzx.js +209 -0
  83. package/dist/assets/ProjectHeader-Dq5Ihb26.js +549 -0
  84. package/dist/assets/ProjectIcon-DY8gGuHX.js +64 -0
  85. package/dist/assets/ProjectRoleView-Du-KTrAC.js +435 -0
  86. package/dist/assets/ProjectRolesView-DjxM_y4u.js +239 -0
  87. package/dist/assets/ProjectSettings-C6kWuV21.js +966 -0
  88. package/dist/assets/ProjectSharing-CVUgNWAY.js +262 -0
  89. package/dist/assets/ProjectVariables-CJlAo3dv.js +467 -0
  90. package/dist/assets/ProviderSettingsModal-BUFC2ZLv.js +307 -0
  91. package/dist/assets/PushConnectionTracker-DPBnGV0v.js +27 -0
  92. package/dist/assets/ResolversView-3BdkvvYA.js +209 -0
  93. package/dist/assets/ResourceFiltersDropdown-dgyXpcEX.js +159 -0
  94. package/dist/assets/ResourcesListLayout-qBLtomK6.js +631 -0
  95. package/dist/assets/RunDataHtml-BrW0OQra.js +7 -0
  96. package/dist/assets/RunDataHtml-Cleia4Cj.js +40 -0
  97. package/dist/assets/RunDataJson-uxkrhYRK.js +227 -0
  98. package/dist/assets/RunDataJsonActions-DkPk7E8d.js +5007 -0
  99. package/dist/assets/RunDataParsedAiContent-CtPRjig-.js +26 -0
  100. package/dist/assets/RunDataParsedAiContent-WAuqLQ5M.js +192 -0
  101. package/dist/assets/RunDataSearch-YBWUr93C.js +141 -0
  102. package/dist/assets/RunDataTable-DcXaBynW.js +631 -0
  103. package/dist/assets/SamlOnboarding-BTdQ_hr3.js +78 -0
  104. package/dist/assets/SaveButton-D5sQSxIk.js +89 -0
  105. package/dist/assets/SelectedItemsInfo-BHZ-NvF5.js +58 -0
  106. package/dist/assets/SettingsApiView-IfZTMXx1.js +313 -0
  107. package/dist/assets/SettingsChatHubView-gWh2X6vX.js +285 -0
  108. package/dist/assets/SettingsCommunityNodesView-D8VQtpGY.js +349 -0
  109. package/dist/assets/SettingsExternalSecrets-CpMc7mkW.js +233 -0
  110. package/dist/assets/SettingsLdapView-CU5a2MAy.js +2553 -0
  111. package/dist/assets/SettingsLogStreamingView-uojTe-oX.js +375 -0
  112. package/dist/assets/SettingsMCPView-B5Swp1C_.js +1214 -0
  113. package/dist/assets/SettingsPersonalView-Cr3aGood.js +402 -0
  114. package/dist/assets/SettingsSourceControl-DXOvFDEY.js +547 -0
  115. package/dist/assets/SettingsSso-27MfU1HV.js +1032 -0
  116. package/dist/assets/SettingsUsageAndPlan-DqIO-G46.js +419 -0
  117. package/dist/assets/SettingsUsersView-DfHB4_Kh.js +833 -0
  118. package/dist/assets/SettingsView-C4sA7Uny.js +90 -0
  119. package/dist/assets/SetupTemplateFormStep-BmiSzZin.js +258 -0
  120. package/dist/assets/SetupView-VORZ-L_u.js +112 -0
  121. package/dist/assets/SetupWorkflowCredentialsButton-DTmkOAW5.js +73 -0
  122. package/dist/assets/SetupWorkflowFromTemplateView-B9NupdJE.js +286 -0
  123. package/dist/assets/SeverityTag-CX1qTTNA.js +45 -0
  124. package/dist/assets/SigninView-D9_Pm16j.js +358 -0
  125. package/dist/assets/SignoutView-BFsjEAGz.js +19 -0
  126. package/dist/assets/SignupView-Am4ot0QZ.js +137 -0
  127. package/dist/assets/SkeletonAgentCard-C5TL-h8F.js +191 -0
  128. package/dist/assets/TagsDropdown-Bvx_Hd6Q.js +230 -0
  129. package/dist/assets/TemplateCard-CyQ1GuVz.js +105 -0
  130. package/dist/assets/TemplateDetails-CZRusTxE.js +124 -0
  131. package/dist/assets/TemplateList-DKvbwuiY.js +333 -0
  132. package/dist/assets/TemplatesCollectionView-D8dxU8By.js +184 -0
  133. package/dist/assets/TemplatesSearchView-CebC_GLs.js +1230 -0
  134. package/dist/assets/TemplatesView-025CcmIY.js +57 -0
  135. package/dist/assets/TemplatesWorkflowView-C2JfwJAn.js +170 -0
  136. package/dist/assets/TestRunDetailView-Ck78TTWO.js +395 -0
  137. package/dist/assets/TextWithHighlights-BxumwGnv.js +57 -0
  138. package/dist/assets/TimeAgo-C6EN4lCs.js +123 -0
  139. package/dist/assets/ToolsSelectorModal-8QJoUvRL.js +368 -0
  140. package/dist/assets/TriggerPanel-B6pacLkk.js +1225 -0
  141. package/dist/assets/VirtualSchema-B3zGe_8b.js +2402 -0
  142. package/dist/assets/VirtualSchema-Dkh0Cu5z.js +37 -0
  143. package/dist/assets/VueMarkdown-CQqJL9vK.js +28 -0
  144. package/dist/assets/WorkerView-Caznsljo.js +563 -0
  145. package/dist/assets/WorkflowActivationErrorMessage-CGrfPi9O.js +17 -0
  146. package/dist/assets/WorkflowActivator-BINnz0f7.js +362 -0
  147. package/dist/assets/WorkflowExecutionsInfoAccordion-Dg37yEfT.js +166 -0
  148. package/dist/assets/WorkflowExecutionsLandingPage-V2wdubhK.js +93 -0
  149. package/dist/assets/WorkflowExecutionsPreview-DdJaqYV6.js +616 -0
  150. package/dist/assets/WorkflowExecutionsView-DV8ySTfn.js +808 -0
  151. package/dist/assets/WorkflowHistory-GtaBMzIM.js +973 -0
  152. package/dist/assets/WorkflowLocation-CQ9Sq-2y.js +164 -0
  153. package/dist/assets/WorkflowOnboardingView-C49gt0Jr.js +61 -0
  154. package/dist/assets/WorkflowPreview-CXdvv4Nq.js +186 -0
  155. package/dist/assets/WorkflowTagsDropdown-QwbICWjN.js +71 -0
  156. package/dist/assets/WorkflowsView-B-MWIECO.js +3253 -0
  157. package/dist/assets/_MapCache-CcdIl4Ae.js +363 -0
  158. package/dist/assets/_baseOrderBy-N8Be_6z6.js +2989 -0
  159. package/dist/assets/_initCloneObject-viQQyT6o.js +80 -0
  160. package/dist/assets/_plugin-vue_export-helper-BwBpWJRZ.js +6 -0
  161. package/dist/assets/aiTemplatesStarterCollection.store-nL9nePkK.js +656 -0
  162. package/dist/assets/apiKeys.store-BhOFmP2j.js +51 -0
  163. package/dist/assets/assistant.store-CNywgN4S.js +518 -0
  164. package/dist/assets/auth.eventBus-CWXS0Qp7.js +5 -0
  165. package/dist/assets/banners.store-CGEcBTDn.js +195 -0
  166. package/dist/assets/builder.store-Czk2ipDE.js +31417 -0
  167. package/dist/assets/buttons.esm-yintpW2E.js +364 -0
  168. package/dist/assets/chart-CNvyywtJ.js +10958 -0
  169. package/dist/assets/chartjs.utils-BAE52Cv9.js +155 -0
  170. package/dist/assets/chat.store-290YeyrQ.js +865 -0
  171. package/dist/assets/chatPanel.store-NDaawEZL.js +118 -0
  172. package/dist/assets/chunk-6z4oVpB-.js +36 -0
  173. package/dist/assets/col-Cmt4cmuS.js +158 -0
  174. package/dist/assets/constants-C8OH4tTq.js +106256 -0
  175. package/dist/assets/constants-DMrsrpD7.js +32 -0
  176. package/dist/assets/core-B9gt_4yk.js +4 -0
  177. package/dist/assets/core-CP5FY4aX.js +1202 -0
  178. package/dist/assets/core-CRbPymLT.js +9741 -0
  179. package/dist/assets/dataTable.store-DmipQsol.js +207 -0
  180. package/dist/assets/date-picker-2IDsBs2n.js +4115 -0
  181. package/dist/assets/dateFormatter-ik4-9_9r.js +33 -0
  182. package/dist/assets/dateformat-hG8NERse.js +181 -0
  183. package/dist/assets/dialog-lMho1TD8.js +425 -0
  184. package/dist/assets/dist-Cw46Is-h.js +151 -0
  185. package/dist/assets/doppler-B__k0MeW.webp +0 -0
  186. package/dist/assets/element-icons-B-tDfklg.woff +0 -0
  187. package/dist/assets/element-icons-_lZGOqcG.ttf +0 -0
  188. package/dist/assets/empty-BuGRxzl4.js +2210 -0
  189. package/dist/assets/en-CF30SCh2.js +95 -0
  190. package/dist/assets/en-DyO2pPiC.js +2 -0
  191. package/dist/assets/es-BkUFJVtD.js +43338 -0
  192. package/dist/assets/evaluation.constants-GYAwmJnh.js +284 -0
  193. package/dist/assets/executions.store-B9uRYwgv.js +205 -0
  194. package/dist/assets/exports-Crx_gvt_.js +1799 -0
  195. package/dist/assets/externalSecrets.ee.store-BJh4a_6G.js +118 -0
  196. package/dist/assets/fileUtils-CRWqOQje.js +20 -0
  197. package/dist/assets/folders.store-yAFj-5Vl.js +235 -0
  198. package/dist/assets/get-BcEmeOxn.js +2781 -0
  199. package/dist/assets/index-SL8542zQ.js +28372 -0
  200. package/dist/assets/insights.constants-BkJCYJTL.js +55 -0
  201. package/dist/assets/insights.store-BFc3kDUo.js +61 -0
  202. package/dist/assets/insights.utils-CcLXdrrz.js +77 -0
  203. package/dist/assets/isEmpty-C3XXoHqJ.js +35216 -0
  204. package/dist/assets/languageModules-9LyndCqU.js +13862 -0
  205. package/dist/assets/logStreaming.store-IZhWe_VK.js +190 -0
  206. package/dist/assets/mcp.constants-_Jcn7fPq.js +10 -0
  207. package/dist/assets/mcp.store-B9yfcAN9.js +116 -0
  208. package/dist/assets/merge-DhuTk1HM.js +564 -0
  209. package/dist/assets/nodeCreator.store-Bpnrwp2l.js +5444 -0
  210. package/dist/assets/nodeIcon-D6X-ENYt.js +102 -0
  211. package/dist/assets/nodeTransforms-RzcOM0v2.js +42 -0
  212. package/dist/assets/orderBy-Cu9F9DU_.js +15 -0
  213. package/dist/assets/path-browserify-RUt2u7iT.js +328 -0
  214. package/dist/assets/personalizedTemplatesV3.store-BGYp0YBN.js +334 -0
  215. package/dist/assets/pickBy-UI0Jt4wC.js +18 -0
  216. package/dist/assets/preload-helper-dyVz7ck7.js +59 -0
  217. package/dist/assets/radio-CSce3UT0.js +262 -0
  218. package/dist/assets/readyToRun.store-YEMvPUqo.js +626 -0
  219. package/dist/assets/readyToRunWorkflows.store-G3srgIze.js +1319 -0
  220. package/dist/assets/retry-BgHaYzbB.js +23 -0
  221. package/dist/assets/roles.store-CRf_zJTb.js +51 -0
  222. package/dist/assets/router-DNpzz3GH.js +2631 -0
  223. package/dist/assets/sanitize-html-CbW56HUN.js +10758 -0
  224. package/dist/assets/schemaPreview.store-DUgN1yVE.js +113 -0
  225. package/dist/assets/semver-Bk6DGseV.js +1306 -0
  226. package/dist/assets/smartDecimal-DAZl4HKA.js +6 -0
  227. package/dist/assets/sortByProperty-Cn7iGKYu.js +8 -0
  228. package/dist/assets/sourceControl.eventBus-D47xXSc_.js +3 -0
  229. package/dist/assets/sqlite3-DBpDb1lf.wasm +0 -0
  230. package/dist/assets/sqlite3-opfs-async-proxy-vVtmDGHX.js +461 -0
  231. package/dist/assets/sqlite3-worker1-bundler-friendly-DLarOZDL.js +9405 -0
  232. package/dist/assets/src-jviYSG25.js +55454 -0
  233. package/dist/assets/sso.store-DyApJwhx.js +139 -0
  234. package/dist/assets/style-E3CrYFV8.css +111829 -0
  235. package/dist/assets/table-we1DjFMV.js +3944 -0
  236. package/dist/assets/templateActions-bEDSARw2.js +65 -0
  237. package/dist/assets/templateTransforms-BHWiRbtR.js +43 -0
  238. package/dist/assets/truncate-C0KYt7i3.js +4176 -0
  239. package/dist/assets/typescript.worker-CYqLvLHh.js +152048 -0
  240. package/dist/assets/uniqBy-xDyuCRP0.js +10 -0
  241. package/dist/assets/usage.store-CU5J_nGm.js +100 -0
  242. package/dist/assets/useActions-B1JckIRj.js +255 -0
  243. package/dist/assets/useBeforeUnload-DiDkvI8p.js +40 -0
  244. package/dist/assets/useCanvasMapping-BXT7rGhC.js +12570 -0
  245. package/dist/assets/useCanvasOperations-8ULLtMkY.js +1765 -0
  246. package/dist/assets/useClipboard-DvjhVHqJ.js +39 -0
  247. package/dist/assets/useCommandBar-C4tLJbKt.js +2425 -0
  248. package/dist/assets/useCredentialResolvers-BKeFGJnY.js +78 -0
  249. package/dist/assets/useCustomAgent-DpILEt5e.js +471 -0
  250. package/dist/assets/useDebounce-Br5_1ug-.js +147 -0
  251. package/dist/assets/useExecutionData-M5iKsX6z.js +23 -0
  252. package/dist/assets/useExecutionDebugging-8azMzbnd.js +191 -0
  253. package/dist/assets/useExecutionHelpers-BgRRhpBM.js +91 -0
  254. package/dist/assets/useImportCurlCommand-CKiEmX5P.js +8891 -0
  255. package/dist/assets/useIntersectionObserver-BWMwOueh.js +33 -0
  256. package/dist/assets/useKeybindings-B2jfN6rd.js +62 -0
  257. package/dist/assets/useLogsTreeExpand-sZViUfdM.js +843 -0
  258. package/dist/assets/useMcp-DoMOIfqT.js +27 -0
  259. package/dist/assets/usePageRedirectionHelper-DjkznpX6.js +51 -0
  260. package/dist/assets/usePinnedData-BhZkqttf.js +203 -0
  261. package/dist/assets/usePushConnection-DMS-F_IW.js +513 -0
  262. package/dist/assets/useRecentResources-BVORr7eM.js +118 -0
  263. package/dist/assets/useRunWorkflow-LO7ffLp9.js +950 -0
  264. package/dist/assets/useSettingsItems-BhZXwMZn.js +144 -0
  265. package/dist/assets/useTelemetryContext-V6bv4YRq.js +34 -0
  266. package/dist/assets/useWorkflowActivate-DeSmDXjI.js +152 -0
  267. package/dist/assets/useWorkflowsCache-DtcEEAIR.js +179 -0
  268. package/dist/assets/userRoleProvisioning.store-kkSIdeTo.js +33 -0
  269. package/dist/assets/utils-DI7dLldp.js +54 -0
  270. package/dist/assets/versions.store-B1z2OrLE.js +191 -0
  271. package/dist/assets/vue-CydWIhxN.js +4378 -0
  272. package/dist/assets/vue-json-pretty-CsGX66mG.js +1130 -0
  273. package/dist/assets/vue.runtime.esm-bundler-tP5dCd7J.js +7325 -0
  274. package/dist/assets/xml-B_oj6Mle.js +2060 -0
  275. package/dist/favicon.ico +0 -0
  276. package/dist/index.html +157 -0
  277. package/dist/static/base-path.js +1 -0
  278. package/dist/static/community_package_tooltip_img.png +0 -0
  279. package/dist/static/data-mapping-gif.gif +0 -0
  280. package/dist/static/form-grey.svg +1 -0
  281. package/dist/static/google-auth/disabled.dark.png +0 -0
  282. package/dist/static/google-auth/disabled.png +0 -0
  283. package/dist/static/google-auth/focus.dark.png +0 -0
  284. package/dist/static/google-auth/focus.png +0 -0
  285. package/dist/static/google-auth/normal.dark.png +0 -0
  286. package/dist/static/google-auth/normal.png +0 -0
  287. package/dist/static/google-auth/pressed.dark.png +0 -0
  288. package/dist/static/google-auth/pressed.png +0 -0
  289. package/dist/static/n8n-logo.png +0 -0
  290. package/dist/static/og_image.png +0 -0
  291. package/dist/static/open-ai.svg +1 -0
  292. package/dist/static/openChat.png +0 -0
  293. package/dist/static/posthog.init.js +41 -0
  294. package/dist/static/prefers-color-scheme.css +5 -0
  295. package/dist/static/webhook-icon.svg +1 -0
  296. package/dist/tree-sitter-bash.wasm +0 -0
  297. package/dist/tree-sitter.wasm +0 -0
  298. package/eslint.config.mjs +59 -0
  299. package/index.html +45 -0
  300. package/index.js +0 -0
  301. package/package.json +147 -0
  302. package/postcss.config.cjs +6 -0
  303. package/scripts/fetch-node-popularity.mjs +102 -0
  304. package/stylelint.config.mjs +9 -0
  305. package/tailwind.config.js +8 -0
  306. package/tsconfig.json +36 -0
  307. package/vite/i18n-locales-hmr-helpers.ts +19 -0
  308. package/vite/source-map-js-shim.ts +1 -0
  309. package/vite/vite-plugin-node-popularity.mts +32 -0
  310. package/vite.config.mts +304 -0
@@ -0,0 +1,1075 @@
1
+ import { C as computed, Cn as toDisplayString, D as createElementBlock, E as createCommentVNode, G as nextTick, Gt as unref, It as ref, J as onBeforeUnmount, M as createVNode, P as defineComponent, T as createBlock, Z as onMounted, _t as watch, at as renderSlot, bn as normalizeStyle, bt as withCtx, et as openBlock, j as createTextVNode, k as createSlots, pt as useSlots, vn as normalizeClass, w as createBaseVNode } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
2
+ import { G as useThrottleFn, rt as useI18n } from "./core-CRbPymLT.js";
3
+ import { C as N8nResizeWrapper_default, Cn as N8nIcon_default, bn as N8nText_default, ct as useDeviceSupport, ht as N8nTooltip_default } from "./src-jviYSG25.js";
4
+ import "./en-CF30SCh2.js";
5
+ import "./preload-helper-dyVz7ck7.js";
6
+ import { t as __plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BwBpWJRZ.js";
7
+ import { s as createEventBus } from "./truncate-C0KYt7i3.js";
8
+ import "./date-picker-2IDsBs2n.js";
9
+ import { Kn as useNodeHelpers, N as useNDVStore, P as useWorkflowsStore, Pt as useNodeTypesStore, Qi as nodeViewEventBus, aa as useUIStore, b as useStyles, h as useMessage, k as useTelemetry, na as dataPinningEventBus, ps as useStorage, x as useExternalHooks } from "./builder.store-Czk2ipDE.js";
10
+ import { c as InputPanel_default } from "./ParameterInputList-sG2nz-Jo.js";
11
+ import "./empty-BuGRxzl4.js";
12
+ import "./col-Cmt4cmuS.js";
13
+ import { t as ElDialog } from "./dialog-lMho1TD8.js";
14
+ import "./get-BcEmeOxn.js";
15
+ import "./sanitize-html-CbW56HUN.js";
16
+ import "./CalendarDate-DgQUMbNo.js";
17
+ import "./path-browserify-RUt2u7iT.js";
18
+ import "./_MapCache-CcdIl4Ae.js";
19
+ import { Da as jsonParse, E as APP_MODALS_ELEMENT_ID, G as MAIN_NODE_PANEL_WIDTH, Is as LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH, Qi as getNodeOutputs, Ua as NodeConnectionTypes, rn as EXECUTABLE_TRIGGER_NODE_TYPES, rs as MODAL_CONFIRM, s as BASE_NODE_SURVEY_URL, sr as STICKY_NODE_TYPE } from "./constants-C8OH4tTq.js";
20
+ import "./merge-DhuTk1HM.js";
21
+ import { A as storeToRefs } from "./_baseOrderBy-N8Be_6z6.js";
22
+ import "./dateformat-hG8NERse.js";
23
+ import "./useDebounce-Br5_1ug-.js";
24
+ import { n as ndvEventBus } from "./assistant.store-CNywgN4S.js";
25
+ import "./chatPanel.store-NDaawEZL.js";
26
+ import "./retry-BgHaYzbB.js";
27
+ import "./executions.store-B9uRYwgv.js";
28
+ import "./useRunWorkflow-LO7ffLp9.js";
29
+ import { t as usePinnedData } from "./usePinnedData-BhZkqttf.js";
30
+ import "./nodeCreator.store-Bpnrwp2l.js";
31
+ import "./nodeIcon-D6X-ENYt.js";
32
+ import "./useClipboard-DvjhVHqJ.js";
33
+ import "./useCanvasOperations-8ULLtMkY.js";
34
+ import "./folders.store-yAFj-5Vl.js";
35
+ import "./NodeIcon-B9VW6tX6.js";
36
+ import "./dataTable.store-DmipQsol.js";
37
+ import "./CopyInput-DDZVu2iU.js";
38
+ import "./isEmpty-C3XXoHqJ.js";
39
+ import "./NDVEmptyState-33UoX00I.js";
40
+ import "./exports-Crx_gvt_.js";
41
+ import "./externalSecrets.ee.store-BJh4a_6G.js";
42
+ import "./uniqBy-xDyuCRP0.js";
43
+ import "./semver-Bk6DGseV.js";
44
+ import "./CommunityNodeUpdateInfo-C37kca4W.js";
45
+ import "./RunDataHtml-Cleia4Cj.js";
46
+ import "./VueMarkdown-CQqJL9vK.js";
47
+ import { t as Draggable_default } from "./Draggable-vfvXl9Sp.js";
48
+ import "./VirtualSchema-B3zGe_8b.js";
49
+ import "./TextWithHighlights-BxumwGnv.js";
50
+ import { t as useTelemetryContext } from "./useTelemetryContext-V6bv4YRq.js";
51
+ import "./schemaPreview.store-DUgN1yVE.js";
52
+ import "./nodeTransforms-RzcOM0v2.js";
53
+ import "./vue-json-pretty-CsGX66mG.js";
54
+ import "./dateFormatter-ik4-9_9r.js";
55
+ import "./useExecutionHelpers-BgRRhpBM.js";
56
+ import { t as NodeSettings_default } from "./NodeSettings-ZwVip6VR.js";
57
+ import "./useActions-B1JckIRj.js";
58
+ import "./vue-CydWIhxN.js";
59
+ import "./core-CP5FY4aX.js";
60
+ import "./useExecutionData-M5iKsX6z.js";
61
+ import "./AnimatedSpinner-DmPN4poP.js";
62
+ import "./useLogsTreeExpand-sZViUfdM.js";
63
+ import "./core-B9gt_4yk.js";
64
+ import "./RunDataParsedAiContent-WAuqLQ5M.js";
65
+ import { n as OutputPanel_default, r as NDVFloatingNodes_default, t as TriggerPanel_default } from "./TriggerPanel-B6pacLkk.js";
66
+ var PanelDragButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
67
+ __name: "PanelDragButton",
68
+ props: {
69
+ canMoveRight: { type: Boolean },
70
+ canMoveLeft: { type: Boolean }
71
+ },
72
+ emits: [
73
+ "drag",
74
+ "dragstart",
75
+ "dragend"
76
+ ],
77
+ setup(__props, { emit: __emit }) {
78
+ const emit = __emit;
79
+ const onDrag = (e) => {
80
+ emit("drag", e);
81
+ };
82
+ const onDragEnd = () => {
83
+ emit("dragend");
84
+ };
85
+ const onDragStart = () => {
86
+ emit("dragstart");
87
+ };
88
+ return (_ctx, _cache) => {
89
+ return openBlock(), createBlock(Draggable_default, {
90
+ type: "panel-resize",
91
+ class: normalizeClass(_ctx.$style.dragContainer),
92
+ onDrag,
93
+ onDragstart: onDragStart,
94
+ onDragend: onDragEnd
95
+ }, {
96
+ default: withCtx(({ isDragging }) => [createBaseVNode("div", {
97
+ class: normalizeClass({ [_ctx.$style.dragButton]: true }),
98
+ "data-test-id": "panel-drag-button"
99
+ }, [
100
+ _ctx.canMoveLeft ? (openBlock(), createElementBlock("span", {
101
+ key: 0,
102
+ class: normalizeClass({
103
+ [_ctx.$style.leftArrow]: true,
104
+ [_ctx.$style.visible]: isDragging
105
+ })
106
+ }, [createVNode(unref(N8nIcon_default), { icon: "arrow-left" })], 2)) : createCommentVNode("", true),
107
+ _ctx.canMoveRight ? (openBlock(), createElementBlock("span", {
108
+ key: 1,
109
+ class: normalizeClass({
110
+ [_ctx.$style.rightArrow]: true,
111
+ [_ctx.$style.visible]: isDragging
112
+ })
113
+ }, [createVNode(unref(N8nIcon_default), { icon: "arrow-right" })], 2)) : createCommentVNode("", true),
114
+ createBaseVNode("div", { class: normalizeClass(_ctx.$style.grid) }, _cache[0] || (_cache[0] = [createBaseVNode("div", null, [
115
+ createBaseVNode("div"),
116
+ createBaseVNode("div"),
117
+ createBaseVNode("div"),
118
+ createBaseVNode("div"),
119
+ createBaseVNode("div")
120
+ ], -1), createBaseVNode("div", null, [
121
+ createBaseVNode("div"),
122
+ createBaseVNode("div"),
123
+ createBaseVNode("div"),
124
+ createBaseVNode("div"),
125
+ createBaseVNode("div")
126
+ ], -1)]), 2)
127
+ ], 2)]),
128
+ _: 1
129
+ }, 8, ["class"]);
130
+ };
131
+ }
132
+ });
133
+ var PanelDragButton_vue_vue_type_style_index_0_lang_module_default = {
134
+ dragContainer: "_dragContainer_1i6l1_123",
135
+ dragButton: "_dragButton_1i6l1_127",
136
+ leftArrow: "_leftArrow_1i6l1_141 _arrow_1i6l1_150",
137
+ rightArrow: "_rightArrow_1i6l1_142 _arrow_1i6l1_150",
138
+ visible: "_visible_1i6l1_146",
139
+ arrow: "_arrow_1i6l1_150",
140
+ grid: "_grid_1i6l1_168"
141
+ };
142
+ var PanelDragButton_default = /* @__PURE__ */ __plugin_vue_export_helper_default(PanelDragButton_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": PanelDragButton_vue_vue_type_style_index_0_lang_module_default }]]);
143
+ var SIDE_MARGIN = 24;
144
+ var SIDE_PANELS_MARGIN = 80;
145
+ var MIN_PANEL_WIDTH = 310;
146
+ var PANEL_WIDTH = 350;
147
+ var PANEL_WIDTH_LARGE = 420;
148
+ var NDVDraggablePanels_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
149
+ __name: "NDVDraggablePanels",
150
+ props: {
151
+ isDraggable: { type: Boolean },
152
+ hideInputAndOutput: { type: Boolean },
153
+ nodeType: {}
154
+ },
155
+ emits: [
156
+ "init",
157
+ "dragstart",
158
+ "dragend",
159
+ "switchSelectedNode",
160
+ "close"
161
+ ],
162
+ setup(__props, { emit: __emit }) {
163
+ const MIN_WINDOW_WIDTH = 2 * (SIDE_MARGIN + SIDE_PANELS_MARGIN) + MIN_PANEL_WIDTH;
164
+ const initialMainPanelWidth = {
165
+ regular: 390,
166
+ dragless: 390,
167
+ unknown: 390,
168
+ inputless: 390,
169
+ wide: 390 * 2
170
+ };
171
+ const throttledOnResize = useThrottleFn(onResize, 100);
172
+ const ndvStore = useNDVStore();
173
+ const uiStore = useUIStore();
174
+ const props = __props;
175
+ const isDragging = ref(false);
176
+ const initialized = ref(false);
177
+ const containerWidth = ref(uiStore.appGridDimensions.width);
178
+ const emit = __emit;
179
+ const slots = useSlots();
180
+ onMounted(() => {
181
+ if (mainPanelDimensions.value.relativeLeft === 1 && mainPanelDimensions.value.relativeRight === 1) {
182
+ setMainPanelWidth();
183
+ setPositions(getInitialLeftPosition(mainPanelDimensions.value.relativeWidth));
184
+ restorePositionData();
185
+ }
186
+ emit("init", { position: mainPanelDimensions.value.relativeLeft });
187
+ setTimeout(() => {
188
+ initialized.value = true;
189
+ }, 0);
190
+ ndvEventBus.on("setPositionByName", setPositionByName);
191
+ });
192
+ onBeforeUnmount(() => {
193
+ ndvEventBus.off("setPositionByName", setPositionByName);
194
+ });
195
+ watch(() => uiStore.appGridDimensions, async (dimensions) => {
196
+ const ndv = document.getElementById("ndv");
197
+ if (ndv) {
198
+ await nextTick();
199
+ const { width: ndvWidth } = ndv.getBoundingClientRect();
200
+ containerWidth.value = ndvWidth;
201
+ } else containerWidth.value = dimensions.width;
202
+ const minRelativeWidth = pxToRelativeWidth(MIN_PANEL_WIDTH);
203
+ if (mainPanelDimensions.value.relativeWidth < minRelativeWidth) setMainPanelWidth(minRelativeWidth);
204
+ const isBelowMinLeft = minimumLeftPosition.value > mainPanelDimensions.value.relativeLeft;
205
+ const isMaxRight = maximumRightPosition.value > mainPanelDimensions.value.relativeRight;
206
+ if (dimensions.width > MIN_WINDOW_WIDTH && isBelowMinLeft && isMaxRight) {
207
+ setMainPanelWidth(minRelativeWidth);
208
+ setPositions(getInitialLeftPosition(mainPanelDimensions.value.relativeWidth));
209
+ }
210
+ setPositions(mainPanelDimensions.value.relativeLeft);
211
+ });
212
+ const currentNodePaneType = computed(() => {
213
+ if (!hasInputSlot.value) return "inputless";
214
+ if (!props.isDraggable) return "dragless";
215
+ if (props.nodeType === null) return "unknown";
216
+ return props.nodeType.parameterPane ?? "regular";
217
+ });
218
+ const mainPanelDimensions = computed(() => {
219
+ return ndvStore.mainPanelDimensions[currentNodePaneType.value];
220
+ });
221
+ const calculatedPositions = computed(() => {
222
+ const hasInput = slots.input !== void 0;
223
+ const outputPanelRelativeLeft = mainPanelDimensions.value.relativeLeft + mainPanelDimensions.value.relativeWidth;
224
+ return {
225
+ inputPanelRelativeRight: hasInput ? 1 - outputPanelRelativeLeft + mainPanelDimensions.value.relativeWidth : 1 - pxToRelativeWidth(SIDE_MARGIN),
226
+ outputPanelRelativeLeft
227
+ };
228
+ });
229
+ const outputPanelRelativeTranslate = computed(() => {
230
+ const panelMinLeft = 1 - pxToRelativeWidth(MIN_PANEL_WIDTH + SIDE_MARGIN);
231
+ const currentRelativeLeftDelta = calculatedPositions.value.outputPanelRelativeLeft - panelMinLeft;
232
+ return currentRelativeLeftDelta > 0 ? currentRelativeLeftDelta : 0;
233
+ });
234
+ const supportedResizeDirections = computed(() => {
235
+ const supportedDirections = ["right"];
236
+ if (props.isDraggable) supportedDirections.push("left");
237
+ return supportedDirections;
238
+ });
239
+ const hasInputSlot = computed(() => {
240
+ return slots.input !== void 0;
241
+ });
242
+ const inputPanelMargin = computed(() => pxToRelativeWidth(SIDE_PANELS_MARGIN));
243
+ const minimumLeftPosition = computed(() => {
244
+ if (containerWidth.value < MIN_WINDOW_WIDTH) return pxToRelativeWidth(1);
245
+ if (!hasInputSlot.value) return pxToRelativeWidth(SIDE_MARGIN);
246
+ return pxToRelativeWidth(SIDE_MARGIN + 20) + inputPanelMargin.value;
247
+ });
248
+ const maximumRightPosition = computed(() => {
249
+ if (containerWidth.value < MIN_WINDOW_WIDTH) return pxToRelativeWidth(1);
250
+ return pxToRelativeWidth(SIDE_MARGIN + 20) + inputPanelMargin.value;
251
+ });
252
+ const canMoveLeft = computed(() => {
253
+ return mainPanelDimensions.value.relativeLeft > minimumLeftPosition.value;
254
+ });
255
+ const canMoveRight = computed(() => {
256
+ return mainPanelDimensions.value.relativeRight > maximumRightPosition.value;
257
+ });
258
+ const mainPanelStyles = computed(() => {
259
+ return {
260
+ left: `${relativeWidthToPx(mainPanelDimensions.value.relativeLeft)}px`,
261
+ right: `${relativeWidthToPx(mainPanelDimensions.value.relativeRight)}px`
262
+ };
263
+ });
264
+ const inputPanelStyles = computed(() => {
265
+ return { right: `${relativeWidthToPx(calculatedPositions.value.inputPanelRelativeRight)}px` };
266
+ });
267
+ const outputPanelStyles = computed(() => {
268
+ return {
269
+ left: `${relativeWidthToPx(calculatedPositions.value.outputPanelRelativeLeft)}px`,
270
+ transform: `translateX(-${relativeWidthToPx(outputPanelRelativeTranslate.value)}px)`
271
+ };
272
+ });
273
+ const hasDoubleWidth = computed(() => {
274
+ return props.nodeType?.parameterPane === "wide";
275
+ });
276
+ const fixedPanelWidth = computed(() => {
277
+ const multiplier = hasDoubleWidth.value ? 2 : 1;
278
+ if (containerWidth.value > 1700) return PANEL_WIDTH_LARGE * multiplier;
279
+ return PANEL_WIDTH * multiplier;
280
+ });
281
+ const onSwitchSelectedNode = (node) => emit("switchSelectedNode", node);
282
+ function getInitialLeftPosition(width) {
283
+ if (currentNodePaneType.value === "dragless") return pxToRelativeWidth(SIDE_MARGIN + 1 + fixedPanelWidth.value);
284
+ return hasInputSlot.value ? .5 - width / 2 : minimumLeftPosition.value;
285
+ }
286
+ function setMainPanelWidth(relativeWidth) {
287
+ const mainPanelRelativeWidth = relativeWidth || pxToRelativeWidth(initialMainPanelWidth[currentNodePaneType.value]);
288
+ ndvStore.setMainPanelDimensions({
289
+ panelType: currentNodePaneType.value,
290
+ dimensions: { relativeWidth: mainPanelRelativeWidth }
291
+ });
292
+ }
293
+ function setPositions(relativeLeft) {
294
+ const mainPanelRelativeLeft = relativeLeft || 1 - calculatedPositions.value.inputPanelRelativeRight;
295
+ const mainPanelRelativeRight = 1 - mainPanelRelativeLeft - mainPanelDimensions.value.relativeWidth;
296
+ const isMaxRight = maximumRightPosition.value > mainPanelRelativeRight;
297
+ const isMinLeft = minimumLeftPosition.value > mainPanelRelativeLeft;
298
+ const isInputless = currentNodePaneType.value === "inputless";
299
+ if (isMinLeft) {
300
+ ndvStore.setMainPanelDimensions({
301
+ panelType: currentNodePaneType.value,
302
+ dimensions: {
303
+ relativeLeft: minimumLeftPosition.value,
304
+ relativeRight: 1 - mainPanelDimensions.value.relativeWidth - minimumLeftPosition.value
305
+ }
306
+ });
307
+ return;
308
+ }
309
+ if (isMaxRight) {
310
+ ndvStore.setMainPanelDimensions({
311
+ panelType: currentNodePaneType.value,
312
+ dimensions: {
313
+ relativeLeft: 1 - mainPanelDimensions.value.relativeWidth - maximumRightPosition.value,
314
+ relativeRight: maximumRightPosition.value
315
+ }
316
+ });
317
+ return;
318
+ }
319
+ ndvStore.setMainPanelDimensions({
320
+ panelType: currentNodePaneType.value,
321
+ dimensions: {
322
+ relativeLeft: isInputless ? minimumLeftPosition.value : mainPanelRelativeLeft,
323
+ relativeRight: mainPanelRelativeRight
324
+ }
325
+ });
326
+ }
327
+ function setPositionByName(position) {
328
+ setPositions({
329
+ minLeft: minimumLeftPosition.value,
330
+ maxRight: maximumRightPosition.value,
331
+ initial: getInitialLeftPosition(mainPanelDimensions.value.relativeWidth)
332
+ }[position]);
333
+ }
334
+ function pxToRelativeWidth(px) {
335
+ return px / containerWidth.value;
336
+ }
337
+ function relativeWidthToPx(relativeWidth) {
338
+ return relativeWidth * containerWidth.value;
339
+ }
340
+ function onResizeEnd() {
341
+ storePositionData();
342
+ }
343
+ function onResizeThrottle(data) {
344
+ if (initialized.value) throttledOnResize(data);
345
+ }
346
+ function onResize({ direction, x, width }) {
347
+ const relativeDistance = pxToRelativeWidth(x);
348
+ const relativeWidth = pxToRelativeWidth(width);
349
+ if (direction === "left" && relativeDistance <= minimumLeftPosition.value) return;
350
+ if (direction === "right" && 1 - relativeDistance <= maximumRightPosition.value) return;
351
+ if (width <= MIN_PANEL_WIDTH) return;
352
+ setMainPanelWidth(relativeWidth);
353
+ setPositions(direction === "left" ? relativeDistance : mainPanelDimensions.value.relativeLeft);
354
+ }
355
+ function restorePositionData() {
356
+ const storedPanelWidthData = useStorage(`${LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH}_${currentNodePaneType.value}`).value;
357
+ if (storedPanelWidthData) {
358
+ const parsedWidth = parseFloat(storedPanelWidthData);
359
+ setMainPanelWidth(parsedWidth);
360
+ setPositions(getInitialLeftPosition(parsedWidth));
361
+ return true;
362
+ }
363
+ return false;
364
+ }
365
+ function storePositionData() {
366
+ useStorage(`${LOCAL_STORAGE_MAIN_PANEL_RELATIVE_WIDTH}_${currentNodePaneType.value}`).value = mainPanelDimensions.value.relativeWidth.toString();
367
+ }
368
+ function onDragStart() {
369
+ isDragging.value = true;
370
+ emit("dragstart", { position: mainPanelDimensions.value.relativeLeft });
371
+ }
372
+ function onDrag(position) {
373
+ setPositions(pxToRelativeWidth(position[0]) - mainPanelDimensions.value.relativeWidth / 2);
374
+ }
375
+ function onDragEnd() {
376
+ setTimeout(() => {
377
+ isDragging.value = false;
378
+ emit("dragend", {
379
+ windowWidth: containerWidth.value,
380
+ position: mainPanelDimensions.value.relativeLeft
381
+ });
382
+ }, 0);
383
+ storePositionData();
384
+ }
385
+ return (_ctx, _cache) => {
386
+ return openBlock(), createElementBlock("div", null, [
387
+ unref(ndvStore).activeNode ? (openBlock(), createBlock(NDVFloatingNodes_default, {
388
+ key: 0,
389
+ "root-node": unref(ndvStore).activeNode,
390
+ onSwitchSelectedNode
391
+ }, null, 8, ["root-node"])) : createCommentVNode("", true),
392
+ !_ctx.hideInputAndOutput ? (openBlock(), createElementBlock("div", {
393
+ key: 1,
394
+ class: normalizeClass(_ctx.$style.inputPanel),
395
+ style: normalizeStyle(inputPanelStyles.value)
396
+ }, [renderSlot(_ctx.$slots, "input")], 6)) : createCommentVNode("", true),
397
+ !_ctx.hideInputAndOutput ? (openBlock(), createElementBlock("div", {
398
+ key: 2,
399
+ class: normalizeClass(_ctx.$style.outputPanel),
400
+ style: normalizeStyle(outputPanelStyles.value)
401
+ }, [renderSlot(_ctx.$slots, "output")], 6)) : createCommentVNode("", true),
402
+ createBaseVNode("div", {
403
+ class: normalizeClass(_ctx.$style.mainPanel),
404
+ style: normalizeStyle(mainPanelStyles.value)
405
+ }, [createVNode(unref(N8nResizeWrapper_default), {
406
+ "is-resizing-enabled": currentNodePaneType.value !== "unknown",
407
+ width: relativeWidthToPx(mainPanelDimensions.value.relativeWidth),
408
+ "min-width": MIN_PANEL_WIDTH,
409
+ "grid-size": 20,
410
+ "supported-directions": supportedResizeDirections.value,
411
+ outset: "",
412
+ onResize: onResizeThrottle,
413
+ onResizeend: onResizeEnd
414
+ }, {
415
+ default: withCtx(() => [createBaseVNode("div", { class: normalizeClass(_ctx.$style.dragButtonContainer) }, [!_ctx.hideInputAndOutput && _ctx.isDraggable ? (openBlock(), createBlock(PanelDragButton_default, {
416
+ key: 0,
417
+ class: normalizeClass({
418
+ [_ctx.$style.draggable]: true,
419
+ [_ctx.$style.visible]: isDragging.value
420
+ }),
421
+ "can-move-left": canMoveLeft.value,
422
+ "can-move-right": canMoveRight.value,
423
+ onDragstart: onDragStart,
424
+ onDrag,
425
+ onDragend: onDragEnd
426
+ }, null, 8, [
427
+ "class",
428
+ "can-move-left",
429
+ "can-move-right"
430
+ ])) : createCommentVNode("", true)], 2), createBaseVNode("div", { class: normalizeClass({
431
+ [_ctx.$style.mainPanelInner]: true,
432
+ [_ctx.$style.dragging]: isDragging.value
433
+ }) }, [renderSlot(_ctx.$slots, "main")], 2)]),
434
+ _: 3
435
+ }, 8, [
436
+ "is-resizing-enabled",
437
+ "width",
438
+ "supported-directions"
439
+ ])], 6)
440
+ ]);
441
+ };
442
+ }
443
+ });
444
+ const dataPanel = "_dataPanel_1xgxx_123";
445
+ const inputPanel = "_inputPanel_1xgxx_132 _dataPanel_1xgxx_123";
446
+ const outputPanel = "_outputPanel_1xgxx_140 _dataPanel_1xgxx_123";
447
+ const mainPanel = "_mainPanel_1xgxx_148";
448
+ const draggable = "_draggable_1xgxx_152";
449
+ const mainPanelInner = "_mainPanelInner_1xgxx_156";
450
+ const dragging = "_dragging_1xgxx_163";
451
+ const dragButtonContainer = "_dragButtonContainer_1xgxx_176";
452
+ const visible = "_visible_1xgxx_192";
453
+ var NDVDraggablePanels_vue_vue_type_style_index_0_lang_module_default = {
454
+ dataPanel,
455
+ inputPanel,
456
+ outputPanel,
457
+ mainPanel,
458
+ draggable,
459
+ mainPanelInner,
460
+ dragging,
461
+ "double-width": "_double-width_1xgxx_172",
462
+ dragButtonContainer,
463
+ visible
464
+ };
465
+ var NDVDraggablePanels_default = /* @__PURE__ */ __plugin_vue_export_helper_default(NDVDraggablePanels_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": NDVDraggablePanels_vue_vue_type_style_index_0_lang_module_default }]]);
466
+ var _hoisted_1 = {
467
+ key: 0,
468
+ ref: "container",
469
+ class: "data-display",
470
+ "data-test-id": "ndv-modal",
471
+ tabindex: "0"
472
+ };
473
+ var NodeDetailsView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
474
+ __name: "NodeDetailsView",
475
+ props: {
476
+ workflowObject: {},
477
+ readOnly: {
478
+ type: Boolean,
479
+ default: false
480
+ },
481
+ renaming: { type: Boolean },
482
+ isProductionExecutionPreview: {
483
+ type: Boolean,
484
+ default: false
485
+ }
486
+ },
487
+ emits: [
488
+ "saveKeyboardShortcut",
489
+ "valueChanged",
490
+ "switchSelectedNode",
491
+ "openConnectionNodeCreator",
492
+ "stopExecution"
493
+ ],
494
+ setup(__props, { emit: __emit }) {
495
+ const emit = __emit;
496
+ const props = __props;
497
+ const ndvStore = useNDVStore();
498
+ const externalHooks = useExternalHooks();
499
+ const nodeHelpers = useNodeHelpers();
500
+ const { activeNode } = storeToRefs(ndvStore);
501
+ const pinnedData = usePinnedData(activeNode);
502
+ const nodeTypesStore = useNodeTypesStore();
503
+ const workflowsStore = useWorkflowsStore();
504
+ const deviceSupport = useDeviceSupport();
505
+ const telemetry = useTelemetry();
506
+ const telemetryContext = useTelemetryContext({ view_shown: "ndv" });
507
+ const i18n = useI18n();
508
+ const message = useMessage();
509
+ const { APP_Z_INDEXES } = useStyles();
510
+ const settingsEventBus = createEventBus();
511
+ const runInputIndex = ref(-1);
512
+ const runOutputIndex = computed(() => ndvStore.output.run ?? -1);
513
+ const selectedInput = ref();
514
+ const isLinkingEnabled = ref(true);
515
+ const triggerWaitingWarningEnabled = ref(false);
516
+ const isDragging = ref(false);
517
+ const mainPanelPosition = ref(0);
518
+ const pinDataDiscoveryTooltipVisible = ref(false);
519
+ const avgInputRowHeight = ref(0);
520
+ const avgOutputRowHeight = ref(0);
521
+ const isInputPaneActive = ref(false);
522
+ const isOutputPaneActive = ref(false);
523
+ const isPairedItemHoveringEnabled = ref(true);
524
+ const pushRef = computed(() => ndvStore.pushRef);
525
+ const activeNodeType = computed(() => {
526
+ if (activeNode.value) return nodeTypesStore.getNodeType(activeNode.value.type, activeNode.value.typeVersion);
527
+ return null;
528
+ });
529
+ const showTriggerWaitingWarning = computed(() => triggerWaitingWarningEnabled.value && !!activeNodeType.value && !activeNodeType.value.group.includes("trigger") && workflowsStore.isWorkflowRunning && workflowsStore.executionWaitingForWebhook);
530
+ const workflowRunData = computed(() => {
531
+ if (workflowExecution.value === null) return null;
532
+ const executionData = workflowExecution.value.data;
533
+ if (executionData?.resultData) return executionData.resultData.runData;
534
+ return null;
535
+ });
536
+ const parentNodes = computed(() => {
537
+ if (activeNode.value) return props.workflowObject.getParentNodesByDepth(activeNode.value.name, 1);
538
+ return [];
539
+ });
540
+ const parentNode = computed(() => {
541
+ for (const parent of parentNodes.value) {
542
+ if (workflowsStore?.pinnedWorkflowData?.[parent.name]) return parent;
543
+ if (workflowRunData.value?.[parent.name]) return parent;
544
+ }
545
+ return parentNodes.value[0];
546
+ });
547
+ const inputNodeName = computed(() => {
548
+ if ((activeNode.value && activeNodeType.value ? getNodeOutputs(props.workflowObject, activeNode.value, activeNodeType.value) : []).filter((output) => {
549
+ if (typeof output === "string") return output !== NodeConnectionTypes.Main;
550
+ return output.type !== NodeConnectionTypes.Main;
551
+ }).length > 0 && activeNode.value) return props.workflowObject.getChildNodes(activeNode.value.name, "ALL_NON_MAIN")?.[0];
552
+ return selectedInput.value ?? parentNode.value?.name;
553
+ });
554
+ const inputNode = computed(() => {
555
+ if (inputNodeName.value) return workflowsStore.getNodeByName(inputNodeName.value);
556
+ return null;
557
+ });
558
+ const inputSize = computed(() => ndvStore.ndvInputDataWithPinnedData.length);
559
+ const isTriggerNode = computed(() => !!activeNodeType.value && activeNodeType.value.group.includes("trigger"));
560
+ const showTriggerPanel = computed(() => {
561
+ const override = !!activeNodeType.value?.triggerPanel;
562
+ if (typeof activeNodeType.value?.triggerPanel === "boolean") return override;
563
+ const isWebhookBasedNode = !!activeNodeType.value?.webhooks?.length;
564
+ const isPollingNode = activeNodeType.value?.polling;
565
+ return !props.readOnly && isTriggerNode.value && (isWebhookBasedNode || isPollingNode || override);
566
+ });
567
+ const isExecutableTriggerNode = computed(() => {
568
+ if (!activeNodeType.value) return false;
569
+ return EXECUTABLE_TRIGGER_NODE_TYPES.includes(activeNodeType.value.name);
570
+ });
571
+ const isActiveStickyNode = computed(() => !!ndvStore.activeNode && ndvStore.activeNode.type === "n8n-nodes-base.stickyNote");
572
+ const workflowExecution = computed(() => workflowsStore.getWorkflowExecution);
573
+ const maxOutputRun = computed(() => {
574
+ if (activeNode.value === null) return 0;
575
+ const runData = workflowRunData.value;
576
+ if (!runData?.[activeNode.value.name]) return 0;
577
+ if (runData[activeNode.value.name].length) return runData[activeNode.value.name].length - 1;
578
+ return 0;
579
+ });
580
+ const outputRun = computed(() => runOutputIndex.value === -1 ? maxOutputRun.value : Math.min(runOutputIndex.value, maxOutputRun.value));
581
+ const maxInputRun = computed(() => {
582
+ if (inputNode.value === null || activeNode.value === null) return 0;
583
+ const workflowNode = props.workflowObject.getNode(activeNode.value.name);
584
+ if (!workflowNode || !activeNodeType.value) return 0;
585
+ const outputs = getNodeOutputs(props.workflowObject, workflowNode, activeNodeType.value);
586
+ let node = inputNode.value;
587
+ const runData = workflowRunData.value;
588
+ if (outputs.some((output) => output !== NodeConnectionTypes.Main)) node = activeNode.value;
589
+ if (!node || !runData?.hasOwnProperty(node.name)) return 0;
590
+ if (runData[node.name].length) return runData[node.name].length - 1;
591
+ return 0;
592
+ });
593
+ const connectedCurrentNodeOutputs = computed(() => {
594
+ return parentNodes.value.find(({ name }) => name === inputNodeName.value)?.indicies;
595
+ });
596
+ const inputRun = computed(() => {
597
+ if (isLinkingEnabled.value && maxOutputRun.value === maxInputRun.value) return outputRun.value;
598
+ const currentInputNodeName = inputNodeName.value;
599
+ if (runInputIndex.value === -1 && currentInputNodeName) return connectedCurrentNodeOutputs.value?.map((outputIndex) => nodeHelpers.getLastRunIndexWithData(currentInputNodeName, outputIndex)).find((runIndex) => runIndex !== -1) ?? maxInputRun.value;
600
+ return Math.min(runInputIndex.value, maxInputRun.value);
601
+ });
602
+ const canLinkRuns = computed(() => maxOutputRun.value > 0 && maxOutputRun.value === maxInputRun.value);
603
+ const linked = computed(() => isLinkingEnabled.value && canLinkRuns.value);
604
+ const featureRequestUrl = computed(() => {
605
+ if (!activeNodeType.value) return "";
606
+ return `${BASE_NODE_SURVEY_URL}${activeNodeType.value.name}`;
607
+ });
608
+ const outputPanelEditMode = computed(() => ndvStore.outputPanelEditMode);
609
+ const isExecutionWaitingForWebhook = computed(() => workflowsStore.executionWaitingForWebhook);
610
+ const blockUi = computed(() => workflowsStore.isWorkflowRunning || isExecutionWaitingForWebhook.value);
611
+ const foreignCredentials = computed(() => nodeHelpers.getForeignCredentialsIfSharingEnabled(activeNode.value?.credentials));
612
+ const hasForeignCredential = computed(() => foreignCredentials.value.length > 0);
613
+ const inputPanelDisplayMode = computed(() => ndvStore.inputPanelDisplayMode);
614
+ const outputPanelDisplayMode = computed(() => ndvStore.outputPanelDisplayMode);
615
+ const setIsTooltipVisible = ({ isTooltipVisible }) => {
616
+ pinDataDiscoveryTooltipVisible.value = isTooltipVisible;
617
+ };
618
+ const onKeyDown = (e) => {
619
+ if (e.key === "s" && deviceSupport.isCtrlKeyPressed(e)) onSaveWorkflow(e);
620
+ };
621
+ const onSaveWorkflow = (e) => {
622
+ e.stopPropagation();
623
+ e.preventDefault();
624
+ if (props.readOnly) return;
625
+ emit("saveKeyboardShortcut", e);
626
+ };
627
+ const onInputItemHover = (e) => {
628
+ if (e === null || !inputNodeName.value || !isPairedItemHoveringEnabled.value) {
629
+ ndvStore.setHoveringItem(null);
630
+ return;
631
+ }
632
+ const item = {
633
+ nodeName: inputNodeName.value,
634
+ runIndex: inputRun.value,
635
+ outputIndex: e.outputIndex,
636
+ itemIndex: e.itemIndex
637
+ };
638
+ ndvStore.setHoveringItem(item);
639
+ };
640
+ const onInputTableMounted = (e) => {
641
+ avgInputRowHeight.value = e.avgRowHeight;
642
+ };
643
+ const onWorkflowActivate = () => {
644
+ ndvStore.unsetActiveNodeName();
645
+ nodeViewEventBus.emit("publishWorkflow");
646
+ };
647
+ const onOutputItemHover = (e) => {
648
+ if (e === null || !activeNode.value || !isPairedItemHoveringEnabled.value) {
649
+ ndvStore.setHoveringItem(null);
650
+ return;
651
+ }
652
+ const item = {
653
+ nodeName: activeNode.value?.name,
654
+ runIndex: outputRun.value,
655
+ outputIndex: e.outputIndex,
656
+ itemIndex: e.itemIndex
657
+ };
658
+ ndvStore.setHoveringItem(item);
659
+ };
660
+ const onFeatureRequestClick = () => {
661
+ window.open(featureRequestUrl.value, "_blank");
662
+ if (activeNode.value) telemetry.track("User clicked ndv link", {
663
+ node_type: activeNode.value.type,
664
+ workflow_id: workflowsStore.workflowId,
665
+ push_ref: pushRef.value,
666
+ pane: NodeConnectionTypes.Main,
667
+ type: "i-wish-this-node-would"
668
+ });
669
+ };
670
+ const onDragEnd = (e) => {
671
+ isDragging.value = false;
672
+ telemetry.track("User moved parameters pane", {
673
+ window_width: e.windowWidth,
674
+ start_position: mainPanelPosition.value,
675
+ end_position: e.position,
676
+ node_type: activeNodeType.value ? activeNodeType.value.name : "",
677
+ push_ref: pushRef.value,
678
+ workflow_id: workflowsStore.workflowId
679
+ });
680
+ mainPanelPosition.value = e.position;
681
+ };
682
+ const onDragStart = (e) => {
683
+ isDragging.value = true;
684
+ mainPanelPosition.value = e.position;
685
+ };
686
+ const onPanelsInit = (e) => {
687
+ mainPanelPosition.value = e.position;
688
+ };
689
+ const onLinkRunToOutput = () => {
690
+ isLinkingEnabled.value = true;
691
+ trackLinking("output");
692
+ };
693
+ const onUnlinkRun = (pane) => {
694
+ runInputIndex.value = runOutputIndex.value;
695
+ isLinkingEnabled.value = false;
696
+ trackLinking(pane);
697
+ };
698
+ const onNodeExecute = () => {
699
+ setTimeout(() => {
700
+ if (!activeNode.value || !workflowsStore.isWorkflowRunning) return;
701
+ triggerWaitingWarningEnabled.value = true;
702
+ }, 1e3);
703
+ };
704
+ const openSettings = () => {
705
+ settingsEventBus.emit("openSettings");
706
+ };
707
+ const trackLinking = (pane) => {
708
+ telemetry.track("User changed ndv run linking", {
709
+ node_type: activeNodeType.value ? activeNodeType.value.name : "",
710
+ push_ref: pushRef.value,
711
+ linked: linked.value,
712
+ pane
713
+ });
714
+ };
715
+ const onLinkRunToInput = () => {
716
+ ndvStore.setOutputRunIndex(runInputIndex.value);
717
+ isLinkingEnabled.value = true;
718
+ trackLinking("input");
719
+ };
720
+ const valueChanged = (parameterData) => {
721
+ emit("valueChanged", parameterData);
722
+ };
723
+ const onSwitchSelectedNode = (nodeTypeName) => {
724
+ emit("switchSelectedNode", nodeTypeName);
725
+ };
726
+ const onOpenConnectionNodeCreator = (nodeTypeName, connectionType, connectionIndex = 0) => {
727
+ emit("openConnectionNodeCreator", nodeTypeName, connectionType, connectionIndex);
728
+ };
729
+ const close = async () => {
730
+ if (isDragging.value) return;
731
+ if (outputPanelEditMode.value.enabled && activeNode.value) {
732
+ if (await message.confirm("", i18n.baseText("ndv.pinData.beforeClosing.title"), {
733
+ confirmButtonText: i18n.baseText("ndv.pinData.beforeClosing.confirm"),
734
+ cancelButtonText: i18n.baseText("ndv.pinData.beforeClosing.cancel")
735
+ }) === "confirm") {
736
+ const { value } = outputPanelEditMode.value;
737
+ try {
738
+ pinnedData.setData(jsonParse(value), "on-ndv-close-modal");
739
+ } catch (error) {
740
+ console.error(error);
741
+ }
742
+ }
743
+ ndvStore.setOutputPanelEditModeEnabled(false);
744
+ }
745
+ await externalHooks.run("dataDisplay.nodeEditingFinished");
746
+ telemetry.track("User closed node modal", {
747
+ node_type: activeNodeType.value ? activeNodeType.value?.name : "",
748
+ push_ref: pushRef.value,
749
+ workflow_id: workflowsStore.workflowId
750
+ });
751
+ triggerWaitingWarningEnabled.value = false;
752
+ ndvStore.unsetActiveNodeName();
753
+ ndvStore.resetNDVPushRef();
754
+ };
755
+ const trackRunChange = (run, pane) => {
756
+ telemetry.track("User changed ndv run dropdown", {
757
+ push_ref: pushRef.value,
758
+ run_index: run,
759
+ node_type: activeNodeType.value ? activeNodeType.value?.name : "",
760
+ pane
761
+ });
762
+ };
763
+ const onRunOutputIndexChange = (run) => {
764
+ ndvStore.setOutputRunIndex(run);
765
+ trackRunChange(run, "output");
766
+ };
767
+ const onRunInputIndexChange = (run) => {
768
+ runInputIndex.value = run;
769
+ if (linked.value) ndvStore.setOutputRunIndex(run);
770
+ trackRunChange(run, "input");
771
+ };
772
+ const onOutputTableMounted = (e) => {
773
+ avgOutputRowHeight.value = e.avgRowHeight;
774
+ };
775
+ const onInputNodeChange = (value, index) => {
776
+ runInputIndex.value = -1;
777
+ isLinkingEnabled.value = true;
778
+ selectedInput.value = value;
779
+ telemetry.track("User changed ndv input dropdown", {
780
+ node_type: activeNode.value ? activeNode.value.type : "",
781
+ push_ref: pushRef.value,
782
+ workflow_id: workflowsStore.workflowId,
783
+ selection_value: index,
784
+ input_node_type: inputNode.value ? inputNode.value.type : ""
785
+ });
786
+ };
787
+ const onStopExecution = () => {
788
+ emit("stopExecution");
789
+ };
790
+ const activateInputPane = () => {
791
+ isInputPaneActive.value = true;
792
+ isOutputPaneActive.value = false;
793
+ };
794
+ const activateOutputPane = () => {
795
+ isInputPaneActive.value = false;
796
+ isOutputPaneActive.value = true;
797
+ };
798
+ const onSearch = (search) => {
799
+ isPairedItemHoveringEnabled.value = !search;
800
+ };
801
+ const registerKeyboardListener = () => {
802
+ document.addEventListener("keydown", onKeyDown, true);
803
+ };
804
+ const unregisterKeyboardListener = () => {
805
+ document.removeEventListener("keydown", onKeyDown, true);
806
+ };
807
+ const setSelectedInput = (value) => {
808
+ selectedInput.value = value;
809
+ };
810
+ const handleChangeDisplayMode = (pane, mode) => {
811
+ ndvStore.setPanelDisplayMode({
812
+ pane,
813
+ mode
814
+ });
815
+ };
816
+ watch(activeNode, (node, oldNode) => {
817
+ if (node && !oldNode) registerKeyboardListener();
818
+ else if (!node) unregisterKeyboardListener();
819
+ if (node && node.name !== oldNode?.name && !isActiveStickyNode.value) {
820
+ runInputIndex.value = -1;
821
+ ndvStore.setOutputRunIndex(-1);
822
+ isLinkingEnabled.value = true;
823
+ selectedInput.value = void 0;
824
+ triggerWaitingWarningEnabled.value = false;
825
+ avgOutputRowHeight.value = 0;
826
+ avgInputRowHeight.value = 0;
827
+ setTimeout(() => ndvStore.setNDVPushRef(), 0);
828
+ if (!activeNodeType.value) return;
829
+ externalHooks.run("dataDisplay.nodeTypeChanged", { nodeSubtitle: nodeHelpers.getNodeSubtitle(node, activeNodeType.value, props.workflowObject) });
830
+ setTimeout(() => {
831
+ if (activeNode.value) {
832
+ const outgoingConnections = workflowsStore.outgoingConnectionsByNodeName(activeNode.value?.name);
833
+ telemetry.track("User opened node modal", {
834
+ node_id: activeNode.value?.id,
835
+ node_type: activeNodeType.value ? activeNodeType.value?.name : "",
836
+ workflow_id: workflowsStore.workflowId,
837
+ push_ref: pushRef.value,
838
+ is_editable: !hasForeignCredential.value,
839
+ parameters_pane_position: mainPanelPosition.value,
840
+ input_first_connector_runs: maxInputRun.value,
841
+ output_first_connector_runs: maxOutputRun.value,
842
+ selected_view_inputs: isTriggerNode.value ? "trigger" : inputPanelDisplayMode.value,
843
+ selected_view_outputs: outputPanelDisplayMode.value,
844
+ input_connectors: parentNodes.value.length,
845
+ output_connectors: outgoingConnections?.main?.length,
846
+ input_displayed_run_index: inputRun.value,
847
+ output_displayed_run_index: outputRun.value,
848
+ data_pinning_tooltip_presented: pinDataDiscoveryTooltipVisible.value,
849
+ input_displayed_row_height_avg: avgInputRowHeight.value,
850
+ output_displayed_row_height_avg: avgOutputRowHeight.value,
851
+ source: telemetryContext.ndv_source?.value ?? "other"
852
+ });
853
+ }
854
+ }, 2e3);
855
+ }
856
+ if (window.top && !isActiveStickyNode.value) window.top.postMessage(JSON.stringify({ command: node ? "openNDV" : "closeNDV" }), "*");
857
+ }, { immediate: true });
858
+ watch(maxOutputRun, () => {
859
+ ndvStore.setOutputRunIndex(-1);
860
+ });
861
+ watch(maxInputRun, () => {
862
+ runInputIndex.value = -1;
863
+ });
864
+ watch(inputNodeName, (nodeName) => {
865
+ setTimeout(() => {
866
+ ndvStore.setInputNodeName(nodeName);
867
+ }, 0);
868
+ });
869
+ watch(inputRun, (inputRun$1) => {
870
+ setTimeout(() => {
871
+ ndvStore.setInputRunIndex(inputRun$1);
872
+ }, 0);
873
+ });
874
+ onMounted(() => {
875
+ dataPinningEventBus.on("data-pinning-discovery", setIsTooltipVisible);
876
+ ndvEventBus.on("updateInputNodeName", setSelectedInput);
877
+ });
878
+ onBeforeUnmount(() => {
879
+ dataPinningEventBus.off("data-pinning-discovery", setIsTooltipVisible);
880
+ ndvEventBus.off("updateInputNodeName", setSelectedInput);
881
+ unregisterKeyboardListener();
882
+ });
883
+ return (_ctx, _cache) => {
884
+ return openBlock(), createBlock(unref(ElDialog), {
885
+ id: "ndv",
886
+ "model-value": (!!unref(activeNode) || _ctx.renaming) && !isActiveStickyNode.value,
887
+ "before-close": close,
888
+ "show-close": false,
889
+ class: "data-display-wrapper ndv-wrapper",
890
+ "overlay-class": "data-display-overlay",
891
+ width: "auto",
892
+ "append-to": `#${unref(APP_MODALS_ELEMENT_ID)}`,
893
+ "data-test-id": "ndv",
894
+ "z-index": unref(APP_Z_INDEXES).NDV
895
+ }, {
896
+ default: withCtx(() => [createVNode(unref(N8nTooltip_default), {
897
+ placement: "bottom-start",
898
+ visible: showTriggerWaitingWarning.value,
899
+ disabled: !showTriggerWaitingWarning.value
900
+ }, {
901
+ content: withCtx(() => [createBaseVNode("div", { class: normalizeClass(_ctx.$style.triggerWarning) }, toDisplayString(unref(i18n).baseText("ndv.backToCanvas.waitingForTriggerWarning")), 3)]),
902
+ default: withCtx(() => [createBaseVNode("div", {
903
+ class: normalizeClass(_ctx.$style.backToCanvas),
904
+ "data-test-id": "back-to-canvas",
905
+ onClick: close
906
+ }, [createVNode(unref(N8nIcon_default), {
907
+ icon: "arrow-left",
908
+ color: "text-xlight",
909
+ size: "medium"
910
+ }), createVNode(unref(N8nText_default), {
911
+ color: "text-xlight",
912
+ size: "medium",
913
+ bold: true
914
+ }, {
915
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("ndv.backToCanvas")), 1)]),
916
+ _: 1
917
+ })], 2)]),
918
+ _: 1
919
+ }, 8, ["visible", "disabled"]), unref(activeNode) ? (openBlock(), createElementBlock("div", _hoisted_1, [createBaseVNode("div", {
920
+ class: normalizeClass(_ctx.$style.modalBackground),
921
+ onClick: close
922
+ }, null, 2), (openBlock(), createBlock(NDVDraggablePanels_default, {
923
+ key: unref(activeNode).name,
924
+ "is-trigger-node": isTriggerNode.value,
925
+ "hide-input-and-output": activeNodeType.value === null,
926
+ position: isTriggerNode.value && !showTriggerPanel.value ? 0 : void 0,
927
+ "is-draggable": !isTriggerNode.value,
928
+ "has-double-width": activeNodeType.value?.parameterPane === "wide",
929
+ "node-type": activeNodeType.value,
930
+ onSwitchSelectedNode,
931
+ onOpenConnectionNodeCreator,
932
+ onClose: close,
933
+ onInit: onPanelsInit,
934
+ onDragstart: onDragStart,
935
+ onDragend: onDragEnd
936
+ }, createSlots({
937
+ output: withCtx(() => [createVNode(OutputPanel_default, {
938
+ "data-test-id": "output-panel",
939
+ "workflow-object": _ctx.workflowObject,
940
+ "can-link-runs": canLinkRuns.value,
941
+ "run-index": outputRun.value,
942
+ "linked-runs": linked.value,
943
+ "push-ref": pushRef.value,
944
+ "is-read-only": _ctx.readOnly || hasForeignCredential.value,
945
+ "block-u-i": blockUi.value && isTriggerNode.value && !isExecutableTriggerNode.value,
946
+ "is-production-execution-preview": _ctx.isProductionExecutionPreview,
947
+ "is-pane-active": isOutputPaneActive.value,
948
+ "display-mode": outputPanelDisplayMode.value,
949
+ onActivatePane: activateOutputPane,
950
+ onLinkRun: onLinkRunToOutput,
951
+ onUnlinkRun: _cache[2] || (_cache[2] = () => onUnlinkRun("output")),
952
+ onRunChange: onRunOutputIndexChange,
953
+ onOpenSettings: openSettings,
954
+ onTableMounted: onOutputTableMounted,
955
+ onItemHover: onOutputItemHover,
956
+ onSearch,
957
+ onDisplayModeChange: _cache[3] || (_cache[3] = ($event) => handleChangeDisplayMode("output", $event))
958
+ }, null, 8, [
959
+ "workflow-object",
960
+ "can-link-runs",
961
+ "run-index",
962
+ "linked-runs",
963
+ "push-ref",
964
+ "is-read-only",
965
+ "block-u-i",
966
+ "is-production-execution-preview",
967
+ "is-pane-active",
968
+ "display-mode"
969
+ ])]),
970
+ main: withCtx(() => [createVNode(NodeSettings_default, {
971
+ "event-bus": unref(settingsEventBus),
972
+ dragging: isDragging.value,
973
+ "push-ref": pushRef.value,
974
+ "foreign-credentials": foreignCredentials.value,
975
+ "read-only": _ctx.readOnly,
976
+ "block-u-i": blockUi.value && showTriggerPanel.value,
977
+ executable: !_ctx.readOnly,
978
+ "input-size": inputSize.value,
979
+ onValueChanged: valueChanged,
980
+ onExecute: onNodeExecute,
981
+ onStopExecution,
982
+ onActivate: onWorkflowActivate,
983
+ onSwitchSelectedNode,
984
+ onOpenConnectionNodeCreator
985
+ }, null, 8, [
986
+ "event-bus",
987
+ "dragging",
988
+ "push-ref",
989
+ "foreign-credentials",
990
+ "read-only",
991
+ "block-u-i",
992
+ "executable",
993
+ "input-size"
994
+ ]), featureRequestUrl.value ? (openBlock(), createElementBlock("a", {
995
+ key: 0,
996
+ class: normalizeClass(_ctx.$style.featureRequest),
997
+ target: "_blank",
998
+ onClick: onFeatureRequestClick
999
+ }, [createVNode(unref(N8nIcon_default), { icon: "lightbulb" }), createTextVNode(" " + toDisplayString(unref(i18n).baseText("ndv.featureRequest")), 1)], 2)) : createCommentVNode("", true)]),
1000
+ _: 2
1001
+ }, [showTriggerPanel.value || !isTriggerNode.value ? {
1002
+ name: "input",
1003
+ fn: withCtx(() => [showTriggerPanel.value ? (openBlock(), createBlock(TriggerPanel_default, {
1004
+ key: 0,
1005
+ "node-name": unref(activeNode).name,
1006
+ "push-ref": pushRef.value,
1007
+ onExecute: onNodeExecute,
1008
+ onActivate: onWorkflowActivate
1009
+ }, null, 8, ["node-name", "push-ref"])) : !isTriggerNode.value ? (openBlock(), createBlock(InputPanel_default, {
1010
+ key: 1,
1011
+ "workflow-object": _ctx.workflowObject,
1012
+ "can-link-runs": canLinkRuns.value,
1013
+ "run-index": inputRun.value,
1014
+ "linked-runs": linked.value,
1015
+ "active-node-name": unref(activeNode).name,
1016
+ "current-node-name": inputNodeName.value,
1017
+ "push-ref": pushRef.value,
1018
+ "read-only": _ctx.readOnly || hasForeignCredential.value,
1019
+ "is-production-execution-preview": _ctx.isProductionExecutionPreview,
1020
+ "search-shortcut": isInputPaneActive.value ? "/" : void 0,
1021
+ "display-mode": inputPanelDisplayMode.value,
1022
+ "is-mapping-onboarded": unref(ndvStore).isMappingOnboarded,
1023
+ "focused-mappable-input": unref(ndvStore).focusedMappableInput,
1024
+ onActivatePane: activateInputPane,
1025
+ onLinkRun: onLinkRunToInput,
1026
+ onUnlinkRun: _cache[0] || (_cache[0] = () => onUnlinkRun("input")),
1027
+ onRunChange: onRunInputIndexChange,
1028
+ onOpenSettings: openSettings,
1029
+ onChangeInputNode: onInputNodeChange,
1030
+ onExecute: onNodeExecute,
1031
+ onTableMounted: onInputTableMounted,
1032
+ onItemHover: onInputItemHover,
1033
+ onSearch,
1034
+ onDisplayModeChange: _cache[1] || (_cache[1] = ($event) => handleChangeDisplayMode("input", $event))
1035
+ }, null, 8, [
1036
+ "workflow-object",
1037
+ "can-link-runs",
1038
+ "run-index",
1039
+ "linked-runs",
1040
+ "active-node-name",
1041
+ "current-node-name",
1042
+ "push-ref",
1043
+ "read-only",
1044
+ "is-production-execution-preview",
1045
+ "search-shortcut",
1046
+ "display-mode",
1047
+ "is-mapping-onboarded",
1048
+ "focused-mappable-input"
1049
+ ])) : createCommentVNode("", true)]),
1050
+ key: "0"
1051
+ } : void 0]), 1032, [
1052
+ "is-trigger-node",
1053
+ "hide-input-and-output",
1054
+ "position",
1055
+ "is-draggable",
1056
+ "has-double-width",
1057
+ "node-type"
1058
+ ]))], 512)) : createCommentVNode("", true)]),
1059
+ _: 1
1060
+ }, 8, [
1061
+ "model-value",
1062
+ "append-to",
1063
+ "z-index"
1064
+ ]);
1065
+ };
1066
+ }
1067
+ });
1068
+ var NodeDetailsView_vue_vue_type_style_index_1_lang_module_default = {
1069
+ modalBackground: "_modalBackground_1qkc8_123",
1070
+ triggerWarning: "_triggerWarning_1qkc8_128",
1071
+ backToCanvas: "_backToCanvas_1qkc8_132",
1072
+ featureRequest: "_featureRequest_1qkc8_153"
1073
+ };
1074
+ var NodeDetailsView_default = /* @__PURE__ */ __plugin_vue_export_helper_default(NodeDetailsView_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": NodeDetailsView_vue_vue_type_style_index_1_lang_module_default }]]);
1075
+ export { NodeDetailsView_default as default };