@mapbox/mapbox-gl-style-spec 14.7.0 → 14.8.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -300,6 +300,7 @@ type FeaturesetsSpecification = {
300
300
  [_: string]: FeaturesetSpecification;
301
301
  };
302
302
  type FeaturesetSpecification = {
303
+ "metadata"?: unknown;
303
304
  "selectors"?: Array<SelectorSpecification>;
304
305
  };
305
306
  type SelectorSpecification = {
@@ -554,6 +555,14 @@ type LineLayerSpecification = {
554
555
  * @experimental This property is experimental and subject to change in future versions.
555
556
  */
556
557
  "line-z-offset"?: DataDrivenPropertyValueSpecification<number>;
558
+ /**
559
+ * @experimental This property is experimental and subject to change in future versions.
560
+ */
561
+ "line-elevation-reference"?: "none" | "sea" | "ground" | "hd-road-markup" | ExpressionSpecification;
562
+ /**
563
+ * @experimental This property is experimental and subject to change in future versions.
564
+ */
565
+ "line-cross-slope"?: ExpressionSpecification;
557
566
  "visibility"?: "visible" | "none" | ExpressionSpecification;
558
567
  };
559
568
  "paint"?: {
@@ -623,6 +632,10 @@ type SymbolLayerSpecification = {
623
632
  "icon-optional"?: PropertyValueSpecification<boolean>;
624
633
  "icon-rotation-alignment"?: PropertyValueSpecification<"map" | "viewport" | "auto">;
625
634
  "icon-size"?: DataDrivenPropertyValueSpecification<number>;
635
+ /**
636
+ * @experimental This property is experimental and subject to change in future versions.
637
+ */
638
+ "icon-size-scale-range"?: ExpressionSpecification;
626
639
  "icon-text-fit"?: DataDrivenPropertyValueSpecification<"none" | "width" | "height" | "both">;
627
640
  "icon-text-fit-padding"?: DataDrivenPropertyValueSpecification<[
628
641
  number,
@@ -645,6 +658,10 @@ type SymbolLayerSpecification = {
645
658
  "text-field"?: DataDrivenPropertyValueSpecification<FormattedSpecification>;
646
659
  "text-font"?: DataDrivenPropertyValueSpecification<Array<string>>;
647
660
  "text-size"?: DataDrivenPropertyValueSpecification<number>;
661
+ /**
662
+ * @experimental This property is experimental and subject to change in future versions.
663
+ */
664
+ "text-size-scale-range"?: ExpressionSpecification;
648
665
  "text-max-width"?: DataDrivenPropertyValueSpecification<number>;
649
666
  "text-line-height"?: DataDrivenPropertyValueSpecification<number>;
650
667
  "text-letter-spacing"?: DataDrivenPropertyValueSpecification<number>;
@@ -820,6 +837,14 @@ type FillExtrusionLayerSpecification = {
820
837
  "fill-extrusion-height-transition"?: TransitionSpecification;
821
838
  "fill-extrusion-base"?: DataDrivenPropertyValueSpecification<number>;
822
839
  "fill-extrusion-base-transition"?: TransitionSpecification;
840
+ /**
841
+ * @experimental This property is experimental and subject to change in future versions.
842
+ */
843
+ "fill-extrusion-height-alignment"?: "terrain" | "flat";
844
+ /**
845
+ * @experimental This property is experimental and subject to change in future versions.
846
+ */
847
+ "fill-extrusion-base-alignment"?: "terrain" | "flat";
823
848
  "fill-extrusion-vertical-gradient"?: PropertyValueSpecification<boolean>;
824
849
  "fill-extrusion-ambient-occlusion-intensity"?: PropertyValueSpecification<number>;
825
850
  "fill-extrusion-ambient-occlusion-intensity-transition"?: TransitionSpecification;
package/dist/index.es.js CHANGED
@@ -244,6 +244,10 @@ var featuresets = {
244
244
  };
245
245
  var featureset = {
246
246
  experimental: true,
247
+ metadata: {
248
+ type: "*",
249
+ doc: "Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."
250
+ },
247
251
  selectors: {
248
252
  type: "array",
249
253
  value: "selector",
@@ -1277,7 +1281,6 @@ var layer = {
1277
1281
  },
1278
1282
  clip: {
1279
1283
  doc: "Layer that removes 3D content from map.",
1280
- experimental: true,
1281
1284
  "sdk-support": {
1282
1285
  "basic functionality": {
1283
1286
  js: "3.5.0",
@@ -1818,7 +1821,11 @@ var layout_line = {
1818
1821
  "line-z-offset": {
1819
1822
  type: "number",
1820
1823
  experimental: true,
1821
- doc: "Vertical offset from ground, in meters. Defaults to 0. Not supported for globe projection at the moment.",
1824
+ 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",
1825
+ "default": 0,
1826
+ requires: [
1827
+ "line-elevation-reference"
1828
+ ],
1822
1829
  "sdk-support": {
1823
1830
  "basic functionality": {
1824
1831
  js: "3.5.0",
@@ -1841,6 +1848,57 @@ var layout_line = {
1841
1848
  },
1842
1849
  "property-type": "data-driven"
1843
1850
  },
1851
+ "line-elevation-reference": {
1852
+ type: "enum",
1853
+ doc: "Selects the base of line-elevation. Some modes might require precomputed elevation data in the tileset.",
1854
+ values: {
1855
+ none: {
1856
+ doc: "Elevated rendering is disabled."
1857
+ },
1858
+ sea: {
1859
+ doc: "Elevated rendering is enabled. Use this mode to elevate lines relative to the sea level."
1860
+ },
1861
+ ground: {
1862
+ doc: "Elevated rendering is enabled. Use this mode to elevate lines relative to the ground's height below them."
1863
+ },
1864
+ "hd-road-markup": {
1865
+ doc: "Elevated rendering is enabled. Use this mode to describe additive and stackable features that should exist only on top of road polygons."
1866
+ }
1867
+ },
1868
+ "default": "none",
1869
+ experimental: true,
1870
+ transition: false,
1871
+ "sdk-support": {
1872
+ "basic functionality": {
1873
+ js: "3.8.0",
1874
+ android: "11.9.0",
1875
+ ios: "11.9.0"
1876
+ }
1877
+ },
1878
+ expression: {
1879
+ interpolated: false
1880
+ },
1881
+ "property-type": "data-constant"
1882
+ },
1883
+ "line-cross-slope": {
1884
+ type: "number",
1885
+ experimental: true,
1886
+ 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",
1887
+ requires: [
1888
+ "line-z-offset"
1889
+ ],
1890
+ "sdk-support": {
1891
+ "basic functionality": {
1892
+ js: "3.8.0",
1893
+ android: "11.9.0",
1894
+ ios: "11.9.0"
1895
+ }
1896
+ },
1897
+ expression: {
1898
+ interpolated: false
1899
+ },
1900
+ "property-type": "constant"
1901
+ },
1844
1902
  visibility: {
1845
1903
  type: "enum",
1846
1904
  values: {
@@ -2172,6 +2230,31 @@ var layout_symbol = {
2172
2230
  },
2173
2231
  "property-type": "data-driven"
2174
2232
  },
2233
+ "icon-size-scale-range": {
2234
+ type: "array",
2235
+ value: "number",
2236
+ length: 2,
2237
+ "default": [
2238
+ 0.8,
2239
+ 2
2240
+ ],
2241
+ doc: "Defines the minimum and maximum scaling factors for icon related properties like `icon-size`, `icon-halo-width`, `icon-halo-blur`",
2242
+ minimum: 0.1,
2243
+ maximum: 10,
2244
+ experimental: true,
2245
+ "private": true,
2246
+ expression: {
2247
+ interpolated: false
2248
+ },
2249
+ "sdk-support": {
2250
+ "basic functionality": {
2251
+ js: "3.8.0",
2252
+ android: "11.8.0",
2253
+ ios: "11.8.0"
2254
+ }
2255
+ },
2256
+ "property-type": "data-constant"
2257
+ },
2175
2258
  "icon-text-fit": {
2176
2259
  type: "enum",
2177
2260
  values: {
@@ -2661,6 +2744,31 @@ var layout_symbol = {
2661
2744
  },
2662
2745
  "property-type": "data-driven"
2663
2746
  },
2747
+ "text-size-scale-range": {
2748
+ type: "array",
2749
+ value: "number",
2750
+ length: 2,
2751
+ "default": [
2752
+ 0.8,
2753
+ 2
2754
+ ],
2755
+ doc: "Defines the minimum and maximum scaling factors for text related properties like `text-size`, `text-max-width`, `text-halo-width`, `font-size`",
2756
+ minimum: 0.1,
2757
+ maximum: 10,
2758
+ experimental: true,
2759
+ "private": true,
2760
+ expression: {
2761
+ interpolated: false
2762
+ },
2763
+ "sdk-support": {
2764
+ "basic functionality": {
2765
+ js: "3.8.0",
2766
+ android: "11.8.0",
2767
+ ios: "11.8.0"
2768
+ }
2769
+ },
2770
+ "property-type": "data-constant"
2771
+ },
2664
2772
  "text-max-width": {
2665
2773
  type: "number",
2666
2774
  "default": 10,
@@ -4767,6 +4875,360 @@ var fog = {
4767
4875
  }
4768
4876
  }
4769
4877
  };
4878
+ var snow = {
4879
+ density: {
4880
+ type: "number",
4881
+ "property-type": "data-constant",
4882
+ "default": 1,
4883
+ minimum: 0,
4884
+ maximum: 1,
4885
+ experimental: true,
4886
+ expression: {
4887
+ interpolated: true,
4888
+ parameters: [
4889
+ "zoom",
4890
+ "measure-light"
4891
+ ],
4892
+ relaxZoomRestriction: true
4893
+ },
4894
+ transition: true,
4895
+ doc: "Snow particles density.",
4896
+ "sdk-support": {
4897
+ "basic functionality": {
4898
+ android: "11.8.0",
4899
+ ios: "11.8.0"
4900
+ }
4901
+ }
4902
+ },
4903
+ intensity: {
4904
+ type: "number",
4905
+ "property-type": "data-constant",
4906
+ "default": 1,
4907
+ minimum: 0,
4908
+ maximum: 1,
4909
+ experimental: true,
4910
+ expression: {
4911
+ interpolated: true,
4912
+ parameters: [
4913
+ "zoom",
4914
+ "measure-light"
4915
+ ],
4916
+ relaxZoomRestriction: true
4917
+ },
4918
+ transition: true,
4919
+ doc: "Snow particles movement factor.",
4920
+ "sdk-support": {
4921
+ "basic functionality": {
4922
+ android: "11.8.0",
4923
+ ios: "11.8.0"
4924
+ }
4925
+ }
4926
+ },
4927
+ color: {
4928
+ type: "color",
4929
+ "property-type": "data-constant",
4930
+ "default": "#ffffff",
4931
+ experimental: true,
4932
+ expression: {
4933
+ interpolated: true,
4934
+ parameters: [
4935
+ "zoom",
4936
+ "measure-light"
4937
+ ],
4938
+ relaxZoomRestriction: true
4939
+ },
4940
+ transition: true,
4941
+ doc: "Snow particles color.",
4942
+ "sdk-support": {
4943
+ "basic functionality": {
4944
+ android: "11.8.0",
4945
+ ios: "11.8.0"
4946
+ }
4947
+ }
4948
+ },
4949
+ opacity: {
4950
+ type: "number",
4951
+ "property-type": "data-constant",
4952
+ "default": 1,
4953
+ minimum: 0,
4954
+ maximum: 1,
4955
+ experimental: true,
4956
+ expression: {
4957
+ interpolated: true,
4958
+ parameters: [
4959
+ "zoom",
4960
+ "measure-light"
4961
+ ],
4962
+ relaxZoomRestriction: true
4963
+ },
4964
+ transition: true,
4965
+ doc: "Snow particles opacity.",
4966
+ "sdk-support": {
4967
+ "basic functionality": {
4968
+ android: "11.8.0",
4969
+ ios: "11.8.0"
4970
+ }
4971
+ }
4972
+ },
4973
+ vignette: {
4974
+ type: "number",
4975
+ "property-type": "data-constant",
4976
+ "default": 0,
4977
+ minimum: 0,
4978
+ maximum: 1,
4979
+ experimental: true,
4980
+ expression: {
4981
+ interpolated: true,
4982
+ parameters: [
4983
+ "zoom",
4984
+ "measure-light"
4985
+ ],
4986
+ relaxZoomRestriction: true
4987
+ },
4988
+ transition: true,
4989
+ doc: "Snow vignette screen-space effect.",
4990
+ "sdk-support": {
4991
+ "basic functionality": {
4992
+ android: "11.8.0",
4993
+ ios: "11.8.0"
4994
+ }
4995
+ }
4996
+ },
4997
+ centerThinning: {
4998
+ type: "number",
4999
+ "property-type": "data-constant",
5000
+ "default": 1,
5001
+ minimum: 0,
5002
+ maximum: 1,
5003
+ experimental: true,
5004
+ expression: {
5005
+ interpolated: true,
5006
+ parameters: [
5007
+ "zoom",
5008
+ "measure-light"
5009
+ ],
5010
+ relaxZoomRestriction: true
5011
+ },
5012
+ transition: true,
5013
+ doc: "Thinning factor of snow particles from center. 0 - no thinning. 1 - maximal central area thinning.",
5014
+ "sdk-support": {
5015
+ "basic functionality": {
5016
+ android: "11.8.0",
5017
+ ios: "11.8.0"
5018
+ }
5019
+ }
5020
+ },
5021
+ direction: {
5022
+ type: "array",
5023
+ "default": [
5024
+ 0,
5025
+ 90
5026
+ ],
5027
+ minimum: 0,
5028
+ maximum: 360,
5029
+ length: 2,
5030
+ value: "number",
5031
+ "property-type": "data-constant",
5032
+ transition: true,
5033
+ experimental: true,
5034
+ expression: {
5035
+ interpolated: true,
5036
+ parameters: [
5037
+ "zoom",
5038
+ "measure-light"
5039
+ ],
5040
+ relaxZoomRestriction: true
5041
+ },
5042
+ doc: "Main snow particles direction. Heading & pitch",
5043
+ example: [
5044
+ 0,
5045
+ 45
5046
+ ],
5047
+ "sdk-support": {
5048
+ "basic functionality": {
5049
+ android: "11.8.0",
5050
+ ios: "11.8.0"
5051
+ }
5052
+ }
5053
+ }
5054
+ };
5055
+ var rain = {
5056
+ density: {
5057
+ type: "number",
5058
+ "property-type": "data-constant",
5059
+ "default": 1,
5060
+ minimum: 0,
5061
+ maximum: 1,
5062
+ experimental: true,
5063
+ expression: {
5064
+ interpolated: true,
5065
+ parameters: [
5066
+ "zoom",
5067
+ "measure-light"
5068
+ ],
5069
+ relaxZoomRestriction: true
5070
+ },
5071
+ transition: true,
5072
+ doc: "Rain particles density.",
5073
+ "sdk-support": {
5074
+ "basic functionality": {
5075
+ android: "11.8.0",
5076
+ ios: "11.8.0"
5077
+ }
5078
+ }
5079
+ },
5080
+ intensity: {
5081
+ type: "number",
5082
+ "property-type": "data-constant",
5083
+ "default": 1,
5084
+ minimum: 0,
5085
+ maximum: 1,
5086
+ experimental: true,
5087
+ expression: {
5088
+ interpolated: true,
5089
+ parameters: [
5090
+ "zoom",
5091
+ "measure-light"
5092
+ ],
5093
+ relaxZoomRestriction: true
5094
+ },
5095
+ transition: true,
5096
+ doc: "Rain particles movement factor.",
5097
+ "sdk-support": {
5098
+ "basic functionality": {
5099
+ android: "11.8.0",
5100
+ ios: "11.8.0"
5101
+ }
5102
+ }
5103
+ },
5104
+ color: {
5105
+ type: "color",
5106
+ "property-type": "data-constant",
5107
+ "default": "#ffffff",
5108
+ experimental: true,
5109
+ expression: {
5110
+ interpolated: true,
5111
+ parameters: [
5112
+ "zoom",
5113
+ "measure-light"
5114
+ ],
5115
+ relaxZoomRestriction: true
5116
+ },
5117
+ transition: true,
5118
+ doc: "",
5119
+ "sdk-support": {
5120
+ "basic functionality": {
5121
+ android: "11.8.0",
5122
+ ios: "11.8.0"
5123
+ }
5124
+ }
5125
+ },
5126
+ opacity: {
5127
+ type: "number",
5128
+ "property-type": "data-constant",
5129
+ "default": 1,
5130
+ minimum: 0,
5131
+ maximum: 1,
5132
+ experimental: true,
5133
+ expression: {
5134
+ interpolated: true,
5135
+ parameters: [
5136
+ "zoom",
5137
+ "measure-light"
5138
+ ],
5139
+ relaxZoomRestriction: true
5140
+ },
5141
+ transition: true,
5142
+ doc: "Rain particles opacity.",
5143
+ "sdk-support": {
5144
+ "basic functionality": {
5145
+ android: "11.8.0",
5146
+ ios: "11.8.0"
5147
+ }
5148
+ }
5149
+ },
5150
+ vignette: {
5151
+ type: "number",
5152
+ "property-type": "data-constant",
5153
+ "default": 0,
5154
+ minimum: 0,
5155
+ maximum: 1,
5156
+ experimental: true,
5157
+ expression: {
5158
+ interpolated: true,
5159
+ parameters: [
5160
+ "zoom",
5161
+ "measure-light"
5162
+ ],
5163
+ relaxZoomRestriction: true
5164
+ },
5165
+ transition: true,
5166
+ doc: "Rain vignette screen-space effect.",
5167
+ "sdk-support": {
5168
+ "basic functionality": {
5169
+ android: "11.8.0",
5170
+ ios: "11.8.0"
5171
+ }
5172
+ }
5173
+ },
5174
+ centerThinning: {
5175
+ type: "number",
5176
+ "property-type": "data-constant",
5177
+ "default": 1,
5178
+ minimum: 0,
5179
+ maximum: 1,
5180
+ experimental: true,
5181
+ expression: {
5182
+ interpolated: true,
5183
+ parameters: [
5184
+ "zoom",
5185
+ "measure-light"
5186
+ ],
5187
+ relaxZoomRestriction: true
5188
+ },
5189
+ transition: true,
5190
+ doc: "Thinning factor of rain particles from center. 0 - no thinning. 1 - maximal central area thinning.",
5191
+ "sdk-support": {
5192
+ "basic functionality": {
5193
+ android: "11.8.0",
5194
+ ios: "11.8.0"
5195
+ }
5196
+ }
5197
+ },
5198
+ direction: {
5199
+ type: "array",
5200
+ "default": [
5201
+ 0,
5202
+ 80
5203
+ ],
5204
+ minimum: 0,
5205
+ maximum: 360,
5206
+ length: 2,
5207
+ value: "number",
5208
+ "property-type": "data-constant",
5209
+ transition: true,
5210
+ experimental: true,
5211
+ expression: {
5212
+ interpolated: true,
5213
+ parameters: [
5214
+ "zoom",
5215
+ "measure-light"
5216
+ ],
5217
+ relaxZoomRestriction: true
5218
+ },
5219
+ doc: "Main rain particles direction. Heading & pitch",
5220
+ example: [
5221
+ 0,
5222
+ 45
5223
+ ],
5224
+ "sdk-support": {
5225
+ "basic functionality": {
5226
+ android: "11.8.0",
5227
+ ios: "11.8.0"
5228
+ }
5229
+ }
5230
+ }
5231
+ };
4770
5232
  var camera = {
4771
5233
  "camera-projection": {
4772
5234
  doc: "Camera projection describes how 3D world geometry get projected into 2D screen",
@@ -8685,6 +9147,8 @@ var v8 = {
8685
9147
  expression: expression$1,
8686
9148
  expression_name: expression_name,
8687
9149
  fog: fog,
9150
+ snow: snow,
9151
+ rain: rain,
8688
9152
  camera: camera,
8689
9153
  colorTheme: colorTheme,
8690
9154
  light: light,
@@ -8890,6 +9354,56 @@ var v8 = {
8890
9354
  },
8891
9355
  "property-type": "data-driven"
8892
9356
  },
9357
+ "fill-extrusion-height-alignment": {
9358
+ type: "enum",
9359
+ experimental: true,
9360
+ values: {
9361
+ terrain: {
9362
+ doc: "The fill extrusion height follows terrain slope."
9363
+ },
9364
+ flat: {
9365
+ doc: "The fill extrusion height is flat over terrain."
9366
+ }
9367
+ },
9368
+ doc: "Controls the behavior of fill extrusion height over terrain",
9369
+ "default": "flat",
9370
+ requires: [
9371
+ "fill-extrusion-height"
9372
+ ],
9373
+ "sdk-support": {
9374
+ "basic functionality": {
9375
+ js: "3.8.0",
9376
+ android: "11.8.0",
9377
+ ios: "11.8.0"
9378
+ }
9379
+ },
9380
+ "property-type": "data-constant"
9381
+ },
9382
+ "fill-extrusion-base-alignment": {
9383
+ type: "enum",
9384
+ experimental: true,
9385
+ values: {
9386
+ terrain: {
9387
+ doc: "The fill extrusion base follows terrain slope."
9388
+ },
9389
+ flat: {
9390
+ doc: "The fill extrusion base is flat over terrain."
9391
+ }
9392
+ },
9393
+ doc: "Controls the behavior of fill extrusion base over terrain",
9394
+ "default": "terrain",
9395
+ requires: [
9396
+ "fill-extrusion-base"
9397
+ ],
9398
+ "sdk-support": {
9399
+ "basic functionality": {
9400
+ js: "3.8.0",
9401
+ android: "11.8.0",
9402
+ ios: "11.8.0"
9403
+ }
9404
+ },
9405
+ "property-type": "data-constant"
9406
+ },
8893
9407
  "fill-extrusion-vertical-gradient": {
8894
9408
  type: "boolean",
8895
9409
  "default": true,
@@ -14592,13 +15106,21 @@ class At {
14592
15106
  if (index < 0) {
14593
15107
  throw new RuntimeError(`Array index out of bounds: ${ index } < 0.`);
14594
15108
  }
14595
- if (index >= array2.length) {
15109
+ if (index > array2.length - 1) {
14596
15110
  throw new RuntimeError(`Array index out of bounds: ${ index } > ${ array2.length - 1 }.`);
14597
15111
  }
14598
- if (index !== Math.floor(index)) {
14599
- throw new RuntimeError(`Array index must be an integer, but found ${ index } instead.`);
15112
+ if (index === Math.floor(index)) {
15113
+ return array2[index];
15114
+ }
15115
+ const lowerIndex = Math.floor(index);
15116
+ const upperIndex = Math.ceil(index);
15117
+ const lowerValue = array2[lowerIndex];
15118
+ const upperValue = array2[upperIndex];
15119
+ if (typeof lowerValue !== 'number' || typeof upperValue !== 'number') {
15120
+ throw new RuntimeError(`Cannot interpolate between non-number values at index ${ index }.`);
14600
15121
  }
14601
- return array2[index];
15122
+ const fraction = index - lowerIndex;
15123
+ return lowerValue * (1 - fraction) + upperValue * fraction;
14602
15124
  }
14603
15125
  eachChild(fn) {
14604
15126
  fn(this.index);