igniteui-angular 21.0.3 → 21.0.4

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 (41) hide show
  1. package/fesm2022/igniteui-angular-calendar.mjs +30 -3
  2. package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
  3. package/fesm2022/igniteui-angular-directives.mjs +5 -2
  4. package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
  5. package/fesm2022/igniteui-angular-grids-core.mjs +7 -4
  6. package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
  7. package/fesm2022/igniteui-angular-grids-grid.mjs +25 -40
  8. package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
  9. package/lib/core/styles/components/calendar/_calendar-theme.scss +2 -0
  10. package/lib/core/styles/components/grid/_grid-theme.scss +2 -1
  11. package/lib/core/styles/components/slider/_slider-theme.scss +0 -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
  39. package/types/igniteui-angular-directives.d.ts +4 -2
  40. package/types/igniteui-angular-grids-core.d.ts +1 -1
  41. package/types/igniteui-angular-grids-grid.d.ts +1 -6
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ElementRef, EventEmitter, HostListener, Output, Input, Directive, HostBinding, TemplateRef, NgZone, booleanAttribute, ViewChildren, Component, ChangeDetectionStrategy, Injectable, LOCALE_ID, ChangeDetectorRef, DestroyRef, Pipe, forwardRef, ContentChild, ViewChild, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, ElementRef, EventEmitter, HostListener, Output, Input, Directive, HostBinding, TemplateRef, NgZone, booleanAttribute, ViewChildren, Component, ChangeDetectionStrategy, Injectable, LOCALE_ID, ChangeDetectorRef, Pipe, DestroyRef, forwardRef, ContentChild, ViewChild, NgModule } from '@angular/core';
3
3
  import { TitleCasePipe, getLocaleFirstDayOfWeek, NgTemplateOutlet, DatePipe } from '@angular/common';
4
4
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
5
  import { Subject, fromEvent, interval, noop } from 'rxjs';
@@ -2011,6 +2011,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImpor
2011
2011
  args: ['pointerdown', ['$event']]
2012
2012
  }] } });
2013
2013
 
2014
+ class DayDigitPipe {
2015
+ transform(value, formatViews) {
2016
+ if (!value) {
2017
+ return '';
2018
+ }
2019
+ // strip non-numeric characters that might have been added by the locale formatter (e.g., "25日" -> "25").
2020
+ if (formatViews.day) {
2021
+ // Use regex to extract the numeric day value.
2022
+ // This handles locales that include non-numeric characters (e.g. '25日' in zh-CN).
2023
+ // match(/\d+/) is preferred over parseInt() as it robustly finds the digits regardless
2024
+ // of their position (prefix/suffix) in the localized string.
2025
+ const match = value.match(/\d+/);
2026
+ return match ? match[0] : value;
2027
+ }
2028
+ return value;
2029
+ }
2030
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: DayDigitPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
2031
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.2", ngImport: i0, type: DayDigitPipe, isStandalone: true, name: "dayDigit" }); }
2032
+ }
2033
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: DayDigitPipe, decorators: [{
2034
+ type: Pipe,
2035
+ args: [{
2036
+ name: 'dayDigit',
2037
+ standalone: true
2038
+ }]
2039
+ }] });
2040
+
2014
2041
  let NEXT_ID$2 = 0;
2015
2042
  class IgxDaysViewComponent extends IgxCalendarBaseDirective {
2016
2043
  #standalone;
@@ -2456,7 +2483,7 @@ class IgxDaysViewComponent extends IgxCalendarBaseDirective {
2456
2483
  useExisting: IgxDaysViewComponent
2457
2484
  },
2458
2485
  KeyboardNavigationService
2459
- ], viewQueries: [{ propertyName: "dates", predicate: IgxDayItemComponent, descendants: true, read: IgxDayItemComponent }], usesInheritance: true, ngImport: i0, template: "<div\n role=\"row\"\n class=\"igx-days-view__row\"\n [title]=\"weekNumberHeader.long | titlecase\"\n>\n @if (showWeekNumbers) {\n <div\n role=\"columnheader\"\n class=\"igx-days-view__label igx-days-view__label--week-number\"\n >\n <span>\n <i>{{ weekNumberHeader.short | titlecase }}</i>\n </span>\n </div>\n }\n @for (dayName of weekHeaderLabels; track dayName.long) {\n <span\n role=\"columnheader\"\n [attr.aria-label]=\"dayName.long\"\n class=\"igx-days-view__label\"\n >\n <span class=\"igx-days-view__label-inner\">\n {{ dayName.formatted | titlecase }}\n </span>\n </span>\n }\n</div>\n\n@for (\n week of monthWeeks; track rowTracker(i, week);\n let isLast = $last; let i = $index\n) {\n <div\n class=\"igx-days-view__row\"\n role=\"row\"\n >\n @if (showWeekNumbers) {\n <div class=\"igx-days-view__date igx-days-view__date--week-number\">\n <span\n role=\"rowheader\"\n class=\"igx-days-view__date-inner igx-days-view__date-inner--week-number\"\n >\n {{ getWeekNumber(week[0]) }}\n </span>\n </div>\n }\n @for (day of week; track dateTracker($index, day)) {\n <igx-day-item\n #item\n class=\"igx-days-view__date\"\n role=\"gridcell\"\n [attr.id]=\"item.isCurrentMonth && day.timestamp\"\n [attr.aria-selected]=\"isSelected(day)\"\n [attr.aria-disabled]=\"isDateDisabled(day.native)\"\n [attr.aria-label]=\"\n isFirstInRange(day)\n ? day.native.toDateString() +\n ', ' +\n resourceStrings.igx_calendar_range_start\n : isLastInRange(day)\n ? day.native.toDateString() +\n ', ' +\n resourceStrings.igx_calendar_range_end\n : day.native.toDateString()\n \"\n [date]=\"day\"\n [viewDate]=\"viewDate\"\n [selection]=\"selection\"\n [selected]=\"isSelected(day)\"\n [isActive]=\"isActiveDate(day)\"\n [isLastInRange]=\"isLastInRange(day)\"\n [isFirstInRange]=\"isFirstInRange(day)\"\n [isWithinRange]=\"isWithinRange(day.native, true)\"\n [isWithinPreviewRange]=\"isWithinPreviewRange(day.native)\"\n [disabledDates]=\"disabledDates\"\n [specialDates]=\"specialDates\"\n [hideLeadingDays]=\"hideLeadingDays\"\n [hideTrailingDays]=\"hideTrailingDays\"\n [attr.tabindex]=\"-1\"\n (click)=\"handleDateClick(item)\"\n (mouseEnter)=\"changePreviewRange(day.native)\"\n (mouseLeave)=\"clearPreviewRange()\"\n >\n {{ formattedDate(day.native) }}\n </igx-day-item>\n }\n </div>\n}\n", dependencies: [{ kind: "component", type: IgxDayItemComponent, selector: "igx-day-item", inputs: ["date", "viewDate", "selection", "selected", "disabledDates", "specialDates", "hideOutsideDays", "isLastInRange", "isFirstInRange", "isWithinRange", "isWithinPreviewRange", "hideLeadingDays", "hideTrailingDays", "isActive"], outputs: ["dateSelection", "mouseEnter", "mouseLeave", "mouseDown"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2486
+ ], viewQueries: [{ propertyName: "dates", predicate: IgxDayItemComponent, descendants: true, read: IgxDayItemComponent }], usesInheritance: true, ngImport: i0, template: "<div\n role=\"row\"\n class=\"igx-days-view__row\"\n [title]=\"weekNumberHeader.long | titlecase\"\n>\n @if (showWeekNumbers) {\n <div\n role=\"columnheader\"\n class=\"igx-days-view__label igx-days-view__label--week-number\"\n >\n <span>\n <i>{{ weekNumberHeader.short | titlecase }}</i>\n </span>\n </div>\n }\n @for (dayName of weekHeaderLabels; track dayName.long) {\n <span\n role=\"columnheader\"\n [attr.aria-label]=\"dayName.long\"\n class=\"igx-days-view__label\"\n >\n <span class=\"igx-days-view__label-inner\">\n {{ dayName.formatted | titlecase }}\n </span>\n </span>\n }\n</div>\n\n@for (\n week of monthWeeks; track rowTracker(i, week);\n let isLast = $last; let i = $index\n) {\n <div\n class=\"igx-days-view__row\"\n role=\"row\"\n >\n @if (showWeekNumbers) {\n <div class=\"igx-days-view__date igx-days-view__date--week-number\">\n <span\n role=\"rowheader\"\n class=\"igx-days-view__date-inner igx-days-view__date-inner--week-number\"\n >\n {{ getWeekNumber(week[0]) }}\n </span>\n </div>\n }\n @for (day of week; track dateTracker($index, day)) {\n <igx-day-item\n #item\n class=\"igx-days-view__date\"\n role=\"gridcell\"\n [attr.id]=\"item.isCurrentMonth && day.timestamp\"\n [attr.aria-selected]=\"isSelected(day)\"\n [attr.aria-disabled]=\"isDateDisabled(day.native)\"\n [attr.aria-label]=\"\n isFirstInRange(day)\n ? day.native.toDateString() +\n ', ' +\n resourceStrings.igx_calendar_range_start\n : isLastInRange(day)\n ? day.native.toDateString() +\n ', ' +\n resourceStrings.igx_calendar_range_end\n : day.native.toDateString()\n \"\n [date]=\"day\"\n [viewDate]=\"viewDate\"\n [selection]=\"selection\"\n [selected]=\"isSelected(day)\"\n [isActive]=\"isActiveDate(day)\"\n [isLastInRange]=\"isLastInRange(day)\"\n [isFirstInRange]=\"isFirstInRange(day)\"\n [isWithinRange]=\"isWithinRange(day.native, true)\"\n [isWithinPreviewRange]=\"isWithinPreviewRange(day.native)\"\n [disabledDates]=\"disabledDates\"\n [specialDates]=\"specialDates\"\n [hideLeadingDays]=\"hideLeadingDays\"\n [hideTrailingDays]=\"hideTrailingDays\"\n [attr.tabindex]=\"-1\"\n (click)=\"handleDateClick(item)\"\n (mouseEnter)=\"changePreviewRange(day.native)\"\n (mouseLeave)=\"clearPreviewRange()\"\n >\n {{ formattedDate(day.native) | dayDigit:formatViews }}\n </igx-day-item>\n }\n </div>\n}\n", dependencies: [{ kind: "component", type: IgxDayItemComponent, selector: "igx-day-item", inputs: ["date", "viewDate", "selection", "selected", "disabledDates", "specialDates", "hideOutsideDays", "isLastInRange", "isFirstInRange", "isWithinRange", "isWithinPreviewRange", "hideLeadingDays", "hideTrailingDays", "isActive"], outputs: ["dateSelection", "mouseEnter", "mouseLeave", "mouseDown"] }, { kind: "pipe", type: TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: DayDigitPipe, name: "dayDigit" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2460
2487
  }
2461
2488
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImport: i0, type: IgxDaysViewComponent, decorators: [{
2462
2489
  type: Component,
@@ -2467,7 +2494,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.2", ngImpor
2467
2494
  useExisting: IgxDaysViewComponent
2468
2495
  },
2469
2496
  KeyboardNavigationService
2470
- ], selector: 'igx-days-view', changeDetection: ChangeDetectionStrategy.OnPush, imports: [IgxDayItemComponent, TitleCasePipe], template: "<div\n role=\"row\"\n class=\"igx-days-view__row\"\n [title]=\"weekNumberHeader.long | titlecase\"\n>\n @if (showWeekNumbers) {\n <div\n role=\"columnheader\"\n class=\"igx-days-view__label igx-days-view__label--week-number\"\n >\n <span>\n <i>{{ weekNumberHeader.short | titlecase }}</i>\n </span>\n </div>\n }\n @for (dayName of weekHeaderLabels; track dayName.long) {\n <span\n role=\"columnheader\"\n [attr.aria-label]=\"dayName.long\"\n class=\"igx-days-view__label\"\n >\n <span class=\"igx-days-view__label-inner\">\n {{ dayName.formatted | titlecase }}\n </span>\n </span>\n }\n</div>\n\n@for (\n week of monthWeeks; track rowTracker(i, week);\n let isLast = $last; let i = $index\n) {\n <div\n class=\"igx-days-view__row\"\n role=\"row\"\n >\n @if (showWeekNumbers) {\n <div class=\"igx-days-view__date igx-days-view__date--week-number\">\n <span\n role=\"rowheader\"\n class=\"igx-days-view__date-inner igx-days-view__date-inner--week-number\"\n >\n {{ getWeekNumber(week[0]) }}\n </span>\n </div>\n }\n @for (day of week; track dateTracker($index, day)) {\n <igx-day-item\n #item\n class=\"igx-days-view__date\"\n role=\"gridcell\"\n [attr.id]=\"item.isCurrentMonth && day.timestamp\"\n [attr.aria-selected]=\"isSelected(day)\"\n [attr.aria-disabled]=\"isDateDisabled(day.native)\"\n [attr.aria-label]=\"\n isFirstInRange(day)\n ? day.native.toDateString() +\n ', ' +\n resourceStrings.igx_calendar_range_start\n : isLastInRange(day)\n ? day.native.toDateString() +\n ', ' +\n resourceStrings.igx_calendar_range_end\n : day.native.toDateString()\n \"\n [date]=\"day\"\n [viewDate]=\"viewDate\"\n [selection]=\"selection\"\n [selected]=\"isSelected(day)\"\n [isActive]=\"isActiveDate(day)\"\n [isLastInRange]=\"isLastInRange(day)\"\n [isFirstInRange]=\"isFirstInRange(day)\"\n [isWithinRange]=\"isWithinRange(day.native, true)\"\n [isWithinPreviewRange]=\"isWithinPreviewRange(day.native)\"\n [disabledDates]=\"disabledDates\"\n [specialDates]=\"specialDates\"\n [hideLeadingDays]=\"hideLeadingDays\"\n [hideTrailingDays]=\"hideTrailingDays\"\n [attr.tabindex]=\"-1\"\n (click)=\"handleDateClick(item)\"\n (mouseEnter)=\"changePreviewRange(day.native)\"\n (mouseLeave)=\"clearPreviewRange()\"\n >\n {{ formattedDate(day.native) }}\n </igx-day-item>\n }\n </div>\n}\n" }]
2497
+ ], selector: 'igx-days-view', changeDetection: ChangeDetectionStrategy.OnPush, imports: [IgxDayItemComponent, TitleCasePipe, DayDigitPipe], template: "<div\n role=\"row\"\n class=\"igx-days-view__row\"\n [title]=\"weekNumberHeader.long | titlecase\"\n>\n @if (showWeekNumbers) {\n <div\n role=\"columnheader\"\n class=\"igx-days-view__label igx-days-view__label--week-number\"\n >\n <span>\n <i>{{ weekNumberHeader.short | titlecase }}</i>\n </span>\n </div>\n }\n @for (dayName of weekHeaderLabels; track dayName.long) {\n <span\n role=\"columnheader\"\n [attr.aria-label]=\"dayName.long\"\n class=\"igx-days-view__label\"\n >\n <span class=\"igx-days-view__label-inner\">\n {{ dayName.formatted | titlecase }}\n </span>\n </span>\n }\n</div>\n\n@for (\n week of monthWeeks; track rowTracker(i, week);\n let isLast = $last; let i = $index\n) {\n <div\n class=\"igx-days-view__row\"\n role=\"row\"\n >\n @if (showWeekNumbers) {\n <div class=\"igx-days-view__date igx-days-view__date--week-number\">\n <span\n role=\"rowheader\"\n class=\"igx-days-view__date-inner igx-days-view__date-inner--week-number\"\n >\n {{ getWeekNumber(week[0]) }}\n </span>\n </div>\n }\n @for (day of week; track dateTracker($index, day)) {\n <igx-day-item\n #item\n class=\"igx-days-view__date\"\n role=\"gridcell\"\n [attr.id]=\"item.isCurrentMonth && day.timestamp\"\n [attr.aria-selected]=\"isSelected(day)\"\n [attr.aria-disabled]=\"isDateDisabled(day.native)\"\n [attr.aria-label]=\"\n isFirstInRange(day)\n ? day.native.toDateString() +\n ', ' +\n resourceStrings.igx_calendar_range_start\n : isLastInRange(day)\n ? day.native.toDateString() +\n ', ' +\n resourceStrings.igx_calendar_range_end\n : day.native.toDateString()\n \"\n [date]=\"day\"\n [viewDate]=\"viewDate\"\n [selection]=\"selection\"\n [selected]=\"isSelected(day)\"\n [isActive]=\"isActiveDate(day)\"\n [isLastInRange]=\"isLastInRange(day)\"\n [isFirstInRange]=\"isFirstInRange(day)\"\n [isWithinRange]=\"isWithinRange(day.native, true)\"\n [isWithinPreviewRange]=\"isWithinPreviewRange(day.native)\"\n [disabledDates]=\"disabledDates\"\n [specialDates]=\"specialDates\"\n [hideLeadingDays]=\"hideLeadingDays\"\n [hideTrailingDays]=\"hideTrailingDays\"\n [attr.tabindex]=\"-1\"\n (click)=\"handleDateClick(item)\"\n (mouseEnter)=\"changePreviewRange(day.native)\"\n (mouseLeave)=\"clearPreviewRange()\"\n >\n {{ formattedDate(day.native) | dayDigit:formatViews }}\n </igx-day-item>\n }\n </div>\n}\n" }]
2471
2498
  }], ctorParameters: () => [], propDecorators: { id: [{
2472
2499
  type: HostBinding,
2473
2500
  args: ['attr.id']