UNPKG

@catull/igniteui-angular

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

209 lines 18.4 kB
import { __decorate, __metadata } from "tslib"; import { CommonModule } from '@angular/common'; import { Component, HostBinding, Input, NgModule } from '@angular/core'; import { IgxIconModule } from '../icon/index'; var NEXT_ID = 0; export var Type; (function (Type) { Type["DEFAULT"] = "default"; Type["INFO"] = "info"; Type["SUCCESS"] = "success"; Type["WARNING"] = "warning"; Type["ERROR"] = "error"; })(Type || (Type = {})); /** * **Ignite UI for Angular Badge** - * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/badge.html) * * The Ignite UI Badge is used to decorate avatars, navigation menus, or other components in the * application when visual notification is needed. They are usually designed as icons with a predefined * style to communicate information, success, warnings, or errors. * * Example: * ```html * <igx-avatar icon="person" roundShape="true" size="small"> * <igx-badge icon="check" type="success" class="badge-style"> * </igx-badge> * </igx-avatar> * ``` * The `badge-style` class is used to position the badge: * ```css * .badge-style { * position: absolute; * bottom: -6px; * right:-50px; * } * ``` */ var IgxBadgeComponent = /** @class */ (function () { function IgxBadgeComponent() { /** * An @Input property that sets the value of the `id` attribute. * ```html *<igx-badge id="igx-badge-2" icon="check" type="success" class="badge-style"></igx-badge> * ``` */ this.id = "igx-badge-" + NEXT_ID++; /** * An @Input property controlling the type of the badge. * Allowed values are `default`, `info`, `success`, `warning`, `error`. * Providing an invalid value won't display a badge. * ```html *<igx-badge type="success" icon="check" class="badge-style"></igx-badge> * ``` */ this.type = 'default'; /** * An @Input property that sets the value to be displayed inside the badge. * If an `icon` property is already set the `icon` will be displayed. * If neither a `value` nor an `icon` is set the contentent of the badge will be empty. * ```html *<igx-badge value="11" type="success" class="badge-style"></igx-badge> * ``` */ this.value = ''; /** * This allows you to set value to role attribute. *```html *@ViewChild("MyBadge", { read: IgxBadgeComponent }) *public badge: IgxBadgeComponent; * //... *badge.label = "badge-status"; * ``` */ this.role = 'status'; /** * This allows you to disable igx-badge class. The default it's applied. *```html *@ViewChild("MyBadge", { read: IgxBadgeComponent }) *public badge: IgxBadgeComponent; * //... *badge.cssClass = false; * ``` */ this.cssClass = 'igx-badge'; /** * This allows you to set value to aria-label attribute. *```html *@ViewChild("MyBadge", { read: IgxBadgeComponent }) *public badge: IgxBadgeComponent; * //... *badge.label = "icon-badge"; * ``` */ this.label = 'badge'; } Object.defineProperty(IgxBadgeComponent.prototype, "roleDescription", { /** * @hidden * Defines a human-readable, accessor, author-localized description for the `type` and the `icon` or `value` of the element. */ get: function () { var message; // tslint:disable-next-line:prefer-conditional-expression if (this.icon) { message = this.type + ' type badge with icon type ' + this.icon; } else if (this.value) { message = this.type + ' badge type with value ' + this.value; } else { message = this.type + ' badge type without value'; } return message; }, enumerable: true, configurable: true }); /** * @hidden * Method which makes the name of the class more descriptive. * This helps the styling of the badges. */ IgxBadgeComponent.prototype.setClasses = function () { var _a, _b, _c, _d, _e; var classes = {}; switch (Type[this.type.toUpperCase()]) { case Type.DEFAULT: classes = (_a = {}, _a[this.cssClass + "__circle--default"] = true, _a); break; case Type.INFO: classes = (_b = {}, _b[this.cssClass + "__circle--info"] = true, _b); break; case Type.SUCCESS: classes = (_c = {}, _c[this.cssClass + "__circle--success"] = true, _c); break; case Type.WARNING: classes = (_d = {}, _d[this.cssClass + "__circle--warning"] = true, _d); break; case Type.ERROR: classes = (_e = {}, _e[this.cssClass + "__circle--error"] = true, _e); break; } return classes; }; __decorate([ HostBinding('attr.id'), Input(), __metadata("design:type", Object) ], IgxBadgeComponent.prototype, "id", void 0); __decorate([ Input(), __metadata("design:type", String) ], IgxBadgeComponent.prototype, "type", void 0); __decorate([ Input(), __metadata("design:type", Object) ], IgxBadgeComponent.prototype, "value", void 0); __decorate([ Input(), __metadata("design:type", String) ], IgxBadgeComponent.prototype, "icon", void 0); __decorate([ HostBinding('attr.role'), __metadata("design:type", Object) ], IgxBadgeComponent.prototype, "role", void 0); __decorate([ HostBinding('class.igx-badge'), __metadata("design:type", Object) ], IgxBadgeComponent.prototype, "cssClass", void 0); __decorate([ HostBinding('attr.aria-label'), __metadata("design:type", Object) ], IgxBadgeComponent.prototype, "label", void 0); IgxBadgeComponent = __decorate([ Component({ selector: 'igx-badge', template: "<div class=\"igx-badge__circle\" [ngClass]=\"setClasses()\" [attr.aria-roledescription]=\"roleDescription\">\n <span *ngIf=\"!icon\" class=\"igx-badge__circle-value\">{{value}}</span>\n <igx-icon *ngIf=\"icon\" fontSet=\"material\">{{icon}}</igx-icon>\n</div>\n" }) ], IgxBadgeComponent); return IgxBadgeComponent; }()); export { IgxBadgeComponent }; /** * @hidden */ var IgxBadgeModule = /** @class */ (function () { function IgxBadgeModule() { } IgxBadgeModule = __decorate([ NgModule({ declarations: [IgxBadgeComponent], exports: [IgxBadgeComponent], imports: [CommonModule, IgxIconModule] }) ], IgxBadgeModule); return IgxBadgeModule; }()); export { IgxBadgeModule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9iYWRnZS9iYWRnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBRWhCLE1BQU0sQ0FBTixJQUFZLElBTVg7QUFORCxXQUFZLElBQUk7SUFDWiwyQkFBbUIsQ0FBQTtJQUNuQixxQkFBYSxDQUFBO0lBQ2IsMkJBQW1CLENBQUE7SUFDbkIsMkJBQW1CLENBQUE7SUFDbkIsdUJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTlcsSUFBSSxLQUFKLElBQUksUUFNZjtBQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUtIO0lBQUE7UUFFSTs7Ozs7VUFLRTtRQUdLLE9BQUUsR0FBRyxlQUFhLE9BQU8sRUFBSSxDQUFDO1FBRXJDOzs7Ozs7O1VBT0U7UUFFSyxTQUFJLEdBQWtCLFNBQVMsQ0FBQztRQUV2Qzs7Ozs7OztVQU9FO1FBRUssVUFBSyxHQUFHLEVBQUUsQ0FBQztRQWNsQjs7Ozs7Ozs7V0FRRztRQUVJLFNBQUksR0FBRyxRQUFRLENBQUM7UUFFdkI7Ozs7Ozs7O1dBUUc7UUFFSSxhQUFRLEdBQUcsV0FBVyxDQUFDO1FBRTlCOzs7Ozs7OztXQVFHO1FBRUksVUFBSyxHQUFHLE9BQU8sQ0FBQztJQTREM0IsQ0FBQztJQXRERyxzQkFBSSw4Q0FBZTtRQUpuQjs7O1dBR0c7YUFDSDtZQUNJLElBQUksT0FBTyxDQUFDO1lBRVoseURBQXlEO1lBQ3pELElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDWCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ25FO2lCQUFNLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDbkIsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcseUJBQXlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUNoRTtpQkFBTTtnQkFDSCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRywyQkFBMkIsQ0FBQzthQUNyRDtZQUVELE9BQU8sT0FBTyxDQUFDO1FBQ25CLENBQUM7OztPQUFBO0lBRUQ7Ozs7T0FJRztJQUNJLHNDQUFVLEdBQWpCOztRQUNJLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUVqQixRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUU7WUFDbkMsS0FBSyxJQUFJLENBQUMsT0FBTztnQkFDYixPQUFPO29CQUNILEdBQUksSUFBSSxDQUFDLFFBQVEsc0JBQW1CLElBQUcsSUFBSTt1QkFDOUMsQ0FBQztnQkFDRixNQUFNO1lBQ1YsS0FBSyxJQUFJLENBQUMsSUFBSTtnQkFDVixPQUFPO29CQUNILEdBQUksSUFBSSxDQUFDLFFBQVEsbUJBQWdCLElBQUcsSUFBSTt1QkFDM0MsQ0FBQztnQkFDRixNQUFNO1lBQ1YsS0FBSyxJQUFJLENBQUMsT0FBTztnQkFDYixPQUFPO29CQUNILEdBQUksSUFBSSxDQUFDLFFBQVEsc0JBQW1CLElBQUcsSUFBSTt1QkFDOUMsQ0FBQztnQkFDRixNQUFNO1lBQ1YsS0FBSyxJQUFJLENBQUMsT0FBTztnQkFDYixPQUFPO29CQUNILEdBQUksSUFBSSxDQUFDLFFBQVEsc0JBQW1CLElBQUcsSUFBSTt1QkFDOUMsQ0FBQztnQkFDRixNQUFNO1lBQ1YsS0FBSyxJQUFJLENBQUMsS0FBSztnQkFDWCxPQUFPO29CQUNILEdBQUksSUFBSSxDQUFDLFFBQVEsb0JBQWlCLElBQUcsSUFBSTt1QkFDNUMsQ0FBQztnQkFDRixNQUFNO1NBQ2I7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBaElEO1FBRkMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUN0QixLQUFLLEVBQUU7O2lEQUM2QjtJQVdyQztRQURDLEtBQUssRUFBRTs7bURBQytCO0lBV3ZDO1FBREMsS0FBSyxFQUFFOztvREFDVTtJQVlsQjtRQURDLEtBQUssRUFBRTs7bURBQ1k7SUFZcEI7UUFEQyxXQUFXLENBQUMsV0FBVyxDQUFDOzttREFDRjtJQVl2QjtRQURDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQzs7dURBQ0Q7SUFZOUI7UUFEQyxXQUFXLENBQUMsaUJBQWlCLENBQUM7O29EQUNSO0lBaEZkLGlCQUFpQjtRQUo3QixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsV0FBVztZQUNyQix1UkFBbUM7U0FDdEMsQ0FBQztPQUNXLGlCQUFpQixDQTRJN0I7SUFBRCx3QkFBQztDQUFBLEFBNUlELElBNElDO1NBNUlZLGlCQUFpQjtBQThJOUI7O0dBRUc7QUFNSDtJQUFBO0lBQ0EsQ0FBQztJQURZLGNBQWM7UUFMMUIsUUFBUSxDQUFDO1lBQ04sWUFBWSxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDakMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztTQUN6QyxDQUFDO09BQ1csY0FBYyxDQUMxQjtJQUFELHFCQUFDO0NBQUEsQUFERCxJQUNDO1NBRFksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneEljb25Nb2R1bGUgfSBmcm9tICcuLi9pY29uL2luZGV4JztcblxubGV0IE5FWFRfSUQgPSAwO1xuXG5leHBvcnQgZW51bSBUeXBlIHtcbiAgICBERUZBVUxUID0gJ2RlZmF1bHQnLFxuICAgIElORk8gPSAnaW5mbycsXG4gICAgU1VDQ0VTUyA9ICdzdWNjZXNzJyxcbiAgICBXQVJOSU5HID0gJ3dhcm5pbmcnLFxuICAgIEVSUk9SID0gJ2Vycm9yJ1xufVxuLyoqXG4gKiAqKklnbml0ZSBVSSBmb3IgQW5ndWxhciBCYWRnZSoqIC1cbiAqIFtEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy9iYWRnZS5odG1sKVxuICpcbiAqIFRoZSBJZ25pdGUgVUkgQmFkZ2UgaXMgdXNlZCB0byBkZWNvcmF0ZSBhdmF0YXJzLCBuYXZpZ2F0aW9uIG1lbnVzLCBvciBvdGhlciBjb21wb25lbnRzIGluIHRoZVxuICogYXBwbGljYXRpb24gd2hlbiB2aXN1YWwgbm90aWZpY2F0aW9uIGlzIG5lZWRlZC4gVGhleSBhcmUgdXN1YWxseSBkZXNpZ25lZCBhcyBpY29ucyB3aXRoIGEgcHJlZGVmaW5lZFxuICogc3R5bGUgdG8gY29tbXVuaWNhdGUgaW5mb3JtYXRpb24sIHN1Y2Nlc3MsIHdhcm5pbmdzLCBvciBlcnJvcnMuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYGh0bWxcbiAqIDxpZ3gtYXZhdGFyIGljb249XCJwZXJzb25cIiByb3VuZFNoYXBlPVwidHJ1ZVwiIHNpemU9XCJzbWFsbFwiPlxuICogICA8aWd4LWJhZGdlIGljb249XCJjaGVja1wiIHR5cGU9XCJzdWNjZXNzXCIgY2xhc3M9XCJiYWRnZS1zdHlsZVwiPlxuICogICA8L2lneC1iYWRnZT5cbiAqIDwvaWd4LWF2YXRhcj5cbiAqIGBgYFxuICogVGhlIGBiYWRnZS1zdHlsZWAgY2xhc3MgaXMgdXNlZCB0byBwb3NpdGlvbiB0aGUgYmFkZ2U6XG4gKiBgYGBjc3NcbiAqIC5iYWRnZS1zdHlsZSB7XG4gKiAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAqICAgYm90dG9tOiAtNnB4O1xuICogICByaWdodDotNTBweDtcbiAqIH1cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1iYWRnZScsXG4gICAgdGVtcGxhdGVVcmw6ICdiYWRnZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSWd4QmFkZ2VDb21wb25lbnQge1xuXG4gICAgLyoqXG4gICAgKiBBbiBASW5wdXQgcHJvcGVydHkgdGhhdCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgYGlkYCBhdHRyaWJ1dGUuXG4gICAgKiBgYGBodG1sXG4gICAgKjxpZ3gtYmFkZ2UgaWQ9XCJpZ3gtYmFkZ2UtMlwiIGljb249XCJjaGVja1wiIHR5cGU9XCJzdWNjZXNzXCIgY2xhc3M9XCJiYWRnZS1zdHlsZVwiPjwvaWd4LWJhZGdlPlxuICAgICogYGBgXG4gICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYGlneC1iYWRnZS0ke05FWFRfSUQrK31gO1xuXG4gICAgLyoqXG4gICAgKiBBbiBASW5wdXQgcHJvcGVydHkgY29udHJvbGxpbmcgdGhlIHR5cGUgb2YgdGhlIGJhZGdlLlxuICAgICogQWxsb3dlZCB2YWx1ZXMgYXJlIGBkZWZhdWx0YCwgYGluZm9gLCBgc3VjY2Vzc2AsIGB3YXJuaW5nYCwgYGVycm9yYC5cbiAgICAqIFByb3ZpZGluZyBhbiBpbnZhbGlkIHZhbHVlIHdvbid0IGRpc3BsYXkgYSBiYWRnZS5cbiAgICAqIGBgYGh0bWxcbiAgICAqPGlneC1iYWRnZSB0eXBlPVwic3VjY2Vzc1wiIGljb249XCJjaGVja1wiIGNsYXNzPVwiYmFkZ2Utc3R5bGVcIj48L2lneC1iYWRnZT5cbiAgICAqIGBgYFxuICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdHlwZTogc3RyaW5nIHwgVHlwZSA9ICdkZWZhdWx0JztcblxuICAgIC8qKlxuICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0cyB0aGUgdmFsdWUgdG8gYmUgZGlzcGxheWVkIGluc2lkZSB0aGUgYmFkZ2UuXG4gICAgKiBJZiBhbiBgaWNvbmAgcHJvcGVydHkgaXMgYWxyZWFkeSBzZXQgdGhlIGBpY29uYCB3aWxsIGJlIGRpc3BsYXllZC5cbiAgICAqIElmIG5laXRoZXIgYSBgdmFsdWVgIG5vciBhbiBgaWNvbmAgaXMgc2V0IHRoZSBjb250ZW50ZW50IG9mIHRoZSBiYWRnZSB3aWxsIGJlIGVtcHR5LlxuICAgICogYGBgaHRtbFxuICAgICo8aWd4LWJhZGdlIHZhbHVlPVwiMTFcIiB0eXBlPVwic3VjY2Vzc1wiIGNsYXNzPVwiYmFkZ2Utc3R5bGVcIj48L2lneC1iYWRnZT5cbiAgICAqIGBgYFxuICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWUgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFNldCBhbiBpY29uIGZvciB0aGUgYmFkZ2UgZnJvbSB0aGUgbWF0ZXJpYWwgaWNvbnMgc2V0LlxuICAgICAqIEhhcyBwcmlvcml0eSBvdmVyIHRoZSBgdmFsdWVgIHByb3BlcnR5LlxuICAgICAqIElmIG5laXRoZXIgYSBgdmFsdWVgIG5vciBhbiBgaWNvbmAgaXMgc2V0IHRoZSBjb250ZW50IG9mIHRoZSBiYWRnZSB3aWxsIGJlIGVtcHR5LlxuICAgICAqIFByb3ZpZGluZyBhbiBpbnZhbGlkIHZhbHVlIHdvbid0IGRpc3BsYXkgYW55dGhpbmcuXG4gICAgICogYGBgaHRtbFxuICAgICAqPGlneC1iYWRnZSBpY29uPVwiY2hlY2tcIiB0eXBlPVwic3VjY2Vzc1wiIGNsYXNzPVwiYmFkZ2Utc3R5bGVcIiB2YWx1ZT1cIjExXCI+PC9pZ3gtYmFkZ2U+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBhbGxvd3MgeW91IHRvIHNldCB2YWx1ZSB0byByb2xlIGF0dHJpYnV0ZS5cbiAgICAgKmBgYGh0bWxcbiAgICAgKkBWaWV3Q2hpbGQoXCJNeUJhZGdlXCIsIHsgcmVhZDogSWd4QmFkZ2VDb21wb25lbnQgfSlcbiAgICAgKnB1YmxpYyBiYWRnZTogSWd4QmFkZ2VDb21wb25lbnQ7XG4gICAgICogLy8uLi5cbiAgICAgKmJhZGdlLmxhYmVsID0gXCJiYWRnZS1zdGF0dXNcIjtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpXG4gICAgcHVibGljIHJvbGUgPSAnc3RhdHVzJztcblxuICAgIC8qKlxuICAgICAqIFRoaXMgYWxsb3dzIHlvdSB0byBkaXNhYmxlIGlneC1iYWRnZSBjbGFzcy4gVGhlIGRlZmF1bHQgaXQncyBhcHBsaWVkLlxuICAgICAqYGBgaHRtbFxuICAgICAqQFZpZXdDaGlsZChcIk15QmFkZ2VcIiwgeyByZWFkOiBJZ3hCYWRnZUNvbXBvbmVudCB9KVxuICAgICAqcHVibGljIGJhZGdlOiBJZ3hCYWRnZUNvbXBvbmVudDtcbiAgICAgKiAvLy4uLlxuICAgICAqYmFkZ2UuY3NzQ2xhc3MgPSBmYWxzZTtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1iYWRnZScpXG4gICAgcHVibGljIGNzc0NsYXNzID0gJ2lneC1iYWRnZSc7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gc2V0IHZhbHVlIHRvIGFyaWEtbGFiZWwgYXR0cmlidXRlLlxuICAgICAqYGBgaHRtbFxuICAgICAqQFZpZXdDaGlsZChcIk15QmFkZ2VcIiwgeyByZWFkOiBJZ3hCYWRnZUNvbXBvbmVudCB9KVxuICAgICAqcHVibGljIGJhZGdlOiBJZ3hCYWRnZUNvbXBvbmVudDtcbiAgICAgKiAvLy4uLlxuICAgICAqYmFkZ2UubGFiZWwgPSBcImljb24tYmFkZ2VcIjtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXG4gICAgcHVibGljIGxhYmVsID0gJ2JhZGdlJztcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBEZWZpbmVzIGEgaHVtYW4tcmVhZGFibGUsIGFjY2Vzc29yLCBhdXRob3ItbG9jYWxpemVkIGRlc2NyaXB0aW9uIGZvciB0aGUgYHR5cGVgIGFuZCB0aGUgYGljb25gIG9yIGB2YWx1ZWAgb2YgdGhlIGVsZW1lbnQuXG4gICAgICovXG4gICAgZ2V0IHJvbGVEZXNjcmlwdGlvbigpIHtcbiAgICAgICAgbGV0IG1lc3NhZ2U7XG5cbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnByZWZlci1jb25kaXRpb25hbC1leHByZXNzaW9uXG4gICAgICAgIGlmICh0aGlzLmljb24pIHtcbiAgICAgICAgICAgIG1lc3NhZ2UgPSB0aGlzLnR5cGUgKyAnIHR5cGUgYmFkZ2Ugd2l0aCBpY29uIHR5cGUgJyArIHRoaXMuaWNvbjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gdGhpcy50eXBlICsgJyBiYWRnZSB0eXBlIHdpdGggdmFsdWUgJyArIHRoaXMudmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gdGhpcy50eXBlICsgJyBiYWRnZSB0eXBlIHdpdGhvdXQgdmFsdWUnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1lc3NhZ2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIE1ldGhvZCB3aGljaCBtYWtlcyB0aGUgbmFtZSBvZiB0aGUgY2xhc3MgbW9yZSBkZXNjcmlwdGl2ZS5cbiAgICAgKiBUaGlzIGhlbHBzIHRoZSBzdHlsaW5nIG9mIHRoZSBiYWRnZXMuXG4gICAgICovXG4gICAgcHVibGljIHNldENsYXNzZXMoKSB7XG4gICAgICAgIGxldCBjbGFzc2VzID0ge307XG5cbiAgICAgICAgc3dpdGNoIChUeXBlW3RoaXMudHlwZS50b1VwcGVyQ2FzZSgpXSkge1xuICAgICAgICAgICAgY2FzZSBUeXBlLkRFRkFVTFQ6XG4gICAgICAgICAgICAgICAgY2xhc3NlcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgW2Ake3RoaXMuY3NzQ2xhc3N9X19jaXJjbGUtLWRlZmF1bHRgXTogdHJ1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFR5cGUuSU5GTzpcbiAgICAgICAgICAgICAgICBjbGFzc2VzID0ge1xuICAgICAgICAgICAgICAgICAgICBbYCR7dGhpcy5jc3NDbGFzc31fX2NpcmNsZS0taW5mb2BdOiB0cnVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgVHlwZS5TVUNDRVNTOlxuICAgICAgICAgICAgICAgIGNsYXNzZXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIFtgJHt0aGlzLmNzc0NsYXNzfV9fY2lyY2xlLS1zdWNjZXNzYF06IHRydWVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBUeXBlLldBUk5JTkc6XG4gICAgICAgICAgICAgICAgY2xhc3NlcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgW2Ake3RoaXMuY3NzQ2xhc3N9X19jaXJjbGUtLXdhcm5pbmdgXTogdHJ1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFR5cGUuRVJST1I6XG4gICAgICAgICAgICAgICAgY2xhc3NlcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgW2Ake3RoaXMuY3NzQ2xhc3N9X19jaXJjbGUtLWVycm9yYF06IHRydWVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNsYXNzZXM7XG4gICAgfVxuXG59XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW0lneEJhZGdlQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbSWd4QmFkZ2VDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElneEljb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIElneEJhZGdlTW9kdWxlIHtcbn1cbiJdfQ==