n8n-editor-ui 1.60.0 → 1.61.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.
Files changed (121) hide show
  1. package/dist/assets/@n8n/api-types-1C3yIoBV.js +1 -0
  2. package/dist/assets/@sentry/vue-UFuYeDxK.js +23662 -0
  3. package/dist/assets/@vue-flow/{background-BBsDO5na.js → background-VFdKMN89.js} +2 -2
  4. package/dist/assets/@vue-flow/{controls-3RHEV3L7.js → controls-ByUYVWad.js} +2 -2
  5. package/dist/assets/@vue-flow/{core-CM-Aqnx_.js → core-DgOSPOHv.js} +1 -1
  6. package/dist/assets/@vue-flow/{minimap-CbqX0yYi.js → minimap-CXuyA5pl.js} +2 -2
  7. package/dist/assets/@vue-flow/{node-resizer-CV5M1itj.js → node-resizer-BiyXe9J3.js} +2 -2
  8. package/dist/assets/@vueuse/{core-BZR8MlRU.js → core-DP7mNILw.js} +6 -6
  9. package/dist/assets/{AnnotationTagsDropdown-D6U7UU_Q.js → AnnotationTagsDropdown-DqvseWwg.js} +3 -3
  10. package/dist/assets/AuthView-BLQKeVDa.js +157 -0
  11. package/dist/assets/{AuthView-CFsZVOHy.css → AuthView-BnHKMYu_.css} +3 -3
  12. package/dist/assets/{CanvasControls-DM2JAzg_.js → CanvasControls-ColeN4c7.js} +12 -11
  13. package/dist/assets/ChangePasswordView-laaON5B-.js +177 -0
  14. package/dist/assets/{CredentialsView-CAsvUdXP.js → CredentialsView-RsHO-hid.js} +15 -14
  15. package/dist/assets/{ErrorView-BjJ8vvqX.js → ErrorView-CVlhihDL.js} +12 -11
  16. package/dist/assets/{ExecutionsFilter-CfHr27hS.js → ExecutionsFilter-373wd0v7.js} +4 -4
  17. package/dist/assets/{ExecutionsView-BHCt-5YP.js → ExecutionsView-B1Y-qi0D.js} +41 -16
  18. package/dist/assets/{FixedCollectionParameter-DgJChEoq.js → FixedCollectionParameter-D9g5OebO.js} +12 -11
  19. package/dist/assets/ForgotMyPasswordView-BWtMCTvE.js +127 -0
  20. package/dist/assets/{MainHeader-C4C5qi1z.js → MainHeader-D9Zo0BIA.js} +19 -18
  21. package/dist/assets/{MainSidebar-DQffk5kz.js → MainSidebar-DtqGWmgj.js} +12 -11
  22. package/dist/assets/{NodeCreation-BPyQshMM.js → NodeCreation-Z5Kx0dXZ.js} +6 -6
  23. package/dist/assets/{NodeCreator-cNxCWP-E.js → NodeCreator-Cwd8lDNF.js} +27 -26
  24. package/dist/assets/{NodeViewSwitcher-9b7PTcw5.css → NodeViewSwitcher-Bee93VCg.css} +42 -42
  25. package/dist/assets/{NodeViewSwitcher-CCEnIlP8.js → NodeViewSwitcher-DZvKqdTk.js} +147 -71
  26. package/dist/assets/{ProjectCardBadge-DW2RsAKp.js → ProjectCardBadge-Dj0cvfM0.js} +2 -2
  27. package/dist/assets/{ProjectSettings-DCWjSE_s.js → ProjectSettings-zPM6vepm.js} +12 -11
  28. package/dist/assets/{ProjectTabs-DDJ4bVpZ.js → ProjectTabs-ByCqXofn.js} +3 -3
  29. package/dist/assets/{PushConnectionTracker-DrgvrwAn.js → PushConnectionTracker-B4vL4y_R.js} +4 -4
  30. package/dist/assets/{ResourcesListLayout-DAFPG84N.js → ResourcesListLayout-D5Jl-SNJ.js} +4 -4
  31. package/dist/assets/{RunDataAi-BRLixdBK.js → RunDataAi-50EsjDf6.js} +3 -3
  32. package/dist/assets/RunDataJson-BlxN0xwc.js +219 -0
  33. package/dist/assets/{RunDataJson-DGge2zsB.css → RunDataJson-Dtc8i0I7.css} +12 -10
  34. package/dist/assets/{RunDataJsonActions-CTXfYaCk.js → RunDataJsonActions-BnEGvH1N.js} +13 -12
  35. package/dist/assets/{RunDataSearch-DlNKHU21.js → RunDataSearch-DS3pvMvG.js} +12 -11
  36. package/dist/assets/{RunDataTable-U46k2nfi.js → RunDataTable-C7ykxdts.js} +17 -16
  37. package/dist/assets/{SamlOnboarding-D1WDFz9b.js → SamlOnboarding-MqtO_Q7o.js} +24 -20
  38. package/dist/assets/{SettingsApiView-Dwpua2lq.js → SettingsApiView-CItYnGov.js} +12 -11
  39. package/dist/assets/{SettingsCommunityNodesView-DbSd1-Ql.js → SettingsCommunityNodesView-DZNQSYYy.js} +17 -41
  40. package/dist/assets/{SettingsExternalSecrets-DI9CnXCU.js → SettingsExternalSecrets-BVw27tqX.js} +12 -11
  41. package/dist/assets/{SettingsFakeDoorView-sXdMK8GE.js → SettingsFakeDoorView-DwImvIGm.js} +12 -11
  42. package/dist/assets/SettingsLdapView-CCXZA2cJ.js +746 -0
  43. package/dist/assets/{SettingsLogStreamingView-SR7-TyOb.js → SettingsLogStreamingView-CyrM8m6J.js} +12 -11
  44. package/dist/assets/{SettingsPersonalView-0KdC8N96.js → SettingsPersonalView-MdnL1_ii.js} +12 -11
  45. package/dist/assets/{SettingsSourceControl-BbHHQA1W.js → SettingsSourceControl-DCY2PqLz.js} +12 -11
  46. package/dist/assets/{SettingsSso-CnV4haPY.js → SettingsSso-B8p13jLP.js} +12 -11
  47. package/dist/assets/{SettingsUsageAndPlan-BqoTIYCo.js → SettingsUsageAndPlan-BN31-STz.js} +17 -33
  48. package/dist/assets/{SettingsUsageAndPlan-9dhwk2eO.css → SettingsUsageAndPlan-ayybRhnz.css} +3 -3
  49. package/dist/assets/{SettingsUsersView-g15ty6QZ.js → SettingsUsersView-BMsD7GNO.js} +12 -11
  50. package/dist/assets/SettingsView-CtXcNiVg.js +276 -0
  51. package/dist/assets/SetupView-BLuVCwIj.js +140 -0
  52. package/dist/assets/{SetupWorkflowCredentialsButton-N8CTAGke.js → SetupWorkflowCredentialsButton-Div5SUON.js} +11 -10
  53. package/dist/assets/{SetupWorkflowFromTemplateView-Cft9OyrK.js → SetupWorkflowFromTemplateView-DfFXky0J.js} +14 -13
  54. package/dist/assets/{SigninView-DDInu9xv.js → SigninView-BqL0a-cZ.js} +121 -133
  55. package/dist/assets/{SignoutView-Bngt2a7A.js → SignoutView-D01-eFg_.js} +11 -10
  56. package/dist/assets/{SignupView-rq5t2YLy.js → SignupView-UX8-7Wvn.js} +12 -11
  57. package/dist/assets/{TemplateDetails-yAEgnNZC.js → TemplateDetails-DvrkJ9pc.js} +4 -4
  58. package/dist/assets/{TemplateList-gRE5SR0F.js → TemplateList-Dxye-Lxs.js} +3 -3
  59. package/dist/assets/TemplatesCollectionView-kKvnA0FM.js +240 -0
  60. package/dist/assets/{TemplatesSearchView-DlQEPqfw.js → TemplatesSearchView-sUgBNVnh.js} +139 -158
  61. package/dist/assets/{TemplatesView-DgYrKF_1.js → TemplatesView-CCcE6ceG.js} +3 -3
  62. package/dist/assets/TemplatesWorkflowView-CQWB7PN1.js +245 -0
  63. package/dist/assets/{VariablesView-CMhQ441f.js → VariablesView-BFvSr6vu.js} +15 -14
  64. package/dist/assets/{VariablesView-Bj3MOQeD.css → VariablesView-D88cddoZ.css} +18 -18
  65. package/dist/assets/{WorkerView-Divgcddx.js → WorkerView-BpwPXZ6o.js} +16 -15
  66. package/dist/assets/{WorkflowActivator-a_yfkFYa.js → WorkflowActivator-C98Z6FLJ.js} +4 -4
  67. package/dist/assets/{WorkflowExecutionsInfoAccordion--bDyDV6-.js → WorkflowExecutionsInfoAccordion-DVXqECJb.js} +3 -3
  68. package/dist/assets/{WorkflowExecutionsLandingPage-DHhr3ake.js → WorkflowExecutionsLandingPage-DXDsNOih.js} +13 -12
  69. package/dist/assets/{WorkflowExecutionsPreview-CmLLoH4x.js → WorkflowExecutionsPreview-6-8MfOm9.js} +27 -16
  70. package/dist/assets/{WorkflowExecutionsView-BpzWZBSo.js → WorkflowExecutionsView-D4lW8BoL.js} +16 -15
  71. package/dist/assets/{WorkflowHistory-DQhx7Ob3.js → WorkflowHistory-Bvx0HbCZ.js} +14 -13
  72. package/dist/assets/{WorkflowOnboardingView-BOPYAuEH.js → WorkflowOnboardingView-otfpn0DB.js} +11 -10
  73. package/dist/assets/{WorkflowPreview-DVOWE7Gj.js → WorkflowPreview-DdyMz4mx.js} +3 -3
  74. package/dist/assets/{WorkflowsView-D82NSpsG.js → WorkflowsView-BUbDrUpG.js} +17 -16
  75. package/dist/assets/{cloud-LUv718M0.js → cloud-Cxh_nDLb.js} +11 -10
  76. package/dist/assets/{dateFormatter-BQycHW-g.js → dateFormatter-BFLNShbl.js} +1 -1
  77. package/dist/assets/{dateformat-DYMw-0LU.js → dateformat-DfmxUC-6.js} +1 -1
  78. package/dist/assets/email-providers-DOaL31jY.js +1 -0
  79. package/dist/assets/{fast-json-stable-stringify-dgHKYgJi.js → fast-json-stable-stringify-DDe8InQN.js} +1 -1
  80. package/dist/assets/{file-saver-taM_eo9L.js → file-saver-DU9Y2h5E.js} +1 -1
  81. package/dist/assets/highlight.js-DOaL31jY.js +1 -0
  82. package/dist/assets/{humanize-duration-DLMU-N1g.js → humanize-duration-BS9LxAIm.js} +1 -1
  83. package/dist/assets/{index-DndFZfV8.js → index-BK9gQqb6.js} +9036 -9001
  84. package/dist/assets/{index-CDdd6K0Q.css → index-CUw3_ZiY.css} +216 -138
  85. package/dist/assets/{jsonpath-B2TgTZLp.js → jsonpath-DbhX-MUF.js} +1 -1
  86. package/dist/assets/{n8n-DS_nZ0wb.js → n8n-DLOq6Kd-.js} +3306 -3377
  87. package/dist/assets/{n8n-CZShcbZx.css → n8n-wnQsH82d.css} +60 -60
  88. package/dist/assets/{pinia-C4PgcsWV.js → pinia-CH9HlKCh.js} +155 -8
  89. package/dist/assets/{prettier-_aQB57xD.js → prettier-DuWRKCwA.js} +1115 -1052
  90. package/dist/assets/{pushConnection.store-BTynFkGl.js → pushConnection.store-0ae9n5RY.js} +3 -3
  91. package/dist/assets/{qrcode.vue-EmD3D6Vb.js → qrcode.vue-BxNS_c3b.js} +1 -1
  92. package/dist/assets/{templateActions-CyTEtN23.js → templateActions-DWDf_J_7.js} +1 -1
  93. package/dist/assets/{useBeforeUnload-Div6k6NW.js → useBeforeUnload-Bu28h_Oh.js} +2 -2
  94. package/dist/assets/{useExecutionDebugging-FW31gZq7.js → useExecutionDebugging-Ij7ccVln.js} +2 -2
  95. package/dist/assets/{usePushConnection-CJj6Vah0.js → usePushConnection-C5cJk_Eh.js} +5 -5
  96. package/dist/assets/{useUserHelpers-D8TzQJnM.js → useUserHelpers-Dec8q_5J.js} +1 -1
  97. package/dist/assets/{useWorkflowActivate-BBlUBJda.js → useWorkflowActivate-DhxP8t5T.js} +2 -2
  98. package/dist/assets/{v3-infinite-loading-BDSwUlAm.js → v3-infinite-loading-lAZO0HDs.js} +1 -1
  99. package/dist/assets/{vendor-DCtS1fjk.js → vendor-DCeaNtb_.js} +212 -133
  100. package/dist/assets/{vue-agile-Dr5uE4S4.js → vue-agile-B6SWje8b.js} +2 -2
  101. package/dist/assets/{vue-chartjs-ytwxJ63I.js → vue-chartjs-CAJPqBur.js} +1 -1
  102. package/dist/assets/{vue-i18n-DBLN2Rh9.js → vue-i18n-CVQE9o3c.js} +1 -1
  103. package/dist/assets/{vue-json-pretty-DbJSbzQx.js → vue-json-pretty-DyN9p2di.js} +2 -2
  104. package/dist/assets/xss-DOaL31jY.js +1 -0
  105. package/dist/index.html +35 -33
  106. package/index.html +1 -0
  107. package/package.json +1 -1
  108. package/vite.config.mts +3 -3
  109. package/dist/assets/@n8n/api-types-l0sNRNKZ.js +0 -1
  110. package/dist/assets/AuthView-C2AWX7U3.js +0 -170
  111. package/dist/assets/ChangePasswordView-B50udwRl.js +0 -184
  112. package/dist/assets/ForgotMyPasswordView-CxXL7TS9.js +0 -133
  113. package/dist/assets/RunDataJson-BKgI5Len.js +0 -260
  114. package/dist/assets/SettingsLdapView-HJim-Mcr.js +0 -769
  115. package/dist/assets/SettingsView-BXu6WM7O.js +0 -312
  116. package/dist/assets/SetupView-l6S2CDCh.js +0 -148
  117. package/dist/assets/TemplatesCollectionView-DqU45LmA.js +0 -253
  118. package/dist/assets/TemplatesWorkflowView-R16T2dYz.js +0 -255
  119. package/dist/assets/email-providers-NhjWeVZA.js +0 -1
  120. package/dist/assets/highlight.js-NhjWeVZA.js +0 -1
  121. package/dist/assets/xss-NhjWeVZA.js +0 -1
@@ -1,7 +1,7 @@
1
- import { a9 as _sfc_main$2, dQ as _sfc_main$3, $ as useTemplatesStore, dR as abbreviateNumber, dS as filterTemplateNodes } from "./index-DndFZfV8.js";
2
- import { I as defineComponent, an as resolveComponent, J as openBlock, K as createElementBlock, L as createBaseVNode, a8 as createVNode, a3 as withCtx, a6 as createTextVNode, a7 as toDisplayString, _ as normalizeClass, Z as renderSlot, V as createBlock, R as Fragment, af as renderList, U as createCommentVNode } from "./vendor-DCtS1fjk.js";
3
- import { _ as _export_sfc } from "./n8n-DS_nZ0wb.js";
4
- import { m as mapStores } from "./pinia-C4PgcsWV.js";
1
+ import { a9 as _sfc_main$2, dP as _sfc_main$3, $ as useTemplatesStore, dQ as abbreviateNumber, dR as filterTemplateNodes } from "./index-BK9gQqb6.js";
2
+ import { I as defineComponent, an as resolveComponent, J as openBlock, K as createElementBlock, L as createBaseVNode, a8 as createVNode, a3 as withCtx, a6 as createTextVNode, a7 as toDisplayString, _ as normalizeClass, Z as renderSlot, V as createBlock, R as Fragment, af as renderList, U as createCommentVNode } from "./vendor-DCeaNtb_.js";
3
+ import { _ as _export_sfc } from "./n8n-DLOq6Kd-.js";
4
+ import { m as mapStores } from "./pinia-CH9HlKCh.js";
5
5
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
6
6
  __name: "TemplateDetailsBlock",
7
7
  props: {
@@ -1,6 +1,6 @@
1
- import { a9 as _sfc_main$3, dS as filterTemplateNodes, dQ as _sfc_main$4, dR as abbreviateNumber } from "./index-DndFZfV8.js";
2
- import { I as defineComponent, J as openBlock, K as createElementBlock, _ as normalizeClass, R as Fragment, af as renderList, a8 as createVNode, a7 as toDisplayString, U as createCommentVNode, an as resolveComponent, a3 as withCtx, a6 as createTextVNode, V as createBlock, ac as withModifiers, L as createBaseVNode } from "./vendor-DCtS1fjk.js";
3
- import { _ as _export_sfc } from "./n8n-DS_nZ0wb.js";
1
+ import { a9 as _sfc_main$3, dR as filterTemplateNodes, dP as _sfc_main$4, dQ as abbreviateNumber } from "./index-BK9gQqb6.js";
2
+ import { I as defineComponent, J as openBlock, K as createElementBlock, _ as normalizeClass, R as Fragment, af as renderList, a8 as createVNode, a7 as toDisplayString, U as createCommentVNode, an as resolveComponent, a3 as withCtx, a6 as createTextVNode, V as createBlock, ac as withModifiers, L as createBaseVNode } from "./vendor-DCeaNtb_.js";
3
+ import { _ as _export_sfc } from "./n8n-DLOq6Kd-.js";
4
4
  const _sfc_main$2 = defineComponent({
5
5
  name: "NodeList",
6
6
  components: {
@@ -0,0 +1,240 @@
1
+ import { I as defineComponent, aE as useRoute, aL as useRouter, r as ref, f as computed, b as watch, q as onMounted, an as resolveComponent, J as openBlock, V as createBlock, ah as createSlots, a3 as withCtx, L as createBaseVNode, _ as normalizeClass, u as unref, K as createElementBlock, a8 as createVNode, U as createCommentVNode, a6 as createTextVNode, a7 as toDisplayString } from "./vendor-DCeaNtb_.js";
2
+ import { i as isFullTemplatesCollection, _ as __unplugin_components_1 } from "./TemplateDetails-DvrkJ9pc.js";
3
+ import { _ as __unplugin_components_2 } from "./TemplateList-Dxye-Lxs.js";
4
+ import { T as TemplatesView } from "./TemplatesView-CCcE6ceG.js";
5
+ import { $ as useTemplatesStore, br as usePostHog, a4 as useNodeTypesStore, dO as setPageTitle, a1 as useExternalHooks, x as useTelemetry, b as useI18n, V as VIEWS } from "./index-BK9gQqb6.js";
6
+ import { u as useTemplateWorkflow } from "./templateActions-DWDf_J_7.js";
7
+ import { _ as _export_sfc } from "./n8n-DLOq6Kd-.js";
8
+ import "./pinia-CH9HlKCh.js";
9
+ import "./@sentry/vue-UFuYeDxK.js";
10
+ import "./axios-B4zXCSve.js";
11
+ import "./flatted-D70IerrI.js";
12
+ import "./bowser-C3wWO1p5.js";
13
+ import "./@vueuse/core-DP7mNILw.js";
14
+ import "./lodash-es-rVh4nriD.js";
15
+ import "./uuid-BoySKAeK.js";
16
+ import "./dateformat-DfmxUC-6.js";
17
+ import "./vue-i18n-CVQE9o3c.js";
18
+ import "./@n8n/permissions-BxSXRD9U.js";
19
+ import "./@jsplumb/util-BwtpiQ4c.js";
20
+ import "./@jsplumb/core-B__RSZHf.js";
21
+ import "./@jsplumb/common-s1StEx7B.js";
22
+ import "./@jsplumb/connector-bezier-D659hq4c.js";
23
+ import "./@jsplumb/browser-ui-BphmFVJY.js";
24
+ import "./luxon-Bt_g4NOb.js";
25
+ import "./@n8n/codemirror-lang-CIGGB1t0.js";
26
+ import "./@lezer/common-CnY9etib.js";
27
+ import "./@n8n/codemirror-lang-sql-C41WNa63.js";
28
+ import "./prettier-DuWRKCwA.js";
29
+ import "./codemirror-lang-html-n8n-CXTCIWzP.js";
30
+ import "./esprima-next-DUEu30kB.js";
31
+ import "./fast-json-stable-stringify-DDe8InQN.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
+ const _sfc_main = /* @__PURE__ */ defineComponent({
37
+ __name: "TemplatesCollectionView",
38
+ setup(__props) {
39
+ const externalHooks = useExternalHooks();
40
+ const templatesStore = useTemplatesStore();
41
+ const posthogStore = usePostHog();
42
+ const nodeTypesStore = useNodeTypesStore();
43
+ const route = useRoute();
44
+ const router = useRouter();
45
+ const telemetry = useTelemetry();
46
+ const i18n = useI18n();
47
+ const loading = ref(true);
48
+ const notFoundError = ref(false);
49
+ const collectionId = computed(() => {
50
+ const { id } = route.params;
51
+ return Array.isArray(id) ? id[0] : id;
52
+ });
53
+ const collection = computed(() => templatesStore.getCollectionById(collectionId.value));
54
+ const collectionWorkflows = computed(() => {
55
+ if (!collection.value || loading.value) {
56
+ return [];
57
+ }
58
+ return collection.value.workflows.map(({ id }) => templatesStore.getTemplateById(id.toString())).filter((workflow) => !!workflow);
59
+ });
60
+ const scrollToTop = () => {
61
+ setTimeout(() => {
62
+ const contentArea = document.getElementById("content");
63
+ if (contentArea) {
64
+ contentArea.scrollTo({
65
+ top: 0,
66
+ behavior: "smooth"
67
+ });
68
+ }
69
+ }, 50);
70
+ };
71
+ const onOpenTemplate = ({ event, id }) => {
72
+ navigateTo(event, VIEWS.TEMPLATE, id);
73
+ };
74
+ const onUseWorkflow = async ({ event, id }) => {
75
+ await useTemplateWorkflow({
76
+ posthogStore,
77
+ router,
78
+ templateId: id,
79
+ inNewBrowserTab: event.metaKey || event.ctrlKey,
80
+ templatesStore,
81
+ externalHooks,
82
+ nodeTypesStore,
83
+ telemetry,
84
+ source: "template_list"
85
+ });
86
+ };
87
+ const navigateTo = (e, page, id) => {
88
+ if (e.metaKey || e.ctrlKey) {
89
+ const route2 = router.resolve({ name: page, params: { id } });
90
+ window.open(route2.href, "_blank");
91
+ return;
92
+ } else {
93
+ void router.push({ name: page, params: { id } });
94
+ }
95
+ };
96
+ watch(
97
+ () => collection.value,
98
+ () => {
99
+ if (collection.value && "full" in collection.value && collection.value.full) {
100
+ setPageTitle(`n8n - Template collection: ${collection.value.name}`);
101
+ } else {
102
+ setPageTitle("n8n - Templates");
103
+ }
104
+ }
105
+ );
106
+ onMounted(async () => {
107
+ scrollToTop();
108
+ if (collection.value && "full" in collection.value && collection.value.full) {
109
+ loading.value = false;
110
+ return;
111
+ }
112
+ try {
113
+ await templatesStore.fetchCollectionById(collectionId.value);
114
+ } catch (e) {
115
+ notFoundError.value = true;
116
+ }
117
+ loading.value = false;
118
+ });
119
+ return (_ctx, _cache) => {
120
+ const _component_n8n_heading = resolveComponent("n8n-heading");
121
+ const _component_n8n_text = resolveComponent("n8n-text");
122
+ const _component_n8n_loading = resolveComponent("n8n-loading");
123
+ const _component_n8n_markdown = resolveComponent("n8n-markdown");
124
+ return openBlock(), createBlock(TemplatesView, { "go-back-enabled": true }, createSlots({
125
+ header: withCtx(() => [
126
+ !notFoundError.value ? (openBlock(), createElementBlock("div", {
127
+ key: 0,
128
+ class: normalizeClass(_ctx.$style.wrapper)
129
+ }, [
130
+ createBaseVNode("div", {
131
+ class: normalizeClass(_ctx.$style.title)
132
+ }, [
133
+ collection.value && collection.value.name ? (openBlock(), createBlock(_component_n8n_heading, {
134
+ key: 0,
135
+ tag: "h1",
136
+ size: "2xlarge"
137
+ }, {
138
+ default: withCtx(() => [
139
+ createTextVNode(toDisplayString(collection.value.name), 1)
140
+ ]),
141
+ _: 1
142
+ })) : createCommentVNode("", true),
143
+ collection.value && collection.value.name ? (openBlock(), createBlock(_component_n8n_text, {
144
+ key: 1,
145
+ color: "text-base",
146
+ size: "small"
147
+ }, {
148
+ default: withCtx(() => [
149
+ createTextVNode(toDisplayString(unref(i18n).baseText("templates.collection")), 1)
150
+ ]),
151
+ _: 1
152
+ })) : createCommentVNode("", true),
153
+ createVNode(_component_n8n_loading, {
154
+ loading: !collection.value || !collection.value.name,
155
+ rows: 2,
156
+ variant: "h1"
157
+ }, null, 8, ["loading"])
158
+ ], 2)
159
+ ], 2)) : (openBlock(), createElementBlock("div", {
160
+ key: 1,
161
+ class: normalizeClass(_ctx.$style.notFound)
162
+ }, [
163
+ createVNode(_component_n8n_text, { color: "text-base" }, {
164
+ default: withCtx(() => [
165
+ createTextVNode(toDisplayString(unref(i18n).baseText("templates.collectionsNotFound")), 1)
166
+ ]),
167
+ _: 1
168
+ })
169
+ ], 2))
170
+ ]),
171
+ _: 2
172
+ }, [
173
+ !notFoundError.value ? {
174
+ name: "content",
175
+ fn: withCtx(() => [
176
+ createBaseVNode("div", {
177
+ class: normalizeClass(_ctx.$style.wrapper)
178
+ }, [
179
+ createBaseVNode("div", {
180
+ class: normalizeClass(_ctx.$style.mainContent)
181
+ }, [
182
+ loading.value || unref(isFullTemplatesCollection)(collection.value) ? (openBlock(), createElementBlock("div", {
183
+ key: 0,
184
+ class: normalizeClass(_ctx.$style.markdown)
185
+ }, [
186
+ createVNode(_component_n8n_markdown, {
187
+ content: unref(isFullTemplatesCollection)(collection.value) && collection.value.description,
188
+ images: unref(isFullTemplatesCollection)(collection.value) && collection.value.image,
189
+ loading: loading.value
190
+ }, null, 8, ["content", "images", "loading"])
191
+ ], 2)) : createCommentVNode("", true),
192
+ createVNode(__unplugin_components_2, {
193
+ "infinite-scroll-enabled": false,
194
+ loading: loading.value,
195
+ "use-workflow-button": true,
196
+ workflows: collectionWorkflows.value,
197
+ onUseWorkflow,
198
+ onOpenTemplate
199
+ }, null, 8, ["loading", "workflows"])
200
+ ], 2),
201
+ createBaseVNode("div", {
202
+ class: normalizeClass(_ctx.$style.details)
203
+ }, [
204
+ createVNode(__unplugin_components_1, {
205
+ "block-title": unref(i18n).baseText("template.details.appsInTheCollection"),
206
+ loading: loading.value,
207
+ template: collection.value
208
+ }, null, 8, ["block-title", "loading", "template"])
209
+ ], 2)
210
+ ], 2)
211
+ ]),
212
+ key: "0"
213
+ } : void 0
214
+ ]), 1024);
215
+ };
216
+ }
217
+ });
218
+ const wrapper = "_wrapper_b0vqe_1";
219
+ const notFound = "_notFound_b0vqe_11";
220
+ const title = "_title_b0vqe_15";
221
+ const button = "_button_b0vqe_19";
222
+ const mainContent = "_mainContent_b0vqe_23";
223
+ const markdown = "_markdown_b0vqe_34";
224
+ const details = "_details_b0vqe_38";
225
+ const style0 = {
226
+ wrapper,
227
+ notFound,
228
+ title,
229
+ button,
230
+ mainContent,
231
+ markdown,
232
+ details
233
+ };
234
+ const cssModules = {
235
+ "$style": style0
236
+ };
237
+ const TemplatesCollectionView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
238
+ export {
239
+ TemplatesCollectionView as default
240
+ };
@@ -1,21 +1,22 @@
1
- import { a as __unplugin_components_0$2, _ as __unplugin_components_2 } from "./TemplateList-gRE5SR0F.js";
2
- import { I as defineComponent, an as resolveComponent, J as openBlock, V as createBlock, ah as createSlots, a3 as withCtx, L as createBaseVNode, _ as normalizeClass, a7 as toDisplayString, Z as renderSlot, a8 as createVNode, a0 as mergeProps, $ as normalizeStyle, a4 as withDirectives, a6 as createTextVNode, a9 as vShow, K as createElementBlock, R as Fragment, af as renderList, U as createCommentVNode, au as resolveDirective } from "./vendor-DCtS1fjk.js";
3
- import { _ as _export_sfc } from "./n8n-DS_nZ0wb.js";
4
- import { V as VueAgile } from "./vue-agile-Dr5uE4S4.js";
5
- import { $ as useTemplatesStore, d as useDebounce, u as useToast, d_ as CREATOR_HUB_URL, br as usePostHog, a as useUsersStore, e as useUIStore, b as useSettingsStore, dP as setPageTitle, V as VIEWS } from "./index-DndFZfV8.js";
6
- import { m as mapStores } from "./pinia-C4PgcsWV.js";
7
- import { T as TemplatesView } from "./TemplatesView-DgYrKF_1.js";
1
+ import { a as __unplugin_components_0$1, _ as __unplugin_components_2 } from "./TemplateList-Dxye-Lxs.js";
2
+ import { I as defineComponent, an as resolveComponent, J as openBlock, V as createBlock, ah as createSlots, a3 as withCtx, L as createBaseVNode, _ as normalizeClass, a7 as toDisplayString, Z as renderSlot, a8 as createVNode, a0 as mergeProps, $ as normalizeStyle, a4 as withDirectives, a6 as createTextVNode, a9 as vShow, r as ref, b as watch, q as onMounted, n as nextTick, l as onBeforeMount, K as createElementBlock, R as Fragment, af as renderList, u as unref, U as createCommentVNode, au as resolveDirective } from "./vendor-DCeaNtb_.js";
3
+ import { _ as _export_sfc } from "./n8n-DLOq6Kd-.js";
4
+ import { V as VueAgile } from "./vue-agile-B6SWje8b.js";
5
+ import { $ as useTemplatesStore, e as useDebounce, a as useToast, dZ as CREATOR_HUB_URL, br as usePostHog, u as useUsersStore, f as useUIStore, c as useSettingsStore, dO as setPageTitle, V as VIEWS } from "./index-BK9gQqb6.js";
6
+ import { m as mapStores } from "./pinia-CH9HlKCh.js";
7
+ import { T as TemplatesView } from "./TemplatesView-CCcE6ceG.js";
8
8
  import "./esprima-next-DUEu30kB.js";
9
9
  import "./axios-B4zXCSve.js";
10
10
  import "./luxon-Bt_g4NOb.js";
11
11
  import "./lodash-es-rVh4nriD.js";
12
12
  import "./uuid-BoySKAeK.js";
13
- import "./@vueuse/core-BZR8MlRU.js";
13
+ import "./@vueuse/core-DP7mNILw.js";
14
+ import "./@sentry/vue-UFuYeDxK.js";
14
15
  import "./flatted-D70IerrI.js";
15
16
  import "./bowser-C3wWO1p5.js";
17
+ import "./dateformat-DfmxUC-6.js";
18
+ import "./vue-i18n-CVQE9o3c.js";
16
19
  import "./@n8n/permissions-BxSXRD9U.js";
17
- import "./dateformat-DYMw-0LU.js";
18
- import "./vue-i18n-DBLN2Rh9.js";
19
20
  import "./@jsplumb/util-BwtpiQ4c.js";
20
21
  import "./@jsplumb/core-B__RSZHf.js";
21
22
  import "./@jsplumb/common-s1StEx7B.js";
@@ -24,11 +25,11 @@ import "./@jsplumb/browser-ui-BphmFVJY.js";
24
25
  import "./@n8n/codemirror-lang-CIGGB1t0.js";
25
26
  import "./@lezer/common-CnY9etib.js";
26
27
  import "./@n8n/codemirror-lang-sql-C41WNa63.js";
27
- import "./prettier-_aQB57xD.js";
28
+ import "./prettier-DuWRKCwA.js";
28
29
  import "./codemirror-lang-html-n8n-CXTCIWzP.js";
29
- import "./fast-json-stable-stringify-dgHKYgJi.js";
30
+ import "./fast-json-stable-stringify-DDe8InQN.js";
30
31
  import "./timeago.js-CgQus8nl.js";
31
- import "./qrcode.vue-EmD3D6Vb.js";
32
+ import "./qrcode.vue-BxNS_c3b.js";
32
33
  import "./vue3-touch-events-DVOgU3fI.js";
33
34
  import "./chart.js-DiBOFLDH.js";
34
35
  const _hoisted_1$2 = ["textContent"];
@@ -89,7 +90,7 @@ const _sfc_main$3 = defineComponent({
89
90
  name: "TemplatesInfoCard",
90
91
  components: {
91
92
  Card,
92
- NodeList: __unplugin_components_0$2
93
+ NodeList: __unplugin_components_0$1
93
94
  },
94
95
  props: {
95
96
  collection: {
@@ -109,9 +110,9 @@ const _sfc_main$3 = defineComponent({
109
110
  }
110
111
  }
111
112
  });
112
- function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
113
+ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
113
114
  const _component_n8n_text = resolveComponent("n8n-text");
114
- const _component_NodeList = __unplugin_components_0$2;
115
+ const _component_NodeList = __unplugin_components_0$1;
115
116
  const _component_Card = resolveComponent("Card");
116
117
  return openBlock(), createBlock(_component_Card, {
117
118
  loading: _ctx.loading,
@@ -140,97 +141,133 @@ function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
140
141
  _: 1
141
142
  }, 8, ["loading", "title", "style"]);
142
143
  }
143
- const __unplugin_components_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$3]]);
144
- const _sfc_main$2 = defineComponent({
145
- name: "TemplatesInfoCarousel",
146
- components: {
147
- Card,
148
- TemplatesInfoCard: __unplugin_components_0$1,
149
- agile: VueAgile
150
- },
144
+ const TemplatesInfoCard = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2]]);
145
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
146
+ __name: "TemplatesInfoCarousel",
151
147
  props: {
152
- collections: {
153
- type: Array,
154
- required: true
155
- },
156
- loading: {
157
- type: Boolean
158
- },
159
- showItemCount: {
160
- type: Boolean,
161
- default: true
162
- },
163
- showNavigation: {
164
- type: Boolean,
165
- default: true
166
- },
167
- cardsWidth: {
168
- type: String,
169
- default: "240px"
170
- }
148
+ collections: {},
149
+ loading: { type: Boolean, default: false },
150
+ showItemCount: { type: Boolean, default: true },
151
+ showNavigation: { type: Boolean, default: true },
152
+ cardsWidth: { default: "240px" }
171
153
  },
172
- data() {
173
- return {
174
- carouselScrollPosition: 0,
175
- cardWidth: parseInt(this.cardsWidth, 10),
176
- sliderWidth: 0,
177
- scrollEnd: false,
178
- listElement: null
154
+ emits: ["openCollection"],
155
+ setup(__props, { emit: __emit }) {
156
+ const props = __props;
157
+ const emit = __emit;
158
+ const carouselScrollPosition = ref(0);
159
+ const cardWidth = ref(parseInt(props.cardsWidth, 10));
160
+ const scrollEnd = ref(false);
161
+ const listElement = ref(null);
162
+ const sliderRef = ref(null);
163
+ const updateCarouselScroll = () => {
164
+ if (listElement.value) {
165
+ carouselScrollPosition.value = Number(listElement.value.scrollLeft.toFixed());
166
+ const width = listElement.value.clientWidth;
167
+ const scrollWidth = listElement.value.scrollWidth;
168
+ const scrollLeft2 = carouselScrollPosition.value;
169
+ scrollEnd.value = scrollWidth - width <= scrollLeft2 + 7;
170
+ }
179
171
  };
180
- },
181
- watch: {
182
- collections() {
183
- setTimeout(() => {
184
- this.updateCarouselScroll();
185
- }, 0);
186
- },
187
- loading() {
188
- setTimeout(() => {
189
- this.updateCarouselScroll();
190
- }, 0);
191
- }
192
- },
193
- async mounted() {
194
- await this.$nextTick();
195
- const sliderRef = this.$refs.slider;
196
- if (!sliderRef) {
197
- return;
198
- }
199
- this.listElement = sliderRef.$el.querySelector(".agile__list");
200
- if (this.listElement) {
201
- this.listElement.addEventListener("scroll", this.updateCarouselScroll);
202
- }
203
- },
204
- beforeUnmount() {
205
- const sliderRef = this.$refs.slider;
206
- if (sliderRef) {
207
- sliderRef.destroy();
208
- }
209
- window.removeEventListener("scroll", this.updateCarouselScroll);
210
- },
211
- methods: {
212
- updateCarouselScroll() {
213
- if (this.listElement) {
214
- this.carouselScrollPosition = Number(this.listElement.scrollLeft.toFixed());
215
- const width = this.listElement.clientWidth;
216
- const scrollWidth = this.listElement.scrollWidth;
217
- const scrollLeft = this.carouselScrollPosition;
218
- this.scrollEnd = scrollWidth - width <= scrollLeft + 7;
172
+ const onCardClick = (event, id) => {
173
+ emit("openCollection", { event, id });
174
+ };
175
+ const scrollLeft = () => {
176
+ if (listElement.value) {
177
+ listElement.value.scrollBy({ left: -(cardWidth.value * 2), top: 0, behavior: "smooth" });
219
178
  }
220
- },
221
- onCardClick(event, id) {
222
- this.$emit("openCollection", { event, id });
223
- },
224
- scrollLeft() {
225
- if (this.listElement) {
226
- this.listElement.scrollBy({ left: -(this.cardWidth * 2), top: 0, behavior: "smooth" });
179
+ };
180
+ const scrollRight = () => {
181
+ if (listElement.value) {
182
+ listElement.value.scrollBy({ left: cardWidth.value * 2, top: 0, behavior: "smooth" });
227
183
  }
228
- },
229
- scrollRight() {
230
- if (this.listElement) {
231
- this.listElement.scrollBy({ left: this.cardWidth * 2, top: 0, behavior: "smooth" });
184
+ };
185
+ watch(
186
+ () => props.collections,
187
+ () => {
188
+ setTimeout(() => {
189
+ updateCarouselScroll();
190
+ }, 0);
232
191
  }
233
- }
192
+ );
193
+ watch(
194
+ () => props.loading,
195
+ () => {
196
+ setTimeout(() => {
197
+ updateCarouselScroll();
198
+ }, 0);
199
+ }
200
+ );
201
+ onMounted(async () => {
202
+ await nextTick();
203
+ if (!sliderRef.value) {
204
+ return;
205
+ }
206
+ listElement.value = sliderRef.value.$el.querySelector(".agile__list");
207
+ if (listElement.value) {
208
+ listElement.value.addEventListener("scroll", updateCarouselScroll);
209
+ }
210
+ });
211
+ onBeforeMount(() => {
212
+ if (sliderRef.value) {
213
+ sliderRef.value.destroy();
214
+ }
215
+ window.addEventListener("scroll", updateCarouselScroll);
216
+ });
217
+ return (_ctx, _cache) => {
218
+ const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
219
+ return withDirectives((openBlock(), createElementBlock("div", {
220
+ class: normalizeClass(_ctx.$style.container)
221
+ }, [
222
+ createVNode(unref(VueAgile), {
223
+ ref_key: "sliderRef",
224
+ ref: sliderRef,
225
+ dots: false,
226
+ "nav-buttons": false,
227
+ infinite: false,
228
+ "slides-to-show": 4,
229
+ onAfterChange: updateCarouselScroll
230
+ }, {
231
+ default: withCtx(() => [
232
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.loading ? 4 : 0, (n) => {
233
+ return openBlock(), createBlock(Card, {
234
+ key: `loading-${n}`,
235
+ loading: _ctx.loading
236
+ }, null, 8, ["loading"]);
237
+ }), 128)),
238
+ (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.loading ? [] : _ctx.collections, (collection) => {
239
+ return openBlock(), createBlock(TemplatesInfoCard, {
240
+ key: collection.id,
241
+ "data-test-id": "templates-info-card",
242
+ collection,
243
+ "show-item-count": _ctx.showItemCount,
244
+ width: _ctx.cardsWidth,
245
+ onClick: (e) => onCardClick(e, collection.id)
246
+ }, null, 8, ["collection", "show-item-count", "width", "onClick"]);
247
+ }), 128))
248
+ ]),
249
+ _: 1
250
+ }, 512),
251
+ withDirectives(createBaseVNode("button", {
252
+ class: normalizeClass({ [_ctx.$style.leftButton]: true }),
253
+ onClick: scrollLeft
254
+ }, [
255
+ createVNode(_component_font_awesome_icon, { icon: "chevron-left" })
256
+ ], 2), [
257
+ [vShow, _ctx.showNavigation && carouselScrollPosition.value > 0]
258
+ ]),
259
+ withDirectives(createBaseVNode("button", {
260
+ class: normalizeClass({ [_ctx.$style.rightButton]: true }),
261
+ onClick: scrollRight
262
+ }, [
263
+ createVNode(_component_font_awesome_icon, { icon: "chevron-right" })
264
+ ], 2), [
265
+ [vShow, _ctx.showNavigation && !scrollEnd.value]
266
+ ])
267
+ ], 2)), [
268
+ [vShow, _ctx.loading || _ctx.collections.length]
269
+ ]);
270
+ };
234
271
  }
235
272
  });
236
273
  const container = "_container_1lokv_1";
@@ -243,66 +280,10 @@ const style0$2 = {
243
280
  leftButton,
244
281
  rightButton
245
282
  };
246
- function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
247
- const _component_Card = resolveComponent("Card");
248
- const _component_TemplatesInfoCard = __unplugin_components_0$1;
249
- const _component_agile = resolveComponent("agile");
250
- const _component_font_awesome_icon = resolveComponent("font-awesome-icon");
251
- return withDirectives((openBlock(), createElementBlock("div", {
252
- class: normalizeClass(_ctx.$style.container)
253
- }, [
254
- createVNode(_component_agile, {
255
- ref: "slider",
256
- dots: false,
257
- "nav-buttons": false,
258
- infinite: false,
259
- "slides-to-show": 4,
260
- onAfterChange: _ctx.updateCarouselScroll
261
- }, {
262
- default: withCtx(() => [
263
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.loading ? 4 : 0, (n) => {
264
- return openBlock(), createBlock(_component_Card, {
265
- key: `loading-${n}`,
266
- loading: _ctx.loading
267
- }, null, 8, ["loading"]);
268
- }), 128)),
269
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.loading ? [] : _ctx.collections, (collection) => {
270
- return openBlock(), createBlock(_component_TemplatesInfoCard, {
271
- key: collection.id,
272
- "data-test-id": "templates-info-card",
273
- collection,
274
- "show-item-count": _ctx.showItemCount,
275
- width: _ctx.cardsWidth,
276
- onClick: (e) => _ctx.onCardClick(e, collection.id)
277
- }, null, 8, ["collection", "show-item-count", "width", "onClick"]);
278
- }), 128))
279
- ]),
280
- _: 1
281
- }, 8, ["onAfterChange"]),
282
- withDirectives(createBaseVNode("button", {
283
- class: normalizeClass({ [_ctx.$style.leftButton]: true }),
284
- onClick: _cache[0] || (_cache[0] = (...args) => _ctx.scrollLeft && _ctx.scrollLeft(...args))
285
- }, [
286
- createVNode(_component_font_awesome_icon, { icon: "chevron-left" })
287
- ], 2), [
288
- [vShow, _ctx.showNavigation && _ctx.carouselScrollPosition > 0]
289
- ]),
290
- withDirectives(createBaseVNode("button", {
291
- class: normalizeClass({ [_ctx.$style.rightButton]: true }),
292
- onClick: _cache[1] || (_cache[1] = (...args) => _ctx.scrollRight && _ctx.scrollRight(...args))
293
- }, [
294
- createVNode(_component_font_awesome_icon, { icon: "chevron-right" })
295
- ], 2), [
296
- [vShow, _ctx.showNavigation && !_ctx.scrollEnd]
297
- ])
298
- ], 2)), [
299
- [vShow, _ctx.loading || _ctx.collections.length]
300
- ]);
301
- }
302
283
  const cssModules$2 = {
303
284
  "$style": style0$2
304
285
  };
305
- const __unplugin_components_1 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__cssModules", cssModules$2]]);
286
+ const __unplugin_components_1 = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$2]]);
306
287
  const _sfc_main$1 = defineComponent({
307
288
  name: "TemplateFilters",
308
289
  props: {
@@ -1,6 +1,6 @@
1
- import { I as defineComponent, aM as useRouter, an as resolveComponent, J as openBlock, K as createElementBlock, a8 as createVNode, _ as normalizeClass, L as createBaseVNode, a7 as toDisplayString, U as createCommentVNode, Z as renderSlot } from "./vendor-DCtS1fjk.js";
2
- import { V as VIEWS } from "./index-DndFZfV8.js";
3
- import { _ as _export_sfc } from "./n8n-DS_nZ0wb.js";
1
+ import { I as defineComponent, aL as useRouter, an as resolveComponent, J as openBlock, K as createElementBlock, a8 as createVNode, _ as normalizeClass, L as createBaseVNode, a7 as toDisplayString, U as createCommentVNode, Z as renderSlot } from "./vendor-DCeaNtb_.js";
2
+ import { V as VIEWS } from "./index-BK9gQqb6.js";
3
+ import { _ as _export_sfc } from "./n8n-DLOq6Kd-.js";
4
4
  const _hoisted_1 = ["textContent"];
5
5
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
6
6
  __name: "GoBackButton",