/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes} checked by tsc
 */
import { Directive, Input } from '@angular/core';
import { NG_VALIDATORS } from '@angular/forms';
var UICheckboxRequiredValidatorDirective = /** @class */ (function () {
    function UICheckboxRequiredValidatorDirective() {
    }
    Object.defineProperty(UICheckboxRequiredValidatorDirective.prototype, "required", {
        get: /**
         * @return {?}
         */
        function () {
            return this._required;
        },
        set: /**
         * @param {?} value
         * @return {?}
         */
        function (value) {
            this._required = value !== false && value !== null;
            if (this._onChange) {
                this._onChange();
            }
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @param {?} c
     * @return {?}
     */
    UICheckboxRequiredValidatorDirective.prototype.validate = /**
     * @param {?} c
     * @return {?}
     */
    function (c) {
        if (this.required) {
            return c.value === true ? null : { 'required': true };
        }
        return null;
    };
    /**
     * @param {?} fn
     * @return {?}
     */
    UICheckboxRequiredValidatorDirective.prototype.registerOnValidatorChange = /**
     * @param {?} fn
     * @return {?}
     */
    function (fn) {
        this._onChange = fn;
    };
    UICheckboxRequiredValidatorDirective.decorators = [
        { type: Directive, args: [{
                    /* tslint:disable */
                    selector: 'ui-input[required][type=checkbox]',
                    /* tslint:enable */
                    providers: [{
                            provide: NG_VALIDATORS,
                            useExisting: UICheckboxRequiredValidatorDirective,
                            multi: true
                        }]
                },] },
    ];
    /** @nocollapse */
    UICheckboxRequiredValidatorDirective.propDecorators = {
        "required": [{ type: Input },],
    };
    return UICheckboxRequiredValidatorDirective;
}());
export { UICheckboxRequiredValidatorDirective };
function UICheckboxRequiredValidatorDirective_tsickle_Closure_declarations() {
    /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
    UICheckboxRequiredValidatorDirective.decorators;
    /**
     * @nocollapse
     * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
     */
    UICheckboxRequiredValidatorDirective.ctorParameters;
    /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
    UICheckboxRequiredValidatorDirective.propDecorators;
    /** @type {?} */
    UICheckboxRequiredValidatorDirective.prototype._required;
    /** @type {?} */
    UICheckboxRequiredValidatorDirective.prototype._onChange;
}
var UISwitchRequiredValidatorDirective = /** @class */ (function () {
    function UISwitchRequiredValidatorDirective() {
    }
    Object.defineProperty(UISwitchRequiredValidatorDirective.prototype, "required", {
        get: /**
         * @return {?}
         */
        function () {
            return this._required;
        },
        set: /**
         * @param {?} value
         * @return {?}
         */
        function (value) {
            this._required = value !== false && value !== null;
            if (this._onChange) {
                this._onChange();
            }
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @param {?} c
     * @return {?}
     */
    UISwitchRequiredValidatorDirective.prototype.validate = /**
     * @param {?} c
     * @return {?}
     */
    function (c) {
        if (this.required) {
            return c.value === true ? null : { 'required': true };
        }
        return null;
    };
    /**
     * @param {?} fn
     * @return {?}
     */
    UISwitchRequiredValidatorDirective.prototype.registerOnValidatorChange = /**
     * @param {?} fn
     * @return {?}
     */
    function (fn) {
        this._onChange = fn;
    };
    UISwitchRequiredValidatorDirective.decorators = [
        { type: Directive, args: [{
                    /* tslint:disable */
                    selector: 'ui-switch[required]',
                    /* tslint:enable */
                    providers: [{
                            provide: NG_VALIDATORS,
                            useExisting: UISwitchRequiredValidatorDirective,
                            multi: true
                        }]
                },] },
    ];
    /** @nocollapse */
    UISwitchRequiredValidatorDirective.propDecorators = {
        "required": [{ type: Input },],
    };
    return UISwitchRequiredValidatorDirective;
}());
export { UISwitchRequiredValidatorDirective };
function UISwitchRequiredValidatorDirective_tsickle_Closure_declarations() {
    /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
    UISwitchRequiredValidatorDirective.decorators;
    /**
     * @nocollapse
     * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
     */
    UISwitchRequiredValidatorDirective.ctorParameters;
    /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
    UISwitchRequiredValidatorDirective.propDecorators;
    /** @type {?} */
    UISwitchRequiredValidatorDirective.prototype._required;
    /** @type {?} */
    UISwitchRequiredValidatorDirective.prototype._onChange;
}
var UIRadioRequiredValidatorDirective = /** @class */ (function () {
    function UIRadioRequiredValidatorDirective() {
    }
    Object.defineProperty(UIRadioRequiredValidatorDirective.prototype, "required", {
        get: /**
         * @return {?}
         */
        function () {
            return this._required;
        },
        set: /**
         * @param {?} value
         * @return {?}
         */
        function (value) {
            this._required = value !== false && value !== null;
            if (this._onChange) {
                this._onChange();
            }
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @param {?} c
     * @return {?}
     */
    UIRadioRequiredValidatorDirective.prototype.validate = /**
     * @param {?} c
     * @return {?}
     */
    function (c) {
        if (this.required) {
            return c.value !== '' && c.value !== undefined && c.value !== null ? null : { 'required': true };
        }
        return null;
    };
    /**
     * @param {?} fn
     * @return {?}
     */
    UIRadioRequiredValidatorDirective.prototype.registerOnValidatorChange = /**
     * @param {?} fn
     * @return {?}
     */
    function (fn) {
        this._onChange = fn;
    };
    UIRadioRequiredValidatorDirective.decorators = [
        { type: Directive, args: [{
                    /* tslint:disable */
                    selector: 'ui-input[required][type=radio]',
                    /* tslint:enable */
                    providers: [{
                            provide: NG_VALIDATORS,
                            useExisting: UIRadioRequiredValidatorDirective,
                            multi: true
                        }]
                },] },
    ];
    /** @nocollapse */
    UIRadioRequiredValidatorDirective.propDecorators = {
        "required": [{ type: Input },],
    };
    return UIRadioRequiredValidatorDirective;
}());
export { UIRadioRequiredValidatorDirective };
function UIRadioRequiredValidatorDirective_tsickle_Closure_declarations() {
    /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
    UIRadioRequiredValidatorDirective.decorators;
    /**
     * @nocollapse
     * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
     */
    UIRadioRequiredValidatorDirective.ctorParameters;
    /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
    UIRadioRequiredValidatorDirective.propDecorators;
    /** @type {?} */
    UIRadioRequiredValidatorDirective.prototype._required;
    /** @type {?} */
    UIRadioRequiredValidatorDirective.prototype._onChange;
}
var UISelectRequiredValidatorDirective = /** @class */ (function () {
    function UISelectRequiredValidatorDirective() {
    }
    Object.defineProperty(UISelectRequiredValidatorDirective.prototype, "required", {
        get: /**
         * @return {?}
         */
        function () {
            return this._required;
        },
        set: /**
         * @param {?} value
         * @return {?}
         */
        function (value) {
            this._required = value !== false && value !== null;
            if (this._onChange) {
                this._onChange();
            }
        },
        enumerable: true,
        configurable: true
    });
    /**
     * @param {?} c
     * @return {?}
     */
    UISelectRequiredValidatorDirective.prototype.validate = /**
     * @param {?} c
     * @return {?}
     */
    function (c) {
        if (this.required) {
            return c.value !== '' && c.value !== undefined && c.value !== null ? null : { 'required': true };
        }
        return null;
    };
    /**
     * @param {?} fn
     * @return {?}
     */
    UISelectRequiredValidatorDirective.prototype.registerOnValidatorChange = /**
     * @param {?} fn
     * @return {?}
     */
    function (fn) {
        this._onChange = fn;
    };
    UISelectRequiredValidatorDirective.decorators = [
        { type: Directive, args: [{
                    /* tslint:disable */
                    selector: 'ui-select[required]',
                    /* tslint:enable */
                    providers: [{
                            provide: NG_VALIDATORS,
                            useExisting: UISelectRequiredValidatorDirective,
                            multi: true
                        }]
                },] },
    ];
    /** @nocollapse */
    UISelectRequiredValidatorDirective.propDecorators = {
        "required": [{ type: Input },],
    };
    return UISelectRequiredValidatorDirective;
}());
export { UISelectRequiredValidatorDirective };
function UISelectRequiredValidatorDirective_tsickle_Closure_declarations() {
    /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
    UISelectRequiredValidatorDirective.decorators;
    /**
     * @nocollapse
     * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
     */
    UISelectRequiredValidatorDirective.ctorParameters;
    /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
    UISelectRequiredValidatorDirective.propDecorators;
    /** @type {?} */
    UISelectRequiredValidatorDirective.prototype._required;
    /** @type {?} */
    UISelectRequiredValidatorDirective.prototype._onChange;
}

//# sourceMappingURL=data:application/json;base64, 