@ifc-lite/viewer 1.17.3 → 1.17.4

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 (495) hide show
  1. package/.turbo/turbo-build.log +39 -30
  2. package/.turbo/turbo-typecheck.log +1 -1
  3. package/CHANGELOG.md +15 -0
  4. package/DESKTOP_CONTRACT_VERSION +1 -0
  5. package/dist/assets/arrow-CZ5kQ26f.js +20 -0
  6. package/dist/assets/basketViewActivator-BmnNtVfZ.js +1 -0
  7. package/dist/assets/{bcf-D5-QWGO9.js → bcf-DOG9_WPX.js} +1 -1
  8. package/dist/assets/{browser-CKs-FY1P.js → browser-C5TFR7sH.js} +1 -1
  9. package/dist/assets/cesium-ADbP7waU.css +1 -0
  10. package/dist/assets/cesium-DUOzBlqv.js +17817 -0
  11. package/dist/assets/{exporters-C_6J153K.js → exporters-ChAtBmlj.js} +2225 -1754
  12. package/dist/assets/geometry.worker-BQ0rzNo-.js +1 -0
  13. package/dist/assets/ifc-lite_bg-BX4E7TX8.wasm +0 -0
  14. package/dist/assets/{index-jhBr1wbn.js → index-Co8E2-FE.js} +28959 -24612
  15. package/dist/assets/index-DckuDqlv.css +1 -0
  16. package/dist/assets/{maplibre-gl-BpvwNKKy.js → maplibre-gl-CGLcoNXc.js} +1 -1
  17. package/dist/assets/native-bridge-BRvbckFQ.js +429 -0
  18. package/dist/assets/{sandbox-B79eavQ3.js → sandbox-DZiNLNMk.js} +5 -5
  19. package/dist/assets/{server-client-D3bUPJJc.js → server-client-BV8zHZ7Y.js} +4 -4
  20. package/dist/assets/tauri-core-stub-D8Fa-u43.js +1 -0
  21. package/dist/assets/tauri-dialog-stub-r7Wksg7o.js +1 -0
  22. package/dist/assets/tauri-fs-stub-BdeRC7aK.js +1 -0
  23. package/dist/assets/wasm-bridge-g01g7T9b.js +1 -0
  24. package/dist/assets/{zip-B-jFFAGa.js → zip-DBEtpeu6.js} +3 -3
  25. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
  26. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
  27. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
  28. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
  29. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
  30. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
  31. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
  32. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
  33. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
  34. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
  35. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
  36. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
  37. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
  38. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
  39. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
  40. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
  41. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
  42. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
  43. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
  44. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
  45. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
  46. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
  47. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
  48. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
  49. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
  50. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
  51. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
  52. package/dist/cesium/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
  53. package/dist/cesium/Assets/Images/bing_maps_credit.png +0 -0
  54. package/dist/cesium/Assets/Images/cesium_credit.png +0 -0
  55. package/dist/cesium/Assets/Images/google_earth_credit.png +0 -0
  56. package/dist/cesium/Assets/Images/ion-credit.png +0 -0
  57. package/dist/cesium/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  58. package/dist/cesium/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  59. package/dist/cesium/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  60. package/dist/cesium/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  61. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  62. package/dist/cesium/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  63. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  64. package/dist/cesium/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  65. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  66. package/dist/cesium/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  67. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  68. package/dist/cesium/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  69. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  70. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  71. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  72. package/dist/cesium/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  73. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  74. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  75. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  76. package/dist/cesium/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  77. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  78. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  79. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  80. package/dist/cesium/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  81. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  82. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  83. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  84. package/dist/cesium/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  85. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  86. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  87. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  88. package/dist/cesium/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  89. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  90. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  91. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  92. package/dist/cesium/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  93. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  94. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  95. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  96. package/dist/cesium/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  97. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  98. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  99. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  100. package/dist/cesium/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  101. package/dist/cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +14 -0
  102. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  103. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  104. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  105. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  106. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  107. package/dist/cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  108. package/dist/cesium/Assets/Textures/maki/airfield.png +0 -0
  109. package/dist/cesium/Assets/Textures/maki/airport.png +0 -0
  110. package/dist/cesium/Assets/Textures/maki/alcohol-shop.png +0 -0
  111. package/dist/cesium/Assets/Textures/maki/america-football.png +0 -0
  112. package/dist/cesium/Assets/Textures/maki/art-gallery.png +0 -0
  113. package/dist/cesium/Assets/Textures/maki/bakery.png +0 -0
  114. package/dist/cesium/Assets/Textures/maki/bank.png +0 -0
  115. package/dist/cesium/Assets/Textures/maki/bar.png +0 -0
  116. package/dist/cesium/Assets/Textures/maki/baseball.png +0 -0
  117. package/dist/cesium/Assets/Textures/maki/basketball.png +0 -0
  118. package/dist/cesium/Assets/Textures/maki/beer.png +0 -0
  119. package/dist/cesium/Assets/Textures/maki/bicycle.png +0 -0
  120. package/dist/cesium/Assets/Textures/maki/building.png +0 -0
  121. package/dist/cesium/Assets/Textures/maki/bus.png +0 -0
  122. package/dist/cesium/Assets/Textures/maki/cafe.png +0 -0
  123. package/dist/cesium/Assets/Textures/maki/camera.png +0 -0
  124. package/dist/cesium/Assets/Textures/maki/campsite.png +0 -0
  125. package/dist/cesium/Assets/Textures/maki/car.png +0 -0
  126. package/dist/cesium/Assets/Textures/maki/cemetery.png +0 -0
  127. package/dist/cesium/Assets/Textures/maki/cesium.png +0 -0
  128. package/dist/cesium/Assets/Textures/maki/chemist.png +0 -0
  129. package/dist/cesium/Assets/Textures/maki/cinema.png +0 -0
  130. package/dist/cesium/Assets/Textures/maki/circle-stroked.png +0 -0
  131. package/dist/cesium/Assets/Textures/maki/circle.png +0 -0
  132. package/dist/cesium/Assets/Textures/maki/city.png +0 -0
  133. package/dist/cesium/Assets/Textures/maki/clothing-store.png +0 -0
  134. package/dist/cesium/Assets/Textures/maki/college.png +0 -0
  135. package/dist/cesium/Assets/Textures/maki/commercial.png +0 -0
  136. package/dist/cesium/Assets/Textures/maki/cricket.png +0 -0
  137. package/dist/cesium/Assets/Textures/maki/cross.png +0 -0
  138. package/dist/cesium/Assets/Textures/maki/dam.png +0 -0
  139. package/dist/cesium/Assets/Textures/maki/danger.png +0 -0
  140. package/dist/cesium/Assets/Textures/maki/disability.png +0 -0
  141. package/dist/cesium/Assets/Textures/maki/dog-park.png +0 -0
  142. package/dist/cesium/Assets/Textures/maki/embassy.png +0 -0
  143. package/dist/cesium/Assets/Textures/maki/emergency-telephone.png +0 -0
  144. package/dist/cesium/Assets/Textures/maki/entrance.png +0 -0
  145. package/dist/cesium/Assets/Textures/maki/farm.png +0 -0
  146. package/dist/cesium/Assets/Textures/maki/fast-food.png +0 -0
  147. package/dist/cesium/Assets/Textures/maki/ferry.png +0 -0
  148. package/dist/cesium/Assets/Textures/maki/fire-station.png +0 -0
  149. package/dist/cesium/Assets/Textures/maki/fuel.png +0 -0
  150. package/dist/cesium/Assets/Textures/maki/garden.png +0 -0
  151. package/dist/cesium/Assets/Textures/maki/gift.png +0 -0
  152. package/dist/cesium/Assets/Textures/maki/golf.png +0 -0
  153. package/dist/cesium/Assets/Textures/maki/grocery.png +0 -0
  154. package/dist/cesium/Assets/Textures/maki/hairdresser.png +0 -0
  155. package/dist/cesium/Assets/Textures/maki/harbor.png +0 -0
  156. package/dist/cesium/Assets/Textures/maki/heart.png +0 -0
  157. package/dist/cesium/Assets/Textures/maki/heliport.png +0 -0
  158. package/dist/cesium/Assets/Textures/maki/hospital.png +0 -0
  159. package/dist/cesium/Assets/Textures/maki/ice-cream.png +0 -0
  160. package/dist/cesium/Assets/Textures/maki/industrial.png +0 -0
  161. package/dist/cesium/Assets/Textures/maki/land-use.png +0 -0
  162. package/dist/cesium/Assets/Textures/maki/laundry.png +0 -0
  163. package/dist/cesium/Assets/Textures/maki/library.png +0 -0
  164. package/dist/cesium/Assets/Textures/maki/lighthouse.png +0 -0
  165. package/dist/cesium/Assets/Textures/maki/lodging.png +0 -0
  166. package/dist/cesium/Assets/Textures/maki/logging.png +0 -0
  167. package/dist/cesium/Assets/Textures/maki/london-underground.png +0 -0
  168. package/dist/cesium/Assets/Textures/maki/marker-stroked.png +0 -0
  169. package/dist/cesium/Assets/Textures/maki/marker.png +0 -0
  170. package/dist/cesium/Assets/Textures/maki/minefield.png +0 -0
  171. package/dist/cesium/Assets/Textures/maki/mobilephone.png +0 -0
  172. package/dist/cesium/Assets/Textures/maki/monument.png +0 -0
  173. package/dist/cesium/Assets/Textures/maki/museum.png +0 -0
  174. package/dist/cesium/Assets/Textures/maki/music.png +0 -0
  175. package/dist/cesium/Assets/Textures/maki/oil-well.png +0 -0
  176. package/dist/cesium/Assets/Textures/maki/park.png +0 -0
  177. package/dist/cesium/Assets/Textures/maki/park2.png +0 -0
  178. package/dist/cesium/Assets/Textures/maki/parking-garage.png +0 -0
  179. package/dist/cesium/Assets/Textures/maki/parking.png +0 -0
  180. package/dist/cesium/Assets/Textures/maki/pharmacy.png +0 -0
  181. package/dist/cesium/Assets/Textures/maki/pitch.png +0 -0
  182. package/dist/cesium/Assets/Textures/maki/place-of-worship.png +0 -0
  183. package/dist/cesium/Assets/Textures/maki/playground.png +0 -0
  184. package/dist/cesium/Assets/Textures/maki/police.png +0 -0
  185. package/dist/cesium/Assets/Textures/maki/polling-place.png +0 -0
  186. package/dist/cesium/Assets/Textures/maki/post.png +0 -0
  187. package/dist/cesium/Assets/Textures/maki/prison.png +0 -0
  188. package/dist/cesium/Assets/Textures/maki/rail-above.png +0 -0
  189. package/dist/cesium/Assets/Textures/maki/rail-light.png +0 -0
  190. package/dist/cesium/Assets/Textures/maki/rail-metro.png +0 -0
  191. package/dist/cesium/Assets/Textures/maki/rail-underground.png +0 -0
  192. package/dist/cesium/Assets/Textures/maki/rail.png +0 -0
  193. package/dist/cesium/Assets/Textures/maki/religious-christian.png +0 -0
  194. package/dist/cesium/Assets/Textures/maki/religious-jewish.png +0 -0
  195. package/dist/cesium/Assets/Textures/maki/religious-muslim.png +0 -0
  196. package/dist/cesium/Assets/Textures/maki/restaurant.png +0 -0
  197. package/dist/cesium/Assets/Textures/maki/roadblock.png +0 -0
  198. package/dist/cesium/Assets/Textures/maki/rocket.png +0 -0
  199. package/dist/cesium/Assets/Textures/maki/school.png +0 -0
  200. package/dist/cesium/Assets/Textures/maki/scooter.png +0 -0
  201. package/dist/cesium/Assets/Textures/maki/shop.png +0 -0
  202. package/dist/cesium/Assets/Textures/maki/skiing.png +0 -0
  203. package/dist/cesium/Assets/Textures/maki/slaughterhouse.png +0 -0
  204. package/dist/cesium/Assets/Textures/maki/soccer.png +0 -0
  205. package/dist/cesium/Assets/Textures/maki/square-stroked.png +0 -0
  206. package/dist/cesium/Assets/Textures/maki/square.png +0 -0
  207. package/dist/cesium/Assets/Textures/maki/star-stroked.png +0 -0
  208. package/dist/cesium/Assets/Textures/maki/star.png +0 -0
  209. package/dist/cesium/Assets/Textures/maki/suitcase.png +0 -0
  210. package/dist/cesium/Assets/Textures/maki/swimming.png +0 -0
  211. package/dist/cesium/Assets/Textures/maki/telephone.png +0 -0
  212. package/dist/cesium/Assets/Textures/maki/tennis.png +0 -0
  213. package/dist/cesium/Assets/Textures/maki/theatre.png +0 -0
  214. package/dist/cesium/Assets/Textures/maki/toilets.png +0 -0
  215. package/dist/cesium/Assets/Textures/maki/town-hall.png +0 -0
  216. package/dist/cesium/Assets/Textures/maki/town.png +0 -0
  217. package/dist/cesium/Assets/Textures/maki/triangle-stroked.png +0 -0
  218. package/dist/cesium/Assets/Textures/maki/triangle.png +0 -0
  219. package/dist/cesium/Assets/Textures/maki/village.png +0 -0
  220. package/dist/cesium/Assets/Textures/maki/warehouse.png +0 -0
  221. package/dist/cesium/Assets/Textures/maki/waste-basket.png +0 -0
  222. package/dist/cesium/Assets/Textures/maki/water.png +0 -0
  223. package/dist/cesium/Assets/Textures/maki/wetland.png +0 -0
  224. package/dist/cesium/Assets/Textures/maki/zoo.png +0 -0
  225. package/dist/cesium/Assets/Textures/moonSmall.jpg +0 -0
  226. package/dist/cesium/Assets/Textures/pin.svg +1 -0
  227. package/dist/cesium/Assets/Textures/waterNormals.jpg +0 -0
  228. package/dist/cesium/Assets/Textures/waterNormalsSmall.jpg +0 -0
  229. package/dist/cesium/Assets/approximateTerrainHeights.json +1 -0
  230. package/dist/cesium/ThirdParty/Workers/package.json +1 -0
  231. package/dist/cesium/ThirdParty/Workers/zip-web-worker.js +1 -0
  232. package/dist/cesium/ThirdParty/basis_transcoder.wasm +0 -0
  233. package/dist/cesium/ThirdParty/draco_decoder.wasm +0 -0
  234. package/dist/cesium/ThirdParty/google-earth-dbroot-parser.js +1 -0
  235. package/dist/cesium/ThirdParty/wasm_splats_bg.wasm +0 -0
  236. package/dist/cesium/ThirdParty/zip-module.wasm +0 -0
  237. package/dist/cesium/Widgets/Animation/Animation.css +127 -0
  238. package/dist/cesium/Widgets/Animation/lighter.css +70 -0
  239. package/dist/cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +108 -0
  240. package/dist/cesium/Widgets/BaseLayerPicker/lighter.css +22 -0
  241. package/dist/cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +102 -0
  242. package/dist/cesium/Widgets/CesiumInspector/CesiumInspector.css +113 -0
  243. package/dist/cesium/Widgets/CesiumWidget/CesiumWidget.css +119 -0
  244. package/dist/cesium/Widgets/CesiumWidget/lighter.css +14 -0
  245. package/dist/cesium/Widgets/FullscreenButton/FullscreenButton.css +8 -0
  246. package/dist/cesium/Widgets/Geocoder/Geocoder.css +70 -0
  247. package/dist/cesium/Widgets/Geocoder/lighter.css +17 -0
  248. package/dist/cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +27 -0
  249. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
  250. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
  251. package/dist/cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
  252. package/dist/cesium/Widgets/Images/ImageryProviders/azureAerial.png +0 -0
  253. package/dist/cesium/Widgets/Images/ImageryProviders/azureRoads.png +0 -0
  254. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
  255. package/dist/cesium/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
  256. package/dist/cesium/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
  257. package/dist/cesium/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
  258. package/dist/cesium/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
  259. package/dist/cesium/Widgets/Images/ImageryProviders/googleContour.png +0 -0
  260. package/dist/cesium/Widgets/Images/ImageryProviders/googleRoadmap.png +0 -0
  261. package/dist/cesium/Widgets/Images/ImageryProviders/googleSatellite.png +0 -0
  262. package/dist/cesium/Widgets/Images/ImageryProviders/googleSatelliteLabels.png +0 -0
  263. package/dist/cesium/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
  264. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
  265. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
  266. package/dist/cesium/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
  267. package/dist/cesium/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
  268. package/dist/cesium/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
  269. package/dist/cesium/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
  270. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
  271. package/dist/cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
  272. package/dist/cesium/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
  273. package/dist/cesium/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
  274. package/dist/cesium/Widgets/Images/NavigationHelp/Mouse.svg +84 -0
  275. package/dist/cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +76 -0
  276. package/dist/cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +76 -0
  277. package/dist/cesium/Widgets/Images/NavigationHelp/MouseRight.svg +76 -0
  278. package/dist/cesium/Widgets/Images/NavigationHelp/Touch.svg +120 -0
  279. package/dist/cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +129 -0
  280. package/dist/cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +76 -0
  281. package/dist/cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +135 -0
  282. package/dist/cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +74 -0
  283. package/dist/cesium/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
  284. package/dist/cesium/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
  285. package/dist/cesium/Widgets/Images/TimelineIcons.png +0 -0
  286. package/dist/cesium/Widgets/Images/info-loading.gif +0 -0
  287. package/dist/cesium/Widgets/InfoBox/InfoBox.css +92 -0
  288. package/dist/cesium/Widgets/InfoBox/InfoBoxDescription.css +178 -0
  289. package/dist/cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +93 -0
  290. package/dist/cesium/Widgets/NavigationHelpButton/lighter.css +38 -0
  291. package/dist/cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +15 -0
  292. package/dist/cesium/Widgets/ProjectionPicker/ProjectionPicker.css +38 -0
  293. package/dist/cesium/Widgets/SceneModePicker/SceneModePicker.css +56 -0
  294. package/dist/cesium/Widgets/SelectionIndicator/SelectionIndicator.css +20 -0
  295. package/dist/cesium/Widgets/Timeline/Timeline.css +103 -0
  296. package/dist/cesium/Widgets/Timeline/lighter.css +23 -0
  297. package/dist/cesium/Widgets/VRButton/VRButton.css +8 -0
  298. package/dist/cesium/Widgets/Viewer/Viewer.css +107 -0
  299. package/dist/cesium/Widgets/VoxelInspector/VoxelInspector.css +16 -0
  300. package/dist/cesium/Widgets/lighter.css +237 -0
  301. package/dist/cesium/Widgets/lighterShared.css +46 -0
  302. package/dist/cesium/Widgets/shared.css +103 -0
  303. package/dist/cesium/Widgets/widgets.css +1342 -0
  304. package/dist/cesium/Workers/chunk-23ZQ2IVV.js +29 -0
  305. package/dist/cesium/Workers/chunk-2EQO3Q56.js +26 -0
  306. package/dist/cesium/Workers/chunk-2MJIIVP4.js +26 -0
  307. package/dist/cesium/Workers/chunk-2TE5NTVD.js +26 -0
  308. package/dist/cesium/Workers/chunk-2ZBHLJST.js +26 -0
  309. package/dist/cesium/Workers/chunk-5TJMAQVL.js +26 -0
  310. package/dist/cesium/Workers/chunk-6BD4U3VO.js +26 -0
  311. package/dist/cesium/Workers/chunk-7TVGLKQF.js +26 -0
  312. package/dist/cesium/Workers/chunk-BTSYJ5XU.js +26 -0
  313. package/dist/cesium/Workers/chunk-BXMEEOCS.js +63 -0
  314. package/dist/cesium/Workers/chunk-BYLCY7GP.js +29 -0
  315. package/dist/cesium/Workers/chunk-CTHM3W6I.js +26 -0
  316. package/dist/cesium/Workers/chunk-CUUSNIVQ.js +26 -0
  317. package/dist/cesium/Workers/chunk-E3JOOS3S.js +26 -0
  318. package/dist/cesium/Workers/chunk-E7KYDCM5.js +26 -0
  319. package/dist/cesium/Workers/chunk-EDVBB7SS.js +27 -0
  320. package/dist/cesium/Workers/chunk-EFBN7QNX.js +26 -0
  321. package/dist/cesium/Workers/chunk-EQ4YRVWL.js +26 -0
  322. package/dist/cesium/Workers/chunk-F6PRE7D6.js +26 -0
  323. package/dist/cesium/Workers/chunk-FC4ZZ65J.js +26 -0
  324. package/dist/cesium/Workers/chunk-FFBVWF2L.js +26 -0
  325. package/dist/cesium/Workers/chunk-GBAA6GVX.js +26 -0
  326. package/dist/cesium/Workers/chunk-ICALLYLG.js +26 -0
  327. package/dist/cesium/Workers/chunk-ILRYTWTP.js +26 -0
  328. package/dist/cesium/Workers/chunk-IRNLBSEJ.js +26 -0
  329. package/dist/cesium/Workers/chunk-IX4VMHEV.js +26 -0
  330. package/dist/cesium/Workers/chunk-L6QHHACZ.js +26 -0
  331. package/dist/cesium/Workers/chunk-LI2ZSORM.js +26 -0
  332. package/dist/cesium/Workers/chunk-LSLE2RL4.js +26 -0
  333. package/dist/cesium/Workers/chunk-M4HLDBCG.js +26 -0
  334. package/dist/cesium/Workers/chunk-MJHHSGEH.js +26 -0
  335. package/dist/cesium/Workers/chunk-NMVKML6W.js +26 -0
  336. package/dist/cesium/Workers/chunk-OCWJRAXS.js +26 -0
  337. package/dist/cesium/Workers/chunk-OIRKANTH.js +26 -0
  338. package/dist/cesium/Workers/chunk-OIT7J4IC.js +26 -0
  339. package/dist/cesium/Workers/chunk-OLZ3FYUM.js +26 -0
  340. package/dist/cesium/Workers/chunk-Q5BPHJQF.js +26 -0
  341. package/dist/cesium/Workers/chunk-QFM5DCMQ.js +26 -0
  342. package/dist/cesium/Workers/chunk-QKUIYMGC.js +28 -0
  343. package/dist/cesium/Workers/chunk-S44JILQT.js +26 -0
  344. package/dist/cesium/Workers/chunk-SLT4J352.js +26 -0
  345. package/dist/cesium/Workers/chunk-SQMIIXB7.js +26 -0
  346. package/dist/cesium/Workers/chunk-TJ4XLGBQ.js +26 -0
  347. package/dist/cesium/Workers/chunk-TNSUQXWK.js +27 -0
  348. package/dist/cesium/Workers/chunk-UBOGZS7F.js +26 -0
  349. package/dist/cesium/Workers/chunk-V3OSTMM6.js +26 -0
  350. package/dist/cesium/Workers/chunk-V7QEYVP3.js +26 -0
  351. package/dist/cesium/Workers/chunk-VUKYSU4H.js +26 -0
  352. package/dist/cesium/Workers/chunk-W37FE5GR.js +26 -0
  353. package/dist/cesium/Workers/chunk-WBOV35NL.js +26 -0
  354. package/dist/cesium/Workers/chunk-WPMZLB3Y.js +26 -0
  355. package/dist/cesium/Workers/chunk-WWWZVEEH.js +26 -0
  356. package/dist/cesium/Workers/chunk-XFIQ5DEQ.js +28 -0
  357. package/dist/cesium/Workers/chunk-XQHLGIO7.js +26 -0
  358. package/dist/cesium/Workers/chunk-XUSCFAVF.js +26 -0
  359. package/dist/cesium/Workers/chunk-YP7I5QBZ.js +26 -0
  360. package/dist/cesium/Workers/chunk-Z3QF2EHT.js +26 -0
  361. package/dist/cesium/Workers/combineGeometry.js +26 -0
  362. package/dist/cesium/Workers/createBoxGeometry.js +26 -0
  363. package/dist/cesium/Workers/createBoxOutlineGeometry.js +26 -0
  364. package/dist/cesium/Workers/createCircleGeometry.js +26 -0
  365. package/dist/cesium/Workers/createCircleOutlineGeometry.js +26 -0
  366. package/dist/cesium/Workers/createCoplanarPolygonGeometry.js +26 -0
  367. package/dist/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +26 -0
  368. package/dist/cesium/Workers/createCorridorGeometry.js +26 -0
  369. package/dist/cesium/Workers/createCorridorOutlineGeometry.js +26 -0
  370. package/dist/cesium/Workers/createCylinderGeometry.js +26 -0
  371. package/dist/cesium/Workers/createCylinderOutlineGeometry.js +26 -0
  372. package/dist/cesium/Workers/createEllipseGeometry.js +26 -0
  373. package/dist/cesium/Workers/createEllipseOutlineGeometry.js +26 -0
  374. package/dist/cesium/Workers/createEllipsoidGeometry.js +26 -0
  375. package/dist/cesium/Workers/createEllipsoidOutlineGeometry.js +26 -0
  376. package/dist/cesium/Workers/createFrustumGeometry.js +26 -0
  377. package/dist/cesium/Workers/createFrustumOutlineGeometry.js +26 -0
  378. package/dist/cesium/Workers/createGeometry.js +26 -0
  379. package/dist/cesium/Workers/createGroundPolylineGeometry.js +26 -0
  380. package/dist/cesium/Workers/createPlaneGeometry.js +26 -0
  381. package/dist/cesium/Workers/createPlaneOutlineGeometry.js +26 -0
  382. package/dist/cesium/Workers/createPolygonGeometry.js +26 -0
  383. package/dist/cesium/Workers/createPolygonOutlineGeometry.js +26 -0
  384. package/dist/cesium/Workers/createPolylineGeometry.js +26 -0
  385. package/dist/cesium/Workers/createPolylineVolumeGeometry.js +26 -0
  386. package/dist/cesium/Workers/createPolylineVolumeOutlineGeometry.js +26 -0
  387. package/dist/cesium/Workers/createRectangleGeometry.js +26 -0
  388. package/dist/cesium/Workers/createRectangleOutlineGeometry.js +26 -0
  389. package/dist/cesium/Workers/createSimplePolylineGeometry.js +26 -0
  390. package/dist/cesium/Workers/createSphereGeometry.js +26 -0
  391. package/dist/cesium/Workers/createSphereOutlineGeometry.js +26 -0
  392. package/dist/cesium/Workers/createTaskProcessorWorker.js +26 -0
  393. package/dist/cesium/Workers/createVectorTileClampedPolylines.js +26 -0
  394. package/dist/cesium/Workers/createVectorTileGeometries.js +26 -0
  395. package/dist/cesium/Workers/createVectorTilePoints.js +26 -0
  396. package/dist/cesium/Workers/createVectorTilePolygons.js +26 -0
  397. package/dist/cesium/Workers/createVectorTilePolylines.js +26 -0
  398. package/dist/cesium/Workers/createVerticesFromCesium3DTilesTerrain.js +26 -0
  399. package/dist/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +26 -0
  400. package/dist/cesium/Workers/createVerticesFromHeightmap.js +26 -0
  401. package/dist/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +26 -0
  402. package/dist/cesium/Workers/createWallGeometry.js +26 -0
  403. package/dist/cesium/Workers/createWallOutlineGeometry.js +26 -0
  404. package/dist/cesium/Workers/decodeDraco.js +26 -0
  405. package/dist/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +26 -0
  406. package/dist/cesium/Workers/decodeI3S.js +26 -0
  407. package/dist/cesium/Workers/gaussianSplatSorter.js +26 -0
  408. package/dist/cesium/Workers/gaussianSplatTextureGenerator.js +26 -0
  409. package/dist/cesium/Workers/incrementallyBuildTerrainPicker.js +26 -0
  410. package/dist/cesium/Workers/transcodeKTX2.js +56 -0
  411. package/dist/cesium/Workers/transferTypedArrayTest.js +26 -0
  412. package/dist/cesium/Workers/upsampleQuantizedTerrainMesh.js +26 -0
  413. package/dist/cesium/Workers/upsampleVerticesFromCesium3DTilesTerrain.js +26 -0
  414. package/dist/index.html +10 -8
  415. package/package.json +15 -12
  416. package/src/App.tsx +1 -17
  417. package/src/components/viewer/BCFPanel.tsx +46 -4
  418. package/src/components/viewer/CesiumOverlay.tsx +672 -0
  419. package/src/components/viewer/CesiumSettingsDialog.tsx +100 -0
  420. package/src/components/viewer/ChatPanel.tsx +54 -16
  421. package/src/components/viewer/CommandPalette.tsx +6 -1
  422. package/src/components/viewer/DesktopEntitlementBanner.tsx +74 -0
  423. package/src/components/viewer/ExportChangesButton.tsx +6 -1
  424. package/src/components/viewer/ExportDialog.tsx +22 -6
  425. package/src/components/viewer/HierarchyPanel.tsx +196 -0
  426. package/src/components/viewer/IDSPanel.tsx +52 -3
  427. package/src/components/viewer/KeyboardShortcutsDialog.tsx +1 -1
  428. package/src/components/viewer/MainToolbar.tsx +353 -27
  429. package/src/components/viewer/PropertiesPanel.tsx +218 -79
  430. package/src/components/viewer/ScriptPanel.tsx +34 -8
  431. package/src/components/viewer/SettingsPage.tsx +430 -0
  432. package/src/components/viewer/StatusBar.tsx +17 -1
  433. package/src/components/viewer/UpgradePage.tsx +6 -4
  434. package/src/components/viewer/ViewerLayout.tsx +47 -6
  435. package/src/components/viewer/Viewport.tsx +49 -8
  436. package/src/components/viewer/ViewportContainer.tsx +280 -28
  437. package/src/components/viewer/ViewportOverlays.tsx +129 -27
  438. package/src/components/viewer/properties/GeoreferencingPanel.tsx +117 -5
  439. package/src/components/viewer/properties/LocationMap.tsx +458 -17
  440. package/src/components/viewer/selectionHandlers.ts +4 -3
  441. package/src/components/viewer/useAnimationLoop.ts +4 -0
  442. package/src/components/viewer/useGeometryStreaming.ts +127 -40
  443. package/src/components/viewer/useMouseControls.ts +4 -1
  444. package/src/hooks/ingest/viewerModelIngest.ts +275 -0
  445. package/src/hooks/useIDS.ts +1 -1
  446. package/src/hooks/useIfc.ts +7 -1
  447. package/src/hooks/useIfcCache.ts +28 -15
  448. package/src/hooks/useIfcFederation.ts +57 -225
  449. package/src/hooks/useIfcLoader.ts +1656 -130
  450. package/src/hooks/useIfcServer.ts +0 -69
  451. package/src/lib/desktop/ClerkDesktopEntitlementSync.tsx +175 -0
  452. package/src/lib/desktop/desktopEntitlementEvents.ts +39 -0
  453. package/src/lib/desktop-entitlement.ts +45 -0
  454. package/src/lib/desktop-product.ts +124 -0
  455. package/src/lib/geo/cesium-bridge.ts +310 -0
  456. package/src/lib/geo/reproject.ts +151 -25
  457. package/src/lib/recent-files.ts +2 -1
  458. package/src/services/analysis-extensions.ts +125 -0
  459. package/src/services/app-navigation.ts +13 -0
  460. package/src/services/bsdd.ts +53 -4
  461. package/src/services/cacheService.ts +1 -1
  462. package/src/services/desktop-cache.ts +43 -0
  463. package/src/services/desktop-export.ts +77 -0
  464. package/src/services/desktop-harness.ts +196 -0
  465. package/src/services/desktop-logger.ts +20 -0
  466. package/src/services/desktop-native-metadata.ts +207 -0
  467. package/src/services/desktop-panel-actions.ts +43 -0
  468. package/src/services/desktop-preferences.ts +44 -0
  469. package/src/services/file-dialog.ts +147 -0
  470. package/src/services/tauri-core-stub.ts +7 -0
  471. package/src/services/tauri-dialog-stub.ts +7 -0
  472. package/src/services/tauri-fs-stub.ts +7 -0
  473. package/src/store/index.ts +40 -2
  474. package/src/store/slices/cesiumSlice.ts +122 -0
  475. package/src/store/slices/chatSlice.ts +5 -1
  476. package/src/store/slices/dataSlice.ts +139 -28
  477. package/src/store/slices/desktopEntitlementSlice.ts +86 -0
  478. package/src/store/slices/loadingSlice.ts +14 -2
  479. package/src/store/slices/modelSlice.ts +58 -3
  480. package/src/store/types.ts +96 -2
  481. package/src/store.ts +1 -1
  482. package/src/utils/desktopModelSnapshot.ts +358 -0
  483. package/src/utils/ifcConfig.ts +6 -1
  484. package/src/utils/nativeSpatialDataStore.ts +250 -0
  485. package/src/utils/serverDataModel.ts +4 -0
  486. package/src/utils/spatialHierarchy.ts +10 -11
  487. package/vite.config.ts +24 -0
  488. package/dist/assets/arrow-DJf2ErbF.js +0 -20
  489. package/dist/assets/basketViewActivator-aojwdomq.js +0 -1
  490. package/dist/assets/desktop-cache-oPzaWXYE.js +0 -1
  491. package/dist/assets/geometry.worker-Nz9_YIqh.js +0 -1
  492. package/dist/assets/ifc-lite_bg-eSkBTizQ.wasm +0 -0
  493. package/dist/assets/index-pbE7itQS.css +0 -1
  494. package/dist/assets/native-bridge-DSIyEYXG.js +0 -113
  495. package/dist/assets/wasm-bridge-B0J07fZZ.js +0 -1
@@ -1,4 +1,4 @@
1
- import{g as L_,c as B_}from"./zip-B-jFFAGa.js";function O_(bo,Iu){for(var $r=0;$r<Iu.length;$r++){const Wi=Iu[$r];if(typeof Wi!="string"&&!Array.isArray(Wi)){for(const Zr in Wi)if(Zr!=="default"&&!(Zr in bo)){const wo=Object.getOwnPropertyDescriptor(Wi,Zr);wo&&Object.defineProperty(bo,Zr,wo.get?wo:{enumerable:!0,get:()=>Wi[Zr]})}}}return Object.freeze(Object.defineProperty(bo,Symbol.toStringTag,{value:"Module"}))}var jf={exports:{}};/**
1
+ import{g as L_,c as B_}from"./cesium-DUOzBlqv.js";function O_(bo,Iu){for(var $r=0;$r<Iu.length;$r++){const Wi=Iu[$r];if(typeof Wi!="string"&&!Array.isArray(Wi)){for(const Zr in Wi)if(Zr!=="default"&&!(Zr in bo)){const wo=Object.getOwnPropertyDescriptor(Wi,Zr);wo&&Object.defineProperty(bo,Zr,wo.get?wo:{enumerable:!0,get:()=>Wi[Zr]})}}}return Object.freeze(Object.defineProperty(bo,Symbol.toStringTag,{value:"Module"}))}var jf={exports:{}};/**
2
2
  * MapLibre GL JS
3
3
  * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v5.21.1/LICENSE.txt
4
4
  */(function(bo,Iu){(function($r,Wi){bo.exports=Wi()})(B_,function(){var $r={},Wi={};function Zr(R,d,we){if(Wi[R]=we,R==="index"){var Tr="var sharedModule = {}; ("+Wi.shared+")(sharedModule); ("+Wi.worker+")(sharedModule);",wi={};return Wi.shared(wi),Wi.index($r,wi),typeof window<"u"&&$r.setWorkerUrl(window.URL.createObjectURL(new Blob([Tr],{type:"text/javascript"}))),$r}}Zr("shared",["exports"],function(R){function d(r,e,i,n){return new(i||(i=Promise))(function(a,l){function u(m){try{g(n.next(m))}catch(x){l(x)}}function h(m){try{g(n.throw(m))}catch(x){l(x)}}function g(m){var x;m.done?a(m.value):(x=m.value,x instanceof i?x:new i(function(_){_(x)})).then(u,h)}g((n=n.apply(r,e||[])).next())})}function we(r,e){this.x=r,this.y=e}function Tr(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var wi,qr;typeof SuppressedError=="function"&&SuppressedError,we.prototype={clone(){return new we(this.x,this.y)},add(r){return this.clone()._add(r)},sub(r){return this.clone()._sub(r)},multByPoint(r){return this.clone()._multByPoint(r)},divByPoint(r){return this.clone()._divByPoint(r)},mult(r){return this.clone()._mult(r)},div(r){return this.clone()._div(r)},rotate(r){return this.clone()._rotate(r)},rotateAround(r,e){return this.clone()._rotateAround(r,e)},matMult(r){return this.clone()._matMult(r)},unit(){return this.clone()._unit()},perp(){return this.clone()._perp()},round(){return this.clone()._round()},mag(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals(r){return this.x===r.x&&this.y===r.y},dist(r){return Math.sqrt(this.distSqr(r))},distSqr(r){const e=r.x-this.x,i=r.y-this.y;return e*e+i*i},angle(){return Math.atan2(this.y,this.x)},angleTo(r){return Math.atan2(this.y-r.y,this.x-r.x)},angleWith(r){return this.angleWithSep(r.x,r.y)},angleWithSep(r,e){return Math.atan2(this.x*e-this.y*r,this.x*r+this.y*e)},_matMult(r){const e=r[2]*this.x+r[3]*this.y;return this.x=r[0]*this.x+r[1]*this.y,this.y=e,this},_add(r){return this.x+=r.x,this.y+=r.y,this},_sub(r){return this.x-=r.x,this.y-=r.y,this},_mult(r){return this.x*=r,this.y*=r,this},_div(r){return this.x/=r,this.y/=r,this},_multByPoint(r){return this.x*=r.x,this.y*=r.y,this},_divByPoint(r){return this.x/=r.x,this.y/=r.y,this},_unit(){return this._div(this.mag()),this},_perp(){const r=this.y;return this.y=this.x,this.x=-r,this},_rotate(r){const e=Math.cos(r),i=Math.sin(r),n=i*this.x+e*this.y;return this.x=e*this.x-i*this.y,this.y=n,this},_rotateAround(r,e){const i=Math.cos(r),n=Math.sin(r),a=e.y+n*(this.x-e.x)+i*(this.y-e.y);return this.x=e.x+i*(this.x-e.x)-n*(this.y-e.y),this.y=a,this},_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:we},we.convert=function(r){if(r instanceof we)return r;if(Array.isArray(r))return new we(+r[0],+r[1]);if(r.x!==void 0&&r.y!==void 0)return new we(+r.x,+r.y);throw new Error("Expected [x, y] or {x, y} point format")};var an=function(){if(qr)return wi;function r(e,i,n,a){this.cx=3*e,this.bx=3*(n-e)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(a-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=e,this.p1y=i,this.p2x=n,this.p2y=a}return qr=1,wi=r,r.prototype={sampleCurveX:function(e){return((this.ax*e+this.bx)*e+this.cx)*e},sampleCurveY:function(e){return((this.ay*e+this.by)*e+this.cy)*e},sampleCurveDerivativeX:function(e){return(3*this.ax*e+2*this.bx)*e+this.cx},solveCurveX:function(e,i){if(i===void 0&&(i=1e-6),e<0)return 0;if(e>1)return 1;for(var n=e,a=0;a<8;a++){var l=this.sampleCurveX(n)-e;if(Math.abs(l)<i)return n;var u=this.sampleCurveDerivativeX(n);if(Math.abs(u)<1e-6)break;n-=l/u}var h=0,g=1;for(n=e,a=0;a<20&&(l=this.sampleCurveX(n),!(Math.abs(l-e)<i));a++)e>l?h=n:g=n,n=.5*(g-h)+h;return n},solve:function(e,i){return this.sampleCurveY(this.solveCurveX(e,i))}},wi}(),Kt=Tr(an);let Sr,Ze;function ge(){return Sr==null&&(Sr=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),Sr}function Ti(){if(Ze==null&&(Ze=!1,ge())){const e=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(e){for(let n=0;n<5*5;n++){const a=4*n;e.fillStyle=`rgb(${a},${a+1},${a+2})`,e.fillRect(n%5,Math.floor(n/5),1,1)}const i=e.getImageData(0,0,5,5).data;for(let n=0;n<5*5*4;n++)if(n%4!=3&&i[n]!==n){Ze=!0;break}}}return Ze||!1}var Bt=1e-6,It=typeof Float32Array<"u"?Float32Array:Array;function on(){var r=new It(9);return It!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[5]=0,r[6]=0,r[7]=0),r[0]=1,r[4]=1,r[8]=1,r}function ws(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function ln(){var r=new It(3);return It!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function We(r){var e=r[0],i=r[1],n=r[2];return Math.sqrt(e*e+i*i+n*n)}function X(r,e,i){var n=new It(3);return n[0]=r,n[1]=e,n[2]=i,n}function K(r,e,i){return r[0]=e[0]+i[0],r[1]=e[1]+i[1],r[2]=e[2]+i[2],r}function te(r,e,i){return r[0]=e[0]*i,r[1]=e[1]*i,r[2]=e[2]*i,r}function _e(r,e,i){var n=e[0],a=e[1],l=e[2],u=i[0],h=i[1],g=i[2];return r[0]=a*g-l*h,r[1]=l*u-n*g,r[2]=n*h-a*u,r}var Ee,Ye=We;function ze(r,e,i){var n=e[0],a=e[1],l=e[2],u=e[3];return r[0]=i[0]*n+i[4]*a+i[8]*l+i[12]*u,r[1]=i[1]*n+i[5]*a+i[9]*l+i[13]*u,r[2]=i[2]*n+i[6]*a+i[10]*l+i[14]*u,r[3]=i[3]*n+i[7]*a+i[11]*l+i[15]*u,r}function Ge(){var r=new It(4);return It!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r[3]=1,r}function Le(r,e,i,n){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:"zyx",l=Math.PI/360;e*=l,n*=l,i*=l;var u=Math.sin(e),h=Math.cos(e),g=Math.sin(i),m=Math.cos(i),x=Math.sin(n),_=Math.cos(n);switch(a){case"xyz":r[0]=u*m*_+h*g*x,r[1]=h*g*_-u*m*x,r[2]=h*m*x+u*g*_,r[3]=h*m*_-u*g*x;break;case"xzy":r[0]=u*m*_-h*g*x,r[1]=h*g*_-u*m*x,r[2]=h*m*x+u*g*_,r[3]=h*m*_+u*g*x;break;case"yxz":r[0]=u*m*_+h*g*x,r[1]=h*g*_-u*m*x,r[2]=h*m*x-u*g*_,r[3]=h*m*_+u*g*x;break;case"yzx":r[0]=u*m*_+h*g*x,r[1]=h*g*_+u*m*x,r[2]=h*m*x-u*g*_,r[3]=h*m*_-u*g*x;break;case"zxy":r[0]=u*m*_-h*g*x,r[1]=h*g*_+u*m*x,r[2]=h*m*x+u*g*_,r[3]=h*m*_-u*g*x;break;case"zyx":r[0]=u*m*_-h*g*x,r[1]=h*g*_+u*m*x,r[2]=h*m*x-u*g*_,r[3]=h*m*_+u*g*x;break;default:throw new Error("Unknown angle order "+a)}return r}function Ke(){var r=new It(2);return It!=Float32Array&&(r[0]=0,r[1]=0),r}function Xe(r,e){var i=new It(2);return i[0]=r,i[1]=e,i}ln(),Ee=new It(4),It!=Float32Array&&(Ee[0]=0,Ee[1]=0,Ee[2]=0,Ee[3]=0),ln(),X(1,0,0),X(0,1,0),Ge(),Ge(),on(),Ke();const Re=8192;function Jt(r,e,i){return e*(Re/(r.tileSize*Math.pow(2,i-r.tileID.overscaledZ)))}function hi(r,e){return(r%e+e)%e}function Pr(r,e,i){return r*(1-i)+e*i}function Wr(r){if(r<=0)return 0;if(r>=1)return 1;const e=r*r,i=e*r;return 4*(r<.5?i:3*(r-e)+i-.75)}function Ts(r,e,i,n){const a=new Kt(r,e,i,n);return l=>a.solve(l)}const cn=Ts(.25,.1,.25,1);function Si(r,e,i){return Math.min(i,Math.max(e,r))}function Ss(r,e,i){const n=i-e,a=((r-e)%n+n)%n+e;return a===e?i:a}function Ri(r,...e){for(const i of e)for(const n in i)r[n]=i[n];return r}let un=1;function Ir(r,e,i){const n={};for(const a in r)n[a]=e.call(this,r[a],a,r);return n}function xt(r,e,i){const n={};for(const a in r)e.call(this,r[a],a,r)&&(n[a]=r[a]);return n}function $e(r){return Array.isArray(r)?r.map($e):typeof r=="object"&&r?Ir(r,$e):r}const Nt={};function Ut(r){Nt[r]||(typeof console<"u"&&console.warn(r),Nt[r]=!0)}function Fi(r,e,i){return(i.y-r.y)*(e.x-r.x)>(e.y-r.y)*(i.x-r.x)}function Gt(r){return typeof WorkerGlobalScope<"u"&&r!==void 0&&r instanceof WorkerGlobalScope}let Li=null;function Mr(r){return typeof ImageBitmap<"u"&&r instanceof ImageBitmap}const To="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function hn(r,e,i,n,a){return d(this,void 0,void 0,function*(){if(typeof VideoFrame>"u")throw new Error("VideoFrame not supported");const l=new VideoFrame(r,{timestamp:0});try{const u=l?.format;if(!u||!u.startsWith("BGR")&&!u.startsWith("RGB"))throw new Error(`Unrecognized format ${u}`);const h=u.startsWith("BGR"),g=new Uint8ClampedArray(n*a*4);if(yield l.copyTo(g,function(m,x,_,T,v){const I=4*Math.max(-x,0),M=(Math.max(0,_)-_)*T*4+I,A=4*T,D=Math.max(0,x),L=Math.max(0,_);return{rect:{x:D,y:L,width:Math.min(m.width,x+T)-D,height:Math.min(m.height,_+v)-L},layout:[{offset:M,stride:A}]}}(r,e,i,n,a)),h)for(let m=0;m<g.length;m+=4){const x=g[m];g[m]=g[m+2],g[m+2]=x}return g}finally{l.close()}})}let Ps,Is;function Er(r,e,i,n){return r.addEventListener(e,i,n),{unsubscribe:()=>{r.removeEventListener(e,i,n)}}}function ha(r){return r*Math.PI/180}function Xr(r){return r/Math.PI*180}const So={touchstart:!0,touchmove:!0,touchmoveWindow:!0,touchend:!0,touchcancel:!0},Po={dblclick:!0,click:!0,mouseover:!0,mouseout:!0,mousedown:!0,mousemove:!0,mousemoveWindow:!0,mouseup:!0,mouseupWindow:!0,contextmenu:!0,wheel:!0},dn="AbortError";class Kl extends Error{constructor(e=dn){super(e instanceof Error?e.message:e),this.name=dn,e instanceof Error&&e.stack&&(this.stack=e.stack)}}function da(r){return r.name===dn}const Cr={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,MAX_TILE_CACHE_ZOOM_LEVELS:5,REGISTERED_PROTOCOLS:{},WORKER_URL:""};function or(r){return Cr.REGISTERED_PROTOCOLS[r.substring(0,r.indexOf("://"))]}const Bi="global-dispatcher";class Ms extends Error{constructor(e,i,n,a){super(`AJAXError: ${i} (${e}): ${n}`),this.status=e,this.statusText=i,this.url=n,this.body=a}}const Io=()=>Gt(self)?self.worker&&self.worker.referrer:(window.location.protocol==="blob:"?window.parent:window).location.href,Hr=function(r,e){if(/:\/\//.test(r.url)&&!/^https?:|^file:/.test(r.url)){const n=or(r.url);if(n)return n(r,e);if(Gt(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:r,targetMapId:Bi},e)}if(!(/^file:/.test(i=r.url)||/^file:/.test(Io())&&!/^\w+:/.test(i))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return function(n,a){return d(this,void 0,void 0,function*(){const l=new Request(n.url,{method:n.method||"GET",body:n.body,credentials:n.credentials,headers:n.headers,cache:n.cache,referrer:Io(),referrerPolicy:n.referrerPolicy,signal:a.signal});let u,h;n.type!=="json"||l.headers.has("Accept")||l.headers.set("Accept","application/json");try{u=yield fetch(l)}catch(m){throw da(m)?m:new Ms(0,m.message,n.url,new Blob)}if(!u.ok){const m=yield u.blob();throw new Ms(u.status,u.statusText,n.url,m)}h=n.type==="arrayBuffer"||n.type==="image"?u.arrayBuffer():n.type==="json"?u.json():u.text();const g=yield h;return a.signal.throwIfAborted(),{data:g,cacheControl:u.headers.get("Cache-Control"),expires:u.headers.get("Expires"),etag:u.headers.get("ETag")}})}(r,e);if(Gt(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:r,mustQueue:!0,targetMapId:Bi},e)}var i;return function(n,a){return new Promise((l,u)=>{var h;const g=new XMLHttpRequest;g.open(n.method||"GET",n.url,!0),n.type!=="arrayBuffer"&&n.type!=="image"||(g.responseType="arraybuffer");for(const m in n.headers)g.setRequestHeader(m,n.headers[m]);n.type==="json"&&(g.responseType="text",!((h=n.headers)===null||h===void 0)&&h.Accept||g.setRequestHeader("Accept","application/json")),g.withCredentials=n.credentials==="include",g.onerror=()=>{u(new Error(g.statusText))},g.onload=()=>{if(!a.signal.aborted)if((g.status>=200&&g.status<300||g.status===0)&&g.response!==null){let m=g.response;if(n.type==="json")try{m=JSON.parse(g.response)}catch(x){return void u(x)}l({data:m,cacheControl:g.getResponseHeader("Cache-Control"),expires:g.getResponseHeader("Expires"),etag:g.getResponseHeader("ETag")})}else{const m=new Blob([g.response],{type:g.getResponseHeader("Content-Type")});u(new Ms(g.status,g.statusText,n.url,m))}},a.signal.addEventListener("abort",()=>{g.abort(),u(new Kl(a.signal.reason))}),g.send(n.body)})}(r,e)};function Xi(r){if(!r||r.indexOf("://")<=0||r.indexOf("data:image/")===0||r.indexOf("blob:")===0)return!0;const e=new URL(r),i=window.location;return e.protocol===i.protocol&&e.host===i.host}function Es(r,e,i){i[r]&&i[r].indexOf(e)!==-1||(i[r]=i[r]||[],i[r].push(e))}function Yr(r,e,i){if(i&&i[r]){const n=i[r].indexOf(e);n!==-1&&i[r].splice(n,1)}}class pn{constructor(e,i={}){Ri(this,i),this.type=e}}class pa extends pn{constructor(e,i={}){super("error",Ri({error:e},i))}}class fa{on(e,i){return this._listeners=this._listeners||{},Es(e,i,this._listeners),{unsubscribe:()=>{this.off(e,i)}}}off(e,i){return Yr(e,i,this._listeners),Yr(e,i,this._oneTimeListeners),this}once(e,i){return i?(this._oneTimeListeners=this._oneTimeListeners||{},Es(e,i,this._oneTimeListeners),this):new Promise(n=>this.once(e,n))}fire(e,i){typeof e=="string"&&(e=new pn(e,i||{}));const n=e.type;if(this.listens(n)){e.target=this;const a=this._listeners&&this._listeners[n]?this._listeners[n].slice():[];for(const h of a)h.call(this,e);const l=this._oneTimeListeners&&this._oneTimeListeners[n]?this._oneTimeListeners[n].slice():[];for(const h of l)Yr(n,h,this._oneTimeListeners),h.call(this,e);const u=this._eventedParent;u&&(Ri(e,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),u.fire(e))}else e instanceof pa&&console.error(e.error);return this}listens(e){return this._listeners&&this._listeners[e]&&this._listeners[e].length>0||this._oneTimeListeners&&this._oneTimeListeners[e]&&this._oneTimeListeners[e].length>0||this._eventedParent&&this._eventedParent.listens(e)}setEventedParent(e,i){return this._eventedParent=e,this._eventedParentData=i,this}}var he={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number",length:2},centerAltitude:{type:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},roll:{type:"number",default:0,units:"degrees"},state:{type:"state",default:{}},light:{type:"light"},sky:{type:"sky"},projection:{type:"projection"},terrain:{type:"terrain"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},"font-faces":{type:"fontFaces"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},encoding:{type:"enum",values:{mvt:{},mlt:{}},default:"mvt"},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{},custom:{}},default:"mapbox"},redFactor:{type:"number",default:1},blueFactor:{type:"number",default:1},greenFactor:{type:"number",default:1},baseShift:{type:"number",default:0},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{required:!0,type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"filter"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},"color-relief":{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_color-relief","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image",{"!":"icon-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"padding",default:[2],units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-variable-anchor-offset":{type:"variableAnchorOffsetCollection",requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field",{"!":"text-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},"layout_color-relief":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible",expression:{interpolated:!1,parameters:["global-state"]},"property-type":"data-constant"}},filter:{type:"boolean",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"expression_name",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"projectionDefinition",default:"mercator","property-type":"data-constant",transition:!1,expression:{interpolated:!0,parameters:["zoom"]}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_color-relief","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"numberArray",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-altitude":{type:"numberArray",default:45,minimum:0,maximum:90,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"colorArray",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"colorArray",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-method":{type:"enum",values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:"standard",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},"paint_color-relief":{"color-relief-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"color-relief-color":{type:"color",transition:!1,expression:{interpolated:!0,parameters:["elevation"]},"property-type":"color-ramp"},resampling:{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}},interpolation:{type:"array",value:"interpolation_name",minimum:1},interpolation_name:{type:"enum",values:{linear:{syntax:{overloads:[{parameters:[],"output-type":"interpolation"}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:["base"],"output-type":"interpolation"}],parameters:[{name:"base",type:"number literal"}]}},"cubic-bezier":{syntax:{overloads:[{parameters:["x1","y1","x2","y2"],"output-type":"interpolation"}],parameters:[{name:"x1",type:"number literal"},{name:"y1",type:"number literal"},{name:"x2",type:"number literal"},{name:"y2",type:"number literal"}]}}}}};const Mo=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function Eo(r,e){const i={};for(const n in r)n!=="ref"&&(i[n]=r[n]);return Mo.forEach(n=>{n in e&&(i[n]=e[n])}),i}function tt(r,e){if(Array.isArray(r)){if(!Array.isArray(e)||r.length!==e.length)return!1;for(let i=0;i<r.length;i++)if(!tt(r[i],e[i]))return!1;return!0}if(typeof r=="object"&&r!==null&&e!==null){if(typeof e!="object"||Object.keys(r).length!==Object.keys(e).length)return!1;for(const i in r)if(!tt(r[i],e[i]))return!1;return!0}return r===e}function yi(r,e){r.push(e)}function Kr(r,e,i){yi(i,{command:"addSource",args:[r,e[r]]})}function Jl(r,e,i){yi(e,{command:"removeSource",args:[r]}),i[r]=!0}function Ql(r,e,i,n){Jl(r,i,n),Kr(r,e,i)}function Mu(r,e,i){let n;for(n in r[i])if(Object.prototype.hasOwnProperty.call(r[i],n)&&n!=="data"&&!tt(r[i][n],e[i][n]))return!1;for(n in e[i])if(Object.prototype.hasOwnProperty.call(e[i],n)&&n!=="data"&&!tt(r[i][n],e[i][n]))return!1;return!0}function ma(r,e,i,n,a,l){r=r||{},e=e||{};for(const u in r)Object.prototype.hasOwnProperty.call(r,u)&&(tt(r[u],e[u])||i.push({command:l,args:[n,u,e[u],a]}));for(const u in e)Object.prototype.hasOwnProperty.call(e,u)&&!Object.prototype.hasOwnProperty.call(r,u)&&(tt(r[u],e[u])||i.push({command:l,args:[n,u,e[u],a]}))}function Co(r){return r.id}function ec(r,e){return r[e.id]=e,r}class xe{constructor(e,i,n,a){this.message=(e?`${e}: `:"")+n,a&&(this.identifier=a),i!=null&&i.__line__&&(this.line=i.__line__)}}function Jr(r,...e){for(const i of e)for(const n in i)r[n]=i[n];return r}class Qt extends Error{constructor(e,i){super(i),this.message=i,this.key=e}}class Ao{constructor(e,i=[]){this.parent=e,this.bindings={};for(const[n,a]of i)this.bindings[n]=a}concat(e){return new Ao(this,e)}get(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw new Error(`${e} not found in scope.`)}has(e){return!!this.bindings[e]||!!this.parent&&this.parent.has(e)}}const Ar={kind:"null"},ve={kind:"number"},ke={kind:"string"},Oe={kind:"boolean"},Pi={kind:"color"},Cs={kind:"projectionDefinition"},Dr={kind:"object"},Be={kind:"value"},ga={kind:"collator"},As={kind:"formatted"},fn={kind:"padding"},Ds={kind:"colorArray"},mn={kind:"numberArray"},Qr={kind:"resolvedImage"},ir={kind:"variableAnchorOffsetCollection"};function $t(r,e){return{kind:"array",itemType:r,N:e}}function pt(r){if(r.kind==="array"){const e=pt(r.itemType);return typeof r.N=="number"?`array<${e}, ${r.N}>`:r.itemType.kind==="value"?"array":`array<${e}>`}return r.kind}const Do=[Ar,ve,ke,Oe,Pi,Cs,As,Dr,$t(Be),fn,mn,Ds,Qr,ir];function gn(r,e){if(e.kind==="error")return null;if(r.kind==="array"){if(e.kind==="array"&&(e.N===0&&e.itemType.kind==="value"||!gn(r.itemType,e.itemType))&&(typeof r.N!="number"||r.N===e.N))return null}else{if(r.kind===e.kind)return null;if(r.kind==="value"){for(const i of Do)if(!gn(i,e))return null}}return`Expected ${pt(r)} but found ${pt(e)} instead.`}function zs(r,e){return e.some(i=>i.kind===r.kind)}function es(r,e){return e.some(i=>i==="null"?r===null:i==="array"?Array.isArray(r):i==="object"?r&&!Array.isArray(r)&&typeof r=="object":i===typeof r)}function Ii(r,e){return r.kind==="array"&&e.kind==="array"?r.itemType.kind===e.itemType.kind&&typeof r.N=="number":r.kind===e.kind}const _a=.96422,Ot=.82521,tc=4/29,ts=6/29,ks=3*ts*ts,ic=ts*ts*ts,Eu=Math.PI/180,Cu=180/Math.PI;function zo(r){return(r%=360)<0&&(r+=360),r}function rc([r,e,i,n]){let a,l;const u=ko((.2225045*(r=ya(r))+.7168786*(e=ya(e))+.0606169*(i=ya(i)))/1);r===e&&e===i?a=l=u:(a=ko((.4360747*r+.3850649*e+.1430804*i)/_a),l=ko((.0139322*r+.0971045*e+.7141733*i)/Ot));const h=116*u-16;return[h<0?0:h,500*(a-u),200*(u-l),n]}function ya(r){return r<=.04045?r/12.92:Math.pow((r+.055)/1.055,2.4)}function ko(r){return r>ic?Math.pow(r,1/3):r/ks+tc}function sc([r,e,i,n]){let a=(r+16)/116,l=isNaN(e)?a:a+e/500,u=isNaN(i)?a:a-i/200;return a=1*Fo(a),l=_a*Fo(l),u=Ot*Fo(u),[Ro(3.1338561*l-1.6168667*a-.4906146*u),Ro(-.9787684*l+1.9161415*a+.033454*u),Ro(.0719453*l-.2289914*a+1.4052427*u),n]}function Ro(r){return(r=r<=.00304?12.92*r:1.055*Math.pow(r,1/2.4)-.055)<0?0:r>1?1:r}function Fo(r){return r>ts?r*r*r:ks*(r-tc)}const Au=Object.hasOwn||function(r,e){return Object.prototype.hasOwnProperty.call(r,e)};function _n(r,e){return Au(r,e)?r[e]:void 0}function xa(r){return parseInt(r.padEnd(2,r),16)/255}function Lo(r,e){return rr(e?r/100:r,0,1)}function rr(r,e,i){return Math.min(Math.max(e,r),i)}function nc(r){return!r.some(Number.isNaN)}const Du={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function Oi(r,e,i){return r+i*(e-r)}function Rs(r,e,i){return r.map((n,a)=>Oi(n,e[a],i))}class Ne{constructor(e,i,n,a=1,l=!0){this.r=e,this.g=i,this.b=n,this.a=a,l||(this.r*=a,this.g*=a,this.b*=a,a||this.overwriteGetter("rgb",[e,i,n,a]))}static parse(e){if(e instanceof Ne)return e;if(typeof e!="string")return;const i=function(n){if((n=n.toLowerCase().trim())==="transparent")return[0,0,0,0];const a=_n(Du,n);if(a){const[u,h,g]=a;return[u/255,h/255,g/255,1]}if(n.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(n)){const u=n.length<6?1:2;let h=1;return[xa(n.slice(h,h+=u)),xa(n.slice(h,h+=u)),xa(n.slice(h,h+=u)),xa(n.slice(h,h+u)||"ff")]}if(n.startsWith("rgb")){const u=n.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(u){const[h,g,m,x,_,T,v,I,M,A,D,L]=u,k=[x||" ",v||" ",A].join("");if(k===" "||k===" /"||k===",,"||k===",,,"){const B=[m,T,M].join(""),O=B==="%%%"?100:B===""?255:0;if(O){const U=[rr(+g/O,0,1),rr(+_/O,0,1),rr(+I/O,0,1),D?Lo(+D,L):1];if(nc(U))return U}}return}}const l=n.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(l){const[u,h,g,m,x,_,T,v,I]=l,M=[g||" ",x||" ",T].join("");if(M===" "||M===" /"||M===",,"||M===",,,"){const A=[+h,rr(+m,0,100),rr(+_,0,100),v?Lo(+v,I):1];if(nc(A))return function([D,L,k,B]){function O(U){const H=(U+D/30)%12,J=L*Math.min(k,1-k);return k-J*Math.max(-1,Math.min(H-3,9-H,1))}return D=zo(D),L/=100,k/=100,[O(0),O(8),O(4),B]}(A)}}}(e);return i?new Ne(...i,!1):void 0}get rgb(){const{r:e,g:i,b:n,a}=this,l=a||1/0;return this.overwriteGetter("rgb",[e/l,i/l,n/l,a])}get hcl(){return this.overwriteGetter("hcl",function(e){const[i,n,a,l]=rc(e),u=Math.sqrt(n*n+a*a);return[Math.round(1e4*u)?zo(Math.atan2(a,n)*Cu):NaN,u,i,l]}(this.rgb))}get lab(){return this.overwriteGetter("lab",rc(this.rgb))}overwriteGetter(e,i){return Object.defineProperty(this,e,{value:i}),i}toString(){const[e,i,n,a]=this.rgb;return`rgba(${[e,i,n].map(l=>Math.round(255*l)).join(",")},${a})`}static interpolate(e,i,n,a="rgb"){switch(a){case"rgb":{const[l,u,h,g]=Rs(e.rgb,i.rgb,n);return new Ne(l,u,h,g,!1)}case"hcl":{const[l,u,h,g]=e.hcl,[m,x,_,T]=i.hcl;let v,I;if(isNaN(l)||isNaN(m))isNaN(l)?isNaN(m)?v=NaN:(v=m,h!==1&&h!==0||(I=x)):(v=l,_!==1&&_!==0||(I=u));else{let k=m-l;m>l&&k>180?k-=360:m<l&&l-m>180&&(k+=360),v=l+n*k}const[M,A,D,L]=function([k,B,O,U]){return k=isNaN(k)?0:k*Eu,sc([O,Math.cos(k)*B,Math.sin(k)*B,U])}([v,I??Oi(u,x,n),Oi(h,_,n),Oi(g,T,n)]);return new Ne(M,A,D,L,!1)}case"lab":{const[l,u,h,g]=sc(Rs(e.lab,i.lab,n));return new Ne(l,u,h,g,!1)}}}}Ne.black=new Ne(0,0,0,1),Ne.white=new Ne(1,1,1,1),Ne.transparent=new Ne(0,0,0,0),Ne.red=new Ne(1,0,0,1);class Bo{constructor(e,i,n){this.sensitivity=e?i?"variant":"case":i?"accent":"base",this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(e,i){return this.collator.compare(e,i)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}const ac=["bottom","center","top"];class va{constructor(e,i,n,a,l,u){this.text=e,this.image=i,this.scale=n,this.fontStack=a,this.textColor=l,this.verticalAlign=u}}class Mt{constructor(e){this.sections=e}static fromString(e){return new Mt([new va(e,null,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(e=>e.text.length!==0||e.image&&e.image.name.length!==0)}static factory(e){return e instanceof Mt?e:Mt.fromString(e)}toString(){return this.sections.length===0?"":this.sections.map(e=>e.text).join("")}}class De{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof De)return e;if(typeof e=="number")return new De([e,e,e,e]);if(Array.isArray(e)&&!(e.length<1||e.length>4)){for(const i of e)if(typeof i!="number")return;switch(e.length){case 1:e=[e[0],e[0],e[0],e[0]];break;case 2:e=[e[0],e[1],e[0],e[1]];break;case 3:e=[e[0],e[1],e[2],e[1]]}return new De(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,i,n){return new De(Rs(e.values,i.values,n))}}class kt{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof kt)return e;if(typeof e=="number")return new kt([e]);if(Array.isArray(e)){for(const i of e)if(typeof i!="number")return;return new kt(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,i,n){return new kt(Rs(e.values,i.values,n))}}class vt{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof vt)return e;if(typeof e=="string"){const n=Ne.parse(e);return n?new vt([n]):void 0}if(!Array.isArray(e))return;const i=[];for(const n of e){if(typeof n!="string")return;const a=Ne.parse(n);if(!a)return;i.push(a)}return new vt(i)}toString(){return JSON.stringify(this.values)}static interpolate(e,i,n,a="rgb"){const l=[];if(e.values.length!=i.values.length)throw new Error(`colorArray: Arrays have mismatched length (${e.values.length} vs. ${i.values.length}), cannot interpolate.`);for(let u=0;u<e.values.length;u++)l.push(Ne.interpolate(e.values[u],i.values[u],n,a));return new vt(l)}}class bt extends Error{constructor(e){super(e),this.name="RuntimeError"}toJSON(){return this.message}}const oc=new Set(["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"]);class ti{constructor(e){this.values=e.slice()}static parse(e){if(e instanceof ti)return e;if(Array.isArray(e)&&!(e.length<1)&&e.length%2==0){for(let i=0;i<e.length;i+=2){const n=e[i],a=e[i+1];if(typeof n!="string"||!oc.has(n)||!Array.isArray(a)||a.length!==2||typeof a[0]!="number"||typeof a[1]!="number")return}return new ti(e)}}toString(){return JSON.stringify(this.values)}static interpolate(e,i,n){const a=e.values,l=i.values;if(a.length!==l.length)throw new bt(`Cannot interpolate values of different length. from: ${e.toString()}, to: ${i.toString()}`);const u=[];for(let h=0;h<a.length;h+=2){if(a[h]!==l[h])throw new bt(`Cannot interpolate values containing mismatched anchors. from[${h}]: ${a[h]}, to[${h}]: ${l[h]}`);u.push(a[h]);const[g,m]=a[h+1],[x,_]=l[h+1];u.push([Oi(g,x,n),Oi(m,_,n)])}return new ti(u)}}class ii{constructor(e){this.name=e.name,this.available=e.available}toString(){return this.name}static fromString(e){return e?new ii({name:e,available:!1}):null}}class ri{constructor(e,i,n){this.from=e,this.to=i,this.transition=n}static interpolate(e,i,n){return new ri(e,i,n)}static parse(e){return e instanceof ri?e:Array.isArray(e)&&e.length===3&&typeof e[0]=="string"&&typeof e[1]=="string"&&typeof e[2]=="number"?new ri(e[0],e[1],e[2]):typeof e=="object"&&typeof e.from=="string"&&typeof e.to=="string"&&typeof e.transition=="number"?new ri(e.from,e.to,e.transition):typeof e=="string"?new ri(e,e,1):void 0}}function Oo(r,e,i,n){return typeof r=="number"&&r>=0&&r<=255&&typeof e=="number"&&e>=0&&e<=255&&typeof i=="number"&&i>=0&&i<=255?n===void 0||typeof n=="number"&&n>=0&&n<=1?null:`Invalid rgba value [${[r,e,i,n].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof n=="number"?[r,e,i,n]:[r,e,i]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function is(r){if(r===null||typeof r=="string"||typeof r=="boolean"||typeof r=="number"||r instanceof ri||r instanceof Ne||r instanceof Bo||r instanceof Mt||r instanceof De||r instanceof kt||r instanceof vt||r instanceof ti||r instanceof ii)return!0;if(Array.isArray(r)){for(const e of r)if(!is(e))return!1;return!0}if(typeof r=="object"){for(const e in r)if(!is(r[e]))return!1;return!0}return!1}function wt(r){if(r===null)return Ar;if(typeof r=="string")return ke;if(typeof r=="boolean")return Oe;if(typeof r=="number")return ve;if(r instanceof Ne)return Pi;if(r instanceof ri)return Cs;if(r instanceof Bo)return ga;if(r instanceof Mt)return As;if(r instanceof De)return fn;if(r instanceof kt)return mn;if(r instanceof vt)return Ds;if(r instanceof ti)return ir;if(r instanceof ii)return Qr;if(Array.isArray(r)){const e=r.length;let i;for(const n of r){const a=wt(n);if(i){if(i===a)continue;i=Be;break}i=a}return $t(i||Be,e)}return Dr}function yn(r){const e=typeof r;return r===null?"":e==="string"||e==="number"||e==="boolean"?String(r):r instanceof Ne||r instanceof ri||r instanceof Mt||r instanceof De||r instanceof kt||r instanceof vt||r instanceof ti||r instanceof ii?r.toString():JSON.stringify(r)}class sr{constructor(e,i){this.type=e,this.value=i}static parse(e,i){if(e.length!==2)return i.error(`'literal' expression requires exactly one argument, but found ${e.length-1} instead.`);if(!is(e[1]))return i.error("invalid value");const n=e[1];let a=wt(n);const l=i.expectedType;return a.kind!=="array"||a.N!==0||!l||l.kind!=="array"||typeof l.N=="number"&&l.N!==0||(a=l),new sr(a,n)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}const lr={string:ke,number:ve,boolean:Oe,object:Dr};class Vi{constructor(e,i){this.type=e,this.args=i}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");let n,a=1;const l=e[0];if(l==="array"){let h,g;if(e.length>2){const m=e[1];if(typeof m!="string"||!(m in lr)||m==="object")return i.error('The item type argument of "array" must be one of string, number, boolean',1);h=lr[m],a++}else h=Be;if(e.length>3){if(e[2]!==null&&(typeof e[2]!="number"||e[2]<0||e[2]!==Math.floor(e[2])))return i.error('The length argument to "array" must be a positive integer literal',2);g=e[2],a++}n=$t(h,g)}else{if(!lr[l])throw new Error(`Types doesn't contain name = ${l}`);n=lr[l]}const u=[];for(;a<e.length;a++){const h=i.parse(e[a],a,Be);if(!h)return null;u.push(h)}return new Vi(n,u)}evaluate(e){for(let i=0;i<this.args.length;i++){const n=this.args[i].evaluate(e);if(!gn(this.type,wt(n)))return n;if(i===this.args.length-1)throw new bt(`Expected value to be of type ${pt(this.type)}, but found ${pt(wt(n))} instead.`)}throw new Error}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}}const Vo={"to-boolean":Oe,"to-color":Pi,"to-number":ve,"to-string":ke};class cr{constructor(e,i){this.type=e,this.args=i}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");const n=e[0];if(!Vo[n])throw new Error(`Can't parse ${n} as it is not part of the known types`);if((n==="to-boolean"||n==="to-string")&&e.length!==2)return i.error("Expected one argument.");const a=Vo[n],l=[];for(let u=1;u<e.length;u++){const h=i.parse(e[u],u,Be);if(!h)return null;l.push(h)}return new cr(a,l)}evaluate(e){switch(this.type.kind){case"boolean":return!!this.args[0].evaluate(e);case"color":{let i,n;for(const a of this.args){if(i=a.evaluate(e),n=null,i instanceof Ne)return i;if(typeof i=="string"){const l=e.parseColor(i);if(l)return l}else if(Array.isArray(i)&&(n=i.length<3||i.length>4?`Invalid rgba value ${JSON.stringify(i)}: expected an array containing either three or four numeric values.`:Oo(i[0],i[1],i[2],i[3]),!n))return new Ne(i[0]/255,i[1]/255,i[2]/255,i[3])}throw new bt(n||`Could not parse color from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"padding":{let i;for(const n of this.args){i=n.evaluate(e);const a=De.parse(i);if(a)return a}throw new bt(`Could not parse padding from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"numberArray":{let i;for(const n of this.args){i=n.evaluate(e);const a=kt.parse(i);if(a)return a}throw new bt(`Could not parse numberArray from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"colorArray":{let i;for(const n of this.args){i=n.evaluate(e);const a=vt.parse(i);if(a)return a}throw new bt(`Could not parse colorArray from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"variableAnchorOffsetCollection":{let i;for(const n of this.args){i=n.evaluate(e);const a=ti.parse(i);if(a)return a}throw new bt(`Could not parse variableAnchorOffsetCollection from value '${typeof i=="string"?i:JSON.stringify(i)}'`)}case"number":{let i=null;for(const n of this.args){if(i=n.evaluate(e),i===null)return 0;const a=Number(i);if(!isNaN(a))return a}throw new bt(`Could not convert ${JSON.stringify(i)} to number.`)}case"formatted":return Mt.fromString(yn(this.args[0].evaluate(e)));case"resolvedImage":return ii.fromString(yn(this.args[0].evaluate(e)));case"projectionDefinition":return this.args[0].evaluate(e);default:return yn(this.args[0].evaluate(e))}}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}}const ba=["Unknown","Point","LineString","Polygon"];class ut{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=new Map,this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?ba[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(e){let i=this._parseColorCache.get(e);return i||(i=Ne.parse(e),this._parseColorCache.set(e,i)),i}}class Fs{constructor(e,i,n=[],a,l=new Ao,u=[]){this.registry=e,this.path=n,this.key=n.map(h=>`[${h}]`).join(""),this.scope=l,this.errors=u,this.expectedType=a,this._isConstant=i}parse(e,i,n,a,l={}){return i?this.concat(i,n,a)._parse(e,l):this._parse(e,l)}_parse(e,i){function n(a,l,u){return u==="assert"?new Vi(l,[a]):u==="coerce"?new cr(l,[a]):a}if(e!==null&&typeof e!="string"&&typeof e!="boolean"&&typeof e!="number"||(e=["literal",e]),Array.isArray(e)){if(e.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const a=e[0];if(typeof a!="string")return this.error(`Expression name must be a string, but found ${typeof a} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const l=this.registry[a];if(l){let u=l.parse(e,this);if(!u)return null;if(this.expectedType){const h=this.expectedType,g=u.type;if(h.kind!=="string"&&h.kind!=="number"&&h.kind!=="boolean"&&h.kind!=="object"&&h.kind!=="array"||g.kind!=="value"){if(h.kind==="projectionDefinition"&&["string","array"].includes(g.kind)||["color","formatted","resolvedImage"].includes(h.kind)&&["value","string"].includes(g.kind)||["padding","numberArray"].includes(h.kind)&&["value","number","array"].includes(g.kind)||h.kind==="colorArray"&&["value","string","array"].includes(g.kind)||h.kind==="variableAnchorOffsetCollection"&&["value","array"].includes(g.kind))u=n(u,h,i.typeAnnotation||"coerce");else if(this.checkSubtype(h,g))return null}else u=n(u,h,i.typeAnnotation||"assert")}if(!(u instanceof sr)&&u.type.kind!=="resolvedImage"&&this._isConstant(u)){const h=new ut;try{u=new sr(u.type,u.evaluate(h))}catch(g){return this.error(g.message),null}}return u}return this.error(`Unknown expression "${a}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(e===void 0?"'undefined' value invalid. Use null instead.":typeof e=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof e} instead.`)}concat(e,i,n){const a=typeof e=="number"?this.path.concat(e):this.path,l=n?this.scope.concat(n):this.scope;return new Fs(this.registry,this._isConstant,a,i||null,l,this.errors)}error(e,...i){const n=`${this.key}${i.map(a=>`[${a}]`).join("")}`;this.errors.push(new Qt(n,e))}checkSubtype(e,i){const n=gn(e,i);return n&&this.error(n),n}}class Ue{constructor(e,i){this.type=i.type,this.bindings=[].concat(e),this.result=i}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(const i of this.bindings)e(i[1]);e(this.result)}static parse(e,i){if(e.length<4)return i.error(`Expected at least 3 arguments, but found ${e.length-1} instead.`);const n=[];for(let l=1;l<e.length-1;l+=2){const u=e[l];if(typeof u!="string")return i.error(`Expected string, but found ${typeof u} instead.`,l);if(/[^a-zA-Z0-9_]/.test(u))return i.error("Variable names must contain only alphanumeric characters or '_'.",l);const h=i.parse(e[l+1],l+1);if(!h)return null;n.push([u,h])}const a=i.parse(e[e.length-1],e.length-1,i.expectedType,n);return a?new Ue(n,a):null}outputDefined(){return this.result.outputDefined()}}class Fe{constructor(e,i){this.type=i.type,this.name=e,this.boundExpression=i}static parse(e,i){if(e.length!==2||typeof e[1]!="string")return i.error("'var' expression requires exactly one string literal argument.");const n=e[1];return i.scope.has(n)?new Fe(n,i.scope.get(n)):i.error(`Unknown variable "${n}". Make sure "${n}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(e){return this.boundExpression.evaluate(e)}eachChild(){}outputDefined(){return!1}}class xn{constructor(e,i,n){this.type=e,this.index=i,this.input=n}static parse(e,i){if(e.length!==3)return i.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const n=i.parse(e[1],1,ve),a=i.parse(e[2],2,$t(i.expectedType||Be));return n&&a?new xn(a.type.itemType,n,a):null}evaluate(e){const i=this.index.evaluate(e),n=this.input.evaluate(e);if(i<0)throw new bt(`Array index out of bounds: ${i} < 0.`);if(i>=n.length)throw new bt(`Array index out of bounds: ${i} > ${n.length-1}.`);if(i!==Math.floor(i))throw new bt(`Array index must be an integer, but found ${i} instead.`);return n[i]}eachChild(e){e(this.index),e(this.input)}outputDefined(){return!1}}class qe{constructor(e,i){this.type=Oe,this.needle=e,this.haystack=i}static parse(e,i){if(e.length!==3)return i.error(`Expected 2 arguments, but found ${e.length-1} instead.`);const n=i.parse(e[1],1,Be),a=i.parse(e[2],2,Be);return n&&a?zs(n.type,[Oe,ke,ve,Ar,Be])?new qe(n,a):i.error(`Expected first argument to be of type boolean, string, number or null, but found ${pt(n.type)} instead`):null}evaluate(e){const i=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!n)return!1;if(!es(i,["boolean","string","number","null"]))throw new bt(`Expected first argument to be of type boolean, string, number or null, but found ${pt(wt(i))} instead.`);if(!es(n,["string","array"]))throw new bt(`Expected second argument to be of type array or string, but found ${pt(wt(n))} instead.`);return n.indexOf(i)>=0}eachChild(e){e(this.needle),e(this.haystack)}outputDefined(){return!0}}class Ls{constructor(e,i,n){this.type=ve,this.needle=e,this.haystack=i,this.fromIndex=n}static parse(e,i){if(e.length<=2||e.length>=5)return i.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const n=i.parse(e[1],1,Be),a=i.parse(e[2],2,Be);if(!n||!a)return null;if(!zs(n.type,[Oe,ke,ve,Ar,Be]))return i.error(`Expected first argument to be of type boolean, string, number or null, but found ${pt(n.type)} instead`);if(e.length===4){const l=i.parse(e[3],3,ve);return l?new Ls(n,a,l):null}return new Ls(n,a)}evaluate(e){const i=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!es(i,["boolean","string","number","null"]))throw new bt(`Expected first argument to be of type boolean, string, number or null, but found ${pt(wt(i))} instead.`);let a;if(this.fromIndex&&(a=this.fromIndex.evaluate(e)),es(n,["string"])){const l=n.indexOf(i,a);return l===-1?-1:[...n.slice(0,l)].length}if(es(n,["array"]))return n.indexOf(i,a);throw new bt(`Expected second argument to be of type array or string, but found ${pt(wt(n))} instead.`)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex)}outputDefined(){return!1}}class Hi{constructor(e,i,n,a,l,u){this.inputType=e,this.type=i,this.input=n,this.cases=a,this.outputs=l,this.otherwise=u}static parse(e,i){if(e.length<5)return i.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if(e.length%2!=1)return i.error("Expected an even number of arguments.");let n,a;i.expectedType&&i.expectedType.kind!=="value"&&(a=i.expectedType);const l={},u=[];for(let m=2;m<e.length-1;m+=2){let x=e[m];const _=e[m+1];Array.isArray(x)||(x=[x]);const T=i.concat(m);if(x.length===0)return T.error("Expected at least one branch label.");for(const I of x){if(typeof I!="number"&&typeof I!="string")return T.error("Branch labels must be numbers or strings.");if(typeof I=="number"&&Math.abs(I)>Number.MAX_SAFE_INTEGER)return T.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof I=="number"&&Math.floor(I)!==I)return T.error("Numeric branch labels must be integer values.");if(n){if(T.checkSubtype(n,wt(I)))return null}else n=wt(I);if(l[String(I)]!==void 0)return T.error("Branch labels must be unique.");l[String(I)]=u.length}const v=i.parse(_,m,a);if(!v)return null;a=a||v.type,u.push(v)}const h=i.parse(e[1],1,Be);if(!h)return null;const g=i.parse(e[e.length-1],e.length-1,a);return g?h.type.kind!=="value"&&i.concat(1).checkSubtype(n,h.type)?null:new Hi(n,a,h,l,u,g):null}evaluate(e){const i=this.input.evaluate(e);return(wt(i)===this.inputType&&this.outputs[this.cases[i]]||this.otherwise).evaluate(e)}eachChild(e){e(this.input),this.outputs.forEach(e),e(this.otherwise)}outputDefined(){return this.outputs.every(e=>e.outputDefined())&&this.otherwise.outputDefined()}}class vn{constructor(e,i,n){this.type=e,this.branches=i,this.otherwise=n}static parse(e,i){if(e.length<4)return i.error(`Expected at least 3 arguments, but found only ${e.length-1}.`);if(e.length%2!=0)return i.error("Expected an odd number of arguments.");let n;i.expectedType&&i.expectedType.kind!=="value"&&(n=i.expectedType);const a=[];for(let u=1;u<e.length-1;u+=2){const h=i.parse(e[u],u,Oe);if(!h)return null;const g=i.parse(e[u+1],u+1,n);if(!g)return null;a.push([h,g]),n=n||g.type}const l=i.parse(e[e.length-1],e.length-1,n);if(!l)return null;if(!n)throw new Error("Can't infer output type");return new vn(n,a,l)}evaluate(e){for(const[i,n]of this.branches)if(i.evaluate(e))return n.evaluate(e);return this.otherwise.evaluate(e)}eachChild(e){for(const[i,n]of this.branches)e(i),e(n);e(this.otherwise)}outputDefined(){return this.branches.every(([e,i])=>i.outputDefined())&&this.otherwise.outputDefined()}}class rs{constructor(e,i,n,a){this.type=e,this.input=i,this.beginIndex=n,this.endIndex=a}static parse(e,i){if(e.length<=2||e.length>=5)return i.error(`Expected 2 or 3 arguments, but found ${e.length-1} instead.`);const n=i.parse(e[1],1,Be),a=i.parse(e[2],2,ve);if(!n||!a)return null;if(!zs(n.type,[$t(Be),ke,Be]))return i.error(`Expected first argument to be of type array or string, but found ${pt(n.type)} instead`);if(e.length===4){const l=i.parse(e[3],3,ve);return l?new rs(n.type,n,a,l):null}return new rs(n.type,n,a)}evaluate(e){const i=this.input.evaluate(e),n=this.beginIndex.evaluate(e);let a;if(this.endIndex&&(a=this.endIndex.evaluate(e)),es(i,["string"]))return[...i].slice(n,a).join("");if(es(i,["array"]))return i.slice(n,a);throw new bt(`Expected first argument to be of type array or string, but found ${pt(wt(i))} instead.`)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex)}outputDefined(){return!1}}function bn(r,e){const i=r.length-1;let n,a,l=0,u=i,h=0;for(;l<=u;)if(h=Math.floor((l+u)/2),n=r[h],a=r[h+1],n<=e){if(h===i||e<a)return h;l=h+1}else{if(!(n>e))throw new bt("Input is not a number.");u=h-1}return 0}class ss{constructor(e,i,n){this.type=e,this.input=i,this.labels=[],this.outputs=[];for(const[a,l]of n)this.labels.push(a),this.outputs.push(l)}static parse(e,i){if(e.length-1<4)return i.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return i.error("Expected an even number of arguments.");const n=i.parse(e[1],1,ve);if(!n)return null;const a=[];let l=null;i.expectedType&&i.expectedType.kind!=="value"&&(l=i.expectedType);for(let u=1;u<e.length;u+=2){const h=u===1?-1/0:e[u],g=e[u+1],m=u,x=u+1;if(typeof h!="number")return i.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.',m);if(a.length&&a[a.length-1][0]>=h)return i.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',m);const _=i.parse(g,x,l);if(!_)return null;l=l||_.type,a.push([h,_])}return new ss(l,n,a)}evaluate(e){const i=this.labels,n=this.outputs;if(i.length===1)return n[0].evaluate(e);const a=this.input.evaluate(e);if(a<=i[0])return n[0].evaluate(e);const l=i.length;return a>=i[l-1]?n[l-1].evaluate(e):n[bn(i,a)].evaluate(e)}eachChild(e){e(this.input);for(const i of this.outputs)e(i)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}}function lc(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var jo,No,cc=function(){if(No)return jo;function r(e,i,n,a){this.cx=3*e,this.bx=3*(n-e)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*i,this.by=3*(a-i)-this.cy,this.ay=1-this.cy-this.by,this.p1x=e,this.p1y=i,this.p2x=n,this.p2y=a}return No=1,jo=r,r.prototype={sampleCurveX:function(e){return((this.ax*e+this.bx)*e+this.cx)*e},sampleCurveY:function(e){return((this.ay*e+this.by)*e+this.cy)*e},sampleCurveDerivativeX:function(e){return(3*this.ax*e+2*this.bx)*e+this.cx},solveCurveX:function(e,i){if(i===void 0&&(i=1e-6),e<0)return 0;if(e>1)return 1;for(var n=e,a=0;a<8;a++){var l=this.sampleCurveX(n)-e;if(Math.abs(l)<i)return n;var u=this.sampleCurveDerivativeX(n);if(Math.abs(u)<1e-6)break;n-=l/u}var h=0,g=1;for(n=e,a=0;a<20&&(l=this.sampleCurveX(n),!(Math.abs(l-e)<i));a++)e>l?h=n:g=n,n=.5*(g-h)+h;return n},solve:function(e,i){return this.sampleCurveY(this.solveCurveX(e,i))}},jo}(),zr=lc(cc);class rt{constructor(e,i,n,a,l){this.type=e,this.operator=i,this.interpolation=n,this.input=a,this.labels=[],this.outputs=[];for(const[u,h]of l)this.labels.push(u),this.outputs.push(h)}static interpolationFactor(e,i,n,a){let l=0;if(e.name==="exponential")l=Bs(i,e.base,n,a);else if(e.name==="linear")l=Bs(i,1,n,a);else if(e.name==="cubic-bezier"){const u=e.controlPoints;l=new zr(u[0],u[1],u[2],u[3]).solve(Bs(i,1,n,a))}return l}static parse(e,i){let[n,a,l,...u]=e;if(!Array.isArray(a)||a.length===0)return i.error("Expected an interpolation type expression.",1);if(a[0]==="linear")a={name:"linear"};else if(a[0]==="exponential"){const m=a[1];if(typeof m!="number")return i.error("Exponential interpolation requires a numeric base.",1,1);a={name:"exponential",base:m}}else{if(a[0]!=="cubic-bezier")return i.error(`Unknown interpolation type ${String(a[0])}`,1,0);{const m=a.slice(1);if(m.length!==4||m.some(x=>typeof x!="number"||x<0||x>1))return i.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);a={name:"cubic-bezier",controlPoints:m}}}if(e.length-1<4)return i.error(`Expected at least 4 arguments, but found only ${e.length-1}.`);if((e.length-1)%2!=0)return i.error("Expected an even number of arguments.");if(l=i.parse(l,2,ve),!l)return null;const h=[];let g=null;n!=="interpolate-hcl"&&n!=="interpolate-lab"||i.expectedType==Ds?i.expectedType&&i.expectedType.kind!=="value"&&(g=i.expectedType):g=Pi;for(let m=0;m<u.length;m+=2){const x=u[m],_=u[m+1],T=m+3,v=m+4;if(typeof x!="number")return i.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.',T);if(h.length&&h[h.length-1][0]>=x)return i.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',T);const I=i.parse(_,v,g);if(!I)return null;g=g||I.type,h.push([x,I])}return Ii(g,ve)||Ii(g,Cs)||Ii(g,Pi)||Ii(g,fn)||Ii(g,mn)||Ii(g,Ds)||Ii(g,ir)||Ii(g,$t(ve))?new rt(g,n,a,l,h):i.error(`Type ${pt(g)} is not interpolatable.`)}evaluate(e){const i=this.labels,n=this.outputs;if(i.length===1)return n[0].evaluate(e);const a=this.input.evaluate(e);if(a<=i[0])return n[0].evaluate(e);const l=i.length;if(a>=i[l-1])return n[l-1].evaluate(e);const u=bn(i,a),h=rt.interpolationFactor(this.interpolation,a,i[u],i[u+1]),g=n[u].evaluate(e),m=n[u+1].evaluate(e);switch(this.operator){case"interpolate":switch(this.type.kind){case"number":return Oi(g,m,h);case"color":return Ne.interpolate(g,m,h);case"padding":return De.interpolate(g,m,h);case"colorArray":return vt.interpolate(g,m,h);case"numberArray":return kt.interpolate(g,m,h);case"variableAnchorOffsetCollection":return ti.interpolate(g,m,h);case"array":return Rs(g,m,h);case"projectionDefinition":return ri.interpolate(g,m,h)}case"interpolate-hcl":switch(this.type.kind){case"color":return Ne.interpolate(g,m,h,"hcl");case"colorArray":return vt.interpolate(g,m,h,"hcl")}case"interpolate-lab":switch(this.type.kind){case"color":return Ne.interpolate(g,m,h,"lab");case"colorArray":return vt.interpolate(g,m,h,"lab")}}}eachChild(e){e(this.input);for(const i of this.outputs)e(i)}outputDefined(){return this.outputs.every(e=>e.outputDefined())}}function Bs(r,e,i,n){const a=n-i,l=r-i;return a===0?0:e===1?l/a:(Math.pow(e,l)-1)/(Math.pow(e,a)-1)}const Yi={color:Ne.interpolate,number:Oi,padding:De.interpolate,numberArray:kt.interpolate,colorArray:vt.interpolate,variableAnchorOffsetCollection:ti.interpolate,array:Rs};class ns{constructor(e,i){this.type=e,this.args=i}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");let n=null;const a=i.expectedType;a&&a.kind!=="value"&&(n=a);const l=[];for(const h of e.slice(1)){const g=i.parse(h,1+l.length,n,void 0,{typeAnnotation:"omit"});if(!g)return null;n=n||g.type,l.push(g)}if(!n)throw new Error("No output type");const u=a&&l.some(h=>gn(a,h.type));return new ns(u?Be:n,l)}evaluate(e){let i,n=null,a=0;for(const l of this.args)if(a++,n=l.evaluate(e),n&&n instanceof ii&&!n.available&&(i||(i=n.name),n=null,a===this.args.length&&(n=i)),n!==null)break;return n}eachChild(e){this.args.forEach(e)}outputDefined(){return this.args.every(e=>e.outputDefined())}}function Vt(r,e){return r==="=="||r==="!="?e.kind==="boolean"||e.kind==="string"||e.kind==="number"||e.kind==="null"||e.kind==="value":e.kind==="string"||e.kind==="number"||e.kind==="value"}function Uo(r,e,i,n){return n.compare(e,i)===0}function kr(r,e,i){const n=r!=="=="&&r!=="!=";return class Nf{constructor(l,u,h){this.type=Oe,this.lhs=l,this.rhs=u,this.collator=h,this.hasUntypedArgument=l.type.kind==="value"||u.type.kind==="value"}static parse(l,u){if(l.length!==3&&l.length!==4)return u.error("Expected two or three arguments.");const h=l[0];let g=u.parse(l[1],1,Be);if(!g)return null;if(!Vt(h,g.type))return u.concat(1).error(`"${h}" comparisons are not supported for type '${pt(g.type)}'.`);let m=u.parse(l[2],2,Be);if(!m)return null;if(!Vt(h,m.type))return u.concat(2).error(`"${h}" comparisons are not supported for type '${pt(m.type)}'.`);if(g.type.kind!==m.type.kind&&g.type.kind!=="value"&&m.type.kind!=="value")return u.error(`Cannot compare types '${pt(g.type)}' and '${pt(m.type)}'.`);n&&(g.type.kind==="value"&&m.type.kind!=="value"?g=new Vi(m.type,[g]):g.type.kind!=="value"&&m.type.kind==="value"&&(m=new Vi(g.type,[m])));let x=null;if(l.length===4){if(g.type.kind!=="string"&&m.type.kind!=="string"&&g.type.kind!=="value"&&m.type.kind!=="value")return u.error("Cannot use collator to compare non-string types.");if(x=u.parse(l[3],3,ga),!x)return null}return new Nf(g,m,x)}evaluate(l){const u=this.lhs.evaluate(l),h=this.rhs.evaluate(l);if(n&&this.hasUntypedArgument){const g=wt(u),m=wt(h);if(g.kind!==m.kind||g.kind!=="string"&&g.kind!=="number")throw new bt(`Expected arguments for "${r}" to be (string, string) or (number, number), but found (${g.kind}, ${m.kind}) instead.`)}if(this.collator&&!n&&this.hasUntypedArgument){const g=wt(u),m=wt(h);if(g.kind!=="string"||m.kind!=="string")return e(l,u,h)}return this.collator?i(l,u,h,this.collator.evaluate(l)):e(l,u,h)}eachChild(l){l(this.lhs),l(this.rhs),this.collator&&l(this.collator)}outputDefined(){return!0}}}const uc=kr("==",function(r,e,i){return e===i},Uo),zu=kr("!=",function(r,e,i){return e!==i},function(r,e,i,n){return!Uo(0,e,i,n)}),Os=kr("<",function(r,e,i){return e<i},function(r,e,i,n){return n.compare(e,i)<0}),wa=kr(">",function(r,e,i){return e>i},function(r,e,i,n){return n.compare(e,i)>0}),Go=kr("<=",function(r,e,i){return e<=i},function(r,e,i,n){return n.compare(e,i)<=0}),ku=kr(">=",function(r,e,i){return e>=i},function(r,e,i,n){return n.compare(e,i)>=0});class wn{constructor(e,i,n){this.type=ga,this.locale=n,this.caseSensitive=e,this.diacriticSensitive=i}static parse(e,i){if(e.length!==2)return i.error("Expected one argument.");const n=e[1];if(typeof n!="object"||Array.isArray(n))return i.error("Collator options argument must be an object.");const a=i.parse(n["case-sensitive"]!==void 0&&n["case-sensitive"],1,Oe);if(!a)return null;const l=i.parse(n["diacritic-sensitive"]!==void 0&&n["diacritic-sensitive"],1,Oe);if(!l)return null;let u=null;return n.locale&&(u=i.parse(n.locale,1,ke),!u)?null:new wn(a,l,u)}evaluate(e){return new Bo(this.caseSensitive.evaluate(e),this.diacriticSensitive.evaluate(e),this.locale?this.locale.evaluate(e):null)}eachChild(e){e(this.caseSensitive),e(this.diacriticSensitive),this.locale&&e(this.locale)}outputDefined(){return!1}}class Vs{constructor(e,i,n,a,l,u){this.type=ke,this.number=e,this.locale=i,this.currency=n,this.unit=a,this.minFractionDigits=l,this.maxFractionDigits=u}static parse(e,i){if(e.length!==3)return i.error("Expected two arguments.");const n=i.parse(e[1],1,ve);if(!n)return null;const a=e[2];if(typeof a!="object"||Array.isArray(a))return i.error("NumberFormat options argument must be an object.");let l=null;if(a.locale&&(l=i.parse(a.locale,1,ke),!l))return null;let u=null;if(a.currency&&(u=i.parse(a.currency,1,ke),!u))return null;let h=null;if(a.unit&&(h=i.parse(a.unit,1,ke),!h))return null;if(u&&h)return i.error("NumberFormat options `currency` and `unit` are mutually exclusive");let g=null;if(a["min-fraction-digits"]&&(g=i.parse(a["min-fraction-digits"],1,ve),!g))return null;let m=null;return a["max-fraction-digits"]&&(m=i.parse(a["max-fraction-digits"],1,ve),!m)?null:new Vs(n,l,u,h,g,m)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:this.currency?"currency":this.unit?"unit":"decimal",currency:this.currency?this.currency.evaluate(e):void 0,unit:this.unit?this.unit.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}eachChild(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.unit&&e(this.unit),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits)}outputDefined(){return!1}}class as{constructor(e){this.type=As,this.sections=e}static parse(e,i){if(e.length<2)return i.error("Expected at least one argument.");const n=e[1];if(!Array.isArray(n)&&typeof n=="object")return i.error("First argument must be an image or text section.");const a=[];let l=!1;for(let u=1;u<=e.length-1;++u){const h=e[u];if(l&&typeof h=="object"&&!Array.isArray(h)){l=!1;let g=null;if(h["font-scale"]&&(g=i.parse(h["font-scale"],1,ve),!g))return null;let m=null;if(h["text-font"]&&(m=i.parse(h["text-font"],1,$t(ke)),!m))return null;let x=null;if(h["text-color"]&&(x=i.parse(h["text-color"],1,Pi),!x))return null;let _=null;if(h["vertical-align"]){if(typeof h["vertical-align"]=="string"&&!ac.includes(h["vertical-align"]))return i.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${h["vertical-align"]}' instead.`);if(_=i.parse(h["vertical-align"],1,ke),!_)return null}const T=a[a.length-1];T.scale=g,T.font=m,T.textColor=x,T.verticalAlign=_}else{const g=i.parse(e[u],1,Be);if(!g)return null;const m=g.type.kind;if(m!=="string"&&m!=="value"&&m!=="null"&&m!=="resolvedImage")return i.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");l=!0,a.push({content:g,scale:null,font:null,textColor:null,verticalAlign:null})}}return new as(a)}evaluate(e){return new Mt(this.sections.map(i=>{const n=i.content.evaluate(e);return wt(n)===Qr?new va("",n,null,null,null,i.verticalAlign?i.verticalAlign.evaluate(e):null):new va(yn(n),null,i.scale?i.scale.evaluate(e):null,i.font?i.font.evaluate(e).join(","):null,i.textColor?i.textColor.evaluate(e):null,i.verticalAlign?i.verticalAlign.evaluate(e):null)}))}eachChild(e){for(const i of this.sections)e(i.content),i.scale&&e(i.scale),i.font&&e(i.font),i.textColor&&e(i.textColor),i.verticalAlign&&e(i.verticalAlign)}outputDefined(){return!1}}class Mi{constructor(e){this.type=Qr,this.input=e}static parse(e,i){if(e.length!==2)return i.error("Expected two arguments.");const n=i.parse(e[1],1,ke);return n?new Mi(n):i.error("No image name provided.")}evaluate(e){const i=this.input.evaluate(e),n=ii.fromString(i);return n&&e.availableImages&&(n.available=e.availableImages.indexOf(i)>-1),n}eachChild(e){e(this.input)}outputDefined(){return!1}}class Ta{constructor(e){this.type=ve,this.input=e}static parse(e,i){if(e.length!==2)return i.error(`Expected 1 argument, but found ${e.length-1} instead.`);const n=i.parse(e[1],1);return n?n.type.kind!=="array"&&n.type.kind!=="string"&&n.type.kind!=="value"?i.error(`Expected argument of type string or array, but found ${pt(n.type)} instead.`):new Ta(n):null}evaluate(e){const i=this.input.evaluate(e);if(typeof i=="string")return[...i].length;if(Array.isArray(i))return i.length;throw new bt(`Expected value to be of type string or array, but found ${pt(wt(i))} instead.`)}eachChild(e){e(this.input)}outputDefined(){return!1}}const Ei=8192;function Ru(r,e){const i=(180+r[0])/360,n=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+r[1]*Math.PI/360)))/360,a=Math.pow(2,e.z);return[Math.round(i*a*Ei),Math.round(n*a*Ei)]}function Tn(r,e){const i=Math.pow(2,e.z);return[(a=(r[0]/Ei+e.x)/i,360*a-180),(n=(r[1]/Ei+e.y)/i,360/Math.PI*Math.atan(Math.exp((180-360*n)*Math.PI/180))-90)];var n,a}function Sn(r,e){r[0]=Math.min(r[0],e[0]),r[1]=Math.min(r[1],e[1]),r[2]=Math.max(r[2],e[0]),r[3]=Math.max(r[3],e[1])}function Pn(r,e){return!(r[0]<=e[0]||r[2]>=e[2]||r[1]<=e[1]||r[3]>=e[3])}function Fu(r,e,i){const n=r[0]-e[0],a=r[1]-e[1],l=r[0]-i[0],u=r[1]-i[1];return n*u-l*a==0&&n*l<=0&&a*u<=0}function Sa(r,e,i,n){return(a=[n[0]-i[0],n[1]-i[1]])[0]*(l=[e[0]-r[0],e[1]-r[1]])[1]-a[1]*l[0]!=0&&!(!Zo(r,e,i,n)||!Zo(i,n,r,e));var a,l}function Pa(r,e,i){for(const n of i)for(let a=0;a<n.length-1;++a)if(Sa(r,e,n[a],n[a+1]))return!0;return!1}function js(r,e,i=!1){let n=!1;for(const h of e)for(let g=0;g<h.length-1;g++){if(Fu(r,h[g],h[g+1]))return i;(l=h[g])[1]>(a=r)[1]!=(u=h[g+1])[1]>a[1]&&a[0]<(u[0]-l[0])*(a[1]-l[1])/(u[1]-l[1])+l[0]&&(n=!n)}var a,l,u;return n}function hc(r,e){for(const i of e)if(js(r,i))return!0;return!1}function $o(r,e){for(const i of r)if(!js(i,e))return!1;for(let i=0;i<r.length-1;++i)if(Pa(r[i],r[i+1],e))return!1;return!0}function Lu(r,e){for(const i of e)if($o(r,i))return!0;return!1}function Zo(r,e,i,n){const a=n[0]-i[0],l=n[1]-i[1],u=(r[0]-i[0])*l-a*(r[1]-i[1]),h=(e[0]-i[0])*l-a*(e[1]-i[1]);return u>0&&h<0||u<0&&h>0}function qo(r,e,i){const n=[];for(let a=0;a<r.length;a++){const l=[];for(let u=0;u<r[a].length;u++){const h=Ru(r[a][u],i);Sn(e,h),l.push(h)}n.push(l)}return n}function dc(r,e,i){const n=[];for(let a=0;a<r.length;a++){const l=qo(r[a],e,i);n.push(l)}return n}function pc(r,e,i,n){if(r[0]<i[0]||r[0]>i[2]){const a=.5*n;let l=r[0]-i[0]>a?-n:i[0]-r[0]>a?n:0;l===0&&(l=r[0]-i[2]>a?-n:i[2]-r[0]>a?n:0),r[0]+=l}Sn(e,r)}function fc(r,e,i,n){const a=Math.pow(2,n.z)*Ei,l=[n.x*Ei,n.y*Ei],u=[];for(const h of r)for(const g of h){const m=[g.x+l[0],g.y+l[1]];pc(m,e,i,a),u.push(m)}return u}function mc(r,e,i,n){const a=Math.pow(2,n.z)*Ei,l=[n.x*Ei,n.y*Ei],u=[];for(const g of r){const m=[];for(const x of g){const _=[x.x+l[0],x.y+l[1]];Sn(e,_),m.push(_)}u.push(m)}if(e[2]-e[0]<=a/2){(h=e)[0]=h[1]=1/0,h[2]=h[3]=-1/0;for(const g of u)for(const m of g)pc(m,e,i,a)}var h;return u}class Rr{constructor(e,i){this.type=Oe,this.geojson=e,this.geometries=i}static parse(e,i){if(e.length!==2)return i.error(`'within' expression requires exactly one argument, but found ${e.length-1} instead.`);if(is(e[1])){const n=e[1];if(n.type==="FeatureCollection"){const a=[];for(const l of n.features){const{type:u,coordinates:h}=l.geometry;u==="Polygon"&&a.push(h),u==="MultiPolygon"&&a.push(...h)}if(a.length)return new Rr(n,{type:"MultiPolygon",coordinates:a})}else if(n.type==="Feature"){const a=n.geometry.type;if(a==="Polygon"||a==="MultiPolygon")return new Rr(n,n.geometry)}else if(n.type==="Polygon"||n.type==="MultiPolygon")return new Rr(n,n)}return i.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()==="Point")return function(i,n){const a=[1/0,1/0,-1/0,-1/0],l=[1/0,1/0,-1/0,-1/0],u=i.canonicalID();if(n.type==="Polygon"){const h=qo(n.coordinates,l,u),g=fc(i.geometry(),a,l,u);if(!Pn(a,l))return!1;for(const m of g)if(!js(m,h))return!1}if(n.type==="MultiPolygon"){const h=dc(n.coordinates,l,u),g=fc(i.geometry(),a,l,u);if(!Pn(a,l))return!1;for(const m of g)if(!hc(m,h))return!1}return!0}(e,this.geometries);if(e.geometryType()==="LineString")return function(i,n){const a=[1/0,1/0,-1/0,-1/0],l=[1/0,1/0,-1/0,-1/0],u=i.canonicalID();if(n.type==="Polygon"){const h=qo(n.coordinates,l,u),g=mc(i.geometry(),a,l,u);if(!Pn(a,l))return!1;for(const m of g)if(!$o(m,h))return!1}if(n.type==="MultiPolygon"){const h=dc(n.coordinates,l,u),g=mc(i.geometry(),a,l,u);if(!Pn(a,l))return!1;for(const m of g)if(!Lu(m,h))return!1}return!0}(e,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}let Wo=class{constructor(r=[],e=(i,n)=>i<n?-1:i>n?1:0){if(this.data=r,this.length=this.data.length,this.compare=e,this.length>0)for(let i=(this.length>>1)-1;i>=0;i--)this._down(i)}push(r){this.data.push(r),this._up(this.length++)}pop(){if(this.length===0)return;const r=this.data[0],e=this.data.pop();return--this.length>0&&(this.data[0]=e,this._down(0)),r}peek(){return this.data[0]}_up(r){const{data:e,compare:i}=this,n=e[r];for(;r>0;){const a=r-1>>1,l=e[a];if(i(n,l)>=0)break;e[r]=l,r=a}e[r]=n}_down(r){const{data:e,compare:i}=this,n=this.length>>1,a=e[r];for(;r<n;){let l=1+(r<<1);const u=l+1;if(u<this.length&&i(e[u],e[l])<0&&(l=u),i(e[l],a)>=0)break;e[r]=e[l],r=l}e[r]=a}};function Xo(r,e,i=0,n=r.length-1,a=Bu){for(;n>i;){if(n-i>600){const g=n-i+1,m=e-i+1,x=Math.log(g),_=.5*Math.exp(2*x/3),T=.5*Math.sqrt(x*_*(g-_)/g)*(m-g/2<0?-1:1);Xo(r,e,Math.max(i,Math.floor(e-m*_/g+T)),Math.min(n,Math.floor(e+(g-m)*_/g+T)),a)}const l=r[e];let u=i,h=n;for(In(r,i,e),a(r[n],l)>0&&In(r,i,n);u<h;){for(In(r,u,h),u++,h--;a(r[u],l)<0;)u++;for(;a(r[h],l)>0;)h--}a(r[i],l)===0?In(r,i,h):(h++,In(r,h,n)),h<=e&&(i=h+1),e<=h&&(n=h-1)}}function In(r,e,i){const n=r[e];r[e]=r[i],r[i]=n}function Bu(r,e){return r<e?-1:r>e?1:0}function Ia(r,e){if(r.length<=1)return[r];const i=[];let n,a;for(const l of r){const u=Ma(l);u!==0&&(l.area=Math.abs(u),a===void 0&&(a=u<0),a===u<0?(n&&i.push(n),n=[l]):n.push(l))}if(n&&i.push(n),e>1)for(let l=0;l<i.length;l++)i[l].length<=e||(Xo(i[l],e,1,i[l].length-1,Ou),i[l]=i[l].slice(0,e));return i}function Ou(r,e){return e.area-r.area}function Ma(r){let e=0;for(let i,n,a=0,l=r.length,u=l-1;a<l;u=a++)i=r[a],n=r[u],e+=(n.x-i.x)*(i.y+n.y);return e}const gc=1/298.257223563,_c=gc*(2-gc),yc=Math.PI/180;class Ho{constructor(e){const i=6378.137*yc*1e3,n=Math.cos(e*yc),a=1/(1-_c*(1-n*n)),l=Math.sqrt(a);this.kx=i*l*n,this.ky=i*l*a*(1-_c)}distance(e,i){const n=this.wrap(e[0]-i[0])*this.kx,a=(e[1]-i[1])*this.ky;return Math.sqrt(n*n+a*a)}pointOnLine(e,i){let n,a,l,u,h=1/0;for(let g=0;g<e.length-1;g++){let m=e[g][0],x=e[g][1],_=this.wrap(e[g+1][0]-m)*this.kx,T=(e[g+1][1]-x)*this.ky,v=0;_===0&&T===0||(v=(this.wrap(i[0]-m)*this.kx*_+(i[1]-x)*this.ky*T)/(_*_+T*T),v>1?(m=e[g+1][0],x=e[g+1][1]):v>0&&(m+=_/this.kx*v,x+=T/this.ky*v)),_=this.wrap(i[0]-m)*this.kx,T=(i[1]-x)*this.ky;const I=_*_+T*T;I<h&&(h=I,n=m,a=x,l=g,u=v)}return{point:[n,a],index:l,t:Math.max(0,Math.min(1,u))}}wrap(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}}function Ea(r,e){return e[0]-r[0]}function Mn(r){return r[1]-r[0]+1}function ur(r,e){return r[1]>=r[0]&&r[1]<e}function Yo(r,e){if(r[0]>r[1])return[null,null];const i=Mn(r);if(e){if(i===2)return[r,null];const a=Math.floor(i/2);return[[r[0],r[0]+a],[r[0]+a,r[1]]]}if(i===1)return[r,null];const n=Math.floor(i/2)-1;return[[r[0],r[0]+n],[r[0]+n+1,r[1]]]}function Ca(r,e){if(!ur(e,r.length))return[1/0,1/0,-1/0,-1/0];const i=[1/0,1/0,-1/0,-1/0];for(let n=e[0];n<=e[1];++n)Sn(i,r[n]);return i}function Aa(r){const e=[1/0,1/0,-1/0,-1/0];for(const i of r)for(const n of i)Sn(e,n);return e}function xc(r){return r[0]!==-1/0&&r[1]!==-1/0&&r[2]!==1/0&&r[3]!==1/0}function Ko(r,e,i){if(!xc(r)||!xc(e))return NaN;let n=0,a=0;return r[2]<e[0]&&(n=e[0]-r[2]),r[0]>e[2]&&(n=r[0]-e[2]),r[1]>e[3]&&(a=r[1]-e[3]),r[3]<e[1]&&(a=e[1]-r[3]),i.distance([0,0],[n,a])}function os(r,e,i){const n=i.pointOnLine(e,r);return i.distance(r,n.point)}function Da(r,e,i,n,a){const l=Math.min(os(r,[i,n],a),os(e,[i,n],a)),u=Math.min(os(i,[r,e],a),os(n,[r,e],a));return Math.min(l,u)}function Vu(r,e,i,n,a){if(!ur(e,r.length)||!ur(n,i.length))return 1/0;let l=1/0;for(let u=e[0];u<e[1];++u){const h=r[u],g=r[u+1];for(let m=n[0];m<n[1];++m){const x=i[m],_=i[m+1];if(Sa(h,g,x,_))return 0;l=Math.min(l,Da(h,g,x,_,a))}}return l}function ju(r,e,i,n,a){if(!ur(e,r.length)||!ur(n,i.length))return NaN;let l=1/0;for(let u=e[0];u<=e[1];++u)for(let h=n[0];h<=n[1];++h)if(l=Math.min(l,a.distance(r[u],i[h])),l===0)return l;return l}function Nu(r,e,i){if(js(r,e,!0))return 0;let n=1/0;for(const a of e){const l=a[0],u=a[a.length-1];if(l!==u&&(n=Math.min(n,os(r,[u,l],i)),n===0))return n;const h=i.pointOnLine(a,r);if(n=Math.min(n,i.distance(r,h.point)),n===0)return n}return n}function Uu(r,e,i,n){if(!ur(e,r.length))return NaN;for(let l=e[0];l<=e[1];++l)if(js(r[l],i,!0))return 0;let a=1/0;for(let l=e[0];l<e[1];++l){const u=r[l],h=r[l+1];for(const g of i)for(let m=0,x=g.length,_=x-1;m<x;_=m++){const T=g[_],v=g[m];if(Sa(u,h,T,v))return 0;a=Math.min(a,Da(u,h,T,v,n))}}return a}function Je(r,e){for(const i of r)for(const n of i)if(js(n,e,!0))return!0;return!1}function Gu(r,e,i,n=1/0){const a=Aa(r),l=Aa(e);if(n!==1/0&&Ko(a,l,i)>=n)return n;if(Pn(a,l)){if(Je(r,e))return 0}else if(Je(e,r))return 0;let u=1/0;for(const h of r)for(let g=0,m=h.length,x=m-1;g<m;x=g++){const _=h[x],T=h[g];for(const v of e)for(let I=0,M=v.length,A=M-1;I<M;A=I++){const D=v[A],L=v[I];if(Sa(_,T,D,L))return 0;u=Math.min(u,Da(_,T,D,L,i))}}return u}function vc(r,e,i,n,a,l){if(!l)return;const u=Ko(Ca(n,l),a,i);u<e&&r.push([u,l,[0,0]])}function za(r,e,i,n,a,l,u){if(!l||!u)return;const h=Ko(Ca(n,l),Ca(a,u),i);h<e&&r.push([h,l,u])}function ka(r,e,i,n,a=1/0){let l=Math.min(n.distance(r[0],i[0][0]),a);if(l===0)return l;const u=new Wo([[0,[0,r.length-1],[0,0]]],Ea),h=Aa(i);for(;u.length>0;){const g=u.pop();if(g[0]>=l)continue;const m=g[1],x=e?50:100;if(Mn(m)<=x){if(!ur(m,r.length))return NaN;if(e){const _=Uu(r,m,i,n);if(isNaN(_)||_===0)return _;l=Math.min(l,_)}else for(let _=m[0];_<=m[1];++_){const T=Nu(r[_],i,n);if(l=Math.min(l,T),l===0)return 0}}else{const _=Yo(m,e);vc(u,l,n,r,h,_[0]),vc(u,l,n,r,h,_[1])}}return l}function Ra(r,e,i,n,a,l=1/0){let u=Math.min(l,a.distance(r[0],i[0]));if(u===0)return u;const h=new Wo([[0,[0,r.length-1],[0,i.length-1]]],Ea);for(;h.length>0;){const g=h.pop();if(g[0]>=u)continue;const m=g[1],x=g[2],_=e?50:100,T=n?50:100;if(Mn(m)<=_&&Mn(x)<=T){if(!ur(m,r.length)&&ur(x,i.length))return NaN;let v;if(e&&n)v=Vu(r,m,i,x,a),u=Math.min(u,v);else if(e&&!n){const I=r.slice(m[0],m[1]+1);for(let M=x[0];M<=x[1];++M)if(v=os(i[M],I,a),u=Math.min(u,v),u===0)return u}else if(!e&&n){const I=i.slice(x[0],x[1]+1);for(let M=m[0];M<=m[1];++M)if(v=os(r[M],I,a),u=Math.min(u,v),u===0)return u}else v=ju(r,m,i,x,a),u=Math.min(u,v)}else{const v=Yo(m,e),I=Yo(x,n);za(h,u,a,r,i,v[0],I[0]),za(h,u,a,r,i,v[0],I[1]),za(h,u,a,r,i,v[1],I[0]),za(h,u,a,r,i,v[1],I[1])}}return u}function Jo(r){return r.type==="MultiPolygon"?r.coordinates.map(e=>({type:"Polygon",coordinates:e})):r.type==="MultiLineString"?r.coordinates.map(e=>({type:"LineString",coordinates:e})):r.type==="MultiPoint"?r.coordinates.map(e=>({type:"Point",coordinates:e})):[r]}class ls{constructor(e,i){this.type=ve,this.geojson=e,this.geometries=i}static parse(e,i){if(e.length!==2)return i.error(`'distance' expression requires exactly one argument, but found ${e.length-1} instead.`);if(is(e[1])){const n=e[1];if(n.type==="FeatureCollection")return new ls(n,n.features.map(a=>Jo(a.geometry)).flat());if(n.type==="Feature")return new ls(n,Jo(n.geometry));if("type"in n&&"coordinates"in n)return new ls(n,Jo(n))}return i.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()==="Point")return function(i,n){const a=i.geometry(),l=a.flat().map(g=>Tn([g.x,g.y],i.canonical));if(a.length===0)return NaN;const u=new Ho(l[0][1]);let h=1/0;for(const g of n){switch(g.type){case"Point":h=Math.min(h,Ra(l,!1,[g.coordinates],!1,u,h));break;case"LineString":h=Math.min(h,Ra(l,!1,g.coordinates,!0,u,h));break;case"Polygon":h=Math.min(h,ka(l,!1,g.coordinates,u,h))}if(h===0)return h}return h}(e,this.geometries);if(e.geometryType()==="LineString")return function(i,n){const a=i.geometry(),l=a.flat().map(g=>Tn([g.x,g.y],i.canonical));if(a.length===0)return NaN;const u=new Ho(l[0][1]);let h=1/0;for(const g of n){switch(g.type){case"Point":h=Math.min(h,Ra(l,!0,[g.coordinates],!1,u,h));break;case"LineString":h=Math.min(h,Ra(l,!0,g.coordinates,!0,u,h));break;case"Polygon":h=Math.min(h,ka(l,!0,g.coordinates,u,h))}if(h===0)return h}return h}(e,this.geometries);if(e.geometryType()==="Polygon")return function(i,n){const a=i.geometry();if(a.length===0||a[0].length===0)return NaN;const l=Ia(a,0).map(g=>g.map(m=>m.map(x=>Tn([x.x,x.y],i.canonical)))),u=new Ho(l[0][0][0][1]);let h=1/0;for(const g of n)for(const m of l){switch(g.type){case"Point":h=Math.min(h,ka([g.coordinates],!1,m,u,h));break;case"LineString":h=Math.min(h,ka(g.coordinates,!0,m,u,h));break;case"Polygon":h=Math.min(h,Gu(m,g.coordinates,u,h))}if(h===0)return h}return h}(e,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}}class En{constructor(e){this.type=Be,this.key=e}static parse(e,i){if(e.length!==2)return i.error(`Expected 1 argument, but found ${e.length-1} instead.`);const n=e[1];return n==null?i.error("Global state property must be defined."):typeof n!="string"?i.error(`Global state property must be string, but found ${typeof e[1]} instead.`):new En(n)}evaluate(e){var i;const n=(i=e.globals)===null||i===void 0?void 0:i.globalState;return n&&Object.keys(n).length!==0?_n(n,this.key):null}eachChild(){}outputDefined(){return!1}}const Ns={"==":uc,"!=":zu,">":wa,"<":Os,">=":ku,"<=":Go,array:Vi,at:xn,boolean:Vi,case:vn,coalesce:ns,collator:wn,format:as,image:Mi,in:qe,"index-of":Ls,interpolate:rt,"interpolate-hcl":rt,"interpolate-lab":rt,length:Ta,let:Ue,literal:sr,match:Hi,number:Vi,"number-format":Vs,object:Vi,slice:rs,step:ss,string:Vi,"to-boolean":cr,"to-color":cr,"to-number":cr,"to-string":cr,var:Fe,within:Rr,distance:ls,"global-state":En};class ji{constructor(e,i,n,a){this.name=e,this.type=i,this._evaluate=n,this.args=a}evaluate(e){return this._evaluate(e,this.args)}eachChild(e){this.args.forEach(e)}outputDefined(){return!1}static parse(e,i){const n=e[0],a=ji.definitions[n];if(!a)return i.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0);const l=Array.isArray(a)?a[0]:a.type,u=Array.isArray(a)?[[a[1],a[2]]]:a.overloads,h=u.filter(([m])=>!Array.isArray(m)||m.length===e.length-1);let g=null;for(const[m,x]of h){g=new Fs(i.registry,Fa,i.path,null,i.scope);const _=[];let T=!1;for(let v=1;v<e.length;v++){const I=e[v],M=Array.isArray(m)?m[v-1]:m.type,A=g.parse(I,1+_.length,M);if(!A){T=!0;break}_.push(A)}if(!T)if(Array.isArray(m)&&m.length!==_.length)g.error(`Expected ${m.length} arguments, but found ${_.length} instead.`);else{for(let v=0;v<_.length;v++){const I=Array.isArray(m)?m[v]:m.type,M=_[v];g.concat(v+1).checkSubtype(I,M.type)}if(g.errors.length===0)return new ji(n,l,x,_)}}if(h.length===1)i.errors.push(...g.errors);else{const m=(h.length?h:u).map(([_])=>{return T=_,Array.isArray(T)?`(${T.map(pt).join(", ")})`:`(${pt(T.type)}...)`;var T}).join(" | "),x=[];for(let _=1;_<e.length;_++){const T=i.parse(e[_],1+x.length);if(!T)return null;x.push(pt(T.type))}i.error(`Expected arguments of type ${m}, but found (${x.join(", ")}) instead.`)}return null}static register(e,i){ji.definitions=i;for(const n in i)e[n]=ji}}function bc(r,[e,i,n,a]){e=e.evaluate(r),i=i.evaluate(r),n=n.evaluate(r);const l=a?a.evaluate(r):1,u=Oo(e,i,n,l);if(u)throw new bt(u);return new Ne(e/255,i/255,n/255,l,!1)}function wc(r,e){return r in e}function Qo(r,e){const i=e[r];return i===void 0?null:i}function cs(r){return{type:r}}function Fa(r){if(r instanceof Fe)return Fa(r.boundExpression);if(r instanceof ji&&r.name==="error"||r instanceof wn||r instanceof Rr||r instanceof ls||r instanceof En)return!1;const e=r instanceof cr||r instanceof Vi;let i=!0;return r.eachChild(n=>{i=e?i&&Fa(n):i&&n instanceof sr}),!!i&&La(r)&&Ba(r,["zoom","heatmap-density","elevation","line-progress","accumulated","is-supported-script"])}function La(r){if(r instanceof ji&&(r.name==="get"&&r.args.length===1||r.name==="feature-state"||r.name==="has"&&r.args.length===1||r.name==="properties"||r.name==="geometry-type"||r.name==="id"||/^filter-/.test(r.name))||r instanceof Rr||r instanceof ls)return!1;let e=!0;return r.eachChild(i=>{e&&!La(i)&&(e=!1)}),e}function Cn(r){if(r instanceof ji&&r.name==="feature-state")return!1;let e=!0;return r.eachChild(i=>{e&&!Cn(i)&&(e=!1)}),e}function Ba(r,e){if(r instanceof ji&&e.indexOf(r.name)>=0)return!1;let i=!0;return r.eachChild(n=>{i&&!Ba(n,e)&&(i=!1)}),i}function Tc(r){return{result:"success",value:r}}function Us(r){return{result:"error",value:r}}function Gs(r){return r["property-type"]==="data-driven"||r["property-type"]==="cross-faded-data-driven"}function Sc(r){return!!r.expression&&r.expression.parameters.indexOf("zoom")>-1}function el(r){return!!r.expression&&r.expression.interpolated}function Ve(r){return r instanceof Number?"number":r instanceof String?"string":r instanceof Boolean?"boolean":Array.isArray(r)?"array":r===null?"null":typeof r}function Oa(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)&&wt(r)===Dr}function $u(r){return r}function Pc(r,e){const i=r.stops&&typeof r.stops[0][0]=="object",n=i||!(i||r.property!==void 0),a=r.type||(el(e)?"exponential":"interval"),l=function(x){switch(x.type){case"color":return Ne.parse;case"padding":return De.parse;case"numberArray":return kt.parse;case"colorArray":return vt.parse;default:return null}}(e);if(l&&((r=Jr({},r)).stops&&(r.stops=r.stops.map(x=>[x[0],l(x[1])])),r.default=l(r.default?r.default:e.default)),r.colorSpace&&(u=r.colorSpace)!=="rgb"&&u!=="hcl"&&u!=="lab")throw new Error(`Unknown color space: "${r.colorSpace}"`);var u;const h=function(x){switch(x){case"exponential":return Ic;case"interval":return qu;case"categorical":return Zu;case"identity":return tl;default:throw new Error(`Unknown function type "${x}"`)}}(a);let g,m;if(a==="categorical"){g=Object.create(null);for(const x of r.stops)g[x[0]]=x[1];m=typeof r.stops[0][0]}if(i){const x={},_=[];for(let I=0;I<r.stops.length;I++){const M=r.stops[I],A=M[0].zoom;x[A]===void 0&&(x[A]={zoom:A,type:r.type,property:r.property,default:r.default,stops:[]},_.push(A)),x[A].stops.push([M[0].value,M[1]])}const T=[];for(const I of _)T.push([x[I].zoom,Pc(x[I],e)]);const v={name:"linear"};return{kind:"composite",interpolationType:v,interpolationFactor:rt.interpolationFactor.bind(void 0,v),zoomStops:T.map(I=>I[0]),evaluate:({zoom:I},M)=>Ic({stops:T,base:r.base},e,I).evaluate(I,M)}}if(n){const x=a==="exponential"?{name:"exponential",base:r.base!==void 0?r.base:1}:null;return{kind:"camera",interpolationType:x,interpolationFactor:rt.interpolationFactor.bind(void 0,x),zoomStops:r.stops.map(_=>_[0]),evaluate:({zoom:_})=>h(r,e,_,g,m)}}return{kind:"source",evaluate(x,_){const T=_&&_.properties?_.properties[r.property]:void 0;return T===void 0?An(r.default,e.default):h(r,e,T,g,m)}}}function An(r,e,i){return r!==void 0?r:e!==void 0?e:i!==void 0?i:void 0}function Zu(r,e,i,n,a){return An(typeof i===a?n[i]:void 0,r.default,e.default)}function qu(r,e,i){if(Ve(i)!=="number")return An(r.default,e.default);const n=r.stops.length;if(n===1||i<=r.stops[0][0])return r.stops[0][1];if(i>=r.stops[n-1][0])return r.stops[n-1][1];const a=bn(r.stops.map(l=>l[0]),i);return r.stops[a][1]}function Ic(r,e,i){const n=r.base!==void 0?r.base:1;if(Ve(i)!=="number")return An(r.default,e.default);const a=r.stops.length;if(a===1||i<=r.stops[0][0])return r.stops[0][1];if(i>=r.stops[a-1][0])return r.stops[a-1][1];const l=bn(r.stops.map(x=>x[0]),i),u=function(x,_,T,v){const I=v-T,M=x-T;return I===0?0:_===1?M/I:(Math.pow(_,M)-1)/(Math.pow(_,I)-1)}(i,n,r.stops[l][0],r.stops[l+1][0]),h=r.stops[l][1],g=r.stops[l+1][1],m=Yi[e.type]||$u;return typeof h.evaluate=="function"?{evaluate(...x){const _=h.evaluate.apply(void 0,x),T=g.evaluate.apply(void 0,x);if(_!==void 0&&T!==void 0)return m(_,T,u,r.colorSpace)}}:m(h,g,u,r.colorSpace)}function tl(r,e,i){switch(e.type){case"color":i=Ne.parse(i);break;case"formatted":i=Mt.fromString(i.toString());break;case"resolvedImage":i=ii.fromString(i.toString());break;case"padding":i=De.parse(i);break;case"colorArray":i=vt.parse(i);break;case"numberArray":i=kt.parse(i);break;default:Ve(i)===e.type||e.type==="enum"&&e.values[i]||(i=void 0)}return An(i,r.default,e.default)}ji.register(Ns,{error:[{kind:"error"},[ke],(r,[e])=>{throw new bt(e.evaluate(r))}],typeof:[ke,[Be],(r,[e])=>pt(wt(e.evaluate(r)))],"to-rgba":[$t(ve,4),[Pi],(r,[e])=>{const[i,n,a,l]=e.evaluate(r).rgb;return[255*i,255*n,255*a,l]}],rgb:[Pi,[ve,ve,ve],bc],rgba:[Pi,[ve,ve,ve,ve],bc],has:{type:Oe,overloads:[[[ke],(r,[e])=>wc(e.evaluate(r),r.properties())],[[ke,Dr],(r,[e,i])=>wc(e.evaluate(r),i.evaluate(r))]]},get:{type:Be,overloads:[[[ke],(r,[e])=>Qo(e.evaluate(r),r.properties())],[[ke,Dr],(r,[e,i])=>Qo(e.evaluate(r),i.evaluate(r))]]},"feature-state":[Be,[ke],(r,[e])=>Qo(e.evaluate(r),r.featureState||{})],properties:[Dr,[],r=>r.properties()],"geometry-type":[ke,[],r=>r.geometryType()],id:[Be,[],r=>r.id()],zoom:[ve,[],r=>r.globals.zoom],"heatmap-density":[ve,[],r=>r.globals.heatmapDensity||0],elevation:[ve,[],r=>r.globals.elevation||0],"line-progress":[ve,[],r=>r.globals.lineProgress||0],accumulated:[Be,[],r=>r.globals.accumulated===void 0?null:r.globals.accumulated],"+":[ve,cs(ve),(r,e)=>{let i=0;for(const n of e)i+=n.evaluate(r);return i}],"*":[ve,cs(ve),(r,e)=>{let i=1;for(const n of e)i*=n.evaluate(r);return i}],"-":{type:ve,overloads:[[[ve,ve],(r,[e,i])=>e.evaluate(r)-i.evaluate(r)],[[ve],(r,[e])=>-e.evaluate(r)]]},"/":[ve,[ve,ve],(r,[e,i])=>e.evaluate(r)/i.evaluate(r)],"%":[ve,[ve,ve],(r,[e,i])=>e.evaluate(r)%i.evaluate(r)],ln2:[ve,[],()=>Math.LN2],pi:[ve,[],()=>Math.PI],e:[ve,[],()=>Math.E],"^":[ve,[ve,ve],(r,[e,i])=>Math.pow(e.evaluate(r),i.evaluate(r))],sqrt:[ve,[ve],(r,[e])=>Math.sqrt(e.evaluate(r))],log10:[ve,[ve],(r,[e])=>Math.log(e.evaluate(r))/Math.LN10],ln:[ve,[ve],(r,[e])=>Math.log(e.evaluate(r))],log2:[ve,[ve],(r,[e])=>Math.log(e.evaluate(r))/Math.LN2],sin:[ve,[ve],(r,[e])=>Math.sin(e.evaluate(r))],cos:[ve,[ve],(r,[e])=>Math.cos(e.evaluate(r))],tan:[ve,[ve],(r,[e])=>Math.tan(e.evaluate(r))],asin:[ve,[ve],(r,[e])=>Math.asin(e.evaluate(r))],acos:[ve,[ve],(r,[e])=>Math.acos(e.evaluate(r))],atan:[ve,[ve],(r,[e])=>Math.atan(e.evaluate(r))],min:[ve,cs(ve),(r,e)=>Math.min(...e.map(i=>i.evaluate(r)))],max:[ve,cs(ve),(r,e)=>Math.max(...e.map(i=>i.evaluate(r)))],abs:[ve,[ve],(r,[e])=>Math.abs(e.evaluate(r))],round:[ve,[ve],(r,[e])=>{const i=e.evaluate(r);return i<0?-Math.round(-i):Math.round(i)}],floor:[ve,[ve],(r,[e])=>Math.floor(e.evaluate(r))],ceil:[ve,[ve],(r,[e])=>Math.ceil(e.evaluate(r))],"filter-==":[Oe,[ke,Be],(r,[e,i])=>r.properties()[e.value]===i.value],"filter-id-==":[Oe,[Be],(r,[e])=>r.id()===e.value],"filter-type-==":[Oe,[ke],(r,[e])=>r.geometryType()===e.value],"filter-<":[Oe,[ke,Be],(r,[e,i])=>{const n=r.properties()[e.value],a=i.value;return typeof n==typeof a&&n<a}],"filter-id-<":[Oe,[Be],(r,[e])=>{const i=r.id(),n=e.value;return typeof i==typeof n&&i<n}],"filter->":[Oe,[ke,Be],(r,[e,i])=>{const n=r.properties()[e.value],a=i.value;return typeof n==typeof a&&n>a}],"filter-id->":[Oe,[Be],(r,[e])=>{const i=r.id(),n=e.value;return typeof i==typeof n&&i>n}],"filter-<=":[Oe,[ke,Be],(r,[e,i])=>{const n=r.properties()[e.value],a=i.value;return typeof n==typeof a&&n<=a}],"filter-id-<=":[Oe,[Be],(r,[e])=>{const i=r.id(),n=e.value;return typeof i==typeof n&&i<=n}],"filter->=":[Oe,[ke,Be],(r,[e,i])=>{const n=r.properties()[e.value],a=i.value;return typeof n==typeof a&&n>=a}],"filter-id->=":[Oe,[Be],(r,[e])=>{const i=r.id(),n=e.value;return typeof i==typeof n&&i>=n}],"filter-has":[Oe,[Be],(r,[e])=>e.value in r.properties()],"filter-has-id":[Oe,[],r=>r.id()!==null&&r.id()!==void 0],"filter-type-in":[Oe,[$t(ke)],(r,[e])=>e.value.indexOf(r.geometryType())>=0],"filter-id-in":[Oe,[$t(Be)],(r,[e])=>e.value.indexOf(r.id())>=0],"filter-in-small":[Oe,[ke,$t(Be)],(r,[e,i])=>i.value.indexOf(r.properties()[e.value])>=0],"filter-in-large":[Oe,[ke,$t(Be)],(r,[e,i])=>function(n,a,l,u){for(;l<=u;){const h=l+u>>1;if(a[h]===n)return!0;a[h]>n?u=h-1:l=h+1}return!1}(r.properties()[e.value],i.value,0,i.value.length-1)],all:{type:Oe,overloads:[[[Oe,Oe],(r,[e,i])=>e.evaluate(r)&&i.evaluate(r)],[cs(Oe),(r,e)=>{for(const i of e)if(!i.evaluate(r))return!1;return!0}]]},any:{type:Oe,overloads:[[[Oe,Oe],(r,[e,i])=>e.evaluate(r)||i.evaluate(r)],[cs(Oe),(r,e)=>{for(const i of e)if(i.evaluate(r))return!0;return!1}]]},"!":[Oe,[Oe],(r,[e])=>!e.evaluate(r)],"is-supported-script":[Oe,[ke],(r,[e])=>{const i=r.globals&&r.globals.isSupportedScript;return!i||i(e.evaluate(r))}],upcase:[ke,[ke],(r,[e])=>e.evaluate(r).toUpperCase()],downcase:[ke,[ke],(r,[e])=>e.evaluate(r).toLowerCase()],concat:[ke,cs(Be),(r,e)=>e.map(i=>yn(i.evaluate(r))).join("")],split:[$t(ke),[ke,ke],(r,[e,i])=>e.evaluate(r).split(i.evaluate(r))],join:[ke,[$t(ke),ke],(r,[e,i])=>e.value.join(i.evaluate(r))],"resolved-locale":[ke,[ga],(r,[e])=>e.evaluate(r).resolvedLocale()]});class il{constructor(e,i,n){this.expression=e,this._warningHistory={},this._evaluator=new ut,this._defaultValue=i?function(a){if(a.type==="color"&&Oa(a.default))return new Ne(0,0,0,0);switch(a.type){case"color":return Ne.parse(a.default)||null;case"padding":return De.parse(a.default)||null;case"numberArray":return kt.parse(a.default)||null;case"colorArray":return vt.parse(a.default)||null;case"variableAnchorOffsetCollection":return ti.parse(a.default)||null;case"projectionDefinition":return ri.parse(a.default)||null;default:return a.default===void 0?null:a.default}}(i):null,this._enumValues=i&&i.type==="enum"?i.values:null,this._globalState=n}evaluateWithoutErrorHandling(e,i,n,a,l,u){return this._globalState&&(e=$s(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=i,this._evaluator.featureState=n,this._evaluator.canonical=a,this._evaluator.availableImages=l||null,this._evaluator.formattedSection=u,this.expression.evaluate(this._evaluator)}evaluate(e,i,n,a,l,u){this._globalState&&(e=$s(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=i||null,this._evaluator.featureState=n||null,this._evaluator.canonical=a,this._evaluator.availableImages=l||null,this._evaluator.formattedSection=u||null;try{const h=this.expression.evaluate(this._evaluator);if(h==null||typeof h=="number"&&h!=h)return this._defaultValue;if(this._enumValues&&!(h in this._enumValues))throw new bt(`Expected value to be one of ${Object.keys(this._enumValues).map(g=>JSON.stringify(g)).join(", ")}, but found ${JSON.stringify(h)} instead.`);return h}catch(h){return this._warningHistory[h.message]||(this._warningHistory[h.message]=!0,typeof console<"u"&&console.warn(h.message)),this._defaultValue}}}function Va(r){return Array.isArray(r)&&r.length>0&&typeof r[0]=="string"&&r[0]in Ns}function Dn(r,e,i){const n=new Fs(Ns,Fa,[],e?function(l){const u={color:Pi,string:ke,number:ve,enum:ke,boolean:Oe,formatted:As,padding:fn,numberArray:mn,colorArray:Ds,projectionDefinition:Cs,resolvedImage:Qr,variableAnchorOffsetCollection:ir};return l.type==="array"?$t(u[l.value]||Be,l.length):u[l.type]}(e):void 0),a=n.parse(r,void 0,void 0,void 0,e&&e.type==="string"?{typeAnnotation:"coerce"}:void 0);return a?Tc(new il(a,e,i)):Us(n.errors)}class zn{constructor(e,i,n){this.kind=e,this._styleExpression=i,this.isStateDependent=e!=="constant"&&!Cn(i.expression),this.globalStateRefs=Rn(i.expression),this._globalState=n}evaluateWithoutErrorHandling(e,i,n,a,l,u){return this._globalState&&(e=$s(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,i,n,a,l,u)}evaluate(e,i,n,a,l,u){return this._globalState&&(e=$s(e,this._globalState)),this._styleExpression.evaluate(e,i,n,a,l,u)}}class rl{constructor(e,i,n,a,l){this.kind=e,this.zoomStops=n,this._styleExpression=i,this.isStateDependent=e!=="camera"&&!Cn(i.expression),this.globalStateRefs=Rn(i.expression),this.interpolationType=a,this._globalState=l}evaluateWithoutErrorHandling(e,i,n,a,l,u){return this._globalState&&(e=$s(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,i,n,a,l,u)}evaluate(e,i,n,a,l,u){return this._globalState&&(e=$s(e,this._globalState)),this._styleExpression.evaluate(e,i,n,a,l,u)}interpolationFactor(e,i,n){return this.interpolationType?rt.interpolationFactor(this.interpolationType,e,i,n):0}}function Mc(r,e,i){const n=Dn(r,e,i);if(n.result==="error")return n;const a=n.value.expression,l=La(a);if(!l&&!Gs(e))return Us([new Qt("","data expressions not supported")]);const u=Ba(a,["zoom"]);if(!u&&!Sc(e))return Us([new Qt("","zoom expressions not supported")]);const h=kn(a);return h||u?h instanceof Qt?Us([h]):h instanceof rt&&!el(e)?Us([new Qt("",'"interpolate" expressions cannot be used with this property')]):Tc(h?new rl(l?"camera":"composite",n.value,h.labels,h instanceof rt?h.interpolation:void 0,i):new zn(l?"constant":"source",n.value,i)):Us([new Qt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class us{constructor(e,i){this._parameters=e,this._specification=i,Jr(this,Pc(this._parameters,this._specification))}static deserialize(e){return new us(e._parameters,e._specification)}static serialize(e){return{_parameters:e._parameters,_specification:e._specification}}}function kn(r){let e=null;if(r instanceof Ue)e=kn(r.result);else if(r instanceof ns){for(const i of r.args)if(e=kn(i),e)break}else(r instanceof ss||r instanceof rt)&&r.input instanceof ji&&r.input.name==="zoom"&&(e=r);return e instanceof Qt||r.eachChild(i=>{const n=kn(i);n instanceof Qt?e=n:!e&&n?e=new Qt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):e&&n&&e!==n&&(e=new Qt("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),e}function Rn(r,e=new Set){return r instanceof En&&e.add(r.key),r.eachChild(i=>{Rn(i,e)}),e}function $s(r,e){const{zoom:i,heatmapDensity:n,elevation:a,lineProgress:l,isSupportedScript:u,accumulated:h}=r??{};return{zoom:i,heatmapDensity:n,elevation:a,lineProgress:l,isSupportedScript:u,accumulated:h,globalState:e}}function sl(r){if(r===!0||r===!1)return!0;if(!Array.isArray(r)||r.length===0)return!1;switch(r[0]){case"has":return r.length>=2&&r[1]!=="$id"&&r[1]!=="$type";case"in":return r.length>=3&&(typeof r[1]!="string"||Array.isArray(r[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return r.length!==3||Array.isArray(r[1])||Array.isArray(r[2]);case"any":case"all":for(const e of r.slice(1))if(!sl(e)&&typeof e!="boolean")return!1;return!0;default:return!0}}const Wu={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function Fn(r,e){if(r==null)return{filter:()=>!0,needGeometry:!1,getGlobalStateRefs:()=>new Set};sl(r)||(r=ja(r));const i=Dn(r,Wu,e);if(i.result==="error")throw new Error(i.value.map(n=>`${n.key}: ${n.message}`).join(", "));return{filter:(n,a,l)=>i.value.evaluate(n,a,{},l),needGeometry:nl(r),getGlobalStateRefs:()=>Rn(i.value.expression)}}function Ec(r,e){return r<e?-1:r>e?1:0}function nl(r){if(!Array.isArray(r))return!1;if(r[0]==="within"||r[0]==="distance")return!0;for(let e=1;e<r.length;e++)if(nl(r[e]))return!0;return!1}function ja(r){if(!r)return!0;const e=r[0];return r.length<=1?e!=="any":e==="=="?al(r[1],r[2],"=="):e==="!="?Ln(al(r[1],r[2],"==")):e==="<"||e===">"||e==="<="||e===">="?al(r[1],r[2],e):e==="any"?(i=r.slice(1),["any"].concat(i.map(ja))):e==="all"?["all"].concat(r.slice(1).map(ja)):e==="none"?["all"].concat(r.slice(1).map(ja).map(Ln)):e==="in"?ol(r[1],r.slice(2)):e==="!in"?Ln(ol(r[1],r.slice(2))):e==="has"?ll(r[1]):e!=="!has"||Ln(ll(r[1]));var i}function al(r,e,i){switch(r){case"$type":return[`filter-type-${i}`,e];case"$id":return[`filter-id-${i}`,e];default:return[`filter-${i}`,r,e]}}function ol(r,e){if(e.length===0)return!1;switch(r){case"$type":return["filter-type-in",["literal",e]];case"$id":return["filter-id-in",["literal",e]];default:return e.length>200&&!e.some(i=>typeof i!=typeof e[0])?["filter-in-large",r,["literal",e.sort(Ec)]]:["filter-in-small",r,["literal",e]]}}function ll(r){switch(r){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",r]}}function Ln(r){return["!",r]}function cl(r){const e=typeof r;if(e==="number"||e==="boolean"||e==="string"||r==null)return JSON.stringify(r);if(Array.isArray(r)){let a="[";for(const l of r)a+=`${cl(l)},`;return`${a}]`}const i=Object.keys(r).sort();let n="{";for(let a=0;a<i.length;a++)n+=`${JSON.stringify(i[a])}:${cl(r[i[a]])},`;return`${n}}`}function Xu(r){let e="";for(const i of Mo)e+=`/${cl(r[i])}`;return e}function Cc(r){const e=r.value;return e?[new xe(r.key,e,"constants have been deprecated as of v8")]:[]}function Et(r){return r instanceof Number||r instanceof String||r instanceof Boolean?r.valueOf():r}function Fr(r){if(Array.isArray(r))return r.map(Fr);if(r instanceof Object&&!(r instanceof Number||r instanceof String||r instanceof Boolean)){const e={};for(const i in r)e[i]=Fr(r[i]);return e}return Et(r)}function xi(r){const e=r.key,i=r.value,n=r.valueSpec||{},a=r.objectElementValidators||{},l=r.style,u=r.styleSpec,h=r.validateSpec;let g=[];const m=Ve(i);if(m!=="object")return[new xe(e,i,`object expected, ${m} found`)];for(const x in i){const _=x.split(".")[0],T=_n(n,_)||n["*"];let v;if(_n(a,_))v=a[_];else if(_n(n,_)){if(i[x]===void 0)continue;v=h}else if(a["*"])v=a["*"];else{if(!n["*"]){g.push(new xe(e,i[x],`unknown property "${x}"`));continue}v=h}g=g.concat(v({key:(e&&`${e}.`)+x,value:i[x],valueSpec:T,style:l,styleSpec:u,object:i,objectKey:x,validateSpec:h},i))}for(const x in n)a[x]||n[x].required&&n[x].default===void 0&&i[x]===void 0&&g.push(new xe(e,i,`missing required property "${x}"`));return g}function Bn(r){const e=r.value,i=r.valueSpec,n=r.style,a=r.styleSpec,l=r.key,u=r.arrayElementValidator||r.validateSpec;if(Ve(e)!=="array")return[new xe(l,e,`array expected, ${Ve(e)} found`)];if(i.length&&e.length!==i.length)return[new xe(l,e,`array length ${i.length} expected, length ${e.length} found`)];let h={type:i.value,values:i.values};a.$version<7&&(h.function=i.function),Ve(i.value)==="object"&&(h=i.value);let g=[];for(let m=0;m<e.length;m++)g=g.concat(u({array:e,arrayIndex:m,value:e[m],valueSpec:h,validateSpec:r.validateSpec,style:n,styleSpec:a,key:`${l}[${m}]`}));return g}function Zs(r){const e=r.key,i=r.value,n=r.valueSpec;let a=Ve(i);return a==="number"&&i!=i&&(a="NaN"),a!=="number"?[new xe(e,i,`number expected, ${a} found`)]:"minimum"in n&&i<n.minimum?[new xe(e,i,`${i} is less than the minimum value ${n.minimum}`)]:"maximum"in n&&i>n.maximum?[new xe(e,i,`${i} is greater than the maximum value ${n.maximum}`)]:[]}function Na(r){const e=r.valueSpec,i=Et(r.value.type);let n,a,l,u={};const h=i!=="categorical"&&r.value.property===void 0,g=!h,m=Ve(r.value.stops)==="array"&&Ve(r.value.stops[0])==="array"&&Ve(r.value.stops[0][0])==="object",x=xi({key:r.key,value:r.value,valueSpec:r.styleSpec.function,validateSpec:r.validateSpec,style:r.style,styleSpec:r.styleSpec,objectElementValidators:{stops:function(v){if(i==="identity")return[new xe(v.key,v.value,'identity function may not have a "stops" property')];let I=[];const M=v.value;return I=I.concat(Bn({key:v.key,value:M,valueSpec:v.valueSpec,validateSpec:v.validateSpec,style:v.style,styleSpec:v.styleSpec,arrayElementValidator:_})),Ve(M)==="array"&&M.length===0&&I.push(new xe(v.key,M,"array must have at least one stop")),I},default:function(v){return v.validateSpec({key:v.key,value:v.value,valueSpec:e,validateSpec:v.validateSpec,style:v.style,styleSpec:v.styleSpec})}}});return i==="identity"&&h&&x.push(new xe(r.key,r.value,'missing required property "property"')),i==="identity"||r.value.stops||x.push(new xe(r.key,r.value,'missing required property "stops"')),i==="exponential"&&r.valueSpec.expression&&!el(r.valueSpec)&&x.push(new xe(r.key,r.value,"exponential functions not supported")),r.styleSpec.$version>=8&&(g&&!Gs(r.valueSpec)?x.push(new xe(r.key,r.value,"property functions not supported")):h&&!Sc(r.valueSpec)&&x.push(new xe(r.key,r.value,"zoom functions not supported"))),i!=="categorical"&&!m||r.value.property!==void 0||x.push(new xe(r.key,r.value,'"property" property is required')),x;function _(v){let I=[];const M=v.value,A=v.key;if(Ve(M)!=="array")return[new xe(A,M,`array expected, ${Ve(M)} found`)];if(M.length!==2)return[new xe(A,M,`array length 2 expected, length ${M.length} found`)];if(m){if(Ve(M[0])!=="object")return[new xe(A,M,`object expected, ${Ve(M[0])} found`)];if(M[0].zoom===void 0)return[new xe(A,M,"object stop key must have zoom")];if(M[0].value===void 0)return[new xe(A,M,"object stop key must have value")];if(l&&l>Et(M[0].zoom))return[new xe(A,M[0].zoom,"stop zoom values must appear in ascending order")];Et(M[0].zoom)!==l&&(l=Et(M[0].zoom),a=void 0,u={}),I=I.concat(xi({key:`${A}[0]`,value:M[0],valueSpec:{zoom:{}},validateSpec:v.validateSpec,style:v.style,styleSpec:v.styleSpec,objectElementValidators:{zoom:Zs,value:T}}))}else I=I.concat(T({key:`${A}[0]`,value:M[0],validateSpec:v.validateSpec,style:v.style,styleSpec:v.styleSpec},M));return Va(Fr(M[1]))?I.concat([new xe(`${A}[1]`,M[1],"expressions are not allowed in function stops.")]):I.concat(v.validateSpec({key:`${A}[1]`,value:M[1],valueSpec:e,validateSpec:v.validateSpec,style:v.style,styleSpec:v.styleSpec}))}function T(v,I){const M=Ve(v.value),A=Et(v.value),D=v.value!==null?v.value:I;if(n){if(M!==n)return[new xe(v.key,D,`${M} stop domain type must match previous stop domain type ${n}`)]}else n=M;if(M!=="number"&&M!=="string"&&M!=="boolean")return[new xe(v.key,D,"stop domain value must be a number, string, or boolean")];if(M!=="number"&&i!=="categorical"){let L=`number expected, ${M} found`;return Gs(e)&&i===void 0&&(L+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new xe(v.key,D,L)]}return i!=="categorical"||M!=="number"||isFinite(A)&&Math.floor(A)===A?i!=="categorical"&&M==="number"&&a!==void 0&&A<a?[new xe(v.key,D,"stop domain values must appear in ascending order")]:(a=A,i==="categorical"&&A in u?[new xe(v.key,D,"stop domain values must be unique")]:(u[A]=!0,[])):[new xe(v.key,D,`integer expected, found ${A}`)]}}function Lr(r){const e=(r.expressionContext==="property"?Mc:Dn)(Fr(r.value),r.valueSpec);if(e.result==="error")return e.value.map(n=>new xe(`${r.key}${n.key}`,r.value,n.message));const i=e.value.expression||e.value._styleExpression.expression;if(r.expressionContext==="property"&&r.propertyKey==="text-font"&&!i.outputDefined())return[new xe(r.key,r.value,`Invalid data expression for "${r.propertyKey}". Output values must be contained as literals within the expression.`)];if(r.expressionContext==="property"&&r.propertyType==="layout"&&!Cn(i))return[new xe(r.key,r.value,'"feature-state" data expressions are not supported with layout properties.')];if(r.expressionContext==="filter"&&!Cn(i))return[new xe(r.key,r.value,'"feature-state" data expressions are not supported with filters.')];if(r.expressionContext&&r.expressionContext.indexOf("cluster")===0){if(!Ba(i,["zoom","feature-state"]))return[new xe(r.key,r.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(r.expressionContext==="cluster-initial"&&!La(i))return[new xe(r.key,r.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function qs(r){const e=r.key,i=r.value,n=Ve(i);return n!=="string"?[new xe(e,i,`color expected, ${n} found`)]:Ne.parse(String(i))?[]:[new xe(e,i,`color expected, "${i}" found`)]}function On(r){const e=r.key,i=r.value,n=r.valueSpec,a=[];return Array.isArray(n.values)?n.values.indexOf(Et(i))===-1&&a.push(new xe(e,i,`expected one of [${n.values.join(", ")}], ${JSON.stringify(i)} found`)):Object.keys(n.values).indexOf(Et(i))===-1&&a.push(new xe(e,i,`expected one of [${Object.keys(n.values).join(", ")}], ${JSON.stringify(i)} found`)),a}function ul(r){return sl(Fr(r.value))?Lr(Jr({},r,{expressionContext:"filter",valueSpec:{value:"boolean"}})):Ac(r)}function Ac(r){const e=r.value,i=r.key;if(Ve(e)!=="array")return[new xe(i,e,`array expected, ${Ve(e)} found`)];const n=r.styleSpec;let a,l=[];if(e.length<1)return[new xe(i,e,"filter array must have at least 1 element")];switch(l=l.concat(On({key:`${i}[0]`,value:e[0],valueSpec:n.filter_operator,style:r.style,styleSpec:r.styleSpec})),Et(e[0])){case"<":case"<=":case">":case">=":e.length>=2&&Et(e[1])==="$type"&&l.push(new xe(i,e,`"$type" cannot be use with operator "${e[0]}"`));case"==":case"!=":e.length!==3&&l.push(new xe(i,e,`filter array for operator "${e[0]}" must have 3 elements`));case"in":case"!in":e.length>=2&&(a=Ve(e[1]),a!=="string"&&l.push(new xe(`${i}[1]`,e[1],`string expected, ${a} found`)));for(let u=2;u<e.length;u++)a=Ve(e[u]),Et(e[1])==="$type"?l=l.concat(On({key:`${i}[${u}]`,value:e[u],valueSpec:n.geometry_type,style:r.style,styleSpec:r.styleSpec})):a!=="string"&&a!=="number"&&a!=="boolean"&&l.push(new xe(`${i}[${u}]`,e[u],`string, number, or boolean expected, ${a} found`));break;case"any":case"all":case"none":for(let u=1;u<e.length;u++)l=l.concat(Ac({key:`${i}[${u}]`,value:e[u],style:r.style,styleSpec:r.styleSpec}));break;case"has":case"!has":a=Ve(e[1]),e.length!==2?l.push(new xe(i,e,`filter array for "${e[0]}" operator must have 2 elements`)):a!=="string"&&l.push(new xe(`${i}[1]`,e[1],`string expected, ${a} found`))}return l}function Dc(r,e){const i=r.key,n=r.validateSpec,a=r.style,l=r.styleSpec,u=r.value,h=r.objectKey,g=l[`${e}_${r.layerType}`];if(!g)return[];const m=h.match(/^(.*)-transition$/);if(e==="paint"&&m&&g[m[1]]&&g[m[1]].transition)return n({key:i,value:u,valueSpec:l.transition,style:a,styleSpec:l});const x=r.valueSpec||g[h];if(!x)return[new xe(i,u,`unknown property "${h}"`)];let _;if(Ve(u)==="string"&&Gs(x)&&!x.tokens&&(_=/^{([^}]+)}$/.exec(u)))return[new xe(i,u,`"${h}" does not support interpolation syntax