@vcmap/ui 5.2.4 → 5.3.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/config/base.config.json +82 -0
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.83d353.js → core.7ca6f7.js} +3498 -3347
- package/dist/assets/core.js +1 -1
- package/dist/assets/index-0eb860e7.js +1 -0
- package/dist/assets/ol.js +1 -1
- package/dist/assets/{ui.300809.css → ui.a9e21c.css} +1 -1
- package/dist/assets/{ui.300809.js → ui.a9e21c.js} +5691 -5181
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +2 -2
- package/dist/assets/{vuetify.b3de7a.js → vuetify.ecc326.js} +1 -1
- package/dist/assets/vuetify.js +2 -2
- package/dist/index.html +1 -1
- package/package.json +2 -2
- package/src/application/VcsApp.vue +154 -1
- package/src/application/VcsApp.vue.d.ts +14 -0
- package/src/application/VcsCustomScreen.vue +45 -0
- package/src/application/VcsCustomScreen.vue.d.ts +15 -0
- package/src/application/VcsSettings.vue +67 -0
- package/src/application/VcsSettings.vue.d.ts +2 -0
- package/src/application/VcsSplashScreen.vue +133 -0
- package/src/application/VcsSplashScreen.vue.d.ts +31 -0
- package/src/application/markdownHelper.js +19 -1
- package/src/components/icons/+all.js +4 -0
- package/src/components/icons/CrosshairIcon.vue +33 -0
- package/src/components/icons/CrosshairIcon.vue.d.ts +2 -0
- package/src/i18n/de.d.ts +41 -18
- package/src/i18n/de.js +22 -0
- package/src/i18n/en.d.ts +41 -18
- package/src/i18n/en.js +22 -0
- package/src/navigation/MapNavigation.vue +74 -4
- package/src/navigation/MapNavigation.vue.d.ts +36 -0
- package/src/navigation/ObliqueRotation.vue +8 -0
- package/src/navigation/ObliqueRotation.vue.d.ts +13 -1
- package/src/navigation/TiltSlider.vue +8 -1
- package/src/navigation/TiltSlider.vue.d.ts +13 -1
- package/src/navigation/VcsCompass.vue +7 -1
- package/src/navigation/VcsCompass.vue.d.ts +11 -0
- package/src/navigation/VcsZoomButton.vue +10 -0
- package/src/navigation/VcsZoomButton.vue.d.ts +15 -1
- package/src/navigation/locatorHelper.d.ts +9 -0
- package/src/navigation/locatorHelper.js +294 -0
- package/src/navigation/overviewMap.d.ts +21 -20
- package/src/navigation/overviewMap.js +51 -39
- package/src/uiConfig.d.ts +67 -0
- package/src/uiConfig.js +30 -0
- package/dist/assets/index-69733149.js +0 -1
- /package/dist/assets/{cesium.162cd3.js → cesium.8ce891.js} +0 -0
- /package/dist/assets/{ol.7cdede.js → ol.f313ea.js} +0 -0
- /package/dist/assets/{vue.27f25a.js → vue.d7a2f9.js} +0 -0
- /package/dist/assets/{vuetify.b3de7a.css → vuetify.ecc326.css} +0 -0
@@ -24,6 +24,7 @@ import CompassIcon from './CompassIcon.vue';
|
|
24
24
|
import ComponentsIcon from './ComponentsIcon.vue';
|
25
25
|
import ComponentsPlusIcon from './ComponentsPlusIcon.vue';
|
26
26
|
import ConeIcon from './ConeIcon.vue';
|
27
|
+
import CrosshairIcon from './CrosshairIcon.vue';
|
27
28
|
import DimensionsHouseIcon from './DimensionsHouseIcon.vue';
|
28
29
|
import EditIcon from './EditIcon.vue';
|
29
30
|
import EditVerticesIcon from './EditVerticesIcon.vue';
|
@@ -218,6 +219,9 @@ const IconMap = {
|
|
218
219
|
cone: {
|
219
220
|
component: ConeIcon,
|
220
221
|
},
|
222
|
+
crosshair: {
|
223
|
+
component: CrosshairIcon,
|
224
|
+
},
|
221
225
|
dimensionsHouse: {
|
222
226
|
component: DimensionsHouseIcon,
|
223
227
|
},
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<template>
|
2
|
+
<svg
|
3
|
+
id="CrosshairIcon"
|
4
|
+
xmlns="http://www.w3.org/2000/svg"
|
5
|
+
width="16"
|
6
|
+
height="16"
|
7
|
+
viewBox="0 0 16 16"
|
8
|
+
>
|
9
|
+
<g id="Gruppe_877" transform="translate(-2408 -282)">
|
10
|
+
<circle
|
11
|
+
id="Ellipse_100"
|
12
|
+
cx="3"
|
13
|
+
cy="3"
|
14
|
+
r="3"
|
15
|
+
transform="translate(2412.979 286.953)"
|
16
|
+
fill="currentColor"
|
17
|
+
/>
|
18
|
+
<path
|
19
|
+
fill="currentColor"
|
20
|
+
id="Pfad_445"
|
21
|
+
d="M15.316,7.359l-1.36-.008A6,6,0,0,0,8.666,2.062V.73a.666.666,0,0,0-1.332,0V2.062a6,6,0,0,0-5.29,5.289L.683,7.359a.666.666,0,0,0,0,1.331s0,0,0-.015l1.355-.007a6,6,0,0,0,5.289,5.3v1.361a.666.666,0,0,0,1.332,0V13.965a6,6,0,0,0,5.289-5.3l1.354.007c0,.015,0,.015,0,.015a.666.666,0,0,0,0-1.331ZM8,12.673a4.66,4.66,0,1,1,4.663-4.66A4.666,4.666,0,0,1,8,12.673Z"
|
22
|
+
transform="translate(2407.979 281.936)"
|
23
|
+
/>
|
24
|
+
</g>
|
25
|
+
<rect
|
26
|
+
id="size"
|
27
|
+
width="16"
|
28
|
+
height="16"
|
29
|
+
transform="translate(0 0)"
|
30
|
+
fill="none"
|
31
|
+
/>
|
32
|
+
</svg>
|
33
|
+
</template>
|
@@ -0,0 +1,2 @@
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
2
|
+
export default _default;
|
package/src/i18n/de.d.ts
CHANGED
@@ -46,6 +46,12 @@ declare namespace messages {
|
|
46
46
|
let pitchTooltip: string;
|
47
47
|
let overviewMapTooltip: string;
|
48
48
|
let homeButton: string;
|
49
|
+
namespace locator {
|
50
|
+
let errorAccess: string;
|
51
|
+
let errorCurrentPosition: string;
|
52
|
+
let errorConnection: string;
|
53
|
+
let errorPosition: string;
|
54
|
+
}
|
49
55
|
}
|
50
56
|
export namespace categoryManager {
|
51
57
|
let title_5: string;
|
@@ -147,9 +153,17 @@ declare namespace messages {
|
|
147
153
|
export { _export as export };
|
148
154
|
export let exportPath: string;
|
149
155
|
}
|
150
|
-
export namespace
|
156
|
+
export namespace splashScreen {
|
151
157
|
let name_2: string;
|
152
158
|
export { name_2 as name };
|
159
|
+
}
|
160
|
+
export namespace customScreen {
|
161
|
+
let name_3: string;
|
162
|
+
export { name_3 as name };
|
163
|
+
}
|
164
|
+
export namespace viewpoint {
|
165
|
+
let name_4: string;
|
166
|
+
export { name_4 as name };
|
153
167
|
let title_7: string;
|
154
168
|
export { title_7 as title };
|
155
169
|
let titlePlaceholder_1: string;
|
@@ -250,16 +264,25 @@ declare namespace messages {
|
|
250
264
|
let tooltip_3: string;
|
251
265
|
export { tooltip_3 as tooltip };
|
252
266
|
export let languageSelector: string;
|
253
|
-
export namespace
|
267
|
+
export namespace displayQuality {
|
254
268
|
let title_10: string;
|
255
269
|
export { title_10 as title };
|
270
|
+
export namespace level {
|
271
|
+
let low: string;
|
272
|
+
let medium: string;
|
273
|
+
let high: string;
|
274
|
+
}
|
275
|
+
}
|
276
|
+
export namespace theme {
|
277
|
+
let title_11: string;
|
278
|
+
export { title_11 as title };
|
256
279
|
export let dark: string;
|
257
280
|
export let light: string;
|
258
281
|
}
|
259
282
|
}
|
260
283
|
export namespace help_1 {
|
261
|
-
let
|
262
|
-
export {
|
284
|
+
let title_12: string;
|
285
|
+
export { title_12 as title };
|
263
286
|
let tooltip_4: string;
|
264
287
|
export { tooltip_4 as tooltip };
|
265
288
|
}
|
@@ -269,8 +292,8 @@ declare namespace messages {
|
|
269
292
|
let deactivateToolTitle: string;
|
270
293
|
}
|
271
294
|
export namespace legend {
|
272
|
-
let
|
273
|
-
export {
|
295
|
+
let title_13: string;
|
296
|
+
export { title_13 as title };
|
274
297
|
let tooltip_5: string;
|
275
298
|
export { tooltip_5 as tooltip };
|
276
299
|
let empty_2: string;
|
@@ -279,8 +302,8 @@ declare namespace messages {
|
|
279
302
|
export let defaultLabelText: string;
|
280
303
|
}
|
281
304
|
export namespace search_1 {
|
282
|
-
let
|
283
|
-
export {
|
305
|
+
let title_14: string;
|
306
|
+
export { title_14 as title };
|
284
307
|
let tooltip_6: string;
|
285
308
|
export { tooltip_6 as tooltip };
|
286
309
|
export let select: string;
|
@@ -296,31 +319,31 @@ declare namespace messages {
|
|
296
319
|
export let miscellaneous: string;
|
297
320
|
}
|
298
321
|
export namespace footer {
|
299
|
-
let
|
300
|
-
export {
|
322
|
+
let title_15: string;
|
323
|
+
export { title_15 as title };
|
301
324
|
export namespace attributions {
|
302
|
-
let
|
303
|
-
export {
|
325
|
+
let title_16: string;
|
326
|
+
export { title_16 as title };
|
304
327
|
let tooltip_7: string;
|
305
328
|
export { tooltip_7 as tooltip };
|
306
329
|
let empty_3: string;
|
307
330
|
export { empty_3 as empty };
|
308
331
|
}
|
309
332
|
export namespace imprint {
|
310
|
-
let
|
311
|
-
export {
|
333
|
+
let title_17: string;
|
334
|
+
export { title_17 as title };
|
312
335
|
let tooltip_8: string;
|
313
336
|
export { tooltip_8 as tooltip };
|
314
337
|
}
|
315
338
|
export namespace dataProtection {
|
316
|
-
let
|
317
|
-
export {
|
339
|
+
let title_18: string;
|
340
|
+
export { title_18 as title };
|
318
341
|
let tooltip_9: string;
|
319
342
|
export { tooltip_9 as tooltip };
|
320
343
|
}
|
321
344
|
export namespace positionDisplay {
|
322
|
-
let
|
323
|
-
export {
|
345
|
+
let title_19: string;
|
346
|
+
export { title_19 as title };
|
324
347
|
let projection_1: string;
|
325
348
|
export { projection_1 as projection };
|
326
349
|
}
|
package/src/i18n/de.js
CHANGED
@@ -42,6 +42,14 @@ const messages = {
|
|
42
42
|
pitchTooltip: 'Kameraneigung: {0}°',
|
43
43
|
overviewMapTooltip: 'Übersichtskarte',
|
44
44
|
homeButton: 'Zur Startansicht springen',
|
45
|
+
locator: {
|
46
|
+
errorAccess: 'Der Zugriff auf Ihre Position wurde verweigert.',
|
47
|
+
errorCurrentPosition:
|
48
|
+
'Ihre momentane Position konnte leider nicht erfasst werden.',
|
49
|
+
errorConnection:
|
50
|
+
'Während dem ermitteln Ihrer Position wurde die Verbindung verloren',
|
51
|
+
errorPosition: 'Ihre Position kann leider nicht erfasst werden',
|
52
|
+
},
|
45
53
|
},
|
46
54
|
categoryManager: {
|
47
55
|
title: 'Mein Arbeitsbereich',
|
@@ -136,6 +144,12 @@ const messages = {
|
|
136
144
|
export: 'Flug exportieren',
|
137
145
|
exportPath: 'Flugpfad exportieren',
|
138
146
|
},
|
147
|
+
splashScreen: {
|
148
|
+
name: 'Splash Screen',
|
149
|
+
},
|
150
|
+
customScreen: {
|
151
|
+
name: 'Benutzerdefinierter Screen',
|
152
|
+
},
|
139
153
|
viewpoint: {
|
140
154
|
name: 'Name (ID)',
|
141
155
|
title: 'Titel',
|
@@ -227,6 +241,14 @@ const messages = {
|
|
227
241
|
title: 'Einstellungen',
|
228
242
|
tooltip: 'Einstellungen',
|
229
243
|
languageSelector: 'Sprache',
|
244
|
+
displayQuality: {
|
245
|
+
title: 'Anzeigequalität',
|
246
|
+
level: {
|
247
|
+
low: 'Niedrige',
|
248
|
+
medium: 'Mittlere',
|
249
|
+
high: 'Hohe',
|
250
|
+
},
|
251
|
+
},
|
230
252
|
theme: {
|
231
253
|
title: 'Farbschema',
|
232
254
|
dark: 'Dunkel',
|
package/src/i18n/en.d.ts
CHANGED
@@ -46,6 +46,12 @@ declare namespace messages {
|
|
46
46
|
let pitchTooltip: string;
|
47
47
|
let overviewMapTooltip: string;
|
48
48
|
let homeButton: string;
|
49
|
+
namespace locator {
|
50
|
+
let errorAccess: string;
|
51
|
+
let errorCurrentPosition: string;
|
52
|
+
let errorConnection: string;
|
53
|
+
let errorPosition: string;
|
54
|
+
}
|
49
55
|
}
|
50
56
|
export namespace categoryManager {
|
51
57
|
let title_5: string;
|
@@ -147,9 +153,17 @@ declare namespace messages {
|
|
147
153
|
export { _export as export };
|
148
154
|
export let exportPath: string;
|
149
155
|
}
|
150
|
-
export namespace
|
156
|
+
export namespace splashScreen {
|
151
157
|
let name_2: string;
|
152
158
|
export { name_2 as name };
|
159
|
+
}
|
160
|
+
export namespace customScreen {
|
161
|
+
let name_3: string;
|
162
|
+
export { name_3 as name };
|
163
|
+
}
|
164
|
+
export namespace viewpoint {
|
165
|
+
let name_4: string;
|
166
|
+
export { name_4 as name };
|
153
167
|
let title_7: string;
|
154
168
|
export { title_7 as title };
|
155
169
|
let titlePlaceholder_1: string;
|
@@ -250,16 +264,25 @@ declare namespace messages {
|
|
250
264
|
let tooltip_3: string;
|
251
265
|
export { tooltip_3 as tooltip };
|
252
266
|
export let languageSelector: string;
|
253
|
-
export namespace
|
267
|
+
export namespace displayQuality {
|
254
268
|
let title_10: string;
|
255
269
|
export { title_10 as title };
|
270
|
+
export namespace level {
|
271
|
+
let low: string;
|
272
|
+
let medium: string;
|
273
|
+
let high: string;
|
274
|
+
}
|
275
|
+
}
|
276
|
+
export namespace theme {
|
277
|
+
let title_11: string;
|
278
|
+
export { title_11 as title };
|
256
279
|
export let dark: string;
|
257
280
|
export let light: string;
|
258
281
|
}
|
259
282
|
}
|
260
283
|
export namespace help_1 {
|
261
|
-
let
|
262
|
-
export {
|
284
|
+
let title_12: string;
|
285
|
+
export { title_12 as title };
|
263
286
|
let tooltip_4: string;
|
264
287
|
export { tooltip_4 as tooltip };
|
265
288
|
}
|
@@ -269,8 +292,8 @@ declare namespace messages {
|
|
269
292
|
let deactivateToolTitle: string;
|
270
293
|
}
|
271
294
|
export namespace legend {
|
272
|
-
let
|
273
|
-
export {
|
295
|
+
let title_13: string;
|
296
|
+
export { title_13 as title };
|
274
297
|
let tooltip_5: string;
|
275
298
|
export { tooltip_5 as tooltip };
|
276
299
|
let empty_2: string;
|
@@ -279,8 +302,8 @@ declare namespace messages {
|
|
279
302
|
export let defaultLabelText: string;
|
280
303
|
}
|
281
304
|
export namespace search_1 {
|
282
|
-
let
|
283
|
-
export {
|
305
|
+
let title_14: string;
|
306
|
+
export { title_14 as title };
|
284
307
|
let tooltip_6: string;
|
285
308
|
export { tooltip_6 as tooltip };
|
286
309
|
export let select: string;
|
@@ -296,31 +319,31 @@ declare namespace messages {
|
|
296
319
|
export let miscellaneous: string;
|
297
320
|
}
|
298
321
|
export namespace footer {
|
299
|
-
let
|
300
|
-
export {
|
322
|
+
let title_15: string;
|
323
|
+
export { title_15 as title };
|
301
324
|
export namespace attributions {
|
302
|
-
let
|
303
|
-
export {
|
325
|
+
let title_16: string;
|
326
|
+
export { title_16 as title };
|
304
327
|
let tooltip_7: string;
|
305
328
|
export { tooltip_7 as tooltip };
|
306
329
|
let empty_3: string;
|
307
330
|
export { empty_3 as empty };
|
308
331
|
}
|
309
332
|
export namespace imprint {
|
310
|
-
let
|
311
|
-
export {
|
333
|
+
let title_17: string;
|
334
|
+
export { title_17 as title };
|
312
335
|
let tooltip_8: string;
|
313
336
|
export { tooltip_8 as tooltip };
|
314
337
|
}
|
315
338
|
export namespace dataProtection {
|
316
|
-
let
|
317
|
-
export {
|
339
|
+
let title_18: string;
|
340
|
+
export { title_18 as title };
|
318
341
|
let tooltip_9: string;
|
319
342
|
export { tooltip_9 as tooltip };
|
320
343
|
}
|
321
344
|
export namespace positionDisplay {
|
322
|
-
let
|
323
|
-
export {
|
345
|
+
let title_19: string;
|
346
|
+
export { title_19 as title };
|
324
347
|
let projection_1: string;
|
325
348
|
export { projection_1 as projection };
|
326
349
|
}
|
package/src/i18n/en.js
CHANGED
@@ -42,6 +42,14 @@ const messages = {
|
|
42
42
|
pitchTooltip: 'Camera pitch: {0}°',
|
43
43
|
overviewMapTooltip: 'Show overview map',
|
44
44
|
homeButton: 'Go to home view',
|
45
|
+
locator: {
|
46
|
+
errorAccess: 'Access to your location has been denied',
|
47
|
+
errorCurrentPosition:
|
48
|
+
'Unfortunately, your current position could not be recorded',
|
49
|
+
errorConnection:
|
50
|
+
'The connection was lost while your position was being determined',
|
51
|
+
errorPosition: 'Unfortunately, your position cannot be recorded',
|
52
|
+
},
|
45
53
|
},
|
46
54
|
categoryManager: {
|
47
55
|
title: 'My Workspace',
|
@@ -136,6 +144,12 @@ const messages = {
|
|
136
144
|
export: 'Export flight',
|
137
145
|
exportPath: 'Export flight path',
|
138
146
|
},
|
147
|
+
splashScreen: {
|
148
|
+
name: 'Splash Screen',
|
149
|
+
},
|
150
|
+
customScreen: {
|
151
|
+
name: 'Custom Screen',
|
152
|
+
},
|
139
153
|
viewpoint: {
|
140
154
|
name: 'Name (ID)',
|
141
155
|
title: 'Title',
|
@@ -227,6 +241,14 @@ const messages = {
|
|
227
241
|
title: 'Settings',
|
228
242
|
tooltip: 'Configure settings',
|
229
243
|
languageSelector: 'Language',
|
244
|
+
displayQuality: {
|
245
|
+
title: 'Display Settings',
|
246
|
+
level: {
|
247
|
+
low: 'Low',
|
248
|
+
medium: 'Medium',
|
249
|
+
high: 'High',
|
250
|
+
},
|
251
|
+
},
|
230
252
|
theme: {
|
231
253
|
title: 'Color theme',
|
232
254
|
dark: 'Dark',
|
@@ -3,17 +3,37 @@
|
|
3
3
|
:class="$vuetify.breakpoint.xs ? 'nav-container mobile' : 'nav-container'"
|
4
4
|
>
|
5
5
|
<v-row>
|
6
|
-
<VcsCompass
|
6
|
+
<VcsCompass
|
7
|
+
:view-mode="viewMode"
|
8
|
+
v-model="heading"
|
9
|
+
:disabled="movementApiCallsDisabled"
|
10
|
+
/>
|
7
11
|
</v-row>
|
8
12
|
<v-row v-if="isOblique">
|
9
|
-
<ObliqueRotation v-model="heading" />
|
13
|
+
<ObliqueRotation v-model="heading" :disabled="movementApiCallsDisabled" />
|
10
14
|
</v-row>
|
15
|
+
<template v-if="$vuetify.breakpoint.mobile">
|
16
|
+
<v-row justify="center">
|
17
|
+
<OrientationToolsButton
|
18
|
+
v-if="showLocatorButton"
|
19
|
+
:icon="locatorAction.icon"
|
20
|
+
:tooltip="locatorAction.title"
|
21
|
+
:color="locatorAction.active ? 'primary' : undefined"
|
22
|
+
@click.stop="locatorAction.callback($event)"
|
23
|
+
:disabled="movementApiCallsDisabled"
|
24
|
+
></OrientationToolsButton>
|
25
|
+
</v-row>
|
26
|
+
</template>
|
11
27
|
<template v-if="$vuetify.breakpoint.mdAndUp">
|
12
28
|
<v-row justify="center">
|
13
|
-
<VcsZoomButton
|
29
|
+
<VcsZoomButton
|
30
|
+
@zoom-out="zoomOut()"
|
31
|
+
@zoom-in="zoomIn()"
|
32
|
+
:disabled="movementApiCallsDisabled"
|
33
|
+
/>
|
14
34
|
</v-row>
|
15
35
|
<v-row justify="center" v-if="is3D && $vuetify.breakpoint.mdAndUp">
|
16
|
-
<TiltSlider v-model="tilt" />
|
36
|
+
<TiltSlider v-model="tilt" :disabled="movementApiCallsDisabled" />
|
17
37
|
</v-row>
|
18
38
|
<v-row justify="center">
|
19
39
|
<OrientationToolsButton
|
@@ -21,6 +41,7 @@
|
|
21
41
|
:icon="homeAction.icon"
|
22
42
|
:tooltip="homeAction.title"
|
23
43
|
@click.stop="homeAction.callback($event)"
|
44
|
+
:disabled="movementApiCallsDisabled"
|
24
45
|
/>
|
25
46
|
</v-row>
|
26
47
|
<v-row justify="center">
|
@@ -41,6 +62,7 @@
|
|
41
62
|
import { ObliqueMap, CesiumMap } from '@vcmap/core';
|
42
63
|
import { VContainer, VRow } from 'vuetify/lib';
|
43
64
|
import { createOverviewMapAction } from '../actions/actionHelper.js';
|
65
|
+
import { createLocatorAction } from './locatorHelper.js';
|
44
66
|
import {
|
45
67
|
getWindowComponentOptions,
|
46
68
|
overviewMapLayerSymbol,
|
@@ -137,6 +159,30 @@
|
|
137
159
|
await map.gotoViewpoint(viewpoint);
|
138
160
|
}
|
139
161
|
|
162
|
+
/**
|
163
|
+
* @param {import("@src/vcsUiApp.js").default} app
|
164
|
+
* @param {import("vue").Ref} isDisabled
|
165
|
+
* @returns {() => void}
|
166
|
+
*/
|
167
|
+
function setupMovementDisabledListener(app, isDisabled) {
|
168
|
+
let movementDisabledListener = () => {};
|
169
|
+
const mapActivatedListener = app.maps.mapActivated.addEventListener(
|
170
|
+
(map) => {
|
171
|
+
movementDisabledListener();
|
172
|
+
isDisabled.value = map.movementApiCallsDisabled;
|
173
|
+
movementDisabledListener = map.movementDisabledChanged.addEventListener(
|
174
|
+
(mapControlOptions) => {
|
175
|
+
isDisabled.value = mapControlOptions.apiCalls;
|
176
|
+
},
|
177
|
+
);
|
178
|
+
},
|
179
|
+
);
|
180
|
+
return () => {
|
181
|
+
movementDisabledListener();
|
182
|
+
mapActivatedListener();
|
183
|
+
};
|
184
|
+
}
|
185
|
+
|
140
186
|
export default {
|
141
187
|
components: {
|
142
188
|
OrientationToolsButton,
|
@@ -204,6 +250,15 @@
|
|
204
250
|
const showOverviewButton = ref(
|
205
251
|
app.overviewMap.map.layerCollection.size > 0,
|
206
252
|
);
|
253
|
+
// Locator
|
254
|
+
const { action: locatorAction, destroy: destroyLocator } =
|
255
|
+
createLocatorAction(app);
|
256
|
+
|
257
|
+
const showLocatorButton = ref(true);
|
258
|
+
if (app.uiConfig.getByKey('showLocator')?.value === false) {
|
259
|
+
showLocatorButton.value = false;
|
260
|
+
}
|
261
|
+
|
207
262
|
const overviewMapListeners = [
|
208
263
|
app.overviewMap.map.layerCollection.added.addEventListener(() => {
|
209
264
|
showOverviewButton.value = true;
|
@@ -221,17 +276,29 @@
|
|
221
276
|
}),
|
222
277
|
];
|
223
278
|
|
279
|
+
const movementApiCallsDisabled = ref(
|
280
|
+
!!app.maps.activeMap?.movementApiCallsDisabled,
|
281
|
+
);
|
282
|
+
const removeMovementDisabledListener = setupMovementDisabledListener(
|
283
|
+
app,
|
284
|
+
movementApiCallsDisabled,
|
285
|
+
);
|
286
|
+
|
224
287
|
const { action: homeAction, destroy: homeDestroy } = setupHomeButton(app);
|
225
288
|
|
226
289
|
onUnmounted(() => {
|
227
290
|
if (overviewDestroy) {
|
228
291
|
overviewDestroy();
|
229
292
|
}
|
293
|
+
if (destroyLocator) {
|
294
|
+
destroyLocator();
|
295
|
+
}
|
230
296
|
if (homeDestroy) {
|
231
297
|
homeDestroy();
|
232
298
|
}
|
233
299
|
postRenderHandler();
|
234
300
|
overviewMapListeners.forEach((cb) => cb());
|
301
|
+
removeMovementDisabledListener();
|
235
302
|
});
|
236
303
|
|
237
304
|
return {
|
@@ -251,8 +318,11 @@
|
|
251
318
|
zoom(app.maps.activeMap, true);
|
252
319
|
},
|
253
320
|
overviewAction: reactive(overviewAction),
|
321
|
+
locatorAction: reactive(locatorAction),
|
254
322
|
showOverviewButton,
|
323
|
+
showLocatorButton,
|
255
324
|
homeAction,
|
325
|
+
movementApiCallsDisabled,
|
256
326
|
};
|
257
327
|
},
|
258
328
|
};
|
@@ -40,7 +40,43 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
40
40
|
*/
|
41
41
|
disabled?: boolean | undefined;
|
42
42
|
};
|
43
|
+
locatorAction: {
|
44
|
+
/**
|
45
|
+
* - reactive and translatable name rendered in overflow
|
46
|
+
*/
|
47
|
+
name: string;
|
48
|
+
/**
|
49
|
+
* - reactive and translatable title rendered as tooltip
|
50
|
+
*/
|
51
|
+
title?: string | undefined;
|
52
|
+
/**
|
53
|
+
* - icon rendered on the button. If no icon provided, item is rendered in overflow
|
54
|
+
*/
|
55
|
+
icon?: string | undefined;
|
56
|
+
/**
|
57
|
+
* - callback function is triggered when the button is clicked
|
58
|
+
*/
|
59
|
+
callback: import("../actions/actionHelper.js").ActionCallback;
|
60
|
+
/**
|
61
|
+
* - optional state of button. If active, button is rendered in primary color
|
62
|
+
*/
|
63
|
+
active?: boolean | undefined;
|
64
|
+
/**
|
65
|
+
* - optional hasUpdate of button. If true, a yellow notification is rendered next to the button
|
66
|
+
*/
|
67
|
+
hasUpdate?: boolean | undefined;
|
68
|
+
/**
|
69
|
+
* - optional background state. If active and background, button is rendered in primary color outlined
|
70
|
+
*/
|
71
|
+
background?: boolean | undefined;
|
72
|
+
/**
|
73
|
+
* - optional flag to indicate that the action is disabled
|
74
|
+
*/
|
75
|
+
disabled?: boolean | undefined;
|
76
|
+
};
|
43
77
|
showOverviewButton: import("vue").Ref<boolean>;
|
78
|
+
showLocatorButton: import("vue").Ref<boolean>;
|
44
79
|
homeAction: any;
|
80
|
+
movementApiCallsDisabled: import("vue").Ref<boolean>;
|
45
81
|
}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
46
82
|
export default _default;
|
@@ -6,12 +6,14 @@
|
|
6
6
|
icon="$vcsRotateLeft"
|
7
7
|
tooltip="navigation.obliqueLeftTooltip"
|
8
8
|
elevation="0"
|
9
|
+
:disabled="disabled"
|
9
10
|
/>
|
10
11
|
<OrientationToolsButton
|
11
12
|
@click="input(90)"
|
12
13
|
icon="$vcsRotateRight"
|
13
14
|
tooltip="navigation.obliqueRightTooltip"
|
14
15
|
elevation="0"
|
16
|
+
:disabled="disabled"
|
15
17
|
/>
|
16
18
|
</div>
|
17
19
|
</div>
|
@@ -22,6 +24,7 @@
|
|
22
24
|
|
23
25
|
/**
|
24
26
|
* @vue-prop {number} value - the current heading
|
27
|
+
* @vue-prop {boolean} disabled - whether ObliqueRotation should be disabled
|
25
28
|
* @vue-event {number} input
|
26
29
|
*/
|
27
30
|
export default {
|
@@ -32,6 +35,11 @@
|
|
32
35
|
type: Number,
|
33
36
|
required: true,
|
34
37
|
},
|
38
|
+
disabled: {
|
39
|
+
type: Boolean,
|
40
|
+
default: false,
|
41
|
+
required: false,
|
42
|
+
},
|
35
43
|
},
|
36
44
|
methods: {
|
37
45
|
input(rotation) {
|
@@ -3,6 +3,11 @@ declare const _default: import("vue").DefineComponent<{
|
|
3
3
|
type: NumberConstructor;
|
4
4
|
required: true;
|
5
5
|
};
|
6
|
+
disabled: {
|
7
|
+
type: BooleanConstructor;
|
8
|
+
default: boolean;
|
9
|
+
required: false;
|
10
|
+
};
|
6
11
|
}, {}, {}, {}, {
|
7
12
|
input(rotation: any): void;
|
8
13
|
}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
|
@@ -10,5 +15,12 @@ declare const _default: import("vue").DefineComponent<{
|
|
10
15
|
type: NumberConstructor;
|
11
16
|
required: true;
|
12
17
|
};
|
13
|
-
|
18
|
+
disabled: {
|
19
|
+
type: BooleanConstructor;
|
20
|
+
default: boolean;
|
21
|
+
required: false;
|
22
|
+
};
|
23
|
+
}>>, {
|
24
|
+
disabled: boolean;
|
25
|
+
}>;
|
14
26
|
export default _default;
|
@@ -4,7 +4,7 @@
|
|
4
4
|
tooltip-position="left"
|
5
5
|
>
|
6
6
|
<template #activator="{ on, attrs }">
|
7
|
-
<v-card class="w-8" v-on="on" v-bind="attrs">
|
7
|
+
<v-card class="w-8" v-on="on" v-bind="attrs" :disabled="disabled">
|
8
8
|
<v-slider
|
9
9
|
track-color="base lighten-3"
|
10
10
|
v-model="tilt"
|
@@ -13,6 +13,7 @@
|
|
13
13
|
vertical
|
14
14
|
hide-details
|
15
15
|
class="vcs-slider"
|
16
|
+
v-bind="{ ...$attrs }"
|
16
17
|
/>
|
17
18
|
</v-card>
|
18
19
|
</template>
|
@@ -77,6 +78,7 @@
|
|
77
78
|
/**
|
78
79
|
* @description A vertical slider from 0 to -90. pass value with v-model
|
79
80
|
* @vue-prop {number} value
|
81
|
+
* @vue-prop {boolean} disabled - whether tilt slider should be disabled
|
80
82
|
* @vue-event {number} input
|
81
83
|
*/
|
82
84
|
export default {
|
@@ -91,6 +93,11 @@
|
|
91
93
|
type: Number,
|
92
94
|
required: true,
|
93
95
|
},
|
96
|
+
disabled: {
|
97
|
+
type: Boolean,
|
98
|
+
required: false,
|
99
|
+
default: false,
|
100
|
+
},
|
94
101
|
},
|
95
102
|
data() {
|
96
103
|
return {
|