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

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 (173) hide show
  1. package/build/build.js +52 -7
  2. package/config/dev.config.json +28 -0
  3. package/config/pano.config.json +420 -0
  4. package/config/projects.config.json +5 -0
  5. package/dist/assets/cesium/Workers/{chunk-P6TRGU3S.js → chunk-2PFJ45KC.js} +2 -2
  6. package/dist/assets/cesium/Workers/{chunk-7ZZ5LMZY.js → chunk-35ALNMG5.js} +15 -15
  7. package/dist/assets/cesium/Workers/{chunk-7YIOHQWH.js → chunk-35EJBV7X.js} +13 -13
  8. package/dist/assets/cesium/Workers/{chunk-EJVGYGLF.js → chunk-3E3OH65K.js} +7 -7
  9. package/dist/assets/cesium/Workers/{chunk-JBSKHTNX.js → chunk-4FHUY275.js} +4 -4
  10. package/dist/assets/cesium/Workers/{chunk-Z2QP3CXW.js → chunk-565T3GIE.js} +2 -2
  11. package/dist/assets/cesium/Workers/{chunk-IZGUQO6Q.js → chunk-5LGDCKCZ.js} +13 -13
  12. package/dist/assets/cesium/Workers/{chunk-3IFRSGEY.js → chunk-6JXJYBWN.js} +9 -9
  13. package/dist/assets/cesium/Workers/{chunk-WGDFYAGC.js → chunk-6RAEC3AW.js} +4 -4
  14. package/dist/assets/cesium/Workers/{chunk-44QAAS4P.js → chunk-6Z67VIOY.js} +7 -7
  15. package/dist/assets/cesium/Workers/{chunk-NGZJIN5Z.js → chunk-ADDGROZ6.js} +4 -4
  16. package/dist/assets/cesium/Workers/{chunk-GBT7MJ6X.js → chunk-ASYGMBRG.js} +1 -1
  17. package/dist/assets/cesium/Workers/{chunk-C4WPMOKT.js → chunk-BABDQOWA.js} +5 -5
  18. package/dist/assets/cesium/Workers/{chunk-IBRIWOCM.js → chunk-BQHHGIFB.js} +13 -13
  19. package/dist/assets/cesium/Workers/{chunk-LLAF3CPH.js → chunk-C33B4KHN.js} +2 -2
  20. package/dist/assets/cesium/Workers/{chunk-JXVLNVXC.js → chunk-CMCR2ZK4.js} +7 -7
  21. package/dist/assets/cesium/Workers/{chunk-3HQMMUPU.js → chunk-EGGJIATZ.js} +1 -1
  22. package/dist/assets/cesium/Workers/{chunk-RJM36CNY.js → chunk-EWS5LXAB.js} +6 -6
  23. package/dist/assets/cesium/Workers/{chunk-OPP2SKMA.js → chunk-FDXPBTSX.js} +12 -12
  24. package/dist/assets/cesium/Workers/{chunk-QN6TBED4.js → chunk-FIFQP4YX.js} +11 -11
  25. package/dist/assets/cesium/Workers/{chunk-JISPSEF3.js → chunk-HOGDZ2EB.js} +4 -4
  26. package/dist/assets/cesium/Workers/{chunk-2PTKXHJB.js → chunk-I4NB77NH.js} +10 -10
  27. package/dist/assets/cesium/Workers/{chunk-QQOZO7KO.js → chunk-JX4A2BCF.js} +7 -7
  28. package/dist/assets/cesium/Workers/{chunk-XIUSRWL6.js → chunk-K6PDUSH6.js} +5 -5
  29. package/dist/assets/cesium/Workers/{chunk-KHZNBFOH.js → chunk-KFHZFU5O.js} +7 -7
  30. package/dist/assets/cesium/Workers/{chunk-U5HSOKPQ.js → chunk-KYGXRFA6.js} +1 -1
  31. package/dist/assets/cesium/Workers/{chunk-56EDBCGT.js → chunk-LNWNAP2C.js} +10 -10
  32. package/dist/assets/cesium/Workers/{chunk-YCDZX5LS.js → chunk-LWN2B3KW.js} +1 -1
  33. package/dist/assets/cesium/Workers/{chunk-TI3TRKIC.js → chunk-LXLABO2L.js} +10 -10
  34. package/dist/assets/cesium/Workers/{chunk-C3EQ27WF.js → chunk-MB6B2UUL.js} +6 -6
  35. package/dist/assets/cesium/Workers/{chunk-57H6I3SV.js → chunk-MZSRINXK.js} +5 -5
  36. package/dist/assets/cesium/Workers/{chunk-ZVUUPJEM.js → chunk-NBI3GZSK.js} +17 -17
  37. package/dist/assets/cesium/Workers/{chunk-O72GZTSE.js → chunk-NUAXNUP5.js} +2 -2
  38. package/dist/assets/cesium/Workers/{chunk-M24KHENR.js → chunk-PNZR4RLL.js} +2 -2
  39. package/dist/assets/cesium/Workers/{chunk-HJMNR3GC.js → chunk-Q4K22DSJ.js} +11 -11
  40. package/dist/assets/cesium/Workers/{chunk-2LOWCAMW.js → chunk-Q4OS4EFN.js} +13 -13
  41. package/dist/assets/cesium/Workers/{chunk-TK5IIG2F.js → chunk-QLIMO7TQ.js} +4 -4
  42. package/dist/assets/cesium/Workers/{chunk-EDLRS3AW.js → chunk-RQ4F6YFU.js} +6 -6
  43. package/dist/assets/cesium/Workers/{chunk-JSQJDZI4.js → chunk-SB67D3JL.js} +6 -6
  44. package/dist/assets/cesium/Workers/{chunk-RTJKHZWU.js → chunk-SS6WRJ5J.js} +6 -6
  45. package/dist/assets/cesium/Workers/{chunk-L5GODJAR.js → chunk-TC4NTWIJ.js} +14 -14
  46. package/dist/assets/cesium/Workers/{chunk-IZJ42N4W.js → chunk-TKNA6WSZ.js} +17 -17
  47. package/dist/assets/cesium/Workers/{chunk-HP5XLODI.js → chunk-VQYEP77L.js} +6 -6
  48. package/dist/assets/cesium/Workers/{chunk-YSIJTJ7N.js → chunk-WKS5H3VW.js} +5 -5
  49. package/dist/assets/cesium/Workers/{chunk-XWOUPGUF.js → chunk-WPGX7DEA.js} +1 -1
  50. package/dist/assets/cesium/Workers/{chunk-6SQMLVGV.js → chunk-X3EPFVG3.js} +7 -7
  51. package/dist/assets/cesium/Workers/{chunk-NDDI2LWR.js → chunk-XH7MSR3A.js} +6 -6
  52. package/dist/assets/cesium/Workers/{chunk-FFLMY4TE.js → chunk-YDEBBUNQ.js} +5 -5
  53. package/dist/assets/cesium/Workers/{chunk-YK3QIKY7.js → chunk-YSVI7YNN.js} +9 -9
  54. package/dist/assets/cesium/Workers/{chunk-BVKITG4N.js → chunk-YVAS5WPH.js} +7 -7
  55. package/dist/assets/cesium/Workers/{chunk-X7IQYYHF.js → chunk-Z4QVAZM6.js} +2 -2
  56. package/dist/assets/cesium/Workers/{chunk-LJ2JQHJT.js → chunk-ZXOK77EW.js} +7 -7
  57. package/dist/assets/cesium/Workers/combineGeometry.js +22 -22
  58. package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -16
  59. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -14
  60. package/dist/assets/cesium/Workers/createCircleGeometry.js +24 -24
  61. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -17
  62. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +31 -31
  63. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
  64. package/dist/assets/cesium/Workers/createCorridorGeometry.js +27 -27
  65. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +26 -26
  66. package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -18
  67. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +16 -16
  68. package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -24
  69. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -17
  70. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -17
  71. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -16
  72. package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -16
  73. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +16 -16
  74. package/dist/assets/cesium/Workers/createGeometry.js +22 -22
  75. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +20 -20
  76. package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -14
  77. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -13
  78. package/dist/assets/cesium/Workers/createPolygonGeometry.js +30 -30
  79. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +28 -28
  80. package/dist/assets/cesium/Workers/createPolylineGeometry.js +23 -23
  81. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +29 -29
  82. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
  83. package/dist/assets/cesium/Workers/createRectangleGeometry.js +25 -25
  84. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +18 -18
  85. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +21 -21
  86. package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -17
  87. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -16
  88. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
  89. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +13 -13
  90. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -22
  91. package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
  92. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -20
  93. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +13 -13
  94. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -20
  95. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +20 -20
  96. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -17
  97. package/dist/assets/cesium/Workers/createWallGeometry.js +22 -22
  98. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +21 -21
  99. package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
  100. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +5 -5
  101. package/dist/assets/cesium/Workers/decodeI3S.js +10 -10
  102. package/dist/assets/cesium/Workers/transcodeKTX2.js +7 -7
  103. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  104. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +20 -20
  105. package/dist/assets/{cesium-ac6c193a.js → cesium-8dd00805.js} +44609 -44606
  106. package/dist/assets/cesium.js +1 -1
  107. package/dist/assets/core-6b5c0363.js +34173 -0
  108. package/dist/assets/core-workers/panoramaImageWorker.js +1 -0
  109. package/dist/assets/core-workers/panoramaImageWorker.js-0ce7d2f3.js +34 -0
  110. package/dist/assets/core.js +1 -1
  111. package/dist/assets/ol.js +1 -1
  112. package/dist/assets/start.js +3 -1
  113. package/dist/assets/ui-aadb7707.css +1 -0
  114. package/dist/assets/{ui-4f308e45.js → ui-aadb7707.js} +7917 -7606
  115. package/dist/assets/ui.js +1 -1
  116. package/dist/assets/vue.js +1 -1
  117. package/dist/assets/{vuetify-99195777.js → vuetify-533fb61b.js} +1 -1
  118. package/dist/assets/vuetify.js +1 -1
  119. package/index.d.ts +8 -0
  120. package/index.js +4 -0
  121. package/package.json +4 -4
  122. package/plugins/@vcmap-show-case/panorama-inspector/package.json +10 -0
  123. package/plugins/@vcmap-show-case/panorama-inspector/src/PanoramaDebugInfo.vue +86 -0
  124. package/plugins/@vcmap-show-case/panorama-inspector/src/PanoramaDebugTools.vue +259 -0
  125. package/plugins/@vcmap-show-case/panorama-inspector/src/PanoramaInspector.vue +31 -0
  126. package/plugins/@vcmap-show-case/panorama-inspector/src/api.js +161 -0
  127. package/plugins/@vcmap-show-case/panorama-inspector/src/index.js +57 -0
  128. package/plugins/@vcmap-show-case/panorama-inspector/src/showClickInteraction.js +20 -0
  129. package/src/actions/actionHelper.js +138 -26
  130. package/src/application/VcsApp.vue +11 -0
  131. package/src/application/VcsApp.vue.d.ts +4 -0
  132. package/src/application/VcsContainer.vue.d.ts +4 -0
  133. package/src/application/VcsNavbar.vue +2 -1
  134. package/src/callback/activateMapCallback.d.ts +30 -0
  135. package/src/callback/activateMapCallback.js +63 -0
  136. package/src/callback/activateOverviewMapCallback.d.ts +7 -0
  137. package/src/callback/activateOverviewMapCallback.js +26 -0
  138. package/src/callback/deactivateOverviewMapCallback.d.ts +7 -0
  139. package/src/callback/deactivateOverviewMapCallback.js +20 -0
  140. package/src/components/lists/VcsGroupedList.vue +10 -2
  141. package/src/components/lists/VcsTreeNode.vue +3 -0
  142. package/src/components/plugins/AbstractWorkspaceItemCreator.vue +104 -0
  143. package/src/components/plugins/AbstractWorkspaceItemCreator.vue.d.ts +82 -0
  144. package/src/components/section/VcsExpansionPanel.vue +13 -3
  145. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +1 -1
  146. package/src/contentTree/LayerSwap.vue +15 -6
  147. package/src/featureInfo/featureInfo.js +6 -25
  148. package/src/featureInfo/iframeWmsFeatureInfoView.d.ts +10 -0
  149. package/src/featureInfo/iframeWmsFeatureInfoView.js +42 -0
  150. package/src/i18n/de.d.ts +4 -0
  151. package/src/i18n/de.js +3 -0
  152. package/src/i18n/en.d.ts +4 -0
  153. package/src/i18n/en.js +3 -0
  154. package/src/legend/VcsLegend.vue +5 -1
  155. package/src/navigation/MapNavigation.vue +60 -18
  156. package/src/navigation/MapNavigation.vue.d.ts +1 -0
  157. package/src/navigation/TiltSlider.vue +10 -2
  158. package/src/navigation/TiltSlider.vue.d.ts +20 -0
  159. package/src/navigation/VcsCompass.vue +3 -1
  160. package/src/navigation/overviewMap.d.ts +5 -0
  161. package/src/navigation/overviewMap.js +17 -0
  162. package/src/search/ResultsComponent.vue +8 -1
  163. package/src/search/SearchComponent.vue +3 -17
  164. package/src/search/SearchComponent.vue.d.ts +1 -2
  165. package/src/search/search.d.ts +13 -0
  166. package/src/search/search.js +21 -1
  167. package/src/uiConfig.d.ts +9 -0
  168. package/src/uiConfig.js +1 -0
  169. package/dist/assets/core-de8e51b5.js +0 -26236
  170. package/dist/assets/ui-4f308e45.css +0 -1
  171. /package/dist/assets/{ol-94c57f2e.js → ol-f58f403b.js} +0 -0
  172. /package/dist/assets/{vue-62303c82.js → vue-d7691a29.js} +0 -0
  173. /package/dist/assets/{vuetify-99195777.css → vuetify-533fb61b.css} +0 -0
package/dist/assets/ui.js CHANGED
@@ -1 +1 @@
1
- export * from "./ui-4f308e45.js";
1
+ export * from "./ui-aadb7707.js";
@@ -1 +1 @@
1
- export * from "./vue-62303c82.js";
1
+ export * from "./vue-d7691a29.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-99195777.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-62303c82.js";
13
+ } await loadCss('./assets/vuetify-533fb61b.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-d7691a29.js";
14
14
  function rt(e, n) {
15
15
  let t;
16
16
  function a() {
@@ -1 +1 @@
1
- export * from "./vuetify-99195777.js";
1
+ export * from "./vuetify-533fb61b.js";
package/index.d.ts CHANGED
@@ -31,6 +31,12 @@ export { default as ToggleNavbarButtonCallback } from "./src/callback/toggleNavb
31
31
  export type * from "./src/callback/toggleNavbarButtonCallback.d.ts";
32
32
  export { default as ToggleToolbarButtonCallback } from "./src/callback/toggleToolbarButtonCallback.js";
33
33
  export type * from "./src/callback/toggleToolbarButtonCallback.d.ts";
34
+ export { default as ActivateMapCallback } from "./src/callback/activateMapCallback.js";
35
+ export type * from "./src/callback/activateMapCallback.d.ts";
36
+ export { default as ActivateOverviewMapCallback } from "./src/callback/activateOverviewMapCallback.js";
37
+ export type * from "./src/callback/activateOverviewMapCallback.d.ts";
38
+ export { default as DeactivateOverviewMapCallback } from "./src/callback/deactivateOverviewMapCallback.js";
39
+ export type * from "./src/callback/deactivateOverviewMapCallback.d.ts";
34
40
  export { default as VcsNavbar } from "./src/application/VcsNavbar.vue";
35
41
  export type * from "./src/application/VcsNavbar.vue.d.ts";
36
42
  export { default as VcsAppWrapper } from "./src/application/VcsAppWrapper.vue";
@@ -255,6 +261,8 @@ export { default as VcsFeatureStyleComponent } from "./src/components/style/VcsF
255
261
  export type * from "./src/components/style/VcsFeatureStyleComponent.vue.d.ts";
256
262
  export { default as AbstractConfigEditor } from "./src/components/plugins/AbstractConfigEditor.vue";
257
263
  export type * from "./src/components/plugins/AbstractConfigEditor.vue.d.ts";
264
+ export { default as AbstractWorkspaceItemCreator } from "./src/components/plugins/AbstractWorkspaceItemCreator.vue";
265
+ export type * from "./src/components/plugins/AbstractWorkspaceItemCreator.vue.d.ts";
258
266
  export { default as VcsFileDrop } from "./src/components/import/VcsFileDrop.vue";
259
267
  export type * from "./src/components/import/VcsFileDrop.vue.d.ts";
260
268
  export { default as VcsImportComponent } from "./src/components/import/VcsImportComponent.vue";
package/index.js CHANGED
@@ -66,6 +66,9 @@ export { default as OpenSplashScreenCallback } from './src/callback/openSplashSc
66
66
  export { default as CloseSplashScreenCallback } from './src/callback/closeSplashScreenCallback.js';
67
67
  export { default as ToggleNavbarButtonCallback } from './src/callback/toggleNavbarButtonCallback.js';
68
68
  export { default as ToggleToolbarButtonCallback } from './src/callback/toggleToolbarButtonCallback.js';
69
+ export { default as ActivateMapCallback } from './src/callback/activateMapCallback.js';
70
+ export { default as ActivateOverviewMapCallback } from './src/callback/activateOverviewMapCallback.js';
71
+ export { default as DeactivateOverviewMapCallback } from './src/callback/deactivateOverviewMapCallback.js';
69
72
  export { default as VcsNavbar } from './src/application/VcsNavbar.vue';
70
73
  export {
71
74
  default as VcsApp,
@@ -358,6 +361,7 @@ export { default as VcsFeatureTransforms } from './src/components/vector-propert
358
361
  export { default as VcsSnapTo } from './src/components/vector-properties/VcsSnapTo.vue';
359
362
  export { default as VcsFeatureStyleComponent } from './src/components/style/VcsFeatureStyleComponent.vue';
360
363
  export { default as AbstractConfigEditor } from './src/components/plugins/AbstractConfigEditor.vue';
364
+ export { default as AbstractWorkspaceItemCreator } from './src/components/plugins/AbstractWorkspaceItemCreator.vue';
361
365
  export { default as VcsFileDrop } from './src/components/import/VcsFileDrop.vue';
362
366
  export { default as VcsImportComponent } from './src/components/import/VcsImportComponent.vue';
363
367
  export { default as VcsExpansionPanel } from './src/components/section/VcsExpansionPanel.vue';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vcmap/ui",
3
- "version": "6.2.0-rc.1",
3
+ "version": "6.2.0-rc.2",
4
4
  "author": "Virtual City Systems",
5
5
  "license": "MIT",
6
6
  "scripts": {
@@ -45,7 +45,7 @@
45
45
  ],
46
46
  "dependencies": {
47
47
  "@intlify/core-base": "^9.13.1",
48
- "@vcsuite/check": "^2.1.0",
48
+ "@vcsuite/check": "^3.0.0",
49
49
  "@vcsuite/logger": "^1.0.1",
50
50
  "@vcsuite/parsers": "^2.0.1",
51
51
  "dompurify": "^3.2.4",
@@ -56,8 +56,8 @@
56
56
  "vue-i18n": "^9.13.1"
57
57
  },
58
58
  "peerDependencies": {
59
- "@vcmap-cesium/engine": "^11.0.2",
60
- "@vcmap/core": "^6.1.6",
59
+ "@vcmap-cesium/engine": "^11.0.3",
60
+ "@vcmap/core": "6.2.0-rc.1",
61
61
  "ol": "^10.4.0",
62
62
  "vue": "~3.4.38",
63
63
  "vuetify": "~3.7.14"
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "@vcmap-show-case/panorama-inspector",
3
+ "version": "1.0.0",
4
+ "main": "src/index.js",
5
+ "keywords": [],
6
+ "author": "",
7
+ "license": "MIT",
8
+ "description": "",
9
+ "mapVersion": "^6.2"
10
+ }
@@ -0,0 +1,86 @@
1
+ <script setup>
2
+ import { inject, shallowRef, onUnmounted } from 'vue';
3
+ import {
4
+ VcsCheckbox,
5
+ VcsFormSection,
6
+ VcsTextField,
7
+ VcsLabel,
8
+ } from '@vcmap/ui';
9
+ import { VContainer, VRow, VCol } from 'vuetify/components';
10
+
11
+ const app = inject('vcsApp');
12
+ /** @type {import("@vcmap/core").PanoramaMap} */
13
+ const map = app.maps.activeMap; // better be a panorama map;
14
+
15
+ const image = shallowRef(map.currentPanoramaImage);
16
+ const listener = map.currentImageChanged.addEventListener((newImage) => {
17
+ image.value = newImage;
18
+ });
19
+
20
+ onUnmounted(() => {
21
+ listener();
22
+ });
23
+ </script>
24
+
25
+ <template>
26
+ <vcs-form-section heading="Information">
27
+ <v-container class="py-0 px-1">
28
+ <v-row no-gutters>
29
+ <v-col>
30
+ <vcs-label>Image Name</vcs-label>
31
+ </v-col>
32
+ <v-col>
33
+ <vcs-text-field
34
+ readonly
35
+ :disabled="true"
36
+ :model-value="image?.name ?? 'No Image'"
37
+ />
38
+ </v-col>
39
+ </v-row>
40
+ <v-row no-gutters>
41
+ <v-col>
42
+ <vcs-label>Levels</vcs-label>
43
+ </v-col>
44
+ <v-col>
45
+ <vcs-text-field
46
+ readonly
47
+ :disabled="true"
48
+ :model-value="`${image?.minLevel ?? '0'} - ${image?.maxLevel ?? '0'}`"
49
+ />
50
+ </v-col>
51
+ </v-row>
52
+ <v-row no-gutters>
53
+ <v-col>
54
+ <vcs-label>Tile Size</vcs-label>
55
+ </v-col>
56
+ <v-col>
57
+ <vcs-text-field
58
+ readonly
59
+ :disabled="true"
60
+ :model-value="image.tileSize.join(' x ') ?? 'No Tile Size'"
61
+ />
62
+ </v-col>
63
+ </v-row>
64
+ <v-row no-gutters>
65
+ <v-col> <vcs-label>Has Intensity</vcs-label> </v-col>
66
+ <v-col>
67
+ <vcs-checkbox
68
+ :disabled="true"
69
+ :model-value="image?.hasIntensity ?? false"
70
+ />
71
+ </v-col>
72
+ </v-row>
73
+ <v-row no-gutters v-if="image">
74
+ <v-col> <vcs-label>Has Depth</vcs-label> </v-col>
75
+ <v-col>
76
+ <vcs-checkbox
77
+ :disabled="true"
78
+ :model-value="image?.hasDepth ?? false"
79
+ />
80
+ </v-col>
81
+ </v-row>
82
+ </v-container>
83
+ </vcs-form-section>
84
+ </template>
85
+
86
+ <style scoped lang="scss"></style>
@@ -0,0 +1,259 @@
1
+ <script setup>
2
+ import { inject, onUnmounted, ref, shallowRef, watch } from 'vue';
3
+ import { VcsCheckbox, VcsFormSection, VcsLabel, VcsSlider } from '@vcmap/ui';
4
+ import { Color } from '@vcmap-cesium/engine';
5
+ import {
6
+ VContainer,
7
+ VRow,
8
+ VCol,
9
+ VColorPicker,
10
+ VMenu,
11
+ VCard,
12
+ } from 'vuetify/components';
13
+ import {
14
+ cesiumColorToColor,
15
+ getStringColor,
16
+ PanoramaOverlayMode,
17
+ } from '@vcmap/core';
18
+ import {
19
+ createMapMarkerAction,
20
+ createOsmGlobeAction,
21
+ setupClickedPrimitive,
22
+ } from './api.js';
23
+ import { name } from '../package.json';
24
+
25
+ const app = inject('vcsApp');
26
+ /** @type {import("@vcmap/core").PanoramaMap} */
27
+ const map = app.maps.activeMap; // better be a panorama map;
28
+ const clickedPrimitive = setupClickedPrimitive(
29
+ map,
30
+ app.plugins.getByKey(name).clickedInteraction,
31
+ );
32
+
33
+ const showClickedPosition = ref(false);
34
+ watch(showClickedPosition, (newShowClickedPosition) => {
35
+ clickedPrimitive.show = newShowClickedPosition;
36
+ });
37
+
38
+ const { scene } = map.getCesiumWidget();
39
+ const enableCesiumInteraction = ref(
40
+ scene.screenSpaceCameraController.enableInputs,
41
+ );
42
+
43
+ watch(enableCesiumInteraction, (newEnableCesiumInteraction) => {
44
+ scene.screenSpaceCameraController.enableInputs = newEnableCesiumInteraction;
45
+
46
+ if (!newEnableCesiumInteraction) {
47
+ scene.camera.setView({
48
+ destination: map.currentPanoramaImage.position,
49
+ orientation: map.currentPanoramaImage.orientation,
50
+ });
51
+ }
52
+ });
53
+
54
+ const { action, destroy } = createOsmGlobeAction(app);
55
+ const { action: hideMarker, destroy: destroyMarker } =
56
+ createMapMarkerAction(app);
57
+
58
+ const suspendTileLoading = ref(map.panoramaView.suspendTileLoading);
59
+ watch(suspendTileLoading, (newSuspendTileLoading) => {
60
+ map.panoramaView.suspendTileLoading = newSuspendTileLoading;
61
+ });
62
+
63
+ const opacity = ref(map.panoramaView.tilePrimitiveCollection.opacity);
64
+ watch(opacity, (newOpacity) => {
65
+ map.panoramaView.tilePrimitiveCollection.opacity = newOpacity;
66
+ });
67
+
68
+ const overlayOpacity = ref(
69
+ map.panoramaView.tilePrimitiveCollection.overlayOpacity,
70
+ );
71
+ watch(overlayOpacity, (newOverlayOpacity) => {
72
+ map.panoramaView.tilePrimitiveCollection.overlayOpacity = newOverlayOpacity;
73
+ });
74
+
75
+ const overlayNaNColor = shallowRef(
76
+ getStringColor(
77
+ cesiumColorToColor(
78
+ map.panoramaView.tilePrimitiveCollection.overlayNaNColor,
79
+ ),
80
+ ),
81
+ );
82
+ watch(overlayNaNColor, (newOverlayNaNColor) => {
83
+ map.panoramaView.tilePrimitiveCollection.overlayNaNColor =
84
+ Color.fromCssColorString(newOverlayNaNColor);
85
+ });
86
+
87
+ const cursorColor = shallowRef(
88
+ getStringColor(
89
+ cesiumColorToColor(map.panoramaView.tilePrimitiveCollection.cursorColor),
90
+ ),
91
+ );
92
+ watch(cursorColor, (newCursorColor) => {
93
+ map.panoramaView.tilePrimitiveCollection.cursorColor =
94
+ Color.fromCssColorString(newCursorColor);
95
+ });
96
+
97
+ const showIntensity = ref(
98
+ map.panoramaView.tilePrimitiveCollection.overlay ===
99
+ PanoramaOverlayMode.Intensity,
100
+ );
101
+ const showDepth = ref(
102
+ map.panoramaView.tilePrimitiveCollection.overlay ===
103
+ PanoramaOverlayMode.Depth,
104
+ );
105
+
106
+ watch(showIntensity, (newShowIntensity) => {
107
+ if (newShowIntensity) {
108
+ showDepth.value = false;
109
+ map.panoramaView.tilePrimitiveCollection.overlay =
110
+ PanoramaOverlayMode.Intensity;
111
+ } else if (!showDepth.value) {
112
+ map.panoramaView.tilePrimitiveCollection.overlay =
113
+ PanoramaOverlayMode.None;
114
+ }
115
+ });
116
+
117
+ watch(showDepth, (newShowDepth) => {
118
+ if (newShowDepth) {
119
+ showIntensity.value = false;
120
+ map.panoramaView.tilePrimitiveCollection.overlay =
121
+ PanoramaOverlayMode.Depth;
122
+ } else if (!showIntensity.value) {
123
+ map.panoramaView.tilePrimitiveCollection.overlay =
124
+ PanoramaOverlayMode.None;
125
+ }
126
+ });
127
+
128
+ const showDebug = ref(map.panoramaView.tilePrimitiveCollection.showDebug);
129
+ watch(showDebug, (newShowDebug) => {
130
+ map.panoramaView.tilePrimitiveCollection.showDebug = newShowDebug;
131
+ });
132
+
133
+ onUnmounted(() => {
134
+ clickedPrimitive.destroy();
135
+ destroy();
136
+ destroyMarker();
137
+ map.panoramaView.tilePrimitiveCollection.opacity = 1;
138
+ });
139
+ </script>
140
+
141
+ <template>
142
+ <vcs-form-section
143
+ heading="Tools"
144
+ expandable
145
+ :header-actions="[action, hideMarker]"
146
+ >
147
+ <v-container class="py-0 px-1">
148
+ <v-row no-gutters>
149
+ <v-col>
150
+ <VcsCheckbox label="Show Debug" v-model="showDebug"></VcsCheckbox>
151
+ </v-col>
152
+ </v-row>
153
+ <v-row no-gutters>
154
+ <v-col>
155
+ <VcsCheckbox
156
+ label="Show Intensity"
157
+ v-model="showIntensity"
158
+ ></VcsCheckbox>
159
+ </v-col>
160
+ </v-row>
161
+ <v-row no-gutters>
162
+ <v-col>
163
+ <VcsCheckbox label="Show Depth" v-model="showDepth"></VcsCheckbox>
164
+ </v-col>
165
+ </v-row>
166
+ <template v-if="showDepth || showIntensity">
167
+ <v-row no-gutters>
168
+ <v-col cols="4">
169
+ <vcs-label>Overlay Opacity</vcs-label>
170
+ </v-col>
171
+ <v-col>
172
+ <vcs-slider
173
+ v-model="overlayOpacity"
174
+ :min="0"
175
+ :max="1"
176
+ :step="0.01"
177
+ />
178
+ </v-col>
179
+ </v-row>
180
+ <v-row no-gutters>
181
+ <v-col>
182
+ <vcs-label>Overlay NaN Color</vcs-label>
183
+ </v-col>
184
+ <v-col>
185
+ <v-menu :close-on-content-click="false">
186
+ <template #activator="{ props }">
187
+ <v-card
188
+ rounded
189
+ height="24px"
190
+ width="32px"
191
+ v-bind="props"
192
+ :style="{ backgroundColor: overlayNaNColor }"
193
+ />
194
+ </template>
195
+ <v-color-picker
196
+ v-model="overlayNaNColor"
197
+ mode="rgba"
198
+ width="100%"
199
+ />
200
+ </v-menu>
201
+ </v-col>
202
+ </v-row>
203
+ </template>
204
+ <v-row no-gutters>
205
+ <v-col>
206
+ <vcs-label>Cursor Color</vcs-label>
207
+ </v-col>
208
+ <v-col>
209
+ <v-menu :close-on-content-click="false">
210
+ <template #activator="{ props }">
211
+ <v-card
212
+ rounded
213
+ height="24px"
214
+ width="32px"
215
+ v-bind="props"
216
+ :style="{ backgroundColor: cursorColor }"
217
+ />
218
+ </template>
219
+ <v-color-picker v-model="cursorColor" mode="rgba" width="100%" />
220
+ </v-menu>
221
+ </v-col>
222
+ </v-row>
223
+ <v-row no-gutters>
224
+ <v-col>
225
+ <VcsCheckbox
226
+ label="Enable Cesium Interaction"
227
+ v-model="enableCesiumInteraction"
228
+ ></VcsCheckbox>
229
+ </v-col>
230
+ </v-row>
231
+ <v-row no-gutters>
232
+ <v-col>
233
+ <VcsCheckbox
234
+ label="Show Clicked"
235
+ v-model="showClickedPosition"
236
+ ></VcsCheckbox>
237
+ </v-col>
238
+ </v-row>
239
+ <v-row no-gutters>
240
+ <v-col>
241
+ <VcsCheckbox
242
+ label="Suspend Tile Loading"
243
+ v-model="suspendTileLoading"
244
+ ></VcsCheckbox>
245
+ </v-col>
246
+ </v-row>
247
+ <v-row no-gutters>
248
+ <v-col cols="4">
249
+ <vcs-label>Opacity</vcs-label>
250
+ </v-col>
251
+ <v-col>
252
+ <vcs-slider v-model="opacity" :min="0" :max="1" :step="0.01" />
253
+ </v-col>
254
+ </v-row>
255
+ </v-container>
256
+ </vcs-form-section>
257
+ </template>
258
+
259
+ <style scoped lang="scss"></style>
@@ -0,0 +1,31 @@
1
+ <script setup>
2
+ import { ref, inject, onUnmounted } from 'vue';
3
+ import { PanoramaMap } from '@vcmap/core';
4
+ import { VSheet, VCard } from 'vuetify/components';
5
+ import PanoramaDebugInfo from './PanoramaDebugInfo.vue';
6
+ import PanoramaDebugTools from './PanoramaDebugTools.vue';
7
+
8
+ /** @type {VcsUiApp} */
9
+ const app = inject('vcsApp');
10
+ const isPanorama = ref(app.maps.activeMap instanceof PanoramaMap);
11
+
12
+ const listener = app.maps.mapActivated.addEventListener((map) => {
13
+ isPanorama.value = map instanceof PanoramaMap;
14
+ });
15
+
16
+ onUnmounted(() => {
17
+ listener();
18
+ });
19
+ </script>
20
+
21
+ <template>
22
+ <v-sheet>
23
+ <template v-if="isPanorama">
24
+ <panorama-debug-info />
25
+ <panorama-debug-tools />
26
+ </template>
27
+ <v-card v-else> Switch to panorama map </v-card>
28
+ </v-sheet>
29
+ </template>
30
+
31
+ <style scoped lang="scss"></style>
@@ -0,0 +1,161 @@
1
+ import {
2
+ GeometryInstance,
3
+ Material,
4
+ MaterialAppearance,
5
+ Matrix4,
6
+ Primitive,
7
+ SphereGeometry,
8
+ Color,
9
+ Cartesian3,
10
+ Globe,
11
+ ImageryLayer as CesiumImageryLayer,
12
+ OpenStreetMapImageryProvider,
13
+ } from '@vcmap-cesium/engine';
14
+ import {
15
+ mercatorToCartesian,
16
+ PanoramaMap,
17
+ PanoramaDatasetLayer,
18
+ } from '@vcmap/core';
19
+ import { reactive, ref, computed, watch } from 'vue';
20
+
21
+ /**
22
+ * @typedef {Object} ClickedPrimitive
23
+ * @property {boolean} show
24
+ * @property {Cartesian3} position
25
+ * @property {() => void} destroy
26
+ */
27
+
28
+ /**
29
+ * @param {import("@vcmap/core").PanoramaMap} map
30
+ * @param {ShowClickInteraction} clickedInteraction
31
+ * @returns {ClickedPrimitive}
32
+ */
33
+ export function setupClickedPrimitive(map, clickedInteraction) {
34
+ const position = new Cartesian3();
35
+ const appearance = new MaterialAppearance({
36
+ flat: true,
37
+ material: Material.fromType('Color', { color: Color.ORANGERED }),
38
+ });
39
+ const primitive = new Primitive({
40
+ geometryInstances: [
41
+ new GeometryInstance({
42
+ geometry: new SphereGeometry({
43
+ radius: 0.2,
44
+ }),
45
+ }),
46
+ ],
47
+ appearance,
48
+ depthFailAppearance: new MaterialAppearance({
49
+ translucent: true,
50
+ material: Material.fromType('Color', {
51
+ color: Color.LIMEGREEN.withAlpha(0.6),
52
+ }),
53
+ }),
54
+ asynchronous: false,
55
+ show: false,
56
+ modelMatrix: Matrix4.IDENTITY,
57
+ });
58
+
59
+ map.getCesiumWidget().scene.primitives.add(primitive);
60
+ clickedInteraction.clicked.addEventListener((event) => {
61
+ mercatorToCartesian(event.position, position);
62
+ primitive.modelMatrix = Matrix4.fromTranslation(position);
63
+ });
64
+
65
+ return {
66
+ get show() {
67
+ return primitive.show;
68
+ },
69
+ set show(value) {
70
+ primitive.show = value;
71
+ },
72
+ get position() {
73
+ return position;
74
+ },
75
+ destroy() {
76
+ map.getCesiumWidget().scene.primitives.remove(primitive);
77
+ },
78
+ };
79
+ }
80
+
81
+ /**
82
+ * @param {import("@vcmap/core").VcsApp} app
83
+ * @returns {{ action: import("@vcmap/ui").Action, destroy: () => void }}
84
+ */
85
+ export function createOsmGlobeAction(app) {
86
+ /** @type {import("@vcmap/core").PanoramaMap} */
87
+ const map = app.maps.getByType(PanoramaMap.className)[0];
88
+
89
+ const action = reactive({
90
+ name: 'OSM Globe',
91
+ icon: 'mdi-earth',
92
+ title: 'Open Street Map Globe',
93
+ active: false,
94
+ callback() {
95
+ if (action.active) {
96
+ map.getCesiumWidget().scene.globe = undefined;
97
+ action.active = false;
98
+ } else {
99
+ const { scene } = map.getCesiumWidget();
100
+ scene.globe = new Globe();
101
+ scene.imageryLayers.add(
102
+ new CesiumImageryLayer(
103
+ new OpenStreetMapImageryProvider({ maximumLevel: 18 }),
104
+ ),
105
+ );
106
+ action.active = true;
107
+ }
108
+ },
109
+ });
110
+
111
+ return {
112
+ action,
113
+ destroy: () => {
114
+ if (map.initialized) {
115
+ map.getCesiumWidget().scene.globe = undefined;
116
+ }
117
+ },
118
+ };
119
+ }
120
+
121
+ /**
122
+ * @param {import("@vcmap/core").VcsApp} app
123
+ * @returns {{action: import("@vcmap/ui").VcsAction, destroy(): void}}
124
+ */
125
+ export function createMapMarkerAction(app) {
126
+ const hideFootprint = ref(false);
127
+
128
+ const hideFootprintWatcher = watch(hideFootprint, () => {
129
+ for (const layer of app.layers) {
130
+ if (layer instanceof PanoramaDatasetLayer) {
131
+ layer.hideInPanorama = hideFootprint.value;
132
+ }
133
+ }
134
+ });
135
+
136
+ const layerAdded = app.layers.added.addEventListener((layer) => {
137
+ if (layer instanceof PanoramaDatasetLayer) {
138
+ layer.hideInPanorama = hideFootprint.value;
139
+ }
140
+ });
141
+
142
+ const action = reactive({
143
+ name: 'Hide Footprint',
144
+ icon: computed(() => {
145
+ return hideFootprint.value ? 'mdi-map-marker-off' : 'mdi-map-marker';
146
+ }),
147
+ title: 'Hide Footprint',
148
+ active: computed(() => hideFootprint.value),
149
+ callback() {
150
+ hideFootprint.value = !hideFootprint.value;
151
+ },
152
+ });
153
+
154
+ return {
155
+ action,
156
+ destroy() {
157
+ hideFootprintWatcher();
158
+ layerAdded();
159
+ },
160
+ };
161
+ }