UNPKG

@pnp/spfx-property-controls

Version:

Reusable property pane controls for SharePoint Framework solutions

104 lines 4.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PropertyFieldRoleDefinitionPicker = PropertyFieldRoleDefinitionPicker; 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 PropertyFieldRoleDefinitionPickerHost_1 = tslib_1.__importDefault(require("./PropertyFieldRoleDefinitionPickerHost")); /** * Represents a PropertyFieldRoleDefinitionPicker object */ class PropertyFieldRoleDefinitionPickerBuilder { /** * Constructor method */ constructor(_targetProperty, _properties) { this.type = sp_property_pane_1.PropertyPaneFieldType.Custom; this.disabled = false; this.multiSelect = false; this.render = this.render.bind(this); this.targetProperty = _targetProperty; this.properties = _properties; this.properties.onDispose = this.dispose; this.properties.onRender = this.render; this.label = _properties.label; this.context = _properties.context; this.webAbsoluteUrl = _properties.webAbsoluteUrl; this.roleDefinitions = _properties.roleDefinitions; this.selectedRoleDefinition = _properties.selectedRoleDefinition; this.onPropertyChange = _properties.onPropertyChange; this.customProperties = _properties.properties; this.key = _properties.key; this.roleDefinitionsToExclude = _properties.roleDefinitionsToExclude; this.onGetErrorMessage = _properties.onGetErrorMessage; this.onRoleDefinitionsRetrieved = _properties.onRoleDefinitionsRetrieved; if (_properties.disabled === true) { this.disabled = _properties.disabled; } this.multiSelect = _properties.multiSelect; } /** * Renders the RoleDefinitionPicker field content */ render(elem, ctx, changeCallback) { const componentProps = { label: this.label, targetProperty: this.targetProperty, context: this.context, webAbsoluteUrl: this.webAbsoluteUrl, roleDefinitions: this.roleDefinitions, onDispose: this.dispose, onRender: this.render, onChange: changeCallback, onPropertyChange: this.onPropertyChange, properties: this.customProperties, key: this.key, disabled: this.disabled, multiSelect: this.multiSelect, onGetErrorMessage: this.onGetErrorMessage, roleDefinitionsToExclude: this.roleDefinitionsToExclude, selectedRoleDefinition: this.selectedRoleDefinition, onRoleDefinitionsRetrieved: this.onRoleDefinitionsRetrieved }; const element = React.createElement(PropertyFieldRoleDefinitionPickerHost_1.default, componentProps); // Calls the REACT content generator ReactDom.render(element, elem); } /** * Disposes the current object */ dispose(_elem) { // no-op; } } /** * Helper method to create a Role Definitions Picker on the PropertyPane. * @param targetProperty - Target property the SharePoint role definition picker is associated to. * @param properties - Strongly typed Role Definition Picker properties. */ function PropertyFieldRoleDefinitionPicker(targetProperty, properties) { //Create an internal properties object from the given properties const newProperties = { label: properties.label, targetProperty: targetProperty, context: properties.context, selectedRoleDefinition: properties.selectedRoleDefinition, onPropertyChange: properties.onPropertyChange, properties: properties.properties, onDispose: null, onRender: null, key: properties.key, roleDefinitions: properties.roleDefinitions, disabled: properties.disabled, roleDefinitionsToExclude: properties.roleDefinitionsToExclude, webAbsoluteUrl: properties.webAbsoluteUrl, multiSelect: properties.multiSelect, onGetErrorMessage: properties.onGetErrorMessage, onRoleDefinitionsRetrieved: properties.onRoleDefinitionsRetrieved }; //Calls the PropertyFieldRoleDefinitionPicker builder object //This object will simulate a PropertyFieldCustom to manage his rendering process return new PropertyFieldRoleDefinitionPickerBuilder(targetProperty, newProperties); } //# sourceMappingURL=PropertyFieldRoleDefinitionPicker.js.map