n8n-editor-ui 2.1.2 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/data/node-popularity.json +0 -4
  2. package/dist/assets/{AddDataTableModal-Biub-zeV.js → AddDataTableModal-DdQPndvj.js} +18 -19
  3. package/dist/assets/{AgentEditorModal-PXvmwyMd.js → AgentEditorModal-13IKfi65.js} +51 -62
  4. package/dist/assets/{AgentEditorModal-CzlIqORm.css → AgentEditorModal-CnYw6elM.css} +7 -13
  5. package/dist/assets/{Alert-ThpSN7C0.js → Alert-DOlbYzaP.js} +1 -1
  6. package/dist/assets/{AnnotationTagsDropdown.ee-CgUQtuOy.js → AnnotationTagsDropdown.ee-BV5N0QpC.js} +2 -2
  7. package/dist/assets/{AuthView-CIGxT6Xf.js → AuthView-XL99nUn8.js} +5 -5
  8. package/dist/assets/BottomMenu-CRVyIu-B.css +474 -0
  9. package/dist/assets/BottomMenu-Urdm-sib.js +547 -0
  10. package/dist/assets/{ChangePasswordView-BGSyBBl2.js → ChangePasswordView-BE2ZGJcQ.js} +15 -15
  11. package/dist/assets/{ChatAgentAvatar-BK95BHUo.css → ChatAgentAvatar-B68ZZ295.css} +18 -9
  12. package/dist/assets/{ChatAgentAvatar-BLpWC-zL.js → ChatAgentAvatar-DWOQygP6.js} +17 -16
  13. package/dist/assets/{ChatSidebarOpener-ctovVEcz.js → ChatLayout--VoBX0db.js} +9 -28
  14. package/dist/assets/ChatPersonalAgentsView-BiiyFIRl.css +159 -0
  15. package/dist/assets/{ChatPersonalAgentsView-Bd73mT2L.js → ChatPersonalAgentsView-C0AZXJ21.js} +29 -34
  16. package/dist/assets/ChatSidebar-C7kpSeSL.js +526 -0
  17. package/dist/assets/{ChatSidebar-D0f-W0S9.css → ChatSidebar-DcNxY7Pt.css} +61 -336
  18. package/dist/assets/{ChatView-k5Ib5T23.js → ChatView-DPBUfiCx.js} +121 -142
  19. package/dist/assets/{ChatView-mTIZIDr3.css → ChatView-DZODCD2o.css} +4 -4
  20. package/dist/assets/{ChatWorkflowAgentsView-CPOcTSK4.js → ChatWorkflowAgentsView-CPDjKGeW.js} +22 -23
  21. package/dist/assets/CollectionParameter-PHj-nQX_.js +50 -0
  22. package/dist/assets/{CommunityNodeUpdateInfo-Dy0ilmZE.js → CommunityNodeUpdateInfo-C8_mLrZ5.js} +8 -8
  23. package/dist/assets/{CopyInput-B2aUDGPW.js → CopyInput-D4IqeIwh.js} +4 -4
  24. package/dist/assets/{CredentialIcon-BGZoAL3d.js → CredentialIcon-uhIIYjQ5.js} +3 -3
  25. package/dist/assets/{CredentialPicker-BtKDHFRq.js → CredentialPicker-CHj_u87Q.js} +5 -6
  26. package/dist/assets/{CredentialSelectorModal-DkyFq-Pq.js → CredentialSelectorModal-BgjG3ACX.js} +18 -20
  27. package/dist/assets/{CredentialsView-xnKf-zG4.js → CredentialsView-GgHi3Nwa.js} +34 -37
  28. package/dist/assets/{DataTableActions-B5aTsXib.js → DataTableActions-D8jtOheL.js} +5 -6
  29. package/dist/assets/{DataTableDetailsView-C6okqjS-.js → DataTableDetailsView-BQKJhJRx.js} +22 -24
  30. package/dist/assets/{DataTableView-BM78mbgY.js → DataTableView-CRpaR8O2.js} +31 -34
  31. package/dist/assets/DemoFooter-Cxu0hnvC.js +63 -0
  32. package/dist/assets/{Draggable-DveKAuxg.js → Draggable-CeRLORdu.js} +1 -1
  33. package/dist/assets/{EmptySharedSectionActionBox-SKlYZNuX.js → EmptySharedSectionActionBox-WNc5syUl.js} +4 -4
  34. package/dist/assets/{EnterpriseEdition.ee-BQiXZvAd.js → EnterpriseEdition.ee-D0ixqMOk.js} +1 -1
  35. package/dist/assets/{EntityNotFound-ByhfFutM.js → EntityNotFound-CuNhWBrZ.js} +7 -7
  36. package/dist/assets/{EntityUnAuthorised-Ab8M--6A.js → EntityUnAuthorised-ProWKTPU.js} +7 -7
  37. package/dist/assets/{ErrorView-Csvm001D.js → ErrorView-jBBYrV1n.js} +9 -9
  38. package/dist/assets/{EvaluationsRootView-B6-VDQXl.js → EvaluationsRootView-D70Tp2Up.js} +36 -36
  39. package/dist/assets/{EvaluationsView-D8teiZoa.js → EvaluationsView-DPKBS6PJ.js} +21 -21
  40. package/dist/assets/{ExecutionsTime-CNz8UC7l.css → ExecutionsTime-CMAp2_xF.css} +24 -21
  41. package/dist/assets/{ExecutionsTime-CLQBgXgq.js → ExecutionsTime-CQneihIO.js} +37 -28
  42. package/dist/assets/{ExecutionsView-B6W7-w3K.js → ExecutionsView-Vg6JvFFQ.js} +34 -37
  43. package/dist/assets/{ExternalSecretsProviderConnectionSwitch.ee-DcLHCwv3.js → ExternalSecretsProviderConnectionSwitch.ee-B9I0rKT4.js} +4 -4
  44. package/dist/assets/{FixedCollectionParameter-ozilaYrN.js → FixedCollectionParameter-Dgp7H09p.js} +45 -53
  45. package/dist/assets/{ForgotMyPasswordView-Bnk-XG6Z.js → ForgotMyPasswordView-DqcF_Z2q.js} +15 -15
  46. package/dist/assets/{InsightsChartAverageRuntime-Bm0c6_UE.js → InsightsChartAverageRuntime-Cljk8p2A.js} +10 -10
  47. package/dist/assets/{InsightsChartFailed-D6TI96gu.js → InsightsChartFailed-DTmTcxHp.js} +8 -8
  48. package/dist/assets/{InsightsChartFailureRate-BXjbwEEr.js → InsightsChartFailureRate-BKL-1iTZ.js} +10 -10
  49. package/dist/assets/{InsightsChartTimeSaved-BPUaaTg8.js → InsightsChartTimeSaved-CIxYU033.js} +10 -10
  50. package/dist/assets/{InsightsChartTotal-D3aCqsFD.js → InsightsChartTotal-_2DLJIdR.js} +8 -8
  51. package/dist/assets/{InsightsDashboard-KVEJC5l2.js → InsightsDashboard-CiJyVecp.js} +32 -34
  52. package/dist/assets/{InsightsPaywall-BrnS_pKR.js → InsightsPaywall-CINaGtwo.js} +15 -16
  53. package/dist/assets/{InsightsSummary-Da08_DCk.js → InsightsSummary-CgA8vOKu.js} +8 -8
  54. package/dist/assets/{InsightsTableWorkflows-CjXv0hN6.js → InsightsTableWorkflows-YYoh5C57.js} +18 -18
  55. package/dist/assets/{ItemsRenderer-B3028vj7.js → ItemsRenderer-Bkvm6ylT.js} +10 -10
  56. package/dist/assets/{ItemsRenderer-Cr6c6uYy.css → ItemsRenderer-DkobJF9f.css} +4 -2
  57. package/dist/assets/{KeyboardShortcutTooltip-vWNBozVo.js → KeyboardShortcutTooltip-BErFISFN.js} +1 -1
  58. package/dist/assets/LogsPanel-1rVp7yTV.js +50 -0
  59. package/dist/assets/{LogsPanel-DxQFRme8.js → LogsPanel-wqHn7duZ.js} +24 -25
  60. package/dist/assets/MCPConnectWorkflowsModal-CS2q8ice.css +275 -0
  61. package/dist/assets/MCPConnectWorkflowsModal-zndEVWiT.js +301 -0
  62. package/dist/assets/{MainHeader-DJA_Afhq.css → MainHeader-CSaAWCWj.css} +13 -13
  63. package/dist/assets/{MainHeader-Di9xKi5B.js → MainHeader-S9F1mef-.js} +97 -101
  64. package/dist/assets/{MainSidebar-bwCkn71q.css → MainSidebar-CEsQ8o1Y.css} +84 -304
  65. package/dist/assets/{MainSidebar-DIa4RZxf.js → MainSidebar-nlRQuq4m.js} +222 -694
  66. package/dist/assets/{MigrationRuleDetail-mcU4VyTt.js → MigrationRuleDetail-MPJH8woH.js} +20 -20
  67. package/dist/assets/{MigrationRules-2g39kC1H.js → MigrationRules-CXWOU2h7.js} +12 -12
  68. package/dist/assets/{Modal-DGPQBa8T.js → Modal-Bx0XYuv8.js} +4 -4
  69. package/dist/assets/{ModelByIdSelectorModal-CzcpDw87.js → ModelByIdSelectorModal-BI7ckDXC.js} +17 -18
  70. package/dist/assets/{NDVEmptyState-BeXJvhnF.js → NDVEmptyState-YMeX60Ni.js} +1 -1
  71. package/dist/assets/{NodeCreation-Br8ljRfC.js → NodeCreation-BaNMWutd.js} +41 -49
  72. package/dist/assets/{NodeCreator-fSrstn2P.js → NodeCreator-C852UqEf.js} +47 -50
  73. package/dist/assets/{NodeCreator-C-ckvxD7.css → NodeCreator-OSIpRI6S.css} +25 -25
  74. package/dist/assets/{NodeDetailsView-HXe2ZuYh.js → NodeDetailsView-GXMPg1-K.js} +60 -68
  75. package/dist/assets/{NodeDetailsViewV2-C3W-2c0t.js → NodeDetailsViewV2-DCnVXlNg.js} +61 -69
  76. package/dist/assets/{NodeIcon-eaW3atZy.css → NodeIcon-BDxr0f30.css} +5 -2
  77. package/dist/assets/{NodeIcon-CWvzhRQM.js → NodeIcon-UuZXMI3b.js} +4 -4
  78. package/dist/assets/{NodeSettings-Br6GFKCU.js → NodeSettings-sGW3h0b4.js} +17 -17
  79. package/dist/assets/{NodeView-BLDOwZvQ.js → NodeView-i2FqlrZg.js} +111 -106
  80. package/dist/assets/{OAuthConsentView-C13weyO_.js → OAuthConsentView-BCnyFvFE.js} +14 -14
  81. package/dist/assets/{ParameterInputList-CXEjv4Ky.css → ParameterInputList-0YoVowEI.css} +10 -7
  82. package/dist/assets/{ParameterInputList-BUU1q_EZ.js → ParameterInputList-Br9nDZxe.js} +59 -56
  83. package/dist/assets/{PrebuiltAgentTemplatesView-D9w4f2e0.js → PrebuiltAgentTemplatesView-CKUzZatm.js} +17 -19
  84. package/dist/assets/{ProjectBreadcrumb-8JDiuLL3.js → ProjectBreadcrumb-ByT1IATl.js} +4 -4
  85. package/dist/assets/{ProjectCardBadge-CcHOiONP.js → ProjectCardBadge-DjNmgRAP.js} +5 -5
  86. package/dist/assets/{ProjectHeader-D4bO6fjq.js → ProjectHeader-Cl-v-GMx.js} +8 -8
  87. package/dist/assets/{ProjectIcon-DQILIjYR.js → ProjectIcon-CVhr6466.js} +1 -1
  88. package/dist/assets/{ProjectRoleView-UeSNgqSq.js → ProjectRoleView-3D060erL.js} +15 -16
  89. package/dist/assets/{ProjectRolesView-DhXb0x1i.js → ProjectRolesView-DvZkoFBe.js} +16 -19
  90. package/dist/assets/{ProjectSettings-CUnoqyPE.js → ProjectSettings-0C6lnj8u.js} +26 -28
  91. package/dist/assets/{ProjectSharing-utuPX2PB.js → ProjectSharing-CtOlIYg8.js} +5 -5
  92. package/dist/assets/{ProjectVariables-djh1rIms.js → ProjectVariables-COktFANb.js} +32 -35
  93. package/dist/assets/{ProviderSettingsModal-CazzGyiO.js → ProviderSettingsModal-B-btuOfV.js} +21 -23
  94. package/dist/assets/{PushConnectionTracker-Dpvr4Zz3.js → PushConnectionTracker-C4wioF1a.js} +3 -3
  95. package/dist/assets/{ResolversView-BdV4DSqj.js → ResolversView-qWEf4KSk.js} +15 -17
  96. package/dist/assets/{ResourceFiltersDropdown-W30MKKtt.js → ResourceFiltersDropdown-BikLhLzy.js} +18 -18
  97. package/dist/assets/{ResourceFiltersDropdown-BACE5ZTX.css → ResourceFiltersDropdown-Cma1Lj9J.css} +12 -9
  98. package/dist/assets/{ResourcesListLayout-DqSGTRQL.js → ResourcesListLayout-DjbDZ485.js} +9 -9
  99. package/dist/assets/{RunDataHtml-DhjduYN-.js → RunDataHtml-B4A7gRBL.js} +3 -3
  100. package/dist/assets/{RunDataHtml-_b8v7-9v.js → RunDataHtml-CkjC7YuF.js} +1 -1
  101. package/dist/assets/{RunDataJson-Ber6Oi12.js → RunDataJson-xNt8TeT7.js} +14 -14
  102. package/dist/assets/{RunDataJsonActions-Bf98jdLe.js → RunDataJsonActions-ZnTJFjPn.js} +15 -15
  103. package/dist/assets/{RunDataParsedAiContent-DL7QTmP_.js → RunDataParsedAiContent-BCJUkbqC.js} +8 -8
  104. package/dist/assets/RunDataParsedAiContent-DqRKhrSB.js +24 -0
  105. package/dist/assets/{RunDataSearch-jh-3G-0I.js → RunDataSearch-BAwHZr-P.js} +10 -10
  106. package/dist/assets/{RunDataTable-BVL7OKID.js → RunDataTable-YYViC6gq.js} +18 -18
  107. package/dist/assets/{SamlOnboarding-D_thSH33.js → SamlOnboarding-C5Tr3Slo.js} +15 -15
  108. package/dist/assets/{SaveButton-DooLZseO.js → SaveButton-92mEEoEP.js} +3 -3
  109. package/dist/assets/{SelectedItemsInfo-DDt5oazC.js → SelectedItemsInfo-DzkrxhPo.js} +2 -2
  110. package/dist/assets/{SettingsApiView-BBxKUUm2.js → SettingsApiView-CJyqNNAX.js} +17 -20
  111. package/dist/assets/{SettingsChatHubView-DVgdfxN7.js → SettingsChatHubView-DpdcfBor.js} +19 -19
  112. package/dist/assets/{SettingsCommunityNodesView-BRFN63n0.js → SettingsCommunityNodesView-BCvCmXWC.js} +29 -36
  113. package/dist/assets/{SettingsExternalSecrets-C0x7V0VC.js → SettingsExternalSecrets-CtuNjOHB.js} +17 -18
  114. package/dist/assets/{SettingsLdapView-Bwoo1o2k.js → SettingsLdapView-CB2PN4XF.js} +19 -22
  115. package/dist/assets/{SettingsLogStreamingView-BgwdyH0h.js → SettingsLogStreamingView-BkeGZzXU.js} +17 -20
  116. package/dist/assets/{SettingsMCPView-DzdHfN6P.js → SettingsMCPView-CfaP3OAo.js} +136 -164
  117. package/dist/assets/{SettingsMCPView-CuJwNWhp.css → SettingsMCPView-DIdodQTu.css} +28 -41
  118. package/dist/assets/{SettingsPersonalView-CnMsk8M2.js → SettingsPersonalView-DqyIIYiM.js} +15 -16
  119. package/dist/assets/{SettingsSourceControl-DKRbSwDj.js → SettingsSourceControl-DTKvyQ-E.js} +19 -21
  120. package/dist/assets/{SettingsSso-DD32GRf1.js → SettingsSso-BqSa2kyP.js} +21 -24
  121. package/dist/assets/{SettingsUsageAndPlan-lZYIpXMj.js → SettingsUsageAndPlan-DjxRwtnH.js} +17 -19
  122. package/dist/assets/{SettingsUsersView-BP2U2tD2.js → SettingsUsersView-DTtMD45S.js} +22 -25
  123. package/dist/assets/{SettingsView-BRsk0Vjq.js → SettingsView-LehjcLhP.js} +14 -14
  124. package/dist/assets/{SetupTemplateFormStep-DcmVXD3a.js → SetupTemplateFormStep-DH5EaAC-.js} +7 -7
  125. package/dist/assets/{SetupView-DBFUYVtm.js → SetupView-CNpqI-Mm.js} +15 -15
  126. package/dist/assets/{SetupWorkflowCredentialsButton-ChlRSbhd.js → SetupWorkflowCredentialsButton-Cd6MsYCC.js} +14 -14
  127. package/dist/assets/{SetupWorkflowFromTemplateView-CER9J7DP.js → SetupWorkflowFromTemplateView-CKYEo2_N.js} +21 -25
  128. package/dist/assets/{SeverityTag-CkJev9WS.js → SeverityTag-CjL6aCgr.js} +2 -2
  129. package/dist/assets/{SigninView-CWdvHULD.js → SigninView-BFhXhQy_.js} +16 -16
  130. package/dist/assets/{SignoutView-fvJJZx5p.js → SignoutView-C5Rqj0rG.js} +8 -8
  131. package/dist/assets/{SignupView-SNgWdNtE.js → SignupView-pkWEAwT4.js} +15 -15
  132. package/dist/assets/{SkeletonAgentCard-DQhrFpBG.js → SkeletonAgentCard-CFbUHoJ_.js} +8 -8
  133. package/dist/assets/{TagsDropdown-RP7eXKHF.js → TagsDropdown-Ckp4w5RZ.js} +3 -3
  134. package/dist/assets/{TemplateCard-DbQ8Ekek.js → TemplateCard-CVIt847s.js} +6 -7
  135. package/dist/assets/{TemplateDetails-BlnoU2XX.js → TemplateDetails-CU_WdmN6.js} +6 -7
  136. package/dist/assets/{TemplateList-EUHRRcHT.js → TemplateList-CI2Xi3Nr.js} +5 -5
  137. package/dist/assets/{TemplatesCollectionView-CShXKKou.js → TemplatesCollectionView-9nTVlhmd.js} +22 -24
  138. package/dist/assets/{TemplatesSearchView-JPvTJqrT.js → TemplatesSearchView-5sECuF70.js} +19 -21
  139. package/dist/assets/{TemplatesView-CkSiPY6S.js → TemplatesView-BwDvsLzl.js} +3 -3
  140. package/dist/assets/{TemplatesWorkflowView-mGRivOAH.js → TemplatesWorkflowView-BUJF5y7g.js} +23 -25
  141. package/dist/assets/{TestRunDetailView-d89WWvUc.js → TestRunDetailView-CpbEtZB0.js} +19 -19
  142. package/dist/assets/{TimeAgo-BgFYQmEV.js → TimeAgo-wOp8Jlnz.js} +3 -3
  143. package/dist/assets/{ToolsSelectorModal-BBdpzWrV.js → ToolsSelectorModal-B4Id-oqD.js} +17 -18
  144. package/dist/assets/{TriggerPanel-Ccr_a4aS.js → TriggerPanel-ClTWEUV8.js} +18 -19
  145. package/dist/assets/VirtualSchema-Bf4iCl-D.js +35 -0
  146. package/dist/assets/{VirtualSchema-Ccpa4B_2.js → VirtualSchema-CnYo2buH.js} +15 -16
  147. package/dist/assets/{VueMarkdown-wTXGt3en.js → VueMarkdown-DQtBIjcr.js} +1 -1
  148. package/dist/assets/{WorkerView-CjTDGSi1.js → WorkerView-BFEeByTA.js} +34 -41
  149. package/dist/assets/{WorkflowActivationErrorMessage-CQe9ZG_g.js → WorkflowActivationErrorMessage-D9ktIWO1.js} +1 -1
  150. package/dist/assets/{WorkflowActivator-xCBwqG20.css → WorkflowActivator-BGcCOUCH.css} +2 -2
  151. package/dist/assets/{WorkflowActivator-B4F8t0yo.js → WorkflowActivator-Bxd-bB8P.js} +13 -11
  152. package/dist/assets/{WorkflowExecutionsInfoAccordion-Cx2nzSuB.js → WorkflowExecutionsInfoAccordion-BbBvNiqB.js} +11 -15
  153. package/dist/assets/{WorkflowExecutionsLandingPage-DEJ2PbWE.js → WorkflowExecutionsLandingPage-C9EEWnxX.js} +19 -33
  154. package/dist/assets/{WorkflowExecutionsPreview-BMGRACSR.js → WorkflowExecutionsPreview-bL404UdF.js} +22 -25
  155. package/dist/assets/{WorkflowExecutionsView-Bqx9k5c-.js → WorkflowExecutionsView-Bpxaw8Vh.js} +50 -46
  156. package/dist/assets/{WorkflowExecutionsView-J4lWGYW8.css → WorkflowExecutionsView-DzHhxp4K.css} +2 -2
  157. package/dist/assets/{WorkflowHistory-D3BhOWlD.css → WorkflowHistory-BBHdNsOb.css} +147 -98
  158. package/dist/assets/{WorkflowHistory-DmtAM9fi.js → WorkflowHistory-CORp6hCd.js} +329 -273
  159. package/dist/assets/WorkflowLocation-6rp_-CuW.css +164 -0
  160. package/dist/assets/WorkflowLocation-tnhpuBX7.js +164 -0
  161. package/dist/assets/{WorkflowOnboardingView-CIrmsRw4.js → WorkflowOnboardingView-BEawbzt-.js} +8 -10
  162. package/dist/assets/{WorkflowPreview-CYlgo0kD.js → WorkflowPreview-CEDUFgeD.js} +4 -4
  163. package/dist/assets/{WorkflowTagsDropdown-BsjxBGVH.js → WorkflowTagsDropdown-XEtouCaM.js} +2 -2
  164. package/dist/assets/{WorkflowsView-D-Je3mdl.js → WorkflowsView-ClQilsPp.js} +65 -84
  165. package/dist/assets/{_MapCache-BXj4WgHo.js → _MapCache-0zNxISSG.js} +78 -8
  166. package/dist/assets/{_baseOrderBy-ZGuD_-iy.js → _baseOrderBy-xWA0TcWm.js} +4 -4
  167. package/dist/assets/{_initCloneObject-DCLKwsUi.js → _initCloneObject-DZFc-F-b.js} +2 -2
  168. package/dist/assets/{aiTemplatesStarterCollection.store-NYOrgNlj.js → aiTemplatesStarterCollection.store-zMePNJbZ.js} +5 -5
  169. package/dist/assets/{apiKeys.store-DOf4JeD0.js → apiKeys.store-BzgIQpBj.js} +2 -2
  170. package/dist/assets/{assistant.store-Dy9VDomp.js → assistant.store-B5OR1Bze.js} +6 -6
  171. package/dist/assets/{auth.eventBus-Pqv7Rxfm.js → auth.eventBus-D3nU98SE.js} +1 -1
  172. package/dist/assets/{banners.store-Rf3We1Q7.js → banners.store-B7CxzJ2_.js} +4 -4
  173. package/dist/assets/{builder.store-D_RDTxxI.js → builder.store-DoNE5iKP.js} +5772 -157
  174. package/dist/assets/{chartjs.utils-BuKhcKwM.js → chartjs.utils-CoNBCTXc.js} +3 -3
  175. package/dist/assets/{chat.store-D4DOVQYU.js → chat.store-YIaykMtq.js} +124 -88
  176. package/dist/assets/{chatPanel.store-D3DaHq1z.js → chatPanel.store-zWZ0Jjvi.js} +17 -11
  177. package/dist/assets/{col-ebWyVZHF.js → col-Cj8t34XN.js} +1 -2
  178. package/dist/assets/{constants-DPB1SWiX.js → constants-BiRoCM0c.js} +13 -13
  179. package/dist/assets/{constants-qk3hx0l8.js → constants-DLTaaipl.js} +2 -1
  180. package/dist/assets/{core-CiWhevuy.js → core-BbiIkN91.js} +1 -1
  181. package/dist/assets/{dataTable.store-BL0mLkMg.js → dataTable.store-BXKAnmr0.js} +3 -3
  182. package/dist/assets/{date-picker-tQf2dntC.js → date-picker-CNwAHb3n.js} +2 -2
  183. package/dist/assets/{dateFormatter-DqsBbNBt.js → dateFormatter-DzJiM44k.js} +2 -2
  184. package/dist/assets/{dialog-jh_mITmm.js → dialog-Bot5nr0N.js} +3 -3
  185. package/dist/assets/{dist-JIm44DPf.js → dist-DP_8je0B.js} +1 -1
  186. package/dist/assets/{en-b3uD8cvU.js → en-CF30SCh2.js} +11 -1
  187. package/dist/assets/en-DyO2pPiC.js +2 -0
  188. package/dist/assets/{es-BskBLtZB.js → es-DlTgUi2w.js} +1 -1
  189. package/dist/assets/{evaluation.constants-iqEXbNEl.js → evaluation.constants-QH_qT6UD.js} +3 -3
  190. package/dist/assets/{executions.store-D8Pn4Xih.js → executions.store-O0Cs6kyK.js} +2 -2
  191. package/dist/assets/{externalSecrets.ee.store-BDrodR7I.js → externalSecrets.ee.store-D1gmVgZF.js} +3 -3
  192. package/dist/assets/{folders.store-D8nKs5-U.js → folders.store-vVDyrOf9.js} +3 -3
  193. package/dist/assets/{index-BkLJ6ICr.css → index-Bl6XoGDE.css} +155 -24
  194. package/dist/assets/{index-DvVzFVr2.js → index-D6qelrIy.js} +478 -172
  195. package/dist/assets/{insights.constants-B7y0cvTb.js → insights.constants-C8GITe6H.js} +1 -1
  196. package/dist/assets/{insights.store-6LgiVo3h.js → insights.store-CEm0oAQ1.js} +5 -5
  197. package/dist/assets/{insights.utils-Dc4VSauh.js → insights.utils-BjffJfoC.js} +4 -4
  198. package/dist/assets/{isEmpty-GqdrxwqC.js → isEmpty-DCuynolj.js} +26 -27
  199. package/dist/assets/{languageModules-CLe6cIYW.js → languageModules-D_uyjb6R.js} +1 -1
  200. package/dist/assets/{logStreaming.store-I5_7h6od.js → logStreaming.store-rSlN8vmt.js} +2 -2
  201. package/dist/assets/mcp.constants-DQPD3Ntp.js +10 -0
  202. package/dist/assets/{mcp.store-BiAizQEG.js → mcp.store-NBibfYnt.js} +14 -3
  203. package/dist/assets/{merge-BfSiz1ty.js → merge-BmWPLD5Q.js} +1 -1
  204. package/dist/assets/{nodeCreator.store-CzS_snY4.js → nodeCreator.store-C5ZiFH88.js} +11 -16
  205. package/dist/assets/{nodeIcon-B3eU2X78.js → nodeIcon-CPowiQry.js} +3 -3
  206. package/dist/assets/{nodeTransforms-DQR-xCjB.js → nodeTransforms-B7ZrYsoY.js} +2 -2
  207. package/dist/assets/{orderBy-CKjuXXf2.js → orderBy-C7nKLQm8.js} +2 -2
  208. package/dist/assets/{personalizedTemplatesV3.store-uBVFSjod.js → personalizedTemplatesV3.store-C-6ck-eG.js} +3 -5
  209. package/dist/assets/{pickBy-DWwTL0iT.js → pickBy-CegO_wl5.js} +2 -2
  210. package/dist/assets/{radio-CHTjuYB5.js → radio-BQbSXowV.js} +1 -2
  211. package/dist/assets/{readyToRun.store-CoBaUeeQ.js → readyToRun.store-B87q35Mr.js} +6 -7
  212. package/dist/assets/{readyToRunWorkflows.store-CP3ZQHOV.js → readyToRunWorkflows.store-DYQM88iU.js} +5 -6
  213. package/dist/assets/{roles.store-Cc8yV7SO.js → roles.store-D6uYJEc8.js} +3 -3
  214. package/dist/assets/{router-DqNrjUQe.js → router-BeB9V_IR.js} +111 -90
  215. package/dist/assets/{sanitize-html-Cft-jOcY.js → sanitize-html-Cc45ZKm8.js} +1 -1
  216. package/dist/assets/{schemaPreview.store-CEyVQQFy.js → schemaPreview.store-C7il53qQ.js} +3 -3
  217. package/dist/assets/{semver-D94dSx-h.js → semver-DQ1spAwG.js} +2 -2
  218. package/dist/assets/{sourceControl.eventBus-dh45B_eQ.js → sourceControl.eventBus-C4ZTxfD6.js} +1 -1
  219. package/dist/assets/{src-DS0bffpn.css → src-CWWagUhy.css} +729 -81
  220. package/dist/assets/{src-D5Ea_YL1.js → src-Czua7QS4.js} +1675 -3573
  221. package/dist/assets/{sso.store-BhQFxFCm.js → sso.store-XplLjdjE.js} +2 -2
  222. package/dist/assets/{table-C-rs8-jl.js → table-BaJV0PMz.js} +3 -3
  223. package/dist/assets/{templateActions-Diym8ovq.js → templateActions-CnKsqyQX.js} +5 -5
  224. package/dist/assets/{templateTransforms-CKqUjP17.js → templateTransforms-tCNgggoI.js} +1 -1
  225. package/dist/assets/{truncate-Dmdv43Z9.js → truncate-4AS2exV3.js} +2266 -27
  226. package/dist/assets/{uniqBy-MFjFW8tb.js → uniqBy-DYX8cQbP.js} +1 -1
  227. package/dist/assets/{usage.store-DhJeF5yr.js → usage.store---1xT3dr.js} +2 -2
  228. package/dist/assets/{useActions-dKafQbOS.js → useActions-SqyZSpq8.js} +4 -4
  229. package/dist/assets/{useBeforeUnload-Bmlb3xCA.js → useBeforeUnload-Frc3kJwY.js} +3 -3
  230. package/dist/assets/{useCanvasMapping-B63N62Et.js → useCanvasMapping-ckk9p3Z_.js} +35 -32
  231. package/dist/assets/{useCanvasOperations-CfQ4z3tY.js → useCanvasOperations-B0_VkwYO.js} +140 -28
  232. package/dist/assets/{useClipboard-C_mhEUZu.js → useClipboard-aAhMBccX.js} +2 -2
  233. package/dist/assets/{useCommandBar-DaWt4vV_.js → useCommandBar-B-FM_q4D.js} +26 -30
  234. package/dist/assets/{useCredentialResolvers--QtS2m8P.js → useCredentialResolvers-BUdqGvmz.js} +4 -5
  235. package/dist/assets/{useCustomAgent-CfCSJQhK.js → useCustomAgent-CpSjLLmx.js} +25 -15
  236. package/dist/assets/{useDebounce-ChdrGmRj.js → useDebounce-BT72iAmz.js} +2 -2
  237. package/dist/assets/{useExecutionData-CW_KIDkd.js → useExecutionData-CcJxqQ4P.js} +1 -1
  238. package/dist/assets/{useExecutionDebugging-wiVN69Tq.js → useExecutionDebugging-CtsTTYUP.js} +6 -7
  239. package/dist/assets/{useExecutionHelpers-BuuqwS9p.js → useExecutionHelpers-BT28_NgQ.js} +5 -5
  240. package/dist/assets/{useImportCurlCommand-13VIaPBb.js → useImportCurlCommand-iPI3t0bK.js} +9 -9
  241. package/dist/assets/{useKeybindings-Dy748tLi.js → useKeybindings-CdqRqeMq.js} +4 -4
  242. package/dist/assets/{useLogsTreeExpand-BEKrkc6w.js → useLogsTreeExpand-U4aHj0YH.js} +13 -13
  243. package/dist/assets/{useMcp-DybYgWvO.js → useMcp-DqpgReET.js} +2 -2
  244. package/dist/assets/{usePageRedirectionHelper-BniqTqk7.js → usePageRedirectionHelper-WQFPPEkJ.js} +3 -4
  245. package/dist/assets/{usePinnedData-oATErInx.js → usePinnedData-DY18UrR8.js} +4 -4
  246. package/dist/assets/{usePushConnection-BucLZJhS.js → usePushConnection-DLXKs6Pl.js} +12 -13
  247. package/dist/assets/{useRecentResources-Cswwj5RH.js → useRecentResources-Dmyse5sV.js} +9 -8
  248. package/dist/assets/{useRunWorkflow-CtXYGwm0.js → useRunWorkflow-qvHcKYK-.js} +9 -10
  249. package/dist/assets/{useSettingsItems-Lsuyk-2F.js → useSettingsItems-BnPf2JrE.js} +4 -4
  250. package/dist/assets/{useTelemetryContext-TG-yqBI_.js → useTelemetryContext-k7tFigHj.js} +1 -1
  251. package/dist/assets/{useWorkflowActivate-Dzfi3i8Q.js → useWorkflowActivate-B8Z7d2ST.js} +7 -8
  252. package/dist/assets/{useWorkflowsCache-CUuFvP-s.js → useWorkflowsCache-Bph0PnSk.js} +1 -1
  253. package/dist/assets/{userRoleProvisioning.store-D4bBWYXg.js → userRoleProvisioning.store-DD9VUV4g.js} +2 -2
  254. package/dist/assets/utils-C2GPI2gK.js +54 -0
  255. package/dist/assets/{versions.store-UoNOsj3D.js → versions.store-BTPqbzUV.js} +3 -3
  256. package/dist/index.html +109 -119
  257. package/package.json +1 -1
  258. package/dist/assets/ChatSidebar-FcoKSroN.js +0 -555
  259. package/dist/assets/CollectionParameter-BdVkYonk.js +0 -58
  260. package/dist/assets/DemoFooter-BCrcY2ep.js +0 -71
  261. package/dist/assets/FileSaver.min--9uV1QmK.js +0 -72
  262. package/dist/assets/LogsPanel-Bl6S94ba.js +0 -58
  263. package/dist/assets/ModalDrawer-B-12esvU.css +0 -129
  264. package/dist/assets/ModalDrawer-CHxulsmc.js +0 -277
  265. package/dist/assets/RunDataParsedAiContent-Brtftd8W.js +0 -24
  266. package/dist/assets/VirtualSchema-wYsuagJ2.js +0 -42
  267. package/dist/assets/cloudPlan.store-Ck9BLZl3.js +0 -185
  268. package/dist/assets/en-BD3FHSTF.js +0 -2
  269. package/dist/assets/focusPanel.store-Cr5ipnc8.js +0 -208
  270. package/dist/assets/mcp.constants-svQUbNx5.js +0 -8
  271. package/dist/assets/npsSurvey.store-CjDE24yH.js +0 -98
  272. package/dist/assets/overlay-DBShc2HG.js +0 -165
  273. package/dist/assets/templates.store-DW5zmCkZ.js +0 -3915
  274. package/dist/assets/useChatHubSidebarState-Dp-DKjJx.js +0 -29
  275. package/dist/assets/useMessage-D9ClyiWR.js +0 -610
  276. package/dist/assets/useWorkflowSaving-BZmOLOu-.js +0 -229
  277. package/dist/assets/utils-BLHsa_NJ.js +0 -18
  278. /package/dist/assets/{AnimatedSpinner-g6zev3_N.js → AnimatedSpinner-wiGFgffA.js} +0 -0
  279. /package/dist/assets/{CalendarDate-B-JEhNYg.js → CalendarDate-zWqgZMlk.js} +0 -0
  280. /package/dist/assets/{ChatFile-8ik4bOn3.js → ChatFile-cnNK8Kf8.js} +0 -0
  281. /package/dist/assets/{ChatSidebarOpener-CxM-3LAt.css → ChatLayout-CxM-3LAt.css} +0 -0
  282. /package/dist/assets/{ChatPersonalAgentsView-BBfu-g98.css → ChatWorkflowAgentsView-BBfu-g98.css} +0 -0
  283. /package/dist/assets/{PageViewLayout-B889Bfwc.js → PageViewLayout-BHSzOio1.js} +0 -0
  284. /package/dist/assets/{TextWithHighlights-C4QSPTGM.js → TextWithHighlights-DjzuDrgO.js} +0 -0
  285. /package/dist/assets/{buttons.esm-CZxEX89d.js → buttons.esm-CT4flsfB.js} +0 -0
  286. /package/dist/assets/{chart-BxWK2ZOo.js → chart-CE3HWIkr.js} +0 -0
  287. /package/dist/assets/{core-CXk6RNMV.js → core-6W4wWNc1.js} +0 -0
  288. /package/dist/assets/{dateformat-hG8NERse.js → dateformat-CM9k0--B.js} +0 -0
  289. /package/dist/assets/{exports-CdZcr9ah.js → exports-hpMZaOPT.js} +0 -0
  290. /package/dist/assets/{fileUtils-D3GQ2UWQ.js → fileUtils-D_SiS8no.js} +0 -0
  291. /package/dist/assets/{path-browserify-BgjP7RyT.js → path-browserify-BtCDmZ3_.js} +0 -0
  292. /package/dist/assets/{retry-CMAFrhVi.js → retry-dP46utx2.js} +0 -0
  293. /package/dist/assets/{smartDecimal-Bi50OE4b.js → smartDecimal-DK6-_VSq.js} +0 -0
  294. /package/dist/assets/{sortByProperty-DAqnDMg7.js → sortByProperty-CV1aCzkS.js} +0 -0
  295. /package/dist/assets/{useIntersectionObserver-BZ6Jqnr3.js → useIntersectionObserver-DXKoRNFj.js} +0 -0
  296. /package/dist/assets/{vue-0rlD32wK.js → vue-Dg_43WEg.js} +0 -0
  297. /package/dist/assets/{vue-json-pretty-B9qWbmOF.js → vue-json-pretty-DGKuDe33.js} +0 -0
  298. /package/dist/assets/{xml-DSIt30t0.js → xml-B6veOr9z.js} +0 -0
@@ -1,40 +1,27 @@
1
- import { o as __toESM } from "./chunk-6z4oVpB-.js";
2
- 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, T as createBlock, Z as onMounted, _ as Fragment, _t as watch, at as renderSlot, 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";
3
- import { _t as I18nT, gt as useI18n } from "./_MapCache-BXj4WgHo.js";
4
- import { Bn as N8nHeading_default, Gn as N8nIcon_default, Hn as N8nText_default, Un as N8nButton_default, at as N8nLoading_default, ht as N8nTooltip_default, it as N8nActionToggle_default, lt as N8nBadge_default, mt as N8nLink_default } from "./src-D5Ea_YL1.js";
5
- import "./en-b3uD8cvU.js";
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 { _t as useI18n, vt as I18nT } from "./_MapCache-0zNxISSG.js";
3
+ import { Sn as N8nButton_default, at as N8nLoading_default, ht as N8nTooltip_default, it as N8nActionToggle_default, lt as N8nBadge_default, mt as N8nLink_default, wn as N8nIcon_default, xn as N8nText_default, yn as N8nHeading_default } from "./src-Czua7QS4.js";
4
+ import "./en-CF30SCh2.js";
6
5
  import "./preload-helper-CR0ecmWK.js";
7
6
  import { t as __plugin_vue_export_helper_default } from "./_plugin-vue_export-helper-BwBpWJRZ.js";
8
- import { T as createEventBus, v as useRoute, y as useRouter } from "./truncate-Dmdv43Z9.js";
9
- import "./overlay-DBShc2HG.js";
7
+ import { T as createEventBus, v as useRoute, y as useRouter } from "./truncate-4AS2exV3.js";
8
+ import { A as telemetry, Dr as useUsersStore, N as useWorkflowsStore, g as useWorkflowHistoryStore, oa as useUIStore, v as useToast } from "./builder.store-DoNE5iKP.js";
10
9
  import "./empty-BuGRxzl4.js";
11
- import "./useMessage-D9ClyiWR.js";
12
- import { $o as useSettingsStore, Wi as useUIStore, dr as useUsersStore, es as getWorkflowHistory, h as telemetry, n as useToast, qo as getNewWorkflow, ts as getWorkflowVersion, v as useWorkflowsStore } from "./builder.store-D_RDTxxI.js";
13
- import "./sanitize-html-Cft-jOcY.js";
14
- import "./CalendarDate-B-JEhNYg.js";
15
- import "./path-browserify-BgjP7RyT.js";
16
- import { Cs as WORKFLOW_HISTORY_VERSION_UNPUBLISH, Ss as WORKFLOW_HISTORY_VERSION_RESTORE, Vo as VIEWS, a as IS_DRAFT_PUBLISH_ENABLED, jo as getResourcePermissions, xs as WORKFLOW_HISTORY_PUBLISH_MODAL_KEY } from "./constants-DPB1SWiX.js";
17
- import "./merge-BfSiz1ty.js";
18
- import { k as defineStore, r as useRootStore } from "./_baseOrderBy-ZGuD_-iy.js";
19
- import "./dateformat-hG8NERse.js";
20
- import "./useDebounce-ChdrGmRj.js";
21
- import "./npsSurvey.store-CjDE24yH.js";
22
- import "./cloudPlan.store-Ck9BLZl3.js";
23
- import "./templates.store-DW5zmCkZ.js";
24
- import "./focusPanel.store-Cr5ipnc8.js";
25
- import "./useWorkflowSaving-BZmOLOu-.js";
26
- import "./executions.store-D8Pn4Xih.js";
27
- import "./versions.store-UoNOsj3D.js";
28
- import { t as usePageRedirectionHelper } from "./usePageRedirectionHelper-BniqTqk7.js";
29
- import { t as require_FileSaver_min } from "./FileSaver.min--9uV1QmK.js";
30
- import { t as useWorkflowActivate } from "./useWorkflowActivate-Dzfi3i8Q.js";
31
- import { n as generateVersionName, r as getLastPublishedVersion, t as formatTimestamp } from "./utils-BLHsa_NJ.js";
32
- import { t as WorkflowPreview_default } from "./WorkflowPreview-CYlgo0kD.js";
33
- import { t as useIntersectionObserver } from "./useIntersectionObserver-BZ6Jqnr3.js";
34
- var _hoisted_1$3 = ["datetime"];
35
- var _hoisted_2$1 = ["datetime"];
36
- var _hoisted_3 = ["value"];
37
- var _hoisted_4 = { key: 0 };
10
+ import "./sanitize-html-Cc45ZKm8.js";
11
+ import "./CalendarDate-zWqgZMlk.js";
12
+ import "./path-browserify-BtCDmZ3_.js";
13
+ 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-BiRoCM0c.js";
14
+ import "./merge-BmWPLD5Q.js";
15
+ import { r as useRootStore } from "./_baseOrderBy-xWA0TcWm.js";
16
+ import "./dateformat-CM9k0--B.js";
17
+ import "./useDebounce-BT72iAmz.js";
18
+ import "./executions.store-O0Cs6kyK.js";
19
+ import "./versions.store-BTPqbzUV.js";
20
+ import { t as usePageRedirectionHelper } from "./usePageRedirectionHelper-WQFPPEkJ.js";
21
+ import { t as useWorkflowActivate } from "./useWorkflowActivate-B8Z7d2ST.js";
22
+ import { i as getLastPublishedVersion, n as formatTimestamp, r as generateVersionName, t as computeTimelineEntries } from "./utils-C2GPI2gK.js";
23
+ import { t as WorkflowPreview_default } from "./WorkflowPreview-CEDUFgeD.js";
24
+ import { t as useIntersectionObserver } from "./useIntersectionObserver-DXKoRNFj.js";
38
25
  var WorkflowHistoryListItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
39
26
  __name: "WorkflowHistoryListItem",
40
27
  props: {
@@ -48,6 +35,10 @@ var WorkflowHistoryListItem_vue_vue_type_script_setup_true_lang_default = /* @__
48
35
  isVersionActive: {
49
36
  type: Boolean,
50
37
  default: false
38
+ },
39
+ isGrouped: {
40
+ type: Boolean,
41
+ default: false
51
42
  }
52
43
  },
53
44
  emits: [
@@ -60,11 +51,14 @@ var WorkflowHistoryListItem_vue_vue_type_script_setup_true_lang_default = /* @__
60
51
  const emit = __emit;
61
52
  const i18n = useI18n();
62
53
  const usersStore = useUsersStore();
63
- const actionsVisible$1 = ref(false);
54
+ const actionsVisible = ref(false);
64
55
  const itemElement = ref(null);
65
56
  const authorElement = ref(null);
66
57
  const isAuthorElementTruncated = ref(false);
67
- const isDraftPublishEnabled = true;
58
+ const checkAuthorTruncation = () => {
59
+ const el = authorElement.value?.$el;
60
+ if (el instanceof HTMLElement) isAuthorElementTruncated.value = el.scrollWidth > el.clientWidth;
61
+ };
68
62
  const formattedCreatedAt = computed(() => {
69
63
  const { date, time } = formatTimestamp(props.item.createdAt);
70
64
  return i18n.baseText("workflowHistory.item.createdAt", { interpolate: {
@@ -105,7 +99,6 @@ var WorkflowHistoryListItem_vue_vue_type_script_setup_true_lang_default = /* @__
105
99
  const user = usersStore.usersById[userId];
106
100
  return user?.fullName ?? user?.email ?? null;
107
101
  });
108
- const idLabel = computed(() => i18n.baseText("workflowHistory.item.id", { interpolate: { id: props.item.versionId } }));
109
102
  const onAction = (value) => {
110
103
  emit("action", {
111
104
  action: value,
@@ -118,7 +111,7 @@ var WorkflowHistoryListItem_vue_vue_type_script_setup_true_lang_default = /* @__
118
111
  });
119
112
  };
120
113
  const onVisibleChange = (visible) => {
121
- actionsVisible$1.value = visible;
114
+ actionsVisible.value = visible;
122
115
  };
123
116
  const onItemClick = (event) => {
124
117
  emit("preview", {
@@ -132,109 +125,149 @@ var WorkflowHistoryListItem_vue_vue_type_script_setup_true_lang_default = /* @__
132
125
  offsetTop: itemElement.value?.offsetTop ?? 0,
133
126
  isSelected: props.isSelected
134
127
  });
135
- isAuthorElementTruncated.value = (authorElement.value?.scrollWidth ?? 0) > (authorElement.value?.clientWidth ?? 0);
128
+ checkAuthorTruncation();
136
129
  });
137
130
  return (_ctx, _cache) => {
138
131
  return openBlock(), createElementBlock("li", {
139
132
  ref_key: "itemElement",
140
133
  ref: itemElement,
141
134
  "data-test-id": "workflow-history-list-item",
135
+ role: "button",
142
136
  class: normalizeClass({
143
137
  [_ctx.$style.item]: true,
144
138
  [_ctx.$style.selected]: props.isSelected,
145
- [_ctx.$style.actionsVisible]: actionsVisible$1.value
146
- })
147
- }, [renderSlot(_ctx.$slots, "default", { formattedCreatedAt: formattedCreatedAt.value }, () => [unref(isDraftPublishEnabled) ? (openBlock(), createElementBlock("p", {
148
- key: 0,
139
+ [_ctx.$style.actionsVisible]: actionsVisible.value,
140
+ [_ctx.$style.grouped]: props.isGrouped
141
+ }),
149
142
  onClick: onItemClick
150
- }, [
151
- versionName.value ? (openBlock(), createElementBlock("span", {
143
+ }, [createBaseVNode("span", { class: normalizeClass(_ctx.$style.timelineColumn) }, [!props.isGrouped ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [props.isVersionActive ? (openBlock(), createBlock(unref(N8nIcon_default), {
144
+ key: 0,
145
+ size: "large",
146
+ icon: "circle-check",
147
+ color: "success"
148
+ })) : (openBlock(), createElementBlock("span", {
149
+ key: 1,
150
+ class: normalizeClass(_ctx.$style.timelineMarker)
151
+ }, null, 2))], 64)) : (openBlock(), createElementBlock("span", {
152
+ key: 1,
153
+ class: normalizeClass(_ctx.$style.timelineLine)
154
+ }, 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), {
155
+ size: "small",
156
+ bold: true,
157
+ color: "text-dark",
158
+ class: normalizeClass(_ctx.$style.mainLine)
159
+ }, {
160
+ default: withCtx(() => [createTextVNode(toDisplayString(versionName.value), 1)]),
161
+ _: 1
162
+ }, 8, ["class"]), props.isVersionActive ? (openBlock(), createBlock(unref(N8nTooltip_default), {
163
+ key: 0,
164
+ placement: "top",
165
+ disabled: !publishedAt.value
166
+ }, {
167
+ content: withCtx(() => [createBaseVNode("div", { class: normalizeClass(_ctx.$style.tooltipContent) }, [createVNode(unref(N8nText_default), { size: "small" }, {
168
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("workflowHistory.item.publishedAtLabel")) + " " + toDisplayString(publishedAt.value), 1)]),
169
+ _: 1
170
+ }), publishedByUserName.value ? (openBlock(), createBlock(unref(N8nText_default), {
152
171
  key: 0,
153
- class: normalizeClass(_ctx.$style.mainLine)
154
- }, toDisplayString(versionName.value), 3)) : createCommentVNode("", true),
155
- createBaseVNode("time", {
156
- datetime: _ctx.item.createdAt,
157
- class: normalizeClass(_ctx.$style.metaItem)
158
- }, toDisplayString(unref(i18n).baseText("workflowHistory.item.savedAtLabel")) + " " + toDisplayString(formattedCreatedAt.value), 11, _hoisted_1$3),
159
- createVNode(unref(N8nTooltip_default), {
160
- placement: "right-end",
161
- disabled: authors.value.size < 2 && !isAuthorElementTruncated.value
172
+ size: "small"
162
173
  }, {
163
- content: withCtx(() => [createTextVNode(toDisplayString(props.item.authors), 1)]),
164
- default: withCtx(() => [createBaseVNode("span", {
165
- ref_key: "authorElement",
166
- ref: authorElement,
167
- class: normalizeClass(_ctx.$style.metaItem)
168
- }, toDisplayString(authors.value.label), 3)]),
174
+ default: withCtx(() => [createTextVNode(toDisplayString(publishedByUserName.value), 1)]),
169
175
  _: 1
170
- }, 8, ["disabled"])
171
- ])) : (openBlock(), createElementBlock("p", {
172
- key: 1,
173
- onClick: onItemClick
174
- }, [
175
- createBaseVNode("time", { datetime: _ctx.item.createdAt }, toDisplayString(formattedCreatedAt.value), 9, _hoisted_2$1),
176
- createVNode(unref(N8nTooltip_default), {
177
- placement: "right-end",
178
- disabled: authors.value.size < 2 && !isAuthorElementTruncated.value
176
+ })) : createCommentVNode("", true)], 2)]),
177
+ default: withCtx(() => [createVNode(unref(N8nBadge_default), {
178
+ size: "xsmall",
179
+ class: normalizeClass(_ctx.$style.publishedBadge),
180
+ "show-border": false
179
181
  }, {
180
- content: withCtx(() => [createTextVNode(toDisplayString(props.item.authors), 1)]),
181
- default: withCtx(() => [createBaseVNode("span", {
182
- ref_key: "authorElement",
183
- ref: authorElement
184
- }, toDisplayString(authors.value.label), 513)]),
182
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("workflowHistory.item.active")), 1)]),
185
183
  _: 1
186
- }, 8, ["disabled"]),
187
- createBaseVNode("data", { value: _ctx.item.versionId }, toDisplayString(idLabel.value), 9, _hoisted_3)
188
- ]))]), createBaseVNode("div", { class: normalizeClass(_ctx.$style.tail) }, [
189
- unref(isDraftPublishEnabled) && props.isVersionActive ? (openBlock(), createBlock(unref(N8nTooltip_default), {
190
- key: 0,
191
- placement: "top",
192
- disabled: !publishedAt.value
184
+ }, 8, ["class"])]),
185
+ _: 1
186
+ }, 8, ["disabled"])) : createCommentVNode("", true)], 2), createBaseVNode("div", { class: normalizeClass(_ctx.$style.metaRow) }, [createVNode(unref(N8nTooltip_default), {
187
+ placement: "right-end",
188
+ disabled: !isAuthorElementTruncated.value
189
+ }, {
190
+ content: withCtx(() => [createTextVNode(toDisplayString(props.item.authors), 1)]),
191
+ default: withCtx(() => [createVNode(unref(N8nText_default), {
192
+ ref_key: "authorElement",
193
+ ref: authorElement,
194
+ size: "small",
195
+ color: "text-base",
196
+ class: normalizeClass(_ctx.$style.metaItem)
193
197
  }, {
194
- content: withCtx(() => [createBaseVNode("div", { class: normalizeClass(_ctx.$style.tooltipContent) }, [createBaseVNode("span", null, toDisplayString(unref(i18n).baseText("workflowHistory.item.publishedAtLabel")) + " " + toDisplayString(publishedAt.value), 1), publishedByUserName.value ? (openBlock(), createElementBlock("span", _hoisted_4, toDisplayString(publishedByUserName.value), 1)) : createCommentVNode("", true)], 2)]),
195
- default: withCtx(() => [createVNode(unref(N8nBadge_default), {
196
- size: "medium",
197
- class: normalizeClass(_ctx.$style.publishedBadge),
198
- "show-border": false
199
- }, {
200
- default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("workflowHistory.item.active")), 1)]),
201
- _: 1
202
- }, 8, ["class"])]),
203
- _: 1
204
- }, 8, ["disabled"])) : createCommentVNode("", true),
205
- !unref(isDraftPublishEnabled) && props.index === 0 ? (openBlock(), createBlock(unref(N8nBadge_default), { key: 1 }, {
206
- default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("workflowHistory.item.latest")), 1)]),
198
+ default: withCtx(() => [createTextVNode(toDisplayString(authors.value.label) + ", ", 1)]),
207
199
  _: 1
208
- })) : createCommentVNode("", true),
209
- createVNode(unref(N8nActionToggle_default), {
210
- theme: "dark",
211
- class: normalizeClass(_ctx.$style.actions),
212
- actions: props.actions,
213
- placement: "bottom-end",
214
- onAction,
215
- onClick: _cache[0] || (_cache[0] = withModifiers(() => {}, ["stop"])),
216
- onVisibleChange
200
+ }, 8, ["class"])]),
201
+ _: 1
202
+ }, 8, ["disabled"]), createVNode(unref(N8nText_default), {
203
+ tag: "time",
204
+ size: "small",
205
+ color: "text-base",
206
+ class: normalizeClass(_ctx.$style.metaItem)
207
+ }, {
208
+ default: withCtx(() => [createTextVNode(toDisplayString(formattedCreatedAt.value), 1)]),
209
+ _: 1
210
+ }, 8, ["class"])], 2)], 64)) : (openBlock(), createElementBlock("div", {
211
+ key: 1,
212
+ class: normalizeClass(_ctx.$style.unnamedRow)
213
+ }, [createVNode(unref(N8nTooltip_default), {
214
+ placement: "right-end",
215
+ disabled: !isAuthorElementTruncated.value
216
+ }, {
217
+ content: withCtx(() => [createTextVNode(toDisplayString(props.item.authors), 1)]),
218
+ default: withCtx(() => [createVNode(unref(N8nText_default), {
219
+ ref_key: "authorElement",
220
+ ref: authorElement,
221
+ size: "small",
222
+ color: "text-base",
223
+ class: normalizeClass(_ctx.$style.unnamedAuthor)
217
224
  }, {
218
- default: withCtx(() => [renderSlot(_ctx.$slots, "action-toggle-button")]),
219
- _: 3
220
- }, 8, ["class", "actions"])
221
- ], 2)], 2);
225
+ default: withCtx(() => [createTextVNode(toDisplayString(authors.value.label) + ", ", 1)]),
226
+ _: 1
227
+ }, 8, ["class"])]),
228
+ _: 1
229
+ }, 8, ["disabled"]), createVNode(unref(N8nText_default), {
230
+ tag: "time",
231
+ size: "small",
232
+ color: "text-base",
233
+ class: normalizeClass(_ctx.$style.unnamedTime)
234
+ }, {
235
+ default: withCtx(() => [createTextVNode(toDisplayString(formattedCreatedAt.value), 1)]),
236
+ _: 1
237
+ }, 8, ["class"])], 2))], 2), createVNode(unref(N8nActionToggle_default), {
238
+ class: normalizeClass(_ctx.$style.actions),
239
+ actions: props.actions,
240
+ placement: "bottom-end",
241
+ onAction,
242
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {}, ["stop"])),
243
+ onVisibleChange
244
+ }, null, 8, ["class", "actions"])], 2)], 2);
222
245
  };
223
246
  }
224
247
  });
225
248
  var WorkflowHistoryListItem_vue_vue_type_style_index_0_lang_module_default = {
226
- item: "_item_hpps2_123",
227
- mainLine: "_mainLine_hpps2_155",
228
- metaItem: "_metaItem_hpps2_161",
229
- tail: "_tail_hpps2_173",
230
- selected: "_selected_hpps2_178",
231
- actionsVisible: "_actionsVisible_hpps2_185",
232
- actions: "_actions_hpps2_185",
233
- publishedBadge: "_publishedBadge_hpps2_194",
234
- tooltipContent: "_tooltipContent_hpps2_203"
249
+ item: "_item_18356_123",
250
+ grouped: "_grouped_18356_134",
251
+ selected: "_selected_18356_134",
252
+ wrapper: "_wrapper_18356_152",
253
+ timelineColumn: "_timelineColumn_18356_165",
254
+ timelineMarker: "_timelineMarker_18356_176",
255
+ timelineLine: "_timelineLine_18356_184",
256
+ content: "_content_18356_192",
257
+ mainRow: "_mainRow_18356_200",
258
+ mainLine: "_mainLine_18356_206",
259
+ metaRow: "_metaRow_18356_212",
260
+ metaItem: "_metaItem_18356_219",
261
+ unnamedRow: "_unnamedRow_18356_226",
262
+ unnamedAuthor: "_unnamedAuthor_18356_231",
263
+ unnamedTime: "_unnamedTime_18356_238",
264
+ actions: "_actions_18356_242",
265
+ publishedBadge: "_publishedBadge_18356_247",
266
+ tooltipContent: "_tooltipContent_18356_252"
235
267
  };
236
268
  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 }]]);
237
- var _hoisted_1$2 = ["aria-label"];
269
+ var _hoisted_1$2 = ["aria-expanded", "onClick"];
270
+ var _hoisted_2$1 = ["aria-label"];
238
271
  var WorkflowHistoryList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
239
272
  __name: "WorkflowHistoryList",
240
273
  props: {
@@ -259,15 +292,35 @@ var WorkflowHistoryList_vue_vue_type_script_setup_true_lang_default = /* @__PURE
259
292
  const emit = __emit;
260
293
  const i18n = useI18n();
261
294
  const listElement = ref(null);
295
+ const loadMoreSentinel = ref(null);
262
296
  const shouldAutoScroll = ref(true);
297
+ const expandedGroups = reactive(/* @__PURE__ */ new Set());
298
+ const timelineEntries = computed(() => {
299
+ return computeTimelineEntries(props.items);
300
+ });
301
+ const toggleGroup = (groupId) => {
302
+ if (expandedGroups.has(groupId)) expandedGroups.delete(groupId);
303
+ else expandedGroups.add(groupId);
304
+ };
305
+ const hasMoreItems = computed(() => props.lastReceivedItemsLength === props.requestNumberOfItems);
263
306
  const { observe: observeForLoadMore } = useIntersectionObserver({
264
307
  root: listElement,
265
308
  threshold: .01,
266
- onIntersect: () => emit("loadMore", {
267
- take: props.requestNumberOfItems,
268
- skip: props.items.length
269
- })
309
+ onIntersect: () => {
310
+ shouldAutoScroll.value = false;
311
+ emit("loadMore", {
312
+ take: props.requestNumberOfItems,
313
+ skip: props.items.length
314
+ });
315
+ }
270
316
  });
317
+ watch([
318
+ loadMoreSentinel,
319
+ hasMoreItems,
320
+ () => props.items.length
321
+ ], ([sentinel$1, canLoadMore]) => {
322
+ if (sentinel$1 && canLoadMore) observeForLoadMore(sentinel$1);
323
+ }, { immediate: true });
271
324
  const getActions = (item$1, index) => {
272
325
  let filteredActions = props.actions;
273
326
  if (index === 0) filteredActions = filteredActions.filter((action) => action.value !== "restore");
@@ -290,7 +343,7 @@ var WorkflowHistoryList_vue_vue_type_script_setup_true_lang_default = /* @__PURE
290
343
  id
291
344
  });
292
345
  };
293
- const onItemMounted = ({ index, offsetTop, isSelected }) => {
346
+ const onItemMounted = ({ offsetTop, isSelected }) => {
294
347
  if (isSelected && shouldAutoScroll.value) {
295
348
  shouldAutoScroll.value = false;
296
349
  listElement.value?.scrollTo({
@@ -298,7 +351,6 @@ var WorkflowHistoryList_vue_vue_type_script_setup_true_lang_default = /* @__PURE
298
351
  behavior: "smooth"
299
352
  });
300
353
  }
301
- if (index === props.items.length - 1 && props.lastReceivedItemsLength === props.requestNumberOfItems) observeForLoadMore(listElement.value?.children[index]);
302
354
  };
303
355
  return (_ctx, _cache) => {
304
356
  return openBlock(), createElementBlock("ul", {
@@ -307,33 +359,75 @@ var WorkflowHistoryList_vue_vue_type_script_setup_true_lang_default = /* @__PURE
307
359
  class: normalizeClass(_ctx.$style.list),
308
360
  "data-test-id": "workflow-history-list"
309
361
  }, [
310
- (openBlock(true), createElementBlock(Fragment, null, renderList(props.items, (item$1, index) => {
311
- return openBlock(), createBlock(WorkflowHistoryListItem_default, {
312
- key: item$1.versionId,
313
- index,
314
- item: item$1,
315
- "is-selected": item$1.versionId === props.selectedItem?.versionId,
316
- "is-version-active": item$1.versionId === props.activeVersionId,
317
- actions: getActions(item$1, index),
318
- onAction,
319
- onPreview,
320
- onMounted: onItemMounted
321
- }, null, 8, [
322
- "index",
323
- "item",
324
- "is-selected",
325
- "is-version-active",
326
- "actions"
327
- ]);
362
+ (openBlock(true), createElementBlock(Fragment, null, renderList(timelineEntries.value, (entry) => {
363
+ return openBlock(), createElementBlock(Fragment, { key: entry.type === "version" ? entry.item.versionId : entry.groupId }, [
364
+ entry.type === "group-header" ? (openBlock(), createElementBlock("li", {
365
+ key: 0,
366
+ class: normalizeClass(_ctx.$style.groupHeader),
367
+ "aria-expanded": expandedGroups.has(entry.groupId),
368
+ role: "button",
369
+ "data-test-id": "workflow-history-group-header",
370
+ onClick: ($event) => toggleGroup(entry.groupId)
371
+ }, [createVNode(unref(N8nIcon_default), {
372
+ class: normalizeClass([_ctx.$style.groupTimelineColumn, _ctx.$style.groupChevron]),
373
+ icon: expandedGroups.has(entry.groupId) ? "chevron-down" : "chevron-right",
374
+ size: "small"
375
+ }, null, 8, ["class", "icon"]), createVNode(unref(N8nText_default), {
376
+ color: "text-base",
377
+ size: "small"
378
+ }, {
379
+ default: withCtx(() => [createTextVNode(toDisplayString(unref(i18n).baseText("workflowHistory.group.unnamedVersions", {
380
+ adjustToNumber: entry.count,
381
+ interpolate: { count: String(entry.count) }
382
+ })), 1)]),
383
+ _: 2
384
+ }, 1024)], 10, _hoisted_1$2)) : createCommentVNode("", true),
385
+ entry.type === "group-header" && expandedGroups.has(entry.groupId) ? (openBlock(true), createElementBlock(Fragment, { key: 1 }, renderList(entry.versions, (versionEntry) => {
386
+ return openBlock(), createBlock(WorkflowHistoryListItem_default, {
387
+ key: versionEntry.item.versionId,
388
+ index: versionEntry.originalIndex,
389
+ item: versionEntry.item,
390
+ "is-selected": versionEntry.item.versionId === props.selectedItem?.versionId,
391
+ "is-version-active": versionEntry.item.versionId === props.activeVersionId,
392
+ actions: getActions(versionEntry.item, versionEntry.originalIndex),
393
+ "is-grouped": true,
394
+ onAction,
395
+ onPreview,
396
+ onMounted: onItemMounted
397
+ }, null, 8, [
398
+ "index",
399
+ "item",
400
+ "is-selected",
401
+ "is-version-active",
402
+ "actions"
403
+ ]);
404
+ }), 128)) : createCommentVNode("", true),
405
+ entry.type === "version" ? (openBlock(), createBlock(WorkflowHistoryListItem_default, {
406
+ key: 2,
407
+ index: entry.originalIndex,
408
+ item: entry.item,
409
+ "is-selected": entry.item.versionId === props.selectedItem?.versionId,
410
+ "is-version-active": entry.item.versionId === props.activeVersionId,
411
+ actions: getActions(entry.item, entry.originalIndex),
412
+ onAction,
413
+ onPreview,
414
+ onMounted: onItemMounted
415
+ }, null, 8, [
416
+ "index",
417
+ "item",
418
+ "is-selected",
419
+ "is-version-active",
420
+ "actions"
421
+ ])) : createCommentVNode("", true)
422
+ ], 64);
328
423
  }), 128)),
329
- !props.items.length && !props.isListLoading ? (openBlock(), createElementBlock("li", {
424
+ props.items.length && hasMoreItems.value ? (openBlock(), createElementBlock("li", {
330
425
  key: 0,
331
- class: normalizeClass(_ctx.$style.empty)
332
- }, [
333
- createTextVNode(toDisplayString(unref(i18n).baseText("workflowHistory.empty")) + " ", 1),
334
- _cache[1] || (_cache[1] = createBaseVNode("br", null, null, -1)),
335
- createTextVNode(" " + toDisplayString(unref(i18n).baseText("workflowHistory.hint")), 1)
336
- ], 2)) : createCommentVNode("", true),
426
+ ref_key: "loadMoreSentinel",
427
+ ref: loadMoreSentinel,
428
+ class: normalizeClass(_ctx.$style.sentinel),
429
+ "aria-hidden": "true"
430
+ }, null, 2)) : createCommentVNode("", true),
337
431
  props.isListLoading ? (openBlock(), createElementBlock("li", {
338
432
  key: 1,
339
433
  class: normalizeClass(_ctx.$style.loader),
@@ -354,7 +448,7 @@ var WorkflowHistoryList_vue_vue_type_script_setup_true_lang_default = /* @__PURE
354
448
  rows: 3,
355
449
  class: "mb-xs"
356
450
  })
357
- ], 10, _hoisted_1$2)) : createCommentVNode("", true),
451
+ ], 10, _hoisted_2$1)) : createCommentVNode("", true),
358
452
  props.shouldUpgrade ? (openBlock(), createElementBlock("li", {
359
453
  key: 2,
360
454
  class: normalizeClass(_ctx.$style.retention)
@@ -374,10 +468,13 @@ var WorkflowHistoryList_vue_vue_type_script_setup_true_lang_default = /* @__PURE
374
468
  }
375
469
  });
376
470
  var WorkflowHistoryList_vue_vue_type_style_index_0_lang_module_default = {
377
- list: "_list_1i94b_123",
378
- empty: "_empty_1i94b_132",
379
- loader: "_loader_1i94b_145",
380
- retention: "_retention_1i94b_149"
471
+ list: "_list_1dkdi_123",
472
+ loader: "_loader_1dkdi_133",
473
+ sentinel: "_sentinel_1dkdi_137",
474
+ retention: "_retention_1dkdi_141",
475
+ groupHeader: "_groupHeader_1dkdi_149",
476
+ groupTimelineColumn: "_groupTimelineColumn_1dkdi_168",
477
+ groupChevron: "_groupChevron_1dkdi_172"
381
478
  };
382
479
  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 }]]);
383
480
  var _hoisted_1$1 = ["datetime"];
@@ -430,18 +527,23 @@ var WorkflowHistoryContent_vue_vue_type_script_setup_true_lang_default = /* @__P
430
527
  const toggleDescription = () => {
431
528
  isDescriptionExpanded.value = !isDescriptionExpanded.value;
432
529
  };
433
- const actions$1 = computed(() => {
530
+ const actions$2 = computed(() => {
434
531
  let filteredActions = props.actions;
435
532
  if (props.isFirstItemShown) filteredActions = filteredActions.filter((action) => action.value !== "restore");
436
533
  if (props.isVersionActive) filteredActions = filteredActions.filter((action) => action.value !== "publish");
437
534
  else filteredActions = filteredActions.filter((action) => action.value !== "unpublish");
438
535
  return filteredActions;
439
536
  });
440
- const onAction = ({ action, id, data }) => {
537
+ const onAction = (value) => {
538
+ if (!props.workflowVersion) return;
441
539
  emit("action", {
442
- action,
443
- id,
444
- data
540
+ action: value,
541
+ id: props.workflowVersion.versionId,
542
+ data: {
543
+ formattedCreatedAt: formattedCreatedAt.value,
544
+ versionName: versionNameDisplay.value,
545
+ description: description.value
546
+ }
445
547
  });
446
548
  };
447
549
  watch(() => props.workflowVersion, () => {
@@ -453,54 +555,54 @@ var WorkflowHistoryContent_vue_vue_type_script_setup_true_lang_default = /* @__P
453
555
  workflow: workflowVersionPreview.value,
454
556
  loading: props.isListLoading,
455
557
  "loader-type": "spinner"
456
- }, null, 8, ["workflow", "loading"])) : createCommentVNode("", true), createBaseVNode("ul", { class: normalizeClass(_ctx.$style.info) }, [props.workflowVersion ? (openBlock(), createBlock(WorkflowHistoryListItem_default, {
558
+ }, null, 8, ["workflow", "loading"])) : createCommentVNode("", true), props.workflowVersion ? (openBlock(), createElementBlock("div", {
559
+ key: 1,
560
+ class: normalizeClass(_ctx.$style.info)
561
+ }, [createBaseVNode("div", { class: normalizeClass(_ctx.$style.card) }, [unref(isDraftPublishEnabled) ? (openBlock(), createElementBlock("div", {
457
562
  key: 0,
458
- class: normalizeClass(_ctx.$style.card),
459
- index: -1,
460
- item: props.workflowVersion,
461
- "is-selected": false,
462
- actions: actions$1.value,
463
- onAction
563
+ class: normalizeClass(_ctx.$style.descriptionBox)
564
+ }, [versionNameDisplay.value ? (openBlock(), createBlock(unref(N8nTooltip_default), {
565
+ key: 0,
566
+ content: versionNameDisplay.value
464
567
  }, {
465
- default: withCtx(({ formattedCreatedAt: formattedCreatedAt$1 }) => [unref(isDraftPublishEnabled) ? (openBlock(), createElementBlock("div", {
466
- key: 0,
467
- class: normalizeClass(_ctx.$style.descriptionBox)
468
- }, [versionNameDisplay.value ? (openBlock(), createBlock(unref(N8nTooltip_default), {
469
- key: 0,
470
- content: versionNameDisplay.value
568
+ default: withCtx(() => [createVNode(unref(N8nText_default), {
569
+ class: normalizeClass(_ctx.$style.mainLine),
570
+ bold: "",
571
+ color: "text-dark"
471
572
  }, {
472
- default: withCtx(() => [createVNode(unref(N8nText_default), {
473
- class: normalizeClass(_ctx.$style.mainLine),
474
- bold: "",
475
- color: "text-dark"
476
- }, {
477
- default: withCtx(() => [createTextVNode(toDisplayString(versionNameDisplay.value), 1)]),
478
- _: 1
479
- }, 8, ["class"])]),
573
+ default: withCtx(() => [createTextVNode(toDisplayString(versionNameDisplay.value), 1)]),
480
574
  _: 1
481
- }, 8, ["content"])) : createCommentVNode("", true), description.value ? (openBlock(), createBlock(unref(N8nText_default), {
482
- key: 1,
575
+ }, 8, ["class"])]),
576
+ _: 1
577
+ }, 8, ["content"])) : createCommentVNode("", true), description.value ? (openBlock(), createBlock(unref(N8nText_default), {
578
+ key: 1,
579
+ size: "small",
580
+ color: "text-base"
581
+ }, {
582
+ default: withCtx(() => [createTextVNode(toDisplayString(displayDescription.value) + " ", 1), isDescriptionLong.value ? (openBlock(), createBlock(unref(N8nLink_default), {
583
+ key: 0,
483
584
  size: "small",
484
- color: "text-base"
585
+ onClick: toggleDescription
485
586
  }, {
486
- default: withCtx(() => [createTextVNode(toDisplayString(displayDescription.value) + " ", 1), isDescriptionLong.value ? (openBlock(), createBlock(unref(N8nLink_default), {
487
- key: 0,
488
- size: "small",
489
- onClick: toggleDescription
490
- }, {
491
- default: withCtx(() => [createTextVNode(toDisplayString(isDescriptionExpanded.value ? unref(i18n).baseText("generic.showLess") : unref(i18n).baseText("generic.showMore")), 1)]),
492
- _: 1
493
- })) : createCommentVNode("", true)]),
587
+ default: withCtx(() => [createTextVNode(toDisplayString(isDescriptionExpanded.value ? unref(i18n).baseText("generic.showLess") : unref(i18n).baseText("generic.showMore")), 1)]),
494
588
  _: 1
495
- })) : createCommentVNode("", true)], 2)) : (openBlock(), createElementBlock("section", {
496
- key: 1,
497
- class: normalizeClass(_ctx.$style.textOld)
498
- }, [
499
- 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$1), 9, _hoisted_1$1)]),
500
- 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)]),
501
- 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)])
502
- ], 2))]),
503
- "action-toggle-button": withCtx(() => [createVNode(unref(N8nButton_default), {
589
+ })) : createCommentVNode("", true)]),
590
+ _: 1
591
+ })) : createCommentVNode("", true)], 2)) : (openBlock(), createElementBlock("section", {
592
+ key: 1,
593
+ class: normalizeClass(_ctx.$style.textOld)
594
+ }, [
595
+ 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)]),
596
+ 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)]),
597
+ 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)])
598
+ ], 2)), createVNode(unref(N8nActionToggle_default), {
599
+ class: normalizeClass(_ctx.$style.actions),
600
+ actions: actions$2.value,
601
+ placement: "bottom-end",
602
+ "data-test-id": "workflow-history-content-actions",
603
+ onAction
604
+ }, {
605
+ default: withCtx(() => [createVNode(unref(N8nButton_default), {
504
606
  type: "tertiary",
505
607
  size: "large",
506
608
  "data-test-id": "action-toggle-button"
@@ -513,76 +615,21 @@ var WorkflowHistoryContent_vue_vue_type_script_setup_true_lang_default = /* @__P
513
615
  _: 1
514
616
  })]),
515
617
  _: 1
516
- }, 8, [
517
- "class",
518
- "item",
519
- "actions"
520
- ])) : createCommentVNode("", true)], 2)], 2);
618
+ }, 8, ["class", "actions"])], 2)], 2)) : createCommentVNode("", true)], 2);
521
619
  };
522
620
  }
523
621
  });
524
622
  var WorkflowHistoryContent_vue_vue_type_style_index_0_lang_module_default = {
525
- content: "_content_1x7a8_123",
526
- info: "_info_1x7a8_133",
527
- card: "_card_1x7a8_141",
528
- descriptionBox: "_descriptionBox_1x7a8_146",
529
- mainLine: "_mainLine_1x7a8_157",
530
- textOld: "_textOld_1x7a8_163",
531
- label: "_label_1x7a8_188"
623
+ content: "_content_1m14m_123",
624
+ info: "_info_1m14m_133",
625
+ card: "_card_1m14m_141",
626
+ descriptionBox: "_descriptionBox_1m14m_148",
627
+ mainLine: "_mainLine_1m14m_160",
628
+ textOld: "_textOld_1m14m_167",
629
+ label: "_label_1m14m_202",
630
+ actions: "_actions_1m14m_207"
532
631
  };
533
632
  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 }]]);
534
- var import_FileSaver_min = /* @__PURE__ */ __toESM(require_FileSaver_min());
535
- const useWorkflowHistoryStore = defineStore("workflowHistory", () => {
536
- const rootStore = useRootStore();
537
- const settingsStore = useSettingsStore();
538
- const workflowsStore = useWorkflowsStore();
539
- const licensePruneTime = computed(() => settingsStore.settings.workflowHistory.licensePruneTime);
540
- const evaluatedPruneTime = computed(() => settingsStore.settings.workflowHistory.pruneTime);
541
- const shouldUpgrade = computed(() => licensePruneTime.value !== -1 && licensePruneTime.value === evaluatedPruneTime.value);
542
- const getWorkflowHistory$1 = async (workflowId, queryParams) => await getWorkflowHistory(rootStore.restApiContext, workflowId, queryParams);
543
- const getWorkflowVersion$1 = async (workflowId, versionId) => await getWorkflowVersion(rootStore.restApiContext, workflowId, versionId);
544
- const downloadVersion = async (workflowId, workflowVersionId, data) => {
545
- const [workflow, workflowVersion] = await Promise.all([workflowsStore.fetchWorkflow(workflowId), getWorkflowVersion$1(workflowId, workflowVersionId)]);
546
- const { connections, nodes } = workflowVersion;
547
- (0, import_FileSaver_min.saveAs)(new Blob([JSON.stringify({
548
- ...workflow,
549
- nodes,
550
- connections
551
- }, null, 2)], { type: "application/json;charset=utf-8" }), `${workflow.name}(${data.formattedCreatedAt}).json`);
552
- };
553
- const cloneIntoNewWorkflow = async (workflowId, workflowVersionId, data) => {
554
- const [workflow, workflowVersion] = await Promise.all([workflowsStore.fetchWorkflow(workflowId), getWorkflowVersion$1(workflowId, workflowVersionId)]);
555
- const { connections, nodes } = workflowVersion;
556
- const { name } = workflow;
557
- const newWorkflowData = {
558
- nodes,
559
- connections,
560
- name: (await getNewWorkflow(rootStore.restApiContext, { name: `${name} (${data.formattedCreatedAt})` })).name
561
- };
562
- return await workflowsStore.createNewWorkflow(newWorkflowData);
563
- };
564
- const restoreWorkflow = async (workflowId, workflowVersionId, shouldDeactivate) => {
565
- const { connections, nodes } = await getWorkflowVersion$1(workflowId, workflowVersionId);
566
- const updateData = {
567
- connections,
568
- nodes
569
- };
570
- if (shouldDeactivate) updateData.active = false;
571
- return await workflowsStore.updateWorkflow(workflowId, updateData, true).catch(async (error) => {
572
- if (error.httpStatusCode === 400 && typeof error.message === "string" && error.message.includes("can not be activated")) return await workflowsStore.fetchWorkflow(workflowId);
573
- else throw new Error(error);
574
- });
575
- };
576
- return {
577
- getWorkflowHistory: getWorkflowHistory$1,
578
- getWorkflowVersion: getWorkflowVersion$1,
579
- downloadVersion,
580
- cloneIntoNewWorkflow,
581
- restoreWorkflow,
582
- evaluatedPruneTime,
583
- shouldUpgrade
584
- };
585
- });
586
633
  var _hoisted_1 = { key: 0 };
587
634
  var WorkflowHistoryVersionRestoreModalActions = /* @__PURE__ */ function(WorkflowHistoryVersionRestoreModalActions$1) {
588
635
  WorkflowHistoryVersionRestoreModalActions$1["restore"] = "restore";
@@ -631,7 +678,7 @@ var WorkflowHistory_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
631
678
  const workflowActiveVersionId = computed(() => {
632
679
  return workflowsStore.getWorkflowById(workflowId.value)?.activeVersion?.versionId;
633
680
  });
634
- const actions$1 = computed(() => workflowHistoryActionTypes.filter((value) => !(value === "publish" && activeWorkflow.value?.isArchived)).map((value) => ({
681
+ const actions$2 = computed(() => workflowHistoryActionTypes.filter((value) => !(value === "publish" && activeWorkflow.value?.isArchived)).map((value) => ({
635
682
  label: i18n.baseText(`workflowHistory.item.actions.${value}`),
636
683
  disabled: value === "clone" && !workflowPermissions.value.create || value === "restore" && !workflowPermissions.value.update || (value === "publish" || value === "unpublish") && !workflowPermissions.value.update,
637
684
  value
@@ -699,8 +746,17 @@ var WorkflowHistory_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
699
746
  });
700
747
  };
701
748
  const restoreWorkflowVersion = async (id, data) => {
702
- await workflowsStore.fetchWorkflow(workflowId.value);
703
- activeWorkflow.value = await workflowHistoryStore.restoreWorkflow(workflowId.value, id, false);
749
+ const workflow = await workflowsStore.fetchWorkflow(workflowId.value);
750
+ let deactivateAndRestore = false;
751
+ const versionIdBeforeRestore = workflow.versionId;
752
+ activeWorkflow.value = await workflowHistoryStore.restoreWorkflow(workflowId.value, id, deactivateAndRestore);
753
+ if (activeWorkflow.value.versionId === versionIdBeforeRestore) {
754
+ toast.showMessage({
755
+ title: i18n.baseText("workflowHistory.action.restore.alreadyRestored"),
756
+ type: "info"
757
+ });
758
+ return;
759
+ }
704
760
  workflowHistory.value = (await workflowHistoryStore.getWorkflowHistory(workflowId.value, { take: 1 })).concat(workflowHistory.value);
705
761
  toast.showMessage({
706
762
  title: i18n.baseText("workflowHistory.action.restore.success.title"),
@@ -862,7 +918,7 @@ var WorkflowHistory_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
862
918
  items: workflowHistory.value,
863
919
  "last-received-items-length": lastReceivedItemsLength.value,
864
920
  "selected-item": selectedWorkflowVersion.value,
865
- actions: actions$1.value,
921
+ actions: actions$2.value,
866
922
  "request-number-of-items": requestNumberOfItems.value,
867
923
  "should-upgrade": unref(workflowHistoryStore).shouldUpgrade,
868
924
  "evaluated-prune-days": evaluatedPruneDays.value,
@@ -888,7 +944,7 @@ var WorkflowHistory_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
888
944
  workflow: activeWorkflow.value,
889
945
  "workflow-version": selectedWorkflowVersion.value,
890
946
  "is-version-active": selectedWorkflowVersion.value?.versionId === workflowActiveVersionId.value,
891
- actions: actions$1.value,
947
+ actions: actions$2.value,
892
948
  "is-list-loading": isListLoading.value,
893
949
  "is-first-item-shown": isFirstItemShown.value,
894
950
  onAction
@@ -905,11 +961,11 @@ var WorkflowHistory_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
905
961
  }
906
962
  });
907
963
  var WorkflowHistory_vue_vue_type_style_index_0_lang_module_default = {
908
- view: "_view_ley84_123",
909
- header: "_header_ley84_133",
910
- corner: "_corner_ley84_141",
911
- contentComponentWrapper: "_contentComponentWrapper_ley84_152",
912
- listComponentWrapper: "_listComponentWrapper_ley84_157"
964
+ view: "_view_1q9dy_123",
965
+ header: "_header_1q9dy_133",
966
+ corner: "_corner_1q9dy_141",
967
+ contentComponentWrapper: "_contentComponentWrapper_1q9dy_152",
968
+ listComponentWrapper: "_listComponentWrapper_1q9dy_157"
913
969
  };
914
970
  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 }]]);
915
971
  export { WorkflowHistory_default as default };