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

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 (178) hide show
  1. package/build/build.js +40 -60
  2. package/build/buildHelpers.js +2 -8
  3. package/build/info/conf.json +1 -1
  4. package/config/projects.config.json +2 -1
  5. package/config/splashscreen.config.json +45 -0
  6. package/dist/.htaccess +7 -0
  7. package/dist/assets/@mdi/font/README.md +25 -0
  8. package/dist/assets/@mdi/font/css/materialdesignicons.min-7a4f6be0.css +3 -0
  9. package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  10. package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  11. package/dist/assets/cesium.js +1 -1
  12. package/dist/assets/{core.cbf44a.js → core-72f21835.js} +673 -641
  13. package/dist/assets/core.js +1 -1
  14. package/dist/assets/{ol.86e93c.js → ol-2d33bc8b.js} +42505 -44282
  15. package/dist/assets/ol.js +1 -1
  16. package/dist/assets/ui-2ab43a16.css +1 -0
  17. package/dist/assets/{ui.7c276c.js → ui-2ab43a16.js} +12026 -12100
  18. package/dist/assets/ui.js +1 -1
  19. package/dist/assets/vue.js +1 -1
  20. package/dist/assets/{vuetify.4d18fe.css → vuetify-760ced3b.css} +1 -1
  21. package/dist/assets/{vuetify.4d18fe.js → vuetify-760ced3b.js} +5720 -5662
  22. package/dist/assets/vuetify.js +1 -1
  23. package/dist/index.html +11 -10
  24. package/index.d.ts +7 -5
  25. package/index.html +5 -5
  26. package/index.js +3 -3
  27. package/lib/olLib.js +84 -23
  28. package/package.json +5 -5
  29. package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
  30. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +70 -30
  31. package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
  32. package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
  33. package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +21 -8
  34. package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
  35. package/public/assets/@mdi/font/README.md +25 -0
  36. package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
  37. package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
  38. package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
  39. package/src/actions/actionHelper.js +20 -20
  40. package/src/actions/flightActions.js +5 -5
  41. package/src/actions/listActions.d.ts +0 -7
  42. package/src/actions/listActions.js +4 -20
  43. package/src/actions/stateRefAction.js +2 -2
  44. package/src/application/VcsApp.vue +52 -27
  45. package/src/application/VcsApp.vue.d.ts +1 -0
  46. package/src/application/VcsAttributions.vue +2 -13
  47. package/src/application/VcsAttributionsFooter.vue +10 -11
  48. package/src/application/VcsPositionDisplay.vue +8 -23
  49. package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
  50. package/src/application/VcsSettings.vue +10 -17
  51. package/src/application/VcsSplashScreen.vue +25 -42
  52. package/src/application/VcsSplashScreen.vue.d.ts +0 -2
  53. package/src/application/VcsTextPage.vue +12 -43
  54. package/src/application/VcsTextPage.vue.d.ts +4 -8
  55. package/src/application/VcsTextPageFooter.vue +22 -40
  56. package/src/components/extent/VcsExtentEditor.vue +1 -1
  57. package/src/components/flight/VcsFlightAnchorsComponent.vue +63 -36
  58. package/src/components/flight/VcsFlightComponent.vue +16 -21
  59. package/src/components/flight/VcsFlightPlayer.vue +27 -5
  60. package/src/components/form-inputs-controls/VcsCheckbox.vue +9 -5
  61. package/src/components/form-inputs-controls/VcsCoordinate.vue +13 -1
  62. package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
  63. package/src/components/form-inputs-controls/VcsDatePicker.vue +34 -60
  64. package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +1 -63
  65. package/src/components/form-inputs-controls/VcsFileInput.vue +17 -18
  66. package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
  67. package/src/components/form-inputs-controls/VcsLabel.vue +1 -1
  68. package/src/components/form-inputs-controls/VcsRadio.vue +17 -3
  69. package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
  70. package/src/components/form-inputs-controls/VcsSelect.vue +39 -27
  71. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +5 -2
  72. package/src/components/form-inputs-controls/VcsSlider.vue +14 -1
  73. package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +5 -2
  74. package/src/components/form-inputs-controls/VcsTextArea.vue +26 -22
  75. package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
  76. package/src/components/form-inputs-controls/VcsTextField.vue +6 -4
  77. package/src/components/form-inputs-controls/VcsWizardStep.vue +1 -1
  78. package/src/components/form-inputs-controls/vcsTextField.scss +8 -8
  79. package/src/components/form-output/VcsFormattedNumber.vue +15 -1
  80. package/src/components/form-output/VcsFormattedNumber.vue.d.ts +9 -0
  81. package/src/components/lists/VcsActionList.vue +7 -7
  82. package/src/components/lists/VcsList.vue +10 -17
  83. package/src/components/lists/VcsList.vue.d.ts +3 -7
  84. package/src/components/lists/VcsListItem.vue +51 -21
  85. package/src/components/lists/VcsListItem.vue.d.ts +11 -5
  86. package/src/components/section/VcsExpansionPanel.vue +101 -0
  87. package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
  88. package/src/components/style/MenuWrapper.vue +24 -26
  89. package/src/components/style/MenuWrapper.vue.d.ts +4 -4
  90. package/src/components/style/VcsFillMenu.vue +9 -16
  91. package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
  92. package/src/components/style/VcsFillSelector.vue +13 -16
  93. package/src/components/style/VcsImageMenu.vue +8 -25
  94. package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
  95. package/src/components/style/VcsImageSelector.vue +102 -167
  96. package/src/components/style/VcsImageSelector.vue.d.ts +15 -15
  97. package/src/components/style/VcsStrokeMenu.vue +8 -15
  98. package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
  99. package/src/components/style/VcsStrokeSelector.vue +11 -18
  100. package/src/components/style/VcsTextMenu.vue +9 -12
  101. package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
  102. package/src/components/style/VcsTextSelector.vue +79 -95
  103. package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
  104. package/src/components/style/VcsVectorStyleComponent.vue +7 -18
  105. package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
  106. package/src/components/style/composables.d.ts +0 -14
  107. package/src/components/style/composables.js +0 -49
  108. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +39 -6
  109. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +1 -1
  110. package/src/components/viewpoint/VcsViewpointComponent.vue +21 -8
  111. package/src/components/viewpoint/VcsViewpointEditor.vue +1 -0
  112. package/src/contentTree/contentTreeItem.d.ts +2 -2
  113. package/src/contentTree/contentTreeItem.js +7 -7
  114. package/src/featureInfo/featureInfo.js +8 -10
  115. package/src/init.d.ts +5 -38
  116. package/src/init.js +19 -18
  117. package/src/legend/StyleLegendItem.vue +4 -9
  118. package/src/legend/VcsLegend.vue +28 -54
  119. package/src/manager/buttonManager.js +4 -4
  120. package/src/manager/collectionManager/CollectionComponent.vue +17 -42
  121. package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
  122. package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
  123. package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
  124. package/src/manager/collectionManager/CollectionComponentList.vue +10 -8
  125. package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +4 -2
  126. package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
  127. package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
  128. package/src/manager/collectionManager/CollectionManager.vue +1 -1
  129. package/src/manager/collectionManager/collectionComponentClass.js +6 -9
  130. package/src/manager/collectionManager/collectionManager.js +10 -10
  131. package/src/manager/collectionManager/editorCollectionComponentClass.js +4 -4
  132. package/src/manager/contextMenu/contextMenuManager.js +2 -2
  133. package/src/manager/navbarManager.js +2 -2
  134. package/src/manager/panel/panelManager.js +3 -3
  135. package/src/manager/toolbox/toolboxManager.js +10 -10
  136. package/src/manager/window/windowManager.d.ts +2 -2
  137. package/src/manager/window/windowManager.js +4 -4
  138. package/src/search/search.js +2 -2
  139. package/src/siteConfig.js +1 -1
  140. package/src/state.js +4 -4
  141. package/src/vcsUiApp.d.ts +14 -10
  142. package/src/vcsUiApp.js +1 -1
  143. package/src/vuePlugins/vuetify.d.ts +2 -0
  144. package/src/vuePlugins/vuetify.js +11 -0
  145. package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  146. package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
  147. package/dist/assets/index-8eGauqjA.js +0 -1
  148. package/dist/assets/ui.7c276c.css +0 -1
  149. package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
  150. package/src/application/VcsCustomScreen.vue +0 -45
  151. package/src/application/VcsCustomScreen.vue.d.ts +0 -15
  152. /package/dist/assets/{cesium.0b750d.js → cesium-cb4dbfba.js} +0 -0
  153. /package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
  154. /package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
  155. /package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
  156. /package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
  157. /package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
  158. /package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
  159. /package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
  160. /package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
  161. /package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
  162. /package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
  163. /package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
  164. /package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
  165. /package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
  166. /package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
  167. /package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
  168. /package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
  169. /package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
  170. /package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
  171. /package/dist/assets/{vue.a3cd64.js → vue-03b265aa.js} +0 -0
  172. /package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
  173. /package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
  174. /package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
  175. /package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
  176. /package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
  177. /package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +0 -0
  178. /package/src/components/{form-inputs-controls → section}/VcsFormSection.vue.d.ts +0 -0
@@ -7,7 +7,7 @@
7
7
  :menu-props="{ origin: 'overlap' }"
8
8
  :item-title="(item) => $st(getTitle(item))"
9
9
  color="primary"
10
- class="primary--placeholder"
10
+ class="primary--placeholder vcs-select"
11
11
  :class="{
12
12
  'py-1': !paddingProvided,
13
13
  }"
@@ -23,8 +23,8 @@
23
23
  </span>
24
24
  </template>
25
25
 
26
- <template #append-inner>
27
- <slot name="append-inner"></slot>
26
+ <template #append-inner="scope">
27
+ <slot name="append-inner" v-bind="scope ?? {}"></slot>
28
28
  <v-tooltip
29
29
  :activator="selectFieldRef"
30
30
  v-if="tooltip && !errorTooltipRef"
@@ -32,37 +32,38 @@
32
32
  :location="tooltipPosition"
33
33
  />
34
34
  </template>
35
- <template
36
- v-for="slot of Object.keys($slots).filter(
37
- (name) => name !== 'append-inner',
38
- )"
39
- #[slot]="scope"
40
- >
41
- <slot :name="slot" v-bind="scope" />
35
+ <template v-for="slot of forwardSlots" #[slot]="scope">
36
+ <slot :name="slot" v-bind="scope ?? {}" />
42
37
  </template>
43
- <template #message="{ message }">
38
+ <template #message="scope">
44
39
  <v-tooltip
45
40
  :activator="selectFieldRef"
46
41
  ref="errorTooltipRef"
47
- v-if="message"
48
- :text="$st(message)"
42
+ v-if="scope?.message"
43
+ :text="$st(scope?.message)"
49
44
  content-class="bg-error"
50
45
  :location="tooltipPosition"
51
46
  />
47
+ <slot name="message" v-bind="scope ?? {}"></slot>
52
48
  </template>
53
- <template #item="{ props }">
54
- <v-list-item density="compact" v-bind="props" role="option">
55
- <template #prepend="scope" v-if="multiple">
56
- <VcsCheckbox v-model="scope.isSelected" class="py-0"></VcsCheckbox>
57
- </template>
58
- </v-list-item>
49
+ <template #item="itemScope">
50
+ <slot name="item" v-bind="itemScope ?? {}">
51
+ <v-list-item density="compact" v-bind="itemScope.props" role="option">
52
+ <template #prepend="prependScope" v-if="multiple">
53
+ <VcsCheckbox
54
+ v-model="prependScope.isSelected"
55
+ class="py-0"
56
+ ></VcsCheckbox>
57
+ </template>
58
+ </v-list-item>
59
+ </slot>
59
60
  </template>
60
61
  </v-select>
61
62
  </template>
62
63
  <style lang="scss" scoped>
63
64
  :deep(.v-field) {
64
- --v-field-padding-start: 8px;
65
- --v-field-padding-end: 8px;
65
+ --v-field-padding-start: 4px;
66
+ --v-field-padding-end: 4px;
66
67
  }
67
68
  :deep(.v-field__input) {
68
69
  flex-wrap: unset;
@@ -95,12 +96,12 @@
95
96
  border-radius: 0;
96
97
  }
97
98
  .v-field__outline {
98
- padding-left: 8px;
99
- padding-right: 8px;
99
+ padding-left: 4px;
100
+ padding-right: 4px;
100
101
  }
101
102
  .v-field__loader {
102
- padding-left: 8px;
103
- padding-right: 8px;
103
+ padding-left: 3px;
104
+ padding-right: 3px;
104
105
  }
105
106
  .v-field__outline *::before {
106
107
  border-width: 0;
@@ -111,6 +112,14 @@
111
112
  margin-left: -4px;
112
113
  }
113
114
  }
115
+ :deep(.v-field--appended) {
116
+ padding-inline-end: 4px;
117
+ .v-field__append-inner {
118
+ i {
119
+ margin-left: 0;
120
+ }
121
+ }
122
+ }
114
123
  .primary--placeholder {
115
124
  :deep(input::placeholder) {
116
125
  color: rgb(var(--v-theme-primary));
@@ -135,7 +144,7 @@
135
144
  <script>
136
145
  import { VSelect, VTooltip, VListItem } from 'vuetify/components';
137
146
  import { computed, ref } from 'vue';
138
- import { usePadding } from '../composables.js';
147
+ import { useForwardSlots, usePadding } from '../composables.js';
139
148
  import VcsCheckbox from './VcsCheckbox.vue';
140
149
  import { useProxiedComplexModel } from '../modelHelper.js';
141
150
 
@@ -183,7 +192,8 @@
183
192
  default: undefined,
184
193
  },
185
194
  },
186
- setup(props, { attrs, emit }) {
195
+ emits: ['update:modelValue'],
196
+ setup(props, { attrs, slots, emit }) {
187
197
  const selectFieldRef = ref();
188
198
  const errorTooltipRef = ref();
189
199
  const localModelValue = useProxiedComplexModel(props, 'modelValue', emit);
@@ -206,8 +216,10 @@
206
216
  return props.multiple;
207
217
  });
208
218
  const paddingProvided = usePadding(attrs);
219
+ const forwardSlots = useForwardSlots(slots, ['append-inner', 'message']);
209
220
 
210
221
  return {
222
+ forwardSlots,
211
223
  localModelValue,
212
224
  additionalItems,
213
225
  isMultiple,
@@ -20,6 +20,7 @@ declare const _default: import("vue").DefineComponent<{
20
20
  default: undefined;
21
21
  };
22
22
  }, {
23
+ forwardSlots: import("vue").ComputedRef<string[]>;
23
24
  localModelValue: import("vue").Ref<any>;
24
25
  additionalItems: import("vue").ComputedRef<number>;
25
26
  isMultiple: import("vue").ComputedRef<boolean>;
@@ -27,7 +28,7 @@ declare const _default: import("vue").DefineComponent<{
27
28
  selectFieldRef: import("vue").Ref<any>;
28
29
  errorTooltipRef: import("vue").Ref<any>;
29
30
  getTitle: (item: any) => any;
30
- }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
31
+ }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
31
32
  multiple: {
32
33
  type: BooleanConstructor;
33
34
  default: boolean;
@@ -48,7 +49,9 @@ declare const _default: import("vue").DefineComponent<{
48
49
  type: FunctionConstructor;
49
50
  default: undefined;
50
51
  };
51
- }>>, {
52
+ }>> & {
53
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
54
+ }, {
52
55
  modelValue: string | number | boolean | unknown[];
53
56
  multiple: boolean;
54
57
  tooltip: string;
@@ -2,8 +2,9 @@
2
2
  <v-slider
3
3
  :class="{
4
4
  'py-1': !paddingProvided,
5
+ 'remove-append-margin': !hasAppendSlot,
5
6
  }"
6
- class="vcs-slider"
7
+ class="vcs-slider mx-1"
7
8
  hide-details
8
9
  ref="sliderRef"
9
10
  :track-color="'base-darken-1'"
@@ -33,6 +34,9 @@
33
34
  .v-input--horizontal :deep(.v-input__control) {
34
35
  min-height: calc(var(--v-vcs-item-height) - 8px);
35
36
  }
37
+ .v-input--horizontal.v-slider--has-labels {
38
+ margin-bottom: var(--v-vcs-font-size);
39
+ }
36
40
  .v-slider.v-input--horizontal {
37
41
  :deep(.v-slider-track__fill) {
38
42
  height: 2px;
@@ -63,6 +67,11 @@
63
67
  :deep(.v-slider-track__tick) {
64
68
  background-color: rgb(var(--v-theme-base-darken-1));
65
69
  }
70
+ .remove-append-margin {
71
+ :deep(.v-input__append) {
72
+ margin-inline-start: 0px;
73
+ }
74
+ }
66
75
  </style>
67
76
  <script>
68
77
  import { computed, ref } from 'vue';
@@ -91,6 +100,7 @@
91
100
  default: 'right',
92
101
  },
93
102
  },
103
+ emits: ['update:modelValue'],
94
104
  setup(props, { attrs, slots }) {
95
105
  const itemHeight = useItemHeight();
96
106
  const thumbSize = computed(() => {
@@ -106,6 +116,9 @@
106
116
  const forwardSlots = useForwardSlots(slots, ['append']);
107
117
  const sliderRef = ref();
108
118
  return {
119
+ hasAppendSlot: computed(() => {
120
+ return !!slots.append;
121
+ }),
109
122
  forwardSlots,
110
123
  sliderRef,
111
124
  thumbSize,
@@ -8,13 +8,14 @@ declare const _default: import("vue").DefineComponent<{
8
8
  default: string;
9
9
  };
10
10
  }, {
11
+ hasAppendSlot: import("vue").ComputedRef<boolean>;
11
12
  forwardSlots: import("vue").ComputedRef<string[]>;
12
13
  sliderRef: import("vue").Ref<any>;
13
14
  thumbSize: import("vue").ComputedRef<number>;
14
15
  tickSize: import("vue").ComputedRef<number>;
15
16
  trackSize: import("vue").ComputedRef<number>;
16
17
  paddingProvided: import("vue").ComputedRef<boolean>;
17
- }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
18
+ }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
18
19
  tooltip: {
19
20
  type: StringConstructor;
20
21
  default: undefined;
@@ -23,7 +24,9 @@ declare const _default: import("vue").DefineComponent<{
23
24
  type: StringConstructor;
24
25
  default: string;
25
26
  };
26
- }>>, {
27
+ }>> & {
28
+ "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
29
+ }, {
27
30
  tooltip: string;
28
31
  tooltipPosition: string;
29
32
  }, {}>;
@@ -4,27 +4,29 @@
4
4
  variant="outlined"
5
5
  clear-icon="$close"
6
6
  :rows="$attrs.rows"
7
- class="primary--placeholder"
7
+ color="primary"
8
+ class="primary--placeholder vcs-text-area"
8
9
  :class="{
9
10
  'py-1': !paddingProvided,
10
11
  }"
11
- v-bind="{ ...$attrs }"
12
+ v-bind="$attrs"
12
13
  >
13
- <template v-for="slot of Object.keys($slots)" #[slot]="scope">
14
- <slot :name="slot" v-bind="scope" />
14
+ <template v-for="slot of forwardSlots" #[slot]="scope">
15
+ <slot :name="slot" v-bind="scope ?? {}" />
15
16
  </template>
16
- <template #message="{ message }">
17
+ <template #message="scope">
17
18
  <v-tooltip
18
19
  ref="errorTooltipRef"
19
20
  :activator="textAreaRef"
20
- v-if="message"
21
- :text="$st(message)"
21
+ v-if="scope?.message"
22
+ :text="$st(scope?.message)"
22
23
  content-class="bg-error"
23
24
  :location="tooltipPosition"
24
25
  />
26
+ <slot name="message" v-bind="scope ?? {}"></slot>
25
27
  </template>
26
- <template #append-inner>
27
- <slot name="append-inner"></slot>
28
+ <template #append-inner="scope">
29
+ <slot name="append-inner" v-bind="scope ?? {}"></slot>
28
30
  <v-tooltip
29
31
  v-if="tooltip && !errorTooltipRef"
30
32
  :activator="textAreaRef"
@@ -44,12 +46,12 @@
44
46
  }
45
47
 
46
48
  :deep(.v-field) {
47
- --v-field-padding-start: 8px;
48
- --v-field-padding-end: 8px;
49
- padding-left: 8px;
50
- padding-right: 8px;
49
+ --v-field-padding-start: 4px;
50
+ --v-field-padding-end: 4px;
51
+ padding-left: 4px;
52
+ padding-right: 4px;
51
53
  .v-field__clearable {
52
- margin: 4px -4px 0px 0px;
54
+ margin: 2px -2px 0px 0px;
53
55
  }
54
56
  }
55
57
 
@@ -86,10 +88,13 @@
86
88
  .v-field__outline__end {
87
89
  border-width: 0 0 1px 0 !important;
88
90
  border-radius: 0;
89
- margin-right: 8px;
90
- margin-left: -4px;
91
+ margin-right: 4px;
92
+ margin-left: -8px;
93
+ }
94
+ .v-field__loader {
95
+ padding-left: 3px;
96
+ padding-right: 3px;
91
97
  }
92
-
93
98
  .v-field__outline *::before {
94
99
  border-width: 0;
95
100
  border-radius: 0;
@@ -131,9 +136,6 @@
131
136
  }
132
137
 
133
138
  // Progress Bar
134
- :deep(.v-progress-linear) {
135
- color: rgb(var(--v-theme-primary));
136
- }
137
139
  :deep(.v-field__loader) {
138
140
  top: calc(100% - 2px);
139
141
  }
@@ -142,7 +144,7 @@
142
144
  <script>
143
145
  import { ref } from 'vue';
144
146
  import { VTextarea, VTooltip } from 'vuetify/components';
145
- import { usePadding } from '../composables.js';
147
+ import { useForwardSlots, usePadding } from '../composables.js';
146
148
 
147
149
  /**
148
150
  * @description extends API of {@link https://vuetifyjs.com/en/api/v-textarea/|vuetify v-textarea}.
@@ -169,13 +171,15 @@
169
171
  default: 'right',
170
172
  },
171
173
  },
172
- setup(_p, { attrs }) {
174
+ setup(_p, { attrs, slots }) {
173
175
  const textAreaRef = ref();
174
176
  const errorTooltipRef = ref();
175
177
 
176
178
  const paddingProvided = usePadding(attrs);
179
+ const forwardSlots = useForwardSlots(slots, ['append-inner', 'message']);
177
180
 
178
181
  return {
182
+ forwardSlots,
179
183
  textAreaRef,
180
184
  errorTooltipRef,
181
185
  paddingProvided,
@@ -8,6 +8,7 @@ declare const _default: import("vue").DefineComponent<{
8
8
  default: string;
9
9
  };
10
10
  }, {
11
+ forwardSlots: import("vue").ComputedRef<string[]>;
11
12
  textAreaRef: import("vue").Ref<any>;
12
13
  errorTooltipRef: import("vue").Ref<any>;
13
14
  paddingProvided: import("vue").ComputedRef<boolean>;
@@ -6,6 +6,7 @@
6
6
  :hide-details="false"
7
7
  :rules="rules"
8
8
  :type="type"
9
+ color="primary"
9
10
  class="vcs-text-field primary--placeholder"
10
11
  :class="{
11
12
  'py-1': !paddingProvided,
@@ -20,15 +21,16 @@
20
21
  <template v-for="slot of forwardSlots" #[slot]="scope">
21
22
  <slot :name="slot" v-bind="scope ?? {}" />
22
23
  </template>
23
- <template #message="{ message }">
24
+ <template #message="scope">
24
25
  <v-tooltip
25
26
  ref="errorTooltipRef"
26
27
  :activator="textFieldRef"
27
- v-if="message"
28
- :text="$st(message)"
28
+ v-if="scope?.message"
29
+ :text="$st(scope?.message)"
29
30
  content-class="bg-error"
30
31
  :location="tooltipPosition"
31
32
  />
33
+ <slot name="message" v-bind="scope ?? {}"></slot>
32
34
  </template>
33
35
  <template #default="scope">
34
36
  <v-tooltip
@@ -151,7 +153,7 @@
151
153
  });
152
154
 
153
155
  const paddingProvided = usePadding(attrs);
154
- const forwardSlots = useForwardSlots(slots, ['default']);
156
+ const forwardSlots = useForwardSlots(slots, ['default', 'message']);
155
157
 
156
158
  return {
157
159
  forwardSlots,
@@ -32,7 +32,7 @@
32
32
  </slot>
33
33
  </template>
34
34
  <template #default>
35
- <div class="pr-4">
35
+ <div>
36
36
  <VcsHelp :text="helpText" :show="showHelp">
37
37
  <slot name="help" />
38
38
  </VcsHelp>
@@ -1,6 +1,6 @@
1
1
  :deep(.v-field) {
2
- --v-field-padding-start: 8px;
3
- --v-field-padding-end: 8px;
2
+ --v-field-padding-start: 4px;
3
+ --v-field-padding-end: 4px;
4
4
  }
5
5
  .v-input--density-compact :deep(.v-field) {
6
6
  --v-input-control-height: calc(var(--v-vcs-item-height) - 8px);
@@ -29,12 +29,12 @@
29
29
  border-radius: 0;
30
30
  }
31
31
  .v-field__outline {
32
- padding-left: 8px;
33
- padding-right: 8px;
32
+ padding-left: 4px;
33
+ padding-right: 4px;
34
34
  }
35
35
  .v-field__loader {
36
- padding-left: 8px;
37
- padding-right: 8px;
36
+ padding-left: 3px;
37
+ padding-right: 3px;
38
38
  }
39
39
  .v-field__outline *::before {
40
40
  border-width: 0;
@@ -48,7 +48,7 @@
48
48
 
49
49
  // move unit to the right
50
50
  :deep(.v-field--appended) {
51
- padding-inline-end: 8px;
51
+ padding-inline-end: 4px;
52
52
  }
53
53
 
54
54
  // remove margin from prepended Icon
@@ -72,7 +72,6 @@
72
72
  display: none;
73
73
  }
74
74
 
75
- // Progress Bar
76
75
  :deep(.v-field__loader) {
77
76
  top: calc(100% - 2px);
78
77
  }
@@ -80,4 +79,5 @@
80
79
  // unit margin
81
80
  :deep(.v-field__clearable) {
82
81
  margin-left: 0;
82
+ margin-right: 0;
83
83
  }
@@ -1,5 +1,11 @@
1
1
  <template>
2
- <span class="vcs-formatted-number" :class="{ 'py-1': !paddingProvided }">
2
+ <span
3
+ class="vcs-formatted-number"
4
+ :class="{
5
+ 'vcs-disabled': disabled,
6
+ 'pa-1': !paddingProvided,
7
+ }"
8
+ >
3
9
  <slot name="prepend">
4
10
  <span v-if="prefix" class="pr-1">{{ prefix }}</span>
5
11
  </slot>
@@ -27,6 +33,9 @@
27
33
  align-items: center;
28
34
  height: calc(var(--v-vcs-item-height) - 8px);
29
35
  }
36
+ .vcs-disabled {
37
+ opacity: var(--v-disabled-opacity);
38
+ }
30
39
  </style>
31
40
  <script>
32
41
  import { computed } from 'vue';
@@ -70,6 +79,7 @@
70
79
 
71
80
  /**
72
81
  * @description Formatted number display, optionally with unit
82
+ * @vue-prop {boolean} [disabled=false] - disabled by adding transparency to the label.
73
83
  * @vue-prop {string|SpecialUnits} [unit=undefined]
74
84
  * @vue-prop {number} [fractionDigits=undefined]
75
85
  * @vue-prop {number} modelValue
@@ -83,6 +93,10 @@
83
93
  VTooltip,
84
94
  },
85
95
  props: {
96
+ disabled: {
97
+ type: Boolean,
98
+ default: false,
99
+ },
86
100
  unit: {
87
101
  type: [String || SpecialUnits],
88
102
  default: undefined,
@@ -16,6 +16,10 @@ export namespace SpecialUnits {
16
16
  let DEG: string;
17
17
  }
18
18
  declare const _default: import("vue").DefineComponent<{
19
+ disabled: {
20
+ type: BooleanConstructor;
21
+ default: boolean;
22
+ };
19
23
  unit: {
20
24
  type: StringConstructor[];
21
25
  default: undefined;
@@ -49,6 +53,10 @@ declare const _default: import("vue").DefineComponent<{
49
53
  formatted: import("vue").ComputedRef<string | number>;
50
54
  paddingProvided: import("vue").ComputedRef<boolean>;
51
55
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
56
+ disabled: {
57
+ type: BooleanConstructor;
58
+ default: boolean;
59
+ };
52
60
  unit: {
53
61
  type: StringConstructor[];
54
62
  default: undefined;
@@ -74,6 +82,7 @@ declare const _default: import("vue").DefineComponent<{
74
82
  default: string;
75
83
  };
76
84
  }>>, {
85
+ disabled: boolean;
77
86
  modelValue: number;
78
87
  prefix: string | number;
79
88
  tooltip: string;
@@ -34,7 +34,7 @@
34
34
  </style>
35
35
  <script>
36
36
  import { computed } from 'vue';
37
- import { is } from '@vcsuite/check';
37
+ import { is, optional } from '@vcsuite/check';
38
38
  import {
39
39
  VIcon,
40
40
  VList,
@@ -50,13 +50,13 @@
50
50
  */
51
51
  export const ActionPattern = {
52
52
  name: String,
53
- title: [undefined, String],
54
- icon: [undefined, String],
53
+ title: optional(String),
54
+ icon: optional(String),
55
55
  callback: Function,
56
- active: [undefined, Boolean],
57
- background: [undefined, Boolean],
58
- hasUpdate: [undefined, Boolean],
59
- disabled: [undefined, Boolean],
56
+ active: optional(Boolean),
57
+ background: optional(Boolean),
58
+ hasUpdate: optional(Boolean),
59
+ disabled: optional(Boolean),
60
60
  };
61
61
 
62
62
  /**
@@ -56,16 +56,15 @@
56
56
  'cursor-pointer': selectable && !isDraggable,
57
57
  }"
58
58
  @click="select(item, $event)"
59
- @item-renamed="$emit('item-renamed', $event)"
60
59
  >
61
- <template #prepend-title>
62
- <slot name="item.prepend-title" :item="item" :index="index" />
60
+ <template #title="titleScope">
61
+ <slot name="item.title" v-bind="{ ...titleScope, index }"></slot>
63
62
  </template>
64
- <template #title>
65
- <slot name="item.title" :item="item" :index="index"></slot>
63
+ <template #subtitle="subtitleScope">
64
+ <slot name="item.subtitle" v-bind="{ ...subtitleScope, index }" />
66
65
  </template>
67
- <template #append-title>
68
- <slot name="item.append-title" :item="item" :index="index" />
66
+ <template #default="scope">
67
+ <slot name="item.default" v-bind="{ ...scope, index }" />
69
68
  </template>
70
69
  </VcsListItem>
71
70
  <slot name="item.intermediate" :item="item" :index="index" />
@@ -144,7 +143,7 @@
144
143
  * @property {string} name
145
144
  * @property {boolean} [visible] - Whether to display this item or not.
146
145
  * @property {boolean} [disabled] - Whether this item should be displayed as disabled.
147
- * @property {boolean} [rename] - Whether the title of can be edited. will add a rename action to the end of the action list
146
+ * @property {boolean|import("../../actions/actionHelper.js").ActionOptions} [renamable] - Whether the title of can be edited. will add a rename action to the end of the action list. This action will call titleChanged with the new title, you must provide the callback yourself, otherwise this does not work as expeted.
148
147
  * @property {string} title - The title to be displayed
149
148
  * @property {string} [tooltip]
150
149
  * @property {string|HTMLCanvasElement|HTMLImageElement|undefined} [icon] - An optional icon to display with this item. Can be a URL or HTMLElement.
@@ -152,7 +151,7 @@
152
151
  * @property {Array<import("../../actions/actionHelper.js").VcsAction>} [actions]
153
152
  * @property {Array<function(PointerEvent):void>|undefined} [clickedCallbacks] - An array of callbacks called on item click. called before selection update
154
153
  * @property {function(boolean):void} [selectionChanged] - A callback called if the selection changes with the current selection status. called before value update
155
- * @property {function(string):void} [titleChanged] - A callback called if the title changes via rename action. called before value update
154
+ * @property {function(string):void} [titleChanged] - A callback called if the title changes via rename action. only usable with renamble true.
156
155
  */
157
156
 
158
157
  /**
@@ -161,12 +160,6 @@
161
160
  * @property {number} targetIndex
162
161
  */
163
162
 
164
- /**
165
- * @typedef {Object} ItemRenamedEvent
166
- * @property {VcsListItem} item
167
- * @property {string} newTitle
168
- */
169
-
170
163
  /**
171
164
  * @description
172
165
  * The VCS list is intended to render items. Items can be selectable (by default, more than one) or only a single item can
@@ -193,7 +186,6 @@
193
186
  * @vue-prop {string} [tooltip] - tooltip to render on the list title
194
187
  * @vue-prop {Array<import("../../actions/actionHelper.js").VcsAction>} [actions] - actions to render in the list title
195
188
  * @vue-event {ItemMovedEvent} item-moved - event triggered after item was dragged and is dropped
196
- * @vue-event {ItemRenamedEvent} item-renamed - event triggered after item was renamed
197
189
  * @vue-data {slot} [#item.prepend-title] - A slot to adapt the list item titel, adding content before the title. Binds item and index.
198
190
  * @vue-data {slot} [#item.title] - A slot to adapt the list item titel. Default content is a span or VcsTextField for active rename action. Binds item and index.
199
191
  * @vue-data {slot} [#item.append-title] - A slot to adapt the list item titel, adding content after the title. Binds item and index.
@@ -577,7 +569,8 @@
577
569
  .v-list-item__selected {
578
570
  border-left: solid 4px;
579
571
  border-left-color: rgb(var(--v-theme-primary));
580
- padding-left: 13px !important;
572
+ color: rgb(var(--v-theme-primary));
573
+ padding-left: 12px !important;
581
574
  }
582
575
  .v-list-item--active {
583
576
  .v-list-item__append {
@@ -184,9 +184,9 @@ export type VcsListItem = {
184
184
  */
185
185
  disabled?: boolean | undefined;
186
186
  /**
187
- * - Whether the title of can be edited. will add a rename action to the end of the action list
187
+ * - Whether the title of can be edited. will add a rename action to the end of the action list. This action will call titleChanged with the new title, you must provide the callback yourself, otherwise this does not work as expeted.
188
188
  */
189
- rename?: boolean | undefined;
189
+ renamable?: boolean | import("../../actions/actionHelper.js", { with: { "resolution-mode": "import" } }).ActionOptions | undefined;
190
190
  /**
191
191
  * - The title to be displayed
192
192
  */
@@ -210,7 +210,7 @@ export type VcsListItem = {
210
210
  */
211
211
  selectionChanged?: ((arg0: boolean) => void) | undefined;
212
212
  /**
213
- * - A callback called if the title changes via rename action. called before value update
213
+ * - A callback called if the title changes via rename action. only usable with renamble true.
214
214
  */
215
215
  titleChanged?: ((arg0: string) => void) | undefined;
216
216
  };
@@ -218,7 +218,3 @@ export type ItemMovedEvent = {
218
218
  item: VcsListItem;
219
219
  targetIndex: number;
220
220
  };
221
- export type ItemRenamedEvent = {
222
- item: VcsListItem;
223
- newTitle: string;
224
- };