@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.25 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;
this.size = 16;
}
/**
* @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 }],
size: [{ type: Input }],
icon: [{ type: Input }]
};
if (false) {
/**
* @type {?}
* @protected
*/
Icon.prototype._icon;
/** @type {?} */
Icon.prototype.content;
/** @type {?} */
Icon.prototype.baseClass;
/** @type {?} */
Icon.prototype.accessibilityLabel;
/** @type {?} */
Icon.prototype.size;
/**
* @type {?}
* @private
*/
Icon.prototype.sanitizer;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa3VzaGtpL25nLXN1a2EvIiwic291cmNlcyI6WyJsaWIvaWNvbi9pY29uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBUW5FLE1BQU0sT0FBTyxJQUFJOzs7O0lBbUJmLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFkWCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBR3hDLFNBQUksR0FBc0IsRUFBRSxDQUFDO0lBV1EsQ0FBQzs7Ozs7SUFWL0MsSUFDSSxJQUFJLENBQUMsS0FBZTtRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7OztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOzs7OztJQUlPLFVBQVU7O2NBQ1YsY0FBYyxHQUFHLFFBQVEsQ0FBQyxNQUFNOzs7O1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7OztZQWpDRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLFFBQVEsRUFBRTs7R0FFVDthQUNGOzs7O1lBUFEsWUFBWTs7O3dCQWFsQixXQUFXLFNBQUMsaUJBQWlCO2lDQUU3QixXQUFXLFNBQUMsaUJBQWlCLGNBQUcsS0FBSzttQkFDckMsS0FBSzttQkFDTCxLQUFLOzs7Ozs7O0lBUE4scUJBQTBCOztJQUMxQix1QkFBa0I7O0lBRWxCLHlCQUFpRDs7SUFFakQsa0NBQW9FOztJQUNwRSxvQkFBc0M7Ozs7O0lBVzFCLHlCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIEhvc3RCaW5kaW5nXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJY29uVHlwZSB9IGZyb20gJy4vaWNvbi10eXBlcyc7XG5pbXBvcnQgeyBpY29uRGVmcyB9IGZyb20gJy4vaWNvbi1kZWZzJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3VrYS1pY29uJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImNvbnRlbnRcIj48L3NwYW4+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgSWNvbiB7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogdmFyaWFibGUtbmFtZVxuICBwcm90ZWN0ZWQgX2ljb246IEljb25UeXBlO1xuICBjb250ZW50OiBTYWZlSHRtbDtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnN1a2EtaWNvbicpIGJhc2VDbGFzcyA9IHRydWU7XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKSBASW5wdXQoKSBhY2Nlc3NpYmlsaXR5TGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZTogMTYgfCAyMCB8IDI0IHwgMzIgPSAxNjtcbiAgQElucHV0KClcbiAgc2V0IGljb24odmFsdWU6IEljb25UeXBlKSB7XG4gICAgdGhpcy5faWNvbiA9IHZhbHVlO1xuICAgIHRoaXMuZ2V0SWNvbkRlZigpO1xuICB9XG5cbiAgZ2V0IGljb24oKTogSWNvblR5cGUge1xuICAgIHJldHVybiB0aGlzLl9pY29uO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge31cblxuICBwcml2YXRlIGdldEljb25EZWYoKTogdm9pZCB7XG4gICAgY29uc3QgaWNvbkRlZmluaXRpb24gPSBpY29uRGVmcy5maWx0ZXIoaWNvbkRlZiA9PiBpY29uRGVmLm5hbWUgPT09IHRoaXMuX2ljb24pWzBdO1xuICAgIGlmICghaWNvbkRlZmluaXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2FudCBmaW5kICcke3RoaXMuX2ljb259JyBpY29uLmApO1xuICAgIH1cbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChpY29uRGVmaW5pdGlvbi50ZW1wbGF0ZSk7XG4gIH1cbn1cbiJdfQ==