/*** * Controls are rendered in the property panel from the property config * Controls are higher order components that update a widgets property */ import { Component } from "react"; import _ from "lodash"; import { PropertyPaneControlConfig } from "constants/PropertyControlConstants"; // eslint-disable-next-line @typescript-eslint/ban-types abstract class BaseControl
extends Component<
P,
S
> {
updateProperty(
propertyName: string,
propertyValue: any,
isDynamicTrigger?: boolean,
) {
if (!_.isNil(this.props.onPropertyChange))
this.props.onPropertyChange(
propertyName,
propertyValue,
isDynamicTrigger,
);
}
deleteProperties(propertyPaths: string[]) {
if (this.props.deleteProperties) {
this.props.deleteProperties(propertyPaths);
}
}
}
export interface ControlBuilder