@antv/l7-map 2.9.21 → 2.9.23

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 (223) hide show
  1. package/es/camera.js +115 -85
  2. package/es/css/l7.css +98 -0
  3. package/es/earthmap.js +27 -43
  4. package/es/geo/edge_insets.js +44 -14
  5. package/es/geo/lng_lat.js +15 -11
  6. package/es/geo/lng_lat_bounds.js +6 -10
  7. package/es/geo/mercator.js +24 -12
  8. package/es/geo/point.js +2 -8
  9. package/es/geo/simple.js +24 -12
  10. package/es/geo/transform.js +421 -120
  11. package/es/handler/IHandler.js +1 -2
  12. package/es/handler/blockable_map_event.js +13 -14
  13. package/es/handler/box_zoom.js +43 -27
  14. package/es/handler/click_zoom.js +3 -8
  15. package/es/handler/events/event.js +3 -6
  16. package/es/handler/events/index.js +4 -5
  17. package/es/handler/events/map_mouse_event.js +30 -20
  18. package/es/handler/events/map_touch_event.js +55 -25
  19. package/es/handler/events/map_wheel_event.js +24 -15
  20. package/es/handler/events/render_event.js +3 -6
  21. package/es/handler/handler_inertia.js +10 -12
  22. package/es/handler/handler_manager.js +75 -72
  23. package/es/handler/handler_util.js +2 -2
  24. package/es/handler/keyboard.js +20 -15
  25. package/es/handler/map_event.js +23 -12
  26. package/es/handler/mouse/index.js +4 -5
  27. package/es/handler/mouse/mouse_handler.js +17 -21
  28. package/es/handler/mouse/mousepan_handler.js +5 -5
  29. package/es/handler/mouse/mousepitch_hander.js +7 -5
  30. package/es/handler/mouse/mouserotate_hander.js +7 -5
  31. package/es/handler/mouse/util.js +3 -3
  32. package/es/handler/scroll_zoom.js +103 -67
  33. package/es/handler/shim/dblclick_zoom.js +35 -8
  34. package/es/handler/shim/drag_pan.js +48 -12
  35. package/es/handler/shim/drag_rotate.js +39 -10
  36. package/es/handler/shim/touch_zoom_rotate.js +59 -16
  37. package/es/handler/tap/single_tap_recognizer.js +7 -17
  38. package/es/handler/tap/tap_drag_zoom.js +5 -18
  39. package/es/handler/tap/tap_recognizer.js +4 -15
  40. package/es/handler/tap/tap_zoom.js +4 -13
  41. package/es/handler/touch/index.js +5 -6
  42. package/es/handler/touch/touch_pan.js +9 -20
  43. package/es/handler/touch/touch_pitch.js +11 -23
  44. package/es/handler/touch/touch_rotate.js +15 -18
  45. package/es/handler/touch/touch_zoom.js +5 -19
  46. package/es/handler/touch/two_touch.js +14 -21
  47. package/es/hash.js +28 -16
  48. package/es/index.js +2 -3
  49. package/es/interface.js +1 -2
  50. package/es/map.js +26 -47
  51. package/es/util.js +15 -6
  52. package/es/utils/Aabb.js +11 -12
  53. package/es/utils/dom.js +30 -11
  54. package/es/utils/performance.js +10 -6
  55. package/es/utils/primitives.js +11 -10
  56. package/es/utils/task_queue.js +6 -13
  57. package/lib/camera.js +508 -721
  58. package/lib/css/l7.css +98 -0
  59. package/lib/earthmap.js +222 -392
  60. package/lib/geo/edge_insets.js +64 -83
  61. package/lib/geo/lng_lat.js +65 -81
  62. package/lib/geo/lng_lat_bounds.js +124 -165
  63. package/lib/geo/mercator.js +62 -78
  64. package/lib/geo/point.js +171 -239
  65. package/lib/geo/simple.js +61 -80
  66. package/lib/geo/transform.js +470 -653
  67. package/lib/handler/IHandler.js +17 -2
  68. package/lib/handler/blockable_map_event.js +63 -83
  69. package/lib/handler/box_zoom.js +123 -176
  70. package/lib/handler/click_zoom.js +56 -68
  71. package/lib/handler/events/event.js +35 -23
  72. package/lib/handler/events/index.js +35 -29
  73. package/lib/handler/events/map_mouse_event.js +42 -72
  74. package/lib/handler/events/map_touch_event.js +45 -80
  75. package/lib/handler/events/map_wheel_event.js +34 -58
  76. package/lib/handler/events/render_event.js +31 -52
  77. package/lib/handler/handler_inertia.js +113 -160
  78. package/lib/handler/handler_manager.js +379 -620
  79. package/lib/handler/handler_util.js +28 -10
  80. package/lib/handler/keyboard.js +114 -146
  81. package/lib/handler/map_event.js +84 -120
  82. package/lib/handler/mouse/index.js +35 -29
  83. package/lib/handler/mouse/mouse_handler.js +90 -123
  84. package/lib/handler/mouse/mousepan_handler.js +46 -65
  85. package/lib/handler/mouse/mousepitch_hander.js +44 -63
  86. package/lib/handler/mouse/mouserotate_hander.js +44 -63
  87. package/lib/handler/mouse/util.js +38 -20
  88. package/lib/handler/scroll_zoom.js +175 -258
  89. package/lib/handler/shim/dblclick_zoom.js +42 -48
  90. package/lib/handler/shim/drag_pan.js +48 -59
  91. package/lib/handler/shim/drag_rotate.js +43 -51
  92. package/lib/handler/shim/touch_zoom_rotate.js +58 -78
  93. package/lib/handler/tap/single_tap_recognizer.js +84 -117
  94. package/lib/handler/tap/tap_drag_zoom.js +92 -115
  95. package/lib/handler/tap/tap_recognizer.js +60 -78
  96. package/lib/handler/tap/tap_zoom.js +88 -119
  97. package/lib/handler/touch/index.js +38 -37
  98. package/lib/handler/touch/touch_pan.js +98 -132
  99. package/lib/handler/touch/touch_pitch.js +73 -117
  100. package/lib/handler/touch/touch_rotate.js +58 -94
  101. package/lib/handler/touch/touch_zoom.js +49 -84
  102. package/lib/handler/touch/two_touch.js +88 -128
  103. package/lib/hash.js +100 -133
  104. package/lib/index.js +19 -31
  105. package/lib/interface.js +17 -2
  106. package/lib/map.js +238 -420
  107. package/lib/util.js +67 -78
  108. package/lib/utils/Aabb.js +80 -132
  109. package/lib/utils/dom.js +84 -141
  110. package/lib/utils/performance.js +54 -42
  111. package/lib/utils/primitives.js +59 -51
  112. package/lib/utils/task_queue.js +61 -108
  113. package/package.json +11 -8
  114. package/es/camera.js.map +0 -1
  115. package/es/earthmap.js.map +0 -1
  116. package/es/geo/edge_insets.js.map +0 -1
  117. package/es/geo/lng_lat.js.map +0 -1
  118. package/es/geo/lng_lat_bounds.js.map +0 -1
  119. package/es/geo/mercator.js.map +0 -1
  120. package/es/geo/point.js.map +0 -1
  121. package/es/geo/simple.js.map +0 -1
  122. package/es/geo/transform.js.map +0 -1
  123. package/es/handler/IHandler.js.map +0 -1
  124. package/es/handler/blockable_map_event.js.map +0 -1
  125. package/es/handler/box_zoom.js.map +0 -1
  126. package/es/handler/click_zoom.js.map +0 -1
  127. package/es/handler/events/event.js.map +0 -1
  128. package/es/handler/events/index.js.map +0 -1
  129. package/es/handler/events/map_mouse_event.js.map +0 -1
  130. package/es/handler/events/map_touch_event.js.map +0 -1
  131. package/es/handler/events/map_wheel_event.js.map +0 -1
  132. package/es/handler/events/render_event.js.map +0 -1
  133. package/es/handler/handler_inertia.js.map +0 -1
  134. package/es/handler/handler_manager.js.map +0 -1
  135. package/es/handler/handler_util.js.map +0 -1
  136. package/es/handler/keyboard.js.map +0 -1
  137. package/es/handler/map_event.js.map +0 -1
  138. package/es/handler/mouse/index.js.map +0 -1
  139. package/es/handler/mouse/mouse_handler.js.map +0 -1
  140. package/es/handler/mouse/mousepan_handler.js.map +0 -1
  141. package/es/handler/mouse/mousepitch_hander.js.map +0 -1
  142. package/es/handler/mouse/mouserotate_hander.js.map +0 -1
  143. package/es/handler/mouse/util.js.map +0 -1
  144. package/es/handler/scroll_zoom.js.map +0 -1
  145. package/es/handler/shim/dblclick_zoom.js.map +0 -1
  146. package/es/handler/shim/drag_pan.js.map +0 -1
  147. package/es/handler/shim/drag_rotate.js.map +0 -1
  148. package/es/handler/shim/touch_zoom_rotate.js.map +0 -1
  149. package/es/handler/tap/single_tap_recognizer.js.map +0 -1
  150. package/es/handler/tap/tap_drag_zoom.js.map +0 -1
  151. package/es/handler/tap/tap_recognizer.js.map +0 -1
  152. package/es/handler/tap/tap_zoom.js.map +0 -1
  153. package/es/handler/touch/index.js.map +0 -1
  154. package/es/handler/touch/touch_pan.js.map +0 -1
  155. package/es/handler/touch/touch_pitch.js.map +0 -1
  156. package/es/handler/touch/touch_rotate.js.map +0 -1
  157. package/es/handler/touch/touch_zoom.js.map +0 -1
  158. package/es/handler/touch/two_touch.js.map +0 -1
  159. package/es/hash.js.map +0 -1
  160. package/es/index.js.map +0 -1
  161. package/es/interface.js.map +0 -1
  162. package/es/map.js.map +0 -1
  163. package/es/util.js.map +0 -1
  164. package/es/utils/Aabb.js.map +0 -1
  165. package/es/utils/dom.js.map +0 -1
  166. package/es/utils/performance.js.map +0 -1
  167. package/es/utils/primitives.js.map +0 -1
  168. package/es/utils/task_queue.js.map +0 -1
  169. package/lib/camera.js.map +0 -1
  170. package/lib/earthmap.js.map +0 -1
  171. package/lib/geo/edge_insets.js.map +0 -1
  172. package/lib/geo/lng_lat.js.map +0 -1
  173. package/lib/geo/lng_lat_bounds.js.map +0 -1
  174. package/lib/geo/mercator.js.map +0 -1
  175. package/lib/geo/point.js.map +0 -1
  176. package/lib/geo/simple.js.map +0 -1
  177. package/lib/geo/transform.js.map +0 -1
  178. package/lib/handler/IHandler.js.map +0 -1
  179. package/lib/handler/blockable_map_event.js.map +0 -1
  180. package/lib/handler/box_zoom.js.map +0 -1
  181. package/lib/handler/click_zoom.js.map +0 -1
  182. package/lib/handler/events/event.js.map +0 -1
  183. package/lib/handler/events/index.js.map +0 -1
  184. package/lib/handler/events/map_mouse_event.js.map +0 -1
  185. package/lib/handler/events/map_touch_event.js.map +0 -1
  186. package/lib/handler/events/map_wheel_event.js.map +0 -1
  187. package/lib/handler/events/render_event.js.map +0 -1
  188. package/lib/handler/handler_inertia.js.map +0 -1
  189. package/lib/handler/handler_manager.js.map +0 -1
  190. package/lib/handler/handler_util.js.map +0 -1
  191. package/lib/handler/keyboard.js.map +0 -1
  192. package/lib/handler/map_event.js.map +0 -1
  193. package/lib/handler/mouse/index.js.map +0 -1
  194. package/lib/handler/mouse/mouse_handler.js.map +0 -1
  195. package/lib/handler/mouse/mousepan_handler.js.map +0 -1
  196. package/lib/handler/mouse/mousepitch_hander.js.map +0 -1
  197. package/lib/handler/mouse/mouserotate_hander.js.map +0 -1
  198. package/lib/handler/mouse/util.js.map +0 -1
  199. package/lib/handler/scroll_zoom.js.map +0 -1
  200. package/lib/handler/shim/dblclick_zoom.js.map +0 -1
  201. package/lib/handler/shim/drag_pan.js.map +0 -1
  202. package/lib/handler/shim/drag_rotate.js.map +0 -1
  203. package/lib/handler/shim/touch_zoom_rotate.js.map +0 -1
  204. package/lib/handler/tap/single_tap_recognizer.js.map +0 -1
  205. package/lib/handler/tap/tap_drag_zoom.js.map +0 -1
  206. package/lib/handler/tap/tap_recognizer.js.map +0 -1
  207. package/lib/handler/tap/tap_zoom.js.map +0 -1
  208. package/lib/handler/touch/index.js.map +0 -1
  209. package/lib/handler/touch/touch_pan.js.map +0 -1
  210. package/lib/handler/touch/touch_pitch.js.map +0 -1
  211. package/lib/handler/touch/touch_rotate.js.map +0 -1
  212. package/lib/handler/touch/touch_zoom.js.map +0 -1
  213. package/lib/handler/touch/two_touch.js.map +0 -1
  214. package/lib/hash.js.map +0 -1
  215. package/lib/index.js.map +0 -1
  216. package/lib/interface.js.map +0 -1
  217. package/lib/map.js.map +0 -1
  218. package/lib/util.js.map +0 -1
  219. package/lib/utils/Aabb.js.map +0 -1
  220. package/lib/utils/dom.js.map +0 -1
  221. package/lib/utils/performance.js.map +0 -1
  222. package/lib/utils/primitives.js.map +0 -1
  223. package/lib/utils/task_queue.js.map +0 -1
@@ -2,7 +2,6 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
3
  import _createClass from "@babel/runtime/helpers/createClass";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
- import _merge from "lodash/merge";
6
5
 
7
6
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
8
7
 
@@ -10,26 +9,29 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
10
9
 
11
10
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12
11
 
12
+ // @ts-ignore
13
+ // tslint:disable-next-line: no-submodule-imports
13
14
  import { $window, isMini } from '@antv/l7-utils';
14
- import Point from '../geo/point';
15
- import DOM from '../utils/dom';
16
- import BlockableMapEventHandler from './blockable_map_event';
17
- import BoxZoomHandler from './box_zoom';
18
- import ClickZoomHandler from './click_zoom';
19
- import { Event } from './events/event';
20
- import RenderFrameEvent from './events/render_event';
21
- import HandlerInertia from './handler_inertia';
22
- import KeyboardHandler from './keyboard';
23
- import MapEventHandler from './map_event';
24
- import { MousePanHandler, MousePitchHandler, MouseRotateHandler } from './mouse';
25
- import ScrollZoomHandler from './scroll_zoom';
26
- import DoubleClickZoomHandler from './shim/dblclick_zoom';
27
- import DragPanHandler from './shim/drag_pan';
28
- import DragRotateHandler from './shim/drag_rotate';
29
- import TouchZoomRotateHandler from './shim/touch_zoom_rotate';
30
- import TapDragZoomHandler from './tap/tap_drag_zoom';
31
- import TapZoomHandler from './tap/tap_zoom';
32
- import { TouchPanHandler, TouchPitchHandler, TouchRotateHandler, TouchZoomHandler } from './touch';
15
+ import { merge } from 'lodash';
16
+ import Point from "../geo/point";
17
+ import DOM from "../utils/dom";
18
+ import BlockableMapEventHandler from "./blockable_map_event";
19
+ import BoxZoomHandler from "./box_zoom";
20
+ import ClickZoomHandler from "./click_zoom";
21
+ import { Event } from "./events/event";
22
+ import RenderFrameEvent from "./events/render_event";
23
+ import HandlerInertia from "./handler_inertia";
24
+ import KeyboardHandler from "./keyboard";
25
+ import MapEventHandler from "./map_event";
26
+ import { MousePanHandler, MousePitchHandler, MouseRotateHandler } from "./mouse";
27
+ import ScrollZoomHandler from "./scroll_zoom";
28
+ import DoubleClickZoomHandler from "./shim/dblclick_zoom";
29
+ import DragPanHandler from "./shim/drag_pan";
30
+ import DragRotateHandler from "./shim/drag_rotate";
31
+ import TouchZoomRotateHandler from "./shim/touch_zoom_rotate";
32
+ import TapDragZoomHandler from "./tap/tap_drag_zoom";
33
+ import TapZoomHandler from "./tap/tap_zoom";
34
+ import { TouchPanHandler, TouchPitchHandler, TouchRotateHandler, TouchZoomHandler } from "./touch";
33
35
 
34
36
  var _isMoving = function isMoving(p) {
35
37
  return p.zoom || p.drag || p.pitch || p.rotate;
@@ -39,42 +41,12 @@ function hasChange(result) {
39
41
  return result.panDelta && result.panDelta.mag() || result.zoomDelta || result.bearingDelta || result.pitchDelta;
40
42
  }
41
43
 
42
- var HandlerManager = function () {
44
+ var HandlerManager = /*#__PURE__*/function () {
43
45
  function HandlerManager(map, options) {
44
46
  var _this = this;
45
47
 
46
48
  _classCallCheck(this, HandlerManager);
47
49
 
48
- _defineProperty(this, "map", void 0);
49
-
50
- _defineProperty(this, "el", void 0);
51
-
52
- _defineProperty(this, "handlers", void 0);
53
-
54
- _defineProperty(this, "eventsInProgress", void 0);
55
-
56
- _defineProperty(this, "frameId", void 0);
57
-
58
- _defineProperty(this, "inertia", void 0);
59
-
60
- _defineProperty(this, "bearingSnap", void 0);
61
-
62
- _defineProperty(this, "handlersById", void 0);
63
-
64
- _defineProperty(this, "updatingCamera", void 0);
65
-
66
- _defineProperty(this, "changes", void 0);
67
-
68
- _defineProperty(this, "previousActiveHandlers", void 0);
69
-
70
- _defineProperty(this, "bearingChanged", void 0);
71
-
72
- _defineProperty(this, "rotateEnabled", void 0);
73
-
74
- _defineProperty(this, "pitchEnabled", void 0);
75
-
76
- _defineProperty(this, "listeners", void 0);
77
-
78
50
  _defineProperty(this, "handleWindowEvent", function (e) {
79
51
  _this.handleEvent(e, "".concat(e.type, "Window"));
80
52
  });
@@ -88,12 +60,19 @@ var HandlerManager = function () {
88
60
 
89
61
  _this.updatingCamera = true;
90
62
  var inputEvent = e.type === 'renderFrame' ? undefined : e;
63
+ /*
64
+ * We don't call e.preventDefault() for any events by default.
65
+ * Handlers are responsible for calling it where necessary.
66
+ */
67
+
91
68
  var mergedIHandlerResult = {
92
69
  needsRenderFrame: false
93
70
  };
94
71
  var eventsInProgress = {};
95
- var activeHandlers = {};
96
- var mapTouches = e.touches ? _this.getMapTouches(e.touches) : undefined;
72
+ var activeHandlers = {}; // @ts-ignore
73
+
74
+ var mapTouches = e.touches ? // @ts-ignore
75
+ _this.getMapTouches(e.touches) : undefined;
97
76
  var points = mapTouches ? DOM.touchPos(_this.el, mapTouches) : DOM.mousePos(_this.el, e);
98
77
 
99
78
  var _iterator = _createForOfIteratorHelper(_this.handlers),
@@ -115,9 +94,10 @@ var HandlerManager = function () {
115
94
  if (_this.blockedByActive(activeHandlers, allowed, handlerName)) {
116
95
  handler.reset();
117
96
  } else {
118
- var handerName = eventName || e.type;
97
+ var handerName = eventName || e.type; // @ts-ignore
119
98
 
120
99
  if (handler && handler[handerName]) {
100
+ // @ts-ignore
121
101
  data = handler[handerName](e, points, mapTouches);
122
102
 
123
103
  _this.mergeIHandlerResult(mergedIHandlerResult, eventsInProgress, data, handlerName, inputEvent);
@@ -126,7 +106,8 @@ var HandlerManager = function () {
126
106
  _this.triggerRenderFrame();
127
107
  }
128
108
  }
129
- }
109
+ } // @ts-ignore
110
+
130
111
 
131
112
  if (data || handler.isActive()) {
132
113
  activeHandlers[handlerName] = handler;
@@ -180,24 +161,39 @@ var HandlerManager = function () {
180
161
  this.bearingSnap = options.bearingSnap;
181
162
  this.rotateEnabled = options.rotateEnabled;
182
163
  this.pitchEnabled = options.pitchEnabled;
183
- this.previousActiveHandlers = {};
164
+ this.previousActiveHandlers = {}; // Track whether map is currently moving, to compute start/move/end events
165
+
184
166
  this.eventsInProgress = {};
185
167
  this.addDefaultHandlers(options);
186
168
  var el = this.el;
187
169
  this.listeners = [];
188
170
 
189
171
  if (!isMini) {
190
- this.listeners = [[el, 'touchstart', {
172
+ // l7 - mini
173
+ this.listeners = [// Bind touchstart and touchmove with passive: false because, even though
174
+ // they only fire a map events and therefore could theoretically be
175
+ // passive, binding with passive: true causes iOS not to respect
176
+ // e.preventDefault() in _other_ handlers, even if they are non-passive
177
+ // (see https://bugs.webkit.org/show_bug.cgi?id=184251)
178
+ [el, 'touchstart', {
191
179
  passive: false
192
180
  }], [el, 'touchmove', {
193
181
  passive: false
194
- }], [el, 'touchend', undefined], [el, 'touchcancel', undefined], [el, 'mousedown', undefined], [el, 'mousemove', undefined], [el, 'mouseup', undefined], [window.document, 'mousemove', {
182
+ }], [el, 'touchend', undefined], [el, 'touchcancel', undefined], [el, 'mousedown', undefined], [el, 'mousemove', undefined], [el, 'mouseup', undefined], // Bind window-level event listeners for move and up/end events. In the absence of
183
+ // the pointer capture API, which is not supported by all necessary platforms,
184
+ // window-level event listeners give us the best shot at capturing events that
185
+ // fall outside the map canvas element. Use `{capture: true}` for the move event
186
+ // to prevent map move events from being fired during a drag.
187
+ // @ts-ignore
188
+ [window.document, 'mousemove', {
195
189
  capture: true
196
- }], [window.document, 'mouseup', undefined], [el, 'mouseover', undefined], [el, 'mouseout', undefined], [el, 'dblclick', undefined], [el, 'click', undefined], [el, 'keydown', {
190
+ }], // @ts-ignore
191
+ [window.document, 'mouseup', undefined], [el, 'mouseover', undefined], [el, 'mouseout', undefined], [el, 'dblclick', undefined], [el, 'click', undefined], [el, 'keydown', {
197
192
  capture: false
198
193
  }], [el, 'keyup', undefined], [el, 'wheel', {
199
194
  passive: false
200
- }], [el, 'contextmenu', undefined], [window, 'blur', undefined]];
195
+ }], [el, 'contextmenu', undefined], // @ts-ignore
196
+ [window, 'blur', undefined]];
201
197
 
202
198
  var _iterator2 = _createForOfIteratorHelper(this.listeners),
203
199
  _step2;
@@ -209,7 +205,9 @@ var HandlerManager = function () {
209
205
  type = _step2$value[1],
210
206
  listenerOptions = _step2$value[2];
211
207
 
212
- DOM.addEventListener(target, type, target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
208
+ // @ts-ignore
209
+ DOM.addEventListener(target, type, // @ts-ignore
210
+ target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
213
211
  }
214
212
  } catch (err) {
215
213
  _iterator2.e(err);
@@ -245,7 +243,9 @@ var HandlerManager = function () {
245
243
  type = _step3$value[1],
246
244
  listenerOptions = _step3$value[2];
247
245
 
248
- DOM.removeEventListener(target, type, target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
246
+ // @ts-ignore
247
+ DOM.removeEventListener(target, type, // @ts-ignore
248
+ target === window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);
249
249
  }
250
250
  } catch (err) {
251
251
  _iterator3.e(err);
@@ -256,6 +256,7 @@ var HandlerManager = function () {
256
256
  }, {
257
257
  key: "stop",
258
258
  value: function stop() {
259
+ // do nothing if this method was triggered by a gesture update
259
260
  if (this.updatingCamera) {
260
261
  return;
261
262
  }
@@ -322,12 +323,11 @@ var HandlerManager = function () {
322
323
  return;
323
324
  }
324
325
 
325
- _merge(mergedIHandlerResult, HandlerResult);
326
-
326
+ merge(mergedIHandlerResult, HandlerResult);
327
327
  var eventData = {
328
328
  handlerName: name,
329
329
  originalEvent: HandlerResult.originalEvent || e
330
- };
330
+ }; // track which handler changed which camera property
331
331
 
332
332
  if (HandlerResult.zoomDelta !== undefined) {
333
333
  eventsInProgress.zoom = eventData;
@@ -352,6 +352,7 @@ var HandlerManager = function () {
352
352
 
353
353
  if (this.frameId === undefined) {
354
354
  this.frameId = this.map.requestRenderFrame(function (timeStamp) {
355
+ // @ts-ignore
355
356
  delete _this2.frameId;
356
357
 
357
358
  _this2.handleEvent(new RenderFrameEvent('renderFrame', {
@@ -403,7 +404,9 @@ var HandlerManager = function () {
403
404
  for (var _i = 0, _arr = ['boxZoom', 'doubleClickZoom', 'tapDragZoom', 'touchPitch', 'dragRotate', 'dragPan', 'touchZoomRotate', 'scrollZoom', 'keyboard']; _i < _arr.length; _i++) {
404
405
  var name = _arr[_i];
405
406
 
407
+ // @ts-ignore
406
408
  if (options.interactive && options[name]) {
409
+ // @ts-ignore
407
410
  map[name].enable(options[name]);
408
411
  }
409
412
  }
@@ -503,9 +506,8 @@ var HandlerManager = function () {
503
506
  combined.noInertia = change.noInertia;
504
507
  }
505
508
 
506
- _merge(combinedEventsInProgress, eventsInProgress);
507
-
508
- _merge(combinedDeactivatedHandlers, deactivatedHandlers);
509
+ merge(combinedEventsInProgress, eventsInProgress);
510
+ merge(combinedDeactivatedHandlers, deactivatedHandlers);
509
511
  }
510
512
  } catch (err) {
511
513
  _iterator7.e(err);
@@ -535,7 +537,8 @@ var HandlerManager = function () {
535
537
 
536
538
  if (pinchAround !== undefined) {
537
539
  around = pinchAround;
538
- }
540
+ } // stop any ongoing camera animations (easeTo, flyTo)
541
+
539
542
 
540
543
  map.stop(true);
541
544
  around = around || map.transform.centerPoint;
@@ -583,7 +586,8 @@ var HandlerManager = function () {
583
586
 
584
587
  this.eventsInProgress[eventName] = newEventsInProgress[eventName];
585
588
  }
586
- }
589
+ } // fire start events only after this.eventsInProgress has been updated
590
+
587
591
 
588
592
  if (!wasMoving && nowMoving) {
589
593
  this.fireEvent('movestart', nowMoving.originalEvent);
@@ -677,5 +681,4 @@ var HandlerManager = function () {
677
681
  return HandlerManager;
678
682
  }();
679
683
 
680
- export default HandlerManager;
681
- //# sourceMappingURL=handler_manager.js.map
684
+ export default HandlerManager;
@@ -1,3 +1,4 @@
1
+ // @ts-ignore
1
2
  export function indexTouches(touches, points) {
2
3
  var obj = {};
3
4
 
@@ -6,5 +7,4 @@ export function indexTouches(touches, points) {
6
7
  }
7
8
 
8
9
  return obj;
9
- }
10
- //# sourceMappingURL=handler_util.js.map
10
+ }
@@ -1,26 +1,32 @@
1
1
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
2
  import _createClass from "@babel/runtime/helpers/createClass";
3
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
3
  var defaultOptions = {
5
4
  panStep: 100,
6
5
  bearingStep: 15,
7
6
  pitchStep: 10
8
7
  };
9
-
10
- var KeyboardHandler = function () {
8
+ /**
9
+ * The `KeyboardHandler` allows the user to zoom, rotate, and pan the map using
10
+ * the following keyboard shortcuts:
11
+ *
12
+ * - `=` / `+`: Increase the zoom level by 1.
13
+ * - `Shift-=` / `Shift-+`: Increase the zoom level by 2.
14
+ * - `-`: Decrease the zoom level by 1.
15
+ * - `Shift--`: Decrease the zoom level by 2.
16
+ * - Arrow keys: Pan by 100 pixels.
17
+ * - `Shift+⇢`: Increase the rotation by 15 degrees.
18
+ * - `Shift+⇠`: Decrease the rotation by 15 degrees.
19
+ * - `Shift+⇡`: Increase the pitch by 10 degrees.
20
+ * - `Shift+⇣`: Decrease the pitch by 10 degrees.
21
+ */
22
+
23
+ var KeyboardHandler = /*#__PURE__*/function () {
24
+ /**
25
+ * @private
26
+ */
11
27
  function KeyboardHandler() {
12
28
  _classCallCheck(this, KeyboardHandler);
13
29
 
14
- _defineProperty(this, "enabled", void 0);
15
-
16
- _defineProperty(this, "active", void 0);
17
-
18
- _defineProperty(this, "panStep", void 0);
19
-
20
- _defineProperty(this, "bearingStep", void 0);
21
-
22
- _defineProperty(this, "pitchStep", void 0);
23
-
24
30
  var stepOptions = defaultOptions;
25
31
  this.panStep = stepOptions.panStep;
26
32
  this.bearingStep = stepOptions.bearingStep;
@@ -153,5 +159,4 @@ function easeOut(t) {
153
159
  return t * (2 - t);
154
160
  }
155
161
 
156
- export default KeyboardHandler;
157
- //# sourceMappingURL=keyboard.js.map
162
+ export default KeyboardHandler;
@@ -1,18 +1,12 @@
1
1
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
2
  import _createClass from "@babel/runtime/helpers/createClass";
3
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
- import { MapMouseEvent, MapTouchEvent, MapWheelEvent } from './events';
3
+ // @ts-ignore
4
+ import { MapMouseEvent, MapTouchEvent, MapWheelEvent } from "./events";
5
5
 
6
- var MapEventHandler = function () {
6
+ var MapEventHandler = /*#__PURE__*/function () {
7
7
  function MapEventHandler(map, options) {
8
8
  _classCallCheck(this, MapEventHandler);
9
9
 
10
- _defineProperty(this, "mousedownPos", void 0);
11
-
12
- _defineProperty(this, "clickTolerance", void 0);
13
-
14
- _defineProperty(this, "map", void 0);
15
-
16
10
  this.map = map;
17
11
  this.clickTolerance = options.clickTolerance;
18
12
  }
@@ -20,17 +14,25 @@ var MapEventHandler = function () {
20
14
  _createClass(MapEventHandler, [{
21
15
  key: "reset",
22
16
  value: function reset() {
17
+ // @ts-ignore
23
18
  delete this.mousedownPos;
24
19
  }
25
20
  }, {
26
21
  key: "wheel",
27
22
  value: function wheel(e) {
23
+ // If mapEvent.preventDefault() is called by the user, prevent handlers such as:
24
+ // - ScrollZoom
28
25
  return this.firePreventable(new MapWheelEvent(e.type, this.map, e));
29
26
  }
30
27
  }, {
31
28
  key: "mousedown",
32
29
  value: function mousedown(e, point) {
33
- this.mousedownPos = point;
30
+ this.mousedownPos = point; // If mapEvent.preventDefault() is called by the user, prevent handlers such as:
31
+ // - MousePan
32
+ // - MouseRotate
33
+ // - MousePitch
34
+ // - DblclickHandler
35
+
34
36
  return this.firePreventable(new MapMouseEvent(e.type, this.map, e));
35
37
  }
36
38
  }, {
@@ -50,6 +52,8 @@ var MapEventHandler = function () {
50
52
  }, {
51
53
  key: "dblclick",
52
54
  value: function dblclick(e) {
55
+ // If mapEvent.preventDefault() is called by the user, prevent handlers such as:
56
+ // - DblClickZoom
53
57
  return this.firePreventable(new MapMouseEvent(e.type, this.map, e));
54
58
  }
55
59
  }, {
@@ -65,6 +69,13 @@ var MapEventHandler = function () {
65
69
  }, {
66
70
  key: "touchstart",
67
71
  value: function touchstart(e) {
72
+ // If mapEvent.preventDefault() is called by the user, prevent handlers such as:
73
+ // - TouchPan
74
+ // - TouchZoom
75
+ // - TouchRotate
76
+ // - TouchPitch
77
+ // - TapZoom
78
+ // - SwipeZoom
68
79
  return this.firePreventable(new MapTouchEvent(e.type, this.map, e));
69
80
  }
70
81
  }, {
@@ -88,6 +99,7 @@ var MapEventHandler = function () {
88
99
  this.map.emit(mapEvent.type, mapEvent);
89
100
 
90
101
  if (mapEvent.defaultPrevented) {
102
+ // returning an object marks the handler as active and resets other handlers
91
103
  return {};
92
104
  }
93
105
  }
@@ -116,5 +128,4 @@ var MapEventHandler = function () {
116
128
  return MapEventHandler;
117
129
  }();
118
130
 
119
- export { MapEventHandler as default };
120
- //# sourceMappingURL=map_event.js.map
131
+ export { MapEventHandler as default };
@@ -1,5 +1,4 @@
1
- import MousePanHandler from './mousepan_handler';
2
- import MouseRotateHandler from './mousepitch_hander';
3
- import MousePitchHandler from './mouserotate_hander';
4
- export { MousePanHandler, MouseRotateHandler, MousePitchHandler };
5
- //# sourceMappingURL=index.js.map
1
+ import MousePanHandler from "./mousepan_handler";
2
+ import MouseRotateHandler from "./mousepitch_hander";
3
+ import MousePitchHandler from "./mouserotate_hander";
4
+ export { MousePanHandler, MouseRotateHandler, MousePitchHandler };
@@ -1,25 +1,13 @@
1
1
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
2
  import _createClass from "@babel/runtime/helpers/createClass";
3
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
- import DOM from '../../utils/dom';
5
- import { buttonStillPressed } from './util';
3
+ // @ts-ignore
4
+ import DOM from "../../utils/dom";
5
+ import { buttonStillPressed } from "./util";
6
6
 
7
- var MouseHandler = function () {
7
+ var MouseHandler = /*#__PURE__*/function () {
8
8
  function MouseHandler(options) {
9
9
  _classCallCheck(this, MouseHandler);
10
10
 
11
- _defineProperty(this, "enabled", void 0);
12
-
13
- _defineProperty(this, "active", void 0);
14
-
15
- _defineProperty(this, "lastPoint", void 0);
16
-
17
- _defineProperty(this, "eventButton", void 0);
18
-
19
- _defineProperty(this, "moved", void 0);
20
-
21
- _defineProperty(this, "clickTolerance", void 0);
22
-
23
11
  this.reset();
24
12
  this.clickTolerance = options.clickTolerance || 1;
25
13
  }
@@ -60,6 +48,12 @@ var MouseHandler = function () {
60
48
  e.preventDefault();
61
49
 
62
50
  if (buttonStillPressed(e, this.eventButton)) {
51
+ // Some browsers don't fire a `mouseup` when the mouseup occurs outside
52
+ // the window or iframe:
53
+ // https://github.com/mapbox/mapbox-gl-js/issues/4622
54
+ //
55
+ // If the button is no longer pressed during this `mousemove` it may have
56
+ // been released outside of the window or iframe.
63
57
  this.reset();
64
58
  return;
65
59
  }
@@ -69,7 +63,8 @@ var MouseHandler = function () {
69
63
  }
70
64
 
71
65
  this.moved = true;
72
- this.lastPoint = point;
66
+ this.lastPoint = point; // implemented by child class
67
+
73
68
  return this.move(lastPoint, point);
74
69
  }
75
70
  }, {
@@ -115,17 +110,18 @@ var MouseHandler = function () {
115
110
  }, {
116
111
  key: "correctButton",
117
112
  value: function correctButton(e, button) {
118
- return false;
113
+ // eslint-disable-line
114
+ return false; // implemented by child
119
115
  }
120
116
  }, {
121
117
  key: "move",
122
118
  value: function move(lastPoint, point) {
123
- return;
119
+ // eslint-disable-line
120
+ return; // implemented by child
124
121
  }
125
122
  }]);
126
123
 
127
124
  return MouseHandler;
128
125
  }();
129
126
 
130
- export { MouseHandler as default };
131
- //# sourceMappingURL=mouse_handler.js.map
127
+ export { MouseHandler as default };
@@ -9,10 +9,11 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
9
9
 
10
10
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
11
11
 
12
- import MouseHandler from './mouse_handler';
13
- import { LEFT_BUTTON } from './util';
12
+ // @ts-ignore
13
+ import MouseHandler from "./mouse_handler";
14
+ import { LEFT_BUTTON } from "./util";
14
15
 
15
- var MousePanHandler = function (_MouseHandler) {
16
+ var MousePanHandler = /*#__PURE__*/function (_MouseHandler) {
16
17
  _inherits(MousePanHandler, _MouseHandler);
17
18
 
18
19
  var _super = _createSuper(MousePanHandler);
@@ -50,5 +51,4 @@ var MousePanHandler = function (_MouseHandler) {
50
51
  return MousePanHandler;
51
52
  }(MouseHandler);
52
53
 
53
- export { MousePanHandler as default };
54
- //# sourceMappingURL=mousepan_handler.js.map
54
+ export { MousePanHandler as default };
@@ -8,10 +8,11 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
8
8
 
9
9
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
10
10
 
11
- import MouseHandler from './mouse_handler';
12
- import { LEFT_BUTTON, RIGHT_BUTTON } from './util';
11
+ // @ts-ignore
12
+ import MouseHandler from "./mouse_handler";
13
+ import { LEFT_BUTTON, RIGHT_BUTTON } from "./util";
13
14
 
14
- var MousePitchHandler = function (_MouseHandler) {
15
+ var MousePitchHandler = /*#__PURE__*/function (_MouseHandler) {
15
16
  _inherits(MousePitchHandler, _MouseHandler);
16
17
 
17
18
  var _super = _createSuper(MousePitchHandler);
@@ -43,6 +44,8 @@ var MousePitchHandler = function (_MouseHandler) {
43
44
  }, {
44
45
  key: "contextmenu",
45
46
  value: function contextmenu(e) {
47
+ // prevent browser context menu when necessary; we don't allow it with rotation
48
+ // because we can't discern rotation gesture start from contextmenu on Mac
46
49
  e.preventDefault();
47
50
  }
48
51
  }]);
@@ -50,5 +53,4 @@ var MousePitchHandler = function (_MouseHandler) {
50
53
  return MousePitchHandler;
51
54
  }(MouseHandler);
52
55
 
53
- export { MousePitchHandler as default };
54
- //# sourceMappingURL=mousepitch_hander.js.map
56
+ export { MousePitchHandler as default };
@@ -8,10 +8,11 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
8
8
 
9
9
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
10
10
 
11
- import MouseHandler from './mouse_handler';
12
- import { LEFT_BUTTON, RIGHT_BUTTON } from './util';
11
+ // @ts-ignore
12
+ import MouseHandler from "./mouse_handler";
13
+ import { LEFT_BUTTON, RIGHT_BUTTON } from "./util";
13
14
 
14
- var MouseRotateHandler = function (_MouseHandler) {
15
+ var MouseRotateHandler = /*#__PURE__*/function (_MouseHandler) {
15
16
  _inherits(MouseRotateHandler, _MouseHandler);
16
17
 
17
18
  var _super = _createSuper(MouseRotateHandler);
@@ -25,6 +26,8 @@ var MouseRotateHandler = function (_MouseHandler) {
25
26
  _createClass(MouseRotateHandler, [{
26
27
  key: "contextmenu",
27
28
  value: function contextmenu(e) {
29
+ // prevent browser context menu when necessary; we don't allow it with rotation
30
+ // because we can't discern rotation gesture start from contextmenu on Mac
28
31
  e.preventDefault();
29
32
  }
30
33
  }, {
@@ -50,5 +53,4 @@ var MouseRotateHandler = function (_MouseHandler) {
50
53
  return MouseRotateHandler;
51
54
  }(MouseHandler);
52
55
 
53
- export { MouseRotateHandler as default };
54
- //# sourceMappingURL=mouserotate_hander.js.map
56
+ export { MouseRotateHandler as default };
@@ -3,10 +3,10 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  var _BUTTONS_FLAGS;
4
4
 
5
5
  export var LEFT_BUTTON = 0;
6
- export var RIGHT_BUTTON = 2;
6
+ export var RIGHT_BUTTON = 2; // the values for each button in MouseEvent.buttons
7
+
7
8
  export var BUTTONS_FLAGS = (_BUTTONS_FLAGS = {}, _defineProperty(_BUTTONS_FLAGS, LEFT_BUTTON, 1), _defineProperty(_BUTTONS_FLAGS, RIGHT_BUTTON, 2), _BUTTONS_FLAGS);
8
9
  export function buttonStillPressed(e, button) {
9
10
  var flag = BUTTONS_FLAGS[button];
10
11
  return e.buttons === undefined || (e.buttons & flag) !== flag;
11
- }
12
- //# sourceMappingURL=util.js.map
12
+ }