@vcmap/ui 6.0.0-rc.3 → 6.0.0-rc.6

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 (235) hide show
  1. package/build/buildHelpers.js +60 -11
  2. package/build/buildTypes.js +9 -5
  3. package/build/bundle.js +1 -1
  4. package/build/info/publish.js +25 -31
  5. package/build/lintTypes.js +5 -0
  6. package/config/base.config.json +2 -7
  7. package/config/dev.config.json +11 -1
  8. package/config/projects.config.json +2 -1
  9. package/config/theming.config.json +68 -0
  10. package/config/www.config.json +27 -23
  11. package/dist/assets/@mdi/font/css/{materialdesignicons.min-7a4f6be0.css → materialdesignicons.min-680621ca.css} +1 -1
  12. package/dist/assets/{cesium-cb4dbfba.js → cesium-ccb4cc30.js} +272 -385
  13. package/dist/assets/cesium.js +1 -1
  14. package/dist/assets/{core-72f21835.js → core-e06aa7a6.js} +2313 -2321
  15. package/dist/assets/core.js +1 -1
  16. package/dist/assets/{ol-2d33bc8b.js → ol-e7981d5c.js} +233 -329
  17. package/dist/assets/ol.js +1 -1
  18. package/dist/assets/ui-5dda32d2.css +1 -0
  19. package/dist/assets/{ui-2ab43a16.js → ui-5dda32d2.js} +11344 -11078
  20. package/dist/assets/ui.js +1 -1
  21. package/dist/assets/vue-87bc6efe.js +6083 -0
  22. package/dist/assets/vue.js +1 -1
  23. package/dist/assets/{vuetify-760ced3b.css → vuetify-4c4e4217.css} +2 -2
  24. package/dist/assets/{vuetify-760ced3b.js → vuetify-4c4e4217.js} +8063 -8262
  25. package/dist/assets/vuetify.js +1 -1
  26. package/index.d.ts +27 -17
  27. package/index.js +16 -8
  28. package/package.json +17 -17
  29. package/plugins/@vcmap-show-case/custom-icons-example/README.md +3 -0
  30. package/plugins/@vcmap-show-case/custom-icons-example/assets/imageExample.png +0 -0
  31. package/plugins/@vcmap-show-case/custom-icons-example/assets/svgExample.svg +1 -0
  32. package/plugins/@vcmap-show-case/custom-icons-example/package.json +5 -0
  33. package/plugins/@vcmap-show-case/custom-icons-example/src/CustomIconsExample.vue +90 -0
  34. package/plugins/@vcmap-show-case/custom-icons-example/src/index.js +45 -0
  35. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +2 -3
  36. package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +11 -7
  37. package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +18 -11
  38. package/plugins/@vcmap-show-case/search-example/src/index.js +1 -0
  39. package/plugins/@vcmap-show-case/search-example/src/searchImpl.js +35 -5
  40. package/plugins/@vcmap-show-case/theming-example/README.md +3 -0
  41. package/plugins/@vcmap-show-case/theming-example/package.json +5 -0
  42. package/plugins/@vcmap-show-case/theming-example/src/ThemingExample.vue +116 -0
  43. package/plugins/@vcmap-show-case/theming-example/src/index.js +53 -0
  44. package/plugins/@vcmap-show-case/toolbox-example/src/index.js +2 -1
  45. package/plugins/package.json +7 -23
  46. package/public/assets/@mdi/font/css/materialdesignicons.min.css +1 -1
  47. package/src/actions/StyleSelector.vue +1 -1
  48. package/src/actions/actionHelper.d.ts +4 -11
  49. package/src/actions/actionHelper.js +15 -7
  50. package/src/actions/listActions.d.ts +5 -5
  51. package/src/actions/listActions.js +2 -2
  52. package/src/application/VcsApp.vue +113 -50
  53. package/src/application/VcsApp.vue.d.ts +301 -4
  54. package/src/application/VcsAttributionsFooter.vue.d.ts +1 -1
  55. package/src/application/VcsContainer.vue +27 -10
  56. package/src/application/VcsContainer.vue.d.ts +241 -0
  57. package/src/application/VcsMainMap.vue +7 -7
  58. package/src/application/VcsMainMap.vue.d.ts +2 -2
  59. package/src/application/VcsNavbar.vue +14 -2
  60. package/src/application/VcsNavbar.vue.d.ts +1 -0
  61. package/src/application/VcsSplashScreen.vue +33 -26
  62. package/src/application/VcsTextPageFooter.vue +2 -1
  63. package/src/application/attributionsHelper.d.ts +20 -22
  64. package/src/application/attributionsHelper.js +4 -4
  65. package/src/callback/vcsCallback.d.ts +2 -2
  66. package/src/callback/vcsCallback.js +1 -1
  67. package/src/components/buttons/VcsActionButtonList.vue +61 -6
  68. package/src/components/buttons/VcsActionButtonList.vue.d.ts +28 -0
  69. package/src/components/buttons/VcsButton.vue +2 -4
  70. package/src/components/buttons/VcsButton.vue.d.ts +1 -1
  71. package/src/components/buttons/VcsFormButton.vue +4 -4
  72. package/src/components/buttons/VcsToolButton.vue +4 -2
  73. package/src/components/buttons/VcsToolButton.vue.d.ts +2 -2
  74. package/src/components/composables.d.ts +5 -0
  75. package/src/components/composables.js +79 -9
  76. package/src/components/extent/VcsExtent.vue +10 -6
  77. package/src/components/extent/VcsExtent.vue.d.ts +1 -0
  78. package/src/components/flight/VcsFlightComponent.vue +13 -13
  79. package/src/components/flight/VcsFlightComponent.vue.d.ts +1 -0
  80. package/src/components/form-inputs-controls/VcsCheckbox.vue +8 -3
  81. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +13 -16
  82. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +2 -4
  83. package/src/components/form-inputs-controls/VcsCoordinate.vue +4 -4
  84. package/src/components/form-inputs-controls/VcsFileInput.vue +1 -1
  85. package/src/components/form-inputs-controls/VcsLabel.vue +1 -1
  86. package/src/components/form-inputs-controls/VcsRadio.vue +8 -6
  87. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
  88. package/src/components/form-inputs-controls/VcsSelect.vue +2 -5
  89. package/src/components/form-inputs-controls/VcsSlider.vue +5 -6
  90. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +2 -4
  91. package/src/components/form-inputs-controls/VcsTextArea.vue +2 -5
  92. package/src/components/form-inputs-controls/VcsTextField.vue +24 -1
  93. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +11 -1
  94. package/src/components/form-inputs-controls/VcsWizard.vue +3 -3
  95. package/src/components/form-inputs-controls/VcsWizardStep.vue +6 -5
  96. package/src/components/form-inputs-controls/vcsTextField.scss +8 -5
  97. package/src/components/form-output/VcsFormattedNumber.vue +7 -5
  98. package/src/components/form-output/VcsMarkdown.vue +15 -12
  99. package/src/components/form-output/VcsMarkdown.vue.d.ts +1 -0
  100. package/src/components/form-output/markdownHelper.d.ts +30 -0
  101. package/src/components/form-output/markdownHelper.js +398 -0
  102. package/src/components/import/VcsFileDrop.vue +8 -5
  103. package/src/components/import/VcsImportComponent.vue +8 -4
  104. package/src/components/import/VcsImportComponent.vue.d.ts +1 -2
  105. package/src/components/lists/VcsActionList.vue +6 -6
  106. package/src/components/lists/VcsList.vue +22 -37
  107. package/src/components/lists/VcsList.vue.d.ts +14 -55
  108. package/src/components/lists/{VcsListItem.vue → VcsListItemComponent.vue} +37 -11
  109. package/src/components/lists/VcsListItemComponent.vue.d.ts +79 -0
  110. package/src/components/lists/VcsTreeview.vue +95 -26
  111. package/src/components/lists/VcsTreeview.vue.d.ts +16 -3
  112. package/src/components/lists/VcsTreeviewSearchbar.vue +16 -5
  113. package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +3 -1
  114. package/src/components/lists/VcsTreeviewTitle.vue +36 -0
  115. package/src/components/modelHelper.d.ts +10 -8
  116. package/src/components/modelHelper.js +8 -6
  117. package/src/components/notification/VcsHelp.vue +6 -7
  118. package/src/components/notification/VcsHelp.vue.d.ts +0 -8
  119. package/src/components/plugins/AbstractConfigEditor.vue +1 -22
  120. package/src/components/plugins/AbstractConfigEditor.vue.d.ts +6 -29
  121. package/src/components/section/VcsExpansionPanel.vue +9 -3
  122. package/src/components/section/VcsExpansionPanel.vue.d.ts +2 -2
  123. package/src/components/section/VcsFormSection.vue +13 -7
  124. package/src/components/section/VcsFormSection.vue.d.ts +2 -3
  125. package/src/components/style/VcsImageSelector.vue +14 -6
  126. package/src/components/style/VcsImageSelector.vue.d.ts +1 -0
  127. package/src/components/style/VcsStrokeSelector.vue +5 -2
  128. package/src/components/style/VcsStrokeSelector.vue.d.ts +1 -0
  129. package/src/components/style/VcsTextMenu.vue +3 -3
  130. package/src/components/style/VcsVectorStyleComponent.vue +1 -1
  131. package/src/components/tables/VcsDataTable.vue +42 -32
  132. package/src/components/tables/VcsDataTable.vue.d.ts +1 -0
  133. package/src/components/tables/VcsTable.vue +45 -62
  134. package/src/components/tables/VcsTable.vue.d.ts +30 -17
  135. package/src/components/tables/VcsTableCell.vue +72 -0
  136. package/src/components/tables/VcsTableCell.vue.d.ts +13 -0
  137. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +6 -5
  138. package/src/components/vector-properties/VcsFeatureTransforms.vue +5 -0
  139. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +42 -31
  140. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +1 -0
  141. package/src/components/viewpoint/VcsViewpointComponent.vue +14 -11
  142. package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +1 -0
  143. package/src/components/viewpoint/VcsViewpointEditor.vue +2 -2
  144. package/src/contentTree/LayerTree.vue +9 -27
  145. package/src/contentTree/LayerTree.vue.d.ts +1 -1
  146. package/src/contentTree/contentTreeCollection.d.ts +1 -0
  147. package/src/contentTree/contentTreeCollection.js +45 -11
  148. package/src/contentTree/contentTreeItem.d.ts +2 -2
  149. package/src/contentTree/contentTreeItem.js +1 -1
  150. package/src/featureInfo/BalloonComponent.vue +32 -25
  151. package/src/featureInfo/BalloonComponent.vue.d.ts +1 -0
  152. package/src/featureInfo/MarkdownBalloonComponent.vue +4 -2
  153. package/src/featureInfo/MarkdownBalloonComponent.vue.d.ts +2 -2
  154. package/src/featureInfo/abstractFeatureInfoView.d.ts +10 -4
  155. package/src/featureInfo/abstractFeatureInfoView.js +19 -11
  156. package/src/featureInfo/featureInfo.d.ts +7 -7
  157. package/src/featureInfo/featureInfo.js +51 -31
  158. package/src/featureInfo/iframeFeatureInfoView.d.ts +8 -2
  159. package/src/featureInfo/iframeFeatureInfoView.js +15 -5
  160. package/src/featureInfo/markdownBalloonFeatureInfoView.d.ts +1 -1
  161. package/src/featureInfo/markdownBalloonFeatureInfoView.js +5 -5
  162. package/src/featureInfo/markdownFeatureInfoView.d.ts +1 -1
  163. package/src/featureInfo/markdownFeatureInfoView.js +9 -11
  164. package/src/featureInfo/tableFeatureInfoView.js +13 -4
  165. package/src/i18n/i18nCollection.d.ts +9 -15
  166. package/src/i18n/i18nCollection.js +3 -3
  167. package/src/legend/VcsLegend.vue +6 -2
  168. package/src/legend/VcsLegend.vue.d.ts +1 -0
  169. package/src/manager/collectionManager/CollectionComponentList.vue +2 -2
  170. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +2 -2
  171. package/src/manager/collectionManager/categoryManager.d.ts +1 -1
  172. package/src/manager/collectionManager/collectionComponentClass.d.ts +3 -3
  173. package/src/manager/collectionManager/collectionComponentClass.js +6 -6
  174. package/src/manager/collectionManager/collectionManager.d.ts +1 -1
  175. package/src/manager/collectionManager/editorCollectionComponentClass.js +2 -1
  176. package/src/manager/panel/PanelComponent.vue +2 -9
  177. package/src/manager/panel/PanelManagerComponent.vue +7 -3
  178. package/src/manager/panel/panelHelper.js +3 -3
  179. package/src/manager/panel/panelManager.d.ts +9 -1
  180. package/src/manager/panel/panelManager.js +15 -3
  181. package/src/manager/toolbox/GroupToolboxComponent.vue +11 -5
  182. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +1 -0
  183. package/src/manager/toolbox/SelectToolboxComponent.vue +11 -6
  184. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +1 -0
  185. package/src/manager/toolbox/{ToolboxManager.vue → ToolboxManagerComponent.vue} +13 -7
  186. package/src/manager/toolbox/{ToolboxManager.vue.d.ts → ToolboxManagerComponent.vue.d.ts} +1 -0
  187. package/src/manager/window/WindowComponent.vue +12 -8
  188. package/src/manager/window/WindowComponentHeader.vue +33 -9
  189. package/src/manager/window/WindowComponentHeader.vue.d.ts +3 -0
  190. package/src/manager/window/WindowManager.vue +2 -2
  191. package/src/manager/window/windowManager.d.ts +6 -6
  192. package/src/manager/window/windowManager.js +3 -3
  193. package/src/navigation/MapNavigation.vue +20 -0
  194. package/src/navigation/OrientationToolsButton.vue +2 -4
  195. package/src/navigation/TiltSlider.vue +3 -5
  196. package/src/navigation/locatorHelper.js +1 -1
  197. package/src/navigation/overviewMap.js +1 -1
  198. package/src/notifier/NotifierComponent.vue +18 -15
  199. package/src/search/ResultItem.vue +18 -6
  200. package/src/search/ResultsComponent.vue +31 -20
  201. package/src/search/ResultsComponent.vue.d.ts +2 -1
  202. package/src/search/SearchComponent.vue +11 -15
  203. package/src/search/SearchComponent.vue.d.ts +1 -0
  204. package/src/siteConfig.js +8 -8
  205. package/src/styles/_typography.scss +0 -2
  206. package/src/styles/main.scss +0 -4
  207. package/src/styles/vcsList.scss +1 -1
  208. package/src/uiConfig.d.ts +311 -7
  209. package/src/uiConfig.js +30 -17
  210. package/src/vcsUiApp.d.ts +48 -63
  211. package/src/vcsUiApp.js +44 -37
  212. package/src/vuePlugins/vuetify.d.ts +88 -62
  213. package/src/vuePlugins/vuetify.js +119 -20
  214. package/dist/assets/ui-2ab43a16.css +0 -1
  215. package/dist/assets/vue-03b265aa.js +0 -6096
  216. package/plugins/@vcmap-show-case/theme-changer/README.md +0 -23
  217. package/plugins/@vcmap-show-case/theme-changer/config.json +0 -69
  218. package/plugins/@vcmap-show-case/theme-changer/package.json +0 -11
  219. package/plugins/@vcmap-show-case/theme-changer/src/ThemeChangerComponent.vue +0 -120
  220. package/plugins/@vcmap-show-case/theme-changer/src/index.js +0 -108
  221. package/src/application/markdownHelper.d.ts +0 -12
  222. package/src/application/markdownHelper.js +0 -70
  223. package/src/components/lists/VcsListItem.vue.d.ts +0 -27
  224. package/src/components/lists/VcsTreeviewLeaf.vue +0 -83
  225. package/src/components/notification/VcsTooltip.vue +0 -156
  226. package/src/components/notification/VcsTooltip.vue.d.ts +0 -27
  227. package/src/featureInfo/MarkdownComponent.vue +0 -16
  228. package/src/featureInfo/MarkdownComponent.vue.d.ts +0 -7
  229. package/src/styles/_theming.scss +0 -73
  230. package/src/styles/settings.scss +0 -6
  231. package/src/styles/shades.scss +0 -4
  232. package/src/styles/variables.scss +0 -140
  233. package/src/styles/vcsFont.scss +0 -2
  234. package/src/styles/vcsGrid.scss +0 -3
  235. /package/src/components/lists/{VcsTreeviewLeaf.vue.d.ts → VcsTreeviewTitle.vue.d.ts} +0 -0
package/src/uiConfig.d.ts CHANGED
@@ -45,7 +45,7 @@ export type UiConfigObject = {
45
45
  */
46
46
  appTitle?: string | undefined;
47
47
  /**
48
- * - an optional primary color to use in all themes
48
+ * - an optional primary color to use in all themes, can be overwritten by `vuetifyTheme`
49
49
  */
50
50
  primaryColor?: string | undefined;
51
51
  /**
@@ -88,10 +88,58 @@ 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
  */
94
138
  displayQuality?: import("@vcmap/core").DisplayQualityOptions | undefined;
139
+ /**
140
+ * - Vuetify Theming, also see vuetify configuration https://vuetifyjs.com/en/features/theme/
141
+ */
142
+ vuetifyTheme?: any;
95
143
  };
96
144
  /**
97
145
  * @typedef {{
@@ -135,7 +183,7 @@ export type UiConfigObject = {
135
183
  * @property {string} [logo] - the company logo to display. this will override any and all css overrides.
136
184
  * @property {string} [mobileLogo] - an alternative logo to display in mobile view
137
185
  * @property {string} [appTitle] - an optional title to display next to the company logo
138
- * @property {string} [primaryColor] - an optional primary color to use in all themes
186
+ * @property {string} [primaryColor] - an optional primary color to use in all themes, can be overwritten by `vuetifyTheme`
139
187
  * @property {boolean} [startingFeatureInfo] - an optional flag whether to activate feature info on startup (default active)
140
188
  * @property {string} [positionDisplayEventType] - mouse event, when position display is updated. Either 'click' (default) or 'move'.
141
189
  * @property {string} [helpBaseUrl='https://help.vc.systems/'] - an optional URL to a help landing page
@@ -146,7 +194,19 @@ export type UiConfigObject = {
146
194
  * @property {string} [favicon] - the favicon to set
147
195
  * @property {string} [headerTitle] - the title to display in the tab of the browser
148
196
  * @property {boolean} [showLocator] - an optional flag whether to show the Locator in the map.
197
+ * @property {boolean} [hideHeader] - can be used to hide the default Header of the map
198
+ * @property {boolean} [hideSearch] - can be used to hide the integrated Search bar
199
+ * @property {boolean} [hideMapButtons] - can be used to hide the default Map Buttons
200
+ * @property {boolean} [hideToolbox] - can be used to hide the toolbox
201
+ * @property {boolean} [hideMapNavigation] - can be used to hide the navigation
202
+ * @property {boolean} [hideFooter] - can be used to hide the footer
203
+ * @property {boolean} [hideMyWorkspace] - can be used to hide the myWorkspace button
204
+ * @property {boolean} [hideContentTree] - can be used to hide the contentTree
205
+ * @property {boolean} [hideLegend] - can be used to hide the legend
206
+ * @property {boolean} [hideSettings] - can be used to hide the settings Window
207
+ * @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
149
208
  * @property {import("@vcmap/core").DisplayQualityOptions} [displayQuality] - the display quality settings
209
+ * @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuration https://vuetifyjs.com/en/features/theme/
150
210
  */
151
211
  /**
152
212
  * @extends {Collection<UiConfigurationItem<unknown>>}
@@ -157,20 +217,264 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
157
217
  */
158
218
  constructor(getDynamicModuleId: () => string);
159
219
  /**
160
- * @type {import("vue").Ref<Object<string, *>>}
220
+ * @type {import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>}
161
221
  * @private
162
222
  */
163
223
  private _config;
224
+ /**
225
+ * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>>}
226
+ */
227
+ _readonlyConfig: import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<{
228
+ [x: string]: any;
229
+ } & UiConfigObject>>;
164
230
  /**
165
231
  * @type {Array<function():void>}
166
232
  * @private
167
233
  */
168
234
  private _listeners;
169
235
  /**
170
- * @type {import("vue").Ref<Object<string, unknown>|UiConfigObject>}
236
+ * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>>}
171
237
  */
172
- get config(): import("vue").Ref<{
173
- [x: string]: unknown;
174
- } | UiConfigObject>;
238
+ get config(): {
239
+ readonly [x: string]: any;
240
+ /**
241
+ * - the company logo to display. this will override any and all css overrides.
242
+ */
243
+ readonly logo?: string | undefined;
244
+ /**
245
+ * - an alternative logo to display in mobile view
246
+ */
247
+ readonly mobileLogo?: string | undefined;
248
+ /**
249
+ * - an optional title to display next to the company logo
250
+ */
251
+ readonly appTitle?: string | undefined;
252
+ /**
253
+ * - an optional primary color to use in all themes, can be overwritten by `vuetifyTheme`
254
+ */
255
+ readonly primaryColor?: string | undefined;
256
+ /**
257
+ * - an optional flag whether to activate feature info on startup (default active)
258
+ */
259
+ readonly startingFeatureInfo?: boolean | undefined;
260
+ /**
261
+ * - mouse event, when position display is updated. Either 'click' (default) or 'move'.
262
+ */
263
+ readonly positionDisplayEventType?: string | undefined;
264
+ /**
265
+ * - an optional URL to a help landing page
266
+ */
267
+ readonly helpBaseUrl?: string | undefined;
268
+ /**
269
+ * - an option imprint, will show a link in the footer. Default title is 'footer.imprint.title'.
270
+ */
271
+ readonly imprint?: {
272
+ readonly title?: string | undefined;
273
+ readonly url?: string | {
274
+ readonly hash: string;
275
+ readonly host: string;
276
+ readonly hostname: string;
277
+ readonly href: string;
278
+ readonly toString: () => string;
279
+ readonly origin: string;
280
+ readonly password: string;
281
+ readonly pathname: string;
282
+ readonly port: string;
283
+ readonly protocol: string;
284
+ readonly search: string;
285
+ readonly searchParams: ReadonlyMap<string, string | null>;
286
+ readonly username: string;
287
+ readonly toJSON: () => string;
288
+ } | undefined;
289
+ readonly content?: string | undefined;
290
+ } | undefined;
291
+ /**
292
+ * - an option dataProtection, will show a link in the footer. Default title is 'footer.dataProtection.title'.
293
+ */
294
+ readonly dataProtection?: {
295
+ readonly title?: string | undefined;
296
+ readonly url?: string | {
297
+ readonly hash: string;
298
+ readonly host: string;
299
+ readonly hostname: string;
300
+ readonly href: string;
301
+ readonly toString: () => string;
302
+ readonly origin: string;
303
+ readonly password: string;
304
+ readonly pathname: string;
305
+ readonly port: string;
306
+ readonly protocol: string;
307
+ readonly search: string;
308
+ readonly searchParams: ReadonlyMap<string, string | null>;
309
+ readonly username: string;
310
+ readonly toJSON: () => string;
311
+ } | undefined;
312
+ readonly content?: string | undefined;
313
+ } | undefined;
314
+ /**
315
+ * - an option splashScreen, will show a splash Screen on Map Load.
316
+ */
317
+ readonly splashScreen?: {
318
+ readonly title?: string | undefined;
319
+ readonly icon?: string | undefined;
320
+ readonly content?: string | undefined;
321
+ readonly name?: string | undefined;
322
+ readonly checkBoxText?: string | undefined;
323
+ readonly buttonTitle?: string | undefined;
324
+ readonly menuEntry?: boolean | undefined;
325
+ readonly acceptInput?: boolean | undefined;
326
+ readonly position?: {
327
+ readonly width?: string | undefined;
328
+ readonly height?: string | undefined;
329
+ readonly maxHeight?: string | undefined;
330
+ readonly maxWidth?: string | undefined;
331
+ } | undefined;
332
+ } | undefined;
333
+ /**
334
+ * - an option customScreen, will show a Custom Menu Point that opens a window with custom content.
335
+ */
336
+ readonly customScreen?: {
337
+ readonly title?: string | undefined;
338
+ readonly icon?: string | undefined;
339
+ readonly content?: string | undefined;
340
+ readonly name?: string | undefined;
341
+ readonly windowPosition?: {
342
+ /**
343
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
344
+ */
345
+ readonly left?: string | number | undefined;
346
+ /**
347
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
348
+ */
349
+ readonly top?: string | number | undefined;
350
+ /**
351
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
352
+ */
353
+ readonly right?: string | number | undefined;
354
+ /**
355
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
356
+ */
357
+ readonly bottom?: string | number | undefined;
358
+ /**
359
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
360
+ */
361
+ readonly width?: string | number | undefined;
362
+ /**
363
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
364
+ */
365
+ readonly height?: string | number | undefined;
366
+ /**
367
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
368
+ */
369
+ readonly maxHeight?: string | number | undefined;
370
+ /**
371
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
372
+ */
373
+ readonly maxWidth?: string | number | undefined;
374
+ /**
375
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
376
+ */
377
+ readonly minHeight?: string | number | undefined;
378
+ /**
379
+ * Can be a css position string (e.g. '320px' or '50%') number values are treated as `px` values
380
+ */
381
+ readonly minWidth?: string | number | undefined;
382
+ } | undefined;
383
+ } | undefined;
384
+ /**
385
+ * - the favicon to set
386
+ */
387
+ readonly favicon?: string | undefined;
388
+ /**
389
+ * - the title to display in the tab of the browser
390
+ */
391
+ readonly headerTitle?: string | undefined;
392
+ /**
393
+ * - an optional flag whether to show the Locator in the map.
394
+ */
395
+ readonly showLocator?: boolean | undefined;
396
+ /**
397
+ * - can be used to hide the default Header of the map
398
+ */
399
+ readonly hideHeader?: boolean | undefined;
400
+ /**
401
+ * - can be used to hide the integrated Search bar
402
+ */
403
+ readonly hideSearch?: boolean | undefined;
404
+ /**
405
+ * - can be used to hide the default Map Buttons
406
+ */
407
+ readonly hideMapButtons?: boolean | undefined;
408
+ /**
409
+ * - can be used to hide the toolbox
410
+ */
411
+ readonly hideToolbox?: boolean | undefined;
412
+ /**
413
+ * - can be used to hide the navigation
414
+ */
415
+ readonly hideMapNavigation?: boolean | undefined;
416
+ /**
417
+ * - can be used to hide the footer
418
+ */
419
+ readonly hideFooter?: boolean | undefined;
420
+ /**
421
+ * - can be used to hide the myWorkspace button
422
+ */
423
+ readonly hideMyWorkspace?: boolean | undefined;
424
+ /**
425
+ * - can be used to hide the contentTree
426
+ */
427
+ readonly hideContentTree?: boolean | undefined;
428
+ /**
429
+ * - can be used to hide the legend
430
+ */
431
+ readonly hideLegend?: boolean | undefined;
432
+ /**
433
+ * - can be used to hide the settings Window
434
+ */
435
+ readonly hideSettings?: boolean | undefined;
436
+ /**
437
+ * - can be used to activate the overviewMap on startup
438
+ */
439
+ readonly overviewMapActiveOnStartup?: boolean | undefined;
440
+ /**
441
+ * - the display quality settings
442
+ */
443
+ readonly displayQuality?: {
444
+ readonly startingQualityLevel?: import("@vcmap/core").DisplayQualityLevel | undefined;
445
+ readonly startingMobileQualityLevel?: import("@vcmap/core").DisplayQualityLevel | undefined;
446
+ readonly low?: {
447
+ readonly sse?: number | undefined;
448
+ readonly fxaa?: boolean | undefined;
449
+ readonly fogEnabled?: boolean | undefined;
450
+ readonly fogDensity?: number | undefined;
451
+ readonly fogScreenSpaceErrorFactor?: number | undefined;
452
+ readonly resolutionScale?: number | undefined;
453
+ readonly layerSSEFactor?: number | undefined;
454
+ } | undefined;
455
+ readonly medium?: {
456
+ readonly sse?: number | undefined;
457
+ readonly fxaa?: boolean | undefined;
458
+ readonly fogEnabled?: boolean | undefined;
459
+ readonly fogDensity?: number | undefined;
460
+ readonly fogScreenSpaceErrorFactor?: number | undefined;
461
+ readonly resolutionScale?: number | undefined;
462
+ readonly layerSSEFactor?: number | undefined;
463
+ } | undefined;
464
+ readonly high?: {
465
+ readonly sse?: number | undefined;
466
+ readonly fxaa?: boolean | undefined;
467
+ readonly fogEnabled?: boolean | undefined;
468
+ readonly fogDensity?: number | undefined;
469
+ readonly fogScreenSpaceErrorFactor?: number | undefined;
470
+ readonly resolutionScale?: number | undefined;
471
+ readonly layerSSEFactor?: number | undefined;
472
+ } | undefined;
473
+ } | undefined;
474
+ /**
475
+ * - Vuetify Theming, also see vuetify configuration https://vuetifyjs.com/en/features/theme/
476
+ */
477
+ readonly vuetifyTheme?: any;
478
+ };
175
479
  }
176
480
  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 {{
@@ -47,7 +47,7 @@ import { ref } from 'vue';
47
47
  * @property {string} [logo] - the company logo to display. this will override any and all css overrides.
48
48
  * @property {string} [mobileLogo] - an alternative logo to display in mobile view
49
49
  * @property {string} [appTitle] - an optional title to display next to the company logo
50
- * @property {string} [primaryColor] - an optional primary color to use in all themes
50
+ * @property {string} [primaryColor] - an optional primary color to use in all themes, can be overwritten by `vuetifyTheme`
51
51
  * @property {boolean} [startingFeatureInfo] - an optional flag whether to activate feature info on startup (default active)
52
52
  * @property {string} [positionDisplayEventType] - mouse event, when position display is updated. Either 'click' (default) or 'move'.
53
53
  * @property {string} [helpBaseUrl='https://help.vc.systems/'] - an optional URL to a help landing page
@@ -58,7 +58,19 @@ 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
73
+ * @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuration https://vuetifyjs.com/en/features/theme/
62
74
  */
63
75
 
64
76
  /**
@@ -70,19 +82,18 @@ class UiConfig extends Collection {
70
82
  */
71
83
  constructor(getDynamicModuleId) {
72
84
  super();
73
-
74
85
  makeOverrideCollection(this, getDynamicModuleId);
75
86
  /**
76
- * This object just acts as a go between for reactivity until we have vue3
77
- * @todo vue3 cleanup
78
- * @type {Object<string, *>}
87
+ * @type {import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>}
88
+ * @private
79
89
  */
80
- const configObject = {};
90
+ this._config = reactive({});
91
+
81
92
  /**
82
- * @type {import("vue").Ref<Object<string, *>>}
83
- * @private
93
+ * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>>}
84
94
  */
85
- this._config = ref({});
95
+ this._readonlyConfig = readonly(this._config);
96
+
86
97
  /**
87
98
  * @type {Array<function():void>}
88
99
  * @private
@@ -90,24 +101,26 @@ class UiConfig extends Collection {
90
101
  this._listeners = [
91
102
  this.added.addEventListener((item) => {
92
103
  if (typeof item?.name === 'string') {
93
- configObject[item.name] = item.value;
94
- this._config.value = { ...configObject }; // shallow clone to trip reactivity
104
+ this._config[item.name] = structuredClone(item.value);
95
105
  }
96
106
  }),
97
107
  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
108
+ const previousItem = this.getByKey(item?.name);
109
+ if (typeof previousItem?.name === 'string') {
110
+ // still in the collection
111
+ this._config[previousItem.name] = structuredClone(previousItem.value);
112
+ } else if (typeof item?.name === 'string') {
113
+ delete this._config[item.name];
101
114
  }
102
115
  }),
103
116
  ];
104
117
  }
105
118
 
106
119
  /**
107
- * @type {import("vue").Ref<Object<string, unknown>|UiConfigObject>}
120
+ * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>>}
108
121
  */
109
122
  get config() {
110
- return this._config;
123
+ return this._readonlyConfig;
111
124
  }
112
125
 
113
126
  /**
package/src/vcsUiApp.d.ts CHANGED
@@ -1,64 +1,45 @@
1
1
  export default VcsUiApp;
2
2
  export type VcsUiModuleConfig = import("@vcmap/core").VcsModuleConfig & {
3
- plugins?: Object[];
3
+ plugins?: Record<string, unknown>[];
4
4
  contentTree?: import("./contentTree/contentTreeItem.js").ContentTreeItemOptions[];
5
5
  uiConfig?: import("./uiConfig.js").UiConfigurationItem<unknown>[];
6
6
  featureInfo?: import("./featureInfo/abstractFeatureInfoView.js").FeatureInfoViewOptions[];
7
- i18n?: Object[];
7
+ i18n?: import("./i18n/i18nCollection.js").I18nConfigurationItem[];
8
8
  };
9
9
  export type PluginConfig = {
10
10
  name: string;
11
- /**
12
- * - path to the plugin's index.js
13
- */
14
- entry?: string | undefined;
15
- /**
16
- * - version or version range
17
- */
18
- version?: string | undefined;
11
+ entry?: string;
12
+ version?: string;
19
13
  };
20
14
  export type PluginConfigEditorComponent<Config extends Object> = import("vue").Component<{
21
- getConfig(): Promise<Config>;
22
- setConfig(config: Config): Promise<void>;
23
- }> & {
15
+ getConfig(): Config;
16
+ setConfig(config?: Config): void;
17
+ }>;
18
+ export type PluginConfigEditor<Config extends Object> = {
19
+ component: PluginConfigEditorComponent<Config>;
24
20
  title?: string;
21
+ collectionName?: string;
22
+ itemName?: string;
23
+ infoUrlCallback?: () => string;
25
24
  };
26
- export type PluginConfigEditor = {
27
- /**
28
- * - A editor component to configure a plugin or item
29
- */
30
- component: PluginConfigEditorComponent<object>;
31
- /**
32
- * - The collection the item belongs to. Default is plugins collection.
33
- */
34
- collectionName?: string | undefined;
35
- /**
36
- * - The item the editor can be used for. Can be a name or className. Default is the plugin's name.
37
- */
38
- itemName?: string | undefined;
39
- /**
40
- * - An optional function returning an url referencing help or further information regarding the config editor.
41
- */
42
- infoUrlCallback?: (() => string) | undefined;
43
- };
44
- export type createPlugin<P extends Object, S extends Object> = (arg0: P, arg1: string) => VcsPlugin<P, S>;
25
+ export type createPlugin<Config extends Object, State extends Object> = (arg0: Config, arg1: string) => VcsPlugin<Config, State>;
45
26
  /**
46
27
  * Interface for VcsPlugins.
47
28
  * The function implementing the interface should not throw!
48
29
  */
49
- export type VcsPlugin<P extends Object, S extends Object> = {
30
+ export type VcsPlugin<Config extends Object, State extends Object> = {
50
31
  name: string;
51
32
  version: string;
52
33
  mapVersion: string;
53
34
  i18n?: {
54
35
  [x: string]: unknown;
55
36
  };
56
- initialize?: (arg0: import("@src/vcsUiApp.js").default, arg1: S | undefined) => void | Promise<void>;
37
+ initialize?: (arg0: import("@src/vcsUiApp.js").default, arg1: State | undefined) => void | Promise<void>;
57
38
  onVcsAppMounted?: (arg0: import("@src/vcsUiApp.js").default) => void;
58
- toJSON?: () => P;
59
- getDefaultOptions?: () => P;
60
- getState?: (arg0: boolean | undefined) => S | Promise<S>;
61
- getConfigEditors?: () => Array<PluginConfigEditor>;
39
+ toJSON?: () => Config;
40
+ getDefaultOptions?: () => Config;
41
+ getState?: (arg0: boolean | undefined) => State | Promise<State>;
42
+ getConfigEditors?: () => Array<PluginConfigEditor<Config>>;
62
43
  destroy?: () => void;
63
44
  };
64
45
  export type VcsComponentManager<T extends Object, O extends Object> = {
@@ -89,7 +70,7 @@ declare class VcsUiApp extends VcsApp {
89
70
  */
90
71
  themeChanged: VcsEvent<void>;
91
72
  /**
92
- * @type {import("@vcmap/core").OverrideCollection<VcsPlugin>}
73
+ * @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin>, Object>}
93
74
  * @private
94
75
  */
95
76
  private _plugins;
@@ -132,10 +113,15 @@ declare class VcsUiApp extends VcsApp {
132
113
  */
133
114
  private _callbackClassRegistry;
134
115
  /**
135
- * @type {import("@vcmap/core").OverrideClassRegistry<import("@vcmap/core").Ctor<ContentTreeItem>>}
116
+ * @type {import("@vcmap/core").OverrideClassRegistry<typeof ContentTreeItem>}
136
117
  * @private
137
118
  */
138
119
  private _contentTreeClassRegistry;
120
+ /**
121
+ * @type {import("@vcmap/core").OverrideCollection<import("./uiConfig.js").UiConfigurationItem<unknown>, UiConfig>}
122
+ * @private
123
+ */
124
+ private _uiConfig;
139
125
  /**
140
126
  * @type {import("@vcmap/core").OverrideCollection<import("./contentTree/contentTreeItem.js").ContentTreeItem, import("./contentTree/contentTreeCollection.js").ContentTreeCollection>}
141
127
  * @private
@@ -162,10 +148,10 @@ declare class VcsUiApp extends VcsApp {
162
148
  */
163
149
  private _navbarManager;
164
150
  /**
165
- * @type {import("@vcmap/core").OverrideCollection<import("./uiConfig.js").UiConfigurationItem<unknown>, UiConfig>}
151
+ * @type {Search}
166
152
  * @private
167
153
  */
168
- private _uiConfig;
154
+ private _search;
169
155
  /**
170
156
  * @type {import("@vcmap/core").OverrideClassRegistry<AbstractFeatureInfoView>}
171
157
  * @private
@@ -191,11 +177,6 @@ declare class VcsUiApp extends VcsApp {
191
177
  * @private
192
178
  */
193
179
  private _contextMenuManager;
194
- /**
195
- * @type {Search}
196
- * @private
197
- */
198
- private _search;
199
180
  /**
200
181
  * @type {Notifier}
201
182
  * @private
@@ -214,25 +195,25 @@ declare class VcsUiApp extends VcsApp {
214
195
  mounted: import("@vcmap/core").VcsEvent<string>;
215
196
  _destroySiteConfig: () => void;
216
197
  /**
217
- * @type {import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>>}
198
+ * @type {import("@vcmap/core").OverrideCollection<VcsPlugin, Collection<VcsPlugin>, Object>}
218
199
  */
219
- get plugins(): import("@vcmap/core").OverrideCollection<VcsPlugin<Object, Object>, Collection<VcsPlugin<Object, Object>>>;
200
+ get plugins(): import("@vcmap/core").OverrideCollection<any, Collection<any>, Object>;
220
201
  /**
221
202
  * @type {import("@vcmap/core").OverrideCollection<ContentTreeItem, ContentTreeCollection>}
222
203
  */
223
- get contentTree(): import("@vcmap/core").OverrideCollection<ContentTreeItem, ContentTreeCollection>;
204
+ get contentTree(): import("@vcmap/core").OverrideCollection<ContentTreeItem, ContentTreeCollection, import("./contentTree/contentTreeItem.js").ContentTreeItemOptions>;
224
205
  /**
225
- * @type {import("@vcmap/core").OverrideClassRegistry<import("@vcmap/core").Ctor<typeof import("./callback/vcsCallback.js").default>>}
206
+ * @type {import("@vcmap/core").OverrideClassRegistry<typeof import("./callback/vcsCallback.js").default>}
226
207
  */
227
- get callbackClassRegistry(): OverrideClassRegistry<import("@vcmap/core").Ctor<typeof import("./callback/vcsCallback.js").default>>;
208
+ get callbackClassRegistry(): OverrideClassRegistry<typeof import("./callback/vcsCallback.js").default>;
228
209
  /**
229
- * @type {import("@vcmap/core").OverrideClassRegistry<import("@vcmap/core").Ctor<typeof ContentTreeItem>>}
210
+ * @type {import("@vcmap/core").OverrideClassRegistry<typeof ContentTreeItem>}
230
211
  */
231
- get contentTreeClassRegistry(): OverrideClassRegistry<import("@vcmap/core").Ctor<typeof ContentTreeItem>>;
212
+ get contentTreeClassRegistry(): OverrideClassRegistry<typeof ContentTreeItem>;
232
213
  /**
233
- * @type {import("@vcmap/core").OverrideClassRegistry<import("@vcmap/core").Ctor<typeof AbstractFeatureInfoView>>}
214
+ * @type {import("@vcmap/core").OverrideClassRegistry<typeof AbstractFeatureInfoView>}
234
215
  */
235
- get featureInfoClassRegistry(): OverrideClassRegistry<import("@vcmap/core").Ctor<typeof AbstractFeatureInfoView>>;
216
+ get featureInfoClassRegistry(): OverrideClassRegistry<typeof AbstractFeatureInfoView>;
236
217
  /**
237
218
  * @returns {ToolboxManager}
238
219
  */
@@ -278,10 +259,7 @@ declare class VcsUiApp extends VcsApp {
278
259
  icons: {
279
260
  defaultSet: string;
280
261
  aliases: Partial<import("vuetify").IconAliases>;
281
- sets: Record<string, import("vuetify").IconSet>; /**
282
- * @type {Array<function():void>}
283
- * @private
284
- */
262
+ sets: Record<string, import("vuetify").IconSet>;
285
263
  };
286
264
  locale: {
287
265
  isRtl: import("vue").Ref<boolean>;
@@ -328,13 +306,20 @@ declare class VcsUiApp extends VcsApp {
328
306
  isEqual: (date: unknown, comparing: unknown) => boolean;
329
307
  isValid: (date: any) => boolean;
330
308
  isWithinRange: (date: unknown, range: [unknown, unknown]) => boolean;
331
- addMinutes: (date: unknown, amount: number) => unknown;
309
+ addMinutes: (date: unknown, amount: number) => unknown; /**
310
+ * @type {import("@vcmap/core").OverrideClassRegistry<typeof import("./callback/vcsCallback.js").default>}
311
+ */
332
312
  addHours: (date: unknown, amount: number) => unknown;
333
313
  addDays: (date: unknown, amount: number) => unknown;
334
314
  addWeeks: (date: unknown, amount: number) => unknown;
315
+ /**
316
+ * @type {import("@vcmap/core").OverrideClassRegistry<typeof ContentTreeItem>}
317
+ */
335
318
  addMonths: (date: unknown, amount: number) => unknown;
336
319
  getYear: (date: unknown) => number;
337
- setYear: (date: unknown, year: number) => unknown;
320
+ setYear: (date: unknown, year: number) => unknown; /**
321
+ * @type {import("@vcmap/core").OverrideClassRegistry<typeof AbstractFeatureInfoView>}
322
+ */
338
323
  getDiff: (date: unknown, comparing: unknown, unit?: string | undefined) => number;
339
324
  getWeekArray: (date: unknown, firstDayOfWeek?: string | number | undefined) => unknown[][];
340
325
  getWeekdays: (firstDayOfWeek?: string | number | undefined) => string[];
@@ -371,7 +356,7 @@ declare class VcsUiApp extends VcsApp {
371
356
  /**
372
357
  * @type {import("@vcmap/core").OverrideCollection<import("./uiConfig.js").UiConfigurationItem<unknown>, UiConfig>}
373
358
  */
374
- get uiConfig(): import("@vcmap/core").OverrideCollection<import("./uiConfig.js").UiConfigurationItem<unknown>, UiConfig>;
359
+ get uiConfig(): import("@vcmap/core").OverrideCollection<import("./uiConfig.js").UiConfigurationItem<unknown>, UiConfig, import("./uiConfig.js").UiConfigurationItem<unknown>>;
375
360
  /**
376
361
  * @type {Notifier}
377
362
  */