"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ButtonTest = void 0;
var tslib_1 = require("tslib");
var React = tslib_1.__importStar(require("react"));
var react_native_1 = require("react-native");
var ButtonShapeTestSection_1 = require("./ButtonShapeTestSection");
var ButtonSizeTestSection_1 = require("./ButtonSizeTestSection");
var ButtonVariantTestSection_1 = require("./ButtonVariantTestSection");
var ButtonFocusTest_1 = require("./deprecated/ButtonFocusTest");
var ButtonIconTest_1 = require("./deprecated/ButtonIconTest");
var E2EButtonTest_1 = require("./deprecated/E2EButtonTest");
var E2EButtonTest_2 = require("./E2EButtonTest");
var ToggleButtonTestSection_1 = require("./ToggleButtonTestSection");
var consts_1 = require("../../../../E2E/src/ButtonLegacy/consts");
var ButtonHOCTestSection_1 = require("../Button/ButtonHOCTestSection");
var ButtonIconTestSection_1 = require("../Button/ButtonIconTestSection");
var Test_1 = require("../Test");
var buttonSections = tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([
    {
        name: 'Button Variants',
        testID: consts_1.BUTTON_TESTPAGE,
        component: ButtonVariantTestSection_1.ButtonVariantTest,
    },
    {
        name: 'Icon Button',
        component: ButtonIconTestSection_1.ButtonIconTest,
    }
], react_native_1.Platform.select({
    // The following sections are not supported for iOS or Android
    ios: [],
    android: [],
    default: [
        {
            name: 'Toggle Button',
            component: ToggleButtonTestSection_1.ToggleButtonTest,
        },
        {
            name: 'Button Shape',
            component: ButtonShapeTestSection_1.ButtonShapeTest,
        },
    ],
}), true), [
    {
        name: 'Sizes',
        component: ButtonSizeTestSection_1.ButtonSizeTest,
    },
    react_native_1.Platform.select({
        android: null,
        default: {
            name: 'Customize, Compose, and Ref',
            component: ButtonHOCTestSection_1.ButtonHOCTest,
        },
    })
], false), react_native_1.Platform.select({
    android: [],
    default: [
        {
            name: 'Deprecated Basic Button',
            component: ButtonFocusTest_1.ButtonFocusTest_deprecated,
        },
        {
            name: 'Deprecated Icon Button',
            component: ButtonIconTest_1.ButtonIconTest_deprecated,
        },
    ],
}), true);
var e2eSections = [
    {
        name: 'E2E Button Testing',
        component: E2EButtonTest_2.E2EButtonTest,
    },
    {
        name: 'Deprecated E2E Button Testing',
        component: E2EButtonTest_1.E2EButtonTest_deprecated,
    },
];
var ButtonTest = function () {
    var status = {
        win32Status: 'Production',
        uwpStatus: 'Backlog',
        iosStatus: 'Production',
        macosStatus: 'Production',
        androidStatus: 'Production',
    };
    var description = 'Buttons are best used to enable a user to commit a change or complete steps in a task. They are typically found inside forms, dialogs, panels or pages. An example of their usage is confirming the deletion of a file in a confirmation dialog.\n\nWhen considering their place in a layout, contemplate the order in which a user will flow through the UI. As an example, in a form, the individual will need to read and interact with the form fields before submiting the form. Therefore, as a general rule, the button should be placed at the bottom of the UI container (a dialog, panel, or page) which holds the related UI elements.\n\nWhile buttons can technically be used to navigate a user to another part of the experience, this is not recommended unless that navigation is part of an action or their flow.';
    var spec = 'https://github.com/microsoft/fluentui-react-native/blob/main/packages/components/Button/SPEC.md';
    return (React.createElement(Test_1.Test, { name: "Button Test", description: description, spec: spec, sections: buttonSections, status: status, e2eSections: e2eSections }));
};
exports.ButtonTest = ButtonTest;
//# sourceMappingURL=ButtonTest.js.map