@abi-software/map-side-bar 2.4.0-alpha-1 → 2.4.0-isan-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 (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/map-side-bar.js +9362 -15112
  7. package/dist/map-side-bar.umd.cjs +103 -50
  8. package/dist/style.css +1 -1
  9. package/package.json +77 -77
  10. package/reporter-config.json +9 -9
  11. package/src/App.vue +268 -266
  12. package/src/algolia/algolia.js +256 -255
  13. package/src/algolia/utils.js +105 -100
  14. package/src/assets/_variables.scss +43 -43
  15. package/src/assets/styles.scss +6 -6
  16. package/src/components/BadgesGroup.vue +124 -124
  17. package/src/components/ConnectivityInfo.vue +619 -619
  18. package/src/components/DatasetCard.vue +367 -367
  19. package/src/components/EventBus.js +3 -3
  20. package/src/components/ExternalResourceCard.vue +113 -113
  21. package/src/components/ImageGallery.vue +542 -542
  22. package/src/components/PMRDatasetCard.vue +303 -237
  23. package/src/components/SearchFilters.vue +1023 -1023
  24. package/src/components/SearchHistory.vue +175 -175
  25. package/src/components/SideBar.vue +456 -436
  26. package/src/components/SidebarContent.vue +710 -730
  27. package/src/components/Tabs.vue +145 -145
  28. package/src/components/index.js +8 -8
  29. package/src/components/species-map.js +8 -8
  30. package/src/components.d.ts +0 -1
  31. package/src/exampleConnectivityInput.js +291 -291
  32. package/src/flatmapQueries/flatmapQueries.js +220 -168
  33. package/src/main.js +9 -9
  34. package/src/mixins/S3Bucket.vue +37 -37
  35. package/src/mixins/mixedPageCalculation.vue +102 -78
  36. package/static.json +6 -6
  37. package/vite.config.js +55 -55
  38. package/vuese-generator.js +65 -65
  39. package/dist/data/pmr-sample.json +0 -3181
  40. package/public/data/pmr-sample.json +0 -3181
  41. package/src/components/FlatmapDatasetCard.vue +0 -171
  42. package/src/components/allPaths.js +0 -5928
  43. package/src/components/pmrTest.js +0 -4
@@ -1,367 +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
- <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>
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>