@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
JavaScript
/**
* @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