@vcmap/ui 6.2.0-rc.3 → 6.2.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 (33) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/cesium.js +1 -1
  3. package/dist/assets/{core-deeb2b8d.js → core-8997fca8.js} +3372 -3368
  4. package/dist/assets/core-workers/panoramaImageWorker.js +1 -1
  5. package/dist/assets/core.js +1 -1
  6. package/dist/assets/ol.js +1 -1
  7. package/dist/assets/{ui-62439099.js → ui-f99d019b.js} +564 -560
  8. package/dist/assets/ui.js +1 -1
  9. package/dist/assets/vue.js +1 -1
  10. package/dist/assets/{vuetify-439ba6d5.js → vuetify-bfd8e6ac.js} +1 -1
  11. package/dist/assets/vuetify.js +1 -1
  12. package/package.json +2 -2
  13. package/plugins/package.json +12 -11
  14. package/src/actions/actionHelper.d.ts +5 -5
  15. package/src/actions/actionHelper.js +5 -7
  16. package/src/actions/flightActions.js +5 -11
  17. package/src/components/plugins/VcsWorkspaceWrapper.vue +2 -2
  18. package/src/contentTree/contentTreeCollection.d.ts +5 -0
  19. package/src/contentTree/contentTreeCollection.js +9 -1
  20. package/src/featureInfo/iframeFeatureInfoView.d.ts +16 -3
  21. package/src/featureInfo/iframeFeatureInfoView.js +19 -2
  22. package/src/featureInfo/iframeWmsFeatureInfoView.d.ts +3 -1
  23. package/src/featureInfo/iframeWmsFeatureInfoView.js +1 -1
  24. package/src/i18n/de.js +2 -2
  25. package/src/i18n/en.js +2 -2
  26. package/src/navigation/overviewMap.d.ts +5 -5
  27. package/src/navigation/overviewMap.js +5 -9
  28. /package/dist/assets/{cesium-7d4ab914.js → cesium-4e58d2c7.js} +0 -0
  29. /package/dist/assets/core-workers/{panoramaImageWorker.js-f8148bc6.js → panoramaImageWorker.js-0010ea67.js} +0 -0
  30. /package/dist/assets/{ol-8db5c824.js → ol-e7017bf9.js} +0 -0
  31. /package/dist/assets/{ui-62439099.css → ui-f99d019b.css} +0 -0
  32. /package/dist/assets/{vue-1b861f55.js → vue-7499093d.js} +0 -0
  33. /package/dist/assets/{vuetify-439ba6d5.css → vuetify-bfd8e6ac.css} +0 -0
package/dist/assets/ui.js CHANGED
@@ -1 +1 @@
1
- export * from "./ui-62439099.js";
1
+ export * from "./ui-f99d019b.js";
@@ -1 +1 @@
1
- export * from "./vue-1b861f55.js";
1
+ export * from "./vue-7499093d.js";
@@ -10,7 +10,7 @@ function loadCss(href) {
10
10
  elem.onerror = reject;
11
11
  document.head.appendChild(elem);
12
12
  });
13
- } await loadCss('./assets/vuetify-439ba6d5.css');import { watch as Q, onScopeDispose as Ze, effectScope as Zl, shallowRef as K, Fragment as ie, reactive as it, computed as b, watchEffect as Fe, toRefs as Yt, capitalize as Nn, isVNode as Rc, Comment as Nc, unref as ot, warn as ja, getCurrentInstance as Hc, ref as j, provide as De, inject as ye, defineComponent as zc, camelize as Ir, h as Gt, toRaw as Be, createVNode as r, mergeProps as O, onBeforeUnmount as Qe, readonly as Ql, onDeactivated as _r, onActivated as Wc, onMounted as Ye, nextTick as we, TransitionGroup as Jl, Transition as jt, isRef as Tn, toRef as $, onBeforeMount as ra, withDirectives as $e, resolveDirective as gt, vShow as Ct, onUpdated as jc, Text as Uc, resolveDynamicComponent as Yc, markRaw as Gc, Teleport as Kc, cloneVNode as qc, createTextVNode as Tt, onUnmounted as Tr, onBeforeUpdate as Xc, withModifiers as Tl, toDisplayString as Zc, vModelText as Qc, resolveComponent as Jc, render as Ar } from "./vue-1b861f55.js";
13
+ } await loadCss('./assets/vuetify-bfd8e6ac.css');import { watch as Q, onScopeDispose as Ze, effectScope as Zl, shallowRef as K, Fragment as ie, reactive as it, computed as b, watchEffect as Fe, toRefs as Yt, capitalize as Nn, isVNode as Rc, Comment as Nc, unref as ot, warn as ja, getCurrentInstance as Hc, ref as j, provide as De, inject as ye, defineComponent as zc, camelize as Ir, h as Gt, toRaw as Be, createVNode as r, mergeProps as O, onBeforeUnmount as Qe, readonly as Ql, onDeactivated as _r, onActivated as Wc, onMounted as Ye, nextTick as we, TransitionGroup as Jl, Transition as jt, isRef as Tn, toRef as $, onBeforeMount as ra, withDirectives as $e, resolveDirective as gt, vShow as Ct, onUpdated as jc, Text as Uc, resolveDynamicComponent as Yc, markRaw as Gc, Teleport as Kc, cloneVNode as qc, createTextVNode as Tt, onUnmounted as Tr, onBeforeUpdate as Xc, withModifiers as Tl, toDisplayString as Zc, vModelText as Qc, resolveComponent as Jc, render as Ar } from "./vue-7499093d.js";
14
14
  function rt(e, n) {
15
15
  let t;
16
16
  function a() {
@@ -1 +1 @@
1
- export * from "./vuetify-439ba6d5.js";
1
+ export * from "./vuetify-bfd8e6ac.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcmap/ui",
3
- "version": "6.2.0-rc.3",
3
+ "version": "6.2.0",
4
4
  "author": "Virtual City Systems",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -58,7 +58,7 @@
58
58
  },
59
59
  "peerDependencies": {
60
60
  "@vcmap-cesium/engine": "^11.0.3",
61
- "@vcmap/core": "6.2.0-rc.2",
61
+ "@vcmap/core": "6.2.0",
62
62
  "ol": "^10.4.0",
63
63
  "vue": "~3.4.38",
64
64
  "vuetify": "~3.7.14"
@@ -2,16 +2,16 @@
2
2
  "dependencies": {
3
3
  "@vcmap/print": "^3.0.0",
4
4
  "@vcmap/walk": "^2.0.0",
5
- "@vcmap/clipping-tool": "^2.0.0",
6
- "@vcmap/transparent-terrain": "^2.0.0",
7
- "@vcmap/height-profile": "^2.0.0",
8
- "@vcmap/flight": "^2.0.0",
9
- "@vcmap/swipe-tool": "^3.0.0",
5
+ "@vcmap/clipping-tool": "^3.0.0",
6
+ "@vcmap/transparent-terrain": "^3.0.0",
7
+ "@vcmap/height-profile": "^3.0.0",
8
+ "@vcmap/flight": "^3.0.0",
9
+ "@vcmap/swipe-tool": "^4.0.0",
10
10
  "@vcmap/export": "^2.0.0",
11
11
  "@vcmap/viewshed": "^3.0.0",
12
- "@vcmap/measurement": "^3.0.0",
13
- "@vcmap/multi-view": "^2.0.0",
14
- "@vcmap/draw": "^3.0.0",
12
+ "@vcmap/measurement": "^4.0.0",
13
+ "@vcmap/multi-view": "^3.0.0",
14
+ "@vcmap/draw": "^4.0.0",
15
15
  "@vcmap/shadow": "^3.0.0",
16
16
  "@vcmap/search-wfs": "^2.0.0",
17
17
  "@vcmap/search-esri": "^2.0.0",
@@ -21,7 +21,7 @@
21
21
  "@vcmap/search-nominatim": "^2.0.0",
22
22
  "@vcmap/create-link": "^3.0.0",
23
23
  "@vcmap/module-selector": "^3.0.0",
24
- "@vcmap/line-of-sight": "^1.0.0",
24
+ "@vcmap/line-of-sight": "^2.0.0",
25
25
  "@vcmap/layer-slider": "^2.0.0",
26
26
  "@vcmap/vcs-solar-balloon": "^2.0.0",
27
27
  "@vcmap/list-view": "^1.0.0",
@@ -29,9 +29,10 @@
29
29
  "@vcmap/gamepad": "^1.0.0",
30
30
  "@vcmap/sensorthings": "^1.0.0",
31
31
  "@vcmap/cesium-inspector": "^2.0.0",
32
- "@vcmap/event-control": "^1.0.1"
32
+ "@vcmap/event-control": "^1.0.1",
33
+ "@vcmap/dynamic-layer": "^1.0.0"
33
34
  },
34
35
  "optionalDependencies": {
35
- "@vcmap/planning": "^6.0.0"
36
+ "@vcmap/planning": "^7.0.0"
36
37
  }
37
38
  }
@@ -106,18 +106,18 @@ export function callSafeAction(action: VcsAction, p?: PointerEvent | undefined):
106
106
  * Adds a loading overlay to the application.
107
107
  * @param {import("../vcsUiApp.js").default} app
108
108
  * @param {string|symbol} owner The owner of the loading overlay.
109
- * @param {string} id The ID of the loading overlay.
110
- * @param {{progress?:import('vue').Ref<number>|undefined, title?:string, text?:string, cancel?:Function, maxWidth?:number|string, persistent?:boolean}} [options] The options for the loading overlay, passed as props.
111
- * @returns {Function} A function to remove the loading overlay.
109
+ * @param {{id?:string, progress?:import('vue').Ref<number>|undefined, title?:string, text?:string, cancel?:Function, maxWidth?:number|string, persistent?:boolean}} [options] The options for the loading overlay, passed as props.
110
+ * @returns {function(): void} A function to remove the loading overlay.
112
111
  */
113
- export function addLoadingOverlay(app: import("../vcsUiApp.js").default, owner: string | symbol, id: string, options?: {
112
+ export function addLoadingOverlay(app: import("../vcsUiApp.js").default, owner: string | symbol, options?: {
113
+ id?: string | undefined;
114
114
  progress?: import('vue').Ref<number> | undefined;
115
115
  title?: string | undefined;
116
116
  text?: string | undefined;
117
117
  cancel?: Function | undefined;
118
118
  maxWidth?: string | number | undefined;
119
119
  persistent?: boolean | undefined;
120
- } | undefined): Function;
120
+ } | undefined): () => void;
121
121
  export const searchComponentId: "searchId";
122
122
  export type ActionOptions = Omit<VcsAction, 'callback'>;
123
123
  export type ActionCallback = (p?: PointerEvent) => (void | Promise<void>);
@@ -585,17 +585,16 @@ export function callSafeAction(action, p) {
585
585
  * Adds a loading overlay to the application.
586
586
  * @param {import("../vcsUiApp.js").default} app
587
587
  * @param {string|symbol} owner The owner of the loading overlay.
588
- * @param {string} id The ID of the loading overlay.
589
- * @param {{progress?:import('vue').Ref<number>|undefined, title?:string, text?:string, cancel?:Function, maxWidth?:number|string, persistent?:boolean}} [options] The options for the loading overlay, passed as props.
590
- * @returns {Function} A function to remove the loading overlay.
588
+ * @param {{id?:string, progress?:import('vue').Ref<number>|undefined, title?:string, text?:string, cancel?:Function, maxWidth?:number|string, persistent?:boolean}} [options] The options for the loading overlay, passed as props.
589
+ * @returns {function(): void} A function to remove the loading overlay.
591
590
  */
592
- export function addLoadingOverlay(app, owner, id, options) {
591
+ export function addLoadingOverlay(app, owner, options) {
593
592
  check(owner, oneOf(String, Symbol));
594
- check(id, String);
595
593
  check(options?.progress?.value, optional(Number));
596
594
  check(
597
595
  options,
598
596
  optional({
597
+ id: optional(String),
599
598
  title: optional(String),
600
599
  text: optional(String),
601
600
  cancel: optional(Function),
@@ -604,12 +603,12 @@ export function addLoadingOverlay(app, owner, id, options) {
604
603
  }),
605
604
  );
606
605
 
606
+ const id = options?.id || `loading-overlay-${uuid()}`;
607
607
  const removeWindow = () => {
608
608
  if (app.windowManager.has(id)) {
609
609
  app.windowManager.remove(id);
610
610
  }
611
611
  };
612
-
613
612
  app.windowManager.add(
614
613
  {
615
614
  component: VcsLoadingOverlay,
@@ -626,6 +625,5 @@ export function addLoadingOverlay(app, owner, id, options) {
626
625
  },
627
626
  owner,
628
627
  );
629
-
630
628
  return removeWindow;
631
629
  }
@@ -444,17 +444,11 @@ export function createFlightMovieActions(app, instance) {
444
444
  player = await createFlightPlayer(instance, app);
445
445
  playerListener = player.clock.changed.addEventListener(updateProgress);
446
446
  const { start, cancel } = createFlightMovie(app, player, options);
447
- removeLoadingOverlay = addLoadingOverlay(
448
- app,
449
- vcsAppSymbol,
450
- 'flight-recording',
451
- {
452
- progress,
453
- title: 'components.flight.record.inProgress',
454
- cancellable: true,
455
- cancel,
456
- },
457
- );
447
+ removeLoadingOverlay = addLoadingOverlay(app, vcsAppSymbol, {
448
+ progress,
449
+ title: 'components.flight.record.inProgress',
450
+ cancel,
451
+ });
458
452
  const blob = await start();
459
453
  removeLoadingOverlay?.();
460
454
  app.notifier.add({
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container class="pa-0 abstract-workspace-item-creator">
2
+ <v-container class="pa-0 vcs-workspace-wrapper">
3
3
  <slot />
4
4
  <div v-if="showFooter">
5
5
  <v-divider class="mt-3" />
@@ -42,7 +42,7 @@
42
42
  * @vue-prop {boolean} [disableAdd=false] - Flag to render add button disabled.
43
43
  * @vue-prop {boolean} [tooltipAdd='components.addToMyWorkspace'] - Option to change the add button tooltip.
44
44
  * @vue-prop {boolean} [disableNew=false] - Flag to render new button disabled.
45
- * @vue-prop {boolean} [tooltipNew''] - Option to change the add a tooltip to the new button.
45
+ * @vue-prop {boolean} [tooltipNew=''] - Option to change the add a tooltip to the new button.
46
46
  * @vue-prop {Array<VcsAction>} [actions] - Optional actions rendered as ActionButtonList in the footer.
47
47
  * @vue-prop {string} [newButtonTitle='components.new'] - Option to change the new button title, e.g. to 'components.apply'.
48
48
  * @vue-event {Event} addClicked - Event fired on clicking the reset button.
@@ -23,6 +23,11 @@ declare class ContentTreeCollection extends IndexedCollection<ContentTreeItem> {
23
23
  * @param {import("@src/vcsUiApp.js").default} app
24
24
  */
25
25
  constructor(app: import("@src/vcsUiApp.js").default);
26
+ /**
27
+ * @type {string|undefined}
28
+ * @private
29
+ */
30
+ private _removedListenerTimeoutId;
26
31
  /**
27
32
  * @type {import("@src/vcsUiApp.js").default}
28
33
  * @private
@@ -31,6 +31,11 @@ export const defaultContentTreeComponentId = 'Content';
31
31
  * @extends {IndexedCollection<ContentTreeItem>}
32
32
  */
33
33
  class ContentTreeCollection extends IndexedCollection {
34
+ /**
35
+ * @type {string|undefined}
36
+ * @private
37
+ */
38
+ _removedListenerTimeoutId;
34
39
  /**
35
40
  * @param {import("@src/vcsUiApp.js").default} app
36
41
  */
@@ -107,7 +112,10 @@ class ContentTreeCollection extends IndexedCollection {
107
112
  }
108
113
  }),
109
114
  this.removed.addEventListener((child) => {
110
- recreateTree();
115
+ clearTimeout(this._removedListenerTimeoutId);
116
+ this._removedListenerTimeoutId = setTimeout(() => {
117
+ recreateTree();
118
+ }, 0);
111
119
  if (this._weightListeners.has(child.name)) {
112
120
  this._weightListeners.get(child.name)();
113
121
  this._weightListeners.delete(child.name);
@@ -2,18 +2,23 @@ export default IframeFeatureInfoView;
2
2
  export type IframeFeatureInfoViewOptions = import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & {
3
3
  src: string;
4
4
  title?: string;
5
+ sandbox?: string;
6
+ disableSandbox?: boolean;
5
7
  };
6
- export type IframeFeatureInfoViewProps = any & {
8
+ export type IframeFeatureInfoViewProps = import("./abstractFeatureInfoView.js").FeatureInfoProps & {
7
9
  src: string;
8
10
  title?: string;
11
+ sandbox?: string;
9
12
  };
10
13
  /**
11
- * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { src: string, title?: string }} IframeFeatureInfoViewOptions
14
+ * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { src: string, title?: string, sandbox?:string, disableSandbox?: boolean }} IframeFeatureInfoViewOptions
12
15
  * @property {string} src - Specifies the address of the document to embed in the <iframe>. Variables wrapped in `${}` are replaced by their values, e.g. `${featureId}` or `${gml:name}`
13
16
  * @property {string} [title] - optional title for the <iframe>
17
+ * @property {string} [sandbox] - optional sandbox attribute for the <iframe>
18
+ * @property {boolean} [disableSandbox] - optional flag to disable the sandbox attribute for the <iframe>
14
19
  */
15
20
  /**
16
- * @typedef {import("./abstractFeatureInfoView.js.js").FeatureInfoProps & { src: string, title?: string }} IframeFeatureInfoViewProps
21
+ * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoProps & { src: string, title?: string, sandbox?:string }} IframeFeatureInfoViewProps
17
22
  */
18
23
  /**
19
24
  * @class
@@ -33,6 +38,14 @@ declare class IframeFeatureInfoView extends AbstractFeatureInfoView {
33
38
  * @type {string|undefined}
34
39
  */
35
40
  title: string | undefined;
41
+ /**
42
+ * @type {string}
43
+ */
44
+ sandbox: string;
45
+ /**
46
+ * @type {boolean}
47
+ */
48
+ disableSandbox: boolean;
36
49
  /**
37
50
  * @param {Record<string, unknown>} attributes
38
51
  * @protected
@@ -3,13 +3,15 @@ import AbstractFeatureInfoView from './abstractFeatureInfoView.js';
3
3
  import IframeComponent from './IframeComponent.vue';
4
4
 
5
5
  /**
6
- * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { src: string, title?: string }} IframeFeatureInfoViewOptions
6
+ * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { src: string, title?: string, sandbox?:string, disableSandbox?: boolean }} IframeFeatureInfoViewOptions
7
7
  * @property {string} src - Specifies the address of the document to embed in the <iframe>. Variables wrapped in `${}` are replaced by their values, e.g. `${featureId}` or `${gml:name}`
8
8
  * @property {string} [title] - optional title for the <iframe>
9
+ * @property {string} [sandbox] - optional sandbox attribute for the <iframe>
10
+ * @property {boolean} [disableSandbox] - optional flag to disable the sandbox attribute for the <iframe>
9
11
  */
10
12
 
11
13
  /**
12
- * @typedef {import("./abstractFeatureInfoView.js.js").FeatureInfoProps & { src: string, title?: string }} IframeFeatureInfoViewProps
14
+ * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoProps & { src: string, title?: string, sandbox?:string }} IframeFeatureInfoViewProps
13
15
  */
14
16
 
15
17
  /**
@@ -39,6 +41,14 @@ class IframeFeatureInfoView extends AbstractFeatureInfoView {
39
41
  * @type {string|undefined}
40
42
  */
41
43
  this.title = options.title || undefined;
44
+ /**
45
+ * @type {string}
46
+ */
47
+ this.sandbox = options.sandbox || '';
48
+ /**
49
+ * @type {boolean}
50
+ */
51
+ this.disableSandbox = options.disableSandbox || false;
42
52
  }
43
53
 
44
54
  /**
@@ -65,6 +75,7 @@ class IframeFeatureInfoView extends AbstractFeatureInfoView {
65
75
  ...properties.attributes,
66
76
  }),
67
77
  title: this.title,
78
+ ...(!this.disableSandbox && { sandbox: this.sandbox }),
68
79
  };
69
80
  }
70
81
 
@@ -79,6 +90,12 @@ class IframeFeatureInfoView extends AbstractFeatureInfoView {
79
90
  if (this.title) {
80
91
  config.title = this.title;
81
92
  }
93
+ if (this.sandbox) {
94
+ config.sandbox = this.sandbox;
95
+ }
96
+ if (this.disableSandbox) {
97
+ config.disableSandbox = this.disableSandbox;
98
+ }
82
99
  return config;
83
100
  }
84
101
  }
@@ -2,9 +2,11 @@ export default IframeWmsFeatureInfoView;
2
2
  export type IframeWmsFeatureInfoViewOptions = import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & {
3
3
  infoFormat: string;
4
4
  title?: string;
5
+ sandbox?: string;
6
+ disableSandbox?: boolean;
5
7
  };
6
8
  /**
7
- * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { infoFormat: string, title?: string }} IframeWmsFeatureInfoViewOptions
9
+ * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { infoFormat: string, title?: string, sandbox?:string, disableSandbox?: boolean }} IframeWmsFeatureInfoViewOptions
8
10
  * @property {string} infoFormat - Specifies the response format of WMS GetFeatureInfo
9
11
  * @property {string} [title] - optional title for the <iframe>
10
12
  * @property {string} [sandbox] - optional sandbox attribute for the <iframe>
@@ -3,7 +3,7 @@ import AbstractFeatureInfoView from './abstractFeatureInfoView.js';
3
3
  import IframeComponent from './IframeComponent.vue';
4
4
 
5
5
  /**
6
- * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { infoFormat: string, title?: string }} IframeWmsFeatureInfoViewOptions
6
+ * @typedef {import("./abstractFeatureInfoView.js").FeatureInfoViewOptions & { infoFormat: string, title?: string, sandbox?:string, disableSandbox?: boolean }} IframeWmsFeatureInfoViewOptions
7
7
  * @property {string} infoFormat - Specifies the response format of WMS GetFeatureInfo
8
8
  * @property {string} [title] - optional title for the <iframe>
9
9
  * @property {string} [sandbox] - optional sandbox attribute for the <iframe>
package/src/i18n/de.js CHANGED
@@ -176,8 +176,8 @@ const messages = {
176
176
  export: 'Flug exportieren',
177
177
  exportPath: 'Flugpfad exportieren',
178
178
  record: {
179
- standard: 'Flug mit Standardauflösung aufzeichnen',
180
- high: 'Flug mit hoher Auflösung aufzeichnen',
179
+ standard: 'Flug in Standardqualität aufzeichnen',
180
+ high: 'Flug in hoher Qualität aufzeichnen',
181
181
  inProgress: 'Aufzeichnung läuft',
182
182
  success: 'Aufzeichnung erfolgreich, der Download startet in Kürze',
183
183
  },
package/src/i18n/en.js CHANGED
@@ -176,8 +176,8 @@ const messages = {
176
176
  export: 'Export flight',
177
177
  exportPath: 'Export flight path',
178
178
  record: {
179
- standard: 'Record standard resolution flight',
180
- high: 'Record high resolution flight',
179
+ standard: 'Record standard quality flight',
180
+ high: 'Record high quality flight',
181
181
  inProgress: 'Recording in progress',
182
182
  success: 'Recording successful, the download will start shortly',
183
183
  },
@@ -27,7 +27,7 @@ declare class OverviewMap {
27
27
  */
28
28
  private _active;
29
29
  /**
30
- * @type {import("@vcmap/core").OpenlayersMap||null}
30
+ * @type {import("@vcmap/core").OpenlayersMap}
31
31
  * @private
32
32
  */
33
33
  private _map;
@@ -134,13 +134,13 @@ declare class OverviewMap {
134
134
  */
135
135
  get active(): boolean;
136
136
  /**
137
- * @type {import("@vcmap/core").OpenlayersMap|null}
137
+ * @type {import("@vcmap/core").OpenlayersMap}
138
138
  */
139
- get map(): OpenlayersMap | null;
139
+ get map(): OpenlayersMap;
140
140
  /**
141
- * @type {EventHandler|null}
141
+ * @type {EventHandler}
142
142
  */
143
- get eventHandler(): EventHandler | null;
143
+ get eventHandler(): EventHandler;
144
144
  /**
145
145
  * @type {import("@vcmap/core").PanoramaImageSelection}
146
146
  */
@@ -93,7 +93,7 @@ class OverviewMap {
93
93
  this._active = ref(false);
94
94
 
95
95
  /**
96
- * @type {import("@vcmap/core").OpenlayersMap||null}
96
+ * @type {import("@vcmap/core").OpenlayersMap}
97
97
  * @private
98
98
  */
99
99
  this._map = new OpenlayersMap({
@@ -306,14 +306,14 @@ class OverviewMap {
306
306
  }
307
307
 
308
308
  /**
309
- * @type {import("@vcmap/core").OpenlayersMap|null}
309
+ * @type {import("@vcmap/core").OpenlayersMap}
310
310
  */
311
311
  get map() {
312
312
  return this._map;
313
313
  }
314
314
 
315
315
  /**
316
- * @type {EventHandler|null}
316
+ * @type {EventHandler}
317
317
  */
318
318
  get eventHandler() {
319
319
  return this._eventHandler;
@@ -692,9 +692,7 @@ class OverviewMap {
692
692
  this._mapActivatedListener();
693
693
  this._mapActivatedListener = null;
694
694
  }
695
- if (this._map) {
696
- this._map.destroy();
697
- }
695
+ this._map.destroy();
698
696
  if (this._obliqueTileLayer) {
699
697
  this._obliqueTileLayer.source = new VectorSource({});
700
698
  this._obliqueTileLayer.destroy();
@@ -710,9 +708,7 @@ class OverviewMap {
710
708
  if (this._cameraIconLayer) {
711
709
  this._cameraIconLayer.destroy();
712
710
  }
713
- if (this._eventHandler) {
714
- this._eventHandler.destroy();
715
- }
711
+ this._eventHandler.destroy();
716
712
  this.cameraIconStyle.destroy();
717
713
  this.obliqueSelectedStyle.destroy();
718
714
  this._cachedViewpoint = null;
File without changes