n8n-editor-ui 1.94.0 → 1.95.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 (118) hide show
  1. package/dist/assets/{AnimatedSpinner-CY5xYI5m.js → AnimatedSpinner-DlBYfeum.js} +1 -1
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BOrzkwPH.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-b_VpBPcV.js} +1 -1
  3. package/dist/assets/{AuthView-BTzGYAnY.js → AuthView-3BmNl_WD.js} +2 -2
  4. package/dist/assets/{CanvasChatSwitch-CwpjFCL0.js → CanvasChatSwitch-C8GVNbZv.js} +8 -9
  5. package/dist/assets/{ChangePasswordView-BKR2UFVI.js → ChangePasswordView-HptU1MSc.js} +3 -3
  6. package/dist/assets/CollectionParameter-DB_Or-wG.js +4 -0
  7. package/dist/assets/{CredentialsView-DVgxfnNi.js → CredentialsView-Dx5hgaaC.js} +7 -7
  8. package/dist/assets/{DemoFooter-C1T3Q0NX.js → DemoFooter-BkSVK4cp.js} +6 -7
  9. package/dist/assets/{ErrorView-Cf2Yb8Ea.js → ErrorView-HDHwqLgc.js} +1 -1
  10. package/dist/assets/EvaluationsRootView-B5AhHo41.css +594 -0
  11. package/dist/assets/EvaluationsRootView-CwzFA39P.js +654 -0
  12. package/dist/assets/{TestDefinitionListView-Di-Edppe.css → EvaluationsView-6l_Invxt.css} +193 -76
  13. package/dist/assets/EvaluationsView-Y_Nzp-LP.js +570 -0
  14. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-DUu0UMcW.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-BioZloew.js} +2 -2
  15. package/dist/assets/{ExecutionsView-DjNkfnDh.js → ExecutionsView-SVk21vMq.js} +8 -9
  16. package/dist/assets/{FileSaver.min-C1p9Eies.js → FileSaver.min-ZbRn_Jz1.js} +1 -1
  17. package/dist/assets/{FixedCollectionParameter-DN_uJhpe.js → FixedCollectionParameter-iCfhPCTX.js} +1 -1
  18. package/dist/assets/{ForgotMyPasswordView-BMQBDIrq.js → ForgotMyPasswordView-DID5un7M.js} +3 -3
  19. package/dist/assets/{InsightsChartAverageRuntime-JzBkV6Rc.js → InsightsChartAverageRuntime-Db4OWo7M.js} +4 -4
  20. package/dist/assets/{InsightsChartFailed-DMD3c7zM.js → InsightsChartFailed-DjssZ9vc.js} +4 -4
  21. package/dist/assets/{InsightsChartFailureRate-D_qeZo4f.js → InsightsChartFailureRate-C4U_fOhA.js} +4 -4
  22. package/dist/assets/{InsightsChartTimeSaved-Cw2T-Wvp.js → InsightsChartTimeSaved-DmcamM8z.js} +4 -4
  23. package/dist/assets/{InsightsChartTotal-DlF47gob.js → InsightsChartTotal-ywrK30zz.js} +4 -4
  24. package/dist/assets/{InsightsDashboard-CxQ9H296.js → InsightsDashboard-CM-ieUCq.js} +13 -10
  25. package/dist/assets/{InsightsPaywall-hRkAfeHz.js → InsightsPaywall-D-bIgmwT.js} +1 -1
  26. package/dist/assets/{InsightsSummary-BcXd-3nU.js → InsightsSummary-CwTpu3sa.js} +1 -1
  27. package/dist/assets/{InsightsTableWorkflows-ybloXdDn.js → InsightsTableWorkflows-CVtm_fGN.js} +2 -2
  28. package/dist/assets/{Logo-BGe7-2Vd.js → Logo-nyJoHWQJ.js} +1 -1
  29. package/dist/assets/{LogsPanel-mTaFEGk_.css → LogsPanel-D7j-yJQx.css} +14 -14
  30. package/dist/assets/{LogsPanel-DtTp6kY0.js → LogsPanel-mX9Nf6VB.js} +138 -36
  31. package/dist/assets/{MainHeader-h2DV-VuD.js → MainHeader-DrG-_mAG.js} +31 -21
  32. package/dist/assets/{MainSidebar-AAHHRXFA.js → MainSidebar-BMWCsLJG.js} +2 -2
  33. package/dist/assets/{NodeCreation-nHiG-Lhi.js → NodeCreation-CO1xHNgA.js} +3 -3
  34. package/dist/assets/{NodeCreator-weAzsmlU.js → NodeCreator-Bcr66G_2.js} +174 -68
  35. package/dist/assets/{NodeCreator-D18StsVZ.css → NodeCreator-Cp8Apzva.css} +38 -21
  36. package/dist/assets/{NodeDetailsView-BsXbcyfb.js → NodeDetailsView-BFW65Lly.js} +32 -18
  37. package/dist/assets/{NodeDetailsView-DpO8nTmN.css → NodeDetailsView-BtWGMS7Y.css} +16 -16
  38. package/dist/assets/{useCanvasMapping-CvcOHj5p.js → NodeView-4aDk41Oy.js} +3660 -11463
  39. package/dist/assets/{useCanvasMapping-CFf4cwnq.css → NodeView-U4YkXSfU.css} +307 -4
  40. package/dist/assets/{ProjectCardBadge-3xpk5Z4e.js → ProjectCardBadge-CLVVfcVb.js} +1 -1
  41. package/dist/assets/{ProjectHeader-CpoOisjf.js → ProjectHeader-DQk1kmw3.js} +2 -2
  42. package/dist/assets/{ProjectSettings-B__3XaPY.js → ProjectSettings-BLTHRnTQ.js} +4 -3
  43. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-DaoPdG_5.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DhLSSpy6.js} +1 -1
  44. package/dist/assets/{ResourcesListLayout-DAxou314.js → ResourcesListLayout-BlDcQdXw.js} +2 -2
  45. package/dist/assets/{RunData-fnd-jejc.js → RunData-C67Kx3bc.js} +22 -21
  46. package/dist/assets/{RunDataAi-Ck3VGKP_.js → RunDataAi-_rd0qTgN.js} +3 -3
  47. package/dist/assets/{RunDataJson-B80Z4URL.js → RunDataJson-BP0x4Zdv.js} +6 -7
  48. package/dist/assets/{RunDataJsonActions-CdZi1Qul.js → RunDataJsonActions-Bc0fqS6Y.js} +1 -1
  49. package/dist/assets/{RunDataParsedAiContent-BczxQ63H.js → RunDataParsedAiContent-l1979DuT.js} +4 -5
  50. package/dist/assets/{RunDataSearch-C4KmCz4c.js → RunDataSearch-CCGPQjFW.js} +1 -1
  51. package/dist/assets/{RunDataTable-CsLCZIWp.js → RunDataTable-uzdBjxmW.js} +2 -3
  52. package/dist/assets/{SamlOnboarding-DkhjCrPa.js → SamlOnboarding-D4xkCaRS.js} +3 -3
  53. package/dist/assets/{SettingsApiView-Ci2-rEpm.js → SettingsApiView-ijuSJs-i.js} +1 -1
  54. package/dist/assets/{SettingsCommunityNodesView-_UOppuqS.js → SettingsCommunityNodesView-D3I8P7Ea.js} +4 -4
  55. package/dist/assets/{SettingsExternalSecrets-DHIkKr53.js → SettingsExternalSecrets-ndwnYVtu.js} +1 -1
  56. package/dist/assets/{SettingsLdapView-B8ezgdqP.js → SettingsLdapView-Dzhh3gD4.js} +1 -1
  57. package/dist/assets/{SettingsLogStreamingView-YP6Xy7Fe.js → SettingsLogStreamingView-D-Rr-Jph.js} +1 -1
  58. package/dist/assets/{SettingsPersonalView-BmbFyWPb.js → SettingsPersonalView-Cf1cBUw8.js} +1 -1
  59. package/dist/assets/{SettingsSourceControl-DwaOdDke.js → SettingsSourceControl-BXRyD_N0.js} +1 -1
  60. package/dist/assets/{SettingsSso-DOC-P2wt.js → SettingsSso-DZTsjRCO.js} +1 -1
  61. package/dist/assets/{SettingsUsageAndPlan-DVOLlEkG.js → SettingsUsageAndPlan-BqY4ptNL.js} +1 -1
  62. package/dist/assets/{SettingsUsersView-CN_KLeIm.js → SettingsUsersView-eqXFp615.js} +1 -1
  63. package/dist/assets/{SettingsView-DiAhLyco.js → SettingsView-CHSTMDKz.js} +1 -1
  64. package/dist/assets/{SetupView-OE_yCNOU.js → SetupView-D6-b4i8i.js} +3 -3
  65. package/dist/assets/{SetupWorkflowCredentialsButton-Dx1IkZgW.js → SetupWorkflowCredentialsButton-6SWeqGx-.js} +1 -1
  66. package/dist/assets/{SetupWorkflowFromTemplateView-lQXKgIuL.js → SetupWorkflowFromTemplateView-DTZ8dEhY.js} +3 -3
  67. package/dist/assets/{SigninView-BWSrzbF7.js → SigninView-B3mpecGJ.js} +3 -3
  68. package/dist/assets/{SignoutView-DxGgFxt2.js → SignoutView-Bq9cEhcZ.js} +1 -1
  69. package/dist/assets/{SignupView-Dtu5bMqF.js → SignupView-BTyAq-gW.js} +3 -3
  70. package/dist/assets/{TemplateDetails-CQ7TYqsP.js → TemplateDetails-Bf7Xg-KJ.js} +1 -1
  71. package/dist/assets/{TemplateList-Cxmv-0p-.js → TemplateList-BmXxTP4v.js} +1 -1
  72. package/dist/assets/{TemplatesCollectionView-xvV6FXib.js → TemplatesCollectionView-DKwycT_4.js} +5 -5
  73. package/dist/assets/{TemplatesSearchView-CsECyZ52.js → TemplatesSearchView-ciluP1sL.js} +3 -3
  74. package/dist/assets/{TemplatesView-DrEKpZTU.js → TemplatesView-CDdQbnxe.js} +1 -1
  75. package/dist/assets/{TemplatesWorkflowView-iSAL_yol.js → TemplatesWorkflowView-uQ3eG-nR.js} +5 -5
  76. package/dist/assets/{VariablesView-Cg2WSt_e.js → VariablesView-Bve2WEng.js} +4 -4
  77. package/dist/assets/{WorkerView-BG-Dl0Ej.js → WorkerView-CUyaAqvY.js} +6 -6
  78. package/dist/assets/{WorkflowActivator-e7wvW1kJ.js → WorkflowActivator-DZSvs7Ye.js} +2 -2
  79. package/dist/assets/{WorkflowExecutionsInfoAccordion-CijtfO0l.js → WorkflowExecutionsInfoAccordion-DTbkpnyq.js} +1 -1
  80. package/dist/assets/{WorkflowExecutionsLandingPage-Do4y1yOx.js → WorkflowExecutionsLandingPage-DNc0pN7t.js} +2 -2
  81. package/dist/assets/{WorkflowExecutionsPreview-Bqo_3PXl.js → WorkflowExecutionsPreview-SdFojcu-.js} +5 -6
  82. package/dist/assets/{WorkflowExecutionsView-C1gS45nc.js → WorkflowExecutionsView-CAbXPlyv.js} +7 -8
  83. package/dist/assets/{WorkflowHistory-CypQw7rC.js → WorkflowHistory-BIFuha5h.js} +3 -3
  84. package/dist/assets/{WorkflowOnboardingView-DoKXpaNj.js → WorkflowOnboardingView-DLRgnF3H.js} +1 -1
  85. package/dist/assets/{WorkflowPreview-Bxs5XzBX.js → WorkflowPreview-DRSvh1f-.js} +1 -1
  86. package/dist/assets/{WorkflowsView-BlvgD3xI.js → WorkflowsView-DOQhvV_X.js} +9 -9
  87. package/dist/assets/{useClearExecutionButtonVisible-DFNEJves.js → canvas-CdHFQJm7.js} +3 -1
  88. package/dist/assets/{chartjs.utils-CuWcgqCr.js → chartjs.utils-hlpJdzhb.js} +2 -2
  89. package/dist/assets/{easyAiWorkflowUtils-_kvYb5hw.js → easyAiWorkflowUtils-GnIqpmRr.js} +1 -1
  90. package/dist/assets/{global-link-actions-DG0SjhQE.js → global-link-actions-CExoAUZJ.js} +1 -1
  91. package/dist/assets/{import-curl-DQ6uPzZ1.js → import-curl-D2S8-TVc.js} +1 -1
  92. package/dist/assets/{index-hdsPF3tl.js → index-BSlk84mz.js} +16505 -7040
  93. package/dist/assets/{index-BA8d2DN9.css → index-DH8MNLw5.css} +123 -70
  94. package/dist/assets/{index-vIybYvt3.js → index-lOeP0Jxq.js} +1 -1
  95. package/dist/assets/{pickBy-DmKUpB7M.js → pickBy-BoYQMT9v.js} +1 -1
  96. package/dist/assets/{templateActions-DxoxchKp.js → templateActions-CAEk7dfj.js} +1 -1
  97. package/dist/assets/{typescript.worker-B1loTpxy.js → typescript.worker-DIrCbxuR.js} +1 -1
  98. package/dist/assets/{useBeforeUnload-B7JAQiE8.js → useBeforeUnload-COWlK6zC.js} +1 -1
  99. package/dist/assets/{useExecutionDebugging-DsRIfE0y.js → useExecutionDebugging-DOtIA9Qr.js} +1 -1
  100. package/dist/assets/{useExecutionHelpers-CEOL8_vt.js → useExecutionHelpers-q1_8c2Pm.js} +1 -2
  101. package/dist/assets/{useImportCurlCommand-DdIN4YaF.js → useImportCurlCommand-CbwqixK0.js} +2 -2
  102. package/dist/assets/{useProjectPages-OGc-GAxb.js → useProjectPages-DlqnxMvy.js} +1 -1
  103. package/dist/assets/{usePushConnection-DNGIaS0A.js → usePushConnection-Bysa9RG-.js} +22 -3
  104. package/dist/assets/{useWorkflowActivate-CJ1hLmv2.js → useWorkflowActivate-B1ps647W.js} +1 -1
  105. package/dist/assets/{useWorkflowSaving-BuokdhTC.js → useWorkflowSaving-BVNVyvlZ.js} +1 -1
  106. package/dist/index.html +2 -2
  107. package/package.json +1 -1
  108. package/dist/assets/CollectionParameter-BJtiV9En.js +0 -4
  109. package/dist/assets/NodeView-BY1O3wWl.js +0 -1762
  110. package/dist/assets/NodeView-C3A-bM1O.css +0 -304
  111. package/dist/assets/TestDefinitionEditView-C3ohfu_r.js +0 -1463
  112. package/dist/assets/TestDefinitionEditView-Cwkrz308.css +0 -1189
  113. package/dist/assets/TestDefinitionListView-Dwto0jxH.js +0 -631
  114. package/dist/assets/TestDefinitionNewView-9xVUm2ZJ.js +0 -75
  115. package/dist/assets/TestDefinitionRootView-DFT60fWE.css +0 -126
  116. package/dist/assets/TestDefinitionRootView-DLurQ4xl.js +0 -39
  117. package/dist/assets/dateFormatter-LbucaaRt.js +0 -21
  118. package/dist/assets/useTestDefinitionForm-Bi6EgFVm.js +0 -154
@@ -0,0 +1,570 @@
1
+ import { f_ as useCssVar, fY as dateFormat, d as defineComponent, q as computed, a$ as watchEffect, h as resolveComponent, i as createElementBlock, g as openBlock, n as normalizeClass, k as createBaseVNode, j as createVNode, w as withCtx, F as Fragment, D as renderList, e as createBlock, m as unref, _ as _export_sfc, l as createTextVNode, t as toDisplayString, c as useI18n, f$ as TestTableBase, bf as N8nText, bJ as N8nIcon, g0 as statusDictionary, g1 as getErrorBaseKey, aV as createSlots, ct as mergeModels, b as useRouter, cu as useModel, fB as convertToDisplayDate, V as VIEWS, a as useToast, g2 as useEvaluationStore, r as ref, en as orderBy, bh as N8nButton, f as createCommentVNode } from "./index-BSlk84mz.js";
2
+ import { L as Line } from "./index-lOeP0Jxq.js";
3
+ import { _ as __unplugin_components_0 } from "./AnimatedSpinner-DlBYfeum.js";
4
+ function useMetricsChart() {
5
+ const colors = {
6
+ primary: useCssVar("--color-primary", document.body).value,
7
+ textBase: useCssVar("--color-text-base", document.body).value,
8
+ backgroundXLight: useCssVar("--color-background-xlight", document.body).value,
9
+ foregroundLight: useCssVar("--color-foreground-light", document.body).value,
10
+ foregroundBase: useCssVar("--color-foreground-base", document.body).value,
11
+ foregroundDark: useCssVar("--color-foreground-dark", document.body).value
12
+ };
13
+ function generateChartData(runs2, metric) {
14
+ const data = {
15
+ datasets: [
16
+ {
17
+ data: runs2,
18
+ parsing: {
19
+ xAxisKey: "id",
20
+ yAxisKey: `metrics.${metric}`
21
+ },
22
+ borderColor: colors.primary,
23
+ backgroundColor: colors.backgroundXLight,
24
+ borderWidth: 1,
25
+ pointRadius: 2,
26
+ pointHoverRadius: 4,
27
+ pointBackgroundColor: colors.backgroundXLight,
28
+ pointHoverBackgroundColor: colors.backgroundXLight
29
+ }
30
+ ]
31
+ };
32
+ return data;
33
+ }
34
+ function generateChartOptions({
35
+ metric,
36
+ data
37
+ }) {
38
+ return {
39
+ responsive: true,
40
+ maintainAspectRatio: false,
41
+ animation: false,
42
+ devicePixelRatio: 2,
43
+ interaction: {
44
+ mode: "index",
45
+ intersect: false
46
+ },
47
+ scales: {
48
+ y: {
49
+ border: {
50
+ display: false
51
+ },
52
+ grid: {
53
+ color: colors.foregroundBase
54
+ },
55
+ ticks: {
56
+ padding: 8,
57
+ color: colors.textBase
58
+ }
59
+ },
60
+ x: {
61
+ border: {
62
+ display: false
63
+ },
64
+ grid: {
65
+ display: false
66
+ },
67
+ ticks: {
68
+ color: colors.textBase,
69
+ // eslint-disable-next-line id-denylist
70
+ callback(_tickValue, index) {
71
+ return `#${data[index].index}`;
72
+ }
73
+ }
74
+ }
75
+ },
76
+ plugins: {
77
+ tooltip: {
78
+ backgroundColor: colors.backgroundXLight,
79
+ titleColor: colors.textBase,
80
+ titleFont: {
81
+ weight: "600"
82
+ },
83
+ bodyColor: colors.textBase,
84
+ bodySpacing: 4,
85
+ padding: 12,
86
+ borderColor: colors.foregroundBase,
87
+ borderWidth: 1,
88
+ displayColors: true,
89
+ callbacks: {
90
+ title: (tooltipItems) => {
91
+ return dateFormat(tooltipItems[0].raw.runAt, "yyyy-mm-dd HH:MM");
92
+ },
93
+ label: (context) => `${metric}: ${context.parsed.y.toFixed(2)}`,
94
+ labelColor() {
95
+ return {
96
+ borderColor: "rgba(29, 21, 21, 0)",
97
+ backgroundColor: colors.primary,
98
+ borderWidth: 0,
99
+ borderRadius: 5
100
+ };
101
+ }
102
+ }
103
+ },
104
+ legend: {
105
+ display: false
106
+ }
107
+ }
108
+ };
109
+ }
110
+ return {
111
+ generateChartData,
112
+ generateChartOptions
113
+ };
114
+ }
115
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
116
+ __name: "MetricsChart",
117
+ props: {
118
+ selectedMetric: {},
119
+ runs: {}
120
+ },
121
+ emits: ["update:selectedMetric"],
122
+ setup(__props, { emit: __emit }) {
123
+ const emit = __emit;
124
+ const props = __props;
125
+ const metricsChart = useMetricsChart();
126
+ const availableMetrics = computed(() => {
127
+ return props.runs.reduce((acc, run) => {
128
+ const metricKeys = Object.keys(run.metrics ?? {});
129
+ return [.../* @__PURE__ */ new Set([...acc, ...metricKeys])];
130
+ }, []);
131
+ });
132
+ const filteredRuns = computed(
133
+ () => props.runs.filter((run) => run.metrics?.[props.selectedMetric] !== void 0)
134
+ );
135
+ const chartData = computed(
136
+ () => metricsChart.generateChartData(filteredRuns.value, props.selectedMetric)
137
+ );
138
+ const chartOptions = computed(
139
+ () => metricsChart.generateChartOptions({
140
+ metric: props.selectedMetric,
141
+ data: filteredRuns.value
142
+ })
143
+ );
144
+ watchEffect(() => {
145
+ if (props.runs.length > 0 && !props.selectedMetric) {
146
+ emit("update:selectedMetric", availableMetrics.value[0]);
147
+ }
148
+ });
149
+ return (_ctx, _cache) => {
150
+ const _component_N8nOption = resolveComponent("N8nOption");
151
+ const _component_N8nSelect = resolveComponent("N8nSelect");
152
+ return openBlock(), createElementBlock("div", {
153
+ class: normalizeClass(_ctx.$style.metricsChartContainer)
154
+ }, [
155
+ createBaseVNode("div", {
156
+ class: normalizeClass(_ctx.$style.chartHeader)
157
+ }, [
158
+ createVNode(_component_N8nSelect, {
159
+ "model-value": _ctx.selectedMetric,
160
+ class: normalizeClass(_ctx.$style.metricSelect),
161
+ placeholder: "Select metric",
162
+ size: "small",
163
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("update:selectedMetric", $event))
164
+ }, {
165
+ default: withCtx(() => [
166
+ (openBlock(true), createElementBlock(Fragment, null, renderList(availableMetrics.value, (metric) => {
167
+ return openBlock(), createBlock(_component_N8nOption, {
168
+ key: metric,
169
+ label: metric,
170
+ value: metric
171
+ }, null, 8, ["label", "value"]);
172
+ }), 128))
173
+ ]),
174
+ _: 1
175
+ }, 8, ["model-value", "class"])
176
+ ], 2),
177
+ createBaseVNode("div", {
178
+ class: normalizeClass(_ctx.$style.chartWrapper)
179
+ }, [
180
+ (openBlock(), createBlock(unref(Line), {
181
+ key: _ctx.selectedMetric,
182
+ data: chartData.value,
183
+ options: chartOptions.value,
184
+ class: normalizeClass(_ctx.$style.metricsChart)
185
+ }, null, 8, ["data", "options", "class"]))
186
+ ], 2)
187
+ ], 2);
188
+ };
189
+ }
190
+ });
191
+ const metricsChartContainer = "_metricsChartContainer_1xhz2_123";
192
+ const chartHeader = "_chartHeader_1xhz2_128";
193
+ const chartTitle = "_chartTitle_1xhz2_131";
194
+ const metricSelect = "_metricSelect_1xhz2_136";
195
+ const chartWrapper = "_chartWrapper_1xhz2_139";
196
+ const style0$3 = {
197
+ metricsChartContainer,
198
+ chartHeader,
199
+ chartTitle,
200
+ metricSelect,
201
+ chartWrapper
202
+ };
203
+ const cssModules$3 = {
204
+ "$style": style0$3
205
+ };
206
+ const MetricsChart = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__cssModules", cssModules$3]]);
207
+ const _hoisted_1 = { style: { "display": "inline-flex", "gap": "12px", "text-transform": "capitalize", "align-items": "center" } };
208
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
209
+ __name: "TestRunsTable",
210
+ props: {
211
+ runs: {},
212
+ columns: {}
213
+ },
214
+ emits: ["rowClick"],
215
+ setup(__props, { emit: __emit }) {
216
+ const emit = __emit;
217
+ const props = __props;
218
+ const locale = useI18n();
219
+ const styledColumns = computed(() => {
220
+ return props.columns.map((column) => {
221
+ if (column.prop === "id") {
222
+ return {
223
+ ...column,
224
+ width: 100
225
+ };
226
+ }
227
+ if (column.prop === "runAt") {
228
+ return {
229
+ ...column,
230
+ width: 150
231
+ };
232
+ }
233
+ return column;
234
+ });
235
+ });
236
+ const runSummaries = computed(() => {
237
+ return props.runs.map(({ status, finalResult, errorDetails, ...run }) => {
238
+ if (status === "completed" && finalResult && ["error", "warning"].includes(finalResult)) {
239
+ status = "warning";
240
+ }
241
+ return {
242
+ ...run,
243
+ status,
244
+ finalResult,
245
+ errorDetails
246
+ };
247
+ });
248
+ });
249
+ return (_ctx, _cache) => {
250
+ const _component_N8nHeading = resolveComponent("N8nHeading");
251
+ const _component_AnimatedSpinner = __unplugin_components_0;
252
+ const _component_i18n_t = resolveComponent("i18n-t");
253
+ const _component_N8nTooltip = resolveComponent("N8nTooltip");
254
+ return openBlock(), createElementBlock("div", {
255
+ class: normalizeClass(_ctx.$style.container)
256
+ }, [
257
+ createVNode(_component_N8nHeading, {
258
+ size: "large",
259
+ bold: true,
260
+ class: normalizeClass(_ctx.$style.runsTableHeading),
261
+ color: "text-base"
262
+ }, {
263
+ default: withCtx(() => [
264
+ createTextVNode(toDisplayString(unref(locale).baseText("evaluation.listRuns.pastRuns.total", { adjustToNumber: _ctx.runs.length })) + " (" + toDisplayString(_ctx.runs.length) + ") ", 1)
265
+ ]),
266
+ _: 1
267
+ }, 8, ["class"]),
268
+ createVNode(TestTableBase, {
269
+ data: runSummaries.value,
270
+ columns: styledColumns.value,
271
+ "default-sort": { prop: "runAt", order: "descending" },
272
+ onRowClick: _cache[0] || (_cache[0] = (row) => row.status !== "error" ? emit("rowClick", row) : void 0)
273
+ }, {
274
+ id: withCtx(({ row }) => [
275
+ createTextVNode("#" + toDisplayString(row.index), 1)
276
+ ]),
277
+ status: withCtx(({ row }) => [
278
+ createBaseVNode("div", _hoisted_1, [
279
+ row.status === "running" ? (openBlock(), createBlock(unref(N8nText), {
280
+ key: 0,
281
+ color: "secondary"
282
+ }, {
283
+ default: withCtx(() => [
284
+ createVNode(_component_AnimatedSpinner)
285
+ ]),
286
+ _: 1
287
+ })) : (openBlock(), createBlock(unref(N8nIcon), {
288
+ key: 1,
289
+ icon: unref(statusDictionary)[row.status].icon,
290
+ color: unref(statusDictionary)[row.status].color
291
+ }, null, 8, ["icon", "color"])),
292
+ row.status === "warning" ? (openBlock(), createBlock(unref(N8nText), {
293
+ key: 2,
294
+ color: "warning",
295
+ class: normalizeClass([_ctx.$style.alertText, _ctx.$style.warningText])
296
+ }, {
297
+ default: withCtx(() => [
298
+ createTextVNode(toDisplayString(unref(locale).baseText(`evaluation.runDetail.error.partialCasesFailed`)), 1)
299
+ ]),
300
+ _: 1
301
+ }, 8, ["class"])) : row.status === "error" ? (openBlock(), createBlock(_component_N8nTooltip, {
302
+ key: 3,
303
+ placement: "top",
304
+ "show-after": 300
305
+ }, {
306
+ content: withCtx(() => [
307
+ createVNode(_component_i18n_t, {
308
+ keypath: `${unref(getErrorBaseKey)(row.errorCode)}`
309
+ }, createSlots({ _: 2 }, [
310
+ unref(locale).exists(`${unref(getErrorBaseKey)(row.errorCode)}.description`) ? {
311
+ name: "description",
312
+ fn: withCtx(() => [
313
+ createTextVNode(toDisplayString(unref(locale).baseText(
314
+ `${unref(getErrorBaseKey)(row.errorCode)}.description`
315
+ ) && ". ") + " " + toDisplayString(unref(locale).baseText(
316
+ `${unref(getErrorBaseKey)(row.errorCode)}.description`
317
+ )), 1)
318
+ ]),
319
+ key: "0"
320
+ } : void 0
321
+ ]), 1032, ["keypath"])
322
+ ]),
323
+ default: withCtx(() => [
324
+ createVNode(unref(N8nText), {
325
+ class: normalizeClass([_ctx.$style.alertText, _ctx.$style.errorText])
326
+ }, {
327
+ default: withCtx(() => [
328
+ createVNode(_component_i18n_t, {
329
+ keypath: `${unref(getErrorBaseKey)(row.errorCode)}`
330
+ }, createSlots({ _: 2 }, [
331
+ unref(locale).exists(`${unref(getErrorBaseKey)(row.errorCode)}.description`) ? {
332
+ name: "description",
333
+ fn: withCtx(() => [
334
+ createBaseVNode("p", {
335
+ class: normalizeClass(_ctx.$style.grayText)
336
+ }, toDisplayString(unref(locale).baseText(
337
+ `${unref(getErrorBaseKey)(row.errorCode)}.description`
338
+ )), 3)
339
+ ]),
340
+ key: "0"
341
+ } : void 0
342
+ ]), 1032, ["keypath"])
343
+ ]),
344
+ _: 2
345
+ }, 1032, ["class"])
346
+ ]),
347
+ _: 2
348
+ }, 1024)) : (openBlock(), createElementBlock(Fragment, { key: 4 }, [
349
+ createTextVNode(toDisplayString(row.status), 1)
350
+ ], 64))
351
+ ])
352
+ ]),
353
+ _: 1
354
+ }, 8, ["data", "columns"])
355
+ ], 2);
356
+ };
357
+ }
358
+ });
359
+ const container = "_container_okb74_123";
360
+ const grayText = "_grayText_okb74_129";
361
+ const alertText = "_alertText_okb74_133";
362
+ const warningText = "_warningText_okb74_151";
363
+ const errorText = "_errorText_okb74_155";
364
+ const style0$2 = {
365
+ container,
366
+ grayText,
367
+ alertText,
368
+ warningText,
369
+ errorText
370
+ };
371
+ const cssModules$2 = {
372
+ "$style": style0$2
373
+ };
374
+ const TestRunsTable = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__cssModules", cssModules$2]]);
375
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
376
+ __name: "RunsSection",
377
+ props: /* @__PURE__ */ mergeModels({
378
+ runs: {},
379
+ workflowId: {}
380
+ }, {
381
+ "selectedMetric": { required: true },
382
+ "selectedMetricModifiers": {}
383
+ }),
384
+ emits: ["update:selectedMetric"],
385
+ setup(__props) {
386
+ const props = __props;
387
+ const locale = useI18n();
388
+ const router = useRouter();
389
+ const selectedMetric = useModel(__props, "selectedMetric");
390
+ const metrics = computed(() => {
391
+ const metricKeys = props.runs.reduce((acc, run) => {
392
+ Object.keys(run.metrics ?? {}).forEach((metric) => acc.add(metric));
393
+ return acc;
394
+ }, /* @__PURE__ */ new Set());
395
+ return [...metricKeys];
396
+ });
397
+ const metricColumns = computed(
398
+ () => metrics.value.map((metric) => ({
399
+ prop: `metrics.${metric}`,
400
+ label: metric,
401
+ sortable: true,
402
+ showHeaderTooltip: true,
403
+ sortMethod: (a, b) => (a.metrics?.[metric] ?? 0) - (b.metrics?.[metric] ?? 0),
404
+ formatter: (row) => row.metrics?.[metric] !== void 0 ? (row.metrics?.[metric]).toFixed(2) : ""
405
+ }))
406
+ );
407
+ const columns = computed(() => [
408
+ {
409
+ prop: "id",
410
+ label: locale.baseText("evaluation.listRuns.runNumber"),
411
+ showOverflowTooltip: true
412
+ },
413
+ {
414
+ prop: "runAt",
415
+ label: "Run at",
416
+ sortable: true,
417
+ showOverflowTooltip: true,
418
+ formatter: (row) => {
419
+ const { date, time } = convertToDisplayDate(row.runAt);
420
+ return [date, time].join(", ");
421
+ },
422
+ sortMethod: (a, b) => new Date(a.runAt ?? a.createdAt).getTime() - new Date(b.runAt ?? b.createdAt).getTime()
423
+ },
424
+ {
425
+ prop: "status",
426
+ label: locale.baseText("evaluation.listRuns.status"),
427
+ sortable: true
428
+ },
429
+ ...metricColumns.value
430
+ ]);
431
+ const handleRowClick = (row) => {
432
+ void router.push({
433
+ name: VIEWS.EVALUATION_RUNS_DETAIL,
434
+ params: { runId: row.id }
435
+ });
436
+ };
437
+ return (_ctx, _cache) => {
438
+ return openBlock(), createElementBlock("div", {
439
+ class: normalizeClass(_ctx.$style.runs)
440
+ }, [
441
+ createVNode(MetricsChart, {
442
+ selectedMetric: selectedMetric.value,
443
+ "onUpdate:selectedMetric": _cache[0] || (_cache[0] = ($event) => selectedMetric.value = $event),
444
+ runs: _ctx.runs
445
+ }, null, 8, ["selectedMetric", "runs"]),
446
+ createVNode(TestRunsTable, {
447
+ class: normalizeClass(_ctx.$style.runsTable),
448
+ runs: _ctx.runs,
449
+ columns: columns.value,
450
+ selectable: true,
451
+ "data-test-id": "past-runs-table",
452
+ onRowClick: handleRowClick
453
+ }, null, 8, ["class", "runs", "columns"])
454
+ ], 2);
455
+ };
456
+ }
457
+ });
458
+ const runs$1 = "_runs_37xaf_123";
459
+ const style0$1 = {
460
+ runs: runs$1
461
+ };
462
+ const cssModules$1 = {
463
+ "$style": style0$1
464
+ };
465
+ const RunsSection = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__cssModules", cssModules$1]]);
466
+ const _sfc_main = /* @__PURE__ */ defineComponent({
467
+ __name: "EvaluationsView",
468
+ props: {
469
+ name: {}
470
+ },
471
+ setup(__props) {
472
+ const props = __props;
473
+ const locale = useI18n();
474
+ const toast = useToast();
475
+ const evaluationStore = useEvaluationStore();
476
+ const selectedMetric = ref("");
477
+ async function runTest() {
478
+ try {
479
+ await evaluationStore.startTestRun(props.name);
480
+ } catch (error) {
481
+ toast.showError(error, locale.baseText("evaluation.listRuns.error.cantStartTestRun"));
482
+ }
483
+ try {
484
+ await evaluationStore.fetchTestRuns(props.name);
485
+ } catch (error) {
486
+ toast.showError(error, locale.baseText("evaluation.listRuns.error.cantFetchTestRuns"));
487
+ }
488
+ }
489
+ const runs2 = computed(() => {
490
+ const testRuns = Object.values(evaluationStore.testRunsById ?? {}).filter(
491
+ ({ workflowId }) => workflowId === props.name
492
+ );
493
+ return orderBy(testRuns, (record) => new Date(record.runAt), ["asc"]).map((record, index) => ({
494
+ ...record,
495
+ index: index + 1
496
+ }));
497
+ });
498
+ const isRunning = computed(() => runs2.value.some((run) => run.status === "running"));
499
+ const isRunTestEnabled = computed(() => !isRunning.value);
500
+ return (_ctx, _cache) => {
501
+ const _component_N8nTooltip = resolveComponent("N8nTooltip");
502
+ return openBlock(), createElementBlock("div", {
503
+ class: normalizeClass(_ctx.$style.evaluationsView)
504
+ }, [
505
+ createBaseVNode("div", {
506
+ class: normalizeClass(_ctx.$style.header)
507
+ }, [
508
+ createVNode(_component_N8nTooltip, {
509
+ disabled: isRunTestEnabled.value,
510
+ placement: "left"
511
+ }, {
512
+ content: withCtx(() => [
513
+ isRunning.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
514
+ createTextVNode(toDisplayString(unref(locale).baseText("evaluation.testIsRunning")), 1)
515
+ ], 64)) : createCommentVNode("", true)
516
+ ]),
517
+ default: withCtx(() => [
518
+ createVNode(unref(N8nButton), {
519
+ disabled: !isRunTestEnabled.value,
520
+ class: normalizeClass(_ctx.$style.runTestButton),
521
+ size: "small",
522
+ "data-test-id": "run-test-button",
523
+ label: unref(locale).baseText("evaluation.runTest"),
524
+ type: "primary",
525
+ onClick: runTest
526
+ }, null, 8, ["disabled", "class", "label"])
527
+ ]),
528
+ _: 1
529
+ }, 8, ["disabled"])
530
+ ], 2),
531
+ createBaseVNode("div", {
532
+ class: normalizeClass(_ctx.$style.wrapper)
533
+ }, [
534
+ createBaseVNode("div", {
535
+ class: normalizeClass(_ctx.$style.content)
536
+ }, [
537
+ createVNode(RunsSection, {
538
+ selectedMetric: selectedMetric.value,
539
+ "onUpdate:selectedMetric": _cache[0] || (_cache[0] = ($event) => selectedMetric.value = $event),
540
+ class: normalizeClass(_ctx.$style.runs),
541
+ runs: runs2.value,
542
+ "workflow-id": props.name
543
+ }, null, 8, ["selectedMetric", "class", "runs", "workflow-id"])
544
+ ], 2)
545
+ ], 2)
546
+ ], 2);
547
+ };
548
+ }
549
+ });
550
+ const evaluationsView = "_evaluationsView_1n2uy_123";
551
+ const content = "_content_1n2uy_127";
552
+ const header = "_header_1n2uy_134";
553
+ const wrapper = "_wrapper_1n2uy_148";
554
+ const runTestButton = "_runTestButton_1n2uy_153";
555
+ const runs = "_runs_1n2uy_157";
556
+ const style0 = {
557
+ evaluationsView,
558
+ content,
559
+ header,
560
+ wrapper,
561
+ runTestButton,
562
+ runs
563
+ };
564
+ const cssModules = {
565
+ "$style": style0
566
+ };
567
+ const EvaluationsView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
568
+ export {
569
+ EvaluationsView as default
570
+ };
@@ -1,5 +1,5 @@
1
- import { d as defineComponent, au as usePostHog, q as computed, c as useI18n, ax as WORKFLOW_EVALUATION_EXPERIMENT, h as resolveComponent, i as createElementBlock, g as openBlock, j as createVNode, w as withCtx, l as createTextVNode, t as toDisplayString, k as createBaseVNode, n as normalizeClass, e as createBlock, m as unref, _ as _export_sfc, p as useSettingsStore, G as useDebounce, a6 as usePageRedirectionHelper, r as ref, aa as EnterpriseEditionFeature, bS as reactive, fm as getObjectKeys, dx as i18n, ex as isEmpty, az as onBeforeMount, f as createCommentVNode, F as Fragment, D as renderList, ad as _sfc_main$3, b3 as withModifiers, aV as createSlots, ag as useTelemetry, o as onMounted, y as onBeforeUnmount } from "./index-hdsPF3tl.js";
2
- import { _ as _sfc_main$4 } from "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BOrzkwPH.js";
1
+ import { d as defineComponent, au as usePostHog, q as computed, c as useI18n, ax as WORKFLOW_EVALUATION_EXPERIMENT, h as resolveComponent, i as createElementBlock, g as openBlock, j as createVNode, w as withCtx, l as createTextVNode, t as toDisplayString, k as createBaseVNode, n as normalizeClass, e as createBlock, m as unref, _ as _export_sfc, p as useSettingsStore, G as useDebounce, a6 as usePageRedirectionHelper, r as ref, aa as EnterpriseEditionFeature, d2 as reactive, fC as getObjectKeys, ez as i18n, fx as isEmpty, az as onBeforeMount, f as createCommentVNode, F as Fragment, D as renderList, ad as _sfc_main$3, b3 as withModifiers, aV as createSlots, ag as useTelemetry, o as onMounted, y as onBeforeUnmount } from "./index-BSlk84mz.js";
2
+ import { _ as _sfc_main$4 } from "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-b_VpBPcV.js";
3
3
  const _hoisted_1$1 = { "data-test-id": "concurrent-executions-header" };
4
4
  const _sfc_main$2 = /* @__PURE__ */ defineComponent({
5
5
  __name: "ConcurrentExecutionsHeader",
@@ -1,12 +1,11 @@
1
- import { P as ProjectHeader } from "./ProjectHeader-CpoOisjf.js";
2
- import { _ as _sfc_main$4, E as ExecutionsFilter, C as ConcurrentExecutionsHeader } from "./ExecutionsTime.vue_vue_type_script_setup_true_lang-DUu0UMcW.js";
3
- import { d as defineComponent, h as resolveComponent, e as createBlock, g as openBlock, w as withCtx, x as renderSlot, f as createCommentVNode, j as createVNode, n as normalizeClass, l as createTextVNode, t as toDisplayString, m as unref, c as useI18n, _ as _export_sfc, Y as useCssModule, r as ref, q as computed, fg as WAIT_INDEFINITELY, i as createElementBlock, k as createBaseVNode, du as N8nCheckbox, aR as N8nTooltip, V as VIEWS, bF as N8nIcon, bf as N8nText, F as Fragment, bh as N8nButton, b3 as withModifiers, aT as _sfc_main$5, Q as useWorkflowsStore, at as useExecutionsStore, p as useSettingsStore, a6 as usePageRedirectionHelper, a as useToast, aa as EnterpriseEditionFeature, X as watch, aZ as useTemplateRef, gi as useIntersectionObserver, D as renderList, gj as ElSkeletonItem, gk as N8nTableBase, ai as useMessage, aj as MODAL_CONFIRM, a7 as getResourcePermissions, cq as executionRetryMessage, ag as useTelemetry, R as useRoute, g0 as useInsightsStore, a4 as useDocumentTitle, cZ as storeToRefs, az as onBeforeMount, aP as useExternalHooks, o as onMounted, y as onBeforeUnmount } from "./index-hdsPF3tl.js";
4
- import { _ as __unplugin_components_0$1 } from "./AnimatedSpinner-CY5xYI5m.js";
5
- import { u as useExecutionHelpers } from "./useExecutionHelpers-CEOL8_vt.js";
6
- import { c as convertToDisplayDate } from "./dateFormatter-LbucaaRt.js";
7
- import { u as useProjectPages } from "./useProjectPages-OGc-GAxb.js";
8
- import { I as InsightsSummary } from "./InsightsSummary-BcXd-3nU.js";
9
- import "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BOrzkwPH.js";
1
+ import { P as ProjectHeader } from "./ProjectHeader-DQk1kmw3.js";
2
+ import { _ as _sfc_main$4, E as ExecutionsFilter, C as ConcurrentExecutionsHeader } from "./ExecutionsTime.vue_vue_type_script_setup_true_lang-BioZloew.js";
3
+ import { d as defineComponent, h as resolveComponent, e as createBlock, g as openBlock, w as withCtx, x as renderSlot, f as createCommentVNode, j as createVNode, n as normalizeClass, l as createTextVNode, t as toDisplayString, m as unref, c as useI18n, _ as _export_sfc, Y as useCssModule, r as ref, q as computed, cX as WAIT_INDEFINITELY, fB as convertToDisplayDate, i as createElementBlock, k as createBaseVNode, ew as N8nCheckbox, aR as N8nTooltip, V as VIEWS, bJ as N8nIcon, bf as N8nText, F as Fragment, bh as N8nButton, b3 as withModifiers, aT as _sfc_main$5, Q as useWorkflowsStore, at as useExecutionsStore, p as useSettingsStore, a6 as usePageRedirectionHelper, a as useToast, aa as EnterpriseEditionFeature, X as watch, aZ as useTemplateRef, gt as useIntersectionObserver, D as renderList, gu as ElSkeletonItem, gv as N8nTableBase, ai as useMessage, aj as MODAL_CONFIRM, a7 as getResourcePermissions, dw as executionRetryMessage, ag as useTelemetry, R as useRoute, ga as useInsightsStore, a4 as useDocumentTitle, e0 as storeToRefs, az as onBeforeMount, aP as useExternalHooks, o as onMounted, y as onBeforeUnmount } from "./index-BSlk84mz.js";
4
+ import { _ as __unplugin_components_0$1 } from "./AnimatedSpinner-DlBYfeum.js";
5
+ import { u as useExecutionHelpers } from "./useExecutionHelpers-q1_8c2Pm.js";
6
+ import { u as useProjectPages } from "./useProjectPages-DlqnxMvy.js";
7
+ import { I as InsightsSummary } from "./InsightsSummary-CwTpu3sa.js";
8
+ import "./AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-b_VpBPcV.js";
10
9
  const _sfc_main$3 = /* @__PURE__ */ defineComponent({
11
10
  __name: "GlobalExecutionsListItemQueuedTooltip",
12
11
  props: {
@@ -1,4 +1,4 @@
1
- import { dU as commonjsGlobal } from "./index-hdsPF3tl.js";
1
+ import { eV as commonjsGlobal } from "./index-BSlk84mz.js";
2
2
  var FileSaver_min$1 = { exports: {} };
3
3
  var FileSaver_min = FileSaver_min$1.exports;
4
4
  var hasRequiredFileSaver_min;
@@ -1,4 +1,4 @@
1
- import { d as defineComponent, Q as useWorkflowsStore, as as useNDVStore, q as computed, c as useI18n, r as ref, go as isINodePropertyCollectionList, X as watch, az as onBeforeMount, ct as deepCopy, i as createElementBlock, g as openBlock, f as createCommentVNode, j as createVNode, w as withCtx, l as createTextVNode, t as toDisplayString, m as unref, bf as N8nText, F as Fragment, D as renderList, e as createBlock, dt as N8nInputLabel, k as createBaseVNode, n as normalizeClass, aT as _sfc_main$1, c9 as Suspense, gp as _sfc_main$2, gq as Draggable, bh as N8nButton, em as _sfc_main$3, en as N8nSelect, b3 as withModifiers, gr as get, dA as telemetry, _ as _export_sfc } from "./index-hdsPF3tl.js";
1
+ import { d as defineComponent, Q as useWorkflowsStore, as as useNDVStore, q as computed, c as useI18n, r as ref, gz as isINodePropertyCollectionList, X as watch, az as onBeforeMount, dz as deepCopy, i as createElementBlock, g as openBlock, f as createCommentVNode, j as createVNode, w as withCtx, l as createTextVNode, t as toDisplayString, m as unref, bf as N8nText, F as Fragment, D as renderList, e as createBlock, ev as N8nInputLabel, k as createBaseVNode, n as normalizeClass, aT as _sfc_main$1, cN as Suspense, gA as _sfc_main$2, gB as Draggable, bh as N8nButton, fn as _sfc_main$3, fo as N8nSelect, b3 as withModifiers, gC as get, eC as telemetry, _ as _export_sfc } from "./index-BSlk84mz.js";
2
2
  const _hoisted_1 = ["data-test-id"];
3
3
  const _hoisted_2 = {
4
4
  key: 0,
@@ -1,6 +1,6 @@
1
- import { A as AuthView } from "./AuthView-BTzGYAnY.js";
2
- import { d as defineComponent, p as useSettingsStore, u as useUsersStore, a as useToast, r as ref, q as computed, c as useI18n, e as createBlock, g as openBlock } from "./index-hdsPF3tl.js";
3
- import "./Logo-BGe7-2Vd.js";
1
+ import { A as AuthView } from "./AuthView-3BmNl_WD.js";
2
+ import { d as defineComponent, p as useSettingsStore, u as useUsersStore, a as useToast, r as ref, q as computed, c as useI18n, e as createBlock, g as openBlock } from "./index-BSlk84mz.js";
3
+ import "./Logo-nyJoHWQJ.js";
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  __name: "ForgotMyPasswordView",
6
6
  setup(__props) {
@@ -1,7 +1,7 @@
1
- import { d as defineComponent, q as computed, hz as GRANULARITY_DATE_FORMAT_MASK, hF as transformInsightsAverageRunTime, c as useI18n, e as createBlock, g as openBlock, m as unref, hD as index, hC as INSIGHTS_UNIT_MAPPING } from "./index-hdsPF3tl.js";
2
- import { a as generateLineChartOptions, b as generateLinearGradient } from "./chartjs.utils-CuWcgqCr.js";
3
- import { s as smartDecimal } from "./InsightsSummary-BcXd-3nU.js";
4
- import { L as Line } from "./index-vIybYvt3.js";
1
+ import { d as defineComponent, q as computed, hK as GRANULARITY_DATE_FORMAT_MASK, hQ as transformInsightsAverageRunTime, c as useI18n, e as createBlock, g as openBlock, m as unref, hO as index, hN as INSIGHTS_UNIT_MAPPING } from "./index-BSlk84mz.js";
2
+ import { a as generateLineChartOptions, b as generateLinearGradient } from "./chartjs.utils-hlpJdzhb.js";
3
+ import { s as smartDecimal } from "./InsightsSummary-CwTpu3sa.js";
4
+ import { L as Line } from "./index-lOeP0Jxq.js";
5
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
6
6
  __name: "InsightsChartAverageRuntime",
7
7
  props: {
@@ -1,7 +1,7 @@
1
- import { d as defineComponent, fS as useCssVar, q as computed, hz as GRANULARITY_DATE_FORMAT_MASK, c as useI18n, e as createBlock, g as openBlock, m as unref } from "./index-hdsPF3tl.js";
2
- import { g as generateBarChartOptions } from "./chartjs.utils-CuWcgqCr.js";
3
- import { s as smartDecimal } from "./InsightsSummary-BcXd-3nU.js";
4
- import { B as Bar } from "./index-vIybYvt3.js";
1
+ import { d as defineComponent, f_ as useCssVar, q as computed, hK as GRANULARITY_DATE_FORMAT_MASK, c as useI18n, e as createBlock, g as openBlock, m as unref } from "./index-BSlk84mz.js";
2
+ import { g as generateBarChartOptions } from "./chartjs.utils-hlpJdzhb.js";
3
+ import { s as smartDecimal } from "./InsightsSummary-CwTpu3sa.js";
4
+ import { B as Bar } from "./index-lOeP0Jxq.js";
5
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
6
6
  __name: "InsightsChartFailed",
7
7
  props: {
@@ -1,7 +1,7 @@
1
- import { d as defineComponent, fS as useCssVar, q as computed, hz as GRANULARITY_DATE_FORMAT_MASK, hB as transformInsightsFailureRate, c as useI18n, e as createBlock, g as openBlock, m as unref, hC as INSIGHTS_UNIT_MAPPING } from "./index-hdsPF3tl.js";
2
- import { g as generateBarChartOptions } from "./chartjs.utils-CuWcgqCr.js";
3
- import { s as smartDecimal } from "./InsightsSummary-BcXd-3nU.js";
4
- import { B as Bar } from "./index-vIybYvt3.js";
1
+ import { d as defineComponent, f_ as useCssVar, q as computed, hK as GRANULARITY_DATE_FORMAT_MASK, hM as transformInsightsFailureRate, c as useI18n, e as createBlock, g as openBlock, m as unref, hN as INSIGHTS_UNIT_MAPPING } from "./index-BSlk84mz.js";
2
+ import { g as generateBarChartOptions } from "./chartjs.utils-hlpJdzhb.js";
3
+ import { s as smartDecimal } from "./InsightsSummary-CwTpu3sa.js";
4
+ import { B as Bar } from "./index-lOeP0Jxq.js";
5
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
6
6
  __name: "InsightsChartFailureRate",
7
7
  props: {