@vcmap/ui 5.0.0-rc.15 → 5.0.0-rc.17
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/buildHelpers.js +7 -1
- package/config/base.config.json +7 -45
- package/config/dev.config.json +5 -1
- package/config/www.config.json +14 -13
- package/dist/assets/{cesium.2e288a.js → cesium.41de56.js} +0 -0
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.8014d3.js → core.af84e3.js} +6077 -4544
- package/dist/assets/core.js +1 -1
- package/dist/assets/{index.3f74fa92.js → index.5b773cad.js} +1 -1
- package/dist/assets/{ol.31c3a5.js → ol.5c7490.js} +0 -0
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui.dffe32.css +1 -0
- package/dist/assets/{ui.36f84f.js → ui.dffe32.js} +7243 -6234
- package/dist/assets/ui.js +1 -1
- package/dist/assets/{vue.a39c10.js → vue.25da17.js} +0 -0
- package/dist/assets/vue.js +2 -2
- package/dist/assets/{vuetify.378637.css → vuetify.e4ece7.css} +1 -1
- package/dist/assets/{vuetify.378637.js → vuetify.e4ece7.js} +5 -2
- package/dist/assets/vuetify.js +2 -2
- package/dist/index.html +1 -1
- package/index.html +77 -0
- package/index.js +18 -3
- package/package.json +4 -2
- package/plugins/@vcmap/create-link/fallbackCreateLink.vue +4 -1
- package/plugins/@vcmap/create-link/index.js +4 -1
- package/plugins/@vcmap/pluginExample/exampleActions.js +45 -0
- package/plugins/@vcmap/pluginExample/index.js +26 -2
- package/plugins/@vcmap/pluginExample/pluginExampleComponent.vue +77 -42
- package/plugins/@vcmap/search-nominatim/nominatim.js +1 -1
- package/plugins/@vcmap/theme-changer/ThemeChangerComponent.vue +4 -2
- package/plugins/categoryTest/Categories.vue +27 -13
- package/plugins/categoryTest/Category.vue +7 -1
- package/plugins/categoryTest/index.js +1 -1
- package/plugins/notifier/index.js +31 -0
- package/plugins/notifier/notifierTester.vue +88 -0
- package/plugins/package.json +1 -1
- package/plugins/test/allIconsComponent.vue +5 -5
- package/plugins/test/emptyComponent.vue +1 -1
- package/plugins/test/index.js +27 -3
- package/plugins/test/myCustomHeader.vue +9 -1
- package/plugins/test/testList.vue +290 -0
- package/plugins/test/vcsContent.vue +1 -1
- package/plugins/test/windowManagerExample.vue +12 -7
- package/plugins/wizardExample/index.js +41 -0
- package/plugins/wizardExample/wizardExample.vue +77 -0
- package/src/actions/actionHelper.js +10 -9
- package/src/application/VcsApp.vue +43 -34
- package/src/components/form-inputs-controls/VcsCheckbox.vue +1 -0
- package/src/components/form-inputs-controls/VcsFormSection.vue +23 -15
- package/src/components/form-inputs-controls/VcsSelect.vue +33 -1
- package/src/components/form-inputs-controls/VcsTextField.vue +11 -3
- package/src/components/form-inputs-controls/VcsWizard.vue +133 -0
- package/src/components/imageElementInjector.vue +22 -0
- package/src/components/lists/VcsList.vue +468 -0
- package/src/components/lists/VcsTreeview.vue +1 -2
- package/src/components/lists/VcsTreeviewLeaf.vue +18 -50
- package/src/components/lists/VcsTreeviewSearchbar.vue +1 -23
- package/src/components/tables/VcsTable.vue +13 -1
- package/src/contentTree/LayerTree.vue +1 -1
- package/src/contentTree/contentTreeCollection.js +9 -0
- package/src/contentTree/contentTreeItem.js +13 -13
- package/src/contentTree/layerContentTreeItem.js +1 -1
- package/src/contentTree/subContentTreeItem.js +1 -1
- package/src/contentTree/vcsObjectContentTreeItem.js +1 -1
- package/src/featureInfo/BalloonComponent.vue +13 -8
- package/src/featureInfo/balloonFeatureInfoView.js +16 -22
- package/src/featureInfo/balloonHelper.js +26 -5
- package/src/featureInfo/featureInfo.js +14 -2
- package/src/featureInfo/featureInfoInteraction.js +1 -1
- package/src/i18n/de.js +13 -1
- package/src/i18n/en.js +13 -1
- package/src/icons/+all.js +4 -0
- package/src/icons/WandIcon.vue +63 -0
- package/src/manager/categoryManager/CategoryComponent.vue +115 -0
- package/src/manager/categoryManager/CategoryComponentList.vue +57 -0
- package/src/manager/categoryManager/CategoryManager.vue +35 -0
- package/src/manager/categoryManager/categoryManager.js +251 -165
- package/src/manager/contextMenu/contextMenuManager.js +8 -2
- package/src/manager/window/WindowComponent.vue +51 -70
- package/src/manager/window/WindowComponentHeader.vue +81 -13
- package/src/manager/window/WindowManager.vue +54 -30
- package/src/manager/window/windowHelper.js +341 -0
- package/src/manager/window/windowManager.js +173 -151
- package/src/navigation/overviewMap.js +10 -9
- package/src/notifier/notifier.js +120 -0
- package/src/notifier/notifierComponent.vue +84 -0
- package/src/styles/variables.scss +19 -3
- package/src/vcsUiApp.js +26 -2
- package/src/vuePlugins/vuetify.js +2 -0
- package/dist/assets/ui.36f84f.css +0 -1
- package/src/manager/categoryManager/ComponentsManager.vue +0 -30
@@ -0,0 +1,63 @@
|
|
1
|
+
<!-- eslint-disable max-len -->
|
2
|
+
|
3
|
+
<template>
|
4
|
+
<svg id="icon_wizard" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
5
|
+
<g id="wand" transform="translate(1.706 1.705)">
|
6
|
+
<g id="Gruppe_1465" data-name="Gruppe 1465" transform="translate(0 10.491)">
|
7
|
+
<g id="Gruppe_1464" data-name="Gruppe 1464">
|
8
|
+
<path id="Pfad_540" data-name="Pfad 540" d="M1.574,22.1a.476.476,0,0,1-.367-.157L.157,20.892a.507.507,0,0,1,0-.734.507.507,0,0,1,.734,0l1.049,1.049a.507.507,0,0,1,0,.734A.476.476,0,0,1,1.574,22.1Z" transform="translate(0 -20)" fill="currentColor" />
|
9
|
+
</g>
|
10
|
+
</g>
|
11
|
+
<g id="Gruppe_1467" data-name="Gruppe 1467" transform="translate(1.049 1.049)">
|
12
|
+
<g id="Gruppe_1466" data-name="Gruppe 1466">
|
13
|
+
<path id="Pfad_541" data-name="Pfad 541" d="M2.525,13.54a.476.476,0,0,1-.367-.157.507.507,0,0,1,0-.734L12.648,2.157a.519.519,0,1,1,.734.734L2.892,13.382A.476.476,0,0,1,2.525,13.54Z" transform="translate(-2 -2)" fill="currentColor" />
|
14
|
+
</g>
|
15
|
+
</g>
|
16
|
+
<g id="Gruppe_1469" data-name="Gruppe 1469" transform="translate(10.491 0)">
|
17
|
+
<g id="Gruppe_1468" data-name="Gruppe 1468">
|
18
|
+
<path id="Pfad_542" data-name="Pfad 542" d="M21.574,2.1a.476.476,0,0,1-.367-.157L20.157.892a.507.507,0,0,1,0-.734.507.507,0,0,1,.734,0l1.049,1.049a.507.507,0,0,1,0,.734A.476.476,0,0,1,21.574,2.1Z" transform="translate(-20 0)" fill="currentColor" />
|
19
|
+
</g>
|
20
|
+
</g>
|
21
|
+
<g id="Gruppe_1471" data-name="Gruppe 1471" transform="translate(0 0)">
|
22
|
+
<g id="Gruppe_1470" data-name="Gruppe 1470">
|
23
|
+
<path id="Pfad_543" data-name="Pfad 543" d="M.525,11.54a.476.476,0,0,1-.367-.157.507.507,0,0,1,0-.734L10.648.157a.507.507,0,0,1,.734,0,.507.507,0,0,1,0,.734L.892,11.382A.476.476,0,0,1,.525,11.54Z" transform="translate(0 0)" fill="currentColor" />
|
24
|
+
</g>
|
25
|
+
</g>
|
26
|
+
<g id="Gruppe_1473" data-name="Gruppe 1473" transform="translate(8.393 2.098)">
|
27
|
+
<g id="Gruppe_1472" data-name="Gruppe 1472">
|
28
|
+
<path id="Pfad_544" data-name="Pfad 544" d="M17.574,6.1a.476.476,0,0,1-.367-.157L16.157,4.892a.519.519,0,0,1,.734-.734l1.049,1.049a.507.507,0,0,1,0,.734A.476.476,0,0,1,17.574,6.1Z" transform="translate(-16 -4)" fill="currentColor" />
|
29
|
+
</g>
|
30
|
+
</g>
|
31
|
+
<g id="Gruppe_1475" data-name="Gruppe 1475" transform="translate(7.344 7.344)">
|
32
|
+
<g id="Gruppe_1474" data-name="Gruppe 1474">
|
33
|
+
<path id="Pfad_545" data-name="Pfad 545" d="M14.525,16.1A.5.5,0,0,1,14,15.574V14.525a.525.525,0,1,1,1.049,0v1.049A.5.5,0,0,1,14.525,16.1Z" transform="translate(-14 -14)" fill="currentColor" />
|
34
|
+
</g>
|
35
|
+
</g>
|
36
|
+
<g id="Gruppe_1477" data-name="Gruppe 1477" transform="translate(7.344)">
|
37
|
+
<g id="Gruppe_1476" data-name="Gruppe 1476">
|
38
|
+
<path id="Pfad_546" data-name="Pfad 546" d="M14.525,2.1A.5.5,0,0,1,14,1.574V.525a.525.525,0,0,1,1.049,0V1.574A.5.5,0,0,1,14.525,2.1Z" transform="translate(-14)" fill="currentColor" />
|
39
|
+
</g>
|
40
|
+
</g>
|
41
|
+
<g id="Gruppe_1479" data-name="Gruppe 1479" transform="translate(3.147 4.196)">
|
42
|
+
<g id="Gruppe_1478" data-name="Gruppe 1478">
|
43
|
+
<path id="Pfad_547" data-name="Pfad 547" d="M7.574,9.049H6.525A.525.525,0,0,1,6.525,8H7.574a.525.525,0,0,1,0,1.049Z" transform="translate(-6 -8)" fill="currentColor" />
|
44
|
+
</g>
|
45
|
+
</g>
|
46
|
+
<g id="Gruppe_1481" data-name="Gruppe 1481" transform="translate(10.491 4.196)">
|
47
|
+
<g id="Gruppe_1480" data-name="Gruppe 1480">
|
48
|
+
<path id="Pfad_548" data-name="Pfad 548" d="M21.574,9.049H20.525a.525.525,0,0,1,0-1.049h1.049a.525.525,0,1,1,0,1.049Z" transform="translate(-20 -8)" fill="currentColor" />
|
49
|
+
</g>
|
50
|
+
</g>
|
51
|
+
<g id="Gruppe_1483" data-name="Gruppe 1483" transform="translate(3.986 0.839)">
|
52
|
+
<g id="Gruppe_1482" data-name="Gruppe 1482">
|
53
|
+
<path id="Pfad_549" data-name="Pfad 549" d="M9.279,3.8a.476.476,0,0,1-.367-.157L7.757,2.492a.519.519,0,0,1,.734-.734l1.1,1.1a.507.507,0,0,1,0,.734A.326.326,0,0,1,9.279,3.8Z" transform="translate(-7.6 -1.6)" fill="currentColor" />
|
54
|
+
</g>
|
55
|
+
</g>
|
56
|
+
<g id="Gruppe_1485" data-name="Gruppe 1485" transform="translate(9.599 6.452)">
|
57
|
+
<g id="Gruppe_1484" data-name="Gruppe 1484">
|
58
|
+
<path id="Pfad_550" data-name="Pfad 550" d="M19.926,14.451a.476.476,0,0,1-.367-.157l-1.1-1.1a.519.519,0,1,1,.734-.734l1.1,1.1a.507.507,0,0,1,0,.734A.567.567,0,0,1,19.926,14.451Z" transform="translate(-18.3 -12.3)" fill="currentColor" />
|
59
|
+
</g>
|
60
|
+
</g>
|
61
|
+
</g>
|
62
|
+
</svg>
|
63
|
+
</template>
|
@@ -0,0 +1,115 @@
|
|
1
|
+
<template>
|
2
|
+
<v-container>
|
3
|
+
<v-row @click="open = !open" class="px-2 py-1 cursor-pointer">
|
4
|
+
<span>
|
5
|
+
<v-icon v-if="open">mdi-chevron-up</v-icon>
|
6
|
+
<v-icon v-else>mdi-chevron-down</v-icon>
|
7
|
+
</span>
|
8
|
+
<span class="flex-grow-1 flex-shrink-1">{{ $t(category.title) }}</span>
|
9
|
+
<vcs-action-button-list
|
10
|
+
v-if="category.actions?.length > 0"
|
11
|
+
:actions="category.actions"
|
12
|
+
small
|
13
|
+
/>
|
14
|
+
</v-row>
|
15
|
+
<template v-if="open">
|
16
|
+
<v-row>
|
17
|
+
<v-col class="pa-0">
|
18
|
+
<vcs-list
|
19
|
+
:items="category.items.slice(0, 10)"
|
20
|
+
:selectable="category.selectable"
|
21
|
+
:single-select="category.singleSelect"
|
22
|
+
v-model="selection"
|
23
|
+
:show-title="false"
|
24
|
+
/>
|
25
|
+
</v-col>
|
26
|
+
</v-row>
|
27
|
+
<v-row v-if="category.items.length > 10">
|
28
|
+
<v-col class="pa-0">
|
29
|
+
<VcsButton @click="openCategoryItemWindow" class="pa-2" small>
|
30
|
+
{{ $t('categoryManager.more') }}
|
31
|
+
</VcsButton>
|
32
|
+
</v-col>
|
33
|
+
</v-row>
|
34
|
+
<v-row v-else-if="category.items.length === 0">
|
35
|
+
<v-col class="pa-2">
|
36
|
+
{{ $t('categoryManager.empty') }}
|
37
|
+
</v-col>
|
38
|
+
</v-row>
|
39
|
+
</template>
|
40
|
+
</v-container>
|
41
|
+
</template>
|
42
|
+
|
43
|
+
<script>
|
44
|
+
import { computed, inject, ref } from 'vue';
|
45
|
+
import { VIcon, VContainer, VRow, VCol } from 'vuetify/lib';
|
46
|
+
import VcsList from '../../components/lists/VcsList.vue';
|
47
|
+
import VcsActionButtonList from '../../components/buttons/VcsActionButtonList.vue';
|
48
|
+
import VcsButton from '../../components/buttons/VcsButton.vue';
|
49
|
+
import { vcsAppSymbol } from '../../pluginHelper.js';
|
50
|
+
import CategoryComponentList from './CategoryComponentList.vue';
|
51
|
+
import { WindowSlot } from '../window/windowManager.js';
|
52
|
+
|
53
|
+
export default {
|
54
|
+
name: 'CategoryComponent',
|
55
|
+
components: {
|
56
|
+
VcsActionButtonList,
|
57
|
+
VcsList,
|
58
|
+
VContainer,
|
59
|
+
VRow,
|
60
|
+
VcsButton,
|
61
|
+
VCol,
|
62
|
+
VIcon,
|
63
|
+
},
|
64
|
+
props: {
|
65
|
+
/** @type {ManagedCategory} */
|
66
|
+
category: {
|
67
|
+
type: Object,
|
68
|
+
required: true,
|
69
|
+
},
|
70
|
+
},
|
71
|
+
setup({ category }) {
|
72
|
+
/** @type {VcsUiApp} */
|
73
|
+
const app = inject('vcsApp');
|
74
|
+
const windowId = `${category.id}-category-list`;
|
75
|
+
const open = ref(false);
|
76
|
+
|
77
|
+
const selection = computed({
|
78
|
+
get() { return category.selection; },
|
79
|
+
set(value) {
|
80
|
+
// eslint-disable-next-line vue/no-mutating-props
|
81
|
+
category.selection = value;
|
82
|
+
},
|
83
|
+
});
|
84
|
+
|
85
|
+
return {
|
86
|
+
selection,
|
87
|
+
open,
|
88
|
+
openCategoryItemWindow() {
|
89
|
+
if (app.windowManager.has(windowId)) {
|
90
|
+
setTimeout(() => {
|
91
|
+
app.windowManager.bringWindowToTop(windowId);
|
92
|
+
}, 0);
|
93
|
+
} else {
|
94
|
+
app.windowManager.add({
|
95
|
+
id: windowId,
|
96
|
+
component: CategoryComponentList,
|
97
|
+
props: {
|
98
|
+
category,
|
99
|
+
windowId,
|
100
|
+
},
|
101
|
+
provides: {
|
102
|
+
selection,
|
103
|
+
},
|
104
|
+
slot: WindowSlot.DYNAMIC_LEFT,
|
105
|
+
}, vcsAppSymbol);
|
106
|
+
}
|
107
|
+
},
|
108
|
+
};
|
109
|
+
},
|
110
|
+
};
|
111
|
+
</script>
|
112
|
+
|
113
|
+
<style scoped>
|
114
|
+
|
115
|
+
</style>
|
@@ -0,0 +1,57 @@
|
|
1
|
+
<template>
|
2
|
+
<vcs-list
|
3
|
+
:items="category.items"
|
4
|
+
:selectable="category.selectable"
|
5
|
+
:single-select="category.singleSelect"
|
6
|
+
v-model="selection"
|
7
|
+
:title="category.title"
|
8
|
+
/>
|
9
|
+
</template>
|
10
|
+
|
11
|
+
<script>
|
12
|
+
import { computed, inject, watch } from 'vue';
|
13
|
+
import VcsList from '../../components/lists/VcsList.vue';
|
14
|
+
|
15
|
+
export default {
|
16
|
+
name: 'CategoryComponenList',
|
17
|
+
components: {
|
18
|
+
VcsList,
|
19
|
+
},
|
20
|
+
props: {
|
21
|
+
category: {
|
22
|
+
type: Object,
|
23
|
+
required: true,
|
24
|
+
},
|
25
|
+
windowId: {
|
26
|
+
type: String,
|
27
|
+
required: true,
|
28
|
+
},
|
29
|
+
},
|
30
|
+
setup({ category, windowId }) {
|
31
|
+
/** @type {VcsUiApp} */
|
32
|
+
const app = inject('vcsApp');
|
33
|
+
|
34
|
+
const selection = computed({
|
35
|
+
get() { return category.selection; },
|
36
|
+
set(value) {
|
37
|
+
// eslint-disable-next-line vue/no-mutating-props
|
38
|
+
category.selection = value;
|
39
|
+
},
|
40
|
+
});
|
41
|
+
|
42
|
+
watch(app.categoryManager.componentIds, () => {
|
43
|
+
if (!app.categoryManager.get(category.id)) {
|
44
|
+
app.windowManager.remove(windowId);
|
45
|
+
}
|
46
|
+
});
|
47
|
+
|
48
|
+
return {
|
49
|
+
selection,
|
50
|
+
};
|
51
|
+
},
|
52
|
+
};
|
53
|
+
</script>
|
54
|
+
|
55
|
+
<style scoped>
|
56
|
+
|
57
|
+
</style>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<template>
|
2
|
+
<div
|
3
|
+
v-if="categories.length > 0"
|
4
|
+
>
|
5
|
+
<category-component
|
6
|
+
v-for="category in categories"
|
7
|
+
:category="category"
|
8
|
+
:key="category.categoryName"
|
9
|
+
/>
|
10
|
+
</div>
|
11
|
+
</template>
|
12
|
+
|
13
|
+
<script>
|
14
|
+
import { inject, ref, computed } from 'vue';
|
15
|
+
import CategoryComponent from './CategoryComponent.vue';
|
16
|
+
|
17
|
+
/**
|
18
|
+
* @description
|
19
|
+
* uses a VcsList and renders 'a components Window' based on the "categoryManager"
|
20
|
+
* Uses the provided 'vcsApp'
|
21
|
+
*/
|
22
|
+
export default {
|
23
|
+
name: 'CategoryManager',
|
24
|
+
components: { CategoryComponent },
|
25
|
+
setup() {
|
26
|
+
const app = inject('vcsApp');
|
27
|
+
const categoryIds = ref(app.categoryManager.componentIds);
|
28
|
+
const categories = computed(() => categoryIds.value.map(id => app.categoryManager.get(id)));
|
29
|
+
|
30
|
+
return {
|
31
|
+
categories,
|
32
|
+
};
|
33
|
+
},
|
34
|
+
};
|
35
|
+
</script>
|