n8n-editor-ui 1.86.0 → 1.87.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 (116) hide show
  1. package/dist/assets/AnimatedSpinner-ChSRgyeI.css +39 -0
  2. package/dist/assets/AnimatedSpinner-urWn52iY.js +18 -0
  3. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DofUIs9S.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DIbgkfAC.js} +1 -1
  4. package/dist/assets/{AuthView-CyY2quTd.js → AuthView-DIQI5asI.js} +2 -2
  5. package/dist/assets/{CanvasChatSwitch-CRtE2Fld.css → CanvasChatSwitch-0IWSu8RE.css} +249 -45
  6. package/dist/assets/{CanvasChatSwitch-BTInPgKl.js → CanvasChatSwitch-BIpZuY-n.js} +437 -268
  7. package/dist/assets/{ChangePasswordView-Db-MkXhZ.js → ChangePasswordView-D8Qv0tim.js} +3 -3
  8. package/dist/assets/CollectionParameter-DT1MnS63.js +4 -0
  9. package/dist/assets/{CredentialsView-CLr_6U2B.js → CredentialsView-tJ8-2RrO.js} +8 -8
  10. package/dist/assets/{ErrorView-CUS5vnCW.js → ErrorView-CZEZD7LB.js} +1 -1
  11. package/dist/assets/{ExecutionsTime-BOPJEomw.css → ExecutionsTime-DZHUIJjP.css} +6 -6
  12. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-D15zjPBZ.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-gcknFyjA.js} +23 -20
  13. package/dist/assets/{ExecutionsView-1df-oH5P.js → ExecutionsView-BCfIz8EF.js} +48 -56
  14. package/dist/assets/{ExecutionsView-BnBpSqVn.css → ExecutionsView-ByQf9yli.css} +13 -47
  15. package/dist/assets/{FileSaver.min-DLKMtSuf.js → FileSaver.min-Bs2qHlKb.js} +1 -1
  16. package/dist/assets/{FixedCollectionParameter-CcqTLBeP.js → FixedCollectionParameter-E0LDqNW3.js} +1 -1
  17. package/dist/assets/{ForgotMyPasswordView-BHRWkO2H.js → ForgotMyPasswordView-YOnrzvKJ.js} +3 -3
  18. package/dist/assets/InsightsChartAverageRuntime-DWrrriYN.js +61 -0
  19. package/dist/assets/InsightsChartFailed-DRi6JC3m.js +57 -0
  20. package/dist/assets/InsightsChartFailureRate-BdFNsMpg.js +57 -0
  21. package/dist/assets/InsightsChartTimeSaved-C12GZzSQ.js +71 -0
  22. package/dist/assets/InsightsChartTotal-Cn386HO4.js +59 -0
  23. package/dist/assets/InsightsDashboard-BawwZ0Oo.js +154 -0
  24. package/dist/assets/InsightsDashboard-CB4vHnBh.css +152 -0
  25. package/dist/assets/InsightsPaywall-OeXh6LeZ.css +133 -0
  26. package/dist/assets/InsightsPaywall-g3JcqAYL.js +58 -0
  27. package/dist/assets/{InsightsSummary-DcRuPjLJ.css → InsightsSummary-W08OzElS.css} +57 -35
  28. package/dist/assets/InsightsSummary-vMmKUcie.js +185 -0
  29. package/dist/assets/InsightsTableWorkflows-DQQ1vvMz.js +129 -0
  30. package/dist/assets/InsightsTableWorkflows-Us3j4UTO.css +128 -0
  31. package/dist/assets/{Logo-DbXTFYA8.js → Logo-Vm92axlM.js} +1 -1
  32. package/dist/assets/{MainHeader-BfQR9Td3.js → MainHeader-BUhpvu2K.js} +9 -10
  33. package/dist/assets/{MainSidebar-CDUegYGN.js → MainSidebar-D5P5FSUQ.js} +11 -2
  34. package/dist/assets/{NodeCreation-BBXRRxZa.js → NodeCreation-BgW5u-Bc.js} +4 -4
  35. package/dist/assets/{NodeCreator-BiyvtIjb.js → NodeCreator-CFe2n6vJ.js} +3 -3
  36. package/dist/assets/{NodeDetailsView-BcVu3kf0.css → NodeDetailsView-BT-ro74o.css} +63 -70
  37. package/dist/assets/{NodeDetailsView-Ph7FVpa8.js → NodeDetailsView-CmtK-rDD.js} +138 -478
  38. package/dist/assets/{NodeView-BEJ48TF4.js → NodeView-BqaNPfpx.js} +19 -21
  39. package/dist/assets/{ProjectCardBadge-B7cCM6Eo.js → ProjectCardBadge-BKgtzWr1.js} +1 -1
  40. package/dist/assets/{ProjectHeader-BjPaep-H.js → ProjectHeader-BWVSdavS.js} +1 -1
  41. package/dist/assets/{ProjectSettings-C1By1g0Z.js → ProjectSettings-BL-2-uOg.js} +2 -2
  42. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-UHiXbqwy.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-BL-bMMgn.js} +1 -2
  43. package/dist/assets/{ResourcesListLayout-CiiXWGd5.js → ResourcesListLayout-CozpmfUY.js} +1 -1
  44. package/dist/assets/{RunDataAi-CQE0VYut.js → RunDataAi-B_EadpzG.js} +88 -37
  45. package/dist/assets/{RunDataAi-CN9FrT9c.css → RunDataAi-CUUDqZRP.css} +128 -0
  46. package/dist/assets/{RunDataJson-BY9cOxFp.js → RunDataJson-CyNNCtyd.js} +11 -12
  47. package/dist/assets/{RunDataJsonActions-CuFjccfe.js → RunDataJsonActions-SQqaiBEP.js} +1 -2
  48. package/dist/assets/{RunDataSearch-afEc-21Y.js → RunDataSearch-BF9kshKq.js} +1 -1
  49. package/dist/assets/{RunDataTable-N6yWFXKt.js → RunDataTable-DsW7wuc2.js} +10 -8
  50. package/dist/assets/{SamlOnboarding-HDQzVmha.js → SamlOnboarding-BX7RiRJB.js} +3 -3
  51. package/dist/assets/{SettingsApiView-DQMZT3uc.js → SettingsApiView-CDIPYvaG.js} +1 -1
  52. package/dist/assets/{SettingsCommunityNodesView-BlQT_0E8.js → SettingsCommunityNodesView-BRSEkT73.js} +4 -5
  53. package/dist/assets/{SettingsExternalSecrets-BL_3qoNS.js → SettingsExternalSecrets-D7ASuAnS.js} +1 -1
  54. package/dist/assets/{SettingsLdapView-BMsfXg-A.js → SettingsLdapView-DA5fZZ51.js} +1 -1
  55. package/dist/assets/{SettingsLogStreamingView-Bm5vaSO2.js → SettingsLogStreamingView-C9qkYvCr.js} +1 -1
  56. package/dist/assets/{SettingsPersonalView-Djl1VXnE.js → SettingsPersonalView-BnNOJcvO.js} +1 -1
  57. package/dist/assets/{SettingsSourceControl-A-9nD8hG.js → SettingsSourceControl--ozL4427.js} +1 -1
  58. package/dist/assets/{SettingsSso-DZCscZY6.js → SettingsSso-Bfe_HRSr.js} +1 -1
  59. package/dist/assets/{SettingsUsageAndPlan-Rd5AGlNl.js → SettingsUsageAndPlan-CzvMNudh.js} +1 -1
  60. package/dist/assets/{SettingsUsersView-NEahsGVs.js → SettingsUsersView-DGu5ku48.js} +1 -1
  61. package/dist/assets/{SettingsView-CeXAUGXE.js → SettingsView-CvreVxXL.js} +1 -1
  62. package/dist/assets/{SetupView-BI7oJfg0.js → SetupView-BJT6GtIA.js} +3 -3
  63. package/dist/assets/{SetupWorkflowCredentialsButton-DMZX1S1F.js → SetupWorkflowCredentialsButton-BEq2gs_-.js} +2 -4
  64. package/dist/assets/{SetupWorkflowFromTemplateView-DZsPVdhN.js → SetupWorkflowFromTemplateView-F9oCDWX8.js} +3 -12
  65. package/dist/assets/{SigninView-CzVnEKyz.js → SigninView-DyoDtCBc.js} +3 -3
  66. package/dist/assets/{SignoutView-C4ynr4AN.js → SignoutView-DclBslYe.js} +1 -1
  67. package/dist/assets/{SignupView-9nwGonm9.js → SignupView-BhB0Hhj0.js} +3 -3
  68. package/dist/assets/{TemplateDetails-DT1tI4AF.js → TemplateDetails-B3utdyMi.js} +1 -1
  69. package/dist/assets/{TemplateList-DGPm_Qol.js → TemplateList-Bgz1iiiH.js} +1 -1
  70. package/dist/assets/{TemplatesCollectionView-DwXY5s5G.js → TemplatesCollectionView-CORzb8YZ.js} +7 -9
  71. package/dist/assets/{TemplatesSearchView-D0R7uF40.js → TemplatesSearchView-DTuv4-5C.js} +3 -3
  72. package/dist/assets/{TemplatesView-BZ-ntkfi.js → TemplatesView-CFV5SVF7.js} +1 -1
  73. package/dist/assets/{TemplatesWorkflowView-TwVAHvD7.js → TemplatesWorkflowView-CQVVdNty.js} +5 -7
  74. package/dist/assets/{TestDefinitionEditView-C3nnWQ4Q.css → TestDefinitionEditView-Cwkrz308.css} +12 -18
  75. package/dist/assets/{TestDefinitionEditView-o2Gc4BjN.js → TestDefinitionEditView-DX6GIeq2.js} +163 -199
  76. package/dist/assets/{TestDefinitionListView-BuUWjPAl.js → TestDefinitionListView-CLEkthYQ.js} +1 -1
  77. package/dist/assets/{TestDefinitionNewView-DmSFNxfn.js → TestDefinitionNewView-DWTTqvlN.js} +2 -2
  78. package/dist/assets/{TestDefinitionRootView-1dNmGZUI.js → TestDefinitionRootView-D0yLW0V6.js} +1 -1
  79. package/dist/assets/{VariablesView-D46tH9pw.js → VariablesView-Dsr4pqth.js} +3 -3
  80. package/dist/assets/{WorkerView-G0K849qT.js → WorkerView-Bbu5wv-g.js} +6 -7
  81. package/dist/assets/{WorkflowActivator-DfalOPsa.js → WorkflowActivator-C197X_D6.js} +2 -2
  82. package/dist/assets/{WorkflowExecutionsInfoAccordion-BcD7ZskD.js → WorkflowExecutionsInfoAccordion-CHPlRtMQ.js} +1 -1
  83. package/dist/assets/{WorkflowExecutionsLandingPage-BhPbJi5K.js → WorkflowExecutionsLandingPage-CnvMc3SA.js} +2 -2
  84. package/dist/assets/{WorkflowExecutionsPreview-CowaFwPg.js → WorkflowExecutionsPreview-CJBM3Awe.js} +24 -256
  85. package/dist/assets/{WorkflowExecutionsPreview-CHu6M3Dh.css → WorkflowExecutionsPreview-D7jTJ8GL.css} +16 -48
  86. package/dist/assets/{WorkflowExecutionsView-BAojAjIM.js → WorkflowExecutionsView-BwB6WS6M.js} +11 -17
  87. package/dist/assets/{WorkflowHistory-Bj5_YFN8.js → WorkflowHistory-U5a4aYts.js} +4 -4
  88. package/dist/assets/{WorkflowOnboardingView-D9peqUJs.js → WorkflowOnboardingView-DHUUTLOo.js} +1 -1
  89. package/dist/assets/{WorkflowPreview-gflk06YT.js → WorkflowPreview-D8pwehRe.js} +1 -1
  90. package/dist/assets/{WorkflowsView-CmgKYCQ6.js → WorkflowsView-DIh7kqZk.js} +10 -10
  91. package/dist/assets/chartjs.utils-DTEY3u-V.js +193 -0
  92. package/dist/assets/dateFormatter-C7xnNKzY.js +21 -0
  93. package/dist/assets/{easyAiWorkflowUtils-CLssJdgl.js → easyAiWorkflowUtils-V__OjFo9.js} +1 -1
  94. package/dist/assets/{global-link-actions-BphqczCY.js → global-link-actions-vGpWr9Uz.js} +1 -1
  95. package/dist/assets/{import-curl-C9KhAemD.js → import-curl-C6ERUxFe.js} +1 -1
  96. package/dist/assets/{index-C0DaAYgf.js → index-BrjPYODL.js} +3 -1
  97. package/dist/assets/{index-CkOV8f0Z.js → index-DD7Wuhk5.js} +9472 -3624
  98. package/dist/assets/{index-BaqhUIB7.css → index-DJ205bL0.css} +369 -44
  99. package/dist/assets/{pickBy-DUugkW7s.js → pickBy-BILEJ4hg.js} +1 -1
  100. package/dist/assets/{templateActions-Czp13jCM.js → templateActions-M3qRQiV6.js} +2 -7
  101. package/dist/assets/{useBeforeUnload-BBbiw-FV.js → useBeforeUnload-DTsj_abb.js} +1 -1
  102. package/dist/assets/{useCanvasMapping-Cla--atl.js → useCanvasMapping-DJvMRP2s.js} +6 -6
  103. package/dist/assets/{useCanvasOperations-FyzGfva5.js → useCanvasOperations-DCaSrD1N.js} +27 -256
  104. package/dist/assets/{useClearExecutionButtonVisible-fESJZE5R.js → useClearExecutionButtonVisible-CVPKhr9F.js} +2 -2
  105. package/dist/assets/{useExecutionDebugging-D4s4CdaL.js → useExecutionDebugging-yY2o_eNc.js} +1 -1
  106. package/dist/assets/{useExecutionHelpers-Bm91b8wb.js → useExecutionHelpers-BVY9xXbG.js} +2 -19
  107. package/dist/assets/{useImportCurlCommand-BPNuR5ZX.js → useImportCurlCommand-Chewi-_x.js} +2 -2
  108. package/dist/assets/{usePushConnection-BbQhNUm8.js → usePushConnection-9zsAnuvC.js} +3 -4
  109. package/dist/assets/{useTestDefinitionForm-ZJngcsSH.js → useTestDefinitionForm-CCVy0jKP.js} +1 -1
  110. package/dist/assets/{useWorkflowActivate-CkCvd-g6.js → useWorkflowActivate-DeEvbrsK.js} +1 -1
  111. package/dist/index.html +2 -2
  112. package/package.json +1 -1
  113. package/dist/assets/CollectionParameter-BD3jmKi_.js +0 -4
  114. package/dist/assets/InsightsSummary-CyilLKXz.js +0 -152
  115. package/dist/assets/pushConnection.store-Cb2TGyrZ.js +0 -238
  116. package/dist/assets/useRunWorkflow-DnbQqqcB.js +0 -527
@@ -1,4 +1,4 @@
1
- import { dU as baseSlice, dV as toString, dW as createCompounder, dX as SetCache, dY as arrayIncludes, dZ as cacheHas, d_ as baseRest, d$ as isArrayLikeObject, e0 as baseFlatten, bv as useNodeTypesStore, q as computed, m as unref, e1 as isSubNodeType, a0 as useRootStore, T as useWorkflowsStore, a as useToast, e2 as PIN_DATA_NODE_TYPES_DENYLIST, e3 as jsonStringify, c as useI18n, e4 as toMegaBytes, e5 as stringSizeInBytes, ah as useTelemetry, aQ as useExternalHooks, bP as jsonParse, e6 as useDataSchema, bt as getNodeOutputs, bf as NodeConnectionTypes, e7 as MAX_PINNED_DATA_SIZE, e8 as MAX_WORKFLOW_SIZE, e9 as MAX_EXPECTED_REQUEST_SIZE, ea as CORE_NODES_CATEGORY, eb as DEFAULT_SUBCATEGORY, bj as v4, p as useSettingsStore, ec as AI_TRANSFORM_NODE_TYPE, bn as AI_SUBCATEGORY, ed as HUMAN_IN_THE_LOOP_CATEGORY, bo as AI_CATEGORY_AGENTS, ee as sortBy, db as i18n, ef as AI_CATEGORY_OTHER_TOOLS, eg as SEND_AND_WAIT_OPERATION, eh as AI_CATEGORY_DOCUMENT_LOADERS, ei as AI_CATEGORY_LANGUAGE_MODELS, ej as AI_CATEGORY_MEMORY, ek as AI_CATEGORY_OUTPUTPARSER, el as AI_CATEGORY_RETRIEVERS, em as AI_CATEGORY_TEXT_SPLITTERS, en as AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, eo as AI_CODE_TOOL_LANGCHAIN_NODE_TYPE, ep as AI_CATEGORY_TOOLS, eq as AI_CATEGORY_EMBEDDING, er as AI_CATEGORY_VECTOR_STORES, es as AI_UNCATEGORIZED_CATEGORY, et as AI_OTHERS_NODE_CREATOR_VIEW, aO as useTemplatesStore, eu as AI_NODE_CREATOR_VIEW, ev as RSS_READ_NODE_TYPE, ew as EMAIL_SEND_NODE_TYPE, ex as SET_NODE_TYPE, ey as CODE_NODE_TYPE, ez as DATETIME_NODE_TYPE, eA as FILTER_NODE_TYPE, eB as REMOVE_DUPLICATES_NODE_TYPE, eC as SPLIT_OUT_NODE_TYPE, eD as LIMIT_NODE_TYPE, eE as SUMMARIZE_NODE_TYPE, eF as AGGREGATE_NODE_TYPE, eG as MERGE_NODE_TYPE, eH as HTML_NODE_TYPE, eI as MARKDOWN_NODE_TYPE, eJ as XML_NODE_TYPE, eK as CRYPTO_NODE_TYPE, eL as EXTRACT_FROM_FILE_NODE_TYPE, eM as CONVERT_TO_FILE_NODE_TYPE, eN as COMPRESSION_NODE_TYPE, eO as EDIT_IMAGE_NODE_TYPE, eP as TRANSFORM_DATA_SUBCATEGORY, eQ as IF_NODE_TYPE, eR as SPLIT_IN_BATCHES_NODE_TYPE, eS as FLOWS_CONTROL_SUBCATEGORY, eT as HTTP_REQUEST_NODE_TYPE, eU as WEBHOOK_NODE_TYPE, eV as HELPERS_SUBCATEGORY, eW as HITL_SUBCATEGORY, eX as TRIGGER_NODE_CREATOR_VIEW, eY as REGULAR_NODE_CREATOR_VIEW, eZ as MANUAL_TRIGGER_NODE_TYPE, e_ as EMAIL_IMAP_NODE_TYPE, e$ as SCHEDULE_TRIGGER_NODE_TYPE, f0 as FORM_TRIGGER_NODE_TYPE, dz as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, bu as CHAT_TRIGGER_NODE_TYPE, f1 as OTHER_TRIGGER_NODES_SUBCATEGORY, bp as AI_CATEGORY_CHAINS, S as defineStore, r as ref, a1 as useCanvasStore, f2 as AI_CATEGORY_ROOT_NODES, z as nextTick, f3 as getThemedValue, L as useUIStore, bq as AI_CODE_NODE_TYPE, f4 as AI_TRANSFORM_NODE_TYPE$1, f5 as isValidCanvasConnectionMode, bZ as CanvasConnectionMode, bY as isValidNodeConnectionType, at as useNDVStore, f6 as isVueFlowConnection, br as getNodeInputs, f7 as CUSTOM_API_CALL_KEY, X as STORES, c0 as NODE_CREATOR_OPEN_SOURCES, bH as useCredentialsStore, bK as useHistoryStore, E as useTagsStore, au as useExecutionsStore, a3 as useProjectsStore, a6 as useWorkflowHelpers, bw as useNodeHelpers, b9 as useClipboard, f8 as UPDATE_WEBHOOK_ID_NODE_TYPES, dt as generateNodesGraph, f9 as getNewNodePosition, dG as AddConnectionCommand, az as STICKY_NODE_TYPE, dH as RemoveConnectionCommand, ab as EnterpriseEditionFeature, c5 as deepCopy, fa as isPresent, dI as RemoveNodeCommand, fb as RenameNodeCommand, fc as MoveNodeCommand, fd as DEFAULT_NODE_SIZE, fe as CONFIGURATION_NODE_SIZE, bs as getConnectionTypes, ff as generateOffsets, fg as CONFIGURABLE_NODE_SIZE, fh as PUSH_NODES_OFFSET, dJ as AddNodeCommand, fi as NODE_SIZE, fj as GRID_SIZE, fk as getNodeParameters } from "./index-CkOV8f0Z.js";
1
+ import { dM as baseSlice, dN as toString, dO as createCompounder, dP as SetCache, dQ as arrayIncludes, dR as cacheHas, dS as baseRest, dT as isArrayLikeObject, dU as baseFlatten, dV as CORE_NODES_CATEGORY, dW as DEFAULT_SUBCATEGORY, bj as v4, p as useSettingsStore, dX as AI_TRANSFORM_NODE_TYPE, bn as AI_SUBCATEGORY, dY as HUMAN_IN_THE_LOOP_CATEGORY, bo as AI_CATEGORY_AGENTS, dZ as sortBy, de as i18n, d_ as AI_CATEGORY_OTHER_TOOLS, d$ as SEND_AND_WAIT_OPERATION, e0 as AI_CATEGORY_DOCUMENT_LOADERS, e1 as AI_CATEGORY_LANGUAGE_MODELS, e2 as AI_CATEGORY_MEMORY, e3 as AI_CATEGORY_OUTPUTPARSER, e4 as AI_CATEGORY_RETRIEVERS, e5 as AI_CATEGORY_TEXT_SPLITTERS, e6 as AI_WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE, e7 as AI_CODE_TOOL_LANGCHAIN_NODE_TYPE, c as useI18n, e8 as AI_CATEGORY_TOOLS, e9 as AI_CATEGORY_EMBEDDING, ea as AI_CATEGORY_VECTOR_STORES, eb as AI_UNCATEGORIZED_CATEGORY, ec as AI_OTHERS_NODE_CREATOR_VIEW, bu as NodeConnectionTypes, bw as useNodeTypesStore, aP as useTemplatesStore, ed as AI_NODE_CREATOR_VIEW, ee as RSS_READ_NODE_TYPE, ef as EMAIL_SEND_NODE_TYPE, eg as SET_NODE_TYPE, eh as CODE_NODE_TYPE, ei as DATETIME_NODE_TYPE, ej as FILTER_NODE_TYPE, ek as REMOVE_DUPLICATES_NODE_TYPE, el as SPLIT_OUT_NODE_TYPE, em as LIMIT_NODE_TYPE, en as SUMMARIZE_NODE_TYPE, eo as AGGREGATE_NODE_TYPE, ep as MERGE_NODE_TYPE, eq as HTML_NODE_TYPE, er as MARKDOWN_NODE_TYPE, es as XML_NODE_TYPE, et as CRYPTO_NODE_TYPE, eu as EXTRACT_FROM_FILE_NODE_TYPE, ev as CONVERT_TO_FILE_NODE_TYPE, ew as COMPRESSION_NODE_TYPE, ex as EDIT_IMAGE_NODE_TYPE, ey as TRANSFORM_DATA_SUBCATEGORY, ez as IF_NODE_TYPE, eA as SPLIT_IN_BATCHES_NODE_TYPE, eB as FLOWS_CONTROL_SUBCATEGORY, eC as HTTP_REQUEST_NODE_TYPE, eD as WEBHOOK_NODE_TYPE, eE as HELPERS_SUBCATEGORY, eF as HITL_SUBCATEGORY, eG as TRIGGER_NODE_CREATOR_VIEW, eH as REGULAR_NODE_CREATOR_VIEW, eI as MANUAL_TRIGGER_NODE_TYPE, eJ as EMAIL_IMAP_NODE_TYPE, eK as SCHEDULE_TRIGGER_NODE_TYPE, eL as FORM_TRIGGER_NODE_TYPE, dB as EXECUTE_WORKFLOW_TRIGGER_NODE_TYPE, bv as CHAT_TRIGGER_NODE_TYPE, eM as OTHER_TRIGGER_NODES_SUBCATEGORY, bp as AI_CATEGORY_CHAINS, S as defineStore, r as ref, q as computed, a2 as useCanvasStore, eN as AI_CATEGORY_ROOT_NODES, z as nextTick, eO as getThemedValue, L as useUIStore, bq as AI_CODE_NODE_TYPE, eP as AI_TRANSFORM_NODE_TYPE$1, eQ as isValidCanvasConnectionMode, c2 as CanvasConnectionMode, c1 as isValidNodeConnectionType, U as useWorkflowsStore, au as useNDVStore, aR as useExternalHooks, eR as isVueFlowConnection, br as getNodeInputs, eS as CUSTOM_API_CALL_KEY, Y as STORES, c5 as NODE_CREATOR_OPEN_SOURCES, ai as useTelemetry, a1 as useRootStore, bM as useCredentialsStore, bP as useHistoryStore, E as useTagsStore, av as useExecutionsStore, a4 as useProjectsStore, a as useToast, a7 as useWorkflowHelpers, bx as useNodeHelpers, ba as useClipboard, eT as UPDATE_WEBHOOK_ID_NODE_TYPES, dw as generateNodesGraph, eU as getNewNodePosition, eV as AddConnectionCommand, aA as STICKY_NODE_TYPE, bt as getNodeOutputs, eW as RemoveConnectionCommand, ac as EnterpriseEditionFeature, cb as deepCopy, eX as isPresent, eY as RemoveNodeCommand, eZ as RenameNodeCommand, bi as usePinnedData, e_ as useDataSchema, e$ as MoveNodeCommand, f0 as DEFAULT_NODE_SIZE, f1 as CONFIGURATION_NODE_SIZE, bs as getConnectionTypes, f2 as generateOffsets, f3 as CONFIGURABLE_NODE_SIZE, f4 as PUSH_NODES_OFFSET, f5 as AddNodeCommand, f6 as NODE_SIZE, f7 as GRID_SIZE, f8 as getNodeParameters } from "./index-DD7Wuhk5.js";
2
2
  function castSlice(array, start, end) {
3
3
  var length = array.length;
4
4
  end = end === void 0 ? length : end;
@@ -72,236 +72,6 @@ function baseDifference(array, values, iteratee, comparator) {
72
72
  var difference = baseRest(function(array, values) {
73
73
  return isArrayLikeObject(array) ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true)) : [];
74
74
  });
75
- function useNodeType(options = {}) {
76
- const nodeTypesStore = useNodeTypesStore();
77
- const nodeType = computed(() => {
78
- if (options.nodeType) {
79
- return unref(options.nodeType);
80
- }
81
- const activeNode = unref(options.node);
82
- if (activeNode) {
83
- return nodeTypesStore.getNodeType(activeNode.type, activeNode.typeVersion);
84
- }
85
- return null;
86
- });
87
- const isSubNodeType$1 = computed(() => isSubNodeType(nodeType.value));
88
- const isMultipleOutputsNodeType = computed(() => {
89
- const outputs = nodeType.value?.outputs;
90
- if (typeof outputs === "string") return false;
91
- return (outputs ?? []).length > 1;
92
- });
93
- return {
94
- nodeType,
95
- isSubNodeType: isSubNodeType$1,
96
- isMultipleOutputsNodeType
97
- };
98
- }
99
- function usePinnedData(node, options = {}) {
100
- const rootStore = useRootStore();
101
- const workflowsStore = useWorkflowsStore();
102
- const toast = useToast();
103
- const i18n2 = useI18n();
104
- const telemetry = useTelemetry();
105
- const externalHooks = useExternalHooks();
106
- const { getInputDataWithPinned } = useDataSchema();
107
- const { isSubNodeType: isSubNodeType2, isMultipleOutputsNodeType } = useNodeType({
108
- node
109
- });
110
- const data = computed(() => {
111
- const targetNode = unref(node);
112
- return targetNode ? workflowsStore.pinDataByNodeName(targetNode.name) : void 0;
113
- });
114
- const hasData = computed(() => {
115
- const targetNode = unref(node);
116
- return !!targetNode && typeof data.value !== "undefined";
117
- });
118
- const isValidNodeType = computed(() => {
119
- const targetNode = unref(node);
120
- return !!targetNode && !isSubNodeType2.value && !isMultipleOutputsNodeType.value && !PIN_DATA_NODE_TYPES_DENYLIST.includes(targetNode.type);
121
- });
122
- function canPinNode(checkDataEmpty = false, outputIndex) {
123
- const targetNode = unref(node);
124
- if (targetNode === null || PIN_DATA_NODE_TYPES_DENYLIST.includes(targetNode.type)) return false;
125
- const nodeType = useNodeTypesStore().getNodeType(targetNode.type, targetNode.typeVersion);
126
- const dataToPin = getInputDataWithPinned(targetNode);
127
- if (!nodeType || checkDataEmpty && dataToPin.length === 0) return false;
128
- const workflow = workflowsStore.getCurrentWorkflow();
129
- const outputs = getNodeOutputs(workflow, targetNode, nodeType).map(
130
- (output) => typeof output === "string" ? { type: output } : output
131
- );
132
- const mainOutputs = outputs.filter(
133
- (output) => output.type === NodeConnectionTypes.Main && output.category !== "error"
134
- );
135
- let indexAcceptable = true;
136
- if (outputIndex !== void 0) {
137
- const output = outputs[outputIndex];
138
- if (outputs[outputIndex] === void 0) return false;
139
- indexAcceptable = output.type === NodeConnectionTypes.Main && output.category !== "error";
140
- }
141
- return mainOutputs.length === 1 && indexAcceptable;
142
- }
143
- function isValidJSON(data2) {
144
- try {
145
- JSON.parse(data2);
146
- return true;
147
- } catch (error) {
148
- const title = i18n2.baseText("runData.editOutputInvalid");
149
- const toRemove = new RegExp(/JSON\.parse:|of the JSON data/, "g");
150
- const message = error.message.replace(toRemove, "").trim();
151
- const positionMatchRegEx = /at position (\d+)/;
152
- const positionMatch = error.message.match(positionMatchRegEx);
153
- error.message = message.charAt(0).toUpperCase() + message.slice(1);
154
- error.message = error.message.replace(
155
- "Unexpected token ' in JSON",
156
- i18n2.baseText("runData.editOutputInvalid.singleQuote")
157
- );
158
- if (positionMatch) {
159
- const position = parseInt(positionMatch[1], 10);
160
- const lineBreaksUpToPosition = (data2.slice(0, position).match(/\n/g) || []).length;
161
- error.message = error.message.replace(
162
- positionMatchRegEx,
163
- i18n2.baseText("runData.editOutputInvalid.atPosition", {
164
- interpolate: {
165
- position: `${position}`
166
- }
167
- })
168
- );
169
- error.message = `${i18n2.baseText("runData.editOutputInvalid.onLine", {
170
- interpolate: {
171
- line: `${lineBreaksUpToPosition + 1}`
172
- }
173
- })} ${error.message}`;
174
- }
175
- toast.showError(error, title);
176
- return false;
177
- }
178
- }
179
- function getMaxPinnedDataSize() {
180
- return window.maxPinnedDataSize ?? MAX_PINNED_DATA_SIZE;
181
- }
182
- function isValidSize(data2) {
183
- const targetNode = unref(node);
184
- if (!targetNode) {
185
- return false;
186
- }
187
- if (typeof data2 === "object") data2 = JSON.stringify(data2);
188
- const { pinData: currentPinData, ...workflow } = workflowsStore.getCurrentWorkflow();
189
- const workflowJson = jsonStringify(workflow, { replaceCircularRefs: true });
190
- const newPinData = { ...currentPinData, [targetNode.name]: data2 };
191
- const newPinDataSize = workflowsStore.getPinDataSize(newPinData);
192
- if (newPinDataSize > getMaxPinnedDataSize()) {
193
- toast.showError(
194
- new Error(
195
- i18n2.baseText("ndv.pinData.error.tooLarge.description", {
196
- interpolate: {
197
- size: toMegaBytes(newPinDataSize),
198
- limit: toMegaBytes(getMaxPinnedDataSize())
199
- }
200
- })
201
- ),
202
- i18n2.baseText("ndv.pinData.error.tooLarge.title")
203
- );
204
- return false;
205
- }
206
- const workflowSize = stringSizeInBytes(workflowJson) + newPinDataSize;
207
- const limit = MAX_WORKFLOW_SIZE - MAX_EXPECTED_REQUEST_SIZE;
208
- if (workflowSize > limit) {
209
- toast.showError(
210
- new Error(
211
- i18n2.baseText("ndv.pinData.error.tooLargeWorkflow.description", {
212
- interpolate: { size: toMegaBytes(workflowSize), limit: toMegaBytes(limit) }
213
- })
214
- ),
215
- i18n2.baseText("ndv.pinData.error.tooLargeWorkflow.title")
216
- );
217
- return false;
218
- }
219
- return true;
220
- }
221
- function onSetDataSuccess({ source }) {
222
- const targetNode = unref(node);
223
- const displayMode = unref(options.displayMode);
224
- const runIndex = unref(options.runIndex);
225
- const telemetryPayload = {
226
- pinning_source: source,
227
- node_type: targetNode?.type,
228
- push_ref: rootStore.pushRef,
229
- data_size: stringSizeInBytes(data.value),
230
- view: displayMode,
231
- run_index: runIndex
232
- };
233
- void externalHooks.run("runData.onDataPinningSuccess", telemetryPayload);
234
- telemetry.track("Ndv data pinning success", telemetryPayload);
235
- }
236
- function onSetDataError({
237
- errorType,
238
- source
239
- }) {
240
- const targetNode = unref(node);
241
- const displayMode = unref(options.displayMode);
242
- const runIndex = unref(options.runIndex);
243
- telemetry.track("Ndv data pinning failure", {
244
- pinning_source: source,
245
- node_type: targetNode?.type,
246
- push_ref: rootStore.pushRef,
247
- data_size: stringSizeInBytes(data.value),
248
- view: displayMode,
249
- run_index: runIndex,
250
- error_type: errorType
251
- });
252
- }
253
- function setData(data2, source) {
254
- const targetNode = unref(node);
255
- if (!targetNode) {
256
- return;
257
- }
258
- if (typeof data2 === "string") {
259
- if (!isValidJSON(data2)) {
260
- onSetDataError({ errorType: "invalid-json", source });
261
- throw new Error("Invalid JSON");
262
- }
263
- data2 = jsonParse(data2);
264
- }
265
- if (!isValidSize(data2)) {
266
- onSetDataError({ errorType: "data-too-large", source });
267
- throw new Error("Data too large");
268
- }
269
- workflowsStore.pinData({ node: targetNode, data: data2 });
270
- onSetDataSuccess({ source });
271
- }
272
- function onUnsetData({ source }) {
273
- const targetNode = unref(node);
274
- const runIndex = unref(options.runIndex);
275
- telemetry.track("User unpinned ndv data", {
276
- node_type: targetNode?.type,
277
- push_ref: rootStore.pushRef,
278
- run_index: runIndex,
279
- source,
280
- data_size: stringSizeInBytes(data.value)
281
- });
282
- }
283
- function unsetData(source) {
284
- const targetNode = unref(node);
285
- if (!targetNode) {
286
- return;
287
- }
288
- onUnsetData({ source });
289
- workflowsStore.unpinData({ node: targetNode });
290
- }
291
- return {
292
- data,
293
- hasData,
294
- isValidNodeType,
295
- canPinNode,
296
- setData,
297
- onSetDataSuccess,
298
- onSetDataError,
299
- unsetData,
300
- onUnsetData,
301
- isValidJSON,
302
- isValidSize
303
- };
304
- }
305
75
  const SEQUENTIAL_BONUS = 60;
306
76
  const SEPARATOR_BONUS = 30;
307
77
  const CAMEL_BONUS = 30;
@@ -2082,11 +1852,15 @@ function useCanvasOperations({ router }) {
2082
1852
  trackTidyUp({ result, source, target });
2083
1853
  }
2084
1854
  function trackTidyUp({ result, source, target }) {
2085
- telemetry.track("User tidied up canvas", {
2086
- source,
2087
- target,
2088
- nodes_count: result.nodes.length
2089
- });
1855
+ telemetry.track(
1856
+ "User tidied up canvas",
1857
+ {
1858
+ source,
1859
+ target,
1860
+ nodes_count: result.nodes.length
1861
+ },
1862
+ { withPostHog: true }
1863
+ );
2090
1864
  }
2091
1865
  function updateNodesPosition(events, { trackHistory = false, trackBulk = true } = {}) {
2092
1866
  if (trackHistory && trackBulk) {
@@ -2606,7 +2380,8 @@ function useCanvasOperations({ router }) {
2606
2380
  node.parameters,
2607
2381
  true,
2608
2382
  false,
2609
- node
2383
+ node,
2384
+ nodeTypeDescription
2610
2385
  );
2611
2386
  node.parameters = nodeParameters ?? {};
2612
2387
  }
@@ -3354,11 +3129,9 @@ function useCanvasOperations({ router }) {
3354
3129
  uiStore.stateIsDirty = false;
3355
3130
  return data;
3356
3131
  }
3357
- async function toggleChatOpen(source) {
3132
+ async function toggleChatOpen(source, isOpen) {
3358
3133
  const workflow = workflowsStore.getCurrentWorkflow();
3359
- workflowsStore.setPanelState(
3360
- workflowsStore.chatPanelState === "closed" ? "attached" : "closed"
3361
- );
3134
+ workflowsStore.toggleLogsPanelOpen(isOpen);
3362
3135
  const payload = {
3363
3136
  workflow_id: workflow.id,
3364
3137
  button_type: source
@@ -3435,24 +3208,22 @@ export {
3435
3208
  AINodesView as A,
3436
3209
  RegularView as R,
3437
3210
  TriggerView as T,
3438
- upperFirst as a,
3439
- useNodeCreatorStore as b,
3440
- useCanvasOperations as c,
3441
- createCanvasConnectionHandleString as d,
3442
- capitalize as e,
3443
- checkOverlap as f,
3444
- mapLegacyConnectionsToCanvasConnections as g,
3445
- useNodeType as h,
3211
+ useNodeCreatorStore as a,
3212
+ useCanvasOperations as b,
3213
+ createCanvasConnectionHandleString as c,
3214
+ capitalize as d,
3215
+ checkOverlap as e,
3216
+ mapLegacyConnectionsToCanvasConnections as f,
3217
+ formatTriggerActionName as g,
3218
+ useViewStacks as h,
3446
3219
  insertSpacersBetweenEndpoints as i,
3447
- formatTriggerActionName as j,
3448
- useViewStacks as k,
3449
- camelCase as l,
3220
+ camelCase as j,
3221
+ useKeyboardNavigation as k,
3222
+ AIView as l,
3450
3223
  mapLegacyEndpointsToCanvasConnectionPort as m,
3451
- useKeyboardNavigation as n,
3452
- AIView as o,
3224
+ flattenCreateElements as n,
3453
3225
  parseCanvasConnectionHandleString as p,
3454
- flattenCreateElements as q,
3455
3226
  sortNodeCreateElements as s,
3456
3227
  transformNodeType as t,
3457
- usePinnedData as u
3228
+ upperFirst as u
3458
3229
  };
@@ -1,5 +1,5 @@
1
- import { U as useRoute, a2 as useSourceControlStore, T as useWorkflowsStore, q as computed, b as useRouter, bv as useNodeTypesStore, bN as START_NODE_TYPE } from "./index-CkOV8f0Z.js";
2
- import { c as useCanvasOperations } from "./useCanvasOperations-FyzGfva5.js";
1
+ import { W as useRoute, a3 as useSourceControlStore, U as useWorkflowsStore, q as computed, b as useRouter, bw as useNodeTypesStore, bS as START_NODE_TYPE } from "./index-DD7Wuhk5.js";
2
+ import { b as useCanvasOperations } from "./useCanvasOperations-DCaSrD1N.js";
3
3
  function useClearExecutionButtonVisible() {
4
4
  const route = useRoute();
5
5
  const sourceControlStore = useSourceControlStore();
@@ -1,4 +1,4 @@
1
- import { b as useRouter, a as useToast, T as useWorkflowsStore, p as useSettingsStore, L as useUIStore, a7 as usePageRedirectionHelper, q as computed, ab as EnterpriseEditionFeature, c as useI18n, cd as DEBUG_PAYWALL_MODAL_KEY, ar as h, ce as sanitizeHtml, aj as useMessage, ak as MODAL_CONFIRM, V as VIEWS, ah as useTelemetry, a0 as useRootStore, cf as isFullExecutionResponse } from "./index-CkOV8f0Z.js";
1
+ import { b as useRouter, a as useToast, U as useWorkflowsStore, p as useSettingsStore, L as useUIStore, a8 as usePageRedirectionHelper, q as computed, ac as EnterpriseEditionFeature, c as useI18n, ch as DEBUG_PAYWALL_MODAL_KEY, as as h, ci as sanitizeHtml, ak as useMessage, al as MODAL_CONFIRM, V as VIEWS, ai as useTelemetry, a1 as useRootStore, cj as isFullExecutionResponse } from "./index-DD7Wuhk5.js";
2
2
  const useExecutionDebugging = () => {
3
3
  const telemetry = useTelemetry();
4
4
  const router = useRouter();
@@ -1,18 +1,5 @@
1
- import { fl as dateFormat, b as useRouter, V as VIEWS, ah as useTelemetry, c as useI18n } from "./index-CkOV8f0Z.js";
2
- const convertToDisplayDateComponents = (fullDate) => {
3
- const mask = `d mmm${new Date(fullDate).getFullYear() === (/* @__PURE__ */ new Date()).getFullYear() ? "" : ", yyyy"}#HH:MM:ss`;
4
- const formattedDate = dateFormat(fullDate, mask);
5
- const [date, time] = formattedDate.split("#");
6
- return { date, time };
7
- };
8
- function convertToDisplayDate(fullDate) {
9
- const mask = `d mmm${new Date(fullDate).getFullYear() === (/* @__PURE__ */ new Date()).getFullYear() ? "" : ", yyyy"}#HH:MM:ss`;
10
- const formattedDate = dateFormat(fullDate, mask);
11
- const [date, time] = formattedDate.split("#");
12
- return { date, time };
13
- }
14
- const toDayMonth = (fullDate) => dateFormat(fullDate, "d mmm");
15
- const toTime = (fullDate) => dateFormat(fullDate, "HH:MM:ss");
1
+ import { c as convertToDisplayDate } from "./dateFormatter-C7xnNKzY.js";
2
+ import { b as useRouter, V as VIEWS, ai as useTelemetry, c as useI18n } from "./index-DD7Wuhk5.js";
16
3
  function useExecutionHelpers() {
17
4
  const i18n = useI18n();
18
5
  const router = useRouter();
@@ -104,9 +91,5 @@ function useExecutionHelpers() {
104
91
  };
105
92
  }
106
93
  export {
107
- toTime as a,
108
- convertToDisplayDateComponents as b,
109
- convertToDisplayDate as c,
110
- toDayMonth as t,
111
94
  useExecutionHelpers as u
112
95
  };
@@ -1,6 +1,6 @@
1
- import { gV as require$$0, ch as getDefaultExportFromCjs, a as useToast, m as unref, cI as assert, gW as CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS, gX as CURL_IMPORT_NODES_PROTOCOLS, c as useI18n, gY as get } from "./index-CkOV8f0Z.js";
1
+ import { gP as require$$0, cl as getDefaultExportFromCjs, a as useToast, m as unref, cM as assert, gQ as CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS, gR as CURL_IMPORT_NODES_PROTOCOLS, c as useI18n, gS as get } from "./index-DD7Wuhk5.js";
2
2
  import { c as commonjsRequire } from "./_commonjs-dynamic-modules-TGKdzP3c.js";
3
- import { i as importCurlEventBus } from "./import-curl-C9KhAemD.js";
3
+ import { i as importCurlEventBus } from "./import-curl-C6ERUxFe.js";
4
4
  class CCError extends Error {
5
5
  }
6
6
  const UTF8encoder = new TextEncoder();
@@ -1,7 +1,6 @@
1
- import { dm as makeRestApiRequest, S as defineStore, a0 as useRootStore, d as defineComponent, c6 as resolveDirective, i as createElementBlock, g as openBlock, aB as withDirectives, k as createBaseVNode, t as toDisplayString, m as unref, c as useI18n, a6 as useWorkflowHelpers, bw as useNodeHelpers, a as useToast, bH as useCredentialsStore, bv as useNodeTypesStore, p as useSettingsStore, L as useUIStore, T as useWorkflowsStore, dn as useAssistantStore, av as usePostHog, r as ref, dp as clearPopupWindowState, bW as AI_CREDITS_EXPERIMENT, ah as useTelemetry, dq as parse, dr as hasTrimmedItem, ds as codeNodeEditorEventBus, al as WORKFLOW_SETTINGS_MODAL_KEY, dt as generateNodesGraph, ar as h, du as getTriggerNodeServiceName, dv as hasTrimmedData, aQ as useExternalHooks, dw as useSchemaPreviewStore } from "./index-CkOV8f0Z.js";
2
- import { g as globalLinkActionsEventBus } from "./global-link-actions-BphqczCY.js";
3
- import { u as usePushConnectionStore } from "./pushConnection.store-Cb2TGyrZ.js";
4
- import { g as getEasyAiWorkflowJson } from "./easyAiWorkflowUtils-CLssJdgl.js";
1
+ import { dq as makeRestApiRequest, S as defineStore, a1 as useRootStore, d as defineComponent, cc as resolveDirective, i as createElementBlock, g as openBlock, aC as withDirectives, k as createBaseVNode, t as toDisplayString, m as unref, c as useI18n, a7 as useWorkflowHelpers, bx as useNodeHelpers, a as useToast, bM as useCredentialsStore, bw as useNodeTypesStore, T as usePushConnectionStore, p as useSettingsStore, L as useUIStore, U as useWorkflowsStore, dr as useAssistantStore, aw as usePostHog, r as ref, ds as clearPopupWindowState, b$ as AI_CREDITS_EXPERIMENT, ai as useTelemetry, dt as parse, du as hasTrimmedItem, dv as codeNodeEditorEventBus, am as WORKFLOW_SETTINGS_MODAL_KEY, dw as generateNodesGraph, as as h, dx as getTriggerNodeServiceName, dy as hasTrimmedData, aR as useExternalHooks, dz as useSchemaPreviewStore } from "./index-DD7Wuhk5.js";
2
+ import { g as globalLinkActionsEventBus } from "./global-link-actions-vGpWr9Uz.js";
3
+ import { g as getEasyAiWorkflowJson } from "./easyAiWorkflowUtils-V__OjFo9.js";
5
4
  const GET_STATUS_ENDPOINT = "/orchestration/worker/status";
6
5
  const sendGetWorkerStatus = async (context) => {
7
6
  await makeRestApiRequest(context, "POST", GET_STATUS_ENDPOINT);
@@ -1,4 +1,4 @@
1
- import { c7 as useTestDefinitionStore, r as ref, q as computed } from "./index-CkOV8f0Z.js";
1
+ import { g5 as useTestDefinitionStore, r as ref, q as computed } from "./index-DD7Wuhk5.js";
2
2
  function useTestDefinitionForm() {
3
3
  const evaluationsStore = useTestDefinitionStore();
4
4
  const state = ref({
@@ -1,4 +1,4 @@
1
- import { r as ref, b as useRouter, a6 as useWorkflowHelpers, T as useWorkflowsStore, L as useUIStore, a as useToast, a4 as useNpsSurveyStore, W as PLACEHOLDER_EMPTY_WORKFLOW_ID, ah as useTelemetry, aQ as useExternalHooks, c as useI18n, aK as useStorage, dC as LOCAL_STORAGE_ACTIVATION_FLAG, dD as WORKFLOW_ACTIVE_MODAL_KEY } from "./index-CkOV8f0Z.js";
1
+ import { r as ref, b as useRouter, a7 as useWorkflowHelpers, U as useWorkflowsStore, L as useUIStore, a as useToast, a5 as useNpsSurveyStore, X as PLACEHOLDER_EMPTY_WORKFLOW_ID, ai as useTelemetry, aR as useExternalHooks, c as useI18n, aL as useStorage, dE as LOCAL_STORAGE_ACTIVATION_FLAG, dF as WORKFLOW_ACTIVE_MODAL_KEY } from "./index-DD7Wuhk5.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-CkOV8f0Z.js"></script>
20
- <link rel="stylesheet" crossorigin href="/{{BASE_PATH}}/assets/index-BaqhUIB7.css">
19
+ <script type="module" crossorigin src="/{{BASE_PATH}}/assets/index-DD7Wuhk5.js"></script>
20
+ <link rel="stylesheet" crossorigin href="/{{BASE_PATH}}/assets/index-DJ205bL0.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.86.0",
3
+ "version": "1.87.0",
4
4
  "description": "Workflow Editor UI for n8n",
5
5
  "main": "index.js",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -1,4 +0,0 @@
1
- import { gU as _sfc_main } from "./index-CkOV8f0Z.js";
2
- export {
3
- _sfc_main as default
4
- };
@@ -1,152 +0,0 @@
1
- import { d as defineComponent, $ as useCssModule, q as computed, c as useI18n, h as resolveComponent, i as createElementBlock, f as createCommentVNode, g as openBlock, j as createVNode, e as createBlock, w as withCtx, l as createTextVNode, t as toDisplayString, m as unref, n as normalizeClass, F as Fragment, D as renderList, k as createBaseVNode, gC as INSIGHT_IMPACT_TYPES, gD as INSIGHTS_UNIT_IMPACT_MAPPING, _ as _export_sfc } from "./index-CkOV8f0Z.js";
2
- const smartDecimal = (value, decimals = 2) => {
3
- if (Number.isInteger(value)) {
4
- return value;
5
- }
6
- if (value.toString().split(".")[1].length <= decimals) {
7
- return value;
8
- }
9
- return Number(value.toFixed(decimals));
10
- };
11
- const _hoisted_1 = {
12
- key: 1,
13
- "data-test-id": "insights-summary-tabs"
14
- };
15
- const _hoisted_2 = ["data-test-id"];
16
- const _hoisted_3 = { href: "#" };
17
- const _hoisted_4 = { key: 1 };
18
- const _sfc_main = /* @__PURE__ */ defineComponent({
19
- __name: "InsightsSummary",
20
- props: {
21
- summary: {},
22
- loading: { type: Boolean }
23
- },
24
- setup(__props) {
25
- const i18n = useI18n();
26
- const $style = useCssModule();
27
- const summaryTitles = computed(() => ({
28
- total: i18n.baseText("insights.banner.title.total"),
29
- failed: i18n.baseText("insights.banner.title.failed"),
30
- failureRate: i18n.baseText("insights.banner.title.failureRate"),
31
- timeSaved: i18n.baseText("insights.banner.title.timeSaved"),
32
- averageRunTime: i18n.baseText("insights.banner.title.averageRunTime")
33
- }));
34
- const getSign = (n) => n > 0 ? "+" : void 0;
35
- const getImpactStyle = (id, value) => {
36
- const impact = INSIGHTS_UNIT_IMPACT_MAPPING[id];
37
- if (value === 0 || impact === INSIGHT_IMPACT_TYPES.NEUTRAL) {
38
- return $style.neutral;
39
- }
40
- if (impact === INSIGHT_IMPACT_TYPES.POSITIVE) {
41
- return value > 0 ? $style.positive : $style.negative;
42
- }
43
- if (impact === INSIGHT_IMPACT_TYPES.NEGATIVE) {
44
- return value < 0 ? $style.positive : $style.negative;
45
- }
46
- return $style.neutral;
47
- };
48
- return (_ctx, _cache) => {
49
- const _component_N8nHeading = resolveComponent("N8nHeading");
50
- const _component_N8nLoading = resolveComponent("N8nLoading");
51
- const _component_i18n_t = resolveComponent("i18n-t");
52
- const _component_N8nIcon = resolveComponent("N8nIcon");
53
- const _component_N8nTooltip = resolveComponent("N8nTooltip");
54
- return _ctx.summary.length ? (openBlock(), createElementBlock("div", {
55
- key: 0,
56
- class: normalizeClass(unref($style).insights)
57
- }, [
58
- createVNode(_component_N8nHeading, {
59
- bold: "",
60
- tag: "h3",
61
- size: "small",
62
- color: "text-light",
63
- class: "mb-xs"
64
- }, {
65
- default: withCtx(() => [
66
- createTextVNode(toDisplayString(unref(i18n).baseText("insights.banner.title", { interpolate: { count: 7 } })), 1)
67
- ]),
68
- _: 1
69
- }),
70
- _ctx.loading ? (openBlock(), createBlock(_component_N8nLoading, {
71
- key: 0,
72
- class: normalizeClass(unref($style).loading),
73
- cols: 5
74
- }, null, 8, ["class"])) : (openBlock(), createElementBlock("ul", _hoisted_1, [
75
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.summary, ({ id, value, deviation, unit }) => {
76
- return openBlock(), createElementBlock("li", {
77
- key: id,
78
- "data-test-id": `insights-summary-tab-${id}`
79
- }, [
80
- createBaseVNode("p", null, [
81
- createBaseVNode("strong", null, toDisplayString(summaryTitles.value[id]), 1),
82
- value === 0 && id === "timeSaved" ? (openBlock(), createElementBlock("span", {
83
- key: 0,
84
- class: normalizeClass(unref($style).empty)
85
- }, [
86
- _cache[0] || (_cache[0] = createBaseVNode("em", null, "--", -1)),
87
- createBaseVNode("small", null, [
88
- createVNode(_component_N8nTooltip, { placement: "bottom" }, {
89
- content: withCtx(() => [
90
- createVNode(_component_i18n_t, { keypath: "insights.banner.timeSaved.tooltip" }, {
91
- link: withCtx(() => [
92
- createBaseVNode("a", _hoisted_3, toDisplayString(unref(i18n).baseText("insights.banner.timeSaved.tooltip.link.text")), 1)
93
- ]),
94
- _: 1
95
- })
96
- ]),
97
- default: withCtx(() => [
98
- createVNode(_component_N8nIcon, {
99
- class: normalizeClass(unref($style).icon),
100
- icon: "info-circle"
101
- }, null, 8, ["class"])
102
- ]),
103
- _: 1
104
- })
105
- ])
106
- ], 2)) : (openBlock(), createElementBlock("span", _hoisted_4, [
107
- createBaseVNode("em", null, [
108
- createTextVNode(toDisplayString(unref(smartDecimal)(value)) + " ", 1),
109
- createBaseVNode("i", null, toDisplayString(unit), 1)
110
- ]),
111
- deviation !== null ? (openBlock(), createElementBlock("small", {
112
- key: 0,
113
- class: normalizeClass(getImpactStyle(id, deviation))
114
- }, [
115
- createVNode(_component_N8nIcon, {
116
- class: normalizeClass([unref($style).icon, getImpactStyle(id, deviation)]),
117
- icon: deviation === 0 ? "caret-right" : deviation > 0 ? "caret-up" : "caret-down"
118
- }, null, 8, ["class", "icon"]),
119
- createTextVNode(" " + toDisplayString(getSign(deviation)) + toDisplayString(unref(smartDecimal)(deviation)), 1)
120
- ], 2)) : createCommentVNode("", true)
121
- ]))
122
- ])
123
- ], 8, _hoisted_2);
124
- }), 128))
125
- ]))
126
- ], 2)) : createCommentVNode("", true);
127
- };
128
- }
129
- });
130
- const insights = "_insights_1r55j_123";
131
- const empty = "_empty_1r55j_165";
132
- const icon = "_icon_1r55j_173";
133
- const positive = "_positive_1r55j_206";
134
- const negative = "_negative_1r55j_210";
135
- const neutral = "_neutral_1r55j_214";
136
- const loading = "_loading_1r55j_229";
137
- const style0 = {
138
- insights,
139
- empty,
140
- icon,
141
- positive,
142
- negative,
143
- neutral,
144
- loading
145
- };
146
- const cssModules = {
147
- "$style": style0
148
- };
149
- const InsightsSummary = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
150
- export {
151
- InsightsSummary as I
152
- };