@mapwhit/tilerenderer 1.0.0 → 1.1.1

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 (236) hide show
  1. package/build/min/package.json +2 -1
  2. package/build/min/src/shaders/_prelude.fragment.glsl.js +1 -1
  3. package/build/min/src/shaders/_prelude.vertex.glsl.js +1 -1
  4. package/build/min/src/shaders/background.fragment.glsl.js +1 -1
  5. package/build/min/src/shaders/background.vertex.glsl.js +1 -1
  6. package/build/min/src/shaders/background_pattern.fragment.glsl.js +1 -1
  7. package/build/min/src/shaders/background_pattern.vertex.glsl.js +1 -1
  8. package/build/min/src/shaders/circle.fragment.glsl.js +1 -1
  9. package/build/min/src/shaders/circle.vertex.glsl.js +1 -1
  10. package/build/min/src/shaders/clipping_mask.fragment.glsl.js +1 -1
  11. package/build/min/src/shaders/clipping_mask.vertex.glsl.js +1 -1
  12. package/build/min/src/shaders/collision_box.fragment.glsl.js +1 -1
  13. package/build/min/src/shaders/collision_box.vertex.glsl.js +1 -1
  14. package/build/min/src/shaders/collision_circle.fragment.glsl.js +1 -1
  15. package/build/min/src/shaders/collision_circle.vertex.glsl.js +1 -1
  16. package/build/min/src/shaders/debug.fragment.glsl.js +1 -1
  17. package/build/min/src/shaders/debug.vertex.glsl.js +1 -1
  18. package/build/min/src/shaders/fill.fragment.glsl.js +1 -1
  19. package/build/min/src/shaders/fill.vertex.glsl.js +1 -1
  20. package/build/min/src/shaders/fill_extrusion.fragment.glsl.js +1 -1
  21. package/build/min/src/shaders/fill_extrusion.vertex.glsl.js +1 -1
  22. package/build/min/src/shaders/fill_extrusion_pattern.fragment.glsl.js +1 -1
  23. package/build/min/src/shaders/fill_extrusion_pattern.vertex.glsl.js +1 -1
  24. package/build/min/src/shaders/fill_outline.fragment.glsl.js +1 -1
  25. package/build/min/src/shaders/fill_outline.vertex.glsl.js +1 -1
  26. package/build/min/src/shaders/fill_outline_pattern.fragment.glsl.js +1 -1
  27. package/build/min/src/shaders/fill_outline_pattern.vertex.glsl.js +1 -1
  28. package/build/min/src/shaders/fill_pattern.fragment.glsl.js +1 -1
  29. package/build/min/src/shaders/fill_pattern.vertex.glsl.js +1 -1
  30. package/build/min/src/shaders/heatmap.fragment.glsl.js +1 -1
  31. package/build/min/src/shaders/heatmap.vertex.glsl.js +1 -1
  32. package/build/min/src/shaders/heatmap_texture.fragment.glsl.js +1 -1
  33. package/build/min/src/shaders/heatmap_texture.vertex.glsl.js +1 -1
  34. package/build/min/src/shaders/hillshade.fragment.glsl.js +1 -1
  35. package/build/min/src/shaders/hillshade.vertex.glsl.js +1 -1
  36. package/build/min/src/shaders/hillshade_prepare.fragment.glsl.js +1 -1
  37. package/build/min/src/shaders/hillshade_prepare.vertex.glsl.js +1 -1
  38. package/build/min/src/shaders/line.fragment.glsl.js +1 -1
  39. package/build/min/src/shaders/line.vertex.glsl.js +1 -1
  40. package/build/min/src/shaders/line_gradient.fragment.glsl.js +1 -1
  41. package/build/min/src/shaders/line_gradient.vertex.glsl.js +1 -1
  42. package/build/min/src/shaders/line_pattern.fragment.glsl.js +1 -1
  43. package/build/min/src/shaders/line_pattern.vertex.glsl.js +1 -1
  44. package/build/min/src/shaders/line_sdf.fragment.glsl.js +1 -1
  45. package/build/min/src/shaders/line_sdf.vertex.glsl.js +1 -1
  46. package/build/min/src/shaders/raster.fragment.glsl.js +1 -1
  47. package/build/min/src/shaders/raster.vertex.glsl.js +1 -1
  48. package/build/min/src/shaders/symbol_icon.fragment.glsl.js +1 -1
  49. package/build/min/src/shaders/symbol_icon.vertex.glsl.js +1 -1
  50. package/build/min/src/shaders/symbol_sdf.fragment.glsl.js +1 -1
  51. package/build/min/src/shaders/symbol_sdf.vertex.glsl.js +1 -1
  52. package/package.json +3 -2
  53. package/src/data/array_types.js +54 -81
  54. package/src/data/bucket/circle_attributes.js +2 -4
  55. package/src/data/bucket/circle_bucket.js +19 -13
  56. package/src/data/bucket/fill_attributes.js +2 -4
  57. package/src/data/bucket/fill_bucket.js +38 -24
  58. package/src/data/bucket/fill_extrusion_attributes.js +2 -4
  59. package/src/data/bucket/fill_extrusion_bucket.js +56 -34
  60. package/src/data/bucket/heatmap_bucket.js +2 -7
  61. package/src/data/bucket/line_attributes.js +2 -4
  62. package/src/data/bucket/line_bucket.js +207 -159
  63. package/src/data/bucket/pattern_attributes.js +2 -4
  64. package/src/data/bucket/pattern_bucket_features.js +5 -7
  65. package/src/data/bucket/symbol_attributes.js +12 -26
  66. package/src/data/bucket/symbol_bucket.js +111 -221
  67. package/src/data/bucket/symbol_buffers.js +62 -0
  68. package/src/data/bucket/symbol_collision_buffers.js +33 -0
  69. package/src/data/bucket.js +2 -6
  70. package/src/data/dem_data.js +11 -7
  71. package/src/data/extent.js +1 -1
  72. package/src/data/feature_index.js +35 -20
  73. package/src/data/index_array_type.js +1 -6
  74. package/src/data/load_geometry.js +6 -9
  75. package/src/data/pos_attributes.js +2 -3
  76. package/src/data/program_configuration.js +44 -26
  77. package/src/data/raster_bounds_attributes.js +2 -2
  78. package/src/data/segment.js +4 -3
  79. package/src/geo/coordinate.js +1 -1
  80. package/src/geo/lng_lat.js +3 -3
  81. package/src/geo/lng_lat_bounds.js +8 -4
  82. package/src/geo/transform.js +69 -30
  83. package/src/gl/color_mode.js +2 -2
  84. package/src/gl/context.js +28 -29
  85. package/src/gl/cull_face_mode.js +1 -1
  86. package/src/gl/depth_mode.js +1 -1
  87. package/src/gl/framebuffer.js +8 -4
  88. package/src/gl/index_buffer.js +2 -2
  89. package/src/gl/stencil_mode.js +1 -1
  90. package/src/gl/value.js +33 -68
  91. package/src/gl/vertex_buffer.js +2 -2
  92. package/src/index.js +49 -25
  93. package/src/render/draw_background.js +14 -9
  94. package/src/render/draw_circle.js +11 -8
  95. package/src/render/draw_collision_debug.js +11 -8
  96. package/src/render/draw_debug.js +16 -14
  97. package/src/render/draw_fill.js +19 -12
  98. package/src/render/draw_fill_extrusion.js +12 -9
  99. package/src/render/draw_heatmap.js +17 -12
  100. package/src/render/draw_hillshade.js +12 -9
  101. package/src/render/draw_line.js +30 -16
  102. package/src/render/draw_raster.js +17 -13
  103. package/src/render/draw_symbol.js +22 -17
  104. package/src/render/glyph_atlas.js +9 -5
  105. package/src/render/glyph_manager.js +1 -1
  106. package/src/render/image_atlas.js +4 -7
  107. package/src/render/image_manager.js +6 -9
  108. package/src/render/line_atlas.js +2 -2
  109. package/src/render/painter.js +65 -47
  110. package/src/render/program/background_program.js +6 -13
  111. package/src/render/program/circle_program.js +4 -6
  112. package/src/render/program/clipping_mask_program.js +3 -5
  113. package/src/render/program/collision_program.js +4 -6
  114. package/src/render/program/debug_program.js +3 -5
  115. package/src/render/program/fill_extrusion_program.js +8 -14
  116. package/src/render/program/fill_program.js +10 -21
  117. package/src/render/program/heatmap_program.js +8 -14
  118. package/src/render/program/hillshade_program.js +10 -16
  119. package/src/render/program/line_program.js +11 -22
  120. package/src/render/program/pattern.js +5 -7
  121. package/src/render/program/program_uniforms.js +13 -20
  122. package/src/render/program/raster_program.js +3 -5
  123. package/src/render/program/symbol_program.js +5 -7
  124. package/src/render/program.js +5 -6
  125. package/src/render/texture.js +1 -1
  126. package/src/render/tile_mask.js +6 -4
  127. package/src/render/uniform_binding.js +9 -20
  128. package/src/render/vertex_array_object.js +5 -3
  129. package/src/shaders/encode_attribute.js +2 -6
  130. package/src/shaders/index.js +103 -51
  131. package/src/source/geojson_source.js +11 -7
  132. package/src/source/geojson_worker_source.js +7 -7
  133. package/src/source/geojson_wrapper.js +4 -4
  134. package/src/source/image_source.js +11 -12
  135. package/src/source/load_tilejson.js +3 -3
  136. package/src/source/pixels_to_tile_units.js +3 -3
  137. package/src/source/query_features.js +13 -10
  138. package/src/source/raster_dem_tile_source.js +12 -10
  139. package/src/source/raster_tile_source.js +13 -9
  140. package/src/source/resources/glyphs.js +2 -3
  141. package/src/source/resources/index.js +2 -4
  142. package/src/source/rtl_text_plugin.js +8 -8
  143. package/src/source/source.js +9 -15
  144. package/src/source/source_cache.js +114 -49
  145. package/src/source/source_state.js +37 -14
  146. package/src/source/tile.js +38 -23
  147. package/src/source/tile_bounds.js +15 -8
  148. package/src/source/tile_cache.js +2 -2
  149. package/src/source/tile_id.js +30 -23
  150. package/src/source/vector_tile_source.js +10 -8
  151. package/src/source/vector_tile_worker_source.js +4 -4
  152. package/src/source/worker_tile.js +24 -22
  153. package/src/style/create_style_layer.js +11 -11
  154. package/src/style/evaluation_parameters.js +4 -6
  155. package/src/style/light.js +5 -5
  156. package/src/style/load_sprite.js +6 -6
  157. package/src/style/parse_glyph_pbf.js +21 -17
  158. package/src/style/pauseable_placement.js +3 -4
  159. package/src/style/properties.js +21 -44
  160. package/src/style/query_utils.js +4 -10
  161. package/src/style/style.js +64 -34
  162. package/src/style/style_layer/background_style_layer.js +3 -4
  163. package/src/style/style_layer/background_style_layer_properties.js +2 -2
  164. package/src/style/style_layer/circle_style_layer.js +12 -9
  165. package/src/style/style_layer/circle_style_layer_properties.js +2 -2
  166. package/src/style/style_layer/fill_extrusion_style_layer.js +16 -13
  167. package/src/style/style_layer/fill_extrusion_style_layer_properties.js +2 -2
  168. package/src/style/style_layer/fill_style_layer.js +6 -7
  169. package/src/style/style_layer/fill_style_layer_properties.js +2 -2
  170. package/src/style/style_layer/heatmap_style_layer.js +5 -6
  171. package/src/style/style_layer/heatmap_style_layer_properties.js +2 -2
  172. package/src/style/style_layer/hillshade_style_layer.js +3 -4
  173. package/src/style/style_layer/hillshade_style_layer_properties.js +2 -2
  174. package/src/style/style_layer/line_style_layer.js +10 -11
  175. package/src/style/style_layer/line_style_layer_properties.js +5 -5
  176. package/src/style/style_layer/raster_style_layer.js +3 -4
  177. package/src/style/style_layer/raster_style_layer_properties.js +2 -2
  178. package/src/style/style_layer/symbol_style_layer.js +7 -8
  179. package/src/style/style_layer/symbol_style_layer_properties.js +2 -2
  180. package/src/style/style_layer.js +21 -20
  181. package/src/style/style_layer_index.js +2 -2
  182. package/src/style/zoom_history.js +1 -1
  183. package/src/style-spec/error/parsing_error.js +1 -1
  184. package/src/style-spec/error/validation_error.js +5 -3
  185. package/src/style-spec/feature_filter/convert.js +17 -9
  186. package/src/style-spec/feature_filter/index.js +13 -9
  187. package/src/style-spec/util/eval_support.js +2 -2
  188. package/src/style-spec/util/ref_properties.js +1 -1
  189. package/src/symbol/anchor.js +2 -2
  190. package/src/symbol/check_max_angle.js +13 -5
  191. package/src/symbol/clip_line.js +2 -3
  192. package/src/symbol/collision_feature.js +8 -4
  193. package/src/symbol/collision_index.js +5 -7
  194. package/src/symbol/cross_tile_symbol_index.js +5 -5
  195. package/src/symbol/get_anchors.js +15 -8
  196. package/src/symbol/grid_index.js +5 -3
  197. package/src/symbol/mergelines.js +2 -2
  198. package/src/symbol/opacity_state.js +1 -1
  199. package/src/symbol/placement.js +25 -20
  200. package/src/symbol/projection.js +29 -28
  201. package/src/symbol/quads.js +10 -12
  202. package/src/symbol/shaping.js +27 -19
  203. package/src/symbol/symbol_layout.js +17 -21
  204. package/src/symbol/symbol_size.js +13 -12
  205. package/src/symbol/transform_text.js +3 -3
  206. package/src/ui/camera.js +34 -18
  207. package/src/ui/map.js +54 -34
  208. package/src/util/async.js +11 -5
  209. package/src/util/browser.js +1 -1
  210. package/src/util/callback.js +3 -9
  211. package/src/util/classify_rings.js +13 -8
  212. package/src/util/color_ramp.js +3 -3
  213. package/src/util/config.js +4 -4
  214. package/src/util/dictionary_coder.js +2 -3
  215. package/src/util/dom.js +7 -3
  216. package/src/util/find_pole_of_inaccessibility.js +29 -14
  217. package/src/util/group_layers.js +1 -1
  218. package/src/util/image.js +3 -8
  219. package/src/util/interpolate.js +1 -1
  220. package/src/util/intersection_tests.js +80 -42
  221. package/src/util/is_char_in_unicode_block.js +1 -1
  222. package/src/util/key.js +7 -3
  223. package/src/util/loader/image.js +1 -1
  224. package/src/util/object.js +25 -23
  225. package/src/util/script_detection.js +212 -91
  226. package/src/util/struct_array.js +8 -40
  227. package/src/util/task_queue.js +11 -7
  228. package/src/util/throttle.js +2 -2
  229. package/src/util/tile_cover.js +8 -5
  230. package/src/util/token.js +1 -1
  231. package/src/util/unique_id.js +2 -2
  232. package/src/util/util.js +21 -29
  233. package/src/util/vectortile_to_geojson.js +4 -2
  234. package/src/util/verticalize_punctuation.js +3 -7
  235. package/src/util/warn.js +4 -4
  236. package/src/util/web_worker.js +3 -3
@@ -1,6 +1,5 @@
1
- const browser = require('../util/browser');
2
-
3
- const { Placement } = require('../symbol/placement');
1
+ import { Placement } from '../symbol/placement.js';
2
+ import browser from '../util/browser.js';
4
3
 
5
4
  class LayerPlacement {
6
5
  constructor() {
@@ -84,4 +83,4 @@ class PauseablePlacement {
84
83
  }
85
84
  }
86
85
 
87
- module.exports = PauseablePlacement;
86
+ export default PauseablePlacement;
@@ -1,9 +1,8 @@
1
- const assert = require('assert');
2
-
3
- const { clone } = require('../util/object');
4
- const { easeCubicInOut } = require('../util/util');
5
- const { interpolate, normalizePropertyExpression } = require('@mapwhit/style-expressions');
6
- const EvaluationParameters = require('./evaluation_parameters');
1
+ import { interpolate, normalizePropertyExpression } from '@mapwhit/style-expressions';
2
+ import assert from 'assert';
3
+ import { clone } from '../util/object.js';
4
+ import { easeCubicInOut } from '../util/util.js';
5
+ import EvaluationParameters from './evaluation_parameters.js';
7
6
 
8
7
  /**
9
8
  * Implements a number of classes that define state and behavior for paint and layout properties, most
@@ -60,7 +59,7 @@ const EvaluationParameters = require('./evaluation_parameters');
60
59
  *
61
60
  * @private
62
61
  */
63
- class PropertyValue {
62
+ export class PropertyValue {
64
63
  constructor(property, value) {
65
64
  this.property = property;
66
65
  this.value = value;
@@ -97,7 +96,7 @@ class PropertyValue {
97
96
  *
98
97
  * @private
99
98
  */
100
- class TransitionablePropertyValue {
99
+ export class TransitionablePropertyValue {
101
100
  constructor(property) {
102
101
  this.property = property;
103
102
  this.value = new PropertyValue(property, undefined);
@@ -132,7 +131,7 @@ class TransitionablePropertyValue {
132
131
  *
133
132
  * @private
134
133
  */
135
- class Transitionable {
134
+ export class Transitionable {
136
135
  constructor(properties) {
137
136
  this._properties = properties;
138
137
  this._values = Object.create(properties.defaultTransitionablePropertyValues);
@@ -209,7 +208,7 @@ class Transitionable {
209
208
  *
210
209
  * @private
211
210
  */
212
- class TransitioningPropertyValue {
211
+ export class TransitioningPropertyValue {
213
212
  constructor(property, value, prior, transition, now) {
214
213
  this.property = property;
215
214
  this.value = value;
@@ -264,7 +263,7 @@ class TransitioningPropertyValue {
264
263
  *
265
264
  * @private
266
265
  */
267
- class Transitioning {
266
+ export class Transitioning {
268
267
  constructor(properties) {
269
268
  this._properties = properties;
270
269
  this._values = Object.create(properties.defaultTransitioningPropertyValues);
@@ -308,7 +307,7 @@ class Transitioning {
308
307
  *
309
308
  * @private
310
309
  */
311
- class Layout {
310
+ export class Layout {
312
311
  constructor(properties) {
313
312
  this._properties = properties;
314
313
  this._values = Object.create(properties.defaultPropertyValues);
@@ -374,7 +373,7 @@ class Layout {
374
373
  *
375
374
  * @private
376
375
  */
377
- class PossiblyEvaluatedPropertyValue {
376
+ export class PossiblyEvaluatedPropertyValue {
378
377
  constructor(property, value, parameters) {
379
378
  this.property = property;
380
379
  this.value = value;
@@ -402,15 +401,8 @@ class PossiblyEvaluatedPropertyValue {
402
401
  * an object type with the same keys, and values of type `R`.
403
402
  *
404
403
  * For properties that don't allow data-driven values, `R` is a scalar type such as `number`, `string`, or `Color`.
405
- * For data-driven properties, it is `PossiblyEvaluatedPropertyValue`. Critically, the type definitions are set up
406
- * in a way that allows flow to know which of these two cases applies for any given property name, and if you attempt
407
- * to use a `PossiblyEvaluatedPropertyValue` as if it was a scalar, or vice versa, you will get a type error. (However,
408
- * there's at least one case in which flow fails to produce a type error that you should be aware of: in a context such
409
- * as `layer._paint.get('foo-opacity') === 0`, if `foo-opacity` is data-driven, than the left-hand side is of type
410
- * `PossiblyEvaluatedPropertyValue<number>`, but flow will not complain about comparing this to a number using `===`.
411
- * See https://github.com/facebook/flow/issues/2359.)
412
- *
413
- * There's also a third, special case possiblity for `R`: for cross-faded properties, it's `?CrossFaded<T>`.
404
+ * For data-driven properties, it is `PossiblyEvaluatedPropertyValue`.
405
+ * For cross-faded properties, it's `?CrossFaded<T>`.
414
406
  *
415
407
  * @private
416
408
  */
@@ -420,7 +412,7 @@ class PossiblyEvaluatedPropertyValue {
420
412
  * given layer type.
421
413
  * @private
422
414
  */
423
- class PossiblyEvaluated {
415
+ export class PossiblyEvaluated {
424
416
  constructor(properties) {
425
417
  this._properties = properties;
426
418
  this._values = Object.create(properties.defaultPossiblyEvaluatedValues);
@@ -438,7 +430,7 @@ class PossiblyEvaluated {
438
430
  *
439
431
  * @private
440
432
  */
441
- class DataConstantProperty {
433
+ export class DataConstantProperty {
442
434
  constructor(specification) {
443
435
  this.specification = specification;
444
436
  this.specification['property-type'] ??= 'data-constant';
@@ -465,7 +457,7 @@ class DataConstantProperty {
465
457
  *
466
458
  * @private
467
459
  */
468
- class DataDrivenProperty {
460
+ export class DataDrivenProperty {
469
461
  constructor(specification) {
470
462
  this.specification = specification;
471
463
  this.specification['property-type'] ??= 'data-driven';
@@ -525,7 +517,7 @@ class DataDrivenProperty {
525
517
  * @private
526
518
  */
527
519
 
528
- class CrossFadedDataDrivenProperty extends DataDrivenProperty {
520
+ export class CrossFadedDataDrivenProperty extends DataDrivenProperty {
529
521
  constructor(specification) {
530
522
  specification['property-type'] ??= 'cross-faded-data-driven';
531
523
  super(specification);
@@ -585,7 +577,7 @@ class CrossFadedDataDrivenProperty extends DataDrivenProperty {
585
577
  *
586
578
  * @private
587
579
  */
588
- class CrossFadedProperty {
580
+ export class CrossFadedProperty {
589
581
  constructor(specification) {
590
582
  this.specification = specification;
591
583
  this.specification['property-type'] ??= 'cross-faded';
@@ -626,7 +618,7 @@ class CrossFadedProperty {
626
618
  * @private
627
619
  */
628
620
 
629
- class ColorRampProperty {
621
+ export class ColorRampProperty {
630
622
  constructor(specification) {
631
623
  this.specification = specification;
632
624
  this.specification['property-type'] ??= 'color-ramp';
@@ -652,7 +644,7 @@ class ColorRampProperty {
652
644
  *
653
645
  * @private
654
646
  */
655
- class Properties {
647
+ export class Properties {
656
648
  constructor(properties) {
657
649
  this.properties = properties;
658
650
  this.defaultPropertyValues = {};
@@ -670,18 +662,3 @@ class Properties {
670
662
  }
671
663
  }
672
664
  }
673
-
674
- module.exports = {
675
- PropertyValue,
676
- Transitionable,
677
- Transitioning,
678
- Layout,
679
- PossiblyEvaluatedPropertyValue,
680
- PossiblyEvaluated,
681
- DataConstantProperty,
682
- DataDrivenProperty,
683
- CrossFadedDataDrivenProperty,
684
- CrossFadedProperty,
685
- ColorRampProperty,
686
- Properties
687
- };
@@ -1,12 +1,6 @@
1
- const { default: Point } = require('@mapbox/point-geometry');
1
+ import Point from '@mapbox/point-geometry';
2
2
 
3
- module.exports = {
4
- getMaximumPaintValue,
5
- translateDistance,
6
- translate
7
- };
8
-
9
- function getMaximumPaintValue(property, layer, bucket) {
3
+ export function getMaximumPaintValue(property, layer, bucket) {
10
4
  const value = layer._paint.get(property).value;
11
5
  if (value.kind === 'constant') {
12
6
  return value.value;
@@ -15,11 +9,11 @@ function getMaximumPaintValue(property, layer, bucket) {
15
9
  return binders[property].maxValue;
16
10
  }
17
11
 
18
- function translateDistance(translate) {
12
+ export function translateDistance(translate) {
19
13
  return Math.sqrt(translate[0] * translate[0] + translate[1] * translate[1]);
20
14
  }
21
15
 
22
- function translate(queryGeometry, translate, translateAnchor, bearing, pixelsToTileUnits) {
16
+ export function translate(queryGeometry, translate, translateAnchor, bearing, pixelsToTileUnits) {
23
17
  if (!translate[0] && !translate[1]) {
24
18
  return queryGeometry;
25
19
  }
@@ -1,23 +1,22 @@
1
- const assert = require('assert');
2
-
3
- const { Event, ErrorEvent, Evented } = require('@mapwhit/events');
4
- const createStyleLayer = require('./create_style_layer');
5
- const loadSprite = require('./load_sprite');
6
- const ImageManager = require('../render/image_manager');
7
- const GlyphManager = require('../render/glyph_manager');
8
- const Light = require('./light');
9
- const LineAtlas = require('../render/line_atlas');
10
- const { clone, deepEqual, filterObject, mapObject } = require('../util/object');
11
- const browser = require('../util/browser');
12
- const { getType: getSourceType, setType: setSourceType } = require('../source/source');
13
- const { queryRenderedFeatures, queryRenderedSymbols, querySourceFeatures } = require('../source/query_features');
14
- const SourceCache = require('../source/source_cache');
15
- const plugin = require('../source/rtl_text_plugin');
16
- const PauseablePlacement = require('./pauseable_placement');
17
- const ZoomHistory = require('./zoom_history');
18
- const CrossTileSymbolIndex = require('../symbol/cross_tile_symbol_index');
19
- const StyleLayerIndex = require('../style/style_layer_index');
20
- const { resources } = require('../source/resources');
1
+ import { ErrorEvent, Event, Evented } from '@mapwhit/events';
2
+ import assert from 'assert';
3
+ import GlyphManager from '../render/glyph_manager.js';
4
+ import ImageManager from '../render/image_manager.js';
5
+ import LineAtlas from '../render/line_atlas.js';
6
+ import { queryRenderedFeatures, queryRenderedSymbols, querySourceFeatures } from '../source/query_features.js';
7
+ import { resources } from '../source/resources/index.js';
8
+ import plugin from '../source/rtl_text_plugin.js';
9
+ import { getType as getSourceType, setType as setSourceType } from '../source/source.js';
10
+ import SourceCache from '../source/source_cache.js';
11
+ import CrossTileSymbolIndex from '../symbol/cross_tile_symbol_index.js';
12
+ import browser from '../util/browser.js';
13
+ import { clone, deepEqual } from '../util/object.js';
14
+ import createStyleLayer from './create_style_layer.js';
15
+ import Light from './light.js';
16
+ import loadSprite from './load_sprite.js';
17
+ import PauseablePlacement from './pauseable_placement.js';
18
+ import StyleLayerIndex from './style_layer_index.js';
19
+ import ZoomHistory from './zoom_history.js';
21
20
 
22
21
  const properties = [
23
22
  'version',
@@ -245,14 +244,29 @@ class Style extends Evented {
245
244
  }
246
245
  }
247
246
 
248
- loaded() {
249
- if (!this._loaded) return false;
247
+ /**
248
+ * Returns `true` when style is loaded.
249
+ * @param {Boolean} ignoreTilesLoading set to `true` to check that style is loaded
250
+ * even when sources are loading tiles
251
+ */
252
+ loaded(ignoreTilesLoading) {
253
+ if (!this._loaded) {
254
+ return false;
255
+ }
250
256
 
251
- if (Object.keys(this._updatedSources).length) return false;
257
+ if (Object.keys(this._updatedSources).length) {
258
+ return false;
259
+ }
252
260
 
253
- for (const id in this._sources) if (!this._sources[id].loaded()) return false;
261
+ for (const id in this._sources) {
262
+ if (!this._sources[id].loaded(ignoreTilesLoading)) {
263
+ return false;
264
+ }
265
+ }
254
266
 
255
- if (!this.imageManager.isLoaded()) return false;
267
+ if (!this.imageManager.isLoaded()) {
268
+ return false;
269
+ }
256
270
 
257
271
  return true;
258
272
  }
@@ -428,7 +442,9 @@ class Style extends Evented {
428
442
  sourceCache.setEventedParent(null);
429
443
  sourceCache.clearTiles();
430
444
 
431
- if (sourceCache.onRemove) sourceCache.onRemove(this.map);
445
+ if (sourceCache.onRemove) {
446
+ sourceCache.onRemove(this.map);
447
+ }
432
448
  this._changed = true;
433
449
  }
434
450
 
@@ -664,7 +680,9 @@ class Style extends Evented {
664
680
  return;
665
681
  }
666
682
 
667
- if (deepEqual(layer.getLayoutProperty(name), value)) return;
683
+ if (deepEqual(layer.getLayoutProperty(name), value)) {
684
+ return;
685
+ }
668
686
 
669
687
  layer.setLayoutProperty(name, value);
670
688
  const layerObject = this.layers.find(({ id }) => id === layerId);
@@ -695,7 +713,9 @@ class Style extends Evented {
695
713
  return;
696
714
  }
697
715
 
698
- if (deepEqual(layer.getPaintProperty(name), value)) return;
716
+ if (deepEqual(layer.getPaintProperty(name), value)) {
717
+ return;
718
+ }
699
719
 
700
720
  const layerObject = this.layers.find(({ id }) => id === layerId);
701
721
  layerObject.paint ??= {};
@@ -853,7 +873,9 @@ class Style extends Evented {
853
873
  // add all 3D features that are in or above the current layer
854
874
  for (let i = features3D.length - 1; i >= 0; i--) {
855
875
  const topmost3D = features3D[i].feature;
856
- if (layerIndex.get(topmost3D.layer.id) < l) break;
876
+ if (layerIndex.get(topmost3D.layer.id) < l) {
877
+ break;
878
+ }
857
879
  features.push(topmost3D);
858
880
  features3D.pop();
859
881
  }
@@ -889,7 +911,9 @@ class Style extends Evented {
889
911
 
890
912
  const sourceResults = [];
891
913
  for (const id in this._sources) {
892
- if (params.layers && !includedSources[id]) continue;
914
+ if (params.layers && !includedSources[id]) {
915
+ continue;
916
+ }
893
917
  sourceResults.push(
894
918
  queryRenderedFeatures(this._sources[id], this._layers, queryGeometry.viewport, params, transform)
895
919
  );
@@ -932,7 +956,9 @@ class Style extends Evented {
932
956
  break;
933
957
  }
934
958
  }
935
- if (!_update) return;
959
+ if (!_update) {
960
+ return;
961
+ }
936
962
 
937
963
  const parameters = {
938
964
  now: browser.now(),
@@ -990,7 +1016,9 @@ class Style extends Evented {
990
1016
  const layerTiles = {};
991
1017
 
992
1018
  for (const layer of this._layers.values()) {
993
- if (layer.type !== 'symbol') continue;
1019
+ if (layer.type !== 'symbol') {
1020
+ continue;
1021
+ }
994
1022
 
995
1023
  if (!layerTiles[layer.source]) {
996
1024
  const sourceCache = this._sources[layer.source];
@@ -1055,7 +1083,9 @@ class Style extends Evented {
1055
1083
 
1056
1084
  if (placementCommitted || symbolBucketsChanged) {
1057
1085
  for (const layer of this._layers.values()) {
1058
- if (layer.type !== 'symbol') continue;
1086
+ if (layer.type !== 'symbol') {
1087
+ continue;
1088
+ }
1059
1089
  this.placement.updateLayerOpacities(layer, layerTiles[layer.source]);
1060
1090
  }
1061
1091
  }
@@ -1084,4 +1114,4 @@ class Style extends Evented {
1084
1114
  Style.getSourceType = getSourceType;
1085
1115
  Style.setSourceType = setSourceType;
1086
1116
 
1087
- module.exports = Style;
1117
+ export default Style;
@@ -1,6 +1,5 @@
1
- const StyleLayer = require('../style_layer');
2
-
3
- const properties = require('./background_style_layer_properties');
1
+ import StyleLayer from '../style_layer.js';
2
+ import properties from './background_style_layer_properties.js';
4
3
 
5
4
  class BackgroundStyleLayer extends StyleLayer {
6
5
  constructor(layer) {
@@ -8,4 +7,4 @@ class BackgroundStyleLayer extends StyleLayer {
8
7
  }
9
8
  }
10
9
 
11
- module.exports = BackgroundStyleLayer;
10
+ export default BackgroundStyleLayer;
@@ -1,6 +1,6 @@
1
1
  // This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
2
2
 
3
- const { Properties, CrossFadedProperty, DataConstantProperty } = require('../properties');
3
+ import { CrossFadedProperty, DataConstantProperty, Properties } from '../properties.js';
4
4
 
5
5
  const paint = new Properties({
6
6
  'background-color': new DataConstantProperty({
@@ -22,4 +22,4 @@ const paint = new Properties({
22
22
  })
23
23
  });
24
24
 
25
- module.exports = { paint };
25
+ export default { paint };
@@ -1,11 +1,12 @@
1
- const StyleLayer = require('../style_layer');
1
+ import glMatrix from '@mapbox/gl-matrix';
2
+ import Point from '@mapbox/point-geometry';
3
+ import CircleBucket from '../../data/bucket/circle_bucket.js';
4
+ import { polygonIntersectsBufferedPoint } from '../../util/intersection_tests.js';
5
+ import { getMaximumPaintValue, translate, translateDistance } from '../query_utils.js';
6
+ import StyleLayer from '../style_layer.js';
7
+ import properties from './circle_style_layer_properties.js';
2
8
 
3
- const CircleBucket = require('../../data/bucket/circle_bucket');
4
- const { polygonIntersectsBufferedPoint } = require('../../util/intersection_tests');
5
- const { getMaximumPaintValue, translateDistance, translate } = require('../query_utils');
6
- const properties = require('./circle_style_layer_properties');
7
- const { vec4 } = require('@mapbox/gl-matrix');
8
- const { default: Point } = require('@mapbox/point-geometry');
9
+ const { vec4 } = glMatrix;
9
10
 
10
11
  class CircleStyleLayer extends StyleLayer {
11
12
  constructor(layer) {
@@ -73,7 +74,9 @@ class CircleStyleLayer extends StyleLayer {
73
74
  adjustedSize *= transform.cameraToCenterDistance / projectedCenter[3];
74
75
  }
75
76
 
76
- if (polygonIntersectsBufferedPoint(transformedPolygon, transformedPoint, adjustedSize)) return true;
77
+ if (polygonIntersectsBufferedPoint(transformedPolygon, transformedPoint, adjustedSize)) {
78
+ return true;
79
+ }
77
80
  }
78
81
  }
79
82
 
@@ -92,4 +95,4 @@ function projectQueryGeometry(queryGeometry, pixelPosMatrix) {
92
95
  });
93
96
  }
94
97
 
95
- module.exports = CircleStyleLayer;
98
+ export default CircleStyleLayer;
@@ -1,6 +1,6 @@
1
1
  // This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
2
2
 
3
- const { Properties, DataConstantProperty, DataDrivenProperty } = require('../properties');
3
+ import { DataConstantProperty, DataDrivenProperty, Properties } from '../properties.js';
4
4
 
5
5
  const paint = new Properties({
6
6
  'circle-radius': new DataDrivenProperty({
@@ -73,4 +73,4 @@ const paint = new Properties({
73
73
  })
74
74
  });
75
75
 
76
- module.exports = { paint };
76
+ export default { paint };
@@ -1,13 +1,14 @@
1
- const StyleLayer = require('../style_layer');
1
+ import glMatrix from '@mapbox/gl-matrix';
2
+ import Point from '@mapbox/point-geometry';
3
+ import FillExtrusionBucket from '../../data/bucket/fill_extrusion_bucket.js';
4
+ import { polygonIntersectsMultiPolygon, polygonIntersectsPolygon } from '../../util/intersection_tests.js';
5
+ import { translate, translateDistance } from '../query_utils.js';
6
+ import StyleLayer from '../style_layer.js';
7
+ import properties from './fill_extrusion_style_layer_properties.js';
2
8
 
3
- const FillExtrusionBucket = require('../../data/bucket/fill_extrusion_bucket');
4
- const { polygonIntersectsPolygon, polygonIntersectsMultiPolygon } = require('../../util/intersection_tests');
5
- const { translateDistance, translate } = require('../query_utils');
6
- const properties = require('./fill_extrusion_style_layer_properties');
7
- const { vec4 } = require('@mapbox/gl-matrix');
8
- const { default: Point } = require('@mapbox/point-geometry');
9
+ const { vec4 } = glMatrix;
9
10
 
10
- class FillExtrusionStyleLayer extends StyleLayer {
11
+ export class FillExtrusionStyleLayer extends StyleLayer {
11
12
  constructor(layer) {
12
13
  super(layer, properties);
13
14
  }
@@ -57,7 +58,7 @@ function dot(a, b) {
57
58
  return a.x * b.x + a.y * b.y;
58
59
  }
59
60
 
60
- function getIntersectionDistance(projectedQueryGeometry, projectedFace) {
61
+ export function getIntersectionDistance(projectedQueryGeometry, projectedFace) {
61
62
  if (projectedQueryGeometry.length === 1) {
62
63
  // For point queries calculate the z at which the point intersects the face
63
64
  // using barycentric coordinates.
@@ -73,7 +74,9 @@ function getIntersectionDistance(projectedQueryGeometry, projectedFace) {
73
74
  let b;
74
75
  while (!b || a.equals(b)) {
75
76
  b = projectedFace[i++];
76
- if (!b) return Number.POSITIVE_INFINITY;
77
+ if (!b) {
78
+ return Number.POSITIVE_INFINITY;
79
+ }
77
80
  }
78
81
 
79
82
  // Loop until point `c` is not colinear with points `a` and `b`.
@@ -99,7 +102,9 @@ function getIntersectionDistance(projectedQueryGeometry, projectedFace) {
99
102
  // Use the barycentric weighting along with the original triangle z coordinates to get the point of intersection.
100
103
  const distance = a.z * u + b.z * v + c.z * w;
101
104
 
102
- if (Number.isFinite(distance)) return distance;
105
+ if (Number.isFinite(distance)) {
106
+ return distance;
107
+ }
103
108
  }
104
109
  return Number.POSITIVE_INFINITY;
105
110
  }
@@ -205,5 +210,3 @@ function projectQueryGeometry(queryGeometry, pixelPosMatrix, transform, z) {
205
210
  }
206
211
  return projectedQueryGeometry;
207
212
  }
208
-
209
- module.exports = { FillExtrusionStyleLayer, getIntersectionDistance };
@@ -1,6 +1,6 @@
1
1
  // This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
2
2
 
3
- const { Properties, CrossFadedDataDrivenProperty, DataConstantProperty, DataDrivenProperty } = require('../properties');
3
+ import { CrossFadedDataDrivenProperty, DataConstantProperty, DataDrivenProperty, Properties } from '../properties.js';
4
4
 
5
5
  const paint = new Properties({
6
6
  'fill-extrusion-opacity': new DataConstantProperty({
@@ -53,4 +53,4 @@ const paint = new Properties({
53
53
  })
54
54
  });
55
55
 
56
- module.exports = { paint };
56
+ export default { paint };
@@ -1,9 +1,8 @@
1
- const StyleLayer = require('../style_layer');
2
-
3
- const FillBucket = require('../../data/bucket/fill_bucket');
4
- const { polygonIntersectsMultiPolygon } = require('../../util/intersection_tests');
5
- const { translateDistance, translate } = require('../query_utils');
6
- const properties = require('./fill_style_layer_properties');
1
+ import FillBucket from '../../data/bucket/fill_bucket.js';
2
+ import { polygonIntersectsMultiPolygon } from '../../util/intersection_tests.js';
3
+ import { translate, translateDistance } from '../query_utils.js';
4
+ import StyleLayer from '../style_layer.js';
5
+ import properties from './fill_style_layer_properties.js';
7
6
 
8
7
  class FillStyleLayer extends StyleLayer {
9
8
  constructor(layer) {
@@ -43,4 +42,4 @@ class FillStyleLayer extends StyleLayer {
43
42
  }
44
43
  }
45
44
 
46
- module.exports = FillStyleLayer;
45
+ export default FillStyleLayer;
@@ -1,6 +1,6 @@
1
1
  // This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
2
2
 
3
- const { Properties, CrossFadedDataDrivenProperty, DataConstantProperty, DataDrivenProperty } = require('../properties');
3
+ import { CrossFadedDataDrivenProperty, DataConstantProperty, DataDrivenProperty, Properties } from '../properties.js';
4
4
 
5
5
  const paint = new Properties({
6
6
  'fill-antialias': new DataConstantProperty({ type: 'boolean', default: true, expression: { parameters: ['zoom'] } }),
@@ -42,4 +42,4 @@ const paint = new Properties({
42
42
  })
43
43
  });
44
44
 
45
- module.exports = { paint };
45
+ export default { paint };
@@ -1,8 +1,7 @@
1
- const StyleLayer = require('../style_layer');
2
-
3
- const HeatmapBucket = require('../../data/bucket/heatmap_bucket');
4
- const properties = require('./heatmap_style_layer_properties');
5
- const renderColorRamp = require('../../util/color_ramp');
1
+ import HeatmapBucket from '../../data/bucket/heatmap_bucket.js';
2
+ import renderColorRamp from '../../util/color_ramp.js';
3
+ import StyleLayer from '../style_layer.js';
4
+ import properties from './heatmap_style_layer_properties.js';
6
5
 
7
6
  class HeatmapStyleLayer extends StyleLayer {
8
7
  createBucket(options) {
@@ -48,4 +47,4 @@ class HeatmapStyleLayer extends StyleLayer {
48
47
  }
49
48
  }
50
49
 
51
- module.exports = HeatmapStyleLayer;
50
+ export default HeatmapStyleLayer;
@@ -1,6 +1,6 @@
1
1
  // This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
2
2
 
3
- const { Properties, ColorRampProperty, DataConstantProperty, DataDrivenProperty } = require('../properties');
3
+ import { ColorRampProperty, DataConstantProperty, DataDrivenProperty, Properties } from '../properties.js';
4
4
 
5
5
  const paint = new Properties({
6
6
  'heatmap-radius': new DataDrivenProperty({
@@ -49,4 +49,4 @@ const paint = new Properties({
49
49
  })
50
50
  });
51
51
 
52
- module.exports = { paint };
52
+ export default { paint };
@@ -1,6 +1,5 @@
1
- const StyleLayer = require('../style_layer');
2
-
3
- const properties = require('./hillshade_style_layer_properties');
1
+ import StyleLayer from '../style_layer.js';
2
+ import properties from './hillshade_style_layer_properties.js';
4
3
 
5
4
  class HillshadeStyleLayer extends StyleLayer {
6
5
  constructor(layer) {
@@ -12,4 +11,4 @@ class HillshadeStyleLayer extends StyleLayer {
12
11
  }
13
12
  }
14
13
 
15
- module.exports = HillshadeStyleLayer;
14
+ export default HillshadeStyleLayer;
@@ -1,6 +1,6 @@
1
1
  // This file is generated. Edit layer-properties.js.ejs, then run `make generate-style-code`.
2
2
 
3
- const { Properties, DataConstantProperty } = require('../properties');
3
+ import { DataConstantProperty, Properties } from '../properties.js';
4
4
 
5
5
  const paint = new Properties({
6
6
  'hillshade-illumination-direction': new DataConstantProperty({
@@ -40,4 +40,4 @@ const paint = new Properties({
40
40
  })
41
41
  });
42
42
 
43
- module.exports = { paint };
43
+ export default { paint };