@vcmap/ui 6.2.0-rc.1 → 6.2.0-rc.3

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 (193) hide show
  1. package/build/build.js +52 -7
  2. package/build/postInstall.js +32 -0
  3. package/config/dev.config.json +40 -0
  4. package/config/pano.config.json +420 -0
  5. package/config/projects.config.json +5 -0
  6. package/dist/assets/cesium/Workers/{chunk-P6TRGU3S.js → chunk-2PFJ45KC.js} +2 -2
  7. package/dist/assets/cesium/Workers/{chunk-7ZZ5LMZY.js → chunk-35ALNMG5.js} +15 -15
  8. package/dist/assets/cesium/Workers/{chunk-7YIOHQWH.js → chunk-35EJBV7X.js} +13 -13
  9. package/dist/assets/cesium/Workers/{chunk-EJVGYGLF.js → chunk-3E3OH65K.js} +7 -7
  10. package/dist/assets/cesium/Workers/{chunk-JBSKHTNX.js → chunk-4FHUY275.js} +4 -4
  11. package/dist/assets/cesium/Workers/{chunk-Z2QP3CXW.js → chunk-565T3GIE.js} +2 -2
  12. package/dist/assets/cesium/Workers/{chunk-IZGUQO6Q.js → chunk-5LGDCKCZ.js} +13 -13
  13. package/dist/assets/cesium/Workers/{chunk-3IFRSGEY.js → chunk-6JXJYBWN.js} +9 -9
  14. package/dist/assets/cesium/Workers/{chunk-WGDFYAGC.js → chunk-6RAEC3AW.js} +4 -4
  15. package/dist/assets/cesium/Workers/{chunk-44QAAS4P.js → chunk-6Z67VIOY.js} +7 -7
  16. package/dist/assets/cesium/Workers/{chunk-NGZJIN5Z.js → chunk-ADDGROZ6.js} +4 -4
  17. package/dist/assets/cesium/Workers/{chunk-GBT7MJ6X.js → chunk-ASYGMBRG.js} +1 -1
  18. package/dist/assets/cesium/Workers/{chunk-C4WPMOKT.js → chunk-BABDQOWA.js} +5 -5
  19. package/dist/assets/cesium/Workers/{chunk-IBRIWOCM.js → chunk-BQHHGIFB.js} +13 -13
  20. package/dist/assets/cesium/Workers/{chunk-LLAF3CPH.js → chunk-C33B4KHN.js} +2 -2
  21. package/dist/assets/cesium/Workers/{chunk-JXVLNVXC.js → chunk-CMCR2ZK4.js} +7 -7
  22. package/dist/assets/cesium/Workers/{chunk-3HQMMUPU.js → chunk-EGGJIATZ.js} +1 -1
  23. package/dist/assets/cesium/Workers/{chunk-RJM36CNY.js → chunk-EWS5LXAB.js} +6 -6
  24. package/dist/assets/cesium/Workers/{chunk-OPP2SKMA.js → chunk-FDXPBTSX.js} +12 -12
  25. package/dist/assets/cesium/Workers/{chunk-QN6TBED4.js → chunk-FIFQP4YX.js} +11 -11
  26. package/dist/assets/cesium/Workers/{chunk-JISPSEF3.js → chunk-HOGDZ2EB.js} +4 -4
  27. package/dist/assets/cesium/Workers/{chunk-2PTKXHJB.js → chunk-I4NB77NH.js} +10 -10
  28. package/dist/assets/cesium/Workers/{chunk-QQOZO7KO.js → chunk-JX4A2BCF.js} +7 -7
  29. package/dist/assets/cesium/Workers/{chunk-XIUSRWL6.js → chunk-K6PDUSH6.js} +5 -5
  30. package/dist/assets/cesium/Workers/{chunk-KHZNBFOH.js → chunk-KFHZFU5O.js} +7 -7
  31. package/dist/assets/cesium/Workers/{chunk-U5HSOKPQ.js → chunk-KYGXRFA6.js} +1 -1
  32. package/dist/assets/cesium/Workers/{chunk-56EDBCGT.js → chunk-LNWNAP2C.js} +10 -10
  33. package/dist/assets/cesium/Workers/{chunk-YCDZX5LS.js → chunk-LWN2B3KW.js} +1 -1
  34. package/dist/assets/cesium/Workers/{chunk-TI3TRKIC.js → chunk-LXLABO2L.js} +10 -10
  35. package/dist/assets/cesium/Workers/{chunk-C3EQ27WF.js → chunk-MB6B2UUL.js} +6 -6
  36. package/dist/assets/cesium/Workers/{chunk-57H6I3SV.js → chunk-MZSRINXK.js} +5 -5
  37. package/dist/assets/cesium/Workers/{chunk-ZVUUPJEM.js → chunk-NBI3GZSK.js} +17 -17
  38. package/dist/assets/cesium/Workers/{chunk-O72GZTSE.js → chunk-NUAXNUP5.js} +2 -2
  39. package/dist/assets/cesium/Workers/{chunk-M24KHENR.js → chunk-PNZR4RLL.js} +2 -2
  40. package/dist/assets/cesium/Workers/{chunk-HJMNR3GC.js → chunk-Q4K22DSJ.js} +11 -11
  41. package/dist/assets/cesium/Workers/{chunk-2LOWCAMW.js → chunk-Q4OS4EFN.js} +13 -13
  42. package/dist/assets/cesium/Workers/{chunk-TK5IIG2F.js → chunk-QLIMO7TQ.js} +4 -4
  43. package/dist/assets/cesium/Workers/{chunk-EDLRS3AW.js → chunk-RQ4F6YFU.js} +6 -6
  44. package/dist/assets/cesium/Workers/{chunk-JSQJDZI4.js → chunk-SB67D3JL.js} +6 -6
  45. package/dist/assets/cesium/Workers/{chunk-RTJKHZWU.js → chunk-SS6WRJ5J.js} +6 -6
  46. package/dist/assets/cesium/Workers/{chunk-L5GODJAR.js → chunk-TC4NTWIJ.js} +14 -14
  47. package/dist/assets/cesium/Workers/{chunk-IZJ42N4W.js → chunk-TKNA6WSZ.js} +17 -17
  48. package/dist/assets/cesium/Workers/{chunk-HP5XLODI.js → chunk-VQYEP77L.js} +6 -6
  49. package/dist/assets/cesium/Workers/{chunk-YSIJTJ7N.js → chunk-WKS5H3VW.js} +5 -5
  50. package/dist/assets/cesium/Workers/{chunk-XWOUPGUF.js → chunk-WPGX7DEA.js} +1 -1
  51. package/dist/assets/cesium/Workers/{chunk-6SQMLVGV.js → chunk-X3EPFVG3.js} +7 -7
  52. package/dist/assets/cesium/Workers/{chunk-NDDI2LWR.js → chunk-XH7MSR3A.js} +6 -6
  53. package/dist/assets/cesium/Workers/{chunk-FFLMY4TE.js → chunk-YDEBBUNQ.js} +5 -5
  54. package/dist/assets/cesium/Workers/{chunk-YK3QIKY7.js → chunk-YSVI7YNN.js} +9 -9
  55. package/dist/assets/cesium/Workers/{chunk-BVKITG4N.js → chunk-YVAS5WPH.js} +7 -7
  56. package/dist/assets/cesium/Workers/{chunk-X7IQYYHF.js → chunk-Z4QVAZM6.js} +2 -2
  57. package/dist/assets/cesium/Workers/{chunk-LJ2JQHJT.js → chunk-ZXOK77EW.js} +7 -7
  58. package/dist/assets/cesium/Workers/combineGeometry.js +22 -22
  59. package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -16
  60. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -14
  61. package/dist/assets/cesium/Workers/createCircleGeometry.js +24 -24
  62. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -17
  63. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +31 -31
  64. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
  65. package/dist/assets/cesium/Workers/createCorridorGeometry.js +27 -27
  66. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +26 -26
  67. package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -18
  68. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +16 -16
  69. package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -24
  70. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -17
  71. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -17
  72. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -16
  73. package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -16
  74. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +16 -16
  75. package/dist/assets/cesium/Workers/createGeometry.js +22 -22
  76. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +20 -20
  77. package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -14
  78. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -13
  79. package/dist/assets/cesium/Workers/createPolygonGeometry.js +30 -30
  80. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +28 -28
  81. package/dist/assets/cesium/Workers/createPolylineGeometry.js +23 -23
  82. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +29 -29
  83. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
  84. package/dist/assets/cesium/Workers/createRectangleGeometry.js +25 -25
  85. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +18 -18
  86. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +21 -21
  87. package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -17
  88. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -16
  89. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
  90. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +13 -13
  91. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -22
  92. package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
  93. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -20
  94. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +13 -13
  95. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -20
  96. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +20 -20
  97. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -17
  98. package/dist/assets/cesium/Workers/createWallGeometry.js +22 -22
  99. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +21 -21
  100. package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
  101. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  102. package/dist/assets/cesium/Workers/decodeI3S.js +10 -10
  103. package/dist/assets/cesium/Workers/transcodeKTX2.js +7 -7
  104. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  105. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +20 -20
  106. package/dist/assets/{cesium-ac6c193a.js → cesium-7d4ab914.js} +44609 -44606
  107. package/dist/assets/cesium.js +1 -1
  108. package/dist/assets/core-deeb2b8d.js +34569 -0
  109. package/dist/assets/core-workers/panoramaImageWorker.js +1 -0
  110. package/dist/assets/core-workers/panoramaImageWorker.js-f8148bc6.js +34 -0
  111. package/dist/assets/core.js +1 -1
  112. package/dist/assets/{ol-94c57f2e.js → ol-8db5c824.js} +1 -1
  113. package/dist/assets/ol.js +1 -1
  114. package/dist/assets/start.js +3 -1
  115. package/dist/assets/ui-62439099.css +1 -0
  116. package/dist/assets/{ui-4f308e45.js → ui-62439099.js} +9581 -8853
  117. package/dist/assets/ui.js +1 -1
  118. package/dist/assets/vue.js +1 -1
  119. package/dist/assets/{vuetify-99195777.js → vuetify-439ba6d5.js} +1 -1
  120. package/dist/assets/vuetify.js +1 -1
  121. package/index.d.ts +14 -4
  122. package/index.js +8 -6
  123. package/package.json +5 -4
  124. package/plugins/@vcmap-show-case/panorama-inspector/package.json +10 -0
  125. package/plugins/@vcmap-show-case/panorama-inspector/src/PanoramaDebugInfo.vue +86 -0
  126. package/plugins/@vcmap-show-case/panorama-inspector/src/PanoramaDebugTools.vue +259 -0
  127. package/plugins/@vcmap-show-case/panorama-inspector/src/PanoramaInspector.vue +31 -0
  128. package/plugins/@vcmap-show-case/panorama-inspector/src/api.js +161 -0
  129. package/plugins/@vcmap-show-case/panorama-inspector/src/index.js +57 -0
  130. package/plugins/@vcmap-show-case/panorama-inspector/src/showClickInteraction.js +20 -0
  131. package/plugins/package.json +1 -1
  132. package/src/actions/actionHelper.d.ts +16 -11
  133. package/src/actions/actionHelper.js +190 -87
  134. package/src/actions/flightActions.d.ts +10 -0
  135. package/src/actions/flightActions.js +109 -13
  136. package/src/application/VcsApp.vue +11 -0
  137. package/src/application/VcsApp.vue.d.ts +4 -0
  138. package/src/application/VcsContainer.vue.d.ts +4 -0
  139. package/src/application/VcsMainMap.vue +40 -2
  140. package/src/application/VcsMainMap.vue.d.ts +4 -0
  141. package/src/application/VcsMap.vue +0 -9
  142. package/src/application/VcsNavbar.vue +2 -1
  143. package/src/callback/activateMapCallback.d.ts +30 -0
  144. package/src/callback/activateMapCallback.js +63 -0
  145. package/src/callback/activateOverviewMapCallback.d.ts +7 -0
  146. package/src/callback/activateOverviewMapCallback.js +26 -0
  147. package/src/callback/deactivateOverviewMapCallback.d.ts +7 -0
  148. package/src/callback/deactivateOverviewMapCallback.js +20 -0
  149. package/src/components/flight/VcsFlightAnchorsComponent.vue +1 -0
  150. package/src/components/flight/VcsFlightPlayer.vue +31 -17
  151. package/src/components/flight/VcsFlightPlayer.vue.d.ts +1 -0
  152. package/src/components/lists/VcsGroupedList.vue +10 -2
  153. package/src/components/lists/VcsTreeNode.vue +3 -0
  154. package/src/components/plugins/VcsLoadingOverlay.vue +138 -0
  155. package/src/components/plugins/VcsLoadingOverlay.vue.d.ts +2 -0
  156. package/src/components/plugins/VcsWorkspaceWrapper.vue +104 -0
  157. package/src/components/plugins/VcsWorkspaceWrapper.vue.d.ts +82 -0
  158. package/src/components/section/VcsExpansionPanel.vue +13 -3
  159. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +20 -1
  160. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +11 -0
  161. package/src/components/vector-properties/VcsFeatureInputEditor.vue +166 -0
  162. package/src/components/vector-properties/VcsFeatureInputEditor.vue.d.ts +17 -0
  163. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +1 -1
  164. package/src/contentTree/LayerSwap.vue +15 -6
  165. package/src/contentTree/contentTreeCollection.js +2 -2
  166. package/src/contentTree/contentTreeItem.d.ts +2 -2
  167. package/src/contentTree/wmsGroupContentTreeItem.js +10 -3
  168. package/src/featureInfo/featureInfo.js +6 -25
  169. package/src/featureInfo/iframeWmsFeatureInfoView.d.ts +10 -0
  170. package/src/featureInfo/iframeWmsFeatureInfoView.js +42 -0
  171. package/src/i18n/de.d.ts +25 -7
  172. package/src/i18n/de.js +14 -0
  173. package/src/i18n/en.d.ts +25 -7
  174. package/src/i18n/en.js +14 -0
  175. package/src/legend/VcsLegend.vue +5 -1
  176. package/src/navigation/MapNavigation.vue +82 -45
  177. package/src/navigation/MapNavigation.vue.d.ts +3 -34
  178. package/src/navigation/TiltSlider.vue +10 -2
  179. package/src/navigation/TiltSlider.vue.d.ts +20 -0
  180. package/src/navigation/VcsCompass.vue +3 -1
  181. package/src/navigation/overviewMap.d.ts +23 -8
  182. package/src/navigation/overviewMap.js +82 -60
  183. package/src/search/ResultsComponent.vue +8 -1
  184. package/src/search/SearchComponent.vue +3 -17
  185. package/src/search/SearchComponent.vue.d.ts +1 -2
  186. package/src/search/search.d.ts +13 -0
  187. package/src/search/search.js +21 -1
  188. package/src/uiConfig.d.ts +9 -0
  189. package/src/uiConfig.js +1 -0
  190. package/dist/assets/core-de8e51b5.js +0 -26236
  191. package/dist/assets/ui-4f308e45.css +0 -1
  192. /package/dist/assets/{vue-62303c82.js → vue-1b861f55.js} +0 -0
  193. /package/dist/assets/{vuetify-99195777.css → vuetify-439ba6d5.css} +0 -0
@@ -35,8 +35,13 @@
35
35
  :disabled="movementApiCallsDisabled"
36
36
  />
37
37
  </v-row>
38
- <v-row justify="center" v-if="is3D">
39
- <TiltSlider v-model="tilt" :disabled="movementApiCallsDisabled" />
38
+ <v-row justify="center" v-if="is3D || isPanorama">
39
+ <TiltSlider
40
+ v-model="tilt"
41
+ :disabled="movementApiCallsDisabled"
42
+ :max-tilt="isPanorama ? 89 : undefined"
43
+ :min-tilt="isPanorama ? -89 : undefined"
44
+ />
40
45
  </v-row>
41
46
  <v-row v-if="!hideRotationButton && is3D" justify="center">
42
47
  <OrientationToolsButton
@@ -61,10 +66,10 @@
61
66
  <v-row justify="center">
62
67
  <OrientationToolsButton
63
68
  v-if="showOverviewButton"
64
- :icon="overviewAction.icon"
65
- :tooltip="overviewAction.title"
66
- :color="overviewAction.active ? 'primary' : undefined"
67
- @click.stop="overviewAction.callback($event)"
69
+ icon="$vcsMap"
70
+ tooltip="navigation.overviewMapTooltip"
71
+ :color="overviewMapState ? 'primary' : undefined"
72
+ @click.stop="toggleOverviewMap"
68
73
  />
69
74
  </v-row>
70
75
  </template>
@@ -79,16 +84,13 @@
79
84
  ObliqueViewDirection,
80
85
  startRotation,
81
86
  rotationMapControlSymbol,
87
+ PanoramaMap,
82
88
  } from '@vcmap/core';
83
89
  import { VContainer, VRow } from 'vuetify/components';
84
90
  import { useDisplay } from 'vuetify';
85
91
  import { Math as CesiumMath } from '@vcmap-cesium/engine';
86
- import { createOverviewMapAction } from '../actions/actionHelper.js';
87
92
  import { createLocatorAction } from './locatorHelper.js';
88
- import {
89
- getWindowComponentOptions,
90
- overviewMapLayerSymbol,
91
- } from './overviewMap.js';
93
+ import { overviewMapLayerSymbol } from './overviewMap.js';
92
94
  import VcsCompass from './VcsCompass.vue';
93
95
  import VcsZoomButton from './VcsZoomButton.vue';
94
96
  import TiltSlider from './TiltSlider.vue';
@@ -207,6 +209,7 @@
207
209
  THREE_D: '3d',
208
210
  TWO_D: '2d',
209
211
  OBLIQUE: 'oblique',
212
+ PANORAMA: 'panorama',
210
213
  };
211
214
 
212
215
  function getViewModeForMap(map) {
@@ -214,6 +217,8 @@
214
217
  return OrientationToolsViewMode.OBLIQUE;
215
218
  } else if (map instanceof CesiumMap) {
216
219
  return OrientationToolsViewMode.THREE_D;
220
+ } else if (map instanceof PanoramaMap) {
221
+ return OrientationToolsViewMode.PANORAMA;
217
222
  }
218
223
  return OrientationToolsViewMode.TWO_D;
219
224
  }
@@ -225,16 +230,24 @@
225
230
  * @returns {Promise<void>}
226
231
  */
227
232
  async function zoom(map, out = false, zoomFactor = 2) {
228
- const viewpoint = await map.getViewpoint();
229
- if (out) {
230
- viewpoint.distance *= zoomFactor;
233
+ if (map instanceof PanoramaMap) {
234
+ if (out) {
235
+ map.panoramaCameraController.zoomOut();
236
+ } else {
237
+ map.panoramaCameraController.zoomIn();
238
+ }
231
239
  } else {
232
- viewpoint.distance /= zoomFactor;
240
+ const viewpoint = await map.getViewpoint();
241
+ if (out) {
242
+ viewpoint.distance *= zoomFactor;
243
+ } else {
244
+ viewpoint.distance /= zoomFactor;
245
+ }
246
+ viewpoint.animate = true;
247
+ viewpoint.duration = 0.5;
248
+ viewpoint.cameraPosition = null;
249
+ await map.gotoViewpoint(viewpoint);
233
250
  }
234
- viewpoint.animate = true;
235
- viewpoint.duration = 0.5;
236
- viewpoint.cameraPosition = null;
237
- await map.gotoViewpoint(viewpoint);
238
251
  }
239
252
 
240
253
  /**
@@ -314,11 +327,22 @@
314
327
  return headingRef.value;
315
328
  },
316
329
  async set(headingValue) {
317
- const vp = await app.maps.activeMap.getViewpoint();
318
- delete vp.cameraPosition;
319
- vp.heading = headingValue;
320
- vp.animate = true;
321
- app.maps.activeMap.gotoViewpoint(vp);
330
+ if (app.maps.activeMap instanceof PanoramaMap) {
331
+ const { camera } = app.maps.activeMap.getCesiumWidget();
332
+ camera.setView({
333
+ orientation: {
334
+ heading: CesiumMath.toRadians(headingValue),
335
+ pitch: camera.pitch,
336
+ roll: camera.roll,
337
+ },
338
+ });
339
+ } else {
340
+ const vp = await app.maps.activeMap.getViewpoint();
341
+ delete vp.cameraPosition;
342
+ vp.heading = headingValue;
343
+ vp.animate = true;
344
+ app.maps.activeMap.gotoViewpoint(vp);
345
+ }
322
346
  },
323
347
  });
324
348
 
@@ -327,29 +351,33 @@
327
351
  return tiltRef.value;
328
352
  },
329
353
  set(tiltValue) {
330
- const vp = app.maps.activeMap.getViewpointSync(); // XXX make async and debounce
331
- vp.pitch = tiltValue;
332
- app.maps.activeMap.gotoViewpoint(vp);
354
+ if (app.maps.activeMap instanceof PanoramaMap) {
355
+ const { camera } = app.maps.activeMap.getCesiumWidget();
356
+ camera.setView({
357
+ orientation: {
358
+ heading: camera.heading,
359
+ pitch: CesiumMath.toRadians(tiltValue),
360
+ roll: camera.roll,
361
+ },
362
+ });
363
+ } else {
364
+ const vp = app.maps.activeMap.getViewpointSync(); // XXX make async and debounce
365
+ vp.pitch = tiltValue;
366
+ app.maps.activeMap.gotoViewpoint(vp);
367
+ }
333
368
  },
334
369
  });
335
370
 
336
- const { action: overviewAction, destroy: overviewDestroy } =
337
- createOverviewMapAction(
338
- app.overviewMap,
339
- getWindowComponentOptions(),
340
- app.windowManager,
341
- );
342
371
  const showOverviewButton = ref(
343
372
  app.overviewMap.map.layerCollection.size > 0,
344
373
  );
345
-
346
- // Locator
347
- const { action: locatorAction, destroy: destroyLocator } =
348
- createLocatorAction(app);
349
-
350
- const showLocatorButton = computed(() => {
351
- return app.uiConfig.config.showLocator ?? true;
352
- });
374
+ const toggleOverviewMap = async () => {
375
+ if (app.overviewMap.currentState.value) {
376
+ app.overviewMap.deactivate();
377
+ } else {
378
+ await app.overviewMap.activate();
379
+ }
380
+ };
353
381
 
354
382
  const overviewMapListeners = [
355
383
  app.overviewMap.map.layerCollection.added.addEventListener(() => {
@@ -368,6 +396,14 @@
368
396
  }),
369
397
  ];
370
398
 
399
+ // Locator
400
+ const { action: locatorAction, destroy: destroyLocator } =
401
+ createLocatorAction(app);
402
+
403
+ const showLocatorButton = computed(() => {
404
+ return app.uiConfig.config.showLocator ?? true;
405
+ });
406
+
371
407
  const movementApiCallsDisabled = ref(
372
408
  !!app.maps.activeMap?.movementApiCallsDisabled,
373
409
  );
@@ -390,9 +426,6 @@
390
426
  });
391
427
 
392
428
  onUnmounted(() => {
393
- if (overviewDestroy) {
394
- overviewDestroy();
395
- }
396
429
  if (destroyLocator) {
397
430
  destroyLocator();
398
431
  }
@@ -420,13 +453,15 @@
420
453
  isOblique: computed(
421
454
  () => viewMode.value === OrientationToolsViewMode.OBLIQUE,
422
455
  ),
456
+ isPanorama: computed(
457
+ () => viewMode.value === OrientationToolsViewMode.PANORAMA,
458
+ ),
423
459
  zoomIn() {
424
460
  zoom(app.maps.activeMap);
425
461
  }, // debounce?
426
462
  zoomOut() {
427
463
  zoom(app.maps.activeMap, true);
428
464
  },
429
- overviewAction: reactive(overviewAction),
430
465
  locatorAction: reactive(locatorAction),
431
466
  showOverviewButton,
432
467
  showLocatorButton,
@@ -435,6 +470,8 @@
435
470
  rotationAction,
436
471
  movementApiCallsDisabled,
437
472
  mobileLandscape,
473
+ overviewMapState: app.overviewMap.currentState,
474
+ toggleOverviewMap,
438
475
  };
439
476
  },
440
477
  };
@@ -7,42 +7,9 @@ declare const _default: import("vue").DefineComponent<{}, {
7
7
  tilt: import("vue").WritableComputedRef<number>;
8
8
  is3D: import("vue").ComputedRef<boolean>;
9
9
  isOblique: import("vue").ComputedRef<boolean>;
10
+ isPanorama: import("vue").ComputedRef<boolean>;
10
11
  zoomIn(): void;
11
12
  zoomOut(): void;
12
- overviewAction: {
13
- /**
14
- * - reactive and translatable name rendered in overflow
15
- */
16
- name: string;
17
- /**
18
- * - reactive and translatable title rendered as tooltip
19
- */
20
- title?: string | undefined;
21
- /**
22
- * - icon rendered on the button. If no icon provided, item is rendered in overflow
23
- */
24
- icon?: string | undefined;
25
- /**
26
- * - callback function is triggered when the button is clicked
27
- */
28
- callback: import("../actions/actionHelper.js", { with: { "resolution-mode": "import" } }).ActionCallback;
29
- /**
30
- * - optional state of button. If active, button is rendered in primary color
31
- */
32
- active?: boolean | undefined;
33
- /**
34
- * - optional hasUpdate of button. If true, a yellow notification is rendered next to the button
35
- */
36
- hasUpdate?: boolean | undefined;
37
- /**
38
- * - optional background state. If active and background, button is rendered in primary color outlined
39
- */
40
- background?: boolean | undefined;
41
- /**
42
- * - optional flag to indicate that the action is disabled
43
- */
44
- disabled?: boolean | undefined;
45
- };
46
13
  locatorAction: {
47
14
  /**
48
15
  * - reactive and translatable name rendered in overflow
@@ -84,5 +51,7 @@ declare const _default: import("vue").DefineComponent<{}, {
84
51
  rotationAction: any;
85
52
  movementApiCallsDisabled: import("vue").Ref<boolean>;
86
53
  mobileLandscape: import("vue").ComputedRef<boolean>;
54
+ overviewMapState: import("vue").ComputedRef<boolean>;
55
+ toggleOverviewMap: () => Promise<void>;
87
56
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
88
57
  export default _default;
@@ -12,8 +12,8 @@
12
12
  :track-color="'base-lighten-3'"
13
13
  thumb-color="base-darken-4"
14
14
  track-fill-color="'base-darken-4'"
15
- :max="0"
16
- :min="-90"
15
+ :max="maxTilt"
16
+ :min="minTilt"
17
17
  direction="vertical"
18
18
  hide-details
19
19
  class="vcs-tilt-slider"
@@ -51,6 +51,14 @@
51
51
  required: false,
52
52
  default: false,
53
53
  },
54
+ minTilt: {
55
+ type: Number,
56
+ default: -90,
57
+ },
58
+ maxTilt: {
59
+ type: Number,
60
+ default: 0,
61
+ },
54
62
  },
55
63
  setup(props, { emit }) {
56
64
  const fontSize = useFontSize();
@@ -8,6 +8,14 @@ declare const _default: import("vue").DefineComponent<{
8
8
  required: false;
9
9
  default: boolean;
10
10
  };
11
+ minTilt: {
12
+ type: NumberConstructor;
13
+ default: number;
14
+ };
15
+ maxTilt: {
16
+ type: NumberConstructor;
17
+ default: number;
18
+ };
11
19
  }, {
12
20
  localValue: import("vue").Ref<any>;
13
21
  tickSize: import("vue").ComputedRef<number>;
@@ -15,6 +23,8 @@ declare const _default: import("vue").DefineComponent<{
15
23
  props: import("@vue/shared").LooseRequired<{
16
24
  readonly disabled: boolean;
17
25
  readonly modelValue: number;
26
+ readonly minTilt: number;
27
+ readonly maxTilt: number;
18
28
  } & {}>;
19
29
  minWidth: import("vue").ComputedRef<number>;
20
30
  minHeight: import("vue").ComputedRef<number>;
@@ -28,7 +38,17 @@ declare const _default: import("vue").DefineComponent<{
28
38
  required: false;
29
39
  default: boolean;
30
40
  };
41
+ minTilt: {
42
+ type: NumberConstructor;
43
+ default: number;
44
+ };
45
+ maxTilt: {
46
+ type: NumberConstructor;
47
+ default: number;
48
+ };
31
49
  }>>, {
32
50
  disabled: boolean;
51
+ minTilt: number;
52
+ maxTilt: number;
33
53
  }, {}>;
34
54
  export default _default;
@@ -16,7 +16,9 @@
16
16
  @click="!xs && $event.stopPropagation()"
17
17
  @direction-click="$emit('update:modelValue', $event)"
18
18
  :can-emit="
19
- !disabled && !xs && (viewMode === '3d' || viewMode === 'oblique')
19
+ !disabled &&
20
+ !xs &&
21
+ (viewMode === '3d' || viewMode === 'oblique' || viewMode === 'panorama')
20
22
  "
21
23
  :hide-ticks="viewMode === 'oblique'"
22
24
  />
@@ -1,10 +1,11 @@
1
- /**
2
- * @returns {import("../manager/window/windowManager.js").WindowComponentOptions}
3
- */
4
- export function getWindowComponentOptions(): import("../manager/window/windowManager.js").WindowComponentOptions;
5
- export const overviewMapWindowId: "overview-map-container";
1
+ export const overviewMapContainerId: "overview-map-container";
6
2
  export const overviewMapLayerSymbol: unique symbol;
7
3
  export default OverviewMap;
4
+ /**
5
+ * panorama behavior
6
+ * 1. in panorama, only allow clicking on a footprint
7
+ * 2. in other maps, if you click directly on a panorama footprint, switch maps and go to image (same as clicking on the footprint in the main map)
8
+ */
8
9
  /**
9
10
  * A 2D OverviewMap for cesium, openlayers and oblique map.
10
11
  * Baselayers are added to the OverviewMap using `showInOverviewMap` flag within the properties bag of a layer configuration.
@@ -21,7 +22,7 @@ declare class OverviewMap {
21
22
  */
22
23
  private _app;
23
24
  /**
24
- * @type {boolean}
25
+ * @type {import("vue").Ref<boolean>}
25
26
  * @private
26
27
  */
27
28
  private _active;
@@ -86,6 +87,11 @@ declare class OverviewMap {
86
87
  * @type {number}
87
88
  */
88
89
  minimumHeight: number;
90
+ /**
91
+ * Handles image selection on panorama features
92
+ * @type {import("@vcmap/core").PanoramaImageSelection}
93
+ */
94
+ _panoramaImageSelection: import("@vcmap/core").PanoramaImageSelection;
89
95
  /**
90
96
  * Handles the events from the overview map.
91
97
  * @type {EventHandler}
@@ -118,7 +124,11 @@ declare class OverviewMap {
118
124
  * @private
119
125
  */
120
126
  private _collectionListeners;
121
- _uiConfigWatcher: import("vue").WatchStopHandle;
127
+ _uiConfigWatchers: import("vue").WatchStopHandle[];
128
+ /**
129
+ * @type {import("vue").ComputedRef<boolean>}
130
+ */
131
+ currentState: import("vue").ComputedRef<boolean>;
122
132
  /**
123
133
  * @type {boolean}
124
134
  */
@@ -131,6 +141,10 @@ declare class OverviewMap {
131
141
  * @type {EventHandler|null}
132
142
  */
133
143
  get eventHandler(): EventHandler | null;
144
+ /**
145
+ * @type {import("@vcmap/core").PanoramaImageSelection}
146
+ */
147
+ get panoramaImageSelection(): PanoramaImageSelection;
134
148
  /**
135
149
  * An event which is triggered whenever the overview map is clicked.
136
150
  * Is passed a {@link InteractionEvent} as its only argument
@@ -153,7 +167,7 @@ declare class OverviewMap {
153
167
  */
154
168
  activate(): Promise<void>;
155
169
  /**
156
- * closes window and clears all listeners
170
+ * clears all listeners
157
171
  */
158
172
  deactivate(): void;
159
173
  /**
@@ -206,3 +220,4 @@ declare class OverviewMap {
206
220
  import { VectorStyleItem } from '@vcmap/core';
207
221
  import { OpenlayersMap } from '@vcmap/core';
208
222
  import { EventHandler } from '@vcmap/core';
223
+ import { PanoramaImageSelection } from '@vcmap/core';