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

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 (278) hide show
  1. package/build/build.js +40 -60
  2. package/build/buildHelpers.js +62 -19
  3. package/build/bundle.js +1 -1
  4. package/build/info/conf.json +1 -1
  5. package/build/info/publish.js +25 -31
  6. package/build/lintTypes.js +5 -0
  7. package/config/base.config.json +2 -1
  8. package/config/dev.config.json +7 -1
  9. package/config/projects.config.json +2 -1
  10. package/config/splashscreen.config.json +45 -0
  11. package/config/www.config.json +25 -22
  12. package/dist/.htaccess +7 -0
  13. package/dist/assets/@mdi/font/README.md +25 -0
  14. package/dist/assets/@mdi/font/css/materialdesignicons.min-680621ca.css +3 -0
  15. package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  16. package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  17. package/dist/assets/{cesium.0b750d.js → cesium-126f111a.js} +272 -385
  18. package/dist/assets/cesium.js +1 -1
  19. package/dist/assets/{core.cbf44a.js → core-1c8b8674.js} +2015 -2019
  20. package/dist/assets/core.js +1 -1
  21. package/dist/assets/{ol.86e93c.js → ol-27f9b3f3.js} +42521 -44394
  22. package/dist/assets/ol.js +1 -1
  23. package/dist/assets/ui-7214428e.css +1 -0
  24. package/dist/assets/{ui.7c276c.js → ui-7214428e.js} +13968 -13907
  25. package/dist/assets/ui.js +1 -1
  26. package/dist/assets/vue-c78a5f76.js +6083 -0
  27. package/dist/assets/vue.js +1 -1
  28. package/dist/assets/{vuetify.4d18fe.css → vuetify-88a2fabe.css} +2 -2
  29. package/dist/assets/{vuetify.4d18fe.js → vuetify-88a2fabe.js} +7793 -7940
  30. package/dist/assets/vuetify.js +1 -1
  31. package/dist/index.html +11 -10
  32. package/index.d.ts +11 -11
  33. package/index.html +5 -5
  34. package/index.js +9 -7
  35. package/lib/olLib.js +84 -23
  36. package/package.json +19 -19
  37. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
  38. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +71 -32
  39. package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
  40. package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
  41. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +21 -8
  42. package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +18 -11
  43. package/plugins/@vcmap-show-case/search-example/src/index.js +1 -0
  44. package/plugins/@vcmap-show-case/search-example/src/searchImpl.js +35 -5
  45. package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
  46. package/plugins/@vcmap-show-case/toolbox-example/src/index.js +2 -1
  47. package/plugins/package.json +3 -23
  48. package/public/assets/@mdi/font/README.md +25 -0
  49. package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
  50. package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  51. package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  52. package/src/actions/StyleSelector.vue +1 -1
  53. package/src/actions/actionHelper.js +33 -22
  54. package/src/actions/flightActions.js +5 -5
  55. package/src/actions/listActions.d.ts +4 -11
  56. package/src/actions/listActions.js +6 -22
  57. package/src/actions/stateRefAction.js +2 -2
  58. package/src/application/VcsApp.vue +147 -57
  59. package/src/application/VcsApp.vue.d.ts +298 -4
  60. package/src/application/VcsAttributions.vue +2 -13
  61. package/src/application/VcsAttributionsFooter.vue +10 -11
  62. package/src/application/VcsContainer.vue +26 -9
  63. package/src/application/VcsContainer.vue.d.ts +237 -0
  64. package/src/application/VcsMainMap.vue +7 -7
  65. package/src/application/VcsMainMap.vue.d.ts +2 -2
  66. package/src/application/VcsNavbar.vue +5 -1
  67. package/src/application/VcsPositionDisplay.vue +8 -23
  68. package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
  69. package/src/application/VcsSettings.vue +10 -17
  70. package/src/application/VcsSplashScreen.vue +21 -40
  71. package/src/application/VcsSplashScreen.vue.d.ts +0 -2
  72. package/src/application/VcsTextPage.vue +12 -43
  73. package/src/application/VcsTextPage.vue.d.ts +4 -8
  74. package/src/application/VcsTextPageFooter.vue +23 -40
  75. package/src/components/buttons/VcsActionButtonList.vue +59 -3
  76. package/src/components/buttons/VcsActionButtonList.vue.d.ts +28 -0
  77. package/src/components/extent/VcsExtentEditor.vue +1 -1
  78. package/src/components/flight/VcsFlightAnchorsComponent.vue +63 -36
  79. package/src/components/flight/VcsFlightComponent.vue +16 -21
  80. package/src/components/flight/VcsFlightPlayer.vue +27 -5
  81. package/src/components/form-inputs-controls/VcsCheckbox.vue +9 -5
  82. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +15 -13
  83. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +3 -4
  84. package/src/components/form-inputs-controls/VcsCoordinate.vue +17 -4
  85. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
  86. package/src/components/form-inputs-controls/VcsDatePicker.vue +34 -60
  87. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +1 -63
  88. package/src/components/form-inputs-controls/VcsFileInput.vue +17 -18
  89. package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
  90. package/src/components/form-inputs-controls/VcsLabel.vue +1 -1
  91. package/src/components/form-inputs-controls/VcsRadio.vue +17 -3
  92. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
  93. package/src/components/form-inputs-controls/VcsSelect.vue +40 -31
  94. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +5 -2
  95. package/src/components/form-inputs-controls/VcsSlider.vue +13 -1
  96. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +1 -0
  97. package/src/components/form-inputs-controls/VcsTextArea.vue +27 -26
  98. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
  99. package/src/components/form-inputs-controls/VcsTextField.vue +20 -4
  100. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +9 -0
  101. package/src/components/form-inputs-controls/VcsWizardStep.vue +3 -6
  102. package/src/components/form-inputs-controls/vcsTextField.scss +9 -12
  103. package/src/components/form-output/VcsFormattedNumber.vue +21 -5
  104. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +9 -0
  105. package/src/components/form-output/VcsMarkdown.vue +15 -12
  106. package/src/components/form-output/VcsMarkdown.vue.d.ts +1 -0
  107. package/src/components/form-output/markdownHelper.d.ts +30 -0
  108. package/src/components/form-output/markdownHelper.js +398 -0
  109. package/src/components/import/VcsFileDrop.vue +8 -5
  110. package/src/components/import/VcsImportComponent.vue +4 -3
  111. package/src/components/import/VcsImportComponent.vue.d.ts +1 -2
  112. package/src/components/lists/VcsActionList.vue +11 -7
  113. package/src/components/lists/VcsList.vue +30 -52
  114. package/src/components/lists/VcsList.vue.d.ts +14 -59
  115. package/src/components/lists/{VcsListItem.vue → VcsListItemComponent.vue} +68 -22
  116. package/src/components/lists/VcsListItemComponent.vue.d.ts +69 -0
  117. package/src/components/lists/VcsTreeview.vue +43 -16
  118. package/src/components/lists/VcsTreeview.vue.d.ts +14 -3
  119. package/src/components/lists/VcsTreeviewLeaf.vue +15 -6
  120. package/src/components/lists/VcsTreeviewSearchbar.vue +2 -2
  121. package/src/components/notification/VcsHelp.vue +1 -1
  122. package/src/components/notification/VcsHelp.vue.d.ts +3 -2
  123. package/src/components/section/VcsExpansionPanel.vue +101 -0
  124. package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
  125. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +10 -4
  126. package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +1 -2
  127. package/src/components/style/MenuWrapper.vue +24 -26
  128. package/src/components/style/MenuWrapper.vue.d.ts +4 -4
  129. package/src/components/style/VcsFillMenu.vue +9 -16
  130. package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
  131. package/src/components/style/VcsFillSelector.vue +13 -16
  132. package/src/components/style/VcsImageMenu.vue +8 -25
  133. package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
  134. package/src/components/style/VcsImageSelector.vue +102 -167
  135. package/src/components/style/VcsImageSelector.vue.d.ts +15 -15
  136. package/src/components/style/VcsStrokeMenu.vue +8 -15
  137. package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
  138. package/src/components/style/VcsStrokeSelector.vue +11 -18
  139. package/src/components/style/VcsTextMenu.vue +9 -12
  140. package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
  141. package/src/components/style/VcsTextSelector.vue +79 -95
  142. package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
  143. package/src/components/style/VcsVectorStyleComponent.vue +8 -19
  144. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
  145. package/src/components/style/composables.d.ts +0 -14
  146. package/src/components/style/composables.js +0 -49
  147. package/src/components/tables/VcsDataTable.vue +28 -22
  148. package/src/components/tables/VcsTable.vue +45 -62
  149. package/src/components/tables/VcsTable.vue.d.ts +30 -17
  150. package/src/components/tables/VcsTableCell.vue +72 -0
  151. package/src/components/tables/VcsTableCell.vue.d.ts +13 -0
  152. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +43 -9
  153. package/src/components/vector-properties/VcsFeatureTransforms.vue +5 -0
  154. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +1 -1
  155. package/src/components/viewpoint/VcsViewpointComponent.vue +23 -10
  156. package/src/components/viewpoint/VcsViewpointEditor.vue +2 -1
  157. package/src/contentTree/LayerTree.vue +9 -27
  158. package/src/contentTree/LayerTree.vue.d.ts +1 -1
  159. package/src/contentTree/contentTreeCollection.d.ts +1 -0
  160. package/src/contentTree/contentTreeCollection.js +45 -11
  161. package/src/contentTree/contentTreeItem.d.ts +2 -2
  162. package/src/contentTree/contentTreeItem.js +7 -7
  163. package/src/featureInfo/BalloonComponent.vue +14 -15
  164. package/src/featureInfo/MarkdownBalloonComponent.vue +4 -2
  165. package/src/featureInfo/MarkdownBalloonComponent.vue.d.ts +2 -2
  166. package/src/featureInfo/abstractFeatureInfoView.d.ts +6 -0
  167. package/src/featureInfo/abstractFeatureInfoView.js +15 -7
  168. package/src/featureInfo/featureInfo.d.ts +5 -5
  169. package/src/featureInfo/featureInfo.js +59 -41
  170. package/src/featureInfo/iframeFeatureInfoView.d.ts +8 -2
  171. package/src/featureInfo/iframeFeatureInfoView.js +15 -5
  172. package/src/featureInfo/markdownBalloonFeatureInfoView.d.ts +1 -1
  173. package/src/featureInfo/markdownBalloonFeatureInfoView.js +5 -5
  174. package/src/featureInfo/markdownFeatureInfoView.d.ts +1 -1
  175. package/src/featureInfo/markdownFeatureInfoView.js +9 -11
  176. package/src/featureInfo/tableFeatureInfoView.js +13 -4
  177. package/src/init.d.ts +5 -38
  178. package/src/init.js +19 -18
  179. package/src/legend/StyleLegendItem.vue +4 -9
  180. package/src/legend/VcsLegend.vue +28 -54
  181. package/src/manager/buttonManager.js +4 -4
  182. package/src/manager/collectionManager/CollectionComponent.vue +17 -42
  183. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
  184. package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
  185. package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
  186. package/src/manager/collectionManager/CollectionComponentList.vue +11 -9
  187. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +6 -4
  188. package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
  189. package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
  190. package/src/manager/collectionManager/CollectionManager.vue +1 -1
  191. package/src/manager/collectionManager/collectionComponentClass.d.ts +1 -1
  192. package/src/manager/collectionManager/collectionComponentClass.js +7 -10
  193. package/src/manager/collectionManager/collectionManager.js +10 -10
  194. package/src/manager/collectionManager/editorCollectionComponentClass.js +6 -5
  195. package/src/manager/contextMenu/contextMenuManager.js +2 -2
  196. package/src/manager/navbarManager.js +2 -2
  197. package/src/manager/panel/PanelComponent.vue +2 -9
  198. package/src/manager/panel/PanelManagerComponent.vue +7 -3
  199. package/src/manager/panel/panelHelper.js +3 -3
  200. package/src/manager/panel/panelManager.d.ts +9 -1
  201. package/src/manager/panel/panelManager.js +18 -6
  202. package/src/manager/toolbox/GroupToolboxComponent.vue +8 -4
  203. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +1 -0
  204. package/src/manager/toolbox/SelectToolboxComponent.vue +7 -4
  205. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +1 -0
  206. package/src/manager/toolbox/ToolboxManager.vue +9 -6
  207. package/src/manager/toolbox/ToolboxManager.vue.d.ts +1 -0
  208. package/src/manager/toolbox/toolboxManager.js +10 -10
  209. package/src/manager/window/WindowComponent.vue +12 -8
  210. package/src/manager/window/WindowComponentHeader.vue +29 -8
  211. package/src/manager/window/WindowComponentHeader.vue.d.ts +2 -0
  212. package/src/manager/window/WindowManager.vue +2 -2
  213. package/src/manager/window/windowManager.d.ts +2 -2
  214. package/src/manager/window/windowManager.js +4 -4
  215. package/src/navigation/MapNavigation.vue +20 -0
  216. package/src/navigation/locatorHelper.js +1 -1
  217. package/src/navigation/overviewMap.js +1 -1
  218. package/src/notifier/NotifierComponent.vue +18 -15
  219. package/src/search/ResultItem.vue +18 -6
  220. package/src/search/ResultsComponent.vue +31 -20
  221. package/src/search/ResultsComponent.vue.d.ts +2 -1
  222. package/src/search/SearchComponent.vue +8 -14
  223. package/src/search/SearchComponent.vue.d.ts +1 -0
  224. package/src/search/search.js +2 -2
  225. package/src/siteConfig.js +9 -9
  226. package/src/state.js +4 -4
  227. package/src/styles/_typography.scss +0 -2
  228. package/src/styles/main.scss +0 -4
  229. package/src/uiConfig.d.ts +300 -5
  230. package/src/uiConfig.js +28 -16
  231. package/src/vcsUiApp.d.ts +21 -17
  232. package/src/vcsUiApp.js +11 -10
  233. package/src/vuePlugins/vuetify.d.ts +2 -0
  234. package/src/vuePlugins/vuetify.js +14 -0
  235. package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  236. package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
  237. package/dist/assets/index-8eGauqjA.js +0 -1
  238. package/dist/assets/ui.7c276c.css +0 -1
  239. package/dist/assets/vue.a3cd64.js +0 -6096
  240. package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  241. package/src/application/VcsCustomScreen.vue +0 -45
  242. package/src/application/VcsCustomScreen.vue.d.ts +0 -15
  243. package/src/application/markdownHelper.d.ts +0 -12
  244. package/src/application/markdownHelper.js +0 -70
  245. package/src/components/lists/VcsListItem.vue.d.ts +0 -21
  246. package/src/components/notification/VcsTooltip.vue +0 -156
  247. package/src/components/notification/VcsTooltip.vue.d.ts +0 -27
  248. package/src/featureInfo/MarkdownComponent.vue +0 -16
  249. package/src/featureInfo/MarkdownComponent.vue.d.ts +0 -7
  250. package/src/styles/_theming.scss +0 -73
  251. package/src/styles/settings.scss +0 -6
  252. package/src/styles/shades.scss +0 -4
  253. package/src/styles/variables.scss +0 -140
  254. package/src/styles/vcsFont.scss +0 -2
  255. package/src/styles/vcsGrid.scss +0 -3
  256. /package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
  257. /package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
  258. /package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
  259. /package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
  260. /package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
  261. /package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
  262. /package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
  263. /package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
  264. /package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
  265. /package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
  266. /package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
  267. /package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
  268. /package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
  269. /package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
  270. /package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
  271. /package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
  272. /package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
  273. /package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
  274. /package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
  275. /package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
  276. /package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
  277. /package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
  278. /package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
package/src/uiConfig.d.ts CHANGED
@@ -88,6 +88,50 @@ export type UiConfigObject = {
88
88
  * - an optional flag whether to show the Locator in the map.
89
89
  */
90
90
  showLocator?: boolean | undefined;
91
+ /**
92
+ * - can be used to hide the default Header of the map
93
+ */
94
+ hideHeader?: boolean | undefined;
95
+ /**
96
+ * - can be used to hide the integrated Search bar
97
+ */
98
+ hideSearch?: boolean | undefined;
99
+ /**
100
+ * - can be used to hide the default Map Buttons
101
+ */
102
+ hideMapButtons?: boolean | undefined;
103
+ /**
104
+ * - can be used to hide the toolbox
105
+ */
106
+ hideToolbox?: boolean | undefined;
107
+ /**
108
+ * - can be used to hide the navigation
109
+ */
110
+ hideMapNavigation?: boolean | undefined;
111
+ /**
112
+ * - can be used to hide the footer
113
+ */
114
+ hideFooter?: boolean | undefined;
115
+ /**
116
+ * - can be used to hide the myWorkspace button
117
+ */
118
+ hideMyWorkspace?: boolean | undefined;
119
+ /**
120
+ * - can be used to hide the contentTree
121
+ */
122
+ hideContentTree?: boolean | undefined;
123
+ /**
124
+ * - can be used to hide the legend
125
+ */
126
+ hideLegend?: boolean | undefined;
127
+ /**
128
+ * - can be used to hide the settings Window
129
+ */
130
+ hideSettings?: boolean | undefined;
131
+ /**
132
+ * - can be used to activate the overviewMap on startup
133
+ */
134
+ overviewMapActiveOnStartup?: boolean | undefined;
91
135
  /**
92
136
  * - the display quality settings
93
137
  */
@@ -146,6 +190,17 @@ export type UiConfigObject = {
146
190
  * @property {string} [favicon] - the favicon to set
147
191
  * @property {string} [headerTitle] - the title to display in the tab of the browser
148
192
  * @property {boolean} [showLocator] - an optional flag whether to show the Locator in the map.
193
+ * @property {boolean} [hideHeader] - can be used to hide the default Header of the map
194
+ * @property {boolean} [hideSearch] - can be used to hide the integrated Search bar
195
+ * @property {boolean} [hideMapButtons] - can be used to hide the default Map Buttons
196
+ * @property {boolean} [hideToolbox] - can be used to hide the toolbox
197
+ * @property {boolean} [hideMapNavigation] - can be used to hide the navigation
198
+ * @property {boolean} [hideFooter] - can be used to hide the footer
199
+ * @property {boolean} [hideMyWorkspace] - can be used to hide the myWorkspace button
200
+ * @property {boolean} [hideContentTree] - can be used to hide the contentTree
201
+ * @property {boolean} [hideLegend] - can be used to hide the legend
202
+ * @property {boolean} [hideSettings] - can be used to hide the settings Window
203
+ * @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
149
204
  * @property {import("@vcmap/core").DisplayQualityOptions} [displayQuality] - the display quality settings
150
205
  */
151
206
  /**
@@ -157,20 +212,260 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
157
212
  */
158
213
  constructor(getDynamicModuleId: () => string);
159
214
  /**
160
- * @type {import("vue").Ref<Object<string, *>>}
215
+ * @type {import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>}
161
216
  * @private
162
217
  */
163
218
  private _config;
219
+ /**
220
+ * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>>}
221
+ */
222
+ _readonlyConfig: import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<{
223
+ [x: string]: any;
224
+ } & UiConfigObject>>;
164
225
  /**
165
226
  * @type {Array<function():void>}
166
227
  * @private
167
228
  */
168
229
  private _listeners;
169
230
  /**
170
- * @type {import("vue").Ref<Object<string, unknown>|UiConfigObject>}
231
+ * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>>}
171
232
  */
172
- get config(): import("vue").Ref<{
173
- [x: string]: unknown;
174
- } | UiConfigObject>;
233
+ get config(): {
234
+ readonly [x: string]: any;
235
+ /**
236
+ * - the company logo to display. this will override any and all css overrides.
237
+ */
238
+ readonly logo?: string | undefined;
239
+ /**
240
+ * - an alternative logo to display in mobile view
241
+ */
242
+ readonly mobileLogo?: string | undefined;
243
+ /**
244
+ * - an optional title to display next to the company logo
245
+ */
246
+ readonly appTitle?: string | undefined;
247
+ /**
248
+ * - an optional primary color to use in all themes
249
+ */
250
+ readonly primaryColor?: string | undefined;
251
+ /**
252
+ * - an optional flag whether to activate feature info on startup (default active)
253
+ */
254
+ readonly startingFeatureInfo?: boolean | undefined;
255
+ /**
256
+ * - mouse event, when position display is updated. Either 'click' (default) or 'move'.
257
+ */
258
+ readonly positionDisplayEventType?: string | undefined;
259
+ /**
260
+ * - an optional URL to a help landing page
261
+ */
262
+ readonly helpBaseUrl?: string | undefined;
263
+ /**
264
+ * - an option imprint, will show a link in the footer. Default title is 'footer.imprint.title'.
265
+ */
266
+ readonly imprint?: {
267
+ readonly title?: string | undefined;
268
+ readonly url?: string | {
269
+ readonly hash: string;
270
+ readonly host: string;
271
+ readonly hostname: string;
272
+ readonly href: string;
273
+ readonly toString: () => string;
274
+ readonly origin: string;
275
+ readonly password: string;
276
+ readonly pathname: string;
277
+ readonly port: string;
278
+ readonly protocol: string;
279
+ readonly search: string;
280
+ readonly searchParams: ReadonlyMap<string, string | null>;
281
+ readonly username: string;
282
+ readonly toJSON: () => string;
283
+ } | undefined;
284
+ readonly content?: string | undefined;
285
+ } | undefined;
286
+ /**
287
+ * - an option dataProtection, will show a link in the footer. Default title is 'footer.dataProtection.title'.
288
+ */
289
+ readonly dataProtection?: {
290
+ readonly title?: string | undefined;
291
+ readonly url?: string | {
292
+ readonly hash: string;
293
+ readonly host: string;
294
+ readonly hostname: string;
295
+ readonly href: string;
296
+ readonly toString: () => string;
297
+ readonly origin: string;
298
+ readonly password: string;
299
+ readonly pathname: string;
300
+ readonly port: string;
301
+ readonly protocol: string;
302
+ readonly search: string;
303
+ readonly searchParams: ReadonlyMap<string, string | null>;
304
+ readonly username: string;
305
+ readonly toJSON: () => string;
306
+ } | undefined;
307
+ readonly content?: string | undefined;
308
+ } | undefined;
309
+ /**
310
+ * - an option splashScreen, will show a splash Screen on Map Load.
311
+ */
312
+ readonly splashScreen?: {
313
+ readonly title?: string | undefined;
314
+ readonly icon?: string | undefined;
315
+ readonly content?: string | undefined;
316
+ readonly name?: string | undefined;
317
+ readonly checkBoxText?: string | undefined;
318
+ readonly buttonTitle?: string | undefined;
319
+ readonly menuEntry?: boolean | undefined;
320
+ readonly acceptInput?: boolean | undefined;
321
+ readonly position?: {
322
+ readonly width?: string | undefined;
323
+ readonly height?: string | undefined;
324
+ readonly maxHeight?: string | undefined;
325
+ readonly maxWidth?: string | undefined;
326
+ } | undefined;
327
+ } | undefined;
328
+ /**
329
+ * - an option customScreen, will show a Custom Menu Point that opens a window with custom content.
330
+ */
331
+ readonly customScreen?: {
332
+ readonly title?: string | undefined;
333
+ readonly icon?: string | undefined;
334
+ readonly content?: string | undefined;
335
+ readonly name?: string | undefined;
336
+ readonly windowPosition?: {
337
+ /**
338
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
339
+ */
340
+ readonly left?: string | number | undefined;
341
+ /**
342
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
343
+ */
344
+ readonly top?: string | number | undefined;
345
+ /**
346
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
347
+ */
348
+ readonly right?: string | number | undefined;
349
+ /**
350
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
351
+ */
352
+ readonly bottom?: string | number | undefined;
353
+ /**
354
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
355
+ */
356
+ readonly width?: string | number | undefined;
357
+ /**
358
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
359
+ */
360
+ readonly height?: string | number | undefined;
361
+ /**
362
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
363
+ */
364
+ readonly maxHeight?: string | number | undefined;
365
+ /**
366
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
367
+ */
368
+ readonly maxWidth?: string | number | undefined;
369
+ /**
370
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
371
+ */
372
+ readonly minHeight?: string | number | undefined;
373
+ /**
374
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
375
+ */
376
+ readonly minWidth?: string | number | undefined;
377
+ } | undefined;
378
+ } | undefined;
379
+ /**
380
+ * - the favicon to set
381
+ */
382
+ readonly favicon?: string | undefined;
383
+ /**
384
+ * - the title to display in the tab of the browser
385
+ */
386
+ readonly headerTitle?: string | undefined;
387
+ /**
388
+ * - an optional flag whether to show the Locator in the map.
389
+ */
390
+ readonly showLocator?: boolean | undefined;
391
+ /**
392
+ * - can be used to hide the default Header of the map
393
+ */
394
+ readonly hideHeader?: boolean | undefined;
395
+ /**
396
+ * - can be used to hide the integrated Search bar
397
+ */
398
+ readonly hideSearch?: boolean | undefined;
399
+ /**
400
+ * - can be used to hide the default Map Buttons
401
+ */
402
+ readonly hideMapButtons?: boolean | undefined;
403
+ /**
404
+ * - can be used to hide the toolbox
405
+ */
406
+ readonly hideToolbox?: boolean | undefined;
407
+ /**
408
+ * - can be used to hide the navigation
409
+ */
410
+ readonly hideMapNavigation?: boolean | undefined;
411
+ /**
412
+ * - can be used to hide the footer
413
+ */
414
+ readonly hideFooter?: boolean | undefined;
415
+ /**
416
+ * - can be used to hide the myWorkspace button
417
+ */
418
+ readonly hideMyWorkspace?: boolean | undefined;
419
+ /**
420
+ * - can be used to hide the contentTree
421
+ */
422
+ readonly hideContentTree?: boolean | undefined;
423
+ /**
424
+ * - can be used to hide the legend
425
+ */
426
+ readonly hideLegend?: boolean | undefined;
427
+ /**
428
+ * - can be used to hide the settings Window
429
+ */
430
+ readonly hideSettings?: boolean | undefined;
431
+ /**
432
+ * - can be used to activate the overviewMap on startup
433
+ */
434
+ readonly overviewMapActiveOnStartup?: boolean | undefined;
435
+ /**
436
+ * - the display quality settings
437
+ */
438
+ readonly displayQuality?: {
439
+ readonly startingQualityLevel?: import("@vcmap/core").DisplayQualityLevel | undefined;
440
+ readonly startingMobileQualityLevel?: import("@vcmap/core").DisplayQualityLevel | undefined;
441
+ readonly low?: {
442
+ readonly sse?: number | undefined;
443
+ readonly fxaa?: boolean | undefined;
444
+ readonly fogEnabled?: boolean | undefined;
445
+ readonly fogDensity?: number | undefined;
446
+ readonly fogScreenSpaceErrorFactor?: number | undefined;
447
+ readonly resolutionScale?: number | undefined;
448
+ readonly layerSSEFactor?: number | undefined;
449
+ } | undefined;
450
+ readonly medium?: {
451
+ readonly sse?: number | undefined;
452
+ readonly fxaa?: boolean | undefined;
453
+ readonly fogEnabled?: boolean | undefined;
454
+ readonly fogDensity?: number | undefined;
455
+ readonly fogScreenSpaceErrorFactor?: number | undefined;
456
+ readonly resolutionScale?: number | undefined;
457
+ readonly layerSSEFactor?: number | undefined;
458
+ } | undefined;
459
+ readonly high?: {
460
+ readonly sse?: number | undefined;
461
+ readonly fxaa?: boolean | undefined;
462
+ readonly fogEnabled?: boolean | undefined;
463
+ readonly fogDensity?: number | undefined;
464
+ readonly fogScreenSpaceErrorFactor?: number | undefined;
465
+ readonly resolutionScale?: number | undefined;
466
+ readonly layerSSEFactor?: number | undefined;
467
+ } | undefined;
468
+ } | undefined;
469
+ };
175
470
  }
176
471
  import { Collection } from '@vcmap/core';
package/src/uiConfig.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Collection, makeOverrideCollection } from '@vcmap/core';
2
- import { ref } from 'vue';
2
+ import { reactive, readonly } from 'vue';
3
3
 
4
4
  /**
5
5
  * @typedef {{
@@ -58,6 +58,17 @@ import { ref } from 'vue';
58
58
  * @property {string} [favicon] - the favicon to set
59
59
  * @property {string} [headerTitle] - the title to display in the tab of the browser
60
60
  * @property {boolean} [showLocator] - an optional flag whether to show the Locator in the map.
61
+ * @property {boolean} [hideHeader] - can be used to hide the default Header of the map
62
+ * @property {boolean} [hideSearch] - can be used to hide the integrated Search bar
63
+ * @property {boolean} [hideMapButtons] - can be used to hide the default Map Buttons
64
+ * @property {boolean} [hideToolbox] - can be used to hide the toolbox
65
+ * @property {boolean} [hideMapNavigation] - can be used to hide the navigation
66
+ * @property {boolean} [hideFooter] - can be used to hide the footer
67
+ * @property {boolean} [hideMyWorkspace] - can be used to hide the myWorkspace button
68
+ * @property {boolean} [hideContentTree] - can be used to hide the contentTree
69
+ * @property {boolean} [hideLegend] - can be used to hide the legend
70
+ * @property {boolean} [hideSettings] - can be used to hide the settings Window
71
+ * @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
61
72
  * @property {import("@vcmap/core").DisplayQualityOptions} [displayQuality] - the display quality settings
62
73
  */
63
74
 
@@ -70,19 +81,18 @@ class UiConfig extends Collection {
70
81
  */
71
82
  constructor(getDynamicModuleId) {
72
83
  super();
73
-
74
84
  makeOverrideCollection(this, getDynamicModuleId);
75
85
  /**
76
- * This object just acts as a go between for reactivity until we have vue3
77
- * @todo vue3 cleanup
78
- * @type {Object<string, *>}
86
+ * @type {import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>}
87
+ * @private
79
88
  */
80
- const configObject = {};
89
+ this._config = reactive({});
90
+
81
91
  /**
82
- * @type {import("vue").Ref<Object<string, *>>}
83
- * @private
92
+ * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>>}
84
93
  */
85
- this._config = ref({});
94
+ this._readonlyConfig = readonly(this._config);
95
+
86
96
  /**
87
97
  * @type {Array<function():void>}
88
98
  * @private
@@ -90,24 +100,26 @@ class UiConfig extends Collection {
90
100
  this._listeners = [
91
101
  this.added.addEventListener((item) => {
92
102
  if (typeof item?.name === 'string') {
93
- configObject[item.name] = item.value;
94
- this._config.value = { ...configObject }; // shallow clone to trip reactivity
103
+ this._config[item.name] = structuredClone(item.value);
95
104
  }
96
105
  }),
97
106
  this.removed.addEventListener((item) => {
98
- if (typeof item?.name === 'string') {
99
- delete configObject[item.name];
100
- this._config.value = { ...configObject }; // shallow clone to trip reactivity
107
+ const previousItem = this.getByKey(item?.name);
108
+ if (typeof previousItem?.name === 'string') {
109
+ // still in the collection
110
+ this._config[previousItem.name] = structuredClone(previousItem.value);
111
+ } else if (typeof item?.name === 'string') {
112
+ delete this._config[item.name];
101
113
  }
102
114
  }),
103
115
  ];
104
116
  }
105
117
 
106
118
  /**
107
- * @type {import("vue").Ref<Object<string, unknown>|UiConfigObject>}
119
+ * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>>}
108
120
  */
109
121
  get config() {
110
- return this._config;
122
+ return this._readonlyConfig;
111
123
  }
112
124
 
113
125
  /**
package/src/vcsUiApp.d.ts CHANGED
@@ -136,6 +136,11 @@ declare class VcsUiApp extends VcsApp {
136
136
  * @private
137
137
  */
138
138
  private _contentTreeClassRegistry;
139
+ /**
140
+ * @type {import("@vcmap/core").OverrideCollection<import("./uiConfig.js").UiConfigurationItem<unknown>, UiConfig>}
141
+ * @private
142
+ */
143
+ private _uiConfig;
139
144
  /**
140
145
  * @type {import("@vcmap/core").OverrideCollection<import("./contentTree/contentTreeItem.js").ContentTreeItem, import("./contentTree/contentTreeCollection.js").ContentTreeCollection>}
141
146
  * @private
@@ -162,10 +167,10 @@ declare class VcsUiApp extends VcsApp {
162
167
  */
163
168
  private _navbarManager;
164
169
  /**
165
- * @type {import("@vcmap/core").OverrideCollection<import("./uiConfig.js").UiConfigurationItem<unknown>, UiConfig>}
170
+ * @type {Search}
166
171
  * @private
167
172
  */
168
- private _uiConfig;
173
+ private _search;
169
174
  /**
170
175
  * @type {import("@vcmap/core").OverrideClassRegistry<AbstractFeatureInfoView>}
171
176
  * @private
@@ -191,11 +196,6 @@ declare class VcsUiApp extends VcsApp {
191
196
  * @private
192
197
  */
193
198
  private _contextMenuManager;
194
- /**
195
- * @type {Search}
196
- * @private
197
- */
198
- private _search;
199
199
  /**
200
200
  * @type {Notifier}
201
201
  * @private
@@ -275,7 +275,14 @@ declare class VcsUiApp extends VcsApp {
275
275
  theme: import("vuetify").ThemeInstance & {
276
276
  install: (app: import("vue").App<any>) => void;
277
277
  };
278
- icons: Record<string, any>;
278
+ icons: {
279
+ defaultSet: string;
280
+ aliases: Partial<import("vuetify").IconAliases>;
281
+ sets: Record<string, import("vuetify").IconSet>; /**
282
+ * @type {Array<function():void>}
283
+ * @private
284
+ */
285
+ };
279
286
  locale: {
280
287
  isRtl: import("vue").Ref<boolean>;
281
288
  rtl: import("vue").Ref<Record<string, boolean>>;
@@ -306,7 +313,7 @@ declare class VcsUiApp extends VcsApp {
306
313
  toISO: (date: unknown) => string;
307
314
  startOfDay: (date: unknown) => unknown;
308
315
  endOfDay: (date: unknown) => unknown;
309
- startOfWeek: (date: unknown) => unknown;
316
+ startOfWeek: (date: unknown, firstDayOfWeek?: string | number | undefined) => unknown;
310
317
  endOfWeek: (date: unknown) => unknown;
311
318
  startOfMonth: (date: unknown) => unknown;
312
319
  endOfMonth: (date: unknown) => unknown;
@@ -329,8 +336,8 @@ declare class VcsUiApp extends VcsApp {
329
336
  getYear: (date: unknown) => number;
330
337
  setYear: (date: unknown, year: number) => unknown;
331
338
  getDiff: (date: unknown, comparing: unknown, unit?: string | undefined) => number;
332
- getWeekArray: (date: unknown) => unknown[][];
333
- getWeekdays: () => string[];
339
+ getWeekArray: (date: unknown, firstDayOfWeek?: string | number | undefined) => unknown[][];
340
+ getWeekdays: (firstDayOfWeek?: string | number | undefined) => string[];
334
341
  getMonth: (date: unknown) => number;
335
342
  setMonth: (date: unknown, month: number) => unknown;
336
343
  getDate: (date: unknown) => number;
@@ -343,15 +350,12 @@ declare class VcsUiApp extends VcsApp {
343
350
  setMinutes: (date: unknown, minutes: number) => unknown;
344
351
  };
345
352
  };
346
- goTo: {
347
- rtl: import("vue").Ref<boolean>;
348
- options: Record<string, any>;
349
- };
353
+ goTo: import("vuetify").GoToInstance;
350
354
  };
351
355
  /**
352
- * @returns {import("vue-i18n").VueI18n}
356
+ * @returns {import("vue-i18n").Composer<{}, {}, {}, string, string, string>}
353
357
  */
354
- get vueI18n(): import("vue-i18n").VueI18n<any, any, any, string, string, string, import("vue-i18n").Composer<any, any, any, string, string, string>>;
358
+ get vueI18n(): import("vue-i18n").Composer<{}, {}, {}, string, string, string>;
355
359
  /**
356
360
  * @returns {CategoryManager}
357
361
  */
package/src/vcsUiApp.js CHANGED
@@ -267,6 +267,12 @@ class VcsUiApp extends VcsApp {
267
267
  contentTreeClassRegistry,
268
268
  );
269
269
 
270
+ /**
271
+ * @type {import("@vcmap/core").OverrideCollection<import("./uiConfig.js").UiConfigurationItem<unknown>, UiConfig>}
272
+ * @private
273
+ */
274
+ this._uiConfig = new UiConfig(() => this.dynamicModuleId);
275
+
270
276
  /**
271
277
  * @type {import("@vcmap/core").OverrideCollection<import("./contentTree/contentTreeItem.js").ContentTreeItem, import("./contentTree/contentTreeCollection.js").ContentTreeCollection>}
272
278
  * @private
@@ -298,10 +304,11 @@ class VcsUiApp extends VcsApp {
298
304
  this._navbarManager = new NavbarManager();
299
305
 
300
306
  /**
301
- * @type {import("@vcmap/core").OverrideCollection<import("./uiConfig.js").UiConfigurationItem<unknown>, UiConfig>}
307
+ * @type {Search}
302
308
  * @private
303
309
  */
304
- this._uiConfig = new UiConfig(() => this.dynamicModuleId);
310
+ this._search = new Search(this);
311
+
305
312
  /**
306
313
  * @type {import("@vcmap/core").OverrideClassRegistry<AbstractFeatureInfoView>}
307
314
  * @private
@@ -340,12 +347,6 @@ class VcsUiApp extends VcsApp {
340
347
  */
341
348
  this._contextMenuManager = new ContextMenuManager(this);
342
349
 
343
- /**
344
- * @type {Search}
345
- * @private
346
- */
347
- this._search = new Search(this);
348
-
349
350
  /**
350
351
  * @type {Notifier}
351
352
  * @private
@@ -466,7 +467,7 @@ class VcsUiApp extends VcsApp {
466
467
  }
467
468
 
468
469
  /**
469
- * @returns {import("vue-i18n").VueI18n}
470
+ * @returns {import("vue-i18n").Composer<{}, {}, {}, string, string, string>}
470
471
  */
471
472
  get vueI18n() {
472
473
  return this._vueI18n;
@@ -527,7 +528,7 @@ class VcsUiApp extends VcsApp {
527
528
  )[0];
528
529
  return () => {
529
530
  const base =
530
- this.uiConfig.config.value.helpBaseUrl || 'https://help.vc.systems/';
531
+ this.uiConfig.config.helpBaseUrl || 'https://help.vc.systems/';
531
532
  const url = `${
532
533
  this.locale
533
534
  }/${subpage}/v${mayorMinorVersion}/${path.replace(/^\//, '')}`;
@@ -48,6 +48,8 @@ export function createVcsThemes(): {
48
48
  };
49
49
  variables: {
50
50
  'hover-opacity': number;
51
+ 'high-emphasis-opacity': number;
52
+ 'medium-emphasis-opacity': number;
51
53
  'vcs-item-height': string;
52
54
  'vcs-font-size': string;
53
55
  'vcs-font-family': string;
@@ -64,6 +64,8 @@ export function createVcsThemes() {
64
64
  },
65
65
  variables: {
66
66
  'hover-opacity': 0.16,
67
+ 'high-emphasis-opacity': 1,
68
+ 'medium-emphasis-opacity': 1,
67
69
  'vcs-item-height': '40px',
68
70
  'vcs-font-size': '15px',
69
71
  'vcs-font-family': 'Titillium Web',
@@ -133,6 +135,9 @@ export function createVcsVuetify(i18n) {
133
135
  density: 'compact',
134
136
  ripple: false,
135
137
  },
138
+ VDataTable: {
139
+ density: 'compact',
140
+ },
136
141
  VSelect: {
137
142
  density: 'compact',
138
143
  },
@@ -144,6 +149,15 @@ export function createVcsVuetify(i18n) {
144
149
  density: 'compact',
145
150
  ripple: false,
146
151
  },
152
+ VColorPicker: {
153
+ elevation: 0,
154
+ tile: true,
155
+ },
156
+ VExpansionPanel: {
157
+ ripple: false,
158
+ elevation: 0,
159
+ tile: true,
160
+ },
147
161
  },
148
162
  defaultAssets: {
149
163
  font: {