fundamental-ngx
Version: 
SAP Fiori Fundamentals, implemented in Angular
91 lines • 5.58 kB
JavaScript
/**
 * @fileoverview added by tsickle
 * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
 */
import { Directive, Input, ElementRef } from '@angular/core';
import { AbstractFdNgxClass } from '../utils/abstract-fd-ngx-class';
/**
 * @hidden
 * The base class for the icon component
 * @type {?}
 */
const BASE_ICON_CLASS = 'sap-icon';
/**
 * @hidden
 * Prefix for icon prop classes
 * @type {?}
 */
const PREFIX_ICON_CLASS = BASE_ICON_CLASS + '--';
/**
 * The directive that represents an icon.
 *
 * ```html
 * <fd-icon [glyph]="cart-approval" [size]="'l'"></fd-icon>
 * ```
 */
export class IconDirective extends AbstractFdNgxClass {
    /**
     * @hidden
     * @param {?} elementRef
     */
    constructor(elementRef) {
        super(elementRef);
        this.elementRef = elementRef;
        /**
         * The size of the icon
         * The predefined values for the input size are *xs*, *s*, *l*, and *xl*.
         * *size* can accept any other string, for example *xxs*, which will be translated into class *sap-icon--xxs*.
         */
        this.size = '';
    }
    /**
     * @hidden
     * @return {?}
     */
    _setProperties() {
        if (this.glyph) {
            this._addClassToElement(PREFIX_ICON_CLASS + this.glyph);
        }
        if (this.size) {
            this._addClassToElement(PREFIX_ICON_CLASS + this.size);
        }
    }
}
IconDirective.decorators = [
    { type: Directive, args: [{
                // TODO to be discussed
                // tslint:disable-next-line:directive-selector
                selector: 'fd-icon',
                host: {
                    role: 'presentation'
                }
            },] }
];
/** @nocollapse */
IconDirective.ctorParameters = () => [
    { type: ElementRef }
];
IconDirective.propDecorators = {
    glyph: [{ type: Input }],
    size: [{ type: Input }]
};
if (false) {
    /**
     * The glyph name
     * @type {?}
     */
    IconDirective.prototype.glyph;
    /**
     * The size of the icon
     * The predefined values for the input size are *xs*, *s*, *l*, and *xl*.
     * *size* can accept any other string, for example *xxs*, which will be translated into class *sap-icon--xxs*.
     * @type {?}
     */
    IconDirective.prototype.size;
    /**
     * @type {?}
     * @private
     */
    IconDirective.prototype.elementRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mdW5kYW1lbnRhbC1uZ3gvIiwic291cmNlcyI6WyJsaWIvaWNvbi9pY29uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7Ozs7TUFNOUQsZUFBZSxHQUFHLFVBQVU7Ozs7OztNQU01QixpQkFBaUIsR0FBRyxlQUFlLEdBQUcsSUFBSTs7Ozs7Ozs7QUFpQmhELE1BQU0sT0FBTyxhQUFjLFNBQVEsa0JBQWtCOzs7OztJQXdCakQsWUFBb0IsVUFBc0I7UUFDdEMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBREYsZUFBVSxHQUFWLFVBQVUsQ0FBWTs7Ozs7O1FBZGpDLFNBQUksR0FBVyxFQUFFLENBQUM7SUFnQjNCLENBQUM7Ozs7O0lBYkQsY0FBYztRQUNWLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNaLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFEO0lBQ0wsQ0FBQzs7O1lBN0JKLFNBQVMsU0FBQzs7O2dCQUdQLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixJQUFJLEVBQUU7b0JBQ0YsSUFBSSxFQUFFLGNBQWM7aUJBQ3ZCO2FBQ0o7Ozs7WUE3QjBCLFVBQVU7OztvQkFpQ2hDLEtBQUs7bUJBT0wsS0FBSzs7Ozs7OztJQVBOLDhCQUFlOzs7Ozs7O0lBT2YsNkJBQTJCOzs7OztJQWNmLG1DQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIEVsZW1lbnRSZWYsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RGZE5neENsYXNzIH0gZnJvbSAnLi4vdXRpbHMvYWJzdHJhY3QtZmQtbmd4LWNsYXNzJztcblxuLyoqIFxuICogQGhpZGRlblxuICogVGhlIGJhc2UgY2xhc3MgZm9yIHRoZSBpY29uIGNvbXBvbmVudCBcbiAqL1xuY29uc3QgQkFTRV9JQ09OX0NMQVNTID0gJ3NhcC1pY29uJztcblxuLyoqIFxuICogQGhpZGRlblxuICogUHJlZml4IGZvciBpY29uIHByb3AgY2xhc3NlcyBcbiAqL1xuY29uc3QgUFJFRklYX0lDT05fQ0xBU1MgPSBCQVNFX0lDT05fQ0xBU1MgKyAnLS0nO1xuXG4vKipcbiAqIFRoZSBkaXJlY3RpdmUgdGhhdCByZXByZXNlbnRzIGFuIGljb24uIFxuICpcbiAqIGBgYGh0bWxcbiAqIDxmZC1pY29uIFtnbHlwaF09XCJjYXJ0LWFwcHJvdmFsXCIgW3NpemVdPVwiJ2wnXCI+PC9mZC1pY29uPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIC8vIFRPRE8gdG8gYmUgZGlzY3Vzc2VkXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmRpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZmQtaWNvbicsXG4gICAgaG9zdDoge1xuICAgICAgICByb2xlOiAncHJlc2VudGF0aW9uJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgSWNvbkRpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0RmROZ3hDbGFzcyB7XG4gICAgXG4gICAgLyoqIFRoZSBnbHlwaCBuYW1lICovXG4gICAgQElucHV0KCkgZ2x5cGg7XG5cbiAgICAvKiogXG4gICAgICogVGhlIHNpemUgb2YgdGhlIGljb25cbiAgICAgKiBUaGUgcHJlZGVmaW5lZCB2YWx1ZXMgZm9yIHRoZSBpbnB1dCBzaXplIGFyZSAqeHMqLCAqcyosICpsKiwgYW5kICp4bCouXG4gICAgICogKnNpemUqIGNhbiBhY2NlcHQgYW55IG90aGVyIHN0cmluZywgZm9yIGV4YW1wbGUgKnh4cyosIHdoaWNoIHdpbGwgYmUgdHJhbnNsYXRlZCBpbnRvIGNsYXNzICpzYXAtaWNvbi0teHhzKi5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaXplOiBzdHJpbmcgPSAnJztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldFByb3BlcnRpZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmdseXBoKSB7XG4gICAgICAgICAgICB0aGlzLl9hZGRDbGFzc1RvRWxlbWVudChQUkVGSVhfSUNPTl9DTEFTUyArIHRoaXMuZ2x5cGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2l6ZSkge1xuICAgICAgICAgICAgdGhpcy5fYWRkQ2xhc3NUb0VsZW1lbnQoUFJFRklYX0lDT05fQ0xBU1MgKyB0aGlzLnNpemUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZik7XG4gICAgfVxufVxuIl19