@vcmap/ui 6.0.0-rc.5 → 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 (156) hide show
  1. package/build/buildTypes.js +9 -5
  2. package/config/base.config.json +0 -6
  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.js +1 -1
  8. package/dist/assets/{core-1c8b8674.js → core-e06aa7a6.js} +1403 -1375
  9. package/dist/assets/core.js +1 -1
  10. package/dist/assets/ol.js +1 -1
  11. package/dist/assets/ui-5dda32d2.css +1 -0
  12. package/dist/assets/{ui-7214428e.js → ui-5dda32d2.js} +11632 -11501
  13. package/dist/assets/ui.js +1 -1
  14. package/dist/assets/vue.js +1 -1
  15. package/dist/assets/{vuetify-88a2fabe.css → vuetify-4c4e4217.css} +1 -1
  16. package/dist/assets/{vuetify-88a2fabe.js → vuetify-4c4e4217.js} +2375 -2369
  17. package/dist/assets/vuetify.js +1 -1
  18. package/index.d.ts +22 -10
  19. package/index.js +9 -3
  20. package/package.json +3 -3
  21. package/plugins/@vcmap-show-case/custom-icons-example/README.md +3 -0
  22. package/plugins/@vcmap-show-case/custom-icons-example/assets/imageExample.png +0 -0
  23. package/plugins/@vcmap-show-case/custom-icons-example/assets/svgExample.svg +1 -0
  24. package/plugins/@vcmap-show-case/custom-icons-example/package.json +5 -0
  25. package/plugins/@vcmap-show-case/custom-icons-example/src/CustomIconsExample.vue +90 -0
  26. package/plugins/@vcmap-show-case/custom-icons-example/src/index.js +45 -0
  27. package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +11 -7
  28. package/plugins/@vcmap-show-case/theming-example/README.md +3 -0
  29. package/plugins/@vcmap-show-case/theming-example/package.json +5 -0
  30. package/plugins/@vcmap-show-case/theming-example/src/ThemingExample.vue +116 -0
  31. package/plugins/@vcmap-show-case/theming-example/src/index.js +53 -0
  32. package/plugins/package.json +5 -1
  33. package/src/actions/actionHelper.d.ts +4 -11
  34. package/src/actions/actionHelper.js +2 -5
  35. package/src/actions/listActions.d.ts +2 -2
  36. package/src/application/VcsApp.vue +17 -19
  37. package/src/application/VcsApp.vue.d.ts +5 -1
  38. package/src/application/VcsAttributionsFooter.vue.d.ts +1 -1
  39. package/src/application/VcsContainer.vue +2 -2
  40. package/src/application/VcsContainer.vue.d.ts +5 -1
  41. package/src/application/VcsNavbar.vue +9 -1
  42. package/src/application/VcsNavbar.vue.d.ts +1 -0
  43. package/src/application/VcsSplashScreen.vue +11 -2
  44. package/src/application/attributionsHelper.d.ts +20 -22
  45. package/src/application/attributionsHelper.js +4 -4
  46. package/src/callback/vcsCallback.d.ts +2 -2
  47. package/src/callback/vcsCallback.js +1 -1
  48. package/src/components/buttons/VcsActionButtonList.vue +2 -3
  49. package/src/components/buttons/VcsButton.vue +2 -4
  50. package/src/components/buttons/VcsButton.vue.d.ts +1 -1
  51. package/src/components/buttons/VcsFormButton.vue +4 -4
  52. package/src/components/buttons/VcsToolButton.vue +4 -2
  53. package/src/components/buttons/VcsToolButton.vue.d.ts +2 -2
  54. package/src/components/composables.d.ts +5 -0
  55. package/src/components/composables.js +79 -9
  56. package/src/components/extent/VcsExtent.vue +10 -6
  57. package/src/components/extent/VcsExtent.vue.d.ts +1 -0
  58. package/src/components/flight/VcsFlightComponent.vue +13 -13
  59. package/src/components/flight/VcsFlightComponent.vue.d.ts +1 -0
  60. package/src/components/form-inputs-controls/VcsCheckbox.vue +8 -3
  61. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +3 -8
  62. package/src/components/form-inputs-controls/VcsChipArrayInput.vue.d.ts +0 -1
  63. package/src/components/form-inputs-controls/VcsCoordinate.vue +1 -2
  64. package/src/components/form-inputs-controls/VcsFileInput.vue +1 -1
  65. package/src/components/form-inputs-controls/VcsLabel.vue +1 -1
  66. package/src/components/form-inputs-controls/VcsRadio.vue +8 -6
  67. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
  68. package/src/components/form-inputs-controls/VcsSelect.vue +1 -1
  69. package/src/components/form-inputs-controls/VcsSlider.vue +5 -5
  70. package/src/components/form-inputs-controls/VcsTextArea.vue +1 -1
  71. package/src/components/form-inputs-controls/VcsTextField.vue +10 -1
  72. package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +2 -1
  73. package/src/components/form-inputs-controls/VcsWizard.vue +3 -3
  74. package/src/components/form-inputs-controls/VcsWizardStep.vue +5 -1
  75. package/src/components/form-inputs-controls/vcsTextField.scss +7 -1
  76. package/src/components/form-output/VcsFormattedNumber.vue +1 -1
  77. package/src/components/import/VcsImportComponent.vue +7 -4
  78. package/src/components/import/VcsImportComponent.vue.d.ts +1 -1
  79. package/src/components/lists/VcsActionList.vue +2 -6
  80. package/src/components/lists/VcsListItemComponent.vue +20 -10
  81. package/src/components/lists/VcsListItemComponent.vue.d.ts +11 -1
  82. package/src/components/lists/VcsTreeview.vue +53 -11
  83. package/src/components/lists/VcsTreeview.vue.d.ts +2 -0
  84. package/src/components/lists/VcsTreeviewSearchbar.vue +14 -3
  85. package/src/components/lists/VcsTreeviewSearchbar.vue.d.ts +3 -1
  86. package/src/components/lists/VcsTreeviewTitle.vue +36 -0
  87. package/src/components/modelHelper.d.ts +10 -8
  88. package/src/components/modelHelper.js +8 -6
  89. package/src/components/notification/VcsHelp.vue +6 -7
  90. package/src/components/notification/VcsHelp.vue.d.ts +0 -9
  91. package/src/components/plugins/AbstractConfigEditor.vue +1 -22
  92. package/src/components/plugins/AbstractConfigEditor.vue.d.ts +6 -29
  93. package/src/components/section/VcsExpansionPanel.vue +9 -3
  94. package/src/components/section/VcsExpansionPanel.vue.d.ts +2 -2
  95. package/src/components/section/VcsFormSection.vue +6 -6
  96. package/src/components/section/VcsFormSection.vue.d.ts +2 -2
  97. package/src/components/style/VcsImageSelector.vue +14 -6
  98. package/src/components/style/VcsImageSelector.vue.d.ts +1 -0
  99. package/src/components/style/VcsStrokeSelector.vue +5 -2
  100. package/src/components/style/VcsStrokeSelector.vue.d.ts +1 -0
  101. package/src/components/style/VcsTextMenu.vue +2 -2
  102. package/src/components/tables/VcsDataTable.vue +14 -10
  103. package/src/components/tables/VcsDataTable.vue.d.ts +1 -0
  104. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +42 -31
  105. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +1 -0
  106. package/src/components/viewpoint/VcsViewpointComponent.vue +12 -9
  107. package/src/components/viewpoint/VcsViewpointComponent.vue.d.ts +1 -0
  108. package/src/contentTree/contentTreeItem.d.ts +2 -2
  109. package/src/contentTree/contentTreeItem.js +1 -1
  110. package/src/featureInfo/BalloonComponent.vue +21 -13
  111. package/src/featureInfo/BalloonComponent.vue.d.ts +1 -0
  112. package/src/featureInfo/abstractFeatureInfoView.d.ts +4 -4
  113. package/src/featureInfo/abstractFeatureInfoView.js +4 -4
  114. package/src/featureInfo/featureInfo.d.ts +2 -2
  115. package/src/featureInfo/featureInfo.js +1 -1
  116. package/src/i18n/i18nCollection.d.ts +9 -15
  117. package/src/i18n/i18nCollection.js +3 -3
  118. package/src/legend/VcsLegend.vue +6 -2
  119. package/src/legend/VcsLegend.vue.d.ts +1 -0
  120. package/src/manager/collectionManager/CollectionComponentList.vue +1 -1
  121. package/src/manager/collectionManager/categoryManager.d.ts +1 -1
  122. package/src/manager/collectionManager/collectionComponentClass.d.ts +2 -2
  123. package/src/manager/collectionManager/collectionComponentClass.js +4 -4
  124. package/src/manager/collectionManager/collectionManager.d.ts +1 -1
  125. package/src/manager/toolbox/GroupToolboxComponent.vue +8 -6
  126. package/src/manager/toolbox/GroupToolboxComponent.vue.d.ts +1 -1
  127. package/src/manager/toolbox/SelectToolboxComponent.vue +8 -6
  128. package/src/manager/toolbox/SelectToolboxComponent.vue.d.ts +1 -1
  129. package/src/manager/toolbox/{ToolboxManager.vue → ToolboxManagerComponent.vue} +8 -5
  130. package/src/manager/toolbox/{ToolboxManager.vue.d.ts → ToolboxManagerComponent.vue.d.ts} +1 -1
  131. package/src/manager/window/WindowComponentHeader.vue +6 -3
  132. package/src/manager/window/WindowComponentHeader.vue.d.ts +1 -0
  133. package/src/manager/window/windowManager.d.ts +6 -6
  134. package/src/manager/window/windowManager.js +3 -3
  135. package/src/navigation/OrientationToolsButton.vue +2 -4
  136. package/src/navigation/TiltSlider.vue +3 -5
  137. package/src/search/SearchComponent.vue +8 -6
  138. package/src/search/SearchComponent.vue.d.ts +1 -1
  139. package/src/styles/vcsList.scss +1 -1
  140. package/src/uiConfig.d.ts +12 -3
  141. package/src/uiConfig.js +2 -1
  142. package/src/vcsUiApp.d.ts +41 -56
  143. package/src/vcsUiApp.js +34 -28
  144. package/src/vuePlugins/vuetify.d.ts +88 -62
  145. package/src/vuePlugins/vuetify.js +116 -20
  146. package/dist/assets/ui-7214428e.css +0 -1
  147. package/plugins/@vcmap-show-case/theme-changer/README.md +0 -23
  148. package/plugins/@vcmap-show-case/theme-changer/config.json +0 -69
  149. package/plugins/@vcmap-show-case/theme-changer/package.json +0 -11
  150. package/plugins/@vcmap-show-case/theme-changer/src/ThemeChangerComponent.vue +0 -120
  151. package/plugins/@vcmap-show-case/theme-changer/src/index.js +0 -108
  152. package/src/components/lists/VcsTreeviewLeaf.vue +0 -92
  153. /package/dist/assets/{cesium-126f111a.js → cesium-ccb4cc30.js} +0 -0
  154. /package/dist/assets/{ol-27f9b3f3.js → ol-e7981d5c.js} +0 -0
  155. /package/dist/assets/{vue-c78a5f76.js → vue-87bc6efe.js} +0 -0
  156. /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
  /**
@@ -136,6 +136,10 @@ export type UiConfigObject = {
136
136
  * - the display quality settings
137
137
  */
138
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;
139
143
  };
140
144
  /**
141
145
  * @typedef {{
@@ -179,7 +183,7 @@ export type UiConfigObject = {
179
183
  * @property {string} [logo] - the company logo to display. this will override any and all css overrides.
180
184
  * @property {string} [mobileLogo] - an alternative logo to display in mobile view
181
185
  * @property {string} [appTitle] - an optional title to display next to the company logo
182
- * @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`
183
187
  * @property {boolean} [startingFeatureInfo] - an optional flag whether to activate feature info on startup (default active)
184
188
  * @property {string} [positionDisplayEventType] - mouse event, when position display is updated. Either 'click' (default) or 'move'.
185
189
  * @property {string} [helpBaseUrl='https://help.vc.systems/'] - an optional URL to a help landing page
@@ -202,6 +206,7 @@ export type UiConfigObject = {
202
206
  * @property {boolean} [hideSettings] - can be used to hide the settings Window
203
207
  * @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
204
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/
205
210
  */
206
211
  /**
207
212
  * @extends {Collection<UiConfigurationItem<unknown>>}
@@ -245,7 +250,7 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
245
250
  */
246
251
  readonly appTitle?: string | undefined;
247
252
  /**
248
- * - an optional primary color to use in all themes
253
+ * - an optional primary color to use in all themes, can be overwritten by `vuetifyTheme`
249
254
  */
250
255
  readonly primaryColor?: string | undefined;
251
256
  /**
@@ -466,6 +471,10 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
466
471
  readonly layerSSEFactor?: number | undefined;
467
472
  } | undefined;
468
473
  } | undefined;
474
+ /**
475
+ * - Vuetify Theming, also see vuetify configuration https://vuetifyjs.com/en/features/theme/
476
+ */
477
+ readonly vuetifyTheme?: any;
469
478
  };
470
479
  }
471
480
  import { Collection } from '@vcmap/core';
package/src/uiConfig.js CHANGED
@@ -47,7 +47,7 @@ import { reactive, readonly } 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
@@ -70,6 +70,7 @@ import { reactive, readonly } from 'vue';
70
70
  * @property {boolean} [hideSettings] - can be used to hide the settings Window
71
71
  * @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
72
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/
73
74
  */
74
75
 
75
76
  /**
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,7 +113,7 @@ 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;
@@ -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
  */
package/src/vcsUiApp.js CHANGED
@@ -48,40 +48,46 @@ 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
67
+ * @typedef {import("vue").Component<{ getConfig(): Config, setConfig(config?: Config): void }>} PluginConfigEditorComponent
70
68
  * @template {Object} 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<Config>,
74
+ * title?: string,
75
+ * collectionName?: string,
76
+ * itemName?: string,
77
+ * infoUrlCallback?: () => string,
78
+ * }} PluginConfigEditor
79
+ * @template {Object} Config
80
+ * @property {PluginConfigEditorComponent<Config>} 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
84
- * @template {Object} S
88
+ * @typedef {function(Config, string):VcsPlugin<Config, State>} createPlugin
89
+ * @template {Object} Config
90
+ * @template {Object} State
85
91
  */
86
92
 
87
93
  /**
@@ -92,22 +98,22 @@ import { createVcsVuetify } from './vuePlugins/vuetify.js';
92
98
  * version: string,
93
99
  * mapVersion: string,
94
100
  * i18n?: Object<string, unknown>,
95
- * initialize?: function(import("@src/vcsUiApp.js").default, S=):void|Promise<void>,
101
+ * initialize?: function(import("@src/vcsUiApp.js").default, State=):void|Promise<void>,
96
102
  * onVcsAppMounted?: function(import("@src/vcsUiApp.js").default):void,
97
- * toJSON?: function(): P,
98
- * getDefaultOptions?: function(): P,
99
- * getState?: function(boolean=):S|Promise<S>,
100
- * getConfigEditors?: function():Array<PluginConfigEditor>,
103
+ * toJSON?: function(): Config,
104
+ * getDefaultOptions?: function(): Config,
105
+ * getState?: function(boolean=):State|Promise<State>,
106
+ * getConfigEditors?: function():Array<PluginConfigEditor<Config>>,
101
107
  * destroy?: function(): void
102
108
  * }} VcsPlugin
103
- * @template {Object} P
104
- * @template {Object} S
109
+ * @template {Object} Config
110
+ * @template {Object} State
105
111
  * @property {Object<string, *>} [i18n] - the i18n messages of this plugin
106
- * @property {function(import("@src/vcsUiApp.js").default, S=)} initialize - called on plugin added. Is passed the VcsUiApp and optionally, the state for the plugin
112
+ * @property {function(import("@src/vcsUiApp.js").default, State=)} 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
110
- * @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
114
+ * @property {function():Config} [toJSON] - should return the plugin's serialization excluding all default values
115
+ * @property {function():Config} [getDefaultOptions] - should return the plugin's default options
116
+ * @property {function(boolean=):S|Promise<State>} [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
113
119
  */
@@ -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
+ };