@progress/kendo-angular-dateinputs 21.4.1 → 22.0.0

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 (141) hide show
  1. package/calendar/localization/calendar-messages.d.ts +1 -1
  2. package/calendar/localization/multiview-calendar-messages.d.ts +1 -1
  3. package/dateinput/localization/messages.d.ts +1 -1
  4. package/datepicker/localization/messages.d.ts +1 -1
  5. package/daterange/date-range-input.d.ts +1 -1
  6. package/daterange/localization/messages.d.ts +1 -1
  7. package/datetimepicker/localization/messages.d.ts +1 -1
  8. package/fesm2022/progress-kendo-angular-dateinputs.mjs +262 -262
  9. package/package.json +15 -23
  10. package/timepicker/localization/messages.d.ts +1 -1
  11. package/esm2022/calendar/calendar.component.mjs +0 -1711
  12. package/esm2022/calendar/calendar.module.mjs +0 -91
  13. package/esm2022/calendar/calendars.module.mjs +0 -87
  14. package/esm2022/calendar/footer.component.mjs +0 -77
  15. package/esm2022/calendar/for.directive.mjs +0 -116
  16. package/esm2022/calendar/header.component.mjs +0 -367
  17. package/esm2022/calendar/horizontal-view-list.component.mjs +0 -580
  18. package/esm2022/calendar/localization/calendar-custom-messages.component.mjs +0 -51
  19. package/esm2022/calendar/localization/calendar-localized-messages.directive.mjs +0 -39
  20. package/esm2022/calendar/localization/calendar-messages.mjs +0 -45
  21. package/esm2022/calendar/localization/multiview-calendar-custom-messages.component.mjs +0 -51
  22. package/esm2022/calendar/localization/multiview-calendar-localized-messages.directive.mjs +0 -39
  23. package/esm2022/calendar/localization/multiview-calendar-messages.mjs +0 -45
  24. package/esm2022/calendar/models/cell-context.interface.mjs +0 -5
  25. package/esm2022/calendar/models/navigation-action.enum.mjs +0 -20
  26. package/esm2022/calendar/models/orientation.mjs +0 -5
  27. package/esm2022/calendar/models/row-length-options.interface.mjs +0 -5
  28. package/esm2022/calendar/models/scrollable.interface.mjs +0 -5
  29. package/esm2022/calendar/models/selection-range-end.type.mjs +0 -5
  30. package/esm2022/calendar/models/selection-range.interface.mjs +0 -10
  31. package/esm2022/calendar/models/selection.mjs +0 -50
  32. package/esm2022/calendar/models/type.mjs +0 -5
  33. package/esm2022/calendar/models/view-service.interface.mjs +0 -5
  34. package/esm2022/calendar/models/view.enum.mjs +0 -16
  35. package/esm2022/calendar/models/view.type.mjs +0 -5
  36. package/esm2022/calendar/multiview-calendar.component.mjs +0 -1564
  37. package/esm2022/calendar/multiview-calendar.module.mjs +0 -89
  38. package/esm2022/calendar/navigation.component.mjs +0 -230
  39. package/esm2022/calendar/services/bus-view.service.mjs +0 -83
  40. package/esm2022/calendar/services/century-view.service.mjs +0 -219
  41. package/esm2022/calendar/services/decade-view.service.mjs +0 -217
  42. package/esm2022/calendar/services/disabled-dates.service.mjs +0 -66
  43. package/esm2022/calendar/services/dom.service.mjs +0 -203
  44. package/esm2022/calendar/services/month-view.service.mjs +0 -223
  45. package/esm2022/calendar/services/navigation.service.mjs +0 -60
  46. package/esm2022/calendar/services/scroll-sync.service.mjs +0 -89
  47. package/esm2022/calendar/services/selection.service.mjs +0 -62
  48. package/esm2022/calendar/services/weeknames.service.mjs +0 -33
  49. package/esm2022/calendar/services/year-view.service.mjs +0 -204
  50. package/esm2022/calendar/templates/cell-template.directive.mjs +0 -45
  51. package/esm2022/calendar/templates/century-cell-template.directive.mjs +0 -43
  52. package/esm2022/calendar/templates/decade-cell-template.directive.mjs +0 -43
  53. package/esm2022/calendar/templates/footer-template.directive.mjs +0 -44
  54. package/esm2022/calendar/templates/header-template.directive.mjs +0 -47
  55. package/esm2022/calendar/templates/header-title-template.directive.mjs +0 -43
  56. package/esm2022/calendar/templates/month-cell-template.directive.mjs +0 -43
  57. package/esm2022/calendar/templates/navigation-item-template.directive.mjs +0 -43
  58. package/esm2022/calendar/templates/weeknumber-cell-template.directive.mjs +0 -43
  59. package/esm2022/calendar/templates/year-cell-template.directive.mjs +0 -43
  60. package/esm2022/calendar/view-list.component.mjs +0 -497
  61. package/esm2022/calendar/view.component.mjs +0 -432
  62. package/esm2022/common/dom-queries.mjs +0 -24
  63. package/esm2022/common/models/fillmode.mjs +0 -5
  64. package/esm2022/common/models/rounded.mjs +0 -5
  65. package/esm2022/common/models/size.mjs +0 -5
  66. package/esm2022/common/models/week-days-format.mjs +0 -5
  67. package/esm2022/common/picker.service.mjs +0 -17
  68. package/esm2022/common/utils.mjs +0 -70
  69. package/esm2022/dateinput/arrow.enum.mjs +0 -13
  70. package/esm2022/dateinput/dateinput.component.mjs +0 -1196
  71. package/esm2022/dateinput/dateinput.module.mjs +0 -45
  72. package/esm2022/dateinput/localization/dateinput-custom-messages.component.mjs +0 -60
  73. package/esm2022/dateinput/localization/dateinput-localized-messages.directive.mjs +0 -39
  74. package/esm2022/dateinput/localization/messages.mjs +0 -39
  75. package/esm2022/dateinput/models/format-placeholder.model.mjs +0 -5
  76. package/esm2022/dateinput/models/format-settings.model.mjs +0 -5
  77. package/esm2022/dateinput/models/incremental-steps.model.mjs +0 -5
  78. package/esm2022/dateinputs.module.mjs +0 -136
  79. package/esm2022/datepicker/datepicker.component.mjs +0 -1758
  80. package/esm2022/datepicker/datepicker.module.mjs +0 -83
  81. package/esm2022/datepicker/localization/datepicker-custom-messages.component.mjs +0 -53
  82. package/esm2022/datepicker/localization/datepicker-localized-messages.directive.mjs +0 -39
  83. package/esm2022/datepicker/localization/messages.mjs +0 -63
  84. package/esm2022/daterange/auto-correct-on.type.mjs +0 -5
  85. package/esm2022/daterange/date-range-end-input.directive.mjs +0 -105
  86. package/esm2022/daterange/date-range-input.mjs +0 -138
  87. package/esm2022/daterange/date-range-popup-template.directive.mjs +0 -36
  88. package/esm2022/daterange/date-range-popup.component.mjs +0 -1051
  89. package/esm2022/daterange/date-range-selection.directive.mjs +0 -223
  90. package/esm2022/daterange/date-range-start-input.directive.mjs +0 -109
  91. package/esm2022/daterange/date-range.component.mjs +0 -116
  92. package/esm2022/daterange/date-range.module.mjs +0 -103
  93. package/esm2022/daterange/date-range.service.mjs +0 -225
  94. package/esm2022/daterange/localization/daterange-popup-custom-messages.component.mjs +0 -43
  95. package/esm2022/daterange/localization/daterange-popup-localized-messages.directive.mjs +0 -39
  96. package/esm2022/daterange/localization/messages.mjs +0 -51
  97. package/esm2022/datetimepicker/datetimepicker.component.mjs +0 -2505
  98. package/esm2022/datetimepicker/datetimepicker.module.mjs +0 -106
  99. package/esm2022/datetimepicker/localization/datetimepicker-custom-messages.component.mjs +0 -52
  100. package/esm2022/datetimepicker/localization/localized-messages.directive.mjs +0 -39
  101. package/esm2022/datetimepicker/localization/messages.mjs +0 -153
  102. package/esm2022/datetimepicker/models/active-tab.type.mjs +0 -5
  103. package/esm2022/defaults.mjs +0 -24
  104. package/esm2022/directives.mjs +0 -146
  105. package/esm2022/index.mjs +0 -78
  106. package/esm2022/package-metadata.mjs +0 -16
  107. package/esm2022/popup-settings.model.mjs +0 -5
  108. package/esm2022/preventable-event.mjs +0 -27
  109. package/esm2022/progress-kendo-angular-dateinputs.mjs +0 -8
  110. package/esm2022/timepicker/localization/messages.mjs +0 -105
  111. package/esm2022/timepicker/localization/timepicker-custom-messages.component.mjs +0 -54
  112. package/esm2022/timepicker/localization/timepicker-localized-messages.directive.mjs +0 -39
  113. package/esm2022/timepicker/localization/timeselector-custom-messages.component.mjs +0 -45
  114. package/esm2022/timepicker/localization/timeselector-localized-messages.directive.mjs +0 -39
  115. package/esm2022/timepicker/models/incremental-steps.model.mjs +0 -5
  116. package/esm2022/timepicker/models/list-item.interface.mjs +0 -5
  117. package/esm2022/timepicker/models/list-service-settings.mjs +0 -5
  118. package/esm2022/timepicker/models/list-service.interface.mjs +0 -5
  119. package/esm2022/timepicker/models/time-part.default.mjs +0 -14
  120. package/esm2022/timepicker/services/dayperiod.service.mjs +0 -131
  121. package/esm2022/timepicker/services/dom.service.mjs +0 -126
  122. package/esm2022/timepicker/services/hours.service.mjs +0 -130
  123. package/esm2022/timepicker/services/milliseconds.service.mjs +0 -131
  124. package/esm2022/timepicker/services/minutes.service.mjs +0 -128
  125. package/esm2022/timepicker/services/seconds.service.mjs +0 -128
  126. package/esm2022/timepicker/timelist.component.mjs +0 -388
  127. package/esm2022/timepicker/timepicker.component.mjs +0 -1598
  128. package/esm2022/timepicker/timepicker.module.mjs +0 -71
  129. package/esm2022/timepicker/timeselector.component.mjs +0 -728
  130. package/esm2022/timepicker/util.mjs +0 -70
  131. package/esm2022/util.mjs +0 -406
  132. package/esm2022/validators/disabled-date.validator.mjs +0 -18
  133. package/esm2022/validators/disabled-dates-range.validator.mjs +0 -26
  134. package/esm2022/validators/incomplete-date.validator.mjs +0 -18
  135. package/esm2022/validators/max.validator.mjs +0 -21
  136. package/esm2022/validators/min.validator.mjs +0 -21
  137. package/esm2022/validators/time-range.validator.mjs +0 -23
  138. package/esm2022/virtualization/models/scrollable.interface.mjs +0 -5
  139. package/esm2022/virtualization/services/row-height.service.mjs +0 -73
  140. package/esm2022/virtualization/services/scroller.service.mjs +0 -109
  141. package/esm2022/virtualization/virtualization.component.mjs +0 -324
@@ -1,432 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, ChangeDetectorRef, EventEmitter, Input, Output, TemplateRef, Renderer2, NgZone, ElementRef } from '@angular/core';
6
- import { Subscription } from 'rxjs';
7
- import { CalendarViewEnum } from './models/view.enum';
8
- import { BusViewService } from './services/bus-view.service';
9
- import { DisabledDatesService } from './services/disabled-dates.service';
10
- import { IntlService } from '@progress/kendo-angular-intl';
11
- import { cloneDate, weekInYear } from '@progress/kendo-date-math';
12
- import { getToday, last, setTime, stringifyClassObject } from '../util';
13
- import { closestInScope } from '../common/dom-queries';
14
- import { isPresent } from '../common/utils';
15
- import { KForOf } from './for.directive';
16
- import { NgTemplateOutlet, NgClass } from '@angular/common';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "./services/bus-view.service";
19
- import * as i2 from "@progress/kendo-angular-intl";
20
- import * as i3 from "./services/disabled-dates.service";
21
- /**
22
- * @hidden
23
- */
24
- export class ViewComponent {
25
- bus;
26
- intl;
27
- cdr;
28
- element;
29
- zone;
30
- renderer;
31
- disabledDatesService;
32
- allowReverse;
33
- showOtherMonthDays;
34
- direction = 'vertical';
35
- isActive = true;
36
- activeView;
37
- cellUID;
38
- focusedDate;
39
- viewDate;
40
- activeRangeEnd;
41
- selectionRange;
42
- min;
43
- max;
44
- selectedDates = [];
45
- get weekNumber() {
46
- return this.showWeekNumbers && this.activeView === CalendarViewEnum.month;
47
- }
48
- set weekNumber(showWeekNumbers) {
49
- this.showWeekNumbers = showWeekNumbers;
50
- }
51
- viewIndex;
52
- templateRef;
53
- weekNumberTemplateRef;
54
- headerTitle;
55
- cellClick = new EventEmitter();
56
- weekNumberCellClick = new EventEmitter();
57
- cellEnter = new EventEmitter();
58
- cellLeave = new EventEmitter();
59
- focusedCellId = new EventEmitter();
60
- get ariaHidden() {
61
- return this.headerTitle === this.title ? null : true;
62
- }
63
- colSpan = 0;
64
- data;
65
- service;
66
- title;
67
- subscriptions = new Subscription();
68
- showWeekNumbers;
69
- domEvents = [];
70
- currentCellIndex;
71
- constructor(bus, intl, cdr, element, zone, renderer, disabledDatesService) {
72
- this.bus = bus;
73
- this.intl = intl;
74
- this.cdr = cdr;
75
- this.element = element;
76
- this.zone = zone;
77
- this.renderer = renderer;
78
- this.disabledDatesService = disabledDatesService;
79
- this.subscriptions.add(this.intl.changes.subscribe(this.intlChange.bind(this)));
80
- this.subscriptions.add(this.disabledDatesService.changes.subscribe(this.disabledDatesChange.bind(this)));
81
- }
82
- ngOnInit() {
83
- if (this.element) {
84
- this.zone.runOutsideAngular(() => {
85
- this.bindEvents();
86
- });
87
- }
88
- }
89
- ngOnChanges(changes) {
90
- this.service = this.bus.service(this.activeView);
91
- if (!this.service) {
92
- return;
93
- }
94
- this.colSpan = this.service.rowLength({ prependCell: this.weekNumber });
95
- this.title = this.service.title(this.viewDate);
96
- this.updateData();
97
- if (changes.activeView) {
98
- this.currentCellIndex = null;
99
- }
100
- }
101
- ngOnDestroy() {
102
- this.subscriptions.unsubscribe();
103
- this.domEvents.forEach(unsubscribeCallback => unsubscribeCallback());
104
- }
105
- isHorizontal() {
106
- return this.direction === 'horizontal';
107
- }
108
- isMonthView() {
109
- return this.activeView === CalendarViewEnum.month;
110
- }
111
- shouldRenderCellContent(cellCtx) {
112
- return isPresent(cellCtx) && (!cellCtx.isOtherMonth || (cellCtx.isOtherMonth && this.showOtherMonthDays));
113
- }
114
- firstDate(rowCtx) {
115
- const ctx = this.firstWeekDateContext(rowCtx);
116
- return ctx ? ctx.value : null;
117
- }
118
- getWeekNumber(date) {
119
- if (!this.weekNumber) {
120
- return null;
121
- }
122
- return weekInYear(date, this.intl.firstDay());
123
- }
124
- getWeekNumberContext(rowCtx) {
125
- const ctx = this.firstWeekDateContext(rowCtx);
126
- if (!this.weekNumber || !ctx) {
127
- return null;
128
- }
129
- const weekNumber = weekInYear(ctx.value, this.intl.firstDay()).toString();
130
- return {
131
- formattedValue: weekNumber,
132
- id: null,
133
- isFocused: false,
134
- isSelected: false,
135
- isWeekend: false,
136
- title: weekNumber,
137
- value: cloneDate(ctx.value)
138
- };
139
- }
140
- getStyles(context) {
141
- if (!context.isOtherMonth && this.isActive && context.isFocused) {
142
- this.focusedCellId.emit(context.id);
143
- }
144
- const { isRangeEnd, isRangeStart } = context;
145
- const isEndActive = this.activeRangeEnd === 'end' && isRangeEnd;
146
- const isStartActive = this.activeRangeEnd === 'start' && isRangeStart;
147
- return stringifyClassObject({
148
- 'k-range-end': !context.isOtherMonth && isRangeEnd,
149
- 'k-range-mid': !context.isOtherMonth && context.isRangeMid,
150
- 'k-range-split-end': !context.isOtherMonth && context.isRangeSplitEnd,
151
- 'k-range-split-start': !context.isOtherMonth && context.isRangeSplitStart,
152
- 'k-range-start': !context.isOtherMonth && isRangeStart,
153
- 'k-active': isStartActive || isEndActive,
154
- 'k-focus': !context.isOtherMonth && this.isActive && context.isFocused,
155
- 'k-selected': !context.isOtherMonth && (context.isSelected || isRangeStart || isRangeEnd),
156
- 'k-today': !context.isOtherMonth && context.isToday,
157
- 'k-weekend': context.isWeekend,
158
- 'k-disabled': context.isDisabled,
159
- 'k-other-month': context.isOtherMonth
160
- });
161
- }
162
- tableCellIndex(rowIndex, cellIndex) {
163
- return `${rowIndex}:${cellIndex}`;
164
- }
165
- handleWeekNumberClick(week) {
166
- const availableDates = week.filter(day => day).map(item => item.value).filter(date => !this.disabledDatesService.isDateDisabled(date));
167
- this.weekNumberCellClick.emit(availableDates);
168
- }
169
- getMonthLabel(date) {
170
- return this.activeView === 1 ? this.intl.formatDate(date, 'MMMM') : null;
171
- }
172
- firstWeekDateContext(rowCtx) {
173
- if (!this.weekNumber) {
174
- return null;
175
- }
176
- let idx = 0;
177
- let ctx = this.shouldRenderCellContent(rowCtx[idx]) ? rowCtx[idx] : null;
178
- while (!ctx && idx < rowCtx.length) {
179
- const cellCtx = rowCtx[++idx];
180
- ctx = this.shouldRenderCellContent(cellCtx) ? cellCtx : null;
181
- }
182
- return ctx;
183
- }
184
- updateData() {
185
- const time = last(this.selectedDates) || getToday();
186
- const viewDate = setTime(this.viewDate, time);
187
- this.data = this.service.data({
188
- cellUID: this.cellUID,
189
- focusedDate: this.focusedDate,
190
- isActiveView: !this.bus.canMoveDown(this.activeView),
191
- max: this.max,
192
- min: this.min,
193
- selectedDates: this.selectedDates,
194
- selectionRange: this.selectionRange,
195
- viewDate: viewDate,
196
- isDateDisabled: this.disabledDatesService.isDateDisabled,
197
- direction: this.direction,
198
- allowReverse: this.allowReverse
199
- });
200
- }
201
- intlChange() {
202
- this.updateData();
203
- this.cdr.markForCheck();
204
- }
205
- disabledDatesChange() {
206
- this.updateData();
207
- this.cdr.markForCheck();
208
- }
209
- bindEvents() {
210
- const element = this.element.nativeElement;
211
- this.domEvents.push(this.renderer.listen(element, 'mouseover', this.cellMouseoverHandler.bind(this)), this.renderer.listen(element, 'mouseleave', this.mouseLeaveHandler.bind(this)), this.renderer.listen(element, 'click', this.clickHandler.bind(this)));
212
- }
213
- clickHandler(args) {
214
- const cell = this.closestCell(args);
215
- if (!cell) {
216
- return;
217
- }
218
- const index = cell.getAttribute('data-cell-index');
219
- const cellContext = this.cellByIndex(index);
220
- if (!cellContext.isDisabled) {
221
- const { ctrlKey, metaKey, shiftKey } = args;
222
- this.cellClick.emit({
223
- date: cellContext.value,
224
- modifiers: { ctrlKey, metaKey, shiftKey }
225
- });
226
- }
227
- }
228
- mouseLeaveHandler() {
229
- if (this.currentCellIndex) {
230
- this.emitCellLeave();
231
- }
232
- }
233
- cellMouseoverHandler(args) {
234
- const cell = this.closestCell(args);
235
- if (cell) {
236
- const index = cell.getAttribute('data-cell-index');
237
- if (this.currentCellIndex && this.currentCellIndex !== index) {
238
- this.emitCellLeave();
239
- }
240
- const value = this.cellByIndex(index).value;
241
- this.cellEnter.emit(value);
242
- this.currentCellIndex = index;
243
- }
244
- else if (this.currentCellIndex) {
245
- this.emitCellLeave();
246
- }
247
- }
248
- closestCell(eventArgs) {
249
- return closestInScope(eventArgs.target, node => node.hasAttribute('data-cell-index'), this.element.nativeElement);
250
- }
251
- emitCellLeave() {
252
- const item = this.cellByIndex(this.currentCellIndex);
253
- if (item) {
254
- this.cellLeave.emit(item.value);
255
- }
256
- this.currentCellIndex = null;
257
- }
258
- cellByIndex(index) {
259
- const [rowIndex, cellIndex] = index.split(':');
260
- return this.data[rowIndex][cellIndex];
261
- }
262
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewComponent, deps: [{ token: i1.BusViewService }, { token: i2.IntlService }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i3.DisabledDatesService }], target: i0.ɵɵFactoryTarget.Component });
263
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ViewComponent, isStandalone: true, selector: "[kendoCalendarView]", inputs: { allowReverse: "allowReverse", showOtherMonthDays: "showOtherMonthDays", direction: "direction", isActive: "isActive", activeView: "activeView", cellUID: "cellUID", focusedDate: "focusedDate", viewDate: "viewDate", activeRangeEnd: "activeRangeEnd", selectionRange: "selectionRange", min: "min", max: "max", selectedDates: "selectedDates", weekNumber: "weekNumber", viewIndex: "viewIndex", templateRef: "templateRef", weekNumberTemplateRef: "weekNumberTemplateRef", headerTitle: "headerTitle" }, outputs: { cellClick: "cellClick", weekNumberCellClick: "weekNumberCellClick", cellEnter: "cellEnter", cellLeave: "cellLeave", focusedCellId: "focusedCellId" }, usesOnChanges: true, ngImport: i0, template: `
264
- @if (!isHorizontal()) {
265
- <tr class="k-calendar-tr" role="row" [attr.aria-hidden]="ariaHidden"><th class="k-calendar-caption" scope="col" [colSpan]="colSpan">{{title}}</th></tr>
266
- }
267
- <tr *kFor="let row of data; let rowIndex = index" class="k-calendar-tr" role="row">
268
- @if (weekNumber) {
269
- @if (firstDate(row)) {
270
- <td
271
- class="k-alt k-calendar-td"
272
- role="gridcell"
273
- (click)="handleWeekNumberClick(row)"
274
- >
275
- @if (!weekNumberTemplateRef) {
276
- {{getWeekNumber(firstDate(row))}}
277
- }
278
- @if (weekNumberTemplateRef) {
279
- <ng-template
280
- [ngTemplateOutlet]="weekNumberTemplateRef"
281
- [ngTemplateOutletContext]="{
282
- $implicit: firstDate(row),
283
- cellContext: getWeekNumberContext(row)
284
- }"
285
- ></ng-template>
286
- }
287
- </td>
288
- } @else {
289
- <td class="k-empty k-calendar-td" role="gridcell">&nbsp;</td>
290
- }
291
- }
292
- <ng-container *kFor="let cell of row; let cellIndex = index">
293
- @if (shouldRenderCellContent(cell)) {
294
- <td class="k-calendar-td"
295
- role="gridcell"
296
- [attr.id]="cell.id"
297
- [attr.data-cell-index]="tableCellIndex(rowIndex, cellIndex)"
298
- [attr.aria-selected]="cell.isSelected || cell.isRangeStart || cell.isRangeMid || cell.isRangeEnd"
299
- [attr.aria-disabled]="cell.isDisabled"
300
- [attr.aria-label]="getMonthLabel(cell.value)"
301
- [ngClass]="getStyles(cell)"
302
- [title]="cell.title"
303
- >
304
- <span class="k-link">
305
- @if (!templateRef) {{{cell.formattedValue}}}
306
- @if (templateRef) {
307
- <ng-template
308
- [ngTemplateOutlet]="templateRef"
309
- [ngTemplateOutletContext]="{ $implicit: cell.value, cellContext: cell }"
310
- ></ng-template>
311
- }
312
- </span>
313
- </td>
314
- } @else {
315
- <td class="k-empty k-calendar-td" role="gridcell">&nbsp;</td>
316
- }
317
- </ng-container>
318
- </tr>
319
- `, isInline: true, dependencies: [{ kind: "directive", type: KForOf, selector: "[kFor][kForOf]", inputs: ["kForOf", "kForTrackBy", "kForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
320
- }
321
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewComponent, decorators: [{
322
- type: Component,
323
- args: [{
324
- // eslint-disable-next-line
325
- selector: '[kendoCalendarView]',
326
- template: `
327
- @if (!isHorizontal()) {
328
- <tr class="k-calendar-tr" role="row" [attr.aria-hidden]="ariaHidden"><th class="k-calendar-caption" scope="col" [colSpan]="colSpan">{{title}}</th></tr>
329
- }
330
- <tr *kFor="let row of data; let rowIndex = index" class="k-calendar-tr" role="row">
331
- @if (weekNumber) {
332
- @if (firstDate(row)) {
333
- <td
334
- class="k-alt k-calendar-td"
335
- role="gridcell"
336
- (click)="handleWeekNumberClick(row)"
337
- >
338
- @if (!weekNumberTemplateRef) {
339
- {{getWeekNumber(firstDate(row))}}
340
- }
341
- @if (weekNumberTemplateRef) {
342
- <ng-template
343
- [ngTemplateOutlet]="weekNumberTemplateRef"
344
- [ngTemplateOutletContext]="{
345
- $implicit: firstDate(row),
346
- cellContext: getWeekNumberContext(row)
347
- }"
348
- ></ng-template>
349
- }
350
- </td>
351
- } @else {
352
- <td class="k-empty k-calendar-td" role="gridcell">&nbsp;</td>
353
- }
354
- }
355
- <ng-container *kFor="let cell of row; let cellIndex = index">
356
- @if (shouldRenderCellContent(cell)) {
357
- <td class="k-calendar-td"
358
- role="gridcell"
359
- [attr.id]="cell.id"
360
- [attr.data-cell-index]="tableCellIndex(rowIndex, cellIndex)"
361
- [attr.aria-selected]="cell.isSelected || cell.isRangeStart || cell.isRangeMid || cell.isRangeEnd"
362
- [attr.aria-disabled]="cell.isDisabled"
363
- [attr.aria-label]="getMonthLabel(cell.value)"
364
- [ngClass]="getStyles(cell)"
365
- [title]="cell.title"
366
- >
367
- <span class="k-link">
368
- @if (!templateRef) {{{cell.formattedValue}}}
369
- @if (templateRef) {
370
- <ng-template
371
- [ngTemplateOutlet]="templateRef"
372
- [ngTemplateOutletContext]="{ $implicit: cell.value, cellContext: cell }"
373
- ></ng-template>
374
- }
375
- </span>
376
- </td>
377
- } @else {
378
- <td class="k-empty k-calendar-td" role="gridcell">&nbsp;</td>
379
- }
380
- </ng-container>
381
- </tr>
382
- `,
383
- standalone: true,
384
- imports: [KForOf, NgTemplateOutlet, NgClass]
385
- }]
386
- }], ctorParameters: () => [{ type: i1.BusViewService }, { type: i2.IntlService }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i3.DisabledDatesService }], propDecorators: { allowReverse: [{
387
- type: Input
388
- }], showOtherMonthDays: [{
389
- type: Input
390
- }], direction: [{
391
- type: Input
392
- }], isActive: [{
393
- type: Input
394
- }], activeView: [{
395
- type: Input
396
- }], cellUID: [{
397
- type: Input
398
- }], focusedDate: [{
399
- type: Input
400
- }], viewDate: [{
401
- type: Input
402
- }], activeRangeEnd: [{
403
- type: Input
404
- }], selectionRange: [{
405
- type: Input
406
- }], min: [{
407
- type: Input
408
- }], max: [{
409
- type: Input
410
- }], selectedDates: [{
411
- type: Input
412
- }], weekNumber: [{
413
- type: Input
414
- }], viewIndex: [{
415
- type: Input
416
- }], templateRef: [{
417
- type: Input
418
- }], weekNumberTemplateRef: [{
419
- type: Input
420
- }], headerTitle: [{
421
- type: Input
422
- }], cellClick: [{
423
- type: Output
424
- }], weekNumberCellClick: [{
425
- type: Output
426
- }], cellEnter: [{
427
- type: Output
428
- }], cellLeave: [{
429
- type: Output
430
- }], focusedCellId: [{
431
- type: Output
432
- }] } });
@@ -1,24 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- /**
6
- * @hidden
7
- */
8
- export const closestInScope = (node, predicate, scope) => {
9
- while (node && node !== scope && !predicate(node)) {
10
- node = node.parentNode;
11
- }
12
- if (node !== scope) {
13
- return node;
14
- }
15
- };
16
- /**
17
- * @hidden
18
- */
19
- export const closest = (node, predicate) => {
20
- while (node && !predicate(node)) {
21
- node = node.parentNode;
22
- }
23
- return node;
24
- };
@@ -1,5 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- export {};
@@ -1,5 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- export {};
@@ -1,5 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- export {};
@@ -1,5 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- export {};
@@ -1,17 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { EventEmitter } from '@angular/core';
6
- /**
7
- * @hidden
8
- */
9
- export class PickerService {
10
- onFocus = new EventEmitter();
11
- onBlur = new EventEmitter();
12
- sameDateSelected = new EventEmitter();
13
- dateCompletenessChange = new EventEmitter();
14
- calendar;
15
- input;
16
- timeSelector;
17
- }
@@ -1,70 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Keys, normalizeKeys } from "@progress/kendo-angular-common";
6
- /**
7
- * @hidden
8
- */
9
- export const requiresZoneOnBlur = (ngControl) => ngControl &&
10
- (!ngControl.touched || (ngControl.control && ngControl.control.updateOn === 'blur'));
11
- /**
12
- * @hidden
13
- */
14
- export const preventDefault = (args) => args.preventDefault();
15
- /**
16
- * @hidden
17
- */
18
- export const currentFocusTarget = (blurArgs) => blurArgs.relatedTarget || document.activeElement;
19
- /**
20
- * @hidden
21
- */
22
- export const isPresent = (value) => value !== undefined && value !== null;
23
- /**
24
- * @hidden
25
- */
26
- export const isNullOrDate = (value) => value === null || value instanceof Date;
27
- /**
28
- * @hidden
29
- */
30
- export const isTruthy = (value) => !!value;
31
- /**
32
- * @hidden
33
- *
34
- * If the provided parameter is an array with at least one item
35
- * and all items in the array are numbers, returns `true.
36
- */
37
- export const isNumberArray = (value) => Array.isArray(value) && value.length > 0 && value.every(item => typeof item === 'number');
38
- /**
39
- * @hidden
40
- *
41
- * If the provided parameter is an array with at least one item
42
- * and all items in the array are dates, returns `true`.
43
- */
44
- export const isDateArray = (value) => Array.isArray(value) && value.length > 0 && value.every(item => item instanceof Date);
45
- /**
46
- * @hidden
47
- */
48
- export const isArrowWithShiftPressed = (args) => {
49
- const code = normalizeKeys(args);
50
- return args.shiftKey && (code === Keys.ArrowRight || code === Keys.ArrowLeft || code === Keys.ArrowDown || code === Keys.ArrowUp);
51
- };
52
- /**
53
- * @hidden
54
- */
55
- export const selectors = {
56
- infiniteCalendarTable: '.k-content .k-calendar-table',
57
- multiViewCalendarTable: '.k-calendar-table'
58
- };
59
- /**
60
- * @hidden
61
- */
62
- export const attributeNames = {
63
- ariaActiveDescendant: 'aria-activedescendant',
64
- ariaControls: 'aria-controls',
65
- ariaExpanded: 'aria-expanded',
66
- ariaHasPopup: 'aria-haspopup',
67
- valueNow: 'aria-valuenow',
68
- valuetext: 'aria-valuetext',
69
- ariaInvalid: 'aria-invalid'
70
- };
@@ -1,13 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- /**
6
- * @hidden
7
- */
8
- export var Arrow;
9
- (function (Arrow) {
10
- Arrow[Arrow["Up"] = 0] = "Up";
11
- Arrow[Arrow["Down"] = 1] = "Down";
12
- Arrow[Arrow["None"] = 2] = "None";
13
- })(Arrow || (Arrow = {}));