diff --git a/src/components/PropertyGroup.tsx b/src/components/PropertyGroup.tsx index efe1c09a..7b325159 100644 --- a/src/components/PropertyGroup.tsx +++ b/src/components/PropertyGroup.tsx @@ -26,13 +26,9 @@ function getFieldSpec(spec: any, layerType: LayerSpecification["type"], fieldNam return fieldSpec } -function getGroupName(spec: any, layerType: LayerSpecification["type"], fieldName: string) { - const paint = spec['paint_' + layerType] || {} - if (fieldName in paint) { - return 'paint' - } else { - return 'layout' - } +function getGroupName(spec: any, layerType: LayerSpecification["type"], fieldName: string): 'paint' | 'layout' { + const paint = spec['paint_' + layerType] || {} + return (fieldName in paint) ? 'paint' : 'layout'; } type PropertyGroupProps = { diff --git a/src/components/_FunctionButtons.tsx b/src/components/_FunctionButtons.tsx index 815429bd..090bb447 100644 --- a/src/components/_FunctionButtons.tsx +++ b/src/components/_FunctionButtons.tsx @@ -7,18 +7,18 @@ import { WithTranslation, withTranslation } from 'react-i18next'; type FunctionInputButtonsInternalProps = { fieldSpec?: any - onZoomClick?(...args: unknown[]): unknown - onDataClick?(...args: unknown[]): unknown - onExpressionClick?(...args: unknown[]): unknown + onZoomClick?(): void + onDataClick?(): void + onExpressionClick?(): void + onElevationClick?(): void } & WithTranslation; class FunctionInputButtonsInternal extends React.Component { render() { const t = this.props.t; - let makeZoomInputButton, makeDataInputButton, expressionInputButton; if (this.props.fieldSpec.expression?.parameters.includes('zoom')) { - expressionInputButton = ( + const expressionInputButton = ( ); - makeZoomInputButton = + let makeDataInputButton; if (this.props.fieldSpec['property-type'] === 'data-driven') { makeDataInputButton = - } - else { - return
{expressionInputButton}
+ } else if (this.props.fieldSpec.expression?.parameters.includes('elevation')) { + const inputElevationButton = + + + return
{inputElevationButton}
+ } else { + return
} } } diff --git a/src/components/_SpecProperty.tsx b/src/components/_SpecProperty.tsx index 63c14ba9..c08a5396 100644 --- a/src/components/_SpecProperty.tsx +++ b/src/components/_SpecProperty.tsx @@ -7,14 +7,15 @@ import labelFromFieldName from '../libs/label-from-field-name' type SpecPropertyProps = FieldSpecProps & { - onZoomClick(...args: unknown[]): unknown - onDataClick(...args: unknown[]): unknown fieldName?: string fieldType?: string fieldSpec?: any value?: any errors?: {[key: string]: {message: string}} - onExpressionClick?(...args: unknown[]): unknown + onZoomClick(): void + onDataClick(): void + onExpressionClick?(): void + onElevationClick?(): void }; @@ -31,6 +32,7 @@ export default class SpecProperty extends React.Component { onZoomClick={this.props.onZoomClick} onDataClick={this.props.onDataClick} onExpressionClick={this.props.onExpressionClick} + onElevationClick={this.props.onElevationClick} /> const error = errors![fieldType+"."+fieldName as any] as any; diff --git a/src/locales/de/translation.json b/src/locales/de/translation.json index 3b2b5ba0..7c984f38 100644 --- a/src/locales/de/translation.json +++ b/src/locales/de/translation.json @@ -16,6 +16,7 @@ "Delete expression": "Ausdruck löschen", "Convert property into a zoom function": "Eigenschaft in eine Zoom-Funktion umwandeln", "Convert property to data function": "Eigenschaft in eine Datenfunktion umwandeln", + "Convert property into a elevation function": "Eigenschaft in eine Höhenfunktion umwandeln", "Layer <1>{formatLayerId(layerId)}: {parsed.data.message}": "Ebene <1>{formatLayerId(layerId)}: {parsed.data.message}", "switch to layer": "zur Ebene wechseln", "Map": "Karte", diff --git a/src/locales/fr/translation.json b/src/locales/fr/translation.json index 8baa4082..303efce6 100644 --- a/src/locales/fr/translation.json +++ b/src/locales/fr/translation.json @@ -16,6 +16,7 @@ "Delete expression": "Supprimer l'expression", "Convert property into a zoom function": "Convertir la propriété en fonction de zoom", "Convert property to data function": "Convertir la propriété en fonction de données", + "Convert property into a elevation function": "Convertir la propriété en fonction d'élévation", "Layer <1>{formatLayerId(layerId)}: {parsed.data.message}": "Calque <1>{formatLayerId(layerId)} : {parsed.data.message}", "switch to layer": "changer de calque", "Map": "Carte", diff --git a/src/locales/he/translation.json b/src/locales/he/translation.json index c3b7a637..191c400d 100644 --- a/src/locales/he/translation.json +++ b/src/locales/he/translation.json @@ -16,6 +16,7 @@ "Delete expression": "מחיקת ביטוי", "Convert property into a zoom function": "המרה לפונקציית זום", "Convert property to data function": "המרה לפונקציית מידע", + "Convert property into a elevation function": "המרה לפונקציית גובה", "Layer <1>{formatLayerId(layerId)}: {parsed.data.message}": "שכבה <1>{formatLayerId(layerId)}: {parsed.data.message}", "switch to layer": "שינוי לשכבה", "Map": "מפה", diff --git a/src/locales/it/translation.json b/src/locales/it/translation.json index 1baf4b51..13bb81a1 100644 --- a/src/locales/it/translation.json +++ b/src/locales/it/translation.json @@ -16,6 +16,7 @@ "Delete expression": "Elimina espressione", "Convert property into a zoom function": "Converti proprietà in una funzione di zoom", "Convert property to data function": "Converti proprietà in una funzione dati", + "Convert property into a elevation function": "Converti proprietà in una funzione di elevazione", "Layer <1>{formatLayerId(layerId)}: {parsed.data.message}": "Livello <1>{formatLayerId(layerId)}: {parsed.data.message}", "switch to layer": "passa al livello", "Map": "Mappa", diff --git a/src/locales/ja/translation.json b/src/locales/ja/translation.json index 30d82c7f..598655bf 100644 --- a/src/locales/ja/translation.json +++ b/src/locales/ja/translation.json @@ -16,6 +16,7 @@ "Delete expression": "式を削除", "Convert property into a zoom function": "プロパティをズーム関数に変換する", "Convert property to data function": "プロパティをデータ関数に変換する", + "Convert property into a elevation function": "プロパティを標高関数に変換する", "Layer <1>{formatLayerId(layerId)}: {parsed.data.message}": "レイヤ<1>{formatLayerId(layerId)}: {parsed.data.message}", "switch to layer": "レイヤへ切替", "Map": "地図", diff --git a/src/locales/zh/translation.json b/src/locales/zh/translation.json index ceddfbe5..8606477d 100644 --- a/src/locales/zh/translation.json +++ b/src/locales/zh/translation.json @@ -16,6 +16,7 @@ "Delete expression": "删除表达式", "Convert property into a zoom function": "将属性转换为缩放函数", "Convert property to data function": "将属性转换为数据函数", + "Convert property into a elevation function": "将属性转换为高程函数", "Layer <1>{formatLayerId(layerId)}: {parsed.data.message}": "图层<1>{formatLayerId(layerId)}: {parsed.data.message}", "switch to layer": "切换到图层", "Map": "地图",