@pnp/spfx-property-controls
Version:
Reusable property pane controls for SharePoint Framework solutions
42 lines • 1.73 kB
JavaScript
import * as React from "react";
import { PropertyPaneFieldType, } from "@microsoft/sp-property-pane";
import * as ReactDOM from "react-dom";
import { PalettePicker } from "./PalettePicker";
export class PropertyPanePalettePicker {
constructor(targetProperty, properties) {
this.type = PropertyPaneFieldType.Custom;
this.targetProperty = targetProperty;
this.properties = {
key: properties.key,
label: properties.label,
selectedPalette: properties.selectedPalette,
onPropertyChange: properties.onPropertyChange,
onSelectedPalette: properties.onSelectedPalette,
disabled: properties.disabled,
palettes: properties.palettes,
theme: properties.theme,
onRender: this.onRender.bind(this),
onDispose: this.onDispose.bind(this),
};
}
onRender(elem) {
const element = React.createElement(PalettePicker, {
label: this.properties.label,
selectedPalette: this.properties.selectedPalette,
onPropertyChange: this.properties.onPropertyChange,
onSelectedPalette: this.properties.onSelectedPalette,
disabled: this.properties.disabled,
targetProperty: this.targetProperty,
palettes: this.properties.palettes,
theme: this.properties.theme,
});
ReactDOM.render(element, elem);
}
onDispose(elem) {
ReactDOM.unmountComponentAtNode(elem);
}
}
export function PropertyPanePalettePickerField(targetProperty, properties) {
return new PropertyPanePalettePicker(targetProperty, properties);
}
//# sourceMappingURL=PalettePickerPropertyField.js.map