@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.
Files changed (51) hide show
  1. package/config/base.config.json +82 -0
  2. package/dist/assets/cesium.js +1 -1
  3. package/dist/assets/{core.83d353.js → core.7ca6f7.js} +3498 -3347
  4. package/dist/assets/core.js +1 -1
  5. package/dist/assets/index-0eb860e7.js +1 -0
  6. package/dist/assets/ol.js +1 -1
  7. package/dist/assets/{ui.300809.css → ui.a9e21c.css} +1 -1
  8. package/dist/assets/{ui.300809.js → ui.a9e21c.js} +5691 -5181
  9. package/dist/assets/ui.js +1 -1
  10. package/dist/assets/vue.js +2 -2
  11. package/dist/assets/{vuetify.b3de7a.js → vuetify.ecc326.js} +1 -1
  12. package/dist/assets/vuetify.js +2 -2
  13. package/dist/index.html +1 -1
  14. package/package.json +2 -2
  15. package/src/application/VcsApp.vue +154 -1
  16. package/src/application/VcsApp.vue.d.ts +14 -0
  17. package/src/application/VcsCustomScreen.vue +45 -0
  18. package/src/application/VcsCustomScreen.vue.d.ts +15 -0
  19. package/src/application/VcsSettings.vue +67 -0
  20. package/src/application/VcsSettings.vue.d.ts +2 -0
  21. package/src/application/VcsSplashScreen.vue +133 -0
  22. package/src/application/VcsSplashScreen.vue.d.ts +31 -0
  23. package/src/application/markdownHelper.js +19 -1
  24. package/src/components/icons/+all.js +4 -0
  25. package/src/components/icons/CrosshairIcon.vue +33 -0
  26. package/src/components/icons/CrosshairIcon.vue.d.ts +2 -0
  27. package/src/i18n/de.d.ts +41 -18
  28. package/src/i18n/de.js +22 -0
  29. package/src/i18n/en.d.ts +41 -18
  30. package/src/i18n/en.js +22 -0
  31. package/src/navigation/MapNavigation.vue +74 -4
  32. package/src/navigation/MapNavigation.vue.d.ts +36 -0
  33. package/src/navigation/ObliqueRotation.vue +8 -0
  34. package/src/navigation/ObliqueRotation.vue.d.ts +13 -1
  35. package/src/navigation/TiltSlider.vue +8 -1
  36. package/src/navigation/TiltSlider.vue.d.ts +13 -1
  37. package/src/navigation/VcsCompass.vue +7 -1
  38. package/src/navigation/VcsCompass.vue.d.ts +11 -0
  39. package/src/navigation/VcsZoomButton.vue +10 -0
  40. package/src/navigation/VcsZoomButton.vue.d.ts +15 -1
  41. package/src/navigation/locatorHelper.d.ts +9 -0
  42. package/src/navigation/locatorHelper.js +294 -0
  43. package/src/navigation/overviewMap.d.ts +21 -20
  44. package/src/navigation/overviewMap.js +51 -39
  45. package/src/uiConfig.d.ts +67 -0
  46. package/src/uiConfig.js +30 -0
  47. package/dist/assets/index-69733149.js +0 -1
  48. /package/dist/assets/{cesium.162cd3.js → cesium.8ce891.js} +0 -0
  49. /package/dist/assets/{ol.7cdede.js → ol.f313ea.js} +0 -0
  50. /package/dist/assets/{vue.27f25a.js → vue.d7a2f9.js} +0 -0
  51. /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 viewpoint {
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 theme {
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 title_11: string;
262
- export { title_11 as title };
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 title_12: string;
273
- export { title_12 as title };
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 title_13: string;
283
- export { title_13 as title };
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 title_14: string;
300
- export { title_14 as title };
322
+ let title_15: string;
323
+ export { title_15 as title };
301
324
  export namespace attributions {
302
- let title_15: string;
303
- export { title_15 as title };
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 title_16: string;
311
- export { title_16 as title };
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 title_17: string;
317
- export { title_17 as title };
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 title_18: string;
323
- export { title_18 as title };
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 viewpoint {
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 theme {
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 title_11: string;
262
- export { title_11 as title };
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 title_12: string;
273
- export { title_12 as title };
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 title_13: string;
283
- export { title_13 as title };
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 title_14: string;
300
- export { title_14 as title };
322
+ let title_15: string;
323
+ export { title_15 as title };
301
324
  export namespace attributions {
302
- let title_15: string;
303
- export { title_15 as title };
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 title_16: string;
311
- export { title_16 as title };
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 title_17: string;
317
- export { title_17 as title };
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 title_18: string;
323
- export { title_18 as title };
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 :view-mode="viewMode" v-model="heading" />
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 @zoom-out="zoomOut()" @zoom-in="zoomIn()" />
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 {