n8n-editor-ui 1.111.0 → 1.112.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/dist/assets/{AddDataStoreModal-D3j8deoq.css → AddDataStoreModal-B7jBhCjt.css} +5 -3
  2. package/dist/assets/{AddDataStoreModal-COmj3tI8.js → AddDataStoreModal-CLYFuWF4.js} +12 -7
  3. package/dist/assets/{AnimatedSpinner-BRe0Ugab.js → AnimatedSpinner-D7Nt5ZAz.js} +2 -1
  4. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BllZkKe3.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BzK1dfc7.js} +2 -1
  5. package/dist/assets/{AuthView-z58gFjsc.js → AuthView-Db8T18BU.js} +3 -2
  6. package/dist/assets/{ChangePasswordView-DUmtjPAx.js → ChangePasswordView-Clb7ta4t.js} +4 -3
  7. package/dist/assets/CollectionParameter-BGBoLgV2.js +5 -0
  8. package/dist/assets/{ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-4IRcAtjj.js → ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-BG5somV-.js} +2 -1
  9. package/dist/assets/{CredentialsView-Ie0l_odH.js → CredentialsView-CydHAPfb.js} +11 -9
  10. package/dist/assets/{DataStoreActions.vue_vue_type_script_setup_true_lang-d31tni9q.js → DataStoreActions.vue_vue_type_script_setup_true_lang-qftEof1u.js} +2 -2
  11. package/dist/assets/{DataStoreDetailsView-BPsHPucD.css → DataStoreDetailsView-C8fMxukz.css} +60 -39
  12. package/dist/assets/{DataStoreDetailsView-DLuRcsh-.js → DataStoreDetailsView-DZK3pYSP.js} +267 -102
  13. package/dist/assets/{DataStoreView-DmY3FIsv.js → DataStoreView-CT0OnFLR.js} +14 -29
  14. package/dist/assets/{DemoFooter-BQj55pTx.js → DemoFooter-DHwNRr6t.js} +7 -6
  15. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-NJbsTbk5.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-Y97PdUKW.js} +2 -1
  16. package/dist/assets/{EntityNotFound-B1VWHiBa.js → EntityNotFound-BDjIF_1D.js} +2 -1
  17. package/dist/assets/{EntityUnAuthorised-B0Yg7JWa.js → EntityUnAuthorised-Dz3DXm1-.js} +2 -1
  18. package/dist/assets/{ErrorView-aHqCD3ri.js → ErrorView-BH0St5KC.js} +2 -1
  19. package/dist/assets/{EvaluationsRootView-CoYRtuEz.js → EvaluationsRootView-CnJlr4OF.js} +2 -1
  20. package/dist/assets/{EvaluationsView-BC1UMOb0.js → EvaluationsView-DABp8z-m.js} +4 -3
  21. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-CMR49MM7.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-gCj_FZH6.js} +3 -2
  22. package/dist/assets/{ExecutionsView-C8r32amj.js → ExecutionsView-CivgrlFE.js} +14 -12
  23. package/dist/assets/{ExecutionsView-DpVZbkhT.css → ExecutionsView-GKNLT5Ec.css} +1 -1
  24. package/dist/assets/{FixedCollectionParameter-DTkvAml6.css → FixedCollectionParameter-Dg7ZadcB.css} +18 -18
  25. package/dist/assets/{FixedCollectionParameter-BzZrk2iw.js → FixedCollectionParameter-l8xC6wRw.js} +7 -3
  26. package/dist/assets/{ForgotMyPasswordView-CaXCwrIx.js → ForgotMyPasswordView-WF87QWAH.js} +4 -3
  27. package/dist/assets/{InfoAccordion-DUHSL9ZE.js → InfoAccordion-8iWJ2sSU.js} +2 -1
  28. package/dist/assets/{InsightsChartAverageRuntime-DFunYdc9.js → InsightsChartAverageRuntime-BEd6XJn6.js} +5 -4
  29. package/dist/assets/{InsightsChartFailed-0uRNHiAU.js → InsightsChartFailed-CVwzK3ch.js} +5 -4
  30. package/dist/assets/{InsightsChartFailureRate-BuiZokRI.js → InsightsChartFailureRate-BeA77_lp.js} +5 -4
  31. package/dist/assets/{InsightsChartTimeSaved-CK46Eo2R.js → InsightsChartTimeSaved-DkgR7j7U.js} +5 -4
  32. package/dist/assets/{InsightsChartTotal-ZhGp0D6c.js → InsightsChartTotal--1QxzvAZ.js} +5 -4
  33. package/dist/assets/{InsightsDashboard-DEJEg2jy.js → InsightsDashboard-cHCzH4ZY.js} +13 -11
  34. package/dist/assets/{InsightsPaywall-CEYbNF-U.js → InsightsPaywall-neQ9PmYP.js} +2 -1
  35. package/dist/assets/{InsightsSummary-D4c0lwdE.js → InsightsSummary-BekdjOxv.js} +4 -2
  36. package/dist/assets/{InsightsTableWorkflows-Cf2s_w2o.js → InsightsTableWorkflows-LMO-UU8h.js} +5 -4
  37. package/dist/assets/{Logo-DF7Ve1nG.js → Logo-DXNRuN8z.js} +2 -1
  38. package/dist/assets/{LogsPanel-Dz_R5wsR.js → LogsPanel-2GQHQFmh.js} +36 -22
  39. package/dist/assets/{LogsPanel-BinqqXXh.css → LogsPanel-CUsQIBpC.css} +17 -17
  40. package/dist/assets/{MainHeader-DBWR1wTC.js → MainHeader-BlBek00C.js} +12 -10
  41. package/dist/assets/{MainSidebar-3_9O8-rJ.js → MainSidebar-qdHg8D5V.js} +3 -2
  42. package/dist/assets/{NodeCreation-Dtlm36Oq.js → NodeCreation-DO5k3aK3.js} +4 -3
  43. package/dist/assets/{NodeCreator-DUoi7nAW.js → NodeCreator-C3Pmrqkh.js} +2 -1
  44. package/dist/assets/{NodeDetailsView-Di4Qgo0H.js → NodeDetailsView-BACft9ex.js} +18 -17
  45. package/dist/assets/{NodeDetailsView-CjdovDgq.css → NodeDetailsView-CBYV4Rrz.css} +11 -11
  46. package/dist/assets/{NodeDetailsViewV2-DeY6N1Bz.js → NodeDetailsViewV2--1S2eK5u.js} +14 -13
  47. package/dist/assets/{NodeView-DsbJeAY_.js → NodeView-BRwQ5Cqs.js} +113 -99
  48. package/dist/assets/{NodeView-DMJpfBYR.css → NodeView-Chs2u0U9.css} +28 -25
  49. package/dist/assets/{PageViewLayout-DC6xqvMl.js → PageViewLayout-DldtilHz.js} +2 -1
  50. package/dist/assets/{PrebuiltAgentTemplatesView-Bf_4L0Mz.js → PrebuiltAgentTemplatesView-ChyN8J2x.js} +3 -2
  51. package/dist/assets/{ProjectBreadcrumb-OJlbtg71.js → ProjectBreadcrumb-9uWmVmc7.js} +2 -1
  52. package/dist/assets/{ProjectHeader-CuQxn8hj.js → ProjectHeader-CWapIKXf.js} +93 -23
  53. package/dist/assets/{ProjectSettings-CyyS1dIR.js → ProjectSettings-BlYXGYRx.js} +5 -3
  54. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DbrwK8IB.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DjpouOrH.js} +2 -1
  55. package/dist/assets/{ResourcesListLayout-i7do2ZBR.js → ResourcesListLayout-CfDIFGjS.js} +5 -4
  56. package/dist/assets/{RunDataJson-DRtbtIz3.js → RunDataJson-CTm3-xdY.js} +4 -3
  57. package/dist/assets/{RunDataJsonActions-7l2QvE2z.js → RunDataJsonActions-B_yBOGYB.js} +2 -1
  58. package/dist/assets/{RunDataParsedAiContent-CD12A0kN.js → RunDataParsedAiContent-Cg9vUI0v.js} +3 -2
  59. package/dist/assets/{RunDataSearch-LNeMq9j6.js → RunDataSearch-DPt2MvbI.js} +2 -1
  60. package/dist/assets/{RunDataTable-DcKBX4aO.js → RunDataTable-DHVRSqQT.js} +2 -1
  61. package/dist/assets/{SamlOnboarding-i5e6HuF6.js → SamlOnboarding-CN_xGqen.js} +4 -3
  62. package/dist/assets/{SelectedItemsInfo-CfUb0ZrI.css → SelectedItemsInfo-Dl4uynXs.css} +5 -3
  63. package/dist/assets/{SelectedItemsInfo-C55zD1dl.js → SelectedItemsInfo-DzoCyQOW.js} +12 -7
  64. package/dist/assets/{SettingsApiView-C3ju5H4H.js → SettingsApiView-BIKCRKGM.js} +2 -1
  65. package/dist/assets/{SettingsCommunityNodesView-i_vIhGwd.js → SettingsCommunityNodesView-ClWYmDB8.js} +7 -4
  66. package/dist/assets/{SettingsExternalSecrets-ChCiOX-n.js → SettingsExternalSecrets-D58JxT3V.js} +2 -1
  67. package/dist/assets/{SettingsLdapView-2QEfpHy6.js → SettingsLdapView-uImCjvMm.js} +2 -1
  68. package/dist/assets/{SettingsLogStreamingView-BORk25bO.js → SettingsLogStreamingView-DUn62Yq4.js} +2 -1
  69. package/dist/assets/{SettingsPersonalView-Yl43xiM_.js → SettingsPersonalView-DGiCMsXu.js} +2 -1
  70. package/dist/assets/{SettingsSourceControl-BpcJX-rJ.js → SettingsSourceControl-CVik5czR.js} +2 -1
  71. package/dist/assets/{SettingsSso-BugeRCyt.js → SettingsSso-BQkWpsdO.js} +2 -1
  72. package/dist/assets/{SettingsUsageAndPlan-Dt6g-FQw.js → SettingsUsageAndPlan-BuwgmEka.js} +2 -1
  73. package/dist/assets/{SettingsUsersView-BhBuZop9.js → SettingsUsersView-DCmtHeMa.js} +2 -1
  74. package/dist/assets/{SettingsView-Cx0SMMrn.js → SettingsView-CrBThv_a.js} +2 -1
  75. package/dist/assets/{SetupView-CUJOHrm2.js → SetupView-CES8Gnnv.js} +4 -3
  76. package/dist/assets/{SetupWorkflowCredentialsButton-D6h_IgTa.js → SetupWorkflowCredentialsButton-Bjhx_rck.js} +2 -1
  77. package/dist/assets/{SetupWorkflowFromTemplateView-_ReKyIk1.js → SetupWorkflowFromTemplateView-C8kmCc7J.js} +4 -3
  78. package/dist/assets/{SigninView--fAZZd3A.js → SigninView-24xKsh_S.js} +4 -3
  79. package/dist/assets/{SignoutView-DXoOH9BS.js → SignoutView-DgFIUUyh.js} +2 -1
  80. package/dist/assets/{SignupView-d0cK_S0B.js → SignupView-BckB-uUh.js} +4 -3
  81. package/dist/assets/{TableBase-D5vBzOrx.js → TableBase-CQEzJfeN.js} +2 -1
  82. package/dist/assets/{Tags-CZdua1l_.js → Tags-DbX-5_Fk.js} +2 -2
  83. package/dist/assets/{TemplateDetails-ccSWABeF.js → TemplateDetails-BGraOFbY.js} +3 -2
  84. package/dist/assets/{TemplateList-BKUKBRua.js → TemplateList-5P1N08U1.js} +2 -1
  85. package/dist/assets/{TemplatesCollectionView-BTyYNxNc.js → TemplatesCollectionView-D2-SU0eR.js} +7 -7
  86. package/dist/assets/{TemplatesSearchView-BYM3HbbU.js → TemplatesSearchView-ncBXTfOM.js} +4 -3
  87. package/dist/assets/{TemplatesView-CrH_O4he.js → TemplatesView-DO7HuUts.js} +2 -1
  88. package/dist/assets/{TemplatesWorkflowView-Dg3REjWI.js → TemplatesWorkflowView-BvrjU4RD.js} +7 -7
  89. package/dist/assets/{TriggerPanel-dDX4Bzu7.js → TriggerPanel-BFQ6veDz.js} +10 -8
  90. package/dist/assets/{VariablesView-DQw3gYG7.js → VariablesView-BVzruwEA.js} +7 -6
  91. package/dist/assets/{WorkerView-DIs4RXZZ.js → WorkerView-DRM6mgWJ.js} +9 -6
  92. package/dist/assets/{WorkflowActivator-z_Ef2Dd7.js → WorkflowActivator-BOt1oNlm.js} +4 -3
  93. package/dist/assets/{WorkflowExecutionsInfoAccordion-ptRuD88E.js → WorkflowExecutionsInfoAccordion-BjZUTKcs.js} +3 -2
  94. package/dist/assets/{WorkflowExecutionsLandingPage-C-RDf8Mu.js → WorkflowExecutionsLandingPage-ENKxL7Yh.js} +4 -3
  95. package/dist/assets/{WorkflowExecutionsPreview-Bk449wx1.js → WorkflowExecutionsPreview-Cdgg29u5.js} +5 -4
  96. package/dist/assets/{WorkflowExecutionsView-Dp0exxTM.js → WorkflowExecutionsView-t3W7WuAy.js} +9 -9
  97. package/dist/assets/{WorkflowHistory-D8zH1o6c.js → WorkflowHistory--OLvuBs1.js} +3 -2
  98. package/dist/assets/{WorkflowOnboardingView-8OmgIoUc.js → WorkflowOnboardingView-C8y96ur1.js} +2 -1
  99. package/dist/assets/{WorkflowPreview-jOuoMEkv.js → WorkflowPreview-C1XHoZmU.js} +2 -1
  100. package/dist/assets/{WorkflowsView-B9MpreL6.js → WorkflowsView-B9rxI0No.js} +272 -62
  101. package/dist/assets/{WorkflowsView-BuvoAeDm.css → WorkflowsView-MF9XcT0u.css} +186 -0
  102. package/dist/assets/{canvas-k8kjfgjE.js → canvas-D2PwiGnN.js} +1 -1
  103. package/dist/assets/{chartjs.utils-BXNxmkto.js → chartjs.utils-B6sz8yOh.js} +2 -2
  104. package/dist/assets/{core-e2mfCMV8.js → core-Be7WBA6o.js} +2 -1
  105. package/dist/assets/{en-C3wg5zl_.js → en-CJyn5rnO.js} +26 -20
  106. package/dist/assets/{global-link-actions-CR3odK4e.js → global-link-actions-B9WsUojd.js} +1 -1
  107. package/dist/assets/index-4g2Akj0I.js +13861 -0
  108. package/dist/assets/{index-DnpNicM9.css → index-B7wrqKiF.css} +8081 -8069
  109. package/dist/assets/{index-DuLlH1tF.js → index-BJG79OsS.js} +326896 -342404
  110. package/dist/assets/{index-DuaZRDhZ.js → index-LOlKxvn4.js} +2 -1
  111. package/dist/assets/loadDefaultEn-DNiURDi9.js +8 -0
  112. package/dist/assets/{pickBy-sB8d3BKD.js → pickBy-BMn768eW.js} +1 -1
  113. package/dist/assets/{readyToRunWorkflows.store-SxwN_l4P.js → readyToRunWorkflows.store-HSpbq3Bf.js} +2 -1
  114. package/dist/assets/readyToRunWorkflowsV2.store-DcRVIsRt.js +138 -0
  115. package/dist/assets/sqlite3-DBpDb1lf.wasm +0 -0
  116. package/dist/assets/sqlite3-opfs-async-proxy-CYRFPDln.js +579 -0
  117. package/dist/assets/sqlite3-worker1-bundler-friendly-DF3WqBKq.js +11289 -0
  118. package/dist/assets/{templateActions-BUeOwdy0.js → templateActions-DR_XHPc4.js} +1 -1
  119. package/dist/assets/{useBeforeUnload-DpCu12iW.js → useBeforeUnload-DmAaB1v5.js} +2 -1
  120. package/dist/assets/{useExecutionDebugging-XRtGhlAr.js → useExecutionDebugging-B8xDxcb6.js} +2 -1
  121. package/dist/assets/{useImportCurlCommand-DJJ0VEAg.js → useImportCurlCommand-BaN8fxqM.js} +2 -1
  122. package/dist/assets/{useProjectPages-DrMZX3ez.js → useProjectPages-B-oTYbCo.js} +2 -1
  123. package/dist/assets/{usePushConnection-CPQe3uqU.js → usePushConnection-Bcd2_XWM.js} +36 -22
  124. package/dist/assets/{useWorkflowActivate-RFJxTj5m.js → useWorkflowActivate-BDE2t3MM.js} +2 -1
  125. package/dist/assets/worker-DZxlyUFA.js +11826 -0
  126. package/dist/index.html +3 -2
  127. package/package.json +1 -1
  128. package/vite/i18n-locales-hmr-helpers.ts +19 -0
  129. package/vite.config.mts +25 -1
  130. package/dist/assets/CollectionParameter--MG-Jsbv.js +0 -4
  131. package/dist/assets/Tag-CGAmDPzS.js +0 -32
  132. package/dist/assets/Tag-Cg-Hqs2H.css +0 -153
  133. package/dist/assets/dataStore.store-vaNG0oX7.js +0 -291
@@ -1,4 +1,5 @@
1
- import { fV as Chart$1, d as defineComponent, cn as shallowRef, aW as h, fW as LineController, fX as version, r as ref, o as onMounted, W as onBeforeUnmount, a7 as watch, eY as toRaw, fY as isProxy, fZ as BarController } from "./index-DuLlH1tF.js";
1
+ import { f0 as Chart$1, f1 as LineController, f2 as BarController } from "./index-BJG79OsS.js";
2
+ import { o as defineComponent, bk as shallowRef, K as h, bC as version, b8 as ref, r as onMounted, aV as onBeforeUnmount, w as watch, Q as toRaw, aF as isProxy } from "./index-4g2Akj0I.js";
2
3
  const CommonProps = {
3
4
  data: {
4
5
  type: Object,
@@ -0,0 +1,8 @@
1
+ import { bN as __vitePreload, ca as loadLanguage } from "./index-4g2Akj0I.js";
2
+ async function loadDefaultEn() {
3
+ const mod = await __vitePreload(() => import("./en-CJyn5rnO.js"), true ? [] : void 0);
4
+ loadLanguage("en", mod.default);
5
+ }
6
+ export {
7
+ loadDefaultEn
8
+ };
@@ -1,4 +1,4 @@
1
- import { fK as require_arrayMap, fL as require_baseIteratee, fM as require_basePickBy, fN as require_getAllKeysIn, bS as getDefaultExportFromCjs } from "./index-DuLlH1tF.js";
1
+ import { eR as require_arrayMap, eS as require_baseIteratee, eT as require_basePickBy, eU as require_getAllKeysIn, bk as getDefaultExportFromCjs } from "./index-BJG79OsS.js";
2
2
  var pickBy_1;
3
3
  var hasRequiredPickBy;
4
4
  function requirePickBy() {
@@ -1,4 +1,5 @@
1
- import { $ as defineStore, av as useFoldersStore, a1 as useWorkflowsStore, df as usePostHog, v as useSettingsStore, a_ as useLocalStorage, x as computed, fr as TEMPLATE_ONBOARDING_EXPERIMENT, c as useI18n, al as useTelemetry, a4 as STORES, bb as useCloudPlanStore, fs as BATCH_11AUG_EXPERIMENT } from "./index-DuLlH1tF.js";
1
+ import { z as defineStore, a6 as useFoldersStore, C as useWorkflowsStore, cy as usePostHog, g as useSettingsStore, aw as useLocalStorage, ex as TEMPLATE_ONBOARDING_EXPERIMENT, Y as useTelemetry, S as STORES, aH as useCloudPlanStore, ey as BATCH_11AUG_EXPERIMENT } from "./index-BJG79OsS.js";
2
+ import { a9 as computed, bT as useI18n } from "./index-4g2Akj0I.js";
2
3
  const AGENT_WITH_MEMORY = {
3
4
  meta: {
4
5
  templateId: "035_template_onboarding-agent_with_memory"
@@ -0,0 +1,138 @@
1
+ import { a6 as useFoldersStore, D as useRoute, z as defineStore, a as useToast, b as useRouter, cu as useCredentialsStore, u as useUsersStore, g as useSettingsStore, cy as usePostHog, aH as useCloudPlanStore, ez as READY_TO_RUN_V2_EXPERIMENT, aw as useLocalStorage, ev as OPEN_AI_API_CREDENTIAL_TYPE, Y as useTelemetry, eA as READY_TO_RUN_WORKFLOW_V2, eB as READY_TO_RUN_WORKFLOW_V1, V as VIEWS, S as STORES } from "./index-BJG79OsS.js";
2
+ import { a9 as computed, b8 as ref, bT as useI18n } from "./index-4g2Akj0I.js";
3
+ import { u as useProjectPages } from "./useProjectPages-B-oTYbCo.js";
4
+ function useEmptyStateDetection() {
5
+ const foldersStore = useFoldersStore();
6
+ const projectPages = useProjectPages();
7
+ const route = useRoute();
8
+ const isTrulyEmpty = (currentRoute = route) => {
9
+ const hasNoWorkflows = foldersStore.totalWorkflowCount === 0;
10
+ const isNotInSpecificFolder = !currentRoute.params?.folderId;
11
+ const isMainWorkflowsPage = projectPages.isOverviewSubPage || !projectPages.isSharedSubPage;
12
+ const hasSearchQuery = !!currentRoute.query?.search;
13
+ const hasFilters = !!(currentRoute.query?.status || currentRoute.query?.tags || currentRoute.query?.showArchived || currentRoute.query?.homeProject);
14
+ return hasNoWorkflows && isNotInSpecificFolder && isMainWorkflowsPage && !hasSearchQuery && !hasFilters;
15
+ };
16
+ const shouldShowSimplifiedLayout = (currentRoute, isFeatureEnabled, loading) => {
17
+ if (loading || !isFeatureEnabled) {
18
+ return false;
19
+ }
20
+ return isTrulyEmpty(currentRoute);
21
+ };
22
+ return {
23
+ isTrulyEmpty,
24
+ shouldShowSimplifiedLayout
25
+ };
26
+ }
27
+ const LOCAL_STORAGE_CREDENTIAL_KEY = "N8N_READY_TO_RUN_V2_OPENAI_CREDENTIAL_ID";
28
+ const useReadyToRunWorkflowsV2Store = defineStore(
29
+ STORES.EXPERIMENT_READY_TO_RUN_WORKFLOWS_V2,
30
+ () => {
31
+ const telemetry = useTelemetry();
32
+ const i18n = useI18n();
33
+ const toast = useToast();
34
+ const router = useRouter();
35
+ const credentialsStore = useCredentialsStore();
36
+ const usersStore = useUsersStore();
37
+ const settingsStore = useSettingsStore();
38
+ const posthogStore = usePostHog();
39
+ const cloudPlanStore = useCloudPlanStore();
40
+ const isFeatureEnabled = computed(() => {
41
+ const variant = posthogStore.getVariant(READY_TO_RUN_V2_EXPERIMENT.name);
42
+ return (variant === READY_TO_RUN_V2_EXPERIMENT.variant1 || variant === READY_TO_RUN_V2_EXPERIMENT.variant2) && cloudPlanStore.userIsTrialing;
43
+ });
44
+ const claimedCredentialIdRef = useLocalStorage(LOCAL_STORAGE_CREDENTIAL_KEY, "");
45
+ const claimingCredits = ref(false);
46
+ const userHasOpenAiCredentialAlready = computed(
47
+ () => !!credentialsStore.allCredentials.filter(
48
+ (credential) => credential.type === OPEN_AI_API_CREDENTIAL_TYPE
49
+ ).length
50
+ );
51
+ const userHasClaimedAiCreditsAlready = computed(
52
+ () => !!usersStore.currentUser?.settings?.userClaimedAiCredits
53
+ );
54
+ const userCanClaimOpenAiCredits = computed(() => {
55
+ return settingsStore.isAiCreditsEnabled && !userHasOpenAiCredentialAlready.value && !userHasClaimedAiCreditsAlready.value;
56
+ });
57
+ const getCurrentVariant = () => {
58
+ return posthogStore.getVariant(READY_TO_RUN_V2_EXPERIMENT.name);
59
+ };
60
+ const trackExecuteAiWorkflow = (status) => {
61
+ const variant = getCurrentVariant();
62
+ telemetry.track("User executed ready to run AI workflow", {
63
+ status,
64
+ variant
65
+ });
66
+ };
67
+ const trackExecuteAiWorkflowSuccess = () => {
68
+ const variant = getCurrentVariant();
69
+ telemetry.track("User executed ready to run AI workflow successfully", {
70
+ variant
71
+ });
72
+ };
73
+ const claimFreeAiCredits = async (projectId) => {
74
+ claimingCredits.value = true;
75
+ try {
76
+ const credential = await credentialsStore.claimFreeAiCredits(projectId);
77
+ if (usersStore?.currentUser?.settings) {
78
+ usersStore.currentUser.settings.userClaimedAiCredits = true;
79
+ }
80
+ claimedCredentialIdRef.value = credential.id;
81
+ telemetry.track("User claimed OpenAI credits");
82
+ return credential;
83
+ } catch (e) {
84
+ toast.showError(
85
+ e,
86
+ i18n.baseText("freeAi.credits.showError.claim.title"),
87
+ i18n.baseText("freeAi.credits.showError.claim.message")
88
+ );
89
+ throw e;
90
+ } finally {
91
+ claimingCredits.value = false;
92
+ }
93
+ };
94
+ const openAiWorkflow = async (source, parentFolderId) => {
95
+ const variant = getCurrentVariant();
96
+ telemetry.track("User opened ready to run AI workflow", {
97
+ source,
98
+ variant
99
+ });
100
+ const workflow = variant === READY_TO_RUN_V2_EXPERIMENT.variant2 ? READY_TO_RUN_WORKFLOW_V2 : READY_TO_RUN_WORKFLOW_V1;
101
+ await router.push({
102
+ name: VIEWS.TEMPLATE_IMPORT,
103
+ params: { id: workflow.meta?.templateId },
104
+ query: { fromJson: "true", parentFolderId }
105
+ });
106
+ };
107
+ const claimCreditsAndOpenWorkflow = async (source, parentFolderId, projectId) => {
108
+ await claimFreeAiCredits(projectId);
109
+ await openAiWorkflow(source, parentFolderId);
110
+ };
111
+ const getCardVisibility = (canCreate, readOnlyEnv, loading) => {
112
+ return !loading && isFeatureEnabled.value && userCanClaimOpenAiCredits.value && !readOnlyEnv && canCreate;
113
+ };
114
+ const getButtonVisibility = (hasWorkflows, canCreate, readOnlyEnv) => {
115
+ return isFeatureEnabled.value && userCanClaimOpenAiCredits.value && !readOnlyEnv && canCreate && hasWorkflows;
116
+ };
117
+ const { shouldShowSimplifiedLayout } = useEmptyStateDetection();
118
+ const getSimplifiedLayoutVisibility = (route, loading) => {
119
+ return shouldShowSimplifiedLayout(route, isFeatureEnabled.value, loading);
120
+ };
121
+ return {
122
+ isFeatureEnabled,
123
+ claimingCredits,
124
+ userCanClaimOpenAiCredits,
125
+ claimFreeAiCredits,
126
+ openAiWorkflow,
127
+ claimCreditsAndOpenWorkflow,
128
+ getCardVisibility,
129
+ getButtonVisibility,
130
+ getSimplifiedLayoutVisibility,
131
+ trackExecuteAiWorkflow,
132
+ trackExecuteAiWorkflowSuccess
133
+ };
134
+ }
135
+ );
136
+ export {
137
+ useReadyToRunWorkflowsV2Store as u
138
+ };