/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
import { Directive, HostBinding, NgModule, Input } from '@angular/core';
/** @enum {string} */
var IgxDividerType = {
    DEFAULT: 'default',
    DASHED: 'dashed',
};
export { IgxDividerType };
/** @type {?} */
var NEXT_ID = 0;
var IgxDividerDirective = /** @class */ (function () {
    function IgxDividerDirective() {
        /**
         * Sets/gets the `id` of the divider.
         * If not set, `id` will have value `"igx-divider-0"`;
         * ```html
         * <igx-divider id="my-divider"></igx-divider>
         * ```
         * ```typescript
         * let dividerId =  this.divider.id;
         * ```
         */
        this.id = "igx-divider-" + NEXT_ID++;
        /**
         * An \@Input property that sets the value of the `inset` attribute.
         * If not provided it will be set to `'0'`.
         * ```html
         * <igx-divider inset="16px"></igx-divider>
         * ```
         */
        this._inset = '0';
        /**
         * An \@Input property that sets the value of `role` attribute.
         * If not the default value of `separator` will be used.
         */
        this.role = 'separator';
        /**
         * Sets the type of the divider. The default value
         * is `default`. The divider can also be `dashed`;
         * ```html
         * <igx-divider type="dashed"></igx-divider>
         * ```
         */
        this.type = IgxDividerType.DEFAULT;
        /**
         * An \@Input that sets the `middle` attribute of the divider.
         * If set to `true` and an `inset` value has been provided,
         * the divider will start shrinking from both ends.
         * ```html
         * <igx-divider [middle]="true"></igx-divider>
         * ```
         */
        this.middle = false;
        /**
         * An \@Input that sets the vertical attribute of the divider.
         * ```html
         * <igx-divider [vertical]="true"></igx-divider>
         * ```
         */
        this.vertical = false;
    }
    Object.defineProperty(IgxDividerDirective.prototype, "isDashed", {
        get: /**
         * @return {?}
         */
        function () {
            return this.type === IgxDividerType.DASHED;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxDividerDirective.prototype, "isDefault", {
        /**
         * A getter that returns `true` if the type of the divider is `default`;
         * ```typescript
         * const isDefault = this.divider.isDefault;
         * ```
         */
        get: /**
         * A getter that returns `true` if the type of the divider is `default`;
         * ```typescript
         * const isDefault = this.divider.isDefault;
         * ```
         * @return {?}
         */
        function () {
            return this.type === IgxDividerType.DEFAULT;
        },
        enumerable: true,
        configurable: true
    });
    Object.defineProperty(IgxDividerDirective.prototype, "inset", {
        /**
         * Gets the current divider inset in terms of
         * margin representation as applied to the divider.
         * ```typescript
         * const inset = this.divider.inset;
         * ```
         */
        get: /**
         * Gets the current divider inset in terms of
         * margin representation as applied to the divider.
         * ```typescript
         * const inset = this.divider.inset;
         * ```
         * @return {?}
         */
        function () {
            /** @type {?} */
            var baseMargin = '0';
            if (this.middle) {
                if (this.vertical) {
                    return this._inset + " " + baseMargin;
                }
                return baseMargin + " " + this._inset;
            }
            else {
                if (this.vertical) {
                    return this._inset + " " + baseMargin + " 0 " + baseMargin;
                }
                return baseMargin + " 0 " + baseMargin + " " + this._inset;
            }
        },
        /**
         * Sets the inset of the divider from the side(s).
         * If the divider attribute `middle` is set to `true`,
         * it will inset the divider on both sides.
         * ```typescript
         * this.divider.inset = '32px';
         * ```
         */
        set: /**
         * Sets the inset of the divider from the side(s).
         * If the divider attribute `middle` is set to `true`,
         * it will inset the divider on both sides.
         * ```typescript
         * this.divider.inset = '32px';
         * ```
         * @param {?} value
         * @return {?}
         */
        function (value) {
            this._inset = value;
        },
        enumerable: true,
        configurable: true
    });
    IgxDividerDirective.decorators = [
        { type: Directive, args: [{
                    // tslint:disable-next-line:directive-selector
                    selector: 'igx-divider'
                },] }
    ];
    IgxDividerDirective.propDecorators = {
        id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],
        _inset: [{ type: Input, args: ['inset',] }],
        role: [{ type: HostBinding, args: ['attr.role',] }, { type: Input }],
        type: [{ type: HostBinding, args: ['class.igx-divider',] }, { type: Input }],
        isDashed: [{ type: HostBinding, args: ['class.igx-divider--dashed',] }],
        middle: [{ type: HostBinding, args: ['class.igx-divider--inset',] }, { type: Input }],
        vertical: [{ type: HostBinding, args: ['class.igx-divider--vertical',] }, { type: Input }],
        inset: [{ type: HostBinding, args: ['style.margin',] }]
    };
    return IgxDividerDirective;
}());
export { IgxDividerDirective };
if (false) {
    /**
     * Sets/gets the `id` of the divider.
     * If not set, `id` will have value `"igx-divider-0"`;
     * ```html
     * <igx-divider id="my-divider"></igx-divider>
     * ```
     * ```typescript
     * let dividerId =  this.divider.id;
     * ```
     * @type {?}
     */
    IgxDividerDirective.prototype.id;
    /**
     * An \@Input property that sets the value of the `inset` attribute.
     * If not provided it will be set to `'0'`.
     * ```html
     * <igx-divider inset="16px"></igx-divider>
     * ```
     * @type {?}
     * @private
     */
    IgxDividerDirective.prototype._inset;
    /**
     * An \@Input property that sets the value of `role` attribute.
     * If not the default value of `separator` will be used.
     * @type {?}
     */
    IgxDividerDirective.prototype.role;
    /**
     * Sets the type of the divider. The default value
     * is `default`. The divider can also be `dashed`;
     * ```html
     * <igx-divider type="dashed"></igx-divider>
     * ```
     * @type {?}
     */
    IgxDividerDirective.prototype.type;
    /**
     * An \@Input that sets the `middle` attribute of the divider.
     * If set to `true` and an `inset` value has been provided,
     * the divider will start shrinking from both ends.
     * ```html
     * <igx-divider [middle]="true"></igx-divider>
     * ```
     * @type {?}
     */
    IgxDividerDirective.prototype.middle;
    /**
     * An \@Input that sets the vertical attribute of the divider.
     * ```html
     * <igx-divider [vertical]="true"></igx-divider>
     * ```
     * @type {?}
     */
    IgxDividerDirective.prototype.vertical;
}
var IgxDividerModule = /** @class */ (function () {
    function IgxDividerModule() {
    }
    IgxDividerModule.decorators = [
        { type: NgModule, args: [{
                    declarations: [IgxDividerDirective],
                    exports: [IgxDividerDirective]
                },] }
    ];
    return IgxDividerModule;
}());
export { IgxDividerModule };
//# sourceMappingURL=data:application/json;base64, 