@allurereport/web-dashboard 3.3.1 → 3.4.1

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 (50) hide show
  1. package/dist/multi/310.app-c35820f9526d89a9502d.js +1 -0
  2. package/dist/multi/507.app-c35820f9526d89a9502d.js +1 -0
  3. package/dist/multi/686.app-c35820f9526d89a9502d.js +1 -0
  4. package/dist/multi/app-c35820f9526d89a9502d.js +2 -0
  5. package/dist/multi/manifest.json +23 -21
  6. package/dist/multi/{styles-011dd2d56853503b8210.css → styles-ba2f7910ded8751a5da3.css} +4 -4
  7. package/dist/single/app-31fba1f25f971fe4047e.js +2 -0
  8. package/dist/single/manifest.json +1 -1
  9. package/package.json +17 -35
  10. package/src/components/BaseLayout/index.tsx +2 -0
  11. package/src/components/Dashboard/index.tsx +3 -0
  12. package/src/components/EnvironmentPicker/index.tsx +78 -18
  13. package/src/components/EnvironmentPicker/styles.scss +19 -0
  14. package/src/components/Footer/FooterLogo.tsx +1 -0
  15. package/src/components/Footer/FooterVersion.tsx +2 -0
  16. package/src/components/Footer/index.tsx +3 -1
  17. package/src/components/Header/index.tsx +3 -0
  18. package/src/components/Header/styles.scss +1 -0
  19. package/src/index.tsx +3 -0
  20. package/src/locales/ar.json +227 -0
  21. package/src/locales/az.json +14 -14
  22. package/src/locales/zh-TW.json +227 -0
  23. package/src/stores/dashboard.ts +1 -0
  24. package/src/stores/env.ts +14 -3
  25. package/src/stores/locale.ts +1 -0
  26. package/tsconfig.json +2 -2
  27. package/.eslintrc.cjs +0 -18
  28. package/dist/multi/686.app-6e16634fb6316062546e.js +0 -1
  29. package/dist/multi/app-6e16634fb6316062546e.js +0 -2
  30. package/dist/single/app-a4723ecfb6c2e831c7c0.js +0 -2
  31. /package/dist/multi/{173.app-6e16634fb6316062546e.js → 173.app-c35820f9526d89a9502d.js} +0 -0
  32. /package/dist/multi/{174.app-6e16634fb6316062546e.js → 174.app-c35820f9526d89a9502d.js} +0 -0
  33. /package/dist/multi/{252.app-6e16634fb6316062546e.js → 252.app-c35820f9526d89a9502d.js} +0 -0
  34. /package/dist/multi/{282.app-6e16634fb6316062546e.js → 282.app-c35820f9526d89a9502d.js} +0 -0
  35. /package/dist/multi/{29.app-6e16634fb6316062546e.js → 29.app-c35820f9526d89a9502d.js} +0 -0
  36. /package/dist/multi/{416.app-6e16634fb6316062546e.js → 416.app-c35820f9526d89a9502d.js} +0 -0
  37. /package/dist/multi/{527.app-6e16634fb6316062546e.js → 527.app-c35820f9526d89a9502d.js} +0 -0
  38. /package/dist/multi/{600.app-6e16634fb6316062546e.js → 600.app-c35820f9526d89a9502d.js} +0 -0
  39. /package/dist/multi/{605.app-6e16634fb6316062546e.js → 605.app-c35820f9526d89a9502d.js} +0 -0
  40. /package/dist/multi/{638.app-6e16634fb6316062546e.js → 638.app-c35820f9526d89a9502d.js} +0 -0
  41. /package/dist/multi/{672.app-6e16634fb6316062546e.js → 672.app-c35820f9526d89a9502d.js} +0 -0
  42. /package/dist/multi/{725.app-6e16634fb6316062546e.js → 725.app-c35820f9526d89a9502d.js} +0 -0
  43. /package/dist/multi/{741.app-6e16634fb6316062546e.js → 741.app-c35820f9526d89a9502d.js} +0 -0
  44. /package/dist/multi/{749.app-6e16634fb6316062546e.js → 749.app-c35820f9526d89a9502d.js} +0 -0
  45. /package/dist/multi/{755.app-6e16634fb6316062546e.js → 755.app-c35820f9526d89a9502d.js} +0 -0
  46. /package/dist/multi/{894.app-6e16634fb6316062546e.js → 894.app-c35820f9526d89a9502d.js} +0 -0
  47. /package/dist/multi/{943.app-6e16634fb6316062546e.js → 943.app-c35820f9526d89a9502d.js} +0 -0
  48. /package/dist/multi/{980.app-6e16634fb6316062546e.js → 980.app-c35820f9526d89a9502d.js} +0 -0
  49. /package/dist/multi/{app-6e16634fb6316062546e.js.LICENSE.txt → app-c35820f9526d89a9502d.js.LICENSE.txt} +0 -0
  50. /package/dist/single/{app-a4723ecfb6c2e831c7c0.js.LICENSE.txt → app-31fba1f25f971fe4047e.js.LICENSE.txt} +0 -0
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "statuses": {
3
- "passed": "Keçdi",
3
+ "passed": "Uğurlu",
4
4
  "failed": "Uğursuz",
5
5
  "broken": "Sınıq",
6
- "skipped": "Keçildi",
6
+ "skipped": "Buraxılmış",
7
7
  "unknown": "Naməlum",
8
8
  "total": "Cəmi"
9
9
  },
@@ -28,7 +28,7 @@
28
28
  "title": "Trend qrafiki: {{type}}",
29
29
  "type": {
30
30
  "status": "Status",
31
- "severity": "Ciddilik"
31
+ "severity": "Əhəmiyyət dərəcəsi"
32
32
  }
33
33
  },
34
34
  "currentStatus": {
@@ -41,7 +41,7 @@
41
41
  "unknown": "$t(statuses:unknown, capitalize)"
42
42
  },
43
43
  "percentage": "{{percentage}}%",
44
- "of": "{{total}} dən",
44
+ "of": "{{total}} içindən",
45
45
  "total": "{{total}}",
46
46
  "tests": {
47
47
  "new_zero": "Yeni test yoxdur",
@@ -68,7 +68,7 @@
68
68
  "no-results": "$t(empty:no-results)",
69
69
  "tooltips": {
70
70
  "current": "Son hesabat ({{timestamp, timestamp_long_no_seconds}})",
71
- "history": "{{timestamp, timestamp_long_no_seconds}} hesabatı"
71
+ "history": "{{timestamp, timestamp_long_no_seconds}} tarixli hesabat"
72
72
  },
73
73
  "ticks": {
74
74
  "current": "Sonuncu",
@@ -90,7 +90,7 @@
90
90
  "no-results": "$t(empty:no-results)",
91
91
  "tooltips": {
92
92
  "current": "Son hesabat ({{timestamp, timestamp_long_no_seconds}})",
93
- "history": "{{timestamp, timestamp_long_no_seconds}} hesabatı"
93
+ "history": "{{timestamp, timestamp_long_no_seconds}} tarixli hesabat"
94
94
  },
95
95
  "ticks": {
96
96
  "current": "Sonuncu",
@@ -98,7 +98,7 @@
98
98
  }
99
99
  },
100
100
  "durations": {
101
- "title": "{{groupBy}} görə müddət histogramı",
101
+ "title": "{{groupBy}} üzrə müddət histogramı",
102
102
  "title_none": "Müddət histogramı",
103
103
  "no-results": "$t(empty:no-results)",
104
104
  "groupBy": {
@@ -147,7 +147,7 @@
147
147
  "history": "{{timestamp, timestamp_long_no_seconds}} tarixli hesabat"
148
148
  },
149
149
  "ticks": {
150
- "current": "Son",
150
+ "current": "Sonuncu",
151
151
  "history": "{{timestamp, timestamp_date}}"
152
152
  }
153
153
  },
@@ -167,12 +167,12 @@
167
167
  "history": "{{timestamp, timestamp_long_no_seconds}} tarixli hesabat"
168
168
  },
169
169
  "ticks": {
170
- "current": "Son",
170
+ "current": "Sonuncu",
171
171
  "history": "{{timestamp, timestamp_date}}"
172
172
  }
173
173
  },
174
174
  "trSeverities": {
175
- "title": "Ciddilik dərəcəsinə görə test nəticələri",
175
+ "title": "Əhəmiyyət dərəcəsinə görə test nəticələri",
176
176
  "no-results": "$t(empty:no-results)",
177
177
  "status": {
178
178
  "passed": "$t(statuses:passed, capitalize)",
@@ -187,7 +187,7 @@
187
187
  "normal": "$t(severity:normal, capitalize)",
188
188
  "minor": "$t(severity:minor, capitalize)",
189
189
  "trivial": "$t(severity:trivial, capitalize)",
190
- "unset": "Ciddilik dərəcəsi yoxdur"
190
+ "unset": "Əhəmiyyət dərəcəsi yoxdur"
191
191
  }
192
192
  },
193
193
  "durationDynamics": {
@@ -195,7 +195,7 @@
195
195
  "durations": {
196
196
  "sequential": "Ardıcıl müddət",
197
197
  "duration": "Test müddəti",
198
- "speedup": "Sürətləndirmə"
198
+ "speedup": "Sürətlənmə"
199
199
  },
200
200
  "no-results": "$t(empty:no-results)",
201
201
  "tooltips": {
@@ -203,7 +203,7 @@
203
203
  "history": "{{timestamp, timestamp_long_no_seconds}} tarixli hesabat"
204
204
  },
205
205
  "ticks": {
206
- "current": "Son",
206
+ "current": "Sonuncu",
207
207
  "history": "{{timestamp, timestamp_date}}"
208
208
  },
209
209
  "legend": {
@@ -214,7 +214,7 @@
214
214
  },
215
215
  "transitions": {
216
216
  "description": {
217
- "new": "Bu test nəticəsinin hesabatda ilk dəfə görünməsi",
217
+ "new": "Bu test sonucunun hesabatda ilk dəfə görünməsi",
218
218
  "fixed": "Əvvəl \"uğursuz\" və ya \"sınıq\" olan, indi \"uğurlu\" olan test",
219
219
  "regressed": "Əvvəl \"uğurlu\" və ya \"sınıq\" olan, indi \"uğursuz\" olan test",
220
220
  "malfunctioned": "Əvvəl \"uğurlu\" və ya \"uğursuz\" olan, indi \"sınıq\" olan test"
@@ -0,0 +1,227 @@
1
+ {
2
+ "statuses": {
3
+ "passed": "通過",
4
+ "failed": "失敗",
5
+ "broken": "損壞",
6
+ "skipped": "跳過",
7
+ "unknown": "未知",
8
+ "total": "總計"
9
+ },
10
+ "empty": {
11
+ "no-results": "無結果",
12
+ "no-history-results": "無歷史資訊"
13
+ },
14
+ "severity": {
15
+ "blocker": "阻礙",
16
+ "critical": "嚴重",
17
+ "normal": "正常",
18
+ "minor": "次要",
19
+ "trivial": "輕微"
20
+ },
21
+ "environments": {
22
+ "environment_one": "環境",
23
+ "environment_other": "環境",
24
+ "all": "全部"
25
+ },
26
+ "charts": {
27
+ "trend": {
28
+ "title": "趨勢圖表: {{type}}",
29
+ "type": {
30
+ "status": "狀態",
31
+ "severity": "嚴重程度"
32
+ }
33
+ },
34
+ "currentStatus": {
35
+ "title": "當前狀態",
36
+ "status": {
37
+ "passed": "$t(statuses:passed, capitalize)",
38
+ "failed": "$t(statuses:failed, capitalize)",
39
+ "broken": "$t(statuses:broken, capitalize)",
40
+ "skipped": "$t(statuses:skipped, capitalize)",
41
+ "unknown": "$t(statuses:unknown, capitalize)"
42
+ },
43
+ "percentage": "{{percentage}}%",
44
+ "of": "共 {{total}}",
45
+ "total": "{{total}}",
46
+ "tests": {
47
+ "new_zero": "沒有新的測試",
48
+ "new_one": "{{count}} 個新的測試",
49
+ "new_other": "{{count}} 個新的測試",
50
+ "flaky_zero": "沒有不穩定的測試",
51
+ "flaky_one": "{{count}} 個不穩定的測試",
52
+ "flaky_other": "{{count}} 個不穩定的測試",
53
+ "retries_zero": "沒有重跑的測試",
54
+ "retries_one": "{{count}} 個重跑的測試",
55
+ "retries_other": "{{count}} 個重跑的測試"
56
+ }
57
+ },
58
+ "statusDynamics": {
59
+ "title": "狀態趨勢",
60
+ "status": {
61
+ "passed": "$t(statuses:passed, capitalize)",
62
+ "failed": "$t(statuses:failed, capitalize)",
63
+ "broken": "$t(statuses:broken, capitalize)",
64
+ "skipped": "$t(statuses:skipped, capitalize)",
65
+ "unknown": "$t(statuses:unknown, capitalize)"
66
+ },
67
+ "no-history": "$t(empty:no-history-results)",
68
+ "no-results": "$t(empty:no-results)",
69
+ "tooltips": {
70
+ "current": "最新報告 ({{timestamp, timestamp_long_no_seconds}})",
71
+ "history": "{{timestamp, timestamp_long_no_seconds}} 的報告"
72
+ },
73
+ "ticks": {
74
+ "current": "最新",
75
+ "history": "{{timestamp, timestamp_date}}"
76
+ }
77
+ },
78
+ "statusTransitions": {
79
+ "title": "狀態轉變",
80
+ "legend": {
81
+ "trend": "修復率"
82
+ },
83
+ "transitions": {
84
+ "new": "$t(transitions:new, capitalize)",
85
+ "fixed": "$t(transitions:fixed, capitalize)",
86
+ "regressed": "$t(transitions:regressed, capitalize)",
87
+ "malfunctioned": "$t(transitions:malfunctioned, capitalize)"
88
+ },
89
+ "no-history": "$t(empty:no-history-results)",
90
+ "no-results": "$t(empty:no-results)",
91
+ "tooltips": {
92
+ "current": "最新報告 ({{timestamp, timestamp_long_no_seconds}})",
93
+ "history": "{{timestamp, timestamp_long_no_seconds}} 的報告"
94
+ },
95
+ "ticks": {
96
+ "current": "最新",
97
+ "history": "{{timestamp, timestamp_date}}"
98
+ }
99
+ },
100
+ "durations": {
101
+ "title": "按{{groupBy}}的持續時間直方圖",
102
+ "title_none": "持續時間直方圖",
103
+ "no-results": "$t(empty:no-results)",
104
+ "groupBy": {
105
+ "none": "無",
106
+ "layer": "層"
107
+ },
108
+ "ticks": {
109
+ "durationRange": "{{from, format_duration}} - {{to, format_duration}}"
110
+ },
111
+ "tooltips": {
112
+ "durationRange": "{{from, format_duration}} - {{to, format_duration}}"
113
+ },
114
+ "legend": {
115
+ "value": "{{value}}",
116
+ "total": "測試數量"
117
+ }
118
+ },
119
+ "stabilityDistribution": {
120
+ "title": "穩定性分佈",
121
+ "no-results": "$t(empty:no-results)",
122
+ "legend": {
123
+ "stabilityRate": "穩定率"
124
+ }
125
+ },
126
+ "testBaseGrowthDynamics": {
127
+ "title": "測試增長趨勢",
128
+ "status": {
129
+ "newpassed": "新增 $t(statuses:passed)",
130
+ "newfailed": "新增 $t(statuses:failed)",
131
+ "newbroken": "新增 $t(statuses:broken)",
132
+ "newskipped": "新增 $t(statuses:skipped)",
133
+ "newunknown": "新增 $t(statuses:unknown)",
134
+ "removedpassed": "移除 $t(statuses:passed)",
135
+ "removedfailed": "移除 $t(statuses:failed)",
136
+ "removedbroken": "移除 $t(statuses:broken)",
137
+ "removedskipped": "移除 $t(statuses:skipped)",
138
+ "removedunknown": "移除 $t(statuses:unknown)"
139
+ },
140
+ "legend": {
141
+ "trend": "增長趨勢"
142
+ },
143
+ "no-history": "$t(empty:no-history-results)",
144
+ "no-results": "$t(empty:no-results)",
145
+ "tooltips": {
146
+ "current": "最新報告 ({{timestamp, timestamp_long_no_seconds}})",
147
+ "history": "報告來自 {{timestamp, timestamp_long_no_seconds}}"
148
+ },
149
+ "ticks": {
150
+ "current": "最新",
151
+ "history": "{{timestamp, timestamp_date}}"
152
+ }
153
+ },
154
+ "statusAgePyramid": {
155
+ "title": "狀態分布金字塔",
156
+ "status": {
157
+ "passed": "$t(statuses:passed, capitalize)",
158
+ "failed": "$t(statuses:failed, capitalize)",
159
+ "broken": "$t(statuses:broken, capitalize)",
160
+ "skipped": "$t(statuses:skipped, capitalize)",
161
+ "unknown": "$t(statuses:unknown, capitalize)"
162
+ },
163
+ "no-history": "$t(empty:no-history-results)",
164
+ "no-results": "$t(empty:no-results)",
165
+ "tooltips": {
166
+ "current": "最新報告 ({{timestamp, timestamp_long_no_seconds}})",
167
+ "history": "報告來自 {{timestamp, timestamp_long_no_seconds}}"
168
+ },
169
+ "ticks": {
170
+ "current": "最新",
171
+ "history": "{{timestamp, timestamp_date}}"
172
+ }
173
+ },
174
+ "trSeverities": {
175
+ "title": "按嚴重程度的測試結果",
176
+ "no-results": "$t(empty:no-results)",
177
+ "status": {
178
+ "passed": "$t(statuses:passed, capitalize)",
179
+ "failed": "$t(statuses:failed, capitalize)",
180
+ "broken": "$t(statuses:broken, capitalize)",
181
+ "skipped": "$t(statuses:skipped, capitalize)",
182
+ "unknown": "$t(statuses:unknown, capitalize)"
183
+ },
184
+ "severity": {
185
+ "blocker": "$t(severity:blocker, capitalize)",
186
+ "critical": "$t(severity:critical, capitalize)",
187
+ "normal": "$t(severity:normal, capitalize)",
188
+ "minor": "$t(severity:minor, capitalize)",
189
+ "trivial": "$t(severity:trivial, capitalize)",
190
+ "unset": "無嚴重程度"
191
+ }
192
+ },
193
+ "durationDynamics": {
194
+ "title": "執行時間趨勢",
195
+ "durations": {
196
+ "sequential": "順序持續時間",
197
+ "duration": "測試持續時間",
198
+ "speedup": "加速"
199
+ },
200
+ "no-results": "$t(empty:no-results)",
201
+ "tooltips": {
202
+ "current": "最新報告 ({{timestamp, timestamp_long_no_seconds}})",
203
+ "history": "{{timestamp, timestamp_long_no_seconds}} 的報告"
204
+ },
205
+ "ticks": {
206
+ "current": "最新",
207
+ "history": "{{timestamp, timestamp_date}}"
208
+ },
209
+ "legend": {
210
+ "duration": "{{duration, format_duration}}",
211
+ "speedup": "{{speedup}}x"
212
+ }
213
+ }
214
+ },
215
+ "transitions": {
216
+ "description": {
217
+ "new": "此測試結果在報告中的首次出現",
218
+ "fixed": "之前「失敗」或「損壞」的測試現在「通過」了",
219
+ "regressed": "之前「通過」或「損壞」的測試現在「失敗」了",
220
+ "malfunctioned": "之前「通過」或「失敗」的測試現在「損壞」了"
221
+ },
222
+ "new": "新的",
223
+ "fixed": "已修復",
224
+ "regressed": "已回歸",
225
+ "malfunctioned": "已損壞"
226
+ }
227
+ }
@@ -5,6 +5,7 @@ import {
5
5
  fetchReportJsonData,
6
6
  } from "@allurereport/web-commons";
7
7
  import { signal } from "@preact/signals";
8
+
8
9
  import type { StoreSignalState } from "@/stores/types";
9
10
 
10
11
  export const dashboardStore = signal<StoreSignalState<UIChartsDataWithEnvs>>({
package/src/stores/env.ts CHANGED
@@ -1,5 +1,11 @@
1
- import { fetchReportJsonData } from "@allurereport/web-commons";
1
+ import type { EnvironmentIdentity } from "@allurereport/core-api";
2
+ import {
3
+ environmentNameById as resolveEnvironmentNameById,
4
+ fetchReportJsonData,
5
+ migrateStoredEnvironmentSelection,
6
+ } from "@allurereport/web-commons";
2
7
  import { effect, signal } from "@preact/signals";
8
+
3
9
  import type { StoreSignalState } from "@/stores/types";
4
10
 
5
11
  const loadFromLocalStorage = <T>(key: string, defaultValue?: T): T => {
@@ -11,7 +17,7 @@ const loadFromLocalStorage = <T>(key: string, defaultValue?: T): T => {
11
17
  }
12
18
  };
13
19
 
14
- export const environmentsStore = signal<StoreSignalState<string[]>>({
20
+ export const environmentsStore = signal<StoreSignalState<EnvironmentIdentity[]>>({
15
21
  loading: false,
16
22
  error: undefined,
17
23
  data: [],
@@ -24,6 +30,9 @@ export const setCurrentEnvironment = (env: string) => {
24
30
  currentEnvironment.value = env;
25
31
  };
26
32
 
33
+ export const environmentNameById = (environmentId: string) =>
34
+ resolveEnvironmentNameById(environmentsStore.peek().data, environmentId);
35
+
27
36
  export const fetchEnvironments = async () => {
28
37
  environmentsStore.value = {
29
38
  ...environmentsStore.value,
@@ -32,13 +41,15 @@ export const fetchEnvironments = async () => {
32
41
  };
33
42
 
34
43
  try {
35
- const res = await fetchReportJsonData<string[]>("widgets/environments.json", { bustCache: true });
44
+ const res = await fetchReportJsonData<EnvironmentIdentity[]>("widgets/environments.json", { bustCache: true });
36
45
 
37
46
  environmentsStore.value = {
38
47
  data: res,
39
48
  error: undefined,
40
49
  loading: false,
41
50
  };
51
+
52
+ currentEnvironment.value = migrateStoredEnvironmentSelection(currentEnvironment.value, res);
42
53
  } catch (e) {
43
54
  environmentsStore.value = {
44
55
  ...environmentsStore.value,
@@ -147,4 +147,5 @@ export const setLocale = async (locale: LangLocale) => {
147
147
  await i18next.changeLanguage(locale as string);
148
148
  localStorage.setItem("currentLocale", locale as string);
149
149
  currentLocale.value = locale;
150
+ document.documentElement.dir = ["ar", "he", "fa"].includes(locale) ? "rtl" : "ltr";
150
151
  };
package/tsconfig.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "baseUrl": "./",
4
3
  "paths": {
5
- "@/*": ["src/*"]
4
+ "@/*": ["./src/*"],
5
+ "types": ["./types"]
6
6
  },
7
7
  "jsx": "preserve",
8
8
  "jsxFactory": "h",
package/.eslintrc.cjs DELETED
@@ -1,18 +0,0 @@
1
- module.exports = {
2
- env: { browser: true, es2020: true },
3
- extends: [
4
- "eslint-config-preact",
5
- "../../.eslintrc.cjs",
6
- ],
7
- ignorePatterns: ["dist/", ".eslintrc.cjs", "postcss.config.js", "webpack.config.js", "types.d.ts"],
8
- parser: "@typescript-eslint/parser",
9
- overrides: [
10
- {
11
- extends: ["plugin:@typescript-eslint/disable-type-checked"],
12
- files: [".eslintrc.cjs", ".babelrc.js"],
13
- },
14
- ],
15
- rules: {
16
- "n/file-extension-in-import": "off"
17
- }
18
- };
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunk_allurereport_web_dashboard=self.webpackChunk_allurereport_web_dashboard||[]).push([[686],{9686:function(t){t.exports=JSON.parse('{"statuses":{"passed":"Keçdi","failed":"Uğursuz","broken":"Sınıq","skipped":"Keçildi","unknown":"Naməlum","total":"Cəmi"},"empty":{"no-results":"Nəticə tapılmadı","no-history-results":"Tarixçə məlumatı mövcud deyil"},"severity":{"blocker":"Bloklayıcı","critical":"Kritik","normal":"Normal","minor":"Kiçik","trivial":"Əhəmiyyətsiz"},"environments":{"environment_one":"Mühit","environment_other":"Mühitlər","all":"Hamısı"},"charts":{"trend":{"title":"Trend qrafiki: {{type}}","type":{"status":"Status","severity":"Ciddilik"}},"currentStatus":{"title":"Cari Status","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"percentage":"{{percentage}}%","of":"{{total}} dən","total":"{{total}}","tests":{"new_zero":"Yeni test yoxdur","new_one":"{{count}} yeni test","new_other":"{{count}} yeni test","flaky_zero":"Qeyri-sabit test yoxdur","flaky_one":"{{count}} qeyri-sabit test","flaky_other":"{{count}} qeyri-sabit test","retries_zero":"Yenidən cəhd edilmiş test yoxdur","retries_one":"{{count}} yenidən cəhd edilmiş test","retries_other":"{{count}} yenidən cəhd edilmiş test"}},"statusDynamics":{"title":"Status dinamikası","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Son hesabat ({{timestamp, timestamp_long_no_seconds}})","history":"{{timestamp, timestamp_long_no_seconds}} hesabatı"},"ticks":{"current":"Sonuncu","history":"{{timestamp, timestamp_date}}"}},"statusTransitions":{"title":"Status keçidləri","legend":{"trend":"Düzəltmə dərəcəsi"},"transitions":{"new":"$t(transitions:new, capitalize)","fixed":"$t(transitions:fixed, capitalize)","regressed":"$t(transitions:regressed, capitalize)","malfunctioned":"$t(transitions:malfunctioned, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Son hesabat ({{timestamp, timestamp_long_no_seconds}})","history":"{{timestamp, timestamp_long_no_seconds}} hesabatı"},"ticks":{"current":"Sonuncu","history":"{{timestamp, timestamp_date}}"}},"durations":{"title":"{{groupBy}} görə müddət histogramı","title_none":"Müddət histogramı","no-results":"$t(empty:no-results)","groupBy":{"none":"Yoxdur","layer":"Qat"},"ticks":{"durationRange":"{{from, format_duration}} - {{to, format_duration}}"},"tooltips":{"durationRange":"{{from, format_duration}} - {{to, format_duration}}"},"legend":{"value":"{{value}}","total":"Test sayı"}},"stabilityDistribution":{"title":"Sabitlik paylanması","no-results":"$t(empty:no-results)","legend":{"stabilityRate":"Sabitlik dərəcəsi"}},"testBaseGrowthDynamics":{"title":"Test bazasının artım dinamikası","status":{"newpassed":"Yeni $t(statuses:passed)","newfailed":"Yeni $t(statuses:failed)","newbroken":"Yeni $t(statuses:broken)","newskipped":"Yeni $t(statuses:skipped)","newunknown":"Yeni $t(statuses:unknown)","removedpassed":"Silinmiş $t(statuses:passed)","removedfailed":"Silinmiş $t(statuses:failed)","removedbroken":"Silinmiş $t(statuses:broken)","removedskipped":"Silinmiş $t(statuses:skipped)","removedunknown":"Silinmiş $t(statuses:unknown)"},"legend":{"trend":"Artım trendi"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Son hesabat ({{timestamp, timestamp_long_no_seconds}})","history":"{{timestamp, timestamp_long_no_seconds}} tarixli hesabat"},"ticks":{"current":"Son","history":"{{timestamp, timestamp_date}}"}},"statusAgePyramid":{"title":"Statusa görə yaş piramidası","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"no-history":"$t(empty:no-history-results)","no-results":"$t(empty:no-results)","tooltips":{"current":"Son hesabat ({{timestamp, timestamp_long_no_seconds}})","history":"{{timestamp, timestamp_long_no_seconds}} tarixli hesabat"},"ticks":{"current":"Son","history":"{{timestamp, timestamp_date}}"}},"trSeverities":{"title":"Ciddilik dərəcəsinə görə test nəticələri","no-results":"$t(empty:no-results)","status":{"passed":"$t(statuses:passed, capitalize)","failed":"$t(statuses:failed, capitalize)","broken":"$t(statuses:broken, capitalize)","skipped":"$t(statuses:skipped, capitalize)","unknown":"$t(statuses:unknown, capitalize)"},"severity":{"blocker":"$t(severity:blocker, capitalize)","critical":"$t(severity:critical, capitalize)","normal":"$t(severity:normal, capitalize)","minor":"$t(severity:minor, capitalize)","trivial":"$t(severity:trivial, capitalize)","unset":"Ciddilik dərəcəsi yoxdur"}},"durationDynamics":{"title":"Müddət dinamikası","durations":{"sequential":"Ardıcıl müddət","duration":"Test müddəti","speedup":"Sürətləndirmə"},"no-results":"$t(empty:no-results)","tooltips":{"current":"Son hesabat ({{timestamp, timestamp_long_no_seconds}})","history":"{{timestamp, timestamp_long_no_seconds}} tarixli hesabat"},"ticks":{"current":"Son","history":"{{timestamp, timestamp_date}}"},"legend":{"duration":"{{duration, format_duration}}","speedup":"{{speedup}}x"}}},"transitions":{"description":{"new":"Bu test nəticəsinin hesabatda ilk dəfə görünməsi","fixed":"Əvvəl \\"uğursuz\\" və ya \\"sınıq\\" olan, indi \\"uğurlu\\" olan test","regressed":"Əvvəl \\"uğurlu\\" və ya \\"sınıq\\" olan, indi \\"uğursuz\\" olan test","malfunctioned":"Əvvəl \\"uğurlu\\" və ya \\"uğursuz\\" olan, indi \\"sınıq\\" olan test"},"new":"Yeni","fixed":"Düzəldilmiş","regressed":"Reqressiya","malfunctioned":"Sınıq"}}')}}]);