n8n-editor-ui 1.103.0 → 1.104.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/{ActionDropdown-oe2q-18e.js → ActionDropdown-Ct6XJ0cl.js} +1 -1
- package/dist/assets/{AnimatedSpinner-DNQK2Lvb.js → AnimatedSpinner-CIyQ3zKd.js} +1 -1
- package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CTPMm7Da.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-xv6FYiyR.js} +1 -1
- package/dist/assets/{AuthView-BLYDBurX.js → AuthView-dJdngoqx.js} +2 -2
- package/dist/assets/{ChangePasswordView-D_oe3bys.js → ChangePasswordView-C74U84q5.js} +3 -3
- package/dist/assets/CollectionParameter-DCn5Jtcj.js +4 -0
- package/dist/assets/ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-CkASni2S.js +44 -0
- package/dist/assets/{CredentialsView-yjXzQeha.js → CredentialsView-jouDB3H1.js} +8 -8
- package/dist/assets/{DemoFooter-CLoho_f5.js → DemoFooter-CHlbEpB-.js} +9 -8
- package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-Dtt1q_gN.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-CbDihlsO.js} +1 -1
- package/dist/assets/{EntityNotFound-DKLj80gn.js → EntityNotFound-Dtqj9thX.js} +1 -1
- package/dist/assets/{EntityUnAuthorised-BUd46dmn.js → EntityUnAuthorised-BBsbc6du.js} +1 -1
- package/dist/assets/{ErrorView-DOjK08aR.js → ErrorView-BN4Jm32q.js} +1 -1
- package/dist/assets/{EvaluationsRootView-Cms0XlYE.js → EvaluationsRootView-B70WfmnQ.js} +5 -3
- package/dist/assets/{EvaluationsView-6l_Invxt.css → EvaluationsView-BTyYfInB.css} +6 -6
- package/dist/assets/{EvaluationsView-X9pjkssi.js → EvaluationsView-DQd7op3j.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-CQDOSq4d.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-C_2brmCr.js} +15 -12
- package/dist/assets/{ExecutionsView-NLnln1YQ.js → ExecutionsView-CKPZTnZV.js} +21 -18
- package/dist/assets/{FileSaver.min-BoHgd5iv.js → FileSaver.min-BvxTURBB.js} +1 -1
- package/dist/assets/{FixedCollectionParameter-BfKt_vOb.js → FixedCollectionParameter-CA-CigeR.js} +1 -1
- package/dist/assets/{ForgotMyPasswordView-OP-Zoaqi.js → ForgotMyPasswordView-YyVmo-nw.js} +3 -3
- package/dist/assets/{InfoAccordion-KgxR9XUm.js → InfoAccordion-BNmUe2V9.js} +1 -1
- package/dist/assets/{InsightsChartAverageRuntime-COSI3_o5.js → InsightsChartAverageRuntime-C9sCNhzD.js} +5 -4
- package/dist/assets/{InsightsChartFailed-zPbPiVrK.js → InsightsChartFailed-DWA6YbZj.js} +5 -4
- package/dist/assets/{InsightsChartFailureRate-BijFuiun.js → InsightsChartFailureRate-CfknGtrr.js} +5 -4
- package/dist/assets/{InsightsChartTimeSaved-QPkPrxuo.js → InsightsChartTimeSaved-DtLO9DJx.js} +5 -4
- package/dist/assets/{InsightsChartTotal-CAIfpPOZ.js → InsightsChartTotal-yX_QJ-44.js} +5 -4
- package/dist/assets/{InsightsDashboard-D8_DXUIT.js → InsightsDashboard-BlYvn96O.js} +19 -19
- package/dist/assets/{InsightsDashboard-CXbI-Jyg.css → InsightsDashboard-C27Avzrv.css} +2 -2
- package/dist/assets/{InsightsPaywall-BlFkYC7C.js → InsightsPaywall-BCfIY_xn.js} +3 -3
- package/dist/assets/{InsightsSummary-DT-p4HNY.js → InsightsSummary-OiO7efWD.js} +9 -4
- package/dist/assets/{InsightsTableWorkflows-RGpSnp7n.css → InsightsTableWorkflows-BTHSCwX8.css} +27 -3
- package/dist/assets/{InsightsTableWorkflows-CN4YWTtH.js → InsightsTableWorkflows-pTl3m7wx.js} +80 -26
- package/dist/assets/{Logo-BhBstNGh.js → Logo-8g4P9vyv.js} +1 -1
- package/dist/assets/{LogsPanel-Bvy4ANV7.css → LogsPanel-D0xdq4fV.css} +21 -21
- package/dist/assets/{LogsPanel-Ceg5ubnO.js → LogsPanel-so01MtIR.js} +16 -11
- package/dist/assets/{MainHeader-4a5SCN9a.js → MainHeader-CcUlKfHC.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-PaqIlcl_.js → MainSidebar-DOGhP_oY.js} +26 -25
- package/dist/assets/{N8nDataTableServer-OWjVTbuy.js → N8nDataTableServer-9HerjyzX.js} +20 -10
- package/dist/assets/{NodeCreation-vn1s6ViE.js → NodeCreation-CVbCKnet.js} +11 -9
- package/dist/assets/{NodeCreator-8yXN9-3-.js → NodeCreator-BOosPF8_.js} +114 -197
- package/dist/assets/{NodeCreator-DWE25utr.css → NodeCreator-CkvY2niF.css} +0 -128
- package/dist/assets/{NodeDetailsView-Bfqrvndc.js → NodeDetailsView-KFidngJi.js} +21 -16
- package/dist/assets/{NodeDetailsViewV2-DvXkio7Z.js → NodeDetailsViewV2-BL4KKqW-.js} +21 -16
- package/dist/assets/{NodeView-4YXAVrWh.js → NodeView-BzC6ELga.js} +2068 -746
- package/dist/assets/{NodeView-hst6fesm.css → NodeView-G2qfXaOy.css} +755 -71
- package/dist/assets/{ProjectHeader-BXo_XGDO.js → ProjectHeader-B9-GdGvC.js} +2 -2
- package/dist/assets/{ProjectSettings-Z5Kp6E53.js → ProjectSettings-CE4_geFa.js} +7 -5
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DK8Mp74c.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-Bb8zUJvi.js} +1 -1
- package/dist/assets/{ResourcesListLayout-DoL3gqUA.js → ResourcesListLayout-ClTEnqVS.js} +3 -3
- package/dist/assets/{RunDataJson-CI2PEX1Z.js → RunDataJson-fXQKTIFD.js} +6 -7
- package/dist/assets/{RunDataJsonActions-CdUL1gL3.js → RunDataJsonActions-CMP1sUPZ.js} +1 -1
- package/dist/assets/{RunDataParsedAiContent-B6Ss5mvl.js → RunDataParsedAiContent-CHK6Y4ET.js} +2 -2
- package/dist/assets/{RunDataSearch-DKaXYju2.js → RunDataSearch-CAZGWZzz.js} +1 -1
- package/dist/assets/{RunDataTable-BQ3rdzoF.js → RunDataTable-CeqmA-n3.js} +17 -17
- package/dist/assets/{SamlOnboarding-C_au26AK.js → SamlOnboarding-BrdzPMSK.js} +3 -3
- package/dist/assets/{SettingsApiView-aoaIK5C5.js → SettingsApiView-Cj2YYKAl.js} +5 -4
- package/dist/assets/{SettingsCommunityNodesView-Bii1jYzp.js → SettingsCommunityNodesView-ChB--kZD.js} +4 -3
- package/dist/assets/{SettingsExternalSecrets-DzoOLUAJ.js → SettingsExternalSecrets-BjghCvkE.js} +5 -3
- package/dist/assets/{SettingsLdapView-CkLOtGjj.js → SettingsLdapView-DIB1-nTk.js} +1 -1
- package/dist/assets/{SettingsLogStreamingView-CKBVxNwk.js → SettingsLogStreamingView-BOOGkcwK.js} +1 -1
- package/dist/assets/{SettingsPersonalView-gOoSkTpX.js → SettingsPersonalView-DaNZTNUy.js} +1 -1
- package/dist/assets/{SettingsSourceControl-C6XS-Myv.js → SettingsSourceControl-B5fQRT0V.js} +10 -8
- package/dist/assets/{SettingsSso-CobNvKat.js → SettingsSso-CWX-T13W.js} +1 -1
- package/dist/assets/{SettingsUsageAndPlan-3r39YZW1.js → SettingsUsageAndPlan-Cnnf9k6X.js} +15 -10
- package/dist/assets/{SettingsUsageAndPlan-D6TiPwUx.css → SettingsUsageAndPlan-ZZQpCmyQ.css} +3 -3
- package/dist/assets/{SettingsUsersView-DrrH1dLq.js → SettingsUsersView-BLDi4lpv.js} +105 -44
- package/dist/assets/{SettingsUsersView-B81cHl3f.css → SettingsUsersView-RQTdLxyb.css} +11 -7
- package/dist/assets/{SettingsView-D_wEAbZb.js → SettingsView-Dtc8MEv6.js} +1 -1
- package/dist/assets/{SetupView-CU1QrNSu.js → SetupView-C4C-2Idz.js} +3 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-Do2E5w2d.js → SetupWorkflowCredentialsButton-Pzrxag-k.js} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-cuwHIvkB.js → SetupWorkflowFromTemplateView-CRsZDYct.js} +3 -3
- package/dist/assets/{SigninView-DA11h2Kr.js → SigninView-COyoSAUi.js} +3 -3
- package/dist/assets/{SignoutView-VJrMh5w7.js → SignoutView-B0t9kc5s.js} +1 -1
- package/dist/assets/{SignupView-BNTIWYSE.js → SignupView-BN8MCOnb.js} +3 -3
- package/dist/assets/{TableBase-B5rreQVh.js → TableBase-BmhIwPwZ.js} +1 -1
- package/dist/assets/{Tags-SJm7l2s6.js → Tags-DeTgaVsD.js} +1 -1
- package/dist/assets/{TemplateDetails-B6-Nkya8.js → TemplateDetails-Bh-WSvQ-.js} +2 -2
- package/dist/assets/{TemplateList-C4Dqsvfp.js → TemplateList-DxvJMjPE.js} +1 -1
- package/dist/assets/{TemplatesCollectionView-BMGZ939P.js → TemplatesCollectionView-BhilAS_8.js} +6 -6
- package/dist/assets/{TemplatesSearchView-CIo8eprI.js → TemplatesSearchView-CWxnTQ8Z.js} +3 -3
- package/dist/assets/{TemplatesView-MshXkM2_.js → TemplatesView-Co-FQLhr.js} +1 -1
- package/dist/assets/{TemplatesWorkflowView-LWBGoJBO.js → TemplatesWorkflowView-DAWgsT0T.js} +6 -6
- package/dist/assets/{TriggerPanel-DRpKKKun.css → TriggerPanel-DJv04feX.css} +1 -354
- package/dist/assets/{TriggerPanel-C-0JCegt.js → TriggerPanel-JaXhe1VW.js} +133 -981
- package/dist/assets/{VariablesView-omKbxNoc.js → VariablesView-JnfEn1f-.js} +5 -5
- package/dist/assets/VueMarkdown-DDKnTMgT.js +1570 -0
- package/dist/assets/{WorkerView-DPnCbr1B.js → WorkerView-DZG4C_Qp.js} +6 -5
- package/dist/assets/{WorkflowActivator-Hn_uDFPH.js → WorkflowActivator-C8hP37n7.js} +2 -2
- package/dist/assets/{WorkflowExecutionsInfoAccordion-DWSeluMM.js → WorkflowExecutionsInfoAccordion-DCNvkxhh.js} +2 -2
- package/dist/assets/{WorkflowExecutionsLandingPage-BMcxBJEl.js → WorkflowExecutionsLandingPage-DVp6SoPy.js} +3 -3
- package/dist/assets/{WorkflowExecutionsPreview-Csq6C8Vh.js → WorkflowExecutionsPreview-CKYWZWv1.js} +5 -5
- package/dist/assets/{WorkflowExecutionsView-6L7iZJq1.js → WorkflowExecutionsView-BIkweP3p.js} +8 -8
- package/dist/assets/{WorkflowHistory-B0t-0Z77.js → WorkflowHistory-C0LrWJW0.js} +6 -6
- package/dist/assets/{WorkflowOnboardingView-DuI2I9MQ.js → WorkflowOnboardingView-CWMUgnLK.js} +1 -1
- package/dist/assets/{WorkflowPreview-D4kwrMFk.js → WorkflowPreview-DmYMBSH3.js} +1 -1
- package/dist/assets/{WorkflowsView-WU-IKn4K.js → WorkflowsView-jEphnf90.js} +125 -17
- package/dist/assets/aiTemplatesStarterCollection.store-oECEA5nR.js +794 -0
- package/dist/assets/{chartjs.utils-Bc5bGj66.js → chartjs.utils-CP28DnUQ.js} +2 -2
- package/dist/assets/{en-FjyeYndD.js → en-BX7CKkqE.js} +22 -6
- package/dist/assets/{global-link-actions-BZz1vmQq.js → global-link-actions-BjpAG7gt.js} +1 -1
- package/dist/assets/{import-curl-jc1UtwMR.js → import-curl-BD22LJ4z.js} +1 -1
- package/dist/assets/{index-C6LoGNAx.css → index-BWpYwmXd.css} +548 -948
- package/dist/assets/{index-Cohi4onR.js → index-CjbtyS1n.js} +1 -1
- package/dist/assets/{index-CAU8Zeff.js → index-Cm5yBbby.js} +48318 -42852
- package/dist/assets/{pickBy-Bmcb35Dl.js → pickBy-DA-1tKxT.js} +1 -1
- package/dist/assets/{templateActions-Bsj8nngl.js → templateActions-D9IAsJ2m.js} +1 -1
- package/dist/assets/{typescript.worker-CUj0Nj-S.js → typescript.worker-KwUz68Jx.js} +2499 -157
- package/dist/assets/{useBeforeUnload-aOI6YxZR.js → useBeforeUnload-BR-V9Uaz.js} +1 -1
- package/dist/assets/{useExecutionDebugging-dVW9cpg5.js → useExecutionDebugging-C8zR-uFJ.js} +1 -1
- package/dist/assets/{useExecutionHelpers-BIfEl-h7.js → useExecutionHelpers-DQcWcZ8o.js} +1 -1
- package/dist/assets/{useImportCurlCommand-B4EFH3RG.js → useImportCurlCommand-B3-fEq8S.js} +9 -9
- package/dist/assets/{RunData-D0dKnadD.css → useKeybindings-2A271Jke.css} +134 -2
- package/dist/assets/{RunData-B9jGswDT.js → useKeybindings-DetzdpXy.js} +223 -1644
- package/dist/assets/{useProjectPages-4b50pSat.js → useProjectPages-qXIMd_UF.js} +1 -1
- package/dist/assets/{usePushConnection-CKW8UPyl.js → usePushConnection-Duvg6z8O.js} +10 -2
- package/dist/assets/{useWorkflowActivate-C39vU0rW.js → useWorkflowActivate-BE4Ckf9k.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-DMWMZwmI.js +0 -4
- package/dist/assets/useKeybindings-0d48UFTt.js +0 -188
- package/dist/assets/useKeybindings-BUK7Ngh6.css +0 -133
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a6 as useRoute, x as computed, V as VIEWS, eI as reactive } from "./index-Cm5yBbby.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-Cm5yBbby.js";
|
|
2
|
+
import { g as globalLinkActionsEventBus } from "./global-link-actions-BjpAG7gt.js";
|
|
3
|
+
import { u as useAITemplatesStarterCollectionStore } from "./aiTemplatesStarterCollection.store-oECEA5nR.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-Cm5yBbby.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-Cm5yBbby.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,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-CAU8Zeff.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
|
-
};
|
|
@@ -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
|
-
}
|