@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.
- package/build/build.js +40 -60
- package/build/buildHelpers.js +2 -8
- package/build/info/conf.json +1 -1
- package/config/projects.config.json +2 -1
- package/config/splashscreen.config.json +45 -0
- package/dist/.htaccess +7 -0
- package/dist/assets/@mdi/font/README.md +25 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.min-7a4f6be0.css +3 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
- package/dist/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.cbf44a.js → core-72f21835.js} +673 -641
- package/dist/assets/core.js +1 -1
- package/dist/assets/{ol.86e93c.js → ol-2d33bc8b.js} +42505 -44282
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-2ab43a16.css +1 -0
- package/dist/assets/{ui.7c276c.js → ui-2ab43a16.js} +12026 -12100
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify.4d18fe.css → vuetify-760ced3b.css} +1 -1
- package/dist/assets/{vuetify.4d18fe.js → vuetify-760ced3b.js} +5720 -5662
- package/dist/assets/vuetify.js +1 -1
- package/dist/index.html +11 -10
- package/index.d.ts +7 -5
- package/index.html +5 -5
- package/index.js +3 -3
- package/lib/olLib.js +84 -23
- package/package.json +5 -5
- package/plugins/@vcmap-show-case/flight-component-example/src/FlightExample.vue +41 -1
- package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +70 -30
- package/plugins/@vcmap-show-case/form-inputs-example/src/exampleActions.js +7 -11
- package/plugins/@vcmap-show-case/form-inputs-example/src/index.js +2 -2
- package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +21 -8
- package/plugins/@vcmap-show-case/style-input-example/src/StyleExample.vue +29 -90
- package/public/assets/@mdi/font/README.md +25 -0
- package/public/assets/@mdi/font/css/materialdesignicons.min.css +2 -2
- package/public/assets/@mdi/font/css/materialdesignicons.min.css.map +16 -0
- package/public/assets/@mdi/font/fonts/materialdesignicons-webfont.woff2 +0 -0
- package/src/actions/actionHelper.js +20 -20
- package/src/actions/flightActions.js +5 -5
- package/src/actions/listActions.d.ts +0 -7
- package/src/actions/listActions.js +4 -20
- package/src/actions/stateRefAction.js +2 -2
- package/src/application/VcsApp.vue +52 -27
- package/src/application/VcsApp.vue.d.ts +1 -0
- package/src/application/VcsAttributions.vue +2 -13
- package/src/application/VcsAttributionsFooter.vue +10 -11
- package/src/application/VcsPositionDisplay.vue +8 -23
- package/src/application/VcsPositionDisplay.vue.d.ts +0 -1
- package/src/application/VcsSettings.vue +10 -17
- package/src/application/VcsSplashScreen.vue +25 -42
- package/src/application/VcsSplashScreen.vue.d.ts +0 -2
- package/src/application/VcsTextPage.vue +12 -43
- package/src/application/VcsTextPage.vue.d.ts +4 -8
- package/src/application/VcsTextPageFooter.vue +22 -40
- package/src/components/extent/VcsExtentEditor.vue +1 -1
- package/src/components/flight/VcsFlightAnchorsComponent.vue +63 -36
- package/src/components/flight/VcsFlightComponent.vue +16 -21
- package/src/components/flight/VcsFlightPlayer.vue +27 -5
- package/src/components/form-inputs-controls/VcsCheckbox.vue +9 -5
- package/src/components/form-inputs-controls/VcsCoordinate.vue +13 -1
- package/src/components/form-inputs-controls/VcsCoordinate.vue.d.ts +5 -2
- package/src/components/form-inputs-controls/VcsDatePicker.vue +34 -60
- package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +1 -63
- package/src/components/form-inputs-controls/VcsFileInput.vue +17 -18
- package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsLabel.vue +1 -1
- package/src/components/form-inputs-controls/VcsRadio.vue +17 -3
- package/src/components/form-inputs-controls/VcsRadio.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +39 -27
- package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +5 -2
- package/src/components/form-inputs-controls/VcsSlider.vue +14 -1
- package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +5 -2
- package/src/components/form-inputs-controls/VcsTextArea.vue +26 -22
- package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -0
- package/src/components/form-inputs-controls/VcsTextField.vue +6 -4
- package/src/components/form-inputs-controls/VcsWizardStep.vue +1 -1
- package/src/components/form-inputs-controls/vcsTextField.scss +8 -8
- package/src/components/form-output/VcsFormattedNumber.vue +15 -1
- package/src/components/form-output/VcsFormattedNumber.vue.d.ts +9 -0
- package/src/components/lists/VcsActionList.vue +7 -7
- package/src/components/lists/VcsList.vue +10 -17
- package/src/components/lists/VcsList.vue.d.ts +3 -7
- package/src/components/lists/VcsListItem.vue +51 -21
- package/src/components/lists/VcsListItem.vue.d.ts +11 -5
- package/src/components/section/VcsExpansionPanel.vue +101 -0
- package/src/components/section/VcsExpansionPanel.vue.d.ts +19 -0
- package/src/components/style/MenuWrapper.vue +24 -26
- package/src/components/style/MenuWrapper.vue.d.ts +4 -4
- package/src/components/style/VcsFillMenu.vue +9 -16
- package/src/components/style/VcsFillMenu.vue.d.ts +0 -18
- package/src/components/style/VcsFillSelector.vue +13 -16
- package/src/components/style/VcsImageMenu.vue +8 -25
- package/src/components/style/VcsImageMenu.vue.d.ts +0 -27
- package/src/components/style/VcsImageSelector.vue +102 -167
- package/src/components/style/VcsImageSelector.vue.d.ts +15 -15
- package/src/components/style/VcsStrokeMenu.vue +8 -15
- package/src/components/style/VcsStrokeMenu.vue.d.ts +0 -18
- package/src/components/style/VcsStrokeSelector.vue +11 -18
- package/src/components/style/VcsTextMenu.vue +9 -12
- package/src/components/style/VcsTextMenu.vue.d.ts +0 -9
- package/src/components/style/VcsTextSelector.vue +79 -95
- package/src/components/style/VcsTextSelector.vue.d.ts +20 -22
- package/src/components/style/VcsVectorStyleComponent.vue +7 -18
- package/src/components/style/VcsVectorStyleComponent.vue.d.ts +1 -1
- package/src/components/style/composables.d.ts +0 -14
- package/src/components/style/composables.js +0 -49
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +39 -6
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +1 -1
- package/src/components/viewpoint/VcsViewpointComponent.vue +21 -8
- package/src/components/viewpoint/VcsViewpointEditor.vue +1 -0
- package/src/contentTree/contentTreeItem.d.ts +2 -2
- package/src/contentTree/contentTreeItem.js +7 -7
- package/src/featureInfo/featureInfo.js +8 -10
- package/src/init.d.ts +5 -38
- package/src/init.js +19 -18
- package/src/legend/StyleLegendItem.vue +4 -9
- package/src/legend/VcsLegend.vue +28 -54
- package/src/manager/buttonManager.js +4 -4
- package/src/manager/collectionManager/CollectionComponent.vue +17 -42
- package/src/manager/collectionManager/CollectionComponent.vue.d.ts +4 -2
- package/src/manager/collectionManager/CollectionComponentContent.vue +7 -6
- package/src/manager/collectionManager/CollectionComponentContent.vue.d.ts +3 -1
- package/src/manager/collectionManager/CollectionComponentList.vue +10 -8
- package/src/manager/collectionManager/CollectionComponentList.vue.d.ts +4 -2
- package/src/manager/collectionManager/CollectionComponentProvider.vue +1 -1
- package/src/manager/collectionManager/CollectionComponentStandalone.vue +3 -2
- package/src/manager/collectionManager/CollectionManager.vue +1 -1
- package/src/manager/collectionManager/collectionComponentClass.js +6 -9
- package/src/manager/collectionManager/collectionManager.js +10 -10
- package/src/manager/collectionManager/editorCollectionComponentClass.js +4 -4
- package/src/manager/contextMenu/contextMenuManager.js +2 -2
- package/src/manager/navbarManager.js +2 -2
- package/src/manager/panel/panelManager.js +3 -3
- package/src/manager/toolbox/toolboxManager.js +10 -10
- package/src/manager/window/windowManager.d.ts +2 -2
- package/src/manager/window/windowManager.js +4 -4
- package/src/search/search.js +2 -2
- package/src/siteConfig.js +1 -1
- package/src/state.js +4 -4
- package/src/vcsUiApp.d.ts +14 -10
- package/src/vcsUiApp.js +1 -1
- package/src/vuePlugins/vuetify.d.ts +2 -0
- package/src/vuePlugins/vuetify.js +11 -0
- package/dist/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
- package/dist/assets/@mdi/font/css/materialdesignicons.min.e3f476.css +0 -3
- package/dist/assets/index-8eGauqjA.js +0 -1
- package/dist/assets/ui.7c276c.css +0 -1
- package/public/assets/@mdi/font/css/materialdesignicons.css.map +0 -16
- package/src/application/VcsCustomScreen.vue +0 -45
- package/src/application/VcsCustomScreen.vue.d.ts +0 -15
- /package/dist/assets/{cesium.0b750d.js → cesium-cb4dbfba.js} +0 -0
- /package/dist/assets/{favicon-128.4c4ce5.png → favicon-128-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-180.5b99c0.png → favicon-180-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-192.0e205e.png → favicon-192-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon-32.6b9add.png → favicon-32-4c4ce5df.png} +0 -0
- /package/dist/assets/{favicon.d5ec97.svg → favicon-4c4ce5df.svg} +0 -0
- /package/dist/assets/font/{TitilliumWeb-Regular.9ca076.woff2 → TitilliumWeb-Regular-9ca076be.woff2} +0 -0
- /package/dist/assets/style/{icon-marker.70960f.png → icon-marker-70960f05.png} +0 -0
- /package/dist/assets/style/{icon-marker-blue.534e37.png → icon-marker-blue-534e374b.png} +0 -0
- /package/dist/assets/style/{icon-marker-green.0b6a92.png → icon-marker-green-0b6a92bc.png} +0 -0
- /package/dist/assets/style/{icon-marker-o.036477.png → icon-marker-o-036477fa.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-blue.7b6d62.png → icon-marker-o-blue-7b6d6279.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-green.c863c0.png → icon-marker-o-green-c863c0fa.png} +0 -0
- /package/dist/assets/style/{icon-marker-o-red.93ff58.png → icon-marker-o-red-93ff58df.png} +0 -0
- /package/dist/assets/style/{icon-marker-red.313d03.png → icon-marker-red-313d03e8.png} +0 -0
- /package/dist/assets/style/{icon-pin.b7ce77.png → icon-pin-b7ce771e.png} +0 -0
- /package/dist/assets/style/{icon-pin-blue.7be369.png → icon-pin-blue-7be369a3.png} +0 -0
- /package/dist/assets/style/{icon-pin-green.cbb935.png → icon-pin-green-cbb935fe.png} +0 -0
- /package/dist/assets/style/{icon-pin-red.3f25b2.png → icon-pin-red-3f25b245.png} +0 -0
- /package/dist/assets/{vue.a3cd64.js → vue-03b265aa.js} +0 -0
- /package/public/assets/{favicon-128.png → favicon-128-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-180.png → favicon-180-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-192.png → favicon-192-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon-32.png → favicon-32-4c4ce5df.png} +0 -0
- /package/public/assets/{favicon.svg → favicon-4c4ce5df.svg} +0 -0
- /package/src/components/{form-inputs-controls → section}/VcsFormSection.vue +0 -0
- /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-
|
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="
|
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="
|
54
|
-
<
|
55
|
-
<
|
56
|
-
<
|
57
|
-
|
58
|
-
|
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:
|
65
|
-
--v-field-padding-end:
|
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:
|
99
|
-
padding-right:
|
99
|
+
padding-left: 4px;
|
100
|
+
padding-right: 4px;
|
100
101
|
}
|
101
102
|
.v-field__loader {
|
102
|
-
padding-left:
|
103
|
-
padding-right:
|
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
|
-
|
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,
|
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,
|
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
|
-
|
7
|
+
color="primary"
|
8
|
+
class="primary--placeholder vcs-text-area"
|
8
9
|
:class="{
|
9
10
|
'py-1': !paddingProvided,
|
10
11
|
}"
|
11
|
-
v-bind="
|
12
|
+
v-bind="$attrs"
|
12
13
|
>
|
13
|
-
<template v-for="slot of
|
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="
|
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:
|
48
|
-
--v-field-padding-end:
|
49
|
-
padding-left:
|
50
|
-
padding-right:
|
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:
|
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:
|
90
|
-
margin-left: -
|
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="
|
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,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
:deep(.v-field) {
|
2
|
-
--v-field-padding-start:
|
3
|
-
--v-field-padding-end:
|
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:
|
33
|
-
padding-right:
|
32
|
+
padding-left: 4px;
|
33
|
+
padding-right: 4px;
|
34
34
|
}
|
35
35
|
.v-field__loader {
|
36
|
-
padding-left:
|
37
|
-
padding-right:
|
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:
|
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
|
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:
|
54
|
-
icon:
|
53
|
+
title: optional(String),
|
54
|
+
icon: optional(String),
|
55
55
|
callback: Function,
|
56
|
-
active:
|
57
|
-
background:
|
58
|
-
hasUpdate:
|
59
|
-
disabled:
|
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 #
|
62
|
-
<slot name="item.
|
60
|
+
<template #title="titleScope">
|
61
|
+
<slot name="item.title" v-bind="{ ...titleScope, index }"></slot>
|
63
62
|
</template>
|
64
|
-
<template #
|
65
|
-
<slot name="item.
|
63
|
+
<template #subtitle="subtitleScope">
|
64
|
+
<slot name="item.subtitle" v-bind="{ ...subtitleScope, index }" />
|
66
65
|
</template>
|
67
|
-
<template #
|
68
|
-
<slot name="item.
|
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} [
|
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.
|
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
|
-
|
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
|
-
|
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.
|
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
|
-
};
|