@vcmap/ui 6.0.0-rc.8 → 6.0.0
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/README.md +2 -0
- package/build/buildHelpers.js +1 -1
- package/build/commonViteConfig.js +7 -0
- package/config/aerowest.config.json +12 -2
- package/config/analysis.config.json +17 -0
- package/config/base.config.json +19 -5
- package/config/components-show-case.config.json +53 -0
- package/config/concepts-show-case.config.json +39 -0
- package/config/dev.config.json +164 -105
- package/config/dynamic-layer.config.json +32 -0
- package/config/hello-world.config.json +11 -0
- package/config/projects.config.json +9 -1
- package/config/solar.config.json +65 -0
- package/config/vectorTile.config.json +70 -0
- package/config/www.config.json +34 -13
- package/dist/assets/{cesium-2ec6aae0.js → cesium-00deba88.js} +4672 -4704
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core-6f2522e5.js → core-a599e8b6.js} +7932 -7342
- package/dist/assets/core.js +1 -1
- package/dist/assets/{ol-b0e134cb.js → ol-21bbc740.js} +12206 -11711
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui-adeddc7d.css +1 -0
- package/dist/assets/{ui-bf3d1f84.js → ui-adeddc7d.js} +10415 -9588
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-99bf601c.css → vuetify-c0e02f11.css} +1 -1
- package/dist/assets/{vuetify-99bf601c.js → vuetify-c0e02f11.js} +5313 -5294
- package/dist/assets/vuetify.js +1 -1
- package/index.d.ts +4 -0
- package/index.js +2 -0
- package/lib/olLib.js +6 -0
- package/package.json +12 -12
- package/plugins/@vcmap-show-case/README.md +15 -6
- package/plugins/@vcmap-show-case/category-tester/package.json +1 -1
- package/plugins/@vcmap-show-case/category-tester/src/CollectionComponentOptions.vue +23 -23
- package/plugins/@vcmap-show-case/category-tester/src/FoobarEditor.vue +2 -8
- package/plugins/@vcmap-show-case/collection-manager-example/package.json +1 -1
- package/plugins/@vcmap-show-case/collection-manager-example/src/CollectionManagerExample.vue +10 -8
- package/plugins/@vcmap-show-case/context-menu-tester/package.json +1 -1
- package/plugins/@vcmap-show-case/extent-example/package.json +1 -1
- package/plugins/@vcmap-show-case/flight-component-example/package.json +1 -1
- package/plugins/@vcmap-show-case/form-inputs-example/package.json +1 -1
- package/plugins/@vcmap-show-case/hello-world/package.json +1 -1
- package/plugins/@vcmap-show-case/icons-example/package.json +1 -1
- package/plugins/@vcmap-show-case/notifier-tester/package.json +1 -1
- package/plugins/@vcmap-show-case/panel-tester/package.json +1 -1
- package/plugins/@vcmap-show-case/plugin-editors/package.json +1 -1
- package/plugins/@vcmap-show-case/plugin-editors/src/index.js +17 -6
- package/plugins/@vcmap-show-case/project-selector/package.json +1 -9
- package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +22 -31
- package/plugins/@vcmap-show-case/project-selector/src/ProjectSelectorComponent.vue +15 -23
- package/plugins/@vcmap-show-case/projection-example/README.md +3 -0
- package/plugins/@vcmap-show-case/projection-example/package.json +5 -0
- package/plugins/@vcmap-show-case/projection-example/src/ProjectionExample.vue +73 -0
- package/plugins/@vcmap-show-case/{table-example → projection-example}/src/index.js +22 -11
- package/plugins/@vcmap-show-case/search-example/package.json +1 -1
- package/plugins/@vcmap-show-case/simple-graph/package.json +1 -4
- package/plugins/@vcmap-show-case/style-input-example/package.json +1 -1
- package/plugins/@vcmap-show-case/switch-map-callback-example/README.md +2 -2
- package/plugins/@vcmap-show-case/switch-map-callback-example/package.json +2 -1
- package/plugins/@vcmap-show-case/switch-map-callback-example/src/index.js +4 -1
- package/plugins/@vcmap-show-case/theming-example/package.json +1 -1
- package/plugins/@vcmap-show-case/toolbox-example/package.json +1 -1
- package/plugins/@vcmap-show-case/vector-properties-example/package.json +1 -1
- package/plugins/@vcmap-show-case/viewpoint-component-example/package.json +1 -1
- package/plugins/@vcmap-show-case/window-tester/package.json +1 -1
- package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +1 -1
- package/plugins/@vcmap-show-case/window-tester/src/WindowExampleToggleChild.vue +5 -1
- package/plugins/@vcmap-show-case/wizard-example/package.json +1 -1
- package/plugins/package.json +23 -3
- package/src/actions/flightActions.js +40 -20
- package/src/actions/listActions.d.ts +1 -1
- package/src/actions/listActions.js +1 -1
- package/src/application/VcsApp.vue +3 -0
- package/src/application/VcsApp.vue.d.ts +15 -0
- package/src/application/VcsAttributions.vue +1 -1
- package/src/application/VcsAttributionsFooter.vue +1 -1
- package/src/application/VcsContainer.vue +0 -1
- package/src/application/VcsContainer.vue.d.ts +15 -0
- package/src/application/VcsObliqueFooter.vue +110 -0
- package/src/application/VcsObliqueFooter.vue.d.ts +4 -0
- package/src/application/VcsTextPageFooter.vue +1 -0
- package/src/application/attributionsHelper.js +10 -6
- package/src/components/buttons/VcsButton.vue +2 -2
- package/src/components/buttons/VcsButton.vue.d.ts +1 -1
- package/src/components/buttons/VcsFormButton.vue +2 -2
- package/src/components/buttons/VcsFormButton.vue.d.ts +1 -1
- package/src/components/buttons/VcsToolButton.vue +2 -2
- package/src/components/buttons/VcsToolButton.vue.d.ts +1 -1
- package/src/components/composables.d.ts +2 -2
- package/src/components/composables.js +3 -5
- package/src/components/flight/VcsFlightPlayer.vue +26 -20
- package/src/components/form-inputs-controls/VcsCheckbox.vue +11 -5
- package/src/components/form-inputs-controls/VcsCheckbox.vue.d.ts +10 -1
- package/src/components/form-inputs-controls/VcsDatePicker.vue +23 -3
- package/src/components/form-inputs-controls/VcsDatePicker.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsFileInput.vue +3 -3
- package/src/components/form-inputs-controls/VcsFileInput.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsLabel.vue +10 -1
- package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +9 -0
- package/src/components/form-inputs-controls/VcsRadio.vue +4 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +2 -2
- package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +3 -3
- package/src/components/form-inputs-controls/VcsSlider.vue +2 -2
- package/src/components/form-inputs-controls/VcsSlider.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsTextArea.vue +2 -2
- package/src/components/form-inputs-controls/VcsTextArea.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsTextField.vue +3 -3
- package/src/components/form-inputs-controls/VcsTextField.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsWizard.vue +2 -2
- package/src/components/form-inputs-controls/VcsWizard.vue.d.ts +1 -1
- package/src/components/form-inputs-controls/VcsWizardStep.vue +2 -2
- package/src/components/form-inputs-controls/VcsWizardStep.vue.d.ts +3 -3
- package/src/components/import/VcsImportComponent.vue +3 -3
- package/src/components/lists/VcsActionList.vue +1 -1
- package/src/components/lists/VcsList.vue +56 -39
- package/src/components/lists/VcsListItemComponent.vue +14 -12
- package/src/components/lists/VcsListItemComponent.vue.d.ts +5 -28
- package/src/components/lists/VcsTreeview.vue +4 -2
- package/src/components/lists/VcsTreeview.vue.d.ts +1 -1
- package/src/components/notification/VcsHelp.vue +0 -1
- package/src/components/notification/VcsHelpTooltip.vue +48 -0
- package/src/components/notification/VcsHelpTooltip.vue.d.ts +25 -0
- package/src/components/projection/VcsProjection.vue +329 -0
- package/src/components/projection/VcsProjection.vue.d.ts +7 -0
- package/src/components/section/VcsFormSection.vue +0 -1
- package/src/components/section/VcsFormSection.vue.d.ts +1 -1
- package/src/components/tables/VcsDataTable.vue +15 -4
- package/src/components/tables/VcsDataTable.vue.d.ts +13 -2
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue +17 -1
- package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +10 -1
- package/src/components/vector-properties/VcsFeatureTransforms.vue +39 -5
- package/src/components/vector-properties/VcsFeatureTransforms.vue.d.ts +2 -1
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +44 -24
- package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +27 -2
- package/src/components/viewpoint/VcsViewpointComponent.vue +6 -6
- package/src/contentTree/contentTreeCollection.js +12 -1
- package/src/contentTree/obliqueCollectionContentTreeItem.js +6 -1
- package/src/featureInfo/abstractFeatureInfoView.d.ts +9 -0
- package/src/featureInfo/abstractFeatureInfoView.js +20 -3
- package/src/i18n/de.d.ts +93 -39
- package/src/i18n/de.js +68 -22
- package/src/i18n/en.d.ts +93 -39
- package/src/i18n/en.js +64 -18
- package/src/legend/StyleLegendItem.vue +1 -5
- package/src/legend/VcsLegend.vue +9 -10
- package/src/legend/VcsLegend.vue.d.ts +1 -1
- package/src/legend/legendHelper.js +6 -1
- package/src/manager/collectionManager/collectionComponentClass.js +9 -5
- package/src/manager/collectionManager/editorCollectionComponentClass.js +5 -3
- package/src/manager/toolbox/GroupToolboxComponent.vue +6 -1
- package/src/manager/toolbox/SelectToolboxComponent.vue +6 -2
- package/src/manager/toolbox/ToolboxManagerComponent.vue +7 -2
- package/src/manager/window/WindowComponentHeader.vue +1 -1
- package/src/manager/window/windowManager.d.ts +59 -3
- package/src/manager/window/windowManager.js +23 -2
- package/src/navigation/MapNavCompass.vue +166 -140
- package/src/navigation/MapNavCompass.vue.d.ts +3 -1
- package/src/navigation/MapNavigation.vue +22 -5
- package/src/navigation/VcsCompass.vue +2 -1
- package/src/navigation/overviewMap.js +4 -1
- package/src/obliqueFallbackWarnings.d.ts +5 -0
- package/src/obliqueFallbackWarnings.js +54 -0
- package/src/styles/main.scss +2 -2
- package/src/uiConfig.d.ts +30 -0
- package/src/uiConfig.js +3 -0
- package/src/vcsUiApp.d.ts +37 -10
- package/src/vcsUiApp.js +4 -0
- package/src/vuePlugins/i18n.js +1 -0
- package/src/vuePlugins/vuetify.js +2 -0
- package/dist/assets/ui-bf3d1f84.css +0 -1
- package/plugins/@vcmap-show-case/buttons-example/README.md +0 -4
- package/plugins/@vcmap-show-case/buttons-example/package.json +0 -5
- package/plugins/@vcmap-show-case/buttons-example/src/ButtonsExample.vue +0 -281
- package/plugins/@vcmap-show-case/buttons-example/src/index.js +0 -51
- package/plugins/@vcmap-show-case/config-editor/README.md +0 -3
- package/plugins/@vcmap-show-case/config-editor/package.json +0 -5
- package/plugins/@vcmap-show-case/config-editor/src/ConfigEditor.vue +0 -62
- package/plugins/@vcmap-show-case/config-editor/src/index.js +0 -49
- package/plugins/@vcmap-show-case/list-example/README.md +0 -3
- package/plugins/@vcmap-show-case/list-example/package.json +0 -5
- package/plugins/@vcmap-show-case/list-example/src/ListExample.vue +0 -403
- package/plugins/@vcmap-show-case/list-example/src/index.js +0 -46
- package/plugins/@vcmap-show-case/table-example/README.md +0 -3
- package/plugins/@vcmap-show-case/table-example/package.json +0 -5
- package/plugins/@vcmap-show-case/table-example/src/DataTableExample.vue +0 -203
- package/plugins/@vcmap-show-case/textfields-example/README.md +0 -3
- package/plugins/@vcmap-show-case/textfields-example/package.json +0 -5
- package/plugins/@vcmap-show-case/textfields-example/src/TextfieldsExample.vue +0 -115
- package/plugins/@vcmap-show-case/textfields-example/src/index.js +0 -64
- /package/dist/assets/{vue-43880c5a.js → vue-8269279d.js} +0 -0
@@ -9,7 +9,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
9
9
|
};
|
10
10
|
}, {
|
11
11
|
hasAppendSlot: import("vue").ComputedRef<boolean>;
|
12
|
-
forwardSlots:
|
12
|
+
forwardSlots: string[];
|
13
13
|
sliderRef: import("vue").Ref<any>;
|
14
14
|
thumbSize: import("vue").ComputedRef<number>;
|
15
15
|
tickSize: import("vue").ComputedRef<number>;
|
@@ -141,7 +141,7 @@
|
|
141
141
|
<script>
|
142
142
|
import { ref } from 'vue';
|
143
143
|
import { VTextarea, VTooltip } from 'vuetify/components';
|
144
|
-
import {
|
144
|
+
import { getForwardSlots, usePadding } from '../composables.js';
|
145
145
|
|
146
146
|
/**
|
147
147
|
* @description extends API of {@link https://vuetifyjs.com/en/api/v-textarea/|vuetify v-textarea}.
|
@@ -173,7 +173,7 @@
|
|
173
173
|
const errorTooltipRef = ref();
|
174
174
|
|
175
175
|
const paddingProvided = usePadding(attrs);
|
176
|
-
const forwardSlots =
|
176
|
+
const forwardSlots = getForwardSlots(slots, ['append-inner', 'message']);
|
177
177
|
|
178
178
|
return {
|
179
179
|
forwardSlots,
|
@@ -8,7 +8,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
8
8
|
default: string;
|
9
9
|
};
|
10
10
|
}, {
|
11
|
-
forwardSlots:
|
11
|
+
forwardSlots: string[];
|
12
12
|
textAreaRef: import("vue").Ref<any>;
|
13
13
|
errorTooltipRef: import("vue").Ref<any>;
|
14
14
|
paddingProvided: import("vue").ComputedRef<boolean>;
|
@@ -55,12 +55,12 @@
|
|
55
55
|
</template>
|
56
56
|
|
57
57
|
<style lang="scss" scoped>
|
58
|
-
@
|
58
|
+
@use './vcsTextField.scss';
|
59
59
|
</style>
|
60
60
|
<script>
|
61
61
|
import { computed, ref } from 'vue';
|
62
62
|
import { VTextField, VTooltip } from 'vuetify/components';
|
63
|
-
import {
|
63
|
+
import { getForwardSlots, usePadding } from '../composables.js';
|
64
64
|
import { useProxiedAtomicModel } from '../modelHelper.js';
|
65
65
|
|
66
66
|
function countDecimalPlaces(value) {
|
@@ -172,7 +172,7 @@
|
|
172
172
|
});
|
173
173
|
|
174
174
|
const paddingProvided = usePadding(attrs);
|
175
|
-
const forwardSlots =
|
175
|
+
const forwardSlots = getForwardSlots(slots, ['default', 'message']);
|
176
176
|
|
177
177
|
const prependedContent = computed(() => {
|
178
178
|
return (props.forcePrefix && attrs.prefix) || !!slots['prepend-inner'];
|
@@ -29,7 +29,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
29
29
|
};
|
30
30
|
}, {
|
31
31
|
prependedContent: import("vue").ComputedRef<{}>;
|
32
|
-
forwardSlots:
|
32
|
+
forwardSlots: string[];
|
33
33
|
paddingProvided: import("vue").ComputedRef<boolean>;
|
34
34
|
visibleValue: import("vue").WritableComputedRef<string | number | boolean>;
|
35
35
|
rules: import("vue").ComputedRef<unknown>;
|
@@ -12,7 +12,7 @@
|
|
12
12
|
<script>
|
13
13
|
import { VStepperVertical } from 'vuetify/labs/VStepperVertical';
|
14
14
|
import { VIcon } from 'vuetify/components';
|
15
|
-
import {
|
15
|
+
import { getForwardSlots } from '../composables.js';
|
16
16
|
|
17
17
|
/**
|
18
18
|
* @description Stylized wrapper around {@link https://vuetifyjs.com/en/api/v-stepper-vertical/ |vuetify stepper vertical}per.
|
@@ -25,7 +25,7 @@
|
|
25
25
|
VIcon,
|
26
26
|
},
|
27
27
|
setup(_p, { slots }) {
|
28
|
-
const forwardSlots =
|
28
|
+
const forwardSlots = getForwardSlots(slots, ['icon']);
|
29
29
|
|
30
30
|
return {
|
31
31
|
forwardSlots,
|
@@ -1,4 +1,4 @@
|
|
1
1
|
declare const _default: import("vue").DefineComponent<{}, {
|
2
|
-
forwardSlots:
|
2
|
+
forwardSlots: string[];
|
3
3
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
|
4
4
|
export default _default;
|
@@ -52,7 +52,7 @@
|
|
52
52
|
import { VStepperVerticalItem } from 'vuetify/labs/VStepperVertical';
|
53
53
|
import { VSpacer } from 'vuetify/components';
|
54
54
|
import { useProxiedComplexModel } from '../modelHelper.js';
|
55
|
-
import {
|
55
|
+
import { getForwardSlots } from '../composables.js';
|
56
56
|
import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
|
57
57
|
import VcsHelp from '../notification/VcsHelp.vue';
|
58
58
|
|
@@ -167,7 +167,7 @@
|
|
167
167
|
return props.headerActions;
|
168
168
|
});
|
169
169
|
|
170
|
-
const forwardSlots =
|
170
|
+
const forwardSlots = getForwardSlots(slots, ['title', 'default']);
|
171
171
|
|
172
172
|
return {
|
173
173
|
showHelp,
|
@@ -4,7 +4,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
4
4
|
default: boolean;
|
5
5
|
};
|
6
6
|
modelValue: {
|
7
|
-
type: (BooleanConstructor |
|
7
|
+
type: (BooleanConstructor | StringConstructor | NumberConstructor | ArrayConstructor)[];
|
8
8
|
default(rawProps: any): 0 | never[];
|
9
9
|
};
|
10
10
|
step: {
|
@@ -44,14 +44,14 @@ declare const _default: import("vue").DefineComponent<{
|
|
44
44
|
showHelp: import("vue").ComputedRef<boolean>;
|
45
45
|
actions: import("vue").ComputedRef<VcsAction>;
|
46
46
|
isActiveStep: import("vue").ComputedRef<boolean>;
|
47
|
-
forwardSlots:
|
47
|
+
forwardSlots: string[];
|
48
48
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
49
49
|
multiple: {
|
50
50
|
type: BooleanConstructor;
|
51
51
|
default: boolean;
|
52
52
|
};
|
53
53
|
modelValue: {
|
54
|
-
type: (BooleanConstructor |
|
54
|
+
type: (BooleanConstructor | StringConstructor | NumberConstructor | ArrayConstructor)[];
|
55
55
|
default(rawProps: any): 0 | never[];
|
56
56
|
};
|
57
57
|
step: {
|
@@ -13,15 +13,15 @@
|
|
13
13
|
v-model="files"
|
14
14
|
/>
|
15
15
|
<div class="d-flex justify-end gc-1 mx-3 pt-2 pb-1">
|
16
|
-
<vcs-form-button @click="$emit('close')">
|
17
|
-
{{ $t('components.cancel') }}
|
18
|
-
</vcs-form-button>
|
19
16
|
<vcs-form-button
|
20
17
|
variant="filled"
|
21
18
|
:disabled="files.length === 0"
|
22
19
|
@click="doImport"
|
23
20
|
>{{ $t('components.import.submit') }}</vcs-form-button
|
24
21
|
>
|
22
|
+
<vcs-form-button @click="$emit('close')">
|
23
|
+
{{ $t('components.cancel') }}
|
24
|
+
</vcs-form-button>
|
25
25
|
</div>
|
26
26
|
</v-card>
|
27
27
|
</template>
|
@@ -57,14 +57,17 @@
|
|
57
57
|
}"
|
58
58
|
@click="select(item, $event)"
|
59
59
|
>
|
60
|
-
<template #
|
61
|
-
<slot name="item.
|
60
|
+
<template #append="scope">
|
61
|
+
<slot name="item.append" v-bind="{ ...scope, index, item }" />
|
62
62
|
</template>
|
63
|
-
<template #
|
64
|
-
<slot name="item.
|
63
|
+
<template #title="scope">
|
64
|
+
<slot name="item.title" v-bind="{ ...scope, index, item }" />
|
65
65
|
</template>
|
66
|
-
<template #
|
67
|
-
<slot name="item.
|
66
|
+
<template #subtitle="scope">
|
67
|
+
<slot name="item.subtitle" v-bind="{ ...scope, index, item }" />
|
68
|
+
</template>
|
69
|
+
<template #prepend="scope">
|
70
|
+
<slot name="item.prepend" v-bind="{ ...scope, index, item }" />
|
68
71
|
</template>
|
69
72
|
</VcsListItemComponent>
|
70
73
|
<slot name="item.intermediate" :item="item" :index="index" />
|
@@ -83,6 +86,7 @@
|
|
83
86
|
getCurrentInstance,
|
84
87
|
inject,
|
85
88
|
isReactive,
|
89
|
+
reactive,
|
86
90
|
ref,
|
87
91
|
shallowRef,
|
88
92
|
watch,
|
@@ -106,36 +110,48 @@
|
|
106
110
|
* @returns {Array<import("../../actions/actionHelper.js").VcsAction>}
|
107
111
|
*/
|
108
112
|
export function createSelectionActions(items, selected, emit) {
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
113
|
+
const selectAllAction = reactive({
|
114
|
+
name: 'list.selectAll',
|
115
|
+
tooltip: 'list.selectAll',
|
116
|
+
disabled: items.value.length - selected.value.length < 1,
|
117
|
+
callback() {
|
118
|
+
const currentSelection = [...selected.value];
|
119
|
+
selected.value = items.value.filter((item) => !item.disabled);
|
116
120
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
},
|
121
|
+
selected.value.forEach((item) => {
|
122
|
+
if (item.selectionChanged && !currentSelection.includes(item)) {
|
123
|
+
item.selectionChanged(true);
|
124
|
+
}
|
125
|
+
});
|
126
|
+
emit('update:modelValue', selected.value);
|
124
127
|
},
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
128
|
+
});
|
129
|
+
const clearSelectionAction = reactive({
|
130
|
+
name: 'list.clearSelection',
|
131
|
+
tooltip: 'list.clearSelection',
|
132
|
+
disabled: selected.value.length < 1,
|
133
|
+
callback() {
|
134
|
+
[...selected.value].forEach((item) => {
|
135
|
+
if (item.selectionChanged) {
|
136
|
+
item.selectionChanged(false);
|
137
|
+
}
|
138
|
+
});
|
139
|
+
selected.value = [];
|
140
|
+
emit('update:modelValue', selected.value);
|
137
141
|
},
|
138
|
-
|
142
|
+
});
|
143
|
+
|
144
|
+
watch(
|
145
|
+
[items, selected],
|
146
|
+
() => {
|
147
|
+
selectAllAction.disabled =
|
148
|
+
items.value.length - selected.value.length < 1;
|
149
|
+
clearSelectionAction.disabled = selected.value.length < 1;
|
150
|
+
},
|
151
|
+
{ deep: false, immediate: true },
|
152
|
+
);
|
153
|
+
|
154
|
+
return [selectAllAction, clearSelectionAction];
|
139
155
|
}
|
140
156
|
|
141
157
|
/**
|
@@ -170,10 +186,11 @@
|
|
170
186
|
* @vue-prop {string} [tooltip] - tooltip to render on the list title
|
171
187
|
* @vue-prop {Array<import("../../actions/actionHelper.js").VcsAction>} [actions] - actions to render in the list title
|
172
188
|
* @vue-event {ItemMovedEvent} item-moved - event triggered after item was dragged and is dropped
|
173
|
-
* @vue-data {slot} [#item.prepend
|
174
|
-
* @vue-data {slot} [#item.title] - A slot
|
175
|
-
* @vue-data {slot} [#item.
|
176
|
-
* @vue-data {slot} [#item.
|
189
|
+
* @vue-data {slot} [#item.prepend] - A slot that forwads to v-list-item prepend slot. Binds v-list-item append slot props, item and item index.
|
190
|
+
* @vue-data {slot} [#item.title] - A slot that forwards to v-list-item title slot. Binds v-list-item title slot props, item and item index.
|
191
|
+
* @vue-data {slot} [#item.subtitle] - A slot that forwards to v-list-item subtitle slot. Binds v-list-item subtitle slot props, item and item index.
|
192
|
+
* @vue-data {slot} [#item.append] - A slot that forwards to v-list-item append slot. Binds v-list-item append slot props, item and item index.
|
193
|
+
* @vue-data {slot} [#item.intermediate] - A slot to introduce content, e.g. buttons between two list items. Binds item and item index.
|
177
194
|
*/
|
178
195
|
export default {
|
179
196
|
name: 'VcsList',
|
@@ -568,7 +585,7 @@
|
|
568
585
|
}
|
569
586
|
&:hover {
|
570
587
|
.v-list-item__overlay {
|
571
|
-
background-color: rgb(var(--v-theme-
|
588
|
+
background-color: rgb(var(--v-theme-on-surface));
|
572
589
|
}
|
573
590
|
}
|
574
591
|
.vcs-list-title__selected {
|
@@ -589,7 +606,7 @@
|
|
589
606
|
|
590
607
|
&:hover {
|
591
608
|
.v-list-item__overlay {
|
592
|
-
background-color:
|
609
|
+
background-color: rgb(var(--v-theme-on-surface));
|
593
610
|
}
|
594
611
|
}
|
595
612
|
}
|
@@ -94,13 +94,15 @@
|
|
94
94
|
v-bind="$attrs"
|
95
95
|
class="vcs-list-item-component"
|
96
96
|
>
|
97
|
-
<template #prepend>
|
98
|
-
<
|
99
|
-
|
100
|
-
|
97
|
+
<template #prepend="scope">
|
98
|
+
<slot name="prepend" v-bind="scope">
|
99
|
+
<v-icon v-if="item.icon">
|
100
|
+
{{ item.icon }}
|
101
|
+
</v-icon>
|
102
|
+
</slot>
|
101
103
|
</template>
|
102
|
-
<template #title>
|
103
|
-
<slot name="title" v-bind="{
|
104
|
+
<template #title="scope">
|
105
|
+
<slot name="title" v-bind="{ ...scope, tooltip }">
|
104
106
|
<v-list-item-title
|
105
107
|
ref="title"
|
106
108
|
:class="{ 'vcs-list-item__rename': rename }"
|
@@ -125,17 +127,17 @@
|
|
125
127
|
</v-list-item-title>
|
126
128
|
</slot>
|
127
129
|
</template>
|
128
|
-
<template #subtitle>
|
129
|
-
<slot name="subtitle" v-bind="
|
130
|
+
<template #subtitle="scope">
|
131
|
+
<slot name="subtitle" v-bind="scope" />
|
130
132
|
</template>
|
131
133
|
<template #default="scope">
|
132
|
-
<slot name="default" v-bind="{ ...scope,
|
134
|
+
<slot name="default" v-bind="{ ...scope, tooltip }" />
|
133
135
|
</template>
|
134
|
-
<template #append="
|
136
|
+
<template #append="scope">
|
135
137
|
<slot
|
136
138
|
name="append"
|
137
139
|
v-bind="{
|
138
|
-
...
|
140
|
+
...scope,
|
139
141
|
item,
|
140
142
|
actions,
|
141
143
|
actionButtonListOverflowCount,
|
@@ -205,7 +207,7 @@
|
|
205
207
|
width: 8px;
|
206
208
|
}
|
207
209
|
:deep(.v-list-item__overlay) {
|
208
|
-
background-color:
|
210
|
+
background-color: rgb(var(--v-theme-on-surface));
|
209
211
|
}
|
210
212
|
:deep(.vcs-list-item__rename) {
|
211
213
|
color: rgb(var(--v-theme-on-surface));
|
@@ -3,34 +3,11 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{}
|
|
3
3
|
readonly [x: string]: any;
|
4
4
|
};
|
5
5
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>, {
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
subtitle?(_: {
|
12
|
-
item: any;
|
13
|
-
}): any;
|
14
|
-
default?(_: {
|
15
|
-
item: any;
|
16
|
-
dragging: any;
|
17
|
-
tooltip: string;
|
18
|
-
isActive: boolean;
|
19
|
-
isOpen: boolean;
|
20
|
-
isSelected: boolean;
|
21
|
-
isIndeterminate: boolean;
|
22
|
-
select: (value: boolean) => void;
|
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;
|
6
|
+
prepend?(_: any): any;
|
7
|
+
title?(_: any): any;
|
8
|
+
subtitle?(_: any): any;
|
9
|
+
default?(_: any): any;
|
10
|
+
append?(_: any): any;
|
34
11
|
}>;
|
35
12
|
export default _default;
|
36
13
|
export type VcsListItem = {
|
@@ -92,6 +92,8 @@
|
|
92
92
|
width: var(--v-vcs-font-size);
|
93
93
|
height: var(--v-vcs-font-size);
|
94
94
|
margin: auto;
|
95
|
+
// for alignment of chevron
|
96
|
+
display: flex;
|
95
97
|
}
|
96
98
|
}
|
97
99
|
|
@@ -118,7 +120,7 @@
|
|
118
120
|
import { VIcon } from 'vuetify/components';
|
119
121
|
import { VTreeview } from 'vuetify/labs/VTreeview';
|
120
122
|
import { useProxiedAtomicModel } from '../modelHelper.js';
|
121
|
-
import {
|
123
|
+
import { getForwardSlots } from '../composables.js';
|
122
124
|
import VcsTreeviewSearchbar from './VcsTreeviewSearchbar.vue';
|
123
125
|
import VcsActionButtonList from '../buttons/VcsActionButtonList.vue';
|
124
126
|
import ImageElementInjector from '../ImageElementInjector.vue';
|
@@ -184,7 +186,7 @@
|
|
184
186
|
.indexOf(q.toLocaleLowerCase());
|
185
187
|
};
|
186
188
|
|
187
|
-
const forwardSlots =
|
189
|
+
const forwardSlots = getForwardSlots(slots, [
|
188
190
|
'append',
|
189
191
|
'title',
|
190
192
|
'prepend',
|
@@ -19,7 +19,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
19
19
|
iconSize: import("vue").ComputedRef<number>;
|
20
20
|
localSearchValue: import("vue").Ref<any>;
|
21
21
|
handleFilter: (value: string, q: string, item: Object) => number;
|
22
|
-
forwardSlots:
|
22
|
+
forwardSlots: string[];
|
23
23
|
itemClicked(name: any, event: any): void;
|
24
24
|
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:search"[], "update:search", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
25
25
|
items: {
|
@@ -0,0 +1,48 @@
|
|
1
|
+
<template>
|
2
|
+
<v-tooltip class="vcs-help-tooltip">
|
3
|
+
<template #activator="{ props }">
|
4
|
+
<v-icon :size="fontSize" v-bind="props" :icon="icon" />
|
5
|
+
</template>
|
6
|
+
<v-container class="py-1 px-2 vcs-help-tooltip-container">
|
7
|
+
<slot>
|
8
|
+
<span class="vcs-help-tooltip-text">{{ $st(text) }}</span>
|
9
|
+
</slot>
|
10
|
+
</v-container>
|
11
|
+
</v-tooltip>
|
12
|
+
</template>
|
13
|
+
<style lang="scss" scoped></style>
|
14
|
+
<script>
|
15
|
+
import { VTooltip, VIcon, VContainer } from 'vuetify/components';
|
16
|
+
import { useFontSize } from '../../vuePlugins/vuetify.js';
|
17
|
+
|
18
|
+
/**
|
19
|
+
* @description A component for displaying help as tooltip via an icon.
|
20
|
+
* @vue-data {slot} [#default] - Slot to specify html based help. Gets precedence over text prop.
|
21
|
+
* @vue-prop {string} [text] - Optional help text. Must be plain string. Use 'help' slot for html based help texts. Help slot has precedence over text prop.
|
22
|
+
*/
|
23
|
+
export default {
|
24
|
+
name: 'VcsHelpTooltip',
|
25
|
+
components: {
|
26
|
+
VTooltip,
|
27
|
+
VIcon,
|
28
|
+
VContainer,
|
29
|
+
},
|
30
|
+
props: {
|
31
|
+
icon: {
|
32
|
+
type: String,
|
33
|
+
default: '$vcsHelp',
|
34
|
+
},
|
35
|
+
text: {
|
36
|
+
type: String,
|
37
|
+
default: undefined,
|
38
|
+
},
|
39
|
+
},
|
40
|
+
setup() {
|
41
|
+
const fontSize = useFontSize();
|
42
|
+
|
43
|
+
return {
|
44
|
+
fontSize,
|
45
|
+
};
|
46
|
+
},
|
47
|
+
};
|
48
|
+
</script>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{
|
2
|
+
icon: {
|
3
|
+
type: StringConstructor;
|
4
|
+
default: string;
|
5
|
+
};
|
6
|
+
text: {
|
7
|
+
type: StringConstructor;
|
8
|
+
default: undefined;
|
9
|
+
};
|
10
|
+
}, {
|
11
|
+
fontSize: import("vue").ComputedRef<number>;
|
12
|
+
}, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
13
|
+
icon: {
|
14
|
+
type: StringConstructor;
|
15
|
+
default: string;
|
16
|
+
};
|
17
|
+
text: {
|
18
|
+
type: StringConstructor;
|
19
|
+
default: undefined;
|
20
|
+
};
|
21
|
+
}>>, {
|
22
|
+
text: string;
|
23
|
+
icon: string;
|
24
|
+
}, {}>;
|
25
|
+
export default _default;
|