UNPKG

@catull/igniteui-angular

Version:

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

200 lines 17.8 kB
import { __decorate, __metadata } from "tslib"; import { CommonModule } from '@angular/common'; import { Component, HostBinding, Input, NgModule } from '@angular/core'; import { IgxIconModule } from '../icon/index'; let 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; * } * ``` */ let IgxBadgeComponent = class IgxBadgeComponent { constructor() { /** * 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'; } /** * @hidden * Defines a human-readable, accessor, author-localized description for the `type` and the `icon` or `value` of the element. */ get roleDescription() { let 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; } /** * @hidden * Method which makes the name of the class more descriptive. * This helps the styling of the badges. */ setClasses() { let classes = {}; switch (Type[this.type.toUpperCase()]) { case Type.DEFAULT: classes = { [`${this.cssClass}__circle--default`]: true }; break; case Type.INFO: classes = { [`${this.cssClass}__circle--info`]: true }; break; case Type.SUCCESS: classes = { [`${this.cssClass}__circle--success`]: true }; break; case Type.WARNING: classes = { [`${this.cssClass}__circle--warning`]: true }; break; case Type.ERROR: classes = { [`${this.cssClass}__circle--error`]: true }; 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); export { IgxBadgeComponent }; /** * @hidden */ let IgxBadgeModule = class IgxBadgeModule { }; IgxBadgeModule = __decorate([ NgModule({ declarations: [IgxBadgeComponent], exports: [IgxBadgeComponent], imports: [CommonModule, IgxIconModule] }) ], IgxBadgeModule); export { IgxBadgeModule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vaWduaXRldWktYW5ndWxhci8iLCJzb3VyY2VzIjpbImxpYi9iYWRnZS9iYWRnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUMsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBRWhCLE1BQU0sQ0FBTixJQUFZLElBTVg7QUFORCxXQUFZLElBQUk7SUFDWiwyQkFBbUIsQ0FBQTtJQUNuQixxQkFBYSxDQUFBO0lBQ2IsMkJBQW1CLENBQUE7SUFDbkIsMkJBQW1CLENBQUE7SUFDbkIsdUJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTlcsSUFBSSxLQUFKLElBQUksUUFNZjtBQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUtILElBQWEsaUJBQWlCLEdBQTlCLE1BQWEsaUJBQWlCO0lBQTlCO1FBRUk7Ozs7O1VBS0U7UUFHSyxPQUFFLEdBQUcsYUFBYSxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBRXJDOzs7Ozs7O1VBT0U7UUFFSyxTQUFJLEdBQWtCLFNBQVMsQ0FBQztRQUV2Qzs7Ozs7OztVQU9FO1FBRUssVUFBSyxHQUFHLEVBQUUsQ0FBQztRQWNsQjs7Ozs7Ozs7V0FRRztRQUVJLFNBQUksR0FBRyxRQUFRLENBQUM7UUFFdkI7Ozs7Ozs7O1dBUUc7UUFFSSxhQUFRLEdBQUcsV0FBVyxDQUFDO1FBRTlCOzs7Ozs7OztXQVFHO1FBRUksVUFBSyxHQUFHLE9BQU8sQ0FBQztJQTREM0IsQ0FBQztJQTFERzs7O09BR0c7SUFDSCxJQUFJLGVBQWU7UUFDZixJQUFJLE9BQU8sQ0FBQztRQUVaLHlEQUF5RDtRQUN6RCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ25FO2FBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25CLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLHlCQUF5QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDaEU7YUFBTTtZQUNILE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLDJCQUEyQixDQUFDO1NBQ3JEO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVO1FBQ2IsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBRWpCLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRTtZQUNuQyxLQUFLLElBQUksQ0FBQyxPQUFPO2dCQUNiLE9BQU8sR0FBRztvQkFDTixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsbUJBQW1CLENBQUMsRUFBRSxJQUFJO2lCQUM5QyxDQUFDO2dCQUNGLE1BQU07WUFDVixLQUFLLElBQUksQ0FBQyxJQUFJO2dCQUNWLE9BQU8sR0FBRztvQkFDTixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsZ0JBQWdCLENBQUMsRUFBRSxJQUFJO2lCQUMzQyxDQUFDO2dCQUNGLE1BQU07WUFDVixLQUFLLElBQUksQ0FBQyxPQUFPO2dCQUNiLE9BQU8sR0FBRztvQkFDTixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsbUJBQW1CLENBQUMsRUFBRSxJQUFJO2lCQUM5QyxDQUFDO2dCQUNGLE1BQU07WUFDVixLQUFLLElBQUksQ0FBQyxPQUFPO2dCQUNiLE9BQU8sR0FBRztvQkFDTixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsbUJBQW1CLENBQUMsRUFBRSxJQUFJO2lCQUM5QyxDQUFDO2dCQUNGLE1BQU07WUFDVixLQUFLLElBQUksQ0FBQyxLQUFLO2dCQUNYLE9BQU8sR0FBRztvQkFDTixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsaUJBQWlCLENBQUMsRUFBRSxJQUFJO2lCQUM1QyxDQUFDO2dCQUNGLE1BQU07U0FDYjtRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FFSixDQUFBO0FBbElHO0lBRkMsV0FBVyxDQUFDLFNBQVMsQ0FBQztJQUN0QixLQUFLLEVBQUU7OzZDQUM2QjtBQVdyQztJQURDLEtBQUssRUFBRTs7K0NBQytCO0FBV3ZDO0lBREMsS0FBSyxFQUFFOztnREFDVTtBQVlsQjtJQURDLEtBQUssRUFBRTs7K0NBQ1k7QUFZcEI7SUFEQyxXQUFXLENBQUMsV0FBVyxDQUFDOzsrQ0FDRjtBQVl2QjtJQURDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQzs7bURBQ0Q7QUFZOUI7SUFEQyxXQUFXLENBQUMsaUJBQWlCLENBQUM7O2dEQUNSO0FBaEZkLGlCQUFpQjtJQUo3QixTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsV0FBVztRQUNyQix1UkFBbUM7S0FDdEMsQ0FBQztHQUNXLGlCQUFpQixDQTRJN0I7U0E1SVksaUJBQWlCO0FBOEk5Qjs7R0FFRztBQU1ILElBQWEsY0FBYyxHQUEzQixNQUFhLGNBQWM7Q0FDMUIsQ0FBQTtBQURZLGNBQWM7SUFMMUIsUUFBUSxDQUFDO1FBQ04sWUFBWSxFQUFFLENBQUMsaUJBQWlCLENBQUM7UUFDakMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7UUFDNUIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQztLQUN6QyxDQUFDO0dBQ1csY0FBYyxDQUMxQjtTQURZLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbi9pbmRleCc7XG5cbmxldCBORVhUX0lEID0gMDtcblxuZXhwb3J0IGVudW0gVHlwZSB7XG4gICAgREVGQVVMVCA9ICdkZWZhdWx0JyxcbiAgICBJTkZPID0gJ2luZm8nLFxuICAgIFNVQ0NFU1MgPSAnc3VjY2VzcycsXG4gICAgV0FSTklORyA9ICd3YXJuaW5nJyxcbiAgICBFUlJPUiA9ICdlcnJvcidcbn1cbi8qKlxuICogKipJZ25pdGUgVUkgZm9yIEFuZ3VsYXIgQmFkZ2UqKiAtXG4gKiBbRG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cuaW5mcmFnaXN0aWNzLmNvbS9wcm9kdWN0cy9pZ25pdGUtdWktYW5ndWxhci9hbmd1bGFyL2NvbXBvbmVudHMvYmFkZ2UuaHRtbClcbiAqXG4gKiBUaGUgSWduaXRlIFVJIEJhZGdlIGlzIHVzZWQgdG8gZGVjb3JhdGUgYXZhdGFycywgbmF2aWdhdGlvbiBtZW51cywgb3Igb3RoZXIgY29tcG9uZW50cyBpbiB0aGVcbiAqIGFwcGxpY2F0aW9uIHdoZW4gdmlzdWFsIG5vdGlmaWNhdGlvbiBpcyBuZWVkZWQuIFRoZXkgYXJlIHVzdWFsbHkgZGVzaWduZWQgYXMgaWNvbnMgd2l0aCBhIHByZWRlZmluZWRcbiAqIHN0eWxlIHRvIGNvbW11bmljYXRlIGluZm9ybWF0aW9uLCBzdWNjZXNzLCB3YXJuaW5ncywgb3IgZXJyb3JzLlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGBodG1sXG4gKiA8aWd4LWF2YXRhciBpY29uPVwicGVyc29uXCIgcm91bmRTaGFwZT1cInRydWVcIiBzaXplPVwic21hbGxcIj5cbiAqICAgPGlneC1iYWRnZSBpY29uPVwiY2hlY2tcIiB0eXBlPVwic3VjY2Vzc1wiIGNsYXNzPVwiYmFkZ2Utc3R5bGVcIj5cbiAqICAgPC9pZ3gtYmFkZ2U+XG4gKiA8L2lneC1hdmF0YXI+XG4gKiBgYGBcbiAqIFRoZSBgYmFkZ2Utc3R5bGVgIGNsYXNzIGlzIHVzZWQgdG8gcG9zaXRpb24gdGhlIGJhZGdlOlxuICogYGBgY3NzXG4gKiAuYmFkZ2Utc3R5bGUge1xuICogICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gKiAgIGJvdHRvbTogLTZweDtcbiAqICAgcmlnaHQ6LTUwcHg7XG4gKiB9XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtYmFkZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnYmFkZ2UuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIElneEJhZGdlQ29tcG9uZW50IHtcblxuICAgIC8qKlxuICAgICogQW4gQElucHV0IHByb3BlcnR5IHRoYXQgc2V0cyB0aGUgdmFsdWUgb2YgdGhlIGBpZGAgYXR0cmlidXRlLlxuICAgICogYGBgaHRtbFxuICAgICo8aWd4LWJhZGdlIGlkPVwiaWd4LWJhZGdlLTJcIiBpY29uPVwiY2hlY2tcIiB0eXBlPVwic3VjY2Vzc1wiIGNsYXNzPVwiYmFkZ2Utc3R5bGVcIj48L2lneC1iYWRnZT5cbiAgICAqIGBgYFxuICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBpZ3gtYmFkZ2UtJHtORVhUX0lEKyt9YDtcblxuICAgIC8qKlxuICAgICogQW4gQElucHV0IHByb3BlcnR5IGNvbnRyb2xsaW5nIHRoZSB0eXBlIG9mIHRoZSBiYWRnZS5cbiAgICAqIEFsbG93ZWQgdmFsdWVzIGFyZSBgZGVmYXVsdGAsIGBpbmZvYCwgYHN1Y2Nlc3NgLCBgd2FybmluZ2AsIGBlcnJvcmAuXG4gICAgKiBQcm92aWRpbmcgYW4gaW52YWxpZCB2YWx1ZSB3b24ndCBkaXNwbGF5IGEgYmFkZ2UuXG4gICAgKiBgYGBodG1sXG4gICAgKjxpZ3gtYmFkZ2UgdHlwZT1cInN1Y2Nlc3NcIiBpY29uPVwiY2hlY2tcIiBjbGFzcz1cImJhZGdlLXN0eWxlXCI+PC9pZ3gtYmFkZ2U+XG4gICAgKiBgYGBcbiAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHR5cGU6IHN0cmluZyB8IFR5cGUgPSAnZGVmYXVsdCc7XG5cbiAgICAvKipcbiAgICAqIEFuIEBJbnB1dCBwcm9wZXJ0eSB0aGF0IHNldHMgdGhlIHZhbHVlIHRvIGJlIGRpc3BsYXllZCBpbnNpZGUgdGhlIGJhZGdlLlxuICAgICogSWYgYW4gYGljb25gIHByb3BlcnR5IGlzIGFscmVhZHkgc2V0IHRoZSBgaWNvbmAgd2lsbCBiZSBkaXNwbGF5ZWQuXG4gICAgKiBJZiBuZWl0aGVyIGEgYHZhbHVlYCBub3IgYW4gYGljb25gIGlzIHNldCB0aGUgY29udGVudGVudCBvZiB0aGUgYmFkZ2Ugd2lsbCBiZSBlbXB0eS5cbiAgICAqIGBgYGh0bWxcbiAgICAqPGlneC1iYWRnZSB2YWx1ZT1cIjExXCIgdHlwZT1cInN1Y2Nlc3NcIiBjbGFzcz1cImJhZGdlLXN0eWxlXCI+PC9pZ3gtYmFkZ2U+XG4gICAgKiBgYGBcbiAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbHVlID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgYW4gaWNvbiBmb3IgdGhlIGJhZGdlIGZyb20gdGhlIG1hdGVyaWFsIGljb25zIHNldC5cbiAgICAgKiBIYXMgcHJpb3JpdHkgb3ZlciB0aGUgYHZhbHVlYCBwcm9wZXJ0eS5cbiAgICAgKiBJZiBuZWl0aGVyIGEgYHZhbHVlYCBub3IgYW4gYGljb25gIGlzIHNldCB0aGUgY29udGVudCBvZiB0aGUgYmFkZ2Ugd2lsbCBiZSBlbXB0eS5cbiAgICAgKiBQcm92aWRpbmcgYW4gaW52YWxpZCB2YWx1ZSB3b24ndCBkaXNwbGF5IGFueXRoaW5nLlxuICAgICAqIGBgYGh0bWxcbiAgICAgKjxpZ3gtYmFkZ2UgaWNvbj1cImNoZWNrXCIgdHlwZT1cInN1Y2Nlc3NcIiBjbGFzcz1cImJhZGdlLXN0eWxlXCIgdmFsdWU9XCIxMVwiPjwvaWd4LWJhZGdlPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoaXMgYWxsb3dzIHlvdSB0byBzZXQgdmFsdWUgdG8gcm9sZSBhdHRyaWJ1dGUuXG4gICAgICpgYGBodG1sXG4gICAgICpAVmlld0NoaWxkKFwiTXlCYWRnZVwiLCB7IHJlYWQ6IElneEJhZGdlQ29tcG9uZW50IH0pXG4gICAgICpwdWJsaWMgYmFkZ2U6IElneEJhZGdlQ29tcG9uZW50O1xuICAgICAqIC8vLi4uXG4gICAgICpiYWRnZS5sYWJlbCA9IFwiYmFkZ2Utc3RhdHVzXCI7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIHB1YmxpYyByb2xlID0gJ3N0YXR1cyc7XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gZGlzYWJsZSBpZ3gtYmFkZ2UgY2xhc3MuIFRoZSBkZWZhdWx0IGl0J3MgYXBwbGllZC5cbiAgICAgKmBgYGh0bWxcbiAgICAgKkBWaWV3Q2hpbGQoXCJNeUJhZGdlXCIsIHsgcmVhZDogSWd4QmFkZ2VDb21wb25lbnQgfSlcbiAgICAgKnB1YmxpYyBiYWRnZTogSWd4QmFkZ2VDb21wb25lbnQ7XG4gICAgICogLy8uLi5cbiAgICAgKmJhZGdlLmNzc0NsYXNzID0gZmFsc2U7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYmFkZ2UnKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtYmFkZ2UnO1xuXG4gICAgLyoqXG4gICAgICogVGhpcyBhbGxvd3MgeW91IHRvIHNldCB2YWx1ZSB0byBhcmlhLWxhYmVsIGF0dHJpYnV0ZS5cbiAgICAgKmBgYGh0bWxcbiAgICAgKkBWaWV3Q2hpbGQoXCJNeUJhZGdlXCIsIHsgcmVhZDogSWd4QmFkZ2VDb21wb25lbnQgfSlcbiAgICAgKnB1YmxpYyBiYWRnZTogSWd4QmFkZ2VDb21wb25lbnQ7XG4gICAgICogLy8uLi5cbiAgICAgKmJhZGdlLmxhYmVsID0gXCJpY29uLWJhZGdlXCI7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKVxuICAgIHB1YmxpYyBsYWJlbCA9ICdiYWRnZSc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRGVmaW5lcyBhIGh1bWFuLXJlYWRhYmxlLCBhY2Nlc3NvciwgYXV0aG9yLWxvY2FsaXplZCBkZXNjcmlwdGlvbiBmb3IgdGhlIGB0eXBlYCBhbmQgdGhlIGBpY29uYCBvciBgdmFsdWVgIG9mIHRoZSBlbGVtZW50LlxuICAgICAqL1xuICAgIGdldCByb2xlRGVzY3JpcHRpb24oKSB7XG4gICAgICAgIGxldCBtZXNzYWdlO1xuXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpwcmVmZXItY29uZGl0aW9uYWwtZXhwcmVzc2lvblxuICAgICAgICBpZiAodGhpcy5pY29uKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gdGhpcy50eXBlICsgJyB0eXBlIGJhZGdlIHdpdGggaWNvbiB0eXBlICcgKyB0aGlzLmljb247XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHRoaXMudHlwZSArICcgYmFkZ2UgdHlwZSB3aXRoIHZhbHVlICcgKyB0aGlzLnZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWVzc2FnZSA9IHRoaXMudHlwZSArICcgYmFkZ2UgdHlwZSB3aXRob3V0IHZhbHVlJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtZXNzYWdlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNZXRob2Qgd2hpY2ggbWFrZXMgdGhlIG5hbWUgb2YgdGhlIGNsYXNzIG1vcmUgZGVzY3JpcHRpdmUuXG4gICAgICogVGhpcyBoZWxwcyB0aGUgc3R5bGluZyBvZiB0aGUgYmFkZ2VzLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRDbGFzc2VzKCkge1xuICAgICAgICBsZXQgY2xhc3NlcyA9IHt9O1xuXG4gICAgICAgIHN3aXRjaCAoVHlwZVt0aGlzLnR5cGUudG9VcHBlckNhc2UoKV0pIHtcbiAgICAgICAgICAgIGNhc2UgVHlwZS5ERUZBVUxUOlxuICAgICAgICAgICAgICAgIGNsYXNzZXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIFtgJHt0aGlzLmNzc0NsYXNzfV9fY2lyY2xlLS1kZWZhdWx0YF06IHRydWVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBUeXBlLklORk86XG4gICAgICAgICAgICAgICAgY2xhc3NlcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgW2Ake3RoaXMuY3NzQ2xhc3N9X19jaXJjbGUtLWluZm9gXTogdHJ1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFR5cGUuU1VDQ0VTUzpcbiAgICAgICAgICAgICAgICBjbGFzc2VzID0ge1xuICAgICAgICAgICAgICAgICAgICBbYCR7dGhpcy5jc3NDbGFzc31fX2NpcmNsZS0tc3VjY2Vzc2BdOiB0cnVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgVHlwZS5XQVJOSU5HOlxuICAgICAgICAgICAgICAgIGNsYXNzZXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIFtgJHt0aGlzLmNzc0NsYXNzfV9fY2lyY2xlLS13YXJuaW5nYF06IHRydWVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBUeXBlLkVSUk9SOlxuICAgICAgICAgICAgICAgIGNsYXNzZXMgPSB7XG4gICAgICAgICAgICAgICAgICAgIFtgJHt0aGlzLmNzc0NsYXNzfV9fY2lyY2xlLS1lcnJvcmBdOiB0cnVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbGFzc2VzO1xuICAgIH1cblxufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtJZ3hCYWRnZUNvbXBvbmVudF0sXG4gICAgZXhwb3J0czogW0lneEJhZGdlQ29tcG9uZW50XSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJZ3hJY29uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hCYWRnZU1vZHVsZSB7XG59XG4iXX0=