n8n-editor-ui 1.106.3 → 1.107.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 (131) hide show
  1. package/dist/assets/AddDataStoreModal-D3j8deoq.css +133 -0
  2. package/dist/assets/AddDataStoreModal-DnuHX1S2.js +108 -0
  3. package/dist/assets/{AnimatedSpinner-D3ljAc96.js → AnimatedSpinner-6v6irDSW.js} +1 -1
  4. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BnwFrfgh.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-ozlwYXWj.js} +1 -1
  5. package/dist/assets/{AuthView-Ku2373Sr.js → AuthView-BJQzJmO7.js} +9 -9
  6. package/dist/assets/{AuthView-DZB9HITQ.css → AuthView-CWVio_MZ.css} +9 -9
  7. package/dist/assets/{ChangePasswordView-Skwn2QGk.js → ChangePasswordView-AJr06gB_.js} +3 -3
  8. package/dist/assets/CollectionParameter-78DalTOi.js +4 -0
  9. package/dist/assets/{ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-BNkO3XxQ.js → ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-BW0CieDo.js} +1 -1
  10. package/dist/assets/{CredentialsView-C6V_m3u-.js → CredentialsView-CXub2k-f.js} +8 -8
  11. package/dist/assets/{DataStoreView-5Dr8wZrK.js → DataStoreView-CM5VvI7D.js} +150 -71
  12. package/dist/assets/{DataStoreView-bZrewhaR.css → DataStoreView-D-Wmcgs5.css} +15 -10
  13. package/dist/assets/{DemoFooter-Dp-EiWsO.js → DemoFooter-B3t7CS9X.js} +6 -6
  14. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-BO3rV-x9.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-xgH7GJvn.js} +1 -1
  15. package/dist/assets/{EntityNotFound-O4ORqb15.js → EntityNotFound-C3W-Gouk.js} +3 -6
  16. package/dist/assets/{EntityNotFound-CBu7H3J_.css → EntityNotFound-DvXhVSfv.css} +2 -2
  17. package/dist/assets/{EntityUnAuthorised-DDEfWc5w.js → EntityUnAuthorised-Du_1dCDH.js} +1 -1
  18. package/dist/assets/{ErrorView-DQ0b3uWF.js → ErrorView-B4s983XH.js} +1 -1
  19. package/dist/assets/{EvaluationsRootView-BalOBb-M.js → EvaluationsRootView-2xzNr5pT.js} +19 -5
  20. package/dist/assets/{EvaluationsView-Dl30Shle.js → EvaluationsView-CWy0SffW.js} +3 -3
  21. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-dShXDoGB.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-DBWrBSV7.js} +2 -2
  22. package/dist/assets/{ExecutionsView-B5Jh1Slf.js → ExecutionsView-DUoLBkxb.js} +8 -8
  23. package/dist/assets/{FixedCollectionParameter-CEzpjeQZ.css → FixedCollectionParameter-DTkvAml6.css} +18 -18
  24. package/dist/assets/{FixedCollectionParameter-4ZwUaGbi.js → FixedCollectionParameter-xSZHY6A2.js} +4 -3
  25. package/dist/assets/{ForgotMyPasswordView-DynIpDPH.js → ForgotMyPasswordView-DgKin1FL.js} +3 -3
  26. package/dist/assets/{InfoAccordion-MlURVMcX.js → InfoAccordion-BoIzf-yz.js} +1 -1
  27. package/dist/assets/{InsightsChartAverageRuntime-BgEppbrD.js → InsightsChartAverageRuntime-CWGu6ocC.js} +4 -4
  28. package/dist/assets/{InsightsChartFailed-B9pKFsLn.js → InsightsChartFailed-BBlIfrXu.js} +4 -4
  29. package/dist/assets/{InsightsChartFailureRate-BWblqNp_.js → InsightsChartFailureRate-CXhB2MIz.js} +4 -4
  30. package/dist/assets/{InsightsChartTimeSaved-Bsjt89_E.js → InsightsChartTimeSaved-C7d5mIdl.js} +4 -4
  31. package/dist/assets/{InsightsChartTotal-D9mguvTz.js → InsightsChartTotal-DBS3cVYs.js} +4 -4
  32. package/dist/assets/{InsightsDashboard-BFQzAJ30.js → InsightsDashboard-D2CF6m01.js} +10 -10
  33. package/dist/assets/{InsightsPaywall-ol8lMMqv.js → InsightsPaywall-CWEHpnSN.js} +1 -1
  34. package/dist/assets/{InsightsSummary-DuEa77Gq.js → InsightsSummary-7514XMdb.js} +1 -1
  35. package/dist/assets/{InsightsTableWorkflows-CKfAgykg.js → InsightsTableWorkflows-CQZmCGc2.js} +4 -4
  36. package/dist/assets/{Logo-BOrUbRLm.js → Logo-CtGKRONY.js} +7 -7
  37. package/dist/assets/{Logo-DLBj1gMw.css → Logo-DaegEk2m.css} +9 -9
  38. package/dist/assets/{LogsPanel-lijAjBs3.js → LogsPanel-CIAt3lTg.js} +8 -10
  39. package/dist/assets/{MainHeader-qSHM1Rvp.css → MainHeader-C7eM_NQZ.css} +203 -115
  40. package/dist/assets/{MainHeader-CnzavsYg.js → MainHeader-DmIxSulT.js} +435 -66
  41. package/dist/assets/{MainSidebar-YKfo6G0t.js → MainSidebar-IXI0NYYP.js} +2 -2
  42. package/dist/assets/{NodeCreation-DfOnzJmi.js → NodeCreation-DqXKrY6w.js} +3 -3
  43. package/dist/assets/{NodeCreator-NztmH4n_.js → NodeCreator-CI6mRPpP.js} +104 -45
  44. package/dist/assets/{NodeCreator-Cb92WDsx.css → NodeCreator-COgNP4W1.css} +39 -31
  45. package/dist/assets/{NodeDetailsView-DzhT36su.js → NodeDetailsView-BLAGih5E.js} +27 -27
  46. package/dist/assets/{NodeDetailsView-Cam4nPwL.css → NodeDetailsView-CjdovDgq.css} +16 -16
  47. package/dist/assets/{NodeDetailsViewV2-LzYZcnv5.css → NodeDetailsViewV2-Bn1PbAPe.css} +18 -22
  48. package/dist/assets/{NodeDetailsViewV2-CVLb9jZL.js → NodeDetailsViewV2-zTI7VLUX.js} +28 -28
  49. package/dist/assets/{NodeView-CFpi2pKv.js → NodeView-CFuNDv8s.js} +118 -76
  50. package/dist/assets/{NodeView-BMiOpmk4.css → NodeView-CiaJbQtZ.css} +12 -9
  51. package/dist/assets/{ProjectHeader-C_V4cUfD.js → ProjectHeader-CIqf2gpl.js} +20 -3
  52. package/dist/assets/{ProjectSettings-wxEj0vl7.js → ProjectSettings-DGaIUK8h.js} +3 -3
  53. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DtD6uMAu.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-C3fRIVZH.js} +1 -1
  54. package/dist/assets/{ResourcesListLayout-6eIqe4Ld.css → ResourcesListLayout-C1JgyGhX.css} +24 -24
  55. package/dist/assets/{ResourcesListLayout-M_mVBaMn.js → ResourcesListLayout-DM01TqXK.js} +12 -12
  56. package/dist/assets/{RunDataJson-C6fe3tyE.js → RunDataJson-7m3wHhLP.js} +3 -3
  57. package/dist/assets/{RunDataJsonActions-Bf40hCdJ.js → RunDataJsonActions-CCs-K7u-.js} +1 -1
  58. package/dist/assets/{RunDataParsedAiContent-DNxDdAFA.js → RunDataParsedAiContent-qSEryFRl.js} +2 -2
  59. package/dist/assets/{RunDataSearch-BOHOVGZo.js → RunDataSearch-Cn2iAGkx.js} +1 -1
  60. package/dist/assets/{RunDataTable-Covbkrbq.js → RunDataTable-CqcDdqpf.js} +1 -1
  61. package/dist/assets/{SamlOnboarding-DuS7thyH.js → SamlOnboarding-CExc8LrJ.js} +3 -3
  62. package/dist/assets/{SettingsApiView-DiTe65f0.js → SettingsApiView-CyzaLF2j.js} +1 -1
  63. package/dist/assets/{SettingsCommunityNodesView-CyJ8VH0M.js → SettingsCommunityNodesView-Ci1jidLI.js} +4 -4
  64. package/dist/assets/{SettingsExternalSecrets-DkwQSOWE.js → SettingsExternalSecrets-JWxQMJpD.js} +1 -1
  65. package/dist/assets/{SettingsLdapView-BqkJjxxG.js → SettingsLdapView-BjZFbcTn.js} +8 -8
  66. package/dist/assets/{SettingsLdapView-Bx1eqk76.css → SettingsLdapView-D0SUO3ai.css} +10 -10
  67. package/dist/assets/{SettingsLogStreamingView-kquIKMzZ.js → SettingsLogStreamingView-DvWmdSgA.js} +1 -1
  68. package/dist/assets/{SettingsPersonalView-_PA-j_XK.js → SettingsPersonalView-DqrkCtlS.js} +1 -1
  69. package/dist/assets/{SettingsSourceControl-jkTTsdtR.js → SettingsSourceControl-N9lSG0gK.js} +1 -1
  70. package/dist/assets/{SettingsSso-DAdOHMeU.js → SettingsSso-lzPmnXZl.js} +1 -1
  71. package/dist/assets/{SettingsUsageAndPlan-BBp6XwhR.js → SettingsUsageAndPlan-BF2mv_rX.js} +2 -2
  72. package/dist/assets/{SettingsUsageAndPlan-ZZQpCmyQ.css → SettingsUsageAndPlan-_VxSs28G.css} +3 -3
  73. package/dist/assets/{SettingsUsersView-RQTdLxyb.css → SettingsUsersView-BG7JdfYz.css} +9 -9
  74. package/dist/assets/{SettingsUsersView-CiqFBEDz.js → SettingsUsersView-TueQ1ATe.js} +9 -9
  75. package/dist/assets/{SettingsView-U8wVTFLp.js → SettingsView-TKZutR1C.js} +1 -1
  76. package/dist/assets/{SetupView-DKS_9Pmw.js → SetupView-DAFe0s88.js} +3 -3
  77. package/dist/assets/{SetupWorkflowCredentialsButton-DrvkXjx2.js → SetupWorkflowCredentialsButton-D_e5xPYq.js} +1 -1
  78. package/dist/assets/{SetupWorkflowFromTemplateView-CuVhbPBO.js → SetupWorkflowFromTemplateView-C40rZsY1.js} +3 -3
  79. package/dist/assets/{SigninView-CnPzFRL5.js → SigninView-rw-BhvFO.js} +3 -3
  80. package/dist/assets/{SignoutView-BOpZmdFV.js → SignoutView-hmcLIumg.js} +1 -1
  81. package/dist/assets/{SignupView-CRnkvPuS.js → SignupView-B8utUMjA.js} +3 -3
  82. package/dist/assets/{TableBase-DIje27Wa.js → TableBase-Dg9jrpSs.js} +1 -1
  83. package/dist/assets/{Tags-B0bIUnzf.css → Tag-Cg-Hqs2H.css} +0 -141
  84. package/dist/assets/Tag-DBkUcYd_.js +32 -0
  85. package/dist/assets/{Tags-BjFupN4S.js → Tags-BABZPMfc.js} +6 -33
  86. package/dist/assets/Tags-CCemj7t9.css +142 -0
  87. package/dist/assets/{TemplateDetails-mqzPHlzS.js → TemplateDetails-DY7lPygm.js} +3 -10
  88. package/dist/assets/{TemplateList-Cjo0X1gf.js → TemplateList-UnYTakQQ.js} +8 -8
  89. package/dist/assets/{TemplateList-DcOqRM10.css → TemplateList-XNW-2Ugr.css} +8 -8
  90. package/dist/assets/{TemplatesCollectionView-CdqalUWl.js → TemplatesCollectionView-DTVw3VF0.js} +7 -6
  91. package/dist/assets/{TemplatesSearchView-hZVsLLXI.js → TemplatesSearchView-DolE_9AA.js} +3 -3
  92. package/dist/assets/{TemplatesView-D8AaaysW.js → TemplatesView-CwNytFHx.js} +1 -1
  93. package/dist/assets/{TemplatesWorkflowView-Df38vzRS.js → TemplatesWorkflowView-iSKd7uht.js} +7 -6
  94. package/dist/assets/{TriggerPanel-CRLzika6.js → TriggerPanel-BTLbaSMz.js} +34 -29
  95. package/dist/assets/{TriggerPanel-gMtmEr6n.css → TriggerPanel-DmVMaaLr.css} +25 -45
  96. package/dist/assets/{VariablesView-BLr_Gtfp.js → VariablesView-Dk54OZ1f.js} +5 -5
  97. package/dist/assets/{WorkerView-B5OYF2l5.js → WorkerView-CwuTFYrO.js} +6 -6
  98. package/dist/assets/{WorkflowActivator-DhLX6i1H.css → WorkflowActivator-22RW64G2.css} +3 -4
  99. package/dist/assets/{WorkflowActivator-D35S71ij.js → WorkflowActivator-DH6Riyap.js} +4 -4
  100. package/dist/assets/{WorkflowExecutionsInfoAccordion-Cx845yD1.js → WorkflowExecutionsInfoAccordion-CP2uh-PB.js} +2 -2
  101. package/dist/assets/{WorkflowExecutionsLandingPage-BcJAFFID.js → WorkflowExecutionsLandingPage-BoIaBPDG.js} +3 -3
  102. package/dist/assets/{WorkflowExecutionsPreview-BVpVifuf.js → WorkflowExecutionsPreview-C11ZxZ-4.js} +4 -4
  103. package/dist/assets/{WorkflowExecutionsView-bww_ZIUE.js → WorkflowExecutionsView-5rikocSa.js} +7 -6
  104. package/dist/assets/{WorkflowHistory-B9p3ubCQ.js → WorkflowHistory-Cph_B-2a.js} +2 -2
  105. package/dist/assets/{WorkflowOnboardingView-CK3btKpS.js → WorkflowOnboardingView-CTo8mbw7.js} +1 -1
  106. package/dist/assets/{WorkflowPreview-BICG36-Y.js → WorkflowPreview-fJy3X_xW.js} +1 -1
  107. package/dist/assets/{WorkflowsView-DsJIOJ7h.css → WorkflowsView-eYGsq80b.css} +267 -0
  108. package/dist/assets/{WorkflowsView-DQBqlF0o.js → WorkflowsView-mdIBSRa_.js} +201 -48
  109. package/dist/assets/{canvas-BAegJxph.js → canvas-DenCY4AJ.js} +1 -1
  110. package/dist/assets/{chartjs.utils-BW1BHqON.js → chartjs.utils-BlhTVSE9.js} +2 -2
  111. package/dist/assets/{VueMarkdown-BXoAxQ2V.js → core-lMJc92pa.js} +26 -26
  112. package/dist/assets/dataStore.store-CDiWuK8E.js +98 -0
  113. package/dist/assets/{en-ORjqW56z.js → en-B7EAgfR5.js} +50 -2
  114. package/dist/assets/{global-link-actions-BLMbNlby.js → global-link-actions-D18bp17X.js} +1 -1
  115. package/dist/assets/{index-B09aakje.css → index-BFyMw9-0.css} +8121 -7775
  116. package/dist/assets/{index-BpQz0FGO.js → index-Cpz83ovC.js} +1 -1
  117. package/dist/assets/{index-DJu2gb_4.js → index-CxleUtlq.js} +57377 -55708
  118. package/dist/assets/{pickBy-9DlC43KL.js → pickBy-D7GSyF5E.js} +1 -1
  119. package/dist/assets/{readyToRunWorkflows.store-bkk9BfbV.js → readyToRunWorkflows.store-Dz_KLa8_.js} +3 -3
  120. package/dist/assets/{templateActions-DWPclqQi.js → templateActions-xbNJmRy6.js} +1 -1
  121. package/dist/assets/{typescript.worker-KwUz68Jx.js → typescript.worker-ku8s_Oaf.js} +8407 -7241
  122. package/dist/assets/{useBeforeUnload-hEveYtYY.js → useBeforeUnload-D0WL7mpb.js} +1 -1
  123. package/dist/assets/{useExecutionDebugging-D0j03ZAv.js → useExecutionDebugging-Bd_2vpLq.js} +4 -4
  124. package/dist/assets/{useImportCurlCommand-BKQ4XONK.js → useImportCurlCommand-Cyf8dlDO.js} +1 -1
  125. package/dist/assets/{useProjectPages-CFEdc5ap.js → useProjectPages-BpsdwyKW.js} +1 -1
  126. package/dist/assets/{usePushConnection-g2LnZI3X.js → usePushConnection-BaTxjUZd.js} +18 -18
  127. package/dist/assets/{useWorkflowActivate-G9wdzjX4.js → useWorkflowActivate-DrpskU4R.js} +1 -1
  128. package/dist/index.html +2 -2
  129. package/package.json +1 -1
  130. package/stylelint.config.mjs +3 -0
  131. package/dist/assets/CollectionParameter-BAZmSBB4.js +0 -4
@@ -1,16 +1,223 @@
1
- import { d as defineComponent, x as computed, h as createElementBlock, g as openBlock, i as createVNode, l as unref, E as ElDropdown, w as withCtx, j as createBaseVNode, n as normalizeClass, f as createCommentVNode, F as Fragment, y as renderList, e as createBlock, z as N8nAvatar, t as toDisplayString, A as ElDropdownMenu, B as ElDropdownItem, C as N8nUserInfo, D as mergeProps, _ as _export_sfc, G as MAIN_HEADER_TABS, H as N8nRadioButtons, r as ref, I as onBeforeUnmount, o as onMounted, J as renderSlot, K as nextTick, L as debounce, O as resolveComponent, P as normalizeStyle, Q as createEventBus, k as createTextVNode, R as useTagsStore, S as useDebounce, T as useUIStore, U as BREAKPOINT_SM, W as BREAKPOINT_XL, X as BREAKPOINT_LG, Y as BREAKPOINT_MD, Z as getBannerRowHeight, V as VIEWS, $ as N8nTooltip, a0 as _sfc_main$b, c as useI18n, a1 as I18nT, a2 as N8nLink, a3 as defineStore, a4 as usePushConnectionStore, a5 as useWorkflowsStore, u as useUsersStore, a6 as useRoute, a7 as PLACEHOLDER_EMPTY_WORKFLOW_ID, a8 as STORES, a9 as TIME, aa as useDocumentVisibility, ab as watch, ac as useCssModule, ad as useRootStore, ae as useCanvasStore, v as useSettingsStore, af as useSourceControlStore, ag as useProjectsStore, ah as useFoldersStore, ai as useNpsSurveyStore, b as useRouter, a as useToast, aj as useDocumentTitle, ak as useWorkflowSaving, al as useWorkflowHelpers, am as usePageRedirectionHelper, an as getResourcePermissions, ao as WORKFLOW_MENU_ACTIONS, ap as hasPermission, aq as EnterpriseEditionFeature, ar as ProjectTypes, as as useTemplateRef, at as InlineRename, au as MAX_WORKFLOW_NAME_LENGTH, av as _sfc_main$c, aw as N8nBadge, q as N8nButton, ax as SaveButton, ay as N8nActionDropdown, az as WORKFLOW_SHARE_MODAL_KEY, aA as useTelemetry, aB as nodeViewEventBus, aC as useMessage, aD as MODAL_CONFIRM, aE as WORKFLOW_SETTINGS_MODAL_KEY, aF as SOURCE_CONTROL_PUSH_MODAL_KEY, aG as IMPORT_WORKFLOW_URL_MODAL_KEY, aH as FileSaver_minExports, aI as DUPLICATE_MODAL_KEY, aJ as ResourceType, aK as PROJECT_MOVE_RESOURCE_MODAL, aL as __vitePreload, aM as hyphenate, aN as h, aO as hasOwn, aP as useNDVStore, aQ as useExecutionsStore, aR as useLocalStorage, aS as LOCAL_STORAGE_HIDE_GITHUB_STAR_BUTTON, aT as STICKY_NODE_TYPE, aU as onBeforeMount, aV as withDirectives, aW as vShow, aX as N8N_MAIN_GITHUB_REPO_URL, N as N8nIcon } from "./index-DJu2gb_4.js";
2
- import { _ as __unplugin_components_0, W as WorkflowActivator } from "./WorkflowActivator-D35S71ij.js";
3
- import { _ as _sfc_main$d } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-DtD6uMAu.js";
4
- import { u as useBeforeUnload } from "./useBeforeUnload-hEveYtYY.js";
5
- import { u as usePushConnection } from "./usePushConnection-g2LnZI3X.js";
6
- import "./useWorkflowActivate-G9wdzjX4.js";
7
- import "./global-link-actions-BLMbNlby.js";
8
- import "./readyToRunWorkflows.store-bkk9BfbV.js";
1
+ import { d as defineComponent, r as ref, x as computed, e as createBlock, f as createCommentVNode, g as openBlock, l as unref, y as N8nPopoverReka, w as withCtx, j as createBaseVNode, n as normalizeClass, i as createVNode, h as createElementBlock, m as N8nHeading, k as createTextVNode, t as toDisplayString, z as N8nCallout, F as Fragment, A as renderList, B as withModifiers, N as N8nIcon, p as N8nText, C as N8nLink, D as useI18n, _ as _export_sfc, E as ElDropdown, G as N8nAvatar, H as ElDropdownMenu, I as ElDropdownItem, J as N8nUserInfo, K as mergeProps, L as MAIN_HEADER_TABS, O as N8nRadioButtons, P as onBeforeUnmount, o as onMounted, Q as renderSlot, R as nextTick, S as debounce, T as resolveComponent, U as normalizeStyle, W as createEventBus, X as useTagsStore, Y as useDebounce, Z as useUIStore, $ as BREAKPOINT_SM, a0 as BREAKPOINT_XL, a1 as BREAKPOINT_LG, a2 as BREAKPOINT_MD, a3 as getBannerRowHeight, V as VIEWS, a4 as N8nTooltip, a5 as _sfc_main$d, c as useI18n$1, a6 as I18nT, a7 as defineStore, a8 as usePushConnectionStore, a9 as useWorkflowsStore, u as useUsersStore, aa as useRoute, ab as PLACEHOLDER_EMPTY_WORKFLOW_ID, ac as STORES, ad as TIME, ae as useDocumentVisibility, af as watch, b as useRouter, ag as useEvaluationStore, ah as useNodeTypesStore, ai as useWorkflowSettingsCache, aj as useSourceControlStore, ak as WORKFLOW_ACTIVE_MODAL_KEY, al as ERROR_WORKFLOW_DOCS_URL, am as EVALUATIONS_DOCS_URL, an as TIME_SAVED_DOCS_URL, ao as WORKFLOW_SETTINGS_MODAL_KEY, ap as useTelemetry, aq as useMessage, ar as MODAL_CONFIRM, as as useCssModule, at as useRootStore, au as useCanvasStore, v as useSettingsStore, av as useProjectsStore, aw as useFoldersStore, ax as useNpsSurveyStore, a as useToast, ay as useDocumentTitle, az as useWorkflowSaving, aA as useWorkflowHelpers, aB as usePageRedirectionHelper, aC as getResourcePermissions, aD as WORKFLOW_MENU_ACTIONS, aE as hasPermission, aF as EnterpriseEditionFeature, aG as ProjectTypes, aH as useTemplateRef, aI as InlineRename, aJ as MAX_WORKFLOW_NAME_LENGTH, aK as _sfc_main$e, aL as N8nBadge, q as N8nButton, aM as SaveButton, aN as N8nActionDropdown, aO as WORKFLOW_SHARE_MODAL_KEY, aP as nodeViewEventBus, aQ as SOURCE_CONTROL_PUSH_MODAL_KEY, aR as IMPORT_WORKFLOW_URL_MODAL_KEY, aS as FileSaver_minExports, aT as DUPLICATE_MODAL_KEY, aU as ResourceType, aV as PROJECT_MOVE_RESOURCE_MODAL, aW as __vitePreload, aX as hyphenate, aY as h, aZ as hasOwn, a_ as useNDVStore, a$ as useExecutionsStore, b0 as useLocalStorage, b1 as LOCAL_STORAGE_HIDE_GITHUB_STAR_BUTTON, b2 as STICKY_NODE_TYPE, b3 as onBeforeMount, b4 as withDirectives, b5 as vShow, b6 as N8N_MAIN_GITHUB_REPO_URL } from "./index-CxleUtlq.js";
2
+ import { _ as __unplugin_components_0, W as WorkflowActivator } from "./WorkflowActivator-DH6Riyap.js";
3
+ import { _ as _sfc_main$f } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-C3fRIVZH.js";
4
+ import { u as useBeforeUnload } from "./useBeforeUnload-D0WL7mpb.js";
5
+ import { T as Tag } from "./Tag-DBkUcYd_.js";
6
+ import { u as usePushConnection } from "./usePushConnection-BaTxjUZd.js";
7
+ import "./useWorkflowActivate-DrpskU4R.js";
8
+ import "./global-link-actions-D18bp17X.js";
9
+ import "./readyToRunWorkflows.store-Dz_KLa8_.js";
10
+ const _hoisted_1$4 = ["data-action-id", "onClick"];
11
+ const _hoisted_2$3 = { key: 0 };
12
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
13
+ ...{ name: "N8nSuggestedActions" },
14
+ __name: "SuggestedActions",
15
+ props: {
16
+ title: {},
17
+ actions: {},
18
+ open: { type: Boolean },
19
+ ignoreAllLabel: { default: void 0 },
20
+ popoverAlignment: { default: void 0 },
21
+ notice: { default: void 0 }
22
+ },
23
+ emits: ["action-click", "ignore-click", "ignore-all", "update:open"],
24
+ setup(__props, { emit: __emit }) {
25
+ const props = __props;
26
+ const emit = __emit;
27
+ const { t } = useI18n();
28
+ const ignoringActions = ref(/* @__PURE__ */ new Set());
29
+ const completedCount = computed(() => props.actions.filter((action) => action.completed).length);
30
+ const handleActionClick = (action) => {
31
+ if (!action.completed) {
32
+ emit("action-click", action.id);
33
+ }
34
+ };
35
+ const handleIgnoreClick = (actionId) => {
36
+ ignoringActions.value.add(actionId);
37
+ setTimeout(() => {
38
+ emit("ignore-click", actionId);
39
+ ignoringActions.value.delete(actionId);
40
+ }, 500);
41
+ };
42
+ return (_ctx, _cache) => {
43
+ return completedCount.value !== _ctx.actions.length ? (openBlock(), createBlock(unref(N8nPopoverReka), {
44
+ key: 0,
45
+ open: _ctx.open,
46
+ width: "360px",
47
+ "max-height": "500px",
48
+ align: _ctx.popoverAlignment,
49
+ "onUpdate:open": _cache[2] || (_cache[2] = ($event) => _ctx.$emit("update:open", $event))
50
+ }, {
51
+ trigger: withCtx(() => [
52
+ createBaseVNode("div", {
53
+ class: normalizeClass([_ctx.$style.triggerContainer, _ctx.open ? _ctx.$style.activeTrigger : ""]),
54
+ "data-test-id": "suggested-action-count"
55
+ }, [
56
+ createVNode(unref(Tag), {
57
+ text: `${completedCount.value} / ${_ctx.actions.length}`
58
+ }, null, 8, ["text"])
59
+ ], 2)
60
+ ]),
61
+ content: withCtx(() => [
62
+ createBaseVNode("div", {
63
+ class: normalizeClass(_ctx.$style.popoverContent)
64
+ }, [
65
+ createVNode(unref(N8nHeading), { tag: "h4" }, {
66
+ default: withCtx(() => [
67
+ createTextVNode(toDisplayString(_ctx.title), 1)
68
+ ]),
69
+ _: 1
70
+ }),
71
+ _ctx.notice ? (openBlock(), createBlock(unref(N8nCallout), {
72
+ key: 0,
73
+ theme: "warning"
74
+ }, {
75
+ default: withCtx(() => [
76
+ createTextVNode(toDisplayString(_ctx.notice), 1)
77
+ ]),
78
+ _: 1
79
+ })) : createCommentVNode("", true),
80
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.actions, (action) => {
81
+ return openBlock(), createElementBlock("div", {
82
+ key: action.id,
83
+ class: normalizeClass([
84
+ {
85
+ [_ctx.$style.actionItem]: true,
86
+ [_ctx.$style.ignoring]: ignoringActions.value.has(action.id),
87
+ [_ctx.$style.actionable]: !action.completed
88
+ }
89
+ ]),
90
+ "data-test-id": "suggested-action-item",
91
+ "data-action-id": action.id,
92
+ onClick: withModifiers(() => handleActionClick(action), ["prevent", "stop"])
93
+ }, [
94
+ createBaseVNode("div", {
95
+ class: normalizeClass(_ctx.$style.checkboxContainer)
96
+ }, [
97
+ action.completed ? (openBlock(), createBlock(unref(N8nIcon), {
98
+ key: 0,
99
+ icon: "circle-check",
100
+ color: "success"
101
+ })) : (openBlock(), createBlock(unref(N8nIcon), {
102
+ key: 1,
103
+ icon: "circle",
104
+ color: "foreground-dark"
105
+ }))
106
+ ], 2),
107
+ createBaseVNode("div", {
108
+ class: normalizeClass(_ctx.$style.actionItemBody)
109
+ }, [
110
+ createBaseVNode("div", {
111
+ class: normalizeClass([action.completed ? "" : "mb-3xs", _ctx.$style.actionHeader])
112
+ }, [
113
+ createVNode(unref(N8nText), {
114
+ size: "medium",
115
+ bold: true
116
+ }, {
117
+ default: withCtx(() => [
118
+ createTextVNode(toDisplayString(action.title), 1)
119
+ ]),
120
+ _: 2
121
+ }, 1024)
122
+ ], 2),
123
+ !action.completed ? (openBlock(), createElementBlock("div", _hoisted_2$3, [
124
+ createVNode(unref(N8nText), {
125
+ size: "small",
126
+ color: "text-base"
127
+ }, {
128
+ default: withCtx(() => [
129
+ createTextVNode(toDisplayString(action.description) + " ", 1),
130
+ action.moreInfoLink ? (openBlock(), createBlock(unref(N8nLink), {
131
+ key: 0,
132
+ to: action.moreInfoLink,
133
+ size: "small",
134
+ theme: "text",
135
+ "new-window": "",
136
+ underline: "",
137
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {
138
+ }, ["stop"]))
139
+ }, {
140
+ default: withCtx(() => [
141
+ createTextVNode(toDisplayString(unref(t)("generic.moreInfo")), 1)
142
+ ]),
143
+ _: 2
144
+ }, 1032, ["to"])) : createCommentVNode("", true)
145
+ ]),
146
+ _: 2
147
+ }, 1024)
148
+ ])) : createCommentVNode("", true)
149
+ ], 2),
150
+ createVNode(unref(N8nLink), {
151
+ theme: "text",
152
+ title: unref(t)("generic.ignore"),
153
+ "data-test-id": "suggested-action-ignore",
154
+ onClick: withModifiers(($event) => handleIgnoreClick(action.id), ["prevent", "stop"])
155
+ }, {
156
+ default: withCtx(() => [
157
+ !action.completed ? (openBlock(), createBlock(unref(N8nIcon), {
158
+ key: 0,
159
+ icon: "x",
160
+ size: "large"
161
+ })) : createCommentVNode("", true)
162
+ ]),
163
+ _: 2
164
+ }, 1032, ["title", "onClick"])
165
+ ], 10, _hoisted_1$4);
166
+ }), 128)),
167
+ createBaseVNode("div", {
168
+ class: normalizeClass(_ctx.$style.ignoreAllContainer)
169
+ }, [
170
+ createVNode(unref(N8nLink), {
171
+ theme: "text",
172
+ size: "small",
173
+ underline: "",
174
+ "data-test-id": "suggested-action-ignore-all",
175
+ onClick: _cache[1] || (_cache[1] = withModifiers(($event) => emit("ignore-all"), ["prevent", "stop"]))
176
+ }, {
177
+ default: withCtx(() => [
178
+ createTextVNode(toDisplayString(_ctx.ignoreAllLabel ?? unref(t)("generic.ignoreAll")), 1)
179
+ ]),
180
+ _: 1
181
+ })
182
+ ], 2)
183
+ ], 2)
184
+ ]),
185
+ _: 1
186
+ }, 8, ["open", "align"])) : createCommentVNode("", true);
187
+ };
188
+ }
189
+ });
190
+ const triggerContainer = "_triggerContainer_1gki6_123";
191
+ const activeTrigger = "_activeTrigger_1gki6_129";
192
+ const popoverContent = "_popoverContent_1gki6_134";
193
+ const actionItem = "_actionItem_1gki6_141";
194
+ const ignoring = "_ignoring_1gki6_147";
195
+ const actionable = "_actionable_1gki6_154";
196
+ const actionHeader = "_actionHeader_1gki6_157";
197
+ const actionItemBody = "_actionItemBody_1gki6_164";
198
+ const checkboxContainer = "_checkboxContainer_1gki6_171";
199
+ const ignoreAllContainer = "_ignoreAllContainer_1gki6_176";
200
+ const style0$4 = {
201
+ triggerContainer,
202
+ activeTrigger,
203
+ popoverContent,
204
+ actionItem,
205
+ ignoring,
206
+ actionable,
207
+ actionHeader,
208
+ actionItemBody,
209
+ checkboxContainer,
210
+ ignoreAllContainer
211
+ };
212
+ const cssModules$5 = {
213
+ "$style": style0$4
214
+ };
215
+ const N8nSuggestedActions = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__cssModules", cssModules$5]]);
9
216
  const _hoisted_1$3 = {
10
217
  class: "user-stack",
11
218
  "data-test-id": "user-stack-container"
12
219
  };
13
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
220
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
14
221
  __name: "UserStack",
15
222
  props: {
16
223
  users: {},
@@ -134,7 +341,7 @@ const groupContainer = "_groupContainer_1u5zw_148";
134
341
  const groupName = "_groupName_1u5zw_156";
135
342
  const groupUsers = "_groupUsers_1u5zw_164";
136
343
  const userInfoContainer = "_userInfoContainer_1u5zw_170";
137
- const style0$4 = {
344
+ const style0$3 = {
138
345
  avatars,
139
346
  avatar,
140
347
  hiddenBadge,
@@ -143,11 +350,11 @@ const style0$4 = {
143
350
  groupUsers,
144
351
  userInfoContainer
145
352
  };
146
- const cssModules$5 = {
147
- "$style": style0$4
353
+ const cssModules$4 = {
354
+ "$style": style0$3
148
355
  };
149
- const N8nUserStack = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$5]]);
150
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
356
+ const N8nUserStack = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__cssModules", cssModules$4]]);
357
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
151
358
  __name: "TabBar",
152
359
  props: {
153
360
  items: {},
@@ -178,14 +385,14 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
178
385
  }
179
386
  });
180
387
  const container$3 = "_container_j6ct2_123";
181
- const style0$3 = {
388
+ const style0$2 = {
182
389
  container: container$3
183
390
  };
184
- const cssModules$4 = {
185
- "$style": style0$3
391
+ const cssModules$3 = {
392
+ "$style": style0$2
186
393
  };
187
- const TabBar = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__cssModules", cssModules$4]]);
188
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
394
+ const TabBar = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__cssModules", cssModules$3]]);
395
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
189
396
  __name: "IntersectionObserver",
190
397
  props: {
191
398
  threshold: { default: 0 },
@@ -240,7 +447,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
240
447
  };
241
448
  }
242
449
  });
243
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
450
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
244
451
  __name: "IntersectionObserved",
245
452
  props: {
246
453
  enabled: { type: Boolean, default: false },
@@ -273,7 +480,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
273
480
  });
274
481
  const _hoisted_1$2 = { class: "tags" };
275
482
  const _hoisted_2$2 = ["onClick"];
276
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
483
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
277
484
  __name: "TagsContainer",
278
485
  props: {
279
486
  tagIds: {},
@@ -357,7 +564,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
357
564
  });
358
565
  return (_ctx, _cache) => {
359
566
  const _component_el_tag = resolveComponent("el-tag");
360
- return openBlock(), createBlock(_sfc_main$8, {
567
+ return openBlock(), createBlock(_sfc_main$9, {
361
568
  ref_key: "tagsContainer",
362
569
  ref: tagsContainer,
363
570
  threshold: 1,
@@ -387,7 +594,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
387
594
  createTextVNode(toDisplayString(tag.name), 1)
388
595
  ]),
389
596
  _: 2
390
- }, 1032, ["title"])) : (openBlock(), createBlock(_sfc_main$7, {
597
+ }, 1032, ["title"])) : (openBlock(), createBlock(_sfc_main$8, {
391
598
  key: 1,
392
599
  class: normalizeClass({ hideTag: tag.hidden }),
393
600
  "data-id": tag.id,
@@ -419,8 +626,8 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
419
626
  };
420
627
  }
421
628
  });
422
- const TagsContainer = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-6bab2764"]]);
423
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
629
+ const TagsContainer = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-6bab2764"]]);
630
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
424
631
  __name: "WorkflowTagsContainer",
425
632
  props: {
426
633
  tagIds: {},
@@ -450,7 +657,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
450
657
  };
451
658
  }
452
659
  });
453
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
660
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
454
661
  __name: "BreakpointsObserver",
455
662
  props: {
456
663
  valueXS: {},
@@ -525,7 +732,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
525
732
  });
526
733
  const _hoisted_1$1 = { key: 0 };
527
734
  const _hoisted_2$1 = { key: 1 };
528
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
735
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
529
736
  __name: "WorkflowHistoryButton",
530
737
  props: {
531
738
  workflowId: {},
@@ -534,7 +741,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
534
741
  },
535
742
  emits: ["upgrade"],
536
743
  setup(__props, { emit: __emit }) {
537
- const locale = useI18n();
744
+ const locale = useI18n$1();
538
745
  const props = __props;
539
746
  const emit = __emit;
540
747
  const workflowHistoryRoute = computed(() => ({
@@ -544,7 +751,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
544
751
  }
545
752
  }));
546
753
  return (_ctx, _cache) => {
547
- const _component_N8nIconButton = _sfc_main$b;
754
+ const _component_N8nIconButton = _sfc_main$d;
548
755
  const _component_RouterLink = resolveComponent("RouterLink");
549
756
  const _component_N8nLink = N8nLink;
550
757
  const _component_N8nTooltip = N8nTooltip;
@@ -570,36 +777,24 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
570
777
  }))
571
778
  ]),
572
779
  default: withCtx(() => [
573
- createVNode(_component_RouterLink, {
574
- to: workflowHistoryRoute.value,
575
- class: normalizeClass(_ctx.$style.workflowHistoryButton)
576
- }, {
780
+ createVNode(_component_RouterLink, { to: workflowHistoryRoute.value }, {
577
781
  default: withCtx(() => [
578
782
  createVNode(_component_N8nIconButton, {
579
783
  disabled: _ctx.isNewWorkflow || !_ctx.isFeatureEnabled,
580
784
  "data-test-id": "workflow-history-button",
581
- type: "tertiary",
785
+ type: "highlight",
582
786
  icon: "history",
583
- size: "medium",
584
- text: ""
787
+ size: "medium"
585
788
  }, null, 8, ["disabled"])
586
789
  ]),
587
790
  _: 1
588
- }, 8, ["to", "class"])
791
+ }, 8, ["to"])
589
792
  ]),
590
793
  _: 1
591
794
  });
592
795
  };
593
796
  }
594
797
  });
595
- const workflowHistoryButton = "_workflowHistoryButton_1uro5_123";
596
- const style0$2 = {
597
- workflowHistoryButton
598
- };
599
- const cssModules$3 = {
600
- "$style": style0$2
601
- };
602
- const WorkflowHistoryButton = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$3]]);
603
798
  const HEARTBEAT_INTERVAL = 5 * TIME.MINUTE;
604
799
  const useCollaborationStore = defineStore(STORES.COLLABORATION, () => {
605
800
  const pushStore = usePushConnectionStore();
@@ -675,7 +870,7 @@ const useCollaborationStore = defineStore(STORES.COLLABORATION, () => {
675
870
  stopHeartbeat
676
871
  };
677
872
  });
678
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
873
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
679
874
  __name: "CollaborationPane",
680
875
  setup(__props) {
681
876
  const collaborationStore = useCollaborationStore();
@@ -725,7 +920,174 @@ const style0$1 = {
725
920
  const cssModules$2 = {
726
921
  "$style": style0$1
727
922
  };
728
- const CollaborationPane = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$2]]);
923
+ const CollaborationPane = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$2]]);
924
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
925
+ __name: "WorkflowProductionChecklist",
926
+ props: {
927
+ workflow: {}
928
+ },
929
+ setup(__props) {
930
+ const props = __props;
931
+ const i18n = useI18n$1();
932
+ const router = useRouter();
933
+ const evaluationStore = useEvaluationStore();
934
+ const nodeTypesStore = useNodeTypesStore();
935
+ const workflowsCache = useWorkflowSettingsCache();
936
+ const uiStore = useUIStore();
937
+ const message = useMessage();
938
+ const telemetry = useTelemetry();
939
+ const sourceControlStore = useSourceControlStore();
940
+ const isPopoverOpen = ref(false);
941
+ const cachedSettings = ref(null);
942
+ const hasAINode = computed(() => {
943
+ const nodes = props.workflow.nodes;
944
+ return nodes.some((node) => {
945
+ const nodeType = nodeTypesStore.getNodeType(node.type, node.typeVersion);
946
+ return nodeType?.codex?.categories?.includes("AI");
947
+ });
948
+ });
949
+ const hasEvaluationSetOutputsNode = computed(() => {
950
+ return evaluationStore.evaluationSetOutputsNodeExist;
951
+ });
952
+ const hasErrorWorkflow = computed(() => {
953
+ return !!props.workflow.settings?.errorWorkflow;
954
+ });
955
+ const hasTimeSaved = computed(() => {
956
+ return props.workflow.settings?.timeSavedPerExecution !== void 0;
957
+ });
958
+ const isActivationModalOpen = computed(() => {
959
+ return uiStore.isModalActiveById[WORKFLOW_ACTIVE_MODAL_KEY];
960
+ });
961
+ const isProtectedEnvironment = computed(() => {
962
+ return sourceControlStore.preferences.branchReadOnly;
963
+ });
964
+ const availableActions = computed(() => {
965
+ if (!props.workflow.active || workflowsCache.isCacheLoading.value) {
966
+ return [];
967
+ }
968
+ const actions = [];
969
+ const suggestedActionSettings = cachedSettings.value?.suggestedActions ?? {};
970
+ if (!suggestedActionSettings.errorWorkflow?.ignored) {
971
+ actions.push({
972
+ id: "errorWorkflow",
973
+ title: i18n.baseText("workflowProductionChecklist.errorWorkflow.title"),
974
+ description: i18n.baseText("workflowProductionChecklist.errorWorkflow.description"),
975
+ moreInfoLink: ERROR_WORKFLOW_DOCS_URL,
976
+ completed: hasErrorWorkflow.value
977
+ });
978
+ }
979
+ if (hasAINode.value && evaluationStore.isEvaluationEnabled && !suggestedActionSettings.evaluations?.ignored) {
980
+ actions.push({
981
+ id: "evaluations",
982
+ title: i18n.baseText("workflowProductionChecklist.evaluations.title"),
983
+ description: i18n.baseText("workflowProductionChecklist.evaluations.description"),
984
+ moreInfoLink: EVALUATIONS_DOCS_URL,
985
+ completed: hasEvaluationSetOutputsNode.value
986
+ });
987
+ }
988
+ if (!suggestedActionSettings.timeSaved?.ignored) {
989
+ actions.push({
990
+ id: "timeSaved",
991
+ title: i18n.baseText("workflowProductionChecklist.timeSaved.title"),
992
+ description: i18n.baseText("workflowProductionChecklist.timeSaved.description"),
993
+ moreInfoLink: TIME_SAVED_DOCS_URL,
994
+ completed: hasTimeSaved.value
995
+ });
996
+ }
997
+ return actions;
998
+ });
999
+ async function loadWorkflowSettings() {
1000
+ if (props.workflow.id) {
1001
+ cachedSettings.value = await workflowsCache.getMergedWorkflowSettings(props.workflow.id);
1002
+ }
1003
+ }
1004
+ async function handleActionClick(actionId) {
1005
+ if (actionId === "evaluations") {
1006
+ await router.push({
1007
+ name: VIEWS.EVALUATION_EDIT,
1008
+ params: { name: props.workflow.id }
1009
+ });
1010
+ } else if (actionId === "errorWorkflow" || actionId === "timeSaved") {
1011
+ uiStore.openModal(WORKFLOW_SETTINGS_MODAL_KEY);
1012
+ }
1013
+ isPopoverOpen.value = false;
1014
+ }
1015
+ function isValidAction(action) {
1016
+ return ["evaluations", "errorWorkflow", "timeSaved"].includes(action);
1017
+ }
1018
+ async function handleIgnoreClick(actionId) {
1019
+ if (!isValidAction(actionId)) {
1020
+ return;
1021
+ }
1022
+ await workflowsCache.ignoreSuggestedAction(props.workflow.id, actionId);
1023
+ await loadWorkflowSettings();
1024
+ telemetry.track("user clicked ignore suggested action", {
1025
+ actionId
1026
+ });
1027
+ }
1028
+ async function handleIgnoreAll() {
1029
+ const ignoreAllConfirmed = await message.confirm(
1030
+ i18n.baseText("workflowProductionChecklist.ignoreAllConfirmation.description"),
1031
+ i18n.baseText("workflowProductionChecklist.ignoreAllConfirmation.title"),
1032
+ {
1033
+ confirmButtonText: i18n.baseText("workflowProductionChecklist.ignoreAllConfirmation.confirm")
1034
+ }
1035
+ );
1036
+ if (ignoreAllConfirmed === MODAL_CONFIRM) {
1037
+ await workflowsCache.ignoreAllSuggestedActionsForAllWorkflows(
1038
+ availableActions.value.map((action) => action.id)
1039
+ );
1040
+ await loadWorkflowSettings();
1041
+ telemetry.track("user clicked ignore suggested actions for all workflows");
1042
+ }
1043
+ }
1044
+ function openSuggestedActions() {
1045
+ isPopoverOpen.value = true;
1046
+ }
1047
+ function onPopoverOpened() {
1048
+ telemetry.track("user opened suggested actions checklist");
1049
+ }
1050
+ function handlePopoverOpenChange(open) {
1051
+ if (open) {
1052
+ isPopoverOpen.value = true;
1053
+ onPopoverOpened();
1054
+ } else if (!isActivationModalOpen.value) {
1055
+ isPopoverOpen.value = false;
1056
+ }
1057
+ }
1058
+ watch(
1059
+ () => props.workflow.active,
1060
+ async (isActive, wasActive) => {
1061
+ if (isActive && !wasActive) {
1062
+ if (!cachedSettings.value?.firstActivatedAt) {
1063
+ setTimeout(() => {
1064
+ openSuggestedActions();
1065
+ }, 0);
1066
+ }
1067
+ await workflowsCache.updateFirstActivatedAt(props.workflow.id);
1068
+ }
1069
+ }
1070
+ );
1071
+ onMounted(async () => {
1072
+ await loadWorkflowSettings();
1073
+ });
1074
+ return (_ctx, _cache) => {
1075
+ return availableActions.value.length > 0 ? (openBlock(), createBlock(unref(N8nSuggestedActions), {
1076
+ key: 0,
1077
+ open: isPopoverOpen.value,
1078
+ title: unref(i18n).baseText("workflowProductionChecklist.title"),
1079
+ actions: availableActions.value,
1080
+ "ignore-all-label": unref(i18n).baseText("workflowProductionChecklist.turnOffWorkflowSuggestions"),
1081
+ notice: isProtectedEnvironment.value ? unref(i18n).baseText("workflowProductionChecklist.readOnlyNotice") : "",
1082
+ "popover-alignment": "end",
1083
+ onActionClick: handleActionClick,
1084
+ onIgnoreClick: handleIgnoreClick,
1085
+ onIgnoreAll: handleIgnoreAll,
1086
+ "onUpdate:open": handlePopoverOpenChange
1087
+ }, null, 8, ["open", "title", "actions", "ignore-all-label", "notice"])) : createCommentVNode("", true);
1088
+ };
1089
+ }
1090
+ });
729
1091
  const INVALID_CHARS_REGEX = /[<>:"/\\|?*\u0000-\u001F\u007F-\u009F]/g;
730
1092
  const ZERO_WIDTH_CHARS_REGEX = /[\u200B-\u200D\u2060\uFEFF]/g;
731
1093
  const UNICODE_SPACES_REGEX = /[\u00A0\u2000-\u200A]/g;
@@ -778,6 +1140,8 @@ const _hoisted_1 = {
778
1140
  };
779
1141
  const _hoisted_2 = { key: 1 };
780
1142
  const _hoisted_3 = { class: "archived" };
1143
+ const WORKFLOW_NAME_MAX_WIDTH_SMALL_SCREENS = 150;
1144
+ const WORKFLOW_NAME_MAX_WIDTH_WIDE_SCREENS = 200;
781
1145
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
782
1146
  __name: "WorkflowDetails",
783
1147
  props: {
@@ -805,10 +1169,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
805
1169
  const projectsStore = useProjectsStore();
806
1170
  const foldersStore = useFoldersStore();
807
1171
  const npsSurveyStore = useNpsSurveyStore();
808
- const i18n = useI18n();
1172
+ const i18n = useI18n$1();
809
1173
  const router = useRouter();
810
1174
  const route = useRoute();
811
- const locale = useI18n();
1175
+ const locale = useI18n$1();
812
1176
  const telemetry = useTelemetry();
813
1177
  const message = useMessage();
814
1178
  const toast = useToast();
@@ -1321,14 +1685,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1321
1685
  return openBlock(), createElementBlock("div", {
1322
1686
  class: normalizeClass(unref($style).container)
1323
1687
  }, [
1324
- createVNode(_sfc_main$4, {
1688
+ createVNode(_sfc_main$5, {
1325
1689
  "value-x-s": 15,
1326
1690
  "value-s-m": 25,
1327
1691
  "value-m-d": 50,
1328
1692
  class: "name-container",
1329
1693
  "data-test-id": "canvas-breadcrumbs"
1330
1694
  }, {
1331
- default: withCtx(() => [
1695
+ default: withCtx(({ bp }) => [
1332
1696
  createVNode(_component_FolderBreadcrumbs, {
1333
1697
  "current-folder": currentFolderForBreadcrumbs.value,
1334
1698
  "current-folder-as-link": true,
@@ -1348,19 +1712,20 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1348
1712
  class: "name",
1349
1713
  "model-value": _ctx.name,
1350
1714
  "max-length": unref(MAX_WORKFLOW_NAME_LENGTH),
1715
+ "max-width": ["XS", "SM"].includes(bp) ? WORKFLOW_NAME_MAX_WIDTH_SMALL_SCREENS : WORKFLOW_NAME_MAX_WIDTH_WIDE_SCREENS,
1351
1716
  "read-only": _ctx.readOnly || _ctx.isArchived || !isNewWorkflow.value && !workflowPermissions.value.update,
1352
1717
  disabled: _ctx.readOnly || _ctx.isArchived || !isNewWorkflow.value && !workflowPermissions.value.update,
1353
1718
  "onUpdate:modelValue": onNameSubmit
1354
- }, null, 8, ["model-value", "max-length", "read-only", "disabled"]))
1719
+ }, null, 8, ["model-value", "max-length", "max-width", "read-only", "disabled"]))
1355
1720
  ]),
1356
- _: 1
1357
- }, 8, ["current-folder"])
1721
+ _: 2
1722
+ }, 1032, ["current-folder"])
1358
1723
  ]),
1359
1724
  _: 1
1360
1725
  }),
1361
1726
  createBaseVNode("span", _hoisted_1, [
1362
1727
  unref(settingsStore).areTagsEnabled ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
1363
- isTagsEditEnabled.value && !(_ctx.readOnly || _ctx.isArchived) && (isNewWorkflow.value || workflowPermissions.value.update) ? (openBlock(), createBlock(_sfc_main$c, {
1728
+ isTagsEditEnabled.value && !(_ctx.readOnly || _ctx.isArchived) && (isNewWorkflow.value || workflowPermissions.value.update) ? (openBlock(), createBlock(_sfc_main$e, {
1364
1729
  key: 0,
1365
1730
  ref: "dropdown",
1366
1731
  modelValue: appliedTagIds.value,
@@ -1377,7 +1742,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1377
1742
  "data-test-id": "new-tag-link",
1378
1743
  onClick: onTagsEditEnable
1379
1744
  }, " + " + toDisplayString(unref(i18n).baseText("workflowDetails.addTag")), 1)
1380
- ])) : (openBlock(), createBlock(_sfc_main$5, {
1745
+ ])) : (openBlock(), createBlock(_sfc_main$6, {
1381
1746
  key: _ctx.id,
1382
1747
  "tag-ids": workflowTagIds.value,
1383
1748
  clickable: true,
@@ -1401,8 +1766,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1401
1766
  })) : createCommentVNode("", true)
1402
1767
  ])
1403
1768
  ]),
1404
- createVNode(_sfc_main$d, { class: "actions" }, {
1769
+ createVNode(_sfc_main$f, { class: "actions" }, {
1405
1770
  default: withCtx(() => [
1771
+ !isNewWorkflow.value ? (openBlock(), createBlock(_sfc_main$2, {
1772
+ key: 0,
1773
+ workflow: unref(workflowsStore).workflow
1774
+ }, null, 8, ["workflow"])) : createCommentVNode("", true),
1406
1775
  createBaseVNode("span", {
1407
1776
  class: normalizeClass(`activator ${unref($style).group}`)
1408
1777
  }, [
@@ -1478,7 +1847,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1478
1847
  "data-test-id": "workflow-save-button",
1479
1848
  onClick: onSaveButtonClick
1480
1849
  }, null, 8, ["saved", "disabled", "is-saving", "with-shortcut", "shortcut-tooltip"]),
1481
- createVNode(WorkflowHistoryButton, {
1850
+ createVNode(_sfc_main$4, {
1482
1851
  "workflow-id": props.id,
1483
1852
  "is-feature-enabled": isWorkflowHistoryFeatureEnabled.value,
1484
1853
  "is-new-workflow": isNewWorkflow.value,
@@ -1527,7 +1896,7 @@ const style1 = {
1527
1896
  const cssModules$1 = {
1528
1897
  "$style": style1
1529
1898
  };
1530
- const WorkflowDetails = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-2761781f"]]);
1899
+ const WorkflowDetails = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1], ["__scopeId", "data-v-9c3251f0"]]);
1531
1900
  const GithubButton = defineComponent({
1532
1901
  name: "github-button",
1533
1902
  props: {
@@ -1600,7 +1969,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1600
1969
  setup(__props) {
1601
1970
  const router = useRouter();
1602
1971
  const route = useRoute();
1603
- const locale = useI18n();
1972
+ const locale = useI18n$1();
1604
1973
  const pushConnection = usePushConnection({ router });
1605
1974
  const ndvStore = useNDVStore();
1606
1975
  const uiStore = useUIStore();
@@ -1829,14 +2198,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1829
2198
  };
1830
2199
  }
1831
2200
  });
1832
- const container = "_container_hdyww_123";
2201
+ const container = "_container_gg3to_123";
1833
2202
  const style0 = {
1834
2203
  container,
1835
- "main-header": "_main-header_hdyww_130",
1836
- "top-menu": "_top-menu_hdyww_138",
1837
- "github-button": "_github-button_hdyww_149",
1838
- "close-github-button": "_close-github-button_hdyww_158",
1839
- "github-button-container": "_github-button-container_hdyww_173"
2204
+ "main-header": "_main-header_gg3to_130",
2205
+ "top-menu": "_top-menu_gg3to_138",
2206
+ "github-button": "_github-button_gg3to_149",
2207
+ "close-github-button": "_close-github-button_gg3to_158",
2208
+ "github-button-container": "_github-button-container_gg3to_173"
1840
2209
  };
1841
2210
  const cssModules = {
1842
2211
  "$style": style0