@vcmap/ui 6.1.0-rc.7 → 6.1.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/config/base.config.json +7 -3
- package/config/cluster.config.json +1 -1
- package/config/dev.config.json +172 -56
- package/config/projects.config.json +2 -1
- package/config/vectorTile.config.json +42 -1
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core-52c2ef11.js → core-841b71a4.js} +7544 -5485
- package/dist/assets/core.js +1 -1
- package/dist/assets/ol.js +1 -1
- package/dist/assets/{ui-dccb9009.css → ui-2fd6f47d.css} +1 -1
- package/dist/assets/{ui-dccb9009.js → ui-2fd6f47d.js} +21402 -20661
- package/dist/assets/ui.js +1 -1
- package/dist/assets/vue.js +1 -1
- package/dist/assets/{vuetify-43a20e18.css → vuetify-4bc77ff7.css} +2 -2
- package/dist/assets/{vuetify-43a20e18.js → vuetify-4bc77ff7.js} +6694 -6593
- package/dist/assets/vuetify.js +1 -1
- package/index.d.ts +13 -5
- package/index.js +13 -5
- package/package.json +9 -8
- package/plugins/@vcmap-show-case/vector-properties-example/src/LayerSettings.vue +39 -0
- package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +3 -0
- package/plugins/@vcmap-show-case/vector-properties-example/src/lib.js +13 -0
- package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +9 -0
- package/plugins/package.json +7 -5
- package/src/actions/actionHelper.d.ts +6 -0
- package/src/actions/actionHelper.js +22 -0
- package/src/actions/deepPickingAction.d.ts +23 -0
- package/src/actions/deepPickingAction.js +399 -0
- package/src/application/VcsApp.vue +3 -0
- package/src/application/VcsApp.vue.d.ts +4 -0
- package/src/application/VcsAttributionsFooter.vue +1 -0
- package/src/application/VcsContainer.vue +1 -0
- package/src/application/VcsContainer.vue.d.ts +4 -0
- package/src/application/VcsMobileMenuList.vue +34 -41
- package/src/application/VcsNavbar.vue +3 -0
- package/src/application/VcsNavbarMobile.vue +6 -18
- package/src/application/VcsNavbarMobile.vue.d.ts +0 -1
- package/src/application/VcsPositionDisplay.vue +1 -0
- package/src/components/buttons/VcsActionButtonList.vue +1 -0
- package/src/components/form-inputs-controls/VcsSelect.vue +8 -6
- package/src/components/icons/+all.d.ts +5 -0
- package/src/components/icons/+all.js +14 -0
- package/src/components/lists/VcsActionList.vue +1 -0
- package/src/components/lists/VcsGroupedList.vue +2 -1
- package/src/components/lists/VcsListItemComponent.vue +1 -0
- package/src/components/lists/VcsTreeNode.vue +5 -1
- package/src/components/lists/VcsTreeview.vue +4 -1
- package/src/components/style/{MenuWrapper.vue → StyleMenuWrapper.vue} +2 -1
- package/src/components/style/VcsFillMenu.vue +4 -4
- package/src/components/style/VcsImageMenu.vue +4 -4
- package/src/components/style/VcsStrokeMenu.vue +4 -4
- package/src/components/style/VcsTextMenu.vue +4 -4
- package/src/contentTree/LayerTree.vue +8 -46
- package/src/contentTree/LayerTree.vue.d.ts +1 -3
- package/src/contentTree/contentTreeCollection.d.ts +7 -0
- package/src/contentTree/contentTreeCollection.js +30 -10
- package/src/contentTree/contentTreeItem.d.ts +4 -4
- package/src/contentTree/contentTreeItem.js +2 -2
- package/src/contentTree/groupContentTreeItem.d.ts +5 -0
- package/src/contentTree/groupContentTreeItem.js +1 -1
- package/src/contentTree/layerContentTreeItem.js +1 -1
- package/src/contentTree/nodeContentTreeItem.d.ts +21 -0
- package/src/contentTree/nodeContentTreeItem.js +31 -2
- package/src/contentTree/wmsChildContentTreeItem.d.ts +56 -0
- package/src/contentTree/wmsChildContentTreeItem.js +159 -0
- package/src/contentTree/wmsGroupContentTreeItem.d.ts +171 -0
- package/src/contentTree/wmsGroupContentTreeItem.js +619 -0
- package/src/featureInfo/ClusterFeatureComponent.vue +47 -11
- package/src/featureInfo/ClusterFeatureComponent.vue.d.ts +1 -0
- package/src/featureInfo/balloonFeatureInfoView.d.ts +3 -0
- package/src/featureInfo/balloonFeatureInfoView.js +78 -11
- package/src/featureInfo/balloonHelper.js +8 -12
- package/src/featureInfo/featureInfo.d.ts +32 -7
- package/src/featureInfo/featureInfo.js +190 -90
- package/src/i18n/de.d.ts +22 -16
- package/src/i18n/de.js +4 -0
- package/src/i18n/en.d.ts +22 -16
- package/src/i18n/en.js +4 -0
- package/src/manager/toolbox/GroupToolboxComponent.vue +1 -0
- package/src/manager/toolbox/SelectToolboxComponent.vue +2 -0
- package/src/manager/toolbox/ToolboxManagerComponent.vue +1 -0
- package/src/manager/window/windowManager.d.ts +2 -2
- package/src/manager/window/windowManager.js +12 -10
- package/src/navigation/MapNavigation.vue +3 -1
- package/src/notifier/NotifierComponent.vue +1 -0
- package/src/search/search.js +3 -16
- package/src/state.d.ts +2 -1
- package/src/state.js +2 -1
- package/src/uiConfig.d.ts +9 -0
- package/src/uiConfig.js +1 -0
- /package/dist/assets/{cesium-6c6aa853.js → cesium-664ad022.js} +0 -0
- /package/dist/assets/{ol-b0589b0c.js → ol-2e095c08.js} +0 -0
- /package/dist/assets/{vue-f7a0b088.js → vue-71fd14e8.js} +0 -0
- /package/src/components/style/{MenuWrapper.vue.d.ts → StyleMenuWrapper.vue.d.ts} +0 -0
package/dist/assets/vuetify.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export * from "./vuetify-
|
1
|
+
export * from "./vuetify-4bc77ff7.js";
|
package/index.d.ts
CHANGED
@@ -39,10 +39,14 @@ export { default as ContentTreeItem } from "./src/contentTree/contentTreeItem.js
|
|
39
39
|
export type * from "./src/contentTree/contentTreeItem.d.ts";
|
40
40
|
export { default as GroupContentTreeItem } from "./src/contentTree/groupContentTreeItem.js";
|
41
41
|
export type * from "./src/contentTree/groupContentTreeItem.d.ts";
|
42
|
+
export { default as WMSGroupContentTreeItem } from "./src/contentTree/wmsGroupContentTreeItem.js";
|
43
|
+
export type * from "./src/contentTree/wmsGroupContentTreeItem.d.ts";
|
42
44
|
export { default as LayerGroupContentTreeItem } from "./src/contentTree/layerGroupContentTreeItem.js";
|
43
45
|
export type * from "./src/contentTree/layerGroupContentTreeItem.d.ts";
|
44
46
|
export { default as FlightContentTreeItem } from "./src/contentTree/flightContentTreeItem.js";
|
45
47
|
export type * from "./src/contentTree/flightContentTreeItem.d.ts";
|
48
|
+
export { default as LayerTree } from "./src/contentTree/LayerTree.vue";
|
49
|
+
export type * from "./src/contentTree/LayerTree.vue.d.ts";
|
46
50
|
export { default as NodeContentTreeItem } from "./src/contentTree/nodeContentTreeItem.js";
|
47
51
|
export type * from "./src/contentTree/nodeContentTreeItem.d.ts";
|
48
52
|
export { default as ObliqueCollectionContentTreeItem } from "./src/contentTree/obliqueCollectionContentTreeItem.js";
|
@@ -127,8 +131,6 @@ export { default as UiConfig } from "./src/uiConfig.js";
|
|
127
131
|
export type * from "./src/uiConfig.d.ts";
|
128
132
|
export { default as VcsUiApp } from "./src/vcsUiApp.js";
|
129
133
|
export type * from "./src/vcsUiApp.d.ts";
|
130
|
-
export { default as Icons } from "./src/components/icons/+all.js";
|
131
|
-
export type * from "./src/components/icons/+all.d.ts";
|
132
134
|
export { default as VcsButton } from "./src/components/buttons/VcsButton.vue";
|
133
135
|
export type * from "./src/components/buttons/VcsButton.vue.d.ts";
|
134
136
|
export { default as VcsToolButton } from "./src/components/buttons/VcsToolButton.vue";
|
@@ -139,6 +141,8 @@ export { default as VcsActionButtonList } from "./src/components/buttons/VcsActi
|
|
139
141
|
export type * from "./src/components/buttons/VcsActionButtonList.vue.d.ts";
|
140
142
|
export { default as VcsHelp } from "./src/components/notification/VcsHelp.vue";
|
141
143
|
export type * from "./src/components/notification/VcsHelp.vue.d.ts";
|
144
|
+
export { default as VcsHelpTooltip } from "./src/components/notification/VcsHelpTooltip.vue";
|
145
|
+
export type * from "./src/components/notification/VcsHelpTooltip.vue.d.ts";
|
142
146
|
export { default as VcsTable } from "./src/components/tables/VcsTable.vue";
|
143
147
|
export type * from "./src/components/tables/VcsTable.vue.d.ts";
|
144
148
|
export { default as VcsDataTable } from "./src/components/tables/VcsDataTable.vue";
|
@@ -205,6 +209,8 @@ export { default as VcsTreeviewSearchbar } from "./src/components/lists/VcsTreev
|
|
205
209
|
export type * from "./src/components/lists/VcsTreeviewSearchbar.vue.d.ts";
|
206
210
|
export { default as VcsBadge } from "./src/components/notification/VcsBadge.vue";
|
207
211
|
export type * from "./src/components/notification/VcsBadge.vue.d.ts";
|
212
|
+
export { default as StyleMenuWrapper } from "./src/components/style/StyleMenuWrapper.vue";
|
213
|
+
export type * from "./src/components/style/StyleMenuWrapper.vue.d.ts";
|
208
214
|
export { default as VcsFillSelector } from "./src/components/style/VcsFillSelector.vue";
|
209
215
|
export type * from "./src/components/style/VcsFillSelector.vue.d.ts";
|
210
216
|
export { default as VcsFillMenu } from "./src/components/style/VcsFillMenu.vue";
|
@@ -263,8 +269,10 @@ export { default as ResultItemComponent } from "./src/search/ResultItem.vue";
|
|
263
269
|
export type * from "./src/search/ResultItem.vue.d.ts";
|
264
270
|
export { default as ResultsComponent } from "./src/search/ResultsComponent.vue";
|
265
271
|
export type * from "./src/search/ResultsComponent.vue.d.ts";
|
266
|
-
export { createMapButtonAction, createToggleAction, createOverviewMapAction, createModalAction, createLinkAction, createGoToViewpointAction, createZoomToFeatureAction, searchComponentId } from "./src/actions/actionHelper.js";
|
272
|
+
export { callSafeAction, createMapButtonAction, createToggleAction, createOverviewMapAction, createModalAction, createLinkAction, createGoToViewpointAction, createZoomToFeatureAction, searchComponentId } from "./src/actions/actionHelper.js";
|
267
273
|
export type * from "./src/actions/actionHelper.d.ts";
|
274
|
+
export { createDeepPickingAction, deepPickingWindowId } from "./src/actions/deepPickingAction.js";
|
275
|
+
export type * from "./src/actions/deepPickingAction.d.ts";
|
268
276
|
export { createStateRefAction, StateActionState } from "./src/actions/stateRefAction.js";
|
269
277
|
export type * from "./src/actions/stateRefAction.d.ts";
|
270
278
|
export { createLayerToggleAction, createZoomToExtentAction, createExtentFeatureAction, setupExtentComponentActions } from "./src/actions/extentActions.js";
|
@@ -281,8 +289,6 @@ export { default as ContentTreeCollection, createContentTreeCollection, defaultC
|
|
281
289
|
export type * from "./src/contentTree/contentTreeCollection.d.ts";
|
282
290
|
export { default as LayerContentTreeItem, setViewpointAction, getStateFromLayer } from "./src/contentTree/layerContentTreeItem.js";
|
283
291
|
export type * from "./src/contentTree/layerContentTreeItem.d.ts";
|
284
|
-
export { default as LayerTree, openStateMapSymbol } from "./src/contentTree/LayerTree.vue";
|
285
|
-
export type * from "./src/contentTree/LayerTree.vue.d.ts";
|
286
292
|
export { default as WindowManager, WindowSlot, WindowPositions, posToPixel, windowPositionFromOptions } from "./src/manager/window/windowManager.js";
|
287
293
|
export type * from "./src/manager/window/windowManager.d.ts";
|
288
294
|
export { WindowAlignment, getFittedWindowPositionOptions, getFittedWindowPositionOptionsFromMapEvent, getTargetSize, getWindowPositionOptions, getWindowPositionOptionsFromMapEvent, posToNumber, posToPercent, optionsFromWindowPosition, updateWindowPosition, clipToTargetSize, moveWindow, applyParentPosition, getPositionAppliedOnTarget } from "./src/manager/window/windowHelper.js";
|
@@ -327,6 +333,8 @@ export { getStateFromURL, createEmptyState, setStateToUrl } from "./src/state.js
|
|
327
333
|
export type * from "./src/state.d.ts";
|
328
334
|
export { default as Notifier, NotificationType } from "./src/notifier/notifier.js";
|
329
335
|
export type * from "./src/notifier/notifier.d.ts";
|
336
|
+
export { default as Icons, getColoredMapIcon } from "./src/components/icons/+all.js";
|
337
|
+
export type * from "./src/components/icons/+all.d.ts";
|
330
338
|
export { default as VcsActionList, validateAction, validateActions } from "./src/components/lists/VcsActionList.vue";
|
331
339
|
export type * from "./src/components/lists/VcsActionList.vue.d.ts";
|
332
340
|
export { default as VcsVectorStyleComponent, VectorStyleMenus } from "./src/components/style/VcsVectorStyleComponent.vue";
|
package/index.js
CHANGED
@@ -3,6 +3,7 @@ import './src/styles/main.scss';
|
|
3
3
|
|
4
4
|
export { default as StyleSelector } from './src/actions/StyleSelector.vue';
|
5
5
|
export {
|
6
|
+
callSafeAction,
|
6
7
|
createMapButtonAction,
|
7
8
|
createToggleAction,
|
8
9
|
createOverviewMapAction,
|
@@ -12,6 +13,10 @@ export {
|
|
12
13
|
createZoomToFeatureAction,
|
13
14
|
searchComponentId,
|
14
15
|
} from './src/actions/actionHelper.js';
|
16
|
+
export {
|
17
|
+
createDeepPickingAction,
|
18
|
+
deepPickingWindowId,
|
19
|
+
} from './src/actions/deepPickingAction.js';
|
15
20
|
export { parseAndSanitizeMarkdown } from './src/components/form-output/markdownHelper.js';
|
16
21
|
export { renderTemplate } from '@vcmap/core';
|
17
22
|
export {
|
@@ -83,6 +88,7 @@ export {
|
|
83
88
|
} from './src/contentTree/contentTreeCollection.js';
|
84
89
|
export { default as ContentTreeItem } from './src/contentTree/contentTreeItem.js';
|
85
90
|
export { default as GroupContentTreeItem } from './src/contentTree/groupContentTreeItem.js';
|
91
|
+
export { default as WMSGroupContentTreeItem } from './src/contentTree/wmsGroupContentTreeItem.js';
|
86
92
|
export {
|
87
93
|
default as LayerContentTreeItem,
|
88
94
|
setViewpointAction,
|
@@ -90,10 +96,7 @@ export {
|
|
90
96
|
} from './src/contentTree/layerContentTreeItem.js';
|
91
97
|
export { default as LayerGroupContentTreeItem } from './src/contentTree/layerGroupContentTreeItem.js';
|
92
98
|
export { default as FlightContentTreeItem } from './src/contentTree/flightContentTreeItem.js';
|
93
|
-
export {
|
94
|
-
default as LayerTree,
|
95
|
-
openStateMapSymbol,
|
96
|
-
} from './src/contentTree/LayerTree.vue';
|
99
|
+
export { default as LayerTree } from './src/contentTree/LayerTree.vue';
|
97
100
|
export { default as NodeContentTreeItem } from './src/contentTree/nodeContentTreeItem.js';
|
98
101
|
export { default as ObliqueCollectionContentTreeItem } from './src/contentTree/obliqueCollectionContentTreeItem.js';
|
99
102
|
export { default as SubContentTreeItem } from './src/contentTree/subContentTreeItem.js';
|
@@ -264,13 +267,17 @@ export {
|
|
264
267
|
default as Notifier,
|
265
268
|
NotificationType,
|
266
269
|
} from './src/notifier/notifier.js';
|
267
|
-
export {
|
270
|
+
export {
|
271
|
+
default as Icons,
|
272
|
+
getColoredMapIcon,
|
273
|
+
} from './src/components/icons/+all.js';
|
268
274
|
|
269
275
|
export { default as VcsButton } from './src/components/buttons/VcsButton.vue';
|
270
276
|
export { default as VcsToolButton } from './src/components/buttons/VcsToolButton.vue';
|
271
277
|
export { default as VcsFormButton } from './src/components/buttons/VcsFormButton.vue';
|
272
278
|
export { default as VcsActionButtonList } from './src/components/buttons/VcsActionButtonList.vue';
|
273
279
|
export { default as VcsHelp } from './src/components/notification/VcsHelp.vue';
|
280
|
+
export { default as VcsHelpTooltip } from './src/components/notification/VcsHelpTooltip.vue';
|
274
281
|
export { default as VcsTable } from './src/components/tables/VcsTable.vue';
|
275
282
|
export { default as VcsDataTable } from './src/components/tables/VcsDataTable.vue';
|
276
283
|
export { default as VcsLabel } from './src/components/form-inputs-controls/VcsLabel.vue';
|
@@ -307,6 +314,7 @@ export { default as VcsTreeviewSearchbar } from './src/components/lists/VcsTreev
|
|
307
314
|
export { default as VcsBadge } from './src/components/notification/VcsBadge.vue';
|
308
315
|
export { default as VcsDefaultLogo } from './src/logo.svg';
|
309
316
|
export { default as VcsDefaultMobileLogo } from './src/logo-mobile.svg';
|
317
|
+
export { default as StyleMenuWrapper } from './src/components/style/StyleMenuWrapper.vue';
|
310
318
|
export { default as VcsFillSelector } from './src/components/style/VcsFillSelector.vue';
|
311
319
|
export { default as VcsFillMenu } from './src/components/style/VcsFillMenu.vue';
|
312
320
|
export { default as VcsStrokeSelector } from './src/components/style/VcsStrokeSelector.vue';
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@vcmap/ui",
|
3
|
-
"version": "6.1.0
|
3
|
+
"version": "6.1.0",
|
4
4
|
"author": "Virtual City Systems",
|
5
5
|
"license": "MIT",
|
6
6
|
"scripts": {
|
@@ -48,26 +48,26 @@
|
|
48
48
|
"@vcsuite/check": "^2.1.0",
|
49
49
|
"@vcsuite/logger": "^1.0.1",
|
50
50
|
"@vcsuite/parsers": "^2.0.1",
|
51
|
-
"dompurify": "^3.
|
51
|
+
"dompurify": "^3.2.4",
|
52
52
|
"fast-deep-equal": "^3.1.3",
|
53
|
-
"marked": "^15.0.
|
53
|
+
"marked": "^15.0.7",
|
54
54
|
"semver": "^7.6.3",
|
55
|
-
"uuid": "^11.
|
55
|
+
"uuid": "^11.1.0",
|
56
56
|
"vue-i18n": "^9.13.1"
|
57
57
|
},
|
58
58
|
"peerDependencies": {
|
59
59
|
"@vcmap-cesium/engine": "^11.0.2",
|
60
|
-
"@vcmap/core": "^6.1.
|
60
|
+
"@vcmap/core": "^6.1.1",
|
61
61
|
"ol": "^10.4.0",
|
62
62
|
"vue": "~3.4.38",
|
63
|
-
"vuetify": "^3.7.
|
63
|
+
"vuetify": "^3.7.14"
|
64
64
|
},
|
65
65
|
"overrides": {
|
66
66
|
"esbuild": "^0.25.0"
|
67
67
|
},
|
68
68
|
"devDependencies": {
|
69
69
|
"@histoire/plugin-vue": "^0.17.17",
|
70
|
-
"@vcmap/rollup-plugin-vcs-ol": "^1.0.
|
70
|
+
"@vcmap/rollup-plugin-vcs-ol": "^1.0.5",
|
71
71
|
"@vcsuite/eslint-config": "^3.0.5",
|
72
72
|
"@vitejs/plugin-vue": "^5.1.4",
|
73
73
|
"@vitest/coverage-v8": "^2.1.3",
|
@@ -88,7 +88,8 @@
|
|
88
88
|
"vite": "^5.4.9",
|
89
89
|
"vite-plugin-vuetify": "^2.0.4",
|
90
90
|
"vitest": "^2.1.3",
|
91
|
-
"vue-tsc": "^2.1.6"
|
91
|
+
"vue-tsc": "^2.1.6",
|
92
|
+
"nock": "^14.0.1"
|
92
93
|
},
|
93
94
|
"stylelint": {
|
94
95
|
"extends": "stylelint-config-standard",
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<script setup>
|
2
|
+
import { computed, inject, ref } from 'vue';
|
3
|
+
import { VcsFormSection, VcsCheckbox } from '@vcmap/ui';
|
4
|
+
import { VContainer, VRow, VCol } from 'vuetify/components';
|
5
|
+
import { name } from '../package.json';
|
6
|
+
import { getBalloonFeatureInfo } from './lib.js';
|
7
|
+
|
8
|
+
const vcsApp = inject('vcsApp');
|
9
|
+
const plugin = vcsApp.plugins.getByKey(name);
|
10
|
+
|
11
|
+
const { layer } = plugin;
|
12
|
+
const featureInfo = getBalloonFeatureInfo(vcsApp);
|
13
|
+
const hasBallon = ref(layer.properties.featureInfo === featureInfo.name);
|
14
|
+
const useBallon = computed({
|
15
|
+
get: () => hasBallon.value,
|
16
|
+
set: (value) => {
|
17
|
+
if (value) {
|
18
|
+
layer.properties.featureInfo = featureInfo.name;
|
19
|
+
} else {
|
20
|
+
layer.properties.featureInfo = undefined;
|
21
|
+
}
|
22
|
+
hasBallon.value = layer.properties.featureInfo === featureInfo.name;
|
23
|
+
},
|
24
|
+
});
|
25
|
+
</script>
|
26
|
+
|
27
|
+
<template>
|
28
|
+
<vcs-form-section heading="Layer Settings" expandable>
|
29
|
+
<v-container class="pa-2">
|
30
|
+
<v-row no-gutters>
|
31
|
+
<v-col>
|
32
|
+
<vcs-checkbox v-model="useBallon" label="Ballon Feature Info" />
|
33
|
+
</v-col>
|
34
|
+
</v-row>
|
35
|
+
</v-container>
|
36
|
+
</vcs-form-section>
|
37
|
+
</template>
|
38
|
+
|
39
|
+
<style scoped lang="scss"></style>
|
@@ -50,6 +50,7 @@
|
|
50
50
|
:expandable="expandable"
|
51
51
|
:show-reset="showReset"
|
52
52
|
/>
|
53
|
+
<layer-settings />
|
53
54
|
</v-sheet>
|
54
55
|
</template>
|
55
56
|
|
@@ -76,10 +77,12 @@
|
|
76
77
|
import { name } from '../package.json';
|
77
78
|
import GeometrySettings from './GeometrySettings.vue';
|
78
79
|
import TerrainSettings from './TerrainSettings.vue';
|
80
|
+
import LayerSettings from './LayerSettings.vue';
|
79
81
|
|
80
82
|
export default {
|
81
83
|
name: 'VectorPropertiesExample',
|
82
84
|
components: {
|
85
|
+
LayerSettings,
|
83
86
|
TerrainSettings,
|
84
87
|
GeometrySettings,
|
85
88
|
VcsVectorPropertiesComponent,
|
@@ -16,6 +16,7 @@ import {
|
|
16
16
|
Polygon,
|
17
17
|
} from 'ol/geom';
|
18
18
|
import { Stroke, Style, Text as OLText } from 'ol/style';
|
19
|
+
import { BalloonFeatureInfoView } from '@vcmap/ui';
|
19
20
|
|
20
21
|
function layoutHelper(feature, layout = 'XYZ') {
|
21
22
|
if (layout !== 'XYZ') {
|
@@ -292,3 +293,15 @@ export function getTiltedLineStringFeature(layout) {
|
|
292
293
|
layoutHelper(feature, layout);
|
293
294
|
return feature;
|
294
295
|
}
|
296
|
+
|
297
|
+
let balloonFeatureInfo;
|
298
|
+
export function getBalloonFeatureInfo(app) {
|
299
|
+
if (!balloonFeatureInfo) {
|
300
|
+
balloonFeatureInfo = new BalloonFeatureInfoView({
|
301
|
+
title: 'Vector Properties Example',
|
302
|
+
attributeKeys: ['featureId'],
|
303
|
+
});
|
304
|
+
app.featureInfo.add(balloonFeatureInfo);
|
305
|
+
}
|
306
|
+
return balloonFeatureInfo;
|
307
|
+
}
|
@@ -12,6 +12,9 @@
|
|
12
12
|
<VcsFormButton @click="toggleClass()" :active="showTestClass" class="pa-1">
|
13
13
|
Change Static2 TestClass
|
14
14
|
</VcsFormButton>
|
15
|
+
<vcs-form-button @click="logStates"
|
16
|
+
>Log Current window states</vcs-form-button
|
17
|
+
>
|
15
18
|
</div>
|
16
19
|
</template>
|
17
20
|
<style></style>
|
@@ -218,6 +221,12 @@
|
|
218
221
|
app.windowManager.add(windowComponentOptions, owner);
|
219
222
|
}
|
220
223
|
},
|
224
|
+
logStates() {
|
225
|
+
app.windowManager.componentIds.forEach((id) => {
|
226
|
+
console.log(app.windowManager.get(id));
|
227
|
+
console.log(app.windowManager.getCachedPosition(id));
|
228
|
+
});
|
229
|
+
},
|
221
230
|
examples: exampleWindows.map((item) => item.id),
|
222
231
|
};
|
223
232
|
},
|
package/plugins/package.json
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
{
|
2
2
|
"dependencies": {
|
3
|
-
"@vcmap/print": "^
|
3
|
+
"@vcmap/print": "^3.0.0",
|
4
4
|
"@vcmap/walk": "^2.0.0",
|
5
5
|
"@vcmap/clipping-tool": "^2.0.0",
|
6
6
|
"@vcmap/transparent-terrain": "^2.0.0",
|
7
7
|
"@vcmap/height-profile": "^2.0.0",
|
8
8
|
"@vcmap/flight": "^2.0.0",
|
9
|
-
"@vcmap/swipe-tool": "^
|
9
|
+
"@vcmap/swipe-tool": "^3.0.0",
|
10
10
|
"@vcmap/export": "^2.0.0",
|
11
11
|
"@vcmap/viewshed": "^3.0.0",
|
12
|
-
"@vcmap/measurement": "^
|
12
|
+
"@vcmap/measurement": "^3.0.0",
|
13
13
|
"@vcmap/multi-view": "^2.0.0",
|
14
14
|
"@vcmap/draw": "^3.0.0",
|
15
15
|
"@vcmap/shadow": "^3.0.0",
|
@@ -19,11 +19,13 @@
|
|
19
19
|
"@vcmap/link-button": "^2.0.0",
|
20
20
|
"@vcmap/cesium-filters": "^2.0.0",
|
21
21
|
"@vcmap/search-nominatim": "^2.0.0",
|
22
|
-
"@vcmap/create-link": "^
|
22
|
+
"@vcmap/create-link": "^3.0.0",
|
23
23
|
"@vcmap/module-selector": "^2.0.0",
|
24
24
|
"@vcmap/line-of-sight": "^1.0.0",
|
25
25
|
"@vcmap/layer-slider": "^2.0.0",
|
26
|
-
"@vcmap/vcs-solar-balloon": "^2.0.0"
|
26
|
+
"@vcmap/vcs-solar-balloon": "^2.0.0",
|
27
|
+
"@vcmap/list-view": "^1.0.0",
|
28
|
+
"@vcmap/pointcloud-settings": "^1.0.0"
|
27
29
|
},
|
28
30
|
"optionalDependencies": {
|
29
31
|
"@vcmap/planning": "^6.0.0"
|
@@ -107,6 +107,12 @@ export function getViewpointFromFeature(feature: import("ol").Feature): Viewpoin
|
|
107
107
|
* @returns {VcsAction|null} returns null if the feature does not have a geometry with a valid extent
|
108
108
|
*/
|
109
109
|
export function createZoomToFeatureAction(actionOptions: ActionOptions, feature: import("ol").Feature, mapCollection: import("@vcmap/core").MapCollection): VcsAction | null;
|
110
|
+
/**
|
111
|
+
* Calls the callback of an action and handles potential error.
|
112
|
+
* @param {VcsAction} action
|
113
|
+
* @param {PointerEvent} [p]
|
114
|
+
*/
|
115
|
+
export function callSafeAction(action: VcsAction, p?: PointerEvent | undefined): void;
|
110
116
|
export const searchComponentId: "searchId";
|
111
117
|
export type ActionOptions = Omit<VcsAction, 'callback'>;
|
112
118
|
export type ActionCallback = (p?: PointerEvent) => (void | Promise<void>);
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { v4 as uuid } from 'uuid';
|
2
2
|
import { check, maybe, oneOf, optional } from '@vcsuite/check';
|
3
|
+
import { getLogger } from '@vcsuite/logger';
|
3
4
|
import {
|
4
5
|
Collection,
|
5
6
|
Extent,
|
@@ -498,3 +499,24 @@ export function createZoomToFeatureAction(
|
|
498
499
|
},
|
499
500
|
};
|
500
501
|
}
|
502
|
+
|
503
|
+
/**
|
504
|
+
* Calls the callback of an action and handles potential error.
|
505
|
+
* @param {VcsAction} action
|
506
|
+
* @param {PointerEvent} [p]
|
507
|
+
*/
|
508
|
+
export function callSafeAction(action, p) {
|
509
|
+
const logError = (e) =>
|
510
|
+
getLogger(action.name).error(
|
511
|
+
`Error while calling the ${action.title ?? action.name} callback:`,
|
512
|
+
e,
|
513
|
+
);
|
514
|
+
try {
|
515
|
+
const optPromise = action.callback(p);
|
516
|
+
if (optPromise instanceof Promise) {
|
517
|
+
optPromise.catch(logError);
|
518
|
+
}
|
519
|
+
} catch (e) {
|
520
|
+
logError(e);
|
521
|
+
}
|
522
|
+
}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
/**
|
2
|
+
* @param {import("@vcmap/ui").VcsUiApp} app
|
3
|
+
* @returns {{ layer: import("@vcmap/core").VectorLayer, destroy: () => void }}
|
4
|
+
*/
|
5
|
+
export function setupDeepPickingLayer(app: import("@vcmap/ui").VcsUiApp): {
|
6
|
+
layer: import("@vcmap/core").VectorLayer;
|
7
|
+
destroy: () => void;
|
8
|
+
};
|
9
|
+
/**
|
10
|
+
* @param {import("../vcsUiApp.js").default} app
|
11
|
+
* @param {import("@vcmap/core").VectorLayer} layer
|
12
|
+
* @param {(event: import("@vcmap/core").InteractionEvent) => Promise<import("@vcmap/core").EventFeature[]>} collectFeatures
|
13
|
+
* @param {import("@vcmap/core").InteractionEvent} event
|
14
|
+
* @returns {import("./actionHelper.js").VcsAction}
|
15
|
+
*/
|
16
|
+
export function createDeepPickingAction(app: import("../vcsUiApp.js").default, layer: import("@vcmap/core").VectorLayer, collectFeatures: (event: import("@vcmap/core").InteractionEvent) => Promise<import("@vcmap/core").EventFeature[]>, event: import("@vcmap/core").InteractionEvent): import("./actionHelper.js").VcsAction;
|
17
|
+
/**
|
18
|
+
* This adds deep picking action to the context menu, if not disabled in uiConfig
|
19
|
+
* @param {import("../vcsUiApp.js").default} app
|
20
|
+
* @returns {() => void}
|
21
|
+
*/
|
22
|
+
export function setupDeepPicking(app: import("../vcsUiApp.js").default): () => void;
|
23
|
+
export const deepPickingWindowId: "deep-picking-window";
|