@pnp/spfx-property-controls
Version:
Reusable property pane controls for SharePoint Framework solutions
48 lines • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PropertyPanePalettePicker = void 0;
exports.PropertyPanePalettePickerField = PropertyPanePalettePickerField;
const tslib_1 = require("tslib");
const React = tslib_1.__importStar(require("react"));
const sp_property_pane_1 = require("@microsoft/sp-property-pane");
const ReactDOM = tslib_1.__importStar(require("react-dom"));
const PalettePicker_1 = require("./PalettePicker");
class PropertyPanePalettePicker {
constructor(targetProperty, properties) {
this.type = sp_property_pane_1.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_1.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);
}
}
exports.PropertyPanePalettePicker = PropertyPanePalettePicker;
function PropertyPanePalettePickerField(targetProperty, properties) {
return new PropertyPanePalettePicker(targetProperty, properties);
}
//# sourceMappingURL=PalettePickerPropertyField.js.map