maplibre-gl 3.1.0 → 3.2.0-pre.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/build/generate-doc-images.ts +73 -0
- package/build/generate-docs.ts +100 -0
- package/build/generate-struct-arrays.ts +9 -12
- package/dist/maplibre-gl-csp-worker.js +1 -1
- package/dist/maplibre-gl-csp-worker.js.map +1 -1
- package/dist/maplibre-gl-csp.js +1 -1
- package/dist/maplibre-gl-csp.js.map +1 -1
- package/dist/maplibre-gl-dev.js +3303 -3398
- package/dist/maplibre-gl-dev.js.map +1 -1
- package/dist/maplibre-gl.d.ts +3899 -3531
- package/dist/maplibre-gl.js +3 -3
- package/dist/maplibre-gl.js.map +1 -1
- package/package.json +28 -25
- package/src/data/array_types.g.ts +14 -48
- package/src/data/bucket/circle_bucket.ts +11 -14
- package/src/data/bucket/fill_bucket.test.ts +6 -6
- package/src/data/bucket/fill_bucket.ts +10 -12
- package/src/data/bucket/fill_extrusion_bucket.ts +11 -13
- package/src/data/bucket/heatmap_bucket.ts +3 -6
- package/src/data/bucket/line_attributes.ts +1 -2
- package/src/data/bucket/line_attributes_ext.ts +1 -2
- package/src/data/bucket/line_bucket.test.ts +5 -5
- package/src/data/bucket/line_bucket.ts +18 -21
- package/src/data/bucket/pattern_attributes.ts +1 -3
- package/src/data/bucket/pattern_bucket_features.ts +3 -3
- package/src/data/bucket/symbol_bucket.test.ts +5 -5
- package/src/data/bucket/symbol_bucket.ts +12 -15
- package/src/data/bucket.ts +7 -11
- package/src/data/dem_data.test.ts +1 -1
- package/src/data/dem_data.ts +1 -1
- package/src/data/evaluation_feature.ts +4 -5
- package/src/data/extent.ts +1 -4
- package/src/data/feature_index.ts +14 -13
- package/src/data/feature_position_map.test.ts +4 -4
- package/src/data/feature_position_map.ts +1 -1
- package/src/data/index_array_type.ts +0 -1
- package/src/data/load_geometry.test.ts +1 -1
- package/src/data/load_geometry.ts +3 -4
- package/src/data/program_configuration.ts +6 -11
- package/src/data/segment.ts +9 -6
- package/src/geo/edge_insets.test.ts +1 -1
- package/src/geo/edge_insets.ts +36 -26
- package/src/geo/lng_lat.test.ts +1 -1
- package/src/geo/lng_lat.ts +61 -44
- package/src/geo/lng_lat_bounds.test.ts +2 -2
- package/src/geo/lng_lat_bounds.ts +88 -68
- package/src/geo/mercator_coordinate.test.ts +2 -2
- package/src/geo/mercator_coordinate.ts +34 -27
- package/src/geo/transform.test.ts +3 -3
- package/src/geo/transform.ts +58 -79
- package/src/gl/color_mode.ts +1 -3
- package/src/gl/context.ts +12 -11
- package/src/gl/cull_face_mode.ts +1 -3
- package/src/gl/depth_mode.ts +1 -3
- package/src/gl/framebuffer.ts +5 -4
- package/src/gl/index_buffer.ts +5 -4
- package/src/gl/render_pool.test.ts +2 -2
- package/src/gl/render_pool.ts +5 -5
- package/src/gl/state.test.ts +1 -1
- package/src/gl/stencil_mode.ts +1 -3
- package/src/gl/value.ts +1 -1
- package/src/gl/vertex_buffer.test.ts +2 -2
- package/src/gl/vertex_buffer.ts +8 -14
- package/src/index.test.ts +2 -2
- package/src/index.ts +121 -113
- package/src/render/draw_background.ts +7 -9
- package/src/render/draw_circle.ts +13 -15
- package/src/render/draw_collision_debug.ts +11 -13
- package/src/render/draw_custom.ts +6 -8
- package/src/render/draw_debug.test.ts +4 -4
- package/src/render/draw_debug.ts +8 -10
- package/src/render/draw_fill.test.ts +13 -13
- package/src/render/draw_fill.ts +9 -11
- package/src/render/draw_fill_extrusion.ts +10 -12
- package/src/render/draw_heatmap.ts +12 -14
- package/src/render/draw_hillshade.ts +10 -12
- package/src/render/draw_line.ts +9 -9
- package/src/render/draw_raster.ts +9 -11
- package/src/render/draw_symbol.test.ts +16 -16
- package/src/render/draw_symbol.ts +15 -16
- package/src/render/draw_terrain.ts +11 -11
- package/src/render/glyph_atlas.ts +10 -1
- package/src/render/glyph_manager.test.ts +3 -3
- package/src/render/glyph_manager.ts +7 -7
- package/src/render/image_atlas.ts +6 -3
- package/src/render/image_manager.ts +3 -5
- package/src/render/line_atlas.test.ts +1 -1
- package/src/render/line_atlas.ts +19 -14
- package/src/render/painter.ts +85 -65
- package/src/render/program/background_program.ts +2 -2
- package/src/render/program/circle_program.ts +5 -5
- package/src/render/program/clipping_mask_program.ts +1 -1
- package/src/render/program/collision_program.ts +4 -4
- package/src/render/program/debug_program.ts +1 -1
- package/src/render/program/fill_extrusion_program.ts +3 -3
- package/src/render/program/fill_program.ts +3 -3
- package/src/render/program/heatmap_program.ts +5 -5
- package/src/render/program/hillshade_program.ts +7 -7
- package/src/render/program/line_program.ts +6 -6
- package/src/render/program/pattern.ts +3 -3
- package/src/render/program/raster_program.ts +2 -2
- package/src/render/program/symbol_program.ts +2 -2
- package/src/render/program/terrain_program.ts +1 -1
- package/src/render/program.ts +18 -16
- package/src/render/render_to_texture.test.ts +15 -15
- package/src/render/render_to_texture.ts +10 -10
- package/src/render/terrain.test.ts +38 -7
- package/src/render/terrain.ts +103 -67
- package/src/render/texture.ts +5 -4
- package/src/render/uniform_binding.test.ts +1 -1
- package/src/render/uniform_binding.ts +7 -1
- package/src/render/update_pattern_positions_in_program.ts +5 -5
- package/src/render/vertex_array_object.ts +9 -8
- package/src/shaders/encode_attribute.ts +0 -2
- package/src/shaders/shaders.ts +1 -3
- package/src/source/canvas_source.test.ts +6 -6
- package/src/source/canvas_source.ts +46 -60
- package/src/source/geojson_source.test.ts +5 -5
- package/src/source/geojson_source.ts +75 -59
- package/src/source/geojson_source_diff.ts +39 -2
- package/src/source/geojson_worker_source.test.ts +3 -3
- package/src/source/geojson_worker_source.ts +20 -26
- package/src/source/geojson_wrapper.test.ts +3 -3
- package/src/source/geojson_wrapper.ts +2 -4
- package/src/source/image_source.test.ts +9 -8
- package/src/source/image_source.ts +49 -35
- package/src/source/load_tilejson.ts +2 -2
- package/src/source/pixels_to_tile_units.ts +2 -3
- package/src/source/query_features.test.ts +3 -3
- package/src/source/query_features.ts +50 -19
- package/src/source/raster_dem_tile_source.test.ts +3 -3
- package/src/source/raster_dem_tile_source.ts +23 -10
- package/src/source/raster_dem_tile_worker_source.test.ts +2 -2
- package/src/source/raster_dem_tile_worker_source.ts +3 -5
- package/src/source/raster_tile_source.test.ts +3 -3
- package/src/source/raster_tile_source.ts +38 -11
- package/src/source/rtl_text_plugin.ts +4 -1
- package/src/source/source.ts +67 -59
- package/src/source/source_cache.test.ts +7 -7
- package/src/source/source_cache.ts +17 -38
- package/src/source/source_state.ts +2 -5
- package/src/source/terrain_source_cache.test.ts +8 -8
- package/src/source/terrain_source_cache.ts +42 -27
- package/src/source/tile.test.ts +3 -3
- package/src/source/tile.ts +32 -38
- package/src/source/tile_bounds.ts +2 -4
- package/src/source/tile_cache.test.ts +2 -2
- package/src/source/tile_cache.ts +20 -30
- package/src/source/tile_id.ts +11 -2
- package/src/source/vector_tile_source.test.ts +3 -3
- package/src/source/vector_tile_source.ts +34 -24
- package/src/source/vector_tile_worker_source.test.ts +4 -4
- package/src/source/vector_tile_worker_source.ts +11 -23
- package/src/source/video_source.test.ts +5 -5
- package/src/source/video_source.ts +21 -28
- package/src/source/worker.ts +6 -8
- package/src/source/worker_source.ts +6 -8
- package/src/source/worker_tile.test.ts +5 -5
- package/src/source/worker_tile.ts +13 -16
- package/src/style/create_style_layer.ts +31 -26
- package/src/style/evaluation_parameters.ts +5 -4
- package/src/style/format_section_override.test.ts +2 -2
- package/src/style/format_section_override.ts +1 -1
- package/src/style/light.test.ts +2 -2
- package/src/style/light.ts +3 -5
- package/src/style/load_glyph_range.test.ts +1 -1
- package/src/style/load_glyph_range.ts +3 -3
- package/src/style/load_sprite.test.ts +1 -1
- package/src/style/load_sprite.ts +3 -3
- package/src/style/parse_glyph_pbf.ts +1 -1
- package/src/style/pauseable_placement.ts +7 -9
- package/src/style/properties.ts +4 -53
- package/src/style/query_utils.ts +3 -3
- package/src/style/style.test.ts +22 -19
- package/src/style/style.ts +118 -84
- package/src/style/style_glyph.ts +6 -0
- package/src/style/style_image.ts +39 -33
- package/src/style/style_layer/background_style_layer.ts +2 -4
- package/src/style/style_layer/circle_style_layer.ts +7 -6
- package/src/style/style_layer/custom_style_layer.ts +23 -48
- package/src/style/style_layer/fill_extrusion_style_layer.ts +4 -6
- package/src/style/style_layer/fill_style_layer.ts +5 -7
- package/src/style/style_layer/heatmap_style_layer.ts +8 -7
- package/src/style/style_layer/hillshade_style_layer.ts +2 -4
- package/src/style/style_layer/line_style_layer.ts +6 -8
- package/src/style/style_layer/overlap_mode.test.ts +3 -3
- package/src/style/style_layer/overlap_mode.ts +3 -0
- package/src/style/style_layer/raster_style_layer.ts +2 -4
- package/src/style/style_layer/symbol_style_layer.ts +6 -8
- package/src/style/style_layer/typed_style_layer.ts +7 -7
- package/src/style/style_layer.test.ts +5 -5
- package/src/style/style_layer.ts +7 -6
- package/src/style/style_layer_index.test.ts +1 -1
- package/src/style/style_layer_index.ts +3 -5
- package/src/style/zoom_history.ts +1 -3
- package/src/symbol/anchor.test.ts +1 -1
- package/src/symbol/anchor.ts +1 -3
- package/src/symbol/check_max_angle.test.ts +8 -2
- package/src/symbol/check_max_angle.ts +10 -13
- package/src/symbol/clip_line.test.ts +1 -1
- package/src/symbol/clip_line.ts +6 -9
- package/src/symbol/collision_feature.test.ts +2 -2
- package/src/symbol/collision_feature.ts +7 -12
- package/src/symbol/collision_index.test.ts +2 -2
- package/src/symbol/collision_index.ts +5 -11
- package/src/symbol/cross_tile_symbol_index.test.ts +2 -2
- package/src/symbol/cross_tile_symbol_index.ts +5 -7
- package/src/symbol/get_anchors.ts +2 -2
- package/src/symbol/grid_index.test.ts +1 -1
- package/src/symbol/grid_index.ts +4 -5
- package/src/symbol/merge_lines.test.ts +1 -1
- package/src/symbol/merge_lines.ts +1 -1
- package/src/symbol/opacity_state.ts +1 -3
- package/src/symbol/path_interpolator.test.ts +1 -1
- package/src/symbol/path_interpolator.ts +1 -3
- package/src/symbol/placement.ts +9 -9
- package/src/symbol/projection.ts +61 -34
- package/src/symbol/quads.ts +7 -11
- package/src/symbol/shaping.ts +1 -1
- package/src/symbol/symbol_layout.ts +9 -12
- package/src/symbol/symbol_size.ts +1 -1
- package/src/symbol/symbol_style_layer.test.ts +4 -4
- package/src/symbol/transform_text.ts +2 -2
- package/src/types/callback.ts +14 -14
- package/src/types/cancelable.ts +3 -0
- package/src/types/transferable.ts +3 -0
- package/src/ui/anchor.ts +4 -0
- package/src/ui/camera.test.ts +6 -6
- package/src/ui/camera.ts +392 -361
- package/src/ui/control/attribution_control.test.ts +1 -1
- package/src/ui/control/attribution_control.ts +34 -30
- package/src/ui/control/control.ts +14 -20
- package/src/ui/control/fullscreen_control.test.ts +1 -1
- package/src/ui/control/fullscreen_control.ts +21 -26
- package/src/ui/control/geolocate_control.test.ts +5 -5
- package/src/ui/control/geolocate_control.ts +181 -194
- package/src/ui/control/logo_control.ts +20 -16
- package/src/ui/control/navigation_control.test.ts +1 -1
- package/src/ui/control/navigation_control.ts +46 -42
- package/src/ui/control/scale_control.test.ts +1 -1
- package/src/ui/control/scale_control.ts +30 -21
- package/src/ui/control/terrain_control.test.ts +1 -1
- package/src/ui/control/terrain_control.ts +14 -18
- package/src/ui/default_locale.ts +1 -3
- package/src/ui/events.ts +570 -1281
- package/src/ui/handler/box_zoom.test.ts +2 -2
- package/src/ui/handler/box_zoom.ts +16 -11
- package/src/ui/handler/click_zoom.ts +11 -3
- package/src/ui/handler/cooperative_gestures.test.ts +3 -3
- package/src/ui/handler/dblclick_zoom.test.ts +1 -1
- package/src/ui/handler/drag_handler.ts +30 -22
- package/src/ui/handler/drag_move_state_manager.ts +1 -1
- package/src/ui/handler/drag_pan.test.ts +2 -2
- package/src/ui/handler/drag_rotate.test.ts +3 -3
- package/src/ui/handler/keyboard.test.ts +2 -2
- package/src/ui/handler/keyboard.ts +22 -13
- package/src/ui/handler/map_event.test.ts +2 -2
- package/src/ui/handler/map_event.ts +1 -1
- package/src/ui/handler/mouse.ts +1 -1
- package/src/ui/handler/mouse_rotate.test.ts +3 -3
- package/src/ui/handler/scroll_zoom.test.ts +3 -3
- package/src/ui/handler/scroll_zoom.ts +45 -52
- package/src/ui/handler/shim/dblclick_zoom.ts +12 -6
- package/src/ui/handler/shim/drag_pan.ts +34 -14
- package/src/ui/handler/shim/drag_rotate.ts +20 -12
- package/src/ui/handler/shim/two_fingers_touch.ts +24 -18
- package/src/ui/handler/tap_drag_zoom.test.ts +113 -0
- package/src/ui/handler/tap_drag_zoom.ts +18 -10
- package/src/ui/handler/tap_recognizer.ts +1 -1
- package/src/ui/handler/tap_zoom.ts +4 -3
- package/src/ui/handler/touch_pan.ts +3 -2
- package/src/ui/handler/transform-provider.ts +4 -6
- package/src/ui/handler/two_fingers_touch.test.ts +3 -3
- package/src/ui/handler/two_fingers_touch.ts +64 -47
- package/src/ui/handler_inertia.ts +4 -4
- package/src/ui/handler_manager.ts +86 -52
- package/src/ui/hash.test.ts +1 -1
- package/src/ui/hash.ts +21 -28
- package/src/ui/map/isMoving.test.ts +3 -3
- package/src/ui/map/isRotating.test.ts +3 -3
- package/src/ui/map/isZooming.test.ts +3 -3
- package/src/ui/map.test.ts +97 -8
- package/src/ui/map.ts +856 -702
- package/src/ui/map_events.test.ts +1 -1
- package/src/ui/marker.test.ts +35 -15
- package/src/ui/marker.ts +220 -141
- package/src/ui/popup.test.ts +2 -2
- package/src/ui/popup.ts +179 -147
- package/src/util/actor.test.ts +7 -7
- package/src/util/actor.ts +25 -22
- package/src/util/ajax.ts +37 -17
- package/src/util/browser.test.ts +1 -1
- package/src/util/browser.ts +2 -6
- package/src/util/classify_rings.test.ts +1 -1
- package/src/util/classify_rings.ts +1 -1
- package/src/util/color_ramp.ts +0 -2
- package/src/util/config.ts +6 -3
- package/src/util/debug.ts +0 -2
- package/src/util/dictionary_coder.ts +1 -4
- package/src/util/dispatcher.test.ts +3 -3
- package/src/util/dispatcher.ts +4 -9
- package/src/util/dom.ts +1 -1
- package/src/util/evented.ts +23 -18
- package/src/util/find_pole_of_inaccessibility.test.ts +1 -1
- package/src/util/find_pole_of_inaccessibility.ts +4 -5
- package/src/util/global_worker_pool.ts +2 -3
- package/src/util/image.ts +10 -4
- package/src/util/image_request.test.ts +3 -3
- package/src/util/image_request.ts +15 -14
- package/src/util/is_char_in_unicode_block.ts +1 -3
- package/src/util/offscreen_canvas_supported.ts +1 -1
- package/src/util/performance.ts +1 -2
- package/src/util/request_manager.ts +4 -0
- package/src/util/resolve_tokens.test.ts +1 -1
- package/src/util/resolve_tokens.ts +3 -6
- package/src/util/script_detection.ts +1 -4
- package/src/util/smart_wrap.ts +3 -5
- package/src/util/struct_array.ts +18 -14
- package/src/util/style.ts +2 -2
- package/src/util/task_queue.test.ts +1 -1
- package/src/util/task_queue.ts +1 -3
- package/src/util/test/mock_webgl.ts +6 -0
- package/src/util/test/util.ts +2 -2
- package/src/util/throttle.test.ts +1 -1
- package/src/util/throttle.ts +1 -2
- package/src/util/throttled_invoker.ts +1 -5
- package/src/util/transferable_grid_index.test.ts +1 -1
- package/src/util/transferable_grid_index.ts +1 -3
- package/src/util/util.test.ts +1 -14
- package/src/util/util.ts +44 -107
- package/src/util/vectortile_to_geojson.ts +13 -3
- package/src/util/verticalize_punctuation.ts +1 -1
- package/src/util/web_worker.ts +2 -2
- package/src/util/web_worker_transfer.ts +11 -8
- package/src/util/webp_supported.ts +2 -4
- package/src/util/worker_pool.test.ts +1 -1
- package/src/util/worker_pool.ts +4 -5
package/src/style/properties.ts
CHANGED
|
@@ -7,34 +7,20 @@ import {interpolates, Color, StylePropertySpecification, normalizePropertyExpres
|
|
|
7
7
|
CompositeExpression, TransitionSpecification,
|
|
8
8
|
PropertyValueSpecification} from '@maplibre/maplibre-gl-style-spec';
|
|
9
9
|
import {register} from '../util/web_worker_transfer';
|
|
10
|
-
import EvaluationParameters from './evaluation_parameters';
|
|
10
|
+
import {EvaluationParameters} from './evaluation_parameters';
|
|
11
11
|
|
|
12
12
|
import {CanonicalTileID} from '../source/tile_id';
|
|
13
13
|
|
|
14
14
|
type TimePoint = number;
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* A from-to type
|
|
18
|
+
*/
|
|
16
19
|
export type CrossFaded<T> = {
|
|
17
20
|
to: T;
|
|
18
21
|
from: T;
|
|
19
22
|
};
|
|
20
23
|
|
|
21
|
-
/**
|
|
22
|
-
* Implements a number of classes that define state and behavior for paint and layout properties, most
|
|
23
|
-
* importantly their respective evaluation chains:
|
|
24
|
-
*
|
|
25
|
-
* Transitionable paint property value
|
|
26
|
-
* → Transitioning paint property value
|
|
27
|
-
* → Possibly evaluated paint property value
|
|
28
|
-
* → Fully evaluated paint property value
|
|
29
|
-
*
|
|
30
|
-
* Layout property value
|
|
31
|
-
* → Possibly evaluated layout property value
|
|
32
|
-
* → Fully evaluated layout property value
|
|
33
|
-
*
|
|
34
|
-
* @module
|
|
35
|
-
* @private
|
|
36
|
-
*/
|
|
37
|
-
|
|
38
24
|
/**
|
|
39
25
|
* Implementations of the `Property` interface:
|
|
40
26
|
*
|
|
@@ -50,8 +36,6 @@ export type CrossFaded<T> = {
|
|
|
50
36
|
* and one for properties that don't. There are a few "special case" implementations as well: one for properties
|
|
51
37
|
* which cross-fade between two values rather than interpolating, one for `heatmap-color` and `line-gradient`,
|
|
52
38
|
* and one for `light-position`.
|
|
53
|
-
*
|
|
54
|
-
* @private
|
|
55
39
|
*/
|
|
56
40
|
export interface Property<T, R> {
|
|
57
41
|
specification: StylePropertySpecification;
|
|
@@ -80,8 +64,6 @@ export interface Property<T, R> {
|
|
|
80
64
|
* In addition to storing the original input value, `PropertyValue` also stores a normalized representation,
|
|
81
65
|
* effectively treating functions as if they are expressions, and constant or default values as if they are
|
|
82
66
|
* (constant) expressions.
|
|
83
|
-
*
|
|
84
|
-
* @private
|
|
85
67
|
*/
|
|
86
68
|
export class PropertyValue<T, R> {
|
|
87
69
|
property: Property<T, R>;
|
|
@@ -107,8 +89,6 @@ export class PropertyValue<T, R> {
|
|
|
107
89
|
}
|
|
108
90
|
}
|
|
109
91
|
|
|
110
|
-
// ------- Transitionable -------
|
|
111
|
-
|
|
112
92
|
export type TransitionParameters = {
|
|
113
93
|
now: TimePoint;
|
|
114
94
|
transition: TransitionSpecification;
|
|
@@ -123,8 +103,6 @@ export type TransitionParameters = {
|
|
|
123
103
|
*
|
|
124
104
|
* A `TransitionablePropertyValue` can calculate the next step in the evaluation chain for paint property values:
|
|
125
105
|
* `TransitioningPropertyValue`.
|
|
126
|
-
*
|
|
127
|
-
* @private
|
|
128
106
|
*/
|
|
129
107
|
class TransitionablePropertyValue<T, R> {
|
|
130
108
|
property: Property<T, R>;
|
|
@@ -150,8 +128,6 @@ class TransitionablePropertyValue<T, R> {
|
|
|
150
128
|
* `Transitionable` stores a map of all (property name, `TransitionablePropertyValue`) pairs for paint properties of a
|
|
151
129
|
* given layer type. It can calculate the `TransitioningPropertyValue`s for all of them at once, producing a
|
|
152
130
|
* `Transitioning` instance for the same set of properties.
|
|
153
|
-
*
|
|
154
|
-
* @private
|
|
155
131
|
*/
|
|
156
132
|
export class Transitionable<Props> {
|
|
157
133
|
_properties: Properties<Props>;
|
|
@@ -219,16 +195,12 @@ export class Transitionable<Props> {
|
|
|
219
195
|
}
|
|
220
196
|
}
|
|
221
197
|
|
|
222
|
-
// ------- Transitioning -------
|
|
223
|
-
|
|
224
198
|
/**
|
|
225
199
|
* `TransitioningPropertyValue` implements the first of two intermediate steps in the evaluation chain of a paint
|
|
226
200
|
* property value. In this step, transitions between old and new values are handled: as long as the transition is in
|
|
227
201
|
* progress, `TransitioningPropertyValue` maintains a reference to the prior value, and interpolates between it and
|
|
228
202
|
* the new value based on the current time and the configured transition duration and delay. The product is the next
|
|
229
203
|
* step in the evaluation chain: the "possibly evaluated" result type `R`. See below for more on this concept.
|
|
230
|
-
*
|
|
231
|
-
* @private
|
|
232
204
|
*/
|
|
233
205
|
class TransitioningPropertyValue<T, R> {
|
|
234
206
|
property: Property<T, R>;
|
|
@@ -287,8 +259,6 @@ class TransitioningPropertyValue<T, R> {
|
|
|
287
259
|
* `Transitioning` stores a map of all (property name, `TransitioningPropertyValue`) pairs for paint properties of a
|
|
288
260
|
* given layer type. It can calculate the possibly-evaluated values for all of them at once, producing a
|
|
289
261
|
* `PossiblyEvaluated` instance for the same set of properties.
|
|
290
|
-
*
|
|
291
|
-
* @private
|
|
292
262
|
*/
|
|
293
263
|
export class Transitioning<Props> {
|
|
294
264
|
_properties: Properties<Props>;
|
|
@@ -331,8 +301,6 @@ export class Transitioning<Props> {
|
|
|
331
301
|
* `Layout` stores a map of all (property name, `PropertyValue`) pairs for layout properties of a
|
|
332
302
|
* given layer type. It can calculate the possibly-evaluated values for all of them at once, producing a
|
|
333
303
|
* `PossiblyEvaluated` instance for the same set of properties.
|
|
334
|
-
*
|
|
335
|
-
* @private
|
|
336
304
|
*/
|
|
337
305
|
export class Layout<Props> {
|
|
338
306
|
_properties: Properties<Props>;
|
|
@@ -395,8 +363,6 @@ export class Layout<Props> {
|
|
|
395
363
|
* Note that `PossiblyEvaluatedValue` (and `PossiblyEvaluatedPropertyValue`, below) are _not_ used for properties that
|
|
396
364
|
* do not allow data-driven values. For such properties, we know that the "possibly evaluated" result is always a constant
|
|
397
365
|
* scalar value. See below.
|
|
398
|
-
*
|
|
399
|
-
* @private
|
|
400
366
|
*/
|
|
401
367
|
type PossiblyEvaluatedValue<T> = {
|
|
402
368
|
kind: 'constant';
|
|
@@ -408,8 +374,6 @@ type PossiblyEvaluatedValue<T> = {
|
|
|
408
374
|
* `PossiblyEvaluatedValue` and the `GlobalProperties` that were used to generate it. You're not allowed to supply
|
|
409
375
|
* a different set of `GlobalProperties` when performing the final evaluation because they would be ignored in the
|
|
410
376
|
* case where the input value was a constant or camera function.
|
|
411
|
-
*
|
|
412
|
-
* @private
|
|
413
377
|
*/
|
|
414
378
|
export class PossiblyEvaluatedPropertyValue<T> {
|
|
415
379
|
property: DataDrivenProperty<T>;
|
|
@@ -447,7 +411,6 @@ export class PossiblyEvaluatedPropertyValue<T> {
|
|
|
447
411
|
/**
|
|
448
412
|
* `PossiblyEvaluated` stores a map of all (property name, `R`) pairs for paint or layout properties of a
|
|
449
413
|
* given layer type.
|
|
450
|
-
* @private
|
|
451
414
|
*/
|
|
452
415
|
export class PossiblyEvaluated<Props, PossibleEvaluatedProps> {
|
|
453
416
|
_properties: Properties<Props>;
|
|
@@ -467,8 +430,6 @@ export class PossiblyEvaluated<Props, PossibleEvaluatedProps> {
|
|
|
467
430
|
* An implementation of `Property` for properties that do not permit data-driven (source or composite) expressions.
|
|
468
431
|
* This restriction allows us to declare statically that the result of possibly evaluating this kind of property
|
|
469
432
|
* is in fact always the scalar type `T`, and can be used without further evaluating the value on a per-feature basis.
|
|
470
|
-
*
|
|
471
|
-
* @private
|
|
472
433
|
*/
|
|
473
434
|
export class DataConstantProperty<T> implements Property<T, T> {
|
|
474
435
|
specification: StylePropertySpecification;
|
|
@@ -497,8 +458,6 @@ export class DataConstantProperty<T> implements Property<T, T> {
|
|
|
497
458
|
* An implementation of `Property` for properties that permit data-driven (source or composite) expressions.
|
|
498
459
|
* The result of possibly evaluating this kind of property is `PossiblyEvaluatedPropertyValue<T>`; obtaining
|
|
499
460
|
* a scalar value `T` requires further evaluation on a per-feature basis.
|
|
500
|
-
*
|
|
501
|
-
* @private
|
|
502
461
|
*/
|
|
503
462
|
export class DataDrivenProperty<T> implements Property<T, PossiblyEvaluatedPropertyValue<T>> {
|
|
504
463
|
specification: StylePropertySpecification;
|
|
@@ -572,8 +531,6 @@ export class DataDrivenProperty<T> implements Property<T, PossiblyEvaluatedPrope
|
|
|
572
531
|
/**
|
|
573
532
|
* An implementation of `Property` for data driven `line-pattern` which are transitioned by cross-fading
|
|
574
533
|
* rather than interpolation.
|
|
575
|
-
*
|
|
576
|
-
* @private
|
|
577
534
|
*/
|
|
578
535
|
|
|
579
536
|
export class CrossFadedDataDrivenProperty<T> extends DataDrivenProperty<CrossFaded<T>> {
|
|
@@ -639,8 +596,6 @@ export class CrossFadedDataDrivenProperty<T> extends DataDrivenProperty<CrossFad
|
|
|
639
596
|
/**
|
|
640
597
|
* An implementation of `Property` for `*-pattern` and `line-dasharray`, which are transitioned by cross-fading
|
|
641
598
|
* rather than interpolation.
|
|
642
|
-
*
|
|
643
|
-
* @private
|
|
644
599
|
*/
|
|
645
600
|
export class CrossFadedProperty<T> implements Property<T, CrossFaded<T>> {
|
|
646
601
|
specification: StylePropertySpecification;
|
|
@@ -683,8 +638,6 @@ export class CrossFadedProperty<T> implements Property<T, CrossFaded<T>> {
|
|
|
683
638
|
* An implementation of `Property` for `heatmap-color` and `line-gradient`. Interpolation is a no-op, and
|
|
684
639
|
* evaluation returns a boolean value in order to indicate its presence, but the real
|
|
685
640
|
* evaluation happens in StyleLayer classes.
|
|
686
|
-
*
|
|
687
|
-
* @private
|
|
688
641
|
*/
|
|
689
642
|
|
|
690
643
|
export class ColorRampProperty implements Property<Color, boolean> {
|
|
@@ -714,8 +667,6 @@ export class ColorRampProperty implements Property<Color, boolean> {
|
|
|
714
667
|
* on the default value: using `for (const property of Object.keys(this._values))`, they can iterate over
|
|
715
668
|
* only the _own_ properties of `_values`, skipping repeated calculation of transitions and possible/final
|
|
716
669
|
* evaluations for defaults, the result of which will always be the same.
|
|
717
|
-
*
|
|
718
|
-
* @private
|
|
719
670
|
*/
|
|
720
671
|
export class Properties<Props> {
|
|
721
672
|
properties: Props;
|
package/src/style/query_utils.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import Point from '@mapbox/point-geometry';
|
|
2
2
|
|
|
3
3
|
import type {PossiblyEvaluatedPropertyValue} from './properties';
|
|
4
|
-
import type StyleLayer from '../style/style_layer';
|
|
5
|
-
import type CircleBucket from '../data/bucket/circle_bucket';
|
|
6
|
-
import type LineBucket from '../data/bucket/line_bucket';
|
|
4
|
+
import type {StyleLayer} from '../style/style_layer';
|
|
5
|
+
import type {CircleBucket} from '../data/bucket/circle_bucket';
|
|
6
|
+
import type {LineBucket} from '../data/bucket/line_bucket';
|
|
7
7
|
|
|
8
8
|
export function getMaximumPaintValue(
|
|
9
9
|
property: string,
|
package/src/style/style.test.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import Style from './style';
|
|
2
|
-
import SourceCache from '../source/source_cache';
|
|
3
|
-
import StyleLayer from './style_layer';
|
|
4
|
-
import Transform from '../geo/transform';
|
|
1
|
+
import {Style} from './style';
|
|
2
|
+
import {SourceCache} from '../source/source_cache';
|
|
3
|
+
import {StyleLayer} from './style_layer';
|
|
4
|
+
import {Transform} from '../geo/transform';
|
|
5
5
|
import {extend} from '../util/util';
|
|
6
6
|
import {RequestManager} from '../util/request_manager';
|
|
7
7
|
import {Event, Evented} from '../util/evented';
|
|
@@ -11,14 +11,14 @@ import {
|
|
|
11
11
|
clearRTLTextPlugin,
|
|
12
12
|
evented as rtlTextPluginEvented
|
|
13
13
|
} from '../source/rtl_text_plugin';
|
|
14
|
-
import browser from '../util/browser';
|
|
14
|
+
import {browser} from '../util/browser';
|
|
15
15
|
import {OverscaledTileID} from '../source/tile_id';
|
|
16
16
|
import {fakeXhr, fakeServer} from 'nise';
|
|
17
17
|
|
|
18
|
-
import EvaluationParameters from './evaluation_parameters';
|
|
18
|
+
import {EvaluationParameters} from './evaluation_parameters';
|
|
19
19
|
import {LayerSpecification, GeoJSONSourceSpecification, FilterSpecification, SourceSpecification} from '@maplibre/maplibre-gl-style-spec';
|
|
20
20
|
import {SourceClass} from '../source/source';
|
|
21
|
-
import GeoJSONSource from '../source/geojson_source';
|
|
21
|
+
import {GeoJSONSource} from '../source/geojson_source';
|
|
22
22
|
|
|
23
23
|
function createStyleJSON(properties?) {
|
|
24
24
|
return extend({
|
|
@@ -224,6 +224,16 @@ describe('Style#loadURL', () => {
|
|
|
224
224
|
});
|
|
225
225
|
|
|
226
226
|
describe('Style#loadJSON', () => {
|
|
227
|
+
test('serialize() returns undefined until style is loaded', done => {
|
|
228
|
+
const style = new Style(getStubMap());
|
|
229
|
+
style.loadJSON(createStyleJSON());
|
|
230
|
+
expect(style.serialize()).toBeUndefined();
|
|
231
|
+
style.on('style.load', () => {
|
|
232
|
+
expect(style.serialize()).toEqual(createStyleJSON());
|
|
233
|
+
done();
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
|
|
227
237
|
test('fires "dataloading" (synchronously)', () => {
|
|
228
238
|
const style = new Style(getStubMap());
|
|
229
239
|
const spy = jest.fn();
|
|
@@ -2496,13 +2506,6 @@ describe('Style#query*Features', () => {
|
|
|
2496
2506
|
});
|
|
2497
2507
|
|
|
2498
2508
|
describe('Style#addSourceType', () => {
|
|
2499
|
-
const _types = {'existing' () {}};
|
|
2500
|
-
|
|
2501
|
-
jest.spyOn(Style, 'getSourceType').mockImplementation(name => _types[name]);
|
|
2502
|
-
jest.spyOn(Style, 'setSourceType').mockImplementation((name, create) => {
|
|
2503
|
-
_types[name] = create;
|
|
2504
|
-
});
|
|
2505
|
-
|
|
2506
2509
|
test('adds factory function', done => {
|
|
2507
2510
|
const style = new Style(getStubMap());
|
|
2508
2511
|
const sourceType = function () {} as any as SourceClass;
|
|
@@ -2514,8 +2517,9 @@ describe('Style#addSourceType', () => {
|
|
|
2514
2517
|
}
|
|
2515
2518
|
};
|
|
2516
2519
|
|
|
2517
|
-
style.addSourceType('foo', sourceType, () => {
|
|
2518
|
-
expect(
|
|
2520
|
+
style.addSourceType('foo', sourceType, (arg1, arg2) => {
|
|
2521
|
+
expect(arg1).toBeNull();
|
|
2522
|
+
expect(arg2).toBeNull();
|
|
2519
2523
|
done();
|
|
2520
2524
|
});
|
|
2521
2525
|
});
|
|
@@ -2525,9 +2529,8 @@ describe('Style#addSourceType', () => {
|
|
|
2525
2529
|
const sourceType = function () {} as any as SourceClass;
|
|
2526
2530
|
sourceType.workerSourceURL = 'worker-source.js' as any as URL;
|
|
2527
2531
|
|
|
2528
|
-
style.dispatcher.broadcast =
|
|
2532
|
+
style.dispatcher.broadcast = (type, params) => {
|
|
2529
2533
|
if (type === 'loadWorkerSource') {
|
|
2530
|
-
expect(_types['bar']).toBe(sourceType);
|
|
2531
2534
|
expect(params['name']).toBe('bar');
|
|
2532
2535
|
expect(params['url']).toBe('worker-source.js');
|
|
2533
2536
|
done();
|
|
@@ -2540,7 +2543,7 @@ describe('Style#addSourceType', () => {
|
|
|
2540
2543
|
test('refuses to add new type over existing name', done => {
|
|
2541
2544
|
const style = new Style(getStubMap());
|
|
2542
2545
|
const sourceType = function () {} as any as SourceClass;
|
|
2543
|
-
style.addSourceType('
|
|
2546
|
+
style.addSourceType('canvas', sourceType, (err) => {
|
|
2544
2547
|
expect(err).toBeTruthy();
|
|
2545
2548
|
done();
|
|
2546
2549
|
});
|