n8n-editor-ui 1.101.0 → 1.102.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 (132) hide show
  1. package/dist/assets/{ActionDropdown-BujIG0Jq.js → ActionDropdown-D-JmCYsp.js} +2 -2
  2. package/dist/assets/{AnimatedSpinner-B5cpb6Fs.js → AnimatedSpinner-BiuDg2x2.js} +1 -1
  3. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BPigGQTI.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-Bp194Fz4.js} +1 -1
  4. package/dist/assets/{AuthView-BOTPYtpM.js → AuthView-DF-20OPE.js} +2 -2
  5. package/dist/assets/{ChangePasswordView-DbeC55bz.js → ChangePasswordView-DSn8-M1-.js} +3 -3
  6. package/dist/assets/CollectionParameter-Bz5DzZqs.js +4 -0
  7. package/dist/assets/{CredentialsView-DUh5K-2r.js → CredentialsView-IQx76pD4.js} +8 -8
  8. package/dist/assets/{DemoFooter-BXPfbNJE.js → DemoFooter-49OiW0k2.js} +8 -7
  9. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-CDDQIxv5.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-FNKd4r6R.js} +1 -1
  10. package/dist/assets/{EntityNotFound-CBUuOOYw.js → EntityNotFound-DScKsOtg.js} +1 -1
  11. package/dist/assets/{EntityUnAuthorised-7xgN3ECo.js → EntityUnAuthorised-DweZmhgI.js} +1 -1
  12. package/dist/assets/{ErrorView-BVfcsoOa.js → ErrorView-CNDVS4gm.js} +4 -4
  13. package/dist/assets/{EvaluationsRootView-BjrpKDj-.js → EvaluationsRootView-81SdPChp.js} +19 -27
  14. package/dist/assets/{EvaluationsView-DdmFZCH-.js → EvaluationsView-BAyQWPF9.js} +7 -7
  15. package/dist/assets/{ExecutionsTime-kMSlccIr.css → ExecutionsTime-DkME6I3E.css} +26 -19
  16. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-Ctx5Ybnr.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-Qw7S05EC.js} +23 -21
  17. package/dist/assets/{ExecutionsView-8BjGHy2I.js → ExecutionsView--yDyvnL8.js} +15 -16
  18. package/dist/assets/{ExecutionsView-DSsowKj4.css → ExecutionsView-BHBePl1_.css} +1 -1
  19. package/dist/assets/{FileSaver.min-C5wzcK59.js → FileSaver.min-CeGSkamF.js} +1 -1
  20. package/dist/assets/{FixedCollectionParameter-DjlaZyUQ.css → FixedCollectionParameter-CEzpjeQZ.css} +18 -18
  21. package/dist/assets/{FixedCollectionParameter-BrPQ5Vay.js → FixedCollectionParameter-tgbkzIuD.js} +7 -7
  22. package/dist/assets/{ForgotMyPasswordView-L0afefc1.js → ForgotMyPasswordView-CVwKac4K.js} +3 -3
  23. package/dist/assets/{InfoAccordion-CEk3XG5b.js → InfoAccordion-75IQV-_q.js} +1 -1
  24. package/dist/assets/{InsightsChartAverageRuntime-BrwBWr_R.js → InsightsChartAverageRuntime-C4C4zghF.js} +4 -4
  25. package/dist/assets/{InsightsChartFailed-ILKWvikG.js → InsightsChartFailed-DyhWE17m.js} +4 -4
  26. package/dist/assets/{InsightsChartFailureRate-D1AVYwU7.js → InsightsChartFailureRate-B09GcGvY.js} +4 -4
  27. package/dist/assets/{InsightsChartTimeSaved-D49Rwn6-.js → InsightsChartTimeSaved-DGzFyou3.js} +4 -4
  28. package/dist/assets/{InsightsChartTotal-Bs-pUgA3.js → InsightsChartTotal-fIUzF41H.js} +4 -4
  29. package/dist/assets/{InsightsDashboard-BIC4uZpW.js → InsightsDashboard-Qhv7fScv.js} +10 -10
  30. package/dist/assets/{InsightsPaywall-DmwFI-6e.js → InsightsPaywall-C3-la0kD.js} +1 -1
  31. package/dist/assets/{InsightsSummary-D9lEzWNT.js → InsightsSummary-CJgV5s0y.js} +14 -13
  32. package/dist/assets/{InsightsSummary-DzGQpM5h.css → InsightsSummary-DTFIhBF3.css} +25 -27
  33. package/dist/assets/InsightsTableWorkflows-P5OHXu1Y.js +177 -0
  34. package/dist/assets/{Logo-DNxOhbuV.js → Logo-8MWdHUz0.js} +1 -1
  35. package/dist/assets/{LogsPanel-DvWnD7rJ.js → LogsPanel-BabpRONg.js} +279 -212
  36. package/dist/assets/{LogsPanel-D5R6F35L.css → LogsPanel-Bvy4ANV7.css} +106 -61
  37. package/dist/assets/{MainHeader-BVHIuVVT.js → MainHeader-0ppftO6b.js} +10 -10
  38. package/dist/assets/{MainSidebar-CEHr93uL.js → MainSidebar-BnXOkYK4.js} +23 -16
  39. package/dist/assets/{MainSidebar-DqrgzqvZ.css → MainSidebar-CaLHZgDB.css} +2 -2
  40. package/dist/assets/{InsightsTableWorkflows-CC8t-sAL.js → N8nDataTableServer-Cx18Zd1O.js} +9 -181
  41. package/dist/assets/{NodeCreation-Bq5626Ha.js → NodeCreation-DKbc91uY.js} +7 -7
  42. package/dist/assets/{NodeCreator-Dk0sNXFZ.css → NodeCreator-DWE25utr.css} +51 -58
  43. package/dist/assets/{NodeCreator-D7xT3ogw.js → NodeCreator-xRYJHbTG.js} +118 -112
  44. package/dist/assets/NodeDetailsView-CPVE5S8P.js +1155 -0
  45. package/dist/assets/NodeDetailsView-CaTI-1QQ.css +668 -0
  46. package/dist/assets/NodeDetailsViewV2-5pxsZwAo.js +1061 -0
  47. package/dist/assets/NodeDetailsViewV2-BxNx4ZUM.css +506 -0
  48. package/dist/assets/{NodeView-DL8JxnMc.css → NodeView-Cgf2HuDk.css} +263 -110
  49. package/dist/assets/{NodeView-DoR46iB5.js → NodeView-DYjZmKNE.js} +580 -409
  50. package/dist/assets/{ProjectHeader-DSKKwiQ0.js → ProjectHeader-e8JosKaj.js} +5 -5
  51. package/dist/assets/{ProjectSettings-C3sMIDHh.js → ProjectSettings-DNKcVLkd.js} +201 -25
  52. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-cnANEo9o.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-EuKDPqQH.js} +3 -3
  53. package/dist/assets/{ResourcesListLayout-BVbjqFbc.js → ResourcesListLayout-C4y0iPmg.js} +4 -4
  54. package/dist/assets/{RunData-DG20AzLo.js → RunData-D3xzjO33.js} +124 -99
  55. package/dist/assets/{RunData-B5_okvCv.css → RunData-DuKNwYqe.css} +99 -85
  56. package/dist/assets/{RunDataJson-7okRLIES.js → RunDataJson-D5YFtOcJ.js} +16 -20
  57. package/dist/assets/{RunDataJsonActions-DrgwFS0W.css → RunDataJsonActions-B2jW3_UG.css} +3 -5
  58. package/dist/assets/{RunDataJsonActions-Qkg8HmUd.js → RunDataJsonActions-BWvs4coo.js} +15 -16
  59. package/dist/assets/{RunDataParsedAiContent-DRO1Bjsh.js → RunDataParsedAiContent-BYISiW-I.js} +12 -12
  60. package/dist/assets/{RunDataParsedAiContent-9EEUzCKp.css → RunDataParsedAiContent-wfIiKsq7.css} +16 -13
  61. package/dist/assets/{RunDataSearch-R6qtl0Jf.css → RunDataSearch-2eEalFoi.css} +8 -7
  62. package/dist/assets/{RunDataSearch-D5eQUWvi.js → RunDataSearch-oo3_BoLt.js} +4 -4
  63. package/dist/assets/{RunDataTable-CJmmTtEp.js → RunDataTable-6rCOQNCX.js} +126 -54
  64. package/dist/assets/{RunDataTable-CykHIwNT.css → RunDataTable-CTBtmQIs.css} +84 -44
  65. package/dist/assets/{SamlOnboarding-ClxYfm5z.js → SamlOnboarding-BG-gGcbY.js} +3 -3
  66. package/dist/assets/{SettingsApiView-Ds7FYVrN.js → SettingsApiView-Bmlbp7pD.js} +1 -1
  67. package/dist/assets/{SettingsCommunityNodesView-QKvLs6gi.js → SettingsCommunityNodesView-4DWd4UiC.js} +32 -6
  68. package/dist/assets/{SettingsExternalSecrets-d1KDgYYp.css → SettingsExternalSecrets-BAX9ENm9.css} +9 -6
  69. package/dist/assets/{SettingsExternalSecrets-DGRdvsMy.js → SettingsExternalSecrets-hpUcipWw.js} +17 -13
  70. package/dist/assets/{SettingsLdapView-C_LJwixk.js → SettingsLdapView-7p7L95v9.js} +1 -1
  71. package/dist/assets/{SettingsLogStreamingView-CaEJvgJ9.js → SettingsLogStreamingView-4CpWJqj_.js} +1 -1
  72. package/dist/assets/{SettingsPersonalView-DlwXaGDs.js → SettingsPersonalView-9iP06ihA.js} +11 -3
  73. package/dist/assets/{SettingsSourceControl-B6eULOfX.js → SettingsSourceControl-BGjWhqqJ.js} +5 -5
  74. package/dist/assets/{SettingsSso-5zcg-J4E.js → SettingsSso-ChOyD3kc.js} +1 -1
  75. package/dist/assets/{SettingsUsageAndPlan-CMBvYdjo.js → SettingsUsageAndPlan-jP8nn4Rh.js} +1 -1
  76. package/dist/assets/SettingsUsersView-BhfbqjxW.js +861 -0
  77. package/dist/assets/SettingsUsersView-BuZbf1jq.css +446 -0
  78. package/dist/assets/{SettingsView-Bawwm19P.css → SettingsView-4yzof_Pb.css} +4 -4
  79. package/dist/assets/{SettingsView-BuDKhqwZ.js → SettingsView-DTFEdRdj.js} +14 -14
  80. package/dist/assets/{SetupView-DSaQcQDF.js → SetupView-CXuAO6tx.js} +3 -3
  81. package/dist/assets/{SetupWorkflowCredentialsButton-BWISZAxq.js → SetupWorkflowCredentialsButton-Bj4rSqAV.js} +2 -2
  82. package/dist/assets/{SetupWorkflowFromTemplateView-CfDWCwoA.js → SetupWorkflowFromTemplateView-DG8Ml3A0.js} +8 -12
  83. package/dist/assets/{SigninView-BpjyswHb.js → SigninView-KmmptKWN.js} +7 -3
  84. package/dist/assets/{SignoutView-f_CoUl4S.js → SignoutView-8rAPEX_X.js} +1 -1
  85. package/dist/assets/{SignupView-q3f9g3P9.js → SignupView-ZYUP6f-Y.js} +3 -3
  86. package/dist/assets/{TableBase-DruQl-SO.js → TableBase-7XxrB0dw.js} +1 -1
  87. package/dist/assets/{Tags-DbmKHzWo.js → Tags-C8Jnw74N.js} +1 -1
  88. package/dist/assets/{TemplateDetails-DP_5pkzG.js → TemplateDetails-Bk1ixuRQ.js} +2 -2
  89. package/dist/assets/{TemplateList-y8Aumcsb.js → TemplateList-9SAC8OGn.js} +6 -3
  90. package/dist/assets/{TemplatesCollectionView-VdQpHtxs.js → TemplatesCollectionView-CLZDJ4HM.js} +6 -6
  91. package/dist/assets/{TemplatesSearchView-BUcYRVEK.js → TemplatesSearchView-DRzdGp3s.js} +8 -8
  92. package/dist/assets/{TemplatesView-4DUEEEtD.js → TemplatesView-V6ud-nM5.js} +3 -3
  93. package/dist/assets/{TemplatesWorkflowView--zUXMB8f.js → TemplatesWorkflowView-CLb4CuR2.js} +6 -6
  94. package/dist/assets/{NodeDetailsView-DB-5JPUD.js → TriggerPanel-BOC7PYsi.js} +498 -1415
  95. package/dist/assets/{NodeDetailsView-BaIj2qAa.css → TriggerPanel-DRpKKKun.css} +296 -903
  96. package/dist/assets/{VariablesView-DoWb0Vtv.js → VariablesView-BDzhSaxw.js} +6 -6
  97. package/dist/assets/{VariablesView-Kog_9PMT.css → VariablesView-Bh0OeH4s.css} +6 -6
  98. package/dist/assets/{WorkerView-D56d7XJA.js → WorkerView-C2A7cYkr.js} +9 -9
  99. package/dist/assets/{WorkflowActivator-CQxaDCfA.js → WorkflowActivator-BmIzNsA8.js} +8 -8
  100. package/dist/assets/{WorkflowActivator-BJPsIkXE.css → WorkflowActivator-DhLX6i1H.css} +2 -2
  101. package/dist/assets/{WorkflowExecutionsInfoAccordion-D9p_ZqmA.js → WorkflowExecutionsInfoAccordion-Cn4GRGO_.js} +6 -6
  102. package/dist/assets/{WorkflowExecutionsLandingPage-CymYth6K.js → WorkflowExecutionsLandingPage-s-dIgG6D.js} +3 -3
  103. package/dist/assets/{WorkflowExecutionsPreview-DRvf3WQC.js → WorkflowExecutionsPreview-BE7NfRAa.js} +12 -12
  104. package/dist/assets/{WorkflowExecutionsView-DxiIaUKV.js → WorkflowExecutionsView-DFmBdF-B.js} +16 -16
  105. package/dist/assets/{WorkflowHistory-DBPIq2u7.js → WorkflowHistory-3wO0nQYD.js} +4 -4
  106. package/dist/assets/{WorkflowOnboardingView-D4QKSetf.js → WorkflowOnboardingView-mBVE6x-i.js} +1 -1
  107. package/dist/assets/{WorkflowPreview-D3YRZjYi.js → WorkflowPreview-DlNMFCKn.js} +1 -1
  108. package/dist/assets/{WorkflowsView-ipf8KKwB.css → WorkflowsView-CyJbJBc8.css} +25 -21
  109. package/dist/assets/{WorkflowsView-DPADmBVd.js → WorkflowsView-DsAOuPT0.js} +77 -72
  110. package/dist/assets/{chartjs.utils-Cou_ISuU.js → chartjs.utils-BywXqBmg.js} +2 -2
  111. package/dist/assets/{en-DzZibgm_.js → en-CcKAtA8V.js} +45 -5
  112. package/dist/assets/{global-link-actions-olwfH36z.js → global-link-actions-BzAw9ZbO.js} +1 -1
  113. package/dist/assets/{import-curl-DD21H3kK.js → import-curl-1LWAxRTV.js} +1 -1
  114. package/dist/assets/{index-uJOu4Uio.js → index-B6A1nL2x.js} +1 -1
  115. package/dist/assets/{index-BzamKJpD.css → index-C66_v3sX.css} +1302 -1279
  116. package/dist/assets/{index-7S5ADieN.js → index-V0GOmfo8.js} +40721 -34933
  117. package/dist/assets/{pickBy-DPxZbMic.js → pickBy-CtRItcCT.js} +1 -1
  118. package/dist/assets/{templateActions-DJJfyIhq.js → templateActions-DpIzx0ws.js} +2 -2
  119. package/dist/assets/{useBeforeUnload-DveXGtGN.js → useBeforeUnload-B0EP7Q2i.js} +1 -1
  120. package/dist/assets/{useExecutionDebugging-DM4nhx6D.js → useExecutionDebugging-AwlOA2KI.js} +2 -1
  121. package/dist/assets/{useExecutionHelpers-BfF56crp.js → useExecutionHelpers-DvBwGIzz.js} +1 -1
  122. package/dist/assets/{useImportCurlCommand-BAgQhwtE.js → useImportCurlCommand-DIFC7Epr.js} +2 -2
  123. package/dist/assets/{useKeybindings-CV0VsjNP.js → useKeybindings-CduQ2pi5.js} +4 -4
  124. package/dist/assets/{useProjectPages-DgMGWOaO.js → useProjectPages-DmNmAOdq.js} +1 -1
  125. package/dist/assets/{usePushConnection-D8SE-itT.js → usePushConnection-Dyd5__87.js} +6 -12
  126. package/dist/assets/{useWorkflowActivate-BKz3N1SO.js → useWorkflowActivate-z9iwP6OY.js} +1 -1
  127. package/dist/index.html +2 -2
  128. package/package.json +1 -1
  129. package/vite.config.mts +2 -2
  130. package/dist/assets/CollectionParameter-CExdr4jd.js +0 -4
  131. package/dist/assets/SettingsUsersView-BL3TAhT8.js +0 -338
  132. package/dist/assets/SettingsUsersView-By12E2li.css +0 -143
@@ -1,4 +1,4 @@
1
- import { gV as require_arrayMap, gW as require_baseIteratee, gX as require_basePickBy, gY as require_getAllKeysIn, bQ as getDefaultExportFromCjs } from "./index-7S5ADieN.js";
1
+ import { g$ as require_arrayMap, h0 as require_baseIteratee, h1 as require_basePickBy, h2 as require_getAllKeysIn, bJ as getDefaultExportFromCjs } from "./index-V0GOmfo8.js";
2
2
  var pickBy_1;
3
3
  var hasRequiredPickBy;
4
4
  function requirePickBy() {
@@ -1,4 +1,4 @@
1
- import { fu as assert, fJ as doesNodeHaveCredentialsToFill, V as VIEWS, eI as tryToParseNumber, fK as getNewWorkflow, fL as replaceAllTemplateNodeCredentials, eJ as getNodesWithNormalizedPosition } from "./index-7S5ADieN.js";
1
+ import { fs as assert, fH as doesNodeHaveCredentialsToFill, V as VIEWS, eD as tryToParseNumber, fI as getNewWorkflow, fJ as replaceAllTemplateNodeCredentials, eE as getNodesWithNormalizedPosition } from "./index-V0GOmfo8.js";
2
2
  async function createWorkflowFromTemplate(opts) {
3
3
  const { credentialOverrides, nodeTypeProvider, rootStore, template, workflowsStore } = opts;
4
4
  const workflowData = await getNewWorkflow(rootStore.restApiContext, { name: template.name });
@@ -24,7 +24,7 @@ async function createWorkflowFromTemplate(opts) {
24
24
  }
25
25
  async function openTemplateCredentialSetup(opts) {
26
26
  const { router, templateId, inNewBrowserTab = false, telemetry, source } = opts;
27
- telemetry.track("User opened cred setup", { source }, { withPostHog: true });
27
+ telemetry.track("User opened cred setup", { source });
28
28
  const routeLocation = {
29
29
  name: VIEWS.TEMPLATE_SETUP,
30
30
  params: { id: templateId }
@@ -1,4 +1,4 @@
1
- import { S as useUIStore, ac as useCanvasStore, r as ref, x as computed, V as VIEWS, c as useI18n } from "./index-7S5ADieN.js";
1
+ import { T as useUIStore, ad as useCanvasStore, r as ref, x as computed, V as VIEWS, c as useI18n } from "./index-V0GOmfo8.js";
2
2
  function useBeforeUnload({ route }) {
3
3
  const uiStore = useUIStore();
4
4
  const canvasStore = useCanvasStore();
@@ -1,4 +1,4 @@
1
- import { b as useRouter, a as useToast, a3 as useWorkflowsStore, v as useSettingsStore, S as useUIStore, ak as usePageRedirectionHelper, x as computed, ao as EnterpriseEditionFeature, c as useI18n, eX as DEBUG_PAYWALL_MODAL_KEY, aJ as h, e9 as sanitizeHtml, az as useMessage, aA as MODAL_CONFIRM, V as VIEWS, ax as useTelemetry, ab as useRootStore, eY as isFullExecutionResponse } from "./index-7S5ADieN.js";
1
+ import { b as useRouter, a as useToast, a4 as useWorkflowsStore, v as useSettingsStore, T as useUIStore, al as usePageRedirectionHelper, x as computed, ap as EnterpriseEditionFeature, c as useI18n, eR as DEBUG_PAYWALL_MODAL_KEY, aK as h, e4 as sanitizeHtml, aA as useMessage, aB as MODAL_CONFIRM, V as VIEWS, ay as useTelemetry, ac as useRootStore, eS as isFullExecutionResponse } from "./index-V0GOmfo8.js";
2
2
  const useExecutionDebugging = () => {
3
3
  const telemetry = useTelemetry();
4
4
  const router = useRouter();
@@ -62,6 +62,7 @@ const useExecutionDebugging = () => {
62
62
  return;
63
63
  }
64
64
  }
65
+ workflowsStore.resetAllNodesIssues();
65
66
  workflowsStore.setWorkflowExecutionData(execution);
66
67
  const pinnableNodes = workflowNodes.filter(
67
68
  (node) => !workflow.getParentNodes(node.name).length
@@ -1,4 +1,4 @@
1
- import { b as useRouter, V as VIEWS, ax as useTelemetry, gK as convertToDisplayDate, c as useI18n } from "./index-7S5ADieN.js";
1
+ import { b as useRouter, V as VIEWS, ay as useTelemetry, gM as convertToDisplayDate, c as useI18n } from "./index-V0GOmfo8.js";
2
2
  function useExecutionHelpers() {
3
3
  const i18n = useI18n();
4
4
  const router = useRouter();
@@ -1,6 +1,6 @@
1
- import { hH as require$$0, bQ as getDefaultExportFromCjs, a as useToast, m as unref, fu as assert, hI as CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS, hJ as CURL_IMPORT_NODES_PROTOCOLS, c as useI18n, dl as get } from "./index-7S5ADieN.js";
1
+ import { hK as require$$0, bJ as getDefaultExportFromCjs, a as useToast, l as unref, fs as assert, hL as CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS, hM as CURL_IMPORT_NODES_PROTOCOLS, c as useI18n, bq as get } from "./index-V0GOmfo8.js";
2
2
  import { c as commonjsRequire } from "./_commonjs-dynamic-modules-TGKdzP3c.js";
3
- import { i as importCurlEventBus } from "./import-curl-DD21H3kK.js";
3
+ import { i as importCurlEventBus } from "./import-curl-1LWAxRTV.js";
4
4
  class CCError extends Error {
5
5
  }
6
6
  const UTF8encoder = new TextEncoder();
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, e as createBlock, g as openBlock, dW as Transition, w as withCtx, aT as withDirectives, aU as vShow, k as createBaseVNode, n as normalizeClass, _ as _export_sfc, P as createEventBus, b_ as inject, c9 as PiPWindowSymbol, cq as useActiveElement, d_ as useDeviceSupport, x as computed, m as unref, eO as useEventListener } from "./index-7S5ADieN.js";
1
+ import { d as defineComponent, e as createBlock, g as openBlock, dQ as Transition, w as withCtx, aU as withDirectives, aV as vShow, j as createBaseVNode, n as normalizeClass, _ as _export_sfc, Q as createEventBus, bU as inject, r as ref, c3 as PiPWindowSymbol, cl as useActiveElement, dV as useDeviceSupport, x as computed, cX as toValue, eJ as useEventListener } from "./index-V0GOmfo8.js";
2
2
  const _sfc_main = /* @__PURE__ */ defineComponent({
3
3
  __name: "BlockUi",
4
4
  props: {
@@ -34,10 +34,10 @@ const cssModules = {
34
34
  const N8nBlockUi = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-76a59b58"]]);
35
35
  const canvasEventBus = createEventBus();
36
36
  const useKeybindings = (keymap, options) => {
37
- const pipWindow = inject(PiPWindowSymbol);
37
+ const pipWindow = inject(PiPWindowSymbol, ref());
38
38
  const activeElement = useActiveElement({ window: pipWindow?.value });
39
39
  const { isCtrlKeyPressed } = useDeviceSupport();
40
- const isDisabled = computed(() => unref(options?.disabled));
40
+ const isDisabled = computed(() => toValue(options?.disabled));
41
41
  const ignoreKeyPresses = computed(() => {
42
42
  if (!activeElement.value) return false;
43
43
  const active = activeElement.value;
@@ -48,7 +48,7 @@ const useKeybindings = (keymap, options) => {
48
48
  });
49
49
  const normalizedKeymap = computed(
50
50
  () => Object.fromEntries(
51
- Object.entries(keymap.value).flatMap(([shortcut, handler]) => {
51
+ Object.entries(toValue(keymap)).flatMap(([shortcut, handler]) => {
52
52
  const shortcuts = shortcut.split("|");
53
53
  return shortcuts.map((s) => [normalizeShortcutString(s), handler]);
54
54
  })
@@ -1,4 +1,4 @@
1
- import { a4 as useRoute, x as computed, V as VIEWS, ep as reactive } from "./index-7S5ADieN.js";
1
+ import { a5 as useRoute, x as computed, V as VIEWS, ek as reactive } from "./index-V0GOmfo8.js";
2
2
  const useProjectPages = () => {
3
3
  const route = useRoute();
4
4
  const isOverviewSubPage = computed(
@@ -1,5 +1,5 @@
1
- import { f_ as makeRestApiRequest, a3 as useWorkflowsStore, S as useUIStore, f$ as clearPopupWindowState, eG as getEasyAiWorkflowJson, ax as useTelemetry, ci as parse, g0 as hasTrimmedItem, v as useSettingsStore, ai as useWorkflowSaving, aj as useWorkflowHelpers, aB as WORKFLOW_SETTINGS_MODAL_KEY, a as useToast, g1 as generateNodesGraph, c as useI18n, g2 as getExecutionErrorToastConfiguration, bN as useNodeTypesStore, e8 as getTriggerNodeServiceName, bI as useNodeHelpers, g3 as hasTrimmedData, bf as useExternalHooks, g4 as codeNodeEditorEventBus, ez as EVALUATION_TRIGGER_NODE_TYPE, bJ as useRunWorkflow, g5 as getExecutionErrorMessage, dh as useCredentialsStore, g6 as useAssistantStore, g7 as useSchemaPreviewStore, c$ as isCommunityPackageName, a1 as defineStore, ab as useRootStore, a2 as usePushConnectionStore, r as ref } from "./index-7S5ADieN.js";
2
- import { g as globalLinkActionsEventBus } from "./global-link-actions-olwfH36z.js";
1
+ import { fY as makeRestApiRequest, a4 as useWorkflowsStore, T as useUIStore, fZ as clearPopupWindowState, eB as getEasyAiWorkflowJson, ay as useTelemetry, cc as parse, f_ as hasTrimmedItem, v as useSettingsStore, aj as useWorkflowSaving, ak as useWorkflowHelpers, aC as WORKFLOW_SETTINGS_MODAL_KEY, a as useToast, f$ as generateNodesGraph, c as useI18n, g0 as getExecutionErrorToastConfiguration, bG as useNodeTypesStore, e3 as getTriggerNodeServiceName, bB as useNodeHelpers, g1 as hasTrimmedData, bf as useExternalHooks, g2 as codeNodeEditorEventBus, eu as EVALUATION_TRIGGER_NODE_TYPE, bC as useRunWorkflow, g3 as getExecutionErrorMessage, de as useCredentialsStore, g4 as useAssistantStore, g5 as useSchemaPreviewStore, cY as isCommunityPackageName, a2 as defineStore, ac as useRootStore, a3 as usePushConnectionStore, r as ref } from "./index-V0GOmfo8.js";
2
+ import { g as globalLinkActionsEventBus } from "./global-link-actions-BzAw9ZbO.js";
3
3
  var GET_STATUS_ENDPOINT = "/orchestration/worker/status";
4
4
  var sendGetWorkerStatus = async (context) => {
5
5
  await makeRestApiRequest(context, "POST", GET_STATUS_ENDPOINT);
@@ -18,13 +18,9 @@ async function executionFinished({ data }, options) {
18
18
  const easyAiWorkflowJson = getEasyAiWorkflowJson();
19
19
  const isEasyAIWorkflow = workflow.meta.templateId === easyAiWorkflowJson.meta.templateId;
20
20
  if (isEasyAIWorkflow) {
21
- telemetry.track(
22
- "User executed test AI workflow",
23
- {
24
- status: data.status
25
- },
26
- { withPostHog: true }
27
- );
21
+ telemetry.track("User executed test AI workflow", {
22
+ status: data.status
23
+ });
28
24
  }
29
25
  }
30
26
  uiStore.setProcessingExecutionResults(true);
@@ -194,9 +190,7 @@ function handleExecutionFinishedWithErrorOrCanceled(execution, runExecutionData)
194
190
  eventData.resource = node.parameters.resource;
195
191
  }
196
192
  }
197
- telemetry.track("Instance FE emitted paired item error", eventData, {
198
- withPostHog: true
199
- });
193
+ telemetry.track("Instance FE emitted paired item error", eventData);
200
194
  });
201
195
  }
202
196
  if (execution.status === "canceled") {
@@ -1,4 +1,4 @@
1
- import { r as ref, b as useRouter, aj as useWorkflowHelpers, ai as useWorkflowSaving, a3 as useWorkflowsStore, S as useUIStore, a as useToast, ag as useNpsSurveyStore, a5 as PLACEHOLDER_EMPTY_WORKFLOW_ID, ax as useTelemetry, bf as useExternalHooks, c as useI18n, b6 as useStorage, gd as LOCAL_STORAGE_ACTIVATION_FLAG, ge as WORKFLOW_ACTIVE_MODAL_KEY } from "./index-7S5ADieN.js";
1
+ import { r as ref, b as useRouter, ak as useWorkflowHelpers, aj as useWorkflowSaving, a4 as useWorkflowsStore, T as useUIStore, a as useToast, ah as useNpsSurveyStore, a6 as PLACEHOLDER_EMPTY_WORKFLOW_ID, ay as useTelemetry, bf as useExternalHooks, c as useI18n, b6 as useStorage, gc as LOCAL_STORAGE_ACTIVATION_FLAG, gd as WORKFLOW_ACTIVE_MODAL_KEY } from "./index-V0GOmfo8.js";
2
2
  function useWorkflowActivate() {
3
3
  const updatingWorkflowActivation = ref(false);
4
4
  const router = useRouter();
package/dist/index.html CHANGED
@@ -16,8 +16,8 @@
16
16
  <script>!function(t,e){var o,n,p,r;e.__SV||(window.posthog=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="posthog",u.people=u.people||[],u.toString=function(t){var e="posthog";return"posthog"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="capture identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled getFeatureFlag onFeatureFlags reloadFeatureFlags".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.posthog||[])</script>
17
17
 
18
18
  <title>n8n.io - Workflow Automation</title>
19
- <script type="module" crossorigin src="/{{BASE_PATH}}/assets/index-7S5ADieN.js"></script>
20
- <link rel="stylesheet" crossorigin href="/{{BASE_PATH}}/assets/index-BzamKJpD.css">
19
+ <script type="module" crossorigin src="/{{BASE_PATH}}/assets/index-V0GOmfo8.js"></script>
20
+ <link rel="stylesheet" crossorigin href="/{{BASE_PATH}}/assets/index-C66_v3sX.css">
21
21
  </head>
22
22
  <body>
23
23
  <noscript>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-editor-ui",
3
- "version": "1.101.0",
3
+ "version": "1.102.0",
4
4
  "description": "Workflow Editor UI for n8n",
5
5
  "main": "index.js",
6
6
  "type": "module",
package/vite.config.mts CHANGED
@@ -78,7 +78,7 @@ const plugins = [
78
78
  return { name: componentName, from: '@n8n/design-system' };
79
79
  },
80
80
  iconsResolver({
81
- prefix: 'icon',
81
+ prefix: 'Icon',
82
82
  }),
83
83
  ],
84
84
  }),
@@ -131,7 +131,7 @@ export default mergeConfig(
131
131
  plugins,
132
132
  resolve: { alias },
133
133
  base: publicPath,
134
- envPrefix: 'VUE_APP',
134
+ envPrefix: 'VUE',
135
135
  css: {
136
136
  preprocessorOptions: {
137
137
  scss: {
@@ -1,4 +0,0 @@
1
- import { hG as _sfc_main } from "./index-7S5ADieN.js";
2
- export {
3
- _sfc_main as default
4
- };
@@ -1,338 +0,0 @@
1
- import { d as defineComponent, c8 as useClipboard, a as useToast, v as useSettingsStore, S as useUIStore, u as useUsersStore, f0 as useSSOStore, ah as useDocumentTitle, ak as usePageRedirectionHelper, x as computed, an as hasPermission, o as onMounted, c as useI18n, ao as EnterpriseEditionFeature, f9 as ROLE, h as resolveComponent, i as createElementBlock, g as openBlock, k as createBaseVNode, f as createCommentVNode, e as createBlock, j as createVNode, w as withCtx, l as createTextVNode, t as toDisplayString, m as unref, N as N8nHeading, n as normalizeClass, q as N8nButton, Z as N8nTooltip, f2 as N8nActionBox, a0 as N8nLink, dG as N8nNotice, fd as N8nSelect, F as Fragment, y as renderList, fe as _sfc_main$1, fi as N8nUsersList, fj as INVITE_USER_MODAL_KEY, _ as _export_sfc } from "./index-7S5ADieN.js";
2
- const _sfc_main = /* @__PURE__ */ defineComponent({
3
- __name: "SettingsUsersView",
4
- setup(__props) {
5
- const clipboard = useClipboard();
6
- const { showToast, showError } = useToast();
7
- const settingsStore = useSettingsStore();
8
- const uiStore = useUIStore();
9
- const usersStore = useUsersStore();
10
- const ssoStore = useSSOStore();
11
- const documentTitle = useDocumentTitle();
12
- const pageRedirectionHelper = usePageRedirectionHelper();
13
- const i18n = useI18n();
14
- const showUMSetupWarning = computed(() => {
15
- return hasPermission(["defaultUser"]);
16
- });
17
- const allUsers = computed(() => usersStore.allUsers);
18
- onMounted(async () => {
19
- documentTitle.set(i18n.baseText("settings.users"));
20
- if (!showUMSetupWarning.value) {
21
- await usersStore.fetchUsers();
22
- }
23
- });
24
- const usersListActions = computed(() => {
25
- return [
26
- {
27
- label: i18n.baseText("settings.users.actions.copyInviteLink"),
28
- value: "copyInviteLink",
29
- guard: (user) => usersStore.usersLimitNotReached && !user.firstName && !!user.inviteAcceptUrl
30
- },
31
- {
32
- label: i18n.baseText("settings.users.actions.reinvite"),
33
- value: "reinvite",
34
- guard: (user) => usersStore.usersLimitNotReached && !user.firstName && settingsStore.isSmtpSetup
35
- },
36
- {
37
- label: i18n.baseText("settings.users.actions.delete"),
38
- value: "delete",
39
- guard: (user) => hasPermission(["rbac"], { rbac: { scope: "user:delete" } }) && user.id !== usersStore.currentUserId
40
- },
41
- {
42
- label: i18n.baseText("settings.users.actions.copyPasswordResetLink"),
43
- value: "copyPasswordResetLink",
44
- guard: (user) => hasPermission(["rbac"], { rbac: { scope: "user:resetPassword" } }) && usersStore.usersLimitNotReached && !user.isPendingUser && user.id !== usersStore.currentUserId
45
- },
46
- {
47
- label: i18n.baseText("settings.users.actions.allowSSOManualLogin"),
48
- value: "allowSSOManualLogin",
49
- guard: (user) => !!ssoStore.isSamlLoginEnabled && !user.settings?.allowSSOManualLogin
50
- },
51
- {
52
- label: i18n.baseText("settings.users.actions.disallowSSOManualLogin"),
53
- value: "disallowSSOManualLogin",
54
- guard: (user) => !!ssoStore.isSamlLoginEnabled && user.settings?.allowSSOManualLogin === true
55
- }
56
- ];
57
- });
58
- const isAdvancedPermissionsEnabled = computed(() => {
59
- return settingsStore.isEnterpriseFeatureEnabled[EnterpriseEditionFeature.AdvancedPermissions];
60
- });
61
- const userRoles = computed(() => {
62
- return [
63
- {
64
- value: ROLE.Member,
65
- label: i18n.baseText("auth.roles.member")
66
- },
67
- {
68
- value: ROLE.Admin,
69
- label: i18n.baseText("auth.roles.admin"),
70
- disabled: !isAdvancedPermissionsEnabled.value
71
- }
72
- ];
73
- });
74
- const canUpdateRole = computed(() => {
75
- return hasPermission(["rbac"], { rbac: { scope: ["user:update", "user:changeRole"] } });
76
- });
77
- async function onUsersListAction({ action, userId }) {
78
- switch (action) {
79
- case "delete":
80
- await onDelete(userId);
81
- break;
82
- case "reinvite":
83
- await onReinvite(userId);
84
- break;
85
- case "copyInviteLink":
86
- await onCopyInviteLink(userId);
87
- break;
88
- case "copyPasswordResetLink":
89
- await onCopyPasswordResetLink(userId);
90
- break;
91
- case "allowSSOManualLogin":
92
- await onAllowSSOManualLogin(userId);
93
- break;
94
- case "disallowSSOManualLogin":
95
- await onDisallowSSOManualLogin(userId);
96
- break;
97
- }
98
- }
99
- function onInvite() {
100
- uiStore.openModal(INVITE_USER_MODAL_KEY);
101
- }
102
- async function onDelete(userId) {
103
- const user = usersStore.usersById[userId];
104
- if (user) {
105
- uiStore.openDeleteUserModal(userId);
106
- }
107
- }
108
- async function onReinvite(userId) {
109
- const user = usersStore.usersById[userId];
110
- if (user?.email && user?.role) {
111
- if (!["global:admin", "global:member"].includes(user.role)) {
112
- throw new Error("Invalid role name on reinvite");
113
- }
114
- try {
115
- await usersStore.reinviteUser({
116
- email: user.email,
117
- role: user.role
118
- });
119
- showToast({
120
- type: "success",
121
- title: i18n.baseText("settings.users.inviteResent"),
122
- message: i18n.baseText("settings.users.emailSentTo", {
123
- interpolate: { email: user.email ?? "" }
124
- })
125
- });
126
- } catch (e) {
127
- showError(e, i18n.baseText("settings.users.userReinviteError"));
128
- }
129
- }
130
- }
131
- async function onCopyInviteLink(userId) {
132
- const user = usersStore.usersById[userId];
133
- if (user?.inviteAcceptUrl) {
134
- void clipboard.copy(user.inviteAcceptUrl);
135
- showToast({
136
- type: "success",
137
- title: i18n.baseText("settings.users.inviteUrlCreated"),
138
- message: i18n.baseText("settings.users.inviteUrlCreated.message")
139
- });
140
- }
141
- }
142
- async function onCopyPasswordResetLink(userId) {
143
- const user = usersStore.usersById[userId];
144
- if (user) {
145
- const url = await usersStore.getUserPasswordResetLink(user);
146
- void clipboard.copy(url.link);
147
- showToast({
148
- type: "success",
149
- title: i18n.baseText("settings.users.passwordResetUrlCreated"),
150
- message: i18n.baseText("settings.users.passwordResetUrlCreated.message")
151
- });
152
- }
153
- }
154
- async function onAllowSSOManualLogin(userId) {
155
- const user = usersStore.usersById[userId];
156
- if (user) {
157
- if (!user.settings) {
158
- user.settings = {};
159
- }
160
- user.settings.allowSSOManualLogin = true;
161
- await usersStore.updateOtherUserSettings(userId, user.settings);
162
- showToast({
163
- type: "success",
164
- title: i18n.baseText("settings.users.allowSSOManualLogin"),
165
- message: i18n.baseText("settings.users.allowSSOManualLogin.message")
166
- });
167
- }
168
- }
169
- async function onDisallowSSOManualLogin(userId) {
170
- const user = usersStore.usersById[userId];
171
- if (user?.settings) {
172
- user.settings.allowSSOManualLogin = false;
173
- await usersStore.updateOtherUserSettings(userId, user.settings);
174
- showToast({
175
- type: "success",
176
- title: i18n.baseText("settings.users.disallowSSOManualLogin"),
177
- message: i18n.baseText("settings.users.disallowSSOManualLogin.message")
178
- });
179
- }
180
- }
181
- function goToUpgrade() {
182
- void pageRedirectionHelper.goToUpgrade("settings-users", "upgrade-users");
183
- }
184
- function goToUpgradeAdvancedPermissions() {
185
- void pageRedirectionHelper.goToUpgrade("settings-users", "upgrade-advanced-permissions");
186
- }
187
- async function onRoleChange(user, newRoleName) {
188
- try {
189
- await usersStore.updateGlobalRole({ id: user.id, newRoleName });
190
- const role = userRoles.value.find(({ value }) => value === newRoleName)?.label || newRoleName;
191
- showToast({
192
- type: "success",
193
- title: i18n.baseText("settings.users.userRoleUpdated"),
194
- message: i18n.baseText("settings.users.userRoleUpdated.message", {
195
- interpolate: {
196
- user: user.fullName ?? "",
197
- role
198
- }
199
- })
200
- });
201
- } catch (e) {
202
- showError(e, i18n.baseText("settings.users.userReinviteError"));
203
- }
204
- }
205
- return (_ctx, _cache) => {
206
- const _component_n8n_heading = N8nHeading;
207
- const _component_n8n_button = N8nButton;
208
- const _component_n8n_tooltip = N8nTooltip;
209
- const _component_n8n_action_box = N8nActionBox;
210
- const _component_n8n_link = N8nLink;
211
- const _component_i18n_t = resolveComponent("i18n-t");
212
- const _component_n8n_notice = N8nNotice;
213
- const _component_n8n_option = _sfc_main$1;
214
- const _component_n8n_select = N8nSelect;
215
- const _component_n8n_users_list = N8nUsersList;
216
- return openBlock(), createElementBlock("div", {
217
- class: normalizeClass(_ctx.$style.container)
218
- }, [
219
- createBaseVNode("div", null, [
220
- createVNode(_component_n8n_heading, { size: "2xlarge" }, {
221
- default: withCtx(() => [
222
- createTextVNode(toDisplayString(unref(i18n).baseText("settings.users")), 1)
223
- ]),
224
- _: 1
225
- }),
226
- !showUMSetupWarning.value ? (openBlock(), createElementBlock("div", {
227
- key: 0,
228
- class: normalizeClass(_ctx.$style.buttonContainer)
229
- }, [
230
- createVNode(_component_n8n_tooltip, {
231
- disabled: !unref(ssoStore).isSamlLoginEnabled
232
- }, {
233
- content: withCtx(() => [
234
- createBaseVNode("span", null, toDisplayString(unref(i18n).baseText("settings.users.invite.tooltip")), 1)
235
- ]),
236
- default: withCtx(() => [
237
- createBaseVNode("div", null, [
238
- createVNode(_component_n8n_button, {
239
- disabled: unref(ssoStore).isSamlLoginEnabled || !unref(usersStore).usersLimitNotReached,
240
- label: unref(i18n).baseText("settings.users.invite"),
241
- size: "large",
242
- "data-test-id": "settings-users-invite-button",
243
- onClick: onInvite
244
- }, null, 8, ["disabled", "label"])
245
- ])
246
- ]),
247
- _: 1
248
- }, 8, ["disabled"])
249
- ], 2)) : createCommentVNode("", true)
250
- ]),
251
- !unref(usersStore).usersLimitNotReached ? (openBlock(), createElementBlock("div", {
252
- key: 0,
253
- class: normalizeClass(_ctx.$style.setupInfoContainer)
254
- }, [
255
- createVNode(_component_n8n_action_box, {
256
- heading: unref(i18n).baseText(unref(uiStore).contextBasedTranslationKeys.users.settings.unavailable.title),
257
- description: unref(i18n).baseText(unref(uiStore).contextBasedTranslationKeys.users.settings.unavailable.description),
258
- "button-text": unref(i18n).baseText(unref(uiStore).contextBasedTranslationKeys.users.settings.unavailable.button),
259
- "onClick:button": goToUpgrade
260
- }, null, 8, ["heading", "description", "button-text"])
261
- ], 2)) : createCommentVNode("", true),
262
- !isAdvancedPermissionsEnabled.value ? (openBlock(), createBlock(_component_n8n_notice, { key: 1 }, {
263
- default: withCtx(() => [
264
- createVNode(_component_i18n_t, { keypath: "settings.users.advancedPermissions.warning" }, {
265
- link: withCtx(() => [
266
- createVNode(_component_n8n_link, {
267
- size: "small",
268
- onClick: goToUpgradeAdvancedPermissions
269
- }, {
270
- default: withCtx(() => [
271
- createTextVNode(toDisplayString(unref(i18n).baseText("settings.users.advancedPermissions.warning.link")), 1)
272
- ]),
273
- _: 1
274
- })
275
- ]),
276
- _: 1
277
- })
278
- ]),
279
- _: 1
280
- })) : createCommentVNode("", true),
281
- unref(usersStore).usersLimitNotReached || allUsers.value.length > 1 ? (openBlock(), createElementBlock("div", {
282
- key: 2,
283
- class: normalizeClass(_ctx.$style.usersContainer)
284
- }, [
285
- createVNode(_component_n8n_users_list, {
286
- actions: usersListActions.value,
287
- users: allUsers.value,
288
- "current-user-id": unref(usersStore).currentUserId,
289
- "is-saml-login-enabled": unref(ssoStore).isSamlLoginEnabled,
290
- onAction: onUsersListAction
291
- }, {
292
- actions: withCtx(({ user }) => [
293
- user.id !== unref(usersStore).currentUserId ? (openBlock(), createBlock(_component_n8n_select, {
294
- key: 0,
295
- "model-value": user?.role || "global:member",
296
- disabled: !canUpdateRole.value,
297
- "data-test-id": "user-role-select",
298
- "onUpdate:modelValue": ($event) => onRoleChange(user, $event)
299
- }, {
300
- default: withCtx(() => [
301
- (openBlock(true), createElementBlock(Fragment, null, renderList(userRoles.value, (role) => {
302
- return openBlock(), createBlock(_component_n8n_option, {
303
- key: role.value,
304
- value: role.value,
305
- label: role.label,
306
- disabled: role.disabled
307
- }, null, 8, ["value", "label", "disabled"]);
308
- }), 128))
309
- ]),
310
- _: 2
311
- }, 1032, ["model-value", "disabled", "onUpdate:modelValue"])) : createCommentVNode("", true)
312
- ]),
313
- _: 1
314
- }, 8, ["actions", "users", "current-user-id", "is-saml-login-enabled"])
315
- ], 2)) : createCommentVNode("", true)
316
- ], 2);
317
- };
318
- }
319
- });
320
- const container = "_container_14n6l_123";
321
- const usersContainer = "_usersContainer_14n6l_131";
322
- const buttonContainer = "_buttonContainer_14n6l_135";
323
- const setupInfoContainer = "_setupInfoContainer_14n6l_141";
324
- const alert = "_alert_14n6l_145";
325
- const style0 = {
326
- container,
327
- usersContainer,
328
- buttonContainer,
329
- setupInfoContainer,
330
- alert
331
- };
332
- const cssModules = {
333
- "$style": style0
334
- };
335
- const SettingsUsersView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
336
- export {
337
- SettingsUsersView as default
338
- };