@abi-software/map-side-bar 2.3.1 → 2.4.0-alpha-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 (43) hide show
  1. package/.eslintrc.js +12 -12
  2. package/.postcssrc.json +5 -5
  3. package/LICENSE +201 -201
  4. package/README.md +168 -168
  5. package/cypress.config.js +23 -23
  6. package/dist/data/pmr-sample.json +3181 -0
  7. package/dist/map-side-bar.js +15142 -9024
  8. package/dist/map-side-bar.umd.cjs +50 -103
  9. package/dist/style.css +1 -1
  10. package/package.json +77 -77
  11. package/public/data/pmr-sample.json +3181 -0
  12. package/reporter-config.json +9 -9
  13. package/src/App.vue +266 -265
  14. package/src/algolia/algolia.js +255 -242
  15. package/src/algolia/utils.js +100 -100
  16. package/src/assets/_variables.scss +43 -43
  17. package/src/assets/styles.scss +6 -6
  18. package/src/components/BadgesGroup.vue +124 -124
  19. package/src/components/ConnectivityInfo.vue +619 -619
  20. package/src/components/DatasetCard.vue +367 -357
  21. package/src/components/EventBus.js +3 -3
  22. package/src/components/ExternalResourceCard.vue +113 -113
  23. package/src/components/FlatmapDatasetCard.vue +171 -0
  24. package/src/components/ImageGallery.vue +542 -542
  25. package/src/components/PMRDatasetCard.vue +237 -0
  26. package/src/components/SearchFilters.vue +1023 -1006
  27. package/src/components/SearchHistory.vue +175 -175
  28. package/src/components/SideBar.vue +436 -436
  29. package/src/components/SidebarContent.vue +730 -603
  30. package/src/components/Tabs.vue +145 -145
  31. package/src/components/allPaths.js +5928 -0
  32. package/src/components/index.js +8 -8
  33. package/src/components/pmrTest.js +4 -0
  34. package/src/components/species-map.js +8 -8
  35. package/src/components.d.ts +2 -0
  36. package/src/exampleConnectivityInput.js +291 -291
  37. package/src/flatmapQueries/flatmapQueries.js +169 -0
  38. package/src/main.js +9 -9
  39. package/src/mixins/S3Bucket.vue +37 -37
  40. package/src/mixins/mixedPageCalculation.vue +78 -0
  41. package/static.json +6 -6
  42. package/vite.config.js +55 -55
  43. package/vuese-generator.js +65 -65
@@ -1,357 +1,367 @@
1
- <template>
2
- <div class="dataset-card-container" ref="container">
3
- <div class="dataset-card" ref="card">
4
- <div class="seperator-path"></div>
5
- <div v-loading="loading" class="card">
6
- <span class="card-left">
7
- <ImageGallery
8
- v-if="!loading && discoverId"
9
- :datasetId="discoverId"
10
- :datasetVersion="version"
11
- :entry="entry"
12
- :envVars="envVars"
13
- :label="label"
14
- :datasetThumbnail="thumbnail"
15
- :dataset-biolucida="biolucidaData"
16
- :category="currentCategory"
17
- @card-clicked="galleryClicked"
18
- @datalink-clicked="galleryDatalinkClicked"
19
- />
20
- </span>
21
- <div class="card-right">
22
- <div class="title" @click="cardClicked">{{ entry.name }}</div>
23
- <div class="details">
24
- {{ contributors }} {{ entry.publishDate ? `(${publishYear})` : '' }}
25
- </div>
26
- <div class="details">{{ samples }}</div>
27
- <div
28
- v-if="!entry.detailsReady"
29
- class="details loading-icon"
30
- v-loading="!entry.detailsReady"
31
- ></div>
32
- <div>
33
- <el-button
34
- v-if="entry.simulation"
35
- @click="openRepository"
36
- size="small"
37
- class="button"
38
- :icon="ElIconView"
39
- >View repository</el-button
40
- >
41
- </div>
42
- <div class="badges-container">
43
- <BadgesGroup
44
- :entry="entry"
45
- :dataset-biolucida="biolucidaData"
46
- @categoryChanged="categoryChanged"
47
- />
48
- </div>
49
- </div>
50
- </div>
51
- </div>
52
- </div>
53
- </template>
54
-
55
- <script>
56
- /* eslint-disable no-alert, no-console */
57
- import { View as ElIconView } from '@element-plus/icons-vue'
58
- import BadgesGroup from './BadgesGroup.vue'
59
- import {
60
- ElButton as Button,
61
- ElIcon as Icon
62
- } from 'element-plus'
63
- import EventBus from './EventBus.js'
64
- import speciesMap from './species-map.js'
65
- import ImageGallery from './ImageGallery.vue'
66
- import MissingImage from '@/../assets/missing-image.svg'
67
-
68
- export default {
69
- data() {
70
- return {
71
- ElIconView,
72
- }
73
- },
74
- name: 'DatasetCard',
75
- components: {
76
- BadgesGroup,
77
- ImageGallery,
78
- Button,
79
- Icon
80
- },
81
- props: {
82
- /**
83
- * Object containing information for
84
- * the required viewing.
85
- */
86
- entry: {
87
- type: Object,
88
- default: () => {},
89
- },
90
- envVars: {
91
- type: Object,
92
- default: () => {},
93
- },
94
- },
95
- data: function () {
96
- return {
97
- thumbnail: MissingImage,
98
- dataLocation: this.entry.doi,
99
- discoverId: undefined,
100
- loading: true,
101
- version: 1,
102
- lastDoi: undefined,
103
- biolucidaData: undefined,
104
- currentCategory: 'All',
105
- }
106
- },
107
- computed: {
108
- contributors: function () {
109
- let text = ''
110
- if (this.entry.contributors) {
111
- if (this.entry.contributors.length === 1) {
112
- text = this.lastName(this.entry.contributors[0].name)
113
- } else if (this.entry.contributors.length === 2) {
114
- text =
115
- this.lastName(this.entry.contributors[0].name) +
116
- ' & ' +
117
- this.lastName(this.entry.contributors[1].name)
118
- } else if (this.entry.contributors.length > 2) {
119
- text = this.lastName(this.entry.contributors[0].name) + ' et al.'
120
- }
121
- }
122
- return text
123
- },
124
- samples: function () {
125
- let text = ''
126
- if (this.entry.species) {
127
- if (speciesMap[this.entry.species[0].toLowerCase()]) {
128
- text = `${speciesMap[this.entry.species[0].toLowerCase()]}`
129
- } else {
130
- text = `${this.entry.species}`
131
- }
132
- }
133
- if (this.entry.numberSamples > 0) {
134
- text += ' ('
135
- if (this.entry.numberSamples === 1) {
136
- text += `${this.entry.numberSamples} sample`
137
- } else if (this.entry.numberSamples > 1) {
138
- text += `${this.entry.numberSamples} samples`
139
- }
140
- if (this.entry.numberSubjects === 1) {
141
- text += ` from ${this.entry.numberSubjects} subject`
142
- } else if (this.entry.numberSamples > 1) {
143
- text += ` from ${this.entry.numberSubjects} subjects`
144
- }
145
- text += ')'
146
- }
147
-
148
- return text
149
- },
150
- label: function () {
151
- return this.entry.organs ? this.entry.organs[0] : this.entry.name
152
- },
153
- publishYear: function () {
154
- return this.entry.publishDate.split('-')[0]
155
- },
156
- },
157
- methods: {
158
- cardClicked: function () {
159
- this.openDataset()
160
- },
161
- categoryChanged: function (name) {
162
- this.currentCategory = name
163
- },
164
- galleryClicked: function (payload) {
165
- this.propogateCardAction(payload)
166
- },
167
- galleryDatalinkClicked: function (payload) {
168
- EventBus.emit('datalink-clicked', payload); // Pass to mapintegratedvuer
169
- },
170
- openDataset: function () {
171
- window.open(this.dataLocation, '_blank')
172
- },
173
- openRepository: function () {
174
- let apiLocation = this.envVars.API_LOCATION
175
- this.entry.additionalLinks.forEach(function (el) {
176
- if (el.description == 'Repository') {
177
- let xmlhttp = new XMLHttpRequest()
178
- xmlhttp.open('POST', apiLocation + '/pmr_latest_exposure', true)
179
- xmlhttp.setRequestHeader('Content-type', 'application/json')
180
- xmlhttp.onreadystatechange = () => {
181
- if (xmlhttp.readyState === 4) {
182
- let url = ''
183
- if (xmlhttp.status === 200) {
184
- url = JSON.parse(xmlhttp.responseText)['url']
185
- }
186
- if (url === '') {
187
- url = el.uri
188
- }
189
- window.open(url, '_blank')
190
- }
191
- }
192
- xmlhttp.send(JSON.stringify({ workspace_url: el.uri }))
193
- }
194
- })
195
- },
196
- propogateCardAction: function (action) {
197
- EventBus.emit('PopoverActionClick', action)
198
- EventBus.emit('contextUpdate', action) // Pass to mapintegratedvuer
199
- },
200
- splitDOI: function (doi) {
201
- return [
202
- doi.split('/')[doi.split('/').length - 2],
203
- doi.split('/')[doi.split('/').length - 1],
204
- ]
205
- },
206
- getBanner: function () {
207
- // Only load banner if card has changed
208
- if (this.lastDoi !== this.entry.doi) {
209
- this.lastDoi = this.entry.doi
210
- this.loading = true
211
- let doi = this.splitDOI(this.entry.doi)
212
- fetch(
213
- `${this.envVars.PENNSIEVE_API_LOCATION}/discover/datasets/doi/${doi[0]}/${doi[1]}`
214
- )
215
- .then((response) => {
216
- if (!response.ok) {
217
- throw Error(response.statusText)
218
- } else {
219
- return response.json()
220
- }
221
- })
222
- .then((data) => {
223
- this.thumbnail = data.banner
224
- this.discoverId = data.id
225
- this.version = data.version
226
- this.dataLocation = `https://sparc.science/datasets/${data.id}?type=dataset`
227
- this.getBiolucidaInfo(this.discoverId)
228
- this.loading = false
229
- })
230
- .catch(() => {
231
- //set defaults if we hit an error
232
- this.thumbnail = MissingImage
233
- this.discoverId = Number(this.entry.datasetId)
234
- this.loading = false
235
- })
236
- }
237
- },
238
- lastName: function (fullName) {
239
- return fullName.split(',')[0]
240
- },
241
- getBiolucidaInfo: function (id) {
242
- let apiLocation = this.envVars.API_LOCATION
243
- let endpoint = apiLocation + 'image_search/' + id
244
- // Add parameters if we are sent them
245
- fetch(endpoint)
246
- .then((response) => response.json())
247
- .then((data) => {
248
- if (data.status == 'success') this.biolucidaData = data
249
- })
250
- },
251
- },
252
- created: function () {
253
- this.getBanner()
254
- },
255
- watch: {
256
- // currently not using card overflow
257
- 'entry.description': function () {
258
- // watch it
259
- this.getBanner()
260
- },
261
- },
262
- }
263
- </script>
264
-
265
- <style lang="scss" scoped>
266
- .dataset-card {
267
- padding-left: 5px;
268
- padding-right: 5px;
269
- position: relative;
270
- min-height: 17rem;
271
- }
272
-
273
- .title {
274
- padding-bottom: 0.75rem;
275
- font-family: Asap;
276
- font-size: 14px;
277
- font-weight: bold;
278
- font-stretch: normal;
279
- font-style: normal;
280
- line-height: 1.5;
281
- letter-spacing: 1.05px;
282
- color: #484848;
283
- cursor: pointer;
284
- }
285
- .card {
286
- padding-top: 18px;
287
- position: relative;
288
- display: flex;
289
- }
290
-
291
- .card-left {
292
- flex: 1;
293
- }
294
-
295
- .card-right {
296
- flex: 1.3;
297
- padding-left: 6px;
298
- }
299
-
300
- .button {
301
- z-index: 10;
302
- font-family: Asap;
303
- font-size: 14px;
304
- font-weight: normal;
305
- font-stretch: normal;
306
- font-style: normal;
307
- line-height: normal;
308
- letter-spacing: normal;
309
- background-color: $app-primary-color;
310
- border: $app-primary-color;
311
- color: white;
312
- cursor: pointer;
313
- margin-top: 8px;
314
- }
315
-
316
- .button:hover {
317
- background-color: $app-primary-color;
318
- color: white;
319
- }
320
-
321
- .banner-img {
322
- width: 128px;
323
- height: 128px;
324
- box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.25);
325
- background-color: #ffffff;
326
- cursor: pointer;
327
- }
328
- .details {
329
- font-family: Asap;
330
- font-size: 14px;
331
- font-weight: normal;
332
- font-stretch: normal;
333
- font-style: normal;
334
- line-height: 1.5;
335
- letter-spacing: 1.05px;
336
- color: #484848;
337
- }
338
-
339
- .badges-container {
340
- margin-top: 0.75rem;
341
- }
342
-
343
- .loading-icon {
344
- z-index: 20;
345
- width: 40px;
346
- height: 40px;
347
- left: 80px;
348
- }
349
-
350
- .loading-icon :deep(.el-loading-mask) {
351
- background-color: rgba(117, 190, 218, 0) !important;
352
- }
353
-
354
- .loading-icon :deep(.el-loading-spinner .path) {
355
- stroke: $app-primary-color;
356
- }
357
- </style>
1
+ <template>
2
+ <div class="dataset-card-container" ref="container">
3
+ <div class="dataset-card" ref="card">
4
+ <div class="seperator-path"></div>
5
+ <div v-loading="loading" class="card">
6
+ <span class="card-left">
7
+ <ImageGallery
8
+ v-if="!loading && discoverId"
9
+ :datasetId="discoverId"
10
+ :datasetVersion="version"
11
+ :entry="entry"
12
+ :envVars="envVars"
13
+ :label="label"
14
+ :datasetThumbnail="thumbnail"
15
+ :dataset-biolucida="biolucidaData"
16
+ :category="currentCategory"
17
+ @card-clicked="galleryClicked"
18
+ @datalink-clicked="galleryDatalinkClicked"
19
+ />
20
+ </span>
21
+ <div class="card-right">
22
+ <el-tag type="primary" class="source-tag">SPARC Dataset</el-tag>
23
+ <div class="title" @click="cardClicked">{{ entry.name }}</div>
24
+ <div class="details">
25
+ {{ contributors }} {{ entry.publishDate ? `(${publishYear})` : '' }}
26
+ </div>
27
+ <div class="details">{{ samples }}</div>
28
+ <div
29
+ v-if="!entry.detailsReady"
30
+ class="details loading-icon"
31
+ v-loading="!entry.detailsReady"
32
+ ></div>
33
+ <div>
34
+ <el-button
35
+ v-if="entry.simulation"
36
+ @click="openRepository"
37
+ size="small"
38
+ class="button"
39
+ :icon="ElIconView"
40
+ >View repository</el-button
41
+ >
42
+ </div>
43
+ <div class="badges-container">
44
+ <BadgesGroup
45
+ :entry="entry"
46
+ :dataset-biolucida="biolucidaData"
47
+ @categoryChanged="categoryChanged"
48
+ />
49
+ </div>
50
+ </div>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </template>
55
+
56
+ <script>
57
+ /* eslint-disable no-alert, no-console */
58
+ import { View as ElIconView } from '@element-plus/icons-vue'
59
+ import BadgesGroup from './BadgesGroup.vue'
60
+ import {
61
+ ElButton as Button,
62
+ ElIcon as Icon
63
+ } from 'element-plus'
64
+ import EventBus from './EventBus.js'
65
+ import speciesMap from './species-map.js'
66
+ import ImageGallery from './ImageGallery.vue'
67
+ import MissingImage from '@/../assets/missing-image.svg'
68
+
69
+ export default {
70
+ data() {
71
+ return {
72
+ ElIconView,
73
+ }
74
+ },
75
+ name: 'DatasetCard',
76
+ components: {
77
+ BadgesGroup,
78
+ ImageGallery,
79
+ Button,
80
+ Icon
81
+ },
82
+ props: {
83
+ /**
84
+ * Object containing information for
85
+ * the required viewing.
86
+ */
87
+ entry: {
88
+ type: Object,
89
+ default: () => {},
90
+ },
91
+ envVars: {
92
+ type: Object,
93
+ default: () => {},
94
+ },
95
+ },
96
+ data: function () {
97
+ return {
98
+ thumbnail: MissingImage,
99
+ dataLocation: this.entry.doi,
100
+ discoverId: undefined,
101
+ loading: true,
102
+ version: 1,
103
+ lastDoi: undefined,
104
+ biolucidaData: undefined,
105
+ currentCategory: 'All',
106
+ }
107
+ },
108
+ computed: {
109
+ contributors: function () {
110
+ let text = ''
111
+ if (this.entry.contributors) {
112
+ if (this.entry.contributors.length === 1) {
113
+ text = this.lastName(this.entry.contributors[0].name)
114
+ } else if (this.entry.contributors.length === 2) {
115
+ text =
116
+ this.lastName(this.entry.contributors[0].name) +
117
+ ' & ' +
118
+ this.lastName(this.entry.contributors[1].name)
119
+ } else if (this.entry.contributors.length > 2) {
120
+ text = this.lastName(this.entry.contributors[0].name) + ' et al.'
121
+ }
122
+ }
123
+ return text
124
+ },
125
+ samples: function () {
126
+ let text = ''
127
+ if (this.entry.species) {
128
+ if (speciesMap[this.entry.species[0].toLowerCase()]) {
129
+ text = `${speciesMap[this.entry.species[0].toLowerCase()]}`
130
+ } else {
131
+ text = `${this.entry.species}`
132
+ }
133
+ }
134
+ if (this.entry.numberSamples > 0) {
135
+ text += ' ('
136
+ if (this.entry.numberSamples === 1) {
137
+ text += `${this.entry.numberSamples} sample`
138
+ } else if (this.entry.numberSamples > 1) {
139
+ text += `${this.entry.numberSamples} samples`
140
+ }
141
+ if (this.entry.numberSubjects === 1) {
142
+ text += ` from ${this.entry.numberSubjects} subject`
143
+ } else if (this.entry.numberSamples > 1) {
144
+ text += ` from ${this.entry.numberSubjects} subjects`
145
+ }
146
+ text += ')'
147
+ }
148
+
149
+ return text
150
+ },
151
+ label: function () {
152
+ return this.entry.organs ? this.entry.organs[0] : this.entry.name
153
+ },
154
+ publishYear: function () {
155
+ return this.entry.publishDate.split('-')[0]
156
+ },
157
+ },
158
+ methods: {
159
+ cardClicked: function () {
160
+ this.openDataset()
161
+ },
162
+ categoryChanged: function (name) {
163
+ this.currentCategory = name
164
+ },
165
+ galleryClicked: function (payload) {
166
+ this.propogateCardAction(payload)
167
+ },
168
+ galleryDatalinkClicked: function (payload) {
169
+ EventBus.emit('datalink-clicked', payload); // Pass to mapintegratedvuer
170
+ },
171
+ openDataset: function () {
172
+ window.open(this.dataLocation, '_blank')
173
+ },
174
+ openRepository: function () {
175
+ let apiLocation = this.envVars.API_LOCATION
176
+ this.entry.additionalLinks.forEach(function (el) {
177
+ if (el.description == 'Repository') {
178
+ let xmlhttp = new XMLHttpRequest()
179
+ xmlhttp.open('POST', apiLocation + '/pmr_latest_exposure', true)
180
+ xmlhttp.setRequestHeader('Content-type', 'application/json')
181
+ xmlhttp.onreadystatechange = () => {
182
+ if (xmlhttp.readyState === 4) {
183
+ let url = ''
184
+ if (xmlhttp.status === 200) {
185
+ url = JSON.parse(xmlhttp.responseText)['url']
186
+ }
187
+ if (url === '') {
188
+ url = el.uri
189
+ }
190
+ window.open(url, '_blank')
191
+ }
192
+ }
193
+ xmlhttp.send(JSON.stringify({ workspace_url: el.uri }))
194
+ }
195
+ })
196
+ },
197
+ propogateCardAction: function (action) {
198
+ EventBus.emit('PopoverActionClick', action)
199
+ EventBus.emit('contextUpdate', action) // Pass to mapintegratedvuer
200
+ },
201
+ splitDOI: function (doi) {
202
+ return [
203
+ doi.split('/')[doi.split('/').length - 2],
204
+ doi.split('/')[doi.split('/').length - 1],
205
+ ]
206
+ },
207
+ getBanner: function () {
208
+ // Only load banner if card has changed
209
+ if (this.lastDoi !== this.entry.doi) {
210
+ this.lastDoi = this.entry.doi
211
+ this.loading = true
212
+ let doi = this.splitDOI(this.entry.doi)
213
+ fetch(
214
+ `${this.envVars.PENNSIEVE_API_LOCATION}/discover/datasets/doi/${doi[0]}/${doi[1]}`
215
+ )
216
+ .then((response) => {
217
+ if (!response.ok) {
218
+ throw Error(response.statusText)
219
+ } else {
220
+ return response.json()
221
+ }
222
+ })
223
+ .then((data) => {
224
+ this.thumbnail = data.banner
225
+ this.discoverId = data.id
226
+ this.version = data.version
227
+ this.dataLocation = `https://sparc.science/datasets/${data.id}?type=dataset`
228
+ this.getBiolucidaInfo(this.discoverId)
229
+ this.loading = false
230
+ })
231
+ .catch(() => {
232
+ //set defaults if we hit an error
233
+ this.thumbnail = MissingImage
234
+ this.discoverId = Number(this.entry.datasetId)
235
+ this.loading = false
236
+ })
237
+ }
238
+ },
239
+ lastName: function (fullName) {
240
+ return fullName.split(',')[0]
241
+ },
242
+ getBiolucidaInfo: function (id) {
243
+ let apiLocation = this.envVars.API_LOCATION
244
+ let endpoint = apiLocation + 'image_search/' + id
245
+ // Add parameters if we are sent them
246
+ fetch(endpoint)
247
+ .then((response) => response.json())
248
+ .then((data) => {
249
+ if (data.status == 'success') this.biolucidaData = data
250
+ })
251
+ },
252
+ },
253
+ created: function () {
254
+ this.getBanner()
255
+ },
256
+ watch: {
257
+ // currently not using card overflow
258
+ 'entry.description': function () {
259
+ // watch it
260
+ this.getBanner()
261
+ },
262
+ },
263
+ }
264
+ </script>
265
+
266
+ <style lang="scss" scoped>
267
+ .dataset-card {
268
+ padding-left: 5px;
269
+ padding-right: 5px;
270
+ position: relative;
271
+ min-height: 17rem;
272
+ }
273
+
274
+ .title {
275
+ padding-bottom: 0.75rem;
276
+ font-family: Asap;
277
+ font-size: 14px;
278
+ font-weight: bold;
279
+ font-stretch: normal;
280
+ font-style: normal;
281
+ line-height: 1.5;
282
+ letter-spacing: 1.05px;
283
+ color: #484848;
284
+ cursor: pointer;
285
+ }
286
+
287
+ .source-tag {
288
+ margin-bottom: 0.75rem;
289
+ margin-right: 2rem;
290
+ position: absolute;
291
+ bottom: 0;
292
+ right: 0;
293
+ }
294
+
295
+ .card {
296
+ padding-top: 18px;
297
+ position: relative;
298
+ display: flex;
299
+ }
300
+
301
+ .card-left {
302
+ flex: 1;
303
+ }
304
+
305
+ .card-right {
306
+ flex: 1.3;
307
+ padding-left: 6px;
308
+ }
309
+
310
+ .button {
311
+ z-index: 10;
312
+ font-family: Asap;
313
+ font-size: 14px;
314
+ font-weight: normal;
315
+ font-stretch: normal;
316
+ font-style: normal;
317
+ line-height: normal;
318
+ letter-spacing: normal;
319
+ background-color: $app-primary-color;
320
+ border: $app-primary-color;
321
+ color: white;
322
+ cursor: pointer;
323
+ margin-top: 8px;
324
+ }
325
+
326
+ .button:hover {
327
+ background-color: $app-primary-color;
328
+ color: white;
329
+ }
330
+
331
+ .banner-img {
332
+ width: 128px;
333
+ height: 128px;
334
+ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.25);
335
+ background-color: #ffffff;
336
+ cursor: pointer;
337
+ }
338
+ .details {
339
+ font-family: Asap;
340
+ font-size: 14px;
341
+ font-weight: normal;
342
+ font-stretch: normal;
343
+ font-style: normal;
344
+ line-height: 1.5;
345
+ letter-spacing: 1.05px;
346
+ color: #484848;
347
+ }
348
+
349
+ .badges-container {
350
+ margin-top: 0.75rem;
351
+ }
352
+
353
+ .loading-icon {
354
+ z-index: 20;
355
+ width: 40px;
356
+ height: 40px;
357
+ left: 80px;
358
+ }
359
+
360
+ .loading-icon :deep(.el-loading-mask) {
361
+ background-color: rgba(117, 190, 218, 0) !important;
362
+ }
363
+
364
+ .loading-icon :deep(.el-loading-spinner .path) {
365
+ stroke: $app-primary-color;
366
+ }
367
+ </style>