maplibre-gl 3.1.0 → 3.2.0-pre.2

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 (338) hide show
  1. package/README.md +7 -7
  2. package/build/generate-doc-images.ts +73 -0
  3. package/build/generate-docs.ts +100 -0
  4. package/build/generate-struct-arrays.ts +9 -12
  5. package/dist/maplibre-gl-csp-worker.js +1 -1
  6. package/dist/maplibre-gl-csp-worker.js.map +1 -1
  7. package/dist/maplibre-gl-csp.js +1 -1
  8. package/dist/maplibre-gl-csp.js.map +1 -1
  9. package/dist/maplibre-gl-dev.js +3303 -3398
  10. package/dist/maplibre-gl-dev.js.map +1 -1
  11. package/dist/maplibre-gl.d.ts +3899 -3531
  12. package/dist/maplibre-gl.js +3 -3
  13. package/dist/maplibre-gl.js.map +1 -1
  14. package/package.json +28 -25
  15. package/src/data/array_types.g.ts +14 -48
  16. package/src/data/bucket/circle_bucket.ts +11 -14
  17. package/src/data/bucket/fill_bucket.test.ts +6 -6
  18. package/src/data/bucket/fill_bucket.ts +10 -12
  19. package/src/data/bucket/fill_extrusion_bucket.ts +11 -13
  20. package/src/data/bucket/heatmap_bucket.ts +3 -6
  21. package/src/data/bucket/line_attributes.ts +1 -2
  22. package/src/data/bucket/line_attributes_ext.ts +1 -2
  23. package/src/data/bucket/line_bucket.test.ts +5 -5
  24. package/src/data/bucket/line_bucket.ts +18 -21
  25. package/src/data/bucket/pattern_attributes.ts +1 -3
  26. package/src/data/bucket/pattern_bucket_features.ts +3 -3
  27. package/src/data/bucket/symbol_bucket.test.ts +5 -5
  28. package/src/data/bucket/symbol_bucket.ts +12 -15
  29. package/src/data/bucket.ts +7 -11
  30. package/src/data/dem_data.test.ts +1 -1
  31. package/src/data/dem_data.ts +1 -1
  32. package/src/data/evaluation_feature.ts +4 -5
  33. package/src/data/extent.ts +1 -4
  34. package/src/data/feature_index.ts +14 -13
  35. package/src/data/feature_position_map.test.ts +4 -4
  36. package/src/data/feature_position_map.ts +1 -1
  37. package/src/data/index_array_type.ts +0 -1
  38. package/src/data/load_geometry.test.ts +1 -1
  39. package/src/data/load_geometry.ts +3 -4
  40. package/src/data/program_configuration.ts +6 -11
  41. package/src/data/segment.ts +9 -6
  42. package/src/geo/edge_insets.test.ts +1 -1
  43. package/src/geo/edge_insets.ts +36 -26
  44. package/src/geo/lng_lat.test.ts +1 -1
  45. package/src/geo/lng_lat.ts +61 -44
  46. package/src/geo/lng_lat_bounds.test.ts +2 -2
  47. package/src/geo/lng_lat_bounds.ts +88 -68
  48. package/src/geo/mercator_coordinate.test.ts +2 -2
  49. package/src/geo/mercator_coordinate.ts +34 -27
  50. package/src/geo/transform.test.ts +3 -3
  51. package/src/geo/transform.ts +58 -79
  52. package/src/gl/color_mode.ts +1 -3
  53. package/src/gl/context.ts +12 -11
  54. package/src/gl/cull_face_mode.ts +1 -3
  55. package/src/gl/depth_mode.ts +1 -3
  56. package/src/gl/framebuffer.ts +5 -4
  57. package/src/gl/index_buffer.ts +5 -4
  58. package/src/gl/render_pool.test.ts +2 -2
  59. package/src/gl/render_pool.ts +5 -5
  60. package/src/gl/state.test.ts +1 -1
  61. package/src/gl/stencil_mode.ts +1 -3
  62. package/src/gl/value.ts +1 -1
  63. package/src/gl/vertex_buffer.test.ts +2 -2
  64. package/src/gl/vertex_buffer.ts +8 -14
  65. package/src/index.test.ts +2 -2
  66. package/src/index.ts +121 -113
  67. package/src/render/draw_background.ts +7 -9
  68. package/src/render/draw_circle.ts +13 -15
  69. package/src/render/draw_collision_debug.ts +11 -13
  70. package/src/render/draw_custom.ts +6 -8
  71. package/src/render/draw_debug.test.ts +4 -4
  72. package/src/render/draw_debug.ts +8 -10
  73. package/src/render/draw_fill.test.ts +13 -13
  74. package/src/render/draw_fill.ts +9 -11
  75. package/src/render/draw_fill_extrusion.ts +10 -12
  76. package/src/render/draw_heatmap.ts +12 -14
  77. package/src/render/draw_hillshade.ts +10 -12
  78. package/src/render/draw_line.ts +9 -9
  79. package/src/render/draw_raster.ts +9 -11
  80. package/src/render/draw_symbol.test.ts +16 -16
  81. package/src/render/draw_symbol.ts +15 -16
  82. package/src/render/draw_terrain.ts +11 -11
  83. package/src/render/glyph_atlas.ts +10 -1
  84. package/src/render/glyph_manager.test.ts +3 -3
  85. package/src/render/glyph_manager.ts +7 -7
  86. package/src/render/image_atlas.ts +6 -3
  87. package/src/render/image_manager.ts +3 -5
  88. package/src/render/line_atlas.test.ts +1 -1
  89. package/src/render/line_atlas.ts +19 -14
  90. package/src/render/painter.ts +85 -65
  91. package/src/render/program/background_program.ts +2 -2
  92. package/src/render/program/circle_program.ts +5 -5
  93. package/src/render/program/clipping_mask_program.ts +1 -1
  94. package/src/render/program/collision_program.ts +4 -4
  95. package/src/render/program/debug_program.ts +1 -1
  96. package/src/render/program/fill_extrusion_program.ts +3 -3
  97. package/src/render/program/fill_program.ts +3 -3
  98. package/src/render/program/heatmap_program.ts +5 -5
  99. package/src/render/program/hillshade_program.ts +7 -7
  100. package/src/render/program/line_program.ts +6 -6
  101. package/src/render/program/pattern.ts +3 -3
  102. package/src/render/program/raster_program.ts +2 -2
  103. package/src/render/program/symbol_program.ts +2 -2
  104. package/src/render/program/terrain_program.ts +1 -1
  105. package/src/render/program.ts +18 -16
  106. package/src/render/render_to_texture.test.ts +15 -15
  107. package/src/render/render_to_texture.ts +10 -10
  108. package/src/render/terrain.test.ts +38 -7
  109. package/src/render/terrain.ts +103 -67
  110. package/src/render/texture.ts +5 -4
  111. package/src/render/uniform_binding.test.ts +1 -1
  112. package/src/render/uniform_binding.ts +7 -1
  113. package/src/render/update_pattern_positions_in_program.ts +5 -5
  114. package/src/render/vertex_array_object.ts +9 -8
  115. package/src/shaders/encode_attribute.ts +0 -2
  116. package/src/shaders/shaders.ts +1 -3
  117. package/src/source/canvas_source.test.ts +6 -6
  118. package/src/source/canvas_source.ts +46 -60
  119. package/src/source/geojson_source.test.ts +5 -5
  120. package/src/source/geojson_source.ts +75 -59
  121. package/src/source/geojson_source_diff.ts +39 -2
  122. package/src/source/geojson_worker_source.test.ts +3 -3
  123. package/src/source/geojson_worker_source.ts +20 -26
  124. package/src/source/geojson_wrapper.test.ts +3 -3
  125. package/src/source/geojson_wrapper.ts +2 -4
  126. package/src/source/image_source.test.ts +9 -8
  127. package/src/source/image_source.ts +49 -35
  128. package/src/source/load_tilejson.ts +2 -2
  129. package/src/source/pixels_to_tile_units.ts +2 -3
  130. package/src/source/query_features.test.ts +3 -3
  131. package/src/source/query_features.ts +50 -19
  132. package/src/source/raster_dem_tile_source.test.ts +3 -3
  133. package/src/source/raster_dem_tile_source.ts +23 -10
  134. package/src/source/raster_dem_tile_worker_source.test.ts +2 -2
  135. package/src/source/raster_dem_tile_worker_source.ts +3 -5
  136. package/src/source/raster_tile_source.test.ts +3 -3
  137. package/src/source/raster_tile_source.ts +38 -11
  138. package/src/source/rtl_text_plugin.ts +4 -1
  139. package/src/source/source.ts +67 -59
  140. package/src/source/source_cache.test.ts +7 -7
  141. package/src/source/source_cache.ts +17 -38
  142. package/src/source/source_state.ts +2 -5
  143. package/src/source/terrain_source_cache.test.ts +8 -8
  144. package/src/source/terrain_source_cache.ts +42 -27
  145. package/src/source/tile.test.ts +3 -3
  146. package/src/source/tile.ts +32 -38
  147. package/src/source/tile_bounds.ts +2 -4
  148. package/src/source/tile_cache.test.ts +2 -2
  149. package/src/source/tile_cache.ts +20 -30
  150. package/src/source/tile_id.ts +11 -2
  151. package/src/source/vector_tile_source.test.ts +3 -3
  152. package/src/source/vector_tile_source.ts +34 -24
  153. package/src/source/vector_tile_worker_source.test.ts +4 -4
  154. package/src/source/vector_tile_worker_source.ts +11 -23
  155. package/src/source/video_source.test.ts +5 -5
  156. package/src/source/video_source.ts +21 -28
  157. package/src/source/worker.ts +6 -8
  158. package/src/source/worker_source.ts +6 -8
  159. package/src/source/worker_tile.test.ts +5 -5
  160. package/src/source/worker_tile.ts +13 -16
  161. package/src/style/create_style_layer.ts +31 -26
  162. package/src/style/evaluation_parameters.ts +5 -4
  163. package/src/style/format_section_override.test.ts +2 -2
  164. package/src/style/format_section_override.ts +1 -1
  165. package/src/style/light.test.ts +2 -2
  166. package/src/style/light.ts +3 -5
  167. package/src/style/load_glyph_range.test.ts +1 -1
  168. package/src/style/load_glyph_range.ts +3 -3
  169. package/src/style/load_sprite.test.ts +1 -1
  170. package/src/style/load_sprite.ts +3 -3
  171. package/src/style/parse_glyph_pbf.ts +1 -1
  172. package/src/style/pauseable_placement.ts +7 -9
  173. package/src/style/properties.ts +4 -53
  174. package/src/style/query_utils.ts +3 -3
  175. package/src/style/style.test.ts +22 -19
  176. package/src/style/style.ts +118 -84
  177. package/src/style/style_glyph.ts +6 -0
  178. package/src/style/style_image.ts +39 -33
  179. package/src/style/style_layer/background_style_layer.ts +2 -4
  180. package/src/style/style_layer/circle_style_layer.ts +7 -6
  181. package/src/style/style_layer/custom_style_layer.ts +23 -48
  182. package/src/style/style_layer/fill_extrusion_style_layer.ts +4 -6
  183. package/src/style/style_layer/fill_style_layer.ts +5 -7
  184. package/src/style/style_layer/heatmap_style_layer.ts +8 -7
  185. package/src/style/style_layer/hillshade_style_layer.ts +2 -4
  186. package/src/style/style_layer/line_style_layer.ts +6 -8
  187. package/src/style/style_layer/overlap_mode.test.ts +3 -3
  188. package/src/style/style_layer/overlap_mode.ts +3 -0
  189. package/src/style/style_layer/raster_style_layer.ts +2 -4
  190. package/src/style/style_layer/symbol_style_layer.ts +6 -8
  191. package/src/style/style_layer/typed_style_layer.ts +7 -7
  192. package/src/style/style_layer.test.ts +5 -5
  193. package/src/style/style_layer.ts +7 -6
  194. package/src/style/style_layer_index.test.ts +1 -1
  195. package/src/style/style_layer_index.ts +3 -5
  196. package/src/style/zoom_history.ts +1 -3
  197. package/src/symbol/anchor.test.ts +1 -1
  198. package/src/symbol/anchor.ts +1 -3
  199. package/src/symbol/check_max_angle.test.ts +8 -2
  200. package/src/symbol/check_max_angle.ts +10 -13
  201. package/src/symbol/clip_line.test.ts +1 -1
  202. package/src/symbol/clip_line.ts +6 -9
  203. package/src/symbol/collision_feature.test.ts +2 -2
  204. package/src/symbol/collision_feature.ts +7 -12
  205. package/src/symbol/collision_index.test.ts +2 -2
  206. package/src/symbol/collision_index.ts +5 -11
  207. package/src/symbol/cross_tile_symbol_index.test.ts +2 -2
  208. package/src/symbol/cross_tile_symbol_index.ts +5 -7
  209. package/src/symbol/get_anchors.ts +2 -2
  210. package/src/symbol/grid_index.test.ts +1 -1
  211. package/src/symbol/grid_index.ts +4 -5
  212. package/src/symbol/merge_lines.test.ts +1 -1
  213. package/src/symbol/merge_lines.ts +1 -1
  214. package/src/symbol/opacity_state.ts +1 -3
  215. package/src/symbol/path_interpolator.test.ts +1 -1
  216. package/src/symbol/path_interpolator.ts +1 -3
  217. package/src/symbol/placement.ts +9 -9
  218. package/src/symbol/projection.ts +61 -34
  219. package/src/symbol/quads.ts +7 -11
  220. package/src/symbol/shaping.ts +1 -1
  221. package/src/symbol/symbol_layout.ts +9 -12
  222. package/src/symbol/symbol_size.ts +1 -1
  223. package/src/symbol/symbol_style_layer.test.ts +4 -4
  224. package/src/symbol/transform_text.ts +2 -2
  225. package/src/types/callback.ts +14 -14
  226. package/src/types/cancelable.ts +3 -0
  227. package/src/types/transferable.ts +3 -0
  228. package/src/ui/anchor.ts +4 -0
  229. package/src/ui/camera.test.ts +6 -6
  230. package/src/ui/camera.ts +392 -361
  231. package/src/ui/control/attribution_control.test.ts +1 -1
  232. package/src/ui/control/attribution_control.ts +34 -30
  233. package/src/ui/control/control.ts +14 -20
  234. package/src/ui/control/fullscreen_control.test.ts +1 -1
  235. package/src/ui/control/fullscreen_control.ts +21 -26
  236. package/src/ui/control/geolocate_control.test.ts +5 -5
  237. package/src/ui/control/geolocate_control.ts +181 -194
  238. package/src/ui/control/logo_control.ts +20 -16
  239. package/src/ui/control/navigation_control.test.ts +1 -1
  240. package/src/ui/control/navigation_control.ts +46 -42
  241. package/src/ui/control/scale_control.test.ts +1 -1
  242. package/src/ui/control/scale_control.ts +30 -21
  243. package/src/ui/control/terrain_control.test.ts +1 -1
  244. package/src/ui/control/terrain_control.ts +14 -18
  245. package/src/ui/default_locale.ts +1 -3
  246. package/src/ui/events.ts +570 -1281
  247. package/src/ui/handler/box_zoom.test.ts +2 -2
  248. package/src/ui/handler/box_zoom.ts +16 -11
  249. package/src/ui/handler/click_zoom.ts +11 -3
  250. package/src/ui/handler/cooperative_gestures.test.ts +3 -3
  251. package/src/ui/handler/dblclick_zoom.test.ts +1 -1
  252. package/src/ui/handler/drag_handler.ts +30 -22
  253. package/src/ui/handler/drag_move_state_manager.ts +1 -1
  254. package/src/ui/handler/drag_pan.test.ts +2 -2
  255. package/src/ui/handler/drag_rotate.test.ts +3 -3
  256. package/src/ui/handler/keyboard.test.ts +2 -2
  257. package/src/ui/handler/keyboard.ts +22 -13
  258. package/src/ui/handler/map_event.test.ts +2 -2
  259. package/src/ui/handler/map_event.ts +1 -1
  260. package/src/ui/handler/mouse.ts +1 -1
  261. package/src/ui/handler/mouse_rotate.test.ts +3 -3
  262. package/src/ui/handler/scroll_zoom.test.ts +3 -3
  263. package/src/ui/handler/scroll_zoom.ts +45 -52
  264. package/src/ui/handler/shim/dblclick_zoom.ts +12 -6
  265. package/src/ui/handler/shim/drag_pan.ts +34 -14
  266. package/src/ui/handler/shim/drag_rotate.ts +20 -12
  267. package/src/ui/handler/shim/two_fingers_touch.ts +24 -18
  268. package/src/ui/handler/tap_drag_zoom.test.ts +113 -0
  269. package/src/ui/handler/tap_drag_zoom.ts +18 -10
  270. package/src/ui/handler/tap_recognizer.ts +1 -1
  271. package/src/ui/handler/tap_zoom.ts +4 -3
  272. package/src/ui/handler/touch_pan.ts +3 -2
  273. package/src/ui/handler/transform-provider.ts +4 -6
  274. package/src/ui/handler/two_fingers_touch.test.ts +3 -3
  275. package/src/ui/handler/two_fingers_touch.ts +64 -47
  276. package/src/ui/handler_inertia.ts +4 -4
  277. package/src/ui/handler_manager.ts +86 -52
  278. package/src/ui/hash.test.ts +1 -1
  279. package/src/ui/hash.ts +21 -28
  280. package/src/ui/map/isMoving.test.ts +3 -3
  281. package/src/ui/map/isRotating.test.ts +3 -3
  282. package/src/ui/map/isZooming.test.ts +3 -3
  283. package/src/ui/map.test.ts +97 -8
  284. package/src/ui/map.ts +856 -702
  285. package/src/ui/map_events.test.ts +1 -1
  286. package/src/ui/marker.test.ts +35 -15
  287. package/src/ui/marker.ts +220 -141
  288. package/src/ui/popup.test.ts +2 -2
  289. package/src/ui/popup.ts +179 -147
  290. package/src/util/actor.test.ts +7 -7
  291. package/src/util/actor.ts +25 -22
  292. package/src/util/ajax.ts +37 -17
  293. package/src/util/browser.test.ts +1 -1
  294. package/src/util/browser.ts +2 -6
  295. package/src/util/classify_rings.test.ts +1 -1
  296. package/src/util/classify_rings.ts +1 -1
  297. package/src/util/color_ramp.ts +0 -2
  298. package/src/util/config.ts +6 -3
  299. package/src/util/debug.ts +0 -2
  300. package/src/util/dictionary_coder.ts +1 -4
  301. package/src/util/dispatcher.test.ts +3 -3
  302. package/src/util/dispatcher.ts +4 -9
  303. package/src/util/dom.ts +1 -1
  304. package/src/util/evented.ts +23 -18
  305. package/src/util/find_pole_of_inaccessibility.test.ts +1 -1
  306. package/src/util/find_pole_of_inaccessibility.ts +4 -5
  307. package/src/util/global_worker_pool.ts +2 -3
  308. package/src/util/image.ts +10 -4
  309. package/src/util/image_request.test.ts +3 -3
  310. package/src/util/image_request.ts +15 -14
  311. package/src/util/is_char_in_unicode_block.ts +1 -3
  312. package/src/util/offscreen_canvas_supported.ts +1 -1
  313. package/src/util/performance.ts +1 -2
  314. package/src/util/request_manager.ts +4 -0
  315. package/src/util/resolve_tokens.test.ts +1 -1
  316. package/src/util/resolve_tokens.ts +3 -6
  317. package/src/util/script_detection.ts +1 -4
  318. package/src/util/smart_wrap.ts +3 -5
  319. package/src/util/struct_array.ts +18 -14
  320. package/src/util/style.ts +2 -2
  321. package/src/util/task_queue.test.ts +1 -1
  322. package/src/util/task_queue.ts +1 -3
  323. package/src/util/test/mock_webgl.ts +6 -0
  324. package/src/util/test/util.ts +2 -2
  325. package/src/util/throttle.test.ts +1 -1
  326. package/src/util/throttle.ts +1 -2
  327. package/src/util/throttled_invoker.ts +1 -5
  328. package/src/util/transferable_grid_index.test.ts +1 -1
  329. package/src/util/transferable_grid_index.ts +1 -3
  330. package/src/util/util.test.ts +1 -14
  331. package/src/util/util.ts +44 -107
  332. package/src/util/vectortile_to_geojson.ts +13 -3
  333. package/src/util/verticalize_punctuation.ts +1 -1
  334. package/src/util/web_worker.ts +2 -2
  335. package/src/util/web_worker_transfer.ts +11 -8
  336. package/src/util/webp_supported.ts +2 -4
  337. package/src/util/worker_pool.test.ts +1 -1
  338. package/src/util/worker_pool.ts +4 -5
@@ -7,34 +7,20 @@ import {interpolates, Color, StylePropertySpecification, normalizePropertyExpres
7
7
  CompositeExpression, TransitionSpecification,
8
8
  PropertyValueSpecification} from '@maplibre/maplibre-gl-style-spec';
9
9
  import {register} from '../util/web_worker_transfer';
10
- import EvaluationParameters from './evaluation_parameters';
10
+ import {EvaluationParameters} from './evaluation_parameters';
11
11
 
12
12
  import {CanonicalTileID} from '../source/tile_id';
13
13
 
14
14
  type TimePoint = number;
15
15
 
16
+ /**
17
+ * A from-to type
18
+ */
16
19
  export type CrossFaded<T> = {
17
20
  to: T;
18
21
  from: T;
19
22
  };
20
23
 
21
- /**
22
- * Implements a number of classes that define state and behavior for paint and layout properties, most
23
- * importantly their respective evaluation chains:
24
- *
25
- * Transitionable paint property value
26
- * → Transitioning paint property value
27
- * → Possibly evaluated paint property value
28
- * → Fully evaluated paint property value
29
- *
30
- * Layout property value
31
- * → Possibly evaluated layout property value
32
- * → Fully evaluated layout property value
33
- *
34
- * @module
35
- * @private
36
- */
37
-
38
24
  /**
39
25
  * Implementations of the `Property` interface:
40
26
  *
@@ -50,8 +36,6 @@ export type CrossFaded<T> = {
50
36
  * and one for properties that don't. There are a few "special case" implementations as well: one for properties
51
37
  * which cross-fade between two values rather than interpolating, one for `heatmap-color` and `line-gradient`,
52
38
  * and one for `light-position`.
53
- *
54
- * @private
55
39
  */
56
40
  export interface Property<T, R> {
57
41
  specification: StylePropertySpecification;
@@ -80,8 +64,6 @@ export interface Property<T, R> {
80
64
  * In addition to storing the original input value, `PropertyValue` also stores a normalized representation,
81
65
  * effectively treating functions as if they are expressions, and constant or default values as if they are
82
66
  * (constant) expressions.
83
- *
84
- * @private
85
67
  */
86
68
  export class PropertyValue<T, R> {
87
69
  property: Property<T, R>;
@@ -107,8 +89,6 @@ export class PropertyValue<T, R> {
107
89
  }
108
90
  }
109
91
 
110
- // ------- Transitionable -------
111
-
112
92
  export type TransitionParameters = {
113
93
  now: TimePoint;
114
94
  transition: TransitionSpecification;
@@ -123,8 +103,6 @@ export type TransitionParameters = {
123
103
  *
124
104
  * A `TransitionablePropertyValue` can calculate the next step in the evaluation chain for paint property values:
125
105
  * `TransitioningPropertyValue`.
126
- *
127
- * @private
128
106
  */
129
107
  class TransitionablePropertyValue<T, R> {
130
108
  property: Property<T, R>;
@@ -150,8 +128,6 @@ class TransitionablePropertyValue<T, R> {
150
128
  * `Transitionable` stores a map of all (property name, `TransitionablePropertyValue`) pairs for paint properties of a
151
129
  * given layer type. It can calculate the `TransitioningPropertyValue`s for all of them at once, producing a
152
130
  * `Transitioning` instance for the same set of properties.
153
- *
154
- * @private
155
131
  */
156
132
  export class Transitionable<Props> {
157
133
  _properties: Properties<Props>;
@@ -219,16 +195,12 @@ export class Transitionable<Props> {
219
195
  }
220
196
  }
221
197
 
222
- // ------- Transitioning -------
223
-
224
198
  /**
225
199
  * `TransitioningPropertyValue` implements the first of two intermediate steps in the evaluation chain of a paint
226
200
  * property value. In this step, transitions between old and new values are handled: as long as the transition is in
227
201
  * progress, `TransitioningPropertyValue` maintains a reference to the prior value, and interpolates between it and
228
202
  * the new value based on the current time and the configured transition duration and delay. The product is the next
229
203
  * step in the evaluation chain: the "possibly evaluated" result type `R`. See below for more on this concept.
230
- *
231
- * @private
232
204
  */
233
205
  class TransitioningPropertyValue<T, R> {
234
206
  property: Property<T, R>;
@@ -287,8 +259,6 @@ class TransitioningPropertyValue<T, R> {
287
259
  * `Transitioning` stores a map of all (property name, `TransitioningPropertyValue`) pairs for paint properties of a
288
260
  * given layer type. It can calculate the possibly-evaluated values for all of them at once, producing a
289
261
  * `PossiblyEvaluated` instance for the same set of properties.
290
- *
291
- * @private
292
262
  */
293
263
  export class Transitioning<Props> {
294
264
  _properties: Properties<Props>;
@@ -331,8 +301,6 @@ export class Transitioning<Props> {
331
301
  * `Layout` stores a map of all (property name, `PropertyValue`) pairs for layout properties of a
332
302
  * given layer type. It can calculate the possibly-evaluated values for all of them at once, producing a
333
303
  * `PossiblyEvaluated` instance for the same set of properties.
334
- *
335
- * @private
336
304
  */
337
305
  export class Layout<Props> {
338
306
  _properties: Properties<Props>;
@@ -395,8 +363,6 @@ export class Layout<Props> {
395
363
  * Note that `PossiblyEvaluatedValue` (and `PossiblyEvaluatedPropertyValue`, below) are _not_ used for properties that
396
364
  * do not allow data-driven values. For such properties, we know that the "possibly evaluated" result is always a constant
397
365
  * scalar value. See below.
398
- *
399
- * @private
400
366
  */
401
367
  type PossiblyEvaluatedValue<T> = {
402
368
  kind: 'constant';
@@ -408,8 +374,6 @@ type PossiblyEvaluatedValue<T> = {
408
374
  * `PossiblyEvaluatedValue` and the `GlobalProperties` that were used to generate it. You're not allowed to supply
409
375
  * a different set of `GlobalProperties` when performing the final evaluation because they would be ignored in the
410
376
  * case where the input value was a constant or camera function.
411
- *
412
- * @private
413
377
  */
414
378
  export class PossiblyEvaluatedPropertyValue<T> {
415
379
  property: DataDrivenProperty<T>;
@@ -447,7 +411,6 @@ export class PossiblyEvaluatedPropertyValue<T> {
447
411
  /**
448
412
  * `PossiblyEvaluated` stores a map of all (property name, `R`) pairs for paint or layout properties of a
449
413
  * given layer type.
450
- * @private
451
414
  */
452
415
  export class PossiblyEvaluated<Props, PossibleEvaluatedProps> {
453
416
  _properties: Properties<Props>;
@@ -467,8 +430,6 @@ export class PossiblyEvaluated<Props, PossibleEvaluatedProps> {
467
430
  * An implementation of `Property` for properties that do not permit data-driven (source or composite) expressions.
468
431
  * This restriction allows us to declare statically that the result of possibly evaluating this kind of property
469
432
  * is in fact always the scalar type `T`, and can be used without further evaluating the value on a per-feature basis.
470
- *
471
- * @private
472
433
  */
473
434
  export class DataConstantProperty<T> implements Property<T, T> {
474
435
  specification: StylePropertySpecification;
@@ -497,8 +458,6 @@ export class DataConstantProperty<T> implements Property<T, T> {
497
458
  * An implementation of `Property` for properties that permit data-driven (source or composite) expressions.
498
459
  * The result of possibly evaluating this kind of property is `PossiblyEvaluatedPropertyValue<T>`; obtaining
499
460
  * a scalar value `T` requires further evaluation on a per-feature basis.
500
- *
501
- * @private
502
461
  */
503
462
  export class DataDrivenProperty<T> implements Property<T, PossiblyEvaluatedPropertyValue<T>> {
504
463
  specification: StylePropertySpecification;
@@ -572,8 +531,6 @@ export class DataDrivenProperty<T> implements Property<T, PossiblyEvaluatedPrope
572
531
  /**
573
532
  * An implementation of `Property` for data driven `line-pattern` which are transitioned by cross-fading
574
533
  * rather than interpolation.
575
- *
576
- * @private
577
534
  */
578
535
 
579
536
  export class CrossFadedDataDrivenProperty<T> extends DataDrivenProperty<CrossFaded<T>> {
@@ -639,8 +596,6 @@ export class CrossFadedDataDrivenProperty<T> extends DataDrivenProperty<CrossFad
639
596
  /**
640
597
  * An implementation of `Property` for `*-pattern` and `line-dasharray`, which are transitioned by cross-fading
641
598
  * rather than interpolation.
642
- *
643
- * @private
644
599
  */
645
600
  export class CrossFadedProperty<T> implements Property<T, CrossFaded<T>> {
646
601
  specification: StylePropertySpecification;
@@ -683,8 +638,6 @@ export class CrossFadedProperty<T> implements Property<T, CrossFaded<T>> {
683
638
  * An implementation of `Property` for `heatmap-color` and `line-gradient`. Interpolation is a no-op, and
684
639
  * evaluation returns a boolean value in order to indicate its presence, but the real
685
640
  * evaluation happens in StyleLayer classes.
686
- *
687
- * @private
688
641
  */
689
642
 
690
643
  export class ColorRampProperty implements Property<Color, boolean> {
@@ -714,8 +667,6 @@ export class ColorRampProperty implements Property<Color, boolean> {
714
667
  * on the default value: using `for (const property of Object.keys(this._values))`, they can iterate over
715
668
  * only the _own_ properties of `_values`, skipping repeated calculation of transitions and possible/final
716
669
  * evaluations for defaults, the result of which will always be the same.
717
- *
718
- * @private
719
670
  */
720
671
  export class Properties<Props> {
721
672
  properties: Props;
@@ -1,9 +1,9 @@
1
1
  import Point from '@mapbox/point-geometry';
2
2
 
3
3
  import type {PossiblyEvaluatedPropertyValue} from './properties';
4
- import type StyleLayer from '../style/style_layer';
5
- import type CircleBucket from '../data/bucket/circle_bucket';
6
- import type LineBucket from '../data/bucket/line_bucket';
4
+ import type {StyleLayer} from '../style/style_layer';
5
+ import type {CircleBucket} from '../data/bucket/circle_bucket';
6
+ import type {LineBucket} from '../data/bucket/line_bucket';
7
7
 
8
8
  export function getMaximumPaintValue(
9
9
  property: string,
@@ -1,7 +1,7 @@
1
- import Style from './style';
2
- import SourceCache from '../source/source_cache';
3
- import StyleLayer from './style_layer';
4
- import Transform from '../geo/transform';
1
+ import {Style} from './style';
2
+ import {SourceCache} from '../source/source_cache';
3
+ import {StyleLayer} from './style_layer';
4
+ import {Transform} from '../geo/transform';
5
5
  import {extend} from '../util/util';
6
6
  import {RequestManager} from '../util/request_manager';
7
7
  import {Event, Evented} from '../util/evented';
@@ -11,14 +11,14 @@ import {
11
11
  clearRTLTextPlugin,
12
12
  evented as rtlTextPluginEvented
13
13
  } from '../source/rtl_text_plugin';
14
- import browser from '../util/browser';
14
+ import {browser} from '../util/browser';
15
15
  import {OverscaledTileID} from '../source/tile_id';
16
16
  import {fakeXhr, fakeServer} from 'nise';
17
17
 
18
- import EvaluationParameters from './evaluation_parameters';
18
+ import {EvaluationParameters} from './evaluation_parameters';
19
19
  import {LayerSpecification, GeoJSONSourceSpecification, FilterSpecification, SourceSpecification} from '@maplibre/maplibre-gl-style-spec';
20
20
  import {SourceClass} from '../source/source';
21
- import GeoJSONSource from '../source/geojson_source';
21
+ import {GeoJSONSource} from '../source/geojson_source';
22
22
 
23
23
  function createStyleJSON(properties?) {
24
24
  return extend({
@@ -224,6 +224,16 @@ describe('Style#loadURL', () => {
224
224
  });
225
225
 
226
226
  describe('Style#loadJSON', () => {
227
+ test('serialize() returns undefined until style is loaded', done => {
228
+ const style = new Style(getStubMap());
229
+ style.loadJSON(createStyleJSON());
230
+ expect(style.serialize()).toBeUndefined();
231
+ style.on('style.load', () => {
232
+ expect(style.serialize()).toEqual(createStyleJSON());
233
+ done();
234
+ });
235
+ });
236
+
227
237
  test('fires "dataloading" (synchronously)', () => {
228
238
  const style = new Style(getStubMap());
229
239
  const spy = jest.fn();
@@ -2496,13 +2506,6 @@ describe('Style#query*Features', () => {
2496
2506
  });
2497
2507
 
2498
2508
  describe('Style#addSourceType', () => {
2499
- const _types = {'existing' () {}};
2500
-
2501
- jest.spyOn(Style, 'getSourceType').mockImplementation(name => _types[name]);
2502
- jest.spyOn(Style, 'setSourceType').mockImplementation((name, create) => {
2503
- _types[name] = create;
2504
- });
2505
-
2506
2509
  test('adds factory function', done => {
2507
2510
  const style = new Style(getStubMap());
2508
2511
  const sourceType = function () {} as any as SourceClass;
@@ -2514,8 +2517,9 @@ describe('Style#addSourceType', () => {
2514
2517
  }
2515
2518
  };
2516
2519
 
2517
- style.addSourceType('foo', sourceType, () => {
2518
- expect(_types['foo']).toBe(sourceType);
2520
+ style.addSourceType('foo', sourceType, (arg1, arg2) => {
2521
+ expect(arg1).toBeNull();
2522
+ expect(arg2).toBeNull();
2519
2523
  done();
2520
2524
  });
2521
2525
  });
@@ -2525,9 +2529,8 @@ describe('Style#addSourceType', () => {
2525
2529
  const sourceType = function () {} as any as SourceClass;
2526
2530
  sourceType.workerSourceURL = 'worker-source.js' as any as URL;
2527
2531
 
2528
- style.dispatcher.broadcast = function (type, params) {
2532
+ style.dispatcher.broadcast = (type, params) => {
2529
2533
  if (type === 'loadWorkerSource') {
2530
- expect(_types['bar']).toBe(sourceType);
2531
2534
  expect(params['name']).toBe('bar');
2532
2535
  expect(params['url']).toBe('worker-source.js');
2533
2536
  done();
@@ -2540,7 +2543,7 @@ describe('Style#addSourceType', () => {
2540
2543
  test('refuses to add new type over existing name', done => {
2541
2544
  const style = new Style(getStubMap());
2542
2545
  const sourceType = function () {} as any as SourceClass;
2543
- style.addSourceType('existing', sourceType, (err) => {
2546
+ style.addSourceType('canvas', sourceType, (err) => {
2544
2547
  expect(err).toBeTruthy();
2545
2548
  done();
2546
2549
  });