define(["require", "exports", "react", "office-ui-fabric-react/lib/Button", "office-ui-fabric-react/lib/Dialog", "office-ui-fabric-react/lib/Panel", "@uifabric/react-hooks"], function (require, exports, React, Button_1, Dialog_1, Panel_1, react_hooks_1) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var explanation = 'If this panel is closed using light dismiss (clicking outside the panel), a confirmation dialog will appear.';
    var dialogContentProps = {
        type: Dialog_1.DialogType.normal,
        title: 'Are you sure you want to close the panel?'
    };
    var dialogModalProps = {
        isBlocking: true,
        styles: { main: { maxWidth: 450 } }
    };
    exports.PanelLightDismissCustomExample = function () {
        var _a = React.useState(false), isPanelOpen = _a[0], setIsPanelOpen = _a[1];
        var _b = React.useState(false), isDialogVisible = _b[0], setIsDialogVisible = _b[1];
        var openPanel = react_hooks_1.useConstCallback(function () { return setIsPanelOpen(true); });
        var dismissPanel = react_hooks_1.useConstCallback(function () { return setIsPanelOpen(false); });
        var showDialog = react_hooks_1.useConstCallback(function () { return setIsDialogVisible(true); });
        var hideDialog = react_hooks_1.useConstCallback(function (ev) {
            ev.preventDefault();
            setIsDialogVisible(false);
        });
        var hideDialogAndPanel = react_hooks_1.useConstCallback(function () {
            setIsPanelOpen(false);
            setIsDialogVisible(false);
        });
        return (React.createElement("div", null,
            explanation,
            React.createElement("br", null),
            React.createElement("br", null),
            React.createElement(Button_1.DefaultButton, { text: "Open panel", onClick: openPanel }),
            React.createElement(Panel_1.Panel, { isOpen: isPanelOpen, isLightDismiss: true, 
                // Use this prop to do special handling *only* for light dismiss.
                // If you provide this, the normal onDismiss won't be called for light dismiss.
                onLightDismissClick: showDialog, onDismiss: dismissPanel, headerText: "Panel with custom light dismiss behavior", closeButtonAriaLabel: "Close" },
                React.createElement("span", null, explanation)),
            React.createElement(Dialog_1.Dialog, { hidden: !isDialogVisible, onDismiss: hideDialog, dialogContentProps: dialogContentProps, modalProps: dialogModalProps },
                React.createElement(Dialog_1.DialogFooter, null,
                    React.createElement(Button_1.PrimaryButton, { onClick: hideDialogAndPanel, text: "Yes" }),
                    React.createElement(Button_1.DefaultButton, { onClick: hideDialog, text: "No" })))));
    };
});
//# sourceMappingURL=Panel.LightDismissCustom.Example.js.map