UNPKG

@kushki/ng-suka

Version:

<p align="center"> <h1 align="center">Suka Components Angular</h1> <p align="center"> An Angular implementation of the Suka Design System </p> </p>

86 lines 5.23 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, HostBinding } from '@angular/core'; import { iconDefs } from './icon-defs'; import { DomSanitizer } from '@angular/platform-browser'; export class Icon { /** * @param {?} sanitizer */ constructor(sanitizer) { this.sanitizer = sanitizer; this.baseClass = true; } /** * Sets the icon. * @param {?} value * @return {?} */ set icon(value) { this._icon = value; this.getIconDef(); } /** * @return {?} */ get icon() { return this._icon; } /** * @private * @return {?} */ getIconDef() { /** @type {?} */ const iconDefinition = iconDefs.filter((/** * @param {?} iconDef * @return {?} */ iconDef => iconDef.name === this._icon))[0]; if (!iconDefinition) { throw new Error(`Cant find '${this._icon}' icon.`); } this.content = this.sanitizer.bypassSecurityTrustHtml(iconDefinition.template); } } Icon.decorators = [ { type: Component, args: [{ selector: 'suka-icon', template: ` <span [innerHTML]="content"></span> ` }] } ]; /** @nocollapse */ Icon.ctorParameters = () => [ { type: DomSanitizer } ]; Icon.propDecorators = { baseClass: [{ type: HostBinding, args: ['class.suka-icon',] }], accessibilityLabel: [{ type: HostBinding, args: ['attr.aria-label',] }, { type: Input }], icon: [{ type: Input }] }; if (false) { /** * @type {?} * @protected */ Icon.prototype._icon; /** @type {?} */ Icon.prototype.content; /** @type {?} */ Icon.prototype.baseClass; /** * Label for accesibility applications * @type {?} */ Icon.prototype.accessibilityLabel; /** * @type {?} * @private */ Icon.prototype.sanitizer; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3VzaGtpL25nLXN1a2EvIiwic291cmNlcyI6WyJsaWIvaWNvbi9pY29uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBUW5FLE1BQU0sT0FBTyxJQUFJOzs7O0lBeUJmLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFwQlgsY0FBUyxHQUFHLElBQUksQ0FBQztJQW9CSCxDQUFDOzs7Ozs7SUFWL0MsSUFDSSxJQUFJLENBQUMsS0FBZTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7OztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOzs7OztJQUlPLFVBQVU7O2NBQ1YsY0FBYyxHQUFHLFFBQVEsQ0FBQyxNQUFNOzs7O1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7OztZQXZDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLFFBQVEsRUFBRTs7R0FFVDthQUNGOzs7O1lBUFEsWUFBWTs7O3dCQWFsQixXQUFXLFNBQUMsaUJBQWlCO2lDQUs3QixXQUFXLFNBQUMsaUJBQWlCLGNBQUcsS0FBSzttQkFLckMsS0FBSzs7Ozs7OztJQWJOLHFCQUEwQjs7SUFDMUIsdUJBQWtCOztJQUVsQix5QkFBaUQ7Ozs7O0lBS2pELGtDQUFvRTs7Ozs7SUFleEQseUJBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgSG9zdEJpbmRpbmdcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEljb25UeXBlIH0gZnJvbSAnLi9pY29uLXR5cGVzJztcbmltcG9ydCB7IGljb25EZWZzIH0gZnJvbSAnLi9pY29uLWRlZnMnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdWthLWljb24nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiY29udGVudFwiPjwvc3Bhbj5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBJY29uIHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiB2YXJpYWJsZS1uYW1lXG4gIHByb3RlY3RlZCBfaWNvbjogSWNvblR5cGU7XG4gIGNvbnRlbnQ6IFNhZmVIdG1sO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Muc3VrYS1pY29uJykgYmFzZUNsYXNzID0gdHJ1ZTtcblxuICAvKipcbiAgICogTGFiZWwgZm9yIGFjY2VzaWJpbGl0eSBhcHBsaWNhdGlvbnNcbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWxhYmVsJykgQElucHV0KCkgYWNjZXNzaWJpbGl0eUxhYmVsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGljb24uXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgaWNvbih2YWx1ZTogSWNvblR5cGUpIHtcbiAgICB0aGlzLl9pY29uID0gdmFsdWU7XG4gICAgdGhpcy5nZXRJY29uRGVmKCk7XG4gIH1cblxuICBnZXQgaWNvbigpOiBJY29uVHlwZSB7XG4gICAgcmV0dXJuIHRoaXMuX2ljb247XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG4gIHByaXZhdGUgZ2V0SWNvbkRlZigpOiB2b2lkIHtcbiAgICBjb25zdCBpY29uRGVmaW5pdGlvbiA9IGljb25EZWZzLmZpbHRlcihpY29uRGVmID0+IGljb25EZWYubmFtZSA9PT0gdGhpcy5faWNvbilbMF07XG4gICAgaWYgKCFpY29uRGVmaW5pdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW50IGZpbmQgJyR7dGhpcy5faWNvbn0nIGljb24uYCk7XG4gICAgfVxuICAgIHRoaXMuY29udGVudCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGljb25EZWZpbml0aW9uLnRlbXBsYXRlKTtcbiAgfVxufVxuIl19