@truedat/dd 8.10.2 → 8.10.3
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/package.json +3 -3
- package/src/components/Graphs.js +109 -0
- package/src/components/LineageDomainSelectorSkeleton.js +8 -0
- package/src/components/LineageDownloadButton.js +29 -6
- package/src/components/LineageEventsPanel.js +206 -0
- package/src/components/LineageForm.js +265 -144
- package/src/components/LineageGraph.js +0 -1
- package/src/components/LineageHeader.js +33 -0
- package/src/components/LineageResourceToggle.js +56 -0
- package/src/components/LineageRoutes.js +2 -31
- package/src/components/LineageSelectionPanel.js +165 -0
- package/src/components/__tests__/LineageForm.spec.js +343 -3
- package/src/components/__tests__/LineageRoutes.spec.js +62 -76
- package/src/components/__tests__/__snapshots__/LineageForm.spec.js.snap +291 -250
- package/src/components/__tests__/__snapshots__/LineageRoutes.spec.js.snap +19 -43
- package/src/components/index.js +12 -0
- package/src/components/lineageDomainCache.js +101 -0
- package/src/components/lineageEventHelpers.js +195 -0
- package/src/styles/lineageGraph.less +1213 -47
- package/src/components/Lineage.js +0 -20
- package/src/components/LineageSample.js +0 -20
- package/src/components/__tests__/Lineage.spec.js +0 -16
- package/src/components/__tests__/__snapshots__/Lineage.spec.js.snap +0 -163
|
@@ -3,120 +3,120 @@
|
|
|
3
3
|
exports[`<LineageForm /> matches the latest snapshot 1`] = `
|
|
4
4
|
<div>
|
|
5
5
|
<div
|
|
6
|
-
class="ui
|
|
6
|
+
class="accordion ui lineage-toolbar"
|
|
7
7
|
>
|
|
8
8
|
<div
|
|
9
|
-
class="
|
|
9
|
+
class="active title noselect lineage-toolbar__title"
|
|
10
10
|
>
|
|
11
|
-
<
|
|
12
|
-
class="
|
|
11
|
+
<h4
|
|
12
|
+
class="ui header"
|
|
13
13
|
>
|
|
14
|
-
<
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
<
|
|
25
|
-
class="
|
|
14
|
+
<i
|
|
15
|
+
aria-hidden="true"
|
|
16
|
+
class="dropdown icon"
|
|
17
|
+
/>
|
|
18
|
+
lineage.form.header
|
|
19
|
+
</h4>
|
|
20
|
+
</div>
|
|
21
|
+
<div
|
|
22
|
+
class="content active"
|
|
23
|
+
>
|
|
24
|
+
<form
|
|
25
|
+
class="ui small form lineage-toolbar__form"
|
|
26
26
|
>
|
|
27
|
-
<
|
|
28
|
-
class="
|
|
27
|
+
<div
|
|
28
|
+
class="lineage-toolbar__fields"
|
|
29
29
|
>
|
|
30
30
|
<div
|
|
31
|
-
class="
|
|
31
|
+
class="lineage-selection-column"
|
|
32
32
|
>
|
|
33
33
|
<div
|
|
34
|
-
|
|
35
|
-
aria-expanded="false"
|
|
36
|
-
aria-multiselectable="false"
|
|
37
|
-
class="ui floating dropdown"
|
|
38
|
-
role="listbox"
|
|
39
|
-
tabindex="0"
|
|
34
|
+
class="field fix-dropdown-selector lineage-domain-selector"
|
|
40
35
|
>
|
|
41
36
|
<div
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
class="dropdown icon"
|
|
49
|
-
/>
|
|
50
|
-
<div
|
|
51
|
-
class="menu transition"
|
|
37
|
+
aria-disabled="false"
|
|
38
|
+
aria-expanded="false"
|
|
39
|
+
aria-multiselectable="false"
|
|
40
|
+
class="ui floating dropdown"
|
|
41
|
+
role="listbox"
|
|
42
|
+
tabindex="0"
|
|
52
43
|
>
|
|
53
44
|
<div
|
|
54
|
-
class="
|
|
45
|
+
class="default text"
|
|
55
46
|
>
|
|
56
|
-
|
|
57
|
-
type="text"
|
|
58
|
-
/>
|
|
59
|
-
<i
|
|
60
|
-
aria-hidden="true"
|
|
61
|
-
class="search icon"
|
|
62
|
-
/>
|
|
47
|
+
domain.selector.placeholder
|
|
63
48
|
</div>
|
|
49
|
+
<i
|
|
50
|
+
aria-hidden="true"
|
|
51
|
+
class="dropdown icon"
|
|
52
|
+
/>
|
|
64
53
|
<div
|
|
65
|
-
class="
|
|
54
|
+
class="menu transition"
|
|
66
55
|
>
|
|
67
56
|
<div
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
57
|
+
class="ui fluid left icon input search "
|
|
58
|
+
>
|
|
59
|
+
<input
|
|
60
|
+
type="text"
|
|
61
|
+
/>
|
|
62
|
+
<i
|
|
63
|
+
aria-hidden="true"
|
|
64
|
+
class="search icon"
|
|
65
|
+
/>
|
|
66
|
+
</div>
|
|
67
|
+
<div
|
|
68
|
+
class="scrolling menu transition"
|
|
71
69
|
>
|
|
72
70
|
<div
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
aria-selected="false"
|
|
72
|
+
class="item"
|
|
73
|
+
role="option"
|
|
75
74
|
>
|
|
76
|
-
<
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
/>
|
|
80
|
-
<span
|
|
81
|
-
style="opacity: 1;"
|
|
82
|
-
title="barDomain"
|
|
75
|
+
<div
|
|
76
|
+
class="item-content"
|
|
77
|
+
style="margin-left: 0px; padding-left: 25px;"
|
|
83
78
|
>
|
|
84
|
-
|
|
85
|
-
|
|
79
|
+
<span
|
|
80
|
+
style="opacity: 1;"
|
|
81
|
+
title="barDomain"
|
|
82
|
+
>
|
|
83
|
+
barDomain
|
|
84
|
+
</span>
|
|
85
|
+
</div>
|
|
86
86
|
</div>
|
|
87
|
-
</div>
|
|
88
|
-
<div
|
|
89
|
-
aria-selected="false"
|
|
90
|
-
class="item"
|
|
91
|
-
role="option"
|
|
92
|
-
>
|
|
93
87
|
<div
|
|
94
|
-
|
|
95
|
-
|
|
88
|
+
aria-selected="false"
|
|
89
|
+
class="item"
|
|
90
|
+
role="option"
|
|
96
91
|
>
|
|
97
|
-
<
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
<div
|
|
93
|
+
class="item-content"
|
|
94
|
+
style="margin-left: 0px; padding-left: 25px;"
|
|
100
95
|
>
|
|
101
|
-
|
|
102
|
-
|
|
96
|
+
<span
|
|
97
|
+
style="opacity: 1;"
|
|
98
|
+
title="bazDomain"
|
|
99
|
+
>
|
|
100
|
+
bazDomain
|
|
101
|
+
</span>
|
|
102
|
+
</div>
|
|
103
103
|
</div>
|
|
104
|
-
</div>
|
|
105
|
-
<div
|
|
106
|
-
aria-selected="false"
|
|
107
|
-
class="item"
|
|
108
|
-
role="option"
|
|
109
|
-
>
|
|
110
104
|
<div
|
|
111
|
-
|
|
112
|
-
|
|
105
|
+
aria-selected="false"
|
|
106
|
+
class="item"
|
|
107
|
+
role="option"
|
|
113
108
|
>
|
|
114
|
-
<
|
|
115
|
-
|
|
116
|
-
|
|
109
|
+
<div
|
|
110
|
+
class="item-content"
|
|
111
|
+
style="margin-left: 0px; padding-left: 25px;"
|
|
117
112
|
>
|
|
118
|
-
|
|
119
|
-
|
|
113
|
+
<span
|
|
114
|
+
style="opacity: 1;"
|
|
115
|
+
title="fooDomain"
|
|
116
|
+
>
|
|
117
|
+
fooDomain
|
|
118
|
+
</span>
|
|
119
|
+
</div>
|
|
120
120
|
</div>
|
|
121
121
|
</div>
|
|
122
122
|
</div>
|
|
@@ -124,227 +124,268 @@ exports[`<LineageForm /> matches the latest snapshot 1`] = `
|
|
|
124
124
|
</div>
|
|
125
125
|
</div>
|
|
126
126
|
<div
|
|
127
|
-
class="
|
|
127
|
+
class="lineage-selection-column"
|
|
128
128
|
>
|
|
129
129
|
<div
|
|
130
|
-
|
|
131
|
-
aria-expanded="false"
|
|
132
|
-
class="ui fluid search selection dropdown"
|
|
133
|
-
role="combobox"
|
|
130
|
+
class="field lineage-column-dropdown"
|
|
134
131
|
>
|
|
135
|
-
<input
|
|
136
|
-
aria-autocomplete="list"
|
|
137
|
-
autocomplete="off"
|
|
138
|
-
class="search"
|
|
139
|
-
tabindex="0"
|
|
140
|
-
type="text"
|
|
141
|
-
value=""
|
|
142
|
-
/>
|
|
143
|
-
<div
|
|
144
|
-
aria-atomic="true"
|
|
145
|
-
aria-live="polite"
|
|
146
|
-
class="divider default text"
|
|
147
|
-
role="alert"
|
|
148
|
-
>
|
|
149
|
-
lineage.group.placeholder
|
|
150
|
-
</div>
|
|
151
|
-
<i
|
|
152
|
-
aria-hidden="true"
|
|
153
|
-
class="dropdown icon"
|
|
154
|
-
/>
|
|
155
132
|
<div
|
|
156
|
-
|
|
157
|
-
|
|
133
|
+
aria-busy="false"
|
|
134
|
+
aria-expanded="false"
|
|
135
|
+
class="ui fluid search selection dropdown"
|
|
136
|
+
role="combobox"
|
|
158
137
|
>
|
|
138
|
+
<input
|
|
139
|
+
aria-autocomplete="list"
|
|
140
|
+
autocomplete="off"
|
|
141
|
+
class="search"
|
|
142
|
+
tabindex="0"
|
|
143
|
+
type="text"
|
|
144
|
+
value=""
|
|
145
|
+
/>
|
|
159
146
|
<div
|
|
160
|
-
aria-
|
|
161
|
-
aria-
|
|
162
|
-
class="
|
|
163
|
-
role="
|
|
164
|
-
style="pointer-events: all;"
|
|
147
|
+
aria-atomic="true"
|
|
148
|
+
aria-live="polite"
|
|
149
|
+
class="divider default text"
|
|
150
|
+
role="alert"
|
|
165
151
|
>
|
|
166
|
-
|
|
167
|
-
class="text"
|
|
168
|
-
>
|
|
169
|
-
grp1
|
|
170
|
-
</span>
|
|
152
|
+
lineage.group.placeholder
|
|
171
153
|
</div>
|
|
154
|
+
<i
|
|
155
|
+
aria-hidden="true"
|
|
156
|
+
class="dropdown icon"
|
|
157
|
+
/>
|
|
172
158
|
<div
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
class="item"
|
|
176
|
-
role="option"
|
|
177
|
-
style="pointer-events: all;"
|
|
159
|
+
class="menu transition"
|
|
160
|
+
role="listbox"
|
|
178
161
|
>
|
|
179
|
-
<
|
|
180
|
-
|
|
162
|
+
<div
|
|
163
|
+
aria-checked="false"
|
|
164
|
+
aria-selected="true"
|
|
165
|
+
class="selected item"
|
|
166
|
+
role="option"
|
|
167
|
+
style="pointer-events: all;"
|
|
181
168
|
>
|
|
182
|
-
|
|
183
|
-
|
|
169
|
+
<span
|
|
170
|
+
class="text"
|
|
171
|
+
>
|
|
172
|
+
grp1
|
|
173
|
+
</span>
|
|
174
|
+
</div>
|
|
175
|
+
<div
|
|
176
|
+
aria-checked="false"
|
|
177
|
+
aria-selected="false"
|
|
178
|
+
class="item"
|
|
179
|
+
role="option"
|
|
180
|
+
style="pointer-events: all;"
|
|
181
|
+
>
|
|
182
|
+
<span
|
|
183
|
+
class="text"
|
|
184
|
+
>
|
|
185
|
+
grp2
|
|
186
|
+
</span>
|
|
187
|
+
</div>
|
|
184
188
|
</div>
|
|
185
189
|
</div>
|
|
186
190
|
</div>
|
|
187
191
|
</div>
|
|
188
192
|
<div
|
|
189
|
-
class="
|
|
193
|
+
class="lineage-selection-column lineage-selection-column--resource"
|
|
190
194
|
>
|
|
191
195
|
<div
|
|
192
|
-
|
|
193
|
-
class="ui fluid multiple search selection dropdown"
|
|
194
|
-
role="combobox"
|
|
196
|
+
class="lineage-resource-field"
|
|
195
197
|
>
|
|
196
|
-
<input
|
|
197
|
-
aria-autocomplete="list"
|
|
198
|
-
autocomplete="off"
|
|
199
|
-
class="search"
|
|
200
|
-
tabindex="0"
|
|
201
|
-
type="text"
|
|
202
|
-
value=""
|
|
203
|
-
/>
|
|
204
|
-
<span
|
|
205
|
-
class="sizer"
|
|
206
|
-
/>
|
|
207
198
|
<div
|
|
208
|
-
|
|
209
|
-
aria-live="polite"
|
|
210
|
-
class="divider default text"
|
|
211
|
-
role="alert"
|
|
212
|
-
>
|
|
213
|
-
lineage.resources.placeholder
|
|
214
|
-
</div>
|
|
215
|
-
<i
|
|
216
|
-
aria-hidden="true"
|
|
217
|
-
class="dropdown icon"
|
|
218
|
-
/>
|
|
219
|
-
<div
|
|
220
|
-
aria-multiselectable="true"
|
|
221
|
-
class="menu transition"
|
|
222
|
-
role="listbox"
|
|
199
|
+
class="field lineage-column-dropdown lineage-resource-selector"
|
|
223
200
|
>
|
|
224
201
|
<div
|
|
225
|
-
aria-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
role="option"
|
|
229
|
-
style="pointer-events: all;"
|
|
202
|
+
aria-expanded="false"
|
|
203
|
+
class="ui fluid multiple search selection dropdown"
|
|
204
|
+
role="combobox"
|
|
230
205
|
>
|
|
206
|
+
<input
|
|
207
|
+
aria-autocomplete="list"
|
|
208
|
+
autocomplete="off"
|
|
209
|
+
class="search"
|
|
210
|
+
tabindex="0"
|
|
211
|
+
type="text"
|
|
212
|
+
value=""
|
|
213
|
+
/>
|
|
231
214
|
<span
|
|
232
|
-
class="
|
|
215
|
+
class="sizer"
|
|
216
|
+
/>
|
|
217
|
+
<div
|
|
218
|
+
aria-atomic="true"
|
|
219
|
+
aria-live="polite"
|
|
220
|
+
class="divider default text"
|
|
221
|
+
role="alert"
|
|
233
222
|
>
|
|
234
|
-
|
|
235
|
-
</
|
|
223
|
+
lineage.resources.placeholder
|
|
224
|
+
</div>
|
|
225
|
+
<i
|
|
226
|
+
aria-hidden="true"
|
|
227
|
+
class="dropdown icon"
|
|
228
|
+
/>
|
|
229
|
+
<div
|
|
230
|
+
aria-multiselectable="true"
|
|
231
|
+
class="menu transition"
|
|
232
|
+
role="listbox"
|
|
233
|
+
>
|
|
234
|
+
<div
|
|
235
|
+
aria-checked="false"
|
|
236
|
+
aria-selected="true"
|
|
237
|
+
class="selected item"
|
|
238
|
+
role="option"
|
|
239
|
+
style="pointer-events: all;"
|
|
240
|
+
>
|
|
241
|
+
<span
|
|
242
|
+
class="text"
|
|
243
|
+
>
|
|
244
|
+
res1
|
|
245
|
+
</span>
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
236
248
|
</div>
|
|
237
249
|
</div>
|
|
250
|
+
<button
|
|
251
|
+
aria-label="lineage.resources.add_all"
|
|
252
|
+
class="lineage-resource-toggle lineage-resource-toggle--add"
|
|
253
|
+
type="button"
|
|
254
|
+
>
|
|
255
|
+
<span
|
|
256
|
+
class="lineage-resource-toggle-content"
|
|
257
|
+
title="add all"
|
|
258
|
+
>
|
|
259
|
+
<i
|
|
260
|
+
aria-hidden="true"
|
|
261
|
+
class="plus icon"
|
|
262
|
+
/>
|
|
263
|
+
<span>
|
|
264
|
+
add all
|
|
265
|
+
</span>
|
|
266
|
+
</span>
|
|
267
|
+
</button>
|
|
238
268
|
</div>
|
|
239
269
|
</div>
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
</h5>
|
|
270
|
+
</div>
|
|
271
|
+
<div
|
|
272
|
+
class="lineage-toolbar__controls"
|
|
273
|
+
>
|
|
245
274
|
<div
|
|
246
|
-
class="
|
|
275
|
+
class="lineage-toolbar__levels"
|
|
247
276
|
>
|
|
277
|
+
<h5
|
|
278
|
+
class="ui header"
|
|
279
|
+
>
|
|
280
|
+
lineage.form.levels.header
|
|
281
|
+
</h5>
|
|
248
282
|
<div
|
|
249
|
-
class="
|
|
283
|
+
class="inline fields lineage-toolbar__level-options"
|
|
250
284
|
>
|
|
251
285
|
<div
|
|
252
|
-
class="
|
|
286
|
+
class="field lineage-toolbar__level-option"
|
|
253
287
|
>
|
|
254
288
|
<div
|
|
255
|
-
class="
|
|
289
|
+
class="disabled field"
|
|
256
290
|
>
|
|
257
|
-
<
|
|
258
|
-
class="
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
291
|
+
<div
|
|
292
|
+
class="ui disabled radio checkbox"
|
|
293
|
+
>
|
|
294
|
+
<input
|
|
295
|
+
class="hidden"
|
|
296
|
+
disabled=""
|
|
297
|
+
name="allLevels"
|
|
298
|
+
readonly=""
|
|
299
|
+
tabindex="-1"
|
|
300
|
+
type="radio"
|
|
301
|
+
value="all"
|
|
302
|
+
/>
|
|
303
|
+
<label>
|
|
304
|
+
lineage.form.levels.all.label
|
|
305
|
+
</label>
|
|
306
|
+
</div>
|
|
269
307
|
</div>
|
|
270
308
|
</div>
|
|
271
|
-
</div>
|
|
272
|
-
<div
|
|
273
|
-
class="field"
|
|
274
|
-
>
|
|
275
309
|
<div
|
|
276
|
-
class="
|
|
310
|
+
class="field lineage-toolbar__level-depth"
|
|
277
311
|
>
|
|
278
312
|
<div
|
|
279
|
-
class="
|
|
313
|
+
class="disabled field"
|
|
280
314
|
>
|
|
281
|
-
<
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
315
|
+
<div
|
|
316
|
+
class="ui checked disabled radio checkbox"
|
|
317
|
+
>
|
|
318
|
+
<input
|
|
319
|
+
checked=""
|
|
320
|
+
class="hidden"
|
|
321
|
+
disabled=""
|
|
322
|
+
name="selectLevels"
|
|
323
|
+
readonly=""
|
|
324
|
+
tabindex="-1"
|
|
325
|
+
type="radio"
|
|
326
|
+
value="select"
|
|
327
|
+
/>
|
|
328
|
+
<label>
|
|
329
|
+
lineage.form.levels.select.label
|
|
330
|
+
</label>
|
|
331
|
+
</div>
|
|
332
|
+
</div>
|
|
333
|
+
<div
|
|
334
|
+
class="disabled field lineage-toolbar__level-input"
|
|
335
|
+
>
|
|
336
|
+
<div
|
|
337
|
+
class="field"
|
|
338
|
+
>
|
|
339
|
+
<input
|
|
340
|
+
autocomplete="off"
|
|
341
|
+
min="1"
|
|
342
|
+
type="number"
|
|
343
|
+
value="4"
|
|
344
|
+
/>
|
|
345
|
+
</div>
|
|
294
346
|
</div>
|
|
295
347
|
</div>
|
|
296
348
|
</div>
|
|
297
349
|
</div>
|
|
298
350
|
<div
|
|
299
|
-
class="
|
|
351
|
+
class="lineage-toolbar__actions"
|
|
300
352
|
>
|
|
301
|
-
<
|
|
302
|
-
class="
|
|
353
|
+
<button
|
|
354
|
+
class="ui small secondary disabled button"
|
|
355
|
+
disabled=""
|
|
356
|
+
tabindex="-1"
|
|
303
357
|
>
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
<button
|
|
314
|
-
class="ui small secondary disabled right floated button"
|
|
315
|
-
disabled=""
|
|
316
|
-
tabindex="-1"
|
|
317
|
-
>
|
|
318
|
-
navigation.lineage.clean
|
|
319
|
-
</button>
|
|
320
|
-
<button
|
|
321
|
-
class="ui small primary disabled button"
|
|
322
|
-
disabled=""
|
|
323
|
-
tabindex="-1"
|
|
324
|
-
>
|
|
325
|
-
navigation.lineage.impact
|
|
326
|
-
</button>
|
|
327
|
-
<button
|
|
328
|
-
class="ui small primary disabled button"
|
|
329
|
-
disabled=""
|
|
330
|
-
tabindex="-1"
|
|
331
|
-
>
|
|
332
|
-
navigation.lineage.lineage
|
|
333
|
-
</button>
|
|
334
|
-
<span>
|
|
358
|
+
navigation.lineage.clean
|
|
359
|
+
</button>
|
|
360
|
+
<button
|
|
361
|
+
class="ui small primary disabled button"
|
|
362
|
+
disabled=""
|
|
363
|
+
tabindex="-1"
|
|
364
|
+
>
|
|
365
|
+
navigation.lineage.impact
|
|
366
|
+
</button>
|
|
335
367
|
<button
|
|
336
|
-
class="ui
|
|
368
|
+
class="ui small primary disabled button"
|
|
337
369
|
disabled=""
|
|
338
370
|
tabindex="-1"
|
|
339
371
|
>
|
|
340
|
-
|
|
341
|
-
aria-hidden="true"
|
|
342
|
-
class="download icon"
|
|
343
|
-
/>
|
|
372
|
+
navigation.lineage.lineage
|
|
344
373
|
</button>
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
374
|
+
<span>
|
|
375
|
+
<button
|
|
376
|
+
class="ui icon secondary disabled button"
|
|
377
|
+
disabled=""
|
|
378
|
+
tabindex="-1"
|
|
379
|
+
>
|
|
380
|
+
<i
|
|
381
|
+
aria-hidden="true"
|
|
382
|
+
class="download icon"
|
|
383
|
+
/>
|
|
384
|
+
</button>
|
|
385
|
+
</span>
|
|
386
|
+
</div>
|
|
387
|
+
</div>
|
|
388
|
+
</form>
|
|
348
389
|
</div>
|
|
349
390
|
</div>
|
|
350
391
|
</div>
|