@abi-software/flatmapvuer 0.5.9 → 0.6.0-vue3-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.
- package/babel.config.js +0 -14
- package/dist/favicon.ico +0 -0
- package/dist/flatmapvuer.js +69542 -0
- package/dist/flatmapvuer.umd.cjs +1021 -0
- package/dist/index.html +17 -0
- package/dist/style.css +1 -0
- package/package.json +29 -21
- package/src/App.vue +180 -105
- package/src/assets/styles.scss +2 -3
- package/src/components/AnnotationTool.vue +193 -153
- package/src/components/EventBus.js +3 -3
- package/src/components/ExternalResourceCard.vue +39 -30
- package/src/components/FlatmapVuer.vue +734 -676
- package/src/components/MultiFlatmapVuer.vue +313 -246
- package/src/components/ProvenancePopup.vue +195 -121
- package/src/components/SelectionsGroup.vue +93 -84
- package/src/components/Tooltip.vue +11 -13
- package/src/components/TreeControls.vue +67 -64
- package/src/components/index.js +4 -7
- package/src/components/legends/DynamicLegends.vue +13 -19
- package/src/components/legends/SvgLegends.vue +72 -27
- package/src/components.d.ts +46 -0
- package/src/icons/flatmap-marker.js +1 -1
- package/src/icons/fonts/mapicon-species.eot +0 -0
- package/src/icons/fonts/mapicon-species.svg +0 -0
- package/src/icons/yellowstar.js +2 -2
- package/src/legends/legend.svg +0 -0
- package/src/main.js +2 -6
- package/src/services/flatmapQueries.js +175 -139
- package/vite.config.js +76 -0
- package/vue.config.js +14 -0
- package/CHANGELOG.md +0 -402
- package/dist/demo.html +0 -10
- package/dist/flatmapvuer.common.js +0 -22741
- package/dist/flatmapvuer.common.js.map +0 -1
- package/dist/flatmapvuer.css +0 -1
- package/dist/flatmapvuer.umd.js +0 -22751
- package/dist/flatmapvuer.umd.js.map +0 -1
- package/dist/flatmapvuer.umd.min.js +0 -4
- package/dist/flatmapvuer.umd.min.js.map +0 -1
- package/package-lock.json +0 -18473
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
ref="flatmapContainer"
|
|
5
5
|
v-loading="loading"
|
|
6
6
|
element-loading-text="Loading..."
|
|
7
|
-
element-loading-spinner="el-icon-loading"
|
|
8
7
|
element-loading-background="rgba(0, 0, 0, 0.3)"
|
|
9
8
|
>
|
|
10
9
|
<map-svg-sprite-color />
|
|
@@ -16,10 +15,9 @@
|
|
|
16
15
|
<div>
|
|
17
16
|
<el-popover
|
|
18
17
|
placement="right"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
v-model="hoverVisibilities[6].value"
|
|
18
|
+
popper-class="warning-popper flatmap-popper"
|
|
19
|
+
:teleported="false"
|
|
20
|
+
:visible="hoverVisibilities[6].value"
|
|
23
21
|
ref="warningPopover"
|
|
24
22
|
>
|
|
25
23
|
<p
|
|
@@ -69,319 +67,370 @@
|
|
|
69
67
|
>. New connectivity and species specificity will be added as the
|
|
70
68
|
SPARC program progresses.
|
|
71
69
|
</p>
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
70
|
+
<template #reference>
|
|
71
|
+
<div
|
|
72
|
+
class="el-icon-warning warning-icon"
|
|
73
|
+
v-if="displayWarning"
|
|
74
|
+
@mouseover="showToolitip(6)"
|
|
75
|
+
@mouseout="hideToolitip(6)"
|
|
76
|
+
v-popover:warningPopover
|
|
77
|
+
>
|
|
78
|
+
<el-icon><el-icon-warning-filled /></el-icon>
|
|
79
|
+
<template v-if="isLegacy">
|
|
80
|
+
<span class="warning-text">Legacy Map</span>
|
|
81
|
+
<div class="latest-map-text" @click="viewLatestMap">
|
|
82
|
+
Click here for the latest map
|
|
83
|
+
</div>
|
|
84
|
+
</template>
|
|
85
|
+
<template v-else>
|
|
86
|
+
<span class="warning-text">Beta</span>
|
|
87
|
+
</template>
|
|
84
88
|
</div>
|
|
85
89
|
</template>
|
|
86
|
-
|
|
87
|
-
<span class="warning-text">Beta</span>
|
|
88
|
-
</template>
|
|
89
|
-
</i>
|
|
90
|
+
</el-popover>
|
|
90
91
|
</div>
|
|
91
92
|
<el-popover
|
|
92
|
-
:content="latestChangesMessage"
|
|
93
93
|
placement="right"
|
|
94
94
|
v-if="displayLatestChanges"
|
|
95
|
-
:
|
|
95
|
+
:teleported="false"
|
|
96
96
|
trigger="manual"
|
|
97
|
-
popper-class="warning-popper flatmap-popper
|
|
98
|
-
|
|
97
|
+
popper-class="warning-popper flatmap-popper"
|
|
98
|
+
:visible="hoverVisibilities[7].value"
|
|
99
99
|
ref="latestChangesPopover"
|
|
100
|
-
></el-popover>
|
|
101
|
-
<i
|
|
102
|
-
class="el-icon-warning latest-changesicon"
|
|
103
|
-
v-if="displayLatestChanges && latestChangesMessage"
|
|
104
|
-
@mouseover="showToolitip(7)"
|
|
105
|
-
@mouseout="hideToolitip(7)"
|
|
106
|
-
v-popover:latestChangesPopover
|
|
107
100
|
>
|
|
108
|
-
<
|
|
109
|
-
|
|
101
|
+
<template #reference>
|
|
102
|
+
<div
|
|
103
|
+
class="latest-changesicon"
|
|
104
|
+
v-if="displayLatestChanges"
|
|
105
|
+
@mouseover="showToolitip(7)"
|
|
106
|
+
@mouseout="hideToolitip(7)"
|
|
107
|
+
v-popover:latestChangesPopover
|
|
108
|
+
>
|
|
109
|
+
<el-icon><el-icon-warning-filled /></el-icon>
|
|
110
|
+
<span class="warning-text">What's new?</span>
|
|
111
|
+
</div>
|
|
112
|
+
</template>
|
|
113
|
+
<template #default>
|
|
114
|
+
<b>Network discovery mode</b>
|
|
115
|
+
<p>
|
|
116
|
+
You can now view the network of neurons connected to a selected
|
|
117
|
+
neuron. This mode is located in the settings at the bottom right.
|
|
118
|
+
Once discovery mode is on, click on a neuron to see its
|
|
119
|
+
connections.
|
|
120
|
+
</p>
|
|
121
|
+
<b>Now can display up to 6 panes</b>
|
|
122
|
+
<p>
|
|
123
|
+
You can now display up to 6 panes in the flatmap. This allows you
|
|
124
|
+
to compare between different datasets and/or different views of
|
|
125
|
+
the same dataset.
|
|
126
|
+
</p>
|
|
127
|
+
</template>
|
|
128
|
+
</el-popover>
|
|
110
129
|
</div>
|
|
111
130
|
|
|
112
131
|
<!-- The element below is placed onto the flatmap when it is ready -->
|
|
113
|
-
<
|
|
114
|
-
class="
|
|
132
|
+
<el-icon
|
|
133
|
+
class="minimap-resize"
|
|
115
134
|
:class="{ enlarge: minimapSmall, shrink: !minimapSmall }"
|
|
116
135
|
ref="minimapResize"
|
|
117
136
|
v-show="minimapResizeShow"
|
|
118
137
|
@click="closeMinimap"
|
|
119
|
-
|
|
138
|
+
>
|
|
139
|
+
<el-icon-arrow-down />
|
|
140
|
+
</el-icon>
|
|
120
141
|
|
|
121
142
|
<div class="bottom-right-control">
|
|
122
143
|
<el-popover
|
|
123
144
|
content="Zoom in"
|
|
124
145
|
placement="left"
|
|
125
|
-
:
|
|
146
|
+
:teleported="false"
|
|
126
147
|
trigger="manual"
|
|
127
|
-
|
|
128
|
-
|
|
148
|
+
width="70"
|
|
149
|
+
popper-class="flatmap-popper"
|
|
150
|
+
:visible="hoverVisibilities[0].value"
|
|
129
151
|
>
|
|
130
|
-
<
|
|
131
|
-
icon
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
152
|
+
<template #reference>
|
|
153
|
+
<map-svg-icon
|
|
154
|
+
icon="zoomIn"
|
|
155
|
+
class="icon-button zoomIn"
|
|
156
|
+
@click.native="zoomIn()"
|
|
157
|
+
@mouseover.native="showToolitip(0)"
|
|
158
|
+
@mouseout.native="hideToolitip(0)"
|
|
159
|
+
/>
|
|
160
|
+
</template>
|
|
138
161
|
</el-popover>
|
|
139
162
|
<el-popover
|
|
140
163
|
content="Zoom out"
|
|
141
164
|
placement="top-end"
|
|
142
|
-
:
|
|
165
|
+
:teleported="false"
|
|
143
166
|
trigger="manual"
|
|
167
|
+
width="70"
|
|
144
168
|
popper-class="flatmap-popper popper-zoomout"
|
|
145
|
-
|
|
169
|
+
:visible="hoverVisibilities[1].value"
|
|
146
170
|
>
|
|
147
|
-
<
|
|
148
|
-
icon
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
171
|
+
<template #reference>
|
|
172
|
+
<map-svg-icon
|
|
173
|
+
icon="zoomOut"
|
|
174
|
+
class="icon-button zoomOut"
|
|
175
|
+
@click.native="zoomOut()"
|
|
176
|
+
@mouseover.native="showToolitip(1)"
|
|
177
|
+
@mouseout.native="hideToolitip(1)"
|
|
178
|
+
/>
|
|
179
|
+
</template>
|
|
155
180
|
</el-popover>
|
|
156
181
|
<el-popover
|
|
157
182
|
content="Reset"
|
|
158
183
|
placement="top"
|
|
159
|
-
:
|
|
184
|
+
:teleported="false"
|
|
160
185
|
trigger="manual"
|
|
186
|
+
width="70"
|
|
161
187
|
popper-class="flatmap-popper"
|
|
162
|
-
|
|
188
|
+
:visible="hoverVisibilities[2].value"
|
|
163
189
|
>
|
|
164
190
|
<div>
|
|
165
191
|
Fit to
|
|
166
192
|
<br />
|
|
167
193
|
window
|
|
168
194
|
</div>
|
|
169
|
-
<
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
195
|
+
<template #reference>
|
|
196
|
+
<map-svg-icon
|
|
197
|
+
icon="fitWindow"
|
|
198
|
+
class="icon-button fitWindow"
|
|
199
|
+
@click.native="resetView()"
|
|
200
|
+
@mouseover.native="showToolitip(2)"
|
|
201
|
+
@mouseout.native="hideToolitip(2)"
|
|
202
|
+
/>
|
|
203
|
+
</template>
|
|
177
204
|
</el-popover>
|
|
178
205
|
</div>
|
|
179
206
|
<el-popover
|
|
180
207
|
content="Change pathway visibility"
|
|
181
208
|
placement="right"
|
|
182
|
-
:
|
|
209
|
+
:teleported="false"
|
|
183
210
|
trigger="manual"
|
|
184
|
-
popper-class="flatmap-popper
|
|
185
|
-
|
|
211
|
+
popper-class="flatmap-popper"
|
|
212
|
+
:visible="hoverVisibilities[4].value"
|
|
186
213
|
ref="checkBoxPopover"
|
|
187
|
-
/>
|
|
188
|
-
<div
|
|
189
|
-
class="pathway-location"
|
|
190
|
-
:class="{ open: drawerOpen, close: !drawerOpen }"
|
|
191
214
|
>
|
|
192
|
-
<
|
|
193
|
-
class="pathway-container"
|
|
194
|
-
:class="{ open: drawerOpen, close: !drawerOpen }"
|
|
195
|
-
:style="{ 'max-height' : pathwaysMaxHeight + 'px' }"
|
|
196
|
-
v-if="pathControls"
|
|
197
|
-
v-popover:checkBoxPopover
|
|
198
|
-
>
|
|
199
|
-
<svg-legends v-if="!isFC" class="svg-legends-container" />
|
|
200
|
-
<el-popover
|
|
201
|
-
content="Location of the featured dataset"
|
|
202
|
-
placement="right"
|
|
203
|
-
:appendToBody="false"
|
|
204
|
-
trigger="hover"
|
|
205
|
-
popper-class="flatmap-popper popper-bump-right right-popper"
|
|
206
|
-
v-model="hoverVisibilities[9].value"
|
|
207
|
-
ref="featuredMarkerPopover"
|
|
208
|
-
>
|
|
209
|
-
</el-popover>
|
|
210
|
-
<div v-show="showStarInLegend" v-popover:featuredMarkerPopover class="yellow-star-legend" v-html="yellowstar"></div>
|
|
211
|
-
<!-- The line below places the yellowstar svg on the left, and the text "Featured markers on the right" with css so they are both centered in the div -->
|
|
212
|
-
|
|
213
|
-
<el-popover
|
|
214
|
-
content="Find these markers for data"
|
|
215
|
-
placement="right"
|
|
216
|
-
:appendToBody="false"
|
|
217
|
-
trigger="manual"
|
|
218
|
-
popper-class="flatmap-popper popper-bump-right right-popper"
|
|
219
|
-
v-model="hoverVisibilities[5].value"
|
|
220
|
-
ref="markerPopover"
|
|
221
|
-
></el-popover>
|
|
215
|
+
<template #reference>
|
|
222
216
|
<div
|
|
223
|
-
|
|
224
|
-
class="
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
217
|
+
class="pathway-location"
|
|
218
|
+
:class="{ open: drawerOpen, close: !drawerOpen }"
|
|
219
|
+
>
|
|
220
|
+
<div
|
|
221
|
+
class="pathway-container"
|
|
222
|
+
:class="{ open: drawerOpen, close: !drawerOpen }"
|
|
223
|
+
:style="{ 'max-height': pathwaysMaxHeight + 'px' }"
|
|
224
|
+
v-if="pathControls"
|
|
225
|
+
v-popover:checkBoxPopover
|
|
226
|
+
>
|
|
227
|
+
<svg-legends v-if="!isFC" class="svg-legends-container" />
|
|
228
|
+
<el-popover
|
|
229
|
+
content="Location of the featured dataset"
|
|
230
|
+
placement="right"
|
|
231
|
+
:teleported="false"
|
|
232
|
+
trigger="hover"
|
|
233
|
+
popper-class="flatmap-popper popper-bump-right"
|
|
234
|
+
:visible="hoverVisibilities[9].value"
|
|
235
|
+
ref="featuredMarkerPopover"
|
|
236
|
+
>
|
|
237
|
+
<template #reference>
|
|
238
|
+
<div
|
|
239
|
+
v-show="showStarInLegend"
|
|
240
|
+
v-popover:featuredMarkerPopover
|
|
241
|
+
class="yellow-star-legend"
|
|
242
|
+
v-html="yellowstar"
|
|
243
|
+
></div>
|
|
244
|
+
</template>
|
|
245
|
+
</el-popover>
|
|
246
|
+
<!-- The line below places the yellowstar svg on the left, and the text "Featured markers on the right" with css so they are both centered in the div -->
|
|
247
|
+
|
|
248
|
+
<el-popover
|
|
249
|
+
content="Find these markers for data"
|
|
250
|
+
placement="right"
|
|
251
|
+
:teleported="false"
|
|
252
|
+
trigger="manual"
|
|
253
|
+
popper-class="flatmap-popper popper-bump-right"
|
|
254
|
+
:visible="hoverVisibilities[5].value"
|
|
255
|
+
ref="markerPopover"
|
|
256
|
+
>
|
|
257
|
+
<template #reference>
|
|
258
|
+
<div
|
|
259
|
+
v-show="hoverVisibilities[5].value"
|
|
260
|
+
class="flatmap-marker-help"
|
|
261
|
+
v-html="flatmapMarker"
|
|
262
|
+
v-popover:markerPopover
|
|
263
|
+
></div>
|
|
264
|
+
</template>
|
|
265
|
+
</el-popover>
|
|
266
|
+
<tree-controls
|
|
267
|
+
v-if="isFC && systems && systems.length > 0"
|
|
268
|
+
:active="currentActive"
|
|
269
|
+
:hover="currentHover"
|
|
270
|
+
:tree-data="systems"
|
|
271
|
+
ref="treeControls"
|
|
272
|
+
@changed="systemSelected"
|
|
273
|
+
@checkAll="checkAllSystems"
|
|
274
|
+
@change-active="ftuSelected"
|
|
275
|
+
/>
|
|
276
|
+
<selections-group
|
|
277
|
+
v-if="!isFC && centreLines && centreLines.length > 0"
|
|
278
|
+
title="Nerves"
|
|
279
|
+
labelKey="label"
|
|
280
|
+
identifierKey="key"
|
|
281
|
+
:selections="centreLines"
|
|
282
|
+
@changed="centreLinesSelected"
|
|
283
|
+
ref="centrelinesSelection"
|
|
284
|
+
key="centrelinesSelection"
|
|
285
|
+
/>
|
|
286
|
+
<!--
|
|
287
|
+
<selections-group
|
|
288
|
+
v-if="isFC && sckanDisplay && sckanDisplay.length > 0"
|
|
289
|
+
title="SCKAN"
|
|
290
|
+
labelKey="label"
|
|
291
|
+
identifierKey="key"
|
|
292
|
+
:selections="sckanDisplay"
|
|
293
|
+
@changed="sckanSelected"
|
|
294
|
+
@checkAll="checkAllSCKAN"
|
|
295
|
+
ref="skcanSelection"
|
|
296
|
+
key="skcanSelection"
|
|
297
|
+
/>
|
|
298
|
+
<selections-group
|
|
299
|
+
v-if="layers && layers.length > 0"
|
|
300
|
+
title="Layers"
|
|
301
|
+
labelKey="description"
|
|
302
|
+
identifierKey="id"
|
|
303
|
+
:selections="layers"
|
|
304
|
+
@changed="layersSelected"
|
|
305
|
+
@checkAll="checkAllLayers"
|
|
306
|
+
ref="layersSelection"
|
|
307
|
+
key="layersSelection"
|
|
308
|
+
/>
|
|
309
|
+
-->
|
|
310
|
+
<selections-group
|
|
311
|
+
v-if="!isFC && taxonConnectivity && taxonConnectivity.length > 0"
|
|
312
|
+
title="Observed in"
|
|
313
|
+
labelKey="label"
|
|
314
|
+
identifierKey="taxon"
|
|
315
|
+
:selections="taxonConnectivity"
|
|
316
|
+
@changed="taxonsSelected"
|
|
317
|
+
@checkAll="checkAllTaxons"
|
|
318
|
+
ref="taxonSelection"
|
|
319
|
+
key="taxonSelection"
|
|
320
|
+
/>
|
|
321
|
+
<selections-group
|
|
322
|
+
v-if="pathways && pathways.length > 0"
|
|
323
|
+
title="Pathways"
|
|
324
|
+
labelKey="label"
|
|
325
|
+
identifierKey="type"
|
|
326
|
+
colourStyle="line"
|
|
327
|
+
:selections="pathways"
|
|
328
|
+
@changed="pathwaysSelected"
|
|
329
|
+
@checkAll="checkAllPathways"
|
|
330
|
+
ref="pathwaysSelection"
|
|
331
|
+
key="pathwaysSelection"
|
|
332
|
+
/>
|
|
333
|
+
</div>
|
|
334
|
+
<div
|
|
335
|
+
@click="toggleDrawer"
|
|
336
|
+
class="drawer-button"
|
|
337
|
+
:class="{ open: drawerOpen, close: !drawerOpen }"
|
|
338
|
+
>
|
|
339
|
+
<el-icon><el-icon-arrow-left /></el-icon>
|
|
340
|
+
</div>
|
|
341
|
+
</div>
|
|
342
|
+
</template>
|
|
343
|
+
</el-popover>
|
|
304
344
|
<el-popover
|
|
345
|
+
v-if="openMapRef"
|
|
305
346
|
ref="open-map-popover"
|
|
347
|
+
:virtual-ref="openMapRef"
|
|
306
348
|
placement="top-start"
|
|
307
|
-
width="
|
|
308
|
-
:
|
|
349
|
+
width="136"
|
|
350
|
+
:teleported="false"
|
|
309
351
|
trigger="click"
|
|
310
352
|
popper-class="open-map-popper non-selectable"
|
|
353
|
+
virtual-triggering
|
|
311
354
|
>
|
|
312
|
-
<
|
|
313
|
-
<el-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
355
|
+
<div>
|
|
356
|
+
<el-row v-for="item in openMapOptions" :key="item.key">
|
|
357
|
+
<el-button type="primary" plain @click="$emit('open-map', item.key)">
|
|
358
|
+
{{ item.display }}
|
|
359
|
+
</el-button>
|
|
360
|
+
</el-row>
|
|
361
|
+
</div>
|
|
317
362
|
</el-popover>
|
|
318
363
|
<el-popover
|
|
319
364
|
ref="backgroundPopover"
|
|
365
|
+
:virtual-ref="backgroundIconRef"
|
|
320
366
|
placement="top-start"
|
|
321
|
-
width="
|
|
322
|
-
:
|
|
367
|
+
width="200"
|
|
368
|
+
:teleported="false"
|
|
323
369
|
trigger="click"
|
|
324
370
|
popper-class="background-popper"
|
|
371
|
+
virtual-triggering
|
|
325
372
|
>
|
|
326
|
-
<
|
|
327
|
-
|
|
328
|
-
<el-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
<el-option
|
|
336
|
-
v-for="item in viewingModes"
|
|
337
|
-
:key="item"
|
|
338
|
-
:label="item"
|
|
339
|
-
:value="item"
|
|
373
|
+
<div>
|
|
374
|
+
<el-row class="backgroundText">Viewing Mode</el-row>
|
|
375
|
+
<el-row class="backgroundControl">
|
|
376
|
+
<el-select
|
|
377
|
+
:teleported="false"
|
|
378
|
+
v-model="viewingMode"
|
|
379
|
+
placeholder="Select"
|
|
380
|
+
class="select-box"
|
|
381
|
+
popper-class="flatmap_dropdown"
|
|
340
382
|
>
|
|
341
|
-
<el-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
>
|
|
355
|
-
|
|
356
|
-
<el-radio
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
>
|
|
367
|
-
|
|
368
|
-
<el-radio
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
383
|
+
<el-option
|
|
384
|
+
v-for="item in viewingModes"
|
|
385
|
+
:key="item"
|
|
386
|
+
:label="item"
|
|
387
|
+
:value="item"
|
|
388
|
+
>
|
|
389
|
+
<el-row>
|
|
390
|
+
<el-col :span="12">{{ item }}</el-col>
|
|
391
|
+
</el-row>
|
|
392
|
+
</el-option>
|
|
393
|
+
</el-select>
|
|
394
|
+
</el-row>
|
|
395
|
+
<el-row class="backgroundSpacer"></el-row>
|
|
396
|
+
<el-row class="backgroundText">Organs display</el-row>
|
|
397
|
+
<el-row class="backgroundControl">
|
|
398
|
+
<el-radio-group
|
|
399
|
+
v-model="colourRadio"
|
|
400
|
+
class="flatmap-radio"
|
|
401
|
+
@change="setColour"
|
|
402
|
+
>
|
|
403
|
+
<el-radio :label="true">Colour</el-radio>
|
|
404
|
+
<el-radio :label="false">Greyscale</el-radio>
|
|
405
|
+
</el-radio-group>
|
|
406
|
+
</el-row>
|
|
407
|
+
<el-row class="backgroundSpacer"></el-row>
|
|
408
|
+
<el-row class="backgroundText">Outlines display</el-row>
|
|
409
|
+
<el-row class="backgroundControl">
|
|
410
|
+
<el-radio-group
|
|
411
|
+
v-model="outlinesRadio"
|
|
412
|
+
class="flatmap-radio"
|
|
413
|
+
@change="setOutlines"
|
|
414
|
+
>
|
|
415
|
+
<el-radio :label="true">Show</el-radio>
|
|
416
|
+
<el-radio :label="false">Hide</el-radio>
|
|
417
|
+
</el-radio-group>
|
|
418
|
+
</el-row>
|
|
419
|
+
<el-row class="backgroundSpacer"></el-row>
|
|
420
|
+
<el-row class="backgroundText">Change background</el-row>
|
|
421
|
+
<el-row class="backgroundControl">
|
|
422
|
+
<div
|
|
423
|
+
v-for="item in availableBackground"
|
|
424
|
+
:key="item"
|
|
425
|
+
:class="[
|
|
426
|
+
'backgroundChoice',
|
|
427
|
+
item,
|
|
428
|
+
item == currentBackground ? 'active' : '',
|
|
429
|
+
]"
|
|
430
|
+
@click="backgroundChangeCallback(item)"
|
|
431
|
+
/>
|
|
432
|
+
</el-row>
|
|
433
|
+
</div>
|
|
385
434
|
</el-popover>
|
|
386
435
|
<div
|
|
387
436
|
class="settings-group"
|
|
@@ -389,41 +438,42 @@
|
|
|
389
438
|
>
|
|
390
439
|
<el-row>
|
|
391
440
|
<el-popover
|
|
392
|
-
|
|
441
|
+
:visible="hoverVisibilities[8].value"
|
|
393
442
|
content="Open new map"
|
|
394
443
|
placement="right"
|
|
395
|
-
:
|
|
396
|
-
|
|
397
|
-
popper-class="flatmap-popper right-popper"
|
|
444
|
+
:teleported="false"
|
|
445
|
+
popper-class="flatmap-popper"
|
|
398
446
|
>
|
|
399
|
-
<
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
447
|
+
<template #reference>
|
|
448
|
+
<map-svg-icon
|
|
449
|
+
v-if="enableOpenMapUI && openMapOptions.length > 0"
|
|
450
|
+
ref="openMapRef"
|
|
451
|
+
icon="openMap"
|
|
452
|
+
class="icon-button"
|
|
453
|
+
@mouseover.native="showToolitip(8)"
|
|
454
|
+
@mouseout.native="hideToolitip(8)"
|
|
455
|
+
/>
|
|
456
|
+
</template>
|
|
408
457
|
</el-popover>
|
|
409
458
|
</el-row>
|
|
410
459
|
<el-row>
|
|
411
460
|
<el-popover
|
|
412
461
|
content="Change settings"
|
|
413
462
|
placement="right"
|
|
414
|
-
|
|
415
|
-
:
|
|
463
|
+
:visible="hoverVisibilities[3].value"
|
|
464
|
+
:teleported="false"
|
|
416
465
|
trigger="manual"
|
|
417
|
-
popper-class="flatmap-popper
|
|
466
|
+
popper-class="flatmap-popper"
|
|
418
467
|
>
|
|
419
|
-
<
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
468
|
+
<template #reference>
|
|
469
|
+
<map-svg-icon
|
|
470
|
+
ref="backgroundIconRef"
|
|
471
|
+
icon="changeBckgd"
|
|
472
|
+
class="icon-button"
|
|
473
|
+
@mouseover.native="showToolitip(3)"
|
|
474
|
+
@mouseout.native="hideToolitip(3)"
|
|
475
|
+
/>
|
|
476
|
+
</template>
|
|
427
477
|
</el-popover>
|
|
428
478
|
</el-row>
|
|
429
479
|
</div>
|
|
@@ -439,97 +489,85 @@
|
|
|
439
489
|
</template>
|
|
440
490
|
|
|
441
491
|
<script>
|
|
492
|
+
import { ref } from 'vue'
|
|
493
|
+
import {
|
|
494
|
+
WarningFilled as ElIconWarningFilled,
|
|
495
|
+
ArrowDown as ElIconArrowDown,
|
|
496
|
+
ArrowLeft as ElIconArrowLeft,
|
|
497
|
+
} from '@element-plus/icons-vue'
|
|
442
498
|
/* eslint-disable no-alert, no-console */
|
|
443
|
-
import
|
|
444
|
-
import
|
|
445
|
-
import
|
|
446
|
-
import
|
|
447
|
-
import { MapSvgIcon, MapSvgSpriteColor } from
|
|
448
|
-
import SvgLegends from
|
|
499
|
+
import Tooltip from './Tooltip.vue'
|
|
500
|
+
import SelectionsGroup from './SelectionsGroup.vue'
|
|
501
|
+
import TreeControls from './TreeControls.vue'
|
|
502
|
+
//import { MapSvgIcon, MapSvgSpriteColor } from '@abi-software/svg-sprite'
|
|
503
|
+
import { MapSvgIcon, MapSvgSpriteColor } from 'vue3-component-svg-sprite'
|
|
504
|
+
import SvgLegends from './legends/SvgLegends.vue'
|
|
449
505
|
import {
|
|
450
|
-
Button,
|
|
451
|
-
Col,
|
|
452
|
-
Loading,
|
|
453
|
-
Radio,
|
|
454
|
-
RadioGroup,
|
|
455
|
-
Row,
|
|
456
|
-
Select,
|
|
457
|
-
} from
|
|
458
|
-
import
|
|
459
|
-
import
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
Vue.use(Loading.directive);
|
|
468
|
-
Vue.use(Radio);
|
|
469
|
-
Vue.use(RadioGroup);
|
|
470
|
-
Vue.use(Row);
|
|
471
|
-
Vue.use(Select);
|
|
472
|
-
const ResizeSensor = require("css-element-queries/src/ResizeSensor");
|
|
473
|
-
|
|
474
|
-
const processTaxon = (flatmapAPI, taxonIdentifiers) => {
|
|
475
|
-
let processed = [];
|
|
476
|
-
taxonIdentifiers.forEach((taxon) => {
|
|
477
|
-
findTaxonomyLabel(flatmapAPI, taxon).then((value) => {
|
|
478
|
-
const item = { taxon, label: value };
|
|
479
|
-
processed.push(item);
|
|
480
|
-
});
|
|
481
|
-
});
|
|
482
|
-
|
|
483
|
-
return processed;
|
|
484
|
-
};
|
|
506
|
+
ElButton as Button,
|
|
507
|
+
ElCol as Col,
|
|
508
|
+
ElLoading as Loading,
|
|
509
|
+
ElRadio as Radio,
|
|
510
|
+
ElRadioGroup as RadioGroup,
|
|
511
|
+
ElRow as Row,
|
|
512
|
+
ElSelect as Select,
|
|
513
|
+
} from 'element-plus'
|
|
514
|
+
import flatmapMarker from '../icons/flatmap-marker'
|
|
515
|
+
import {
|
|
516
|
+
FlatmapQueries,
|
|
517
|
+
findTaxonomyLabel,
|
|
518
|
+
} from '../services/flatmapQueries.js'
|
|
519
|
+
import yellowstar from '../icons/yellowstar'
|
|
520
|
+
import ResizeSensor from 'css-element-queries/src/ResizeSensor'
|
|
521
|
+
import * as flatmap from '@abi-software/flatmap-viewer'
|
|
522
|
+
|
|
485
523
|
|
|
486
524
|
const processFTUs = (parent, key) => {
|
|
487
|
-
const ftus = []
|
|
488
|
-
let items = parent.organs ? parent.organs : parent.ftus
|
|
525
|
+
const ftus = []
|
|
526
|
+
let items = parent.organs ? parent.organs : parent.ftus
|
|
489
527
|
const children = items
|
|
490
528
|
? items.filter(
|
|
491
529
|
(obj, index) =>
|
|
492
530
|
items.findIndex((item) => item.label === obj.label) === index
|
|
493
531
|
)
|
|
494
|
-
: undefined
|
|
532
|
+
: undefined
|
|
495
533
|
if (children) {
|
|
496
534
|
children.forEach((child) => {
|
|
497
535
|
const data = {
|
|
498
536
|
label: child.label,
|
|
499
537
|
models: child.models,
|
|
500
538
|
key: `${key}.${child.label}`,
|
|
501
|
-
}
|
|
502
|
-
const grandChildren = processFTUs(child, data.key)
|
|
539
|
+
}
|
|
540
|
+
const grandChildren = processFTUs(child, data.key)
|
|
503
541
|
if (grandChildren.length > 0) {
|
|
504
|
-
data.children = grandChildren
|
|
542
|
+
data.children = grandChildren
|
|
505
543
|
}
|
|
506
|
-
ftus.push(data)
|
|
507
|
-
})
|
|
544
|
+
ftus.push(data)
|
|
545
|
+
})
|
|
508
546
|
}
|
|
509
|
-
return ftus
|
|
510
|
-
}
|
|
547
|
+
return ftus
|
|
548
|
+
}
|
|
511
549
|
|
|
512
550
|
const processSystems = (systems) => {
|
|
513
|
-
const allSystems = []
|
|
551
|
+
const allSystems = []
|
|
514
552
|
if (systems && systems.length > 0) {
|
|
515
|
-
const data = { label:
|
|
553
|
+
const data = { label: 'All', key: 'All', children: [] }
|
|
516
554
|
systems.forEach((system) => {
|
|
517
555
|
const child = {
|
|
518
556
|
colour: system.colour,
|
|
519
557
|
enabled: system.enabled,
|
|
520
558
|
label: system.id,
|
|
521
559
|
key: system.id,
|
|
522
|
-
}
|
|
523
|
-
const children = processFTUs(system, child.key)
|
|
524
|
-
if (children.length > 0) child.children = children
|
|
525
|
-
data.children.push(child)
|
|
526
|
-
})
|
|
560
|
+
}
|
|
561
|
+
const children = processFTUs(system, child.key)
|
|
562
|
+
if (children.length > 0) child.children = children
|
|
563
|
+
data.children.push(child)
|
|
564
|
+
})
|
|
527
565
|
|
|
528
|
-
allSystems.push(data)
|
|
566
|
+
allSystems.push(data)
|
|
529
567
|
}
|
|
530
568
|
|
|
531
|
-
return allSystems
|
|
532
|
-
}
|
|
569
|
+
return allSystems
|
|
570
|
+
}
|
|
533
571
|
|
|
534
572
|
const createUnfilledTooltipData = function () {
|
|
535
573
|
return {
|
|
@@ -540,66 +578,104 @@ const createUnfilledTooltipData = function () {
|
|
|
540
578
|
originsWithDatasets: [],
|
|
541
579
|
componentsWithDatasets: [],
|
|
542
580
|
resource: undefined,
|
|
543
|
-
}
|
|
544
|
-
}
|
|
581
|
+
}
|
|
582
|
+
}
|
|
545
583
|
|
|
546
584
|
export default {
|
|
547
|
-
name:
|
|
585
|
+
name: 'FlatmapVuer',
|
|
548
586
|
components: {
|
|
587
|
+
Button,
|
|
588
|
+
Col,
|
|
589
|
+
Loading,
|
|
590
|
+
Radio,
|
|
591
|
+
RadioGroup,
|
|
592
|
+
Row,
|
|
593
|
+
Select,
|
|
549
594
|
MapSvgIcon,
|
|
550
595
|
MapSvgSpriteColor,
|
|
551
596
|
Tooltip,
|
|
552
597
|
TreeControls,
|
|
553
598
|
SelectionsGroup,
|
|
554
599
|
SvgLegends,
|
|
600
|
+
ElIconWarningFilled,
|
|
601
|
+
ElIconArrowDown,
|
|
602
|
+
ElIconArrowLeft,
|
|
555
603
|
},
|
|
556
604
|
beforeCreate: function () {
|
|
557
|
-
this.mapManager = undefined
|
|
558
|
-
this.mapImp = undefined
|
|
605
|
+
this.mapManager = undefined
|
|
606
|
+
this.mapImp = undefined
|
|
559
607
|
//The state watcher may triggered before
|
|
560
608
|
//created causing issue, This flag will
|
|
561
609
|
//resolve this issue.
|
|
562
|
-
this.setStateRequired = false
|
|
610
|
+
this.setStateRequired = false
|
|
563
611
|
},
|
|
564
612
|
methods: {
|
|
565
613
|
viewLatestMap: function () {
|
|
566
|
-
let biologicalSex = this.biologicalSex ? this.biologicalSex : undefined
|
|
614
|
+
let biologicalSex = this.biologicalSex ? this.biologicalSex : undefined
|
|
567
615
|
//Human requires special handling
|
|
568
|
-
if (this.entry ===
|
|
569
|
-
biologicalSex =
|
|
616
|
+
if (this.entry === 'NCBITaxon:9606') {
|
|
617
|
+
biologicalSex = 'PATO:0000384'
|
|
570
618
|
}
|
|
571
619
|
const state = {
|
|
572
620
|
entry: this.entry,
|
|
573
621
|
biologicalSex,
|
|
574
622
|
viewport: this.mapImp.getState(),
|
|
575
|
-
}
|
|
576
|
-
this.$emit(
|
|
623
|
+
}
|
|
624
|
+
this.$emit('view-latest-map', state)
|
|
577
625
|
},
|
|
578
626
|
backgroundChangeCallback: function (colour) {
|
|
579
|
-
this.currentBackground = colour
|
|
627
|
+
this.currentBackground = colour
|
|
580
628
|
if (this.mapImp) {
|
|
581
|
-
this.mapImp.setBackgroundColour(this.currentBackground, 1)
|
|
629
|
+
this.mapImp.setBackgroundColour(this.currentBackground, 1)
|
|
582
630
|
}
|
|
583
631
|
},
|
|
632
|
+
processSystems: function (systems) {
|
|
633
|
+
this.systems.length = 0
|
|
634
|
+
if (systems && systems.length > 0) {
|
|
635
|
+
const data = { label: 'All', key: 'All', children: [] }
|
|
636
|
+
systems.forEach((system) => {
|
|
637
|
+
const child = {
|
|
638
|
+
colour: system.colour,
|
|
639
|
+
enabled: system.enabled,
|
|
640
|
+
label: system.id,
|
|
641
|
+
key: system.id,
|
|
642
|
+
}
|
|
643
|
+
const children = processFTUs(system, child.key)
|
|
644
|
+
if (children.length > 0) child.children = children
|
|
645
|
+
data.children.push(child)
|
|
646
|
+
})
|
|
647
|
+
|
|
648
|
+
this.systems.push(data)
|
|
649
|
+
}
|
|
650
|
+
},
|
|
651
|
+
processTaxon: function (flatmapAPI, taxonIdentifiers) {
|
|
652
|
+
this.taxonConnectivity.length = 0
|
|
653
|
+
taxonIdentifiers.forEach((taxon) => {
|
|
654
|
+
findTaxonomyLabel(flatmapAPI, taxon).then((value) => {
|
|
655
|
+
const item = { taxon, label: value }
|
|
656
|
+
this.taxonConnectivity.push(item)
|
|
657
|
+
})
|
|
658
|
+
})
|
|
659
|
+
},
|
|
584
660
|
toggleDrawer: function () {
|
|
585
|
-
this.drawerOpen = !this.drawerOpen
|
|
661
|
+
this.drawerOpen = !this.drawerOpen
|
|
586
662
|
},
|
|
587
663
|
/**
|
|
588
664
|
* Function to toggle colour/greyscale of organs.
|
|
589
665
|
*/
|
|
590
666
|
setColour: function (flag) {
|
|
591
|
-
this.colourRadio = flag
|
|
667
|
+
this.colourRadio = flag
|
|
592
668
|
if (this.mapImp) {
|
|
593
|
-
this.mapImp.setColour({ colour: flag, outline: this.outlinesRadio })
|
|
669
|
+
this.mapImp.setColour({ colour: flag, outline: this.outlinesRadio })
|
|
594
670
|
}
|
|
595
671
|
},
|
|
596
672
|
/**
|
|
597
673
|
* Function to toggle outlines f organs.
|
|
598
674
|
*/
|
|
599
675
|
setOutlines: function (flag) {
|
|
600
|
-
this.outlineRadio = flag
|
|
676
|
+
this.outlineRadio = flag
|
|
601
677
|
if (this.mapImp) {
|
|
602
|
-
this.mapImp.setColour({ colour: this.colourRadio, outline: flag })
|
|
678
|
+
this.mapImp.setColour({ colour: this.colourRadio, outline: flag })
|
|
603
679
|
}
|
|
604
680
|
},
|
|
605
681
|
/**
|
|
@@ -608,21 +684,21 @@ export default {
|
|
|
608
684
|
*/
|
|
609
685
|
resetView: function () {
|
|
610
686
|
if (this.mapImp) {
|
|
611
|
-
this.mapImp.resetMap()
|
|
687
|
+
this.mapImp.resetMap()
|
|
612
688
|
if (this.$refs.centrelinesSelection) {
|
|
613
|
-
this.$refs.centrelinesSelection.reset()
|
|
689
|
+
this.$refs.centrelinesSelection.reset()
|
|
614
690
|
}
|
|
615
691
|
if (this.$refs.skcanSelection) {
|
|
616
|
-
this.$refs.skcanSelection.reset()
|
|
692
|
+
this.$refs.skcanSelection.reset()
|
|
617
693
|
}
|
|
618
694
|
if (this.$refs.layersSelection) {
|
|
619
|
-
this.$refs.layersSelection.reset()
|
|
695
|
+
this.$refs.layersSelection.reset()
|
|
620
696
|
}
|
|
621
697
|
if (this.$refs.systemsSelection) {
|
|
622
|
-
this.$refs.pathwaysSelection.reset()
|
|
698
|
+
this.$refs.pathwaysSelection.reset()
|
|
623
699
|
}
|
|
624
700
|
if (this.$refs.pathwaysSelection) {
|
|
625
|
-
this.$refs.pathwaysSelection.reset()
|
|
701
|
+
this.$refs.pathwaysSelection.reset()
|
|
626
702
|
}
|
|
627
703
|
}
|
|
628
704
|
},
|
|
@@ -632,7 +708,7 @@ export default {
|
|
|
632
708
|
*/
|
|
633
709
|
zoomIn: function () {
|
|
634
710
|
if (this.mapImp) {
|
|
635
|
-
this.mapImp.zoomIn()
|
|
711
|
+
this.mapImp.zoomIn()
|
|
636
712
|
}
|
|
637
713
|
},
|
|
638
714
|
/**
|
|
@@ -641,102 +717,103 @@ export default {
|
|
|
641
717
|
*/
|
|
642
718
|
zoomOut: function () {
|
|
643
719
|
if (this.mapImp) {
|
|
644
|
-
this.mapImp.zoomOut()
|
|
720
|
+
this.mapImp.zoomOut()
|
|
645
721
|
}
|
|
646
722
|
},
|
|
647
723
|
centreLinesSelected: function (payload) {
|
|
648
724
|
if (this.mapImp) {
|
|
649
|
-
this.mapImp.enableCentrelines(payload.value)
|
|
725
|
+
this.mapImp.enableCentrelines(payload.value)
|
|
650
726
|
}
|
|
651
727
|
},
|
|
652
728
|
sckanSelected: function (payload) {
|
|
653
729
|
if (this.mapImp) {
|
|
654
|
-
this.mapImp.enableSckanPath(payload.key, payload.value)
|
|
730
|
+
this.mapImp.enableSckanPath(payload.key, payload.value)
|
|
655
731
|
}
|
|
656
732
|
},
|
|
657
733
|
checkAllSCKAN: function (payload) {
|
|
658
734
|
if (this.mapImp) {
|
|
659
735
|
payload.keys.forEach((key) =>
|
|
660
|
-
this.mapImp.enableSckanPath(key, payload.value)
|
|
736
|
+
this.mapImp.enableSckanPath(key, payload.value)
|
|
737
|
+
)
|
|
661
738
|
}
|
|
662
739
|
},
|
|
663
740
|
highlightConnectedPaths: function (payload) {
|
|
664
741
|
if (this.mapImp) {
|
|
665
|
-
let paths = [...this.mapImp.pathModelNodes(payload)]
|
|
742
|
+
let paths = [...this.mapImp.pathModelNodes(payload)]
|
|
666
743
|
// The line below matches the paths to the annIdToFeatureId map to get the feature ids
|
|
667
744
|
|
|
668
|
-
let pathFeatures = paths.map(p=>this.mapImp.featureProperties(p))
|
|
669
|
-
let toHighlight = []
|
|
670
|
-
pathFeatures.forEach(p=>{
|
|
671
|
-
this.mapImp.nodePathModels(p.featureId).forEach(f=>{
|
|
672
|
-
toHighlight.push(f)
|
|
745
|
+
let pathFeatures = paths.map((p) => this.mapImp.featureProperties(p))
|
|
746
|
+
let toHighlight = []
|
|
747
|
+
pathFeatures.forEach((p) => {
|
|
748
|
+
this.mapImp.nodePathModels(p.featureId).forEach((f) => {
|
|
749
|
+
toHighlight.push(f)
|
|
673
750
|
})
|
|
674
751
|
})
|
|
675
752
|
// display connected paths
|
|
676
|
-
this.mapImp.zoomToFeatures(toHighlight, {noZoomIn: true})
|
|
753
|
+
this.mapImp.zoomToFeatures(toHighlight, { noZoomIn: true })
|
|
677
754
|
}
|
|
678
755
|
},
|
|
679
756
|
systemSelected: function (payload) {
|
|
680
757
|
if (this.mapImp) {
|
|
681
|
-
this.mapImp.enableSystem(payload.key, payload.value)
|
|
758
|
+
this.mapImp.enableSystem(payload.key, payload.value)
|
|
682
759
|
}
|
|
683
760
|
},
|
|
684
761
|
checkAllSystems: function (flag) {
|
|
685
762
|
if (this.mapImp) {
|
|
686
763
|
this.systems[0].children.forEach((key) =>
|
|
687
764
|
this.mapImp.enableSystem(key.label, flag)
|
|
688
|
-
)
|
|
765
|
+
)
|
|
689
766
|
}
|
|
690
767
|
},
|
|
691
768
|
ftuSelected: function (models) {
|
|
692
|
-
this.searchAndShowResult(models, true)
|
|
769
|
+
this.searchAndShowResult(models, true)
|
|
693
770
|
},
|
|
694
771
|
layersSelected: function (payload) {
|
|
695
772
|
if (this.mapImp) {
|
|
696
|
-
this.mapImp.enableLayer(payload.key, payload.value)
|
|
773
|
+
this.mapImp.enableLayer(payload.key, payload.value)
|
|
697
774
|
}
|
|
698
775
|
},
|
|
699
776
|
checkAllLayers: function (payload) {
|
|
700
777
|
if (this.mapImp) {
|
|
701
778
|
payload.keys.forEach((key) =>
|
|
702
779
|
this.mapImp.enableLayer(key, payload.value)
|
|
703
|
-
)
|
|
780
|
+
)
|
|
704
781
|
}
|
|
705
782
|
},
|
|
706
783
|
taxonsSelected: function (payload) {
|
|
707
784
|
if (this.mapImp) {
|
|
708
|
-
this.mapImp.enableConnectivityByTaxonIds(payload.key, payload.value)
|
|
785
|
+
this.mapImp.enableConnectivityByTaxonIds(payload.key, payload.value)
|
|
709
786
|
}
|
|
710
787
|
},
|
|
711
788
|
checkAllTaxons: function (payload) {
|
|
712
789
|
if (this.mapImp) {
|
|
713
790
|
payload.keys.forEach((key) =>
|
|
714
791
|
this.mapImp.enableConnectivityByTaxonIds(key, payload.value)
|
|
715
|
-
)
|
|
792
|
+
)
|
|
716
793
|
}
|
|
717
794
|
},
|
|
718
795
|
pathwaysSelected: function (payload) {
|
|
719
796
|
if (this.mapImp) {
|
|
720
|
-
this.mapImp.enablePath(payload.key, payload.value)
|
|
797
|
+
this.mapImp.enablePath(payload.key, payload.value)
|
|
721
798
|
}
|
|
722
799
|
},
|
|
723
800
|
checkAllPathways: function (payload) {
|
|
724
801
|
if (this.mapImp) {
|
|
725
802
|
payload.keys.forEach((key) =>
|
|
726
803
|
this.mapImp.enablePath(key, payload.value)
|
|
727
|
-
)
|
|
804
|
+
)
|
|
728
805
|
}
|
|
729
806
|
},
|
|
730
807
|
enablePanZoomEvents: function (flag) {
|
|
731
|
-
this.mapImp.enablePanZoomEvents(flag)
|
|
808
|
+
this.mapImp.enablePanZoomEvents(flag)
|
|
732
809
|
},
|
|
733
810
|
eventCallback: function () {
|
|
734
811
|
return (eventType, data, ...args) => {
|
|
735
|
-
if (eventType !==
|
|
736
|
-
const label = data.label
|
|
737
|
-
const resource = [data.models]
|
|
738
|
-
const taxonomy = this.entry
|
|
739
|
-
const biologicalSex = this.biologicalSex
|
|
812
|
+
if (eventType !== 'pan-zoom') {
|
|
813
|
+
const label = data.label
|
|
814
|
+
const resource = [data.models]
|
|
815
|
+
const taxonomy = this.entry
|
|
816
|
+
const biologicalSex = this.biologicalSex
|
|
740
817
|
const payload = {
|
|
741
818
|
dataset: data.dataset,
|
|
742
819
|
biologicalSex: biologicalSex,
|
|
@@ -749,44 +826,49 @@ export default {
|
|
|
749
826
|
provenanceTaxonomy: data.taxons
|
|
750
827
|
? JSON.parse(data.taxons)
|
|
751
828
|
: undefined,
|
|
752
|
-
}
|
|
753
|
-
if (eventType ===
|
|
754
|
-
if (this.viewingMode ===
|
|
755
|
-
this.highlightConnectedPaths([data.models])
|
|
829
|
+
}
|
|
830
|
+
if (eventType === 'click') {
|
|
831
|
+
if (this.viewingMode === 'Network Discovery') {
|
|
832
|
+
this.highlightConnectedPaths([data.models])
|
|
756
833
|
} else {
|
|
757
|
-
this.currentActive = data.models ? data.models :
|
|
834
|
+
this.currentActive = data.models ? data.models : ''
|
|
758
835
|
}
|
|
759
|
-
} else if (
|
|
760
|
-
|
|
761
|
-
this.
|
|
836
|
+
} else if (
|
|
837
|
+
eventType === 'mouseenter' &&
|
|
838
|
+
!(this.viewingMode === 'Network Discovery')
|
|
839
|
+
) {
|
|
840
|
+
this.currentHover = data.models ? data.models : ''
|
|
762
841
|
}
|
|
763
842
|
if (
|
|
764
843
|
data &&
|
|
765
|
-
data.type !==
|
|
766
|
-
eventType ===
|
|
767
|
-
!(this.viewingMode ===
|
|
844
|
+
data.type !== 'marker' &&
|
|
845
|
+
eventType === 'click' &&
|
|
846
|
+
!(this.viewingMode === 'Network Discovery')
|
|
768
847
|
) {
|
|
769
|
-
this.checkAndCreatePopups(payload)
|
|
848
|
+
this.checkAndCreatePopups(payload)
|
|
770
849
|
}
|
|
771
|
-
this.$emit(
|
|
850
|
+
this.$emit('resource-selected', payload)
|
|
772
851
|
} else {
|
|
773
|
-
this.$emit(
|
|
852
|
+
this.$emit('pan-zoom-callback', data)
|
|
774
853
|
}
|
|
775
|
-
}
|
|
854
|
+
}
|
|
776
855
|
},
|
|
777
856
|
// checkNeuronClicked shows a neuron path pop up if a path was recently clicked
|
|
778
857
|
checkAndCreatePopups: async function (data) {
|
|
779
858
|
// Call flatmap database to get the connection data
|
|
780
|
-
if (this.viewingMode
|
|
859
|
+
if (this.viewingMode === 'Annotation') {
|
|
781
860
|
if (data.feature && data.feature.featureId && data.feature.models) {
|
|
782
|
-
this.annotationEntry = {
|
|
783
|
-
|
|
861
|
+
this.annotationEntry = {
|
|
862
|
+
...data.feature,
|
|
863
|
+
resourceId: this.serverUUID,
|
|
864
|
+
}
|
|
865
|
+
this.displayTooltip(data.feature.models)
|
|
784
866
|
} else {
|
|
785
|
-
this.annotation = {}
|
|
867
|
+
this.annotation = {}
|
|
786
868
|
}
|
|
787
869
|
} else {
|
|
788
870
|
let results =
|
|
789
|
-
await this.flatmapQueries.retrieveFlatmapKnowledgeForEvent(data)
|
|
871
|
+
await this.flatmapQueries.retrieveFlatmapKnowledgeForEvent(data)
|
|
790
872
|
// The line below only creates the tooltip if some data was found on the path
|
|
791
873
|
// result 0 is the connection, result 1 is the pubmed results from flatmap
|
|
792
874
|
if (
|
|
@@ -794,141 +876,144 @@ export default {
|
|
|
794
876
|
results[1] ||
|
|
795
877
|
(data.feature.hyperlinks && data.feature.hyperlinks.length > 0)
|
|
796
878
|
) {
|
|
797
|
-
this.resourceForTooltip = data.resource[0]
|
|
798
|
-
data.resourceForTooltip = this.resourceForTooltip
|
|
799
|
-
this.createTooltipFromNeuronCuration(data)
|
|
879
|
+
this.resourceForTooltip = data.resource[0]
|
|
880
|
+
data.resourceForTooltip = this.resourceForTooltip
|
|
881
|
+
this.createTooltipFromNeuronCuration(data)
|
|
800
882
|
}
|
|
801
883
|
}
|
|
802
884
|
},
|
|
803
885
|
popUpCssHacks: function () {
|
|
804
886
|
// Below is a hack to remove flatmap tooltips while popup is open
|
|
805
|
-
let ftooltip = document.querySelector(
|
|
806
|
-
if (ftooltip) ftooltip.style.display =
|
|
807
|
-
document.querySelector(
|
|
808
|
-
|
|
809
|
-
this.$refs.tooltip.$el.style.display =
|
|
810
|
-
document.querySelector(
|
|
811
|
-
document.querySelector(
|
|
812
|
-
|
|
813
|
-
};
|
|
887
|
+
let ftooltip = document.querySelector('.flatmap-tooltip-popup')
|
|
888
|
+
if (ftooltip) ftooltip.style.display = 'none'
|
|
889
|
+
document.querySelector('.maplibregl-popup-close-button').style.display =
|
|
890
|
+
'block'
|
|
891
|
+
this.$refs.tooltip.$el.style.display = 'flex'
|
|
892
|
+
document.querySelector('.maplibregl-popup-close-button').onclick = () => {
|
|
893
|
+
document.querySelector('.flatmap-tooltip-popup').style.display = 'block'
|
|
894
|
+
}
|
|
814
895
|
},
|
|
815
896
|
closeTooltip: function () {
|
|
816
|
-
this.$refs.tooltip.$el.style.display =
|
|
817
|
-
document.querySelectorAll(
|
|
818
|
-
item.style.display =
|
|
819
|
-
})
|
|
897
|
+
this.$refs.tooltip.$el.style.display = 'none'
|
|
898
|
+
document.querySelectorAll('.maplibregl-popup').forEach((item) => {
|
|
899
|
+
item.style.display = 'none'
|
|
900
|
+
})
|
|
820
901
|
},
|
|
821
902
|
createTooltipFromNeuronCuration: async function (data) {
|
|
822
|
-
this.tooltipEntry = await this.flatmapQueries.createTooltipData(data)
|
|
823
|
-
this.displayTooltip(data.resource[0])
|
|
903
|
+
this.tooltipEntry = await this.flatmapQueries.createTooltipData(data)
|
|
904
|
+
this.displayTooltip(data.resource[0])
|
|
824
905
|
},
|
|
825
906
|
// Keeping this as an API
|
|
826
907
|
showPopup: function (featureId, node, options) {
|
|
827
|
-
let myOptions = options
|
|
908
|
+
let myOptions = options
|
|
828
909
|
if (this.mapImp) {
|
|
829
910
|
if (myOptions) {
|
|
830
|
-
if (!myOptions.className) myOptions.className =
|
|
911
|
+
if (!myOptions.className) myOptions.className = 'custom-popup'
|
|
831
912
|
} else {
|
|
832
|
-
myOptions = { className:
|
|
913
|
+
myOptions = { className: 'custom-popup', positionAtLastClick: true }
|
|
833
914
|
}
|
|
834
|
-
this.mapImp.showPopup(featureId, node, myOptions)
|
|
915
|
+
this.mapImp.showPopup(featureId, node, myOptions)
|
|
835
916
|
}
|
|
836
917
|
},
|
|
837
918
|
showMarkerPopup: function (featureId, node, options) {
|
|
838
919
|
if (this.mapImp) {
|
|
839
|
-
this.mapImp.showMarkerPopup(featureId, node, options)
|
|
920
|
+
this.mapImp.showMarkerPopup(featureId, node, options)
|
|
840
921
|
}
|
|
841
922
|
},
|
|
842
923
|
closeMinimap: function () {
|
|
843
924
|
let minimapEl = this.$refs.flatmapContainer.querySelector(
|
|
844
|
-
|
|
845
|
-
)
|
|
925
|
+
'.maplibregl-ctrl-minimap'
|
|
926
|
+
) // find minimap
|
|
846
927
|
if (this.minimapSmall) {
|
|
847
928
|
//switch the classes on the minimap
|
|
848
|
-
minimapEl.classList.add(
|
|
849
|
-
minimapEl.classList.remove(
|
|
929
|
+
minimapEl.classList.add('enlarge')
|
|
930
|
+
minimapEl.classList.remove('shrink')
|
|
850
931
|
} else {
|
|
851
|
-
minimapEl.classList.add(
|
|
852
|
-
minimapEl.classList.remove(
|
|
932
|
+
minimapEl.classList.add('shrink')
|
|
933
|
+
minimapEl.classList.remove('enlarge')
|
|
853
934
|
}
|
|
854
|
-
this.minimapSmall = !this.minimapSmall
|
|
935
|
+
this.minimapSmall = !this.minimapSmall
|
|
855
936
|
},
|
|
856
937
|
addResizeButtonToMinimap: function () {
|
|
857
938
|
let minimapEl = this.$refs.flatmapContainer.querySelector(
|
|
858
|
-
|
|
859
|
-
)
|
|
939
|
+
'.maplibregl-ctrl-minimap'
|
|
940
|
+
)
|
|
860
941
|
if (minimapEl) {
|
|
861
|
-
this.$refs.minimapResize
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
942
|
+
if (this.$refs.minimapResize &&
|
|
943
|
+
this.$refs.minimapResize.$el.parentNode) {
|
|
944
|
+
this.$refs.minimapResize.$el.parentNode.removeChild(
|
|
945
|
+
this.$refs.minimapResize.$el)
|
|
946
|
+
}
|
|
947
|
+
minimapEl.appendChild(this.$refs.minimapResize.$el)
|
|
948
|
+
this.minimapResizeShow = true
|
|
866
949
|
}
|
|
867
950
|
},
|
|
868
951
|
setHelpMode: function (helpMode) {
|
|
869
952
|
if (helpMode) {
|
|
870
|
-
this.inHelp = true
|
|
953
|
+
this.inHelp = true
|
|
871
954
|
this.hoverVisibilities.forEach((item) => {
|
|
872
|
-
item.value = true
|
|
873
|
-
})
|
|
874
|
-
this.openFlatmapHelpPopup()
|
|
955
|
+
item.value = true
|
|
956
|
+
})
|
|
957
|
+
this.openFlatmapHelpPopup()
|
|
875
958
|
} else {
|
|
876
|
-
this.inHelp = false
|
|
959
|
+
this.inHelp = false
|
|
877
960
|
this.hoverVisibilities.forEach((item) => {
|
|
878
|
-
item.value = false
|
|
879
|
-
})
|
|
880
|
-
this.closeFlatmapHelpPopup()
|
|
961
|
+
item.value = false
|
|
962
|
+
})
|
|
963
|
+
this.closeFlatmapHelpPopup()
|
|
881
964
|
}
|
|
882
965
|
},
|
|
883
966
|
showToolitip: function (tooltipNumber) {
|
|
884
967
|
if (!this.inHelp) {
|
|
885
|
-
clearTimeout(this.tooltipWait[tooltipNumber])
|
|
968
|
+
clearTimeout(this.tooltipWait[tooltipNumber])
|
|
886
969
|
this.tooltipWait[tooltipNumber] = setTimeout(() => {
|
|
887
|
-
this.hoverVisibilities[tooltipNumber].value = true
|
|
888
|
-
}, 500)
|
|
970
|
+
this.hoverVisibilities[tooltipNumber].value = true
|
|
971
|
+
}, 500)
|
|
889
972
|
}
|
|
890
973
|
},
|
|
891
974
|
hideToolitip: function (tooltipNumber) {
|
|
892
975
|
if (!this.inHelp) {
|
|
893
|
-
clearTimeout(this.tooltipWait[tooltipNumber])
|
|
976
|
+
clearTimeout(this.tooltipWait[tooltipNumber])
|
|
894
977
|
this.tooltipWait[tooltipNumber] = setTimeout(() => {
|
|
895
|
-
this.hoverVisibilities[tooltipNumber].value = false
|
|
896
|
-
}, 500)
|
|
978
|
+
this.hoverVisibilities[tooltipNumber].value = false
|
|
979
|
+
}, 500)
|
|
897
980
|
}
|
|
898
981
|
},
|
|
899
982
|
displayTooltip: function (feature) {
|
|
900
983
|
this.mapImp.showPopup(
|
|
901
984
|
this.mapImp.modelFeatureIds(feature)[0],
|
|
902
985
|
this.$refs.tooltip.$el,
|
|
903
|
-
{ className:
|
|
904
|
-
)
|
|
905
|
-
this.popUpCssHacks()
|
|
986
|
+
{ className: 'flatmapvuer-popover', positionAtLastClick: true }
|
|
987
|
+
)
|
|
988
|
+
this.popUpCssHacks()
|
|
906
989
|
},
|
|
907
990
|
openFlatmapHelpPopup: function () {
|
|
908
991
|
if (this.mapImp) {
|
|
909
|
-
let heartId = this.mapImp.
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
992
|
+
let heartId = this.mapImp.modelFeatureIds('UBERON:0000948')
|
|
993
|
+
if (heartId && heartId.length > 0) {
|
|
994
|
+
const elm = 'Click for more information'
|
|
995
|
+
this.mapImp.showPopup(heartId[0], elm, {
|
|
996
|
+
anchor: 'top',
|
|
997
|
+
className: 'flatmap-popup-popper',
|
|
998
|
+
})
|
|
999
|
+
}
|
|
915
1000
|
}
|
|
916
1001
|
},
|
|
917
1002
|
closeFlatmapHelpPopup: function () {
|
|
918
1003
|
this.$el
|
|
919
|
-
.querySelectorAll(
|
|
1004
|
+
.querySelectorAll('.maplibregl-popup-close-button')
|
|
920
1005
|
.forEach((item) => {
|
|
921
|
-
item.click()
|
|
922
|
-
})
|
|
1006
|
+
item.click()
|
|
1007
|
+
})
|
|
923
1008
|
},
|
|
924
1009
|
getLabels: function () {
|
|
925
|
-
let labels = []
|
|
1010
|
+
let labels = []
|
|
926
1011
|
if (this.mapImp) {
|
|
927
|
-
let annotations = this.mapImp.annotations
|
|
1012
|
+
let annotations = this.mapImp.annotations
|
|
928
1013
|
for (let value of annotations.values()) {
|
|
929
|
-
if (value.label) labels.push(value.label)
|
|
1014
|
+
if (value.label) labels.push(value.label)
|
|
930
1015
|
}
|
|
931
|
-
return Array.from(new Set(labels))
|
|
1016
|
+
return Array.from(new Set(labels))
|
|
932
1017
|
}
|
|
933
1018
|
},
|
|
934
1019
|
getState: function () {
|
|
@@ -936,15 +1021,15 @@ export default {
|
|
|
936
1021
|
let state = {
|
|
937
1022
|
entry: this.entry,
|
|
938
1023
|
viewport: this.mapImp.getState(),
|
|
939
|
-
}
|
|
940
|
-
const identifier = this.mapImp.getIdentifier()
|
|
941
|
-
if (this.biologicalSex) state[
|
|
1024
|
+
}
|
|
1025
|
+
const identifier = this.mapImp.getIdentifier()
|
|
1026
|
+
if (this.biologicalSex) state['biologicalSex'] = this.biologicalSex
|
|
942
1027
|
else if (identifier && identifier.biologicalSex)
|
|
943
|
-
state[
|
|
944
|
-
if (identifier && identifier.uuid) state[
|
|
945
|
-
return state
|
|
1028
|
+
state['biologicalSex'] = identifier.biologicalSex
|
|
1029
|
+
if (identifier && identifier.uuid) state['uuid'] = identifier.uuid
|
|
1030
|
+
return state
|
|
946
1031
|
}
|
|
947
|
-
return undefined
|
|
1032
|
+
return undefined
|
|
948
1033
|
},
|
|
949
1034
|
setState: function (state) {
|
|
950
1035
|
if (state) {
|
|
@@ -955,26 +1040,26 @@ export default {
|
|
|
955
1040
|
(!state.biologicalSex || state.biologicalSex === this.biologicalSex)
|
|
956
1041
|
) {
|
|
957
1042
|
if (state.viewport) {
|
|
958
|
-
this.mapImp.setState(state.viewport)
|
|
1043
|
+
this.mapImp.setState(state.viewport)
|
|
959
1044
|
}
|
|
960
1045
|
} else {
|
|
961
|
-
this.createFlatmap(state)
|
|
1046
|
+
this.createFlatmap(state)
|
|
962
1047
|
}
|
|
963
|
-
this.setStateRequired = false
|
|
1048
|
+
this.setStateRequired = false
|
|
964
1049
|
}
|
|
965
1050
|
},
|
|
966
1051
|
restoreMapState: function (state) {
|
|
967
1052
|
if (state) {
|
|
968
|
-
if (state.viewport) this.mapImp.setState(state.viewport)
|
|
969
|
-
if (state.searchTerm) this.searchAndShowResult(state.searchTerm, true)
|
|
1053
|
+
if (state.viewport) this.mapImp.setState(state.viewport)
|
|
1054
|
+
if (state.searchTerm) this.searchAndShowResult(state.searchTerm, true)
|
|
970
1055
|
}
|
|
971
1056
|
},
|
|
972
1057
|
createFlatmap: function (state) {
|
|
973
1058
|
if (!this.mapImp && !this.loading) {
|
|
974
|
-
this.loading = true
|
|
975
|
-
let minimap = false
|
|
1059
|
+
this.loading = true
|
|
1060
|
+
let minimap = false
|
|
976
1061
|
if (this.displayMinimap) {
|
|
977
|
-
minimap = { position:
|
|
1062
|
+
minimap = { position: 'top-right' }
|
|
978
1063
|
}
|
|
979
1064
|
|
|
980
1065
|
//As for flatmap-viewer@2.2.7, see below for the documentation
|
|
@@ -993,28 +1078,28 @@ export default {
|
|
|
993
1078
|
// @arg identifier.uuid {string} The unique uuid the flatmap. If given then this exact map will
|
|
994
1079
|
// be loaded, overriding ``taxon`` and ``biologicalSex``.
|
|
995
1080
|
|
|
996
|
-
let identifier = { taxon: this.entry }
|
|
1081
|
+
let identifier = { taxon: this.entry }
|
|
997
1082
|
if (this.uuid) {
|
|
998
|
-
identifier.uuid = this.uuid
|
|
1083
|
+
identifier.uuid = this.uuid
|
|
999
1084
|
}
|
|
1000
1085
|
//This now handle the uses of uuid when resuming states
|
|
1001
1086
|
if (state) {
|
|
1002
1087
|
if (state.uuid) {
|
|
1003
|
-
identifier = { uuid: state.uuid }
|
|
1088
|
+
identifier = { uuid: state.uuid }
|
|
1004
1089
|
} else if (state.entry) {
|
|
1005
|
-
identifier.taxon = state.entry
|
|
1090
|
+
identifier.taxon = state.entry
|
|
1006
1091
|
if (state.biologicalSex) {
|
|
1007
|
-
identifier[
|
|
1008
|
-
} else if (identifier.taxon ===
|
|
1092
|
+
identifier['biologicalSex'] = state.biologicalSex
|
|
1093
|
+
} else if (identifier.taxon === 'NCBITaxon:9606') {
|
|
1009
1094
|
//For backward compatibility
|
|
1010
|
-
identifier[
|
|
1095
|
+
identifier['biologicalSex'] = 'PATO:0000384'
|
|
1011
1096
|
}
|
|
1012
1097
|
}
|
|
1013
1098
|
} else {
|
|
1014
1099
|
// Set the bioloicalSex now if map is not resumed from
|
|
1015
1100
|
// a saved state
|
|
1016
1101
|
if (this.biologicalSex) {
|
|
1017
|
-
identifier[
|
|
1102
|
+
identifier['biologicalSex'] = this.biologicalSex
|
|
1018
1103
|
}
|
|
1019
1104
|
}
|
|
1020
1105
|
|
|
@@ -1027,85 +1112,82 @@ export default {
|
|
|
1027
1112
|
//annotatable: false,
|
|
1028
1113
|
//debug: true,
|
|
1029
1114
|
featureInfo: this.featureInfo,
|
|
1030
|
-
|
|
1115
|
+
'min-zoom': this.minZoom,
|
|
1031
1116
|
layerControl: true,
|
|
1032
1117
|
pathControls: true,
|
|
1033
1118
|
searchable: this.searchable,
|
|
1034
1119
|
tooltips: this.tooltips,
|
|
1035
1120
|
minimap: minimap,
|
|
1036
1121
|
}
|
|
1037
|
-
)
|
|
1122
|
+
)
|
|
1038
1123
|
promise1.then((returnedObject) => {
|
|
1039
|
-
this.mapImp = returnedObject
|
|
1040
|
-
this.serverUUID = this.mapImp.getIdentifier().uuid
|
|
1041
|
-
this.onFlatmapReady()
|
|
1042
|
-
if (this._stateToBeSet) this.restoreMapState(this._stateToBeSet)
|
|
1124
|
+
this.mapImp = returnedObject
|
|
1125
|
+
this.serverUUID = this.mapImp.getIdentifier().uuid
|
|
1126
|
+
this.onFlatmapReady()
|
|
1127
|
+
if (this._stateToBeSet) this.restoreMapState(this._stateToBeSet)
|
|
1043
1128
|
else {
|
|
1044
|
-
this.restoreMapState(state)
|
|
1129
|
+
this.restoreMapState(state)
|
|
1045
1130
|
}
|
|
1046
|
-
})
|
|
1131
|
+
})
|
|
1047
1132
|
} else if (state) {
|
|
1048
1133
|
this._stateToBeSet = {
|
|
1049
1134
|
viewport: state.viewport,
|
|
1050
1135
|
searchTerm: state.searchTerm,
|
|
1051
|
-
}
|
|
1136
|
+
}
|
|
1052
1137
|
if (this.mapImp && !this.loading)
|
|
1053
|
-
this.restoreMapState(this._stateToBeSet)
|
|
1138
|
+
this.restoreMapState(this._stateToBeSet)
|
|
1054
1139
|
}
|
|
1055
1140
|
},
|
|
1056
1141
|
computePathControlsMaximumHeight() {
|
|
1057
|
-
const elem = this.$refs.display
|
|
1142
|
+
const elem = this.$refs.display
|
|
1058
1143
|
if (elem) {
|
|
1059
|
-
const computed = getComputedStyle(elem)
|
|
1144
|
+
const computed = getComputedStyle(elem)
|
|
1060
1145
|
const padding =
|
|
1061
|
-
parseInt(computed.paddingTop) + parseInt(computed.paddingBottom)
|
|
1062
|
-
const height = elem.clientHeight - padding
|
|
1063
|
-
this.pathwaysMaxHeight = height - 170
|
|
1146
|
+
parseInt(computed.paddingTop) + parseInt(computed.paddingBottom)
|
|
1147
|
+
const height = elem.clientHeight - padding
|
|
1148
|
+
this.pathwaysMaxHeight = height - 170
|
|
1064
1149
|
}
|
|
1065
1150
|
},
|
|
1066
1151
|
mapResize: function () {
|
|
1067
1152
|
try {
|
|
1068
|
-
this.computePathControlsMaximumHeight()
|
|
1153
|
+
this.computePathControlsMaximumHeight()
|
|
1069
1154
|
if (this.mapImp) {
|
|
1070
|
-
this.mapImp.resize()
|
|
1071
|
-
this.showMinimap(this.displayMinimap)
|
|
1155
|
+
this.mapImp.resize()
|
|
1156
|
+
this.showMinimap(this.displayMinimap)
|
|
1072
1157
|
if (this.mapImp._minimap) {
|
|
1073
|
-
this.mapImp._minimap.resize()
|
|
1158
|
+
this.mapImp._minimap._miniMap.resize()
|
|
1074
1159
|
}
|
|
1075
1160
|
}
|
|
1076
1161
|
} catch {
|
|
1077
|
-
console.error(
|
|
1162
|
+
console.error('Map resize error')
|
|
1078
1163
|
}
|
|
1079
1164
|
},
|
|
1080
1165
|
onFlatmapReady: function () {
|
|
1081
1166
|
// onFlatmapReady is used for functions that need to run immediately after the flatmap is loaded
|
|
1082
|
-
this.sensor = new ResizeSensor(this.$refs.display, this.mapResize)
|
|
1083
|
-
if (this.mapImp.options && this.mapImp.options.style ===
|
|
1084
|
-
this.isFC = true
|
|
1167
|
+
this.sensor = new ResizeSensor(this.$refs.display, this.mapResize)
|
|
1168
|
+
if (this.mapImp.options && this.mapImp.options.style === 'functional') {
|
|
1169
|
+
this.isFC = true
|
|
1085
1170
|
}
|
|
1086
|
-
this.mapImp.setBackgroundOpacity(1)
|
|
1087
|
-
this.backgroundChangeCallback(this.currentBackground)
|
|
1088
|
-
this.pathways = this.mapImp.pathTypes()
|
|
1089
|
-
this.mapImp.enableCentrelines(false)
|
|
1171
|
+
this.mapImp.setBackgroundOpacity(1)
|
|
1172
|
+
this.backgroundChangeCallback(this.currentBackground)
|
|
1173
|
+
this.pathways = this.mapImp.pathTypes()
|
|
1174
|
+
this.mapImp.enableCentrelines(false)
|
|
1090
1175
|
//Disable layers for now
|
|
1091
1176
|
//this.layers = this.mapImp.getLayers();
|
|
1092
|
-
this.
|
|
1093
|
-
this.
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
)
|
|
1097
|
-
this.
|
|
1098
|
-
this.
|
|
1099
|
-
this
|
|
1100
|
-
this.drawerOpen = true;
|
|
1101
|
-
this.mapResize();
|
|
1102
|
-
this.$emit("ready", this);
|
|
1177
|
+
this.processSystems(this.mapImp.getSystems())
|
|
1178
|
+
this.processTaxon(this.flatmapAPI, this.mapImp.taxonIdentifiers)
|
|
1179
|
+
this.addResizeButtonToMinimap()
|
|
1180
|
+
this.loading = false
|
|
1181
|
+
this.computePathControlsMaximumHeight()
|
|
1182
|
+
this.drawerOpen = true
|
|
1183
|
+
this.mapResize()
|
|
1184
|
+
this.$emit('ready', this)
|
|
1103
1185
|
},
|
|
1104
1186
|
showMinimap: function (flag) {
|
|
1105
|
-
if (this.mapImp) this.mapImp.showMinimap(flag)
|
|
1187
|
+
if (this.mapImp) this.mapImp.showMinimap(flag)
|
|
1106
1188
|
},
|
|
1107
1189
|
showPathwaysDrawer: function (flag) {
|
|
1108
|
-
this.drawerOpen = flag
|
|
1190
|
+
this.drawerOpen = flag
|
|
1109
1191
|
},
|
|
1110
1192
|
/**
|
|
1111
1193
|
* Function to display features with annotation matching the provided term,
|
|
@@ -1113,17 +1195,17 @@ export default {
|
|
|
1113
1195
|
*/
|
|
1114
1196
|
searchAndShowResult: function (term, displayLabel) {
|
|
1115
1197
|
if (this.mapImp) {
|
|
1116
|
-
if (term === undefined || term ===
|
|
1117
|
-
this.mapImp.clearSearchResults()
|
|
1118
|
-
return true
|
|
1198
|
+
if (term === undefined || term === '') {
|
|
1199
|
+
this.mapImp.clearSearchResults()
|
|
1200
|
+
return true
|
|
1119
1201
|
} else {
|
|
1120
|
-
const searchResults = this.mapImp.search(term)
|
|
1202
|
+
const searchResults = this.mapImp.search(term)
|
|
1121
1203
|
if (
|
|
1122
1204
|
searchResults &&
|
|
1123
1205
|
searchResults.results &&
|
|
1124
1206
|
searchResults.results.length > 0
|
|
1125
1207
|
) {
|
|
1126
|
-
this.mapImp.showSearchResults(searchResults)
|
|
1208
|
+
this.mapImp.showSearchResults(searchResults)
|
|
1127
1209
|
if (
|
|
1128
1210
|
displayLabel &&
|
|
1129
1211
|
searchResults.results[0].featureId &&
|
|
@@ -1131,29 +1213,29 @@ export default {
|
|
|
1131
1213
|
) {
|
|
1132
1214
|
const annotation = this.mapImp.annotation(
|
|
1133
1215
|
searchResults.results[0].featureId
|
|
1134
|
-
)
|
|
1216
|
+
)
|
|
1135
1217
|
this.mapImp.showPopup(
|
|
1136
1218
|
searchResults.results[0].featureId,
|
|
1137
1219
|
annotation.label,
|
|
1138
1220
|
{
|
|
1139
|
-
className:
|
|
1221
|
+
className: 'custom-popup',
|
|
1140
1222
|
positionAtLastClick: false,
|
|
1141
1223
|
preserveSelection: true,
|
|
1142
1224
|
}
|
|
1143
|
-
)
|
|
1225
|
+
)
|
|
1144
1226
|
}
|
|
1145
|
-
return true
|
|
1146
|
-
} else this.mapImp.clearSearchResults()
|
|
1227
|
+
return true
|
|
1228
|
+
} else this.mapImp.clearSearchResults()
|
|
1147
1229
|
}
|
|
1148
1230
|
}
|
|
1149
|
-
return false
|
|
1231
|
+
return false
|
|
1150
1232
|
},
|
|
1151
1233
|
/**
|
|
1152
1234
|
* Get the list of suggested terms
|
|
1153
1235
|
*/
|
|
1154
1236
|
searchSuggestions: function (term) {
|
|
1155
|
-
if (this.mapImp) return this.mapImp.search(term)
|
|
1156
|
-
return []
|
|
1237
|
+
if (this.mapImp) return this.mapImp.search(term)
|
|
1238
|
+
return []
|
|
1157
1239
|
},
|
|
1158
1240
|
},
|
|
1159
1241
|
props: {
|
|
@@ -1161,7 +1243,7 @@ export default {
|
|
|
1161
1243
|
uuid: String,
|
|
1162
1244
|
biologicalSex: {
|
|
1163
1245
|
type: String,
|
|
1164
|
-
default:
|
|
1246
|
+
default: '',
|
|
1165
1247
|
},
|
|
1166
1248
|
featureInfo: {
|
|
1167
1249
|
type: Boolean,
|
|
@@ -1216,23 +1298,23 @@ export default {
|
|
|
1216
1298
|
default: function () {
|
|
1217
1299
|
return [
|
|
1218
1300
|
{
|
|
1219
|
-
display:
|
|
1220
|
-
key:
|
|
1301
|
+
display: 'Open AC Map',
|
|
1302
|
+
key: 'AC',
|
|
1221
1303
|
},
|
|
1222
1304
|
{
|
|
1223
|
-
display:
|
|
1224
|
-
key:
|
|
1305
|
+
display: 'Open FC Map',
|
|
1306
|
+
key: 'FC',
|
|
1225
1307
|
},
|
|
1226
1308
|
{
|
|
1227
|
-
display:
|
|
1228
|
-
key:
|
|
1309
|
+
display: 'Open 3D Human Map',
|
|
1310
|
+
key: '3D',
|
|
1229
1311
|
},
|
|
1230
|
-
]
|
|
1312
|
+
]
|
|
1231
1313
|
},
|
|
1232
1314
|
},
|
|
1233
1315
|
showStarInLegend: {
|
|
1234
1316
|
type: Boolean,
|
|
1235
|
-
default: false
|
|
1317
|
+
default: false,
|
|
1236
1318
|
},
|
|
1237
1319
|
isLegacy: {
|
|
1238
1320
|
type: Boolean,
|
|
@@ -1242,11 +1324,6 @@ export default {
|
|
|
1242
1324
|
type: Boolean,
|
|
1243
1325
|
default: false,
|
|
1244
1326
|
},
|
|
1245
|
-
latestChangesMessage: {
|
|
1246
|
-
type: String,
|
|
1247
|
-
default:
|
|
1248
|
-
"'Observed In' controls and information are now included in AC maps. System control with FTU information has been added to the FC map.",
|
|
1249
|
-
},
|
|
1250
1327
|
/**
|
|
1251
1328
|
* State containing state of the flatmap.
|
|
1252
1329
|
*/
|
|
@@ -1259,18 +1336,18 @@ export default {
|
|
|
1259
1336
|
*/
|
|
1260
1337
|
flatmapAPI: {
|
|
1261
1338
|
type: String,
|
|
1262
|
-
default:
|
|
1339
|
+
default: 'https://mapcore-demo.org/current/flatmap/v3/',
|
|
1263
1340
|
},
|
|
1264
1341
|
sparcAPI: {
|
|
1265
1342
|
type: String,
|
|
1266
|
-
default:
|
|
1343
|
+
default: 'https://api.sparc.science/',
|
|
1267
1344
|
},
|
|
1268
1345
|
},
|
|
1269
1346
|
provide() {
|
|
1270
1347
|
return {
|
|
1271
1348
|
flatmapAPI: this.flatmapAPI,
|
|
1272
1349
|
sparcAPI: this.sparcAPI,
|
|
1273
|
-
}
|
|
1350
|
+
}
|
|
1274
1351
|
},
|
|
1275
1352
|
data: function () {
|
|
1276
1353
|
return {
|
|
@@ -1280,14 +1357,14 @@ export default {
|
|
|
1280
1357
|
pathways: [],
|
|
1281
1358
|
sckanDisplay: [
|
|
1282
1359
|
{
|
|
1283
|
-
label:
|
|
1284
|
-
key:
|
|
1360
|
+
label: 'Display Path with SCKAN',
|
|
1361
|
+
key: 'VALID',
|
|
1285
1362
|
},
|
|
1286
1363
|
],
|
|
1287
1364
|
centreLines: [
|
|
1288
1365
|
{
|
|
1289
|
-
label:
|
|
1290
|
-
key:
|
|
1366
|
+
label: 'Display Nerves',
|
|
1367
|
+
key: 'centrelines',
|
|
1291
1368
|
enabled: false,
|
|
1292
1369
|
},
|
|
1293
1370
|
],
|
|
@@ -1309,8 +1386,8 @@ export default {
|
|
|
1309
1386
|
yellowstar: yellowstar,
|
|
1310
1387
|
isFC: false,
|
|
1311
1388
|
inHelp: false,
|
|
1312
|
-
currentBackground:
|
|
1313
|
-
availableBackground: [
|
|
1389
|
+
currentBackground: 'white',
|
|
1390
|
+
availableBackground: ['white', 'lightskyblue', 'black'],
|
|
1314
1391
|
loading: false,
|
|
1315
1392
|
flatmapMarker: flatmapMarker,
|
|
1316
1393
|
tooltipEntry: createUnfilledTooltipData(),
|
|
@@ -1321,26 +1398,28 @@ export default {
|
|
|
1321
1398
|
outlinesRadio: true,
|
|
1322
1399
|
minimapResizeShow: false,
|
|
1323
1400
|
minimapSmall: false,
|
|
1324
|
-
currentActive:
|
|
1325
|
-
currentHover:
|
|
1326
|
-
viewingMode:
|
|
1327
|
-
viewingModes: [
|
|
1328
|
-
|
|
1401
|
+
currentActive: '',
|
|
1402
|
+
currentHover: '',
|
|
1403
|
+
viewingMode: 'Exploration',
|
|
1404
|
+
viewingModes: ['Annotation', 'Exploration', 'Network Discovery'],
|
|
1405
|
+
openMapRef: undefined,
|
|
1406
|
+
backgroundIconRef: undefined,
|
|
1407
|
+
}
|
|
1329
1408
|
},
|
|
1330
1409
|
watch: {
|
|
1331
1410
|
entry: function () {
|
|
1332
|
-
if (!this.state) this.createFlatmap()
|
|
1411
|
+
if (!this.state) this.createFlatmap()
|
|
1333
1412
|
},
|
|
1334
1413
|
helpMode: function (val) {
|
|
1335
|
-
this.setHelpMode(val)
|
|
1414
|
+
this.setHelpMode(val)
|
|
1336
1415
|
},
|
|
1337
1416
|
state: {
|
|
1338
1417
|
handler: function (state) {
|
|
1339
1418
|
if (this.mapManager) {
|
|
1340
|
-
this.setState(state)
|
|
1419
|
+
this.setState(state)
|
|
1341
1420
|
} else {
|
|
1342
1421
|
//this component has not been mounted yet
|
|
1343
|
-
this.setStateRequired = true
|
|
1422
|
+
this.setStateRequired = true
|
|
1344
1423
|
}
|
|
1345
1424
|
},
|
|
1346
1425
|
immediate: true,
|
|
@@ -1348,30 +1427,30 @@ export default {
|
|
|
1348
1427
|
},
|
|
1349
1428
|
},
|
|
1350
1429
|
mounted: function () {
|
|
1351
|
-
|
|
1352
|
-
this.
|
|
1353
|
-
this.tooltipWait
|
|
1354
|
-
this.
|
|
1355
|
-
this.
|
|
1356
|
-
this.flatmapQueries
|
|
1430
|
+
this.openMapRef = ref(this.$refs.openMapRef)
|
|
1431
|
+
this.backgroundIconRef = ref(this.$refs.backgroundIconRef)
|
|
1432
|
+
this.tooltipWait = []
|
|
1433
|
+
this.tooltipWait.length = this.hoverVisibilities.length
|
|
1434
|
+
this.mapManager = new flatmap.MapManager(this.flatmapAPI)
|
|
1435
|
+
this.flatmapQueries = new FlatmapQueries()
|
|
1436
|
+
this.flatmapQueries.initialise(this.flatmapAPI)
|
|
1357
1437
|
if (this.state) {
|
|
1358
1438
|
//State is set and require to set the state
|
|
1359
1439
|
if (this.setStateRequired) {
|
|
1360
|
-
this.setState(this.state)
|
|
1440
|
+
this.setState(this.state)
|
|
1361
1441
|
}
|
|
1362
1442
|
} else if (this.renderAtMounted) {
|
|
1363
|
-
this.createFlatmap()
|
|
1443
|
+
this.createFlatmap()
|
|
1364
1444
|
}
|
|
1365
1445
|
},
|
|
1366
|
-
}
|
|
1446
|
+
}
|
|
1367
1447
|
</script>
|
|
1368
1448
|
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
@
|
|
1372
|
-
@
|
|
1373
|
-
@
|
|
1374
|
-
@import "~element-ui/packages/theme-chalk/src/select";
|
|
1449
|
+
<style lang="scss" scoped>
|
|
1450
|
+
@use 'element-plus/theme-chalk/src/button';
|
|
1451
|
+
@use 'element-plus/theme-chalk/src/loading';
|
|
1452
|
+
@use 'element-plus/theme-chalk/src/row';
|
|
1453
|
+
@use 'element-plus/theme-chalk/src/select';
|
|
1375
1454
|
|
|
1376
1455
|
.beta-popovers {
|
|
1377
1456
|
position: absolute;
|
|
@@ -1476,7 +1555,7 @@ export default {
|
|
|
1476
1555
|
display: inline-block;
|
|
1477
1556
|
}
|
|
1478
1557
|
|
|
1479
|
-
|
|
1558
|
+
:deep(.popper-bump-right) {
|
|
1480
1559
|
left: 30px;
|
|
1481
1560
|
}
|
|
1482
1561
|
|
|
@@ -1498,11 +1577,11 @@ export default {
|
|
|
1498
1577
|
display: none;
|
|
1499
1578
|
}
|
|
1500
1579
|
|
|
1501
|
-
|
|
1580
|
+
:deep(.maplibregl-popup) {
|
|
1502
1581
|
max-width: 300px !important;
|
|
1503
1582
|
}
|
|
1504
1583
|
|
|
1505
|
-
|
|
1584
|
+
:deep(.flatmap-tooltip-popup) {
|
|
1506
1585
|
&.maplibregl-popup-anchor-bottom {
|
|
1507
1586
|
.maplibregl-popup-content {
|
|
1508
1587
|
margin-bottom: 12px;
|
|
@@ -1556,7 +1635,7 @@ export default {
|
|
|
1556
1635
|
align-items: center;
|
|
1557
1636
|
&::after,
|
|
1558
1637
|
&::before {
|
|
1559
|
-
content:
|
|
1638
|
+
content: '';
|
|
1560
1639
|
display: block;
|
|
1561
1640
|
position: absolute;
|
|
1562
1641
|
width: 0;
|
|
@@ -1570,7 +1649,7 @@ export default {
|
|
|
1570
1649
|
}
|
|
1571
1650
|
}
|
|
1572
1651
|
|
|
1573
|
-
|
|
1652
|
+
:deep(.maplibregl-popup) {
|
|
1574
1653
|
&.flatmap-marker-popup {
|
|
1575
1654
|
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
|
|
1576
1655
|
pointer-events: auto;
|
|
@@ -1580,25 +1659,25 @@ export default {
|
|
|
1580
1659
|
|
|
1581
1660
|
/* Fix for chrome bug where under triangle pops up above one on top of it */
|
|
1582
1661
|
.selector:not(*:root),
|
|
1583
|
-
|
|
1662
|
+
:deep(.flatmap-tooltip-popup) {
|
|
1584
1663
|
.maplibregl-popup-content::after {
|
|
1585
1664
|
top: 99.9%;
|
|
1586
1665
|
}
|
|
1587
1666
|
}
|
|
1588
1667
|
|
|
1589
|
-
|
|
1668
|
+
:deep(.flatmap-tooltip-dialog) {
|
|
1590
1669
|
.maplibregl-popup-tip {
|
|
1591
1670
|
display: none;
|
|
1592
1671
|
}
|
|
1593
1672
|
}
|
|
1594
1673
|
|
|
1595
|
-
|
|
1674
|
+
:deep(.flatmap-marker-popup){
|
|
1596
1675
|
.maplibregl-popup-content {
|
|
1597
1676
|
padding: 0px;
|
|
1598
1677
|
}
|
|
1599
1678
|
}
|
|
1600
1679
|
|
|
1601
|
-
|
|
1680
|
+
:deep(.flatmapvuer-popover) {
|
|
1602
1681
|
.maplibregl-popup-close-button {
|
|
1603
1682
|
position: absolute;
|
|
1604
1683
|
right: 0.5em;
|
|
@@ -1638,32 +1717,27 @@ export default {
|
|
|
1638
1717
|
}
|
|
1639
1718
|
}
|
|
1640
1719
|
|
|
1641
|
-
|
|
1720
|
+
:deep(.background-popper.el-popover.el-popper) {
|
|
1642
1721
|
padding: 5px 12px;
|
|
1643
1722
|
background-color: #ffffff;
|
|
1644
1723
|
border: 1px solid $app-primary-color;
|
|
1645
1724
|
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.06);
|
|
1646
|
-
height:
|
|
1647
|
-
width:
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
border-top-color: $app-primary-color !important;
|
|
1652
|
-
&::after {
|
|
1653
|
-
border-top-color: #fff !important;
|
|
1654
|
-
}
|
|
1725
|
+
height: 290px;
|
|
1726
|
+
min-width: 200px;
|
|
1727
|
+
.el-popper__arrow {
|
|
1728
|
+
&:before {
|
|
1729
|
+
border-color: $app-primary-color;
|
|
1655
1730
|
}
|
|
1656
1731
|
}
|
|
1657
1732
|
}
|
|
1658
1733
|
|
|
1659
|
-
|
|
1734
|
+
:deep(.open-map-popper.el-popover.el-popper) {
|
|
1660
1735
|
padding-top: 5px;
|
|
1661
1736
|
padding-bottom: 5px;
|
|
1662
1737
|
background-color: #ffffff;
|
|
1663
1738
|
border: 1px solid $app-primary-color;
|
|
1664
1739
|
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.06);
|
|
1665
|
-
width:
|
|
1666
|
-
min-width: 178px;
|
|
1740
|
+
min-width: 188px;
|
|
1667
1741
|
|
|
1668
1742
|
.el-row ~ .el-row {
|
|
1669
1743
|
margin-top: 8px;
|
|
@@ -1672,14 +1746,14 @@ export default {
|
|
|
1672
1746
|
.el-button {
|
|
1673
1747
|
padding-top: 5px;
|
|
1674
1748
|
padding-bottom: 5px;
|
|
1749
|
+
background: #f3e6f9;
|
|
1750
|
+
border-color: $app-primary-color;
|
|
1751
|
+
color: $app-primary-color;
|
|
1675
1752
|
}
|
|
1676
1753
|
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
border-
|
|
1680
|
-
&:after {
|
|
1681
|
-
border-top-color: #fff !important;
|
|
1682
|
-
}
|
|
1754
|
+
.el-popper__arrow {
|
|
1755
|
+
&:before {
|
|
1756
|
+
border-color: $app-primary-color;
|
|
1683
1757
|
}
|
|
1684
1758
|
}
|
|
1685
1759
|
}
|
|
@@ -1693,7 +1767,6 @@ export default {
|
|
|
1693
1767
|
|
|
1694
1768
|
.backgroundControl {
|
|
1695
1769
|
display: flex;
|
|
1696
|
-
margin-top: 12px;
|
|
1697
1770
|
}
|
|
1698
1771
|
|
|
1699
1772
|
.backgroundChoice {
|
|
@@ -1728,12 +1801,12 @@ export default {
|
|
|
1728
1801
|
}
|
|
1729
1802
|
}
|
|
1730
1803
|
|
|
1731
|
-
|
|
1804
|
+
:deep(.maplibregl-ctrl-minimap) {
|
|
1732
1805
|
transform-origin: top right;
|
|
1733
1806
|
@media (max-width: 1250px) {
|
|
1734
1807
|
height: 125px !important; // important is needed here as we are over-riding the style set by the flatmap
|
|
1735
1808
|
width: 180px !important;
|
|
1736
|
-
|
|
1809
|
+
:deep(.maplibregl-canvas .maplibregl-canvas) {
|
|
1737
1810
|
height: 125px !important;
|
|
1738
1811
|
width: 180px !important;
|
|
1739
1812
|
}
|
|
@@ -1741,7 +1814,7 @@ export default {
|
|
|
1741
1814
|
@media (min-width: 1251px) {
|
|
1742
1815
|
height: 190px !important;
|
|
1743
1816
|
width: 300px !important;
|
|
1744
|
-
|
|
1817
|
+
:deep(.maplibregl-canvas .maplibregl-canvas) {
|
|
1745
1818
|
height: 190px !important;
|
|
1746
1819
|
width: 300px !important;
|
|
1747
1820
|
}
|
|
@@ -1774,7 +1847,7 @@ export default {
|
|
|
1774
1847
|
}
|
|
1775
1848
|
}
|
|
1776
1849
|
|
|
1777
|
-
|
|
1850
|
+
:deep(.flatmap-popper.el-popper.el-popper) {
|
|
1778
1851
|
padding: 6px 4px;
|
|
1779
1852
|
font-size: 12px;
|
|
1780
1853
|
color: rgb(48, 49, 51);
|
|
@@ -1788,40 +1861,24 @@ export default {
|
|
|
1788
1861
|
word-break: keep-all;
|
|
1789
1862
|
white-space: unset;
|
|
1790
1863
|
}
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
border-
|
|
1794
|
-
|
|
1795
|
-
border-left-color: #f3ecf6 !important;
|
|
1796
|
-
}
|
|
1797
|
-
}
|
|
1798
|
-
}
|
|
1799
|
-
&.right-popper {
|
|
1800
|
-
.popper__arrow {
|
|
1801
|
-
border-right-color: $app-primary-color !important;
|
|
1802
|
-
&:after {
|
|
1803
|
-
border-right-color: #f3ecf6 !important;
|
|
1804
|
-
}
|
|
1805
|
-
}
|
|
1806
|
-
}
|
|
1807
|
-
&.el-popper[x-placement^="top"] {
|
|
1808
|
-
.popper__arrow {
|
|
1809
|
-
border-top-color: $app-primary-color !important;
|
|
1810
|
-
&:after {
|
|
1811
|
-
border-top-color: #f3ecf6 !important;
|
|
1812
|
-
}
|
|
1864
|
+
.el-popper__arrow {
|
|
1865
|
+
&:before {
|
|
1866
|
+
border-color: $app-primary-color;
|
|
1867
|
+
background-color: #f3ecf6;
|
|
1813
1868
|
}
|
|
1814
1869
|
}
|
|
1815
1870
|
}
|
|
1816
1871
|
|
|
1817
|
-
|
|
1818
|
-
|
|
1872
|
+
:deep(.el-loading-spinner) {
|
|
1873
|
+
.path {
|
|
1874
|
+
stroke: $app-primary-color;
|
|
1875
|
+
}
|
|
1819
1876
|
.el-loading-text {
|
|
1820
1877
|
color: $app-primary-color;
|
|
1821
1878
|
}
|
|
1822
1879
|
}
|
|
1823
1880
|
|
|
1824
|
-
|
|
1881
|
+
:deep(.flatmap-popup-popper) {
|
|
1825
1882
|
.maplibregl-popup-tip {
|
|
1826
1883
|
border-bottom-color: $app-primary-color;
|
|
1827
1884
|
}
|
|
@@ -1839,18 +1896,18 @@ export default {
|
|
|
1839
1896
|
}
|
|
1840
1897
|
}
|
|
1841
1898
|
|
|
1842
|
-
|
|
1899
|
+
:deep(.popper-zoomout) {
|
|
1843
1900
|
padding-right: 13px !important;
|
|
1844
1901
|
left: -21px !important;
|
|
1845
1902
|
}
|
|
1846
1903
|
|
|
1847
|
-
|
|
1904
|
+
:deep(.popper-zoomout) {
|
|
1848
1905
|
.popper__arrow {
|
|
1849
1906
|
left: 53px !important;
|
|
1850
1907
|
}
|
|
1851
1908
|
}
|
|
1852
1909
|
|
|
1853
|
-
|
|
1910
|
+
:deep(.maplibregl-popup-content) {
|
|
1854
1911
|
padding: 0px;
|
|
1855
1912
|
}
|
|
1856
1913
|
|
|
@@ -1860,13 +1917,13 @@ export default {
|
|
|
1860
1917
|
bottom: 16px;
|
|
1861
1918
|
}
|
|
1862
1919
|
|
|
1863
|
-
|
|
1920
|
+
:deep(.my-drawer) {
|
|
1864
1921
|
background: rgba(0, 0, 0, 0);
|
|
1865
1922
|
box-shadow: none;
|
|
1866
1923
|
}
|
|
1867
1924
|
|
|
1868
1925
|
.drawer {
|
|
1869
|
-
|
|
1926
|
+
:deep(.el-drawer:focus) {
|
|
1870
1927
|
outline: none;
|
|
1871
1928
|
}
|
|
1872
1929
|
}
|
|
@@ -1913,7 +1970,7 @@ export default {
|
|
|
1913
1970
|
}
|
|
1914
1971
|
}
|
|
1915
1972
|
|
|
1916
|
-
|
|
1973
|
+
:deep(.maplibregl-canvas-container) {
|
|
1917
1974
|
canvas {
|
|
1918
1975
|
outline: none;
|
|
1919
1976
|
}
|
|
@@ -1925,13 +1982,13 @@ export default {
|
|
|
1925
1982
|
}
|
|
1926
1983
|
|
|
1927
1984
|
.flatmap-radio {
|
|
1928
|
-
|
|
1985
|
+
:deep(label) {
|
|
1929
1986
|
margin-right: 20px;
|
|
1930
1987
|
&:last-child {
|
|
1931
1988
|
margin-right: 0px;
|
|
1932
1989
|
}
|
|
1933
1990
|
}
|
|
1934
|
-
|
|
1991
|
+
:deep(.el-radio__input) {
|
|
1935
1992
|
&.is-checked {
|
|
1936
1993
|
& + .el-radio__label {
|
|
1937
1994
|
color: $app-primary-color;
|
|
@@ -1947,7 +2004,7 @@ export default {
|
|
|
1947
2004
|
}
|
|
1948
2005
|
}
|
|
1949
2006
|
|
|
1950
|
-
|
|
2007
|
+
:deep(.custom-popup) {
|
|
1951
2008
|
.maplibregl-popup-tip {
|
|
1952
2009
|
display: none;
|
|
1953
2010
|
}
|
|
@@ -1957,7 +2014,7 @@ export default {
|
|
|
1957
2014
|
pointer-events: none;
|
|
1958
2015
|
display: none;
|
|
1959
2016
|
background: #fff;
|
|
1960
|
-
font-family:
|
|
2017
|
+
font-family: 'Asap', sans-serif;
|
|
1961
2018
|
font-size: 12pt;
|
|
1962
2019
|
color: $app-primary-color;
|
|
1963
2020
|
border: 1px solid $app-primary-color;
|
|
@@ -1970,7 +2027,7 @@ export default {
|
|
|
1970
2027
|
align-items: center;
|
|
1971
2028
|
&::after,
|
|
1972
2029
|
&::before {
|
|
1973
|
-
content:
|
|
2030
|
+
content: '';
|
|
1974
2031
|
display: block;
|
|
1975
2032
|
position: absolute;
|
|
1976
2033
|
width: 0;
|
|
@@ -2029,22 +2086,24 @@ export default {
|
|
|
2029
2086
|
background-color: var(--white);
|
|
2030
2087
|
font-weight: 500;
|
|
2031
2088
|
color: rgb(48, 49, 51);
|
|
2032
|
-
|
|
2089
|
+
:deep(.el-input__inner) {
|
|
2033
2090
|
height: 30px;
|
|
2034
2091
|
color: rgb(48, 49, 51);
|
|
2035
2092
|
}
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2093
|
+
:deep() {
|
|
2094
|
+
.el-input__inner {
|
|
2095
|
+
&is-focus,
|
|
2096
|
+
&:focus {
|
|
2097
|
+
border: 1px solid $app-primary-color;
|
|
2098
|
+
}
|
|
2040
2099
|
}
|
|
2041
2100
|
}
|
|
2042
|
-
|
|
2101
|
+
:deep(.el-input__icon) {
|
|
2043
2102
|
line-height: 30px;
|
|
2044
2103
|
}
|
|
2045
2104
|
}
|
|
2046
2105
|
|
|
2047
|
-
|
|
2106
|
+
:deep(.flatmap_dropdown) {
|
|
2048
2107
|
min-width: 160px !important;
|
|
2049
2108
|
.el-select-dropdown__item {
|
|
2050
2109
|
white-space: nowrap;
|
|
@@ -2056,4 +2115,3 @@ export default {
|
|
|
2056
2115
|
}
|
|
2057
2116
|
}
|
|
2058
2117
|
</style>
|
|
2059
|
-
|