maplibre-gl 2.1.1 → 2.1.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 (305) hide show
  1. package/build/{banner.js → banner.ts} +1 -1
  2. package/build/generate-query-test-fixtures.ts +123 -0
  3. package/build/generate-shaders.ts +35 -0
  4. package/build/generate-struct-arrays.ts +7 -7
  5. package/build/generate-style-code.ts +8 -8
  6. package/build/generate-style-spec.ts +5 -4
  7. package/build/generate-typings.ts +16 -0
  8. package/build/readme.md +8 -18
  9. package/build/release-notes.js +9 -13
  10. package/build/{rollup_plugin_minify_style_spec.js → rollup_plugin_minify_style_spec.ts} +4 -3
  11. package/build/{rollup_plugins.js → rollup_plugins.ts} +11 -26
  12. package/dist/maplibre-gl-dev.js +522 -226
  13. package/dist/maplibre-gl.css +1 -1
  14. package/dist/maplibre-gl.d.ts +1536 -1010
  15. package/dist/maplibre-gl.js +3 -3
  16. package/dist/maplibre-gl.js.map +1 -1
  17. package/package.json +40 -61
  18. package/src/data/{array_types.ts → array_types.g.ts} +0 -0
  19. package/src/data/bucket/circle_bucket.ts +1 -1
  20. package/src/data/bucket/fill_bucket.test.ts +1 -1
  21. package/src/data/bucket/fill_bucket.ts +4 -4
  22. package/src/data/bucket/fill_extrusion_bucket.ts +1 -1
  23. package/src/data/bucket/line_bucket.test.ts +1 -1
  24. package/src/data/bucket/line_bucket.ts +6 -6
  25. package/src/data/bucket/symbol_bucket.test.ts +16 -16
  26. package/src/data/bucket/symbol_bucket.ts +53 -53
  27. package/src/data/bucket.ts +43 -43
  28. package/src/data/dem_data.ts +12 -12
  29. package/src/data/evaluation_feature.ts +10 -10
  30. package/src/data/feature_index.ts +37 -37
  31. package/src/data/feature_position_map.ts +5 -5
  32. package/src/data/index_array_type.ts +1 -1
  33. package/src/data/load_geometry.test.ts +1 -1
  34. package/src/data/program_configuration.ts +46 -46
  35. package/src/data/segment.ts +14 -14
  36. package/src/geo/edge_insets.ts +2 -2
  37. package/src/geo/lng_lat.ts +4 -4
  38. package/src/geo/lng_lat_bounds.ts +35 -35
  39. package/src/geo/mercator_coordinate.ts +5 -5
  40. package/src/geo/transform.test.ts +1 -1
  41. package/src/geo/transform.ts +14 -14
  42. package/src/gl/context.ts +3 -3
  43. package/src/gl/types.ts +19 -19
  44. package/src/gl/value.ts +6 -6
  45. package/src/gl/vertex_buffer.test.ts +1 -1
  46. package/src/index.ts +24 -9
  47. package/src/render/draw_circle.ts +8 -8
  48. package/src/render/draw_collision_debug.ts +5 -5
  49. package/src/render/draw_line.ts +4 -4
  50. package/src/render/draw_symbol.ts +21 -21
  51. package/src/render/glyph_atlas.ts +12 -12
  52. package/src/render/glyph_manager.test.ts +10 -21
  53. package/src/render/glyph_manager.ts +33 -32
  54. package/src/render/image_manager.ts +4 -4
  55. package/src/render/painter.ts +11 -11
  56. package/src/render/program/background_program.ts +29 -29
  57. package/src/render/program/circle_program.ts +10 -10
  58. package/src/render/program/clipping_mask_program.ts +1 -1
  59. package/src/render/program/collision_program.ts +9 -9
  60. package/src/render/program/debug_program.ts +4 -4
  61. package/src/render/program/fill_extrusion_program.ts +31 -31
  62. package/src/render/program/fill_program.ts +29 -29
  63. package/src/render/program/heatmap_program.ts +12 -12
  64. package/src/render/program/hillshade_program.ts +12 -12
  65. package/src/render/program/line_program.ts +38 -38
  66. package/src/render/program/pattern.ts +28 -28
  67. package/src/render/program/raster_program.ts +21 -21
  68. package/src/render/program/symbol_program.ts +96 -96
  69. package/src/render/program.ts +25 -25
  70. package/src/render/texture.ts +9 -9
  71. package/src/render/uniform_binding.ts +1 -1
  72. package/src/render/vertex_array_object.ts +13 -13
  73. package/src/shaders/_prelude.fragment.glsl.g.ts +2 -0
  74. package/src/shaders/_prelude.vertex.glsl.g.ts +2 -0
  75. package/src/shaders/background.fragment.glsl.g.ts +2 -0
  76. package/src/shaders/background.vertex.glsl.g.ts +2 -0
  77. package/src/shaders/background_pattern.fragment.glsl.g.ts +2 -0
  78. package/src/shaders/background_pattern.vertex.glsl.g.ts +2 -0
  79. package/src/shaders/circle.fragment.glsl.g.ts +2 -0
  80. package/src/shaders/circle.vertex.glsl.g.ts +2 -0
  81. package/src/shaders/clipping_mask.fragment.glsl.g.ts +2 -0
  82. package/src/shaders/clipping_mask.vertex.glsl.g.ts +2 -0
  83. package/src/shaders/collision_box.fragment.glsl.g.ts +2 -0
  84. package/src/shaders/collision_box.vertex.glsl.g.ts +2 -0
  85. package/src/shaders/collision_circle.fragment.glsl.g.ts +2 -0
  86. package/src/shaders/collision_circle.vertex.glsl.g.ts +2 -0
  87. package/src/shaders/debug.fragment.glsl.g.ts +2 -0
  88. package/src/shaders/debug.vertex.glsl.g.ts +2 -0
  89. package/src/shaders/fill.fragment.glsl.g.ts +2 -0
  90. package/src/shaders/fill.vertex.glsl.g.ts +2 -0
  91. package/src/shaders/fill_extrusion.fragment.glsl.g.ts +2 -0
  92. package/src/shaders/fill_extrusion.vertex.glsl.g.ts +2 -0
  93. package/src/shaders/fill_extrusion_pattern.fragment.glsl.g.ts +2 -0
  94. package/src/shaders/fill_extrusion_pattern.vertex.glsl.g.ts +2 -0
  95. package/src/shaders/fill_outline.fragment.glsl.g.ts +2 -0
  96. package/src/shaders/fill_outline.vertex.glsl.g.ts +2 -0
  97. package/src/shaders/fill_outline_pattern.fragment.glsl.g.ts +2 -0
  98. package/src/shaders/fill_outline_pattern.vertex.glsl.g.ts +2 -0
  99. package/src/shaders/fill_pattern.fragment.glsl.g.ts +2 -0
  100. package/src/shaders/fill_pattern.vertex.glsl.g.ts +2 -0
  101. package/src/shaders/heatmap.fragment.glsl.g.ts +2 -0
  102. package/src/shaders/heatmap.vertex.glsl.g.ts +2 -0
  103. package/src/shaders/heatmap_texture.fragment.glsl.g.ts +2 -0
  104. package/src/shaders/heatmap_texture.vertex.glsl.g.ts +2 -0
  105. package/src/shaders/hillshade.fragment.glsl.g.ts +2 -0
  106. package/src/shaders/hillshade.vertex.glsl.g.ts +2 -0
  107. package/src/shaders/hillshade_prepare.fragment.glsl.g.ts +2 -0
  108. package/src/shaders/hillshade_prepare.vertex.glsl.g.ts +2 -0
  109. package/src/shaders/line.fragment.glsl.g.ts +2 -0
  110. package/src/shaders/line.vertex.glsl.g.ts +2 -0
  111. package/src/shaders/line_gradient.fragment.glsl.g.ts +2 -0
  112. package/src/shaders/line_gradient.vertex.glsl.g.ts +2 -0
  113. package/src/shaders/line_pattern.fragment.glsl.g.ts +2 -0
  114. package/src/shaders/line_pattern.vertex.glsl.g.ts +2 -0
  115. package/src/shaders/line_sdf.fragment.glsl.g.ts +2 -0
  116. package/src/shaders/line_sdf.vertex.glsl.g.ts +2 -0
  117. package/src/shaders/raster.fragment.glsl.g.ts +2 -0
  118. package/src/shaders/raster.vertex.glsl.g.ts +2 -0
  119. package/src/shaders/shaders.ts +52 -55
  120. package/src/shaders/symbol_icon.fragment.glsl.g.ts +2 -0
  121. package/src/shaders/symbol_icon.vertex.glsl.g.ts +2 -0
  122. package/src/shaders/symbol_sdf.fragment.glsl.g.ts +2 -0
  123. package/src/shaders/symbol_sdf.vertex.glsl.g.ts +2 -0
  124. package/src/shaders/symbol_text_and_icon.fragment.glsl.g.ts +2 -0
  125. package/src/shaders/symbol_text_and_icon.vertex.glsl.g.ts +2 -0
  126. package/src/source/canvas_source.test.ts +11 -12
  127. package/src/source/canvas_source.ts +4 -4
  128. package/src/source/geojson_worker_source.ts +23 -23
  129. package/src/source/geojson_wrapper.ts +8 -8
  130. package/src/source/image_source.test.ts +2 -2
  131. package/src/source/image_source.ts +6 -6
  132. package/src/source/pixels_to_tile_units.ts +6 -6
  133. package/src/source/query_features.ts +20 -20
  134. package/src/source/raster_dem_tile_source.test.ts +2 -2
  135. package/src/source/raster_tile_source.test.ts +2 -2
  136. package/src/source/rtl_text_plugin.ts +10 -10
  137. package/src/source/source.ts +29 -29
  138. package/src/source/source_cache.test.ts +32 -0
  139. package/src/source/source_cache.ts +7 -5
  140. package/src/source/source_state.ts +1 -1
  141. package/src/source/tile.test.ts +3 -3
  142. package/src/source/tile.ts +15 -15
  143. package/src/source/tile_cache.ts +6 -6
  144. package/src/source/tile_id.test.ts +0 -1
  145. package/src/source/vector_tile_source.test.ts +3 -3
  146. package/src/source/vector_tile_source.ts +1 -1
  147. package/src/source/vector_tile_worker_source.test.ts +4 -4
  148. package/src/source/vector_tile_worker_source.ts +5 -5
  149. package/src/source/worker.test.ts +1 -1
  150. package/src/source/worker.ts +22 -22
  151. package/src/source/worker_source.ts +56 -56
  152. package/src/source/worker_tile.ts +4 -4
  153. package/src/style/evaluation_parameters.ts +3 -3
  154. package/src/style/format_section_override.test.ts +1 -1
  155. package/src/style/light.ts +10 -10
  156. package/src/style/load_glyph_range.test.ts +3 -3
  157. package/src/style/load_glyph_range.ts +6 -6
  158. package/src/style/load_sprite.ts +4 -4
  159. package/src/style/pauseable_placement.ts +1 -1
  160. package/src/style/properties.ts +69 -69
  161. package/src/style/query_utils.ts +7 -7
  162. package/src/style/style.test.ts +2 -2
  163. package/src/style/style.ts +29 -29
  164. package/src/style/style_glyph.ts +8 -8
  165. package/src/style/style_image.ts +58 -58
  166. package/src/style/style_layer/background_style_layer.ts +2 -2
  167. package/src/style/style_layer/{background_style_layer_properties.ts → background_style_layer_properties.g.ts} +0 -0
  168. package/src/style/style_layer/circle_style_layer.ts +10 -10
  169. package/src/style/style_layer/{circle_style_layer_properties.ts → circle_style_layer_properties.g.ts} +0 -0
  170. package/src/style/style_layer/custom_style_layer.ts +17 -17
  171. package/src/style/style_layer/fill_extrusion_style_layer.ts +10 -10
  172. package/src/style/style_layer/{fill_extrusion_style_layer_properties.ts → fill_extrusion_style_layer_properties.g.ts} +0 -0
  173. package/src/style/style_layer/fill_style_layer.ts +9 -9
  174. package/src/style/style_layer/{fill_style_layer_properties.ts → fill_style_layer_properties.g.ts} +0 -0
  175. package/src/style/style_layer/heatmap_style_layer.ts +2 -2
  176. package/src/style/style_layer/{heatmap_style_layer_properties.ts → heatmap_style_layer_properties.g.ts} +0 -0
  177. package/src/style/style_layer/hillshade_style_layer.ts +2 -2
  178. package/src/style/style_layer/{hillshade_style_layer_properties.ts → hillshade_style_layer_properties.g.ts} +0 -0
  179. package/src/style/style_layer/line_style_layer.ts +9 -9
  180. package/src/style/style_layer/{line_style_layer_properties.ts → line_style_layer_properties.g.ts} +0 -0
  181. package/src/style/style_layer/raster_style_layer.ts +2 -2
  182. package/src/style/style_layer/{raster_style_layer_properties.ts → raster_style_layer_properties.g.ts} +0 -0
  183. package/src/style/style_layer/symbol_style_layer.ts +7 -7
  184. package/src/style/style_layer/{symbol_style_layer_properties.ts → symbol_style_layer_properties.g.ts} +0 -0
  185. package/src/style/style_layer.ts +10 -10
  186. package/src/style/style_layer_index.ts +3 -3
  187. package/src/style/validate_style.ts +15 -15
  188. package/src/style-spec/error/validation_error.ts +1 -1
  189. package/src/style-spec/expression/compound_expression.ts +3 -3
  190. package/src/style-spec/expression/definitions/format.ts +11 -11
  191. package/src/style-spec/expression/definitions/interpolate.ts +5 -5
  192. package/src/style-spec/expression/definitions/match.ts +2 -2
  193. package/src/style-spec/expression/definitions/number_format.ts +11 -11
  194. package/src/style-spec/expression/expression.ts +8 -8
  195. package/src/style-spec/expression/index.ts +97 -97
  196. package/src/style-spec/expression/parsing_context.ts +11 -11
  197. package/src/style-spec/expression/types/collator.ts +9 -9
  198. package/src/style-spec/expression/types/resolved_image.ts +2 -2
  199. package/src/style-spec/expression/types.ts +14 -14
  200. package/src/style-spec/expression/values.ts +1 -1
  201. package/src/style-spec/feature_filter/index.ts +66 -66
  202. package/src/style-spec/function/convert.ts +3 -3
  203. package/src/style-spec/style-spec.ts +44 -44
  204. package/src/style-spec/util/color_spaces.ts +8 -8
  205. package/src/style-spec/util/result.ts +4 -4
  206. package/src/style-spec/validate/validate_filter.ts +58 -58
  207. package/src/style-spec/validate/validate_source.ts +63 -63
  208. package/src/style-spec/visit.ts +11 -11
  209. package/src/symbol/collision_feature.test.ts +1 -1
  210. package/src/symbol/collision_feature.ts +10 -10
  211. package/src/symbol/collision_index.ts +26 -26
  212. package/src/symbol/cross_tile_symbol_index.ts +17 -17
  213. package/src/symbol/get_anchors.ts +16 -16
  214. package/src/symbol/grid_index.ts +7 -7
  215. package/src/symbol/placement.ts +72 -72
  216. package/src/symbol/projection.ts +30 -30
  217. package/src/symbol/quads.ts +30 -30
  218. package/src/symbol/shaping.ts +160 -160
  219. package/src/symbol/symbol_layout.ts +119 -119
  220. package/src/symbol/symbol_size.ts +29 -29
  221. package/src/symbol/symbol_style_layer.test.ts +1 -1
  222. package/src/types/cancelable.ts +1 -1
  223. package/src/types/tilejson.ts +13 -13
  224. package/src/ui/anchor.ts +1 -1
  225. package/src/ui/camera.test.ts +5 -5
  226. package/src/ui/camera.ts +18 -18
  227. package/src/ui/control/attribution_control.test.ts +51 -16
  228. package/src/ui/control/attribution_control.ts +35 -16
  229. package/src/ui/control/control.ts +40 -40
  230. package/src/ui/control/fullscreen_control.ts +1 -1
  231. package/src/ui/control/geolocate_control.test.ts +1 -1
  232. package/src/ui/control/geolocate_control.ts +102 -102
  233. package/src/ui/control/logo_control.test.ts +4 -4
  234. package/src/ui/control/navigation_control.ts +3 -3
  235. package/src/ui/control/scale_control.test.ts +2 -2
  236. package/src/ui/control/scale_control.ts +5 -5
  237. package/src/ui/events.ts +289 -200
  238. package/src/ui/handler/box_zoom.test.ts +1 -1
  239. package/src/ui/handler/box_zoom.ts +1 -1
  240. package/src/ui/handler/dblclick_zoom.test.ts +1 -1
  241. package/src/ui/handler/drag_pan.test.ts +1 -1
  242. package/src/ui/handler/drag_rotate.test.ts +1 -1
  243. package/src/ui/handler/keyboard.test.ts +1 -1
  244. package/src/ui/handler/keyboard.ts +51 -51
  245. package/src/ui/handler/map_event.test.ts +1 -1
  246. package/src/ui/handler/map_event.ts +1 -1
  247. package/src/ui/handler/mouse.ts +1 -1
  248. package/src/ui/handler/mouse_rotate.test.ts +1 -1
  249. package/src/ui/handler/scroll_zoom.test.ts +1 -1
  250. package/src/ui/handler/scroll_zoom.ts +9 -9
  251. package/src/ui/handler/shim/drag_pan.ts +4 -4
  252. package/src/ui/handler/shim/drag_rotate.ts +1 -1
  253. package/src/ui/handler/shim/touch_zoom_rotate.ts +1 -1
  254. package/src/ui/handler/tap_recognizer.ts +4 -4
  255. package/src/ui/handler/touch_pan.ts +2 -2
  256. package/src/ui/handler/touch_zoom_rotate.test.ts +1 -1
  257. package/src/ui/handler/touch_zoom_rotate.ts +1 -1
  258. package/src/ui/handler_inertia.ts +6 -6
  259. package/src/ui/handler_manager.ts +44 -44
  260. package/src/ui/map/isMoving.test.ts +1 -1
  261. package/src/ui/map/isRotating.test.ts +1 -1
  262. package/src/ui/map/isZooming.test.ts +1 -1
  263. package/src/ui/map.test.ts +10 -4
  264. package/src/ui/map.ts +106 -101
  265. package/src/ui/map_events.test.ts +1 -1
  266. package/src/ui/marker.test.ts +12 -12
  267. package/src/ui/marker.ts +37 -37
  268. package/src/ui/popup.test.ts +7 -7
  269. package/src/ui/popup.ts +9 -9
  270. package/src/util/actor.test.ts +41 -10
  271. package/src/util/actor.ts +8 -8
  272. package/src/util/ajax.test.ts +29 -21
  273. package/src/util/ajax.ts +51 -30
  274. package/src/util/browser.ts +1 -1
  275. package/src/util/classify_rings.test.ts +1 -1
  276. package/src/util/color_ramp.ts +5 -5
  277. package/src/util/config.ts +2 -2
  278. package/src/util/dispatcher.ts +1 -1
  279. package/src/util/dom.ts +2 -2
  280. package/src/util/evented.ts +1 -1
  281. package/src/util/find_pole_of_inaccessibility.ts +3 -3
  282. package/src/util/image.ts +5 -5
  283. package/src/util/performance.ts +7 -7
  284. package/src/util/request_manager.ts +4 -4
  285. package/src/util/resolve_tokens.ts +4 -4
  286. package/src/util/struct_array.test.ts +1 -1
  287. package/src/util/struct_array.ts +15 -15
  288. package/src/util/task_queue.ts +3 -3
  289. package/src/util/tile_request_cache.ts +3 -3
  290. package/src/util/transferable_grid_index.ts +4 -4
  291. package/src/util/util.ts +8 -8
  292. package/src/util/web_worker.ts +4 -68
  293. package/src/util/web_worker_transfer.test.ts +3 -0
  294. package/src/util/web_worker_transfer.ts +21 -17
  295. package/src/util/worker_pool.ts +1 -1
  296. package/build/.eslintrc +0 -21
  297. package/build/glsl_to_js.js +0 -12
  298. package/build/post-ts-build.js +0 -43
  299. package/build/release-notes.md.ejs +0 -8
  300. package/build/test/build-tape.js +0 -17
  301. package/build/web_worker_replacement.js +0 -5
  302. package/dist/package.json +0 -1
  303. package/src/style-spec/validate_spec.test.ts +0 -29
  304. package/src/symbol/shaping.test.ts +0 -392
  305. package/src/types/glsl.d.ts +0 -4
@@ -1,4 +1,4 @@
1
- import type {CollisionBoxArray} from './array_types';
1
+ import type {CollisionBoxArray} from './array_types.g';
2
2
  import type Style from '../style/style';
3
3
  import type {TypedStyleLayer} from '../style/style_layer/typed_style_layer';
4
4
  import type FeatureIndex from './feature_index';
@@ -10,46 +10,46 @@ import type {VectorTileFeature, VectorTileLayer} from '@mapbox/vector-tile';
10
10
  import Point from '@mapbox/point-geometry';
11
11
 
12
12
  export type BucketParameters<Layer extends TypedStyleLayer> = {
13
- index: number;
14
- layers: Array<Layer>;
15
- zoom: number;
16
- pixelRatio: number;
17
- overscaling: number;
18
- collisionBoxArray: CollisionBoxArray;
19
- sourceLayerIndex: number;
20
- sourceID: string;
13
+ index: number;
14
+ layers: Array<Layer>;
15
+ zoom: number;
16
+ pixelRatio: number;
17
+ overscaling: number;
18
+ collisionBoxArray: CollisionBoxArray;
19
+ sourceLayerIndex: number;
20
+ sourceID: string;
21
21
  };
22
22
 
23
23
  export type PopulateParameters = {
24
- featureIndex: FeatureIndex;
25
- iconDependencies: {};
26
- patternDependencies: {};
27
- glyphDependencies: {};
28
- availableImages: Array<string>;
24
+ featureIndex: FeatureIndex;
25
+ iconDependencies: {};
26
+ patternDependencies: {};
27
+ glyphDependencies: {};
28
+ availableImages: Array<string>;
29
29
  };
30
30
 
31
31
  export type IndexedFeature = {
32
- feature: VectorTileFeature;
33
- id: number | string;
34
- index: number;
35
- sourceLayerIndex: number;
32
+ feature: VectorTileFeature;
33
+ id: number | string;
34
+ index: number;
35
+ sourceLayerIndex: number;
36
36
  };
37
37
 
38
38
  export type BucketFeature = {
39
- index: number;
40
- sourceLayerIndex: number;
41
- geometry: Array<Array<Point>>;
42
- properties: any;
43
- type: 1 | 2 | 3;
44
- id?: any;
45
- readonly patterns: {
46
- [_: string]: {
47
- 'min': string;
48
- 'mid': string;
49
- 'max': string;
39
+ index: number;
40
+ sourceLayerIndex: number;
41
+ geometry: Array<Array<Point>>;
42
+ properties: any;
43
+ type: 1 | 2 | 3;
44
+ id?: any;
45
+ readonly patterns: {
46
+ [_: string]: {
47
+ 'min': string;
48
+ 'mid': string;
49
+ 'max': string;
50
+ };
50
51
  };
51
- };
52
- sortKey?: number;
52
+ sortKey?: number;
53
53
  };
54
54
 
55
55
  /**
@@ -76,24 +76,24 @@ export type BucketFeature = {
76
76
  * @private
77
77
  */
78
78
  export interface Bucket {
79
- layerIds: Array<string>;
80
- hasPattern: boolean;
81
- readonly layers: Array<any>;
82
- readonly stateDependentLayers: Array<any>;
83
- readonly stateDependentLayerIds: Array<string>;
84
- populate(features: Array<IndexedFeature>, options: PopulateParameters, canonical: CanonicalTileID): void;
85
- update(states: FeatureStates, vtLayer: VectorTileLayer, imagePositions: {[_: string]: ImagePosition}): void;
86
- isEmpty(): boolean;
87
- upload(context: Context): void;
88
- uploadPending(): boolean;
89
- /**
79
+ layerIds: Array<string>;
80
+ hasPattern: boolean;
81
+ readonly layers: Array<any>;
82
+ readonly stateDependentLayers: Array<any>;
83
+ readonly stateDependentLayerIds: Array<string>;
84
+ populate(features: Array<IndexedFeature>, options: PopulateParameters, canonical: CanonicalTileID): void;
85
+ update(states: FeatureStates, vtLayer: VectorTileLayer, imagePositions: {[_: string]: ImagePosition}): void;
86
+ isEmpty(): boolean;
87
+ upload(context: Context): void;
88
+ uploadPending(): boolean;
89
+ /**
90
90
  * Release the WebGL resources associated with the buffers. Note that because
91
91
  * buckets are shared between layers having the same layout properties, they
92
92
  * must be destroyed in groups (all buckets for a tile, or all symbol buckets).
93
93
  *
94
94
  * @private
95
95
  */
96
- destroy(): void;
96
+ destroy(): void;
97
97
  }
98
98
 
99
99
  export function deserialize(input: Array<Bucket>, style: Style): {[_: string]: Bucket} {
@@ -95,21 +95,21 @@ export default class DEMData {
95
95
  yMax = dy * this.dim + this.dim;
96
96
 
97
97
  switch (dx) {
98
- case -1:
99
- xMin = xMax - 1;
100
- break;
101
- case 1:
102
- xMax = xMin + 1;
103
- break;
98
+ case -1:
99
+ xMin = xMax - 1;
100
+ break;
101
+ case 1:
102
+ xMax = xMin + 1;
103
+ break;
104
104
  }
105
105
 
106
106
  switch (dy) {
107
- case -1:
108
- yMin = yMax - 1;
109
- break;
110
- case 1:
111
- yMax = yMin + 1;
112
- break;
107
+ case -1:
108
+ yMin = yMax - 1;
109
+ break;
110
+ case 1:
111
+ yMax = yMin + 1;
112
+ break;
113
113
  }
114
114
 
115
115
  const ox = -dx * this.dim;
@@ -3,17 +3,17 @@ import type Point from '@mapbox/point-geometry';
3
3
  import type {VectorTileFeature} from '@mapbox/vector-tile';
4
4
 
5
5
  type EvaluationFeature = {
6
- readonly type: 1 | 2 | 3 | 'Unknown' | 'Point' | 'MultiPoint' | 'LineString' | 'MultiLineString' | 'Polygon' | 'MultiPolygon';
7
- readonly id?: any;
8
- readonly properties: {[_: string]: any};
9
- readonly patterns?: {
10
- [_: string]: {
11
- 'min': string;
12
- 'mid': string;
13
- 'max': string;
6
+ readonly type: 1 | 2 | 3 | 'Unknown' | 'Point' | 'MultiPoint' | 'LineString' | 'MultiLineString' | 'Polygon' | 'MultiPolygon';
7
+ readonly id?: any;
8
+ readonly properties: {[_: string]: any};
9
+ readonly patterns?: {
10
+ [_: string]: {
11
+ 'min': string;
12
+ 'mid': string;
13
+ 'max': string;
14
+ };
14
15
  };
15
- };
16
- geometry: Array<Array<Point>>;
16
+ geometry: Array<Array<Point>>;
17
17
  };
18
18
 
19
19
  /**
@@ -15,7 +15,7 @@ import EvaluationParameters from '../style/evaluation_parameters';
15
15
  import SourceFeatureState from '../source/source_state';
16
16
  import {polygonIntersectsBox} from '../util/intersection_tests';
17
17
  import {PossiblyEvaluated} from '../style/properties';
18
- import {FeatureIndexArray} from './array_types';
18
+ import {FeatureIndexArray} from './array_types.g';
19
19
  import {mat4} from 'gl-matrix';
20
20
 
21
21
  import type StyleLayer from '../style/style_layer';
@@ -26,18 +26,18 @@ import type {FeatureState} from '../style-spec/expression';
26
26
  import type {VectorTileFeature, VectorTileLayer} from '@mapbox/vector-tile';
27
27
 
28
28
  type QueryParameters = {
29
- scale: number;
30
- pixelPosMatrix: mat4;
31
- transform: Transform;
32
- tileSize: number;
33
- queryGeometry: Array<Point>;
34
- cameraQueryGeometry: Array<Point>;
35
- queryPadding: number;
36
- params: {
37
- filter: FilterSpecification;
38
- layers: Array<string>;
39
- availableImages: Array<string>;
40
- };
29
+ scale: number;
30
+ pixelPosMatrix: mat4;
31
+ transform: Transform;
32
+ tileSize: number;
33
+ queryGeometry: Array<Point>;
34
+ cameraQueryGeometry: Array<Point>;
35
+ queryPadding: number;
36
+ params: {
37
+ filter: FilterSpecification;
38
+ layers: Array<string>;
39
+ availableImages: Array<string>;
40
+ };
41
41
  };
42
42
 
43
43
  class FeatureIndex {
@@ -104,10 +104,10 @@ class FeatureIndex {
104
104
 
105
105
  // Finds non-symbol features in this tile at a particular position.
106
106
  query(
107
- args: QueryParameters,
108
- styleLayers: {[_: string]: StyleLayer},
109
- serializedLayers: {[_: string]: any},
110
- sourceFeatureState: SourceFeatureState
107
+ args: QueryParameters,
108
+ styleLayers: {[_: string]: StyleLayer},
109
+ serializedLayers: {[_: string]: any},
110
+ sourceFeatureState: SourceFeatureState
111
111
  ): {[_: string]: Array<{featureIndex: number; feature: GeoJSONFeature}>} {
112
112
  this.loadVTLayers();
113
113
 
@@ -123,10 +123,10 @@ class FeatureIndex {
123
123
 
124
124
  const cameraBounds = getBounds(args.cameraQueryGeometry);
125
125
  const matching3D = this.grid3D.query(
126
- cameraBounds.minX - queryPadding, cameraBounds.minY - queryPadding, cameraBounds.maxX + queryPadding, cameraBounds.maxY + queryPadding,
127
- (bx1, by1, bx2, by2) => {
128
- return polygonIntersectsBox(args.cameraQueryGeometry, bx1 - queryPadding, by1 - queryPadding, bx2 + queryPadding, by2 + queryPadding);
129
- });
126
+ cameraBounds.minX - queryPadding, cameraBounds.minY - queryPadding, cameraBounds.maxX + queryPadding, cameraBounds.maxY + queryPadding,
127
+ (bx1, by1, bx2, by2) => {
128
+ return polygonIntersectsBox(args.cameraQueryGeometry, bx1 - queryPadding, by1 - queryPadding, bx2 + queryPadding, by2 + queryPadding);
129
+ });
130
130
 
131
131
  for (const key of matching3D) {
132
132
  matching.push(key);
@@ -171,11 +171,11 @@ class FeatureIndex {
171
171
 
172
172
  loadMatchingFeature(
173
173
  result: {
174
- [_: string]: Array<{
175
- featureIndex: number;
176
- feature: GeoJSONFeature;
177
- intersectionZ?: boolean | number;
178
- }>;
174
+ [_: string]: Array<{
175
+ featureIndex: number;
176
+ feature: GeoJSONFeature;
177
+ intersectionZ?: boolean | number;
178
+ }>;
179
179
  },
180
180
  bucketIndex: number,
181
181
  sourceLayerIndex: number,
@@ -187,10 +187,10 @@ class FeatureIndex {
187
187
  serializedLayers: {[_: string]: any},
188
188
  sourceFeatureState?: SourceFeatureState,
189
189
  intersectionTest?: (
190
- feature: VectorTileFeature,
191
- styleLayer: StyleLayer,
192
- featureState: any,
193
- id: string | number | void
190
+ feature: VectorTileFeature,
191
+ styleLayer: StyleLayer,
192
+ featureState: any,
193
+ id: string | number | void
194
194
  ) => boolean | number) {
195
195
 
196
196
  const layerIDs = this.bucketLayerIDs[bucketIndex];
@@ -253,13 +253,13 @@ class FeatureIndex {
253
253
  // Given a set of symbol indexes that have already been looked up,
254
254
  // return a matching set of GeoJSONFeatures
255
255
  lookupSymbolFeatures(symbolFeatureIndexes: Array<number>,
256
- serializedLayers: {[_: string]: StyleLayer},
257
- bucketIndex: number,
258
- sourceLayerIndex: number,
259
- filterSpec: FilterSpecification,
260
- filterLayerIDs: Array<string>,
261
- availableImages: Array<string>,
262
- styleLayers: {[_: string]: StyleLayer}) {
256
+ serializedLayers: {[_: string]: StyleLayer},
257
+ bucketIndex: number,
258
+ sourceLayerIndex: number,
259
+ filterSpec: FilterSpecification,
260
+ filterLayerIDs: Array<string>,
261
+ availableImages: Array<string>,
262
+ styleLayers: {[_: string]: StyleLayer}) {
263
263
  const result = {};
264
264
  this.loadVTLayers();
265
265
 
@@ -3,14 +3,14 @@ import {register} from '../util/web_worker_transfer';
3
3
  import assert from 'assert';
4
4
 
5
5
  type SerializedFeaturePositionMap = {
6
- ids: Float64Array;
7
- positions: Uint32Array;
6
+ ids: Float64Array;
7
+ positions: Uint32Array;
8
8
  };
9
9
 
10
10
  type FeaturePosition = {
11
- index: number;
12
- start: number;
13
- end: number;
11
+ index: number;
12
+ start: number;
13
+ end: number;
14
14
  };
15
15
 
16
16
  // A transferable data structure that maps feature ids to their indices and buffer offsets
@@ -1,4 +1,4 @@
1
- import {LineIndexArray, TriangleIndexArray, LineStripIndexArray} from './array_types';
1
+ import {LineIndexArray, TriangleIndexArray, LineStripIndexArray} from './array_types.g';
2
2
 
3
3
  /**
4
4
  * An index array stores Uint16 indices of vertexes in a corresponding vertex array. We use
@@ -5,7 +5,7 @@ import {VectorTile} from '@mapbox/vector-tile';
5
5
  import loadGeometry from './load_geometry';
6
6
 
7
7
  // Load a line feature from fixture tile.
8
- const vt = new VectorTile(new Protobuf(fs.readFileSync(path.resolve(__dirname, '../../test/fixtures/mbsv5-6-18-23.vector.pbf'))));
8
+ const vt = new VectorTile(new Protobuf(fs.readFileSync(path.resolve(__dirname, '../../test/unit/assets/mbsv5-6-18-23.vector.pbf'))));
9
9
 
10
10
  describe('loadGeometry', () => {
11
11
  test('loadGeometry', () => {
@@ -3,7 +3,7 @@ import Color from '../style-spec/util/color';
3
3
  import {supportsPropertyExpression} from '../style-spec/util/properties';
4
4
  import {register} from '../util/web_worker_transfer';
5
5
  import {PossiblyEvaluatedPropertyValue} from '../style/properties';
6
- import {StructArrayLayout1f4, StructArrayLayout2f8, StructArrayLayout4f16, PatternLayoutArray} from './array_types';
6
+ import {StructArrayLayout1f4, StructArrayLayout2f8, StructArrayLayout4f16, PatternLayoutArray} from './array_types.g';
7
7
  import {clamp} from '../util/util';
8
8
  import patternAttributes from './bucket/pattern_attributes';
9
9
  import EvaluationParameters from '../style/evaluation_parameters';
@@ -31,9 +31,9 @@ import type {FormattedSection} from '../style-spec/expression/types/formatted';
31
31
  import type {VectorTileLayer} from '@mapbox/vector-tile';
32
32
 
33
33
  export type BinderUniform = {
34
- name: string;
35
- property: string;
36
- binding: Uniform<any>;
34
+ name: string;
35
+ property: string;
36
+ binding: Uniform<any>;
37
37
  };
38
38
 
39
39
  function packColor(color: Color): [number, number] {
@@ -72,33 +72,33 @@ function packColor(color: Color): [number, number] {
72
72
  */
73
73
 
74
74
  interface AttributeBinder {
75
- populatePaintArray(
76
- length: number,
77
- feature: Feature,
78
- imagePositions: {[_: string]: ImagePosition},
79
- canonical?: CanonicalTileID,
80
- formattedSection?: FormattedSection
81
- ): void;
82
- updatePaintArray(
83
- start: number,
84
- length: number,
85
- feature: Feature,
86
- featureState: FeatureState,
87
- imagePositions: {[_: string]: ImagePosition}
88
- ): void;
89
- upload(a: Context): void;
90
- destroy(): void;
75
+ populatePaintArray(
76
+ length: number,
77
+ feature: Feature,
78
+ imagePositions: {[_: string]: ImagePosition},
79
+ canonical?: CanonicalTileID,
80
+ formattedSection?: FormattedSection
81
+ ): void;
82
+ updatePaintArray(
83
+ start: number,
84
+ length: number,
85
+ feature: Feature,
86
+ featureState: FeatureState,
87
+ imagePositions: {[_: string]: ImagePosition}
88
+ ): void;
89
+ upload(a: Context): void;
90
+ destroy(): void;
91
91
  }
92
92
 
93
93
  interface UniformBinder {
94
- uniformNames: Array<string>;
95
- setUniform(
96
- uniform: Uniform<any>,
97
- globals: GlobalProperties,
98
- currentValue: PossiblyEvaluatedPropertyValue<any>,
99
- uniformName: string
100
- ): void;
101
- getBinding(context: Context, location: WebGLUniformLocation, name: string): Partial<Uniform<any>>;
94
+ uniformNames: Array<string>;
95
+ setUniform(
96
+ uniform: Uniform<any>,
97
+ globals: GlobalProperties,
98
+ currentValue: PossiblyEvaluatedPropertyValue<any>,
99
+ uniformName: string
100
+ ): void;
101
+ getBinding(context: Context, location: WebGLUniformLocation, name: string): Partial<Uniform<any>>;
102
102
  }
103
103
 
104
104
  class ConstantBinder implements UniformBinder {
@@ -113,9 +113,9 @@ class ConstantBinder implements UniformBinder {
113
113
  }
114
114
 
115
115
  setUniform(
116
- uniform: Uniform<any>,
117
- globals: GlobalProperties,
118
- currentValue: PossiblyEvaluatedPropertyValue<unknown>
116
+ uniform: Uniform<any>,
117
+ globals: GlobalProperties,
118
+ currentValue: PossiblyEvaluatedPropertyValue<unknown>
119
119
  ): void {
120
120
  uniform.set(currentValue.constantOr(this.value));
121
121
  }
@@ -152,9 +152,9 @@ class CrossFadedConstantBinder implements UniformBinder {
152
152
  setUniform(uniform: Uniform<any>, globals: GlobalProperties, currentValue: PossiblyEvaluatedPropertyValue<unknown>, uniformName: string) {
153
153
  const pos =
154
154
  uniformName === 'u_pattern_to' ? this.patternTo :
155
- uniformName === 'u_pattern_from' ? this.patternFrom :
156
- uniformName === 'u_pixel_ratio_to' ? this.pixelRatioTo :
157
- uniformName === 'u_pixel_ratio_from' ? this.pixelRatioFrom : null;
155
+ uniformName === 'u_pattern_from' ? this.patternFrom :
156
+ uniformName === 'u_pixel_ratio_to' ? this.pixelRatioTo :
157
+ uniformName === 'u_pixel_ratio_from' ? this.pixelRatioFrom : null;
158
158
  if (pos) uniform.set(pos);
159
159
  }
160
160
 
@@ -175,7 +175,7 @@ class SourceExpressionBinder implements AttributeBinder {
175
175
  paintVertexBuffer: VertexBuffer;
176
176
 
177
177
  constructor(expression: SourceExpression, names: Array<string>, type: string, PaintVertexArray: {
178
- new (...args: any): StructArray;
178
+ new (...args: any): StructArray;
179
179
  }) {
180
180
  this.expression = expression;
181
181
  this.type = type;
@@ -245,7 +245,7 @@ class CompositeExpressionBinder implements AttributeBinder, UniformBinder {
245
245
  paintVertexBuffer: VertexBuffer;
246
246
 
247
247
  constructor(expression: CompositeExpression, names: Array<string>, type: string, useIntegerZoom: boolean, zoom: number, PaintVertexArray: {
248
- new (...args: any): StructArray;
248
+ new (...args: any): StructArray;
249
249
  }) {
250
250
  this.expression = expression;
251
251
  this.uniformNames = names.map(name => `u_${name}_t`);
@@ -332,7 +332,7 @@ class CrossFadedCompositeBinder implements AttributeBinder {
332
332
  paintVertexAttributes: Array<StructArrayMember>;
333
333
 
334
334
  constructor(expression: CompositeExpression, type: string, useIntegerZoom: boolean, zoom: number, PaintVertexArray: {
335
- new (...args: any): StructArray;
335
+ new (...args: any): StructArray;
336
336
  }, layerId: string) {
337
337
  this.expression = expression;
338
338
  this.type = type;
@@ -485,11 +485,11 @@ export default class ProgramConfiguration {
485
485
  }
486
486
 
487
487
  updatePaintArrays(
488
- featureStates: FeatureStates,
489
- featureMap: FeaturePositionMap,
490
- vtLayer: VectorTileLayer,
491
- layer: TypedStyleLayer,
492
- imagePositions: {[_: string]: ImagePosition}
488
+ featureStates: FeatureStates,
489
+ featureMap: FeaturePositionMap,
490
+ vtLayer: VectorTileLayer,
491
+ layer: TypedStyleLayer,
492
+ imagePositions: {[_: string]: ImagePosition}
493
493
  ): boolean {
494
494
  let dirty: boolean = false;
495
495
  for (const id in featureStates) {
@@ -576,10 +576,10 @@ export default class ProgramConfiguration {
576
576
  }
577
577
 
578
578
  setUniforms(
579
- context: Context,
580
- binderUniforms: Array<BinderUniform>,
581
- properties: any,
582
- globals: GlobalProperties
579
+ context: Context,
580
+ binderUniforms: Array<BinderUniform>,
581
+ properties: any,
582
+ globals: GlobalProperties
583
583
  ) {
584
584
  // Uniform state bindings are owned by the Program, but we set them
585
585
  // from within the ProgramConfiguraton's binder members.
@@ -6,12 +6,12 @@ import type VertexArrayObject from '../render/vertex_array_object';
6
6
  import type {StructArray} from '../util/struct_array';
7
7
 
8
8
  export type Segment = {
9
- sortKey?: number;
10
- vertexOffset: number;
11
- primitiveOffset: number;
12
- vertexLength: number;
13
- primitiveLength: number;
14
- vaos: {[_: string]: VertexArrayObject};
9
+ sortKey?: number;
10
+ vertexOffset: number;
11
+ primitiveOffset: number;
12
+ vertexLength: number;
13
+ primitiveLength: number;
14
+ vaos: {[_: string]: VertexArrayObject};
15
15
  };
16
16
 
17
17
  class SegmentVector {
@@ -23,10 +23,10 @@ class SegmentVector {
23
23
  }
24
24
 
25
25
  prepareSegment(
26
- numVertices: number,
27
- layoutVertexArray: StructArray,
28
- indexArray: StructArray,
29
- sortKey?: number
26
+ numVertices: number,
27
+ layoutVertexArray: StructArray,
28
+ indexArray: StructArray,
29
+ sortKey?: number
30
30
  ): Segment {
31
31
  let segment: Segment = this.segments[this.segments.length - 1];
32
32
  if (numVertices > SegmentVector.MAX_VERTEX_ARRAY_LENGTH) warnOnce(`Max vertices per segment is ${SegmentVector.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${numVertices}`);
@@ -56,10 +56,10 @@ class SegmentVector {
56
56
  }
57
57
 
58
58
  static simpleSegment(
59
- vertexOffset: number,
60
- primitiveOffset: number,
61
- vertexLength: number,
62
- primitiveLength: number
59
+ vertexOffset: number,
60
+ primitiveOffset: number,
61
+ vertexLength: number,
62
+ primitiveLength: number
63
63
  ): SegmentVector {
64
64
  return new SegmentVector([{
65
65
  vertexOffset,
@@ -116,8 +116,8 @@ class EdgeInsets {
116
116
  */
117
117
  export type PaddingOptions = {
118
118
  /**
119
- * @property {number} top Padding in pixels from the top of the map canvas.
120
- */
119
+ * @property {number} top Padding in pixels from the top of the map canvas.
120
+ */
121
121
  top: number;
122
122
  /**
123
123
  * @property {number} bottom Padding in pixels from the bottom of the map canvas.
@@ -161,11 +161,11 @@ class LngLat {
161
161
  * var v3 = {lon: -122.420679, lat: 37.772537};
162
162
  */
163
163
  export type LngLatLike = LngLat | {
164
- lng: number;
165
- lat: number;
164
+ lng: number;
165
+ lat: number;
166
166
  } | {
167
- lon: number;
168
- lat: number;
167
+ lon: number;
168
+ lat: number;
169
169
  } | [number, number];
170
170
 
171
171
  export default LngLat;