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,6 +1,6 @@
1
1
  import Map from '../map';
2
2
  import DOM from '../../util/dom';
3
- import simulate from '../../../test/util/simulate_interaction';
3
+ import simulate from '../../../test/unit/lib/simulate_interaction';
4
4
  import {setWebGlContext, setPerformance, setMatchMedia} from '../../util/test/util';
5
5
 
6
6
  function createMap(clickTolerance) {
@@ -24,7 +24,7 @@ class BoxZoomHandler {
24
24
  * @private
25
25
  */
26
26
  constructor(map: Map, options: {
27
- clickTolerance: number;
27
+ clickTolerance: number;
28
28
  }) {
29
29
  this._map = map;
30
30
  this._el = map.getCanvasContainer();
@@ -1,4 +1,4 @@
1
- import simulate from '../../../test/util/simulate_interaction';
1
+ import simulate from '../../../test/unit/lib/simulate_interaction';
2
2
  import {setMatchMedia, setPerformance, setWebGlContext} from '../../util/test/util';
3
3
  import Map, {MapOptions} from '../map';
4
4
 
@@ -1,5 +1,5 @@
1
1
  import DOM from '../../util/dom';
2
- import simulate from '../../../test/util/simulate_interaction';
2
+ import simulate from '../../../test/unit/lib/simulate_interaction';
3
3
  import {setMatchMedia, setPerformance, setWebGlContext} from '../../util/test/util';
4
4
  import Map, {MapOptions} from '../map';
5
5
 
@@ -1,7 +1,7 @@
1
1
  import {extend} from '../../util/util';
2
2
  import Map from '../map';
3
3
  import DOM from '../../util/dom';
4
- import simulate from '../../../test/util/simulate_interaction';
4
+ import simulate from '../../../test/unit/lib/simulate_interaction';
5
5
  import browser from '../../util/browser';
6
6
 
7
7
  import {setMatchMedia, setPerformance, setWebGlContext} from '../../util/test/util';
@@ -1,6 +1,6 @@
1
1
  import Map from '../../ui/map';
2
2
  import DOM from '../../util/dom';
3
- import simulate from '../../../test/util/simulate_interaction';
3
+ import simulate from '../../../test/unit/lib/simulate_interaction';
4
4
  import {extend} from '../../util/util';
5
5
  import {setMatchMedia, setPerformance, setWebGlContext} from '../../util/test/util';
6
6
 
@@ -53,57 +53,57 @@ class KeyboardHandler {
53
53
  let yDir = 0;
54
54
 
55
55
  switch (e.keyCode) {
56
- case 61:
57
- case 107:
58
- case 171:
59
- case 187:
60
- zoomDir = 1;
61
- break;
62
-
63
- case 189:
64
- case 109:
65
- case 173:
66
- zoomDir = -1;
67
- break;
68
-
69
- case 37:
70
- if (e.shiftKey) {
71
- bearingDir = -1;
72
- } else {
73
- e.preventDefault();
74
- xDir = -1;
75
- }
76
- break;
77
-
78
- case 39:
79
- if (e.shiftKey) {
80
- bearingDir = 1;
81
- } else {
82
- e.preventDefault();
83
- xDir = 1;
84
- }
85
- break;
86
-
87
- case 38:
88
- if (e.shiftKey) {
89
- pitchDir = 1;
90
- } else {
91
- e.preventDefault();
92
- yDir = -1;
93
- }
94
- break;
95
-
96
- case 40:
97
- if (e.shiftKey) {
98
- pitchDir = -1;
99
- } else {
100
- e.preventDefault();
101
- yDir = 1;
102
- }
103
- break;
104
-
105
- default:
106
- return;
56
+ case 61:
57
+ case 107:
58
+ case 171:
59
+ case 187:
60
+ zoomDir = 1;
61
+ break;
62
+
63
+ case 189:
64
+ case 109:
65
+ case 173:
66
+ zoomDir = -1;
67
+ break;
68
+
69
+ case 37:
70
+ if (e.shiftKey) {
71
+ bearingDir = -1;
72
+ } else {
73
+ e.preventDefault();
74
+ xDir = -1;
75
+ }
76
+ break;
77
+
78
+ case 39:
79
+ if (e.shiftKey) {
80
+ bearingDir = 1;
81
+ } else {
82
+ e.preventDefault();
83
+ xDir = 1;
84
+ }
85
+ break;
86
+
87
+ case 38:
88
+ if (e.shiftKey) {
89
+ pitchDir = 1;
90
+ } else {
91
+ e.preventDefault();
92
+ yDir = -1;
93
+ }
94
+ break;
95
+
96
+ case 40:
97
+ if (e.shiftKey) {
98
+ pitchDir = -1;
99
+ } else {
100
+ e.preventDefault();
101
+ yDir = 1;
102
+ }
103
+ break;
104
+
105
+ default:
106
+ return;
107
107
  }
108
108
 
109
109
  if (this._rotationDisabled) {
@@ -1,6 +1,6 @@
1
1
  import Map, {MapOptions} from '../map';
2
2
  import DOM from '../../util/dom';
3
- import simulate from '../../../test/util/simulate_interaction';
3
+ import simulate from '../../../test/unit/lib/simulate_interaction';
4
4
  import {setMatchMedia, setPerformance, setWebGlContext} from '../../util/test/util';
5
5
 
6
6
  function createMap() {
@@ -10,7 +10,7 @@ export class MapEventHandler implements Handler {
10
10
  _map: Map;
11
11
 
12
12
  constructor(map: Map, options: {
13
- clickTolerance: number;
13
+ clickTolerance: number;
14
14
  }) {
15
15
  this._map = map;
16
16
  this._clickTolerance = options.clickTolerance;
@@ -25,7 +25,7 @@ class MouseHandler {
25
25
  _clickTolerance: number;
26
26
 
27
27
  constructor(options: {
28
- clickTolerance: number;
28
+ clickTolerance: number;
29
29
  }) {
30
30
  this.reset();
31
31
  this._clickTolerance = options.clickTolerance || 1;
@@ -1,7 +1,7 @@
1
1
  import {extend} from '../../util/util';
2
2
  import Map from '../../ui/map';
3
3
  import DOM from '../../util/dom';
4
- import simulate from '../../../test/util/simulate_interaction';
4
+ import simulate from '../../../test/unit/lib/simulate_interaction';
5
5
  import browser from '../../util/browser';
6
6
  import {setMatchMedia, setPerformance, setWebGlContext} from '../../util/test/util';
7
7
 
@@ -1,7 +1,7 @@
1
1
  import browser from '../../util/browser';
2
2
  import Map from '../../ui/map';
3
3
  import DOM from '../../util/dom';
4
- import simulate from '../../../test/util/simulate_interaction';
4
+ import simulate from '../../../test/unit/lib/simulate_interaction';
5
5
  import {setMatchMedia, setPerformance, setWebGlContext} from '../../util/test/util';
6
6
 
7
7
  function createMap() {
@@ -47,9 +47,9 @@ class ScrollZoomHandler {
47
47
  _delta: number;
48
48
  _easing: ((a: number) => number);
49
49
  _prevEase: {
50
- start: number;
51
- duration: number;
52
- easing: (_: number) => number;
50
+ start: number;
51
+ duration: number;
52
+ easing: (_: number) => number;
53
53
  };
54
54
 
55
55
  _frameId: boolean;
@@ -86,12 +86,12 @@ class ScrollZoomHandler {
86
86
  }
87
87
 
88
88
  /**
89
- * Set the zoom rate of a mouse wheel
90
- * @param {number} [wheelZoomRate=1/450] The rate used to scale mouse wheel movement to a zoom value.
91
- * @example
92
- * // Slow down zoom of mouse wheel
93
- * map.scrollZoom.setWheelZoomRate(1/600);
94
- */
89
+ * Set the zoom rate of a mouse wheel
90
+ * @param {number} [wheelZoomRate=1/450] The rate used to scale mouse wheel movement to a zoom value.
91
+ * @example
92
+ * // Slow down zoom of mouse wheel
93
+ * map.scrollZoom.setWheelZoomRate(1/600);
94
+ */
95
95
  setWheelZoomRate(wheelZoomRate: number) {
96
96
  this._wheelZoomRate = wheelZoomRate;
97
97
  }
@@ -2,10 +2,10 @@ import type {MousePanHandler} from '../mouse';
2
2
  import type TouchPanHandler from './../touch_pan';
3
3
 
4
4
  export type DragPanOptions = {
5
- linearity?: number;
6
- easing?: (t: number) => number;
7
- deceleration?: number;
8
- maxSpeed?: number;
5
+ linearity?: number;
6
+ easing?: (t: number) => number;
7
+ deceleration?: number;
8
+ maxSpeed?: number;
9
9
  };
10
10
 
11
11
  /**
@@ -18,7 +18,7 @@ export default class DragRotateHandler {
18
18
  * @private
19
19
  */
20
20
  constructor(options: {
21
- pitchWithRotate: boolean;
21
+ pitchWithRotate: boolean;
22
22
  }, mouseRotate: MouseRotateHandler, mousePitch: MousePitchHandler) {
23
23
  this._pitchWithRotate = options.pitchWithRotate;
24
24
  this._mouseRotate = mouseRotate;
@@ -41,7 +41,7 @@ export default class TouchZoomRotateHandler {
41
41
  * map.touchZoomRotate.enable({ around: 'center' });
42
42
  */
43
43
  enable(options?: {
44
- around?: 'center';
44
+ around?: 'center';
45
45
  } | null) {
46
46
  this._touchZoom.enable(options);
47
47
  if (!this._rotationDisabled) this._touchRotate.enable(options);
@@ -20,11 +20,11 @@ export class SingleTapRecognizer {
20
20
  startTime: number;
21
21
  aborted: boolean;
22
22
  touches: {
23
- [k in number | string]: Point;
23
+ [k in number | string]: Point;
24
24
  };
25
25
 
26
26
  constructor(options: {
27
- numTouches: number;
27
+ numTouches: number;
28
28
  }) {
29
29
  this.reset();
30
30
  this.numTouches = options.numTouches;
@@ -92,8 +92,8 @@ export class TapRecognizer {
92
92
  count: number;
93
93
 
94
94
  constructor(options: {
95
- numTaps: number;
96
- numTouches: number;
95
+ numTaps: number;
96
+ numTouches: number;
97
97
  }) {
98
98
  this.singleTap = new SingleTapRecognizer(options);
99
99
  this.numTaps = options.numTaps;
@@ -6,14 +6,14 @@ export default class TouchPanHandler {
6
6
  _enabled: boolean;
7
7
  _active: boolean;
8
8
  _touches: {
9
- [k in string | number]: Point;
9
+ [k in string | number]: Point;
10
10
  };
11
11
  _minTouches: number;
12
12
  _clickTolerance: number;
13
13
  _sum: Point;
14
14
 
15
15
  constructor(options: {
16
- clickTolerance: number;
16
+ clickTolerance: number;
17
17
  }) {
18
18
  this._minTouches = 1;
19
19
  this._clickTolerance = options.clickTolerance || 1;
@@ -1,7 +1,7 @@
1
1
  import Map, {MapOptions} from '../map';
2
2
  import Marker from '../marker';
3
3
  import DOM from '../../util/dom';
4
- import simulate from '../../../test/util/simulate_interaction';
4
+ import simulate from '../../../test/unit/lib/simulate_interaction';
5
5
  import {setMatchMedia, setPerformance, setWebGlContext} from '../../util/test/util';
6
6
 
7
7
  function createMap() {
@@ -70,7 +70,7 @@ class TwoTouchHandler {
70
70
  }
71
71
 
72
72
  enable(options?: {
73
- around?: 'center';
73
+ around?: 'center';
74
74
  } | null) {
75
75
  this._enabled = true;
76
76
  this._aroundCenter = !!options && options.around === 'center';
@@ -30,10 +30,10 @@ const defaultPitchInertiaOptions = extend({
30
30
  }, defaultInertiaOptions);
31
31
 
32
32
  export type InertiaOptions = {
33
- linearity: number;
34
- easing: (t: number) => number;
35
- deceleration: number;
36
- maxSpeed: number;
33
+ linearity: number;
34
+ easing: (t: number) => number;
35
+ deceleration: number;
36
+ maxSpeed: number;
37
37
  };
38
38
 
39
39
  export type InputEvent = MouseEvent | TouchEvent | KeyboardEvent | WheelEvent;
@@ -41,8 +41,8 @@ export type InputEvent = MouseEvent | TouchEvent | KeyboardEvent | WheelEvent;
41
41
  export default class HandlerInertia {
42
42
  _map: Map;
43
43
  _inertiaBuffer: Array<{
44
- time: number;
45
- settings: any;
44
+ time: number;
45
+ settings: any;
46
46
  }>;
47
47
 
48
48
  constructor(map: Map) {
@@ -36,49 +36,49 @@ class RenderFrameEvent extends Event {
36
36
  // For example, if there is a mousedown and mousemove, the mousePan handler
37
37
  // would return a `panDelta` on the mousemove.
38
38
  export interface Handler {
39
- enable(): void;
40
- disable(): void;
41
- isEnabled(): boolean;
42
- isActive(): boolean;
43
- // `reset` can be called by the manager at any time and must reset everything to it's original state
44
- reset(): void;
45
- // Handlers can optionally implement these methods.
46
- // They are called with dom events whenever those dom evens are received.
47
- readonly touchstart?: (e: TouchEvent, points: Array<Point>, mapTouches: Array<Touch>) => HandlerResult | void;
48
- readonly touchmove?: (e: TouchEvent, points: Array<Point>, mapTouches: Array<Touch>) => HandlerResult | void;
49
- readonly touchend?: (e: TouchEvent, points: Array<Point>, mapTouches: Array<Touch>) => HandlerResult | void;
50
- readonly touchcancel?: (e: TouchEvent, points: Array<Point>, mapTouches: Array<Touch>) => HandlerResult | void;
51
- readonly mousedown?: (e: MouseEvent, point: Point) => HandlerResult | void;
52
- readonly mousemove?: (e: MouseEvent, point: Point) => HandlerResult | void;
53
- readonly mouseup?: (e: MouseEvent, point: Point) => HandlerResult | void;
54
- readonly dblclick?: (e: MouseEvent, point: Point) => HandlerResult | void;
55
- readonly wheel?: (e: WheelEvent, point: Point) => HandlerResult | void;
56
- readonly keydown?: (e: KeyboardEvent) => HandlerResult | void;
57
- readonly keyup?: (e: KeyboardEvent) => HandlerResult | void;
58
- // `renderFrame` is the only non-dom event. It is called during render
59
- // frames and can be used to smooth camera changes (see scroll handler).
60
- readonly renderFrame?: () => HandlerResult | void;
39
+ enable(): void;
40
+ disable(): void;
41
+ isEnabled(): boolean;
42
+ isActive(): boolean;
43
+ // `reset` can be called by the manager at any time and must reset everything to it's original state
44
+ reset(): void;
45
+ // Handlers can optionally implement these methods.
46
+ // They are called with dom events whenever those dom evens are received.
47
+ readonly touchstart?: (e: TouchEvent, points: Array<Point>, mapTouches: Array<Touch>) => HandlerResult | void;
48
+ readonly touchmove?: (e: TouchEvent, points: Array<Point>, mapTouches: Array<Touch>) => HandlerResult | void;
49
+ readonly touchend?: (e: TouchEvent, points: Array<Point>, mapTouches: Array<Touch>) => HandlerResult | void;
50
+ readonly touchcancel?: (e: TouchEvent, points: Array<Point>, mapTouches: Array<Touch>) => HandlerResult | void;
51
+ readonly mousedown?: (e: MouseEvent, point: Point) => HandlerResult | void;
52
+ readonly mousemove?: (e: MouseEvent, point: Point) => HandlerResult | void;
53
+ readonly mouseup?: (e: MouseEvent, point: Point) => HandlerResult | void;
54
+ readonly dblclick?: (e: MouseEvent, point: Point) => HandlerResult | void;
55
+ readonly wheel?: (e: WheelEvent, point: Point) => HandlerResult | void;
56
+ readonly keydown?: (e: KeyboardEvent) => HandlerResult | void;
57
+ readonly keyup?: (e: KeyboardEvent) => HandlerResult | void;
58
+ // `renderFrame` is the only non-dom event. It is called during render
59
+ // frames and can be used to smooth camera changes (see scroll handler).
60
+ readonly renderFrame?: () => HandlerResult | void;
61
61
  }
62
62
 
63
63
  // All handler methods that are called with events can optionally return a `HandlerResult`.
64
64
  export type HandlerResult = {
65
- panDelta?: Point;
66
- zoomDelta?: number;
67
- bearingDelta?: number;
68
- pitchDelta?: number;
69
- // the point to not move when changing the camera
70
- around?: Point | null;
71
- // same as above, except for pinch actions, which are given higher priority
72
- pinchAround?: Point | null;
73
- // A method that can fire a one-off easing by directly changing the map's camera.
74
- cameraAnimation?: (map: Map) => any;
75
- // The last three properties are needed by only one handler: scrollzoom.
76
- // The DOM event to be used as the `originalEvent` on any camera change events.
77
- originalEvent?: any;
78
- // Makes the manager trigger a frame, allowing the handler to return multiple results over time (see scrollzoom).
79
- needsRenderFrame?: boolean;
80
- // The camera changes won't get recorded for inertial zooming.
81
- noInertia?: boolean;
65
+ panDelta?: Point;
66
+ zoomDelta?: number;
67
+ bearingDelta?: number;
68
+ pitchDelta?: number;
69
+ // the point to not move when changing the camera
70
+ around?: Point | null;
71
+ // same as above, except for pinch actions, which are given higher priority
72
+ pinchAround?: Point | null;
73
+ // A method that can fire a one-off easing by directly changing the map's camera.
74
+ cameraAnimation?: (map: Map) => any;
75
+ // The last three properties are needed by only one handler: scrollzoom.
76
+ // The DOM event to be used as the `originalEvent` on any camera change events.
77
+ originalEvent?: any;
78
+ // Makes the manager trigger a frame, allowing the handler to return multiple results over time (see scrollzoom).
79
+ needsRenderFrame?: boolean;
80
+ // The camera changes won't get recorded for inertial zooming.
81
+ noInertia?: boolean;
82
82
  };
83
83
 
84
84
  function hasChange(result: HandlerResult) {
@@ -89,9 +89,9 @@ class HandlerManager {
89
89
  _map: Map;
90
90
  _el: HTMLElement;
91
91
  _handlers: Array<{
92
- handlerName: string;
93
- handler: Handler;
94
- allowed: any;
92
+ handlerName: string;
93
+ handler: Handler;
94
+ allowed: any;
95
95
  }>;
96
96
  _eventsInProgress: any;
97
97
  _frameId: number;
@@ -102,8 +102,8 @@ class HandlerManager {
102
102
  _changes: Array<[HandlerResult, any, any]>;
103
103
  _previousActiveHandlers: {[x: string]: Handler};
104
104
  _listeners: Array<[Window | Document | HTMLElement, string, {
105
- passive?: boolean;
106
- capture?: boolean;
105
+ passive?: boolean;
106
+ capture?: boolean;
107
107
  } | undefined]>;
108
108
 
109
109
  constructor(map: Map, options: CompleteMapOptions) {
@@ -1,7 +1,7 @@
1
1
  import browser from '../../util/browser';
2
2
  import Map from '../map';
3
3
  import DOM from '../../util/dom';
4
- import simulate from '../../../test/util/simulate_interaction';
4
+ import simulate from '../../../test/unit/lib/simulate_interaction';
5
5
  import {setWebGlContext, setPerformance, setMatchMedia} from '../../util/test/util';
6
6
 
7
7
  let map;
@@ -1,6 +1,6 @@
1
1
  import Map from '../../ui/map';
2
2
  import DOM from '../../util/dom';
3
- import simulate from '../../../test/util/simulate_interaction';
3
+ import simulate from '../../../test/unit/lib/simulate_interaction';
4
4
  import browser from '../../util/browser';
5
5
  import {setWebGlContext, setPerformance, setMatchMedia} from '../../util/test/util';
6
6
 
@@ -1,7 +1,7 @@
1
1
  import browser from '../../util/browser';
2
2
  import Map from '../../ui/map';
3
3
  import DOM from '../../util/dom';
4
- import simulate from '../../../test/util/simulate_interaction';
4
+ import simulate from '../../../test/unit/lib/simulate_interaction';
5
5
  import {setWebGlContext, setPerformance, setMatchMedia} from '../../util/test/util';
6
6
 
7
7
  function createMap() {
@@ -4,15 +4,15 @@ import LngLat from '../geo/lng_lat';
4
4
  import Tile from '../source/tile';
5
5
  import {OverscaledTileID} from '../source/tile_id';
6
6
  import {Event, ErrorEvent} from '../util/evented';
7
- import simulate from '../../test/util/simulate_interaction';
8
- import {fixedLngLat, fixedNum} from '../../test/util/fixed';
7
+ import simulate from '../../test/unit/lib/simulate_interaction';
8
+ import {fixedLngLat, fixedNum} from '../../test/unit/lib/fixed';
9
9
  import {LayerSpecification, SourceSpecification, StyleSpecification} from '../style-spec/types';
10
10
  import {RequestTransformFunction} from '../util/request_manager';
11
11
  import {extend} from '../util/util';
12
12
  import {LngLatBoundsLike} from '../geo/lng_lat_bounds';
13
13
  import {IControl} from './control/control';
14
14
  import EvaluationParameters from '../style/evaluation_parameters';
15
- import {fakeServer, SinonFakeServer} from 'sinon';
15
+ import {fakeServer, FakeServer} from 'nise';
16
16
 
17
17
  function createStyleSource() {
18
18
  return {
@@ -24,7 +24,7 @@ function createStyleSource() {
24
24
  } as SourceSpecification;
25
25
  }
26
26
 
27
- let server: SinonFakeServer;
27
+ let server: FakeServer;
28
28
 
29
29
  beforeEach(() => {
30
30
  setPerformance();
@@ -2115,6 +2115,12 @@ describe('Map', () => {
2115
2115
  expect(map.painter.height).toBe(1024);
2116
2116
  });
2117
2117
 
2118
+ test('fires sourcedataabort event on dataabort event', done => {
2119
+ const map = createMap();
2120
+ map.once('sourcedataabort', () => done());
2121
+ map.fire(new Event('dataabort'));
2122
+ });
2123
+
2118
2124
  });
2119
2125
 
2120
2126
  function createStyle() {