igniteui-angular 21.0.2 → 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.
- package/chat/README.md +93 -0
- package/fesm2022/igniteui-angular-calendar.mjs +30 -3
- package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-directives.mjs +6 -3
- package/fesm2022/igniteui-angular-directives.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-core.mjs +7 -4
- package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-grid.mjs +266 -42
- package/fesm2022/igniteui-angular-grids-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +235 -2
- package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +3384 -3188
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-tree-grid.mjs +238 -2
- package/fesm2022/igniteui-angular-grids-tree-grid.mjs.map +1 -1
- package/lib/core/styles/components/calendar/_calendar-theme.scss +2 -0
- package/lib/core/styles/components/grid/_grid-theme.scss +2 -1
- package/lib/core/styles/components/slider/_slider-theme.scss +0 -1
- package/package.json +1 -1
- package/styles/igniteui-angular-dark.css +1 -1
- package/styles/igniteui-angular.css +1 -1
- package/styles/igniteui-bootstrap-dark.css +1 -1
- package/styles/igniteui-bootstrap-light.css +1 -1
- package/styles/igniteui-dark-green.css +1 -1
- package/styles/igniteui-fluent-dark-excel.css +1 -1
- package/styles/igniteui-fluent-dark-word.css +1 -1
- package/styles/igniteui-fluent-dark.css +1 -1
- package/styles/igniteui-fluent-light-excel.css +1 -1
- package/styles/igniteui-fluent-light-word.css +1 -1
- package/styles/igniteui-fluent-light.css +1 -1
- package/styles/igniteui-indigo-dark.css +1 -1
- package/styles/igniteui-indigo-light.css +1 -1
- package/styles/maps/igniteui-angular-dark.css.map +1 -1
- package/styles/maps/igniteui-angular.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
- package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
- package/styles/maps/igniteui-dark-green.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-dark.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
- package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
- package/styles/maps/igniteui-fluent-light.css.map +1 -1
- package/styles/maps/igniteui-indigo-dark.css.map +1 -1
- package/styles/maps/igniteui-indigo-light.css.map +1 -1
- package/types/igniteui-angular-directives.d.ts +4 -2
- package/types/igniteui-angular-grids-core.d.ts +1 -1
- package/types/igniteui-angular-grids-grid.d.ts +13 -7
- package/types/igniteui-angular-grids-hierarchical-grid.d.ts +23 -13
- package/types/igniteui-angular-grids-pivot-grid.d.ts +501 -492
- package/types/igniteui-angular-grids-tree-grid.d.ts +12 -1
package/chat/README.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
|
|
2
|
+
# IgxChat
|
|
3
|
+
|
|
4
|
+
**IgxChat** is a component that provides a chat interface, wrapping the **IgcChat** web component.
|
|
5
|
+
|
|
6
|
+
A walkthrough of how to get started can be found [here](https://www.infragistics.com/products/ignite-ui-angular/angular/components/chat)
|
|
7
|
+
|
|
8
|
+
# Usage
|
|
9
|
+
|
|
10
|
+
```html
|
|
11
|
+
<igx-chat
|
|
12
|
+
[messages]="messages"
|
|
13
|
+
[draftMessage]="draft"
|
|
14
|
+
[options]="chatOptions"
|
|
15
|
+
[templates]="chatTemplates"
|
|
16
|
+
(messageCreated)="onMessageCreated($event)">
|
|
17
|
+
</igx-chat>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
# API Summary
|
|
21
|
+
The following tables summarize the **igx-chat** inputs, outputs and directives.
|
|
22
|
+
|
|
23
|
+
### Inputs
|
|
24
|
+
The following inputs are available in the **igx-chat** component:
|
|
25
|
+
|
|
26
|
+
| Name | Type | Description |
|
|
27
|
+
| :--- | :--- | :--- |
|
|
28
|
+
| `messages` | `IgcChatMessage[]` | Array of chat messages to display |
|
|
29
|
+
| `draftMessage` | `{ text: string; attachments?: IgcChatMessageAttachment[] } \| undefined` | Draft message with text and optional attachments |
|
|
30
|
+
| `options` | `IgxChatOptions` | Configuration options for the chat component |
|
|
31
|
+
| `templates` | `IgxChatTemplates` | Custom templates for rendering chat elements |
|
|
32
|
+
|
|
33
|
+
### Outputs
|
|
34
|
+
The following outputs are available in the **igx-chat** component:
|
|
35
|
+
|
|
36
|
+
| Name | Description | Parameters |
|
|
37
|
+
| :--- | :--- | :--- |
|
|
38
|
+
| `messageCreated` | Emitted when a new message is created | `IgcChatMessage` |
|
|
39
|
+
| `messageReact` | Emitted when a user reacts to a message | `IgcChatMessageReaction` |
|
|
40
|
+
| `attachmentClick` | Emitted when an attachment is clicked | `IgcChatMessageAttachment` |
|
|
41
|
+
| `attachmentDrag` | Emitted when attachment drag starts | `void` |
|
|
42
|
+
| `attachmentDrop` | Emitted when attachment is dropped | `void` |
|
|
43
|
+
| `typingChange` | Emitted when typing indicator state changes | `boolean` |
|
|
44
|
+
| `inputFocus` | Emitted when the input receives focus | `void` |
|
|
45
|
+
| `inputBlur` | Emitted when the input loses focus | `void` |
|
|
46
|
+
| `inputChange` | Emitted when the input value changes | `string` |
|
|
47
|
+
|
|
48
|
+
### Directives
|
|
49
|
+
The following directives are available for type checking in templates:
|
|
50
|
+
|
|
51
|
+
| Name | Selector | Description |
|
|
52
|
+
| :--- | :--- | :--- |
|
|
53
|
+
| `IgxChatMessageContextDirective` | `[igxChatMessageContext]` | Provides type information for chat message template contexts |
|
|
54
|
+
| `IgxChatAttachmentContextDirective` | `[igxChatAttachmentContext]` | Provides type information for chat attachment template contexts |
|
|
55
|
+
| `IgxChatInputContextDirective` | `[igxChatInputContext]` | Provides type information for chat input template contexts |
|
|
56
|
+
|
|
57
|
+
# Chat Extras
|
|
58
|
+
|
|
59
|
+
The **chat-extras** module provides additional utilities for enhancing chat functionality.
|
|
60
|
+
|
|
61
|
+
## MarkdownPipe
|
|
62
|
+
|
|
63
|
+
The `MarkdownPipe` transforms markdown text into HTML, allowing you to render formatted messages in the chat.
|
|
64
|
+
|
|
65
|
+
### Usage
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
import { MarkdownPipe } from 'igniteui-angular/chat-extras';
|
|
69
|
+
|
|
70
|
+
@Component({
|
|
71
|
+
standalone: true,
|
|
72
|
+
imports: [IgxChatComponent, MarkdownPipe, AsyncPipe],
|
|
73
|
+
template: `
|
|
74
|
+
<igx-chat [messages]="messages" [templates]="templates">
|
|
75
|
+
<ng-template #renderer igxChatMessageContext let-message>
|
|
76
|
+
<div [innerHTML]="message.text | fromMarkdown | async"></div>
|
|
77
|
+
</ng-template>
|
|
78
|
+
</igx-chat>
|
|
79
|
+
`
|
|
80
|
+
})
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Supported Markdown Features
|
|
84
|
+
|
|
85
|
+
The pipe supports common markdown syntax including:
|
|
86
|
+
- **Bold** text (`**text**`)
|
|
87
|
+
- *Italic* text (`*text*`)
|
|
88
|
+
- Headings (`# H1`, `## H2`, etc.)
|
|
89
|
+
- Lists (ordered and unordered)
|
|
90
|
+
- Links (`[text](url)`)
|
|
91
|
+
- Code blocks and inline code
|
|
92
|
+
- Blockquotes
|
|
93
|
+
- And more...
|
|
@@ -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,
|
|
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']
|