@pnp/spfx-property-controls
Version:
Reusable property pane controls for SharePoint Framework solutions
38 lines • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PropertyFieldLinkWithCallout = PropertyFieldLinkWithCallout;
const tslib_1 = require("tslib");
const React = tslib_1.__importStar(require("react"));
const ReactDOM = tslib_1.__importStar(require("react-dom"));
const sp_property_pane_1 = require("@microsoft/sp-property-pane");
const PropertyFieldLinkWithCalloutHost_1 = tslib_1.__importDefault(require("./PropertyFieldLinkWithCalloutHost"));
const omit_1 = tslib_1.__importDefault(require("lodash/omit"));
/**
* Represents a PropertyFieldLinkWithCallout object
*/
class PropertyFieldLinkWithCalloutBuilder {
constructor(_targetProperty, _properties) {
this.type = sp_property_pane_1.PropertyPaneFieldType.Custom;
this.targetProperty = _targetProperty;
this.properties = _properties;
this.properties.onRender = this._render.bind(this);
this.properties.onDispose = this._dispose.bind(this);
}
_render(elem, context, changeCallback) {
const props = (0, omit_1.default)(this.properties);
const element = React.createElement(PropertyFieldLinkWithCalloutHost_1.default, Object.assign({}, props));
ReactDOM.render(element, elem);
}
_dispose(elem) {
ReactDOM.unmountComponentAtNode(elem);
}
}
/**
* Helper method to create a Link with Callout component on the PropertyPane.
* @param targetProperty - Target property the Link with Callout component is associated to.
* @param properties - Strongly typed Link with Callout component properties.
*/
function PropertyFieldLinkWithCallout(targetProperty, properties) {
return new PropertyFieldLinkWithCalloutBuilder(targetProperty, Object.assign(Object.assign({}, properties), { onRender: null, onDispose: null }));
}
//# sourceMappingURL=PropertyFieldLinkWithCallout.js.map