UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

633 lines (632 loc) 49.7 kB
; (function () { System.register(["./vue.runtime.esm-bundler-legacy--Sn1h8On.js", "./_MapCache-legacy-DlYNX_X1.js", "./src-legacy-uZTNWMC0.js", "./en-legacy-DJK4SpPN.js", "./preload-helper-legacy-CXRjoQ0T.js", "./_plugin-vue_export-helper-legacy-DZMI5HPp.js", "./truncate-legacy-BGje52Or.js", "./icon-legacy-CqVXaCIS.js", "./empty-legacy-CA9D6itE.js", "./useTelemetry-legacy-B3pzzkAE.js", "./useToast-legacy-C4Vu5mt9.js", "./sanitize-html-legacy-DLqXJu-U.js", "./CalendarDate-legacy-BUvNgcoo.js", "./path-browserify-legacy-C6ml8BkF.js", "./constants-legacy-TKxWCqvM.js", "./merge-legacy-8xjIc_ts.js", "./_baseOrderBy-legacy-CB2Dh5d_.js", "./dateformat-legacy-C4HUJTCr.js", "./useDebounce-legacy-CqZ-fJEm.js", "./useExternalHooks-legacy-8pg6K3ln.js", "./useStyles-legacy-E8NPEyeD.js", "./cloudPlan.store-legacy-U_Bztyyz.js", "./templates.store-legacy-BBcmaAs_.js", "./focusPanel.store-legacy-DdqLHRV1.js", "./executions.store-legacy-COqSks8S.js", "./usePinnedData-legacy-CfMMmXZ8.js", "./nodeCreator.store-legacy-BeEd3d8s.js", "./nodeIcon-legacy-D1wFvzkX.js", "./useClipboard-legacy-DEPZr2pv.js", "./useCanvasOperations-legacy-CXe_JeOj.js", "./folders.store-legacy-DbpbLgJq.js", "./versions.store-legacy-BtvVzXUy.js", "./usePageRedirectionHelper-legacy-D0bLDat3.js", "./usage.store-legacy-DXdTB4SU.js"], function (_export, _context) { "use strict"; var computed, toDisplayString, createElementBlock, createCommentVNode, unref, ref, createVNode, defineComponent, createBlock, Fragment, watch, renderSlot, withCtx, openBlock, createTextVNode, resolveComponent, normalizeClass, createBaseVNode, I18nT, useI18n, useAsyncState, N8nCallout_default, N8nActionBox_default, N8nButton_default, N8nText_default, N8nIcon_default, N8nBadge_default, N8nLink_default, __plugin_vue_export_helper_default, useRouter, useSourceControlStore, useUIStore, useNodeTypesStore, COMMUNITY_PLUS_ENROLLMENT_MODAL, useWorkflowsStore, useEvaluationStore, useTelemetry, useToast, VIEWS, EVALUATIONS_DOCS_URL, PLACEHOLDER_EMPTY_WORKFLOW_ID, useCanvasOperations, usePageRedirectionHelper, useUsageStore, __vite_style__, EvaluationsPaywall_vue_vue_type_script_setup_true_lang_default, EvaluationsPaywall_default, StepIndicator_vue_vue_type_script_setup_true_lang_default, stepIndicator, active, completed, inactive, StepIndicator_vue_vue_type_style_index_0_lang_module_default, cssModules$3, StepIndicator_default, StepHeader_vue_vue_type_script_setup_true_lang_default, stepHeader, StepHeader_vue_vue_type_style_index_0_lang_module_default, cssModules$2, StepHeader_default, SetupWizard_vue_vue_type_script_setup_true_lang_default, container, steps, step, stepContent, slideDown, bulletPoints, actionButton, actionButtonInline, quotaNote, SetupWizard_vue_vue_type_style_index_0_lang_module_default, cssModules$1, SetupWizard_default, EvaluationsRootView_vue_vue_type_script_setup_true_lang_default, evaluationsView, setupContent, description, config, setupDescription, EvaluationsRootView_vue_vue_type_style_index_0_lang_module_default, cssModules, EvaluationsRootView_default; return { setters: [function (_vueRuntimeEsmBundlerLegacy003Js) { computed = _vueRuntimeEsmBundlerLegacy003Js.C; toDisplayString = _vueRuntimeEsmBundlerLegacy003Js.Cn; createElementBlock = _vueRuntimeEsmBundlerLegacy003Js.D; createCommentVNode = _vueRuntimeEsmBundlerLegacy003Js.E; unref = _vueRuntimeEsmBundlerLegacy003Js.Gt; ref = _vueRuntimeEsmBundlerLegacy003Js.It; createVNode = _vueRuntimeEsmBundlerLegacy003Js.M; defineComponent = _vueRuntimeEsmBundlerLegacy003Js.P; createBlock = _vueRuntimeEsmBundlerLegacy003Js.T; Fragment = _vueRuntimeEsmBundlerLegacy003Js._; watch = _vueRuntimeEsmBundlerLegacy003Js._t; renderSlot = _vueRuntimeEsmBundlerLegacy003Js.at; withCtx = _vueRuntimeEsmBundlerLegacy003Js.bt; openBlock = _vueRuntimeEsmBundlerLegacy003Js.et; createTextVNode = _vueRuntimeEsmBundlerLegacy003Js.j; resolveComponent = _vueRuntimeEsmBundlerLegacy003Js.ot; normalizeClass = _vueRuntimeEsmBundlerLegacy003Js.vn; createBaseVNode = _vueRuntimeEsmBundlerLegacy003Js.w; }, function (_MapCacheLegacy005Js) { I18nT = _MapCacheLegacy005Js._t; useI18n = _MapCacheLegacy005Js.gt; useAsyncState = _MapCacheLegacy005Js.x; }, function (_srcLegacy007Js) { N8nCallout_default = _srcLegacy007Js.Bn; N8nActionBox_default = _srcLegacy007Js.Ct; N8nButton_default = _srcLegacy007Js.Hn; N8nText_default = _srcLegacy007Js.Vn; N8nIcon_default = _srcLegacy007Js.Wn; N8nBadge_default = _srcLegacy007Js.at; N8nLink_default = _srcLegacy007Js.ut; }, function (_enLegacy00bJs) {}, function (_preloadHelperLegacy00dJs) {}, function (_pluginVue_exportHelperLegacy00fJs) { __plugin_vue_export_helper_default = _pluginVue_exportHelperLegacy00fJs.t; }, function (_truncateLegacy00hJs) { useRouter = _truncateLegacy00hJs.y; }, function (_iconLegacy00nJs) {}, function (_emptyLegacy00vJs) {}, function (_useTelemetryLegacy00HJs) { useSourceControlStore = _useTelemetryLegacy00HJs.Dn; useUIStore = _useTelemetryLegacy00HJs.Fi; useNodeTypesStore = _useTelemetryLegacy00HJs.at; COMMUNITY_PLUS_ENROLLMENT_MODAL = _useTelemetryLegacy00HJs.jo; useWorkflowsStore = _useTelemetryLegacy00HJs.o; useEvaluationStore = _useTelemetryLegacy00HJs.st; useTelemetry = _useTelemetryLegacy00HJs.t; }, function (_useToastLegacy00JJs) { useToast = _useToastLegacy00JJs.t; }, function (_sanitizeHtmlLegacy00LJs) {}, function (_CalendarDateLegacy00NJs) {}, function (_pathBrowserifyLegacy00RJs) {}, function (_constantsLegacy00TJs) { VIEWS = _constantsLegacy00TJs.Io; EVALUATIONS_DOCS_URL = _constantsLegacy00TJs._; PLACEHOLDER_EMPTY_WORKFLOW_ID = _constantsLegacy00TJs.s; }, function (_mergeLegacy00VJs) {}, function (_baseOrderByLegacy00ZJs) {}, function (_dateformatLegacy00$Js) {}, function (_useDebounceLegacy011Js) {}, function (_useExternalHooksLegacy013Js) {}, function (_useStylesLegacy015Js) {}, function (_cloudPlanStoreLegacy01dJs) {}, function (_templatesStoreLegacy01fJs) {}, function (_focusPanelStoreLegacy01hJs) {}, function (_executionsStoreLegacy01nJs) {}, function (_usePinnedDataLegacy01rJs) {}, function (_nodeCreatorStoreLegacy01tJs) {}, function (_nodeIconLegacy01vJs) {}, function (_useClipboardLegacy01xJs) {}, function (_useCanvasOperationsLegacy01zJs) { useCanvasOperations = _useCanvasOperationsLegacy01zJs.t; }, function (_foldersStoreLegacy01DJs) {}, function (_versionsStoreLegacy01LJs) {}, function (_usePageRedirectionHelperLegacy01NJs) { usePageRedirectionHelper = _usePageRedirectionHelperLegacy01NJs.t; }, function (_usageStoreLegacy02jJs) { useUsageStore = _usageStoreLegacy02jJs.t; }], execute: function () { __vite_style__ = document.createElement('style'); __vite_style__.textContent = "/* BEM support Func\n -------------------------- */\n/* Transition\n-------------------------- */\n/* Color\n-------------------------- */\n/* Link\n-------------------------- */\n/* Border\n-------------------------- */\n/* Outline\n-------------------------- */\n/* Box shadow\n-------------------------- */\n/* Fill\n-------------------------- */\n/* Typography\n-------------------------- */\n/* z-index\n-------------------------- */\n/* Disable base\n-------------------------- */\n/* Icon\n-------------------------- */\n/* Checkbox\n-------------------------- */\n/* Radio\n-------------------------- */\n/* Select\n-------------------------- */\n/* Alert\n-------------------------- */\n/* MessageBox\n-------------------------- */\n/* Message\n-------------------------- */\n/* Notification\n-------------------------- */\n/* Input\n-------------------------- */\n/* Cascader\n-------------------------- */\n/* Group\n-------------------------- */\n/* Tab\n-------------------------- */\n/* Button\n-------------------------- */\n/* cascader\n-------------------------- */\n/* Switch\n-------------------------- */\n/* Dialog\n-------------------------- */\n/* Table\n-------------------------- */\n/* Pagination\n-------------------------- */\n/* Popup\n-------------------------- */\n/* Popover\n-------------------------- */\n/* Tooltip\n-------------------------- */\n/* Tag\n-------------------------- */\n/* Tree\n-------------------------- */\n/* Dropdown\n-------------------------- */\n/* Badge\n-------------------------- */\n/* Card\n--------------------------*/\n/* Slider\n--------------------------*/\n/* Steps\n--------------------------*/\n/* Menu\n--------------------------*/\n/* Rate\n--------------------------*/\n/* DatePicker\n--------------------------*/\n/* Loading\n--------------------------*/\n/* Scrollbar\n--------------------------*/\n/* Carousel\n--------------------------*/\n/* Collapse\n--------------------------*/\n/* Transfer\n--------------------------*/\n/* Header\n --------------------------*/\n/* Footer\n--------------------------*/\n/* Main\n--------------------------*/\n/* Timeline\n--------------------------*/\n/* Backtop\n--------------------------*/\n/* Link\n--------------------------*/\n/* Calendar\n--------------------------*/\n/* Form\n-------------------------- */\n/* Avatar\n--------------------------*/\n/* Break-point\n--------------------------*/\n/* Break-points\n -------------------------- */\n/* Scrollbar\n -------------------------- */\n/* Placeholder\n -------------------------- */\n/* BEM\n -------------------------- */\n._stepIndicator_l3z5l_123 {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 28px;\n height: 28px;\n border-radius: 50%;\n border: 1px solid var(--color--text--tint-1);\n color: var(--color--text--tint-1);\n font-weight: var(--font-weight--bold);\n font-size: var(--font-size--2xs);\n flex-shrink: 0;\n transition: all 0.2s ease;\n}\n._stepIndicator_l3z5l_123._active_l3z5l_137 {\n border-color: var(--color--primary);\n color: var(--color--text--shade-1);\n}\n._stepIndicator_l3z5l_123._completed_l3z5l_141 {\n background-color: var(--color--success);\n border-color: var(--color--success);\n color: var(--color--neutral-white);\n}\n._stepIndicator_l3z5l_123._inactive_l3z5l_146 {\n color: var(--color--text--tint-1);\n border-color: var(--color--text);\n opacity: 0.7;\n}/* BEM support Func\n -------------------------- */\n/* Transition\n-------------------------- */\n/* Color\n-------------------------- */\n/* Link\n-------------------------- */\n/* Border\n-------------------------- */\n/* Outline\n-------------------------- */\n/* Box shadow\n-------------------------- */\n/* Fill\n-------------------------- */\n/* Typography\n-------------------------- */\n/* z-index\n-------------------------- */\n/* Disable base\n-------------------------- */\n/* Icon\n-------------------------- */\n/* Checkbox\n-------------------------- */\n/* Radio\n-------------------------- */\n/* Select\n-------------------------- */\n/* Alert\n-------------------------- */\n/* MessageBox\n-------------------------- */\n/* Message\n-------------------------- */\n/* Notification\n-------------------------- */\n/* Input\n-------------------------- */\n/* Cascader\n-------------------------- */\n/* Group\n-------------------------- */\n/* Tab\n-------------------------- */\n/* Button\n-------------------------- */\n/* cascader\n-------------------------- */\n/* Switch\n-------------------------- */\n/* Dialog\n-------------------------- */\n/* Table\n-------------------------- */\n/* Pagination\n-------------------------- */\n/* Popup\n-------------------------- */\n/* Popover\n-------------------------- */\n/* Tooltip\n-------------------------- */\n/* Tag\n-------------------------- */\n/* Tree\n-------------------------- */\n/* Dropdown\n-------------------------- */\n/* Badge\n-------------------------- */\n/* Card\n--------------------------*/\n/* Slider\n--------------------------*/\n/* Steps\n--------------------------*/\n/* Menu\n--------------------------*/\n/* Rate\n--------------------------*/\n/* DatePicker\n--------------------------*/\n/* Loading\n--------------------------*/\n/* Scrollbar\n--------------------------*/\n/* Carousel\n--------------------------*/\n/* Collapse\n--------------------------*/\n/* Transfer\n--------------------------*/\n/* Header\n --------------------------*/\n/* Footer\n--------------------------*/\n/* Main\n--------------------------*/\n/* Timeline\n--------------------------*/\n/* Backtop\n--------------------------*/\n/* Link\n--------------------------*/\n/* Calendar\n--------------------------*/\n/* Form\n-------------------------- */\n/* Avatar\n--------------------------*/\n/* Break-point\n--------------------------*/\n/* Break-points\n -------------------------- */\n/* Scrollbar\n -------------------------- */\n/* Placeholder\n -------------------------- */\n/* BEM\n -------------------------- */\n._stepHeader_cqtb0_123 {\n display: flex;\n align-items: center;\n gap: var(--spacing--xs);\n cursor: pointer;\n position: relative;\n}/* BEM support Func\n -------------------------- */\n/* Transition\n-------------------------- */\n/* Color\n-------------------------- */\n/* Link\n-------------------------- */\n/* Border\n-------------------------- */\n/* Outline\n-------------------------- */\n/* Box shadow\n-------------------------- */\n/* Fill\n-------------------------- */\n/* Typography\n-------------------------- */\n/* z-index\n-------------------------- */\n/* Disable base\n-------------------------- */\n/* Icon\n-------------------------- */\n/* Checkbox\n-------------------------- */\n/* Radio\n-------------------------- */\n/* Select\n-------------------------- */\n/* Alert\n-------------------------- */\n/* MessageBox\n-------------------------- */\n/* Message\n-------------------------- */\n/* Notification\n-------------------------- */\n/* Input\n-------------------------- */\n/* Cascader\n-------------------------- */\n/* Group\n-------------------------- */\n/* Tab\n-------------------------- */\n/* Button\n-------------------------- */\n/* cascader\n-------------------------- */\n/* Switch\n-------------------------- */\n/* Dialog\n-------------------------- */\n/* Table\n-------------------------- */\n/* Pagination\n-------------------------- */\n/* Popup\n-------------------------- */\n/* Popover\n-------------------------- */\n/* Tooltip\n-------------------------- */\n/* Tag\n-------------------------- */\n/* Tree\n-------------------------- */\n/* Dropdown\n-------------------------- */\n/* Badge\n-------------------------- */\n/* Card\n--------------------------*/\n/* Slider\n--------------------------*/\n/* Steps\n--------------------------*/\n/* Menu\n--------------------------*/\n/* Rate\n--------------------------*/\n/* DatePicker\n--------------------------*/\n/* Loading\n--------------------------*/\n/* Scrollbar\n--------------------------*/\n/* Carousel\n--------------------------*/\n/* Collapse\n--------------------------*/\n/* Transfer\n--------------------------*/\n/* Header\n --------------------------*/\n/* Footer\n--------------------------*/\n/* Main\n--------------------------*/\n/* Timeline\n--------------------------*/\n/* Backtop\n--------------------------*/\n/* Link\n--------------------------*/\n/* Calendar\n--------------------------*/\n/* Form\n-------------------------- */\n/* Avatar\n--------------------------*/\n/* Break-point\n--------------------------*/\n/* Break-points\n -------------------------- */\n/* Scrollbar\n -------------------------- */\n/* Placeholder\n -------------------------- */\n/* BEM\n -------------------------- */\n._container_7v9ik_123 {\n background-color: var(--color--background--light-2);\n}\n._steps_7v9ik_127 {\n display: flex;\n flex-direction: column;\n gap: var(--spacing--md);\n}\n._step_7v9ik_127 {\n overflow: hidden;\n}\n._stepContent_7v9ik_137 {\n padding: 0 0 0 calc(var(--spacing--xs) + 28px);\n animation: _slideDown_7v9ik_1 0.2s ease;\n}\n._bulletPoints_7v9ik_142 {\n padding-left: var(--spacing--sm);\n}\n._bulletPoints_7v9ik_142 li {\n margin-bottom: var(--spacing--3xs);\n}\n._actionButton_7v9ik_149 {\n margin-top: var(--spacing--sm);\n display: flex;\n gap: var(--spacing--sm);\n}\n._actionButton_7v9ik_149 button {\n font-weight: var(--font-weight--bold);\n}\n._actionButtonInline_7v9ik_158 {\n margin: 0;\n}\n._quotaNote_7v9ik_162 {\n margin-top: var(--spacing--2xs);\n}\n@keyframes _slideDown_7v9ik_1 {\nfrom {\n opacity: 0;\n transform: translateY(-10px);\n}\nto {\n opacity: 1;\n transform: translateY(0);\n}\n}/* BEM support Func\n -------------------------- */\n/* Transition\n-------------------------- */\n/* Color\n-------------------------- */\n/* Link\n-------------------------- */\n/* Border\n-------------------------- */\n/* Outline\n-------------------------- */\n/* Box shadow\n-------------------------- */\n/* Fill\n-------------------------- */\n/* Typography\n-------------------------- */\n/* z-index\n-------------------------- */\n/* Disable base\n-------------------------- */\n/* Icon\n-------------------------- */\n/* Checkbox\n-------------------------- */\n/* Radio\n-------------------------- */\n/* Select\n-------------------------- */\n/* Alert\n-------------------------- */\n/* MessageBox\n-------------------------- */\n/* Message\n-------------------------- */\n/* Notification\n-------------------------- */\n/* Input\n-------------------------- */\n/* Cascader\n-------------------------- */\n/* Group\n-------------------------- */\n/* Tab\n-------------------------- */\n/* Button\n-------------------------- */\n/* cascader\n-------------------------- */\n/* Switch\n-------------------------- */\n/* Dialog\n-------------------------- */\n/* Table\n-------------------------- */\n/* Pagination\n-------------------------- */\n/* Popup\n-------------------------- */\n/* Popover\n-------------------------- */\n/* Tooltip\n-------------------------- */\n/* Tag\n-------------------------- */\n/* Tree\n-------------------------- */\n/* Dropdown\n-------------------------- */\n/* Badge\n-------------------------- */\n/* Card\n--------------------------*/\n/* Slider\n--------------------------*/\n/* Steps\n--------------------------*/\n/* Menu\n--------------------------*/\n/* Rate\n--------------------------*/\n/* DatePicker\n--------------------------*/\n/* Loading\n--------------------------*/\n/* Scrollbar\n--------------------------*/\n/* Carousel\n--------------------------*/\n/* Collapse\n--------------------------*/\n/* Transfer\n--------------------------*/\n/* Header\n --------------------------*/\n/* Footer\n--------------------------*/\n/* Main\n--------------------------*/\n/* Timeline\n--------------------------*/\n/* Backtop\n--------------------------*/\n/* Link\n--------------------------*/\n/* Calendar\n--------------------------*/\n/* Form\n-------------------------- */\n/* Avatar\n--------------------------*/\n/* Break-point\n--------------------------*/\n/* Break-points\n -------------------------- */\n/* Scrollbar\n -------------------------- */\n/* Placeholder\n -------------------------- */\n/* BEM\n -------------------------- */\n._evaluationsView_3y4a8_123 {\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n}\n._setupContent_3y4a8_130 {\n display: flex;\n flex-direction: column;\n gap: var(--spacing--lg);\n max-width: 1024px;\n margin-top: var(--spacing--2xl);\n padding: 0;\n}\n._description_3y4a8_139 {\n max-width: 600px;\n margin-bottom: 20px;\n}\n._config_3y4a8_144 {\n display: flex;\n flex-direction: row;\n gap: var(--spacing--lg);\n}\n._setupDescription_3y4a8_150 {\n margin-top: var(--spacing--2xs);\n}\n._setupDescription_3y4a8_150 ul li {\n margin-top: var(--spacing--2xs);\n}/*$vite$:1*/"; document.head.appendChild(__vite_style__); //#region src/features/ai/evaluation.ee/components/Paywall/EvaluationsPaywall.vue?vue&type=script&setup=true&lang.ts EvaluationsPaywall_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({ __name: "EvaluationsPaywall", setup(__props) { const i18n = useI18n(); const uiStore = useUIStore(); const goToUpgrade = async () => { uiStore.openModalWithData({ name: COMMUNITY_PLUS_ENROLLMENT_MODAL, data: { customHeading: void 0 } }); }; return (_ctx, _cache) => { return openBlock(), createBlock(unref(N8nActionBox_default), { "data-test-id": "evaluations-unlicensed", heading: unref(i18n).baseText("evaluations.paywall.title"), description: unref(i18n).baseText("evaluations.paywall.description"), "button-text": unref(i18n).baseText("evaluations.paywall.cta"), onClick: goToUpgrade }, null, 8, ["heading", "description", "button-text"]); }; } }); //#endregion //#region src/features/ai/evaluation.ee/components/Paywall/EvaluationsPaywall.vue EvaluationsPaywall_default = EvaluationsPaywall_vue_vue_type_script_setup_true_lang_default; //#endregion //#region src/features/ai/evaluation.ee/components/shared/StepIndicator.vue?vue&type=script&setup=true&lang.ts StepIndicator_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({ __name: "StepIndicator", props: { stepNumber: {}, isCompleted: { type: Boolean }, isActive: { type: Boolean } }, setup(__props) { return (_ctx, _cache) => { return openBlock(), createElementBlock("div", { class: normalizeClass([_ctx.$style.stepIndicator, _ctx.isCompleted && _ctx.$style.completed, _ctx.isActive && _ctx.$style.active, !_ctx.isActive && !_ctx.isCompleted && _ctx.$style.inactive]) }, [_ctx.isCompleted ? (openBlock(), createBlock(unref(N8nIcon_default), { key: 0, icon: "check", size: "xsmall" })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(_ctx.stepNumber), 1)], 64))], 2); }; } }); //#endregion //#region src/features/ai/evaluation.ee/components/shared/StepIndicator.vue?vue&type=style&index=0&lang.module.scss stepIndicator = "_stepIndicator_l3z5l_123"; active = "_active_l3z5l_137"; completed = "_completed_l3z5l_141"; inactive = "_inactive_l3z5l_146"; StepIndicator_vue_vue_type_style_index_0_lang_module_default = { stepIndicator, active, completed, inactive }; //#endregion //#region src/features/ai/evaluation.ee/components/shared/StepIndicator.vue cssModules$3 = { "$style": StepIndicator_vue_vue_type_style_index_0_lang_module_default }; StepIndicator_default = /* @__PURE__ */__plugin_vue_export_helper_default(StepIndicator_vue_vue_type_script_setup_true_lang_default, [["__cssModules", cssModules$3]]); //#endregion //#region src/features/ai/evaluation.ee/components/shared/StepHeader.vue?vue&type=script&setup=true&lang.ts StepHeader_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({ __name: "StepHeader", props: { stepNumber: {}, title: {}, isCompleted: { type: Boolean }, isActive: { type: Boolean }, isOptional: { type: Boolean } }, emits: ["click"], setup(__props, { emit: __emit }) { const emit = __emit; const locale = useI18n(); const handleClick = event => { if (!event.target.closest("button") && !event.target.closest("a") && !event.target.closest("input") && !event.target.closest("select")) emit("click"); }; return (_ctx, _cache) => { return openBlock(), createElementBlock("div", { class: normalizeClass(_ctx.$style.stepHeader), onClick: handleClick }, [createVNode(StepIndicator_default, { "step-number": _ctx.stepNumber, "is-completed": _ctx.isCompleted, "is-active": _ctx.isActive }, null, 8, ["step-number", "is-completed", "is-active"]), createBaseVNode("div", { class: normalizeClass(_ctx.$style.titleSlot) }, [renderSlot(_ctx.$slots, "default", {}, () => [createVNode(unref(N8nText_default), { size: "medium", color: _ctx.isActive || _ctx.isCompleted ? "text-dark" : "text-light", tag: "span", bold: "" }, { default: withCtx(() => [createTextVNode(toDisplayString(_ctx.title), 1)]), _: 1 }, 8, ["color"])])], 2), _ctx.isOptional ? (openBlock(), createBlock(unref(N8nBadge_default), { key: 0, style: { "background-color": "var(--color--background)", "border": "none" } }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.stepHeader.optional")), 1)]), _: 1 })) : createCommentVNode("", true)], 2); }; } }); //#endregion //#region src/features/ai/evaluation.ee/components/shared/StepHeader.vue?vue&type=style&index=0&lang.module.scss stepHeader = "_stepHeader_cqtb0_123"; StepHeader_vue_vue_type_style_index_0_lang_module_default = { stepHeader }; //#endregion //#region src/features/ai/evaluation.ee/components/shared/StepHeader.vue cssModules$2 = { "$style": StepHeader_vue_vue_type_style_index_0_lang_module_default }; StepHeader_default = /* @__PURE__ */__plugin_vue_export_helper_default(StepHeader_vue_vue_type_script_setup_true_lang_default, [["__cssModules", cssModules$2]]); //#endregion //#region src/features/ai/evaluation.ee/components/SetupWizard/SetupWizard.vue?vue&type=script&setup=true&lang.ts SetupWizard_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({ __name: "SetupWizard", emits: ["runTest"], setup(__props) { const router = useRouter(); const locale = useI18n(); const workflowsStore = useWorkflowsStore(); const evaluationStore = useEvaluationStore(); const usageStore = useUsageStore(); const pageRedirectionHelper = usePageRedirectionHelper(); const hasRuns = computed(() => { return evaluationStore.testRunsByWorkflowId[workflowsStore.workflow.id]?.length > 0; }); const evaluationsAvailable = computed(() => { return usageStore.workflowsWithEvaluationsLimit === -1 || usageStore.workflowsWithEvaluationsCount < usageStore.workflowsWithEvaluationsLimit; }); const evaluationsQuotaExceeded = computed(() => { return usageStore.workflowsWithEvaluationsLimit !== -1 && usageStore.workflowsWithEvaluationsCount >= usageStore.workflowsWithEvaluationsLimit && !hasRuns.value; }); const activeStepIndex = ref(0); const initializeActiveStep = () => { if (evaluationsQuotaExceeded.value) { activeStepIndex.value = 2; return; } if (evaluationStore.evaluationTriggerExists && evaluationStore.evaluationSetMetricsNodeExist) activeStepIndex.value = 3;else if (evaluationStore.evaluationTriggerExists && evaluationStore.evaluationSetOutputsNodeExist) activeStepIndex.value = 2;else if (evaluationStore.evaluationTriggerExists) activeStepIndex.value = 1;else activeStepIndex.value = 0; }; initializeActiveStep(); const toggleStep = index => { activeStepIndex.value = index; }; function navigateToWorkflow(action) { const routeWorkflowId = workflowsStore.workflow.id === "__EMPTY__" ? "new" : workflowsStore.workflow.id; router.push({ name: VIEWS.WORKFLOW, params: { name: routeWorkflowId }, query: action ? { action } : void 0 }); } function onSeePlans() { pageRedirectionHelper.goToUpgrade("evaluations", "upgrade-evaluations"); } return (_ctx, _cache) => { return openBlock(), createElementBlock("div", { class: normalizeClass(_ctx.$style.container), "data-test-id": "evaluation-setup-wizard" }, [createBaseVNode("div", { class: normalizeClass(_ctx.$style.steps) }, [createBaseVNode("div", { class: normalizeClass([_ctx.$style.step, _ctx.$style.completed]) }, [createVNode(StepHeader_default, { "step-number": 1, title: unref(locale).baseText("evaluations.setupWizard.step1.title"), "is-completed": unref(evaluationStore).evaluationTriggerExists, "is-active": activeStepIndex.value === 0, onClick: _cache[0] || (_cache[0] = $event => toggleStep(0)) }, null, 8, ["title", "is-completed", "is-active"]), activeStepIndex.value === 0 ? (openBlock(), createElementBlock("div", { key: 0, class: normalizeClass(_ctx.$style.stepContent) }, [createBaseVNode("ul", { class: normalizeClass(_ctx.$style.bulletPoints) }, [createBaseVNode("li", null, [createVNode(unref(N8nText_default), { size: "small", color: "text-base" }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.step1.item1")), 1)]), _: 1 })]), createBaseVNode("li", null, [createVNode(unref(N8nText_default), { size: "small", color: "text-base" }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.step1.item2")), 1)]), _: 1 })])], 2), createBaseVNode("div", { class: normalizeClass(_ctx.$style.actionButton) }, [createVNode(unref(N8nButton_default), { size: "small", type: "secondary", onClick: _cache[1] || (_cache[1] = $event => navigateToWorkflow("addEvaluationTrigger")) }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.step1.button")), 1)]), _: 1 })], 2)], 2)) : createCommentVNode("", true)], 2), createBaseVNode("div", { class: normalizeClass([_ctx.$style.step, activeStepIndex.value === 1 ? _ctx.$style.active : ""]) }, [createVNode(StepHeader_default, { "step-number": 2, title: unref(locale).baseText("evaluations.setupWizard.step2.title"), "is-completed": unref(evaluationStore).evaluationSetOutputsNodeExist, "is-active": activeStepIndex.value === 1, onClick: _cache[2] || (_cache[2] = $event => toggleStep(1)) }, null, 8, ["title", "is-completed", "is-active"]), activeStepIndex.value === 1 ? (openBlock(), createElementBlock("div", { key: 0, class: normalizeClass(_ctx.$style.stepContent) }, [createBaseVNode("ul", { class: normalizeClass(_ctx.$style.bulletPoints) }, [createBaseVNode("li", null, [createVNode(unref(N8nText_default), { size: "small", color: "text-base" }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.step2.item1")), 1)]), _: 1 })])], 2), createBaseVNode("div", { class: normalizeClass(_ctx.$style.actionButton) }, [createVNode(unref(N8nButton_default), { size: "small", type: "secondary", onClick: _cache[3] || (_cache[3] = $event => navigateToWorkflow("addEvaluationNode")) }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.step2.button")), 1)]), _: 1 })], 2)], 2)) : createCommentVNode("", true)], 2), createBaseVNode("div", { class: normalizeClass(_ctx.$style.step) }, [createVNode(StepHeader_default, { "step-number": 3, title: unref(locale).baseText("evaluations.setupWizard.step3.title"), "is-completed": unref(evaluationStore).evaluationSetMetricsNodeExist, "is-active": activeStepIndex.value === 2, "is-optional": true, onClick: _cache[4] || (_cache[4] = $event => toggleStep(2)) }, null, 8, ["title", "is-completed", "is-active"]), activeStepIndex.value === 2 ? (openBlock(), createElementBlock("div", { key: 0, class: normalizeClass(_ctx.$style.stepContent) }, [!evaluationsQuotaExceeded.value ? (openBlock(), createElementBlock("ul", { key: 0, class: normalizeClass(_ctx.$style.bulletPoints) }, [createBaseVNode("li", null, [createVNode(unref(N8nText_default), { size: "small", color: "text-base" }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.step3.item1")), 1)]), _: 1 })]), createBaseVNode("li", null, [createVNode(unref(N8nText_default), { size: "small", color: "text-base" }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.step3.item2")), 1)]), _: 1 })])], 2)) : (openBlock(), createBlock(unref(N8nCallout_default), { key: 1, theme: "warning", iconless: "" }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.limitReached")), 1)]), _: 1 })), createBaseVNode("div", { class: normalizeClass(_ctx.$style.actionButton) }, [!evaluationsQuotaExceeded.value ? (openBlock(), createBlock(unref(N8nButton_default), { key: 0, size: "small", type: "secondary", onClick: _cache[5] || (_cache[5] = $event => navigateToWorkflow("addEvaluationNode")) }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.step3.button")), 1)]), _: 1 })) : (openBlock(), createBlock(unref(N8nButton_default), { key: 1, size: "small", onClick: onSeePlans }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("generic.seePlans")), 1)]), _: 1 })), createVNode(unref(N8nButton_default), { size: "small", text: "", style: { "color": "var(--color--text--tint-1)" }, onClick: _cache[6] || (_cache[6] = $event => toggleStep(3)) }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.step3.skip")), 1)]), _: 1 })], 2), unref(usageStore).workflowsWithEvaluationsLimit !== -1 && evaluationsAvailable.value ? (openBlock(), createElementBlock("div", { key: 2, class: normalizeClass(_ctx.$style.quotaNote) }, [createVNode(unref(N8nText_default), { size: "xsmall", color: "text-base" }, { default: withCtx(() => [createVNode(unref(I18nT), { keypath: "evaluations.setupWizard.step3.notice", scope: "global" }, { link: withCtx(() => [createBaseVNode("a", { style: { "text-decoration": "underline", "color": "inherit" }, onClick: onSeePlans }, toDisplayString(unref(locale).baseText("evaluations.setupWizard.step3.notice.link")), 1)]), _: 1 })]), _: 1 })], 2)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)], 2), createBaseVNode("div", { class: normalizeClass(_ctx.$style.step) }, [createVNode(StepHeader_default, { "step-number": 4, title: unref(locale).baseText("evaluations.setupWizard.step4.title"), "is-completed": false, "is-active": activeStepIndex.value === 3, onClick: _cache[9] || (_cache[9] = $event => toggleStep(3)) }, { default: withCtx(() => [createBaseVNode("div", { class: normalizeClass([_ctx.$style.actionButton, _ctx.$style.actionButtonInline]) }, [unref(evaluationStore).evaluationSetMetricsNodeExist && !evaluationsQuotaExceeded.value ? (openBlock(), createBlock(unref(N8nButton_default), { key: 0, size: "medium", type: "secondary", disabled: !unref(evaluationStore).evaluationTriggerExists || !unref(evaluationStore).evaluationSetOutputsNodeExist && !unref(evaluationStore).evaluationSetMetricsNodeExist, onClick: _cache[7] || (_cache[7] = $event => _ctx.$emit("runTest")) }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.step4.button")), 1)]), _: 1 }, 8, ["disabled"])) : (openBlock(), createBlock(unref(N8nButton_default), { key: 1, size: "medium", type: "secondary", disabled: !unref(evaluationStore).evaluationTriggerExists || !unref(evaluationStore).evaluationSetOutputsNodeExist && !unref(evaluationStore).evaluationSetMetricsNodeExist, onClick: _cache[8] || (_cache[8] = $event => navigateToWorkflow("executeEvaluation")) }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.step4.altButton")), 1)]), _: 1 }, 8, ["disabled"]))], 2)]), _: 1 }, 8, ["title", "is-active"])], 2)], 2)], 2); }; } }); //#endregion //#region src/features/ai/evaluation.ee/components/SetupWizard/SetupWizard.vue?vue&type=style&index=0&lang.module.scss container = "_container_7v9ik_123"; steps = "_steps_7v9ik_127"; step = "_step_7v9ik_127"; stepContent = "_stepContent_7v9ik_137"; slideDown = "_slideDown_7v9ik_1"; bulletPoints = "_bulletPoints_7v9ik_142"; actionButton = "_actionButton_7v9ik_149"; actionButtonInline = "_actionButtonInline_7v9ik_158"; quotaNote = "_quotaNote_7v9ik_162"; SetupWizard_vue_vue_type_style_index_0_lang_module_default = { container, steps, step, stepContent, slideDown, bulletPoints, actionButton, actionButtonInline, quotaNote }; //#endregion //#region src/features/ai/evaluation.ee/components/SetupWizard/SetupWizard.vue cssModules$1 = { "$style": SetupWizard_vue_vue_type_style_index_0_lang_module_default }; SetupWizard_default = /* @__PURE__ */__plugin_vue_export_helper_default(SetupWizard_vue_vue_type_script_setup_true_lang_default, [["__cssModules", cssModules$1]]); //#endregion //#region src/features/ai/evaluation.ee/views/EvaluationsRootView.vue?vue&type=script&setup=true&lang.ts EvaluationsRootView_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */defineComponent({ __name: "EvaluationsRootView", props: { name: {} }, setup(__props) { const props = __props; const workflowsStore = useWorkflowsStore(); const usageStore = useUsageStore(); const evaluationStore = useEvaluationStore(); const nodeTypesStore = useNodeTypesStore(); const telemetry = useTelemetry(); const toast = useToast(); const locale = useI18n(); const sourceControlStore = useSourceControlStore(); const { initializeWorkspace } = useCanvasOperations(); const evaluationsLicensed = computed(() => { return usageStore.workflowsWithEvaluationsLimit !== 0; }); const isProtectedEnvironment = computed(() => { return sourceControlStore.preferences.branchReadOnly; }); const runs = computed(() => { return Object.values(evaluationStore.testRunsById ?? {}).filter(({ workflowId }) => workflowId === props.name); }); const hasRuns = computed(() => { return runs.value.length > 0; }); const showWizard = computed(() => !hasRuns.value); async function runTest() { try { await evaluationStore.startTestRun(props.name); } catch (error) { toast.showError(error, locale.baseText("evaluation.listRuns.error.cantStartTestRun")); return; } try { await evaluationStore.fetchTestRuns(props.name); } catch (error) { toast.showError(error, locale.baseText("evaluation.listRuns.error.cantFetchTestRuns")); } } const evaluationsQuotaExceeded = computed(() => { return usageStore.workflowsWithEvaluationsLimit !== -1 && usageStore.workflowsWithEvaluationsCount >= usageStore.workflowsWithEvaluationsLimit && !hasRuns.value; }); const { isReady } = useAsyncState(async () => { try { await usageStore.getLicenseInfo(); await evaluationStore.fetchTestRuns(props.name); } catch (error) { toast.showError(error, locale.baseText("evaluation.listRuns.error.cantFetchTestRuns")); } const workflowId = props.name; if (workflowsStore.workflow.id === workflowId) return; if (workflowId && workflowId !== "new") { if (workflowsStore.workflow.id === "__EMPTY__") try { const data = await workflowsStore.fetchWorkflow(workflowId); if (nodeTypesStore.allNodeTypes.length === 0) await nodeTypesStore.getNodeTypes(); initializeWorkspace(data); } catch (error) { toast.showError(error, locale.baseText("nodeView.showError.openWorkflow.title")); } } }, void 0); watch(isReady, ready => { if (ready) if (showWizard.value) telemetry.track("User viewed tests tab", { workflow_id: props.name, test_type: "evaluation", view: "setup", trigger_set_up: evaluationStore.evaluationTriggerExists, output_set_up: evaluationStore.evaluationSetOutputsNodeExist, metrics_set_up: evaluationStore.evaluationSetMetricsNodeExist, quota_reached: evaluationsQuotaExceeded.value });else telemetry.track("User viewed tests tab", { workflow_id: props.name, test_type: "evaluation", view: "overview", run_count: runs.value.length }); }, { immediate: true }); return (_ctx, _cache) => { const _component_RouterView = resolveComponent("RouterView"); return openBlock(), createElementBlock("div", { class: normalizeClass(_ctx.$style.evaluationsView) }, [unref(isReady) && showWizard.value ? (openBlock(), createElementBlock("div", { key: 0, class: normalizeClass(_ctx.$style.setupContent) }, [createBaseVNode("div", null, [createVNode(unref(N8nText_default), { size: "large", color: "text-dark", tag: "h3", bold: "" }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.title")), 1)]), _: 1 }), createVNode(unref(N8nText_default), { tag: "p", size: "small", color: "text-base", class: normalizeClass(_ctx.$style.description) }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.description")) + " ", 1), createVNode(unref(N8nLink_default), { size: "small", href: unref(EVALUATIONS_DOCS_URL) }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.setupWizard.moreInfo")), 1)]), _: 1 }, 8, ["href"])]), _: 1 }, 8, ["class"])]), isProtectedEnvironment.value ? (openBlock(), createBlock(unref(N8nCallout_default), { key: 0, theme: "info", icon: "info" }, { default: withCtx(() => [createTextVNode(toDisplayString(unref(locale).baseText("evaluations.readOnlyNotice")), 1)]), _: 1 })) : (openBlock(), createElementBlock("div", { key: 1, class: normalizeClass(_ctx.$style.config) }, [_cache[0] || (_cache[0] = createBaseVNode("iframe", { style: { "min-width": "500px" }, width: "500", height: "280", src: "https://www.youtube.com/embed/5LlF196PKaE", title: "n8n Evaluation quickstart", frameborder: "0", allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share", referrerpolicy: "strict-origin-when-cross-origin", allowfullscreen: "" }, null, -1)), evaluationsLicensed.value ? (openBlock(), createBlock(SetupWizard_default, { key: 0, onRunTest: runTest })) : (openBlock(), createBlock(EvaluationsPaywall_default, { key: 1 }))], 2))], 2)) : unref(isReady) ? (openBlock(), createBlock(_component_RouterView, { key: 1 })) : createCommentVNode("", true)], 2); }; } }); //#endregion //#region src/features/ai/evaluation.ee/views/EvaluationsRootView.vue?vue&type=style&index=0&lang.module.scss evaluationsView = "_evaluationsView_3y4a8_123"; setupContent = "_setupContent_3y4a8_130"; description = "_description_3y4a8_139"; config = "_config_3y4a8_144"; setupDescription = "_setupDescription_3y4a8_150"; EvaluationsRootView_vue_vue_type_style_index_0_lang_module_default = { evaluationsView, setupContent, description, config, setupDescription }; //#endregion //#region src/features/ai/evaluation.ee/views/EvaluationsRootView.vue cssModules = { "$style": EvaluationsRootView_vue_vue_type_style_index_0_lang_module_default }; _export("default", EvaluationsRootView_default = /* @__PURE__ */__plugin_vue_export_helper_default(EvaluationsRootView_vue_vue_type_script_setup_true_lang_default, [["__cssModules", cssModules]])); //#endregion } }; }); })();