"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
/* tslint:disable */
var React = require("react");
/* tslint:enable */
var Utilities_1 = require("office-ui-fabric-react/lib/Utilities");
var Button_1 = require("office-ui-fabric-react/lib/Button");
var ExtendedPicker_1 = require("../../ExtendedPicker");
require("office-ui-fabric-react/lib/components/pickers/PeoplePicker/examples/PeoplePicker.Types.Example.scss");
var SelectedPeopleList_1 = require("../SelectedPeopleList/SelectedPeopleList");
var ExtendedSelectedItem_1 = require("../SelectedPeopleList/Items/ExtendedSelectedItem");
var Selection_1 = require("office-ui-fabric-react/lib/Selection");
var Icon_1 = require("office-ui-fabric-react/lib/Icon");
var styles = require("./SelectedPeopleList.Basic.Example.scss");
var PeopleSelectedItemsListExample = /** @class */ (function (_super) {
    tslib_1.__extends(PeopleSelectedItemsListExample, _super);
    function PeopleSelectedItemsListExample() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.selection = new Selection_1.Selection({ onSelectionChanged: function () { return _this._onSelectionChange(); } });
        _this._onRenderItem = function (props) {
            return React.createElement(ExtendedSelectedItem_1.ExtendedSelectedItem, tslib_1.__assign({}, props, { renderPersonaCoin: _this._renderPersonaElement }));
        };
        _this._setComponentRef = function (component) {
            _this._selectionList = component;
        };
        _this._onAddItemButtonClicked = function () {
            if (_this._selectionList) {
                if (!_this.index) {
                    _this.index = 0;
                }
                _this._selectionList.addItems([ExtendedPicker_1.people[_this.index]]);
                _this.index++;
            }
        };
        _this._onExpandItem = function (item) {
            // tslint:disable-next-line:no-any
            _this._selectionList.replaceItem(item, _this._getExpandedGroupItems(item));
        };
        return _this;
    }
    PeopleSelectedItemsListExample.prototype.render = function () {
        return (React.createElement("div", { className: 'ms-BasePicker-text' },
            React.createElement(Button_1.PrimaryButton, { text: "Add another item", onClick: this._onAddItemButtonClicked }),
            this._renderExtendedPicker()));
    };
    PeopleSelectedItemsListExample.prototype._renderExtendedPicker = function () {
        return (React.createElement(SelectedPeopleList_1.SelectedPeopleList, { className: 'ms-PeoplePicker', key: 'normal', removeButtonAriaLabel: 'Remove', defaultSelectedItems: [ExtendedPicker_1.people[40]], componentRef: this._setComponentRef, onCopyItems: this._onCopyItems, onExpandGroup: this._onExpandItem, copyMenuItemText: 'Copy', removeMenuItemText: 'Remove', selection: this.selection, onRenderItem: this._onRenderItem }));
    };
    PeopleSelectedItemsListExample.prototype._renderPersonaElement = function (props, defaultRender) {
        return React.createElement(Icon_1.Icon, { iconName: 'Contact', className: styles.persona });
    };
    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 ExtendedPicker_1.groupOne;
            case 'Group Two':
                return ExtendedPicker_1.groupTwo;
            default:
                return [];
        }
    };
    return PeopleSelectedItemsListExample;
}(Utilities_1.BaseComponent));
exports.PeopleSelectedItemsListExample = PeopleSelectedItemsListExample;
//# sourceMappingURL=SelectedPeopleList.Basic.Example.js.map