@vcmap/ui 6.0.0-rc.1 → 6.0.0-rc.10

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 (485) hide show
  1. package/build/build.js +40 -60
  2. package/build/buildHelpers.js +63 -20
  3. package/build/buildTypes.js +9 -5
  4. package/build/bundle.js +1 -1
  5. package/build/info/conf.json +1 -1
  6. package/build/info/publish.js +25 -31
  7. package/build/lintTypes.js +5 -0
  8. package/config/aerowest.config.json +12 -2
  9. package/config/base.config.json +22 -17
  10. package/config/dev.config.json +164 -4
  11. package/config/projects.config.json +3 -1
  12. package/config/solar.config.json +65 -0
  13. package/config/splashscreen.config.json +45 -0
  14. package/config/theming.config.json +68 -0
  15. package/config/www.config.json +39 -23
  16. package/dist/.htaccess +7 -0
  17. package/dist/assets/@mdi/font/README.md +25 -0
  18. package/dist/assets/@mdi/font/css/materialdesignicons.min-680621ca.css +3 -0
  19. package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  20. package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  21. package/dist/assets/cesium/Assets/approximateTerrainHeights.json +1 -1
  22. package/dist/assets/cesium/ThirdParty/Workers/z-worker-pako.js +1 -1
  23. package/dist/assets/cesium/Workers/{chunk-JB2LWGH4.js → chunk-2LOWCAMW.js} +14 -14
  24. package/dist/assets/cesium/Workers/{chunk-Z24VKNDO.js → chunk-2PTKXHJB.js} +12 -12
  25. package/dist/assets/cesium/Workers/{chunk-AHKEZ2OE.js → chunk-3HQMMUPU.js} +1 -1
  26. package/dist/assets/cesium/Workers/{chunk-V3NGATMV.js → chunk-3IFRSGEY.js} +11 -13
  27. package/dist/assets/cesium/Workers/{chunk-66QLLS45.js → chunk-44QAAS4P.js} +11 -9
  28. package/dist/assets/cesium/Workers/{chunk-TFC6TZ3S.js → chunk-56EDBCGT.js} +33 -22
  29. package/dist/assets/cesium/Workers/{chunk-3W63OHNJ.js → chunk-57H6I3SV.js} +5 -5
  30. package/dist/assets/cesium/Workers/{chunk-PFQBCKBM.js → chunk-6SQMLVGV.js} +5206 -3483
  31. package/dist/assets/cesium/Workers/{chunk-OZJDGN5F.js → chunk-7YIOHQWH.js} +16 -16
  32. package/dist/assets/cesium/Workers/{chunk-XTY7B2N6.js → chunk-7ZZ5LMZY.js} +17 -16
  33. package/dist/assets/cesium/Workers/{chunk-HARLBUOL.js → chunk-BVKITG4N.js} +11 -8
  34. package/dist/assets/cesium/Workers/{chunk-AFFLIKOH.js → chunk-C3EQ27WF.js} +7 -7
  35. package/dist/assets/cesium/Workers/{chunk-RW6LU2CJ.js → chunk-C4WPMOKT.js} +6 -5
  36. package/dist/assets/cesium/Workers/{chunk-OYFCF4PL.js → chunk-EDLRS3AW.js} +6 -6
  37. package/dist/assets/cesium/Workers/{chunk-C3SXRKRW.js → chunk-EJVGYGLF.js} +7 -7
  38. package/dist/assets/cesium/Workers/{chunk-PCJWUS4M.js → chunk-FFLMY4TE.js} +830 -14
  39. package/dist/assets/cesium/Workers/{chunk-MPAZH4BF.js → chunk-GBT7MJ6X.js} +1 -1
  40. package/dist/assets/cesium/Workers/{chunk-ZA25DG4Y.js → chunk-HJMNR3GC.js} +11 -11
  41. package/dist/assets/cesium/Workers/{chunk-JS3AW5BK.js → chunk-HP5XLODI.js} +6 -6
  42. package/dist/assets/cesium/Workers/{chunk-34YUDLRP.js → chunk-IBRIWOCM.js} +13 -13
  43. package/dist/assets/cesium/Workers/{chunk-XY7MGBKC.js → chunk-IZGUQO6Q.js} +14 -16
  44. package/dist/assets/cesium/Workers/{chunk-KTJSNCK4.js → chunk-IZJ42N4W.js} +230 -20
  45. package/dist/assets/cesium/Workers/{chunk-QMEMZIJI.js → chunk-JBSKHTNX.js} +4 -4
  46. package/dist/assets/cesium/Workers/{chunk-QIKODV5G.js → chunk-JISPSEF3.js} +4 -4
  47. package/dist/assets/cesium/Workers/{chunk-K36FEYS7.js → chunk-JSQJDZI4.js} +16 -12
  48. package/dist/assets/cesium/Workers/{chunk-X4SU25DT.js → chunk-JXVLNVXC.js} +10 -12
  49. package/dist/assets/cesium/Workers/chunk-KHZNBFOH.js +963 -0
  50. package/dist/assets/cesium/Workers/{chunk-KD4Y7CZL.js → chunk-L5GODJAR.js} +15 -17
  51. package/dist/assets/cesium/Workers/{chunk-O5AMBQ36.js → chunk-LJ2JQHJT.js} +13 -8
  52. package/dist/assets/cesium/Workers/{chunk-ABADGKYE.js → chunk-LLAF3CPH.js} +2 -2
  53. package/dist/assets/cesium/Workers/{chunk-CHHNOC2C.js → chunk-M24KHENR.js} +95 -155
  54. package/dist/assets/cesium/Workers/{chunk-2R5O53JW.js → chunk-NDDI2LWR.js} +6 -6
  55. package/dist/assets/cesium/Workers/{chunk-QT3MPEMI.js → chunk-NGZJIN5Z.js} +4 -4
  56. package/dist/assets/cesium/Workers/{chunk-ZFOBYDGF.js → chunk-O72GZTSE.js} +2 -2
  57. package/dist/assets/cesium/Workers/{chunk-IPA4EACJ.js → chunk-OPP2SKMA.js} +12 -12
  58. package/dist/assets/cesium/Workers/{chunk-4MFFIWUA.js → chunk-P6TRGU3S.js} +2 -2
  59. package/dist/assets/cesium/Workers/{chunk-GLZBE3ML.js → chunk-QN6TBED4.js} +13 -13
  60. package/dist/assets/cesium/Workers/{chunk-MYZB7C4T.js → chunk-QQOZO7KO.js} +10 -10
  61. package/dist/assets/cesium/Workers/{chunk-HQF437NJ.js → chunk-RJM36CNY.js} +6 -6
  62. package/dist/assets/cesium/Workers/{chunk-CTELOFLA.js → chunk-RTJKHZWU.js} +6 -6
  63. package/dist/assets/cesium/Workers/{chunk-J3JY6I2C.js → chunk-TI3TRKIC.js} +425 -489
  64. package/dist/assets/cesium/Workers/{chunk-OAVNIRB4.js → chunk-TK5IIG2F.js} +5 -7
  65. package/dist/assets/cesium/Workers/{chunk-WXTV4ATB.js → chunk-U5HSOKPQ.js} +1 -1
  66. package/dist/assets/cesium/Workers/{chunk-N3JIFFX2.js → chunk-WGDFYAGC.js} +5 -6
  67. package/dist/assets/cesium/Workers/{chunk-EW2GWJYB.js → chunk-X7IQYYHF.js} +2 -2
  68. package/dist/assets/cesium/Workers/{chunk-LLUNNUJV.js → chunk-XIUSRWL6.js} +9 -5
  69. package/dist/assets/cesium/Workers/{chunk-CCFQRR6D.js → chunk-XWOUPGUF.js} +1 -1
  70. package/dist/assets/cesium/Workers/{chunk-6BTKZDRG.js → chunk-YCDZX5LS.js} +3 -5
  71. package/dist/assets/cesium/Workers/{chunk-RP2A7BR5.js → chunk-YK3QIKY7.js} +12 -14
  72. package/dist/assets/cesium/Workers/{chunk-227AJNOA.js → chunk-YSIJTJ7N.js} +5 -5
  73. package/dist/assets/cesium/Workers/{chunk-A4JVFBQ3.js → chunk-Z2QP3CXW.js} +2 -2
  74. package/dist/assets/cesium/Workers/{chunk-VLGOATD6.js → chunk-ZVUUPJEM.js} +22 -22
  75. package/dist/assets/cesium/Workers/combineGeometry.js +22 -23
  76. package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -17
  77. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -15
  78. package/dist/assets/cesium/Workers/createCircleGeometry.js +29 -26
  79. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -18
  80. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +35 -36
  81. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -30
  82. package/dist/assets/cesium/Workers/createCorridorGeometry.js +29 -30
  83. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +27 -28
  84. package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -19
  85. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +17 -19
  86. package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -25
  87. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -18
  88. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -18
  89. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -17
  90. package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -17
  91. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +18 -18
  92. package/dist/assets/cesium/Workers/createGeometry.js +52 -33
  93. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +28 -29
  94. package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -15
  95. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -14
  96. package/dist/assets/cesium/Workers/createPolygonGeometry.js +451 -176
  97. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +29 -30
  98. package/dist/assets/cesium/Workers/createPolylineGeometry.js +24 -25
  99. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +31 -33
  100. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +27 -29
  101. package/dist/assets/cesium/Workers/createRectangleGeometry.js +30 -31
  102. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +21 -24
  103. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +22 -23
  104. package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -18
  105. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -17
  106. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
  107. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +14 -16
  108. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -23
  109. package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
  110. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -21
  111. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +14 -16
  112. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +24 -25
  113. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +29 -26
  114. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +19 -21
  115. package/dist/assets/cesium/Workers/createWallGeometry.js +23 -24
  116. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +22 -23
  117. package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
  118. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +35 -19
  119. package/dist/assets/cesium/Workers/decodeI3S.js +600 -92
  120. package/dist/assets/cesium/Workers/transcodeKTX2.js +58 -93
  121. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  122. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +21 -22
  123. package/dist/assets/{cesium.6b12b4.js → cesium-9ea5ba6e.js} +73315 -68035
  124. package/dist/assets/cesium.js +1 -1
  125. package/dist/assets/{core.074b78.js → core-9b003470.js} +7135 -5664
  126. package/dist/assets/core.js +1 -1
  127. package/dist/assets/{ol.8b2e3a.js → ol-8373d6ac.js} +43066 -44325
  128. package/dist/assets/ol.js +1 -1
  129. package/dist/assets/ui-163311a7.css +1 -0
  130. package/dist/assets/{ui.715986.js → ui-163311a7.js} +14696 -13170
  131. package/dist/assets/ui.js +1 -1
  132. package/dist/assets/vue-0f6dd813.js +6083 -0
  133. package/dist/assets/vue.js +1 -1
  134. package/dist/assets/{vuetify.28d881.css → vuetify-e2c4b35c.css} +2 -2
  135. package/dist/assets/{vuetify.28d881.js → vuetify-e2c4b35c.js} +8699 -8824
  136. package/dist/assets/vuetify.js +1 -1
  137. package/dist/index.html +11 -10
  138. package/index.d.ts +36 -20
  139. package/index.html +5 -5
  140. package/index.js +20 -10
  141. package/lib/olLib.js +90 -23
  142. package/package.json +25 -23
  143. package/plugins/@vcmap-show-case/custom-icons-example/README.md +3 -0
  144. package/plugins/@vcmap-show-case/custom-icons-example/assets/imageExample.png +0 -0
  145. package/plugins/@vcmap-show-case/custom-icons-example/assets/svgExample.svg +1 -0
  146. package/plugins/@vcmap-show-case/custom-icons-example/package.json +5 -0
  147. package/plugins/@vcmap-show-case/custom-icons-example/src/CustomIconsExample.vue +90 -0
  148. package/plugins/@vcmap-show-case/custom-icons-example/src/index.js +45 -0
  149. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
  150. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +73 -34
  151. package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
  152. package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
  153. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +50 -96
  154. package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +14 -11
  155. package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +18 -11
  156. package/plugins/@vcmap-show-case/search-example/src/index.js +1 -0
  157. package/plugins/@vcmap-show-case/search-example/src/searchImpl.js +35 -5
  158. package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
  159. package/plugins/@vcmap-show-case/theming-example/README.md +3 -0
  160. package/plugins/@vcmap-show-case/theming-example/package.json +5 -0
  161. package/plugins/@vcmap-show-case/theming-example/src/ThemingExample.vue +116 -0
  162. package/plugins/@vcmap-show-case/theming-example/src/index.js +53 -0
  163. package/plugins/@vcmap-show-case/toolbox-example/src/index.js +2 -1
  164. package/plugins/@vcmap-show-case/vector-properties-example/src/GeometrySettings.vue +420 -0
  165. package/plugins/@vcmap-show-case/vector-properties-example/src/LayoutHandler.vue +97 -0
  166. package/plugins/@vcmap-show-case/vector-properties-example/src/TerrainSettings.vue +90 -0
  167. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +86 -70
  168. package/plugins/@vcmap-show-case/vector-properties-example/src/index.js +34 -1
  169. package/plugins/@vcmap-show-case/vector-properties-example/src/lib.js +294 -0
  170. package/plugins/@vcmap-show-case/wizard-example/src/WizardExample.vue +40 -54
  171. package/plugins/package.json +23 -21
  172. package/public/assets/@mdi/font/README.md +25 -0
  173. package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
  174. package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  175. package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  176. package/src/actions/StyleSelector.vue +37 -21
  177. package/src/actions/StyleSelector.vue.d.ts +5 -5
  178. package/src/actions/actionHelper.d.ts +4 -11
  179. package/src/actions/actionHelper.js +35 -27
  180. package/src/actions/flightActions.js +44 -23
  181. package/src/actions/listActions.d.ts +5 -12
  182. package/src/actions/listActions.js +6 -22
  183. package/src/actions/stateRefAction.js +2 -2
  184. package/src/application/VcsApp.vue +196 -85
  185. package/src/application/VcsApp.vue.d.ts +309 -4
  186. package/src/application/VcsAppWrapper.vue +1 -1
  187. package/src/application/VcsAttributions.vue +4 -15
  188. package/src/application/VcsAttributionsFooter.vue +28 -18
  189. package/src/application/VcsAttributionsFooter.vue.d.ts +1 -1
  190. package/src/application/VcsContainer.vue +27 -10
  191. package/src/application/VcsContainer.vue.d.ts +248 -0
  192. package/src/application/VcsMainMap.vue +8 -8
  193. package/src/application/VcsMainMap.vue.d.ts +2 -2
  194. package/src/application/VcsMap.vue +1 -0
  195. package/src/application/VcsNavbar.vue +15 -3
  196. package/src/application/VcsNavbar.vue.d.ts +2 -1
  197. package/src/application/VcsPositionDisplay.vue +10 -25
  198. package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
  199. package/src/application/VcsSettings.vue +11 -18
  200. package/src/application/VcsSplashScreen.vue +43 -55
  201. package/src/application/VcsSplashScreen.vue.d.ts +4 -6
  202. package/src/application/VcsTextPage.vue +13 -44
  203. package/src/application/VcsTextPage.vue.d.ts +4 -8
  204. package/src/application/VcsTextPageFooter.vue +26 -41
  205. package/src/application/attributionsHelper.d.ts +20 -22
  206. package/src/application/attributionsHelper.js +14 -10
  207. package/src/callback/vcsCallback.d.ts +2 -2
  208. package/src/callback/vcsCallback.js +1 -1
  209. package/src/components/buttons/VcsActionButtonList.vue +66 -7
  210. package/src/components/buttons/VcsActionButtonList.vue.d.ts +28 -0
  211. package/src/components/buttons/VcsButton.vue +8 -10
  212. package/src/components/buttons/VcsButton.vue.d.ts +4 -4
  213. package/src/components/buttons/VcsFormButton.vue +9 -9
  214. package/src/components/buttons/VcsFormButton.vue.d.ts +3 -3
  215. package/src/components/buttons/VcsToolButton.vue +9 -7
  216. package/src/components/buttons/VcsToolButton.vue.d.ts +5 -5
  217. package/src/components/composables.d.ts +14 -2
  218. package/src/components/composables.js +106 -4
  219. package/src/components/extent/VcsExtent.vue +11 -7
  220. package/src/components/extent/VcsExtent.vue.d.ts +1 -0
  221. package/src/components/extent/VcsExtentEditor.vue +2 -1
  222. package/src/components/flight/VcsFlightAnchorsComponent.vue +64 -36
  223. package/src/components/flight/VcsFlightComponent.vue +25 -30
  224. package/src/components/flight/VcsFlightComponent.vue.d.ts +1 -0
  225. package/src/components/flight/VcsFlightEditor.vue +1 -0
  226. package/src/components/flight/VcsFlightPlayer.vue +47 -19
  227. package/src/components/form-inputs-controls/VcsCheckbox.vue +32 -13
  228. package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +10 -0
  229. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +14 -17
  230. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +2 -4
  231. package/src/components/form-inputs-controls/VcsCoordinate.vue +17 -5
  232. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
  233. package/src/components/form-inputs-controls/VcsDatePicker.vue +53 -59
  234. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +2 -64
  235. package/src/components/form-inputs-controls/VcsFileInput.vue +18 -19
  236. package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
  237. package/src/components/form-inputs-controls/VcsLabel.vue +65 -3
  238. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +32 -1
  239. package/src/components/form-inputs-controls/VcsRadio.vue +26 -10
  240. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +2 -0
  241. package/src/components/form-inputs-controls/VcsSelect.vue +47 -47
  242. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +9 -6
  243. package/src/components/form-inputs-controls/VcsSlider.vue +53 -15
  244. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +26 -2
  245. package/src/components/form-inputs-controls/VcsTextArea.vue +56 -40
  246. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
  247. package/src/components/form-inputs-controls/VcsTextField.vue +46 -16
  248. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +12 -1
  249. package/src/components/form-inputs-controls/VcsWizard.vue +89 -112
  250. package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +3 -13
  251. package/src/components/form-inputs-controls/VcsWizardStep.vue +78 -58
  252. package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +24 -11
  253. package/src/components/form-inputs-controls/vcsTextField.scss +21 -13
  254. package/src/components/form-output/VcsFormattedNumber.vue +46 -14
  255. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +27 -0
  256. package/src/components/form-output/VcsMarkdown.vue +56 -0
  257. package/src/{application/VcsCustomScreen.vue.d.ts → components/form-output/VcsMarkdown.vue.d.ts} +7 -5
  258. package/src/components/form-output/markdownHelper.d.ts +30 -0
  259. package/src/components/form-output/markdownHelper.js +398 -0
  260. package/src/components/import/VcsFileDrop.vue +9 -6
  261. package/src/components/import/VcsImportComponent.vue +12 -8
  262. package/src/components/import/VcsImportComponent.vue.d.ts +1 -2
  263. package/src/components/lists/VcsActionList.vue +50 -34
  264. package/src/components/lists/VcsActionList.vue.d.ts +3 -1
  265. package/src/components/lists/VcsList.vue +105 -192
  266. package/src/components/lists/VcsList.vue.d.ts +18 -66
  267. package/src/components/lists/VcsListItemComponent.vue +216 -0
  268. package/src/components/lists/VcsListItemComponent.vue.d.ts +83 -0
  269. package/src/components/lists/VcsTreeview.vue +119 -26
  270. package/src/components/lists/VcsTreeview.vue.d.ts +26 -3
  271. package/src/components/lists/VcsTreeviewSearchbar.vue +17 -6
  272. package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +3 -1
  273. package/src/components/lists/VcsTreeviewTitle.vue +40 -0
  274. package/src/components/modelHelper.d.ts +21 -8
  275. package/src/components/modelHelper.js +50 -8
  276. package/src/components/notification/VcsBadge.vue +2 -2
  277. package/src/components/notification/VcsHelp.vue +6 -7
  278. package/src/components/notification/VcsHelp.vue.d.ts +0 -8
  279. package/src/components/notification/VcsHelpTooltip.vue +48 -0
  280. package/src/components/notification/VcsHelpTooltip.vue.d.ts +25 -0
  281. package/src/components/plugins/AbstractConfigEditor.vue +2 -23
  282. package/src/components/plugins/AbstractConfigEditor.vue.d.ts +6 -29
  283. package/src/components/section/VcsExpansionPanel.vue +111 -0
  284. package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
  285. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +13 -7
  286. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +2 -3
  287. package/src/components/style/MenuWrapper.vue +25 -27
  288. package/src/components/style/MenuWrapper.vue.d.ts +4 -4
  289. package/src/components/style/VcsFeatureStyleComponent.vue +1 -0
  290. package/src/components/style/VcsFillMenu.vue +10 -16
  291. package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
  292. package/src/components/style/VcsFillSelector.vue +14 -16
  293. package/src/components/style/VcsImageMenu.vue +9 -25
  294. package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
  295. package/src/components/style/VcsImageSelector.vue +115 -172
  296. package/src/components/style/VcsImageSelector.vue.d.ts +16 -15
  297. package/src/components/style/VcsStrokeMenu.vue +9 -15
  298. package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
  299. package/src/components/style/VcsStrokeSelector.vue +17 -21
  300. package/src/components/style/VcsStrokeSelector.vue.d.ts +1 -0
  301. package/src/components/style/VcsTextMenu.vue +12 -14
  302. package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
  303. package/src/components/style/VcsTextSelector.vue +80 -96
  304. package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
  305. package/src/components/style/VcsVectorStyleComponent.vue +9 -20
  306. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
  307. package/src/components/style/composables.d.ts +0 -14
  308. package/src/components/style/composables.js +0 -49
  309. package/src/components/tables/VcsDataTable.vue +43 -33
  310. package/src/components/tables/VcsDataTable.vue.d.ts +2 -1
  311. package/src/components/tables/VcsTable.vue +46 -62
  312. package/src/components/tables/VcsTable.vue.d.ts +30 -17
  313. package/src/components/tables/VcsTableCell.vue +72 -0
  314. package/src/components/tables/VcsTableCell.vue.d.ts +13 -0
  315. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +87 -51
  316. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +9 -7
  317. package/src/components/vector-properties/VcsFeatureTransforms.vue +45 -6
  318. package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +2 -1
  319. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +541 -596
  320. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +222 -24
  321. package/src/components/viewpoint/VcsViewpointComponent.vue +36 -20
  322. package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +1 -0
  323. package/src/components/viewpoint/VcsViewpointEditor.vue +3 -1
  324. package/src/contentTree/LayerTree.vue +10 -28
  325. package/src/contentTree/LayerTree.vue.d.ts +1 -1
  326. package/src/contentTree/contentTreeCollection.d.ts +1 -0
  327. package/src/contentTree/contentTreeCollection.js +45 -11
  328. package/src/contentTree/contentTreeItem.d.ts +4 -4
  329. package/src/contentTree/contentTreeItem.js +8 -8
  330. package/src/contentTree/layerContentTreeItem.d.ts +8 -5
  331. package/src/contentTree/layerContentTreeItem.js +48 -34
  332. package/src/contentTree/layerGroupContentTreeItem.d.ts +7 -1
  333. package/src/contentTree/layerGroupContentTreeItem.js +22 -3
  334. package/src/contentTree/obliqueCollectionContentTreeItem.js +6 -1
  335. package/src/featureInfo/AddressBalloonComponent.vue +1 -1
  336. package/src/featureInfo/BalloonComponent.vue +33 -26
  337. package/src/featureInfo/BalloonComponent.vue.d.ts +1 -0
  338. package/src/featureInfo/IframeComponent.vue +6 -1
  339. package/src/featureInfo/MarkdownBalloonComponent.vue +5 -3
  340. package/src/featureInfo/MarkdownBalloonComponent.vue.d.ts +2 -2
  341. package/src/featureInfo/abstractFeatureInfoView.d.ts +19 -4
  342. package/src/featureInfo/abstractFeatureInfoView.js +38 -13
  343. package/src/featureInfo/balloonHelper.js +1 -1
  344. package/src/featureInfo/featureInfo.d.ts +7 -7
  345. package/src/featureInfo/featureInfo.js +59 -41
  346. package/src/featureInfo/iframeFeatureInfoView.d.ts +8 -2
  347. package/src/featureInfo/iframeFeatureInfoView.js +15 -5
  348. package/src/featureInfo/markdownBalloonFeatureInfoView.d.ts +1 -1
  349. package/src/featureInfo/markdownBalloonFeatureInfoView.js +5 -5
  350. package/src/featureInfo/markdownFeatureInfoView.d.ts +1 -1
  351. package/src/featureInfo/markdownFeatureInfoView.js +9 -11
  352. package/src/featureInfo/tableFeatureInfoView.js +13 -4
  353. package/src/i18n/de.d.ts +59 -32
  354. package/src/i18n/de.js +28 -5
  355. package/src/i18n/en.d.ts +59 -32
  356. package/src/i18n/en.js +25 -2
  357. package/src/i18n/i18nCollection.d.ts +9 -15
  358. package/src/i18n/i18nCollection.js +3 -3
  359. package/src/init.d.ts +5 -38
  360. package/src/init.js +19 -18
  361. package/src/legend/StyleLegendItem.vue +4 -9
  362. package/src/legend/VcsLegend.vue +33 -55
  363. package/src/legend/VcsLegend.vue.d.ts +1 -0
  364. package/src/manager/buttonManager.js +4 -4
  365. package/src/manager/collectionManager/CollectionComponent.vue +18 -42
  366. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
  367. package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
  368. package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
  369. package/src/manager/collectionManager/CollectionComponentList.vue +11 -9
  370. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +6 -4
  371. package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
  372. package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
  373. package/src/manager/collectionManager/CollectionManager.vue +1 -1
  374. package/src/manager/collectionManager/categoryManager.d.ts +1 -1
  375. package/src/manager/collectionManager/collectionComponentClass.d.ts +3 -3
  376. package/src/manager/collectionManager/collectionComponentClass.js +16 -15
  377. package/src/manager/collectionManager/collectionManager.d.ts +1 -1
  378. package/src/manager/collectionManager/collectionManager.js +10 -10
  379. package/src/manager/collectionManager/editorCollectionComponentClass.js +11 -8
  380. package/src/manager/contextMenu/ContextMenuComponent.vue +1 -1
  381. package/src/manager/contextMenu/contextMenuManager.js +2 -2
  382. package/src/manager/navbarManager.js +2 -2
  383. package/src/manager/panel/PanelComponent.vue +2 -9
  384. package/src/manager/panel/PanelManagerComponent.vue +9 -5
  385. package/src/manager/panel/panelHelper.js +3 -3
  386. package/src/manager/panel/panelManager.d.ts +9 -1
  387. package/src/manager/panel/panelManager.js +18 -6
  388. package/src/manager/toolbox/GroupToolboxComponent.vue +13 -7
  389. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +1 -0
  390. package/src/manager/toolbox/SelectToolboxComponent.vue +13 -8
  391. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +1 -0
  392. package/src/manager/toolbox/{ToolboxManager.vue → ToolboxManagerComponent.vue} +28 -8
  393. package/src/manager/toolbox/{ToolboxManager.vue.d.ts → ToolboxManagerComponent.vue.d.ts} +1 -0
  394. package/src/manager/toolbox/toolboxManager.js +10 -10
  395. package/src/manager/window/WindowComponent.vue +13 -9
  396. package/src/manager/window/WindowComponentHeader.vue +33 -9
  397. package/src/manager/window/WindowComponentHeader.vue.d.ts +3 -0
  398. package/src/manager/window/WindowManager.vue +6 -3
  399. package/src/manager/window/windowManager.d.ts +71 -15
  400. package/src/manager/window/windowManager.js +32 -11
  401. package/src/navigation/MapNavigation.vue +52 -9
  402. package/src/navigation/ObliqueRotation.vue +2 -2
  403. package/src/navigation/OrientationToolsButton.vue +37 -26
  404. package/src/navigation/OrientationToolsButton.vue.d.ts +5 -1
  405. package/src/navigation/TiltSlider.vue +82 -88
  406. package/src/navigation/TiltSlider.vue.d.ts +10 -7
  407. package/src/navigation/VcsCompass.vue +17 -11
  408. package/src/navigation/VcsCompass.vue.d.ts +2 -0
  409. package/src/navigation/VcsZoomButton.vue +1 -1
  410. package/src/navigation/locatorHelper.js +4 -22
  411. package/src/navigation/overviewMap.js +5 -2
  412. package/src/notifier/NotifierComponent.vue +19 -16
  413. package/src/obliqueFallbackWarnings.d.ts +5 -0
  414. package/src/obliqueFallbackWarnings.js +54 -0
  415. package/src/search/ResultItem.vue +18 -6
  416. package/src/search/ResultsComponent.vue +32 -21
  417. package/src/search/ResultsComponent.vue.d.ts +2 -1
  418. package/src/search/SearchComponent.vue +14 -16
  419. package/src/search/SearchComponent.vue.d.ts +1 -0
  420. package/src/search/search.js +2 -2
  421. package/src/siteConfig.js +9 -9
  422. package/src/state.js +4 -4
  423. package/src/styles/_typography.scss +1 -2
  424. package/src/styles/main.scss +0 -4
  425. package/src/styles/vcsList.scss +1 -1
  426. package/src/uiConfig.d.ts +323 -7
  427. package/src/uiConfig.js +31 -17
  428. package/src/vcsUiApp.d.ts +90 -80
  429. package/src/vcsUiApp.js +61 -41
  430. package/src/vuePlugins/i18n.js +8 -0
  431. package/src/vuePlugins/vuetify.d.ts +88 -60
  432. package/src/vuePlugins/vuetify.js +134 -20
  433. package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  434. package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
  435. package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +0 -3273
  436. package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +0 -73
  437. package/dist/assets/index-ca7EmZ3d.js +0 -1
  438. package/dist/assets/ui.715986.css +0 -1
  439. package/dist/assets/vue.0f2c53.js +0 -6096
  440. package/plugins/@vcmap-show-case/theme-changer/README.md +0 -23
  441. package/plugins/@vcmap-show-case/theme-changer/config.json +0 -69
  442. package/plugins/@vcmap-show-case/theme-changer/package.json +0 -11
  443. package/plugins/@vcmap-show-case/theme-changer/src/ThemeChangerComponent.vue +0 -120
  444. package/plugins/@vcmap-show-case/theme-changer/src/index.js +0 -108
  445. package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  446. package/src/application/VcsCustomScreen.vue +0 -45
  447. package/src/application/markdownHelper.d.ts +0 -12
  448. package/src/application/markdownHelper.js +0 -85
  449. package/src/components/lists/VcsTreeviewLeaf.vue +0 -83
  450. package/src/components/notification/VcsTooltip.vue +0 -156
  451. package/src/components/notification/VcsTooltip.vue.d.ts +0 -27
  452. package/src/components/vector-properties/composables.d.ts +0 -33
  453. package/src/components/vector-properties/composables.js +0 -100
  454. package/src/featureInfo/MarkdownComponent.vue +0 -16
  455. package/src/featureInfo/MarkdownComponent.vue.d.ts +0 -7
  456. package/src/styles/_theming.scss +0 -73
  457. package/src/styles/settings.scss +0 -6
  458. package/src/styles/shades.scss +0 -4
  459. package/src/styles/variables.scss +0 -140
  460. package/src/styles/vcsFont.scss +0 -2
  461. package/src/styles/vcsGrid.scss +0 -3
  462. /package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
  463. /package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
  464. /package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
  465. /package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
  466. /package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
  467. /package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
  468. /package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
  469. /package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
  470. /package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
  471. /package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
  472. /package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
  473. /package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
  474. /package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
  475. /package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
  476. /package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
  477. /package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
  478. /package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
  479. /package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
  480. /package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
  481. /package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
  482. /package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
  483. /package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
  484. /package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
  485. /package/src/components/lists/{VcsTreeviewLeaf.vue.d.ts → VcsTreeviewTitle.vue.d.ts} +0 -0
@@ -53,6 +53,24 @@ class ContentTreeCollection extends IndexedCollection {
53
53
  */
54
54
  this._weightListeners = new Map();
55
55
 
56
+ const uiConfigChanged = () => {
57
+ this.subTreeViewItems.value.forEach((subTree) => {
58
+ if (
59
+ !this._app.uiConfig.config.hideContentTree &&
60
+ !this._subTreeListeners.has(subTree.name)
61
+ ) {
62
+ this._subTreeListeners.get(subTree.name)?.();
63
+ this._subTreeListeners.set(
64
+ subTree.name,
65
+ this._createSubtreeActionButton(subTree),
66
+ );
67
+ } else if (this._app.uiConfig.config.hideContentTree) {
68
+ this._subTreeListeners.get(subTree.name)?.();
69
+ this._subTreeListeners.delete(subTree.name);
70
+ }
71
+ });
72
+ };
73
+
56
74
  /**
57
75
  * @type {Array<function():void>}
58
76
  * @private
@@ -78,6 +96,8 @@ class ContentTreeCollection extends IndexedCollection {
78
96
  }
79
97
  }),
80
98
  this.moved.addEventListener(() => recreateTree(true)),
99
+ app.uiConfig.added.addEventListener(uiConfigChanged),
100
+ app.uiConfig.removed.addEventListener(uiConfigChanged),
81
101
  ];
82
102
  /**
83
103
  * This is the default content tree.
@@ -113,11 +133,19 @@ class ContentTreeCollection extends IndexedCollection {
113
133
 
114
134
  /**
115
135
  * @private
136
+ * @param {Array<string>} exclude
116
137
  */
117
- _clearSubTrees() {
118
- this._subTreeViewItems.value.clear();
119
- [...this._subTreeListeners.values()].forEach((cb) => {
120
- cb();
138
+ _clearSubTrees(exclude = []) {
139
+ this._subTreeViewItems.value.forEach((tree, key) => {
140
+ if (!exclude.includes(key)) {
141
+ this._subTreeViewItems.value.delete(key);
142
+ }
143
+ });
144
+ this._subTreeListeners.forEach((cb, key) => {
145
+ if (!exclude.includes(key)) {
146
+ cb();
147
+ this._subTreeListeners.delete(key);
148
+ }
121
149
  });
122
150
  }
123
151
 
@@ -159,7 +187,6 @@ class ContentTreeCollection extends IndexedCollection {
159
187
  vcsAppSymbol,
160
188
  ButtonLocation.CONTENT,
161
189
  );
162
- this._subTreeViewItems.value.set(id, subTreeViewItem);
163
190
  return () => {
164
191
  app.windowManager.remove(id);
165
192
  app.navbarManager.remove(id);
@@ -228,14 +255,21 @@ class ContentTreeCollection extends IndexedCollection {
228
255
  defaultSubTreeViewItem,
229
256
  ...topLevelItems.filter((i) => i[subTreeSymbol]),
230
257
  ];
231
-
258
+ this._clearSubTrees(
259
+ subTrees.map((tree) => {
260
+ return tree.name;
261
+ }),
262
+ );
232
263
  subTrees.forEach((subTree) => {
233
264
  if (!this._app.navbarManager.has(subTree.name) || resetSubtreeButtons) {
234
- this._subTreeListeners.get(subTree.name)?.();
235
- this._subTreeListeners.set(
236
- subTree.name,
237
- this._createSubtreeActionButton(subTree),
238
- );
265
+ this._subTreeViewItems.value.set(subTree.name, subTree);
266
+ if (!this._app.uiConfig.config.hideContentTree) {
267
+ this._subTreeListeners.get(subTree.name)?.();
268
+ this._subTreeListeners.set(
269
+ subTree.name,
270
+ this._createSubtreeActionButton(subTree),
271
+ );
272
+ }
239
273
  } else {
240
274
  const buttonComponent = this._app.navbarManager.get(subTree.name);
241
275
  if (buttonComponent.weight !== subTree[subTreeItemWeight]) {
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @type {ClassRegistry<import("@vcmap/core").Ctor<typeof ContentTreeItem>>}
2
+ * @type {ClassRegistry<typeof ContentTreeItem>}
3
3
  */
4
- export const contentTreeClassRegistry: ClassRegistry<import("@vcmap/core").Ctor<typeof ContentTreeItem>>;
4
+ export const contentTreeClassRegistry: ClassRegistry<typeof ContentTreeItem>;
5
5
  export default ContentTreeItem;
6
6
  export type ContentTreeItemOptions = {
7
7
  type?: string | undefined;
@@ -272,11 +272,11 @@ declare class ContentTreeItem {
272
272
  /**
273
273
  * @param {(string|HTMLCanvasElement|HTMLImageElement)=} icon
274
274
  */
275
- set icon(icon: string | HTMLCanvasElement | HTMLImageElement | undefined);
275
+ set icon(icon: string | HTMLImageElement | HTMLCanvasElement | undefined);
276
276
  /**
277
277
  * @type {string|HTMLCanvasElement|HTMLImageElement|undefined}
278
278
  */
279
- get icon(): string | HTMLCanvasElement | HTMLImageElement | undefined;
279
+ get icon(): string | HTMLImageElement | HTMLCanvasElement | undefined;
280
280
  /**
281
281
  * @param {number} weight
282
282
  */
@@ -1,5 +1,5 @@
1
1
  import { ref, reactive, computed, shallowRef } from 'vue';
2
- import { check, checkMaybe } from '@vcsuite/check';
2
+ import { check, maybe, ofEnum, oneOf } from '@vcsuite/check';
3
3
  import { parseBoolean, parseNumber } from '@vcsuite/parsers';
4
4
  import { ClassRegistry, VcsEvent } from '@vcmap/core';
5
5
  import { createLinkAction } from '../actions/actionHelper.js';
@@ -47,7 +47,7 @@ import { executeCallbacks } from '../callback/vcsCallback.js';
47
47
  const actionWeightSymbol = Symbol('ActionWeight');
48
48
 
49
49
  /**
50
- * @type {ClassRegistry<import("@vcmap/core").Ctor<typeof ContentTreeItem>>}
50
+ * @type {ClassRegistry<typeof ContentTreeItem>}
51
51
  */
52
52
  export const contentTreeClassRegistry = new ClassRegistry();
53
53
 
@@ -258,7 +258,7 @@ class ContentTreeItem {
258
258
  * @param {StateActionState} state
259
259
  */
260
260
  set state(state) {
261
- check(state, Object.values(StateActionState));
261
+ check(state, ofEnum(StateActionState));
262
262
 
263
263
  if (this._state.value !== state) {
264
264
  this._state.value = state;
@@ -277,7 +277,7 @@ class ContentTreeItem {
277
277
  * @param {string} url
278
278
  */
279
279
  set infoUrl(url) {
280
- checkMaybe(url, String);
280
+ check(url, maybe(String));
281
281
 
282
282
  if (this._infoUrl !== url) {
283
283
  this._infoUrl = url;
@@ -309,7 +309,7 @@ class ContentTreeItem {
309
309
  * @param {string|undefined} title
310
310
  */
311
311
  set title(title) {
312
- checkMaybe(title, String);
312
+ check(title, maybe(String));
313
313
 
314
314
  this._title.value = title;
315
315
  }
@@ -325,7 +325,7 @@ class ContentTreeItem {
325
325
  * @param {string|undefined} tooltip
326
326
  */
327
327
  set tooltip(tooltip) {
328
- checkMaybe(tooltip, String);
328
+ check(tooltip, maybe(String));
329
329
 
330
330
  this._tooltip.value = tooltip;
331
331
  }
@@ -341,7 +341,7 @@ class ContentTreeItem {
341
341
  * @param {(string|HTMLCanvasElement|HTMLImageElement)=} icon
342
342
  */
343
343
  set icon(icon) {
344
- checkMaybe(icon, [String, HTMLElement]);
344
+ check(icon, maybe(oneOf(String, HTMLElement)));
345
345
 
346
346
  this._icon.value = icon;
347
347
  }
@@ -411,7 +411,7 @@ class ContentTreeItem {
411
411
  */
412
412
  addAction(action, weight = 11) {
413
413
  check(action.name, String);
414
- checkMaybe(weight, Number);
414
+ check(weight, maybe(Number));
415
415
 
416
416
  const index = this._getActionIndex(action.name);
417
417
  if (index > -1) {
@@ -11,6 +11,14 @@
11
11
  * @param {string|import("@vcmap/core").Viewpoint=} viewpoint
12
12
  */
13
13
  export function setViewpointAction(item: import("./contentTreeItem.js").default, app: import("@src/vcsUiApp.js").default, viewpoint?: (string | import("@vcmap/core").Viewpoint) | undefined): void;
14
+ /**
15
+ * @param {import("./contentTreeItem.js").default} item
16
+ * @param {import("@src/vcsUiApp.js").default} app
17
+ * @param {Array<Function>} listeners
18
+ * @param {Array<string>} layerNames
19
+ * @param {Array<string>=} availableStyles
20
+ */
21
+ export function setStyleAction(item: import("./contentTreeItem.js").default, app: import("@src/vcsUiApp.js").default, listeners: Array<Function>, layerNames: Array<string>, availableStyles?: Array<string> | undefined): void;
14
22
  /**
15
23
  * @param {import("@vcmap/core").Layer} layer
16
24
  * @returns {StateActionState}
@@ -51,11 +59,6 @@ declare class LayerContentTreeItem extends VcsObjectContentTreeItem<LayerContent
51
59
  * @private
52
60
  */
53
61
  private get _layer();
54
- /**
55
- * @param {Array<string>=} availableStyles
56
- * @private
57
- */
58
- private _setStyleAction;
59
62
  /**
60
63
  * @private
61
64
  */
@@ -43,6 +43,47 @@ export function setViewpointAction(item, app, viewpoint) {
43
43
  }
44
44
  }
45
45
 
46
+ /**
47
+ * @param {import("./contentTreeItem.js").default} item
48
+ * @param {import("@src/vcsUiApp.js").default} app
49
+ * @param {Array<Function>} listeners
50
+ * @param {Array<string>} layerNames
51
+ * @param {Array<string>=} availableStyles
52
+ */
53
+ export function setStyleAction(
54
+ item,
55
+ app,
56
+ listeners,
57
+ layerNames,
58
+ availableStyles,
59
+ ) {
60
+ const name = 'StyleSelector';
61
+ item.removeAction(name);
62
+ if (Array.isArray(availableStyles) && availableStyles.length > 0) {
63
+ const { action, destroy } = createModalAction(
64
+ {
65
+ name,
66
+ icon: '$vcsColorSwatch',
67
+ title: 'content.styleAction.title',
68
+ },
69
+ {
70
+ component,
71
+ position: {
72
+ width: 200,
73
+ },
74
+ props: reactive({
75
+ availableStyles: availableStyles.slice(),
76
+ layerNames: layerNames.slice(),
77
+ }),
78
+ },
79
+ app,
80
+ vcsAppSymbol,
81
+ );
82
+ item.addAction(action, 4);
83
+ listeners.push(destroy);
84
+ }
85
+ }
86
+
46
87
  /**
47
88
  * @param {import("@vcmap/core").Layer} layer
48
89
  * @returns {StateActionState}
@@ -101,38 +142,6 @@ class LayerContentTreeItem extends VcsObjectContentTreeItem {
101
142
  return this._app.layers.getByKey(this._layerName);
102
143
  }
103
144
 
104
- /**
105
- * @param {Array<string>=} availableStyles
106
- * @private
107
- */
108
- _setStyleAction(availableStyles) {
109
- const name = 'StyleSelector';
110
- this.removeAction(name);
111
- if (Array.isArray(availableStyles) && availableStyles.length > 0) {
112
- const { action, destroy } = createModalAction(
113
- {
114
- name,
115
- icon: '$vcsColorSwatch',
116
- title: 'content.styleAction.title',
117
- },
118
- {
119
- component,
120
- position: {
121
- width: 200,
122
- },
123
- props: reactive({
124
- availableStyles: availableStyles.slice(),
125
- layerName: this._layerName,
126
- }),
127
- },
128
- this._app,
129
- vcsAppSymbol,
130
- );
131
- this.addAction(action, 4);
132
- this._listeners.push(destroy);
133
- }
134
- }
135
-
136
145
  /**
137
146
  * @private
138
147
  */
@@ -165,8 +174,13 @@ class LayerContentTreeItem extends VcsObjectContentTreeItem {
165
174
  */
166
175
  _setProperties(properties) {
167
176
  super._setProperties(properties);
168
-
169
- this._setStyleAction(properties.availableStyles);
177
+ setStyleAction(
178
+ this,
179
+ this._app,
180
+ this._listeners,
181
+ [this._layerName],
182
+ properties.availableStyles,
183
+ );
170
184
  setViewpointAction(this, this._app, properties.defaultViewpoint);
171
185
  }
172
186
 
@@ -2,6 +2,7 @@ export default LayerGroupContentTreeItem;
2
2
  export type LayerGroupContentTreeItemOptions = import("./contentTreeItem.js").ContentTreeItemOptions & {
3
3
  layerNames: string[];
4
4
  defaultViewpoint?: string;
5
+ availableStyles?: string[];
5
6
  };
6
7
  /**
7
8
  * A layer group. When clicked will try to activate all layers in the group or deactivate all layer in the group if all are active.
@@ -25,10 +26,15 @@ declare class LayerGroupContentTreeItem extends ContentTreeItem {
25
26
  */
26
27
  private _listeners;
27
28
  /**
28
- * @type {string|null}
29
+ * @type {string|undefined}
29
30
  * @private
30
31
  */
31
32
  private _defaultViewpoint;
33
+ /**
34
+ * @type {string[]}
35
+ * @private
36
+ */
37
+ private _availableStyles;
32
38
  /**
33
39
  * @type {Array<import("@vcmap/core").Layer>}
34
40
  * @private
@@ -3,13 +3,14 @@ import ContentTreeItem, {
3
3
  } from './contentTreeItem.js';
4
4
  import {
5
5
  getStateFromLayer,
6
+ setStyleAction,
6
7
  setViewpointAction,
7
8
  } from './layerContentTreeItem.js';
8
9
  import { StateActionState } from '../actions/stateRefAction.js';
9
10
  import { executeCallbacks } from '../callback/vcsCallback.js';
10
11
 
11
12
  /**
12
- * @typedef {import("./contentTreeItem.js").ContentTreeItemOptions & { layerNames: string[], defaultViewpoint?: string }} LayerGroupContentTreeItemOptions
13
+ * @typedef {import("./contentTreeItem.js").ContentTreeItemOptions & { layerNames: string[], defaultViewpoint?: string, availableStyles?: string[] }} LayerGroupContentTreeItemOptions
13
14
  * @property {Array<string>} layerNames list of LayerNames which should be activated on click
14
15
  * @property {string} [defaultViewpoint] - the name of an optional default viewpoint
15
16
  */
@@ -69,10 +70,18 @@ class LayerGroupContentTreeItem extends ContentTreeItem {
69
70
  this._listeners = [];
70
71
 
71
72
  /**
72
- * @type {string|null}
73
+ * @type {string|undefined}
73
74
  * @private
74
75
  */
75
- this._defaultViewpoint = options.defaultViewpoint || null;
76
+ this._defaultViewpoint = options.defaultViewpoint;
77
+
78
+ /**
79
+ * @type {string[]}
80
+ * @private
81
+ */
82
+ this._availableStyles = Array.isArray(options.availableStyles)
83
+ ? options.availableStyles.slice()
84
+ : [];
76
85
 
77
86
  this._setup();
78
87
  }
@@ -116,6 +125,13 @@ class LayerGroupContentTreeItem extends ContentTreeItem {
116
125
  this.visible = layers.some((l) => l.isSupported(this._app.maps.activeMap));
117
126
  this.state = getStateFromLayers(layers);
118
127
  setViewpointAction(this, this._app, this._defaultViewpoint);
128
+ setStyleAction(
129
+ this,
130
+ this._app,
131
+ this._listeners,
132
+ this._layerNames,
133
+ this._availableStyles,
134
+ );
119
135
 
120
136
  this._listeners.push(
121
137
  this._app.layers.removed.addEventListener(resetHandler),
@@ -166,6 +182,9 @@ class LayerGroupContentTreeItem extends ContentTreeItem {
166
182
  if (this._defaultViewpoint) {
167
183
  config.defaultViewpoint = this._defaultViewpoint;
168
184
  }
185
+ if (this._availableStyles.length > 0) {
186
+ config.availableStyles = this._availableStyles.slice();
187
+ }
169
188
  return config;
170
189
  }
171
190
 
@@ -151,7 +151,12 @@ class ObliqueCollectionContentTreeItem extends VcsObjectContentTreeItem {
151
151
  if (this.state === StateActionState.INACTIVE) {
152
152
  this.state = StateActionState.LOADING;
153
153
  await map.setCollection(this._collection, vp);
154
- executeCallbacks(this._app, this._onActivate);
154
+ if (map.collection === this._collection) {
155
+ executeCallbacks(this._app, this._onActivate);
156
+ } else {
157
+ // failed to activate collection
158
+ this.state = StateActionState.INACTIVE;
159
+ }
155
160
  } else if (this.state === StateActionState.ACTIVE) {
156
161
  this.state = StateActionState.INACTIVE;
157
162
  await map.setCollection(defaultCollection, vp);
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <BalloonComponent v-bind="{ ...$attrs }">
2
+ <BalloonComponent v-bind="{ ...$attrs }" class="address-balloon-component">
3
3
  <template #default="{ attrs }">
4
4
  <v-list-item
5
5
  lines="two"
@@ -1,24 +1,32 @@
1
1
  <template>
2
- <v-card class="mx-auto elevation-0" v-if="position">
2
+ <v-card class="mx-auto elevation-0 balloon-component" v-if="position">
3
3
  <slot name="balloon-header" :attrs="{ ...$props, ...$attrs }">
4
- <v-list-item class="px-2 align-center">
5
- <template #prepend>
6
- <v-icon color="primary" size="16" class="mr-2"> $vcsInfo </v-icon>
4
+ <v-list-item class="px-1">
5
+ <template #prepend="prependScope">
6
+ <slot name="prepend" v-bind="prependScope">
7
+ <div class="pl-1 pr-2">
8
+ <v-icon color="primary" :size="iconSize"> $vcsInfo </v-icon>
9
+ </div>
10
+ </slot>
11
+ </template>
12
+ <slot name="balloon-title" :attrs="{ ...$props, ...$attrs }">
13
+ <v-list-item-title>
14
+ <h3 class="font-weight-bold">
15
+ {{ $st(balloonTitle) }}
16
+ </h3>
17
+ </v-list-item-title>
18
+ <v-list-item-subtitle v-if="balloonSubtitle">
19
+ {{ $st(balloonSubtitle) }}
20
+ </v-list-item-subtitle>
21
+ </slot>
22
+ <template #append>
23
+ <VcsButton
24
+ @click.stop="close"
25
+ icon="mdi-close-thick"
26
+ tooltip="components.close"
27
+ class="px-1"
28
+ />
7
29
  </template>
8
- <v-list-item-title>
9
- <h3 class="font-weight-bold">
10
- {{ $st(balloonTitle) }}
11
- </h3>
12
- </v-list-item-title>
13
- <v-list-item-subtitle v-if="balloonSubtitle">
14
- {{ $st(balloonSubtitle) }}
15
- </v-list-item-subtitle>
16
- <VcsButton
17
- @click.stop="close"
18
- icon="mdi-close-thick"
19
- tooltip="components.close"
20
- class="d-flex"
21
- />
22
30
  </v-list-item>
23
31
  </slot>
24
32
 
@@ -69,6 +77,7 @@
69
77
  import { setupBalloonPositionListener } from './balloonHelper.js';
70
78
  import VcsButton from '../components/buttons/VcsButton.vue';
71
79
  import { getTag, getTagOptions } from '../components/tables/VcsTable.vue';
80
+ import { useIconSize } from '../vuePlugins/vuetify.js';
72
81
 
73
82
  /**
74
83
  * @description A balloon viewing feature attributes. Size dynamic dependent on number of attributes.
@@ -80,7 +89,9 @@
80
89
  * @vue-prop {Object} tags - optional object containing keys rendered as tags
81
90
  * @vue-prop {Array<import("ol/coordinate").Coordinate>} position - clicked position balloon is rendered at
82
91
  * @vue-data {slot} [#balloon-header] - slot to override balloon header, $props and $attrs are passed to `attrs`
92
+ * @vue-data {slot} [#balloon-title] - slot to override balloon title and subtitle, $props and $attrs are passed to `attrs`. Is overwritten by balloon-header slot.
83
93
  * @vue-data {slot} [#default] - slot to override balloon content, $props and $attrs are passed to `attrs`
94
+ * @vue-data {slot} [#prepend] - slot to override balloon header icon
84
95
  */
85
96
  export default {
86
97
  name: 'BalloonComponent',
@@ -182,8 +193,9 @@
182
193
  app.windowManager.remove(attrs['window-state'].id);
183
194
  destroyListener();
184
195
  };
185
-
196
+ const iconSize = useIconSize();
186
197
  return {
198
+ iconSize,
187
199
  close,
188
200
  getTag,
189
201
  getTagOptions,
@@ -194,8 +206,6 @@
194
206
  </script>
195
207
 
196
208
  <style lang="scss">
197
- @import '../styles/shades.scss';
198
-
199
209
  .balloon {
200
210
  z-index: 0 !important;
201
211
  }
@@ -213,11 +223,8 @@
213
223
  width: 0;
214
224
  filter: drop-shadow(1px 2px 1px rgba(0, 0, 0, 0.3));
215
225
  }
216
- .theme--light .balloon:after {
217
- border-color: map-get($shades, 'white') transparent;
218
- }
219
- .theme--dark .balloon:after {
220
- border-color: map-get($shades, 'black') transparent;
226
+ .balloon:after {
227
+ border-color: rgb(var(--v-theme-surface-light)) transparent;
221
228
  }
222
229
  .balloon .v-list-item .v-list-item__title,
223
230
  .balloon .v-list-item .v-list-item__subtitle {
@@ -24,6 +24,7 @@ declare const _default: import("vue").DefineComponent<{
24
24
  default: null;
25
25
  };
26
26
  }, {
27
+ iconSize: import("vue").ComputedRef<number>;
27
28
  close: () => void;
28
29
  getTag: typeof getTag;
29
30
  getTagOptions: typeof getTagOptions;
@@ -1,5 +1,10 @@
1
1
  <template>
2
- <iframe :src="src" :title="title" :style="{ height, width }" />
2
+ <iframe
3
+ :src="src"
4
+ :title="title"
5
+ :style="{ height, width }"
6
+ class="iframe-component"
7
+ />
3
8
  </template>
4
9
  <script>
5
10
  import { inject } from 'vue';
@@ -1,10 +1,11 @@
1
1
  <template>
2
- <BalloonComponent v-bind="{ ...$attrs }">
3
- <div class="pa-2" v-html="html" />
2
+ <BalloonComponent v-bind="{ ...$attrs }" class="markdown-balloon-component">
3
+ <VcsMarkdown :content="content" />
4
4
  </BalloonComponent>
5
5
  </template>
6
6
  <script>
7
7
  import BalloonComponent from './BalloonComponent.vue';
8
+ import VcsMarkdown from '../components/form-output/VcsMarkdown.vue';
8
9
 
9
10
  /**
10
11
  * @description A balloon showing markdown content
@@ -12,12 +13,13 @@
12
13
  export default {
13
14
  name: 'MarkdownBalloonComponent',
14
15
  props: {
15
- html: {
16
+ content: {
16
17
  type: String,
17
18
  required: true,
18
19
  },
19
20
  },
20
21
  components: {
22
+ VcsMarkdown,
21
23
  BalloonComponent,
22
24
  },
23
25
  };
@@ -1,10 +1,10 @@
1
1
  declare const _default: import("vue").DefineComponent<{
2
- html: {
2
+ content: {
3
3
  type: StringConstructor;
4
4
  required: true;
5
5
  };
6
6
  }, any, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
7
- html: {
7
+ content: {
8
8
  type: StringConstructor;
9
9
  required: true;
10
10
  };
@@ -75,6 +75,15 @@ export function applyAttributeFilter(attributes: {
75
75
  export function applyOlcsAttributeFilter(attributes: {
76
76
  [x: string]: unknown;
77
77
  }, keys?: Array<string>): Object;
78
+ /**
79
+ * Filters all __ attributes (from vc-converter tilesets) not provided as keys
80
+ * @param {Object<string, unknown>} attributes
81
+ * @param {Array<string>} keys
82
+ * @returns {Object}
83
+ */
84
+ export function applyDoubleUnderscoreFilter(attributes: {
85
+ [x: string]: unknown;
86
+ }, keys?: Array<string>): Object;
78
87
  /**
79
88
  * Filters attributes having an empty object as value
80
89
  * @param {Object<string, unknown>} attributes
@@ -103,7 +112,7 @@ export type FeatureInfoViewOptions = import("@vcmap/core").VcsObjectOptions & {
103
112
  keyMapping?: Record<string, string>;
104
113
  valueMapping?: Record<string, string | Record<string, string>>;
105
114
  tags?: Record<string, HTMLTagOptions>;
106
- window?: import("../manager/window/windowManager.js").WindowComponentOptions;
115
+ window?: Pick<import("../manager/window/windowManager.js").WindowComponentOptions, 'state' | 'slot' | 'position'>;
107
116
  };
108
117
  /**
109
118
  * Abstract class to be extended by FeatureInfoView classes
@@ -145,7 +154,7 @@ declare class AbstractFeatureInfoView extends VcsObject {
145
154
  [x: string]: HTMLTagOptions;
146
155
  };
147
156
  /**
148
- * @type {import("../manager/window/windowManager.js").WindowComponentOptions|Object}
157
+ * @type {Pick<import("../manager/window/windowManager.js").WindowComponentOptions,'state'|'slot'|'position'>|Object}
149
158
  * @private
150
159
  */
151
160
  private _window;
@@ -156,14 +165,20 @@ declare class AbstractFeatureInfoView extends VcsObject {
156
165
  private _component;
157
166
  /**
158
167
  * window options, configured in a module, used only internally by AbstractFeatureInfoView or subclass
159
- * @type {import("../manager/window/windowManager.js").WindowComponentOptions|Object}
168
+ * @type {Pick<import("../manager/window/windowManager.js").WindowComponentOptions<FeatureInfoProps>,'state'|'slot'|'position'>|Object}
160
169
  */
161
- get window(): Object | import("../manager/window/windowManager.js").WindowComponentOptions<Object>;
170
+ get window(): Object | Pick<import("../manager/window/windowManager.js").WindowComponentOptions<FeatureInfoProps>, "slot" | "state" | "position">;
162
171
  /**
163
172
  * component provided by a FeatureInfoView class, passed to featureInfo via `getWindowComponentOptions()`
164
173
  * @type {import("vue").Component<FeatureInfoProps, unknown, unknown>|undefined}
165
174
  */
166
175
  get component(): import("vue").Component<FeatureInfoProps, unknown, unknown, import("vue").ComputedOptions, import("vue").MethodOptions, {}, any> | undefined;
176
+ /**
177
+ * @param {undefined|import("ol").Feature|import("@vcmap-cesium/engine").Cesium3DTileFeature|import("@vcmap-cesium/engine").Cesium3DTilePointFeature} feature
178
+ * @returns {Object}
179
+ * @protected
180
+ */
181
+ protected _getAttributesFromFeature(feature: undefined | import("ol").Feature | import("@vcmap-cesium/engine").Cesium3DTileFeature | import("@vcmap-cesium/engine").Cesium3DTilePointFeature): Object;
167
182
  /**
168
183
  * This method returns all relevant attributes for this view.
169
184
  * Called by `getProperties()` to pass attributes as props object to the VueComponent of this view.