@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
@@ -18,23 +18,23 @@
18
18
  <v-container class="py-0 px-1">
19
19
  <v-row no-gutters v-if="!hideName">
20
20
  <v-col cols="6">
21
- <VcsLabel html-for="name" required>
21
+ <VcsLabel :html-for="`${cid}-name`" required>
22
22
  {{ $t('components.flight.name') }}
23
23
  </VcsLabel>
24
24
  </v-col>
25
25
  <v-col>
26
- <VcsTextField id="name" clearable v-model="name" />
26
+ <VcsTextField :id="`${cid}-name`" clearable v-model="name" />
27
27
  </v-col>
28
28
  </v-row>
29
29
  <v-row no-gutters v-if="!hideTitle">
30
30
  <v-col cols="6">
31
- <VcsLabel html-for="title">
31
+ <VcsLabel :html-for="`${cid}-title`">
32
32
  {{ $t('components.flight.title') }}
33
33
  </VcsLabel>
34
34
  </v-col>
35
35
  <v-col>
36
36
  <VcsTextField
37
- id="title"
37
+ :id="`${cid}-title`"
38
38
  clearable
39
39
  :placeholder="$t('components.flight.titlePlaceholder')"
40
40
  v-model="title"
@@ -43,13 +43,13 @@
43
43
  </v-row>
44
44
  <v-row no-gutters v-if="!hideInterpolation">
45
45
  <v-col cols="6">
46
- <VcsLabel html-for="interpolation">
46
+ <VcsLabel :html-for="`${cid}-interpolation`">
47
47
  {{ $t('components.flight.interpolation') }}
48
48
  </VcsLabel>
49
49
  </v-col>
50
50
  <v-col>
51
51
  <VcsSelect
52
- id="title"
52
+ :id="`${cid}-interpolation`"
53
53
  :items="[
54
54
  { value: 'spline', title: 'components.flight.spline' },
55
55
  { value: 'linear', title: 'components.flight.linear' },
@@ -60,13 +60,13 @@
60
60
  </v-row>
61
61
  <v-row no-gutters v-if="!hideDuration">
62
62
  <v-col cols="6">
63
- <VcsLabel html-for="duration">
63
+ <VcsLabel :html-for="`${cid}-duration`">
64
64
  {{ $t('components.flight.duration') }}
65
65
  </VcsLabel>
66
66
  </v-col>
67
67
  <v-col>
68
68
  <VcsTextField
69
- id="duration"
69
+ :id="`${cid}-duration`"
70
70
  v-model="duration"
71
71
  :hide-spin-buttons="true"
72
72
  type="number"
@@ -79,11 +79,7 @@
79
79
  </v-row>
80
80
  <v-row no-gutters v-if="!hideLoop">
81
81
  <v-col cols="6">
82
- <VcsCheckbox
83
- id="animate"
84
- label="components.flight.loop"
85
- v-model="loop"
86
- />
82
+ <VcsCheckbox label="components.flight.loop" v-model="loop" />
87
83
  </v-col>
88
84
  </v-row>
89
85
  </v-container>
@@ -116,6 +112,7 @@
116
112
  getProvidedFlightInstance,
117
113
  setupFlightAnchorEditingListener,
118
114
  } from './composables.js';
115
+ import { useComponentId } from '../composables.js';
119
116
 
120
117
  /**
121
118
  * @param {import("@vcmap/core").FlightInstance} instance
@@ -228,6 +225,8 @@
228
225
  editingListener();
229
226
  });
230
227
 
228
+ const cid = useComponentId();
229
+
231
230
  return {
232
231
  name: flightInstance.name,
233
232
  title: computed({
@@ -275,6 +274,7 @@
275
274
  },
276
275
  }),
277
276
  disablePlayer,
277
+ cid,
278
278
  };
279
279
  },
280
280
  };
@@ -47,6 +47,7 @@ declare const _default: import("vue").DefineComponent<{
47
47
  durationRule: typeof durationRule;
48
48
  loop: import("vue").WritableComputedRef<boolean>;
49
49
  disablePlayer: import("vue").Ref<boolean>;
50
+ cid: string;
50
51
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
51
52
  heading: {
52
53
  type: StringConstructor;
@@ -37,12 +37,17 @@
37
37
  </v-checkbox>
38
38
  </template>
39
39
  <style lang="scss" scoped>
40
+ :deep(.v-icon--size-default) {
41
+ font-size: calc(var(--v-vcs-font-size) * (1.2 + 0.1 / 3));
42
+ }
40
43
  .v-input--density-compact :deep(.v-selection-control) {
41
- --v-selection-control-size: 20px;
42
- --v-input-control-height: calc(var(--v-vcs-item-height) - 16px);
44
+ --v-selection-control-size: calc(
45
+ var(--v-vcs-font-size) * (1.2 + 0.1 / 3) + 4
46
+ );
47
+ --v-input-control-height: calc(var(--v-vcs-font-size) + 3px);
43
48
  }
44
49
  :deep(.v-input__control) {
45
- height: calc(var(--v-vcs-item-height) - 8px);
50
+ height: calc(var(--v-vcs-font-size) * 2 - 2px);
46
51
  }
47
52
  // remove ripple effect
48
53
  :deep(.v-selection-control__input::before) {
@@ -38,7 +38,6 @@
38
38
  filled
39
39
  autofocus
40
40
  hide-spin-buttons
41
- :height="itemHeight - 8"
42
41
  @keydown.esc="selected = -1"
43
42
  @blur="selected = -1"
44
43
  @keydown.enter="submitChange($event)"
@@ -66,7 +65,6 @@
66
65
  filled
67
66
  autofocus
68
67
  hide-spin-buttons
69
- :height="itemHeight - 8"
70
68
  @keydown.enter="add($event, newValue)"
71
69
  @click:append-inner="add($event, newValue)"
72
70
  @keydown.esc="cancel"
@@ -96,10 +94,11 @@
96
94
  display: none;
97
95
  }
98
96
  .v-chip.v-chip--size-small {
99
- --v-chip-height: calc(var(--v-vcs-item-height) - 8px);
97
+ --v-chip-height: calc(var(--v-vcs-font-size) * 2 - 2px);
98
+ padding: 0 calc(var(--v-vcs-font-size) - 3px);
100
99
  }
101
100
  :deep(.v-icon--size-x-small) {
102
- font-size: 18px;
101
+ font-size: calc(var(--v-vcs-font-size) + 3px);
103
102
  }
104
103
  .row-gap {
105
104
  row-gap: 8px !important;
@@ -111,7 +110,6 @@
111
110
  import { VChip, VIcon } from 'vuetify/components';
112
111
  import { v4 as uuid } from 'uuid';
113
112
  import { usePadding } from '../composables.js';
114
- import { useItemHeight } from '../../vuePlugins/vuetify.js';
115
113
  import VcsButton from '../buttons/VcsButton.vue';
116
114
  import VcsTextField from './VcsTextField.vue';
117
115
  import { removeListenersFromAttrs } from '../attrsHelpers.js';
@@ -279,8 +277,6 @@
279
277
 
280
278
  const paddingProvided = usePadding(attrs);
281
279
 
282
- const itemHeight = useItemHeight();
283
-
284
280
  return {
285
281
  paddingProvided,
286
282
  localValue,
@@ -296,7 +292,6 @@
296
292
  submitChange,
297
293
  add,
298
294
  cancel,
299
- itemHeight,
300
295
  };
301
296
  },
302
297
  };
@@ -38,7 +38,6 @@ declare const _default: import("vue").DefineComponent<{
38
38
  submitChange: (e: any) => void;
39
39
  add: (e: any, v: any) => Promise<void>;
40
40
  cancel: () => void;
41
- itemHeight: import("vue").ComputedRef<number>;
42
41
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:modelValue"[], "update:modelValue", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
43
42
  modelValue: {
44
43
  type: ArrayConstructor;
@@ -11,7 +11,6 @@
11
11
  <template v-for="(_, idx) in localValue">
12
12
  <v-col :key="`coordinate-${idx}`" v-if="!hideZ || idx < 2">
13
13
  <VcsTextField
14
- :id="`coordinate-${idx}`"
15
14
  :hide-spin-buttons="true"
16
15
  type="number"
17
16
  class="py-0"
@@ -23,7 +22,7 @@
23
22
  force-prefix
24
23
  :decimals="decimals[idx]"
25
24
  v-bind="noListenerAttrs"
26
- v-model="localValue[idx]"
25
+ v-model.number="localValue[idx]"
27
26
  :rules="getRulesForAxis(idx)"
28
27
  />
29
28
  </v-col>
@@ -46,7 +46,7 @@
46
46
  overflow: hidden;
47
47
  text-overflow: ellipsis;
48
48
  white-space: nowrap;
49
- line-height: calc(var(--v-vcs-item-height) - 9px);
49
+ line-height: calc(var(--v-vcs-font-size) * 2 - 3px);
50
50
  }
51
51
  </style>
52
52
 
@@ -23,7 +23,7 @@
23
23
  box-sizing: content-box;
24
24
  display: flex;
25
25
  align-items: center;
26
- height: calc(var(--v-vcs-item-height) - 8px);
26
+ height: calc(var(--v-vcs-font-size) * 2 - 2px);
27
27
  font-size: var(--v-vcs-font-size);
28
28
  }
29
29
  .vcs-label-required:after {
@@ -9,8 +9,8 @@
9
9
  >
10
10
  <v-radio
11
11
  v-for="(item, idx) in items"
12
- :id="`${$.uid}-${idx}`"
13
- :key="`${$.uid}-${idx}`"
12
+ :id="`${cid}-${idx}`"
13
+ :key="`${cid}-${idx}`"
14
14
  :value="item[itemValue] ?? item"
15
15
  :disabled="$attrs.disabled ?? item.disabled ?? false"
16
16
  :color="item?.color ?? undefined"
@@ -23,7 +23,7 @@
23
23
  >
24
24
  <template #label>
25
25
  <slot name="label" :item="item" :error="!!errorTooltip">
26
- <span :html-for="`${$.uid}-${idx}`">
26
+ <span :html-for="`${cid}-${idx}`">
27
27
  {{ $st(item.label ?? item) }}
28
28
  </span>
29
29
  </slot>
@@ -50,8 +50,8 @@
50
50
  </template>
51
51
  <style lang="scss" scoped>
52
52
  .v-input--density-compact :deep(.v-selection-control) {
53
- --v-selection-control-size: calc(var(--v-vcs-item-height) - 8px);
54
- --v-input-control-height: calc(var(--v-vcs-item-height) - 16px);
53
+ --v-selection-control-size: calc(var(--v-vcs-font-size) * 2 - 2px);
54
+ --v-input-control-height: calc(var(--v-vcs-font-size) + 3px);
55
55
  }
56
56
  // remove ripple effect
57
57
  :deep(.v-selection-control__input::before) {
@@ -73,7 +73,7 @@
73
73
  <script>
74
74
  import { ref } from 'vue';
75
75
  import { VRadio, VRadioGroup, VTooltip } from 'vuetify/components';
76
- import { usePadding } from '../composables.js';
76
+ import { useComponentId, usePadding } from '../composables.js';
77
77
 
78
78
  /**
79
79
  * @typedef {Object} VcsRadioItem
@@ -128,11 +128,13 @@
128
128
  const radioGroup = ref();
129
129
  const errorTooltip = ref();
130
130
  const paddingProvided = usePadding(attrs);
131
+ const cid = useComponentId();
131
132
 
132
133
  return {
133
134
  paddingProvided,
134
135
  radioGroup,
135
136
  errorTooltip,
137
+ cid,
136
138
  };
137
139
  },
138
140
  };
@@ -23,6 +23,7 @@ declare const _default: import("vue").DefineComponent<{
23
23
  paddingProvided: import("vue").ComputedRef<boolean>;
24
24
  radioGroup: import("vue").Ref<any>;
25
25
  errorTooltip: import("vue").Ref<any>;
26
+ cid: string;
26
27
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
27
28
  items: {
28
29
  type: ArrayConstructor;
@@ -73,7 +73,7 @@
73
73
  }
74
74
  }
75
75
  .v-input--density-compact :deep(.v-field) {
76
- --v-input-control-height: calc(var(--v-vcs-item-height) - 8px);
76
+ --v-input-control-height: calc(var(--v-vcs-font-size) * 2 - 2px);
77
77
  --v-field-padding-bottom: 0px;
78
78
  --v-field-input-padding-top: 0px;
79
79
  --v-input-padding-top: 0px;
@@ -32,7 +32,7 @@
32
32
  </template>
33
33
  <style lang="scss" scoped>
34
34
  .v-input--horizontal :deep(.v-input__control) {
35
- min-height: calc(var(--v-vcs-item-height) - 8px);
35
+ min-height: calc(var(--v-vcs-font-size) * 2 - 2px);
36
36
  }
37
37
  .v-input--horizontal.v-slider--has-labels {
38
38
  margin-bottom: var(--v-vcs-font-size);
@@ -77,7 +77,7 @@
77
77
  import { computed, ref } from 'vue';
78
78
  import { VSlider, VTooltip } from 'vuetify/components';
79
79
  import { useForwardSlots, usePadding } from '../composables.js';
80
- import { useItemHeight } from '../../vuePlugins/vuetify.js';
80
+ import { useFontSize } from '../../vuePlugins/vuetify.js';
81
81
 
82
82
  /**
83
83
  * @description stylized wrapper around {@link https://vuetifyjs.com/en/components/sliders/#usage}.
@@ -101,12 +101,12 @@
101
101
  },
102
102
  },
103
103
  setup(props, { attrs, slots }) {
104
- const itemHeight = useItemHeight();
104
+ const fontSize = useFontSize();
105
105
  const thumbSize = computed(() => {
106
- return Math.floor(itemHeight.value / 4);
106
+ return Math.floor((fontSize.value + 3) / 2);
107
107
  });
108
108
  const trackSize = computed(() => {
109
- return Math.floor(itemHeight.value / 12);
109
+ return Math.floor((fontSize.value + 3) / 6);
110
110
  });
111
111
  const tickSize = computed(() => {
112
112
  return trackSize.value * 2;
@@ -39,7 +39,7 @@
39
39
 
40
40
  <style lang="scss" scoped>
41
41
  .v-input--density-compact :deep(.v-field) {
42
- --v-input-control-height: calc(var(--v-vcs-item-height) - 8px);
42
+ --v-input-control-height: calc(var(--v-vcs-font-size) * 2 - 2px);
43
43
  --v-field-padding-bottom: 0px;
44
44
  --v-field-input-padding-top: 0px;
45
45
  --v-input-padding-top: 0px;
@@ -10,6 +10,7 @@
10
10
  class="vcs-text-field primary--placeholder"
11
11
  :class="{
12
12
  'py-1': !paddingProvided,
13
+ 'no-prepended-content': !prependedContent,
13
14
  }"
14
15
  v-bind="$attrs"
15
16
  :prefix="forcePrefix ? undefined : $attrs.prefix"
@@ -151,8 +152,12 @@
151
152
  return localValue.value ?? '';
152
153
  },
153
154
  set(value) {
154
- localValue.value = value;
155
155
  // emit is not needed since the vuetify component already emits an @input event. (forwarded listeners)
156
+ if (props.type === 'number') {
157
+ localValue.value = parseFloat(value);
158
+ } else {
159
+ localValue.value = value;
160
+ }
156
161
  },
157
162
  });
158
163
 
@@ -169,7 +174,11 @@
169
174
  const paddingProvided = usePadding(attrs);
170
175
  const forwardSlots = useForwardSlots(slots, ['default', 'message']);
171
176
 
177
+ const prependedContent = computed(() => {
178
+ return (props.forcePrefix && attrs.prefix) || !!slots['prepend-inner'];
179
+ });
172
180
  return {
181
+ prependedContent,
173
182
  forwardSlots,
174
183
  paddingProvided,
175
184
  visibleValue,
@@ -28,9 +28,10 @@ declare const _default: import("vue").DefineComponent<{
28
28
  default: boolean;
29
29
  };
30
30
  }, {
31
+ prependedContent: import("vue").ComputedRef<{}>;
31
32
  forwardSlots: import("vue").ComputedRef<string[]>;
32
33
  paddingProvided: import("vue").ComputedRef<boolean>;
33
- visibleValue: import("vue").WritableComputedRef<any>;
34
+ visibleValue: import("vue").WritableComputedRef<string | number | boolean>;
34
35
  rules: import("vue").ComputedRef<unknown>;
35
36
  textFieldRef: import("vue").Ref<any>;
36
37
  errorTooltipRef: import("vue").Ref<any>;
@@ -35,8 +35,8 @@
35
35
  </script>
36
36
  <style scoped lang="scss">
37
37
  :deep(.v-expansion-panel-title) {
38
- height: var(--v-vcs-item-height);
39
- min-height: var(--v-vcs-item-height);
38
+ height: calc(var(--v-vcs-font-size) * 2 + 6px);
39
+ min-height: calc(var(--v-vcs-font-size) * 2 + 6px);
40
40
  padding: 0 8px;
41
41
  }
42
42
  :deep(.v-expansion-panel-title.v-expansion-panel-title--active) {
@@ -58,7 +58,7 @@
58
58
  }
59
59
  :deep(.v-stepper-vertical-item:not(:last-child):before) {
60
60
  height: 100%;
61
- top: calc(var(--v-vcs-item-height) * 0.5);
61
+ top: calc(var(--v-vcs-font-size) * 2 - 16px);
62
62
  left: calc(14px + var(--v-vcs-font-size) * 0.42);
63
63
  width: calc(var(--v-vcs-font-size) * 0.1);
64
64
  }
@@ -30,7 +30,11 @@
30
30
  </template>
31
31
  <template #default>
32
32
  <div>
33
- <VcsHelp :text="helpText" :show="showHelp" class="mb-1">
33
+ <VcsHelp
34
+ :text="helpText"
35
+ v-if="showHelp && ($slots.help || helpText)"
36
+ class="mb-1"
37
+ >
34
38
  <slot name="help" />
35
39
  </VcsHelp>
36
40
  <slot />
@@ -3,7 +3,7 @@
3
3
  --v-field-padding-end: 4px;
4
4
  }
5
5
  .v-input--density-compact :deep(.v-field) {
6
- --v-input-control-height: calc(var(--v-vcs-item-height) - 8px);
6
+ --v-input-control-height: calc(var(--v-vcs-font-size) * 2 - 2px);
7
7
  --v-field-padding-bottom: 0px;
8
8
  --v-field-input-padding-top: 0px;
9
9
  --v-input-padding-top: 0px;
@@ -50,6 +50,12 @@
50
50
  :deep(.v-field--appended) {
51
51
  padding-inline-end: 4px;
52
52
  }
53
+ :deep(.v-field--prepended) {
54
+ padding-inline-start: 4px;
55
+ }
56
+ .no-prepended-content :deep(.v-field--prepended) {
57
+ padding-inline-start: 0px;
58
+ }
53
59
 
54
60
  // remove margin from prepended Icon
55
61
  .v-input--horizontal :deep(.v-input__prepend) {
@@ -33,7 +33,7 @@
33
33
  box-sizing: content-box;
34
34
  display: flex;
35
35
  align-items: center;
36
- height: calc(var(--v-vcs-item-height) - 8px);
36
+ height: calc(var(--v-vcs-font-size) * 2 - 2px);
37
37
  }
38
38
  .vcs-disabled {
39
39
  opacity: var(--v-disabled-opacity);
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-card flat class="pa-2">
3
3
  <vcs-file-drop
4
- :height="3 * itemHeight"
4
+ :height="dropElementHeight"
5
5
  :multiple="multiple"
6
6
  v-model="files"
7
7
  />
@@ -30,7 +30,7 @@
30
30
  import { VCard } from 'vuetify/components';
31
31
  import { computed, inject, ref } from 'vue';
32
32
  import { removeListenersFromAttrs } from '../attrsHelpers.js';
33
- import { useItemHeight } from '../../vuePlugins/vuetify.js';
33
+ import { useFontSize } from '../../vuePlugins/vuetify.js';
34
34
  import VcsFileDrop from './VcsFileDrop.vue';
35
35
  import VcsFormButton from '../buttons/VcsFormButton.vue';
36
36
  import VcsFileInput from '../form-inputs-controls/VcsFileInput.vue';
@@ -77,13 +77,16 @@
77
77
 
78
78
  const noListenerAttrs = computed(() => removeListenersFromAttrs(attrs));
79
79
 
80
- const itemHeight = useItemHeight();
80
+ const fontSize = useFontSize();
81
+ const dropElementHeight = computed(() => {
82
+ return fontSize.value * 6 + 18;
83
+ });
81
84
 
82
85
  return {
83
86
  files,
84
87
  loading,
85
88
  noListenerAttrs,
86
- itemHeight,
89
+ dropElementHeight,
87
90
  async doImport() {
88
91
  loading.value = true;
89
92
  try {
@@ -15,7 +15,7 @@ declare const _default: import("vue").DefineComponent<{
15
15
  files: WritableComputedRef<File[]>;
16
16
  loading: import("vue").Ref<boolean>;
17
17
  noListenerAttrs: import("vue").ComputedRef<Record<string, unknown>>;
18
- itemHeight: import("vue").ComputedRef<number>;
18
+ dropElementHeight: import("vue").ComputedRef<number>;
19
19
  doImport(): Promise<void>;
20
20
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
21
21
  importFiles: {
@@ -37,7 +37,6 @@
37
37
  }
38
38
  </style>
39
39
  <script>
40
- import { computed } from 'vue';
41
40
  import { is, optional } from '@vcsuite/check';
42
41
  import {
43
42
  VIcon,
@@ -46,7 +45,7 @@
46
45
  VListItemTitle,
47
46
  VTooltip,
48
47
  } from 'vuetify/components';
49
- import { useFontSize } from '../../vuePlugins/vuetify.js';
48
+ import { useIconSize } from '../../vuePlugins/vuetify.js';
50
49
 
51
50
  /**
52
51
  * pattern to check actions
@@ -121,10 +120,7 @@
121
120
  },
122
121
  },
123
122
  setup() {
124
- const fontSize = useFontSize();
125
- const iconSize = computed(() => {
126
- return fontSize.value * (1.2 + 0.1 / 3);
127
- });
123
+ const iconSize = useIconSize();
128
124
  return {
129
125
  iconSize,
130
126
  };
@@ -127,16 +127,26 @@
127
127
  <template #default="scope">
128
128
  <slot name="default" v-bind="{ ...scope, item, dragging, tooltip }" />
129
129
  </template>
130
- <template #append>
131
- <vcs-badge v-if="item.hasUpdate" class="mr-1" />
132
- <vcs-action-button-list
133
- v-if="actions.length > 0"
134
- :actions="actions"
135
- :disabled="item.disabled"
136
- :block-overflow="true"
137
- :overflow-count="actionButtonListOverflowCount"
138
- class="ml-2"
139
- />
130
+ <template #append="appendScope">
131
+ <slot
132
+ name="append"
133
+ v-bind="{
134
+ ...appendScope,
135
+ item,
136
+ actions,
137
+ actionButtonListOverflowCount,
138
+ }"
139
+ >
140
+ <vcs-badge v-if="item.hasUpdate" class="mr-1" />
141
+ <vcs-action-button-list
142
+ v-if="actions.length > 0"
143
+ :actions="actions"
144
+ :disabled="item.disabled"
145
+ :block-overflow="true"
146
+ :overflow-count="actionButtonListOverflowCount"
147
+ class="ml-2"
148
+ />
149
+ </slot>
140
150
  </template>
141
151
  </v-list-item>
142
152
  </template>
@@ -21,6 +21,16 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}
21
21
  isIndeterminate: boolean;
22
22
  select: (value: boolean) => void;
23
23
  }): any;
24
+ append?(_: {
25
+ item: any;
26
+ actions: any[];
27
+ actionButtonListOverflowCount: any;
28
+ isActive: boolean;
29
+ isOpen: boolean;
30
+ isSelected: boolean;
31
+ isIndeterminate: boolean;
32
+ select: (value: boolean) => void;
33
+ }): any;
24
34
  }>;
25
35
  export default _default;
26
36
  export type VcsListItem = {
@@ -36,7 +46,7 @@ export type VcsListItem = {
36
46
  /**
37
47
  * - 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.
38
48
  */
39
- renamable?: boolean | import("../../actions/actionHelper.js", { with: { "resolution-mode": "import" } }).ActionOptions | undefined;
49
+ renamable?: boolean | Omit<import("../../actions/actionHelper.js", { with: { "resolution-mode": "import" } }).VcsAction, "callback"> | undefined;
40
50
  /**
41
51
  * - The title to be displayed
42
52
  */