igniteui-angular 18.2.9 → 18.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/esm2022/lib/core/i18n/grid-resources.mjs +3 -3
  2. package/esm2022/lib/grids/columns/column.component.mjs +5 -2
  3. package/esm2022/lib/grids/common/grid.interface.mjs +1 -1
  4. package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +2 -1
  5. package/esm2022/lib/grids/filtering/excel-style/excel-style-filtering.component.mjs +3 -2
  6. package/esm2022/lib/grids/grid-base.directive.mjs +9 -3
  7. package/esm2022/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +2 -1
  8. package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +1 -1
  9. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resizer.component.mjs +3 -3
  10. package/esm2022/lib/grids/resizing/resizer.component.mjs +3 -3
  11. package/esm2022/lib/grids/resizing/resizer.directive.mjs +12 -3
  12. package/esm2022/lib/grids/resizing/resizing.service.mjs +4 -4
  13. package/fesm2022/igniteui-angular.mjs +36 -15
  14. package/fesm2022/igniteui-angular.mjs.map +1 -1
  15. package/lib/core/styles/components/checkbox/_checkbox-component.scss +8 -4
  16. package/lib/core/styles/components/checkbox/_checkbox-theme.scss +7 -1
  17. package/lib/core/styles/components/chip/_chip-theme.scss +1 -1
  18. package/lib/core/styles/components/combo/_combo-theme.scss +2 -2
  19. package/lib/core/styles/components/grid/_excel-filtering-theme.scss +3 -7
  20. package/lib/core/styles/components/grid/_grid-theme.scss +19 -15
  21. package/lib/core/styles/components/progress/_progress-theme.scss +55 -7
  22. package/lib/grids/common/grid.interface.d.ts +4 -0
  23. package/lib/grids/grid-base.directive.d.ts +5 -2
  24. package/lib/grids/pivot-grid/pivot-grid.component.d.ts +1 -1
  25. package/lib/grids/resizing/resizer.directive.d.ts +2 -0
  26. package/lib/grids/resizing/resizing.service.d.ts +2 -2
  27. package/package.json +1 -1
  28. package/styles/igniteui-angular-dark.css +1 -1
  29. package/styles/igniteui-angular.css +1 -1
  30. package/styles/igniteui-bootstrap-dark.css +1 -1
  31. package/styles/igniteui-bootstrap-light.css +1 -1
  32. package/styles/igniteui-dark-green.css +1 -1
  33. package/styles/igniteui-fluent-dark-excel.css +1 -1
  34. package/styles/igniteui-fluent-dark-word.css +1 -1
  35. package/styles/igniteui-fluent-dark.css +1 -1
  36. package/styles/igniteui-fluent-light-excel.css +1 -1
  37. package/styles/igniteui-fluent-light-word.css +1 -1
  38. package/styles/igniteui-fluent-light.css +1 -1
  39. package/styles/igniteui-indigo-dark.css +1 -1
  40. package/styles/igniteui-indigo-light.css +1 -1
  41. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  42. package/styles/maps/igniteui-angular.css.map +1 -1
  43. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  44. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  45. package/styles/maps/igniteui-dark-green.css.map +1 -1
  46. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  47. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  48. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  49. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  50. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  51. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  52. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  53. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -9,10 +9,10 @@ export class IgxPivotGridColumnResizerComponent extends IgxGridColumnResizerComp
9
9
  this.colResizingService = colResizingService;
10
10
  }
11
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxPivotGridColumnResizerComponent, deps: [{ token: i1.IgxPivotColumnResizingService }], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxPivotGridColumnResizerComponent, isStandalone: true, selector: "igx-pivot-grid-column-resizer", usesInheritance: true, ngImport: i0, template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event)\">\n</div>\n", dependencies: [{ kind: "directive", type: IgxColumnResizerDirective, selector: "[igxResizer]", inputs: ["restrictHResizeMin", "restrictHResizeMax", "restrictResizerTop"], outputs: ["resizeEnd", "resizeStart", "resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxPivotGridColumnResizerComponent, isStandalone: true, selector: "igx-pivot-grid-column-resizer", usesInheritance: true, ngImport: i0, template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event, resizer.ratio)\">\n</div>\n", dependencies: [{ kind: "directive", type: IgxColumnResizerDirective, selector: "[igxResizer]", inputs: ["restrictHResizeMin", "restrictHResizeMax", "restrictResizerTop"], outputs: ["resizeEnd", "resizeStart", "resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxPivotGridColumnResizerComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-grid-column-resizer', standalone: true, imports: [IgxColumnResizerDirective], template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event)\">\n</div>\n" }]
16
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-grid-column-resizer', standalone: true, imports: [IgxColumnResizerDirective], template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event, resizer.ratio)\">\n</div>\n" }]
17
17
  }], ctorParameters: () => [{ type: i1.IgxPivotColumnResizingService }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QtcmVzaXplci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcmVzaXppbmcvcGl2b3QtZ3JpZC9waXZvdC1yZXNpemVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9yZXNpemluZy9yZXNpemVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQVNqRSxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsNkJBQTZCO0lBQ2pGLFlBQTRCLGtCQUFpRDtRQUN6RSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQURGLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBK0I7SUFFN0UsQ0FBQzs4R0FIUSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyxnSENaL0MsK1lBUUEsNENERWMseUJBQXlCOzsyRkFFMUIsa0NBQWtDO2tCQVA5QyxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsK0JBQStCLGNBRTdCLElBQUksV0FDUCxDQUFDLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4R3JpZENvbHVtblJlc2l6ZXJDb21wb25lbnQgfSBmcm9tICcuLi9yZXNpemVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hQaXZvdENvbHVtblJlc2l6aW5nU2VydmljZSB9IGZyb20gJy4vcGl2b3QtcmVzaXppbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5SZXNpemVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vcmVzaXplci5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2lneC1waXZvdC1ncmlkLWNvbHVtbi1yZXNpemVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4uL3Jlc2l6ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0lneENvbHVtblJlc2l6ZXJEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIElneFBpdm90R3JpZENvbHVtblJlc2l6ZXJDb21wb25lbnQgZXh0ZW5kcyBJZ3hHcmlkQ29sdW1uUmVzaXplckNvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IocHVibGljIG92ZXJyaWRlIGNvbFJlc2l6aW5nU2VydmljZTogSWd4UGl2b3RDb2x1bW5SZXNpemluZ1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoY29sUmVzaXppbmdTZXJ2aWNlKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWd4LWdyaWQtdGhfX3Jlc2l6ZS1saW5lXCJcbiAgICBbc3R5bGUubGVmdC5weF09XCItOTk5OTlcIiBpZ3hSZXNpemVyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJjb2xSZXNpemluZ1NlcnZpY2UucmVzaXplckhlaWdodFwiXG4gICAgW3Jlc3RyaWN0SFJlc2l6ZU1heF09XCJjb2xSZXNpemluZ1NlcnZpY2UucmVzdHJpY3RSZXNpemVNYXhcIlxuICAgIFtyZXN0cmljdEhSZXNpemVNaW5dPVwiY29sUmVzaXppbmdTZXJ2aWNlLnJlc3RyaWN0UmVzaXplTWluXCJcbiAgICBbcmVzdHJpY3RSZXNpemVyVG9wXT1cInJlc3RyaWN0UmVzaXplclRvcFwiXG4gICAgKHJlc2l6ZUVuZCk9XCJjb2xSZXNpemluZ1NlcnZpY2UucmVzaXplQ29sdW1uKCRldmVudClcIj5cbjwvZGl2PlxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QtcmVzaXplci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcmVzaXppbmcvcGl2b3QtZ3JpZC9waXZvdC1yZXNpemVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9yZXNpemluZy9yZXNpemVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFckUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQVNqRSxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsNkJBQTZCO0lBQ2pGLFlBQTRCLGtCQUFpRDtRQUN6RSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQURGLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBK0I7SUFFN0UsQ0FBQzs4R0FIUSxrQ0FBa0M7a0dBQWxDLGtDQUFrQyxnSENaL0MsOFpBUUEsNENERWMseUJBQXlCOzsyRkFFMUIsa0NBQWtDO2tCQVA5QyxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsK0JBQStCLGNBRTdCLElBQUksV0FDUCxDQUFDLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4R3JpZENvbHVtblJlc2l6ZXJDb21wb25lbnQgfSBmcm9tICcuLi9yZXNpemVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hQaXZvdENvbHVtblJlc2l6aW5nU2VydmljZSB9IGZyb20gJy4vcGl2b3QtcmVzaXppbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5SZXNpemVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vcmVzaXplci5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2lneC1waXZvdC1ncmlkLWNvbHVtbi1yZXNpemVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4uL3Jlc2l6ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0lneENvbHVtblJlc2l6ZXJEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIElneFBpdm90R3JpZENvbHVtblJlc2l6ZXJDb21wb25lbnQgZXh0ZW5kcyBJZ3hHcmlkQ29sdW1uUmVzaXplckNvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IocHVibGljIG92ZXJyaWRlIGNvbFJlc2l6aW5nU2VydmljZTogSWd4UGl2b3RDb2x1bW5SZXNpemluZ1NlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoY29sUmVzaXppbmdTZXJ2aWNlKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWd4LWdyaWQtdGhfX3Jlc2l6ZS1saW5lXCJcbiAgICBbc3R5bGUubGVmdC5weF09XCItOTk5OTlcIiBpZ3hSZXNpemVyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJjb2xSZXNpemluZ1NlcnZpY2UucmVzaXplckhlaWdodFwiXG4gICAgW3Jlc3RyaWN0SFJlc2l6ZU1heF09XCJjb2xSZXNpemluZ1NlcnZpY2UucmVzdHJpY3RSZXNpemVNYXhcIlxuICAgIFtyZXN0cmljdEhSZXNpemVNaW5dPVwiY29sUmVzaXppbmdTZXJ2aWNlLnJlc3RyaWN0UmVzaXplTWluXCJcbiAgICBbcmVzdHJpY3RSZXNpemVyVG9wXT1cInJlc3RyaWN0UmVzaXplclRvcFwiXG4gICAgKHJlc2l6ZUVuZCk9XCJjb2xSZXNpemluZ1NlcnZpY2UucmVzaXplQ29sdW1uKCRldmVudCwgcmVzaXplci5yYXRpbylcIj5cbjwvZGl2PlxuIl19
@@ -7,15 +7,15 @@ export class IgxGridColumnResizerComponent {
7
7
  this.colResizingService = colResizingService;
8
8
  }
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxGridColumnResizerComponent, deps: [{ token: i1.IgxColumnResizingService }], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxGridColumnResizerComponent, isStandalone: true, selector: "igx-grid-column-resizer", inputs: { restrictResizerTop: "restrictResizerTop" }, viewQueries: [{ propertyName: "resizer", first: true, predicate: IgxColumnResizerDirective, descendants: true, static: true }], ngImport: i0, template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event)\">\n</div>\n", dependencies: [{ kind: "directive", type: IgxColumnResizerDirective, selector: "[igxResizer]", inputs: ["restrictHResizeMin", "restrictHResizeMax", "restrictResizerTop"], outputs: ["resizeEnd", "resizeStart", "resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxGridColumnResizerComponent, isStandalone: true, selector: "igx-grid-column-resizer", inputs: { restrictResizerTop: "restrictResizerTop" }, viewQueries: [{ propertyName: "resizer", first: true, predicate: IgxColumnResizerDirective, descendants: true, static: true }], ngImport: i0, template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event, resizer.ratio)\">\n</div>\n", dependencies: [{ kind: "directive", type: IgxColumnResizerDirective, selector: "[igxResizer]", inputs: ["restrictHResizeMin", "restrictHResizeMax", "restrictResizerTop"], outputs: ["resizeEnd", "resizeStart", "resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxGridColumnResizerComponent, decorators: [{
13
13
  type: Component,
14
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-column-resizer', standalone: true, imports: [IgxColumnResizerDirective], template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event)\">\n</div>\n" }]
14
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-column-resizer', standalone: true, imports: [IgxColumnResizerDirective], template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event, resizer.ratio)\">\n</div>\n" }]
15
15
  }], ctorParameters: () => [{ type: i1.IgxColumnResizingService }], propDecorators: { restrictResizerTop: [{
16
16
  type: Input
17
17
  }], resizer: [{
18
18
  type: ViewChild,
19
19
  args: [IgxColumnResizerDirective, { static: true }]
20
20
  }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcmVzaXppbmcvcmVzaXplci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcmVzaXppbmcvcmVzaXplci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVNoRSxNQUFNLE9BQU8sNkJBQTZCO0lBT3RDLFlBQW1CLGtCQUE0QztRQUE1Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTBCO0lBQUksQ0FBQzs4R0FQM0QsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsa0xBSTNCLHlCQUF5Qiw4RENmeEMsK1lBUUEsNENEQ2MseUJBQXlCOzsyRkFFMUIsNkJBQTZCO2tCQVB6QyxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMseUJBQXlCLGNBRXZCLElBQUksV0FDUCxDQUFDLHlCQUF5QixDQUFDOzZGQUk3QixrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixTQUFTO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneENvbHVtblJlc2l6aW5nU2VydmljZSB9IGZyb20gJy4vcmVzaXppbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5SZXNpemVyRGlyZWN0aXZlIH0gZnJvbSAnLi9yZXNpemVyLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LWdyaWQtY29sdW1uLXJlc2l6ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXNpemVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtJZ3hDb2x1bW5SZXNpemVyRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcmlkQ29sdW1uUmVzaXplckNvbXBvbmVudCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVzdHJpY3RSZXNpemVyVG9wOiBudW1iZXI7XG5cbiAgICBAVmlld0NoaWxkKElneENvbHVtblJlc2l6ZXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIHJlc2l6ZXI6IElneENvbHVtblJlc2l6ZXJEaXJlY3RpdmU7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY29sUmVzaXppbmdTZXJ2aWNlOiBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2UpIHsgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlneC1ncmlkLXRoX19yZXNpemUtbGluZVwiXG4gICAgW3N0eWxlLmxlZnQucHhdPVwiLTk5OTk5XCIgaWd4UmVzaXplclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiY29sUmVzaXppbmdTZXJ2aWNlLnJlc2l6ZXJIZWlnaHRcIlxuICAgIFtyZXN0cmljdEhSZXNpemVNYXhdPVwiY29sUmVzaXppbmdTZXJ2aWNlLnJlc3RyaWN0UmVzaXplTWF4XCJcbiAgICBbcmVzdHJpY3RIUmVzaXplTWluXT1cImNvbFJlc2l6aW5nU2VydmljZS5yZXN0cmljdFJlc2l6ZU1pblwiXG4gICAgW3Jlc3RyaWN0UmVzaXplclRvcF09XCJyZXN0cmljdFJlc2l6ZXJUb3BcIlxuICAgIChyZXNpemVFbmQpPVwiY29sUmVzaXppbmdTZXJ2aWNlLnJlc2l6ZUNvbHVtbigkZXZlbnQpXCI+XG48L2Rpdj5cbiJdfQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcmVzaXppbmcvcmVzaXplci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcmVzaXppbmcvcmVzaXplci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQVNoRSxNQUFNLE9BQU8sNkJBQTZCO0lBT3RDLFlBQW1CLGtCQUE0QztRQUE1Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTBCO0lBQUksQ0FBQzs4R0FQM0QsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsa0xBSTNCLHlCQUF5Qiw4RENmeEMsOFpBUUEsNENEQ2MseUJBQXlCOzsyRkFFMUIsNkJBQTZCO2tCQVB6QyxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMseUJBQXlCLGNBRXZCLElBQUksV0FDUCxDQUFDLHlCQUF5QixDQUFDOzZGQUk3QixrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixTQUFTO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneENvbHVtblJlc2l6aW5nU2VydmljZSB9IGZyb20gJy4vcmVzaXppbmcuc2VydmljZSc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5SZXNpemVyRGlyZWN0aXZlIH0gZnJvbSAnLi9yZXNpemVyLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LWdyaWQtY29sdW1uLXJlc2l6ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZXNpemVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtJZ3hDb2x1bW5SZXNpemVyRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcmlkQ29sdW1uUmVzaXplckNvbXBvbmVudCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVzdHJpY3RSZXNpemVyVG9wOiBudW1iZXI7XG5cbiAgICBAVmlld0NoaWxkKElneENvbHVtblJlc2l6ZXJEaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIHJlc2l6ZXI6IElneENvbHVtblJlc2l6ZXJEaXJlY3RpdmU7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY29sUmVzaXppbmdTZXJ2aWNlOiBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2UpIHsgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlneC1ncmlkLXRoX19yZXNpemUtbGluZVwiXG4gICAgW3N0eWxlLmxlZnQucHhdPVwiLTk5OTk5XCIgaWd4UmVzaXplclxuICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiY29sUmVzaXppbmdTZXJ2aWNlLnJlc2l6ZXJIZWlnaHRcIlxuICAgIFtyZXN0cmljdEhSZXNpemVNYXhdPVwiY29sUmVzaXppbmdTZXJ2aWNlLnJlc3RyaWN0UmVzaXplTWF4XCJcbiAgICBbcmVzdHJpY3RIUmVzaXplTWluXT1cImNvbFJlc2l6aW5nU2VydmljZS5yZXN0cmljdFJlc2l6ZU1pblwiXG4gICAgW3Jlc3RyaWN0UmVzaXplclRvcF09XCJyZXN0cmljdFJlc2l6ZXJUb3BcIlxuICAgIChyZXNpemVFbmQpPVwiY29sUmVzaXppbmdTZXJ2aWNlLnJlc2l6ZUNvbHVtbigkZXZlbnQsIHJlc2l6ZXIucmF0aW8pXCI+XG48L2Rpdj5cbiJdfQ==
@@ -8,6 +8,9 @@ import * as i0 from "@angular/core";
8
8
  * @internal
9
9
  */
10
10
  export class IgxColumnResizerDirective {
11
+ get ratio() {
12
+ return this._ratio;
13
+ }
11
14
  constructor(element, document, zone) {
12
15
  this.element = element;
13
16
  this.document = document;
@@ -18,9 +21,10 @@ export class IgxColumnResizerDirective {
18
21
  this.resizeStart = new Subject();
19
22
  // eslint-disable-next-line @angular-eslint/no-output-native
20
23
  this.resize = new Subject();
24
+ this._ratio = 1;
21
25
  this._destroy = new Subject();
22
26
  this.resizeStart.pipe(takeUntil(this._destroy), map((event) => event.clientX), switchMap((offset) => this.resize
23
- .pipe(takeUntil(this._destroy), takeUntil(this.resizeEnd), map((event) => event.clientX - offset))))
27
+ .pipe(takeUntil(this._destroy), takeUntil(this.resizeEnd), map((event) => (event.clientX - offset) / (this._ratio)))))
24
28
  .subscribe((pos) => {
25
29
  const left = this._left + pos;
26
30
  const min = this._left - this.restrictHResizeMin;
@@ -63,7 +67,12 @@ export class IgxColumnResizerDirective {
63
67
  onMousedown(event) {
64
68
  event.preventDefault();
65
69
  const parent = this.element.nativeElement.parentElement.parentElement;
66
- this.left = this._left = event.clientX - parent.getBoundingClientRect().left;
70
+ const parentRectWidth = parent.getBoundingClientRect().width;
71
+ const parentComputedWidth = parseFloat(window.getComputedStyle(parent).width);
72
+ if (Math.abs(parentRectWidth - parentComputedWidth) > 1) {
73
+ this._ratio = parentRectWidth / parentComputedWidth;
74
+ }
75
+ this.left = this._left = (event.clientX - parent.getBoundingClientRect().left) / this._ratio;
67
76
  this.top = event.target.getBoundingClientRect().top - parent.getBoundingClientRect().top;
68
77
  this.resizeStart.next(event);
69
78
  }
@@ -96,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
96
105
  }], resize: [{
97
106
  type: Output
98
107
  }] } });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcmVzaXppbmcvcmVzaXplci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FHVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFckU7OztHQUdHO0FBS0gsTUFBTSxPQUFPLHlCQUF5QjtJQXVCbEMsWUFDVyxPQUFnQyxFQUNkLFFBQVEsRUFDMUIsSUFBWTtRQUZaLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBQTtRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBdkJoQix1QkFBa0IsR0FBVyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFHckQsdUJBQWtCLEdBQVcsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBTXJELGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBR3RDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUUvQyw0REFBNEQ7UUFDM0MsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFHckMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFRdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ2pCLFNBQVMsQ0FBYSxJQUFJLENBQUMsUUFBUSxDQUFD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QVM7c0JBRGYsTUFBTTtnQkFJQSxXQUFXO3NCQURqQixNQUFNO2dCQUlVLE1BQU07c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0LFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBhbmltYXRpb25GcmFtZVNjaGVkdWxlciwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRocm90dGxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqIEBpbnRlcm5hbFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hSZXNpemVyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hDb2x1bW5SZXNpemVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVzdHJpY3RIUmVzaXplTWluOiBudW1iZXIgPSBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlc3RyaWN0SFJlc2l6ZU1heDogbnVtYmVyID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZXN0cmljdFJlc2l6ZXJUb3A6IG51bWJlcjtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZXNpemVFbmQgPSBuZXcgU3ViamVjdDxNb3VzZUV2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlc2l6ZVN0YXJ0ID0gbmV3IFN1YmplY3Q8TW91c2VFdmVudD4oKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVzaXplID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgcHJpdmF0ZSBfbGVmdDogbnVtYmVyO1xuICAgIHByaXZhdGUgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHVibGljIGRvY3VtZW50LFxuICAgICAgICBwdWJsaWMgem9uZTogTmdab25lXG4gICAgKSB7XG5cbiAgICAgICAgdGhpcy5yZXNpemVTdGFydC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsPE1vdXNlRXZlbnQ+KHRoaXMuX2Rlc3Ryb3kpLFxuICAgICAgICAgICAgbWFwKChldmVudCkgPT4gZXZlbnQuY2xpZW50WCksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKG9mZnNldCkgPT4gdGhpcy5yZXNpemVcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWw8TW91c2VFdmVudD4odGhpcy5yZXNpemVFbmQpLFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiBldmVudC5jbGllbnRYIC0gb2Zmc2V0KSxcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwb3MpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gdGhpcy5fbGVmdCArIHBvcztcbiAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSB0aGlzLl9sZWZ0IC0gdGhpcy5yZXN0cmljdEhSZXNpemVNaW47XG4gICAgICAgICAgICAgICAgY29uc3QgbWF4ID0gdGhpcy5fbGVmdCArIHRoaXMucmVzdHJpY3RIUmVzaXplTWF4O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0ID0gbGVmdCA8IG1pbiA/IG1pbiA6IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICBpZiAobGVmdCA+IG1heCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxlZnQgPSBtYXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldywgJ21vdXNlbW92ZScpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbDxNb3VzZUV2ZW50Pih0aGlzLl9kZXN0cm95KSxcbiAgICAgICAgICAgICAgICAgICAgdGhyb3R0bGUoKCkgPT4gaW50ZXJ2YWwoMCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB0aGlzLm9uTW91c2Vtb3ZlKHJlcykpO1xuXG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldywgJ21vdXNldXAnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbDxNb3VzZUV2ZW50Pih0aGlzLl9kZXN0cm95KSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHRoaXMub25Nb3VzZXVwKHJlcykpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgbGVmdCh2YWw6IG51bWJlcikge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHZhbCArICdweCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdG9wKHZhbDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3RyaWN0UmVzaXplclRvcCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0aGlzLnJlc3RyaWN0UmVzaXplclRvcCArICdweCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IHZhbCArICdweCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW91c2V1cChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUVuZC5uZXh0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5yZXNpemVFbmQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Nb3VzZWRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXG4gICAgICAgIHRoaXMubGVmdCA9IHRoaXMuX2xlZnQgPSBldmVudC5jbGllbnRYIC0gcGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG4gICAgICAgIHRoaXMudG9wID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gcGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcblxuICAgICAgICB0aGlzLnJlc2l6ZVN0YXJ0Lm5leHQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1vdXNlbW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnJlc2l6ZS5uZXh0KGV2ZW50KTtcbiAgICB9XG59XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcmVzaXppbmcvcmVzaXplci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sR0FHVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFckU7OztHQUdHO0FBS0gsTUFBTSxPQUFPLHlCQUF5QjtJQXdCbEMsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUNXLE9BQWdDLEVBQ2QsUUFBUSxFQUMxQixJQUFZO1FBRlosWUFBTyxHQUFQLE9BQU8sQ0FBeUI7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFBO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQVE7UUE1QmhCLHVCQUFrQixHQUFXLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztRQUdyRCx1QkFBa0IsR0FBVyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFNckQsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFHdEMsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBRS9DLDREQUE0RDtRQUMzQyxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUdyQyxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLGFBQVEsR0FBRyxJQUFJ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QUUsQ0FBQyxHQUFHLENBQUM7UUFFMUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFpQjtRQUNoQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs4R0FoSFEseUJBQXlCLDRDQThCdEIsUUFBUTtrR0E5QlgseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7OzBCQStCUSxNQUFNOzJCQUFDLFFBQVE7OERBM0JiLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLFNBQVM7c0JBRGYsTUFBTTtnQkFJQSxXQUFXO3NCQURqQixNQUFNO2dCQUlVLE1BQU07c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0LFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBhbmltYXRpb25GcmFtZVNjaGVkdWxlciwgaW50ZXJ2YWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRocm90dGxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqIEBpbnRlcm5hbFxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hSZXNpemVyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hDb2x1bW5SZXNpemVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmVzdHJpY3RIUmVzaXplTWluOiBudW1iZXIgPSBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJlc3RyaWN0SFJlc2l6ZU1heDogbnVtYmVyID0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByZXN0cmljdFJlc2l6ZXJUb3A6IG51bWJlcjtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZXNpemVFbmQgPSBuZXcgU3ViamVjdDxNb3VzZUV2ZW50PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlc2l6ZVN0YXJ0ID0gbmV3IFN1YmplY3Q8TW91c2VFdmVudD4oKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIEBPdXRwdXQoKSBwdWJsaWMgcmVzaXplID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgcHJpdmF0ZSBfbGVmdDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3JhdGlvOiBudW1iZXIgPSAxO1xuICAgIHByaXZhdGUgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgcHVibGljIGdldCByYXRpbygpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmF0aW87XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHVibGljIGRvY3VtZW50LFxuICAgICAgICBwdWJsaWMgem9uZTogTmdab25lXG4gICAgKSB7XG5cbiAgICAgICAgdGhpcy5yZXNpemVTdGFydC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsPE1vdXNlRXZlbnQ+KHRoaXMuX2Rlc3Ryb3kpLFxuICAgICAgICAgICAgbWFwKChldmVudCkgPT4gZXZlbnQuY2xpZW50WCksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKG9mZnNldCkgPT4gdGhpcy5yZXNpemVcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWw8TW91c2VFdmVudD4odGhpcy5yZXNpemVFbmQpLFxuICAgICAgICAgICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiAoZXZlbnQuY2xpZW50WCAtIG9mZnNldCkgLyAodGhpcy5fcmF0aW8pKSxcbiAgICAgICAgICAgICAgICApKVxuICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwb3MpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsZWZ0ID0gdGhpcy5fbGVmdCArIHBvcztcbiAgICAgICAgICAgICAgICBjb25zdCBtaW4gPSB0aGlzLl9sZWZ0IC0gdGhpcy5yZXN0cmljdEhSZXNpemVNaW47XG4gICAgICAgICAgICAgICAgY29uc3QgbWF4ID0gdGhpcy5fbGVmdCArIHRoaXMucmVzdHJpY3RIUmVzaXplTWF4O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0ID0gbGVmdCA8IG1pbiA/IG1pbiA6IGxlZnQ7XG5cbiAgICAgICAgICAgICAgICBpZiAobGVmdCA+IG1heCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxlZnQgPSBtYXg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldywgJ21vdXNlbW92ZScpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbDxNb3VzZUV2ZW50Pih0aGlzLl9kZXN0cm95KSxcbiAgICAgICAgICAgICAgICAgICAgdGhyb3R0bGUoKCkgPT4gaW50ZXJ2YWwoMCwgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB0aGlzLm9uTW91c2Vtb3ZlKHJlcykpO1xuXG4gICAgICAgICAgICBmcm9tRXZlbnQodGhpcy5kb2N1bWVudC5kZWZhdWx0VmlldywgJ21vdXNldXAnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbDxNb3VzZUV2ZW50Pih0aGlzLl9kZXN0cm95KSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHRoaXMub25Nb3VzZXVwKHJlcykpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgbGVmdCh2YWw6IG51bWJlcikge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUubGVmdCA9IHZhbCArICdweCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdG9wKHZhbDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnJlc3RyaWN0UmVzaXplclRvcCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0aGlzLnJlc3RyaWN0UmVzaXplclRvcCArICdweCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IHZhbCArICdweCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uTW91c2V1cChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnJlc2l6ZUVuZC5uZXh0KGV2ZW50KTtcbiAgICAgICAgdGhpcy5yZXNpemVFbmQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Nb3VzZWRvd24oZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgICAgICBjb25zdCBwYXJlbnRSZWN0V2lkdGggPSBwYXJlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIGNvbnN0IHBhcmVudENvbXB1dGVkV2lkdGggPSBwYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHBhcmVudCkud2lkdGgpO1xuICAgICAgICBpZiAoTWF0aC5hYnMocGFyZW50UmVjdFdpZHRoIC0gcGFyZW50Q29tcHV0ZWRXaWR0aCkgPiAxKSB7XG4gICAgICAgICAgICB0aGlzLl9yYXRpbyA9IHBhcmVudFJlY3RXaWR0aCAvIHBhcmVudENvbXB1dGVkV2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sZWZ0ID0gdGhpcy5fbGVmdCA9IChldmVudC5jbGllbnRYIC0gcGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQpIC8gdGhpcy5fcmF0aW87XG4gICAgICAgIHRoaXMudG9wID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gcGFyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcDtcblxuICAgICAgICB0aGlzLnJlc2l6ZVN0YXJ0Lm5leHQoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk1vdXNlbW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnJlc2l6ZS5uZXh0KGV2ZW50KTtcbiAgICB9XG59XG4iXX0=
@@ -20,7 +20,7 @@ export class IgxColumnResizingService {
20
20
  * @hidden
21
21
  */
22
22
  getColumnHeaderRenderedWidth() {
23
- return this.column.headerCell.nativeElement.getBoundingClientRect().width;
23
+ return parseFloat(window.getComputedStyle(this.column.headerCell.nativeElement).width);
24
24
  }
25
25
  /**
26
26
  * @hidden
@@ -76,9 +76,9 @@ export class IgxColumnResizingService {
76
76
  /**
77
77
  * Resizes the column regaridng to the column minWidth and maxWidth.
78
78
  */
79
- resizeColumn(event) {
79
+ resizeColumn(event, ratio = 1) {
80
80
  this.showResizer = false;
81
- const diff = event.clientX - this.startResizePos;
81
+ const diff = (event.clientX - this.startResizePos) / ratio;
82
82
  const colWidth = this.column.width;
83
83
  const isPercentageWidth = colWidth && typeof colWidth === 'string' && colWidth.indexOf('%') !== -1;
84
84
  let currentColWidth = parseFloat(colWidth);
@@ -201,4 +201,4 @@ export class IgxColumnResizingService {
201
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxColumnResizingService, decorators: [{
202
202
  type: Injectable
203
203
  }], ctorParameters: () => [{ type: i0.NgZone }] });
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXppbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9yZXNpemluZy9yZXNpemluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBR25EOzs7R0FHRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7SUF1QmpDLFlBQW9CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBYmhDOztXQUVHO1FBQ0ksaUJBQVksR0FBRyxZQUFZLENBQUM7UUFDbkM7O1dBRUc7UUFDSyxnQkFBVyxHQUFHLEtBQUssQ0FBQztJQU1RLENBQUM7SUFFckM7O09BRUc7SUFDSSw0QkFBNEI7UUFDL0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUM7SUFDOUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxhQUFhO1FBQ3BCLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFFeEQsb0hBQW9IO1FBQ3BILElBQUksc0JBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2hDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMs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QztvQkFDSixvQ0FBb0M7b0JBQ3BDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUVILG1CQUFtQixHQUFHLGVBQWUsQ0FBQztZQUN0QyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBQ3RDLENBQUMsUUFBUSxhQUFhLEVBQUU7UUFFeEIsaUVBQWlFO1FBQ2pFLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM1QixNQUFNLFlBQVksR0FBRyxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDO1lBQ3JGLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ2xDLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ25HLElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBN05RLHdCQUF3QjtrSEFBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2x1bW5UeXBlIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElneENvbHVtblJlc2l6aW5nU2VydmljZSB7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIHN0YXJ0UmVzaXplUG9zOiBudW1iZXI7XG4gICAgLyoqXG4gICAgICogSW5kaWNhdGVzIHRoYXQgYSBjb2x1bW4gaXMgY3VycmVudGx5IGJlaW5nIHJlc2l6ZWQuXG4gICAgICovXG4gICAgcHVibGljIGlzQ29sdW1uUmVzaXppbmc6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyByZXNpemVDdXJzb3IgPSAnY29sLXJlc2l6ZSc7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgICBwdWJsaWMgc2hvd1Jlc2l6ZXIgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBUaGUgY29sdW1uIGJlaW5nIHJlc2l6ZWQuXG4gICAgICovXG4gICAgcHVibGljIGNvbHVtbjogQ29sdW1uVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgem9uZTogTmdab25lKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29sdW1uSGVhZGVyUmVuZGVyZWRXaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLmhlYWRlckNlbGwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCByZXNpemVySGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIGxldCBoZWlnaHQgPSB0aGlzLmNvbHVtbi5ncmlkLmdldFZpc2libGVDb250ZW50SGVpZ2h0KCk7XG5cbiAgICAgICAgLy8gQ29sdW1uIGhlaWdodCBtdWx0aXBsaWVyIGluIGNhc2UgdGhlcmUgYXJlIENvbHVtbiBMYXlvdXRzLiBUaGUgcmVzaXplciBoZWlnaHQgbmVlZCB0byB0YWtlIGludG8gYWNjb3VudCByb3dTdGFydC5cbiAgICAgICAgbGV0IGNvbHVtbkhlaWdodE11bHRpcGxpZXIgPSAxO1xuICAgICAgICBpZiAodGhpcy5jb2x1bW4uY29sdW1uTGF5b3V0Q2hpbGQpIHtcbiAgICAgICAgICAgIGNvbHVtbkhlaWdodE11bHRpcGxpZXIgPSB0aGlzLmNvbHVtbi5ncmlkLm11bHRpUm93TGF5b3V0Um93U2l6ZSAtIHRoaXMuY29sdW1uLnJvd1N0YXJ0ICsgMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5sZXZlbCAhPT0gMCkge1xuICAgICAgICAgICAgaGVpZ2h0IC09IHRoaXMuY29sdW1uLnRvcExldmVsUGFyZW50LmhlYWRlckdyb3VwLmhlaWdodCAtIHRoaXMuY29sdW1uLmhlYWRlckdyb3VwLmhlaWdodCAqIGNvbHVtbkhlaWdodE11bHRpcGxpZXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaGVpZ2h0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIG1pbmltYWwgcG9zc2libGUgd2lkdGggdG8gd2hpY2ggdGhlIGNvbHVtbiBjYW4gYmUgcmVzaXplZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJlc3RyaWN0UmVzaXplTWluKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGFjdHVhbFdpZHRoID0gdGhpcy5nZXRDb2x1bW5IZWFkZXJSZW5kZXJlZFdpZHRoKCk7XG4gICAgICAgIGNvbnN0IG1pbldpZHRoID0gdGhpcy5jb2x1bW4ubWluV2lkdGhQeCA8IGFjdHVhbFdpZHRoID8gdGhpcy5jb2x1bW4ubWluV2lkdGhQeCA6IGFjdHVhbFdpZHRoO1xuXG4gICAgICAgIHJldHVybiBhY3R1YWxXaWR0aCAtIG1pbldpZHRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIG1heGltYWwgcG9zc2libGUgd2lkdGggdG8gd2hpY2ggdGhlIGNvbHVtbiBjYW4gYmUgcmVzaXplZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJlc3RyaWN0UmVzaXplTWF4KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGFjdHVhbFdpZHRoID0gdGhpcy5nZXRDb2x1bW5IZWFkZXJSZW5kZXJlZFdpZHRoKCk7XG4gICAgICAgIGNvbnN0IG1heFdpZHRoID0gdGhpcy5jb2x1bW4ubWF4V2lkdGhQeDtcbiAgICAgICAgaWYgKHRoaXMuY29sdW1uLm1heFdpZHRoKSB7XG4gICAgICAgICAgICByZXR1cm4gbWF4V2lkdGggLSBhY3R1YWxXaWR0aDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEF1dG9zaXplcyB0aGUgY29sdW1uIHRvIHRoZSBsb25nZXN0IGN1cnJlbnRseSB2aXNpYmxlIGNlbGwgdmFsdWUsIGluY2x1ZGluZyB0aGUgaGVhZGVyIGNlbGwuXG4gICAgICogSWYgdGhlIGNvbHVtbiBoYXMgYSBwcmVkaWZpbmVkIG1heFdpZHRoIGFuZCB0aGUgYXV0b3NpemVkIGNvbHVtbiB3aWR0aCB3aWxsIGJlY29tZSBiaWdnZXIgdGhhbiBpdCxcbiAgICAgKiB0aGVuIHRoZSBjb2x1bW4gaXMgc2l6ZWQgdG8gaXRzIG1heFdpZHRoLlxuICAgICAqL1xuICAgIHB1YmxpYyBhdXRvc2l6ZUNvbHVtbk9uRGJsQ2xpY2soKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDb2xXaWR0aCA9IHRoaXMuZ2V0Q29sdW1uSGVhZGVyUmVuZGVyZWRXaWR0aCgpO1xuICAgICAgICB0aGlzLmNvbHVtbi53aWR0aCA9IHRoaXMuY29sdW1uLmdldEF1dG9TaXplKCk7XG5cbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7IH0pO1xuXG4gICAgICAgIHRoaXMuY29sdW1uLmdyaWQuY29sdW1uUmVzaXplZC5lbWl0KHtcbiAgICAgICAgICAgIGNvbHVtbjogdGhpcy5jb2x1bW4sXG4gICAgICAgICAgICBwcmV2V2lkdGg6IGN1cnJlbnRDb2xXaWR0aC50b1N0cmluZygpLFxuICAgICAgICAgICAgbmV3V2lkdGg6IHRoaXMuY29sdW1uLndpZHRoXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc2l6ZXMgdGhlIGNvbHVtbiByZWdhcmlkbmcgdG8gdGhlIGNvbHVtbiBtaW5XaWR0aCBhbmQgbWF4V2lkdGguXG4gICAgICovXG4gICAgcHVibGljIHJlc2l6ZUNvbHVtbihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLnNob3dSZXNpemVyID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBldmVudC5jbGllbnRYIC0gdGhpcy5zdGFydFJlc2l6ZVBvcztcblxuICAgICAgICBjb25zdCBjb2xXaWR0aCA9IHRoaXMuY29sdW1uLndpZHRoO1xuICAgICAgICBjb25zdCBpc1BlcmNlbnRhZ2VXaWR0aCA9IGNvbFdpZHRoICYmIHR5cGVvZiBjb2xXaWR0aCA9PT0gJ3N0cmluZycgJiYgY29sV2lkdGguaW5kZXhPZignJScpICE9PSAtMTtcbiAgICAgICAgbGV0IGN1cnJlbnRDb2xXaWR0aCA9IHBhcnNlRmxvYXQoY29sV2lkdGgpO1xuICAgICAgICBjb25zdCBhY3R1YWxXaWR0aCA9IHRoaXMuZ2V0Q29sdW1uSGVhZGVyUmVuZGVyZWRXaWR0aCgpO1xuICAgICAgICBjdXJyZW50Q29sV2lkdGggPSBOdW1iZXIuaXNOYU4oY3VycmVudENvbFdpZHRoKSA/IHBhcnNlRmxvYXQoYWN0dWFsV2lkdGggYXMgYW55KSA6IGN1cnJlbnRDb2xXaWR0aDtcblxuICAgICAgICBpZiAodGhpcy5jb2x1bW4uZ3JpZC5oYXNDb2x1bW5MYXlvdXRzKSB7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUNvbHVtbkxheW91dEZvcih0aGlzLmNvbHVtbiwgZGlmZik7XG4gICAgICAgIH0gZWxzZSBpZiAoaXNQZXJjZW50YWdlV2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBlcmNlbnRhZ2VSZXNpemUoZGlmZiwgdGhpcy5jb2x1bW4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5faGFuZGxlUGl4ZWxSZXNpemUoZGlmZiwgdGhpcy5jb2x1bW4pO1xuICAgICAgICB9XG5cblxuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHsgfSk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRDb2xXaWR0aCAhPT0gcGFyc2VGbG9hdCh0aGlzLmNvbHVtbi53aWR0aCkpIHtcbiAgICAgICAgICAgIHRoaXMuY29sdW1uLmdyaWQuY29sdW1uUmVzaXplZC5lbWl0KHtcbiAgICAgICAgICAgICAgICBjb2x1bW46IHRoaXMuY29sdW1uLFxuICAgICAgICAgICAgICAgIHByZXZXaWR0aDogaXNQZXJjZW50YWdlV2lkdGggPyBjdXJyZW50Q29sV2lkdGggKyAnJScgOiBjdXJyZW50Q29sV2lkdGggKyAncHgnLFxuICAgICAgICAgICAgICAgIG5ld1dpZHRoOiB0aGlzLmNvbHVtbi53aWR0aFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzQ29sdW1uUmVzaXppbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2hhbmRsZVBpeGVsUmVzaXplKGRpZmY6IG51bWJlciwgY29sdW1uOiBDb2x1bW5UeXBlKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRDb2xXaWR0aCA9IHBhcnNlRmxvYXQoY29sdW1uLndpZHRoKTtcbiAgICAgICAgY29uc3QgY29sTWluV2lkdGggPSBjb2x1bW4ubWluV2lkdGhQeDtcbiAgICAgICAgY29uc3QgY29sTWF4V2lkdGggPSBjb2x1bW4ubWF4V2lkdGhQeDtcbiAgICAgICAgaWYgKGN1cnJlbnRDb2xXaWR0aCArIGRpZmYgPCBjb2xNaW5XaWR0aCkge1xuICAgICAgICAgICAgY29sdW1uLndpZHRoID0gY29sTWluV2lkdGggKyAncHgnO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbE1heFdpZHRoICYmIChjdXJyZW50Q29sV2lkdGggKyBkaWZmID4gY29sTWF4V2lkdGgpKSB7XG4gICAgICAgICAgICBjb2x1bW4ud2lkdGggPSBjb2xNYXhXaWR0aCArICdweCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb2x1bW4ud2lkdGggPSAoY3VycmVudENvbFdpZHRoICsgZGlmZikgKyAncHgnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVQZXJjZW50YWdlUmVzaXplKGRpZmY6IG51bWJlciwgY29sdW1uOiBDb2x1bW5UeXBlKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQZXJjZW50V2lkdGggPSBwYXJzZUZsb2F0KGNvbHVtbi53aWR0aCk7XG4gICAgICAgIGNvbnN0IGdyaWRBdmFpbGFibGVTaXplID0gY29sdW1uLmdyaWQuY2FsY1dpZHRoO1xuXG4gICAgICAgIGNvbnN0IGRpZmZQZXJjZW50YWdlID0gKGRpZmYgLyBncmlkQXZhaWxhYmxlU2l6ZSkgKiAxMDA7XG4gICAgICAgIGNvbnN0IGNvbE1pbldpZHRoID0gY29sdW1uLm1pbldpZHRoUGVyY2VudDtcbiAgICAgICAgY29uc3QgY29sTWF4V2lkdGggPSBjb2x1bW4ubWF4V2lkdGhQZXJjZW50O1xuXG4gICAgICAgIGlmIChjdXJyZW50UGVyY2VudFdpZHRoICsgZGlmZlBlcmNlbnRhZ2UgPCBjb2xNaW5XaWR0aCkge1xuICAgICAgICAgICAgY29sdW1uLndpZHRoID0gY29sTWluV2lkdGggKyAnJSc7XG4gICAgICAgIH0gZWxzZSBpZiAoY29sTWF4V2lkdGggJiYgKGN1cnJlbnRQZXJjZW50V2lkdGggKyBkaWZmUGVyY2VudGFnZSA+IGNvbE1heFdpZHRoKSkge1xuICAgICAgICAgICAgY29sdW1uLndpZHRoID0gY29sTWF4V2lkdGggKyAnJSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb2x1bW4ud2lkdGggPSAoY3VycmVudFBlcmNlbnRXaWR0aCArIGRpZmZQZXJjZW50YWdlKSArICclJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRDb2xNaW5XaWR0aChjb2x1bW46IENvbHVtblR5cGUpIHtcbiAgICAgICAgbGV0IGN1cnJlbnRDb2xXaWR0aCA9IHBhcnNlRmxvYXQoY29sdW1uLndpZHRoKTtcbiAgICAgICAgY29uc3QgYWN0dWFsV2lkdGggPSBjb2x1bW4uaGVhZGVyQ2VsbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICBjdXJyZW50Q29sV2lkdGggPSBOdW1iZXIuaXNOYU4oY3VycmVudENvbFdpZHRoKSB8fCAoY3VycmVudENvbFdpZHRoIDwgYWN0dWFsV2lkdGgpID8gYWN0dWFsV2lkdGggOiBjdXJyZW50Q29sV2lkdGg7XG5cbiAgICAgICAgY29uc3QgYWN0dWFsTWluV2lkdGggPSBwYXJzZUZsb2F0KGNvbHVtbi5taW5XaWR0aCk7XG4gICAgICAgIHJldHVybiBhY3R1YWxNaW5XaWR0aCA8IGN1cnJlbnRDb2xXaWR0aCA/IGFjdHVhbE1pbldpZHRoIDogY3VycmVudENvbFdpZHRoO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNpemVDb2x1bW5MYXlvdXRGb3IoY29sdW1uOiBDb2x1bW5UeXBlLCBkaWZmOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgcmVsYXRpdmVDb2x1bW5zID0gY29sdW1uLmdldFJlc2l6YWJsZUNvbFVuZGVyRW5kKCk7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVkU3BhbiA9IHJlbGF0aXZlQ29sdW1ucy5yZWR1Y2UoKGFjYywgY29sKSA9PiBhY2MgKyBjb2wuc3BhblVzZWQsIDApO1xuXG4gICAgICAgIC8vIFJlc2l6ZSBmaXJzdCB0aG9zZSB3aG8gbWlnaHQgcmVhY2ggbWluL21heCB3aWR0aFxuICAgICAgICBsZXQgY29sdW1uc1RvUmVzaXplID0gWy4uLnJlbGF0aXZlQ29sdW1uc107XG4gICAgICAgIGxldCB1cGRhdGVkRGlmZiA9IGRpZmY7XG4gICAgICAgIGxldCB1cGRhdGVkQ29tYmluZWRTcGFuID0gY29tYmluZWRTcGFuO1xuICAgICAgICBsZXQgc2V0TWluTWF4Q29scyA9IGZhbHNlO1xuICAgICAgICBkbyB7XG4gICAgICAgICAgICAvLyBDeWNsZSB0aGVtIHVudGlsIHRoZXJlIGFyZSBub3Qgb25lcyB0aGF0IHJlYWNoIG1pbi9tYXggc2l6ZSwgYmVjYXVzZSB0aGUgZGlmZiBhY2N1bXVsYXRlcyBhZnRlciBlYWNoIGN5Y2xlLlxuICAgICAgICAgICAgLy8gVGhpcyBpcyBiZWNhdXNlIHdlIGNhbiBoYXZlIGF0IGZpcnN0IDIgY29scyByZWFjaGluZyBtaW4gd2lkdGggYW5kIHRoZW4gYWZ0ZXJcbiAgICAgICAgICAgIC8vIHJlY2FsY3VsYXRpbmcgdGhlIGRpZmYgdGhlcmUgbWlnaHQgYmUgMSBtb3JlIHRoYXQgcmVhY2hlcyBtaW4gd2lkdGguXG4gICAgICAgICAgICBzZXRNaW5NYXhDb2xzID0gZmFsc2U7XG4gICAgICAgICAgICBsZXQgbmV3Q29tYmluZWRTcGFuID0gdXBkYXRlZENvbWJpbmVkU3BhbjtcbiAgICAgICAgICAgIGNvbnN0IG5ld0NvbHNUb1Jlc2l6ZSA9IFtdO1xuICAgICAgICAgICAgY29sdW1uc1RvUmVzaXplLmZvckVhY2goKGNvbCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRSZXNpemVXaWR0aCA9IHBhcnNlRmxvYXQoY29sLnRhcmdldC5jYWxjV2lkdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc2l6ZVNjYWxlZCA9IChkaWZmIC8gdXBkYXRlZENvbWJpbmVkU3BhbikgKiBjb2wudGFyZ2V0LmdyaWRDb2x1bW5TcGFuO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbFdpZHRoID0gY29sLnRhcmdldC53aWR0aDtcbiAgICAgICAgICAgICAgICBjb25zdCBpc1BlcmNlbnRhZ2VXaWR0aCA9IGNvbFdpZHRoICYmIHR5cGVvZiBjb2xXaWR0aCA9PT0gJ3N0cmluZycgJiYgY29sV2lkdGguaW5kZXhPZignJScpICE9PSAtMTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1pbldpZHRoID0gY29sLnRhcmdldC5taW5XaWR0aFB4O1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heFdpZHRoID0gY29sLnRhcmdldC5tYXhXaWR0aFB4O1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50UmVzaXplV2lkdGggKyByZXNpemVTY2FsZWQgPCBtaW5XaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb2wudGFyZ2V0LndpZHRoID0gaXNQZXJjZW50YWdlV2lkdGggPyBjb2wudGFyZ2V0Lm1pbldpZHRoUGVyY2VudCArICclJyA6IG1pbldpZHRoICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlZERpZmYgKz0gKGN1cnJlbnRSZXNpemVXaWR0aCAtIG1pbldpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29tYmluZWRTcGFuIC09IGNvbC5zcGFuVXNlZDtcbiAgICAgICAgICAgICAgICAgICAgc2V0TWluTWF4Q29scyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtYXhXaWR0aCAmJiAoY3VycmVudFJlc2l6ZVdpZHRoICsgcmVzaXplU2NhbGVkID4gbWF4V2lkdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbC50YXJnZXQud2lkdGggPSBpc1BlcmNlbnRhZ2VXaWR0aCA/IGNvbC50YXJnZXQubWF4V2lkdGhQZXJjZW50ICsgJyUnIDogY29sLnRhcmdldC5tYXhXaWR0aFB4ICsgJ3B4JztcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlZERpZmYgLT0gKG1heFdpZHRoIC0gY3VycmVudFJlc2l6ZVdpZHRoKTtcbiAgICAgICAgICAgICAgICAgICAgbmV3Q29tYmluZWRTcGFuIC09IGNvbC5zcGFuVXNlZDtcbiAgICAgICAgICAgICAgICAgICAgc2V0TWluTWF4Q29scyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2F2ZSBuZXcgb25lcyB0aGF0IGNhbiBiZSByZXNpemVkXG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbHNUb1Jlc2l6ZS5wdXNoKGNvbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHVwZGF0ZWRDb21iaW5lZFNwYW4gPSBuZXdDb21iaW5lZFNwYW47XG4gICAgICAgICAgICBjb2x1bW5zVG9SZXNpemUgPSBuZXdDb2xzVG9SZXNpemU7XG4gICAgICAgIH0gd2hpbGUgKHNldE1pbk1heENvbHMpO1xuXG4gICAgICAgIC8vIFRob3NlIGxlZnQgdGhhdCBkb24ndCByZWFjaCBtaW4vbWF4IHNpemUgcmVzaXplIHRoZW0gbm9ybWFsbHkuXG4gICAgICAgIGNvbHVtbnNUb1Jlc2l6ZS5mb3JFYWNoKChjb2wpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc2l6ZVNjYWxlZCA9ICh1cGRhdGVkRGlmZiAvIHVwZGF0ZWRDb21iaW5lZFNwYW4pICogY29sLnRhcmdldC5ncmlkQ29sdW1uU3BhbjtcbiAgICAgICAgICAgIGNvbnN0IGNvbFdpZHRoID0gY29sLnRhcmdldC53aWR0aDtcbiAgICAgICAgICAgIGNvbnN0IGlzUGVyY2VudGFnZVdpZHRoID0gY29sV2lkdGggJiYgdHlwZW9mIGNvbFdpZHRoID09PSAnc3RyaW5nJyAmJiBjb2xXaWR0aC5pbmRleE9mKCclJykgIT09IC0xO1xuICAgICAgICAgICAgaWYgKGlzUGVyY2VudGFnZVdpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlUGVyY2VudGFnZVJlc2l6ZShyZXNpemVTY2FsZWQsIGNvbC50YXJnZXQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVQaXhlbFJlc2l6ZShyZXNpemVTY2FsZWQsIGNvbC50YXJnZXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXppbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9yZXNpemluZy9yZXNpemluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBR25EOzs7R0FHRztBQUVILE1BQU0sT0FBTyx3QkFBd0I7SUF1QmpDLFlBQW9CLElBQVk7UUFBWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBYmhDOztXQUVHO1FBQ0ksaUJBQVksR0FBRyxZQUFZLENBQUM7UUFDbkM7O1dBRUc7UUFDSyxnQkFBVyxHQUFHLEtBQUssQ0FBQztJQU1RLENBQUM7SUFFckM7O09BRUc7SUFDSSw0QkFBNEI7UUFDL0IsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsYUFBYTtRQUNwQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBRXhELG9IQUFvSDtRQUNwSCxJQUFJLHNCQUFzQixHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7UUFDL0YsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDMUIsTUFBTSxJQUFJLElBQUks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QUMsUUFBUSxDQUFDO29CQUNoQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUN6QixDQUFDO3FCQUFNLENBQUM7b0JBQ0osb0NBQW9DO29CQUNwQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxtQkFBbUIsR0FBRyxlQUFlLENBQUM7WUFDdEMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN0QyxDQUFDLFFBQVEsYUFBYSxFQUFFO1FBRXhCLGlFQUFpRTtRQUNqRSxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztZQUNyRixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNsQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNELENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0RCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTdOUSx3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGhpZGRlblxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2Uge1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBzdGFydFJlc2l6ZVBvczogbnVtYmVyO1xuICAgIC8qKlxuICAgICAqIEluZGljYXRlcyB0aGF0IGEgY29sdW1uIGlzIGN1cnJlbnRseSBiZWluZyByZXNpemVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBpc0NvbHVtblJlc2l6aW5nOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzaXplQ3Vyc29yID0gJ2NvbC1yZXNpemUnO1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICAgcHVibGljIHNob3dSZXNpemVyID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbHVtbiBiZWluZyByZXNpemVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb2x1bW46IENvbHVtblR5cGU7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHpvbmU6IE5nWm9uZSkgeyB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldENvbHVtbkhlYWRlclJlbmRlcmVkV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiBwYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuY29sdW1uLmhlYWRlckNlbGwubmF0aXZlRWxlbWVudCkud2lkdGgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHJlc2l6ZXJIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGhlaWdodCA9IHRoaXMuY29sdW1uLmdyaWQuZ2V0VmlzaWJsZUNvbnRlbnRIZWlnaHQoKTtcblxuICAgICAgICAvLyBDb2x1bW4gaGVpZ2h0IG11bHRpcGxpZXIgaW4gY2FzZSB0aGVyZSBhcmUgQ29sdW1uIExheW91dHMuIFRoZSByZXNpemVyIGhlaWdodCBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50IHJvd1N0YXJ0LlxuICAgICAgICBsZXQgY29sdW1uSGVpZ2h0TXVsdGlwbGllciA9IDE7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5jb2x1bW5MYXlvdXRDaGlsZCkge1xuICAgICAgICAgICAgY29sdW1uSGVpZ2h0TXVsdGlwbGllciA9IHRoaXMuY29sdW1uLmdyaWQubXVsdGlSb3dMYXlvdXRSb3dTaXplIC0gdGhpcy5jb2x1bW4ucm93U3RhcnQgKyAxO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29sdW1uLmxldmVsICE9PSAwKSB7XG4gICAgICAgICAgICBoZWlnaHQgLT0gdGhpcy5jb2x1bW4udG9wTGV2ZWxQYXJlbnQuaGVhZGVyR3JvdXAuaGVpZ2h0IC0gdGhpcy5jb2x1bW4uaGVhZGVyR3JvdXAuaGVpZ2h0ICogY29sdW1uSGVpZ2h0TXVsdGlwbGllcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBoZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbWluaW1hbCBwb3NzaWJsZSB3aWR0aCB0byB3aGljaCB0aGUgY29sdW1uIGNhbiBiZSByZXNpemVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcmVzdHJpY3RSZXNpemVNaW4oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgYWN0dWFsV2lkdGggPSB0aGlzLmdldENvbHVtbkhlYWRlclJlbmRlcmVkV2lkdGgoKTtcbiAgICAgICAgY29uc3QgbWluV2lkdGggPSB0aGlzLmNvbHVtbi5taW5XaWR0aFB4IDwgYWN0dWFsV2lkdGggPyB0aGlzLmNvbHVtbi5taW5XaWR0aFB4IDogYWN0dWFsV2lkdGg7XG5cbiAgICAgICAgcmV0dXJuIGFjdHVhbFdpZHRoIC0gbWluV2lkdGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0aGUgbWF4aW1hbCBwb3NzaWJsZSB3aWR0aCB0byB3aGljaCB0aGUgY29sdW1uIGNhbiBiZSByZXNpemVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgcmVzdHJpY3RSZXNpemVNYXgoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgYWN0dWFsV2lkdGggPSB0aGlzLmdldENvbHVtbkhlYWRlclJlbmRlcmVkV2lkdGgoKTtcbiAgICAgICAgY29uc3QgbWF4V2lkdGggPSB0aGlzLmNvbHVtbi5tYXhXaWR0aFB4O1xuICAgICAgICBpZiAodGhpcy5jb2x1bW4ubWF4V2lkdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXhXaWR0aCAtIGFjdHVhbFdpZHRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXV0b3NpemVzIHRoZSBjb2x1bW4gdG8gdGhlIGxvbmdlc3QgY3VycmVudGx5IHZpc2libGUgY2VsbCB2YWx1ZSwgaW5jbHVkaW5nIHRoZSBoZWFkZXIgY2VsbC5cbiAgICAgKiBJZiB0aGUgY29sdW1uIGhhcyBhIHByZWRpZmluZWQgbWF4V2lkdGggYW5kIHRoZSBhdXRvc2l6ZWQgY29sdW1uIHdpZHRoIHdpbGwgYmVjb21lIGJpZ2dlciB0aGFuIGl0LFxuICAgICAqIHRoZW4gdGhlIGNvbHVtbiBpcyBzaXplZCB0byBpdHMgbWF4V2lkdGguXG4gICAgICovXG4gICAgcHVibGljIGF1dG9zaXplQ29sdW1uT25EYmxDbGljaygpIHtcbiAgICAgICAgY29uc3QgY3VycmVudENvbFdpZHRoID0gdGhpcy5nZXRDb2x1bW5IZWFkZXJSZW5kZXJlZFdpZHRoKCk7XG4gICAgICAgIHRoaXMuY29sdW1uLndpZHRoID0gdGhpcy5jb2x1bW4uZ2V0QXV0b1NpemUoKTtcblxuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHsgfSk7XG5cbiAgICAgICAgdGhpcy5jb2x1bW4uZ3JpZC5jb2x1bW5SZXNpemVkLmVtaXQoe1xuICAgICAgICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbixcbiAgICAgICAgICAgIHByZXZXaWR0aDogY3VycmVudENvbFdpZHRoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBuZXdXaWR0aDogdGhpcy5jb2x1bW4ud2lkdGhcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzaXplcyB0aGUgY29sdW1uIHJlZ2FyaWRuZyB0byB0aGUgY29sdW1uIG1pbldpZHRoIGFuZCBtYXhXaWR0aC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVzaXplQ29sdW1uKGV2ZW50OiBNb3VzZUV2ZW50LCByYXRpbzogbnVtYmVyID0gMSkge1xuICAgICAgICB0aGlzLnNob3dSZXNpemVyID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGRpZmYgPSAoZXZlbnQuY2xpZW50WCAtIHRoaXMuc3RhcnRSZXNpemVQb3MpIC8gcmF0aW87XG5cbiAgICAgICAgY29uc3QgY29sV2lkdGggPSB0aGlzLmNvbHVtbi53aWR0aDtcbiAgICAgICAgY29uc3QgaXNQZXJjZW50YWdlV2lkdGggPSBjb2xXaWR0aCAmJiB0eXBlb2YgY29sV2lkdGggPT09ICdzdHJpbmcnICYmIGNvbFdpZHRoLmluZGV4T2YoJyUnKSAhPT0gLTE7XG4gICAgICAgIGxldCBjdXJyZW50Q29sV2lkdGggPSBwYXJzZUZsb2F0KGNvbFdpZHRoKTtcbiAgICAgICAgY29uc3QgYWN0dWFsV2lkdGggPSB0aGlzLmdldENvbHVtbkhlYWRlclJlbmRlcmVkV2lkdGgoKTtcbiAgICAgICAgY3VycmVudENvbFdpZHRoID0gTnVtYmVyLmlzTmFOKGN1cnJlbnRDb2xXaWR0aCkgPyBwYXJzZUZsb2F0KGFjdHVhbFdpZHRoIGFzIGFueSkgOiBjdXJyZW50Q29sV2lkdGg7XG5cbiAgICAgICAgaWYgKHRoaXMuY29sdW1uLmdyaWQuaGFzQ29sdW1uTGF5b3V0cykge1xuICAgICAgICAgICAgdGhpcy5yZXNpemVDb2x1bW5MYXlvdXRGb3IodGhpcy5jb2x1bW4sIGRpZmYpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzUGVyY2VudGFnZVdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVQZXJjZW50YWdlUmVzaXplKGRpZmYsIHRoaXMuY29sdW1uKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBpeGVsUmVzaXplKGRpZmYsIHRoaXMuY29sdW1uKTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7IH0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50Q29sV2lkdGggIT09IHBhcnNlRmxvYXQodGhpcy5jb2x1bW4ud2lkdGgpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbHVtbi5ncmlkLmNvbHVtblJlc2l6ZWQuZW1pdCh7XG4gICAgICAgICAgICAgICAgY29sdW1uOiB0aGlzLmNvbHVtbixcbiAgICAgICAgICAgICAgICBwcmV2V2lkdGg6IGlzUGVyY2VudGFnZVdpZHRoID8gY3VycmVudENvbFdpZHRoICsgJyUnIDogY3VycmVudENvbFdpZHRoICsgJ3B4JyxcbiAgICAgICAgICAgICAgICBuZXdXaWR0aDogdGhpcy5jb2x1bW4ud2lkdGhcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0NvbHVtblJlc2l6aW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVQaXhlbFJlc2l6ZShkaWZmOiBudW1iZXIsIGNvbHVtbjogQ29sdW1uVHlwZSkge1xuICAgICAgICBjb25zdCBjdXJyZW50Q29sV2lkdGggPSBwYXJzZUZsb2F0KGNvbHVtbi53aWR0aCk7XG4gICAgICAgIGNvbnN0IGNvbE1pbldpZHRoID0gY29sdW1uLm1pbldpZHRoUHg7XG4gICAgICAgIGNvbnN0IGNvbE1heFdpZHRoID0gY29sdW1uLm1heFdpZHRoUHg7XG4gICAgICAgIGlmIChjdXJyZW50Q29sV2lkdGggKyBkaWZmIDwgY29sTWluV2lkdGgpIHtcbiAgICAgICAgICAgIGNvbHVtbi53aWR0aCA9IGNvbE1pbldpZHRoICsgJ3B4JztcbiAgICAgICAgfSBlbHNlIGlmIChjb2xNYXhXaWR0aCAmJiAoY3VycmVudENvbFdpZHRoICsgZGlmZiA+IGNvbE1heFdpZHRoKSkge1xuICAgICAgICAgICAgY29sdW1uLndpZHRoID0gY29sTWF4V2lkdGggKyAncHgnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29sdW1uLndpZHRoID0gKGN1cnJlbnRDb2xXaWR0aCArIGRpZmYpICsgJ3B4JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBfaGFuZGxlUGVyY2VudGFnZVJlc2l6ZShkaWZmOiBudW1iZXIsIGNvbHVtbjogQ29sdW1uVHlwZSkge1xuICAgICAgICBjb25zdCBjdXJyZW50UGVyY2VudFdpZHRoID0gcGFyc2VGbG9hdChjb2x1bW4ud2lkdGgpO1xuICAgICAgICBjb25zdCBncmlkQXZhaWxhYmxlU2l6ZSA9IGNvbHVtbi5ncmlkLmNhbGNXaWR0aDtcblxuICAgICAgICBjb25zdCBkaWZmUGVyY2VudGFnZSA9IChkaWZmIC8gZ3JpZEF2YWlsYWJsZVNpemUpICogMTAwO1xuICAgICAgICBjb25zdCBjb2xNaW5XaWR0aCA9IGNvbHVtbi5taW5XaWR0aFBlcmNlbnQ7XG4gICAgICAgIGNvbnN0IGNvbE1heFdpZHRoID0gY29sdW1uLm1heFdpZHRoUGVyY2VudDtcblxuICAgICAgICBpZiAoY3VycmVudFBlcmNlbnRXaWR0aCArIGRpZmZQZXJjZW50YWdlIDwgY29sTWluV2lkdGgpIHtcbiAgICAgICAgICAgIGNvbHVtbi53aWR0aCA9IGNvbE1pbldpZHRoICsgJyUnO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbE1heFdpZHRoICYmIChjdXJyZW50UGVyY2VudFdpZHRoICsgZGlmZlBlcmNlbnRhZ2UgPiBjb2xNYXhXaWR0aCkpIHtcbiAgICAgICAgICAgIGNvbHVtbi53aWR0aCA9IGNvbE1heFdpZHRoICsgJyUnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29sdW1uLndpZHRoID0gKGN1cnJlbnRQZXJjZW50V2lkdGggKyBkaWZmUGVyY2VudGFnZSkgKyAnJSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0Q29sTWluV2lkdGgoY29sdW1uOiBDb2x1bW5UeXBlKSB7XG4gICAgICAgIGxldCBjdXJyZW50Q29sV2lkdGggPSBwYXJzZUZsb2F0KGNvbHVtbi53aWR0aCk7XG4gICAgICAgIGNvbnN0IGFjdHVhbFdpZHRoID0gY29sdW1uLmhlYWRlckNlbGwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgY3VycmVudENvbFdpZHRoID0gTnVtYmVyLmlzTmFOKGN1cnJlbnRDb2xXaWR0aCkgfHwgKGN1cnJlbnRDb2xXaWR0aCA8IGFjdHVhbFdpZHRoKSA/IGFjdHVhbFdpZHRoIDogY3VycmVudENvbFdpZHRoO1xuXG4gICAgICAgIGNvbnN0IGFjdHVhbE1pbldpZHRoID0gcGFyc2VGbG9hdChjb2x1bW4ubWluV2lkdGgpO1xuICAgICAgICByZXR1cm4gYWN0dWFsTWluV2lkdGggPCBjdXJyZW50Q29sV2lkdGggPyBhY3R1YWxNaW5XaWR0aCA6IGN1cnJlbnRDb2xXaWR0aDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVzaXplQ29sdW1uTGF5b3V0Rm9yKGNvbHVtbjogQ29sdW1uVHlwZSwgZGlmZjogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHJlbGF0aXZlQ29sdW1ucyA9IGNvbHVtbi5nZXRSZXNpemFibGVDb2xVbmRlckVuZCgpO1xuICAgICAgICBjb25zdCBjb21iaW5lZFNwYW4gPSByZWxhdGl2ZUNvbHVtbnMucmVkdWNlKChhY2MsIGNvbCkgPT4gYWNjICsgY29sLnNwYW5Vc2VkLCAwKTtcblxuICAgICAgICAvLyBSZXNpemUgZmlyc3QgdGhvc2Ugd2hvIG1pZ2h0IHJlYWNoIG1pbi9tYXggd2lkdGhcbiAgICAgICAgbGV0IGNvbHVtbnNUb1Jlc2l6ZSA9IFsuLi5yZWxhdGl2ZUNvbHVtbnNdO1xuICAgICAgICBsZXQgdXBkYXRlZERpZmYgPSBkaWZmO1xuICAgICAgICBsZXQgdXBkYXRlZENvbWJpbmVkU3BhbiA9IGNvbWJpbmVkU3BhbjtcbiAgICAgICAgbGV0IHNldE1pbk1heENvbHMgPSBmYWxzZTtcbiAgICAgICAgZG8ge1xuICAgICAgICAgICAgLy8gQ3ljbGUgdGhlbSB1bnRpbCB0aGVyZSBhcmUgbm90IG9uZXMgdGhhdCByZWFjaCBtaW4vbWF4IHNpemUsIGJlY2F1c2UgdGhlIGRpZmYgYWNjdW11bGF0ZXMgYWZ0ZXIgZWFjaCBjeWNsZS5cbiAgICAgICAgICAgIC8vIFRoaXMgaXMgYmVjYXVzZSB3ZSBjYW4gaGF2ZSBhdCBmaXJzdCAyIGNvbHMgcmVhY2hpbmcgbWluIHdpZHRoIGFuZCB0aGVuIGFmdGVyXG4gICAgICAgICAgICAvLyByZWNhbGN1bGF0aW5nIHRoZSBkaWZmIHRoZXJlIG1pZ2h0IGJlIDEgbW9yZSB0aGF0IHJlYWNoZXMgbWluIHdpZHRoLlxuICAgICAgICAgICAgc2V0TWluTWF4Q29scyA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IG5ld0NvbWJpbmVkU3BhbiA9IHVwZGF0ZWRDb21iaW5lZFNwYW47XG4gICAgICAgICAgICBjb25zdCBuZXdDb2xzVG9SZXNpemUgPSBbXTtcbiAgICAgICAgICAgIGNvbHVtbnNUb1Jlc2l6ZS5mb3JFYWNoKChjb2wpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50UmVzaXplV2lkdGggPSBwYXJzZUZsb2F0KGNvbC50YXJnZXQuY2FsY1dpZHRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNpemVTY2FsZWQgPSAoZGlmZiAvIHVwZGF0ZWRDb21iaW5lZFNwYW4pICogY29sLnRhcmdldC5ncmlkQ29sdW1uU3BhbjtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2xXaWR0aCA9IGNvbC50YXJnZXQud2lkdGg7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNQZXJjZW50YWdlV2lkdGggPSBjb2xXaWR0aCAmJiB0eXBlb2YgY29sV2lkdGggPT09ICdzdHJpbmcnICYmIGNvbFdpZHRoLmluZGV4T2YoJyUnKSAhPT0gLTE7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBtaW5XaWR0aCA9IGNvbC50YXJnZXQubWluV2lkdGhQeDtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXhXaWR0aCA9IGNvbC50YXJnZXQubWF4V2lkdGhQeDtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFJlc2l6ZVdpZHRoICsgcmVzaXplU2NhbGVkIDwgbWluV2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29sLnRhcmdldC53aWR0aCA9IGlzUGVyY2VudGFnZVdpZHRoID8gY29sLnRhcmdldC5taW5XaWR0aFBlcmNlbnQgKyAnJScgOiBtaW5XaWR0aCArICdweCc7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZWREaWZmICs9IChjdXJyZW50UmVzaXplV2lkdGggLSBtaW5XaWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbWJpbmVkU3BhbiAtPSBjb2wuc3BhblVzZWQ7XG4gICAgICAgICAgICAgICAgICAgIHNldE1pbk1heENvbHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWF4V2lkdGggJiYgKGN1cnJlbnRSZXNpemVXaWR0aCArIHJlc2l6ZVNjYWxlZCA+IG1heFdpZHRoKSkge1xuICAgICAgICAgICAgICAgICAgICBjb2wudGFyZ2V0LndpZHRoID0gaXNQZXJjZW50YWdlV2lkdGggPyBjb2wudGFyZ2V0Lm1heFdpZHRoUGVyY2VudCArICclJyA6IGNvbC50YXJnZXQubWF4V2lkdGhQeCArICdweCc7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZWREaWZmIC09IChtYXhXaWR0aCAtIGN1cnJlbnRSZXNpemVXaWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld0NvbWJpbmVkU3BhbiAtPSBjb2wuc3BhblVzZWQ7XG4gICAgICAgICAgICAgICAgICAgIHNldE1pbk1heENvbHMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFNhdmUgbmV3IG9uZXMgdGhhdCBjYW4gYmUgcmVzaXplZFxuICAgICAgICAgICAgICAgICAgICBuZXdDb2xzVG9SZXNpemUucHVzaChjb2wpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB1cGRhdGVkQ29tYmluZWRTcGFuID0gbmV3Q29tYmluZWRTcGFuO1xuICAgICAgICAgICAgY29sdW1uc1RvUmVzaXplID0gbmV3Q29sc1RvUmVzaXplO1xuICAgICAgICB9IHdoaWxlIChzZXRNaW5NYXhDb2xzKTtcblxuICAgICAgICAvLyBUaG9zZSBsZWZ0IHRoYXQgZG9uJ3QgcmVhY2ggbWluL21heCBzaXplIHJlc2l6ZSB0aGVtIG5vcm1hbGx5LlxuICAgICAgICBjb2x1bW5zVG9SZXNpemUuZm9yRWFjaCgoY29sKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXNpemVTY2FsZWQgPSAodXBkYXRlZERpZmYgLyB1cGRhdGVkQ29tYmluZWRTcGFuKSAqIGNvbC50YXJnZXQuZ3JpZENvbHVtblNwYW47XG4gICAgICAgICAgICBjb25zdCBjb2xXaWR0aCA9IGNvbC50YXJnZXQud2lkdGg7XG4gICAgICAgICAgICBjb25zdCBpc1BlcmNlbnRhZ2VXaWR0aCA9IGNvbFdpZHRoICYmIHR5cGVvZiBjb2xXaWR0aCA9PT0gJ3N0cmluZycgJiYgY29sV2lkdGguaW5kZXhPZignJScpICE9PSAtMTtcbiAgICAgICAgICAgIGlmIChpc1BlcmNlbnRhZ2VXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBlcmNlbnRhZ2VSZXNpemUocmVzaXplU2NhbGVkLCBjb2wudGFyZ2V0KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlUGl4ZWxSZXNpemUocmVzaXplU2NhbGVkLCBjb2wudGFyZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -44743,7 +44743,10 @@ class IgxColumnComponent {
44743
44743
  const colWidth = this.width;
44744
44744
  const isPercentageWidth = colWidth && typeof colWidth === 'string' && colWidth.indexOf('%') !== -1;
44745
44745
  const isAutoWidth = colWidth && typeof colWidth === 'string' && colWidth === 'fit-content';
44746
- if (isPercentageWidth) {
44746
+ if (isPercentageWidth && this.grid.isColumnWidthSum) {
44747
+ this._calcWidth = this.grid.minColumnWidth;
44748
+ }
44749
+ else if (isPercentageWidth) {
44747
44750
  this._calcWidth = Math.floor(parseFloat(colWidth) / 100 * this.grid.calcWidth);
44748
44751
  }
44749
44752
  else if (!colWidth || isAutoWidth && !this.autoSize) {
@@ -49462,8 +49465,8 @@ const GridResourceStringsEN = {
49462
49465
  igx_grid_excel_custom_dialog_add: 'add filter',
49463
49466
  igx_grid_excel_custom_dialog_clear: 'Clear filter',
49464
49467
  igx_grid_excel_custom_dialog_header: 'Custom auto-filter on column: ',
49465
- igx_grid_excel_cancel: 'cancel',
49466
- igx_grid_excel_apply: 'apply',
49468
+ igx_grid_excel_cancel: 'Cancel',
49469
+ igx_grid_excel_apply: 'Apply',
49467
49470
  igx_grid_excel_search_placeholder: 'Search',
49468
49471
  igx_grid_excel_select_all: 'Select All',
49469
49472
  igx_grid_excel_select_all_search_results: 'Select all search results',
@@ -50087,6 +50090,7 @@ class IgxExcelStyleCustomDialogComponent {
50087
50090
  }
50088
50091
  onClearButtonClick() {
50089
50092
  this.filteringService.clearFilter(this.column.field);
50093
+ this.selectedOperator = null;
50090
50094
  this.createInitialExpressionUIElement();
50091
50095
  this.cdr.detectChanges();
50092
50096
  }
@@ -55079,7 +55083,8 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
55079
55083
  this.filterValues = this.generateFilterValues();
55080
55084
  this.generateListData();
55081
55085
  this.expressionsList.forEach(expr => {
55082
- if (this.column.dataType === GridColumnDataType.String && this.column.filteringIgnoreCase && expr.expression.searchVal) {
55086
+ if (this.column.dataType === GridColumnDataType.String && this.column.filteringIgnoreCase
55087
+ && expr.expression.searchVal && expr.expression.searchVal instanceof Set) {
55083
55088
  this.modifyExpression(expr);
55084
55089
  }
55085
55090
  });
@@ -55984,7 +55989,7 @@ class IgxColumnResizingService {
55984
55989
  * @hidden
55985
55990
  */
55986
55991
  getColumnHeaderRenderedWidth() {
55987
- return this.column.headerCell.nativeElement.getBoundingClientRect().width;
55992
+ return parseFloat(window.getComputedStyle(this.column.headerCell.nativeElement).width);
55988
55993
  }
55989
55994
  /**
55990
55995
  * @hidden
@@ -56040,9 +56045,9 @@ class IgxColumnResizingService {
56040
56045
  /**
56041
56046
  * Resizes the column regaridng to the column minWidth and maxWidth.
56042
56047
  */
56043
- resizeColumn(event) {
56048
+ resizeColumn(event, ratio = 1) {
56044
56049
  this.showResizer = false;
56045
- const diff = event.clientX - this.startResizePos;
56050
+ const diff = (event.clientX - this.startResizePos) / ratio;
56046
56051
  const colWidth = this.column.width;
56047
56052
  const isPercentageWidth = colWidth && typeof colWidth === 'string' && colWidth.indexOf('%') !== -1;
56048
56053
  let currentColWidth = parseFloat(colWidth);
@@ -60356,6 +60361,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
60356
60361
  * @internal
60357
60362
  */
60358
60363
  class IgxColumnResizerDirective {
60364
+ get ratio() {
60365
+ return this._ratio;
60366
+ }
60359
60367
  constructor(element, document, zone) {
60360
60368
  this.element = element;
60361
60369
  this.document = document;
@@ -60366,9 +60374,10 @@ class IgxColumnResizerDirective {
60366
60374
  this.resizeStart = new Subject();
60367
60375
  // eslint-disable-next-line @angular-eslint/no-output-native
60368
60376
  this.resize = new Subject();
60377
+ this._ratio = 1;
60369
60378
  this._destroy = new Subject();
60370
60379
  this.resizeStart.pipe(takeUntil(this._destroy), map((event) => event.clientX), switchMap((offset) => this.resize
60371
- .pipe(takeUntil(this._destroy), takeUntil(this.resizeEnd), map((event) => event.clientX - offset))))
60380
+ .pipe(takeUntil(this._destroy), takeUntil(this.resizeEnd), map((event) => (event.clientX - offset) / (this._ratio)))))
60372
60381
  .subscribe((pos) => {
60373
60382
  const left = this._left + pos;
60374
60383
  const min = this._left - this.restrictHResizeMin;
@@ -60411,7 +60420,12 @@ class IgxColumnResizerDirective {
60411
60420
  onMousedown(event) {
60412
60421
  event.preventDefault();
60413
60422
  const parent = this.element.nativeElement.parentElement.parentElement;
60414
- this.left = this._left = event.clientX - parent.getBoundingClientRect().left;
60423
+ const parentRectWidth = parent.getBoundingClientRect().width;
60424
+ const parentComputedWidth = parseFloat(window.getComputedStyle(parent).width);
60425
+ if (Math.abs(parentRectWidth - parentComputedWidth) > 1) {
60426
+ this._ratio = parentRectWidth / parentComputedWidth;
60427
+ }
60428
+ this.left = this._left = (event.clientX - parent.getBoundingClientRect().left) / this._ratio;
60415
60429
  this.top = event.target.getBoundingClientRect().top - parent.getBoundingClientRect().top;
60416
60430
  this.resizeStart.next(event);
60417
60431
  }
@@ -60450,11 +60464,11 @@ class IgxGridColumnResizerComponent {
60450
60464
  this.colResizingService = colResizingService;
60451
60465
  }
60452
60466
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxGridColumnResizerComponent, deps: [{ token: IgxColumnResizingService }], target: i0.ɵɵFactoryTarget.Component }); }
60453
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxGridColumnResizerComponent, isStandalone: true, selector: "igx-grid-column-resizer", inputs: { restrictResizerTop: "restrictResizerTop" }, viewQueries: [{ propertyName: "resizer", first: true, predicate: IgxColumnResizerDirective, descendants: true, static: true }], ngImport: i0, template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event)\">\n</div>\n", dependencies: [{ kind: "directive", type: IgxColumnResizerDirective, selector: "[igxResizer]", inputs: ["restrictHResizeMin", "restrictHResizeMax", "restrictResizerTop"], outputs: ["resizeEnd", "resizeStart", "resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
60467
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxGridColumnResizerComponent, isStandalone: true, selector: "igx-grid-column-resizer", inputs: { restrictResizerTop: "restrictResizerTop" }, viewQueries: [{ propertyName: "resizer", first: true, predicate: IgxColumnResizerDirective, descendants: true, static: true }], ngImport: i0, template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event, resizer.ratio)\">\n</div>\n", dependencies: [{ kind: "directive", type: IgxColumnResizerDirective, selector: "[igxResizer]", inputs: ["restrictHResizeMin", "restrictHResizeMax", "restrictResizerTop"], outputs: ["resizeEnd", "resizeStart", "resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
60454
60468
  }
60455
60469
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxGridColumnResizerComponent, decorators: [{
60456
60470
  type: Component,
60457
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-column-resizer', standalone: true, imports: [IgxColumnResizerDirective], template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event)\">\n</div>\n" }]
60471
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-column-resizer', standalone: true, imports: [IgxColumnResizerDirective], template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event, resizer.ratio)\">\n</div>\n" }]
60458
60472
  }], ctorParameters: () => [{ type: IgxColumnResizingService }], propDecorators: { restrictResizerTop: [{
60459
60473
  type: Input
60460
60474
  }], resizer: [{
@@ -64165,6 +64179,10 @@ class IgxGridBaseDirective {
64165
64179
  * @hidden @internal
64166
64180
  */
64167
64181
  this.filteringPipeTrigger = 0;
64182
+ /**
64183
+ * @hidden @internal
64184
+ */
64185
+ this.isColumnWidthSum = false;
64168
64186
  /**
64169
64187
  * @hidden @internal
64170
64188
  */
@@ -64293,7 +64311,6 @@ class IgxGridBaseDirective {
64293
64311
  this._rowSelectionMode = GridSelectionMode.none;
64294
64312
  this._selectRowOnClick = true;
64295
64313
  this._columnSelectionMode = GridSelectionMode.none;
64296
- this.isColumnWidthSum = false;
64297
64314
  this.rowEditPositioningStrategy = new RowEditPositionStrategy({
64298
64315
  horizontalDirection: HorizontalAlignment.Right,
64299
64316
  verticalDirection: VerticalAlignment.Bottom,
@@ -67106,8 +67123,11 @@ class IgxGridBaseDirective {
67106
67123
  width = this.nativeElement.offsetWidth;
67107
67124
  }
67108
67125
  if (this.width === null || !width) {
67109
- width = this.getColumnWidthSum();
67110
67126
  this.isColumnWidthSum = true;
67127
+ width = this.getColumnWidthSum();
67128
+ }
67129
+ else {
67130
+ this.isColumnWidthSum = false;
67111
67131
  }
67112
67132
  if (this.hasVerticalScroll() && this.width !== null) {
67113
67133
  width -= this.scrollSize;
@@ -74641,11 +74661,11 @@ class IgxPivotGridColumnResizerComponent extends IgxGridColumnResizerComponent {
74641
74661
  this.colResizingService = colResizingService;
74642
74662
  }
74643
74663
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxPivotGridColumnResizerComponent, deps: [{ token: IgxPivotColumnResizingService }], target: i0.ɵɵFactoryTarget.Component }); }
74644
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxPivotGridColumnResizerComponent, isStandalone: true, selector: "igx-pivot-grid-column-resizer", usesInheritance: true, ngImport: i0, template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event)\">\n</div>\n", dependencies: [{ kind: "directive", type: IgxColumnResizerDirective, selector: "[igxResizer]", inputs: ["restrictHResizeMin", "restrictHResizeMax", "restrictResizerTop"], outputs: ["resizeEnd", "resizeStart", "resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74664
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxPivotGridColumnResizerComponent, isStandalone: true, selector: "igx-pivot-grid-column-resizer", usesInheritance: true, ngImport: i0, template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event, resizer.ratio)\">\n</div>\n", dependencies: [{ kind: "directive", type: IgxColumnResizerDirective, selector: "[igxResizer]", inputs: ["restrictHResizeMin", "restrictHResizeMax", "restrictResizerTop"], outputs: ["resizeEnd", "resizeStart", "resize"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74645
74665
  }
74646
74666
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxPivotGridColumnResizerComponent, decorators: [{
74647
74667
  type: Component,
74648
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-grid-column-resizer', standalone: true, imports: [IgxColumnResizerDirective], template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event)\">\n</div>\n" }]
74668
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-grid-column-resizer', standalone: true, imports: [IgxColumnResizerDirective], template: "<div class=\"igx-grid-th__resize-line\"\n [style.left.px]=\"-99999\" igxResizer\n [style.height.px]=\"colResizingService.resizerHeight\"\n [restrictHResizeMax]=\"colResizingService.restrictResizeMax\"\n [restrictHResizeMin]=\"colResizingService.restrictResizeMin\"\n [restrictResizerTop]=\"restrictResizerTop\"\n (resizeEnd)=\"colResizingService.resizeColumn($event, resizer.ratio)\">\n</div>\n" }]
74649
74669
  }], ctorParameters: () => [{ type: IgxPivotColumnResizingService }] });
74650
74670
 
74651
74671
  class DefaultPivotGridRecordSortingStrategy extends DefaultSortingStrategy {
@@ -83435,6 +83455,7 @@ class IgxHierarchicalGridBaseDirective extends IgxGridBaseDirective {
83435
83455
  const columns = [];
83436
83456
  const topLevelCols = cols.filter(c => c.level === 0);
83437
83457
  topLevelCols.forEach((col) => {
83458
+ col.grid = this;
83438
83459
  const ref = this._createColumn(col);
83439
83460
  ref.changeDetectorRef.detectChanges();
83440
83461
  columns.push(ref.instance);