n8n-editor-ui 1.75.1 → 1.77.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/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BhRv3Xk0.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DI9LKNPl.js} +1 -1
- package/dist/assets/{AuthView-vL9vjCvD.js → AuthView-DM7o3O4n.js} +2 -2
- package/dist/assets/{CanvasChat-B69VJDcA.js → CanvasChat-D_6gR76j.js} +19 -18
- package/dist/assets/{CanvasControls-DhhKk7yf.js → CanvasControls-Nhfb4Lvl.js} +1 -1
- package/dist/assets/{ChangePasswordView-D8y2rYLl.js → ChangePasswordView-BaAm4ZVG.js} +3 -3
- package/dist/assets/CollectionParameter-B6Y-W51v.js +4 -0
- package/dist/assets/{ConcurrentExecutionsHeader-Dv0s5rxY.js → ConcurrentExecutionsHeader-DIjBdza6.js} +2 -2
- package/dist/assets/{CredentialsView-Dp0fVbpZ.js → CredentialsView-Xu6hENWr.js} +4 -4
- package/dist/assets/{ErrorView-a6qq4rkt.js → ErrorView-DUTGEeMV.js} +1 -1
- package/dist/assets/{ExecutionsView-CpILe_1o.js → ExecutionsView-BUxJO71n.js} +17 -5
- package/dist/assets/{FileSaver.min-C1QTiJmy.js → FileSaver.min-BEdek61R.js} +1 -1
- package/dist/assets/{FixedCollectionParameter-DvdC-9QQ.css → FixedCollectionParameter-BReT5syB.css} +18 -18
- package/dist/assets/{FixedCollectionParameter-kphzKyyy.js → FixedCollectionParameter-C347CzJX.js} +27 -3
- package/dist/assets/{ForgotMyPasswordView-DzUekqel.js → ForgotMyPasswordView-COBAL4BR.js} +3 -3
- package/dist/assets/{Logo-B-pFOUGc.js → Logo-D0YIkpeq.js} +1 -1
- package/dist/assets/{MainHeader-C6S60KwG.js → MainHeader-C9fFpTj2.js} +15 -105
- package/dist/assets/{MainHeader-BIKp2Ncp.css → MainHeader-DC-g9NGP.css} +12 -11
- package/dist/assets/{MainSidebar-CJ-OKhK-.js → MainSidebar-DqTz49bY.js} +38 -81
- package/dist/assets/{NodeCreation-CNcty5fl.js → NodeCreation-BfPITu8g.js} +4 -4
- package/dist/assets/{NodeCreator-DAW2sX8p.js → NodeCreator-CK6kn0Jv.js} +4 -5
- package/dist/assets/{NodeViewSwitcher-mtWBt9cw.js → NodeViewSwitcher-Ccwulgc_.js} +164 -83
- package/dist/assets/{NodeViewSwitcher-CB1zkjni.css → NodeViewSwitcher-DApULbEt.css} +36 -39
- package/dist/assets/{ProjectCardBadge-DcWhzEr6.js → ProjectCardBadge-Dzk3JBiy.js} +2 -15
- package/dist/assets/{ProjectHeader-D2FCquSr.js → ProjectHeader-DScDlb97.js} +1 -1
- package/dist/assets/{ProjectSettings-CDg4IQw7.js → ProjectSettings-BKBT1ZQ3.js} +2 -2
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-BPBen7Li.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-vHkaCcgH.js} +1 -1
- package/dist/assets/{ResourcesListLayout-DWASP6Vp.js → ResourcesListLayout-Bm25PbPe.js} +21 -11
- package/dist/assets/{ResourcesListLayout-CJC-YvjD.css → ResourcesListLayout-d7mMNhOL.css} +6 -6
- package/dist/assets/{RunDataJson-CFNeORgR.js → RunDataJson-DdPA-vUg.js} +14 -15
- package/dist/assets/{RunDataJson-BXTLuo7i.css → RunDataJson-Txw0lqay.css} +1 -0
- package/dist/assets/{RunDataJsonActions-COFXneND.js → RunDataJsonActions-DQOpbX-O.js} +2 -2
- package/dist/assets/{RunDataSearch-D9UDSGjR.js → RunDataSearch-CouFZTIv.js} +1 -1
- package/dist/assets/{RunDataTable-C3flt0dy.js → RunDataTable-BTSlSsV8.js} +18 -20
- package/dist/assets/{SamlOnboarding-CWM-8qu7.js → SamlOnboarding-ByjacAW7.js} +3 -3
- package/dist/assets/{SettingsApiView-Bl6jvpWQ.js → SettingsApiView-Bcy_zE6E.js} +1 -1
- package/dist/assets/{SettingsCommunityNodesView-5Dl4EOzd.js → SettingsCommunityNodesView-Cjl8HKbz.js} +4 -4
- package/dist/assets/{SettingsExternalSecrets-DljwCjwW.js → SettingsExternalSecrets-BdjUgns5.js} +1 -1
- package/dist/assets/{SettingsLdapView-5kgLPxB7.js → SettingsLdapView-JZznK2gT.js} +1 -1
- package/dist/assets/{SettingsLogStreamingView-CsB-E4Kv.js → SettingsLogStreamingView-Dr-YFp2W.js} +1 -1
- package/dist/assets/{SettingsPersonalView-B0vJNuPt.js → SettingsPersonalView-inpY_nzK.js} +1 -1
- package/dist/assets/{SettingsSourceControl-B7SGpzBu.js → SettingsSourceControl-Cg7lS-SE.js} +1 -1
- package/dist/assets/{SettingsSso-pDsu2lsS.js → SettingsSso-NG13hUzi.js} +1 -1
- package/dist/assets/{SettingsUsageAndPlan-B83lunzH.js → SettingsUsageAndPlan-BgSLN2VF.js} +1 -1
- package/dist/assets/{SettingsUsersView-DPM5R_9p.js → SettingsUsersView-DUmnh2jo.js} +1 -1
- package/dist/assets/{SettingsView-NF_8zzqr.js → SettingsView-DdHGr_vR.js} +1 -1
- package/dist/assets/{SetupView-Dzehb2sC.js → SetupView-ByLBPzaO.js} +3 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-Bhx7c9Lu.js → SetupWorkflowCredentialsButton-Dv3O2B1n.js} +3 -2
- package/dist/assets/{SetupWorkflowFromTemplateView-DaP6_l4S.js → SetupWorkflowFromTemplateView-DFn8kOzj.js} +3 -3
- package/dist/assets/{SigninView-BLyXzN0c.js → SigninView-DIJ4QhSe.js} +3 -3
- package/dist/assets/{SignoutView-BsaJctbQ.js → SignoutView-CzgpQ3SX.js} +1 -1
- package/dist/assets/{SignupView-m53hHk3y.js → SignupView-Ki2_QcUU.js} +3 -3
- package/dist/assets/{TemplateDetails-CWR4kXyf.js → TemplateDetails-BSeVX-wU.js} +1 -1
- package/dist/assets/{TemplateList-DLQxEmgt.js → TemplateList-CM9EZ6da.js} +1 -1
- package/dist/assets/{TemplatesCollectionView-CobxDh9v.js → TemplatesCollectionView-DQMG3Nx0.js} +5 -5
- package/dist/assets/{TemplatesSearchView-CDW7EH1p.js → TemplatesSearchView-BG5Bfpq9.js} +3 -3
- package/dist/assets/{TemplatesView-DJCodjB-.js → TemplatesView-D3vhmKK2.js} +1 -1
- package/dist/assets/{TemplatesWorkflowView-DOlLEzEa.js → TemplatesWorkflowView-BVZExmo-.js} +5 -5
- package/dist/assets/{TestDefinitionEditView-Cuphh86f.js → TestDefinitionEditView-DeYXSHuX.js} +837 -549
- package/dist/assets/{TestDefinitionEditView-FI1GVbhl.css → TestDefinitionEditView-d7yfvp9P.css} +601 -238
- package/dist/assets/{TestDefinitionListView-Dgq9dXJL.js → TestDefinitionListView-Dm0Wfpbk.js} +93 -68
- package/dist/assets/{TestDefinitionRootView-DU-JMBSH.js → TestDefinitionRootView-v_AUC4gJ.js} +1 -1
- package/dist/assets/VariablesView-BBjPCn4K.js +509 -0
- package/dist/assets/{VariablesView-D4pRzSuY.css → VariablesView-CIfrpJdg.css} +21 -54
- package/dist/assets/{WorkerView-CbqToUTB.js → WorkerView-wAx-DxZp.js} +5 -5
- package/dist/assets/{WorkflowActivator-BaM6Tydw.js → WorkflowActivator-KzTynbZM.js} +2 -2
- package/dist/assets/{WorkflowExecutionsInfoAccordion-6kKOPXK7.js → WorkflowExecutionsInfoAccordion-BWYv1FIv.js} +1 -1
- package/dist/assets/{WorkflowExecutionsLandingPage-Cqq5FeZE.js → WorkflowExecutionsLandingPage-LwIHX7rs.js} +2 -2
- package/dist/assets/{WorkflowExecutionsPreview-D1cSllVi.js → WorkflowExecutionsPreview-D68OCpWf.js} +8 -7
- package/dist/assets/{WorkflowExecutionsView-BUHtKz5M.css → WorkflowExecutionsView-BjdRnQOE.css} +32 -32
- package/dist/assets/{WorkflowExecutionsView-qTFEWbeC.js → WorkflowExecutionsView-C47WjaF2.js} +43 -29
- package/dist/assets/{WorkflowHistory-De54-QkN.js → WorkflowHistory-VBfitRhR.js} +3 -3
- package/dist/assets/{WorkflowOnboardingView-p6cAElRZ.js → WorkflowOnboardingView-X9Yz2kZe.js} +1 -31
- package/dist/assets/{WorkflowPreview-CKK96lnJ.js → WorkflowPreview-D0IqMbWq.js} +24 -6
- package/dist/assets/{WorkflowsView-D5G530AX.js → WorkflowsView-CXhmco5U.js} +7 -7
- package/dist/assets/{easyAiWorkflowUtils-eykvtlKm.js → easyAiWorkflowUtils-B7xBZAZO.js} +1 -1
- package/dist/assets/{index-CWcTt6jd.js → index-BW7gX0J2.js} +232838 -231981
- package/dist/assets/{index-DXFsvbJ_.css → index-Bs_8II2j.css} +257 -38
- package/dist/assets/{polyfills-BN5TIqPj.js → polyfills-DNwgos9f.js} +650 -0
- package/dist/assets/{pushConnection.store-CTrZ_kO6.js → pushConnection.store-C6PSl50Z.js} +1 -1
- package/dist/assets/{templateActions-B712CNo3.js → templateActions-BHlzMnfj.js} +1 -1
- package/dist/assets/useBeforeUnload-BudMrcxz.js +43 -0
- package/dist/assets/{useCanvasOperations-BSKKylIT.css → useCanvasOperations-CEWecDkR.css} +12 -12
- package/dist/assets/{useCanvasOperations-DTx4vbp_.js → useCanvasOperations-ZjLeZwpS.js} +62 -61
- package/dist/assets/{useExecutionDebugging-DjYGtT4w.js → useExecutionDebugging-C_Y6ee_L.js} +1 -1
- package/dist/assets/{useExecutionHelpers-DcyS3__o.js → useExecutionHelpers-MX6P-wr8.js} +1 -1
- package/dist/assets/{usePinnedData-C5NRkSpx.js → usePinnedData-CHMuwypo.js} +1 -1
- package/dist/assets/{usePushConnection-CGv57TM5.js → usePushConnection-3HzYJp1-.js} +3 -3
- package/dist/assets/{useRunWorkflow-C_vazd74.js → useRunWorkflow-DUK8ev8x.js} +19 -7
- package/dist/assets/{useWorkflowActivate-Dxi5zSSs.js → useWorkflowActivate-BjJ3P-qa.js} +1 -1
- package/dist/index.html +3 -3
- package/dist/static/n8n-logo.png +0 -0
- package/package.json +1 -1
- package/dist/assets/CollectionParameter-djLQ8MUO.js +0 -4
- package/dist/assets/VariablesView-CaGkZXjl.js +0 -599
- package/dist/assets/useBugReporting-BxDqzvRW.js +0 -38
- package/dist/assets/useNodeViewVersionSwitcher-CXU1PYlK.js +0 -93
|
@@ -0,0 +1,509 @@
|
|
|
1
|
+
import { d as defineComponent, b6 as useClipboard, a as useToast, q as computed, c as openBlock, e as createBlock, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, j as createBaseVNode, aP as N8nTooltip, g as useI18n, _ as _export_sfc, dy as reactive, fL as toRaw, r as ref, h as createElementBlock, i as createVNode, fM as N8nFormInput, f as createCommentVNode, ct as N8nButton, p as useSettingsStore, dI as useEnvironmentsStore, u as useUsersStore, K as useUIStore, a0 as useSourceControlStore, U as useRoute, b as useRouter, fN as useTemplateRef, fO as useAsyncState, o as onMounted, a3 as useDocumentTitle, aS as createSlots, a$ as mergeProps, fP as N8nActionBox, aZ as normalizeProps, fQ as N8nInputLabel, fR as N8nCheckbox, F as Fragment, fS as N8nBadge, fT as uid, ae as MODAL_CONFIRM, a5 as usePageRedirectionHelper, m as resolveComponent, aj as useTelemetry, ak as useMessage, al as getResourcePermissions, a8 as EnterpriseEditionFeature } from "./index-BW7gX0J2.js";
|
|
2
|
+
import { R as ResourcesListLayout, p as pickBy } from "./ResourcesListLayout-Bm25PbPe.js";
|
|
3
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
4
|
+
__name: "VariablesUsageBadge",
|
|
5
|
+
props: {
|
|
6
|
+
name: {}
|
|
7
|
+
},
|
|
8
|
+
setup(__props) {
|
|
9
|
+
const i18n = useI18n();
|
|
10
|
+
const clipboard = useClipboard();
|
|
11
|
+
const { showMessage } = useToast();
|
|
12
|
+
const props = __props;
|
|
13
|
+
const usage = computed(() => `$vars.${props.name}`);
|
|
14
|
+
const handleClick = () => {
|
|
15
|
+
void clipboard.copy(usage.value);
|
|
16
|
+
showMessage({
|
|
17
|
+
title: i18n.baseText("variables.row.usage.copiedToClipboard"),
|
|
18
|
+
type: "success"
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
return (_ctx, _cache) => {
|
|
22
|
+
return openBlock(), createBlock(unref(N8nTooltip), { placement: "top" }, {
|
|
23
|
+
content: withCtx(() => [
|
|
24
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("variables.row.usage.copyToClipboard")), 1)
|
|
25
|
+
]),
|
|
26
|
+
default: withCtx(() => [
|
|
27
|
+
createBaseVNode("span", {
|
|
28
|
+
class: "usageSyntax",
|
|
29
|
+
onClick: handleClick
|
|
30
|
+
}, toDisplayString(usage.value), 1)
|
|
31
|
+
]),
|
|
32
|
+
_: 1
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
const VariablesUsageBadge = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-513b2829"]]);
|
|
38
|
+
const _hoisted_1$1 = { class: "key-cell" };
|
|
39
|
+
const _hoisted_2$1 = {
|
|
40
|
+
class: "value-cell",
|
|
41
|
+
width: "100%"
|
|
42
|
+
};
|
|
43
|
+
const _hoisted_3$1 = { align: "right" };
|
|
44
|
+
const VALUE_MAX_LENGTH = 220;
|
|
45
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
46
|
+
__name: "VariablesForm",
|
|
47
|
+
props: {
|
|
48
|
+
variable: {}
|
|
49
|
+
},
|
|
50
|
+
emits: ["submit", "cancel"],
|
|
51
|
+
setup(__props, { emit: __emit }) {
|
|
52
|
+
const props = __props;
|
|
53
|
+
const emit = __emit;
|
|
54
|
+
const i18n = useI18n();
|
|
55
|
+
const keyValidationRules = [
|
|
56
|
+
{ name: "REQUIRED" },
|
|
57
|
+
{ name: "MAX_LENGTH", config: { maximum: 50 } },
|
|
58
|
+
{
|
|
59
|
+
name: "MATCH_REGEX",
|
|
60
|
+
config: {
|
|
61
|
+
regex: /^[a-zA-Z]/,
|
|
62
|
+
message: i18n.baseText("variables.editing.key.error.startsWithLetter")
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "MATCH_REGEX",
|
|
67
|
+
config: {
|
|
68
|
+
regex: /^[a-zA-Z][a-zA-Z0-9_]*$/,
|
|
69
|
+
message: i18n.baseText("variables.editing.key.error.jsonKey")
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
];
|
|
73
|
+
const valueValidationRules = [
|
|
74
|
+
{ name: "MAX_LENGTH", config: { maximum: VALUE_MAX_LENGTH } }
|
|
75
|
+
];
|
|
76
|
+
const form = reactive(structuredClone(toRaw(props.variable)));
|
|
77
|
+
const formValidation = reactive({
|
|
78
|
+
key: false,
|
|
79
|
+
value: false
|
|
80
|
+
});
|
|
81
|
+
const isValid = computed(() => Object.values(formValidation).every((value) => value));
|
|
82
|
+
const handleCancel = () => emit("cancel");
|
|
83
|
+
const validateOnBlur = ref(false);
|
|
84
|
+
const handleSubmit = () => {
|
|
85
|
+
validateOnBlur.value = true;
|
|
86
|
+
if (isValid.value) {
|
|
87
|
+
emit("submit", form);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
return (_ctx, _cache) => {
|
|
91
|
+
return openBlock(), createElementBlock("tr", null, [
|
|
92
|
+
createBaseVNode("td", _hoisted_1$1, [
|
|
93
|
+
createVNode(unref(N8nFormInput), {
|
|
94
|
+
modelValue: form.key,
|
|
95
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => form.key = $event),
|
|
96
|
+
label: "",
|
|
97
|
+
name: "key",
|
|
98
|
+
"data-test-id": "variable-row-key-input",
|
|
99
|
+
placeholder: unref(i18n).baseText("variables.editing.key.placeholder"),
|
|
100
|
+
required: "",
|
|
101
|
+
"validate-on-blur": validateOnBlur.value,
|
|
102
|
+
"validation-rules": keyValidationRules,
|
|
103
|
+
"focus-initially": "",
|
|
104
|
+
onValidate: _cache[1] || (_cache[1] = (value) => formValidation.key = value)
|
|
105
|
+
}, null, 8, ["modelValue", "placeholder", "validate-on-blur"])
|
|
106
|
+
]),
|
|
107
|
+
createBaseVNode("td", _hoisted_2$1, [
|
|
108
|
+
createVNode(unref(N8nFormInput), {
|
|
109
|
+
modelValue: form.value,
|
|
110
|
+
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => form.value = $event),
|
|
111
|
+
class: "key-input",
|
|
112
|
+
label: "",
|
|
113
|
+
name: "value",
|
|
114
|
+
"data-test-id": "variable-row-value-input",
|
|
115
|
+
placeholder: unref(i18n).baseText("variables.editing.value.placeholder"),
|
|
116
|
+
type: "textarea",
|
|
117
|
+
autosize: { minRows: 1, maxRows: 6 },
|
|
118
|
+
size: "medium",
|
|
119
|
+
maxlength: VALUE_MAX_LENGTH,
|
|
120
|
+
"validate-on-blur": validateOnBlur.value,
|
|
121
|
+
"validation-rules": valueValidationRules,
|
|
122
|
+
onValidate: _cache[3] || (_cache[3] = (value) => formValidation.value = value)
|
|
123
|
+
}, null, 8, ["modelValue", "placeholder", "validate-on-blur"])
|
|
124
|
+
]),
|
|
125
|
+
createBaseVNode("td", null, [
|
|
126
|
+
formValidation.key ? (openBlock(), createBlock(VariablesUsageBadge, {
|
|
127
|
+
key: 0,
|
|
128
|
+
name: form.key
|
|
129
|
+
}, null, 8, ["name"])) : createCommentVNode("", true)
|
|
130
|
+
]),
|
|
131
|
+
createBaseVNode("td", _hoisted_3$1, [
|
|
132
|
+
createVNode(unref(N8nButton), {
|
|
133
|
+
"data-test-id": "variable-row-cancel-button",
|
|
134
|
+
type: "tertiary",
|
|
135
|
+
class: "mr-xs",
|
|
136
|
+
onClick: handleCancel
|
|
137
|
+
}, {
|
|
138
|
+
default: withCtx(() => [
|
|
139
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("variables.row.button.cancel")), 1)
|
|
140
|
+
]),
|
|
141
|
+
_: 1
|
|
142
|
+
}),
|
|
143
|
+
createVNode(unref(N8nButton), {
|
|
144
|
+
"data-test-id": "variable-row-save-button",
|
|
145
|
+
type: "primary",
|
|
146
|
+
onClick: handleSubmit
|
|
147
|
+
}, {
|
|
148
|
+
default: withCtx(() => [
|
|
149
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("variables.row.button.save")), 1)
|
|
150
|
+
]),
|
|
151
|
+
_: 1
|
|
152
|
+
})
|
|
153
|
+
])
|
|
154
|
+
]);
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
const VariablesForm = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-5059e945"]]);
|
|
159
|
+
const _hoisted_1 = { key: 0 };
|
|
160
|
+
const _hoisted_2 = { key: 1 };
|
|
161
|
+
const _hoisted_3 = { class: "mb-s" };
|
|
162
|
+
const _hoisted_4 = {
|
|
163
|
+
key: 1,
|
|
164
|
+
"data-test-id": "variables-row"
|
|
165
|
+
};
|
|
166
|
+
const _hoisted_5 = {
|
|
167
|
+
key: 0,
|
|
168
|
+
align: "right"
|
|
169
|
+
};
|
|
170
|
+
const _hoisted_6 = { class: "action-buttons" };
|
|
171
|
+
const TEMPORARY_VARIABLE_UID_BASE = "@tmpvar";
|
|
172
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
173
|
+
__name: "VariablesView",
|
|
174
|
+
setup(__props) {
|
|
175
|
+
const settingsStore = useSettingsStore();
|
|
176
|
+
const environmentsStore = useEnvironmentsStore();
|
|
177
|
+
const usersStore = useUsersStore();
|
|
178
|
+
const uiStore = useUIStore();
|
|
179
|
+
const telemetry = useTelemetry();
|
|
180
|
+
const i18n = useI18n();
|
|
181
|
+
const message = useMessage();
|
|
182
|
+
const sourceControlStore = useSourceControlStore();
|
|
183
|
+
const route = useRoute();
|
|
184
|
+
const router = useRouter();
|
|
185
|
+
const layoutRef = useTemplateRef("layoutRef");
|
|
186
|
+
const { showError } = useToast();
|
|
187
|
+
const permissions = computed(
|
|
188
|
+
() => getResourcePermissions(usersStore.currentUser?.globalScopes).variable
|
|
189
|
+
);
|
|
190
|
+
const { isLoading, execute } = useAsyncState(environmentsStore.fetchAllVariables, [], {
|
|
191
|
+
immediate: true
|
|
192
|
+
});
|
|
193
|
+
const isFeatureEnabled = computed(
|
|
194
|
+
() => settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.Variables]
|
|
195
|
+
);
|
|
196
|
+
const variableForms = ref(/* @__PURE__ */ new Map());
|
|
197
|
+
const editableVariables = ref([]);
|
|
198
|
+
const addToEditableVariables = (variableId) => editableVariables.value.push(variableId);
|
|
199
|
+
const removeEditableVariable = (variableId) => {
|
|
200
|
+
editableVariables.value = editableVariables.value.filter((id) => id !== variableId);
|
|
201
|
+
variableForms.value.delete(variableId);
|
|
202
|
+
};
|
|
203
|
+
const addEmptyVariableForm = () => {
|
|
204
|
+
const variable = { id: uid(TEMPORARY_VARIABLE_UID_BASE), key: "", value: "" };
|
|
205
|
+
variableForms.value.set(variable.id, variable);
|
|
206
|
+
if (layoutRef.value?.currentPage !== 1) {
|
|
207
|
+
layoutRef.value?.setCurrentPage(1);
|
|
208
|
+
}
|
|
209
|
+
addToEditableVariables(variable.id);
|
|
210
|
+
telemetry.track("User clicked add variable button");
|
|
211
|
+
};
|
|
212
|
+
const variables = computed(() => [...variableForms.value.values(), ...environmentsStore.variables]);
|
|
213
|
+
const canCreateVariables = computed(() => isFeatureEnabled.value && permissions.value.create);
|
|
214
|
+
const columns = computed(() => {
|
|
215
|
+
const cols = [
|
|
216
|
+
{
|
|
217
|
+
id: 0,
|
|
218
|
+
path: "name",
|
|
219
|
+
label: i18n.baseText("variables.table.key"),
|
|
220
|
+
classes: ["variables-key-column"]
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
id: 1,
|
|
224
|
+
path: "value",
|
|
225
|
+
label: i18n.baseText("variables.table.value"),
|
|
226
|
+
classes: ["variables-value-column"]
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
id: 2,
|
|
230
|
+
path: "usage",
|
|
231
|
+
label: i18n.baseText("variables.table.usage"),
|
|
232
|
+
classes: ["variables-usage-column"]
|
|
233
|
+
}
|
|
234
|
+
];
|
|
235
|
+
if (!isFeatureEnabled.value) return cols;
|
|
236
|
+
return cols.concat({ id: 3, path: "actions", label: "", classes: ["variables-actions-column"] });
|
|
237
|
+
});
|
|
238
|
+
const handleSubmit = async (variable) => {
|
|
239
|
+
try {
|
|
240
|
+
const { id, ...rest } = variable;
|
|
241
|
+
if (id.startsWith(TEMPORARY_VARIABLE_UID_BASE)) {
|
|
242
|
+
await environmentsStore.createVariable(rest);
|
|
243
|
+
} else {
|
|
244
|
+
await environmentsStore.updateVariable(variable);
|
|
245
|
+
}
|
|
246
|
+
removeEditableVariable(id);
|
|
247
|
+
} catch (error) {
|
|
248
|
+
showError(error, i18n.baseText("variables.errors.save"));
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
const handleDeleteVariable = async (variable) => {
|
|
252
|
+
try {
|
|
253
|
+
const confirmed = await message.confirm(
|
|
254
|
+
i18n.baseText("variables.modals.deleteConfirm.message", {
|
|
255
|
+
interpolate: { name: variable.key }
|
|
256
|
+
}),
|
|
257
|
+
i18n.baseText("variables.modals.deleteConfirm.title"),
|
|
258
|
+
{
|
|
259
|
+
confirmButtonText: i18n.baseText("variables.modals.deleteConfirm.confirmButton"),
|
|
260
|
+
cancelButtonText: i18n.baseText("variables.modals.deleteConfirm.cancelButton")
|
|
261
|
+
}
|
|
262
|
+
);
|
|
263
|
+
if (confirmed !== MODAL_CONFIRM) {
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
await environmentsStore.deleteVariable(variable);
|
|
267
|
+
removeEditableVariable(variable.id);
|
|
268
|
+
} catch (error) {
|
|
269
|
+
showError(error, i18n.baseText("variables.errors.delete"));
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
const updateFilter = (state) => {
|
|
273
|
+
void router.replace({ query: pickBy(state) });
|
|
274
|
+
};
|
|
275
|
+
const filters = computed(
|
|
276
|
+
() => ({ ...route.query, incomplete: route.query.incomplete?.toString() === "true" })
|
|
277
|
+
);
|
|
278
|
+
const handleFilter = (resource, newFilters, matches) => {
|
|
279
|
+
const iResource = resource;
|
|
280
|
+
const filtersToApply = newFilters;
|
|
281
|
+
if (filtersToApply.incomplete) {
|
|
282
|
+
matches = matches && !iResource.value;
|
|
283
|
+
}
|
|
284
|
+
return matches;
|
|
285
|
+
};
|
|
286
|
+
const nameSortFn = (a, b, direction) => {
|
|
287
|
+
if (`${a.id}`.startsWith(TEMPORARY_VARIABLE_UID_BASE)) {
|
|
288
|
+
return -1;
|
|
289
|
+
} else if (`${b.id}`.startsWith(TEMPORARY_VARIABLE_UID_BASE)) {
|
|
290
|
+
return 1;
|
|
291
|
+
}
|
|
292
|
+
return direction === "asc" ? displayName(a).trim().localeCompare(displayName(b).trim()) : displayName(b).trim().localeCompare(displayName(a).trim());
|
|
293
|
+
};
|
|
294
|
+
const sortFns = {
|
|
295
|
+
nameAsc: (a, b) => nameSortFn(a, b, "asc"),
|
|
296
|
+
nameDesc: (a, b) => nameSortFn(a, b, "desc")
|
|
297
|
+
};
|
|
298
|
+
const unavailableNoticeProps = computed(() => ({
|
|
299
|
+
emoji: "👋",
|
|
300
|
+
heading: i18n.baseText(uiStore.contextBasedTranslationKeys.variables.unavailable.title),
|
|
301
|
+
description: i18n.baseText(uiStore.contextBasedTranslationKeys.variables.unavailable.description),
|
|
302
|
+
buttonText: i18n.baseText(uiStore.contextBasedTranslationKeys.variables.unavailable.button),
|
|
303
|
+
buttonType: "secondary",
|
|
304
|
+
"onClick:button": goToUpgrade,
|
|
305
|
+
"data-test-id": "unavailable-resources-list"
|
|
306
|
+
}));
|
|
307
|
+
function goToUpgrade() {
|
|
308
|
+
void usePageRedirectionHelper().goToUpgrade("variables", "upgrade-variables");
|
|
309
|
+
}
|
|
310
|
+
function displayName(resource) {
|
|
311
|
+
return resource.key;
|
|
312
|
+
}
|
|
313
|
+
sourceControlStore.$onAction(({ name, after }) => {
|
|
314
|
+
if (name === "pullWorkfolder" && after) {
|
|
315
|
+
after(() => {
|
|
316
|
+
void execute();
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
onMounted(() => {
|
|
321
|
+
useDocumentTitle().set(i18n.baseText("variables.heading"));
|
|
322
|
+
});
|
|
323
|
+
return (_ctx, _cache) => {
|
|
324
|
+
const _component_n8n_heading = resolveComponent("n8n-heading");
|
|
325
|
+
return openBlock(), createBlock(ResourcesListLayout, {
|
|
326
|
+
ref_key: "layoutRef",
|
|
327
|
+
ref: layoutRef,
|
|
328
|
+
"resource-key": "variables",
|
|
329
|
+
disabled: !isFeatureEnabled.value,
|
|
330
|
+
resources: variables.value,
|
|
331
|
+
filters: filters.value,
|
|
332
|
+
"additional-filters-handler": handleFilter,
|
|
333
|
+
shareable: false,
|
|
334
|
+
"display-name": displayName,
|
|
335
|
+
"sort-fns": sortFns,
|
|
336
|
+
"sort-options": ["nameAsc", "nameDesc"],
|
|
337
|
+
type: "datatable",
|
|
338
|
+
"type-props": { columns: columns.value },
|
|
339
|
+
loading: unref(isLoading),
|
|
340
|
+
"onUpdate:filters": updateFilter,
|
|
341
|
+
"onClick:add": addEmptyVariableForm
|
|
342
|
+
}, createSlots({
|
|
343
|
+
header: withCtx(() => [
|
|
344
|
+
createVNode(_component_n8n_heading, {
|
|
345
|
+
size: "2xlarge",
|
|
346
|
+
class: "mb-m"
|
|
347
|
+
}, {
|
|
348
|
+
default: withCtx(() => [
|
|
349
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("variables.heading")), 1)
|
|
350
|
+
]),
|
|
351
|
+
_: 1
|
|
352
|
+
})
|
|
353
|
+
]),
|
|
354
|
+
"add-button": withCtx(() => [
|
|
355
|
+
createVNode(unref(N8nTooltip), {
|
|
356
|
+
placement: "top",
|
|
357
|
+
disabled: canCreateVariables.value
|
|
358
|
+
}, {
|
|
359
|
+
content: withCtx(() => [
|
|
360
|
+
!isFeatureEnabled.value ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(unref(i18n).baseText(`variables.add.unavailable${variables.value.length === 0 ? ".empty" : ""}`)), 1)) : (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(unref(i18n).baseText("variables.add.onlyOwnerCanCreate")), 1))
|
|
361
|
+
]),
|
|
362
|
+
default: withCtx(() => [
|
|
363
|
+
createBaseVNode("div", null, [
|
|
364
|
+
createVNode(unref(N8nButton), {
|
|
365
|
+
size: "large",
|
|
366
|
+
block: "",
|
|
367
|
+
disabled: !canCreateVariables.value,
|
|
368
|
+
"data-test-id": "resources-list-add",
|
|
369
|
+
onClick: addEmptyVariableForm
|
|
370
|
+
}, {
|
|
371
|
+
default: withCtx(() => [
|
|
372
|
+
createTextVNode(toDisplayString(unref(i18n).baseText(`variables.add`)), 1)
|
|
373
|
+
]),
|
|
374
|
+
_: 1
|
|
375
|
+
}, 8, ["disabled"])
|
|
376
|
+
])
|
|
377
|
+
]),
|
|
378
|
+
_: 1
|
|
379
|
+
}, 8, ["disabled"])
|
|
380
|
+
]),
|
|
381
|
+
filters: withCtx(({ setKeyValue }) => [
|
|
382
|
+
createBaseVNode("div", _hoisted_3, [
|
|
383
|
+
createVNode(unref(N8nInputLabel), {
|
|
384
|
+
label: unref(i18n).baseText("credentials.filters.status"),
|
|
385
|
+
bold: false,
|
|
386
|
+
size: "small",
|
|
387
|
+
color: "text-base",
|
|
388
|
+
class: "mb-3xs"
|
|
389
|
+
}, null, 8, ["label"]),
|
|
390
|
+
createVNode(unref(N8nCheckbox), {
|
|
391
|
+
label: "Value missing",
|
|
392
|
+
"data-test-id": "variable-filter-incomplete",
|
|
393
|
+
"model-value": filters.value.incomplete,
|
|
394
|
+
"onUpdate:modelValue": ($event) => setKeyValue("incomplete", $event)
|
|
395
|
+
}, null, 8, ["model-value", "onUpdate:modelValue"])
|
|
396
|
+
])
|
|
397
|
+
]),
|
|
398
|
+
default: withCtx(({ data }) => [
|
|
399
|
+
editableVariables.value.includes(data.id) ? (openBlock(), createBlock(VariablesForm, {
|
|
400
|
+
key: data.id,
|
|
401
|
+
"data-test-id": "variables-row",
|
|
402
|
+
variable: data,
|
|
403
|
+
onSubmit: handleSubmit,
|
|
404
|
+
onCancel: ($event) => removeEditableVariable(data.id)
|
|
405
|
+
}, null, 8, ["variable", "onCancel"])) : (openBlock(), createElementBlock("tr", _hoisted_4, [
|
|
406
|
+
createBaseVNode("td", null, toDisplayString(data.key), 1),
|
|
407
|
+
createBaseVNode("td", null, [
|
|
408
|
+
data.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
|
409
|
+
createTextVNode(toDisplayString(data.value), 1)
|
|
410
|
+
], 64)) : (openBlock(), createBlock(unref(N8nBadge), {
|
|
411
|
+
key: 1,
|
|
412
|
+
theme: "warning"
|
|
413
|
+
}, {
|
|
414
|
+
default: withCtx(() => _cache[0] || (_cache[0] = [
|
|
415
|
+
createTextVNode(" Value missing ")
|
|
416
|
+
])),
|
|
417
|
+
_: 1
|
|
418
|
+
}))
|
|
419
|
+
]),
|
|
420
|
+
createBaseVNode("td", null, [
|
|
421
|
+
data.key ? (openBlock(), createBlock(VariablesUsageBadge, {
|
|
422
|
+
key: 0,
|
|
423
|
+
name: data.key
|
|
424
|
+
}, null, 8, ["name"])) : createCommentVNode("", true)
|
|
425
|
+
]),
|
|
426
|
+
isFeatureEnabled.value ? (openBlock(), createElementBlock("td", _hoisted_5, [
|
|
427
|
+
createBaseVNode("div", _hoisted_6, [
|
|
428
|
+
createVNode(unref(N8nTooltip), {
|
|
429
|
+
disabled: permissions.value.update,
|
|
430
|
+
placement: "top"
|
|
431
|
+
}, {
|
|
432
|
+
content: withCtx(() => [
|
|
433
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("variables.row.button.edit.onlyRoleCanEdit")), 1)
|
|
434
|
+
]),
|
|
435
|
+
default: withCtx(() => [
|
|
436
|
+
createVNode(unref(N8nButton), {
|
|
437
|
+
"data-test-id": "variable-row-edit-button",
|
|
438
|
+
type: "tertiary",
|
|
439
|
+
class: "mr-xs",
|
|
440
|
+
disabled: !permissions.value.update,
|
|
441
|
+
onClick: ($event) => addToEditableVariables(data.id)
|
|
442
|
+
}, {
|
|
443
|
+
default: withCtx(() => [
|
|
444
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("variables.row.button.edit")), 1)
|
|
445
|
+
]),
|
|
446
|
+
_: 2
|
|
447
|
+
}, 1032, ["disabled", "onClick"])
|
|
448
|
+
]),
|
|
449
|
+
_: 2
|
|
450
|
+
}, 1032, ["disabled"]),
|
|
451
|
+
createVNode(unref(N8nTooltip), {
|
|
452
|
+
disabled: permissions.value.delete,
|
|
453
|
+
placement: "top"
|
|
454
|
+
}, {
|
|
455
|
+
content: withCtx(() => [
|
|
456
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("variables.row.button.delete.onlyRoleCanDelete")), 1)
|
|
457
|
+
]),
|
|
458
|
+
default: withCtx(() => [
|
|
459
|
+
createVNode(unref(N8nButton), {
|
|
460
|
+
"data-test-id": "variable-row-delete-button",
|
|
461
|
+
type: "tertiary",
|
|
462
|
+
disabled: !permissions.value.delete,
|
|
463
|
+
onClick: ($event) => handleDeleteVariable(data)
|
|
464
|
+
}, {
|
|
465
|
+
default: withCtx(() => [
|
|
466
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("variables.row.button.delete")), 1)
|
|
467
|
+
]),
|
|
468
|
+
_: 2
|
|
469
|
+
}, 1032, ["disabled", "onClick"])
|
|
470
|
+
]),
|
|
471
|
+
_: 2
|
|
472
|
+
}, 1032, ["disabled"])
|
|
473
|
+
])
|
|
474
|
+
])) : createCommentVNode("", true)
|
|
475
|
+
]))
|
|
476
|
+
]),
|
|
477
|
+
_: 2
|
|
478
|
+
}, [
|
|
479
|
+
!isFeatureEnabled.value ? {
|
|
480
|
+
name: "preamble",
|
|
481
|
+
fn: withCtx(() => [
|
|
482
|
+
createVNode(unref(N8nActionBox), mergeProps({ class: "mb-m" }, unavailableNoticeProps.value), null, 16)
|
|
483
|
+
]),
|
|
484
|
+
key: "0"
|
|
485
|
+
} : void 0,
|
|
486
|
+
!isFeatureEnabled.value || isFeatureEnabled.value && !canCreateVariables.value ? {
|
|
487
|
+
name: "empty",
|
|
488
|
+
fn: withCtx(() => [
|
|
489
|
+
!isFeatureEnabled.value ? (openBlock(), createBlock(unref(N8nActionBox), normalizeProps(mergeProps({ key: 0 }, unavailableNoticeProps.value)), null, 16)) : !canCreateVariables.value ? (openBlock(), createBlock(unref(N8nActionBox), {
|
|
490
|
+
key: 1,
|
|
491
|
+
"data-test-id": "cannot-create-variables",
|
|
492
|
+
emoji: "👋",
|
|
493
|
+
heading: unref(i18n).baseText("variables.empty.notAllowedToCreate.heading", {
|
|
494
|
+
interpolate: { name: unref(usersStore).currentUser?.firstName ?? "" }
|
|
495
|
+
}),
|
|
496
|
+
description: unref(i18n).baseText("variables.empty.notAllowedToCreate.description"),
|
|
497
|
+
onClick: goToUpgrade
|
|
498
|
+
}, null, 8, ["heading", "description"])) : createCommentVNode("", true)
|
|
499
|
+
]),
|
|
500
|
+
key: "1"
|
|
501
|
+
} : void 0
|
|
502
|
+
]), 1032, ["disabled", "resources", "filters", "type-props", "loading"]);
|
|
503
|
+
};
|
|
504
|
+
}
|
|
505
|
+
});
|
|
506
|
+
const VariablesView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b8af30c2"]]);
|
|
507
|
+
export {
|
|
508
|
+
VariablesView as default
|
|
509
|
+
};
|
|
@@ -120,24 +120,7 @@
|
|
|
120
120
|
-------------------------- */
|
|
121
121
|
/* BEM
|
|
122
122
|
-------------------------- */
|
|
123
|
-
.
|
|
124
|
-
opacity: 1;
|
|
125
|
-
}
|
|
126
|
-
._variablesRow_1wkcr_123 td > div {
|
|
127
|
-
display: flex;
|
|
128
|
-
align-items: center;
|
|
129
|
-
min-height: 40px;
|
|
130
|
-
}
|
|
131
|
-
._buttons_1wkcr_132 {
|
|
132
|
-
display: flex;
|
|
133
|
-
flex-wrap: nowrap;
|
|
134
|
-
justify-content: flex-end;
|
|
135
|
-
}
|
|
136
|
-
._hoverButtons_1wkcr_123 {
|
|
137
|
-
opacity: 0;
|
|
138
|
-
transition: opacity 0.2s ease;
|
|
139
|
-
}
|
|
140
|
-
._usageSyntax_1wkcr_143 {
|
|
123
|
+
.usageSyntax[data-v-513b2829] {
|
|
141
124
|
cursor: pointer;
|
|
142
125
|
background: var(--color-variables-usage-syntax-bg);
|
|
143
126
|
color: var(--color-variables-usage-font);
|
|
@@ -265,11 +248,17 @@
|
|
|
265
248
|
-------------------------- */
|
|
266
249
|
/* BEM
|
|
267
250
|
-------------------------- */
|
|
268
|
-
.
|
|
269
|
-
|
|
251
|
+
.key-cell[data-v-5059e945],
|
|
252
|
+
.value-cell[data-v-5059e945] {
|
|
253
|
+
vertical-align: top;
|
|
270
254
|
}
|
|
271
|
-
.
|
|
272
|
-
|
|
255
|
+
.value-cell[data-v-5059e945] {
|
|
256
|
+
width: 100%;
|
|
257
|
+
max-width: 50%;
|
|
258
|
+
}
|
|
259
|
+
.key-input[data-v-5059e945] textarea {
|
|
260
|
+
min-height: 40px !important;
|
|
261
|
+
resize: none;
|
|
273
262
|
}/* BEM support Func
|
|
274
263
|
-------------------------- */
|
|
275
264
|
/* Transition
|
|
@@ -392,43 +381,21 @@
|
|
|
392
381
|
-------------------------- */
|
|
393
382
|
/* BEM
|
|
394
383
|
-------------------------- */
|
|
395
|
-
.
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
.variables-view[data-v-626399fb] .datatable th,
|
|
399
|
-
.variables-view[data-v-626399fb] .datatable td {
|
|
400
|
-
width: 25%;
|
|
401
|
-
}
|
|
402
|
-
@media screen and (max-width: 992px) {
|
|
403
|
-
.variables-view[data-v-626399fb] .datatable th,
|
|
404
|
-
.variables-view[data-v-626399fb] .datatable td {
|
|
405
|
-
width: 33.33%;
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
.variables-view[data-v-626399fb] .datatable th.variables-value-column > div, .variables-view[data-v-626399fb] .datatable th.variables-key-column > div, .variables-view[data-v-626399fb] .datatable th.variables-usage-column > div,
|
|
409
|
-
.variables-view[data-v-626399fb] .datatable td.variables-value-column > div,
|
|
410
|
-
.variables-view[data-v-626399fb] .datatable td.variables-key-column > div,
|
|
411
|
-
.variables-view[data-v-626399fb] .datatable td.variables-usage-column > div {
|
|
412
|
-
width: 100%;
|
|
384
|
+
.action-buttons[data-v-b8af30c2] {
|
|
385
|
+
opacity: 0;
|
|
386
|
+
transition: opacity 0.2s ease;
|
|
413
387
|
}
|
|
414
|
-
|
|
415
|
-
.variables-view[data-v-626399fb] .datatable td.variables-value-column > div > span,
|
|
416
|
-
.variables-view[data-v-626399fb] .datatable td.variables-key-column > div > span,
|
|
417
|
-
.variables-view[data-v-626399fb] .datatable td.variables-usage-column > div > span {
|
|
418
|
-
max-width: 100%;
|
|
419
|
-
overflow: hidden;
|
|
420
|
-
text-overflow: ellipsis;
|
|
388
|
+
[data-v-b8af30c2] .datatable {
|
|
421
389
|
white-space: nowrap;
|
|
422
|
-
height: 18px;
|
|
423
390
|
}
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
.variables-view[data-v-626399fb] .datatable td.variables-key-column > div > div,
|
|
427
|
-
.variables-view[data-v-626399fb] .datatable td.variables-usage-column > div > div {
|
|
428
|
-
width: 100%;
|
|
391
|
+
[data-v-b8af30c2] .datatable table tr:hover .action-buttons {
|
|
392
|
+
opacity: 1;
|
|
429
393
|
}
|
|
430
394
|
@media screen and (max-width: 992px) {
|
|
431
|
-
.
|
|
395
|
+
[data-v-b8af30c2] .datatable table tr th:nth-child(3),[data-v-b8af30c2] .datatable table tr td:nth-child(3) {
|
|
432
396
|
display: none;
|
|
433
397
|
}
|
|
398
|
+
}
|
|
399
|
+
[data-v-b8af30c2] .datatable .variables-actions-column {
|
|
400
|
+
width: 170px;
|
|
434
401
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { _ as _sfc_main$7 } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-
|
|
2
|
-
import { d as defineComponent, r as ref, m as resolveComponent, c as openBlock, h as createElementBlock, j as createBaseVNode, i as createVNode, w as withCtx, s as renderSlot, n as normalizeClass, f as createCommentVNode, _ as _export_sfc, e as createBlock, k as createTextVNode, t as toDisplayString, l as unref, F as Fragment, A as renderList, g as useI18n,
|
|
3
|
-
import { a as useOrchestrationStore, W as WORKER_HISTORY_LENGTH, u as usePushConnection } from "./usePushConnection-
|
|
4
|
-
import { u as usePushConnectionStore } from "./pushConnection.store-
|
|
5
|
-
import "./easyAiWorkflowUtils-
|
|
1
|
+
import { _ as _sfc_main$7 } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-vHkaCcgH.js";
|
|
2
|
+
import { d as defineComponent, r as ref, m as resolveComponent, c as openBlock, h as createElementBlock, j as createBaseVNode, i as createVNode, w as withCtx, s as renderSlot, n as normalizeClass, f as createCommentVNode, _ as _export_sfc, e as createBlock, k as createTextVNode, t as toDisplayString, l as unref, F as Fragment, A as renderList, g as useI18n, b6 as useClipboard, a as useToast, hQ as Chart, q as computed, aK as sortByProperty, o as onMounted, x as onBeforeUnmount, b as useRouter, a3 as useDocumentTitle, Z as useRootStore, aw as onBeforeMount, aj as useTelemetry, p as useSettingsStore, a5 as usePageRedirectionHelper } from "./index-BW7gX0J2.js";
|
|
3
|
+
import { a as useOrchestrationStore, W as WORKER_HISTORY_LENGTH, u as usePushConnection } from "./usePushConnection-3HzYJp1-.js";
|
|
4
|
+
import { u as usePushConnectionStore } from "./pushConnection.store-C6PSl50Z.js";
|
|
5
|
+
import "./easyAiWorkflowUtils-B7xBZAZO.js";
|
|
6
6
|
function averageWorkerLoadFromLoads(loads) {
|
|
7
7
|
return loads.reduce((prev, curr) => prev + curr, 0) / loads.length;
|
|
8
8
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as defineComponent, c as openBlock, h as createElementBlock, k as createTextVNode, t as toDisplayString, l as unref, j as createBaseVNode, g as useI18n, a as useToast, T as useWorkflowsStore,
|
|
2
|
-
import { u as useWorkflowActivate } from "./useWorkflowActivate-
|
|
1
|
+
import { d as defineComponent, c as openBlock, h as createElementBlock, k as createTextVNode, t as toDisplayString, l as unref, j as createBaseVNode, g as useI18n, a as useToast, T as useWorkflowsStore, bR as useCredentialsStore, q as computed, H as watch, e as createBlock, w as withCtx, n as normalizeClass, i as createVNode, ax as withDirectives, f as createCommentVNode, ap as h, m as resolveComponent, cO as resolveDirective, g8 as getActivatableTriggerNodes, g9 as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, X as PLACEHOLDER_EMPTY_WORKFLOW_ID, bS as OPEN_AI_API_CREDENTIAL_TYPE, _ as _export_sfc } from "./index-BW7gX0J2.js";
|
|
2
|
+
import { u as useWorkflowActivate } from "./useWorkflowActivate-BjJ3P-qa.js";
|
|
3
3
|
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
4
4
|
__name: "WorkflowActivationErrorMessage",
|
|
5
5
|
props: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as defineComponent, b as useRouter, a4 as useWorkflowHelpers, p as useSettingsStore, K as useUIStore, T as useWorkflowsStore, a2 as useNpsSurveyStore, r as ref, q as computed, H as watch, o as onMounted, c as openBlock, e as createBlock, w as withCtx, j as createBaseVNode, k as createTextVNode, t as toDisplayString, l as unref, i as createVNode, I as withModifiers, n as normalizeClass, g as useI18n,
|
|
1
|
+
import { d as defineComponent, b as useRouter, a4 as useWorkflowHelpers, p as useSettingsStore, K as useUIStore, T as useWorkflowsStore, a2 as useNpsSurveyStore, r as ref, q as computed, H as watch, o as onMounted, c as openBlock, e as createBlock, w as withCtx, j as createBaseVNode, k as createTextVNode, t as toDisplayString, l as unref, i as createVNode, I as withModifiers, n as normalizeClass, g as useI18n, af as WORKFLOW_SETTINGS_MODAL_KEY, m as resolveComponent, c0 as deepCopy, X as PLACEHOLDER_EMPTY_WORKFLOW_ID, _ as _export_sfc } from "./index-BW7gX0J2.js";
|
|
2
2
|
const _hoisted_1 = { class: "mt-2xs" };
|
|
3
3
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
4
4
|
__name: "WorkflowExecutionsInfoAccordion",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { d as defineComponent, b as useRouter, U as useRoute, K as useUIStore, T as useWorkflowsStore, q as computed, c as openBlock, h as createElementBlock, n as normalizeClass, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, f as createCommentVNode, g as useI18n, X as PLACEHOLDER_EMPTY_WORKFLOW_ID, V as VIEWS, m as resolveComponent, _ as _export_sfc } from "./index-
|
|
2
|
-
import { W as WorkflowExecutionsInfoAccordion } from "./WorkflowExecutionsInfoAccordion-
|
|
1
|
+
import { d as defineComponent, b as useRouter, U as useRoute, K as useUIStore, T as useWorkflowsStore, q as computed, c as openBlock, h as createElementBlock, n as normalizeClass, i as createVNode, w as withCtx, k as createTextVNode, t as toDisplayString, l as unref, f as createCommentVNode, g as useI18n, X as PLACEHOLDER_EMPTY_WORKFLOW_ID, V as VIEWS, m as resolveComponent, _ as _export_sfc } from "./index-BW7gX0J2.js";
|
|
2
|
+
import { W as WorkflowExecutionsInfoAccordion } from "./WorkflowExecutionsInfoAccordion-BWYv1FIv.js";
|
|
3
3
|
const _hoisted_1 = {
|
|
4
4
|
key: 0,
|
|
5
5
|
"data-test-id": "workflow-execution-no-trigger-content"
|