@vcmap/ui 5.0.0-rc.29 → 5.0.0-rc.31

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 (334) hide show
  1. package/build/buildHelpers.js +4 -3
  2. package/config/base.config.json +5 -4
  3. package/config/dev.config.json +8 -0
  4. package/config/graphFeatureInfo.config.json +1 -1
  5. package/config/projects.config.json +2 -2
  6. package/dist/assets/cesium/ThirdParty/Workers/basis_transcoder.js +1 -1
  7. package/dist/assets/cesium/Workers/chunk-227AJNOA.js +59 -0
  8. package/dist/assets/cesium/Workers/chunk-2R5O53JW.js +157 -0
  9. package/dist/assets/cesium/Workers/chunk-34YUDLRP.js +781 -0
  10. package/dist/assets/cesium/Workers/chunk-3W63OHNJ.js +100 -0
  11. package/dist/assets/cesium/Workers/chunk-4MFFIWUA.js +163 -0
  12. package/dist/assets/cesium/Workers/chunk-66QLLS45.js +218 -0
  13. package/dist/assets/cesium/Workers/chunk-6BTKZDRG.js +77 -0
  14. package/dist/assets/cesium/Workers/chunk-A4JVFBQ3.js +101 -0
  15. package/dist/assets/cesium/Workers/chunk-ABADGKYE.js +58 -0
  16. package/dist/assets/cesium/Workers/chunk-AFFLIKOH.js +353 -0
  17. package/dist/assets/cesium/Workers/chunk-AHKEZ2OE.js +629 -0
  18. package/dist/assets/cesium/Workers/chunk-C3SXRKRW.js +476 -0
  19. package/dist/assets/cesium/Workers/chunk-CCFQRR6D.js +55 -0
  20. package/dist/assets/cesium/Workers/chunk-CHHNOC2C.js +1860 -0
  21. package/dist/assets/cesium/Workers/chunk-CTELOFLA.js +196 -0
  22. package/dist/assets/cesium/Workers/chunk-DUHWWBQQ.js +3273 -0
  23. package/dist/assets/cesium/Workers/chunk-EW2GWJYB.js +44 -0
  24. package/dist/assets/cesium/Workers/chunk-GLZBE3ML.js +421 -0
  25. package/dist/assets/cesium/Workers/chunk-HARLBUOL.js +236 -0
  26. package/dist/assets/cesium/Workers/chunk-HQF437NJ.js +117 -0
  27. package/dist/assets/cesium/Workers/chunk-IPA4EACJ.js +368 -0
  28. package/dist/assets/cesium/Workers/chunk-J3JY6I2C.js +1009 -0
  29. package/dist/assets/cesium/Workers/chunk-JB2LWGH4.js +390 -0
  30. package/dist/assets/cesium/Workers/chunk-JS3AW5BK.js +634 -0
  31. package/dist/assets/cesium/Workers/chunk-K36FEYS7.js +452 -0
  32. package/dist/assets/cesium/Workers/chunk-KD4Y7CZL.js +400 -0
  33. package/dist/assets/cesium/Workers/chunk-KTJSNCK4.js +842 -0
  34. package/dist/assets/cesium/Workers/chunk-LLUNNUJV.js +258 -0
  35. package/dist/assets/cesium/Workers/{package.js → chunk-MPAZH4BF.js} +13 -2
  36. package/dist/assets/cesium/Workers/chunk-MYZB7C4T.js +1258 -0
  37. package/dist/assets/cesium/Workers/chunk-N3JIFFX2.js +501 -0
  38. package/dist/assets/cesium/Workers/chunk-O5AMBQ36.js +430 -0
  39. package/dist/assets/cesium/Workers/chunk-OAVNIRB4.js +124 -0
  40. package/dist/assets/cesium/Workers/chunk-OYFCF4PL.js +171 -0
  41. package/dist/assets/cesium/Workers/chunk-OZJDGN5F.js +1477 -0
  42. package/dist/assets/cesium/Workers/chunk-PCJWUS4M.js +2041 -0
  43. package/dist/assets/cesium/Workers/chunk-PFQBCKBM.js +8644 -0
  44. package/dist/assets/cesium/Workers/chunk-QIKODV5G.js +305 -0
  45. package/dist/assets/cesium/Workers/chunk-QJ3DFBH3.js +73 -0
  46. package/dist/assets/cesium/Workers/chunk-QMEMZIJI.js +138 -0
  47. package/dist/assets/cesium/Workers/chunk-QT3MPEMI.js +102 -0
  48. package/dist/assets/cesium/Workers/chunk-RP2A7BR5.js +289 -0
  49. package/dist/assets/cesium/Workers/chunk-RW6LU2CJ.js +138 -0
  50. package/dist/assets/cesium/Workers/chunk-TFC6TZ3S.js +757 -0
  51. package/dist/assets/cesium/Workers/chunk-V3NGATMV.js +693 -0
  52. package/dist/assets/cesium/Workers/chunk-VLGOATD6.js +1075 -0
  53. package/dist/assets/cesium/Workers/chunk-WXTV4ATB.js +39 -0
  54. package/dist/assets/cesium/Workers/chunk-X4SU25DT.js +302 -0
  55. package/dist/assets/cesium/Workers/chunk-XTY7B2N6.js +2716 -0
  56. package/dist/assets/cesium/Workers/chunk-XY7MGBKC.js +513 -0
  57. package/dist/assets/cesium/Workers/chunk-Z24VKNDO.js +834 -0
  58. package/dist/assets/cesium/Workers/chunk-ZA25DG4Y.js +684 -0
  59. package/dist/assets/cesium/Workers/chunk-ZFOBYDGF.js +73 -0
  60. package/dist/assets/cesium/Workers/combineGeometry.js +65 -15
  61. package/dist/assets/cesium/Workers/createBoxGeometry.js +55 -10
  62. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +231 -310
  63. package/dist/assets/cesium/Workers/createCircleGeometry.js +185 -202
  64. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +141 -155
  65. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +477 -557
  66. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +218 -230
  67. package/dist/assets/cesium/Workers/createCorridorGeometry.js +1162 -1307
  68. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +533 -569
  69. package/dist/assets/cesium/Workers/createCylinderGeometry.js +57 -10
  70. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +224 -258
  71. package/dist/assets/cesium/Workers/createEllipseGeometry.js +68 -12
  72. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +61 -12
  73. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +56 -10
  74. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +58 -13
  75. package/dist/assets/cesium/Workers/createFrustumGeometry.js +55 -10
  76. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +226 -243
  77. package/dist/assets/cesium/Workers/createGeometry.js +143 -48
  78. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +1484 -2011
  79. package/dist/assets/cesium/Workers/createPlaneGeometry.js +216 -243
  80. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +121 -113
  81. package/dist/assets/cesium/Workers/createPolygonGeometry.js +1041 -1327
  82. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +516 -657
  83. package/dist/assets/cesium/Workers/createPolylineGeometry.js +471 -547
  84. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +352 -384
  85. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +271 -295
  86. package/dist/assets/cesium/Workers/createRectangleGeometry.js +1128 -1331
  87. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +445 -500
  88. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +381 -440
  89. package/dist/assets/cesium/Workers/createSphereGeometry.js +112 -118
  90. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +112 -121
  91. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +32 -127
  92. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +462 -505
  93. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +377 -436
  94. package/dist/assets/cesium/Workers/createVectorTilePoints.js +110 -77
  95. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +369 -391
  96. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +252 -244
  97. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +543 -615
  98. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +2244 -2677
  99. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +682 -926
  100. package/dist/assets/cesium/Workers/createWallGeometry.js +459 -593
  101. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +324 -419
  102. package/dist/assets/cesium/Workers/decodeDraco.js +327 -347
  103. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +2530 -3567
  104. package/dist/assets/cesium/Workers/decodeI3S.js +765 -970
  105. package/dist/assets/cesium/Workers/transcodeKTX2.js +3353 -1464
  106. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +3 -4
  107. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +748 -953
  108. package/dist/assets/{cesium.16590b.js → cesium.77d0f7.js} +8915 -13165
  109. package/dist/assets/cesium.js +1 -1
  110. package/dist/assets/{core.74da2a.js → core.720589.js} +3421 -3365
  111. package/dist/assets/core.js +1 -1
  112. package/dist/assets/index-dd539204.js +1 -0
  113. package/dist/assets/{ol.50a512.js → ol.e48649.js} +4 -4
  114. package/dist/assets/ol.js +1 -1
  115. package/dist/assets/{ui.d3054c.css → ui.50452a.css} +2 -2
  116. package/dist/assets/{ui.d3054c.js → ui.50452a.js} +5312 -4776
  117. package/dist/assets/ui.js +1 -1
  118. package/dist/assets/vue.js +2 -2
  119. package/dist/assets/{vuetify.946bd8.js → vuetify.f0a769.js} +1 -1
  120. package/dist/assets/vuetify.js +2 -2
  121. package/dist/index.html +27 -23
  122. package/index.html +23 -22
  123. package/index.js +6 -0
  124. package/package.json +5 -5
  125. package/plugins/@vcmap-show-case/form-inputs-example/FormInputsExample.vue +37 -1
  126. package/plugins/@vcmap-show-case/form-inputs-example/index.js +3 -0
  127. package/plugins/@vcmap-show-case/form-inputs-example/validation.js +11 -0
  128. package/plugins/@vcmap-show-case/plugin-editors/PluginEditors.vue +119 -0
  129. package/plugins/@vcmap-show-case/plugin-editors/index.js +41 -0
  130. package/plugins/@vcmap-show-case/plugin-editors/package.json +5 -0
  131. package/plugins/{@vcmap → @vcmap-show-case}/project-selector/ProjectSelectorComponent.vue +1 -1
  132. package/plugins/{@vcmap → @vcmap-show-case}/project-selector/config.json +2 -2
  133. package/plugins/{@vcmap → @vcmap-show-case}/project-selector/package.json +1 -1
  134. package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/package.json +1 -1
  135. package/plugins/@vcmap-show-case/style-input-example/styleExample.vue +0 -1
  136. package/plugins/@vcmap-show-case/table-example/DataTableExample.vue +1 -1
  137. package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/ThemeChangerComponent.vue +1 -1
  138. package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/config.json +2 -2
  139. package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/package.json +1 -1
  140. package/plugins/@vcmap-show-case/vector-properties-example/index.js +40 -0
  141. package/plugins/@vcmap-show-case/vector-properties-example/package.json +5 -0
  142. package/plugins/@vcmap-show-case/vector-properties-example/vectorPropertiesExample.vue +128 -0
  143. package/plugins/package.json +6 -2
  144. package/src/application/VcsAttributions.vue +27 -20
  145. package/src/components/form-inputs-controls/VcsChipArrayInput.vue +290 -0
  146. package/src/components/form-inputs-controls/VcsSlider.vue +1 -0
  147. package/src/components/form-inputs-controls/VcsTextField.vue +9 -3
  148. package/src/components/icons/2DAreaIcon.vue +2 -17
  149. package/src/components/icons/2DDistanceIcon.vue +0 -3
  150. package/src/components/icons/3DAreaIcon.vue +2 -17
  151. package/src/components/icons/3DDistanceIcon.vue +0 -3
  152. package/src/components/icons/3DHeightIcon.vue +0 -3
  153. package/src/components/icons/AngleIcon.vue +0 -1
  154. package/src/components/icons/AssociationsIcon.vue +1 -3
  155. package/src/components/icons/AxisIcon.vue +0 -4
  156. package/src/components/icons/BoundingBoxIcon.vue +1 -4
  157. package/src/components/icons/CheckboxIcon.vue +0 -2
  158. package/src/components/icons/CheckboxIndeterminateIcon.vue +1 -5
  159. package/src/components/icons/CircleIcon.vue +1 -6
  160. package/src/components/icons/ClippingHorizontalIcon.vue +0 -1
  161. package/src/components/icons/ClippingIcon.vue +0 -1
  162. package/src/components/icons/ClippingVerticalIcon.vue +0 -1
  163. package/src/components/icons/ColorPickerIcon.vue +0 -1
  164. package/src/components/icons/ColorSwatchIcon.vue +0 -2
  165. package/src/components/icons/CommentIcon.vue +0 -1
  166. package/src/components/icons/CompassIcon.vue +0 -2
  167. package/src/components/icons/ComponentsIcon.vue +0 -1
  168. package/src/components/icons/ConeIcon.vue +1 -4
  169. package/src/components/icons/DimensionsHouseIcon.vue +0 -2
  170. package/src/components/icons/EditIcon.vue +0 -1
  171. package/src/components/icons/EditVerticesIcon.vue +0 -4
  172. package/src/components/icons/ElevationProfileIcon.vue +1 -13
  173. package/src/components/icons/ExportAreaIcon.vue +0 -1
  174. package/src/components/icons/ExportFlightIcon.vue +0 -1
  175. package/src/components/icons/ExportIcon.vue +12 -8
  176. package/src/components/icons/ExternalLinkIcon.vue +0 -2
  177. package/src/components/icons/FastForwardIcon.vue +0 -1
  178. package/src/components/icons/FilterIcon.vue +0 -1
  179. package/src/components/icons/GlobeNatureIcon.vue +0 -3
  180. package/src/components/icons/GroundIcon.vue +0 -1
  181. package/src/components/icons/HealthCareIndustriesIcon.vue +1 -11
  182. package/src/components/icons/HideIcon.vue +0 -1
  183. package/src/components/icons/HomePointIcon.vue +0 -1
  184. package/src/components/icons/HospitalsIcon.vue +1 -20
  185. package/src/components/icons/HouseIcon.vue +3 -13
  186. package/src/components/icons/ImportIcon.vue +6 -14
  187. package/src/components/icons/InfoIcon.vue +0 -2
  188. package/src/components/icons/KebabIcon.vue +1 -9
  189. package/src/components/icons/LabelIcon.vue +0 -2
  190. package/src/components/icons/LayersIcon.vue +1 -9
  191. package/src/components/icons/LegendIcon.vue +0 -1
  192. package/src/components/icons/LineIcon.vue +0 -2
  193. package/src/components/icons/LinkIcon.vue +0 -1
  194. package/src/components/icons/LogoutIcon.vue +0 -1
  195. package/src/components/icons/MapIcon.vue +0 -2
  196. package/src/components/icons/MenuIcon.vue +1 -5
  197. package/src/components/icons/MinusIcon.vue +0 -2
  198. package/src/components/icons/ObjectSelectIcon.vue +0 -2
  199. package/src/components/icons/ObliqueViewIcon.vue +0 -1
  200. package/src/components/icons/PdfIcon.vue +0 -1
  201. package/src/components/icons/PedestrianIcon.vue +0 -1
  202. package/src/components/icons/PenIcon.vue +0 -1
  203. package/src/components/icons/PlayCircleIcon.vue +1 -8
  204. package/src/components/icons/PlusIcon.vue +0 -2
  205. package/src/components/icons/PoiIcon.vue +0 -1
  206. package/src/components/icons/PointIcon.vue +2 -6
  207. package/src/components/icons/PointSelectIcon.vue +0 -1
  208. package/src/components/icons/PresentationModeIcon.vue +0 -1
  209. package/src/components/icons/ProgressIcon.vue +1 -1
  210. package/src/components/icons/QueryIcon.vue +0 -1
  211. package/src/components/icons/RectangleIcon.vue +1 -6
  212. package/src/components/icons/ReturnIcon.vue +0 -1
  213. package/src/components/icons/RewindIcon.vue +0 -1
  214. package/src/components/icons/RotateLeftIcon.vue +0 -1
  215. package/src/components/icons/RotateRightIcon.vue +0 -1
  216. package/src/components/icons/ScreenshotIcon.vue +1 -6
  217. package/src/components/icons/SearchIcon.vue +0 -1
  218. package/src/components/icons/ShadowIcon.vue +0 -2
  219. package/src/components/icons/ShapesIcon.vue +1 -4
  220. package/src/components/icons/ShareIcon.vue +0 -1
  221. package/src/components/icons/SimpleCircleFilledIcon.vue +0 -1
  222. package/src/components/icons/SimpleCircleHalfFilledIcon.vue +0 -1
  223. package/src/components/icons/SimpleCircleOutlinedIcon.vue +1 -7
  224. package/src/components/icons/SkipPreviousIcon.vue +1 -6
  225. package/src/components/icons/SplitViewIcon.vue +0 -1
  226. package/src/components/icons/TextStyleIcon.vue +0 -3
  227. package/src/components/icons/ThreeDimensionsIcon.vue +0 -1
  228. package/src/components/icons/ToolsIcon.vue +0 -1
  229. package/src/components/icons/TouchIcon.vue +0 -1
  230. package/src/components/icons/TriangleIcon.vue +0 -3
  231. package/src/components/icons/TwoDimensionsIcon.vue +0 -2
  232. package/src/components/icons/UploadIcon.vue +0 -1
  233. package/src/components/icons/UserProfileIcon.vue +0 -1
  234. package/src/components/icons/UserShareIcon.vue +0 -1
  235. package/src/components/icons/ViewpointFlightIcon.vue +0 -1
  236. package/src/components/icons/ViewpointIcon.vue +0 -1
  237. package/src/components/icons/Viewshed360Icon.vue +0 -1
  238. package/src/components/icons/ViewshedConeIcon.vue +0 -1
  239. package/src/components/icons/ViewshedIcon.vue +0 -1
  240. package/src/components/icons/WalkingIcon.vue +0 -1
  241. package/src/components/icons/WallIcon.vue +1 -4
  242. package/src/components/icons/WandIcon.vue +22 -70
  243. package/src/components/lists/VcsList.vue +18 -12
  244. package/src/components/plugins/AbstractConfigEditor.vue +84 -0
  245. package/src/components/style/VcsImageSelector.vue +6 -5
  246. package/src/components/style/VcsTextSelector.vue +1 -1
  247. package/src/components/tables/VcsDataTable.vue +1 -1
  248. package/src/components/vector-properties/VcsVectorPropertiesComponent.vue +780 -0
  249. package/src/components/vector-properties/composables.js +93 -0
  250. package/src/contentTree/contentTreeCollection.js +30 -9
  251. package/src/i18n/de.js +41 -7
  252. package/src/i18n/en.js +39 -5
  253. package/src/i18n/i18nCollection.js +19 -65
  254. package/src/manager/buttonManager.js +4 -0
  255. package/src/manager/collectionManager/collectionComponent.js +1 -1
  256. package/src/manager/contextMenu/contextMenuManager.js +2 -0
  257. package/src/pluginHelper.js +57 -17
  258. package/src/vcsUiApp.js +25 -30
  259. package/src/vuePlugins/i18n.js +0 -8
  260. package/dist/assets/cesium/ThirdParty/Workers/draco_decoder_nodejs.js +0 -117
  261. package/dist/assets/cesium/Workers/ArcType-2d9abbbc.js +0 -37
  262. package/dist/assets/cesium/Workers/AttributeCompression-f9f6c717.js +0 -716
  263. package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-4140c51f.js +0 -258
  264. package/dist/assets/cesium/Workers/BoundingRectangle-c714b156.js +0 -369
  265. package/dist/assets/cesium/Workers/BoxGeometry-6f3da43d.js +0 -884
  266. package/dist/assets/cesium/Workers/Check-6ede7e26.js +0 -290
  267. package/dist/assets/cesium/Workers/Color-8a565ff2.js +0 -2262
  268. package/dist/assets/cesium/Workers/ComponentDatatype-cf1fa08e.js +0 -341
  269. package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-4b4d4096.js +0 -132
  270. package/dist/assets/cesium/Workers/CorridorGeometryLibrary-7b94502b.js +0 -498
  271. package/dist/assets/cesium/Workers/CylinderGeometry-ca070b87.js +0 -467
  272. package/dist/assets/cesium/Workers/CylinderGeometryLibrary-7bf291b4.js +0 -63
  273. package/dist/assets/cesium/Workers/EllipseGeometry-122e51fa.js +0 -1304
  274. package/dist/assets/cesium/Workers/EllipseGeometryLibrary-4d326efc.js +0 -366
  275. package/dist/assets/cesium/Workers/EllipseOutlineGeometry-16cc2bd7.js +0 -443
  276. package/dist/assets/cesium/Workers/EllipsoidGeodesic-5b3623dc.js +0 -520
  277. package/dist/assets/cesium/Workers/EllipsoidGeometry-cb148ca2.js +0 -637
  278. package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-0fa10c79.js +0 -454
  279. package/dist/assets/cesium/Workers/EllipsoidRhumbLine-ef872433.js +0 -741
  280. package/dist/assets/cesium/Workers/EllipsoidTangentPlane-6dd1b7af.js +0 -373
  281. package/dist/assets/cesium/Workers/EncodedCartesian3-57415c8a.js +0 -171
  282. package/dist/assets/cesium/Workers/FrustumGeometry-ee73037c.js +0 -2540
  283. package/dist/assets/cesium/Workers/GeometryAttribute-ff5b4fb1.js +0 -619
  284. package/dist/assets/cesium/Workers/GeometryAttributes-ad136444.js +0 -91
  285. package/dist/assets/cesium/Workers/GeometryInstance-34d9e21e.js +0 -121
  286. package/dist/assets/cesium/Workers/GeometryOffsetAttribute-9ad0019c.js +0 -16
  287. package/dist/assets/cesium/Workers/GeometryPipeline-1f8fbf05.js +0 -3690
  288. package/dist/assets/cesium/Workers/IndexDatatype-2643aa47.js +0 -200
  289. package/dist/assets/cesium/Workers/IntersectionTests-70d39ba9.js +0 -1836
  290. package/dist/assets/cesium/Workers/Math-0a2ac845.js +0 -1340
  291. package/dist/assets/cesium/Workers/Matrix2-e1298525.js +0 -7086
  292. package/dist/assets/cesium/Workers/Matrix3-41c58dde.js +0 -4283
  293. package/dist/assets/cesium/Workers/OrientedBoundingBox-159cf1d6.js +0 -1259
  294. package/dist/assets/cesium/Workers/Plane-4c3d403b.js +0 -309
  295. package/dist/assets/cesium/Workers/PolygonGeometryLibrary-076a5d25.js +0 -1074
  296. package/dist/assets/cesium/Workers/PolygonPipeline-b9f2810a.js +0 -1344
  297. package/dist/assets/cesium/Workers/PolylinePipeline-639192e0.js +0 -573
  298. package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-b73549fb.js +0 -781
  299. package/dist/assets/cesium/Workers/PrimitivePipeline-10ede1b6.js +0 -966
  300. package/dist/assets/cesium/Workers/RectangleGeometryLibrary-c35a7356.js +0 -280
  301. package/dist/assets/cesium/Workers/RuntimeError-ef395448.js +0 -68
  302. package/dist/assets/cesium/Workers/TerrainEncoding-668d242f.js +0 -1227
  303. package/dist/assets/cesium/Workers/Transforms-a2a85221.js +0 -14712
  304. package/dist/assets/cesium/Workers/VertexFormat-030f11ff.js +0 -312
  305. package/dist/assets/cesium/Workers/WallGeometryLibrary-1938bf0d.js +0 -211
  306. package/dist/assets/cesium/Workers/WebGLConstants-0b1ce7ba.js +0 -620
  307. package/dist/assets/cesium/Workers/WebMercatorProjection-13ed1a6e.js +0 -151
  308. package/dist/assets/cesium/Workers/arrayRemoveDuplicates-d2061e85.js +0 -129
  309. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +0 -1363
  310. package/dist/assets/cesium/Workers/combine-d9581036.js +0 -82
  311. package/dist/assets/cesium/Workers/defaultValue-fe22d8c0.js +0 -51
  312. package/dist/assets/index-cb070eff.js +0 -1
  313. package/plugins/@vcmap/create-link/fallbackCreateLink.vue +0 -76
  314. package/plugins/@vcmap/create-link/index.js +0 -95
  315. package/plugins/@vcmap/create-link/package.json +0 -6
  316. package/plugins/@vcmap/search-nominatim/LICENSE.md +0 -13
  317. package/plugins/@vcmap/search-nominatim/README.md +0 -3
  318. package/plugins/@vcmap/search-nominatim/config.json +0 -3
  319. package/plugins/@vcmap/search-nominatim/index.js +0 -29
  320. package/plugins/@vcmap/search-nominatim/nominatim.js +0 -175
  321. package/plugins/@vcmap/search-nominatim/package.json +0 -9
  322. /package/dist/assets/{vue.30740e.js → vue.5d696e.js} +0 -0
  323. /package/dist/assets/{vuetify.946bd8.css → vuetify.f0a769.css} +0 -0
  324. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/ModulesListComponent.vue +0 -0
  325. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/README.md +0 -0
  326. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/de.json +0 -0
  327. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/en.json +0 -0
  328. /package/plugins/{@vcmap → @vcmap-show-case}/project-selector/index.js +0 -0
  329. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/README.md +0 -0
  330. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/SimpleGraphComponent.vue +0 -0
  331. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/index.js +0 -0
  332. /package/plugins/{@vcmap → @vcmap-show-case}/simple-graph/simpleGraphView.js +0 -0
  333. /package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/README.md +0 -0
  334. /package/plugins/{@vcmap → @vcmap-show-case}/theme-changer/index.js +0 -0
@@ -0,0 +1,780 @@
1
+ <template>
2
+ <VcsFormSection
3
+ :heading="$attrs.heading || 'components.vectorProperties.header'"
4
+ :expandable="$attrs.expandable"
5
+ :start-open="$attrs.startOpen"
6
+ :header-actions="[
7
+ {
8
+ name: 'reset',
9
+ title: 'components.style.reset',
10
+ icon: '$vcsReturn',
11
+ callback: () => {
12
+ reset();
13
+ },
14
+ },
15
+ ]"
16
+ >
17
+ <v-container class="px-1 py-0">
18
+ <v-row
19
+ v-if="visibleProperties.has('altitudeMode') && show3DProperties"
20
+ no-gutters
21
+ >
22
+ <v-col>
23
+ <VcsLabel html-for="vp-altitude-mode">{{
24
+ $t('components.vectorProperties.altitudeMode')
25
+ }}</VcsLabel>
26
+ </v-col>
27
+ <v-col>
28
+ <VcsSelect
29
+ id="vp-altitude-mode"
30
+ :items="[
31
+ {
32
+ value: 'clampToGround',
33
+ text: 'components.vectorProperties.clampToGround',
34
+ },
35
+ {
36
+ value: 'absolute',
37
+ text: 'components.vectorProperties.absolute',
38
+ },
39
+ {
40
+ value: 'relativeToGround',
41
+ text: 'components.vectorProperties.relativeToGround',
42
+ },
43
+ ]"
44
+ v-model="altitudeMode"
45
+ dense
46
+ />
47
+ </v-col>
48
+ </v-row>
49
+ <v-row
50
+ v-if="altitudeMode === 'relativeToGround' && show3DProperties"
51
+ no-gutters
52
+ >
53
+ <v-col>
54
+ <VcsLabel html-for="vp-height-above-ground">{{
55
+ $t('components.vectorProperties.heightAboveGround')
56
+ }}</VcsLabel>
57
+ </v-col>
58
+ <v-col>
59
+ <VcsTextField
60
+ id="vp-height-above-ground"
61
+ dense
62
+ v-model.number="heightAboveGround"
63
+ type="number"
64
+ unit="m"
65
+ :placeholder="'heightAboveGround' in value ? '0 m' : ''"
66
+ />
67
+ </v-col>
68
+ </v-row>
69
+ <v-row
70
+ v-if="visibleProperties.has('groundLevel') && show3DProperties"
71
+ no-gutters
72
+ >
73
+ <v-col>
74
+ <VcsLabel html-for="vp-ground-level">{{
75
+ $t('components.vectorProperties.groundLevel')
76
+ }}</VcsLabel>
77
+ </v-col>
78
+ <v-col>
79
+ <VcsTextField
80
+ id="vp-ground-level"
81
+ dense
82
+ v-model.number="groundLevel"
83
+ type="number"
84
+ unit="m"
85
+ :placeholder="'groundLevel' in value ? '0 m' : ''"
86
+ clearable
87
+ />
88
+ </v-col>
89
+ </v-row>
90
+ <v-row
91
+ v-if="visibleProperties.has('scaleByDistance') && show3DProperties"
92
+ no-gutters
93
+ >
94
+ <v-col>
95
+ <VcsCheckbox
96
+ label="components.vectorProperties.scaleByDistance"
97
+ v-model="hasScaleByDistance"
98
+ />
99
+ </v-col>
100
+ <v-col>
101
+ <v-row no-gutters>
102
+ <v-col v-for="(nearFar, index) in scaleByDistance" :key="index">
103
+ <VcsTextField
104
+ dense
105
+ v-model.number="nearFar.value"
106
+ type="number"
107
+ :unit="index % 2 === 0 ? 'm' : ''"
108
+ :disabled="!hasScaleByDistance"
109
+ :placeholder="
110
+ 'scaleByDistance' in value
111
+ ? index % 2 === 0
112
+ ? `${scaleByDistanceDefault[index]} m`
113
+ : `${scaleByDistanceDefault[index]}`
114
+ : ''
115
+ "
116
+ :rules="[
117
+ (v) =>
118
+ !hasScaleByDistance ||
119
+ !isNaN(v) ||
120
+ 'components.validation.required',
121
+ ]"
122
+ />
123
+ </v-col>
124
+ </v-row>
125
+ </v-col>
126
+ </v-row>
127
+ <v-row
128
+ v-if="visibleProperties.has('eyeOffset') && show3DProperties"
129
+ no-gutters
130
+ >
131
+ <v-col>
132
+ <VcsCheckbox
133
+ label="components.vectorProperties.eyeOffset"
134
+ v-model="hasEyeOffset"
135
+ />
136
+ </v-col>
137
+ <v-col v-for="(distance, index) in eyeOffset" :key="index" cols="2">
138
+ <VcsTextField
139
+ dense
140
+ v-model.number="distance.value"
141
+ unit="m"
142
+ type="number"
143
+ :disabled="!hasEyeOffset"
144
+ :prefix="dimensionsUpperCase[index]"
145
+ :rules="[
146
+ (v) =>
147
+ !hasEyeOffset || !isNaN(v) || 'components.validation.required',
148
+ ]"
149
+ :placeholder="
150
+ 'eyeOffset' in value ? `${eyeOffsetDefault[index]} m` : ''
151
+ "
152
+ />
153
+ </v-col>
154
+ </v-row>
155
+ <v-row v-if="visibleProperties.has('allowPicking')" no-gutters>
156
+ <v-col>
157
+ <VcsCheckbox
158
+ label="components.vectorProperties.allowPicking"
159
+ v-model="allowPicking"
160
+ />
161
+ </v-col>
162
+ </v-row>
163
+ <v-row
164
+ v-if="visibleProperties.has('classificationType') && show3DProperties"
165
+ no-gutters
166
+ >
167
+ <v-col>
168
+ <VcsLabel html-for="vp-classification-type" :dense="true">
169
+ {{ $t('components.vectorProperties.classificationType') }}
170
+ </VcsLabel>
171
+ </v-col>
172
+ <v-col>
173
+ <VcsSelect
174
+ id="vp-classification-type"
175
+ :items="[
176
+ { value: 'none', text: 'components.vectorProperties.none' },
177
+ { value: 'both', text: 'components.vectorProperties.both' },
178
+ {
179
+ value: 'cesium3DTile',
180
+ text: 'components.vectorProperties.cesium3DTile',
181
+ },
182
+ { value: 'terrain', text: 'components.vectorProperties.terrain' },
183
+ ]"
184
+ v-model="classificationType"
185
+ dense
186
+ />
187
+ </v-col>
188
+ </v-row>
189
+ </v-container>
190
+ <v-divider
191
+ v-if="
192
+ !hideDividers &&
193
+ show3DProperties &&
194
+ [
195
+ 'extrudedHeight',
196
+ 'skirt',
197
+ 'storeysAboveGround',
198
+ 'storeysBelowGround',
199
+ 'storeyHeightsAboveGround',
200
+ 'storeyHeightsBelowGround',
201
+ ].some((prop) => visibleProperties.has(prop))
202
+ "
203
+ />
204
+ <v-container class="px-1 py-0" v-if="show3DProperties">
205
+ <v-row
206
+ v-if="
207
+ visibleProperties.has('storeysAboveGround') ||
208
+ visibleProperties.has('storeyHeightsAboveGround')
209
+ "
210
+ no-gutters
211
+ >
212
+ <v-col>
213
+ <VcsLabel>{{
214
+ $t('components.vectorProperties.aboveGround')
215
+ }}</VcsLabel>
216
+ </v-col>
217
+ </v-row>
218
+ <v-row v-if="visibleProperties.has('extrudedHeight')" no-gutters>
219
+ <v-col>
220
+ <VcsLabel
221
+ html-for="vp-extruded-height"
222
+ :class="{
223
+ 'px-4':
224
+ visibleProperties.has('storeysAboveGround') ||
225
+ visibleProperties.has('storeyHeightsAboveGround'),
226
+ }"
227
+ >{{ $t('components.vectorProperties.extrudedHeight') }}</VcsLabel
228
+ >
229
+ </v-col>
230
+ <v-col>
231
+ <VcsTextField
232
+ id="vp-extruded-height"
233
+ dense
234
+ v-model.number="extrudedHeight"
235
+ type="number"
236
+ unit="m"
237
+ :placeholder="'extrudedHeight' in value ? '0 m' : ''"
238
+ clearable
239
+ :rules="[
240
+ (v) => v >= 0 || isNaN(v) || 'components.validation.notValid',
241
+ ]"
242
+ />
243
+ </v-col>
244
+ </v-row>
245
+ <v-row v-if="visibleProperties.has('storeysAboveGround')" no-gutters>
246
+ <v-col>
247
+ <VcsLabel html-for="vp-storeys-above" class="px-4">{{
248
+ $t('components.vectorProperties.storeys')
249
+ }}</VcsLabel>
250
+ </v-col>
251
+ <v-col>
252
+ <VcsTextField
253
+ id="vp-storeys-above"
254
+ dense
255
+ v-model.number="storeysAboveGround"
256
+ type="number"
257
+ :placeholder="'storeysAboveGround' in value ? '0' : ''"
258
+ clearable
259
+ :rules="[
260
+ (v) => v >= 0 || isNaN(v) || 'components.validation.notValid',
261
+ ]"
262
+ />
263
+ </v-col>
264
+ </v-row>
265
+ <v-row
266
+ v-if="visibleProperties.has('storeyHeightsAboveGround')"
267
+ no-gutters
268
+ >
269
+ <v-col>
270
+ <VcsLabel :html-for="'vp-storey-heights-above'" class="px-4">{{
271
+ $t('components.vectorProperties.storeyHeights')
272
+ }}</VcsLabel>
273
+ </v-col>
274
+ <v-col>
275
+ <VcsChipArrayInput
276
+ id="vp-storey-heights-above"
277
+ dense
278
+ column
279
+ type="number"
280
+ v-model="storeyHeights.storeyHeightsAboveGround.value"
281
+ placeholder="3"
282
+ :rules="[(v) => !(v <= 0) || 'components.validation.notValid']"
283
+ />
284
+ </v-col>
285
+ </v-row>
286
+ <v-row
287
+ v-if="
288
+ visibleProperties.has('storeysBelowGround') ||
289
+ visibleProperties.has('storeyHeightsBelowGround')
290
+ "
291
+ no-gutters
292
+ >
293
+ <v-col>
294
+ <VcsLabel>{{
295
+ $t('components.vectorProperties.belowGround')
296
+ }}</VcsLabel>
297
+ </v-col>
298
+ </v-row>
299
+ <v-row v-if="visibleProperties.has('skirt')" no-gutters>
300
+ <v-col>
301
+ <VcsLabel
302
+ html-for="vp-skirt"
303
+ :class="{
304
+ 'px-4':
305
+ visibleProperties.has('storeysBelowGround') ||
306
+ visibleProperties.has('storeyHeightsBelowGround'),
307
+ }"
308
+ >{{ $t('components.vectorProperties.skirt') }}</VcsLabel
309
+ >
310
+ </v-col>
311
+ <v-col>
312
+ <VcsTextField
313
+ id="vp-skirt"
314
+ dense
315
+ v-model.number="skirt"
316
+ type="number"
317
+ unit="m"
318
+ :placeholder="'skirt' in value ? '0 m' : ''"
319
+ clearable
320
+ :rules="[
321
+ (v) => v >= 0 || isNaN(v) || 'components.validation.notValid',
322
+ ]"
323
+ />
324
+ </v-col>
325
+ </v-row>
326
+ <v-row v-if="visibleProperties.has('storeysBelowGround')" no-gutters>
327
+ <v-col>
328
+ <VcsLabel html-for="vp-storeys-below" class="px-4">{{
329
+ $t('components.vectorProperties.storeys')
330
+ }}</VcsLabel>
331
+ </v-col>
332
+ <v-col>
333
+ <VcsTextField
334
+ id="vp-storeys-below"
335
+ dense
336
+ v-model.number="storeysBelowGround"
337
+ type="number"
338
+ :placeholder="'storeysBelowGround' in value ? '0' : ''"
339
+ clearable
340
+ :rules="[
341
+ (v) => v >= 0 || isNaN(v) || 'components.validation.notValid',
342
+ ]"
343
+ />
344
+ </v-col>
345
+ </v-row>
346
+ <v-row
347
+ v-if="visibleProperties.has('storeyHeightsBelowGround')"
348
+ no-gutters
349
+ >
350
+ <v-col>
351
+ <VcsLabel :html-for="'vp-storey-heights-below'" class="px-4">{{
352
+ $t('components.vectorProperties.storeyHeights')
353
+ }}</VcsLabel>
354
+ </v-col>
355
+ <v-col>
356
+ <VcsChipArrayInput
357
+ :id="'vp-storey-heights-below'"
358
+ dense
359
+ column
360
+ type="number"
361
+ v-model="storeyHeights.storeyHeightsBelowGround.value"
362
+ placeholder="3"
363
+ />
364
+ </v-col>
365
+ </v-row>
366
+ </v-container>
367
+ <v-divider
368
+ v-if="
369
+ !hideDividers &&
370
+ show3DProperties &&
371
+ [
372
+ 'modelUrl',
373
+ 'modelScaleX',
374
+ 'modelScaleY',
375
+ 'modelScaleZ',
376
+ 'modelHeading',
377
+ 'modelPitch',
378
+ 'modelRoll',
379
+ 'baseUrl',
380
+ ].some((prop) => visibleProperties.has(prop))
381
+ "
382
+ />
383
+ <v-container class="px-1 py-0" v-if="show3DProperties">
384
+ <v-row v-if="visibleProperties.has('modelUrl')" no-gutters>
385
+ <v-col>
386
+ <VcsLabel html-for="vp-model-url">
387
+ {{ $t('components.vectorProperties.modelUrl') }}
388
+ </VcsLabel>
389
+ </v-col>
390
+ <v-col>
391
+ <VcsTextField
392
+ id="vp-model-url"
393
+ dense
394
+ v-model="modelUrl"
395
+ clearable
396
+ :placeholder="'modelUrl' in value ? 'example.glb' : ''"
397
+ />
398
+ </v-col>
399
+ </v-row>
400
+ <v-row v-if="Object.keys(modelScale).length" no-gutters>
401
+ <v-col cols="6">
402
+ <VcsLabel>{{
403
+ $t('components.vectorProperties.modelScale')
404
+ }}</VcsLabel>
405
+ </v-col>
406
+ <v-col v-for="(dimension, key) in modelScale" :key="key">
407
+ <VcsTextField
408
+ dense
409
+ v-model.number="dimension.value"
410
+ type="number"
411
+ :placeholder="`modelScale${key}` in value ? '1' : ''"
412
+ :prefix="key"
413
+ :rules="[(v) => v > 0 || 'components.validation.notValid']"
414
+ />
415
+ </v-col>
416
+ </v-row>
417
+ <v-row v-if="visibleProperties.has('modelHeading')" no-gutters>
418
+ <v-col cols="6">
419
+ <VcsLabel>{{
420
+ $t('components.vectorProperties.modelHeading')
421
+ }}</VcsLabel>
422
+ </v-col>
423
+ <v-col>
424
+ <VcsTextField
425
+ dense
426
+ v-model.number="modelHeading"
427
+ type="number"
428
+ :placeholder="'modelHeading' in value ? '0 °' : ''"
429
+ unit="°"
430
+ clearable
431
+ />
432
+ </v-col>
433
+ </v-row>
434
+ <v-row v-if="visibleProperties.has('modelPitch')" no-gutters>
435
+ <v-col cols="6">
436
+ <VcsLabel>{{
437
+ $t('components.vectorProperties.modelPitch')
438
+ }}</VcsLabel>
439
+ </v-col>
440
+ <v-col>
441
+ <VcsTextField
442
+ dense
443
+ v-model.number="modelPitch"
444
+ type="number"
445
+ :placeholder="'modelPitch' in value ? '0 °' : ''"
446
+ unit="°"
447
+ clearable
448
+ />
449
+ </v-col>
450
+ </v-row>
451
+ <v-row v-if="visibleProperties.has('modelRoll')" no-gutters>
452
+ <v-col cols="6">
453
+ <VcsLabel>{{ $t('components.vectorProperties.modelRoll') }}</VcsLabel>
454
+ </v-col>
455
+ <v-col>
456
+ <VcsTextField
457
+ dense
458
+ v-model.number="modelRoll"
459
+ type="number"
460
+ :placeholder="'modelRoll' in value ? '0 °' : ''"
461
+ unit="°"
462
+ clearable
463
+ />
464
+ </v-col>
465
+ </v-row>
466
+ <v-row v-if="visibleProperties.has('baseUrl')" no-gutters>
467
+ <v-col>
468
+ <VcsLabel html-for="vp-base-url">{{
469
+ $t('components.vectorProperties.baseUrl')
470
+ }}</VcsLabel>
471
+ </v-col>
472
+ <v-col>
473
+ <VcsTextField
474
+ id="vp-base-url"
475
+ dense
476
+ clearable
477
+ v-model="baseUrl"
478
+ :placeholder="'baseUrl' in value ? 'path/to/files/' : ''"
479
+ />
480
+ </v-col>
481
+ </v-row>
482
+ </v-container>
483
+ </VcsFormSection>
484
+ </template>
485
+
486
+ <script>
487
+ import { computed } from 'vue';
488
+ import { VContainer, VRow, VCol, VDivider } from 'vuetify/lib';
489
+ import {
490
+ VcsFormSection,
491
+ VcsSelect,
492
+ VcsTextField,
493
+ VcsCheckbox,
494
+ VcsLabel,
495
+ } from '@vcmap/ui';
496
+ import {
497
+ usePrimitiveProperty,
498
+ useArrayProperty,
499
+ useHasProperty,
500
+ } from './composables.js';
501
+ import VcsChipArrayInput from '../form-inputs-controls/VcsChipArrayInput.vue';
502
+
503
+ export const vectorProperties = [
504
+ 'altitudeMode',
505
+ 'allowPicking',
506
+ 'classificationType',
507
+ 'scaleByDistance',
508
+ 'eyeOffset',
509
+ 'heightAboveGround',
510
+ 'skirt',
511
+ 'groundLevel',
512
+ 'extrudedHeight',
513
+ 'storeysAboveGround',
514
+ 'storeysBelowGround',
515
+ 'storeyHeightsAboveGround',
516
+ 'storeyHeightsBelowGround',
517
+ 'modelUrl',
518
+ 'modelScaleX',
519
+ 'modelScaleY',
520
+ 'modelScaleZ',
521
+ 'modelHeading',
522
+ 'modelPitch',
523
+ 'modelRoll',
524
+ 'baseUrl',
525
+ ];
526
+
527
+ export const scaleByDistanceDefault = [0, 1, 1, 1];
528
+ export const eyeOffsetDefault = [0, 0, 0];
529
+ export const dimensionsUpperCase = ['X', 'Y', 'Z'];
530
+
531
+ /**
532
+ * @description Allows to model VectorPropertiesOptions. If a key is not part of the options, the corresponding input field stays empty.
533
+ * @vue-prop {import("@vcmap/core").VectorPropertiesOptions} value - The options to be modelled.
534
+ * @vue-prop {import("@vcmap/core").VectorPropertiesOptions} valueDefault - The default VectorPropertiesOptions that are applied when clicking the "Reset" button.
535
+ * @vue-prop {Array<string>} properties - The keys of the VectorPropertiesOptions that should be editable. If a key is not within this array, the corresponding input field is not shown.
536
+ * @vue-prop {boolean} show3DProperties - Whether the 3D related properties should be shown or not.
537
+ * @vue-prop {boolean} hideDividers - Wether the dividers, which group similar properties, should be hidden.
538
+ * @vue-prop {string} [heading='Vector properties'] - Title of the form section, will be translated.
539
+ * @vue-prop {boolean} [expandable=false] - If true, form section can be toggled.
540
+ * @vue-prop {boolean} [startOpen=false] - If form section starts open.
541
+ * @vue-event {import("@vcmap/core").VectorPropertiesOptions} input - Emits the updated VectorPropertiesOptions each time a property is changed.
542
+ * @vue-event {import("@vcmap/core").VectorPropertiesOptions} propertyChange - Emits the updated VectorPropertiesOptions, containing only the keys that changed, each time a property is changed.
543
+ */
544
+ export default {
545
+ name: 'VcsVectorPropertiesComponent',
546
+ components: {
547
+ VcsFormSection,
548
+ VcsLabel,
549
+ VcsSelect,
550
+ VcsTextField,
551
+ VcsCheckbox,
552
+ VcsChipArrayInput,
553
+ VContainer,
554
+ VRow,
555
+ VCol,
556
+ VDivider,
557
+ },
558
+ props: {
559
+ value: {
560
+ type: Object,
561
+ default: () => {},
562
+ },
563
+ valueDefault: {
564
+ type: Object,
565
+ required: true,
566
+ },
567
+ properties: {
568
+ type: Array,
569
+ default: () => vectorProperties,
570
+ },
571
+ show3DProperties: {
572
+ type: Boolean,
573
+ default: true,
574
+ },
575
+ hideDividers: {
576
+ type: Boolean,
577
+ default: false,
578
+ },
579
+ },
580
+ setup(props, { emit }) {
581
+ const visibleProperties = computed(() => {
582
+ return new Set(props.properties);
583
+ });
584
+
585
+ const altitudeMode = usePrimitiveProperty(
586
+ () => props.value,
587
+ 'altitudeMode',
588
+ emit,
589
+ );
590
+ const heightAboveGround = usePrimitiveProperty(
591
+ () => props.value,
592
+ 'heightAboveGround',
593
+ emit,
594
+ );
595
+ const allowPicking = computed({
596
+ get() {
597
+ return props.value.allowPicking;
598
+ },
599
+ set(value) {
600
+ if (props.value.allowPicking !== value) {
601
+ const newParams = structuredClone(props.value);
602
+ const changedParams = { allowPicking: value || false };
603
+ emit('input', Object.assign(newParams, changedParams));
604
+ emit('propertyChange', changedParams);
605
+ }
606
+ },
607
+ });
608
+ const classificationType = computed({
609
+ get() {
610
+ if ('classificationType' in props.value) {
611
+ return props.value.classificationType || 'none';
612
+ } else {
613
+ return undefined;
614
+ }
615
+ },
616
+ set(value) {
617
+ if (props.value.classificationType !== value) {
618
+ const newParams = structuredClone(props.value);
619
+ const changedParams = {
620
+ classificationType: value === 'none' ? undefined : value,
621
+ };
622
+ emit('input', Object.assign(newParams, changedParams));
623
+ emit('propertyChange', changedParams);
624
+ }
625
+ },
626
+ });
627
+ const scaleByDistance = useArrayProperty(
628
+ () => props.value,
629
+ 'scaleByDistance',
630
+ emit,
631
+ 4,
632
+ );
633
+ const hasScaleByDistance = useHasProperty(
634
+ () => props.value,
635
+ 'scaleByDistance',
636
+ emit,
637
+ scaleByDistanceDefault,
638
+ );
639
+
640
+ const eyeOffset = useArrayProperty(
641
+ () => props.value,
642
+ 'eyeOffset',
643
+ emit,
644
+ 3,
645
+ );
646
+ const hasEyeOffset = useHasProperty(
647
+ () => props.value,
648
+ 'eyeOffset',
649
+ emit,
650
+ eyeOffsetDefault,
651
+ );
652
+
653
+ const groundLevel = usePrimitiveProperty(
654
+ () => props.value,
655
+ 'groundLevel',
656
+ emit,
657
+ );
658
+ const extrudedHeight = usePrimitiveProperty(
659
+ () => props.value,
660
+ 'extrudedHeight',
661
+ emit,
662
+ );
663
+ const skirt = usePrimitiveProperty(() => props.value, 'skirt', emit);
664
+ const storeysAboveGround = usePrimitiveProperty(
665
+ () => props.value,
666
+ 'storeysAboveGround',
667
+ emit,
668
+ );
669
+ const storeysBelowGround = usePrimitiveProperty(
670
+ () => props.value,
671
+ 'storeysBelowGround',
672
+ emit,
673
+ );
674
+
675
+ const storeyHeights = computed(() => {
676
+ return ['storeyHeightsAboveGround', 'storeyHeightsBelowGround']
677
+ .filter((key) => visibleProperties.value.has(key))
678
+ .reduce((acc, key) => {
679
+ return {
680
+ ...acc,
681
+ [key]: computed({
682
+ get() {
683
+ if (Array.isArray(props.value?.[key])) {
684
+ return props.value?.[key];
685
+ } else if (props.value?.[key] > 0) {
686
+ return [props.value?.[key]];
687
+ } else {
688
+ return [];
689
+ }
690
+ },
691
+ set(value) {
692
+ const newParams = structuredClone(props.value);
693
+ const changedParams = {
694
+ [key]: value,
695
+ };
696
+ emit('input', Object.assign(newParams, changedParams));
697
+ emit('propertyChange', changedParams);
698
+ },
699
+ }),
700
+ };
701
+ }, {});
702
+ });
703
+
704
+ const modelUrl = usePrimitiveProperty(
705
+ () => props.value,
706
+ 'modelUrl',
707
+ emit,
708
+ );
709
+
710
+ const modelScale = computed(() => {
711
+ return dimensionsUpperCase
712
+ .filter((dimension) =>
713
+ visibleProperties.value.has(`modelScale${dimension}`),
714
+ )
715
+ .reduce((acc, dimension) => {
716
+ return {
717
+ ...acc,
718
+ [dimension]: usePrimitiveProperty(
719
+ () => props.value,
720
+ `modelScale${dimension}`,
721
+ emit,
722
+ ),
723
+ };
724
+ }, {});
725
+ });
726
+
727
+ const modelHeading = usePrimitiveProperty(
728
+ () => props.value,
729
+ 'modelHeading',
730
+ emit,
731
+ );
732
+ const modelPitch = usePrimitiveProperty(
733
+ () => props.value,
734
+ 'modelPitch',
735
+ emit,
736
+ );
737
+ const modelRoll = usePrimitiveProperty(
738
+ () => props.value,
739
+ 'modelRoll',
740
+ emit,
741
+ );
742
+ const baseUrl = usePrimitiveProperty(() => props.value, 'baseUrl', emit);
743
+
744
+ function reset() {
745
+ const newParams = structuredClone(props.valueDefault);
746
+
747
+ emit('input', newParams);
748
+ emit('propertyChange', newParams);
749
+ }
750
+
751
+ return {
752
+ visibleProperties,
753
+ altitudeMode,
754
+ heightAboveGround,
755
+ allowPicking,
756
+ classificationType,
757
+ scaleByDistance,
758
+ hasScaleByDistance,
759
+ scaleByDistanceDefault,
760
+ eyeOffset,
761
+ hasEyeOffset,
762
+ eyeOffsetDefault,
763
+ groundLevel,
764
+ extrudedHeight,
765
+ skirt,
766
+ storeysAboveGround,
767
+ storeysBelowGround,
768
+ storeyHeights,
769
+ modelUrl,
770
+ modelScale,
771
+ modelHeading,
772
+ modelPitch,
773
+ modelRoll,
774
+ baseUrl,
775
+ reset,
776
+ dimensionsUpperCase,
777
+ };
778
+ },
779
+ };
780
+ </script>