@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
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div
3
- class="pa-2 bg-base-lighten-3 position-relative d-flex flex-row justify-space-between align-center rounded-0"
3
+ class="pa-2 bg-base-lighten-3 position-relative d-flex flex-row justify-space-between align-center rounded-0 vcs-treeview-searchbar"
4
4
  >
5
5
  <slot name="prepend">
6
6
  <v-icon class="search-icon my-0 ml-1" :size="iconSize - 4">
@@ -25,7 +25,11 @@
25
25
  }
26
26
  </style>
27
27
  <template>
28
- <div class="title-parent pr-2" ref="titleParent">
28
+ <div
29
+ class="title-parent pr-2 vcs-treeview-title"
30
+ ref="titleParent"
31
+ @click.stop="item.clicked && !item.disabled && item.clicked($event)"
32
+ >
29
33
  <span>
30
34
  {{ $st(item.title || item.name) }}
31
35
  </span>
@@ -1,9 +1,9 @@
1
1
  <template>
2
- <span class="badge rounded-circle h-3 w-3" :class="[color]" />
2
+ <span class="vcs-badge rounded-circle h-3 w-3" :class="[color]" />
3
3
  </template>
4
4
 
5
5
  <style lang="scss" scoped>
6
- .badge {
6
+ .vcs-badge {
7
7
  border: 1px solid rgb(var(--v-theme-surface)) !important;
8
8
  }
9
9
  .h-3 {
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div
3
3
  v-if="$slots.default || text"
4
- class="ma-0 font-weight-regular rounded-0 bg-base-lighten-4"
4
+ class="ma-0 font-weight-regular rounded-0 bg-base-lighten-4 vcs-help"
5
5
  >
6
6
  <v-container class="py-1 px-2 vcs-help">
7
7
  <slot>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-container class="pa-0">
2
+ <v-container class="pa-0 abstract-config-editor">
3
3
  <v-form v-model="isValid" @submit.prevent="submit">
4
4
  <slot />
5
5
  <div class="d-flex gc-2 px-2 pt-2 pb-1">
@@ -43,7 +43,11 @@
43
43
  const iconSize = useIconSize();
44
44
  </script>
45
45
  <template>
46
- <v-expansion-panel :disabled="disabled" v-bind="$attrs">
46
+ <v-expansion-panel
47
+ :disabled="disabled"
48
+ v-bind="$attrs"
49
+ class="vcs-expansion-panel"
50
+ >
47
51
  <v-expansion-panel-title static class="px-2">
48
52
  <template #default="{ expanded }">
49
53
  <v-list-item-title ref="panelHeader">
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="menu-wrapper">
3
3
  <div class="d-flex align-center py-1">
4
4
  <VcsCheckbox
5
5
  :model-value="!!modelValue"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <VcsVectorStyleComponent
3
+ class="vcs-feature-style-component"
3
4
  :model-value="styleOptions"
4
5
  @update:fill="updateFill"
5
6
  @update:stroke="updateStroke"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <MenuWrapper
3
+ class="vcs-fill-menu"
3
4
  :value-fallback="{ color: [255, 255, 255, 1] }"
4
5
  name="components.style.fill"
5
6
  v-bind="{ ...$attrs, ...$props }"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <v-color-picker
3
+ class="vcs-fill-selector"
3
4
  :model-value="rgbaObject"
4
5
  @update:model-value="updateColor"
5
6
  mode="rgba"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <MenuWrapper
3
+ class="vcs-image-menu"
3
4
  :value-fallback="{
4
5
  radius: 10,
5
6
  fill: { color: [255, 255, 255, 1] },
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-image-selector">
3
3
  <v-container class="px-1 py-0">
4
4
  <v-row no-gutters>
5
5
  <v-col class="d-flex justify-center py-1">
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <MenuWrapper
3
+ class="vcs-stroke-menu"
3
4
  :value-fallback="{ color: [0, 0, 0, 1], width: 1 }"
4
5
  name="components.style.stroke"
5
6
  v-bind="{ ...$attrs, ...$props }"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-stroke-selector">
3
3
  <v-container class="px-1 py-0">
4
4
  <v-row no-gutters>
5
5
  <v-col>
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <MenuWrapper
3
+ class="vcs-text-menu"
3
4
  :value-fallback="fallbackStyle"
4
5
  name="components.style.text"
5
6
  v-bind="{ ...$attrs, ...$props }"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-text-selector">
3
3
  <v-container class="px-1 py-0">
4
4
  <v-row no-gutters>
5
5
  <v-col>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-vector-style-component">
3
3
  <component
4
4
  v-for="key in styleComponents"
5
5
  :key="key"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div>
2
+ <div class="vcs-data-table">
3
3
  <VcsTreeviewSearchbar
4
4
  v-if="showSearchbar"
5
5
  :placeholder="$st(searchbarPlaceholder)"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <VcsDataTable
3
+ class="vcs-table"
3
4
  v-bind="$attrs"
4
5
  :items="items"
5
6
  :headers="[keyHeader, valueHeader]"
@@ -37,7 +37,7 @@
37
37
  </script>
38
38
 
39
39
  <template>
40
- <td ref="td" :style="{ 'max-width': width }">
40
+ <td ref="td" :style="{ 'max-width': width }" class="vcs-table-cell">
41
41
  <component
42
42
  :is="tag"
43
43
  :class="{
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-feature-editing-window">
3
3
  <VcsFormSection
4
4
  v-if="session?.type === SessionType.SELECT"
5
5
  heading="components.editor.modifyHeader"
@@ -99,18 +99,28 @@
99
99
  /**
100
100
  * Returns the allowed transformation modes for the provided geometry types and number of features. Rotate is e.g. not allowed for a single point but for multiple points.
101
101
  * @param {Set<GeometryType>} geometryTypes A set with all geometry types of the features.
102
- * @param {number} nFeatures The number of the features.
102
+ * @param {import("ol").Feature[]} features The features currently being edited.
103
+ * @param {import("@vcmap/core").VectorLayer} layer The number of the features.
104
+ * @param {boolean} is3D if the current map is 3D
103
105
  * @returns {Array<TransformationMode>} The allowed transformation modes.
104
106
  */
105
107
  export function getAllowedEditorTransformationModes(
106
108
  geometryTypes,
107
- nFeatures,
109
+ features,
110
+ layer,
111
+ is3D = false,
108
112
  ) {
113
+ const nFeatures = features.length;
109
114
  const isSinglePoint =
110
- nFeatures === 1 && geometryTypes.has(GeometryType.Point);
115
+ nFeatures === 1 &&
116
+ geometryTypes.has(GeometryType.Point) &&
117
+ (!is3D || layer.vectorProperties.renderAs(features[0]) === 'geometry');
118
+
111
119
  const isSingleCircle =
112
120
  nFeatures === 1 && geometryTypes.has(GeometryType.Circle);
121
+
113
122
  const isBboxSelected = geometryTypes.has(GeometryType.BBox);
123
+
114
124
  return [
115
125
  TransformationMode.TRANSLATE,
116
126
  ...(isSinglePoint || isSingleCircle || isBboxSelected
@@ -194,36 +204,7 @@
194
204
  * Sets the changed vector property options on the features. Also handles side effects.
195
205
  * @param {import("@vcmap/core").VectorPropertiesOptions} update New property values from user input.
196
206
  */
197
- async function updateFeatureProperties(update) {
198
- const extrusionLikePropertyKeys = [
199
- 'extrudedHeight',
200
- 'skirt',
201
- 'storeysAboveGround',
202
- 'storeysBelowGround',
203
- 'storeyHeightsAboveGround',
204
- 'storeyHeightsBelowGround',
205
- ];
206
- const setsExtrusionLikePropertyKeys =
207
- !!extrusionLikePropertyKeys.filter(
208
- (key) => Object.keys(update).includes(key) && !!update[key],
209
- ).length;
210
- if (
211
- setsExtrusionLikePropertyKeys &&
212
- featureProperties.value.altitudeMode !== 'absolute'
213
- ) {
214
- update.altitudeMode = 'absolute';
215
- } else if (update.altitudeMode === 'clampToGround') {
216
- extrusionLikePropertyKeys
217
- .filter((key) => !!featureProperties.value[key])
218
- .forEach((key) => {
219
- update[key] = 0;
220
- });
221
- }
222
- // when in create mode and changing altitude mode, this is triggered, but currentFeatures is empty array.
223
- if (update.altitudeMode === 'absolute' && features?.length) {
224
- await editorManager.placeCurrentFeaturesOnTerrain();
225
- }
226
-
207
+ function updateFeatureProperties(update) {
227
208
  layer.value.vectorProperties.setValuesForFeatures(
228
209
  update,
229
210
  features.value,
@@ -297,7 +278,9 @@
297
278
  function getAllowedModifyActions() {
298
279
  const allowedModes = getAllowedEditorTransformationModes(
299
280
  currentGeometryTypes.value.types,
300
- currentGeometryTypes.value.nFeatures,
281
+ features.value,
282
+ layer.value,
283
+ is3D.value,
301
284
  );
302
285
 
303
286
  const allowedActions = allowedModes.map((mode) => {
@@ -1,10 +1,12 @@
1
1
  /**
2
2
  * Returns the allowed transformation modes for the provided geometry types and number of features. Rotate is e.g. not allowed for a single point but for multiple points.
3
3
  * @param {Set<GeometryType>} geometryTypes A set with all geometry types of the features.
4
- * @param {number} nFeatures The number of the features.
4
+ * @param {import("ol").Feature[]} features The features currently being edited.
5
+ * @param {import("@vcmap/core").VectorLayer} layer The number of the features.
6
+ * @param {boolean} is3D if the current map is 3D
5
7
  * @returns {Array<TransformationMode>} The allowed transformation modes.
6
8
  */
7
- export function getAllowedEditorTransformationModes(geometryTypes: Set<GeometryType>, nFeatures: number): Array<TransformationMode>;
9
+ export function getAllowedEditorTransformationModes(geometryTypes: Set<GeometryType>, features: import("ol").Feature[], layer: import("@vcmap/core").VectorLayer, is3D?: boolean): Array<TransformationMode>;
8
10
  export namespace EditorTransformationIcons {
9
11
  let translate: string;
10
12
  let rotate: string;
@@ -41,7 +43,7 @@ declare const _default: import("vue").DefineComponent<{
41
43
  availableModifyActions: import("vue").ShallowRef<never[]>;
42
44
  availableVectorProperties: import("vue").ShallowRef<never[]>;
43
45
  is3D: import("vue").Ref<boolean>;
44
- updateFeatureProperties: (update: import("@vcmap/core").VectorPropertiesOptions) => Promise<void>;
46
+ updateFeatureProperties: (update: import("@vcmap/core").VectorPropertiesOptions) => void;
45
47
  defaultVectorProperties: import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesOptions;
46
48
  }, any, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
47
49
  allowedVectorProperties: {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-feature-transforms">
3
3
  <v-container class="pl-0 pr-1 py-1">
4
4
  <v-row
5
5
  no-gutters
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <VcsFormSection
3
+ class="vcs-vector-properties-component"
3
4
  :heading="$attrs.heading || 'components.vectorProperties.header'"
4
5
  :expandable="expandable"
5
6
  :start-open="startOpen"
@@ -21,13 +22,7 @@
21
22
  />
22
23
  </v-col>
23
24
  </v-row>
24
- <v-row
25
- v-if="
26
- visibleProperties.has('heightAboveGround') &&
27
- localValue.altitudeMode === 'relativeToGround'
28
- "
29
- no-gutters
30
- >
25
+ <v-row v-if="visibleProperties.has('heightAboveGround')" no-gutters>
31
26
  <v-col>
32
27
  <VcsLabel :html-for="`${cid}-vp-height-above-ground`">{{
33
28
  $t('components.vectorProperties.heightAboveGround')
@@ -40,7 +35,7 @@
40
35
  :hide-spin-buttons="true"
41
36
  type="number"
42
37
  unit="m"
43
- placeholder="0"
38
+ clearable
44
39
  />
45
40
  </v-col>
46
41
  </v-row>
@@ -345,6 +340,7 @@
345
340
  'modelHeading',
346
341
  'modelPitch',
347
342
  'modelRoll',
343
+ 'modelAutoScale',
348
344
  'baseUrl',
349
345
  ].some((prop) => visibleProperties.has(prop))
350
346
  "
@@ -440,6 +436,16 @@
440
436
  />
441
437
  </v-col>
442
438
  </v-row>
439
+ <v-row v-if="visibleProperties.has('modelAutoScale')" no-gutters>
440
+ <v-col cols="6">
441
+ <VcsLabel>{{
442
+ $t('components.vectorProperties.modelAutoScale')
443
+ }}</VcsLabel>
444
+ </v-col>
445
+ <v-col>
446
+ <VcsCheckbox v-model="localValue.modelAutoScale" />
447
+ </v-col>
448
+ </v-row>
443
449
  <v-row v-if="visibleProperties.has('baseUrl')" no-gutters>
444
450
  <v-col>
445
451
  <VcsLabel :html-for="`${cid}-vp-base-url`">{{
@@ -494,6 +500,7 @@
494
500
  'modelHeading',
495
501
  'modelPitch',
496
502
  'modelRoll',
503
+ 'modelAutoScale',
497
504
  'baseUrl',
498
505
  ];
499
506
 
@@ -595,6 +602,14 @@
595
602
  value: 'clampToGround',
596
603
  title: 'components.vectorProperties.clampToGround',
597
604
  },
605
+ {
606
+ value: 'clampToTerrain',
607
+ title: 'components.vectorProperties.clampToTerrain',
608
+ },
609
+ {
610
+ value: 'clampTo3DTiles',
611
+ title: 'components.vectorProperties.clampTo3DTiles',
612
+ },
598
613
  {
599
614
  value: 'absolute',
600
615
  title: 'components.vectorProperties.absolute',
@@ -602,10 +617,20 @@
602
617
  ];
603
618
 
604
619
  if (visibleProperties.value.has('heightAboveGround')) {
605
- altitudeModes.push({
606
- value: 'relativeToGround',
607
- title: 'components.vectorProperties.relativeToGround',
608
- });
620
+ altitudeModes.push(
621
+ {
622
+ value: 'relativeToGround',
623
+ title: 'components.vectorProperties.relativeToGround',
624
+ },
625
+ {
626
+ value: 'relativeToTerrain',
627
+ title: 'components.vectorProperties.relativeToTerrain',
628
+ },
629
+ {
630
+ value: 'relativeTo3DTiles',
631
+ title: 'components.vectorProperties.relativeTo3DTiles',
632
+ },
633
+ );
609
634
  }
610
635
 
611
636
  return altitudeModes;
@@ -75,7 +75,7 @@ declare const _default: import("vue").DefineComponent<{
75
75
  toString: () => string;
76
76
  } | undefined;
77
77
  getEyeOffset: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => import("@vcmap-cesium/engine", { with: { "resolution-mode": "import" } }).Cartesian3 | undefined;
78
- heightAboveGround: number;
78
+ heightAboveGround: number | undefined;
79
79
  getHeightAboveGround: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => number;
80
80
  skirt: number;
81
81
  getSkirt: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => number;
@@ -106,7 +106,7 @@ declare const _default: import("vue").DefineComponent<{
106
106
  modelRoll: number;
107
107
  getModelRoll: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => number;
108
108
  modelOptions: Record<string, unknown> | undefined;
109
- getModelOptions: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => Record<string, unknown>;
109
+ getModelOptions: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => Record<string, unknown> | undefined;
110
110
  modelAutoScale: boolean;
111
111
  getModelAutoScale: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => boolean;
112
112
  baseUrl: string | undefined;
@@ -210,6 +210,7 @@ declare const _default: import("vue").DefineComponent<{
210
210
  getPrimitiveOptions: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesPrimitiveOptions<import("@vcmap/core", { with: { "resolution-mode": "import" } }).PrimitiveOptionsType> | undefined;
211
211
  getPrimitive: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesPrimitive | null;
212
212
  getModel: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesModelOptions | null;
213
+ renderAs: (feature: import("ol/Feature.js", { with: { "resolution-mode": "import" } }).default<import("ol/geom.js", { with: { "resolution-mode": "import" } }).Geometry>) => "geometry" | "model" | "primitive";
213
214
  setVcsMeta: (vcsMeta: import("@vcmap/core", { with: { "resolution-mode": "import" } }).VcsMeta) => void;
214
215
  setValues: (options: import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesOptions) => void;
215
216
  getValues: () => import("@vcmap/core", { with: { "resolution-mode": "import" } }).VectorPropertiesOptions;
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <v-sheet>
2
+ <v-sheet class="vcs-viewpoint-component">
3
3
  <VcsFormSection
4
4
  heading="components.viewpoint.general"
5
5
  :expandable="expandable"
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <AbstractConfigEditor
3
+ class="vcs-viewpoint-editor"
3
4
  @submit="apply"
4
5
  @cancel="cancel"
5
6
  @reset="reset"
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div>
2
+ <div class="layer-tree">
3
3
  <VcsTreeview
4
4
  v-if="tree && tree.length"
5
5
  :items="tree"
@@ -11,6 +11,14 @@
11
11
  * @param {string|import("@vcmap/core").Viewpoint=} viewpoint
12
12
  */
13
13
  export function setViewpointAction(item: import("./contentTreeItem.js").default, app: import("@src/vcsUiApp.js").default, viewpoint?: (string | import("@vcmap/core").Viewpoint) | undefined): void;
14
+ /**
15
+ * @param {import("./contentTreeItem.js").default} item
16
+ * @param {import("@src/vcsUiApp.js").default} app
17
+ * @param {Array<Function>} listeners
18
+ * @param {Array<string>} layerNames
19
+ * @param {Array<string>=} availableStyles
20
+ */
21
+ export function setStyleAction(item: import("./contentTreeItem.js").default, app: import("@src/vcsUiApp.js").default, listeners: Array<Function>, layerNames: Array<string>, availableStyles?: Array<string> | undefined): void;
14
22
  /**
15
23
  * @param {import("@vcmap/core").Layer} layer
16
24
  * @returns {StateActionState}
@@ -51,11 +59,6 @@ declare class LayerContentTreeItem extends VcsObjectContentTreeItem<LayerContent
51
59
  * @private
52
60
  */
53
61
  private get _layer();
54
- /**
55
- * @param {Array<string>=} availableStyles
56
- * @private
57
- */
58
- private _setStyleAction;
59
62
  /**
60
63
  * @private
61
64
  */
@@ -43,6 +43,47 @@ export function setViewpointAction(item, app, viewpoint) {
43
43
  }
44
44
  }
45
45
 
46
+ /**
47
+ * @param {import("./contentTreeItem.js").default} item
48
+ * @param {import("@src/vcsUiApp.js").default} app
49
+ * @param {Array<Function>} listeners
50
+ * @param {Array<string>} layerNames
51
+ * @param {Array<string>=} availableStyles
52
+ */
53
+ export function setStyleAction(
54
+ item,
55
+ app,
56
+ listeners,
57
+ layerNames,
58
+ availableStyles,
59
+ ) {
60
+ const name = 'StyleSelector';
61
+ item.removeAction(name);
62
+ if (Array.isArray(availableStyles) && availableStyles.length > 0) {
63
+ const { action, destroy } = createModalAction(
64
+ {
65
+ name,
66
+ icon: '$vcsColorSwatch',
67
+ title: 'content.styleAction.title',
68
+ },
69
+ {
70
+ component,
71
+ position: {
72
+ width: 200,
73
+ },
74
+ props: reactive({
75
+ availableStyles: availableStyles.slice(),
76
+ layerNames: layerNames.slice(),
77
+ }),
78
+ },
79
+ app,
80
+ vcsAppSymbol,
81
+ );
82
+ item.addAction(action, 4);
83
+ listeners.push(destroy);
84
+ }
85
+ }
86
+
46
87
  /**
47
88
  * @param {import("@vcmap/core").Layer} layer
48
89
  * @returns {StateActionState}
@@ -101,38 +142,6 @@ class LayerContentTreeItem extends VcsObjectContentTreeItem {
101
142
  return this._app.layers.getByKey(this._layerName);
102
143
  }
103
144
 
104
- /**
105
- * @param {Array<string>=} availableStyles
106
- * @private
107
- */
108
- _setStyleAction(availableStyles) {
109
- const name = 'StyleSelector';
110
- this.removeAction(name);
111
- if (Array.isArray(availableStyles) && availableStyles.length > 0) {
112
- const { action, destroy } = createModalAction(
113
- {
114
- name,
115
- icon: '$vcsColorSwatch',
116
- title: 'content.styleAction.title',
117
- },
118
- {
119
- component,
120
- position: {
121
- width: 200,
122
- },
123
- props: reactive({
124
- availableStyles: availableStyles.slice(),
125
- layerName: this._layerName,
126
- }),
127
- },
128
- this._app,
129
- vcsAppSymbol,
130
- );
131
- this.addAction(action, 4);
132
- this._listeners.push(destroy);
133
- }
134
- }
135
-
136
145
  /**
137
146
  * @private
138
147
  */
@@ -165,8 +174,13 @@ class LayerContentTreeItem extends VcsObjectContentTreeItem {
165
174
  */
166
175
  _setProperties(properties) {
167
176
  super._setProperties(properties);
168
-
169
- this._setStyleAction(properties.availableStyles);
177
+ setStyleAction(
178
+ this,
179
+ this._app,
180
+ this._listeners,
181
+ [this._layerName],
182
+ properties.availableStyles,
183
+ );
170
184
  setViewpointAction(this, this._app, properties.defaultViewpoint);
171
185
  }
172
186
 
@@ -2,6 +2,7 @@ export default LayerGroupContentTreeItem;
2
2
  export type LayerGroupContentTreeItemOptions = import("./contentTreeItem.js").ContentTreeItemOptions & {
3
3
  layerNames: string[];
4
4
  defaultViewpoint?: string;
5
+ availableStyles?: string[];
5
6
  };
6
7
  /**
7
8
  * A layer group. When clicked will try to activate all layers in the group or deactivate all layer in the group if all are active.
@@ -25,10 +26,15 @@ declare class LayerGroupContentTreeItem extends ContentTreeItem {
25
26
  */
26
27
  private _listeners;
27
28
  /**
28
- * @type {string|null}
29
+ * @type {string|undefined}
29
30
  * @private
30
31
  */
31
32
  private _defaultViewpoint;
33
+ /**
34
+ * @type {string[]}
35
+ * @private
36
+ */
37
+ private _availableStyles;
32
38
  /**
33
39
  * @type {Array<import("@vcmap/core").Layer>}
34
40
  * @private