@vcmap/ui 6.0.0-rc.5 → 6.0.0-rc.7

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 (282) hide show
  1. package/build/buildTypes.js +9 -5
  2. package/config/base.config.json +8 -8
  3. package/config/dev.config.json +4 -0
  4. package/config/projects.config.json +2 -1
  5. package/config/theming.config.json +68 -0
  6. package/config/www.config.json +31 -30
  7. package/dist/assets/cesium/Workers/{chunk-LUYI3XCB.js → chunk-2LOWCAMW.js} +13 -13
  8. package/dist/assets/cesium/Workers/{chunk-V7WJDCPA.js → chunk-2PTKXHJB.js} +10 -10
  9. package/dist/assets/cesium/Workers/{chunk-YFVI4SQI.js → chunk-3HQMMUPU.js} +1 -1
  10. package/dist/assets/cesium/Workers/{chunk-XGI4FRXF.js → chunk-3IFRSGEY.js} +9 -9
  11. package/dist/assets/cesium/Workers/{chunk-4RJH3H6D.js → chunk-44QAAS4P.js} +7 -7
  12. package/dist/assets/cesium/Workers/{chunk-4EW3HFFI.js → chunk-56EDBCGT.js} +10 -10
  13. package/dist/assets/cesium/Workers/{chunk-PRKEY4QK.js → chunk-57H6I3SV.js} +5 -5
  14. package/dist/assets/cesium/Workers/{chunk-X67EJ6X6.js → chunk-6SQMLVGV.js} +54 -7
  15. package/dist/assets/cesium/Workers/{chunk-RRLGJV3Q.js → chunk-7YIOHQWH.js} +13 -13
  16. package/dist/assets/cesium/Workers/{chunk-G6346EDR.js → chunk-7ZZ5LMZY.js} +16 -15
  17. package/dist/assets/cesium/Workers/{chunk-YFYPR4MW.js → chunk-BVKITG4N.js} +7 -7
  18. package/dist/assets/cesium/Workers/{chunk-N5MIFVXJ.js → chunk-C3EQ27WF.js} +6 -6
  19. package/dist/assets/cesium/Workers/{chunk-TLGODPEV.js → chunk-C4WPMOKT.js} +6 -5
  20. package/dist/assets/cesium/Workers/{chunk-DTACCQDR.js → chunk-EDLRS3AW.js} +6 -6
  21. package/dist/assets/cesium/Workers/{chunk-EVU2UNBD.js → chunk-EJVGYGLF.js} +7 -7
  22. package/dist/assets/cesium/Workers/{chunk-FYYT5EVH.js → chunk-FFLMY4TE.js} +5 -5
  23. package/dist/assets/cesium/Workers/{chunk-5OUTANXX.js → chunk-GBT7MJ6X.js} +1 -1
  24. package/dist/assets/cesium/Workers/{chunk-3DRPXHZ4.js → chunk-HJMNR3GC.js} +11 -11
  25. package/dist/assets/cesium/Workers/{chunk-IALQGTA2.js → chunk-HP5XLODI.js} +6 -6
  26. package/dist/assets/cesium/Workers/{chunk-DR7LK6PG.js → chunk-IBRIWOCM.js} +13 -13
  27. package/dist/assets/cesium/Workers/{chunk-WMVCLETM.js → chunk-IZGUQO6Q.js} +13 -13
  28. package/dist/assets/cesium/Workers/{chunk-T6TZXGG5.js → chunk-IZJ42N4W.js} +17 -17
  29. package/dist/assets/cesium/Workers/{chunk-FZDKIUDT.js → chunk-JBSKHTNX.js} +4 -4
  30. package/dist/assets/cesium/Workers/{chunk-S4VTLNAJ.js → chunk-JISPSEF3.js} +4 -4
  31. package/dist/assets/cesium/Workers/{chunk-KNMGSIIN.js → chunk-JSQJDZI4.js} +6 -6
  32. package/dist/assets/cesium/Workers/{chunk-LMTN7R7M.js → chunk-JXVLNVXC.js} +7 -7
  33. package/dist/assets/cesium/Workers/{chunk-A5C2A5O5.js → chunk-KHZNBFOH.js} +7 -7
  34. package/dist/assets/cesium/Workers/{chunk-PIOKSAZH.js → chunk-L5GODJAR.js} +14 -14
  35. package/dist/assets/cesium/Workers/{chunk-Q7PM4W34.js → chunk-LJ2JQHJT.js} +12 -7
  36. package/dist/assets/cesium/Workers/{chunk-D6PDWQXW.js → chunk-LLAF3CPH.js} +2 -2
  37. package/dist/assets/cesium/Workers/{chunk-H7PSTL64.js → chunk-M24KHENR.js} +2 -2
  38. package/dist/assets/cesium/Workers/{chunk-I67V66MN.js → chunk-NDDI2LWR.js} +6 -6
  39. package/dist/assets/cesium/Workers/{chunk-FSXNF76Y.js → chunk-NGZJIN5Z.js} +4 -4
  40. package/dist/assets/cesium/Workers/{chunk-UMX265HW.js → chunk-O72GZTSE.js} +2 -2
  41. package/dist/assets/cesium/Workers/{chunk-WOA6WSHH.js → chunk-OPP2SKMA.js} +12 -12
  42. package/dist/assets/cesium/Workers/{chunk-VD6G7UPU.js → chunk-P6TRGU3S.js} +2 -2
  43. package/dist/assets/cesium/Workers/{chunk-QLC66ZRL.js → chunk-QN6TBED4.js} +11 -11
  44. package/dist/assets/cesium/Workers/{chunk-O7OUBDMZ.js → chunk-QQOZO7KO.js} +7 -7
  45. package/dist/assets/cesium/Workers/{chunk-AGTH5JMJ.js → chunk-RJM36CNY.js} +6 -6
  46. package/dist/assets/cesium/Workers/{chunk-UC566ISB.js → chunk-RTJKHZWU.js} +6 -6
  47. package/dist/assets/cesium/Workers/{chunk-L4XQPD6P.js → chunk-TI3TRKIC.js} +423 -448
  48. package/dist/assets/cesium/Workers/{chunk-3GI7DWF7.js → chunk-TK5IIG2F.js} +4 -4
  49. package/dist/assets/cesium/Workers/{chunk-6DH5PLFD.js → chunk-U5HSOKPQ.js} +1 -1
  50. package/dist/assets/cesium/Workers/{chunk-BPY4HDAK.js → chunk-WGDFYAGC.js} +4 -4
  51. package/dist/assets/cesium/Workers/{chunk-SJC5PRDX.js → chunk-X7IQYYHF.js} +2 -2
  52. package/dist/assets/cesium/Workers/{chunk-4OX4RYLB.js → chunk-XIUSRWL6.js} +9 -5
  53. package/dist/assets/cesium/Workers/{chunk-S2UEXF6T.js → chunk-XWOUPGUF.js} +1 -1
  54. package/dist/assets/cesium/Workers/{chunk-F7IEM66T.js → chunk-YCDZX5LS.js} +1 -1
  55. package/dist/assets/cesium/Workers/{chunk-AVFIYUKX.js → chunk-YK3QIKY7.js} +9 -9
  56. package/dist/assets/cesium/Workers/{chunk-BAJAVGUF.js → chunk-YSIJTJ7N.js} +5 -5
  57. package/dist/assets/cesium/Workers/{chunk-6DXIYFX3.js → chunk-Z2QP3CXW.js} +2 -2
  58. package/dist/assets/cesium/Workers/{chunk-P24I5VUS.js → chunk-ZVUUPJEM.js} +17 -17
  59. package/dist/assets/cesium/Workers/combineGeometry.js +22 -22
  60. package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -16
  61. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -14
  62. package/dist/assets/cesium/Workers/createCircleGeometry.js +24 -24
  63. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -17
  64. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +31 -31
  65. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
  66. package/dist/assets/cesium/Workers/createCorridorGeometry.js +27 -27
  67. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +26 -26
  68. package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -18
  69. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +16 -16
  70. package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -24
  71. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -17
  72. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -17
  73. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -16
  74. package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -16
  75. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +16 -16
  76. package/dist/assets/cesium/Workers/createGeometry.js +22 -22
  77. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +20 -20
  78. package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -14
  79. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -13
  80. package/dist/assets/cesium/Workers/createPolygonGeometry.js +30 -30
  81. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +28 -28
  82. package/dist/assets/cesium/Workers/createPolylineGeometry.js +23 -23
  83. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +29 -29
  84. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
  85. package/dist/assets/cesium/Workers/createRectangleGeometry.js +25 -25
  86. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +18 -18
  87. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +21 -21
  88. package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -17
  89. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -16
  90. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
  91. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +13 -13
  92. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -22
  93. package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
  94. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -20
  95. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +13 -13
  96. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -20
  97. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +24 -20
  98. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -17
  99. package/dist/assets/cesium/Workers/createWallGeometry.js +22 -22
  100. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +21 -21
  101. package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
  102. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +28 -5
  103. package/dist/assets/cesium/Workers/decodeI3S.js +10 -10
  104. package/dist/assets/cesium/Workers/transcodeKTX2.js +19 -18
  105. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  106. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +20 -20
  107. package/dist/assets/{cesium-126f111a.js → cesium-2afc3568.js} +136600 -136700
  108. package/dist/assets/cesium.js +1 -1
  109. package/dist/assets/{core-1c8b8674.js → core-3fd82bc2.js} +8384 -7554
  110. package/dist/assets/core.js +1 -1
  111. package/dist/assets/{ol-27f9b3f3.js → ol-edf7bfb3.js} +2246 -2248
  112. package/dist/assets/ol.js +1 -1
  113. package/dist/assets/ui-c6eb55a5.css +1 -0
  114. package/dist/assets/{ui-7214428e.js → ui-c6eb55a5.js} +8687 -8464
  115. package/dist/assets/ui.js +1 -1
  116. package/dist/assets/vue.js +1 -1
  117. package/dist/assets/{vuetify-88a2fabe.css → vuetify-c3b6c9b3.css} +1 -1
  118. package/dist/assets/{vuetify-88a2fabe.js → vuetify-c3b6c9b3.js} +2375 -2369
  119. package/dist/assets/vuetify.js +1 -1
  120. package/index.d.ts +22 -10
  121. package/index.js +9 -3
  122. package/package.json +4 -4
  123. package/plugins/@vcmap-show-case/custom-icons-example/README.md +3 -0
  124. package/plugins/@vcmap-show-case/custom-icons-example/assets/imageExample.png +0 -0
  125. package/plugins/@vcmap-show-case/custom-icons-example/assets/svgExample.svg +1 -0
  126. package/plugins/@vcmap-show-case/custom-icons-example/package.json +5 -0
  127. package/plugins/@vcmap-show-case/custom-icons-example/src/CustomIconsExample.vue +90 -0
  128. package/plugins/@vcmap-show-case/custom-icons-example/src/index.js +45 -0
  129. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +2 -2
  130. package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +11 -7
  131. package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +1 -1
  132. package/plugins/@vcmap-show-case/theming-example/README.md +3 -0
  133. package/plugins/@vcmap-show-case/theming-example/package.json +5 -0
  134. package/plugins/@vcmap-show-case/theming-example/src/ThemingExample.vue +116 -0
  135. package/plugins/@vcmap-show-case/theming-example/src/index.js +53 -0
  136. package/plugins/@vcmap-show-case/vector-properties-example/src/GeometrySettings.vue +420 -0
  137. package/plugins/@vcmap-show-case/vector-properties-example/src/LayoutHandler.vue +97 -0
  138. package/plugins/@vcmap-show-case/vector-properties-example/src/TerrainSettings.vue +90 -0
  139. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +61 -70
  140. package/plugins/@vcmap-show-case/vector-properties-example/src/index.js +34 -1
  141. package/plugins/@vcmap-show-case/vector-properties-example/src/lib.js +294 -0
  142. package/plugins/package.json +5 -1
  143. package/src/actions/StyleSelector.vue +35 -19
  144. package/src/actions/StyleSelector.vue.d.ts +5 -5
  145. package/src/actions/actionHelper.d.ts +4 -11
  146. package/src/actions/actionHelper.js +2 -5
  147. package/src/actions/listActions.d.ts +2 -2
  148. package/src/application/VcsApp.vue +20 -26
  149. package/src/application/VcsApp.vue.d.ts +5 -1
  150. package/src/application/VcsAttributionsFooter.vue +20 -11
  151. package/src/application/VcsAttributionsFooter.vue.d.ts +1 -1
  152. package/src/application/VcsContainer.vue +2 -2
  153. package/src/application/VcsContainer.vue.d.ts +5 -1
  154. package/src/application/VcsNavbar.vue +9 -1
  155. package/src/application/VcsNavbar.vue.d.ts +1 -0
  156. package/src/application/VcsSplashScreen.vue +11 -2
  157. package/src/application/VcsTextPageFooter.vue +4 -4
  158. package/src/application/attributionsHelper.d.ts +20 -22
  159. package/src/application/attributionsHelper.js +4 -4
  160. package/src/callback/vcsCallback.d.ts +2 -2
  161. package/src/callback/vcsCallback.js +1 -1
  162. package/src/components/buttons/VcsActionButtonList.vue +2 -3
  163. package/src/components/buttons/VcsButton.vue +2 -4
  164. package/src/components/buttons/VcsButton.vue.d.ts +1 -1
  165. package/src/components/buttons/VcsFormButton.vue +4 -4
  166. package/src/components/buttons/VcsToolButton.vue +4 -2
  167. package/src/components/buttons/VcsToolButton.vue.d.ts +2 -2
  168. package/src/components/composables.d.ts +5 -0
  169. package/src/components/composables.js +79 -9
  170. package/src/components/extent/VcsExtent.vue +10 -6
  171. package/src/components/extent/VcsExtent.vue.d.ts +1 -0
  172. package/src/components/flight/VcsFlightComponent.vue +13 -13
  173. package/src/components/flight/VcsFlightComponent.vue.d.ts +1 -0
  174. package/src/components/form-inputs-controls/VcsCheckbox.vue +8 -3
  175. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +3 -8
  176. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +0 -1
  177. package/src/components/form-inputs-controls/VcsCoordinate.vue +1 -2
  178. package/src/components/form-inputs-controls/VcsFileInput.vue +1 -1
  179. package/src/components/form-inputs-controls/VcsLabel.vue +32 -9
  180. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +2 -0
  181. package/src/components/form-inputs-controls/VcsRadio.vue +8 -6
  182. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
  183. package/src/components/form-inputs-controls/VcsSelect.vue +2 -2
  184. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +2 -2
  185. package/src/components/form-inputs-controls/VcsSlider.vue +5 -5
  186. package/src/components/form-inputs-controls/VcsTextArea.vue +1 -1
  187. package/src/components/form-inputs-controls/VcsTextField.vue +10 -1
  188. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +2 -1
  189. package/src/components/form-inputs-controls/VcsWizard.vue +3 -3
  190. package/src/components/form-inputs-controls/VcsWizardStep.vue +5 -1
  191. package/src/components/form-inputs-controls/vcsTextField.scss +7 -1
  192. package/src/components/form-output/VcsFormattedNumber.vue +1 -1
  193. package/src/components/import/VcsImportComponent.vue +7 -4
  194. package/src/components/import/VcsImportComponent.vue.d.ts +1 -1
  195. package/src/components/lists/VcsActionList.vue +2 -6
  196. package/src/components/lists/VcsListItemComponent.vue +20 -10
  197. package/src/components/lists/VcsListItemComponent.vue.d.ts +11 -1
  198. package/src/components/lists/VcsTreeview.vue +75 -11
  199. package/src/components/lists/VcsTreeview.vue.d.ts +12 -0
  200. package/src/components/lists/VcsTreeviewSearchbar.vue +14 -3
  201. package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +3 -1
  202. package/src/components/lists/VcsTreeviewTitle.vue +40 -0
  203. package/src/components/modelHelper.d.ts +10 -8
  204. package/src/components/modelHelper.js +8 -6
  205. package/src/components/notification/VcsHelp.vue +6 -7
  206. package/src/components/notification/VcsHelp.vue.d.ts +0 -9
  207. package/src/components/plugins/AbstractConfigEditor.vue +1 -22
  208. package/src/components/plugins/AbstractConfigEditor.vue.d.ts +6 -29
  209. package/src/components/section/VcsExpansionPanel.vue +9 -3
  210. package/src/components/section/VcsExpansionPanel.vue.d.ts +2 -2
  211. package/src/components/section/VcsFormSection.vue +6 -6
  212. package/src/components/section/VcsFormSection.vue.d.ts +2 -2
  213. package/src/components/style/VcsImageSelector.vue +14 -6
  214. package/src/components/style/VcsImageSelector.vue.d.ts +1 -0
  215. package/src/components/style/VcsStrokeSelector.vue +5 -2
  216. package/src/components/style/VcsStrokeSelector.vue.d.ts +1 -0
  217. package/src/components/style/VcsTextMenu.vue +2 -2
  218. package/src/components/tables/VcsDataTable.vue +14 -10
  219. package/src/components/tables/VcsDataTable.vue.d.ts +1 -0
  220. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +17 -34
  221. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +5 -3
  222. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +78 -43
  223. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +4 -2
  224. package/src/components/viewpoint/VcsViewpointComponent.vue +12 -9
  225. package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +1 -0
  226. package/src/contentTree/contentTreeItem.d.ts +2 -2
  227. package/src/contentTree/contentTreeItem.js +1 -1
  228. package/src/contentTree/layerContentTreeItem.d.ts +8 -5
  229. package/src/contentTree/layerContentTreeItem.js +48 -34
  230. package/src/contentTree/layerGroupContentTreeItem.d.ts +7 -1
  231. package/src/contentTree/layerGroupContentTreeItem.js +22 -3
  232. package/src/featureInfo/BalloonComponent.vue +21 -13
  233. package/src/featureInfo/BalloonComponent.vue.d.ts +1 -0
  234. package/src/featureInfo/abstractFeatureInfoView.d.ts +4 -4
  235. package/src/featureInfo/abstractFeatureInfoView.js +4 -4
  236. package/src/featureInfo/balloonHelper.js +1 -1
  237. package/src/featureInfo/featureInfo.d.ts +2 -2
  238. package/src/featureInfo/featureInfo.js +1 -1
  239. package/src/i18n/de.d.ts +5 -0
  240. package/src/i18n/de.js +7 -2
  241. package/src/i18n/en.d.ts +5 -0
  242. package/src/i18n/en.js +6 -1
  243. package/src/i18n/i18nCollection.d.ts +9 -15
  244. package/src/i18n/i18nCollection.js +3 -3
  245. package/src/legend/VcsLegend.vue +6 -2
  246. package/src/legend/VcsLegend.vue.d.ts +1 -0
  247. package/src/manager/collectionManager/CollectionComponentList.vue +1 -1
  248. package/src/manager/collectionManager/categoryManager.d.ts +1 -1
  249. package/src/manager/collectionManager/collectionComponentClass.d.ts +2 -2
  250. package/src/manager/collectionManager/collectionComponentClass.js +4 -4
  251. package/src/manager/collectionManager/collectionManager.d.ts +1 -1
  252. package/src/manager/toolbox/GroupToolboxComponent.vue +8 -6
  253. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +1 -1
  254. package/src/manager/toolbox/SelectToolboxComponent.vue +8 -6
  255. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +1 -1
  256. package/src/manager/toolbox/{ToolboxManager.vue → ToolboxManagerComponent.vue} +8 -5
  257. package/src/manager/toolbox/{ToolboxManager.vue.d.ts → ToolboxManagerComponent.vue.d.ts} +1 -1
  258. package/src/manager/window/WindowComponentHeader.vue +6 -3
  259. package/src/manager/window/WindowComponentHeader.vue.d.ts +1 -0
  260. package/src/manager/window/windowManager.d.ts +6 -6
  261. package/src/manager/window/windowManager.js +3 -3
  262. package/src/navigation/OrientationToolsButton.vue +2 -4
  263. package/src/navigation/TiltSlider.vue +3 -5
  264. package/src/navigation/locatorHelper.js +3 -21
  265. package/src/search/SearchComponent.vue +8 -6
  266. package/src/search/SearchComponent.vue.d.ts +1 -1
  267. package/src/styles/vcsList.scss +1 -1
  268. package/src/uiConfig.d.ts +12 -3
  269. package/src/uiConfig.js +2 -1
  270. package/src/vcsUiApp.d.ts +39 -53
  271. package/src/vcsUiApp.js +30 -24
  272. package/src/vuePlugins/vuetify.d.ts +88 -62
  273. package/src/vuePlugins/vuetify.js +116 -20
  274. package/dist/assets/ui-7214428e.css +0 -1
  275. package/plugins/@vcmap-show-case/theme-changer/README.md +0 -23
  276. package/plugins/@vcmap-show-case/theme-changer/config.json +0 -69
  277. package/plugins/@vcmap-show-case/theme-changer/package.json +0 -11
  278. package/plugins/@vcmap-show-case/theme-changer/src/ThemeChangerComponent.vue +0 -120
  279. package/plugins/@vcmap-show-case/theme-changer/src/index.js +0 -108
  280. package/src/components/lists/VcsTreeviewLeaf.vue +0 -92
  281. /package/dist/assets/{vue-c78a5f76.js → vue-aefad438.js} +0 -0
  282. /package/src/components/lists/{VcsTreeviewLeaf.vue.d.ts → VcsTreeviewTitle.vue.d.ts} +0 -0
package/src/vcsUiApp.js CHANGED
@@ -48,39 +48,45 @@ import { createVcsVuetify } from './vuePlugins/vuetify.js';
48
48
 
49
49
  /**
50
50
  * @typedef {import("@vcmap/core").VcsModuleConfig & {
51
- * plugins?: Object[],
51
+ * plugins?: Record<string, unknown>[],
52
52
  * contentTree?: import("./contentTree/contentTreeItem.js").ContentTreeItemOptions[],
53
53
  * uiConfig?: import("./uiConfig.js").UiConfigurationItem<unknown>[],
54
54
  * featureInfo?: import("./featureInfo/abstractFeatureInfoView.js").FeatureInfoViewOptions[],
55
- * i18n?: Object[]
55
+ * i18n?: import("./i18n/i18nCollection.js").I18nConfigurationItem[]
56
56
  * }} VcsUiModuleConfig
57
57
  */
58
58
 
59
59
  /**
60
- * @typedef {Object} PluginConfig
60
+ * @typedef {{ name: string, entry?: string, version?: string}} PluginConfig
61
61
  * @property {string} name
62
62
  * @property {string|undefined} [entry] - path to the plugin's index.js
63
63
  * @property {string|undefined} [version] - version or version range
64
64
  */
65
65
 
66
66
  /**
67
- * @typedef {import("vue").Component<{ getConfig(): Promise<Config>, setConfig(config: Config): Promise<void> }> & {
68
- * title?: string
69
- * }} PluginConfigEditorComponent
70
- * @template {Object} Config
67
+ * @typedef {import("vue").Component<{ getConfig(): C, setConfig(config?: C): void }>} PluginConfigEditorComponent
68
+ * @template {Object} C - plugin or item config
71
69
  */
72
70
 
73
71
  /**
74
- * @typedef {Object} PluginConfigEditor
75
- * @property {PluginConfigEditorComponent<object>} component - A editor component to configure a plugin or item
72
+ * @typedef {{
73
+ * component: PluginConfigEditorComponent<C>,
74
+ * title?: string,
75
+ * collectionName?: string,
76
+ * itemName?: string,
77
+ * infoUrlCallback?: () => string,
78
+ * }} PluginConfigEditor
79
+ * @template {Object} C - plugin or item config
80
+ * @property {PluginConfigEditorComponent<C>} component - A editor component to configure a plugin or item
81
+ * @property {string} [title] - optional title to render in the window header & actions of this editor
76
82
  * @property {string} [collectionName='plugins'] - The collection the item belongs to. Default is plugins collection.
77
83
  * @property {string} [itemName] - The item the editor can be used for. Can be a name or className. Default is the plugin's name.
78
84
  * @property {function():string} [infoUrlCallback] - An optional function returning an url referencing help or further information regarding the config editor.
79
85
  */
80
86
 
81
87
  /**
82
- * @typedef {function(P, string):VcsPlugin<P, S>} createPlugin
83
- * @template {Object} P
88
+ * @typedef {function(C, string):VcsPlugin<C, S>} createPlugin
89
+ * @template {Object} C
84
90
  * @template {Object} S
85
91
  */
86
92
 
@@ -94,19 +100,19 @@ import { createVcsVuetify } from './vuePlugins/vuetify.js';
94
100
  * i18n?: Object<string, unknown>,
95
101
  * initialize?: function(import("@src/vcsUiApp.js").default, S=):void|Promise<void>,
96
102
  * onVcsAppMounted?: function(import("@src/vcsUiApp.js").default):void,
97
- * toJSON?: function(): P,
98
- * getDefaultOptions?: function(): P,
103
+ * toJSON?: function(): C,
104
+ * getDefaultOptions?: function(): C,
99
105
  * getState?: function(boolean=):S|Promise<S>,
100
- * getConfigEditors?: function():Array<PluginConfigEditor>,
106
+ * getConfigEditors?: function():Array<PluginConfigEditor<object>>,
101
107
  * destroy?: function(): void
102
108
  * }} VcsPlugin
103
- * @template {Object} P
104
- * @template {Object} S
109
+ * @template {Object} C - plugin config
110
+ * @template {Object} S - plugin state
105
111
  * @property {Object<string, *>} [i18n] - the i18n messages of this plugin
106
112
  * @property {function(import("@src/vcsUiApp.js").default, S=)} initialize - called on plugin added. Is passed the VcsUiApp and optionally, the state for the plugin
107
113
  * @property {function(import("@src/vcsUiApp.js").default)} onVcsAppMounted - called on mounted of VcsApp.vue
108
- * @property {function():P} [toJSON] - should return the plugin's serialization excluding all default values
109
- * @property {function():P} [getDefaultOptions] - should return the plugin's default options
114
+ * @property {function():C} [toJSON] - should return the plugin's serialization excluding all default values
115
+ * @property {function():C} [getDefaultOptions] - should return the plugin's default options
110
116
  * @property {function(boolean=):S|Promise<S>} [getState] - should return the plugin's state or a promise for said state. is passed a "for url" flag. If true, only the state relevant for sharing a URL should be passed and short keys shall be used
111
117
  * @property {Array<PluginConfigEditor>} [getConfigEditors] - should return components for configuring the plugin or custom items defined by the plugin
112
118
  * @api
@@ -164,7 +170,7 @@ class VcsUiApp extends VcsApp {
164
170
  */
165
171
  this.themeChanged = new VcsEvent();
166
172
  /**
167
- * @type {import("@vcmap/core").OverrideCollection<VcsPlugin>}
173
+ * @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin>, Object>}
168
174
  * @private
169
175
  */
170
176
  this._plugins = makeOverrideCollection(
@@ -260,7 +266,7 @@ class VcsUiApp extends VcsApp {
260
266
  );
261
267
 
262
268
  /**
263
- * @type {import("@vcmap/core").OverrideClassRegistry<import("@vcmap/core").Ctor<ContentTreeItem>>}
269
+ * @type {import("@vcmap/core").OverrideClassRegistry<typeof ContentTreeItem>}
264
270
  * @private
265
271
  */
266
272
  this._contentTreeClassRegistry = new OverrideClassRegistry(
@@ -369,7 +375,7 @@ class VcsUiApp extends VcsApp {
369
375
  }
370
376
 
371
377
  /**
372
- * @type {import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>>}
378
+ * @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin>, Object>}
373
379
  */
374
380
  get plugins() {
375
381
  return this._plugins;
@@ -383,21 +389,21 @@ class VcsUiApp extends VcsApp {
383
389
  }
384
390
 
385
391
  /**
386
- * @type {import("@vcmap/core").OverrideClassRegistry<import("@vcmap/core").Ctor<typeof import("./callback/vcsCallback.js").default>>}
392
+ * @type {import("@vcmap/core").OverrideClassRegistry<typeof import("./callback/vcsCallback.js").default>}
387
393
  */
388
394
  get callbackClassRegistry() {
389
395
  return this._callbackClassRegistry;
390
396
  }
391
397
 
392
398
  /**
393
- * @type {import("@vcmap/core").OverrideClassRegistry<import("@vcmap/core").Ctor<typeof ContentTreeItem>>}
399
+ * @type {import("@vcmap/core").OverrideClassRegistry<typeof ContentTreeItem>}
394
400
  */
395
401
  get contentTreeClassRegistry() {
396
402
  return this._contentTreeClassRegistry;
397
403
  }
398
404
 
399
405
  /**
400
- * @type {import("@vcmap/core").OverrideClassRegistry<import("@vcmap/core").Ctor<typeof AbstractFeatureInfoView>>}
406
+ * @type {import("@vcmap/core").OverrideClassRegistry<typeof AbstractFeatureInfoView>}
401
407
  */
402
408
  get featureInfoClassRegistry() {
403
409
  return this._featureInfoClassRegistry;
@@ -1,61 +1,54 @@
1
- export function createVcsThemes(): {
2
- light: {
3
- colors: {
4
- base: string;
5
- 'base-lighten-5': string;
6
- 'base-lighten-4': string;
7
- 'base-lighten-3': string;
8
- 'base-lighten-2': string;
9
- 'base-lighten-1': string;
10
- 'base-darken-1': string;
11
- 'base-darken-2': string;
12
- 'base-darken-3': string;
13
- 'base-darken-4': string;
14
- primary: string;
15
- warning: string;
16
- error: string;
17
- info: string;
18
- success: string;
19
- 'surface-light': string;
20
- };
21
- variables: {
22
- 'hover-opacity': number;
23
- 'high-emphasis-opacity': number;
24
- 'medium-emphasis-opacity': number;
25
- 'vcs-item-height': string;
26
- 'vcs-font-size': string;
27
- 'vcs-font-family': string;
28
- };
29
- };
30
- dark: {
31
- colors: {
32
- base: string;
33
- 'base-lighten-5': string;
34
- 'base-lighten-4': string;
35
- 'base-lighten-3': string;
36
- 'base-lighten-2': string;
37
- 'base-lighten-1': string;
38
- 'base-darken-1': string;
39
- 'base-darken-2': string;
40
- 'base-darken-3': string;
41
- 'base-darken-4': string;
42
- primary: string;
43
- warning: string;
44
- error: string;
45
- info: string;
46
- success: string;
47
- 'surface-light': string;
48
- };
49
- variables: {
50
- 'hover-opacity': number;
51
- 'high-emphasis-opacity': number;
52
- 'medium-emphasis-opacity': number;
53
- 'vcs-item-height': string;
54
- 'vcs-font-size': string;
55
- 'vcs-font-family': string;
56
- };
57
- };
58
- };
1
+ /**
2
+ * @typedef {Object} VcsColors
3
+ * @property {string} [base]
4
+ * @property {string} [base-lighten-5]
5
+ * @property {string} [base-lighten-4]
6
+ * @property {string} [base-lighten-3]
7
+ * @property {string} [base-lighten-2]
8
+ * @property {string} [base-lighten-1]
9
+ * @property {string} [base-darken-1]
10
+ * @property {string} [base-darken-2]
11
+ * @property {string} [base-darken-3]
12
+ * @property {string} [base-darken-4]
13
+ * @property {string} [primary]
14
+ * @property {string} [warning]
15
+ * @property {string} [error]
16
+ * @property {string} [info]
17
+ * @property {string} [success]
18
+ * @property {string} [surface-light]
19
+ */
20
+ /**
21
+ * @typedef {Object} VcsVariables
22
+ * @property {string} [hover-opacity]
23
+ * @property {string} [high-emphasis-opacity]
24
+ * @property {string} [medium-emphasis-opacity]
25
+ * @property {string} [vcs-font-size]
26
+ * @property {string} [vcs-font-family]
27
+ */
28
+ /**
29
+ * @typedef {Object} VcsTheme
30
+ * @property {VcsColors} [colors]
31
+ * @property {VcsVariables} [variables]
32
+ */
33
+ /**
34
+ * @typedef {Object} VcsThemes
35
+ * @property {VcsTheme} [dark]
36
+ * @property {VcsTheme} [light]
37
+ */
38
+ /**
39
+ * @param {VcsThemes} [options]
40
+ * @param {{ dark:string, light:string }|string} [primaryColor]
41
+ * @returns {VcsThemes}
42
+ */
43
+ export function createVcsThemes(options?: VcsThemes | undefined, primaryColor?: string | {
44
+ dark: string;
45
+ light: string;
46
+ } | undefined): VcsThemes;
47
+ /**
48
+ * @param {ReturnType<typeof import("vuetify").createVuetify>} vuetify
49
+ * @param {VcsThemes} theme
50
+ */
51
+ export function setTheme(vuetify: ReturnType<typeof import("vuetify").createVuetify>, theme: VcsThemes): void;
59
52
  /**
60
53
  * @param {import("vue-i18n").I18n} i18n
61
54
  * @returns {ReturnType<typeof import("vuetify").createVuetify>}
@@ -81,15 +74,15 @@ export function getDefaultPrimaryColor(app: import("../vcsUiApp.js").default): s
81
74
  */
82
75
  export function getColorByKey(app: import("../vcsUiApp.js").default, value: string, variant?: string | undefined): string;
83
76
  /**
84
- * returns the itemHeight as a number
77
+ * returns the fontSize as a number
85
78
  * @returns {import("vue").ComputedRef<number>}
86
79
  */
87
- export function useItemHeight(): import("vue").ComputedRef<number>;
80
+ export function useFontSize(): import("vue").ComputedRef<number>;
88
81
  /**
89
- * returns the fontSize as a number
82
+ * returns the default IconSize as a number, value is based on the fontSize
90
83
  * @returns {import("vue").ComputedRef<number>}
91
84
  */
92
- export function useFontSize(): import("vue").ComputedRef<number>;
85
+ export function useIconSize(): import("vue").ComputedRef<number>;
93
86
  /**
94
87
  * @type {{light:string,dark:string}}
95
88
  */
@@ -97,3 +90,36 @@ export const defaultPrimaryColor: {
97
90
  light: string;
98
91
  dark: string;
99
92
  };
93
+ export type VcsColors = {
94
+ base?: string | undefined;
95
+ "base-lighten-5"?: string | undefined;
96
+ "base-lighten-4"?: string | undefined;
97
+ "base-lighten-3"?: string | undefined;
98
+ "base-lighten-2"?: string | undefined;
99
+ "base-lighten-1"?: string | undefined;
100
+ "base-darken-1"?: string | undefined;
101
+ "base-darken-2"?: string | undefined;
102
+ "base-darken-3"?: string | undefined;
103
+ "base-darken-4"?: string | undefined;
104
+ primary?: string | undefined;
105
+ warning?: string | undefined;
106
+ error?: string | undefined;
107
+ info?: string | undefined;
108
+ success?: string | undefined;
109
+ "surface-light"?: string | undefined;
110
+ };
111
+ export type VcsVariables = {
112
+ "hover-opacity"?: string | undefined;
113
+ "high-emphasis-opacity"?: string | undefined;
114
+ "medium-emphasis-opacity"?: string | undefined;
115
+ "vcs-font-size"?: string | undefined;
116
+ "vcs-font-family"?: string | undefined;
117
+ };
118
+ export type VcsTheme = {
119
+ colors?: VcsColors | undefined;
120
+ variables?: VcsVariables | undefined;
121
+ };
122
+ export type VcsThemes = {
123
+ dark?: VcsTheme | undefined;
124
+ light?: VcsTheme | undefined;
125
+ };
@@ -1,8 +1,10 @@
1
1
  import { createVuetify, useTheme } from 'vuetify';
2
+ import { VSvgIcon } from 'vuetify/components';
2
3
  import { useI18n } from 'vue-i18n';
3
4
  import 'vuetify/styles';
4
5
  import { createVueI18nAdapter } from 'vuetify/locale/adapters/vue-i18n';
5
- import { computed } from 'vue';
6
+ import { computed, h } from 'vue';
7
+ import DOMPurify from 'dompurify';
6
8
  import Icons from '../components/icons/+all.js';
7
9
 
8
10
  /**
@@ -13,7 +15,53 @@ export const defaultPrimaryColor = {
13
15
  dark: '#27B97C',
14
16
  };
15
17
 
16
- export function createVcsThemes() {
18
+ /**
19
+ * @typedef {Object} VcsColors
20
+ * @property {string} [base]
21
+ * @property {string} [base-lighten-5]
22
+ * @property {string} [base-lighten-4]
23
+ * @property {string} [base-lighten-3]
24
+ * @property {string} [base-lighten-2]
25
+ * @property {string} [base-lighten-1]
26
+ * @property {string} [base-darken-1]
27
+ * @property {string} [base-darken-2]
28
+ * @property {string} [base-darken-3]
29
+ * @property {string} [base-darken-4]
30
+ * @property {string} [primary]
31
+ * @property {string} [warning]
32
+ * @property {string} [error]
33
+ * @property {string} [info]
34
+ * @property {string} [success]
35
+ * @property {string} [surface-light]
36
+ */
37
+
38
+ /**
39
+ * @typedef {Object} VcsVariables
40
+ * @property {string} [hover-opacity]
41
+ * @property {string} [high-emphasis-opacity]
42
+ * @property {string} [medium-emphasis-opacity]
43
+ * @property {string} [vcs-font-size]
44
+ * @property {string} [vcs-font-family]
45
+ */
46
+
47
+ /**
48
+ * @typedef {Object} VcsTheme
49
+ * @property {VcsColors} [colors]
50
+ * @property {VcsVariables} [variables]
51
+ */
52
+
53
+ /**
54
+ * @typedef {Object} VcsThemes
55
+ * @property {VcsTheme} [dark]
56
+ * @property {VcsTheme} [light]
57
+ */
58
+
59
+ /**
60
+ * @param {VcsThemes} [options]
61
+ * @param {{ dark:string, light:string }|string} [primaryColor]
62
+ * @returns {VcsThemes}
63
+ */
64
+ export function createVcsThemes(options, primaryColor) {
17
65
  return {
18
66
  light: {
19
67
  colors: {
@@ -27,20 +75,22 @@ export function createVcsThemes() {
27
75
  'base-darken-2': '#6B6B6B',
28
76
  'base-darken-3': '#525252',
29
77
  'base-darken-4': '#383838',
30
- primary: defaultPrimaryColor.light,
78
+ primary:
79
+ primaryColor?.dark ?? primaryColor ?? defaultPrimaryColor.light,
31
80
  warning: '#FFCE00',
32
81
  error: '#AA0000',
33
82
  info: '#2196F3',
34
83
  success: '#4CAF50',
35
84
  'surface-light': '#ffffff',
85
+ ...options?.light?.colors,
36
86
  },
37
87
  variables: {
38
88
  'hover-opacity': 0.16,
39
89
  'high-emphasis-opacity': 1,
40
90
  'medium-emphasis-opacity': 1,
41
- 'vcs-item-height': '32px',
42
91
  'vcs-font-size': '13px',
43
92
  'vcs-font-family': 'Titillium Web',
93
+ ...options?.light?.variables,
44
94
  },
45
95
  },
46
96
  dark: {
@@ -55,25 +105,71 @@ export function createVcsThemes() {
55
105
  'base-darken-2': '#D0D0D0',
56
106
  'base-darken-3': '#EBEBEB',
57
107
  'base-darken-4': '#F8F8F8',
58
- primary: defaultPrimaryColor.dark,
108
+ primary: primaryColor?.dark ?? primaryColor ?? defaultPrimaryColor.dark,
59
109
  warning: '#FFCE00',
60
110
  error: '#FF5252',
61
111
  info: '#2196F3',
62
112
  success: '#4CAF50',
63
113
  'surface-light': '#222222',
114
+ ...options?.dark?.colors,
64
115
  },
65
116
  variables: {
66
117
  'hover-opacity': 0.16,
67
118
  'high-emphasis-opacity': 1,
68
119
  'medium-emphasis-opacity': 1,
69
- 'vcs-item-height': '40px',
70
- 'vcs-font-size': '15px',
120
+ 'vcs-font-size': '13px',
71
121
  'vcs-font-family': 'Titillium Web',
122
+ ...options?.dark?.variables,
72
123
  },
73
124
  },
74
125
  };
75
126
  }
76
127
 
128
+ /**
129
+ * @param {ReturnType<typeof import("vuetify").createVuetify>} vuetify
130
+ * @param {VcsThemes} theme
131
+ */
132
+ export function setTheme(vuetify, theme) {
133
+ Object.assign(vuetify.theme.themes.value.light.colors, theme?.light?.colors);
134
+ Object.assign(
135
+ vuetify.theme.themes.value.light.variables,
136
+ theme?.light?.variables,
137
+ );
138
+ Object.assign(vuetify.theme.themes.value.dark.colors, theme?.dark?.colors);
139
+ Object.assign(
140
+ vuetify.theme.themes.value.dark.variables,
141
+ theme?.dark?.variables,
142
+ );
143
+ }
144
+
145
+ const imageUrlSet = {
146
+ component: (props) =>
147
+ h(
148
+ props.tag,
149
+ h('img', {
150
+ src: props.icon,
151
+ alt: 'custom icon',
152
+ style: { width: 'auto', height: '100%' },
153
+ }),
154
+ ),
155
+ };
156
+
157
+ const svgStringSet = {
158
+ component: (props) => {
159
+ const svg = new DOMParser()
160
+ .parseFromString(DOMPurify.sanitize(props.icon), 'image/svg+xml')
161
+ .querySelector('svg');
162
+ svg?.classList.add('v-icon__svg');
163
+ return h(props.tag, {
164
+ innerHTML: svg?.outerHTML,
165
+ });
166
+ },
167
+ };
168
+
169
+ const svgPathDataSet = {
170
+ component: VSvgIcon,
171
+ };
172
+
77
173
  /**
78
174
  * @param {import("vue-i18n").I18n} i18n
79
175
  * @returns {ReturnType<typeof import("vuetify").createVuetify>}
@@ -103,9 +199,6 @@ export function createVcsVuetify(i18n) {
103
199
  VBtn: {
104
200
  ripple: false,
105
201
  },
106
- VIcon: {
107
- size: 16,
108
- },
109
202
  VList: {
110
203
  density: 'compact',
111
204
  class: 'pa-0 vcsList',
@@ -169,6 +262,11 @@ export function createVcsVuetify(i18n) {
169
262
  aliases: {
170
263
  ...Icons,
171
264
  },
265
+ sets: {
266
+ imageUrl: imageUrlSet,
267
+ svgString: svgStringSet,
268
+ svgPathData: svgPathDataSet,
269
+ },
172
270
  },
173
271
  locale: {
174
272
  adapter: createVueI18nAdapter({ i18n, useI18n }),
@@ -212,27 +310,25 @@ export function getColorByKey(app, value, variant) {
212
310
  }
213
311
 
214
312
  /**
215
- * returns the itemHeight as a number
313
+ * returns the fontSize as a number
216
314
  * @returns {import("vue").ComputedRef<number>}
217
315
  */
218
- export function useItemHeight() {
316
+ export function useFontSize() {
219
317
  const theme = useTheme();
220
318
  return computed(() => {
221
- const itemHeight = theme.current.value.variables['vcs-item-height'] ?? 32;
319
+ const fontSize = theme.current.value.variables['vcs-font-size'] ?? 13;
222
320
  // get rid of `px`
223
- return Number.parseFloat(itemHeight);
321
+ return Number.parseFloat(fontSize);
224
322
  });
225
323
  }
226
324
 
227
325
  /**
228
- * returns the fontSize as a number
326
+ * returns the default IconSize as a number, value is based on the fontSize
229
327
  * @returns {import("vue").ComputedRef<number>}
230
328
  */
231
- export function useFontSize() {
232
- const theme = useTheme();
329
+ export function useIconSize() {
330
+ const fontSize = useFontSize();
233
331
  return computed(() => {
234
- const fontSize = theme.current.value.variables['vcs-font-size'] ?? 13;
235
- // get rid of `px`
236
- return Number.parseFloat(fontSize);
332
+ return fontSize.value * (1.2 + 0.1 / 3);
237
333
  });
238
334
  }