@vcmap/ui 6.0.0-rc.6 → 6.0.0-rc.8

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 (231) hide show
  1. package/config/base.config.json +8 -2
  2. package/dist/assets/cesium/Workers/{chunk-LUYI3XCB.js → chunk-2LOWCAMW.js} +13 -13
  3. package/dist/assets/cesium/Workers/{chunk-V7WJDCPA.js → chunk-2PTKXHJB.js} +10 -10
  4. package/dist/assets/cesium/Workers/{chunk-YFVI4SQI.js → chunk-3HQMMUPU.js} +1 -1
  5. package/dist/assets/cesium/Workers/{chunk-XGI4FRXF.js → chunk-3IFRSGEY.js} +9 -9
  6. package/dist/assets/cesium/Workers/{chunk-4RJH3H6D.js → chunk-44QAAS4P.js} +7 -7
  7. package/dist/assets/cesium/Workers/{chunk-4EW3HFFI.js → chunk-56EDBCGT.js} +10 -10
  8. package/dist/assets/cesium/Workers/{chunk-PRKEY4QK.js → chunk-57H6I3SV.js} +5 -5
  9. package/dist/assets/cesium/Workers/{chunk-X67EJ6X6.js → chunk-6SQMLVGV.js} +54 -7
  10. package/dist/assets/cesium/Workers/{chunk-RRLGJV3Q.js → chunk-7YIOHQWH.js} +13 -13
  11. package/dist/assets/cesium/Workers/{chunk-G6346EDR.js → chunk-7ZZ5LMZY.js} +16 -15
  12. package/dist/assets/cesium/Workers/{chunk-YFYPR4MW.js → chunk-BVKITG4N.js} +7 -7
  13. package/dist/assets/cesium/Workers/{chunk-N5MIFVXJ.js → chunk-C3EQ27WF.js} +6 -6
  14. package/dist/assets/cesium/Workers/{chunk-TLGODPEV.js → chunk-C4WPMOKT.js} +6 -5
  15. package/dist/assets/cesium/Workers/{chunk-DTACCQDR.js → chunk-EDLRS3AW.js} +6 -6
  16. package/dist/assets/cesium/Workers/{chunk-EVU2UNBD.js → chunk-EJVGYGLF.js} +7 -7
  17. package/dist/assets/cesium/Workers/{chunk-FYYT5EVH.js → chunk-FFLMY4TE.js} +5 -5
  18. package/dist/assets/cesium/Workers/{chunk-5OUTANXX.js → chunk-GBT7MJ6X.js} +1 -1
  19. package/dist/assets/cesium/Workers/{chunk-3DRPXHZ4.js → chunk-HJMNR3GC.js} +11 -11
  20. package/dist/assets/cesium/Workers/{chunk-IALQGTA2.js → chunk-HP5XLODI.js} +6 -6
  21. package/dist/assets/cesium/Workers/{chunk-DR7LK6PG.js → chunk-IBRIWOCM.js} +13 -13
  22. package/dist/assets/cesium/Workers/{chunk-WMVCLETM.js → chunk-IZGUQO6Q.js} +13 -13
  23. package/dist/assets/cesium/Workers/{chunk-T6TZXGG5.js → chunk-IZJ42N4W.js} +17 -17
  24. package/dist/assets/cesium/Workers/{chunk-FZDKIUDT.js → chunk-JBSKHTNX.js} +4 -4
  25. package/dist/assets/cesium/Workers/{chunk-S4VTLNAJ.js → chunk-JISPSEF3.js} +4 -4
  26. package/dist/assets/cesium/Workers/{chunk-KNMGSIIN.js → chunk-JSQJDZI4.js} +6 -6
  27. package/dist/assets/cesium/Workers/{chunk-LMTN7R7M.js → chunk-JXVLNVXC.js} +7 -7
  28. package/dist/assets/cesium/Workers/{chunk-A5C2A5O5.js → chunk-KHZNBFOH.js} +7 -7
  29. package/dist/assets/cesium/Workers/{chunk-PIOKSAZH.js → chunk-L5GODJAR.js} +14 -14
  30. package/dist/assets/cesium/Workers/{chunk-Q7PM4W34.js → chunk-LJ2JQHJT.js} +12 -7
  31. package/dist/assets/cesium/Workers/{chunk-D6PDWQXW.js → chunk-LLAF3CPH.js} +2 -2
  32. package/dist/assets/cesium/Workers/{chunk-H7PSTL64.js → chunk-M24KHENR.js} +2 -2
  33. package/dist/assets/cesium/Workers/{chunk-I67V66MN.js → chunk-NDDI2LWR.js} +6 -6
  34. package/dist/assets/cesium/Workers/{chunk-FSXNF76Y.js → chunk-NGZJIN5Z.js} +4 -4
  35. package/dist/assets/cesium/Workers/{chunk-UMX265HW.js → chunk-O72GZTSE.js} +2 -2
  36. package/dist/assets/cesium/Workers/{chunk-WOA6WSHH.js → chunk-OPP2SKMA.js} +12 -12
  37. package/dist/assets/cesium/Workers/{chunk-VD6G7UPU.js → chunk-P6TRGU3S.js} +2 -2
  38. package/dist/assets/cesium/Workers/{chunk-QLC66ZRL.js → chunk-QN6TBED4.js} +11 -11
  39. package/dist/assets/cesium/Workers/{chunk-O7OUBDMZ.js → chunk-QQOZO7KO.js} +7 -7
  40. package/dist/assets/cesium/Workers/{chunk-AGTH5JMJ.js → chunk-RJM36CNY.js} +6 -6
  41. package/dist/assets/cesium/Workers/{chunk-UC566ISB.js → chunk-RTJKHZWU.js} +6 -6
  42. package/dist/assets/cesium/Workers/{chunk-L4XQPD6P.js → chunk-TI3TRKIC.js} +423 -448
  43. package/dist/assets/cesium/Workers/{chunk-3GI7DWF7.js → chunk-TK5IIG2F.js} +4 -4
  44. package/dist/assets/cesium/Workers/{chunk-6DH5PLFD.js → chunk-U5HSOKPQ.js} +1 -1
  45. package/dist/assets/cesium/Workers/{chunk-BPY4HDAK.js → chunk-WGDFYAGC.js} +4 -4
  46. package/dist/assets/cesium/Workers/{chunk-SJC5PRDX.js → chunk-X7IQYYHF.js} +2 -2
  47. package/dist/assets/cesium/Workers/{chunk-4OX4RYLB.js → chunk-XIUSRWL6.js} +9 -5
  48. package/dist/assets/cesium/Workers/{chunk-S2UEXF6T.js → chunk-XWOUPGUF.js} +1 -1
  49. package/dist/assets/cesium/Workers/{chunk-F7IEM66T.js → chunk-YCDZX5LS.js} +1 -1
  50. package/dist/assets/cesium/Workers/{chunk-AVFIYUKX.js → chunk-YK3QIKY7.js} +9 -9
  51. package/dist/assets/cesium/Workers/{chunk-BAJAVGUF.js → chunk-YSIJTJ7N.js} +5 -5
  52. package/dist/assets/cesium/Workers/{chunk-6DXIYFX3.js → chunk-Z2QP3CXW.js} +2 -2
  53. package/dist/assets/cesium/Workers/{chunk-P24I5VUS.js → chunk-ZVUUPJEM.js} +17 -17
  54. package/dist/assets/cesium/Workers/combineGeometry.js +22 -22
  55. package/dist/assets/cesium/Workers/createBoxGeometry.js +16 -16
  56. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +14 -14
  57. package/dist/assets/cesium/Workers/createCircleGeometry.js +24 -24
  58. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +17 -17
  59. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +31 -31
  60. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
  61. package/dist/assets/cesium/Workers/createCorridorGeometry.js +27 -27
  62. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +26 -26
  63. package/dist/assets/cesium/Workers/createCylinderGeometry.js +18 -18
  64. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +16 -16
  65. package/dist/assets/cesium/Workers/createEllipseGeometry.js +24 -24
  66. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +17 -17
  67. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +17 -17
  68. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +16 -16
  69. package/dist/assets/cesium/Workers/createFrustumGeometry.js +16 -16
  70. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +16 -16
  71. package/dist/assets/cesium/Workers/createGeometry.js +22 -22
  72. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +20 -20
  73. package/dist/assets/cesium/Workers/createPlaneGeometry.js +14 -14
  74. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +13 -13
  75. package/dist/assets/cesium/Workers/createPolygonGeometry.js +30 -30
  76. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +28 -28
  77. package/dist/assets/cesium/Workers/createPolylineGeometry.js +23 -23
  78. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +29 -29
  79. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
  80. package/dist/assets/cesium/Workers/createRectangleGeometry.js +25 -25
  81. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +18 -18
  82. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +21 -21
  83. package/dist/assets/cesium/Workers/createSphereGeometry.js +17 -17
  84. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +16 -16
  85. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +3 -3
  86. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +13 -13
  87. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +22 -22
  88. package/dist/assets/cesium/Workers/createVectorTilePoints.js +12 -12
  89. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +20 -20
  90. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +13 -13
  91. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +20 -20
  92. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +24 -20
  93. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +17 -17
  94. package/dist/assets/cesium/Workers/createWallGeometry.js +22 -22
  95. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +21 -21
  96. package/dist/assets/cesium/Workers/decodeDraco.js +11 -11
  97. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +28 -5
  98. package/dist/assets/cesium/Workers/decodeI3S.js +10 -10
  99. package/dist/assets/cesium/Workers/transcodeKTX2.js +19 -18
  100. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  101. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +20 -20
  102. package/dist/assets/{cesium-ccb4cc30.js → cesium-2ec6aae0.js} +136600 -136700
  103. package/dist/assets/cesium.js +1 -1
  104. package/dist/assets/{core-e06aa7a6.js → core-6f2522e5.js} +8391 -7544
  105. package/dist/assets/core.js +1 -1
  106. package/dist/assets/{ol-e7981d5c.js → ol-b0e134cb.js} +2246 -2248
  107. package/dist/assets/ol.js +1 -1
  108. package/dist/assets/ui-bf3d1f84.css +1 -0
  109. package/dist/assets/{ui-5dda32d2.js → ui-bf3d1f84.js} +4598 -4464
  110. package/dist/assets/ui.js +1 -1
  111. package/dist/assets/vue.js +1 -1
  112. package/dist/assets/{vuetify-4c4e4217.js → vuetify-99bf601c.js} +1 -1
  113. package/dist/assets/vuetify.js +1 -1
  114. package/package.json +3 -3
  115. package/plugins/@vcmap-show-case/form-inputs-example/src/FormInputsExample.vue +2 -2
  116. package/plugins/@vcmap-show-case/plugin-editors/src/PluginEditors.vue +3 -4
  117. package/plugins/@vcmap-show-case/project-selector/src/ModulesListComponent.vue +1 -1
  118. package/plugins/@vcmap-show-case/vector-properties-example/src/GeometrySettings.vue +420 -0
  119. package/plugins/@vcmap-show-case/vector-properties-example/src/LayoutHandler.vue +97 -0
  120. package/plugins/@vcmap-show-case/vector-properties-example/src/TerrainSettings.vue +90 -0
  121. package/plugins/@vcmap-show-case/vector-properties-example/src/VectorPropertiesExample.vue +61 -70
  122. package/plugins/@vcmap-show-case/vector-properties-example/src/index.js +34 -1
  123. package/plugins/@vcmap-show-case/vector-properties-example/src/lib.js +294 -0
  124. package/src/actions/StyleSelector.vue +36 -20
  125. package/src/actions/StyleSelector.vue.d.ts +5 -5
  126. package/src/application/VcsApp.vue +32 -8
  127. package/src/application/VcsApp.vue.d.ts +5 -1
  128. package/src/application/VcsAppWrapper.vue +1 -1
  129. package/src/application/VcsAttributions.vue +1 -1
  130. package/src/application/VcsAttributionsFooter.vue +22 -11
  131. package/src/application/VcsContainer.vue.d.ts +5 -1
  132. package/src/application/VcsMainMap.vue +1 -1
  133. package/src/application/VcsMap.vue +1 -0
  134. package/src/application/VcsNavbar.vue +1 -1
  135. package/src/application/VcsPositionDisplay.vue +3 -3
  136. package/src/application/VcsSettings.vue +1 -1
  137. package/src/application/VcsSplashScreen.vue +1 -0
  138. package/src/application/VcsTextPage.vue +1 -1
  139. package/src/application/VcsTextPageFooter.vue +6 -4
  140. package/src/components/buttons/VcsActionButtonList.vue +5 -1
  141. package/src/components/buttons/VcsButton.vue +3 -3
  142. package/src/components/buttons/VcsFormButton.vue +2 -2
  143. package/src/components/buttons/VcsToolButton.vue +2 -2
  144. package/src/components/extent/VcsExtent.vue +1 -1
  145. package/src/components/extent/VcsExtentEditor.vue +1 -0
  146. package/src/components/flight/VcsFlightAnchorsComponent.vue +1 -0
  147. package/src/components/flight/VcsFlightComponent.vue +1 -1
  148. package/src/components/flight/VcsFlightEditor.vue +1 -0
  149. package/src/components/flight/VcsFlightPlayer.vue +1 -1
  150. package/src/components/form-inputs-controls/VcsLabel.vue +31 -8
  151. package/src/components/form-inputs-controls/VcsLabel.vue.d.ts +2 -0
  152. package/src/components/form-inputs-controls/VcsSelect.vue +1 -1
  153. package/src/components/form-inputs-controls/VcsSelect.vue.d.ts +2 -2
  154. package/src/components/form-inputs-controls/VcsTextField.vue +1 -1
  155. package/src/components/form-inputs-controls/VcsWizard.vue +1 -1
  156. package/src/components/form-inputs-controls/VcsWizardStep.vue +1 -0
  157. package/src/components/form-output/VcsMarkdown.vue +1 -1
  158. package/src/components/import/VcsFileDrop.vue +1 -1
  159. package/src/components/import/VcsImportComponent.vue +1 -1
  160. package/src/components/lists/VcsListItemComponent.vue +5 -1
  161. package/src/components/lists/VcsTreeview.vue +22 -0
  162. package/src/components/lists/VcsTreeview.vue.d.ts +10 -0
  163. package/src/components/lists/VcsTreeviewSearchbar.vue +1 -1
  164. package/src/components/lists/VcsTreeviewTitle.vue +5 -1
  165. package/src/components/notification/VcsBadge.vue +2 -2
  166. package/src/components/notification/VcsHelp.vue +1 -1
  167. package/src/components/plugins/AbstractConfigEditor.vue +1 -1
  168. package/src/components/section/VcsExpansionPanel.vue +5 -1
  169. package/src/components/style/MenuWrapper.vue +1 -1
  170. package/src/components/style/VcsFeatureStyleComponent.vue +1 -0
  171. package/src/components/style/VcsFillMenu.vue +1 -0
  172. package/src/components/style/VcsFillSelector.vue +1 -0
  173. package/src/components/style/VcsImageMenu.vue +1 -0
  174. package/src/components/style/VcsImageSelector.vue +1 -1
  175. package/src/components/style/VcsStrokeMenu.vue +1 -0
  176. package/src/components/style/VcsStrokeSelector.vue +1 -1
  177. package/src/components/style/VcsTextMenu.vue +1 -0
  178. package/src/components/style/VcsTextSelector.vue +1 -1
  179. package/src/components/style/VcsVectorStyleComponent.vue +1 -1
  180. package/src/components/tables/VcsDataTable.vue +1 -1
  181. package/src/components/tables/VcsTable.vue +1 -0
  182. package/src/components/tables/VcsTableCell.vue +1 -1
  183. package/src/components/vector-properties/VcsFeatureEditingWindow.vue +18 -35
  184. package/src/components/vector-properties/VcsFeatureEditingWindow.vue.d.ts +5 -3
  185. package/src/components/vector-properties/VcsFeatureTransforms.vue +1 -1
  186. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +37 -12
  187. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue.d.ts +3 -2
  188. package/src/components/viewpoint/VcsViewpointComponent.vue +1 -1
  189. package/src/components/viewpoint/VcsViewpointEditor.vue +1 -0
  190. package/src/contentTree/LayerTree.vue +1 -1
  191. package/src/contentTree/layerContentTreeItem.d.ts +8 -5
  192. package/src/contentTree/layerContentTreeItem.js +48 -34
  193. package/src/contentTree/layerGroupContentTreeItem.d.ts +7 -1
  194. package/src/contentTree/layerGroupContentTreeItem.js +22 -3
  195. package/src/featureInfo/AddressBalloonComponent.vue +1 -1
  196. package/src/featureInfo/BalloonComponent.vue +1 -1
  197. package/src/featureInfo/IframeComponent.vue +6 -1
  198. package/src/featureInfo/MarkdownBalloonComponent.vue +1 -1
  199. package/src/featureInfo/balloonHelper.js +1 -1
  200. package/src/i18n/de.d.ts +5 -0
  201. package/src/i18n/de.js +7 -2
  202. package/src/i18n/en.d.ts +5 -0
  203. package/src/i18n/en.js +6 -1
  204. package/src/legend/StyleLegendItem.vue +1 -1
  205. package/src/legend/VcsLegend.vue +1 -1
  206. package/src/manager/collectionManager/CollectionComponent.vue +1 -0
  207. package/src/manager/contextMenu/ContextMenuComponent.vue +1 -1
  208. package/src/manager/panel/PanelManagerComponent.vue +2 -2
  209. package/src/manager/toolbox/GroupToolboxComponent.vue +2 -2
  210. package/src/manager/toolbox/SelectToolboxComponent.vue +2 -2
  211. package/src/manager/toolbox/ToolboxManagerComponent.vue +12 -1
  212. package/src/manager/window/WindowComponent.vue +1 -1
  213. package/src/manager/window/WindowManager.vue +4 -1
  214. package/src/navigation/MapNavigation.vue +4 -1
  215. package/src/navigation/ObliqueRotation.vue +2 -2
  216. package/src/navigation/OrientationToolsButton.vue +1 -1
  217. package/src/navigation/TiltSlider.vue +1 -0
  218. package/src/navigation/VcsCompass.vue +1 -1
  219. package/src/navigation/VcsZoomButton.vue +1 -1
  220. package/src/navigation/locatorHelper.js +3 -21
  221. package/src/notifier/NotifierComponent.vue +1 -1
  222. package/src/search/ResultItem.vue +1 -1
  223. package/src/search/ResultsComponent.vue +1 -1
  224. package/src/search/SearchComponent.vue +3 -1
  225. package/src/uiConfig.d.ts +13 -4
  226. package/src/uiConfig.js +3 -2
  227. package/src/vcsUiApp.d.ts +30 -30
  228. package/src/vcsUiApp.js +32 -30
  229. package/dist/assets/ui-5dda32d2.css +0 -1
  230. /package/dist/assets/{vue-87bc6efe.js → vue-43880c5a.js} +0 -0
  231. /package/dist/assets/{vuetify-4c4e4217.css → vuetify-99bf601c.css} +0 -0
@@ -3,13 +3,14 @@ import ContentTreeItem, {
3
3
  } from './contentTreeItem.js';
4
4
  import {
5
5
  getStateFromLayer,
6
+ setStyleAction,
6
7
  setViewpointAction,
7
8
  } from './layerContentTreeItem.js';
8
9
  import { StateActionState } from '../actions/stateRefAction.js';
9
10
  import { executeCallbacks } from '../callback/vcsCallback.js';
10
11
 
11
12
  /**
12
- * @typedef {import("./contentTreeItem.js").ContentTreeItemOptions & { layerNames: string[], defaultViewpoint?: string }} LayerGroupContentTreeItemOptions
13
+ * @typedef {import("./contentTreeItem.js").ContentTreeItemOptions & { layerNames: string[], defaultViewpoint?: string, availableStyles?: string[] }} LayerGroupContentTreeItemOptions
13
14
  * @property {Array<string>} layerNames list of LayerNames which should be activated on click
14
15
  * @property {string} [defaultViewpoint] - the name of an optional default viewpoint
15
16
  */
@@ -69,10 +70,18 @@ class LayerGroupContentTreeItem extends ContentTreeItem {
69
70
  this._listeners = [];
70
71
 
71
72
  /**
72
- * @type {string|null}
73
+ * @type {string|undefined}
73
74
  * @private
74
75
  */
75
- this._defaultViewpoint = options.defaultViewpoint || null;
76
+ this._defaultViewpoint = options.defaultViewpoint;
77
+
78
+ /**
79
+ * @type {string[]}
80
+ * @private
81
+ */
82
+ this._availableStyles = Array.isArray(options.availableStyles)
83
+ ? options.availableStyles.slice()
84
+ : [];
76
85
 
77
86
  this._setup();
78
87
  }
@@ -116,6 +125,13 @@ class LayerGroupContentTreeItem extends ContentTreeItem {
116
125
  this.visible = layers.some((l) => l.isSupported(this._app.maps.activeMap));
117
126
  this.state = getStateFromLayers(layers);
118
127
  setViewpointAction(this, this._app, this._defaultViewpoint);
128
+ setStyleAction(
129
+ this,
130
+ this._app,
131
+ this._listeners,
132
+ this._layerNames,
133
+ this._availableStyles,
134
+ );
119
135
 
120
136
  this._listeners.push(
121
137
  this._app.layers.removed.addEventListener(resetHandler),
@@ -166,6 +182,9 @@ class LayerGroupContentTreeItem extends ContentTreeItem {
166
182
  if (this._defaultViewpoint) {
167
183
  config.defaultViewpoint = this._defaultViewpoint;
168
184
  }
185
+ if (this._availableStyles.length > 0) {
186
+ config.availableStyles = this._availableStyles.slice();
187
+ }
169
188
  return config;
170
189
  }
171
190
 
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <BalloonComponent v-bind="{ ...$attrs }">
2
+ <BalloonComponent v-bind="{ ...$attrs }" class="address-balloon-component">
3
3
  <template #default="{ attrs }">
4
4
  <v-list-item
5
5
  lines="two"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-card class="mx-auto elevation-0" v-if="position">
2
+ <v-card class="mx-auto elevation-0 balloon-component" v-if="position">
3
3
  <slot name="balloon-header" :attrs="{ ...$props, ...$attrs }">
4
4
  <v-list-item class="px-1">
5
5
  <template #prepend="prependScope">
@@ -1,5 +1,10 @@
1
1
  <template>
2
- <iframe :src="src" :title="title" :style="{ height, width }" />
2
+ <iframe
3
+ :src="src"
4
+ :title="title"
5
+ :style="{ height, width }"
6
+ class="iframe-component"
7
+ />
3
8
  </template>
4
9
  <script>
5
10
  import { inject } from 'vue';
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <BalloonComponent v-bind="{ ...$attrs }">
2
+ <BalloonComponent v-bind="{ ...$attrs }" class="markdown-balloon-component">
3
3
  <VcsMarkdown :content="content" />
4
4
  </BalloonComponent>
5
5
  </template>
@@ -28,7 +28,7 @@ export const balloonOffset = { x: 55, y: 25 };
28
28
  * @returns {undefined|import("@vcmap-cesium/engine").Cartesian2}
29
29
  */
30
30
  function getBalloonPositionCesium(scene, cartesian) {
31
- return SceneTransforms.wgs84ToWindowCoordinates(scene, cartesian);
31
+ return SceneTransforms.worldToWindowCoordinates(scene, cartesian);
32
32
  }
33
33
 
34
34
  /**
package/src/i18n/de.d.ts CHANGED
@@ -334,8 +334,12 @@ declare namespace messages {
334
334
  export { header_1 as header };
335
335
  export let altitudeMode: string;
336
336
  export let clampToGround: string;
337
+ export let clampToTerrain: string;
338
+ export let clampTo3DTiles: string;
337
339
  export let absolute: string;
338
340
  export let relativeToGround: string;
341
+ export let relativeToTerrain: string;
342
+ export let relativeTo3DTiles: string;
339
343
  export let groundLevel: string;
340
344
  export let classificationType: string;
341
345
  export let none: string;
@@ -354,6 +358,7 @@ declare namespace messages {
354
358
  export let modelHeading: string;
355
359
  export let modelPitch: string;
356
360
  export let modelRoll: string;
361
+ export let modelAutoScale: string;
357
362
  export let baseUrl: string;
358
363
  export let extrudedHeight: string;
359
364
  export let skirt: string;
package/src/i18n/de.js CHANGED
@@ -217,9 +217,13 @@ const messages = {
217
217
  vectorProperties: {
218
218
  header: 'Vektor Eigenschaften',
219
219
  altitudeMode: 'Höhenmodus',
220
- clampToGround: 'Auf Gelände legen',
220
+ clampToGround: 'Auf Grund legen',
221
+ clampToTerrain: 'Auf Gelände legen',
222
+ clampTo3DTiles: 'Auf 3D Tiles legen',
221
223
  absolute: 'Absolut',
222
- relativeToGround: 'Relativ zum Gelände',
224
+ relativeToGround: 'Relativ zum Grund',
225
+ relativeToTerrain: 'Relativ zum Gelände',
226
+ relativeTo3DTiles: 'Relativ zu 3D Tiles',
223
227
  groundLevel: 'Geländehöhe',
224
228
  classificationType: 'Klassifizierung',
225
229
  none: 'Keine',
@@ -238,6 +242,7 @@ const messages = {
238
242
  modelHeading: 'Modell Ausrichtung',
239
243
  modelPitch: 'Modell Neigung',
240
244
  modelRoll: 'Modell Rotation',
245
+ modelAutoScale: 'Modellautoskalierung',
241
246
  baseUrl: 'Basis URL',
242
247
  extrudedHeight: 'Extrusion',
243
248
  skirt: 'Skirts',
package/src/i18n/en.d.ts CHANGED
@@ -334,8 +334,12 @@ declare namespace messages {
334
334
  export { header_1 as header };
335
335
  export let altitudeMode: string;
336
336
  export let clampToGround: string;
337
+ export let clampToTerrain: string;
338
+ export let clampTo3DTiles: string;
337
339
  export let absolute: string;
338
340
  export let relativeToGround: string;
341
+ export let relativeToTerrain: string;
342
+ export let relativeTo3DTiles: string;
339
343
  export let groundLevel: string;
340
344
  export let classificationType: string;
341
345
  export let none: string;
@@ -354,6 +358,7 @@ declare namespace messages {
354
358
  export let modelHeading: string;
355
359
  export let modelPitch: string;
356
360
  export let modelRoll: string;
361
+ export let modelAutoScale: string;
357
362
  export let baseUrl: string;
358
363
  export let extrudedHeight: string;
359
364
  export let skirt: string;
package/src/i18n/en.js CHANGED
@@ -217,9 +217,13 @@ const messages = {
217
217
  vectorProperties: {
218
218
  header: 'Vector properties',
219
219
  altitudeMode: 'Altitude mode',
220
- clampToGround: 'Clamp to ground',
220
+ clampToGround: 'Drape on ground',
221
+ clampToTerrain: 'Drape on terrain',
222
+ clampTo3DTiles: 'Drape on 3D tiles',
221
223
  absolute: 'Absolute',
222
224
  relativeToGround: 'Relative to ground',
225
+ relativeToTerrain: 'Relative to terrain',
226
+ relativeTo3DTiles: 'Relative to 3D tiles',
223
227
  groundLevel: 'Ground level',
224
228
  classificationType: 'Classification',
225
229
  none: 'None',
@@ -238,6 +242,7 @@ const messages = {
238
242
  modelHeading: 'Model heading',
239
243
  modelPitch: 'Model pitch',
240
244
  modelRoll: 'Model roll',
245
+ modelAutoScale: 'Model auto scale',
241
246
  baseUrl: 'Base URL',
242
247
  extrudedHeight: 'Extrusion',
243
248
  skirt: 'Skirts',
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-list>
2
+ <v-list class="style-legend-item">
3
3
  <v-row no-gutters>
4
4
  <v-col
5
5
  v-for="(row, idx) in item.rows"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet class="overflow-y-auto">
2
+ <v-sheet class="overflow-y-auto vcs-legend">
3
3
  <v-expansion-panels
4
4
  variant="accordion"
5
5
  multiple
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <vcs-expansion-panel
3
+ class="collection-component"
3
4
  :heading="title"
4
5
  :header-actions="actions"
5
6
  :action-button-list-overflow-count="overflowCount"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div @click.stop="close">
2
+ <div @click.stop="close" class="context-menu-component">
3
3
  <VcsActionList :actions="actions" :show-icon="true" />
4
4
  </div>
5
5
  </template>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="vcs-panel-frame"
3
+ class="vcs-panel-frame panel-manager-component"
4
4
  @mouseup="setResizing(undefined)"
5
5
  @mouseleave="setResizing(undefined)"
6
6
  ref="panelFrameRef"
@@ -85,7 +85,7 @@
85
85
  * @description PanelManager rendering all Panels
86
86
  */
87
87
  export default {
88
- name: 'VcsPanelManager',
88
+ name: 'VcsPanelManagerComponent',
89
89
  components: {
90
90
  VcsMainMap,
91
91
  PanelComponent,
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div v-if="orderedButtons.length > 0">
2
+ <div v-if="orderedButtons.length > 0" class="group-toolbox-component">
3
3
  <v-menu
4
4
  v-model="open"
5
5
  @update:model-value="$emit('toggle', open)"
@@ -66,7 +66,7 @@
66
66
  * @vue-computed {boolean} hasActiveAction - Whether the group has an active action.
67
67
  */
68
68
  export default {
69
- name: 'ToolboxActionGroup',
69
+ name: 'GroupToolboxComponent',
70
70
  components: {
71
71
  VcsToolButton,
72
72
  VMenu,
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  v-if="group.action"
4
- class="d-flex"
4
+ class="d-flex select-toolbox-component"
5
5
  :class="{ 'vcs-toolbox-action-select-button--active': open }"
6
6
  >
7
7
  <VcsToolButton
@@ -75,7 +75,7 @@
75
75
  * @vue-prop {SelectToolboxComponent} group - A toolbox group of type 'select'.
76
76
  */
77
77
  export default {
78
- name: 'ToolboxActionSelect',
78
+ name: 'SelectToolboxComponent',
79
79
  components: {
80
80
  VcsToolButton,
81
81
  VMenu,
@@ -1,9 +1,10 @@
1
1
  <template>
2
2
  <v-toolbar
3
3
  v-if="toolboxOpen && orderedGroups.length > 0 && mdAndUp"
4
- class="vcs-toolbox mx-auto elevation-4 opacity-80"
4
+ class="vcs-toolbox mx-auto elevation-4 opacity-80 toolbox-manager-component"
5
5
  :class="{
6
6
  'rounded-b': !open,
7
+ 'vcs-toolbox__secondary': !isDefaultToolbox,
7
8
  }"
8
9
  :height="toolboxHeight"
9
10
  :style="{ zIndex }"
@@ -41,6 +42,16 @@
41
42
  </template>
42
43
 
43
44
  <style lang="scss" scoped>
45
+ .vcs-toolbox__secondary {
46
+ &.vcs-toolbox.v-theme {
47
+ &--light {
48
+ background-color: rgba(var(--v-theme-primary-lighten-3));
49
+ }
50
+ &--dark {
51
+ background-color: rgba(var(--v-theme-primary-darken-4));
52
+ }
53
+ }
54
+ }
44
55
  .vcs-toolbox {
45
56
  margin-top: 2px;
46
57
  width: fit-content;
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <v-sheet
3
3
  :id="`window-component--${windowState.id}`"
4
- class="elevation-3 position-absolute d-flex flex-column"
4
+ class="elevation-3 position-absolute d-flex flex-column window-component"
5
5
  v-bind="$attrs"
6
6
  @dragstart="dragStart"
7
7
  @dragend="dragEnd"
@@ -1,5 +1,8 @@
1
1
  <template>
2
- <div :class="{ 'win-container-mobile': addMobileClass }">
2
+ <div
3
+ :class="{ 'win-container-mobile': addMobileClass }"
4
+ class="window-manager"
5
+ >
3
6
  <WindowComponent
4
7
  v-for="id in componentIds"
5
8
  :key="id"
@@ -1,5 +1,8 @@
1
1
  <template>
2
- <v-container :class="xs ? 'nav-container mobile' : 'nav-container'">
2
+ <v-container
3
+ :class="xs ? 'nav-container mobile' : 'nav-container'"
4
+ class="map-navigation"
5
+ >
3
6
  <v-row>
4
7
  <VcsCompass
5
8
  :view-mode="viewMode"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="d-inline-flex rounded vcs-oblique-orientation">
2
+ <div class="d-inline-flex rounded oblique-orientation">
3
3
  <div class="d-inline-flex rounded inner">
4
4
  <OrientationToolsButton
5
5
  @click="input(-90)"
@@ -56,7 +56,7 @@
56
56
  </script>
57
57
 
58
58
  <style lang="scss" scoped>
59
- .vcs-oblique-orientation {
59
+ .oblique-orientation {
60
60
  box-shadow: rgba(0, 0, 0, 0.15) 0 2px 2px 0;
61
61
  .inner {
62
62
  box-shadow: rgba(0, 0, 0, 0.25) 0 -2px 2px 0 inset;
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <v-card
3
- class="d-flex align-center justify-center text-center btn-orientation-tools"
3
+ class="d-flex align-center justify-center text-center btn-orientation-tools orientation-tools-button"
4
4
  v-bind="{ ...$attrs }"
5
5
  :height="height"
6
6
  :width="width"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <v-card
3
+ class="tilt-slider"
3
4
  :width="minWidth"
4
5
  :height="minHeight"
5
6
  v-bind="props"
@@ -4,7 +4,7 @@
4
4
  transform: `rotate(${compassRotation}deg)`,
5
5
  }"
6
6
  @click="$emit('update:modelValue', 0)"
7
- class="d-flex flex-column justify-center align-center position-relative rounded-circle user-select-none transition-transform-200-ease"
7
+ class="d-flex flex-column justify-center align-center position-relative rounded-circle user-select-none transition-transform-200-ease vcs-compass"
8
8
  elevation="1"
9
9
  :height="height"
10
10
  :width="width"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="rounded vcs-navigation-zoom">
2
+ <div class="rounded vcs-navigation-zoom vcs-zoom-button">
3
3
  <div class="rounded inner">
4
4
  <OrientationToolsButton
5
5
  @click="$emit('zoom-in')"
@@ -5,8 +5,6 @@ import {
5
5
  Projection,
6
6
  VectorLayer,
7
7
  VectorStyleItem,
8
- ensureFeatureAbsolute,
9
- CesiumMap,
10
8
  } from '@vcmap/core';
11
9
  import { Circle, Point } from 'ol/geom';
12
10
  import { Feature } from 'ol';
@@ -34,9 +32,9 @@ function getColor(opacity, app) {
34
32
  * Place a location point and accuracy circle on the map.
35
33
  * @param {import("@vcmap/core").VectorLayer} layer The OpenLayers layer to add the features to.
36
34
  * @param {GeolocationCoordinates} point The point object containing longitude, latitude, and accuracy.
37
- * @param {import("../vcsUiApp.js").default} app
35
+ * @returns {Promise<void>}
38
36
  */
39
- async function placeLocationInMap(layer, point, app) {
37
+ async function placeLocationInMap(layer, point) {
40
38
  layer.removeFeaturesById(['_tooltipLocationPoint']);
41
39
  layer.removeFeaturesById(['_tooltipLocationCircle']);
42
40
 
@@ -49,15 +47,12 @@ async function placeLocationInMap(layer, point, app) {
49
47
  });
50
48
  feature.setId('_tooltipLocationPoint');
51
49
 
52
- if (app.maps.activeMap instanceof CesiumMap) {
53
- await ensureFeatureAbsolute(feature, layer, app.maps.activeMap);
54
- }
55
-
56
50
  const accuracyCircle = new Feature({
57
51
  geometry: new Circle(
58
52
  Projection.wgs84ToMercator([point.longitude, point.latitude]),
59
53
  point.accuracy,
60
54
  ),
55
+ olcs_altitudeMode: 'clampToGround',
61
56
  });
62
57
  accuracyCircle.setId('_tooltipLocationCircle');
63
58
  layer.addFeatures([accuracyCircle, feature]);
@@ -202,18 +197,6 @@ export function createLocatorAction(app) {
202
197
  style,
203
198
  });
204
199
 
205
- const mapChangedListener = app.maps.mapActivated.addEventListener(
206
- async (map) => {
207
- if (map instanceof CesiumMap) {
208
- const locatorFeature = vectorLayer.getFeatureById(
209
- '_tooltipLocationPoint',
210
- );
211
- if (locatorFeature) {
212
- await ensureFeatureAbsolute(locatorFeature, vectorLayer, map);
213
- }
214
- }
215
- },
216
- );
217
200
  markVolatile(vectorLayer);
218
201
  app.layers.add(vectorLayer);
219
202
 
@@ -283,7 +266,6 @@ export function createLocatorAction(app) {
283
266
  };
284
267
  const destroy = () => {
285
268
  destroyLayer();
286
- mapChangedListener();
287
269
  themeListener();
288
270
  style.destroy();
289
271
  state.coordinates = undefined;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div>
2
+ <div class="notifier-component">
3
3
  <v-snackbar
4
4
  v-for="notification in notifications"
5
5
  :key="notification.id"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-list-item v-if="item" v-bind="$attrs">
2
+ <v-list-item v-if="item" v-bind="$attrs" class="result-item">
3
3
  <template #prepend v-if="item.icon">
4
4
  <v-icon>
5
5
  {{ item.icon }}
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <v-list
3
- class="ma-0 overflow-y-auto vcs-search-results"
3
+ class="ma-0 overflow-y-auto vcs-search-results results-component"
4
4
  v-model:selected="highlighted"
5
5
  >
6
6
  <ResultItem
@@ -1,6 +1,8 @@
1
1
  <template>
2
2
  <v-sheet>
3
- <span class="d-flex justify-space-between align-center mt-1 ml-2">
3
+ <span
4
+ class="d-flex justify-space-between align-center mt-1 ml-2 search-component"
5
+ >
4
6
  <v-icon class="pa-1" :size="searchIconSize"> $vcsSearch </v-icon>
5
7
  <VcsTextField
6
8
  class="d-inline-block user-select-none w-100 mx-1"
package/src/uiConfig.d.ts CHANGED
@@ -137,9 +137,13 @@ export type UiConfigObject = {
137
137
  */
138
138
  displayQuality?: import("@vcmap/core").DisplayQualityOptions | undefined;
139
139
  /**
140
- * - Vuetify Theming, also see vuetify configuration https://vuetifyjs.com/en/features/theme/
140
+ * - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
141
141
  */
142
142
  vuetifyTheme?: any;
143
+ /**
144
+ * - open the legend window, if new layer has a config
145
+ */
146
+ openLegendOnAdd?: boolean | undefined;
143
147
  };
144
148
  /**
145
149
  * @typedef {{
@@ -206,7 +210,8 @@ export type UiConfigObject = {
206
210
  * @property {boolean} [hideSettings] - can be used to hide the settings Window
207
211
  * @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
208
212
  * @property {import("@vcmap/core").DisplayQualityOptions} [displayQuality] - the display quality settings
209
- * @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuration https://vuetifyjs.com/en/features/theme/
213
+ * @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
214
+ * @property {boolean} [openLegendOnAdd] - open the legend window, if new layer has a config
210
215
  */
211
216
  /**
212
217
  * @extends {Collection<UiConfigurationItem<unknown>>}
@@ -233,7 +238,7 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
233
238
  */
234
239
  private _listeners;
235
240
  /**
236
- * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>>}
241
+ * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Record<string, *> & UiConfigObject>>}
237
242
  */
238
243
  get config(): {
239
244
  readonly [x: string]: any;
@@ -472,9 +477,13 @@ declare class UiConfig extends Collection<UiConfigurationItem<unknown>> {
472
477
  } | undefined;
473
478
  } | undefined;
474
479
  /**
475
- * - Vuetify Theming, also see vuetify configuration https://vuetifyjs.com/en/features/theme/
480
+ * - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
476
481
  */
477
482
  readonly vuetifyTheme?: any;
483
+ /**
484
+ * - open the legend window, if new layer has a config
485
+ */
486
+ readonly openLegendOnAdd?: boolean | undefined;
478
487
  };
479
488
  }
480
489
  import { Collection } from '@vcmap/core';
package/src/uiConfig.js CHANGED
@@ -70,7 +70,8 @@ import { reactive, readonly } from 'vue';
70
70
  * @property {boolean} [hideSettings] - can be used to hide the settings Window
71
71
  * @property {boolean} [overviewMapActiveOnStartup] - can be used to activate the overviewMap on startup
72
72
  * @property {import("@vcmap/core").DisplayQualityOptions} [displayQuality] - the display quality settings
73
- * @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuration https://vuetifyjs.com/en/features/theme/
73
+ * @property {import("./vuetifyPlugins/vuetify.js").VcsThemes} [vuetifyTheme] - Vuetify Theming, also see vuetify configuraton https://vuetifyjs.com/en/features/theme/
74
+ * @property {boolean} [openLegendOnAdd] - open the legend window, if new layer has a config
74
75
  */
75
76
 
76
77
  /**
@@ -117,7 +118,7 @@ class UiConfig extends Collection {
117
118
  }
118
119
 
119
120
  /**
120
- * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Object<string, *> & UiConfigObject>>}
121
+ * @type {import("vue").DeepReadonly<import("vue").UnwrapNestedRefs<Record<string, *> & UiConfigObject>>}
121
122
  */
122
123
  get config() {
123
124
  return this._readonlyConfig;