@vcmap/ui 5.2.4 → 5.3.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.
Files changed (55) hide show
  1. package/config/base.config.json +54 -0
  2. package/config/www.config.json +4 -0
  3. package/dist/assets/cesium.js +1 -1
  4. package/dist/assets/{core.83d353.js → core.380ce3.js} +3498 -3347
  5. package/dist/assets/core.js +1 -1
  6. package/dist/assets/index-b466fb2c.js +1 -0
  7. package/dist/assets/ol.js +1 -1
  8. package/dist/assets/{ui.300809.css → ui.cf282c.css} +1 -1
  9. package/dist/assets/{ui.300809.js → ui.cf282c.js} +7275 -6745
  10. package/dist/assets/ui.js +1 -1
  11. package/dist/assets/vue.js +2 -2
  12. package/dist/assets/{vuetify.b3de7a.js → vuetify.12f757.js} +1 -1
  13. package/dist/assets/vuetify.js +2 -2
  14. package/dist/index.html +1 -1
  15. package/index.d.ts +4 -0
  16. package/index.js +2 -0
  17. package/package.json +2 -2
  18. package/plugins/package.json +2 -1
  19. package/src/application/VcsApp.vue +162 -1
  20. package/src/application/VcsApp.vue.d.ts +15 -0
  21. package/src/application/VcsCustomScreen.vue +45 -0
  22. package/src/application/VcsCustomScreen.vue.d.ts +15 -0
  23. package/src/application/VcsSettings.vue +67 -0
  24. package/src/application/VcsSettings.vue.d.ts +2 -0
  25. package/src/application/VcsSplashScreen.vue +140 -0
  26. package/src/application/VcsSplashScreen.vue.d.ts +36 -0
  27. package/src/application/markdownHelper.js +19 -1
  28. package/src/components/icons/+all.js +4 -0
  29. package/src/components/icons/CrosshairIcon.vue +33 -0
  30. package/src/components/icons/CrosshairIcon.vue.d.ts +2 -0
  31. package/src/i18n/de.d.ts +43 -18
  32. package/src/i18n/de.js +25 -0
  33. package/src/i18n/en.d.ts +43 -18
  34. package/src/i18n/en.js +25 -0
  35. package/src/navigation/MapNavigation.vue +74 -4
  36. package/src/navigation/MapNavigation.vue.d.ts +36 -0
  37. package/src/navigation/ObliqueRotation.vue +8 -0
  38. package/src/navigation/ObliqueRotation.vue.d.ts +13 -1
  39. package/src/navigation/TiltSlider.vue +8 -1
  40. package/src/navigation/TiltSlider.vue.d.ts +13 -1
  41. package/src/navigation/VcsCompass.vue +7 -1
  42. package/src/navigation/VcsCompass.vue.d.ts +11 -0
  43. package/src/navigation/VcsZoomButton.vue +10 -0
  44. package/src/navigation/VcsZoomButton.vue.d.ts +15 -1
  45. package/src/navigation/locatorHelper.d.ts +9 -0
  46. package/src/navigation/locatorHelper.js +294 -0
  47. package/src/navigation/overviewMap.d.ts +21 -20
  48. package/src/navigation/overviewMap.js +51 -39
  49. package/src/uiConfig.d.ts +67 -0
  50. package/src/uiConfig.js +30 -0
  51. package/dist/assets/index-69733149.js +0 -1
  52. /package/dist/assets/{cesium.162cd3.js → cesium.86b93e.js} +0 -0
  53. /package/dist/assets/{ol.7cdede.js → ol.d0972a.js} +0 -0
  54. /package/dist/assets/{vue.27f25a.js → vue.89f1c0.js} +0 -0
  55. /package/dist/assets/{vuetify.b3de7a.css → vuetify.12f757.css} +0 -0
@@ -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 {
@@ -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
+ required: false;
9
+ default: boolean;
10
+ };
6
11
  }, {}, {
7
12
  localValue: number;
8
13
  }, {
@@ -15,5 +20,12 @@ declare const _default: import("vue").DefineComponent<{
15
20
  type: NumberConstructor;
16
21
  required: true;
17
22
  };
18
- }>>, {}>;
23
+ disabled: {
24
+ type: BooleanConstructor;
25
+ required: false;
26
+ default: boolean;
27
+ };
28
+ }>>, {
29
+ disabled: boolean;
30
+ }>;
19
31
  export default _default;
@@ -12,7 +12,7 @@
12
12
  class="position-absolute pos-a-0 primary--text"
13
13
  @click="$event.stopPropagation()"
14
14
  @direction-click="$emit('input', $event)"
15
- :can-emit="viewMode === '3d' || viewMode === 'oblique'"
15
+ :can-emit="!disabled && (viewMode === '3d' || viewMode === 'oblique')"
16
16
  :hide-ticks="viewMode === 'oblique'"
17
17
  />
18
18
  </v-sheet>
@@ -29,6 +29,7 @@
29
29
  * @vue-prop {OrientationToolsViewMode} viewMode - Mode of the map. Defines the behaviour of the compass.
30
30
  * @vue-prop {number} value - Number of degrees of the compass rotation.
31
31
  * @vue-event {number} input
32
+ * @vue-prop {boolean} disabled - whether compass should be disabled
32
33
  */
33
34
  export default {
34
35
  name: 'VcsCompass',
@@ -45,6 +46,11 @@
45
46
  type: Number,
46
47
  default: 0,
47
48
  },
49
+ disabled: {
50
+ type: Boolean,
51
+ default: false,
52
+ required: false,
53
+ },
48
54
  },
49
55
  setup(props) {
50
56
  const rotationValue = ref(props.value);
@@ -7,6 +7,11 @@ declare const _default: import("vue").DefineComponent<{
7
7
  type: NumberConstructor;
8
8
  default: number;
9
9
  };
10
+ disabled: {
11
+ type: BooleanConstructor;
12
+ default: boolean;
13
+ required: false;
14
+ };
10
15
  }, {
11
16
  rotationValue: any;
12
17
  compassRotation: import("vue").ComputedRef<number>;
@@ -19,7 +24,13 @@ declare const _default: import("vue").DefineComponent<{
19
24
  type: NumberConstructor;
20
25
  default: number;
21
26
  };
27
+ disabled: {
28
+ type: BooleanConstructor;
29
+ default: boolean;
30
+ required: false;
31
+ };
22
32
  }>>, {
23
33
  value: number;
34
+ disabled: boolean;
24
35
  }>;
25
36
  export default _default;
@@ -6,12 +6,14 @@
6
6
  icon="$vcsPlus"
7
7
  tooltip="navigation.zoomInTooltip"
8
8
  elevation="0"
9
+ :disabled="disabled"
9
10
  />
10
11
  <OrientationToolsButton
11
12
  @click="$emit('zoom-out')"
12
13
  icon="$vcsMinus"
13
14
  tooltip="navigation.zoomOutTooltip"
14
15
  elevation="0"
16
+ :disabled="disabled"
15
17
  />
16
18
  </div>
17
19
  </div>
@@ -24,9 +26,17 @@
24
26
  * @description Zoom buttons rendered above each other.
25
27
  * @vue-event {void} zoom-in - raised when zoom in is called
26
28
  * @vue-event {void} zoom-out - raised when zoom out is called
29
+ * @vue-prop {boolean} disabled - whether zoom buttons should be disabled
27
30
  */
28
31
  export default {
29
32
  components: { OrientationToolsButton },
33
+ props: {
34
+ disabled: {
35
+ required: false,
36
+ type: Boolean,
37
+ default: false,
38
+ },
39
+ },
30
40
  };
31
41
  </script>
32
42
  <style lang="scss" scoped>
@@ -1,2 +1,16 @@
1
- declare const _default: import("vue").DefineComponent<{}, any, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
1
+ declare const _default: import("vue").DefineComponent<{
2
+ disabled: {
3
+ required: false;
4
+ type: BooleanConstructor;
5
+ default: boolean;
6
+ };
7
+ }, {}, {}, {}, {}, import("vue/types/v3-component-options.js").ComponentOptionsMixin, import("vue/types/v3-component-options.js").ComponentOptionsMixin, {}, string, Readonly<import("vue").ExtractPropTypes<{
8
+ disabled: {
9
+ required: false;
10
+ type: BooleanConstructor;
11
+ default: boolean;
12
+ };
13
+ }>>, {
14
+ disabled: boolean;
15
+ }>;
2
16
  export default _default;
@@ -0,0 +1,9 @@
1
+ /**
2
+ *
3
+ * @param {import("../vcsUiApp.js").default} app
4
+ * @returns {{ action: import("../actions/actionHelper.js").VcsAction, destroy: Function }}
5
+ */
6
+ export function createLocatorAction(app: import("../vcsUiApp.js").default): {
7
+ action: import("../actions/actionHelper.js").VcsAction;
8
+ destroy: Function;
9
+ };
@@ -0,0 +1,294 @@
1
+ import {
2
+ markVolatile,
3
+ maxZIndex,
4
+ mercatorProjection,
5
+ Projection,
6
+ VectorLayer,
7
+ VectorStyleItem,
8
+ ensureFeatureAbsolute,
9
+ CesiumMap,
10
+ } from '@vcmap/core';
11
+ import { Circle, Point } from 'ol/geom';
12
+ import { Feature } from 'ol';
13
+ import { Color } from '@vcmap-cesium/engine';
14
+ import CircleStyle from 'ol/style/Circle';
15
+ import { Fill, Stroke } from 'ol/style';
16
+ import { NotificationType } from '../notifier/notifier.js';
17
+ import { getDefaultPrimaryColor } from '../vuePlugins/vuetify.js';
18
+
19
+ /**
20
+ * Request the Color and add opacity
21
+ * @param {number} opacity
22
+ * @param {import("../vcsUiApp.js").default} app
23
+ * @returns {string}
24
+ */
25
+ function getColor(opacity, app) {
26
+ return Color.fromCssColorString(
27
+ app.uiConfig.config.value.primaryColor ?? getDefaultPrimaryColor(),
28
+ )
29
+ .withAlpha(opacity)
30
+ .toCssColorString();
31
+ }
32
+
33
+ /**
34
+ * Place a location point and accuracy circle on the map.
35
+ * @param {import("@vcmap/core").VectorLayer} layer The OpenLayers layer to add the features to.
36
+ * @param {GeolocationCoordinates} point The point object containing longitude, latitude, and accuracy.
37
+ * @param {import("../vcsUiApp.js").default} app
38
+ */
39
+ async function placeLocationInMap(layer, point, app) {
40
+ layer.removeFeaturesById(['_tooltipLocationPoint']);
41
+ layer.removeFeaturesById(['_tooltipLocationCircle']);
42
+
43
+ const featurePoint = [point.longitude, point.latitude];
44
+
45
+ const feature = new Feature({
46
+ geometry: new Point(Projection.wgs84ToMercator(featurePoint)),
47
+ olcs_extrudedHeight: 80,
48
+ olcs_altitudeMode: 'clampToGround',
49
+ });
50
+ feature.setId('_tooltipLocationPoint');
51
+
52
+ if (app.maps.activeMap instanceof CesiumMap) {
53
+ await ensureFeatureAbsolute(feature, layer, app.maps.activeMap);
54
+ }
55
+
56
+ const accuracyCircle = new Feature({
57
+ geometry: new Circle(
58
+ Projection.wgs84ToMercator([point.longitude, point.latitude]),
59
+ point.accuracy,
60
+ ),
61
+ });
62
+ accuracyCircle.setId('_tooltipLocationCircle');
63
+ layer.addFeatures([accuracyCircle, feature]);
64
+ }
65
+ /**
66
+ * Calculate the Euclidean distance between two coordinates.
67
+ * @param {GeolocationCoordinates} coord First set of coordinates.
68
+ * @param {GeolocationCoordinates} prevCoord Second set of coordinates.
69
+ * @returns {number} The Euclidean distance between the coordinates in meters.
70
+ */
71
+ function getDistance(coord, prevCoord) {
72
+ const dx = prevCoord.longitude - coord.longitude;
73
+ const dy = prevCoord.latitude - coord.latitude;
74
+ // Approximate distance using Pythagoras' theorem
75
+ return Math.sqrt(dx * dx + dy * dy);
76
+ }
77
+
78
+ /**
79
+ * Moves the map view to a specified position, optionally setting a distance.
80
+ * @param {number|null} distance
81
+ * @param {GeolocationCoordinates} position
82
+ * @param {import("../vcsUiApp.js").default} app
83
+ */
84
+ async function goToLocator(distance, position, app) {
85
+ const viewpoint = await app.maps.activeMap.getViewpoint();
86
+ viewpoint.animate = true;
87
+ viewpoint.cameraPosition = null;
88
+ viewpoint.groundPosition = [position.longitude, position.latitude];
89
+ if (viewpoint.pitch >= -30) {
90
+ viewpoint.pitch = -30;
91
+ }
92
+
93
+ if (distance != null) {
94
+ viewpoint.distance = distance;
95
+ }
96
+ viewpoint.duration = 1;
97
+ await app.maps.activeMap?.gotoViewpoint(viewpoint);
98
+ }
99
+
100
+ /**
101
+ * Handles the success of geolocation, updating the map accordingly.
102
+ * @param {import("@vcmap/core").VectorLayer} vectorLayer The vector layer on which to place the location.
103
+ * @param {import("../vcsUiApp.js").default} app
104
+ * @param {LocatorState} state The state object containing previous and current coordinates.
105
+ * @param {GeolocationPosition} position The position object containing current coordinates and accuracy.
106
+ */
107
+ async function handleSuccess(vectorLayer, app, state, position) {
108
+ if (
109
+ position.coords.longitude !== state.prevCoordinates?.longitude ||
110
+ position.coords.latitude !== state.prevCoordinates?.latitude ||
111
+ position.coords.accuracy !== state.prevCoordinates?.accuracy
112
+ ) {
113
+ state.coordinates = position.coords;
114
+
115
+ if (state.prevCoordinates === undefined || state.prevCoordinates === null) {
116
+ await goToLocator(state.coordinates.accuracy, position.coords, app);
117
+ } else if (getDistance(position.coords, state.prevCoordinates) > 5) {
118
+ await goToLocator(state.coordinates.accuracy, position.coords, app);
119
+ }
120
+ await placeLocationInMap(vectorLayer, state.coordinates, app);
121
+ state.prevCoordinates = position.coords;
122
+ }
123
+ }
124
+
125
+ /**
126
+ * Handles errors that occur during geolocation, displaying appropriate notifications based on the error code.
127
+ * @param {import("../vcsUiApp.js").default} app
128
+ * @param {LocatorState} state The state object.
129
+ * @param {GeolocationPositionError} error The error object containing information about the geolocation error.
130
+ */
131
+ function handleError(app, state, error) {
132
+ if (state.prevCoordinates === undefined || state.prevCoordinates === null) {
133
+ switch (error.code) {
134
+ case 1:
135
+ app.notifier.add({
136
+ type: NotificationType.ERROR,
137
+ message: app.vueI18n.t('navigation.locator.errorAccess'),
138
+ });
139
+ break;
140
+ case 2:
141
+ app.notifier.add({
142
+ type: NotificationType.ERROR,
143
+ message: app.vueI18n.t('navigation.locator.errorCurrentPosition'),
144
+ });
145
+ break;
146
+ case 3:
147
+ app.notifier.add({
148
+ type: NotificationType.ERROR,
149
+ message: app.vueI18n.t('navigation.locator.errorConnection'),
150
+ });
151
+ break;
152
+ default:
153
+ app.notifier.add({
154
+ type: NotificationType.ERROR,
155
+ message: app.vueI18n.t('navigation.locator.errorPosition'),
156
+ });
157
+ break;
158
+ }
159
+ }
160
+ }
161
+
162
+ const geolocationOptions = {
163
+ enableHighAccuracy: true,
164
+ maximumAge: 10000,
165
+ timeout: 5000,
166
+ };
167
+
168
+ /**
169
+ *
170
+ * @param {import("../vcsUiApp.js").default} app
171
+ * @returns {{ action: import("../actions/actionHelper.js").VcsAction, destroy: Function }}
172
+ */
173
+ // eslint-disable-next-line import/prefer-default-export
174
+ export function createLocatorAction(app) {
175
+ let primary = getColor(0.4, app);
176
+
177
+ let pointColor = getColor(1, app);
178
+
179
+ const style = new VectorStyleItem({
180
+ fill: {
181
+ color: primary,
182
+ },
183
+ stroke: { color: pointColor, width: 2 },
184
+ image: {
185
+ fill: {
186
+ color: pointColor,
187
+ },
188
+ color: primary,
189
+ stroke: { color: pointColor, width: 2 },
190
+ radius: 5,
191
+ },
192
+ });
193
+ const vectorLayer = new VectorLayer({
194
+ projection: mercatorProjection.toJSON(),
195
+ vectorProperties: {
196
+ classificationType: 'both',
197
+ allowPicking: false,
198
+ heightAboveGround: 2,
199
+ altitudeMode: 'clampToGround',
200
+ },
201
+ zIndex: maxZIndex,
202
+ style,
203
+ });
204
+
205
+ const mapChangedListener = app.maps.mapActivated.addEventListener(
206
+ async (map) => {
207
+ if (map instanceof CesiumMap) {
208
+ const locatorFeature = vectorLayer.getFeatureById(
209
+ '_tooltipLocationPoint',
210
+ );
211
+ if (locatorFeature) {
212
+ await ensureFeatureAbsolute(locatorFeature, vectorLayer, map);
213
+ }
214
+ }
215
+ },
216
+ );
217
+ markVolatile(vectorLayer);
218
+ app.layers.add(vectorLayer);
219
+
220
+ const destroyLayer = () => {
221
+ vectorLayer.deactivate();
222
+ app.layers.remove(vectorLayer);
223
+ vectorLayer.destroy();
224
+ };
225
+
226
+ /**
227
+ * @typedef {Object} LocatorState
228
+ * @property {GeolocationCoordinates} coordinates
229
+ * @property {GeolocationCoordinates} prevCoordinates
230
+ * @property {Object} id
231
+ */
232
+ const state = {
233
+ coordinates: undefined,
234
+ prevCoordinates: undefined,
235
+ id: undefined,
236
+ };
237
+
238
+ const themeListener = app.themeChanged.addEventListener(() => {
239
+ primary = getColor(0.4, app);
240
+ pointColor = getColor(1, app);
241
+ style.fillColor = primary;
242
+ style.stroke.setColor(pointColor);
243
+ style.image = new CircleStyle({
244
+ fill: new Fill({
245
+ color: pointColor,
246
+ }),
247
+ color: primary,
248
+ stroke: new Stroke({ color: pointColor, width: 2 }),
249
+ radius: 5,
250
+ });
251
+ vectorLayer.forceRedraw();
252
+ });
253
+
254
+ const action = {
255
+ name: 'alertAction',
256
+ title: 'Locator',
257
+ icon: '$vcsCrosshair',
258
+ active: false,
259
+ disabled: true,
260
+ callback() {
261
+ if (!this.active) {
262
+ this.active = !this.active;
263
+ vectorLayer.activate();
264
+ if (state.prevCoordinates !== undefined) {
265
+ goToLocator(
266
+ state.prevCoordinates.accuracy,
267
+ state.prevCoordinates,
268
+ app,
269
+ );
270
+ }
271
+ state.id = navigator.geolocation.watchPosition(
272
+ handleSuccess.bind(null, vectorLayer, app, state),
273
+ handleError.bind(null, app, state),
274
+ geolocationOptions,
275
+ );
276
+ } else {
277
+ this.active = !this.active;
278
+ state.coordinates = null;
279
+ navigator.geolocation.clearWatch(state.id.value);
280
+ vectorLayer.deactivate();
281
+ }
282
+ },
283
+ };
284
+ const destroy = () => {
285
+ destroyLayer();
286
+ mapChangedListener();
287
+ themeListener();
288
+ style.destroy();
289
+ state.coordinates = undefined;
290
+ state.prevCoordinates = undefined;
291
+ state.id = undefined;
292
+ };
293
+ return { action, destroy };
294
+ }
@@ -35,17 +35,17 @@ declare class OverviewMap {
35
35
  */
36
36
  private _cachedViewpoint;
37
37
  /**
38
- * @type {import("@vcmap/core").VectorLayer}
38
+ * @type {import("@vcmap/core").VectorLayer | null}
39
39
  * @private
40
40
  */
41
41
  private _obliqueTileLayer;
42
42
  /**
43
- * @type {import("@vcmap/core").VectorLayer}
43
+ * @type {import("@vcmap/core").VectorLayer | null}
44
44
  * @private
45
45
  */
46
46
  private _obliqueImageLayer;
47
47
  /**
48
- * @type {import("@vcmap/core").VectorLayer}
48
+ * @type {import("@vcmap/core").VectorLayer | null}
49
49
  * @private
50
50
  */
51
51
  private _obliqueSelectedImageLayer;
@@ -60,12 +60,12 @@ declare class OverviewMap {
60
60
  */
61
61
  private _obliqueResolutionFactor;
62
62
  /**
63
- * @type {import("@vcmap/core").ObliqueViewDirection}
63
+ * @type {import("@vcmap/core").ObliqueViewDirection | null}
64
64
  * @private
65
65
  */
66
66
  private _obliqueViewDirection;
67
67
  /**
68
- * @type {import("@vcmap/core").VectorLayer}
68
+ * @type {import("@vcmap/core").VectorLayer | null}
69
69
  * @private
70
70
  */
71
71
  private _cameraIconLayer;
@@ -80,29 +80,29 @@ declare class OverviewMap {
80
80
  */
81
81
  minimumHeight: number;
82
82
  /**
83
- * Handles the events from the overview map. Available after first activation.
84
- * @type {EventHandler|null}
83
+ * Handles the events from the overview map.
84
+ * @type {EventHandler}
85
85
  * @private
86
86
  */
87
87
  private _eventHandler;
88
88
  /**
89
- * An event, available after first activation, which is triggered whenever the overview map is clicked.
90
- * Is passed a {@link InteractionEvent} as its only argument
91
- * @type {import("@vcmap/core").VcsEvent<import("@vcmap/core").InteractionEvent>|null}
89
+ *
90
+ * @type {import("@vcmap/core").VcsEvent<import("@vcmap/core").InteractionEvent>}
92
91
  * @private
93
92
  */
94
93
  private _mapClicked;
95
94
  /**
96
- * @type {Function}
95
+ * @type {function():void}
96
+ * @private
97
97
  */
98
- _mapPointerListener: Function;
98
+ private _mapPointerListener;
99
99
  /**
100
100
  * @type {Array<function():void>}
101
101
  * @private
102
102
  */
103
103
  private _listeners;
104
104
  /**
105
- * @type {function():void}
105
+ * @type {null | function():void}
106
106
  * @private
107
107
  */
108
108
  private _mapActivatedListener;
@@ -124,17 +124,15 @@ declare class OverviewMap {
124
124
  */
125
125
  get eventHandler(): EventHandler | null;
126
126
  /**
127
- * @type {import("@vcmap/core").VcsEvent<import("@vcmap/core").InteractionEvent>|null}
127
+ * An event which is triggered whenever the overview map is clicked.
128
+ * Is passed a {@link InteractionEvent} as its only argument
129
+ * @type {import("@vcmap/core").VcsEvent<import("@vcmap/core").InteractionEvent>}
128
130
  */
129
- get mapClicked(): import("@vcmap/core/dist/src/vcsEvent.js").default<import("@vcmap/core").InteractionEvent> | null;
131
+ get mapClicked(): import("@vcmap/core/dist/src/vcsEvent.js").default<import("@vcmap/core").InteractionEvent>;
130
132
  /**
131
133
  * @private
132
134
  */
133
135
  private _updatePrimaryColor;
134
- /**
135
- * @private
136
- */
137
- private _setupMapInteraction;
138
136
  /**
139
137
  * activates the overview map and initializes handlers for current active map
140
138
  * @private
@@ -182,7 +180,10 @@ declare class OverviewMap {
182
180
  * @private
183
181
  */
184
182
  private _addNavigationListener;
185
- _setupCameraIconLayer(): void;
183
+ /**
184
+ * @private
185
+ */
186
+ private _setupCameraIconLayer;
186
187
  /**
187
188
  * Adds and maintains the view and camera feature
188
189
  * @private