igniteui-angular 16.1.2 → 16.1.3

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.
Files changed (66) hide show
  1. package/README.md +6 -5
  2. package/esm2022/lib/action-strip/action-strip.component.mjs +3 -3
  3. package/esm2022/lib/action-strip/grid-actions/grid-action-button.component.mjs +3 -3
  4. package/esm2022/lib/banner/banner.component.mjs +8 -8
  5. package/esm2022/lib/card/card.component.mjs +3 -3
  6. package/esm2022/lib/carousel/carousel.component.mjs +7 -7
  7. package/esm2022/lib/combo/combo-dropdown.component.mjs +3 -3
  8. package/esm2022/lib/combo/combo.common.mjs +5 -5
  9. package/esm2022/lib/combo/combo.component.mjs +3 -3
  10. package/esm2022/lib/combo/combo.directives.mjs +2 -2
  11. package/esm2022/lib/core/navigation/directives.mjs +3 -3
  12. package/esm2022/lib/date-common/calendar-container/calendar-container.component.mjs +3 -3
  13. package/esm2022/lib/date-picker/date-picker.component.mjs +7 -7
  14. package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +6 -6
  15. package/esm2022/lib/dialog/dialog.component.mjs +5 -5
  16. package/esm2022/lib/directives/button/button.directive.mjs +8 -8
  17. package/esm2022/lib/directives/ripple/ripple.directive.mjs +6 -6
  18. package/esm2022/lib/directives/tooltip/tooltip-target.directive.mjs +7 -9
  19. package/esm2022/lib/directives/tooltip/tooltip.directive.mjs +2 -2
  20. package/esm2022/lib/drop-down/drop-down.component.mjs +3 -3
  21. package/esm2022/lib/expansion-panel/expansion-panel.component.mjs +4 -4
  22. package/esm2022/lib/grids/column-actions/column-actions.component.mjs +3 -3
  23. package/esm2022/lib/grids/common/crud.service.mjs +2 -2
  24. package/esm2022/lib/grids/filtering/base/grid-filtering-row.component.mjs +3 -3
  25. package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +3 -3
  26. package/esm2022/lib/grids/filtering/excel-style/excel-style-date-expression.component.mjs +3 -3
  27. package/esm2022/lib/grids/filtering/excel-style/excel-style-default-expression.component.mjs +3 -3
  28. package/esm2022/lib/grids/filtering/excel-style/excel-style-header.component.mjs +3 -3
  29. package/esm2022/lib/grids/filtering/excel-style/excel-style-moving.component.mjs +3 -3
  30. package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +3 -3
  31. package/esm2022/lib/grids/filtering/excel-style/excel-style-sorting.component.mjs +3 -3
  32. package/esm2022/lib/grids/grid/grid.component.mjs +3 -3
  33. package/esm2022/lib/grids/grid-base.directive.mjs +4 -4
  34. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +3 -3
  35. package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +3 -3
  36. package/esm2022/lib/query-builder/query-builder.component.mjs +3 -3
  37. package/esm2022/lib/simple-combo/simple-combo.component.mjs +3 -3
  38. package/esm2022/lib/snackbar/snackbar.component.mjs +4 -4
  39. package/esm2022/lib/tabs/tabs/tabs.component.mjs +3 -3
  40. package/esm2022/lib/time-picker/time-picker.component.mjs +6 -5
  41. package/esm2022/lib/toast/toast.component.mjs +2 -2
  42. package/esm2022/lib/tree/tree-node/tree-node.component.mjs +4 -4
  43. package/fesm2022/igniteui-angular.mjs +117 -118
  44. package/fesm2022/igniteui-angular.mjs.map +1 -1
  45. package/lib/banner/banner.component.d.ts +5 -5
  46. package/lib/card/card.component.d.ts +2 -2
  47. package/lib/carousel/carousel.component.d.ts +6 -6
  48. package/lib/combo/combo.common.d.ts +4 -4
  49. package/lib/combo/combo.directives.d.ts +1 -1
  50. package/lib/core/navigation/directives.d.ts +2 -2
  51. package/lib/date-picker/date-picker.component.d.ts +4 -4
  52. package/lib/date-range-picker/date-range-picker.component.d.ts +3 -3
  53. package/lib/dialog/dialog.component.d.ts +4 -4
  54. package/lib/directives/button/button.directive.d.ts +7 -7
  55. package/lib/directives/ripple/ripple.directive.d.ts +6 -6
  56. package/lib/directives/tooltip/tooltip-target.directive.d.ts +6 -8
  57. package/lib/directives/tooltip/tooltip.directive.d.ts +1 -1
  58. package/lib/expansion-panel/expansion-panel.component.d.ts +3 -3
  59. package/lib/grids/common/crud.service.d.ts +1 -1
  60. package/lib/grids/grid-base.directive.d.ts +3 -3
  61. package/lib/snackbar/snackbar.component.d.ts +1 -1
  62. package/lib/time-picker/time-picker.component.d.ts +1 -1
  63. package/lib/toast/toast.component.d.ts +1 -1
  64. package/lib/tree/tree-node/tree-node.component.d.ts +3 -3
  65. package/migrations/common/UpdateChanges.js +1 -1
  66. package/package.json +1 -1
@@ -187,11 +187,11 @@ export class IgxExcelStyleCustomDialogComponent {
187
187
  });
188
188
  }
189
189
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxExcelStyleCustomDialogComponent, deps: [{ token: i1.IgxOverlayService }, { token: i0.ChangeDetectorRef }, { token: i2.PlatformUtil }], target: i0.ɵɵFactoryTarget.Component }); }
190
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxExcelStyleCustomDialogComponent, isStandalone: true, selector: "igx-excel-style-custom-dialog", inputs: { expressionsList: "expressionsList", column: "column", selectedOperator: "selectedOperator", filteringService: "filteringService", overlayComponentId: "overlayComponentId", displayDensity: "displayDensity" }, viewQueries: [{ propertyName: "toggle", first: true, predicate: ["toggle"], descendants: true, read: IgxToggleDirective, static: true }, { propertyName: "defaultExpressionTemplate", first: true, predicate: ["defaultExpressionTemplate"], descendants: true, read: TemplateRef }, { propertyName: "dateExpressionTemplate", first: true, predicate: ["dateExpressionTemplate"], descendants: true, read: TemplateRef }, { propertyName: "expressionsContainer", first: true, predicate: ["expressionsContainer"], descendants: true, static: true }, { propertyName: "expressionComponents", predicate: IgxExcelStyleDefaultExpressionComponent, descendants: true }, { propertyName: "expressionDateComponents", predicate: IgxExcelStyleDateExpressionComponent, descendants: true }], ngImport: i0, template: "<article #toggle igxToggle\n class=\"igx-excel-filter__secondary\"\n [ngClass]=\"{\n 'igx-excel-filter__secondary--cosy': grid.displayDensity === 'cosy',\n 'igx-excel-filter__secondary--compact': grid.displayDensity === 'compact'\n }\"\n (keydown)=\"onKeyDown($event)\"\n (opening)=\"onCustomDialogOpening()\"\n (opened)=\"onCustomDialogOpened()\">\n <header class=\"igx-excel-filter__secondary-header\">\n <h4 class=\"ig-typography__h6\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_header }}{{ column.header || column.field }}\n </h4>\n </header>\n\n <article #expressionsContainer class=\"igx-excel-filter__secondary-main\">\n <ng-container *ngIf=\"column.dataType === 'date' || column.dataType === 'dateTime' || column.dataType === 'time'\">\n <igx-excel-style-date-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [displayDensity]=\"displayDensity\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-date-expression>\n </ng-container>\n\n <ng-container *ngIf=\"column.dataType !== 'date' && column.dataType !== 'dateTime' && column.dataType !== 'time'\">\n <igx-excel-style-default-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [displayDensity]=\"displayDensity\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-default-expression>\n </ng-container>\n\n <button igxButton [displayDensity]=\"displayDensity\"\n class=\"igx-excel-filter__add-filter\"\n (click)=\"onAddButtonClick()\">\n <igx-icon>add</igx-icon>\n <span>{{ grid.resourceStrings.igx_grid_excel_custom_dialog_add }}</span>\n </button>\n </article>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button\n igxButton=\"flat\"\n [displayDensity]=\"displayDensity\"\n (click)=\"onClearButtonClick()\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button\n igxButton=\"flat\"\n [displayDensity]=\"displayDensity\"\n (click)=\"closeDialog()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button\n igxButton=\"raised\"\n [displayDensity]=\"displayDensity\"\n (click)=\"onApplyButtonClick()\"\n (keydown)=\"onApplyButtonKeyDown($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n</article>\n", dependencies: [{ kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxExcelStyleDateExpressionComponent, selector: "igx-excel-style-date-expression" }, { kind: "component", type: IgxExcelStyleDefaultExpressionComponent, selector: "igx-excel-style-default-expression", inputs: ["column", "expressionUI", "expressionsList", "grid", "displayDensity"], outputs: ["expressionRemoved", "logicOperatorChanged"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }] }); }
190
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxExcelStyleCustomDialogComponent, isStandalone: true, selector: "igx-excel-style-custom-dialog", inputs: { expressionsList: "expressionsList", column: "column", selectedOperator: "selectedOperator", filteringService: "filteringService", overlayComponentId: "overlayComponentId", displayDensity: "displayDensity" }, viewQueries: [{ propertyName: "toggle", first: true, predicate: ["toggle"], descendants: true, read: IgxToggleDirective, static: true }, { propertyName: "defaultExpressionTemplate", first: true, predicate: ["defaultExpressionTemplate"], descendants: true, read: TemplateRef }, { propertyName: "dateExpressionTemplate", first: true, predicate: ["dateExpressionTemplate"], descendants: true, read: TemplateRef }, { propertyName: "expressionsContainer", first: true, predicate: ["expressionsContainer"], descendants: true, static: true }, { propertyName: "expressionComponents", predicate: IgxExcelStyleDefaultExpressionComponent, descendants: true }, { propertyName: "expressionDateComponents", predicate: IgxExcelStyleDateExpressionComponent, descendants: true }], ngImport: i0, template: "<article #toggle igxToggle\n class=\"igx-excel-filter__secondary\"\n [ngClass]=\"{\n 'igx-excel-filter__secondary--cosy': grid.displayDensity === 'cosy',\n 'igx-excel-filter__secondary--compact': grid.displayDensity === 'compact'\n }\"\n (keydown)=\"onKeyDown($event)\"\n (opening)=\"onCustomDialogOpening()\"\n (opened)=\"onCustomDialogOpened()\">\n <header class=\"igx-excel-filter__secondary-header\">\n <h4 class=\"ig-typography__h6\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_header }}{{ column.header || column.field }}\n </h4>\n </header>\n\n <article #expressionsContainer class=\"igx-excel-filter__secondary-main\">\n <ng-container *ngIf=\"column.dataType === 'date' || column.dataType === 'dateTime' || column.dataType === 'time'\">\n <igx-excel-style-date-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [displayDensity]=\"displayDensity\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-date-expression>\n </ng-container>\n\n <ng-container *ngIf=\"column.dataType !== 'date' && column.dataType !== 'dateTime' && column.dataType !== 'time'\">\n <igx-excel-style-default-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [displayDensity]=\"displayDensity\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-default-expression>\n </ng-container>\n\n <button type=\"button\" igxButton [displayDensity]=\"displayDensity\"\n class=\"igx-excel-filter__add-filter\"\n (click)=\"onAddButtonClick()\">\n <igx-icon>add</igx-icon>\n <span>{{ grid.resourceStrings.igx_grid_excel_custom_dialog_add }}</span>\n </button>\n </article>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button type=\"button\"\n igxButton=\"flat\"\n [displayDensity]=\"displayDensity\"\n (click)=\"onClearButtonClick()\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button type=\"button\"\n igxButton=\"flat\"\n [displayDensity]=\"displayDensity\"\n (click)=\"closeDialog()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button type=\"button\"\n igxButton=\"raised\"\n [displayDensity]=\"displayDensity\"\n (click)=\"onApplyButtonClick()\"\n (keydown)=\"onApplyButtonKeyDown($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n</article>\n", dependencies: [{ kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxExcelStyleDateExpressionComponent, selector: "igx-excel-style-date-expression" }, { kind: "component", type: IgxExcelStyleDefaultExpressionComponent, selector: "igx-excel-style-default-expression", inputs: ["column", "expressionUI", "expressionsList", "grid", "displayDensity"], outputs: ["expressionRemoved", "logicOperatorChanged"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }] }); }
191
191
  }
192
192
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxExcelStyleCustomDialogComponent, decorators: [{
193
193
  type: Component,
194
- args: [{ selector: 'igx-excel-style-custom-dialog', standalone: true, imports: [IgxToggleDirective, NgClass, NgIf, NgFor, IgxExcelStyleDateExpressionComponent, IgxExcelStyleDefaultExpressionComponent, IgxButtonDirective, IgxIconComponent], template: "<article #toggle igxToggle\n class=\"igx-excel-filter__secondary\"\n [ngClass]=\"{\n 'igx-excel-filter__secondary--cosy': grid.displayDensity === 'cosy',\n 'igx-excel-filter__secondary--compact': grid.displayDensity === 'compact'\n }\"\n (keydown)=\"onKeyDown($event)\"\n (opening)=\"onCustomDialogOpening()\"\n (opened)=\"onCustomDialogOpened()\">\n <header class=\"igx-excel-filter__secondary-header\">\n <h4 class=\"ig-typography__h6\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_header }}{{ column.header || column.field }}\n </h4>\n </header>\n\n <article #expressionsContainer class=\"igx-excel-filter__secondary-main\">\n <ng-container *ngIf=\"column.dataType === 'date' || column.dataType === 'dateTime' || column.dataType === 'time'\">\n <igx-excel-style-date-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [displayDensity]=\"displayDensity\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-date-expression>\n </ng-container>\n\n <ng-container *ngIf=\"column.dataType !== 'date' && column.dataType !== 'dateTime' && column.dataType !== 'time'\">\n <igx-excel-style-default-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [displayDensity]=\"displayDensity\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-default-expression>\n </ng-container>\n\n <button igxButton [displayDensity]=\"displayDensity\"\n class=\"igx-excel-filter__add-filter\"\n (click)=\"onAddButtonClick()\">\n <igx-icon>add</igx-icon>\n <span>{{ grid.resourceStrings.igx_grid_excel_custom_dialog_add }}</span>\n </button>\n </article>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button\n igxButton=\"flat\"\n [displayDensity]=\"displayDensity\"\n (click)=\"onClearButtonClick()\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button\n igxButton=\"flat\"\n [displayDensity]=\"displayDensity\"\n (click)=\"closeDialog()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button\n igxButton=\"raised\"\n [displayDensity]=\"displayDensity\"\n (click)=\"onApplyButtonClick()\"\n (keydown)=\"onApplyButtonKeyDown($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n</article>\n" }]
194
+ args: [{ selector: 'igx-excel-style-custom-dialog', standalone: true, imports: [IgxToggleDirective, NgClass, NgIf, NgFor, IgxExcelStyleDateExpressionComponent, IgxExcelStyleDefaultExpressionComponent, IgxButtonDirective, IgxIconComponent], template: "<article #toggle igxToggle\n class=\"igx-excel-filter__secondary\"\n [ngClass]=\"{\n 'igx-excel-filter__secondary--cosy': grid.displayDensity === 'cosy',\n 'igx-excel-filter__secondary--compact': grid.displayDensity === 'compact'\n }\"\n (keydown)=\"onKeyDown($event)\"\n (opening)=\"onCustomDialogOpening()\"\n (opened)=\"onCustomDialogOpened()\">\n <header class=\"igx-excel-filter__secondary-header\">\n <h4 class=\"ig-typography__h6\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_header }}{{ column.header || column.field }}\n </h4>\n </header>\n\n <article #expressionsContainer class=\"igx-excel-filter__secondary-main\">\n <ng-container *ngIf=\"column.dataType === 'date' || column.dataType === 'dateTime' || column.dataType === 'time'\">\n <igx-excel-style-date-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [displayDensity]=\"displayDensity\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-date-expression>\n </ng-container>\n\n <ng-container *ngIf=\"column.dataType !== 'date' && column.dataType !== 'dateTime' && column.dataType !== 'time'\">\n <igx-excel-style-default-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [displayDensity]=\"displayDensity\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-default-expression>\n </ng-container>\n\n <button type=\"button\" igxButton [displayDensity]=\"displayDensity\"\n class=\"igx-excel-filter__add-filter\"\n (click)=\"onAddButtonClick()\">\n <igx-icon>add</igx-icon>\n <span>{{ grid.resourceStrings.igx_grid_excel_custom_dialog_add }}</span>\n </button>\n </article>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button type=\"button\"\n igxButton=\"flat\"\n [displayDensity]=\"displayDensity\"\n (click)=\"onClearButtonClick()\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button type=\"button\"\n igxButton=\"flat\"\n [displayDensity]=\"displayDensity\"\n (click)=\"closeDialog()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button type=\"button\"\n igxButton=\"raised\"\n [displayDensity]=\"displayDensity\"\n (click)=\"onApplyButtonClick()\"\n (keydown)=\"onApplyButtonKeyDown($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n</article>\n" }]
195
195
  }], ctorParameters: function () { return [{ type: i1.IgxOverlayService }, { type: i0.ChangeDetectorRef }, { type: i2.PlatformUtil }]; }, propDecorators: { expressionsList: [{
196
196
  type: Input
197
197
  }], column: [{
@@ -223,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
223
223
  type: ViewChildren,
224
224
  args: [IgxExcelStyleDateExpressionComponent]
225
225
  }] } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3R5bGUtY3VzdG9tLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2V4Y2VsLXN0eWxlL2V4Y2VsLXN0eWxlLWN1c3RvbS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2ZpbHRlcmluZy9leGNlbC1zdHlsZS9leGNlbC1zdHlsZS1jdXN0b20tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFFVCxXQUFXLEVBQ1gsWUFBWSxFQUdmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQ0gseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUMzQix1QkFBdUIsRUFDMUIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQTZCLHVDQUF1QyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQXFDLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDaEksT0FBTyxFQUFFLG9CQUFvQixF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cHV0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgRWxlbWVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneEZpbHRlcmluZ1NlcnZpY2UgfSBmcm9tICcuLi9ncmlkLWZpbHRlcmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbHRlcmluZ0xvZ2ljIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmlkQ29sdW1uRGF0YVR5cGUgfSBmcm9tICcuLi8uLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS11dGlsJztcbmltcG9ydCB7XG4gICAgSWd4U3RyaW5nRmlsdGVyaW5nT3BlcmFuZCxcbiAgICBJZ3hCb29sZWFuRmlsdGVyaW5nT3BlcmFuZCxcbiAgICBJZ3hOdW1iZXJGaWx0ZXJpbmdPcGVyYW5kLFxuICAgIElneERhdGVGaWx0ZXJpbmdPcGVyYW5kLFxuICAgIElneERhdGVUaW1lRmlsdGVyaW5nT3BlcmFuZCxcbiAgICBJZ3hUaW1lRmlsdGVyaW5nT3BlcmFuZFxufSBmcm9tICcuLi8uLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWNvbmRpdGlvbic7XG5pbXBvcnQgeyBJZ3hUb2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL3RvZ2dsZS90b2dnbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElMb2dpY09wZXJhdG9yQ2hhbmdlZEFyZ3MsIElneEV4Y2VsU3R5bGVEZWZhdWx0RXhwcmVzc2lvbkNvbXBvbmVudCB9IGZyb20gJy4vZXhjZWwtc3R5bGUtZGVmYXVsdC1leHByZXNzaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hFeGNlbFN0eWxlRGF0ZUV4cHJlc3Npb25Db21wb25lbnQgfSBmcm9tICcuL2V4Y2VsLXN0eWxlLWRhdGUtZXhwcmVzc2lvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheURlbnNpdHkgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2RlbnNpdHknO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBFeHByZXNzaW9uVUkgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBDb2x1bW5UeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEhvcml6b250YWxBbGlnbm1lbnQsIE92ZXJsYXlTZXR0aW5ncywgUG9zaXRpb25TZXR0aW5ncywgVmVydGljYWxBbGlnbm1lbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vdmVybGF5L3V0aWxpdGllcyc7XG5pbXBvcnQgeyBBdXRvUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvcG9zaXRpb24vYXV0by1wb3NpdGlvbi1zdHJhdGVneSc7XG5pbXBvcnQgeyBBYnNvbHV0ZVNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3ZlcmxheS9zY3JvbGwvYWJzb2x1dGUtc2Nyb2xsLXN0cmF0ZWd5JztcbmltcG9ydCB7IElneE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3ZlcmxheS9vdmVybGF5JztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiwgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZXhjZWwtc3R5bGUtY3VzdG9tLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V4Y2VsLXN0eWxlLWN1c3RvbS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0lneFRvZ2dsZURpcmVjdGl2ZSwgTmdDbGFzcywgTmdJZiwgTmdGb3IsIElneEV4Y2VsU3R5bGVEYXRlRXhwcmVzc2lvbkNvbXBvbmVudCwgSWd4RXhjZWxTdHlsZURlZmF1bHRFeHByZXNzaW9uQ29tcG9uZW50LCBJZ3hCdXR0b25EaXJlY3RpdmUsIElneEljb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElneEV4Y2VsU3R5bGVDdXN0b21EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBleHByZXNzaW9uc0xpc3QgPSBuZXcgQXJyYXk8RXhwcmVzc2lvblVJPigpO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHVtbjogQ29sdW1uVHlwZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlbGVjdGVkT3BlcmF0b3I6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbHRlcmluZ1NlcnZpY2U6IElneEZpbHRlcmluZ1NlcnZpY2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvdmVybGF5Q29tcG9uZW50SWQ6IHN0cmluZztcblxuICAgIC8qXG4gICAgICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAxNi4xLnguIFBsZWFzZSB1c2UgdGhlIGAtLWlnLXNpemVgIENTUyBjdXN0b20gcHJvcGVydHkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzcGxheURlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuXG4gICAgQFZpZXdDaGlsZCgndG9nZ2xlJywgeyByZWFkOiBJZ3hUb2dnbGVEaXJlY3RpdmUsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyB0b2dnbGU6IElneFRvZ2dsZURpcmVjdGl2ZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRFeHByZXNzaW9uVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRFeHByZXNzaW9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKCdkYXRlRXhwcmVzc2lvblRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIHByb3RlY3RlZCBkYXRlRXhwcmVzc2lvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnZXhwcmVzc2lvbnNDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBleHByZXNzaW9uc0NvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGRyZW4oSWd4RXhjZWxTdHlsZURlZmF1bHRFeHByZXNzaW9uQ29tcG9uZW50KVxuICAgIHByaXZhdGUgZXhwcmVzc2lvbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxJZ3hFeGNlbFN0eWxlRGVmYXVsdEV4cHJlc3Npb25Db21wb25lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZHJlbihJZ3hFeGNlbFN0eWxlRGF0ZUV4cHJlc3Npb25Db21wb25lbnQpXG4gICAgcHJpdmF0ZSBleHByZXNzaW9uRGF0ZUNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxJZ3hFeGNlbFN0eWxlRGF0ZUV4cHJlc3Npb25Db21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSBfY3VzdG9tRGlhbG9nUG9zaXRpb25TZXR0aW5nczogUG9zaXRpb25TZXR0aW5ncyA9IHtcbiAgICAgICAgdmVydGljYWxEaXJlY3Rpb246IFZlcnRpY2FsQWxpZ25tZW50Lk1pZGRsZSxcbiAgICAgICAgaG9yaXpvbnRhbERpcmVjdGlvbjogSG9yaXpvbnRhbEFsaWdubWVudC5DZW50ZXIsXG4gICAgICAgIGhvcml6b250YWxTdGFydFBvaW50OiBIb3Jpem9udGFsQWxpZ25tZW50LkNlbnRlcixcbiAgICAgICAgdmVydGljYWxTdGFydFBvaW50OiBWZXJ0aWNhbEFsaWdubWVudC5NaWRkbGVcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBfY3VzdG9tRGlhbG9nT3ZlcmxheVNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3MgPSB7XG4gICAgICAgIGNsb3NlT25PdXRzaWRlQ2xpY2s6IHRydWUsXG4gICAgICAgIG1vZGFsOiBmYWxzZSxcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogbmV3IEF1dG9Qb3NpdGlvblN0cmF0ZWd5KHRoaXMuX2N1c3RvbURpYWxvZ1Bvc2l0aW9uU2V0dGluZ3MpLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogbmV3IEFic29sdXRlU2Nyb2xsU3RyYXRlZ3koKVxuICAgIH07XG5cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcmxheVNlcnZpY2U6IElneE92ZXJsYXlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm1VdGlsXG4gICAgKSB7IH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1c3RvbURpYWxvZ092ZXJsYXlTZXR0aW5ncy5vdXRsZXQgPSB0aGlzLmdyaWQub3V0bGV0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5kYXRhVHlwZSA9PT0gR3JpZENvbHVtbkRhdGFUeXBlLkRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGVFeHByZXNzaW9uVGVtcGxhdGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0RXhwcmVzc2lvblRlbXBsYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZ3JpZCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmdyaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ3VzdG9tRGlhbG9nT3BlbmluZygpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcGVyYXRvcikge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJbml0aWFsRXhwcmVzc2lvblVJRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ3VzdG9tRGlhbG9nT3BlbmVkKCkge1xuICAgICAgICBpZiAodGhpcy5leHByZXNzaW9uQ29tcG9uZW50cy5maXJzdCkge1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uQ29tcG9uZW50cy5maXJzdC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW4oZXNmKSB7XG4gICAgICAgIHRoaXMuX2N1c3RvbURpYWxvZ092ZXJsYXlTZXR0aW5ncy50YXJnZXQgPVxuICAgICAgICAgICAgdGhpcy5vdmVybGF5Q29tcG9uZW50SWQgP1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5yb290R3JpZCA/IHRoaXMuZ3JpZC5yb290R3JpZC5uYXRpdmVFbGVtZW50IDogdGhpcy5ncmlkLm5hdGl2ZUVsZW1lbnQgOlxuICAgICAgICAgICAgICAgIGVzZjtcbiAgICAgICAgdGhpcy50b2dnbGUub3Blbih0aGlzLl9jdXN0b21EaWFsb2dPdmVybGF5U2V0dGluZ3MpO1xuICAgICAgICB0aGlzLm92ZXJsYXlDb21wb25lbnRJZCA9IHRoaXMudG9nZ2xlLm92ZXJsYXlJZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGVhckJ1dHRvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuY2xlYXJGaWx0ZXIodGhpcy5jb2x1bW4uZmllbGQpO1xuICAgICAgICB0aGlzLmNyZWF0ZUluaXRpYWxFeHByZXNzaW9uVUlFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2VEaWFsb2coKSB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlDb21wb25lbnRJZCkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5oaWRlKHRoaXMub3ZlcmxheUNvbXBvbmVudElkKTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheUNvbXBvbmVudElkID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25BcHBseUJ1dHRvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdCA9IHRoaXMuZXhwcmVzc2lvbnNMaXN0LmZpbHRlcihcbiAgICAgICAgICAgIGVsZW1lbnQgPT4gZWxlbWVudC5leHByZXNzaW9uLmNvbmRpdGlvbiAmJlxuICAgICAgICAgICAgICAgIChlbGVtZW50LmV4cHJlc3Npb24uc2VhcmNoVmFsIHx8IGVsZW1lbnQuZXhwcmVzc2lvbi5zZWFyY2hWYWwgPT09IDAgfHwgZWxlbWVudC5leHByZXNzaW9uLmNvbmRpdGlvbi5pc1VuYXJ5KSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0WzBdLmJlZm9yZU9wZXJhdG9yID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0W3RoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCAtIDFdLmFmdGVyT3BlcmF0b3IgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmZpbHRlckludGVybmFsKHRoaXMuY29sdW1uLmZpZWxkLCB0aGlzLmV4cHJlc3Npb25zTGlzdCk7XG4gICAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25BZGRCdXR0b25DbGljaygpIHtcbiAgICAgICAgY29uc3QgZXhwclVJID0gbmV3IEV4cHJlc3Npb25VSSgpO1xuICAgICAgICBleHByVUkuZXhwcmVzc2lvbiA9IHtcbiAgICAgICAgICAgIGNvbmRpdGlvbjogbnVsbCxcbiAgICAgICAgICAgIGZpZWxkTmFtZTogdGhpcy5jb2x1bW4uZmllbGQsXG4gICAgICAgICAgICBpZ25vcmVDYXNlOiB0aGlzLmNvbHVtbi5maWx0ZXJpbmdJZ25vcmVDYXNlLFxuICAgICAgICAgICAgc2VhcmNoVmFsOiBudWxsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoIC0gMV0uYWZ0ZXJPcGVyYXRvciA9IEZpbHRlcmluZ0xvZ2ljLkFuZDtcbiAgICAgICAgZXhwclVJLmJlZm9yZU9wZXJhdG9yID0gdGhpcy5leHByZXNzaW9uc0xpc3RbdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoIC0gMV0uYWZ0ZXJPcGVyYXRvcjtcblxuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdC5wdXNoKGV4cHJVSSk7XG5cbiAgICAgICAgdGhpcy5tYXJrQ2hpbGRyZW5Gb3JDaGVjaygpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRXhwcmVzc2lvblJlbW92ZWQoZXZlbnQ6IEV4cHJlc3Npb25VSSkge1xuICAgICAgICBjb25zdCBpbmRleFRvUmVtb3ZlID0gdGhpcy5leHByZXNzaW9uc0xpc3QuaW5kZXhPZihldmVudCk7XG5cbiAgICAgICAgaWYgKGluZGV4VG9SZW1vdmUgPT09IDAgJiYgdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbMV0uYmVmb3JlT3BlcmF0b3IgPSBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKGluZGV4VG9SZW1vdmUgPT09IHRoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0W2luZGV4VG9SZW1vdmUgLSAxXS5hZnRlck9wZXJhdG9yID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0W2luZGV4VG9SZW1vdmUgLSAxXS5hZnRlck9wZXJhdG9yID0gdGhpcy5leHByZXNzaW9uc0xpc3RbaW5kZXhUb1JlbW92ZSArIDFdLmJlZm9yZU9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbMF0uYmVmb3JlT3BlcmF0b3IgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoIC0gMV0uYWZ0ZXJPcGVyYXRvciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdC5zcGxpY2UoaW5kZXhUb1JlbW92ZSwgMSk7XG5cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMubWFya0NoaWxkcmVuRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Mb2dpY09wZXJhdG9yQ2hhbmdlZChldmVudDogSUxvZ2ljT3BlcmF0b3JDaGFuZ2VkQXJncykge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZXhwcmVzc2lvbnNMaXN0LmluZGV4T2YoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgZXZlbnQudGFyZ2V0LmFmdGVyT3BlcmF0b3IgPSBldmVudC5uZXdWYWx1ZTtcbiAgICAgICAgaWYgKGluZGV4ICsgMSA8IHRoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbaW5kZXggKyAxXS5iZWZvcmVPcGVyYXRvciA9IGV2ZW50Lm5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uS2V5RG93bihldmVudEFyZ3M6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnRBcmdzLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFwcGx5QnV0dG9uS2V5RG93bihldmVudEFyZ3M6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50QXJncy5rZXkgPT09IHRoaXMucGxhdGZvcm0uS0VZTUFQLlRBQiAmJiAhZXZlbnRBcmdzLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICBldmVudEFyZ3Muc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudEFyZ3MucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29uZGl0aW9uKGNvbmRpdGlvbk5hbWU6IHN0cmluZykge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY29sdW1uLmRhdGFUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEdyaWRDb2x1bW5EYXRhVHlwZS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHJldHVybiBJZ3hCb29sZWFuRmlsdGVyaW5nT3BlcmFuZC5pbnN0YW5jZSgpLmNvbmRpdGlvbihjb25kaXRpb25OYW1lKTtcbiAgICAgICAgICAgIGNhc2UgR3JpZENvbHVtbkRhdGFUeXBlLk51bWJlcjpcbiAgICAgICAgICAgIGNhc2UgR3JpZENvbHVtbkRhdGFUeXBlLkN1cnJlbmN5OlxuICAgICAgICAgICAgY2FzZSBHcmlkQ29sdW1uRGF0YVR5cGUuUGVyY2VudDpcbiAgICAgICAgICAgICAgICByZXR1cm4gSWd4TnVtYmVyRmlsdGVyaW5nT3BlcmFuZC5pbnN0YW5jZSgpLmNvbmRpdGlvbihjb25kaXRpb25OYW1lKTtcbiAgICAgICAgICAgIGNhc2UgR3JpZENvbHVtbkRhdGFUeXBlLkRhdGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIElneERhdGVGaWx0ZXJpbmdPcGVyYW5kLmluc3RhbmNlKCkuY29uZGl0aW9uKGNvbmRpdGlvbk5hbWUpO1xuICAgICAgICAgICAgY2FzZSBHcmlkQ29sdW1uRGF0YVR5cGUuVGltZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gSWd4VGltZUZpbHRlcmluZ09wZXJhbmQuaW5zdGFuY2UoKS5jb25kaXRpb24oY29uZGl0aW9uTmFtZSk7XG4gICAgICAgICAgICBjYXNlIEdyaWRDb2x1bW5EYXRhVHlwZS5EYXRlVGltZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gSWd4RGF0ZVRpbWVGaWx0ZXJpbmdPcGVyYW5kLmluc3RhbmNlKCkuY29uZGl0aW9uKGNvbmRpdGlvbk5hbWUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gSWd4U3RyaW5nRmlsdGVyaW5nT3BlcmFuZC5pbnN0YW5jZSgpLmNvbmRpdGlvbihjb25kaXRpb25OYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFya0NoaWxkcmVuRm9yQ2hlY2soKSB7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbkNvbXBvbmVudHMuZm9yRWFjaCh4ID0+IHguY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgICAgICAgdGhpcy5leHByZXNzaW9uRGF0ZUNvbXBvbmVudHMuZm9yRWFjaCh4ID0+IHguY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUluaXRpYWxFeHByZXNzaW9uVUlFbGVtZW50KCkge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdCA9IFtdO1xuICAgICAgICBjb25zdCBmaXJzdEV4cHJVSSA9IG5ldyBFeHByZXNzaW9uVUkoKTtcblxuICAgICAgICBmaXJzdEV4cHJVSS5leHByZXNzaW9uID0ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiB0aGlzLmNyZWF0ZUNvbmRpdGlvbih0aGlzLnNlbGVjdGVkT3BlcmF0b3IpLFxuICAgICAgICAgICAgZmllbGROYW1lOiB0aGlzLmNvbHVtbi5maWVsZCxcbiAgICAgICAgICAgIGlnbm9yZUNhc2U6IHRoaXMuY29sdW1uLmZpbHRlcmluZ0lnbm9yZUNhc2UsXG4gICAgICAgICAgICBzZWFyY2hWYWw6IG51bGxcbiAgICAgICAgfTtcbiAgICAgICAgZmlyc3RFeHByVUkuYWZ0ZXJPcGVyYXRvciA9IEZpbHRlcmluZ0xvZ2ljLkFuZDtcblxuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdC5wdXNoKGZpcnN0RXhwclVJKTtcblxuICAgICAgICBjb25zdCBzZWNvbmRFeHByVUkgPSBuZXcgRXhwcmVzc2lvblVJKCk7XG4gICAgICAgIHNlY29uZEV4cHJVSS5leHByZXNzaW9uID0ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiBudWxsLFxuICAgICAgICAgICAgZmllbGROYW1lOiB0aGlzLmNvbHVtbi5maWVsZCxcbiAgICAgICAgICAgIGlnbm9yZUNhc2U6IHRoaXMuY29sdW1uLmZpbHRlcmluZ0lnbm9yZUNhc2UsXG4gICAgICAgICAgICBzZWFyY2hWYWw6IG51bGxcbiAgICAgICAgfTtcblxuICAgICAgICBzZWNvbmRFeHByVUkuYmVmb3JlT3BlcmF0b3IgPSBGaWx0ZXJpbmdMb2dpYy5BbmQ7XG5cbiAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3QucHVzaChzZWNvbmRFeHByVUkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2Nyb2xsVG9Cb3R0b20oKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5leHByZXNzaW9uc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGFydGljbGUgI3RvZ2dsZSBpZ3hUb2dnbGVcbiAgICBjbGFzcz1cImlneC1leGNlbC1maWx0ZXJfX3NlY29uZGFyeVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnaWd4LWV4Y2VsLWZpbHRlcl9fc2Vjb25kYXJ5LS1jb3N5JzogZ3JpZC5kaXNwbGF5RGVuc2l0eSA9PT0gJ2Nvc3knLFxuICAgICAgICAnaWd4LWV4Y2VsLWZpbHRlcl9fc2Vjb25kYXJ5LS1jb21wYWN0JzogZ3JpZC5kaXNwbGF5RGVuc2l0eSA9PT0gJ2NvbXBhY3QnXG4gICAgfVwiXG4gICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgIChvcGVuaW5nKT1cIm9uQ3VzdG9tRGlhbG9nT3BlbmluZygpXCJcbiAgICAob3BlbmVkKT1cIm9uQ3VzdG9tRGlhbG9nT3BlbmVkKClcIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwiaWd4LWV4Y2VsLWZpbHRlcl9fc2Vjb25kYXJ5LWhlYWRlclwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJpZy10eXBvZ3JhcGh5X19oNlwiPlxuICAgICAgICAgICAge3sgZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZXhjZWxfY3VzdG9tX2RpYWxvZ19oZWFkZXIgfX17eyBjb2x1bW4uaGVhZGVyIHx8IGNvbHVtbi5maWVsZCB9fVxuICAgICAgICA8L2g0PlxuICAgIDwvaGVhZGVyPlxuXG4gICAgPGFydGljbGUgI2V4cHJlc3Npb25zQ29udGFpbmVyIGNsYXNzPVwiaWd4LWV4Y2VsLWZpbHRlcl9fc2Vjb25kYXJ5LW1haW5cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSA9PT0gJ2RhdGUnIHx8IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ2RhdGVUaW1lJyB8fCBjb2x1bW4uZGF0YVR5cGUgPT09ICd0aW1lJ1wiPlxuICAgICAgICAgICAgPGlneC1leGNlbC1zdHlsZS1kYXRlLWV4cHJlc3Npb24gKm5nRm9yPVwibGV0IGV4cHJlc3Npb24gb2YgZXhwcmVzc2lvbnNMaXN0O1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpZ3gtZXhjZWwtZmlsdGVyX19jb25kaXRpb25cIlxuICAgICAgICAgICAgICAgIFtleHByZXNzaW9uVUldPVwiZXhwcmVzc2lvblwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFtncmlkXT1cImdyaWRcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgW2V4cHJlc3Npb25zTGlzdF09XCJleHByZXNzaW9uc0xpc3RcIlxuICAgICAgICAgICAgICAgIChleHByZXNzaW9uUmVtb3ZlZCk9XCJvbkV4cHJlc3Npb25SZW1vdmVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChsb2dpY09wZXJhdG9yQ2hhbmdlZCk9XCJvbkxvZ2ljT3BlcmF0b3JDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvaWd4LWV4Y2VsLXN0eWxlLWRhdGUtZXhwcmVzc2lvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSAhPT0gJ2RhdGUnICYmIGNvbHVtbi5kYXRhVHlwZSAhPT0gJ2RhdGVUaW1lJyAmJiBjb2x1bW4uZGF0YVR5cGUgIT09ICd0aW1lJ1wiPlxuICAgICAgICAgICAgPGlneC1leGNlbC1zdHlsZS1kZWZhdWx0LWV4cHJlc3Npb24gKm5nRm9yPVwibGV0IGV4cHJlc3Npb24gb2YgZXhwcmVzc2lvbnNMaXN0O1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpZ3gtZXhjZWwtZmlsdGVyX19jb25kaXRpb25cIlxuICAgICAgICAgICAgICAgIFtleHByZXNzaW9uVUldPVwiZXhwcmVzc2lvblwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFtncmlkXT1cImdyaWRcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgW2V4cHJlc3Npb25zTGlzdF09XCJleHByZXNzaW9uc0xpc3RcIlxuICAgICAgICAgICAgICAgIChleHByZXNzaW9uUmVtb3ZlZCk9XCJvbkV4cHJlc3Npb25SZW1vdmVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChsb2dpY09wZXJhdG9yQ2hhbmdlZCk9XCJvbkxvZ2ljT3BlcmF0b3JDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvaWd4LWV4Y2VsLXN0eWxlLWRlZmF1bHQtZXhwcmVzc2lvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGJ1dHRvbiBpZ3hCdXR0b24gW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCJcbiAgICAgICAgICAgIGNsYXNzPVwiaWd4LWV4Y2VsLWZpbHRlcl9fYWRkLWZpbHRlclwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25BZGRCdXR0b25DbGljaygpXCI+XG4gICAgICAgICAgICA8aWd4LWljb24+YWRkPC9pZ3gtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IGdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX2N1c3RvbV9kaWFsb2dfYWRkIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2FydGljbGU+XG5cbiAgICA8Zm9vdGVyIGNsYXNzPVwiaWd4LWV4Y2VsLWZpbHRlcl9fc2Vjb25kYXJ5LWZvb3RlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWV4Y2VsLWZpbHRlcl9fY2xlYXJcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZ3hCdXR0b249XCJmbGF0XCJcbiAgICAgICAgICAgICAgICBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsZWFyQnV0dG9uQ2xpY2soKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9leGNlbF9jdXN0b21fZGlhbG9nX2NsZWFyIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtZXhjZWwtZmlsdGVyX19jYW5jZWxcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZ3hCdXR0b249XCJmbGF0XCJcbiAgICAgICAgICAgICAgICBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX2NhbmNlbCB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWV4Y2VsLWZpbHRlcl9fYXBwbHlcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZ3hCdXR0b249XCJyYWlzZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQXBwbHlCdXR0b25DbGljaygpXCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbkFwcGx5QnV0dG9uS2V5RG93bigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAge3sgZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZXhjZWxfYXBwbHkgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Zvb3Rlcj5cbjwvYXJ0aWNsZT5cbiJdfQ==
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3R5bGUtY3VzdG9tLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2V4Y2VsLXN0eWxlL2V4Y2VsLXN0eWxlLWN1c3RvbS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2ZpbHRlcmluZy9leGNlbC1zdHlsZS9leGNlbC1zdHlsZS1jdXN0b20tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUVMLFNBQVMsRUFFVCxXQUFXLEVBQ1gsWUFBWSxFQUdmLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQ0gseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQix5QkFBeUIsRUFDekIsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUMzQix1QkFBdUIsRUFDMUIsTUFBTSw4Q0FBOEMsQ0FBQztBQUN0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQTZCLHVDQUF1QyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDaEksT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQXFDLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDaEksT0FBTyxFQUFFLG9CQUFvQixF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cHV0LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBRdWVyeUxpc3QsXG4gICAgRWxlbWVudFJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneEZpbHRlcmluZ1NlcnZpY2UgfSBmcm9tICcuLi9ncmlkLWZpbHRlcmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbHRlcmluZ0xvZ2ljIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmlkQ29sdW1uRGF0YVR5cGUgfSBmcm9tICcuLi8uLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS11dGlsJztcbmltcG9ydCB7XG4gICAgSWd4U3RyaW5nRmlsdGVyaW5nT3BlcmFuZCxcbiAgICBJZ3hCb29sZWFuRmlsdGVyaW5nT3BlcmFuZCxcbiAgICBJZ3hOdW1iZXJGaWx0ZXJpbmdPcGVyYW5kLFxuICAgIElneERhdGVGaWx0ZXJpbmdPcGVyYW5kLFxuICAgIElneERhdGVUaW1lRmlsdGVyaW5nT3BlcmFuZCxcbiAgICBJZ3hUaW1lRmlsdGVyaW5nT3BlcmFuZFxufSBmcm9tICcuLi8uLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWNvbmRpdGlvbic7XG5pbXBvcnQgeyBJZ3hUb2dnbGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL3RvZ2dsZS90b2dnbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElMb2dpY09wZXJhdG9yQ2hhbmdlZEFyZ3MsIElneEV4Y2VsU3R5bGVEZWZhdWx0RXhwcmVzc2lvbkNvbXBvbmVudCB9IGZyb20gJy4vZXhjZWwtc3R5bGUtZGVmYXVsdC1leHByZXNzaW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hFeGNlbFN0eWxlRGF0ZUV4cHJlc3Npb25Db21wb25lbnQgfSBmcm9tICcuL2V4Y2VsLXN0eWxlLWRhdGUtZXhwcmVzc2lvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheURlbnNpdHkgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2RlbnNpdHknO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBFeHByZXNzaW9uVUkgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBDb2x1bW5UeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEhvcml6b250YWxBbGlnbm1lbnQsIE92ZXJsYXlTZXR0aW5ncywgUG9zaXRpb25TZXR0aW5ncywgVmVydGljYWxBbGlnbm1lbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vdmVybGF5L3V0aWxpdGllcyc7XG5pbXBvcnQgeyBBdXRvUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvcG9zaXRpb24vYXV0by1wb3NpdGlvbi1zdHJhdGVneSc7XG5pbXBvcnQgeyBBYnNvbHV0ZVNjcm9sbFN0cmF0ZWd5IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3ZlcmxheS9zY3JvbGwvYWJzb2x1dGUtc2Nyb2xsLXN0cmF0ZWd5JztcbmltcG9ydCB7IElneE92ZXJsYXlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvb3ZlcmxheS9vdmVybGF5JztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiwgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZXhjZWwtc3R5bGUtY3VzdG9tLWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V4Y2VsLXN0eWxlLWN1c3RvbS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0lneFRvZ2dsZURpcmVjdGl2ZSwgTmdDbGFzcywgTmdJZiwgTmdGb3IsIElneEV4Y2VsU3R5bGVEYXRlRXhwcmVzc2lvbkNvbXBvbmVudCwgSWd4RXhjZWxTdHlsZURlZmF1bHRFeHByZXNzaW9uQ29tcG9uZW50LCBJZ3hCdXR0b25EaXJlY3RpdmUsIElneEljb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElneEV4Y2VsU3R5bGVDdXN0b21EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBleHByZXNzaW9uc0xpc3QgPSBuZXcgQXJyYXk8RXhwcmVzc2lvblVJPigpO1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHVtbjogQ29sdW1uVHlwZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNlbGVjdGVkT3BlcmF0b3I6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbHRlcmluZ1NlcnZpY2U6IElneEZpbHRlcmluZ1NlcnZpY2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvdmVybGF5Q29tcG9uZW50SWQ6IHN0cmluZztcblxuICAgIC8qXG4gICAgICogQGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAxNi4xLnguIFBsZWFzZSB1c2UgdGhlIGAtLWlnLXNpemVgIENTUyBjdXN0b20gcHJvcGVydHkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzcGxheURlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuXG4gICAgQFZpZXdDaGlsZCgndG9nZ2xlJywgeyByZWFkOiBJZ3hUb2dnbGVEaXJlY3RpdmUsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyB0b2dnbGU6IElneFRvZ2dsZURpcmVjdGl2ZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRFeHByZXNzaW9uVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRFeHByZXNzaW9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKCdkYXRlRXhwcmVzc2lvblRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIHByb3RlY3RlZCBkYXRlRXhwcmVzc2lvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnZXhwcmVzc2lvbnNDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBleHByZXNzaW9uc0NvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGRyZW4oSWd4RXhjZWxTdHlsZURlZmF1bHRFeHByZXNzaW9uQ29tcG9uZW50KVxuICAgIHByaXZhdGUgZXhwcmVzc2lvbkNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxJZ3hFeGNlbFN0eWxlRGVmYXVsdEV4cHJlc3Npb25Db21wb25lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZHJlbihJZ3hFeGNlbFN0eWxlRGF0ZUV4cHJlc3Npb25Db21wb25lbnQpXG4gICAgcHJpdmF0ZSBleHByZXNzaW9uRGF0ZUNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxJZ3hFeGNlbFN0eWxlRGF0ZUV4cHJlc3Npb25Db21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSBfY3VzdG9tRGlhbG9nUG9zaXRpb25TZXR0aW5nczogUG9zaXRpb25TZXR0aW5ncyA9IHtcbiAgICAgICAgdmVydGljYWxEaXJlY3Rpb246IFZlcnRpY2FsQWxpZ25tZW50Lk1pZGRsZSxcbiAgICAgICAgaG9yaXpvbnRhbERpcmVjdGlvbjogSG9yaXpvbnRhbEFsaWdubWVudC5DZW50ZXIsXG4gICAgICAgIGhvcml6b250YWxTdGFydFBvaW50OiBIb3Jpem9udGFsQWxpZ25tZW50LkNlbnRlcixcbiAgICAgICAgdmVydGljYWxTdGFydFBvaW50OiBWZXJ0aWNhbEFsaWdubWVudC5NaWRkbGVcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBfY3VzdG9tRGlhbG9nT3ZlcmxheVNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3MgPSB7XG4gICAgICAgIGNsb3NlT25PdXRzaWRlQ2xpY2s6IHRydWUsXG4gICAgICAgIG1vZGFsOiBmYWxzZSxcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogbmV3IEF1dG9Qb3NpdGlvblN0cmF0ZWd5KHRoaXMuX2N1c3RvbURpYWxvZ1Bvc2l0aW9uU2V0dGluZ3MpLFxuICAgICAgICBzY3JvbGxTdHJhdGVneTogbmV3IEFic29sdXRlU2Nyb2xsU3RyYXRlZ3koKVxuICAgIH07XG5cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgb3ZlcmxheVNlcnZpY2U6IElneE92ZXJsYXlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm1VdGlsXG4gICAgKSB7IH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1c3RvbURpYWxvZ092ZXJsYXlTZXR0aW5ncy5vdXRsZXQgPSB0aGlzLmdyaWQub3V0bGV0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5kYXRhVHlwZSA9PT0gR3JpZENvbHVtbkRhdGFUeXBlLkRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRhdGVFeHByZXNzaW9uVGVtcGxhdGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5kZWZhdWx0RXhwcmVzc2lvblRlbXBsYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZ3JpZCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmdyaWQ7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ3VzdG9tRGlhbG9nT3BlbmluZygpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcGVyYXRvcikge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJbml0aWFsRXhwcmVzc2lvblVJRWxlbWVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ3VzdG9tRGlhbG9nT3BlbmVkKCkge1xuICAgICAgICBpZiAodGhpcy5leHByZXNzaW9uQ29tcG9uZW50cy5maXJzdCkge1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uQ29tcG9uZW50cy5maXJzdC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9wZW4oZXNmKSB7XG4gICAgICAgIHRoaXMuX2N1c3RvbURpYWxvZ092ZXJsYXlTZXR0aW5ncy50YXJnZXQgPVxuICAgICAgICAgICAgdGhpcy5vdmVybGF5Q29tcG9uZW50SWQgP1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5yb290R3JpZCA/IHRoaXMuZ3JpZC5yb290R3JpZC5uYXRpdmVFbGVtZW50IDogdGhpcy5ncmlkLm5hdGl2ZUVsZW1lbnQgOlxuICAgICAgICAgICAgICAgIGVzZjtcbiAgICAgICAgdGhpcy50b2dnbGUub3Blbih0aGlzLl9jdXN0b21EaWFsb2dPdmVybGF5U2V0dGluZ3MpO1xuICAgICAgICB0aGlzLm92ZXJsYXlDb21wb25lbnRJZCA9IHRoaXMudG9nZ2xlLm92ZXJsYXlJZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGVhckJ1dHRvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuY2xlYXJGaWx0ZXIodGhpcy5jb2x1bW4uZmllbGQpO1xuICAgICAgICB0aGlzLmNyZWF0ZUluaXRpYWxFeHByZXNzaW9uVUlFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2VEaWFsb2coKSB7XG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlDb21wb25lbnRJZCkge1xuICAgICAgICAgICAgdGhpcy5vdmVybGF5U2VydmljZS5oaWRlKHRoaXMub3ZlcmxheUNvbXBvbmVudElkKTtcbiAgICAgICAgICAgIHRoaXMub3ZlcmxheUNvbXBvbmVudElkID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudG9nZ2xlLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25BcHBseUJ1dHRvbkNsaWNrKCkge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdCA9IHRoaXMuZXhwcmVzc2lvbnNMaXN0LmZpbHRlcihcbiAgICAgICAgICAgIGVsZW1lbnQgPT4gZWxlbWVudC5leHByZXNzaW9uLmNvbmRpdGlvbiAmJlxuICAgICAgICAgICAgICAgIChlbGVtZW50LmV4cHJlc3Npb24uc2VhcmNoVmFsIHx8IGVsZW1lbnQuZXhwcmVzc2lvbi5zZWFyY2hWYWwgPT09IDAgfHwgZWxlbWVudC5leHByZXNzaW9uLmNvbmRpdGlvbi5pc1VuYXJ5KSk7XG5cbiAgICAgICAgaWYgKHRoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0WzBdLmJlZm9yZU9wZXJhdG9yID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0W3RoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCAtIDFdLmFmdGVyT3BlcmF0b3IgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmZpbHRlckludGVybmFsKHRoaXMuY29sdW1uLmZpZWxkLCB0aGlzLmV4cHJlc3Npb25zTGlzdCk7XG4gICAgICAgIHRoaXMuY2xvc2VEaWFsb2coKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25BZGRCdXR0b25DbGljaygpIHtcbiAgICAgICAgY29uc3QgZXhwclVJID0gbmV3IEV4cHJlc3Npb25VSSgpO1xuICAgICAgICBleHByVUkuZXhwcmVzc2lvbiA9IHtcbiAgICAgICAgICAgIGNvbmRpdGlvbjogbnVsbCxcbiAgICAgICAgICAgIGZpZWxkTmFtZTogdGhpcy5jb2x1bW4uZmllbGQsXG4gICAgICAgICAgICBpZ25vcmVDYXNlOiB0aGlzLmNvbHVtbi5maWx0ZXJpbmdJZ25vcmVDYXNlLFxuICAgICAgICAgICAgc2VhcmNoVmFsOiBudWxsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoIC0gMV0uYWZ0ZXJPcGVyYXRvciA9IEZpbHRlcmluZ0xvZ2ljLkFuZDtcbiAgICAgICAgZXhwclVJLmJlZm9yZU9wZXJhdG9yID0gdGhpcy5leHByZXNzaW9uc0xpc3RbdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoIC0gMV0uYWZ0ZXJPcGVyYXRvcjtcblxuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdC5wdXNoKGV4cHJVSSk7XG5cbiAgICAgICAgdGhpcy5tYXJrQ2hpbGRyZW5Gb3JDaGVjaygpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRXhwcmVzc2lvblJlbW92ZWQoZXZlbnQ6IEV4cHJlc3Npb25VSSkge1xuICAgICAgICBjb25zdCBpbmRleFRvUmVtb3ZlID0gdGhpcy5leHByZXNzaW9uc0xpc3QuaW5kZXhPZihldmVudCk7XG5cbiAgICAgICAgaWYgKGluZGV4VG9SZW1vdmUgPT09IDAgJiYgdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbMV0uYmVmb3JlT3BlcmF0b3IgPSBudWxsO1xuICAgICAgICB9IGVsc2UgaWYgKGluZGV4VG9SZW1vdmUgPT09IHRoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0W2luZGV4VG9SZW1vdmUgLSAxXS5hZnRlck9wZXJhdG9yID0gbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0W2luZGV4VG9SZW1vdmUgLSAxXS5hZnRlck9wZXJhdG9yID0gdGhpcy5leHByZXNzaW9uc0xpc3RbaW5kZXhUb1JlbW92ZSArIDFdLmJlZm9yZU9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbMF0uYmVmb3JlT3BlcmF0b3IgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoIC0gMV0uYWZ0ZXJPcGVyYXRvciA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdC5zcGxpY2UoaW5kZXhUb1JlbW92ZSwgMSk7XG5cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMubWFya0NoaWxkcmVuRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Mb2dpY09wZXJhdG9yQ2hhbmdlZChldmVudDogSUxvZ2ljT3BlcmF0b3JDaGFuZ2VkQXJncykge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuZXhwcmVzc2lvbnNMaXN0LmluZGV4T2YoZXZlbnQudGFyZ2V0KTtcbiAgICAgICAgZXZlbnQudGFyZ2V0LmFmdGVyT3BlcmF0b3IgPSBldmVudC5uZXdWYWx1ZTtcbiAgICAgICAgaWYgKGluZGV4ICsgMSA8IHRoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbaW5kZXggKyAxXS5iZWZvcmVPcGVyYXRvciA9IGV2ZW50Lm5ld1ZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uS2V5RG93bihldmVudEFyZ3M6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgZXZlbnRBcmdzLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFwcGx5QnV0dG9uS2V5RG93bihldmVudEFyZ3M6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50QXJncy5rZXkgPT09IHRoaXMucGxhdGZvcm0uS0VZTUFQLlRBQiAmJiAhZXZlbnRBcmdzLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICBldmVudEFyZ3Muc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBldmVudEFyZ3MucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29uZGl0aW9uKGNvbmRpdGlvbk5hbWU6IHN0cmluZykge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuY29sdW1uLmRhdGFUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEdyaWRDb2x1bW5EYXRhVHlwZS5Cb29sZWFuOlxuICAgICAgICAgICAgICAgIHJldHVybiBJZ3hCb29sZWFuRmlsdGVyaW5nT3BlcmFuZC5pbnN0YW5jZSgpLmNvbmRpdGlvbihjb25kaXRpb25OYW1lKTtcbiAgICAgICAgICAgIGNhc2UgR3JpZENvbHVtbkRhdGFUeXBlLk51bWJlcjpcbiAgICAgICAgICAgIGNhc2UgR3JpZENvbHVtbkRhdGFUeXBlLkN1cnJlbmN5OlxuICAgICAgICAgICAgY2FzZSBHcmlkQ29sdW1uRGF0YVR5cGUuUGVyY2VudDpcbiAgICAgICAgICAgICAgICByZXR1cm4gSWd4TnVtYmVyRmlsdGVyaW5nT3BlcmFuZC5pbnN0YW5jZSgpLmNvbmRpdGlvbihjb25kaXRpb25OYW1lKTtcbiAgICAgICAgICAgIGNhc2UgR3JpZENvbHVtbkRhdGFUeXBlLkRhdGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIElneERhdGVGaWx0ZXJpbmdPcGVyYW5kLmluc3RhbmNlKCkuY29uZGl0aW9uKGNvbmRpdGlvbk5hbWUpO1xuICAgICAgICAgICAgY2FzZSBHcmlkQ29sdW1uRGF0YVR5cGUuVGltZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gSWd4VGltZUZpbHRlcmluZ09wZXJhbmQuaW5zdGFuY2UoKS5jb25kaXRpb24oY29uZGl0aW9uTmFtZSk7XG4gICAgICAgICAgICBjYXNlIEdyaWRDb2x1bW5EYXRhVHlwZS5EYXRlVGltZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gSWd4RGF0ZVRpbWVGaWx0ZXJpbmdPcGVyYW5kLmluc3RhbmNlKCkuY29uZGl0aW9uKGNvbmRpdGlvbk5hbWUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gSWd4U3RyaW5nRmlsdGVyaW5nT3BlcmFuZC5pbnN0YW5jZSgpLmNvbmRpdGlvbihjb25kaXRpb25OYW1lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFya0NoaWxkcmVuRm9yQ2hlY2soKSB7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbkNvbXBvbmVudHMuZm9yRWFjaCh4ID0+IHguY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgICAgICAgdGhpcy5leHByZXNzaW9uRGF0ZUNvbXBvbmVudHMuZm9yRWFjaCh4ID0+IHguY2RyLm1hcmtGb3JDaGVjaygpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUluaXRpYWxFeHByZXNzaW9uVUlFbGVtZW50KCkge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdCA9IFtdO1xuICAgICAgICBjb25zdCBmaXJzdEV4cHJVSSA9IG5ldyBFeHByZXNzaW9uVUkoKTtcblxuICAgICAgICBmaXJzdEV4cHJVSS5leHByZXNzaW9uID0ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiB0aGlzLmNyZWF0ZUNvbmRpdGlvbih0aGlzLnNlbGVjdGVkT3BlcmF0b3IpLFxuICAgICAgICAgICAgZmllbGROYW1lOiB0aGlzLmNvbHVtbi5maWVsZCxcbiAgICAgICAgICAgIGlnbm9yZUNhc2U6IHRoaXMuY29sdW1uLmZpbHRlcmluZ0lnbm9yZUNhc2UsXG4gICAgICAgICAgICBzZWFyY2hWYWw6IG51bGxcbiAgICAgICAgfTtcbiAgICAgICAgZmlyc3RFeHByVUkuYWZ0ZXJPcGVyYXRvciA9IEZpbHRlcmluZ0xvZ2ljLkFuZDtcblxuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdC5wdXNoKGZpcnN0RXhwclVJKTtcblxuICAgICAgICBjb25zdCBzZWNvbmRFeHByVUkgPSBuZXcgRXhwcmVzc2lvblVJKCk7XG4gICAgICAgIHNlY29uZEV4cHJVSS5leHByZXNzaW9uID0ge1xuICAgICAgICAgICAgY29uZGl0aW9uOiBudWxsLFxuICAgICAgICAgICAgZmllbGROYW1lOiB0aGlzLmNvbHVtbi5maWVsZCxcbiAgICAgICAgICAgIGlnbm9yZUNhc2U6IHRoaXMuY29sdW1uLmZpbHRlcmluZ0lnbm9yZUNhc2UsXG4gICAgICAgICAgICBzZWFyY2hWYWw6IG51bGxcbiAgICAgICAgfTtcblxuICAgICAgICBzZWNvbmRFeHByVUkuYmVmb3JlT3BlcmF0b3IgPSBGaWx0ZXJpbmdMb2dpYy5BbmQ7XG5cbiAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3QucHVzaChzZWNvbmRFeHByVUkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2Nyb2xsVG9Cb3R0b20oKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5leHByZXNzaW9uc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPGFydGljbGUgI3RvZ2dsZSBpZ3hUb2dnbGVcbiAgICBjbGFzcz1cImlneC1leGNlbC1maWx0ZXJfX3NlY29uZGFyeVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAnaWd4LWV4Y2VsLWZpbHRlcl9fc2Vjb25kYXJ5LS1jb3N5JzogZ3JpZC5kaXNwbGF5RGVuc2l0eSA9PT0gJ2Nvc3knLFxuICAgICAgICAnaWd4LWV4Y2VsLWZpbHRlcl9fc2Vjb25kYXJ5LS1jb21wYWN0JzogZ3JpZC5kaXNwbGF5RGVuc2l0eSA9PT0gJ2NvbXBhY3QnXG4gICAgfVwiXG4gICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgIChvcGVuaW5nKT1cIm9uQ3VzdG9tRGlhbG9nT3BlbmluZygpXCJcbiAgICAob3BlbmVkKT1cIm9uQ3VzdG9tRGlhbG9nT3BlbmVkKClcIj5cbiAgICA8aGVhZGVyIGNsYXNzPVwiaWd4LWV4Y2VsLWZpbHRlcl9fc2Vjb25kYXJ5LWhlYWRlclwiPlxuICAgICAgICA8aDQgY2xhc3M9XCJpZy10eXBvZ3JhcGh5X19oNlwiPlxuICAgICAgICAgICAge3sgZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZXhjZWxfY3VzdG9tX2RpYWxvZ19oZWFkZXIgfX17eyBjb2x1bW4uaGVhZGVyIHx8IGNvbHVtbi5maWVsZCB9fVxuICAgICAgICA8L2g0PlxuICAgIDwvaGVhZGVyPlxuXG4gICAgPGFydGljbGUgI2V4cHJlc3Npb25zQ29udGFpbmVyIGNsYXNzPVwiaWd4LWV4Y2VsLWZpbHRlcl9fc2Vjb25kYXJ5LW1haW5cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSA9PT0gJ2RhdGUnIHx8IGNvbHVtbi5kYXRhVHlwZSA9PT0gJ2RhdGVUaW1lJyB8fCBjb2x1bW4uZGF0YVR5cGUgPT09ICd0aW1lJ1wiPlxuICAgICAgICAgICAgPGlneC1leGNlbC1zdHlsZS1kYXRlLWV4cHJlc3Npb24gKm5nRm9yPVwibGV0IGV4cHJlc3Npb24gb2YgZXhwcmVzc2lvbnNMaXN0O1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpZ3gtZXhjZWwtZmlsdGVyX19jb25kaXRpb25cIlxuICAgICAgICAgICAgICAgIFtleHByZXNzaW9uVUldPVwiZXhwcmVzc2lvblwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFtncmlkXT1cImdyaWRcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgW2V4cHJlc3Npb25zTGlzdF09XCJleHByZXNzaW9uc0xpc3RcIlxuICAgICAgICAgICAgICAgIChleHByZXNzaW9uUmVtb3ZlZCk9XCJvbkV4cHJlc3Npb25SZW1vdmVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChsb2dpY09wZXJhdG9yQ2hhbmdlZCk9XCJvbkxvZ2ljT3BlcmF0b3JDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvaWd4LWV4Y2VsLXN0eWxlLWRhdGUtZXhwcmVzc2lvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi5kYXRhVHlwZSAhPT0gJ2RhdGUnICYmIGNvbHVtbi5kYXRhVHlwZSAhPT0gJ2RhdGVUaW1lJyAmJiBjb2x1bW4uZGF0YVR5cGUgIT09ICd0aW1lJ1wiPlxuICAgICAgICAgICAgPGlneC1leGNlbC1zdHlsZS1kZWZhdWx0LWV4cHJlc3Npb24gKm5nRm9yPVwibGV0IGV4cHJlc3Npb24gb2YgZXhwcmVzc2lvbnNMaXN0O1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpZ3gtZXhjZWwtZmlsdGVyX19jb25kaXRpb25cIlxuICAgICAgICAgICAgICAgIFtleHByZXNzaW9uVUldPVwiZXhwcmVzc2lvblwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgIFtncmlkXT1cImdyaWRcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgW2V4cHJlc3Npb25zTGlzdF09XCJleHByZXNzaW9uc0xpc3RcIlxuICAgICAgICAgICAgICAgIChleHByZXNzaW9uUmVtb3ZlZCk9XCJvbkV4cHJlc3Npb25SZW1vdmVkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChsb2dpY09wZXJhdG9yQ2hhbmdlZCk9XCJvbkxvZ2ljT3BlcmF0b3JDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvaWd4LWV4Y2VsLXN0eWxlLWRlZmF1bHQtZXhwcmVzc2lvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgaWd4QnV0dG9uIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgICAgICBjbGFzcz1cImlneC1leGNlbC1maWx0ZXJfX2FkZC1maWx0ZXJcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRkQnV0dG9uQ2xpY2soKVwiPlxuICAgICAgICAgICAgPGlneC1pY29uPmFkZDwvaWd4LWljb24+XG4gICAgICAgICAgICA8c3Bhbj57eyBncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9leGNlbF9jdXN0b21fZGlhbG9nX2FkZCB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9hcnRpY2xlPlxuXG4gICAgPGZvb3RlciBjbGFzcz1cImlneC1leGNlbC1maWx0ZXJfX3NlY29uZGFyeS1mb290ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1leGNlbC1maWx0ZXJfX2NsZWFyXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGlneEJ1dHRvbj1cImZsYXRcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXJCdXR0b25DbGljaygpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX2N1c3RvbV9kaWFsb2dfY2xlYXIgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1leGNlbC1maWx0ZXJfX2NhbmNlbFwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBpZ3hCdXR0b249XCJmbGF0XCJcbiAgICAgICAgICAgICAgICBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZURpYWxvZygpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX2NhbmNlbCB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWV4Y2VsLWZpbHRlcl9fYXBwbHlcIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgaWd4QnV0dG9uPVwicmFpc2VkXCJcbiAgICAgICAgICAgICAgICBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFwcGx5QnV0dG9uQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25BcHBseUJ1dHRvbktleURvd24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIHt7IGdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX2FwcGx5IH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mb290ZXI+XG48L2FydGljbGU+XG4iXX0=
@@ -34,11 +34,11 @@ export class IgxExcelStyleDateExpressionComponent extends IgxExcelStyleDefaultEx
34
34
  return getLocaleFirstDayOfWeek(this.grid.locale);
35
35
  }
36
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxExcelStyleDateExpressionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxExcelStyleDateExpressionComponent, isStandalone: true, selector: "igx-excel-style-date-expression", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: IgxInputDirective }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<igx-select #dropdownConditions\n type=\"box\"\n [displayDensity]=\"displayDensity\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n <igx-icon *ngIf=\"expressionUI.expression.condition\" family=\"imx-icons\" [name]=\"getIconName()\"></igx-icon>\n <igx-icon *ngIf=\"!expressionUI.expression.condition\">filter_list</igx-icon>\n </igx-prefix>\n <igx-select-item *ngFor=\"let condition of conditions\" [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span>{{translateCondition(condition)}}</span>\n </igx-select-item>\n</igx-select>\n\n<igx-date-picker #picker *ngIf=\"column.dataType === 'date'\"\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputDatePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-date-picker>\n\n<igx-time-picker #picker *ngIf=\"column.dataType === 'time'\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-time-picker>\n\n<igx-input-group #dropDownTarget *ngIf=\"column.dataType === 'dateTime'\" #inputGroup type=\"box\" [displayDensity]=\"displayDensity\">\n <input #input igxInput tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [igxDateTimeEditor]=\"column.defaultDateTimeFormat\"\n [(ngModel)]=\"expressionUI.expression.searchVal\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"/>\n</igx-input-group>\n\n<button (click)=\"onRemoveButtonClick()\" igxButton=\"icon\" [displayDensity]=\"displayDensity\" *ngIf=\"!isSingle\" >\n <igx-icon>cancel</igx-icon>\n</button>\n\n<igx-buttongroup #logicOperatorButtonGroup\n *ngIf=\"!isLast\">\n <span igxButton [displayDensity]=\"displayDensity\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n\n <span igxButton [displayDensity]=\"displayDensity\"\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n</igx-buttongroup>\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n", dependencies: [{ kind: "component", type: IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "showWeekNumbers", "formatter", "headerOrientation", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "outlet", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxPickerToggleComponent, selector: "igx-picker-toggle", outputs: ["clicked"] }, { kind: "component", type: IgxPickerClearComponent, selector: "igx-picker-clear" }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "headerOrientation", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }] }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxExcelStyleDateExpressionComponent, isStandalone: true, selector: "igx-excel-style-date-expression", viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: IgxInputDirective }, { propertyName: "picker", first: true, predicate: ["picker"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<igx-select #dropdownConditions\n type=\"box\"\n [displayDensity]=\"displayDensity\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n <igx-icon *ngIf=\"expressionUI.expression.condition\" family=\"imx-icons\" [name]=\"getIconName()\"></igx-icon>\n <igx-icon *ngIf=\"!expressionUI.expression.condition\">filter_list</igx-icon>\n </igx-prefix>\n <igx-select-item *ngFor=\"let condition of conditions\" [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span>{{translateCondition(condition)}}</span>\n </igx-select-item>\n</igx-select>\n\n<igx-date-picker #picker *ngIf=\"column.dataType === 'date'\"\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputDatePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-date-picker>\n\n<igx-time-picker #picker *ngIf=\"column.dataType === 'time'\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-time-picker>\n\n<igx-input-group #dropDownTarget *ngIf=\"column.dataType === 'dateTime'\" #inputGroup type=\"box\" [displayDensity]=\"displayDensity\">\n <input #input igxInput tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [igxDateTimeEditor]=\"column.defaultDateTimeFormat\"\n [(ngModel)]=\"expressionUI.expression.searchVal\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"/>\n</igx-input-group>\n\n<button type=\"button\" (click)=\"onRemoveButtonClick()\" igxButton=\"icon\" [displayDensity]=\"displayDensity\" *ngIf=\"!isSingle\" >\n <igx-icon>cancel</igx-icon>\n</button>\n\n<igx-buttongroup #logicOperatorButtonGroup\n *ngIf=\"!isLast\">\n <span igxButton [displayDensity]=\"displayDensity\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n\n <span igxButton [displayDensity]=\"displayDensity\"\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n</igx-buttongroup>\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n", dependencies: [{ kind: "component", type: IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }, { kind: "component", type: IgxDatePickerComponent, selector: "igx-date-picker", inputs: ["hideOutsideDays", "displayMonthsCount", "showWeekNumbers", "formatter", "headerOrientation", "todayButtonLabel", "cancelButtonLabel", "spinLoop", "spinDelta", "outlet", "id", "formatViews", "disabledDates", "specialDates", "calendarFormat", "value", "minValue", "maxValue", "resourceStrings", "readOnly"], outputs: ["valueChange", "validationFailed"] }, { kind: "component", type: IgxPickerToggleComponent, selector: "igx-picker-toggle", outputs: ["clicked"] }, { kind: "component", type: IgxPickerClearComponent, selector: "igx-picker-clear" }, { kind: "component", type: IgxTimePickerComponent, selector: "igx-time-picker", inputs: ["id", "displayFormat", "inputFormat", "mode", "minValue", "maxValue", "spinLoop", "formatter", "headerOrientation", "readOnly", "value", "resourceStrings", "okButtonLabel", "cancelButtonLabel", "itemsDelta"], outputs: ["selected", "valueChange", "validationFailed"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxDateTimeEditorDirective, selector: "[igxDateTimeEditor]", inputs: ["locale", "minValue", "maxValue", "spinLoop", "displayFormat", "igxDateTimeEditor", "value", "spinDelta"], outputs: ["valueChange", "validationFailed"], exportAs: ["igxDateTimeEditor"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }] }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxExcelStyleDateExpressionComponent, decorators: [{
40
40
  type: Component,
41
- args: [{ selector: 'igx-excel-style-date-expression', standalone: true, imports: [IgxSelectComponent, IgxPrefixDirective, NgIf, IgxIconComponent, NgFor, IgxSelectItemComponent, IgxDatePickerComponent, IgxPickerToggleComponent, IgxPickerClearComponent, IgxTimePickerComponent, IgxInputGroupComponent, FormsModule, IgxInputDirective, IgxDateTimeEditorDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective], template: "<igx-select #dropdownConditions\n type=\"box\"\n [displayDensity]=\"displayDensity\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n <igx-icon *ngIf=\"expressionUI.expression.condition\" family=\"imx-icons\" [name]=\"getIconName()\"></igx-icon>\n <igx-icon *ngIf=\"!expressionUI.expression.condition\">filter_list</igx-icon>\n </igx-prefix>\n <igx-select-item *ngFor=\"let condition of conditions\" [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span>{{translateCondition(condition)}}</span>\n </igx-select-item>\n</igx-select>\n\n<igx-date-picker #picker *ngIf=\"column.dataType === 'date'\"\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputDatePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-date-picker>\n\n<igx-time-picker #picker *ngIf=\"column.dataType === 'time'\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-time-picker>\n\n<igx-input-group #dropDownTarget *ngIf=\"column.dataType === 'dateTime'\" #inputGroup type=\"box\" [displayDensity]=\"displayDensity\">\n <input #input igxInput tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [igxDateTimeEditor]=\"column.defaultDateTimeFormat\"\n [(ngModel)]=\"expressionUI.expression.searchVal\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"/>\n</igx-input-group>\n\n<button (click)=\"onRemoveButtonClick()\" igxButton=\"icon\" [displayDensity]=\"displayDensity\" *ngIf=\"!isSingle\" >\n <igx-icon>cancel</igx-icon>\n</button>\n\n<igx-buttongroup #logicOperatorButtonGroup\n *ngIf=\"!isLast\">\n <span igxButton [displayDensity]=\"displayDensity\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n\n <span igxButton [displayDensity]=\"displayDensity\"\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n</igx-buttongroup>\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n" }]
41
+ args: [{ selector: 'igx-excel-style-date-expression', standalone: true, imports: [IgxSelectComponent, IgxPrefixDirective, NgIf, IgxIconComponent, NgFor, IgxSelectItemComponent, IgxDatePickerComponent, IgxPickerToggleComponent, IgxPickerClearComponent, IgxTimePickerComponent, IgxInputGroupComponent, FormsModule, IgxInputDirective, IgxDateTimeEditorDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective], template: "<igx-select #dropdownConditions\n type=\"box\"\n [displayDensity]=\"displayDensity\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n <igx-icon *ngIf=\"expressionUI.expression.condition\" family=\"imx-icons\" [name]=\"getIconName()\"></igx-icon>\n <igx-icon *ngIf=\"!expressionUI.expression.condition\">filter_list</igx-icon>\n </igx-prefix>\n <igx-select-item *ngFor=\"let condition of conditions\" [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span>{{translateCondition(condition)}}</span>\n </igx-select-item>\n</igx-select>\n\n<igx-date-picker #picker *ngIf=\"column.dataType === 'date'\"\n [weekStart]=\"column.pipeArgs.weekStart ?? weekStart\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputDatePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-date-picker>\n\n<igx-time-picker #picker *ngIf=\"column.dataType === 'time'\"\n [inputFormat]=\"column.defaultTimeFormat\"\n [(value)]=\"expressionUI.expression.searchVal\"\n [locale]=\"grid.locale\"\n [outlet]=\"grid.outlet\"\n [displayDensity]=\"displayDensity\"\n (click)=\"picker.open()\"\n [readOnly]=\"true\"\n [placeholder]=\"inputTimePlaceholder\"\n [displayFormat]=\"column.pipeArgs.format\"\n [formatter]=\"column.formatter\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n type=\"box\">\n <!-- disable default icons -->\n <igx-picker-toggle></igx-picker-toggle>\n <igx-picker-clear></igx-picker-clear>\n</igx-time-picker>\n\n<igx-input-group #dropDownTarget *ngIf=\"column.dataType === 'dateTime'\" #inputGroup type=\"box\" [displayDensity]=\"displayDensity\">\n <input #input igxInput tabindex=\"0\"\n [placeholder]=\"inputDatePlaceholder\"\n [igxDateTimeEditor]=\"column.defaultDateTimeFormat\"\n [(ngModel)]=\"expressionUI.expression.searchVal\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"/>\n</igx-input-group>\n\n<button type=\"button\" (click)=\"onRemoveButtonClick()\" igxButton=\"icon\" [displayDensity]=\"displayDensity\" *ngIf=\"!isSingle\" >\n <igx-icon>cancel</igx-icon>\n</button>\n\n<igx-buttongroup #logicOperatorButtonGroup\n *ngIf=\"!isLast\">\n <span igxButton [displayDensity]=\"displayDensity\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n tabindex=\"0\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n\n <span igxButton [displayDensity]=\"displayDensity\"\n #orButton\n tabindex=\"0\"\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n</igx-buttongroup>\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n" }]
42
42
  }], propDecorators: { input: [{
43
43
  type: ViewChild,
44
44
  args: ['input', { read: IgxInputDirective, static: false }]
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
46
46
  type: ViewChild,
47
47
  args: ['picker']
48
48
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3R5bGUtZGF0ZS1leHByZXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtZGF0ZS1leHByZXNzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtZGF0ZS1leHByZXNzaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFFdEU7O0dBRUc7QUFPSCxNQUFNLE9BQU8sb0NBQXFDLFNBQVEsdUNBQXVDO0lBTzdGLElBQXVCLGtCQUFrQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7OEdBckJRLG9DQUFvQztrR0FBcEMsb0NBQW9DLHNLQUNqQixpQkFBaUIsdUlDNUJqRCx3MUhBMkZBLDRDRGxFYyxrQkFBa0IscUxBQUUsa0JBQWtCLDhFQUFFLElBQUksNkZBQUUsZ0JBQWdCLDJGQUFFLEtBQUssbUhBQUUsc0JBQXNCLDhFQUFFLHNCQUFzQixzYUFBRSx3QkFBd0Isb0ZBQUUsdUJBQXVCLDZEQUFFLHNCQUFzQixnVkFBRSxzQkFBc0IsbUlBQUUsV0FBVywrbUJBQUUsaUJBQWlCLDBIQUFFLDBCQUEwQixtUUFBRSxrQkFBa0Isd01BQUUsdUJBQXVCLDhNQUFFLHlCQUF5Qjs7MkZBRTdWLG9DQUFvQztrQkFOaEQsU0FBUzsrQkFDSSxpQ0FBaUMsY0FFL0IsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUseUJBQXlCLENBQUM7OEJBSS9WLEtBQUs7c0JBRFosU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJdEQsTUFBTTtzQkFEYixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4RXhjZWxTdHlsZURlZmF1bHRFeHByZXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9leGNlbC1zdHlsZS1kZWZhdWx0LWV4cHJlc3Npb24uY29tcG9uZW50JztcbmltcG9ydCB7IElneElucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9pbnB1dC9pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4VGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXRMb2NhbGVGaXJzdERheU9mV2VlaywgTmdJZiwgTmdGb3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy90b2dnbGUvdG9nZ2xlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2J1dHRvbkdyb3VwL2J1dHRvbkdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IElneERhdGVUaW1lRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9kYXRlLXRpbWUtZWRpdG9yL2RhdGUtdGltZS1lZGl0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWd4SW5wdXRHcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hQaWNrZXJUb2dnbGVDb21wb25lbnQsIElneFBpY2tlckNsZWFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS1jb21tb24vcGlja2VyLWljb25zLmNvbW1vbic7XG5pbXBvcnQgeyBJZ3hEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElneFNlbGVjdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zZWxlY3Qvc2VsZWN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElneFByZWZpeERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvcHJlZml4L3ByZWZpeC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4U2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZXhjZWwtc3R5bGUtZGF0ZS1leHByZXNzaW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXhjZWwtc3R5bGUtZGF0ZS1leHByZXNzaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtJZ3hTZWxlY3RDb21wb25lbnQsIElneFByZWZpeERpcmVjdGl2ZSwgTmdJZiwgSWd4SWNvbkNvbXBvbmVudCwgTmdGb3IsIElneFNlbGVjdEl0ZW1Db21wb25lbnQsIElneERhdGVQaWNrZXJDb21wb25lbnQsIElneFBpY2tlclRvZ2dsZUNvbXBvbmVudCwgSWd4UGlja2VyQ2xlYXJDb21wb25lbnQsIElneFRpbWVQaWNrZXJDb21wb25lbnQsIElneElucHV0R3JvdXBDb21wb25lbnQsIEZvcm1zTW9kdWxlLCBJZ3hJbnB1dERpcmVjdGl2ZSwgSWd4RGF0ZVRpbWVFZGl0b3JEaXJlY3RpdmUsIElneEJ1dHRvbkRpcmVjdGl2ZSwgSWd4QnV0dG9uR3JvdXBDb21wb25lbnQsIElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIElneEV4Y2VsU3R5bGVEYXRlRXhwcmVzc2lvbkNvbXBvbmVudCBleHRlbmRzIElneEV4Y2VsU3R5bGVEZWZhdWx0RXhwcmVzc2lvbkNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IElneElucHV0RGlyZWN0aXZlLCBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSBpbnB1dDogSWd4SW5wdXREaXJlY3RpdmU7XG5cbiAgICBAVmlld0NoaWxkKCdwaWNrZXInKVxuICAgIHByaXZhdGUgcGlja2VyOiBJZ3hEYXRlUGlja2VyQ29tcG9uZW50IHwgSWd4VGltZVBpY2tlckNvbXBvbmVudDtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBnZXQgaW5wdXRWYWx1ZXNFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXI/LmdldEVkaXRFbGVtZW50KCkgfHwgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0RGF0ZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucmVzb3VyY2VTdHJpbmdzWydpZ3hfZ3JpZF9maWx0ZXJfcm93X2RhdGVfcGxhY2Vob2xkZXInXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0VGltZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucmVzb3VyY2VTdHJpbmdzWydpZ3hfZ3JpZF9maWx0ZXJfcm93X3RpbWVfcGxhY2Vob2xkZXInXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHdlZWtTdGFydCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZ2V0TG9jYWxlRmlyc3REYXlPZldlZWsodGhpcy5ncmlkLmxvY2FsZSk7XG4gICAgfVxufVxuIiwiPGlneC1zZWxlY3QgI2Ryb3Bkb3duQ29uZGl0aW9uc1xuICAgICAgICB0eXBlPVwiYm94XCJcbiAgICAgICAgW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmRpdGlvbnNQbGFjZWhvbGRlclwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2luZyk9XCJvbkNvbmRpdGlvbnNDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbb3ZlcmxheVNldHRpbmdzXT1cImRyb3BEb3duT3ZlcmxheVNldHRpbmdzXCI+XG4gICAgPGlneC1wcmVmaXg+XG4gICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cImV4cHJlc3Npb25VSS5leHByZXNzaW9uLmNvbmRpdGlvblwiIGZhbWlseT1cImlteC1pY29uc1wiIFtuYW1lXT1cImdldEljb25OYW1lKClcIj48L2lneC1pY29uPlxuICAgICAgICA8aWd4LWljb24gKm5nSWY9XCIhZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uXCI+ZmlsdGVyX2xpc3Q8L2lneC1pY29uPlxuICAgIDwvaWd4LXByZWZpeD5cbiAgICA8aWd4LXNlbGVjdC1pdGVtICpuZ0Zvcj1cImxldCBjb25kaXRpb24gb2YgY29uZGl0aW9uc1wiIFt2YWx1ZV09XCJjb25kaXRpb25cIiBbdGV4dF09XCJnZXRDb25kaXRpb25GcmllbmRseU5hbWUoY29uZGl0aW9uKVwiIFtzZWxlY3RlZF09XCJpc0NvbmRpdGlvblNlbGVjdGVkKGNvbmRpdGlvbilcIj5cbiAgICAgICAgPGlneC1pY29uIGZhbWlseT1cImlteC1pY29uc1wiIFtuYW1lXT1cImdldENvbmRpdGlvbihjb25kaXRpb24pLmljb25OYW1lXCI+PC9pZ3gtaWNvbj5cbiAgICAgICAgPHNwYW4+e3t0cmFuc2xhdGVDb25kaXRpb24oY29uZGl0aW9uKX19PC9zcGFuPlxuICAgIDwvaWd4LXNlbGVjdC1pdGVtPlxuPC9pZ3gtc2VsZWN0PlxuXG48aWd4LWRhdGUtcGlja2VyICNwaWNrZXIgKm5nSWY9XCJjb2x1bW4uZGF0YVR5cGUgPT09ICdkYXRlJ1wiXG4gICAgW3dlZWtTdGFydF09XCJjb2x1bW4ucGlwZUFyZ3Mud2Vla1N0YXJ0ID8/IHdlZWtTdGFydFwiXG4gICAgWyh2YWx1ZSldPVwiZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uc2VhcmNoVmFsXCJcbiAgICBbbG9jYWxlXT1cImdyaWQubG9jYWxlXCJcbiAgICBbb3V0bGV0XT1cImdyaWQub3V0bGV0XCJcbiAgICBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgIChjbGljayk9XCJwaWNrZXIub3BlbigpXCJcbiAgICBbcmVhZE9ubHldPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImlucHV0RGF0ZVBsYWNlaG9sZGVyXCJcbiAgICBbZGlzcGxheUZvcm1hdF09XCJjb2x1bW4ucGlwZUFyZ3MuZm9ybWF0XCJcbiAgICBbZm9ybWF0dGVyXT1cImNvbHVtbi5mb3JtYXR0ZXJcIlxuICAgIFtkaXNhYmxlZF09XCJleHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb24gJiYgZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uLmlzVW5hcnlcIlxuICAgIHR5cGU9XCJib3hcIj5cbiAgICAgPCEtLSBkaXNhYmxlIGRlZmF1bHQgaWNvbnMgLS0+XG4gICAgIDxpZ3gtcGlja2VyLXRvZ2dsZT48L2lneC1waWNrZXItdG9nZ2xlPlxuICAgICA8aWd4LXBpY2tlci1jbGVhcj48L2lneC1waWNrZXItY2xlYXI+XG48L2lneC1kYXRlLXBpY2tlcj5cblxuPGlneC10aW1lLXBpY2tlciAjcGlja2VyICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAndGltZSdcIlxuICAgIFtpbnB1dEZvcm1hdF09XCJjb2x1bW4uZGVmYXVsdFRpbWVGb3JtYXRcIlxuICAgIFsodmFsdWUpXT1cImV4cHJlc3Npb25VSS5leHByZXNzaW9uLnNlYXJjaFZhbFwiXG4gICAgW2xvY2FsZV09XCJncmlkLmxvY2FsZVwiXG4gICAgW291dGxldF09XCJncmlkLm91dGxldFwiXG4gICAgW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCJcbiAgICAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiXG4gICAgW3JlYWRPbmx5XT1cInRydWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJpbnB1dFRpbWVQbGFjZWhvbGRlclwiXG4gICAgW2Rpc3BsYXlGb3JtYXRdPVwiY29sdW1uLnBpcGVBcmdzLmZvcm1hdFwiXG4gICAgW2Zvcm1hdHRlcl09XCJjb2x1bW4uZm9ybWF0dGVyXCJcbiAgICBbZGlzYWJsZWRdPVwiZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uICYmIGV4cHJlc3Npb25VSS5leHByZXNzaW9uLmNvbmRpdGlvbi5pc1VuYXJ5XCJcbiAgICB0eXBlPVwiYm94XCI+XG4gICAgIDwhLS0gZGlzYWJsZSBkZWZhdWx0IGljb25zIC0tPlxuICAgICA8aWd4LXBpY2tlci10b2dnbGU+PC9pZ3gtcGlja2VyLXRvZ2dsZT5cbiAgICAgPGlneC1waWNrZXItY2xlYXI+PC9pZ3gtcGlja2VyLWNsZWFyPlxuPC9pZ3gtdGltZS1waWNrZXI+XG5cbjxpZ3gtaW5wdXQtZ3JvdXAgI2Ryb3BEb3duVGFyZ2V0ICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAnZGF0ZVRpbWUnXCIgI2lucHV0R3JvdXAgdHlwZT1cImJveFwiIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiPlxuICAgIDxpbnB1dCAjaW5wdXQgaWd4SW5wdXQgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImlucHV0RGF0ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2lneERhdGVUaW1lRWRpdG9yXT1cImNvbHVtbi5kZWZhdWx0RGF0ZVRpbWVGb3JtYXRcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImV4cHJlc3Npb25VSS5leHByZXNzaW9uLnNlYXJjaFZhbFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJleHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb24gJiYgZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uLmlzVW5hcnlcIi8+XG48L2lneC1pbnB1dC1ncm91cD5cblxuPGJ1dHRvbiAoY2xpY2spPVwib25SZW1vdmVCdXR0b25DbGljaygpXCIgaWd4QnV0dG9uPVwiaWNvblwiIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiICpuZ0lmPVwiIWlzU2luZ2xlXCIgPlxuICAgIDxpZ3gtaWNvbj5jYW5jZWw8L2lneC1pY29uPlxuPC9idXR0b24+XG5cbjxpZ3gtYnV0dG9uZ3JvdXAgI2xvZ2ljT3BlcmF0b3JCdXR0b25Hcm91cFxuICAgICpuZ0lmPVwiIWlzTGFzdFwiPlxuICAgIDxzcGFuIGlneEJ1dHRvbiBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgICAgICAjYW5kQnV0dG9uXG4gICAgICAgIChrZXlkb3duKT1cIm9uTG9naWNPcGVyYXRvcktleURvd24oJGV2ZW50LCAwKVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIFtzZWxlY3RlZF09XCJleHByZXNzaW9uVUkuYWZ0ZXJPcGVyYXRvciA9PT0gMFwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwib25Mb2dpY09wZXJhdG9yQnV0dG9uQ2xpY2tlZCgkZXZlbnQsIDApXCI+XG4gICAgICAgIHt7IGdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2ZpbHRlcl9vcGVyYXRvcl9hbmQgfX1cbiAgICA8L3NwYW4+XG5cbiAgICA8c3BhbiBpZ3hCdXR0b24gW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCJcbiAgICAgICAgI29yQnV0dG9uXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uTG9naWNPcGVyYXRvcktleURvd24oJGV2ZW50LCAxKVwiXG4gICAgICAgIFtzZWxlY3RlZF09XCJleHByZXNzaW9uVUkuYWZ0ZXJPcGVyYXRvciA9PT0gMVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAoY2xpY2spPVwib25Mb2dpY09wZXJhdG9yQnV0dG9uQ2xpY2tlZCgkZXZlbnQsIDEpXCI+XG4gICAgICAgIHt7IGdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2ZpbHRlcl9vcGVyYXRvcl9vciB9fVxuICAgIDwvc3Bhbj5cbjwvaWd4LWJ1dHRvbmdyb3VwPlxuXG48ZGl2ICNvdmVybGF5T3V0bGV0XG4gICAgIGlneE92ZXJsYXlPdXRsZXRcbiAgICAgKHBvaW50ZXJkb3duKT1cIm9uT3V0bGV0UG9pbnRlckRvd24oJGV2ZW50KVwiPlxuPC9kaXY+XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3R5bGUtZGF0ZS1leHByZXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtZGF0ZS1leHByZXNzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtZGF0ZS1leHByZXNzaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFFdEU7O0dBRUc7QUFPSCxNQUFNLE9BQU8sb0NBQXFDLFNBQVEsdUNBQXVDO0lBTzdGLElBQXVCLGtCQUFrQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELENBQUM7OEdBckJRLG9DQUFvQztrR0FBcEMsb0NBQW9DLHNLQUNqQixpQkFBaUIsdUlDNUJqRCx3MkhBMkZBLDRDRGxFYyxrQkFBa0IscUxBQUUsa0JBQWtCLDhFQUFFLElBQUksNkZBQUUsZ0JBQWdCLDJGQUFFLEtBQUssbUhBQUUsc0JBQXNCLDhFQUFFLHNCQUFzQixzYUFBRSx3QkFBd0Isb0ZBQUUsdUJBQXVCLDZEQUFFLHNCQUFzQixnVkFBRSxzQkFBc0IsbUlBQUUsV0FBVywrbUJBQUUsaUJBQWlCLDBIQUFFLDBCQUEwQixtUUFBRSxrQkFBa0Isd01BQUUsdUJBQXVCLDhNQUFFLHlCQUF5Qjs7MkZBRTdWLG9DQUFvQztrQkFOaEQsU0FBUzsrQkFDSSxpQ0FBaUMsY0FFL0IsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSx3QkFBd0IsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUseUJBQXlCLENBQUM7OEJBSS9WLEtBQUs7c0JBRFosU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJdEQsTUFBTTtzQkFEYixTQUFTO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4RXhjZWxTdHlsZURlZmF1bHRFeHByZXNzaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9leGNlbC1zdHlsZS1kZWZhdWx0LWV4cHJlc3Npb24uY29tcG9uZW50JztcbmltcG9ydCB7IElneElucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9pbnB1dC9pbnB1dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4VGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXRMb2NhbGVGaXJzdERheU9mV2VlaywgTmdJZiwgTmdGb3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy90b2dnbGUvdG9nZ2xlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2J1dHRvbkdyb3VwL2J1dHRvbkdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IElneERhdGVUaW1lRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9kYXRlLXRpbWUtZWRpdG9yL2RhdGUtdGltZS1lZGl0b3IuZGlyZWN0aXZlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWd4SW5wdXRHcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hQaWNrZXJUb2dnbGVDb21wb25lbnQsIElneFBpY2tlckNsZWFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS1jb21tb24vcGlja2VyLWljb25zLmNvbW1vbic7XG5pbXBvcnQgeyBJZ3hEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IElneFNlbGVjdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zZWxlY3Qvc2VsZWN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IElneFByZWZpeERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvcHJlZml4L3ByZWZpeC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4U2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZXhjZWwtc3R5bGUtZGF0ZS1leHByZXNzaW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXhjZWwtc3R5bGUtZGF0ZS1leHByZXNzaW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtJZ3hTZWxlY3RDb21wb25lbnQsIElneFByZWZpeERpcmVjdGl2ZSwgTmdJZiwgSWd4SWNvbkNvbXBvbmVudCwgTmdGb3IsIElneFNlbGVjdEl0ZW1Db21wb25lbnQsIElneERhdGVQaWNrZXJDb21wb25lbnQsIElneFBpY2tlclRvZ2dsZUNvbXBvbmVudCwgSWd4UGlja2VyQ2xlYXJDb21wb25lbnQsIElneFRpbWVQaWNrZXJDb21wb25lbnQsIElneElucHV0R3JvdXBDb21wb25lbnQsIEZvcm1zTW9kdWxlLCBJZ3hJbnB1dERpcmVjdGl2ZSwgSWd4RGF0ZVRpbWVFZGl0b3JEaXJlY3RpdmUsIElneEJ1dHRvbkRpcmVjdGl2ZSwgSWd4QnV0dG9uR3JvdXBDb21wb25lbnQsIElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIElneEV4Y2VsU3R5bGVEYXRlRXhwcmVzc2lvbkNvbXBvbmVudCBleHRlbmRzIElneEV4Y2VsU3R5bGVEZWZhdWx0RXhwcmVzc2lvbkNvbXBvbmVudCB7XG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IElneElucHV0RGlyZWN0aXZlLCBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHJpdmF0ZSBpbnB1dDogSWd4SW5wdXREaXJlY3RpdmU7XG5cbiAgICBAVmlld0NoaWxkKCdwaWNrZXInKVxuICAgIHByaXZhdGUgcGlja2VyOiBJZ3hEYXRlUGlja2VyQ29tcG9uZW50IHwgSWd4VGltZVBpY2tlckNvbXBvbmVudDtcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBnZXQgaW5wdXRWYWx1ZXNFbGVtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5waWNrZXI/LmdldEVkaXRFbGVtZW50KCkgfHwgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0RGF0ZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucmVzb3VyY2VTdHJpbmdzWydpZ3hfZ3JpZF9maWx0ZXJfcm93X2RhdGVfcGxhY2Vob2xkZXInXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0VGltZVBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucmVzb3VyY2VTdHJpbmdzWydpZ3hfZ3JpZF9maWx0ZXJfcm93X3RpbWVfcGxhY2Vob2xkZXInXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHdlZWtTdGFydCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gZ2V0TG9jYWxlRmlyc3REYXlPZldlZWsodGhpcy5ncmlkLmxvY2FsZSk7XG4gICAgfVxufVxuIiwiPGlneC1zZWxlY3QgI2Ryb3Bkb3duQ29uZGl0aW9uc1xuICAgICAgICB0eXBlPVwiYm94XCJcbiAgICAgICAgW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmRpdGlvbnNQbGFjZWhvbGRlclwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2luZyk9XCJvbkNvbmRpdGlvbnNDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICBbb3ZlcmxheVNldHRpbmdzXT1cImRyb3BEb3duT3ZlcmxheVNldHRpbmdzXCI+XG4gICAgPGlneC1wcmVmaXg+XG4gICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cImV4cHJlc3Npb25VSS5leHByZXNzaW9uLmNvbmRpdGlvblwiIGZhbWlseT1cImlteC1pY29uc1wiIFtuYW1lXT1cImdldEljb25OYW1lKClcIj48L2lneC1pY29uPlxuICAgICAgICA8aWd4LWljb24gKm5nSWY9XCIhZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uXCI+ZmlsdGVyX2xpc3Q8L2lneC1pY29uPlxuICAgIDwvaWd4LXByZWZpeD5cbiAgICA8aWd4LXNlbGVjdC1pdGVtICpuZ0Zvcj1cImxldCBjb25kaXRpb24gb2YgY29uZGl0aW9uc1wiIFt2YWx1ZV09XCJjb25kaXRpb25cIiBbdGV4dF09XCJnZXRDb25kaXRpb25GcmllbmRseU5hbWUoY29uZGl0aW9uKVwiIFtzZWxlY3RlZF09XCJpc0NvbmRpdGlvblNlbGVjdGVkKGNvbmRpdGlvbilcIj5cbiAgICAgICAgPGlneC1pY29uIGZhbWlseT1cImlteC1pY29uc1wiIFtuYW1lXT1cImdldENvbmRpdGlvbihjb25kaXRpb24pLmljb25OYW1lXCI+PC9pZ3gtaWNvbj5cbiAgICAgICAgPHNwYW4+e3t0cmFuc2xhdGVDb25kaXRpb24oY29uZGl0aW9uKX19PC9zcGFuPlxuICAgIDwvaWd4LXNlbGVjdC1pdGVtPlxuPC9pZ3gtc2VsZWN0PlxuXG48aWd4LWRhdGUtcGlja2VyICNwaWNrZXIgKm5nSWY9XCJjb2x1bW4uZGF0YVR5cGUgPT09ICdkYXRlJ1wiXG4gICAgW3dlZWtTdGFydF09XCJjb2x1bW4ucGlwZUFyZ3Mud2Vla1N0YXJ0ID8/IHdlZWtTdGFydFwiXG4gICAgWyh2YWx1ZSldPVwiZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uc2VhcmNoVmFsXCJcbiAgICBbbG9jYWxlXT1cImdyaWQubG9jYWxlXCJcbiAgICBbb3V0bGV0XT1cImdyaWQub3V0bGV0XCJcbiAgICBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgIChjbGljayk9XCJwaWNrZXIub3BlbigpXCJcbiAgICBbcmVhZE9ubHldPVwidHJ1ZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImlucHV0RGF0ZVBsYWNlaG9sZGVyXCJcbiAgICBbZGlzcGxheUZvcm1hdF09XCJjb2x1bW4ucGlwZUFyZ3MuZm9ybWF0XCJcbiAgICBbZm9ybWF0dGVyXT1cImNvbHVtbi5mb3JtYXR0ZXJcIlxuICAgIFtkaXNhYmxlZF09XCJleHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb24gJiYgZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uLmlzVW5hcnlcIlxuICAgIHR5cGU9XCJib3hcIj5cbiAgICAgPCEtLSBkaXNhYmxlIGRlZmF1bHQgaWNvbnMgLS0+XG4gICAgIDxpZ3gtcGlja2VyLXRvZ2dsZT48L2lneC1waWNrZXItdG9nZ2xlPlxuICAgICA8aWd4LXBpY2tlci1jbGVhcj48L2lneC1waWNrZXItY2xlYXI+XG48L2lneC1kYXRlLXBpY2tlcj5cblxuPGlneC10aW1lLXBpY2tlciAjcGlja2VyICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAndGltZSdcIlxuICAgIFtpbnB1dEZvcm1hdF09XCJjb2x1bW4uZGVmYXVsdFRpbWVGb3JtYXRcIlxuICAgIFsodmFsdWUpXT1cImV4cHJlc3Npb25VSS5leHByZXNzaW9uLnNlYXJjaFZhbFwiXG4gICAgW2xvY2FsZV09XCJncmlkLmxvY2FsZVwiXG4gICAgW291dGxldF09XCJncmlkLm91dGxldFwiXG4gICAgW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCJcbiAgICAoY2xpY2spPVwicGlja2VyLm9wZW4oKVwiXG4gICAgW3JlYWRPbmx5XT1cInRydWVcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJpbnB1dFRpbWVQbGFjZWhvbGRlclwiXG4gICAgW2Rpc3BsYXlGb3JtYXRdPVwiY29sdW1uLnBpcGVBcmdzLmZvcm1hdFwiXG4gICAgW2Zvcm1hdHRlcl09XCJjb2x1bW4uZm9ybWF0dGVyXCJcbiAgICBbZGlzYWJsZWRdPVwiZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uICYmIGV4cHJlc3Npb25VSS5leHByZXNzaW9uLmNvbmRpdGlvbi5pc1VuYXJ5XCJcbiAgICB0eXBlPVwiYm94XCI+XG4gICAgIDwhLS0gZGlzYWJsZSBkZWZhdWx0IGljb25zIC0tPlxuICAgICA8aWd4LXBpY2tlci10b2dnbGU+PC9pZ3gtcGlja2VyLXRvZ2dsZT5cbiAgICAgPGlneC1waWNrZXItY2xlYXI+PC9pZ3gtcGlja2VyLWNsZWFyPlxuPC9pZ3gtdGltZS1waWNrZXI+XG5cbjxpZ3gtaW5wdXQtZ3JvdXAgI2Ryb3BEb3duVGFyZ2V0ICpuZ0lmPVwiY29sdW1uLmRhdGFUeXBlID09PSAnZGF0ZVRpbWUnXCIgI2lucHV0R3JvdXAgdHlwZT1cImJveFwiIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiPlxuICAgIDxpbnB1dCAjaW5wdXQgaWd4SW5wdXQgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImlucHV0RGF0ZVBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2lneERhdGVUaW1lRWRpdG9yXT1cImNvbHVtbi5kZWZhdWx0RGF0ZVRpbWVGb3JtYXRcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImV4cHJlc3Npb25VSS5leHByZXNzaW9uLnNlYXJjaFZhbFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJleHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb24gJiYgZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uLmlzVW5hcnlcIi8+XG48L2lneC1pbnB1dC1ncm91cD5cblxuPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uUmVtb3ZlQnV0dG9uQ2xpY2soKVwiIGlneEJ1dHRvbj1cImljb25cIiBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIiAqbmdJZj1cIiFpc1NpbmdsZVwiID5cbiAgICA8aWd4LWljb24+Y2FuY2VsPC9pZ3gtaWNvbj5cbjwvYnV0dG9uPlxuXG48aWd4LWJ1dHRvbmdyb3VwICNsb2dpY09wZXJhdG9yQnV0dG9uR3JvdXBcbiAgICAqbmdJZj1cIiFpc0xhc3RcIj5cbiAgICA8c3BhbiBpZ3hCdXR0b24gW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCJcbiAgICAgICAgI2FuZEJ1dHRvblxuICAgICAgICAoa2V5ZG93bik9XCJvbkxvZ2ljT3BlcmF0b3JLZXlEb3duKCRldmVudCwgMClcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiZXhwcmVzc2lvblVJLmFmdGVyT3BlcmF0b3IgPT09IDBcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTG9naWNPcGVyYXRvckJ1dHRvbkNsaWNrZWQoJGV2ZW50LCAwKVwiPlxuICAgICAgICB7eyBncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9maWx0ZXJfb3BlcmF0b3JfYW5kIH19XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gaWd4QnV0dG9uIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgICNvckJ1dHRvblxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbkxvZ2ljT3BlcmF0b3JLZXlEb3duKCRldmVudCwgMSlcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiZXhwcmVzc2lvblVJLmFmdGVyT3BlcmF0b3IgPT09IDFcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTG9naWNPcGVyYXRvckJ1dHRvbkNsaWNrZWQoJGV2ZW50LCAxKVwiPlxuICAgICAgICB7eyBncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9maWx0ZXJfb3BlcmF0b3Jfb3IgfX1cbiAgICA8L3NwYW4+XG48L2lneC1idXR0b25ncm91cD5cblxuPGRpdiAjb3ZlcmxheU91dGxldFxuICAgICBpZ3hPdmVybGF5T3V0bGV0XG4gICAgIChwb2ludGVyZG93bik9XCJvbk91dGxldFBvaW50ZXJEb3duKCRldmVudClcIj5cbjwvZGl2PlxuIl19
@@ -127,11 +127,11 @@ export class IgxExcelStyleDefaultExpressionComponent {
127
127
  event.preventDefault();
128
128
  }
129
129
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxExcelStyleDefaultExpressionComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PlatformUtil }], target: i0.ɵɵFactoryTarget.Component }); }
130
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxExcelStyleDefaultExpressionComponent, isStandalone: true, selector: "igx-excel-style-default-expression", inputs: { column: "column", expressionUI: "expressionUI", expressionsList: "expressionsList", grid: "grid", displayDensity: "displayDensity" }, outputs: { expressionRemoved: "expressionRemoved", logicOperatorChanged: "logicOperatorChanged" }, viewQueries: [{ propertyName: "overlayOutlet", first: true, predicate: ["overlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "dropdownConditions", first: true, predicate: ["dropdownConditions"], descendants: true, read: IgxSelectComponent, static: true }, { propertyName: "logicOperatorButtonGroup", first: true, predicate: ["logicOperatorButtonGroup"], descendants: true, read: IgxButtonGroupComponent }, { propertyName: "inputValuesDirective", first: true, predicate: ["inputValues"], descendants: true, read: IgxInputDirective, static: true }], ngImport: i0, template: "<igx-select #dropdownConditions\n type=\"box\"\n [displayDensity]=\"displayDensity\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n <igx-icon *ngIf=\"expressionUI.expression.condition\" family=\"imx-icons\" [name]=\"getIconName()\"></igx-icon>\n <igx-icon *ngIf=\"!expressionUI.expression.condition\">filter_list</igx-icon>\n </igx-prefix>\n <igx-select-item *ngFor=\"let condition of conditions\" [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{translateCondition(condition)}}</span>\n </div>\n </igx-select-item>\n</igx-select>\n\n<igx-input-group #inputGroupValues type=\"box\" [displayDensity]=\"displayDensity\">\n <input\n #inputValues\n igxInput\n [type]=\"type\"\n tabindex=\"0\"\n [placeholder]=\"inputValuePlaceholder\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n autocomplete=\"off\"\n [value]=\"expressionUI.expression.searchVal\"\n (input)=\"onValuesInput($event)\"\n />\n</igx-input-group>\n\n<button (click)=\"onRemoveButtonClick()\" igxButton=\"icon\" [displayDensity]=\"displayDensity\" *ngIf=\"!isSingle\">\n <igx-icon>cancel</igx-icon>\n</button>\n\n<igx-buttongroup #logicOperatorButtonGroup\n *ngIf=\"!isLast\">\n <span igxButton [displayDensity]=\"displayDensity\"\n tabindex=\"0\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n\n <span igxButton [displayDensity]=\"displayDensity\"\n tabindex=\"0\"\n #orButton\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n</igx-buttongroup>\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n", dependencies: [{ kind: "component", type: IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }] }); }
130
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxExcelStyleDefaultExpressionComponent, isStandalone: true, selector: "igx-excel-style-default-expression", inputs: { column: "column", expressionUI: "expressionUI", expressionsList: "expressionsList", grid: "grid", displayDensity: "displayDensity" }, outputs: { expressionRemoved: "expressionRemoved", logicOperatorChanged: "logicOperatorChanged" }, viewQueries: [{ propertyName: "overlayOutlet", first: true, predicate: ["overlayOutlet"], descendants: true, read: IgxOverlayOutletDirective, static: true }, { propertyName: "dropdownConditions", first: true, predicate: ["dropdownConditions"], descendants: true, read: IgxSelectComponent, static: true }, { propertyName: "logicOperatorButtonGroup", first: true, predicate: ["logicOperatorButtonGroup"], descendants: true, read: IgxButtonGroupComponent }, { propertyName: "inputValuesDirective", first: true, predicate: ["inputValues"], descendants: true, read: IgxInputDirective, static: true }], ngImport: i0, template: "<igx-select #dropdownConditions\n type=\"box\"\n [displayDensity]=\"displayDensity\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n <igx-icon *ngIf=\"expressionUI.expression.condition\" family=\"imx-icons\" [name]=\"getIconName()\"></igx-icon>\n <igx-icon *ngIf=\"!expressionUI.expression.condition\">filter_list</igx-icon>\n </igx-prefix>\n <igx-select-item *ngFor=\"let condition of conditions\" [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{translateCondition(condition)}}</span>\n </div>\n </igx-select-item>\n</igx-select>\n\n<igx-input-group #inputGroupValues type=\"box\" [displayDensity]=\"displayDensity\">\n <input\n #inputValues\n igxInput\n [type]=\"type\"\n tabindex=\"0\"\n [placeholder]=\"inputValuePlaceholder\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n autocomplete=\"off\"\n [value]=\"expressionUI.expression.searchVal\"\n (input)=\"onValuesInput($event)\"\n />\n</igx-input-group>\n\n<button type=\"button\" (click)=\"onRemoveButtonClick()\" igxButton=\"icon\" [displayDensity]=\"displayDensity\" *ngIf=\"!isSingle\">\n <igx-icon>cancel</igx-icon>\n</button>\n\n<igx-buttongroup #logicOperatorButtonGroup\n *ngIf=\"!isLast\">\n <span igxButton [displayDensity]=\"displayDensity\"\n tabindex=\"0\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n\n <span igxButton [displayDensity]=\"displayDensity\"\n tabindex=\"0\"\n #orButton\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n</igx-buttongroup>\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n", dependencies: [{ kind: "component", type: IgxSelectComponent, selector: "igx-select", inputs: ["placeholder", "disabled", "overlaySettings", "value", "type"], outputs: ["opening", "opened", "closing", "closed"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxSelectItemComponent, selector: "igx-select-item", inputs: ["text"] }, { kind: "component", type: IgxInputGroupComponent, selector: "igx-input-group", inputs: ["resourceStrings", "suppressInputAutofocus", "type", "theme"] }, { kind: "directive", type: IgxInputDirective, selector: "[igxInput]", inputs: ["value", "disabled", "required"], exportAs: ["igxInput"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "component", type: IgxButtonGroupComponent, selector: "igx-buttongroup", inputs: ["id", "itemContentCssClass", "multiSelection", "selectionMode", "values", "disabled", "alignment"], outputs: ["selected", "deselected"] }, { kind: "directive", type: IgxOverlayOutletDirective, selector: "[igxOverlayOutlet]", exportAs: ["overlay-outlet"] }] }); }
131
131
  }
132
132
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxExcelStyleDefaultExpressionComponent, decorators: [{
133
133
  type: Component,
134
- args: [{ selector: 'igx-excel-style-default-expression', standalone: true, imports: [IgxSelectComponent, IgxPrefixDirective, NgIf, IgxIconComponent, NgFor, IgxSelectItemComponent, IgxInputGroupComponent, IgxInputDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective], template: "<igx-select #dropdownConditions\n type=\"box\"\n [displayDensity]=\"displayDensity\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n <igx-icon *ngIf=\"expressionUI.expression.condition\" family=\"imx-icons\" [name]=\"getIconName()\"></igx-icon>\n <igx-icon *ngIf=\"!expressionUI.expression.condition\">filter_list</igx-icon>\n </igx-prefix>\n <igx-select-item *ngFor=\"let condition of conditions\" [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{translateCondition(condition)}}</span>\n </div>\n </igx-select-item>\n</igx-select>\n\n<igx-input-group #inputGroupValues type=\"box\" [displayDensity]=\"displayDensity\">\n <input\n #inputValues\n igxInput\n [type]=\"type\"\n tabindex=\"0\"\n [placeholder]=\"inputValuePlaceholder\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n autocomplete=\"off\"\n [value]=\"expressionUI.expression.searchVal\"\n (input)=\"onValuesInput($event)\"\n />\n</igx-input-group>\n\n<button (click)=\"onRemoveButtonClick()\" igxButton=\"icon\" [displayDensity]=\"displayDensity\" *ngIf=\"!isSingle\">\n <igx-icon>cancel</igx-icon>\n</button>\n\n<igx-buttongroup #logicOperatorButtonGroup\n *ngIf=\"!isLast\">\n <span igxButton [displayDensity]=\"displayDensity\"\n tabindex=\"0\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n\n <span igxButton [displayDensity]=\"displayDensity\"\n tabindex=\"0\"\n #orButton\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n</igx-buttongroup>\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n" }]
134
+ args: [{ selector: 'igx-excel-style-default-expression', standalone: true, imports: [IgxSelectComponent, IgxPrefixDirective, NgIf, IgxIconComponent, NgFor, IgxSelectItemComponent, IgxInputGroupComponent, IgxInputDirective, IgxButtonDirective, IgxButtonGroupComponent, IgxOverlayOutletDirective], template: "<igx-select #dropdownConditions\n type=\"box\"\n [displayDensity]=\"displayDensity\"\n [placeholder]=\"conditionsPlaceholder\"\n (selectionChanging)=\"onConditionsChanged($event)\"\n [overlaySettings]=\"dropDownOverlaySettings\">\n <igx-prefix>\n <igx-icon *ngIf=\"expressionUI.expression.condition\" family=\"imx-icons\" [name]=\"getIconName()\"></igx-icon>\n <igx-icon *ngIf=\"!expressionUI.expression.condition\">filter_list</igx-icon>\n </igx-prefix>\n <igx-select-item *ngFor=\"let condition of conditions\" [value]=\"condition\" [text]=\"getConditionFriendlyName(condition)\" [selected]=\"isConditionSelected(condition)\">\n <div class=\"igx-grid__filtering-dropdown-items\">\n <igx-icon family=\"imx-icons\" [name]=\"getCondition(condition).iconName\"></igx-icon>\n <span class=\"igx-grid__filtering-dropdown-text\">{{translateCondition(condition)}}</span>\n </div>\n </igx-select-item>\n</igx-select>\n\n<igx-input-group #inputGroupValues type=\"box\" [displayDensity]=\"displayDensity\">\n <input\n #inputValues\n igxInput\n [type]=\"type\"\n tabindex=\"0\"\n [placeholder]=\"inputValuePlaceholder\"\n [disabled]=\"expressionUI.expression.condition && expressionUI.expression.condition.isUnary\"\n autocomplete=\"off\"\n [value]=\"expressionUI.expression.searchVal\"\n (input)=\"onValuesInput($event)\"\n />\n</igx-input-group>\n\n<button type=\"button\" (click)=\"onRemoveButtonClick()\" igxButton=\"icon\" [displayDensity]=\"displayDensity\" *ngIf=\"!isSingle\">\n <igx-icon>cancel</igx-icon>\n</button>\n\n<igx-buttongroup #logicOperatorButtonGroup\n *ngIf=\"!isLast\">\n <span igxButton [displayDensity]=\"displayDensity\"\n tabindex=\"0\"\n #andButton\n (keydown)=\"onLogicOperatorKeyDown($event, 0)\"\n [selected]=\"expressionUI.afterOperator === 0\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 0)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\n </span>\n\n <span igxButton [displayDensity]=\"displayDensity\"\n tabindex=\"0\"\n #orButton\n (keydown)=\"onLogicOperatorKeyDown($event, 1)\"\n [selected]=\"expressionUI.afterOperator === 1\"\n type=\"button\"\n (click)=\"onLogicOperatorButtonClicked($event, 1)\">\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\n </span>\n</igx-buttongroup>\n\n<div #overlayOutlet\n igxOverlayOutlet\n (pointerdown)=\"onOutletPointerDown($event)\">\n</div>\n" }]
135
135
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.PlatformUtil }]; }, propDecorators: { column: [{
136
136
  type: Input
137
137
  }], expressionUI: [{
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
159
159
  type: ViewChild,
160
160
  args: ['inputValues', { read: IgxInputDirective, static: true }]
161
161
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3R5bGUtZGVmYXVsdC1leHByZXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtZGVmYXVsdC1leHByZXNzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtZGVmYXVsdC1leHByZXNzaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUtsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUl4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUs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RDdCLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4QnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9idXR0b25Hcm91cC9idXR0b25Hcm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRhdGFUeXBlLCBEYXRhVXRpbCB9IGZyb20gJy4uLy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLXV0aWwnO1xuaW1wb3J0IHsgSUZpbHRlcmluZ09wZXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctY29uZGl0aW9uJztcbmltcG9ydCB7IElCYXNlRXZlbnRBcmdzLCBQbGF0Zm9ybVV0aWwgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEZpbHRlcmluZ0xvZ2ljIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvZGVuc2l0eSc7XG5pbXBvcnQgeyBJZ3hTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy90b2dnbGUvdG9nZ2xlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFeHByZXNzaW9uVUkgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBDb2x1bW5UeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcbmltcG9ydCB7IEFic29sdXRlU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vdmVybGF5L3Njcm9sbC9hYnNvbHV0ZS1zY3JvbGwtc3RyYXRlZ3knO1xuaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb25pbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvcG9zaXRpb24vY29ubmVjdGVkLXBvc2l0aW9uaW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4SW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2lucHV0L2lucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQtZ3JvdXAvaW5wdXQtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IElneFNlbGVjdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zZWxlY3Qvc2VsZWN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5nSWYsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElneFByZWZpeERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvcHJlZml4L3ByZWZpeC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTG9naWNPcGVyYXRvckNoYW5nZWRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIHRhcmdldDogRXhwcmVzc2lvblVJO1xuICAgIG5ld1ZhbHVlOiBGaWx0ZXJpbmdMb2dpYztcbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LWV4Y2VsLXN0eWxlLWRlZmF1bHQtZXhwcmVzc2lvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V4Y2VsLXN0eWxlLWRlZmF1bHQtZXhwcmVzc2lvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbSWd4U2VsZWN0Q29tcG9uZW50LCBJZ3hQcmVmaXhEaXJlY3RpdmUsIE5nSWYsIElneEljb25Db21wb25lbnQsIE5nRm9yLCBJZ3hTZWxlY3RJdGVtQ29tcG9uZW50LCBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50LCBJZ3hJbnB1dERpcmVjdGl2ZSwgSWd4QnV0dG9uRGlyZWN0aXZlLCBJZ3hCdXR0b25Hcm91cENvbXBvbmVudCwgSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgSWd4RXhjZWxTdHlsZURlZmF1bHRFeHByZXNzaW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sdW1uOiBDb2x1bW5UeXBlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhwcmVzc2lvblVJOiBFeHByZXNzaW9uVUk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBleHByZXNzaW9uc0xpc3Q6IEFycmF5PEV4cHJlc3Npb25VST47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBncmlkOiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5RGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZXhwcmVzc2lvblJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEV4cHJlc3Npb25VST4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBsb2dpY09wZXJhdG9yQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUxvZ2ljT3BlcmF0b3JDaGFuZ2VkQXJncz4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ292ZXJsYXlPdXRsZXQnLCB7IHJlYWQ6IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBvdmVybGF5T3V0bGV0OiBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlO1xuXG4gICAgQFZpZXdDaGlsZCgnZHJvcGRvd25Db25kaXRpb25zJywgeyByZWFkOiBJZ3hTZWxlY3RDb21wb25lbnQsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBkcm9wZG93bkNvbmRpdGlvbnM6IElneFNlbGVjdENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ2xvZ2ljT3BlcmF0b3JCdXR0b25Hcm91cCcsIHsgcmVhZDogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQgfSlcbiAgICBwcm90ZWN0ZWQgbG9naWNPcGVyYXRvckJ1dHRvbkdyb3VwOiBJZ3hCdXR0b25Hcm91cENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0VmFsdWVzJywgeyByZWFkOiBJZ3hJbnB1dERpcmVjdGl2ZSwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGlucHV0VmFsdWVzRGlyZWN0aXZlOiBJZ3hJbnB1dERpcmVjdGl2ZTtcblxuICAgIHB1YmxpYyBkcm9wRG93bk92ZXJsYXlTZXR0aW5nczogT3ZlcmxheVNldHRpbmdzID0ge1xuICAgICAgICBzY3JvbGxTdHJhdGVneTogbmV3IEFic29sdXRlU2Nyb2xsU3RyYXRlZ3koKSxcbiAgICAgICAgbW9kYWw6IGZhbHNlLFxuICAgICAgICBjbG9zZU9uT3V0c2lkZUNsaWNrOiB0cnVlXG4gICAgfTtcblxuICAgIHB1YmxpYyBnZXQgaXNMYXN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uc0xpc3RbdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoIC0gMV0gPT09IHRoaXMuZXhwcmVzc2lvblVJO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNTaW5nbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb25zTGlzdC5sZW5ndGggPT09IDE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb25kaXRpb25zUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5yZXNvdXJjZVN0cmluZ3NbJ2lneF9ncmlkX2ZpbHRlcl9jb25kaXRpb25fcGxhY2Vob2xkZXInXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0VmFsdWVQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJlc291cmNlU3RyaW5nc1snaWd4X2dyaWRfZmlsdGVyX3Jvd19wbGFjZWhvbGRlciddO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmNvbHVtbi5kYXRhVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBHcmlkQ29sdW1uRGF0YVR5cGUuTnVtYmVyOlxuICAgICAgICAgICAgY2FzZSBHcmlkQ29sdW1uRGF0YVR5cGUuQ3VycmVuY3k6XG4gICAgICAgICAgICBjYXNlIEdyaWRDb2x1bW5EYXRhVHlwZS5QZXJjZW50OlxuICAgICAgICAgICAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcm90ZWN0ZWQgcGxhdGZvcm06IFBsYXRmb3JtVXRpbCkgeyB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbmRpdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5maWx0ZXJzLmNvbmRpdGlvbkxpc3QoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlucHV0VmFsdWVzRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRWYWx1ZXNEaXJlY3RpdmUubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3BEb3duT3ZlcmxheVNldHRpbmdzLm91dGxldCA9IHRoaXMub3ZlcmxheU91dGxldDtcbiAgICAgICAgdGhpcy5kcm9wRG93bk92ZXJsYXlTZXR0aW5ncy50YXJnZXQgPSB0aGlzLmRyb3Bkb3duQ29uZGl0aW9ucy5pbnB1dEdyb3VwLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5kcm9wRG93bk92ZXJsYXlTZXR0aW5ncy5leGNsdWRlRnJvbU91dHNpZGVDbGljayA9IFt0aGlzLmRyb3Bkb3duQ29uZGl0aW9ucy5pbnB1dEdyb3VwLmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudF07XG4gICAgICAgIHRoaXMuZHJvcERvd25PdmVybGF5U2V0dGluZ3MucG9zaXRpb25TdHJhdGVneSA9IG5ldyBDb25uZWN0ZWRQb3NpdGlvbmluZ1N0cmF0ZWd5KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzKCkge1xuICAgICAgICAvLyB1c2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHRvIGZvY3VzIHRoZSB2YWx1ZXMgaW5wdXQgYmVjYXVzZSB3aGVuIGluaXRpYWxpemluZyB0aGUgY29tcG9uZW50XG4gICAgICAgIC8vIGRhdGVwaWNrZXIncyBpbnB1dCBncm91cCBpcyBub3QgeWV0IGZ1bGx5IGluaXRpYWxpemVkXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLmlucHV0VmFsdWVzRWxlbWVudC5mb2N1cygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNsYXRlQ29uZGl0aW9uKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJlc291cmNlU3RyaW5nc1tgaWd4X2dyaWRfZmlsdGVyXyR7dGhpcy5nZXRDb25kaXRpb24odmFsdWUpLm5hbWV9YF0gfHwgdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEljb25OYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5kYXRhVHlwZSA9PT0gR3JpZENvbHVtbkRhdGFUeXBlLkJvb2xlYW4gJiYgdGhpcy5leHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb24gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbmRpdGlvbih0aGlzLmNvbmRpdGlvbnNbMF0pLmljb25OYW1lO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmV4cHJlc3Npb25VSS5leHByZXNzaW9uLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuICdmaWx0ZXJfbGlzdCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb24uaWNvbk5hbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDb25kaXRpb25TZWxlY3RlZChjb25kaXRpb25OYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uICYmIHRoaXMuZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uLm5hbWUgPT09IGNvbmRpdGlvbk5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29uZGl0aW9uc0NoYW5nZWQoZXZlbnRBcmdzOiBhbnkpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSAoZXZlbnRBcmdzLm5ld1NlbGVjdGlvbiBhcyBJZ3hTZWxlY3RDb21wb25lbnQpLnZhbHVlO1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25VSS5leHByZXNzaW9uLmNvbmRpdGlvbiA9IHRoaXMuZ2V0Q29uZGl0aW9uKHZhbHVlKTtcblxuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbmRpdGlvbih2YWx1ZTogc3RyaW5nKTogSUZpbHRlcmluZ09wZXJhdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5maWx0ZXJzLmNvbmRpdGlvbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbmRpdGlvbkZyaWVuZGx5TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJlc291cmNlU3RyaW5nc1tgaWd4X2dyaWRfZmlsdGVyXyR7bmFtZX1gXSB8fCBuYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblZhbHVlc0lucHV0KGV2ZW50QXJncykge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25VSS5leHByZXNzaW9uLnNlYXJjaFZhbCA9IERhdGFVdGlsLnBhcnNlVmFsdWUodGhpcy5jb2x1bW4uZGF0YVR5cGUsIGV2ZW50QXJncy50YXJnZXQudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkxvZ2ljT3BlcmF0b3JCdXR0b25DbGlja2VkKGV2ZW50QXJncywgYnV0dG9uSW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5sb2dpY09wZXJhdG9yQnV0dG9uR3JvdXAuc2VsZWN0ZWRCdXR0b25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZXZlbnRBcmdzLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5sb2dpY09wZXJhdG9yQnV0dG9uR3JvdXAuc2VsZWN0QnV0dG9uKGJ1dHRvbkluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9naWNPcGVyYXRvckNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLmV4cHJlc3Npb25VSSxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZTogYnV0dG9uSW5kZXggYXMgRmlsdGVyaW5nTG9naWNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uTG9naWNPcGVyYXRvcktleURvd24oZXZlbnRBcmdzOiBLZXlib2FyZEV2ZW50LCBidXR0b25JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChldmVudEFyZ3Mua2V5ID09PSB0aGlzLnBsYXRmb3JtLktFWU1BUC5FTlRFUikge1xuICAgICAgICAgICAgdGhpcy5sb2dpY09wZXJhdG9yQnV0dG9uR3JvdXAuc2VsZWN0QnV0dG9uKGJ1dHRvbkluZGV4KTtcbiAgICAgICAgICAgIHRoaXMubG9naWNPcGVyYXRvckNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLmV4cHJlc3Npb25VSSxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZTogYnV0dG9uSW5kZXggYXMgRmlsdGVyaW5nTG9naWNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVtb3ZlQnV0dG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvblJlbW92ZWQuZW1pdCh0aGlzLmV4cHJlc3Npb25VSSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uT3V0bGV0UG9pbnRlckRvd24oZXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG4iLCI8aWd4LXNlbGVjdCAjZHJvcGRvd25Db25kaXRpb25zXG4gICAgICAgIHR5cGU9XCJib3hcIlxuICAgICAgICBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZGl0aW9uc1BsYWNlaG9sZGVyXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5naW5nKT1cIm9uQ29uZGl0aW9uc0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIFtvdmVybGF5U2V0dGluZ3NdPVwiZHJvcERvd25PdmVybGF5U2V0dGluZ3NcIj5cbiAgICA8aWd4LXByZWZpeD5cbiAgICAgICAgPGlneC1pY29uICpuZ0lmPVwiZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uXCIgZmFtaWx5PVwiaW14LWljb25zXCIgW25hbWVdPVwiZ2V0SWNvbk5hbWUoKVwiPjwvaWd4LWljb24+XG4gICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cIiFleHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb25cIj5maWx0ZXJfbGlzdDwvaWd4LWljb24+XG4gICAgPC9pZ3gtcHJlZml4PlxuICAgIDxpZ3gtc2VsZWN0LWl0ZW0gKm5nRm9yPVwibGV0IGNvbmRpdGlvbiBvZiBjb25kaXRpb25zXCIgW3ZhbHVlXT1cImNvbmRpdGlvblwiIFt0ZXh0XT1cImdldENvbmRpdGlvbkZyaWVuZGx5TmFtZShjb25kaXRpb24pXCIgW3NlbGVjdGVkXT1cImlzQ29uZGl0aW9uU2VsZWN0ZWQoY29uZGl0aW9uKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX2ZpbHRlcmluZy1kcm9wZG93bi1pdGVtc1wiPlxuICAgICAgICAgICAgPGlneC1pY29uIGZhbWlseT1cImlteC1pY29uc1wiIFtuYW1lXT1cImdldENvbmRpdGlvbihjb25kaXRpb24pLmljb25OYW1lXCI+PC9pZ3gtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWd4LWdyaWRfX2ZpbHRlcmluZy1kcm9wZG93bi10ZXh0XCI+e3t0cmFuc2xhdGVDb25kaXRpb24oY29uZGl0aW9uKX19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2lneC1zZWxlY3QtaXRlbT5cbjwvaWd4LXNlbGVjdD5cblxuPGlneC1pbnB1dC1ncm91cCAjaW5wdXRHcm91cFZhbHVlcyB0eXBlPVwiYm94XCIgW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCI+XG4gICAgPGlucHV0XG4gICAgICAgICNpbnB1dFZhbHVlc1xuICAgICAgICBpZ3hJbnB1dFxuICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImlucHV0VmFsdWVQbGFjZWhvbGRlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJleHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb24gJiYgZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uLmlzVW5hcnlcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBbdmFsdWVdPVwiZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uc2VhcmNoVmFsXCJcbiAgICAgICAgKGlucHV0KT1cIm9uVmFsdWVzSW5wdXQoJGV2ZW50KVwiXG4gICAgLz5cbjwvaWd4LWlucHV0LWdyb3VwPlxuXG48YnV0dG9uIChjbGljayk9XCJvblJlbW92ZUJ1dHRvbkNsaWNrKClcIiBpZ3hCdXR0b249XCJpY29uXCIgW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCIgKm5nSWY9XCIhaXNTaW5nbGVcIj5cbiAgICA8aWd4LWljb24+Y2FuY2VsPC9pZ3gtaWNvbj5cbjwvYnV0dG9uPlxuXG48aWd4LWJ1dHRvbmdyb3VwICNsb2dpY09wZXJhdG9yQnV0dG9uR3JvdXBcbiAgICAqbmdJZj1cIiFpc0xhc3RcIj5cbiAgICA8c3BhbiBpZ3hCdXR0b24gW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgI2FuZEJ1dHRvblxuICAgICAgICAoa2V5ZG93bik9XCJvbkxvZ2ljT3BlcmF0b3JLZXlEb3duKCRldmVudCwgMClcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiZXhwcmVzc2lvblVJLmFmdGVyT3BlcmF0b3IgPT09IDBcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTG9naWNPcGVyYXRvckJ1dHRvbkNsaWNrZWQoJGV2ZW50LCAwKVwiPlxuICAgICAgICB7eyBncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9maWx0ZXJfb3BlcmF0b3JfYW5kIH19XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gaWd4QnV0dG9uIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICNvckJ1dHRvblxuICAgICAgICAoa2V5ZG93bik9XCJvbkxvZ2ljT3BlcmF0b3JLZXlEb3duKCRldmVudCwgMSlcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiZXhwcmVzc2lvblVJLmFmdGVyT3BlcmF0b3IgPT09IDFcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTG9naWNPcGVyYXRvckJ1dHRvbkNsaWNrZWQoJGV2ZW50LCAxKVwiPlxuICAgICAgICB7eyBncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9maWx0ZXJfb3BlcmF0b3Jfb3IgfX1cbiAgICA8L3NwYW4+XG48L2lneC1idXR0b25ncm91cD5cblxuPGRpdiAjb3ZlcmxheU91dGxldFxuICAgICBpZ3hPdmVybGF5T3V0bGV0XG4gICAgIChwb2ludGVyZG93bik9XCJvbk91dGxldFBvaW50ZXJEb3duKCRldmVudClcIj5cbjwvZGl2PlxuIl19
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3R5bGUtZGVmYXVsdC1leHByZXNzaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtZGVmYXVsdC1leHByZXNzaW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtZGVmYXVsdC1leHByZXNzaW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUtsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUl4RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtRUFBbUUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUs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RDdCLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4QnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9idXR0b25Hcm91cC9idXR0b25Hcm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRhdGFUeXBlLCBEYXRhVXRpbCB9IGZyb20gJy4uLy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLXV0aWwnO1xuaW1wb3J0IHsgSUZpbHRlcmluZ09wZXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctY29uZGl0aW9uJztcbmltcG9ydCB7IElCYXNlRXZlbnRBcmdzLCBQbGF0Zm9ybVV0aWwgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEZpbHRlcmluZ0xvZ2ljIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvZGVuc2l0eSc7XG5pbXBvcnQgeyBJZ3hTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy90b2dnbGUvdG9nZ2xlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFeHByZXNzaW9uVUkgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBDb2x1bW5UeXBlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcbmltcG9ydCB7IEFic29sdXRlU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9vdmVybGF5L3Njcm9sbC9hYnNvbHV0ZS1zY3JvbGwtc3RyYXRlZ3knO1xuaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb25pbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL292ZXJsYXkvcG9zaXRpb24vY29ubmVjdGVkLXBvc2l0aW9uaW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4SW5wdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2lucHV0L2lucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQtZ3JvdXAvaW5wdXQtZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IElneFNlbGVjdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zZWxlY3Qvc2VsZWN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5nSWYsIE5nRm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElneFByZWZpeERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvcHJlZml4L3ByZWZpeC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTG9naWNPcGVyYXRvckNoYW5nZWRBcmdzIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIHRhcmdldDogRXhwcmVzc2lvblVJO1xuICAgIG5ld1ZhbHVlOiBGaWx0ZXJpbmdMb2dpYztcbn1cblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnaWd4LWV4Y2VsLXN0eWxlLWRlZmF1bHQtZXhwcmVzc2lvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V4Y2VsLXN0eWxlLWRlZmF1bHQtZXhwcmVzc2lvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbSWd4U2VsZWN0Q29tcG9uZW50LCBJZ3hQcmVmaXhEaXJlY3RpdmUsIE5nSWYsIElneEljb25Db21wb25lbnQsIE5nRm9yLCBJZ3hTZWxlY3RJdGVtQ29tcG9uZW50LCBJZ3hJbnB1dEdyb3VwQ29tcG9uZW50LCBJZ3hJbnB1dERpcmVjdGl2ZSwgSWd4QnV0dG9uRGlyZWN0aXZlLCBJZ3hCdXR0b25Hcm91cENvbXBvbmVudCwgSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgSWd4RXhjZWxTdHlsZURlZmF1bHRFeHByZXNzaW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sdW1uOiBDb2x1bW5UeXBlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhwcmVzc2lvblVJOiBFeHByZXNzaW9uVUk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBleHByZXNzaW9uc0xpc3Q6IEFycmF5PEV4cHJlc3Npb25VST47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBncmlkOiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5RGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZXhwcmVzc2lvblJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEV4cHJlc3Npb25VST4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBsb2dpY09wZXJhdG9yQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUxvZ2ljT3BlcmF0b3JDaGFuZ2VkQXJncz4oKTtcblxuICAgIEBWaWV3Q2hpbGQoJ292ZXJsYXlPdXRsZXQnLCB7IHJlYWQ6IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBvdmVybGF5T3V0bGV0OiBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlO1xuXG4gICAgQFZpZXdDaGlsZCgnZHJvcGRvd25Db25kaXRpb25zJywgeyByZWFkOiBJZ3hTZWxlY3RDb21wb25lbnQsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBkcm9wZG93bkNvbmRpdGlvbnM6IElneFNlbGVjdENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ2xvZ2ljT3BlcmF0b3JCdXR0b25Hcm91cCcsIHsgcmVhZDogSWd4QnV0dG9uR3JvdXBDb21wb25lbnQgfSlcbiAgICBwcm90ZWN0ZWQgbG9naWNPcGVyYXRvckJ1dHRvbkdyb3VwOiBJZ3hCdXR0b25Hcm91cENvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0VmFsdWVzJywgeyByZWFkOiBJZ3hJbnB1dERpcmVjdGl2ZSwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGlucHV0VmFsdWVzRGlyZWN0aXZlOiBJZ3hJbnB1dERpcmVjdGl2ZTtcblxuICAgIHB1YmxpYyBkcm9wRG93bk92ZXJsYXlTZXR0aW5nczogT3ZlcmxheVNldHRpbmdzID0ge1xuICAgICAgICBzY3JvbGxTdHJhdGVneTogbmV3IEFic29sdXRlU2Nyb2xsU3RyYXRlZ3koKSxcbiAgICAgICAgbW9kYWw6IGZhbHNlLFxuICAgICAgICBjbG9zZU9uT3V0c2lkZUNsaWNrOiB0cnVlXG4gICAgfTtcblxuICAgIHB1YmxpYyBnZXQgaXNMYXN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uc0xpc3RbdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoIC0gMV0gPT09IHRoaXMuZXhwcmVzc2lvblVJO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNTaW5nbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb25zTGlzdC5sZW5ndGggPT09IDE7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb25kaXRpb25zUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5yZXNvdXJjZVN0cmluZ3NbJ2lneF9ncmlkX2ZpbHRlcl9jb25kaXRpb25fcGxhY2Vob2xkZXInXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlucHV0VmFsdWVQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJlc291cmNlU3RyaW5nc1snaWd4X2dyaWRfZmlsdGVyX3Jvd19wbGFjZWhvbGRlciddO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmNvbHVtbi5kYXRhVHlwZSkge1xuICAgICAgICAgICAgY2FzZSBHcmlkQ29sdW1uRGF0YVR5cGUuTnVtYmVyOlxuICAgICAgICAgICAgY2FzZSBHcmlkQ29sdW1uRGF0YVR5cGUuQ3VycmVuY3k6XG4gICAgICAgICAgICBjYXNlIEdyaWRDb2x1bW5EYXRhVHlwZS5QZXJjZW50OlxuICAgICAgICAgICAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcm90ZWN0ZWQgcGxhdGZvcm06IFBsYXRmb3JtVXRpbCkgeyB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbmRpdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5maWx0ZXJzLmNvbmRpdGlvbkxpc3QoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlucHV0VmFsdWVzRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRWYWx1ZXNEaXJlY3RpdmUubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRyb3BEb3duT3ZlcmxheVNldHRpbmdzLm91dGxldCA9IHRoaXMub3ZlcmxheU91dGxldDtcbiAgICAgICAgdGhpcy5kcm9wRG93bk92ZXJsYXlTZXR0aW5ncy50YXJnZXQgPSB0aGlzLmRyb3Bkb3duQ29uZGl0aW9ucy5pbnB1dEdyb3VwLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5kcm9wRG93bk92ZXJsYXlTZXR0aW5ncy5leGNsdWRlRnJvbU91dHNpZGVDbGljayA9IFt0aGlzLmRyb3Bkb3duQ29uZGl0aW9ucy5pbnB1dEdyb3VwLmVsZW1lbnQubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudF07XG4gICAgICAgIHRoaXMuZHJvcERvd25PdmVybGF5U2V0dGluZ3MucG9zaXRpb25TdHJhdGVneSA9IG5ldyBDb25uZWN0ZWRQb3NpdGlvbmluZ1N0cmF0ZWd5KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGZvY3VzKCkge1xuICAgICAgICAvLyB1c2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHRvIGZvY3VzIHRoZSB2YWx1ZXMgaW5wdXQgYmVjYXVzZSB3aGVuIGluaXRpYWxpemluZyB0aGUgY29tcG9uZW50XG4gICAgICAgIC8vIGRhdGVwaWNrZXIncyBpbnB1dCBncm91cCBpcyBub3QgeWV0IGZ1bGx5IGluaXRpYWxpemVkXG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLmlucHV0VmFsdWVzRWxlbWVudC5mb2N1cygpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNsYXRlQ29uZGl0aW9uKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJlc291cmNlU3RyaW5nc1tgaWd4X2dyaWRfZmlsdGVyXyR7dGhpcy5nZXRDb25kaXRpb24odmFsdWUpLm5hbWV9YF0gfHwgdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEljb25OYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5kYXRhVHlwZSA9PT0gR3JpZENvbHVtbkRhdGFUeXBlLkJvb2xlYW4gJiYgdGhpcy5leHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb24gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldENvbmRpdGlvbih0aGlzLmNvbmRpdGlvbnNbMF0pLmljb25OYW1lO1xuICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLmV4cHJlc3Npb25VSS5leHByZXNzaW9uLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuICdmaWx0ZXJfbGlzdCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5leHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb24uaWNvbk5hbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDb25kaXRpb25TZWxlY3RlZChjb25kaXRpb25OYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uICYmIHRoaXMuZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uLm5hbWUgPT09IGNvbmRpdGlvbk5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ29uZGl0aW9uc0NoYW5nZWQoZXZlbnRBcmdzOiBhbnkpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSAoZXZlbnRBcmdzLm5ld1NlbGVjdGlvbiBhcyBJZ3hTZWxlY3RDb21wb25lbnQpLnZhbHVlO1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25VSS5leHByZXNzaW9uLmNvbmRpdGlvbiA9IHRoaXMuZ2V0Q29uZGl0aW9uKHZhbHVlKTtcblxuICAgICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbmRpdGlvbih2YWx1ZTogc3RyaW5nKTogSUZpbHRlcmluZ09wZXJhdGlvbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5maWx0ZXJzLmNvbmRpdGlvbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbmRpdGlvbkZyaWVuZGx5TmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJlc291cmNlU3RyaW5nc1tgaWd4X2dyaWRfZmlsdGVyXyR7bmFtZX1gXSB8fCBuYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblZhbHVlc0lucHV0KGV2ZW50QXJncykge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25VSS5leHByZXNzaW9uLnNlYXJjaFZhbCA9IERhdGFVdGlsLnBhcnNlVmFsdWUodGhpcy5jb2x1bW4uZGF0YVR5cGUsIGV2ZW50QXJncy50YXJnZXQudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkxvZ2ljT3BlcmF0b3JCdXR0b25DbGlja2VkKGV2ZW50QXJncywgYnV0dG9uSW5kZXg6IG51bWJlcikge1xuICAgICAgICBpZiAodGhpcy5sb2dpY09wZXJhdG9yQnV0dG9uR3JvdXAuc2VsZWN0ZWRCdXR0b25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZXZlbnRBcmdzLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5sb2dpY09wZXJhdG9yQnV0dG9uR3JvdXAuc2VsZWN0QnV0dG9uKGJ1dHRvbkluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9naWNPcGVyYXRvckNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLmV4cHJlc3Npb25VSSxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZTogYnV0dG9uSW5kZXggYXMgRmlsdGVyaW5nTG9naWNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uTG9naWNPcGVyYXRvcktleURvd24oZXZlbnRBcmdzOiBLZXlib2FyZEV2ZW50LCBidXR0b25JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGlmIChldmVudEFyZ3Mua2V5ID09PSB0aGlzLnBsYXRmb3JtLktFWU1BUC5FTlRFUikge1xuICAgICAgICAgICAgdGhpcy5sb2dpY09wZXJhdG9yQnV0dG9uR3JvdXAuc2VsZWN0QnV0dG9uKGJ1dHRvbkluZGV4KTtcbiAgICAgICAgICAgIHRoaXMubG9naWNPcGVyYXRvckNoYW5nZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLmV4cHJlc3Npb25VSSxcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZTogYnV0dG9uSW5kZXggYXMgRmlsdGVyaW5nTG9naWNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uUmVtb3ZlQnV0dG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvblJlbW92ZWQuZW1pdCh0aGlzLmV4cHJlc3Npb25VSSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uT3V0bGV0UG9pbnRlckRvd24oZXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG59XG4iLCI8aWd4LXNlbGVjdCAjZHJvcGRvd25Db25kaXRpb25zXG4gICAgICAgIHR5cGU9XCJib3hcIlxuICAgICAgICBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZGl0aW9uc1BsYWNlaG9sZGVyXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5naW5nKT1cIm9uQ29uZGl0aW9uc0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIFtvdmVybGF5U2V0dGluZ3NdPVwiZHJvcERvd25PdmVybGF5U2V0dGluZ3NcIj5cbiAgICA8aWd4LXByZWZpeD5cbiAgICAgICAgPGlneC1pY29uICpuZ0lmPVwiZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uXCIgZmFtaWx5PVwiaW14LWljb25zXCIgW25hbWVdPVwiZ2V0SWNvbk5hbWUoKVwiPjwvaWd4LWljb24+XG4gICAgICAgIDxpZ3gtaWNvbiAqbmdJZj1cIiFleHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb25cIj5maWx0ZXJfbGlzdDwvaWd4LWljb24+XG4gICAgPC9pZ3gtcHJlZml4PlxuICAgIDxpZ3gtc2VsZWN0LWl0ZW0gKm5nRm9yPVwibGV0IGNvbmRpdGlvbiBvZiBjb25kaXRpb25zXCIgW3ZhbHVlXT1cImNvbmRpdGlvblwiIFt0ZXh0XT1cImdldENvbmRpdGlvbkZyaWVuZGx5TmFtZShjb25kaXRpb24pXCIgW3NlbGVjdGVkXT1cImlzQ29uZGl0aW9uU2VsZWN0ZWQoY29uZGl0aW9uKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX2ZpbHRlcmluZy1kcm9wZG93bi1pdGVtc1wiPlxuICAgICAgICAgICAgPGlneC1pY29uIGZhbWlseT1cImlteC1pY29uc1wiIFtuYW1lXT1cImdldENvbmRpdGlvbihjb25kaXRpb24pLmljb25OYW1lXCI+PC9pZ3gtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaWd4LWdyaWRfX2ZpbHRlcmluZy1kcm9wZG93bi10ZXh0XCI+e3t0cmFuc2xhdGVDb25kaXRpb24oY29uZGl0aW9uKX19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2lneC1zZWxlY3QtaXRlbT5cbjwvaWd4LXNlbGVjdD5cblxuPGlneC1pbnB1dC1ncm91cCAjaW5wdXRHcm91cFZhbHVlcyB0eXBlPVwiYm94XCIgW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCI+XG4gICAgPGlucHV0XG4gICAgICAgICNpbnB1dFZhbHVlc1xuICAgICAgICBpZ3hJbnB1dFxuICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImlucHV0VmFsdWVQbGFjZWhvbGRlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJleHByZXNzaW9uVUkuZXhwcmVzc2lvbi5jb25kaXRpb24gJiYgZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uY29uZGl0aW9uLmlzVW5hcnlcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBbdmFsdWVdPVwiZXhwcmVzc2lvblVJLmV4cHJlc3Npb24uc2VhcmNoVmFsXCJcbiAgICAgICAgKGlucHV0KT1cIm9uVmFsdWVzSW5wdXQoJGV2ZW50KVwiXG4gICAgLz5cbjwvaWd4LWlucHV0LWdyb3VwPlxuXG48YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib25SZW1vdmVCdXR0b25DbGljaygpXCIgaWd4QnV0dG9uPVwiaWNvblwiIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiICpuZ0lmPVwiIWlzU2luZ2xlXCI+XG4gICAgPGlneC1pY29uPmNhbmNlbDwvaWd4LWljb24+XG48L2J1dHRvbj5cblxuPGlneC1idXR0b25ncm91cCAjbG9naWNPcGVyYXRvckJ1dHRvbkdyb3VwXG4gICAgKm5nSWY9XCIhaXNMYXN0XCI+XG4gICAgPHNwYW4gaWd4QnV0dG9uIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICNhbmRCdXR0b25cbiAgICAgICAgKGtleWRvd24pPVwib25Mb2dpY09wZXJhdG9yS2V5RG93bigkZXZlbnQsIDApXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cImV4cHJlc3Npb25VSS5hZnRlck9wZXJhdG9yID09PSAwXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJvbkxvZ2ljT3BlcmF0b3JCdXR0b25DbGlja2VkKCRldmVudCwgMClcIj5cbiAgICAgICAge3sgZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZmlsdGVyX29wZXJhdG9yX2FuZCB9fVxuICAgIDwvc3Bhbj5cblxuICAgIDxzcGFuIGlneEJ1dHRvbiBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAjb3JCdXR0b25cbiAgICAgICAgKGtleWRvd24pPVwib25Mb2dpY09wZXJhdG9yS2V5RG93bigkZXZlbnQsIDEpXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cImV4cHJlc3Npb25VSS5hZnRlck9wZXJhdG9yID09PSAxXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJvbkxvZ2ljT3BlcmF0b3JCdXR0b25DbGlja2VkKCRldmVudCwgMSlcIj5cbiAgICAgICAge3sgZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZmlsdGVyX29wZXJhdG9yX29yIH19XG4gICAgPC9zcGFuPlxuPC9pZ3gtYnV0dG9uZ3JvdXA+XG5cbjxkaXYgI292ZXJsYXlPdXRsZXRcbiAgICAgaWd4T3ZlcmxheU91dGxldFxuICAgICAocG9pbnRlcmRvd24pPVwib25PdXRsZXRQb2ludGVyRG93bigkZXZlbnQpXCI+XG48L2Rpdj5cbiJdfQ==
@@ -12,11 +12,11 @@ export class IgxExcelStyleHeaderComponent {
12
12
  this.esf = esf;
13
13
  }
14
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxExcelStyleHeaderComponent, deps: [{ token: i1.BaseFilteringComponent }], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxExcelStyleHeaderComponent, isStandalone: true, selector: "igx-excel-style-header", inputs: { showPinning: "showPinning", showSelecting: "showSelecting", showHiding: "showHiding" }, ngImport: i0, template: "<header *ngIf=\"esf.column\"\n class=\"igx-excel-filter__menu-header\">\n <h4>{{ esf.column.header || esf.column.field }}</h4>\n <div class=\"igx-excel-filter__menu-header-actions\">\n <button *ngIf=\"showSelecting\"\n igxButton=\"icon\"\n (click)=\"esf.onSelect()\"\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n [attr.aria-label]=\"esf.column.selected ? esf.grid.resourceStrings.igx_grid_excel_deselect : esf.grid.resourceStrings.igx_grid_excel_select\"\n >\n <igx-icon>done</igx-icon>\n </button>\n <button *ngIf=\"showPinning\"\n igxButton=\"icon\"\n (click)=\"esf.onPin()\"\n [attr.aria-label]=\"esf.column.pinned ? esf.grid.resourceStrings.igx_grid_excel_unpin : esf.grid.resourceStrings.igx_grid_excel_pin\"\n >\n <igx-icon family=\"imx-icons\" [name]=\"esf.column.pinned ? 'unpin-left' : 'pin-left'\"></igx-icon>\n </button>\n <button *ngIf=\"showHiding\"\n igxButton=\"icon\"\n (click)=\"esf.onHideToggle()\"\n [attr.aria-label]=\"esf.column.hidden ? esf.grid.resourceStrings.igx_grid_excel_show : esf.grid.resourceStrings.igx_grid_excel_hide\"\n >\n <igx-icon>{{ esf.column.hidden ? 'visibility' : 'visibility_off' }}</igx-icon>\n </button>\n </div>\n</header>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }] }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IgxExcelStyleHeaderComponent, isStandalone: true, selector: "igx-excel-style-header", inputs: { showPinning: "showPinning", showSelecting: "showSelecting", showHiding: "showHiding" }, ngImport: i0, template: "<header *ngIf=\"esf.column\"\n class=\"igx-excel-filter__menu-header\">\n <h4>{{ esf.column.header || esf.column.field }}</h4>\n <div class=\"igx-excel-filter__menu-header-actions\">\n <button *ngIf=\"showSelecting\"\n type=\"button\"\n igxButton=\"icon\"\n (click)=\"esf.onSelect()\"\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n [attr.aria-label]=\"esf.column.selected ? esf.grid.resourceStrings.igx_grid_excel_deselect : esf.grid.resourceStrings.igx_grid_excel_select\"\n >\n <igx-icon>done</igx-icon>\n </button>\n <button *ngIf=\"showPinning\"\n type=\"button\"\n igxButton=\"icon\"\n (click)=\"esf.onPin()\"\n [attr.aria-label]=\"esf.column.pinned ? esf.grid.resourceStrings.igx_grid_excel_unpin : esf.grid.resourceStrings.igx_grid_excel_pin\"\n >\n <igx-icon family=\"imx-icons\" [name]=\"esf.column.pinned ? 'unpin-left' : 'pin-left'\"></igx-icon>\n </button>\n <button *ngIf=\"showHiding\"\n type=\"button\"\n igxButton=\"icon\"\n (click)=\"esf.onHideToggle()\"\n [attr.aria-label]=\"esf.column.hidden ? esf.grid.resourceStrings.igx_grid_excel_show : esf.grid.resourceStrings.igx_grid_excel_hide\"\n >\n <igx-icon>{{ esf.column.hidden ? 'visibility' : 'visibility_off' }}</igx-icon>\n </button>\n </div>\n</header>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }] }); }
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IgxExcelStyleHeaderComponent, decorators: [{
18
18
  type: Component,
19
- args: [{ selector: 'igx-excel-style-header', standalone: true, imports: [NgIf, IgxButtonDirective, NgClass, IgxIconComponent], template: "<header *ngIf=\"esf.column\"\n class=\"igx-excel-filter__menu-header\">\n <h4>{{ esf.column.header || esf.column.field }}</h4>\n <div class=\"igx-excel-filter__menu-header-actions\">\n <button *ngIf=\"showSelecting\"\n igxButton=\"icon\"\n (click)=\"esf.onSelect()\"\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n [attr.aria-label]=\"esf.column.selected ? esf.grid.resourceStrings.igx_grid_excel_deselect : esf.grid.resourceStrings.igx_grid_excel_select\"\n >\n <igx-icon>done</igx-icon>\n </button>\n <button *ngIf=\"showPinning\"\n igxButton=\"icon\"\n (click)=\"esf.onPin()\"\n [attr.aria-label]=\"esf.column.pinned ? esf.grid.resourceStrings.igx_grid_excel_unpin : esf.grid.resourceStrings.igx_grid_excel_pin\"\n >\n <igx-icon family=\"imx-icons\" [name]=\"esf.column.pinned ? 'unpin-left' : 'pin-left'\"></igx-icon>\n </button>\n <button *ngIf=\"showHiding\"\n igxButton=\"icon\"\n (click)=\"esf.onHideToggle()\"\n [attr.aria-label]=\"esf.column.hidden ? esf.grid.resourceStrings.igx_grid_excel_show : esf.grid.resourceStrings.igx_grid_excel_hide\"\n >\n <igx-icon>{{ esf.column.hidden ? 'visibility' : 'visibility_off' }}</igx-icon>\n </button>\n </div>\n</header>\n" }]
19
+ args: [{ selector: 'igx-excel-style-header', standalone: true, imports: [NgIf, IgxButtonDirective, NgClass, IgxIconComponent], template: "<header *ngIf=\"esf.column\"\n class=\"igx-excel-filter__menu-header\">\n <h4>{{ esf.column.header || esf.column.field }}</h4>\n <div class=\"igx-excel-filter__menu-header-actions\">\n <button *ngIf=\"showSelecting\"\n type=\"button\"\n igxButton=\"icon\"\n (click)=\"esf.onSelect()\"\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n [attr.aria-label]=\"esf.column.selected ? esf.grid.resourceStrings.igx_grid_excel_deselect : esf.grid.resourceStrings.igx_grid_excel_select\"\n >\n <igx-icon>done</igx-icon>\n </button>\n <button *ngIf=\"showPinning\"\n type=\"button\"\n igxButton=\"icon\"\n (click)=\"esf.onPin()\"\n [attr.aria-label]=\"esf.column.pinned ? esf.grid.resourceStrings.igx_grid_excel_unpin : esf.grid.resourceStrings.igx_grid_excel_pin\"\n >\n <igx-icon family=\"imx-icons\" [name]=\"esf.column.pinned ? 'unpin-left' : 'pin-left'\"></igx-icon>\n </button>\n <button *ngIf=\"showHiding\"\n type=\"button\"\n igxButton=\"icon\"\n (click)=\"esf.onHideToggle()\"\n [attr.aria-label]=\"esf.column.hidden ? esf.grid.resourceStrings.igx_grid_excel_show : esf.grid.resourceStrings.igx_grid_excel_hide\"\n >\n <igx-icon>{{ esf.column.hidden ? 'visibility' : 'visibility_off' }}</igx-icon>\n </button>\n </div>\n</header>\n" }]
20
20
  }], ctorParameters: function () { return [{ type: i1.BaseFilteringComponent }]; }, propDecorators: { showPinning: [{
21
21
  type: Input
22
22
  }], showSelecting: [{
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImpor
24
24
  }], showHiding: [{
25
25
  type: Input
26
26
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3R5bGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUVoRDs7R0FFRztBQU9ILE1BQU0sT0FBTyw0QkFBNEI7SUFxQ3JDLFlBQW1CLEdBQTJCO1FBQTNCLFFBQUcsR0FBSCxHQUFHLENBQXdCO0lBQUksQ0FBQzs4R0FyQzFDLDRCQUE0QjtrR0FBNUIsNEJBQTRCLG9MQ2Z6Qyx1N0NBNEJBLDRDRGZjLElBQUksNkZBQUUsa0JBQWtCLHdNQUFFLE9BQU8sb0ZBQUUsZ0JBQWdCOzsyRkFFcEQsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNJLHdCQUF3QixjQUV0QixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDOzZHQWF2RCxXQUFXO3NCQURqQixLQUFLO2dCQWFDLGFBQWE7c0JBRG5CLEtBQUs7Z0JBYUMsVUFBVTtzQkFEaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VGaWx0ZXJpbmdDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UtZmlsdGVyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2J1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IE5nSWYsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEEgY29tcG9uZW50IHVzZWQgZm9yIHByZXNlbnRpbmcgRXhjZWwgc3R5bGUgaGVhZGVyIFVJLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1leGNlbC1zdHlsZS1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9leGNlbC1zdHlsZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW05nSWYsIElneEJ1dHRvbkRpcmVjdGl2ZSwgTmdDbGFzcywgSWd4SWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSWd4RXhjZWxTdHlsZUhlYWRlckNvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogU2V0cyB3aGV0aGVyIHRoZSBjb2x1bW4gcGlubmluZyBpY29uIHNob3VsZCBiZSBzaG93biBpbiB0aGUgaGVhZGVyLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZXhjZWwtc3R5bGUtaGVhZGVyIFtzaG93UGlubmluZ109XCJ0cnVlXCI+PC9pZ3gtZXhjZWwtc3R5bGUtaGVhZGVyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNob3dQaW5uaW5nOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB3aGV0aGVyIHRoZSBjb2x1bW4gc2VsZWN0aW5nIGljb24gc2hvdWxkIGJlIHNob3duIGluIHRoZSBoZWFkZXIuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1leGNlbC1zdHlsZS1oZWFkZXIgW3Nob3dTZWxlY3RpbmddPVwidHJ1ZVwiPjwvaWd4LWV4Y2VsLXN0eWxlLWhlYWRlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93U2VsZWN0aW5nOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB3aGV0aGVyIHRoZSBjb2x1bW4gaGlkaW5nIGljb24gc2hvdWxkIGJlIHNob3duIGluIHRoZSBoZWFkZXIuXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1leGNlbC1zdHlsZS1oZWFkZXIgW3Nob3dIaWRpbmddPVwidHJ1ZVwiPjwvaWd4LWV4Y2VsLXN0eWxlLWhlYWRlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93SGlkaW5nOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGVzZjogQmFzZUZpbHRlcmluZ0NvbXBvbmVudCkgeyB9XG59XG4iLCI8aGVhZGVyICpuZ0lmPVwiZXNmLmNvbHVtblwiXG4gICAgICAgIGNsYXNzPVwiaWd4LWV4Y2VsLWZpbHRlcl9fbWVudS1oZWFkZXJcIj5cbiAgICA8aDQ+e3sgZXNmLmNvbHVtbi5oZWFkZXIgfHwgZXNmLmNvbHVtbi5maWVsZCB9fTwvaDQ+XG4gICAgPGRpdiBjbGFzcz1cImlneC1leGNlbC1maWx0ZXJfX21lbnUtaGVhZGVyLWFjdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dTZWxlY3RpbmdcIlxuICAgICAgICAgICAgaWd4QnV0dG9uPVwiaWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZXNmLm9uU2VsZWN0KClcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiZXNmLmNvbHVtbi5zZWxlY3RlZCA/ICdpZ3gtZXhjZWwtZmlsdGVyX19hY3Rpb25zLXNlbGVjdGVkJyA6ICdpZ3gtZXhjZWwtZmlsdGVyX19hY3Rpb25zLXNlbGVjdCdcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJlc2YuY29sdW1uLnNlbGVjdGVkID8gZXNmLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX2Rlc2VsZWN0IDogZXNmLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX3NlbGVjdFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpZ3gtaWNvbj5kb25lPC9pZ3gtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93UGlubmluZ1wiXG4gICAgICAgICAgICBpZ3hCdXR0b249XCJpY29uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJlc2Yub25QaW4oKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImVzZi5jb2x1bW4ucGlubmVkID8gZXNmLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX3VucGluIDogZXNmLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX3BpblwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJpbXgtaWNvbnNcIiBbbmFtZV09XCJlc2YuY29sdW1uLnBpbm5lZCA/ICd1bnBpbi1sZWZ0JyA6ICdwaW4tbGVmdCdcIj48L2lneC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dIaWRpbmdcIlxuICAgICAgICAgICAgaWd4QnV0dG9uPVwiaWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZXNmLm9uSGlkZVRvZ2dsZSgpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZXNmLmNvbHVtbi5oaWRkZW4gPyBlc2YuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZXhjZWxfc2hvdyA6IGVzZi5ncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9leGNlbF9oaWRlXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGlneC1pY29uPnt7IGVzZi5jb2x1bW4uaGlkZGVuID8gJ3Zpc2liaWxpdHknIDogJ3Zpc2liaWxpdHlfb2ZmJyB9fTwvaWd4LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9oZWFkZXI+XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3R5bGUtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9maWx0ZXJpbmcvZXhjZWwtc3R5bGUvZXhjZWwtc3R5bGUtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUVoRDs7R0FFRztBQU9ILE1BQU0sT0FBTyw0QkFBNEI7SUFxQ3JDLFlBQW1CLEdBQTJCO1FBQTNCLFFBQUcsR0FBSCxHQUFHLENBQXdCO0lBQUksQ0FBQzs4R0FyQzFDLDRCQUE0QjtrR0FBNUIsNEJBQTRCLG9MQ2Z6Qyw4Z0RBK0JBLDRDRGxCYyxJQUFJLDZGQUFFLGtCQUFrQix3TUFBRSxPQUFPLG9GQUFFLGdCQUFnQjs7MkZBRXBELDRCQUE0QjtrQkFOeEMsU0FBUzsrQkFDSSx3QkFBd0IsY0FFdEIsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQzs2R0FhdkQsV0FBVztzQkFEakIsS0FBSztnQkFhQyxhQUFhO3NCQURuQixLQUFLO2dCQWFDLFVBQVU7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlRmlsdGVyaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLWZpbHRlcmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4QnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9idXR0b24vYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB1c2VkIGZvciBwcmVzZW50aW5nIEV4Y2VsIHN0eWxlIGhlYWRlciBVSS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZXhjZWwtc3R5bGUtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXhjZWwtc3R5bGUtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBJZ3hCdXR0b25EaXJlY3RpdmUsIE5nQ2xhc3MsIElneEljb25Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIElneEV4Y2VsU3R5bGVIZWFkZXJDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIFNldHMgd2hldGhlciB0aGUgY29sdW1uIHBpbm5pbmcgaWNvbiBzaG91bGQgYmUgc2hvd24gaW4gdGhlIGhlYWRlci5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWV4Y2VsLXN0eWxlLWhlYWRlciBbc2hvd1Bpbm5pbmddPVwidHJ1ZVwiPjwvaWd4LWV4Y2VsLXN0eWxlLWhlYWRlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaG93UGlubmluZzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgd2hldGhlciB0aGUgY29sdW1uIHNlbGVjdGluZyBpY29uIHNob3VsZCBiZSBzaG93biBpbiB0aGUgaGVhZGVyLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZXhjZWwtc3R5bGUtaGVhZGVyIFtzaG93U2VsZWN0aW5nXT1cInRydWVcIj48L2lneC1leGNlbC1zdHlsZS1oZWFkZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd1NlbGVjdGluZzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgd2hldGhlciB0aGUgY29sdW1uIGhpZGluZyBpY29uIHNob3VsZCBiZSBzaG93biBpbiB0aGUgaGVhZGVyLlxuICAgICAqIERlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZXhjZWwtc3R5bGUtaGVhZGVyIFtzaG93SGlkaW5nXT1cInRydWVcIj48L2lneC1leGNlbC1zdHlsZS1oZWFkZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2hvd0hpZGluZzogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlc2Y6IEJhc2VGaWx0ZXJpbmdDb21wb25lbnQpIHsgfVxufVxuIiwiPGhlYWRlciAqbmdJZj1cImVzZi5jb2x1bW5cIlxuICAgICAgICBjbGFzcz1cImlneC1leGNlbC1maWx0ZXJfX21lbnUtaGVhZGVyXCI+XG4gICAgPGg0Pnt7IGVzZi5jb2x1bW4uaGVhZGVyIHx8IGVzZi5jb2x1bW4uZmllbGQgfX08L2g0PlxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtZXhjZWwtZmlsdGVyX19tZW51LWhlYWRlci1hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93U2VsZWN0aW5nXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgaWd4QnV0dG9uPVwiaWNvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZXNmLm9uU2VsZWN0KClcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiZXNmLmNvbHVtbi5zZWxlY3RlZCA/ICdpZ3gtZXhjZWwtZmlsdGVyX19hY3Rpb25zLXNlbGVjdGVkJyA6ICdpZ3gtZXhjZWwtZmlsdGVyX19hY3Rpb25zLXNlbGVjdCdcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJlc2YuY29sdW1uLnNlbGVjdGVkID8gZXNmLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX2Rlc2VsZWN0IDogZXNmLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX3NlbGVjdFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpZ3gtaWNvbj5kb25lPC9pZ3gtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93UGlubmluZ1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGlneEJ1dHRvbj1cImljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVzZi5vblBpbigpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZXNmLmNvbHVtbi5waW5uZWQgPyBlc2YuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZXhjZWxfdW5waW4gOiBlc2YuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZXhjZWxfcGluXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGlneC1pY29uIGZhbWlseT1cImlteC1pY29uc1wiIFtuYW1lXT1cImVzZi5jb2x1bW4ucGlubmVkID8gJ3VucGluLWxlZnQnIDogJ3Bpbi1sZWZ0J1wiPjwvaWd4LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uICpuZ0lmPVwic2hvd0hpZGluZ1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGlneEJ1dHRvbj1cImljb25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVzZi5vbkhpZGVUb2dnbGUoKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImVzZi5jb2x1bW4uaGlkZGVuID8gZXNmLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2V4Y2VsX3Nob3cgOiBlc2YuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZXhjZWxfaGlkZVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpZ3gtaWNvbj57eyBlc2YuY29sdW1uLmhpZGRlbiA/ICd2aXNpYmlsaXR5JyA6ICd2aXNpYmlsaXR5X29mZicgfX08L2lneC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvaGVhZGVyPlxuIl19