@cdc/dashboard 1.1.4 → 9.22.9
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.
- package/dist/cdcdashboard.js +40 -28
- package/examples/default-filter-control.json +175 -0
- package/examples/default-multi-dataset.json +498 -0
- package/examples/private/chart-issue.json +3467 -0
- package/examples/private/no-issue.json +3467 -0
- package/examples/private/totals-two.json +104 -0
- package/examples/private/totals.json +103 -0
- package/examples/temp-example-data.json +130 -0
- package/package.json +9 -8
- package/src/CdcDashboard.js +16 -1
- package/src/CdcDashboard.jsx +668 -0
- package/src/{context.tsx → ConfigContext.js} +0 -0
- package/src/components/{Column.js → Column.jsx} +9 -7
- package/src/components/DataTable.tsx +6 -9
- package/src/components/EditorPanel.js +200 -44
- package/src/components/{Grid.js → Grid.jsx} +5 -4
- package/src/components/Header.jsx +242 -0
- package/src/components/Row.js +1 -0
- package/src/components/Row.jsx +181 -0
- package/src/components/Row.jsx~HEAD +212 -0
- package/src/components/Widget.js +6 -2
- package/src/components/Widget.jsx +191 -0
- package/src/index.html +5 -4
- package/src/scss/editor-panel.scss +0 -1
- package/src/scss/grid.scss +61 -14
- package/src/scss/main.scss +67 -6
- package/src/components/Header.js +0 -15
- package/src/images/icon-close.svg +0 -1
- package/src/images/icon-code.svg +0 -3
- package/src/images/icon-down.svg +0 -1
- package/src/images/icon-edit.svg +0 -3
- package/src/images/icon-grid.svg +0 -4
- package/src/images/icon-move.svg +0 -8
- package/src/images/icon-up.svg +0 -1
- package/src/images/warning.svg +0 -1
package/src/scss/grid.scss
CHANGED
|
@@ -11,7 +11,7 @@ $red: #f74242;
|
|
|
11
11
|
width: 350px;
|
|
12
12
|
border-right: #C7C7C7 1px solid;
|
|
13
13
|
position: fixed;
|
|
14
|
-
top:
|
|
14
|
+
top: 6em;
|
|
15
15
|
bottom: 0;
|
|
16
16
|
z-index: 1;
|
|
17
17
|
overflow-y: auto;
|
|
@@ -43,6 +43,7 @@ $red: #f74242;
|
|
|
43
43
|
transition: border 300ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
44
44
|
background-color: #F2F2F2;
|
|
45
45
|
user-select: none;
|
|
46
|
+
|
|
46
47
|
&.can-drop {
|
|
47
48
|
border-color: $blue-light;
|
|
48
49
|
}
|
|
@@ -56,12 +57,15 @@ $red: #f74242;
|
|
|
56
57
|
position: relative;
|
|
57
58
|
z-index: 1;
|
|
58
59
|
bottom: -1px;
|
|
60
|
+
|
|
59
61
|
> li:not(.spacer) + li:not(.spacer) {
|
|
60
62
|
margin-left: .3em;
|
|
61
63
|
}
|
|
64
|
+
|
|
62
65
|
.spacer {
|
|
63
66
|
flex-grow: 1;
|
|
64
67
|
}
|
|
68
|
+
|
|
65
69
|
svg {
|
|
66
70
|
width: 25px;
|
|
67
71
|
height: auto;
|
|
@@ -76,9 +80,11 @@ $red: #f74242;
|
|
|
76
80
|
.row-menu__btn:hover .row-menu__flyout {
|
|
77
81
|
transition: width .2s cubic-bezier(0.16, 1, 0.3, 1);
|
|
78
82
|
width: 144px;
|
|
83
|
+
|
|
79
84
|
li {
|
|
80
85
|
display: flex;
|
|
81
86
|
}
|
|
87
|
+
|
|
82
88
|
li + li {
|
|
83
89
|
margin-left: .3em;
|
|
84
90
|
}
|
|
@@ -92,9 +98,11 @@ $red: #f74242;
|
|
|
92
98
|
transition: width .2s cubic-bezier(0.16, 1, 0.3, 1);
|
|
93
99
|
z-index: 1;
|
|
94
100
|
width: 25px;
|
|
101
|
+
|
|
95
102
|
li:not(.current) {
|
|
96
103
|
display: none;
|
|
97
104
|
}
|
|
105
|
+
|
|
98
106
|
li svg {
|
|
99
107
|
opacity: .7;
|
|
100
108
|
}
|
|
@@ -113,10 +121,11 @@ $red: #f74242;
|
|
|
113
121
|
border-radius: .2em .2em 0 0;
|
|
114
122
|
outline: none;
|
|
115
123
|
transition: background-color 300ms cubic-bezier(0.16, 1, 0.3, 1);
|
|
116
|
-
cursor: pointer;
|
|
124
|
+
cursor: pointer;
|
|
117
125
|
padding: .2em .3em;
|
|
118
126
|
display: flex;
|
|
119
127
|
fill: #fff;
|
|
128
|
+
|
|
120
129
|
+ .row-menu__btn {
|
|
121
130
|
margin-left: .2em;
|
|
122
131
|
}
|
|
@@ -137,15 +146,17 @@ $red: #f74242;
|
|
|
137
146
|
justify-content: center;
|
|
138
147
|
align-items: center;
|
|
139
148
|
position: relative;
|
|
140
|
-
height:
|
|
149
|
+
height: 180px;
|
|
141
150
|
margin-left: 0.5rem;
|
|
142
151
|
margin-right: 0.5rem;
|
|
143
152
|
background-color: transparent;
|
|
144
153
|
border: 2px dashed #C2C2C2;
|
|
145
154
|
flex: 1 1 auto;
|
|
155
|
+
|
|
146
156
|
&:hover {
|
|
147
157
|
border-color: darken(#c2c2c2, 20%);
|
|
148
158
|
}
|
|
159
|
+
|
|
149
160
|
&.column--populated {
|
|
150
161
|
background: none;
|
|
151
162
|
border: none;
|
|
@@ -158,10 +169,21 @@ $red: #f74242;
|
|
|
158
169
|
background-image: none;
|
|
159
170
|
}
|
|
160
171
|
|
|
161
|
-
.column-size--12 {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
172
|
+
.column-size--12 {
|
|
173
|
+
width: 100%;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.column-size--8 {
|
|
177
|
+
width: 66.666%;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.column-size--6 {
|
|
181
|
+
width: 50%;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.column-size--4 {
|
|
185
|
+
width: 33.333%;
|
|
186
|
+
}
|
|
165
187
|
|
|
166
188
|
.builder-column__text {
|
|
167
189
|
padding: 0.5rem;
|
|
@@ -186,20 +208,36 @@ $red: #f74242;
|
|
|
186
208
|
padding: 0;
|
|
187
209
|
position: relative;
|
|
188
210
|
cursor: move;
|
|
211
|
+
|
|
189
212
|
&:hover {
|
|
190
213
|
border-color: darken($lightGray, 20%);
|
|
214
|
+
|
|
191
215
|
.widget-menu-item svg {
|
|
192
216
|
fill: darken($mediumGray, 20%);
|
|
193
217
|
}
|
|
194
|
-
|
|
218
|
+
|
|
219
|
+
.drag-icon,
|
|
220
|
+
.drag-icon svg {
|
|
195
221
|
fill: darken($lightGray, 20%);
|
|
196
222
|
}
|
|
197
223
|
}
|
|
198
|
-
|
|
224
|
+
|
|
225
|
+
.btn-configure {
|
|
226
|
+
background: none;
|
|
227
|
+
width: 3em;
|
|
228
|
+
margin-left: 0.5em;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.drag-icon,
|
|
232
|
+
.drag-icon svg {
|
|
199
233
|
fill: $lightGray;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.drag-icon {
|
|
200
237
|
position: absolute;
|
|
201
|
-
left: .3em;
|
|
202
238
|
top: .3em;
|
|
239
|
+
left: .3em;
|
|
240
|
+
width: 10px;
|
|
203
241
|
}
|
|
204
242
|
}
|
|
205
243
|
|
|
@@ -233,6 +271,7 @@ $red: #f74242;
|
|
|
233
271
|
flex-direction: column;
|
|
234
272
|
align-items: center;
|
|
235
273
|
justify-content: center;
|
|
274
|
+
|
|
236
275
|
svg {
|
|
237
276
|
margin-bottom: .5em;
|
|
238
277
|
}
|
|
@@ -270,6 +309,9 @@ $red: #f74242;
|
|
|
270
309
|
height: 20px;
|
|
271
310
|
cursor: pointer;
|
|
272
311
|
user-select: none;
|
|
312
|
+
margin-left: 0.7em;
|
|
313
|
+
margin-top: 5px;
|
|
314
|
+
|
|
273
315
|
svg {
|
|
274
316
|
fill: $mediumGray;
|
|
275
317
|
}
|
|
@@ -288,34 +330,39 @@ $red: #f74242;
|
|
|
288
330
|
|
|
289
331
|
.builder-row {
|
|
290
332
|
position: relative;
|
|
333
|
+
|
|
291
334
|
.widget__content {
|
|
292
335
|
padding: 0 2em;
|
|
336
|
+
|
|
293
337
|
> svg {
|
|
294
338
|
width: 100%;
|
|
295
339
|
height: auto;
|
|
296
340
|
max-width: 100px;
|
|
297
341
|
max-height: 80px;
|
|
298
342
|
flex-grow: 1;
|
|
343
|
+
margin-top: 40px;
|
|
299
344
|
}
|
|
300
345
|
}
|
|
346
|
+
|
|
301
347
|
&:hover {
|
|
302
348
|
.row-menu .row-menu__btn {
|
|
303
349
|
background-color: $blue;
|
|
304
|
-
|
|
350
|
+
|
|
305
351
|
&:hover {
|
|
306
352
|
background-color: lighten($blue, 8%);
|
|
307
353
|
}
|
|
308
|
-
|
|
354
|
+
|
|
309
355
|
&.row-menu__btn--edit {
|
|
310
356
|
background-color: transparent;
|
|
311
357
|
}
|
|
312
|
-
|
|
358
|
+
|
|
313
359
|
&.row-menu__btn--remove:hover {
|
|
314
360
|
background-color: $red;
|
|
315
361
|
}
|
|
316
362
|
}
|
|
363
|
+
|
|
317
364
|
.column-container {
|
|
318
365
|
border-color: $blue;
|
|
319
366
|
}
|
|
320
367
|
}
|
|
321
|
-
}
|
|
368
|
+
}
|
package/src/scss/main.scss
CHANGED
|
@@ -9,20 +9,25 @@
|
|
|
9
9
|
.loading > div.la-ball-beat {
|
|
10
10
|
margin-top: 20%;
|
|
11
11
|
}
|
|
12
|
+
|
|
12
13
|
.editor-heading {
|
|
13
|
-
background-color: #
|
|
14
|
+
background-color: #ddd;
|
|
14
15
|
border-bottom: #C7C7C7 1px solid;
|
|
15
16
|
padding: 0 1em;
|
|
16
17
|
display: flex;
|
|
17
|
-
height:
|
|
18
|
-
justify-content: space-between;
|
|
19
|
-
align-items: center;
|
|
18
|
+
height: 6em;
|
|
20
19
|
position: fixed;
|
|
21
20
|
width: 100%;
|
|
22
|
-
z-index:
|
|
21
|
+
z-index: 19;
|
|
23
22
|
top: 0;
|
|
23
|
+
&.sub-dashboard-viz {
|
|
24
|
+
height: 3em;
|
|
25
|
+
}
|
|
24
26
|
.heading-1 {
|
|
25
27
|
font-size: 1.2em;
|
|
28
|
+
padding-right: 1em;
|
|
29
|
+
margin: 0.5em 1em 0.5em 0;
|
|
30
|
+
border-right: 1px solid black;
|
|
26
31
|
&.back-to {
|
|
27
32
|
display: flex;
|
|
28
33
|
span {
|
|
@@ -32,6 +37,15 @@
|
|
|
32
37
|
}
|
|
33
38
|
}
|
|
34
39
|
|
|
40
|
+
.heading-body {
|
|
41
|
+
padding: .5em;
|
|
42
|
+
|
|
43
|
+
input[type="checkbox"] {
|
|
44
|
+
margin-right: 2em;
|
|
45
|
+
margin-left: .5em;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
35
49
|
.toggle-bar {
|
|
36
50
|
overflow: hidden;
|
|
37
51
|
display: flex;
|
|
@@ -40,10 +54,13 @@
|
|
|
40
54
|
position: relative;
|
|
41
55
|
bottom: -1px;
|
|
42
56
|
li {
|
|
43
|
-
padding: .
|
|
57
|
+
padding: .3em 1.5em;
|
|
44
58
|
color: $mediumGray;
|
|
45
59
|
border-bottom: #C7C7C7 1px solid;
|
|
46
60
|
cursor: pointer;
|
|
61
|
+
white-space: nowrap;
|
|
62
|
+
text-overflow: ellipsis;
|
|
63
|
+
overflow: hidden;
|
|
47
64
|
&.active {
|
|
48
65
|
border-bottom-width: 5px;
|
|
49
66
|
border-bottom-color: $mediumGray;
|
|
@@ -55,6 +72,19 @@
|
|
|
55
72
|
}
|
|
56
73
|
}
|
|
57
74
|
}
|
|
75
|
+
|
|
76
|
+
.description-input {
|
|
77
|
+
width: 100%;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.shared-filter-button {
|
|
81
|
+
display: inline-block;
|
|
82
|
+
border-radius: 1em;
|
|
83
|
+
border: 1px solid gray;
|
|
84
|
+
background-color: white;
|
|
85
|
+
padding: .5em;
|
|
86
|
+
margin-right: 1em;
|
|
87
|
+
}
|
|
58
88
|
}
|
|
59
89
|
|
|
60
90
|
.visually-hidden {
|
|
@@ -147,6 +177,17 @@
|
|
|
147
177
|
.dashboard-col-12 {
|
|
148
178
|
width: 100%;
|
|
149
179
|
}
|
|
180
|
+
|
|
181
|
+
.preview-table-container {
|
|
182
|
+
padding-left: 350px;
|
|
183
|
+
padding-top: 100px;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.multi-table-container {
|
|
187
|
+
display: inline-block;
|
|
188
|
+
width: 100%;
|
|
189
|
+
}
|
|
190
|
+
|
|
150
191
|
@include breakpointClass(md) {
|
|
151
192
|
.dashboard-row {
|
|
152
193
|
flex-direction: row;
|
|
@@ -179,6 +220,13 @@
|
|
|
179
220
|
}
|
|
180
221
|
}
|
|
181
222
|
|
|
223
|
+
@include breakpoint(md) {
|
|
224
|
+
.cove-dashboard-filters {
|
|
225
|
+
display: flex;
|
|
226
|
+
gap: 30px;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
182
230
|
.dashboard-filters-section {
|
|
183
231
|
margin: 0 0 1em;
|
|
184
232
|
}
|
|
@@ -189,6 +237,10 @@
|
|
|
189
237
|
|
|
190
238
|
.cdc-dashboard-inner-container {
|
|
191
239
|
margin: 1em;
|
|
240
|
+
|
|
241
|
+
&.is-editor {
|
|
242
|
+
margin-top: 7em;
|
|
243
|
+
}
|
|
192
244
|
}
|
|
193
245
|
|
|
194
246
|
.sub-editor {
|
|
@@ -212,3 +264,12 @@
|
|
|
212
264
|
}
|
|
213
265
|
}
|
|
214
266
|
}
|
|
267
|
+
|
|
268
|
+
.shared-filter-modal {
|
|
269
|
+
border: none;
|
|
270
|
+
|
|
271
|
+
label {
|
|
272
|
+
display: block;
|
|
273
|
+
margin: 1em 0;
|
|
274
|
+
}
|
|
275
|
+
}
|
package/src/components/Header.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import React, { useContext, memo } from 'react'
|
|
2
|
-
|
|
3
|
-
const Header = ({preview, setPreview, back, subEditor = null}) => {
|
|
4
|
-
return (
|
|
5
|
-
<div aria-level="2" role="heading" className="editor-heading">
|
|
6
|
-
{subEditor ? <div className="heading-1 back-to" onClick={back} style={{cursor: 'pointer'}}><span>←</span> Back to Dashboard</div> : <div className="heading-1">Dashboard Editor</div>}
|
|
7
|
-
{!subEditor && <ul className="toggle-bar">
|
|
8
|
-
<li className={preview ? 'inactive' : 'active'} onClick={() => {setPreview(false)}}>Build Layout</li>
|
|
9
|
-
<li className={preview ? 'active' : 'inactive'} onClick={() => {setPreview(true)}}>Preview & Configure</li>
|
|
10
|
-
</ul>}
|
|
11
|
-
</div>
|
|
12
|
-
)
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export default Header
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
|
package/src/images/icon-code.svg
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
|
|
2
|
-
<path fill="currentColor" d="M414.8 40.79L286.8 488.8C281.9 505.8 264.2 515.6 247.2 510.8C230.2 505.9 220.4 488.2 225.2 471.2L353.2 23.21C358.1 6.216 375.8-3.624 392.8 1.232C409.8 6.087 419.6 23.8 414.8 40.79H414.8zM518.6 121.4L630.6 233.4C643.1 245.9 643.1 266.1 630.6 278.6L518.6 390.6C506.1 403.1 485.9 403.1 473.4 390.6C460.9 378.1 460.9 357.9 473.4 345.4L562.7 256L473.4 166.6C460.9 154.1 460.9 133.9 473.4 121.4C485.9 108.9 506.1 108.9 518.6 121.4V121.4zM166.6 166.6L77.25 256L166.6 345.4C179.1 357.9 179.1 378.1 166.6 390.6C154.1 403.1 133.9 403.1 121.4 390.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4L121.4 121.4C133.9 108.9 154.1 108.9 166.6 121.4C179.1 133.9 179.1 154.1 166.6 166.6V166.6z"/>
|
|
3
|
-
</svg>
|
package/src/images/icon-down.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="#000000"><path d="M24 24H0V0h24v24z" fill="none" opacity=".87"/><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6-1.41-1.41z"/></svg>
|
package/src/images/icon-edit.svg
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
2
|
-
<path d="M14.06 9.02l.92.92L5.92 19H5v-.92l9.06-9.06M17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29zm-3.6 3.19L3 17.25V21h3.75L17.81 9.94l-3.75-3.75z"/>
|
|
3
|
-
</svg>
|
package/src/images/icon-grid.svg
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
|
2
|
-
<path fill="currentColor" d="M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z">
|
|
3
|
-
</path>
|
|
4
|
-
</svg>
|
package/src/images/icon-move.svg
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="10" height="16" viewBox="0 0 10 16">
|
|
2
|
-
<circle cx="2" cy="2" r="2"/>
|
|
3
|
-
<circle cx="8" cy="2" r="2"/>
|
|
4
|
-
<circle cx="2" cy="8" r="2"/>
|
|
5
|
-
<circle cx="8" cy="8" r="2"/>
|
|
6
|
-
<circle cx="2" cy="14" r="2"/>
|
|
7
|
-
<circle cx="8" cy="14" r="2"/>
|
|
8
|
-
</svg>
|
package/src/images/icon-up.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14l-6-6z"/></svg>
|
package/src/images/warning.svg
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"/></svg>
|