/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
import { Directive, ElementRef, HostBinding, Input } from '@angular/core';
/** @enum {number} */
var IgxHintPosition = {
    START: 0,
    END: 1,
};
IgxHintPosition[IgxHintPosition.START] = 'START';
IgxHintPosition[IgxHintPosition.END] = 'END';
var IgxHintDirective = /** @class */ (function () {
    function IgxHintDirective(_element) {
        this._element = _element;
        this._position = IgxHintPosition.START;
        /**
         * Sets/gets whether the hint position is at the start.
         * Default value is `false`.
         * ```typescript
         * \@ViewChild('hint', {read: IgxHintDirective})
         * public igxHint: IgxHintDirective;
         * this.igxHint.isPositionStart = true;
         * ```
         * ```typescript
         * let isHintPositionStart = this.igxHint.isPositionStart;
         * ```
         * \@memberof IgxHintDirective
         */
        this.isPositionStart = false;
        /**
         * Sets/gets whether the hint position is at the end.
         * Default value is `false`.
         * ```typescript
         * \@ViewChild('hint', {read: IgxHintDirective})
         * public igxHint: IgxHintDirective;
         * this.igxHint.isPositionEnd = true;
         * ```
         * ```typescript
         * let isHintPositionEnd = this.igxHint.isPositionEnd;
         * ```
         * \@memberof IgxHintDirective
         */
        this.isPositionEnd = false;
    }
    Object.defineProperty(IgxHintDirective.prototype, "position", {
        /**
         * Gets the position of the hint.
         * ```typescript
         * @ViewChild('hint', {read: IgxHintDirective})
         * public igxHint: IgxHintDirective;
         * let hintPosition =  this.igxHint.position;
         * ```
         * @memberof IgxHintDirective
         */
        get: /**
         * Gets the position of the hint.
         * ```typescript
         * \@ViewChild('hint', {read: IgxHintDirective})
         * public igxHint: IgxHintDirective;
         * let hintPosition =  this.igxHint.position;
         * ```
         * \@memberof IgxHintDirective
         * @return {?}
         */
        function () {
            return this._position.toString();
        },
        /**
         * Sets the position of the hint.
         * ```html
         * <igx-input-group>
         *  <input igxInput type="text"/>
         *  <igx-hint #hint [position]="'start'">IgxHint displayed at the start</igx-hint>
         * </igx-input-group>
         * ```
         * @memberof IgxHintDirective
         */
        set: /**
         * Sets the position of the hint.
         * ```html
         * <igx-input-group>
         *  <input igxInput type="text"/>
         *  <igx-hint #hint [position]="'start'">IgxHint displayed at the start</igx-hint>
         * </igx-input-group>
         * ```
         * \@memberof IgxHintDirective
         * @param {?} value
         * @return {?}
         */
        function (value) {
            /** @type {?} */
            var position = ((/** @type {?} */ (IgxHintPosition)))[value.toUpperCase()];
            if (position !== undefined) {
                this._position = position;
                this._applyPosition(this._position);
            }
        },
        enumerable: true,
        configurable: true
    });
    /**
     *@hidden
     */
    /**
     * @hidden
     * @return {?}
     */
    IgxHintDirective.prototype.ngOnInit = /**
     * @hidden
     * @return {?}
     */
    function () {
        this._applyPosition(this._position);
    };
    /**
     * @private
     * @param {?} position
     * @return {?}
     */
    IgxHintDirective.prototype._applyPosition = /**
     * @private
     * @param {?} position
     * @return {?}
     */
    function (position) {
        this.isPositionStart = this.isPositionEnd = false;
        switch (position) {
            case IgxHintPosition.START:
                this.isPositionStart = true;
                break;
            case IgxHintPosition.END:
                this.isPositionEnd = true;
                break;
            default: break;
        }
    };
    IgxHintDirective.decorators = [
        { type: Directive, args: [{
                    selector: 'igx-hint,[igxHint]'
                },] }
    ];
    /** @nocollapse */
    IgxHintDirective.ctorParameters = function () { return [
        { type: ElementRef }
    ]; };
    IgxHintDirective.propDecorators = {
        isPositionStart: [{ type: HostBinding, args: ['class.igx-input-group__hint-item--start',] }],
        isPositionEnd: [{ type: HostBinding, args: ['class.igx-input-group__hint-item--end',] }],
        position: [{ type: Input, args: ['position',] }]
    };
    return IgxHintDirective;
}());
export { IgxHintDirective };
if (false) {
    /**
     * @type {?}
     * @private
     */
    IgxHintDirective.prototype._position;
    /**
     * Sets/gets whether the hint position is at the start.
     * Default value is `false`.
     * ```typescript
     * \@ViewChild('hint', {read: IgxHintDirective})
     * public igxHint: IgxHintDirective;
     * this.igxHint.isPositionStart = true;
     * ```
     * ```typescript
     * let isHintPositionStart = this.igxHint.isPositionStart;
     * ```
     * \@memberof IgxHintDirective
     * @type {?}
     */
    IgxHintDirective.prototype.isPositionStart;
    /**
     * Sets/gets whether the hint position is at the end.
     * Default value is `false`.
     * ```typescript
     * \@ViewChild('hint', {read: IgxHintDirective})
     * public igxHint: IgxHintDirective;
     * this.igxHint.isPositionEnd = true;
     * ```
     * ```typescript
     * let isHintPositionEnd = this.igxHint.isPositionEnd;
     * ```
     * \@memberof IgxHintDirective
     * @type {?}
     */
    IgxHintDirective.prototype.isPositionEnd;
    /**
     * @type {?}
     * @private
     */
    IgxHintDirective.prototype._element;
}
//# sourceMappingURL=data:application/json;base64, 