diff --git a/build/generate-flow-typed-style-spec.js b/build/generate-flow-typed-style-spec.js index e80c153a98f..a3cd5db41bd 100644 --- a/build/generate-flow-typed-style-spec.js +++ b/build/generate-flow-typed-style-spec.js @@ -1,3 +1,5 @@ +/* eslint-disable flowtype/require-valid-file-annotation */ + import fs from 'fs'; import assert from 'assert'; import spec from '../src/style-spec/reference/v8.json'; @@ -71,7 +73,15 @@ function flowObjectDeclaration(key, properties) { function flowObject(properties, indent, sealing = '') { return `{${sealing} ${Object.keys(properties) - .map(k => ` ${indent}${flowProperty(k, properties[k])}`) + .map(k => { + const property = ` ${indent}${flowProperty(k, properties[k])}`; + if (properties[k].transition) { + const propertyTransition = ` ${indent}"${k}-transition"?: TransitionSpecification`; + return [property, propertyTransition].join(',\n'); + } else { + return property; + } + }) .join(',\n')} ${indent}${sealing}}`; } diff --git a/src/style-spec/types.js b/src/style-spec/types.js index f3350928602..0c695062814 100644 --- a/src/style-spec/types.js +++ b/src/style-spec/types.js @@ -93,27 +93,39 @@ export type ModelsSpecification = { export type LightSpecification = {| "anchor"?: PropertyValueSpecification<"map" | "viewport">, "position"?: PropertyValueSpecification<[number, number, number]>, + "position-transition"?: TransitionSpecification, "color"?: PropertyValueSpecification, - "intensity"?: PropertyValueSpecification + "color-transition"?: TransitionSpecification, + "intensity"?: PropertyValueSpecification, + "intensity-transition"?: TransitionSpecification |} export type TerrainSpecification = {| "source": string, - "exaggeration"?: PropertyValueSpecification + "exaggeration"?: PropertyValueSpecification, + "exaggeration-transition"?: TransitionSpecification |} export type FogSpecification = {| "range"?: PropertyValueSpecification<[number, number]>, + "range-transition"?: TransitionSpecification, "color"?: PropertyValueSpecification, + "color-transition"?: TransitionSpecification, "high-color"?: PropertyValueSpecification, + "high-color-transition"?: TransitionSpecification, "space-color"?: PropertyValueSpecification, + "space-color-transition"?: TransitionSpecification, "horizon-blend"?: PropertyValueSpecification, + "horizon-blend-transition"?: TransitionSpecification, "star-intensity"?: PropertyValueSpecification, - "vertical-range"?: PropertyValueSpecification<[number, number]> + "star-intensity-transition"?: TransitionSpecification, + "vertical-range"?: PropertyValueSpecification<[number, number]>, + "vertical-range-transition"?: TransitionSpecification |} export type CameraSpecification = {| - "camera-projection"?: PropertyValueSpecification<"perspective" | "orthographic"> + "camera-projection"?: PropertyValueSpecification<"perspective" | "orthographic">, + "camera-projection-transition"?: TransitionSpecification |} export type ProjectionSpecification = {| @@ -259,7 +271,9 @@ export type AmbientLightSpecification = {| "id": string, "properties"?: {| "color"?: PropertyValueSpecification, - "intensity"?: PropertyValueSpecification + "color-transition"?: TransitionSpecification, + "intensity"?: PropertyValueSpecification, + "intensity-transition"?: TransitionSpecification |}, "type": "ambient" |} @@ -268,10 +282,14 @@ export type DirectionalLightSpecification = {| "id": string, "properties"?: {| "direction"?: PropertyValueSpecification<[number, number]>, + "direction-transition"?: TransitionSpecification, "color"?: PropertyValueSpecification, + "color-transition"?: TransitionSpecification, "intensity"?: PropertyValueSpecification, + "intensity-transition"?: TransitionSpecification, "cast-shadows"?: ExpressionSpecification, - "shadow-intensity"?: PropertyValueSpecification + "shadow-intensity"?: PropertyValueSpecification, + "shadow-intensity-transition"?: TransitionSpecification |}, "type": "directional" |} @@ -281,8 +299,11 @@ export type FlatLightSpecification = {| "properties"?: {| "anchor"?: PropertyValueSpecification<"map" | "viewport">, "position"?: PropertyValueSpecification<[number, number, number]>, + "position-transition"?: TransitionSpecification, "color"?: PropertyValueSpecification, - "intensity"?: PropertyValueSpecification + "color-transition"?: TransitionSpecification, + "intensity"?: PropertyValueSpecification, + "intensity-transition"?: TransitionSpecification |}, "type": "flat" |} @@ -309,12 +330,17 @@ export type FillLayerSpecification = {| "paint"?: {| "fill-antialias"?: PropertyValueSpecification, "fill-opacity"?: DataDrivenPropertyValueSpecification, + "fill-opacity-transition"?: TransitionSpecification, "fill-color"?: DataDrivenPropertyValueSpecification, + "fill-color-transition"?: TransitionSpecification, "fill-outline-color"?: DataDrivenPropertyValueSpecification, + "fill-outline-color-transition"?: TransitionSpecification, "fill-translate"?: PropertyValueSpecification<[number, number]>, + "fill-translate-transition"?: TransitionSpecification, "fill-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">, "fill-pattern"?: DataDrivenPropertyValueSpecification, - "fill-emissive-strength"?: PropertyValueSpecification + "fill-emissive-strength"?: PropertyValueSpecification, + "fill-emissive-strength-transition"?: TransitionSpecification |} |} @@ -338,20 +364,30 @@ export type LineLayerSpecification = {| |}, "paint"?: {| "line-opacity"?: DataDrivenPropertyValueSpecification, + "line-opacity-transition"?: TransitionSpecification, "line-color"?: DataDrivenPropertyValueSpecification, + "line-color-transition"?: TransitionSpecification, "line-translate"?: PropertyValueSpecification<[number, number]>, + "line-translate-transition"?: TransitionSpecification, "line-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">, "line-width"?: DataDrivenPropertyValueSpecification, + "line-width-transition"?: TransitionSpecification, "line-gap-width"?: DataDrivenPropertyValueSpecification, + "line-gap-width-transition"?: TransitionSpecification, "line-offset"?: DataDrivenPropertyValueSpecification, + "line-offset-transition"?: TransitionSpecification, "line-blur"?: DataDrivenPropertyValueSpecification, + "line-blur-transition"?: TransitionSpecification, "line-dasharray"?: DataDrivenPropertyValueSpecification>, "line-pattern"?: DataDrivenPropertyValueSpecification, "line-gradient"?: ExpressionSpecification, "line-trim-offset"?: [number, number], "line-emissive-strength"?: PropertyValueSpecification, + "line-emissive-strength-transition"?: TransitionSpecification, "line-border-width"?: DataDrivenPropertyValueSpecification, - "line-border-color"?: DataDrivenPropertyValueSpecification + "line-border-width-transition"?: TransitionSpecification, + "line-border-color"?: DataDrivenPropertyValueSpecification, + "line-border-color-transition"?: TransitionSpecification |} |} @@ -412,21 +448,36 @@ export type SymbolLayerSpecification = {| |}, "paint"?: {| "icon-opacity"?: DataDrivenPropertyValueSpecification, + "icon-opacity-transition"?: TransitionSpecification, "icon-emissive-strength"?: DataDrivenPropertyValueSpecification, + "icon-emissive-strength-transition"?: TransitionSpecification, "text-emissive-strength"?: DataDrivenPropertyValueSpecification, + "text-emissive-strength-transition"?: TransitionSpecification, "icon-color"?: DataDrivenPropertyValueSpecification, + "icon-color-transition"?: TransitionSpecification, "icon-halo-color"?: DataDrivenPropertyValueSpecification, + "icon-halo-color-transition"?: TransitionSpecification, "icon-halo-width"?: DataDrivenPropertyValueSpecification, + "icon-halo-width-transition"?: TransitionSpecification, "icon-halo-blur"?: DataDrivenPropertyValueSpecification, + "icon-halo-blur-transition"?: TransitionSpecification, "icon-translate"?: PropertyValueSpecification<[number, number]>, + "icon-translate-transition"?: TransitionSpecification, "icon-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">, "icon-image-cross-fade"?: DataDrivenPropertyValueSpecification, + "icon-image-cross-fade-transition"?: TransitionSpecification, "text-opacity"?: DataDrivenPropertyValueSpecification, + "text-opacity-transition"?: TransitionSpecification, "text-color"?: DataDrivenPropertyValueSpecification, + "text-color-transition"?: TransitionSpecification, "text-halo-color"?: DataDrivenPropertyValueSpecification, + "text-halo-color-transition"?: TransitionSpecification, "text-halo-width"?: DataDrivenPropertyValueSpecification, + "text-halo-width-transition"?: TransitionSpecification, "text-halo-blur"?: DataDrivenPropertyValueSpecification, + "text-halo-blur-transition"?: TransitionSpecification, "text-translate"?: PropertyValueSpecification<[number, number]>, + "text-translate-transition"?: TransitionSpecification, "text-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">, "icon-color-saturation"?: ExpressionSpecification, "icon-color-contrast"?: ExpressionSpecification, @@ -451,17 +502,26 @@ export type CircleLayerSpecification = {| |}, "paint"?: {| "circle-radius"?: DataDrivenPropertyValueSpecification, + "circle-radius-transition"?: TransitionSpecification, "circle-color"?: DataDrivenPropertyValueSpecification, + "circle-color-transition"?: TransitionSpecification, "circle-blur"?: DataDrivenPropertyValueSpecification, + "circle-blur-transition"?: TransitionSpecification, "circle-opacity"?: DataDrivenPropertyValueSpecification, + "circle-opacity-transition"?: TransitionSpecification, "circle-translate"?: PropertyValueSpecification<[number, number]>, + "circle-translate-transition"?: TransitionSpecification, "circle-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">, "circle-pitch-scale"?: PropertyValueSpecification<"map" | "viewport">, "circle-pitch-alignment"?: PropertyValueSpecification<"map" | "viewport">, "circle-stroke-width"?: DataDrivenPropertyValueSpecification, + "circle-stroke-width-transition"?: TransitionSpecification, "circle-stroke-color"?: DataDrivenPropertyValueSpecification, + "circle-stroke-color-transition"?: TransitionSpecification, "circle-stroke-opacity"?: DataDrivenPropertyValueSpecification, - "circle-emissive-strength"?: PropertyValueSpecification + "circle-stroke-opacity-transition"?: TransitionSpecification, + "circle-emissive-strength"?: PropertyValueSpecification, + "circle-emissive-strength-transition"?: TransitionSpecification |} |} @@ -480,10 +540,13 @@ export type HeatmapLayerSpecification = {| |}, "paint"?: {| "heatmap-radius"?: DataDrivenPropertyValueSpecification, + "heatmap-radius-transition"?: TransitionSpecification, "heatmap-weight"?: DataDrivenPropertyValueSpecification, "heatmap-intensity"?: PropertyValueSpecification, + "heatmap-intensity-transition"?: TransitionSpecification, "heatmap-color"?: ExpressionSpecification, - "heatmap-opacity"?: PropertyValueSpecification + "heatmap-opacity"?: PropertyValueSpecification, + "heatmap-opacity-transition"?: TransitionSpecification |} |} @@ -503,27 +566,44 @@ export type FillExtrusionLayerSpecification = {| |}, "paint"?: {| "fill-extrusion-opacity"?: PropertyValueSpecification, + "fill-extrusion-opacity-transition"?: TransitionSpecification, "fill-extrusion-color"?: DataDrivenPropertyValueSpecification, + "fill-extrusion-color-transition"?: TransitionSpecification, "fill-extrusion-translate"?: PropertyValueSpecification<[number, number]>, + "fill-extrusion-translate-transition"?: TransitionSpecification, "fill-extrusion-translate-anchor"?: PropertyValueSpecification<"map" | "viewport">, "fill-extrusion-pattern"?: DataDrivenPropertyValueSpecification, "fill-extrusion-height"?: DataDrivenPropertyValueSpecification, + "fill-extrusion-height-transition"?: TransitionSpecification, "fill-extrusion-base"?: DataDrivenPropertyValueSpecification, + "fill-extrusion-base-transition"?: TransitionSpecification, "fill-extrusion-vertical-gradient"?: PropertyValueSpecification, "fill-extrusion-ambient-occlusion-intensity"?: PropertyValueSpecification, + "fill-extrusion-ambient-occlusion-intensity-transition"?: TransitionSpecification, "fill-extrusion-ambient-occlusion-radius"?: PropertyValueSpecification, + "fill-extrusion-ambient-occlusion-radius-transition"?: TransitionSpecification, "fill-extrusion-ambient-occlusion-wall-radius"?: PropertyValueSpecification, + "fill-extrusion-ambient-occlusion-wall-radius-transition"?: TransitionSpecification, "fill-extrusion-ambient-occlusion-ground-radius"?: PropertyValueSpecification, + "fill-extrusion-ambient-occlusion-ground-radius-transition"?: TransitionSpecification, "fill-extrusion-ambient-occlusion-ground-attenuation"?: PropertyValueSpecification, + "fill-extrusion-ambient-occlusion-ground-attenuation-transition"?: TransitionSpecification, "fill-extrusion-flood-light-color"?: PropertyValueSpecification, + "fill-extrusion-flood-light-color-transition"?: TransitionSpecification, "fill-extrusion-flood-light-intensity"?: PropertyValueSpecification, + "fill-extrusion-flood-light-intensity-transition"?: TransitionSpecification, "fill-extrusion-flood-light-wall-radius"?: DataDrivenPropertyValueSpecification, + "fill-extrusion-flood-light-wall-radius-transition"?: TransitionSpecification, "fill-extrusion-flood-light-ground-radius"?: DataDrivenPropertyValueSpecification, + "fill-extrusion-flood-light-ground-radius-transition"?: TransitionSpecification, "fill-extrusion-flood-light-ground-attenuation"?: PropertyValueSpecification, + "fill-extrusion-flood-light-ground-attenuation-transition"?: TransitionSpecification, "fill-extrusion-vertical-scale"?: PropertyValueSpecification, + "fill-extrusion-vertical-scale-transition"?: TransitionSpecification, "fill-extrusion-rounded-roof"?: PropertyValueSpecification, "fill-extrusion-cutoff-fade-range"?: ExpressionSpecification, - "fill-extrusion-emissive-strength"?: PropertyValueSpecification + "fill-extrusion-emissive-strength"?: PropertyValueSpecification, + "fill-extrusion-emissive-strength-transition"?: TransitionSpecification |} |} @@ -542,19 +622,29 @@ export type RasterLayerSpecification = {| |}, "paint"?: {| "raster-opacity"?: PropertyValueSpecification, + "raster-opacity-transition"?: TransitionSpecification, "raster-color"?: ExpressionSpecification, "raster-color-mix"?: PropertyValueSpecification<[number, number, number, number]>, + "raster-color-mix-transition"?: TransitionSpecification, "raster-color-range"?: PropertyValueSpecification<[number, number]>, + "raster-color-range-transition"?: TransitionSpecification, "raster-hue-rotate"?: PropertyValueSpecification, + "raster-hue-rotate-transition"?: TransitionSpecification, "raster-brightness-min"?: PropertyValueSpecification, + "raster-brightness-min-transition"?: TransitionSpecification, "raster-brightness-max"?: PropertyValueSpecification, + "raster-brightness-max-transition"?: TransitionSpecification, "raster-saturation"?: PropertyValueSpecification, + "raster-saturation-transition"?: TransitionSpecification, "raster-contrast"?: PropertyValueSpecification, + "raster-contrast-transition"?: TransitionSpecification, "raster-resampling"?: PropertyValueSpecification<"linear" | "nearest">, "raster-fade-duration"?: PropertyValueSpecification, "raster-emissive-strength"?: PropertyValueSpecification, + "raster-emissive-strength-transition"?: TransitionSpecification, "raster-array-band"?: string, - "raster-elevation"?: PropertyValueSpecification + "raster-elevation"?: PropertyValueSpecification, + "raster-elevation-transition"?: TransitionSpecification |} |} @@ -577,7 +667,9 @@ export type RasterParticleLayerSpecification = {| "raster-particle-color"?: ExpressionSpecification, "raster-particle-max-speed"?: number, "raster-particle-speed-factor"?: PropertyValueSpecification, + "raster-particle-speed-factor-transition"?: TransitionSpecification, "raster-particle-fade-opacity-factor"?: PropertyValueSpecification, + "raster-particle-fade-opacity-factor-transition"?: TransitionSpecification, "raster-particle-reset-rate-factor"?: number |} |} @@ -599,10 +691,15 @@ export type HillshadeLayerSpecification = {| "hillshade-illumination-direction"?: PropertyValueSpecification, "hillshade-illumination-anchor"?: PropertyValueSpecification<"map" | "viewport">, "hillshade-exaggeration"?: PropertyValueSpecification, + "hillshade-exaggeration-transition"?: TransitionSpecification, "hillshade-shadow-color"?: PropertyValueSpecification, + "hillshade-shadow-color-transition"?: TransitionSpecification, "hillshade-highlight-color"?: PropertyValueSpecification, + "hillshade-highlight-color-transition"?: TransitionSpecification, "hillshade-accent-color"?: PropertyValueSpecification, - "hillshade-emissive-strength"?: PropertyValueSpecification + "hillshade-accent-color-transition"?: TransitionSpecification, + "hillshade-emissive-strength"?: PropertyValueSpecification, + "hillshade-emissive-strength-transition"?: TransitionSpecification |} |} @@ -622,18 +719,28 @@ export type ModelLayerSpecification = {| |}, "paint"?: {| "model-opacity"?: PropertyValueSpecification, + "model-opacity-transition"?: TransitionSpecification, "model-rotation"?: DataDrivenPropertyValueSpecification<[number, number, number]>, + "model-rotation-transition"?: TransitionSpecification, "model-scale"?: DataDrivenPropertyValueSpecification<[number, number, number]>, + "model-scale-transition"?: TransitionSpecification, "model-translation"?: DataDrivenPropertyValueSpecification<[number, number, number]>, + "model-translation-transition"?: TransitionSpecification, "model-color"?: DataDrivenPropertyValueSpecification, + "model-color-transition"?: TransitionSpecification, "model-color-mix-intensity"?: DataDrivenPropertyValueSpecification, + "model-color-mix-intensity-transition"?: TransitionSpecification, "model-type"?: "common-3d" | "location-indicator", "model-cast-shadows"?: ExpressionSpecification, "model-receive-shadows"?: ExpressionSpecification, "model-ambient-occlusion-intensity"?: PropertyValueSpecification, + "model-ambient-occlusion-intensity-transition"?: TransitionSpecification, "model-emissive-strength"?: DataDrivenPropertyValueSpecification, + "model-emissive-strength-transition"?: TransitionSpecification, "model-roughness"?: DataDrivenPropertyValueSpecification, + "model-roughness-transition"?: TransitionSpecification, "model-height-based-emissive-strength-multiplier"?: DataDrivenPropertyValueSpecification<[number, number, number, number, number]>, + "model-height-based-emissive-strength-multiplier-transition"?: TransitionSpecification, "model-cutoff-fade-range"?: ExpressionSpecification, "model-front-cutoff"?: PropertyValueSpecification<[number, number, number]> |} @@ -651,9 +758,12 @@ export type BackgroundLayerSpecification = {| |}, "paint"?: {| "background-color"?: PropertyValueSpecification, + "background-color-transition"?: TransitionSpecification, "background-pattern"?: PropertyValueSpecification, "background-opacity"?: PropertyValueSpecification, - "background-emissive-strength"?: PropertyValueSpecification + "background-opacity-transition"?: TransitionSpecification, + "background-emissive-strength"?: PropertyValueSpecification, + "background-emissive-strength-transition"?: TransitionSpecification |} |} @@ -676,7 +786,8 @@ export type SkyLayerSpecification = {| "sky-gradient"?: ExpressionSpecification, "sky-atmosphere-halo-color"?: ColorSpecification, "sky-atmosphere-color"?: ColorSpecification, - "sky-opacity"?: PropertyValueSpecification + "sky-opacity"?: PropertyValueSpecification, + "sky-opacity-transition"?: TransitionSpecification |} |}