n8n-editor-ui 1.62.2 → 1.63.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/dist/assets/@jsplumb/{browser-ui-BphmFVJY.js → browser-ui-D3WTv2iL.js} +41 -76
  2. package/dist/assets/@jsplumb/{common-s1StEx7B.js → common-Cn2WooAp.js} +3 -6
  3. package/dist/assets/@jsplumb/{connector-bezier-D659hq4c.js → connector-bezier-BsoOTqok.js} +16 -29
  4. package/dist/assets/@jsplumb/{core-B__RSZHf.js → core-DLCSr9D4.js} +33 -57
  5. package/dist/assets/@jsplumb/{util-BwtpiQ4c.js → util-DggqnqQo.js} +12 -24
  6. package/dist/assets/@lezer/{common-CnY9etib.js → common-Bs5t-XhT.js} +93 -97
  7. package/dist/assets/@n8n/api-types-Clq_Leox.js +1 -0
  8. package/dist/assets/@n8n/{codemirror-lang-CIGGB1t0.js → codemirror-lang-Bizw8G99.js} +168 -196
  9. package/dist/assets/@n8n/{codemirror-lang-sql-Bygy_eOg.js → codemirror-lang-sql-C9sfSTUi.js} +61 -65
  10. package/dist/assets/@sentry/{vue-UFuYeDxK.js → vue-By9cUXYj.js} +217 -261
  11. package/dist/assets/@vue-flow/{background-VFdKMN89.js → background-B1J8rodd.js} +2 -2
  12. package/dist/assets/@vue-flow/{controls-ByUYVWad.js → controls-B4bXJQnK.js} +2 -2
  13. package/dist/assets/@vue-flow/{core-DgOSPOHv.js → core-tETEFGtP.js} +3116 -3001
  14. package/dist/assets/@vue-flow/{minimap-CXuyA5pl.js → minimap-CGW7BbeH.js} +13 -7
  15. package/dist/assets/@vue-flow/{node-resizer-BiyXe9J3.js → node-resizer-C7hxX6Ea.js} +2 -2
  16. package/dist/assets/@vueuse/{core-DVjv2hwE.js → core-BTO0AmLR.js} +5 -8
  17. package/dist/assets/{AnnotationTagsDropdown.ee-DCIPUepk.js → AnnotationTagsDropdown.ee-CEthDL8s.js} +4 -5
  18. package/dist/assets/{AuthView-DUPyWTzP.js → AuthView-Dtllm2Hm.js} +4 -4
  19. package/dist/assets/{CanvasControls-Bp-Hti67.js → CanvasControls-3e7GyyWC.js} +27 -27
  20. package/dist/assets/{ChangePasswordView-D-ZXDCSs.js → ChangePasswordView-RbBzZKmy.js} +30 -32
  21. package/dist/assets/{CredentialsView-CfTFJvIh.js → CredentialsView-BEobbBhB.js} +217 -212
  22. package/dist/assets/{ErrorView-QGaMA0LX.js → ErrorView-Dig_858_.js} +27 -27
  23. package/dist/assets/{ExecutionsFilter-Bck1b8Ij.js → ExecutionsFilter-D4gTpteQ.js} +4 -4
  24. package/dist/assets/{ExecutionsView-CzoIB_Xb.js → ExecutionsView-BzDdfbTp.js} +30 -30
  25. package/dist/assets/{FixedCollectionParameter-lpg6xB-C.js → FixedCollectionParameter-B1iBnOzV.js} +27 -27
  26. package/dist/assets/{ForgotMyPasswordView-CuYZWaqe.js → ForgotMyPasswordView-DrecvRAt.js} +28 -28
  27. package/dist/assets/{MainHeader-CyQZuyFo.js → MainHeader-BGBc_yGt.js} +45 -52
  28. package/dist/assets/{MainHeader-PNFUlNPa.css → MainHeader-m131IPYi.css} +9 -9
  29. package/dist/assets/{MainSidebar-K1l1zimY.js → MainSidebar-CGoARd9G.js} +28 -28
  30. package/dist/assets/{NodeCreation-BwNEef4i.js → NodeCreation-CJ4p9t6U.js} +14 -21
  31. package/dist/assets/{NodeCreator-B8E-cqcN.js → NodeCreator-MlJNsM5w.js} +68 -94
  32. package/dist/assets/{NodeViewSwitcher-DZNvWE_C.css → NodeViewSwitcher-BMWd0Gm9.css} +166 -128
  33. package/dist/assets/{NodeViewSwitcher-BiAFccgP.js → NodeViewSwitcher-CPwqYIKa.js} +647 -632
  34. package/dist/assets/{ProjectCardBadge-Bm4smn6X.js → ProjectCardBadge-Dsi1FktR.js} +2 -2
  35. package/dist/assets/{ProjectSettings-C0vFQjA7.js → ProjectSettings-NxkU_5Cm.js} +29 -30
  36. package/dist/assets/{ProjectTabs-BaktqVTx.js → ProjectTabs-BNt9vnB4.js} +3 -3
  37. package/dist/assets/{PushConnectionTracker-CgYWwLIC.js → PushConnectionTracker-BfyBSTsq.js} +4 -4
  38. package/dist/assets/{ResourcesListLayout-BWVlXJTF.js → ResourcesListLayout-wxQPFPh8.js} +4 -4
  39. package/dist/assets/{RunDataAi-BGOKfyvO.js → RunDataAi-BPXMLfKc.js} +11 -18
  40. package/dist/assets/{RunDataJson-Dpt6MF9e.js → RunDataJson-nHxoBXwc.js} +30 -30
  41. package/dist/assets/{RunDataJsonActions-8St1Hrls.js → RunDataJsonActions-CXjxyS8I.js} +28 -28
  42. package/dist/assets/{RunDataSearch-DSiRjRgH.js → RunDataSearch-_dTfLnCz.js} +27 -27
  43. package/dist/assets/{RunDataTable-C_7N0jmc.js → RunDataTable-Cle-Xlc9.js} +27 -27
  44. package/dist/assets/{SamlOnboarding-DZSla_S4.js → SamlOnboarding-DJd6oxdL.js} +29 -30
  45. package/dist/assets/{SettingsApiView-DT8DOVp4.js → SettingsApiView-B6K4GJFb.js} +29 -31
  46. package/dist/assets/{SettingsCommunityNodesView-CLIsL549.js → SettingsCommunityNodesView-BqLPWoe4.js} +31 -33
  47. package/dist/assets/{SettingsExternalSecrets-tTHThU03.js → SettingsExternalSecrets-hxNeJoPh.js} +28 -29
  48. package/dist/assets/{SettingsFakeDoorView-B1w2z2tW.js → SettingsFakeDoorView-B-CvApAQ.js} +27 -27
  49. package/dist/assets/{SettingsLdapView-CXjatsy2.js → SettingsLdapView-Cx9juILz.js} +31 -33
  50. package/dist/assets/{SettingsLogStreamingView-hVeF8Js7.js → SettingsLogStreamingView-DHdBwQLl.js} +31 -35
  51. package/dist/assets/{SettingsPersonalView-dPFbOBaU.js → SettingsPersonalView-BB52C_8a.js} +27 -27
  52. package/dist/assets/{SettingsSourceControl-iPHLpUWW.js → SettingsSourceControl-jvUljmfM.js} +28 -29
  53. package/dist/assets/{SettingsSso-D4kKt04i.js → SettingsSso-CtDqCHek.js} +27 -27
  54. package/dist/assets/{SettingsUsageAndPlan-DDB0UVxU.css → SettingsUsageAndPlan-B72odhIc.css} +30 -16
  55. package/dist/assets/{SettingsUsageAndPlan-DL4cSlMX.js → SettingsUsageAndPlan-DtE-8JQB.js} +110 -152
  56. package/dist/assets/{SettingsUsersView-DSKPJqAb.js → SettingsUsersView-D0fkCNqq.js} +27 -27
  57. package/dist/assets/{SettingsView-BDu7L_0_.js → SettingsView-Bdy1VVV5.js} +28 -28
  58. package/dist/assets/{SetupView-EXoXB-ik.js → SetupView-DZD5V-sp.js} +28 -28
  59. package/dist/assets/{SetupWorkflowCredentialsButton-BQelHZob.js → SetupWorkflowCredentialsButton-BniWA70J.js} +27 -27
  60. package/dist/assets/{SetupWorkflowFromTemplateView-0BtcqGD7.js → SetupWorkflowFromTemplateView-zPdNiNwz.js} +29 -29
  61. package/dist/assets/{SigninView-BaOFfcdg.js → SigninView-vhBJQAUq.js} +29 -30
  62. package/dist/assets/SignoutView-BvsyOBJl.js +57 -0
  63. package/dist/assets/{SignupView-CDCHJ_UU.js → SignupView-BnaxyfVy.js} +28 -28
  64. package/dist/assets/{TemplateDetails-CmiQhqfe.js → TemplateDetails-CgWak1sI.js} +4 -4
  65. package/dist/assets/{TemplateList-Cjfx-kvz.js → TemplateList-Dk-hIcwM.js} +3 -3
  66. package/dist/assets/{TemplatesCollectionView-BJoAQahB.js → TemplatesCollectionView-BykSqyyh.js} +31 -31
  67. package/dist/assets/{TemplatesSearchView-CcDOMLoo.js → TemplatesSearchView-Db3YPUKN.js} +30 -30
  68. package/dist/assets/{TemplatesView-S843Sfeg.js → TemplatesView-DSqSs2Fe.js} +3 -3
  69. package/dist/assets/{TemplatesWorkflowView-CJODvWh-.js → TemplatesWorkflowView-AcNIRcdH.js} +31 -31
  70. package/dist/assets/{VariablesView-CvCl_CSB.js → VariablesView-BDucuF4S.js} +29 -30
  71. package/dist/assets/{WorkerView-2i9FVRFh.js → WorkerView-Bt7mkvne.js} +33 -35
  72. package/dist/assets/{WorkflowActivator-vZvN6hnQ.js → WorkflowActivator-BBCmkXVM.js} +4 -4
  73. package/dist/assets/{WorkflowExecutionsInfoAccordion-Dat-XhDW.js → WorkflowExecutionsInfoAccordion-C1u1QoTS.js} +3 -3
  74. package/dist/assets/{WorkflowExecutionsLandingPage-BwaqELU2.js → WorkflowExecutionsLandingPage-DO0GNREn.js} +28 -28
  75. package/dist/assets/{WorkflowExecutionsPreview-CZbsi063.js → WorkflowExecutionsPreview-DKazVAlp.js} +31 -31
  76. package/dist/assets/{WorkflowExecutionsView-Dy-qrHuK.js → WorkflowExecutionsView-xQs2Ihb3.js} +33 -35
  77. package/dist/assets/{WorkflowHistory-D03vy7TN.js → WorkflowHistory-CRZhK8Sh.js} +30 -31
  78. package/dist/assets/{WorkflowOnboardingView-CnXznpEj.js → WorkflowOnboardingView-BLRc_Z_9.js} +27 -27
  79. package/dist/assets/{WorkflowPreview-Ch0qYfjN.js → WorkflowPreview-CpeWIc9m.js} +3 -3
  80. package/dist/assets/WorkflowsView-CADkCbWU.js +791 -0
  81. package/dist/assets/{axios-B4zXCSve.js → axios-BW6T4tHC.js} +12 -24
  82. package/dist/assets/{bowser-C3wWO1p5.js → bowser-CDCHPFWD.js} +16 -32
  83. package/dist/assets/{chart.js-DiBOFLDH.js → chart.js-BYpPl_l4.js} +1 -4
  84. package/dist/assets/{cloud-CxxrWb7j.js → cloud-CyEezfUz.js} +27 -27
  85. package/dist/assets/{codemirror-lang-html-n8n-COz1fWJn.js → codemirror-lang-html-n8n-BElKE4vf.js} +50 -92
  86. package/dist/assets/{dateFormatter-D2RNj1zt.js → dateFormatter-B-oph3V5.js} +1 -1
  87. package/dist/assets/{dateformat-DjCPSdAV.js → dateformat-BevCJF2z.js} +1 -1
  88. package/dist/assets/email-providers-Brdpqw-Z.js +1 -0
  89. package/dist/assets/{fast-json-stable-stringify-DSBIc8sQ.js → fast-json-stable-stringify-D9R5x91P.js} +11 -21
  90. package/dist/assets/{file-saver-Do8bJuLv.js → file-saver-Dbfm4l4I.js} +6 -11
  91. package/dist/assets/{flatted-D70IerrI.js → flatted-BLlNkUR-.js} +1 -2
  92. package/dist/assets/highlight.js-Brdpqw-Z.js +1 -0
  93. package/dist/assets/{humanize-duration-BPzNjE6S.js → humanize-duration-DdvB4QXM.js} +1 -1
  94. package/dist/assets/{index-CSBhQMYI.css → index-B5Pl_Rdy.css} +96 -21
  95. package/dist/assets/{index-B4ZmQmcP.js → index-DTqspxIG.js} +4487 -5975
  96. package/dist/assets/{jsonpath-C_2TkXL_.js → jsonpath--XXuA3UN.js} +92 -183
  97. package/dist/assets/{lodash-es-kRWQHL5K.js → lodash-es-DCRmYdQ5.js} +2 -1
  98. package/dist/assets/{luxon-Bt_g4NOb.js → luxon-N8mghSWH.js} +68 -136
  99. package/dist/assets/{n8n-2AIRllP4.css → n8n-C6KBCWah.css} +69 -27
  100. package/dist/assets/{n8n-B_ltL-ji.js → n8n-o-6nV4eX.js} +2297 -3491
  101. package/dist/assets/{pinia-CH9HlKCh.js → pinia-BWzoPyXU.js} +1 -1
  102. package/dist/assets/{prettier-DuWRKCwA.js → prettier-eWLVZldr.js} +332 -576
  103. package/dist/assets/{pushConnection.store-CUfZkZRc.js → pushConnection.store-BGMVJHP3.js} +4 -5
  104. package/dist/assets/{qrcode.vue-BxNS_c3b.js → qrcode.vue-BavVPFUM.js} +9 -18
  105. package/dist/assets/{templateActions-HBG0P7yi.js → templateActions-DOJZ_yY5.js} +1 -1
  106. package/dist/assets/{useBeforeUnload-DuM6ishT.js → useBeforeUnload-Tcm8t4ZF.js} +2 -2
  107. package/dist/assets/{useExecutionDebugging-BWhMgffE.js → useExecutionDebugging-CiwtVWXD.js} +2 -2
  108. package/dist/assets/{usePushConnection-37N3tZJ2.js → usePushConnection-CbB_XBsw.js} +7 -19
  109. package/dist/assets/{useUserHelpers-DqBuD9oN.js → useUserHelpers-CKYk9GNq.js} +1 -1
  110. package/dist/assets/{useWorkflowActivate-aYIkmCnj.js → useWorkflowActivate-C8RDXHeZ.js} +2 -2
  111. package/dist/assets/{uuid-BoySKAeK.js → uuid-DRDfXVM2.js} +2 -4
  112. package/dist/assets/{v3-infinite-loading-lAZO0HDs.js → v3-infinite-loading-CHlSsXAy.js} +1 -1
  113. package/dist/assets/{vendor-DCeaNtb_.js → vendor-D8YCjNHu.js} +18 -17
  114. package/dist/assets/{vue-agile-CyiHXD5R.js → vue-agile-Busf3nxn.js} +3 -3
  115. package/dist/assets/{vue-chartjs-CAJPqBur.js → vue-chartjs-DBNEiLG-.js} +3 -4
  116. package/dist/assets/{vue-i18n-CVQE9o3c.js → vue-i18n-CeifA_Nk.js} +2 -3
  117. package/dist/assets/{vue-json-pretty-DkJjhayc.js → vue-json-pretty-DHS8nWi_.js} +21 -40
  118. package/dist/assets/xss-Brdpqw-Z.js +1 -0
  119. package/dist/index.html +29 -29
  120. package/package.json +1 -1
  121. package/dist/assets/@n8n/api-types-Di8JQpRT.js +0 -1
  122. package/dist/assets/SignoutView-CB5tWChF.js +0 -57
  123. package/dist/assets/WorkflowsView-bdDn4gu_.js +0 -846
  124. package/dist/assets/email-providers-CUV6UfrV.js +0 -1
  125. package/dist/assets/highlight.js-CUV6UfrV.js +0 -1
  126. package/dist/assets/xss-CUV6UfrV.js +0 -1
@@ -1,846 +0,0 @@
1
- import { R as ResourcesListLayout } from "./ResourcesListLayout-BWVlXJTF.js";
2
- import { a as useToast, z as useMessage, b as useI18n, y as useTelemetry, c as useSettingsStore, f as useUIStore, u as useUsersStore, k as useWorkflowsStore, o as useProjectsStore, t as getResourcePermissions, V as VIEWS, A as WORKFLOW_SHARE_MODAL_KEY, J as DUPLICATE_MODAL_KEY, D as MODAL_CONFIRM, ei as PROJECT_MOVE_RESOURCE_MODAL, ej as ResourceType, dO as _sfc_main$3, _ as _sfc_main$4, q as useDocumentTitle, n as useSourceControlStore, d as useTagsStore, $ as useTemplatesStore, bs as usePostHog, E as EnterpriseEditionFeature, dJ as MORE_ONBOARDING_OPTIONS_EXPERIMENT } from "./index-B4ZmQmcP.js";
3
- import { I as defineComponent, aL as useRouter, f as computed, an as resolveComponent, J as openBlock, V as createBlock, _ as normalizeClass, a3 as withCtx, a8 as createVNode, a6 as createTextVNode, a7 as toDisplayString, u as unref, U as createCommentVNode, L as createBaseVNode, ac as withModifiers, a4 as withDirectives, a9 as vShow, K as createElementBlock, R as Fragment, af as renderList } from "./vendor-DCeaNtb_.js";
4
- import { d as dateformat } from "./dateformat-DjCPSdAV.js";
5
- import { W as WorkflowActivator } from "./WorkflowActivator-vZvN6hnQ.js";
6
- import { _ as _sfc_main$2 } from "./ProjectCardBadge-Bm4smn6X.js";
7
- import { _ as _export_sfc } from "./n8n-B_ltL-ji.js";
8
- import { P as ProjectTabs } from "./ProjectTabs-BaktqVTx.js";
9
- import { m as mapStores } from "./pinia-CH9HlKCh.js";
10
- import "./@sentry/vue-UFuYeDxK.js";
11
- import "./axios-B4zXCSve.js";
12
- import "./flatted-D70IerrI.js";
13
- import "./bowser-C3wWO1p5.js";
14
- import "./@vueuse/core-DVjv2hwE.js";
15
- import "./lodash-es-kRWQHL5K.js";
16
- import "./uuid-BoySKAeK.js";
17
- import "./vue-i18n-CVQE9o3c.js";
18
- import "./@n8n/permissions-BxSXRD9U.js";
19
- import "./luxon-Bt_g4NOb.js";
20
- import "./@jsplumb/util-BwtpiQ4c.js";
21
- import "./@jsplumb/core-B__RSZHf.js";
22
- import "./@jsplumb/common-s1StEx7B.js";
23
- import "./@jsplumb/connector-bezier-D659hq4c.js";
24
- import "./@jsplumb/browser-ui-BphmFVJY.js";
25
- import "./@n8n/codemirror-lang-CIGGB1t0.js";
26
- import "./@lezer/common-CnY9etib.js";
27
- import "./@n8n/codemirror-lang-sql-Bygy_eOg.js";
28
- import "./prettier-DuWRKCwA.js";
29
- import "./codemirror-lang-html-n8n-COz1fWJn.js";
30
- import "./esprima-next-DUEu30kB.js";
31
- import "./fast-json-stable-stringify-DSBIc8sQ.js";
32
- import "./timeago.js-CgQus8nl.js";
33
- import "./qrcode.vue-BxNS_c3b.js";
34
- import "./vue3-touch-events-DVOgU3fI.js";
35
- import "./chart.js-DiBOFLDH.js";
36
- import "./useWorkflowActivate-aYIkmCnj.js";
37
- const _hoisted_1$1 = { key: 0 };
38
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
39
- __name: "WorkflowCard",
40
- props: {
41
- data: { default: () => ({
42
- id: "",
43
- createdAt: "",
44
- updatedAt: "",
45
- active: false,
46
- connections: {},
47
- nodes: [],
48
- name: "",
49
- sharedWithProjects: [],
50
- homeProject: {},
51
- versionId: ""
52
- }) },
53
- readOnly: { type: Boolean, default: false }
54
- },
55
- emits: ["expand:tags", "click:tag"],
56
- setup(__props, { emit: __emit }) {
57
- const WORKFLOW_LIST_ITEM_ACTIONS = {
58
- OPEN: "open",
59
- SHARE: "share",
60
- DUPLICATE: "duplicate",
61
- DELETE: "delete",
62
- MOVE: "move"
63
- };
64
- const props = __props;
65
- const emit = __emit;
66
- const toast = useToast();
67
- const message = useMessage();
68
- const locale = useI18n();
69
- const router = useRouter();
70
- const telemetry = useTelemetry();
71
- const settingsStore = useSettingsStore();
72
- const uiStore = useUIStore();
73
- const usersStore = useUsersStore();
74
- const workflowsStore = useWorkflowsStore();
75
- const projectsStore = useProjectsStore();
76
- const resourceTypeLabel = computed(() => locale.baseText("generic.workflow").toLowerCase());
77
- const currentUser = computed(() => usersStore.currentUser ?? {});
78
- const workflowPermissions = computed(() => getResourcePermissions(props.data.scopes).workflow);
79
- const actions = computed(() => {
80
- const items = [
81
- {
82
- label: locale.baseText("workflows.item.open"),
83
- value: WORKFLOW_LIST_ITEM_ACTIONS.OPEN
84
- },
85
- {
86
- label: locale.baseText("workflows.item.share"),
87
- value: WORKFLOW_LIST_ITEM_ACTIONS.SHARE
88
- }
89
- ];
90
- if (workflowPermissions.value.create && !props.readOnly) {
91
- items.push({
92
- label: locale.baseText("workflows.item.duplicate"),
93
- value: WORKFLOW_LIST_ITEM_ACTIONS.DUPLICATE
94
- });
95
- }
96
- if (workflowPermissions.value.move && projectsStore.isTeamProjectFeatureEnabled) {
97
- items.push({
98
- label: locale.baseText("workflows.item.move"),
99
- value: WORKFLOW_LIST_ITEM_ACTIONS.MOVE
100
- });
101
- }
102
- if (workflowPermissions.value.delete && !props.readOnly) {
103
- items.push({
104
- label: locale.baseText("workflows.item.delete"),
105
- value: WORKFLOW_LIST_ITEM_ACTIONS.DELETE
106
- });
107
- }
108
- return items;
109
- });
110
- const formattedCreatedAtDate = computed(() => {
111
- const currentYear = (/* @__PURE__ */ new Date()).getFullYear().toString();
112
- return dateformat(
113
- props.data.createdAt,
114
- `d mmmm${String(props.data.createdAt).startsWith(currentYear) ? "" : ", yyyy"}`
115
- );
116
- });
117
- async function onClick(event) {
118
- if ((event == null ? void 0 : event.ctrlKey) || (event == null ? void 0 : event.metaKey)) {
119
- const route = router.resolve({
120
- name: VIEWS.WORKFLOW,
121
- params: { name: props.data.id }
122
- });
123
- window.open(route.href, "_blank");
124
- return;
125
- }
126
- await router.push({
127
- name: VIEWS.WORKFLOW,
128
- params: { name: props.data.id }
129
- });
130
- }
131
- function onClickTag(tagId, event) {
132
- event.stopPropagation();
133
- emit("click:tag", tagId, event);
134
- }
135
- function onExpandTags() {
136
- emit("expand:tags");
137
- }
138
- async function onAction(action) {
139
- switch (action) {
140
- case WORKFLOW_LIST_ITEM_ACTIONS.OPEN:
141
- await onClick();
142
- break;
143
- case WORKFLOW_LIST_ITEM_ACTIONS.DUPLICATE:
144
- uiStore.openModalWithData({
145
- name: DUPLICATE_MODAL_KEY,
146
- data: {
147
- id: props.data.id,
148
- name: props.data.name,
149
- tags: (props.data.tags ?? []).map(
150
- (tag) => typeof tag !== "string" && "id" in tag ? tag.id : tag
151
- )
152
- }
153
- });
154
- break;
155
- case WORKFLOW_LIST_ITEM_ACTIONS.SHARE:
156
- uiStore.openModalWithData({
157
- name: WORKFLOW_SHARE_MODAL_KEY,
158
- data: { id: props.data.id }
159
- });
160
- telemetry.track("User opened sharing modal", {
161
- workflow_id: props.data.id,
162
- user_id_sharer: currentUser.value.id,
163
- sub_view: "Workflows listing"
164
- });
165
- break;
166
- case WORKFLOW_LIST_ITEM_ACTIONS.DELETE:
167
- await deleteWorkflow();
168
- break;
169
- case WORKFLOW_LIST_ITEM_ACTIONS.MOVE:
170
- moveResource();
171
- break;
172
- }
173
- }
174
- async function deleteWorkflow() {
175
- const deleteConfirmed = await message.confirm(
176
- locale.baseText("mainSidebar.confirmMessage.workflowDelete.message", {
177
- interpolate: { workflowName: props.data.name }
178
- }),
179
- locale.baseText("mainSidebar.confirmMessage.workflowDelete.headline"),
180
- {
181
- type: "warning",
182
- confirmButtonText: locale.baseText(
183
- "mainSidebar.confirmMessage.workflowDelete.confirmButtonText"
184
- ),
185
- cancelButtonText: locale.baseText(
186
- "mainSidebar.confirmMessage.workflowDelete.cancelButtonText"
187
- )
188
- }
189
- );
190
- if (deleteConfirmed !== MODAL_CONFIRM) {
191
- return;
192
- }
193
- try {
194
- await workflowsStore.deleteWorkflow(props.data.id);
195
- } catch (error) {
196
- toast.showError(error, locale.baseText("generic.deleteWorkflowError"));
197
- return;
198
- }
199
- toast.showMessage({
200
- title: locale.baseText("mainSidebar.showMessage.handleSelect1.title"),
201
- type: "success"
202
- });
203
- }
204
- function moveResource() {
205
- uiStore.openModalWithData({
206
- name: PROJECT_MOVE_RESOURCE_MODAL,
207
- data: {
208
- resource: props.data,
209
- resourceType: ResourceType.Workflow,
210
- resourceTypeLabel: resourceTypeLabel.value
211
- }
212
- });
213
- }
214
- return (_ctx, _cache) => {
215
- const _component_N8nBadge = resolveComponent("N8nBadge");
216
- const _component_n8n_heading = resolveComponent("n8n-heading");
217
- const _component_n8n_tags = resolveComponent("n8n-tags");
218
- const _component_n8n_text = resolveComponent("n8n-text");
219
- const _component_n8n_action_toggle = resolveComponent("n8n-action-toggle");
220
- const _component_n8n_card = resolveComponent("n8n-card");
221
- return openBlock(), createBlock(_component_n8n_card, {
222
- class: normalizeClass(_ctx.$style.cardLink),
223
- onClick
224
- }, {
225
- header: withCtx(() => [
226
- createVNode(_component_n8n_heading, {
227
- tag: "h2",
228
- bold: "",
229
- class: normalizeClass(_ctx.$style.cardHeading),
230
- "data-test-id": "workflow-card-name"
231
- }, {
232
- default: withCtx(() => [
233
- createTextVNode(toDisplayString(_ctx.data.name) + " ", 1),
234
- !workflowPermissions.value.update ? (openBlock(), createBlock(_component_N8nBadge, {
235
- key: 0,
236
- class: "ml-3xs",
237
- theme: "tertiary",
238
- bold: ""
239
- }, {
240
- default: withCtx(() => [
241
- createTextVNode(toDisplayString(unref(locale).baseText("workflows.item.readonly")), 1)
242
- ]),
243
- _: 1
244
- })) : createCommentVNode("", true)
245
- ]),
246
- _: 1
247
- }, 8, ["class"])
248
- ]),
249
- append: withCtx(() => [
250
- createBaseVNode("div", {
251
- class: normalizeClass(_ctx.$style.cardActions),
252
- onClick: _cache[0] || (_cache[0] = withModifiers(() => {
253
- }, ["stop"]))
254
- }, [
255
- createVNode(_sfc_main$2, {
256
- resource: _ctx.data,
257
- "resource-type": unref(ResourceType).Workflow,
258
- "resource-type-label": resourceTypeLabel.value,
259
- "personal-project": unref(projectsStore).personalProject
260
- }, null, 8, ["resource", "resource-type", "resource-type-label", "personal-project"]),
261
- createVNode(WorkflowActivator, {
262
- class: "mr-s",
263
- "workflow-active": _ctx.data.active,
264
- "workflow-id": _ctx.data.id,
265
- "workflow-permissions": workflowPermissions.value,
266
- "data-test-id": "workflow-card-activator"
267
- }, null, 8, ["workflow-active", "workflow-id", "workflow-permissions"]),
268
- createVNode(_component_n8n_action_toggle, {
269
- actions: actions.value,
270
- theme: "dark",
271
- "data-test-id": "workflow-card-actions",
272
- onAction
273
- }, null, 8, ["actions"])
274
- ], 2)
275
- ]),
276
- default: withCtx(() => [
277
- createBaseVNode("div", {
278
- class: normalizeClass(_ctx.$style.cardDescription)
279
- }, [
280
- createVNode(_component_n8n_text, {
281
- color: "text-light",
282
- size: "small"
283
- }, {
284
- default: withCtx(() => [
285
- withDirectives(createBaseVNode("span", null, [
286
- createTextVNode(toDisplayString(unref(locale).baseText("workflows.item.updated")) + " ", 1),
287
- createVNode(_sfc_main$3, {
288
- date: String(_ctx.data.updatedAt)
289
- }, null, 8, ["date"]),
290
- createTextVNode(" | ")
291
- ], 512), [
292
- [vShow, _ctx.data]
293
- ]),
294
- withDirectives(createBaseVNode("span", { class: "mr-2xs" }, toDisplayString(unref(locale).baseText("workflows.item.created")) + " " + toDisplayString(formattedCreatedAtDate.value), 513), [
295
- [vShow, _ctx.data]
296
- ]),
297
- unref(settingsStore).areTagsEnabled && _ctx.data.tags && _ctx.data.tags.length > 0 ? withDirectives((openBlock(), createElementBlock("span", _hoisted_1$1, [
298
- createVNode(_component_n8n_tags, {
299
- tags: _ctx.data.tags,
300
- "truncate-at": 3,
301
- truncate: "",
302
- "data-test-id": "workflow-card-tags",
303
- "onClick:tag": onClickTag,
304
- onExpand: onExpandTags
305
- }, null, 8, ["tags"])
306
- ], 512)), [
307
- [vShow, _ctx.data]
308
- ]) : createCommentVNode("", true)
309
- ]),
310
- _: 1
311
- })
312
- ], 2)
313
- ]),
314
- _: 1
315
- }, 8, ["class"]);
316
- };
317
- }
318
- });
319
- const cardLink = "_cardLink_1ahnz_1";
320
- const cardHeading = "_cardHeading_1ahnz_11";
321
- const cardDescription = "_cardDescription_1ahnz_20";
322
- const cardActions = "_cardActions_1ahnz_27";
323
- const style0$1 = {
324
- cardLink,
325
- cardHeading,
326
- cardDescription,
327
- cardActions
328
- };
329
- const cssModules$1 = {
330
- "$style": style0$1
331
- };
332
- const __unplugin_components_1 = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
333
- const StatusFilter = {
334
- ACTIVE: true,
335
- DEACTIVATED: false,
336
- ALL: ""
337
- };
338
- const WorkflowsView$1 = defineComponent({
339
- name: "WorkflowsView",
340
- components: {
341
- ResourcesListLayout,
342
- WorkflowCard: __unplugin_components_1,
343
- WorkflowTagsDropdown: _sfc_main$4,
344
- ProjectTabs
345
- },
346
- data() {
347
- return {
348
- filters: {
349
- search: "",
350
- homeProject: "",
351
- status: StatusFilter.ALL,
352
- tags: []
353
- },
354
- sourceControlStoreUnsubscribe: () => {
355
- },
356
- loading: false,
357
- documentTitle: useDocumentTitle()
358
- };
359
- },
360
- computed: {
361
- ...mapStores(
362
- useSettingsStore,
363
- useUIStore,
364
- useUsersStore,
365
- useWorkflowsStore,
366
- useSourceControlStore,
367
- useTagsStore,
368
- useProjectsStore,
369
- useTemplatesStore,
370
- usePostHog
371
- ),
372
- readOnlyEnv() {
373
- return this.sourceControlStore.preferences.branchReadOnly;
374
- },
375
- currentUser() {
376
- return this.usersStore.currentUser || {};
377
- },
378
- allWorkflows() {
379
- return this.workflowsStore.allWorkflows;
380
- },
381
- isShareable() {
382
- return this.settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.Sharing];
383
- },
384
- statusFilterOptions() {
385
- return [
386
- {
387
- label: this.$locale.baseText("workflows.filters.status.all"),
388
- value: StatusFilter.ALL
389
- },
390
- {
391
- label: this.$locale.baseText("workflows.filters.status.active"),
392
- value: StatusFilter.ACTIVE
393
- },
394
- {
395
- label: this.$locale.baseText("workflows.filters.status.deactivated"),
396
- value: StatusFilter.DEACTIVATED
397
- }
398
- ];
399
- },
400
- userRole() {
401
- var _a, _b;
402
- const role = (_a = this.usersStore.currentUserCloudInfo) == null ? void 0 : _a.role;
403
- if (role) {
404
- return role;
405
- }
406
- const answers = (_b = this.usersStore.currentUser) == null ? void 0 : _b.personalizationAnswers;
407
- if (answers && "role" in answers) {
408
- return answers.role;
409
- }
410
- return void 0;
411
- },
412
- isOnboardingExperimentEnabled() {
413
- return this.posthogStore.getVariant(MORE_ONBOARDING_OPTIONS_EXPERIMENT.name) === MORE_ONBOARDING_OPTIONS_EXPERIMENT.variant;
414
- },
415
- isSalesUser() {
416
- if (!this.userRole) {
417
- return false;
418
- }
419
- return ["Sales", "sales-and-marketing"].includes(this.userRole);
420
- },
421
- addWorkflowButtonText() {
422
- return this.projectsStore.currentProject ? this.$locale.baseText("workflows.project.add") : this.$locale.baseText("workflows.add");
423
- },
424
- projectPermissions() {
425
- var _a, _b;
426
- return getResourcePermissions(
427
- ((_a = this.projectsStore.currentProject) == null ? void 0 : _a.scopes) ?? ((_b = this.projectsStore.personalProject) == null ? void 0 : _b.scopes)
428
- );
429
- },
430
- emptyListDescription() {
431
- if (this.readOnlyEnv) {
432
- return this.$locale.baseText("workflows.empty.description.readOnlyEnv");
433
- } else if (!this.projectPermissions.workflow.create) {
434
- return this.$locale.baseText("workflows.empty.description.noPermission");
435
- } else {
436
- return this.$locale.baseText("workflows.empty.description");
437
- }
438
- }
439
- },
440
- watch: {
441
- filters: {
442
- deep: true,
443
- handler() {
444
- this.saveFiltersOnQueryString();
445
- }
446
- },
447
- "$route.params.projectId"() {
448
- void this.initialize();
449
- }
450
- },
451
- async mounted() {
452
- this.documentTitle.set(this.$locale.baseText("workflows.heading"));
453
- await this.setFiltersFromQueryString();
454
- void this.usersStore.showPersonalizationSurvey();
455
- this.sourceControlStoreUnsubscribe = this.sourceControlStore.$onAction(({ name, after }) => {
456
- if (name === "pullWorkfolder" && after) {
457
- after(() => {
458
- void this.initialize();
459
- });
460
- }
461
- });
462
- },
463
- beforeUnmount() {
464
- this.sourceControlStoreUnsubscribe();
465
- },
466
- methods: {
467
- onFiltersUpdated(filters) {
468
- this.filters = filters;
469
- },
470
- addWorkflow() {
471
- var _a, _b;
472
- this.uiStore.nodeViewInitialized = false;
473
- void this.$router.push({
474
- name: VIEWS.NEW_WORKFLOW,
475
- query: { projectId: (_b = (_a = this.$route) == null ? void 0 : _a.params) == null ? void 0 : _b.projectId }
476
- });
477
- this.$telemetry.track("User clicked add workflow button", {
478
- source: "Workflows list"
479
- });
480
- this.trackEmptyCardClick("blank");
481
- },
482
- getTemplateRepositoryURL() {
483
- return this.templatesStore.websiteTemplateRepositoryURL;
484
- },
485
- trackEmptyCardClick(option) {
486
- this.$telemetry.track("User clicked empty page option", {
487
- option
488
- });
489
- if (option === "templates" && this.isSalesUser) {
490
- this.trackCategoryLinkClick("Sales");
491
- }
492
- },
493
- trackCategoryLinkClick(category) {
494
- var _a;
495
- this.$telemetry.track(`User clicked Browse ${category} Templates`, {
496
- role: (_a = this.usersStore.currentUserCloudInfo) == null ? void 0 : _a.role,
497
- active_workflow_count: this.workflowsStore.activeWorkflows.length
498
- });
499
- },
500
- async initialize() {
501
- var _a, _b;
502
- this.loading = true;
503
- await Promise.all([
504
- this.usersStore.fetchUsers(),
505
- this.workflowsStore.fetchAllWorkflows((_b = (_a = this.$route) == null ? void 0 : _a.params) == null ? void 0 : _b.projectId),
506
- this.workflowsStore.fetchActiveWorkflows()
507
- ]);
508
- this.loading = false;
509
- },
510
- onClickTag(tagId) {
511
- if (!this.filters.tags.includes(tagId)) {
512
- this.filters.tags.push(tagId);
513
- }
514
- },
515
- onFilter(resource, filters, matches) {
516
- if (this.settingsStore.areTagsEnabled && filters.tags.length > 0) {
517
- matches = matches && filters.tags.every(
518
- (tag) => {
519
- var _a;
520
- return (_a = resource.tags) == null ? void 0 : _a.find(
521
- (resourceTag) => typeof resourceTag === "object" ? `${resourceTag.id}` === `${tag}` : `${resourceTag}` === `${tag}`
522
- );
523
- }
524
- );
525
- }
526
- if (filters.status !== "") {
527
- matches = matches && resource.active === filters.status;
528
- }
529
- return matches;
530
- },
531
- saveFiltersOnQueryString() {
532
- const query = {};
533
- if (this.filters.search) {
534
- query.search = this.filters.search;
535
- }
536
- if (typeof this.filters.status !== "string") {
537
- query.status = this.filters.status.toString();
538
- }
539
- if (this.filters.tags.length) {
540
- query.tags = this.filters.tags.join(",");
541
- }
542
- if (this.filters.homeProject) {
543
- query.homeProject = this.filters.homeProject;
544
- }
545
- void this.$router.replace({
546
- query: Object.keys(query).length ? query : void 0
547
- });
548
- },
549
- isValidProjectId(projectId) {
550
- return this.projectsStore.availableProjects.some((project) => project.id === projectId);
551
- },
552
- async setFiltersFromQueryString() {
553
- const { tags, status, search, homeProject } = this.$route.query;
554
- const filtersToApply = {};
555
- if (homeProject && typeof homeProject === "string") {
556
- await this.projectsStore.getAvailableProjects();
557
- if (this.isValidProjectId(homeProject)) {
558
- filtersToApply.homeProject = homeProject;
559
- }
560
- }
561
- if (search && typeof search === "string") {
562
- filtersToApply.search = search;
563
- }
564
- if (tags && typeof tags === "string") {
565
- const currentTags = this.tagsStore.allTags.map((tag) => tag.id);
566
- const savedTags = tags.split(",").filter((tag) => currentTags.includes(tag));
567
- if (savedTags.length) {
568
- filtersToApply.tags = savedTags;
569
- }
570
- }
571
- if (status && typeof status === "string" && [StatusFilter.ACTIVE.toString(), StatusFilter.DEACTIVATED.toString()].includes(status)) {
572
- filtersToApply.status = status === "true";
573
- }
574
- if (Object.keys(filtersToApply).length) {
575
- this.filters = {
576
- ...this.filters,
577
- ...filtersToApply
578
- };
579
- }
580
- }
581
- }
582
- });
583
- const _sfc_main = WorkflowsView$1;
584
- const actionsContainer = "_actionsContainer_1gv00_1";
585
- const emptyStateCard = "_emptyStateCard_1gv00_6";
586
- const emptyStateCardIcon = "_emptyStateCardIcon_1gv00_19";
587
- const style0 = {
588
- actionsContainer,
589
- emptyStateCard,
590
- emptyStateCardIcon
591
- };
592
- const _hoisted_1 = {
593
- target: "_blank",
594
- href: "https://docs.n8n.io/source-control-environments/"
595
- };
596
- const _hoisted_2 = { class: "text-center mt-s" };
597
- const _hoisted_3 = ["href"];
598
- const _hoisted_4 = {
599
- key: 0,
600
- class: "mb-s"
601
- };
602
- const _hoisted_5 = { class: "mb-s" };
603
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
604
- const _component_ProjectTabs = ProjectTabs;
605
- const _component_n8n_button = resolveComponent("n8n-button");
606
- const _component_i18n_t = resolveComponent("i18n-t");
607
- const _component_n8n_tooltip = resolveComponent("n8n-tooltip");
608
- const _component_WorkflowCard = __unplugin_components_1;
609
- const _component_n8n_heading = resolveComponent("n8n-heading");
610
- const _component_n8n_text = resolveComponent("n8n-text");
611
- const _component_n8n_icon = resolveComponent("n8n-icon");
612
- const _component_n8n_card = resolveComponent("n8n-card");
613
- const _component_n8n_input_label = resolveComponent("n8n-input-label");
614
- const _component_WorkflowTagsDropdown = _sfc_main$4;
615
- const _component_n8n_option = resolveComponent("n8n-option");
616
- const _component_n8n_select = resolveComponent("n8n-select");
617
- const _component_ResourcesListLayout = ResourcesListLayout;
618
- return openBlock(), createBlock(_component_ResourcesListLayout, {
619
- ref: "layout",
620
- "resource-key": "workflows",
621
- resources: _ctx.allWorkflows,
622
- filters: _ctx.filters,
623
- "additional-filters-handler": _ctx.onFilter,
624
- "type-props": { itemSize: 80 },
625
- shareable: _ctx.isShareable,
626
- initialize: _ctx.initialize,
627
- disabled: _ctx.readOnlyEnv || !_ctx.projectPermissions.workflow.create,
628
- loading: _ctx.loading,
629
- "onClick:add": _ctx.addWorkflow,
630
- "onUpdate:filters": _ctx.onFiltersUpdated
631
- }, {
632
- header: withCtx(() => [
633
- createVNode(_component_ProjectTabs)
634
- ]),
635
- "add-button": withCtx(({ disabled }) => [
636
- createVNode(_component_n8n_tooltip, {
637
- disabled: !_ctx.readOnlyEnv
638
- }, {
639
- content: withCtx(() => [
640
- createVNode(_component_i18n_t, {
641
- tag: "span",
642
- keypath: "mainSidebar.workflows.readOnlyEnv.tooltip"
643
- }, {
644
- link: withCtx(() => [
645
- createBaseVNode("a", _hoisted_1, toDisplayString(_ctx.$locale.baseText("mainSidebar.workflows.readOnlyEnv.tooltip.link")), 1)
646
- ]),
647
- _: 1
648
- })
649
- ]),
650
- default: withCtx(() => [
651
- createBaseVNode("div", null, [
652
- createVNode(_component_n8n_button, {
653
- size: "large",
654
- block: "",
655
- disabled,
656
- "data-test-id": "resources-list-add",
657
- onClick: _ctx.addWorkflow
658
- }, {
659
- default: withCtx(() => [
660
- createTextVNode(toDisplayString(_ctx.addWorkflowButtonText), 1)
661
- ]),
662
- _: 2
663
- }, 1032, ["disabled", "onClick"])
664
- ])
665
- ]),
666
- _: 2
667
- }, 1032, ["disabled"])
668
- ]),
669
- default: withCtx(({ data, updateItemSize }) => [
670
- createVNode(_component_WorkflowCard, {
671
- "data-test-id": "resources-list-item",
672
- class: "mb-2xs",
673
- data,
674
- "read-only": _ctx.readOnlyEnv,
675
- "onExpand:tags": ($event) => updateItemSize(data),
676
- "onClick:tag": _ctx.onClickTag
677
- }, null, 8, ["data", "read-only", "onExpand:tags", "onClick:tag"])
678
- ]),
679
- empty: withCtx(() => [
680
- createBaseVNode("div", _hoisted_2, [
681
- createVNode(_component_n8n_heading, {
682
- tag: "h2",
683
- size: "xlarge",
684
- class: "mb-2xs"
685
- }, {
686
- default: withCtx(() => [
687
- createTextVNode(toDisplayString(_ctx.currentUser.firstName ? _ctx.$locale.baseText("workflows.empty.heading", {
688
- interpolate: { name: _ctx.currentUser.firstName }
689
- }) : _ctx.$locale.baseText("workflows.empty.heading.userNotSetup")), 1)
690
- ]),
691
- _: 1
692
- }),
693
- !_ctx.isOnboardingExperimentEnabled ? (openBlock(), createBlock(_component_n8n_text, {
694
- key: 0,
695
- size: "large",
696
- color: "text-base"
697
- }, {
698
- default: withCtx(() => [
699
- createTextVNode(toDisplayString(_ctx.emptyListDescription), 1)
700
- ]),
701
- _: 1
702
- })) : createCommentVNode("", true)
703
- ]),
704
- !_ctx.readOnlyEnv && _ctx.projectPermissions.workflow.create ? (openBlock(), createElementBlock("div", {
705
- key: 0,
706
- class: normalizeClass(["text-center", "mt-2xl", _ctx.$style.actionsContainer])
707
- }, [
708
- createVNode(_component_n8n_card, {
709
- class: normalizeClass(_ctx.$style.emptyStateCard),
710
- hoverable: "",
711
- "data-test-id": "new-workflow-card",
712
- onClick: _ctx.addWorkflow
713
- }, {
714
- default: withCtx(() => [
715
- createVNode(_component_n8n_icon, {
716
- class: normalizeClass(_ctx.$style.emptyStateCardIcon),
717
- icon: "file"
718
- }, null, 8, ["class"]),
719
- createVNode(_component_n8n_text, {
720
- size: "large",
721
- class: "mt-xs",
722
- color: "text-dark"
723
- }, {
724
- default: withCtx(() => [
725
- createTextVNode(toDisplayString(_ctx.$locale.baseText("workflows.empty.startFromScratch")), 1)
726
- ]),
727
- _: 1
728
- })
729
- ]),
730
- _: 1
731
- }, 8, ["class", "onClick"]),
732
- _ctx.isSalesUser || _ctx.isOnboardingExperimentEnabled ? (openBlock(), createElementBlock("a", {
733
- key: 0,
734
- href: "https://docs.n8n.io/courses/#available-courses",
735
- class: normalizeClass(_ctx.$style.emptyStateCard),
736
- target: "_blank"
737
- }, [
738
- createVNode(_component_n8n_card, {
739
- hoverable: "",
740
- "data-test-id": "browse-sales-templates-card",
741
- onClick: _cache[0] || (_cache[0] = ($event) => _ctx.trackEmptyCardClick("courses"))
742
- }, {
743
- default: withCtx(() => [
744
- createVNode(_component_n8n_icon, {
745
- class: normalizeClass(_ctx.$style.emptyStateCardIcon),
746
- icon: "graduation-cap"
747
- }, null, 8, ["class"]),
748
- createVNode(_component_n8n_text, {
749
- size: "large",
750
- class: "mt-xs",
751
- color: "text-dark"
752
- }, {
753
- default: withCtx(() => [
754
- createTextVNode(toDisplayString(_ctx.$locale.baseText("workflows.empty.learnN8n")), 1)
755
- ]),
756
- _: 1
757
- })
758
- ]),
759
- _: 1
760
- })
761
- ], 2)) : createCommentVNode("", true),
762
- _ctx.isSalesUser || _ctx.isOnboardingExperimentEnabled ? (openBlock(), createElementBlock("a", {
763
- key: 1,
764
- href: _ctx.getTemplateRepositoryURL(),
765
- class: normalizeClass(_ctx.$style.emptyStateCard),
766
- target: "_blank"
767
- }, [
768
- createVNode(_component_n8n_card, {
769
- hoverable: "",
770
- "data-test-id": "browse-sales-templates-card",
771
- onClick: _cache[1] || (_cache[1] = ($event) => _ctx.trackEmptyCardClick("templates"))
772
- }, {
773
- default: withCtx(() => [
774
- createVNode(_component_n8n_icon, {
775
- class: normalizeClass(_ctx.$style.emptyStateCardIcon),
776
- icon: "box-open"
777
- }, null, 8, ["class"]),
778
- createVNode(_component_n8n_text, {
779
- size: "large",
780
- class: "mt-xs",
781
- color: "text-dark"
782
- }, {
783
- default: withCtx(() => [
784
- createTextVNode(toDisplayString(_ctx.$locale.baseText("workflows.empty.browseTemplates")), 1)
785
- ]),
786
- _: 1
787
- })
788
- ]),
789
- _: 1
790
- })
791
- ], 10, _hoisted_3)) : createCommentVNode("", true)
792
- ], 2)) : createCommentVNode("", true)
793
- ]),
794
- filters: withCtx(({ setKeyValue }) => [
795
- _ctx.settingsStore.areTagsEnabled ? (openBlock(), createElementBlock("div", _hoisted_4, [
796
- createVNode(_component_n8n_input_label, {
797
- label: _ctx.$locale.baseText("workflows.filters.tags"),
798
- bold: false,
799
- size: "small",
800
- color: "text-base",
801
- class: "mb-3xs"
802
- }, null, 8, ["label"]),
803
- createVNode(_component_WorkflowTagsDropdown, {
804
- placeholder: _ctx.$locale.baseText("workflowOpen.filterWorkflows"),
805
- "model-value": _ctx.filters.tags,
806
- "create-enabled": false,
807
- "onUpdate:modelValue": ($event) => setKeyValue("tags", $event)
808
- }, null, 8, ["placeholder", "model-value", "onUpdate:modelValue"])
809
- ])) : createCommentVNode("", true),
810
- createBaseVNode("div", _hoisted_5, [
811
- createVNode(_component_n8n_input_label, {
812
- label: _ctx.$locale.baseText("workflows.filters.status"),
813
- bold: false,
814
- size: "small",
815
- color: "text-base",
816
- class: "mb-3xs"
817
- }, null, 8, ["label"]),
818
- createVNode(_component_n8n_select, {
819
- "data-test-id": "status-dropdown",
820
- "model-value": _ctx.filters.status,
821
- "onUpdate:modelValue": ($event) => setKeyValue("status", $event)
822
- }, {
823
- default: withCtx(() => [
824
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.statusFilterOptions, (option) => {
825
- return openBlock(), createBlock(_component_n8n_option, {
826
- key: option.label,
827
- label: option.label,
828
- value: option.value,
829
- "data-test-id": "status"
830
- }, null, 8, ["label", "value"]);
831
- }), 128))
832
- ]),
833
- _: 2
834
- }, 1032, ["model-value", "onUpdate:modelValue"])
835
- ])
836
- ]),
837
- _: 1
838
- }, 8, ["resources", "filters", "additional-filters-handler", "shareable", "initialize", "disabled", "loading", "onClick:add", "onUpdate:filters"]);
839
- }
840
- const cssModules = {
841
- "$style": style0
842
- };
843
- const WorkflowsView = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__cssModules", cssModules]]);
844
- export {
845
- WorkflowsView as default
846
- };