igniteui-angular-extras 15.0.11 → 15.0.16

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.
@@ -1,9 +1,9 @@
1
1
  import { Directive, EventEmitter, Inject, Input, Output } from '@angular/core';
2
- import { IgxGridComponent } from '@infragistics/igniteui-angular';
2
+ import { IgxGridComponent } from 'igniteui-angular';
3
3
  import { Subject } from 'rxjs';
4
4
  import { takeUntil } from 'rxjs/operators';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "@infragistics/igniteui-angular";
6
+ import * as i1 from "igniteui-angular";
7
7
  export var ConditionalFormattingType;
8
8
  (function (ConditionalFormattingType) {
9
9
  ConditionalFormattingType["dataBars"] = "Data Bars";
@@ -291,9 +291,9 @@ export class IgxConditionalFormattingDirective {
291
291
  return result;
292
292
  }
293
293
  }
294
- IgxConditionalFormattingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxConditionalFormattingDirective, deps: [{ token: IgxGridComponent }], target: i0.ɵɵFactoryTarget.Directive });
295
- IgxConditionalFormattingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: IgxConditionalFormattingDirective, selector: "[igxConditionalFormatting]", inputs: { formatter: "formatter", formatColors: "formatColors" }, outputs: { onFormattersReady: "onFormattersReady" }, ngImport: i0 });
296
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxConditionalFormattingDirective, decorators: [{
294
+ IgxConditionalFormattingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxConditionalFormattingDirective, deps: [{ token: IgxGridComponent }], target: i0.ɵɵFactoryTarget.Directive });
295
+ IgxConditionalFormattingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: IgxConditionalFormattingDirective, selector: "[igxConditionalFormatting]", inputs: { formatter: "formatter", formatColors: "formatColors" }, outputs: { onFormattersReady: "onFormattersReady" }, ngImport: i0 });
296
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxConditionalFormattingDirective, decorators: [{
297
297
  type: Directive,
298
298
  args: [{
299
299
  selector: '[igxConditionalFormatting]'
@@ -308,4 +308,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
308
308
  }], onFormattersReady: [{
309
309
  type: Output
310
310
  }] } });
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uYWwtZm9ybWF0dGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyLWV4dHJhcy9zcmMvbGliL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtZm9ybWF0dGluZy9jb25kaXRpb25hbC1mb3JtYXR0aW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUUzQyxNQUFNLENBQU4sSUFBWSx5QkFRWDtBQVJELFdBQVkseUJBQXlCO0lBQ2pDLG1EQUFzQixDQUFBO0lBQ3RCLHVEQUEwQixDQUFBO0lBQzFCLDZDQUFnQixDQUFBO0lBQ2hCLDJEQUE4QixDQUFBO0lBQzlCLHdEQUEyQixDQUFBO0lBQzNCLHFEQUF3QixDQUFBO0lBQ3hCLDRDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQVJXLHlCQUF5QixLQUF6Qix5QkFBeUIsUUFRcEM7QUFZRCxNQUFNLE9BQU8saUNBQWlDO0lBSTFDLElBQ1csWUFBWSxDQUFDLEdBQWtCO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUF5SEQsSUFBWSxZQUFZO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUFFLElBQUksQ0FBQyxhQUFhLEdB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O1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLFVBQVUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsR0FBRyxJQUFJO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxHQUFHLEVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUFXO1FBQ3ZCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7OEhBcFNRLGlDQUFpQyxrQkFtS3RCLGdCQUFnQjtrSEFuSzNCLGlDQUFpQzsyRkFBakMsaUNBQWlDO2tCQUg3QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7aUJBQ3pDOzswQkFvS2dCLE1BQU07MkJBQUMsZ0JBQWdCOzRDQWpLN0IsU0FBUztzQkFEZixLQUFLO2dCQUlLLFlBQVk7c0JBRHRCLEtBQUs7Z0JBU0MsaUJBQWlCO3NCQUR2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElneEdyaWRDb21wb25lbnQgfSBmcm9tICdAaW5mcmFnaXN0aWNzL2lnbml0ZXVpLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBlbnVtIENvbmRpdGlvbmFsRm9ybWF0dGluZ1R5cGUge1xyXG4gICAgZGF0YUJhcnMgPSAnRGF0YSBCYXJzJyxcclxuICAgIGNvbG9yU2NhbGUgPSAnQ29sb3IgU2NhbGUnLFxyXG4gICAgdG9wMTAgPSAnVG9wIDEwJyxcclxuICAgIHRleHRDb250YWlucyA9ICdUZXh0IENvbnRhaW5zJyxcclxuICAgIHNpbmdsZSA9ICdEdXBsaWNhdGUgVmFsdWVzJyxcclxuICAgIHVuaXF1ZSA9ICdVbmlxdWUgVmFsdWVzJyxcclxuICAgIGVtcHR5ID0gJ0VtcHR5J1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSUZvcm1hdENvbG9ycyB7XHJcbiAgICBzdWNjZXNzOiBzdHJpbmc7XHJcbiAgICBlcnJvcjogc3RyaW5nO1xyXG4gICAgaW5mbzogc3RyaW5nO1xyXG4gICAgd2FybmluZzogc3RyaW5nO1xyXG4gICAgdGV4dDogc3RyaW5nO1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2lneENvbmRpdGlvbmFsRm9ybWF0dGluZ10nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ3hDb25kaXRpb25hbEZvcm1hdHRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtYXR0ZXI6IHN0cmluZyB8IENvbmRpdGlvbmFsRm9ybWF0dGluZ1R5cGU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgZm9ybWF0Q29sb3JzKHZhbDogSUZvcm1hdENvbG9ycykgIHtcclxuICAgICAgICB0aGlzLl9mb3JtYXRDb2xvcnMgPSB2YWw7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1hdENvbG9ycygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0Q29sb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIG9uRm9ybWF0dGVyc1JlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuXHJcbiAgICBwdWJsaWMgY29sb3JTY2FsZSA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb3dUcmVzaG9sZFZhbHVlID49IGNlbGxWYWx1ZSA/IHRoaXMuZm9ybWF0Q29sb3JzLmVycm9yIDpcclxuICAgICAgICAgICAgICAgIHRoaXMubWlkZGxlVHJlc2hvbGRWYWx1ZSA+PSBjZWxsVmFsdWUgPyB0aGlzLmZvcm1hdENvbG9ycy53YXJuaW5nIDogIHRoaXMuZm9ybWF0Q29sb3JzLnN1Y2Nlc3M7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZGF0YUJhcnMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZEltYWdlOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoISh0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgY29uc3QgdHJlc2hvbGQgPSB0aGlzLnRocmVzaG9sZDtcclxuICAgICAgICAgICAgbGV0IGdyYWRpZW50UGVyY2VudHM7XHJcbiAgICAgICAgICAgIGlmIChjZWxsVmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuZWdhdGl2ZVN0YXJ0aW5nUG9pbnQgPSAxMDAgLSB0cmVzaG9sZDtcclxuICAgICAgICAgICAgICAgIGdyYWRpZW50UGVyY2VudHMgPSB0aGlzLmdldE5lZ2F0aXZlUGVyY2VudGFnZShjZWxsVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgdHJhbnNwYXJlbnQgMCUgJHtuZWdhdGl2ZVN0YXJ0aW5nUG9pbnR9JSxcclxuICAgICAgICAgICAgICAgICAgICAkeyB0aGlzLmZvcm1hdENvbG9ycy5lcnJvcn0gJHtuZWdhdGl2ZVN0YXJ0aW5nUG9pbnR9JSAke25lZ2F0aXZlU3RhcnRpbmdQb2ludCArIGdyYWRpZW50UGVyY2VudHN9JSxcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAke2dyYWRpZW50UGVyY2VudHN9JSAxMDAlKWA7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBncmFkaWVudFBlcmNlbnRzID0gdGhpcy5nZXRQb3NpdGl2ZVBlcmNlbnRhZ2UoY2VsbFZhbHVlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBgbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCAwJSAke3RyZXNob2xkfSUsXHJcbiAgICAgICAgICAgICAgICAgICAgJHsgdGhpcy5mb3JtYXRDb2xvcnMuc3VjY2Vzc30gJHt0cmVzaG9sZH0lICR7dHJlc2hvbGQgKyBncmFkaWVudFBlcmNlbnRzfSUsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgJHt0cmVzaG9sZCArIGdyYWRpZW50UGVyY2VudHN9JSAxMDAlKWA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGJhY2tncm91bmRTaXplOiAnMTAwJSA4MCUnLFxyXG4gICAgICAgIGJhY2tncm91bmRSZXBlYXQ6ICduby1yZXBlYXQnLFxyXG4gICAgICAgIGJhY2tncm91bmRQb3NpdGlvblk6ICdjZW50ZXInXHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyB0b3AxMFBlcmNlbnQgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgJiYgdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKVxyXG4gICAgICAgICAgICAgICAgJiYgY2VsbFZhbHVlID4gdGhpcy50b3AxMFBlcmNlbnRUcmVzaG9sZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSlcclxuICAgICAgICAgICAgICAgICYmIGNlbGxWYWx1ZSA+IHRoaXMudG9wMTBQZXJjZW50VHJlc2hvbGQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIGdyZWF0ZXJUaGFuID0ge1xyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSlcclxuICAgICAgICAgICAgJiYgY2VsbFZhbHVlID4gdGhpcy5hdmdWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSlcclxuICAgICAgICAgICAgJiYgY2VsbFZhbHVlID4gdGhpcy5hdmdWYWx1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy50ZXh0O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgZW1wdHkgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSAmJiBjZWxsVmFsdWUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICB0aGlzLmZvcm1hdENvbG9ycy5pbmZvO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkgJiYgY2VsbFZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIGR1cGxpY2F0ZXMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFycjogYW55W10gPSB0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyA/IHRoaXMubnVtZXJpY0RhdGEgOiB0aGlzLnRleHREYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YoY2VsbFZhbHVlKSAhPT0gYXJyLmxhc3RJbmRleE9mKGNlbGxWYWx1ZSkgPyAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbyA6ICcnO1xyXG5cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFycjogYW55W10gPSB0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyA/IHRoaXMubnVtZXJpY0RhdGEgOiB0aGlzLnRleHREYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YoY2VsbFZhbHVlKSAhPT0gYXJyLmxhc3RJbmRleE9mKGNlbGxWYWx1ZSkgPyAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dCA6ICcnO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIHRleHRDb250YWlucyA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2VsbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpICYmXHJcbiAgICAgICAgICAgICAgICBjZWxsVmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX3ZhbHVlRm9yQ29tcGFyaXNvbi50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2VsbFZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpICYmXHJcbiAgICAgICAgICAgICAgICBjZWxsVmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuX3ZhbHVlRm9yQ29tcGFyaXNvbi50b0xvd2VyQ2FzZSgpKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIHVuaXF1ZXMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFycjogYW55W10gPSB0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyA/IHRoaXMubnVtZXJpY0RhdGEgOiB0aGlzLnRleHREYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YoY2VsbFZhbHVlKSA9PT0gYXJyLmxhc3RJbmRleE9mKGNlbGxWYWx1ZSkgPyAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbyA6ICcnO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgY29uc3QgYXJyOiBhbnlbXSA9IHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInID8gdGhpcy5udW1lcmljRGF0YSA6IHRoaXMudGV4dERhdGE7XHJcbiAgICAgICAgICAgIHJldHVybiBhcnIuaW5kZXhPZihjZWxsVmFsdWUpID09PSBhcnIubGFzdEluZGV4T2YoY2VsbFZhbHVlKSA/ICB0aGlzLmZvcm1hdENvbG9ycy50ZXh0IDogJyc7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIGdldCBzZWxlY3RlZERhdGEoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3RlZERhdGEubGVuZ3RoKSB7IHRoaXMuX3NlbGVjdGVkRGF0YSA9IHRoaXMudG9BcnJheSh0aGlzLmdyaWQuZ2V0U2VsZWN0ZWREYXRhKCkpOyB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCB0ZXh0RGF0YSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGEuZmlsdGVyKHZhbCA9PiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgbnVtZXJpY0RhdGEoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWREYXRhLmZpbHRlcih2YWwgPT4gdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfZm9ybWF0Q29sb3JzOiBJRm9ybWF0Q29sb3JzID0ge1xyXG4gICAgICAgIHN1Y2Nlc3M6ICcjNEVCODYyJyxcclxuICAgICAgICBlcnJvcjogJyNGRjEzNEEnLFxyXG4gICAgICAgIHdhcm5pbmc6ICcjRkJCMTNDJyxcclxuICAgICAgICBpbmZvOiAnIzEzNzdENScsXHJcbiAgICAgICAgdGV4dDogJyNGRkYnXHJcbiAgICB9O1xyXG4gICAgcHJpdmF0ZSBfbnVtZXJpY0Zvcm1hdHRlcnMgPSBbJ0RhdGEgQmFycycsICdDb2xvciBTY2FsZScsICdUb3AgMTAnLCAnR3JlYXRlciBUaGFuJ107XHJcbiAgICBwcml2YXRlIF90ZXh0Rm9ybWF0dGVycyA9IFsnVGV4dCBDb250YWlucyddO1xyXG4gICAgcHJpdmF0ZSBfY29tbW9uRm9ybWF0dGVyc05hbWUgPSBbJ0R1cGxpY2F0ZSBWYWx1ZXMnLCAnVW5pcXVlIFZhbHVlcycsICdFbXB0eSddO1xyXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICBwcml2YXRlIF9taW5WYWx1ZTtcclxuICAgIHByaXZhdGUgX21heFZhbHVlO1xyXG4gICAgcHJpdmF0ZSBfc3RhcnRDb2x1bW47XHJcbiAgICBwcml2YXRlIF9lbmRDb2x1bW47XHJcbiAgICBwcml2YXRlIF92YWx1ZUZvckNvbXBhcmlzb247XHJcbiAgICBwcml2YXRlIF9mb3JtYXR0ZXJzRGF0YSA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gICAgcHJpdmF0ZSBmb3JtYXRlZFJhbmdlOiBNYXA8bnVtYmVyLCBTZXQ8bnVtYmVyPj4gPSBuZXcgTWFwPG51bWJlciwgU2V0PG51bWJlcj4+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoQEluamVjdChJZ3hHcmlkQ29tcG9uZW50KSBwdWJsaWMgZ3JpZDogSWd4R3JpZENvbXBvbmVudCkge1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnRGF0YSBCYXJzJywgdGhpcy5kYXRhQmFycyk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdDb2xvciBTY2FsZScsIHRoaXMuY29sb3JTY2FsZSk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdUb3AgMTAnLCB0aGlzLnRvcDEwUGVyY2VudCk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdHcmVhdGVyIFRoYW4nLCB0aGlzLmdyZWF0ZXJUaGFuKTtcclxuICAgICAgICB0aGlzLl9mb3JtYXR0ZXJzRGF0YS5zZXQoJ1RleHQgQ29udGFpbnMnLCB0aGlzLnRleHRDb250YWlucyk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdEdXBsaWNhdGUgVmFsdWVzJywgdGhpcy5kdXBsaWNhdGVzKTtcclxuICAgICAgICB0aGlzLl9mb3JtYXR0ZXJzRGF0YS5zZXQoJ1VuaXF1ZSBWYWx1ZXMnLCB0aGlzLnVuaXF1ZXMpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnRW1wdHknLCB0aGlzLmVtcHR5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZ3JpZC5yYW5nZVNlbGVjdGVkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRldGVybWluZUZvcm1hdHRlcnMoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmdyaWQuY2VsbEVkaXQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoYXJnczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICgoYXJncy5uZXdWYWx1ZSA9PT0gYXJncy5vbGRWYWx1ZSB8fCAhdGhpcy5mb3JtYXR0ZXIpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICBpZiAodGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKGFyZ3MuY2VsbElELnJvd0luZGV4LCBhcmdzLmNlbGxJRC5jb2x1bW5JRCAtIDEpKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE51bWJlcihhcmdzLm5ld1ZhbHVlKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlVG9CZUFkZGVkID0gIU51bWJlci5pc05hTih2YWx1ZSkgJiYgTnVtYmVyLmlzRmluaXRlKHZhbHVlKSA/IHZhbHVlIDogYXJncy5uZXdWYWx1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRhLnNwbGljZSh0aGlzLnNlbGVjdGVkRGF0YS5pbmRleE9mKGFyZ3Mub2xkVmFsdWUpLCAxLCB2YWx1ZVRvQmVBZGRlZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlY2FsY0NhY2hlZFZhbHVlcygpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtYXRDZWxscyh0aGlzLmZvcm1hdHRlciwgdW5kZWZpbmVkLCBmYWxzZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9ybWF0Q2VsbHMoZm9ybWF0dGVyTmFtZSwgZm9ybWF0UmFuZ2U/OiBbXSwgcmVzZXQgPSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHJlc2V0KSB7IHRoaXMucmVzZXRSYW5nZShmb3JtYXRSYW5nZSk7IH1cclxuICAgICAgICB0aGlzLmNsZWFyRm9ybWF0dGluZygpO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVyID0gZm9ybWF0dGVyTmFtZTtcclxuICAgICAgICB0aGlzLmdyaWQudmlzaWJsZUNvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgaWYgKGMudmlzaWJsZUluZGV4ID49IHRoaXMuX3N0YXJ0Q29sdW1uICYmIGMudmlzaWJsZUluZGV4IDw9IHRoaXMuX2VuZENvbHVtbikge1xyXG4gICAgICAgICAgICAgICAgYy5jZWxsU3R5bGVzID0gdGhpcy5fZm9ybWF0dGVyc0RhdGEuZ2V0KHRoaXMuZm9ybWF0dGVyKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5ub3RpZnlDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xlYXJGb3JtYXR0aW5nKCkge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuZ3JpZC52aXNpYmxlQ29sdW1ucy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICAgICAgICBjLmNlbGxTdHlsZXMgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkZXRlcm1pbmVGb3JtYXR0ZXJzKCkge1xyXG4gICAgICAgIGNvbnN0IG51bWVyaWNEYXRhID0gdGhpcy50b0FycmF5KHRoaXMuZ3JpZC5nZXRTZWxlY3RlZERhdGEoKSkuc29tZShyZWMgPT4gdHlwZW9mIHJlYyA9PT0gJ251bWJlcicpO1xyXG4gICAgICAgIGNvbnN0IHRleHREYXRhID0gdGhpcy50b0FycmF5KHRoaXMuZ3JpZC5nZXRTZWxlY3RlZERhdGEoKSkuc29tZShyZWMgPT4gdHlwZW9mIHJlYyA9PT0gJ3N0cmluZycpO1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlcnMgPSAgQXJyYXkub2YoLi4udGhpcy5fY29tbW9uRm9ybWF0dGVyc05hbWUpO1xyXG4gICAgICAgIGlmICghKG51bWVyaWNEYXRhKSAmJiB0ZXh0RGF0YSkge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZXJzLnNwbGljZSgwLCAwLCAuLi50aGlzLl90ZXh0Rm9ybWF0dGVycyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChudW1lcmljRGF0YSAmJiAhdGV4dERhdGEpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVycy5zcGxpY2UoMCwgMCwgLi4udGhpcy5fbnVtZXJpY0Zvcm1hdHRlcnMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlcnMuc3BsaWNlKDAsIDAsIC4uLlsnRGF0YSBCYXJzJywgJ0NvbG9yIFNjYWxlJywgJ1RleHQgQ29udGFpbnMnXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMub25Gb3JtYXR0ZXJzUmVhZHkuZW1pdChmb3JtYXR0ZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVjYWxjQ2FjaGVkVmFsdWVzKGNsZWFyQWxsID0gZmFsc2UpIHtcclxuICAgICAgICBpZiAoY2xlYXJBbGwpIHtcclxuICAgICAgICAgICAgdGhpcy5fc3RhcnRDb2x1bW4gPSBNYXRoLm1pbiguLi50aGlzLmdyaWQuZ2V0U2VsZWN0ZWRSYW5nZXMoKS5tYXAociA9PiBOdW1iZXIoci5jb2x1bW5TdGFydCkpKTtcclxuICAgICAgICAgICAgdGhpcy5fZW5kQ29sdW1uID0gTWF0aC5tYXgoLi4udGhpcy5ncmlkLmdldFNlbGVjdGVkUmFuZ2VzKCkubWFwKHIgPT4gTnVtYmVyKHIuY29sdW1uRW5kKSkpO1xyXG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZERhdGEgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fdmFsdWVGb3JDb21wYXJpc29uID0gdGhpcy50ZXh0RGF0YVswXTtcclxuICAgICAgICB0aGlzLl9tYXhWYWx1ZSA9IE1hdGgubWF4KC4uLnRoaXMubnVtZXJpY0RhdGEpO1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlID0gTWF0aC5taW4oLi4udGhpcy5udW1lcmljRGF0YS5maWx0ZXIodmFsdWUgPT4gdmFsdWUgPCAwKSkgfCAwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBpc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xJRCkge1xyXG4gICAgICAgIGNvbnN0IHZpc2libGVJbmRleCA9IHR5cGVvZiBjb2xJRCA9PT0gJ3N0cmluZycgPyB0aGlzLmdyaWQuZ2V0Q29sdW1uQnlOYW1lKGNvbElEKS52aXNpYmxlSW5kZXggOiBjb2xJRDtcclxuICAgICAgICBpZiAoIXRoaXMuZm9ybWF0ZWRSYW5nZS5zaXplKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdGVkUmFuZ2UuaGFzKHJvd0luZGV4KSAmJiB0aGlzLmZvcm1hdGVkUmFuZ2UuZ2V0KHJvd0luZGV4KS5oYXModmlzaWJsZUluZGV4KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBtaWRkbGVUcmVzaG9sZFZhbHVlKCkgeyByZXR1cm4gMC42NiAqIE1hdGguY2VpbCh0aGlzLl9tYXhWYWx1ZSk7IH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBsb3dUcmVzaG9sZFZhbHVlKCkgeyByZXR1cm4gMC4zMyAqIE1hdGguY2VpbCh0aGlzLl9tYXhWYWx1ZSk7IH1cclxuXHJcbiAgICBwcml2YXRlIGdldCB0b3AxMFBlcmNlbnRUcmVzaG9sZCgpIHsgcmV0dXJuIDAuOSAqIE1hdGguY2VpbCh0aGlzLl9tYXhWYWx1ZSk7IH1cclxuXHJcbiAgICBwcml2YXRlIGdldCBhdmdWYWx1ZSgpIHtcclxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKCh0aGlzLm51bWVyaWNEYXRhLnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApKSAvIHRoaXMubnVtZXJpY0RhdGEubGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldCB0aHJlc2hvbGQoKSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkgLyAodGhpcy5fbWF4VmFsdWUgKyBNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkpICogMTAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFBvc2l0aXZlUGVyY2VudGFnZSh2YWwpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSAoTWF0aC5jZWlsKHZhbCkgLyAodGhpcy5fbWF4VmFsdWUgKyBNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkpKSAqIDEwMDtcclxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXROZWdhdGl2ZVBlcmNlbnRhZ2UodmFsKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKE1hdGguYWJzKHZhbCkgLyAodGhpcy5fbWF4VmFsdWUgKyBNYXRoLmFicyh0aGlzLl9taW5WYWx1ZSkpKSAqIDEwMDtcclxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHJlc3VsdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXNldFJhbmdlKGZvcm1hdFJhbmdlPzogW10pIHtcclxuICAgICAgICB0aGlzLmZvcm1hdGVkUmFuZ2UuY2xlYXIoKTtcclxuICAgICAgICBjb25zdCBjdXN0b21SYW5nZSA9IGZvcm1hdFJhbmdlID8gZm9ybWF0UmFuZ2UgOiB0aGlzLmdyaWQuZ2V0U2VsZWN0ZWRSYW5nZXMoKTtcclxuICAgICAgICBjdXN0b21SYW5nZS5mb3JFYWNoKHJhbmdlID0+IHtcclxuICAgICAgICAgICAgZm9yIChsZXQgcmkgPSByYW5nZS5yb3dTdGFydDsgcmkgPD0gTnVtYmVyKHJhbmdlLnJvd0VuZCk7IHJpKyspIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IGNpID0gTnVtYmVyKHJhbmdlLmNvbHVtblN0YXJ0KTsgY2kgPD0gTnVtYmVyKHJhbmdlLmNvbHVtbkVuZCk7IGNpKyspIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZFRvQ2FjaGUocmksIGNpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVjYWxjQ2FjaGVkVmFsdWVzKHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkVG9DYWNoZShyb3dJbmRleCwgY29sSW5kZXgsIHNlbGVjdGlvbiA9IHRydWUpIHtcclxuICAgICAgICB0aGlzLmZvcm1hdGVkUmFuZ2UuaGFzKHJvd0luZGV4KSA/IHRoaXMuZm9ybWF0ZWRSYW5nZS5nZXQocm93SW5kZXgpLmFkZChjb2xJbmRleCkgOlxyXG4gICAgICAgIHRoaXMuZm9ybWF0ZWRSYW5nZS5zZXQocm93SW5kZXgsIG5ldyBTZXQ8bnVtYmVyPigpKS5nZXQocm93SW5kZXgpLmFkZChjb2xJbmRleCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0b0FycmF5KGRhdGE6IGFueVtdKSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xyXG4gICAgICAgIGRhdGEuZm9yRWFjaChyZWMgPT4gcmVzdWx0ID0gcmVzdWx0LmNvbmNhdChPYmplY3QudmFsdWVzKHJlYykpKTtcclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
311
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uYWwtZm9ybWF0dGluZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyLWV4dHJhcy9zcmMvbGliL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtZm9ybWF0dGluZy9jb25kaXRpb25hbC1mb3JtYXR0aW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUUzQyxNQUFNLENBQU4sSUFBWSx5QkFRWDtBQVJELFdBQVkseUJBQXlCO0lBQ2pDLG1EQUFzQixDQUFBO0lBQ3RCLHVEQUEwQixDQUFBO0lBQzFCLDZDQUFnQixDQUFBO0lBQ2hCLDJEQUE4QixDQUFBO0lBQzlCLHdEQUEyQixDQUFBO0lBQzNCLHFEQUF3QixDQUFBO0lBQ3hCLDRDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQVJXLHlCQUF5QixLQUF6Qix5QkFBeUIsUUFRcEM7QUFZRCxNQUFNLE9BQU8saUNBQWlDO0lBSTFDLElBQ1csWUFBWSxDQUFDLEdBQWtCO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUF5SEQsSUFBWSxZQUFZO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtZQUFFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7U0FBRTtRQUNuRyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVksUUFBUTtRQUNoQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQVksV0FBVztRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQXFCRCxZQUE2QyxJQUFzQjtRQUF0QixTQUFJLEdBQUosSUFBSSxDQUFrQjtRQXRKNUQsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUVqRCxlQUFVLEdBQUc7WUFDaEIsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxDQUFDLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUU7b0JBQUUsT0FBTztpQkFBRTtnQkFDbkcsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNqRSxJQUFJLENBQUMsbUJBQW1CLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7WUFDdkcsQ0FBQztTQUNKLENBQUM7UUFFSyxhQUFRLEdBQUc7WUFDZCxlQUFlLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLENBQUMsT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRTtvQkFBRSxPQUFPO2lCQUFFO2dCQUNuRyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxJQUFJLGdCQUFnQixDQUFDO2dCQUNyQixJQUFJLFNBQVMsR0FBRyxDQUFDLEVBQUU7b0JBQ2YsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDO29CQUM3QyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3pELE9BQU8sMkNBQTJDLHFCQUFxQjtzQkFDaEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUkscUJBQXFCLEtBQUsscUJBQXFCLEdBQUcsZ0JBQWdCO2tDQUNsRixnQkFBZ0IsU0FBUyxDQUFDO2lCQUMvQztxQkFBTTtvQkFDSCxnQkFBZ0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3pELE9BQU8sNENBQTRDLFFBQVE7c0JBQ3BELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxJQUFJLFFBQVEsS0FBSyxRQUFRLEdBQUcsZ0JBQWdCO2tDQUMxRCxRQUFRLEdBQUcsZ0JBQWdCLFNBQVMsQ0FBQztpQkFDMUQ7WUFDTCxDQUFDO1lBQ0QsY0FBYyxFQUFFLFVBQVU7WUFDMUIsZ0JBQWdCLEVBQUUsV0FBVztZQUM3QixtQkFBbUIsRUFBRSxRQUFRO1NBQ2hDLENBQUM7UUFFSyxpQkFBWSxHQUFHO1lBQ2xCLGVBQWUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUN2RCxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQzt1QkFDNUUsU0FBUyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDMUMsT0FBUSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztpQkFDbEM7WUFDTCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQzdDLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDO3VCQUM1RSxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFO29CQUMxQyxPQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2lCQUNsQztZQUNMLENBQUM7U0FDSixDQUFDO1FBRUssZ0JBQVcsR0FBRztZQUNqQixlQUFlLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDdkQsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7dUJBQ2hGLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUMxQixPQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2lCQUNsQztZQUNMLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7dUJBQ2hGLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFO29CQUMxQixPQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2lCQUNsQztZQUNMLENBQUM7U0FDSixDQUFDO1FBRUssVUFBSyxHQUFHO1lBQ1gsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFO29CQUMzRSxPQUFRLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO2lCQUNsQztZQUNMLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUU7b0JBQzNFLE9BQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7aUJBQ2xDO1lBQ0wsQ0FBQztTQUNKLENBQUM7UUFFSyxlQUFVLEdBQUc7WUFDaEIsZUFBZSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFO29CQUFFLE9BQU87aUJBQUU7Z0JBQ2hFLE1BQU0sR0FBRyxHQUFVLE9BQU8sU0FBUyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztnQkFDcEYsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFaEcsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRTtvQkFBRSxPQUFPO2lCQUFFO2dCQUNoRSxNQUFNLEdBQUcsR0FBVSxPQUFPLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BGLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hHLENBQUM7U0FDSixDQUFDO1FBRUssaUJBQVksR0FBRztZQUNsQixlQUFlLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDdkQsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUM7b0JBQy9FLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ2hGLE9BQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7aUJBQ2xDO1lBQ0wsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUM3QyxJQUFJLE9BQU8sU0FBUyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQztvQkFDL0UsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDaEYsT0FBUSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztpQkFDbEM7WUFDTCxDQUFDO1NBQ0osQ0FBQztRQUVLLFlBQU8sR0FBRztZQUNiLGVBQWUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFO2dCQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsRUFBRTtvQkFBRSxPQUFPO2lCQUFFO2dCQUNoRSxNQUFNLEdBQUcsR0FBVSxPQUFPLFNBQVMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BGLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hHLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUU7b0JBQUUsT0FBTztpQkFBRTtnQkFDaEUsTUFBTSxHQUFHLEdBQVUsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNwRixPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNoRyxDQUFDO1NBQ0osQ0FBQztRQWNNLGtCQUFhLEdBQWtCO1lBQ25DLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLElBQUksRUFBRSxTQUFTO1lBQ2YsSUFBSSxFQUFFLE1BQU07U0FDZixDQUFDO1FBQ00sdUJBQWtCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM1RSxvQkFBZSxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEMsMEJBQXFCLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdkUsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFNbkIsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQzlCLGtCQUFhLEdBQTZCLElBQUksR0FBRyxFQUF1QixDQUFDO1FBRzdFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFBRSxPQUFPO2FBQUU7WUFDckUsSUFBSSxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3BDLE1BQU0sY0FBYyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQzlGLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQ3RGLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3REO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBZ0IsRUFBRSxLQUFLLEdBQUcsSUFBSTtRQUM1RCxJQUFJLEtBQUssRUFBRTtZQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7U0FBRTtRQUM1QyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDMUUsQ0FBQyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDN0I7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqQyxDQUFDLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxtQkFBbUI7UUFDdEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDbkcsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDaEcsTUFBTSxVQUFVLEdBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFFBQVEsRUFBRTtZQUM1QixVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDcEQ7YUFBTSxJQUFJLFdBQVcsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN2RDthQUFNO1lBQ0gsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUM7U0FDN0U7UUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxRQUFRLEdBQUcsS0FBSztRQUN0QyxJQUFJLFFBQVEsRUFBRTtZQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVNLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxLQUFLO1FBQ3pDLE1BQU0sWUFBWSxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdkcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUMvQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBRUQsSUFBWSxtQkFBbUIsS0FBSyxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFOUUsSUFBWSxnQkFBZ0IsS0FBSyxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFM0UsSUFBWSxvQkFBb0IsS0FBSyxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFOUUsSUFBWSxRQUFRO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELElBQVksU0FBUztRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVPLHFCQUFxQixDQUFDLEdBQUc7UUFDN0IsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3BGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8scUJBQXFCLENBQUMsR0FBRztRQUM3QixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDbkYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFTyxVQUFVLENBQUMsV0FBZ0I7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzlFLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDeEIsS0FBSyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUM1RCxLQUFLLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7b0JBQzFFLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2lCQUMzQjthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLFVBQVUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLFNBQVMsR0FBRyxJQUFJO1FBQ25ELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxHQUFHLEVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVPLE9BQU8sQ0FBQyxJQUFXO1FBQ3ZCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7OEhBcFNRLGlDQUFpQyxrQkFtS3RCLGdCQUFnQjtrSEFuSzNCLGlDQUFpQzsyRkFBakMsaUNBQWlDO2tCQUg3QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7aUJBQ3pDOzswQkFvS2dCLE1BQU07MkJBQUMsZ0JBQWdCOzRDQWpLN0IsU0FBUztzQkFEZixLQUFLO2dCQUlLLFlBQVk7c0JBRHRCLEtBQUs7Z0JBU0MsaUJBQWlCO3NCQUR2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElneEdyaWRDb21wb25lbnQgfSBmcm9tICdpZ25pdGV1aS1hbmd1bGFyJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5leHBvcnQgZW51bSBDb25kaXRpb25hbEZvcm1hdHRpbmdUeXBlIHtcclxuICAgIGRhdGFCYXJzID0gJ0RhdGEgQmFycycsXHJcbiAgICBjb2xvclNjYWxlID0gJ0NvbG9yIFNjYWxlJyxcclxuICAgIHRvcDEwID0gJ1RvcCAxMCcsXHJcbiAgICB0ZXh0Q29udGFpbnMgPSAnVGV4dCBDb250YWlucycsXHJcbiAgICBzaW5nbGUgPSAnRHVwbGljYXRlIFZhbHVlcycsXHJcbiAgICB1bmlxdWUgPSAnVW5pcXVlIFZhbHVlcycsXHJcbiAgICBlbXB0eSA9ICdFbXB0eSdcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtYXRDb2xvcnMge1xyXG4gICAgc3VjY2Vzczogc3RyaW5nO1xyXG4gICAgZXJyb3I6IHN0cmluZztcclxuICAgIGluZm86IHN0cmluZztcclxuICAgIHdhcm5pbmc6IHN0cmluZztcclxuICAgIHRleHQ6IHN0cmluZztcclxufVxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tpZ3hDb25kaXRpb25hbEZvcm1hdHRpbmddJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSWd4Q29uZGl0aW9uYWxGb3JtYXR0aW5nRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybWF0dGVyOiBzdHJpbmcgfCBDb25kaXRpb25hbEZvcm1hdHRpbmdUeXBlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGZvcm1hdENvbG9ycyh2YWw6IElGb3JtYXRDb2xvcnMpICB7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0Q29sb3JzID0gdmFsO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGdldCBmb3JtYXRDb2xvcnMoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdENvbG9ycztcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBvbkZvcm1hdHRlcnNSZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XHJcblxyXG4gICAgcHVibGljIGNvbG9yU2NhbGUgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoISh0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG93VHJlc2hvbGRWYWx1ZSA+PSBjZWxsVmFsdWUgPyB0aGlzLmZvcm1hdENvbG9ycy5lcnJvciA6XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1pZGRsZVRyZXNob2xkVmFsdWUgPj0gY2VsbFZhbHVlID8gdGhpcy5mb3JtYXRDb2xvcnMud2FybmluZyA6ICB0aGlzLmZvcm1hdENvbG9ycy5zdWNjZXNzO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIGRhdGFCYXJzID0ge1xyXG4gICAgICAgIGJhY2tncm91bmRJbWFnZTogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCEodHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgJiYgdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbnN0IHRyZXNob2xkID0gdGhpcy50aHJlc2hvbGQ7XHJcbiAgICAgICAgICAgIGxldCBncmFkaWVudFBlcmNlbnRzO1xyXG4gICAgICAgICAgICBpZiAoY2VsbFZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmVnYXRpdmVTdGFydGluZ1BvaW50ID0gMTAwIC0gdHJlc2hvbGQ7XHJcbiAgICAgICAgICAgICAgICBncmFkaWVudFBlcmNlbnRzID0gdGhpcy5nZXROZWdhdGl2ZVBlcmNlbnRhZ2UoY2VsbFZhbHVlKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBgbGluZWFyLWdyYWRpZW50KHRvIGxlZnQsIHRyYW5zcGFyZW50IDAlICR7bmVnYXRpdmVTdGFydGluZ1BvaW50fSUsXHJcbiAgICAgICAgICAgICAgICAgICAgJHsgdGhpcy5mb3JtYXRDb2xvcnMuZXJyb3J9ICR7bmVnYXRpdmVTdGFydGluZ1BvaW50fSUgJHtuZWdhdGl2ZVN0YXJ0aW5nUG9pbnQgKyBncmFkaWVudFBlcmNlbnRzfSUsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgJHtncmFkaWVudFBlcmNlbnRzfSUgMTAwJSlgO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZ3JhZGllbnRQZXJjZW50cyA9IHRoaXMuZ2V0UG9zaXRpdmVQZXJjZW50YWdlKGNlbGxWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdHJhbnNwYXJlbnQgMCUgJHt0cmVzaG9sZH0lLFxyXG4gICAgICAgICAgICAgICAgICAgICR7IHRoaXMuZm9ybWF0Q29sb3JzLnN1Y2Nlc3N9ICR7dHJlc2hvbGR9JSAke3RyZXNob2xkICsgZ3JhZGllbnRQZXJjZW50c30lLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50ICR7dHJlc2hvbGQgKyBncmFkaWVudFBlcmNlbnRzfSUgMTAwJSlgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogJzEwMCUgODAlJyxcclxuICAgICAgICBiYWNrZ3JvdW5kUmVwZWF0OiAnbm8tcmVwZWF0JyxcclxuICAgICAgICBiYWNrZ3JvdW5kUG9zaXRpb25ZOiAnY2VudGVyJ1xyXG4gICAgfTtcclxuXHJcbiAgICBwdWJsaWMgdG9wMTBQZXJjZW50ID0ge1xyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBjZWxsVmFsdWUgPT09ICdudW1iZXInICYmIHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSlcclxuICAgICAgICAgICAgICAgICYmIGNlbGxWYWx1ZSA+IHRoaXMudG9wMTBQZXJjZW50VHJlc2hvbGQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpXHJcbiAgICAgICAgICAgICAgICAmJiBjZWxsVmFsdWUgPiB0aGlzLnRvcDEwUGVyY2VudFRyZXNob2xkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIHRoaXMuZm9ybWF0Q29sb3JzLnRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBncmVhdGVyVGhhbiA9IHtcclxuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpXHJcbiAgICAgICAgICAgICYmIGNlbGxWYWx1ZSA+IHRoaXMuYXZnVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyAmJiB0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpXHJcbiAgICAgICAgICAgICYmIGNlbGxWYWx1ZSA+IHRoaXMuYXZnVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHVibGljIGVtcHR5ID0ge1xyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkgJiYgY2VsbFZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAgdGhpcy5mb3JtYXRDb2xvcnMuaW5mbztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29sb3I6IChyb3dEYXRhLCBjb2xuYW1lLCBjZWxsVmFsdWUsIHJvd0luZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpICYmIGNlbGxWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIHRoaXMuZm9ybWF0Q29sb3JzLnRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyBkdXBsaWNhdGVzID0ge1xyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICBjb25zdCBhcnI6IGFueVtdID0gdHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgPyB0aGlzLm51bWVyaWNEYXRhIDogdGhpcy50ZXh0RGF0YTtcclxuICAgICAgICAgICAgcmV0dXJuIGFyci5pbmRleE9mKGNlbGxWYWx1ZSkgIT09IGFyci5sYXN0SW5kZXhPZihjZWxsVmFsdWUpID8gIHRoaXMuZm9ybWF0Q29sb3JzLmluZm8gOiAnJztcclxuXHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICBjb25zdCBhcnI6IGFueVtdID0gdHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgPyB0aGlzLm51bWVyaWNEYXRhIDogdGhpcy50ZXh0RGF0YTtcclxuICAgICAgICAgICAgcmV0dXJuIGFyci5pbmRleE9mKGNlbGxWYWx1ZSkgIT09IGFyci5sYXN0SW5kZXhPZihjZWxsVmFsdWUpID8gIHRoaXMuZm9ybWF0Q29sb3JzLnRleHQgOiAnJztcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyB0ZXh0Q29udGFpbnMgPSB7XHJcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSAmJlxyXG4gICAgICAgICAgICAgICAgY2VsbFZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLl92YWx1ZUZvckNvbXBhcmlzb24udG9Mb3dlckNhc2UoKSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIHRoaXMuZm9ybWF0Q29sb3JzLmluZm87XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ3N0cmluZycgJiYgdGhpcy5pc1dpdGhJbkZvcm1hdHRlZFJhbmdlKHJvd0luZGV4LCBjb2xuYW1lKSAmJlxyXG4gICAgICAgICAgICAgICAgY2VsbFZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih0aGlzLl92YWx1ZUZvckNvbXBhcmlzb24udG9Mb3dlckNhc2UoKSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIHRoaXMuZm9ybWF0Q29sb3JzLnRleHQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIHB1YmxpYyB1bmlxdWVzID0ge1xyXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogKHJvd0RhdGEsIGNvbG5hbWUsIGNlbGxWYWx1ZSwgcm93SW5kZXgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzV2l0aEluRm9ybWF0dGVkUmFuZ2Uocm93SW5kZXgsIGNvbG5hbWUpKSB7IHJldHVybjsgfVxyXG4gICAgICAgICAgICBjb25zdCBhcnI6IGFueVtdID0gdHlwZW9mIGNlbGxWYWx1ZSA9PT0gJ251bWJlcicgPyB0aGlzLm51bWVyaWNEYXRhIDogdGhpcy50ZXh0RGF0YTtcclxuICAgICAgICAgICAgcmV0dXJuIGFyci5pbmRleE9mKGNlbGxWYWx1ZSkgPT09IGFyci5sYXN0SW5kZXhPZihjZWxsVmFsdWUpID8gIHRoaXMuZm9ybWF0Q29sb3JzLmluZm8gOiAnJztcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbG9yOiAocm93RGF0YSwgY29sbmFtZSwgY2VsbFZhbHVlLCByb3dJbmRleCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sbmFtZSkpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFycjogYW55W10gPSB0eXBlb2YgY2VsbFZhbHVlID09PSAnbnVtYmVyJyA/IHRoaXMubnVtZXJpY0RhdGEgOiB0aGlzLnRleHREYXRhO1xyXG4gICAgICAgICAgICByZXR1cm4gYXJyLmluZGV4T2YoY2VsbFZhbHVlKSA9PT0gYXJyLmxhc3RJbmRleE9mKGNlbGxWYWx1ZSkgPyAgdGhpcy5mb3JtYXRDb2xvcnMudGV4dCA6ICcnO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgc2VsZWN0ZWREYXRhKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5fc2VsZWN0ZWREYXRhLmxlbmd0aCkgeyB0aGlzLl9zZWxlY3RlZERhdGEgPSB0aGlzLnRvQXJyYXkodGhpcy5ncmlkLmdldFNlbGVjdGVkRGF0YSgpKTsgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZERhdGE7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgdGV4dERhdGEoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWREYXRhLmZpbHRlcih2YWwgPT4gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0IG51bWVyaWNEYXRhKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkRGF0YS5maWx0ZXIodmFsID0+IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2Zvcm1hdENvbG9yczogSUZvcm1hdENvbG9ycyA9IHtcclxuICAgICAgICBzdWNjZXNzOiAnIzRFQjg2MicsXHJcbiAgICAgICAgZXJyb3I6ICcjRkYxMzRBJyxcclxuICAgICAgICB3YXJuaW5nOiAnI0ZCQjEzQycsXHJcbiAgICAgICAgaW5mbzogJyMxMzc3RDUnLFxyXG4gICAgICAgIHRleHQ6ICcjRkZGJ1xyXG4gICAgfTtcclxuICAgIHByaXZhdGUgX251bWVyaWNGb3JtYXR0ZXJzID0gWydEYXRhIEJhcnMnLCAnQ29sb3IgU2NhbGUnLCAnVG9wIDEwJywgJ0dyZWF0ZXIgVGhhbiddO1xyXG4gICAgcHJpdmF0ZSBfdGV4dEZvcm1hdHRlcnMgPSBbJ1RleHQgQ29udGFpbnMnXTtcclxuICAgIHByaXZhdGUgX2NvbW1vbkZvcm1hdHRlcnNOYW1lID0gWydEdXBsaWNhdGUgVmFsdWVzJywgJ1VuaXF1ZSBWYWx1ZXMnLCAnRW1wdHknXTtcclxuICAgIHByaXZhdGUgX3NlbGVjdGVkRGF0YSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfbWluVmFsdWU7XHJcbiAgICBwcml2YXRlIF9tYXhWYWx1ZTtcclxuICAgIHByaXZhdGUgX3N0YXJ0Q29sdW1uO1xyXG4gICAgcHJpdmF0ZSBfZW5kQ29sdW1uO1xyXG4gICAgcHJpdmF0ZSBfdmFsdWVGb3JDb21wYXJpc29uO1xyXG4gICAgcHJpdmF0ZSBfZm9ybWF0dGVyc0RhdGEgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG4gICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICAgIHByaXZhdGUgZm9ybWF0ZWRSYW5nZTogTWFwPG51bWJlciwgU2V0PG51bWJlcj4+ID0gbmV3IE1hcDxudW1iZXIsIFNldDxudW1iZXI+PigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoSWd4R3JpZENvbXBvbmVudCkgcHVibGljIGdyaWQ6IElneEdyaWRDb21wb25lbnQpIHtcclxuICAgICAgICB0aGlzLl9mb3JtYXR0ZXJzRGF0YS5zZXQoJ0RhdGEgQmFycycsIHRoaXMuZGF0YUJhcnMpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnQ29sb3IgU2NhbGUnLCB0aGlzLmNvbG9yU2NhbGUpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnVG9wIDEwJywgdGhpcy50b3AxMFBlcmNlbnQpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnR3JlYXRlciBUaGFuJywgdGhpcy5ncmVhdGVyVGhhbik7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdUZXh0IENvbnRhaW5zJywgdGhpcy50ZXh0Q29udGFpbnMpO1xyXG4gICAgICAgIHRoaXMuX2Zvcm1hdHRlcnNEYXRhLnNldCgnRHVwbGljYXRlIFZhbHVlcycsIHRoaXMuZHVwbGljYXRlcyk7XHJcbiAgICAgICAgdGhpcy5fZm9ybWF0dGVyc0RhdGEuc2V0KCdVbmlxdWUgVmFsdWVzJywgdGhpcy51bmlxdWVzKTtcclxuICAgICAgICB0aGlzLl9mb3JtYXR0ZXJzRGF0YS5zZXQoJ0VtcHR5JywgdGhpcy5lbXB0eSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmdyaWQucmFuZ2VTZWxlY3RlZC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kZXRlcm1pbmVGb3JtYXR0ZXJzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5ncmlkLmNlbGxFZGl0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGFyZ3M6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoKGFyZ3MubmV3VmFsdWUgPT09IGFyZ3Mub2xkVmFsdWUgfHwgIXRoaXMuZm9ybWF0dGVyKSkgeyByZXR1cm47IH1cclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShhcmdzLmNlbGxJRC5yb3dJbmRleCwgYXJncy5jZWxsSUQuY29sdW1uSUQgLSAxKSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBOdW1iZXIoYXJncy5uZXdWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZVRvQmVBZGRlZCA9ICFOdW1iZXIuaXNOYU4odmFsdWUpICYmIE51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgPyB2YWx1ZSA6IGFyZ3MubmV3VmFsdWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0YS5zcGxpY2UodGhpcy5zZWxlY3RlZERhdGEuaW5kZXhPZihhcmdzLm9sZFZhbHVlKSwgMSwgdmFsdWVUb0JlQWRkZWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWNhbGNDYWNoZWRWYWx1ZXMoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybWF0Q2VsbHModGhpcy5mb3JtYXR0ZXIsIHVuZGVmaW5lZCwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvcm1hdENlbGxzKGZvcm1hdHRlck5hbWUsIGZvcm1hdFJhbmdlPzogW10sIHJlc2V0ID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmIChyZXNldCkgeyB0aGlzLnJlc2V0UmFuZ2UoZm9ybWF0UmFuZ2UpOyB9XHJcbiAgICAgICAgdGhpcy5jbGVhckZvcm1hdHRpbmcoKTtcclxuICAgICAgICB0aGlzLmZvcm1hdHRlciA9IGZvcm1hdHRlck5hbWU7XHJcbiAgICAgICAgdGhpcy5ncmlkLnZpc2libGVDb2x1bW5zLmZvckVhY2goYyA9PiB7XHJcbiAgICAgICAgICAgIGlmIChjLnZpc2libGVJbmRleCA+PSB0aGlzLl9zdGFydENvbHVtbiAmJiBjLnZpc2libGVJbmRleCA8PSB0aGlzLl9lbmRDb2x1bW4pIHtcclxuICAgICAgICAgICAgICAgIGMuY2VsbFN0eWxlcyA9IHRoaXMuX2Zvcm1hdHRlcnNEYXRhLmdldCh0aGlzLmZvcm1hdHRlcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWQubm90aWZ5Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsZWFyRm9ybWF0dGluZygpIHtcclxuICAgICAgICB0aGlzLmZvcm1hdHRlciA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmdyaWQudmlzaWJsZUNvbHVtbnMuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgYy5jZWxsU3R5bGVzID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB0aGlzLmdyaWQuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGV0ZXJtaW5lRm9ybWF0dGVycygpIHtcclxuICAgICAgICBjb25zdCBudW1lcmljRGF0YSA9IHRoaXMudG9BcnJheSh0aGlzLmdyaWQuZ2V0U2VsZWN0ZWREYXRhKCkpLnNvbWUocmVjID0+IHR5cGVvZiByZWMgPT09ICdudW1iZXInKTtcclxuICAgICAgICBjb25zdCB0ZXh0RGF0YSA9IHRoaXMudG9BcnJheSh0aGlzLmdyaWQuZ2V0U2VsZWN0ZWREYXRhKCkpLnNvbWUocmVjID0+IHR5cGVvZiByZWMgPT09ICdzdHJpbmcnKTtcclxuICAgICAgICBjb25zdCBmb3JtYXR0ZXJzID0gIEFycmF5Lm9mKC4uLnRoaXMuX2NvbW1vbkZvcm1hdHRlcnNOYW1lKTtcclxuICAgICAgICBpZiAoIShudW1lcmljRGF0YSkgJiYgdGV4dERhdGEpIHtcclxuICAgICAgICAgICAgZm9ybWF0dGVycy5zcGxpY2UoMCwgMCwgLi4udGhpcy5fdGV4dEZvcm1hdHRlcnMpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobnVtZXJpY0RhdGEgJiYgIXRleHREYXRhKSB7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlcnMuc3BsaWNlKDAsIDAsIC4uLnRoaXMuX251bWVyaWNGb3JtYXR0ZXJzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3JtYXR0ZXJzLnNwbGljZSgwLCAwLCAuLi5bJ0RhdGEgQmFycycsICdDb2xvciBTY2FsZScsICdUZXh0IENvbnRhaW5zJ10pO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm9uRm9ybWF0dGVyc1JlYWR5LmVtaXQoZm9ybWF0dGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlY2FsY0NhY2hlZFZhbHVlcyhjbGVhckFsbCA9IGZhbHNlKSB7XHJcbiAgICAgICAgaWYgKGNsZWFyQWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3N0YXJ0Q29sdW1uID0gTWF0aC5taW4oLi4udGhpcy5ncmlkLmdldFNlbGVjdGVkUmFuZ2VzKCkubWFwKHIgPT4gTnVtYmVyKHIuY29sdW1uU3RhcnQpKSk7XHJcbiAgICAgICAgICAgIHRoaXMuX2VuZENvbHVtbiA9IE1hdGgubWF4KC4uLnRoaXMuZ3JpZC5nZXRTZWxlY3RlZFJhbmdlcygpLm1hcChyID0+IE51bWJlcihyLmNvbHVtbkVuZCkpKTtcclxuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWREYXRhID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3ZhbHVlRm9yQ29tcGFyaXNvbiA9IHRoaXMudGV4dERhdGFbMF07XHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWUgPSBNYXRoLm1heCguLi50aGlzLm51bWVyaWNEYXRhKTtcclxuICAgICAgICB0aGlzLl9taW5WYWx1ZSA9IE1hdGgubWluKC4uLnRoaXMubnVtZXJpY0RhdGEuZmlsdGVyKHZhbHVlID0+IHZhbHVlIDwgMCkpIHwgMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNXaXRoSW5Gb3JtYXR0ZWRSYW5nZShyb3dJbmRleCwgY29sSUQpIHtcclxuICAgICAgICBjb25zdCB2aXNpYmxlSW5kZXggPSB0eXBlb2YgY29sSUQgPT09ICdzdHJpbmcnID8gdGhpcy5ncmlkLmdldENvbHVtbkJ5TmFtZShjb2xJRCkudmlzaWJsZUluZGV4IDogY29sSUQ7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1hdGVkUmFuZ2Uuc2l6ZSkgeyByZXR1cm4gZmFsc2U7IH1cclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRlZFJhbmdlLmhhcyhyb3dJbmRleCkgJiYgdGhpcy5mb3JtYXRlZFJhbmdlLmdldChyb3dJbmRleCkuaGFzKHZpc2libGVJbmRleCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgbWlkZGxlVHJlc2hvbGRWYWx1ZSgpIHsgcmV0dXJuIDAuNjYgKiBNYXRoLmNlaWwodGhpcy5fbWF4VmFsdWUpOyB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgbG93VHJlc2hvbGRWYWx1ZSgpIHsgcmV0dXJuIDAuMzMgKiBNYXRoLmNlaWwodGhpcy5fbWF4VmFsdWUpOyB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgdG9wMTBQZXJjZW50VHJlc2hvbGQoKSB7IHJldHVybiAwLjkgKiBNYXRoLmNlaWwodGhpcy5fbWF4VmFsdWUpOyB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgYXZnVmFsdWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbCgodGhpcy5udW1lcmljRGF0YS5yZWR1Y2UoKGEsIGIpID0+IGEgKyBiLCAwKSkgLyB0aGlzLm51bWVyaWNEYXRhLmxlbmd0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgdGhyZXNob2xkKCkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwoTWF0aC5hYnModGhpcy5fbWluVmFsdWUpIC8gKHRoaXMuX21heFZhbHVlICsgTWF0aC5hYnModGhpcy5fbWluVmFsdWUpKSAqIDEwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQb3NpdGl2ZVBlcmNlbnRhZ2UodmFsKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKE1hdGguY2VpbCh2YWwpIC8gKHRoaXMuX21heFZhbHVlICsgTWF0aC5hYnModGhpcy5fbWluVmFsdWUpKSkgKiAxMDA7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChyZXN1bHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0TmVnYXRpdmVQZXJjZW50YWdlKHZhbCkge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IChNYXRoLmFicyh2YWwpIC8gKHRoaXMuX21heFZhbHVlICsgTWF0aC5hYnModGhpcy5fbWluVmFsdWUpKSkgKiAxMDA7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbChyZXN1bHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVzZXRSYW5nZShmb3JtYXRSYW5nZT86IFtdKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtYXRlZFJhbmdlLmNsZWFyKCk7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tUmFuZ2UgPSBmb3JtYXRSYW5nZSA/IGZvcm1hdFJhbmdlIDogdGhpcy5ncmlkLmdldFNlbGVjdGVkUmFuZ2VzKCk7XHJcbiAgICAgICAgY3VzdG9tUmFuZ2UuZm9yRWFjaChyYW5nZSA9PiB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHJpID0gcmFuZ2Uucm93U3RhcnQ7IHJpIDw9IE51bWJlcihyYW5nZS5yb3dFbmQpOyByaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBjaSA9IE51bWJlcihyYW5nZS5jb2x1bW5TdGFydCk7IGNpIDw9IE51bWJlcihyYW5nZS5jb2x1bW5FbmQpOyBjaSsrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRUb0NhY2hlKHJpLCBjaSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnJlY2FsY0NhY2hlZFZhbHVlcyh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFkZFRvQ2FjaGUocm93SW5kZXgsIGNvbEluZGV4LCBzZWxlY3Rpb24gPSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy5mb3JtYXRlZFJhbmdlLmhhcyhyb3dJbmRleCkgPyB0aGlzLmZvcm1hdGVkUmFuZ2UuZ2V0KHJvd0luZGV4KS5hZGQoY29sSW5kZXgpIDpcclxuICAgICAgICB0aGlzLmZvcm1hdGVkUmFuZ2Uuc2V0KHJvd0luZGV4LCBuZXcgU2V0PG51bWJlcj4oKSkuZ2V0KHJvd0luZGV4KS5hZGQoY29sSW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdG9BcnJheShkYXRhOiBhbnlbXSkge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBbXTtcclxuICAgICAgICBkYXRhLmZvckVhY2gocmVjID0+IHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoT2JqZWN0LnZhbHVlcyhyZWMpKSk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxufVxyXG5cclxuIl19
@@ -1,6 +1,6 @@
1
1
  import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
2
2
  // tslint:disable-next-line: max-line-length
3
- import { IgxButtonModule, IgxDividerModule, IgxGridModule, IgxTabsModule, IgxToggleModule, IgxIconModule } from '@infragistics/igniteui-angular';
3
+ import { IgxButtonModule, IgxDividerModule, IgxGridModule, IgxTabsModule, IgxToggleModule, IgxIconModule } from 'igniteui-angular';
4
4
  import { IgxBarSeriesModule, IgxCategoryChartModule, IgxCategoryXAxisModule, IgxDataChartCategoryModule, IgxDataChartCoreModule, IgxDataChartInteractivityModule, IgxDataChartScatterModule, IgxDataChartStackedModule, IgxItemLegendModule, IgxLegendModule, IgxNumericXAxisModule, IgxNumericYAxisModule } from 'igniteui-angular-charts';
5
5
  import { IgxPieChartModule } from 'igniteui-angular-charts';
6
6
  import { IgxChartMenuComponent } from './context-menu/chart-dialog/chart-dialog.component';
@@ -12,8 +12,8 @@ import { SvgPipe } from './pipes/svg.pipe';
12
12
  import * as i0 from "@angular/core";
13
13
  export class IgxExtrasModule {
14
14
  }
15
- IgxExtrasModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
- IgxExtrasModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, declarations: [IgxConditionalFormattingDirective,
15
+ IgxExtrasModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxExtrasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ IgxExtrasModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: IgxExtrasModule, declarations: [IgxConditionalFormattingDirective,
17
17
  IgxChartIntegrationDirective,
18
18
  IgxContextMenuDirective,
19
19
  IgxContextMenuComponent,
@@ -40,7 +40,7 @@ IgxExtrasModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
40
40
  IgxCategoryChartModule], exports: [IgxConditionalFormattingDirective,
41
41
  IgxChartIntegrationDirective,
42
42
  IgxContextMenuDirective] });
43
- IgxExtrasModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, imports: [IgxButtonModule,
43
+ IgxExtrasModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxExtrasModule, imports: [IgxButtonModule,
44
44
  IgxDividerModule,
45
45
  IgxGridModule,
46
46
  IgxTabsModule,
@@ -60,7 +60,7 @@ IgxExtrasModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
60
60
  IgxBarSeriesModule,
61
61
  IgxIconModule,
62
62
  IgxCategoryChartModule] });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxExtrasModule, decorators: [{
64
64
  type: NgModule,
65
65
  args: [{
66
66
  declarations: [
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
101
101
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
102
102
  }]
103
103
  }] });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWduaXRldWktYW5ndWxhci1leHRyYXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci1leHRyYXMvc3JjL2xpYi9pZ25pdGV1aS1hbmd1bGFyLWV4dHJhcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSw0Q0FBNEM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqSixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQ3ZFLDBCQUEwQixFQUF5QixzQkFBc0IsRUFDekUsK0JBQStCLEVBQUUseUJBQXlCLEVBQUUseUJBQXlCLEVBQzdELG1CQUFtQixFQUFzQixlQUFlLEVBQ2hGLHFCQUFxQixFQUFFLHFCQUFxQixFQUF3QixNQUFNLHlCQUF5QixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUEwQzNDLE1BQU0sT0FBTyxlQUFlOzs0R0FBZixlQUFlOzZHQUFmLGVBQWUsaUJBcENwQixpQ0FBaUM7UUFDakMsNEJBQTRCO1FBQzVCLHVCQUF1QjtRQUN2Qix1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLE9BQU8sYUFHUCxlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixhQUFhO1FBQ2IsZUFBZTtRQUNmLDBCQUEwQjtRQUMxQixzQkFBc0I7UUFDdEIsZUFBZTtRQUNmLCtCQUErQjtRQUMvQixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHlCQUF5QjtRQUN6QixnQkFBZ0I7UUFDaEIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2Isc0JBQXNCLGFBR3RCLGlDQUFpQztRQUNqQyw0QkFBNEI7UUFDNUIsdUJBQXVCOzZHQUlsQixlQUFlLFlBNUJwQixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixhQUFhO1FBQ2IsZUFBZTtRQUNmLDBCQUEwQjtRQUMxQixzQkFBc0I7UUFDdEIsZUFBZTtRQUNmLCtCQUErQjtRQUMvQixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHlCQUF5QjtRQUN6QixnQkFBZ0I7UUFDaEIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2Isc0JBQXNCOzJGQVNqQixlQUFlO2tCQXRDM0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsaUNBQWlDO3dCQUNqQyw0QkFBNEI7d0JBQzVCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLE9BQU87cUJBQ1Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIsZUFBZTt3QkFDZiwrQkFBK0I7d0JBQy9CLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQix5QkFBeUI7d0JBQ3pCLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2Isc0JBQXNCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsaUNBQWlDO3dCQUNqQyw0QkFBNEI7d0JBQzVCLHVCQUF1QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFLENBQUUsc0JBQXNCLENBQUU7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuaW1wb3J0IHsgSWd4QnV0dG9uTW9kdWxlLCBJZ3hEaXZpZGVyTW9kdWxlLCBJZ3hHcmlkTW9kdWxlLCBJZ3hUYWJzTW9kdWxlLCBJZ3hUb2dnbGVNb2R1bGUsIElneEljb25Nb2R1bGUgfSBmcm9tICdAaW5mcmFnaXN0aWNzL2lnbml0ZXVpLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBJZ3hCYXJTZXJpZXNNb2R1bGUsIElneENhdGVnb3J5Q2hhcnRNb2R1bGUsIElneENhdGVnb3J5WEF4aXNNb2R1bGUsXHJcbiAgICBJZ3hEYXRhQ2hhcnRDYXRlZ29yeU1vZHVsZSwgSWd4RGF0YUNoYXJ0Q29tcG9uZW50LCBJZ3hEYXRhQ2hhcnRDb3JlTW9kdWxlLFxyXG4gICAgSWd4RGF0YUNoYXJ0SW50ZXJhY3Rpdml0eU1vZHVsZSwgSWd4RGF0YUNoYXJ0U2NhdHRlck1vZHVsZSwgSWd4RGF0YUNoYXJ0U3RhY2tlZE1vZHVsZSxcclxuICAgIElneEl0ZW1MZWdlbmRDb21wb25lbnQsIElneEl0ZW1MZWdlbmRNb2R1bGUsIElneExlZ2VuZENvbXBvbmVudCwgSWd4TGVnZW5kTW9kdWxlLFxyXG4gICAgSWd4TnVtZXJpY1hBeGlzTW9kdWxlLCBJZ3hOdW1lcmljWUF4aXNNb2R1bGUsIElneFBpZUNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnaWduaXRldWktYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBJZ3hQaWVDaGFydE1vZHVsZSB9IGZyb20gJ2lnbml0ZXVpLWFuZ3VsYXItY2hhcnRzJztcclxuaW1wb3J0IHsgSWd4Q2hhcnRNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LW1lbnUvY2hhcnQtZGlhbG9nL2NoYXJ0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJZ3hDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJZ3hDb250ZXh0TWVudURpcmVjdGl2ZSB9IGZyb20gJy4vY29udGV4dC1tZW51L2lneC1jb250ZXh0LW1lbnUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSWd4Q2hhcnRJbnRlZ3JhdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9jaGFydC1pbnRlZ3JhdGlvbi9jaGFydC1pbnRlZ3JhdGlvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJZ3hDb25kaXRpb25hbEZvcm1hdHRpbmdEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtZm9ybWF0dGluZy9jb25kaXRpb25hbC1mb3JtYXR0aW5nLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN2Z1BpcGUgfSBmcm9tICcuL3BpcGVzL3N2Zy5waXBlJztcclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIElneENvbmRpdGlvbmFsRm9ybWF0dGluZ0RpcmVjdGl2ZSxcclxuICAgICAgICBJZ3hDaGFydEludGVncmF0aW9uRGlyZWN0aXZlLFxyXG4gICAgICAgIElneENvbnRleHRNZW51RGlyZWN0aXZlLFxyXG4gICAgICAgIElneENvbnRleHRNZW51Q29tcG9uZW50LFxyXG4gICAgICAgIElneENoYXJ0TWVudUNvbXBvbmVudCxcclxuICAgICAgICBTdmdQaXBlXHJcbiAgICBdLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIElneEJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBJZ3hEaXZpZGVyTW9kdWxlLFxyXG4gICAgICAgIElneEdyaWRNb2R1bGUsXHJcbiAgICAgICAgSWd4VGFic01vZHVsZSxcclxuICAgICAgICBJZ3hUb2dnbGVNb2R1bGUsXHJcbiAgICAgICAgSWd4RGF0YUNoYXJ0Q2F0ZWdvcnlNb2R1bGUsXHJcbiAgICAgICAgSWd4RGF0YUNoYXJ0Q29yZU1vZHVsZSxcclxuICAgICAgICBJZ3hMZWdlbmRNb2R1bGUsXHJcbiAgICAgICAgSWd4RGF0YUNoYXJ0SW50ZXJhY3Rpdml0eU1vZHVsZSxcclxuICAgICAgICBJZ3hOdW1lcmljWEF4aXNNb2R1bGUsXHJcbiAgICAgICAgSWd4TnVtZXJpY1lBeGlzTW9kdWxlLFxyXG4gICAgICAgIElneENhdGVnb3J5WEF4aXNNb2R1bGUsXHJcbiAgICAgICAgSWd4SXRlbUxlZ2VuZE1vZHVsZSxcclxuICAgICAgICBJZ3hQaWVDaGFydE1vZHVsZSxcclxuICAgICAgICBJZ3hEYXRhQ2hhcnRTdGFja2VkTW9kdWxlLFxyXG4gICAgICAgIElneERpdmlkZXJNb2R1bGUsXHJcbiAgICAgICAgSWd4RGF0YUNoYXJ0U2NhdHRlck1vZHVsZSxcclxuICAgICAgICBJZ3hCYXJTZXJpZXNNb2R1bGUsXHJcbiAgICAgICAgSWd4SWNvbk1vZHVsZSxcclxuICAgICAgICBJZ3hDYXRlZ29yeUNoYXJ0TW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIElneENvbmRpdGlvbmFsRm9ybWF0dGluZ0RpcmVjdGl2ZSxcclxuICAgICAgICBJZ3hDaGFydEludGVncmF0aW9uRGlyZWN0aXZlLFxyXG4gICAgICAgIElneENvbnRleHRNZW51RGlyZWN0aXZlXHJcbiAgICBdLFxyXG4gICAgc2NoZW1hczogWyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElneEV4dHJhc01vZHVsZSB7IH1cclxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWduaXRldWktYW5ndWxhci1leHRyYXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci1leHRyYXMvc3JjL2xpYi9pZ25pdGV1aS1hbmd1bGFyLWV4dHJhcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSw0Q0FBNEM7QUFDNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuSSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQ3ZFLDBCQUEwQixFQUF5QixzQkFBc0IsRUFDekUsK0JBQStCLEVBQUUseUJBQXlCLEVBQUUseUJBQXlCLEVBQzdELG1CQUFtQixFQUFzQixlQUFlLEVBQ2hGLHFCQUFxQixFQUFFLHFCQUFxQixFQUF3QixNQUFNLHlCQUF5QixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUEwQzNDLE1BQU0sT0FBTyxlQUFlOzs0R0FBZixlQUFlOzZHQUFmLGVBQWUsaUJBcENwQixpQ0FBaUM7UUFDakMsNEJBQTRCO1FBQzVCLHVCQUF1QjtRQUN2Qix1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLE9BQU8sYUFHUCxlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixhQUFhO1FBQ2IsZUFBZTtRQUNmLDBCQUEwQjtRQUMxQixzQkFBc0I7UUFDdEIsZUFBZTtRQUNmLCtCQUErQjtRQUMvQixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHlCQUF5QjtRQUN6QixnQkFBZ0I7UUFDaEIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2Isc0JBQXNCLGFBR3RCLGlDQUFpQztRQUNqQyw0QkFBNEI7UUFDNUIsdUJBQXVCOzZHQUlsQixlQUFlLFlBNUJwQixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLGFBQWE7UUFDYixhQUFhO1FBQ2IsZUFBZTtRQUNmLDBCQUEwQjtRQUMxQixzQkFBc0I7UUFDdEIsZUFBZTtRQUNmLCtCQUErQjtRQUMvQixxQkFBcUI7UUFDckIscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QixtQkFBbUI7UUFDbkIsaUJBQWlCO1FBQ2pCLHlCQUF5QjtRQUN6QixnQkFBZ0I7UUFDaEIseUJBQXlCO1FBQ3pCLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2Isc0JBQXNCOzJGQVNqQixlQUFlO2tCQXRDM0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsaUNBQWlDO3dCQUNqQyw0QkFBNEI7d0JBQzVCLHVCQUF1Qjt3QkFDdkIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLE9BQU87cUJBQ1Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIsZUFBZTt3QkFDZiwrQkFBK0I7d0JBQy9CLHFCQUFxQjt3QkFDckIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsaUJBQWlCO3dCQUNqQix5QkFBeUI7d0JBQ3pCLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2Isc0JBQXNCO3FCQUN6QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsaUNBQWlDO3dCQUNqQyw0QkFBNEI7d0JBQzVCLHVCQUF1QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFLENBQUUsc0JBQXNCLENBQUU7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBtYXgtbGluZS1sZW5ndGhcclxuaW1wb3J0IHsgSWd4QnV0dG9uTW9kdWxlLCBJZ3hEaXZpZGVyTW9kdWxlLCBJZ3hHcmlkTW9kdWxlLCBJZ3hUYWJzTW9kdWxlLCBJZ3hUb2dnbGVNb2R1bGUsIElneEljb25Nb2R1bGUgfSBmcm9tICdpZ25pdGV1aS1hbmd1bGFyJztcclxuaW1wb3J0IHsgSWd4QmFyU2VyaWVzTW9kdWxlLCBJZ3hDYXRlZ29yeUNoYXJ0TW9kdWxlLCBJZ3hDYXRlZ29yeVhBeGlzTW9kdWxlLFxyXG4gICAgSWd4RGF0YUNoYXJ0Q2F0ZWdvcnlNb2R1bGUsIElneERhdGFDaGFydENvbXBvbmVudCwgSWd4RGF0YUNoYXJ0Q29yZU1vZHVsZSxcclxuICAgIElneERhdGFDaGFydEludGVyYWN0aXZpdHlNb2R1bGUsIElneERhdGFDaGFydFNjYXR0ZXJNb2R1bGUsIElneERhdGFDaGFydFN0YWNrZWRNb2R1bGUsXHJcbiAgICBJZ3hJdGVtTGVnZW5kQ29tcG9uZW50LCBJZ3hJdGVtTGVnZW5kTW9kdWxlLCBJZ3hMZWdlbmRDb21wb25lbnQsIElneExlZ2VuZE1vZHVsZSxcclxuICAgIElneE51bWVyaWNYQXhpc01vZHVsZSwgSWd4TnVtZXJpY1lBeGlzTW9kdWxlLCBJZ3hQaWVDaGFydENvbXBvbmVudCB9IGZyb20gJ2lnbml0ZXVpLWFuZ3VsYXItY2hhcnRzJztcclxuaW1wb3J0IHsgSWd4UGllQ2hhcnRNb2R1bGUgfSBmcm9tICdpZ25pdGV1aS1hbmd1bGFyLWNoYXJ0cyc7XHJcbmltcG9ydCB7IElneENoYXJ0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY29udGV4dC1tZW51L2NoYXJ0LWRpYWxvZy9jaGFydC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSWd4Q29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgSWd4Q29udGV4dE1lbnVEaXJlY3RpdmUgfSBmcm9tICcuL2NvbnRleHQtbWVudS9pZ3gtY29udGV4dC1tZW51LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IElneENoYXJ0SW50ZWdyYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvY2hhcnQtaW50ZWdyYXRpb24vY2hhcnQtaW50ZWdyYXRpb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgSWd4Q29uZGl0aW9uYWxGb3JtYXR0aW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2NvbmRpdGlvbmFsLWZvcm1hdHRpbmcvY29uZGl0aW9uYWwtZm9ybWF0dGluZy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTdmdQaXBlIH0gZnJvbSAnLi9waXBlcy9zdmcucGlwZSc7XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBJZ3hDb25kaXRpb25hbEZvcm1hdHRpbmdEaXJlY3RpdmUsXHJcbiAgICAgICAgSWd4Q2hhcnRJbnRlZ3JhdGlvbkRpcmVjdGl2ZSxcclxuICAgICAgICBJZ3hDb250ZXh0TWVudURpcmVjdGl2ZSxcclxuICAgICAgICBJZ3hDb250ZXh0TWVudUNvbXBvbmVudCxcclxuICAgICAgICBJZ3hDaGFydE1lbnVDb21wb25lbnQsXHJcbiAgICAgICAgU3ZnUGlwZVxyXG4gICAgXSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBJZ3hCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgSWd4RGl2aWRlck1vZHVsZSxcclxuICAgICAgICBJZ3hHcmlkTW9kdWxlLFxyXG4gICAgICAgIElneFRhYnNNb2R1bGUsXHJcbiAgICAgICAgSWd4VG9nZ2xlTW9kdWxlLFxyXG4gICAgICAgIElneERhdGFDaGFydENhdGVnb3J5TW9kdWxlLFxyXG4gICAgICAgIElneERhdGFDaGFydENvcmVNb2R1bGUsXHJcbiAgICAgICAgSWd4TGVnZW5kTW9kdWxlLFxyXG4gICAgICAgIElneERhdGFDaGFydEludGVyYWN0aXZpdHlNb2R1bGUsXHJcbiAgICAgICAgSWd4TnVtZXJpY1hBeGlzTW9kdWxlLFxyXG4gICAgICAgIElneE51bWVyaWNZQXhpc01vZHVsZSxcclxuICAgICAgICBJZ3hDYXRlZ29yeVhBeGlzTW9kdWxlLFxyXG4gICAgICAgIElneEl0ZW1MZWdlbmRNb2R1bGUsXHJcbiAgICAgICAgSWd4UGllQ2hhcnRNb2R1bGUsXHJcbiAgICAgICAgSWd4RGF0YUNoYXJ0U3RhY2tlZE1vZHVsZSxcclxuICAgICAgICBJZ3hEaXZpZGVyTW9kdWxlLFxyXG4gICAgICAgIElneERhdGFDaGFydFNjYXR0ZXJNb2R1bGUsXHJcbiAgICAgICAgSWd4QmFyU2VyaWVzTW9kdWxlLFxyXG4gICAgICAgIElneEljb25Nb2R1bGUsXHJcbiAgICAgICAgSWd4Q2F0ZWdvcnlDaGFydE1vZHVsZVxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBJZ3hDb25kaXRpb25hbEZvcm1hdHRpbmdEaXJlY3RpdmUsXHJcbiAgICAgICAgSWd4Q2hhcnRJbnRlZ3JhdGlvbkRpcmVjdGl2ZSxcclxuICAgICAgICBJZ3hDb250ZXh0TWVudURpcmVjdGl2ZVxyXG4gICAgXSxcclxuICAgIHNjaGVtYXM6IFsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ3hFeHRyYXNNb2R1bGUgeyB9XHJcblxyXG4iXX0=
@@ -9,9 +9,9 @@ export class SvgPipe {
9
9
  return this.sanitizer.bypassSecurityTrustHtml(markup);
10
10
  }
11
11
  }
12
- SvgPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: SvgPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
13
- SvgPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: SvgPipe, name: "svg" });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: SvgPipe, decorators: [{
12
+ SvgPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SvgPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
13
+ SvgPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: SvgPipe, name: "svg" });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SvgPipe, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{
17
17
  name: 'svg'
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Pipe, EventEmitter, ViewContainerRef, Component, ViewEncapsulation, ViewChild, Output, HostBinding, Directive, Inject, Input, Optional, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
- import * as i1$1 from '@infragistics/igniteui-angular';
4
- import { CloseScrollStrategy, AutoPositionStrategy, HorizontalAlignment, VerticalAlignment, IgxToggleDirective, IgxTabsComponent, IgxGridComponent, AbsoluteScrollStrategy, IgxButtonModule, IgxDividerModule, IgxGridModule, IgxTabsModule, IgxToggleModule, IgxIconModule } from '@infragistics/igniteui-angular';
3
+ import * as i1$1 from 'igniteui-angular';
4
+ import { CloseScrollStrategy, AutoPositionStrategy, HorizontalAlignment, VerticalAlignment, IgxToggleDirective, IgxTabsComponent, IgxGridComponent, AbsoluteScrollStrategy, IgxButtonModule, IgxDividerModule, IgxGridModule, IgxTabsModule, IgxToggleModule, IgxIconModule } from 'igniteui-angular';
5
5
  import { IgxCategoryXAxisComponent, IgxNumericYAxisComponent, IgxScatterLineSeriesComponent, IgxNumericXAxisComponent, IgxBubbleSeriesComponent, IgxScatterSeriesComponent, IgxBarSeriesComponent, IgxCategoryYAxisComponent, IgxStackedBarSeriesComponent, IgxStacked100BarSeriesComponent, IgxStackedFragmentSeriesComponent, IgxSizeScaleComponent, IgxColumnSeriesComponent, IgxAreaSeriesComponent, IgxLineSeriesComponent, IgxStackedColumnSeriesComponent, IgxStackedAreaSeriesComponent, IgxStackedLineSeriesComponent, IgxStacked100ColumnSeriesComponent, IgxStacked100AreaSeriesComponent, IgxStacked100LineSeriesComponent, IgxPieChartComponent, IgxDataChartComponent, IgxItemLegendComponent, IgxLegendComponent, IgxDataChartCategoryModule, IgxDataChartCoreModule, IgxLegendModule, IgxDataChartInteractivityModule, IgxNumericXAxisModule, IgxNumericYAxisModule, IgxCategoryXAxisModule, IgxItemLegendModule, IgxPieChartModule, IgxDataChartStackedModule, IgxDataChartScatterModule, IgxBarSeriesModule, IgxCategoryChartModule } from 'igniteui-angular-charts';
6
6
  import { Subject } from 'rxjs';
7
7
  import { ResizeObserver } from '@juggle/resize-observer';
@@ -446,9 +446,9 @@ class SvgPipe {
446
446
  return this.sanitizer.bypassSecurityTrustHtml(markup);
447
447
  }
448
448
  }
449
- SvgPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: SvgPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
450
- SvgPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: SvgPipe, name: "svg" });
451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: SvgPipe, decorators: [{
449
+ SvgPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SvgPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
450
+ SvgPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: SvgPipe, name: "svg" });
451
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: SvgPipe, decorators: [{
452
452
  type: Pipe,
453
453
  args: [{
454
454
  name: 'svg'
@@ -496,9 +496,9 @@ class IgxChartMenuComponent {
496
496
  this.chartDirective.chartFactory(chartType, this.chartArea);
497
497
  }
498
498
  }
499
- IgxChartMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxChartMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
500
- IgxChartMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: IgxChartMenuComponent, selector: "igx-chart-menu", outputs: { onClose: "onClose" }, host: { properties: { "style.width.px": "this.width", "style.height.px": "this.height" } }, viewQueries: [{ propertyName: "chartArea", first: true, predicate: ["chartArea"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"header\">\r\n <span class=\"header-text\">\r\n {{ title }} Chart\r\n </span>\r\n <span class=\"action-buttons-wrapper\">\r\n <button igxButton=\"icon\" (click)=\"toggleFullScreen()\">\r\n <igx-icon class=\"material\">fullscreen{{fullScreen ? '_exit' : ''}}</igx-icon>\r\n </button>\r\n <button igxButton=\"icon\" (click)=\"onClose.emit()\">\r\n <igx-icon class=\"material\">close</igx-icon>\r\n </button>\r\n </span>\r\n</div>\r\n<div class=\"selection-area ig-scrollbar\">\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"chart-area\" [ngClass]=\"{'expanded': isConfigAreaExpanded}\">\r\n <ng-template #chartArea ></ng-template>\r\n </div>\r\n <div>\r\n <button igxButton=\"icon\" igxRipple (click)=\"isConfigAreaExpanded = !isConfigAreaExpanded\">\r\n <igx-icon family=\"material\">chevron_{{ isConfigAreaExpanded ? 'left': 'right'}}</igx-icon>\r\n </button>\r\n </div>\r\n <div #configArea [ngClass]=\"{'chart-config-area': true, 'opened': !isConfigAreaExpanded, 'closed': isConfigAreaExpanded }\">\r\n <div class=\"config-area-header\">\r\n <span>Chart Types</span>\r\n </div>\r\n <igx-divider class=\"divider\"></igx-divider>\r\n <div class=\"wrapper\" *ngFor=\"let chartType of mainChartTypes\">\r\n <ng-container *ngIf=\"hasAvailableChart(chartType)\">\r\n <div>{{chartType | titlecase}} Chart</div>\r\n <div class=\"types-section\">\r\n <ng-container *ngFor=\"let chart of allCharts\">\r\n <span *ngIf=\"chart.startsWith(chartType)\" class=\"types-section-btn\" title=\"{{chart}}\"\r\n [ngClass]=\"{'selected': chart === currentChartType}\" (click)=\"createChart(chart)\">\r\n <div [innerHTML]=\"images[chart] | svg\">\r\n </div>\r\n </span>\r\n </ng-container>\r\n </div>\r\n <igx-divider></igx-divider>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ig-chart-legend-items-list{height:20%;display:inline-flex;flex-wrap:wrap;margin-bottom:1rem}igx-chart-menu{display:flex;flex-flow:column;overflow:hidden;background-color:#fff;transition:width .2s ease-in-out,height .3s ease-in-out}.header{height:10%;background-color:#e0e0e0;display:flex;font-size:1.8rem}.header .action-buttons-wrapper{margin-left:auto;margin-right:10px;align-self:center}.header .header-text{margin-right:auto;align-self:center;margin-left:3rem}.selection-area{width:100%;height:90%;display:inline-flex;flex-flow:row}.selection-area,.selection-area .ig-scrollbar{--size: var(--ig-scrollbar-size, 8px);--thumb-background: var(--ig-scrollbar-thumb-background, hsla(var(--ig-gray-400), var(--ig-gray-a)));--track-background: var(--ig-scrollbar-track-background, hsla(var(--ig-gray-100), var(--ig-gray-a)))}.selection-area .chart-area{margin-top:1rem;overflow-y:hidden;overflow-x:hidden;width:100%}.selection-area .chart-config-area{transition:all;transition-duration:.3s;transition-timing-function:ease-in-out}.selection-area .chart-config-area.opened{width:25%;overflow-y:auto;overflow-x:hidden}.selection-area .chart-config-area.closed{width:0;transform:translate(100%)}.selection-area .chart-config-area .config-area-header{margin-bottom:3px;font-size:1rem;font-weight:700;text-align:center}.selection-area .chart-config-area .types-section-btn{width:40%;margin-right:5px;cursor:pointer}.selection-area .chart-config-area .types-section-btn.selected{opacity:.5}.selection-area .wrapper{padding:3px}.selection-area .wrapper .types-section{display:flex;flex-wrap:wrap}.selection-area .wrapper .igx-divider{margin:5px!important;background:black!important}\n"], dependencies: [{ kind: "directive", type: i1$1.IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: i1$1.IgxDividerDirective, selector: "igx-divider", inputs: ["id", "role", "type", "middle", "vertical", "inset"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$1.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: i1$1.IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: SvgPipe, name: "svg" }], encapsulation: i0.ViewEncapsulation.None });
501
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxChartMenuComponent, decorators: [{
499
+ IgxChartMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxChartMenuComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
500
+ IgxChartMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: IgxChartMenuComponent, selector: "igx-chart-menu", outputs: { onClose: "onClose" }, host: { properties: { "style.width.px": "this.width", "style.height.px": "this.height" } }, viewQueries: [{ propertyName: "chartArea", first: true, predicate: ["chartArea"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"header\">\r\n <span class=\"header-text\">\r\n {{ title }} Chart\r\n </span>\r\n <span class=\"action-buttons-wrapper\">\r\n <button igxButton=\"icon\" (click)=\"toggleFullScreen()\">\r\n <igx-icon class=\"material\">fullscreen{{fullScreen ? '_exit' : ''}}</igx-icon>\r\n </button>\r\n <button igxButton=\"icon\" (click)=\"onClose.emit()\">\r\n <igx-icon class=\"material\">close</igx-icon>\r\n </button>\r\n </span>\r\n</div>\r\n<div class=\"selection-area ig-scrollbar\">\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"chart-area\" [ngClass]=\"{'expanded': isConfigAreaExpanded}\">\r\n <ng-template #chartArea ></ng-template>\r\n </div>\r\n <div>\r\n <button igxButton=\"icon\" igxRipple (click)=\"isConfigAreaExpanded = !isConfigAreaExpanded\">\r\n <igx-icon family=\"material\">chevron_{{ isConfigAreaExpanded ? 'left': 'right'}}</igx-icon>\r\n </button>\r\n </div>\r\n <div #configArea [ngClass]=\"{'chart-config-area': true, 'opened': !isConfigAreaExpanded, 'closed': isConfigAreaExpanded }\">\r\n <div class=\"config-area-header\">\r\n <span>Chart Types</span>\r\n </div>\r\n <igx-divider class=\"divider\"></igx-divider>\r\n <div class=\"wrapper\" *ngFor=\"let chartType of mainChartTypes\">\r\n <ng-container *ngIf=\"hasAvailableChart(chartType)\">\r\n <div>{{chartType | titlecase}} Chart</div>\r\n <div class=\"types-section\">\r\n <ng-container *ngFor=\"let chart of allCharts\">\r\n <span *ngIf=\"chart.startsWith(chartType)\" class=\"types-section-btn\" title=\"{{chart}}\"\r\n [ngClass]=\"{'selected': chart === currentChartType}\" (click)=\"createChart(chart)\">\r\n <div [innerHTML]=\"images[chart] | svg\">\r\n </div>\r\n </span>\r\n </ng-container>\r\n </div>\r\n <igx-divider></igx-divider>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ig-chart-legend-items-list{height:20%;display:inline-flex;flex-wrap:wrap;margin-bottom:1rem}igx-chart-menu{display:flex;flex-flow:column;overflow:hidden;background-color:#fff;transition:width .2s ease-in-out,height .3s ease-in-out}.header{height:10%;background-color:#e0e0e0;display:flex;font-size:1.8rem}.header .action-buttons-wrapper{margin-left:auto;margin-right:10px;align-self:center}.header .header-text{margin-right:auto;align-self:center;margin-left:3rem}.selection-area{width:100%;height:90%;display:inline-flex;flex-flow:row}.selection-area,.selection-area .ig-scrollbar{--size: var(--ig-scrollbar-size, 8px);--thumb-background: var(--ig-scrollbar-thumb-background, hsla(var(--ig-gray-400), var(--ig-gray-a)));--track-background: var(--ig-scrollbar-track-background, hsla(var(--ig-gray-100), var(--ig-gray-a)))}.selection-area .chart-area{margin-top:1rem;overflow-y:hidden;overflow-x:hidden;width:100%}.selection-area .chart-config-area{transition:all;transition-duration:.3s;transition-timing-function:ease-in-out}.selection-area .chart-config-area.opened{width:25%;overflow-y:auto;overflow-x:hidden}.selection-area .chart-config-area.closed{width:0;transform:translate(100%)}.selection-area .chart-config-area .config-area-header{margin-bottom:3px;font-size:1rem;font-weight:700;text-align:center}.selection-area .chart-config-area .types-section-btn{width:40%;margin-right:5px;cursor:pointer}.selection-area .chart-config-area .types-section-btn.selected{opacity:.5}.selection-area .wrapper{padding:3px}.selection-area .wrapper .types-section{display:flex;flex-wrap:wrap}.selection-area .wrapper .igx-divider{margin:5px!important;background:black!important}\n"], dependencies: [{ kind: "directive", type: i1$1.IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: i1$1.IgxDividerDirective, selector: "igx-divider", inputs: ["id", "role", "type", "middle", "vertical", "inset"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1$1.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: i1$1.IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: SvgPipe, name: "svg" }], encapsulation: i0.ViewEncapsulation.None });
501
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxChartMenuComponent, decorators: [{
502
502
  type: Component,
503
503
  args: [{ selector: 'igx-chart-menu', encapsulation: ViewEncapsulation.None, template: "<div class=\"header\">\r\n <span class=\"header-text\">\r\n {{ title }} Chart\r\n </span>\r\n <span class=\"action-buttons-wrapper\">\r\n <button igxButton=\"icon\" (click)=\"toggleFullScreen()\">\r\n <igx-icon class=\"material\">fullscreen{{fullScreen ? '_exit' : ''}}</igx-icon>\r\n </button>\r\n <button igxButton=\"icon\" (click)=\"onClose.emit()\">\r\n <igx-icon class=\"material\">close</igx-icon>\r\n </button>\r\n </span>\r\n</div>\r\n<div class=\"selection-area ig-scrollbar\">\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"chart-area\" [ngClass]=\"{'expanded': isConfigAreaExpanded}\">\r\n <ng-template #chartArea ></ng-template>\r\n </div>\r\n <div>\r\n <button igxButton=\"icon\" igxRipple (click)=\"isConfigAreaExpanded = !isConfigAreaExpanded\">\r\n <igx-icon family=\"material\">chevron_{{ isConfigAreaExpanded ? 'left': 'right'}}</igx-icon>\r\n </button>\r\n </div>\r\n <div #configArea [ngClass]=\"{'chart-config-area': true, 'opened': !isConfigAreaExpanded, 'closed': isConfigAreaExpanded }\">\r\n <div class=\"config-area-header\">\r\n <span>Chart Types</span>\r\n </div>\r\n <igx-divider class=\"divider\"></igx-divider>\r\n <div class=\"wrapper\" *ngFor=\"let chartType of mainChartTypes\">\r\n <ng-container *ngIf=\"hasAvailableChart(chartType)\">\r\n <div>{{chartType | titlecase}} Chart</div>\r\n <div class=\"types-section\">\r\n <ng-container *ngFor=\"let chart of allCharts\">\r\n <span *ngIf=\"chart.startsWith(chartType)\" class=\"types-section-btn\" title=\"{{chart}}\"\r\n [ngClass]=\"{'selected': chart === currentChartType}\" (click)=\"createChart(chart)\">\r\n <div [innerHTML]=\"images[chart] | svg\">\r\n </div>\r\n </span>\r\n </ng-container>\r\n </div>\r\n <igx-divider></igx-divider>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".ig-chart-legend-items-list{height:20%;display:inline-flex;flex-wrap:wrap;margin-bottom:1rem}igx-chart-menu{display:flex;flex-flow:column;overflow:hidden;background-color:#fff;transition:width .2s ease-in-out,height .3s ease-in-out}.header{height:10%;background-color:#e0e0e0;display:flex;font-size:1.8rem}.header .action-buttons-wrapper{margin-left:auto;margin-right:10px;align-self:center}.header .header-text{margin-right:auto;align-self:center;margin-left:3rem}.selection-area{width:100%;height:90%;display:inline-flex;flex-flow:row}.selection-area,.selection-area .ig-scrollbar{--size: var(--ig-scrollbar-size, 8px);--thumb-background: var(--ig-scrollbar-thumb-background, hsla(var(--ig-gray-400), var(--ig-gray-a)));--track-background: var(--ig-scrollbar-track-background, hsla(var(--ig-gray-100), var(--ig-gray-a)))}.selection-area .chart-area{margin-top:1rem;overflow-y:hidden;overflow-x:hidden;width:100%}.selection-area .chart-config-area{transition:all;transition-duration:.3s;transition-timing-function:ease-in-out}.selection-area .chart-config-area.opened{width:25%;overflow-y:auto;overflow-x:hidden}.selection-area .chart-config-area.closed{width:0;transform:translate(100%)}.selection-area .chart-config-area .config-area-header{margin-bottom:3px;font-size:1rem;font-weight:700;text-align:center}.selection-area .chart-config-area .types-section-btn{width:40%;margin-right:5px;cursor:pointer}.selection-area .chart-config-area .types-section-btn.selected{opacity:.5}.selection-area .wrapper{padding:3px}.selection-area .wrapper .types-section{display:flex;flex-wrap:wrap}.selection-area .wrapper .igx-divider{margin:5px!important;background:black!important}\n"] }]
504
504
  }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { chartArea: [{
@@ -796,9 +796,9 @@ class IgxContextMenuComponent {
796
796
  }
797
797
  }
798
798
  }
799
- IgxContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxContextMenuComponent, deps: [{ token: i1$1.IgxOverlayService }], target: i0.ɵɵFactoryTarget.Component });
800
- IgxContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: IgxContextMenuComponent, selector: "igx-context-menu", viewQueries: [{ propertyName: "button", first: true, predicate: ["analyticsBtn"], descendants: true }, { propertyName: "tabsMenu", first: true, predicate: ["tabsMenu"], descendants: true, read: IgxToggleDirective }, { propertyName: "chartPreview", first: true, predicate: ["chartPreview"], descendants: true, read: ViewContainerRef }, { propertyName: "chartPreviewDialog", first: true, predicate: ["chartPreviewDialog"], descendants: true, read: IgxToggleDirective }, { propertyName: "tabs", first: true, predicate: IgxTabsComponent, descendants: true }], ngImport: i0, template: "<span #analyticsBtn class=\"analytics-btn\">\r\n <button #btn igxButton=\"icon\" (click)=\"toggleTabMenu()\">\r\n <igx-icon #icon class=\"icon\" family=\"material\">insert_chart_outlined</igx-icon>\r\n </button>\r\n</span>\r\n<div #tabsMenu igxToggle class=\"toggle-content ig-scrollbar\">\r\n <!--NOTE: This component has been updated by Infragistics migration: v12.0.0\r\nPlease check your template whether all bindings/event handlers are correct.-->\r\n <igx-tabs tabsType=\"fixed\" [selectedIndex]=\"!this.textFormatters.length && chartTypes.length ? 1 : 0\">\r\n <igx-tab-item [disabled]=\"!textFormatters.length\">\r\n <igx-tab-header>\r\n <span igxTabHeaderLabel>Conditional Formatting</span>\r\n </igx-tab-header>\r\n <igx-tab-content>\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"tabs\">\r\n <span class=\"tab-option\">\r\n <span *ngFor=\"let condition of textFormatters\" class=\"action btn condition\"\r\n [ngClass]=\"{'selected--condition': condition === currentFormatter}\"\r\n (click)=\"formatCells(condition)\">\r\n <div class=\"imgSize\" [innerHTML]=\"conditionImages[condition.replace(' ', '')] | svg\">\r\n </div>\r\n <span class=\"name\">{{condition.replace('10', '10%')}}</span>\r\n </span>\r\n </span>\r\n <span class=\"clear action\"\r\n [ngClass]=\"{'disableButton': contextDirective.textFormatter ? !contextDirective.textFormatter.formatter : true }\"\r\n (click)=\"clearFormat()\">\r\n <div class=\"imgSize\" [innerHTML]=\"conditionImages['Clear'] | svg\">\r\n </div>\r\n <span class=\"btn name\">Clear All</span>\r\n </span>\r\n </div>\r\n </igx-tab-content>\r\n </igx-tab-item>\r\n <igx-tab-item [disabled]=\"!chartTypes.length\">\r\n <igx-tab-header>\r\n <span igxTabHeaderLabel>Create Chart</span>\r\n </igx-tab-header>\r\n <igx-tab-content>\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"tabs\">\r\n <span class=\"tab-option\">\r\n <span *ngFor=\"let chart of chartTypes | slice:0:4\" class=\"action btn chart\"\r\n [ngClass]=\"{'selected': chart === currentChartType}\" (mouseenter)=\"previewChart(chart)\"\r\n (mouseleave)=\"hidePreview()\" (click)=\"openDialog(chart)\">\r\n <span [innerHTML]=\"chartImages[chart] | svg\" class=\"imgSize\">\r\n </span>\r\n <span class=\"name\">{{chart}}</span>\r\n </span>\r\n </span>\r\n <span class=\"more-action chart\" [ngClass]=\"{'disableButton': !chartTypes.length}\"\r\n (click)=\"openDialog()\">\r\n <button class=\"more-btn more-icon\" igxButton=\"icon\" igxButtonBackground=\"#EBEBEB\"\r\n igxButtonColor=\"black\">\r\n <igx-icon class=\"icon\" family=\"material\">more_horiz</igx-icon>\r\n </button>\r\n <span class=\"name btn\">More...</span>\r\n </span>\r\n </div>\r\n </igx-tab-content>\r\n </igx-tab-item>\r\n </igx-tabs>\r\n</div>\r\n<div igxToggle #chartPreviewDialog class=\"chart-preview\">\r\n <div class=\"chart-preview-title\">\r\n <h5>Preview Chart</h5>\r\n </div>\r\n <div class=\"chart-preview-area\">\r\n <ng-template #chartPreview></ng-template>\r\n </div>\r\n</div>", styles: [".analytics-btn,.analytics-btn [igxButton=flat],.analytics-btn .igx-button--flat{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-400), .12));--active-foreground: var(--igx-button-active-foreground, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0))}.analytics-btn,.analytics-btn [igxButton=outlined],.analytics-btn .igx-button--outlined{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--hover-border-color: var(--igx-button-hover-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--focus-border-color: var(--igx-button-focus-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--focus-visible-border-color: var(--igx-button-focus-visible-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--active-border-color: var(--igx-button-active-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--disabled-border-color: var(--igx-button-disabled-border-color, hsla(var(--ig-gray-300), var(--ig-gray-a)));--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-400), .12));--active-foreground: var(--igx-button-active-foreground, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0))}.analytics-btn,.analytics-btn [igxButton=raised],.analytics-btn .igx-button--raised{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, hsla(var(--ig-gray-300), var(--ig-gray-a)));--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-2));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-4));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-8));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-8));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-300), var(--ig-secondary-a)));--active-foreground: var(--igx-button-active-foreground, var(--ig-secondary-300-contrast));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-2));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-4));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-8));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-8))}.analytics-btn,.analytics-btn [igxButton=fab],.analytics-btn .igx-button--fab{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, hsla(var(--ig-gray-300), var(--ig-gray-a)));--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-6));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-12));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-12));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-12));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-300), var(--ig-secondary-a)));--active-foreground: var(--igx-button-active-foreground, var(--ig-secondary-300-contrast));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-6));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-12));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-12));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-12))}.analytics-btn,.analytics-btn [igxButton=icon],.analytics-btn .igx-button--icon{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));--focus-visible-border-color: var(--igx-button-focus-visible-border-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));--active-border-color: var(--igx-button-active-border-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-gray-200), var(--ig-gray-a)));--active-foreground: var(--igx-button-active-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0))}.disableButton{opacity:.4;pointer-events:none}.clear,.more-action{display:flex;flex-flow:column;justify-content:center;border-left:1px solid #bdbdbd}.clear .btn,.clear .more-btn,.more-action .btn,.more-action .more-btn{width:68px;margin:0 0 7px;padding:0}.clear .more-btn,.more-action .more-btn{width:36px;height:36px;align-self:center;border-radius:20px}.clear .name,.more-action .name{font-size:.9rem;font-weight:400;text-align:center}.icon{pointer-events:none}.btn{display:inline-flex;flex-flow:column;align-items:center}.btn.condition{padding-right:16px}.btn.chart{padding-right:24px}.btn img,.btn span{pointer-events:none}.chart-preview{width:350px;height:300px;background-color:#fff;overflow:hidden}.chart-preview .chart-preview-title{margin:1rem;justify-content:center}.chart-preview .chart-preview-area{height:270px}::ng-deep .toggle-content{width:354px;max-width:358px;height:148px;background-color:#fff}::ng-deep .toggle-content,::ng-deep .toggle-content .ig-scrollbar{--size: var(--ig-scrollbar-size, 8px);--thumb-background: var(--ig-scrollbar-thumb-background, hsla(var(--ig-gray-400), var(--ig-gray-a)));--track-background: var(--ig-scrollbar-track-background, hsla(var(--ig-gray-100), var(--ig-gray-a)))}::ng-deep .toggle-content .tabs{display:flex!important;border:.2px solid;border-color:#d3d3d3}::ng-deep .toggle-content .tab-option{padding:.9rem;height:100px;width:358px;display:inline-flex;overflow-x:auto;overflow-y:hidden;white-space:nowrap;align-content:center}::ng-deep .toggle-content .tab-option .chartImgButton{width:48px;height:48px}::ng-deep .toggle-content .tab-option .imgSize,::ng-deep .toggle-content .clear.action .imgSize{width:36px;height:36px;align-self:center}::ng-deep .toggle-content .action{cursor:pointer;opacity:1}::ng-deep .toggle-content .action.selected{opacity:.62}::ng-deep .toggle-content .action.selected--condition{pointer-events:none;opacity:.62}\n"], dependencies: [{ kind: "directive", type: i1$1.IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i1$1.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: i1$1.IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "component", type: i1$1.IgxTabsComponent, selector: "igx-tabs", inputs: ["tabAlignment"] }, { kind: "component", type: i1$1.IgxTabItemComponent, selector: "igx-tab-item" }, { kind: "component", type: i1$1.IgxTabHeaderComponent, selector: "igx-tab-header" }, { kind: "component", type: i1$1.IgxTabContentComponent, selector: "igx-tab-content" }, { kind: "directive", type: i1$1.IgxTabHeaderLabelDirective, selector: "igx-tab-header-label,[igxTabHeaderLabel]" }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }, { kind: "pipe", type: SvgPipe, name: "svg" }] });
801
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxContextMenuComponent, decorators: [{
799
+ IgxContextMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxContextMenuComponent, deps: [{ token: i1$1.IgxOverlayService }], target: i0.ɵɵFactoryTarget.Component });
800
+ IgxContextMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: IgxContextMenuComponent, selector: "igx-context-menu", viewQueries: [{ propertyName: "button", first: true, predicate: ["analyticsBtn"], descendants: true }, { propertyName: "tabsMenu", first: true, predicate: ["tabsMenu"], descendants: true, read: IgxToggleDirective }, { propertyName: "chartPreview", first: true, predicate: ["chartPreview"], descendants: true, read: ViewContainerRef }, { propertyName: "chartPreviewDialog", first: true, predicate: ["chartPreviewDialog"], descendants: true, read: IgxToggleDirective }, { propertyName: "tabs", first: true, predicate: IgxTabsComponent, descendants: true }], ngImport: i0, template: "<span #analyticsBtn class=\"analytics-btn\">\r\n <button #btn igxButton=\"icon\" (click)=\"toggleTabMenu()\">\r\n <igx-icon #icon class=\"icon\" family=\"material\">insert_chart_outlined</igx-icon>\r\n </button>\r\n</span>\r\n<div #tabsMenu igxToggle class=\"toggle-content ig-scrollbar\">\r\n <!--NOTE: This component has been updated by Infragistics migration: v12.0.0\r\nPlease check your template whether all bindings/event handlers are correct.-->\r\n <igx-tabs tabsType=\"fixed\" [selectedIndex]=\"!this.textFormatters.length && chartTypes.length ? 1 : 0\">\r\n <igx-tab-item [disabled]=\"!textFormatters.length\">\r\n <igx-tab-header>\r\n <span igxTabHeaderLabel>Conditional Formatting</span>\r\n </igx-tab-header>\r\n <igx-tab-content>\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"tabs\">\r\n <span class=\"tab-option\">\r\n <span *ngFor=\"let condition of textFormatters\" class=\"action btn condition\"\r\n [ngClass]=\"{'selected--condition': condition === currentFormatter}\"\r\n (click)=\"formatCells(condition)\">\r\n <div class=\"imgSize\" [innerHTML]=\"conditionImages[condition.replace(' ', '')] | svg\">\r\n </div>\r\n <span class=\"name\">{{condition.replace('10', '10%')}}</span>\r\n </span>\r\n </span>\r\n <span class=\"clear action\"\r\n [ngClass]=\"{'disableButton': contextDirective.textFormatter ? !contextDirective.textFormatter.formatter : true }\"\r\n (click)=\"clearFormat()\">\r\n <div class=\"imgSize\" [innerHTML]=\"conditionImages['Clear'] | svg\">\r\n </div>\r\n <span class=\"btn name\">Clear All</span>\r\n </span>\r\n </div>\r\n </igx-tab-content>\r\n </igx-tab-item>\r\n <igx-tab-item [disabled]=\"!chartTypes.length\">\r\n <igx-tab-header>\r\n <span igxTabHeaderLabel>Create Chart</span>\r\n </igx-tab-header>\r\n <igx-tab-content>\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"tabs\">\r\n <span class=\"tab-option\">\r\n <span *ngFor=\"let chart of chartTypes | slice:0:4\" class=\"action btn chart\"\r\n [ngClass]=\"{'selected': chart === currentChartType}\" (mouseenter)=\"previewChart(chart)\"\r\n (mouseleave)=\"hidePreview()\" (click)=\"openDialog(chart)\">\r\n <span [innerHTML]=\"chartImages[chart] | svg\" class=\"imgSize\">\r\n </span>\r\n <span class=\"name\">{{chart}}</span>\r\n </span>\r\n </span>\r\n <span class=\"more-action chart\" [ngClass]=\"{'disableButton': !chartTypes.length}\"\r\n (click)=\"openDialog()\">\r\n <button class=\"more-btn more-icon\" igxButton=\"icon\" igxButtonBackground=\"#EBEBEB\"\r\n igxButtonColor=\"black\">\r\n <igx-icon class=\"icon\" family=\"material\">more_horiz</igx-icon>\r\n </button>\r\n <span class=\"name btn\">More...</span>\r\n </span>\r\n </div>\r\n </igx-tab-content>\r\n </igx-tab-item>\r\n </igx-tabs>\r\n</div>\r\n<div igxToggle #chartPreviewDialog class=\"chart-preview\">\r\n <div class=\"chart-preview-title\">\r\n <h5>Preview Chart</h5>\r\n </div>\r\n <div class=\"chart-preview-area\">\r\n <ng-template #chartPreview></ng-template>\r\n </div>\r\n</div>", styles: [".analytics-btn,.analytics-btn [igxButton=flat],.analytics-btn .igx-button--flat{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-400), .12));--active-foreground: var(--igx-button-active-foreground, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0))}.analytics-btn,.analytics-btn [igxButton=outlined],.analytics-btn .igx-button--outlined{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--hover-border-color: var(--igx-button-hover-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--focus-border-color: var(--igx-button-focus-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--focus-visible-border-color: var(--igx-button-focus-visible-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--active-border-color: var(--igx-button-active-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--disabled-border-color: var(--igx-button-disabled-border-color, hsla(var(--ig-gray-300), var(--ig-gray-a)));--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-400), .12));--active-foreground: var(--igx-button-active-foreground, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0))}.analytics-btn,.analytics-btn [igxButton=raised],.analytics-btn .igx-button--raised{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, hsla(var(--ig-gray-300), var(--ig-gray-a)));--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-2));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-4));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-8));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-8));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-300), var(--ig-secondary-a)));--active-foreground: var(--igx-button-active-foreground, var(--ig-secondary-300-contrast));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-2));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-4));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-8));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-8))}.analytics-btn,.analytics-btn [igxButton=fab],.analytics-btn .igx-button--fab{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, hsla(var(--ig-gray-300), var(--ig-gray-a)));--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-6));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-12));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-12));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-12));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-300), var(--ig-secondary-a)));--active-foreground: var(--igx-button-active-foreground, var(--ig-secondary-300-contrast));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-6));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-12));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-12));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-12))}.analytics-btn,.analytics-btn [igxButton=icon],.analytics-btn .igx-button--icon{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));--focus-visible-border-color: var(--igx-button-focus-visible-border-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));--active-border-color: var(--igx-button-active-border-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-gray-200), var(--ig-gray-a)));--active-foreground: var(--igx-button-active-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0))}.disableButton{opacity:.4;pointer-events:none}.clear,.more-action{display:flex;flex-flow:column;justify-content:center;border-left:1px solid #bdbdbd}.clear .btn,.clear .more-btn,.more-action .btn,.more-action .more-btn{width:68px;margin:0 0 7px;padding:0}.clear .more-btn,.more-action .more-btn{width:36px;height:36px;align-self:center;border-radius:20px}.clear .name,.more-action .name{font-size:.9rem;font-weight:400;text-align:center}.icon{pointer-events:none}.btn{display:inline-flex;flex-flow:column;align-items:center}.btn.condition{padding-right:16px}.btn.chart{padding-right:24px}.btn img,.btn span{pointer-events:none}.chart-preview{width:350px;height:300px;background-color:#fff;overflow:hidden}.chart-preview .chart-preview-title{margin:1rem;justify-content:center}.chart-preview .chart-preview-area{height:270px}::ng-deep .toggle-content{width:354px;max-width:358px;height:148px;background-color:#fff}::ng-deep .toggle-content,::ng-deep .toggle-content .ig-scrollbar{--size: var(--ig-scrollbar-size, 8px);--thumb-background: var(--ig-scrollbar-thumb-background, hsla(var(--ig-gray-400), var(--ig-gray-a)));--track-background: var(--ig-scrollbar-track-background, hsla(var(--ig-gray-100), var(--ig-gray-a)))}::ng-deep .toggle-content .tabs{display:flex!important;border:.2px solid;border-color:#d3d3d3}::ng-deep .toggle-content .tab-option{padding:.9rem;height:100px;width:358px;display:inline-flex;overflow-x:auto;overflow-y:hidden;white-space:nowrap;align-content:center}::ng-deep .toggle-content .tab-option .chartImgButton{width:48px;height:48px}::ng-deep .toggle-content .tab-option .imgSize,::ng-deep .toggle-content .clear.action .imgSize{width:36px;height:36px;align-self:center}::ng-deep .toggle-content .action{cursor:pointer;opacity:1}::ng-deep .toggle-content .action.selected{opacity:.62}::ng-deep .toggle-content .action.selected--condition{pointer-events:none;opacity:.62}\n"], dependencies: [{ kind: "directive", type: i1$1.IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxButtonColor", "igxButtonBackground", "igxLabel", "disabled"], outputs: ["buttonClick", "buttonSelected"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i1$1.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: i1$1.IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "component", type: i1$1.IgxTabsComponent, selector: "igx-tabs", inputs: ["tabAlignment"] }, { kind: "component", type: i1$1.IgxTabItemComponent, selector: "igx-tab-item" }, { kind: "component", type: i1$1.IgxTabHeaderComponent, selector: "igx-tab-header" }, { kind: "component", type: i1$1.IgxTabContentComponent, selector: "igx-tab-content" }, { kind: "directive", type: i1$1.IgxTabHeaderLabelDirective, selector: "igx-tab-header-label,[igxTabHeaderLabel]" }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }, { kind: "pipe", type: SvgPipe, name: "svg" }] });
801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxContextMenuComponent, decorators: [{
802
802
  type: Component,
803
803
  args: [{ selector: 'igx-context-menu', template: "<span #analyticsBtn class=\"analytics-btn\">\r\n <button #btn igxButton=\"icon\" (click)=\"toggleTabMenu()\">\r\n <igx-icon #icon class=\"icon\" family=\"material\">insert_chart_outlined</igx-icon>\r\n </button>\r\n</span>\r\n<div #tabsMenu igxToggle class=\"toggle-content ig-scrollbar\">\r\n <!--NOTE: This component has been updated by Infragistics migration: v12.0.0\r\nPlease check your template whether all bindings/event handlers are correct.-->\r\n <igx-tabs tabsType=\"fixed\" [selectedIndex]=\"!this.textFormatters.length && chartTypes.length ? 1 : 0\">\r\n <igx-tab-item [disabled]=\"!textFormatters.length\">\r\n <igx-tab-header>\r\n <span igxTabHeaderLabel>Conditional Formatting</span>\r\n </igx-tab-header>\r\n <igx-tab-content>\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"tabs\">\r\n <span class=\"tab-option\">\r\n <span *ngFor=\"let condition of textFormatters\" class=\"action btn condition\"\r\n [ngClass]=\"{'selected--condition': condition === currentFormatter}\"\r\n (click)=\"formatCells(condition)\">\r\n <div class=\"imgSize\" [innerHTML]=\"conditionImages[condition.replace(' ', '')] | svg\">\r\n </div>\r\n <span class=\"name\">{{condition.replace('10', '10%')}}</span>\r\n </span>\r\n </span>\r\n <span class=\"clear action\"\r\n [ngClass]=\"{'disableButton': contextDirective.textFormatter ? !contextDirective.textFormatter.formatter : true }\"\r\n (click)=\"clearFormat()\">\r\n <div class=\"imgSize\" [innerHTML]=\"conditionImages['Clear'] | svg\">\r\n </div>\r\n <span class=\"btn name\">Clear All</span>\r\n </span>\r\n </div>\r\n </igx-tab-content>\r\n </igx-tab-item>\r\n <igx-tab-item [disabled]=\"!chartTypes.length\">\r\n <igx-tab-header>\r\n <span igxTabHeaderLabel>Create Chart</span>\r\n </igx-tab-header>\r\n <igx-tab-content>\r\n <igc-trial-watermark></igc-trial-watermark>\r\n <div class=\"tabs\">\r\n <span class=\"tab-option\">\r\n <span *ngFor=\"let chart of chartTypes | slice:0:4\" class=\"action btn chart\"\r\n [ngClass]=\"{'selected': chart === currentChartType}\" (mouseenter)=\"previewChart(chart)\"\r\n (mouseleave)=\"hidePreview()\" (click)=\"openDialog(chart)\">\r\n <span [innerHTML]=\"chartImages[chart] | svg\" class=\"imgSize\">\r\n </span>\r\n <span class=\"name\">{{chart}}</span>\r\n </span>\r\n </span>\r\n <span class=\"more-action chart\" [ngClass]=\"{'disableButton': !chartTypes.length}\"\r\n (click)=\"openDialog()\">\r\n <button class=\"more-btn more-icon\" igxButton=\"icon\" igxButtonBackground=\"#EBEBEB\"\r\n igxButtonColor=\"black\">\r\n <igx-icon class=\"icon\" family=\"material\">more_horiz</igx-icon>\r\n </button>\r\n <span class=\"name btn\">More...</span>\r\n </span>\r\n </div>\r\n </igx-tab-content>\r\n </igx-tab-item>\r\n </igx-tabs>\r\n</div>\r\n<div igxToggle #chartPreviewDialog class=\"chart-preview\">\r\n <div class=\"chart-preview-title\">\r\n <h5>Preview Chart</h5>\r\n </div>\r\n <div class=\"chart-preview-area\">\r\n <ng-template #chartPreview></ng-template>\r\n </div>\r\n</div>", styles: [".analytics-btn,.analytics-btn [igxButton=flat],.analytics-btn .igx-button--flat{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-400), .12));--active-foreground: var(--igx-button-active-foreground, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0))}.analytics-btn,.analytics-btn [igxButton=outlined],.analytics-btn .igx-button--outlined{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--hover-border-color: var(--igx-button-hover-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--focus-border-color: var(--igx-button-focus-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--focus-visible-border-color: var(--igx-button-focus-visible-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--active-border-color: var(--igx-button-active-border-color, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--disabled-border-color: var(--igx-button-disabled-border-color, hsla(var(--ig-gray-300), var(--ig-gray-a)));--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-400), .12));--active-foreground: var(--igx-button-active-foreground, hsla(var(--ig-secondary-500), var(--ig-secondary-a)));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0))}.analytics-btn,.analytics-btn [igxButton=raised],.analytics-btn .igx-button--raised{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, hsla(var(--ig-gray-300), var(--ig-gray-a)));--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-2));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-4));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-8));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-8));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-300), var(--ig-secondary-a)));--active-foreground: var(--igx-button-active-foreground, var(--ig-secondary-300-contrast));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-2));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-4));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-8));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-8))}.analytics-btn,.analytics-btn [igxButton=fab],.analytics-btn .igx-button--fab{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, transparent);--focus-visible-border-color: var(--igx-button-focus-visible-border-color, transparent);--active-border-color: var(--igx-button-active-border-color, transparent);--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, hsla(var(--ig-gray-300), var(--ig-gray-a)));--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-6));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-12));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-12));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-12));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-secondary-300), var(--ig-secondary-a)));--active-foreground: var(--igx-button-active-foreground, var(--ig-secondary-300-contrast));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-6));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-12));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-12));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-12))}.analytics-btn,.analytics-btn [igxButton=icon],.analytics-btn .igx-button--icon{--shadow-color: var(--igx-button-shadow-color, transparent);--border-color: var(--igx-button-border-color, transparent);--hover-border-color: var(--igx-button-hover-border-color, transparent);--focus-border-color: var(--igx-button-focus-border-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));--focus-visible-border-color: var(--igx-button-focus-visible-border-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));--active-border-color: var(--igx-button-active-border-color, hsla(var(--ig-gray-400), var(--ig-gray-a)));--disabled-border-color: var(--igx-button-disabled-border-color, transparent);--disabled-background: var(--igx-button-disabled-background, transparent);--disabled-foreground: var(--igx-button-disabled-foreground, hsla(var(--ig-gray-500), var(--ig-gray-a)));--resting-elevation: var(--igx-button-resting-elevation, var(--ig-elevation-0));--hover-elevation: var(--igx-button-hover-elevation, var(--ig-elevation-0));--focus-elevation: var(--igx-button-focus-elevation, var(--ig-elevation-0));--active-elevation: var(--igx-button-active-elevation, var(--ig-elevation-0));--background: var(--igx-button-background, #335e3b);--foreground: var(--igx-button-foreground, #fff);--hover-background: var(--igx-button-hover-background, #459a55);--hover-foreground: var(--igx-button-hover-foreground, black);--focus-background: var(--igx-button-focus-background, #396a42);--focus-foreground: var(--igx-button-focus-foreground, white);--focus-visible-background: var(--igx-button-focus-visible-background, #396a42);--focus-visible-foreground: var(--igx-button-focus-visible-foreground, white);--active-background: var(--igx-button-active-background, hsla(var(--ig-gray-200), var(--ig-gray-a)));--active-foreground: var(--igx-button-active-foreground, hsla(var(--ig-gray-900), var(--ig-gray-a)));--border-radius: var(--igx-button-border-radius, 0);--resting-shadow: var(--igx-button-resting-shadow, var(--ig-elevation-0));--hover-shadow: var(--igx-button-hover-shadow, var(--ig-elevation-0));--focus-shadow: var(--igx-button-focus-shadow, var(--ig-elevation-0));--active-shadow: var(--igx-button-active-shadow, var(--ig-elevation-0))}.disableButton{opacity:.4;pointer-events:none}.clear,.more-action{display:flex;flex-flow:column;justify-content:center;border-left:1px solid #bdbdbd}.clear .btn,.clear .more-btn,.more-action .btn,.more-action .more-btn{width:68px;margin:0 0 7px;padding:0}.clear .more-btn,.more-action .more-btn{width:36px;height:36px;align-self:center;border-radius:20px}.clear .name,.more-action .name{font-size:.9rem;font-weight:400;text-align:center}.icon{pointer-events:none}.btn{display:inline-flex;flex-flow:column;align-items:center}.btn.condition{padding-right:16px}.btn.chart{padding-right:24px}.btn img,.btn span{pointer-events:none}.chart-preview{width:350px;height:300px;background-color:#fff;overflow:hidden}.chart-preview .chart-preview-title{margin:1rem;justify-content:center}.chart-preview .chart-preview-area{height:270px}::ng-deep .toggle-content{width:354px;max-width:358px;height:148px;background-color:#fff}::ng-deep .toggle-content,::ng-deep .toggle-content .ig-scrollbar{--size: var(--ig-scrollbar-size, 8px);--thumb-background: var(--ig-scrollbar-thumb-background, hsla(var(--ig-gray-400), var(--ig-gray-a)));--track-background: var(--ig-scrollbar-track-background, hsla(var(--ig-gray-100), var(--ig-gray-a)))}::ng-deep .toggle-content .tabs{display:flex!important;border:.2px solid;border-color:#d3d3d3}::ng-deep .toggle-content .tab-option{padding:.9rem;height:100px;width:358px;display:inline-flex;overflow-x:auto;overflow-y:hidden;white-space:nowrap;align-content:center}::ng-deep .toggle-content .tab-option .chartImgButton{width:48px;height:48px}::ng-deep .toggle-content .tab-option .imgSize,::ng-deep .toggle-content .clear.action .imgSize{width:36px;height:36px;align-self:center}::ng-deep .toggle-content .action{cursor:pointer;opacity:1}::ng-deep .toggle-content .action.selected{opacity:.62}::ng-deep .toggle-content .action.selected--condition{pointer-events:none;opacity:.62}\n"] }]
804
804
  }], ctorParameters: function () { return [{ type: i1$1.IgxOverlayService }]; }, propDecorators: { button: [{
@@ -1105,9 +1105,9 @@ class IgxConditionalFormattingDirective {
1105
1105
  return result;
1106
1106
  }
1107
1107
  }
1108
- IgxConditionalFormattingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxConditionalFormattingDirective, deps: [{ token: IgxGridComponent }], target: i0.ɵɵFactoryTarget.Directive });
1109
- IgxConditionalFormattingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: IgxConditionalFormattingDirective, selector: "[igxConditionalFormatting]", inputs: { formatter: "formatter", formatColors: "formatColors" }, outputs: { onFormattersReady: "onFormattersReady" }, ngImport: i0 });
1110
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxConditionalFormattingDirective, decorators: [{
1108
+ IgxConditionalFormattingDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxConditionalFormattingDirective, deps: [{ token: IgxGridComponent }], target: i0.ɵɵFactoryTarget.Directive });
1109
+ IgxConditionalFormattingDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: IgxConditionalFormattingDirective, selector: "[igxConditionalFormatting]", inputs: { formatter: "formatter", formatColors: "formatColors" }, outputs: { onFormattersReady: "onFormattersReady" }, ngImport: i0 });
1110
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxConditionalFormattingDirective, decorators: [{
1111
1111
  type: Directive,
1112
1112
  args: [{
1113
1113
  selector: '[igxConditionalFormatting]'
@@ -1510,9 +1510,9 @@ class IgxChartIntegrationDirective {
1510
1510
  });
1511
1511
  }
1512
1512
  }
1513
- IgxChartIntegrationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxChartIntegrationDirective, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive });
1514
- IgxChartIntegrationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: IgxChartIntegrationDirective, selector: "[igxChartIntegration]", inputs: { chartData: "chartData", useLegend: "useLegend", defaultLabelMemberPath: "defaultLabelMemberPath", scatterChartYAxisValueMemberPath: "scatterChartYAxisValueMemberPath", bubbleChartRadiusMemberPath: "bubbleChartRadiusMemberPath" }, outputs: { onChartTypesDetermined: "onChartTypesDetermined", onChartCreationDone: "onChartCreationDone" }, ngImport: i0 });
1515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxChartIntegrationDirective, decorators: [{
1513
+ IgxChartIntegrationDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxChartIntegrationDirective, deps: [{ token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive });
1514
+ IgxChartIntegrationDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: IgxChartIntegrationDirective, selector: "[igxChartIntegration]", inputs: { chartData: "chartData", useLegend: "useLegend", defaultLabelMemberPath: "defaultLabelMemberPath", scatterChartYAxisValueMemberPath: "scatterChartYAxisValueMemberPath", bubbleChartRadiusMemberPath: "bubbleChartRadiusMemberPath" }, outputs: { onChartTypesDetermined: "onChartTypesDetermined", onChartCreationDone: "onChartCreationDone" }, ngImport: i0 });
1515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxChartIntegrationDirective, decorators: [{
1516
1516
  type: Directive,
1517
1517
  args: [{
1518
1518
  selector: '[igxChartIntegration]'
@@ -1668,9 +1668,9 @@ class IgxContextMenuDirective {
1668
1668
  && cIndex >= this._range.columnStart && cIndex <= this._range.columnEnd;
1669
1669
  }
1670
1670
  }
1671
- IgxContextMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxContextMenuDirective, deps: [{ token: i1$1.IgxGridComponent }, { token: IgxConditionalFormattingDirective, optional: true }, { token: IgxChartIntegrationDirective, optional: true }, { token: i1$1.IgxOverlayService }], target: i0.ɵɵFactoryTarget.Directive });
1672
- IgxContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: IgxContextMenuDirective, selector: "[igxContextMenu]", outputs: { onButtonClose: "onButtonClose" }, ngImport: i0 });
1673
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxContextMenuDirective, decorators: [{
1671
+ IgxContextMenuDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxContextMenuDirective, deps: [{ token: i1$1.IgxGridComponent }, { token: IgxConditionalFormattingDirective, optional: true }, { token: IgxChartIntegrationDirective, optional: true }, { token: i1$1.IgxOverlayService }], target: i0.ɵɵFactoryTarget.Directive });
1672
+ IgxContextMenuDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.3", type: IgxContextMenuDirective, selector: "[igxContextMenu]", outputs: { onButtonClose: "onButtonClose" }, ngImport: i0 });
1673
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxContextMenuDirective, decorators: [{
1674
1674
  type: Directive,
1675
1675
  args: [{
1676
1676
  selector: '[igxContextMenu]'
@@ -1687,8 +1687,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImpor
1687
1687
 
1688
1688
  class IgxExtrasModule {
1689
1689
  }
1690
- IgxExtrasModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1691
- IgxExtrasModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, declarations: [IgxConditionalFormattingDirective,
1690
+ IgxExtrasModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxExtrasModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1691
+ IgxExtrasModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: IgxExtrasModule, declarations: [IgxConditionalFormattingDirective,
1692
1692
  IgxChartIntegrationDirective,
1693
1693
  IgxContextMenuDirective,
1694
1694
  IgxContextMenuComponent,
@@ -1715,7 +1715,7 @@ IgxExtrasModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version
1715
1715
  IgxCategoryChartModule], exports: [IgxConditionalFormattingDirective,
1716
1716
  IgxChartIntegrationDirective,
1717
1717
  IgxContextMenuDirective] });
1718
- IgxExtrasModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, imports: [IgxButtonModule,
1718
+ IgxExtrasModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxExtrasModule, imports: [IgxButtonModule,
1719
1719
  IgxDividerModule,
1720
1720
  IgxGridModule,
1721
1721
  IgxTabsModule,
@@ -1735,7 +1735,7 @@ IgxExtrasModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version
1735
1735
  IgxBarSeriesModule,
1736
1736
  IgxIconModule,
1737
1737
  IgxCategoryChartModule] });
1738
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: IgxExtrasModule, decorators: [{
1738
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: IgxExtrasModule, decorators: [{
1739
1739
  type: NgModule,
1740
1740
  args: [{
1741
1741
  declarations: [