UNPKG

@pnp/spfx-controls-react

Version:

Reusable React controls for SharePoint Framework solutions

62 lines 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PropertyPaneControlToggles = void 0; var tslib_1 = require("tslib"); var React = tslib_1.__importStar(require("react")); var ReactDom = tslib_1.__importStar(require("react-dom")); var sp_property_pane_1 = require("@microsoft/sp-property-pane"); var ControlToggles_1 = require("./controls/ControlToggles"); var PropertyPaneControlToggles = /** @class */ (function () { function PropertyPaneControlToggles(targetProperty, properties) { this.type = sp_property_pane_1.PropertyPaneFieldType.Custom; this.targetProperty = targetProperty; this.properties = { key: properties.label, label: properties.label, onPropertyChange: properties.onPropertyChange, controlVisibility: properties.controlVisibility, onRender: this.onRender.bind(this), onDispose: this.onDispose.bind(this) }; } PropertyPaneControlToggles.prototype.render = function () { if (!this.elem) { return; } this.onRender(this.elem); }; PropertyPaneControlToggles.prototype.onDispose = function (element) { ReactDom.unmountComponentAtNode(element); }; PropertyPaneControlToggles.prototype.onRender = function (elem) { if (!this.elem) { this.elem = elem; } var element = React.createElement(ControlToggles_1.ControlToggles, { label: this.properties.label, onChange: this.onChange.bind(this), controlVisibility: this.properties.controlVisibility, // required to allow the component to be re-rendered by calling this.render() externally // stateKey: new Date().toString() }); ReactDom.render(element, elem); }; PropertyPaneControlToggles.prototype.onChange = function (controlName, enabled) { var _a; if (controlName === "all") { var newValue = tslib_1.__assign({}, this.properties.controlVisibility); for (var control in newValue) { if (newValue[control] !== undefined) { newValue[control] = enabled; } } this.properties.onPropertyChange(newValue); } else { this.properties.onPropertyChange(tslib_1.__assign(tslib_1.__assign({}, this.properties.controlVisibility), (_a = {}, _a[controlName] = enabled, _a))); } }; return PropertyPaneControlToggles; }()); exports.PropertyPaneControlToggles = PropertyPaneControlToggles; //# sourceMappingURL=PropertyPaneControlToggles.js.map