n8n-editor-ui 1.103.1 → 1.104.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.
- package/dist/assets/{ActionDropdown-BhU4vCrE.js → ActionDropdown-DkHCqhLi.js} +1 -1
- package/dist/assets/{AnimatedSpinner-Du5eXSIY.js → AnimatedSpinner-D6j3zAN7.js} +1 -1
- package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DEQTwSbx.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CeptN1qB.js} +1 -1
- package/dist/assets/{AuthView-BJ-YTYTN.js → AuthView-DdzGr3if.js} +2 -2
- package/dist/assets/{ChangePasswordView-B-OkU_yr.js → ChangePasswordView-CLbLuldY.js} +3 -3
- package/dist/assets/CollectionParameter-C3JIvBsy.js +4 -0
- package/dist/assets/ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-DwQ0BmLY.js +44 -0
- package/dist/assets/{CredentialsView-BjUZvEdd.js → CredentialsView-Cbm8N2D-.js} +8 -8
- package/dist/assets/{DemoFooter-9WRPL1Nd.js → DemoFooter-DlHqx3Wb.js} +9 -8
- package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-D3Zaxt4S.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-Dymz7mm-.js} +1 -1
- package/dist/assets/{EntityNotFound-DvAk0XOf.js → EntityNotFound-CmBDOsai.js} +1 -1
- package/dist/assets/{EntityUnAuthorised-BTLaJBAA.js → EntityUnAuthorised-CNPmvmZu.js} +1 -1
- package/dist/assets/{ErrorView-KDDRlAEN.js → ErrorView-BqgIhqko.js} +1 -1
- package/dist/assets/{EvaluationsRootView-BViIGqmh.js → EvaluationsRootView-B6RDbMu9.js} +5 -3
- package/dist/assets/{EvaluationsView-6l_Invxt.css → EvaluationsView-BTyYfInB.css} +6 -6
- package/dist/assets/{EvaluationsView-BY0HmUSo.js → EvaluationsView-nr07_JFX.js} +53 -40
- package/dist/assets/{ExecutionsTime-DkME6I3E.css → ExecutionsTime-Bo7IOE5K.css} +6 -6
- package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-Dz1TldYs.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-Ci1SWv1r.js} +15 -12
- package/dist/assets/{ExecutionsView-z5GL4TFM.js → ExecutionsView-L8QB4qb-.js} +21 -18
- package/dist/assets/{FileSaver.min-BRpMoNCX.js → FileSaver.min-CiFUM_59.js} +1 -1
- package/dist/assets/{FixedCollectionParameter-BW_7bc6a.js → FixedCollectionParameter-BMsoLNRT.js} +1 -1
- package/dist/assets/{ForgotMyPasswordView-C3yPX8Sm.js → ForgotMyPasswordView-BYKQXHHe.js} +3 -3
- package/dist/assets/{InfoAccordion-B3ebdljQ.js → InfoAccordion-DN17_QNh.js} +1 -1
- package/dist/assets/{InsightsChartAverageRuntime-B07vNUKi.js → InsightsChartAverageRuntime-DX6MWomC.js} +5 -4
- package/dist/assets/{InsightsChartFailed-vwVIlrMM.js → InsightsChartFailed-D1ITW7ip.js} +5 -4
- package/dist/assets/{InsightsChartFailureRate-3R9NR__K.js → InsightsChartFailureRate-DsoCFhrx.js} +5 -4
- package/dist/assets/{InsightsChartTimeSaved-0XAZRsQL.js → InsightsChartTimeSaved-Cwb0-EZ1.js} +5 -4
- package/dist/assets/{InsightsChartTotal-QtHpPQPx.js → InsightsChartTotal-B-SjjDG4.js} +5 -4
- package/dist/assets/{InsightsDashboard-CXbI-Jyg.css → InsightsDashboard-C27Avzrv.css} +2 -2
- package/dist/assets/{InsightsDashboard-jAR8co6U.js → InsightsDashboard-DEaMMGfn.js} +19 -19
- package/dist/assets/{InsightsPaywall-CqlSj87d.js → InsightsPaywall-BsiLaxNd.js} +3 -3
- package/dist/assets/{InsightsSummary-1EyHgtD2.js → InsightsSummary-hBcY77J_.js} +9 -4
- package/dist/assets/{InsightsTableWorkflows-RGpSnp7n.css → InsightsTableWorkflows-BTHSCwX8.css} +27 -3
- package/dist/assets/{InsightsTableWorkflows-CMfER3Lz.js → InsightsTableWorkflows-D9vFPmUm.js} +80 -26
- package/dist/assets/{Logo-BAbynr3J.js → Logo-D-nqGbZ-.js} +1 -1
- package/dist/assets/{LogsPanel-C4P2jfja.js → LogsPanel-D0QGW50a.js} +16 -11
- package/dist/assets/{LogsPanel-Bvy4ANV7.css → LogsPanel-D0xdq4fV.css} +21 -21
- package/dist/assets/{MainHeader-2VAdoAN3.js → MainHeader-QpSmh7DV.js} +17 -16
- package/dist/assets/{MainHeader-DYYEm7nF.css → MainHeader-qSHM1Rvp.css} +12 -12
- package/dist/assets/{MainSidebar-CaLHZgDB.css → MainSidebar-D74VZmM5.css} +7 -8
- package/dist/assets/{MainSidebar-ChT_fvtq.js → MainSidebar-Dndr9Vcx.js} +26 -25
- package/dist/assets/{N8nDataTableServer-CUJVgPuN.js → N8nDataTableServer-B4Gq_Urn.js} +20 -10
- package/dist/assets/{NodeCreation-B0_VqZl0.js → NodeCreation-CRGHu2mV.js} +11 -9
- package/dist/assets/{NodeCreator-Dudc-sld.js → NodeCreator-BvleRmX-.js} +114 -197
- package/dist/assets/{NodeCreator-DWE25utr.css → NodeCreator-CkvY2niF.css} +0 -128
- package/dist/assets/{NodeDetailsView-D3jGDk45.js → NodeDetailsView-xvbRzTfv.js} +21 -16
- package/dist/assets/{NodeDetailsViewV2-B0iyvHRQ.js → NodeDetailsViewV2-CBY4UJcE.js} +21 -16
- package/dist/assets/{NodeView-CX3GlUP1.js → NodeView-Dm74W6kN.js} +2068 -746
- package/dist/assets/{NodeView-hst6fesm.css → NodeView-G2qfXaOy.css} +755 -71
- package/dist/assets/{ProjectHeader-CBBQ32Nc.js → ProjectHeader-0NxiEwQl.js} +2 -2
- package/dist/assets/{ProjectSettings-D7CCWy0v.js → ProjectSettings-ClM6Y9uS.js} +7 -5
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-aTaPuBRW.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-D5JeFl_d.js} +1 -1
- package/dist/assets/{ResourcesListLayout-CR6jD0wL.js → ResourcesListLayout-BRro9C-1.js} +3 -3
- package/dist/assets/{RunDataJson-PZfvyEtF.js → RunDataJson-12Py20Rs.js} +6 -7
- package/dist/assets/{RunDataJsonActions-BmrxonyU.js → RunDataJsonActions-BGl8YYU0.js} +1 -1
- package/dist/assets/{RunDataParsedAiContent-b0irqoyM.js → RunDataParsedAiContent-DYz5OPxJ.js} +2 -2
- package/dist/assets/{RunDataSearch-DS17rPDS.js → RunDataSearch-NmwtxOjZ.js} +1 -1
- package/dist/assets/{RunDataTable-DgBV9mGl.js → RunDataTable-DJu8Ut0r.js} +17 -17
- package/dist/assets/{SamlOnboarding-COuXHYGq.js → SamlOnboarding-B5vqtns9.js} +3 -3
- package/dist/assets/{SettingsApiView-Bjmx5RKa.js → SettingsApiView-DmOvPlm6.js} +5 -4
- package/dist/assets/{SettingsCommunityNodesView-JkmQWaRv.js → SettingsCommunityNodesView-DEgzWHlF.js} +4 -3
- package/dist/assets/{SettingsExternalSecrets-unJLQHhU.js → SettingsExternalSecrets-4VNCsQKo.js} +5 -3
- package/dist/assets/{SettingsLdapView-DvZbXhb2.js → SettingsLdapView-BSQe5yy-.js} +1 -1
- package/dist/assets/{SettingsLogStreamingView-DT_BpBbv.js → SettingsLogStreamingView-Y-ve-MUB.js} +1 -1
- package/dist/assets/{SettingsPersonalView-D0VCYPEd.js → SettingsPersonalView-DTWO2GIc.js} +1 -1
- package/dist/assets/{SettingsSourceControl-CatnTfFf.js → SettingsSourceControl-D14mBzgS.js} +10 -8
- package/dist/assets/{SettingsSso-CxWN7WTJ.js → SettingsSso-Beon1K6u.js} +1 -1
- package/dist/assets/{SettingsUsageAndPlan-D6TiPwUx.css → SettingsUsageAndPlan-ZZQpCmyQ.css} +3 -3
- package/dist/assets/{SettingsUsageAndPlan-BMsLzUeh.js → SettingsUsageAndPlan-hc6EFbHM.js} +15 -10
- package/dist/assets/{SettingsUsersView-hbKTH9np.js → SettingsUsersView-CIzwxl6-.js} +105 -44
- package/dist/assets/{SettingsUsersView-B81cHl3f.css → SettingsUsersView-RQTdLxyb.css} +11 -7
- package/dist/assets/{SettingsView-C3FWxmaD.js → SettingsView-Bv-AL-MH.js} +1 -1
- package/dist/assets/{SetupView-DdjBoiKa.js → SetupView-BCKg0AbF.js} +3 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-BX8a8Tuq.js → SetupWorkflowCredentialsButton-djsoNbvZ.js} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-D9BTRma8.js → SetupWorkflowFromTemplateView-CZhYUSco.js} +3 -3
- package/dist/assets/{SigninView-D8iOgwLO.js → SigninView-BPl0jjB0.js} +3 -3
- package/dist/assets/{SignoutView-DXt0Sdaq.js → SignoutView-BHPz3HFX.js} +1 -1
- package/dist/assets/{SignupView-D6pEOFGY.js → SignupView-Cel8_b46.js} +3 -3
- package/dist/assets/{TableBase-6tpR_KYY.js → TableBase-BIT7ArUw.js} +1 -1
- package/dist/assets/{Tags-3OtmQZg1.js → Tags-CQIEP_IZ.js} +1 -1
- package/dist/assets/{TemplateDetails-Bvec_Syb.js → TemplateDetails-B8u34j2l.js} +2 -2
- package/dist/assets/{TemplateList-B0_W0uvx.js → TemplateList-BJSJYiHs.js} +1 -1
- package/dist/assets/{TemplatesCollectionView-ChXD8R-e.js → TemplatesCollectionView-BCAAV1n9.js} +6 -6
- package/dist/assets/{TemplatesSearchView-B_cMlFlv.js → TemplatesSearchView-CXOrNnyk.js} +3 -3
- package/dist/assets/{TemplatesView-CziYbcJq.js → TemplatesView-1HunP4nN.js} +1 -1
- package/dist/assets/{TemplatesWorkflowView-Hb4zWBu5.js → TemplatesWorkflowView-0enp4pR7.js} +6 -6
- package/dist/assets/{TriggerPanel-BsmQ9v2s.js → TriggerPanel-B-Jt4r3F.js} +133 -981
- package/dist/assets/{TriggerPanel-DRpKKKun.css → TriggerPanel-DJv04feX.css} +1 -354
- package/dist/assets/{VariablesView-WOzl2JBK.js → VariablesView-mSWZzDyf.js} +5 -5
- package/dist/assets/VueMarkdown-Dxf59_T_.js +1570 -0
- package/dist/assets/{WorkerView-C0gI6gbP.js → WorkerView-DbqNyqok.js} +6 -5
- package/dist/assets/{WorkflowActivator-B96_pQnb.js → WorkflowActivator-C33REd8m.js} +2 -2
- package/dist/assets/{WorkflowExecutionsInfoAccordion-DFCLkh95.js → WorkflowExecutionsInfoAccordion-CCe9jbiT.js} +2 -2
- package/dist/assets/{WorkflowExecutionsLandingPage-B3aM2Zsk.js → WorkflowExecutionsLandingPage-DMXVsIHS.js} +3 -3
- package/dist/assets/{WorkflowExecutionsPreview-D6oMyJtk.js → WorkflowExecutionsPreview-Dit3_l9q.js} +5 -5
- package/dist/assets/{WorkflowExecutionsView-BiKDjD1D.js → WorkflowExecutionsView-BwLTPvQ7.js} +8 -8
- package/dist/assets/{WorkflowHistory-CgxAK62K.js → WorkflowHistory-BgNzJgze.js} +6 -6
- package/dist/assets/{WorkflowOnboardingView-tKN781CD.js → WorkflowOnboardingView-Bnvmd6lJ.js} +1 -1
- package/dist/assets/{WorkflowPreview-CDgvgZcr.js → WorkflowPreview-DIDMhnNP.js} +1 -1
- package/dist/assets/{WorkflowsView-zxJZKrLk.js → WorkflowsView-DxtULRby.js} +125 -17
- package/dist/assets/aiTemplatesStarterCollection.store-DrHWcqtc.js +795 -0
- package/dist/assets/{chartjs.utils-EXdTT15A.js → chartjs.utils-DQHNgzzp.js} +2 -2
- package/dist/assets/{en-FjyeYndD.js → en-BX7CKkqE.js} +22 -6
- package/dist/assets/{global-link-actions-NNtNk_7A.js → global-link-actions-DzXrk-LO.js} +1 -1
- package/dist/assets/{import-curl-DcVVML3m.js → import-curl-BrVSOGQW.js} +1 -1
- package/dist/assets/{index-C6LoGNAx.css → index-BWpYwmXd.css} +548 -948
- package/dist/assets/{index-BEC9W_3K.js → index-BmZCxv8-.js} +48318 -42852
- package/dist/assets/{index-CFNl0R-J.js → index-x7t8iCsI.js} +1 -1
- package/dist/assets/{pickBy-BXP1QU1C.js → pickBy-oHD63WOf.js} +1 -1
- package/dist/assets/{templateActions-DWb-SuCl.js → templateActions-_QLqrCsm.js} +1 -1
- package/dist/assets/{typescript.worker-CUj0Nj-S.js → typescript.worker-KwUz68Jx.js} +2499 -157
- package/dist/assets/{useBeforeUnload-uH0nIAM3.js → useBeforeUnload-CBmJdmlS.js} +1 -1
- package/dist/assets/{useExecutionDebugging-bE32iQtx.js → useExecutionDebugging-B22Oj62X.js} +1 -1
- package/dist/assets/{useExecutionHelpers-CXZC4OGe.js → useExecutionHelpers-C6meisqx.js} +1 -1
- package/dist/assets/{useImportCurlCommand-Bxi0W0ub.js → useImportCurlCommand-CCUM_iVn.js} +9 -9
- package/dist/assets/{RunData-D0dKnadD.css → useKeybindings-2A271Jke.css} +134 -2
- package/dist/assets/{RunData-CY2AnQ-5.js → useKeybindings-CcHEvN6i.js} +223 -1644
- package/dist/assets/{useProjectPages-BKkEKuqG.js → useProjectPages-CrI3xlbd.js} +1 -1
- package/dist/assets/{usePushConnection-TyXi_EKD.js → usePushConnection-EYkv1Xyg.js} +10 -2
- package/dist/assets/{useWorkflowActivate-BRxfn_zV.js → useWorkflowActivate-BiorS_mB.js} +1 -1
- package/dist/index.html +3 -7
- package/index.html +1 -5
- package/package.json +1 -1
- package/vite.config.mts +23 -3
- package/dist/assets/CollectionParameter-BHthTTpD.js +0 -4
- package/dist/assets/useKeybindings-BUK7Ngh6.css +0 -133
- package/dist/assets/useKeybindings-D5pwrTFM.js +0 -188
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a6 as useRoute, x as computed, V as VIEWS, eI as reactive } from "./index-BmZCxv8-.js";
|
|
2
2
|
const useProjectPages = () => {
|
|
3
3
|
const route = useRoute();
|
|
4
4
|
const isOverviewSubPage = computed(
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { g as globalLinkActionsEventBus } from "./global-link-actions-
|
|
1
|
+
import { gM as makeRestApiRequest, a5 as useWorkflowsStore, T as useUIStore, gN as clearPopupWindowState, eY as getEasyAiWorkflowJson, az as useTelemetry, cc as parse, gO as hasTrimmedItem, v as useSettingsStore, ak as useWorkflowSaving, al as useWorkflowHelpers, aD as WORKFLOW_SETTINGS_MODAL_KEY, a as useToast, gP as generateNodesGraph, c as useI18n, gQ as getExecutionErrorToastConfiguration, bH as useNodeTypesStore, e9 as getTriggerNodeServiceName, bC as useNodeHelpers, gR as hasTrimmedData, be as useExternalHooks, gS as codeNodeEditorEventBus, eR as EVALUATION_TRIGGER_NODE_TYPE, bD as useRunWorkflow, gT as getExecutionErrorMessage, du as useCredentialsStore, fa as useAssistantStore, fe as useSchemaPreviewStore, dd as isCommunityPackageName, a3 as defineStore, ad as useRootStore, a4 as usePushConnectionStore, r as ref } from "./index-BmZCxv8-.js";
|
|
2
|
+
import { g as globalLinkActionsEventBus } from "./global-link-actions-DzXrk-LO.js";
|
|
3
|
+
import { u as useAITemplatesStarterCollectionStore } from "./aiTemplatesStarterCollection.store-DrHWcqtc.js";
|
|
3
4
|
var GET_STATUS_ENDPOINT = "/orchestration/worker/status";
|
|
4
5
|
var sendGetWorkerStatus = async (context) => {
|
|
5
6
|
await makeRestApiRequest(context, "POST", GET_STATUS_ENDPOINT);
|
|
@@ -7,6 +8,7 @@ var sendGetWorkerStatus = async (context) => {
|
|
|
7
8
|
async function executionFinished({ data }, options) {
|
|
8
9
|
const workflowsStore = useWorkflowsStore();
|
|
9
10
|
const uiStore = useUIStore();
|
|
11
|
+
const aiTemplatesStarterCollectionStore = useAITemplatesStarterCollectionStore();
|
|
10
12
|
workflowsStore.lastAddedExecutingNode = null;
|
|
11
13
|
if (typeof workflowsStore.activeExecutionId === "undefined") {
|
|
12
14
|
return;
|
|
@@ -22,6 +24,12 @@ async function executionFinished({ data }, options) {
|
|
|
22
24
|
status: data.status
|
|
23
25
|
});
|
|
24
26
|
}
|
|
27
|
+
if (workflow.meta.templateId.startsWith("035_template_onboarding")) {
|
|
28
|
+
aiTemplatesStarterCollectionStore.trackUserExecutedWorkflow(
|
|
29
|
+
workflow.meta.templateId.split("-").pop() ?? "",
|
|
30
|
+
data.status
|
|
31
|
+
);
|
|
32
|
+
}
|
|
25
33
|
}
|
|
26
34
|
uiStore.setProcessingExecutionResults(true);
|
|
27
35
|
let successToastAlreadyShown = false;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as ref, b as useRouter,
|
|
1
|
+
import { r as ref, b as useRouter, al as useWorkflowHelpers, ak as useWorkflowSaving, a5 as useWorkflowsStore, T as useUIStore, a as useToast, ai as useNpsSurveyStore, a7 as PLACEHOLDER_EMPTY_WORKFLOW_ID, az as useTelemetry, be as useExternalHooks, c as useI18n, b5 as useStorage, g$ as LOCAL_STORAGE_ACTIVATION_FLAG, h0 as WORKFLOW_ACTIVE_MODAL_KEY } from "./index-BmZCxv8-.js";
|
|
2
2
|
function useWorkflowActivate() {
|
|
3
3
|
const updatingWorkflowActivation = ref(false);
|
|
4
4
|
const router = useRouter();
|
package/dist/index.html
CHANGED
|
@@ -8,16 +8,12 @@
|
|
|
8
8
|
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
|
9
9
|
<link rel="icon" href="/{{BASE_PATH}}/favicon.ico" />
|
|
10
10
|
<style>@media (prefers-color-scheme: dark) { body { background-color: rgb(45, 46, 46) } }</style>
|
|
11
|
-
<script
|
|
12
|
-
window.BASE_PATH = '/{{BASE_PATH}}/';
|
|
13
|
-
window.REST_ENDPOINT = '{{REST_ENDPOINT}}';
|
|
14
|
-
</script>
|
|
15
|
-
<script src="/{{REST_ENDPOINT}}/sentry.js"></script>
|
|
11
|
+
<script src="/{{REST_ENDPOINT}}/config.js"></script>
|
|
16
12
|
<script>!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled getFeatureFlag onFeatureFlags reloadFeatureFlags".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[])</script>
|
|
17
13
|
|
|
18
14
|
<title>n8n.io - Workflow Automation</title>
|
|
19
|
-
<script type="module" crossorigin src="/{{BASE_PATH}}/assets/index-
|
|
20
|
-
<link rel="stylesheet" crossorigin href="/{{BASE_PATH}}/assets/index-
|
|
15
|
+
<script type="module" crossorigin src="/{{BASE_PATH}}/assets/index-BmZCxv8-.js"></script>
|
|
16
|
+
<link rel="stylesheet" crossorigin href="/{{BASE_PATH}}/assets/index-BWpYwmXd.css">
|
|
21
17
|
</head>
|
|
22
18
|
<body>
|
|
23
19
|
<noscript>
|
package/index.html
CHANGED
|
@@ -6,11 +6,7 @@
|
|
|
6
6
|
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
|
7
7
|
<link rel="icon" href="/favicon.ico" />
|
|
8
8
|
<style>@media (prefers-color-scheme: dark) { body { background-color: rgb(45, 46, 46) } }</style>
|
|
9
|
-
|
|
10
|
-
window.BASE_PATH = '/{{BASE_PATH}}/';
|
|
11
|
-
window.REST_ENDPOINT = '{{REST_ENDPOINT}}';
|
|
12
|
-
</script>
|
|
13
|
-
<script src="/{{REST_ENDPOINT}}/sentry.js"></script>
|
|
9
|
+
%CONFIG_SCRIPT%
|
|
14
10
|
<script>!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled getFeatureFlag onFeatureFlags reloadFeatureFlags".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[])</script>
|
|
15
11
|
|
|
16
12
|
<title>n8n.io - Workflow Automation</title>
|
package/package.json
CHANGED
package/vite.config.mts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import vue from '@vitejs/plugin-vue';
|
|
2
2
|
import { posix as pathPosix, resolve } from 'path';
|
|
3
|
-
import { defineConfig, mergeConfig } from 'vite';
|
|
3
|
+
import { defineConfig, mergeConfig, type UserConfig } from 'vite';
|
|
4
4
|
import { viteStaticCopy } from 'vite-plugin-static-copy';
|
|
5
|
+
import { nodePolyfills } from 'vite-plugin-node-polyfills';
|
|
5
6
|
import svgLoader from 'vite-svg-loader';
|
|
6
7
|
|
|
7
8
|
import { vitestConfig } from '@n8n/vitest-config/frontend';
|
|
@@ -63,9 +64,14 @@ const alias = [
|
|
|
63
64
|
find: /^lodash\.(.+)$/,
|
|
64
65
|
replacement: 'lodash/$1',
|
|
65
66
|
},
|
|
67
|
+
{
|
|
68
|
+
// For sanitize-html
|
|
69
|
+
find: 'source-map-js',
|
|
70
|
+
replacement: resolve(__dirname, 'src/source-map-js-shim'),
|
|
71
|
+
},
|
|
66
72
|
];
|
|
67
73
|
|
|
68
|
-
const plugins = [
|
|
74
|
+
const plugins: UserConfig['plugins'] = [
|
|
69
75
|
icons({
|
|
70
76
|
compiler: 'vue3',
|
|
71
77
|
autoInstall: true,
|
|
@@ -115,6 +121,20 @@ const plugins = [
|
|
|
115
121
|
modernPolyfills: true,
|
|
116
122
|
renderLegacyChunks: false,
|
|
117
123
|
}),
|
|
124
|
+
{
|
|
125
|
+
name: 'Insert config script',
|
|
126
|
+
transformIndexHtml: (html, ctx) => {
|
|
127
|
+
const replacement = ctx.server
|
|
128
|
+
? '' // Skip when using Vite dev server
|
|
129
|
+
: '<script src="/{{REST_ENDPOINT}}/config.js"></script>';
|
|
130
|
+
|
|
131
|
+
return html.replace('%CONFIG_SCRIPT%', replacement);
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
// For sanitize-html
|
|
135
|
+
nodePolyfills({
|
|
136
|
+
include: ['fs', 'path', 'url', 'util', 'timers'],
|
|
137
|
+
}),
|
|
118
138
|
];
|
|
119
139
|
|
|
120
140
|
const { RELEASE: release } = process.env;
|
|
@@ -131,7 +151,7 @@ export default mergeConfig(
|
|
|
131
151
|
plugins,
|
|
132
152
|
resolve: { alias },
|
|
133
153
|
base: publicPath,
|
|
134
|
-
envPrefix: 'VUE',
|
|
154
|
+
envPrefix: ['VUE', 'N8N_ENV_FEAT'],
|
|
135
155
|
css: {
|
|
136
156
|
preprocessorOptions: {
|
|
137
157
|
scss: {
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
/* BEM support Func
|
|
2
|
-
-------------------------- */
|
|
3
|
-
/* Transition
|
|
4
|
-
-------------------------- */
|
|
5
|
-
/* Color
|
|
6
|
-
-------------------------- */
|
|
7
|
-
/* Link
|
|
8
|
-
-------------------------- */
|
|
9
|
-
/* Border
|
|
10
|
-
-------------------------- */
|
|
11
|
-
/* Outline
|
|
12
|
-
-------------------------- */
|
|
13
|
-
/* Box shadow
|
|
14
|
-
-------------------------- */
|
|
15
|
-
/* Fill
|
|
16
|
-
-------------------------- */
|
|
17
|
-
/* Typography
|
|
18
|
-
-------------------------- */
|
|
19
|
-
/* z-index
|
|
20
|
-
-------------------------- */
|
|
21
|
-
/* Disable base
|
|
22
|
-
-------------------------- */
|
|
23
|
-
/* Icon
|
|
24
|
-
-------------------------- */
|
|
25
|
-
/* Checkbox
|
|
26
|
-
-------------------------- */
|
|
27
|
-
/* Radio
|
|
28
|
-
-------------------------- */
|
|
29
|
-
/* Select
|
|
30
|
-
-------------------------- */
|
|
31
|
-
/* Alert
|
|
32
|
-
-------------------------- */
|
|
33
|
-
/* MessageBox
|
|
34
|
-
-------------------------- */
|
|
35
|
-
/* Message
|
|
36
|
-
-------------------------- */
|
|
37
|
-
/* Notification
|
|
38
|
-
-------------------------- */
|
|
39
|
-
/* Input
|
|
40
|
-
-------------------------- */
|
|
41
|
-
/* Cascader
|
|
42
|
-
-------------------------- */
|
|
43
|
-
/* Group
|
|
44
|
-
-------------------------- */
|
|
45
|
-
/* Tab
|
|
46
|
-
-------------------------- */
|
|
47
|
-
/* Button
|
|
48
|
-
-------------------------- */
|
|
49
|
-
/* cascader
|
|
50
|
-
-------------------------- */
|
|
51
|
-
/* Switch
|
|
52
|
-
-------------------------- */
|
|
53
|
-
/* Dialog
|
|
54
|
-
-------------------------- */
|
|
55
|
-
/* Table
|
|
56
|
-
-------------------------- */
|
|
57
|
-
/* Pagination
|
|
58
|
-
-------------------------- */
|
|
59
|
-
/* Popup
|
|
60
|
-
-------------------------- */
|
|
61
|
-
/* Popover
|
|
62
|
-
-------------------------- */
|
|
63
|
-
/* Tooltip
|
|
64
|
-
-------------------------- */
|
|
65
|
-
/* Tag
|
|
66
|
-
-------------------------- */
|
|
67
|
-
/* Tree
|
|
68
|
-
-------------------------- */
|
|
69
|
-
/* Dropdown
|
|
70
|
-
-------------------------- */
|
|
71
|
-
/* Badge
|
|
72
|
-
-------------------------- */
|
|
73
|
-
/* Card
|
|
74
|
-
--------------------------*/
|
|
75
|
-
/* Slider
|
|
76
|
-
--------------------------*/
|
|
77
|
-
/* Steps
|
|
78
|
-
--------------------------*/
|
|
79
|
-
/* Menu
|
|
80
|
-
--------------------------*/
|
|
81
|
-
/* Rate
|
|
82
|
-
--------------------------*/
|
|
83
|
-
/* DatePicker
|
|
84
|
-
--------------------------*/
|
|
85
|
-
/* Loading
|
|
86
|
-
--------------------------*/
|
|
87
|
-
/* Scrollbar
|
|
88
|
-
--------------------------*/
|
|
89
|
-
/* Carousel
|
|
90
|
-
--------------------------*/
|
|
91
|
-
/* Collapse
|
|
92
|
-
--------------------------*/
|
|
93
|
-
/* Transfer
|
|
94
|
-
--------------------------*/
|
|
95
|
-
/* Header
|
|
96
|
-
--------------------------*/
|
|
97
|
-
/* Footer
|
|
98
|
-
--------------------------*/
|
|
99
|
-
/* Main
|
|
100
|
-
--------------------------*/
|
|
101
|
-
/* Timeline
|
|
102
|
-
--------------------------*/
|
|
103
|
-
/* Backtop
|
|
104
|
-
--------------------------*/
|
|
105
|
-
/* Link
|
|
106
|
-
--------------------------*/
|
|
107
|
-
/* Calendar
|
|
108
|
-
--------------------------*/
|
|
109
|
-
/* Form
|
|
110
|
-
-------------------------- */
|
|
111
|
-
/* Avatar
|
|
112
|
-
--------------------------*/
|
|
113
|
-
/* Break-point
|
|
114
|
-
--------------------------*/
|
|
115
|
-
/* Break-points
|
|
116
|
-
-------------------------- */
|
|
117
|
-
/* Scrollbar
|
|
118
|
-
-------------------------- */
|
|
119
|
-
/* Placeholder
|
|
120
|
-
-------------------------- */
|
|
121
|
-
/* BEM
|
|
122
|
-
-------------------------- */
|
|
123
|
-
._uiBlocker_j0zl4_123 {
|
|
124
|
-
position: absolute;
|
|
125
|
-
top: 0;
|
|
126
|
-
left: 0;
|
|
127
|
-
width: 100%;
|
|
128
|
-
height: 100%;
|
|
129
|
-
background-color: var(--color-block-ui-overlay);
|
|
130
|
-
z-index: 10;
|
|
131
|
-
opacity: 0.6;
|
|
132
|
-
border-radius: var(--border-radius-large);
|
|
133
|
-
}
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { d as defineComponent, e as createBlock, g as openBlock, dK as Transition, w as withCtx, aS as withDirectives, aT as vShow, j as createBaseVNode, n as normalizeClass, _ as _export_sfc, Q as createEventBus, a2 as defineStore, a4 as useWorkflowsStore, v as useSettingsStore, x as computed, cd as shallowRef, co as useVueFlow, dz as calculateNodeSize, bU as inject, r as ref, c3 as PiPWindowSymbol, cl as useActiveElement, dQ as useDeviceSupport, cX as toValue, eU as useEventListener } from "./index-BEC9W_3K.js";
|
|
2
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
3
|
-
__name: "BlockUi",
|
|
4
|
-
props: {
|
|
5
|
-
show: { type: Boolean, default: false }
|
|
6
|
-
},
|
|
7
|
-
setup(__props) {
|
|
8
|
-
return (_ctx, _cache) => {
|
|
9
|
-
return openBlock(), createBlock(Transition, {
|
|
10
|
-
name: "fade",
|
|
11
|
-
mode: "out-in"
|
|
12
|
-
}, {
|
|
13
|
-
default: withCtx(() => [
|
|
14
|
-
withDirectives(createBaseVNode("div", {
|
|
15
|
-
class: normalizeClass(["n8n-block-ui", _ctx.$style.uiBlocker]),
|
|
16
|
-
role: "dialog",
|
|
17
|
-
"aria-hidden": true
|
|
18
|
-
}, null, 2), [
|
|
19
|
-
[vShow, _ctx.show]
|
|
20
|
-
])
|
|
21
|
-
]),
|
|
22
|
-
_: 1
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
const uiBlocker = "_uiBlocker_j0zl4_123";
|
|
28
|
-
const style0 = {
|
|
29
|
-
uiBlocker
|
|
30
|
-
};
|
|
31
|
-
const cssModules = {
|
|
32
|
-
"$style": style0
|
|
33
|
-
};
|
|
34
|
-
const N8nBlockUi = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-76a59b58"]]);
|
|
35
|
-
const canvasEventBus = createEventBus();
|
|
36
|
-
const useExperimentalNdvStore = defineStore("experimentalNdv", () => {
|
|
37
|
-
const workflowStore = useWorkflowsStore();
|
|
38
|
-
const settingsStore = useSettingsStore();
|
|
39
|
-
const isEnabled = computed(
|
|
40
|
-
() => !Number.isNaN(settingsStore.experimental__minZoomNodeSettingsInCanvas) && settingsStore.experimental__minZoomNodeSettingsInCanvas > 0
|
|
41
|
-
);
|
|
42
|
-
const maxCanvasZoom = computed(
|
|
43
|
-
() => isEnabled.value ? settingsStore.experimental__minZoomNodeSettingsInCanvas : 4
|
|
44
|
-
);
|
|
45
|
-
const collapsedNodes = shallowRef({});
|
|
46
|
-
function setNodeExpanded(nodeId, isExpanded) {
|
|
47
|
-
collapsedNodes.value = {
|
|
48
|
-
...collapsedNodes.value,
|
|
49
|
-
[nodeId]: isExpanded === void 0 ? !collapsedNodes.value[nodeId] : !isExpanded
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
function collapseAllNodes() {
|
|
53
|
-
collapsedNodes.value = workflowStore.allNodes.reduce(
|
|
54
|
-
(acc, node) => {
|
|
55
|
-
acc[node.id] = true;
|
|
56
|
-
return acc;
|
|
57
|
-
},
|
|
58
|
-
{}
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
function expandAllNodes() {
|
|
62
|
-
collapsedNodes.value = {};
|
|
63
|
-
}
|
|
64
|
-
function isActive(canvasZoom) {
|
|
65
|
-
return isEnabled.value && canvasZoom === maxCanvasZoom.value;
|
|
66
|
-
}
|
|
67
|
-
function focusNode(nodeId) {
|
|
68
|
-
const nodeToFocus = workflowStore.getNodeById(nodeId);
|
|
69
|
-
if (!nodeToFocus) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const vueFlow = useVueFlow(workflowStore.workflow.id);
|
|
73
|
-
collapsedNodes.value = workflowStore.allNodes.reduce(
|
|
74
|
-
(acc, node) => {
|
|
75
|
-
acc[node.id] = node.id !== nodeId;
|
|
76
|
-
return acc;
|
|
77
|
-
},
|
|
78
|
-
{}
|
|
79
|
-
);
|
|
80
|
-
const workflow = workflowStore.getCurrentWorkflow();
|
|
81
|
-
const nodeSize = calculateNodeSize(
|
|
82
|
-
workflow.getChildNodes(nodeToFocus.name, "ALL_NON_MAIN").length > 0,
|
|
83
|
-
workflow.getParentNodes(nodeToFocus.name, "ALL_NON_MAIN").length > 0,
|
|
84
|
-
workflow.getParentNodes(nodeToFocus.name, "main").length,
|
|
85
|
-
workflow.getChildNodes(nodeToFocus.name, "main").length,
|
|
86
|
-
workflow.getParentNodes(nodeToFocus.name, "ALL_NON_MAIN").length
|
|
87
|
-
);
|
|
88
|
-
void vueFlow.setCenter(
|
|
89
|
-
nodeToFocus.position[0] + nodeSize.width * 1.5 / 2,
|
|
90
|
-
nodeToFocus.position[1] + 80,
|
|
91
|
-
{ duration: 200, zoom: maxCanvasZoom.value }
|
|
92
|
-
);
|
|
93
|
-
}
|
|
94
|
-
return {
|
|
95
|
-
isEnabled,
|
|
96
|
-
maxCanvasZoom,
|
|
97
|
-
collapsedNodes: computed(() => collapsedNodes.value),
|
|
98
|
-
isActive,
|
|
99
|
-
setNodeExpanded,
|
|
100
|
-
expandAllNodes,
|
|
101
|
-
collapseAllNodes,
|
|
102
|
-
focusNode
|
|
103
|
-
};
|
|
104
|
-
});
|
|
105
|
-
const useKeybindings = (keymap, options) => {
|
|
106
|
-
const pipWindow = inject(PiPWindowSymbol, ref());
|
|
107
|
-
const activeElement = useActiveElement({ window: pipWindow?.value });
|
|
108
|
-
const { isCtrlKeyPressed } = useDeviceSupport();
|
|
109
|
-
const isDisabled = computed(() => toValue(options?.disabled));
|
|
110
|
-
const ignoreKeyPresses = computed(() => {
|
|
111
|
-
if (!activeElement.value) return false;
|
|
112
|
-
const active = activeElement.value;
|
|
113
|
-
const isInput = ["INPUT", "TEXTAREA"].includes(active.tagName);
|
|
114
|
-
const isContentEditable = active.closest("[contenteditable]") !== null;
|
|
115
|
-
const isIgnoreClass = active.closest(".ignore-key-press-canvas") !== null;
|
|
116
|
-
return isInput || isContentEditable || isIgnoreClass;
|
|
117
|
-
});
|
|
118
|
-
const normalizedKeymap = computed(
|
|
119
|
-
() => Object.fromEntries(
|
|
120
|
-
Object.entries(toValue(keymap)).flatMap(([shortcut, handler]) => {
|
|
121
|
-
const shortcuts = shortcut.split("|");
|
|
122
|
-
return shortcuts.map((s) => [normalizeShortcutString(s), handler]);
|
|
123
|
-
})
|
|
124
|
-
)
|
|
125
|
-
);
|
|
126
|
-
function shortcutPartsToString(parts) {
|
|
127
|
-
return parts.map((key) => key.toLowerCase()).sort((a, b) => a.localeCompare(b)).join("+");
|
|
128
|
-
}
|
|
129
|
-
function normalizeShortcutString(shortcut) {
|
|
130
|
-
if (shortcut.length === 1) {
|
|
131
|
-
return shortcut.toLowerCase();
|
|
132
|
-
}
|
|
133
|
-
const splitChars = ["+", "_", "-"];
|
|
134
|
-
const splitCharsRegEx = splitChars.reduce((acc, char) => {
|
|
135
|
-
if (shortcut.startsWith(char) || shortcut.endsWith(char)) {
|
|
136
|
-
return acc;
|
|
137
|
-
}
|
|
138
|
-
return char + acc;
|
|
139
|
-
}, "");
|
|
140
|
-
return shortcutPartsToString(shortcut.split(new RegExp(`[${splitCharsRegEx}]`)));
|
|
141
|
-
}
|
|
142
|
-
function keyboardEventCodeToKey(code) {
|
|
143
|
-
if (code.startsWith("Digit")) {
|
|
144
|
-
return code.replace("Digit", "").toLowerCase();
|
|
145
|
-
} else if (code.startsWith("Key")) {
|
|
146
|
-
return code.replace("Key", "").toLowerCase();
|
|
147
|
-
}
|
|
148
|
-
return code.toLowerCase();
|
|
149
|
-
}
|
|
150
|
-
function toShortcutString(event) {
|
|
151
|
-
const { shiftKey, altKey } = event;
|
|
152
|
-
const ctrlKey = isCtrlKeyPressed(event);
|
|
153
|
-
const keys = "key" in event ? [event.key] : [];
|
|
154
|
-
const codes = "code" in event ? [keyboardEventCodeToKey(event.code)] : [];
|
|
155
|
-
const modifiers = [];
|
|
156
|
-
if (shiftKey) {
|
|
157
|
-
modifiers.push("shift");
|
|
158
|
-
}
|
|
159
|
-
if (ctrlKey) {
|
|
160
|
-
modifiers.push("ctrl");
|
|
161
|
-
}
|
|
162
|
-
if (altKey) {
|
|
163
|
-
modifiers.push("alt");
|
|
164
|
-
}
|
|
165
|
-
return {
|
|
166
|
-
byKey: shortcutPartsToString([...modifiers, ...keys]),
|
|
167
|
-
byCode: shortcutPartsToString([...modifiers, ...codes])
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
function onKeyDown(event) {
|
|
171
|
-
if (ignoreKeyPresses.value || isDisabled.value) return;
|
|
172
|
-
const { byKey, byCode } = toShortcutString(event);
|
|
173
|
-
const handler = normalizedKeymap.value[byKey] ?? normalizedKeymap.value[byCode];
|
|
174
|
-
const run = typeof handler === "function" ? handler : handler?.disabled() ? void 0 : handler?.run;
|
|
175
|
-
if (run) {
|
|
176
|
-
event.preventDefault();
|
|
177
|
-
event.stopPropagation();
|
|
178
|
-
run(event);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
useEventListener(pipWindow?.value?.document ?? document, "keydown", onKeyDown);
|
|
182
|
-
};
|
|
183
|
-
export {
|
|
184
|
-
N8nBlockUi as N,
|
|
185
|
-
useKeybindings as a,
|
|
186
|
-
canvasEventBus as c,
|
|
187
|
-
useExperimentalNdvStore as u
|
|
188
|
-
};
|