ngx-histaff-alpha 3.8.2 → 3.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -99,6 +99,7 @@ export class CoreButtonVnsComponent {
99
99
  });
100
100
  }
101
101
  onButtonClick() {
102
+ console.log("onButtonClick========================>");
102
103
  this.clickStream$.next(crypto.randomUUID());
103
104
  if (this.data.isHeader) {
104
105
  const actionCode = this.data.code;
@@ -130,7 +131,7 @@ export class CoreButtonVnsComponent {
130
131
  }
131
132
  }
132
133
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonVnsComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.CoreButtonGroupService }, { token: i3.AlertService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i4.DomService }, { token: i5.ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
133
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreButtonVnsComponent, isStandalone: true, selector: "core-button-vns", inputs: { height: "height", data: "data", instanceNumber: "instanceNumber", disabled: "disabled", showCaption: "showCaption" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else {\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-block;\" [innerHtml]=\"iconSvg | stringHtml\">\r\n </i>\r\n }\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }] }); }
134
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreButtonVnsComponent, isStandalone: true, selector: "core-button-vns", inputs: { height: "height", data: "data", instanceNumber: "instanceNumber", disabled: "disabled", showCaption: "showCaption" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else {\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-block;\" [innerHtml]=\"iconSvg | stringHtml\">\r\n </i>\r\n }\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button type=\"button\" [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }] }); }
134
135
  }
135
136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonVnsComponent, decorators: [{
136
137
  type: Component,
@@ -139,7 +140,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
139
140
  TranslatePipe,
140
141
  TooltipDirective,
141
142
  StringHtmlPipe,
142
- ], template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else {\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-block;\" [innerHtml]=\"iconSvg | stringHtml\">\r\n </i>\r\n }\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"] }]
143
+ ], template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else {\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-block;\" [innerHtml]=\"iconSvg | stringHtml\">\r\n </i>\r\n }\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button type=\"button\" [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"] }]
143
144
  }], ctorParameters: () => [{ type: i1.MultiLanguageService }, { type: i2.CoreButtonGroupService }, { type: i3.AlertService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i4.DomService }, { type: i5.ActionService }], propDecorators: { height: [{
144
145
  type: Input
145
146
  }], data: [{
@@ -156,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
156
157
  type: ViewChild,
157
158
  args: ["container"]
158
159
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tdm5zL2NvcmUtYnV0dG9uLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLXZucy9jb3JlLWJ1dHRvbi12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE0QixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBS3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7OztBQWVyRSxNQUFNLE9BQU8sc0JBQXNCO0lBMkJqQyxZQUNVLEdBQXlCLEVBQ3pCLHNCQUE4QyxFQUM5QyxZQUEwQixFQUMxQixLQUFpQixFQUNqQixRQUFtQixFQUNwQixVQUFzQixFQUNyQixhQUE0QjtRQU41QixR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LFdBQVc7c0JBQXBCLE1BQU07Z0JBRWlCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGJ1ZmZlciwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IElDb3JlQnV0dG9uRHJvcGRvd25PcHRpb24sIElDb3JlQnV0dG9uVk5TIH0gZnJvbSAnLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL0lDb3JlQnV0dG9uVk5TJztcclxuaW1wb3J0IHsgQ29yZUJ1dHRvbkdyb3VwU2VydmljZSB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hbGVydC9hbGVydC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRG9tU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RvbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW51bUNvcmVCdXR0b25WTlNDb2RlIH0gZnJvbSAnLi4vY29yZS1idXR0b24tZ3JvdXAtdm5zL0VudW1Db3JlQnV0dG9uVk5TQ29kZSc7XHJcbmltcG9ydCB7IFN0cmluZ0h0bWxQaXBlIH0gZnJvbSAnLi4vLi4vLi4vYXBwLXBpcGVzL3N0cmluZy1odG1sLnBpcGUnO1xyXG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWN0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWJ1dHRvbi12bnMnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBTdHJpbmdIdG1sUGlwZSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWJ1dHRvbi12bnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb3JlLWJ1dHRvbi12bnMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlQnV0dG9uVm5zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBASW5wdXQoKSBoZWlnaHQhOiBudW1iZXI7XHJcbiAgQElucHV0KCkgZGF0YSE6IElDb3JlQnV0dG9uVk5TO1xyXG4gIEBJbnB1dCgpIGluc3RhbmNlTnVtYmVyITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93Q2FwdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8SUNvcmVCdXR0b25WTlM+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJjb250YWluZXJcIikgY29udGFpbmVyITogRWxlbWVudFJlZjtcclxuXHJcbiAgbGFuZyE6IHN0cmluZ1xyXG4gIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgaGlkZGVuITogYm9vbGVhbjtcclxuICB0b29sVGlwUG9zaXRpb24gPSBcInVuZGVyXCI7XHJcblxyXG4gIGxpc3RlbmVyRm4hOiAoKSA9PiB2b2lkO1xyXG4gIGV4cGFuZFN0YXRlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGljb25Tdmc/OiBzdHJpbmc7XHJcblxyXG4gIGNsaWNrU3RyZWFtJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XHJcblxyXG4gIGRlYnVnZ2luZyE6IGJvb2xlYW47XHJcblxyXG4gIGlzTGFzdENoaWxkT2ZHcm91cCE6IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb3JlQnV0dG9uR3JvdXBTZXJ2aWNlOiBDb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcclxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZG9tU2VydmljZTogRG9tU2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aW9uU2VydmljZTogQWN0aW9uU2VydmljZSxcclxuICApIHsgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCFjaGFuZ2VzWydoZWlnaHQnXT8uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIC8vZmFsbGJhY2tcclxuICAgICAgdGhpcy5oZWlnaHQgPSAzMDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmljb25TdmcgPSB0aGlzLmFjdGlvblNlcnZpY2UuYWN0aW9uTWFwLmdldCh0aGlzLmRhdGEuY29kZSk/Lmljb25Tdmc7XHJcblxyXG4gICAgaWYgKCEhdGhpcy5kYXRhLmRyb3Bkb3duT3B0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudG9vbFRpcFBvc2l0aW9uID0gXCJsZWZ0XCI7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgIHRoaXMubWxzLmxhbmckLnN1YnNjcmliZSh4ID0+IHRoaXMubGFuZyA9IHgpXHJcbiAgICApXHJcblxyXG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5jb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLmluc3RhbmNlcy5maWx0ZXIoeCA9PiB4Lmluc3RhbmNlTnVtYmVyID09PSB0aGlzLmluc3RhbmNlTnVtYmVyKTtcclxuICAgIGlmICghIWZpbHRlci5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgZmlsdGVyWzBdLm11c3RCZUhpZGRlbiQuc3Vic2NyaWJlKG1iaCA9PiB0aGlzLmhpZGRlbiA9IG1iaC5pbmNsdWRlcyh0aGlzLmRhdGEuY29kZSkpXHJcbiAgICAgIClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgICAvLyAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm4oXCJLaMO0bmcgdMOsbSB0aOG6pXkgaW5zdGFuY2UgbnVtYmVyIGPhu6dhIG5ow7NtIG7DunRcIiwgbm9uZUF1dG9DbG9zZWRBbGVydE9wdGlvbnMpO1xyXG4gICAgICAvLyB9XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGlzIGV2ZW50cyBnZXQgY2FsbGVkIGJ5IGFsbCBjbGlja3Mgb24gdGhlIHBhZ2VcclxuICAgICAqL1xyXG4gICAgdGhpcy5saXN0ZW5lckZuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdjbGljaycsIChlOiBFdmVudCkgPT4ge1xyXG4gICAgICAvKlxyXG4gICAgICAgKiBoYW5kbGUgY2xpY2sgb3V0c2lkZVxyXG4gICAgICAgKi9cclxuICAgICAgaWYgKHRoaXMuY29udGFpbmVyICYmICEhIXRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpKSB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRTdGF0ZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgIC8vIEdldCB0aGUgcGFyZW50IGNvbnRhaW5lciBlbGVtZW50XHJcbiAgICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnLmNvcmUtYnV0dG9uLWdyb3VwLXZucy1jb250YWluZXInKTtcclxuXHJcbiAgICAgIC8vIENoZWNrIGlmIHRoZSBjdXJyZW50IGVsZW1lbnQgaXMgdGhlIGxhc3QgY2hpbGQgb2YgdGhlIHBhcmVudCBjb250YWluZXJcclxuICAgICAgaWYgKHBhcmVudEVsZW1lbnQgJiYgcGFyZW50RWxlbWVudC5sYXN0RWxlbWVudENoaWxkID09PSB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICB0aGlzLmlzTGFzdENoaWxkT2ZHcm91cCA9IHRydWU7XHJcbiAgICAgICAgLy8gQWRkIGEgY2xhc3Mgb3IgcGVyZm9ybSBhbnkgb3BlcmF0aW9uIHlvdSBuZWVkXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsICdsYXN0LWNoaWxkJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pc0xhc3RDaGlsZE9mR3JvdXAgPSBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLmRlYnVnZ2luZyQuc3Vic2NyaWJlKHggPT4gdGhpcy5kZWJ1Z2dpbmcgPSB4KVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmNsaWNrU3RyZWFtJC5waXBlKFxyXG4gICAgICAgICAgYnVmZmVyKHRoaXMuY2xpY2tTdHJlYW0kLnBpcGUoZGVib3VuY2VUaW1lKDI1MCkpKSxcclxuICAgICAgICAgIG1hcChjbGlja3MgPT4gY2xpY2tzLmxlbmd0aCksXHJcbiAgICAgICAgICBmaWx0ZXIoY2xpY2tzTGVuZ3RoID0+IGNsaWNrc0xlbmd0aCA+PSA1KSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaWNvblN2ZyA9IHRoaXMuYWN0aW9uU2VydmljZS5hY3Rpb25NYXAuZ2V0KHRoaXMuZGF0YS5jb2RlKT8uaWNvblN2Z1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvblNlcnZpY2Uuc2hvd0VkaXRTdmckLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICBpZiAodGhpcy5kYXRhLmlzRHJvcGRvd24pIHtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLmRhdGEuY29kZSkge1xyXG4gICAgICAgICAgY2FzZSBFbnVtQ29yZUJ1dHRvblZOU0NvZGUuSEVBREVSX0RST1BET1dOX1BSSU5UOlxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgICB0aGlzLmNvcmVCdXR0b25Hcm91cFNlcnZpY2UuaGVhZGVyQnV0dG9uUHJpbnREcm9wZG93bk9wdGlvbnMkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5kcm9wZG93bk9wdGlvbnMgPSB4XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9EUk9QRE9XTl9TRVRfV09SS19TQ0hFRFVMRTpcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgICAgdGhpcy5jb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLmhlYWRlckJ1dHRvblNldFdvcmtTY2hlZHVsZURyb3Bkb3duT3B0aW9ucyQuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhLmRyb3Bkb3duT3B0aW9ucyA9IHhcclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgfVxyXG5cclxuICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgb25CdXR0b25DbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2tTdHJlYW0kLm5leHQoY3J5cHRvLnJhbmRvbVVVSUQoKSk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5pc0hlYWRlcikge1xyXG4gICAgICBjb25zdCBhY3Rpb25Db2RlID0gdGhpcy5kYXRhLmNvZGU7XHJcbiAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWN0aW9uU2VydmljZS5hY3Rpb25NYXAuZ2V0KGFjdGlvbkNvZGUpO1xyXG4gICAgICB0aGlzLmFjdGlvblNlcnZpY2UuY2xpY2tlZEl0ZW0kLm5leHQoYWN0aW9uKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmhpZGRlbikgcmV0dXJuO1xyXG5cclxuICAgIGlmICghdGhpcy5kYXRhLmlzSGVhZGVyKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCh0aGlzLmRhdGEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZGF0YT8uaXNEcm9wZG93bikge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kU3RhdGUgPSAhdGhpcy5leHBhbmRTdGF0ZTsgIFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICghdGhpcy5kZWJ1Z2dpbmcpIHtcclxuICAgICAgICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCh0aGlzLmRhdGEpOyAgICBcclxuICAgICAgICB9ICAgIFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoaWxkQ2xpY2soaXRlbTogSUNvcmVCdXR0b25Ecm9wZG93bk9wdGlvbiwgZTogYW55KSB7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKCF0aGlzLmRlYnVnZ2luZyAmJiAhIXRoaXMuZGF0YT8uaXNEcm9wZG93bikge1xyXG4gICAgICB0aGlzLmRhdGEuY2hpbGRDb2RlQ2xpY2tlZCA9IGl0ZW0uY2hpbGRDb2RlO1xyXG4gICAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTtcclxuICAgICAgdGhpcy5leHBhbmRTdGF0ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvcmUtYnV0dG9uLXZucy1jb250YWluZXJcIiAjY29udGFpbmVyIHN0eWxlPVwiaGVpZ2h0OiAzMHB4O1wiIFtjbGFzcy5hbHBoYS1oZWFkZXItYnV0dG9uXT1cIiEhZGF0YS5pc0hlYWRlclwiXHJcbiAgICBbY2xhc3MuYWxwaGEtbm9uLWhlYWRlci1idG5dPVwiIWRhdGEuaXNIZWFkZXJcIiBbYXBwVG9vbHRpcF09XCJkYXRhLmNhcHRpb24gfCB0cmFuc2xhdGU6IGxhbmdcIlxyXG4gICAgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soKVwiIFtuZ1N0eWxlXT1cInsgXHJcbiAgICAgICAgICAgIHdpZHRoOiAhIWRhdGEuaXNIZWFkZXIgPyAoZGF0YS53aXRoRGl2aWRlciA/IDIgKiBoZWlnaHQgKyAncHgnIDogaGVpZ2h0ICsgJ3B4JykgOiAnYXV0bycsXHJcbiAgICAgICAgfVwiPlxyXG5cclxuXHJcbiAgICBAaWYgKCEhZGF0YS5pc0hlYWRlcikge1xyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLXdyYXBwZXJcIiBbY2xhc3MucG9pbnRlcl09XCIhaGlkZGVuXCIgW2NsYXNzLmxhc3QtY2hpbGRdPVwiaXNMYXN0Q2hpbGRPZkdyb3VwXCIgW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiPlxyXG5cclxuICAgICAgICAgICAgQGlmICghaWNvblN2ZyB8fCAhaWNvblN2Zz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIDxpIHNyYz1cIlwiIFtjbGFzc109XCJkYXRhLmljb25DbGFzc1wiIFtjbGFzcy50ZW1wb3JhcnktdW5hdmFpbGFibGVdPVwiISFoaWRkZW5cIj48L2k+XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8aSBbY2xhc3MudGVtcG9yYXJ5LXVuYXZhaWxhYmxlXT1cIiEhaGlkZGVuXCIgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XCIgW2lubmVySHRtbF09XCJpY29uU3ZnIHwgc3RyaW5nSHRtbFwiPlxyXG4gICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgICAgICBAaWYgKCEhZGF0YS5pc0Ryb3Bkb3duKSB7XHJcbiAgICAgICAgICAgIDxkaXYgI2Ryb3Bkb3duIGNsYXNzPVwiaGVhZGVyLWJ1dHRvbi1kcm9wZG93bi13cmFwcGVyXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAhIWV4cGFuZFN0YXRlID8gJ2Jsb2NrJyA6ICdub25lJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMTAwcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiBkb21TZXJ2aWNlLmdldE1heFpJbmRleCgpICsgMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGRhdGEuZHJvcGRvd25PcHRpb25zITsgdHJhY2sgaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1idXR0b24tZHJvcGRvd24tbGluZVwiIChjbGljayk9XCJvbkNoaWxkQ2xpY2soaXRlbSwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJpdGVtLmNoaWxkSWNvbldyYXBwZXJDbGFzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiaXRlbS5jaGlsZEljb25DbGFzc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgW2FwcFRvb2x0aXBdPVwiaXRlbS5jaGlsZENhcHRpb25Db2RlIHwgdHJhbnNsYXRlOiBsYW5nXCI+e3sgaXRlbS5jaGlsZENhcHRpb25Db2RlIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlOiBsYW5nIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgQGlmICghIXNob3dDYXB0aW9uIHx8ICEhZGF0YS5zaG93Q2FwdGlvbikge1xyXG4gICAgICAgICAgICA8c3BhbiBbY2xhc3MudGVtcG9yYXJ5LXVuYXZhaWxhYmxlXT1cIiEhaGlkZGVuXCIgY2xhc3M9XCJidXR0b24tY2FwdGlvblwiPnt7IGRhdGEuY2FwdGlvbiB8IHRyYW5zbGF0ZTogbGFuZ1xyXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgQGlmICghIWRhdGEud2l0aERpdmlkZXIpIHtcclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBoZWlnaHQgKyAncHgnLCBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyB9XCIgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIH0gQGVsc2Uge1xyXG5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiBbY2xhc3MudGVtcG9yYXJ5LXVuYXZhaWxhYmxlXT1cIiEhaGlkZGVuXCIgW2NsYXNzLmxhc3QtY2hpbGRdPVwiaXNMYXN0Q2hpbGRPZkdyb3VwXCIgY2xhc3M9XCJidG4tZm9yLWZvcm0gYnRuIGJ0bi1zZWNvbmRhcnlcIj57eyBkYXRhLmNhcHRpb24gfCB0cmFuc2xhdGU6IGxhbmdcclxuICAgICAgICAgICAgICAgIH19PC9idXR0b24+XHJcblxyXG4gICAgfVxyXG5cclxuXHJcbjwvZGl2PiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWJ1dHRvbi1ncm91cC12bnMvY29yZS1idXR0b24tdm5zL2NvcmUtYnV0dG9uLXZucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1idXR0b24tZ3JvdXAtdm5zL2NvcmUtYnV0dG9uLXZucy9jb3JlLWJ1dHRvbi12bnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE0QixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckssT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBS3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDdkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7OztBQWVyRSxNQUFNLE9BQU8sc0JBQXNCO0lBMkJqQyxZQUNVLEdBQXlCLEVBQ3pCLHNCQUE4QyxFQUM5QyxZQUEwQixFQUMxQixLQUFpQixFQUNqQixRQUFtQixFQUNwQixVQUFzQixFQUNyQixhQUE0QjtRQU41QixRQUFHLEdBQUgsR0FBRyxDQUFzQjtRQUN6QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3JCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBNUI3QixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM1QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBSzNELGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyxvQkFBZSxHQUFHLE9BQU8sQ0FBQztRQUcxQixnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUk3QixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO0lBYzNDLENBQUM7SUFFTCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRSxZQUFZLEVBQUU7WUFDcEMsVUFBVTtZQUNWLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1NBQ2xCO0lBRUgsQ0FBQztJQUVELFFBQVE7UUFFTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQztRQUV6RSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7U0FDL0I7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FDN0MsQ0FBQTtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNyRixDQUFBO1NBQ0Y7YUFBTTtZQUNMLHFCQUFxQjtZQUNyQix1R0FBdUc7WUFDdkcsSUFBSTtTQUNMO0lBRUgsQ0FBQztJQUVELGVBQWU7UUFDYjs7V0FFRztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQVEsRUFBRSxFQUFFO1lBQ3JFOztlQUVHO1lBQ0gsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3hFLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO2FBQzFCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBRWQsbUNBQW1DO1lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1lBRTNGLHlFQUF5RTtZQUN6RSxJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUU7Z0JBQ2hGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7Z0JBQy9CLGdEQUFnRDtnQkFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDaEU7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQzthQUNqQztZQUVELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUNqRSxDQUFBO1lBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFDakQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUM1QixNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3pDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQTtnQkFDeEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxDQUNMLENBQUE7WUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUV4QixRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUN0QixLQUFLLHFCQUFxQixDQUFDLHFCQUFxQjt3QkFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3JCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxpQ0FBaUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7NEJBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQTt3QkFDL0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQTt3QkFDRCxNQUFNO29CQUNSLEtBQUsscUJBQXFCLENBQUMsaUNBQWlDO3dCQUMxRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FDckIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLDJDQUEyQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTs0QkFDcEYsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFBO3dCQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFBO3dCQUNELE1BQU07b0JBQ1I7d0JBQ0UsTUFBTTtpQkFDVDthQUVGO1FBRUgsQ0FBQyxDQUFDLENBQUE7SUFFSixDQUFDO0lBRUQsYUFBYTtRQUVYLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtRQUVyRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUU1QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3RCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7U0FDN0M7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUV4QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUN0QztpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNsQzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQStCLEVBQUUsQ0FBTTtRQUNsRCxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUM1QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7U0FDMUI7SUFDSCxDQUFDOzhHQTlLVSxzQkFBc0I7a0dBQXRCLHNCQUFzQixpWEMxQm5DLG91RkE0RE0sa21DRDFDRixZQUFZLCtHQUNaLGFBQWEsa0RBQ2IsZ0JBQWdCLGtJQUNoQixjQUFjOzsyRkFLTCxzQkFBc0I7a0JBWmxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGNBQWM7cUJBQ2Y7K1BBTVEsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBidWZmZXIsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJQ29yZUJ1dHRvbkRyb3Bkb3duT3B0aW9uLCBJQ29yZUJ1dHRvblZOUyB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9JQ29yZUJ1dHRvblZOUyc7XHJcbmltcG9ydCB7IENvcmVCdXR0b25Hcm91cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlLWJ1dHRvbi1ncm91cC1zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYWxlcnQvYWxlcnQuc2VydmljZSc7XHJcbmltcG9ydCB7IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXVsdGktbGFuZ3VhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9hcHAtcGlwZXMvdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERvbVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb20uc2VydmljZSc7XHJcbmltcG9ydCB7IEVudW1Db3JlQnV0dG9uVk5TQ29kZSB9IGZyb20gJy4uL2NvcmUtYnV0dG9uLWdyb3VwLXZucy9FbnVtQ29yZUJ1dHRvblZOU0NvZGUnO1xyXG5pbXBvcnQgeyBTdHJpbmdIdG1sUGlwZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1waXBlcy9zdHJpbmctaHRtbC5waXBlJztcclxuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2FjdGlvbi5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29yZS1idXR0b24tdm5zJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgU3RyaW5nSHRtbFBpcGUsXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29yZS1idXR0b24tdm5zLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUJ1dHRvblZuc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KCkgaGVpZ2h0ITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGRhdGEhOiBJQ29yZUJ1dHRvblZOUztcclxuICBASW5wdXQoKSBpbnN0YW5jZU51bWJlciE6IG51bWJlcjtcclxuICBASW5wdXQoKSBkaXNhYmxlZCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0NhcHRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPElDb3JlQnV0dG9uVk5TPigpO1xyXG5cclxuICBAVmlld0NoaWxkKFwiY29udGFpbmVyXCIpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGxhbmchOiBzdHJpbmdcclxuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIGhpZGRlbiE6IGJvb2xlYW47XHJcbiAgdG9vbFRpcFBvc2l0aW9uID0gXCJ1bmRlclwiO1xyXG5cclxuICBsaXN0ZW5lckZuITogKCkgPT4gdm9pZDtcclxuICBleHBhbmRTdGF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBpY29uU3ZnPzogc3RyaW5nO1xyXG5cclxuICBjbGlja1N0cmVhbSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xyXG5cclxuICBkZWJ1Z2dpbmchOiBib29sZWFuO1xyXG5cclxuICBpc0xhc3RDaGlsZE9mR3JvdXAhOiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbWxzOiBNdWx0aUxhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgY29yZUJ1dHRvbkdyb3VwU2VydmljZTogQ29yZUJ1dHRvbkdyb3VwU2VydmljZSxcclxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGRvbVNlcnZpY2U6IERvbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGlvblNlcnZpY2U6IEFjdGlvblNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cclxuICAgIGlmICghY2hhbmdlc1snaGVpZ2h0J10/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAvL2ZhbGxiYWNrXHJcbiAgICAgIHRoaXMuaGVpZ2h0ID0gMzA7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgdGhpcy5pY29uU3ZnID0gdGhpcy5hY3Rpb25TZXJ2aWNlLmFjdGlvbk1hcC5nZXQodGhpcy5kYXRhLmNvZGUpPy5pY29uU3ZnO1xyXG5cclxuICAgIGlmICghIXRoaXMuZGF0YS5kcm9wZG93bk9wdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnRvb2xUaXBQb3NpdGlvbiA9IFwibGVmdFwiO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICB0aGlzLm1scy5sYW5nJC5zdWJzY3JpYmUoeCA9PiB0aGlzLmxhbmcgPSB4KVxyXG4gICAgKVxyXG5cclxuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5pbnN0YW5jZXMuZmlsdGVyKHggPT4geC5pbnN0YW5jZU51bWJlciA9PT0gdGhpcy5pbnN0YW5jZU51bWJlcik7XHJcbiAgICBpZiAoISFmaWx0ZXIubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIGZpbHRlclswXS5tdXN0QmVIaWRkZW4kLnN1YnNjcmliZShtYmggPT4gdGhpcy5oaWRkZW4gPSBtYmguaW5jbHVkZXModGhpcy5kYXRhLmNvZGUpKVxyXG4gICAgICApXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBpZiAoaXNEZXZNb2RlKCkpIHtcclxuICAgICAgLy8gICB0aGlzLmFsZXJ0U2VydmljZS53YXJuKFwiS2jDtG5nIHTDrG0gdGjhuqV5IGluc3RhbmNlIG51bWJlciBj4bunYSBuaMOzbSBuw7p0XCIsIG5vbmVBdXRvQ2xvc2VkQWxlcnRPcHRpb25zKTtcclxuICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8qKlxyXG4gICAgICogVGhpcyBldmVudHMgZ2V0IGNhbGxlZCBieSBhbGwgY2xpY2tzIG9uIHRoZSBwYWdlXHJcbiAgICAgKi9cclxuICAgIHRoaXMubGlzdGVuZXJGbiA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcclxuICAgICAgLypcclxuICAgICAgICogaGFuZGxlIGNsaWNrIG91dHNpZGVcclxuICAgICAgICovXHJcbiAgICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiAhISF0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0KSkge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kU3RhdGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcblxyXG4gICAgICAvLyBHZXQgdGhlIHBhcmVudCBjb250YWluZXIgZWxlbWVudFxyXG4gICAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJy5jb3JlLWJ1dHRvbi1ncm91cC12bnMtY29udGFpbmVyJyk7XHJcblxyXG4gICAgICAvLyBDaGVjayBpZiB0aGUgY3VycmVudCBlbGVtZW50IGlzIHRoZSBsYXN0IGNoaWxkIG9mIHRoZSBwYXJlbnQgY29udGFpbmVyXHJcbiAgICAgIGlmIChwYXJlbnRFbGVtZW50ICYmIHBhcmVudEVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCA9PT0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5pc0xhc3RDaGlsZE9mR3JvdXAgPSB0cnVlO1xyXG4gICAgICAgIC8vIEFkZCBhIGNsYXNzIG9yIHBlcmZvcm0gYW55IG9wZXJhdGlvbiB5b3UgbmVlZFxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCAnbGFzdC1jaGlsZCcpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaXNMYXN0Q2hpbGRPZkdyb3VwID0gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgIHRoaXMuYWN0aW9uU2VydmljZS5kZWJ1Z2dpbmckLnN1YnNjcmliZSh4ID0+IHRoaXMuZGVidWdnaW5nID0geClcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5jbGlja1N0cmVhbSQucGlwZShcclxuICAgICAgICAgIGJ1ZmZlcih0aGlzLmNsaWNrU3RyZWFtJC5waXBlKGRlYm91bmNlVGltZSgyNTApKSksXHJcbiAgICAgICAgICBtYXAoY2xpY2tzID0+IGNsaWNrcy5sZW5ndGgpLFxyXG4gICAgICAgICAgZmlsdGVyKGNsaWNrc0xlbmd0aCA9PiBjbGlja3NMZW5ndGggPj0gNSkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmljb25TdmcgPSB0aGlzLmFjdGlvblNlcnZpY2UuYWN0aW9uTWFwLmdldCh0aGlzLmRhdGEuY29kZSk/Lmljb25TdmdcclxuICAgICAgICAgICAgdGhpcy5hY3Rpb25TZXJ2aWNlLnNob3dFZGl0U3ZnJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgKVxyXG5cclxuICAgICAgaWYgKHRoaXMuZGF0YS5pc0Ryb3Bkb3duKSB7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5kYXRhLmNvZGUpIHtcclxuICAgICAgICAgIGNhc2UgRW51bUNvcmVCdXR0b25WTlNDb2RlLkhFQURFUl9EUk9QRE9XTl9QUklOVDpcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgICAgICAgdGhpcy5jb3JlQnV0dG9uR3JvdXBTZXJ2aWNlLmhlYWRlckJ1dHRvblByaW50RHJvcGRvd25PcHRpb25zJC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEuZHJvcGRvd25PcHRpb25zID0geFxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIEVudW1Db3JlQnV0dG9uVk5TQ29kZS5IRUFERVJfRFJPUERPV05fU0VUX1dPUktfU0NIRURVTEU6XHJcbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICAgIHRoaXMuY29yZUJ1dHRvbkdyb3VwU2VydmljZS5oZWFkZXJCdXR0b25TZXRXb3JrU2NoZWR1bGVEcm9wZG93bk9wdGlvbnMkLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5kcm9wZG93bk9wdGlvbnMgPSB4XHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuXHJcbiAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIG9uQnV0dG9uQ2xpY2soKTogdm9pZCB7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJvbkJ1dHRvbkNsaWNrPT09PT09PT09PT09PT09PT09PT09PT09PlwiKVxyXG5cclxuICAgIHRoaXMuY2xpY2tTdHJlYW0kLm5leHQoY3J5cHRvLnJhbmRvbVVVSUQoKSk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YS5pc0hlYWRlcikge1xyXG4gICAgICBjb25zdCBhY3Rpb25Db2RlID0gdGhpcy5kYXRhLmNvZGU7XHJcbiAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWN0aW9uU2VydmljZS5hY3Rpb25NYXAuZ2V0KGFjdGlvbkNvZGUpO1xyXG4gICAgICB0aGlzLmFjdGlvblNlcnZpY2UuY2xpY2tlZEl0ZW0kLm5leHQoYWN0aW9uKVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmhpZGRlbikgcmV0dXJuO1xyXG5cclxuICAgIGlmICghdGhpcy5kYXRhLmlzSGVhZGVyKSB7XHJcbiAgICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCh0aGlzLmRhdGEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuZGF0YT8uaXNEcm9wZG93bikge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kU3RhdGUgPSAhdGhpcy5leHBhbmRTdGF0ZTsgIFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICghdGhpcy5kZWJ1Z2dpbmcpIHtcclxuICAgICAgICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCh0aGlzLmRhdGEpOyAgICBcclxuICAgICAgICB9ICAgIFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoaWxkQ2xpY2soaXRlbTogSUNvcmVCdXR0b25Ecm9wZG93bk9wdGlvbiwgZTogYW55KSB7XHJcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKCF0aGlzLmRlYnVnZ2luZyAmJiAhIXRoaXMuZGF0YT8uaXNEcm9wZG93bikge1xyXG4gICAgICB0aGlzLmRhdGEuY2hpbGRDb2RlQ2xpY2tlZCA9IGl0ZW0uY2hpbGRDb2RlO1xyXG4gICAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQodGhpcy5kYXRhKTtcclxuICAgICAgdGhpcy5leHBhbmRTdGF0ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvcmUtYnV0dG9uLXZucy1jb250YWluZXJcIiAjY29udGFpbmVyIHN0eWxlPVwiaGVpZ2h0OiAzMHB4O1wiIFtjbGFzcy5hbHBoYS1oZWFkZXItYnV0dG9uXT1cIiEhZGF0YS5pc0hlYWRlclwiXHJcbiAgICBbY2xhc3MuYWxwaGEtbm9uLWhlYWRlci1idG5dPVwiIWRhdGEuaXNIZWFkZXJcIiBbYXBwVG9vbHRpcF09XCJkYXRhLmNhcHRpb24gfCB0cmFuc2xhdGU6IGxhbmdcIlxyXG4gICAgKGNsaWNrKT1cIm9uQnV0dG9uQ2xpY2soKVwiIFtuZ1N0eWxlXT1cInsgXHJcbiAgICAgICAgICAgIHdpZHRoOiAhIWRhdGEuaXNIZWFkZXIgPyAoZGF0YS53aXRoRGl2aWRlciA/IDIgKiBoZWlnaHQgKyAncHgnIDogaGVpZ2h0ICsgJ3B4JykgOiAnYXV0bycsXHJcbiAgICAgICAgfVwiPlxyXG5cclxuXHJcbiAgICBAaWYgKCEhZGF0YS5pc0hlYWRlcikge1xyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLXdyYXBwZXJcIiBbY2xhc3MucG9pbnRlcl09XCIhaGlkZGVuXCIgW2NsYXNzLmxhc3QtY2hpbGRdPVwiaXNMYXN0Q2hpbGRPZkdyb3VwXCIgW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiPlxyXG5cclxuICAgICAgICAgICAgQGlmICghaWNvblN2ZyB8fCAhaWNvblN2Zz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIDxpIHNyYz1cIlwiIFtjbGFzc109XCJkYXRhLmljb25DbGFzc1wiIFtjbGFzcy50ZW1wb3JhcnktdW5hdmFpbGFibGVdPVwiISFoaWRkZW5cIj48L2k+XHJcbiAgICAgICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8aSBbY2xhc3MudGVtcG9yYXJ5LXVuYXZhaWxhYmxlXT1cIiEhaGlkZGVuXCIgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XCIgW2lubmVySHRtbF09XCJpY29uU3ZnIHwgc3RyaW5nSHRtbFwiPlxyXG4gICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgICAgICBAaWYgKCEhZGF0YS5pc0Ryb3Bkb3duKSB7XHJcbiAgICAgICAgICAgIDxkaXYgI2Ryb3Bkb3duIGNsYXNzPVwiaGVhZGVyLWJ1dHRvbi1kcm9wZG93bi13cmFwcGVyXCIgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAhIWV4cGFuZFN0YXRlID8gJ2Jsb2NrJyA6ICdub25lJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMTAwcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiBkb21TZXJ2aWNlLmdldE1heFpJbmRleCgpICsgMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGRhdGEuZHJvcGRvd25PcHRpb25zITsgdHJhY2sgaXRlbSkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1idXR0b24tZHJvcGRvd24tbGluZVwiIChjbGljayk9XCJvbkNoaWxkQ2xpY2soaXRlbSwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJpdGVtLmNoaWxkSWNvbldyYXBwZXJDbGFzc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiaXRlbS5jaGlsZEljb25DbGFzc1wiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgW2FwcFRvb2x0aXBdPVwiaXRlbS5jaGlsZENhcHRpb25Db2RlIHwgdHJhbnNsYXRlOiBsYW5nXCI+e3sgaXRlbS5jaGlsZENhcHRpb25Db2RlIHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlOiBsYW5nIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICBcclxuICAgICAgICAgICAgQGlmICghIXNob3dDYXB0aW9uIHx8ICEhZGF0YS5zaG93Q2FwdGlvbikge1xyXG4gICAgICAgICAgICA8c3BhbiBbY2xhc3MudGVtcG9yYXJ5LXVuYXZhaWxhYmxlXT1cIiEhaGlkZGVuXCIgY2xhc3M9XCJidXR0b24tY2FwdGlvblwiPnt7IGRhdGEuY2FwdGlvbiB8IHRyYW5zbGF0ZTogbGFuZ1xyXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgQGlmICghIWRhdGEud2l0aERpdmlkZXIpIHtcclxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsgaGVpZ2h0OiBoZWlnaHQgKyAncHgnLCBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyB9XCIgY2xhc3M9XCJzZXBhcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICB9XHJcblxyXG5cclxuICAgIH0gQGVsc2Uge1xyXG5cclxuXHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2NsYXNzLnRlbXBvcmFyeS11bmF2YWlsYWJsZV09XCIhIWhpZGRlblwiIFtjbGFzcy5sYXN0LWNoaWxkXT1cImlzTGFzdENoaWxkT2ZHcm91cFwiIGNsYXNzPVwiYnRuLWZvci1mb3JtIGJ0biBidG4tc2Vjb25kYXJ5XCI+e3sgZGF0YS5jYXB0aW9uIHwgdHJhbnNsYXRlOiBsYW5nXHJcbiAgICAgICAgICAgICAgICB9fTwvYnV0dG9uPlxyXG5cclxuICAgIH1cclxuXHJcblxyXG48L2Rpdj4iXX0=
@@ -19,27 +19,21 @@ export class CoreFilterKitComponent extends BaseComponent {
19
19
  this.renderer = renderer;
20
20
  this.statusOptions$ = new BehaviorSubject([]);
21
21
  this.onChange = new EventEmitter();
22
+ this.eventListeners = []; // Store cleanup functions for events
22
23
  }
23
24
  onParamKitValueChange(data) {
24
25
  this.onChange.emit(data);
25
26
  }
26
27
  listenerSetup() {
27
- let offset = {
28
- dx: 0,
29
- dy: 0,
30
- };
28
+ let offset = { dx: 0, dy: 0, };
31
29
  const containerElement = this.container.nativeElement;
32
30
  const headerElement = this.header.nativeElement;
33
31
  if (!this.relativeMode) {
34
32
  containerElement.style.setProperty('z-index', this.domService.getMaxZIndex() + 1);
35
33
  }
36
34
  const handleMouseDown = (e) => {
37
- // important!
38
35
  e.preventDefault();
39
- const startPos = {
40
- x: e.clientX - offset.dx,
41
- y: e.clientY - offset.dy,
42
- };
36
+ const startPos = { x: e.clientX - offset.dx, y: e.clientY - offset.dy };
43
37
  const handleMouseMove = (e) => {
44
38
  // How far the mouse has been moved
45
39
  const dx = e.clientX - startPos.x;
@@ -55,8 +49,13 @@ export class CoreFilterKitComponent extends BaseComponent {
55
49
  document.removeEventListener('mousemove', handleMouseMove);
56
50
  document.removeEventListener('mouseup', handleMouseUp);
57
51
  };
58
- document.addEventListener('mousemove', handleMouseMove, { passive: true });
59
- document.addEventListener('mouseup', handleMouseUp, { passive: true });
52
+ if (!this.relativeMode) {
53
+ document.addEventListener('mousemove', handleMouseMove, { passive: true });
54
+ document.addEventListener('mouseup', handleMouseUp, { passive: true });
55
+ // Store the cleanup functions
56
+ this.eventListeners.push(() => document.removeEventListener('mousemove', handleMouseMove));
57
+ this.eventListeners.push(() => document.removeEventListener('mouseup', handleMouseUp));
58
+ }
60
59
  };
61
60
  var handleTouchStart = (e) => {
62
61
  const touch = e.touches[0];
@@ -83,12 +82,15 @@ export class CoreFilterKitComponent extends BaseComponent {
83
82
  if (!this.relativeMode) {
84
83
  headerElement.addEventListener('mousedown', handleMouseDown);
85
84
  headerElement.addEventListener('touchstart', handleTouchStart);
85
+ // Store cleanup functions for the added event listeners
86
+ this.eventListeners.push(() => headerElement.removeEventListener('mousedown', handleMouseDown));
87
+ this.eventListeners.push(() => headerElement.removeEventListener('touchstart', handleTouchStart));
86
88
  }
87
89
  }
88
90
  ngAfterViewInit() {
89
91
  setTimeout(() => {
90
92
  this.listenerSetup();
91
- this.filterKitService.open$.pipe(debounceTime(200)).subscribe(x => {
93
+ this.subscriptions.push(this.filterKitService.open$.pipe(debounceTime(200)).subscribe(x => {
92
94
  if (!!x) {
93
95
  this.listenerFn = this.renderer.listen('window', 'click', (e) => {
94
96
  if (this.container && !!!this.container.nativeElement.contains(e.target)) {
@@ -100,8 +102,8 @@ export class CoreFilterKitComponent extends BaseComponent {
100
102
  if (this.listenerFn)
101
103
  this.listenerFn();
102
104
  }
103
- this.filterKitService.open$.subscribe(x => this.open = x);
104
- });
105
+ }));
106
+ this.subscriptions.push(this.filterKitService.open$.subscribe(x => this.open = x));
105
107
  this.top = this.layoutService.headerHeight + this.layoutService.corePageHeaderHeight;
106
108
  });
107
109
  }
@@ -110,9 +112,13 @@ export class CoreFilterKitComponent extends BaseComponent {
110
112
  this.filterKitService.open$.next(false);
111
113
  }
112
114
  ngOnDestroy() {
113
- this.subscriptions?.forEach(x => x?.unsubscribe);
115
+ // Unsubscribe from all subscriptions
116
+ this.subscriptions?.forEach(x => x?.unsubscribe());
117
+ // Call listenerFn to remove the event listener set by renderer.listen
114
118
  if (this.listenerFn)
115
119
  this.listenerFn();
120
+ // Clean up the custom event listeners
121
+ this.eventListeners.forEach(cleanup => cleanup());
116
122
  }
117
123
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFilterKitComponent, deps: [{ token: i1.MultiLanguageService }, { token: i2.DomService }, { token: i3.FilterKitService }, { token: i4.LayoutService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
118
124
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFilterKitComponent, isStandalone: true, selector: "core-filter-kit", inputs: { relativeMode: "relativeMode", enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters", datePeriodComparisonFor: "datePeriodComparisonFor", datePeriodComparisonForLabelKey: "datePeriodComparisonForLabelKey", statusInclusionFor: "statusInclusionFor", statusInclusionForLabelKey: "statusInclusionForLabelKey", statusOptionsApi: "statusOptionsApi", showOrgParam: "showOrgParam", showOrgParamDropdown: "showOrgParamDropdown", hideDatePeriodComparison: "hideDatePeriodComparison", hideStatusInclusion: "hideStatusInclusion", hideGeneralSearch: "hideGeneralSearch", statusOptions$: "statusOptions$" }, outputs: { onChange: "onChange" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-filter-kit-container\" [class.d-none]=\"!open\" [ngStyle]=\"{\r\n top: top + 'px'\r\n}\">\r\n <div class=\"p-relative\">\r\n <div #header class=\"header\" [ngStyle]=\"{\r\n cursor: relativeMode ? 'auto' : 'move'\r\n }\">\r\n <span>{{ 'UI.COMPONENT_TITLE_FILTER_KIT' | translate: lang | uppercase }}</span>\r\n @if (!relativeMode) {\r\n <i class=\"feather-x\" (click)=\"onClose($event)\"></i>\r\n }\r\n </div>\r\n <core-common-param-kit \r\n [hiddenMode]=\"true\"\r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" \r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" \r\n [statusOptions$]=\"statusOptions$\" \r\n [showOrgParam]=\"showOrgParam\"\r\n [showOrgParamDropdown]=\"showOrgParamDropdown\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\" \r\n [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"\r\n ></core-common-param-kit>\r\n </div>\r\n</div>", styles: [".core-filter-kit-container{background-color:#fff;width:420px;position:fixed;display:block;z-index:9;right:120px;box-shadow:.4rem 0 2rem #0000002e;border-radius:2px}.core-filter-kit-container .header{padding:15px;display:block;height:50px}.core-filter-kit-container .header i{color:gray;font-size:24px;float:right;cursor:pointer;transform:translate(6px,-6px)}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoreCommonParamKitComponent, selector: "core-common-param-kit", inputs: ["hiddenMode", "enableTimeZoneConverterForDateTimePeriodParameters", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "showOrgParam", "showOrgParamDropdown", "hideDatePeriodComparison", "hideStatusInclusion", "hideGeneralSearch", "statusOptions$"], outputs: ["onChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }] }); }
@@ -160,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
160
166
  }], onChange: [{
161
167
  type: Output
162
168
  }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1maWx0ZXIta2l0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZpbHRlci1raXQvY29yZS1maWx0ZXIta2l0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZpbHRlci1raXQvY29yZS1maWx0ZXIta2l0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSSxPQUFPLEVBQUUsMkJBQTJCLEVBQXVDLE1BQU0sZ0ZBQWdGLENBQUM7QUFFbEssT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFnQnpELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBMEJ2RCxZQUNrQixHQUF5QixFQUNqQyxVQUFzQixFQUN0QixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsUUFBbUI7UUFFM0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBTkssUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxD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QyxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLFVBQVU7WUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDekMsQ0FBQzs4R0F6SlUsc0JBQXNCO2tHQUF0QixzQkFBc0IsODhCQ3pCbkMsa2dEQTZCTSxrYURaRixPQUFPLDJFQUNQLDJCQUEyQiwwYUFDM0IsYUFBYSw2Q0FDYixhQUFhOzsyRkFLSixzQkFBc0I7a0JBWmxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsMkJBQTJCO3dCQUMzQixhQUFhO3dCQUNiLGFBQWE7cUJBQ2Q7cU1BTXVCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDRCxNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBRVYsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxrREFBa0Q7c0JBQTFELEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUNHLCtCQUErQjtzQkFBdkMsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNJLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb3JlQ29tbW9uUGFyYW1LaXRDb21wb25lbnQsIElDb3JlQ29tbW9uUGFyYW1LaXRFdmVudEVtaXR0ZXJEYXRhIH0gZnJvbSAnLi4vY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC9jb3JlLWNvbW1vbi1wYXJhbS1raXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgYXBpLCBFbnVtVHJhbnNsYXRlS2V5IH0gZnJvbSAnYWxwaGEtZ2xvYmFsLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IElDb3JlQ2hlY2tsaXN0T3B0aW9uIH0gZnJvbSAnLi4vY29yZS1jaGVja2xpc3QvY29yZS1jaGVja2xpc3QvY29yZS1jaGVja2xpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRG9tU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2RvbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uL2FwcC1waXBlcy90cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWNvbXBvbmVudC9iYXNlL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXVsdGlMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tdWx0aS1sYW5ndWFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmdTdHlsZSwgVXBwZXJDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZpbHRlcktpdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWx0ZXIta2l0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGF5b3V0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjb3JlLWZpbHRlci1raXQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdTdHlsZSxcclxuICAgIENvcmVDb21tb25QYXJhbUtpdENvbXBvbmVudCxcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBVcHBlckNhc2VQaXBlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS1maWx0ZXIta2l0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY29yZS1maWx0ZXIta2l0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZUZpbHRlcktpdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXIhOiBFbGVtZW50UmVmPGFueT47XHJcbiAgQFZpZXdDaGlsZCgnaGVhZGVyJykgaGVhZGVyITogRWxlbWVudFJlZjxhbnk+O1xyXG5cclxuICBASW5wdXQoKSByZWxhdGl2ZU1vZGUhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVRpbWVab25lQ29udmVydGVyRm9yRGF0ZVRpbWVQZXJpb2RQYXJhbWV0ZXJzITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkYXRlUGVyaW9kQ29tcGFyaXNvbkZvciE6IHN0cmluZztcclxuICBASW5wdXQoKSBkYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5ITogRW51bVRyYW5zbGF0ZUtleTtcclxuICBASW5wdXQoKSBzdGF0dXNJbmNsdXNpb25Gb3IhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXkhOiBFbnVtVHJhbnNsYXRlS2V5O1xyXG4gIEBJbnB1dCgpIHN0YXR1c09wdGlvbnNBcGkhOiBhcGk7XHJcbiAgQElucHV0KCkgc2hvd09yZ1BhcmFtITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzaG93T3JnUGFyYW1Ecm9wZG93biE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaGlkZURhdGVQZXJpb2RDb21wYXJpc29uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlU3RhdHVzSW5jbHVzaW9uITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlR2VuZXJhbFNlYXJjaCE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc3RhdHVzT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElDb3JlQ2hlY2tsaXN0T3B0aW9uW10+KFtdKTtcclxuICBAT3V0cHV0KCkgb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPElDb3JlQ29tbW9uUGFyYW1LaXRFdmVudEVtaXR0ZXJEYXRhPigpO1xyXG5cclxuICBvcGVuITogYm9vbGVhbjtcclxuICB0b3AhOiBudW1iZXI7XHJcbiAgcmlnaHQhOiBudW1iZXI7XHJcblxyXG4gIGxpc3RlbmVyRm4hOiAoKSA9PiB2b2lkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvdmVycmlkZSBtbHM6IE11bHRpTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkb21TZXJ2aWNlOiBEb21TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJLaXRTZXJ2aWNlOiBGaWx0ZXJLaXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICkge1xyXG4gICAgc3VwZXIobWxzKTtcclxuICB9XHJcblxyXG4gIG9uUGFyYW1LaXRWYWx1ZUNoYW5nZShkYXRhOiBJQ29yZUNvbW1vblBhcmFtS2l0RXZlbnRFbWl0dGVyRGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgbGlzdGVuZXJTZXR1cCgpOiB2b2lkIHtcclxuICAgIGxldCBvZmZzZXQgPSB7XHJcbiAgICAgIGR4OiAwLFxyXG4gICAgICBkeTogMCxcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICBjb25zdCBoZWFkZXJFbGVtZW50ID0gdGhpcy5oZWFkZXIubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICBpZiAoIXRoaXMucmVsYXRpdmVNb2RlKSB7XHJcbiAgICAgIGNvbnRhaW5lckVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ3otaW5kZXgnLCB0aGlzLmRvbVNlcnZpY2UuZ2V0TWF4WkluZGV4KCkgKyAxKVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGhhbmRsZU1vdXNlRG93biA9IChlOiBhbnkpID0+IHtcclxuXHJcbiAgICAgIC8vIGltcG9ydGFudCFcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgY29uc3Qgc3RhcnRQb3MgPSB7XHJcbiAgICAgICAgeDogZS5jbGllbnRYIC0gb2Zmc2V0LmR4LFxyXG4gICAgICAgIHk6IGUuY2xpZW50WSAtIG9mZnNldC5keSxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGNvbnN0IGhhbmRsZU1vdXNlTW92ZSA9IChlOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgLy8gSG93IGZhciB0aGUgbW91c2UgaGFzIGJlZW4gbW92ZWRcclxuICAgICAgICBjb25zdCBkeCA9IGUuY2xpZW50WCAtIHN0YXJ0UG9zLng7XHJcbiAgICAgICAgY29uc3QgZHkgPSBlLmNsaWVudFkgLSBzdGFydFBvcy55O1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIHBvc2l0aW9uIG9mIGVsZW1lbnRcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG4gICAgICAgICAgY29udGFpbmVyRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7ZHh9cHgsICR7ZHl9cHgpYDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gUmVhc3NpZ24gdGhlIHBvc2l0aW9uIG9mIG1vdXNlXHJcbiAgICAgICAgb2Zmc2V0ID0geyBkeCwgZHkgfTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHZhciBoYW5kbGVNb3VzZVVwID0gKCkgPT4ge1xyXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhhbmRsZU1vdXNlTW92ZSk7XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU1vdXNlVXApO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgaGFuZGxlTW91c2VNb3ZlLCB7IHBhc3NpdmU6IHRydWUgfSk7XHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVNb3VzZVVwLCB7IHBhc3NpdmU6IHRydWUgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHZhciBoYW5kbGVUb3VjaFN0YXJ0ID0gKGU6IGFueSkgPT4ge1xyXG5cclxuICAgICAgY29uc3QgdG91Y2ggPSBlLnRvdWNoZXNbMF07XHJcblxyXG4gICAgICBjb25zdCBzdGFydFBvcyA9IHtcclxuICAgICAgICB4OiB0b3VjaC5jbGllbnRYIC0gb2Zmc2V0LmR4LFxyXG4gICAgICAgIHk6IHRvdWNoLmNsaWVudFkgLSBvZmZzZXQuZHksXHJcbiAgICAgIH07XHJcblxyXG4gICAgICB2YXIgaGFuZGxlVG91Y2hNb3ZlID0gKGU6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICBjb25zdCB0b3VjaCA9IGUudG91Y2hlc1swXTtcclxuICAgICAgICBjb25zdCBkeCA9IHRvdWNoLmNsaWVudFggLSBzdGFydFBvcy54O1xyXG4gICAgICAgIGNvbnN0IGR5ID0gdG91Y2guY2xpZW50WSAtIHN0YXJ0UG9zLnk7XHJcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgICAgIGNvbnRhaW5lckVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke2R4fXB4LCAke2R5fXB4KWA7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgb2Zmc2V0ID0geyBkeCwgZHkgfTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIGNvbnN0IGhhbmRsZVRvdWNoRW5kID0gKCkgPT4ge1xyXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGhhbmRsZVRvdWNoTW92ZSk7XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBoYW5kbGVUb3VjaEVuZCk7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBoYW5kbGVUb3VjaE1vdmUsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCBoYW5kbGVUb3VjaEVuZCwgeyBwYXNzaXZlOiB0cnVlIH0pO1xyXG5cclxuICAgIH07XHJcblxyXG4gICAgaWYgKCF0aGlzLnJlbGF0aXZlTW9kZSkge1xyXG4gICAgICBoZWFkZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZU1vdXNlRG93bik7XHJcbiAgICAgIGhlYWRlckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIGhhbmRsZVRvdWNoU3RhcnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubGlzdGVuZXJTZXR1cCgpO1xyXG5cclxuICAgICAgdGhpcy5maWx0ZXJLaXRTZXJ2aWNlLm9wZW4kLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICBpZiAoISF4KSB7XHJcbiAgICAgICAgICB0aGlzLmxpc3RlbmVyRm4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywgKGU6IEV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiAhISF0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0KSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyS2l0U2VydmljZS5vcGVuJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0aGlzLmxpc3RlbmVyRm4pIHRoaXMubGlzdGVuZXJGbigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpbHRlcktpdFNlcnZpY2Uub3BlbiQuc3Vic2NyaWJlKHggPT4gdGhpcy5vcGVuID0geClcclxuICAgICAgfSlcclxuXHJcbiAgICAgIHRoaXMudG9wID0gdGhpcy5sYXlvdXRTZXJ2aWNlLmhlYWRlckhlaWdodCArIHRoaXMubGF5b3V0U2VydmljZS5jb3JlUGFnZUhlYWRlckhlaWdodDtcclxuXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25DbG9zZShlOiBhbnkpIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuZmlsdGVyS2l0U2VydmljZS5vcGVuJC5uZXh0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zPy5mb3JFYWNoKHggPT4geD8udW5zdWJzY3JpYmUpO1xyXG4gICAgaWYgKHRoaXMubGlzdGVuZXJGbikgdGhpcy5saXN0ZW5lckZuKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2ICNjb250YWluZXIgY2xhc3M9XCJjb3JlLWZpbHRlci1raXQtY29udGFpbmVyXCIgW2NsYXNzLmQtbm9uZV09XCIhb3BlblwiIFtuZ1N0eWxlXT1cIntcclxuICAgIHRvcDogdG9wICsgJ3B4J1xyXG59XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC1yZWxhdGl2ZVwiPlxyXG4gICAgICAgIDxkaXYgI2hlYWRlciBjbGFzcz1cImhlYWRlclwiIFtuZ1N0eWxlXT1cIntcclxuICAgICAgICAgICAgY3Vyc29yOiByZWxhdGl2ZU1vZGUgPyAnYXV0bycgOiAnbW92ZSdcclxuICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7ICdVSS5DT01QT05FTlRfVElUTEVfRklMVEVSX0tJVCcgfCB0cmFuc2xhdGU6IGxhbmcgfCB1cHBlcmNhc2UgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIEBpZiAoIXJlbGF0aXZlTW9kZSkge1xyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmZWF0aGVyLXhcIiAoY2xpY2spPVwib25DbG9zZSgkZXZlbnQpXCI+PC9pPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGNvcmUtY29tbW9uLXBhcmFtLWtpdCBcclxuICAgICAgICAgICAgW2hpZGRlbk1vZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtkYXRlUGVyaW9kQ29tcGFyaXNvbkZvcl09XCJkYXRlUGVyaW9kQ29tcGFyaXNvbkZvclwiXHJcbiAgICAgICAgICAgIFtlbmFibGVUaW1lWm9uZUNvbnZlcnRlckZvckRhdGVUaW1lUGVyaW9kUGFyYW1ldGVyc109XCJlbmFibGVUaW1lWm9uZUNvbnZlcnRlckZvckRhdGVUaW1lUGVyaW9kUGFyYW1ldGVyc1wiXHJcbiAgICAgICAgICAgIFtkYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5XT1cImRhdGVQZXJpb2RDb21wYXJpc29uRm9yTGFiZWxLZXlcIlxyXG4gICAgICAgICAgICBbc3RhdHVzSW5jbHVzaW9uRm9yXT1cInN0YXR1c0luY2x1c2lvbkZvclwiIFxyXG4gICAgICAgICAgICBbc3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXldPVwic3RhdHVzSW5jbHVzaW9uRm9yTGFiZWxLZXlcIlxyXG4gICAgICAgICAgICBbc3RhdHVzT3B0aW9uc0FwaV09XCJzdGF0dXNPcHRpb25zQXBpXCIgXHJcbiAgICAgICAgICAgIFtzdGF0dXNPcHRpb25zJF09XCJzdGF0dXNPcHRpb25zJFwiIFxyXG4gICAgICAgICAgICBbc2hvd09yZ1BhcmFtXT1cInNob3dPcmdQYXJhbVwiXHJcbiAgICAgICAgICAgIFtzaG93T3JnUGFyYW1Ecm9wZG93bl09XCJzaG93T3JnUGFyYW1Ecm9wZG93blwiXHJcbiAgICAgICAgICAgIFtoaWRlR2VuZXJhbFNlYXJjaF09XCJoaWRlR2VuZXJhbFNlYXJjaFwiIFxyXG4gICAgICAgICAgICBbaGlkZURhdGVQZXJpb2RDb21wYXJpc29uXT1cImhpZGVEYXRlUGVyaW9kQ29tcGFyaXNvblwiXHJcbiAgICAgICAgICAgIFtoaWRlU3RhdHVzSW5jbHVzaW9uXT1cImhpZGVTdGF0dXNJbmNsdXNpb25cIlxyXG4gICAgICAgICAgICAob25DaGFuZ2UpPVwib25QYXJhbUtpdFZhbHVlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L2NvcmUtY29tbW9uLXBhcmFtLWtpdD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1maWx0ZXIta2l0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZpbHRlci1raXQvY29yZS1maWx0ZXIta2l0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1oaXN0YWZmLWFscGhhL3NyYy9saWIvYXBwL2xpYnJhcmllcy9jb3JlLWZpbHRlci1raXQvY29yZS1maWx0ZXIta2l0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSSxPQUFPLEVBQUUsMkJBQTJCLEVBQXVDLE1BQU0sZ0ZBQWdGLENBQUM7QUFFbEssT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFnQnpELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBMkJ2RCxZQUNrQixHQUF5QixFQUNqQyxVQUFzQixFQUN0QixnQkFBa0MsRUFDbEMsYUFBNEIsRUFDNUIsUUFBbUI7UUFFM0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBTkssUUFBRyxHQUFILEdBQUcsQ0FBc0I7UUFDakMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGtCQUFhLEdBQWIsYUFBYSxD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OzJGQUtKLHNCQUFzQjtrQkFabEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCwyQkFBMkI7d0JBQzNCLGFBQWE7d0JBQ2IsYUFBYTtxQkFDZDtxTUFNdUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNELE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFFVixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGtEQUFrRDtzQkFBMUQsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csK0JBQStCO3NCQUF2QyxLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVDb21tb25QYXJhbUtpdENvbXBvbmVudCwgSUNvcmVDb21tb25QYXJhbUtpdEV2ZW50RW1pdHRlckRhdGEgfSBmcm9tICcuLi9jb3JlLWNvbW1vbi1wYXJhbS1raXQvY29yZS1jb21tb24tcGFyYW0ta2l0L2NvcmUtY29tbW9uLXBhcmFtLWtpdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBhcGksIEVudW1UcmFuc2xhdGVLZXkgfSBmcm9tICdhbHBoYS1nbG9iYWwtY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSUNvcmVDaGVja2xpc3RPcHRpb24gfSBmcm9tICcuLi9jb3JlLWNoZWNrbGlzdC9jb3JlLWNoZWNrbGlzdC9jb3JlLWNoZWNrbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEb21TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZG9tLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vYXBwLXBpcGVzL3RyYW5zbGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UtY29tcG9uZW50L2Jhc2UvYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNdWx0aUxhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL211bHRpLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOZ1N0eWxlLCBVcHBlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRmlsdGVyS2l0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpbHRlci1raXQuc2VydmljZSc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sYXlvdXQuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2NvcmUtZmlsdGVyLWtpdCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ1N0eWxlLFxyXG4gICAgQ29yZUNvbW1vblBhcmFtS2l0Q29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIFVwcGVyQ2FzZVBpcGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLWZpbHRlci1raXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb3JlLWZpbHRlci1raXQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlRmlsdGVyS2l0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY8YW55PjtcclxuICBAVmlld0NoaWxkKCdoZWFkZXInKSBoZWFkZXIhOiBFbGVtZW50UmVmPGFueT47XHJcblxyXG4gIEBJbnB1dCgpIHJlbGF0aXZlTW9kZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZW5hYmxlVGltZVpvbmVDb252ZXJ0ZXJGb3JEYXRlVGltZVBlcmlvZFBhcmFtZXRlcnMhOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGRhdGVQZXJpb2RDb21wYXJpc29uRm9yITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRhdGVQZXJpb2RDb21wYXJpc29uRm9yTGFiZWxLZXkhOiBFbnVtVHJhbnNsYXRlS2V5O1xyXG4gIEBJbnB1dCgpIHN0YXR1c0luY2x1c2lvbkZvciE6IHN0cmluZztcclxuICBASW5wdXQoKSBzdGF0dXNJbmNsdXNpb25Gb3JMYWJlbEtleSE6IEVudW1UcmFuc2xhdGVLZXk7XHJcbiAgQElucHV0KCkgc3RhdHVzT3B0aW9uc0FwaSE6IGFwaTtcclxuICBASW5wdXQoKSBzaG93T3JnUGFyYW0hOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNob3dPcmdQYXJhbURyb3Bkb3duITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBoaWRlRGF0ZVBlcmlvZENvbXBhcmlzb24hOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpZGVTdGF0dXNJbmNsdXNpb24hOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGhpZGVHZW5lcmFsU2VhcmNoITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzdGF0dXNPcHRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUNvcmVDaGVja2xpc3RPcHRpb25bXT4oW10pO1xyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SUNvcmVDb21tb25QYXJhbUtpdEV2ZW50RW1pdHRlckRhdGE+KCk7XHJcblxyXG4gIG9wZW4hOiBib29sZWFuO1xyXG4gIHRvcCE6IG51bWJlcjtcclxuICByaWdodCE6IG51bWJlcjtcclxuXHJcbiAgbGlzdGVuZXJGbiE6ICgpID0+IHZvaWQ7XHJcbiAgZXZlbnRMaXN0ZW5lcnM6ICgoKSA9PiB2b2lkKVtdID0gW107ICAvLyBTdG9yZSBjbGVhbnVwIGZ1bmN0aW9ucyBmb3IgZXZlbnRzXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG92ZXJyaWRlIG1sczogTXVsdGlMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRvbVNlcnZpY2U6IERvbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZpbHRlcktpdFNlcnZpY2U6IEZpbHRlcktpdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihtbHMpO1xyXG4gIH1cclxuXHJcbiAgb25QYXJhbUtpdFZhbHVlQ2hhbmdlKGRhdGE6IElDb3JlQ29tbW9uUGFyYW1LaXRFdmVudEVtaXR0ZXJEYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBsaXN0ZW5lclNldHVwKCk6IHZvaWQge1xyXG4gICAgbGV0IG9mZnNldCA9IHsgZHg6IDAsIGR5OiAwLCB9O1xyXG5cclxuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50O1xyXG4gICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKCF0aGlzLnJlbGF0aXZlTW9kZSkge1xyXG4gICAgICBjb250YWluZXJFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCd6LWluZGV4JywgdGhpcy5kb21TZXJ2aWNlLmdldE1heFpJbmRleCgpICsgMSlcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSAoZTogYW55KSA9PiB7XHJcblxyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgICBjb25zdCBzdGFydFBvcyA9IHsgeDogZS5jbGllbnRYIC0gb2Zmc2V0LmR4LCB5OiBlLmNsaWVudFkgLSBvZmZzZXQuZHkgfTtcclxuXHJcbiAgICAgIGNvbnN0IGhhbmRsZU1vdXNlTW92ZSA9IChlOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgLy8gSG93IGZhciB0aGUgbW91c2UgaGFzIGJlZW4gbW92ZWRcclxuICAgICAgICBjb25zdCBkeCA9IGUuY2xpZW50WCAtIHN0YXJ0UG9zLng7XHJcbiAgICAgICAgY29uc3QgZHkgPSBlLmNsaWVudFkgLSBzdGFydFBvcy55O1xyXG5cclxuICAgICAgICAvLyBTZXQgdGhlIHBvc2l0aW9uIG9mIGVsZW1lbnRcclxuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xyXG4gICAgICAgICAgY29udGFpbmVyRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7ZHh9cHgsICR7ZHl9cHgpYDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gUmVhc3NpZ24gdGhlIHBvc2l0aW9uIG9mIG1vdXNlXHJcbiAgICAgICAgb2Zmc2V0ID0geyBkeCwgZHkgfTtcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHZhciBoYW5kbGVNb3VzZVVwID0gKCkgPT4ge1xyXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhhbmRsZU1vdXNlTW92ZSk7XHJcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU1vdXNlVXApO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgaWYgKCF0aGlzLnJlbGF0aXZlTW9kZSkge1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIGhhbmRsZU1vdXNlTW92ZSwgeyBwYXNzaXZlOiB0cnVlIH0pO1xyXG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCBoYW5kbGVNb3VzZVVwLCB7IHBhc3NpdmU6IHRydWUgfSk7XHJcblxyXG4gICAgICAgIC8vIFN0b3JlIHRoZSBjbGVhbnVwIGZ1bmN0aW9uc1xyXG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaCgoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBoYW5kbGVNb3VzZU1vdmUpKTtcclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2goKCkgPT4gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU1vdXNlVXApKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB2YXIgaGFuZGxlVG91Y2hTdGFydCA9IChlOiBhbnkpID0+IHtcclxuXHJcbiAgICAgIGNvbnN0IHRvdWNoID0gZS50b3VjaGVzWzBdO1xyXG5cclxuICAgICAgY29uc3Qgc3RhcnRQb3MgPSB7XHJcbiAgICAgICAgeDogdG91Y2guY2xpZW50WCAtIG9mZnNldC5keCxcclxuICAgICAgICB5OiB0b3VjaC5jbGllbnRZIC0gb2Zmc2V0LmR5LFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdmFyIGhhbmRsZVRvdWNoTW92ZSA9IChlOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgY29uc3QgdG91Y2ggPSBlLnRvdWNoZXNbMF07XHJcbiAgICAgICAgY29uc3QgZHggPSB0b3VjaC5jbGllbnRYIC0gc3RhcnRQb3MueDtcclxuICAgICAgICBjb25zdCBkeSA9IHRvdWNoLmNsaWVudFkgLSBzdGFydFBvcy55O1xyXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XHJcbiAgICAgICAgICBjb250YWluZXJFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoJHtkeH1weCwgJHtkeX1weClgO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG9mZnNldCA9IHsgZHgsIGR5IH07XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zdCBoYW5kbGVUb3VjaEVuZCA9ICgpID0+IHtcclxuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBoYW5kbGVUb3VjaE1vdmUpO1xyXG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgaGFuZGxlVG91Y2hFbmQpO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgaGFuZGxlVG91Y2hNb3ZlLCB7IHBhc3NpdmU6IHRydWUgfSk7XHJcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgaGFuZGxlVG91Y2hFbmQsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcclxuXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICghdGhpcy5yZWxhdGl2ZU1vZGUpIHtcclxuICAgICAgaGVhZGVyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCBoYW5kbGVNb3VzZURvd24pO1xyXG4gICAgICBoZWFkZXJFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCBoYW5kbGVUb3VjaFN0YXJ0KTtcclxuXHJcbiAgICAgIC8vIFN0b3JlIGNsZWFudXAgZnVuY3Rpb25zIGZvciB0aGUgYWRkZWQgZXZlbnQgbGlzdGVuZXJzXHJcbiAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaCgoKSA9PiBoZWFkZXJFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGhhbmRsZU1vdXNlRG93bikpO1xyXG4gICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2goKCkgPT4gaGVhZGVyRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgaGFuZGxlVG91Y2hTdGFydCkpO1xyXG5cclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubGlzdGVuZXJTZXR1cCgpO1xyXG5cclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXHJcbiAgICAgICAgdGhpcy5maWx0ZXJLaXRTZXJ2aWNlLm9wZW4kLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgIGlmICghIXgpIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0ZW5lckZuID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdjbGljaycsIChlOiBFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRhaW5lciAmJiAhISF0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0KSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJLaXRTZXJ2aWNlLm9wZW4kLm5leHQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5saXN0ZW5lckZuKSB0aGlzLmxpc3RlbmVyRm4oKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcblxyXG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICB0aGlzLmZpbHRlcktpdFNlcnZpY2Uub3BlbiQuc3Vic2NyaWJlKHggPT4gdGhpcy5vcGVuID0geClcclxuICAgICAgKVxyXG5cclxuICAgICAgdGhpcy50b3AgPSB0aGlzLmxheW91dFNlcnZpY2UuaGVhZGVySGVpZ2h0ICsgdGhpcy5sYXlvdXRTZXJ2aWNlLmNvcmVQYWdlSGVhZGVySGVpZ2h0O1xyXG5cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKGU6IGFueSkge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5maWx0ZXJLaXRTZXJ2aWNlLm9wZW4kLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcblxyXG4gICAgLy8gVW5zdWJzY3JpYmUgZnJvbSBhbGwgc3Vic2NyaXB0aW9uc1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zPy5mb3JFYWNoKHggPT4geD8udW5zdWJzY3JpYmUoKSk7XHJcblxyXG4gICAgLy8gQ2FsbCBsaXN0ZW5lckZuIHRvIHJlbW92ZSB0aGUgZXZlbnQgbGlzdGVuZXIgc2V0IGJ5IHJlbmRlcmVyLmxpc3RlblxyXG4gICAgaWYgKHRoaXMubGlzdGVuZXJGbikgdGhpcy5saXN0ZW5lckZuKCk7XHJcblxyXG4gICAgLy8gQ2xlYW4gdXAgdGhlIGN1c3RvbSBldmVudCBsaXN0ZW5lcnNcclxuICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuZm9yRWFjaChjbGVhbnVwID0+IGNsZWFudXAoKSk7XHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiAjY29udGFpbmVyIGNsYXNzPVwiY29yZS1maWx0ZXIta2l0LWNvbnRhaW5lclwiIFtjbGFzcy5kLW5vbmVdPVwiIW9wZW5cIiBbbmdTdHlsZV09XCJ7XHJcbiAgICB0b3A6IHRvcCArICdweCdcclxufVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtcmVsYXRpdmVcIj5cclxuICAgICAgICA8ZGl2ICNoZWFkZXIgY2xhc3M9XCJoZWFkZXJcIiBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgIGN1cnNvcjogcmVsYXRpdmVNb2RlID8gJ2F1dG8nIDogJ21vdmUnXHJcbiAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyAnVUkuQ09NUE9ORU5UX1RJVExFX0ZJTFRFUl9LSVQnIHwgdHJhbnNsYXRlOiBsYW5nIHwgdXBwZXJjYXNlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICBAaWYgKCFyZWxhdGl2ZU1vZGUpIHtcclxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmVhdGhlci14XCIgKGNsaWNrKT1cIm9uQ2xvc2UoJGV2ZW50KVwiPjwvaT5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxjb3JlLWNvbW1vbi1wYXJhbS1raXQgXHJcbiAgICAgICAgICAgIFtoaWRkZW5Nb2RlXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JdPVwiZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JcIlxyXG4gICAgICAgICAgICBbZW5hYmxlVGltZVpvbmVDb252ZXJ0ZXJGb3JEYXRlVGltZVBlcmlvZFBhcmFtZXRlcnNdPVwiZW5hYmxlVGltZVpvbmVDb252ZXJ0ZXJGb3JEYXRlVGltZVBlcmlvZFBhcmFtZXRlcnNcIlxyXG4gICAgICAgICAgICBbZGF0ZVBlcmlvZENvbXBhcmlzb25Gb3JMYWJlbEtleV09XCJkYXRlUGVyaW9kQ29tcGFyaXNvbkZvckxhYmVsS2V5XCJcclxuICAgICAgICAgICAgW3N0YXR1c0luY2x1c2lvbkZvcl09XCJzdGF0dXNJbmNsdXNpb25Gb3JcIiBcclxuICAgICAgICAgICAgW3N0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5XT1cInN0YXR1c0luY2x1c2lvbkZvckxhYmVsS2V5XCJcclxuICAgICAgICAgICAgW3N0YXR1c09wdGlvbnNBcGldPVwic3RhdHVzT3B0aW9uc0FwaVwiIFxyXG4gICAgICAgICAgICBbc3RhdHVzT3B0aW9ucyRdPVwic3RhdHVzT3B0aW9ucyRcIiBcclxuICAgICAgICAgICAgW3Nob3dPcmdQYXJhbV09XCJzaG93T3JnUGFyYW1cIlxyXG4gICAgICAgICAgICBbc2hvd09yZ1BhcmFtRHJvcGRvd25dPVwic2hvd09yZ1BhcmFtRHJvcGRvd25cIlxyXG4gICAgICAgICAgICBbaGlkZUdlbmVyYWxTZWFyY2hdPVwiaGlkZUdlbmVyYWxTZWFyY2hcIiBcclxuICAgICAgICAgICAgW2hpZGVEYXRlUGVyaW9kQ29tcGFyaXNvbl09XCJoaWRlRGF0ZVBlcmlvZENvbXBhcmlzb25cIlxyXG4gICAgICAgICAgICBbaGlkZVN0YXR1c0luY2x1c2lvbl09XCJoaWRlU3RhdHVzSW5jbHVzaW9uXCJcclxuICAgICAgICAgICAgKG9uQ2hhbmdlKT1cIm9uUGFyYW1LaXRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9jb3JlLWNvbW1vbi1wYXJhbS1raXQ+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -45,12 +45,12 @@ export const STICKER_COLOR_SCHEMA = [
45
45
  color: '#EF2B58'
46
46
  },
47
47
  {
48
- code: 'BACKEND_ONLY.SYS_OTHER_LIST.NAME.EMPOYEE_STATUS_OTHERS',
48
+ code: 'EMP_STATUS.BACKEND_ONLY.SYS_OTHER_LIST.NAME.EMPOYEE_STATUS_OTHERS',
49
49
  backgroundColor: '#FDEED7',
50
50
  color: 'inherit'
51
51
  },
52
52
  {
53
- code: 'BACKEND_ONLY.SYS_OTHER_LIST.NAME.EMPOYEE_STATUS_TERMINATED',
53
+ code: 'EMP_STATUS.BACKEND_ONLY.SYS_OTHER_LIST.NAME.EMPOYEE_STATUS_TERMINATED',
54
54
  backgroundColor: '#FFE9E9',
55
55
  color: 'inherit'
56
56
  },
@@ -145,4 +145,4 @@ export const STICKER_COLOR_SCHEMA = [
145
145
  color: '#'
146
146
  },
147
147
  ];
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1RJQ0tFUl9DT0xPUl9TQ0hFTUEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1zdGF0dXMtc3RpY2tlci9jb3JlLXN0YXR1cy1zdGlja2VyL1NUSUNLRVJfQ09MT1JfU0NIRU1BLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUEwQjtJQUN2RDtRQUNJLElBQUksRUFBRSxlQUFlO1FBQ3JCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLEtBQUssRUFBRSxTQUFTO0tBQ25CO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsY0FBYztRQUNwQixlQUFlLEVBQUUsU0FBUztRQUMxQixLQUFLLEVBQUUsU0FBUztLQUNuQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLFNBQVM7UUFDZixlQUFlLEVBQUUsU0FBUztRQUMxQixLQUFLLEVBQUUsU0FBUztLQUNuQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLHFEQUFxRDtRQUMzRCxlQUFlLEVBQUUsU0FBUztRQUMxQixLQUFLLEVBQUUsU0FBUztLQUNuQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLGVBQWU7UUFDckIsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFLFNBQVM7S0FDbkI7SUFDRDtRQUNJLElBQUksRUFBRSxzREFBc0Q7UUFDNUQsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFLFNBQVM7S0FDbkI7SUFDRDtRQUNJLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFLFNBQVM7S0FDbkI7SUFDRDtRQUNJLElBQUksRUFBRSxRQUFRO1FBQ2QsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFLFNBQVM7S0FDbkI7SUFDRDtRQUNJLElBQUksRUFBRSxVQUFVO1FBQ2hCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLEtBQUssRUFBRSxTQUFTO0tBQ25CO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsd0RBQXdEO1FBQzlELGVBQWUsRUFBRSxTQUFTO1FBQzFCLEtBQUssRUFBRSxTQUFTO0tBQ25CO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsNERBQTREO1FBQ2xFLGVBQWUsRUFBRSxTQUFTO1FBQzFCLEtBQUssRUFBRSxTQUFTO0tBQ25CO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLEtBQUssRUFBRSxTQUFTO0tBQ25CO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtJQUNEO1FBQ0ksSUFBSSxFQUFFLEdBQUc7UUFDVCxlQUFlLEVBQUUsR0FBRztRQUNwQixLQUFLLEVBQUUsR0FBRztLQUNiO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtJQUNEO1FBQ0ksSUFBSSxFQUFFLEdBQUc7UUFDVCxlQUFlLEVBQUUsR0FBRztRQUNwQixLQUFLLEVBQUUsR0FBRztLQUNiO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtJQUNEO1FBQ0ksSUFBSSxFQUFFLEdBQUc7UUFDVCxlQUFlLEVBQUUsR0FBRztRQUNwQixLQUFLLEVBQUUsR0FBRztLQUNiO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtJQUNEO1FBQ0ksSUFBSSxFQUFFLEdBQUc7UUFDVCxlQUFlLEVBQUUsR0FBRztRQUNwQixLQUFLLEVBQUUsR0FBRztLQUNiO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtJQUNEO1FBQ0ksSUFBSSxFQUFFLEdBQUc7UUFDVCxlQUFlLEVBQUUsR0FBRztRQUNwQixLQUFLLEVBQUUsR0FBRztLQUNiO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtDQUNKLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJU3RpY2tlckNvbG9yU2NoZW1hIH0gZnJvbSBcIi4vSVN0aWNrZXJDb2xvclNjaGVtYVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNUSUNLRVJfQ09MT1JfU0NIRU1BOiBJU3RpY2tlckNvbG9yU2NoZW1hW10gPSBbXHJcbiAgICB7XHJcbiAgICAgICAgY29kZTogJ0No4budIHBow6ogZHV54buHdCcsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRjdFNCcsXHJcbiAgICAgICAgY29sb3I6ICcjRkZDNTQyJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnxJDDoyBwaMOqIGR1eeG7h3QnLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNFOEZGRjYnLFxyXG4gICAgICAgIGNvbG9yOiAnIzNERDU5OCdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgY29kZTogJ8OBcCBk4bulbmcnLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNFMkYyRkYnLFxyXG4gICAgICAgIGNvbG9yOiAnIzA3QjdFRSdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgY29kZTogJ1VJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0NPTU1PTl9JU19BQ1RJVkVfVkFMVUVfVFJVRScsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0UyRjJGRicsXHJcbiAgICAgICAgY29sb3I6ICcjMDdCN0VFJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnTmfhu6tuZyDDoXAgZOG7pW5nJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZFQUVBJyxcclxuICAgICAgICBjb2xvcjogJyNFRjJCNTgnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICdVSV9FTlRJVFlfRklFTERfQ0FQVElPTl9DT01NT05fSVNfQUNUSVZFX1ZBTFVFX0ZBTFNFJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZFQUVBJyxcclxuICAgICAgICBjb2xvcjogJyNFRjJCNTgnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICdLaMO0bmcgcGjDqiBkdXnhu4d0JyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZFQUVBJyxcclxuICAgICAgICBjb2xvcjogJyNFRjJCNTgnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICdBQ1RJVkUnLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNFMkYyRkYnLFxyXG4gICAgICAgIGNvbG9yOiAnIzA3QjdFRSdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgY29kZTogJ0lOQUNUSVZFJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZFQUVBJyxcclxuICAgICAgICBjb2xvcjogJyNFRjJCNTgnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICdCQUNLRU5EX09OTFkuU1lTX09USEVSX0xJU1QuTkFNRS5FTVBPWUVFX1NUQVRVU19PVEhFUlMnLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNGREVFRDcnLFxyXG4gICAgICAgIGNvbG9yOiAnaW5oZXJpdCdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgY29kZTogJ0JBQ0tFTkRfT05MWS5TWVNfT1RIRVJfTElTVC5OQU1FLkVNUE9ZRUVfU1RBVFVTX1RFUk1JTkFURUQnLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNGRkU5RTknLFxyXG4gICAgICAgIGNvbG9yOiAnaW5oZXJpdCdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgY29kZTogJ05nxrDMgG5nIGHMgXAgZHXMo25nJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZFQUVBJyxcclxuICAgICAgICBjb2xvcjogJyNFRjJCNTgnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICcjJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjJyxcclxuICAgICAgICBjb2xvcjogJyMnXHJcbiAgICB9LFxyXG5dXHJcbiJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU1RJQ0tFUl9DT0xPUl9TQ0hFTUEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtaGlzdGFmZi1hbHBoYS9zcmMvbGliL2FwcC9saWJyYXJpZXMvY29yZS1zdGF0dXMtc3RpY2tlci9jb3JlLXN0YXR1cy1zdGlja2VyL1NUSUNLRVJfQ09MT1JfU0NIRU1BLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUEwQjtJQUN2RDtRQUNJLElBQUksRUFBRSxlQUFlO1FBQ3JCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLEtBQUssRUFBRSxTQUFTO0tBQ25CO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsY0FBYztRQUNwQixlQUFlLEVBQUUsU0FBUztRQUMxQixLQUFLLEVBQUUsU0FBUztLQUNuQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLFNBQVM7UUFDZixlQUFlLEVBQUUsU0FBUztRQUMxQixLQUFLLEVBQUUsU0FBUztLQUNuQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLHFEQUFxRDtRQUMzRCxlQUFlLEVBQUUsU0FBUztRQUMxQixLQUFLLEVBQUUsU0FBUztLQUNuQjtJQUNEO1FBQ0ksSUFBSSxFQUFFLGVBQWU7UUFDckIsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFLFNBQVM7S0FDbkI7SUFDRDtRQUNJLElBQUksRUFBRSxzREFBc0Q7UUFDNUQsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFLFNBQVM7S0FDbkI7SUFDRDtRQUNJLElBQUksRUFBRSxpQkFBaUI7UUFDdkIsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFLFNBQVM7S0FDbkI7SUFDRDtRQUNJLElBQUksRUFBRSxRQUFRO1FBQ2QsZUFBZSxFQUFFLFNBQVM7UUFDMUIsS0FBSyxFQUFFLFNBQVM7S0FDbkI7SUFDRDtRQUNJLElBQUksRUFBRSxVQUFVO1FBQ2hCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLEtBQUssRUFBRSxTQUFTO0tBQ25CO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsbUVBQW1FO1FBQ3pFLGVBQWUsRUFBRSxTQUFTO1FBQzFCLEtBQUssRUFBRSxTQUFTO0tBQ25CO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsdUVBQXVFO1FBQzdFLGVBQWUsRUFBRSxTQUFTO1FBQzFCLEtBQUssRUFBRSxTQUFTO0tBQ25CO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLGVBQWUsRUFBRSxTQUFTO1FBQzFCLEtBQUssRUFBRSxTQUFTO0tBQ25CO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtJQUNEO1FBQ0ksSUFBSSxFQUFFLEdBQUc7UUFDVCxlQUFlLEVBQUUsR0FBRztRQUNwQixLQUFLLEVBQUUsR0FBRztLQUNiO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtJQUNEO1FBQ0ksSUFBSSxFQUFFLEdBQUc7UUFDVCxlQUFlLEVBQUUsR0FBRztRQUNwQixLQUFLLEVBQUUsR0FBRztLQUNiO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtJQUNEO1FBQ0ksSUFBSSxFQUFFLEdBQUc7UUFDVCxlQUFlLEVBQUUsR0FBRztRQUNwQixLQUFLLEVBQUUsR0FBRztLQUNiO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtJQUNEO1FBQ0ksSUFBSSxFQUFFLEdBQUc7UUFDVCxlQUFlLEVBQUUsR0FBRztRQUNwQixLQUFLLEVBQUUsR0FBRztLQUNiO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtJQUNEO1FBQ0ksSUFBSSxFQUFFLEdBQUc7UUFDVCxlQUFlLEVBQUUsR0FBRztRQUNwQixLQUFLLEVBQUUsR0FBRztLQUNiO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsR0FBRztRQUNULGVBQWUsRUFBRSxHQUFHO1FBQ3BCLEtBQUssRUFBRSxHQUFHO0tBQ2I7SUFDRDtRQUNJLElBQUksRUFBRSxHQUFHO1FBQ1QsZUFBZSxFQUFFLEdBQUc7UUFDcEIsS0FBSyxFQUFFLEdBQUc7S0FDYjtDQUNKLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJU3RpY2tlckNvbG9yU2NoZW1hIH0gZnJvbSBcIi4vSVN0aWNrZXJDb2xvclNjaGVtYVwiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNUSUNLRVJfQ09MT1JfU0NIRU1BOiBJU3RpY2tlckNvbG9yU2NoZW1hW10gPSBbXHJcbiAgICB7XHJcbiAgICAgICAgY29kZTogJ0No4budIHBow6ogZHV54buHdCcsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRjdFNCcsXHJcbiAgICAgICAgY29sb3I6ICcjRkZDNTQyJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnxJDDoyBwaMOqIGR1eeG7h3QnLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNFOEZGRjYnLFxyXG4gICAgICAgIGNvbG9yOiAnIzNERDU5OCdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgY29kZTogJ8OBcCBk4bulbmcnLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNFMkYyRkYnLFxyXG4gICAgICAgIGNvbG9yOiAnIzA3QjdFRSdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgY29kZTogJ1VJX0VOVElUWV9GSUVMRF9DQVBUSU9OX0NPTU1PTl9JU19BQ1RJVkVfVkFMVUVfVFJVRScsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0UyRjJGRicsXHJcbiAgICAgICAgY29sb3I6ICcjMDdCN0VFJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnTmfhu6tuZyDDoXAgZOG7pW5nJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZFQUVBJyxcclxuICAgICAgICBjb2xvcjogJyNFRjJCNTgnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICdVSV9FTlRJVFlfRklFTERfQ0FQVElPTl9DT01NT05fSVNfQUNUSVZFX1ZBTFVFX0ZBTFNFJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZFQUVBJyxcclxuICAgICAgICBjb2xvcjogJyNFRjJCNTgnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICdLaMO0bmcgcGjDqiBkdXnhu4d0JyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZFQUVBJyxcclxuICAgICAgICBjb2xvcjogJyNFRjJCNTgnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICdBQ1RJVkUnLFxyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNFMkYyRkYnLFxyXG4gICAgICAgIGNvbG9yOiAnIzA3QjdFRSdcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgICAgY29kZTogJ0lOQUNUSVZFJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZFQUVBJyxcclxuICAgICAgICBjb2xvcjogJyNFRjJCNTgnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICdFTVBfU1RBVFVTLkJBQ0tFTkRfT05MWS5TWVNfT1RIRVJfTElTVC5OQU1FLkVNUE9ZRUVfU1RBVFVTX09USEVSUycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZERUVENycsXHJcbiAgICAgICAgY29sb3I6ICdpbmhlcml0J1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnRU1QX1NUQVRVUy5CQUNLRU5EX09OTFkuU1lTX09USEVSX0xJU1QuTkFNRS5FTVBPWUVFX1NUQVRVU19URVJNSU5BVEVEJyxcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjRkZFOUU5JyxcclxuICAgICAgICBjb2xvcjogJ2luaGVyaXQnXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICAgIGNvZGU6ICdOZ8awzIBuZyBhzIFwIGR1zKNuZycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0ZGRUFFQScsXHJcbiAgICAgICAgY29sb3I6ICcjRUYyQjU4J1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgICBjb2RlOiAnIycsXHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIycsXHJcbiAgICAgICAgY29sb3I6ICcjJ1xyXG4gICAgfSxcclxuXVxyXG4iXX0=
@@ -5746,6 +5746,7 @@ class CoreButtonVnsComponent {
5746
5746
  });
5747
5747
  }
5748
5748
  onButtonClick() {
5749
+ console.log("onButtonClick========================>");
5749
5750
  this.clickStream$.next(crypto.randomUUID());
5750
5751
  if (this.data.isHeader) {
5751
5752
  const actionCode = this.data.code;
@@ -5777,7 +5778,7 @@ class CoreButtonVnsComponent {
5777
5778
  }
5778
5779
  }
5779
5780
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonVnsComponent, deps: [{ token: MultiLanguageService }, { token: CoreButtonGroupService }, { token: AlertService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DomService }, { token: ActionService }], target: i0.ɵɵFactoryTarget.Component }); }
5780
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreButtonVnsComponent, isStandalone: true, selector: "core-button-vns", inputs: { height: "height", data: "data", instanceNumber: "instanceNumber", disabled: "disabled", showCaption: "showCaption" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else {\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-block;\" [innerHtml]=\"iconSvg | stringHtml\">\r\n </i>\r\n }\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }] }); }
5781
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreButtonVnsComponent, isStandalone: true, selector: "core-button-vns", inputs: { height: "height", data: "data", instanceNumber: "instanceNumber", disabled: "disabled", showCaption: "showCaption" }, outputs: { buttonClick: "buttonClick" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else {\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-block;\" [innerHtml]=\"iconSvg | stringHtml\">\r\n </i>\r\n }\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button type=\"button\" [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "directive", type: TooltipDirective, selector: "[appTooltip]", inputs: ["color", "backgroundColor", "appTooltip", "showAnyway", "position"] }, { kind: "pipe", type: StringHtmlPipe, name: "stringHtml" }] }); }
5781
5782
  }
5782
5783
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreButtonVnsComponent, decorators: [{
5783
5784
  type: Component,
@@ -5786,7 +5787,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImpor
5786
5787
  TranslatePipe,
5787
5788
  TooltipDirective,
5788
5789
  StringHtmlPipe,
5789
- ], template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else {\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-block;\" [innerHtml]=\"iconSvg | stringHtml\">\r\n </i>\r\n }\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"] }]
5790
+ ], template: "<div class=\"core-button-vns-container\" #container style=\"height: 30px;\" [class.alpha-header-button]=\"!!data.isHeader\"\r\n [class.alpha-non-header-btn]=\"!data.isHeader\" [appTooltip]=\"data.caption | translate: lang\"\r\n (click)=\"onButtonClick()\" [ngStyle]=\"{ \r\n width: !!data.isHeader ? (data.withDivider ? 2 * height + 'px' : height + 'px') : 'auto',\r\n }\">\r\n\r\n\r\n @if (!!data.isHeader) {\r\n\r\n <div class=\"action-wrapper\" [class.pointer]=\"!hidden\" [class.last-child]=\"isLastChildOfGroup\" [class.temporary-unavailable]=\"!!hidden\">\r\n\r\n @if (!iconSvg || !iconSvg?.length) {\r\n <i src=\"\" [class]=\"data.iconClass\" [class.temporary-unavailable]=\"!!hidden\"></i>\r\n } @else {\r\n <i [class.temporary-unavailable]=\"!!hidden\" style=\"display: inline-block;\" [innerHtml]=\"iconSvg | stringHtml\">\r\n </i>\r\n }\r\n \r\n @if (!!data.isDropdown) {\r\n <div #dropdown class=\"header-button-dropdown-wrapper\" [ngStyle]=\"{\r\n position: 'absolute',\r\n display: !!expandState ? 'block' : 'none',\r\n minWidth: '100px',\r\n zIndex: domService.getMaxZIndex() + 1\r\n }\">\r\n @for (item of data.dropdownOptions!; track item) {\r\n <div class=\"header-button-dropdown-line\" (click)=\"onChildClick(item, $event)\">\r\n <span [class]=\"item.childIconWrapperClass\">\r\n <i [class]=\"item.childIconClass\"></i>\r\n </span>\r\n <span [ngStyle]=\"{\r\n textOverflow: 'ellipsis'\r\n }\" [appTooltip]=\"item.childCaptionCode | translate: lang\">{{ item.childCaptionCode |\r\n translate: lang }}</span>\r\n </div>\r\n }\r\n </div>\r\n }\r\n \r\n @if (!!showCaption || !!data.showCaption) {\r\n <span [class.temporary-unavailable]=\"!!hidden\" class=\"button-caption\">{{ data.caption | translate: lang\r\n }}</span>\r\n }\r\n \r\n </div>\r\n \r\n @if (!!data.withDivider) {\r\n <div [ngStyle]=\"{ height: height + 'px', display: 'inline-block' }\" class=\"separator\"></div>\r\n }\r\n\r\n\r\n } @else {\r\n\r\n\r\n <button type=\"button\" [class.temporary-unavailable]=\"!!hidden\" [class.last-child]=\"isLastChildOfGroup\" class=\"btn-for-form btn btn-secondary\">{{ data.caption | translate: lang\r\n }}</button>\r\n\r\n }\r\n\r\n\r\n</div>", styles: [".core-button-vns-container{height:30px;display:flex;align-items:center;justify-content:center;min-width:30px}.core-button-vns-container .action-wrapper{height:30px!important;width:30px!important;display:flex;align-items:center;justify-content:center}.core-button-vns-container .action-wrapper:has(i:hover){background-color:#e7e7e7;border-radius:50%}.core-button-vns-container .btn-for-form{border:none;border-radius:0;background-color:transparent;color:#000;min-width:120px}.core-button-vns-container button.last-child{background-color:#000;color:#fff}.core-button-vns-container .action-wrapper.last-child{background-color:var(--color-basic-orange);color:#fff;border-radius:50%}.core-button-vns-container .action-wrapper.last-child:hover{background-color:var(--color-basic-orange);box-shadow:0 1rem 3rem #0000002e}.core-button-vns-container .temporary-unavailable{user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:not-allowed!important;opacity:.5}.core-button-vns-container .temporary-unavailable:hover{background-color:transparent!important}\n"] }]
5790
5791
  }], ctorParameters: () => [{ type: MultiLanguageService }, { type: CoreButtonGroupService }, { type: AlertService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DomService }, { type: ActionService }], propDecorators: { height: [{
5791
5792
  type: Input
5792
5793
  }], data: [{
@@ -9989,27 +9990,21 @@ class CoreFilterKitComponent extends BaseComponent {
9989
9990
  this.renderer = renderer;
9990
9991
  this.statusOptions$ = new BehaviorSubject([]);
9991
9992
  this.onChange = new EventEmitter();
9993
+ this.eventListeners = []; // Store cleanup functions for events
9992
9994
  }
9993
9995
  onParamKitValueChange(data) {
9994
9996
  this.onChange.emit(data);
9995
9997
  }
9996
9998
  listenerSetup() {
9997
- let offset = {
9998
- dx: 0,
9999
- dy: 0,
10000
- };
9999
+ let offset = { dx: 0, dy: 0, };
10001
10000
  const containerElement = this.container.nativeElement;
10002
10001
  const headerElement = this.header.nativeElement;
10003
10002
  if (!this.relativeMode) {
10004
10003
  containerElement.style.setProperty('z-index', this.domService.getMaxZIndex() + 1);
10005
10004
  }
10006
10005
  const handleMouseDown = (e) => {
10007
- // important!
10008
10006
  e.preventDefault();
10009
- const startPos = {
10010
- x: e.clientX - offset.dx,
10011
- y: e.clientY - offset.dy,
10012
- };
10007
+ const startPos = { x: e.clientX - offset.dx, y: e.clientY - offset.dy };
10013
10008
  const handleMouseMove = (e) => {
10014
10009
  // How far the mouse has been moved
10015
10010
  const dx = e.clientX - startPos.x;
@@ -10025,8 +10020,13 @@ class CoreFilterKitComponent extends BaseComponent {
10025
10020
  document.removeEventListener('mousemove', handleMouseMove);
10026
10021
  document.removeEventListener('mouseup', handleMouseUp);
10027
10022
  };
10028
- document.addEventListener('mousemove', handleMouseMove, { passive: true });
10029
- document.addEventListener('mouseup', handleMouseUp, { passive: true });
10023
+ if (!this.relativeMode) {
10024
+ document.addEventListener('mousemove', handleMouseMove, { passive: true });
10025
+ document.addEventListener('mouseup', handleMouseUp, { passive: true });
10026
+ // Store the cleanup functions
10027
+ this.eventListeners.push(() => document.removeEventListener('mousemove', handleMouseMove));
10028
+ this.eventListeners.push(() => document.removeEventListener('mouseup', handleMouseUp));
10029
+ }
10030
10030
  };
10031
10031
  var handleTouchStart = (e) => {
10032
10032
  const touch = e.touches[0];
@@ -10053,12 +10053,15 @@ class CoreFilterKitComponent extends BaseComponent {
10053
10053
  if (!this.relativeMode) {
10054
10054
  headerElement.addEventListener('mousedown', handleMouseDown);
10055
10055
  headerElement.addEventListener('touchstart', handleTouchStart);
10056
+ // Store cleanup functions for the added event listeners
10057
+ this.eventListeners.push(() => headerElement.removeEventListener('mousedown', handleMouseDown));
10058
+ this.eventListeners.push(() => headerElement.removeEventListener('touchstart', handleTouchStart));
10056
10059
  }
10057
10060
  }
10058
10061
  ngAfterViewInit() {
10059
10062
  setTimeout(() => {
10060
10063
  this.listenerSetup();
10061
- this.filterKitService.open$.pipe(debounceTime(200)).subscribe(x => {
10064
+ this.subscriptions.push(this.filterKitService.open$.pipe(debounceTime(200)).subscribe(x => {
10062
10065
  if (!!x) {
10063
10066
  this.listenerFn = this.renderer.listen('window', 'click', (e) => {
10064
10067
  if (this.container && !!!this.container.nativeElement.contains(e.target)) {
@@ -10070,8 +10073,8 @@ class CoreFilterKitComponent extends BaseComponent {
10070
10073
  if (this.listenerFn)
10071
10074
  this.listenerFn();
10072
10075
  }
10073
- this.filterKitService.open$.subscribe(x => this.open = x);
10074
- });
10076
+ }));
10077
+ this.subscriptions.push(this.filterKitService.open$.subscribe(x => this.open = x));
10075
10078
  this.top = this.layoutService.headerHeight + this.layoutService.corePageHeaderHeight;
10076
10079
  });
10077
10080
  }
@@ -10080,9 +10083,13 @@ class CoreFilterKitComponent extends BaseComponent {
10080
10083
  this.filterKitService.open$.next(false);
10081
10084
  }
10082
10085
  ngOnDestroy() {
10083
- this.subscriptions?.forEach(x => x?.unsubscribe);
10086
+ // Unsubscribe from all subscriptions
10087
+ this.subscriptions?.forEach(x => x?.unsubscribe());
10088
+ // Call listenerFn to remove the event listener set by renderer.listen
10084
10089
  if (this.listenerFn)
10085
10090
  this.listenerFn();
10091
+ // Clean up the custom event listeners
10092
+ this.eventListeners.forEach(cleanup => cleanup());
10086
10093
  }
10087
10094
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CoreFilterKitComponent, deps: [{ token: MultiLanguageService }, { token: DomService }, { token: FilterKitService }, { token: LayoutService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
10088
10095
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.3", type: CoreFilterKitComponent, isStandalone: true, selector: "core-filter-kit", inputs: { relativeMode: "relativeMode", enableTimeZoneConverterForDateTimePeriodParameters: "enableTimeZoneConverterForDateTimePeriodParameters", datePeriodComparisonFor: "datePeriodComparisonFor", datePeriodComparisonForLabelKey: "datePeriodComparisonForLabelKey", statusInclusionFor: "statusInclusionFor", statusInclusionForLabelKey: "statusInclusionForLabelKey", statusOptionsApi: "statusOptionsApi", showOrgParam: "showOrgParam", showOrgParamDropdown: "showOrgParamDropdown", hideDatePeriodComparison: "hideDatePeriodComparison", hideStatusInclusion: "hideStatusInclusion", hideGeneralSearch: "hideGeneralSearch", statusOptions$: "statusOptions$" }, outputs: { onChange: "onChange" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div #container class=\"core-filter-kit-container\" [class.d-none]=\"!open\" [ngStyle]=\"{\r\n top: top + 'px'\r\n}\">\r\n <div class=\"p-relative\">\r\n <div #header class=\"header\" [ngStyle]=\"{\r\n cursor: relativeMode ? 'auto' : 'move'\r\n }\">\r\n <span>{{ 'UI.COMPONENT_TITLE_FILTER_KIT' | translate: lang | uppercase }}</span>\r\n @if (!relativeMode) {\r\n <i class=\"feather-x\" (click)=\"onClose($event)\"></i>\r\n }\r\n </div>\r\n <core-common-param-kit \r\n [hiddenMode]=\"true\"\r\n [datePeriodComparisonFor]=\"datePeriodComparisonFor\"\r\n [enableTimeZoneConverterForDateTimePeriodParameters]=\"enableTimeZoneConverterForDateTimePeriodParameters\"\r\n [datePeriodComparisonForLabelKey]=\"datePeriodComparisonForLabelKey\"\r\n [statusInclusionFor]=\"statusInclusionFor\" \r\n [statusInclusionForLabelKey]=\"statusInclusionForLabelKey\"\r\n [statusOptionsApi]=\"statusOptionsApi\" \r\n [statusOptions$]=\"statusOptions$\" \r\n [showOrgParam]=\"showOrgParam\"\r\n [showOrgParamDropdown]=\"showOrgParamDropdown\"\r\n [hideGeneralSearch]=\"hideGeneralSearch\" \r\n [hideDatePeriodComparison]=\"hideDatePeriodComparison\"\r\n [hideStatusInclusion]=\"hideStatusInclusion\"\r\n (onChange)=\"onParamKitValueChange($event)\"\r\n ></core-common-param-kit>\r\n </div>\r\n</div>", styles: [".core-filter-kit-container{background-color:#fff;width:420px;position:fixed;display:block;z-index:9;right:120px;box-shadow:.4rem 0 2rem #0000002e;border-radius:2px}.core-filter-kit-container .header{padding:15px;display:block;height:50px}.core-filter-kit-container .header i{color:gray;font-size:24px;float:right;cursor:pointer;transform:translate(6px,-6px)}\n"], dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CoreCommonParamKitComponent, selector: "core-common-param-kit", inputs: ["hiddenMode", "enableTimeZoneConverterForDateTimePeriodParameters", "datePeriodComparisonFor", "datePeriodComparisonForLabelKey", "statusInclusionFor", "statusInclusionForLabelKey", "statusOptionsApi", "showOrgParam", "showOrgParamDropdown", "hideDatePeriodComparison", "hideStatusInclusion", "hideGeneralSearch", "statusOptions$"], outputs: ["onChange"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }] }); }
@@ -12135,12 +12142,12 @@ const STICKER_COLOR_SCHEMA = [
12135
12142
  color: '#EF2B58'
12136
12143
  },
12137
12144
  {
12138
- code: 'BACKEND_ONLY.SYS_OTHER_LIST.NAME.EMPOYEE_STATUS_OTHERS',
12145
+ code: 'EMP_STATUS.BACKEND_ONLY.SYS_OTHER_LIST.NAME.EMPOYEE_STATUS_OTHERS',
12139
12146
  backgroundColor: '#FDEED7',
12140
12147
  color: 'inherit'
12141
12148
  },
12142
12149
  {
12143
- code: 'BACKEND_ONLY.SYS_OTHER_LIST.NAME.EMPOYEE_STATUS_TERMINATED',
12150
+ code: 'EMP_STATUS.BACKEND_ONLY.SYS_OTHER_LIST.NAME.EMPOYEE_STATUS_TERMINATED',
12144
12151
  backgroundColor: '#FFE9E9',
12145
12152
  color: 'inherit'
12146
12153
  },