@abi-software/mapintegratedvuer 0.7.2-vue3.0-alpha.0 → 1.0.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 (65) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +150 -150
  3. package/assets/styleguide.css +19 -19
  4. package/cypress.config.js +23 -23
  5. package/dist/index.html +17 -17
  6. package/dist/mapintegratedvuer.js +74203 -73758
  7. package/dist/mapintegratedvuer.umd.cjs +878 -515
  8. package/dist/style.css +1 -1
  9. package/package.json +134 -135
  10. package/public/index.html +17 -17
  11. package/reporter-config.json +9 -9
  12. package/src/App.vue +245 -245
  13. package/src/assets/_variables.scss +43 -43
  14. package/src/assets/fonts/mapicon-species.eot +0 -0
  15. package/src/assets/fonts/mapicon-species.ttf +0 -0
  16. package/src/assets/fonts/mapicon-species.woff +0 -0
  17. package/src/assets/header-icon.scss +67 -67
  18. package/src/assets/mapicon-species-style.css +41 -41
  19. package/src/assets/styles.scss +9 -9
  20. package/src/components/ContentBar.vue +376 -376
  21. package/src/components/ContentVuer.vue +217 -217
  22. package/src/components/ContextCard.vue +385 -385
  23. package/src/components/ContextHelp.vue +73 -73
  24. package/src/components/CustomSplitter.vue +151 -151
  25. package/src/components/DatasetHeader.vue +97 -97
  26. package/src/components/DialogToolbarContent.vue +464 -464
  27. package/src/components/EventBus.js +3 -3
  28. package/src/components/FlatmapContextCard.vue +134 -134
  29. package/src/components/MapContent.vue +328 -333
  30. package/src/components/ResizeSensor.vue +47 -47
  31. package/src/components/SearchControls.vue +115 -115
  32. package/src/components/SimulatedData.js +721 -721
  33. package/src/components/SplitDialog.vue +287 -287
  34. package/src/components/SplitFlow.vue +414 -414
  35. package/src/components/index.js +7 -7
  36. package/src/components/markerZoomLevelsHardCoded.js +255 -255
  37. package/src/components/scripts/utilities.js +173 -173
  38. package/src/components/viewers/Flatmap.vue +145 -145
  39. package/src/components/viewers/Iframe.vue +31 -31
  40. package/src/components/viewers/MultiFlatmap.vue +384 -384
  41. package/src/components/viewers/Plot.vue +23 -23
  42. package/src/components/viewers/Scaffold.vue +198 -198
  43. package/src/components/viewers/Simulation.vue +21 -21
  44. package/src/icons/yellowstar.js +1 -1
  45. package/src/main.js +31 -31
  46. package/src/mixins/ContentMixin.js +438 -438
  47. package/src/mixins/DynamicMarkerMixin.js +88 -88
  48. package/src/mixins/S3Bucket.vue +37 -37
  49. package/src/stores/entries.js +40 -40
  50. package/src/stores/index.js +23 -23
  51. package/src/stores/settings.js +144 -144
  52. package/src/stores/splitFlow.js +523 -523
  53. package/static.json +7 -7
  54. package/vite.config.js +70 -70
  55. package/vite.static-build.js +12 -12
  56. package/vitest.workspace.js +3 -3
  57. package/vuese-generator.js +65 -65
  58. package/assets/gazelle-icons-no-background.css +0 -32
  59. package/dist/matterport.pdf +0 -0
  60. package/dist/test.txt +0 -0
  61. package/public/matterport.pdf +0 -0
  62. package/public/test.txt +0 -0
  63. package/q.json +0 -690
  64. package/src/mixins/RetrieveContextCardMixin.js +0 -82
  65. package/tsconfig.json +0 -19
@@ -1,376 +1,376 @@
1
- <template>
2
- <div>
3
- <div class="toolbar-flex-container">
4
- <el-select
5
- v-if="entries.length > 1"
6
- :teleported="false"
7
- :model-value="entry.id"
8
- placeholder="Select"
9
- class="select-box"
10
- popper-class="viewer_dropdown"
11
- @change="viewerChanged($event)"
12
- >
13
- <el-option
14
- v-for="entry in entries"
15
- :key="entry.id"
16
- :label="getEntryTitle(entry)"
17
- :value="entry.id"
18
- />
19
- </el-select>
20
- <div v-else class="toolbar-title">
21
- {{ getEntryTitle(entry) }}
22
- </div>
23
- </div>
24
- <el-row class="icon-group">
25
- <div v-show="contextCardEntry && contextCardVisible" class="hide" @click="contextCardVisible = false">
26
- Hide information
27
- <el-icon><el-icon-arrow-up /></el-icon>
28
- </div>
29
- <div v-show="contextCardEntry && !contextCardVisible" class="hide" @click="contextCardVisible = true">
30
- Show information
31
- <el-icon><el-icon-arrow-down /></el-icon>
32
- </div>
33
-
34
- <el-popover
35
- placement="bottom"
36
- :teleported="false"
37
- trigger="manual"
38
- :width="setPopperWidth(slot.id)"
39
- :offset="0"
40
- popper-class="context-card-popover"
41
- :popper-options="popperOptions"
42
- :visible="contextCardVisible"
43
- >
44
- <template #default v-if="contextCardEntry">
45
- <flatmap-context-card
46
- class="flatmap-context-card"
47
- v-if="(contextCardEntry.type == 'Flatmap' ||
48
- contextCardEntry.type == 'MultiFlatmap')"
49
- :mapImpProv="contextCardEntry.mapImpProv"
50
- />
51
- <context-card
52
- v-if="contextCardEntry.type.toLowerCase() == 'scaffold'"
53
- :entry="contextCardEntry"
54
- :envVars="envVars"
55
- class="context-card"
56
- @context-ready="contextCardVisible = true"
57
- @scaffold-view-clicked="$emit('scaffold-view-clicked', $event)"
58
- />
59
- </template>
60
- <template #reference>
61
- <el-icon
62
- class="info-icon"
63
- @click="contextCardVisible = !contextCardVisible"
64
- v-show="contextCardEntry">
65
- <el-icon-info-filled/>
66
- </el-icon>
67
- </template>
68
- </el-popover>
69
- <el-popover class="tooltip" content="Close and remove" placement="bottom-end" :show-after="helpDelay"
70
- :teleported=false trigger="hover" popper-class="header-popper" >
71
- <template #reference>
72
- <map-svg-icon icon="close" class="header-icon"
73
- v-show="(activeView !== 'singlepanel') && (entry.mode !== 'main')"
74
- @click="closeAndRemove()"/>
75
- </template>
76
- </el-popover>
77
-
78
- </el-row>
79
-
80
- </div>
81
- </template>
82
-
83
-
84
- <script>
85
- /* eslint-disable no-alert, no-console */
86
- import EventBus from './EventBus';
87
- import { MapSvgIcon } from '@abi-software/svg-sprite';
88
- import { mapStores } from 'pinia';
89
- import { useEntriesStore } from '../stores/entries';
90
- import { useSettingsStore } from '../stores/settings';
91
- import { useSplitFlowStore } from '../stores/splitFlow';
92
- import ContextCard from "./ContextCard.vue";
93
- import FlatmapContextCard from './FlatmapContextCard.vue';
94
- import {
95
- ArrowDown as ElIconArrowDown,
96
- ArrowUp as ElIconArrowUp,
97
- InfoFilled as ElIconInfoFilled,
98
- } from '@element-plus/icons-vue'
99
- import {
100
- ElInput as Input,
101
- ElOption as Option,
102
- ElPopover as Popover,
103
- ElRow as Row,
104
- ElSelect as Select,
105
- } from "element-plus";
106
-
107
- export default {
108
- name: "ContentBar",
109
- components: {
110
- ElIconArrowDown,
111
- ElIconArrowUp,
112
- ElIconInfoFilled,
113
- Input,
114
- Option,
115
- Popover,
116
- Row,
117
- Select,
118
- ContextCard,
119
- FlatmapContextCard,
120
- MapSvgIcon,
121
- },
122
- props: {
123
- entry: Object,
124
- },
125
- data: function() {
126
- return {
127
- contextCardVisible: false,
128
- slot:{
129
-
130
- },
131
- boundariesElement: null, // this is set @vue:mounted by the parent component via the 'setBoundary' method
132
- showDetails: true,
133
- contextCardEntry: undefined,
134
- }
135
- },
136
- computed: {
137
- ...mapStores(useEntriesStore, useSettingsStore, useSplitFlowStore),
138
- helpDelay() {
139
- return this.settingsStore.helpDelay;
140
- },
141
- activeView: function() {
142
- return this.splitFlowStore.activeView;
143
- },
144
- envVars: function () {
145
- return {
146
- API_LOCATION: this.settingsStore.sparcApi,
147
- ALGOLIA_INDEX: this.settingsStore.algoliaIndex,
148
- ALGOLIA_KEY: this.settingsStore.algoliaKey,
149
- ALGOLIA_ID: this.settingsStore.algoliaId,
150
- PENNSIEVE_API_LOCATION: this.settingsStore.pennsieveApi,
151
- NL_LINK_PREFIX: this.settingsStore.nlLinkPrefix,
152
- ROOT_URL: this.settingsStore.rootUrl,
153
- };
154
- },
155
- popperOptions: function() {
156
- return {
157
- preventOverflow: {
158
- enabled: true,
159
- boundary: this.boundariesElement,
160
- }
161
- }
162
- },
163
- entries: function() {
164
- return this.entriesStore.entries;
165
- },
166
- },
167
- methods: {
168
- closeAndRemove: function() {
169
- this.splitFlowStore.closeSlot({ id: this.entry.id, entries: this.entries});
170
- EventBus.emit("RemoveEntryRequest", this.entry.id);
171
- },
172
- getEntryTitle: function(entry) {
173
- if (entry) {
174
- let title = entry.label ? entry.label + " ": '';
175
- let type = entry.type;
176
- if (type == "Scaffold")
177
- type = "3D Scaffold";
178
- title += type;
179
- if (entry.datasetId)
180
- title += " (" + entry.datasetId + ")";
181
- else if (entry.discoverId)
182
- title += " (" + entry.discoverId + ")";
183
- return title;
184
- }
185
- return "Viewer";
186
- },
187
- viewerChanged: function(value) {
188
- if (this.entry.id && this.entry.id != value) {
189
- this.splitFlowStore.assignOrSwapPaneWithIds({
190
- source: this.entry.id,
191
- target: value
192
- });
193
- this.$nextTick(() => {
194
- setTimeout(() => {
195
- this.$emit("chooser-changed");
196
- }, 1200);
197
- });
198
- //this.contextCardVisible = false; // Hide all context cards when switching viewers
199
- }
200
- },
201
- // setPopper with is needed as the flatmap context card does not have an image and has smaller with
202
- setPopperWidth: function(slotId) {
203
- let entry = this.entries.find(entry => entry.id === slotId);
204
- if (entry) {
205
- if (entry.type == "Flatmap" || entry.type == "MultiFlatmap") {
206
- return "240px";
207
- } else {
208
- return "440px";
209
- }
210
- }
211
- },
212
- // Set the boundaries element for the popper
213
- setBoundary: function(boundaryElement) {
214
- this.boundariesElement = boundaryElement;
215
- },
216
- setupFlatmapContextCard: function(mapImpProv) {
217
- // flatmap context update
218
- this.contextCardVisible = false; // hide the context card when new map loads
219
- let contextEntry = Object.assign({mapImpProv: mapImpProv.prov}, this.entry);
220
- this.contextCardEntry = contextEntry;
221
- },
222
- setupScaffoldContextCard: function(){
223
- // scaffold context update
224
- if (this.entry.contextCardUrl) {
225
- this.contextCardEntry = { ...this.entry};
226
- }
227
- }
228
- },
229
- mounted: function() {
230
- this.setupScaffoldContextCard();
231
- }
232
- };
233
- </script>
234
-
235
-
236
- <!-- Add "scoped" attribute to limit CSS to this component only -->
237
- <style scoped lang="scss">
238
- @use "../assets/header-icon.scss";
239
-
240
-
241
- .toolbar-title {
242
- width: 160px;
243
- height: 20px;
244
- color: $app-primary-color;
245
- font-size: 14px;
246
- font-weight: normal;
247
- line-height: 20px;
248
- margin-left: 1rem;
249
- margin-top: 4px;
250
- }
251
-
252
- .toolbar-flex-container {
253
- display:flex;
254
- flex-direction: row;
255
- .select-box {
256
- width: 177px;
257
- height: 26px;
258
- border-radius: 4px;
259
- border: 1px solid rgb(144, 147, 153);
260
- background-color: #fff;
261
- font-weight: 500;
262
- color: rgb(48, 49, 51);
263
- margin-left: 8px;
264
- margin-top: 3px;
265
- margin-bottom: 2px;
266
- z-index: 5;
267
- :deep(.el-select__wrapper) {
268
- width:177px;
269
- color: $app-primary-color;
270
- height: 26px;
271
- min-height: 26px;
272
- line-height: 26px;
273
- padding-left: 4px;
274
- padding-right: 8px;
275
- background-color: #fff;
276
- border-style: none;
277
- span {
278
- color: $app-primary-color;
279
- }
280
- }
281
-
282
- :deep(.el-input__icon) {
283
- line-height: 24px;
284
- color: $lightGrey;
285
- }
286
- }
287
- i .select-box :deep(.el-input__icon) {
288
- color: rgb(48, 49, 51);
289
- height: 24px;
290
- padding-left: 8px;
291
- padding-right: 8px;
292
- }
293
- .text {
294
- margin-left: 8px;
295
- margin-top: 7px;
296
- font-weight: 500;
297
- -moz-user-select: none;
298
- -webkit-user-select: none;
299
- -ms-user-select: none;
300
- user-select: none;
301
- line-height:18px;
302
- }
303
- .title {
304
- width: 140px;
305
- color: $app-primary-color;
306
- }
307
- }
308
-
309
- .viewer_dropdown {
310
- z-index: 5;
311
- .el-select-dropdown__item {
312
- white-space: nowrap;
313
- text-align: left;
314
- &.is-selected {
315
- color: $app-primary-color;
316
- font-weight: normal;
317
- }
318
- }
319
- }
320
-
321
- .hide{
322
- color: $app-primary-color;
323
- cursor: pointer;
324
- margin-right: 6px;
325
- margin-top: 8px;
326
- }
327
-
328
- .icon-group {
329
- position: relative;
330
- top: auto;
331
- font-size: 12px;
332
- }
333
-
334
- .info-icon {
335
- margin-top: 2px;
336
- margin-right: 8px;
337
- font-size: 28px;
338
- color: $app-primary-color;
339
- cursor: pointer;
340
- &::before { // since the icon is a font, we need to adjust the vertical alignment
341
- position: relative;
342
- top: -2px;
343
- }
344
- }
345
-
346
- .flatmap-context-card {
347
- width: 240px;
348
- }
349
-
350
- .context-card {
351
- width: 440px;
352
- }
353
-
354
- :deep(.header-popper.el-popover.el-popper) {
355
- padding: 6px 4px;
356
- font-size:12px;
357
- color: rgb(48, 49, 51);
358
- background-color: #f3ecf6;
359
- border: 1px solid $app-primary-color;
360
- white-space: nowrap;
361
- min-width: unset;
362
- .el-popper__arrow {
363
- &:before {
364
- border-color: $app-primary-color;
365
- background-color: #f3ecf6;
366
- }
367
- }
368
- }
369
-
370
- :deep(.context-card-popover.el-popover.el-popper) {
371
- max-width: calc(100vw - 100px);
372
- padding-right: 0px;
373
- width: unset!important;
374
- background: #fff!important;
375
- }
376
- </style>
1
+ <template>
2
+ <div>
3
+ <div class="toolbar-flex-container">
4
+ <el-select
5
+ v-if="entries.length > 1"
6
+ :teleported="false"
7
+ :model-value="entry.id"
8
+ placeholder="Select"
9
+ class="select-box"
10
+ popper-class="viewer_dropdown"
11
+ @change="viewerChanged($event)"
12
+ >
13
+ <el-option
14
+ v-for="entry in entries"
15
+ :key="entry.id"
16
+ :label="getEntryTitle(entry)"
17
+ :value="entry.id"
18
+ />
19
+ </el-select>
20
+ <div v-else class="toolbar-title">
21
+ {{ getEntryTitle(entry) }}
22
+ </div>
23
+ </div>
24
+ <el-row class="icon-group">
25
+ <div v-show="contextCardEntry && contextCardVisible" class="hide" @click="contextCardVisible = false">
26
+ Hide information
27
+ <el-icon><el-icon-arrow-up /></el-icon>
28
+ </div>
29
+ <div v-show="contextCardEntry && !contextCardVisible" class="hide" @click="contextCardVisible = true">
30
+ Show information
31
+ <el-icon><el-icon-arrow-down /></el-icon>
32
+ </div>
33
+
34
+ <el-popover
35
+ placement="bottom"
36
+ :teleported="false"
37
+ trigger="manual"
38
+ :width="setPopperWidth(slot.id)"
39
+ :offset="0"
40
+ popper-class="context-card-popover"
41
+ :popper-options="popperOptions"
42
+ :visible="contextCardVisible"
43
+ >
44
+ <template #default v-if="contextCardEntry">
45
+ <flatmap-context-card
46
+ class="flatmap-context-card"
47
+ v-if="(contextCardEntry.type == 'Flatmap' ||
48
+ contextCardEntry.type == 'MultiFlatmap')"
49
+ :mapImpProv="contextCardEntry.mapImpProv"
50
+ />
51
+ <context-card
52
+ v-if="contextCardEntry.type.toLowerCase() == 'scaffold'"
53
+ :entry="contextCardEntry"
54
+ :envVars="envVars"
55
+ class="context-card"
56
+ @context-ready="contextCardVisible = true"
57
+ @scaffold-view-clicked="$emit('scaffold-view-clicked', $event)"
58
+ />
59
+ </template>
60
+ <template #reference>
61
+ <el-icon
62
+ class="info-icon"
63
+ @click="contextCardVisible = !contextCardVisible"
64
+ v-show="contextCardEntry">
65
+ <el-icon-info-filled/>
66
+ </el-icon>
67
+ </template>
68
+ </el-popover>
69
+ <el-popover class="tooltip" content="Close and remove" placement="bottom-end" :show-after="helpDelay"
70
+ :teleported=false trigger="hover" popper-class="header-popper" >
71
+ <template #reference>
72
+ <map-svg-icon icon="close" class="header-icon"
73
+ v-show="(activeView !== 'singlepanel') && (entry.mode !== 'main')"
74
+ @click="closeAndRemove()"/>
75
+ </template>
76
+ </el-popover>
77
+
78
+ </el-row>
79
+
80
+ </div>
81
+ </template>
82
+
83
+
84
+ <script>
85
+ /* eslint-disable no-alert, no-console */
86
+ import EventBus from './EventBus';
87
+ import { MapSvgIcon } from '@abi-software/svg-sprite';
88
+ import { mapStores } from 'pinia';
89
+ import { useEntriesStore } from '../stores/entries';
90
+ import { useSettingsStore } from '../stores/settings';
91
+ import { useSplitFlowStore } from '../stores/splitFlow';
92
+ import ContextCard from "./ContextCard.vue";
93
+ import FlatmapContextCard from './FlatmapContextCard.vue';
94
+ import {
95
+ ArrowDown as ElIconArrowDown,
96
+ ArrowUp as ElIconArrowUp,
97
+ InfoFilled as ElIconInfoFilled,
98
+ } from '@element-plus/icons-vue'
99
+ import {
100
+ ElInput as Input,
101
+ ElOption as Option,
102
+ ElPopover as Popover,
103
+ ElRow as Row,
104
+ ElSelect as Select,
105
+ } from "element-plus";
106
+
107
+ export default {
108
+ name: "ContentBar",
109
+ components: {
110
+ ElIconArrowDown,
111
+ ElIconArrowUp,
112
+ ElIconInfoFilled,
113
+ Input,
114
+ Option,
115
+ Popover,
116
+ Row,
117
+ Select,
118
+ ContextCard,
119
+ FlatmapContextCard,
120
+ MapSvgIcon,
121
+ },
122
+ props: {
123
+ entry: Object,
124
+ },
125
+ data: function() {
126
+ return {
127
+ contextCardVisible: false,
128
+ slot:{
129
+
130
+ },
131
+ boundariesElement: null, // this is set @vue:mounted by the parent component via the 'setBoundary' method
132
+ showDetails: true,
133
+ contextCardEntry: undefined,
134
+ }
135
+ },
136
+ computed: {
137
+ ...mapStores(useEntriesStore, useSettingsStore, useSplitFlowStore),
138
+ helpDelay() {
139
+ return this.settingsStore.helpDelay;
140
+ },
141
+ activeView: function() {
142
+ return this.splitFlowStore.activeView;
143
+ },
144
+ envVars: function () {
145
+ return {
146
+ API_LOCATION: this.settingsStore.sparcApi,
147
+ ALGOLIA_INDEX: this.settingsStore.algoliaIndex,
148
+ ALGOLIA_KEY: this.settingsStore.algoliaKey,
149
+ ALGOLIA_ID: this.settingsStore.algoliaId,
150
+ PENNSIEVE_API_LOCATION: this.settingsStore.pennsieveApi,
151
+ NL_LINK_PREFIX: this.settingsStore.nlLinkPrefix,
152
+ ROOT_URL: this.settingsStore.rootUrl,
153
+ };
154
+ },
155
+ popperOptions: function() {
156
+ return {
157
+ preventOverflow: {
158
+ enabled: true,
159
+ boundary: this.boundariesElement,
160
+ }
161
+ }
162
+ },
163
+ entries: function() {
164
+ return this.entriesStore.entries;
165
+ },
166
+ },
167
+ methods: {
168
+ closeAndRemove: function() {
169
+ this.splitFlowStore.closeSlot({ id: this.entry.id, entries: this.entries});
170
+ EventBus.emit("RemoveEntryRequest", this.entry.id);
171
+ },
172
+ getEntryTitle: function(entry) {
173
+ if (entry) {
174
+ let title = entry.label ? entry.label + " ": '';
175
+ let type = entry.type;
176
+ if (type == "Scaffold")
177
+ type = "3D Scaffold";
178
+ title += type;
179
+ if (entry.datasetId)
180
+ title += " (" + entry.datasetId + ")";
181
+ else if (entry.discoverId)
182
+ title += " (" + entry.discoverId + ")";
183
+ return title;
184
+ }
185
+ return "Viewer";
186
+ },
187
+ viewerChanged: function(value) {
188
+ if (this.entry.id && this.entry.id != value) {
189
+ this.splitFlowStore.assignOrSwapPaneWithIds({
190
+ source: this.entry.id,
191
+ target: value
192
+ });
193
+ this.$nextTick(() => {
194
+ setTimeout(() => {
195
+ this.$emit("chooser-changed");
196
+ }, 1200);
197
+ });
198
+ //this.contextCardVisible = false; // Hide all context cards when switching viewers
199
+ }
200
+ },
201
+ // setPopper with is needed as the flatmap context card does not have an image and has smaller with
202
+ setPopperWidth: function(slotId) {
203
+ let entry = this.entries.find(entry => entry.id === slotId);
204
+ if (entry) {
205
+ if (entry.type == "Flatmap" || entry.type == "MultiFlatmap") {
206
+ return "240px";
207
+ } else {
208
+ return "440px";
209
+ }
210
+ }
211
+ },
212
+ // Set the boundaries element for the popper
213
+ setBoundary: function(boundaryElement) {
214
+ this.boundariesElement = boundaryElement;
215
+ },
216
+ setupFlatmapContextCard: function(mapImpProv) {
217
+ // flatmap context update
218
+ this.contextCardVisible = false; // hide the context card when new map loads
219
+ let contextEntry = Object.assign({mapImpProv: mapImpProv.prov}, this.entry);
220
+ this.contextCardEntry = contextEntry;
221
+ },
222
+ setupScaffoldContextCard: function(){
223
+ // scaffold context update
224
+ if (this.entry.contextCardUrl) {
225
+ this.contextCardEntry = { ...this.entry};
226
+ }
227
+ }
228
+ },
229
+ mounted: function() {
230
+ this.setupScaffoldContextCard();
231
+ }
232
+ };
233
+ </script>
234
+
235
+
236
+ <!-- Add "scoped" attribute to limit CSS to this component only -->
237
+ <style scoped lang="scss">
238
+ @use "../assets/header-icon.scss";
239
+
240
+
241
+ .toolbar-title {
242
+ width: 160px;
243
+ height: 20px;
244
+ color: $app-primary-color;
245
+ font-size: 14px;
246
+ font-weight: normal;
247
+ line-height: 20px;
248
+ margin-left: 1rem;
249
+ margin-top: 4px;
250
+ }
251
+
252
+ .toolbar-flex-container {
253
+ display:flex;
254
+ flex-direction: row;
255
+ .select-box {
256
+ width: 177px;
257
+ height: 26px;
258
+ border-radius: 4px;
259
+ border: 1px solid rgb(144, 147, 153);
260
+ background-color: #fff;
261
+ font-weight: 500;
262
+ color: rgb(48, 49, 51);
263
+ margin-left: 8px;
264
+ margin-top: 3px;
265
+ margin-bottom: 2px;
266
+ z-index: 5;
267
+ :deep(.el-select__wrapper) {
268
+ width:177px;
269
+ color: $app-primary-color;
270
+ height: 26px;
271
+ min-height: 26px;
272
+ line-height: 26px;
273
+ padding-left: 4px;
274
+ padding-right: 8px;
275
+ background-color: #fff;
276
+ border-style: none;
277
+ span {
278
+ color: $app-primary-color;
279
+ }
280
+ }
281
+
282
+ :deep(.el-input__icon) {
283
+ line-height: 24px;
284
+ color: $lightGrey;
285
+ }
286
+ }
287
+ i .select-box :deep(.el-input__icon) {
288
+ color: rgb(48, 49, 51);
289
+ height: 24px;
290
+ padding-left: 8px;
291
+ padding-right: 8px;
292
+ }
293
+ .text {
294
+ margin-left: 8px;
295
+ margin-top: 7px;
296
+ font-weight: 500;
297
+ -moz-user-select: none;
298
+ -webkit-user-select: none;
299
+ -ms-user-select: none;
300
+ user-select: none;
301
+ line-height:18px;
302
+ }
303
+ .title {
304
+ width: 140px;
305
+ color: $app-primary-color;
306
+ }
307
+ }
308
+
309
+ .viewer_dropdown {
310
+ z-index: 5;
311
+ .el-select-dropdown__item {
312
+ white-space: nowrap;
313
+ text-align: left;
314
+ &.is-selected {
315
+ color: $app-primary-color;
316
+ font-weight: normal;
317
+ }
318
+ }
319
+ }
320
+
321
+ .hide{
322
+ color: $app-primary-color;
323
+ cursor: pointer;
324
+ margin-right: 6px;
325
+ margin-top: 8px;
326
+ }
327
+
328
+ .icon-group {
329
+ position: relative;
330
+ top: auto;
331
+ font-size: 12px;
332
+ }
333
+
334
+ .info-icon {
335
+ margin-top: 2px;
336
+ margin-right: 8px;
337
+ font-size: 28px;
338
+ color: $app-primary-color;
339
+ cursor: pointer;
340
+ &::before { // since the icon is a font, we need to adjust the vertical alignment
341
+ position: relative;
342
+ top: -2px;
343
+ }
344
+ }
345
+
346
+ .flatmap-context-card {
347
+ width: 240px;
348
+ }
349
+
350
+ .context-card {
351
+ width: 440px;
352
+ }
353
+
354
+ :deep(.header-popper.el-popover.el-popper) {
355
+ padding: 6px 4px;
356
+ font-size:12px;
357
+ color: rgb(48, 49, 51);
358
+ background-color: #f3ecf6;
359
+ border: 1px solid $app-primary-color;
360
+ white-space: nowrap;
361
+ min-width: unset;
362
+ .el-popper__arrow {
363
+ &:before {
364
+ border-color: $app-primary-color;
365
+ background-color: #f3ecf6;
366
+ }
367
+ }
368
+ }
369
+
370
+ :deep(.context-card-popover.el-popover.el-popper) {
371
+ max-width: calc(100vw - 100px);
372
+ padding-right: 0px;
373
+ width: unset!important;
374
+ background: #fff!important;
375
+ }
376
+ </style>