@abi-software/mapintegratedvuer 1.21.1 → 1.21.2

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 (68) hide show
  1. package/README.md +23 -5
  2. package/assets/location-icon.html +33 -1
  3. package/assets/styleguide.css +18 -18
  4. package/cypress.config.js +7 -9
  5. package/dist/{ConnectivityGraph-CZMROk9r.js → ConnectivityGraph-DrSaFEDd.js} +3 -3
  6. package/dist/{ContentMixin-Vn34n5t2.js → ContentMixin-Xg0PjBqG.js} +2 -2
  7. package/dist/{DynamicMarkerMixin-BS6t7w_i.js → DynamicMarkerMixin-D5Ruu_hd.js} +1 -1
  8. package/dist/{Flatmap-BejxA0uz.js → Flatmap-CxN8TbnS.js} +4 -4
  9. package/dist/{Iframe-BWbhTjCR.js → Iframe-CkgbLfJt.js} +4 -4
  10. package/dist/{MultiFlatmap-nlmsH-Ib.js → MultiFlatmap-CkejvAJe.js} +4 -4
  11. package/dist/{Plot-ChbPsDZX.js → Plot-BfwoipSl.js} +2 -2
  12. package/dist/{Scaffold-C6f7c7Ha.js → Scaffold-DCqsTKpg.js} +4 -4
  13. package/dist/{Simulation-DcJScRYo.js → Simulation-BOtU3kTT.js} +2 -2
  14. package/dist/{connectivities-UXTqf7_0.js → connectivities-DyeS8w0c.js} +126 -95
  15. package/dist/index.html +9 -6
  16. package/dist/mapintegratedvuer.js +5489 -5578
  17. package/dist/mapintegratedvuer.umd.cjs +196 -196
  18. package/dist/style.css +1 -1
  19. package/eslint.config.js +39 -15
  20. package/package.json +11 -5
  21. package/public/index.html +9 -6
  22. package/src/App.vue +234 -249
  23. package/src/assets/_variables.scss +12 -10
  24. package/src/assets/header-icon.scss +8 -9
  25. package/src/assets/mapicon-species-style.css +10 -8
  26. package/src/assets/styles.scss +1 -1
  27. package/src/components/ContentBar.vue +98 -106
  28. package/src/components/ContentVuer.vue +36 -39
  29. package/src/components/ContextCard.vue +238 -199
  30. package/src/components/ContextHelp.vue +22 -26
  31. package/src/components/CustomSplitter.vue +32 -43
  32. package/src/components/DatasetHeader.vue +37 -41
  33. package/src/components/DialogToolbarContent.vue +292 -256
  34. package/src/components/FlatmapContextCard.vue +52 -57
  35. package/src/components/MapContent.vue +90 -86
  36. package/src/components/ResizeSensor.vue +8 -13
  37. package/src/components/SearchControls.vue +26 -35
  38. package/src/components/SimulatedData.js +196 -219
  39. package/src/components/SplitDialog.vue +139 -129
  40. package/src/components/SplitFlow.vue +421 -237
  41. package/src/components/index.js +1 -3
  42. package/src/components/scripts/simulation_data.js +393 -397
  43. package/src/components/scripts/utilities.js +108 -78
  44. package/src/components/viewers/CellDLViewer.vue +9 -9
  45. package/src/components/viewers/ConnectivityGraph.vue +9 -12
  46. package/src/components/viewers/Flatmap.vue +23 -25
  47. package/src/components/viewers/Iframe.vue +8 -10
  48. package/src/components/viewers/MultiFlatmap.vue +59 -69
  49. package/src/components/viewers/Plot.vue +6 -7
  50. package/src/components/viewers/Scaffold.vue +73 -63
  51. package/src/components/viewers/Simulation.vue +10 -15
  52. package/src/main.js +16 -21
  53. package/src/mixins/ContentMixin.js +208 -178
  54. package/src/mixins/DynamicMarkerMixin.js +14 -18
  55. package/src/mixins/RetrieveContextCardMixin.js +35 -30
  56. package/src/mixins/S3Bucket.vue +10 -13
  57. package/src/services/knowledgeMapping.js +53 -53
  58. package/src/services/tagging.js +4 -4
  59. package/src/stores/connectivities.js +46 -8
  60. package/src/stores/entries.js +7 -9
  61. package/src/stores/index.js +7 -7
  62. package/src/stores/settings.js +23 -31
  63. package/src/stores/splitFlow.js +364 -298
  64. package/vite.bundle-build.js +24 -26
  65. package/vite.config.js +22 -21
  66. package/vite.static-build.js +4 -4
  67. package/vitest.workspace.js +1 -3
  68. package/vuese-generator.js +47 -55
@@ -2,8 +2,8 @@
2
2
  <div class="header">
3
3
  <map-svg-sprite-color />
4
4
  <search-controls
5
- @search="$emit('local-search', {term: $event});"
6
- @fetch-suggestions="$emit('fetch-suggestions', {data: $event});"
5
+ @search="$emit('local-search', { term: $event })"
6
+ @fetch-suggestions="$emit('fetch-suggestions', { data: $event })"
7
7
  :failedSearch="failedSearch"
8
8
  />
9
9
 
@@ -19,62 +19,66 @@
19
19
  :disabled="!mapLoaded"
20
20
  placement="bottom-end"
21
21
  >
22
- <span class="el-dropdown-link">
23
- <el-icon class="el-icon--left" v-if="globalSettings.viewingMode === 'Exploration'">
24
- <el-icon-compass />
25
- </el-icon>
26
- <el-icon class="el-icon--left" v-if="globalSettings.viewingMode === 'Neuron Connection'">
27
- <el-icon-share />
28
- </el-icon>
29
- <el-icon class="el-icon--left" v-if="globalSettings.viewingMode === 'Annotation'">
30
- <el-icon-edit-pen />
31
- </el-icon>
32
- {{ globalSettings.viewingMode }}
33
- <template v-if="globalSettings.viewingMode === 'Neuron Connection'">
34
- &nbsp;
35
- <small class="toolbar-dropdown-badge"><em>{{ globalSettings.connectionType }}</em></small>
36
- </template>
37
- <el-icon class="el-icon--right">
38
- <el-icon-arrow-down />
39
- </el-icon>
40
- </span>
41
- <template #dropdown>
42
- <h4>Viewing Mode:</h4>
43
- <el-dropdown-menu>
44
- <el-dropdown-item v-for="(value, key, index) in viewingModes"
45
- :key="key"
46
- @click="updateViewingMode($event, key)"
47
- :class="{'is-selected': globalSettings.viewingMode === key }"
22
+ <span class="el-dropdown-link">
23
+ <el-icon class="el-icon--left" v-if="globalSettings.viewingMode === 'Exploration'">
24
+ <el-icon-compass />
25
+ </el-icon>
26
+ <el-icon
27
+ class="el-icon--left"
28
+ v-if="globalSettings.viewingMode === 'Neuron Connection'"
48
29
  >
49
- <h5>
50
- <el-icon class="el-icon--left" v-if="key === 'Exploration'">
51
- <el-icon-compass />
52
- </el-icon>
53
- <el-icon class="el-icon--left" v-if="key === 'Neuron Connection'">
54
- <el-icon-share />
55
- </el-icon>
56
- <el-icon class="el-icon--left" v-if="key === 'Annotation'">
57
- <el-icon-edit-pen />
58
- </el-icon>
59
- {{ key }}
60
- </h5>
61
- <small class="el-option__description">
62
- <template v-if="key === 'Annotation'">
63
- <template v-if="authorisedUser">
64
- {{ value[1] }}
30
+ <el-icon-share />
31
+ </el-icon>
32
+ <el-icon class="el-icon--left" v-if="globalSettings.viewingMode === 'Annotation'">
33
+ <el-icon-edit-pen />
34
+ </el-icon>
35
+ {{ globalSettings.viewingMode }}
36
+ <template v-if="globalSettings.viewingMode === 'Neuron Connection'">
37
+ &nbsp;
38
+ <small class="toolbar-dropdown-badge">
39
+ <em>{{ globalSettings.connectionType }}</em>
40
+ </small>
41
+ </template>
42
+ <el-icon class="el-icon--right">
43
+ <el-icon-arrow-down />
44
+ </el-icon>
45
+ </span>
46
+ <template #dropdown>
47
+ <h4>Viewing Mode:</h4>
48
+ <el-dropdown-menu>
49
+ <el-dropdown-item
50
+ v-for="(value, key) in viewingModes"
51
+ :key="key"
52
+ @click="updateViewingMode($event, key)"
53
+ :class="{ 'is-selected': globalSettings.viewingMode === key }"
54
+ >
55
+ <h5>
56
+ <el-icon class="el-icon--left" v-if="key === 'Exploration'">
57
+ <el-icon-compass />
58
+ </el-icon>
59
+ <el-icon class="el-icon--left" v-if="key === 'Neuron Connection'">
60
+ <el-icon-share />
61
+ </el-icon>
62
+ <el-icon class="el-icon--left" v-if="key === 'Annotation'">
63
+ <el-icon-edit-pen />
64
+ </el-icon>
65
+ {{ key }}
66
+ </h5>
67
+ <small class="el-option__description">
68
+ <template v-if="key === 'Annotation'">
69
+ <template v-if="authorisedUser">
70
+ {{ value[1] }}
71
+ </template>
72
+ <template v-else>
73
+ {{ value[0] }}
74
+ </template>
75
+ <template v-if="offlineAnnotationEnabled">(Anonymous annotate)</template>
65
76
  </template>
66
77
  <template v-else>
67
- {{ value[0] }}
78
+ {{ value }}
68
79
  </template>
69
- <template v-if="offlineAnnotationEnabled">
70
- (Anonymous annotate)
71
- </template>
72
- </template>
73
- <template v-else>
74
- {{ value }}
75
- </template>
76
- </small>
77
- <!-- <template v-if="key === 'Exploration'">
80
+ </small>
81
+ <!-- <template v-if="key === 'Exploration'">
78
82
  <div class="setting-popover-block" v-if="'displayMarkers' in globalSettings">
79
83
  <el-popover
80
84
  class="tooltip"
@@ -97,36 +101,36 @@
97
101
  </el-popover>
98
102
  </div>
99
103
  </template> -->
100
- <template v-if="key === 'Neuron Connection'">
101
- <div class="setting-popover-block" v-if="'connectionType' in globalSettings">
102
- <el-radio-group
103
- v-model="globalSettings.connectionType"
104
- @change="updateGlobalSettings('connectionType')"
105
- >
106
- <el-radio-button value="Origin" size="small">Origin</el-radio-button>
107
- <el-radio-button value="Via" size="small">Via</el-radio-button>
108
- <el-radio-button value="Destination" size="small">Destination</el-radio-button>
109
- <el-radio-button value="All" size="small">All</el-radio-button>
110
- </el-radio-group>
111
- <div class="el-radio__description">
112
- <small v-if="globalSettings.connectionType === 'Origin'">
113
- Neuron populations beginning at a location.
114
- </small>
115
- <small v-else-if="globalSettings.connectionType === 'Via'">
116
- Neuron populations that run through a location.
117
- </small>
118
- <small v-else-if="globalSettings.connectionType === 'Destination'">
119
- Neuron populations terminating at a location.
120
- </small>
121
- <small v-else>
122
- Neuron populations associated with a location.
123
- </small>
104
+ <template v-if="key === 'Neuron Connection'">
105
+ <div class="setting-popover-block" v-if="'connectionType' in globalSettings">
106
+ <el-radio-group
107
+ v-model="globalSettings.connectionType"
108
+ @change="updateGlobalSettings('connectionType')"
109
+ >
110
+ <el-radio-button value="Origin" size="small">Origin</el-radio-button>
111
+ <el-radio-button value="Via" size="small">Via</el-radio-button>
112
+ <el-radio-button value="Destination" size="small">
113
+ Destination
114
+ </el-radio-button>
115
+ <el-radio-button value="All" size="small">All</el-radio-button>
116
+ </el-radio-group>
117
+ <div class="el-radio__description">
118
+ <small v-if="globalSettings.connectionType === 'Origin'">
119
+ Neuron populations beginning at a location.
120
+ </small>
121
+ <small v-else-if="globalSettings.connectionType === 'Via'">
122
+ Neuron populations that run through a location.
123
+ </small>
124
+ <small v-else-if="globalSettings.connectionType === 'Destination'">
125
+ Neuron populations terminating at a location.
126
+ </small>
127
+ <small v-else>Neuron populations associated with a location.</small>
128
+ </div>
124
129
  </div>
125
- </div>
126
- </template>
127
- </el-dropdown-item>
128
- </el-dropdown-menu>
129
- </template>
130
+ </template>
131
+ </el-dropdown-item>
132
+ </el-dropdown-menu>
133
+ </template>
130
134
  </el-dropdown>
131
135
  </div>
132
136
 
@@ -136,60 +140,95 @@
136
140
  ref="viewPopover"
137
141
  placement="bottom"
138
142
  width="133"
139
- :teleported=false
143
+ :teleported="false"
140
144
  trigger="click"
141
145
  popper-class="view-icon-popover"
142
146
  virtual-triggering
143
- >
144
- <el-row :gutter="20"
147
+ >
148
+ <el-row
149
+ :gutter="20"
145
150
  v-for="item in viewIcons"
146
151
  :key="item.name"
147
- :class="[{ 'active': item.icon == activeView},
148
- {'disabled': item.min > numberOfEntries},
149
- 'view-icon-row']"
152
+ :class="[
153
+ { active: item.icon == activeView },
154
+ { disabled: item.min > numberOfEntries },
155
+ 'view-icon-row',
156
+ ]"
150
157
  @click="viewClicked(item.icon)"
151
158
  >
152
159
  <el-col :span="4">
153
- <map-svg-icon :icon="item.icon"
154
- class="view-icon"/>
160
+ <map-svg-icon :icon="item.icon" class="view-icon" />
155
161
  </el-col>
156
162
  <el-col :offset="2" :span="18" class="view-text">
157
- {{item.name}}
163
+ {{ item.name }}
158
164
  </el-col>
159
165
  </el-row>
160
166
  </el-popover>
161
- <el-popover class="tooltip" content="Split screen" placement="bottom-end"
162
- :show-after="helpDelay" :teleported=false trigger="hover"
167
+ <el-popover
168
+ class="tooltip"
169
+ content="Split screen"
170
+ placement="bottom-end"
171
+ :show-after="helpDelay"
172
+ :teleported="false"
173
+ trigger="hover"
163
174
  popper-class="header-popper"
164
175
  >
165
176
  <template #reference>
166
- <map-svg-icon :icon="activeView"
167
- ref="activeViewRef"
168
- :class="[{'disabled': (1 >= numberOfEntries)},
169
- 'header-icon', 'splitscreen-icon']"
177
+ <map-svg-icon
178
+ :icon="activeView"
179
+ ref="activeViewRef"
180
+ :class="[{ disabled: 1 >= numberOfEntries }, 'header-icon', 'splitscreen-icon']"
170
181
  />
171
182
  </template>
172
183
  </el-popover>
173
184
 
174
- <el-popover class="tooltip" content="Help" placement="bottom-end" :show-after="helpDelay"
175
- :teleported=false trigger="hover" popper-class="header-popper" >
185
+ <el-popover
186
+ class="tooltip"
187
+ content="Help"
188
+ placement="bottom-end"
189
+ :show-after="helpDelay"
190
+ :teleported="false"
191
+ trigger="hover"
192
+ popper-class="header-popper"
193
+ >
176
194
  <template #reference>
177
- <map-svg-icon icon="tooltips" class="header-icon" @click="startHelp()"/>
195
+ <map-svg-icon icon="tooltips" class="header-icon" @click="startHelp()" />
178
196
  </template>
179
197
  </el-popover>
180
- <el-popover class="tooltip"
181
- content="Fullscreen" placement="bottom-end" :show-after="helpDelay"
182
- :teleported=false trigger="hover" popper-class="header-popper">
198
+ <el-popover
199
+ class="tooltip"
200
+ content="Fullscreen"
201
+ placement="bottom-end"
202
+ :show-after="helpDelay"
203
+ :teleported="false"
204
+ trigger="hover"
205
+ popper-class="header-popper"
206
+ >
183
207
  <template #reference>
184
- <map-svg-icon v-show="!isFullscreen" icon="fullScreen" class="header-icon" @click="onFullscreen"/>
208
+ <map-svg-icon
209
+ v-show="!isFullscreen"
210
+ icon="fullScreen"
211
+ class="header-icon"
212
+ @click="onFullscreen"
213
+ />
185
214
  </template>
186
215
  </el-popover>
187
- <el-popover class="tooltip"
188
- content="Exit fullscreen" placement="bottom-end" :show-after="helpDelay"
189
- :teleported=false trigger="hover" popper-class="header-popper">
216
+ <el-popover
217
+ class="tooltip"
218
+ content="Exit fullscreen"
219
+ placement="bottom-end"
220
+ :show-after="helpDelay"
221
+ :teleported="false"
222
+ trigger="hover"
223
+ popper-class="header-popper"
224
+ >
190
225
  <template #reference>
191
- <map-svg-icon v-show="isFullscreen" icon="closeFullScreen" class="header-icon"
192
- @click="onFullscreen"/>
226
+ <map-svg-icon
227
+ v-show="isFullscreen"
228
+ icon="closeFullScreen"
229
+ class="header-icon"
230
+ @click="onFullscreen"
231
+ />
193
232
  </template>
194
233
  </el-popover>
195
234
  <el-popover
@@ -198,7 +237,7 @@
198
237
  :virtual-ref="permalinkRef"
199
238
  placement="bottom-end"
200
239
  width="400"
201
- :teleported=false
240
+ :teleported="false"
202
241
  trigger="click"
203
242
  popper-class="link-popover"
204
243
  virtual-triggering
@@ -216,64 +255,77 @@
216
255
  </el-button>
217
256
  </el-col>
218
257
  <el-col :span="10">
219
- <el-popover class="tooltip"
258
+ <el-popover
259
+ class="tooltip"
220
260
  placement="bottom-end"
221
- :show-after="helpDelay" :teleported=false trigger="hover"
261
+ :show-after="helpDelay"
262
+ :teleported="false"
263
+ trigger="hover"
222
264
  popper-class="header-popper"
223
265
  >
224
266
  <template #reference>
225
- <el-checkbox
226
- v-model="exportAnnotation"
227
- size="small"
228
- >
267
+ <el-checkbox v-model="exportAnnotation" size="small">
229
268
  Export Annotations
230
269
  </el-checkbox>
231
270
  </template>
232
271
  <template #default>
233
272
  Create a permalink with anonymous annotations.
234
- <br>
273
+ <br />
235
274
  NOTE: Annotations will only be stored for
236
- <br>
275
+ <br />
237
276
  30 days on the server.
238
277
  </template>
239
278
  </el-popover>
240
279
  </el-col>
241
- </el-row>
280
+ </el-row>
242
281
  </template>
243
282
  <template v-else>
244
- <el-row :gutter="20"
245
- v-loading="loadingLink"
246
- element-loading-text="Creating link...">
283
+ <el-row :gutter="20" v-loading="loadingLink" element-loading-text="Creating link...">
247
284
  <el-col :span="20">
248
285
  <el-input
249
286
  class="link-input"
250
287
  size="small"
251
288
  placeholder="Permanant Link Here"
252
- :readonly=true
289
+ :readonly="true"
253
290
  v-model="shareLink"
254
- ref="linkInput">
255
- </el-input>
291
+ ref="linkInput"
292
+ ></el-input>
256
293
  </el-col>
257
294
  <el-col :span="4">
258
- <el-popover class="tooltip" content="Copy link" placement="bottom-end"
259
- :show-after="helpDelay" :teleported=false trigger="hover"
260
- popper-class="header-popper">
295
+ <el-popover
296
+ class="tooltip"
297
+ content="Copy link"
298
+ placement="bottom-end"
299
+ :show-after="helpDelay"
300
+ :teleported="false"
301
+ trigger="hover"
302
+ popper-class="header-popper"
303
+ >
261
304
  <template #reference>
262
- <el-button class="copy-button"
263
- :icon="ElIconCopyDocument" size="small"
264
- @click="copyShareLink"></el-button>
305
+ <el-button
306
+ class="copy-button"
307
+ :icon="ElIconCopyDocument"
308
+ size="small"
309
+ @click="copyShareLink"
310
+ ></el-button>
265
311
  </template>
266
312
  </el-popover>
267
313
  </el-col>
268
314
  </el-row>
269
315
  </template>
270
316
  </el-popover>
271
- <el-popover class="tooltip" content="Get permalink" placement="bottom-end"
272
- :show-after="helpDelay" :teleported=false trigger="hover"
317
+ <el-popover
318
+ class="tooltip"
319
+ content="Get permalink"
320
+ placement="bottom-end"
321
+ :show-after="helpDelay"
322
+ :teleported="false"
323
+ trigger="hover"
273
324
  popper-class="header-popper"
274
- >
325
+ >
275
326
  <template #reference>
276
- <map-svg-icon icon="permalink"
327
+ <map-svg-icon
328
+ icon="permalink"
277
329
  ref="permalinkRef"
278
330
  class="header-icon"
279
331
  @click="requestShareLink"
@@ -281,10 +333,17 @@
281
333
  />
282
334
  </template>
283
335
  </el-popover>
284
- <el-popover class="tooltip" content="Close" placement="bottom-end" :show-after="helpDelay"
285
- :teleported=false trigger="hover" popper-class="header-popper">
336
+ <el-popover
337
+ class="tooltip"
338
+ content="Close"
339
+ placement="bottom-end"
340
+ :show-after="helpDelay"
341
+ :teleported="false"
342
+ trigger="hover"
343
+ popper-class="header-popper"
344
+ >
286
345
  <template #reference>
287
- <map-svg-icon icon="close" class="header-icon" @click="close" v-show="showIcons"/>
346
+ <map-svg-icon icon="close" class="header-icon" @click="close" v-show="showIcons" />
288
347
  </template>
289
348
  </el-popover>
290
349
 
@@ -294,12 +353,12 @@
294
353
  ref="settingPopover"
295
354
  placement="bottom"
296
355
  width="230"
297
- :teleported=false
356
+ :teleported="false"
298
357
  trigger="click"
299
358
  popper-class="setting-popover"
300
359
  virtual-triggering
301
360
  :disabled="!mapLoaded"
302
- >
361
+ >
303
362
  <div class="setting-popover-inner">
304
363
  <h4>Display options:</h4>
305
364
  <!-- <div class="setting-popover-block" v-if="'displayMarkers' in globalSettings">
@@ -395,7 +454,7 @@
395
454
  content="Global Settings"
396
455
  placement="bottom-end"
397
456
  :show-after="helpDelay"
398
- :teleported=false
457
+ :teleported="false"
399
458
  trigger="hover"
400
459
  popper-class="header-popper"
401
460
  :disabled="!mapLoaded"
@@ -405,20 +464,17 @@
405
464
  ref="globalSettingRef"
406
465
  :disabled="!mapLoaded"
407
466
  class="header-icon"
408
- :class="{'disabled': !mapLoaded}"
467
+ :class="{ disabled: !mapLoaded }"
409
468
  >
410
469
  <el-icon-more-filled />
411
470
  </el-icon>
412
471
  </template>
413
472
  </el-popover>
414
-
415
473
  </el-row>
416
474
  </div>
417
475
  </template>
418
476
 
419
-
420
477
  <script>
421
- /* eslint-disable no-alert, no-console */
422
478
  import { shallowRef } from 'vue';
423
479
  import EventBus from './EventBus';
424
480
  import { mapStores } from 'pinia';
@@ -427,42 +483,18 @@ import { useSettingsStore } from '../stores/settings';
427
483
  import { useSplitFlowStore } from '../stores/splitFlow';
428
484
  import { MapSvgIcon, MapSvgSpriteColor } from '@abi-software/svg-sprite';
429
485
  import SearchControls from './SearchControls.vue';
430
- import {
431
- CopyDocument as ElIconCopyDocument,
432
- MoreFilled as ElIconMoreFilled,
433
- } from '@element-plus/icons-vue';
434
- import {
435
- ElButton as Button,
436
- ElCheckbox as Checkbox,
437
- ElCol as Col,
438
- ElIcon as Icon,
439
- ElInput as Input,
440
- ElPopover as Popover,
441
- ElRadio as Radio,
442
- ElRadioGroup as RadioGroup,
443
- ElRow as Row,
444
- } from "element-plus";
486
+ import { CopyDocument as ElIconCopyDocument } from '@element-plus/icons-vue';
445
487
  import tagging from '../services/tagging';
446
488
 
447
489
  /**
448
490
  * Cmponent for the header of differnt vuers.
449
491
  */
450
492
  export default {
451
- name: "DialogToolbarContent",
493
+ name: 'DialogToolbarContent',
452
494
  components: {
453
- Button,
454
- Checkbox,
455
- Col,
456
- Icon,
457
- Input,
458
- Popover,
459
- Radio,
460
- RadioGroup,
461
- Row,
462
495
  MapSvgIcon,
463
496
  MapSvgSpriteColor,
464
497
  SearchControls,
465
- ElIconCopyDocument,
466
498
  },
467
499
  props: {
468
500
  /**
@@ -470,15 +502,14 @@ export default {
470
502
  */
471
503
  numberOfEntries: {
472
504
  type: Number,
473
- default: 0
505
+ default: 0,
474
506
  },
475
507
  /**
476
508
  * Display icons for docking, undocking and etc.
477
509
  */
478
510
  showIcons: {
479
511
  type: Boolean,
480
- default: false
481
-
512
+ default: false,
482
513
  },
483
514
  },
484
515
  inject: ['showGlobalSettings'],
@@ -501,11 +532,11 @@ export default {
501
532
  },
502
533
  },
503
534
  watch: {
504
- shareLink: function() {
535
+ shareLink: function () {
505
536
  this.loadingLink = false;
506
537
  },
507
538
  },
508
- data: function() {
539
+ data: function () {
509
540
  return {
510
541
  activeViewRef: undefined,
511
542
  displayShareOptions: false,
@@ -518,19 +549,21 @@ export default {
518
549
  loadingLink: true,
519
550
  permalinkRef: undefined,
520
551
  viewingModes: {
521
- 'Exploration': 'Find relevant research and view detail of neural pathways by selecting a pathway to view its connections and data sources',
522
- 'Neuron Connection': 'Discover neuron connections by selecting a feature and viewing its associated network connections',
523
- 'Annotation': ['View feature annotations', 'Add, comment on and view feature annotations']
552
+ Exploration:
553
+ 'Find relevant research and view detail of neural pathways by selecting a pathway to view its connections and data sources',
554
+ 'Neuron Connection':
555
+ 'Discover neuron connections by selecting a feature and viewing its associated network connections',
556
+ Annotation: ['View feature annotations', 'Add, comment on and view feature annotations'],
524
557
  },
525
558
  authorisedUser: false,
526
559
  mapLoaded: false,
527
- }
560
+ };
528
561
  },
529
562
  methods: {
530
563
  loadGlobalSettings: function () {
531
564
  this.globalSettings = {
532
565
  ...this.globalSettings,
533
- ...this.settingsStore.globalSettings
566
+ ...this.settingsStore.globalSettings,
534
567
  };
535
568
  },
536
569
  updateViewingMode: function (event, value) {
@@ -554,7 +587,7 @@ export default {
554
587
  this.updateGlobalSettings('viewingMode');
555
588
  }
556
589
  },
557
- updateGlobalSettings: function(changedKey) {
590
+ updateGlobalSettings: function (changedKey) {
558
591
  const updatedSettings = this.settingsStore.getUpdatedGlobalSettingsKey(this.globalSettings);
559
592
  this.settingsStore.updateGlobalSettings(this.globalSettings);
560
593
 
@@ -566,12 +599,14 @@ export default {
566
599
  EventBus.emit('modeUpdate', this.globalSettings.interactiveMode);
567
600
  }
568
601
  // viewing mode update
569
- if (updatedSettings.includes('viewingMode') ||
602
+ if (
603
+ updatedSettings.includes('viewingMode') ||
570
604
  updatedSettings.includes('connectionType') ||
571
605
  updatedSettings.includes('flightPathDisplay') ||
572
606
  updatedSettings.includes('organsDisplay') ||
573
607
  updatedSettings.includes('outlinesDisplay') ||
574
- updatedSettings.includes('backgroundDisplay')) {
608
+ updatedSettings.includes('backgroundDisplay')
609
+ ) {
575
610
  EventBus.emit('globalViewerSettingsUpdate');
576
611
  }
577
612
 
@@ -583,7 +618,7 @@ export default {
583
618
  category = this.globalSettings.flightPathDisplay ? '3D' : '2D';
584
619
  }
585
620
  if (changedKey === 'organsDisplay') {
586
- category = this.globalSettings.organsDisplay ? 'Color': 'Grayscale';
621
+ category = this.globalSettings.organsDisplay ? 'Color' : 'Grayscale';
587
622
  }
588
623
  if (changedKey === 'outlinesDisplay') {
589
624
  category = this.globalSettings.outlinesDisplay ? 'Show' : 'Hide';
@@ -592,39 +627,39 @@ export default {
592
627
  // Prevent viewing mode clicks on active item
593
628
  if (updatedSettings.length) {
594
629
  tagging.sendEvent({
595
- 'event': 'interaction_event',
596
- 'event_name': `portal_maps_settings_${changedKey}`,
597
- 'category': category,
598
- 'location': 'map_toolbar'
630
+ event: 'interaction_event',
631
+ event_name: `portal_maps_settings_${changedKey}`,
632
+ category: category,
633
+ location: 'map_toolbar',
599
634
  });
600
635
  }
601
636
  },
602
- titleClicked: function(id) {
603
- this.$emit("titleClicked", id);
637
+ titleClicked: function (id) {
638
+ this.$emit('titleClicked', id);
604
639
  },
605
- startHelp: function(){
606
- EventBus.emit("startHelp");
640
+ startHelp: function () {
641
+ EventBus.emit('startHelp');
607
642
 
608
643
  // GA Tracking
609
644
  tagging.sendEvent({
610
- 'event': 'interaction_event',
611
- 'event_name': `portal_maps_toolbar_help`,
612
- 'category': 'help_mode_start',
613
- 'location': 'map_toolbar'
645
+ event: 'interaction_event',
646
+ event_name: `portal_maps_toolbar_help`,
647
+ category: 'help_mode_start',
648
+ location: 'map_toolbar',
614
649
  });
615
650
  },
616
- onFullscreen: function() {
617
- this.$emit("onFullscreen");
651
+ onFullscreen: function () {
652
+ this.$emit('onFullscreen');
618
653
  this.isFullscreen = !this.isFullscreen;
619
654
 
620
655
  // GA Tracking
621
656
  // only for fullscreen enter event to prevent duplicate events
622
657
  if (this.isFullscreen) {
623
658
  tagging.sendEvent({
624
- 'event': 'interaction_event',
625
- 'event_name': `portal_maps_toolbar_fullscreen`,
626
- 'category': this.isFullscreen ? 'enter' : 'exit',
627
- 'location': 'map_toolbar'
659
+ event: 'interaction_event',
660
+ event_name: `portal_maps_toolbar_fullscreen`,
661
+ category: this.isFullscreen ? 'enter' : 'exit',
662
+ location: 'map_toolbar',
628
663
  });
629
664
  }
630
665
  },
@@ -634,54 +669,54 @@ export default {
634
669
 
635
670
  // GA Tracking
636
671
  tagging.sendEvent({
637
- 'event': 'interaction_event',
638
- 'event_name': `portal_maps_toolbar_fullscreen`,
639
- 'category': this.isFullscreen ? 'enter' : 'exit',
640
- 'location': 'map_toolbar'
672
+ event: 'interaction_event',
673
+ event_name: `portal_maps_toolbar_fullscreen`,
674
+ category: this.isFullscreen ? 'enter' : 'exit',
675
+ location: 'map_toolbar',
641
676
  });
642
677
  }
643
678
  },
644
- close: function() {
645
- this.$emit("close");
679
+ close: function () {
680
+ this.$emit('close');
646
681
  },
647
- copyShareLink: function() {
682
+ copyShareLink: function () {
648
683
  if (document) {
649
- this.$refs.linkInput.$el.querySelector("input").select();
684
+ this.$refs.linkInput.$el.querySelector('input').select();
650
685
  document.execCommand('copy');
651
686
 
652
687
  // GA Tracking
653
688
  tagging.sendEvent({
654
- 'event': 'interaction_event',
655
- 'event_name': 'portal_maps_permalink',
656
- 'category': 'permalink_copy',
657
- 'location': 'map_toolbar'
689
+ event: 'interaction_event',
690
+ event_name: 'portal_maps_permalink',
691
+ category: 'permalink_copy',
692
+ location: 'map_toolbar',
658
693
  });
659
694
  }
660
695
  },
661
- setFailedSearch: function(result) {
696
+ setFailedSearch: function (result) {
662
697
  this.failedSearch = result;
663
698
  },
664
- requestShareLink: function() {
699
+ requestShareLink: function () {
665
700
  if (sessionStorage.getItem('anonymous-annotation')) {
666
701
  this.displayShareOptions = true;
667
702
  } else {
668
703
  this.getShareLink(false);
669
704
  }
670
705
  },
671
- getShareLink: function(withAnnotation) {
706
+ getShareLink: function (withAnnotation) {
672
707
  this.displayShareOptions = false;
673
708
  this.loadingLink = true;
674
- EventBus.emit("updateShareLinkRequested", withAnnotation);
709
+ EventBus.emit('updateShareLinkRequested', withAnnotation);
675
710
 
676
711
  // GA Tracking
677
712
  tagging.sendEvent({
678
- 'event': 'interaction_event',
679
- 'event_name': 'portal_maps_permalink',
680
- 'category': 'permalink_generate',
681
- 'location': 'map_toolbar'
713
+ event: 'interaction_event',
714
+ event_name: 'portal_maps_permalink',
715
+ category: 'permalink_generate',
716
+ location: 'map_toolbar',
682
717
  });
683
718
  },
684
- viewClicked: function(view) {
719
+ viewClicked: function (view) {
685
720
  const prevActiveView = this.activeView;
686
721
 
687
722
  this.splitFlowStore.updateActiveView({
@@ -693,24 +728,24 @@ export default {
693
728
  if (view !== prevActiveView) {
694
729
  const viewCategory = this.viewIcons.find((item) => item.icon === view);
695
730
  tagging.sendEvent({
696
- 'event': 'interaction_event',
697
- 'event_name': `portal_maps_toolbar_split_view`,
698
- 'category': viewCategory?.name || '',
699
- 'location': 'map_toolbar'
731
+ event: 'interaction_event',
732
+ event_name: `portal_maps_toolbar_split_view`,
733
+ category: viewCategory?.name || '',
734
+ location: 'map_toolbar',
700
735
  });
701
736
  }
702
737
 
703
738
  if (this.$refs.viewPopover) {
704
739
  this.$refs.viewPopover.hide();
705
740
  }
706
- }
741
+ },
707
742
  },
708
743
  mounted: function () {
709
744
  this.activeViewRef = shallowRef(this.$refs.activeViewRef);
710
745
  this.permalinkRef = shallowRef(this.$refs.permalinkRef);
711
746
  this.globalSettingRef = shallowRef(this.$refs.globalSettingRef);
712
747
 
713
- EventBus.on("mapLoaded", (map) => {
748
+ EventBus.on('mapLoaded', () => {
714
749
  this.mapLoaded = true;
715
750
  });
716
751
 
@@ -726,11 +761,11 @@ export default {
726
761
 
727
762
  <!-- Add "scoped" attribute to limit CSS to this component only -->
728
763
  <style scoped lang="scss">
729
- @use "../assets/header-icon.scss";
764
+ @use '../assets/header-icon.scss';
730
765
 
731
766
  .icon-group {
732
767
  :deep(.el-button--text) {
733
- color:#606266;
768
+ color: #606266;
734
769
  font-size: 1.5em;
735
770
  &:hover {
736
771
  color: $app-primary-color;
@@ -744,11 +779,11 @@ export default {
744
779
  -o-transform: rotate(90deg);
745
780
  -ms-transform: rotate(90deg);
746
781
  transform: rotate(90deg);
747
- padding:10px;
782
+ padding: 10px;
748
783
  }
749
784
 
750
785
  .header {
751
- height:32px;
786
+ height: 32px;
752
787
  }
753
788
 
754
789
  .share-options.el-button {
@@ -764,7 +799,7 @@ export default {
764
799
 
765
800
  :deep(.header-popper.el-popover.el-popper) {
766
801
  padding: 6px 4px;
767
- font-size:12px;
802
+ font-size: 12px;
768
803
  color: rgb(48, 49, 51);
769
804
  background-color: #f3ecf6;
770
805
  border: 1px solid $app-primary-color;
@@ -793,20 +828,21 @@ export default {
793
828
  }
794
829
 
795
830
  .copy-button {
796
- color:#FFFFFF;
797
- background-color:$app-primary-color;
798
- &:hover, &:focus {
799
- color:#FFFFFF;
800
- background-color:$app-primary-color;
831
+ color: #ffffff;
832
+ background-color: $app-primary-color;
833
+ &:hover,
834
+ &:focus {
835
+ color: #ffffff;
836
+ background-color: $app-primary-color;
801
837
  box-shadow: -3px 2px 4px #000000;
802
838
  }
803
839
  }
804
840
 
805
841
  .link-input {
806
842
  :deep(.el-input__inner) {
807
- color:#303133;
843
+ color: #303133;
808
844
  &:focus {
809
- border-color:$app-primary-color;
845
+ border-color: $app-primary-color;
810
846
  }
811
847
  }
812
848
  }
@@ -817,7 +853,7 @@ export default {
817
853
  border-radius: 4px;
818
854
  border: 1px solid rgb(151, 151, 151);
819
855
  font-size: 14px;
820
- margin:8px 0px 0px 0px!important;
856
+ margin: 8px 0px 0px 0px !important;
821
857
  cursor: pointer;
822
858
 
823
859
  &.active {
@@ -828,19 +864,19 @@ export default {
828
864
 
829
865
  .view-icon {
830
866
  font-size: 1.7em;
831
- height: 24px!important;
832
- width: 24px!important;
867
+ height: 24px !important;
868
+ width: 24px !important;
833
869
  color: $app-primary-color;
834
- padding-top:3px;
870
+ padding-top: 3px;
835
871
  }
836
872
 
837
873
  .view-text {
838
- letter-spacing:0px;
839
- font-size:11px;
840
- line-height:14px;
841
- font-family:'Asap', 'Avenir', Arial, sans-serif;
842
- font-weight:550;
843
- padding-top:7px;
874
+ letter-spacing: 0px;
875
+ font-size: 11px;
876
+ line-height: 14px;
877
+ font-family: 'Asap', 'Avenir', Arial, sans-serif;
878
+ font-weight: 550;
879
+ padding-top: 7px;
844
880
  }
845
881
 
846
882
  :deep(.view-icon-popover.el-popper),
@@ -848,10 +884,10 @@ export default {
848
884
  border: 1px solid $app-primary-color;
849
885
  box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.06);
850
886
  padding: 4px 8px 12px 8px;
851
- min-width:unset!important;
852
- width:unset!important;
887
+ min-width: unset !important;
888
+ width: unset !important;
853
889
  background-color: #f3ecf6;
854
- cursor:default;
890
+ cursor: default;
855
891
  .el-popper__arrow {
856
892
  &:before {
857
893
  border-color: $app-primary-color;