@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
@@ -1,6 +1,9 @@
1
1
  <template>
2
- <div v-if="show" class="ma-0 font-weight-regular rounded-0 bg-base-lighten-4">
3
- <v-container class="pa-1 vcs-help">
2
+ <div
3
+ v-if="$slots.default || text"
4
+ class="ma-0 font-weight-regular rounded-0 bg-base-lighten-4"
5
+ >
6
+ <v-container class="py-1 px-2 vcs-help">
4
7
  <slot>
5
8
  <span>{{ $st(text) }}</span>
6
9
  </slot>
@@ -10,6 +13,7 @@
10
13
  <style lang="scss">
11
14
  .vcs-help {
12
15
  box-sizing: border-box;
16
+ padding-left: 16px;
13
17
  ol,
14
18
  ul {
15
19
  padding-left: 16px; /* Indentation for list items */
@@ -22,7 +26,6 @@
22
26
  /**
23
27
  * @description A component for displaying help.
24
28
  * @vue-data {slot} [#default] - Slot to specify html based help. Gets precedence over text prop.
25
- * @vue-prop {boolean} show - If help should be displayed. If false, component is completely hidden.
26
29
  * @vue-prop {string} [text] - Optional help text. Must be plain string. Use 'help' slot for html based help texts. Help slot has precedence over text prop.
27
30
  */
28
31
  export default {
@@ -35,10 +38,6 @@
35
38
  type: String,
36
39
  default: undefined,
37
40
  },
38
- show: {
39
- type: Boolean,
40
- required: true,
41
- },
42
41
  },
43
42
  };
44
43
  </script>
@@ -3,19 +3,11 @@ declare const _default: import("vue").DefineComponent<{
3
3
  type: StringConstructor;
4
4
  default: undefined;
5
5
  };
6
- show: {
7
- type: BooleanConstructor;
8
- required: true;
9
- };
10
6
  }, any, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
11
7
  text: {
12
8
  type: StringConstructor;
13
9
  default: undefined;
14
10
  };
15
- show: {
16
- type: BooleanConstructor;
17
- required: true;
18
- };
19
11
  }>>, {
20
12
  text: string;
21
13
  }, {}>;
@@ -32,11 +32,7 @@
32
32
  * @vue-prop {boolean} [showReset=false] - Flag to show a reset button in the footer. You need to handle @reset in a child component.
33
33
  * @vue-prop {Array<VcsAction>} [actions] - Optional actions rendered as ActionButtonList in the footer.
34
34
  * @vue-prop {string} [submitButtonTitle='components.apply'] - Option to change the submit button title, e.g. to 'components.add'.
35
- * @vue-prop {boolean} [setConfigOnCancel=true] - Whether setConfig shall be called on cancel. Ensures compatability with v5.0.x
36
35
  * @vue-prop {boolean} [autoClose=true] - Whether window component shall be close on submit or cancel.
37
- * @vue-prop {function():void} [onSubmit] - Callback function called on submit.
38
- * @vue-prop {function():void} [onReset] - Callback function called on reset.
39
- * @vue-prop {function():void} [onCancel] - Callback function called on cancel.
40
36
  * @vue-event {Event} submit - Event fired on clicking the submit button.
41
37
  * @vue-event {Event} cancel - Event fired on clicking the cancel button.
42
38
  * @vue-event {Event} reset - Event fired on clicking the reset button.
@@ -70,19 +66,8 @@
70
66
  type: Boolean,
71
67
  default: true,
72
68
  },
73
- onSubmit: {
74
- type: Function,
75
- default: () => {},
76
- },
77
- onReset: {
78
- type: Function,
79
- default: () => {},
80
- },
81
- onCancel: {
82
- type: Function,
83
- default: () => {},
84
- },
85
69
  },
70
+ emits: ['submit', 'cancel', 'reset'],
86
71
  setup(props, { attrs, emit }) {
87
72
  const app = inject('vcsApp');
88
73
 
@@ -95,24 +80,18 @@
95
80
  return {
96
81
  isValid: ref(true),
97
82
  submit(e) {
98
- props.onSubmit();
99
83
  emit('submit', e);
100
84
  if (props.autoClose) {
101
85
  close();
102
86
  }
103
87
  },
104
88
  cancel(e) {
105
- props.onCancel();
106
- if (props.setConfigOnCancel) {
107
- attrs.setConfig?.();
108
- }
109
89
  emit('cancel', e);
110
90
  if (props.autoClose) {
111
91
  close();
112
92
  }
113
93
  },
114
94
  reset(e) {
115
- props.onReset();
116
95
  emit('reset', e);
117
96
  },
118
97
  };
@@ -19,24 +19,12 @@ declare const _default: import("vue").DefineComponent<{
19
19
  type: BooleanConstructor;
20
20
  default: boolean;
21
21
  };
22
- onSubmit: {
23
- type: FunctionConstructor;
24
- default: () => void;
25
- };
26
- onReset: {
27
- type: FunctionConstructor;
28
- default: () => void;
29
- };
30
- onCancel: {
31
- type: FunctionConstructor;
32
- default: () => void;
33
- };
34
22
  }, {
35
23
  isValid: import("vue").Ref<boolean>;
36
24
  submit(e: any): void;
37
25
  cancel(e: any): void;
38
26
  reset(e: any): void;
39
- }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
27
+ }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("cancel" | "reset" | "submit")[], "cancel" | "reset" | "submit", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
40
28
  showReset: {
41
29
  type: BooleanConstructor;
42
30
  default: boolean;
@@ -57,26 +45,15 @@ declare const _default: import("vue").DefineComponent<{
57
45
  type: BooleanConstructor;
58
46
  default: boolean;
59
47
  };
60
- onSubmit: {
61
- type: FunctionConstructor;
62
- default: () => void;
63
- };
64
- onReset: {
65
- type: FunctionConstructor;
66
- default: () => void;
67
- };
68
- onCancel: {
69
- type: FunctionConstructor;
70
- default: () => void;
71
- };
72
- }>>, {
73
- onReset: Function;
74
- onSubmit: Function;
48
+ }>> & {
49
+ onReset?: ((...args: any[]) => any) | undefined;
50
+ onSubmit?: ((...args: any[]) => any) | undefined;
51
+ onCancel?: ((...args: any[]) => any) | undefined;
52
+ }, {
75
53
  actions: unknown[];
76
54
  showReset: boolean;
77
55
  submitButtonTitle: string;
78
56
  setConfigOnCancel: boolean;
79
57
  autoClose: boolean;
80
- onCancel: Function;
81
58
  }, {}>;
82
59
  export default _default;
@@ -10,6 +10,7 @@
10
10
  import { computed, ref, useSlots } from 'vue';
11
11
  import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
12
12
  import { createEllipseTooltip } from '../composables.js';
13
+ import { useIconSize } from '../../vuePlugins/vuetify.js';
13
14
 
14
15
  const props = defineProps({
15
16
  heading: {
@@ -39,14 +40,19 @@
39
40
  computed(() => undefined),
40
41
  computed(() => props.heading),
41
42
  );
43
+ const iconSize = useIconSize();
42
44
  </script>
43
45
  <template>
44
46
  <v-expansion-panel :disabled="disabled" v-bind="$attrs">
45
47
  <v-expansion-panel-title static class="px-2">
46
48
  <template #default="{ expanded }">
47
49
  <v-list-item-title ref="panelHeader">
48
- <v-icon v-if="!expanded" class="pr-1"> mdi-chevron-down </v-icon>
49
- <v-icon v-if="expanded" class="pr-1"> mdi-chevron-right </v-icon>
50
+ <v-icon :size="iconSize" v-if="!expanded" class="pr-1">
51
+ mdi-chevron-right
52
+ </v-icon>
53
+ <v-icon :size="iconSize" v-if="expanded" class="pr-1">
54
+ mdi-chevron-down
55
+ </v-icon>
50
56
  <span
51
57
  :class="{
52
58
  'vcs-panel-title__append':
@@ -82,7 +88,7 @@
82
88
  :deep(.v-expansion-panel-title) {
83
89
  font-size: var(--v-vcs-font-size);
84
90
  min-height: unset;
85
- height: var(--v-vcs-item-height);
91
+ height: calc(var(--v-vcs-font-size) * 2 + 6px);
86
92
  line-height: 1.2;
87
93
  padding: 0 8px;
88
94
  }
@@ -1,11 +1,11 @@
1
1
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}, {
2
- headerActions: unknown[];
3
2
  disabled: boolean;
3
+ headerActions: unknown[];
4
4
  heading?: string | undefined;
5
5
  actionButtonListOverflowCount?: number | undefined;
6
6
  $props: {
7
- readonly headerActions?: unknown[] | undefined;
8
7
  readonly disabled?: boolean | undefined;
8
+ readonly headerActions?: unknown[] | undefined;
9
9
  readonly heading?: string | undefined;
10
10
  readonly actionButtonListOverflowCount?: number | undefined;
11
11
  };
@@ -10,16 +10,16 @@
10
10
  <v-btn
11
11
  :ripple="false"
12
12
  dense
13
- variant="plain"
13
+ variant="text"
14
14
  icon
15
- :size="useItemHeight().value - 4"
15
+ :size="fontSize * 2"
16
16
  :disabled="disabled"
17
17
  elevation="0"
18
18
  @click="open = !open"
19
19
  v-if="expandable"
20
20
  :aria-expanded="open"
21
21
  >
22
- <v-icon :size="useItemHeight().value - 8">{{
22
+ <v-icon>{{
23
23
  open ? 'mdi-chevron-down' : 'mdi-chevron-right'
24
24
  }}</v-icon>
25
25
  </v-btn>
@@ -36,7 +36,7 @@
36
36
  </div>
37
37
  </div>
38
38
  </slot>
39
- <VcsHelp :text="helpText" :show="showHelp">
39
+ <VcsHelp :text="helpText" v-if="showHelp && ($slots.help || helpText)">
40
40
  <slot name="help" />
41
41
  </VcsHelp>
42
42
  <article class="section-content" v-if="showContent">
@@ -48,7 +48,7 @@
48
48
  <script>
49
49
  import { computed, reactive, ref } from 'vue';
50
50
  import { VBtn, VIcon } from 'vuetify/components';
51
- import { useItemHeight } from '../../vuePlugins/vuetify.js';
51
+ import { useFontSize } from '../../vuePlugins/vuetify.js';
52
52
  import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
53
53
  import VcsHelp from '../notification/VcsHelp.vue';
54
54
 
@@ -134,12 +134,14 @@
134
134
  return props.headerActions;
135
135
  });
136
136
 
137
+ const fontSize = useFontSize();
138
+
137
139
  return {
138
140
  open,
139
141
  showContent,
140
142
  showHelp,
141
143
  actions,
142
- useItemHeight,
144
+ fontSize,
143
145
  };
144
146
  },
145
147
  };
@@ -147,9 +149,13 @@
147
149
 
148
150
  <style lang="scss" scoped>
149
151
  .vcs-form-section-header {
150
- height: calc(var(--v-vcs-item-height) + 8px);
152
+ height: calc(var(--v-vcs-font-size) * 2 + 14px);
151
153
  }
152
154
  .v-alert--text:before {
153
155
  background-color: transparent;
154
156
  }
157
+ // remove hover shadow over button
158
+ :deep(.v-btn__overlay) {
159
+ --v-hover-opacity: 0;
160
+ }
155
161
  </style>
@@ -33,7 +33,7 @@ declare const _default: import("vue").DefineComponent<{
33
33
  showContent: import("vue").ComputedRef<boolean>;
34
34
  showHelp: import("vue").ComputedRef<boolean>;
35
35
  actions: import("vue").ComputedRef<VcsAction>;
36
- useItemHeight: typeof useItemHeight;
36
+ fontSize: import("vue").ComputedRef<number>;
37
37
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
38
38
  heading: {
39
39
  type: StringConstructor;
@@ -65,8 +65,8 @@ declare const _default: import("vue").DefineComponent<{
65
65
  default: undefined;
66
66
  };
67
67
  }>>, {
68
- headerActions: unknown[];
69
68
  disabled: boolean;
69
+ headerActions: unknown[];
70
70
  heading: string;
71
71
  actionButtonListOverflowCount: number;
72
72
  expandable: boolean;
@@ -74,4 +74,3 @@ declare const _default: import("vue").DefineComponent<{
74
74
  helpText: string;
75
75
  }, {}>;
76
76
  export default _default;
77
- import { useItemHeight } from '../../vuePlugins/vuetify.js';
@@ -45,13 +45,13 @@
45
45
  <div v-if="selectedType === ImageType.ICON">
46
46
  <v-row no-gutters>
47
47
  <v-col>
48
- <VcsLabel html-for="style-icon-opacity">
48
+ <VcsLabel :html-for="`${cid}-style-icon-opacity`">
49
49
  {{ $t('components.style.opacity') }}
50
50
  </VcsLabel>
51
51
  </v-col>
52
52
  <v-col>
53
53
  <VcsSlider
54
- id="style-icon-opacity"
54
+ :id="`${cid}-style-icon-opacity`"
55
55
  v-model="localValue.opacity"
56
56
  step="0.1"
57
57
  type="number"
@@ -69,11 +69,13 @@
69
69
  :key="input.key"
70
70
  >
71
71
  <v-col>
72
- <VcsLabel>{{ $st(`components.style.${input.key}`) }}</VcsLabel>
72
+ <VcsLabel :html-for="`${cid}-${input.key}`">{{
73
+ $st(`components.style.${input.key}`)
74
+ }}</VcsLabel>
73
75
  </v-col>
74
76
  <v-col cols="3">
75
77
  <VcsTextField
76
- :id="`style-shape-${input.key}`"
78
+ :id="`${cid}-${input.key}`"
77
79
  :hide-spin-buttons="true"
78
80
  type="number"
79
81
  :unit="input.unit || ''"
@@ -102,11 +104,13 @@
102
104
  v-if="extendedShapeSettings || selectedType === ImageType.ICON"
103
105
  >
104
106
  <v-col>
105
- <VcsLabel>{{ $t('components.style.scale') }}</VcsLabel>
107
+ <VcsLabel :html-for="`${cid}-style-shape-scale`">{{
108
+ $t('components.style.scale')
109
+ }}</VcsLabel>
106
110
  </v-col>
107
111
  <v-col cols="3">
108
112
  <VcsTextField
109
- id="style-shape-scale"
113
+ :id="`${cid}-style-shape-scale`"
110
114
  :hide-spin-buttons="true"
111
115
  type="number"
112
116
  v-model.number="selectedScale"
@@ -148,6 +152,7 @@
148
152
  import { toContext } from 'ol/render.js';
149
153
  import { Point } from 'ol/geom.js';
150
154
  import { getImageStyleFromOptions } from '@vcmap/core';
155
+ import { useComponentId } from '../composables.js';
151
156
  import { useProxiedComplexModel } from '../modelHelper.js';
152
157
  import VcsLabel from '../form-inputs-controls/VcsLabel.vue';
153
158
  import VcsTextField from '../form-inputs-controls/VcsTextField.vue';
@@ -907,6 +912,8 @@
907
912
  );
908
913
  });
909
914
 
915
+ const cid = useComponentId();
916
+
910
917
  return {
911
918
  ImageType,
912
919
  localValue,
@@ -919,6 +926,7 @@
919
926
  between,
920
927
  currentItems,
921
928
  selectedImageTypeTab,
929
+ cid,
922
930
  };
923
931
  },
924
932
  };
@@ -98,6 +98,7 @@ declare const _default: import("vue").DefineComponent<{
98
98
  idx: number;
99
99
  }[]>;
100
100
  selectedImageTypeTab: import("vue").Ref<number>;
101
+ cid: string;
101
102
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
102
103
  modelValue: {
103
104
  type: ObjectConstructor;
@@ -3,13 +3,13 @@
3
3
  <v-container class="px-1 py-0">
4
4
  <v-row no-gutters>
5
5
  <v-col>
6
- <VcsLabel html-for="draw-stroke-width">
6
+ <VcsLabel :html-for="`${cid}-draw-stroke-width`">
7
7
  {{ $t('components.style.lineWidth') }}
8
8
  </VcsLabel>
9
9
  </v-col>
10
10
  <v-col cols="3">
11
11
  <VcsTextField
12
- id="draw-stroke-width"
12
+ :id="`${cid}-draw-stroke-width`"
13
13
  v-model.number="width"
14
14
  :hide-spin-buttons="true"
15
15
  type="number"
@@ -38,6 +38,7 @@
38
38
  VRow,
39
39
  VCol,
40
40
  } from 'vuetify/components';
41
+ import { useComponentId } from '../composables.js';
41
42
  import VcsLabel from '../form-inputs-controls/VcsLabel.vue';
42
43
  import VcsTextField from '../form-inputs-controls/VcsTextField.vue';
43
44
  import { useColorObject } from './composables.js';
@@ -66,6 +67,7 @@
66
67
  },
67
68
  setup(props, { emit }) {
68
69
  const localValue = useProxiedComplexModel(props, 'modelValue', emit);
70
+ const cid = useComponentId();
69
71
  return {
70
72
  rgbaObject: useColorObject(() => localValue.value?.color),
71
73
  width: computed({
@@ -81,6 +83,7 @@
81
83
  updateColor(rgba) {
82
84
  localValue.value.color = [rgba.r, rgba.g, rgba.b, rgba.a];
83
85
  },
86
+ cid,
84
87
  };
85
88
  },
86
89
  };
@@ -12,6 +12,7 @@ declare const _default: import("vue").DefineComponent<{
12
12
  }>;
13
13
  width: import("vue").WritableComputedRef<any>;
14
14
  updateColor(rgba: any): void;
15
+ cid: string;
15
16
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
16
17
  modelValue: {
17
18
  type: ObjectConstructor;
@@ -1,12 +1,12 @@
1
1
  <template>
2
2
  <MenuWrapper
3
- v-bind="{ ...$attrs, ...$props }"
4
3
  :value-fallback="fallbackStyle"
5
4
  name="components.style.text"
5
+ v-bind="{ ...$attrs, ...$props }"
6
6
  >
7
7
  <template #preview>
8
8
  <div v-if="modelValue" class="d-flex justify-center align-center">
9
- <span id="text-preview">T</span>
9
+ <span class="vcs-text-menu-preview">T</span>
10
10
  </div>
11
11
  </template>
12
12
  <template #content>
@@ -68,7 +68,7 @@
68
68
  </script>
69
69
 
70
70
  <style>
71
- #text-preview {
71
+ .vcs-text-menu-preview {
72
72
  font: v-bind(fontStyle) !important;
73
73
  font-size: 20px !important;
74
74
  -webkit-text-stroke-color: v-bind(strokeColor);
@@ -5,9 +5,9 @@
5
5
  :key="key"
6
6
  :is="componentMap[key]"
7
7
  :value-default="valueDefault[key]"
8
+ v-bind="specificProps[key]"
8
9
  v-model="localValue[key]"
9
10
  @update:model-value="(v) => $emit(`update:${key}`, v)"
10
- v-bind="specificProps[key]"
11
11
  />
12
12
  </v-sheet>
13
13
  </template>
@@ -38,12 +38,8 @@
38
38
  v-model:items-per-page="itemsPerPageRef"
39
39
  @update:options="(o) => $emit('update:items', { ...o, search })"
40
40
  >
41
- <template v-for="slot of Object.keys($slots)" #[slot]="scope">
42
- <slot
43
- v-if="!['prepend', 'default', 'append'].includes(slot)"
44
- :name="slot"
45
- v-bind="scope"
46
- />
41
+ <template v-for="slot of forwardSlots" #[slot]="scope">
42
+ <slot :name="slot" v-bind="scope ?? {}" />
47
43
  </template>
48
44
  <template
49
45
  #header.data-table-select="{ allSelected, selectAll, someSelected }"
@@ -72,28 +68,30 @@
72
68
  <tfoot>
73
69
  <tr class="v-data-table__tr">
74
70
  <td colspan="100" class="text-center pa-1">
75
- <v-menu dense>
76
- <template #activator="{ props }">
77
- <VcsButton
78
- color="primary"
79
- v-bind="props"
80
- class="v-btn--variant-plain mx-2 d-flex flex-wrap"
81
- >
82
- {{ itemsPerPageRef }}
83
- <v-icon>mdi-chevron-down</v-icon>
84
- </VcsButton>
85
- </template>
86
- <v-list>
87
- <v-list-item
88
- v-for="(number, index) in itemsPerPageArray"
89
- :key="index"
90
- @click="updateItemsPerPage(number)"
91
- style="min-height: auto; height: 24px; text-align: right"
92
- >
93
- <v-list-item-title>{{ number }}</v-list-item-title>
94
- </v-list-item>
95
- </v-list>
96
- </v-menu>
71
+ <div class="d-inline-block">
72
+ <v-menu>
73
+ <template #activator="{ props }">
74
+ <VcsButton
75
+ color="primary"
76
+ v-bind="props"
77
+ class="v-btn--variant-plain mx-2 d-flex flex-wrap"
78
+ >
79
+ {{ itemsPerPageRef }}
80
+ <v-icon>mdi-chevron-down</v-icon>
81
+ </VcsButton>
82
+ </template>
83
+ <v-list>
84
+ <v-list-item
85
+ v-for="(number, index) in itemsPerPageArray"
86
+ :key="index"
87
+ @click="updateItemsPerPage(number)"
88
+ style="min-height: auto; height: 24px; text-align: right"
89
+ >
90
+ <v-list-item-title>{{ number }}</v-list-item-title>
91
+ </v-list-item>
92
+ </v-list>
93
+ </v-menu>
94
+ </div>
97
95
  <span class="mx-2">{{
98
96
  $t('components.vcsDataTable.itemsPerPage')
99
97
  }}</span>
@@ -135,6 +133,7 @@
135
133
  import VcsTreeviewSearchbar from '../lists/VcsTreeviewSearchbar.vue';
136
134
  import VcsButton from '../buttons/VcsButton.vue';
137
135
  import VcsCheckbox from '../form-inputs-controls/VcsCheckbox.vue';
136
+ import { useForwardSlots } from '../composables.js';
138
137
 
139
138
  /**
140
139
  * @typedef {Object} UpdateItemsEvent
@@ -218,7 +217,7 @@
218
217
  default: 'isSelectable',
219
218
  },
220
219
  },
221
- setup(props, { attrs, emit }) {
220
+ setup(props, { attrs, emit, slots }) {
222
221
  const vm = getCurrentInstance().proxy;
223
222
  const hovering = ref(null);
224
223
  /**
@@ -364,6 +363,12 @@
364
363
  props.serverItemsLength > itemsPerPageRef.value,
365
364
  );
366
365
 
366
+ const forwardSlots = useForwardSlots(slots, [
367
+ 'prepend',
368
+ 'default',
369
+ 'append',
370
+ ]);
371
+
367
372
  return {
368
373
  hovering,
369
374
  search,
@@ -391,6 +396,7 @@
391
396
  handleSearch,
392
397
  translatedHeaders,
393
398
  showFooter,
399
+ forwardSlots,
394
400
  };
395
401
  },
396
402
  };
@@ -419,6 +425,9 @@
419
425
  }
420
426
 
421
427
  :deep(.vcs-table > .v-table__wrapper) {
428
+ overflow-x: hidden;
429
+ overflow-y: auto;
430
+
422
431
  table tbody tr {
423
432
  &:hover {
424
433
  background-color: transparent !important;
@@ -430,6 +439,7 @@
430
439
 
431
440
  td {
432
441
  padding: 0 8px;
442
+ border-bottom: transparent !important;
433
443
  }
434
444
  }
435
445
  table thead tr {
@@ -440,10 +450,10 @@
440
450
  }
441
451
 
442
452
  .v-table--density-compact {
443
- --v-table-header-height: var(--v-vcs-item-height);
444
- --v-table-row-height: var(--v-vcs-item-height);
453
+ --v-table-header-height: calc(var(--v-vcs-font-size) * 2 + 6px);
454
+ --v-table-row-height: calc(var(--v-vcs-font-size) * 2 + 6px);
445
455
  & :deep(.v-selection-control--density-default) {
446
- --v-selection-control-size: var(--v-vcs-item-height);
456
+ --v-selection-control-size: calc(var(--v-vcs-font-size) * 2 + 6px);
447
457
  }
448
458
  }
449
459
 
@@ -54,6 +54,7 @@ declare const _default: import("vue").DefineComponent<{
54
54
  handleSearch: () => void;
55
55
  translatedHeaders: ComputedRef<Object[]>;
56
56
  showFooter: import("vue").ComputedRef<boolean>;
57
+ forwardSlots: import("vue").ComputedRef<string[]>;
57
58
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
58
59
  headers: {
59
60
  type: ArrayConstructor;