office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
50 lines (49 loc) • 3 kB
JavaScript
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
define(["require", "exports", 'react', '../../Persona', './Facepile.scss'], function (require, exports, React, Persona_1) {
"use strict";
var Facepile = (function (_super) {
__extends(Facepile, _super);
function Facepile() {
_super.apply(this, arguments);
}
Facepile.prototype.render = function () {
var _this = this;
return (React.createElement("div", {className: 'ms-Facepile'}, React.createElement("div", {className: 'ms-Facepile-members'}, this.props.personas.map(function (persona, index) {
var personaControl = _this._getPersonaControl(persona);
return persona.onClick ?
_this._getElementWithOnClickEvent(personaControl, persona, index) :
_this._getElementWithoutOnClickEvent(personaControl, persona, index);
}))));
};
Facepile.prototype._getPersonaControl = function (persona) {
return React.createElement(Persona_1.Persona, {imageInitials: persona.imageInitials, imageUrl: persona.imageUrl, initialsColor: persona.initialsColor, primaryText: persona.personaName, size: Persona_1.PersonaSize.extraSmall, hidePersonaDetails: true});
};
Facepile.prototype._getElementWithOnClickEvent = function (personaControl, persona, index) {
return React.createElement("button", {className: 'ms-Facepile-itemBtn ms-Facepile-itemBtn--member', title: persona.personaName, key: index, onClick: this._onPersonaClick.bind(this, persona), onMouseMove: this._onPersonaMouseMove.bind(this, persona), onMouseOut: this._onPersonaMouseOut.bind(this, persona)}, personaControl);
};
Facepile.prototype._getElementWithoutOnClickEvent = function (personaControl, persona, index) {
return React.createElement("div", {className: 'ms-Facepile-itemBtn ms-Facepile-itemBtn--member', title: persona.personaName, key: index, onMouseMove: this._onPersonaMouseMove.bind(this, persona), onMouseOut: this._onPersonaMouseOut.bind(this, persona)}, personaControl);
};
Facepile.prototype._onPersonaClick = function (persona, ev) {
persona.onClick(persona, ev);
ev.preventDefault();
ev.stopPropagation();
};
Facepile.prototype._onPersonaMouseMove = function (persona, ev) {
if (!!persona.onMouseMove) {
persona.onMouseMove(persona, ev);
}
};
Facepile.prototype._onPersonaMouseOut = function (persona, ev) {
if (!!persona.onMouseOut) {
persona.onMouseOut(persona, ev);
}
};
return Facepile;
}(React.Component));
exports.Facepile = Facepile;
});