UNPKG

@angular-mdl/core

Version:

Angular components, directives and styles based on material design lite https://getmdl.io.

127 lines 14.2 kB
import { Component, ElementRef, HostBinding, HostListener, Input, ViewEncapsulation, } from "@angular/core"; import { MdlError } from "../common/mdl-error"; import { toBoolean } from "../common/boolean-property"; import { callNative } from "../common/native-support"; import * as i0 from "@angular/core"; export class MdlUnsupportedButtonTypeError extends MdlError { constructor(type) { /* istanbul ignore next */ super(`Button type "${type}" isn't supported (allowed: raised, fab, mini-fab, icon, '').`); } } export class MdlUnsupportedColoredTypeError extends MdlError { constructor(type) { /* istanbul ignore next */ super(`Colored type "${type}" isn't supported (allowed: primary, accent, '').`); } } const MDL_BUTTON_TYPES = ["raised", "fab", "mini-fab", "icon", ""]; const MDL_COLORED_TYPES = ["primary", "accent", ""]; export class MdlButtonComponent { constructor(elementRef) { this.elementRef = elementRef; this.isButton = true; // eslint-disable-next-line @angular-eslint/no-input-rename this.mdlButtonType = ""; // eslint-disable-next-line @angular-eslint/no-input-rename this.mdlColoredType = ""; this.disabledIntern = false; this.element = elementRef.nativeElement; } get isDisable() { return this.disabled ? "disabled" : null; } get raised() { return this.mdlButtonType === "raised"; } get fab() { return this.mdlButtonType === "fab" || this.mdlButtonType === "mini-fab"; } get miniFab() { return this.mdlButtonType === "mini-fab"; } get icon() { return this.mdlButtonType === "icon"; } get primary() { return this.mdlColoredType === "primary"; } get accent() { return this.mdlColoredType === "accent"; } get disabled() { return this.disabledIntern; } set disabled(value) { this.disabledIntern = toBoolean(value); } onMouseUp() { this.blurIt(); } onMouseLeave() { this.blurIt(); } ngOnChanges() { if (this.mdlButtonType && MDL_BUTTON_TYPES.indexOf(this.mdlButtonType) === -1) { throw new MdlUnsupportedButtonTypeError(this.mdlButtonType); } if (this.mdlColoredType && MDL_COLORED_TYPES.indexOf(this.mdlColoredType) === -1) { throw new MdlUnsupportedColoredTypeError(this.mdlColoredType); } } blurIt() { callNative(this.element, "blur"); } } MdlButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlButtonComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); MdlButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.4", type: MdlButtonComponent, selector: "mdl-button, button[mdl-button], a[mdl-button]", inputs: { mdlButtonType: ["mdl-button-type", "mdlButtonType"], mdlColoredType: ["mdl-colored", "mdlColoredType"], disabled: "disabled" }, host: { listeners: { "mouseup": "onMouseUp()", "mouseleave": "onMouseLeave()" }, properties: { "class.mdl-button": "this.isButton", "attr.disabled": "this.isDisable", "class.mdl-button--raised": "this.raised", "class.mdl-button--fab": "this.fab", "class.mdl-button--mini-fab": "this.miniFab", "class.mdl-button--icon": "this.icon", "class.mdl-button--primary": "this.primary", "class.mdl-button--accent": "this.accent" } }, exportAs: ["mdlButton"], usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>", isInline: true, encapsulation: i0.ViewEncapsulation.None }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MdlButtonComponent, decorators: [{ type: Component, args: [{ selector: "mdl-button, button[mdl-button], a[mdl-button]", exportAs: "mdlButton", template: "<ng-content></ng-content>", encapsulation: ViewEncapsulation.None, }] }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { isButton: [{ type: HostBinding, args: ["class.mdl-button"] }], mdlButtonType: [{ type: Input, args: ["mdl-button-type"] }], mdlColoredType: [{ type: Input, args: ["mdl-colored"] }], isDisable: [{ type: HostBinding, args: ["attr.disabled"] }], raised: [{ type: HostBinding, args: ["class.mdl-button--raised"] }], fab: [{ type: HostBinding, args: ["class.mdl-button--fab"] }], miniFab: [{ type: HostBinding, args: ["class.mdl-button--mini-fab"] }], icon: [{ type: HostBinding, args: ["class.mdl-button--icon"] }], primary: [{ type: HostBinding, args: ["class.mdl-button--primary"] }], accent: [{ type: HostBinding, args: ["class.mdl-button--accent"] }], disabled: [{ type: Input }], onMouseUp: [{ type: HostListener, args: ["mouseup"] }], onMouseLeave: [{ type: HostListener, args: ["mouseleave"] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRsLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvYnV0dG9uL21kbC1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFdEQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLFFBQVE7SUFDekQsWUFBWSxJQUFZO1FBQ3RCLDBCQUEwQjtRQUMxQixLQUFLLENBQ0gsZ0JBQWdCLElBQUksK0RBQStELENBQ3BGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sOEJBQStCLFNBQVEsUUFBUTtJQUMxRCxZQUFZLElBQVk7UUFDdEIsMEJBQTBCO1FBQzFCLEtBQUssQ0FDSCxpQkFBaUIsSUFBSSxtREFBbUQsQ0FDekUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFbkUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFXcEQsTUFBTSxPQUFPLGtCQUFrQjtJQWU3QixZQUFtQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBYnpDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFaEIsMkRBQTJEO1FBRTNELGtCQUFhLEdBQWtCLEVBQUUsQ0FBQztRQUVsQywyREFBMkQ7UUFFM0QsbUJBQWMsR0FBaUIsRUFBRSxDQUFDO1FBRzFCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBa0MsU0FBUztRQUN6QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUE2QyxNQUFNO1FBQ2pELE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRLENBQUM7SUFDekMsQ0FBQztJQUVELElBQTBDLEdBQUc7UUFDM0MsT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFVBQVUsQ0FBQztJQUMzRSxDQUFDO0lBRUQsSUFBK0MsT0FBTztRQUNwRCxPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUssVUFBVSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUEyQyxJQUFJO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQThDLE9BQU87UUFDbkQsT0FBTyxJQUFJLENBQUMsY0FBYyxLQUFLLFNBQVMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBNkMsTUFBTTtRQUNqRCxPQUFPLElBQUksQ0FBQyxjQUFjLEtBQUssUUFBUSxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQXVCO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFHRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFHRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFDRSxJQUFJLENBQUMsYUFBYTtZQUNsQixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNuRDtZQUNBLE1BQU0sSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDN0Q7UUFFRCxJQUNFLElBQUksQ0FBQyxjQUFjO1lBQ25CLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3JEO1lBQ0EsTUFBTSxJQUFJLDhCQUE4QixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7K0dBcEZVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHFyQkFIbkIsMkJBQTJCOzJGQUcxQixrQkFBa0I7a0JBTjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtDQUErQztvQkFDekQsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0QztpR0FHQyxRQUFRO3NCQURQLFdBQVc7dUJBQUMsa0JBQWtCO2dCQUsvQixhQUFhO3NCQURaLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUt4QixjQUFjO3NCQURiLEtBQUs7dUJBQUMsYUFBYTtnQkFVYyxTQUFTO3NCQUExQyxXQUFXO3VCQUFDLGVBQWU7Z0JBSWlCLE1BQU07c0JBQWxELFdBQVc7dUJBQUMsMEJBQTBCO2dCQUlHLEdBQUc7c0JBQTVDLFdBQVc7dUJBQUMsdUJBQXVCO2dCQUlXLE9BQU87c0JBQXJELFdBQVc7dUJBQUMsNEJBQTRCO2dCQUlFLElBQUk7c0JBQTlDLFdBQVc7dUJBQUMsd0JBQXdCO2dCQUlTLE9BQU87c0JBQXBELFdBQVc7dUJBQUMsMkJBQTJCO2dCQUlLLE1BQU07c0JBQWxELFdBQVc7dUJBQUMsMEJBQTBCO2dCQUtuQyxRQUFRO3NCQURYLEtBQUs7Z0JBVU4sU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVM7Z0JBTXZCLFlBQVk7c0JBRFgsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE1kbEVycm9yIH0gZnJvbSBcIi4uL2NvbW1vbi9tZGwtZXJyb3JcIjtcbmltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gXCIuLi9jb21tb24vYm9vbGVhbi1wcm9wZXJ0eVwiO1xuaW1wb3J0IHsgY2FsbE5hdGl2ZSB9IGZyb20gXCIuLi9jb21tb24vbmF0aXZlLXN1cHBvcnRcIjtcblxuZXhwb3J0IGNsYXNzIE1kbFVuc3VwcG9ydGVkQnV0dG9uVHlwZUVycm9yIGV4dGVuZHMgTWRsRXJyb3Ige1xuICBjb25zdHJ1Y3Rvcih0eXBlOiBzdHJpbmcpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHN1cGVyKFxuICAgICAgYEJ1dHRvbiB0eXBlIFwiJHt0eXBlfVwiIGlzbid0IHN1cHBvcnRlZCAoYWxsb3dlZDogcmFpc2VkLCBmYWIsIG1pbmktZmFiLCBpY29uLCAnJykuYFxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE1kbFVuc3VwcG9ydGVkQ29sb3JlZFR5cGVFcnJvciBleHRlbmRzIE1kbEVycm9yIHtcbiAgY29uc3RydWN0b3IodHlwZTogc3RyaW5nKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBzdXBlcihcbiAgICAgIGBDb2xvcmVkIHR5cGUgXCIke3R5cGV9XCIgaXNuJ3Qgc3VwcG9ydGVkIChhbGxvd2VkOiBwcmltYXJ5LCBhY2NlbnQsICcnKS5gXG4gICAgKTtcbiAgfVxufVxuXG5jb25zdCBNRExfQlVUVE9OX1RZUEVTID0gW1wicmFpc2VkXCIsIFwiZmFiXCIsIFwibWluaS1mYWJcIiwgXCJpY29uXCIsIFwiXCJdO1xuXG5jb25zdCBNRExfQ09MT1JFRF9UWVBFUyA9IFtcInByaW1hcnlcIiwgXCJhY2NlbnRcIiwgXCJcIl07XG5cbmV4cG9ydCB0eXBlIE1kbEJ1dHRvblR5cGUgPSBcInJhaXNlZFwiIHwgXCJmYWJcIiB8IFwibWluaS1mYWJcIiB8IFwiaWNvblwiIHwgXCJcIjtcbmV4cG9ydCB0eXBlIE1kbENvbG9yVHlwZSA9IFwicHJpbWFyeVwiIHwgXCJhY2NlbnRcIiB8IFwiXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJtZGwtYnV0dG9uLCBidXR0b25bbWRsLWJ1dHRvbl0sIGFbbWRsLWJ1dHRvbl1cIixcbiAgZXhwb3J0QXM6IFwibWRsQnV0dG9uXCIsXG4gIHRlbXBsYXRlOiBcIjxuZy1jb250ZW50PjwvbmctY29udGVudD5cIixcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTWRsQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MubWRsLWJ1dHRvblwiKVxuICBpc0J1dHRvbiA9IHRydWU7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KFwibWRsLWJ1dHRvbi10eXBlXCIpXG4gIG1kbEJ1dHRvblR5cGU6IE1kbEJ1dHRvblR5cGUgPSBcIlwiO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dChcIm1kbC1jb2xvcmVkXCIpXG4gIG1kbENvbG9yZWRUeXBlOiBNZGxDb2xvclR5cGUgPSBcIlwiO1xuXG4gIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIGRpc2FibGVkSW50ZXJuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJhdHRyLmRpc2FibGVkXCIpIGdldCBpc0Rpc2FibGUoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBudWxsO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MubWRsLWJ1dHRvbi0tcmFpc2VkXCIpIGdldCByYWlzZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubWRsQnV0dG9uVHlwZSA9PT0gXCJyYWlzZWRcIjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLm1kbC1idXR0b24tLWZhYlwiKSBnZXQgZmFiKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1kbEJ1dHRvblR5cGUgPT09IFwiZmFiXCIgfHwgdGhpcy5tZGxCdXR0b25UeXBlID09PSBcIm1pbmktZmFiXCI7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5tZGwtYnV0dG9uLS1taW5pLWZhYlwiKSBnZXQgbWluaUZhYigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZGxCdXR0b25UeXBlID09PSBcIm1pbmktZmFiXCI7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5tZGwtYnV0dG9uLS1pY29uXCIpIGdldCBpY29uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1kbEJ1dHRvblR5cGUgPT09IFwiaWNvblwiO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MubWRsLWJ1dHRvbi0tcHJpbWFyeVwiKSBnZXQgcHJpbWFyeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZGxDb2xvcmVkVHlwZSA9PT0gXCJwcmltYXJ5XCI7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5tZGwtYnV0dG9uLS1hY2NlbnRcIikgZ2V0IGFjY2VudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tZGxDb2xvcmVkVHlwZSA9PT0gXCJhY2NlbnRcIjtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZEludGVybjtcbiAgfVxuXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbiB8IHN0cmluZykge1xuICAgIHRoaXMuZGlzYWJsZWRJbnRlcm4gPSB0b0Jvb2xlYW4odmFsdWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIm1vdXNldXBcIilcbiAgb25Nb3VzZVVwKCk6IHZvaWQge1xuICAgIHRoaXMuYmx1ckl0KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwibW91c2VsZWF2ZVwiKVxuICBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5ibHVySXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMubWRsQnV0dG9uVHlwZSAmJlxuICAgICAgTURMX0JVVFRPTl9UWVBFUy5pbmRleE9mKHRoaXMubWRsQnV0dG9uVHlwZSkgPT09IC0xXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgTWRsVW5zdXBwb3J0ZWRCdXR0b25UeXBlRXJyb3IodGhpcy5tZGxCdXR0b25UeXBlKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLm1kbENvbG9yZWRUeXBlICYmXG4gICAgICBNRExfQ09MT1JFRF9UWVBFUy5pbmRleE9mKHRoaXMubWRsQ29sb3JlZFR5cGUpID09PSAtMVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IE1kbFVuc3VwcG9ydGVkQ29sb3JlZFR5cGVFcnJvcih0aGlzLm1kbENvbG9yZWRUeXBlKTtcbiAgICB9XG4gIH1cblxuICBibHVySXQoKTogdm9pZCB7XG4gICAgY2FsbE5hdGl2ZSh0aGlzLmVsZW1lbnQsIFwiYmx1clwiKTtcbiAgfVxufVxuIl19