@zeesoft/i18n-verify 2.0.2 → 2.1.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 (37) hide show
  1. package/dist/driver/adapters/cypress.js +2 -1
  2. package/dist/driver/adapters/nightwatch.js +43 -2
  3. package/dist/driver/baseDriver.js +24 -0
  4. package/dist/index.js +10 -5
  5. package/dist/lib/i18n.js +125 -43
  6. package/dist/{utils → lib}/reports.js +42 -27
  7. package/dist/lib/validator/string.js +2 -2
  8. package/dist/template/report.html +1678 -0
  9. package/dist/utils/cache.js +15 -15
  10. package/dist/utils/constants.js +8 -5
  11. package/dist/utils/file.js +8 -4
  12. package/dist/utils/logs.js +30 -11
  13. package/dist/utils/objects/cacheData.js +14 -33
  14. package/dist/utils/objects/metaData.js +7 -26
  15. package/dist/utils/objects/reportData.js +0 -18
  16. package/dist/utils/objects/statData.js +43 -28
  17. package/dist/utils/objects/stringData.js +4 -7
  18. package/dist/utils/reportFactory/base.js +15 -7
  19. package/dist/utils/reportFactory/html/index.js +13 -9
  20. package/dist/utils/reportFactory/html/template/body.js +110 -0
  21. package/dist/utils/reportFactory/html/template/css.js +446 -409
  22. package/dist/utils/reportFactory/html/template/html.js +15 -112
  23. package/dist/utils/reportFactory/html/template/javascript/data.js +59 -1
  24. package/dist/utils/reportFactory/html/template/javascript/global.js +19 -0
  25. package/dist/utils/reportFactory/html/template/javascript/grid.js +54 -80
  26. package/dist/utils/reportFactory/html/template/javascript/index.js +7 -7
  27. package/dist/utils/reportFactory/html/template/javascript/insight.js +226 -201
  28. package/dist/utils/reportFactory/html/template/javascript/menuBar.js +40 -35
  29. package/dist/utils/reportFactory/html/template/javascript/overview.js +725 -533
  30. package/dist/utils/reportFactory/index.js +4 -6
  31. package/dist/utils/reportFactory/table.js +95 -0
  32. package/dist/utils/resource.js +10 -6
  33. package/dist/utils/runtime.js +23 -3
  34. package/dist/utils/scripts/postinstall.js +3 -2
  35. package/package.json +8 -3
  36. package/types/index.d.ts +46 -0
  37. package/dist/utils/reportsTable.js +0 -71
@@ -3,412 +3,449 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getCssData = void 0;
7
- const getCssData = () => `
8
- * {
9
- user-select: none;
10
- }
11
-
12
- body {
13
- margin: 0;
14
- display: flex;
15
- flex-direction: column;
16
- font-family: Arial, sans-serif;
17
- font-family: "Helvetica Neue", Arial, sans-serif;
18
- -webkit-font-smoothing: antialiased; /* Webkit-based browsers */
19
- -moz-osx-font-smoothing: grayscale; /* Firefox on OS X */
20
- font-smooth: always; /* Non-standard, some browsers */
21
- }
22
-
23
- header {
24
- background-color: #333;
25
- height: 5rem;
26
- }
27
-
28
- main {
29
- display: flex;
30
- direction: column;
31
- width: 100%;
32
- height: calc(100vh - 5rem);
33
- }
34
-
35
- .sidebar {
36
- width: 16rem;
37
- height: 100%;
38
- background-color: #333;
39
- color: #fff;
40
- padding: 20px;
41
- box-sizing: border-box;
42
- float: left;
43
- }
44
-
45
- .logo {
46
- font-size: 2rem;
47
- letter-spacing: 0.1rem;
48
- color: #14cf96;
49
- font-weight: bold;
50
- padding-top: 1.8rem;
51
- padding-left: 2rem;
52
- }
53
-
54
- .menu {
55
- list-style-type: none;
56
- padding: 0;
57
- margin: 0;
58
- }
59
-
60
- .menu-item {
61
- margin-bottom: 10px;
62
- }
63
-
64
- .menu-item a {
65
- color: #fff;
66
- text-decoration: none;
67
- display: block;
68
- padding: 10px;
69
- border-radius: 5px;
70
- font-size: 1.05rem;
71
- }
72
-
73
- .menu-item a:hover {
74
- background-color: #555;
75
- }
76
-
77
- .submenu {
78
- display: none;
79
- list-style-type: none;
80
- padding-left: 20px;
81
- }
82
-
83
- .menu-item.has-submenu > a::after {
84
- content: "⯆";
85
- float: right;
86
- margin-left: 5px;
87
- }
88
-
89
- .menu-item.has-submenu.selected > a::after {
90
- content: "⯅";
91
- float: right;
92
- margin-left: 5px;
93
- }
94
-
95
- .menu-item.selected > a {
96
- background-color: #555;
97
- }
98
-
99
- .submenu .sub-menu-item {
100
- margin: 3px auto;
101
- }
102
-
103
- .submenu .sub-menu-item a:hover {
104
- background-color: #777;
105
- }
106
-
107
- .submenu .sub-menu-item.selected a {
108
- background-color: #555 !important;
109
- }
110
-
111
- .submenu.active {
112
- display: block !important;
113
- }
114
-
115
- .content-wrapper {
116
- padding: 1rem;
117
- float: left;
118
- width: calc(100% - 16rem);
119
- background-color: #f4f4f4;
120
- overflow: hidden;
121
- }
122
-
123
- .content {
124
- display: none;
125
- }
126
-
127
- .content .title {
128
- font-size: 1rem;
129
- color: #080404e2;
130
- font-weight: 600;
131
- }
132
-
133
- .content .title::after {
134
- content: ":";
135
- }
136
-
137
- .content.active {
138
- display: flex !important;
139
- flex-direction: column;
140
- gap: 0.9rem;
141
- flex-wrap: wrap;
142
- transition: all 2s ease-in-out;
143
- }
144
-
145
- .sidebar .footer {
146
- bottom: 5px;
147
- position: absolute;
148
- font-size: 12.4px;
149
- color: #14cf96;
150
- font-family: system-ui;
151
- }
152
-
153
- #overview {
154
- flex-direction: row;
155
- justify-content: space-between;
156
- }
157
-
158
- #overview .card {
159
- display: flex;
160
- flex-direction: column;
161
- width: 25rem;
162
- height: 12.5rem;
163
- border: 1px solid #ddd;
164
- box-shadow: 0 22px 35px -16px rgba(0, 0, 0, 0.3);
165
- border-radius: 5px;
166
- background: white;
167
- padding: 1rem;
168
- }
169
-
170
- #overview .overall-quality {
171
- height: 20rem;
172
- flex-basis: 100%;
173
- line-height: 14px;
174
- }
175
-
176
- #overview .overall-quality .section {
177
- display: flex;
178
- flex-direction: row;
179
- }
180
-
181
- #overview .overall-quality .section .block {
182
- width: 50%;
183
- }
184
-
185
- #overview .overall-quality .section .block article {
186
- padding: 5px;
187
- }
188
-
189
- #overview .overall-quality .section .block article p.desc {
190
- font-size: 0.9em;
191
- }
192
-
193
- #overview .overall-quality .section .block article .items li {
194
- font-size: 0.87em;
195
- }
196
-
197
- #overview .overall-quality .section .block article .items li .detail {
198
- margin-top: -10px;
199
- }
200
-
201
- #overview .overall-quality .section .block .graph {
202
- margin-top: 1.5em;
203
- }
204
-
205
- #overview .string-quality,
206
- #overview .number-quality,
207
- #overview .datetime-quality,
208
- #overview .skipped-items {
209
- flex-basis: 45%;
210
- }
211
-
212
- #overview .string-quality .graph,
213
- #overview .number-quality .graph,
214
- #overview .datetime-quality .graph,
215
- #overview .skipped-items .graph {
216
- align-self: center;
217
- }
218
-
219
- #overview .string-quality .graph {
220
- margin-left: 4rem;
221
- }
222
-
223
- #overview .number-quality.card,
224
- #overview .datetime-quality.card {
225
- height: 13rem;
226
- }
227
-
228
- #overview .number-quality .graph,
229
- #overview .datetime-quality .graph {
230
- margin-top: -0.9rem;
231
- margin-left: 4.5rem;
232
- }
233
-
234
- #insights .cards {
235
- display: flex;
236
- flex-direction: column;
237
- gap: 1.5rem;
238
- }
239
-
240
- #insights .cards .holder {
241
- display: flex;
242
- flex-direction: row;
243
- gap: 1.5rem;
244
- flex-wrap: wrap;
245
- }
246
-
247
- #insights .cards .card {
248
- display: flex;
249
- flex-direction: column;
250
- width: 20rem;
251
- min-height: 10rem;
252
- border: 1px solid #ddd;
253
- box-shadow: 0 22px 35px -16px rgba(0, 0, 0, 0.3);
254
- border-radius: 5px;
255
- background: white;
256
- }
257
-
258
- #insights .cards .card:hover {
259
- transform: scale(1.015);
260
- box-shadow: 0 22px 35px -16px #07ff7d33;
261
- cursor: pointer;
262
- transition: all 0.1s ease-in-out;
263
- }
264
-
265
- #insights .cards .card .title {
266
- height: 2.5rem;
267
- font-size: 1rem;
268
- padding-top: 1rem;
269
- font-weight: 500;
270
- width: calc(100% - 1rem);
271
- background: #0c5ad9d6;
272
- border-top-left-radius: 5px;
273
- border-top-right-radius: 5px;
274
- padding-left: 1rem;
275
- color: white;
276
- }
277
-
278
- #insights .cards .card .title::after {
279
- content: "";
280
- }
281
-
282
- #insights .cards .card .card-content {
283
- display: flex;
284
- flex-direction: column;
285
- gap: 1rem;
286
- padding: 1rem;
287
- }
288
-
289
- #insights .cards .card .status-bar {
290
- display: flex;
291
- flex-direction: column;
292
- gap: 0.8rem;
293
- }
294
-
295
- #insights .cards .card .status-bar .bar-container .name {
296
- font-size: 0.78rem;
297
- -webkit-font-smoothing: antialiased;
298
- -moz-osx-font-smoothing: grayscale;
299
- }
300
-
301
- #insights .cards .card .status-bar .bar-container .name::after {
302
- content: ":";
303
- }
304
-
305
- #insights .cards .card .status-bar .bar-container .bar-holder {
306
- width: 100%;
307
- height: 10px;
308
- border: 1px solid #00000038;
309
- border-radius: 2px;
310
- }
311
-
312
- #insights .cards .card .status-bar .bar-container .bar-holder .bar {
313
- background-color: #14cf96;
314
- height: 100%;
315
- font-size: 0.63rem;
316
- text-align: right;
317
- color: white;
318
- }
319
-
320
- #insights .cards .card .stat {
321
- display: flex;
322
- flex-direction: column;
323
- gap: 0.3rem;
324
- border: 0.5px solid #00000012;
325
- border-radius: 6px;
326
- }
327
-
328
- #insights .cards .card .stat table td {
329
- font-size: 0.78rem;
330
- -webkit-font-smoothing: antialiased;
331
- -moz-osx-font-smoothing: grayscale;
332
- }
333
-
334
- #insights .cards .card .stat table td.name {
335
- width: 70%;
336
- }
337
-
338
- #insights .cards .card .stat table td.value::before {
339
- content: ": ";
340
- }
341
-
342
- #locale {
343
- background: white;
344
- padding: 12px;
345
- border-radius: 5px;
346
- padding-top: 20px;
347
- }
348
-
349
- #locale .title {
350
- content: ":";
351
- }
352
-
353
- #locale .coverage-info {
354
- margin-top: 1rem;
355
- width: 100%;
356
- height: 80vh;
357
- padding-right: 1rem;
358
- padding-left: 0.1rem;
359
- }
360
-
361
- #locale table thead th select.filter {
362
- margin-left: 1rem;
363
- max-width: 8rem;
364
- text-overflow: ellipsis;
365
- }
366
-
367
- #locale .image-viewer {
368
- display: none;
369
- position: fixed;
370
- z-index: 9999;
371
- top: 0;
372
- left: 0;
373
- width: 100%;
374
- height: 100%;
375
- background-color: rgba(0, 0, 0, 0.8);
376
- text-align: center;
377
- }
378
-
379
- #locale .image-container {
380
- position: relative;
381
- top: 50%;
382
- transform: translateY(-50%);
383
- display: inline-block;
384
- }
385
-
386
- #locale .image-viewer img {
387
- max-width: 90%;
388
- max-height: 90%;
389
- }
390
-
391
- #locale .close-button {
392
- position: absolute;
393
- top: 0.5rem;
394
- right: 1rem;
395
- color: #ffffffbf;
396
- font-size: 3.1rem;
397
- cursor: pointer;
398
- }
399
-
400
- #locale .close-button:hover {
401
- color: white;
402
- }
403
-
404
- #locale table td .view-screenshot-btn {
405
- color: blue;
406
- }
407
-
408
- @media (max-width: 768px) {
409
- .sidebar {
410
- width: 16rem;
411
- padding: 10px;
412
- }
413
- }`;
414
- exports.getCssData = getCssData;
6
+ exports.default = getCssData;
7
+ function getCssData() {
8
+ return `* {
9
+ user-select: none;
10
+ }
11
+
12
+ body {
13
+ margin: 0;
14
+ display: flex;
15
+ flex-direction: column;
16
+ font-family: Arial, sans-serif;
17
+ font-family: 'Helvetica Neue', Arial, sans-serif;
18
+ -webkit-font-smoothing: antialiased; /* Webkit-based browsers */
19
+ -moz-osx-font-smoothing: grayscale; /* Firefox on OS X */
20
+ font-smooth: always; /* Non-standard, some browsers */
21
+ }
22
+
23
+ header {
24
+ background-color: #333;
25
+ height: 5rem;
26
+ }
27
+
28
+ main {
29
+ display: flex;
30
+ direction: column;
31
+ width: 100%;
32
+ height: calc(100vh - 5rem);
33
+ }
34
+
35
+ .sidebar {
36
+ width: 16rem;
37
+ height: 100%;
38
+ background-color: #333;
39
+ color: #fff;
40
+ padding: 20px;
41
+ box-sizing: border-box;
42
+ float: left;
43
+ }
44
+
45
+ .logo {
46
+ font-size: 2rem;
47
+ letter-spacing: 0.1rem;
48
+ color: #14cf96;
49
+ font-weight: bold;
50
+ padding-top: 1.8rem;
51
+ padding-left: 2rem;
52
+ }
53
+
54
+ .menu {
55
+ list-style-type: none;
56
+ padding: 0;
57
+ margin: 0;
58
+ }
59
+
60
+ .menu-item {
61
+ margin-bottom: 10px;
62
+ }
63
+
64
+ .menu-item a {
65
+ color: #fff;
66
+ text-decoration: none;
67
+ display: block;
68
+ padding: 10px;
69
+ border-radius: 5px;
70
+ font-size: 1.05rem;
71
+ }
72
+
73
+ .menu-item a:hover {
74
+ background-color: #555;
75
+ }
76
+
77
+ .submenu {
78
+ display: none;
79
+ list-style-type: none;
80
+ padding-left: 20px;
81
+ }
82
+
83
+ .menu-item.has-submenu > a::after {
84
+ content: '⯆';
85
+ float: right;
86
+ margin-left: 5px;
87
+ }
88
+
89
+ .menu-item.has-submenu.selected > a::after {
90
+ content: '⯅';
91
+ float: right;
92
+ margin-left: 5px;
93
+ }
94
+
95
+ .menu-item.selected > a {
96
+ background-color: #555;
97
+ }
98
+
99
+ .submenu .sub-menu-item {
100
+ margin: 3px auto;
101
+ }
102
+
103
+ .submenu .sub-menu-item a:hover {
104
+ background-color: #777;
105
+ }
106
+
107
+ .submenu .sub-menu-item.selected a {
108
+ background-color: #555 !important;
109
+ }
110
+
111
+ .submenu.active {
112
+ display: block !important;
113
+ }
114
+
115
+ .view-screenshot-image {
116
+ width: 100px;
117
+ height: 30px;
118
+ content: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjxzdmcgZmlsbD0iIzAwMDAwMCIgaGVpZ2h0PSI4MDBweCIgd2lkdGg9IjgwMHB4IiB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIA0KCSB2aWV3Qm94PSIwIDAgNDkwIDQ5MCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8Zz4NCgk8cGF0aCBkPSJNMjQ1LjIwNCwxMDEuMjY3QzY3LjE3MSwxMDEuMjY3LDAsMjQ1LDAsMjQ1czY2Ljc2MywxNDMuNzMzLDI0NC43OTYsMTQzLjczM0M0MjIuODI5LDM4OC43MzMsNDkwLDI0NSw0OTAsMjQ1DQoJCVM0MjMuMjM4LDEwMS4yNjcsMjQ1LjIwNCwxMDEuMjY3eiBNMjQ0Ljc5NiwzNzMuNDIxYy0xNDYuMzkzLDAtMjEyLjM2Ny0xMDEuMDUzLTIyNy41MDYtMTI4LjMzMw0KCQljMTUuMjQ5LTI2Ljc5Niw4Mi43MzMtMTI4LjUwOCwyMjcuOTE0LTEyOC41MDhjMTQ2LjUxNCwwLDIxMi40NzUsMTAxLjIyLDIyNy41NDMsMTI4LjQNCgkJQzQ1Ny41NzgsMjcyLjIwMywzOTEuMzEzLDM3My40MjEsMjQ0Ljc5NiwzNzMuNDIxeiIvPg0KCTxwYXRoIGQ9Ik0yNDUuMDAzLDE0Ni4xMjRjLTU0LjUyMSwwLTk4Ljg4MSw0NC4zNTItOTguODgxLDk4Ljg3M2MwLDU0LjUyMSw0NC4zNiw5OC44ODEsOTguODgxLDk4Ljg4MXM5OC44NzMtNDQuMzYsOTguODczLTk4Ljg4MQ0KCQlDMzQzLjg3NiwxOTAuNDc3LDI5OS41MjQsMTQ2LjEyNCwyNDUuMDAzLDE0Ni4xMjR6IE0yNDUuMDAzLDMyOC41NjZjLTQ2LjA4LDAtODMuNTY4LTM3LjQ4OS04My41NjgtODMuNTY4DQoJCWMwLTQ2LjA3MiwzNy40ODktODMuNTYxLDgzLjU2OC04My41NjFjNDYuMDcyLDAsODMuNTYxLDM3LjQ4OSw4My41NjEsODMuNTYxQzMyOC41NjQsMjkxLjA3NywyOTEuMDc1LDMyOC41NjYsMjQ1LjAwMywzMjguNTY2eiIvPg0KCTxwYXRoIGQ9Ik0yNDUuMDAzLDE3NS41ODNjLTM4LjI4MSwwLTY5LjQyMiwzMS4xNDEtNjkuNDIyLDY5LjQxNWMwLDM4LjI3NCwzMS4xNDEsNjkuNDE1LDY5LjQyMiw2OS40MTUNCgkJYzM4LjI3NCwwLDY5LjQxNS0zMS4xNDEsNjkuNDE1LTY5LjQxNUMzMTQuNDE3LDIwNi43MjQsMjgzLjI3NywxNzUuNTgzLDI0NS4wMDMsMTc1LjU4M3ogTTI0NS4wMDMsMjk5LjENCgkJYy0yOS44MzMsMC01NC4xMS0yNC4yNy01NC4xMS01NC4xMDJjMC0yOS44MzIsMjQuMjc3LTU0LjEwMiw1NC4xMS01NC4xMDJzNTQuMTAyLDI0LjI3LDU0LjEwMiw1NC4xMDINCgkJQzI5OS4xMDUsMjc0LjgzLDI3NC44MzUsMjk5LjEsMjQ1LjAwMywyOTkuMXoiLz4NCgk8cGF0aCBkPSJNMjQ1LjAwMywyMDYuNjc5Yy0yMS4xMywwLTM4LjMyNiwxNy4xODktMzguMzI2LDM4LjMxOWMwLDIxLjEyOSwxNy4xOTcsMzguMzI2LDM4LjMyNiwzOC4zMjZzMzguMzE5LTE3LjE5NywzOC4zMTktMzguMzI2DQoJCUMyODMuMzIxLDIyMy44NjgsMjY2LjEzMiwyMDYuNjc5LDI0NS4wMDMsMjA2LjY3OXogTTI0NS4wMDMsMjY4LjAxMWMtMTIuNjg4LDAtMjMuMDE0LTEwLjMyNi0yMy4wMTQtMjMuMDE0DQoJCWMwLTEyLjY4OCwxMC4zMjUtMjMuMDA2LDIzLjAxNC0yMy4wMDZjMTIuNjg4LDAsMjMuMDA2LDEwLjMxOCwyMy4wMDYsMjMuMDA2QzI2OC4wMDksMjU3LjY4NiwyNTcuNjkxLDI2OC4wMTEsMjQ1LjAwMywyNjguMDExeiIvPg0KPC9nPg0KPC9zdmc+);
119
+ }
120
+
121
+ .content-wrapper {
122
+ padding: 1rem;
123
+ float: left;
124
+ width: calc(100% - 16rem);
125
+ background-color: #f4f4f4;
126
+ overflow: hidden;
127
+ }
128
+
129
+ .content {
130
+ display: none;
131
+ }
132
+
133
+ .content .title {
134
+ font-size: 1rem;
135
+ color: #080404e2;
136
+ font-weight: 600;
137
+ }
138
+
139
+ .content .title::after {
140
+ content: ':';
141
+ }
142
+
143
+ .content.active {
144
+ display: flex !important;
145
+ flex-direction: column;
146
+ gap: 0.9rem;
147
+ flex-wrap: wrap;
148
+ transition: all 2s ease-in-out;
149
+ }
150
+
151
+ .sidebar .footer {
152
+ bottom: 5px;
153
+ position: absolute;
154
+ font-size: 12.4px;
155
+ color: #14cf96;
156
+ font-family: system-ui;
157
+ }
158
+
159
+ #overview {
160
+ flex-direction: row;
161
+ justify-content: space-between;
162
+ }
163
+
164
+ #overview .card {
165
+ display: flex;
166
+ flex-direction: column;
167
+ width: 25rem;
168
+ height: 12.5rem;
169
+ border: 1px solid #ddd;
170
+ box-shadow: 0 22px 35px -16px rgba(0, 0, 0, 0.3);
171
+ border-radius: 5px;
172
+ background: white;
173
+ padding: 1rem;
174
+ }
175
+
176
+ #overview .overall-quality {
177
+ height: 20rem;
178
+ flex-basis: 100%;
179
+ line-height: 14px;
180
+ }
181
+
182
+ #overview .overall-quality .section {
183
+ display: flex;
184
+ flex-direction: row;
185
+ }
186
+
187
+ #overview .overall-quality .section .block {
188
+ width: 50%;
189
+ }
190
+
191
+ #overview .overall-quality .section .block article {
192
+ padding: 5px;
193
+ }
194
+
195
+ #overview .overall-quality .section .block article p.desc {
196
+ font-size: 0.9em;
197
+ }
198
+
199
+ #overview .overall-quality .section .block article .items li {
200
+ font-size: 0.87em;
201
+ }
202
+
203
+ #overview .overall-quality .section .block article .items li .detail {
204
+ margin-top: -10px;
205
+ }
206
+
207
+ #overview .overall-quality .section .block .graph {
208
+ margin-top: 1.5em;
209
+ }
210
+
211
+ #overview .string-quality,
212
+ #overview .number-quality,
213
+ #overview .datetime-quality,
214
+ #overview .skipped-items {
215
+ flex-basis: 45%;
216
+ }
217
+
218
+ #overview .string-quality .graph,
219
+ #overview .number-quality .graph,
220
+ #overview .datetime-quality .graph,
221
+ #overview .skipped-items .graph {
222
+ align-self: center;
223
+ }
224
+
225
+ #overview .string-quality .graph {
226
+ margin-left: 4rem;
227
+ }
228
+
229
+ #overview .number-quality.card,
230
+ #overview .datetime-quality.card {
231
+ height: 13rem;
232
+ }
233
+
234
+ #overview .number-quality .graph,
235
+ #overview .datetime-quality .graph {
236
+ margin-top: -0.9rem;
237
+ margin-left: 4.5rem;
238
+ }
239
+
240
+ #insights .cards {
241
+ display: flex;
242
+ flex-direction: column;
243
+ gap: 1.5rem;
244
+ }
245
+
246
+ #insights .cards .holder {
247
+ display: flex;
248
+ flex-direction: row;
249
+ gap: 1.5rem;
250
+ flex-wrap: wrap;
251
+ }
252
+
253
+ #insights .cards .card {
254
+ display: flex;
255
+ flex-direction: column;
256
+ width: 20rem;
257
+ min-height: 10rem;
258
+ border: 1px solid #ddd;
259
+ box-shadow: 0 22px 35px -16px rgba(0, 0, 0, 0.3);
260
+ border-radius: 5px;
261
+ background: white;
262
+ }
263
+
264
+ #insights .cards .card:hover {
265
+ transform: scale(1.015);
266
+ box-shadow: 0 22px 35px -16px #07ff7d33;
267
+ cursor: pointer;
268
+ transition: all 0.1s ease-in-out;
269
+ }
270
+
271
+ #insights .cards .card .title {
272
+ height: 2.5rem;
273
+ font-size: 1rem;
274
+ padding-top: 1rem;
275
+ font-weight: 500;
276
+ width: calc(100% - 1rem);
277
+ background: #0c5ad9d6;
278
+ border-top-left-radius: 5px;
279
+ border-top-right-radius: 5px;
280
+ padding-left: 1rem;
281
+ color: white;
282
+ }
283
+
284
+ #insights .cards .card .title::after {
285
+ content: '';
286
+ }
287
+
288
+ #insights .cards .card .card-content {
289
+ display: flex;
290
+ flex-direction: column;
291
+ gap: 1rem;
292
+ padding: 1rem;
293
+ }
294
+
295
+ #insights .cards .card .status-bar {
296
+ display: flex;
297
+ flex-direction: column;
298
+ gap: 0.8rem;
299
+ }
300
+
301
+ #insights .cards .card .status-bar .bar-container .name {
302
+ font-size: 0.78rem;
303
+ -webkit-font-smoothing: antialiased;
304
+ -moz-osx-font-smoothing: grayscale;
305
+ }
306
+
307
+ #insights .cards .card .status-bar .bar-container .name::after {
308
+ content: ':';
309
+ }
310
+
311
+ #insights .cards .card .status-bar .bar-container .bar-holder {
312
+ width: 100%;
313
+ height: 10px;
314
+ border: 1px solid #00000038;
315
+ border-radius: 2px;
316
+ }
317
+
318
+ #insights .cards .card .status-bar .bar-container .bar-holder .bar {
319
+ height: 100%;
320
+ font-size: 0.63rem;
321
+ text-align: right;
322
+ color: rgb(0, 0, 0);
323
+ }
324
+
325
+ .bar.--green {
326
+ background-color: #1dedaf;
327
+ }
328
+
329
+ .bar.--red {
330
+ background-color: #fe3e3e;
331
+ }
332
+
333
+ .bar.--yellow {
334
+ background-color: #faef1f;
335
+ }
336
+
337
+ .bar.--blue {
338
+ background-color: #77c2ff;
339
+ }
340
+
341
+ #insights .cards .card .stat {
342
+ display: flex;
343
+ flex-direction: column;
344
+ gap: 0.3rem;
345
+ border: 0.5px solid #00000012;
346
+ border-radius: 6px;
347
+ }
348
+
349
+ #insights .cards .card .stat table td {
350
+ font-size: 0.78rem;
351
+ -webkit-font-smoothing: antialiased;
352
+ -moz-osx-font-smoothing: grayscale;
353
+ }
354
+
355
+ #insights .cards .card .stat table td.name {
356
+ width: 70%;
357
+ }
358
+
359
+ #insights .cards .card .stat table td.value::before {
360
+ content: ': ';
361
+ }
362
+
363
+ #locale {
364
+ background: white;
365
+ padding: 12px;
366
+ border-radius: 5px;
367
+ padding-top: 20px;
368
+ }
369
+
370
+ #locale .title {
371
+ content: ':';
372
+ }
373
+
374
+ #locale .coverage-info {
375
+ margin-top: 1rem;
376
+ width: 100%;
377
+ height: 80vh;
378
+ padding-right: 1rem;
379
+ padding-left: 0.1rem;
380
+ }
381
+
382
+ #locale table thead th select.filter {
383
+ margin-left: 1rem;
384
+ max-width: 8rem;
385
+ text-overflow: ellipsis;
386
+ }
387
+
388
+ #locale .image-viewer {
389
+ display: none;
390
+ position: fixed;
391
+ z-index: 9999;
392
+ top: 0;
393
+ left: 0;
394
+ width: 100%;
395
+ height: 100%;
396
+ background-color: rgba(0, 0, 0, 0.8);
397
+ text-align: center;
398
+ }
399
+
400
+ #locale .image-container {
401
+ position: relative;
402
+ top: 50%;
403
+ transform: translateY(-50%);
404
+ display: inline-block;
405
+ }
406
+
407
+ #locale .image-viewer img {
408
+ max-width: 90%;
409
+ max-height: 90%;
410
+ }
411
+
412
+ #locale .close-button {
413
+ position: absolute;
414
+ top: 0.5rem;
415
+ right: 1rem;
416
+ color: #ffffffbf;
417
+ font-size: 3.1rem;
418
+ cursor: pointer;
419
+ }
420
+
421
+ #locale .close-button:hover {
422
+ color: white;
423
+ }
424
+
425
+ #locale table tbody td {
426
+ font-size: 0.9em;
427
+ }
428
+
429
+ #locale table td .view-screenshot-btn {
430
+ color: blue;
431
+ }
432
+
433
+ .project-info {
434
+ font-size: 1rem;
435
+ color: #90a3a9;
436
+ }
437
+
438
+ .project-info .time {
439
+ float: right;
440
+ position: relative;
441
+ top: 1rem;
442
+ margin-right: 0.5rem;
443
+ }
444
+
445
+ @media (max-width: 768px) {
446
+ .sidebar {
447
+ width: 16rem;
448
+ padding: 10px;
449
+ }
450
+ }`;
451
+ }