@mapgis/mapbox-gl 16.0.1 → 16.2.0
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/dist/mapbox-gl.js +3 -3
- package/dist/mapbox-gl.js.map +1 -1
- package/package.json +1 -1
- package/.flowconfig +0 -61
- package/LICENSE.txt +0 -84
- package/README.md +0 -34
- package/build/banner.js +0 -4
- package/build/check-bundle-size.js +0 -140
- package/build/generate-access-token-script.js +0 -11
- package/build/generate-flow-typed-style-spec.js +0 -188
- package/build/generate-release-list.js +0 -21
- package/build/generate-struct-arrays.js +0 -237
- package/build/generate-style-code.js +0 -159
- package/build/mapbox-gl.js.flow +0 -3
- package/build/print-release-url.js +0 -6
- package/build/rollup_plugin_minify_style_spec.js +0 -20
- package/build/rollup_plugins.js +0 -80
- package/build/run-node +0 -3
- package/build/run-tap +0 -8
- package/build/test/build-tape.js +0 -19
- package/flow-typed/gl.js +0 -5
- package/flow-typed/jsdom.js +0 -18
- package/flow-typed/mapbox-gl-supported.js +0 -9
- package/flow-typed/mapbox-unitbezier.js +0 -14
- package/flow-typed/offscreen-canvas.js +0 -9
- package/flow-typed/pbf.js +0 -25
- package/flow-typed/point-geometry.js +0 -44
- package/flow-typed/potpack.js +0 -12
- package/flow-typed/sinon.js +0 -28
- package/flow-typed/vector-tile.js +0 -41
- package/src/css/mapbox-gl.css +0 -798
- package/src/css/svg/mapboxgl-ctrl-attrib.svg +0 -3
- package/src/css/svg/mapboxgl-ctrl-compass.svg +0 -4
- package/src/css/svg/mapboxgl-ctrl-fullscreen.svg +0 -3
- package/src/css/svg/mapboxgl-ctrl-geolocate.svg +0 -5
- package/src/css/svg/mapboxgl-ctrl-logo.svg +0 -20
- package/src/css/svg/mapboxgl-ctrl-shrink.svg +0 -3
- package/src/css/svg/mapboxgl-ctrl-zoom-in.svg +0 -3
- package/src/css/svg/mapboxgl-ctrl-zoom-out.svg +0 -3
- package/src/data/array_types.js +0 -1095
- package/src/data/bucket/circle_attributes.js +0 -9
- package/src/data/bucket/circle_bucket.js +0 -204
- package/src/data/bucket/fill_attributes.js +0 -9
- package/src/data/bucket/fill_bucket.js +0 -233
- package/src/data/bucket/fill_extrusion_attributes.js +0 -10
- package/src/data/bucket/fill_extrusion_bucket.js +0 -289
- package/src/data/bucket/heatmap_bucket.js +0 -17
- package/src/data/bucket/line_attributes.js +0 -10
- package/src/data/bucket/line_bucket.js +0 -556
- package/src/data/bucket/pattern_attributes.js +0 -10
- package/src/data/bucket/pattern_bucket_features.js +0 -60
- package/src/data/bucket/symbol_attributes.js +0 -117
- package/src/data/bucket/symbol_bucket.js +0 -972
- package/src/data/bucket.js +0 -123
- package/src/data/dem_data.js +0 -125
- package/src/data/extent.js +0 -18
- package/src/data/feature_index.js +0 -321
- package/src/data/feature_position_map.js +0 -125
- package/src/data/index_array_type.js +0 -16
- package/src/data/load_geometry.js +0 -48
- package/src/data/pos_attributes.js +0 -6
- package/src/data/program_configuration.js +0 -687
- package/src/data/raster_bounds_attributes.js +0 -7
- package/src/data/segment.js +0 -76
- package/src/geo/edge_insets.js +0 -102
- package/src/geo/lng_lat.js +0 -165
- package/src/geo/lng_lat_bounds.js +0 -267
- package/src/geo/mercator_coordinate.js +0 -153
- package/src/geo/transform.js +0 -864
- package/src/gl/color_mode.js +0 -34
- package/src/gl/context.js +0 -298
- package/src/gl/cull_face_mode.js +0 -26
- package/src/gl/depth_mode.js +0 -29
- package/src/gl/framebuffer.js +0 -44
- package/src/gl/index_buffer.js +0 -55
- package/src/gl/stencil_mode.js +0 -30
- package/src/gl/types.js +0 -84
- package/src/gl/value.js +0 -520
- package/src/gl/vertex_buffer.js +0 -119
- package/src/index.js +0 -201
- package/src/render/draw_background.js +0 -57
- package/src/render/draw_circle.js +0 -113
- package/src/render/draw_collision_debug.js +0 -49
- package/src/render/draw_custom.js +0 -49
- package/src/render/draw_debug.js +0 -127
- package/src/render/draw_fill.js +0 -126
- package/src/render/draw_fill_extrusion.js +0 -96
- package/src/render/draw_heatmap.js +0 -140
- package/src/render/draw_hillshade.js +0 -108
- package/src/render/draw_line.js +0 -98
- package/src/render/draw_raster.js +0 -125
- package/src/render/draw_symbol.js +0 -394
- package/src/render/glyph_atlas.js +0 -71
- package/src/render/glyph_manager.js +0 -182
- package/src/render/image_atlas.js +0 -149
- package/src/render/image_manager.js +0 -306
- package/src/render/line_atlas.js +0 -210
- package/src/render/painter.js +0 -653
- package/src/render/program/background_program.js +0 -103
- package/src/render/program/circle_program.js +0 -69
- package/src/render/program/clipping_mask_program.js +0 -20
- package/src/render/program/collision_program.js +0 -49
- package/src/render/program/debug_program.js +0 -35
- package/src/render/program/fill_extrusion_program.js +0 -122
- package/src/render/program/fill_program.js +0 -126
- package/src/render/program/heatmap_program.js +0 -83
- package/src/render/program/hillshade_program.js +0 -122
- package/src/render/program/line_program.js +0 -207
- package/src/render/program/pattern.js +0 -102
- package/src/render/program/program_uniforms.js +0 -42
- package/src/render/program/raster_program.js +0 -92
- package/src/render/program/symbol_program.js +0 -224
- package/src/render/program.js +0 -168
- package/src/render/texture.js +0 -122
- package/src/render/uniform_binding.js +0 -147
- package/src/render/vertex_array_object.js +0 -163
- package/src/shaders/README.md +0 -42
- package/src/shaders/_prelude.fragment.glsl +0 -17
- package/src/shaders/_prelude.vertex.glsl +0 -73
- package/src/shaders/background.fragment.glsl +0 -10
- package/src/shaders/background.vertex.glsl +0 -7
- package/src/shaders/background_pattern.fragment.glsl +0 -28
- package/src/shaders/background_pattern.vertex.glsl +0 -20
- package/src/shaders/circle.fragment.glsl +0 -39
- package/src/shaders/circle.vertex.glsl +0 -64
- package/src/shaders/clipping_mask.fragment.glsl +0 -3
- package/src/shaders/clipping_mask.vertex.glsl +0 -7
- package/src/shaders/collision_box.fragment.glsl +0 -21
- package/src/shaders/collision_box.vertex.glsl +0 -27
- package/src/shaders/collision_circle.fragment.glsl +0 -34
- package/src/shaders/collision_circle.vertex.glsl +0 -36
- package/src/shaders/debug.fragment.glsl +0 -9
- package/src/shaders/debug.vertex.glsl +0 -12
- package/src/shaders/encode_attribute.js +0 -17
- package/src/shaders/fill.fragment.glsl +0 -13
- package/src/shaders/fill.vertex.glsl +0 -13
- package/src/shaders/fill_extrusion.fragment.glsl +0 -9
- package/src/shaders/fill_extrusion.vertex.glsl +0 -66
- package/src/shaders/fill_extrusion_pattern.fragment.glsl +0 -45
- package/src/shaders/fill_extrusion_pattern.vertex.glsl +0 -79
- package/src/shaders/fill_outline.fragment.glsl +0 -17
- package/src/shaders/fill_outline.vertex.glsl +0 -17
- package/src/shaders/fill_outline_pattern.fragment.glsl +0 -43
- package/src/shaders/fill_outline_pattern.vertex.glsl +0 -44
- package/src/shaders/fill_pattern.fragment.glsl +0 -36
- package/src/shaders/fill_pattern.vertex.glsl +0 -39
- package/src/shaders/heatmap.fragment.glsl +0 -22
- package/src/shaders/heatmap.vertex.glsl +0 -54
- package/src/shaders/heatmap_texture.fragment.glsl +0 -14
- package/src/shaders/heatmap_texture.vertex.glsl +0 -11
- package/src/shaders/hillshade.fragment.glsl +0 -52
- package/src/shaders/hillshade.vertex.glsl +0 -11
- package/src/shaders/hillshade_prepare.fragment.glsl +0 -74
- package/src/shaders/hillshade_prepare.vertex.glsl +0 -15
- package/src/shaders/index.js +0 -20
- package/src/shaders/line.fragment.glsl +0 -30
- package/src/shaders/line.vertex.glsl +0 -85
- package/src/shaders/line_gradient.fragment.glsl +0 -34
- package/src/shaders/line_gradient.vertex.glsl +0 -87
- package/src/shaders/line_pattern.fragment.glsl +0 -74
- package/src/shaders/line_pattern.vertex.glsl +0 -99
- package/src/shaders/line_sdf.fragment.glsl +0 -45
- package/src/shaders/line_sdf.vertex.glsl +0 -98
- package/src/shaders/raster.fragment.glsl +0 -52
- package/src/shaders/raster.vertex.glsl +0 -21
- package/src/shaders/shaders.js +0 -180
- package/src/shaders/symbol_icon.fragment.glsl +0 -17
- package/src/shaders/symbol_icon.vertex.glsl +0 -94
- package/src/shaders/symbol_sdf.fragment.glsl +0 -52
- package/src/shaders/symbol_sdf.vertex.glsl +0 -115
- package/src/shaders/symbol_text_and_icon.fragment.glsl +0 -68
- package/src/shaders/symbol_text_and_icon.vertex.glsl +0 -116
- package/src/source/canvas_source.js +0 -238
- package/src/source/geojson_helper.js +0 -92
- package/src/source/geojson_source.js +0 -374
- package/src/source/geojson_worker_source.js +0 -357
- package/src/source/geojson_wrapper.js +0 -94
- package/src/source/image_source.js +0 -307
- package/src/source/load_tilejson.js +0 -39
- package/src/source/mbtiles_source.js +0 -115
- package/src/source/offline_database.js +0 -61
- package/src/source/offline_database_root.js +0 -62
- package/src/source/pixels_to_tile_units.js +0 -21
- package/src/source/query_features.js +0 -208
- package/src/source/raster_dem_tile_source.js +0 -138
- package/src/source/raster_dem_tile_worker_source.js +0 -62
- package/src/source/raster_tile_offline_source.js +0 -136
- package/src/source/raster_tile_source.js +0 -177
- package/src/source/rtl_text_plugin.js +0 -138
- package/src/source/source.js +0 -137
- package/src/source/source_cache.js +0 -957
- package/src/source/source_state.js +0 -159
- package/src/source/tile.js +0 -465
- package/src/source/tile_bounds.js +0 -38
- package/src/source/tile_cache.js +0 -212
- package/src/source/tile_id.js +0 -402
- package/src/source/vector_tile_source.js +0 -192
- package/src/source/vector_tile_worker_source.js +0 -216
- package/src/source/video_source.js +0 -203
- package/src/source/worker.js +0 -237
- package/src/source/worker_source.js +0 -106
- package/src/source/worker_tile.js +0 -224
- package/src/style/create_style_layer.js +0 -36
- package/src/style/evaluation_parameters.js +0 -62
- package/src/style/light.js +0 -130
- package/src/style/load_glyph_range.js +0 -38
- package/src/style/load_sprite.js +0 -67
- package/src/style/parse_glyph_pbf.js +0 -44
- package/src/style/pauseable_placement.js +0 -132
- package/src/style/properties.js +0 -753
- package/src/style/query_utils.js +0 -43
- package/src/style/style.js +0 -1361
- package/src/style/style_glyph.js +0 -17
- package/src/style/style_image.js +0 -137
- package/src/style/style_layer/background_style_layer.js +0 -21
- package/src/style/style_layer/background_style_layer_properties.js +0 -40
- package/src/style/style_layer/circle_style_layer.js +0 -98
- package/src/style/style_layer/circle_style_layer_properties.js +0 -63
- package/src/style/style_layer/custom_style_layer.js +0 -223
- package/src/style/style_layer/fill_extrusion_style_layer.js +0 -224
- package/src/style/style_layer/fill_extrusion_style_layer_properties.js +0 -50
- package/src/style/style_layer/fill_style_layer.js +0 -67
- package/src/style/style_layer/fill_style_layer_properties.js +0 -55
- package/src/style/style_layer/heatmap_style_layer.js +0 -69
- package/src/style/style_layer/heatmap_style_layer_properties.js +0 -44
- package/src/style/style_layer/hillshade_style_layer.js +0 -25
- package/src/style/style_layer/hillshade_style_layer_properties.js +0 -46
- package/src/style/style_layer/layer_properties.js.ejs +0 -69
- package/src/style/style_layer/line_style_layer.js +0 -151
- package/src/style/style_layer/line_style_layer_properties.js +0 -71
- package/src/style/style_layer/raster_style_layer.js +0 -21
- package/src/style/style_layer/raster_style_layer_properties.js +0 -50
- package/src/style/style_layer/symbol_style_layer.js +0 -190
- package/src/style/style_layer/symbol_style_layer_properties.js +0 -153
- package/src/style/style_layer/typed_style_layer.js +0 -17
- package/src/style/style_layer.js +0 -281
- package/src/style/style_layer_index.js +0 -80
- package/src/style/validate_style.js +0 -42
- package/src/style/zoom_history.js +0 -44
- package/src/style-spec/.eslintrc +0 -5
- package/src/style-spec/CHANGELOG.md +0 -438
- package/src/style-spec/README.md +0 -59
- package/src/style-spec/bin/gl-style-composite +0 -9
- package/src/style-spec/bin/gl-style-format +0 -22
- package/src/style-spec/bin/gl-style-migrate +0 -9
- package/src/style-spec/bin/gl-style-validate +0 -50
- package/src/style-spec/composite.js +0 -50
- package/src/style-spec/declass.js +0 -42
- package/src/style-spec/deref.js +0 -52
- package/src/style-spec/diff.js +0 -393
- package/src/style-spec/dist/.gitkeep +0 -0
- package/src/style-spec/empty.js +0 -29
- package/src/style-spec/error/parsing_error.js +0 -16
- package/src/style-spec/error/validation_error.js +0 -18
- package/src/style-spec/expression/compound_expression.js +0 -162
- package/src/style-spec/expression/definitions/assertion.js +0 -130
- package/src/style-spec/expression/definitions/at.js +0 -70
- package/src/style-spec/expression/definitions/case.js +0 -85
- package/src/style-spec/expression/definitions/coalesce.js +0 -93
- package/src/style-spec/expression/definitions/coercion.js +0 -133
- package/src/style-spec/expression/definitions/collator.js +0 -78
- package/src/style-spec/expression/definitions/comparison.js +0 -184
- package/src/style-spec/expression/definitions/format.js +0 -144
- package/src/style-spec/expression/definitions/format_section_override.js +0 -54
- package/src/style-spec/expression/definitions/image.js +0 -52
- package/src/style-spec/expression/definitions/in.js +0 -92
- package/src/style-spec/expression/definitions/index.js +0 -561
- package/src/style-spec/expression/definitions/interpolate.js +0 -267
- package/src/style-spec/expression/definitions/length.js +0 -61
- package/src/style-spec/expression/definitions/let.js +0 -72
- package/src/style-spec/expression/definitions/literal.js +0 -77
- package/src/style-spec/expression/definitions/match.js +0 -158
- package/src/style-spec/expression/definitions/number_format.js +0 -142
- package/src/style-spec/expression/definitions/step.js +0 -120
- package/src/style-spec/expression/definitions/var.js +0 -46
- package/src/style-spec/expression/definitions/within.js +0 -333
- package/src/style-spec/expression/evaluation_context.js +0 -59
- package/src/style-spec/expression/expression.js +0 -27
- package/src/style-spec/expression/index.js +0 -392
- package/src/style-spec/expression/is_constant.js +0 -59
- package/src/style-spec/expression/parsing_context.js +0 -233
- package/src/style-spec/expression/parsing_error.js +0 -13
- package/src/style-spec/expression/runtime_error.js +0 -17
- package/src/style-spec/expression/scope.js +0 -36
- package/src/style-spec/expression/stops.js +0 -39
- package/src/style-spec/expression/types/collator.js +0 -61
- package/src/style-spec/expression/types/formatted.js +0 -73
- package/src/style-spec/expression/types/resolved_image.js +0 -29
- package/src/style-spec/expression/types.js +0 -106
- package/src/style-spec/expression/values.js +0 -123
- package/src/style-spec/feature_filter/README.md +0 -55
- package/src/style-spec/feature_filter/convert.js +0 -208
- package/src/style-spec/feature_filter/index.js +0 -165
- package/src/style-spec/format.js +0 -51
- package/src/style-spec/function/convert.js +0 -254
- package/src/style-spec/function/index.js +0 -262
- package/src/style-spec/group_by_layout.js +0 -75
- package/src/style-spec/migrate/expressions.js +0 -39
- package/src/style-spec/migrate/v8.js +0 -203
- package/src/style-spec/migrate/v9.js +0 -26
- package/src/style-spec/migrate.js +0 -36
- package/src/style-spec/package.json +0 -41
- package/src/style-spec/read_style.js +0 -14
- package/src/style-spec/reference/latest.js +0 -3
- package/src/style-spec/reference/v8.json +0 -5808
- package/src/style-spec/rollup.config.js +0 -45
- package/src/style-spec/style-spec.js +0 -122
- package/src/style-spec/types.js +0 -438
- package/src/style-spec/util/color.js +0 -95
- package/src/style-spec/util/color_spaces.js +0 -139
- package/src/style-spec/util/deep_equal.js +0 -28
- package/src/style-spec/util/extend.js +0 -10
- package/src/style-spec/util/get_type.js +0 -17
- package/src/style-spec/util/interpolate.js +0 -22
- package/src/style-spec/util/properties.js +0 -15
- package/src/style-spec/util/ref_properties.js +0 -2
- package/src/style-spec/util/result.js +0 -19
- package/src/style-spec/util/unbundle_jsonlint.js +0 -24
- package/src/style-spec/validate/latest.js +0 -11
- package/src/style-spec/validate/validate.js +0 -75
- package/src/style-spec/validate/validate_array.js +0 -52
- package/src/style-spec/validate/validate_boolean.js +0 -15
- package/src/style-spec/validate/validate_color.js +0 -20
- package/src/style-spec/validate/validate_constants.js +0 -13
- package/src/style-spec/validate/validate_enum.js +0 -21
- package/src/style-spec/validate/validate_expression.js +0 -43
- package/src/style-spec/validate/validate_filter.js +0 -111
- package/src/style-spec/validate/validate_formatted.js +0 -11
- package/src/style-spec/validate/validate_function.js +0 -207
- package/src/style-spec/validate/validate_glyphs_url.js +0 -21
- package/src/style-spec/validate/validate_image.js +0 -11
- package/src/style-spec/validate/validate_layer.js +0 -134
- package/src/style-spec/validate/validate_layout_property.js +0 -6
- package/src/style-spec/validate/validate_light.js +0 -47
- package/src/style-spec/validate/validate_number.js +0 -29
- package/src/style-spec/validate/validate_object.js +0 -61
- package/src/style-spec/validate/validate_paint_property.js +0 -6
- package/src/style-spec/validate/validate_property.js +0 -64
- package/src/style-spec/validate/validate_source.js +0 -111
- package/src/style-spec/validate/validate_string.js +0 -15
- package/src/style-spec/validate_mapbox_api_supported.js +0 -171
- package/src/style-spec/validate_style.js +0 -39
- package/src/style-spec/validate_style.min.js +0 -78
- package/src/style-spec/visit.js +0 -77
- package/src/symbol/anchor.js +0 -26
- package/src/symbol/check_max_angle.js +0 -81
- package/src/symbol/clip_line.js +0 -71
- package/src/symbol/collision_feature.js +0 -217
- package/src/symbol/collision_index.js +0 -372
- package/src/symbol/cross_tile_symbol_index.js +0 -301
- package/src/symbol/get_anchors.js +0 -167
- package/src/symbol/grid_index.js +0 -335
- package/src/symbol/mergelines.js +0 -82
- package/src/symbol/one_em.js +0 -4
- package/src/symbol/opacity_state.js +0 -27
- package/src/symbol/placement.js +0 -1062
- package/src/symbol/projection.js +0 -450
- package/src/symbol/quads.js +0 -334
- package/src/symbol/shaping.js +0 -816
- package/src/symbol/symbol_layout.js +0 -772
- package/src/symbol/symbol_size.js +0 -113
- package/src/symbol/transform_text.js +0 -29
- package/src/types/callback.js +0 -17
- package/src/types/cancelable.js +0 -3
- package/src/types/tilejson.js +0 -17
- package/src/types/transferable.js +0 -3
- package/src/types/window.js +0 -172
- package/src/ui/anchor.js +0 -32
- package/src/ui/bind_handlers.js +0 -202
- package/src/ui/camera.js +0 -1152
- package/src/ui/control/attribution_control.js +0 -189
- package/src/ui/control/fps_control.js +0 -185
- package/src/ui/control/fullscreen_control.js +0 -147
- package/src/ui/control/geolocate_control.js +0 -594
- package/src/ui/control/logo_control.js +0 -92
- package/src/ui/control/navigation_control.js +0 -148
- package/src/ui/control/scale_control.js +0 -142
- package/src/ui/crs.js +0 -64
- package/src/ui/default_locale.js +0 -20
- package/src/ui/events.js +0 -806
- package/src/ui/handler/box_zoom.js +0 -175
- package/src/ui/handler/dblclick_zoom.js +0 -139
- package/src/ui/handler/drag_pan.js +0 -416
- package/src/ui/handler/drag_rotate.js +0 -378
- package/src/ui/handler/keyboard.js +0 -161
- package/src/ui/handler/scroll_zoom.js +0 -333
- package/src/ui/handler/touch_zoom_rotate.js +0 -293
- package/src/ui/hash.js +0 -147
- package/src/ui/map.js +0 -2883
- package/src/ui/marker.js +0 -607
- package/src/ui/offline_map.js +0 -91
- package/src/ui/popup.js +0 -530
- package/src/util/actor.js +0 -212
- package/src/util/ajax.js +0 -371
- package/src/util/browser/web_worker.js +0 -10
- package/src/util/browser/window.js +0 -5
- package/src/util/browser.js +0 -70
- package/src/util/classify_rings.js +0 -52
- package/src/util/color_ramp.js +0 -28
- package/src/util/config.js +0 -30
- package/src/util/debug.js +0 -12
- package/src/util/dictionary_coder.js +0 -30
- package/src/util/dispatcher.js +0 -70
- package/src/util/dom.js +0 -144
- package/src/util/evented.js +0 -174
- package/src/util/find_pole_of_inaccessibility.js +0 -129
- package/src/util/global_worker_pool.js +0 -17
- package/src/util/image.js +0 -142
- package/src/util/intersection_tests.js +0 -208
- package/src/util/is_char_in_unicode_block.js +0 -311
- package/src/util/mapbox.js +0 -486
- package/src/util/offscreen_canvas_supported.js +0 -14
- package/src/util/performance.js +0 -112
- package/src/util/primitives.js +0 -145
- package/src/util/resolve_tokens.js +0 -16
- package/src/util/script_detection.js +0 -328
- package/src/util/sku_token.js +0 -42
- package/src/util/smart_wrap.js +0 -55
- package/src/util/struct_array.js +0 -243
- package/src/util/struct_array.js.ejs +0 -112
- package/src/util/struct_array_layout.js.ejs +0 -98
- package/src/util/task_queue.js +0 -68
- package/src/util/throttle.js +0 -28
- package/src/util/throttled_invoker.js +0 -46
- package/src/util/tile_cover.js +0 -101
- package/src/util/tile_request_cache.js +0 -172
- package/src/util/util.js +0 -504
- package/src/util/vectortile_to_geojson.js +0 -54
- package/src/util/verticalize_punctuation.js +0 -114
- package/src/util/web_worker.js +0 -91
- package/src/util/web_worker_transfer.js +0 -266
- package/src/util/webp_supported.js +0 -69
- package/src/util/window.js +0 -102
- package/src/util/worker_pool.js +0 -47
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
import type {GeoJSONGeometry} from '@mapbox/geojson-types';
|
|
3
|
-
|
|
4
|
-
class Feature {
|
|
5
|
-
type: 'Feature';
|
|
6
|
-
_geometry: ?GeoJSONGeometry;
|
|
7
|
-
properties: {};
|
|
8
|
-
id: number | string | void;
|
|
9
|
-
epsg: string;
|
|
10
|
-
|
|
11
|
-
_vectorTileFeature: VectorTileFeature;
|
|
12
|
-
|
|
13
|
-
constructor(vectorTileFeature: VectorTileFeature, z: number, x: number, y: number, id: string | number | void, epsg?: string) {
|
|
14
|
-
this.epsg = epsg || 'EPSG:3857';
|
|
15
|
-
this.type = 'Feature';
|
|
16
|
-
|
|
17
|
-
this._vectorTileFeature = vectorTileFeature;
|
|
18
|
-
(vectorTileFeature: any)._z = z;
|
|
19
|
-
(vectorTileFeature: any)._x = x;
|
|
20
|
-
(vectorTileFeature: any)._y = y;
|
|
21
|
-
|
|
22
|
-
this.properties = vectorTileFeature.properties;
|
|
23
|
-
this.id = id;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
get geometry(): ?GeoJSONGeometry {
|
|
27
|
-
if (this._geometry === undefined) {
|
|
28
|
-
this._geometry = this._vectorTileFeature.toGeoJSON(
|
|
29
|
-
(this._vectorTileFeature: any)._x,
|
|
30
|
-
(this._vectorTileFeature: any)._y,
|
|
31
|
-
(this._vectorTileFeature: any)._z,
|
|
32
|
-
this.epsg,
|
|
33
|
-
).geometry;
|
|
34
|
-
}
|
|
35
|
-
return this._geometry;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
set geometry(g: ?GeoJSONGeometry) {
|
|
39
|
-
this._geometry = g;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
toJSON() {
|
|
43
|
-
const json = {
|
|
44
|
-
geometry: this.geometry
|
|
45
|
-
};
|
|
46
|
-
for (const i in this) {
|
|
47
|
-
if (i === '_geometry' || i === '_vectorTileFeature') continue;
|
|
48
|
-
json[i] = (this: any)[i];
|
|
49
|
-
}
|
|
50
|
-
return json;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export default Feature;
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
charHasRotatedVerticalOrientation,
|
|
5
|
-
} from './script_detection';
|
|
6
|
-
|
|
7
|
-
export const verticalizedCharacterMap = {
|
|
8
|
-
'!': '︕',
|
|
9
|
-
'#': '#',
|
|
10
|
-
'$': '$',
|
|
11
|
-
'%': '%',
|
|
12
|
-
'&': '&',
|
|
13
|
-
'(': '︵',
|
|
14
|
-
')': '︶',
|
|
15
|
-
'*': '*',
|
|
16
|
-
'+': '+',
|
|
17
|
-
',': '︐',
|
|
18
|
-
'-': '︲',
|
|
19
|
-
'.': '・',
|
|
20
|
-
'/': '/',
|
|
21
|
-
':': '︓',
|
|
22
|
-
';': '︔',
|
|
23
|
-
'<': '︿',
|
|
24
|
-
'=': '=',
|
|
25
|
-
'>': '﹀',
|
|
26
|
-
'?': '︖',
|
|
27
|
-
'@': '@',
|
|
28
|
-
'[': '﹇',
|
|
29
|
-
'\\': '\',
|
|
30
|
-
']': '﹈',
|
|
31
|
-
'^': '^',
|
|
32
|
-
'_': '︳',
|
|
33
|
-
'`': '`',
|
|
34
|
-
'{': '︷',
|
|
35
|
-
'|': '―',
|
|
36
|
-
'}': '︸',
|
|
37
|
-
'~': '~',
|
|
38
|
-
'¢': '¢',
|
|
39
|
-
'£': '£',
|
|
40
|
-
'¥': '¥',
|
|
41
|
-
'¦': '¦',
|
|
42
|
-
'¬': '¬',
|
|
43
|
-
'¯': ' ̄',
|
|
44
|
-
'–': '︲',
|
|
45
|
-
'—': '︱',
|
|
46
|
-
'‘': '﹃',
|
|
47
|
-
'’': '﹄',
|
|
48
|
-
'“': '﹁',
|
|
49
|
-
'”': '﹂',
|
|
50
|
-
'…': '︙',
|
|
51
|
-
'‧': '・',
|
|
52
|
-
'₩': '₩',
|
|
53
|
-
'、': '︑',
|
|
54
|
-
'。': '︒',
|
|
55
|
-
'〈': '︿',
|
|
56
|
-
'〉': '﹀',
|
|
57
|
-
'《': '︽',
|
|
58
|
-
'》': '︾',
|
|
59
|
-
'「': '﹁',
|
|
60
|
-
'」': '﹂',
|
|
61
|
-
'『': '﹃',
|
|
62
|
-
'』': '﹄',
|
|
63
|
-
'【': '︻',
|
|
64
|
-
'】': '︼',
|
|
65
|
-
'〔': '︹',
|
|
66
|
-
'〕': '︺',
|
|
67
|
-
'〖': '︗',
|
|
68
|
-
'〗': '︘',
|
|
69
|
-
'!': '︕',
|
|
70
|
-
'(': '︵',
|
|
71
|
-
')': '︶',
|
|
72
|
-
',': '︐',
|
|
73
|
-
'-': '︲',
|
|
74
|
-
'.': '・',
|
|
75
|
-
':': '︓',
|
|
76
|
-
';': '︔',
|
|
77
|
-
'<': '︿',
|
|
78
|
-
'>': '﹀',
|
|
79
|
-
'?': '︖',
|
|
80
|
-
'[': '﹇',
|
|
81
|
-
']': '﹈',
|
|
82
|
-
'_': '︳',
|
|
83
|
-
'{': '︷',
|
|
84
|
-
'|': '―',
|
|
85
|
-
'}': '︸',
|
|
86
|
-
'⦅': '︵',
|
|
87
|
-
'⦆': '︶',
|
|
88
|
-
'。': '︒',
|
|
89
|
-
'「': '﹁',
|
|
90
|
-
'」': '﹂'
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
export default function verticalizePunctuation(input: string) {
|
|
94
|
-
let output = '';
|
|
95
|
-
|
|
96
|
-
for (let i = 0; i < input.length; i++) {
|
|
97
|
-
const nextCharCode = input.charCodeAt(i + 1) || null;
|
|
98
|
-
const prevCharCode = input.charCodeAt(i - 1) || null;
|
|
99
|
-
|
|
100
|
-
const canReplacePunctuation = (
|
|
101
|
-
(!nextCharCode || !charHasRotatedVerticalOrientation(nextCharCode) || verticalizedCharacterMap[input[i + 1]]) &&
|
|
102
|
-
(!prevCharCode || !charHasRotatedVerticalOrientation(prevCharCode) || verticalizedCharacterMap[input[i - 1]])
|
|
103
|
-
);
|
|
104
|
-
|
|
105
|
-
if (canReplacePunctuation && verticalizedCharacterMap[input[i]]) {
|
|
106
|
-
output += verticalizedCharacterMap[input[i]];
|
|
107
|
-
} else {
|
|
108
|
-
output += input[i];
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return output;
|
|
113
|
-
}
|
|
114
|
-
|
package/src/util/web_worker.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
// This file is intended for use in the GL-JS test suite
|
|
4
|
-
// It implements a MessageBus main thread interface for use in Node environments
|
|
5
|
-
// In a browser environment, this file is replaced with ./src/util/browser/web_worker.js
|
|
6
|
-
// when Rollup builds the main bundle.
|
|
7
|
-
// See https://github.com/mapbox/mapbox-gl-js/blob/master/package.json#L104-L108
|
|
8
|
-
|
|
9
|
-
import Worker from '../source/worker';
|
|
10
|
-
|
|
11
|
-
import type {WorkerSource} from '../source/worker_source';
|
|
12
|
-
|
|
13
|
-
type MessageListener = ({data: Object}) => mixed;
|
|
14
|
-
|
|
15
|
-
// The main thread interface. Provided by Worker in a browser environment,
|
|
16
|
-
// and MessageBus below in a node environment.
|
|
17
|
-
export interface WorkerInterface {
|
|
18
|
-
addEventListener(type: 'message', listener: MessageListener): void;
|
|
19
|
-
removeEventListener(type: 'message', listener: MessageListener): void;
|
|
20
|
-
postMessage(message: any): void;
|
|
21
|
-
terminate(): void;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export interface WorkerGlobalScopeInterface {
|
|
25
|
-
importScripts(...urls: Array<string>): void;
|
|
26
|
-
|
|
27
|
-
registerWorkerSource: (string, Class<WorkerSource>) => void,
|
|
28
|
-
registerRTLTextPlugin: (_: any) => void
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
class MessageBus implements WorkerInterface, WorkerGlobalScopeInterface {
|
|
32
|
-
addListeners: Array<MessageListener>;
|
|
33
|
-
postListeners: Array<MessageListener>;
|
|
34
|
-
target: MessageBus;
|
|
35
|
-
registerWorkerSource: *;
|
|
36
|
-
registerRTLTextPlugin: *;
|
|
37
|
-
|
|
38
|
-
constructor(addListeners: Array<MessageListener>, postListeners: Array<MessageListener>) {
|
|
39
|
-
this.addListeners = addListeners;
|
|
40
|
-
this.postListeners = postListeners;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
addEventListener(event: 'message', callback: MessageListener) {
|
|
44
|
-
if (event === 'message') {
|
|
45
|
-
this.addListeners.push(callback);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
removeEventListener(event: 'message', callback: MessageListener) {
|
|
50
|
-
const i = this.addListeners.indexOf(callback);
|
|
51
|
-
if (i >= 0) {
|
|
52
|
-
this.addListeners.splice(i, 1);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
postMessage(data: Object) {
|
|
57
|
-
setImmediate(() => {
|
|
58
|
-
try {
|
|
59
|
-
for (const listener of this.postListeners) {
|
|
60
|
-
listener({data, target: this.target});
|
|
61
|
-
}
|
|
62
|
-
} catch (e) {
|
|
63
|
-
console.error(e);
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
terminate() {
|
|
69
|
-
this.addListeners.splice(0, this.addListeners.length);
|
|
70
|
-
this.postListeners.splice(0, this.postListeners.length);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
importScripts() {}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
export default function WebWorker(): WorkerInterface {
|
|
77
|
-
const parentListeners = [],
|
|
78
|
-
workerListeners = [],
|
|
79
|
-
parentBus = new MessageBus(workerListeners, parentListeners),
|
|
80
|
-
workerBus = new MessageBus(parentListeners, workerListeners);
|
|
81
|
-
|
|
82
|
-
parentBus.target = workerBus;
|
|
83
|
-
workerBus.target = parentBus;
|
|
84
|
-
|
|
85
|
-
new WebWorker.Worker(workerBus);
|
|
86
|
-
|
|
87
|
-
return parentBus;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// expose to allow stubbing in unit tests
|
|
91
|
-
WebWorker.Worker = Worker;
|
|
@@ -1,266 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import assert from 'assert';
|
|
4
|
-
|
|
5
|
-
import Grid from 'grid-index';
|
|
6
|
-
import Color from '../style-spec/util/color';
|
|
7
|
-
import {StylePropertyFunction, StyleExpression, ZoomDependentExpression, ZoomConstantExpression} from '../style-spec/expression';
|
|
8
|
-
import CompoundExpression from '../style-spec/expression/compound_expression';
|
|
9
|
-
import expressions from '../style-spec/expression/definitions';
|
|
10
|
-
import ResolvedImage from '../style-spec/expression/types/resolved_image';
|
|
11
|
-
import window from './window';
|
|
12
|
-
const {ImageData, ImageBitmap} = window;
|
|
13
|
-
|
|
14
|
-
import type {Transferable} from '../types/transferable';
|
|
15
|
-
|
|
16
|
-
type SerializedObject = {[_: string]: Serialized }; // eslint-disable-line
|
|
17
|
-
export type Serialized =
|
|
18
|
-
| null
|
|
19
|
-
| void
|
|
20
|
-
| boolean
|
|
21
|
-
| number
|
|
22
|
-
| string
|
|
23
|
-
| Boolean
|
|
24
|
-
| Number
|
|
25
|
-
| String
|
|
26
|
-
| Date
|
|
27
|
-
| RegExp
|
|
28
|
-
| ArrayBuffer
|
|
29
|
-
| $ArrayBufferView
|
|
30
|
-
| ImageData
|
|
31
|
-
| Array<Serialized>
|
|
32
|
-
| SerializedObject;
|
|
33
|
-
|
|
34
|
-
type Registry = {
|
|
35
|
-
[_: string]: {
|
|
36
|
-
klass: Class<any>,
|
|
37
|
-
omit: $ReadOnlyArray<string>,
|
|
38
|
-
shallow: $ReadOnlyArray<string>
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
type RegisterOptions<T> = {
|
|
43
|
-
omit?: $ReadOnlyArray<$Keys<T>>,
|
|
44
|
-
shallow?: $ReadOnlyArray<$Keys<T>>
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const registry: Registry = {};
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Register the given class as serializable.
|
|
51
|
-
*
|
|
52
|
-
* @param options
|
|
53
|
-
* @param options.omit List of properties to omit from serialization (e.g., cached/computed properties)
|
|
54
|
-
* @param options.shallow List of properties that should be serialized by a simple shallow copy, rather than by a recursive call to serialize().
|
|
55
|
-
*
|
|
56
|
-
* @private
|
|
57
|
-
*/
|
|
58
|
-
export function register<T: any>(name: string, klass: Class<T>, options: RegisterOptions<T> = {}) {
|
|
59
|
-
assert(!registry[name], `${name} is already registered.`);
|
|
60
|
-
(Object.defineProperty: any)(klass, '_classRegistryKey', {
|
|
61
|
-
value: name,
|
|
62
|
-
writeable: false
|
|
63
|
-
});
|
|
64
|
-
registry[name] = {
|
|
65
|
-
klass,
|
|
66
|
-
omit: options.omit || [],
|
|
67
|
-
shallow: options.shallow || []
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
register('Object', Object);
|
|
72
|
-
|
|
73
|
-
type SerializedGrid = { buffer: ArrayBuffer };
|
|
74
|
-
|
|
75
|
-
Grid.serialize = function serialize(grid: Grid, transferables?: Array<Transferable>): SerializedGrid {
|
|
76
|
-
const buffer = grid.toArrayBuffer();
|
|
77
|
-
if (transferables) {
|
|
78
|
-
transferables.push(buffer);
|
|
79
|
-
}
|
|
80
|
-
return {buffer};
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
Grid.deserialize = function deserialize(serialized: SerializedGrid): Grid {
|
|
84
|
-
return new Grid(serialized.buffer);
|
|
85
|
-
};
|
|
86
|
-
register('Grid', Grid);
|
|
87
|
-
|
|
88
|
-
register('Color', Color);
|
|
89
|
-
register('Error', Error);
|
|
90
|
-
register('ResolvedImage', ResolvedImage);
|
|
91
|
-
|
|
92
|
-
register('StylePropertyFunction', StylePropertyFunction);
|
|
93
|
-
register('StyleExpression', StyleExpression, {omit: ['_evaluator']});
|
|
94
|
-
|
|
95
|
-
register('ZoomDependentExpression', ZoomDependentExpression);
|
|
96
|
-
register('ZoomConstantExpression', ZoomConstantExpression);
|
|
97
|
-
register('CompoundExpression', CompoundExpression, {omit: ['_evaluate']});
|
|
98
|
-
for (const name in expressions) {
|
|
99
|
-
if ((expressions[name]: any)._classRegistryKey) continue;
|
|
100
|
-
register(`Expression_${name}`, expressions[name]);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function isArrayBuffer(val: any): boolean {
|
|
104
|
-
return val && typeof ArrayBuffer !== 'undefined' &&
|
|
105
|
-
(val instanceof ArrayBuffer || (val.constructor && val.constructor.name === 'ArrayBuffer'));
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
function isImageBitmap(val: any): boolean {
|
|
109
|
-
return ImageBitmap &&
|
|
110
|
-
val instanceof ImageBitmap;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Serialize the given object for transfer to or from a web worker.
|
|
115
|
-
*
|
|
116
|
-
* For non-builtin types, recursively serialize each property (possibly
|
|
117
|
-
* omitting certain properties - see register()), and package the result along
|
|
118
|
-
* with the constructor's `name` so that the appropriate constructor can be
|
|
119
|
-
* looked up in `deserialize()`.
|
|
120
|
-
*
|
|
121
|
-
* If a `transferables` array is provided, add any transferable objects (i.e.,
|
|
122
|
-
* any ArrayBuffers or ArrayBuffer views) to the list. (If a copy is needed,
|
|
123
|
-
* this should happen in the client code, before using serialize().)
|
|
124
|
-
*
|
|
125
|
-
* @private
|
|
126
|
-
*/
|
|
127
|
-
export function serialize(input: mixed, transferables: ?Array<Transferable>): Serialized {
|
|
128
|
-
if (input === null ||
|
|
129
|
-
input === undefined ||
|
|
130
|
-
typeof input === 'boolean' ||
|
|
131
|
-
typeof input === 'number' ||
|
|
132
|
-
typeof input === 'string' ||
|
|
133
|
-
input instanceof Boolean ||
|
|
134
|
-
input instanceof Number ||
|
|
135
|
-
input instanceof String ||
|
|
136
|
-
input instanceof Date ||
|
|
137
|
-
input instanceof RegExp) {
|
|
138
|
-
return input;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
if (isArrayBuffer(input) || isImageBitmap(input)) {
|
|
142
|
-
if (transferables) {
|
|
143
|
-
transferables.push(((input: any): ArrayBuffer));
|
|
144
|
-
}
|
|
145
|
-
return input;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
if (ArrayBuffer.isView(input)) {
|
|
149
|
-
const view: $ArrayBufferView = (input: any);
|
|
150
|
-
if (transferables) {
|
|
151
|
-
transferables.push(view.buffer);
|
|
152
|
-
}
|
|
153
|
-
return view;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
if (input instanceof ImageData) {
|
|
157
|
-
if (transferables) {
|
|
158
|
-
transferables.push(input.data.buffer);
|
|
159
|
-
}
|
|
160
|
-
return input;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
if (Array.isArray(input)) {
|
|
164
|
-
const serialized: Array<Serialized> = [];
|
|
165
|
-
for (const item of input) {
|
|
166
|
-
serialized.push(serialize(item, transferables));
|
|
167
|
-
}
|
|
168
|
-
return serialized;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
if (typeof input === 'object') {
|
|
172
|
-
const klass = (input.constructor: any);
|
|
173
|
-
const name = klass._classRegistryKey;
|
|
174
|
-
if (!name) {
|
|
175
|
-
throw new Error(`can't serialize object of unregistered class`);
|
|
176
|
-
}
|
|
177
|
-
assert(registry[name]);
|
|
178
|
-
|
|
179
|
-
const properties: SerializedObject = klass.serialize ?
|
|
180
|
-
// (Temporary workaround) allow a class to provide static
|
|
181
|
-
// `serialize()` and `deserialize()` methods to bypass the generic
|
|
182
|
-
// approach.
|
|
183
|
-
// This temporary workaround lets us use the generic serialization
|
|
184
|
-
// approach for objects whose members include instances of dynamic
|
|
185
|
-
// StructArray types. Once we refactor StructArray to be static,
|
|
186
|
-
// we can remove this complexity.
|
|
187
|
-
(klass.serialize(input, transferables): SerializedObject) : {};
|
|
188
|
-
|
|
189
|
-
if (!klass.serialize) {
|
|
190
|
-
for (const key in input) {
|
|
191
|
-
// any cast due to https://github.com/facebook/flow/issues/5393
|
|
192
|
-
if (!(input: any).hasOwnProperty(key)) continue;
|
|
193
|
-
if (registry[name].omit.indexOf(key) >= 0) continue;
|
|
194
|
-
const property = (input: any)[key];
|
|
195
|
-
properties[key] = registry[name].shallow.indexOf(key) >= 0 ?
|
|
196
|
-
property :
|
|
197
|
-
serialize(property, transferables);
|
|
198
|
-
}
|
|
199
|
-
if (input instanceof Error) {
|
|
200
|
-
properties.message = input.message;
|
|
201
|
-
}
|
|
202
|
-
} else {
|
|
203
|
-
// make sure statically serialized object survives transfer of $name property
|
|
204
|
-
assert(!transferables || properties !== transferables[transferables.length - 1]);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
if (properties.$name) {
|
|
208
|
-
throw new Error('$name property is reserved for worker serialization logic.');
|
|
209
|
-
}
|
|
210
|
-
if (name !== 'Object') {
|
|
211
|
-
properties.$name = name;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
return properties;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
throw new Error(`can't serialize object of type ${typeof input}`);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
export function deserialize(input: Serialized): mixed {
|
|
221
|
-
if (input === null ||
|
|
222
|
-
input === undefined ||
|
|
223
|
-
typeof input === 'boolean' ||
|
|
224
|
-
typeof input === 'number' ||
|
|
225
|
-
typeof input === 'string' ||
|
|
226
|
-
input instanceof Boolean ||
|
|
227
|
-
input instanceof Number ||
|
|
228
|
-
input instanceof String ||
|
|
229
|
-
input instanceof Date ||
|
|
230
|
-
input instanceof RegExp ||
|
|
231
|
-
isArrayBuffer(input) ||
|
|
232
|
-
isImageBitmap(input) ||
|
|
233
|
-
ArrayBuffer.isView(input) ||
|
|
234
|
-
input instanceof ImageData) {
|
|
235
|
-
return input;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
if (Array.isArray(input)) {
|
|
239
|
-
return input.map(deserialize);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
if (typeof input === 'object') {
|
|
243
|
-
const name = (input: any).$name || 'Object';
|
|
244
|
-
|
|
245
|
-
const {klass} = registry[name];
|
|
246
|
-
if (!klass) {
|
|
247
|
-
throw new Error(`can't deserialize unregistered class ${name}`);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
if (klass.deserialize) {
|
|
251
|
-
return (klass.deserialize: typeof deserialize)(input);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
const result = Object.create(klass.prototype);
|
|
255
|
-
|
|
256
|
-
for (const key of Object.keys(input)) {
|
|
257
|
-
if (key === '$name') continue;
|
|
258
|
-
const value = (input: SerializedObject)[key];
|
|
259
|
-
result[key] = registry[name].shallow.indexOf(key) >= 0 ? value : deserialize(value);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
return result;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
throw new Error(`can't deserialize object of type ${typeof input}`);
|
|
266
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
// @flow strict
|
|
2
|
-
|
|
3
|
-
import window from './window';
|
|
4
|
-
|
|
5
|
-
const exported = {
|
|
6
|
-
supported: false,
|
|
7
|
-
testSupport
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export default exported;
|
|
11
|
-
|
|
12
|
-
let glForTesting;
|
|
13
|
-
let webpCheckComplete = false;
|
|
14
|
-
let webpImgTest;
|
|
15
|
-
let webpImgTestOnloadComplete = false;
|
|
16
|
-
|
|
17
|
-
if (window.document) {
|
|
18
|
-
webpImgTest = window.document.createElement('img');
|
|
19
|
-
webpImgTest.onload = function() {
|
|
20
|
-
if (glForTesting) testWebpTextureUpload(glForTesting);
|
|
21
|
-
glForTesting = null;
|
|
22
|
-
webpImgTestOnloadComplete = true;
|
|
23
|
-
};
|
|
24
|
-
webpImgTest.onerror = function() {
|
|
25
|
-
webpCheckComplete = true;
|
|
26
|
-
glForTesting = null;
|
|
27
|
-
};
|
|
28
|
-
webpImgTest.src = 'data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=';
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function testSupport(gl: WebGLRenderingContext) {
|
|
32
|
-
if (webpCheckComplete || !webpImgTest) return;
|
|
33
|
-
|
|
34
|
-
// HTMLImageElement.complete is set when an image is done loading it's source
|
|
35
|
-
// regardless of whether the load was successful or not.
|
|
36
|
-
// It's possible for an error to set HTMLImageElement.complete to true which would trigger
|
|
37
|
-
// testWebpTextureUpload and mistakenly set exported.supported to true in browsers which don't support webp
|
|
38
|
-
// To avoid this, we set a flag in the image's onload handler and only call testWebpTextureUpload
|
|
39
|
-
// after a successful image load event.
|
|
40
|
-
if (webpImgTestOnloadComplete) {
|
|
41
|
-
testWebpTextureUpload(gl);
|
|
42
|
-
} else {
|
|
43
|
-
glForTesting = gl;
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
function testWebpTextureUpload(gl: WebGLRenderingContext) {
|
|
49
|
-
// Edge 18 supports WebP but not uploading a WebP image to a gl texture
|
|
50
|
-
// Test support for this before allowing WebP images.
|
|
51
|
-
// https://github.com/mapbox/mapbox-gl-js/issues/7671
|
|
52
|
-
const texture = gl.createTexture();
|
|
53
|
-
gl.bindTexture(gl.TEXTURE_2D, texture);
|
|
54
|
-
|
|
55
|
-
try {
|
|
56
|
-
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, webpImgTest);
|
|
57
|
-
|
|
58
|
-
// The error does not get triggered in Edge if the context is lost
|
|
59
|
-
if (gl.isContextLost()) return;
|
|
60
|
-
|
|
61
|
-
exported.supported = true;
|
|
62
|
-
} catch (e) {
|
|
63
|
-
// Catch "Unspecified Error." in Edge 18.
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
gl.deleteTexture(texture);
|
|
67
|
-
|
|
68
|
-
webpCheckComplete = true;
|
|
69
|
-
}
|
package/src/util/window.js
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
// @flow strict
|
|
2
|
-
|
|
3
|
-
// This file is intended for use in the GL-JS test suite
|
|
4
|
-
// It implements a JSDOM window object for use in Node environments
|
|
5
|
-
// In a browser environment, this file is replaced with ./src/util/browser/window.js
|
|
6
|
-
// when Rollup builds the main bundle
|
|
7
|
-
// See https://github.com/mapbox/mapbox-gl-js/blob/master/package.json#L104-L108
|
|
8
|
-
|
|
9
|
-
import jsdom from 'jsdom';
|
|
10
|
-
|
|
11
|
-
import gl from 'gl';
|
|
12
|
-
import sinon from 'sinon';
|
|
13
|
-
|
|
14
|
-
import type {Window} from '../types/window';
|
|
15
|
-
|
|
16
|
-
const {window: _window} = new jsdom.JSDOM('', {
|
|
17
|
-
virtualConsole: new jsdom.VirtualConsole().sendTo(console)
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
restore();
|
|
21
|
-
|
|
22
|
-
export default _window;
|
|
23
|
-
|
|
24
|
-
function restore(): Window {
|
|
25
|
-
// Remove previous window from exported object
|
|
26
|
-
const previousWindow = _window;
|
|
27
|
-
if (previousWindow.close) previousWindow.close();
|
|
28
|
-
for (const key in previousWindow) {
|
|
29
|
-
if (previousWindow.hasOwnProperty(key)) {
|
|
30
|
-
delete previousWindow[key];
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
// Create new window and inject into exported object
|
|
35
|
-
const {window} = new jsdom.JSDOM('', {
|
|
36
|
-
// Send jsdom console output to the node console object.
|
|
37
|
-
virtualConsole: new jsdom.VirtualConsole().sendTo(console)
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
// Delete local and session storage from JSDOM and stub them out with a warning log
|
|
41
|
-
// Accessing these properties during extend() produces an error in Node environments
|
|
42
|
-
// See https://github.com/mapbox/mapbox-gl-js/pull/7455 for discussion
|
|
43
|
-
delete window.localStorage;
|
|
44
|
-
delete window.sessionStorage;
|
|
45
|
-
window.localStorage = window.sessionStorage = () => console.log('Local and session storage not available in Node. Use a stub implementation if needed for testing.');
|
|
46
|
-
|
|
47
|
-
window.devicePixelRatio = 1;
|
|
48
|
-
|
|
49
|
-
window.requestAnimationFrame = function(callback) {
|
|
50
|
-
return setImmediate(callback, 0);
|
|
51
|
-
};
|
|
52
|
-
window.cancelAnimationFrame = clearImmediate;
|
|
53
|
-
|
|
54
|
-
// Add webgl context with the supplied GL
|
|
55
|
-
const originalGetContext = window.HTMLCanvasElement.prototype.getContext;
|
|
56
|
-
window.HTMLCanvasElement.prototype.getContext = function (type, attributes) {
|
|
57
|
-
if (type === 'webgl') {
|
|
58
|
-
if (!this._webGLContext) {
|
|
59
|
-
this._webGLContext = gl(this.width, this.height, attributes);
|
|
60
|
-
}
|
|
61
|
-
return this._webGLContext;
|
|
62
|
-
}
|
|
63
|
-
// Fallback to existing HTMLCanvasElement getContext behaviour
|
|
64
|
-
return originalGetContext.call(this, type, attributes);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
window.useFakeHTMLCanvasGetContext = function() {
|
|
68
|
-
this.HTMLCanvasElement.prototype.getContext = function() { return '2d'; };
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
window.useFakeXMLHttpRequest = function() {
|
|
72
|
-
sinon.xhr.supportsCORS = true;
|
|
73
|
-
this.server = sinon.fakeServer.create();
|
|
74
|
-
this.XMLHttpRequest = this.server.xhr;
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
window.URL.revokeObjectURL = function () {};
|
|
78
|
-
|
|
79
|
-
window.fakeWorkerPresence = function() {
|
|
80
|
-
global.WorkerGlobalScope = function() {};
|
|
81
|
-
global.self = new global.WorkerGlobalScope();
|
|
82
|
-
};
|
|
83
|
-
window.clearFakeWorkerPresence = function() {
|
|
84
|
-
global.WorkerGlobalScope = undefined;
|
|
85
|
-
global.self = undefined;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
window.restore = restore;
|
|
89
|
-
|
|
90
|
-
window.performance.getEntriesByName = function() {};
|
|
91
|
-
window.performance.mark = function() {};
|
|
92
|
-
window.performance.measure = function() {};
|
|
93
|
-
window.performance.clearMarks = function() {};
|
|
94
|
-
window.performance.clearMeasures = function() {};
|
|
95
|
-
|
|
96
|
-
window.ImageData = window.ImageData || function() { return false; };
|
|
97
|
-
window.ImageBitmap = window.ImageBitmap || function() { return false; };
|
|
98
|
-
window.WebGLFramebuffer = window.WebGLFramebuffer || Object;
|
|
99
|
-
Object.assign(_window, window); // eslint-disable-line no-restricted-properties
|
|
100
|
-
|
|
101
|
-
return window;
|
|
102
|
-
}
|