n8n-editor-ui 1.102.1 → 1.103.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 (115) hide show
  1. package/dist/assets/{ActionDropdown-DetvHLId.js → ActionDropdown-oe2q-18e.js} +1 -1
  2. package/dist/assets/{AnimatedSpinner-lwwhfXuL.js → AnimatedSpinner-DNQK2Lvb.js} +1 -1
  3. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DlzKPHS6.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CTPMm7Da.js} +1 -1
  4. package/dist/assets/{AuthView-BmqsofpQ.js → AuthView-BLYDBurX.js} +2 -2
  5. package/dist/assets/{ChangePasswordView-CEt62_Gv.js → ChangePasswordView-D_oe3bys.js} +3 -3
  6. package/dist/assets/CollectionParameter-DMWMZwmI.js +4 -0
  7. package/dist/assets/{CredentialsView-Bs2oX53O.js → CredentialsView-yjXzQeha.js} +8 -8
  8. package/dist/assets/{DemoFooter-18cq3Mkx.js → DemoFooter-CLoho_f5.js} +8 -8
  9. package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-D3Qc6hK_.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-Dtt1q_gN.js} +1 -1
  10. package/dist/assets/{EntityNotFound-CoNGRWzZ.js → EntityNotFound-DKLj80gn.js} +1 -1
  11. package/dist/assets/{EntityUnAuthorised-S2HP1uhI.js → EntityUnAuthorised-BUd46dmn.js} +1 -1
  12. package/dist/assets/{ErrorView-ZWxrafSr.js → ErrorView-DOjK08aR.js} +1 -1
  13. package/dist/assets/{EvaluationsRootView-KNlw9RSA.js → EvaluationsRootView-Cms0XlYE.js} +1 -1
  14. package/dist/assets/{EvaluationsView-Bhe1hdR_.js → EvaluationsView-X9pjkssi.js} +3 -3
  15. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-C9Aay_8V.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-CQDOSq4d.js} +3 -6
  16. package/dist/assets/{ExecutionsView-yA3EAMaK.js → ExecutionsView-NLnln1YQ.js} +9 -9
  17. package/dist/assets/{FileSaver.min-cXi1Jtg0.js → FileSaver.min-BoHgd5iv.js} +1 -1
  18. package/dist/assets/{FixedCollectionParameter-DwYO2YZG.js → FixedCollectionParameter-BfKt_vOb.js} +1 -1
  19. package/dist/assets/{ForgotMyPasswordView-JoaR_ImM.js → ForgotMyPasswordView-OP-Zoaqi.js} +3 -3
  20. package/dist/assets/{InfoAccordion-CUj8VOSA.js → InfoAccordion-KgxR9XUm.js} +1 -1
  21. package/dist/assets/{InsightsChartAverageRuntime-fBD9kuRy.js → InsightsChartAverageRuntime-COSI3_o5.js} +4 -4
  22. package/dist/assets/{InsightsChartFailed-D0eryqz1.js → InsightsChartFailed-zPbPiVrK.js} +4 -4
  23. package/dist/assets/{InsightsChartFailureRate-DAKtR-Yn.js → InsightsChartFailureRate-BijFuiun.js} +4 -4
  24. package/dist/assets/{InsightsChartTimeSaved-D2bBxw3K.js → InsightsChartTimeSaved-QPkPrxuo.js} +4 -4
  25. package/dist/assets/{InsightsChartTotal-tNs5G6Pv.js → InsightsChartTotal-CAIfpPOZ.js} +4 -4
  26. package/dist/assets/{InsightsDashboard-DcqsEyj1.js → InsightsDashboard-D8_DXUIT.js} +10 -10
  27. package/dist/assets/{InsightsPaywall-CAnTbdTD.js → InsightsPaywall-BlFkYC7C.js} +1 -1
  28. package/dist/assets/{InsightsSummary-BLEU9OjR.js → InsightsSummary-DT-p4HNY.js} +1 -1
  29. package/dist/assets/{InsightsTableWorkflows-DXzDy1iG.js → InsightsTableWorkflows-CN4YWTtH.js} +6 -7
  30. package/dist/assets/{InsightsTableWorkflows-DJhX6bQW.css → InsightsTableWorkflows-RGpSnp7n.css} +3 -3
  31. package/dist/assets/{Logo-t6uGCxmL.js → Logo-BhBstNGh.js} +1 -1
  32. package/dist/assets/{LogsPanel-rZ53LX8m.js → LogsPanel-Ceg5ubnO.js} +14 -8
  33. package/dist/assets/{MainHeader-CjAV8RvB.js → MainHeader-4a5SCN9a.js} +12 -19
  34. package/dist/assets/{MainSidebar-CDvpxXC4.js → MainSidebar-PaqIlcl_.js} +4 -10
  35. package/dist/assets/{N8nDataTableServer-DntSk1nT.js → N8nDataTableServer-OWjVTbuy.js} +21 -11
  36. package/dist/assets/{NodeCreation-32nlvQSy.css → NodeCreation-CxN6JIS_.css} +9 -1
  37. package/dist/assets/{NodeCreation-CxSDDbsd.js → NodeCreation-vn1s6ViE.js} +43 -21
  38. package/dist/assets/{NodeCreator-CQTk-sCA.js → NodeCreator-8yXN9-3-.js} +2 -9
  39. package/dist/assets/{NodeDetailsView-CZg_bwey.js → NodeDetailsView-Bfqrvndc.js} +15 -15
  40. package/dist/assets/{NodeDetailsViewV2-DAJDWuEM.js → NodeDetailsViewV2-DvXkio7Z.js} +15 -15
  41. package/dist/assets/{NodeView-uEKgrAcq.js → NodeView-4YXAVrWh.js} +458 -164
  42. package/dist/assets/{NodeView-jttxVc0D.css → NodeView-hst6fesm.css} +69 -80
  43. package/dist/assets/{ProjectHeader-DC8uDFpX.js → ProjectHeader-BXo_XGDO.js} +2 -2
  44. package/dist/assets/{ProjectSettings-CdIf3mP3.js → ProjectSettings-Z5Kp6E53.js} +3 -3
  45. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DmQp9kQG.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DK8Mp74c.js} +1 -1
  46. package/dist/assets/{ResourcesListLayout-CsGmLUMK.js → ResourcesListLayout-DoL3gqUA.js} +3 -3
  47. package/dist/assets/{RunData-BDJozDMW.js → RunData-B9jGswDT.js} +83 -70
  48. package/dist/assets/{RunData-DuKNwYqe.css → RunData-D0dKnadD.css} +61 -62
  49. package/dist/assets/{RunDataJson-DawmUXFp.js → RunDataJson-CI2PEX1Z.js} +9 -9
  50. package/dist/assets/{RunDataJsonActions-DvZoNlqt.js → RunDataJsonActions-CdUL1gL3.js} +1 -1
  51. package/dist/assets/RunDataParsedAiContent-B6Ss5mvl.js +298 -0
  52. package/dist/assets/{RunDataSearch-uXQTShC8.js → RunDataSearch-DKaXYju2.js} +1 -1
  53. package/dist/assets/{RunDataTable-DWoOHela.js → RunDataTable-BQ3rdzoF.js} +50 -41
  54. package/dist/assets/{RunDataTable-CTBtmQIs.css → RunDataTable-n918b-Qv.css} +55 -55
  55. package/dist/assets/{SamlOnboarding-BjMkmYHT.js → SamlOnboarding-C_au26AK.js} +3 -3
  56. package/dist/assets/{SettingsApiView-DgFGFewu.js → SettingsApiView-aoaIK5C5.js} +1 -1
  57. package/dist/assets/{SettingsCommunityNodesView-C1eNL5To.js → SettingsCommunityNodesView-Bii1jYzp.js} +3 -3
  58. package/dist/assets/{SettingsExternalSecrets-Cl0Dak-3.js → SettingsExternalSecrets-DzoOLUAJ.js} +1 -1
  59. package/dist/assets/{SettingsLdapView-Dan7Jnwy.js → SettingsLdapView-CkLOtGjj.js} +1 -1
  60. package/dist/assets/{SettingsLogStreamingView-B4oVbBK9.js → SettingsLogStreamingView-CKBVxNwk.js} +1 -1
  61. package/dist/assets/{SettingsPersonalView-DbIE7aa3.js → SettingsPersonalView-gOoSkTpX.js} +1 -1
  62. package/dist/assets/{SettingsSourceControl-Cr8_Eg0R.js → SettingsSourceControl-C6XS-Myv.js} +1 -1
  63. package/dist/assets/{SettingsSso-BrpvaYn3.js → SettingsSso-CobNvKat.js} +1 -1
  64. package/dist/assets/{SettingsUsageAndPlan-BiYIIpxj.js → SettingsUsageAndPlan-3r39YZW1.js} +1 -1
  65. package/dist/assets/{SettingsUsersView-BuZbf1jq.css → SettingsUsersView-B81cHl3f.css} +9 -6
  66. package/dist/assets/{SettingsUsersView-BLp5n523.js → SettingsUsersView-DrrH1dLq.js} +12 -10
  67. package/dist/assets/{SettingsView-DHETYQsi.js → SettingsView-D_wEAbZb.js} +1 -1
  68. package/dist/assets/{SetupView-B9IJDdK3.js → SetupView-CU1QrNSu.js} +3 -3
  69. package/dist/assets/{SetupWorkflowCredentialsButton-De_46BW9.js → SetupWorkflowCredentialsButton-Do2E5w2d.js} +1 -1
  70. package/dist/assets/{SetupWorkflowFromTemplateView-B9LnyePi.js → SetupWorkflowFromTemplateView-cuwHIvkB.js} +3 -3
  71. package/dist/assets/{SigninView-BjnpHjgM.js → SigninView-DA11h2Kr.js} +3 -3
  72. package/dist/assets/{SignoutView-Bf33UWpi.js → SignoutView-VJrMh5w7.js} +1 -1
  73. package/dist/assets/{SignupView-B6Utr0BG.js → SignupView-BNTIWYSE.js} +3 -3
  74. package/dist/assets/{TableBase-DPqBDUNa.js → TableBase-B5rreQVh.js} +1 -1
  75. package/dist/assets/{Tags-ki_fin7z.js → Tags-SJm7l2s6.js} +1 -1
  76. package/dist/assets/{TemplateDetails-b-rTlfmS.js → TemplateDetails-B6-Nkya8.js} +2 -2
  77. package/dist/assets/{TemplateList-go47S5P8.js → TemplateList-C4Dqsvfp.js} +1 -1
  78. package/dist/assets/{TemplatesCollectionView-PM8SkYKM.js → TemplatesCollectionView-BMGZ939P.js} +6 -6
  79. package/dist/assets/{TemplatesSearchView-Dv3OFfOH.js → TemplatesSearchView-CIo8eprI.js} +3 -3
  80. package/dist/assets/{TemplatesView-C53oSOei.js → TemplatesView-MshXkM2_.js} +1 -1
  81. package/dist/assets/{TemplatesWorkflowView-yGTh1vx0.js → TemplatesWorkflowView-LWBGoJBO.js} +6 -6
  82. package/dist/assets/{TriggerPanel-BtxQKEba.js → TriggerPanel-C-0JCegt.js} +4 -112
  83. package/dist/assets/{VariablesView-D6Sqss5R.js → VariablesView-omKbxNoc.js} +5 -5
  84. package/dist/assets/{WorkerView-CCm-0r6W.js → WorkerView-DPnCbr1B.js} +5 -5
  85. package/dist/assets/{WorkflowActivator-taKR3qi9.js → WorkflowActivator-Hn_uDFPH.js} +2 -2
  86. package/dist/assets/{WorkflowExecutionsInfoAccordion-B-jxSeA2.js → WorkflowExecutionsInfoAccordion-DWSeluMM.js} +2 -2
  87. package/dist/assets/{WorkflowExecutionsLandingPage-T7Kv-LQw.js → WorkflowExecutionsLandingPage-BMcxBJEl.js} +3 -3
  88. package/dist/assets/{WorkflowExecutionsPreview-mvdjkWAp.js → WorkflowExecutionsPreview-Csq6C8Vh.js} +9 -7
  89. package/dist/assets/{WorkflowExecutionsView-CbWwQbZd.js → WorkflowExecutionsView-6L7iZJq1.js} +8 -8
  90. package/dist/assets/{WorkflowHistory-DukG3zvH.js → WorkflowHistory-B0t-0Z77.js} +3 -3
  91. package/dist/assets/{WorkflowOnboardingView-F_3OkKLr.js → WorkflowOnboardingView-DuI2I9MQ.js} +1 -1
  92. package/dist/assets/{WorkflowPreview-BSyfEcul.js → WorkflowPreview-D4kwrMFk.js} +3 -1
  93. package/dist/assets/{WorkflowsView-D7G3OiP4.js → WorkflowsView-WU-IKn4K.js} +52 -10
  94. package/dist/assets/{chartjs.utils-tOuNugD6.js → chartjs.utils-Bc5bGj66.js} +2 -2
  95. package/dist/assets/{en-CcKAtA8V.js → en-FjyeYndD.js} +7 -0
  96. package/dist/assets/{global-link-actions-ApLuKzR7.js → global-link-actions-BZz1vmQq.js} +1 -1
  97. package/dist/assets/{import-curl-C97T8B2Z.js → import-curl-jc1UtwMR.js} +1 -1
  98. package/dist/assets/{index-COleXxZf.css → index-C6LoGNAx.css} +84 -217
  99. package/dist/assets/{index-Bc_EAhEX.js → index-CAU8Zeff.js} +2979 -2765
  100. package/dist/assets/{index-xisjkmTV.js → index-Cohi4onR.js} +1 -1
  101. package/dist/assets/{pickBy-hjwypYbp.js → pickBy-Bmcb35Dl.js} +1 -1
  102. package/dist/assets/{templateActions-C6lKmTTP.js → templateActions-Bsj8nngl.js} +1 -1
  103. package/dist/assets/{useBeforeUnload-BB6o3uNC.js → useBeforeUnload-aOI6YxZR.js} +1 -1
  104. package/dist/assets/{useExecutionDebugging-B_nePSQI.js → useExecutionDebugging-dVW9cpg5.js} +1 -1
  105. package/dist/assets/{useExecutionHelpers-D2zXfbFy.js → useExecutionHelpers-BIfEl-h7.js} +1 -1
  106. package/dist/assets/{useImportCurlCommand-DY5nDfnn.js → useImportCurlCommand-B4EFH3RG.js} +2 -2
  107. package/dist/assets/{useKeybindings-CWoF0-wG.js → useKeybindings-0d48UFTt.js} +72 -2
  108. package/dist/assets/{useProjectPages-C1iuN501.js → useProjectPages-4b50pSat.js} +1 -1
  109. package/dist/assets/{usePushConnection-BzHRKmnQ.js → usePushConnection-CKW8UPyl.js} +2 -2
  110. package/dist/assets/{useWorkflowActivate-BtgQtLYi.js → useWorkflowActivate-C39vU0rW.js} +1 -1
  111. package/dist/index.html +2 -2
  112. package/eslint.config.mjs +1 -1
  113. package/package.json +1 -1
  114. package/dist/assets/CollectionParameter-BHZreCj9.js +0 -4
  115. package/dist/assets/RunDataParsedAiContent-CqrmaGMC.js +0 -148
@@ -1,4 +1,4 @@
1
- import { h0 as Chart$1, d as defineComponent, cd as shallowRef, aK as h, h1 as BarController, h2 as version, r as ref, o as onMounted, I as onBeforeUnmount, aa as watch, bu as toRaw, bt as isProxy, h3 as LineController } from "./index-Bc_EAhEX.js";
1
+ import { hj as Chart$1, d as defineComponent, cd as shallowRef, aK as h, hk as BarController, hl as version, r as ref, o as onMounted, I as onBeforeUnmount, aa as watch, bu as toRaw, bt as isProxy, hm as LineController } from "./index-CAU8Zeff.js";
2
2
  const CommonProps = {
3
3
  data: {
4
4
  type: Object,
@@ -1,4 +1,4 @@
1
- import { gS as require_arrayMap, gT as require_baseIteratee, gU as require_basePickBy, gV as require_getAllKeysIn, bJ as getDefaultExportFromCjs } from "./index-Bc_EAhEX.js";
1
+ import { h9 as require_arrayMap, ha as require_baseIteratee, hb as require_basePickBy, hc as require_getAllKeysIn, bJ as getDefaultExportFromCjs } from "./index-CAU8Zeff.js";
2
2
  var pickBy_1;
3
3
  var hasRequiredPickBy;
4
4
  function requirePickBy() {
@@ -1,4 +1,4 @@
1
- import { fj as assert, fy as doesNodeHaveCredentialsToFill, V as VIEWS, eu as tryToParseNumber, fz as getNewWorkflow, fA as replaceAllTemplateNodeCredentials, ev as getNodesWithNormalizedPosition } from "./index-Bc_EAhEX.js";
1
+ import { fD as assert, fS as doesNodeHaveCredentialsToFill, V as VIEWS, eO as tryToParseNumber, fT as getNewWorkflow, fU as replaceAllTemplateNodeCredentials, eP as getNodesWithNormalizedPosition } from "./index-CAU8Zeff.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 });
@@ -1,4 +1,4 @@
1
- import { T as useUIStore, ad as useCanvasStore, r as ref, x as computed, V as VIEWS, c as useI18n } from "./index-Bc_EAhEX.js";
1
+ import { T as useUIStore, ad as useCanvasStore, r as ref, x as computed, V as VIEWS, c as useI18n } from "./index-CAU8Zeff.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, a4 as useWorkflowsStore, v as useSettingsStore, T as useUIStore, al as usePageRedirectionHelper, x as computed, ap as EnterpriseEditionFeature, c as useI18n, eI as DEBUG_PAYWALL_MODAL_KEY, aK as h, dX as sanitizeHtml, aA as useMessage, aB as MODAL_CONFIRM, V as VIEWS, ay as useTelemetry, ac as useRootStore, eJ as isFullExecutionResponse } from "./index-Bc_EAhEX.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, f0 as DEBUG_PAYWALL_MODAL_KEY, aK as h, d$ as sanitizeHtml, aA as useMessage, aB as MODAL_CONFIRM, V as VIEWS, ay as useTelemetry, ac as useRootStore, f1 as isFullExecutionResponse } from "./index-CAU8Zeff.js";
2
2
  const useExecutionDebugging = () => {
3
3
  const telemetry = useTelemetry();
4
4
  const router = useRouter();
@@ -1,4 +1,4 @@
1
- import { b as useRouter, V as VIEWS, ay as useTelemetry, gD as convertToDisplayDate, c as useI18n } from "./index-Bc_EAhEX.js";
1
+ import { b as useRouter, V as VIEWS, ay as useTelemetry, gW as convertToDisplayDate, c as useI18n } from "./index-CAU8Zeff.js";
2
2
  function useExecutionHelpers() {
3
3
  const i18n = useI18n();
4
4
  const router = useRouter();
@@ -1,6 +1,6 @@
1
- import { hC as require$$0, bJ as getDefaultExportFromCjs, a as useToast, l as unref, fj as assert, hD as CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS, hE as CURL_IMPORT_NODES_PROTOCOLS, c as useI18n, bq as get } from "./index-Bc_EAhEX.js";
1
+ import { hV as require$$0, bJ as getDefaultExportFromCjs, a as useToast, l as unref, fD as assert, hW as CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS, hX as CURL_IMPORT_NODES_PROTOCOLS, c as useI18n, bq as get } from "./index-CAU8Zeff.js";
2
2
  import { c as commonjsRequire } from "./_commonjs-dynamic-modules-TGKdzP3c.js";
3
- import { i as importCurlEventBus } from "./import-curl-C97T8B2Z.js";
3
+ import { i as importCurlEventBus } from "./import-curl-jc1UtwMR.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, dG 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, dM as useDeviceSupport, x as computed, cX as toValue, eA as useEventListener } from "./index-Bc_EAhEX.js";
1
+ import { d as defineComponent, e as createBlock, g as openBlock, dK as Transition, w as withCtx, aS as withDirectives, aT as vShow, j as createBaseVNode, n as normalizeClass, _ as _export_sfc, Q as createEventBus, a2 as defineStore, a4 as useWorkflowsStore, v as useSettingsStore, x as computed, cd as shallowRef, co as useVueFlow, dz as calculateNodeSize, bU as inject, r as ref, c3 as PiPWindowSymbol, cl as useActiveElement, dQ as useDeviceSupport, cX as toValue, eU as useEventListener } from "./index-CAU8Zeff.js";
2
2
  const _sfc_main = /* @__PURE__ */ defineComponent({
3
3
  __name: "BlockUi",
4
4
  props: {
@@ -33,6 +33,75 @@ const cssModules = {
33
33
  };
34
34
  const N8nBlockUi = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules], ["__scopeId", "data-v-76a59b58"]]);
35
35
  const canvasEventBus = createEventBus();
36
+ const useExperimentalNdvStore = defineStore("experimentalNdv", () => {
37
+ const workflowStore = useWorkflowsStore();
38
+ const settingsStore = useSettingsStore();
39
+ const isEnabled = computed(
40
+ () => !Number.isNaN(settingsStore.experimental__minZoomNodeSettingsInCanvas) && settingsStore.experimental__minZoomNodeSettingsInCanvas > 0
41
+ );
42
+ const maxCanvasZoom = computed(
43
+ () => isEnabled.value ? settingsStore.experimental__minZoomNodeSettingsInCanvas : 4
44
+ );
45
+ const collapsedNodes = shallowRef({});
46
+ function setNodeExpanded(nodeId, isExpanded) {
47
+ collapsedNodes.value = {
48
+ ...collapsedNodes.value,
49
+ [nodeId]: isExpanded === void 0 ? !collapsedNodes.value[nodeId] : !isExpanded
50
+ };
51
+ }
52
+ function collapseAllNodes() {
53
+ collapsedNodes.value = workflowStore.allNodes.reduce(
54
+ (acc, node) => {
55
+ acc[node.id] = true;
56
+ return acc;
57
+ },
58
+ {}
59
+ );
60
+ }
61
+ function expandAllNodes() {
62
+ collapsedNodes.value = {};
63
+ }
64
+ function isActive(canvasZoom) {
65
+ return isEnabled.value && canvasZoom === maxCanvasZoom.value;
66
+ }
67
+ function focusNode(nodeId) {
68
+ const nodeToFocus = workflowStore.getNodeById(nodeId);
69
+ if (!nodeToFocus) {
70
+ return;
71
+ }
72
+ const vueFlow = useVueFlow(workflowStore.workflow.id);
73
+ collapsedNodes.value = workflowStore.allNodes.reduce(
74
+ (acc, node) => {
75
+ acc[node.id] = node.id !== nodeId;
76
+ return acc;
77
+ },
78
+ {}
79
+ );
80
+ const workflow = workflowStore.getCurrentWorkflow();
81
+ const nodeSize = calculateNodeSize(
82
+ workflow.getChildNodes(nodeToFocus.name, "ALL_NON_MAIN").length > 0,
83
+ workflow.getParentNodes(nodeToFocus.name, "ALL_NON_MAIN").length > 0,
84
+ workflow.getParentNodes(nodeToFocus.name, "main").length,
85
+ workflow.getChildNodes(nodeToFocus.name, "main").length,
86
+ workflow.getParentNodes(nodeToFocus.name, "ALL_NON_MAIN").length
87
+ );
88
+ void vueFlow.setCenter(
89
+ nodeToFocus.position[0] + nodeSize.width * 1.5 / 2,
90
+ nodeToFocus.position[1] + 80,
91
+ { duration: 200, zoom: maxCanvasZoom.value }
92
+ );
93
+ }
94
+ return {
95
+ isEnabled,
96
+ maxCanvasZoom,
97
+ collapsedNodes: computed(() => collapsedNodes.value),
98
+ isActive,
99
+ setNodeExpanded,
100
+ expandAllNodes,
101
+ collapseAllNodes,
102
+ focusNode
103
+ };
104
+ });
36
105
  const useKeybindings = (keymap, options) => {
37
106
  const pipWindow = inject(PiPWindowSymbol, ref());
38
107
  const activeElement = useActiveElement({ window: pipWindow?.value });
@@ -113,6 +182,7 @@ const useKeybindings = (keymap, options) => {
113
182
  };
114
183
  export {
115
184
  N8nBlockUi as N,
185
+ useKeybindings as a,
116
186
  canvasEventBus as c,
117
- useKeybindings as u
187
+ useExperimentalNdvStore as u
118
188
  };
@@ -1,4 +1,4 @@
1
- import { a5 as useRoute, x as computed, V as VIEWS, eb as reactive } from "./index-Bc_EAhEX.js";
1
+ import { a5 as useRoute, x as computed, V as VIEWS, ew as reactive } from "./index-CAU8Zeff.js";
2
2
  const useProjectPages = () => {
3
3
  const route = useRoute();
4
4
  const isOverviewSubPage = computed(
@@ -1,5 +1,5 @@
1
- import { fP as makeRestApiRequest, a4 as useWorkflowsStore, T as useUIStore, fQ as clearPopupWindowState, es as getEasyAiWorkflowJson, ay as useTelemetry, cc as parse, fR as hasTrimmedItem, v as useSettingsStore, aj as useWorkflowSaving, ak as useWorkflowHelpers, aC as WORKFLOW_SETTINGS_MODAL_KEY, a as useToast, fS as generateNodesGraph, c as useI18n, fT as getExecutionErrorToastConfiguration, bG as useNodeTypesStore, dW as getTriggerNodeServiceName, bB as useNodeHelpers, fU as hasTrimmedData, bf as useExternalHooks, fV as codeNodeEditorEventBus, el as EVALUATION_TRIGGER_NODE_TYPE, bC as useRunWorkflow, fW as getExecutionErrorMessage, de as useCredentialsStore, fX as useAssistantStore, fY as useSchemaPreviewStore, cY as isCommunityPackageName, a2 as defineStore, ac as useRootStore, a3 as usePushConnectionStore, r as ref } from "./index-Bc_EAhEX.js";
2
- import { g as globalLinkActionsEventBus } from "./global-link-actions-ApLuKzR7.js";
1
+ import { g7 as makeRestApiRequest, a4 as useWorkflowsStore, T as useUIStore, g8 as clearPopupWindowState, eM as getEasyAiWorkflowJson, ay as useTelemetry, cc as parse, g9 as hasTrimmedItem, v as useSettingsStore, aj as useWorkflowSaving, ak as useWorkflowHelpers, aC as WORKFLOW_SETTINGS_MODAL_KEY, a as useToast, ga as generateNodesGraph, c as useI18n, gb as getExecutionErrorToastConfiguration, bG as useNodeTypesStore, d_ as getTriggerNodeServiceName, bB as useNodeHelpers, gc as hasTrimmedData, bd as useExternalHooks, gd as codeNodeEditorEventBus, eF as EVALUATION_TRIGGER_NODE_TYPE, bC as useRunWorkflow, ge as getExecutionErrorMessage, de as useCredentialsStore, gf as useAssistantStore, gg as useSchemaPreviewStore, cY as isCommunityPackageName, a2 as defineStore, ac as useRootStore, a3 as usePushConnectionStore, r as ref } from "./index-CAU8Zeff.js";
2
+ import { g as globalLinkActionsEventBus } from "./global-link-actions-BZz1vmQq.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);
@@ -1,4 +1,4 @@
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, g3 as LOCAL_STORAGE_ACTIVATION_FLAG, g4 as WORKFLOW_ACTIVE_MODAL_KEY } from "./index-Bc_EAhEX.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, bd as useExternalHooks, c as useI18n, b4 as useStorage, gn as LOCAL_STORAGE_ACTIVATION_FLAG, go as WORKFLOW_ACTIVE_MODAL_KEY } from "./index-CAU8Zeff.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-Bc_EAhEX.js"></script>
20
- <link rel="stylesheet" crossorigin href="/{{BASE_PATH}}/assets/index-COleXxZf.css">
19
+ <script type="module" crossorigin src="/{{BASE_PATH}}/assets/index-CAU8Zeff.js"></script>
20
+ <link rel="stylesheet" crossorigin href="/{{BASE_PATH}}/assets/index-C6LoGNAx.css">
21
21
  </head>
22
22
  <body>
23
23
  <noscript>
package/eslint.config.mjs CHANGED
@@ -24,7 +24,7 @@ export default defineConfig(frontendConfig, {
24
24
  '@typescript-eslint/dot-notation': 'warn',
25
25
  '@stylistic/lines-between-class-members': 'warn',
26
26
  '@stylistic/member-delimiter-style': 'warn',
27
- '@typescript-eslint/naming-convention': 'warn',
27
+ '@typescript-eslint/naming-convention': 'off',
28
28
  '@typescript-eslint/no-empty-interface': 'warn',
29
29
  '@typescript-eslint/no-for-in-array': 'warn',
30
30
  '@typescript-eslint/no-loop-func': 'warn',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-editor-ui",
3
- "version": "1.102.1",
3
+ "version": "1.103.0",
4
4
  "description": "Workflow Editor UI for n8n",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -1,4 +0,0 @@
1
- import { hB as _sfc_main } from "./index-Bc_EAhEX.js";
2
- export {
3
- _sfc_main as default
4
- };
@@ -1,148 +0,0 @@
1
- import { d as defineComponent, c2 as useClipboard, a as useToast, h as createElementBlock, g as openBlock, n as normalizeClass, F as Fragment, y as renderList, e as createBlock, f as createCommentVNode, l as unref, t as toDisplayString, i as createVNode, a0 as _sfc_main$1, c as useI18n, _ as _export_sfc } from "./index-Bc_EAhEX.js";
2
- import { V as VueMarkdown, H as HighlightJS } from "./RunData-BDJozDMW.js";
3
- import "./FileSaver.min-cXi1Jtg0.js";
4
- import "./useKeybindings-CWoF0-wG.js";
5
- import "./useExecutionHelpers-D2zXfbFy.js";
6
- const _hoisted_1 = ["data-content-type"];
7
- const _hoisted_2 = ["textContent"];
8
- const _sfc_main = /* @__PURE__ */ defineComponent({
9
- __name: "RunDataParsedAiContent",
10
- props: {
11
- content: {},
12
- compact: { type: Boolean, default: false },
13
- renderType: {}
14
- },
15
- setup(__props) {
16
- const i18n = useI18n();
17
- const clipboard = useClipboard();
18
- const { showMessage } = useToast();
19
- function isJsonString(text) {
20
- try {
21
- JSON.parse(text);
22
- return true;
23
- } catch (e) {
24
- return false;
25
- }
26
- }
27
- const markdownOptions = {
28
- highlight(str, lang) {
29
- if (lang && HighlightJS.getLanguage(lang)) {
30
- try {
31
- return HighlightJS.highlight(str, { language: lang }).value;
32
- } catch {
33
- }
34
- }
35
- return "";
36
- }
37
- };
38
- function isMarkdown(jsonMarkdown) {
39
- if (typeof jsonMarkdown !== "string") return false;
40
- const markdownPatterns = [
41
- /^# .+/gm,
42
- // headers
43
- /\*{1,2}.+\*{1,2}/g,
44
- // emphasis and strong
45
- /\[.+\]\(.+\)/g,
46
- // links
47
- /```[\s\S]+```/g
48
- // code blocks
49
- ];
50
- return markdownPatterns.some((pattern) => pattern.test(jsonMarkdown));
51
- }
52
- function formatToJsonMarkdown(data) {
53
- return "```json\n" + data + "\n```";
54
- }
55
- function jsonToMarkdown(data) {
56
- if (isMarkdown(data)) return data;
57
- if (Array.isArray(data) && data.length && typeof data[0] !== "number") {
58
- const markdownArray = data.map((item) => jsonToMarkdown(item));
59
- return markdownArray.join("\n\n").trim();
60
- }
61
- if (typeof data === "string") {
62
- if (isJsonString(data)) {
63
- return formatToJsonMarkdown(data);
64
- }
65
- return data;
66
- }
67
- return formatToJsonMarkdown(JSON.stringify(data, null, 2));
68
- }
69
- function onCopyToClipboard(object) {
70
- try {
71
- void clipboard.copy(JSON.stringify(object, void 0, 2));
72
- showMessage({
73
- title: i18n.baseText("generic.copiedToClipboard"),
74
- type: "success"
75
- });
76
- } catch {
77
- }
78
- }
79
- return (_ctx, _cache) => {
80
- return openBlock(), createElementBlock("div", {
81
- class: normalizeClass([_ctx.$style.component, _ctx.compact ? _ctx.$style.compact : ""])
82
- }, [
83
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.content, ({ parsedContent, raw }, index) => {
84
- return openBlock(), createElementBlock("div", {
85
- key: index,
86
- class: normalizeClass(_ctx.$style.contentText),
87
- "data-content-type": parsedContent?.type
88
- }, [
89
- parsedContent && _ctx.renderType === "rendered" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
90
- parsedContent.type === "json" ? (openBlock(), createBlock(unref(VueMarkdown), {
91
- key: 0,
92
- source: jsonToMarkdown(parsedContent.data),
93
- class: normalizeClass(_ctx.$style.markdown),
94
- options: markdownOptions
95
- }, null, 8, ["source", "class"])) : parsedContent.type === "markdown" ? (openBlock(), createBlock(unref(VueMarkdown), {
96
- key: 1,
97
- source: parsedContent.data,
98
- class: normalizeClass(_ctx.$style.markdown),
99
- options: markdownOptions
100
- }, null, 8, ["source", "class"])) : parsedContent.type === "text" ? (openBlock(), createElementBlock("p", {
101
- key: 2,
102
- class: normalizeClass(_ctx.$style.runText),
103
- textContent: toDisplayString(parsedContent.data)
104
- }, null, 10, _hoisted_2)) : createCommentVNode("", true)
105
- ], 64)) : (openBlock(), createElementBlock("div", {
106
- key: 1,
107
- class: normalizeClass(_ctx.$style.rawContent)
108
- }, [
109
- createVNode(unref(_sfc_main$1), {
110
- size: "small",
111
- class: normalizeClass(_ctx.$style.copyToClipboard),
112
- type: "secondary",
113
- title: unref(i18n).baseText("nodeErrorView.copyToClipboard"),
114
- icon: "files",
115
- onClick: ($event) => onCopyToClipboard(raw)
116
- }, null, 8, ["class", "title", "onClick"]),
117
- createVNode(unref(VueMarkdown), {
118
- source: jsonToMarkdown(raw),
119
- class: normalizeClass(_ctx.$style.markdown)
120
- }, null, 8, ["source", "class"])
121
- ], 2))
122
- ], 10, _hoisted_1);
123
- }), 128))
124
- ], 2);
125
- };
126
- }
127
- });
128
- const runText = "_runText_1ucj0_123";
129
- const markdown = "_markdown_1ucj0_128";
130
- const compact = "_compact_1ucj0_151";
131
- const copyToClipboard = "_copyToClipboard_1ucj0_159";
132
- const rawContent = "_rawContent_1ucj0_169";
133
- const contentText = "_contentText_1ucj0_173";
134
- const style0 = {
135
- runText,
136
- markdown,
137
- compact,
138
- copyToClipboard,
139
- rawContent,
140
- contentText
141
- };
142
- const cssModules = {
143
- "$style": style0
144
- };
145
- const RunDataAi = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
146
- export {
147
- RunDataAi as default
148
- };