@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.
Files changed (94) hide show
  1. package/config/base.config.json +7 -3
  2. package/config/cluster.config.json +1 -1
  3. package/config/dev.config.json +172 -56
  4. package/config/projects.config.json +2 -1
  5. package/config/vectorTile.config.json +42 -1
  6. package/dist/assets/cesium.js +1 -1
  7. package/dist/assets/{core-52c2ef11.js → core-841b71a4.js} +7544 -5485
  8. package/dist/assets/core.js +1 -1
  9. package/dist/assets/ol.js +1 -1
  10. package/dist/assets/{ui-dccb9009.css → ui-2fd6f47d.css} +1 -1
  11. package/dist/assets/{ui-dccb9009.js → ui-2fd6f47d.js} +21402 -20661
  12. package/dist/assets/ui.js +1 -1
  13. package/dist/assets/vue.js +1 -1
  14. package/dist/assets/{vuetify-43a20e18.css → vuetify-4bc77ff7.css} +2 -2
  15. package/dist/assets/{vuetify-43a20e18.js → vuetify-4bc77ff7.js} +6694 -6593
  16. package/dist/assets/vuetify.js +1 -1
  17. package/index.d.ts +13 -5
  18. package/index.js +13 -5
  19. package/package.json +9 -8
  20. package/plugins/@vcmap-show-case/vector-properties-example/src/LayerSettings.vue +39 -0
  21. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +3 -0
  22. package/plugins/@vcmap-show-case/vector-properties-example/src/lib.js +13 -0
  23. package/plugins/@vcmap-show-case/window-tester/src/WindowExample.vue +9 -0
  24. package/plugins/package.json +7 -5
  25. package/src/actions/actionHelper.d.ts +6 -0
  26. package/src/actions/actionHelper.js +22 -0
  27. package/src/actions/deepPickingAction.d.ts +23 -0
  28. package/src/actions/deepPickingAction.js +399 -0
  29. package/src/application/VcsApp.vue +3 -0
  30. package/src/application/VcsApp.vue.d.ts +4 -0
  31. package/src/application/VcsAttributionsFooter.vue +1 -0
  32. package/src/application/VcsContainer.vue +1 -0
  33. package/src/application/VcsContainer.vue.d.ts +4 -0
  34. package/src/application/VcsMobileMenuList.vue +34 -41
  35. package/src/application/VcsNavbar.vue +3 -0
  36. package/src/application/VcsNavbarMobile.vue +6 -18
  37. package/src/application/VcsNavbarMobile.vue.d.ts +0 -1
  38. package/src/application/VcsPositionDisplay.vue +1 -0
  39. package/src/components/buttons/VcsActionButtonList.vue +1 -0
  40. package/src/components/form-inputs-controls/VcsSelect.vue +8 -6
  41. package/src/components/icons/+all.d.ts +5 -0
  42. package/src/components/icons/+all.js +14 -0
  43. package/src/components/lists/VcsActionList.vue +1 -0
  44. package/src/components/lists/VcsGroupedList.vue +2 -1
  45. package/src/components/lists/VcsListItemComponent.vue +1 -0
  46. package/src/components/lists/VcsTreeNode.vue +5 -1
  47. package/src/components/lists/VcsTreeview.vue +4 -1
  48. package/src/components/style/{MenuWrapper.vue → StyleMenuWrapper.vue} +2 -1
  49. package/src/components/style/VcsFillMenu.vue +4 -4
  50. package/src/components/style/VcsImageMenu.vue +4 -4
  51. package/src/components/style/VcsStrokeMenu.vue +4 -4
  52. package/src/components/style/VcsTextMenu.vue +4 -4
  53. package/src/contentTree/LayerTree.vue +8 -46
  54. package/src/contentTree/LayerTree.vue.d.ts +1 -3
  55. package/src/contentTree/contentTreeCollection.d.ts +7 -0
  56. package/src/contentTree/contentTreeCollection.js +30 -10
  57. package/src/contentTree/contentTreeItem.d.ts +4 -4
  58. package/src/contentTree/contentTreeItem.js +2 -2
  59. package/src/contentTree/groupContentTreeItem.d.ts +5 -0
  60. package/src/contentTree/groupContentTreeItem.js +1 -1
  61. package/src/contentTree/layerContentTreeItem.js +1 -1
  62. package/src/contentTree/nodeContentTreeItem.d.ts +21 -0
  63. package/src/contentTree/nodeContentTreeItem.js +31 -2
  64. package/src/contentTree/wmsChildContentTreeItem.d.ts +56 -0
  65. package/src/contentTree/wmsChildContentTreeItem.js +159 -0
  66. package/src/contentTree/wmsGroupContentTreeItem.d.ts +171 -0
  67. package/src/contentTree/wmsGroupContentTreeItem.js +619 -0
  68. package/src/featureInfo/ClusterFeatureComponent.vue +47 -11
  69. package/src/featureInfo/ClusterFeatureComponent.vue.d.ts +1 -0
  70. package/src/featureInfo/balloonFeatureInfoView.d.ts +3 -0
  71. package/src/featureInfo/balloonFeatureInfoView.js +78 -11
  72. package/src/featureInfo/balloonHelper.js +8 -12
  73. package/src/featureInfo/featureInfo.d.ts +32 -7
  74. package/src/featureInfo/featureInfo.js +190 -90
  75. package/src/i18n/de.d.ts +22 -16
  76. package/src/i18n/de.js +4 -0
  77. package/src/i18n/en.d.ts +22 -16
  78. package/src/i18n/en.js +4 -0
  79. package/src/manager/toolbox/GroupToolboxComponent.vue +1 -0
  80. package/src/manager/toolbox/SelectToolboxComponent.vue +2 -0
  81. package/src/manager/toolbox/ToolboxManagerComponent.vue +1 -0
  82. package/src/manager/window/windowManager.d.ts +2 -2
  83. package/src/manager/window/windowManager.js +12 -10
  84. package/src/navigation/MapNavigation.vue +3 -1
  85. package/src/notifier/NotifierComponent.vue +1 -0
  86. package/src/search/search.js +3 -16
  87. package/src/state.d.ts +2 -1
  88. package/src/state.js +2 -1
  89. package/src/uiConfig.d.ts +9 -0
  90. package/src/uiConfig.js +1 -0
  91. /package/dist/assets/{cesium-6c6aa853.js → cesium-664ad022.js} +0 -0
  92. /package/dist/assets/{ol-b0589b0c.js → ol-2e095c08.js} +0 -0
  93. /package/dist/assets/{vue-f7a0b088.js → vue-71fd14e8.js} +0 -0
  94. /package/src/components/style/{MenuWrapper.vue.d.ts → StyleMenuWrapper.vue.d.ts} +0 -0
@@ -170,7 +170,7 @@ export function isSlotPosition(windowPosition) {
170
170
  * headerComponent?: import("vue").Component<T, unknown, unknown>,
171
171
  * state : Partial<WindowState>,
172
172
  * position : Partial<WindowPositionOptions>,
173
- * slot: WindowSlot,
173
+ * slot: import("vue").Ref<WindowSlot>,
174
174
  * props: T,
175
175
  * provides: Record<string, unknown>,
176
176
  * zIndex: import("vue").ComputedGetter<number>
@@ -545,15 +545,17 @@ class WindowManager {
545
545
  * @private
546
546
  */
547
547
  _cachePosition(windowComponent) {
548
- const initialWindowPosition = windowPositionFromOptions(
549
- windowComponent.initialPositionOptions,
550
- );
551
- if (
552
- !compareWindowPositions(initialWindowPosition, windowComponent.position)
553
- ) {
554
- this._windowPositionsCache.set(windowComponent.id, {
555
- ...windowComponent.position,
556
- });
548
+ if (windowComponent.slot.value === WindowSlot.DETACHED) {
549
+ const initialWindowPosition = windowPositionFromOptions(
550
+ windowComponent.initialPositionOptions,
551
+ );
552
+ if (
553
+ !compareWindowPositions(initialWindowPosition, windowComponent.position)
554
+ ) {
555
+ this._windowPositionsCache.set(windowComponent.id, {
556
+ ...windowComponent.position,
557
+ });
558
+ }
557
559
  }
558
560
  }
559
561
 
@@ -57,7 +57,7 @@
57
57
  :disabled="movementApiCallsDisabled"
58
58
  />
59
59
  </v-row>
60
- <template v-if="smAndUp && !mobileLandscape">
60
+ <template v-if="!mobileLandscape">
61
61
  <v-row justify="center">
62
62
  <OrientationToolsButton
63
63
  v-if="showOverviewButton"
@@ -188,6 +188,8 @@
188
188
  options.keyEvents === true &&
189
189
  options.apiCalls === true &&
190
190
  options.pointerEvents === true;
191
+
192
+ stopRotation = null;
191
193
  });
192
194
  return {
193
195
  action,
@@ -3,6 +3,7 @@
3
3
  <v-snackbar
4
4
  v-for="notification in notifications"
5
5
  :key="notification.id"
6
+ :data-notification-id="notification.id"
6
7
  v-model="notification.open"
7
8
  :timeout="notification.timeout"
8
9
  class="vcs-notifier"
@@ -18,6 +18,7 @@ import {
18
18
  getDefaultPrimaryColor,
19
19
  getColorByKey,
20
20
  } from '../vuePlugins/vuetify.js';
21
+ import { getColoredMapIcon } from '../components/icons/+all.js';
21
22
  import { getViewpointFromFeature } from '../actions/actionHelper.js';
22
23
 
23
24
  /**
@@ -40,20 +41,6 @@ import { getViewpointFromFeature } from '../actions/actionHelper.js';
40
41
  * @property {function():void} destroy
41
42
  */
42
43
 
43
- /**
44
- * @param {string} color
45
- * @returns {import("ol/style/Icon").Options}
46
- */
47
- function getPointResultIcon(color) {
48
- return {
49
- src: `data:image/svg+xml,%3Csvg xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:cc='http://creativecommons.org/ns%23' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' id='icon_24_poi' width='24' height='23.994' viewBox='0 0 24 23.994' sodipodi:docname='mapIcon.svg'%3E%3Cg id='Gruppe_1972' transform='translate(-571 -609.477)'%3E%3Cpath id='Pfad_773' d='M583,611a8.009,8.009,0,0,0-8,8c0,5.314,6.952,13.32,7.248,13.658a1,1,0,0,0,1.5,0c.3-.338,7.248-8.344,7.248-13.658A8.009,8.009,0,0,0,583,611Zm0,19.444c-2.18-2.685-6-8.09-6-11.444a6,6,0,0,1,12,0C589,622.354,585.18,627.759,583,630.444Z' fill='currentColor' /%3E%3Cpath id='Pfad_774' d='M583,615a4,4,0,1,0,4,4A4,4,0,0,0,583,615Zm0,6a2,2,0,1,1,2-2A2,2,0,0,1,583,621Z' fill='currentColor' /%3E%3C/g%3E%3Cpath fill='${encodeURIComponent(
50
- color,
51
- )}' d='M 11.672998,20.526286 C 8.5115524,16.526958 6.4310003,12.714969 6.0702695,10.260963 6.0109099,9.8571482 6.0115821,9.1201807 6.0716855,8.7084104 6.4424582,6.1682348 8.3335069,4.1603103 10.828528,3.6575721 c 1.904966,-0.383844 3.881822,0.1903514 5.289639,1.5364231 0.993092,0.9495349 1.610829,2.1488769 1.810148,3.5144152 0.0601,0.4117703 0.06077,1.1487378 0.0014,1.5525526 -0.357076,2.429138 -2.337816,6.081898 -5.487559,10.119822 -0.224045,0.287223 -0.415188,0.530536 -0.424763,0.540696 -0.0096,0.01016 -0.16456,-0.167678 -0.344411,-0.395195 z m 0.990366,-7.047968 c 0.894914,-0.146674 1.762065,-0.627065 2.349286,-1.301476 0.86707,-0.995812 1.194989,-2.3427819 0.880571,-3.6170541 -0.379849,-1.5394474 -1.596396,-2.6842781 -3.173401,-2.9863277 -0.368703,-0.070619 -1.070937,-0.070619 -1.43964,0 C 9.7056173,5.875042 8.48604,7.0227247 8.1067793,8.5597879 7.8410265,9.6368274 8.0329903,10.787029 8.6317551,11.705317 c 0.5717674,0.876885 1.4205679,1.474277 2.4457369,1.721329 0.47704,0.114961 1.079877,0.134602 1.585872,0.05167 z' id='path1432' /%3E%3C/svg%3E`,
52
- scale: 1,
53
- color,
54
- };
55
- }
56
-
57
44
  /**
58
45
  * sets up result layer for displaying search results
59
46
  * @param {import("@src/vcsUiApp.js").default} app
@@ -75,7 +62,7 @@ function setupSearchResultLayer(app) {
75
62
  app.layers.add(resultLayer);
76
63
 
77
64
  const style = new VectorStyleItem({
78
- image: getPointResultIcon(getDefaultPrimaryColor(app)),
65
+ image: getColoredMapIcon(getDefaultPrimaryColor(app)),
79
66
  fill: {
80
67
  color: 'rgba(237, 237, 237, 0.1)',
81
68
  },
@@ -89,7 +76,7 @@ function setupSearchResultLayer(app) {
89
76
  function setResultColor() {
90
77
  const color = getColorByKey(app, 'primary');
91
78
  style.stroke?.setColor(color);
92
- style.image = new Icon(getPointResultIcon(color));
79
+ style.image = new Icon(getColoredMapIcon(color));
93
80
  resultLayer.forceRedraw();
94
81
  }
95
82
 
package/src/state.d.ts CHANGED
@@ -66,7 +66,8 @@ export type AppState = {
66
66
  export type CachedAppState = AppState;
67
67
  /**
68
68
  * The URL state of the app is an array. To null parameters, pass in 0 instead.
69
- * The first entry is the viewpoint state, the second the active map name
69
+ * The first entry is the viewpoint state or an extent state
70
+ * The second the active map name
70
71
  * The third is an array of modules to apply the state to
71
72
  * the fourth is an array of layer states
72
73
  * the fifth is an array of plugin states
package/src/state.js CHANGED
@@ -66,7 +66,8 @@ import {
66
66
 
67
67
  /**
68
68
  * The URL state of the app is an array. To null parameters, pass in 0 instead.
69
- * The first entry is the viewpoint state, the second the active map name
69
+ * The first entry is the viewpoint state or an extent state
70
+ * The second the active map name
70
71
  * The third is an array of modules to apply the state to
71
72
  * the fourth is an array of layer states
72
73
  * the fifth is an array of plugin states
package/src/uiConfig.d.ts CHANGED
@@ -63,6 +63,10 @@ export type UiConfigObject = {
63
63
  * - an optional flag whether to activate feature info on startup (default active)
64
64
  */
65
65
  startingFeatureInfo?: boolean | undefined;
66
+ /**
67
+ * - an optional flag whether to enable deep picking via right click context menu (default active)
68
+ */
69
+ enableDeepPicking?: boolean | undefined;
66
70
  /**
67
71
  * - mouse event, when position display is updated. Either 'click' (default) or 'move'.
68
72
  */
@@ -229,6 +233,7 @@ export type UiConfigObject = {
229
233
  * @property {string} [appTitle] - an optional title to display next to the company logo
230
234
  * @property {string} [primaryColor] - an optional primary color to use in all themes, can be overwritten by `vuetifyTheme`
231
235
  * @property {boolean} [startingFeatureInfo] - an optional flag whether to activate feature info on startup (default active)
236
+ * @property {boolean} [enableDeepPicking] - an optional flag whether to enable deep picking via right click context menu (default active)
232
237
  * @property {string} [positionDisplayEventType] - mouse event, when position display is updated. Either 'click' (default) or 'move'.
233
238
  * @property {string} [obliqueFooterTemplate] - A template for rendering information of the current image in oblique mode, e.g. '{{ name }}' printing the image's name
234
239
  * @property {string} [helpBaseUrl='https://help.vc.systems/'] - an optional URL to a help landing page
@@ -313,6 +318,10 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
313
318
  * - an optional flag whether to activate feature info on startup (default active)
314
319
  */
315
320
  readonly startingFeatureInfo?: boolean | undefined;
321
+ /**
322
+ * - an optional flag whether to enable deep picking via right click context menu (default active)
323
+ */
324
+ readonly enableDeepPicking?: boolean | undefined;
316
325
  /**
317
326
  * - mouse event, when position display is updated. Either 'click' (default) or 'move'.
318
327
  */
package/src/uiConfig.js CHANGED
@@ -54,6 +54,7 @@ import { reactive, readonly, ref } from 'vue';
54
54
  * @property {string} [appTitle] - an optional title to display next to the company logo
55
55
  * @property {string} [primaryColor] - an optional primary color to use in all themes, can be overwritten by `vuetifyTheme`
56
56
  * @property {boolean} [startingFeatureInfo] - an optional flag whether to activate feature info on startup (default active)
57
+ * @property {boolean} [enableDeepPicking] - an optional flag whether to enable deep picking via right click context menu (default active)
57
58
  * @property {string} [positionDisplayEventType] - mouse event, when position display is updated. Either 'click' (default) or 'move'.
58
59
  * @property {string} [obliqueFooterTemplate] - A template for rendering information of the current image in oblique mode, e.g. '{{ name }}' printing the image's name
59
60
  * @property {string} [helpBaseUrl='https://help.vc.systems/'] - an optional URL to a help landing page
File without changes