office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
80 lines • 4.02 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,
ariaLabel: 'Operations for name'
},
{
key: 'column2',
name: 'Value',
fieldName: 'value',
minWidth: 100,
maxWidth: 200,
isResizable: true,
ariaLabel: 'Operations for value'
},
];
var DetailsListBasicExample = /** @class */ (function (_super) {
tslib_1.__extends(DetailsListBasicExample, _super);
function DetailsListBasicExample(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;
}
DetailsListBasicExample.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, ariaLabelForSelectionColumn: 'Toggle selection', ariaLabelForSelectAllCheckbox: 'Toggle selection for all items', onItemInvoked: this._onItemInvoked }))));
};
DetailsListBasicExample.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";
}
};
DetailsListBasicExample.prototype._onChanged = function (text) {
this.setState({ items: text ? _items.filter(function (i) { return i.name.toLowerCase().indexOf(text) > -1; }) : _items });
};
DetailsListBasicExample.prototype._onItemInvoked = function (item) {
alert("Item invoked: " + item.name);
};
tslib_1.__decorate([
Utilities_1.autobind
], DetailsListBasicExample.prototype, "_onChanged", null);
return DetailsListBasicExample;
}(React.Component));
exports.DetailsListBasicExample = DetailsListBasicExample;
});
//# sourceMappingURL=DetailsList.Basic.Example.js.map