office-ui-fabric-react
Version: 
Reusable React components for building experiences for Office 365.
78 lines • 3.85 kB
JavaScript
define(["require", "exports", "tslib", "react", "office-ui-fabric-react/lib/TextField", "office-ui-fabric-react/lib/DetailsList", "office-ui-fabric-react/lib/MarqueeSelection", "office-ui-fabric-react/lib/Utilities"], function (require, exports, tslib_1, React, TextField_1, DetailsList_1, MarqueeSelection_1, Utilities_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var _items = [];
    var _columns = [
        {
            key: 'column1',
            name: 'Name',
            fieldName: 'name',
            minWidth: 100,
            maxWidth: 200,
            isResizable: true
        },
        {
            key: 'column2',
            name: 'Value',
            fieldName: 'value',
            minWidth: 100,
            maxWidth: 200,
            isResizable: true
        },
    ];
    var DetailsListCompactExample = /** @class */ (function (_super) {
        tslib_1.__extends(DetailsListCompactExample, _super);
        function DetailsListCompactExample(props) {
            var _this = _super.call(this, props) || this;
            // Populate with items for demos.
            if (_items.length === 0) {
                for (var i = 0; i < 200; i++) {
                    _items.push({
                        key: i,
                        name: 'Item ' + i,
                        value: i
                    });
                }
            }
            _this._selection = new DetailsList_1.Selection({
                onSelectionChanged: function () { return _this.setState({ selectionDetails: _this._getSelectionDetails() }); }
            });
            _this.state = {
                items: _items,
                selectionDetails: _this._getSelectionDetails()
            };
            return _this;
        }
        DetailsListCompactExample.prototype.render = function () {
            var _a = this.state, items = _a.items, selectionDetails = _a.selectionDetails;
            return (React.createElement("div", null,
                React.createElement("div", null, selectionDetails),
                React.createElement(TextField_1.TextField, { label: 'Filter by name:', onChanged: this._onChanged }),
                React.createElement(MarqueeSelection_1.MarqueeSelection, { selection: this._selection },
                    React.createElement(DetailsList_1.DetailsList, { items: items, columns: _columns, setKey: 'set', layoutMode: DetailsList_1.DetailsListLayoutMode.fixedColumns, selection: this._selection, selectionPreservedOnEmptyClick: true, onItemInvoked: this._onItemInvoked, compact: true }))));
        };
        DetailsListCompactExample.prototype._getSelectionDetails = function () {
            var selectionCount = this._selection.getSelectedCount();
            switch (selectionCount) {
                case 0:
                    return 'No items selected';
                case 1:
                    return '1 item selected: ' + this._selection.getSelection()[0].name;
                default:
                    return selectionCount + " items selected";
            }
        };
        DetailsListCompactExample.prototype._onChanged = function (text) {
            this.setState({ items: text ? _items.filter(function (i) { return i.name.toLowerCase().indexOf(text) > -1; }) : _items });
        };
        DetailsListCompactExample.prototype._onItemInvoked = function (item) {
            alert("Item invoked: " + item.name);
        };
        tslib_1.__decorate([
            Utilities_1.autobind
        ], DetailsListCompactExample.prototype, "_onChanged", null);
        return DetailsListCompactExample;
    }(React.Component));
    exports.DetailsListCompactExample = DetailsListCompactExample;
});
//# sourceMappingURL=DetailsList.Compact.Example.js.map