office-ui-fabric-react
Version: 
Reusable React components for building experiences for Office 365.
73 lines • 3.5 kB
JavaScript
import * as tslib_1 from "tslib";
import * as React from 'react';
import { autobind, css, getId, } from '../../Utilities';
import { CommandButton } from '../../Button';
var GridCell = /** @class */ (function (_super) {
    tslib_1.__extends(GridCell, _super);
    function GridCell() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    GridCell.prototype.render = function () {
        var _a = this.props, item = _a.item, id = _a.id, className = _a.className, role = _a.role, selected = _a.selected, disabled = _a.disabled, onRenderItem = _a.onRenderItem, cellDisabledStyle = _a.cellDisabledStyle, cellIsSelectedStyle = _a.cellIsSelectedStyle, index = _a.index, label = _a.label, getClassNames = _a.getClassNames;
        return (React.createElement(CommandButton, { id: id, "data-index": index, "data-is-focusable": true, disabled: disabled, className: css(className, (_b = {},
                _b['' + cellIsSelectedStyle] = selected,
                _b['' + cellDisabledStyle] = disabled,
                _b)), onClick: this._onClick, onMouseEnter: this._onMouseEnter, onMouseMove: this._onMouseMove, onMouseLeave: this._onMouseLeave, onFocus: this._onFocus, role: role, "aria-selected": selected, ariaLabel: label, title: label, getClassNames: getClassNames }, onRenderItem(item)));
        var _b;
    };
    GridCell.prototype._onClick = function () {
        var _a = this.props, onClick = _a.onClick, disabled = _a.disabled, item = _a.item;
        if (onClick && !disabled) {
            onClick(item);
        }
    };
    GridCell.prototype._onMouseEnter = function (ev) {
        var _a = this.props, onHover = _a.onHover, disabled = _a.disabled, item = _a.item, onMouseEnter = _a.onMouseEnter;
        var didUpdateOnEnter = onMouseEnter && onMouseEnter(ev);
        if (!didUpdateOnEnter && onHover && !disabled) {
            onHover(item);
        }
    };
    GridCell.prototype._onMouseMove = function (ev) {
        var _a = this.props, onHover = _a.onHover, disabled = _a.disabled, item = _a.item, onMouseMove = _a.onMouseMove;
        var didUpdateOnMove = onMouseMove && onMouseMove(ev);
        if (!didUpdateOnMove && onHover && !disabled) {
            onHover(item);
        }
    };
    GridCell.prototype._onMouseLeave = function (ev) {
        var _a = this.props, onHover = _a.onHover, disabled = _a.disabled, onMouseLeave = _a.onMouseLeave;
        var didUpdateOnLeave = onMouseLeave && onMouseLeave(ev);
        if (!didUpdateOnLeave && onHover && !disabled) {
            onHover();
        }
    };
    GridCell.prototype._onFocus = function () {
        var _a = this.props, onFocus = _a.onFocus, disabled = _a.disabled, item = _a.item;
        if (onFocus && !disabled) {
            onFocus(item);
        }
    };
    GridCell.defaultProps = {
        disabled: false,
        id: getId('gridCell')
    };
    tslib_1.__decorate([
        autobind
    ], GridCell.prototype, "_onClick", null);
    tslib_1.__decorate([
        autobind
    ], GridCell.prototype, "_onMouseEnter", null);
    tslib_1.__decorate([
        autobind
    ], GridCell.prototype, "_onMouseMove", null);
    tslib_1.__decorate([
        autobind
    ], GridCell.prototype, "_onMouseLeave", null);
    tslib_1.__decorate([
        autobind
    ], GridCell.prototype, "_onFocus", null);
    return GridCell;
}(React.Component));
export { GridCell };
//# sourceMappingURL=GridCell.js.map