igniteui-angular 19.0.5 → 19.0.7

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 (38) hide show
  1. package/fesm2022/igniteui-angular.mjs +73 -48
  2. package/fesm2022/igniteui-angular.mjs.map +1 -1
  3. package/lib/calendar/months-view/months-view.component.d.ts +4 -0
  4. package/lib/calendar/years-view/years-view.component.d.ts +4 -0
  5. package/lib/carousel/carousel-base.d.ts +31 -2
  6. package/lib/carousel/carousel.component.d.ts +2 -2
  7. package/lib/carousel/slide.component.d.ts +2 -3
  8. package/lib/core/styles/components/checkbox/_checkbox-theme.scss +1 -2
  9. package/lib/core/styles/components/radio/_radio-theme.scss +0 -2
  10. package/lib/core/styles/components/switch/_switch-theme.scss +0 -2
  11. package/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.d.ts +4 -1
  12. package/package.json +1 -1
  13. package/styles/igniteui-angular-dark.css +1 -1
  14. package/styles/igniteui-angular.css +1 -1
  15. package/styles/igniteui-bootstrap-dark.css +1 -1
  16. package/styles/igniteui-bootstrap-light.css +1 -1
  17. package/styles/igniteui-dark-green.css +1 -1
  18. package/styles/igniteui-fluent-dark-excel.css +1 -1
  19. package/styles/igniteui-fluent-dark-word.css +1 -1
  20. package/styles/igniteui-fluent-dark.css +1 -1
  21. package/styles/igniteui-fluent-light-excel.css +1 -1
  22. package/styles/igniteui-fluent-light-word.css +1 -1
  23. package/styles/igniteui-fluent-light.css +1 -1
  24. package/styles/igniteui-indigo-dark.css +1 -1
  25. package/styles/igniteui-indigo-light.css +1 -1
  26. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  27. package/styles/maps/igniteui-angular.css.map +1 -1
  28. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  29. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  30. package/styles/maps/igniteui-dark-green.css.map +1 -1
  31. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  32. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  33. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  34. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  35. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  36. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  37. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  38. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -4,7 +4,7 @@ import * as i4 from '@angular/forms';
4
4
  import { NgModel, NgControl, FormControlName, NG_VALUE_ACCESSOR, Validators, NG_VALIDATORS, FormGroup, FormsModule, RequiredValidator, MinValidator, MaxValidator, EmailValidator, MinLengthValidator, MaxLengthValidator, PatternValidator, FormControl, ReactiveFormsModule } from '@angular/forms';
5
5
  import { Observable, NEVER, Subject, fromEvent, BehaviorSubject, interval, animationFrameScheduler, noop, merge, Subscription, timer, takeUntil as takeUntil$1, pipe } from 'rxjs';
6
6
  import { takeUntil, filter, throttle, throttleTime, first as first$2, startWith, take, debounce, tap, switchMap, skipLast, debounceTime, map, shareReplay, takeWhile, timeout, pluck } from 'rxjs/operators';
7
- import { isPlatformBrowser, formatDate as formatDate$1, CurrencyPipe, formatPercent, formatNumber, getLocaleCurrencyCode, DatePipe, getLocaleDateFormat, FormatWidth, getLocaleDateTimeFormat, DOCUMENT, NgTemplateOutlet, NgIf, NgClass, NgSwitch, NgSwitchCase, NgSwitchDefault, NgFor, TitleCasePipe, getLocaleFirstDayOfWeek, NgStyle, getLocaleCurrencySymbol, formatCurrency as formatCurrency$1, getLocaleNumberFormat, NumberFormatStyle, DecimalPipe, PercentPipe, getCurrencySymbol, AsyncPipe } from '@angular/common';
7
+ import { isPlatformBrowser, formatDate as formatDate$1, CurrencyPipe, formatPercent, formatNumber, getLocaleCurrencyCode, DatePipe, getLocaleDateFormat, FormatWidth, getLocaleDateTimeFormat, DOCUMENT, NgIf, NgTemplateOutlet, NgClass, NgSwitch, NgSwitchCase, NgSwitchDefault, NgFor, TitleCasePipe, getLocaleFirstDayOfWeek, NgStyle, getLocaleCurrencySymbol, formatCurrency as formatCurrency$1, getLocaleNumberFormat, NumberFormatStyle, DecimalPipe, PercentPipe, getCurrencySymbol, AsyncPipe } from '@angular/common';
8
8
  import { mergeWith, isEqual as isEqual$1 } from 'lodash-es';
9
9
  import { strToU8, zip } from 'fflate';
10
10
  import { scaleInVerTop, scaleOutVerTop, AnimationUtil, fadeIn, fadeOut, slideInTop, slideOutTop, slideInBottom, slideOutBottom, scaleInHorRight, scaleOutHorRight, scaleInHorLeft, scaleOutHorLeft, scaleInVerBottom, scaleOutVerBottom, scaleInCenter, growVerIn, growVerOut, slideInLeft } from 'igniteui-angular/animations';
@@ -5948,7 +5948,9 @@ class IgxOverlayService {
5948
5948
  return;
5949
5949
  }
5950
5950
  if (settings) {
5951
- // TODO: update attach
5951
+ settings.positionStrategy ??= info.settings.positionStrategy;
5952
+ settings.scrollStrategy ??= info.settings.scrollStrategy;
5953
+ info.settings = { ...info.settings, ...settings };
5952
5954
  }
5953
5955
  this.updateSize(info);
5954
5956
  info.settings.positionStrategy.position(info.elementRef.nativeElement.parentElement, { width: info.initialSize.width, height: info.initialSize.height }, this._document, true, info.settings.target);
@@ -10222,7 +10224,7 @@ class IgxIconComponent {
10222
10224
  }
10223
10225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxIconComponent, decorators: [{
10224
10226
  type: Component,
10225
- args: [{ selector: "igx-icon", imports: [NgTemplateOutlet, NgIf], template: "<!-- This is only here for backwards compatibility in case -->\n<!-- ligatures are used and the name is provided as content -->\n@if (!iconRef.name) {\n <ng-content></ng-content>\n}\n\n@switch (iconRef.type) {\n @case (\"liga\") {{{ iconRef.name }}}\n\n @case (\"svg\") {\n <div [innerHTML]=\"getSvg\"></div>\n }\n}\n" }]
10227
+ args: [{ selector: "igx-icon", template: "<!-- This is only here for backwards compatibility in case -->\n<!-- ligatures are used and the name is provided as content -->\n@if (!iconRef.name) {\n <ng-content></ng-content>\n}\n\n@switch (iconRef.type) {\n @case (\"liga\") {{{ iconRef.name }}}\n\n @case (\"svg\") {\n <div [innerHTML]=\"getSvg\"></div>\n }\n}\n" }]
10226
10228
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: IgxIconService }, { type: i0.ChangeDetectorRef }], propDecorators: { elementClasses: [{
10227
10229
  type: HostBinding,
10228
10230
  args: ["class"]
@@ -24258,7 +24260,7 @@ class IgxDropDownComponent extends IgxDropDownBaseDirective {
24258
24260
  * ```
24259
24261
  */
24260
24262
  open(overlaySettings) {
24261
- const settings = overlaySettings || this.getDefaultOverlaySettings();
24263
+ const settings = { ...{}, ...this.getDefaultOverlaySettings(), ...overlaySettings };
24262
24264
  this.toggleDirective.open(settings);
24263
24265
  this.updateScrollPosition();
24264
24266
  }
@@ -24707,7 +24709,7 @@ class IgxGridActionButtonComponent {
24707
24709
  }
24708
24710
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxGridActionButtonComponent, decorators: [{
24709
24711
  type: Component,
24710
- args: [{ selector: 'igx-grid-action-button', imports: [NgIf, IgxButtonDirective, IgxRippleDirective, IgxIconComponent, IgxIconButtonDirective], template: "<ng-container *ngIf=\"!asMenuItem\">\n <button type=\"button\" [title]=\"labelText\" igxIconButton=\"flat\" igxRipple (click)=\"handleClick($event)\" (mousedown)=\"preventEvent($event)\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n </button>\n</ng-container>\n\n<ng-template #menuItemTemplate>\n <ng-container *ngIf=\"asMenuItem\">\n <div #container [className]=\"containerClass\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n <label igxLabel>{{labelText}}</label>\n </div>\n </ng-container>\n</ng-template>\n" }]
24712
+ args: [{ selector: 'igx-grid-action-button', imports: [NgIf, IgxRippleDirective, IgxIconComponent, IgxIconButtonDirective], template: "<ng-container *ngIf=\"!asMenuItem\">\n <button type=\"button\" [title]=\"labelText\" igxIconButton=\"flat\" igxRipple (click)=\"handleClick($event)\" (mousedown)=\"preventEvent($event)\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n </button>\n</ng-container>\n\n<ng-template #menuItemTemplate>\n <ng-container *ngIf=\"asMenuItem\">\n <div #container [className]=\"containerClass\">\n <igx-icon *ngIf=\"iconSet\" [family]=\"iconSet\" [name]=\"iconName\">{{iconName}}</igx-icon>\n <igx-icon *ngIf=\"!iconSet\" >{{iconName}}</igx-icon>\n <label igxLabel>{{labelText}}</label>\n </div>\n </ng-container>\n</ng-template>\n" }]
24711
24713
  }], propDecorators: { container: [{
24712
24714
  type: ViewChild,
24713
24715
  args: ['container']
@@ -27975,7 +27977,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
27975
27977
  NgIf,
27976
27978
  NgFor,
27977
27979
  NgTemplateOutlet,
27978
- IgxButtonDirective,
27979
27980
  IgxIconButtonDirective,
27980
27981
  IgxRippleDirective,
27981
27982
  IgxToggleActionDirective,
@@ -30559,6 +30560,14 @@ class IgxMonthsViewComponent extends IgxCalendarViewDirective {
30559
30560
  */
30560
30561
  this._monthFormat = "short";
30561
30562
  }
30563
+ /**
30564
+ * @hidden
30565
+ */
30566
+ onMouseDown() {
30567
+ if (this.tabIndex !== -1) {
30568
+ this.el.nativeElement.focus();
30569
+ }
30570
+ }
30562
30571
  /**
30563
30572
  * Returns the locale representation of the month in the months view.
30564
30573
  *
@@ -30605,7 +30614,7 @@ class IgxMonthsViewComponent extends IgxCalendarViewDirective {
30605
30614
  provide: DAY_INTERVAL_TOKEN,
30606
30615
  useValue: "month",
30607
30616
  },
30608
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-calendar-view__items\" role=\"row\">\n <span\n igxCalendarMonth\n #item=\"igxCalendarMonth\"\n *ngFor=\"let month of range; trackBy: monthTracker\"\n class=\"igx-calendar-view__item\"\n role=\"gridcell\"\n [attr.id]=\"month.getTime()\"\n [attr.aria-label]=\"formattedMonth(month).long\"\n [attr.aria-selected]=\"item.isSelected\"\n [value]=\"month\"\n [date]=\"date\"\n [showActive]=\"showActive\"\n (itemSelection)=\"selectDate($event)\"\n >\n <span class=\"igx-calendar-view__item-inner\" aria-hidden=\"true\">\n {{ formattedMonth(month).formatted | titlecase }}\n </span>\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: IgxCalendarMonthDirective, selector: "[igxCalendarMonth]", exportAs: ["igxCalendarMonth"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }] }); }
30617
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-calendar-view__items\" role=\"row\">\n <span\n igxCalendarMonth\n #item=\"igxCalendarMonth\"\n *ngFor=\"let month of range; trackBy: monthTracker\"\n class=\"igx-calendar-view__item\"\n role=\"gridcell\"\n [attr.id]=\"month.getTime()\"\n [attr.aria-label]=\"formattedMonth(month).long\"\n [attr.aria-selected]=\"item.isSelected\"\n [value]=\"month\"\n [date]=\"date\"\n [showActive]=\"showActive\"\n (itemSelection)=\"selectDate($event)\"\n (mousedown)=\"onMouseDown()\"\n >\n <span class=\"igx-calendar-view__item-inner\" aria-hidden=\"true\">\n {{ formattedMonth(month).formatted | titlecase }}\n </span>\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: IgxCalendarMonthDirective, selector: "[igxCalendarMonth]", exportAs: ["igxCalendarMonth"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }] }); }
30609
30618
  }
30610
30619
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxMonthsViewComponent, decorators: [{
30611
30620
  type: Component,
@@ -30619,7 +30628,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
30619
30628
  provide: DAY_INTERVAL_TOKEN,
30620
30629
  useValue: "month",
30621
30630
  },
30622
- ], selector: "igx-months-view", imports: [NgFor, IgxCalendarMonthDirective, TitleCasePipe, DatePipe], template: "<div class=\"igx-calendar-view__items\" role=\"row\">\n <span\n igxCalendarMonth\n #item=\"igxCalendarMonth\"\n *ngFor=\"let month of range; trackBy: monthTracker\"\n class=\"igx-calendar-view__item\"\n role=\"gridcell\"\n [attr.id]=\"month.getTime()\"\n [attr.aria-label]=\"formattedMonth(month).long\"\n [attr.aria-selected]=\"item.isSelected\"\n [value]=\"month\"\n [date]=\"date\"\n [showActive]=\"showActive\"\n (itemSelection)=\"selectDate($event)\"\n >\n <span class=\"igx-calendar-view__item-inner\" aria-hidden=\"true\">\n {{ formattedMonth(month).formatted | titlecase }}\n </span>\n </span>\n</div>\n" }]
30631
+ ], selector: "igx-months-view", imports: [NgFor, IgxCalendarMonthDirective, TitleCasePipe], template: "<div class=\"igx-calendar-view__items\" role=\"row\">\n <span\n igxCalendarMonth\n #item=\"igxCalendarMonth\"\n *ngFor=\"let month of range; trackBy: monthTracker\"\n class=\"igx-calendar-view__item\"\n role=\"gridcell\"\n [attr.id]=\"month.getTime()\"\n [attr.aria-label]=\"formattedMonth(month).long\"\n [attr.aria-selected]=\"item.isSelected\"\n [value]=\"month\"\n [date]=\"date\"\n [showActive]=\"showActive\"\n (itemSelection)=\"selectDate($event)\"\n (mousedown)=\"onMouseDown()\"\n >\n <span class=\"igx-calendar-view__item-inner\" aria-hidden=\"true\">\n {{ formattedMonth(month).formatted | titlecase }}\n </span>\n </span>\n</div>\n" }]
30623
30632
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
30624
30633
  type: Inject,
30625
30634
  args: [DAY_INTERVAL_TOKEN]
@@ -30743,6 +30752,14 @@ class IgxYearsViewComponent extends IgxCalendarViewDirective {
30743
30752
  year: this.yearFormat,
30744
30753
  });
30745
30754
  }
30755
+ /**
30756
+ * @hidden
30757
+ */
30758
+ onMouseDown() {
30759
+ if (this.tabIndex !== -1) {
30760
+ this.el.nativeElement.focus();
30761
+ }
30762
+ }
30746
30763
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxYearsViewComponent, deps: [{ token: i0.ElementRef }, { token: DAY_INTERVAL_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
30747
30764
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.0", type: IgxYearsViewComponent, isStandalone: true, selector: "igx-years-view", inputs: { standalone: "standalone", yearFormat: "yearFormat" }, host: { properties: { "class.igx-calendar-view": "this.viewClass", "class.igx-calendar-view--standalone": "this.standalone" } }, providers: [
30748
30765
  {
@@ -30754,7 +30771,7 @@ class IgxYearsViewComponent extends IgxCalendarViewDirective {
30754
30771
  provide: DAY_INTERVAL_TOKEN,
30755
30772
  useValue: "year",
30756
30773
  },
30757
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-calendar-view__items\" role=\"row\">\n <span\n igxCalendarYear\n #item=\"igxCalendarYear\"\n *ngFor=\"let year of range; trackBy: yearTracker\"\n class=\"igx-calendar-view__item\"\n role=\"gridcell\"\n [attr.id]=\"year.getTime()\"\n [attr.aria-label]=\"formattedYear(year).long\"\n [attr.aria-selected]=\"item.isSelected\"\n [attr.aria-current]=\"item.isCurrent\"\n [value]=\"year\"\n [date]=\"date\"\n [showActive]=\"showActive\"\n (itemSelection)=\"selectDate($event)\"\n >\n <span class=\"igx-calendar-view__item-inner\" aria-hidden=\"true\">\n {{ formattedYear(year).formatted }}\n </span>\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: IgxCalendarYearDirective, selector: "[igxCalendarYear]", exportAs: ["igxCalendarYear"] }] }); }
30774
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"igx-calendar-view__items\" role=\"row\">\n <span\n igxCalendarYear\n #item=\"igxCalendarYear\"\n *ngFor=\"let year of range; trackBy: yearTracker\"\n class=\"igx-calendar-view__item\"\n role=\"gridcell\"\n [attr.id]=\"year.getTime()\"\n [attr.aria-label]=\"formattedYear(year).long\"\n [attr.aria-selected]=\"item.isSelected\"\n [attr.aria-current]=\"item.isCurrent\"\n [value]=\"year\"\n [date]=\"date\"\n [showActive]=\"showActive\"\n (itemSelection)=\"selectDate($event)\"\n (mousedown)=\"onMouseDown()\"\n >\n <span class=\"igx-calendar-view__item-inner\" aria-hidden=\"true\">\n {{ formattedYear(year).formatted }}\n </span>\n </span>\n</div>\n", dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: IgxCalendarYearDirective, selector: "[igxCalendarYear]", exportAs: ["igxCalendarYear"] }] }); }
30758
30775
  }
30759
30776
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxYearsViewComponent, decorators: [{
30760
30777
  type: Component,
@@ -30768,7 +30785,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
30768
30785
  provide: DAY_INTERVAL_TOKEN,
30769
30786
  useValue: "year",
30770
30787
  },
30771
- ], selector: "igx-years-view", imports: [NgFor, IgxCalendarYearDirective], template: "<div class=\"igx-calendar-view__items\" role=\"row\">\n <span\n igxCalendarYear\n #item=\"igxCalendarYear\"\n *ngFor=\"let year of range; trackBy: yearTracker\"\n class=\"igx-calendar-view__item\"\n role=\"gridcell\"\n [attr.id]=\"year.getTime()\"\n [attr.aria-label]=\"formattedYear(year).long\"\n [attr.aria-selected]=\"item.isSelected\"\n [attr.aria-current]=\"item.isCurrent\"\n [value]=\"year\"\n [date]=\"date\"\n [showActive]=\"showActive\"\n (itemSelection)=\"selectDate($event)\"\n >\n <span class=\"igx-calendar-view__item-inner\" aria-hidden=\"true\">\n {{ formattedYear(year).formatted }}\n </span>\n </span>\n</div>\n" }]
30788
+ ], selector: "igx-years-view", imports: [NgFor, IgxCalendarYearDirective], template: "<div class=\"igx-calendar-view__items\" role=\"row\">\n <span\n igxCalendarYear\n #item=\"igxCalendarYear\"\n *ngFor=\"let year of range; trackBy: yearTracker\"\n class=\"igx-calendar-view__item\"\n role=\"gridcell\"\n [attr.id]=\"year.getTime()\"\n [attr.aria-label]=\"formattedYear(year).long\"\n [attr.aria-selected]=\"item.isSelected\"\n [attr.aria-current]=\"item.isCurrent\"\n [value]=\"year\"\n [date]=\"date\"\n [showActive]=\"showActive\"\n (itemSelection)=\"selectDate($event)\"\n (mousedown)=\"onMouseDown()\"\n >\n <span class=\"igx-calendar-view__item-inner\" aria-hidden=\"true\">\n {{ formattedYear(year).formatted }}\n </span>\n </span>\n</div>\n" }]
30772
30789
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
30773
30790
  type: Inject,
30774
30791
  args: [DAY_INTERVAL_TOKEN]
@@ -33231,7 +33248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
33231
33248
  multi: false,
33232
33249
  provide: KeyboardNavigationService,
33233
33250
  },
33234
- ], selector: 'igx-calendar', imports: [NgIf, NgTemplateOutlet, IgxCalendarScrollPageDirective, NgStyle, IgxIconComponent, NgFor, IgxDaysViewComponent, IgxMonthsViewComponent, IgxYearsViewComponent, DatePipe, IgxMonthViewSlotsCalendar, IgxGetViewDateCalendar], template: "<ng-template let-result #defaultHeaderTitle>\n <ng-container *ngIf=\"selection === 'single'\">\n <span>{{ resourceStrings.igx_calendar_select_date }}</span>\n </ng-container>\n <ng-container *ngIf=\"selection === 'range'\">\n <span>{{ resourceStrings.igx_calendar_range_placeholder }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template let-result #defaultHeaderDate>\n <ng-container *ngIf=\"selection === 'single'\">\n <span>{{ getFormattedDate().weekday }},&nbsp;</span>\n <span>{{ getFormattedDate().monthday }}</span>\n </ng-container>\n <ng-container *ngIf=\"selection === 'range'\">\n <span>{{ selectedDates.length === 0 ? 'Start' : getFormattedRange().start}}</span>\n <span>&nbsp;-&nbsp;</span>\n <span>{{ selectedDates.length <= 1 ? 'End' : getFormattedRange().end}}</span>\n </ng-container>\n</ng-template>\n\n<!-- Month -->\n<ng-template #defaultMonth let-obj>\n <span\n #monthsBtn\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"(obj.date | date: 'LLLL') + ', ' + resourceStrings.igx_calendar_select_month\"\n (keydown)=\"onActiveViewYearKB(obj.date, $event, obj.index)\"\n (mousedown)=\"onActiveViewYear($event, obj.date, obj.index)\"\n class=\"igx-calendar-picker__date\">\n {{ formattedMonth(obj.date) }}\n </span>\n</ng-template>\n\n<!-- Year -->\n<ng-template #defaultYear let-obj>\n <span *ngIf=\"activeView === 'year'\" class=\"igx-calendar__aria-off-screen\" aria-live=\"polite\">{{ formattedYear(obj.date) }}</span>\n <span\n #yearsBtn\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"(obj.date | date: 'yyyy') + ', ' + resourceStrings.igx_calendar_select_year\"\n (keydown)=\"onActiveViewDecadeKB(obj.date, $event, obj.index)\"\n (mousedown)=\"onActiveViewDecade($event, obj.date, obj.index)\"\n class=\"igx-calendar-picker__date\">\n {{ formattedYear(obj.date) }}\n </span>\n</ng-template>\n\n<!-- Month Year -->\n<ng-template #defaultMonthYear let-obj let-result>\n <span *ngIf=\"monthsViewNumber < 2 || obj.index < 1\" class=\"igx-calendar__aria-off-screen\" aria-live=\"polite\">\n {{ monthsViewNumber > 1 ?\n (resourceStrings.igx_calendar_first_picker_of.replace('{0}', monthsViewNumber.toString()) + ' ' +\n (obj.date | date: 'LLLL yyyy')) :\n resourceStrings.igx_calendar_selected_month_is + (obj.date | date: 'LLLL yyyy')}}\n </span>\n <ng-container *ngTemplateOutlet=\"defaultMonth; context: {$implicit: obj}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"defaultYear; context: {$implicit: obj}\"></ng-container>\n</ng-template>\n\n<!-- Decade -->\n<ng-template #defaultDecade>\n <span>{{ getDecadeRange().start }} - {{ getDecadeRange().end }}</span>\n</ng-template>\n\n<!-- Previous arrow icon -->\n<ng-template #prevArrow let-obj>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"arrow_prev\"></igx-icon>\n</ng-template>\n\n<!-- Next arrow icon -->\n<ng-template #nextArrow let-obj>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"arrow_next\"></igx-icon>\n</ng-template>\n\n<!-- Previous picker button -->\n<ng-template #prevPageButton let-obj>\n <div\n #prevPageBtn\n tabindex=\"0\"\n class=\"igx-calendar-picker__prev\"\n role=\"button\"\n [attr.aria-label]=\"prevNavLabel((getPrevMonth(viewDate) | date: 'LLLL'))\"\n data-action=\"prev\"\n igxCalendarScrollPage\n [startScroll]=\"startPrevPageScroll\"\n [stopScroll]=\"stopPageScroll\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <ng-container *ngTemplateOutlet=\"prevArrow\"></ng-container>\n </div>\n</ng-template>\n\n<!-- Next picker button -->\n<ng-template #nextPageButton let-obj>\n <div\n #nextPageBtn\n tabindex=\"0\"\n class=\"igx-calendar-picker__next\"\n role=\"button\"\n [attr.aria-label]=\"nextNavLabel((getNextMonth(viewDate, monthsViewNumber) | date: 'LLLL'))\"\n data-action=\"next\"\n igxCalendarScrollPage\n [startScroll]=\"startNextPageScroll\"\n [stopScroll]=\"stopPageScroll\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <ng-container *ngTemplateOutlet=\"nextArrow\"></ng-container>\n </div>\n</ng-template>\n\n<!-- PICKER IN DAYS -->\n<ng-template #calendarDaysPicker let-i>\n <section class=\"igx-calendar-picker\" [style.--calendar-row-start]=\"1 + (2 * i)\">\n <div class=\"igx-calendar-picker__dates\" [attr.data-month]=\"i | IgxGetViewDate:viewDate:false\">\n <ng-container\n *ngTemplateOutlet=\"subheaderTemplate ? subheaderTemplate : defaultMonthYear; context: getContext(i)\">\n </ng-container>\n </div>\n <div\n class=\"igx-calendar-picker__nav\"\n *ngIf=\"this.orientation === 'horizontal' ? i === monthsViewNumber - 1 : i === 0\"\n >\n <ng-container *ngTemplateOutlet=\"prevPageButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"nextPageButton\"></ng-container>\n </div>\n </section>\n</ng-template>\n\n<!-- PICKER IN MONTHS -->\n<ng-template #calendarYearPicker>\n <section class=\"igx-calendar-picker\">\n <div class=\"igx-calendar-picker__dates\">\n <ng-container\n *ngTemplateOutlet=\"subheaderTemplate ? subheaderTemplate : defaultYear; context: getContext(0)\">\n </ng-container>\n </div>\n <div class=\"igx-calendar-picker__nav\">\n <ng-container *ngTemplateOutlet=\"prevPageButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"nextPageButton\"></ng-container>\n </div>\n </section>\n</ng-template>\n\n<!-- PICKER IN YEARS -->\n<ng-template #calendarDecadePicker>\n <section class=\"igx-calendar-picker\">\n <div class=\"igx-calendar-picker__dates\" aria-live=\"polite\">\n <ng-container\n *ngTemplateOutlet=\"subheaderTemplate ? subheaderTemplate : defaultDecade;\">\n </ng-container>\n </div>\n <div class=\"igx-calendar-picker__nav\">\n <ng-container *ngTemplateOutlet=\"prevPageButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"nextPageButton\"></ng-container>\n </div>\n </section>\n</ng-template>\n\n\n<header\n aria-labelledby=\"igx-aria-calendar-title-month igx-aria-calendar-title-year\"\n class=\"igx-calendar__header\"\n *ngIf=\"selection === 'single' && hasHeader || selection === 'range' && hasHeader\">\n <h5 id=\"igx-aria-calendar-title-year\" class=\"igx-calendar__header-year\">\n <ng-container *ngTemplateOutlet=\"headerTitleTemplate ?? defaultHeaderTitle; context: headerContext\"></ng-container>\n </h5>\n <h2 id=\"igx-aria-calendar-title-month\" class=\"igx-calendar__header-date\">\n <ng-container *ngTemplateOutlet=\"headerTemplate ? headerTemplate : defaultHeaderDate; context: headerContext\">\n </ng-container>\n </h2>\n</header>\n\n\n<div\n #wrapper\n [style.--calendar-months]=\"monthsViewNumber\"\n [tabIndex]=\"0\"\n class=\"igx-calendar__wrapper\"\n [class.igx-calendar__wrapper--vertical]=\"orientation === 'vertical'\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [attr.aria-multiselectable]=\"selection !== 'single'\"\n aria-labelledby=\"calendar-desc\"\n role=\"grid\"\n >\n <caption id=\"calendar-desc\" tabindex=\"-1\" class=\"igx-calendar__aria-off-screen\">\n <ng-container *ngIf=\"selection === 'multi'\">\n {{ monthsViewNumber && monthsViewNumber > 1 ?\n resourceStrings.igx_calendar_multi_selection.replace('{0}', monthsViewNumber.toString()) :\n resourceStrings.igx_calendar_singular_multi_selection}}\n </ng-container>\n <ng-container *ngIf=\"selection === 'range'\">\n {{ monthsViewNumber && monthsViewNumber > 1 ?\n resourceStrings.igx_calendar_range_selection.replace('{0}', monthsViewNumber.toString()) :\n resourceStrings.igx_calendar_singular_range_selection}}\n </ng-container>\n <ng-container *ngIf=\"selection === 'single'\">\n {{ monthsViewNumber && monthsViewNumber > 1 ?\n resourceStrings.igx_calendar_single_selection.replace('{0}', monthsViewNumber.toString()) :\n resourceStrings.igx_calendar_singular_single_selection}}\n </ng-container>\n </caption>\n <section\n class=\"igx-calendar__pickers\"\n [class.igx-calendar__pickers--days]=\"isDefaultView\"\n [class.igx-calendar__pickers--vertical]=\"orientation === 'vertical'\"\n >\n <ng-container *ngIf=\"isDefaultView\">\n <ng-container *ngFor=\"let view of monthsViewNumber | IgxMonthViewSlots; index as i\">\n <ng-container *ngTemplateOutlet=\"calendarDaysPicker; context: {$implicit: i}\"></ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isYearView\">\n <ng-container *ngTemplateOutlet=\"calendarYearPicker\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isDecadeView\">\n <ng-container *ngTemplateOutlet=\"calendarDecadePicker\"></ng-container>\n </ng-container>\n </section>\n\n <section class=\"igx-calendar__body\" [class.igx-calendar__body--vertical]=\"orientation === 'vertical'\" role=\"presentation\">\n <ng-container *ngIf=\"isDefaultView\">\n <ng-container *ngFor=\"let view of monthsViewNumber | IgxMonthViewSlots; index as i\">\n <igx-days-view\n #days\n role=\"rowgroup\"\n [tabIndex]=\"-1\"\n [selection]=\"selection\"\n [locale]=\"locale\"\n [value]=\"value\"\n [(activeDate)]=\"activeDate\"\n [(previewRangeDate)]=\"previewRangeDate\"\n [viewDate]=\"i | IgxGetViewDate: viewDate\"\n [weekStart]=\"weekStart\"\n [formatOptions]=\"formatOptions\"\n [formatViews]=\"formatViews\"\n [disabledDates]=\"disabledDates\"\n [specialDates]=\"specialDates\"\n [style.--calendar-row-start]=\"(i + 1) * 2\"\n [hideLeadingDays]=\"hideOutsideDays || i !== 0\"\n [hideTrailingDays]=\"hideOutsideDays || i !== monthsViewNumber - 1\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [showActiveDay]=\"showActiveDay\"\n [standalone]=\"false\"\n (swiperight)=\"previousPage()\"\n (swipeleft)=\"nextPage()\"\n (dateSelected)=\"handleDateSelection($event)\"\n (mousedown)=\"$event.preventDefault()\">\n </igx-days-view>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isYearView\">\n <igx-months-view\n #months\n role=\"rowgroup\"\n [tabIndex]=\"-1\"\n [date]=\"viewDate\"\n [locale]=\"locale\"\n [formatView]=\"formatViews.month\"\n [monthFormat]=\"formatOptions.month\"\n [showActive]=\"showActiveDay\"\n [standalone]=\"false\"\n (swiperight)=\"previousPage()\"\n (swipeleft)=\"nextPage()\"\n (pageChanged)=\"updateYear($event)\"\n (activeDateChanged)=\"updateActiveDescendant($event)\"\n (selected)=\"changeMonth($event)\"\n (mousedown)=\"$event.preventDefault()\">\n </igx-months-view>\n </ng-container>\n\n <ng-container *ngIf=\"isDecadeView\">\n <igx-years-view\n #decade\n role=\"rowgroup\"\n [tabIndex]=\"-1\"\n [date]=\"viewDate\"\n [locale]=\"locale\"\n [formatView]=\"formatViews.year\"\n [yearFormat]=\"formatOptions.year\"\n [showActive]=\"showActiveDay\"\n [standalone]=\"false\"\n (swiperight)=\"previousPage()\"\n (swipeleft)=\"nextPage()\"\n (pageChanged)=\"updateYear($event)\"\n (activeDateChanged)=\"updateActiveDescendant($event)\"\n (selected)=\"changeYear($event)\"\n (mousedown)=\"$event.preventDefault()\">\n </igx-years-view>\n </ng-container>\n </section>\n</div>\n" }]
33251
+ ], selector: 'igx-calendar', imports: [NgIf, NgTemplateOutlet, IgxCalendarScrollPageDirective, IgxIconComponent, NgFor, IgxDaysViewComponent, IgxMonthsViewComponent, IgxYearsViewComponent, DatePipe, IgxMonthViewSlotsCalendar, IgxGetViewDateCalendar], template: "<ng-template let-result #defaultHeaderTitle>\n <ng-container *ngIf=\"selection === 'single'\">\n <span>{{ resourceStrings.igx_calendar_select_date }}</span>\n </ng-container>\n <ng-container *ngIf=\"selection === 'range'\">\n <span>{{ resourceStrings.igx_calendar_range_placeholder }}</span>\n </ng-container>\n</ng-template>\n\n<ng-template let-result #defaultHeaderDate>\n <ng-container *ngIf=\"selection === 'single'\">\n <span>{{ getFormattedDate().weekday }},&nbsp;</span>\n <span>{{ getFormattedDate().monthday }}</span>\n </ng-container>\n <ng-container *ngIf=\"selection === 'range'\">\n <span>{{ selectedDates.length === 0 ? 'Start' : getFormattedRange().start}}</span>\n <span>&nbsp;-&nbsp;</span>\n <span>{{ selectedDates.length <= 1 ? 'End' : getFormattedRange().end}}</span>\n </ng-container>\n</ng-template>\n\n<!-- Month -->\n<ng-template #defaultMonth let-obj>\n <span\n #monthsBtn\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"(obj.date | date: 'LLLL') + ', ' + resourceStrings.igx_calendar_select_month\"\n (keydown)=\"onActiveViewYearKB(obj.date, $event, obj.index)\"\n (mousedown)=\"onActiveViewYear($event, obj.date, obj.index)\"\n class=\"igx-calendar-picker__date\">\n {{ formattedMonth(obj.date) }}\n </span>\n</ng-template>\n\n<!-- Year -->\n<ng-template #defaultYear let-obj>\n <span *ngIf=\"activeView === 'year'\" class=\"igx-calendar__aria-off-screen\" aria-live=\"polite\">{{ formattedYear(obj.date) }}</span>\n <span\n #yearsBtn\n tabindex=\"0\"\n role=\"button\"\n [attr.aria-label]=\"(obj.date | date: 'yyyy') + ', ' + resourceStrings.igx_calendar_select_year\"\n (keydown)=\"onActiveViewDecadeKB(obj.date, $event, obj.index)\"\n (mousedown)=\"onActiveViewDecade($event, obj.date, obj.index)\"\n class=\"igx-calendar-picker__date\">\n {{ formattedYear(obj.date) }}\n </span>\n</ng-template>\n\n<!-- Month Year -->\n<ng-template #defaultMonthYear let-obj let-result>\n <span *ngIf=\"monthsViewNumber < 2 || obj.index < 1\" class=\"igx-calendar__aria-off-screen\" aria-live=\"polite\">\n {{ monthsViewNumber > 1 ?\n (resourceStrings.igx_calendar_first_picker_of.replace('{0}', monthsViewNumber.toString()) + ' ' +\n (obj.date | date: 'LLLL yyyy')) :\n resourceStrings.igx_calendar_selected_month_is + (obj.date | date: 'LLLL yyyy')}}\n </span>\n <ng-container *ngTemplateOutlet=\"defaultMonth; context: {$implicit: obj}\"></ng-container>\n <ng-container *ngTemplateOutlet=\"defaultYear; context: {$implicit: obj}\"></ng-container>\n</ng-template>\n\n<!-- Decade -->\n<ng-template #defaultDecade>\n <span>{{ getDecadeRange().start }} - {{ getDecadeRange().end }}</span>\n</ng-template>\n\n<!-- Previous arrow icon -->\n<ng-template #prevArrow let-obj>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"arrow_prev\"></igx-icon>\n</ng-template>\n\n<!-- Next arrow icon -->\n<ng-template #nextArrow let-obj>\n <igx-icon aria-hidden=\"true\" family=\"default\" name=\"arrow_next\"></igx-icon>\n</ng-template>\n\n<!-- Previous picker button -->\n<ng-template #prevPageButton let-obj>\n <div\n #prevPageBtn\n tabindex=\"0\"\n class=\"igx-calendar-picker__prev\"\n role=\"button\"\n [attr.aria-label]=\"prevNavLabel((getPrevMonth(viewDate) | date: 'LLLL'))\"\n data-action=\"prev\"\n igxCalendarScrollPage\n [startScroll]=\"startPrevPageScroll\"\n [stopScroll]=\"stopPageScroll\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <ng-container *ngTemplateOutlet=\"prevArrow\"></ng-container>\n </div>\n</ng-template>\n\n<!-- Next picker button -->\n<ng-template #nextPageButton let-obj>\n <div\n #nextPageBtn\n tabindex=\"0\"\n class=\"igx-calendar-picker__next\"\n role=\"button\"\n [attr.aria-label]=\"nextNavLabel((getNextMonth(viewDate, monthsViewNumber) | date: 'LLLL'))\"\n data-action=\"next\"\n igxCalendarScrollPage\n [startScroll]=\"startNextPageScroll\"\n [stopScroll]=\"stopPageScroll\"\n (keydown)=\"$event.stopPropagation()\"\n >\n <ng-container *ngTemplateOutlet=\"nextArrow\"></ng-container>\n </div>\n</ng-template>\n\n<!-- PICKER IN DAYS -->\n<ng-template #calendarDaysPicker let-i>\n <section class=\"igx-calendar-picker\" [style.--calendar-row-start]=\"1 + (2 * i)\">\n <div class=\"igx-calendar-picker__dates\" [attr.data-month]=\"i | IgxGetViewDate:viewDate:false\">\n <ng-container\n *ngTemplateOutlet=\"subheaderTemplate ? subheaderTemplate : defaultMonthYear; context: getContext(i)\">\n </ng-container>\n </div>\n <div\n class=\"igx-calendar-picker__nav\"\n *ngIf=\"this.orientation === 'horizontal' ? i === monthsViewNumber - 1 : i === 0\"\n >\n <ng-container *ngTemplateOutlet=\"prevPageButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"nextPageButton\"></ng-container>\n </div>\n </section>\n</ng-template>\n\n<!-- PICKER IN MONTHS -->\n<ng-template #calendarYearPicker>\n <section class=\"igx-calendar-picker\">\n <div class=\"igx-calendar-picker__dates\">\n <ng-container\n *ngTemplateOutlet=\"subheaderTemplate ? subheaderTemplate : defaultYear; context: getContext(0)\">\n </ng-container>\n </div>\n <div class=\"igx-calendar-picker__nav\">\n <ng-container *ngTemplateOutlet=\"prevPageButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"nextPageButton\"></ng-container>\n </div>\n </section>\n</ng-template>\n\n<!-- PICKER IN YEARS -->\n<ng-template #calendarDecadePicker>\n <section class=\"igx-calendar-picker\">\n <div class=\"igx-calendar-picker__dates\" aria-live=\"polite\">\n <ng-container\n *ngTemplateOutlet=\"subheaderTemplate ? subheaderTemplate : defaultDecade;\">\n </ng-container>\n </div>\n <div class=\"igx-calendar-picker__nav\">\n <ng-container *ngTemplateOutlet=\"prevPageButton\"></ng-container>\n <ng-container *ngTemplateOutlet=\"nextPageButton\"></ng-container>\n </div>\n </section>\n</ng-template>\n\n\n<header\n aria-labelledby=\"igx-aria-calendar-title-month igx-aria-calendar-title-year\"\n class=\"igx-calendar__header\"\n *ngIf=\"selection === 'single' && hasHeader || selection === 'range' && hasHeader\">\n <h5 id=\"igx-aria-calendar-title-year\" class=\"igx-calendar__header-year\">\n <ng-container *ngTemplateOutlet=\"headerTitleTemplate ?? defaultHeaderTitle; context: headerContext\"></ng-container>\n </h5>\n <h2 id=\"igx-aria-calendar-title-month\" class=\"igx-calendar__header-date\">\n <ng-container *ngTemplateOutlet=\"headerTemplate ? headerTemplate : defaultHeaderDate; context: headerContext\">\n </ng-container>\n </h2>\n</header>\n\n\n<div\n #wrapper\n [style.--calendar-months]=\"monthsViewNumber\"\n [tabIndex]=\"0\"\n class=\"igx-calendar__wrapper\"\n [class.igx-calendar__wrapper--vertical]=\"orientation === 'vertical'\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [attr.aria-multiselectable]=\"selection !== 'single'\"\n aria-labelledby=\"calendar-desc\"\n role=\"grid\"\n >\n <caption id=\"calendar-desc\" tabindex=\"-1\" class=\"igx-calendar__aria-off-screen\">\n <ng-container *ngIf=\"selection === 'multi'\">\n {{ monthsViewNumber && monthsViewNumber > 1 ?\n resourceStrings.igx_calendar_multi_selection.replace('{0}', monthsViewNumber.toString()) :\n resourceStrings.igx_calendar_singular_multi_selection}}\n </ng-container>\n <ng-container *ngIf=\"selection === 'range'\">\n {{ monthsViewNumber && monthsViewNumber > 1 ?\n resourceStrings.igx_calendar_range_selection.replace('{0}', monthsViewNumber.toString()) :\n resourceStrings.igx_calendar_singular_range_selection}}\n </ng-container>\n <ng-container *ngIf=\"selection === 'single'\">\n {{ monthsViewNumber && monthsViewNumber > 1 ?\n resourceStrings.igx_calendar_single_selection.replace('{0}', monthsViewNumber.toString()) :\n resourceStrings.igx_calendar_singular_single_selection}}\n </ng-container>\n </caption>\n <section\n class=\"igx-calendar__pickers\"\n [class.igx-calendar__pickers--days]=\"isDefaultView\"\n [class.igx-calendar__pickers--vertical]=\"orientation === 'vertical'\"\n >\n <ng-container *ngIf=\"isDefaultView\">\n <ng-container *ngFor=\"let view of monthsViewNumber | IgxMonthViewSlots; index as i\">\n <ng-container *ngTemplateOutlet=\"calendarDaysPicker; context: {$implicit: i}\"></ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isYearView\">\n <ng-container *ngTemplateOutlet=\"calendarYearPicker\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isDecadeView\">\n <ng-container *ngTemplateOutlet=\"calendarDecadePicker\"></ng-container>\n </ng-container>\n </section>\n\n <section class=\"igx-calendar__body\" [class.igx-calendar__body--vertical]=\"orientation === 'vertical'\" role=\"presentation\">\n <ng-container *ngIf=\"isDefaultView\">\n <ng-container *ngFor=\"let view of monthsViewNumber | IgxMonthViewSlots; index as i\">\n <igx-days-view\n #days\n role=\"rowgroup\"\n [tabIndex]=\"-1\"\n [selection]=\"selection\"\n [locale]=\"locale\"\n [value]=\"value\"\n [(activeDate)]=\"activeDate\"\n [(previewRangeDate)]=\"previewRangeDate\"\n [viewDate]=\"i | IgxGetViewDate: viewDate\"\n [weekStart]=\"weekStart\"\n [formatOptions]=\"formatOptions\"\n [formatViews]=\"formatViews\"\n [disabledDates]=\"disabledDates\"\n [specialDates]=\"specialDates\"\n [style.--calendar-row-start]=\"(i + 1) * 2\"\n [hideLeadingDays]=\"hideOutsideDays || i !== 0\"\n [hideTrailingDays]=\"hideOutsideDays || i !== monthsViewNumber - 1\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [showActiveDay]=\"showActiveDay\"\n [standalone]=\"false\"\n (swiperight)=\"previousPage()\"\n (swipeleft)=\"nextPage()\"\n (dateSelected)=\"handleDateSelection($event)\"\n (mousedown)=\"$event.preventDefault()\">\n </igx-days-view>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"isYearView\">\n <igx-months-view\n #months\n role=\"rowgroup\"\n [tabIndex]=\"-1\"\n [date]=\"viewDate\"\n [locale]=\"locale\"\n [formatView]=\"formatViews.month\"\n [monthFormat]=\"formatOptions.month\"\n [showActive]=\"showActiveDay\"\n [standalone]=\"false\"\n (swiperight)=\"previousPage()\"\n (swipeleft)=\"nextPage()\"\n (pageChanged)=\"updateYear($event)\"\n (activeDateChanged)=\"updateActiveDescendant($event)\"\n (selected)=\"changeMonth($event)\"\n (mousedown)=\"$event.preventDefault()\">\n </igx-months-view>\n </ng-container>\n\n <ng-container *ngIf=\"isDecadeView\">\n <igx-years-view\n #decade\n role=\"rowgroup\"\n [tabIndex]=\"-1\"\n [date]=\"viewDate\"\n [locale]=\"locale\"\n [formatView]=\"formatViews.year\"\n [yearFormat]=\"formatOptions.year\"\n [showActive]=\"showActiveDay\"\n [standalone]=\"false\"\n (swiperight)=\"previousPage()\"\n (swipeleft)=\"nextPage()\"\n (pageChanged)=\"updateYear($event)\"\n (activeDateChanged)=\"updateActiveDescendant($event)\"\n (selected)=\"changeYear($event)\"\n (mousedown)=\"$event.preventDefault()\">\n </igx-years-view>\n </ng-container>\n </section>\n</div>\n" }]
33235
33252
  }], propDecorators: { wrapper: [{
33236
33253
  type: ViewChild,
33237
33254
  args: ["wrapper"]
@@ -33676,7 +33693,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
33676
33693
  },
33677
33694
  ], selector: "igx-month-picker", imports: [
33678
33695
  NgIf,
33679
- NgStyle,
33680
33696
  NgTemplateOutlet,
33681
33697
  DatePipe,
33682
33698
  IgxIconComponent,
@@ -34179,6 +34195,8 @@ var Direction;
34179
34195
  Direction[Direction["PREV"] = 2] = "PREV";
34180
34196
  })(Direction || (Direction = {}));
34181
34197
  /** @hidden */
34198
+ const IGX_CAROUSEL_COMPONENT = /*@__PURE__*/ new InjectionToken('IgxCarouselToken');
34199
+ /** @hidden */
34182
34200
  let IgxCarouselComponentBase = class IgxCarouselComponentBase {
34183
34201
  constructor(animationService, cdr) {
34184
34202
  this.animationService = animationService;
@@ -34457,15 +34475,15 @@ class IgxSlideComponent {
34457
34475
  this._destroy$.next(true);
34458
34476
  this._destroy$.complete();
34459
34477
  }
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 }); }
34478
+ 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
34479
  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
34480
  }
34463
34481
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxSlideComponent, decorators: [{
34464
34482
  type: Component,
34465
34483
  args: [{ selector: 'igx-slide', standalone: true, template: "<ng-content></ng-content>\n" }]
34466
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: IgxCarouselComponent, decorators: [{
34484
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: undefined, decorators: [{
34467
34485
  type: Inject,
34468
- args: [IgxCarouselComponent]
34486
+ args: [IGX_CAROUSEL_COMPONENT]
34469
34487
  }] }], propDecorators: { index: [{
34470
34488
  type: Input
34471
34489
  }], direction: [{
@@ -35610,7 +35628,8 @@ class IgxCarouselComponent extends IgxCarouselComponentBase {
35610
35628
  {
35611
35629
  provide: HAMMER_GESTURE_CONFIG,
35612
35630
  useClass: CarouselHammerConfig
35613
- }
35631
+ },
35632
+ { provide: IGX_CAROUSEL_COMPONENT, useExisting: IgxCarouselComponent }
35614
35633
  ], 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
35634
  }
35616
35635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxCarouselComponent, decorators: [{
@@ -35619,7 +35638,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
35619
35638
  {
35620
35639
  provide: HAMMER_GESTURE_CONFIG,
35621
35640
  useClass: CarouselHammerConfig
35622
- }
35641
+ },
35642
+ { provide: IGX_CAROUSEL_COMPONENT, useExisting: IgxCarouselComponent }
35623
35643
  ], 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
35644
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.IterableDiffers }, { type: undefined, decorators: [{
35625
35645
  type: Inject,
@@ -41329,6 +41349,7 @@ class IgxDialogComponent {
41329
41349
  const eventArgs = { dialog: this, event: null, cancel: false };
41330
41350
  this.opening.emit(eventArgs);
41331
41351
  if (!eventArgs.cancel) {
41352
+ overlaySettings = { ...{}, ...this._overlayDefaultSettings, ...overlaySettings };
41332
41353
  this.toggleRef.open(overlaySettings);
41333
41354
  this.isOpenChange.emit(true);
41334
41355
  if (!this.leftButtonLabel && !this.rightButtonLabel) {
@@ -44202,7 +44223,7 @@ class IgxColumnComponent {
44202
44223
  columnSizes[col.colStart - 1] = {
44203
44224
  ref: col,
44204
44225
  width: col.width === 'fit-content' ? col.autoSize :
44205
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseInt(col.calcWidth, 10) : null,
44226
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
44206
44227
  colSpan: col.gridColumnSpan,
44207
44228
  colEnd: col.colStart + col.gridColumnSpan,
44208
44229
  widthSetByUser: col.widthSetByUser
@@ -44231,7 +44252,7 @@ class IgxColumnComponent {
44231
44252
  columnSizes[col.colStart - 1] = {
44232
44253
  ref: col,
44233
44254
  width: col.width === 'fit-content' ? col.autoSize :
44234
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseInt(col.calcWidth, 10) : null,
44255
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
44235
44256
  colSpan: col.gridColumnSpan,
44236
44257
  colEnd: col.colStart + col.gridColumnSpan,
44237
44258
  widthSetByUser: col.widthSetByUser
@@ -44246,7 +44267,7 @@ class IgxColumnComponent {
44246
44267
  columnSizes[i] = {
44247
44268
  ref: col,
44248
44269
  width: col.width === 'fit-content' ? col.autoSize :
44249
- col.widthSetByUser || this.grid.columnWidthSetByUser ? parseInt(col.calcWidth, 10) : null,
44270
+ col.widthSetByUser || this.grid.columnWidthSetByUser ? parseFloat(col.calcWidth) : null,
44250
44271
  colSpan: col.gridColumnSpan,
44251
44272
  colEnd: col.colStart + col.gridColumnSpan,
44252
44273
  widthSetByUser: col.widthSetByUser
@@ -44306,7 +44327,7 @@ class IgxColumnComponent {
44306
44327
  result.push(size.width + 'px');
44307
44328
  }
44308
44329
  else {
44309
- result.push(parseInt(this.grid.getPossibleColumnWidth(), 10) + 'px');
44330
+ result.push(parseFloat(this.grid.getPossibleColumnWidth()) + 'px');
44310
44331
  }
44311
44332
  }
44312
44333
  return result;
@@ -44715,7 +44736,7 @@ class IgxColumnComponent {
44715
44736
  this._calcWidth = this.grid.minColumnWidth;
44716
44737
  }
44717
44738
  else if (isPercentageWidth) {
44718
- this._calcWidth = Math.floor(parseFloat(colWidth) / 100 * this.grid.calcWidth);
44739
+ this._calcWidth = parseFloat(colWidth) / 100 * this.grid.calcWidth;
44719
44740
  }
44720
44741
  else if (!colWidth || isAutoWidth && !this.autoSize) {
44721
44742
  // no width
@@ -44724,7 +44745,7 @@ class IgxColumnComponent {
44724
44745
  else {
44725
44746
  this._calcWidth = this.width;
44726
44747
  }
44727
- this.calcPixelWidth = parseInt(this._calcWidth, 10);
44748
+ this.calcPixelWidth = parseFloat(this._calcWidth);
44728
44749
  }
44729
44750
  /**
44730
44751
  * @hidden
@@ -45423,7 +45444,7 @@ class IgxColumnGroupComponent extends IgxColumnComponent {
45423
45444
  if (val.hidden) {
45424
45445
  return acc;
45425
45446
  }
45426
- return acc + parseInt(val.calcWidth, 10);
45447
+ return acc + parseFloat(val.calcWidth);
45427
45448
  }, 0)}`;
45428
45449
  return width + 'px';
45429
45450
  }
@@ -45529,7 +45550,7 @@ class IgxColumnLayoutComponent extends IgxColumnGroupComponent {
45529
45550
  * @memberof IgxColumnGroupComponent
45530
45551
  */
45531
45552
  get width() {
45532
- const width = this.getFilledChildColumnSizes(this.children).reduce((acc, val) => acc + parseInt(val, 10), 0);
45553
+ const width = this.getFilledChildColumnSizes(this.children).reduce((acc, val) => acc + parseFloat(val), 0);
45533
45554
  return width;
45534
45555
  }
45535
45556
  /* blazorSuppress */
@@ -45544,7 +45565,7 @@ class IgxColumnLayoutComponent extends IgxColumnGroupComponent {
45544
45565
  let borderWidth = 0;
45545
45566
  if (this.headerGroup && this.headerGroup.hasLastPinnedChildColumn) {
45546
45567
  const headerStyles = this.grid.document.defaultView.getComputedStyle(this.headerGroup.nativeElement.children[0]);
45547
- borderWidth = parseInt(headerStyles.borderRightWidth, 10);
45568
+ borderWidth = parseFloat(headerStyles.borderRightWidth);
45548
45569
  }
45549
45570
  return super.getCalcWidth() + borderWidth;
45550
45571
  }
@@ -50009,10 +50030,11 @@ function generateExpressionsListRecursive(expressions, operator, expressionsUIs)
50009
50030
  * @hidden
50010
50031
  */
50011
50032
  class IgxExcelStyleCustomDialogComponent {
50012
- constructor(overlayService, cdr, platform) {
50033
+ constructor(overlayService, cdr, platform, esf) {
50013
50034
  this.overlayService = overlayService;
50014
50035
  this.cdr = cdr;
50015
50036
  this.platform = platform;
50037
+ this.esf = esf;
50016
50038
  this.expressionsList = new Array();
50017
50039
  this._customDialogPositionSettings = {
50018
50040
  verticalDirection: VerticalAlignment.Middle,
@@ -50072,6 +50094,10 @@ class IgxExcelStyleCustomDialogComponent {
50072
50094
  this.toggle.close();
50073
50095
  }
50074
50096
  }
50097
+ cancelDialog() {
50098
+ this.esf.cancel();
50099
+ this.closeDialog();
50100
+ }
50075
50101
  onApplyButtonClick() {
50076
50102
  this.expressionsList = this.expressionsList.filter(element => element.expression.condition &&
50077
50103
  (element.expression.searchVal || element.expression.searchVal === 0 || element.expression.condition.isUnary));
@@ -50182,13 +50208,13 @@ class IgxExcelStyleCustomDialogComponent {
50182
50208
  this.expressionsContainer.nativeElement.scrollTop = this.expressionsContainer.nativeElement.scrollHeight;
50183
50209
  });
50184
50210
  }
50185
- 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 }); }
50186
- 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"] }] }); }
50211
+ 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 }); }
50212
+ 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"] }] }); }
50187
50213
  }
50188
50214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxExcelStyleCustomDialogComponent, decorators: [{
50189
50215
  type: Component,
50190
- 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" }]
50191
- }], ctorParameters: () => [{ type: IgxOverlayService }, { type: i0.ChangeDetectorRef }, { type: PlatformUtil }], propDecorators: { expressionsList: [{
50216
+ 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" }]
50217
+ }], ctorParameters: () => [{ type: IgxOverlayService }, { type: i0.ChangeDetectorRef }, { type: PlatformUtil }, { type: BaseFilteringComponent }], propDecorators: { expressionsList: [{
50192
50218
  type: Input
50193
50219
  }], column: [{
50194
50220
  type: Input
@@ -50395,7 +50421,7 @@ class IgxExcelStyleHeaderComponent {
50395
50421
  }
50396
50422
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxExcelStyleHeaderComponent, decorators: [{
50397
50423
  type: Component,
50398
- args: [{ selector: 'igx-excel-style-header', imports: [NgIf, IgxButtonDirective, NgClass, IgxIconComponent, IgxIconButtonDirective], template: "<header *ngIf=\"esf.column\"\n class=\"igx-excel-filter__menu-header\">\n <h4>{{ esf.column.header || esf.column.field }}</h4>\n <div class=\"igx-excel-filter__menu-header-actions\">\n <button *ngIf=\"showSelecting\"\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onSelect()\"\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n [attr.aria-label]=\"esf.column.selected ? esf.grid.resourceStrings.igx_grid_excel_deselect : esf.grid.resourceStrings.igx_grid_excel_select\"\n >\n <igx-icon family=\"default\" name=\"selected\"></igx-icon>\n </button>\n <button *ngIf=\"showPinning\"\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onPin()\"\n [attr.aria-label]=\"esf.column.pinned ? esf.grid.resourceStrings.igx_grid_excel_unpin : esf.grid.resourceStrings.igx_grid_excel_pin\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.pinned ? 'unpin' : 'pin'\"></igx-icon>\n </button>\n <button *ngIf=\"showHiding\"\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onHideToggle()\"\n [attr.aria-label]=\"esf.column.hidden ? esf.grid.resourceStrings.igx_grid_excel_show : esf.grid.resourceStrings.igx_grid_excel_hide\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.hidden ? 'show' : 'hide'\"></igx-icon>\n </button>\n </div>\n</header>\n" }]
50424
+ args: [{ selector: 'igx-excel-style-header', imports: [NgIf, NgClass, IgxIconComponent, IgxIconButtonDirective], template: "<header *ngIf=\"esf.column\"\n class=\"igx-excel-filter__menu-header\">\n <h4>{{ esf.column.header || esf.column.field }}</h4>\n <div class=\"igx-excel-filter__menu-header-actions\">\n <button *ngIf=\"showSelecting\"\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onSelect()\"\n [ngClass]=\"esf.column.selected ? 'igx-excel-filter__actions-selected' : 'igx-excel-filter__actions-select'\"\n [attr.aria-label]=\"esf.column.selected ? esf.grid.resourceStrings.igx_grid_excel_deselect : esf.grid.resourceStrings.igx_grid_excel_select\"\n >\n <igx-icon family=\"default\" name=\"selected\"></igx-icon>\n </button>\n <button *ngIf=\"showPinning\"\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onPin()\"\n [attr.aria-label]=\"esf.column.pinned ? esf.grid.resourceStrings.igx_grid_excel_unpin : esf.grid.resourceStrings.igx_grid_excel_pin\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.pinned ? 'unpin' : 'pin'\"></igx-icon>\n </button>\n <button *ngIf=\"showHiding\"\n type=\"button\"\n igxIconButton=\"flat\"\n (click)=\"esf.onHideToggle()\"\n [attr.aria-label]=\"esf.column.hidden ? esf.grid.resourceStrings.igx_grid_excel_show : esf.grid.resourceStrings.igx_grid_excel_hide\"\n >\n <igx-icon family=\"default\" [name]=\"esf.column.hidden ? 'show' : 'hide'\"></igx-icon>\n </button>\n </div>\n</header>\n" }]
50399
50425
  }], ctorParameters: () => [{ type: BaseFilteringComponent }], propDecorators: { showPinning: [{
50400
50426
  type: Input,
50401
50427
  args: [{ transform: booleanAttribute }]
@@ -55898,7 +55924,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImpor
55898
55924
  class IgxHeaderGroupWidthPipe {
55899
55925
  transform(width, minWidth, hasLayout) {
55900
55926
  const isFitContent = width === 'fit-content';
55901
- return hasLayout ? '' : isFitContent ? width : `${Math.max(parseInt(width), minWidth)}px`;
55927
+ return hasLayout ? '' : isFitContent ? width : `${Math.max(parseFloat(width), minWidth)}px`;
55902
55928
  }
55903
55929
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxHeaderGroupWidthPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
55904
55930
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.0", ngImport: i0, type: IgxHeaderGroupWidthPipe, isStandalone: true, name: "igxHeaderGroupWidth" }); }
@@ -65339,7 +65365,7 @@ class IgxGridBaseDirective {
65339
65365
  let totalWidth = 0;
65340
65366
  let i = 0;
65341
65367
  for (i; i < cols.length; i++) {
65342
- totalWidth += parseInt(cols[i].calcWidth, 10) || 0;
65368
+ totalWidth += parseFloat(cols[i].calcWidth) || 0;
65343
65369
  }
65344
65370
  this._totalWidth = totalWidth;
65345
65371
  return totalWidth;
@@ -66104,7 +66130,7 @@ class IgxGridBaseDirective {
66104
66130
  }
66105
66131
  else {
66106
66132
  computedWidth = this.calcWidth ||
66107
- parseInt(this.document.defaultView.getComputedStyle(this.nativeElement).getPropertyValue('width'), 10);
66133
+ parseFloat(this.document.defaultView.getComputedStyle(this.nativeElement).getPropertyValue('width'));
66108
66134
  }
66109
66135
  const visibleChildColumns = this.visibleColumns.filter(c => !c.columnGroup);
66110
66136
  // Column layouts related
@@ -66123,7 +66149,7 @@ class IgxGridBaseDirective {
66123
66149
  const sumExistingWidths = columnsWithSetWidths
66124
66150
  .reduce((prev, curr) => {
66125
66151
  const colWidth = curr.width;
66126
- let widthValue = parseInt(colWidth, 10);
66152
+ let widthValue = parseFloat(colWidth);
66127
66153
  if (isNaN(widthValue)) {
66128
66154
  widthValue = MINIMUM_COLUMN_WIDTH$1;
66129
66155
  }
@@ -66137,9 +66163,9 @@ class IgxGridBaseDirective {
66137
66163
  return '0px';
66138
66164
  }
66139
66165
  computedWidth -= this.featureColumnsWidth();
66140
- const columnWidth = Math.floor(!Number.isFinite(sumExistingWidths) ?
66166
+ const columnWidth = !Number.isFinite(sumExistingWidths) ?
66141
66167
  Math.max(computedWidth / columnsToSize, this.minColumnWidth) :
66142
- Math.max((computedWidth - sumExistingWidths) / columnsToSize, this.minColumnWidth));
66168
+ Math.max((computedWidth - sumExistingWidths) / columnsToSize, this.minColumnWidth);
66143
66169
  return columnWidth + 'px';
66144
66170
  }
66145
66171
  /**
@@ -67131,8 +67157,8 @@ class IgxGridBaseDirective {
67131
67157
  this._columnWidth = this.width !== null ? this.getPossibleColumnWidth() : this.minColumnWidth + 'px';
67132
67158
  }
67133
67159
  this._columns.forEach((column) => {
67134
- if (this.hasColumnLayouts && parseInt(this._columnWidth, 10)) {
67135
- const columnWidthCombined = parseInt(this._columnWidth, 10) * (column.colEnd ? column.colEnd - column.colStart : 1);
67160
+ if (this.hasColumnLayouts && parseFloat(this._columnWidth)) {
67161
+ const columnWidthCombined = parseFloat(this._columnWidth) * (column.colEnd ? column.colEnd - column.colStart : 1);
67136
67162
  column.defaultWidth = columnWidthCombined + 'px';
67137
67163
  }
67138
67164
  else {
@@ -73269,7 +73295,7 @@ class IgxPivotRowHeaderGroupComponent extends IgxGridHeaderGroupComponent {
73269
73295
  }
73270
73296
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxPivotRowHeaderGroupComponent, decorators: [{
73271
73297
  type: Component,
73272
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-row-header-group', imports: [IgxIconComponent, NgIf, IgxPivotRowDimensionHeaderComponent, NgClass, NgStyle, IgxColumnMovingDragDirective, IgxColumnMovingDropDirective, IgxGridFilteringCellComponent, IgxPivotResizeHandleDirective, IgxHeaderGroupStylePipe], template: "<ng-template #defaultColumn>\n <span class=\"igx-grid-th__group-title\" [title]=\"title\">{{column.header}}</span>\n</ng-template>\n\n<ng-template #defaultCollapseIndicator>\n <igx-icon\n family=\"default\"\n [name]=\"column.expanded ? 'tree_collapse' : 'tree_expand'\">\n </igx-icon>\n</ng-template>\n\n<ng-container *ngIf=\"!column.columnGroup\">\n <span *ngIf=\"grid.hasMovableColumns\" class=\"igx-grid-th__drop-indicator-left\"></span>\n <igx-pivot-row-dimension-header\n role=\"columnheader\"\n class=\"igx-grid-th--fw\"\n [id]=\"grid.id + '_' + column.field\"\n [ngClass]=\"column.headerClasses\"\n [ngStyle]=\"column.headerStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [igxColumnMovingDrag]=\"column\"\n [ghostHost]=\"grid.outlet.nativeElement\"\n [attr.droppable]=\"true\"\n (pointerdown)=\"pointerdown($event)\"\n [igxColumnMovingDrop]=\"column\"\n [column]=\"column\"\n (keydown)=\"grid.navigation.headerNavigation($event)\"\n >\n </igx-pivot-row-dimension-header>\n <span *ngIf=\"!column.columnGroup && column.resizable\" class=\"igx-grid-th__resize-handle\"\n [igxPivotResizeHandle]=\"column\"\n [igxPivotResizeHandleHeader]=\"this\"\n [attr.draggable]=\"false\"\n [style.cursor]=\"colResizingService.resizeCursor\">\n </span>\n <span *ngIf=\"grid.hasMovableColumns\" class=\"igx-grid-th__drop-indicator-right\"></span>\n</ng-container>\n" }]
73298
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-row-header-group', imports: [IgxIconComponent, NgIf, IgxPivotRowDimensionHeaderComponent, NgClass, NgStyle, IgxColumnMovingDragDirective, IgxColumnMovingDropDirective, IgxPivotResizeHandleDirective, IgxHeaderGroupStylePipe], template: "<ng-template #defaultColumn>\n <span class=\"igx-grid-th__group-title\" [title]=\"title\">{{column.header}}</span>\n</ng-template>\n\n<ng-template #defaultCollapseIndicator>\n <igx-icon\n family=\"default\"\n [name]=\"column.expanded ? 'tree_collapse' : 'tree_expand'\">\n </igx-icon>\n</ng-template>\n\n<ng-container *ngIf=\"!column.columnGroup\">\n <span *ngIf=\"grid.hasMovableColumns\" class=\"igx-grid-th__drop-indicator-left\"></span>\n <igx-pivot-row-dimension-header\n role=\"columnheader\"\n class=\"igx-grid-th--fw\"\n [id]=\"grid.id + '_' + column.field\"\n [ngClass]=\"column.headerClasses\"\n [ngStyle]=\"column.headerStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [igxColumnMovingDrag]=\"column\"\n [ghostHost]=\"grid.outlet.nativeElement\"\n [attr.droppable]=\"true\"\n (pointerdown)=\"pointerdown($event)\"\n [igxColumnMovingDrop]=\"column\"\n [column]=\"column\"\n (keydown)=\"grid.navigation.headerNavigation($event)\"\n >\n </igx-pivot-row-dimension-header>\n <span *ngIf=\"!column.columnGroup && column.resizable\" class=\"igx-grid-th__resize-handle\"\n [igxPivotResizeHandle]=\"column\"\n [igxPivotResizeHandleHeader]=\"this\"\n [attr.draggable]=\"false\"\n [style.cursor]=\"colResizingService.resizeCursor\">\n </span>\n <span *ngIf=\"grid.hasMovableColumns\" class=\"igx-grid-th__drop-indicator-right\"></span>\n</ng-container>\n" }]
73273
73299
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
73274
73300
  type: Inject,
73275
73301
  args: [IGX_GRID_BASE]
@@ -74459,7 +74485,7 @@ class IgxPivotRowDimensionHeaderGroupComponent extends IgxGridHeaderGroupCompone
74459
74485
  }
74460
74486
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxPivotRowDimensionHeaderGroupComponent, decorators: [{
74461
74487
  type: Component,
74462
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-row-dimension-header-group', imports: [IgxIconComponent, NgIf, IgxPivotRowDimensionHeaderComponent, NgClass, NgStyle, IgxColumnMovingDragDirective, IgxColumnMovingDropDirective, IgxGridFilteringCellComponent, IgxPivotResizeHandleDirective, IgxHeaderGroupStylePipe], template: "<ng-template #defaultColumn>\n <span class=\"igx-grid-th__group-title\" [title]=\"title\">{{column.header}}</span>\n</ng-template>\n\n<ng-template #defaultCollapseIndicator>\n <igx-icon\n family=\"default\"\n [name]=\"column.expanded ? 'tree_collapse' : 'tree_expand'\">\n </igx-icon>\n</ng-template>\n\n<ng-container *ngIf=\"!column.columnGroup\">\n <span *ngIf=\"grid.hasMovableColumns\" class=\"igx-grid-th__drop-indicator-left\"></span>\n <igx-pivot-row-dimension-header\n role=\"columnheader\"\n class=\"igx-grid-th--fw\"\n [id]=\"grid.id + '_' + column.field\"\n [ngClass]=\"column.headerClasses\"\n [ngStyle]=\"column.headerStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [igxColumnMovingDrag]=\"column\"\n [ghostHost]=\"grid.outlet.nativeElement\"\n [attr.droppable]=\"true\"\n (pointerdown)=\"pointerdown($event)\"\n [igxColumnMovingDrop]=\"column\"\n [column]=\"column\"\n (keydown)=\"grid.navigation.headerNavigation($event)\"\n >\n </igx-pivot-row-dimension-header>\n <span *ngIf=\"!column.columnGroup && column.resizable\" class=\"igx-grid-th__resize-handle\"\n [igxPivotResizeHandle]=\"column\"\n [igxPivotResizeHandleHeader]=\"this\"\n [attr.draggable]=\"false\"\n [style.cursor]=\"colResizingService.resizeCursor\">\n </span>\n <span *ngIf=\"grid.hasMovableColumns\" class=\"igx-grid-th__drop-indicator-right\"></span>\n</ng-container>\n" }]
74488
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-row-dimension-header-group', imports: [IgxIconComponent, NgIf, IgxPivotRowDimensionHeaderComponent, NgClass, NgStyle, IgxColumnMovingDragDirective, IgxColumnMovingDropDirective, IgxPivotResizeHandleDirective, IgxHeaderGroupStylePipe], template: "<ng-template #defaultColumn>\n <span class=\"igx-grid-th__group-title\" [title]=\"title\">{{column.header}}</span>\n</ng-template>\n\n<ng-template #defaultCollapseIndicator>\n <igx-icon\n family=\"default\"\n [name]=\"column.expanded ? 'tree_collapse' : 'tree_expand'\">\n </igx-icon>\n</ng-template>\n\n<ng-container *ngIf=\"!column.columnGroup\">\n <span *ngIf=\"grid.hasMovableColumns\" class=\"igx-grid-th__drop-indicator-left\"></span>\n <igx-pivot-row-dimension-header\n role=\"columnheader\"\n class=\"igx-grid-th--fw\"\n [id]=\"grid.id + '_' + column.field\"\n [ngClass]=\"column.headerClasses\"\n [ngStyle]=\"column.headerStyles | igxHeaderGroupStyle:column:grid.pipeTrigger\"\n [igxColumnMovingDrag]=\"column\"\n [ghostHost]=\"grid.outlet.nativeElement\"\n [attr.droppable]=\"true\"\n (pointerdown)=\"pointerdown($event)\"\n [igxColumnMovingDrop]=\"column\"\n [column]=\"column\"\n (keydown)=\"grid.navigation.headerNavigation($event)\"\n >\n </igx-pivot-row-dimension-header>\n <span *ngIf=\"!column.columnGroup && column.resizable\" class=\"igx-grid-th__resize-handle\"\n [igxPivotResizeHandle]=\"column\"\n [igxPivotResizeHandleHeader]=\"this\"\n [attr.draggable]=\"false\"\n [style.cursor]=\"colResizingService.resizeCursor\">\n </span>\n <span *ngIf=\"grid.hasMovableColumns\" class=\"igx-grid-th__drop-indicator-right\"></span>\n</ng-container>\n" }]
74463
74489
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
74464
74490
  type: Inject,
74465
74491
  args: [IGX_GRID_BASE]
@@ -75647,8 +75673,7 @@ class IgxPivotRowDimensionMrlRowComponent extends IgxGridHeaderRowComponent {
75647
75673
  }
75648
75674
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxPivotRowDimensionMrlRowComponent, decorators: [{
75649
75675
  type: Component,
75650
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-row-dimension-mrl-row', imports: [NgClass, NgStyle, NgFor, IgxIconComponent, IgxHeaderGroupWidthPipe, IgxHeaderGroupStylePipe,
75651
- IgxPivotRowDimensionContentComponent, IgxPivotGridHorizontalRowCellMerging], template: "<ng-template ngFor let-cell let-cellIndex=\"index\" [ngForOf]=\"rowGroup\n | pivotGridHorizontalRowCellMerging:grid.pivotConfiguration:grid.pipeTrigger\">\n <igx-pivot-row-dimension-content role=\"row\" class=\"igx-grid-thead\"\n [grid]=\"grid\"\n [dimension]=\"cell.rootDimension\"\n [rootDimension]=\"cell.rootDimension\"\n [rowIndex]=\"rowIndex\"\n [colIndex]=\"cellIndex\"\n [rowData]=\"cell.records[0]\"\n [width]=\"rowDimensionWidthCombined(cell.dimensions)\"\n [layout]=\"{\n rowStart: cell.rowStart,\n rowEnd: cell.rowStart + cell.rowSpan,\n colStart: cell.colStart,\n colEnd: cell.colStart + cell.colSpan,\n columnVisibleIndex: cellIndex\n }\">\n </igx-pivot-row-dimension-content>\n</ng-template>\n" }]
75676
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-row-dimension-mrl-row', imports: [NgFor, IgxPivotRowDimensionContentComponent, IgxPivotGridHorizontalRowCellMerging], template: "<ng-template ngFor let-cell let-cellIndex=\"index\" [ngForOf]=\"rowGroup\n | pivotGridHorizontalRowCellMerging:grid.pivotConfiguration:grid.pipeTrigger\">\n <igx-pivot-row-dimension-content role=\"row\" class=\"igx-grid-thead\"\n [grid]=\"grid\"\n [dimension]=\"cell.rootDimension\"\n [rootDimension]=\"cell.rootDimension\"\n [rowIndex]=\"rowIndex\"\n [colIndex]=\"cellIndex\"\n [rowData]=\"cell.records[0]\"\n [width]=\"rowDimensionWidthCombined(cell.dimensions)\"\n [layout]=\"{\n rowStart: cell.rowStart,\n rowEnd: cell.rowStart + cell.rowSpan,\n colStart: cell.colStart,\n colEnd: cell.colStart + cell.colSpan,\n columnVisibleIndex: cellIndex\n }\">\n </igx-pivot-row-dimension-content>\n</ng-template>\n" }]
75652
75677
  }], ctorParameters: () => [{ type: undefined, decorators: [{
75653
75678
  type: Inject,
75654
75679
  args: [IGX_GRID_BASE]
@@ -78749,7 +78774,7 @@ class IgxGridToolbarAdvancedFilteringComponent {
78749
78774
  }
78750
78775
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, decorators: [{
78751
78776
  type: Component,
78752
- args: [{ selector: 'igx-grid-toolbar-advanced-filtering', imports: [IgxButtonDirective, IgxRippleDirective, NgClass, IgxIconComponent, NgIf], template: "<button igxButton=\"outlined\" type=\"button\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n class=\"igx-grid-toolbar__adv-filter\">\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <!-- D.P. fix(elements): Angular trims child nodes, native doesn't leaving white space when other items project\n textContent (avoids layout trash of innerText) should avoid wiping the default text without user set one -->\n <span *ngIf=\"!ref.textContent.trim()\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n <span class=\"igx-adv-filter--column-number\" *ngIf=\"grid?.advancedFilteringExpressionsTree\"> ({{ numberOfColumns }}) </span>\n</button>\n" }]
78777
+ args: [{ selector: 'igx-grid-toolbar-advanced-filtering', imports: [IgxButtonDirective, IgxRippleDirective, IgxIconComponent, NgIf], template: "<button igxButton=\"outlined\" type=\"button\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n class=\"igx-grid-toolbar__adv-filter\">\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <!-- D.P. fix(elements): Angular trims child nodes, native doesn't leaving white space when other items project\n textContent (avoids layout trash of innerText) should avoid wiping the default text without user set one -->\n <span *ngIf=\"!ref.textContent.trim()\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n <span class=\"igx-adv-filter--column-number\" *ngIf=\"grid?.advancedFilteringExpressionsTree\"> ({{ numberOfColumns }}) </span>\n</button>\n" }]
78753
78778
  }], ctorParameters: () => [{ type: IgxToolbarToken, decorators: [{
78754
78779
  type: Inject,
78755
78780
  args: [IgxToolbarToken]
@@ -79110,7 +79135,7 @@ class IgxGridToolbarExporterComponent extends BaseToolbarDirective {
79110
79135
  }
79111
79136
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxGridToolbarExporterComponent, decorators: [{
79112
79137
  type: Component,
79113
- args: [{ selector: 'igx-grid-toolbar-exporter', imports: [IgxButtonDirective, IgxRippleDirective, IgxIconComponent, NgIf, IgxToggleDirective, IgxExcelTextDirective, NgTemplateOutlet, IgxCSVTextDirective], template: "<button [title]=\"grid?.resourceStrings.igx_grid_toolbar_exporter_button_tooltip\" [disabled]=\"isExporting\"\n igxButton=\"outlined\" type=\"button\" igxRipple #btn (click)=\"toggle(btn, toggleRef)\">\n\n <igx-icon family=\"default\" name=\"file_download\"></igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.textContent.trim()\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_button_label }}\n </span>\n <igx-icon family=\"default\" name=\"arrow_drop_down\"></igx-icon>\n</button>\n\n<div class=\"igx-grid-toolbar__dropdown\" id=\"btnExport\">\n <ul class=\"igx-grid-toolbar__dd-list\" igxToggle #toggleRef=\"toggle\">\n <li *ngIf=\"exportExcel\" #btnExportExcel id=\"btnExportExcel\"\n class=\"igx-grid-toolbar__dd-list-items\" igxRipple (click)=\"exportClicked('excel', toggleRef)\">\n <span #excel>\n <ng-content select=[excelText],excel-text></ng-content>\n </span>\n <excel-text *ngIf=\"!excel.childNodes.length\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_excel_entry_text}}\n </excel-text>\n </li>\n\n <li *ngIf=\"exportCSV\" #btnExportCsv id=\"btnExportCsv\" class=\"igx-grid-toolbar__dd-list-items\"\n igxRipple (click)=\"exportClicked('csv', toggleRef)\">\n <span #csv>\n <ng-content select=[csvText],csv-text></ng-content>\n </span>\n <csv-text *ngIf=\"!csv.childNodes.length\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_csv_entry_text }}</csv-text>\n </li>\n </ul>\n</div>\n" }]
79138
+ args: [{ selector: 'igx-grid-toolbar-exporter', imports: [IgxButtonDirective, IgxRippleDirective, IgxIconComponent, NgIf, IgxToggleDirective, IgxExcelTextDirective, IgxCSVTextDirective], template: "<button [title]=\"grid?.resourceStrings.igx_grid_toolbar_exporter_button_tooltip\" [disabled]=\"isExporting\"\n igxButton=\"outlined\" type=\"button\" igxRipple #btn (click)=\"toggle(btn, toggleRef)\">\n\n <igx-icon family=\"default\" name=\"file_download\"></igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.textContent.trim()\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_button_label }}\n </span>\n <igx-icon family=\"default\" name=\"arrow_drop_down\"></igx-icon>\n</button>\n\n<div class=\"igx-grid-toolbar__dropdown\" id=\"btnExport\">\n <ul class=\"igx-grid-toolbar__dd-list\" igxToggle #toggleRef=\"toggle\">\n <li *ngIf=\"exportExcel\" #btnExportExcel id=\"btnExportExcel\"\n class=\"igx-grid-toolbar__dd-list-items\" igxRipple (click)=\"exportClicked('excel', toggleRef)\">\n <span #excel>\n <ng-content select=[excelText],excel-text></ng-content>\n </span>\n <excel-text *ngIf=\"!excel.childNodes.length\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_excel_entry_text}}\n </excel-text>\n </li>\n\n <li *ngIf=\"exportCSV\" #btnExportCsv id=\"btnExportCsv\" class=\"igx-grid-toolbar__dd-list-items\"\n igxRipple (click)=\"exportClicked('csv', toggleRef)\">\n <span #csv>\n <ng-content select=[csvText],csv-text></ng-content>\n </span>\n <csv-text *ngIf=\"!csv.childNodes.length\">\n {{ grid?.resourceStrings.igx_grid_toolbar_exporter_csv_entry_text }}</csv-text>\n </li>\n </ul>\n</div>\n" }]
79114
79139
  }], ctorParameters: () => [{ type: IgxToolbarToken, decorators: [{
79115
79140
  type: Inject,
79116
79141
  args: [IgxToolbarToken]
@@ -79668,7 +79693,7 @@ class IgxPageSizeSelectorComponent {
79668
79693
  }
79669
79694
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxPageSizeSelectorComponent, decorators: [{
79670
79695
  type: Component,
79671
- args: [{ selector: 'igx-page-size', imports: [IgxSelectComponent, FormsModule, IgxLabelDirective, NgFor, IgxSelectItemComponent], template: "<label class=\"igx-page-size__label\">{{ paginator.resourceStrings.igx_paginator_label }}</label>\n<div class=\"igx-page-size__select\">\n <igx-select [overlaySettings]=\"paginator.overlaySettings\" [(ngModel)]=\"paginator.perPage\" type=\"border\">\n <igx-select-item [value]=\"val\" *ngFor=\"let val of paginator.selectOptions\">\n {{ val }}\n </igx-select-item>\n </igx-select>\n</div>\n" }]
79696
+ args: [{ selector: 'igx-page-size', imports: [IgxSelectComponent, FormsModule, NgFor, IgxSelectItemComponent], template: "<label class=\"igx-page-size__label\">{{ paginator.resourceStrings.igx_paginator_label }}</label>\n<div class=\"igx-page-size__select\">\n <igx-select [overlaySettings]=\"paginator.overlaySettings\" [(ngModel)]=\"paginator.perPage\" type=\"border\">\n <igx-select-item [value]=\"val\" *ngFor=\"let val of paginator.selectOptions\">\n {{ val }}\n </igx-select-item>\n </igx-select>\n</div>\n" }]
79672
79697
  }], ctorParameters: () => [{ type: IgxPaginatorComponent, decorators: [{
79673
79698
  type: Host
79674
79699
  }] }], propDecorators: { cssClass: [{
@@ -79693,7 +79718,7 @@ class IgxPageNavigationComponent {
79693
79718
  }
79694
79719
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0", ngImport: i0, type: IgxPageNavigationComponent, decorators: [{
79695
79720
  type: Component,
79696
- args: [{ selector: 'igx-page-nav', imports: [IgxButtonDirective, IgxRippleDirective, IgxIconComponent, IgxIconButtonDirective], template: "<button\n [title]=\"paginator.resourceStrings.igx_paginator_first_page_button_text\"\n [disabled]=\"paginator.isFirstPage\"\n [attr.aria-disabled]=\"paginator.isFirstPage\"\n (click)=\"paginator.paginate(0)\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"first_page\"></igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_previous_page_button_text\"\n [disabled]=\"paginator.isFirstPage\"\n [attr.aria-disabled]=\"paginator.isFirstPage\"\n (click)=\"paginator.previousPage()\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"prev\"></igx-icon>\n</button>\n<div class=\"igx-page-nav__text\" aria-current=\"page\">\n <span>{{ paginator.page + 1 }}</span>\n <span\n >&nbsp;{{\n paginator.resourceStrings.igx_paginator_pager_text\n }}&nbsp;</span\n >\n <span>{{ paginator.totalPages || 1 }}</span>\n</div>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_next_page_button_text\"\n [disabled]=\"paginator.isLastPage\"\n [attr.aria-disabled]=\"paginator.isLastPage\"\n (click)=\"paginator.nextPage()\"\n igxRipple\n [igxRippleCentered]=\"true\"\n igxIconButton=\"flat\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"next\"></igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_last_page_button_text\"\n [disabled]=\"paginator.isLastPage\"\n [attr.aria-disabled]=\"paginator.isLastPage\"\n (click)=\"paginator.paginate(paginator.totalPages - 1)\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"last_page\"></igx-icon>\n</button>\n\n" }]
79721
+ args: [{ selector: 'igx-page-nav', imports: [IgxRippleDirective, IgxIconComponent, IgxIconButtonDirective], template: "<button\n [title]=\"paginator.resourceStrings.igx_paginator_first_page_button_text\"\n [disabled]=\"paginator.isFirstPage\"\n [attr.aria-disabled]=\"paginator.isFirstPage\"\n (click)=\"paginator.paginate(0)\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"first_page\"></igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_previous_page_button_text\"\n [disabled]=\"paginator.isFirstPage\"\n [attr.aria-disabled]=\"paginator.isFirstPage\"\n (click)=\"paginator.previousPage()\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"prev\"></igx-icon>\n</button>\n<div class=\"igx-page-nav__text\" aria-current=\"page\">\n <span>{{ paginator.page + 1 }}</span>\n <span\n >&nbsp;{{\n paginator.resourceStrings.igx_paginator_pager_text\n }}&nbsp;</span\n >\n <span>{{ paginator.totalPages || 1 }}</span>\n</div>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_next_page_button_text\"\n [disabled]=\"paginator.isLastPage\"\n [attr.aria-disabled]=\"paginator.isLastPage\"\n (click)=\"paginator.nextPage()\"\n igxRipple\n [igxRippleCentered]=\"true\"\n igxIconButton=\"flat\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"next\"></igx-icon>\n</button>\n<button\n [title]=\"paginator.resourceStrings.igx_paginator_last_page_button_text\"\n [disabled]=\"paginator.isLastPage\"\n [attr.aria-disabled]=\"paginator.isLastPage\"\n (click)=\"paginator.paginate(paginator.totalPages - 1)\"\n igxIconButton=\"flat\"\n igxRipple\n [igxRippleCentered]=\"true\"\n type=\"button\"\n>\n <igx-icon family=\"default\" name=\"last_page\"></igx-icon>\n</button>\n\n" }]
79697
79722
  }], ctorParameters: () => [{ type: IgxPaginatorComponent, decorators: [{
79698
79723
  type: Host
79699
79724
  }] }], propDecorators: { cssClass: [{