@antv/l7-map 2.5.33 → 2.5.37-mini

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 (188) hide show
  1. package/lib/camera.js.map +1 -1
  2. package/lib/earthmap.js +7 -26
  3. package/lib/earthmap.js.map +1 -1
  4. package/lib/handler/handler_manager.js +55 -33
  5. package/lib/handler/handler_manager.js.map +1 -1
  6. package/lib/handler/scroll_zoom.js +1 -1
  7. package/lib/handler/scroll_zoom.js.map +1 -1
  8. package/lib/handler/shim/drag_pan.js +10 -2
  9. package/lib/handler/shim/drag_pan.js.map +1 -1
  10. package/lib/handler/shim/touch_zoom_rotate.js +10 -2
  11. package/lib/handler/shim/touch_zoom_rotate.js.map +1 -1
  12. package/lib/hash.js +9 -4
  13. package/lib/hash.js.map +1 -1
  14. package/lib/map.js +39 -19
  15. package/lib/map.js.map +1 -1
  16. package/lib/util.js +7 -5
  17. package/lib/util.js.map +1 -1
  18. package/lib/utils/dom.js +66 -26
  19. package/lib/utils/dom.js.map +1 -1
  20. package/lib/utils/performance.js +4 -1
  21. package/lib/utils/performance.js.map +1 -1
  22. package/package.json +3 -3
  23. package/LICENSE.md +0 -21
  24. package/es/camera.d.ts +0 -82
  25. package/es/camera.js +0 -729
  26. package/es/camera.js.map +0 -1
  27. package/es/earthmap.d.ts +0 -67
  28. package/es/earthmap.js +0 -454
  29. package/es/earthmap.js.map +0 -1
  30. package/es/geo/edge_insets.d.ts +0 -54
  31. package/es/geo/edge_insets.js +0 -88
  32. package/es/geo/edge_insets.js.map +0 -1
  33. package/es/geo/lng_lat.d.ts +0 -18
  34. package/es/geo/lng_lat.js +0 -77
  35. package/es/geo/lng_lat.js.map +0 -1
  36. package/es/geo/lng_lat_bounds.d.ts +0 -24
  37. package/es/geo/lng_lat_bounds.js +0 -170
  38. package/es/geo/lng_lat_bounds.js.map +0 -1
  39. package/es/geo/mercator.d.ts +0 -28
  40. package/es/geo/mercator.js +0 -79
  41. package/es/geo/mercator.js.map +0 -1
  42. package/es/geo/point.d.ts +0 -40
  43. package/es/geo/point.js +0 -237
  44. package/es/geo/point.js.map +0 -1
  45. package/es/geo/simple.d.ts +0 -28
  46. package/es/geo/simple.js +0 -78
  47. package/es/geo/simple.js.map +0 -1
  48. package/es/geo/transform.d.ts +0 -198
  49. package/es/geo/transform.js +0 -663
  50. package/es/geo/transform.js.map +0 -1
  51. package/es/handler/IHandler.d.ts +0 -34
  52. package/es/handler/IHandler.js +0 -2
  53. package/es/handler/IHandler.js.map +0 -1
  54. package/es/handler/blockable_map_event.d.ts +0 -17
  55. package/es/handler/blockable_map_event.js +0 -84
  56. package/es/handler/blockable_map_event.js.map +0 -1
  57. package/es/handler/box_zoom.d.ts +0 -59
  58. package/es/handler/box_zoom.js +0 -184
  59. package/es/handler/box_zoom.js.map +0 -1
  60. package/es/handler/click_zoom.d.ts +0 -16
  61. package/es/handler/click_zoom.js +0 -64
  62. package/es/handler/click_zoom.js.map +0 -1
  63. package/es/handler/events/event.d.ts +0 -4
  64. package/es/handler/events/event.js +0 -14
  65. package/es/handler/events/event.js.map +0 -1
  66. package/es/handler/events/index.d.ts +0 -4
  67. package/es/handler/events/index.js +0 -5
  68. package/es/handler/events/index.js.map +0 -1
  69. package/es/handler/events/map_mouse_event.d.ts +0 -34
  70. package/es/handler/events/map_mouse_event.js +0 -65
  71. package/es/handler/events/map_mouse_event.js.map +0 -1
  72. package/es/handler/events/map_touch_event.d.ts +0 -57
  73. package/es/handler/events/map_touch_event.js +0 -75
  74. package/es/handler/events/map_touch_event.js.map +0 -1
  75. package/es/handler/events/map_wheel_event.d.ts +0 -33
  76. package/es/handler/events/map_wheel_event.js +0 -52
  77. package/es/handler/events/map_wheel_event.js.map +0 -1
  78. package/es/handler/events/render_event.d.ts +0 -5
  79. package/es/handler/events/render_event.js +0 -41
  80. package/es/handler/events/render_event.js.map +0 -1
  81. package/es/handler/handler_inertia.d.ts +0 -23
  82. package/es/handler/handler_inertia.js +0 -186
  83. package/es/handler/handler_inertia.js.map +0 -1
  84. package/es/handler/handler_manager.d.ts +0 -57
  85. package/es/handler/handler_manager.js +0 -655
  86. package/es/handler/handler_manager.js.map +0 -1
  87. package/es/handler/handler_util.d.ts +0 -4
  88. package/es/handler/handler_util.js +0 -10
  89. package/es/handler/handler_util.js.map +0 -1
  90. package/es/handler/keyboard.d.ts +0 -36
  91. package/es/handler/keyboard.js +0 -157
  92. package/es/handler/keyboard.js.map +0 -1
  93. package/es/handler/map_event.d.ts +0 -29
  94. package/es/handler/map_event.js +0 -120
  95. package/es/handler/map_event.js.map +0 -1
  96. package/es/handler/mouse/index.d.ts +0 -4
  97. package/es/handler/mouse/index.js +0 -5
  98. package/es/handler/mouse/index.js.map +0 -1
  99. package/es/handler/mouse/mouse_handler.d.ts +0 -22
  100. package/es/handler/mouse/mouse_handler.js +0 -131
  101. package/es/handler/mouse/mouse_handler.js.map +0 -1
  102. package/es/handler/mouse/mousepan_handler.d.ts +0 -10
  103. package/es/handler/mouse/mousepan_handler.js +0 -54
  104. package/es/handler/mouse/mousepan_handler.js.map +0 -1
  105. package/es/handler/mouse/mousepitch_hander.d.ts +0 -9
  106. package/es/handler/mouse/mousepitch_hander.js +0 -54
  107. package/es/handler/mouse/mousepitch_hander.js.map +0 -1
  108. package/es/handler/mouse/mouserotate_hander.d.ts +0 -9
  109. package/es/handler/mouse/mouserotate_hander.js +0 -54
  110. package/es/handler/mouse/mouserotate_hander.js.map +0 -1
  111. package/es/handler/mouse/util.d.ts +0 -6
  112. package/es/handler/mouse/util.js +0 -12
  113. package/es/handler/mouse/util.js.map +0 -1
  114. package/es/handler/scroll_zoom.d.ts +0 -93
  115. package/es/handler/scroll_zoom.js +0 -317
  116. package/es/handler/scroll_zoom.js.map +0 -1
  117. package/es/handler/shim/dblclick_zoom.d.ts +0 -40
  118. package/es/handler/shim/dblclick_zoom.js +0 -45
  119. package/es/handler/shim/dblclick_zoom.js.map +0 -1
  120. package/es/handler/shim/drag_pan.d.ts +0 -61
  121. package/es/handler/shim/drag_pan.js +0 -53
  122. package/es/handler/shim/drag_pan.js.map +0 -1
  123. package/es/handler/shim/drag_rotate.d.ts +0 -46
  124. package/es/handler/shim/drag_rotate.js +0 -51
  125. package/es/handler/shim/drag_rotate.js.map +0 -1
  126. package/es/handler/shim/touch_zoom_rotate.d.ts +0 -70
  127. package/es/handler/shim/touch_zoom_rotate.js +0 -80
  128. package/es/handler/shim/touch_zoom_rotate.js.map +0 -1
  129. package/es/handler/tap/single_tap_recognizer.d.ts +0 -20
  130. package/es/handler/tap/single_tap_recognizer.js +0 -127
  131. package/es/handler/tap/single_tap_recognizer.js.map +0 -1
  132. package/es/handler/tap/tap_drag_zoom.d.ts +0 -22
  133. package/es/handler/tap/tap_drag_zoom.js +0 -124
  134. package/es/handler/tap/tap_drag_zoom.js.map +0 -1
  135. package/es/handler/tap/tap_recognizer.d.ts +0 -17
  136. package/es/handler/tap/tap_recognizer.js +0 -72
  137. package/es/handler/tap/tap_recognizer.js.map +0 -1
  138. package/es/handler/tap/tap_zoom.d.ts +0 -22
  139. package/es/handler/tap/tap_zoom.js +0 -124
  140. package/es/handler/tap/tap_zoom.js.map +0 -1
  141. package/es/handler/touch/index.d.ts +0 -5
  142. package/es/handler/touch/index.js +0 -6
  143. package/es/handler/touch/index.js.map +0 -1
  144. package/es/handler/touch/touch_pan.d.ts +0 -30
  145. package/es/handler/touch/touch_pan.js +0 -139
  146. package/es/handler/touch/touch_pan.js.map +0 -1
  147. package/es/handler/touch/touch_pitch.d.ts +0 -13
  148. package/es/handler/touch/touch_pitch.js +0 -120
  149. package/es/handler/touch/touch_pitch.js.map +0 -1
  150. package/es/handler/touch/touch_rotate.d.ts +0 -12
  151. package/es/handler/touch/touch_rotate.js +0 -88
  152. package/es/handler/touch/touch_rotate.js.map +0 -1
  153. package/es/handler/touch/touch_zoom.d.ts +0 -12
  154. package/es/handler/touch/touch_zoom.js +0 -79
  155. package/es/handler/touch/touch_zoom.js.map +0 -1
  156. package/es/handler/touch/two_touch.d.ts +0 -23
  157. package/es/handler/touch/two_touch.js +0 -140
  158. package/es/handler/touch/two_touch.js.map +0 -1
  159. package/es/hash.d.ts +0 -15
  160. package/es/hash.js +0 -143
  161. package/es/hash.js.map +0 -1
  162. package/es/index.d.ts +0 -2
  163. package/es/index.js +0 -3
  164. package/es/index.js.map +0 -1
  165. package/es/interface.d.ts +0 -31
  166. package/es/interface.js +0 -2
  167. package/es/interface.js.map +0 -1
  168. package/es/map.d.ts +0 -67
  169. package/es/map.js +0 -454
  170. package/es/map.js.map +0 -1
  171. package/es/util.d.ts +0 -18
  172. package/es/util.js +0 -74
  173. package/es/util.js.map +0 -1
  174. package/es/utils/Aabb.d.ts +0 -12
  175. package/es/utils/Aabb.js +0 -134
  176. package/es/utils/Aabb.js.map +0 -1
  177. package/es/utils/dom.d.ts +0 -4
  178. package/es/utils/dom.js +0 -165
  179. package/es/utils/dom.js.map +0 -1
  180. package/es/utils/performance.d.ts +0 -17
  181. package/es/utils/performance.js +0 -57
  182. package/es/utils/performance.js.map +0 -1
  183. package/es/utils/primitives.d.ts +0 -6
  184. package/es/utils/primitives.js +0 -44
  185. package/es/utils/primitives.js.map +0 -1
  186. package/es/utils/task_queue.d.ts +0 -13
  187. package/es/utils/task_queue.js +0 -113
  188. package/es/utils/task_queue.js.map +0 -1
package/es/utils/Aabb.js DELETED
@@ -1,134 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
-
5
- 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; } } }; }
6
-
7
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
-
9
- 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; }
10
-
11
- import { vec3, vec4 } from 'gl-matrix';
12
-
13
- var Aabb = function () {
14
- function Aabb(min, max) {
15
- _classCallCheck(this, Aabb);
16
-
17
- _defineProperty(this, "min", void 0);
18
-
19
- _defineProperty(this, "max", void 0);
20
-
21
- _defineProperty(this, "center", void 0);
22
-
23
- this.min = min;
24
- this.max = max;
25
- this.center = vec3.scale(new Float32Array(3), vec3.add(new Float32Array(3), this.min, this.max), 0.5);
26
- }
27
-
28
- _createClass(Aabb, [{
29
- key: "quadrant",
30
- value: function quadrant(index) {
31
- var split = [index % 2 === 0, index < 2];
32
- var qMin = vec3.clone(this.min);
33
- var qMax = vec3.clone(this.max);
34
-
35
- for (var axis = 0; axis < split.length; axis++) {
36
- qMin[axis] = split[axis] ? this.min[axis] : this.center[axis];
37
- qMax[axis] = split[axis] ? this.center[axis] : this.max[axis];
38
- }
39
-
40
- qMax[2] = this.max[2];
41
- return new Aabb(qMin, qMax);
42
- }
43
- }, {
44
- key: "distanceX",
45
- value: function distanceX(point) {
46
- var pointOnAabb = Math.max(Math.min(this.max[0], point[0]), this.min[0]);
47
- return pointOnAabb - point[0];
48
- }
49
- }, {
50
- key: "distanceY",
51
- value: function distanceY(point) {
52
- var pointOnAabb = Math.max(Math.min(this.max[1], point[1]), this.min[1]);
53
- return pointOnAabb - point[1];
54
- }
55
- }, {
56
- key: "intersects",
57
- value: function intersects(frustum) {
58
- var aabbPoints = [[this.min[0], this.min[1], 0.0, 1], [this.max[0], this.min[1], 0.0, 1], [this.max[0], this.max[1], 0.0, 1], [this.min[0], this.max[1], 0.0, 1]];
59
- var fullyInside = true;
60
-
61
- var _iterator = _createForOfIteratorHelper(frustum.planes),
62
- _step;
63
-
64
- try {
65
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
66
- var plane = _step.value;
67
- var pointsInside = 0;
68
-
69
- var _iterator3 = _createForOfIteratorHelper(aabbPoints),
70
- _step3;
71
-
72
- try {
73
- for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
74
- var i = _step3.value;
75
- pointsInside += vec4.dot(plane, i) >= 0;
76
- }
77
- } catch (err) {
78
- _iterator3.e(err);
79
- } finally {
80
- _iterator3.f();
81
- }
82
-
83
- if (pointsInside === 0) {
84
- return 0;
85
- }
86
-
87
- if (pointsInside !== aabbPoints.length) {
88
- fullyInside = false;
89
- }
90
- }
91
- } catch (err) {
92
- _iterator.e(err);
93
- } finally {
94
- _iterator.f();
95
- }
96
-
97
- if (fullyInside) {
98
- return 2;
99
- }
100
-
101
- for (var axis = 0; axis < 3; axis++) {
102
- var projMin = Number.MAX_VALUE;
103
- var projMax = -Number.MAX_VALUE;
104
-
105
- var _iterator2 = _createForOfIteratorHelper(frustum.points),
106
- _step2;
107
-
108
- try {
109
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
110
- var p = _step2.value;
111
- var projectedPoint = p[axis] - this.min[axis];
112
- projMin = Math.min(projMin, projectedPoint);
113
- projMax = Math.max(projMax, projectedPoint);
114
- }
115
- } catch (err) {
116
- _iterator2.e(err);
117
- } finally {
118
- _iterator2.f();
119
- }
120
-
121
- if (projMax < 0 || projMin > this.max[axis] - this.min[axis]) {
122
- return 0;
123
- }
124
- }
125
-
126
- return 1;
127
- }
128
- }]);
129
-
130
- return Aabb;
131
- }();
132
-
133
- export { Aabb as default };
134
- //# sourceMappingURL=Aabb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/Aabb.ts"],"names":["vec3","vec4","Aabb","min","max","center","scale","Float32Array","add","index","split","qMin","clone","qMax","axis","length","point","pointOnAabb","Math","frustum","aabbPoints","fullyInside","planes","plane","pointsInside","i","dot","projMin","Number","MAX_VALUE","projMax","points","p","projectedPoint"],"mappings":"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","sourcesContent":["import { vec3, vec4 } from 'gl-matrix';\nimport Frustum from './primitives';\nexport default class Aabb {\n public min: vec3;\n public max: vec3;\n public center: vec3;\n\n constructor(min: vec3, max: vec3) {\n this.min = min;\n this.max = max;\n this.center = vec3.scale(\n new Float32Array(3),\n vec3.add(new Float32Array(3), this.min, this.max),\n 0.5,\n );\n }\n\n public quadrant(index: number): Aabb {\n const split = [index % 2 === 0, index < 2];\n const qMin = vec3.clone(this.min);\n const qMax = vec3.clone(this.max);\n for (let axis = 0; axis < split.length; axis++) {\n qMin[axis] = split[axis] ? this.min[axis] : this.center[axis];\n qMax[axis] = split[axis] ? this.center[axis] : this.max[axis];\n }\n // Elevation is always constant, hence quadrant.max.z = this.max.z\n qMax[2] = this.max[2];\n return new Aabb(qMin, qMax);\n }\n\n public distanceX(point: number[]): number {\n const pointOnAabb = Math.max(Math.min(this.max[0], point[0]), this.min[0]);\n return pointOnAabb - point[0];\n }\n\n public distanceY(point: number[]): number {\n const pointOnAabb = Math.max(Math.min(this.max[1], point[1]), this.min[1]);\n return pointOnAabb - point[1];\n }\n\n // Performs a frustum-aabb intersection test. Returns 0 if there's no intersection,\n // 1 if shapes are intersecting and 2 if the aabb if fully inside the frustum.\n public intersects(frustum: Frustum): number {\n // Execute separating axis test between two convex objects to find intersections\n // Each frustum plane together with 3 major axes define the separating axes\n // Note: test only 4 points as both min and max points have equal elevation\n\n const aabbPoints = [\n [this.min[0], this.min[1], 0.0, 1],\n [this.max[0], this.min[1], 0.0, 1],\n [this.max[0], this.max[1], 0.0, 1],\n [this.min[0], this.max[1], 0.0, 1],\n ];\n\n let fullyInside = true;\n\n for (const plane of frustum.planes) {\n let pointsInside = 0;\n\n for (const i of aabbPoints) {\n // @ts-ignore\n pointsInside += vec4.dot(plane, i) >= 0;\n }\n\n if (pointsInside === 0) {\n return 0;\n }\n\n if (pointsInside !== aabbPoints.length) {\n fullyInside = false;\n }\n }\n\n if (fullyInside) {\n return 2;\n }\n\n for (let axis = 0; axis < 3; axis++) {\n let projMin = Number.MAX_VALUE;\n let projMax = -Number.MAX_VALUE;\n\n for (const p of frustum.points) {\n const projectedPoint = p[axis] - this.min[axis];\n\n projMin = Math.min(projMin, projectedPoint);\n projMax = Math.max(projMax, projectedPoint);\n }\n\n if (projMax < 0 || projMin > this.max[axis] - this.min[axis]) {\n return 0;\n }\n }\n\n return 1;\n }\n}\n"],"file":"Aabb.js"}
package/es/utils/dom.d.ts DELETED
@@ -1,4 +0,0 @@
1
- declare const DOM: {
2
- [key: string]: (...arg: any[]) => any;
3
- };
4
- export default DOM;
package/es/utils/dom.js DELETED
@@ -1,165 +0,0 @@
1
- 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; } } }; }
2
-
3
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
-
5
- 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; }
6
-
7
- import Point from '../geo/point';
8
- var DOM = {};
9
- export default DOM;
10
-
11
- DOM.create = function (tagName, className, container) {
12
- var el = window.document.createElement(tagName);
13
-
14
- if (className !== undefined) {
15
- el.className = className;
16
- }
17
-
18
- if (container) {
19
- container.appendChild(el);
20
- }
21
-
22
- return el;
23
- };
24
-
25
- DOM.createNS = function (namespaceURI, tagName) {
26
- var el = window.document.createElementNS(namespaceURI, tagName);
27
- return el;
28
- };
29
-
30
- var docStyle = window.document && window.document.documentElement.style;
31
-
32
- function testProp(props) {
33
- if (!docStyle) {
34
- return props[0];
35
- }
36
-
37
- var _iterator = _createForOfIteratorHelper(props),
38
- _step;
39
-
40
- try {
41
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
42
- var i = _step.value;
43
-
44
- if (i in docStyle) {
45
- return i;
46
- }
47
- }
48
- } catch (err) {
49
- _iterator.e(err);
50
- } finally {
51
- _iterator.f();
52
- }
53
-
54
- return props[0];
55
- }
56
-
57
- var selectProp = testProp(['userSelect', 'MozUserSelect', 'WebkitUserSelect', 'msUserSelect']);
58
- var userSelect;
59
-
60
- DOM.disableDrag = function () {
61
- if (docStyle && selectProp) {
62
- userSelect = docStyle[selectProp];
63
- docStyle[selectProp] = 'none';
64
- }
65
- };
66
-
67
- DOM.enableDrag = function () {
68
- if (docStyle && selectProp) {
69
- docStyle[selectProp] = userSelect;
70
- }
71
- };
72
-
73
- var transformProp = testProp(['transform', 'WebkitTransform']);
74
-
75
- DOM.setTransform = function (el, value) {
76
- el.style[transformProp] = value;
77
- };
78
-
79
- var passiveSupported = false;
80
-
81
- try {
82
- var options = Object.defineProperty({}, 'passive', {
83
- get: function get() {
84
- passiveSupported = true;
85
- }
86
- });
87
- window.addEventListener('test', options, options);
88
- window.removeEventListener('test', options, options);
89
- } catch (err) {
90
- passiveSupported = false;
91
- }
92
-
93
- DOM.addEventListener = function (target, type, callback) {
94
- var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
95
-
96
- if ('passive' in options && passiveSupported) {
97
- target.addEventListener(type, callback, options);
98
- } else {
99
- target.addEventListener(type, callback, options.capture);
100
- }
101
- };
102
-
103
- DOM.removeEventListener = function (target, type, callback) {
104
- var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
105
-
106
- if ('passive' in options && passiveSupported) {
107
- target.removeEventListener(type, callback, options);
108
- } else {
109
- target.removeEventListener(type, callback, options.capture);
110
- }
111
- };
112
-
113
- var suppressClick = function suppressClick(e) {
114
- e.preventDefault();
115
- e.stopPropagation();
116
- window.removeEventListener('click', suppressClick, true);
117
- };
118
-
119
- DOM.suppressClick = function () {
120
- window.addEventListener('click', suppressClick, true);
121
- window.setTimeout(function () {
122
- window.removeEventListener('click', suppressClick, true);
123
- }, 0);
124
- };
125
-
126
- DOM.mousePos = function (el, e) {
127
- var rect = el.getBoundingClientRect();
128
- return new Point(e.clientX - rect.left - el.clientLeft, e.clientY - rect.top - el.clientTop);
129
- };
130
-
131
- DOM.touchPos = function (el, touches) {
132
- var rect = el.getBoundingClientRect();
133
- var points = [];
134
-
135
- var _iterator2 = _createForOfIteratorHelper(touches),
136
- _step2;
137
-
138
- try {
139
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
140
- var touche = _step2.value;
141
- points.push(new Point(touche.clientX - rect.left - el.clientLeft, touche.clientY - rect.top - el.clientTop));
142
- }
143
- } catch (err) {
144
- _iterator2.e(err);
145
- } finally {
146
- _iterator2.f();
147
- }
148
-
149
- return points;
150
- };
151
-
152
- DOM.mouseButton = function (e) {
153
- if (typeof window.InstallTrigger !== 'undefined' && e.button === 2 && e.ctrlKey && window.navigator.platform.toUpperCase().indexOf('MAC') >= 0) {
154
- return 0;
155
- }
156
-
157
- return e.button;
158
- };
159
-
160
- DOM.remove = function (node) {
161
- if (node.parentNode) {
162
- node.parentNode.removeChild(node);
163
- }
164
- };
165
- //# sourceMappingURL=dom.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/dom.ts"],"names":["Point","DOM","create","tagName","className","container","el","window","document","createElement","undefined","appendChild","createNS","namespaceURI","createElementNS","docStyle","documentElement","style","testProp","props","i","selectProp","userSelect","disableDrag","enableDrag","transformProp","setTransform","value","passiveSupported","options","Object","defineProperty","get","addEventListener","removeEventListener","err","target","type","callback","capture","suppressClick","e","preventDefault","stopPropagation","setTimeout","mousePos","rect","getBoundingClientRect","clientX","left","clientLeft","clientY","top","clientTop","touchPos","touches","points","touche","push","mouseButton","InstallTrigger","button","ctrlKey","navigator","platform","toUpperCase","indexOf","remove","node","parentNode","removeChild"],"mappings":";;;;;;AACA,OAAOA,KAAP,MAAkB,cAAlB;AAEA,IAAMC,GAEL,GAAG,EAFJ;AAGA,eAAeA,GAAf;;AAEAA,GAAG,CAACC,MAAJ,GAAa,UAACC,OAAD,EAAkBC,SAAlB,EAAsCC,SAAtC,EAAkE;AAC7E,MAAMC,EAAE,GAAGC,MAAM,CAACC,QAAP,CAAgBC,aAAhB,CAA8BN,OAA9B,CAAX;;AACA,MAAIC,SAAS,KAAKM,SAAlB,EAA6B;AAC3BJ,IAAAA,EAAE,CAACF,SAAH,GAAeA,SAAf;AACD;;AACD,MAAIC,SAAJ,EAAe;AACbA,IAAAA,SAAS,CAACM,WAAV,CAAsBL,EAAtB;AACD;;AACD,SAAOA,EAAP;AACD,CATD;;AAWAL,GAAG,CAACW,QAAJ,GAAe,UAACC,YAAD,EAAuBV,OAAvB,EAA2C;AACxD,MAAMG,EAAE,GAAGC,MAAM,CAACC,QAAP,CAAgBM,eAAhB,CAAgCD,YAAhC,EAA8CV,OAA9C,CAAX;AACA,SAAOG,EAAP;AACD,CAHD;;AAKA,IAAMS,QAAQ,GAAGR,MAAM,CAACC,QAAP,IAAmBD,MAAM,CAACC,QAAP,CAAgBQ,eAAhB,CAAgCC,KAApE;;AAEA,SAASC,QAAT,CAAkBC,KAAlB,EAA8B;AAC5B,MAAI,CAACJ,QAAL,EAAe;AACb,WAAOI,KAAK,CAAC,CAAD,CAAZ;AACD;;AAH2B,6CAIZA,KAJY;AAAA;;AAAA;AAI5B,wDAAuB;AAAA,UAAZC,CAAY;;AACrB,UAAIA,CAAC,IAAIL,QAAT,EAAmB;AACjB,eAAOK,CAAP;AACD;AACF;AAR2B;AAAA;AAAA;AAAA;AAAA;;AAS5B,SAAOD,KAAK,CAAC,CAAD,CAAZ;AACD;;AAED,IAAME,UAAU,GAAGH,QAAQ,CAAC,CAC1B,YAD0B,EAE1B,eAF0B,EAG1B,kBAH0B,EAI1B,cAJ0B,CAAD,CAA3B;AAMA,IAAII,UAAJ;;AAEArB,GAAG,CAACsB,WAAJ,GAAkB,YAAM;AACtB,MAAIR,QAAQ,IAAIM,UAAhB,EAA4B;AAC1BC,IAAAA,UAAU,GAAGP,QAAQ,CAACM,UAAD,CAArB;AACAN,IAAAA,QAAQ,CAACM,UAAD,CAAR,GAAuB,MAAvB;AACD;AACF,CALD;;AAOApB,GAAG,CAACuB,UAAJ,GAAiB,YAAM;AACrB,MAAIT,QAAQ,IAAIM,UAAhB,EAA4B;AAC1BN,IAAAA,QAAQ,CAACM,UAAD,CAAR,GAAuBC,UAAvB;AACD;AACF,CAJD;;AAMA,IAAMG,aAAa,GAAGP,QAAQ,CAAC,CAAC,WAAD,EAAc,iBAAd,CAAD,CAA9B;;AAEAjB,GAAG,CAACyB,YAAJ,GAAmB,UAACpB,EAAD,EAAkBqB,KAAlB,EAAoC;AAGrDrB,EAAAA,EAAE,CAACW,KAAH,CAASQ,aAAT,IAA0BE,KAA1B;AACD,CAJD;;AAOA,IAAIC,gBAAgB,GAAG,KAAvB;;AAEA,IAAI;AAGF,MAAMC,OAAO,GAAGC,MAAM,CAACC,cAAP,CAAsB,EAAtB,EAA0B,SAA1B,EAAqC;AACnDC,IAAAA,GADmD,iBAC7C;AAEJJ,MAAAA,gBAAgB,GAAG,IAAnB;AACD;AAJkD,GAArC,CAAhB;AAOArB,EAAAA,MAAM,CAAC0B,gBAAP,CAAwB,MAAxB,EAAgCJ,OAAhC,EAAyCA,OAAzC;AAEAtB,EAAAA,MAAM,CAAC2B,mBAAP,CAA2B,MAA3B,EAAmCL,OAAnC,EAA4CA,OAA5C;AACD,CAbD,CAaE,OAAOM,GAAP,EAAY;AACZP,EAAAA,gBAAgB,GAAG,KAAnB;AACD;;AAED3B,GAAG,CAACgC,gBAAJ,GAAuB,UACrBG,MADqB,EAErBC,IAFqB,EAGrBC,QAHqB,EAKlB;AAAA,MADHT,OACG,uEADiD,EACjD;;AACH,MAAI,aAAaA,OAAb,IAAwBD,gBAA5B,EAA8C;AAC5CQ,IAAAA,MAAM,CAACH,gBAAP,CAAwBI,IAAxB,EAA8BC,QAA9B,EAAwCT,OAAxC;AACD,GAFD,MAEO;AACLO,IAAAA,MAAM,CAACH,gBAAP,CAAwBI,IAAxB,EAA8BC,QAA9B,EAAwCT,OAAO,CAACU,OAAhD;AACD;AACF,CAXD;;AAaAtC,GAAG,CAACiC,mBAAJ,GAA0B,UACxBE,MADwB,EAExBC,IAFwB,EAGxBC,QAHwB,EAKrB;AAAA,MADHT,OACG,uEADiD,EACjD;;AACH,MAAI,aAAaA,OAAb,IAAwBD,gBAA5B,EAA8C;AAC5CQ,IAAAA,MAAM,CAACF,mBAAP,CAA2BG,IAA3B,EAAiCC,QAAjC,EAA2CT,OAA3C;AACD,GAFD,MAEO;AACLO,IAAAA,MAAM,CAACF,mBAAP,CAA2BG,IAA3B,EAAiCC,QAAjC,EAA2CT,OAAO,CAACU,OAAnD;AACD;AACF,CAXD;;AAcA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,CAAD,EAAmB;AACvCA,EAAAA,CAAC,CAACC,cAAF;AACAD,EAAAA,CAAC,CAACE,eAAF;AACApC,EAAAA,MAAM,CAAC2B,mBAAP,CAA2B,OAA3B,EAAoCM,aAApC,EAAmD,IAAnD;AACD,CAJD;;AAMAvC,GAAG,CAACuC,aAAJ,GAAoB,YAAM;AACxBjC,EAAAA,MAAM,CAAC0B,gBAAP,CAAwB,OAAxB,EAAiCO,aAAjC,EAAgD,IAAhD;AACAjC,EAAAA,MAAM,CAACqC,UAAP,CAAkB,YAAM;AACtBrC,IAAAA,MAAM,CAAC2B,mBAAP,CAA2B,OAA3B,EAAoCM,aAApC,EAAmD,IAAnD;AACD,GAFD,EAEG,CAFH;AAGD,CALD;;AAOAvC,GAAG,CAAC4C,QAAJ,GAAe,UAACvC,EAAD,EAAkBmC,CAAlB,EAA4C;AACzD,MAAMK,IAAI,GAAGxC,EAAE,CAACyC,qBAAH,EAAb;AACA,SAAO,IAAI/C,KAAJ,CACLyC,CAAC,CAACO,OAAF,GAAYF,IAAI,CAACG,IAAjB,GAAwB3C,EAAE,CAAC4C,UADtB,EAELT,CAAC,CAACU,OAAF,GAAYL,IAAI,CAACM,GAAjB,GAAuB9C,EAAE,CAAC+C,SAFrB,CAAP;AAID,CAND;;AAQApD,GAAG,CAACqD,QAAJ,GAAe,UAAChD,EAAD,EAAkBiD,OAAlB,EAAuC;AACpD,MAAMT,IAAI,GAAGxC,EAAE,CAACyC,qBAAH,EAAb;AACA,MAAMS,MAAM,GAAG,EAAf;;AAFoD,8CAG/BD,OAH+B;AAAA;;AAAA;AAGpD,2DAA8B;AAAA,UAAnBE,MAAmB;AAC5BD,MAAAA,MAAM,CAACE,IAAP,CACE,IAAI1D,KAAJ,CACEyD,MAAM,CAACT,OAAP,GAAiBF,IAAI,CAACG,IAAtB,GAA6B3C,EAAE,CAAC4C,UADlC,EAEEO,MAAM,CAACN,OAAP,GAAiBL,IAAI,CAACM,GAAtB,GAA4B9C,EAAE,CAAC+C,SAFjC,CADF;AAMD;AAVmD;AAAA;AAAA;AAAA;AAAA;;AAWpD,SAAOG,MAAP;AACD,CAZD;;AAcAvD,GAAG,CAAC0D,WAAJ,GAAkB,UAAClB,CAAD,EAAmB;AACnC,MAEE,OAAOlC,MAAM,CAACqD,cAAd,KAAiC,WAAjC,IACAnB,CAAC,CAACoB,MAAF,KAAa,CADb,IAEApB,CAAC,CAACqB,OAFF,IAGAvD,MAAM,CAACwD,SAAP,CAAiBC,QAAjB,CAA0BC,WAA1B,GAAwCC,OAAxC,CAAgD,KAAhD,KAA0D,CAL5D,EAME;AAIA,WAAO,CAAP;AACD;;AACD,SAAOzB,CAAC,CAACoB,MAAT;AACD,CAdD;;AAgBA5D,GAAG,CAACkE,MAAJ,GAAa,UAACC,IAAD,EAAuB;AAClC,MAAIA,IAAI,CAACC,UAAT,EAAqB;AACnBD,IAAAA,IAAI,CAACC,UAAL,CAAgBC,WAAhB,CAA4BF,IAA5B;AACD;AACF,CAJD","sourcesContent":["// @ts-ignore\nimport Point from '../geo/point';\n\nconst DOM: {\n [key: string]: (...arg: any[]) => any;\n} = {};\nexport default DOM;\n\nDOM.create = (tagName: string, className?: string, container?: HTMLElement) => {\n const el = window.document.createElement(tagName);\n if (className !== undefined) {\n el.className = className;\n }\n if (container) {\n container.appendChild(el);\n }\n return el;\n};\n\nDOM.createNS = (namespaceURI: string, tagName: string) => {\n const el = window.document.createElementNS(namespaceURI, tagName);\n return el;\n};\n\nconst docStyle = window.document && window.document.documentElement.style;\n\nfunction testProp(props: any) {\n if (!docStyle) {\n return props[0];\n }\n for (const i of props) {\n if (i in docStyle) {\n return i;\n }\n }\n return props[0];\n}\n\nconst selectProp = testProp([\n 'userSelect',\n 'MozUserSelect',\n 'WebkitUserSelect',\n 'msUserSelect',\n]);\nlet userSelect: any;\n\nDOM.disableDrag = () => {\n if (docStyle && selectProp) {\n userSelect = docStyle[selectProp];\n docStyle[selectProp] = 'none';\n }\n};\n\nDOM.enableDrag = () => {\n if (docStyle && selectProp) {\n docStyle[selectProp] = userSelect;\n }\n};\n\nconst transformProp = testProp(['transform', 'WebkitTransform']);\n\nDOM.setTransform = (el: HTMLElement, value: string) => {\n // https://github.com/facebook/flow/issues/7754\n // $FlowFixMe\n el.style[transformProp] = value;\n};\n\n// Feature detection for {passive: false} support in add/removeEventListener.\nlet passiveSupported = false;\n\ntry {\n // https://github.com/facebook/flow/issues/285\n // $FlowFixMe\n const options = Object.defineProperty({}, 'passive', {\n get() {\n // eslint-disable-line\n passiveSupported = true;\n },\n });\n // @ts-ignore\n window.addEventListener('test', options, options);\n // @ts-ignore\n window.removeEventListener('test', options, options);\n} catch (err) {\n passiveSupported = false;\n}\n\nDOM.addEventListener = (\n target: any,\n type: any,\n callback: any,\n options: { passive?: boolean; capture?: boolean } = {},\n) => {\n if ('passive' in options && passiveSupported) {\n target.addEventListener(type, callback, options);\n } else {\n target.addEventListener(type, callback, options.capture);\n }\n};\n\nDOM.removeEventListener = (\n target: any,\n type: any,\n callback: any,\n options: { passive?: boolean; capture?: boolean } = {},\n) => {\n if ('passive' in options && passiveSupported) {\n target.removeEventListener(type, callback, options);\n } else {\n target.removeEventListener(type, callback, options.capture);\n }\n};\n\n// Suppress the next click, but only if it's immediate.\nconst suppressClick = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n window.removeEventListener('click', suppressClick, true);\n};\n\nDOM.suppressClick = () => {\n window.addEventListener('click', suppressClick, true);\n window.setTimeout(() => {\n window.removeEventListener('click', suppressClick, true);\n }, 0);\n};\n\nDOM.mousePos = (el: HTMLElement, e: MouseEvent | Touch) => {\n const rect = el.getBoundingClientRect();\n return new Point(\n e.clientX - rect.left - el.clientLeft,\n e.clientY - rect.top - el.clientTop,\n );\n};\n\nDOM.touchPos = (el: HTMLElement, touches: Touch[]) => {\n const rect = el.getBoundingClientRect();\n const points = [];\n for (const touche of touches) {\n points.push(\n new Point(\n touche.clientX - rect.left - el.clientLeft,\n touche.clientY - rect.top - el.clientTop,\n ),\n );\n }\n return points;\n};\n\nDOM.mouseButton = (e: MouseEvent) => {\n if (\n // @ts-ignore\n typeof window.InstallTrigger !== 'undefined' &&\n e.button === 2 &&\n e.ctrlKey &&\n window.navigator.platform.toUpperCase().indexOf('MAC') >= 0\n ) {\n // Fix for https://github.com/mapbox/mapbox-gl-js/issues/3131:\n // Firefox (detected by InstallTrigger) on Mac determines e.button = 2 when\n // using Control + left click\n return 0;\n }\n return e.button;\n};\n\nDOM.remove = (node: HTMLElement) => {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n};\n"],"file":"dom.js"}
@@ -1,17 +0,0 @@
1
- export interface IPerformanceMetrics {
2
- loadTime: number;
3
- fullLoadTime: number;
4
- fps: number;
5
- percentDroppedFrames: number;
6
- }
7
- export declare const PerformanceMarkers: {
8
- create: string;
9
- load: string;
10
- fullLoad: string;
11
- };
12
- export declare const PerformanceUtils: {
13
- mark(marker: string): void;
14
- frame(timestamp: number): void;
15
- clearMetrics(): void;
16
- getPerformanceMetrics(): IPerformanceMetrics;
17
- };
@@ -1,57 +0,0 @@
1
- var lastFrameTime = null;
2
- var frameTimes = [];
3
- var minFramerateTarget = 30;
4
- var frameTimeTarget = 1000 / minFramerateTarget;
5
- var performance = window.performance;
6
- export var PerformanceMarkers = {
7
- create: 'create',
8
- load: 'load',
9
- fullLoad: 'fullLoad'
10
- };
11
- export var PerformanceUtils = {
12
- mark: function mark(marker) {
13
- performance.mark(marker);
14
- },
15
- frame: function frame(timestamp) {
16
- var currTimestamp = timestamp;
17
-
18
- if (lastFrameTime != null) {
19
- var frameTime = currTimestamp - lastFrameTime;
20
- frameTimes.push(frameTime);
21
- }
22
-
23
- lastFrameTime = currTimestamp;
24
- },
25
- clearMetrics: function clearMetrics() {
26
- lastFrameTime = null;
27
- frameTimes = [];
28
- performance.clearMeasures('loadTime');
29
- performance.clearMeasures('fullLoadTime');
30
-
31
- for (var marker in PerformanceMarkers) {
32
- performance.clearMarks(PerformanceMarkers[marker]);
33
- }
34
- },
35
- getPerformanceMetrics: function getPerformanceMetrics() {
36
- var loadTime = performance.measure('loadTime', PerformanceMarkers.create, PerformanceMarkers.load).duration;
37
- var fullLoadTime = performance.measure('fullLoadTime', PerformanceMarkers.create, PerformanceMarkers.fullLoad).duration;
38
- var totalFrames = frameTimes.length;
39
- var avgFrameTime = frameTimes.reduce(function (prev, curr) {
40
- return prev + curr;
41
- }, 0) / totalFrames / 1000;
42
- var fps = 1 / avgFrameTime;
43
- var droppedFrames = frameTimes.filter(function (frameTime) {
44
- return frameTime > frameTimeTarget;
45
- }).reduce(function (acc, curr) {
46
- return acc + (curr - frameTimeTarget) / frameTimeTarget;
47
- }, 0);
48
- var percentDroppedFrames = droppedFrames / (totalFrames + droppedFrames) * 100;
49
- return {
50
- loadTime: loadTime,
51
- fullLoadTime: fullLoadTime,
52
- fps: fps,
53
- percentDroppedFrames: percentDroppedFrames
54
- };
55
- }
56
- };
57
- //# sourceMappingURL=performance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/performance.ts"],"names":["lastFrameTime","frameTimes","minFramerateTarget","frameTimeTarget","performance","window","PerformanceMarkers","create","load","fullLoad","PerformanceUtils","mark","marker","frame","timestamp","currTimestamp","frameTime","push","clearMetrics","clearMeasures","clearMarks","getPerformanceMetrics","loadTime","measure","duration","fullLoadTime","totalFrames","length","avgFrameTime","reduce","prev","curr","fps","droppedFrames","filter","acc","percentDroppedFrames"],"mappings":"AAAA,IAAIA,aAA4B,GAAG,IAAnC;AACA,IAAIC,UAAoB,GAAG,EAA3B;AAEA,IAAMC,kBAAkB,GAAG,EAA3B;AACA,IAAMC,eAAe,GAAG,OAAOD,kBAA/B;AACA,IAAME,WAAW,GAAGC,MAAM,CAACD,WAA3B;AASA,OAAO,IAAME,kBAAkB,GAAG;AAChCC,EAAAA,MAAM,EAAE,QADwB;AAEhCC,EAAAA,IAAI,EAAE,MAF0B;AAGhCC,EAAAA,QAAQ,EAAE;AAHsB,CAA3B;AAMP,OAAO,IAAMC,gBAAgB,GAAG;AAC9BC,EAAAA,IAD8B,gBACzBC,MADyB,EACT;AACnBR,IAAAA,WAAW,CAACO,IAAZ,CAAiBC,MAAjB;AACD,GAH6B;AAI9BC,EAAAA,KAJ8B,iBAIxBC,SAJwB,EAIL;AACvB,QAAMC,aAAa,GAAGD,SAAtB;;AACA,QAAId,aAAa,IAAI,IAArB,EAA2B;AACzB,UAAMgB,SAAS,GAAGD,aAAa,GAAGf,aAAlC;AACAC,MAAAA,UAAU,CAACgB,IAAX,CAAgBD,SAAhB;AACD;;AACDhB,IAAAA,aAAa,GAAGe,aAAhB;AACD,GAX6B;AAY9BG,EAAAA,YAZ8B,0BAYf;AACblB,IAAAA,aAAa,GAAG,IAAhB;AACAC,IAAAA,UAAU,GAAG,EAAb;AACAG,IAAAA,WAAW,CAACe,aAAZ,CAA0B,UAA1B;AACAf,IAAAA,WAAW,CAACe,aAAZ,CAA0B,cAA1B;;AAGA,SAAK,IAAMP,MAAX,IAAqBN,kBAArB,EAAyC;AAEvCF,MAAAA,WAAW,CAACgB,UAAZ,CAAuBd,kBAAkB,CAACM,MAAD,CAAzC;AACD;AACF,GAvB6B;AAwB9BS,EAAAA,qBAxB8B,mCAwBe;AAC3C,QAAMC,QAAQ,GAAGlB,WAAW,CAACmB,OAAZ,CACf,UADe,EAEfjB,kBAAkB,CAACC,MAFJ,EAGfD,kBAAkB,CAACE,IAHJ,EAKfgB,QALF;AAOA,QAAMC,YAAY,GAAGrB,WAAW,CAACmB,OAAZ,CACnB,cADmB,EAEnBjB,kBAAkB,CAACC,MAFA,EAGnBD,kBAAkB,CAACG,QAHA,EAKnBe,QALF;AAMA,QAAME,WAAW,GAAGzB,UAAU,CAAC0B,MAA/B;AAEA,QAAMC,YAAY,GAChB3B,UAAU,CAAC4B,MAAX,CAAkB,UAACC,IAAD,EAAOC,IAAP;AAAA,aAAgBD,IAAI,GAAGC,IAAvB;AAAA,KAAlB,EAA+C,CAA/C,IAAoDL,WAApD,GAAkE,IADpE;AAEA,QAAMM,GAAG,GAAG,IAAIJ,YAAhB;AAGA,QAAMK,aAAa,GAAGhC,UAAU,CAC7BiC,MADmB,CACZ,UAAClB,SAAD;AAAA,aAAeA,SAAS,GAAGb,eAA3B;AAAA,KADY,EAEnB0B,MAFmB,CAEZ,UAACM,GAAD,EAAMJ,IAAN,EAAe;AACrB,aAAOI,GAAG,GAAG,CAACJ,IAAI,GAAG5B,eAAR,IAA2BA,eAAxC;AACD,KAJmB,EAIjB,CAJiB,CAAtB;AAKA,QAAMiC,oBAAoB,GACvBH,aAAa,IAAIP,WAAW,GAAGO,aAAlB,CAAd,GAAkD,GADpD;AAGA,WAAO;AACLX,MAAAA,QAAQ,EAARA,QADK;AAELG,MAAAA,YAAY,EAAZA,YAFK;AAGLO,MAAAA,GAAG,EAAHA,GAHK;AAILI,MAAAA,oBAAoB,EAApBA;AAJK,KAAP;AAMD;AA3D6B,CAAzB","sourcesContent":["let lastFrameTime: number | null = null;\nlet frameTimes: number[] = [];\n\nconst minFramerateTarget = 30;\nconst frameTimeTarget = 1000 / minFramerateTarget;\nconst performance = window.performance;\n\nexport interface IPerformanceMetrics {\n loadTime: number;\n fullLoadTime: number;\n fps: number;\n percentDroppedFrames: number;\n}\n\nexport const PerformanceMarkers = {\n create: 'create',\n load: 'load',\n fullLoad: 'fullLoad',\n};\n\nexport const PerformanceUtils = {\n mark(marker: string) {\n performance.mark(marker);\n },\n frame(timestamp: number) {\n const currTimestamp = timestamp;\n if (lastFrameTime != null) {\n const frameTime = currTimestamp - lastFrameTime;\n frameTimes.push(frameTime);\n }\n lastFrameTime = currTimestamp;\n },\n clearMetrics() {\n lastFrameTime = null;\n frameTimes = [];\n performance.clearMeasures('loadTime');\n performance.clearMeasures('fullLoadTime');\n // @ts-ignore\n // tslint:disable-next-line:forin\n for (const marker in PerformanceMarkers) {\n // @ts-ignore\n performance.clearMarks(PerformanceMarkers[marker]);\n }\n },\n getPerformanceMetrics(): IPerformanceMetrics {\n const loadTime = performance.measure(\n 'loadTime',\n PerformanceMarkers.create,\n PerformanceMarkers.load,\n // @ts-ignore\n ).duration;\n\n const fullLoadTime = performance.measure(\n 'fullLoadTime',\n PerformanceMarkers.create,\n PerformanceMarkers.fullLoad,\n // @ts-ignore\n ).duration;\n const totalFrames = frameTimes.length;\n\n const avgFrameTime =\n frameTimes.reduce((prev, curr) => prev + curr, 0) / totalFrames / 1000;\n const fps = 1 / avgFrameTime;\n\n // count frames that missed our framerate target\n const droppedFrames = frameTimes\n .filter((frameTime) => frameTime > frameTimeTarget)\n .reduce((acc, curr) => {\n return acc + (curr - frameTimeTarget) / frameTimeTarget;\n }, 0);\n const percentDroppedFrames =\n (droppedFrames / (totalFrames + droppedFrames)) * 100;\n\n return {\n loadTime,\n fullLoadTime,\n fps,\n percentDroppedFrames,\n };\n },\n};\n"],"file":"performance.js"}
@@ -1,6 +0,0 @@
1
- export default class Frustum {
2
- static fromInvProjectionMatrix(invProj: Float32Array, worldSize: number, zoom: number): Frustum;
3
- points: number[][];
4
- planes: number[][];
5
- constructor(points: number[][], planes: number[][]);
6
- }
@@ -1,44 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
- import { vec3, vec4 } from 'gl-matrix';
5
-
6
- var Frustum = function () {
7
- function Frustum(points, planes) {
8
- _classCallCheck(this, Frustum);
9
-
10
- _defineProperty(this, "points", void 0);
11
-
12
- _defineProperty(this, "planes", void 0);
13
-
14
- this.points = points;
15
- this.planes = planes;
16
- }
17
-
18
- _createClass(Frustum, null, [{
19
- key: "fromInvProjectionMatrix",
20
- value: function fromInvProjectionMatrix(invProj, worldSize, zoom) {
21
- var clipSpaceCorners = [[-1, 1, -1, 1], [1, 1, -1, 1], [1, -1, -1, 1], [-1, -1, -1, 1], [-1, 1, 1, 1], [1, 1, 1, 1], [1, -1, 1, 1], [-1, -1, 1, 1]];
22
- var scale = Math.pow(2, zoom);
23
- var frustumCoords = clipSpaceCorners.map(function (v) {
24
- return vec4.transformMat4(new Float32Array([]), v, invProj);
25
- }).map(function (v) {
26
- return vec4.scale(new Float32Array([]), v, 1.0 / v[3] / worldSize * scale);
27
- });
28
- var frustumPlanePointIndices = [[0, 1, 2], [6, 5, 4], [0, 3, 7], [2, 1, 5], [3, 2, 6], [0, 4, 5]];
29
- var frustumPlanes = frustumPlanePointIndices.map(function (p) {
30
- var a = vec3.sub(new Float32Array(3), new Float32Array(frustumCoords[p[0]]), new Float32Array(frustumCoords[p[1]]));
31
- var b = vec3.sub(new Float32Array(3), new Float32Array(frustumCoords[p[2]]), new Float32Array(frustumCoords[p[1]]));
32
- var n = vec3.normalize(new Float32Array(3), vec3.cross(new Float32Array(3), a, b));
33
- var d = -vec3.dot(n, new Float32Array(frustumCoords[p[1]]));
34
- return n.concat(d);
35
- });
36
- return new Frustum(frustumCoords, frustumPlanes);
37
- }
38
- }]);
39
-
40
- return Frustum;
41
- }();
42
-
43
- export { Frustum as default };
44
- //# sourceMappingURL=primitives.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/primitives.ts"],"names":["vec3","vec4","Frustum","points","planes","invProj","worldSize","zoom","clipSpaceCorners","scale","Math","pow","frustumCoords","map","v","transformMat4","Float32Array","frustumPlanePointIndices","frustumPlanes","p","a","sub","b","n","normalize","cross","d","dot","concat"],"mappings":";;;AAAA,SAASA,IAAT,EAAeC,IAAf,QAA2B,WAA3B;;IACqBC,O;AA6DnB,mBAAYC,MAAZ,EAAgCC,MAAhC,EAAoD;AAAA;;AAAA;;AAAA;;AAClD,SAAKD,MAAL,GAAcA,MAAd;AACA,SAAKC,MAAL,GAAcA,MAAd;AACD;;;;WA/DD,iCACEC,OADF,EAEEC,SAFF,EAGEC,IAHF,EAIW;AACT,UAAMC,gBAAyD,GAAG,CAChE,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAC,CAAT,EAAY,CAAZ,CADgE,EAEhE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAC,CAAR,EAAW,CAAX,CAFgE,EAGhE,CAAC,CAAD,EAAI,CAAC,CAAL,EAAQ,CAAC,CAAT,EAAY,CAAZ,CAHgE,EAIhE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAC,CAAV,EAAa,CAAb,CAJgE,EAKhE,CAAC,CAAC,CAAF,EAAK,CAAL,EAAQ,CAAR,EAAW,CAAX,CALgE,EAMhE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CANgE,EAOhE,CAAC,CAAD,EAAI,CAAC,CAAL,EAAQ,CAAR,EAAW,CAAX,CAPgE,EAQhE,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,EAAS,CAAT,EAAY,CAAZ,CARgE,CAAlE;AAWA,UAAMC,KAAK,GAAGC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYJ,IAAZ,CAAd;AAGA,UAAMK,aAAa,GAAGJ,gBAAgB,CACnCK,GADmB,CACf,UAACC,CAAD;AAAA,eAAOb,IAAI,CAACc,aAAL,CAAmB,IAAIC,YAAJ,CAAiB,EAAjB,CAAnB,EAAyCF,CAAzC,EAA4CT,OAA5C,CAAP;AAAA,OADe,EAEnBQ,GAFmB,CAEf,UAACC,CAAD;AAAA,eACHb,IAAI,CAACQ,KAAL,CAAW,IAAIO,YAAJ,CAAiB,EAAjB,CAAX,EAAiCF,CAAjC,EAAqC,MAAMA,CAAC,CAAC,CAAD,CAAP,GAAaR,SAAd,GAA2BG,KAA/D,CADG;AAAA,OAFe,CAAtB;AAMA,UAAMQ,wBAAyD,GAAG,CAChE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CADgE,EAEhE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFgE,EAGhE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAHgE,EAIhE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAJgE,EAKhE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CALgE,EAMhE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CANgE,CAAlE;AASA,UAAMC,aAAa,GAAGD,wBAAwB,CAACJ,GAAzB,CACpB,UAACM,CAAD,EAAiC;AAC/B,YAAMC,CAAC,GAAGpB,IAAI,CAACqB,GAAL,CACR,IAAIL,YAAJ,CAAiB,CAAjB,CADQ,EAER,IAAIA,YAAJ,CAAiBJ,aAAa,CAACO,CAAC,CAAC,CAAD,CAAF,CAA9B,CAFQ,EAGR,IAAIH,YAAJ,CAAiBJ,aAAa,CAACO,CAAC,CAAC,CAAD,CAAF,CAA9B,CAHQ,CAAV;AAKA,YAAMG,CAAC,GAAGtB,IAAI,CAACqB,GAAL,CACR,IAAIL,YAAJ,CAAiB,CAAjB,CADQ,EAER,IAAIA,YAAJ,CAAiBJ,aAAa,CAACO,CAAC,CAAC,CAAD,CAAF,CAA9B,CAFQ,EAGR,IAAIH,YAAJ,CAAiBJ,aAAa,CAACO,CAAC,CAAC,CAAD,CAAF,CAA9B,CAHQ,CAAV;AAKA,YAAMI,CAAC,GAAGvB,IAAI,CAACwB,SAAL,CACR,IAAIR,YAAJ,CAAiB,CAAjB,CADQ,EAERhB,IAAI,CAACyB,KAAL,CAAW,IAAIT,YAAJ,CAAiB,CAAjB,CAAX,EAAgCI,CAAhC,EAAmCE,CAAnC,CAFQ,CAAV;AAIA,YAAMI,CAAC,GAAG,CAAC1B,IAAI,CAAC2B,GAAL,CAASJ,CAAT,EAAY,IAAIP,YAAJ,CAAiBJ,aAAa,CAACO,CAAC,CAAC,CAAD,CAAF,CAA9B,CAAZ,CAAX;AACA,eAAQI,CAAD,CAAgBK,MAAhB,CAAuBF,CAAvB,CAAP;AACD,OAlBmB,CAAtB;AAqBA,aAAO,IAAIxB,OAAJ,CAAYU,aAAZ,EAAyCM,aAAzC,CAAP;AACD;;;;;;SAzDkBhB,O","sourcesContent":["import { vec3, vec4 } from 'gl-matrix';\nexport default class Frustum {\n public static fromInvProjectionMatrix(\n invProj: Float32Array,\n worldSize: number,\n zoom: number,\n ): Frustum {\n const clipSpaceCorners: Array<[number, number, number, number]> = [\n [-1, 1, -1, 1],\n [1, 1, -1, 1],\n [1, -1, -1, 1],\n [-1, -1, -1, 1],\n [-1, 1, 1, 1],\n [1, 1, 1, 1],\n [1, -1, 1, 1],\n [-1, -1, 1, 1],\n ];\n\n const scale = Math.pow(2, zoom);\n\n // Transform frustum corner points from clip space to tile space\n const frustumCoords = clipSpaceCorners\n .map((v) => vec4.transformMat4(new Float32Array([]), v, invProj))\n .map((v) =>\n vec4.scale(new Float32Array([]), v, (1.0 / v[3] / worldSize) * scale),\n );\n\n const frustumPlanePointIndices: Array<[number, number, number]> = [\n [0, 1, 2], // near\n [6, 5, 4], // far\n [0, 3, 7], // left\n [2, 1, 5], // right\n [3, 2, 6], // bottom\n [0, 4, 5], // top\n ];\n\n const frustumPlanes = frustumPlanePointIndices.map(\n (p: [number, number, number]) => {\n const a = vec3.sub(\n new Float32Array(3),\n new Float32Array(frustumCoords[p[0]]),\n new Float32Array(frustumCoords[p[1]]),\n );\n const b = vec3.sub(\n new Float32Array(3),\n new Float32Array(frustumCoords[p[2]]),\n new Float32Array(frustumCoords[p[1]]),\n );\n const n = vec3.normalize(\n new Float32Array(3),\n vec3.cross(new Float32Array(3), a, b),\n );\n const d = -vec3.dot(n, new Float32Array(frustumCoords[p[1]]));\n return (n as number[]).concat(d);\n },\n );\n\n return new Frustum(frustumCoords as number[][], frustumPlanes);\n }\n public points: number[][];\n public planes: number[][];\n\n constructor(points: number[][], planes: number[][]) {\n this.points = points;\n this.planes = planes;\n }\n}\n"],"file":"primitives.js"}
@@ -1,13 +0,0 @@
1
- export declare type TaskID = number;
2
- declare class TaskQueue {
3
- private queue;
4
- private id;
5
- private cleared;
6
- private currentlyRunning;
7
- constructor();
8
- add(callback: (timeStamp: number) => void): TaskID;
9
- remove(id: TaskID): void;
10
- run(timeStamp?: number): void;
11
- clear(): void;
12
- }
13
- export default TaskQueue;
@@ -1,113 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
-
5
- 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; } } }; }
6
-
7
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
-
9
- 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; }
10
-
11
- var TaskQueue = function () {
12
- function TaskQueue() {
13
- _classCallCheck(this, TaskQueue);
14
-
15
- _defineProperty(this, "queue", void 0);
16
-
17
- _defineProperty(this, "id", void 0);
18
-
19
- _defineProperty(this, "cleared", void 0);
20
-
21
- _defineProperty(this, "currentlyRunning", void 0);
22
-
23
- this.queue = [];
24
- this.id = 0;
25
- this.cleared = false;
26
- this.currentlyRunning = false;
27
- }
28
-
29
- _createClass(TaskQueue, [{
30
- key: "add",
31
- value: function add(callback) {
32
- var id = ++this.id;
33
- var queue = this.queue;
34
- queue.push({
35
- callback: callback,
36
- id: id,
37
- cancelled: false
38
- });
39
- return id;
40
- }
41
- }, {
42
- key: "remove",
43
- value: function remove(id) {
44
- var running = this.currentlyRunning;
45
- var queue = running ? this.queue.concat(running) : this.queue;
46
-
47
- var _iterator = _createForOfIteratorHelper(queue),
48
- _step;
49
-
50
- try {
51
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
52
- var task = _step.value;
53
-
54
- if (task.id === id) {
55
- task.cancelled = true;
56
- return;
57
- }
58
- }
59
- } catch (err) {
60
- _iterator.e(err);
61
- } finally {
62
- _iterator.f();
63
- }
64
- }
65
- }, {
66
- key: "run",
67
- value: function run() {
68
- var timeStamp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
69
- var queue = this.currentlyRunning = this.queue;
70
- this.queue = [];
71
-
72
- var _iterator2 = _createForOfIteratorHelper(queue),
73
- _step2;
74
-
75
- try {
76
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
77
- var task = _step2.value;
78
-
79
- if (task.cancelled) {
80
- continue;
81
- }
82
-
83
- task.callback(timeStamp);
84
-
85
- if (this.cleared) {
86
- break;
87
- }
88
- }
89
- } catch (err) {
90
- _iterator2.e(err);
91
- } finally {
92
- _iterator2.f();
93
- }
94
-
95
- this.cleared = false;
96
- this.currentlyRunning = false;
97
- }
98
- }, {
99
- key: "clear",
100
- value: function clear() {
101
- if (this.currentlyRunning) {
102
- this.cleared = true;
103
- }
104
-
105
- this.queue = [];
106
- }
107
- }]);
108
-
109
- return TaskQueue;
110
- }();
111
-
112
- export default TaskQueue;
113
- //# sourceMappingURL=task_queue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/task_queue.ts"],"names":["TaskQueue","queue","id","cleared","currentlyRunning","callback","push","cancelled","running","concat","task","timeStamp"],"mappings":";;;;;;;;;;IAOMA,S;AAMJ,uBAAc;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACZ,SAAKC,KAAL,GAAa,EAAb;AACA,SAAKC,EAAL,GAAU,CAAV;AACA,SAAKC,OAAL,GAAe,KAAf;AACA,SAAKC,gBAAL,GAAwB,KAAxB;AACD;;;;WAED,aAAWC,QAAX,EAA0D;AACxD,UAAMH,EAAE,GAAG,EAAE,KAAKA,EAAlB;AACA,UAAMD,KAAK,GAAG,KAAKA,KAAnB;AACAA,MAAAA,KAAK,CAACK,IAAN,CAAW;AAAED,QAAAA,QAAQ,EAARA,QAAF;AAAYH,QAAAA,EAAE,EAAFA,EAAZ;AAAgBK,QAAAA,SAAS,EAAE;AAA3B,OAAX;AACA,aAAOL,EAAP;AACD;;;WAED,gBAAcA,EAAd,EAA0B;AACxB,UAAMM,OAAO,GAAG,KAAKJ,gBAArB;AACA,UAAMH,KAAK,GAAGO,OAAO,GAAG,KAAKP,KAAL,CAAWQ,MAAX,CAAkBD,OAAlB,CAAH,GAAgC,KAAKP,KAA1D;;AAFwB,iDAGLA,KAHK;AAAA;;AAAA;AAGxB,4DAA0B;AAAA,cAAfS,IAAe;;AACxB,cAAIA,IAAI,CAACR,EAAL,KAAYA,EAAhB,EAAoB;AAClBQ,YAAAA,IAAI,CAACH,SAAL,GAAiB,IAAjB;AACA;AACD;AACF;AARuB;AAAA;AAAA;AAAA;AAAA;AASzB;;;WAED,eAAkC;AAAA,UAAvBI,SAAuB,uEAAH,CAAG;AAChC,UAAMV,KAAK,GAAI,KAAKG,gBAAL,GAAwB,KAAKH,KAA5C;AAIA,WAAKA,KAAL,GAAa,EAAb;;AALgC,kDAObA,KAPa;AAAA;;AAAA;AAOhC,+DAA0B;AAAA,cAAfS,IAAe;;AACxB,cAAIA,IAAI,CAACH,SAAT,EAAoB;AAClB;AACD;;AACDG,UAAAA,IAAI,CAACL,QAAL,CAAcM,SAAd;;AACA,cAAI,KAAKR,OAAT,EAAkB;AAChB;AACD;AACF;AAf+B;AAAA;AAAA;AAAA;AAAA;;AAiBhC,WAAKA,OAAL,GAAe,KAAf;AACA,WAAKC,gBAAL,GAAwB,KAAxB;AACD;;;WAED,iBAAe;AACb,UAAI,KAAKA,gBAAT,EAA2B;AACzB,aAAKD,OAAL,GAAe,IAAf;AACD;;AACD,WAAKF,KAAL,GAAa,EAAb;AACD;;;;;;AAGH,eAAeD,SAAf","sourcesContent":["export type TaskID = number; // can't mark opaque due to https://github.com/flowtype/flow-remove-types/pull/61\ninterface ITask {\n callback: (timeStamp: number) => void;\n id: TaskID;\n cancelled: boolean;\n}\n\nclass TaskQueue {\n private queue: ITask[];\n private id: TaskID;\n private cleared: boolean;\n private currentlyRunning: ITask[] | false;\n\n constructor() {\n this.queue = [];\n this.id = 0;\n this.cleared = false;\n this.currentlyRunning = false;\n }\n\n public add(callback: (timeStamp: number) => void): TaskID {\n const id = ++this.id;\n const queue = this.queue;\n queue.push({ callback, id, cancelled: false });\n return id;\n }\n\n public remove(id: TaskID) {\n const running = this.currentlyRunning;\n const queue = running ? this.queue.concat(running) : this.queue;\n for (const task of queue) {\n if (task.id === id) {\n task.cancelled = true;\n return;\n }\n }\n }\n\n public run(timeStamp: number = 0) {\n const queue = (this.currentlyRunning = this.queue);\n\n // Tasks queued by callbacks in the current queue should be executed\n // on the next run, not the current run.\n this.queue = [];\n\n for (const task of queue) {\n if (task.cancelled) {\n continue;\n }\n task.callback(timeStamp);\n if (this.cleared) {\n break;\n }\n }\n\n this.cleared = false;\n this.currentlyRunning = false;\n }\n\n public clear() {\n if (this.currentlyRunning) {\n this.cleared = true;\n }\n this.queue = [];\n }\n}\n\nexport default TaskQueue;\n"],"file":"task_queue.js"}