n8n-editor-ui 1.106.1 → 1.107.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.
- package/dist/assets/AddDataStoreModal-D3j8deoq.css +133 -0
- package/dist/assets/AddDataStoreModal-DDkecCS5.js +108 -0
- package/dist/assets/{AnimatedSpinner-CNelXJxW.js → AnimatedSpinner-t1RMMNSe.js} +1 -1
- package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BptELjdm.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DabixM3K.js} +1 -1
- package/dist/assets/{AuthView-CPPbhtGS.js → AuthView-CFu30WWc.js} +9 -9
- package/dist/assets/{AuthView-DZB9HITQ.css → AuthView-CWVio_MZ.css} +9 -9
- package/dist/assets/{ChangePasswordView-Cmby8zoY.js → ChangePasswordView-CBig4YKe.js} +3 -3
- package/dist/assets/CollectionParameter-B1j_IqMK.js +4 -0
- package/dist/assets/{ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-Dqqp4ac7.js → ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-B9z4PBYx.js} +1 -1
- package/dist/assets/{CredentialsView-CJXL-1bL.js → CredentialsView-DDmJWE2r.js} +8 -8
- package/dist/assets/{DataStoreView-bZrewhaR.css → DataStoreView-D-Wmcgs5.css} +15 -10
- package/dist/assets/{DataStoreView-_YRbyjCa.js → DataStoreView-DgRkOh3I.js} +150 -71
- package/dist/assets/{DemoFooter-B15mfkPV.js → DemoFooter-BQH8fgeu.js} +6 -6
- package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-DI7KmJ0_.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-DWVikcET.js} +1 -1
- package/dist/assets/{EntityNotFound-CcFUGyDP.js → EntityNotFound-Dpf5mlyK.js} +3 -6
- package/dist/assets/{EntityNotFound-CBu7H3J_.css → EntityNotFound-DvXhVSfv.css} +2 -2
- package/dist/assets/{EntityUnAuthorised-BG-TRxIJ.js → EntityUnAuthorised-L-jtBCQ8.js} +1 -1
- package/dist/assets/{ErrorView-D48KsENu.js → ErrorView-KCU75Yt8.js} +1 -1
- package/dist/assets/{EvaluationsRootView-LdGwrJIs.js → EvaluationsRootView-v4H83Kch.js} +19 -5
- package/dist/assets/{EvaluationsView-DsmpZjlG.js → EvaluationsView-HlmYxGFH.js} +3 -3
- package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-a16EyLIx.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-HcTP3r42.js} +2 -2
- package/dist/assets/{ExecutionsView-CLWAKvdy.js → ExecutionsView-B1cATP_0.js} +8 -8
- package/dist/assets/{FixedCollectionParameter-CR8LTPoG.js → FixedCollectionParameter-CzvWd64p.js} +4 -3
- package/dist/assets/{FixedCollectionParameter-CEzpjeQZ.css → FixedCollectionParameter-DTkvAml6.css} +18 -18
- package/dist/assets/{ForgotMyPasswordView-5tgaN8ke.js → ForgotMyPasswordView-DKVL1kSx.js} +3 -3
- package/dist/assets/{InfoAccordion-DeO6hC1F.js → InfoAccordion-Ba-DFW30.js} +1 -1
- package/dist/assets/{InsightsChartAverageRuntime-YWhQCYJi.js → InsightsChartAverageRuntime-BiePIN7b.js} +4 -4
- package/dist/assets/{InsightsChartFailed-BKdlXvoJ.js → InsightsChartFailed-BD0nZHgc.js} +4 -4
- package/dist/assets/{InsightsChartFailureRate-BQM3KyGw.js → InsightsChartFailureRate-D9mgJ-JO.js} +4 -4
- package/dist/assets/{InsightsChartTimeSaved-B9ZGnk2Y.js → InsightsChartTimeSaved-CMF8Ix5Z.js} +4 -4
- package/dist/assets/{InsightsChartTotal-B_QgLNJe.js → InsightsChartTotal-DpXyQHic.js} +4 -4
- package/dist/assets/{InsightsDashboard-DpKFXx1_.js → InsightsDashboard-DXaQjC5E.js} +10 -10
- package/dist/assets/{InsightsPaywall-BEnBA_oG.js → InsightsPaywall-BuclvKbC.js} +1 -1
- package/dist/assets/{InsightsSummary-C2OXzc3_.js → InsightsSummary-B-mKtkfy.js} +1 -1
- package/dist/assets/{InsightsTableWorkflows-CHgPK1AG.js → InsightsTableWorkflows-CJQBR7-b.js} +4 -4
- package/dist/assets/{Logo-BoIqUrfh.js → Logo-DDLQ8kqu.js} +7 -7
- package/dist/assets/{Logo-DLBj1gMw.css → Logo-DaegEk2m.css} +9 -9
- package/dist/assets/{LogsPanel-wngrETx-.js → LogsPanel-BqOUfEMV.js} +8 -10
- package/dist/assets/{MainHeader-qSHM1Rvp.css → MainHeader-C7eM_NQZ.css} +203 -115
- package/dist/assets/{MainHeader-CTjEFOEQ.js → MainHeader-D4ZAxLz1.js} +435 -66
- package/dist/assets/{MainSidebar-D5-JTqU5.js → MainSidebar-CTA14T_8.js} +2 -2
- package/dist/assets/{NodeCreation-Dx_ZFP4I.js → NodeCreation-DbkQpvFw.js} +3 -3
- package/dist/assets/{NodeCreator-Cb92WDsx.css → NodeCreator-COgNP4W1.css} +39 -31
- package/dist/assets/{NodeCreator-EZL35vF_.js → NodeCreator-DcZOynzf.js} +104 -45
- package/dist/assets/{NodeDetailsView-Cam4nPwL.css → NodeDetailsView-CjdovDgq.css} +16 -16
- package/dist/assets/{NodeDetailsView-D_zBP3Bb.js → NodeDetailsView-F-sJxxhM.js} +27 -27
- package/dist/assets/{NodeDetailsViewV2-LzYZcnv5.css → NodeDetailsViewV2-Bn1PbAPe.css} +18 -22
- package/dist/assets/{NodeDetailsViewV2-CAJnQ07m.js → NodeDetailsViewV2-Cbnea1wY.js} +28 -28
- package/dist/assets/{NodeView-BvMrPj18.js → NodeView-CATT0f4w.js} +118 -76
- package/dist/assets/{NodeView-BMiOpmk4.css → NodeView-CiaJbQtZ.css} +12 -9
- package/dist/assets/{ProjectHeader-CPQrclqi.js → ProjectHeader-BmTqrjC0.js} +20 -3
- package/dist/assets/{ProjectSettings-DgMto7tc.js → ProjectSettings-DIA0ABl-.js} +3 -3
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-BZtkrOl0.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-alP-LQay.js} +1 -1
- package/dist/assets/{ResourcesListLayout-6eIqe4Ld.css → ResourcesListLayout-C1JgyGhX.css} +24 -24
- package/dist/assets/{ResourcesListLayout-DwQ-KO8O.js → ResourcesListLayout-DBQ41l-N.js} +12 -12
- package/dist/assets/{RunDataJson-NKGXU_0S.js → RunDataJson-CnlaOCHR.js} +3 -3
- package/dist/assets/{RunDataJsonActions-DWu07Sg3.js → RunDataJsonActions-CHGX_9mu.js} +1 -1
- package/dist/assets/{RunDataParsedAiContent-CbuJCBp_.js → RunDataParsedAiContent-CBGmuTeK.js} +2 -2
- package/dist/assets/{RunDataSearch-CyaajiwJ.js → RunDataSearch-cdg3lZXl.js} +1 -1
- package/dist/assets/{RunDataTable-DnoqsyNq.js → RunDataTable-COnddmnl.js} +1 -1
- package/dist/assets/{SamlOnboarding-BRzm3bo_.js → SamlOnboarding-_aN-z5D5.js} +3 -3
- package/dist/assets/{SettingsApiView-ivqbOHhT.js → SettingsApiView-CT74ox3y.js} +1 -1
- package/dist/assets/{SettingsCommunityNodesView-Cx8vBXR6.js → SettingsCommunityNodesView-YYL8cuGm.js} +4 -4
- package/dist/assets/{SettingsExternalSecrets-Wn429MD6.js → SettingsExternalSecrets-uqxymPTo.js} +1 -1
- package/dist/assets/{SettingsLdapView-Bx1eqk76.css → SettingsLdapView-D0SUO3ai.css} +10 -10
- package/dist/assets/{SettingsLdapView-DCtzJ_64.js → SettingsLdapView-x9Q_FpS3.js} +8 -8
- package/dist/assets/{SettingsLogStreamingView-DKXo0eU8.js → SettingsLogStreamingView-DsLgQaW0.js} +1 -1
- package/dist/assets/{SettingsPersonalView-VzUT1CPv.js → SettingsPersonalView-DdlnYUxs.js} +1 -1
- package/dist/assets/{SettingsSourceControl-HcZJv6oW.js → SettingsSourceControl-BVdy4OjU.js} +1 -1
- package/dist/assets/{SettingsSso-Cfx5v2kB.js → SettingsSso-DNXYB15P.js} +1 -1
- package/dist/assets/{SettingsUsageAndPlan-V2l1gNEl.js → SettingsUsageAndPlan-C-feEdnA.js} +2 -2
- package/dist/assets/{SettingsUsageAndPlan-ZZQpCmyQ.css → SettingsUsageAndPlan-_VxSs28G.css} +3 -3
- package/dist/assets/{SettingsUsersView-RQTdLxyb.css → SettingsUsersView-BG7JdfYz.css} +9 -9
- package/dist/assets/{SettingsUsersView-2-bhlusf.js → SettingsUsersView-BQz_83Ye.js} +9 -9
- package/dist/assets/{SettingsView-fv8tG-N8.js → SettingsView-Dn44WuGS.js} +1 -1
- package/dist/assets/{SetupView-B_8QsEwf.js → SetupView-D7gW-X-t.js} +3 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-YvSvOa40.js → SetupWorkflowCredentialsButton-BiHvkCQe.js} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-DHUtu9hz.js → SetupWorkflowFromTemplateView-xhqOvVy6.js} +3 -3
- package/dist/assets/{SigninView-DnY5XrJt.js → SigninView-CE7Z5QNy.js} +3 -3
- package/dist/assets/{SignoutView-DBW6U-W1.js → SignoutView-BNsjaEt2.js} +1 -1
- package/dist/assets/{SignupView-B2k8UZuK.js → SignupView-B_JgbfoK.js} +3 -3
- package/dist/assets/{TableBase-j-43b-BE.js → TableBase-IV317tIn.js} +1 -1
- package/dist/assets/Tag-Bs4tMVi1.js +32 -0
- package/dist/assets/{Tags-B0bIUnzf.css → Tag-Cg-Hqs2H.css} +0 -141
- package/dist/assets/{Tags-DgGumzup.js → Tags-BDQ6pSco.js} +6 -33
- package/dist/assets/Tags-CCemj7t9.css +142 -0
- package/dist/assets/{TemplateDetails-CXGIerQ_.js → TemplateDetails-CIut2d5l.js} +3 -10
- package/dist/assets/{TemplateList-Do4Ut3DG.js → TemplateList-MF9qk_Mr.js} +8 -8
- package/dist/assets/{TemplateList-DcOqRM10.css → TemplateList-XNW-2Ugr.css} +8 -8
- package/dist/assets/{TemplatesCollectionView-DLhzSdM1.js → TemplatesCollectionView-Divk1M5I.js} +7 -6
- package/dist/assets/{TemplatesSearchView-CfkkwaEu.js → TemplatesSearchView-DShAFA6Z.js} +3 -3
- package/dist/assets/{TemplatesView-DIc4T7Sq.js → TemplatesView-FzgXsHss.js} +1 -1
- package/dist/assets/{TemplatesWorkflowView-DykWFToE.js → TemplatesWorkflowView-B-6ubwdm.js} +7 -6
- package/dist/assets/{TriggerPanel-gMtmEr6n.css → TriggerPanel-DmVMaaLr.css} +25 -45
- package/dist/assets/{TriggerPanel-CawHOOEB.js → TriggerPanel-W_Nbke2V.js} +34 -29
- package/dist/assets/{VariablesView-8ufP_Pbm.js → VariablesView-BN0j_wjI.js} +5 -5
- package/dist/assets/{WorkerView-4N9b1GrL.js → WorkerView-CvQXBJAT.js} +6 -6
- package/dist/assets/{WorkflowActivator-DhLX6i1H.css → WorkflowActivator-22RW64G2.css} +3 -4
- package/dist/assets/{WorkflowActivator-By2YPIxR.js → WorkflowActivator-Gdx2psBe.js} +4 -4
- package/dist/assets/{WorkflowExecutionsInfoAccordion-Dq5uAvFb.js → WorkflowExecutionsInfoAccordion-Qy1H_aGh.js} +2 -2
- package/dist/assets/{WorkflowExecutionsLandingPage-qTq7jXZd.js → WorkflowExecutionsLandingPage-VyfOoFBc.js} +3 -3
- package/dist/assets/{WorkflowExecutionsPreview-DH0t9oMG.js → WorkflowExecutionsPreview-BTPy5UO3.js} +4 -4
- package/dist/assets/{WorkflowExecutionsView-CvcWVL1q.js → WorkflowExecutionsView-D0jk13yH.js} +7 -6
- package/dist/assets/{WorkflowHistory-BoPbDI2w.js → WorkflowHistory-K7vjdmt1.js} +2 -2
- package/dist/assets/{WorkflowOnboardingView-CfdRMdb_.js → WorkflowOnboardingView-DNnkrH0z.js} +1 -1
- package/dist/assets/{WorkflowPreview-CRcYeBph.js → WorkflowPreview-DwjOC1mA.js} +1 -1
- package/dist/assets/{WorkflowsView-Dp2UtSsK.js → WorkflowsView-Cj7NMxOp.js} +201 -48
- package/dist/assets/{WorkflowsView-DsJIOJ7h.css → WorkflowsView-eYGsq80b.css} +267 -0
- package/dist/assets/{canvas-FB8uqaY-.js → canvas-DQItRt4U.js} +1 -1
- package/dist/assets/{chartjs.utils-CDdXZsf8.js → chartjs.utils-UQDAHC5I.js} +2 -2
- package/dist/assets/{VueMarkdown-CXxTuRRR.js → core-Bo_NVe2z.js} +26 -26
- package/dist/assets/dataStore.store-DKjB6WKV.js +98 -0
- package/dist/assets/{en-ORjqW56z.js → en-B7EAgfR5.js} +50 -2
- package/dist/assets/{global-link-actions-CLAUq-Uc.js → global-link-actions-By3D6cvY.js} +1 -1
- package/dist/assets/{index-B09aakje.css → index-BFyMw9-0.css} +8121 -7775
- package/dist/assets/{index-C7wt32Q4.js → index-D5oI3RTP.js} +1 -1
- package/dist/assets/{index-BoUr_2PB.js → index-DDSBmiav.js} +62368 -60942
- package/dist/assets/{pickBy-BEyZL_eY.js → pickBy-DatIkmCi.js} +1 -1
- package/dist/assets/{readyToRunWorkflows.store-BujC1ADB.js → readyToRunWorkflows.store-6LXk59HV.js} +1 -1
- package/dist/assets/{templateActions-bUKZTAXx.js → templateActions-DPAnbELi.js} +1 -1
- package/dist/assets/{typescript.worker-KwUz68Jx.js → typescript.worker-ku8s_Oaf.js} +8407 -7241
- package/dist/assets/{useBeforeUnload-CvFcYuae.js → useBeforeUnload-D0W7T4lC.js} +1 -1
- package/dist/assets/{useExecutionDebugging-CuyWUrpA.js → useExecutionDebugging-_kB4yo21.js} +4 -4
- package/dist/assets/{useImportCurlCommand-KUrfAIVU.js → useImportCurlCommand-BL_O7m5M.js} +1 -1
- package/dist/assets/{useProjectPages-BJ7N1xfl.js → useProjectPages-CGM579dS.js} +1 -1
- package/dist/assets/{usePushConnection-klqSpf_T.js → usePushConnection-Bl528ZwO.js} +18 -18
- package/dist/assets/{useWorkflowActivate-DZbVs_iD.js → useWorkflowActivate-DVGKXFvY.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/stylelint.config.mjs +3 -0
- package/dist/assets/CollectionParameter-mnvV48iw.js +0 -4
|
@@ -1,16 +1,223 @@
|
|
|
1
|
-
import { d as defineComponent, x as computed,
|
|
2
|
-
import { _ as __unplugin_components_0, W as WorkflowActivator } from "./WorkflowActivator-
|
|
3
|
-
import { _ as _sfc_main$
|
|
4
|
-
import { u as useBeforeUnload } from "./useBeforeUnload-
|
|
5
|
-
import {
|
|
6
|
-
import "./
|
|
7
|
-
import "./
|
|
8
|
-
import "./
|
|
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-DDSBmiav.js";
|
|
2
|
+
import { _ as __unplugin_components_0, W as WorkflowActivator } from "./WorkflowActivator-Gdx2psBe.js";
|
|
3
|
+
import { _ as _sfc_main$f } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-alP-LQay.js";
|
|
4
|
+
import { u as useBeforeUnload } from "./useBeforeUnload-D0W7T4lC.js";
|
|
5
|
+
import { T as Tag } from "./Tag-Bs4tMVi1.js";
|
|
6
|
+
import { u as usePushConnection } from "./usePushConnection-Bl528ZwO.js";
|
|
7
|
+
import "./useWorkflowActivate-DVGKXFvY.js";
|
|
8
|
+
import "./global-link-actions-By3D6cvY.js";
|
|
9
|
+
import "./readyToRunWorkflows.store-6LXk59HV.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$
|
|
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$
|
|
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$
|
|
147
|
-
"$style": style0$
|
|
353
|
+
const cssModules$4 = {
|
|
354
|
+
"$style": style0$3
|
|
148
355
|
};
|
|
149
|
-
const N8nUserStack = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
150
|
-
const _sfc_main$
|
|
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$
|
|
388
|
+
const style0$2 = {
|
|
182
389
|
container: container$3
|
|
183
390
|
};
|
|
184
|
-
const cssModules$
|
|
185
|
-
"$style": style0$
|
|
391
|
+
const cssModules$3 = {
|
|
392
|
+
"$style": style0$2
|
|
186
393
|
};
|
|
187
|
-
const TabBar = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
188
|
-
const _sfc_main$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
423
|
-
const _sfc_main$
|
|
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$
|
|
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$
|
|
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$
|
|
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: "
|
|
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"
|
|
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$
|
|
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$
|
|
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$
|
|
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
|
-
_:
|
|
1357
|
-
},
|
|
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$
|
|
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$
|
|
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$
|
|
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(
|
|
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-
|
|
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 = "
|
|
2201
|
+
const container = "_container_gg3to_123";
|
|
1833
2202
|
const style0 = {
|
|
1834
2203
|
container,
|
|
1835
|
-
"main-header": "_main-
|
|
1836
|
-
"top-menu": "_top-
|
|
1837
|
-
"github-button": "_github-
|
|
1838
|
-
"close-github-button": "_close-github-
|
|
1839
|
-
"github-button-container": "_github-button-
|
|
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
|