define(["require", "exports", "tslib", "react", "office-ui-fabric-react/lib/Button", "office-ui-fabric-react/lib/FocusTrapZone", "office-ui-fabric-react/lib/Link", "office-ui-fabric-react/lib/TextField", "office-ui-fabric-react/lib/Toggle"], function (require, exports, tslib_1, React, Button_1, FocusTrapZone_1, Link_1, TextField_1, Toggle_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var BoxExample = /** @class */ (function (_super) {
        tslib_1.__extends(BoxExample, _super);
        function BoxExample(props) {
            var _this = _super.call(this, props) || this;
            _this._onButtonClickHandler = function () {
                _this.setState({
                    isChecked: true
                });
            };
            _this._onExitButtonClickHandler = function () {
                _this.setState({
                    isChecked: false
                });
            };
            _this._onFocusTrapZoneToggleChanged = function (isChecked) {
                _this.setState({
                    isChecked: isChecked
                }, function () { return _this._toggle.focus(); });
            };
            _this._setRef = function (toggle) {
                _this._toggle = toggle;
            };
            _this.state = {
                isChecked: false
            };
            return _this;
        }
        BoxExample.prototype.render = function () {
            var _this = this;
            var isChecked = this.state.isChecked;
            var className = 'shouldFocus input';
            return (React.createElement("div", null,
                React.createElement(Button_1.DefaultButton, { onClick: this._onButtonClickHandler, text: "Go to Trap Zone" }),
                (function () {
                    if (isChecked) {
                        return React.createElement(FocusTrapZone_1.FocusTrapZone, { firstFocusableSelector: className }, _this._internalContents());
                    }
                    else {
                        return React.createElement("div", null, _this._internalContents());
                    }
                })()));
        };
        BoxExample.prototype._internalContents = function () {
            var _this = this;
            var isChecked = this.state.isChecked;
            return (React.createElement("div", { className: "ms-FocusTrapZoneBoxExample" },
                React.createElement(TextField_1.TextField, { label: "Default TextField", placeholder: "Input inside Focus Trap Zone", className: "" }),
                React.createElement(Link_1.Link, { href: "", className: "" }, "Hyperlink inside FocusTrapZone"),
                React.createElement("br", null),
                React.createElement("br", null),
                React.createElement("div", { className: "shouldFocus input" },
                    React.createElement(Toggle_1.Toggle, { componentRef: this._setRef, checked: isChecked, onChanged: this._onFocusTrapZoneToggleChanged, label: "Focus Trap Zone", onText: "On", offText: "Off" })),
                (function () {
                    if (isChecked) {
                        return (React.createElement(Button_1.DefaultButton, { secondaryText: "Exit Focus Trap Zone", onClick: _this._onExitButtonClickHandler, text: "Exit Focus Trap Zone" }));
                    }
                })()));
        };
        return BoxExample;
    }(React.Component));
    exports.default = BoxExample;
});
//# sourceMappingURL=FocusTrapZone.Box.FocusOnCustomElement.Example.js.map