@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.
- package/README.md +23 -5
- package/assets/location-icon.html +33 -1
- package/assets/styleguide.css +18 -18
- package/cypress.config.js +7 -9
- package/dist/{ConnectivityGraph-CZMROk9r.js → ConnectivityGraph-DrSaFEDd.js} +3 -3
- package/dist/{ContentMixin-Vn34n5t2.js → ContentMixin-Xg0PjBqG.js} +2 -2
- package/dist/{DynamicMarkerMixin-BS6t7w_i.js → DynamicMarkerMixin-D5Ruu_hd.js} +1 -1
- package/dist/{Flatmap-BejxA0uz.js → Flatmap-CxN8TbnS.js} +4 -4
- package/dist/{Iframe-BWbhTjCR.js → Iframe-CkgbLfJt.js} +4 -4
- package/dist/{MultiFlatmap-nlmsH-Ib.js → MultiFlatmap-CkejvAJe.js} +4 -4
- package/dist/{Plot-ChbPsDZX.js → Plot-BfwoipSl.js} +2 -2
- package/dist/{Scaffold-C6f7c7Ha.js → Scaffold-DCqsTKpg.js} +4 -4
- package/dist/{Simulation-DcJScRYo.js → Simulation-BOtU3kTT.js} +2 -2
- package/dist/{connectivities-UXTqf7_0.js → connectivities-DyeS8w0c.js} +126 -95
- package/dist/index.html +9 -6
- package/dist/mapintegratedvuer.js +5489 -5578
- package/dist/mapintegratedvuer.umd.cjs +196 -196
- package/dist/style.css +1 -1
- package/eslint.config.js +39 -15
- package/package.json +11 -5
- package/public/index.html +9 -6
- package/src/App.vue +234 -249
- package/src/assets/_variables.scss +12 -10
- package/src/assets/header-icon.scss +8 -9
- package/src/assets/mapicon-species-style.css +10 -8
- package/src/assets/styles.scss +1 -1
- package/src/components/ContentBar.vue +98 -106
- package/src/components/ContentVuer.vue +36 -39
- package/src/components/ContextCard.vue +238 -199
- package/src/components/ContextHelp.vue +22 -26
- package/src/components/CustomSplitter.vue +32 -43
- package/src/components/DatasetHeader.vue +37 -41
- package/src/components/DialogToolbarContent.vue +292 -256
- package/src/components/FlatmapContextCard.vue +52 -57
- package/src/components/MapContent.vue +90 -86
- package/src/components/ResizeSensor.vue +8 -13
- package/src/components/SearchControls.vue +26 -35
- package/src/components/SimulatedData.js +196 -219
- package/src/components/SplitDialog.vue +139 -129
- package/src/components/SplitFlow.vue +421 -237
- package/src/components/index.js +1 -3
- package/src/components/scripts/simulation_data.js +393 -397
- package/src/components/scripts/utilities.js +108 -78
- package/src/components/viewers/CellDLViewer.vue +9 -9
- package/src/components/viewers/ConnectivityGraph.vue +9 -12
- package/src/components/viewers/Flatmap.vue +23 -25
- package/src/components/viewers/Iframe.vue +8 -10
- package/src/components/viewers/MultiFlatmap.vue +59 -69
- package/src/components/viewers/Plot.vue +6 -7
- package/src/components/viewers/Scaffold.vue +73 -63
- package/src/components/viewers/Simulation.vue +10 -15
- package/src/main.js +16 -21
- package/src/mixins/ContentMixin.js +208 -178
- package/src/mixins/DynamicMarkerMixin.js +14 -18
- package/src/mixins/RetrieveContextCardMixin.js +35 -30
- package/src/mixins/S3Bucket.vue +10 -13
- package/src/services/knowledgeMapping.js +53 -53
- package/src/services/tagging.js +4 -4
- package/src/stores/connectivities.js +46 -8
- package/src/stores/entries.js +7 -9
- package/src/stores/index.js +7 -7
- package/src/stores/settings.js +23 -31
- package/src/stores/splitFlow.js +364 -298
- package/vite.bundle-build.js +24 -26
- package/vite.config.js +22 -21
- package/vite.static-build.js +4 -4
- package/vitest.workspace.js +1 -3
- package/vuese-generator.js +47 -55
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div v-loading="loading" class="flatmap-context-card"
|
|
2
|
+
<div v-loading="loading" class="flatmap-context-card">
|
|
3
3
|
<div class="card-right scrollbar">
|
|
4
4
|
<div class="title">Flatmap Provenance</div>
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
SCKAN version:
|
|
6
|
+
<a :href="sckanReleaseLink" target="_blank">{{ sckanReleaseDisplay }}</a>
|
|
7
|
+
<br />
|
|
8
|
+
Published on:
|
|
9
|
+
{{ flatmapPublishedDisplay }}
|
|
10
|
+
<br />
|
|
11
|
+
View publication
|
|
12
|
+
<a :href="flatmapSource" class="publication-link" target="_blank">here</a>
|
|
13
|
+
<br />
|
|
12
14
|
</div>
|
|
13
15
|
|
|
14
16
|
<!-- Copy to clipboard button container -->
|
|
@@ -18,20 +20,14 @@
|
|
|
18
20
|
</div>
|
|
19
21
|
</template>
|
|
20
22
|
|
|
21
|
-
|
|
22
23
|
<script>
|
|
23
|
-
|
|
24
|
-
import {
|
|
25
|
-
ElLoading as Loading
|
|
26
|
-
} from "element-plus";
|
|
27
|
-
import { CopyToClipboard } from "@abi-software/map-utilities";
|
|
24
|
+
import { CopyToClipboard } from '@abi-software/map-utilities';
|
|
28
25
|
import tagging from '../services/tagging';
|
|
29
26
|
import '@abi-software/map-utilities/dist/style.css';
|
|
30
27
|
|
|
31
28
|
export default {
|
|
32
|
-
name:
|
|
29
|
+
name: 'FlatmapContextCard',
|
|
33
30
|
components: {
|
|
34
|
-
Loading,
|
|
35
31
|
CopyToClipboard,
|
|
36
32
|
},
|
|
37
33
|
props: {
|
|
@@ -51,57 +47,59 @@ export default {
|
|
|
51
47
|
};
|
|
52
48
|
},
|
|
53
49
|
computed: {
|
|
54
|
-
flatmapPublishedDisplay: function() {
|
|
55
|
-
let flatmapPublished =
|
|
56
|
-
if(this.mapImpProv){
|
|
50
|
+
flatmapPublishedDisplay: function () {
|
|
51
|
+
let flatmapPublished = 'Unknown';
|
|
52
|
+
if (this.mapImpProv) {
|
|
57
53
|
flatmapPublished = new Date(this.mapImpProv.created).toLocaleDateString('en-US', {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
})
|
|
54
|
+
day: '2-digit',
|
|
55
|
+
month: 'long',
|
|
56
|
+
year: 'numeric',
|
|
57
|
+
});
|
|
62
58
|
}
|
|
63
|
-
return flatmapPublished
|
|
59
|
+
return flatmapPublished;
|
|
64
60
|
},
|
|
65
|
-
sckanReleaseDisplay: function() {
|
|
66
|
-
let sckanRelease =
|
|
67
|
-
if(this.mapImpProv){
|
|
68
|
-
sckanRelease = this.mapImpProv.connectivity?.npo?.date
|
|
61
|
+
sckanReleaseDisplay: function () {
|
|
62
|
+
let sckanRelease = 'Unknown';
|
|
63
|
+
if (this.mapImpProv) {
|
|
64
|
+
sckanRelease = this.mapImpProv.connectivity?.npo?.date;
|
|
69
65
|
if (!sckanRelease) {
|
|
70
|
-
let sckanCreated = this.mapImpProv.sckan?.created
|
|
66
|
+
let sckanCreated = this.mapImpProv.sckan?.created
|
|
67
|
+
? this.mapImpProv.sckan.created
|
|
68
|
+
: this.mapImpProv.sckan;
|
|
71
69
|
if (sckanCreated) {
|
|
72
|
-
let isoTime = sckanCreated.replace(',', '.') // Date time does not accept commas but Sckan uses them
|
|
70
|
+
let isoTime = sckanCreated.replace(',', '.'); // Date time does not accept commas but Sckan uses them
|
|
73
71
|
sckanRelease = new Date(isoTime).toLocaleDateString('en-US', {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
})
|
|
72
|
+
day: '2-digit',
|
|
73
|
+
month: 'long',
|
|
74
|
+
year: 'numeric',
|
|
75
|
+
});
|
|
78
76
|
}
|
|
79
77
|
}
|
|
80
78
|
if (!sckanRelease) {
|
|
81
|
-
sckanRelease =
|
|
79
|
+
sckanRelease = 'Unknown';
|
|
82
80
|
}
|
|
83
81
|
}
|
|
84
|
-
return sckanRelease
|
|
82
|
+
return sckanRelease;
|
|
85
83
|
},
|
|
86
|
-
sckanReleaseLink: function() {
|
|
87
|
-
let sckanLink =
|
|
88
|
-
if(this.mapImpProv){
|
|
89
|
-
sckanLink = this.mapImpProv.connectivity?.npo?.path
|
|
84
|
+
sckanReleaseLink: function () {
|
|
85
|
+
let sckanLink = 'Unknown';
|
|
86
|
+
if (this.mapImpProv) {
|
|
87
|
+
sckanLink = this.mapImpProv.connectivity?.npo?.path;
|
|
90
88
|
if (!sckanLink) {
|
|
91
|
-
sckanLink = this.mapImpProv.sckan?.release
|
|
89
|
+
sckanLink = this.mapImpProv.sckan?.release;
|
|
92
90
|
}
|
|
93
91
|
if (!sckanLink) {
|
|
94
|
-
sckanLink =
|
|
92
|
+
sckanLink = 'Unknown';
|
|
95
93
|
}
|
|
96
94
|
}
|
|
97
|
-
return sckanLink
|
|
95
|
+
return sckanLink;
|
|
98
96
|
},
|
|
99
|
-
flatmapSource: function() {
|
|
100
|
-
let flatmapSource =
|
|
101
|
-
if(this.mapImpProv){
|
|
102
|
-
flatmapSource = this.mapImpProv.source
|
|
97
|
+
flatmapSource: function () {
|
|
98
|
+
let flatmapSource = 'Unknown';
|
|
99
|
+
if (this.mapImpProv) {
|
|
100
|
+
flatmapSource = this.mapImpProv.source;
|
|
103
101
|
}
|
|
104
|
-
return flatmapSource
|
|
102
|
+
return flatmapSource;
|
|
105
103
|
},
|
|
106
104
|
updatedCopyContent: function () {
|
|
107
105
|
const contentArray = [];
|
|
@@ -132,10 +130,10 @@ export default {
|
|
|
132
130
|
methods: {
|
|
133
131
|
onCopied: function () {
|
|
134
132
|
tagging.sendEvent({
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
133
|
+
event: 'interaction_event',
|
|
134
|
+
event_name: `portal_maps_context_card_copy`,
|
|
135
|
+
category: this.mapImpProv?.id || 'Flatmap Provenance',
|
|
136
|
+
location: 'map_toolbar',
|
|
139
137
|
});
|
|
140
138
|
},
|
|
141
139
|
},
|
|
@@ -144,9 +142,7 @@ export default {
|
|
|
144
142
|
|
|
145
143
|
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
|
146
144
|
<style scoped lang="scss">
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
.flatmap-context-card{
|
|
145
|
+
.flatmap-context-card {
|
|
150
146
|
background-color: white;
|
|
151
147
|
font-size: 12px;
|
|
152
148
|
position: relative;
|
|
@@ -164,11 +160,10 @@ export default {
|
|
|
164
160
|
cursor: pointer;
|
|
165
161
|
}
|
|
166
162
|
|
|
167
|
-
.title{
|
|
163
|
+
.title {
|
|
168
164
|
font-weight: bold;
|
|
169
165
|
}
|
|
170
166
|
|
|
171
|
-
|
|
172
167
|
.scrollbar::-webkit-scrollbar-track {
|
|
173
168
|
border-radius: 10px;
|
|
174
169
|
background-color: #f5f5f5;
|
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
2
|
+
<div
|
|
3
|
+
ref="MapApp"
|
|
4
|
+
v-loading="!isReady"
|
|
5
|
+
class="mapcontent"
|
|
6
|
+
element-loading-text="Loading..."
|
|
7
|
+
element-loading-background="rgba(0, 0, 0, 0.3)"
|
|
8
|
+
>
|
|
9
|
+
<map-svg-sprite-color />
|
|
10
|
+
<SplitFlow
|
|
11
|
+
v-if="isReady"
|
|
12
|
+
@onFullscreen="onFullscreen"
|
|
13
|
+
:state="stateToSet"
|
|
14
|
+
:showLongLabel="showLongLabel"
|
|
15
|
+
ref="flow"
|
|
16
|
+
@vue:mounted="flowMounted"
|
|
17
|
+
/>
|
|
18
|
+
</div>
|
|
19
19
|
</template>
|
|
20
20
|
|
|
21
21
|
<script>
|
|
22
|
-
/* eslint-disable no-alert, no-console */
|
|
23
22
|
import { computed } from 'vue';
|
|
24
23
|
import Tagging from '../services/tagging.js';
|
|
25
24
|
import SplitFlow from './SplitFlow.vue';
|
|
@@ -28,21 +27,17 @@ import { mapStores } from 'pinia';
|
|
|
28
27
|
import { useSettingsStore } from '../stores/settings';
|
|
29
28
|
import { useSplitFlowStore } from '../stores/splitFlow';
|
|
30
29
|
import { defaultSpecies, findSpeciesKey } from './scripts/utilities.js';
|
|
31
|
-
import { MapSvgSpriteColor} from '@abi-software/svg-sprite';
|
|
32
|
-
import { initialState, getBodyScaffoldInfo } from
|
|
33
|
-
import RetrieveContextCardMixin from
|
|
34
|
-
import {
|
|
35
|
-
ElLoading as Loading
|
|
36
|
-
} from "element-plus";
|
|
30
|
+
import { MapSvgSpriteColor } from '@abi-software/svg-sprite';
|
|
31
|
+
import { initialState, getBodyScaffoldInfo } from './scripts/utilities.js';
|
|
32
|
+
import RetrieveContextCardMixin from '../mixins/RetrieveContextCardMixin.js';
|
|
37
33
|
|
|
38
34
|
/**
|
|
39
35
|
* Content of the app. More work flows will be added here.
|
|
40
36
|
*/
|
|
41
37
|
export default {
|
|
42
|
-
name:
|
|
38
|
+
name: 'MapContent',
|
|
43
39
|
components: {
|
|
44
40
|
MapSvgSpriteColor,
|
|
45
|
-
Loading,
|
|
46
41
|
SplitFlow,
|
|
47
42
|
},
|
|
48
43
|
mixins: [RetrieveContextCardMixin],
|
|
@@ -52,14 +47,14 @@ export default {
|
|
|
52
47
|
*/
|
|
53
48
|
shareLink: {
|
|
54
49
|
type: String,
|
|
55
|
-
default: undefined
|
|
50
|
+
default: undefined,
|
|
56
51
|
},
|
|
57
52
|
/**
|
|
58
53
|
* State containing state of the scaffold.
|
|
59
54
|
*/
|
|
60
55
|
state: {
|
|
61
56
|
type: Object,
|
|
62
|
-
default: undefined
|
|
57
|
+
default: undefined,
|
|
63
58
|
},
|
|
64
59
|
showLongLabel: {
|
|
65
60
|
type: Boolean,
|
|
@@ -79,14 +74,14 @@ export default {
|
|
|
79
74
|
options: {
|
|
80
75
|
type: Object,
|
|
81
76
|
default: () => ({}),
|
|
82
|
-
required: true
|
|
77
|
+
required: true,
|
|
83
78
|
},
|
|
84
79
|
/**
|
|
85
80
|
* New option to start the map in AC, FC or WholeBody.
|
|
86
81
|
*/
|
|
87
82
|
startingMap: {
|
|
88
83
|
type: String,
|
|
89
|
-
default:
|
|
84
|
+
default: 'AC',
|
|
90
85
|
},
|
|
91
86
|
/**
|
|
92
87
|
* To use help-mode-dialog when user clicks "Help".
|
|
@@ -109,7 +104,7 @@ export default {
|
|
|
109
104
|
* The option to show annotation in sidebar.
|
|
110
105
|
* Default is `true`. Set `false` to show as popup on map.
|
|
111
106
|
*/
|
|
112
|
-
|
|
107
|
+
annotationSidebar: {
|
|
113
108
|
type: Boolean,
|
|
114
109
|
default: true,
|
|
115
110
|
},
|
|
@@ -117,7 +112,7 @@ export default {
|
|
|
117
112
|
* All panes including primary default viewer will be closable
|
|
118
113
|
* when this is set to true.
|
|
119
114
|
*/
|
|
120
|
-
|
|
115
|
+
allClosable: {
|
|
121
116
|
type: Boolean,
|
|
122
117
|
default: true,
|
|
123
118
|
},
|
|
@@ -151,7 +146,7 @@ export default {
|
|
|
151
146
|
isReady: false,
|
|
152
147
|
initialState: undefined,
|
|
153
148
|
displaySearchFromQuery: '',
|
|
154
|
-
}
|
|
149
|
+
};
|
|
155
150
|
},
|
|
156
151
|
methods: {
|
|
157
152
|
/**
|
|
@@ -159,31 +154,35 @@ export default {
|
|
|
159
154
|
* Function to check whether it is in fullscreen mode or not.
|
|
160
155
|
*
|
|
161
156
|
*/
|
|
162
|
-
isFullscreen: function(){
|
|
163
|
-
return (
|
|
164
|
-
document.
|
|
157
|
+
isFullscreen: function () {
|
|
158
|
+
return (
|
|
159
|
+
document.fullscreenElement ||
|
|
160
|
+
document.webkitFullscreenElement ||
|
|
161
|
+
document.mozFullScreenElement ||
|
|
162
|
+
document.msFullscreenElement
|
|
163
|
+
);
|
|
165
164
|
},
|
|
166
165
|
/**
|
|
167
166
|
* @public
|
|
168
167
|
* Function to toggle fullscreen.
|
|
169
168
|
* @arg `fullscreenReq`
|
|
170
169
|
*/
|
|
171
|
-
onFullscreen: function(fullscreenReq) {
|
|
170
|
+
onFullscreen: function (fullscreenReq) {
|
|
172
171
|
//If a request is sent, try it
|
|
173
|
-
if (fullscreenReq !== undefined){
|
|
174
|
-
if (fullscreenReq && !this.isFullscreen()){
|
|
175
|
-
this.goFullscreen()
|
|
172
|
+
if (fullscreenReq !== undefined) {
|
|
173
|
+
if (fullscreenReq && !this.isFullscreen()) {
|
|
174
|
+
this.goFullscreen();
|
|
176
175
|
}
|
|
177
|
-
if(!fullscreenReq && this.isFullscreen()){
|
|
178
|
-
this.leaveFullscreen()
|
|
176
|
+
if (!fullscreenReq && this.isFullscreen()) {
|
|
177
|
+
this.leaveFullscreen();
|
|
179
178
|
}
|
|
180
179
|
}
|
|
181
180
|
// Else we toggle fullscreen
|
|
182
|
-
else{
|
|
183
|
-
if(this.isFullscreen()){
|
|
184
|
-
this.leaveFullscreen()
|
|
181
|
+
else {
|
|
182
|
+
if (this.isFullscreen()) {
|
|
183
|
+
this.leaveFullscreen();
|
|
185
184
|
} else {
|
|
186
|
-
this.goFullscreen()
|
|
185
|
+
this.goFullscreen();
|
|
187
186
|
}
|
|
188
187
|
}
|
|
189
188
|
},
|
|
@@ -191,15 +190,18 @@ export default {
|
|
|
191
190
|
* @public
|
|
192
191
|
* Function to leave fullscreen mode.
|
|
193
192
|
*/
|
|
194
|
-
leaveFullscreen: function(){
|
|
193
|
+
leaveFullscreen: function () {
|
|
195
194
|
if (this.isFullscreen()) {
|
|
196
195
|
if (document.exitFullscreen) {
|
|
197
196
|
document.exitFullscreen();
|
|
198
|
-
} else if (document.mozCancelFullScreen) {
|
|
197
|
+
} else if (document.mozCancelFullScreen) {
|
|
198
|
+
/* Firefox */
|
|
199
199
|
document.mozCancelFullScreen();
|
|
200
|
-
} else if (document.webkitExitFullscreen) {
|
|
200
|
+
} else if (document.webkitExitFullscreen) {
|
|
201
|
+
/* Chrome, Safari and Opera */
|
|
201
202
|
document.webkitExitFullscreen();
|
|
202
|
-
} else if (document.msExitFullscreen) {
|
|
203
|
+
} else if (document.msExitFullscreen) {
|
|
204
|
+
/* IE/Edge */
|
|
203
205
|
document.msExitFullscreen();
|
|
204
206
|
}
|
|
205
207
|
|
|
@@ -211,15 +213,18 @@ export default {
|
|
|
211
213
|
* @public
|
|
212
214
|
* Function to go to fullscreen mode.
|
|
213
215
|
*/
|
|
214
|
-
goFullscreen: function(){
|
|
216
|
+
goFullscreen: function () {
|
|
215
217
|
let mapApp = this.$refs.MapApp;
|
|
216
218
|
if (mapApp.requestFullscreen) {
|
|
217
219
|
mapApp.requestFullscreen();
|
|
218
|
-
} else if (mapApp.mozRequestFullScreen) {
|
|
220
|
+
} else if (mapApp.mozRequestFullScreen) {
|
|
221
|
+
/* Firefox */
|
|
219
222
|
mapApp.mozRequestFullScreen();
|
|
220
|
-
} else if (mapApp.webkitRequestFullscreen) {
|
|
223
|
+
} else if (mapApp.webkitRequestFullscreen) {
|
|
224
|
+
/* Chrome, Safari and Opera */
|
|
221
225
|
mapApp.webkitRequestFullscreen();
|
|
222
|
-
} else if (parent.msRequestFullscreen) {
|
|
226
|
+
} else if (parent.msRequestFullscreen) {
|
|
227
|
+
/* IE/Edge */
|
|
223
228
|
mapApp.msRequestFullscreen();
|
|
224
229
|
}
|
|
225
230
|
|
|
@@ -239,7 +244,7 @@ export default {
|
|
|
239
244
|
*
|
|
240
245
|
* @arg `state`
|
|
241
246
|
*/
|
|
242
|
-
setState: function(state){
|
|
247
|
+
setState: function (state) {
|
|
243
248
|
return this.$refs.flow.setState(state);
|
|
244
249
|
},
|
|
245
250
|
/**
|
|
@@ -250,7 +255,7 @@ export default {
|
|
|
250
255
|
* state of anonymous annotations.
|
|
251
256
|
* @arg `anonymousAnnotations`
|
|
252
257
|
*/
|
|
253
|
-
getState: function(anonymousAnnotations = false){
|
|
258
|
+
getState: function (anonymousAnnotations = false) {
|
|
254
259
|
return this.$refs.flow.getState(anonymousAnnotations);
|
|
255
260
|
},
|
|
256
261
|
/**
|
|
@@ -261,9 +266,9 @@ export default {
|
|
|
261
266
|
* instead change the current entry by setting the state.
|
|
262
267
|
* @arg `state`
|
|
263
268
|
*/
|
|
264
|
-
setCurrentEntry: async function(state) {
|
|
269
|
+
setCurrentEntry: async function (state) {
|
|
265
270
|
if (state && state.type) {
|
|
266
|
-
if (state.type ===
|
|
271
|
+
if (state.type === 'Scaffold' && (state.url || state.isBodyScaffold)) {
|
|
267
272
|
//State for scaffold containing the following items:
|
|
268
273
|
// label - Setting the name of the dialog
|
|
269
274
|
// region - Which region/group currently focusing on
|
|
@@ -289,7 +294,7 @@ export default {
|
|
|
289
294
|
newView = { ...newView, ...contextCardInfo };
|
|
290
295
|
}
|
|
291
296
|
this.$refs.flow.createNewEntry(newView);
|
|
292
|
-
} else if (state.type ===
|
|
297
|
+
} else if (state.type === 'MultiFlatmap') {
|
|
293
298
|
if (state.resource) {
|
|
294
299
|
//State for new multiflatmap containing the following items:
|
|
295
300
|
// label - Setting the name of the dialog
|
|
@@ -330,7 +335,7 @@ export default {
|
|
|
330
335
|
if (currentState && currentState.entries) {
|
|
331
336
|
for (let i = 0; i < currentState.entries.length; i++) {
|
|
332
337
|
const entry = currentState.entries[i];
|
|
333
|
-
if (entry.type ===
|
|
338
|
+
if (entry.type === 'MultiFlatmap') {
|
|
334
339
|
entry.resource = key;
|
|
335
340
|
entry.state = { species: key };
|
|
336
341
|
if (state.organ || state.uuid) {
|
|
@@ -352,7 +357,7 @@ export default {
|
|
|
352
357
|
}
|
|
353
358
|
}
|
|
354
359
|
}
|
|
355
|
-
} else if (state.type ===
|
|
360
|
+
} else if (state.type === 'Flatmap') {
|
|
356
361
|
//State for flatmap containing the following items:
|
|
357
362
|
// label - Setting the name of the dialog
|
|
358
363
|
// resource - the url to metadata
|
|
@@ -375,7 +380,7 @@ export default {
|
|
|
375
380
|
* @arg `facets`,
|
|
376
381
|
* @arg `query`
|
|
377
382
|
*/
|
|
378
|
-
openSearch: function(facets, query) {
|
|
383
|
+
openSearch: function (facets, query) {
|
|
379
384
|
return this.$refs.flow.openSearch(facets, query);
|
|
380
385
|
},
|
|
381
386
|
/**
|
|
@@ -387,15 +392,15 @@ export default {
|
|
|
387
392
|
/**
|
|
388
393
|
* This event emit when the component is mounted.
|
|
389
394
|
*/
|
|
390
|
-
this.$emit(
|
|
395
|
+
this.$emit('isReady');
|
|
391
396
|
|
|
392
397
|
// GA Tagging
|
|
393
398
|
// Page view tracking for maps' buttons click on portal
|
|
394
399
|
// category: AC | FC | WholeBody
|
|
395
400
|
Tagging.sendEvent({
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
401
|
+
event: 'interaction_event',
|
|
402
|
+
event_name: 'portal_maps_page_view',
|
|
403
|
+
category: this.startingMap,
|
|
399
404
|
});
|
|
400
405
|
},
|
|
401
406
|
},
|
|
@@ -406,21 +411,25 @@ export default {
|
|
|
406
411
|
},
|
|
407
412
|
},
|
|
408
413
|
watch: {
|
|
409
|
-
|
|
414
|
+
shareLink: {
|
|
410
415
|
handler: function (newLink) {
|
|
411
416
|
this.settingsStore.updateShareLink(newLink);
|
|
412
417
|
},
|
|
413
418
|
immediate: true,
|
|
414
419
|
},
|
|
415
420
|
},
|
|
416
|
-
beforeMount: function() {
|
|
421
|
+
beforeMount: function () {
|
|
417
422
|
if (this.options) {
|
|
418
423
|
// Split options prop up to commit to the store
|
|
419
424
|
this.options.sparcApi ? this.settingsStore.updateSparcAPI(this.options.sparcApi) : null;
|
|
420
|
-
this.options.algoliaIndex
|
|
425
|
+
this.options.algoliaIndex
|
|
426
|
+
? this.settingsStore.updateAlgoliaIndex(this.options.algoliaIndex)
|
|
427
|
+
: null;
|
|
421
428
|
this.options.algoliaKey ? this.settingsStore.updateAlgoliaKey(this.options.algoliaKey) : null;
|
|
422
429
|
this.options.algoliaId ? this.settingsStore.updateAlgoliaId(this.options.algoliaId) : null;
|
|
423
|
-
this.options.pennsieveApi
|
|
430
|
+
this.options.pennsieveApi
|
|
431
|
+
? this.settingsStore.updatePennsieveApi(this.options.pennsieveApi)
|
|
432
|
+
: null;
|
|
424
433
|
this.options.flatmapAPI ? this.settingsStore.updateFlatmapAPI(this.options.flatmapAPI) : null;
|
|
425
434
|
this.options.rootUrl ? this.settingsStore.updateRootUrl(this.options.rootUrl) : null;
|
|
426
435
|
}
|
|
@@ -428,12 +437,12 @@ export default {
|
|
|
428
437
|
this.splitFlowStore?.reset();
|
|
429
438
|
this.splitFlowStore?.getAvailableTerms(this.settingsStore.sparcApi);
|
|
430
439
|
},
|
|
431
|
-
mounted: async function() {
|
|
432
|
-
EventBus.on(
|
|
440
|
+
mounted: async function () {
|
|
441
|
+
EventBus.on('updateShareLinkRequested', (data) => {
|
|
433
442
|
/**
|
|
434
443
|
* This event emits when the share link is requested.
|
|
435
444
|
*/
|
|
436
|
-
this.$emit(
|
|
445
|
+
this.$emit('updateShareLinkRequested', data);
|
|
437
446
|
});
|
|
438
447
|
EventBus.on('trackEvent', (taggingData) => {
|
|
439
448
|
/**
|
|
@@ -444,30 +453,28 @@ export default {
|
|
|
444
453
|
if (!this.state) {
|
|
445
454
|
this.initialState = await initialState(this.startingMap, this.options.sparcApi);
|
|
446
455
|
}
|
|
447
|
-
EventBus.on(
|
|
456
|
+
EventBus.on('mapLoaded', (map) => {
|
|
448
457
|
// Check if there is a search term to display
|
|
449
458
|
if (this.displaySearchFromQuery) {
|
|
450
459
|
setTimeout(() => {
|
|
451
|
-
this.$refs.flow.onDisplaySearch({term: this.displaySearchFromQuery});
|
|
460
|
+
this.$refs.flow.onDisplaySearch({ term: this.displaySearchFromQuery });
|
|
452
461
|
this.displaySearchFromQuery = ''; // Clear after using it from first load
|
|
453
462
|
});
|
|
454
463
|
}
|
|
455
464
|
/**
|
|
456
465
|
* This event emit when the map is loaded.
|
|
457
466
|
*/
|
|
458
|
-
this.$emit(
|
|
467
|
+
this.$emit('mapLoaded', map);
|
|
459
468
|
});
|
|
460
469
|
this.isReady = true;
|
|
461
470
|
this.settingsStore.updateUseHelpModeDialog(this.useHelpModeDialog);
|
|
462
471
|
this.settingsStore.updateConnectivityInfoSidebar(this.connectivityInfoSidebar);
|
|
463
472
|
this.settingsStore.updateAnnotationSidebar(this.annotationSidebar);
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
|
|
473
|
+
},
|
|
474
|
+
};
|
|
467
475
|
</script>
|
|
468
476
|
|
|
469
477
|
<style scoped lang="scss">
|
|
470
|
-
|
|
471
478
|
:deep(.el-loading-spinner) {
|
|
472
479
|
.path {
|
|
473
480
|
stroke: $app-primary-color;
|
|
@@ -486,19 +493,16 @@ export default {
|
|
|
486
493
|
|
|
487
494
|
.mapcontent {
|
|
488
495
|
height: 100%;
|
|
489
|
-
width:100%;
|
|
490
|
-
z-index:1;
|
|
496
|
+
width: 100%;
|
|
497
|
+
z-index: 1;
|
|
491
498
|
}
|
|
492
|
-
|
|
493
499
|
</style>
|
|
494
500
|
|
|
495
501
|
<style lang="scss">
|
|
496
|
-
|
|
497
502
|
.mapcontent {
|
|
498
|
-
--el-color-primary: #
|
|
503
|
+
--el-color-primary: #8300bf;
|
|
499
504
|
--el-color-primary-light-7: #dab3ec;
|
|
500
505
|
--el-color-primary-light-8: #e6ccf2;
|
|
501
506
|
--el-color-primary-light-9: #f3e6f9;
|
|
502
507
|
}
|
|
503
|
-
|
|
504
508
|
</style>
|
|
@@ -1,24 +1,20 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
style="height: 100%; width: 100%; position:absolute"
|
|
4
|
-
ref="display"
|
|
5
|
-
/>
|
|
2
|
+
<div style="height: 100%; width: 100%; position: absolute" ref="display" />
|
|
6
3
|
</template>
|
|
7
4
|
|
|
8
5
|
<script>
|
|
9
|
-
|
|
10
|
-
import ResizeSensor from "css-element-queries/src/ResizeSensor";
|
|
6
|
+
import ResizeSensor from 'css-element-queries/src/ResizeSensor';
|
|
11
7
|
|
|
12
8
|
export default {
|
|
13
|
-
name:
|
|
9
|
+
name: 'ResizeSensor',
|
|
14
10
|
methods: {
|
|
15
|
-
activate: function() {
|
|
11
|
+
activate: function () {
|
|
16
12
|
if (!this._sensor) {
|
|
17
13
|
this._sensor = new ResizeSensor(this.$refs.display, this.displayResize);
|
|
18
14
|
this.displayResize();
|
|
19
15
|
}
|
|
20
16
|
},
|
|
21
|
-
deactivate: function() {
|
|
17
|
+
deactivate: function () {
|
|
22
18
|
if (this._sensor) {
|
|
23
19
|
this._sensor.detach(this.$refs.display, this.displayResize);
|
|
24
20
|
delete this._sensor;
|
|
@@ -26,8 +22,8 @@ export default {
|
|
|
26
22
|
this.displayResize();
|
|
27
23
|
}
|
|
28
24
|
},
|
|
29
|
-
displayResize: function() {
|
|
30
|
-
this.$emit(
|
|
25
|
+
displayResize: function () {
|
|
26
|
+
this.$emit('resize');
|
|
31
27
|
},
|
|
32
28
|
},
|
|
33
29
|
unmounted() {
|
|
@@ -41,7 +37,6 @@ export default {
|
|
|
41
37
|
},
|
|
42
38
|
mounted: function () {
|
|
43
39
|
this.activate();
|
|
44
|
-
}
|
|
40
|
+
},
|
|
45
41
|
};
|
|
46
42
|
</script>
|
|
47
|
-
|