@mapbox/mapbox-gl-style-spec 14.7.1 → 14.8.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/index.es.js CHANGED
@@ -212,7 +212,7 @@ var $root = {
212
212
  featuresets: {
213
213
  experimental: true,
214
214
  type: "featuresets",
215
- doc: "Defines sets of features for querying, interaction, and feature state manipulation.",
215
+ doc: "Defines sets of features for querying, interaction, and state management on the map, referencing individual layers or subsets of layers within the map's style.",
216
216
  example: {
217
217
  poi: {
218
218
  selectors: [
@@ -1281,7 +1281,6 @@ var layer = {
1281
1281
  },
1282
1282
  clip: {
1283
1283
  doc: "Layer that removes 3D content from map.",
1284
- experimental: true,
1285
1284
  "sdk-support": {
1286
1285
  "basic functionality": {
1287
1286
  js: "3.5.0",
@@ -1580,6 +1579,35 @@ var layout_fill = {
1580
1579
  interpolated: false
1581
1580
  },
1582
1581
  "property-type": "constant"
1582
+ },
1583
+ "fill-elevation-reference": {
1584
+ type: "enum",
1585
+ doc: "Selects the base of fill-elevation. Some modes might require precomputed elevation data in the tileset.",
1586
+ values: {
1587
+ none: {
1588
+ doc: "Elevated rendering is disabled."
1589
+ },
1590
+ "hd-road-base": {
1591
+ doc: "Elevate geometry relative to HD roads. Use this mode to describe base polygons of the road networks."
1592
+ },
1593
+ "hd-road-markup": {
1594
+ doc: "Elevated rendering is enabled. Use this mode to describe additive and stackable features such as 'hatched areas' that should exist only on top of road polygons."
1595
+ }
1596
+ },
1597
+ "default": "none",
1598
+ experimental: true,
1599
+ "private": true,
1600
+ transition: false,
1601
+ "sdk-support": {
1602
+ "basic functionality": {
1603
+ android: "11.9.0",
1604
+ ios: "11.9.0"
1605
+ }
1606
+ },
1607
+ expression: {
1608
+ interpolated: false
1609
+ },
1610
+ "property-type": "data-constant"
1583
1611
  }
1584
1612
  };
1585
1613
  var layout_circle = {
@@ -1822,7 +1850,11 @@ var layout_line = {
1822
1850
  "line-z-offset": {
1823
1851
  type: "number",
1824
1852
  experimental: true,
1825
- doc: "Vertical offset from ground, in meters. Defaults to 0. Not supported for globe projection at the moment.",
1853
+ doc: "Vertical offset from ground, in meters. Defaults to 0. This is an experimental property with some known issues:\n * Not supported for globe projection at the moment \n * Elevated line discontinuity is possible on tile borders with terrain enabled \n * Rendering artifacts can happen near line joins and line caps depending on the line styling \n * Rendering artifacts relating to `line-opacity` and `line-blur` \n * Elevated line visibility is determined by layer order \n * Z-fighting issues can happen with intersecting elevated lines \n * Elevated lines don't cast shadows",
1854
+ "default": 0,
1855
+ requires: [
1856
+ "line-elevation-reference"
1857
+ ],
1826
1858
  "sdk-support": {
1827
1859
  "basic functionality": {
1828
1860
  js: "3.5.0",
@@ -1845,6 +1877,57 @@ var layout_line = {
1845
1877
  },
1846
1878
  "property-type": "data-driven"
1847
1879
  },
1880
+ "line-elevation-reference": {
1881
+ type: "enum",
1882
+ doc: "Selects the base of line-elevation. Some modes might require precomputed elevation data in the tileset.",
1883
+ values: {
1884
+ none: {
1885
+ doc: "Elevated rendering is disabled."
1886
+ },
1887
+ sea: {
1888
+ doc: "Elevated rendering is enabled. Use this mode to elevate lines relative to the sea level."
1889
+ },
1890
+ ground: {
1891
+ doc: "Elevated rendering is enabled. Use this mode to elevate lines relative to the ground's height below them."
1892
+ },
1893
+ "hd-road-markup": {
1894
+ doc: "Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."
1895
+ }
1896
+ },
1897
+ "default": "none",
1898
+ experimental: true,
1899
+ transition: false,
1900
+ "sdk-support": {
1901
+ "basic functionality": {
1902
+ js: "3.8.0",
1903
+ android: "11.9.0",
1904
+ ios: "11.9.0"
1905
+ }
1906
+ },
1907
+ expression: {
1908
+ interpolated: false
1909
+ },
1910
+ "property-type": "data-constant"
1911
+ },
1912
+ "line-cross-slope": {
1913
+ type: "number",
1914
+ experimental: true,
1915
+ doc: "Defines the slope of an elevated line. A value of 0 creates a horizontal line. A value of 1 creates a vertical line. Other values are currently not supported. If undefined, the line follows the terrain slope. This is an experimental property with some known issues:\n * Vertical lines don't support line caps \n * `line-join: round` is not supported with this property",
1916
+ requires: [
1917
+ "line-z-offset"
1918
+ ],
1919
+ "sdk-support": {
1920
+ "basic functionality": {
1921
+ js: "3.8.0",
1922
+ android: "11.9.0",
1923
+ ios: "11.9.0"
1924
+ }
1925
+ },
1926
+ expression: {
1927
+ interpolated: false
1928
+ },
1929
+ "property-type": "constant"
1930
+ },
1848
1931
  visibility: {
1849
1932
  type: "enum",
1850
1933
  values: {
@@ -2041,6 +2124,36 @@ var layout_symbol = {
2041
2124
  },
2042
2125
  "property-type": "data-constant"
2043
2126
  },
2127
+ "symbol-elevation-reference": {
2128
+ type: "enum",
2129
+ doc: "Selects the base of symbol-elevation.",
2130
+ values: {
2131
+ sea: {
2132
+ doc: "Elevate symbols relative to the sea level."
2133
+ },
2134
+ ground: {
2135
+ doc: "Elevate symbols relative to the ground's height below them."
2136
+ },
2137
+ "hd-road-markup": {
2138
+ doc: "Use this mode to enable elevated behavior for features that are rendered on top of 3D road polygons. The feature is currently being developed."
2139
+ }
2140
+ },
2141
+ "default": "ground",
2142
+ experimental: true,
2143
+ "sdk-support": {
2144
+ "basic functionality": {
2145
+ android: "11.9.0",
2146
+ ios: "11.9.0"
2147
+ }
2148
+ },
2149
+ expression: {
2150
+ interpolated: false,
2151
+ parameters: [
2152
+ "zoom"
2153
+ ]
2154
+ },
2155
+ "property-type": "data-constant"
2156
+ },
2044
2157
  "icon-allow-overlap": {
2045
2158
  type: "boolean",
2046
2159
  "default": false,
@@ -2176,6 +2289,31 @@ var layout_symbol = {
2176
2289
  },
2177
2290
  "property-type": "data-driven"
2178
2291
  },
2292
+ "icon-size-scale-range": {
2293
+ type: "array",
2294
+ value: "number",
2295
+ length: 2,
2296
+ "default": [
2297
+ 0.8,
2298
+ 2
2299
+ ],
2300
+ doc: "Defines the minimum and maximum scaling factors for icon related properties like `icon-size`, `icon-halo-width`, `icon-halo-blur`",
2301
+ minimum: 0.1,
2302
+ maximum: 10,
2303
+ experimental: true,
2304
+ "private": true,
2305
+ expression: {
2306
+ interpolated: false
2307
+ },
2308
+ "sdk-support": {
2309
+ "basic functionality": {
2310
+ js: "3.8.0",
2311
+ android: "11.8.0",
2312
+ ios: "11.8.0"
2313
+ }
2314
+ },
2315
+ "property-type": "data-constant"
2316
+ },
2179
2317
  "icon-text-fit": {
2180
2318
  type: "enum",
2181
2319
  values: {
@@ -2665,6 +2803,31 @@ var layout_symbol = {
2665
2803
  },
2666
2804
  "property-type": "data-driven"
2667
2805
  },
2806
+ "text-size-scale-range": {
2807
+ type: "array",
2808
+ value: "number",
2809
+ length: 2,
2810
+ "default": [
2811
+ 0.8,
2812
+ 2
2813
+ ],
2814
+ doc: "Defines the minimum and maximum scaling factors for text related properties like `text-size`, `text-max-width`, `text-halo-width`, `font-size`",
2815
+ minimum: 0.1,
2816
+ maximum: 10,
2817
+ experimental: true,
2818
+ "private": true,
2819
+ expression: {
2820
+ interpolated: false
2821
+ },
2822
+ "sdk-support": {
2823
+ "basic functionality": {
2824
+ js: "3.8.0",
2825
+ android: "11.8.0",
2826
+ ios: "11.8.0"
2827
+ }
2828
+ },
2829
+ "property-type": "data-constant"
2830
+ },
2668
2831
  "text-max-width": {
2669
2832
  type: "number",
2670
2833
  "default": 10,
@@ -3364,6 +3527,62 @@ var filter_fill = {
3364
3527
  ]
3365
3528
  }
3366
3529
  };
3530
+ var filter_hillshade = {
3531
+ type: "boolean",
3532
+ doc: "Expression which determines whether or not to enable the hillshade layer. Hillshade layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
3533
+ "default": false,
3534
+ transition: false,
3535
+ "property-type": "data-driven",
3536
+ expression: {
3537
+ interpolated: false,
3538
+ parameters: [
3539
+ "zoom",
3540
+ "feature"
3541
+ ]
3542
+ }
3543
+ };
3544
+ var filter_raster = {
3545
+ type: "boolean",
3546
+ doc: "Expression which determines whether or not to enable the raster layer. Raster layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
3547
+ "default": false,
3548
+ transition: false,
3549
+ "property-type": "data-driven",
3550
+ expression: {
3551
+ interpolated: false,
3552
+ parameters: [
3553
+ "zoom",
3554
+ "feature"
3555
+ ]
3556
+ }
3557
+ };
3558
+ var filter_clip = {
3559
+ type: "boolean",
3560
+ doc: "Expression which determines whether or not to enable the clip layer. Clip layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
3561
+ "default": false,
3562
+ transition: false,
3563
+ "property-type": "data-driven",
3564
+ expression: {
3565
+ interpolated: false,
3566
+ parameters: [
3567
+ "zoom",
3568
+ "feature"
3569
+ ]
3570
+ }
3571
+ };
3572
+ var filter_model = {
3573
+ type: "boolean",
3574
+ doc: "Expression which determines whether or not to display a model. Model layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
3575
+ "default": false,
3576
+ transition: false,
3577
+ "property-type": "data-driven",
3578
+ expression: {
3579
+ interpolated: false,
3580
+ parameters: [
3581
+ "zoom",
3582
+ "feature"
3583
+ ]
3584
+ }
3585
+ };
3367
3586
  var filter_line = {
3368
3587
  type: "boolean",
3369
3588
  doc: "Expression which determines whether or not to display a Polygon or LineString. Line layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
@@ -4043,7 +4262,7 @@ var expression_name = {
4043
4262
  }
4044
4263
  },
4045
4264
  "line-progress": {
4046
- doc: "Returns the progress along a gradient line. Can only be used in the `line-gradient` property.",
4265
+ doc: "Returns the progress along a gradient line. Can only be used in the `line-gradient` and `line-z-offset` properties.",
4047
4266
  group: "Feature data",
4048
4267
  "sdk-support": {
4049
4268
  "basic functionality": {
@@ -4545,32 +4764,388 @@ var expression_name = {
4545
4764
  }
4546
4765
  }
4547
4766
  },
4548
- random: {
4549
- doc: "Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.",
4550
- group: "Math",
4551
- "sdk-support": {
4552
- "basic functionality": {
4553
- js: "3.0.0",
4554
- android: "11.0.0",
4555
- ios: "11.0.0"
4556
- }
4767
+ random: {
4768
+ doc: "Returns a random value in the specified range (first two input numbers) based on a supplied seed (third input). The seed can be an expression or a constant number or string value.",
4769
+ group: "Math",
4770
+ "sdk-support": {
4771
+ "basic functionality": {
4772
+ js: "3.0.0",
4773
+ android: "11.0.0",
4774
+ ios: "11.0.0"
4775
+ }
4776
+ }
4777
+ }
4778
+ }
4779
+ };
4780
+ var fog = {
4781
+ range: {
4782
+ type: "array",
4783
+ "default": [
4784
+ 0.5,
4785
+ 10
4786
+ ],
4787
+ minimum: -20,
4788
+ maximum: 20,
4789
+ length: 2,
4790
+ value: "number",
4791
+ "property-type": "data-constant",
4792
+ transition: true,
4793
+ expression: {
4794
+ interpolated: true,
4795
+ parameters: [
4796
+ "zoom",
4797
+ "measure-light"
4798
+ ],
4799
+ relaxZoomRestriction: true
4800
+ },
4801
+ doc: "The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.",
4802
+ example: [
4803
+ 0.5,
4804
+ 10
4805
+ ],
4806
+ "sdk-support": {
4807
+ "basic functionality": {
4808
+ js: "2.3.0",
4809
+ android: "10.6.0",
4810
+ ios: "10.6.0"
4811
+ }
4812
+ }
4813
+ },
4814
+ color: {
4815
+ type: "color",
4816
+ "property-type": "data-constant",
4817
+ "default": "#ffffff",
4818
+ expression: {
4819
+ interpolated: true,
4820
+ parameters: [
4821
+ "zoom",
4822
+ "measure-light"
4823
+ ],
4824
+ relaxZoomRestriction: true
4825
+ },
4826
+ transition: true,
4827
+ doc: "The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.",
4828
+ "sdk-support": {
4829
+ "basic functionality": {
4830
+ js: "2.3.0",
4831
+ android: "10.6.0",
4832
+ ios: "10.6.0"
4833
+ }
4834
+ }
4835
+ },
4836
+ "high-color": {
4837
+ type: "color",
4838
+ "property-type": "data-constant",
4839
+ "default": "#245cdf",
4840
+ expression: {
4841
+ interpolated: true,
4842
+ parameters: [
4843
+ "zoom",
4844
+ "measure-light"
4845
+ ],
4846
+ relaxZoomRestriction: true
4847
+ },
4848
+ transition: true,
4849
+ doc: "The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.",
4850
+ "sdk-support": {
4851
+ "basic functionality": {
4852
+ js: "2.9.0",
4853
+ android: "10.6.0",
4854
+ ios: "10.6.0"
4855
+ }
4856
+ }
4857
+ },
4858
+ "space-color": {
4859
+ type: "color",
4860
+ "property-type": "data-constant",
4861
+ "default": [
4862
+ "interpolate",
4863
+ [
4864
+ "linear"
4865
+ ],
4866
+ [
4867
+ "zoom"
4868
+ ],
4869
+ 4,
4870
+ "#010b19",
4871
+ 7,
4872
+ "#367ab9"
4873
+ ],
4874
+ expression: {
4875
+ interpolated: true,
4876
+ parameters: [
4877
+ "zoom",
4878
+ "measure-light"
4879
+ ],
4880
+ relaxZoomRestriction: true
4881
+ },
4882
+ transition: true,
4883
+ doc: "The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.",
4884
+ "sdk-support": {
4885
+ "basic functionality": {
4886
+ js: "2.9.0",
4887
+ android: "10.6.0",
4888
+ ios: "10.6.0"
4889
+ }
4890
+ }
4891
+ },
4892
+ "horizon-blend": {
4893
+ type: "number",
4894
+ "property-type": "data-constant",
4895
+ "default": [
4896
+ "interpolate",
4897
+ [
4898
+ "linear"
4899
+ ],
4900
+ [
4901
+ "zoom"
4902
+ ],
4903
+ 4,
4904
+ 0.2,
4905
+ 7,
4906
+ 0.1
4907
+ ],
4908
+ minimum: 0,
4909
+ maximum: 1,
4910
+ expression: {
4911
+ interpolated: true,
4912
+ parameters: [
4913
+ "zoom",
4914
+ "measure-light"
4915
+ ],
4916
+ relaxZoomRestriction: true
4917
+ },
4918
+ transition: true,
4919
+ doc: "Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.",
4920
+ "sdk-support": {
4921
+ "basic functionality": {
4922
+ js: "2.3.0",
4923
+ android: "10.6.0",
4924
+ ios: "10.6.0"
4925
+ }
4926
+ }
4927
+ },
4928
+ "star-intensity": {
4929
+ type: "number",
4930
+ "property-type": "data-constant",
4931
+ "default": [
4932
+ "interpolate",
4933
+ [
4934
+ "linear"
4935
+ ],
4936
+ [
4937
+ "zoom"
4938
+ ],
4939
+ 5,
4940
+ 0.35,
4941
+ 6,
4942
+ 0
4943
+ ],
4944
+ minimum: 0,
4945
+ maximum: 1,
4946
+ expression: {
4947
+ interpolated: true,
4948
+ parameters: [
4949
+ "zoom",
4950
+ "measure-light"
4951
+ ],
4952
+ relaxZoomRestriction: true
4953
+ },
4954
+ transition: true,
4955
+ doc: "A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.",
4956
+ "sdk-support": {
4957
+ "basic functionality": {
4958
+ js: "2.9.0",
4959
+ android: "10.6.0",
4960
+ ios: "10.6.0"
4961
+ }
4962
+ }
4963
+ },
4964
+ "vertical-range": {
4965
+ type: "array",
4966
+ "default": [
4967
+ 0,
4968
+ 0
4969
+ ],
4970
+ minimum: 0,
4971
+ length: 2,
4972
+ value: "number",
4973
+ "property-type": "data-constant",
4974
+ transition: true,
4975
+ expression: {
4976
+ interpolated: true,
4977
+ parameters: [
4978
+ "zoom",
4979
+ "measure-light"
4980
+ ],
4981
+ relaxZoomRestriction: true
4982
+ },
4983
+ doc: "An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.",
4984
+ "sdk-support": {
4985
+ "basic functionality": {
4986
+ js: "3.0.0",
4987
+ android: "11.0.0",
4988
+ ios: "11.0.0"
4989
+ }
4990
+ }
4991
+ }
4992
+ };
4993
+ var snow = {
4994
+ density: {
4995
+ type: "number",
4996
+ "property-type": "data-constant",
4997
+ "default": 1,
4998
+ minimum: 0,
4999
+ maximum: 1,
5000
+ experimental: true,
5001
+ expression: {
5002
+ interpolated: true,
5003
+ parameters: [
5004
+ "zoom",
5005
+ "measure-light"
5006
+ ],
5007
+ relaxZoomRestriction: true
5008
+ },
5009
+ transition: true,
5010
+ doc: "Snow particles density.",
5011
+ "sdk-support": {
5012
+ "basic functionality": {
5013
+ android: "11.8.0",
5014
+ ios: "11.8.0"
5015
+ }
5016
+ }
5017
+ },
5018
+ intensity: {
5019
+ type: "number",
5020
+ "property-type": "data-constant",
5021
+ "default": 1,
5022
+ minimum: 0,
5023
+ maximum: 1,
5024
+ experimental: true,
5025
+ expression: {
5026
+ interpolated: true,
5027
+ parameters: [
5028
+ "zoom",
5029
+ "measure-light"
5030
+ ],
5031
+ relaxZoomRestriction: true
5032
+ },
5033
+ transition: true,
5034
+ doc: "Snow particles movement factor.",
5035
+ "sdk-support": {
5036
+ "basic functionality": {
5037
+ android: "11.8.0",
5038
+ ios: "11.8.0"
5039
+ }
5040
+ }
5041
+ },
5042
+ color: {
5043
+ type: "color",
5044
+ "property-type": "data-constant",
5045
+ "default": "#ffffff",
5046
+ experimental: true,
5047
+ expression: {
5048
+ interpolated: true,
5049
+ parameters: [
5050
+ "zoom",
5051
+ "measure-light"
5052
+ ],
5053
+ relaxZoomRestriction: true
5054
+ },
5055
+ transition: true,
5056
+ doc: "Snow particles color.",
5057
+ "sdk-support": {
5058
+ "basic functionality": {
5059
+ android: "11.8.0",
5060
+ ios: "11.8.0"
5061
+ }
5062
+ }
5063
+ },
5064
+ opacity: {
5065
+ type: "number",
5066
+ "property-type": "data-constant",
5067
+ "default": 1,
5068
+ minimum: 0,
5069
+ maximum: 1,
5070
+ experimental: true,
5071
+ expression: {
5072
+ interpolated: true,
5073
+ parameters: [
5074
+ "zoom",
5075
+ "measure-light"
5076
+ ],
5077
+ relaxZoomRestriction: true
5078
+ },
5079
+ transition: true,
5080
+ doc: "Snow particles opacity.",
5081
+ "sdk-support": {
5082
+ "basic functionality": {
5083
+ android: "11.8.0",
5084
+ ios: "11.8.0"
5085
+ }
5086
+ }
5087
+ },
5088
+ vignette: {
5089
+ type: "number",
5090
+ "property-type": "data-constant",
5091
+ "default": 0,
5092
+ minimum: 0,
5093
+ maximum: 1,
5094
+ experimental: true,
5095
+ expression: {
5096
+ interpolated: true,
5097
+ parameters: [
5098
+ "zoom",
5099
+ "measure-light"
5100
+ ],
5101
+ relaxZoomRestriction: true
5102
+ },
5103
+ transition: true,
5104
+ doc: "Snow vignette screen-space effect.",
5105
+ "sdk-support": {
5106
+ "basic functionality": {
5107
+ android: "11.8.0",
5108
+ ios: "11.8.0"
5109
+ }
5110
+ }
5111
+ },
5112
+ centerThinning: {
5113
+ type: "number",
5114
+ "property-type": "data-constant",
5115
+ "default": 1,
5116
+ minimum: 0,
5117
+ maximum: 1,
5118
+ experimental: true,
5119
+ expression: {
5120
+ interpolated: true,
5121
+ parameters: [
5122
+ "zoom",
5123
+ "measure-light"
5124
+ ],
5125
+ relaxZoomRestriction: true
5126
+ },
5127
+ transition: true,
5128
+ doc: "Thinning factor of snow particles from center. 0 - no thinning. 1 - maximal central area thinning.",
5129
+ "sdk-support": {
5130
+ "basic functionality": {
5131
+ android: "11.8.0",
5132
+ ios: "11.8.0"
4557
5133
  }
4558
5134
  }
4559
- }
4560
- };
4561
- var fog = {
4562
- range: {
5135
+ },
5136
+ direction: {
4563
5137
  type: "array",
4564
5138
  "default": [
4565
- 0.5,
4566
- 10
5139
+ 0,
5140
+ 90
4567
5141
  ],
4568
- minimum: -20,
4569
- maximum: 20,
5142
+ minimum: 0,
5143
+ maximum: 360,
4570
5144
  length: 2,
4571
5145
  value: "number",
4572
5146
  "property-type": "data-constant",
4573
5147
  transition: true,
5148
+ experimental: true,
4574
5149
  expression: {
4575
5150
  interpolated: true,
4576
5151
  parameters: [
@@ -4579,23 +5154,27 @@ var fog = {
4579
5154
  ],
4580
5155
  relaxZoomRestriction: true
4581
5156
  },
4582
- doc: "The start and end distance range in which fog fades from fully transparent to fully opaque. The distance to the point at the center of the map is defined as zero, so that negative range values are closer to the camera, and positive values are farther away.",
5157
+ doc: "Main snow particles direction. Heading & pitch",
4583
5158
  example: [
4584
- 0.5,
4585
- 10
5159
+ 0,
5160
+ 45
4586
5161
  ],
4587
5162
  "sdk-support": {
4588
5163
  "basic functionality": {
4589
- js: "2.3.0",
4590
- android: "10.6.0",
4591
- ios: "10.6.0"
5164
+ android: "11.8.0",
5165
+ ios: "11.8.0"
4592
5166
  }
4593
5167
  }
4594
- },
4595
- color: {
4596
- type: "color",
5168
+ }
5169
+ };
5170
+ var rain = {
5171
+ density: {
5172
+ type: "number",
4597
5173
  "property-type": "data-constant",
4598
- "default": "#ffffff",
5174
+ "default": 1,
5175
+ minimum: 0,
5176
+ maximum: 1,
5177
+ experimental: true,
4599
5178
  expression: {
4600
5179
  interpolated: true,
4601
5180
  parameters: [
@@ -4605,19 +5184,21 @@ var fog = {
4605
5184
  relaxZoomRestriction: true
4606
5185
  },
4607
5186
  transition: true,
4608
- doc: "The color of the atmosphere region immediately below the horizon and within the `range` and above the horizon and within `horizon-blend`. Using opacity is recommended only for smoothly transitioning fog on/off as anything less than 100% opacity results in more tiles loaded and drawn.",
5187
+ doc: "Rain particles density.",
4609
5188
  "sdk-support": {
4610
5189
  "basic functionality": {
4611
- js: "2.3.0",
4612
- android: "10.6.0",
4613
- ios: "10.6.0"
5190
+ android: "11.8.0",
5191
+ ios: "11.8.0"
4614
5192
  }
4615
5193
  }
4616
5194
  },
4617
- "high-color": {
4618
- type: "color",
5195
+ intensity: {
5196
+ type: "number",
4619
5197
  "property-type": "data-constant",
4620
- "default": "#245cdf",
5198
+ "default": 1,
5199
+ minimum: 0,
5200
+ maximum: 1,
5201
+ experimental: true,
4621
5202
  expression: {
4622
5203
  interpolated: true,
4623
5204
  parameters: [
@@ -4627,31 +5208,19 @@ var fog = {
4627
5208
  relaxZoomRestriction: true
4628
5209
  },
4629
5210
  transition: true,
4630
- doc: "The color of the atmosphere region above the horizon, `high-color` extends further above the horizon than the `color` property and its spread can be controlled with `horizon-blend`. The opacity can be set to `0` to remove the high atmosphere color contribution.",
5211
+ doc: "Rain particles movement factor.",
4631
5212
  "sdk-support": {
4632
5213
  "basic functionality": {
4633
- js: "2.9.0",
4634
- android: "10.6.0",
4635
- ios: "10.6.0"
5214
+ android: "11.8.0",
5215
+ ios: "11.8.0"
4636
5216
  }
4637
5217
  }
4638
5218
  },
4639
- "space-color": {
5219
+ color: {
4640
5220
  type: "color",
4641
5221
  "property-type": "data-constant",
4642
- "default": [
4643
- "interpolate",
4644
- [
4645
- "linear"
4646
- ],
4647
- [
4648
- "zoom"
4649
- ],
4650
- 4,
4651
- "#010b19",
4652
- 7,
4653
- "#367ab9"
4654
- ],
5222
+ "default": "#ffffff",
5223
+ experimental: true,
4655
5224
  expression: {
4656
5225
  interpolated: true,
4657
5226
  parameters: [
@@ -4661,33 +5230,21 @@ var fog = {
4661
5230
  relaxZoomRestriction: true
4662
5231
  },
4663
5232
  transition: true,
4664
- doc: "The color of the region above the horizon and after the end of the `horizon-blend` contribution. The opacity can be set to `0` to have a transparent background.",
5233
+ doc: "",
4665
5234
  "sdk-support": {
4666
5235
  "basic functionality": {
4667
- js: "2.9.0",
4668
- android: "10.6.0",
4669
- ios: "10.6.0"
5236
+ android: "11.8.0",
5237
+ ios: "11.8.0"
4670
5238
  }
4671
5239
  }
4672
5240
  },
4673
- "horizon-blend": {
5241
+ opacity: {
4674
5242
  type: "number",
4675
5243
  "property-type": "data-constant",
4676
- "default": [
4677
- "interpolate",
4678
- [
4679
- "linear"
4680
- ],
4681
- [
4682
- "zoom"
4683
- ],
4684
- 4,
4685
- 0.2,
4686
- 7,
4687
- 0.1
4688
- ],
5244
+ "default": 1,
4689
5245
  minimum: 0,
4690
5246
  maximum: 1,
5247
+ experimental: true,
4691
5248
  expression: {
4692
5249
  interpolated: true,
4693
5250
  parameters: [
@@ -4697,33 +5254,45 @@ var fog = {
4697
5254
  relaxZoomRestriction: true
4698
5255
  },
4699
5256
  transition: true,
4700
- doc: "Horizon blend applies a smooth fade from the color of the atmosphere to the color of space. A value of zero leaves a sharp transition from atmosphere to space. Increasing the value blends the color of atmosphere into increasingly high angles of the sky.",
5257
+ doc: "Rain particles opacity.",
4701
5258
  "sdk-support": {
4702
5259
  "basic functionality": {
4703
- js: "2.3.0",
4704
- android: "10.6.0",
4705
- ios: "10.6.0"
5260
+ android: "11.8.0",
5261
+ ios: "11.8.0"
4706
5262
  }
4707
5263
  }
4708
5264
  },
4709
- "star-intensity": {
5265
+ vignette: {
4710
5266
  type: "number",
4711
5267
  "property-type": "data-constant",
4712
- "default": [
4713
- "interpolate",
4714
- [
4715
- "linear"
4716
- ],
4717
- [
4718
- "zoom"
5268
+ "default": 0,
5269
+ minimum: 0,
5270
+ maximum: 1,
5271
+ experimental: true,
5272
+ expression: {
5273
+ interpolated: true,
5274
+ parameters: [
5275
+ "zoom",
5276
+ "measure-light"
4719
5277
  ],
4720
- 5,
4721
- 0.35,
4722
- 6,
4723
- 0
4724
- ],
5278
+ relaxZoomRestriction: true
5279
+ },
5280
+ transition: true,
5281
+ doc: "Rain vignette screen-space effect.",
5282
+ "sdk-support": {
5283
+ "basic functionality": {
5284
+ android: "11.8.0",
5285
+ ios: "11.8.0"
5286
+ }
5287
+ }
5288
+ },
5289
+ centerThinning: {
5290
+ type: "number",
5291
+ "property-type": "data-constant",
5292
+ "default": 1,
4725
5293
  minimum: 0,
4726
5294
  maximum: 1,
5295
+ experimental: true,
4727
5296
  expression: {
4728
5297
  interpolated: true,
4729
5298
  parameters: [
@@ -4733,26 +5302,27 @@ var fog = {
4733
5302
  relaxZoomRestriction: true
4734
5303
  },
4735
5304
  transition: true,
4736
- doc: "A value controlling the star intensity where `0` will show no stars and `1` will show stars at their maximum intensity.",
5305
+ doc: "Thinning factor of rain particles from center. 0 - no thinning. 1 - maximal central area thinning.",
4737
5306
  "sdk-support": {
4738
5307
  "basic functionality": {
4739
- js: "2.9.0",
4740
- android: "10.6.0",
4741
- ios: "10.6.0"
5308
+ android: "11.8.0",
5309
+ ios: "11.8.0"
4742
5310
  }
4743
5311
  }
4744
5312
  },
4745
- "vertical-range": {
5313
+ direction: {
4746
5314
  type: "array",
4747
5315
  "default": [
4748
5316
  0,
4749
- 0
5317
+ 80
4750
5318
  ],
4751
5319
  minimum: 0,
5320
+ maximum: 360,
4752
5321
  length: 2,
4753
5322
  value: "number",
4754
5323
  "property-type": "data-constant",
4755
5324
  transition: true,
5325
+ experimental: true,
4756
5326
  expression: {
4757
5327
  interpolated: true,
4758
5328
  parameters: [
@@ -4761,12 +5331,15 @@ var fog = {
4761
5331
  ],
4762
5332
  relaxZoomRestriction: true
4763
5333
  },
4764
- doc: "An array of two number values, specifying the vertical range, measured in meters, over which the fog should gradually fade out. When both parameters are set to zero, the fog will be rendered without any vertical constraints.",
5334
+ doc: "Main rain particles direction. Heading & pitch",
5335
+ example: [
5336
+ 0,
5337
+ 45
5338
+ ],
4765
5339
  "sdk-support": {
4766
5340
  "basic functionality": {
4767
- js: "3.0.0",
4768
- android: "11.0.0",
4769
- ios: "11.0.0"
5341
+ android: "11.8.0",
5342
+ ios: "11.8.0"
4770
5343
  }
4771
5344
  }
4772
5345
  }
@@ -7088,34 +7661,6 @@ var paint_symbol = {
7088
7661
  ]
7089
7662
  },
7090
7663
  "property-type": "data-driven"
7091
- },
7092
- "symbol-elevation-reference": {
7093
- type: "enum",
7094
- doc: "Selects the base of symbol-elevation.",
7095
- values: {
7096
- sea: {
7097
- doc: "Elevate symbols relative to the sea level."
7098
- },
7099
- ground: {
7100
- doc: "Elevate symbols relative to the ground's height below them."
7101
- }
7102
- },
7103
- "default": "ground",
7104
- experimental: true,
7105
- "sdk-support": {
7106
- "basic functionality": {
7107
- js: "3.7.0",
7108
- android: "11.7.0",
7109
- ios: "11.7.0"
7110
- }
7111
- },
7112
- expression: {
7113
- interpolated: false,
7114
- parameters: [
7115
- "zoom"
7116
- ]
7117
- },
7118
- "property-type": "data-constant"
7119
7664
  }
7120
7665
  };
7121
7666
  var paint_raster = {
@@ -8604,6 +9149,24 @@ var v8 = {
8604
9149
  filter: filter,
8605
9150
  filter_symbol: filter_symbol,
8606
9151
  filter_fill: filter_fill,
9152
+ filter_hillshade: filter_hillshade,
9153
+ filter_raster: filter_raster,
9154
+ "filter_raster-particle": {
9155
+ type: "boolean",
9156
+ doc: "Expression which determines whether or not to enable the raster particle layer. Raster particle layer does NOT support dynamic filtering, meaning this expression can NOT use the `[\"pitch\"]` and `[\"distance-from-center\"]` expressions to reference the current state of the view.",
9157
+ "default": false,
9158
+ transition: false,
9159
+ "property-type": "data-driven",
9160
+ expression: {
9161
+ interpolated: false,
9162
+ parameters: [
9163
+ "zoom",
9164
+ "feature"
9165
+ ]
9166
+ }
9167
+ },
9168
+ filter_clip: filter_clip,
9169
+ filter_model: filter_model,
8607
9170
  filter_line: filter_line,
8608
9171
  filter_circle: filter_circle,
8609
9172
  "filter_fill-extrusion": {
@@ -8689,6 +9252,8 @@ var v8 = {
8689
9252
  expression: expression$1,
8690
9253
  expression_name: expression_name,
8691
9254
  fog: fog,
9255
+ snow: snow,
9256
+ rain: rain,
8692
9257
  camera: camera,
8693
9258
  colorTheme: colorTheme,
8694
9259
  light: light,
@@ -8894,6 +9459,56 @@ var v8 = {
8894
9459
  },
8895
9460
  "property-type": "data-driven"
8896
9461
  },
9462
+ "fill-extrusion-height-alignment": {
9463
+ type: "enum",
9464
+ experimental: true,
9465
+ values: {
9466
+ terrain: {
9467
+ doc: "The fill extrusion height follows terrain slope."
9468
+ },
9469
+ flat: {
9470
+ doc: "The fill extrusion height is flat over terrain."
9471
+ }
9472
+ },
9473
+ doc: "Controls the behavior of fill extrusion height over terrain",
9474
+ "default": "flat",
9475
+ requires: [
9476
+ "fill-extrusion-height"
9477
+ ],
9478
+ "sdk-support": {
9479
+ "basic functionality": {
9480
+ js: "3.8.0",
9481
+ android: "11.8.0",
9482
+ ios: "11.8.0"
9483
+ }
9484
+ },
9485
+ "property-type": "data-constant"
9486
+ },
9487
+ "fill-extrusion-base-alignment": {
9488
+ type: "enum",
9489
+ experimental: true,
9490
+ values: {
9491
+ terrain: {
9492
+ doc: "The fill extrusion base follows terrain slope."
9493
+ },
9494
+ flat: {
9495
+ doc: "The fill extrusion base is flat over terrain."
9496
+ }
9497
+ },
9498
+ doc: "Controls the behavior of fill extrusion base over terrain",
9499
+ "default": "terrain",
9500
+ requires: [
9501
+ "fill-extrusion-base"
9502
+ ],
9503
+ "sdk-support": {
9504
+ "basic functionality": {
9505
+ js: "3.8.0",
9506
+ android: "11.8.0",
9507
+ ios: "11.8.0"
9508
+ }
9509
+ },
9510
+ "property-type": "data-constant"
9511
+ },
8897
9512
  "fill-extrusion-vertical-gradient": {
8898
9513
  type: "boolean",
8899
9514
  "default": true,
@@ -14596,13 +15211,21 @@ class At {
14596
15211
  if (index < 0) {
14597
15212
  throw new RuntimeError(`Array index out of bounds: ${ index } < 0.`);
14598
15213
  }
14599
- if (index >= array2.length) {
15214
+ if (index > array2.length - 1) {
14600
15215
  throw new RuntimeError(`Array index out of bounds: ${ index } > ${ array2.length - 1 }.`);
14601
15216
  }
14602
- if (index !== Math.floor(index)) {
14603
- throw new RuntimeError(`Array index must be an integer, but found ${ index } instead.`);
15217
+ if (index === Math.floor(index)) {
15218
+ return array2[index];
14604
15219
  }
14605
- return array2[index];
15220
+ const lowerIndex = Math.floor(index);
15221
+ const upperIndex = Math.ceil(index);
15222
+ const lowerValue = array2[lowerIndex];
15223
+ const upperValue = array2[upperIndex];
15224
+ if (typeof lowerValue !== 'number' || typeof upperValue !== 'number') {
15225
+ throw new RuntimeError(`Cannot interpolate between non-number values at index ${ index }.`);
15226
+ }
15227
+ const fraction = index - lowerIndex;
15228
+ return lowerValue * (1 - fraction) + upperValue * fraction;
14606
15229
  }
14607
15230
  eachChild(fn) {
14608
15231
  fn(this.index);
@@ -15998,6 +16621,9 @@ function supportsLightExpression(spec) {
15998
16621
  function supportsZoomExpression(spec) {
15999
16622
  return expressionHasParameter(spec.expression, 'zoom');
16000
16623
  }
16624
+ function supportsLineProgressExpression(spec) {
16625
+ return expressionHasParameter(spec.expression, 'line-progress');
16626
+ }
16001
16627
  function supportsInterpolation(spec) {
16002
16628
  return !!spec.expression && spec.expression.interpolated;
16003
16629
  }
@@ -16209,6 +16835,7 @@ class StyleExpression {
16209
16835
  this._evaluator = new EvaluationContext(scope, options);
16210
16836
  this._defaultValue = propertySpec ? getDefaultValue(propertySpec) : null;
16211
16837
  this._enumValues = propertySpec && propertySpec.type === 'enum' ? propertySpec.values : null;
16838
+ this.configDependencies = getConfigDependencies(expression);
16212
16839
  }
16213
16840
  evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection, featureTileCoord, featureDistanceData) {
16214
16841
  this._evaluator.globals = globals;
@@ -16322,6 +16949,10 @@ function createPropertyExpression(expression, propertySpec, scope, options) {
16322
16949
  if (!isLightConstant && !supportsLightExpression(propertySpec)) {
16323
16950
  return error([new ParsingError$1('', 'measure-light expression not supported')]);
16324
16951
  }
16952
+ const isLineProgressConstant = isGlobalPropertyConstant(parsed, ['line-progress']);
16953
+ if (!isLineProgressConstant && !supportsLineProgressExpression(propertySpec)) {
16954
+ return error([new ParsingError$1('', 'line-progress expression not supported')]);
16955
+ }
16325
16956
  const canRelaxZoomRestriction = propertySpec.expression && propertySpec.expression.relaxZoomRestriction;
16326
16957
  const zoomCurve = findZoomCurve(parsed);
16327
16958
  if (!zoomCurve && !isZoomConstant && !canRelaxZoomRestriction) {
@@ -16332,12 +16963,12 @@ function createPropertyExpression(expression, propertySpec, scope, options) {
16332
16963
  return error([new ParsingError$1('', '"interpolate" expressions cannot be used with this property')]);
16333
16964
  }
16334
16965
  if (!zoomCurve) {
16335
- return success(isFeatureConstant$1 ? // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16966
+ return success(isFeatureConstant$1 && isLineProgressConstant ? // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16336
16967
  new ZoomConstantExpression('constant', expression.value, isLightConstant) : // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16337
16968
  new ZoomConstantExpression('source', expression.value, isLightConstant));
16338
16969
  }
16339
16970
  const interpolationType = zoomCurve instanceof Interpolate ? zoomCurve.interpolation : void 0;
16340
- return success(isFeatureConstant$1 ? // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16971
+ return success(isFeatureConstant$1 && isLineProgressConstant ? // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16341
16972
  new ZoomDependentExpression('camera', expression.value, zoomCurve.labels, interpolationType, isLightConstant) : // @ts-expect-error - TS2339 - Property 'value' does not exist on type 'unknown'.
16342
16973
  new ZoomDependentExpression('composite', expression.value, zoomCurve.labels, interpolationType, isLightConstant));
16343
16974
  }
@@ -16810,13 +17441,16 @@ Filter Expression:
16810
17441
  ${ JSON.stringify(filterExp, null, 2) }
16811
17442
  `);
16812
17443
  }
16813
- const filterSpec = v8[`filter_${ layerType }`];
16814
- const compiledStaticFilter = createExpression(staticFilter, filterSpec, scope, options);
16815
17444
  let filterFunc = null;
16816
- if (compiledStaticFilter.result === 'error') {
16817
- throw new Error(compiledStaticFilter.value.map(err => `${ err.key }: ${ err.message }`).join(', '));
16818
- } else {
16819
- filterFunc = (globalProperties, feature, canonical) => compiledStaticFilter.value.evaluate(globalProperties, feature, {}, canonical);
17445
+ let filterSpec = null;
17446
+ if (layerType !== 'background' && layerType !== 'sky' && layerType !== 'slot') {
17447
+ filterSpec = v8[`filter_${ layerType }`];
17448
+ const compiledStaticFilter = createExpression(staticFilter, filterSpec, scope, options);
17449
+ if (compiledStaticFilter.result === 'error') {
17450
+ throw new Error(compiledStaticFilter.value.map(err => `${ err.key }: ${ err.message }`).join(', '));
17451
+ } else {
17452
+ filterFunc = (globalProperties, feature, canonical) => compiledStaticFilter.value.evaluate(globalProperties, feature, {}, canonical);
17453
+ }
16820
17454
  }
16821
17455
  let dynamicFilterFunc = null;
16822
17456
  let needFeature = null;