@vcmap/ui 5.0.0-rc.23 → 5.0.0-rc.24

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 (417) hide show
  1. package/README.md +36 -18
  2. package/app.config.json +2 -4
  3. package/build/.eslintrc +3 -0
  4. package/build/build.js +184 -174
  5. package/build/buildCesium.js +32 -19
  6. package/build/buildHelpers.js +117 -48
  7. package/build/buildPreview.js +7 -4
  8. package/build/commonViteConfig.js +1 -3
  9. package/build/determineHost.js +17 -4
  10. package/build/generateOLLib.js +13 -16
  11. package/build/getPluginProxies.js +16 -3
  12. package/build/info/conf.json +21 -21
  13. package/build/info/publish.js +15 -4
  14. package/config/aerowest.config.json +16 -44
  15. package/config/base.config.json +71 -246
  16. package/config/codes.config.json +3 -1
  17. package/config/dev.config.json +5 -13
  18. package/config/graphFeatureInfo.config.json +55 -16
  19. package/config/projects.config.json +5 -2
  20. package/config/www.config.json +96 -297
  21. package/dist/assets/cesium/Workers/{ArcType-ce2e50ab.js → ArcType-2d9abbbc.js} +4 -4
  22. package/dist/assets/cesium/Workers/{AttributeCompression-b646d393.js → AttributeCompression-f9f6c717.js} +24 -24
  23. package/dist/assets/cesium/Workers/{AxisAlignedBoundingBox-ff186ccc.js → AxisAlignedBoundingBox-85d9e53a.js} +3 -3
  24. package/dist/assets/cesium/Workers/{BoundingRectangle-be5924f4.js → BoundingRectangle-1ee7eb47.js} +18 -18
  25. package/dist/assets/cesium/Workers/{BoxGeometry-12eeccaf.js → BoxGeometry-3b2be784.js} +9 -9
  26. package/dist/assets/cesium/Workers/{Check-666ab1a0.js → Check-6ede7e26.js} +22 -22
  27. package/dist/assets/cesium/Workers/{Color-a84038cb.js → Color-f107c84d.js} +59 -59
  28. package/dist/assets/cesium/Workers/{ComponentDatatype-f7b11d02.js → ComponentDatatype-cf1fa08e.js} +16 -16
  29. package/dist/assets/cesium/Workers/{CoplanarPolygonGeometryLibrary-3272c1b3.js → CoplanarPolygonGeometryLibrary-78d71993.js} +1 -1
  30. package/dist/assets/cesium/Workers/{CorridorGeometryLibrary-0170e093.js → CorridorGeometryLibrary-50d99b33.js} +1 -1
  31. package/dist/assets/cesium/Workers/{CylinderGeometry-7c5da648.js → CylinderGeometry-51b0d9bf.js} +12 -12
  32. package/dist/assets/cesium/Workers/{CylinderGeometryLibrary-372c07d8.js → CylinderGeometryLibrary-7bf291b4.js} +1 -1
  33. package/dist/assets/cesium/Workers/{EllipseGeometry-797d580e.js → EllipseGeometry-bcfb5d87.js} +20 -20
  34. package/dist/assets/cesium/Workers/{EllipseGeometryLibrary-2939e1dc.js → EllipseGeometryLibrary-e94f8472.js} +1 -1
  35. package/dist/assets/cesium/Workers/{EllipseOutlineGeometry-8b50870f.js → EllipseOutlineGeometry-28e3a1bb.js} +15 -15
  36. package/dist/assets/cesium/Workers/{EllipsoidGeodesic-98c62a56.js → EllipsoidGeodesic-5b3623dc.js} +6 -6
  37. package/dist/assets/cesium/Workers/{EllipsoidGeometry-21c0e3a5.js → EllipsoidGeometry-b222fa63.js} +14 -14
  38. package/dist/assets/cesium/Workers/{EllipsoidOutlineGeometry-eff247c8.js → EllipsoidOutlineGeometry-38a3fb5b.js} +15 -15
  39. package/dist/assets/cesium/Workers/{EllipsoidRhumbLine-19756602.js → EllipsoidRhumbLine-ef872433.js} +9 -9
  40. package/dist/assets/cesium/Workers/{EllipsoidTangentPlane-214683dc.js → EllipsoidTangentPlane-8c89f28c.js} +1 -1
  41. package/dist/assets/cesium/Workers/{EncodedCartesian3-81f70735.js → EncodedCartesian3-57415c8a.js} +6 -6
  42. package/dist/assets/cesium/Workers/{FrustumGeometry-ac42a6d9.js → FrustumGeometry-bdd3a04d.js} +139 -111
  43. package/dist/assets/cesium/Workers/{GeometryAttribute-7d6f1732.js → GeometryAttribute-153115c5.js} +20 -20
  44. package/dist/assets/cesium/Workers/{GeometryAttributes-f06a2792.js → GeometryAttributes-ad136444.js} +1 -1
  45. package/dist/assets/cesium/Workers/{GeometryInstance-451dc1cd.js → GeometryInstance-34d9e21e.js} +6 -6
  46. package/dist/assets/cesium/Workers/{GeometryPipeline-ce4339ed.js → GeometryPipeline-acb2399c.js} +22 -22
  47. package/dist/assets/cesium/Workers/{IndexDatatype-a55ceaa1.js → IndexDatatype-2643aa47.js} +13 -13
  48. package/dist/assets/cesium/Workers/{IntersectionTests-f6e6bd8a.js → IntersectionTests-271e513e.js} +37 -37
  49. package/dist/assets/cesium/Workers/{Math-2dbd6b93.js → Math-0a2ac845.js} +149 -139
  50. package/dist/assets/cesium/Workers/{Matrix2-13178034.js → Matrix2-e1298525.js} +256 -256
  51. package/dist/assets/cesium/Workers/{Matrix3-315394f6.js → Matrix3-41c58dde.js} +150 -150
  52. package/dist/assets/cesium/Workers/{OrientedBoundingBox-04920dc7.js → OrientedBoundingBox-5e04e31f.js} +19 -17
  53. package/dist/assets/cesium/Workers/{Plane-900aa728.js → Plane-4c3d403b.js} +5 -5
  54. package/dist/assets/cesium/Workers/{PolygonGeometryLibrary-a8680d96.js → PolygonGeometryLibrary-6762b65b.js} +6 -6
  55. package/dist/assets/cesium/Workers/PolygonPipeline-7dc7a431.js +1344 -0
  56. package/dist/assets/cesium/Workers/{PolylinePipeline-32f36d2a.js → PolylinePipeline-15fde655.js} +16 -16
  57. package/dist/assets/cesium/Workers/{PolylineVolumeGeometryLibrary-a510d657.js → PolylineVolumeGeometryLibrary-ba7dfed5.js} +7 -7
  58. package/dist/assets/cesium/Workers/{PrimitivePipeline-ba38434a.js → PrimitivePipeline-68f0b9a2.js} +6 -6
  59. package/dist/assets/cesium/Workers/{RectangleGeometryLibrary-bdba697e.js → RectangleGeometryLibrary-8eaf23da.js} +1 -1
  60. package/dist/assets/cesium/Workers/{RuntimeError-06c93819.js → RuntimeError-ef395448.js} +5 -5
  61. package/dist/assets/cesium/Workers/{TerrainEncoding-833187da.js → TerrainEncoding-eb8a645a.js} +30 -30
  62. package/dist/assets/cesium/Workers/Transforms-f6451f99.js +14698 -0
  63. package/dist/assets/cesium/Workers/{VertexFormat-6b480673.js → VertexFormat-030f11ff.js} +14 -14
  64. package/dist/assets/cesium/Workers/{WallGeometryLibrary-919eed92.js → WallGeometryLibrary-feef3109.js} +1 -1
  65. package/dist/assets/cesium/Workers/{WebGLConstants-a8cc3e8c.js → WebGLConstants-0b1ce7ba.js} +1 -1
  66. package/dist/assets/cesium/Workers/{WebMercatorProjection-13a90d41.js → WebMercatorProjection-13ed1a6e.js} +6 -6
  67. package/dist/assets/cesium/Workers/{arrayRemoveDuplicates-c2038105.js → arrayRemoveDuplicates-d2061e85.js} +5 -5
  68. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +5 -5
  69. package/dist/assets/cesium/Workers/{combine-ca22a614.js → combine-d9581036.js} +5 -5
  70. package/dist/assets/cesium/Workers/combineGeometry.js +1 -1
  71. package/dist/assets/cesium/Workers/createBoxGeometry.js +1 -1
  72. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +9 -9
  73. package/dist/assets/cesium/Workers/createCircleGeometry.js +13 -13
  74. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +13 -13
  75. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +11 -11
  76. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +9 -9
  77. package/dist/assets/cesium/Workers/createCorridorGeometry.js +14 -14
  78. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +12 -12
  79. package/dist/assets/cesium/Workers/createCylinderGeometry.js +1 -1
  80. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +13 -13
  81. package/dist/assets/cesium/Workers/createEllipseGeometry.js +1 -1
  82. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +1 -1
  83. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +1 -1
  84. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +1 -1
  85. package/dist/assets/cesium/Workers/createFrustumGeometry.js +1 -1
  86. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +8 -8
  87. package/dist/assets/cesium/Workers/createGeometry.js +1 -1
  88. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +33 -33
  89. package/dist/assets/cesium/Workers/createPlaneGeometry.js +8 -8
  90. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +6 -6
  91. package/dist/assets/cesium/Workers/createPolygonGeometry.js +25 -25
  92. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +17 -17
  93. package/dist/assets/cesium/Workers/createPolylineGeometry.js +11 -11
  94. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +9 -9
  95. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +9 -9
  96. package/dist/assets/cesium/Workers/createRectangleGeometry.js +16 -16
  97. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +12 -12
  98. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +10 -10
  99. package/dist/assets/cesium/Workers/createSphereGeometry.js +11 -11
  100. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +12 -12
  101. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +2 -2
  102. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +1 -1
  103. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +8 -8
  104. package/dist/assets/cesium/Workers/createVectorTilePoints.js +1 -1
  105. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +1 -1
  106. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +1 -1
  107. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +1 -1
  108. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +27 -28
  109. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +33 -38
  110. package/dist/assets/cesium/Workers/createWallGeometry.js +14 -14
  111. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +14 -14
  112. package/dist/assets/cesium/Workers/decodeDraco.js +10 -2
  113. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +15 -15
  114. package/dist/assets/cesium/Workers/decodeI3S.js +1 -1
  115. package/dist/assets/cesium/Workers/{defaultValue-0a909f67.js → defaultValue-fe22d8c0.js} +2 -2
  116. package/dist/assets/cesium/Workers/package.js +1 -1
  117. package/dist/assets/cesium/Workers/transcodeKTX2.js +46 -26
  118. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +1 -1
  119. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +24 -24
  120. package/dist/assets/{cesium.166f91.js → cesium.253914.js} +36578 -33768
  121. package/dist/assets/cesium.js +1 -1
  122. package/dist/assets/{core.9342a1.js → core.3a8205.js} +53 -58
  123. package/dist/assets/core.js +1 -1
  124. package/dist/assets/{index.fd041928.js → index.91ae2d55.js} +1 -1
  125. package/dist/assets/{ol.d2cba3.js → ol.1c946a.js} +5550 -5491
  126. package/dist/assets/ol.js +1 -1
  127. package/dist/assets/ui.0025be.css +5 -0
  128. package/dist/assets/{ui.c27597.js → ui.0025be.js} +5494 -4759
  129. package/dist/assets/ui.js +1 -1
  130. package/dist/assets/vue.js +2 -2
  131. package/dist/assets/{vuetify.2f1432.css → vuetify.6efa21.css} +2 -2
  132. package/dist/assets/{vuetify.2f1432.js → vuetify.6efa21.js} +1 -1
  133. package/dist/assets/vuetify.js +2 -2
  134. package/dist/index.html +27 -7
  135. package/index.html +26 -6
  136. package/index.js +65 -15
  137. package/lib/cesium.js +1 -1
  138. package/lib/core.js +1 -1
  139. package/lib/ui.js +1 -1
  140. package/lib/vue.js +2 -2
  141. package/lib/vuetify.js +2 -2
  142. package/package.json +18 -9
  143. package/plugins/.eslintrc +9 -0
  144. package/plugins/@vcmap/create-link/fallbackCreateLink.vue +13 -9
  145. package/plugins/@vcmap/create-link/index.js +15 -6
  146. package/plugins/@vcmap/project-selector/ModulesListComponent.vue +4 -8
  147. package/plugins/@vcmap/project-selector/ProjectSelectorComponent.vue +5 -10
  148. package/plugins/@vcmap/project-selector/README.md +4 -2
  149. package/plugins/@vcmap/project-selector/config.json +13 -13
  150. package/plugins/@vcmap/project-selector/de.json +2 -2
  151. package/plugins/@vcmap/project-selector/en.json +2 -2
  152. package/plugins/@vcmap/project-selector/index.js +63 -28
  153. package/plugins/@vcmap/search-nominatim/LICENSE.md +5 -6
  154. package/plugins/@vcmap/search-nominatim/README.md +2 -1
  155. package/plugins/@vcmap/search-nominatim/config.json +1 -2
  156. package/plugins/@vcmap/search-nominatim/index.js +7 -4
  157. package/plugins/@vcmap/search-nominatim/nominatim.js +7 -2
  158. package/plugins/@vcmap/search-nominatim/package.json +2 -36
  159. package/plugins/@vcmap/simple-graph/README.md +29 -9
  160. package/plugins/@vcmap/simple-graph/SimpleGraphComponent.vue +2 -7
  161. package/plugins/@vcmap/simple-graph/index.js +1 -1
  162. package/plugins/@vcmap/simple-graph/simpleGraphView.js +3 -1
  163. package/plugins/@vcmap/theme-changer/README.md +5 -3
  164. package/plugins/@vcmap/theme-changer/ThemeChangerComponent.vue +6 -10
  165. package/plugins/@vcmap/theme-changer/config.json +67 -67
  166. package/plugins/@vcmap/theme-changer/index.js +11 -5
  167. package/plugins/@vcmap-show-case/buttons-example/ButtonsExample.vue +76 -11
  168. package/plugins/@vcmap-show-case/buttons-example/index.js +10 -8
  169. package/plugins/@vcmap-show-case/category-tester/Categories.vue +143 -116
  170. package/plugins/@vcmap-show-case/category-tester/Category.vue +46 -26
  171. package/plugins/@vcmap-show-case/category-tester/index.js +9 -3
  172. package/plugins/@vcmap-show-case/config-editor/{editor.vue → ConfigEditor.vue} +20 -24
  173. package/plugins/@vcmap-show-case/config-editor/index.js +13 -11
  174. package/plugins/@vcmap-show-case/context-menu-tester/index.js +18 -10
  175. package/plugins/@vcmap-show-case/form-inputs-example/FormInputsExample.vue +89 -118
  176. package/plugins/@vcmap-show-case/form-inputs-example/config.json +3 -3
  177. package/plugins/@vcmap-show-case/form-inputs-example/exampleActions.js +14 -4
  178. package/plugins/@vcmap-show-case/form-inputs-example/index.js +41 -19
  179. package/plugins/@vcmap-show-case/form-inputs-example/validation.js +2 -1
  180. package/plugins/@vcmap-show-case/icons-example/README.md +1 -1
  181. package/plugins/@vcmap-show-case/icons-example/allIconsComponent.vue +10 -10
  182. package/plugins/@vcmap-show-case/icons-example/index.js +10 -8
  183. package/plugins/@vcmap-show-case/list-example/ListExample.vue +221 -103
  184. package/plugins/@vcmap-show-case/list-example/index.js +10 -8
  185. package/plugins/@vcmap-show-case/notifier-tester/index.js +9 -3
  186. package/plugins/@vcmap-show-case/notifier-tester/notifierTester.vue +15 -21
  187. package/plugins/@vcmap-show-case/table-example/DataTableExample.vue +22 -41
  188. package/plugins/@vcmap-show-case/table-example/index.js +10 -8
  189. package/plugins/@vcmap-show-case/textfields-example/TextfieldsExample.vue +7 -30
  190. package/plugins/@vcmap-show-case/textfields-example/index.js +10 -4
  191. package/plugins/@vcmap-show-case/window-tester/WindowExample.vue +16 -13
  192. package/plugins/@vcmap-show-case/window-tester/emptyComponent.vue +4 -7
  193. package/plugins/@vcmap-show-case/window-tester/index.js +26 -20
  194. package/plugins/@vcmap-show-case/window-tester/myCustomHeader.vue +7 -3
  195. package/plugins/@vcmap-show-case/window-tester/toolbox-data.js +82 -5
  196. package/plugins/@vcmap-show-case/window-tester/windowExampleContent.vue +3 -7
  197. package/plugins/@vcmap-show-case/wizard-example/index.js +9 -3
  198. package/plugins/@vcmap-show-case/wizard-example/wizardExample.vue +36 -38
  199. package/src/actions/actionHelper.js +49 -11
  200. package/src/actions/styleSelector.vue +20 -11
  201. package/src/application/VcsApp.vue +117 -80
  202. package/src/application/VcsAttributions.vue +8 -9
  203. package/src/application/VcsAttributionsFooter.vue +12 -9
  204. package/src/application/VcsMap.vue +9 -5
  205. package/src/application/VcsNavbar.vue +44 -27
  206. package/src/application/VcsSettings.vue +5 -12
  207. package/src/application/attributionsHelper.js +23 -11
  208. package/src/application/vcsAppWrapper.vue +1 -3
  209. package/src/components/buttons/VcsActionButtonList.vue +20 -17
  210. package/src/components/buttons/VcsButton.vue +19 -23
  211. package/src/components/buttons/VcsFormButton.vue +176 -0
  212. package/src/components/form-inputs-controls/VcsCheckbox.vue +6 -7
  213. package/src/components/form-inputs-controls/VcsDatePicker.vue +50 -19
  214. package/src/components/form-inputs-controls/VcsFormSection.vue +11 -12
  215. package/src/components/form-inputs-controls/VcsLabel.vue +9 -10
  216. package/src/components/form-inputs-controls/VcsRadio.vue +44 -44
  217. package/src/components/form-inputs-controls/VcsSelect.vue +16 -13
  218. package/src/components/form-inputs-controls/VcsTextArea.vue +21 -14
  219. package/src/components/form-inputs-controls/VcsTextField.vue +26 -12
  220. package/src/components/form-inputs-controls/VcsWizard.vue +78 -78
  221. package/src/components/form-inputs-controls/VcsWizardStep.vue +20 -20
  222. package/src/components/form-inputs-controls/composables.js +13 -8
  223. package/src/components/form-output/VcsFormattedNumber.vue +26 -26
  224. package/src/components/icons/+all.js +13 -5
  225. package/src/components/icons/2DAreaIcon.vue +62 -10
  226. package/src/components/icons/2DDistanceIcon.vue +14 -2
  227. package/src/components/icons/3DAreaIcon.vue +62 -10
  228. package/src/components/icons/3DDistanceIcon.vue +14 -2
  229. package/src/components/icons/3DHeightIcon.vue +14 -2
  230. package/src/components/icons/AngleIcon.vue +12 -3
  231. package/src/components/icons/AssociationsIcon.vue +6 -1
  232. package/src/components/icons/AxisIcon.vue +34 -5
  233. package/src/components/icons/BoundingBoxIcon.vue +31 -5
  234. package/src/components/icons/CheckboxCheckedIcon.vue +4 -1
  235. package/src/components/icons/CheckboxIcon.vue +1 -8
  236. package/src/components/icons/CheckboxIndeterminateIcon.vue +9 -2
  237. package/src/components/icons/CircleIcon.vue +24 -4
  238. package/src/components/icons/ClippingHorizontalIcon.vue +14 -2
  239. package/src/components/icons/ClippingIcon.vue +13 -2
  240. package/src/components/icons/ClippingVerticalIcon.vue +14 -2
  241. package/src/components/icons/ColorPickerIcon.vue +13 -2
  242. package/src/components/icons/ColorSwatchIcon.vue +7 -1
  243. package/src/components/icons/CommentIcon.vue +6 -1
  244. package/src/components/icons/CompassIcon.vue +21 -3
  245. package/src/components/icons/ComponentsIcon.vue +14 -2
  246. package/src/components/icons/ConeIcon.vue +26 -4
  247. package/src/components/icons/DimensionsHouseIcon.vue +7 -1
  248. package/src/components/icons/EditIcon.vue +13 -2
  249. package/src/components/icons/ElevationProfileIcon.vue +6 -1
  250. package/src/components/icons/ExportAreaIcon.vue +13 -2
  251. package/src/components/icons/ExportFlightIcon.vue +13 -2
  252. package/src/components/icons/ExportIcon.vue +14 -2
  253. package/src/components/icons/ExternalLinkIcon.vue +18 -3
  254. package/src/components/icons/EyeIcon.vue +12 -2
  255. package/src/components/icons/FastForwardIcon.vue +13 -2
  256. package/src/components/icons/FilterIcon.vue +13 -2
  257. package/src/components/icons/GlobalTerrainIcon.vue +12 -2
  258. package/src/components/icons/GlobeNatureIcon.vue +7 -1
  259. package/src/components/icons/GroundIcon.vue +12 -2
  260. package/src/components/icons/HealthCareIndustriesIcon.vue +6 -1
  261. package/src/components/icons/HelpIcon.vue +12 -2
  262. package/src/components/icons/HideIcon.vue +17 -3
  263. package/src/components/icons/HomePointIcon.vue +13 -3
  264. package/src/components/icons/HospitalsIcon.vue +6 -1
  265. package/src/components/icons/HouseIcon.vue +20 -3
  266. package/src/components/icons/ImportIcon.vue +21 -3
  267. package/src/components/icons/InfoIcon.vue +19 -3
  268. package/src/components/icons/KebabIcon.vue +12 -2
  269. package/src/components/icons/LabelIcon.vue +21 -3
  270. package/src/components/icons/LayersIcon.vue +12 -2
  271. package/src/components/icons/LegendIcon.vue +13 -3
  272. package/src/components/icons/LineIcon.vue +20 -3
  273. package/src/components/icons/LinkIcon.vue +13 -2
  274. package/src/components/icons/LogoutIcon.vue +13 -2
  275. package/src/components/icons/MapIcon.vue +14 -2
  276. package/src/components/icons/MenuIcon.vue +7 -1
  277. package/src/components/icons/MinusIcon.vue +14 -2
  278. package/src/components/icons/ObjectAttributeIcon.vue +13 -2
  279. package/src/components/icons/ObjectSelectIcon.vue +14 -2
  280. package/src/components/icons/ObliqueViewIcon.vue +11 -2
  281. package/src/components/icons/PdfIcon.vue +12 -2
  282. package/src/components/icons/PedestrianIcon.vue +13 -2
  283. package/src/components/icons/PenIcon.vue +13 -3
  284. package/src/components/icons/PlayCircleIcon.vue +20 -3
  285. package/src/components/icons/PlusIcon.vue +14 -3
  286. package/src/components/icons/PoiIcon.vue +17 -3
  287. package/src/components/icons/PointSelectIcon.vue +12 -2
  288. package/src/components/icons/PolygonIcon.vue +7 -1
  289. package/src/components/icons/PresentationModeIcon.vue +13 -2
  290. package/src/components/icons/ProgressIcon.vue +8 -6
  291. package/src/components/icons/QueryIcon.vue +31 -5
  292. package/src/components/icons/RectangleIcon.vue +24 -4
  293. package/src/components/icons/ReturnIcon.vue +13 -2
  294. package/src/components/icons/RewindIcon.vue +13 -2
  295. package/src/components/icons/RotateLeftIcon.vue +13 -2
  296. package/src/components/icons/RotateRightIcon.vue +13 -2
  297. package/src/components/icons/ScreenshotIcon.vue +52 -10
  298. package/src/components/icons/SearchIcon.vue +13 -3
  299. package/src/components/icons/ShadowIcon.vue +14 -3
  300. package/src/components/icons/ShapesIcon.vue +13 -3
  301. package/src/components/icons/ShareIcon.vue +17 -4
  302. package/src/components/icons/SimpleCircleFilledIcon.vue +14 -10
  303. package/src/components/icons/SimpleCircleHalfFilledIcon.vue +6 -1
  304. package/src/components/icons/SimpleCircleOutlinedIcon.vue +14 -10
  305. package/src/components/icons/SkipNextIcon.vue +11 -2
  306. package/src/components/icons/SkipPreviousIcon.vue +17 -3
  307. package/src/components/icons/SplitViewIcon.vue +6 -1
  308. package/src/components/icons/TerrainBoxIcon.vue +12 -2
  309. package/src/components/icons/TextStyleIcon.vue +7 -1
  310. package/src/components/icons/ThreeDimensionsIcon.vue +13 -2
  311. package/src/components/icons/ToolsIcon.vue +12 -2
  312. package/src/components/icons/TouchIcon.vue +13 -2
  313. package/src/components/icons/TrashCanIcon.vue +13 -2
  314. package/src/components/icons/TriangleIcon.vue +6 -2
  315. package/src/components/icons/TwoDimensionsIcon.vue +14 -2
  316. package/src/components/icons/UploadIcon.vue +13 -2
  317. package/src/components/icons/UserProfileIcon.vue +13 -2
  318. package/src/components/icons/UserShareIcon.vue +12 -2
  319. package/src/components/icons/VideoRecorderIcon.vue +16 -3
  320. package/src/components/icons/ViewpointFlightIcon.vue +22 -4
  321. package/src/components/icons/ViewpointIcon.vue +22 -4
  322. package/src/components/icons/Viewshed360Icon.vue +14 -2
  323. package/src/components/icons/ViewshedConeIcon.vue +13 -2
  324. package/src/components/icons/ViewshedIcon.vue +14 -2
  325. package/src/components/icons/WalkingIcon.vue +13 -2
  326. package/src/components/icons/WallIcon.vue +19 -3
  327. package/src/components/icons/WandIcon.vue +129 -21
  328. package/src/components/imageElementInjector.vue +1 -3
  329. package/src/components/lists/VcsActionList.vue +21 -18
  330. package/src/components/lists/VcsList.vue +208 -98
  331. package/src/components/lists/VcsTreeview.vue +30 -26
  332. package/src/components/lists/VcsTreeviewLeaf.vue +23 -22
  333. package/src/components/lists/VcsTreeviewSearchbar.vue +19 -15
  334. package/src/components/notification/VcsBadge.vue +4 -6
  335. package/src/components/notification/VcsTooltip.vue +95 -94
  336. package/src/components/notification/validation.js +1 -1
  337. package/src/components/tables/VcsDataTable.vue +107 -95
  338. package/src/components/tables/VcsTable.vue +38 -30
  339. package/src/contentTree/LayerTree.vue +2 -3
  340. package/src/contentTree/contentTreeCollection.js +48 -22
  341. package/src/contentTree/contentTreeItem.js +36 -14
  342. package/src/contentTree/groupContentTreeItem.js +44 -22
  343. package/src/contentTree/layerContentTreeItem.js +42 -20
  344. package/src/contentTree/layerGroupContentTreeItem.js +53 -31
  345. package/src/contentTree/nodeContentTreeItem.js +18 -7
  346. package/src/contentTree/obliqueCollectionContentTreeItem.js +45 -20
  347. package/src/contentTree/subContentTreeItem.js +13 -4
  348. package/src/contentTree/vcsObjectContentTreeItem.js +24 -15
  349. package/src/contentTree/viewpointContentTreeItem.js +19 -6
  350. package/src/downloadHelper.js +4 -1
  351. package/src/featureInfo/AddressBalloonComponent.vue +11 -16
  352. package/src/featureInfo/BalloonComponent.vue +35 -26
  353. package/src/featureInfo/abstractFeatureInfoView.js +29 -13
  354. package/src/featureInfo/addressBalloonFeatureInfoView.js +19 -7
  355. package/src/featureInfo/balloonFeatureInfoView.js +22 -9
  356. package/src/featureInfo/balloonHelper.js +61 -42
  357. package/src/featureInfo/featureInfo.js +71 -31
  358. package/src/featureInfo/featureInfoInteraction.js +13 -7
  359. package/src/featureInfo/iframeFeatureInfoView.js +3 -1
  360. package/src/featureInfo/tableFeatureInfoView.js +15 -5
  361. package/src/i18n/i18nCollection.js +183 -155
  362. package/src/init.js +124 -121
  363. package/src/legend/legendHelper.js +11 -6
  364. package/src/legend/styleLegendItem.vue +18 -12
  365. package/src/legend/vcsLegend.vue +15 -17
  366. package/src/manager/buttonManager.js +6 -3
  367. package/src/manager/categoryManager/CategoryComponent.vue +52 -25
  368. package/src/manager/categoryManager/CategoryComponentList.vue +33 -8
  369. package/src/manager/categoryManager/CategoryManager.vue +4 -5
  370. package/src/manager/categoryManager/categoryManager.js +82 -37
  371. package/src/manager/contextMenu/contextMenuComponent.vue +2 -6
  372. package/src/manager/contextMenu/contextMenuInteraction.js +6 -1
  373. package/src/manager/contextMenu/contextMenuManager.js +37 -22
  374. package/src/manager/navbarManager.js +15 -8
  375. package/src/manager/toolbox/GroupToolboxComponent.vue +22 -21
  376. package/src/manager/toolbox/SelectToolboxComponent.vue +36 -35
  377. package/src/manager/toolbox/ToolboxManager.vue +18 -10
  378. package/src/manager/toolbox/toolboxManager.js +30 -12
  379. package/src/manager/window/WindowComponent.vue +18 -21
  380. package/src/manager/window/WindowComponentHeader.vue +34 -26
  381. package/src/manager/window/WindowManager.vue +33 -22
  382. package/src/manager/window/windowHelper.js +79 -23
  383. package/src/manager/window/windowManager.js +61 -32
  384. package/src/navigation/mapNavCompass.vue +17 -3
  385. package/src/navigation/mapNavigation.vue +59 -40
  386. package/src/navigation/obliqueRotation.vue +6 -8
  387. package/src/navigation/orientationToolsButton.vue +6 -9
  388. package/src/navigation/overviewMap.js +72 -41
  389. package/src/navigation/overviewMapClickedInteraction.js +6 -1
  390. package/src/navigation/tiltSlider.vue +6 -10
  391. package/src/navigation/vcsCompass.vue +1 -9
  392. package/src/navigation/vcsZoomButton.vue +16 -17
  393. package/src/notifier/notifier.js +22 -13
  394. package/src/notifier/notifierComponent.vue +21 -21
  395. package/src/pluginHelper.js +23 -9
  396. package/src/search/resultItem.vue +10 -15
  397. package/src/search/resultsComponent.vue +30 -24
  398. package/src/search/search.js +36 -19
  399. package/src/search/searchComponent.vue +20 -10
  400. package/src/setup.js +9 -9
  401. package/src/state.js +22 -6
  402. package/src/styles/_typography.scss +0 -1
  403. package/src/styles/shades.scss +4 -2
  404. package/src/styles/utils/_border.scss +1 -1
  405. package/src/styles/utils/_display.scss +1 -1
  406. package/src/styles/variables.scss +39 -34
  407. package/src/styles/vcsFont.scss +6 -5
  408. package/src/styles/vcsGrid.scss +9 -0
  409. package/src/uiConfig.js +3 -1
  410. package/src/vcsUiApp.js +156 -59
  411. package/src/vuePlugins/i18n.js +4 -4
  412. package/src/vuePlugins/vuetify.js +4 -0
  413. package/dist/assets/cesium/Workers/PolygonPipeline-844aab0a.js +0 -1345
  414. package/dist/assets/cesium/Workers/Transforms-40229881.js +0 -14696
  415. package/dist/assets/ui.c27597.css +0 -5
  416. /package/dist/assets/cesium/Workers/{GeometryOffsetAttribute-04332ce7.js → GeometryOffsetAttribute-9ad0019c.js} +0 -0
  417. /package/dist/assets/{vue.5d00e9.js → vue.c1ece7.js} +0 -0
@@ -2,17 +2,17 @@
2
2
  <div>
3
3
  <v-snackbar
4
4
  dark
5
- v-for="(notification) in notifications"
5
+ v-for="notification in notifications"
6
6
  :key="notification.id"
7
7
  v-model="notification.open"
8
8
  :timeout="notification.timeout"
9
9
  >
10
- <v-icon
11
- :color="notification.type"
12
- >
10
+ <v-icon :color="notification.type">
13
11
  {{ icon[notification.type] }}
14
12
  </v-icon>
15
- <span class="snack-title">{{ $t(notification.title || defaultTitle[notification.type]) }}</span>
13
+ <span class="snack-title">{{
14
+ $t(notification.title || defaultTitle[notification.type])
15
+ }}</span>
16
16
  <template #action="{ attrs }">
17
17
  <VcsButton
18
18
  icon="mdi-close"
@@ -62,23 +62,23 @@
62
62
  </script>
63
63
 
64
64
  <style lang="scss" scoped>
65
- .v-snack{
66
- ::v-deep{
67
- .v-snack__content{
68
- display: grid;
69
- gap: 8px 4px;
70
- grid-template-columns: 20px auto;
71
- .v-icon{
72
- grid-row-start: 1;
73
- grid-row-end: 3;
74
- align-self: start;
75
- font-size: 17px;
65
+ .v-snack {
66
+ ::v-deep {
67
+ .v-snack__content {
68
+ display: grid;
69
+ gap: 8px 4px;
70
+ grid-template-columns: 20px auto;
71
+ .v-icon {
72
+ grid-row-start: 1;
73
+ grid-row-end: 3;
74
+ align-self: start;
75
+ font-size: 17px;
76
+ }
77
+ }
78
+ .v-snack__action {
79
+ align-self: flex-start;
80
+ margin-top: 4px;
76
81
  }
77
- }
78
- .v-snack__action{
79
- align-self: flex-start;
80
- margin-top: 4px;
81
82
  }
82
83
  }
83
- }
84
84
  </style>
@@ -61,7 +61,9 @@ export function getPluginAssetUrl(app, pluginName, asset) {
61
61
  export function isValidPackageName(name) {
62
62
  check(name, String);
63
63
 
64
- return /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test(name);
64
+ return /^(?:@[a-z0-9-*~][a-z0-9-*._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/.test(
65
+ name,
66
+ );
65
67
  }
66
68
 
67
69
  /**
@@ -73,9 +75,15 @@ export async function loadPlugin(name, config) {
73
75
  let module = config.entry;
74
76
 
75
77
  if (!/^(https?:\/\/|\/)/.test(module)) {
76
- module = `${window.location.origin}${window.location.pathname.replace(/\/?$/, '/')}${module}`;
78
+ module = `${window.location.origin}${window.location.pathname.replace(
79
+ /\/?$/,
80
+ '/',
81
+ )}${module}`;
77
82
  } else if (module === '_dev') {
78
83
  module = `/${name}.js`;
84
+ } else if (module === 'http://localhost/_test') {
85
+ // early escape to bypass module loading for testing, see VcsUiApp.spec.js
86
+ return null;
79
87
  }
80
88
 
81
89
  // if (!context.security.isTrustedUrl(module)) { XXX missing pipeline security
@@ -85,13 +93,16 @@ export async function loadPlugin(name, config) {
85
93
 
86
94
  try {
87
95
  let plugin;
88
- if (window.VcsPluginLoaderFunction) { // TODO PluginLoaderfunction needs to be documented.
96
+ if (window.VcsPluginLoaderFunction) {
97
+ // TODO PluginLoaderfunction needs to be documented.
89
98
  plugin = await window.VcsPluginLoaderFunction(name, module);
90
99
  } else {
91
100
  plugin = await import(/* @vite-ignore */ module);
92
101
  }
93
102
  if (plugin.default == null || typeof plugin.default !== 'function') {
94
- getLogger().error(`plugin ${name} does not provide a default exported function`);
103
+ getLogger().error(
104
+ `plugin ${name} does not provide a default exported function`,
105
+ );
95
106
  return null;
96
107
  }
97
108
  const baseUrl = new URL(module);
@@ -128,9 +139,7 @@ export function getPluginEntry(base, pluginBase) {
128
139
  }
129
140
  const baseSubs = baseUrl.pathname.split('/');
130
141
  const pluginSubs = pluginBaseUrl.pathname.split('/');
131
- return pluginSubs
132
- .filter((sub, idx) => sub !== baseSubs[idx])
133
- .join('/');
142
+ return pluginSubs.filter((sub, idx) => sub !== baseSubs[idx]).join('/');
134
143
  }
135
144
 
136
145
  /**
@@ -140,7 +149,10 @@ export function getPluginEntry(base, pluginBase) {
140
149
  export function serializePlugin(plugin) {
141
150
  const serializedPlugin = plugin.toJSON ? plugin.toJSON() : {};
142
151
  serializedPlugin.name = plugin.name;
143
- serializedPlugin.entry = getPluginEntry(window.location.href, plugin[pluginBaseUrlSymbol]);
152
+ serializedPlugin.entry = getPluginEntry(
153
+ window.location.href,
154
+ plugin[pluginBaseUrlSymbol],
155
+ );
144
156
  serializedPlugin[pluginFactorySymbol] = plugin[pluginFactorySymbol];
145
157
  serializedPlugin[pluginBaseUrlSymbol] = plugin[pluginBaseUrlSymbol];
146
158
  return serializedPlugin;
@@ -151,7 +163,9 @@ export function serializePlugin(plugin) {
151
163
  * @returns {Promise<VcsPlugin>}
152
164
  */
153
165
  export async function deserializePlugin(serializedPlugin) {
154
- const reincarnation = await serializedPlugin[pluginFactorySymbol](serializedPlugin);
166
+ const reincarnation = await serializedPlugin[pluginFactorySymbol](
167
+ serializedPlugin,
168
+ );
155
169
  reincarnation[pluginFactorySymbol] = serializedPlugin[pluginFactorySymbol];
156
170
  reincarnation[pluginBaseUrlSymbol] = serializedPlugin[pluginBaseUrlSymbol];
157
171
  return reincarnation;
@@ -1,17 +1,11 @@
1
1
  <template>
2
- <div
3
- class="ma-1 d-flex flex-row align-center"
4
- v-if="item"
5
- >
2
+ <div class="ma-2 d-flex flex-row align-center" v-if="item">
6
3
  <v-list-item-icon v-if="item.icon" class="px-1">
7
4
  <v-icon>
8
5
  {{ item.icon }}
9
6
  </v-icon>
10
7
  </v-list-item-icon>
11
- <div
12
- class="px-2 d-flex align-center"
13
- :title="$t('search.select')"
14
- >
8
+ <div class="px-2 d-flex align-center" :title="$t('search.select')">
15
9
  <span v-html="marked" />
16
10
  </div>
17
11
  <VcsActionButtonList
@@ -38,11 +32,14 @@
38
32
  function markText(text, query) {
39
33
  let replacement = text;
40
34
  if (query) {
41
- const partials = query.split(/[.,\s]/)
42
- .filter(partial => partial.trim());
35
+ const partials = query
36
+ .split(/[.,\s]/)
37
+ .filter((partial) => partial.trim());
43
38
  partials.forEach((partial) => {
44
- replacement = replacement
45
- .replaceAll(new RegExp(`(^|[^>])(${partial})`, 'ig'), '<span class="primary--text">$2</span>');
39
+ replacement = replacement.replaceAll(
40
+ new RegExp(`(^|[^>])(${partial})`, 'ig'),
41
+ '<span class="primary--text">$2</span>',
42
+ );
46
43
  });
47
44
  }
48
45
  return replacement;
@@ -84,6 +81,4 @@
84
81
  };
85
82
  </script>
86
83
 
87
- <style lang="scss" scoped>
88
-
89
- </style>
84
+ <style lang="scss" scoped></style>
@@ -1,22 +1,13 @@
1
1
  <template>
2
2
  <v-list dense class="ma-0 overflow-y-auto vcs-search-results">
3
- <v-list-item-group
4
- v-model="highlighted"
5
- >
6
- <v-list-item
7
- v-for="(item, index) in results"
8
- :key="index"
9
- class="px-0"
10
- >
3
+ <v-list-item-group v-model="highlighted">
4
+ <v-list-item v-for="(item, index) in results" :key="index" class="px-0">
11
5
  <v-list-item-content>
12
- <ResultItem
13
- :item="item"
14
- :query="query"
15
- class="cursor-pointer"
16
- />
6
+ <ResultItem :item="item" :query="query" class="cursor-pointer" />
17
7
  <v-divider
18
8
  v-if="index < results.length - 1"
19
9
  :key="index"
10
+ class="base lighten-3"
20
11
  />
21
12
  </v-list-item-content>
22
13
  </v-list-item>
@@ -26,7 +17,13 @@
26
17
 
27
18
  <script>
28
19
  import { inject, onUnmounted, ref, computed } from 'vue';
29
- import { VDivider, VList, VListItem, VListItemContent, VListItemGroup } from 'vuetify/lib';
20
+ import {
21
+ VDivider,
22
+ VList,
23
+ VListItem,
24
+ VListItemContent,
25
+ VListItemGroup,
26
+ } from 'vuetify/lib';
30
27
  import ResultItem from './resultItem.vue';
31
28
 
32
29
  /**
@@ -59,16 +56,23 @@
59
56
  const highlightedRef = ref(-1);
60
57
  /** @type {VcsUiApp} */
61
58
  const app = inject('vcsApp');
62
- const selectedListener = app.featureInfo.featureChanged.addEventListener((feature) => {
63
- if (highlightedRef.value >= 0) {
64
- if (feature && props.results[highlightedRef.value].feature === feature) {
65
- return;
59
+ const selectedListener = app.featureInfo.featureChanged.addEventListener(
60
+ (feature) => {
61
+ if (highlightedRef.value >= 0) {
62
+ if (
63
+ feature &&
64
+ props.results[highlightedRef.value].feature === feature
65
+ ) {
66
+ return;
67
+ }
68
+ highlightedRef.value = -1;
69
+ } else if (feature) {
70
+ highlightedRef.value = props.results.findIndex(
71
+ (r) => r.feature === feature,
72
+ );
66
73
  }
67
- highlightedRef.value = -1;
68
- } else if (feature) {
69
- highlightedRef.value = props.results.findIndex(r => r.feature === feature);
70
- }
71
- });
74
+ },
75
+ );
72
76
 
73
77
  onUnmounted(() => {
74
78
  selectedListener();
@@ -76,7 +80,9 @@
76
80
 
77
81
  return {
78
82
  highlighted: computed({
79
- get() { return highlightedRef.value; },
83
+ get() {
84
+ return highlightedRef.value;
85
+ },
80
86
  set(value) {
81
87
  highlightedRef.value = value;
82
88
  if (value >= 0) {
@@ -6,14 +6,18 @@ import {
6
6
  VcsEvent,
7
7
  vcsLayerName,
8
8
  VectorLayer,
9
- VectorStyleItem, Viewpoint,
9
+ VectorStyleItem,
10
+ Viewpoint,
10
11
  } from '@vcmap/core';
11
12
  import { shallowRef } from 'vue';
12
13
  import { check } from '@vcsuite/check';
13
14
  import { Icon } from 'ol/style.js';
14
15
  import { getLogger } from '@vcsuite/logger';
15
16
  import { vcsAppSymbol } from '../pluginHelper.js';
16
- import { getDefaultPrimaryColor, getColorByKey } from '../vuePlugins/vuetify.js';
17
+ import {
18
+ getDefaultPrimaryColor,
19
+ getColorByKey,
20
+ } from '../vuePlugins/vuetify.js';
17
21
  import { getViewpointFromFeature } from '../actions/actionHelper.js';
18
22
 
19
23
  /**
@@ -27,7 +31,6 @@ import { getViewpointFromFeature } from '../actions/actionHelper.js';
27
31
  * @property {import("ol").Feature|undefined} [feature] If a feature is provided, the feature is added to the result layer and search zooms to the layer's extent. Default clicked handler is zoom to feature, highlight feature and select feature, if feature has a FeatureInfoView.
28
32
  */
29
33
 
30
-
31
34
  /**
32
35
  * @interface SearchImpl
33
36
  * @property {string} name Name of the implementation. Must be the name of the plugin the SearchImpl is owned by
@@ -43,7 +46,9 @@ import { getViewpointFromFeature } from '../actions/actionHelper.js';
43
46
  */
44
47
  function getPointResultIcon(color) {
45
48
  return {
46
- src: `data:image/svg+xml,%3Csvg xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:cc='http://creativecommons.org/ns%23' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' id='icon_24_poi' width='24' height='23.994' viewBox='0 0 24 23.994' sodipodi:docname='mapIcon.svg'%3E%3Cg id='Gruppe_1972' transform='translate(-571 -609.477)'%3E%3Cpath id='Pfad_773' d='M583,611a8.009,8.009,0,0,0-8,8c0,5.314,6.952,13.32,7.248,13.658a1,1,0,0,0,1.5,0c.3-.338,7.248-8.344,7.248-13.658A8.009,8.009,0,0,0,583,611Zm0,19.444c-2.18-2.685-6-8.09-6-11.444a6,6,0,0,1,12,0C589,622.354,585.18,627.759,583,630.444Z' fill='currentColor' /%3E%3Cpath id='Pfad_774' d='M583,615a4,4,0,1,0,4,4A4,4,0,0,0,583,615Zm0,6a2,2,0,1,1,2-2A2,2,0,0,1,583,621Z' fill='currentColor' /%3E%3C/g%3E%3Cpath fill='${encodeURIComponent(color)}' d='M 11.672998,20.526286 C 8.5115524,16.526958 6.4310003,12.714969 6.0702695,10.260963 6.0109099,9.8571482 6.0115821,9.1201807 6.0716855,8.7084104 6.4424582,6.1682348 8.3335069,4.1603103 10.828528,3.6575721 c 1.904966,-0.383844 3.881822,0.1903514 5.289639,1.5364231 0.993092,0.9495349 1.610829,2.1488769 1.810148,3.5144152 0.0601,0.4117703 0.06077,1.1487378 0.0014,1.5525526 -0.357076,2.429138 -2.337816,6.081898 -5.487559,10.119822 -0.224045,0.287223 -0.415188,0.530536 -0.424763,0.540696 -0.0096,0.01016 -0.16456,-0.167678 -0.344411,-0.395195 z m 0.990366,-7.047968 c 0.894914,-0.146674 1.762065,-0.627065 2.349286,-1.301476 0.86707,-0.995812 1.194989,-2.3427819 0.880571,-3.6170541 -0.379849,-1.5394474 -1.596396,-2.6842781 -3.173401,-2.9863277 -0.368703,-0.070619 -1.070937,-0.070619 -1.43964,0 C 9.7056173,5.875042 8.48604,7.0227247 8.1067793,8.5597879 7.8410265,9.6368274 8.0329903,10.787029 8.6317551,11.705317 c 0.5717674,0.876885 1.4205679,1.474277 2.4457369,1.721329 0.47704,0.114961 1.079877,0.134602 1.585872,0.05167 z' id='path1432' /%3E%3C/svg%3E`,
49
+ src: `data:image/svg+xml,%3Csvg xmlns:dc='http://purl.org/dc/elements/1.1/' xmlns:cc='http://creativecommons.org/ns%23' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns%23' xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' xmlns:sodipodi='http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd' xmlns:inkscape='http://www.inkscape.org/namespaces/inkscape' id='icon_24_poi' width='24' height='23.994' viewBox='0 0 24 23.994' sodipodi:docname='mapIcon.svg'%3E%3Cg id='Gruppe_1972' transform='translate(-571 -609.477)'%3E%3Cpath id='Pfad_773' d='M583,611a8.009,8.009,0,0,0-8,8c0,5.314,6.952,13.32,7.248,13.658a1,1,0,0,0,1.5,0c.3-.338,7.248-8.344,7.248-13.658A8.009,8.009,0,0,0,583,611Zm0,19.444c-2.18-2.685-6-8.09-6-11.444a6,6,0,0,1,12,0C589,622.354,585.18,627.759,583,630.444Z' fill='currentColor' /%3E%3Cpath id='Pfad_774' d='M583,615a4,4,0,1,0,4,4A4,4,0,0,0,583,615Zm0,6a2,2,0,1,1,2-2A2,2,0,0,1,583,621Z' fill='currentColor' /%3E%3C/g%3E%3Cpath fill='${encodeURIComponent(
50
+ color,
51
+ )}' d='M 11.672998,20.526286 C 8.5115524,16.526958 6.4310003,12.714969 6.0702695,10.260963 6.0109099,9.8571482 6.0115821,9.1201807 6.0716855,8.7084104 6.4424582,6.1682348 8.3335069,4.1603103 10.828528,3.6575721 c 1.904966,-0.383844 3.881822,0.1903514 5.289639,1.5364231 0.993092,0.9495349 1.610829,2.1488769 1.810148,3.5144152 0.0601,0.4117703 0.06077,1.1487378 0.0014,1.5525526 -0.357076,2.429138 -2.337816,6.081898 -5.487559,10.119822 -0.224045,0.287223 -0.415188,0.530536 -0.424763,0.540696 -0.0096,0.01016 -0.16456,-0.167678 -0.344411,-0.395195 z m 0.990366,-7.047968 c 0.894914,-0.146674 1.762065,-0.627065 2.349286,-1.301476 0.86707,-0.995812 1.194989,-2.3427819 0.880571,-3.6170541 -0.379849,-1.5394474 -1.596396,-2.6842781 -3.173401,-2.9863277 -0.368703,-0.070619 -1.070937,-0.070619 -1.43964,0 C 9.7056173,5.875042 8.48604,7.0227247 8.1067793,8.5597879 7.8410265,9.6368274 8.0329903,10.787029 8.6317551,11.705317 c 0.5717674,0.876885 1.4205679,1.474277 2.4457369,1.721329 0.47704,0.114961 1.079877,0.134602 1.585872,0.05167 z' id='path1432' /%3E%3C/svg%3E`,
47
52
  scale: 1,
48
53
  color,
49
54
  };
@@ -104,7 +109,6 @@ function setupSearchResultLayer(app) {
104
109
  */
105
110
  const searchImplOwnerSymbol = Symbol('featureInfoView');
106
111
 
107
-
108
112
  /**
109
113
  * Collection of SearchImpl
110
114
  * @extends {IndexedCollection<SearchImpl<ResultItem>>}
@@ -185,7 +189,9 @@ class Search extends IndexedCollection {
185
189
  check(owner, [String, vcsAppSymbol]);
186
190
  check(item.search, Function);
187
191
  if (item.name !== owner) {
188
- getLogger('Search').warning('SearchImplementations must be named as the plugin they are owned by.');
192
+ getLogger('Search').warning(
193
+ 'SearchImplementations must be named as the plugin they are owned by.',
194
+ );
189
195
  }
190
196
  item[searchImplOwnerSymbol] = owner;
191
197
  super.add(item, index);
@@ -212,8 +218,12 @@ class Search extends IndexedCollection {
212
218
  */
213
219
  async search(q) {
214
220
  this.clearResults();
215
- const promises = await Promise.allSettled([...this._array].map(impl => impl.search(q)));
216
- const isAborted = promises.some(r => r.status === 'rejected' && r.reason?.name === 'AbortError');
221
+ const promises = await Promise.allSettled(
222
+ [...this._array].map((impl) => impl.search(q)),
223
+ );
224
+ const isAborted = promises.some(
225
+ (r) => r.status === 'rejected' && r.reason?.name === 'AbortError',
226
+ );
217
227
  if (!isAborted) {
218
228
  const results = promises
219
229
  .map((o) => {
@@ -226,7 +236,7 @@ class Search extends IndexedCollection {
226
236
  .flat();
227
237
 
228
238
  this._currentResults.value = results
229
- .filter(r => r.feature || r.clicked)
239
+ .filter((r) => r.feature || r.clicked)
230
240
  .map((item) => {
231
241
  if (item.feature) {
232
242
  this._resultLayer.addFeatures([item.feature]);
@@ -254,13 +264,17 @@ class Search extends IndexedCollection {
254
264
  * @returns {Promise<Array<string>>}
255
265
  */
256
266
  async suggest(q) {
257
- const promises = await Promise.allSettled([...this._array].map((impl) => {
258
- if (impl.suggest) {
259
- return impl.suggest(q);
260
- }
261
- return Promise.resolve([]);
262
- }));
263
- const isAborted = promises.some(r => r.status === 'rejected' && r.reason?.name === 'AbortError');
267
+ const promises = await Promise.allSettled(
268
+ [...this._array].map((impl) => {
269
+ if (impl.suggest) {
270
+ return impl.suggest(q);
271
+ }
272
+ return Promise.resolve([]);
273
+ }),
274
+ );
275
+ const isAborted = promises.some(
276
+ (r) => r.status === 'rejected' && r.reason?.name === 'AbortError',
277
+ );
264
278
  if (isAborted) {
265
279
  return [];
266
280
  }
@@ -280,7 +294,7 @@ class Search extends IndexedCollection {
280
294
  * Aborting any ongoing request
281
295
  */
282
296
  abort() {
283
- [...this._array].forEach(impl => impl.abort?.());
297
+ [...this._array].forEach((impl) => impl.abort?.());
284
298
  }
285
299
 
286
300
  /**
@@ -306,7 +320,10 @@ class Search extends IndexedCollection {
306
320
  }
307
321
  this._resultLayer.removeAllFeatures();
308
322
  this._resultLayer.deactivate();
309
- if (this._app.featureInfo.selectedFeature?.[vcsLayerName] === this._resultLayer.name) {
323
+ if (
324
+ this._app.featureInfo.selectedFeature?.[vcsLayerName] ===
325
+ this._resultLayer.name
326
+ ) {
310
327
  this._app.featureInfo.clear();
311
328
  }
312
329
  }
@@ -315,7 +332,7 @@ class Search extends IndexedCollection {
315
332
  * @inheritDoc
316
333
  */
317
334
  destroy() {
318
- [...this._array].forEach(impl => impl.destroy());
335
+ [...this._array].forEach((impl) => impl.destroy());
319
336
  this.resultsChanged.destroy();
320
337
  this._destroyResultLayer();
321
338
  super.destroy();
@@ -1,13 +1,9 @@
1
1
  <template>
2
2
  <v-sheet>
3
- <span class="d-flex justify-space-between align-center mt-1 mx-1">
4
- <v-icon
5
- class="mx-2"
6
- >
7
- $vcsSearch
8
- </v-icon>
3
+ <span class="d-flex justify-space-between align-center mt-1 ml-2">
4
+ <v-icon class="pa-1"> $vcsSearch </v-icon>
9
5
  <VcsTextField
10
- class="font-size-14 d-inline-block user-select-none w-full mx-2"
6
+ class="d-inline-block user-select-none w-full mx-1"
11
7
  autofocus
12
8
  :loading="searching"
13
9
  clearable
@@ -18,7 +14,7 @@
18
14
  @input="reset"
19
15
  />
20
16
  </span>
21
- <v-divider class="mt-1" v-if="!!results.length" />
17
+ <v-divider class="mt-1 base darken-1" v-if="!!results.length" />
22
18
  <ResultsComponent :query="query" :results="results" />
23
19
  <v-divider v-if="!!results.length" />
24
20
  <VcsButton
@@ -31,8 +27,22 @@
31
27
  </v-sheet>
32
28
  </template>
33
29
 
34
- <style>
35
-
30
+ <style lang="scss" scoped>
31
+ ::v-deep {
32
+ .v-input {
33
+ fieldset {
34
+ padding: 0 !important;
35
+ }
36
+ fieldset,
37
+ input {
38
+ border-color: transparent !important;
39
+ }
40
+ }
41
+ .v-icon .v-icon__component {
42
+ width: 16px;
43
+ height: 16px;
44
+ }
45
+ }
36
46
  </style>
37
47
 
38
48
  <script>
package/src/setup.js CHANGED
@@ -1,9 +1,9 @@
1
- import Vue from 'vue';
2
-
3
- // eslint-disable-next-line no-unused-vars
4
- import * as core from '@vcmap/core';
5
- // pull in entire core for vcsClassRegistry
6
-
7
- Vue.config.productionTip = false;
8
-
9
- window.CESIUM_BASE_URL = '/node_modules/@vcmap-cesium/engine/Build/';
1
+ import Vue from 'vue';
2
+
3
+ // eslint-disable-next-line no-unused-vars
4
+ import * as core from '@vcmap/core';
5
+ // pull in entire core for vcsClassRegistry
6
+
7
+ Vue.config.productionTip = false;
8
+
9
+ window.CESIUM_BASE_URL = '/node_modules/@vcmap-cesium/engine/Build/';
package/src/state.js CHANGED
@@ -200,20 +200,31 @@ function writeUrlAppState(state, maxLength) {
200
200
 
201
201
  state.layers.forEach((layerState) => {
202
202
  const layerUrlState = writeUrlLayerState(layerState);
203
- if ((JSON.stringify(urlState).length + JSON.stringify(layerUrlState).length) < maxLength) {
203
+ if (
204
+ JSON.stringify(urlState).length + JSON.stringify(layerUrlState).length <
205
+ maxLength
206
+ ) {
204
207
  urlState[3].push(layerUrlState);
205
208
  }
206
209
  });
207
210
 
208
211
  state.plugins.forEach((pluginState) => {
209
212
  const urlPluginState = writeUrlPluginState(pluginState);
210
- if ((JSON.stringify(urlState).length + JSON.stringify(urlPluginState).length) < maxLength) {
213
+ if (
214
+ JSON.stringify(urlState).length + JSON.stringify(urlPluginState).length <
215
+ maxLength
216
+ ) {
211
217
  urlState[4].push(urlPluginState);
212
218
  }
213
219
  });
214
220
 
215
- if (urlState[3].length !== state.layers.length || urlState[4].length !== state.plugins.length) {
216
- getLogger('StateManagement').warning('State too large for URL: Not all layers and plugins are represented');
221
+ if (
222
+ urlState[3].length !== state.layers.length ||
223
+ urlState[4].length !== state.plugins.length
224
+ ) {
225
+ getLogger('StateManagement').warning(
226
+ 'State too large for URL: Not all layers and plugins are represented',
227
+ );
217
228
  }
218
229
 
219
230
  return urlState;
@@ -230,7 +241,9 @@ export function getStateFromURL(url) {
230
241
  try {
231
242
  return parseUrlAppState(JSON.parse(url.searchParams.get('state')));
232
243
  } catch (e) {
233
- getLogger('StateManager').error('failed to parse the state URL parameter');
244
+ getLogger('StateManager').error(
245
+ 'failed to parse the state URL parameter',
246
+ );
234
247
  }
235
248
  }
236
249
  return createEmptyState();
@@ -252,5 +265,8 @@ export function setStateToUrl(state, url) {
252
265
  check(url, URL);
253
266
 
254
267
  const maxLength = MAX_URL_LENGTH - url.toString().length;
255
- url.searchParams.set('state', JSON.stringify(writeUrlAppState(state, maxLength)));
268
+ url.searchParams.set(
269
+ 'state',
270
+ JSON.stringify(writeUrlAppState(state, maxLength)),
271
+ );
256
272
  }
@@ -36,5 +36,4 @@
36
36
  font-size: 12px;
37
37
  font-weight: normal;
38
38
  }
39
-
40
39
  }
@@ -1,2 +1,4 @@
1
-
2
- $shades: ('black': #222222, 'white': #FFFFFF);
1
+ $shades: (
2
+ 'black': #222222,
3
+ 'white': #ffffff,
4
+ );
@@ -4,4 +4,4 @@
4
4
 
5
5
  .border-2--primary {
6
6
  border: 2px solid var(--v-primary-base);
7
- }
7
+ }
@@ -1,3 +1,3 @@
1
1
  .d-contents {
2
2
  display: contents;
3
- }
3
+ }