n8n-editor-ui
Version:
Workflow Editor UI for n8n
153 lines (152 loc) • 7.65 kB
JavaScript
;
(function () {
System.register(["./vue.runtime.esm-bundler-legacy--Sn1h8On.js", "./_MapCache-legacy-DlYNX_X1.js", "./truncate-legacy-BGje52Or.js", "./useMessage-legacy-M2m6s8Ce.js", "./useTelemetry-legacy-B3pzzkAE.js", "./useToast-legacy-C4Vu5mt9.js", "./constants-legacy-TKxWCqvM.js", "./_baseOrderBy-legacy-CB2Dh5d_.js", "./usePageRedirectionHelper-legacy-D0bLDat3.js"], function (_export, _context) {
"use strict";
var computed, h, useI18n, useRouter, useMessage, useUIStore, useSettingsStore, DEBUG_PAYWALL_MODAL_KEY, injectWorkflowState, isFullExecutionResponse, useWorkflowsStore, useTelemetry, sanitizeHtml, useToast, VIEWS, EnterpriseEditionFeature, MODAL_CONFIRM, useRootStore, usePageRedirectionHelper, useExecutionDebugging;
return {
setters: [function (_vueRuntimeEsmBundlerLegacy003Js) {
computed = _vueRuntimeEsmBundlerLegacy003Js.C;
h = _vueRuntimeEsmBundlerLegacy003Js.L;
}, function (_MapCacheLegacy005Js) {
useI18n = _MapCacheLegacy005Js.gt;
}, function (_truncateLegacy00hJs) {
useRouter = _truncateLegacy00hJs.y;
}, function (_useMessageLegacy00xJs) {
useMessage = _useMessageLegacy00xJs.t;
}, function (_useTelemetryLegacy00HJs) {
useUIStore = _useTelemetryLegacy00HJs.Fi;
useSettingsStore = _useTelemetryLegacy00HJs.Ho;
DEBUG_PAYWALL_MODAL_KEY = _useTelemetryLegacy00HJs.Mo;
injectWorkflowState = _useTelemetryLegacy00HJs.Sn;
isFullExecutionResponse = _useTelemetryLegacy00HJs.cr;
useWorkflowsStore = _useTelemetryLegacy00HJs.o;
useTelemetry = _useTelemetryLegacy00HJs.t;
}, function (_useToastLegacy00JJs) {
sanitizeHtml = _useToastLegacy00JJs.s;
useToast = _useToastLegacy00JJs.t;
}, function (_constantsLegacy00TJs) {
VIEWS = _constantsLegacy00TJs.Io;
EnterpriseEditionFeature = _constantsLegacy00TJs.pc;
MODAL_CONFIRM = _constantsLegacy00TJs.ts;
}, function (_baseOrderByLegacy00ZJs) {
useRootStore = _baseOrderByLegacy00ZJs.r;
}, function (_usePageRedirectionHelperLegacy01NJs) {
usePageRedirectionHelper = _usePageRedirectionHelperLegacy01NJs.t;
}],
execute: function () {
//#region src/features/execution/executions/composables/useExecutionDebugging.ts
_export("t", useExecutionDebugging = () => {
const telemetry = useTelemetry();
const router = useRouter();
const i18n = useI18n();
const message = useMessage();
const toast = useToast();
const workflowsStore = useWorkflowsStore();
const workflowState = injectWorkflowState();
const settingsStore = useSettingsStore();
const uiStore = useUIStore();
const pageRedirectionHelper = usePageRedirectionHelper();
const isDebugEnabled = computed(() => settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.DebugInEditor]);
const applyExecutionData = async executionId => {
const execution = await workflowsStore.getExecution(executionId);
const workflowObject = workflowsStore.workflowObject;
const workflowNodes = workflowsStore.getNodes();
if (!execution?.data?.resultData) return;
const {
runData
} = execution.data.resultData;
const executionNodeNames = Object.keys(runData);
const missingNodeNames = executionNodeNames.filter(name => !workflowNodes.some(node => node.name === name));
const workflowPinnedNodeNames = Object.keys(workflowsStore.workflow.pinData ?? {});
const matchingPinnedNodeNames = executionNodeNames.filter(name => workflowPinnedNodeNames.includes(name));
if (matchingPinnedNodeNames.length > 0) {
const confirmMessage = h("p", [i18n.baseText("nodeView.confirmMessage.debug.message"), h("ul", {
class: "mt-l ml-l"
}, matchingPinnedNodeNames.map(name => h("li", sanitizeHtml(name))))]);
if ((await message.confirm(confirmMessage, i18n.baseText("nodeView.confirmMessage.debug.headline"), {
type: "warning",
confirmButtonText: i18n.baseText("nodeView.confirmMessage.debug.confirmButtonText"),
cancelButtonText: i18n.baseText("nodeView.confirmMessage.debug.cancelButtonText"),
customClass: "matching-pinned-nodes-confirmation"
})) === "confirm") matchingPinnedNodeNames.forEach(name => {
const node = workflowsStore.getNodeByName(name);
if (node) workflowsStore.unpinData({
node
});
});else {
await router.push({
name: VIEWS.EXECUTION_PREVIEW,
params: {
name: workflowObject.id,
executionId
}
});
return;
}
}
workflowState.resetAllNodesIssues();
workflowState.setWorkflowExecutionData(execution);
const pinnableNodes = workflowNodes.filter(node => !workflowObject.getParentNodes(node.name).length);
let pinnings = 0;
pinnableNodes.forEach(node => {
const taskData = runData[node.name]?.[0];
if (taskData?.data?.main) {
const nodeData = taskData.data.main.find(output => output && output.length > 0);
if (nodeData) {
pinnings++;
workflowsStore.pinData({
node,
data: nodeData,
isRestoration: true
});
}
}
});
toast.showToast({
title: i18n.baseText("nodeView.showMessage.debug.title"),
message: i18n.baseText("nodeView.showMessage.debug.content"),
type: "info"
});
if (missingNodeNames.length) toast.showToast({
title: i18n.baseText("nodeView.showMessage.debug.missingNodes.title"),
message: i18n.baseText("nodeView.showMessage.debug.missingNodes.content", {
interpolate: {
nodeNames: missingNodeNames.join(", ")
}
}),
type: "warning"
});
telemetry.track("User clicked debug execution button", {
instance_id: useRootStore().instanceId,
exec_status: isFullExecutionResponse(execution) ? execution.status : "",
override_pinned_data: pinnableNodes.length === pinnings,
all_exec_data_imported: missingNodeNames.length === 0
});
};
const handleDebugLinkClick = event => {
if (!isDebugEnabled.value) {
uiStore.openModalWithData({
name: DEBUG_PAYWALL_MODAL_KEY,
data: {
title: i18n.baseText("executionsList.debug.paywall.title"),
footerButtonAction: () => {
uiStore.closeModal(DEBUG_PAYWALL_MODAL_KEY);
pageRedirectionHelper.goToUpgrade("debug", "upgrade-debug");
}
}
});
event.preventDefault();
event.stopPropagation();
return;
}
workflowsStore.isInDebugMode = false;
};
return {
applyExecutionData,
handleDebugLinkClick
};
}); //#endregion
}
};
});
})();