@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,973 @@
1
+ import { C as computed, Cn as toDisplayString, D as createElementBlock, E as createCommentVNode, Gt as unref, It as ref, L as h, M as createVNode, P as defineComponent, Pt as reactive, T as createBlock, Z as onMounted, _ as Fragment, _t as watch, bt as withCtx, et as openBlock, h as withModifiers, it as renderList, j as createTextVNode, ot as resolveComponent, q as onBeforeMount, vn as normalizeClass, vt as watchEffect, w as createBaseVNode } from "./vue.runtime.esm-bundler-tP5dCd7J.js";
2
+ import { it as I18nT, rt as useI18n } from "./core-CRbPymLT.js";
3
+ import { Cn as N8nIcon_default, at as N8nLoading_default, bn as N8nText_default, ht as N8nTooltip_default, it as N8nActionToggle_default, lt as N8nBadge_default, mt as N8nLink_default, vn as N8nHeading_default, xn as N8nButton_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 { Er as useUsersStore, P as useWorkflowsStore, _ as useWorkflowHistoryStore, aa as useUIStore, j as telemetry, y as useToast } from "./builder.store-Czk2ipDE.js";
9
+ import "./empty-BuGRxzl4.js";
10
+ import { _ as useRoute, v as useRouter } from "./get-BcEmeOxn.js";
11
+ import "./sanitize-html-CbW56HUN.js";
12
+ import "./CalendarDate-DgQUMbNo.js";
13
+ import "./path-browserify-RUt2u7iT.js";
14
+ import "./_MapCache-CcdIl4Ae.js";
15
+ import { Oo as getResourcePermissions, Ro as VIEWS, _s as WORKFLOW_HISTORY_PUBLISH_MODAL_KEY, a as IS_DRAFT_PUBLISH_ENABLED, vs as WORKFLOW_HISTORY_VERSION_RESTORE, ys as WORKFLOW_HISTORY_VERSION_UNPUBLISH } from "./constants-C8OH4tTq.js";
16
+ import "./merge-DhuTk1HM.js";
17
+ import { r as useRootStore } from "./_baseOrderBy-N8Be_6z6.js";
18
+ import "./dateformat-hG8NERse.js";
19
+ import "./useDebounce-Br5_1ug-.js";
20
+ import "./executions.store-B9uRYwgv.js";
21
+ import "./versions.store-B1z2OrLE.js";
22
+ import { t as usePageRedirectionHelper } from "./usePageRedirectionHelper-DjkznpX6.js";
23
+ import { t as useWorkflowActivate } from "./useWorkflowActivate-DeSmDXjI.js";
24
+ import { i as getLastPublishedVersion, n as formatTimestamp, r as generateVersionName, t as computeTimelineEntries } from "./utils-DI7dLldp.js";
25
+ import { t as WorkflowPreview_default } from "./WorkflowPreview-CXdvv4Nq.js";
26
+ import { t as useIntersectionObserver } from "./useIntersectionObserver-BWMwOueh.js";
27
+ var WorkflowHistoryListItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
28
+ __name: "WorkflowHistoryListItem",
29
+ props: {
30
+ item: {},
31
+ index: {},
32
+ actions: {},
33
+ isSelected: {
34
+ type: Boolean,
35
+ default: false
36
+ },
37
+ isVersionActive: {
38
+ type: Boolean,
39
+ default: false
40
+ },
41
+ isGrouped: {
42
+ type: Boolean,
43
+ default: false
44
+ }
45
+ },
46
+ emits: [
47
+ "action",
48
+ "preview",
49
+ "mounted"
50
+ ],
51
+ setup(__props, { emit: __emit }) {
52
+ const props = __props;
53
+ const emit = __emit;
54
+ const i18n = useI18n();
55
+ const usersStore = useUsersStore();
56
+ const actionsVisible = ref(false);
57
+ const itemElement = ref(null);
58
+ const authorElement = ref(null);
59
+ const isAuthorElementTruncated = ref(false);
60
+ const checkAuthorTruncation = () => {
61
+ const el = authorElement.value?.$el;
62
+ if (el instanceof HTMLElement) isAuthorElementTruncated.value = el.scrollWidth > el.clientWidth;
63
+ };
64
+ const formattedCreatedAt = computed(() => {
65
+ const { date, time } = formatTimestamp(props.item.createdAt);
66
+ return i18n.baseText("workflowHistory.item.createdAt", { interpolate: {
67
+ date,
68
+ time
69
+ } });
70
+ });
71
+ const authors = computed(() => {
72
+ const allAuthors = props.item.authors.split(", ");
73
+ let label$1 = allAuthors[0];
74
+ if (allAuthors.length > 1) label$1 = `${label$1} + ${allAuthors.length - 1}`;
75
+ return {
76
+ size: allAuthors.length,
77
+ label: label$1
78
+ };
79
+ });
80
+ const versionName = computed(() => {
81
+ if (props.item.name) return props.item.name;
82
+ return props.isVersionActive ? generateVersionName(props.item.versionId) : "";
83
+ });
84
+ const lastPublishInfo = computed(() => {
85
+ if (!props.isVersionActive) return null;
86
+ const lastPublishedByUser = getLastPublishedVersion(props.item.workflowPublishHistory);
87
+ if (!lastPublishedByUser) return null;
88
+ return lastPublishedByUser;
89
+ });
90
+ const publishedAt = computed(() => {
91
+ if (!lastPublishInfo.value) return null;
92
+ const { date, time } = formatTimestamp(lastPublishInfo.value.createdAt);
93
+ return i18n.baseText("workflowHistory.item.createdAt", { interpolate: {
94
+ date,
95
+ time
96
+ } });
97
+ });
98
+ const publishedByUserName = computed(() => {
99
+ const userId = lastPublishInfo.value?.userId;
100
+ if (!userId) return null;
101
+ const user = usersStore.usersById[userId];
102
+ return user?.fullName ?? user?.email ?? null;
103
+ });
104
+ const onAction = (value) => {
105
+ emit("action", {
106
+ action: value,
107
+ id: props.item.versionId,
108
+ data: {
109
+ formattedCreatedAt: formattedCreatedAt.value,
110
+ versionName: versionName.value,
111
+ description: props.item.description
112
+ }
113
+ });
114
+ };
115
+ const onVisibleChange = (visible) => {
116
+ actionsVisible.value = visible;
117
+ };
118
+ const onItemClick = (event) => {
119
+ emit("preview", {
120
+ event,
121
+ id: props.item.versionId
122
+ });
123
+ };
124
+ onMounted(() => {
125
+ emit("mounted", {
126
+ index: props.index,
127
+ offsetTop: itemElement.value?.offsetTop ?? 0,
128
+ isSelected: props.isSelected
129
+ });
130
+ checkAuthorTruncation();
131
+ });
132
+ return (_ctx, _cache) => {
133
+ return openBlock(), createElementBlock("li", {
134
+ ref_key: "itemElement",
135
+ ref: itemElement,
136
+ "data-test-id": "workflow-history-list-item",
137
+ role: "button",
138
+ class: normalizeClass({
139
+ [_ctx.$style.item]: true,
140
+ [_ctx.$style.selected]: props.isSelected,
141
+ [_ctx.$style.actionsVisible]: actionsVisible.value,
142
+ [_ctx.$style.grouped]: props.isGrouped
143
+ }),
144
+ onClick: onItemClick
145
+ }, [createBaseVNode("span", { class: normalizeClass(_ctx.$style.timelineColumn) }, [!props.isGrouped ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [props.isVersionActive ? (openBlock(), createBlock(unref(N8nIcon_default), {
146
+ key: 0,
147
+ size: "large",
148
+ icon: "circle-check",
149
+ color: "success"
150
+ })) : (openBlock(), createElementBlock("span", {
151
+ key: 1,
152
+ class: normalizeClass(_ctx.$style.timelineMarker)
153
+ }, null, 2))], 64)) : (openBlock(), createElementBlock("span", {
154
+ key: 1,
155
+ class: normalizeClass(_ctx.$style.timelineLine)
156
+ }, null, 2))], 2), createBaseVNode("div", { class: normalizeClass(_ctx.$style.wrapper) }, [createBaseVNode("div", { class: normalizeClass(_ctx.$style.content) }, [versionName.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createBaseVNode("div", { class: normalizeClass(_ctx.$style.mainRow) }, [createVNode(unref(N8nText_default), {
157
+ size: "small",
158
+ bold: true,
159
+ color: "text-dark",
160
+ class: normalizeClass(_ctx.$style.mainLine)
161
+ }, {
162
+ default: withCtx(() => [createTextVNode(toDisplayString(versionName.value), 1)]),
163
+ _: 1
164
+ }, 8, ["class"]), props.isVersionActive ? (openBlock(), createBlock(unref(N8nTooltip_default), {
165
+ key: 0,
166
+ placement: "top",
167
+ disabled: !publishedAt.value
168
+ }, {
169
+ content: withCtx(() => [createBaseVNode("div", { class: normalizeClass(_ctx.$style.tooltipContent) }, [createVNode(unref(N8nText_default), { size: "small" }, {
170
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("workflowHistory.item.publishedAtLabel")) + " " + toDisplayString(publishedAt.value), 1)]),
171
+ _: 1
172
+ }), publishedByUserName.value ? (openBlock(), createBlock(unref(N8nText_default), {
173
+ key: 0,
174
+ size: "small"
175
+ }, {
176
+ default: withCtx(() => [createTextVNode(toDisplayString(publishedByUserName.value), 1)]),
177
+ _: 1
178
+ })) : createCommentVNode("", true)], 2)]),
179
+ default: withCtx(() => [createVNode(unref(N8nBadge_default), {
180
+ size: "xsmall",
181
+ class: normalizeClass(_ctx.$style.publishedBadge),
182
+ "show-border": false
183
+ }, {
184
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("workflowHistory.item.active")), 1)]),
185
+ _: 1
186
+ }, 8, ["class"])]),
187
+ _: 1
188
+ }, 8, ["disabled"])) : createCommentVNode("", true)], 2), createBaseVNode("div", { class: normalizeClass(_ctx.$style.metaRow) }, [createVNode(unref(N8nTooltip_default), {
189
+ placement: "right-end",
190
+ disabled: !isAuthorElementTruncated.value
191
+ }, {
192
+ content: withCtx(() => [createTextVNode(toDisplayString(props.item.authors), 1)]),
193
+ default: withCtx(() => [createVNode(unref(N8nText_default), {
194
+ ref_key: "authorElement",
195
+ ref: authorElement,
196
+ size: "small",
197
+ color: "text-base",
198
+ class: normalizeClass(_ctx.$style.metaItem)
199
+ }, {
200
+ default: withCtx(() => [createTextVNode(toDisplayString(authors.value.label) + ", ", 1)]),
201
+ _: 1
202
+ }, 8, ["class"])]),
203
+ _: 1
204
+ }, 8, ["disabled"]), createVNode(unref(N8nText_default), {
205
+ tag: "time",
206
+ size: "small",
207
+ color: "text-base",
208
+ class: normalizeClass(_ctx.$style.metaItem)
209
+ }, {
210
+ default: withCtx(() => [createTextVNode(toDisplayString(formattedCreatedAt.value), 1)]),
211
+ _: 1
212
+ }, 8, ["class"])], 2)], 64)) : (openBlock(), createElementBlock("div", {
213
+ key: 1,
214
+ class: normalizeClass(_ctx.$style.unnamedRow)
215
+ }, [createVNode(unref(N8nTooltip_default), {
216
+ placement: "right-end",
217
+ disabled: !isAuthorElementTruncated.value
218
+ }, {
219
+ content: withCtx(() => [createTextVNode(toDisplayString(props.item.authors), 1)]),
220
+ default: withCtx(() => [createVNode(unref(N8nText_default), {
221
+ ref_key: "authorElement",
222
+ ref: authorElement,
223
+ size: "small",
224
+ color: "text-base",
225
+ class: normalizeClass(_ctx.$style.unnamedAuthor)
226
+ }, {
227
+ default: withCtx(() => [createTextVNode(toDisplayString(authors.value.label) + ", ", 1)]),
228
+ _: 1
229
+ }, 8, ["class"])]),
230
+ _: 1
231
+ }, 8, ["disabled"]), createVNode(unref(N8nText_default), {
232
+ tag: "time",
233
+ size: "small",
234
+ color: "text-base",
235
+ class: normalizeClass(_ctx.$style.unnamedTime)
236
+ }, {
237
+ default: withCtx(() => [createTextVNode(toDisplayString(formattedCreatedAt.value), 1)]),
238
+ _: 1
239
+ }, 8, ["class"])], 2))], 2), createVNode(unref(N8nActionToggle_default), {
240
+ class: normalizeClass(_ctx.$style.actions),
241
+ actions: props.actions,
242
+ placement: "bottom-end",
243
+ onAction,
244
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {}, ["stop"])),
245
+ onVisibleChange
246
+ }, null, 8, ["class", "actions"])], 2)], 2);
247
+ };
248
+ }
249
+ });
250
+ var WorkflowHistoryListItem_vue_vue_type_style_index_0_lang_module_default = {
251
+ item: "_item_18356_123",
252
+ grouped: "_grouped_18356_134",
253
+ selected: "_selected_18356_134",
254
+ wrapper: "_wrapper_18356_152",
255
+ timelineColumn: "_timelineColumn_18356_165",
256
+ timelineMarker: "_timelineMarker_18356_176",
257
+ timelineLine: "_timelineLine_18356_184",
258
+ content: "_content_18356_192",
259
+ mainRow: "_mainRow_18356_200",
260
+ mainLine: "_mainLine_18356_206",
261
+ metaRow: "_metaRow_18356_212",
262
+ metaItem: "_metaItem_18356_219",
263
+ unnamedRow: "_unnamedRow_18356_226",
264
+ unnamedAuthor: "_unnamedAuthor_18356_231",
265
+ unnamedTime: "_unnamedTime_18356_238",
266
+ actions: "_actions_18356_242",
267
+ publishedBadge: "_publishedBadge_18356_247",
268
+ tooltipContent: "_tooltipContent_18356_252"
269
+ };
270
+ var WorkflowHistoryListItem_default = /* @__PURE__ */ __plugin_vue_export_helper_default(WorkflowHistoryListItem_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": WorkflowHistoryListItem_vue_vue_type_style_index_0_lang_module_default }]]);
271
+ var _hoisted_1$2 = ["aria-expanded", "onClick"];
272
+ var _hoisted_2$1 = ["aria-label"];
273
+ var WorkflowHistoryList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
274
+ __name: "WorkflowHistoryList",
275
+ props: {
276
+ items: {},
277
+ selectedItem: {},
278
+ actions: {},
279
+ requestNumberOfItems: {},
280
+ lastReceivedItemsLength: {},
281
+ evaluatedPruneDays: {},
282
+ shouldUpgrade: { type: Boolean },
283
+ isListLoading: { type: Boolean },
284
+ activeVersionId: {}
285
+ },
286
+ emits: [
287
+ "action",
288
+ "preview",
289
+ "loadMore",
290
+ "upgrade"
291
+ ],
292
+ setup(__props, { emit: __emit }) {
293
+ const props = __props;
294
+ const emit = __emit;
295
+ const i18n = useI18n();
296
+ const listElement = ref(null);
297
+ const loadMoreSentinel = ref(null);
298
+ const shouldAutoScroll = ref(true);
299
+ const expandedGroups = reactive(/* @__PURE__ */ new Set());
300
+ const timelineEntries = computed(() => {
301
+ return computeTimelineEntries(props.items);
302
+ });
303
+ const toggleGroup = (groupId) => {
304
+ if (expandedGroups.has(groupId)) expandedGroups.delete(groupId);
305
+ else expandedGroups.add(groupId);
306
+ };
307
+ const hasMoreItems = computed(() => props.lastReceivedItemsLength === props.requestNumberOfItems);
308
+ const { observe: observeForLoadMore } = useIntersectionObserver({
309
+ root: listElement,
310
+ threshold: .01,
311
+ onIntersect: () => {
312
+ shouldAutoScroll.value = false;
313
+ emit("loadMore", {
314
+ take: props.requestNumberOfItems,
315
+ skip: props.items.length
316
+ });
317
+ }
318
+ });
319
+ watch([
320
+ loadMoreSentinel,
321
+ hasMoreItems,
322
+ () => props.items.length
323
+ ], ([sentinel$1, canLoadMore]) => {
324
+ if (sentinel$1 && canLoadMore) observeForLoadMore(sentinel$1);
325
+ }, { immediate: true });
326
+ const getActions = (item$1, index) => {
327
+ let filteredActions = props.actions;
328
+ if (index === 0) filteredActions = filteredActions.filter((action) => action.value !== "restore");
329
+ if (item$1.versionId === props.activeVersionId) filteredActions = filteredActions.filter((action) => action.value !== "publish");
330
+ else filteredActions = filteredActions.filter((action) => action.value !== "unpublish");
331
+ return filteredActions;
332
+ };
333
+ const onAction = ({ action, id, data }) => {
334
+ shouldAutoScroll.value = false;
335
+ emit("action", {
336
+ action,
337
+ id,
338
+ data
339
+ });
340
+ };
341
+ const onPreview = ({ event, id }) => {
342
+ shouldAutoScroll.value = false;
343
+ emit("preview", {
344
+ event,
345
+ id
346
+ });
347
+ };
348
+ const onItemMounted = ({ offsetTop, isSelected }) => {
349
+ if (isSelected && shouldAutoScroll.value) {
350
+ shouldAutoScroll.value = false;
351
+ listElement.value?.scrollTo({
352
+ top: offsetTop,
353
+ behavior: "smooth"
354
+ });
355
+ }
356
+ };
357
+ return (_ctx, _cache) => {
358
+ return openBlock(), createElementBlock("ul", {
359
+ ref_key: "listElement",
360
+ ref: listElement,
361
+ class: normalizeClass(_ctx.$style.list),
362
+ "data-test-id": "workflow-history-list"
363
+ }, [
364
+ (openBlock(true), createElementBlock(Fragment, null, renderList(timelineEntries.value, (entry) => {
365
+ return openBlock(), createElementBlock(Fragment, { key: entry.type === "version" ? entry.item.versionId : entry.groupId }, [
366
+ entry.type === "group-header" ? (openBlock(), createElementBlock("li", {
367
+ key: 0,
368
+ class: normalizeClass(_ctx.$style.groupHeader),
369
+ "aria-expanded": expandedGroups.has(entry.groupId),
370
+ role: "button",
371
+ "data-test-id": "workflow-history-group-header",
372
+ onClick: ($event) => toggleGroup(entry.groupId)
373
+ }, [createVNode(unref(N8nIcon_default), {
374
+ class: normalizeClass([_ctx.$style.groupTimelineColumn, _ctx.$style.groupChevron]),
375
+ icon: expandedGroups.has(entry.groupId) ? "chevron-down" : "chevron-right",
376
+ size: "small"
377
+ }, null, 8, ["class", "icon"]), createVNode(unref(N8nText_default), {
378
+ color: "text-base",
379
+ size: "small"
380
+ }, {
381
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("workflowHistory.group.unnamedVersions", {
382
+ adjustToNumber: entry.count,
383
+ interpolate: { count: String(entry.count) }
384
+ })), 1)]),
385
+ _: 2
386
+ }, 1024)], 10, _hoisted_1$2)) : createCommentVNode("", true),
387
+ entry.type === "group-header" && expandedGroups.has(entry.groupId) ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(entry.versions, (versionEntry) => {
388
+ return openBlock(), createBlock(WorkflowHistoryListItem_default, {
389
+ key: versionEntry.item.versionId,
390
+ index: versionEntry.originalIndex,
391
+ item: versionEntry.item,
392
+ "is-selected": versionEntry.item.versionId === props.selectedItem?.versionId,
393
+ "is-version-active": versionEntry.item.versionId === props.activeVersionId,
394
+ actions: getActions(versionEntry.item, versionEntry.originalIndex),
395
+ "is-grouped": true,
396
+ onAction,
397
+ onPreview,
398
+ onMounted: onItemMounted
399
+ }, null, 8, [
400
+ "index",
401
+ "item",
402
+ "is-selected",
403
+ "is-version-active",
404
+ "actions"
405
+ ]);
406
+ }), 128)) : createCommentVNode("", true),
407
+ entry.type === "version" ? (openBlock(), createBlock(WorkflowHistoryListItem_default, {
408
+ key: 2,
409
+ index: entry.originalIndex,
410
+ item: entry.item,
411
+ "is-selected": entry.item.versionId === props.selectedItem?.versionId,
412
+ "is-version-active": entry.item.versionId === props.activeVersionId,
413
+ actions: getActions(entry.item, entry.originalIndex),
414
+ onAction,
415
+ onPreview,
416
+ onMounted: onItemMounted
417
+ }, null, 8, [
418
+ "index",
419
+ "item",
420
+ "is-selected",
421
+ "is-version-active",
422
+ "actions"
423
+ ])) : createCommentVNode("", true)
424
+ ], 64);
425
+ }), 128)),
426
+ props.items.length && hasMoreItems.value ? (openBlock(), createElementBlock("li", {
427
+ key: 0,
428
+ ref_key: "loadMoreSentinel",
429
+ ref: loadMoreSentinel,
430
+ class: normalizeClass(_ctx.$style.sentinel),
431
+ "aria-hidden": "true"
432
+ }, null, 2)) : createCommentVNode("", true),
433
+ props.isListLoading ? (openBlock(), createElementBlock("li", {
434
+ key: 1,
435
+ class: normalizeClass(_ctx.$style.loader),
436
+ role: "status",
437
+ "aria-live": "polite",
438
+ "aria-busy": "true",
439
+ "aria-label": unref(i18n).baseText("generic.loading")
440
+ }, [
441
+ createVNode(unref(N8nLoading_default), {
442
+ rows: 3,
443
+ class: "mb-xs"
444
+ }),
445
+ createVNode(unref(N8nLoading_default), {
446
+ rows: 3,
447
+ class: "mb-xs"
448
+ }),
449
+ createVNode(unref(N8nLoading_default), {
450
+ rows: 3,
451
+ class: "mb-xs"
452
+ })
453
+ ], 10, _hoisted_2$1)) : createCommentVNode("", true),
454
+ props.shouldUpgrade ? (openBlock(), createElementBlock("li", {
455
+ key: 2,
456
+ class: normalizeClass(_ctx.$style.retention)
457
+ }, [createBaseVNode("span", null, toDisplayString(unref(i18n).baseText("workflowHistory.limit", { interpolate: { days: String(props.evaluatedPruneDays) } })), 1), createVNode(unref(I18nT), {
458
+ keypath: "workflowHistory.upgrade",
459
+ tag: "span",
460
+ scope: "global"
461
+ }, {
462
+ link: withCtx(() => [createBaseVNode("a", {
463
+ href: "#",
464
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("upgrade"))
465
+ }, toDisplayString(unref(i18n).baseText("workflowHistory.upgrade.link")), 1)]),
466
+ _: 1
467
+ })], 2)) : createCommentVNode("", true)
468
+ ], 2);
469
+ };
470
+ }
471
+ });
472
+ var WorkflowHistoryList_vue_vue_type_style_index_0_lang_module_default = {
473
+ list: "_list_1dkdi_123",
474
+ loader: "_loader_1dkdi_133",
475
+ sentinel: "_sentinel_1dkdi_137",
476
+ retention: "_retention_1dkdi_141",
477
+ groupHeader: "_groupHeader_1dkdi_149",
478
+ groupTimelineColumn: "_groupTimelineColumn_1dkdi_168",
479
+ groupChevron: "_groupChevron_1dkdi_172"
480
+ };
481
+ var WorkflowHistoryList_default = /* @__PURE__ */ __plugin_vue_export_helper_default(WorkflowHistoryList_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": WorkflowHistoryList_vue_vue_type_style_index_0_lang_module_default }]]);
482
+ var _hoisted_1$1 = ["datetime"];
483
+ var _hoisted_2 = ["value"];
484
+ var MAX_DESCRIPTION_LENGTH = 200;
485
+ var WorkflowHistoryContent_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
486
+ __name: "WorkflowHistoryContent",
487
+ props: {
488
+ workflow: {},
489
+ workflowVersion: {},
490
+ actions: {},
491
+ isVersionActive: { type: Boolean },
492
+ isListLoading: { type: Boolean },
493
+ isFirstItemShown: { type: Boolean }
494
+ },
495
+ emits: ["action"],
496
+ setup(__props, { emit: __emit }) {
497
+ const i18n = useI18n();
498
+ const props = __props;
499
+ const emit = __emit;
500
+ const isDraftPublishEnabled = true;
501
+ const workflowVersionPreview = computed(() => {
502
+ if (!props.workflowVersion || !props.workflow) return;
503
+ const { pinData,...workflow } = props.workflow;
504
+ return {
505
+ ...workflow,
506
+ nodes: props.workflowVersion.nodes,
507
+ connections: props.workflowVersion.connections
508
+ };
509
+ });
510
+ const formattedCreatedAt = computed(() => {
511
+ if (!props.workflowVersion) return "";
512
+ const { date, time } = formatTimestamp(props.workflowVersion.createdAt);
513
+ return i18n.baseText("workflowHistory.item.createdAt", { interpolate: {
514
+ date,
515
+ time
516
+ } });
517
+ });
518
+ const versionNameDisplay = computed(() => {
519
+ if (props.workflowVersion?.name) return props.workflowVersion.name;
520
+ return props.isVersionActive && props.workflowVersion ? generateVersionName(props.workflowVersion.versionId) : formattedCreatedAt.value;
521
+ });
522
+ const isDescriptionExpanded = ref(false);
523
+ const description = computed(() => props.workflowVersion?.description ?? "");
524
+ const isDescriptionLong = computed(() => description.value.length > MAX_DESCRIPTION_LENGTH);
525
+ const displayDescription = computed(() => {
526
+ if (!isDescriptionLong.value || isDescriptionExpanded.value) return description.value;
527
+ return description.value.substring(0, MAX_DESCRIPTION_LENGTH) + "... ";
528
+ });
529
+ const toggleDescription = () => {
530
+ isDescriptionExpanded.value = !isDescriptionExpanded.value;
531
+ };
532
+ const actions$2 = computed(() => {
533
+ let filteredActions = props.actions;
534
+ if (props.isFirstItemShown) filteredActions = filteredActions.filter((action) => action.value !== "restore");
535
+ if (props.isVersionActive) filteredActions = filteredActions.filter((action) => action.value !== "publish");
536
+ else filteredActions = filteredActions.filter((action) => action.value !== "unpublish");
537
+ return filteredActions;
538
+ });
539
+ const onAction = (value) => {
540
+ if (!props.workflowVersion) return;
541
+ emit("action", {
542
+ action: value,
543
+ id: props.workflowVersion.versionId,
544
+ data: {
545
+ formattedCreatedAt: formattedCreatedAt.value,
546
+ versionName: versionNameDisplay.value,
547
+ description: description.value
548
+ }
549
+ });
550
+ };
551
+ watch(() => props.workflowVersion, () => {
552
+ isDescriptionExpanded.value = false;
553
+ });
554
+ return (_ctx, _cache) => {
555
+ return openBlock(), createElementBlock("div", { class: normalizeClass(_ctx.$style.content) }, [props.workflowVersion ? (openBlock(), createBlock(WorkflowPreview_default, {
556
+ key: 0,
557
+ workflow: workflowVersionPreview.value,
558
+ loading: props.isListLoading,
559
+ "loader-type": "spinner"
560
+ }, null, 8, ["workflow", "loading"])) : createCommentVNode("", true), props.workflowVersion ? (openBlock(), createElementBlock("div", {
561
+ key: 1,
562
+ class: normalizeClass(_ctx.$style.info)
563
+ }, [createBaseVNode("div", { class: normalizeClass(_ctx.$style.card) }, [unref(isDraftPublishEnabled) ? (openBlock(), createElementBlock("div", {
564
+ key: 0,
565
+ class: normalizeClass(_ctx.$style.descriptionBox)
566
+ }, [versionNameDisplay.value ? (openBlock(), createBlock(unref(N8nTooltip_default), {
567
+ key: 0,
568
+ content: versionNameDisplay.value
569
+ }, {
570
+ default: withCtx(() => [createVNode(unref(N8nText_default), {
571
+ class: normalizeClass(_ctx.$style.mainLine),
572
+ bold: "",
573
+ color: "text-dark"
574
+ }, {
575
+ default: withCtx(() => [createTextVNode(toDisplayString(versionNameDisplay.value), 1)]),
576
+ _: 1
577
+ }, 8, ["class"])]),
578
+ _: 1
579
+ }, 8, ["content"])) : createCommentVNode("", true), description.value ? (openBlock(), createBlock(unref(N8nText_default), {
580
+ key: 1,
581
+ size: "small",
582
+ color: "text-base"
583
+ }, {
584
+ default: withCtx(() => [createTextVNode(toDisplayString(displayDescription.value) + " ", 1), isDescriptionLong.value ? (openBlock(), createBlock(unref(N8nLink_default), {
585
+ key: 0,
586
+ size: "small",
587
+ onClick: toggleDescription
588
+ }, {
589
+ default: withCtx(() => [createTextVNode(toDisplayString(isDescriptionExpanded.value ? unref(i18n).baseText("generic.showLess") : unref(i18n).baseText("generic.showMore")), 1)]),
590
+ _: 1
591
+ })) : createCommentVNode("", true)]),
592
+ _: 1
593
+ })) : createCommentVNode("", true)], 2)) : (openBlock(), createElementBlock("section", {
594
+ key: 1,
595
+ class: normalizeClass(_ctx.$style.textOld)
596
+ }, [
597
+ createBaseVNode("p", null, [createBaseVNode("span", { class: normalizeClass(_ctx.$style.label) }, toDisplayString(unref(i18n).baseText("workflowHistory.content.title")) + ": ", 3), createBaseVNode("time", { datetime: props.workflowVersion.createdAt }, toDisplayString(formattedCreatedAt.value), 9, _hoisted_1$1)]),
598
+ createBaseVNode("p", null, [createBaseVNode("span", { class: normalizeClass(_ctx.$style.label) }, toDisplayString(unref(i18n).baseText("workflowHistory.content.editedBy")) + ": ", 3), createBaseVNode("span", null, toDisplayString(props.workflowVersion.authors), 1)]),
599
+ createBaseVNode("p", null, [createBaseVNode("span", { class: normalizeClass(_ctx.$style.label) }, toDisplayString(unref(i18n).baseText("workflowHistory.content.versionId")) + ": ", 3), createBaseVNode("data", { value: props.workflowVersion.versionId }, toDisplayString(props.workflowVersion.versionId), 9, _hoisted_2)])
600
+ ], 2)), createVNode(unref(N8nActionToggle_default), {
601
+ class: normalizeClass(_ctx.$style.actions),
602
+ actions: actions$2.value,
603
+ placement: "bottom-end",
604
+ "data-test-id": "workflow-history-content-actions",
605
+ onAction
606
+ }, {
607
+ default: withCtx(() => [createVNode(unref(N8nButton_default), {
608
+ type: "tertiary",
609
+ size: "large",
610
+ "data-test-id": "action-toggle-button"
611
+ }, {
612
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("workflowHistory.content.actions")) + " ", 1), createVNode(unref(N8nIcon_default), {
613
+ class: "ml-3xs",
614
+ icon: "chevron-down",
615
+ size: "small"
616
+ })]),
617
+ _: 1
618
+ })]),
619
+ _: 1
620
+ }, 8, ["class", "actions"])], 2)], 2)) : createCommentVNode("", true)], 2);
621
+ };
622
+ }
623
+ });
624
+ var WorkflowHistoryContent_vue_vue_type_style_index_0_lang_module_default = {
625
+ content: "_content_1m14m_123",
626
+ info: "_info_1m14m_133",
627
+ card: "_card_1m14m_141",
628
+ descriptionBox: "_descriptionBox_1m14m_148",
629
+ mainLine: "_mainLine_1m14m_160",
630
+ textOld: "_textOld_1m14m_167",
631
+ label: "_label_1m14m_202",
632
+ actions: "_actions_1m14m_207"
633
+ };
634
+ var WorkflowHistoryContent_default = /* @__PURE__ */ __plugin_vue_export_helper_default(WorkflowHistoryContent_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": WorkflowHistoryContent_vue_vue_type_style_index_0_lang_module_default }]]);
635
+ var _hoisted_1 = { key: 0 };
636
+ var WorkflowHistoryVersionRestoreModalActions = /* @__PURE__ */ function(WorkflowHistoryVersionRestoreModalActions$1) {
637
+ WorkflowHistoryVersionRestoreModalActions$1["restore"] = "restore";
638
+ WorkflowHistoryVersionRestoreModalActions$1["deactivateAndRestore"] = "deactivateAndRestore";
639
+ WorkflowHistoryVersionRestoreModalActions$1["cancel"] = "cancel";
640
+ return WorkflowHistoryVersionRestoreModalActions$1;
641
+ }(WorkflowHistoryVersionRestoreModalActions || {});
642
+ var WorkflowHistory_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
643
+ __name: "WorkflowHistory",
644
+ setup(__props) {
645
+ const workflowHistoryActionTypes = [
646
+ "restore",
647
+ "publish",
648
+ "unpublish",
649
+ "clone",
650
+ "open",
651
+ "download"
652
+ ];
653
+ const WORKFLOW_HISTORY_ACTIONS = workflowHistoryActionTypes.reduce((record, key) => ({
654
+ ...record,
655
+ [key.toUpperCase()]: key
656
+ }), {});
657
+ const route = useRoute();
658
+ const router = useRouter();
659
+ const i18n = useI18n();
660
+ const toast = useToast();
661
+ const pageRedirectionHelper = usePageRedirectionHelper();
662
+ const workflowHistoryStore = useWorkflowHistoryStore();
663
+ const uiStore = useUIStore();
664
+ const workflowsStore = useWorkflowsStore();
665
+ const workflowActivate = useWorkflowActivate();
666
+ const canRender = ref(true);
667
+ const isListLoading = ref(true);
668
+ const requestNumberOfItems = ref(20);
669
+ const lastReceivedItemsLength = ref(0);
670
+ const activeWorkflow = ref(null);
671
+ const workflowHistory = ref([]);
672
+ const selectedWorkflowVersion = ref(null);
673
+ const workflowId = computed(() => normalizeSingleRouteParam("workflowId"));
674
+ const versionId = computed(() => normalizeSingleRouteParam("versionId"));
675
+ const editorRoute = computed(() => ({
676
+ name: VIEWS.WORKFLOW,
677
+ params: { name: workflowId.value }
678
+ }));
679
+ const workflowPermissions = computed(() => getResourcePermissions(workflowsStore.getWorkflowById(workflowId.value)?.scopes).workflow);
680
+ const workflowActiveVersionId = computed(() => {
681
+ return workflowsStore.getWorkflowById(workflowId.value)?.activeVersion?.versionId;
682
+ });
683
+ const actions$2 = computed(() => workflowHistoryActionTypes.filter((value) => !(value === "publish" && activeWorkflow.value?.isArchived)).map((value) => ({
684
+ label: i18n.baseText(`workflowHistory.item.actions.${value}`),
685
+ disabled: value === "clone" && !workflowPermissions.value.create || value === "restore" && !workflowPermissions.value.update || (value === "publish" || value === "unpublish") && !workflowPermissions.value.update,
686
+ value
687
+ })));
688
+ const isFirstItemShown = computed(() => workflowHistory.value[0]?.versionId === versionId.value);
689
+ const evaluatedPruneDays = computed(() => Math.floor(workflowHistoryStore.evaluatedPruneTime / 24));
690
+ const sendTelemetry = (event) => {
691
+ telemetry.track(event, {
692
+ instance_id: useRootStore().instanceId,
693
+ workflow_id: workflowId.value
694
+ });
695
+ };
696
+ const loadMore = async (queryParams) => {
697
+ const history = await workflowHistoryStore.getWorkflowHistory(workflowId.value, queryParams);
698
+ lastReceivedItemsLength.value = history.length;
699
+ workflowHistory.value = workflowHistory.value.concat(history);
700
+ };
701
+ onBeforeMount(async () => {
702
+ sendTelemetry("User opened workflow history");
703
+ try {
704
+ const [workflow] = await Promise.all([workflowsStore.fetchWorkflow(workflowId.value), loadMore({ take: requestNumberOfItems.value })]);
705
+ activeWorkflow.value = workflow;
706
+ isListLoading.value = false;
707
+ if (!versionId.value && workflowHistory.value.length) await router.replace({
708
+ name: VIEWS.WORKFLOW_HISTORY,
709
+ params: {
710
+ workflowId: workflowId.value,
711
+ versionId: workflowHistory.value[0].versionId
712
+ }
713
+ });
714
+ } catch (error) {
715
+ canRender.value = false;
716
+ toast.showError(error, i18n.baseText("workflowHistory.title"));
717
+ }
718
+ });
719
+ const normalizeSingleRouteParam = (name) => {
720
+ const param = route.params[name];
721
+ if (typeof param === "string") return param;
722
+ return param?.[0] ?? "";
723
+ };
724
+ const openInNewTab = (id) => {
725
+ const { href } = router.resolve({
726
+ name: VIEWS.WORKFLOW_HISTORY,
727
+ params: {
728
+ workflowId: workflowId.value,
729
+ versionId: id
730
+ }
731
+ });
732
+ window.open(href, "_blank");
733
+ };
734
+ const cloneWorkflowVersion = async (id, data) => {
735
+ const clonedWorkflow = await workflowHistoryStore.cloneIntoNewWorkflow(workflowId.value, id, data);
736
+ const { href } = router.resolve({
737
+ name: VIEWS.WORKFLOW,
738
+ params: { name: clonedWorkflow.id }
739
+ });
740
+ toast.showMessage({
741
+ title: i18n.baseText("workflowHistory.action.clone.success.title"),
742
+ message: h("a", {
743
+ href,
744
+ target: "_blank"
745
+ }, i18n.baseText("workflowHistory.action.clone.success.message")),
746
+ type: "success",
747
+ duration: 1e4
748
+ });
749
+ };
750
+ const restoreWorkflowVersion = async (id, data) => {
751
+ const workflow = await workflowsStore.fetchWorkflow(workflowId.value);
752
+ let deactivateAndRestore = false;
753
+ const versionIdBeforeRestore = workflow.versionId;
754
+ activeWorkflow.value = await workflowHistoryStore.restoreWorkflow(workflowId.value, id, deactivateAndRestore);
755
+ if (activeWorkflow.value.versionId === versionIdBeforeRestore) {
756
+ toast.showMessage({
757
+ title: i18n.baseText("workflowHistory.action.restore.alreadyRestored"),
758
+ type: "info"
759
+ });
760
+ return;
761
+ }
762
+ workflowHistory.value = (await workflowHistoryStore.getWorkflowHistory(workflowId.value, { take: 1 })).concat(workflowHistory.value);
763
+ toast.showMessage({
764
+ title: i18n.baseText("workflowHistory.action.restore.success.title"),
765
+ type: "success"
766
+ });
767
+ };
768
+ const publishWorkflowVersion = (id, data) => {
769
+ const publishEventBus = createEventBus();
770
+ publishEventBus.once("publish", (publishData) => {
771
+ activeWorkflow.value = workflowsStore.getWorkflowById(workflowId.value);
772
+ const historyItem = workflowHistory.value.find((item$1) => item$1.versionId === publishData.versionId);
773
+ if (historyItem) {
774
+ historyItem.name = publishData.name;
775
+ historyItem.description = publishData.description;
776
+ if (activeWorkflow.value?.activeVersion?.workflowPublishHistory) historyItem.workflowPublishHistory = activeWorkflow.value.activeVersion.workflowPublishHistory;
777
+ }
778
+ if (selectedWorkflowVersion.value?.versionId === publishData.versionId) selectedWorkflowVersion.value = {
779
+ ...selectedWorkflowVersion.value,
780
+ name: publishData.name,
781
+ description: publishData.description,
782
+ workflowPublishHistory: activeWorkflow.value?.activeVersion?.workflowPublishHistory ?? selectedWorkflowVersion.value.workflowPublishHistory
783
+ };
784
+ sendTelemetry("User published version from history");
785
+ });
786
+ uiStore.openModalWithData({
787
+ name: WORKFLOW_HISTORY_PUBLISH_MODAL_KEY,
788
+ data: {
789
+ versionId: id,
790
+ workflowId: workflowId.value,
791
+ formattedCreatedAt: data.formattedCreatedAt,
792
+ versionName: data.versionName,
793
+ description: data.description,
794
+ eventBus: publishEventBus
795
+ }
796
+ });
797
+ };
798
+ const unpublishWorkflowVersion = (id, data) => {
799
+ if (workflowActiveVersionId.value !== id) return;
800
+ const unpublishEventBus = createEventBus();
801
+ unpublishEventBus.once("unpublish", async () => {
802
+ const success = await workflowActivate.unpublishWorkflowFromHistory(workflowId.value);
803
+ uiStore.closeModal(WORKFLOW_HISTORY_VERSION_UNPUBLISH);
804
+ if (!success) return;
805
+ activeWorkflow.value = workflowsStore.getWorkflowById(workflowId.value);
806
+ toast.showMessage({
807
+ title: i18n.baseText("workflowHistory.action.unpublish.success.title"),
808
+ type: "success"
809
+ });
810
+ sendTelemetry("User unpublished workflow from history");
811
+ });
812
+ uiStore.openModalWithData({
813
+ name: WORKFLOW_HISTORY_VERSION_UNPUBLISH,
814
+ data: {
815
+ versionName: data.versionName,
816
+ eventBus: unpublishEventBus
817
+ }
818
+ });
819
+ };
820
+ const onAction = async ({ action, id, data }) => {
821
+ try {
822
+ switch (action) {
823
+ case WORKFLOW_HISTORY_ACTIONS.OPEN:
824
+ openInNewTab(id);
825
+ sendTelemetry("User opened version in new tab");
826
+ break;
827
+ case WORKFLOW_HISTORY_ACTIONS.DOWNLOAD:
828
+ await workflowHistoryStore.downloadVersion(workflowId.value, id, data);
829
+ sendTelemetry("User downloaded version");
830
+ break;
831
+ case WORKFLOW_HISTORY_ACTIONS.CLONE:
832
+ await cloneWorkflowVersion(id, data);
833
+ sendTelemetry("User cloned version");
834
+ break;
835
+ case WORKFLOW_HISTORY_ACTIONS.RESTORE:
836
+ await restoreWorkflowVersion(id, data);
837
+ sendTelemetry("User restored version");
838
+ break;
839
+ case WORKFLOW_HISTORY_ACTIONS.PUBLISH:
840
+ publishWorkflowVersion(id, data);
841
+ break;
842
+ case WORKFLOW_HISTORY_ACTIONS.UNPUBLISH:
843
+ unpublishWorkflowVersion(id, data);
844
+ break;
845
+ }
846
+ } catch (error) {
847
+ toast.showError(error, i18n.baseText("workflowHistory.action.error.title", { interpolate: { action: i18n.baseText(`workflowHistory.item.actions.${action}`).toLowerCase() } }));
848
+ }
849
+ };
850
+ const onPreview = async ({ event, id }) => {
851
+ if (event.metaKey || event.ctrlKey) {
852
+ openInNewTab(id);
853
+ sendTelemetry("User opened version in new tab");
854
+ } else await router.push({
855
+ name: VIEWS.WORKFLOW_HISTORY,
856
+ params: {
857
+ workflowId: workflowId.value,
858
+ versionId: id
859
+ }
860
+ });
861
+ };
862
+ const onUpgrade = () => {
863
+ pageRedirectionHelper.goToUpgrade("workflow-history", "upgrade-workflow-history");
864
+ };
865
+ watchEffect(async () => {
866
+ if (!versionId.value) return;
867
+ try {
868
+ const [workflowVersion, workflow] = await Promise.all([workflowHistoryStore.getWorkflowVersion(workflowId.value, versionId.value), workflowsStore.fetchWorkflow(workflowId.value)]);
869
+ selectedWorkflowVersion.value = workflowVersion;
870
+ activeWorkflow.value = workflow;
871
+ sendTelemetry("User selected version");
872
+ } catch (error) {
873
+ if (error.message?.includes("version")) toast.showError(/* @__PURE__ */ new Error(`${error.message} "${versionId.value}" `), i18n.baseText("workflowHistory.title"));
874
+ else {
875
+ canRender.value = false;
876
+ toast.showError(error, i18n.baseText("workflowHistory.title"));
877
+ }
878
+ }
879
+ });
880
+ return (_ctx, _cache) => {
881
+ const _component_RouterLink = resolveComponent("RouterLink");
882
+ return openBlock(), createElementBlock("div", { class: normalizeClass(_ctx.$style.view) }, [
883
+ createBaseVNode("div", { class: normalizeClass(_ctx.$style.header) }, [createVNode(unref(N8nHeading_default), {
884
+ tag: "h2",
885
+ size: "medium"
886
+ }, {
887
+ default: withCtx(() => [createTextVNode(toDisplayString(activeWorkflow.value?.name), 1)]),
888
+ _: 1
889
+ }), activeWorkflow.value?.isArchived ? (openBlock(), createElementBlock("span", _hoisted_1, [createVNode(unref(N8nBadge_default), {
890
+ class: "ml-s",
891
+ theme: "tertiary",
892
+ bold: "",
893
+ "data-test-id": "workflow-archived-tag"
894
+ }, {
895
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("workflows.item.archived")), 1)]),
896
+ _: 1
897
+ })])) : createCommentVNode("", true)], 2),
898
+ createBaseVNode("div", { class: normalizeClass(_ctx.$style.corner) }, [createVNode(unref(N8nHeading_default), {
899
+ tag: "h2",
900
+ size: "medium",
901
+ bold: ""
902
+ }, {
903
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("workflowHistory.title")), 1)]),
904
+ _: 1
905
+ }), createVNode(_component_RouterLink, {
906
+ to: editorRoute.value,
907
+ "data-test-id": "workflow-history-close-button"
908
+ }, {
909
+ default: withCtx(() => [createVNode(unref(N8nButton_default), {
910
+ type: "tertiary",
911
+ icon: "x",
912
+ size: "small",
913
+ text: "",
914
+ square: ""
915
+ })]),
916
+ _: 1
917
+ }, 8, ["to"])], 2),
918
+ createBaseVNode("div", { class: normalizeClass(_ctx.$style.listComponentWrapper) }, [canRender.value ? (openBlock(), createBlock(WorkflowHistoryList_default, {
919
+ key: 0,
920
+ items: workflowHistory.value,
921
+ "last-received-items-length": lastReceivedItemsLength.value,
922
+ "selected-item": selectedWorkflowVersion.value,
923
+ actions: actions$2.value,
924
+ "request-number-of-items": requestNumberOfItems.value,
925
+ "should-upgrade": unref(workflowHistoryStore).shouldUpgrade,
926
+ "evaluated-prune-days": evaluatedPruneDays.value,
927
+ "is-list-loading": isListLoading.value,
928
+ "active-version-id": workflowActiveVersionId.value,
929
+ onAction,
930
+ onPreview,
931
+ onLoadMore: loadMore,
932
+ onUpgrade
933
+ }, null, 8, [
934
+ "items",
935
+ "last-received-items-length",
936
+ "selected-item",
937
+ "actions",
938
+ "request-number-of-items",
939
+ "should-upgrade",
940
+ "evaluated-prune-days",
941
+ "is-list-loading",
942
+ "active-version-id"
943
+ ])) : createCommentVNode("", true)], 2),
944
+ createBaseVNode("div", { class: normalizeClass(_ctx.$style.contentComponentWrapper) }, [canRender.value ? (openBlock(), createBlock(WorkflowHistoryContent_default, {
945
+ key: 0,
946
+ workflow: activeWorkflow.value,
947
+ "workflow-version": selectedWorkflowVersion.value,
948
+ "is-version-active": selectedWorkflowVersion.value?.versionId === workflowActiveVersionId.value,
949
+ actions: actions$2.value,
950
+ "is-list-loading": isListLoading.value,
951
+ "is-first-item-shown": isFirstItemShown.value,
952
+ onAction
953
+ }, null, 8, [
954
+ "workflow",
955
+ "workflow-version",
956
+ "is-version-active",
957
+ "actions",
958
+ "is-list-loading",
959
+ "is-first-item-shown"
960
+ ])) : createCommentVNode("", true)], 2)
961
+ ], 2);
962
+ };
963
+ }
964
+ });
965
+ var WorkflowHistory_vue_vue_type_style_index_0_lang_module_default = {
966
+ view: "_view_1q9dy_123",
967
+ header: "_header_1q9dy_133",
968
+ corner: "_corner_1q9dy_141",
969
+ contentComponentWrapper: "_contentComponentWrapper_1q9dy_152",
970
+ listComponentWrapper: "_listComponentWrapper_1q9dy_157"
971
+ };
972
+ var WorkflowHistory_default = /* @__PURE__ */ __plugin_vue_export_helper_default(WorkflowHistory_vue_vue_type_script_setup_true_lang_default, [["__cssModules", { "$style": WorkflowHistory_vue_vue_type_style_index_0_lang_module_default }]]);
973
+ export { WorkflowHistory_default as default };