@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.
Files changed (91) hide show
  1. package/build/buildHelpers.js +7 -1
  2. package/config/base.config.json +7 -45
  3. package/config/dev.config.json +5 -1
  4. package/config/www.config.json +14 -13
  5. package/dist/assets/{cesium.2e288a.js → cesium.41de56.js} +0 -0
  6. package/dist/assets/cesium.js +1 -1
  7. package/dist/assets/{core.8014d3.js → core.af84e3.js} +6077 -4544
  8. package/dist/assets/core.js +1 -1
  9. package/dist/assets/{index.3f74fa92.js → index.5b773cad.js} +1 -1
  10. package/dist/assets/{ol.31c3a5.js → ol.5c7490.js} +0 -0
  11. package/dist/assets/ol.js +1 -1
  12. package/dist/assets/ui.dffe32.css +1 -0
  13. package/dist/assets/{ui.36f84f.js → ui.dffe32.js} +7243 -6234
  14. package/dist/assets/ui.js +1 -1
  15. package/dist/assets/{vue.a39c10.js → vue.25da17.js} +0 -0
  16. package/dist/assets/vue.js +2 -2
  17. package/dist/assets/{vuetify.378637.css → vuetify.e4ece7.css} +1 -1
  18. package/dist/assets/{vuetify.378637.js → vuetify.e4ece7.js} +5 -2
  19. package/dist/assets/vuetify.js +2 -2
  20. package/dist/index.html +1 -1
  21. package/index.html +77 -0
  22. package/index.js +18 -3
  23. package/package.json +4 -2
  24. package/plugins/@vcmap/create-link/fallbackCreateLink.vue +4 -1
  25. package/plugins/@vcmap/create-link/index.js +4 -1
  26. package/plugins/@vcmap/pluginExample/exampleActions.js +45 -0
  27. package/plugins/@vcmap/pluginExample/index.js +26 -2
  28. package/plugins/@vcmap/pluginExample/pluginExampleComponent.vue +77 -42
  29. package/plugins/@vcmap/search-nominatim/nominatim.js +1 -1
  30. package/plugins/@vcmap/theme-changer/ThemeChangerComponent.vue +4 -2
  31. package/plugins/categoryTest/Categories.vue +27 -13
  32. package/plugins/categoryTest/Category.vue +7 -1
  33. package/plugins/categoryTest/index.js +1 -1
  34. package/plugins/notifier/index.js +31 -0
  35. package/plugins/notifier/notifierTester.vue +88 -0
  36. package/plugins/package.json +1 -1
  37. package/plugins/test/allIconsComponent.vue +5 -5
  38. package/plugins/test/emptyComponent.vue +1 -1
  39. package/plugins/test/index.js +27 -3
  40. package/plugins/test/myCustomHeader.vue +9 -1
  41. package/plugins/test/testList.vue +290 -0
  42. package/plugins/test/vcsContent.vue +1 -1
  43. package/plugins/test/windowManagerExample.vue +12 -7
  44. package/plugins/wizardExample/index.js +41 -0
  45. package/plugins/wizardExample/wizardExample.vue +77 -0
  46. package/src/actions/actionHelper.js +10 -9
  47. package/src/application/VcsApp.vue +43 -34
  48. package/src/components/form-inputs-controls/VcsCheckbox.vue +1 -0
  49. package/src/components/form-inputs-controls/VcsFormSection.vue +23 -15
  50. package/src/components/form-inputs-controls/VcsSelect.vue +33 -1
  51. package/src/components/form-inputs-controls/VcsTextField.vue +11 -3
  52. package/src/components/form-inputs-controls/VcsWizard.vue +133 -0
  53. package/src/components/imageElementInjector.vue +22 -0
  54. package/src/components/lists/VcsList.vue +468 -0
  55. package/src/components/lists/VcsTreeview.vue +1 -2
  56. package/src/components/lists/VcsTreeviewLeaf.vue +18 -50
  57. package/src/components/lists/VcsTreeviewSearchbar.vue +1 -23
  58. package/src/components/tables/VcsTable.vue +13 -1
  59. package/src/contentTree/LayerTree.vue +1 -1
  60. package/src/contentTree/contentTreeCollection.js +9 -0
  61. package/src/contentTree/contentTreeItem.js +13 -13
  62. package/src/contentTree/layerContentTreeItem.js +1 -1
  63. package/src/contentTree/subContentTreeItem.js +1 -1
  64. package/src/contentTree/vcsObjectContentTreeItem.js +1 -1
  65. package/src/featureInfo/BalloonComponent.vue +13 -8
  66. package/src/featureInfo/balloonFeatureInfoView.js +16 -22
  67. package/src/featureInfo/balloonHelper.js +26 -5
  68. package/src/featureInfo/featureInfo.js +14 -2
  69. package/src/featureInfo/featureInfoInteraction.js +1 -1
  70. package/src/i18n/de.js +13 -1
  71. package/src/i18n/en.js +13 -1
  72. package/src/icons/+all.js +4 -0
  73. package/src/icons/WandIcon.vue +63 -0
  74. package/src/manager/categoryManager/CategoryComponent.vue +115 -0
  75. package/src/manager/categoryManager/CategoryComponentList.vue +57 -0
  76. package/src/manager/categoryManager/CategoryManager.vue +35 -0
  77. package/src/manager/categoryManager/categoryManager.js +251 -165
  78. package/src/manager/contextMenu/contextMenuManager.js +8 -2
  79. package/src/manager/window/WindowComponent.vue +51 -70
  80. package/src/manager/window/WindowComponentHeader.vue +81 -13
  81. package/src/manager/window/WindowManager.vue +54 -30
  82. package/src/manager/window/windowHelper.js +341 -0
  83. package/src/manager/window/windowManager.js +173 -151
  84. package/src/navigation/overviewMap.js +10 -9
  85. package/src/notifier/notifier.js +120 -0
  86. package/src/notifier/notifierComponent.vue +84 -0
  87. package/src/styles/variables.scss +19 -3
  88. package/src/vcsUiApp.js +26 -2
  89. package/src/vuePlugins/vuetify.js +2 -0
  90. package/dist/assets/ui.36f84f.css +0 -1
  91. 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>