@abi-software/flatmapvuer 1.17.0 → 1.17.1-demo.1
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 +28 -6
- package/cypress.config.js +19 -19
- package/dist/flatmapvuer.js +2687 -3269
- package/dist/flatmapvuer.umd.cjs +10 -10
- package/dist/index.html +9 -6
- package/dist/style.css +1 -1
- package/eslint.config.js +43 -9
- package/package.json +7 -1
- package/public/index.html +9 -6
- package/reporter-config.json +1 -1
- package/src/App.vue +57 -89
- package/src/assets/_variables.scss +12 -10
- package/src/components/EventBus.js +3 -3
- package/src/components/FlatmapError.vue +38 -38
- package/src/components/FlatmapVuer.vue +891 -945
- package/src/components/MultiFlatmapVuer.vue +257 -158
- package/src/components/SelectionsGroup.vue +66 -82
- package/src/components/index.js +2 -2
- package/src/components/legends/DynamicLegends.vue +5 -10
- package/src/components/legends/LegendItem.vue +32 -35
- package/src/components/legends/SvgLegends.vue +1 -1
- package/src/components/utilities.js +3 -7
- package/src/components.d.ts +1 -0
- package/src/icons/flatmap-marker.js +1 -1
- package/src/icons/mapicon-species-style.css +10 -8
- package/src/icons/yellowstar.js +1 -1
- package/src/main.js +12 -14
- package/src/services/flatmapKnowledge.js +7 -11
- package/src/services/flatmapQueries.js +282 -279
- package/src/services/somaLocationMarkers.js +125 -0
- package/src/store/index.js +7 -7
- package/vite.config.js +33 -34
- package/vite.static-build.js +4 -4
- package/vuese-generator.js +47 -56
|
@@ -10,13 +10,13 @@
|
|
|
10
10
|
popper-class="popover-origin-help"
|
|
11
11
|
v-if="helpMessage"
|
|
12
12
|
>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
<template v-if="helpMessage" #reference>
|
|
14
|
+
<el-icon class="info"><el-icon-warning /></el-icon>
|
|
15
|
+
</template>
|
|
16
|
+
<span style="word-break: keep-all">
|
|
17
|
+
{{ helpMessage }}
|
|
18
|
+
</span>
|
|
19
|
+
</el-popover>
|
|
20
20
|
</el-col>
|
|
21
21
|
<el-col :span="12">
|
|
22
22
|
<el-checkbox
|
|
@@ -26,8 +26,9 @@
|
|
|
26
26
|
v-model="checkAll"
|
|
27
27
|
@change="handleCheckAllChange"
|
|
28
28
|
@click="onAllCheckboxNativeChange"
|
|
29
|
-
>Display all</el-checkbox
|
|
30
29
|
>
|
|
30
|
+
Display all
|
|
31
|
+
</el-checkbox>
|
|
31
32
|
</el-col>
|
|
32
33
|
</el-row>
|
|
33
34
|
<el-checkbox-group
|
|
@@ -37,15 +38,12 @@
|
|
|
37
38
|
@change="handleCheckedItemsChange"
|
|
38
39
|
>
|
|
39
40
|
<div class="checkbox-group-inner">
|
|
40
|
-
<el-row
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
:label="item[identifierKey]"
|
|
44
|
-
>
|
|
45
|
-
<div class="checkbox-container"
|
|
41
|
+
<el-row v-for="item in selections" :key="item[identifierKey]" :label="item[identifierKey]">
|
|
42
|
+
<div
|
|
43
|
+
class="checkbox-container"
|
|
46
44
|
@mouseenter="checkboxMouseEnterEmit(item[identifierKey], true)"
|
|
47
45
|
@mouseleave="checkboxMouseEnterEmit(item[identifierKey], false)"
|
|
48
|
-
|
|
46
|
+
>
|
|
49
47
|
<el-checkbox
|
|
50
48
|
class="my-checkbox"
|
|
51
49
|
:label="item[identifierKey]"
|
|
@@ -73,26 +71,11 @@
|
|
|
73
71
|
</template>
|
|
74
72
|
|
|
75
73
|
<script>
|
|
76
|
-
|
|
77
|
-
import {
|
|
78
|
-
Warning as ElIconWarning,
|
|
79
|
-
} from '@element-plus/icons-vue'
|
|
80
|
-
import {
|
|
81
|
-
ElCheckbox as Checkbox,
|
|
82
|
-
ElCheckboxGroup as CheckboxGroup,
|
|
83
|
-
ElIcon as Icon,
|
|
84
|
-
ElCol as Col,
|
|
85
|
-
ElRow as Row,
|
|
86
|
-
} from 'element-plus'
|
|
74
|
+
import { Warning as ElIconWarning } from '@element-plus/icons-vue';
|
|
87
75
|
|
|
88
76
|
export default {
|
|
89
77
|
name: 'SelectionsGroup',
|
|
90
78
|
components: {
|
|
91
|
-
Checkbox,
|
|
92
|
-
CheckboxGroup,
|
|
93
|
-
Col,
|
|
94
|
-
Icon,
|
|
95
|
-
Row,
|
|
96
79
|
ElIconWarning,
|
|
97
80
|
},
|
|
98
81
|
methods: {
|
|
@@ -101,15 +84,15 @@ export default {
|
|
|
101
84
|
* Also called when the associated button is pressed.
|
|
102
85
|
*/
|
|
103
86
|
reset: function () {
|
|
104
|
-
this.checkAll = true
|
|
105
|
-
this.checkedItems = []
|
|
87
|
+
this.checkAll = true;
|
|
88
|
+
this.checkedItems = [];
|
|
106
89
|
this.selections.forEach((item) => {
|
|
107
90
|
if (!('enabled' in item) || item.enabled === true) {
|
|
108
|
-
this.checkedItems.push(item[this.identifierKey])
|
|
91
|
+
this.checkedItems.push(item[this.identifierKey]);
|
|
109
92
|
} else {
|
|
110
|
-
this.checkAll = false
|
|
93
|
+
this.checkAll = false;
|
|
111
94
|
}
|
|
112
|
-
})
|
|
95
|
+
});
|
|
113
96
|
},
|
|
114
97
|
setCheckboxActionData: function (containerEl, option) {
|
|
115
98
|
// option = 'individual' or 'all'
|
|
@@ -127,9 +110,9 @@ export default {
|
|
|
127
110
|
|
|
128
111
|
this.checkboxActionData = {
|
|
129
112
|
selectionsTitle: selectionsTitleEl ? selectionsTitleEl.innerText : '',
|
|
130
|
-
property:
|
|
113
|
+
property: checkboxEl && option !== 'all' ? checkboxEl.value : '',
|
|
131
114
|
label: checkboxLabelEl ? checkboxLabelEl.innerText : '',
|
|
132
|
-
checked: checkedLabel
|
|
115
|
+
checked: checkedLabel,
|
|
133
116
|
};
|
|
134
117
|
} else {
|
|
135
118
|
// reset if no checkbox container found
|
|
@@ -150,7 +133,7 @@ export default {
|
|
|
150
133
|
this.setCheckboxActionData(checkboxContainerEl, 'all');
|
|
151
134
|
},
|
|
152
135
|
visibilityToggle: function (key, value) {
|
|
153
|
-
this.$emit('changed', { key, value })
|
|
136
|
+
this.$emit('changed', { key, value });
|
|
154
137
|
// emit event with checkbox data for tracking
|
|
155
138
|
if (key === this.checkboxActionData.property) {
|
|
156
139
|
// change true/false to checked/unchecked for readability
|
|
@@ -160,21 +143,24 @@ export default {
|
|
|
160
143
|
},
|
|
161
144
|
checkboxMouseEnterEmit: function (key, value) {
|
|
162
145
|
// Update the stated to send to the emit
|
|
163
|
-
this.$emit('checkboxMouseEnter', {
|
|
146
|
+
this.$emit('checkboxMouseEnter', {
|
|
147
|
+
key: key,
|
|
148
|
+
value: value,
|
|
149
|
+
selections: this.selections,
|
|
150
|
+
checked: this.checkedItems,
|
|
151
|
+
});
|
|
164
152
|
},
|
|
165
153
|
handleCheckedItemsChange: function (value) {
|
|
166
|
-
let checkedCount = value.length
|
|
167
|
-
this.checkAll = checkedCount === this.selections.length
|
|
154
|
+
let checkedCount = value.length;
|
|
155
|
+
this.checkAll = checkedCount === this.selections.length;
|
|
168
156
|
},
|
|
169
157
|
handleCheckAllChange: function (val) {
|
|
170
|
-
this.checkedItems = val
|
|
171
|
-
? this.selections.map((a) => a[this.identifierKey])
|
|
172
|
-
: []
|
|
158
|
+
this.checkedItems = val ? this.selections.map((a) => a[this.identifierKey]) : [];
|
|
173
159
|
|
|
174
160
|
this.$emit('checkAll', {
|
|
175
161
|
keys: this.selections.map((a) => a[this.identifierKey]),
|
|
176
162
|
value: val,
|
|
177
|
-
})
|
|
163
|
+
});
|
|
178
164
|
// emit event with checkbox data for tracking
|
|
179
165
|
this.checkboxActionData.property = this.identifierKey;
|
|
180
166
|
// change true/false to checked/unchecked for readability
|
|
@@ -183,50 +169,50 @@ export default {
|
|
|
183
169
|
},
|
|
184
170
|
getBackgroundStyles: function (item) {
|
|
185
171
|
if ('colour' in item && this.colourStyle === 'background') {
|
|
186
|
-
return { background: item.colour }
|
|
172
|
+
return { background: item.colour };
|
|
187
173
|
}
|
|
188
|
-
return {}
|
|
174
|
+
return {};
|
|
189
175
|
},
|
|
190
|
-
getState: function() {
|
|
191
|
-
let checkedCount = this.checkedItems.length
|
|
192
|
-
const checkAll = checkedCount === this.selections.length
|
|
176
|
+
getState: function () {
|
|
177
|
+
let checkedCount = this.checkedItems.length;
|
|
178
|
+
const checkAll = checkedCount === this.selections.length;
|
|
193
179
|
return {
|
|
194
180
|
checkAll,
|
|
195
|
-
checked: !checkAll ? this.checkedItems : []
|
|
196
|
-
}
|
|
181
|
+
checked: !checkAll ? this.checkedItems : [],
|
|
182
|
+
};
|
|
197
183
|
},
|
|
198
|
-
setState: function(state) {
|
|
199
|
-
this.checkAll = state.checkAll
|
|
200
|
-
this.checkedItems.length = 0
|
|
184
|
+
setState: function (state) {
|
|
185
|
+
this.checkAll = state.checkAll;
|
|
186
|
+
this.checkedItems.length = 0;
|
|
201
187
|
if (state.checked?.length) {
|
|
202
|
-
this.checkedItems.push(...state.checked)
|
|
188
|
+
this.checkedItems.push(...state.checked);
|
|
203
189
|
this.selections.forEach((item) => {
|
|
204
|
-
const key = item[this.identifierKey]
|
|
205
|
-
this.$emit('changed', {key, value: this.checkedItems.includes(key)})
|
|
206
|
-
})
|
|
190
|
+
const key = item[this.identifierKey];
|
|
191
|
+
this.$emit('changed', { key, value: this.checkedItems.includes(key) });
|
|
192
|
+
});
|
|
207
193
|
} else {
|
|
208
|
-
const keys = this.selections.map((a) => a[this.identifierKey])
|
|
209
|
-
let value = false
|
|
194
|
+
const keys = this.selections.map((a) => a[this.identifierKey]);
|
|
195
|
+
let value = false;
|
|
210
196
|
if (this.checkAll) {
|
|
211
|
-
value = true
|
|
212
|
-
this.checkedItems.push(...keys)
|
|
197
|
+
value = true;
|
|
198
|
+
this.checkedItems.push(...keys);
|
|
213
199
|
}
|
|
214
|
-
this.$emit('checkAll', { keys, value })
|
|
200
|
+
this.$emit('checkAll', { keys, value });
|
|
215
201
|
}
|
|
216
202
|
},
|
|
217
|
-
hasLineStyles: function(item) {
|
|
218
|
-
return 'colour' in item && this.colourStyle === 'line'
|
|
203
|
+
hasLineStyles: function (item) {
|
|
204
|
+
return 'colour' in item && this.colourStyle === 'line';
|
|
219
205
|
},
|
|
220
206
|
getLineStyles: function (item) {
|
|
221
207
|
if ('colour' in item && this.colourStyle === 'line') {
|
|
222
208
|
if ('dashed' in item && item.dashed === true) {
|
|
223
|
-
const background = `repeating-linear-gradient(90deg,${item.colour},${item.colour} 6px,transparent 0,transparent 9px)
|
|
224
|
-
return { background }
|
|
209
|
+
const background = `repeating-linear-gradient(90deg,${item.colour},${item.colour} 6px,transparent 0,transparent 9px)`;
|
|
210
|
+
return { background };
|
|
225
211
|
} else {
|
|
226
|
-
return { background: item.colour }
|
|
212
|
+
return { background: item.colour };
|
|
227
213
|
}
|
|
228
214
|
}
|
|
229
|
-
return { display: 'None' }
|
|
215
|
+
return { display: 'None' };
|
|
230
216
|
},
|
|
231
217
|
},
|
|
232
218
|
props: {
|
|
@@ -253,7 +239,7 @@ export default {
|
|
|
253
239
|
selections: {
|
|
254
240
|
type: Array,
|
|
255
241
|
default: function () {
|
|
256
|
-
return []
|
|
242
|
+
return [];
|
|
257
243
|
},
|
|
258
244
|
},
|
|
259
245
|
showAsLegend: {
|
|
@@ -263,11 +249,11 @@ export default {
|
|
|
263
249
|
},
|
|
264
250
|
computed: {
|
|
265
251
|
isIndeterminate: function () {
|
|
266
|
-
const count = this.checkedItems.length
|
|
252
|
+
const count = this.checkedItems.length;
|
|
267
253
|
if (count === 0 || this.checkAll) {
|
|
268
|
-
return false
|
|
254
|
+
return false;
|
|
269
255
|
}
|
|
270
|
-
return true
|
|
256
|
+
return true;
|
|
271
257
|
},
|
|
272
258
|
},
|
|
273
259
|
data: function () {
|
|
@@ -280,16 +266,15 @@ export default {
|
|
|
280
266
|
label: '',
|
|
281
267
|
checked: '',
|
|
282
268
|
},
|
|
283
|
-
}
|
|
269
|
+
};
|
|
284
270
|
},
|
|
285
271
|
mounted: function () {
|
|
286
|
-
this.reset()
|
|
272
|
+
this.reset();
|
|
287
273
|
},
|
|
288
|
-
}
|
|
274
|
+
};
|
|
289
275
|
</script>
|
|
290
276
|
|
|
291
277
|
<style lang="scss" scoped>
|
|
292
|
-
|
|
293
278
|
.path-visual {
|
|
294
279
|
margin: 3px 0;
|
|
295
280
|
height: 3px;
|
|
@@ -314,7 +299,7 @@ export default {
|
|
|
314
299
|
}
|
|
315
300
|
|
|
316
301
|
.all-checkbox {
|
|
317
|
-
height:20px;
|
|
302
|
+
height: 20px;
|
|
318
303
|
float: right;
|
|
319
304
|
}
|
|
320
305
|
|
|
@@ -361,7 +346,7 @@ export default {
|
|
|
361
346
|
}
|
|
362
347
|
|
|
363
348
|
:deep(.el-row) {
|
|
364
|
-
height:20px;
|
|
349
|
+
height: 20px;
|
|
365
350
|
margin-bottom: 0;
|
|
366
351
|
}
|
|
367
352
|
|
|
@@ -376,7 +361,6 @@ export default {
|
|
|
376
361
|
margin-left: 8px;
|
|
377
362
|
}
|
|
378
363
|
|
|
379
|
-
|
|
380
364
|
:deep(.popover-origin-help.el-popover) {
|
|
381
365
|
text-transform: none !important; // need to overide the tooltip text transform
|
|
382
366
|
border: 1px solid $app-primary-color;
|
package/src/components/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// The Vue build version to load with the `import` command
|
|
2
2
|
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
|
|
3
|
-
import FlatmapVuer from
|
|
4
|
-
import MultiFlatmapVuer from
|
|
3
|
+
import FlatmapVuer from './FlatmapVuer.vue';
|
|
4
|
+
import MultiFlatmapVuer from './MultiFlatmapVuer.vue';
|
|
5
5
|
import '../assets/fonts.scss';
|
|
6
6
|
|
|
7
7
|
export { FlatmapVuer, MultiFlatmapVuer };
|
|
@@ -19,11 +19,7 @@
|
|
|
19
19
|
ref="featuredMarkerPopover"
|
|
20
20
|
>
|
|
21
21
|
<template #reference>
|
|
22
|
-
<div
|
|
23
|
-
v-popover:featuredMarkerPopover
|
|
24
|
-
@mouseover="onMouseOver"
|
|
25
|
-
@mouseout="onMouseOut"
|
|
26
|
-
>
|
|
22
|
+
<div v-popover:featuredMarkerPopover @mouseover="onMouseOver" @mouseout="onMouseOut">
|
|
27
23
|
<LegendItem
|
|
28
24
|
:item="item"
|
|
29
25
|
:identifierKey="identifierKey"
|
|
@@ -49,24 +45,23 @@
|
|
|
49
45
|
<script>
|
|
50
46
|
import LegendItem from './LegendItem.vue';
|
|
51
47
|
|
|
52
|
-
/* eslint-disable no-alert, no-console */
|
|
53
48
|
export default {
|
|
54
|
-
name:
|
|
49
|
+
name: 'DynamicLegends',
|
|
55
50
|
components: {
|
|
56
51
|
LegendItem,
|
|
57
52
|
},
|
|
58
53
|
props: {
|
|
59
54
|
identifierKey: {
|
|
60
55
|
type: String,
|
|
61
|
-
default:
|
|
56
|
+
default: 'id',
|
|
62
57
|
},
|
|
63
58
|
styleKey: {
|
|
64
59
|
type: String,
|
|
65
|
-
default:
|
|
60
|
+
default: 'style',
|
|
66
61
|
},
|
|
67
62
|
title: {
|
|
68
63
|
type: String,
|
|
69
|
-
default:
|
|
64
|
+
default: '',
|
|
70
65
|
},
|
|
71
66
|
legends: {
|
|
72
67
|
type: Array,
|
|
@@ -1,34 +1,23 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="legend-item" v-if="legendStyleValue">
|
|
3
3
|
<template v-if="clipPathLegends.includes(legendStyleValue)">
|
|
4
|
-
<div
|
|
5
|
-
:class="legendStyleValue"
|
|
6
|
-
:style="customClipPathStyle(true)"
|
|
7
|
-
>
|
|
8
|
-
<div
|
|
9
|
-
:class="legendStyleValue"
|
|
10
|
-
:style="customClipPathStyle(false)"
|
|
11
|
-
>
|
|
12
|
-
</div>
|
|
4
|
+
<div :class="legendStyleValue" :style="customClipPathStyle(true)">
|
|
5
|
+
<div :class="legendStyleValue" :style="customClipPathStyle(false)"></div>
|
|
13
6
|
</div>
|
|
14
7
|
</template>
|
|
15
8
|
<template v-else>
|
|
16
|
-
<div
|
|
17
|
-
:class="legendStyleValue"
|
|
18
|
-
:style="customStyle"
|
|
19
|
-
>
|
|
20
|
-
</div>
|
|
9
|
+
<div :class="legendStyleValue" :style="customStyle"></div>
|
|
21
10
|
</template>
|
|
22
11
|
<div class="label">{{ capitalise(item[identifierKey]) }}</div>
|
|
23
12
|
</div>
|
|
24
13
|
</template>
|
|
25
14
|
|
|
26
15
|
<script>
|
|
27
|
-
const starTemplate =
|
|
16
|
+
const starTemplate =
|
|
17
|
+
'<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill="<fillColor>" stroke="<borderColor>" stroke-width="<borderWidth>" d="M11.0748 3.25583C11.4141 2.42845 12.5859 2.42845 12.9252 3.25583L14.6493 7.45955C14.793 7.80979 15.1221 8.04889 15.4995 8.07727L20.0303 8.41798C20.922 8.48504 21.2841 9.59942 20.6021 10.1778L17.1369 13.1166C16.8482 13.3614 16.7225 13.7483 16.8122 14.1161L17.8882 18.5304C18.1 19.3992 17.152 20.0879 16.3912 19.618L12.5255 17.2305C12.2034 17.0316 11.7966 17.0316 11.4745 17.2305L7.60881 19.618C6.84796 20.0879 5.90001 19.3992 6.1118 18.5304L7.18785 14.1161C7.2775 13.7483 7.1518 13.3614 6.86309 13.1166L3.3979 10.1778C2.71588 9.59942 3.07796 8.48504 3.96971 8.41798L8.50046 8.07727C8.87794 8.04889 9.20704 7.80979 9.35068 7.45955L11.0748 3.25583Z"/></svg>';
|
|
28
18
|
|
|
29
|
-
/* eslint-disable no-alert, no-console */
|
|
30
19
|
export default {
|
|
31
|
-
name:
|
|
20
|
+
name: 'LegendItem',
|
|
32
21
|
props: {
|
|
33
22
|
item: {
|
|
34
23
|
type: Object,
|
|
@@ -36,11 +25,11 @@ export default {
|
|
|
36
25
|
},
|
|
37
26
|
identifierKey: {
|
|
38
27
|
type: String,
|
|
39
|
-
default:
|
|
28
|
+
default: 'id',
|
|
40
29
|
},
|
|
41
30
|
styleKey: {
|
|
42
31
|
type: String,
|
|
43
|
-
default:
|
|
32
|
+
default: 'style',
|
|
44
33
|
},
|
|
45
34
|
showStarInLegend: {
|
|
46
35
|
type: Boolean,
|
|
@@ -52,8 +41,8 @@ export default {
|
|
|
52
41
|
return ['exoid', 'hexagon'];
|
|
53
42
|
},
|
|
54
43
|
legendStyleValue: function () {
|
|
55
|
-
if (this.item[this.styleKey] ===
|
|
56
|
-
if (this.item[this.identifierKey] ===
|
|
44
|
+
if (this.item[this.styleKey] === 'star') {
|
|
45
|
+
if (this.item[this.identifierKey] === 'Featured dataset marker') {
|
|
57
46
|
if (!this.showStarInLegend) {
|
|
58
47
|
return;
|
|
59
48
|
}
|
|
@@ -62,15 +51,19 @@ export default {
|
|
|
62
51
|
} else if (this.clipPathLegends.includes(this.item[this.styleKey])) {
|
|
63
52
|
return this.item[this.styleKey];
|
|
64
53
|
} else if (this.item[this.styleKey] === 'line') {
|
|
65
|
-
return [
|
|
54
|
+
return [
|
|
55
|
+
this.item[this.styleKey],
|
|
56
|
+
this.item.dashed ? 'dashed' : '',
|
|
57
|
+
this.item.arrow ? 'arrow' : '',
|
|
58
|
+
];
|
|
66
59
|
}
|
|
67
60
|
return [this.item[this.styleKey], 'shape'];
|
|
68
61
|
},
|
|
69
|
-
customStyle: function() {
|
|
70
|
-
const specifiedColour = this.item[
|
|
71
|
-
let colour = specifiedColour ? specifiedColour :
|
|
72
|
-
let borderColour = this.item.border ? this.item.border :
|
|
73
|
-
let borderStyle = this.item.borderStyle ? this.item.borderStyle :
|
|
62
|
+
customStyle: function () {
|
|
63
|
+
const specifiedColour = this.item['color'] ? this.item['color'] : this.item['colour'];
|
|
64
|
+
let colour = specifiedColour ? specifiedColour : 'transparent';
|
|
65
|
+
let borderColour = this.item.border ? this.item.border : 'black';
|
|
66
|
+
let borderStyle = this.item.borderStyle ? this.item.borderStyle : 'default';
|
|
74
67
|
if (specifiedColour && !this.item.border) {
|
|
75
68
|
borderColour = colour;
|
|
76
69
|
}
|
|
@@ -79,11 +72,15 @@ export default {
|
|
|
79
72
|
star = star.replace('<borderColor>', borderColour);
|
|
80
73
|
star = star.replace('<borderWidth>', borderColour ? '2' : '0');
|
|
81
74
|
star = 'data:image/svg+xml,' + encodeURIComponent(star);
|
|
82
|
-
return {
|
|
75
|
+
return { color: colour, 'background-image': `url(${star})` };
|
|
83
76
|
} else if (this.item[this.styleKey] === 'line') {
|
|
84
|
-
return {
|
|
77
|
+
return { color: colour };
|
|
85
78
|
} else {
|
|
86
|
-
return {
|
|
79
|
+
return {
|
|
80
|
+
'background-color': colour,
|
|
81
|
+
'border-color': borderColour,
|
|
82
|
+
'border-style': borderStyle,
|
|
83
|
+
};
|
|
87
84
|
}
|
|
88
85
|
},
|
|
89
86
|
},
|
|
@@ -91,8 +88,8 @@ export default {
|
|
|
91
88
|
capitalise: function (label) {
|
|
92
89
|
return label.charAt(0).toUpperCase() + label.slice(1).toLowerCase();
|
|
93
90
|
},
|
|
94
|
-
customClipPathStyle: function(isBorder) {
|
|
95
|
-
const style = {...this.customStyle};
|
|
91
|
+
customClipPathStyle: function (isBorder) {
|
|
92
|
+
const style = { ...this.customStyle };
|
|
96
93
|
if (isBorder) {
|
|
97
94
|
style['background-color'] = style['border-color'];
|
|
98
95
|
} else {
|
|
@@ -122,7 +119,7 @@ export default {
|
|
|
122
119
|
}
|
|
123
120
|
|
|
124
121
|
.line::after {
|
|
125
|
-
content:
|
|
122
|
+
content: '';
|
|
126
123
|
position: absolute;
|
|
127
124
|
right: -2px;
|
|
128
125
|
top: -5px;
|
|
@@ -169,10 +166,10 @@ export default {
|
|
|
169
166
|
height: 25px;
|
|
170
167
|
background-color: transparent;
|
|
171
168
|
clip-path: path(
|
|
172
|
-
|
|
169
|
+
'M9.96 0.72 c-2.01 3.53 -5.81 5.74 -9.92 5.74 l-0.15 0.23 c1.94 3.42 1.94 7.6 0 11.02 l0.15 0.23 c4.07 0 7.9 2.2 9.92 5.74 c2.01 -3.53 5.81 -5.74 9.92 -5.74 c-2.01 -3.53 -2.01 -7.94 0 -11.55 C15.81 6.5 12.04 4.29 9.96 0.72z'
|
|
173
170
|
);
|
|
174
171
|
-webkit-clip-path: path(
|
|
175
|
-
|
|
172
|
+
'M9.96 0.72 c-2.01 3.53 -5.81 5.74 -9.92 5.74 l-0.15 0.23 c1.94 3.42 1.94 7.6 0 11.02 l0.15 0.23 c4.07 0 7.9 2.2 9.92 5.74 c2.01 -3.53 5.81 -5.74 9.92 -5.74 c-2.01 -3.53 -2.01 -7.94 0 -11.55 C15.81 6.5 12.04 4.29 9.96 0.72z'
|
|
176
173
|
);
|
|
177
174
|
}
|
|
178
175
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
const capitalise = term => {
|
|
2
|
-
if (term)
|
|
3
|
-
return term.charAt(0).toUpperCase() + term.slice(1);
|
|
1
|
+
const capitalise = (term) => {
|
|
2
|
+
if (term) return term.charAt(0).toUpperCase() + term.slice(1);
|
|
4
3
|
return term;
|
|
5
4
|
};
|
|
6
5
|
|
|
@@ -38,7 +37,4 @@ const normaliseAlertToStringArray = (value) => {
|
|
|
38
37
|
return [];
|
|
39
38
|
};
|
|
40
39
|
|
|
41
|
-
export {
|
|
42
|
-
capitalise,
|
|
43
|
-
normaliseAlertToStringArray,
|
|
44
|
-
};
|
|
40
|
+
export { capitalise, normaliseAlertToStringArray };
|
package/src/components.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ declare module 'vue' {
|
|
|
28
28
|
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
|
29
29
|
ElRow: typeof import('element-plus/es')['ElRow']
|
|
30
30
|
ElSelect: typeof import('element-plus/es')['ElSelect']
|
|
31
|
+
ElTooltip: typeof import('element-plus/es')['ElTooltip']
|
|
31
32
|
FlatmapError: typeof import('./components/FlatmapError.vue')['default']
|
|
32
33
|
FlatmapVuer: typeof import('./components/FlatmapVuer.vue')['default']
|
|
33
34
|
LegendItem: typeof import('./components/legends/LegendItem.vue')['default']
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
@font-face {
|
|
2
2
|
font-family: 'mapicon-species';
|
|
3
|
-
src:
|
|
4
|
-
src:
|
|
3
|
+
src: url('fonts/mapicon-species.eot?h40clo');
|
|
4
|
+
src:
|
|
5
|
+
url('fonts/mapicon-species.eot?h40clo#iefix') format('embedded-opentype'),
|
|
5
6
|
url('fonts/mapicon-species.ttf?h40clo') format('truetype'),
|
|
6
7
|
url('fonts/mapicon-species.woff?h40clo') format('woff'),
|
|
7
8
|
url('fonts/mapicon-species.svg?h40clo#mapicon-species') format('svg');
|
|
@@ -10,7 +11,8 @@
|
|
|
10
11
|
font-display: block;
|
|
11
12
|
}
|
|
12
13
|
|
|
13
|
-
[class^=
|
|
14
|
+
[class^='mapicon-icon'],
|
|
15
|
+
[class*=' mapicon-icon'] {
|
|
14
16
|
/* use !important to prevent issues with browser extensions that change fonts */
|
|
15
17
|
font-family: 'mapicon-species' !important;
|
|
16
18
|
speak: never;
|
|
@@ -26,17 +28,17 @@
|
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
.mapicon-icon_cat:before {
|
|
29
|
-
content:
|
|
31
|
+
content: '\e904';
|
|
30
32
|
}
|
|
31
33
|
.mapicon-icon_rat:before {
|
|
32
|
-
content:
|
|
34
|
+
content: '\e900';
|
|
33
35
|
}
|
|
34
36
|
.mapicon-icon_pig:before {
|
|
35
|
-
content:
|
|
37
|
+
content: '\e901';
|
|
36
38
|
}
|
|
37
39
|
.mapicon-icon_mouse:before {
|
|
38
|
-
content:
|
|
40
|
+
content: '\e902';
|
|
39
41
|
}
|
|
40
42
|
.mapicon-icon_human:before {
|
|
41
|
-
content:
|
|
43
|
+
content: '\e903';
|
|
42
44
|
}
|
package/src/icons/yellowstar.js
CHANGED
|
@@ -2,4 +2,4 @@ export default '<svg width="195px" height="24px" viewBox="0 0 200 24" fill="yell
|
|
|
2
2
|
'<path d="M22.0748 3.25583C22.4141 2.42845 23.5859 2.42845 23.9252 3.25583L25.6493 7.45955C25.793 7.80979 26.1221 8.04889 26.4995 8.07727L31.0303 8.41798C31.922 8.48504 32.2841 9.59942 31.6021 10.1778L28.1369 13.1166C27.8482 13.3614 27.7225 13.7483 27.8122 14.1161L28.8882 18.5304C29.1 19.3992 28.152 20.0879 27.3912 19.618L23.5255 17.2305C23.2034 17.0316 22.7966 17.0316 22.4745 17.2305L18.60881 19.618C17.84796 20.0879 16.9 19.3992 17.1118 18.5304L18.18785 14.1161C18.2775 13.7483 18.1518 13.3614 17.86309 13.1166L14.3979 10.1778C13.71588 9.59942 14.07796 8.48504 14.96971 8.41798L19.50046 8.07727C19.87794 8.04889 20.20704 7.80979 20.35068 7.45955L22.0748 3.25583Z" stroke="#000000" stroke-width="2"/>' +
|
|
3
3
|
// Adjusting the x attribute and adding padding for the text element
|
|
4
4
|
'<text x="47" y="52%" style="white-space: pre" dominant-baseline="middle" text-anchor="start" font-family="Asap, sans-serif" font-size="12" fill="#333333">Featured dataset marker</text>' +
|
|
5
|
-
'</svg>'
|
|
5
|
+
'</svg>';
|
package/src/main.js
CHANGED
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
import { createApp } from 'vue'
|
|
2
|
-
import { createPinia } from 'pinia'
|
|
3
|
-
import App from './App.vue'
|
|
4
|
-
import { useMainStore } from '@/store/index'
|
|
5
|
-
import './assets/fonts.scss'
|
|
1
|
+
import { createApp } from 'vue';
|
|
2
|
+
import { createPinia } from 'pinia';
|
|
3
|
+
import App from './App.vue';
|
|
4
|
+
import { useMainStore } from '@/store/index';
|
|
5
|
+
import './assets/fonts.scss';
|
|
6
6
|
|
|
7
|
-
const pinia = createPinia()
|
|
8
|
-
const app = createApp(App)
|
|
7
|
+
const pinia = createPinia();
|
|
8
|
+
const app = createApp(App);
|
|
9
9
|
|
|
10
|
-
app.use(pinia)
|
|
10
|
+
app.use(pinia);
|
|
11
11
|
|
|
12
|
-
const mainStore = useMainStore()
|
|
13
|
-
const token = document.cookie
|
|
14
|
-
.split("; ")
|
|
15
|
-
.find((row) => row.startsWith("user-token"))
|
|
12
|
+
const mainStore = useMainStore();
|
|
13
|
+
const token = document.cookie.split('; ').find((row) => row.startsWith('user-token'));
|
|
16
14
|
if (mainStore && token) {
|
|
17
|
-
|
|
15
|
+
mainStore.setUserToken(token.split('=')[1]);
|
|
18
16
|
}
|
|
19
17
|
|
|
20
|
-
app.mount('#app')
|
|
18
|
+
app.mount('#app');
|