define(["require", "exports", "tslib", "react", "@fluentui/react/lib/DetailsList", "@fluentui/react/lib/Link"], function (require, exports, tslib_1, React, DetailsList_1, Link_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    exports.DetailsListNavigatingFocusExample = void 0;
    var DetailsListNavigatingFocusExample = /** @class */ (function (_super) {
        tslib_1.__extends(DetailsListNavigatingFocusExample, _super);
        function DetailsListNavigatingFocusExample() {
            var _this = _super !== null && _super.apply(this, arguments) || this;
            _this.state = {
                items: generateItems(''),
                key: 0,
            };
            _this._columns = [
                {
                    key: 'filepath',
                    name: 'File path',
                    onRender: function (item) { return (
                    // eslint-disable-next-line react/jsx-no-bind
                    React.createElement(Link_1.Link, { key: item, onClick: function () { return _this._navigate(item); } }, item)); },
                },
                {
                    key: 'size',
                    name: 'Size',
                    onRender: function (item) { return '4 KB'; },
                },
            ];
            _this._navigate = function (name) {
                _this.setState({
                    items: generateItems(name + ' / '),
                    initialFocusedIndex: 0,
                    // Simulate navigation by updating the list's key, which causes it to re-render
                    key: _this.state.key + 1,
                });
            };
            return _this;
        }
        DetailsListNavigatingFocusExample.prototype.render = function () {
            // By default, when the list is re-rendered on navigation or some other event,
            // focus goes to the list container and the user has to tab back into the list body.
            // Setting initialFocusedIndex makes focus go directly to a particular item instead.
            return (React.createElement(DetailsList_1.DetailsList, { key: this.state.key, items: this.state.items, columns: this._columns, onItemInvoked: this._navigate, initialFocusedIndex: this.state.initialFocusedIndex, ariaLabelForSelectionColumn: "Toggle selection", ariaLabelForSelectAllCheckbox: "Toggle selection for all items", checkButtonAriaLabel: "select row" }));
        };
        return DetailsListNavigatingFocusExample;
    }(React.Component));
    exports.DetailsListNavigatingFocusExample = DetailsListNavigatingFocusExample;
    function generateItems(parent) {
        return Array.prototype.map.call('ABCDEFGHI', function (name) { return parent + 'Folder ' + name; });
    }
});
//# sourceMappingURL=DetailsList.NavigatingFocus.Example.js.map