@mapbox/mapbox-gl-style-spec 14.8.0 → 14.9.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/diff.ts +16 -0
- package/dist/index.cjs +807 -130
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +162 -11
- package/dist/index.es.js +807 -130
- package/dist/index.es.js.map +1 -1
- package/expression/definitions/coercion.ts +1 -1
- package/expression/definitions/config.ts +1 -1
- package/expression/definitions/image.ts +184 -14
- package/expression/definitions/index.ts +7 -0
- package/expression/definitions/interpolate.ts +54 -13
- package/expression/expression.ts +1 -0
- package/expression/index.ts +12 -6
- package/expression/types/formatted.ts +1 -1
- package/expression/types/image_id_with_options.ts +54 -0
- package/expression/types/resolved_image.ts +49 -7
- package/expression/values.ts +9 -7
- package/feature_filter/index.ts +1 -0
- package/function/index.ts +1 -1
- package/group_by_layout.ts +35 -3
- package/package.json +1 -1
- package/reference/v8.json +357 -70
- package/types.ts +118 -9
- package/util/color.ts +62 -1
- package/validate/validate_fog.ts +10 -1
- package/validate/validate_function.ts +1 -1
- package/validate/validate_light.ts +10 -1
- package/validate/validate_lights.ts +11 -1
- package/validate/validate_property.ts +11 -0
- package/validate/validate_rain.ts +47 -0
- package/validate/validate_snow.ts +47 -0
- package/validate/validate_terrain.ts +11 -2
- package/validate_style.min.ts +4 -0
package/types.ts
CHANGED
|
@@ -88,8 +88,20 @@ export type StyleSpecification = {
|
|
|
88
88
|
"lights"?: Array<LightsSpecification>,
|
|
89
89
|
"terrain"?: TerrainSpecification | null | undefined,
|
|
90
90
|
"fog"?: FogSpecification,
|
|
91
|
+
/**
|
|
92
|
+
* @experimental This property is experimental and subject to change in future versions.
|
|
93
|
+
*/
|
|
94
|
+
"snow"?: SnowSpecification,
|
|
95
|
+
/**
|
|
96
|
+
* @experimental This property is experimental and subject to change in future versions.
|
|
97
|
+
*/
|
|
98
|
+
"rain"?: RainSpecification,
|
|
91
99
|
"camera"?: CameraSpecification,
|
|
92
100
|
"color-theme"?: ColorThemeSpecification,
|
|
101
|
+
/**
|
|
102
|
+
* @experimental This property is experimental and subject to change in future versions.
|
|
103
|
+
*/
|
|
104
|
+
"indoor"?: IndoorSpecification,
|
|
93
105
|
"imports"?: Array<ImportSpecification>,
|
|
94
106
|
"schema"?: SchemaSpecification,
|
|
95
107
|
"sources": SourcesSpecification,
|
|
@@ -119,6 +131,7 @@ export type LightSpecification = {
|
|
|
119
131
|
"position-transition"?: TransitionSpecification,
|
|
120
132
|
"color"?: PropertyValueSpecification<ColorSpecification>,
|
|
121
133
|
"color-transition"?: TransitionSpecification,
|
|
134
|
+
"color-use-theme"?: PropertyValueSpecification<string>,
|
|
122
135
|
"intensity"?: PropertyValueSpecification<number>,
|
|
123
136
|
"intensity-transition"?: TransitionSpecification
|
|
124
137
|
}
|
|
@@ -134,10 +147,13 @@ export type FogSpecification = {
|
|
|
134
147
|
"range-transition"?: TransitionSpecification,
|
|
135
148
|
"color"?: PropertyValueSpecification<ColorSpecification>,
|
|
136
149
|
"color-transition"?: TransitionSpecification,
|
|
150
|
+
"color-use-theme"?: PropertyValueSpecification<string>,
|
|
137
151
|
"high-color"?: PropertyValueSpecification<ColorSpecification>,
|
|
138
152
|
"high-color-transition"?: TransitionSpecification,
|
|
153
|
+
"high-color-use-theme"?: PropertyValueSpecification<string>,
|
|
139
154
|
"space-color"?: PropertyValueSpecification<ColorSpecification>,
|
|
140
155
|
"space-color-transition"?: TransitionSpecification,
|
|
156
|
+
"space-color-use-theme"?: PropertyValueSpecification<string>,
|
|
141
157
|
"horizon-blend"?: PropertyValueSpecification<number>,
|
|
142
158
|
"horizon-blend-transition"?: TransitionSpecification,
|
|
143
159
|
"star-intensity"?: PropertyValueSpecification<number>,
|
|
@@ -146,6 +162,54 @@ export type FogSpecification = {
|
|
|
146
162
|
"vertical-range-transition"?: TransitionSpecification
|
|
147
163
|
}
|
|
148
164
|
|
|
165
|
+
export type SnowSpecification = {
|
|
166
|
+
"density"?: PropertyValueSpecification<number>,
|
|
167
|
+
"density-transition"?: TransitionSpecification,
|
|
168
|
+
"intensity"?: PropertyValueSpecification<number>,
|
|
169
|
+
"intensity-transition"?: TransitionSpecification,
|
|
170
|
+
"color"?: PropertyValueSpecification<ColorSpecification>,
|
|
171
|
+
"color-transition"?: TransitionSpecification,
|
|
172
|
+
"color-use-theme"?: PropertyValueSpecification<string>,
|
|
173
|
+
"opacity"?: PropertyValueSpecification<number>,
|
|
174
|
+
"opacity-transition"?: TransitionSpecification,
|
|
175
|
+
"vignette"?: PropertyValueSpecification<number>,
|
|
176
|
+
"vignette-transition"?: TransitionSpecification,
|
|
177
|
+
"vignette-color"?: PropertyValueSpecification<ColorSpecification>,
|
|
178
|
+
"vignette-color-transition"?: TransitionSpecification,
|
|
179
|
+
"vignette-color-use-theme"?: PropertyValueSpecification<string>,
|
|
180
|
+
"center-thinning"?: PropertyValueSpecification<number>,
|
|
181
|
+
"center-thinning-transition"?: TransitionSpecification,
|
|
182
|
+
"direction"?: PropertyValueSpecification<[number, number]>,
|
|
183
|
+
"direction-transition"?: TransitionSpecification,
|
|
184
|
+
"flake-size"?: PropertyValueSpecification<number>,
|
|
185
|
+
"flake-size-transition"?: TransitionSpecification
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export type RainSpecification = {
|
|
189
|
+
"density"?: PropertyValueSpecification<number>,
|
|
190
|
+
"density-transition"?: TransitionSpecification,
|
|
191
|
+
"intensity"?: PropertyValueSpecification<number>,
|
|
192
|
+
"intensity-transition"?: TransitionSpecification,
|
|
193
|
+
"color"?: PropertyValueSpecification<ColorSpecification>,
|
|
194
|
+
"color-transition"?: TransitionSpecification,
|
|
195
|
+
"color-use-theme"?: PropertyValueSpecification<string>,
|
|
196
|
+
"opacity"?: PropertyValueSpecification<number>,
|
|
197
|
+
"opacity-transition"?: TransitionSpecification,
|
|
198
|
+
"vignette"?: PropertyValueSpecification<number>,
|
|
199
|
+
"vignette-transition"?: TransitionSpecification,
|
|
200
|
+
"vignette-color"?: PropertyValueSpecification<ColorSpecification>,
|
|
201
|
+
"vignette-color-transition"?: TransitionSpecification,
|
|
202
|
+
"vignette-color-use-theme"?: PropertyValueSpecification<string>,
|
|
203
|
+
"center-thinning"?: PropertyValueSpecification<number>,
|
|
204
|
+
"center-thinning-transition"?: TransitionSpecification,
|
|
205
|
+
"direction"?: PropertyValueSpecification<[number, number]>,
|
|
206
|
+
"direction-transition"?: TransitionSpecification,
|
|
207
|
+
"droplet-size"?: PropertyValueSpecification<[number, number]>,
|
|
208
|
+
"droplet-size-transition"?: TransitionSpecification,
|
|
209
|
+
"distortion-strength"?: PropertyValueSpecification<number>,
|
|
210
|
+
"distortion-strength-transition"?: TransitionSpecification
|
|
211
|
+
}
|
|
212
|
+
|
|
149
213
|
export type CameraSpecification = {
|
|
150
214
|
"camera-projection"?: PropertyValueSpecification<"perspective" | "orthographic">,
|
|
151
215
|
"camera-projection-transition"?: TransitionSpecification
|
|
@@ -165,7 +229,19 @@ export type ImportSpecification = {
|
|
|
165
229
|
"id": string,
|
|
166
230
|
"url": string,
|
|
167
231
|
"config"?: ConfigSpecification,
|
|
168
|
-
"data"?: StyleSpecification
|
|
232
|
+
"data"?: StyleSpecification,
|
|
233
|
+
"color-theme"?: ColorThemeSpecification | null | undefined
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
export type IndoorSpecification = {
|
|
237
|
+
/**
|
|
238
|
+
* @experimental This property is experimental and subject to change in future versions.
|
|
239
|
+
*/
|
|
240
|
+
"floorplanFeaturesetId"?: ExpressionSpecification,
|
|
241
|
+
/**
|
|
242
|
+
* @experimental This property is experimental and subject to change in future versions.
|
|
243
|
+
*/
|
|
244
|
+
"buildingFeaturesetId"?: ExpressionSpecification
|
|
169
245
|
}
|
|
170
246
|
|
|
171
247
|
export type ConfigSpecification = {
|
|
@@ -333,6 +409,7 @@ export type AmbientLightSpecification = {
|
|
|
333
409
|
"properties"?: {
|
|
334
410
|
"color"?: PropertyValueSpecification<ColorSpecification>,
|
|
335
411
|
"color-transition"?: TransitionSpecification,
|
|
412
|
+
"color-use-theme"?: PropertyValueSpecification<string>,
|
|
336
413
|
"intensity"?: PropertyValueSpecification<number>,
|
|
337
414
|
"intensity-transition"?: TransitionSpecification
|
|
338
415
|
},
|
|
@@ -346,9 +423,14 @@ export type DirectionalLightSpecification = {
|
|
|
346
423
|
"direction-transition"?: TransitionSpecification,
|
|
347
424
|
"color"?: PropertyValueSpecification<ColorSpecification>,
|
|
348
425
|
"color-transition"?: TransitionSpecification,
|
|
426
|
+
"color-use-theme"?: PropertyValueSpecification<string>,
|
|
349
427
|
"intensity"?: PropertyValueSpecification<number>,
|
|
350
428
|
"intensity-transition"?: TransitionSpecification,
|
|
351
429
|
"cast-shadows"?: boolean,
|
|
430
|
+
/**
|
|
431
|
+
* @experimental This property is experimental and subject to change in future versions.
|
|
432
|
+
*/
|
|
433
|
+
"shadow-quality"?: PropertyValueSpecification<number>,
|
|
352
434
|
"shadow-intensity"?: PropertyValueSpecification<number>,
|
|
353
435
|
"shadow-intensity-transition"?: TransitionSpecification
|
|
354
436
|
},
|
|
@@ -363,6 +445,7 @@ export type FlatLightSpecification = {
|
|
|
363
445
|
"position-transition"?: TransitionSpecification,
|
|
364
446
|
"color"?: PropertyValueSpecification<ColorSpecification>,
|
|
365
447
|
"color-transition"?: TransitionSpecification,
|
|
448
|
+
"color-use-theme"?: PropertyValueSpecification<string>,
|
|
366
449
|
"intensity"?: PropertyValueSpecification<number>,
|
|
367
450
|
"intensity-transition"?: TransitionSpecification
|
|
368
451
|
},
|
|
@@ -398,8 +481,10 @@ export type FillLayerSpecification = {
|
|
|
398
481
|
"fill-opacity-transition"?: TransitionSpecification,
|
|
399
482
|
"fill-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
400
483
|
"fill-color-transition"?: TransitionSpecification,
|
|
484
|
+
"fill-color-use-theme"?: PropertyValueSpecification<string>,
|
|
401
485
|
"fill-outline-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
402
486
|
"fill-outline-color-transition"?: TransitionSpecification,
|
|
487
|
+
"fill-outline-color-use-theme"?: PropertyValueSpecification<string>,
|
|
403
488
|
"fill-translate"?: PropertyValueSpecification<[number, number]>,
|
|
404
489
|
"fill-translate-transition"?: TransitionSpecification,
|
|
405
490
|
"fill-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
|
|
@@ -449,13 +534,18 @@ export type LineLayerSpecification = {
|
|
|
449
534
|
* @experimental This property is experimental and subject to change in future versions.
|
|
450
535
|
*/
|
|
451
536
|
"line-cross-slope"?: ExpressionSpecification,
|
|
452
|
-
"visibility"?: "visible" | "none" | ExpressionSpecification
|
|
537
|
+
"visibility"?: "visible" | "none" | ExpressionSpecification,
|
|
538
|
+
/**
|
|
539
|
+
* @experimental This property is experimental and subject to change in future versions.
|
|
540
|
+
*/
|
|
541
|
+
"line-width-unit"?: PropertyValueSpecification<"pixels" | "meters">
|
|
453
542
|
},
|
|
454
543
|
"paint"?: {
|
|
455
544
|
"line-opacity"?: DataDrivenPropertyValueSpecification<number>,
|
|
456
545
|
"line-opacity-transition"?: TransitionSpecification,
|
|
457
546
|
"line-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
458
547
|
"line-color-transition"?: TransitionSpecification,
|
|
548
|
+
"line-color-use-theme"?: PropertyValueSpecification<string>,
|
|
459
549
|
"line-translate"?: PropertyValueSpecification<[number, number]>,
|
|
460
550
|
"line-translate-transition"?: TransitionSpecification,
|
|
461
551
|
"line-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
|
|
@@ -470,6 +560,7 @@ export type LineLayerSpecification = {
|
|
|
470
560
|
"line-dasharray"?: DataDrivenPropertyValueSpecification<Array<number>>,
|
|
471
561
|
"line-pattern"?: DataDrivenPropertyValueSpecification<ResolvedImageSpecification>,
|
|
472
562
|
"line-gradient"?: ExpressionSpecification,
|
|
563
|
+
"line-gradient-use-theme"?: PropertyValueSpecification<string>,
|
|
473
564
|
"line-trim-offset"?: [number, number],
|
|
474
565
|
/**
|
|
475
566
|
* @experimental This property is experimental and subject to change in future versions.
|
|
@@ -477,12 +568,14 @@ export type LineLayerSpecification = {
|
|
|
477
568
|
"line-trim-fade-range"?: PropertyValueSpecification<[number, number]>,
|
|
478
569
|
"line-trim-color"?: PropertyValueSpecification<ColorSpecification>,
|
|
479
570
|
"line-trim-color-transition"?: TransitionSpecification,
|
|
571
|
+
"line-trim-color-use-theme"?: PropertyValueSpecification<string>,
|
|
480
572
|
"line-emissive-strength"?: PropertyValueSpecification<number>,
|
|
481
573
|
"line-emissive-strength-transition"?: TransitionSpecification,
|
|
482
574
|
"line-border-width"?: DataDrivenPropertyValueSpecification<number>,
|
|
483
575
|
"line-border-width-transition"?: TransitionSpecification,
|
|
484
576
|
"line-border-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
485
577
|
"line-border-color-transition"?: TransitionSpecification,
|
|
578
|
+
"line-border-color-use-theme"?: PropertyValueSpecification<string>,
|
|
486
579
|
"line-occlusion-opacity"?: PropertyValueSpecification<number>,
|
|
487
580
|
"line-occlusion-opacity-transition"?: TransitionSpecification
|
|
488
581
|
}
|
|
@@ -576,8 +669,10 @@ export type SymbolLayerSpecification = {
|
|
|
576
669
|
"text-emissive-strength-transition"?: TransitionSpecification,
|
|
577
670
|
"icon-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
578
671
|
"icon-color-transition"?: TransitionSpecification,
|
|
672
|
+
"icon-color-use-theme"?: PropertyValueSpecification<string>,
|
|
579
673
|
"icon-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
580
674
|
"icon-halo-color-transition"?: TransitionSpecification,
|
|
675
|
+
"icon-halo-color-use-theme"?: PropertyValueSpecification<string>,
|
|
581
676
|
"icon-halo-width"?: DataDrivenPropertyValueSpecification<number>,
|
|
582
677
|
"icon-halo-width-transition"?: TransitionSpecification,
|
|
583
678
|
"icon-halo-blur"?: DataDrivenPropertyValueSpecification<number>,
|
|
@@ -593,8 +688,10 @@ export type SymbolLayerSpecification = {
|
|
|
593
688
|
"text-occlusion-opacity-transition"?: TransitionSpecification,
|
|
594
689
|
"text-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
595
690
|
"text-color-transition"?: TransitionSpecification,
|
|
691
|
+
"text-color-use-theme"?: PropertyValueSpecification<string>,
|
|
596
692
|
"text-halo-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
597
693
|
"text-halo-color-transition"?: TransitionSpecification,
|
|
694
|
+
"text-halo-color-use-theme"?: PropertyValueSpecification<string>,
|
|
598
695
|
"text-halo-width"?: DataDrivenPropertyValueSpecification<number>,
|
|
599
696
|
"text-halo-width-transition"?: TransitionSpecification,
|
|
600
697
|
"text-halo-blur"?: DataDrivenPropertyValueSpecification<number>,
|
|
@@ -640,6 +737,7 @@ export type CircleLayerSpecification = {
|
|
|
640
737
|
"circle-radius-transition"?: TransitionSpecification,
|
|
641
738
|
"circle-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
642
739
|
"circle-color-transition"?: TransitionSpecification,
|
|
740
|
+
"circle-color-use-theme"?: PropertyValueSpecification<string>,
|
|
643
741
|
"circle-blur"?: DataDrivenPropertyValueSpecification<number>,
|
|
644
742
|
"circle-blur-transition"?: TransitionSpecification,
|
|
645
743
|
"circle-opacity"?: DataDrivenPropertyValueSpecification<number>,
|
|
@@ -653,6 +751,7 @@ export type CircleLayerSpecification = {
|
|
|
653
751
|
"circle-stroke-width-transition"?: TransitionSpecification,
|
|
654
752
|
"circle-stroke-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
655
753
|
"circle-stroke-color-transition"?: TransitionSpecification,
|
|
754
|
+
"circle-stroke-color-use-theme"?: PropertyValueSpecification<string>,
|
|
656
755
|
"circle-stroke-opacity"?: DataDrivenPropertyValueSpecification<number>,
|
|
657
756
|
"circle-stroke-opacity-transition"?: TransitionSpecification,
|
|
658
757
|
"circle-emissive-strength"?: PropertyValueSpecification<number>,
|
|
@@ -690,6 +789,7 @@ export type HeatmapLayerSpecification = {
|
|
|
690
789
|
"heatmap-intensity"?: PropertyValueSpecification<number>,
|
|
691
790
|
"heatmap-intensity-transition"?: TransitionSpecification,
|
|
692
791
|
"heatmap-color"?: ExpressionSpecification,
|
|
792
|
+
"heatmap-color-use-theme"?: PropertyValueSpecification<string>,
|
|
693
793
|
"heatmap-opacity"?: PropertyValueSpecification<number>,
|
|
694
794
|
"heatmap-opacity-transition"?: TransitionSpecification
|
|
695
795
|
}
|
|
@@ -727,6 +827,7 @@ export type FillExtrusionLayerSpecification = {
|
|
|
727
827
|
"fill-extrusion-opacity-transition"?: TransitionSpecification,
|
|
728
828
|
"fill-extrusion-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
729
829
|
"fill-extrusion-color-transition"?: TransitionSpecification,
|
|
830
|
+
"fill-extrusion-color-use-theme"?: PropertyValueSpecification<string>,
|
|
730
831
|
"fill-extrusion-translate"?: PropertyValueSpecification<[number, number]>,
|
|
731
832
|
"fill-extrusion-translate-transition"?: TransitionSpecification,
|
|
732
833
|
"fill-extrusion-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">,
|
|
@@ -756,6 +857,7 @@ export type FillExtrusionLayerSpecification = {
|
|
|
756
857
|
"fill-extrusion-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification,
|
|
757
858
|
"fill-extrusion-flood-light-color"?: PropertyValueSpecification<ColorSpecification>,
|
|
758
859
|
"fill-extrusion-flood-light-color-transition"?: TransitionSpecification,
|
|
860
|
+
"fill-extrusion-flood-light-color-use-theme"?: PropertyValueSpecification<string>,
|
|
759
861
|
"fill-extrusion-flood-light-intensity"?: PropertyValueSpecification<number>,
|
|
760
862
|
"fill-extrusion-flood-light-intensity-transition"?: TransitionSpecification,
|
|
761
863
|
"fill-extrusion-flood-light-wall-radius"?: DataDrivenPropertyValueSpecification<number>,
|
|
@@ -806,6 +908,7 @@ export type RasterLayerSpecification = {
|
|
|
806
908
|
"raster-opacity"?: PropertyValueSpecification<number>,
|
|
807
909
|
"raster-opacity-transition"?: TransitionSpecification,
|
|
808
910
|
"raster-color"?: ExpressionSpecification,
|
|
911
|
+
"raster-color-use-theme"?: PropertyValueSpecification<string>,
|
|
809
912
|
"raster-color-mix"?: PropertyValueSpecification<[number, number, number, number]>,
|
|
810
913
|
"raster-color-mix-transition"?: TransitionSpecification,
|
|
811
914
|
"raster-color-range"?: PropertyValueSpecification<[number, number]>,
|
|
@@ -860,6 +963,7 @@ export type RasterParticleLayerSpecification = {
|
|
|
860
963
|
"raster-particle-array-band"?: string,
|
|
861
964
|
"raster-particle-count"?: number,
|
|
862
965
|
"raster-particle-color"?: ExpressionSpecification,
|
|
966
|
+
"raster-particle-color-use-theme"?: PropertyValueSpecification<string>,
|
|
863
967
|
"raster-particle-max-speed"?: number,
|
|
864
968
|
"raster-particle-speed-factor"?: PropertyValueSpecification<number>,
|
|
865
969
|
"raster-particle-speed-factor-transition"?: TransitionSpecification,
|
|
@@ -901,10 +1005,13 @@ export type HillshadeLayerSpecification = {
|
|
|
901
1005
|
"hillshade-exaggeration-transition"?: TransitionSpecification,
|
|
902
1006
|
"hillshade-shadow-color"?: PropertyValueSpecification<ColorSpecification>,
|
|
903
1007
|
"hillshade-shadow-color-transition"?: TransitionSpecification,
|
|
1008
|
+
"hillshade-shadow-color-use-theme"?: PropertyValueSpecification<string>,
|
|
904
1009
|
"hillshade-highlight-color"?: PropertyValueSpecification<ColorSpecification>,
|
|
905
1010
|
"hillshade-highlight-color-transition"?: TransitionSpecification,
|
|
1011
|
+
"hillshade-highlight-color-use-theme"?: PropertyValueSpecification<string>,
|
|
906
1012
|
"hillshade-accent-color"?: PropertyValueSpecification<ColorSpecification>,
|
|
907
1013
|
"hillshade-accent-color-transition"?: TransitionSpecification,
|
|
1014
|
+
"hillshade-accent-color-use-theme"?: PropertyValueSpecification<string>,
|
|
908
1015
|
"hillshade-emissive-strength"?: PropertyValueSpecification<number>,
|
|
909
1016
|
"hillshade-emissive-strength-transition"?: TransitionSpecification
|
|
910
1017
|
}
|
|
@@ -935,7 +1042,7 @@ export type ModelLayerSpecification = {
|
|
|
935
1042
|
"model-id"?: DataDrivenPropertyValueSpecification<string>
|
|
936
1043
|
},
|
|
937
1044
|
"paint"?: {
|
|
938
|
-
"model-opacity"?:
|
|
1045
|
+
"model-opacity"?: DataDrivenPropertyValueSpecification<number>,
|
|
939
1046
|
"model-opacity-transition"?: TransitionSpecification,
|
|
940
1047
|
"model-rotation"?: DataDrivenPropertyValueSpecification<[number, number, number]>,
|
|
941
1048
|
"model-rotation-transition"?: TransitionSpecification,
|
|
@@ -945,6 +1052,7 @@ export type ModelLayerSpecification = {
|
|
|
945
1052
|
"model-translation-transition"?: TransitionSpecification,
|
|
946
1053
|
"model-color"?: DataDrivenPropertyValueSpecification<ColorSpecification>,
|
|
947
1054
|
"model-color-transition"?: TransitionSpecification,
|
|
1055
|
+
"model-color-use-theme"?: PropertyValueSpecification<string>,
|
|
948
1056
|
"model-color-mix-intensity"?: DataDrivenPropertyValueSpecification<number>,
|
|
949
1057
|
"model-color-mix-intensity-transition"?: TransitionSpecification,
|
|
950
1058
|
"model-type"?: "common-3d" | "location-indicator",
|
|
@@ -987,9 +1095,13 @@ export type BackgroundLayerSpecification = {
|
|
|
987
1095
|
"visibility"?: "visible" | "none" | ExpressionSpecification
|
|
988
1096
|
},
|
|
989
1097
|
"paint"?: {
|
|
1098
|
+
/**
|
|
1099
|
+
* @experimental This property is experimental and subject to change in future versions.
|
|
1100
|
+
*/
|
|
990
1101
|
"background-pitch-alignment"?: "map" | "viewport" | ExpressionSpecification,
|
|
991
1102
|
"background-color"?: PropertyValueSpecification<ColorSpecification>,
|
|
992
1103
|
"background-color-transition"?: TransitionSpecification,
|
|
1104
|
+
"background-color-use-theme"?: PropertyValueSpecification<string>,
|
|
993
1105
|
"background-pattern"?: PropertyValueSpecification<ResolvedImageSpecification>,
|
|
994
1106
|
"background-opacity"?: PropertyValueSpecification<number>,
|
|
995
1107
|
"background-opacity-transition"?: TransitionSpecification,
|
|
@@ -1028,8 +1140,11 @@ export type SkyLayerSpecification = {
|
|
|
1028
1140
|
"sky-gradient-center"?: PropertyValueSpecification<[number, number]>,
|
|
1029
1141
|
"sky-gradient-radius"?: PropertyValueSpecification<number>,
|
|
1030
1142
|
"sky-gradient"?: ExpressionSpecification,
|
|
1143
|
+
"sky-gradient-use-theme"?: PropertyValueSpecification<string>,
|
|
1031
1144
|
"sky-atmosphere-halo-color"?: ColorSpecification,
|
|
1145
|
+
"sky-atmosphere-halo-color-use-theme"?: PropertyValueSpecification<string>,
|
|
1032
1146
|
"sky-atmosphere-color"?: ColorSpecification,
|
|
1147
|
+
"sky-atmosphere-color-use-theme"?: PropertyValueSpecification<string>,
|
|
1033
1148
|
"sky-opacity"?: PropertyValueSpecification<number>,
|
|
1034
1149
|
"sky-opacity-transition"?: TransitionSpecification
|
|
1035
1150
|
}
|
|
@@ -1070,13 +1185,7 @@ export type ClipLayerSpecification = {
|
|
|
1070
1185
|
"maxzoom"?: number,
|
|
1071
1186
|
"filter"?: FilterSpecification,
|
|
1072
1187
|
"layout"?: {
|
|
1073
|
-
/**
|
|
1074
|
-
* @experimental This property is experimental and subject to change in future versions.
|
|
1075
|
-
*/
|
|
1076
1188
|
"clip-layer-types"?: ExpressionSpecification,
|
|
1077
|
-
/**
|
|
1078
|
-
* @experimental This property is experimental and subject to change in future versions.
|
|
1079
|
-
*/
|
|
1080
1189
|
"clip-layer-scope"?: ExpressionSpecification
|
|
1081
1190
|
},
|
|
1082
1191
|
"paint"?: never
|
package/util/color.ts
CHANGED
|
@@ -73,7 +73,7 @@ class Color {
|
|
|
73
73
|
* var translucentGreen = new Color.parse('rgba(26, 207, 26, .73)');
|
|
74
74
|
* translucentGreen.toString(); // = "rgba(26,207,26,0.73)"
|
|
75
75
|
*/
|
|
76
|
-
|
|
76
|
+
toStringPremultipliedAlpha(): string {
|
|
77
77
|
const [r, g, b, a] = this.a === 0 ? [0, 0, 0, 0] : [
|
|
78
78
|
this.r * 255 / this.a,
|
|
79
79
|
this.g * 255 / this.a,
|
|
@@ -83,10 +83,24 @@ class Color {
|
|
|
83
83
|
return `rgba(${Math.round(r)},${Math.round(g)},${Math.round(b)},${a})`;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
+
toString(): string {
|
|
87
|
+
const [r, g, b, a] = [
|
|
88
|
+
this.r,
|
|
89
|
+
this.g,
|
|
90
|
+
this.b,
|
|
91
|
+
this.a
|
|
92
|
+
];
|
|
93
|
+
return `rgba(${Math.round(r * 255)},${Math.round(g * 255)},${Math.round(b * 255)},${a})`;
|
|
94
|
+
}
|
|
95
|
+
|
|
86
96
|
toRenderColor(lut: LUT | null): RenderColor {
|
|
87
97
|
const {r, g, b, a} = this;
|
|
88
98
|
return new RenderColor(lut, r, g, b, a);
|
|
89
99
|
}
|
|
100
|
+
|
|
101
|
+
clone(): Color {
|
|
102
|
+
return new Color(this.r, this.g, this.b, this.a);
|
|
103
|
+
}
|
|
90
104
|
}
|
|
91
105
|
|
|
92
106
|
/**
|
|
@@ -179,6 +193,53 @@ export class RenderColor {
|
|
|
179
193
|
];
|
|
180
194
|
}
|
|
181
195
|
|
|
196
|
+
/**
|
|
197
|
+
* Returns an HSLA array of values representing the color, unpremultiplied by A.
|
|
198
|
+
*
|
|
199
|
+
* @returns An array of HSLA color values.
|
|
200
|
+
*/
|
|
201
|
+
toHslaArray(): [number, number, number, number] {
|
|
202
|
+
if (this.a === 0) {
|
|
203
|
+
return [0, 0, 0, 0];
|
|
204
|
+
}
|
|
205
|
+
const {r, g, b, a} = this;
|
|
206
|
+
|
|
207
|
+
const red = Math.min(Math.max(r / a, 0.0), 1.0);
|
|
208
|
+
const green = Math.min(Math.max(g / a, 0.0), 1.0);
|
|
209
|
+
const blue = Math.min(Math.max(b / a, 0.0), 1.0);
|
|
210
|
+
|
|
211
|
+
const min = Math.min(red, green, blue);
|
|
212
|
+
const max = Math.max(red, green, blue);
|
|
213
|
+
|
|
214
|
+
const l = (min + max) / 2;
|
|
215
|
+
|
|
216
|
+
if (min === max) {
|
|
217
|
+
return [0, 0, l * 100, a];
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
const delta = max - min;
|
|
221
|
+
|
|
222
|
+
const s = l > 0.5 ? delta / (2 - max - min) : delta / (max + min);
|
|
223
|
+
|
|
224
|
+
let h = 0;
|
|
225
|
+
if (max === red) {
|
|
226
|
+
h = (green - blue) / delta + (green < blue ? 6 : 0);
|
|
227
|
+
} else if (max === green) {
|
|
228
|
+
h = (blue - red) / delta + 2;
|
|
229
|
+
} else if (max === blue) {
|
|
230
|
+
h = (red - green) / delta + 4;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
h *= 60;
|
|
234
|
+
|
|
235
|
+
return [
|
|
236
|
+
Math.min(Math.max(h, 0), 360),
|
|
237
|
+
Math.min(Math.max(s * 100, 0), 100),
|
|
238
|
+
Math.min(Math.max(l * 100, 0), 100),
|
|
239
|
+
a
|
|
240
|
+
];
|
|
241
|
+
}
|
|
242
|
+
|
|
182
243
|
/**
|
|
183
244
|
* Returns a RGBA array of float values representing the color, unpremultiplied by A.
|
|
184
245
|
*
|
package/validate/validate_fog.ts
CHANGED
|
@@ -21,8 +21,17 @@ export default function validateFog(options: ValidationOptions): Array<Validatio
|
|
|
21
21
|
|
|
22
22
|
for (const key in fog) {
|
|
23
23
|
const transitionMatch = key.match(/^(.*)-transition$/);
|
|
24
|
+
const useThemeMatch = key.match(/^(.*)-use-theme$/);
|
|
24
25
|
|
|
25
|
-
if (
|
|
26
|
+
if (useThemeMatch && fogSpec[useThemeMatch[1]]) {
|
|
27
|
+
errors = errors.concat(validate({
|
|
28
|
+
key,
|
|
29
|
+
value: fog[key],
|
|
30
|
+
valueSpec: {type:'string'},
|
|
31
|
+
style,
|
|
32
|
+
styleSpec
|
|
33
|
+
}));
|
|
34
|
+
} else if (transitionMatch && fogSpec[transitionMatch[1]] && fogSpec[transitionMatch[1]].transition) {
|
|
26
35
|
errors = errors.concat(validate({
|
|
27
36
|
key,
|
|
28
37
|
value: fog[key],
|
|
@@ -184,7 +184,7 @@ export default function validateFunction(options: ValidationOptions): any {
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
if (functionType === 'categorical' && type === 'number' && (typeof value !== 'number' || !isFinite(value) || Math.floor(value) !== value)) {
|
|
187
|
-
return [new ValidationError(options.key, reportValue, `integer expected, found ${String(value)}`)];
|
|
187
|
+
return [new ValidationError(options.key, reportValue, `integer expected, found ${String(value as number)}`)];
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
if (functionType !== 'categorical' && type === 'number' && typeof value === 'number' && typeof previousStopDomainValue === 'number' && previousStopDomainValue !== undefined && value < previousStopDomainValue) {
|
|
@@ -22,8 +22,17 @@ export default function validateLight(options: ValidationOptions): Array<Validat
|
|
|
22
22
|
|
|
23
23
|
for (const key in light) {
|
|
24
24
|
const transitionMatch = key.match(/^(.*)-transition$/);
|
|
25
|
+
const useThemeMatch = key.match(/^(.*)-use-theme$/);
|
|
25
26
|
|
|
26
|
-
if (
|
|
27
|
+
if (useThemeMatch && lightSpec[useThemeMatch[1]]) {
|
|
28
|
+
errors = errors.concat(validate({
|
|
29
|
+
key,
|
|
30
|
+
value: light[key],
|
|
31
|
+
valueSpec: {type:'string'},
|
|
32
|
+
style,
|
|
33
|
+
styleSpec
|
|
34
|
+
}));
|
|
35
|
+
} else if (transitionMatch && lightSpec[transitionMatch[1]] && lightSpec[transitionMatch[1]].transition) {
|
|
27
36
|
errors = errors.concat(validate({
|
|
28
37
|
key,
|
|
29
38
|
value: light[key],
|
|
@@ -78,7 +78,17 @@ export default function validateLights(options: Options): Array<ValidationError>
|
|
|
78
78
|
}
|
|
79
79
|
} else {
|
|
80
80
|
const transitionMatch = key.match(/^(.*)-transition$/);
|
|
81
|
-
|
|
81
|
+
const useThemeMatch = key.match(/^(.*)-use-theme$/);
|
|
82
|
+
|
|
83
|
+
if (useThemeMatch && lightSpec[useThemeMatch[1]]) {
|
|
84
|
+
errors = errors.concat(validate({
|
|
85
|
+
key,
|
|
86
|
+
value: light[key],
|
|
87
|
+
valueSpec: {type:'string'},
|
|
88
|
+
style,
|
|
89
|
+
styleSpec
|
|
90
|
+
}));
|
|
91
|
+
} else if (transitionMatch && lightSpec[transitionMatch[1]] && lightSpec[transitionMatch[1]].transition) {
|
|
82
92
|
errors = errors.concat(validate({
|
|
83
93
|
key,
|
|
84
94
|
value: light[key],
|
|
@@ -26,6 +26,17 @@ export default function validateProperty(options: PropertyValidationOptions, pro
|
|
|
26
26
|
|
|
27
27
|
if (!layerSpec) return [];
|
|
28
28
|
|
|
29
|
+
const useThemeMatch = propertyKey.match(/^(.*)-use-theme$/);
|
|
30
|
+
if (propertyType === 'paint' && useThemeMatch && layerSpec[useThemeMatch[1]]) {
|
|
31
|
+
return validate({
|
|
32
|
+
key,
|
|
33
|
+
value,
|
|
34
|
+
valueSpec: {type:'string'},
|
|
35
|
+
style,
|
|
36
|
+
styleSpec
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
|
|
29
40
|
const transitionMatch = propertyKey.match(/^(.*)-transition$/);
|
|
30
41
|
if (propertyType === 'paint' && transitionMatch && layerSpec[transitionMatch[1]] && layerSpec[transitionMatch[1]].transition) {
|
|
31
42
|
return validate({
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {default as ValidationError, ValidationWarning} from '../error/validation_error';
|
|
2
|
+
import validate from './validate';
|
|
3
|
+
import getType from '../util/get_type';
|
|
4
|
+
|
|
5
|
+
import type {ValidationOptions} from './validate';
|
|
6
|
+
|
|
7
|
+
export default function validateRain(options: ValidationOptions): Array<ValidationError> {
|
|
8
|
+
const rain = options.value;
|
|
9
|
+
const style = options.style;
|
|
10
|
+
const styleSpec = options.styleSpec;
|
|
11
|
+
const rainSpec = styleSpec.rain;
|
|
12
|
+
let errors = [];
|
|
13
|
+
|
|
14
|
+
const rootType = getType(rain);
|
|
15
|
+
if (rain === undefined) {
|
|
16
|
+
return errors;
|
|
17
|
+
} else if (rootType !== 'object') {
|
|
18
|
+
errors = errors.concat([new ValidationError('rain', rain, `object expected, ${rootType} found`)]);
|
|
19
|
+
return errors;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
for (const key in rain) {
|
|
23
|
+
const transitionMatch = key.match(/^(.*)-transition$/);
|
|
24
|
+
|
|
25
|
+
if (transitionMatch && rainSpec[transitionMatch[1]] && rainSpec[transitionMatch[1]].transition) {
|
|
26
|
+
errors = errors.concat(validate({
|
|
27
|
+
key,
|
|
28
|
+
value: rain[key],
|
|
29
|
+
valueSpec: styleSpec.transition,
|
|
30
|
+
style,
|
|
31
|
+
styleSpec
|
|
32
|
+
}));
|
|
33
|
+
} else if (rainSpec[key]) {
|
|
34
|
+
errors = errors.concat(validate({
|
|
35
|
+
key,
|
|
36
|
+
value: rain[key],
|
|
37
|
+
valueSpec: rainSpec[key],
|
|
38
|
+
style,
|
|
39
|
+
styleSpec
|
|
40
|
+
}));
|
|
41
|
+
} else {
|
|
42
|
+
errors = errors.concat([new ValidationWarning(key, rain[key], `unknown property "${key}"`)]);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return errors;
|
|
47
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {default as ValidationError, ValidationWarning} from '../error/validation_error';
|
|
2
|
+
import validate from './validate';
|
|
3
|
+
import getType from '../util/get_type';
|
|
4
|
+
|
|
5
|
+
import type {ValidationOptions} from './validate';
|
|
6
|
+
|
|
7
|
+
export default function validateSnow(options: ValidationOptions): Array<ValidationError> {
|
|
8
|
+
const snow = options.value;
|
|
9
|
+
const style = options.style;
|
|
10
|
+
const styleSpec = options.styleSpec;
|
|
11
|
+
const snowSpec = styleSpec.snow;
|
|
12
|
+
let errors = [];
|
|
13
|
+
|
|
14
|
+
const rootType = getType(snow);
|
|
15
|
+
if (snow === undefined) {
|
|
16
|
+
return errors;
|
|
17
|
+
} else if (rootType !== 'object') {
|
|
18
|
+
errors = errors.concat([new ValidationError('snow', snow, `object expected, ${rootType} found`)]);
|
|
19
|
+
return errors;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
for (const key in snow) {
|
|
23
|
+
const transitionMatch = key.match(/^(.*)-transition$/);
|
|
24
|
+
|
|
25
|
+
if (transitionMatch && snowSpec[transitionMatch[1]] && snowSpec[transitionMatch[1]].transition) {
|
|
26
|
+
errors = errors.concat(validate({
|
|
27
|
+
key,
|
|
28
|
+
value: snow[key],
|
|
29
|
+
valueSpec: styleSpec.transition,
|
|
30
|
+
style,
|
|
31
|
+
styleSpec
|
|
32
|
+
}));
|
|
33
|
+
} else if (snowSpec[key]) {
|
|
34
|
+
errors = errors.concat(validate({
|
|
35
|
+
key,
|
|
36
|
+
value: snow[key],
|
|
37
|
+
valueSpec: snowSpec[key],
|
|
38
|
+
style,
|
|
39
|
+
styleSpec
|
|
40
|
+
}));
|
|
41
|
+
} else {
|
|
42
|
+
errors = errors.concat([new ValidationWarning(key, snow[key], `unknown property "${key}"`)]);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return errors;
|
|
47
|
+
}
|
|
@@ -25,8 +25,17 @@ export default function validateTerrain(options: ValidationOptions): Array<Valid
|
|
|
25
25
|
|
|
26
26
|
for (const key in terrain) {
|
|
27
27
|
const transitionMatch = key.match(/^(.*)-transition$/);
|
|
28
|
+
const useThemeMatch = key.match(/^(.*)-use-theme$/);
|
|
28
29
|
|
|
29
|
-
if (
|
|
30
|
+
if (useThemeMatch && terrainSpec[useThemeMatch[1]]) {
|
|
31
|
+
errors = errors.concat(validate({
|
|
32
|
+
key,
|
|
33
|
+
value: terrain[key],
|
|
34
|
+
valueSpec: {type:'string'},
|
|
35
|
+
style,
|
|
36
|
+
styleSpec
|
|
37
|
+
}));
|
|
38
|
+
} else if (transitionMatch && terrainSpec[transitionMatch[1]] && terrainSpec[transitionMatch[1]].transition) {
|
|
30
39
|
errors = errors.concat(validate({
|
|
31
40
|
key,
|
|
32
41
|
value: terrain[key],
|
|
@@ -51,7 +60,7 @@ export default function validateTerrain(options: ValidationOptions): Array<Valid
|
|
|
51
60
|
errors.push(new ValidationError(key, terrain, `terrain is missing required property "source"`));
|
|
52
61
|
} else {
|
|
53
62
|
const source = style.sources && style.sources[terrain.source];
|
|
54
|
-
const sourceType = source && unbundle(source.type);
|
|
63
|
+
const sourceType = source && unbundle(source.type) as string;
|
|
55
64
|
if (!source) {
|
|
56
65
|
errors.push(new ValidationError(key, terrain.source, `source "${terrain.source}" not found`));
|
|
57
66
|
} else if (sourceType !== 'raster-dem') {
|