igniteui-angular 19.0.4 → 19.0.6

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 (46) hide show
  1. package/fesm2022/igniteui-angular.mjs +72 -42
  2. package/fesm2022/igniteui-angular.mjs.map +1 -1
  3. package/lib/carousel/carousel-base.d.ts +31 -2
  4. package/lib/carousel/carousel.component.d.ts +2 -2
  5. package/lib/carousel/slide.component.d.ts +2 -3
  6. package/lib/core/styles/components/checkbox/_checkbox-component.scss +8 -4
  7. package/lib/core/styles/components/checkbox/_checkbox-theme.scss +8 -3
  8. package/lib/core/styles/components/chip/_chip-theme.scss +1 -1
  9. package/lib/core/styles/components/combo/_combo-theme.scss +2 -2
  10. package/lib/core/styles/components/grid/_excel-filtering-theme.scss +3 -7
  11. package/lib/core/styles/components/grid/_grid-theme.scss +19 -15
  12. package/lib/core/styles/components/radio/_radio-theme.scss +0 -2
  13. package/lib/core/styles/components/switch/_switch-theme.scss +0 -2
  14. package/lib/grids/common/grid.interface.d.ts +4 -0
  15. package/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.d.ts +4 -1
  16. package/lib/grids/grid-base.directive.d.ts +5 -2
  17. package/lib/grids/pivot-grid/pivot-grid.component.d.ts +1 -1
  18. package/lib/grids/resizing/resizer.directive.d.ts +2 -0
  19. package/lib/grids/resizing/resizing.service.d.ts +2 -2
  20. package/package.json +1 -1
  21. package/styles/igniteui-angular-dark.css +1 -1
  22. package/styles/igniteui-angular.css +1 -1
  23. package/styles/igniteui-bootstrap-dark.css +1 -1
  24. package/styles/igniteui-bootstrap-light.css +1 -1
  25. package/styles/igniteui-dark-green.css +1 -1
  26. package/styles/igniteui-fluent-dark-excel.css +1 -1
  27. package/styles/igniteui-fluent-dark-word.css +1 -1
  28. package/styles/igniteui-fluent-dark.css +1 -1
  29. package/styles/igniteui-fluent-light-excel.css +1 -1
  30. package/styles/igniteui-fluent-light-word.css +1 -1
  31. package/styles/igniteui-fluent-light.css +1 -1
  32. package/styles/igniteui-indigo-dark.css +1 -1
  33. package/styles/igniteui-indigo-light.css +1 -1
  34. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  35. package/styles/maps/igniteui-angular.css.map +1 -1
  36. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  37. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  38. package/styles/maps/igniteui-dark-green.css.map +1 -1
  39. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  40. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  41. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  42. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  43. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  44. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  45. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  46. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -34179,6 +34179,8 @@ var Direction;
34179
34179
  Direction[Direction["PREV"] = 2] = "PREV";
34180
34180
  })(Direction || (Direction = {}));
34181
34181
  /** @hidden */
34182
+ const IGX_CAROUSEL_COMPONENT = /*@__PURE__*/ new InjectionToken('IgxCarouselToken');
34183
+ /** @hidden */
34182
34184
  let IgxCarouselComponentBase = class IgxCarouselComponentBase {
34183
34185
  constructor(animationService, cdr) {
34184
34186
  this.animationService = animationService;
@@ -34457,15 +34459,15 @@ class IgxSlideComponent {
34457
34459
  this._destroy$.next(true);
34458
34460
  this._destroy$.complete();
34459
34461
  }
34460
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxSlideComponent, deps: [{ token: i0.ElementRef }, { token: IgxCarouselComponent }], target: i0.ɵɵFactoryTarget.Component }); }
34462
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxSlideComponent, deps: [{ token: i0.ElementRef }, { token: IGX_CAROUSEL_COMPONENT }], target: i0.ɵɵFactoryTarget.Component }); }
34461
34463
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "19.0.0", type: IgxSlideComponent, isStandalone: true, selector: "igx-slide", inputs: { index: "index", direction: "direction", total: "total", active: ["active", "active", booleanAttribute], previous: ["previous", "previous", booleanAttribute] }, outputs: { activeChange: "activeChange" }, host: { properties: { "attr.tabindex": "this.tabIndex", "attr.id": "this.id", "attr.role": "this.tab", "attr.aria-labelledby": "this.ariaLabelledBy", "class.igx-slide": "this.cssClass", "class.igx-slide--current": "this.active", "class.igx-slide--previous": "this.previous" } }, ngImport: i0, template: "<ng-content></ng-content>\n" }); }
34462
34464
  }
34463
34465
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxSlideComponent, decorators: [{
34464
34466
  type: Component,
34465
34467
  args: [{ selector: 'igx-slide', standalone: true, template: "<ng-content></ng-content>\n" }]
34466
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: IgxCarouselComponent, decorators: [{
34468
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
34467
34469
  type: Inject,
34468
- args: [IgxCarouselComponent]
34470
+ args: [IGX_CAROUSEL_COMPONENT]
34469
34471
  }] }], propDecorators: { index: [{
34470
34472
  type: Input
34471
34473
  }], direction: [{
@@ -35610,7 +35612,8 @@ class IgxCarouselComponent extends IgxCarouselComponentBase {
35610
35612
  {
35611
35613
  provide: HAMMER_GESTURE_CONFIG,
35612
35614
  useClass: CarouselHammerConfig
35613
- }
35615
+ },
35616
+ { provide: IGX_CAROUSEL_COMPONENT, useExisting: IgxCarouselComponent }
35614
35617
  ], queries: [{ propertyName: "indicatorTemplate", first: true, predicate: IgxCarouselIndicatorDirective, descendants: true, read: TemplateRef }, { propertyName: "nextButtonTemplate", first: true, predicate: IgxCarouselNextButtonDirective, descendants: true, read: TemplateRef }, { propertyName: "prevButtonTemplate", first: true, predicate: IgxCarouselPrevButtonDirective, descendants: true, read: TemplateRef }, { propertyName: "slides", predicate: IgxSlideComponent }], viewQueries: [{ propertyName: "defaultIndicator", first: true, predicate: ["defaultIndicator"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultNextButton", first: true, predicate: ["defaultNextButton"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultPrevButton", first: true, predicate: ["defaultPrevButton"], descendants: true, read: TemplateRef, static: true }, { propertyName: "_indicators", predicate: ["indicators"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-template #defaultIndicator let-slide>\n <div class=\"igx-nav-dot\"\n [class.igx-nav-dot--active]=\"slide.active\">\n </div>\n</ng-template>\n\n<ng-template #defaultNextButton>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"carousel_next\"\n class=\"igx-nav-arrow\">\n </igx-icon>\n</ng-template>\n\n<ng-template #defaultPrevButton>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"carousel_prev\"\n class=\"igx-nav-arrow\">\n </igx-icon>\n</ng-template>\n\n<button *ngIf=\"navigation && slides.length\"\n igxButton\n class=\"igx-carousel__arrow--prev\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_previous_slide\"\n [disabled]=\"prevButtonDisabled\"\n (click)=\"prev()\"\n (keydown)=\"handleKeydownPrev($event)\">\n <ng-container *ngTemplateOutlet=\"getPrevButtonTemplate; context: {$implicit: prevButtonDisabled};\"></ng-container>\n</button>\n\n<button *ngIf=\"navigation && slides.length\"\n igxButton\n class=\"igx-carousel__arrow--next\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_next_slide\"\n [disabled]=\"nextButtonDisabled\"\n (click)=\"next()\"\n (keydown)=\"handleKeydownNext($event)\">\n <ng-container *ngTemplateOutlet=\"getNextButtonTemplate; context: {$implicit: nextButtonDisabled};\"></ng-container>\n</button>\n\n<div *ngIf=\"showIndicators\" [ngClass]=\"indicatorsClass\" [attr.role]=\"'tablist'\" (keyup)=\"handleKeyUp($event)\" (focusout)=\"handleFocusOut($event)\" (click)=\"handleClick()\" (keydown)=\"handleKeydown($event)\">\n <div #indicators *ngFor=\"let slide of slides\"\n class=\"igx-carousel-indicators__indicator\"\n (click)=\"select(slide)\"\n [id]=\"'tab-'+ slide.index + '-' + total\"\n [attr.role]=\"'tab'\"\n [attr.tabindex]=\"slide.active ? 0 : -1\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_slide + ' ' + (slide.index + 1) + ' ' + resourceStrings.igx_carousel_of + ' ' + this.total\"\n [attr.aria-controls]=\"'panel-' + slide.index\"\n [attr.aria-selected]=\"slide.active\">\n <ng-container *ngTemplateOutlet=\"getIndicatorTemplate; context: {$implicit: slide};\"></ng-container>\n </div>\n</div>\n\n<div *ngIf=\"showIndicatorsLabel\" [ngClass]=\"indicatorsClass\" class=\"igx-carousel-label-indicator\">\n <span [id]=\"labelId\" class=\"igx-carousel__label\">{{getCarouselLabel}}</span>\n</div>\n\n<div class=\"igx-carousel__inner\" [attr.aria-live]=\"!interval || stoppedByInteraction ? 'polite' : 'off'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block;outline-style:none}\n"], dependencies: [{ kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
35615
35618
  }
35616
35619
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxCarouselComponent, decorators: [{
@@ -35619,7 +35622,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
35619
35622
  {
35620
35623
  provide: HAMMER_GESTURE_CONFIG,
35621
35624
  useClass: CarouselHammerConfig
35622
- }
35625
+ },
35626
+ { provide: IGX_CAROUSEL_COMPONENT, useExisting: IgxCarouselComponent }
35623
35627
  ], selector: 'igx-carousel', imports: [IgxButtonDirective, IgxIconComponent, NgIf, NgClass, NgFor, NgTemplateOutlet], template: "<ng-template #defaultIndicator let-slide>\n <div class=\"igx-nav-dot\"\n [class.igx-nav-dot--active]=\"slide.active\">\n </div>\n</ng-template>\n\n<ng-template #defaultNextButton>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"carousel_next\"\n class=\"igx-nav-arrow\">\n </igx-icon>\n</ng-template>\n\n<ng-template #defaultPrevButton>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"carousel_prev\"\n class=\"igx-nav-arrow\">\n </igx-icon>\n</ng-template>\n\n<button *ngIf=\"navigation && slides.length\"\n igxButton\n class=\"igx-carousel__arrow--prev\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_previous_slide\"\n [disabled]=\"prevButtonDisabled\"\n (click)=\"prev()\"\n (keydown)=\"handleKeydownPrev($event)\">\n <ng-container *ngTemplateOutlet=\"getPrevButtonTemplate; context: {$implicit: prevButtonDisabled};\"></ng-container>\n</button>\n\n<button *ngIf=\"navigation && slides.length\"\n igxButton\n class=\"igx-carousel__arrow--next\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_next_slide\"\n [disabled]=\"nextButtonDisabled\"\n (click)=\"next()\"\n (keydown)=\"handleKeydownNext($event)\">\n <ng-container *ngTemplateOutlet=\"getNextButtonTemplate; context: {$implicit: nextButtonDisabled};\"></ng-container>\n</button>\n\n<div *ngIf=\"showIndicators\" [ngClass]=\"indicatorsClass\" [attr.role]=\"'tablist'\" (keyup)=\"handleKeyUp($event)\" (focusout)=\"handleFocusOut($event)\" (click)=\"handleClick()\" (keydown)=\"handleKeydown($event)\">\n <div #indicators *ngFor=\"let slide of slides\"\n class=\"igx-carousel-indicators__indicator\"\n (click)=\"select(slide)\"\n [id]=\"'tab-'+ slide.index + '-' + total\"\n [attr.role]=\"'tab'\"\n [attr.tabindex]=\"slide.active ? 0 : -1\"\n [attr.aria-label]=\"resourceStrings.igx_carousel_slide + ' ' + (slide.index + 1) + ' ' + resourceStrings.igx_carousel_of + ' ' + this.total\"\n [attr.aria-controls]=\"'panel-' + slide.index\"\n [attr.aria-selected]=\"slide.active\">\n <ng-container *ngTemplateOutlet=\"getIndicatorTemplate; context: {$implicit: slide};\"></ng-container>\n </div>\n</div>\n\n<div *ngIf=\"showIndicatorsLabel\" [ngClass]=\"indicatorsClass\" class=\"igx-carousel-label-indicator\">\n <span [id]=\"labelId\" class=\"igx-carousel__label\">{{getCarouselLabel}}</span>\n</div>\n\n<div class=\"igx-carousel__inner\" [attr.aria-live]=\"!interval || stoppedByInteraction ? 'polite' : 'off'\">\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:block;outline-style:none}\n"] }]
35624
35628
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.IterableDiffers }, { type: undefined, decorators: [{
35625
35629
  type: Inject,
@@ -44202,7 +44206,7 @@ class IgxColumnComponent {
44202
44206
  columnSizes[col.colStart - 1] = {
44203
44207
  ref: col,
44204
44208
  width: col.width === 'fit-content' ? col.autoSize :
44205
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseInt(col.calcWidth, 10) : null,
44209
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
44206
44210
  colSpan: col.gridColumnSpan,
44207
44211
  colEnd: col.colStart + col.gridColumnSpan,
44208
44212
  widthSetByUser: col.widthSetByUser
@@ -44231,7 +44235,7 @@ class IgxColumnComponent {
44231
44235
  columnSizes[col.colStart - 1] = {
44232
44236
  ref: col,
44233
44237
  width: col.width === 'fit-content' ? col.autoSize :
44234
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseInt(col.calcWidth, 10) : null,
44238
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
44235
44239
  colSpan: col.gridColumnSpan,
44236
44240
  colEnd: col.colStart + col.gridColumnSpan,
44237
44241
  widthSetByUser: col.widthSetByUser
@@ -44246,7 +44250,7 @@ class IgxColumnComponent {
44246
44250
  columnSizes[i] = {
44247
44251
  ref: col,
44248
44252
  width: col.width === 'fit-content' ? col.autoSize :
44249
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseInt(col.calcWidth, 10) : null,
44253
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
44250
44254
  colSpan: col.gridColumnSpan,
44251
44255
  colEnd: col.colStart + col.gridColumnSpan,
44252
44256
  widthSetByUser: col.widthSetByUser
@@ -44306,7 +44310,7 @@ class IgxColumnComponent {
44306
44310
  result.push(size.width + 'px');
44307
44311
  }
44308
44312
  else {
44309
- result.push(parseInt(this.grid.getPossibleColumnWidth(), 10) + 'px');
44313
+ result.push(parseFloat(this.grid.getPossibleColumnWidth()) + 'px');
44310
44314
  }
44311
44315
  }
44312
44316
  return result;
@@ -44711,8 +44715,11 @@ class IgxColumnComponent {
44711
44715
  const colWidth = this.width;
44712
44716
  const isPercentageWidth = colWidth && typeof colWidth === 'string' && colWidth.indexOf('%') !== -1;
44713
44717
  const isAutoWidth = colWidth && typeof colWidth === 'string' && colWidth === 'fit-content';
44714
- if (isPercentageWidth) {
44715
- this._calcWidth = Math.floor(parseFloat(colWidth) / 100 * this.grid.calcWidth);
44718
+ if (isPercentageWidth && this.grid.isColumnWidthSum) {
44719
+ this._calcWidth = this.grid.minColumnWidth;
44720
+ }
44721
+ else if (isPercentageWidth) {
44722
+ this._calcWidth = parseFloat(colWidth) / 100 * this.grid.calcWidth;
44716
44723
  }
44717
44724
  else if (!colWidth || isAutoWidth && !this.autoSize) {
44718
44725
  // no width
@@ -44721,7 +44728,7 @@ class IgxColumnComponent {
44721
44728
  else {
44722
44729
  this._calcWidth = this.width;
44723
44730
  }
44724
- this.calcPixelWidth = parseInt(this._calcWidth, 10);
44731
+ this.calcPixelWidth = parseFloat(this._calcWidth);
44725
44732
  }
44726
44733
  /**
44727
44734
  * @hidden
@@ -45420,7 +45427,7 @@ class IgxColumnGroupComponent extends IgxColumnComponent {
45420
45427
  if (val.hidden) {
45421
45428
  return acc;
45422
45429
  }
45423
- return acc + parseInt(val.calcWidth, 10);
45430
+ return acc + parseFloat(val.calcWidth);
45424
45431
  }, 0)}`;
45425
45432
  return width + 'px';
45426
45433
  }
@@ -45526,7 +45533,7 @@ class IgxColumnLayoutComponent extends IgxColumnGroupComponent {
45526
45533
  * @memberof IgxColumnGroupComponent
45527
45534
  */
45528
45535
  get width() {
45529
- const width = this.getFilledChildColumnSizes(this.children).reduce((acc, val) => acc + parseInt(val, 10), 0);
45536
+ const width = this.getFilledChildColumnSizes(this.children).reduce((acc, val) => acc + parseFloat(val), 0);
45530
45537
  return width;
45531
45538
  }
45532
45539
  /* blazorSuppress */
@@ -45541,7 +45548,7 @@ class IgxColumnLayoutComponent extends IgxColumnGroupComponent {
45541
45548
  let borderWidth = 0;
45542
45549
  if (this.headerGroup && this.headerGroup.hasLastPinnedChildColumn) {
45543
45550
  const headerStyles = this.grid.document.defaultView.getComputedStyle(this.headerGroup.nativeElement.children[0]);
45544
- borderWidth = parseInt(headerStyles.borderRightWidth, 10);
45551
+ borderWidth = parseFloat(headerStyles.borderRightWidth);
45545
45552
  }
45546
45553
  return super.getCalcWidth() + borderWidth;
45547
45554
  }
@@ -49431,8 +49438,8 @@ const GridResourceStringsEN = {
49431
49438
  igx_grid_excel_custom_dialog_add: 'add filter',
49432
49439
  igx_grid_excel_custom_dialog_clear: 'Clear filter',
49433
49440
  igx_grid_excel_custom_dialog_header: 'Custom auto-filter on column: ',
49434
- igx_grid_excel_cancel: 'cancel',
49435
- igx_grid_excel_apply: 'apply',
49441
+ igx_grid_excel_cancel: 'Cancel',
49442
+ igx_grid_excel_apply: 'Apply',
49436
49443
  igx_grid_excel_search_placeholder: 'Search',
49437
49444
  igx_grid_excel_select_all: 'Select All',
49438
49445
  igx_grid_excel_select_all_search_results: 'Select all search results',
@@ -50006,10 +50013,11 @@ function generateExpressionsListRecursive(expressions, operator, expressionsUIs)
50006
50013
  * @hidden
50007
50014
  */
50008
50015
  class IgxExcelStyleCustomDialogComponent {
50009
- constructor(overlayService, cdr, platform) {
50016
+ constructor(overlayService, cdr, platform, esf) {
50010
50017
  this.overlayService = overlayService;
50011
50018
  this.cdr = cdr;
50012
50019
  this.platform = platform;
50020
+ this.esf = esf;
50013
50021
  this.expressionsList = new Array();
50014
50022
  this._customDialogPositionSettings = {
50015
50023
  verticalDirection: VerticalAlignment.Middle,
@@ -50056,6 +50064,7 @@ class IgxExcelStyleCustomDialogComponent {
50056
50064
  }
50057
50065
  onClearButtonClick() {
50058
50066
  this.filteringService.clearFilter(this.column.field);
50067
+ this.selectedOperator = null;
50059
50068
  this.createInitialExpressionUIElement();
50060
50069
  this.cdr.detectChanges();
50061
50070
  }
@@ -50068,6 +50077,10 @@ class IgxExcelStyleCustomDialogComponent {
50068
50077
  this.toggle.close();
50069
50078
  }
50070
50079
  }
50080
+ cancelDialog() {
50081
+ this.esf.cancel();
50082
+ this.closeDialog();
50083
+ }
50071
50084
  onApplyButtonClick() {
50072
50085
  this.expressionsList = this.expressionsList.filter(element => element.expression.condition &&
50073
50086
  (element.expression.searchVal || element.expression.searchVal === 0 || element.expression.condition.isUnary));
@@ -50178,13 +50191,13 @@ class IgxExcelStyleCustomDialogComponent {
50178
50191
  this.expressionsContainer.nativeElement.scrollTop = this.expressionsContainer.nativeElement.scrollHeight;
50179
50192
  });
50180
50193
  }
50181
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxExcelStyleCustomDialogComponent, deps: [{ token: IgxOverlayService }, { token: i0.ChangeDetectorRef }, { token: PlatformUtil }], target: i0.ɵɵFactoryTarget.Component }); }
50182
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0", type: IgxExcelStyleCustomDialogComponent, isStandalone: true, selector: "igx-excel-style-custom-dialog", inputs: { expressionsList: "expressionsList", column: "column", selectedOperator: "selectedOperator", filteringService: "filteringService", overlayComponentId: "overlayComponentId" }, viewQueries: [{ propertyName: "toggle", first: true, predicate: ["toggle"], descendants: true, read: IgxToggleDirective, static: true }, { propertyName: "defaultExpressionTemplate", first: true, predicate: ["defaultExpressionTemplate"], descendants: true, read: TemplateRef }, { propertyName: "dateExpressionTemplate", first: true, predicate: ["dateExpressionTemplate"], descendants: true, read: TemplateRef }, { propertyName: "expressionsContainer", first: true, predicate: ["expressionsContainer"], descendants: true, static: true }, { propertyName: "expressionComponents", predicate: IgxExcelStyleDefaultExpressionComponent, descendants: true }, { propertyName: "expressionDateComponents", predicate: IgxExcelStyleDateExpressionComponent, descendants: true }], ngImport: i0, template: "<article #toggle igxToggle\n class=\"igx-excel-filter__secondary\"\n [ngClass]=\"{\n 'igx-excel-filter__secondary--cosy': grid.gridSize === '2',\n 'igx-excel-filter__secondary--compact': grid.gridSize === '1'\n }\"\n (keydown)=\"onKeyDown($event)\"\n (opening)=\"onCustomDialogOpening()\"\n (opened)=\"onCustomDialogOpened()\">\n <header class=\"igx-excel-filter__secondary-header\">\n <h4 class=\"ig-typography__h6\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_header }}{{ column.header || column.field }}\n </h4>\n </header>\n\n <article #expressionsContainer class=\"igx-excel-filter__secondary-main\">\n <ng-container *ngIf=\"column.dataType === 'date' || column.dataType === 'dateTime' || column.dataType === 'time'\">\n <igx-excel-style-date-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-date-expression>\n </ng-container>\n\n <ng-container *ngIf=\"column.dataType !== 'date' && column.dataType !== 'dateTime' && column.dataType !== 'time'\">\n <igx-excel-style-default-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-default-expression>\n </ng-container>\n\n <button type=\"button\" igxButton\n class=\"igx-excel-filter__add-filter\"\n (click)=\"onAddButtonClick()\">\n <igx-icon family=\"default\" name=\"add\"></igx-icon>\n <span>{{ grid.resourceStrings.igx_grid_excel_custom_dialog_add }}</span>\n </button>\n </article>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button type=\"button\"\n igxButton=\"flat\"\n (click)=\"onClearButtonClick()\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button type=\"button\"\n igxButton=\"flat\"\n (click)=\"closeDialog()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button type=\"button\"\n igxButton=\"contained\"\n (click)=\"onApplyButtonClick()\"\n (keydown)=\"onApplyButtonKeyDown($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n</article>\n", dependencies: [{ kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxExcelStyleDateExpressionComponent, selector: "igx-excel-style-date-expression" }, { kind: "component", type: IgxExcelStyleDefaultExpressionComponent, selector: "igx-excel-style-default-expression", inputs: ["column", "expressionUI", "expressionsList", "grid"], outputs: ["expressionRemoved", "logicOperatorChanged"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }] }); }
50194
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxExcelStyleCustomDialogComponent, deps: [{ token: IgxOverlayService }, { token: i0.ChangeDetectorRef }, { token: PlatformUtil }, { token: BaseFilteringComponent }], target: i0.ɵɵFactoryTarget.Component }); }
50195
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0", type: IgxExcelStyleCustomDialogComponent, isStandalone: true, selector: "igx-excel-style-custom-dialog", inputs: { expressionsList: "expressionsList", column: "column", selectedOperator: "selectedOperator", filteringService: "filteringService", overlayComponentId: "overlayComponentId" }, viewQueries: [{ propertyName: "toggle", first: true, predicate: ["toggle"], descendants: true, read: IgxToggleDirective, static: true }, { propertyName: "defaultExpressionTemplate", first: true, predicate: ["defaultExpressionTemplate"], descendants: true, read: TemplateRef }, { propertyName: "dateExpressionTemplate", first: true, predicate: ["dateExpressionTemplate"], descendants: true, read: TemplateRef }, { propertyName: "expressionsContainer", first: true, predicate: ["expressionsContainer"], descendants: true, static: true }, { propertyName: "expressionComponents", predicate: IgxExcelStyleDefaultExpressionComponent, descendants: true }, { propertyName: "expressionDateComponents", predicate: IgxExcelStyleDateExpressionComponent, descendants: true }], ngImport: i0, template: "<article #toggle igxToggle\n class=\"igx-excel-filter__secondary\"\n [ngClass]=\"{\n 'igx-excel-filter__secondary--cosy': grid.gridSize === '2',\n 'igx-excel-filter__secondary--compact': grid.gridSize === '1'\n }\"\n (keydown)=\"onKeyDown($event)\"\n (opening)=\"onCustomDialogOpening()\"\n (opened)=\"onCustomDialogOpened()\">\n <header class=\"igx-excel-filter__secondary-header\">\n <h4 class=\"ig-typography__h6\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_header }}{{ column.header || column.field }}\n </h4>\n </header>\n\n <article #expressionsContainer class=\"igx-excel-filter__secondary-main\">\n <ng-container *ngIf=\"column.dataType === 'date' || column.dataType === 'dateTime' || column.dataType === 'time'\">\n <igx-excel-style-date-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-date-expression>\n </ng-container>\n\n <ng-container *ngIf=\"column.dataType !== 'date' && column.dataType !== 'dateTime' && column.dataType !== 'time'\">\n <igx-excel-style-default-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-default-expression>\n </ng-container>\n\n <button type=\"button\" igxButton\n class=\"igx-excel-filter__add-filter\"\n (click)=\"onAddButtonClick()\">\n <igx-icon family=\"default\" name=\"add\"></igx-icon>\n <span>{{ grid.resourceStrings.igx_grid_excel_custom_dialog_add }}</span>\n </button>\n </article>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button type=\"button\"\n igxButton=\"flat\"\n (click)=\"onClearButtonClick()\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button type=\"button\"\n igxButton=\"flat\"\n (click)=\"cancelDialog()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button type=\"button\"\n igxButton=\"contained\"\n (click)=\"onApplyButtonClick()\"\n (keydown)=\"onApplyButtonKeyDown($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n</article>\n", dependencies: [{ kind: "directive", type: IgxToggleDirective, selector: "[igxToggle]", inputs: ["id"], outputs: ["opened", "opening", "closed", "closing", "appended"], exportAs: ["toggle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: IgxExcelStyleDateExpressionComponent, selector: "igx-excel-style-date-expression" }, { kind: "component", type: IgxExcelStyleDefaultExpressionComponent, selector: "igx-excel-style-default-expression", inputs: ["column", "expressionUI", "expressionsList", "grid"], outputs: ["expressionRemoved", "logicOperatorChanged"] }, { kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }] }); }
50183
50196
  }
50184
50197
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxExcelStyleCustomDialogComponent, decorators: [{
50185
50198
  type: Component,
50186
- args: [{ selector: 'igx-excel-style-custom-dialog', imports: [IgxToggleDirective, NgClass, NgIf, NgFor, IgxExcelStyleDateExpressionComponent, IgxExcelStyleDefaultExpressionComponent, IgxButtonDirective, IgxIconComponent], template: "<article #toggle igxToggle\n class=\"igx-excel-filter__secondary\"\n [ngClass]=\"{\n 'igx-excel-filter__secondary--cosy': grid.gridSize === '2',\n 'igx-excel-filter__secondary--compact': grid.gridSize === '1'\n }\"\n (keydown)=\"onKeyDown($event)\"\n (opening)=\"onCustomDialogOpening()\"\n (opened)=\"onCustomDialogOpened()\">\n <header class=\"igx-excel-filter__secondary-header\">\n <h4 class=\"ig-typography__h6\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_header }}{{ column.header || column.field }}\n </h4>\n </header>\n\n <article #expressionsContainer class=\"igx-excel-filter__secondary-main\">\n <ng-container *ngIf=\"column.dataType === 'date' || column.dataType === 'dateTime' || column.dataType === 'time'\">\n <igx-excel-style-date-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-date-expression>\n </ng-container>\n\n <ng-container *ngIf=\"column.dataType !== 'date' && column.dataType !== 'dateTime' && column.dataType !== 'time'\">\n <igx-excel-style-default-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-default-expression>\n </ng-container>\n\n <button type=\"button\" igxButton\n class=\"igx-excel-filter__add-filter\"\n (click)=\"onAddButtonClick()\">\n <igx-icon family=\"default\" name=\"add\"></igx-icon>\n <span>{{ grid.resourceStrings.igx_grid_excel_custom_dialog_add }}</span>\n </button>\n </article>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button type=\"button\"\n igxButton=\"flat\"\n (click)=\"onClearButtonClick()\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button type=\"button\"\n igxButton=\"flat\"\n (click)=\"closeDialog()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button type=\"button\"\n igxButton=\"contained\"\n (click)=\"onApplyButtonClick()\"\n (keydown)=\"onApplyButtonKeyDown($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n</article>\n" }]
50187
- }], ctorParameters: () => [{ type: IgxOverlayService }, { type: i0.ChangeDetectorRef }, { type: PlatformUtil }], propDecorators: { expressionsList: [{
50199
+ args: [{ selector: 'igx-excel-style-custom-dialog', imports: [IgxToggleDirective, NgClass, NgIf, NgFor, IgxExcelStyleDateExpressionComponent, IgxExcelStyleDefaultExpressionComponent, IgxButtonDirective, IgxIconComponent], template: "<article #toggle igxToggle\n class=\"igx-excel-filter__secondary\"\n [ngClass]=\"{\n 'igx-excel-filter__secondary--cosy': grid.gridSize === '2',\n 'igx-excel-filter__secondary--compact': grid.gridSize === '1'\n }\"\n (keydown)=\"onKeyDown($event)\"\n (opening)=\"onCustomDialogOpening()\"\n (opened)=\"onCustomDialogOpened()\">\n <header class=\"igx-excel-filter__secondary-header\">\n <h4 class=\"ig-typography__h6\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_header }}{{ column.header || column.field }}\n </h4>\n </header>\n\n <article #expressionsContainer class=\"igx-excel-filter__secondary-main\">\n <ng-container *ngIf=\"column.dataType === 'date' || column.dataType === 'dateTime' || column.dataType === 'time'\">\n <igx-excel-style-date-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-date-expression>\n </ng-container>\n\n <ng-container *ngIf=\"column.dataType !== 'date' && column.dataType !== 'dateTime' && column.dataType !== 'time'\">\n <igx-excel-style-default-expression *ngFor=\"let expression of expressionsList;\"\n class=\"igx-excel-filter__condition\"\n [expressionUI]=\"expression\"\n [column]=\"column\"\n [grid]=\"grid\"\n [expressionsList]=\"expressionsList\"\n (expressionRemoved)=\"onExpressionRemoved($event)\"\n (logicOperatorChanged)=\"onLogicOperatorChanged($event)\">\n </igx-excel-style-default-expression>\n </ng-container>\n\n <button type=\"button\" igxButton\n class=\"igx-excel-filter__add-filter\"\n (click)=\"onAddButtonClick()\">\n <igx-icon family=\"default\" name=\"add\"></igx-icon>\n <span>{{ grid.resourceStrings.igx_grid_excel_custom_dialog_add }}</span>\n </button>\n </article>\n\n <footer class=\"igx-excel-filter__secondary-footer\">\n <div class=\"igx-excel-filter__clear\">\n <button type=\"button\"\n igxButton=\"flat\"\n (click)=\"onClearButtonClick()\">\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_clear }}\n </button>\n </div>\n <div class=\"igx-excel-filter__cancel\">\n <button type=\"button\"\n igxButton=\"flat\"\n (click)=\"cancelDialog()\">\n {{ grid.resourceStrings.igx_grid_excel_cancel }}\n </button>\n </div>\n <div class=\"igx-excel-filter__apply\">\n <button type=\"button\"\n igxButton=\"contained\"\n (click)=\"onApplyButtonClick()\"\n (keydown)=\"onApplyButtonKeyDown($event)\">\n {{ grid.resourceStrings.igx_grid_excel_apply }}\n </button>\n </div>\n </footer>\n</article>\n" }]
50200
+ }], ctorParameters: () => [{ type: IgxOverlayService }, { type: i0.ChangeDetectorRef }, { type: PlatformUtil }, { type: BaseFilteringComponent }], propDecorators: { expressionsList: [{
50188
50201
  type: Input
50189
50202
  }], column: [{
50190
50203
  type: Input
@@ -55043,7 +55056,8 @@ class IgxGridExcelStyleFilteringComponent extends BaseFilteringComponent {
55043
55056
  this.filterValues = this.generateFilterValues();
55044
55057
  this.generateListData();
55045
55058
  this.expressionsList.forEach(expr => {
55046
- if (this.column.dataType === GridColumnDataType.String && this.column.filteringIgnoreCase && expr.expression.searchVal) {
55059
+ if (this.column.dataType === GridColumnDataType.String && this.column.filteringIgnoreCase &&
55060
+ expr.expression.searchVal && expr.expression.searchVal instanceof Set) {
55047
55061
  this.modifyExpression(expr);
55048
55062
  }
55049
55063
  });
@@ -55893,7 +55907,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
55893
55907
  class IgxHeaderGroupWidthPipe {
55894
55908
  transform(width, minWidth, hasLayout) {
55895
55909
  const isFitContent = width === 'fit-content';
55896
- return hasLayout ? '' : isFitContent ? width : `${Math.max(parseInt(width), minWidth)}px`;
55910
+ return hasLayout ? '' : isFitContent ? width : `${Math.max(parseFloat(width), minWidth)}px`;
55897
55911
  }
55898
55912
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxHeaderGroupWidthPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
55899
55913
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.0", ngImport: i0, type: IgxHeaderGroupWidthPipe, isStandalone: true, name: "igxHeaderGroupWidth" }); }
@@ -55948,7 +55962,7 @@ class IgxColumnResizingService {
55948
55962
  * @hidden
55949
55963
  */
55950
55964
  getColumnHeaderRenderedWidth() {
55951
- return this.column.headerCell.nativeElement.getBoundingClientRect().width;
55965
+ return parseFloat(window.getComputedStyle(this.column.headerCell.nativeElement).width);
55952
55966
  }
55953
55967
  /**
55954
55968
  * @hidden
@@ -56004,9 +56018,9 @@ class IgxColumnResizingService {
56004
56018
  /**
56005
56019
  * Resizes the column regaridng to the column minWidth and maxWidth.
56006
56020
  */
56007
- resizeColumn(event) {
56021
+ resizeColumn(event, ratio = 1) {
56008
56022
  this.showResizer = false;
56009
- const diff = event.clientX - this.startResizePos;
56023
+ const diff = (event.clientX - this.startResizePos) / ratio;
56010
56024
  const colWidth = this.column.width;
56011
56025
  const isPercentageWidth = colWidth && typeof colWidth === 'string' && colWidth.indexOf('%') !== -1;
56012
56026
  let currentColWidth = parseFloat(colWidth);
@@ -60321,6 +60335,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
60321
60335
  * @internal
60322
60336
  */
60323
60337
  class IgxColumnResizerDirective {
60338
+ get ratio() {
60339
+ return this._ratio;
60340
+ }
60324
60341
  constructor(element, document, zone) {
60325
60342
  this.element = element;
60326
60343
  this.document = document;
@@ -60331,9 +60348,10 @@ class IgxColumnResizerDirective {
60331
60348
  this.resizeStart = new Subject();
60332
60349
  // eslint-disable-next-line @angular-eslint/no-output-native
60333
60350
  this.resize = new Subject();
60351
+ this._ratio = 1;
60334
60352
  this._destroy = new Subject();
60335
60353
  this.resizeStart.pipe(takeUntil(this._destroy), map((event) => event.clientX), switchMap((offset) => this.resize
60336
- .pipe(takeUntil(this._destroy), takeUntil(this.resizeEnd), map((event) => event.clientX - offset))))
60354
+ .pipe(takeUntil(this._destroy), takeUntil(this.resizeEnd), map((event) => (event.clientX - offset) / (this._ratio)))))
60337
60355
  .subscribe((pos) => {
60338
60356
  const left = this._left + pos;
60339
60357
  const min = this._left - this.restrictHResizeMin;
@@ -60376,7 +60394,12 @@ class IgxColumnResizerDirective {
60376
60394
  onMousedown(event) {
60377
60395
  event.preventDefault();
60378
60396
  const parent = this.element.nativeElement.parentElement.parentElement;
60379
- this.left = this._left = event.clientX - parent.getBoundingClientRect().left;
60397
+ const parentRectWidth = parent.getBoundingClientRect().width;
60398
+ const parentComputedWidth = parseFloat(window.getComputedStyle(parent).width);
60399
+ if (Math.abs(parentRectWidth - parentComputedWidth) > 1) {
60400
+ this._ratio = parentRectWidth / parentComputedWidth;
60401
+ }
60402
+ this.left = this._left = (event.clientX - parent.getBoundingClientRect().left) / this._ratio;
60380
60403
  this.top = event.target.getBoundingClientRect().top - parent.getBoundingClientRect().top;
60381
60404
  this.resizeStart.next(event);
60382
60405
  }
@@ -60415,11 +60438,11 @@ class IgxGridColumnResizerComponent {
60415
60438
  this.colResizingService = colResizingService;
60416
60439
  }
60417
60440
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxGridColumnResizerComponent, deps: [{ token: IgxColumnResizingService }], target: i0.ɵɵFactoryTarget.Component }); }
60418
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0", 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 }); }
60441
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0", 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 }); }
60419
60442
  }
60420
60443
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxGridColumnResizerComponent, decorators: [{
60421
60444
  type: Component,
60422
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-column-resizer', 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" }]
60445
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-grid-column-resizer', 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" }]
60423
60446
  }], ctorParameters: () => [{ type: IgxColumnResizingService }], propDecorators: { restrictResizerTop: [{
60424
60447
  type: Input
60425
60448
  }], resizer: [{
@@ -64149,6 +64172,10 @@ class IgxGridBaseDirective {
64149
64172
  * @hidden @internal
64150
64173
  */
64151
64174
  this.filteringPipeTrigger = 0;
64175
+ /**
64176
+ * @hidden @internal
64177
+ */
64178
+ this.isColumnWidthSum = false;
64152
64179
  /**
64153
64180
  * @hidden @internal
64154
64181
  */
@@ -64277,7 +64304,6 @@ class IgxGridBaseDirective {
64277
64304
  this._rowSelectionMode = GridSelectionMode.none;
64278
64305
  this._selectRowOnClick = true;
64279
64306
  this._columnSelectionMode = GridSelectionMode.none;
64280
- this.isColumnWidthSum = false;
64281
64307
  this.rowEditPositioningStrategy = new RowEditPositionStrategy({
64282
64308
  horizontalDirection: HorizontalAlignment.Right,
64283
64309
  verticalDirection: VerticalAlignment.Bottom,
@@ -65322,7 +65348,7 @@ class IgxGridBaseDirective {
65322
65348
  let totalWidth = 0;
65323
65349
  let i = 0;
65324
65350
  for (i; i < cols.length; i++) {
65325
- totalWidth += parseInt(cols[i].calcWidth, 10) || 0;
65351
+ totalWidth += parseFloat(cols[i].calcWidth) || 0;
65326
65352
  }
65327
65353
  this._totalWidth = totalWidth;
65328
65354
  return totalWidth;
@@ -66087,7 +66113,7 @@ class IgxGridBaseDirective {
66087
66113
  }
66088
66114
  else {
66089
66115
  computedWidth = this.calcWidth ||
66090
- parseInt(this.document.defaultView.getComputedStyle(this.nativeElement).getPropertyValue('width'), 10);
66116
+ parseFloat(this.document.defaultView.getComputedStyle(this.nativeElement).getPropertyValue('width'));
66091
66117
  }
66092
66118
  const visibleChildColumns = this.visibleColumns.filter(c => !c.columnGroup);
66093
66119
  // Column layouts related
@@ -66106,7 +66132,7 @@ class IgxGridBaseDirective {
66106
66132
  const sumExistingWidths = columnsWithSetWidths
66107
66133
  .reduce((prev, curr) => {
66108
66134
  const colWidth = curr.width;
66109
- let widthValue = parseInt(colWidth, 10);
66135
+ let widthValue = parseFloat(colWidth);
66110
66136
  if (isNaN(widthValue)) {
66111
66137
  widthValue = MINIMUM_COLUMN_WIDTH$1;
66112
66138
  }
@@ -66120,9 +66146,9 @@ class IgxGridBaseDirective {
66120
66146
  return '0px';
66121
66147
  }
66122
66148
  computedWidth -= this.featureColumnsWidth();
66123
- const columnWidth = Math.floor(!Number.isFinite(sumExistingWidths) ?
66149
+ const columnWidth = !Number.isFinite(sumExistingWidths) ?
66124
66150
  Math.max(computedWidth / columnsToSize, this.minColumnWidth) :
66125
- Math.max((computedWidth - sumExistingWidths) / columnsToSize, this.minColumnWidth));
66151
+ Math.max((computedWidth - sumExistingWidths) / columnsToSize, this.minColumnWidth);
66126
66152
  return columnWidth + 'px';
66127
66153
  }
66128
66154
  /**
@@ -67091,8 +67117,11 @@ class IgxGridBaseDirective {
67091
67117
  width = this.nativeElement.offsetWidth;
67092
67118
  }
67093
67119
  if (this.width === null || !width) {
67094
- width = this.getColumnWidthSum();
67095
67120
  this.isColumnWidthSum = true;
67121
+ width = this.getColumnWidthSum();
67122
+ }
67123
+ else {
67124
+ this.isColumnWidthSum = false;
67096
67125
  }
67097
67126
  if (this.hasVerticalScroll() && this.width !== null) {
67098
67127
  width -= this.scrollSize;
@@ -67111,8 +67140,8 @@ class IgxGridBaseDirective {
67111
67140
  this._columnWidth = this.width !== null ? this.getPossibleColumnWidth() : this.minColumnWidth + 'px';
67112
67141
  }
67113
67142
  this._columns.forEach((column) => {
67114
- if (this.hasColumnLayouts && parseInt(this._columnWidth, 10)) {
67115
- const columnWidthCombined = parseInt(this._columnWidth, 10) * (column.colEnd ? column.colEnd - column.colStart : 1);
67143
+ if (this.hasColumnLayouts && parseFloat(this._columnWidth)) {
67144
+ const columnWidthCombined = parseFloat(this._columnWidth) * (column.colEnd ? column.colEnd - column.colStart : 1);
67116
67145
  column.defaultWidth = columnWidthCombined + 'px';
67117
67146
  }
67118
67147
  else {
@@ -74631,11 +74660,11 @@ class IgxPivotGridColumnResizerComponent extends IgxGridColumnResizerComponent {
74631
74660
  this.colResizingService = colResizingService;
74632
74661
  }
74633
74662
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxPivotGridColumnResizerComponent, deps: [{ token: IgxPivotColumnResizingService }], target: i0.ɵɵFactoryTarget.Component }); }
74634
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0", 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 }); }
74663
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0", 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 }); }
74635
74664
  }
74636
74665
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxPivotGridColumnResizerComponent, decorators: [{
74637
74666
  type: Component,
74638
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-grid-column-resizer', 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" }]
74667
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-grid-column-resizer', 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" }]
74639
74668
  }], ctorParameters: () => [{ type: IgxPivotColumnResizingService }] });
74640
74669
 
74641
74670
  class DefaultPivotGridRecordSortingStrategy extends DefaultSortingStrategy {
@@ -83426,6 +83455,7 @@ class IgxHierarchicalGridBaseDirective extends IgxGridBaseDirective {
83426
83455
  const columns = [];
83427
83456
  const topLevelCols = cols.filter(c => c.level === 0);
83428
83457
  topLevelCols.forEach((col) => {
83458
+ col.grid = this;
83429
83459
  const ref = this._createColumn(col);
83430
83460
  ref.changeDetectorRef.detectChanges();
83431
83461
  columns.push(ref.instance);