mirror of
https://github.com/maputnik/editor.git
synced 2026-08-31 09:27:30 +00:00
Color relief support and hillshading improvements. (#1371)
## Launch Checklist This adds support for `relief-color` property so that it will create an elevation expression when the button is pressed. It also adds support for `colorArray` and `numberArray` types so that the user would be able to add the relevant information. Before: <img width="403" height="324" alt="image" src="https://github.com/user-attachments/assets/250abd81-6176-4711-a1ee-d33d443932d7" /> <img width="403" height="324" alt="image" src="https://github.com/user-attachments/assets/6a1bb268-66db-42a1-97fc-33e5a40863b6" /> After: <img width="403" height="324" alt="image" src="https://github.com/user-attachments/assets/8ebaa1ea-4ef9-4aed-abcd-3c8b0057ea76" /> <img width="403" height="324" alt="image" src="https://github.com/user-attachments/assets/e0728c92-85f9-4b86-8635-8877cf257b2f" /> - [x] Briefly describe the changes in this PR. - [x] Include before/after visuals or gifs if this PR includes visual changes. - [x] Write tests for all new functionality. - [x] Add an entry to `CHANGELOG.md` under the `## main` section. --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -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<FunctionInputButtonsInternalProps> {
|
||||
render() {
|
||||
const t = this.props.t;
|
||||
let makeZoomInputButton, makeDataInputButton, expressionInputButton;
|
||||
|
||||
if (this.props.fieldSpec.expression?.parameters.includes('zoom')) {
|
||||
expressionInputButton = (
|
||||
const expressionInputButton = (
|
||||
<InputButton
|
||||
className="maputnik-make-zoom-function"
|
||||
onClick={this.props.onExpressionClick}
|
||||
@@ -30,7 +30,7 @@ class FunctionInputButtonsInternal extends React.Component<FunctionInputButtonsI
|
||||
</InputButton>
|
||||
);
|
||||
|
||||
makeZoomInputButton = <InputButton
|
||||
const makeZoomInputButton = <InputButton
|
||||
className="maputnik-make-zoom-function"
|
||||
onClick={this.props.onZoomClick}
|
||||
title={t("Convert property into a zoom function")}
|
||||
@@ -38,6 +38,7 @@ class FunctionInputButtonsInternal extends React.Component<FunctionInputButtonsI
|
||||
<MdFunctions />
|
||||
</InputButton>
|
||||
|
||||
let makeDataInputButton;
|
||||
if (this.props.fieldSpec['property-type'] === 'data-driven') {
|
||||
makeDataInputButton = <InputButton
|
||||
className="maputnik-make-data-function"
|
||||
@@ -52,9 +53,18 @@ class FunctionInputButtonsInternal extends React.Component<FunctionInputButtonsI
|
||||
{makeDataInputButton}
|
||||
{makeZoomInputButton}
|
||||
</div>
|
||||
}
|
||||
else {
|
||||
return <div>{expressionInputButton}</div>
|
||||
} else if (this.props.fieldSpec.expression?.parameters.includes('elevation')) {
|
||||
const inputElevationButton = <InputButton
|
||||
className="maputnik-make-elevation-function"
|
||||
onClick={this.props.onElevationClick}
|
||||
title={t("Convert property into a elevation function")}
|
||||
data-wd-key='make-elevation-function'
|
||||
>
|
||||
<MdFunctions />
|
||||
</InputButton>
|
||||
return <div>{inputElevationButton}</div>
|
||||
} else {
|
||||
return <div></div>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user