@npm9912/v-map 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (438) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +185 -0
  3. package/dist/cjs/_commonjsHelpers-B83fTs8d.js +36 -0
  4. package/dist/cjs/app-globals-V2Kpy_OQ.js +5 -0
  5. package/dist/cjs/cesium-provider-BiFFyAl9.js +2598 -0
  6. package/dist/cjs/deck-provider-Ctq3Q8a1.js +47824 -0
  7. package/dist/cjs/geotiff-CEwvF9cG.js +47 -0
  8. package/dist/cjs/geotiff-source-RaNzzWkC.js +1522 -0
  9. package/dist/cjs/index-B1oGO1g-.js +10658 -0
  10. package/dist/cjs/index-B8LHqjyg.js +1765 -0
  11. package/dist/cjs/index-BIL4VsgP.js +310 -0
  12. package/dist/cjs/index-Blku2QY8.js +167 -0
  13. package/dist/cjs/index-CJvvX4yx.js +21 -0
  14. package/dist/cjs/index-CbVT-Con.js +699 -0
  15. package/dist/cjs/index-ISOEpMC3.js +20478 -0
  16. package/dist/cjs/index-JSwBbvGA.js +1621 -0
  17. package/dist/cjs/index.browser-DQhD8Jwl.js +6873 -0
  18. package/dist/cjs/index.cjs.js +2 -0
  19. package/dist/cjs/layer-extension-B_olS0rc.js +65 -0
  20. package/dist/cjs/leaflet-provider-DOqfs7g5.js +1815 -0
  21. package/dist/cjs/loader.cjs.js +13 -0
  22. package/dist/cjs/main-dist-7TykwFci.js +2655 -0
  23. package/dist/cjs/messages-D7h4m8Tx.js +186 -0
  24. package/dist/cjs/openlayers-provider-Dfeg6L4n.js +1604 -0
  25. package/dist/cjs/polygon-layer-B9PrN7vr.js +1300 -0
  26. package/dist/cjs/scenegraph-layer-DwNoxQdi.js +2530 -0
  27. package/dist/cjs/styleconfig-CVRqArk-.js +23 -0
  28. package/dist/cjs/v-map-builder.cjs.entry.js +3786 -0
  29. package/dist/cjs/v-map-layer-geojson_12.cjs.entry.js +40894 -0
  30. package/dist/cjs/v-map-layer-helper-iAzxAg9I.js +285 -0
  31. package/dist/cjs/v-map-layer-terrain-geotiff.cjs.entry.js +258 -0
  32. package/dist/cjs/v-map-layercontrol.cjs.entry.js +247 -0
  33. package/dist/cjs/v-map.cjs.js +25 -0
  34. package/dist/cjs/v-map.v-map-layer-osm.v-map-layergroup-BsXp3BoL.js +582 -0
  35. package/dist/cjs/v-map_3.cjs.entry.js +12 -0
  36. package/dist/collection/collection-manifest.json +30 -0
  37. package/dist/collection/components/v-map/v-map.css +3 -0
  38. package/dist/collection/components/v-map/v-map.js +467 -0
  39. package/dist/collection/components/v-map/v-map.test.js +33 -0
  40. package/dist/collection/components/v-map-builder/v-map-builder.css +1 -0
  41. package/dist/collection/components/v-map-builder/v-map-builder.js +913 -0
  42. package/dist/collection/components/v-map-builder/v-map-builder.test.js +56 -0
  43. package/dist/collection/components/v-map-layer-geojson/v-map-layer-geojson.js +862 -0
  44. package/dist/collection/components/v-map-layer-geojson/v-map-layer-geojson.test.js +42 -0
  45. package/dist/collection/components/v-map-layer-geotiff/v-map-layer-geotiff.css +4 -0
  46. package/dist/collection/components/v-map-layer-geotiff/v-map-layer-geotiff.js +500 -0
  47. package/dist/collection/components/v-map-layer-geotiff/v-map-layer-geotiff.test.js +38 -0
  48. package/dist/collection/components/v-map-layer-google/v-map-layer-google.css +1 -0
  49. package/dist/collection/components/v-map-layer-google/v-map-layer-google.js +442 -0
  50. package/dist/collection/components/v-map-layer-osm/error-api.test.js +108 -0
  51. package/dist/collection/components/v-map-layer-osm/v-map-layer-osm.css +4 -0
  52. package/dist/collection/components/v-map-layer-osm/v-map-layer-osm.js +311 -0
  53. package/dist/collection/components/v-map-layer-osm/v-map-layer-osm.test.js +36 -0
  54. package/dist/collection/components/v-map-layer-scatterplot/v-map-layer-scatterplot.css +1 -0
  55. package/dist/collection/components/v-map-layer-scatterplot/v-map-layer-scatterplot.js +305 -0
  56. package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.css +3 -0
  57. package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.js +548 -0
  58. package/dist/collection/components/v-map-layer-terrain/v-map-layer-terrain.test.js +36 -0
  59. package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.css +3 -0
  60. package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.js +735 -0
  61. package/dist/collection/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.test.js +42 -0
  62. package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.css +3 -0
  63. package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.js +449 -0
  64. package/dist/collection/components/v-map-layer-tile3d/v-map-layer-tile3d.test.js +50 -0
  65. package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.css +1 -0
  66. package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.js +448 -0
  67. package/dist/collection/components/v-map-layer-wcs/v-map-layer-wcs.test.js +39 -0
  68. package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.css +1 -0
  69. package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.js +489 -0
  70. package/dist/collection/components/v-map-layer-wfs/v-map-layer-wfs.test.js +43 -0
  71. package/dist/collection/components/v-map-layer-wkt/v-map-layer-wkt.css +1 -0
  72. package/dist/collection/components/v-map-layer-wkt/v-map-layer-wkt.js +811 -0
  73. package/dist/collection/components/v-map-layer-wkt/v-map-layer-wkt.test.js +34 -0
  74. package/dist/collection/components/v-map-layer-wms/v-map-layer-wms.css +1 -0
  75. package/dist/collection/components/v-map-layer-wms/v-map-layer-wms.js +453 -0
  76. package/dist/collection/components/v-map-layer-wms/v-map-layer-wms.test.js +36 -0
  77. package/dist/collection/components/v-map-layer-xyz/v-map-layer-xyz.css +1 -0
  78. package/dist/collection/components/v-map-layer-xyz/v-map-layer-xyz.js +331 -0
  79. package/dist/collection/components/v-map-layer-xyz/v-map-layer-xyz.test.js +28 -0
  80. package/dist/collection/components/v-map-layercontrol/v-map-layercontrol.css +74 -0
  81. package/dist/collection/components/v-map-layercontrol/v-map-layercontrol.js +277 -0
  82. package/dist/collection/components/v-map-layercontrol/v-map-layercontrol.test.js +134 -0
  83. package/dist/collection/components/v-map-layergroup/v-map-layergroup.css +4 -0
  84. package/dist/collection/components/v-map-layergroup/v-map-layergroup.js +212 -0
  85. package/dist/collection/components/v-map-layergroup/v-map-layergroup.test.js +39 -0
  86. package/dist/collection/components/v-map-style/v-map-style.css +38 -0
  87. package/dist/collection/components/v-map-style/v-map-style.js +492 -0
  88. package/dist/collection/components/v-map-style/v-map-style.unit.js +62 -0
  89. package/dist/collection/index.js +1 -0
  90. package/dist/collection/layer/v-map-layer-helper.js +281 -0
  91. package/dist/collection/layer/v-map-layer-helper.unit.js +234 -0
  92. package/dist/collection/lib/cesium-loader.js +58 -0
  93. package/dist/collection/lib/ensure-importmap.js +12 -0
  94. package/dist/collection/lib/ensure-importmap.unit.js +57 -0
  95. package/dist/collection/lib/versions.gen.js +6 -0
  96. package/dist/collection/lib/vstyle.js +8 -0
  97. package/dist/collection/map-provider/cesium/CesiumGeoTIFFTerrainProvider.js +285 -0
  98. package/dist/collection/map-provider/cesium/CesiumLayerGroups.js +159 -0
  99. package/dist/collection/map-provider/cesium/GeoTIFFImageryProvider.js +192 -0
  100. package/dist/collection/map-provider/cesium/GeoTIFFImageryProvider.test.js +57 -0
  101. package/dist/collection/map-provider/cesium/cesium-provider.js +1408 -0
  102. package/dist/collection/map-provider/cesium/i-layer.js +1 -0
  103. package/dist/collection/map-provider/cesium/layer-manager.js +467 -0
  104. package/dist/collection/map-provider/deck/DeckGLGeoTIFFLayer.js +483 -0
  105. package/dist/collection/map-provider/deck/DeckGLGeoTIFFTerrainLayer.js +410 -0
  106. package/dist/collection/map-provider/deck/LayerGroupWithModel.js +169 -0
  107. package/dist/collection/map-provider/deck/LayerGroups.js +192 -0
  108. package/dist/collection/map-provider/deck/LayerModel.js +1 -0
  109. package/dist/collection/map-provider/deck/RenderableGroup.js +1 -0
  110. package/dist/collection/map-provider/deck/deck-provider.js +1563 -0
  111. package/dist/collection/map-provider/geotiff/geotiff-source.js +172 -0
  112. package/dist/collection/map-provider/geotiff/utils/AABB2D.js +24 -0
  113. package/dist/collection/map-provider/geotiff/utils/BVHNode2D.js +166 -0
  114. package/dist/collection/map-provider/geotiff/utils/GeoTIFFTileProcessor.js +484 -0
  115. package/dist/collection/map-provider/geotiff/utils/Triangle.js +1 -0
  116. package/dist/collection/map-provider/geotiff/utils/Triangulation.js +321 -0
  117. package/dist/collection/map-provider/geotiff/utils/colormap-utils.js +190 -0
  118. package/dist/collection/map-provider/geotiff/utils/normalization-utils.js +122 -0
  119. package/dist/collection/map-provider/geotiff/utils/sampling-utils.js +108 -0
  120. package/dist/collection/map-provider/leaflet/GeoTIFFGridLayer.js +147 -0
  121. package/dist/collection/map-provider/leaflet/WCSGridLayer.js +124 -0
  122. package/dist/collection/map-provider/leaflet/google-map-tiles-layer.js +352 -0
  123. package/dist/collection/map-provider/leaflet/leaflet-helpers.js +94 -0
  124. package/dist/collection/map-provider/leaflet/leaflet-provider.js +1095 -0
  125. package/dist/collection/map-provider/ol/CustomGeoTiff.js +145 -0
  126. package/dist/collection/map-provider/ol/openlayers-helper.js +26 -0
  127. package/dist/collection/map-provider/ol/openlayers-provider.js +1427 -0
  128. package/dist/collection/map-provider/provider-factory.js +44 -0
  129. package/dist/collection/map-provider/provider-factory.unit.js +66 -0
  130. package/dist/collection/testing/browser-test-utils.js +49 -0
  131. package/dist/collection/testing/e2e-testing.js +122 -0
  132. package/dist/collection/testing/e2e-utils.js +70 -0
  133. package/dist/collection/testing/geotiff-test-server.js +100 -0
  134. package/dist/collection/testing/mocks/geostyler-lyrx-parser.js +12 -0
  135. package/dist/collection/testing/mocks/geostyler-mapbox-parser.js +12 -0
  136. package/dist/collection/testing/mocks/geostyler-qgis-parser.js +12 -0
  137. package/dist/collection/testing/mocks/geostyler-sld-parser.js +13 -0
  138. package/dist/collection/testing/mocks/geostyler-style.js +5 -0
  139. package/dist/collection/testing/setupTests.browser.js +1 -0
  140. package/dist/collection/testing/setupTests.stencil.js +20 -0
  141. package/dist/collection/testing/setupTests.vitest.js +59 -0
  142. package/dist/collection/testing/stencil-testing-wrapper.js +43 -0
  143. package/dist/collection/testing/styleMock.js +1 -0
  144. package/dist/collection/types/color.js +1 -0
  145. package/dist/collection/types/cssmode.js +1 -0
  146. package/dist/collection/types/flavour.js +1 -0
  147. package/dist/collection/types/layerconfig.js +1 -0
  148. package/dist/collection/types/lonlat.js +1 -0
  149. package/dist/collection/types/mapinitoptions.js +1 -0
  150. package/dist/collection/types/mapprovider.js +1 -0
  151. package/dist/collection/types/provideroptions.js +1 -0
  152. package/dist/collection/types/styleconfig.js +19 -0
  153. package/dist/collection/types/styling.js +13 -0
  154. package/dist/collection/types/styling.unit.js +37 -0
  155. package/dist/collection/types/vmaplayer.js +1 -0
  156. package/dist/collection/utils/async-mutex.js +28 -0
  157. package/dist/collection/utils/diff.js +142 -0
  158. package/dist/collection/utils/diff.unit.js +59 -0
  159. package/dist/collection/utils/dom-env.js +43 -0
  160. package/dist/collection/utils/dom-env.unit.js +92 -0
  161. package/dist/collection/utils/events.js +8 -0
  162. package/dist/collection/utils/logger.js +183 -0
  163. package/dist/collection/utils/logger.unit.js +98 -0
  164. package/dist/collection/utils/messages.js +12 -0
  165. package/dist/collection/utils/spatial-utils.js +27 -0
  166. package/dist/collection/utils/spatial-utils.unit.js +24 -0
  167. package/dist/components/_commonjsHelpers.js +1 -0
  168. package/dist/components/cesium-provider.js +1 -0
  169. package/dist/components/deck-provider.js +1 -0
  170. package/dist/components/events.js +1 -0
  171. package/dist/components/geotiff-source.js +1 -0
  172. package/dist/components/geotiff.js +4 -0
  173. package/dist/components/index.browser.js +15 -0
  174. package/dist/components/index.d.ts +35 -0
  175. package/dist/components/index.js +1 -0
  176. package/dist/components/index2.js +1 -0
  177. package/dist/components/index3.js +1 -0
  178. package/dist/components/index4.js +1 -0
  179. package/dist/components/index5.js +1 -0
  180. package/dist/components/index6.js +1 -0
  181. package/dist/components/index7.js +1 -0
  182. package/dist/components/index8.js +7 -0
  183. package/dist/components/layer-extension.js +1 -0
  184. package/dist/components/leaflet-provider.js +1 -0
  185. package/dist/components/main-dist.js +1 -0
  186. package/dist/components/messages.js +1 -0
  187. package/dist/components/openlayers-provider.js +1 -0
  188. package/dist/components/polygon-layer.js +1 -0
  189. package/dist/components/scenegraph-layer.js +1 -0
  190. package/dist/components/styleconfig.js +1 -0
  191. package/dist/components/styling.js +1 -0
  192. package/dist/components/v-map-builder.d.ts +11 -0
  193. package/dist/components/v-map-builder.js +2 -0
  194. package/dist/components/v-map-layer-geojson.d.ts +11 -0
  195. package/dist/components/v-map-layer-geojson.js +1 -0
  196. package/dist/components/v-map-layer-geojson2.js +1 -0
  197. package/dist/components/v-map-layer-geotiff.d.ts +11 -0
  198. package/dist/components/v-map-layer-geotiff.js +1 -0
  199. package/dist/components/v-map-layer-geotiff2.js +1 -0
  200. package/dist/components/v-map-layer-google.d.ts +11 -0
  201. package/dist/components/v-map-layer-google.js +1 -0
  202. package/dist/components/v-map-layer-google2.js +1 -0
  203. package/dist/components/v-map-layer-helper.js +1 -0
  204. package/dist/components/v-map-layer-osm.d.ts +11 -0
  205. package/dist/components/v-map-layer-osm.js +1 -0
  206. package/dist/components/v-map-layer-osm2.js +1 -0
  207. package/dist/components/v-map-layer-scatterplot.d.ts +11 -0
  208. package/dist/components/v-map-layer-scatterplot.js +1 -0
  209. package/dist/components/v-map-layer-scatterplot2.js +1 -0
  210. package/dist/components/v-map-layer-terrain-geotiff.d.ts +11 -0
  211. package/dist/components/v-map-layer-terrain-geotiff.js +1 -0
  212. package/dist/components/v-map-layer-terrain.d.ts +11 -0
  213. package/dist/components/v-map-layer-terrain.js +1 -0
  214. package/dist/components/v-map-layer-terrain2.js +1 -0
  215. package/dist/components/v-map-layer-tile3d.d.ts +11 -0
  216. package/dist/components/v-map-layer-tile3d.js +1 -0
  217. package/dist/components/v-map-layer-tile3d2.js +1 -0
  218. package/dist/components/v-map-layer-wcs.d.ts +11 -0
  219. package/dist/components/v-map-layer-wcs.js +1 -0
  220. package/dist/components/v-map-layer-wcs2.js +1 -0
  221. package/dist/components/v-map-layer-wfs.d.ts +11 -0
  222. package/dist/components/v-map-layer-wfs.js +1 -0
  223. package/dist/components/v-map-layer-wfs2.js +1 -0
  224. package/dist/components/v-map-layer-wkt.d.ts +11 -0
  225. package/dist/components/v-map-layer-wkt.js +1 -0
  226. package/dist/components/v-map-layer-wkt2.js +1 -0
  227. package/dist/components/v-map-layer-wms.d.ts +11 -0
  228. package/dist/components/v-map-layer-wms.js +1 -0
  229. package/dist/components/v-map-layer-wms2.js +1 -0
  230. package/dist/components/v-map-layer-xyz.d.ts +11 -0
  231. package/dist/components/v-map-layer-xyz.js +1 -0
  232. package/dist/components/v-map-layer-xyz2.js +1 -0
  233. package/dist/components/v-map-layercontrol.d.ts +11 -0
  234. package/dist/components/v-map-layercontrol.js +1 -0
  235. package/dist/components/v-map-layergroup.d.ts +11 -0
  236. package/dist/components/v-map-layergroup.js +1 -0
  237. package/dist/components/v-map-layergroup2.js +1 -0
  238. package/dist/components/v-map-style.d.ts +11 -0
  239. package/dist/components/v-map-style.js +1 -0
  240. package/dist/components/v-map-style2.js +10 -0
  241. package/dist/components/v-map.d.ts +11 -0
  242. package/dist/components/v-map.js +1 -0
  243. package/dist/components/v-map2.js +1 -0
  244. package/dist/esm/_commonjsHelpers-E-ZsRS8r.js +32 -0
  245. package/dist/esm/app-globals-DQuL1Twl.js +3 -0
  246. package/dist/esm/cesium-provider-BJfAup3w.js +2596 -0
  247. package/dist/esm/deck-provider-C7U9VDEq.js +47709 -0
  248. package/dist/esm/geotiff-BEWxTIfH.js +45 -0
  249. package/dist/esm/geotiff-source-esnDnC-u.js +1516 -0
  250. package/dist/esm/index-B1zwA4IC.js +685 -0
  251. package/dist/esm/index-BBpiaTpT.js +165 -0
  252. package/dist/esm/index-BIEmlzCf.js +1697 -0
  253. package/dist/esm/index-BUHa4Jj0.js +307 -0
  254. package/dist/esm/index-DbSdn93t.js +20461 -0
  255. package/dist/esm/index-RpJarvr_.js +10656 -0
  256. package/dist/esm/index-jN06TXUp.js +14 -0
  257. package/dist/esm/index-jzneDarq.js +1613 -0
  258. package/dist/esm/index.browser-DhQAXuA7.js +6860 -0
  259. package/dist/esm/index.js +1 -0
  260. package/dist/esm/layer-extension-CZXK5goK.js +63 -0
  261. package/dist/esm/leaflet-provider-Q41TB6ku.js +1794 -0
  262. package/dist/esm/loader.js +11 -0
  263. package/dist/esm/main-dist-CwnA7_Xn.js +2652 -0
  264. package/dist/esm/messages-CMKJzsgL.js +180 -0
  265. package/dist/esm/openlayers-provider-CMsDsQTQ.js +1602 -0
  266. package/dist/esm/polygon-layer-ByhxGhWC.js +1295 -0
  267. package/dist/esm/scenegraph-layer-09K_B6DT.js +2526 -0
  268. package/dist/esm/styleconfig-B-bAcABs.js +21 -0
  269. package/dist/esm/v-map-builder.entry.js +3784 -0
  270. package/dist/esm/v-map-layer-geojson_12.entry.js +40881 -0
  271. package/dist/esm/v-map-layer-helper-Dys44Cgo.js +283 -0
  272. package/dist/esm/v-map-layer-terrain-geotiff.entry.js +256 -0
  273. package/dist/esm/v-map-layercontrol.entry.js +245 -0
  274. package/dist/esm/v-map.js +21 -0
  275. package/dist/esm/v-map.v-map-layer-osm.v-map-layergroup-B4pFHuSf.js +572 -0
  276. package/dist/esm/v-map_3.entry.js +4 -0
  277. package/dist/index.cjs.js +1 -0
  278. package/dist/index.js +1 -0
  279. package/dist/types/cesium-augment.d.ts +5 -0
  280. package/dist/types/components/v-map/v-map.d.ts +70 -0
  281. package/dist/types/components/v-map/v-map.test.d.ts +1 -0
  282. package/dist/types/components/v-map-builder/v-map-builder.d.ts +48 -0
  283. package/dist/types/components/v-map-builder/v-map-builder.test.d.ts +1 -0
  284. package/dist/types/components/v-map-layer-geojson/v-map-layer-geojson.d.ts +129 -0
  285. package/dist/types/components/v-map-layer-geojson/v-map-layer-geojson.test.d.ts +1 -0
  286. package/dist/types/components/v-map-layer-geotiff/v-map-layer-geotiff.d.ts +74 -0
  287. package/dist/types/components/v-map-layer-geotiff/v-map-layer-geotiff.test.d.ts +1 -0
  288. package/dist/types/components/v-map-layer-google/v-map-layer-google.d.ts +78 -0
  289. package/dist/types/components/v-map-layer-osm/error-api.test.d.ts +1 -0
  290. package/dist/types/components/v-map-layer-osm/v-map-layer-osm.d.ts +50 -0
  291. package/dist/types/components/v-map-layer-osm/v-map-layer-osm.test.d.ts +1 -0
  292. package/dist/types/components/v-map-layer-scatterplot/v-map-layer-scatterplot.d.ts +54 -0
  293. package/dist/types/components/v-map-layer-terrain/v-map-layer-terrain.d.ts +74 -0
  294. package/dist/types/components/v-map-layer-terrain/v-map-layer-terrain.test.d.ts +1 -0
  295. package/dist/types/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.d.ts +117 -0
  296. package/dist/types/components/v-map-layer-terrain-geotiff/v-map-layer-terrain-geotiff.test.d.ts +1 -0
  297. package/dist/types/components/v-map-layer-tile3d/v-map-layer-tile3d.d.ts +69 -0
  298. package/dist/types/components/v-map-layer-tile3d/v-map-layer-tile3d.test.d.ts +1 -0
  299. package/dist/types/components/v-map-layer-wcs/v-map-layer-wcs.d.ts +47 -0
  300. package/dist/types/components/v-map-layer-wcs/v-map-layer-wcs.test.d.ts +1 -0
  301. package/dist/types/components/v-map-layer-wfs/v-map-layer-wfs.d.ts +59 -0
  302. package/dist/types/components/v-map-layer-wfs/v-map-layer-wfs.test.d.ts +1 -0
  303. package/dist/types/components/v-map-layer-wkt/v-map-layer-wkt.d.ts +132 -0
  304. package/dist/types/components/v-map-layer-wkt/v-map-layer-wkt.test.d.ts +1 -0
  305. package/dist/types/components/v-map-layer-wms/v-map-layer-wms.d.ts +76 -0
  306. package/dist/types/components/v-map-layer-wms/v-map-layer-wms.test.d.ts +1 -0
  307. package/dist/types/components/v-map-layer-xyz/v-map-layer-xyz.d.ts +59 -0
  308. package/dist/types/components/v-map-layer-xyz/v-map-layer-xyz.test.d.ts +1 -0
  309. package/dist/types/components/v-map-layercontrol/v-map-layercontrol.d.ts +44 -0
  310. package/dist/types/components/v-map-layercontrol/v-map-layercontrol.test.d.ts +1 -0
  311. package/dist/types/components/v-map-layergroup/v-map-layergroup.d.ts +31 -0
  312. package/dist/types/components/v-map-layergroup/v-map-layergroup.test.d.ts +1 -0
  313. package/dist/types/components/v-map-style/v-map-style.d.ts +75 -0
  314. package/dist/types/components/v-map-style/v-map-style.unit.d.ts +1 -0
  315. package/dist/types/components.d.ts +2391 -0
  316. package/dist/types/globals.d.ts +16 -0
  317. package/dist/types/index.d.ts +10 -0
  318. package/dist/types/layer/v-map-layer-helper.d.ts +45 -0
  319. package/dist/types/layer/v-map-layer-helper.unit.d.ts +1 -0
  320. package/dist/types/leaflet-augment.d.ts +15 -0
  321. package/dist/types/lib/cesium-loader.d.ts +3 -0
  322. package/dist/types/lib/ensure-importmap.d.ts +3 -0
  323. package/dist/types/lib/ensure-importmap.unit.d.ts +1 -0
  324. package/dist/types/lib/versions.gen.d.ts +5 -0
  325. package/dist/types/lib/vstyle.d.ts +44 -0
  326. package/dist/types/map-provider/cesium/CesiumGeoTIFFTerrainProvider.d.ts +92 -0
  327. package/dist/types/map-provider/cesium/CesiumLayerGroups.d.ts +64 -0
  328. package/dist/types/map-provider/cesium/GeoTIFFImageryProvider.d.ts +75 -0
  329. package/dist/types/map-provider/cesium/GeoTIFFImageryProvider.test.d.ts +1 -0
  330. package/dist/types/map-provider/cesium/cesium-provider.d.ts +87 -0
  331. package/dist/types/map-provider/cesium/i-layer.d.ts +11 -0
  332. package/dist/types/map-provider/cesium/layer-manager.d.ts +31 -0
  333. package/dist/types/map-provider/deck/DeckGLGeoTIFFLayer.d.ts +91 -0
  334. package/dist/types/map-provider/deck/DeckGLGeoTIFFTerrainLayer.d.ts +82 -0
  335. package/dist/types/map-provider/deck/LayerGroupWithModel.d.ts +55 -0
  336. package/dist/types/map-provider/deck/LayerGroups.d.ts +63 -0
  337. package/dist/types/map-provider/deck/LayerModel.d.ts +8 -0
  338. package/dist/types/map-provider/deck/RenderableGroup.d.ts +20 -0
  339. package/dist/types/map-provider/deck/deck-provider.d.ts +92 -0
  340. package/dist/types/map-provider/geotiff/geotiff-source.d.ts +30 -0
  341. package/dist/types/map-provider/geotiff/utils/AABB2D.d.ts +28 -0
  342. package/dist/types/map-provider/geotiff/utils/BVHNode2D.d.ts +36 -0
  343. package/dist/types/map-provider/geotiff/utils/GeoTIFFTileProcessor.d.ts +116 -0
  344. package/dist/types/map-provider/geotiff/utils/Triangle.d.ts +5 -0
  345. package/dist/types/map-provider/geotiff/utils/Triangulation.d.ts +94 -0
  346. package/dist/types/map-provider/geotiff/utils/colormap-utils.d.ts +47 -0
  347. package/dist/types/map-provider/geotiff/utils/normalization-utils.d.ts +39 -0
  348. package/dist/types/map-provider/geotiff/utils/sampling-utils.d.ts +13 -0
  349. package/dist/types/map-provider/leaflet/GeoTIFFGridLayer.d.ts +34 -0
  350. package/dist/types/map-provider/leaflet/WCSGridLayer.d.ts +38 -0
  351. package/dist/types/map-provider/leaflet/google-map-tiles-layer.d.ts +73 -0
  352. package/dist/types/map-provider/leaflet/leaflet-helpers.d.ts +6 -0
  353. package/dist/types/map-provider/leaflet/leaflet-provider.d.ts +73 -0
  354. package/dist/types/map-provider/ol/CustomGeoTiff.d.ts +14 -0
  355. package/dist/types/map-provider/ol/openlayers-helper.d.ts +2 -0
  356. package/dist/types/map-provider/ol/openlayers-provider.d.ts +80 -0
  357. package/dist/types/map-provider/provider-factory.d.ts +12 -0
  358. package/dist/types/map-provider/provider-factory.unit.d.ts +1 -0
  359. package/dist/types/namespaces.d.ts +3 -0
  360. package/dist/types/ol-augment.d.ts +3 -0
  361. package/dist/types/ol-override.d.ts +7 -0
  362. package/dist/types/ol.d.ts +10 -0
  363. package/dist/types/stencil-public-runtime.d.ts +1860 -0
  364. package/dist/types/testing/browser-test-utils.d.ts +6 -0
  365. package/dist/types/testing/e2e-testing.d.ts +5 -0
  366. package/dist/types/testing/e2e-utils.d.ts +4 -0
  367. package/dist/types/testing/geotiff-test-server.d.ts +5 -0
  368. package/dist/types/testing/mocks/geostyler-lyrx-parser.d.ts +11 -0
  369. package/dist/types/testing/mocks/geostyler-mapbox-parser.d.ts +11 -0
  370. package/dist/types/testing/mocks/geostyler-qgis-parser.d.ts +11 -0
  371. package/dist/types/testing/mocks/geostyler-sld-parser.d.ts +11 -0
  372. package/dist/types/testing/mocks/geostyler-style.d.ts +5 -0
  373. package/dist/types/testing/setupTests.browser.d.ts +1 -0
  374. package/dist/types/testing/setupTests.stencil.d.ts +1 -0
  375. package/dist/types/testing/setupTests.vitest.d.ts +1 -0
  376. package/dist/types/testing/stencil-testing-wrapper.d.ts +3 -0
  377. package/dist/types/types/color.d.ts +1 -0
  378. package/dist/types/types/cssmode.d.ts +1 -0
  379. package/dist/types/types/flavour.d.ts +1 -0
  380. package/dist/types/types/layerconfig.d.ts +207 -0
  381. package/dist/types/types/lonlat.d.ts +1 -0
  382. package/dist/types/types/mapinitoptions.d.ts +4 -0
  383. package/dist/types/types/mapprovider.d.ts +46 -0
  384. package/dist/types/types/provideroptions.d.ts +8 -0
  385. package/dist/types/types/styleconfig.d.ts +27 -0
  386. package/dist/types/types/styling.d.ts +24 -0
  387. package/dist/types/types/styling.unit.d.ts +1 -0
  388. package/dist/types/types/vmaplayer.d.ts +10 -0
  389. package/dist/types/utils/async-mutex.d.ts +7 -0
  390. package/dist/types/utils/diff.d.ts +64 -0
  391. package/dist/types/utils/diff.unit.d.ts +1 -0
  392. package/dist/types/utils/dom-env.d.ts +5 -0
  393. package/dist/types/utils/dom-env.unit.d.ts +1 -0
  394. package/dist/types/utils/events.d.ts +29 -0
  395. package/dist/types/utils/logger.d.ts +47 -0
  396. package/dist/types/utils/logger.unit.d.ts +1 -0
  397. package/dist/types/utils/messages.d.ts +12 -0
  398. package/dist/types/utils/spatial-utils.d.ts +6 -0
  399. package/dist/types/utils/spatial-utils.unit.d.ts +1 -0
  400. package/dist/types/versions.d.ts +7 -0
  401. package/dist/v-map/index.esm.js +0 -0
  402. package/dist/v-map/p--vVleK-M.js +1 -0
  403. package/dist/v-map/p-09d10db0.entry.js +1 -0
  404. package/dist/v-map/p-5eba6058.entry.js +10 -0
  405. package/dist/v-map/p-6b102336.entry.js +1 -0
  406. package/dist/v-map/p-B-bAcABs.js +1 -0
  407. package/dist/v-map/p-BBpiaTpT.js +1 -0
  408. package/dist/v-map/p-BdijL4Av.js +1 -0
  409. package/dist/v-map/p-Be3r33VF.js +4 -0
  410. package/dist/v-map/p-BeFu0ap4.js +1 -0
  411. package/dist/v-map/p-BxFJezdK.js +1 -0
  412. package/dist/v-map/p-CMKJzsgL.js +1 -0
  413. package/dist/v-map/p-CXfA_q8m.js +1 -0
  414. package/dist/v-map/p-CZqY0yW4.js +1 -0
  415. package/dist/v-map/p-CafTHT9i.js +1 -0
  416. package/dist/v-map/p-DCTHyf58.js +1 -0
  417. package/dist/v-map/p-DQuL1Twl.js +1 -0
  418. package/dist/v-map/p-DR9McdNX.js +1 -0
  419. package/dist/v-map/p-Dckgonw8.js +1 -0
  420. package/dist/v-map/p-DhQAXuA7.js +15 -0
  421. package/dist/v-map/p-DmICdG34.js +7 -0
  422. package/dist/v-map/p-DrOQ9V4h.js +1 -0
  423. package/dist/v-map/p-DvHXtWUg.js +1 -0
  424. package/dist/v-map/p-E-ZsRS8r.js +1 -0
  425. package/dist/v-map/p-MyTSFnEk.js +1 -0
  426. package/dist/v-map/p-RpJarvr_.js +1 -0
  427. package/dist/v-map/p-WaMDUuAz.js +1 -0
  428. package/dist/v-map/p-aa410e64.entry.js +2 -0
  429. package/dist/v-map/p-c21c93fe.entry.js +1 -0
  430. package/dist/v-map/p-jzneDarq.js +2 -0
  431. package/dist/v-map/p-uiIP-taz.js +1 -0
  432. package/dist/v-map/v-map.esm.js +1 -0
  433. package/loader/cdn.js +1 -0
  434. package/loader/index.cjs.js +1 -0
  435. package/loader/index.d.ts +24 -0
  436. package/loader/index.es2017.js +1 -0
  437. package/loader/index.js +2 -0
  438. package/package.json +193 -0
@@ -0,0 +1,38 @@
1
+ :host {
2
+ display: block;
3
+ position: relative;
4
+ }
5
+
6
+ .style-container {
7
+ min-height: 20px;
8
+ }
9
+
10
+ .loading {
11
+ padding: 8px;
12
+ background-color: #f0f0f0;
13
+ border-left: 4px solid #2196f3;
14
+ font-size: 14px;
15
+ color: #666;
16
+ }
17
+
18
+ .error {
19
+ padding: 8px;
20
+ background-color: #ffebee;
21
+ border-left: 4px solid #f44336;
22
+ color: #c62828;
23
+ font-size: 14px;
24
+ }
25
+
26
+ .success {
27
+ padding: 8px;
28
+ background-color: #e8f5e8;
29
+ border-left: 4px solid #4caf50;
30
+ color: #2e7d32;
31
+ font-size: 14px;
32
+ }
33
+
34
+ .targets {
35
+ margin-top: 4px;
36
+ font-size: 12px;
37
+ color: #666;
38
+ }
@@ -0,0 +1,492 @@
1
+ import { h, } from "@stencil/core";
2
+ import SLDParser from "geostyler-sld-parser";
3
+ import MapboxParser from "geostyler-mapbox-parser";
4
+ import QGISParser from "geostyler-qgis-parser";
5
+ import LyrxParser from "geostyler-lyrx-parser";
6
+ import { log } from "../../utils/logger";
7
+ import MSG from "../../utils/messages";
8
+ import { VMapEvents } from "../../utils/events";
9
+ const MSG_COMPONENT = 'v-map-style';
10
+ export class VMapStyle {
11
+ el;
12
+ /**
13
+ * The styling format to parse (supports 'sld', 'mapbox-gl', 'qgis', 'lyrx', 'cesium-3d-tiles').
14
+ */
15
+ format = 'sld';
16
+ /**
17
+ * The style source - can be a URL to fetch from or inline SLD/style content.
18
+ */
19
+ src;
20
+ /**
21
+ * Inline style content as string (alternative to src).
22
+ */
23
+ content;
24
+ /**
25
+ * Target layer IDs to apply this style to. If not specified, applies to all compatible layers.
26
+ */
27
+ layerTargets;
28
+ /**
29
+ * Whether to automatically apply the style when loaded.
30
+ * @default true
31
+ */
32
+ autoApply = true;
33
+ /**
34
+ * Fired when style is successfully parsed and ready to apply.
35
+ */
36
+ styleReady;
37
+ /**
38
+ * Fired when style parsing fails.
39
+ */
40
+ styleError;
41
+ parsedStyle;
42
+ isLoading = false;
43
+ error;
44
+ sldParser = new SLDParser();
45
+ mapboxParser = new MapboxParser();
46
+ qgisParser = new QGISParser();
47
+ lyrxParser = new LyrxParser();
48
+ async connectedCallback() {
49
+ log(MSG_COMPONENT + ' - ' + MSG.COMPONENT_CONNECTED_CALLBACK);
50
+ if (this.autoApply && (this.src || this.content)) {
51
+ await this.loadAndParseStyle();
52
+ }
53
+ }
54
+ async onStyleSourceChanged() {
55
+ if (this.autoApply && (this.src || this.content)) {
56
+ await this.loadAndParseStyle();
57
+ }
58
+ }
59
+ /**
60
+ * Load and parse the style from src or content.
61
+ */
62
+ async loadAndParseStyle() {
63
+ this.isLoading = true;
64
+ this.error = undefined;
65
+ try {
66
+ let styleContent;
67
+ if (this.src) {
68
+ // Fetch style from URL
69
+ const response = await fetch(this.src);
70
+ if (!response.ok) {
71
+ throw new Error(`Failed to fetch style from ${this.src}: ${response.statusText}`);
72
+ }
73
+ styleContent = await response.text();
74
+ }
75
+ else if (this.content) {
76
+ // Use inline content
77
+ styleContent = this.content;
78
+ }
79
+ else {
80
+ throw new Error('Either src or content must be provided');
81
+ }
82
+ // Parse based on format
83
+ const style = await this.parseStyle(styleContent);
84
+ this.parsedStyle = style;
85
+ const styleEvent = {
86
+ style,
87
+ layerIds: this.getLayerTargets(),
88
+ };
89
+ this.styleReady.emit(styleEvent);
90
+ log(MSG_COMPONENT + ' - Style successfully parsed', style);
91
+ return style;
92
+ }
93
+ catch (error) {
94
+ this.error = error;
95
+ this.styleError.emit(this.error);
96
+ const errorType = isRemoteFetchFailure(this.error) ? 'network' : 'parse';
97
+ this.el.dispatchEvent(new CustomEvent(VMapEvents.Error, {
98
+ detail: {
99
+ type: errorType,
100
+ message: this.error.message,
101
+ cause: this.error,
102
+ },
103
+ bubbles: true,
104
+ composed: true,
105
+ }));
106
+ console.error(MSG_COMPONENT + ' - Style parsing failed:', error);
107
+ return undefined;
108
+ }
109
+ finally {
110
+ this.isLoading = false;
111
+ }
112
+ }
113
+ async parseStyle(styleContent) {
114
+ switch (this.format) {
115
+ case 'sld':
116
+ return this.parseSLD(styleContent);
117
+ case 'mapbox-gl':
118
+ return this.parseMapboxGL(styleContent);
119
+ case 'qgis':
120
+ return this.parseQGIS(styleContent);
121
+ case 'lyrx':
122
+ return this.parseLyrx(styleContent);
123
+ case 'cesium-3d-tiles':
124
+ return this.parseCesium3DTiles(styleContent);
125
+ case 'geostyler':
126
+ return this.parseGeoStyler(styleContent);
127
+ default:
128
+ throw new Error(`Unsupported style format: ${this.format}`);
129
+ }
130
+ }
131
+ async parseSLD(sldContent) {
132
+ try {
133
+ const { output: style } = await this.sldParser.readStyle(sldContent);
134
+ if (!style) {
135
+ throw new Error('Failed to parse SLD - no style output');
136
+ }
137
+ return style;
138
+ }
139
+ catch (error) {
140
+ throw new Error(`SLD parsing failed: ${error?.message || error}`);
141
+ }
142
+ }
143
+ async parseMapboxGL(mapboxContent) {
144
+ try {
145
+ // Parse JSON if string
146
+ const mapboxStyle = typeof mapboxContent === 'string'
147
+ ? JSON.parse(mapboxContent)
148
+ : mapboxContent;
149
+ if (typeof mapboxStyle !== 'object' || mapboxStyle === null) {
150
+ throw new Error('Parsed Mapbox GL style is not a valid object');
151
+ }
152
+ const { output: style } = await this.mapboxParser.readStyle(mapboxStyle);
153
+ if (!style) {
154
+ throw new Error('Failed to parse Mapbox GL Style - no style output');
155
+ }
156
+ return style;
157
+ }
158
+ catch (error) {
159
+ throw new Error(`Mapbox GL Style parsing failed: ${error?.message || error}`);
160
+ }
161
+ }
162
+ async parseQGIS(qgisContent) {
163
+ try {
164
+ const { output: style } = await this.qgisParser.readStyle(qgisContent);
165
+ if (!style) {
166
+ throw new Error('Failed to parse QGIS Style - no style output');
167
+ }
168
+ return style;
169
+ }
170
+ catch (error) {
171
+ throw new Error(`QGIS Style parsing failed: ${error?.message || error}`);
172
+ }
173
+ }
174
+ async parseLyrx(lyrxContent) {
175
+ try {
176
+ // Parse JSON if string
177
+ const lyrxStyle = typeof lyrxContent === 'string' ? JSON.parse(lyrxContent) : lyrxContent;
178
+ if (typeof lyrxStyle !== 'object' || lyrxStyle === null) {
179
+ throw new Error('Parsed LYRX style is not a valid object');
180
+ }
181
+ const { output: style } = await this.lyrxParser.readStyle(lyrxStyle);
182
+ if (!style) {
183
+ throw new Error('Failed to parse LYRX (ArcGIS Pro) Style - no style output');
184
+ }
185
+ return style;
186
+ }
187
+ catch (error) {
188
+ throw new Error(`LYRX (ArcGIS Pro) Style parsing failed: ${error?.message || error}`);
189
+ }
190
+ }
191
+ /**
192
+ * Get the currently parsed style.
193
+ */
194
+ async getStyle() {
195
+ return this.parsedStyle;
196
+ }
197
+ async parseCesium3DTiles(jsonContent) {
198
+ try {
199
+ const style = JSON.parse(jsonContent);
200
+ if (typeof style !== 'object' || style === null) {
201
+ throw new Error('Parsed Cesium 3D Tiles style is not a valid object');
202
+ }
203
+ return style;
204
+ }
205
+ catch (error) {
206
+ throw new Error(`Cesium 3D Tiles style parsing failed: ${error?.message || error}`);
207
+ }
208
+ }
209
+ async parseGeoStyler(jsonContent) {
210
+ try {
211
+ const style = JSON.parse(jsonContent);
212
+ if (typeof style !== 'object' || style === null) {
213
+ throw new Error('Parsed GeoStyler style is not a valid object');
214
+ }
215
+ if (typeof style.name !== 'string' || !Array.isArray(style.rules)) {
216
+ throw new Error('GeoStyler style must have "name" (string) and "rules" (array)');
217
+ }
218
+ return style;
219
+ }
220
+ catch (error) {
221
+ throw new Error(`GeoStyler style parsing failed: ${error?.message || error}`);
222
+ }
223
+ }
224
+ /**
225
+ * Get the target layer IDs as array. async
226
+ */
227
+ async getLayerTargetIds() {
228
+ return this.getLayerTargets();
229
+ }
230
+ /**
231
+ * Get the target layer IDs as array.
232
+ */
233
+ getLayerTargets() {
234
+ if (!this.layerTargets)
235
+ return [];
236
+ return this.layerTargets.split(',').map(id => id.trim());
237
+ }
238
+ /**
239
+ * Check if style is loading.
240
+ */
241
+ isStyleLoading() {
242
+ return this.isLoading;
243
+ }
244
+ /**
245
+ * Get any parsing error.
246
+ */
247
+ getError() {
248
+ return this.error;
249
+ }
250
+ render() {
251
+ return (h("div", { key: 'a913bf37c39b0dc70522bb813809c38e5e099ebe', class: "style-container" }, this.isLoading && h("div", { key: 'b8a28051b8ff2ae1d80b1a0af110f9e8342e2260', class: "loading" }, "Loading style..."), this.error && (h("div", { key: 'b7db13abadd3f11f5916296d3e0278ce9044fafc', class: "error" }, "Style Error: ", this.error.message)), this.parsedStyle && (h("div", { key: '56e9327b9794d3eb09c520a17cc1103538f42453', class: "success" }, "Style loaded (", this.format.toUpperCase(), ")", this.getLayerTargets().length > 0 && (h("div", { key: 'b08e604f7fbec96aede1112538b0d785e9b3d226', class: "targets" }, "Targets: ", this.getLayerTargets().join(', '))))), h("slot", { key: '609e6131f414425f639cc81104cbb20da61bc1de' })));
252
+ }
253
+ static get is() { return "v-map-style"; }
254
+ static get encapsulation() { return "shadow"; }
255
+ static get originalStyleUrls() {
256
+ return {
257
+ "$": ["v-map-style.css"]
258
+ };
259
+ }
260
+ static get styleUrls() {
261
+ return {
262
+ "$": ["v-map-style.css"]
263
+ };
264
+ }
265
+ static get properties() {
266
+ return {
267
+ "format": {
268
+ "type": "string",
269
+ "mutable": false,
270
+ "complexType": {
271
+ "original": "StyleFormat",
272
+ "resolved": "\"cesium-3d-tiles\" | \"geostyler\" | \"lyrx\" | \"mapbox-gl\" | \"qgis\" | \"sld\"",
273
+ "references": {
274
+ "StyleFormat": {
275
+ "location": "import",
276
+ "path": "../../types/styling",
277
+ "id": "src/types/styling.ts::StyleFormat",
278
+ "referenceLocation": "StyleFormat"
279
+ }
280
+ }
281
+ },
282
+ "required": false,
283
+ "optional": false,
284
+ "docs": {
285
+ "tags": [],
286
+ "text": "The styling format to parse (supports 'sld', 'mapbox-gl', 'qgis', 'lyrx', 'cesium-3d-tiles')."
287
+ },
288
+ "getter": false,
289
+ "setter": false,
290
+ "reflect": true,
291
+ "attribute": "format",
292
+ "defaultValue": "'sld'"
293
+ },
294
+ "src": {
295
+ "type": "string",
296
+ "mutable": false,
297
+ "complexType": {
298
+ "original": "string",
299
+ "resolved": "string",
300
+ "references": {}
301
+ },
302
+ "required": false,
303
+ "optional": true,
304
+ "docs": {
305
+ "tags": [],
306
+ "text": "The style source - can be a URL to fetch from or inline SLD/style content."
307
+ },
308
+ "getter": false,
309
+ "setter": false,
310
+ "reflect": true,
311
+ "attribute": "src"
312
+ },
313
+ "content": {
314
+ "type": "string",
315
+ "mutable": false,
316
+ "complexType": {
317
+ "original": "string",
318
+ "resolved": "string",
319
+ "references": {}
320
+ },
321
+ "required": false,
322
+ "optional": true,
323
+ "docs": {
324
+ "tags": [],
325
+ "text": "Inline style content as string (alternative to src)."
326
+ },
327
+ "getter": false,
328
+ "setter": false,
329
+ "reflect": true,
330
+ "attribute": "content"
331
+ },
332
+ "layerTargets": {
333
+ "type": "string",
334
+ "mutable": false,
335
+ "complexType": {
336
+ "original": "string",
337
+ "resolved": "string",
338
+ "references": {}
339
+ },
340
+ "required": false,
341
+ "optional": true,
342
+ "docs": {
343
+ "tags": [],
344
+ "text": "Target layer IDs to apply this style to. If not specified, applies to all compatible layers."
345
+ },
346
+ "getter": false,
347
+ "setter": false,
348
+ "reflect": true,
349
+ "attribute": "layer-targets"
350
+ },
351
+ "autoApply": {
352
+ "type": "boolean",
353
+ "mutable": false,
354
+ "complexType": {
355
+ "original": "boolean",
356
+ "resolved": "boolean",
357
+ "references": {}
358
+ },
359
+ "required": false,
360
+ "optional": false,
361
+ "docs": {
362
+ "tags": [{
363
+ "name": "default",
364
+ "text": "true"
365
+ }],
366
+ "text": "Whether to automatically apply the style when loaded."
367
+ },
368
+ "getter": false,
369
+ "setter": false,
370
+ "reflect": true,
371
+ "attribute": "auto-apply",
372
+ "defaultValue": "true"
373
+ }
374
+ };
375
+ }
376
+ static get states() {
377
+ return {
378
+ "parsedStyle": {},
379
+ "isLoading": {},
380
+ "error": {}
381
+ };
382
+ }
383
+ static get events() {
384
+ return [{
385
+ "method": "styleReady",
386
+ "name": "styleReady",
387
+ "bubbles": true,
388
+ "cancelable": true,
389
+ "composed": true,
390
+ "docs": {
391
+ "tags": [],
392
+ "text": "Fired when style is successfully parsed and ready to apply."
393
+ },
394
+ "complexType": {
395
+ "original": "StyleEvent",
396
+ "resolved": "{ style?: ResolvedStyle; layerIds?: string[]; }",
397
+ "references": {
398
+ "StyleEvent": {
399
+ "location": "import",
400
+ "path": "../../types/styling",
401
+ "id": "src/types/styling.ts::StyleEvent",
402
+ "referenceLocation": "StyleEvent"
403
+ }
404
+ }
405
+ }
406
+ }, {
407
+ "method": "styleError",
408
+ "name": "styleError",
409
+ "bubbles": true,
410
+ "cancelable": true,
411
+ "composed": true,
412
+ "docs": {
413
+ "tags": [],
414
+ "text": "Fired when style parsing fails."
415
+ },
416
+ "complexType": {
417
+ "original": "Error",
418
+ "resolved": "Error",
419
+ "references": {
420
+ "Error": {
421
+ "location": "global",
422
+ "id": "global::Error"
423
+ }
424
+ }
425
+ }
426
+ }];
427
+ }
428
+ static get methods() {
429
+ return {
430
+ "getStyle": {
431
+ "complexType": {
432
+ "signature": "() => Promise<ResolvedStyle | undefined>",
433
+ "parameters": [],
434
+ "references": {
435
+ "Promise": {
436
+ "location": "global",
437
+ "id": "global::Promise"
438
+ },
439
+ "ResolvedStyle": {
440
+ "location": "import",
441
+ "path": "../../types/styling",
442
+ "id": "src/types/styling.ts::ResolvedStyle",
443
+ "referenceLocation": "ResolvedStyle"
444
+ }
445
+ },
446
+ "return": "Promise<ResolvedStyle>"
447
+ },
448
+ "docs": {
449
+ "text": "Get the currently parsed style.",
450
+ "tags": []
451
+ }
452
+ },
453
+ "getLayerTargetIds": {
454
+ "complexType": {
455
+ "signature": "() => Promise<string[]>",
456
+ "parameters": [],
457
+ "references": {
458
+ "Promise": {
459
+ "location": "global",
460
+ "id": "global::Promise"
461
+ }
462
+ },
463
+ "return": "Promise<string[]>"
464
+ },
465
+ "docs": {
466
+ "text": "Get the target layer IDs as array. async",
467
+ "tags": []
468
+ }
469
+ }
470
+ };
471
+ }
472
+ static get elementRef() { return "el"; }
473
+ static get watchers() {
474
+ return [{
475
+ "propName": "src",
476
+ "methodName": "onStyleSourceChanged"
477
+ }, {
478
+ "propName": "content",
479
+ "methodName": "onStyleSourceChanged"
480
+ }, {
481
+ "propName": "format",
482
+ "methodName": "onStyleSourceChanged"
483
+ }];
484
+ }
485
+ }
486
+ /**
487
+ * Checks whether the error originated from a failed fetch() call
488
+ * (e.g. "Failed to fetch style from ...") vs. a parse error.
489
+ */
490
+ function isRemoteFetchFailure(error) {
491
+ return error.message.startsWith('Failed to fetch style from');
492
+ }
@@ -0,0 +1,62 @@
1
+ import { describe, it, expect } from "vitest";
2
+ /**
3
+ * v-map-style parseGeoStyler is a private method on the Stencil component.
4
+ * We test the parsing logic directly by extracting the same validation rules.
5
+ */
6
+ function parseGeoStyler(jsonContent) {
7
+ const style = JSON.parse(jsonContent);
8
+ if (typeof style !== 'object' || style === null) {
9
+ throw new Error('GeoStyler style parsing failed: Parsed GeoStyler style is not a valid object');
10
+ }
11
+ if (typeof style.name !== 'string' || !Array.isArray(style.rules)) {
12
+ throw new Error('GeoStyler style parsing failed: GeoStyler style must have "name" (string) and "rules" (array)');
13
+ }
14
+ return style;
15
+ }
16
+ describe('v-map-style – format="geostyler"', () => {
17
+ it('accepts a valid GeoStyler style with name and rules', () => {
18
+ const input = JSON.stringify({
19
+ name: 'Test Style',
20
+ rules: [
21
+ {
22
+ name: 'default',
23
+ symbolizers: [{ kind: 'Mark', wellKnownName: 'circle', color: '#ff0000', radius: 8 }],
24
+ },
25
+ ],
26
+ });
27
+ const result = parseGeoStyler(input);
28
+ expect(result.name).toBe('Test Style');
29
+ expect(result.rules).toHaveLength(1);
30
+ });
31
+ it('accepts a style with empty rules array', () => {
32
+ const input = JSON.stringify({ name: 'Empty', rules: [] });
33
+ const result = parseGeoStyler(input);
34
+ expect(result.name).toBe('Empty');
35
+ expect(result.rules).toHaveLength(0);
36
+ });
37
+ it('rejects invalid JSON', () => {
38
+ expect(() => parseGeoStyler('{ INVALID }')).toThrow();
39
+ });
40
+ it('rejects null', () => {
41
+ expect(() => parseGeoStyler('null')).toThrow('not a valid object');
42
+ });
43
+ it('rejects a primitive string', () => {
44
+ expect(() => parseGeoStyler('"hello"')).toThrow('not a valid object');
45
+ });
46
+ it('rejects an object without name', () => {
47
+ const input = JSON.stringify({ rules: [] });
48
+ expect(() => parseGeoStyler(input)).toThrow('"name" (string) and "rules" (array)');
49
+ });
50
+ it('rejects an object without rules', () => {
51
+ const input = JSON.stringify({ name: 'NoRules' });
52
+ expect(() => parseGeoStyler(input)).toThrow('"name" (string) and "rules" (array)');
53
+ });
54
+ it('rejects an object where rules is not an array', () => {
55
+ const input = JSON.stringify({ name: 'Bad', rules: 'not-an-array' });
56
+ expect(() => parseGeoStyler(input)).toThrow('"name" (string) and "rules" (array)');
57
+ });
58
+ it('rejects an object where name is not a string', () => {
59
+ const input = JSON.stringify({ name: 42, rules: [] });
60
+ expect(() => parseGeoStyler(input)).toThrow('"name" (string) and "rules" (array)');
61
+ });
62
+ });
@@ -0,0 +1 @@
1
+ export {};