@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
@@ -1,14 +1,14 @@
1
1
  <template>
2
2
  <v-toolbar
3
3
  v-if="toolboxOpen && orderedGroups.length > 0 && mdAndUp"
4
- class="vcs-toolbox mx-auto marginToTop opacity-80"
4
+ class="vcs-toolbox mx-auto elevation-4 opacity-80 toolbox-manager-component"
5
5
  :class="{
6
6
  'rounded-b': !open,
7
+ 'vcs-toolbox__secondary': !isDefaultToolbox,
7
8
  }"
8
- :height="40"
9
+ :height="toolboxHeight"
9
10
  :style="{ zIndex }"
10
11
  @click.stop="bringToTop"
11
- style="width: fit-content"
12
12
  >
13
13
  <v-toolbar-items class="w-100 px-4 gc-1">
14
14
  <div
@@ -33,7 +33,10 @@
33
33
  :active="group.action.active"
34
34
  :background="group.action.background"
35
35
  :disabled="group.action.disabled"
36
- @click="group.action.callback($event)"
36
+ @click.stop="
37
+ bringToTop();
38
+ group.action.callback($event);
39
+ "
37
40
  v-bind="{ ...$attrs }"
38
41
  />
39
42
  </div>
@@ -42,8 +45,19 @@
42
45
  </template>
43
46
 
44
47
  <style lang="scss" scoped>
45
- .marginToTop {
48
+ .vcs-toolbox__secondary {
49
+ &.vcs-toolbox.v-theme {
50
+ &--light {
51
+ background-color: rgba(var(--v-theme-primary-lighten-3));
52
+ }
53
+ &--dark {
54
+ background-color: rgba(var(--v-theme-primary-darken-4));
55
+ }
56
+ }
57
+ }
58
+ .vcs-toolbox {
46
59
  margin-top: 2px;
60
+ width: fit-content;
47
61
  }
48
62
  </style>
49
63
 
@@ -61,6 +75,7 @@
61
75
  import VcsToolButton from '../../components/buttons/VcsToolButton.vue';
62
76
  import { vcsAppSymbol } from '../../pluginHelper.js';
63
77
  import { ButtonLocation } from '../navbarManager.js';
78
+ import { useFontSize } from '../../vuePlugins/vuetify.js';
64
79
 
65
80
  /**
66
81
  * @typedef {Object} ToolboxButtonGroup
@@ -84,7 +99,7 @@
84
99
  * @vue-computed {Array<ToolboxButtonGroup>} orderedGroups - Array of group components sorted by owner
85
100
  */
86
101
  export default {
87
- name: 'VcsToolboxManager',
102
+ name: 'ToolboxManagerComponent',
88
103
  components: {
89
104
  ToolboxActionSelect,
90
105
  ToolboxActionGroup,
@@ -163,12 +178,12 @@
163
178
  }
164
179
  handleToolboxButton();
165
180
 
166
- const stopWatching = watch(groups, () => handleToolboxButton());
181
+ watch(groups, () => handleToolboxButton());
167
182
 
168
183
  onUnmounted(() => {
169
- stopWatching();
170
184
  nameChangeListener();
171
185
  app.windowManager.removeExternalIdFromZIndex('toolbox');
186
+ app.navbarManager.remove('toolbox');
172
187
  });
173
188
 
174
189
  watch(toolboxOpen, () => {
@@ -183,6 +198,10 @@
183
198
  };
184
199
 
185
200
  const { mdAndUp } = useDisplay();
201
+ const fontSize = useFontSize();
202
+ const toolboxHeight = computed(() => {
203
+ return fontSize.value * 3 + 1;
204
+ });
186
205
  return {
187
206
  mdAndUp,
188
207
  toolboxOpen,
@@ -200,6 +219,7 @@
200
219
  bringToTop();
201
220
  }
202
221
  },
222
+ toolboxHeight,
203
223
  };
204
224
  },
205
225
  };
@@ -12,6 +12,7 @@ declare const _default: import("vue").DefineComponent<{}, {
12
12
  open: import("vue").Ref<boolean>;
13
13
  bringToTop: () => void;
14
14
  openGroup(group: any): void;
15
+ toolboxHeight: import("vue").ComputedRef<number>;
15
16
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
16
17
  export default _default;
17
18
  export type ToolboxButtonGroup = {
@@ -1,5 +1,5 @@
1
1
  import { VcsEvent } from '@vcmap/core';
2
- import { check, checkMaybe } from '@vcsuite/check';
2
+ import { check, maybe, ofEnum, oneOf, optional } from '@vcsuite/check';
3
3
  import { v4 as uuidv4 } from 'uuid';
4
4
  import { reactive, shallowReactive } from 'vue';
5
5
  import { vcsAppSymbol } from '../../pluginHelper.js';
@@ -230,7 +230,7 @@ class ToolboxManager {
230
230
  }
231
231
 
232
232
  set toolboxName(name) {
233
- check(name, [String, defaultToolboxName]);
233
+ check(name, oneOf(String, defaultToolboxName));
234
234
 
235
235
  if (this._toolboxName !== name) {
236
236
  this._toolboxName = name;
@@ -285,9 +285,9 @@ class ToolboxManager {
285
285
  * @returns {SingleToolboxComponent|SelectToolboxComponent|import("vue").ShallowReactive<GroupToolboxComponent>}
286
286
  */
287
287
  add(toolboxComponentOptions, owner) {
288
- checkMaybe(toolboxComponentOptions.id, String);
289
- check(toolboxComponentOptions.type, Object.values(ToolboxType));
290
- check(owner, [String, vcsAppSymbol]);
288
+ check(toolboxComponentOptions.id, maybe(String));
289
+ check(toolboxComponentOptions.type, ofEnum(ToolboxType));
290
+ check(owner, oneOf(String, vcsAppSymbol));
291
291
 
292
292
  if (toolboxComponentOptions.id && this.has(toolboxComponentOptions.id)) {
293
293
  throw new Error(
@@ -335,13 +335,13 @@ class ToolboxManager {
335
335
  ...ActionPattern,
336
336
  selected: Function,
337
337
  currentIndex: Number,
338
- disabled: [undefined, Boolean],
338
+ disabled: optional(Boolean),
339
339
  tools: [
340
340
  {
341
341
  name: String,
342
- title: [undefined, String],
342
+ title: optional(String),
343
343
  icon: String,
344
- disabled: [undefined, Boolean],
344
+ disabled: optional(Boolean),
345
345
  },
346
346
  ],
347
347
  });
@@ -357,8 +357,8 @@ class ToolboxManager {
357
357
  };
358
358
  } else {
359
359
  check(toolboxComponentOptions.icon, String);
360
- checkMaybe(toolboxComponentOptions.title, String);
361
- checkMaybe(toolboxComponentOptions.disabled, Boolean);
360
+ check(toolboxComponentOptions.title, maybe(String));
361
+ check(toolboxComponentOptions.disabled, maybe(Boolean));
362
362
  const {
363
363
  icon,
364
364
  title = undefined,
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-sheet
3
3
  :id="`window-component--${windowState.id}`"
4
- class="elevation-3 position-absolute d-flex flex-column"
4
+ class="elevation-3 position-absolute d-flex flex-column window-component"
5
5
  v-bind="$attrs"
6
6
  @dragstart="dragStart"
7
7
  @dragend="dragEnd"
@@ -9,8 +9,8 @@
9
9
  :class="{
10
10
  rounded: !isDocked,
11
11
  marginToTop: isDocked || !isChild,
12
- 'rounded-br': isDynamicLeft,
13
- 'rounded-bl': isDynamicRight,
12
+ 'rounded-be': isDynamicLeft,
13
+ 'rounded-bs': isDynamicRight,
14
14
  }"
15
15
  >
16
16
  <div
@@ -89,17 +89,21 @@
89
89
  });
90
90
 
91
91
  const isChild = computed(() => !!props.windowState.parentId);
92
- const isDynamic = computed(() => props.slotWindow !== WindowSlot.STATIC);
93
- const isDocked = computed(() => props.slotWindow !== WindowSlot.DETACHED);
92
+ const isDynamic = computed(
93
+ () => props.slotWindow.value !== WindowSlot.STATIC,
94
+ );
95
+ const isDocked = computed(
96
+ () => props.slotWindow.value !== WindowSlot.DETACHED,
97
+ );
94
98
  const isDockedLeft = computed(() => {
95
99
  return (
96
- props.slotWindow === WindowSlot.STATIC ||
97
- props.slotWindow === WindowSlot.DYNAMIC_LEFT ||
98
- props.slotWindow === WindowSlot.DYNAMIC_CHILD
100
+ props.slotWindow.value === WindowSlot.STATIC ||
101
+ props.slotWindow.value === WindowSlot.DYNAMIC_LEFT ||
102
+ props.slotWindow.value === WindowSlot.DYNAMIC_CHILD
99
103
  );
100
104
  });
101
105
  const isDockedRight = computed(
102
- () => props.slotWindow === WindowSlot.DYNAMIC_RIGHT,
106
+ () => props.slotWindow.value === WindowSlot.DYNAMIC_RIGHT,
103
107
  );
104
108
  const isDraggable = ref(false);
105
109
  /**
@@ -2,21 +2,25 @@
2
2
  <div
3
3
  class="d-flex justify-space-between align-center window-component-header"
4
4
  >
5
- <h3 class="d-flex align-center">
5
+ <h3 class="d-flex align-center flex-grow-1">
6
6
  <v-icon
7
7
  v-if="windowState.headerIcon"
8
8
  class="mr-1"
9
- :class="{ 'primary--text': isOnTop }"
10
- size="16"
9
+ :class="{ 'text-primary': isOnTop }"
10
+ :size="iconSize"
11
11
  >
12
12
  {{ windowState.headerIcon }}
13
13
  </v-icon>
14
14
  <span
15
- class="d-inline-block user-select-none font-weight-bold"
16
- :class="{ 'primary--text': isOnTop }"
15
+ ref="headerRef"
16
+ class="d-inline-block user-select-none font-weight-bold vcs-window-header-title"
17
+ :class="{ 'text-primary': isOnTop }"
17
18
  >
18
19
  {{ translatedHeaderTitle }}
19
20
  </span>
21
+ <v-tooltip v-if="headerTooltip" activator="parent">
22
+ {{ $st(headerTooltip) }}
23
+ </v-tooltip>
20
24
  </h3>
21
25
  <div class="d-flex justify-space-between align-center">
22
26
  <template v-if="windowState.headerActions?.length > 0">
@@ -52,10 +56,10 @@
52
56
 
53
57
  <style lang="scss" scoped>
54
58
  .window-component-header {
55
- max-height: 16px;
59
+ max-height: calc(var(--v-vcs-font-size) * 2 - 10px);
56
60
 
57
61
  h3 {
58
- line-height: 16px;
62
+ line-height: calc(var(--v-vcs-font-size) * 2 - 10px);
59
63
  }
60
64
  .v-divider--vertical.v-divider--inset {
61
65
  margin-top: 2px;
@@ -64,14 +68,23 @@
64
68
  .user-select-none {
65
69
  user-select: none;
66
70
  }
71
+ .vcs-window-header-title {
72
+ width: 10px;
73
+ white-space: nowrap;
74
+ overflow: hidden;
75
+ text-overflow: ellipsis;
76
+ flex: 1;
77
+ }
67
78
  </style>
68
79
 
69
80
  <script>
70
- import { VIcon, VDivider } from 'vuetify/components';
71
- import { computed, getCurrentInstance } from 'vue';
81
+ import { VIcon, VDivider, VTooltip } from 'vuetify/components';
82
+ import { computed, getCurrentInstance, ref } from 'vue';
83
+ import { createEllipseTooltip } from '../../components/composables.js';
72
84
  import VcsButton from '../../components/buttons/VcsButton.vue';
73
85
  import VcsActionButtonList from '../../components/buttons/VcsActionButtonList.vue';
74
86
  import { createLinkAction } from '../../actions/actionHelper.js';
87
+ import { useIconSize } from '../../vuePlugins/vuetify.js';
75
88
 
76
89
  /**
77
90
  * @description Default window component header with drag functionality close action and further optional window actions.
@@ -88,6 +101,7 @@
88
101
  VcsButton,
89
102
  VIcon,
90
103
  VDivider,
104
+ VTooltip,
91
105
  },
92
106
  inheritAttrs: false,
93
107
  props: {
@@ -124,6 +138,8 @@
124
138
  : vm.$st(props.windowState.headerTitle),
125
139
  );
126
140
 
141
+ const headerRef = ref(null);
142
+
127
143
  const infoAction =
128
144
  props.windowState.infoUrl || props.windowState.infoUrlCallback
129
145
  ? createLinkAction(
@@ -136,11 +152,19 @@
136
152
  )
137
153
  : undefined;
138
154
 
155
+ const iconSize = useIconSize();
139
156
  return {
140
157
  pin,
141
158
  close,
142
159
  isDockable,
143
160
  translatedHeaderTitle,
161
+ headerRef,
162
+ iconSize,
163
+ headerTooltip: createEllipseTooltip(
164
+ computed(() => headerRef.value),
165
+ computed(() => undefined),
166
+ translatedHeaderTitle,
167
+ ),
144
168
  infoAction,
145
169
  };
146
170
  },
@@ -17,6 +17,9 @@ declare const _default: import("vue").DefineComponent<{
17
17
  close: () => void;
18
18
  isDockable: import("vue").ComputedRef<any>;
19
19
  translatedHeaderTitle: import("vue").ComputedRef<any>;
20
+ headerRef: import("vue").Ref<null>;
21
+ iconSize: import("vue").ComputedRef<number>;
22
+ headerTooltip: import("vue").ComputedRef<string>;
20
23
  infoAction: import("../../actions/actionHelper.js", { with: { "resolution-mode": "import" } }).VcsAction | undefined;
21
24
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
22
25
  windowState: {
@@ -1,5 +1,8 @@
1
1
  <template>
2
- <div :class="{ 'win-container-mobile': addMobileClass }">
2
+ <div
3
+ :class="{ 'win-container-mobile': addMobileClass }"
4
+ class="window-manager"
5
+ >
3
6
  <WindowComponent
4
7
  v-for="id in componentIds"
5
8
  :key="id"
@@ -160,9 +163,9 @@
160
163
  const position = getPosition(windowComponent);
161
164
  moveWindow(id, translation, windowManager, targetSize.value, position);
162
165
  };
163
-
166
+ const display = useDisplay();
164
167
  const addMobileClass = computed(() => {
165
- return useDisplay().xs.value && componentIds.length > 0;
168
+ return display.xs.value && componentIds.length > 0;
166
169
  });
167
170
 
168
171
  const setTargetSize = () => {
@@ -14,30 +14,48 @@ export function isSlotPosition(windowPosition: WindowPosition): boolean;
14
14
  /**
15
15
  * @typedef {{
16
16
  * id?: string,
17
- * parendId?: string,
18
- * component: import("vue").Component<T, unknown, unknown>,
19
- * headerComponent?: import("vue").Component<T, unknown, unknown>,
20
- * state? : Partial<WindowState>,
17
+ * parentId?: string,
18
+ * component: import("vue").Component<T>,
19
+ * headerComponent?: import("vue").Component<T>,
20
+ * state? : WindowStateOptions,
21
21
  * position? : Partial<WindowPositionOptions>,
22
- * slot: WindowSlot,
22
+ * slot?: WindowSlot,
23
23
  * props?: T,
24
24
  * provides?: Record<string, unknown>
25
25
  * }} WindowComponentOptions
26
- * @template {Object} [T=Object]
26
+ * @template [T=any]
27
27
  * @property {string} [id] Optional ID, If not provided an uuid will be generated.
28
28
  * @property {string} [parentId] An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
29
29
  * @property {import("vue").Component<T, unknown, unknown>} component Main Component which is shown below the header.
30
30
  * @property {import("vue").Component<T, unknown, unknown>} [headerComponent] Replaces the Header Component.
31
- * @property {Partial<WindowState>} [state]
31
+ * @property {WindowStateOptions} [state]
32
32
  * @property {Partial<WindowPositionOptions>} [position] Will be merged with default position for slot
33
33
  * @property {WindowSlot} [slot]
34
34
  * @property {T} [props]
35
35
  * @property {Object} [provides]
36
36
  */
37
+ /**
38
+ * @typedef {T|import('vue').Ref<T>|import('vue').ComputedRef<T>} OptionsOrRef
39
+ * @template T
40
+ */
41
+ /**
42
+ * @typedef {Object} WindowStateOptions
43
+ * @property {OptionsOrRef<boolean>} [hideHeader] be used to not show the header.
44
+ * @property {OptionsOrRef<boolean>} [hidePin] be used to not show the pin button.
45
+ * @property {OptionsOrRef<string|string[]>} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
46
+ * @property {OptionsOrRef<string>} [headerIcon]
47
+ * @property {OptionsOrRef<Array<import("../../actions/actionHelper.js").VcsAction>>} [headerActions]
48
+ * @property {OptionsOrRef<number>} [headerActionsOverflow]
49
+ * @property {OptionsOrRef<string>} [infoUrl] An optional url referencing help or further information on the window's content.
50
+ * @property {OptionsOrRef<function():string>} [infoUrlCallback] An optional function returning an url referencing help or further information. Can be used for urls depending on the app's locale, e.g. app.getHelpUrl()
51
+ * @property {Record<string, string>} [styles] Can be used to add additional styles to the root WindowComponent. Use Vue Style Bindings Object Syntax https://vuejs.org/v2/guide/class-and-style.html
52
+ * @property {Array<string>|Record<string,string>} [classes] Can be used to add additional classes to the root WindowComponent. Use Vue Class Bindings Syntax https://vuejs.org/v2/guide/class-and-style.html
53
+ */
37
54
  /**
38
55
  * @typedef {Object} WindowState
39
56
  * @property {string} id
40
57
  * @property {string|vcsAppSymbol} owner Owner of the window, set by windowManager on add
58
+ * @property {string|undefined} parentId - the parent of this window
41
59
  * @property {boolean} [hideHeader] be used to not show the header.
42
60
  * @property {boolean} [hidePin] be used to not show the pin button.
43
61
  * @property {string|string[]} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
@@ -53,7 +71,7 @@ export function isSlotPosition(windowPosition: WindowPosition): boolean;
53
71
  /**
54
72
  * @typedef {{
55
73
  * id: string,
56
- * parendId?: string,
74
+ * parentId?: string,
57
75
  * component: import("vue").Component<T, unknown, unknown>,
58
76
  * headerComponent?: import("vue").Component<T, unknown, unknown>,
59
77
  * state : Partial<WindowState>,
@@ -129,23 +147,61 @@ export namespace WindowPositions {
129
147
  export { DETACHED_1 as DETACHED };
130
148
  }
131
149
  export default WindowManager;
132
- export type WindowComponentOptions<T extends Object = Object> = {
150
+ export type WindowComponentOptions<T = any> = {
133
151
  id?: string;
134
- parendId?: string;
135
- component: import("vue").Component<T, unknown, unknown>;
136
- headerComponent?: import("vue").Component<T, unknown, unknown>;
137
- state?: Partial<WindowState>;
152
+ parentId?: string;
153
+ component: import("vue").Component<T>;
154
+ headerComponent?: import("vue").Component<T>;
155
+ state?: WindowStateOptions;
138
156
  position?: Partial<WindowPositionOptions>;
139
- slot: WindowSlot;
157
+ slot?: WindowSlot;
140
158
  props?: T;
141
159
  provides?: Record<string, unknown>;
142
160
  };
161
+ export type OptionsOrRef<T> = T | import('vue').Ref<T> | import('vue').ComputedRef<T>;
162
+ export type WindowStateOptions = {
163
+ /**
164
+ * be used to not show the header.
165
+ */
166
+ hideHeader?: OptionsOrRef<boolean> | undefined;
167
+ /**
168
+ * be used to not show the pin button.
169
+ */
170
+ hidePin?: OptionsOrRef<boolean> | undefined;
171
+ /**
172
+ * An optional translatable header. If an array is provided all elements are translated and joined afterward.
173
+ */
174
+ headerTitle?: OptionsOrRef<string | string[]> | undefined;
175
+ headerIcon?: OptionsOrRef<string> | undefined;
176
+ headerActions?: OptionsOrRef<import("../../actions/actionHelper.js").VcsAction[]> | undefined;
177
+ headerActionsOverflow?: OptionsOrRef<number> | undefined;
178
+ /**
179
+ * An optional url referencing help or further information on the window's content.
180
+ */
181
+ infoUrl?: OptionsOrRef<string> | undefined;
182
+ /**
183
+ * An optional function returning an url referencing help or further information. Can be used for urls depending on the app's locale, e.g. app.getHelpUrl()
184
+ */
185
+ infoUrlCallback?: OptionsOrRef<() => string> | undefined;
186
+ /**
187
+ * Can be used to add additional styles to the root WindowComponent. Use Vue Style Bindings Object Syntax https://vuejs.org/v2/guide/class-and-style.html
188
+ */
189
+ styles?: Record<string, string> | undefined;
190
+ /**
191
+ * Can be used to add additional classes to the root WindowComponent. Use Vue Class Bindings Syntax https://vuejs.org/v2/guide/class-and-style.html
192
+ */
193
+ classes?: string[] | Record<string, string> | undefined;
194
+ };
143
195
  export type WindowState = {
144
196
  id: string;
145
197
  /**
146
198
  * Owner of the window, set by windowManager on add
147
199
  */
148
200
  owner: string | symbol;
201
+ /**
202
+ * - the parent of this window
203
+ */
204
+ parentId: string | undefined;
149
205
  /**
150
206
  * be used to not show the header.
151
207
  */
@@ -188,7 +244,7 @@ export type WindowState = {
188
244
  };
189
245
  export type WindowComponent<T extends Object = Object> = {
190
246
  id: string;
191
- parendId?: string;
247
+ parentId?: string;
192
248
  component: import("vue").Component<T, unknown, unknown>;
193
249
  headerComponent?: import("vue").Component<T, unknown, unknown>;
194
250
  state: Partial<WindowState>;
@@ -2,7 +2,7 @@ import { computed, reactive, ref } from 'vue';
2
2
  import { VcsEvent } from '@vcmap/core';
3
3
  import { v4 as uuidv4 } from 'uuid';
4
4
  import { parseEnumValue } from '@vcsuite/parsers';
5
- import { check } from '@vcsuite/check';
5
+ import { check, oneOf } from '@vcsuite/check';
6
6
  import { vcsAppSymbol } from '../../pluginHelper.js';
7
7
 
8
8
  /**
@@ -104,31 +104,51 @@ export function isSlotPosition(windowPosition) {
104
104
  /**
105
105
  * @typedef {{
106
106
  * id?: string,
107
- * parendId?: string,
108
- * component: import("vue").Component<T, unknown, unknown>,
109
- * headerComponent?: import("vue").Component<T, unknown, unknown>,
110
- * state? : Partial<WindowState>,
107
+ * parentId?: string,
108
+ * component: import("vue").Component<T>,
109
+ * headerComponent?: import("vue").Component<T>,
110
+ * state? : WindowStateOptions,
111
111
  * position? : Partial<WindowPositionOptions>,
112
- * slot: WindowSlot,
112
+ * slot?: WindowSlot,
113
113
  * props?: T,
114
114
  * provides?: Record<string, unknown>
115
115
  * }} WindowComponentOptions
116
- * @template {Object} [T=Object]
116
+ * @template [T=any]
117
117
  * @property {string} [id] Optional ID, If not provided an uuid will be generated.
118
118
  * @property {string} [parentId] An optional ID of a parent window for 'dynamicChild' slot. Parent windows with slot dynamicRight are not supported.
119
119
  * @property {import("vue").Component<T, unknown, unknown>} component Main Component which is shown below the header.
120
120
  * @property {import("vue").Component<T, unknown, unknown>} [headerComponent] Replaces the Header Component.
121
- * @property {Partial<WindowState>} [state]
121
+ * @property {WindowStateOptions} [state]
122
122
  * @property {Partial<WindowPositionOptions>} [position] Will be merged with default position for slot
123
123
  * @property {WindowSlot} [slot]
124
124
  * @property {T} [props]
125
125
  * @property {Object} [provides]
126
126
  */
127
127
 
128
+ /**
129
+ * @typedef {T|import('vue').Ref<T>|import('vue').ComputedRef<T>} OptionsOrRef
130
+ * @template T
131
+ */
132
+
133
+ /**
134
+ * @typedef {Object} WindowStateOptions
135
+ * @property {OptionsOrRef<boolean>} [hideHeader] be used to not show the header.
136
+ * @property {OptionsOrRef<boolean>} [hidePin] be used to not show the pin button.
137
+ * @property {OptionsOrRef<string|string[]>} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
138
+ * @property {OptionsOrRef<string>} [headerIcon]
139
+ * @property {OptionsOrRef<Array<import("../../actions/actionHelper.js").VcsAction>>} [headerActions]
140
+ * @property {OptionsOrRef<number>} [headerActionsOverflow]
141
+ * @property {OptionsOrRef<string>} [infoUrl] An optional url referencing help or further information on the window's content.
142
+ * @property {OptionsOrRef<function():string>} [infoUrlCallback] An optional function returning an url referencing help or further information. Can be used for urls depending on the app's locale, e.g. app.getHelpUrl()
143
+ * @property {Record<string, string>} [styles] Can be used to add additional styles to the root WindowComponent. Use Vue Style Bindings Object Syntax https://vuejs.org/v2/guide/class-and-style.html
144
+ * @property {Array<string>|Record<string,string>} [classes] Can be used to add additional classes to the root WindowComponent. Use Vue Class Bindings Syntax https://vuejs.org/v2/guide/class-and-style.html
145
+ */
146
+
128
147
  /**
129
148
  * @typedef {Object} WindowState
130
149
  * @property {string} id
131
150
  * @property {string|vcsAppSymbol} owner Owner of the window, set by windowManager on add
151
+ * @property {string|undefined} parentId - the parent of this window
132
152
  * @property {boolean} [hideHeader] be used to not show the header.
133
153
  * @property {boolean} [hidePin] be used to not show the pin button.
134
154
  * @property {string|string[]} [headerTitle] An optional translatable header. If an array is provided all elements are translated and joined afterward.
@@ -145,7 +165,7 @@ export function isSlotPosition(windowPosition) {
145
165
  /**
146
166
  * @typedef {{
147
167
  * id: string,
148
- * parendId?: string,
168
+ * parentId?: string,
149
169
  * component: import("vue").Component<T, unknown, unknown>,
150
170
  * headerComponent?: import("vue").Component<T, unknown, unknown>,
151
171
  * state : Partial<WindowState>,
@@ -563,7 +583,7 @@ class WindowManager {
563
583
  * @returns {WindowComponent}
564
584
  */
565
585
  add(windowComponentOptions, owner) {
566
- check(owner, [String, vcsAppSymbol]);
586
+ check(owner, oneOf(String, vcsAppSymbol));
567
587
 
568
588
  if (
569
589
  windowComponentOptions.id &&
@@ -599,6 +619,7 @@ class WindowManager {
599
619
  ? [...(windowComponentOptions?.state?.classes ?? [])]
600
620
  : { ...windowComponentOptions?.state?.classes };
601
621
 
622
+ /** @type {WindowState} */
602
623
  const state = reactive({
603
624
  id,
604
625
  parentId,
@@ -747,7 +768,7 @@ class WindowManager {
747
768
  */
748
769
  addExternalIdToZIndex(id, owner) {
749
770
  check(id, String);
750
- check(owner, [String, vcsAppSymbol]);
771
+ check(owner, oneOf(String, vcsAppSymbol));
751
772
 
752
773
  if (this.has(id)) {
753
774
  throw new Error(`Id ${id} already belongs to a window id`);