UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

106 lines 5.46 kB
import * as tslib_1 from "tslib"; /* tslint:disable */ import * as React from 'react'; /* tslint:enable */ import { PrimaryButton } from 'office-ui-fabric-react/lib/Button'; import { people, groupOne, groupTwo } from '../../../ExtendedPicker'; import 'office-ui-fabric-react/lib/components/pickers/PeoplePicker/examples/PeoplePicker.Types.Example.scss'; import { SelectedPeopleList } from '../SelectedPeopleList/SelectedPeopleList'; import { ExtendedSelectedItem } from '../SelectedPeopleList/Items/ExtendedSelectedItem'; import { Selection } from 'office-ui-fabric-react/lib/Selection'; import { Toggle } from 'office-ui-fabric-react/lib/Toggle'; import * as stylesImport from './SelectedPeopleList.Basic.Example.scss'; var styles = stylesImport; var PeopleSelectedItemsListExample = /** @class */ (function (_super) { tslib_1.__extends(PeopleSelectedItemsListExample, _super); function PeopleSelectedItemsListExample(props) { var _this = _super.call(this, props) || this; _this.selection = new Selection({ onSelectionChanged: function () { return _this._onSelectionChange(); } }); _this._toggleControlledComponent = function (ev, toggleState) { _this.setState({ controlledComponent: toggleState }); }; _this._onRenderItem = function (props) { return React.createElement(ExtendedSelectedItem, tslib_1.__assign({}, props)); }; _this._setComponentRef = function (component) { _this._selectionList = component; }; _this._onAddItemButtonClicked = function () { if (_this._selectionList) { if (!_this.index) { _this.index = 0; } if (_this.state.controlledComponent) { _this.setState({ currentSelectedItems: _this.state.currentSelectedItems.concat([people[_this.index]]) }); } else { _this._selectionList.addItems([people[_this.index]]); } _this.index++; } }; _this._onItemDeleted = function (item) { var indexToRemove = _this.state.currentSelectedItems.indexOf(item); _this.setState({ currentSelectedItems: _this.state.currentSelectedItems .slice(0, indexToRemove) .concat(_this.state.currentSelectedItems.slice(indexToRemove + 1)) }); }; _this._onExpandItem = function (item) { if (_this.state.controlledComponent) { var indexToExpand = _this.state.currentSelectedItems.indexOf(item); _this.setState({ currentSelectedItems: _this.state.currentSelectedItems .slice(0, indexToExpand) .concat(_this._getExpandedGroupItems(item)) .concat(_this.state.currentSelectedItems.slice(indexToExpand + 1)) }); } else { _this._selectionList.replaceItem(item, _this._getExpandedGroupItems(item)); } }; _this.state = { controlledComponent: false, currentSelectedItems: [people[40]] }; return _this; } PeopleSelectedItemsListExample.prototype.render = function () { return (React.createElement("div", { className: 'ms-BasePicker-text' }, React.createElement(Toggle, { label: "Controlled component", defaultChecked: false, onChange: this._toggleControlledComponent }), React.createElement(PrimaryButton, { text: "Add another item", onClick: this._onAddItemButtonClicked }), this._renderExtendedPicker())); }; PeopleSelectedItemsListExample.prototype._renderExtendedPicker = function () { return (React.createElement("div", { className: styles.container }, React.createElement(SelectedPeopleList, { key: 'normal', removeButtonAriaLabel: 'Remove', defaultSelectedItems: [people[40]], selectedItems: this.state.controlledComponent ? this.state.currentSelectedItems : undefined, componentRef: this._setComponentRef, onCopyItems: this._onCopyItems, onExpandGroup: this._onExpandItem, copyMenuItemText: 'Copy', removeMenuItemText: 'Remove', selection: this.selection, onRenderItem: this._onRenderItem, onItemDeleted: this.state.controlledComponent ? this._onItemDeleted : undefined }))); }; PeopleSelectedItemsListExample.prototype._onSelectionChange = function () { this.forceUpdate(); }; PeopleSelectedItemsListExample.prototype._onCopyItems = function (items) { var copyText = ''; items.forEach(function (item, index) { copyText += item.text; if (index < items.length - 1) { copyText += ', '; } }); return copyText; }; PeopleSelectedItemsListExample.prototype._getExpandedGroupItems = function (item) { switch (item.text) { case 'Group One': return groupOne; case 'Group Two': return groupTwo; default: return []; } }; return PeopleSelectedItemsListExample; }(React.Component)); export { PeopleSelectedItemsListExample }; //# sourceMappingURL=SelectedPeopleList.Basic.Example.js.map