n8n-editor-ui 1.85.2 → 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 (120) 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-B2Xk-4o2.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-DIbgkfAC.js} +1 -1
  4. package/dist/assets/{AuthView-Bhr2Ols-.js → AuthView-DIQI5asI.js} +2 -2
  5. package/dist/assets/{CanvasChatSwitch-BcSDHC-c.css → CanvasChatSwitch-0IWSu8RE.css} +488 -46
  6. package/dist/assets/{CanvasChatSwitch-E9vu2jW8.js → CanvasChatSwitch-BIpZuY-n.js} +697 -214
  7. package/dist/assets/{ChangePasswordView-BzAEcqVw.js → ChangePasswordView-D8Qv0tim.js} +3 -3
  8. package/dist/assets/CollectionParameter-DT1MnS63.js +4 -0
  9. package/dist/assets/{CredentialsView-CZiEXdjH.js → CredentialsView-tJ8-2RrO.js} +8 -8
  10. package/dist/assets/{ErrorView-C1QywuMY.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-l5VZIkoy.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-gcknFyjA.js} +23 -20
  13. package/dist/assets/{ExecutionsView-Bo0Nk8lV.js → ExecutionsView-BCfIz8EF.js} +49 -57
  14. package/dist/assets/{ExecutionsView-JCKikuIS.css → ExecutionsView-ByQf9yli.css} +13 -47
  15. package/dist/assets/{FileSaver.min-D3VgyjMF.js → FileSaver.min-Bs2qHlKb.js} +1 -1
  16. package/dist/assets/{FixedCollectionParameter-RpfOY9Ho.js → FixedCollectionParameter-E0LDqNW3.js} +1 -1
  17. package/dist/assets/{ForgotMyPasswordView-DPTddCxG.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/{useOverview-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-CxllxUni.js → Logo-Vm92axlM.js} +1 -1
  32. package/dist/assets/{MainHeader-9gTxUJIR.js → MainHeader-BUhpvu2K.js} +9 -10
  33. package/dist/assets/{MainSidebar-CRJML8mh.js → MainSidebar-D5P5FSUQ.js} +11 -4
  34. package/dist/assets/{NodeCreation-zoYjBJl6.js → NodeCreation-BgW5u-Bc.js} +4 -4
  35. package/dist/assets/{NodeCreator-D-qBRyBy.js → NodeCreator-CFe2n6vJ.js} +10 -26
  36. package/dist/assets/{NodeDetailsView-C1z3N5z_.css → NodeDetailsView-BT-ro74o.css} +63 -70
  37. package/dist/assets/{NodeDetailsView-C1iBFaC1.js → NodeDetailsView-CmtK-rDD.js} +145 -482
  38. package/dist/assets/{NodeView-Bio-FnnF.js → NodeView-BqaNPfpx.js} +19 -21
  39. package/dist/assets/{ProjectCardBadge-BEflW6oP.js → ProjectCardBadge-BKgtzWr1.js} +69 -36
  40. package/dist/assets/{ProjectCardBadge-C78ap7Rc.css → ProjectCardBadge-t3v64i1e.css} +18 -13
  41. package/dist/assets/{ProjectHeader-DK3_g_D8.js → ProjectHeader-BWVSdavS.js} +33 -7
  42. package/dist/assets/{ProjectHeader-B-a6_GH6.css → ProjectHeader-BsBpG-Mj.css} +7 -7
  43. package/dist/assets/{ProjectSettings-CLMy_-YC.js → ProjectSettings-BL-2-uOg.js} +3 -3
  44. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-CSazgsi8.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-BL-bMMgn.js} +1 -2
  45. package/dist/assets/{ResourcesListLayout-CBvvL0VM.js → ResourcesListLayout-CozpmfUY.js} +1 -1
  46. package/dist/assets/{RunDataAi-C-tu9GrI.js → RunDataAi-B_EadpzG.js} +188 -94
  47. package/dist/assets/{RunDataAi-CN9FrT9c.css → RunDataAi-CUUDqZRP.css} +128 -0
  48. package/dist/assets/{RunDataJson-ClpS_600.js → RunDataJson-CyNNCtyd.js} +11 -12
  49. package/dist/assets/{RunDataJsonActions-gWW8Qkt_.js → RunDataJsonActions-SQqaiBEP.js} +1 -2
  50. package/dist/assets/{RunDataSearch-Dgv5JYk-.js → RunDataSearch-BF9kshKq.js} +1 -1
  51. package/dist/assets/{RunDataTable-nsOk35pD.js → RunDataTable-DsW7wuc2.js} +10 -8
  52. package/dist/assets/{SamlOnboarding-C5TSdGcx.js → SamlOnboarding-BX7RiRJB.js} +3 -3
  53. package/dist/assets/{SettingsApiView-CzQG1ofR.js → SettingsApiView-CDIPYvaG.js} +1 -1
  54. package/dist/assets/{SettingsCommunityNodesView-D_F3n2NO.js → SettingsCommunityNodesView-BRSEkT73.js} +4 -5
  55. package/dist/assets/{SettingsExternalSecrets-BUgKlMoR.js → SettingsExternalSecrets-D7ASuAnS.js} +1 -1
  56. package/dist/assets/{SettingsLdapView-CAmuVErd.js → SettingsLdapView-DA5fZZ51.js} +1 -1
  57. package/dist/assets/{SettingsLogStreamingView-DLkHrsx5.js → SettingsLogStreamingView-C9qkYvCr.js} +1 -1
  58. package/dist/assets/{SettingsPersonalView-2elwsG0f.js → SettingsPersonalView-BnNOJcvO.js} +2 -2
  59. package/dist/assets/{SettingsSourceControl-BD426GUo.js → SettingsSourceControl--ozL4427.js} +1 -1
  60. package/dist/assets/{SettingsSso-B-7lLoTI.js → SettingsSso-Bfe_HRSr.js} +1 -1
  61. package/dist/assets/{SettingsUsageAndPlan-EUWVJYe2.js → SettingsUsageAndPlan-CzvMNudh.js} +1 -1
  62. package/dist/assets/{SettingsUsersView-C3GbTYvU.js → SettingsUsersView-DGu5ku48.js} +1 -1
  63. package/dist/assets/{SettingsView-DSMM_8SL.js → SettingsView-CvreVxXL.js} +1 -1
  64. package/dist/assets/{SetupView-CexY8Lic.js → SetupView-BJT6GtIA.js} +3 -3
  65. package/dist/assets/{SetupWorkflowCredentialsButton-BpLp754t.js → SetupWorkflowCredentialsButton-BEq2gs_-.js} +2 -4
  66. package/dist/assets/{SetupWorkflowFromTemplateView-CLvS9Kda.js → SetupWorkflowFromTemplateView-F9oCDWX8.js} +3 -12
  67. package/dist/assets/{SigninView-CYkcm3hG.js → SigninView-DyoDtCBc.js} +3 -3
  68. package/dist/assets/{SignoutView-C2HutrZm.js → SignoutView-DclBslYe.js} +1 -1
  69. package/dist/assets/{SignupView-B-o-ka0Z.js → SignupView-BhB0Hhj0.js} +3 -3
  70. package/dist/assets/{TemplateDetails-C20G_lj4.js → TemplateDetails-B3utdyMi.js} +1 -1
  71. package/dist/assets/{TemplateList-DQzcYS6n.js → TemplateList-Bgz1iiiH.js} +1 -1
  72. package/dist/assets/{TemplatesCollectionView-DEEMhmYZ.js → TemplatesCollectionView-CORzb8YZ.js} +7 -9
  73. package/dist/assets/{TemplatesSearchView-S6802uNr.js → TemplatesSearchView-DTuv4-5C.js} +3 -3
  74. package/dist/assets/{TemplatesView-CT7S5O4K.js → TemplatesView-CFV5SVF7.js} +1 -1
  75. package/dist/assets/{TemplatesWorkflowView-BMd9OmqA.js → TemplatesWorkflowView-CQVVdNty.js} +5 -7
  76. package/dist/assets/{TestDefinitionEditView-BXhOuJrU.css → TestDefinitionEditView-Cwkrz308.css} +12 -143
  77. package/dist/assets/{TestDefinitionEditView-5kDGEtaD.js → TestDefinitionEditView-DX6GIeq2.js} +179 -331
  78. package/dist/assets/{TestDefinitionListView-BM-hghAY.js → TestDefinitionListView-CLEkthYQ.js} +1 -1
  79. package/dist/assets/{TestDefinitionNewView-CNN-qAmL.js → TestDefinitionNewView-DWTTqvlN.js} +2 -2
  80. package/dist/assets/{TestDefinitionRootView-S8g84AaK.js → TestDefinitionRootView-D0yLW0V6.js} +1 -1
  81. package/dist/assets/{VariablesView-D90WCfYK.js → VariablesView-Dsr4pqth.js} +3 -3
  82. package/dist/assets/{WorkerView-BHVIRKm_.js → WorkerView-Bbu5wv-g.js} +6 -7
  83. package/dist/assets/{WorkflowActivator-BsceIfln.js → WorkflowActivator-C197X_D6.js} +2 -2
  84. package/dist/assets/{WorkflowExecutionsInfoAccordion-DxGIzmq4.js → WorkflowExecutionsInfoAccordion-CHPlRtMQ.js} +1 -1
  85. package/dist/assets/{WorkflowExecutionsLandingPage-czqJYUnQ.js → WorkflowExecutionsLandingPage-CnvMc3SA.js} +2 -2
  86. package/dist/assets/{WorkflowExecutionsPreview-BzCGXWj0.js → WorkflowExecutionsPreview-CJBM3Awe.js} +24 -256
  87. package/dist/assets/{WorkflowExecutionsPreview-CHu6M3Dh.css → WorkflowExecutionsPreview-D7jTJ8GL.css} +16 -48
  88. package/dist/assets/{WorkflowExecutionsView-syep-_N0.js → WorkflowExecutionsView-BwB6WS6M.js} +11 -17
  89. package/dist/assets/{WorkflowHistory-CmHn_hnX.js → WorkflowHistory-U5a4aYts.js} +4 -4
  90. package/dist/assets/{WorkflowOnboardingView-BmhaZBkH.js → WorkflowOnboardingView-DHUUTLOo.js} +1 -1
  91. package/dist/assets/{WorkflowPreview-BN13256Q.js → WorkflowPreview-D8pwehRe.js} +1 -1
  92. package/dist/assets/{WorkflowsView-r9qJOUEb.css → WorkflowsView-CJB9aI6A.css} +27 -41
  93. package/dist/assets/{WorkflowsView-6qbtftll.js → WorkflowsView-DIh7kqZk.js} +76 -141
  94. package/dist/assets/chartjs.utils-DTEY3u-V.js +193 -0
  95. package/dist/assets/dateFormatter-C7xnNKzY.js +21 -0
  96. package/dist/assets/{easyAiWorkflowUtils-C7LfXIgb.js → easyAiWorkflowUtils-V__OjFo9.js} +1 -1
  97. package/dist/assets/{global-link-actions-znEIb0N4.js → global-link-actions-vGpWr9Uz.js} +1 -1
  98. package/dist/assets/{import-curl-BsKs3fYs.js → import-curl-C6ERUxFe.js} +1 -1
  99. package/dist/assets/{index-Cjz62pAo.js → index-BrjPYODL.js} +3 -1
  100. package/dist/assets/{index-DZljH0cm.js → index-DD7Wuhk5.js} +11407 -5580
  101. package/dist/assets/{index-CgXKy7t-.css → index-DJ205bL0.css} +418 -92
  102. package/dist/assets/{pickBy-DlIFPp_M.js → pickBy-BILEJ4hg.js} +1 -1
  103. package/dist/assets/{templateActions-ClDjWPHA.js → templateActions-M3qRQiV6.js} +2 -7
  104. package/dist/assets/{useBeforeUnload-BFlrxvKb.js → useBeforeUnload-DTsj_abb.js} +1 -1
  105. package/dist/assets/{useCanvasMapping-CJcAsQmx.css → useCanvasMapping-BkGr1HdJ.css} +29 -28
  106. package/dist/assets/{useCanvasMapping-C0PMQVwg.js → useCanvasMapping-DJvMRP2s.js} +71 -56
  107. package/dist/assets/{useCanvasOperations-2Ca5hPmu.js → useCanvasOperations-DCaSrD1N.js} +26 -254
  108. package/dist/assets/{useClearExecutionButtonVisible-D8unhL-H.js → useClearExecutionButtonVisible-CVPKhr9F.js} +2 -2
  109. package/dist/assets/{useExecutionDebugging-MiAgkS54.js → useExecutionDebugging-yY2o_eNc.js} +1 -1
  110. package/dist/assets/{useExecutionHelpers-CgD9G_XU.js → useExecutionHelpers-BVY9xXbG.js} +2 -19
  111. package/dist/assets/{useImportCurlCommand-D6LUnncf.js → useImportCurlCommand-Chewi-_x.js} +2 -2
  112. package/dist/assets/{usePushConnection-DAhrfl2L.js → usePushConnection-9zsAnuvC.js} +13 -6
  113. package/dist/assets/{useTestDefinitionForm-TDiKTq9o.js → useTestDefinitionForm-CCVy0jKP.js} +1 -31
  114. package/dist/assets/{useWorkflowActivate-C_GRAYoC.js → useWorkflowActivate-DeEvbrsK.js} +1 -1
  115. package/dist/index.html +2 -2
  116. package/package.json +1 -1
  117. package/dist/assets/CollectionParameter-XKkHxrwX.js +0 -4
  118. package/dist/assets/pushConnection.store-DHLcz9cC.js +0 -238
  119. package/dist/assets/useOverview-BqIOGpWx.js +0 -161
  120. package/dist/assets/useRunWorkflow-sGIs6NeH.js +0 -521
@@ -120,113 +120,135 @@
120
120
  -------------------------- */
121
121
  /* BEM
122
122
  -------------------------- */
123
- ._insights_1r55j_123 {
123
+ ._insights_2xtm2_123 {
124
124
  display: grid;
125
125
  grid-template-rows: auto 1fr;
126
126
  padding: var(--spacing-xs) 0 var(--spacing-2xl);
127
127
  }
128
- ._insights_1r55j_123 ul {
128
+ ._insights_2xtm2_123 ul {
129
129
  display: flex;
130
- height: 91px;
130
+ height: 101px;
131
131
  align-items: stretch;
132
- justify-content: flex-start;
132
+ justify-content: space-evenly;
133
133
  border: var(--border-width-base) var(--border-style-base) var(--color-foreground-base);
134
134
  border-radius: 6px;
135
135
  list-style: none;
136
- background-color: var(--color-background-xlight);
137
136
  overflow-x: auto;
138
137
  }
139
- ._insights_1r55j_123 ul li {
138
+ ._insights_2xtm2_123 ul li {
140
139
  display: flex;
141
- justify-content: flex-start;
142
- align-items: center;
143
- flex: 1;
140
+ justify-content: stretch;
141
+ align-items: stretch;
142
+ flex: 1 0;
144
143
  border-left: var(--border-width-base) var(--border-style-base) var(--color-foreground-base);
145
- padding: 0 var(--spacing-xl) 0 var(--spacing-l);
146
144
  }
147
- ._insights_1r55j_123 ul li:first-child {
145
+ ._insights_2xtm2_123 ul li:first-child {
148
146
  border-left: 0;
149
147
  }
150
- ._insights_1r55j_123 ul p {
148
+ ._insights_2xtm2_123 ul a {
151
149
  display: grid;
150
+ align-items: center;
151
+ align-content: center;
152
+ width: 100%;
153
+ height: 100%;
154
+ padding: var(--spacing-3xs) var(--spacing-l) 0;
155
+ border-bottom: 3px solid transparent;
156
+ }
157
+ ._insights_2xtm2_123 ul a:hover {
158
+ background-color: var(--color-background-xlight);
159
+ transition: background-color 0.3s;
152
160
  }
153
- ._insights_1r55j_123 ul p strong {
161
+ ._insights_2xtm2_123 ul a._activeTab_2xtm2_161 {
162
+ background-color: var(--color-background-xlight);
163
+ border-color: var(--color-primary);
164
+ transition: background-color 0.3s ease-in-out;
165
+ }
166
+ ._insights_2xtm2_123 ul a strong {
167
+ justify-self: flex-start;
154
168
  color: var(--color-text-dark);
155
169
  font-size: var(--font-size-s);
156
170
  font-weight: 400;
157
171
  white-space: nowrap;
158
- margin-bottom: var(--spacing-2xs);
172
+ margin-bottom: var(--spacing-3xs);
159
173
  }
160
- ._insights_1r55j_123 ul p span {
174
+ ._insights_2xtm2_123 ul a ._days_2xtm2_174 {
175
+ padding: 0;
176
+ margin: 0 0 var(--spacing-xs);
177
+ color: var(--color-text-light);
178
+ font-size: var(--font-size-2xs);
179
+ font-weight: var(--font-weight-normal);
180
+ }
181
+ ._insights_2xtm2_123 ul a span {
161
182
  display: flex;
162
183
  align-items: baseline;
163
- gap: var(--spacing-xs);
164
184
  }
165
- ._insights_1r55j_123 ul p span._empty_1r55j_165 em {
185
+ ._insights_2xtm2_123 ul a span._empty_2xtm2_185 em {
166
186
  color: var(--color-text-lighter);
167
187
  }
168
- ._insights_1r55j_123 ul p span._empty_1r55j_165 small {
188
+ ._insights_2xtm2_123 ul a span._empty_2xtm2_185 small {
169
189
  padding: 0;
170
190
  height: 21px;
171
191
  font-weight: var(--font-weight-bold);
172
192
  }
173
- ._insights_1r55j_123 ul p span._empty_1r55j_165 small ._icon_1r55j_173 {
193
+ ._insights_2xtm2_123 ul a span._empty_2xtm2_185 small ._icon_2xtm2_193 {
174
194
  height: 20px;
175
195
  width: 8px;
176
196
  top: -3px;
177
197
  transform: translateY(0);
178
198
  color: var(--color-text-light);
179
199
  }
180
- ._insights_1r55j_123 ul p em {
200
+ ._insights_2xtm2_123 ul a em {
181
201
  display: flex;
182
202
  align-items: baseline;
183
203
  justify-content: flex-start;
184
204
  color: var(--color-text-dark);
185
- font-size: var(--font-size-2xl);
205
+ font-size: 24px;
186
206
  line-height: 100%;
187
207
  font-weight: 600;
188
208
  font-style: normal;
189
209
  gap: var(--spacing-5xs);
190
210
  }
191
- ._insights_1r55j_123 ul p em i {
211
+ ._insights_2xtm2_123 ul a em i {
192
212
  color: var(--color-text-light);
193
213
  font-size: 22px;
194
214
  font-style: normal;
195
215
  }
196
- ._insights_1r55j_123 ul p small {
216
+ ._insights_2xtm2_123 ul a small {
197
217
  position: relative;
198
218
  display: flex;
199
219
  align-items: center;
200
- padding: 0 0 0 18px;
201
- font-size: 14px;
202
- font-weight: 400;
220
+ padding: 0 0 0 14px;
221
+ margin: 0 0 0 var(--spacing-xs);
222
+ font-size: var(--font-size-2xs);
223
+ font-weight: var(--font-weight-bold);
203
224
  white-space: nowrap;
204
225
  }
205
- ._positive_1r55j_206 {
226
+ ._positive_2xtm2_227 {
206
227
  color: var(--color-success);
207
228
  }
208
- ._negative_1r55j_210 {
229
+ ._negative_2xtm2_231 {
209
230
  color: var(--color-danger);
210
231
  }
211
- ._neutral_1r55j_214 {
232
+ ._neutral_2xtm2_235 {
212
233
  color: var(--color-text-light);
213
234
  }
214
- ._neutral_1r55j_214 ._icon_1r55j_173 {
215
- font-size: 23px;
235
+ ._neutral_2xtm2_235 ._icon_2xtm2_193 {
236
+ font-size: 17px;
216
237
  }
217
- ._icon_1r55j_173 {
238
+ ._icon_2xtm2_193 {
218
239
  position: absolute;
219
- font-size: 32px;
240
+ font-size: 17px;
220
241
  left: 0;
221
242
  top: 50%;
222
243
  transform: translateY(-50%);
223
244
  }
224
- ._loading_1r55j_229 {
245
+ ._loading_2xtm2_250 {
225
246
  display: flex;
247
+ min-height: 91px;
226
248
  align-self: stretch;
227
249
  align-items: stretch;
228
250
  }
229
- ._loading_1r55j_229 > div {
251
+ ._loading_2xtm2_250 > div {
230
252
  margin: 0;
231
253
  height: auto;
232
254
  }
@@ -0,0 +1,185 @@
1
+ import { d as defineComponent, W as useRoute, a0 as useCssModule, r as ref, q as computed, c as useI18n, V as VIEWS, h as resolveComponent, i as createElementBlock, g as openBlock, e as createBlock, n as normalizeClass, m as unref, F as Fragment, D as renderList, j as createVNode, w as withCtx, k as createBaseVNode, l as createTextVNode, t as toDisplayString, f as createCommentVNode, gx as INSIGHT_IMPACT_TYPES, gy as INSIGHTS_UNIT_IMPACT_MAPPING, _ as _export_sfc } from "./index-DD7Wuhk5.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 props = __props;
26
+ const i18n = useI18n();
27
+ const route = useRoute();
28
+ const $style = useCssModule();
29
+ const lastNDays = ref(7);
30
+ const summaryTitles = computed(() => ({
31
+ total: i18n.baseText("insights.banner.title.total"),
32
+ failed: i18n.baseText("insights.banner.title.failed"),
33
+ failureRate: i18n.baseText("insights.banner.title.failureRate"),
34
+ timeSaved: i18n.baseText("insights.banner.title.timeSaved"),
35
+ averageRunTime: i18n.baseText("insights.banner.title.averageRunTime")
36
+ }));
37
+ const summaryWithRouteLocations = computed(
38
+ () => props.summary.map((s) => ({
39
+ ...s,
40
+ to: { name: VIEWS.INSIGHTS, params: { insightType: s.id }, query: route.query }
41
+ }))
42
+ );
43
+ const getImpactStyle = (id, value) => {
44
+ const impact = INSIGHTS_UNIT_IMPACT_MAPPING[id];
45
+ if (value === 0 || impact === INSIGHT_IMPACT_TYPES.NEUTRAL) {
46
+ return $style.neutral;
47
+ }
48
+ if (impact === INSIGHT_IMPACT_TYPES.POSITIVE) {
49
+ return value > 0 ? $style.positive : $style.negative;
50
+ }
51
+ if (impact === INSIGHT_IMPACT_TYPES.NEGATIVE) {
52
+ return value < 0 ? $style.positive : $style.negative;
53
+ }
54
+ return $style.neutral;
55
+ };
56
+ return (_ctx, _cache) => {
57
+ const _component_N8nLoading = resolveComponent("N8nLoading");
58
+ const _component_N8nTooltip = resolveComponent("N8nTooltip");
59
+ const _component_i18n_t = resolveComponent("i18n-t");
60
+ const _component_N8nIcon = resolveComponent("N8nIcon");
61
+ const _component_router_link = resolveComponent("router-link");
62
+ return openBlock(), createElementBlock("div", {
63
+ class: normalizeClass(unref($style).insights)
64
+ }, [
65
+ _ctx.loading ? (openBlock(), createBlock(_component_N8nLoading, {
66
+ key: 0,
67
+ class: normalizeClass(unref($style).loading),
68
+ cols: 5
69
+ }, null, 8, ["class"])) : (openBlock(), createElementBlock("ul", _hoisted_1, [
70
+ (openBlock(true), createElementBlock(Fragment, null, renderList(summaryWithRouteLocations.value, ({ id, value, deviation, deviationUnit, unit, to }) => {
71
+ return openBlock(), createElementBlock("li", {
72
+ key: id,
73
+ "data-test-id": `insights-summary-tab-${id}`
74
+ }, [
75
+ createVNode(_component_router_link, {
76
+ to,
77
+ "exact-active-class": unref($style).activeTab
78
+ }, {
79
+ default: withCtx(() => [
80
+ createBaseVNode("strong", null, [
81
+ createVNode(_component_N8nTooltip, {
82
+ placement: "bottom",
83
+ disabled: id !== "timeSaved"
84
+ }, {
85
+ content: withCtx(() => [
86
+ createTextVNode(toDisplayString(unref(i18n).baseText("insights.banner.title.timeSaved.tooltip")), 1)
87
+ ]),
88
+ default: withCtx(() => [
89
+ createTextVNode(" " + toDisplayString(summaryTitles.value[id]), 1)
90
+ ]),
91
+ _: 2
92
+ }, 1032, ["disabled"])
93
+ ]),
94
+ createBaseVNode("small", {
95
+ class: normalizeClass(unref($style).days)
96
+ }, toDisplayString(unref(i18n).baseText("insights.lastNDays", { interpolate: { count: lastNDays.value } })), 3),
97
+ value === 0 && id === "timeSaved" ? (openBlock(), createElementBlock("span", {
98
+ key: 0,
99
+ class: normalizeClass(unref($style).empty)
100
+ }, [
101
+ _cache[0] || (_cache[0] = createBaseVNode("em", null, "--", -1)),
102
+ createBaseVNode("small", null, [
103
+ createVNode(_component_N8nTooltip, { placement: "bottom" }, {
104
+ content: withCtx(() => [
105
+ createVNode(_component_i18n_t, { keypath: "insights.banner.timeSaved.tooltip" }, {
106
+ link: withCtx(() => [
107
+ createBaseVNode("a", _hoisted_3, toDisplayString(unref(i18n).baseText("insights.banner.timeSaved.tooltip.link.text")), 1)
108
+ ]),
109
+ _: 1
110
+ })
111
+ ]),
112
+ default: withCtx(() => [
113
+ createVNode(_component_N8nIcon, {
114
+ class: normalizeClass(unref($style).icon),
115
+ icon: "info-circle"
116
+ }, null, 8, ["class"])
117
+ ]),
118
+ _: 1
119
+ })
120
+ ])
121
+ ], 2)) : (openBlock(), createElementBlock("span", _hoisted_4, [
122
+ createBaseVNode("em", null, [
123
+ createTextVNode(toDisplayString(unref(smartDecimal)(value).toLocaleString("en-US")) + " ", 1),
124
+ createBaseVNode("i", null, toDisplayString(unit), 1)
125
+ ]),
126
+ deviation !== null ? (openBlock(), createElementBlock("small", {
127
+ key: 0,
128
+ class: normalizeClass(getImpactStyle(id, deviation))
129
+ }, [
130
+ createVNode(_component_N8nIcon, {
131
+ class: normalizeClass([unref($style).icon, getImpactStyle(id, deviation)]),
132
+ icon: deviation === 0 ? "caret-right" : deviation > 0 ? "caret-up" : "caret-down"
133
+ }, null, 8, ["class", "icon"]),
134
+ createVNode(_component_N8nTooltip, {
135
+ placement: "bottom",
136
+ disabled: id !== "failureRate"
137
+ }, {
138
+ content: withCtx(() => [
139
+ createTextVNode(toDisplayString(unref(i18n).baseText("insights.banner.failureRate.deviation.tooltip")), 1)
140
+ ]),
141
+ default: withCtx(() => [
142
+ createTextVNode(" " + toDisplayString(unref(smartDecimal)(Math.abs(deviation)).toLocaleString("en-US")) + toDisplayString(deviationUnit), 1)
143
+ ]),
144
+ _: 2
145
+ }, 1032, ["disabled"])
146
+ ], 2)) : createCommentVNode("", true)
147
+ ]))
148
+ ]),
149
+ _: 2
150
+ }, 1032, ["to", "exact-active-class"])
151
+ ], 8, _hoisted_2);
152
+ }), 128))
153
+ ]))
154
+ ], 2);
155
+ };
156
+ }
157
+ });
158
+ const insights = "_insights_2xtm2_123";
159
+ const activeTab = "_activeTab_2xtm2_161";
160
+ const days = "_days_2xtm2_174";
161
+ const empty = "_empty_2xtm2_185";
162
+ const icon = "_icon_2xtm2_193";
163
+ const positive = "_positive_2xtm2_227";
164
+ const negative = "_negative_2xtm2_231";
165
+ const neutral = "_neutral_2xtm2_235";
166
+ const loading = "_loading_2xtm2_250";
167
+ const style0 = {
168
+ insights,
169
+ activeTab,
170
+ days,
171
+ empty,
172
+ icon,
173
+ positive,
174
+ negative,
175
+ neutral,
176
+ loading
177
+ };
178
+ const cssModules = {
179
+ "$style": style0
180
+ };
181
+ const InsightsSummary = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
182
+ export {
183
+ InsightsSummary as I,
184
+ smartDecimal as s
185
+ };
@@ -0,0 +1,129 @@
1
+ import { d as defineComponent, q as computed, r as ref, c as useI18n, i0 as transformInsightsFailureRate, i1 as INSIGHTS_UNIT_MAPPING, i3 as transformInsightsTimeSaved, i4 as transformInsightsAverageRunTime, h as resolveComponent, i as createElementBlock, g as openBlock, j as createVNode, w as withCtx, l as createTextVNode, e as createBlock, m as unref, aS as N8nTooltip, k as createBaseVNode, t as toDisplayString, F as Fragment, i5 as N8nDataTableServer, _ as _export_sfc } from "./index-DD7Wuhk5.js";
2
+ import { s as smartDecimal } from "./InsightsSummary-vMmKUcie.js";
3
+ const _hoisted_1 = { class: "ellipsis" };
4
+ const _hoisted_2 = { class: "ellipsis" };
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ __name: "InsightsTableWorkflows",
7
+ props: {
8
+ data: {},
9
+ loading: { type: Boolean }
10
+ },
11
+ emits: ["update:options"],
12
+ setup(__props, { emit: __emit }) {
13
+ const props = __props;
14
+ const i18n = useI18n();
15
+ const rows = computed(() => props.data.data);
16
+ const headers = ref([
17
+ {
18
+ title: "Name",
19
+ key: "workflowName",
20
+ width: 400,
21
+ disableSort: true
22
+ },
23
+ {
24
+ title: i18n.baseText("insights.banner.title.total"),
25
+ key: "total",
26
+ value(row) {
27
+ return row.total.toLocaleString("en-US");
28
+ }
29
+ },
30
+ {
31
+ title: i18n.baseText("insights.banner.title.failed"),
32
+ key: "failed",
33
+ value(row) {
34
+ return row.failed.toLocaleString("en-US");
35
+ }
36
+ },
37
+ {
38
+ title: i18n.baseText("insights.banner.title.failureRate"),
39
+ key: "failureRate",
40
+ value(row) {
41
+ return smartDecimal(transformInsightsFailureRate(row.failureRate)) + INSIGHTS_UNIT_MAPPING.failureRate(row.failureRate);
42
+ }
43
+ },
44
+ {
45
+ title: i18n.baseText("insights.banner.title.timeSaved"),
46
+ key: "timeSaved",
47
+ value(row) {
48
+ return smartDecimal(transformInsightsTimeSaved(row.timeSaved)) + INSIGHTS_UNIT_MAPPING.timeSaved(row.timeSaved);
49
+ }
50
+ },
51
+ {
52
+ title: i18n.baseText("insights.banner.title.averageRunTime"),
53
+ key: "averageRunTime",
54
+ value(row) {
55
+ return smartDecimal(transformInsightsAverageRunTime(row.averageRunTime)) + INSIGHTS_UNIT_MAPPING.averageRunTime(row.averageRunTime);
56
+ }
57
+ },
58
+ {
59
+ title: "Project name",
60
+ key: "projectName",
61
+ disableSort: true
62
+ }
63
+ ]);
64
+ const sortTableBy = ref([{ id: "total", desc: true }]);
65
+ const currentPage = ref(0);
66
+ const itemsPerPage = ref(20);
67
+ const emit = __emit;
68
+ return (_ctx, _cache) => {
69
+ const _component_N8nHeading = resolveComponent("N8nHeading");
70
+ return openBlock(), createElementBlock("div", null, [
71
+ createVNode(_component_N8nHeading, {
72
+ bold: "",
73
+ tag: "h3",
74
+ size: "medium",
75
+ class: "mb-s"
76
+ }, {
77
+ default: withCtx(() => _cache[4] || (_cache[4] = [
78
+ createTextVNode("Workflow insights")
79
+ ])),
80
+ _: 1
81
+ }),
82
+ createVNode(N8nDataTableServer, {
83
+ "sort-by": sortTableBy.value,
84
+ "onUpdate:sortBy": _cache[0] || (_cache[0] = ($event) => sortTableBy.value = $event),
85
+ page: currentPage.value,
86
+ "onUpdate:page": _cache[1] || (_cache[1] = ($event) => currentPage.value = $event),
87
+ "items-per-page": itemsPerPage.value,
88
+ "onUpdate:itemsPerPage": _cache[2] || (_cache[2] = ($event) => itemsPerPage.value = $event),
89
+ items: rows.value,
90
+ headers: headers.value,
91
+ "items-length": _ctx.data.count,
92
+ loading: _ctx.loading,
93
+ "onUpdate:options": _cache[3] || (_cache[3] = ($event) => emit("update:options", $event))
94
+ }, {
95
+ [`item.workflowName`]: withCtx(({ item }) => [
96
+ createVNode(unref(N8nTooltip), {
97
+ content: item.workflowName,
98
+ placement: "top"
99
+ }, {
100
+ default: withCtx(() => [
101
+ createBaseVNode("div", _hoisted_1, toDisplayString(item.workflowName), 1)
102
+ ]),
103
+ _: 2
104
+ }, 1032, ["content"])
105
+ ]),
106
+ [`item.projectName`]: withCtx(({ item }) => [
107
+ item.projectName ? (openBlock(), createBlock(unref(N8nTooltip), {
108
+ key: 0,
109
+ content: item.projectName,
110
+ placement: "top"
111
+ }, {
112
+ default: withCtx(() => [
113
+ createBaseVNode("div", _hoisted_2, toDisplayString(item.projectName), 1)
114
+ ]),
115
+ _: 2
116
+ }, 1032, ["content"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
117
+ createTextVNode(" - ")
118
+ ], 64))
119
+ ]),
120
+ _: 2
121
+ }, 1032, ["sort-by", "page", "items-per-page", "items", "headers", "items-length", "loading"])
122
+ ]);
123
+ };
124
+ }
125
+ });
126
+ const InsightsTableWorkflows = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-87b93426"]]);
127
+ export {
128
+ InsightsTableWorkflows as default
129
+ };
@@ -0,0 +1,128 @@
1
+ /* BEM support Func
2
+ -------------------------- */
3
+ /* Transition
4
+ -------------------------- */
5
+ /* Color
6
+ -------------------------- */
7
+ /* Link
8
+ -------------------------- */
9
+ /* Border
10
+ -------------------------- */
11
+ /* Outline
12
+ -------------------------- */
13
+ /* Box shadow
14
+ -------------------------- */
15
+ /* Fill
16
+ -------------------------- */
17
+ /* Typography
18
+ -------------------------- */
19
+ /* z-index
20
+ -------------------------- */
21
+ /* Disable base
22
+ -------------------------- */
23
+ /* Icon
24
+ -------------------------- */
25
+ /* Checkbox
26
+ -------------------------- */
27
+ /* Radio
28
+ -------------------------- */
29
+ /* Select
30
+ -------------------------- */
31
+ /* Alert
32
+ -------------------------- */
33
+ /* MessageBox
34
+ -------------------------- */
35
+ /* Message
36
+ -------------------------- */
37
+ /* Notification
38
+ -------------------------- */
39
+ /* Input
40
+ -------------------------- */
41
+ /* Cascader
42
+ -------------------------- */
43
+ /* Group
44
+ -------------------------- */
45
+ /* Tab
46
+ -------------------------- */
47
+ /* Button
48
+ -------------------------- */
49
+ /* cascader
50
+ -------------------------- */
51
+ /* Switch
52
+ -------------------------- */
53
+ /* Dialog
54
+ -------------------------- */
55
+ /* Table
56
+ -------------------------- */
57
+ /* Pagination
58
+ -------------------------- */
59
+ /* Popup
60
+ -------------------------- */
61
+ /* Popover
62
+ -------------------------- */
63
+ /* Tooltip
64
+ -------------------------- */
65
+ /* Tag
66
+ -------------------------- */
67
+ /* Tree
68
+ -------------------------- */
69
+ /* Dropdown
70
+ -------------------------- */
71
+ /* Badge
72
+ -------------------------- */
73
+ /* Card
74
+ --------------------------*/
75
+ /* Slider
76
+ --------------------------*/
77
+ /* Steps
78
+ --------------------------*/
79
+ /* Menu
80
+ --------------------------*/
81
+ /* Rate
82
+ --------------------------*/
83
+ /* DatePicker
84
+ --------------------------*/
85
+ /* Loading
86
+ --------------------------*/
87
+ /* Scrollbar
88
+ --------------------------*/
89
+ /* Carousel
90
+ --------------------------*/
91
+ /* Collapse
92
+ --------------------------*/
93
+ /* Transfer
94
+ --------------------------*/
95
+ /* Header
96
+ --------------------------*/
97
+ /* Footer
98
+ --------------------------*/
99
+ /* Main
100
+ --------------------------*/
101
+ /* Timeline
102
+ --------------------------*/
103
+ /* Backtop
104
+ --------------------------*/
105
+ /* Link
106
+ --------------------------*/
107
+ /* Calendar
108
+ --------------------------*/
109
+ /* Form
110
+ -------------------------- */
111
+ /* Avatar
112
+ --------------------------*/
113
+ /* Break-point
114
+ --------------------------*/
115
+ /* Break-points
116
+ -------------------------- */
117
+ /* Scrollbar
118
+ -------------------------- */
119
+ /* Placeholder
120
+ -------------------------- */
121
+ /* BEM
122
+ -------------------------- */
123
+ .ellipsis[data-v-87b93426] {
124
+ white-space: nowrap;
125
+ overflow: hidden;
126
+ text-overflow: ellipsis;
127
+ line-height: 1.2;
128
+ }
@@ -1,4 +1,4 @@
1
- import { i as createElementBlock, g as openBlock, k as createBaseVNode, d as defineComponent, q as computed, $ as useCssModule, bw as useTemplateRef, o as onMounted, de as useFavicon, n as normalizeClass, j as createVNode, e as createBlock, f as createCommentVNode, x as renderSlot, m as unref, _ as _export_sfc } from "./index-DZljH0cm.js";
1
+ import { i as createElementBlock, g as openBlock, k as createBaseVNode, d as defineComponent, q as computed, a0 as useCssModule, bA as useTemplateRef, o as onMounted, dj as useFavicon, n as normalizeClass, j as createVNode, e as createBlock, f as createCommentVNode, x as renderSlot, m as unref, _ as _export_sfc } from "./index-DD7Wuhk5.js";
2
2
  const _hoisted_1$1 = {
3
3
  xmlns: "http://www.w3.org/2000/svg",
4
4
  width: "32",
@@ -1,13 +1,12 @@
1
- import { d as defineComponent, s as MAIN_HEADER_TABS, h as resolveComponent, i as createElementBlock, f as createCommentVNode, g as openBlock, n as normalizeClass, j as createVNode, _ as _export_sfc, q as computed, v as shorten, x as renderSlot, r as ref, y as onBeforeUnmount, o as onMounted, z as nextTick, A as debounce, e as createBlock, m as unref, B as normalizeStyle, C as createEventBus, w as withCtx, k as createBaseVNode, F as Fragment, D as renderList, l as createTextVNode, t as toDisplayString, E as useTagsStore, G as onClickOutside, H as withKeys, I as watch, J as withModifiers, K as useDebounce, L as useUIStore, N as BREAKPOINT_SM, O as BREAKPOINT_XL, P as BREAKPOINT_LG, Q as BREAKPOINT_MD, R as getBannerRowHeight, V as VIEWS, c as useI18n, S as defineStore, T as useWorkflowsStore, u as useUsersStore, U as useRoute, W as PLACEHOLDER_EMPTY_WORKFLOW_ID, X as STORES, Y as TIME, Z as useDocumentVisibility, $ as useCssModule, a0 as useRootStore, a1 as useCanvasStore, p as useSettingsStore, a2 as useSourceControlStore, a3 as useProjectsStore, a4 as useNpsSurveyStore, b as useRouter, a as useToast, a5 as useDocumentTitle, a6 as useWorkflowHelpers, a7 as usePageRedirectionHelper, a8 as getResourcePermissions, a9 as WORKFLOW_MENU_ACTIONS, aa as hasPermission, ab as EnterpriseEditionFeature, ac as ProjectTypes, ad as MAX_WORKFLOW_NAME_LENGTH, ae as _sfc_main$f, af as SaveButton, ag as WORKFLOW_SHARE_MODAL_KEY, ah as useTelemetry, ai as nodeViewEventBus, aj as useMessage, ak as MODAL_CONFIRM, al as WORKFLOW_SETTINGS_MODAL_KEY, am as SOURCE_CONTROL_PUSH_MODAL_KEY, an as VALID_WORKFLOW_IMPORT_URL_REGEX, ao as DUPLICATE_MODAL_KEY, ap as __vitePreload, aq as hyphenate, ar as h, as as hasOwn, at as useNDVStore, au as useExecutionsStore, av as usePostHog, aw as useLocalStorage, ax as LOCAL_STORAGE_HIDE_GITHUB_STAR_BUTTON, ay as WORKFLOW_EVALUATION_EXPERIMENT, az as STICKY_NODE_TYPE, aA as onBeforeMount, aB as withDirectives, aC as vShow, aD as N8N_MAIN_GITHUB_REPO_URL } from "./index-DZljH0cm.js";
2
- import { _ as _sfc_main$g } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-CSazgsi8.js";
3
- import { W as WorkflowActivator } from "./WorkflowActivator-BsceIfln.js";
4
- import { u as useBeforeUnload } from "./useBeforeUnload-BFlrxvKb.js";
5
- import { u as usePushConnectionStore } from "./pushConnection.store-DHLcz9cC.js";
6
- import { F as FileSaver_minExports } from "./FileSaver.min-D3VgyjMF.js";
7
- import { u as usePushConnection } from "./usePushConnection-DAhrfl2L.js";
8
- import "./useWorkflowActivate-C_GRAYoC.js";
9
- import "./global-link-actions-znEIb0N4.js";
10
- import "./easyAiWorkflowUtils-C7LfXIgb.js";
1
+ import { d as defineComponent, s as MAIN_HEADER_TABS, h as resolveComponent, i as createElementBlock, f as createCommentVNode, g as openBlock, n as normalizeClass, j as createVNode, _ as _export_sfc, q as computed, v as shorten, x as renderSlot, r as ref, y as onBeforeUnmount, o as onMounted, z as nextTick, A as debounce, e as createBlock, m as unref, B as normalizeStyle, C as createEventBus, w as withCtx, k as createBaseVNode, F as Fragment, D as renderList, l as createTextVNode, t as toDisplayString, E as useTagsStore, G as onClickOutside, H as withKeys, I as watch, J as withModifiers, K as useDebounce, L as useUIStore, N as BREAKPOINT_SM, O as BREAKPOINT_XL, P as BREAKPOINT_LG, Q as BREAKPOINT_MD, R as getBannerRowHeight, V as VIEWS, c as useI18n, S as defineStore, T as usePushConnectionStore, U as useWorkflowsStore, u as useUsersStore, W as useRoute, X as PLACEHOLDER_EMPTY_WORKFLOW_ID, Y as STORES, Z as TIME, $ as useDocumentVisibility, a0 as useCssModule, a1 as useRootStore, a2 as useCanvasStore, p as useSettingsStore, a3 as useSourceControlStore, a4 as useProjectsStore, a5 as useNpsSurveyStore, b as useRouter, a as useToast, a6 as useDocumentTitle, a7 as useWorkflowHelpers, a8 as usePageRedirectionHelper, a9 as getResourcePermissions, aa as WORKFLOW_MENU_ACTIONS, ab as hasPermission, ac as EnterpriseEditionFeature, ad as ProjectTypes, ae as MAX_WORKFLOW_NAME_LENGTH, af as _sfc_main$f, ag as SaveButton, ah as WORKFLOW_SHARE_MODAL_KEY, ai as useTelemetry, aj as nodeViewEventBus, ak as useMessage, al as MODAL_CONFIRM, am as WORKFLOW_SETTINGS_MODAL_KEY, an as SOURCE_CONTROL_PUSH_MODAL_KEY, ao as VALID_WORKFLOW_IMPORT_URL_REGEX, ap as DUPLICATE_MODAL_KEY, aq as __vitePreload, ar as hyphenate, as as h, at as hasOwn, au as useNDVStore, av as useExecutionsStore, aw as usePostHog, ax as useLocalStorage, ay as LOCAL_STORAGE_HIDE_GITHUB_STAR_BUTTON, az as WORKFLOW_EVALUATION_EXPERIMENT, aA as STICKY_NODE_TYPE, aB as onBeforeMount, aC as withDirectives, aD as vShow, aE as N8N_MAIN_GITHUB_REPO_URL } from "./index-DD7Wuhk5.js";
2
+ import { _ as _sfc_main$g } from "./PushConnectionTracker.vue_vue_type_script_setup_true_lang-BL-bMMgn.js";
3
+ import { W as WorkflowActivator } from "./WorkflowActivator-C197X_D6.js";
4
+ import { u as useBeforeUnload } from "./useBeforeUnload-DTsj_abb.js";
5
+ import { F as FileSaver_minExports } from "./FileSaver.min-Bs2qHlKb.js";
6
+ import { u as usePushConnection } from "./usePushConnection-9zsAnuvC.js";
7
+ import "./useWorkflowActivate-DeEvbrsK.js";
8
+ import "./global-link-actions-vGpWr9Uz.js";
9
+ import "./easyAiWorkflowUtils-V__OjFo9.js";
11
10
  const _sfc_main$e = /* @__PURE__ */ defineComponent({
12
11
  __name: "TabBar",
13
12
  props: {