UNPKG

@catull/igniteui-angular

Version:

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

319 lines 27 kB
import { __decorate, __metadata } from "tslib"; import { CommonModule } from '@angular/common'; import { AfterViewInit, Component, ElementRef, HostBinding, Input, NgModule, OnInit, TemplateRef, ViewChild } from '@angular/core'; import { IgxIconModule } from '../icon/index'; var NEXT_ID = 0; export var Size; (function (Size) { Size["SMALL"] = "small"; Size["MEDIUM"] = "medium"; Size["LARGE"] = "large"; })(Size || (Size = {})); export var AvatarType; (function (AvatarType) { AvatarType["DEFAULT"] = "default"; AvatarType["INITIALS"] = "initials"; AvatarType["IMAGE"] = "image"; AvatarType["ICON"] = "icon"; })(AvatarType || (AvatarType = {})); /** * **Ignite UI for Angular Avatar** - * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/avatar.html) * * The Ignite UI Avatar provides an easy way to add an avatar icon to your application. This icon can be an * image, someone's initials or a material icon from the google material icon set. * * Example: * ```html * <igx-avatar initials="MS" roundShape="true" size="large"> * </igx-avatar> * ``` */ var IgxAvatarComponent = /** @class */ (function () { function IgxAvatarComponent(elementRef) { this.elementRef = elementRef; /** * Returns the `aria-label` of the avatar. * * ```typescript * let ariaLabel = this.avatar.ariaLabel; * ``` * */ this.ariaLabel = 'avatar'; /** * Returns the `role` attribute of the avatar. * * ```typescript * let avatarRole = this.avatar.role; * ``` * * @memberof IgxAvatarComponent */ this.role = 'img'; /** * Returns the class of the avatar. * * ```typescript * let avatarCLass = this.avatar.cssClass; * ``` * * @memberof IgxAvatarComponent */ this.cssClass = 'igx-avatar'; /** * @hidden */ this._size = 'small'; /** * Sets the `id` of the avatar. If not set, the first avatar component will have `id` = `"igx-avatar-0"`. * * ```html * <igx-avatar id="my-first-avatar"></igx-avatar> * ``` * * @memberof IgxAvatarComponent */ this.id = "igx-avatar-" + NEXT_ID++; /** * Sets a round shape to the avatar if `roundShape` is `"true"`. * By default the shape of the avatar is a square. * * ```html * <igx-avatar roundShape = "true" ></igx-avatar> * ``` * * @memberof IgxAvatarComponent */ this.roundShape = false; } Object.defineProperty(IgxAvatarComponent.prototype, "size", { /** * Returns the `size` of the avatar. * * ```typescript *let avatarSize = this.avatar.size; * ``` * * @memberof IgxAvatarComponent */ get: function () { return this._size; }, /** * Sets the `size` of the avatar. * By default the `size` is `"small"`. It can be set to `"medium"` or `"large"`. * * ``` * <igx-avatar size="large"></igx-avatar> * ``` * * @memberof IgxAvatarComponent */ set: function (value) { switch (value) { case 'small': case 'medium': case 'large': this._size = value; break; default: this._size = 'small'; } }, enumerable: true, configurable: true }); Object.defineProperty(IgxAvatarComponent.prototype, "type", { /** * Returns the type of the avatar. * * ```typescript * let avatarType = this.avatar.type; * ``` * * @memberof IgxAvatarComponent */ get: function () { if (this.src) { return AvatarType.IMAGE; } if (this.icon) { return AvatarType.ICON; } if (this.initials) { return AvatarType.INITIALS; } return AvatarType.DEFAULT; }, enumerable: true, configurable: true }); Object.defineProperty(IgxAvatarComponent.prototype, "template", { /** * Returns the template of the avatar. * * ```typescript * let template = this.avatar.template; * ``` * * @memberof IgxAvatarComponent */ get: function () { switch (this.type) { case AvatarType.IMAGE: return this.imageTemplate; case AvatarType.INITIALS: return this.initialsTemplate; case AvatarType.ICON: return this.iconTemplate; default: return this.defaultTemplate; } }, enumerable: true, configurable: true }); /** * @hidden */ IgxAvatarComponent.prototype.ngOnInit = function () { this.roleDescription = this.getRole(); }; /** *@hidden */ IgxAvatarComponent.prototype.ngAfterViewInit = function () { this.elementRef.nativeElement.classList .add("igx-avatar--" + this._size, "igx-avatar--" + this.type); }; /** * @hidden */ IgxAvatarComponent.prototype.getRole = function () { switch (this.type) { case AvatarType.IMAGE: return 'image avatar'; case AvatarType.ICON: return 'icon avatar'; case AvatarType.INITIALS: return 'initials avatar'; default: return 'custom avatar'; } }; /** * Returns the url of the `image`. * * ```typescript * let imageSourceUrl = this.avatar.getSrcUrl(); * ``` * * @memberof IgxAvatarComponent */ IgxAvatarComponent.prototype.getSrcUrl = function () { return "url(" + this.src + ")"; }; IgxAvatarComponent.ctorParameters = function () { return [ { type: ElementRef } ]; }; __decorate([ ViewChild('image'), __metadata("design:type", ElementRef) ], IgxAvatarComponent.prototype, "image", void 0); __decorate([ ViewChild('defaultTemplate', { read: TemplateRef, static: true }), __metadata("design:type", TemplateRef) ], IgxAvatarComponent.prototype, "defaultTemplate", void 0); __decorate([ ViewChild('imageTemplate', { read: TemplateRef, static: true }), __metadata("design:type", TemplateRef) ], IgxAvatarComponent.prototype, "imageTemplate", void 0); __decorate([ ViewChild('initialsTemplate', { read: TemplateRef, static: true }), __metadata("design:type", TemplateRef) ], IgxAvatarComponent.prototype, "initialsTemplate", void 0); __decorate([ ViewChild('iconTemplate', { read: TemplateRef, static: true }), __metadata("design:type", TemplateRef) ], IgxAvatarComponent.prototype, "iconTemplate", void 0); __decorate([ HostBinding('attr.aria-label'), __metadata("design:type", Object) ], IgxAvatarComponent.prototype, "ariaLabel", void 0); __decorate([ HostBinding('attr.role'), __metadata("design:type", Object) ], IgxAvatarComponent.prototype, "role", void 0); __decorate([ HostBinding('class.igx-avatar'), __metadata("design:type", Object) ], IgxAvatarComponent.prototype, "cssClass", void 0); __decorate([ HostBinding('attr.aria-roledescription'), __metadata("design:type", String) ], IgxAvatarComponent.prototype, "roleDescription", void 0); __decorate([ HostBinding('attr.id'), Input(), __metadata("design:type", Object) ], IgxAvatarComponent.prototype, "id", void 0); __decorate([ HostBinding('class.igx-avatar--rounded'), Input(), __metadata("design:type", Object) ], IgxAvatarComponent.prototype, "roundShape", void 0); __decorate([ HostBinding('style.color'), Input(), __metadata("design:type", String) ], IgxAvatarComponent.prototype, "color", void 0); __decorate([ HostBinding('style.background'), Input(), __metadata("design:type", String) ], IgxAvatarComponent.prototype, "bgColor", void 0); __decorate([ Input(), __metadata("design:type", String) ], IgxAvatarComponent.prototype, "initials", void 0); __decorate([ Input(), __metadata("design:type", String) ], IgxAvatarComponent.prototype, "icon", void 0); __decorate([ Input(), __metadata("design:type", String) ], IgxAvatarComponent.prototype, "src", void 0); __decorate([ Input(), __metadata("design:type", String), __metadata("design:paramtypes", [String]) ], IgxAvatarComponent.prototype, "size", null); IgxAvatarComponent = __decorate([ Component({ selector: 'igx-avatar', template: "<ng-template #defaultTemplate>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #imageTemplate>\n <div #image class=\"igx-avatar__image\" [style.backgroundImage]=\"getSrcUrl()\"></div>\n</ng-template>\n\n<ng-template #initialsTemplate>\n <span>{{initials.substring(0, 2)}}</span>\n</ng-template>\n\n<ng-template #iconTemplate>\n <igx-icon>{{icon}}</igx-icon>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"template\"></ng-container>\n" }), __metadata("design:paramtypes", [ElementRef]) ], IgxAvatarComponent); return IgxAvatarComponent; }()); export { IgxAvatarComponent }; /** * @hidden */ var IgxAvatarModule = /** @class */ (function () { function IgxAvatarModule() { } IgxAvatarModule = __decorate([ NgModule({ declarations: [IgxAvatarComponent], exports: [IgxAvatarComponent], imports: [CommonModule, IgxIconModule] }) ], IgxAvatarModule); return IgxAvatarModule; }()); export { IgxAvatarModule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2lnbml0ZXVpLWFuZ3VsYXIvIiwic291cmNlcyI6WyJsaWIvYXZhdGFyL2F2YXRhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsYUFBYSxFQUNiLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5QyxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7QUFFaEIsTUFBTSxDQUFOLElBQVksSUFJWDtBQUpELFdBQVksSUFBSTtJQUNaLHVCQUFlLENBQUE7SUFDZix5QkFBaUIsQ0FBQTtJQUNqQix1QkFBZSxDQUFBO0FBQ25CLENBQUMsRUFKVyxJQUFJLEtBQUosSUFBSSxRQUlmO0FBRUQsTUFBTSxDQUFOLElBQVksVUFLWDtBQUxELFdBQVksVUFBVTtJQUNsQixpQ0FBbUIsQ0FBQTtJQUNuQixtQ0FBcUIsQ0FBQTtJQUNyQiw2QkFBZSxDQUFBO0lBQ2YsMkJBQWEsQ0FBQTtBQUNqQixDQUFDLEVBTFcsVUFBVSxLQUFWLFVBQVUsUUFLckI7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFLSDtJQTBRSSw0QkFBbUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQXJPekM7Ozs7Ozs7V0FPRztRQUVJLGNBQVMsR0FBRyxRQUFRLENBQUM7UUFFNUI7Ozs7Ozs7O1dBUUc7UUFFSSxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBRXBCOzs7Ozs7OztXQVFHO1FBRUksYUFBUSxHQUFHLFlBQVksQ0FBQztRQWdCL0I7O1dBRUc7UUFDSyxVQUFLLEdBQWtCLE9BQU8sQ0FBQztRQUV2Qzs7Ozs7Ozs7V0FRRztRQUdJLE9BQUUsR0FBRyxnQkFBYyxPQUFPLEVBQUksQ0FBQztRQUV0Qzs7Ozs7Ozs7O1dBU0c7UUFJSSxlQUFVLEdBQUcsS0FBSyxDQUFDO0lBcUptQixDQUFDO0lBekU5QyxzQkFBVyxvQ0FBSTtRQVZmOzs7Ozs7OztXQVFHO2FBRUg7WUFDSSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQztRQUVEOzs7Ozs7Ozs7V0FTRzthQUNILFVBQWdCLEtBQW9CO1lBQ2hDLFFBQVEsS0FBSyxFQUFFO2dCQUNYLEtBQUssT0FBTyxDQUFDO2dCQUNiLEtBQUssUUFBUSxDQUFDO2dCQUNkLEtBQUssT0FBTztvQkFDUixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztvQkFDbkIsTUFBTTtnQkFDVjtvQkFDSSxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQzthQUM1QjtRQUNMLENBQUM7OztPQXRCQTtJQWlDRCxzQkFBSSxvQ0FBSTtRQVRSOzs7Ozs7OztXQVFHO2FBQ0g7WUFDSSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ1YsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDO2FBQzNCO1lBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNYLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQzthQUMxQjtZQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDZixPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUM7YUFDOUI7WUFFRCxPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQUM7UUFDOUIsQ0FBQzs7O09BQUE7SUFXRCxzQkFBSSx3Q0FBUTtRQVRaOzs7Ozs7OztXQVFHO2FBQ0g7WUFDSSxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ2YsS0FBSyxVQUFVLENBQUMsS0FBSztvQkFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUM5QixLQUFLLFVBQVUsQ0FBQyxRQUFRO29CQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDakMsS0FBSyxVQUFVLENBQUMsSUFBSTtvQkFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUM3QjtvQkFDSSxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7YUFDbkM7UUFDTCxDQUFDOzs7T0FBQTtJQUlEOztPQUVHO0lBQ0kscUNBQVEsR0FBZjtRQUNJLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNJLDRDQUFlLEdBQXRCO1FBQ0ksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsU0FBUzthQUNsQyxHQUFHLENBQUMsaUJBQWUsSUFBSSxDQUFDLEtBQU8sRUFBRSxpQkFBZSxJQUFJLENBQUMsSUFBTSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssb0NBQU8sR0FBZjtRQUNJLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNmLEtBQUssVUFBVSxDQUFDLEtBQUs7Z0JBQ2pCLE9BQU8sY0FBYyxDQUFDO1lBQzFCLEtBQUssVUFBVSxDQUFDLElBQUk7Z0JBQ2hCLE9BQU8sYUFBYSxDQUFDO1lBQ3pCLEtBQUssVUFBVSxDQUFDLFFBQVE7Z0JBQ3BCLE9BQU8saUJBQWlCLENBQUM7WUFDN0I7Z0JBQ0ksT0FBTyxlQUFlLENBQUM7U0FDOUI7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxzQ0FBUyxHQUFoQjtRQUNJLE9BQU8sU0FBTyxJQUFJLENBQUMsR0FBRyxNQUFHLENBQUM7SUFDOUIsQ0FBQzs7Z0JBNUM4QixVQUFVOztJQS9QekM7UUFEQyxTQUFTLENBQUMsT0FBTyxDQUFDO2tDQUNMLFVBQVU7cURBQUM7SUFNekI7UUFEQyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztrQ0FDdkMsV0FBVzsrREFBTTtJQU01QztRQURDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztrQ0FDdkMsV0FBVzs2REFBTTtJQU0xQztRQURDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO2tDQUN2QyxXQUFXO2dFQUFNO0lBTTdDO1FBREMsU0FBUyxDQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO2tDQUN2QyxXQUFXOzREQUFNO0lBV3pDO1FBREMsV0FBVyxDQUFDLGlCQUFpQixDQUFDOzt5REFDSDtJQVk1QjtRQURDLFdBQVcsQ0FBQyxXQUFXLENBQUM7O29EQUNMO0lBWXBCO1FBREMsV0FBVyxDQUFDLGtCQUFrQixDQUFDOzt3REFDRDtJQWMvQjtRQURDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQzs7K0RBQ1Y7SUFrQi9CO1FBRkMsV0FBVyxDQUFDLFNBQVMsQ0FBQztRQUN0QixLQUFLLEVBQUU7O2tEQUM4QjtJQWV0QztRQUZDLFdBQVcsQ0FBQywyQkFBMkIsQ0FBQztRQUN4QyxLQUFLLEVBQUU7OzBEQUNrQjtJQWMxQjtRQUZDLFdBQVcsQ0FBQyxhQUFhLENBQUM7UUFDMUIsS0FBSyxFQUFFOztxREFDYTtJQWNyQjtRQUZDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQztRQUMvQixLQUFLLEVBQUU7O3VEQUNlO0lBWXZCO1FBREMsS0FBSyxFQUFFOzt3REFDZ0I7SUFZeEI7UUFEQyxLQUFLLEVBQUU7O29EQUNZO0lBWXBCO1FBREMsS0FBSyxFQUFFOzttREFDVztJQVluQjtRQURDLEtBQUssRUFBRTs7O2tEQUdQO0lBbk1RLGtCQUFrQjtRQUo5QixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsWUFBWTtZQUN0Qiw0ZEFBb0M7U0FDdkMsQ0FBQzt5Q0EyUWlDLFVBQVU7T0ExUWhDLGtCQUFrQixDQXVUOUI7SUFBRCx5QkFBQztDQUFBLEFBdlRELElBdVRDO1NBdlRZLGtCQUFrQjtBQXlUL0I7O0dBRUc7QUFNSDtJQUFBO0lBQStCLENBQUM7SUFBbkIsZUFBZTtRQUwzQixRQUFRLENBQUM7WUFDTixZQUFZLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztZQUNsQyxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztZQUM3QixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDO1NBQ3pDLENBQUM7T0FDVyxlQUFlLENBQUk7SUFBRCxzQkFBQztDQUFBLEFBQWhDLElBQWdDO1NBQW5CLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hJY29uTW9kdWxlIH0gZnJvbSAnLi4vaWNvbi9pbmRleCc7XG5cbmxldCBORVhUX0lEID0gMDtcblxuZXhwb3J0IGVudW0gU2l6ZSB7XG4gICAgU01BTEwgPSAnc21hbGwnLFxuICAgIE1FRElVTSA9ICdtZWRpdW0nLFxuICAgIExBUkdFID0gJ2xhcmdlJ1xufVxuXG5leHBvcnQgZW51bSBBdmF0YXJUeXBlIHtcbiAgICBERUZBVUxUID0gJ2RlZmF1bHQnLFxuICAgIElOSVRJQUxTID0gJ2luaXRpYWxzJyxcbiAgICBJTUFHRSA9ICdpbWFnZScsXG4gICAgSUNPTiA9ICdpY29uJ1xufVxuXG4vKipcbiAqICoqSWduaXRlIFVJIGZvciBBbmd1bGFyIEF2YXRhcioqIC1cbiAqIFtEb2N1bWVudGF0aW9uXShodHRwczovL3d3dy5pbmZyYWdpc3RpY3MuY29tL3Byb2R1Y3RzL2lnbml0ZS11aS1hbmd1bGFyL2FuZ3VsYXIvY29tcG9uZW50cy9hdmF0YXIuaHRtbClcbiAqXG4gKiBUaGUgSWduaXRlIFVJIEF2YXRhciBwcm92aWRlcyBhbiBlYXN5IHdheSB0byBhZGQgYW4gYXZhdGFyIGljb24gdG8geW91ciBhcHBsaWNhdGlvbi4gIFRoaXMgaWNvbiBjYW4gYmUgYW5cbiAqIGltYWdlLCBzb21lb25lJ3MgaW5pdGlhbHMgb3IgYSBtYXRlcmlhbCBpY29uIGZyb20gdGhlIGdvb2dsZSBtYXRlcmlhbCBpY29uIHNldC5cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgaHRtbFxuICogPGlneC1hdmF0YXIgaW5pdGlhbHM9XCJNU1wiIHJvdW5kU2hhcGU9XCJ0cnVlXCIgc2l6ZT1cImxhcmdlXCI+XG4gKiA8L2lneC1hdmF0YXI+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtYXZhdGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2F2YXRhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSWd4QXZhdGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgYSByZWZlcmVuY2UgdG8gdGhlIGF2YXRhciBgaW1hZ2VgIGVsZW1lbnQgaW4gdGhlIERPTS5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiAgbGV0IGltYWdlID0gIHRoaXMuYXZhdGFyLmltYWdlO1xuICAgICAqIGBgYFxuICAgICAqIEBtZW1iZXJvZiBJZ3hBdmF0YXJDb21wb25lbnRcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdpbWFnZScpXG4gICAgcHVibGljIGltYWdlOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICpAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdFRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2ltYWdlVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgaW1hZ2VUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2luaXRpYWxzVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgaW5pdGlhbHNUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2ljb25UZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBpY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBgYXJpYS1sYWJlbGAgb2YgdGhlIGF2YXRhci5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgYXJpYUxhYmVsID0gdGhpcy5hdmF0YXIuYXJpYUxhYmVsO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKVxuICAgIHB1YmxpYyBhcmlhTGFiZWwgPSAnYXZhdGFyJztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGByb2xlYCBhdHRyaWJ1dGUgb2YgdGhlIGF2YXRhci5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgYXZhdGFyUm9sZSA9IHRoaXMuYXZhdGFyLnJvbGU7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4QXZhdGFyQ29tcG9uZW50XG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKVxuICAgIHB1YmxpYyByb2xlID0gJ2ltZyc7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBjbGFzcyBvZiB0aGUgYXZhdGFyLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBhdmF0YXJDTGFzcyA9ICB0aGlzLmF2YXRhci5jc3NDbGFzcztcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hBdmF0YXJDb21wb25lbnRcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1hdmF0YXInKVxuICAgIHB1YmxpYyBjc3NDbGFzcyA9ICdpZ3gtYXZhdGFyJztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHR5cGUgb2YgdGhlIGF2YXRhci5cbiAgICAgKiBUaGUgYXZhdGFyIGNhbiBiZTogYFwiaW5pdGlhbHMgdHlwZSBhdmF0YXJcImAsIGBcImljb24gdHlwZSBhdmF0YXJcImAgb3IgYFwiaW1hZ2UgdHlwZSBhdmF0YXJcImAuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGF2YXRhckRlc2NyaXB0aW9uID0gdGhpcy5hdmF0YXIucm9sZURlc2NyaXB0aW9uO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEF2YXRhckNvbXBvbmVudFxuICAgICAqL1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtcm9sZWRlc2NyaXB0aW9uJylcbiAgICBwdWJsaWMgcm9sZURlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nIHwgU2l6ZSA9ICdzbWFsbCc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgaWRgIG9mIHRoZSBhdmF0YXIuIElmIG5vdCBzZXQsIHRoZSBmaXJzdCBhdmF0YXIgY29tcG9uZW50IHdpbGwgaGF2ZSBgaWRgID0gYFwiaWd4LWF2YXRhci0wXCJgLlxuICAgICAqXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYXZhdGFyIGlkPVwibXktZmlyc3QtYXZhdGFyXCI+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEF2YXRhckNvbXBvbmVudFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgaWd4LWF2YXRhci0ke05FWFRfSUQrK31gO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyBhIHJvdW5kIHNoYXBlIHRvIHRoZSBhdmF0YXIgaWYgYHJvdW5kU2hhcGVgIGlzIGBcInRydWVcImAuXG4gICAgICogQnkgZGVmYXVsdCB0aGUgc2hhcGUgb2YgdGhlIGF2YXRhciBpcyBhIHNxdWFyZS5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciByb3VuZFNoYXBlID0gXCJ0cnVlXCIgPjwvaWd4LWF2YXRhcj5cbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hBdmF0YXJDb21wb25lbnRcbiAgICAgKi9cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWF2YXRhci0tcm91bmRlZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcm91bmRTaGFwZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYXZhdGFyJ3MgYGluaXRpYWxzYC9gaWNvbmAgY29sb3IuXG4gICAgICpcbiAgICAgKmBgYGh0bWxcbiAgICAgKjxpZ3gtYXZhdGFyIGNvbG9yPVwiYmx1ZVwiPjwvaWd4LWF2YXRhcj5cbiAgICAgKmBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEF2YXRhckNvbXBvbmVudFxuICAgICAqL1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5jb2xvcicpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sb3I6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIGF2YXRhci5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciBiZ0NvbG9yPVwieWVsbG93XCI+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEF2YXRhckNvbXBvbmVudFxuICAgICAqL1xuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5iYWNrZ3JvdW5kJylcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBiZ0NvbG9yOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGBpbml0aWFsc2AgdG8gdGhlIGF2YXRhci5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciBpbml0aWFscz1cIk1OXCI+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEF2YXRhckNvbXBvbmVudFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGluaXRpYWxzOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIGFuIGBpY29uYCB0byB0aGUgYXZhdGFyLiBBbGwgaWNvbnMgZnJvbSB0aGUgbWF0ZXJpYWwgaWNvbiBzZXQgYXJlIHN1cHBvcnRlZC5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciBpY29uPVwicGhvbmVcIj48L2lneC1hdmF0YXI+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4QXZhdGFyQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYGltYWdlYCBzb3VyY2Ugb2YgdGhlIGF2YXRhci5cbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWF2YXRhciBzcmM9XCJpbWFnZXMvcGljdHVyZS5qcGdcIj48L2lneC1hdmF0YXI+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4QXZhdGFyQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc3JjOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBgc2l6ZWAgb2YgdGhlIGF2YXRhci5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKmxldCBhdmF0YXJTaXplID0gIHRoaXMuYXZhdGFyLnNpemU7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAbWVtYmVyb2YgSWd4QXZhdGFyQ29tcG9uZW50XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHNpemUoKTogc3RyaW5nIHwgU2l6ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGBzaXplYCAgb2YgdGhlIGF2YXRhci5cbiAgICAgKiBCeSBkZWZhdWx0IHRoZSBgc2l6ZWAgaXMgYFwic21hbGxcImAuIEl0IGNhbiBiZSBzZXQgdG8gYFwibWVkaXVtXCJgIG9yIGBcImxhcmdlXCJgLlxuICAgICAqXG4gICAgICogYGBgXG4gICAgICogPGlneC1hdmF0YXIgc2l6ZT1cImxhcmdlXCI+PC9pZ3gtYXZhdGFyPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEF2YXRhckNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgc2l6ZSh2YWx1ZTogc3RyaW5nIHwgU2l6ZSkge1xuICAgICAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICAgICAgICBjYXNlICdzbWFsbCc6XG4gICAgICAgICAgICBjYXNlICdtZWRpdW0nOlxuICAgICAgICAgICAgY2FzZSAnbGFyZ2UnOlxuICAgICAgICAgICAgICAgIHRoaXMuX3NpemUgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5fc2l6ZSA9ICdzbWFsbCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBhdmF0YXIuXG4gICAgICpcbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogbGV0IGF2YXRhclR5cGUgPSB0aGlzLmF2YXRhci50eXBlO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEF2YXRhckNvbXBvbmVudFxuICAgICAqL1xuICAgIGdldCB0eXBlKCk6IEF2YXRhclR5cGUge1xuICAgICAgICBpZiAodGhpcy5zcmMpIHtcbiAgICAgICAgICAgIHJldHVybiBBdmF0YXJUeXBlLklNQUdFO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaWNvbikge1xuICAgICAgICAgICAgcmV0dXJuIEF2YXRhclR5cGUuSUNPTjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmluaXRpYWxzKSB7XG4gICAgICAgICAgICByZXR1cm4gQXZhdGFyVHlwZS5JTklUSUFMUztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBBdmF0YXJUeXBlLkRFRkFVTFQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdGVtcGxhdGUgb2YgdGhlIGF2YXRhci5cbiAgICAgKlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBsZXQgdGVtcGxhdGUgPSB0aGlzLmF2YXRhci50ZW1wbGF0ZTtcbiAgICAgKiBgYGBcbiAgICAgKlxuICAgICAqIEBtZW1iZXJvZiBJZ3hBdmF0YXJDb21wb25lbnRcbiAgICAgKi9cbiAgICBnZXQgdGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEF2YXRhclR5cGUuSU1BR0U6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNhc2UgQXZhdGFyVHlwZS5JTklUSUFMUzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pbml0aWFsc1RlbXBsYXRlO1xuICAgICAgICAgICAgY2FzZSBBdmF0YXJUeXBlLklDT046XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaWNvblRlbXBsYXRlO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0VGVtcGxhdGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnJvbGVEZXNjcmlwdGlvbiA9IHRoaXMuZ2V0Um9sZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdFxuICAgICAgICAgICAgLmFkZChgaWd4LWF2YXRhci0tJHt0aGlzLl9zaXplfWAsIGBpZ3gtYXZhdGFyLS0ke3RoaXMudHlwZX1gKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRSb2xlKCk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAodGhpcy50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEF2YXRhclR5cGUuSU1BR0U6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdpbWFnZSBhdmF0YXInO1xuICAgICAgICAgICAgY2FzZSBBdmF0YXJUeXBlLklDT046XG4gICAgICAgICAgICAgICAgcmV0dXJuICdpY29uIGF2YXRhcic7XG4gICAgICAgICAgICBjYXNlIEF2YXRhclR5cGUuSU5JVElBTFM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdpbml0aWFscyBhdmF0YXInO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2N1c3RvbSBhdmF0YXInO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgdXJsIG9mIHRoZSBgaW1hZ2VgLlxuICAgICAqXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGxldCBpbWFnZVNvdXJjZVVybCA9IHRoaXMuYXZhdGFyLmdldFNyY1VybCgpO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEF2YXRhckNvbXBvbmVudFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRTcmNVcmwoKSB7XG4gICAgICAgIHJldHVybiBgdXJsKCR7dGhpcy5zcmN9KWA7XG4gICAgfVxufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtJZ3hBdmF0YXJDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtJZ3hBdmF0YXJDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElneEljb25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIElneEF2YXRhck1vZHVsZSB7IH1cbiJdfQ==