@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,1051 +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, ContentChild, ContentChildren, ChangeDetectorRef, ElementRef, EventEmitter, TemplateRef, NgZone, Input, Output, ViewChild, ViewChildren, ViewContainerRef, Inject, QueryList, Optional, Renderer2 } from '@angular/core';
6
- import { L10N_PREFIX, LocalizationService, RTL } from '@progress/kendo-angular-l10n';
7
- import { PopupService } from '@progress/kendo-angular-popup';
8
- import { DateRangePopupTemplateDirective } from './date-range-popup-template.directive';
9
- import { DateRangeService } from './date-range.service';
10
- import { MultiViewCalendarComponent } from '../calendar/multiview-calendar.component';
11
- import { PreventableEvent } from '../preventable-event';
12
- import { isDocumentAvailable, guid, Keys, hasObservers, ResizeSensorComponent, normalizeKeys } from '@progress/kendo-angular-common';
13
- import { AdaptiveService } from '@progress/kendo-angular-utils';
14
- import { Subscription, fromEvent, merge } from 'rxjs';
15
- import { filter, map } from 'rxjs/operators';
16
- import { isWindowAvailable } from '../util';
17
- import { isPresent } from '../common/utils';
18
- import { checkIcon } from '@progress/kendo-svg-icons';
19
- import { DateRangeSelectionDirective } from './date-range-selection.directive';
20
- import { ActionSheetComponent, ActionSheetTemplateDirective } from '@progress/kendo-angular-navigation';
21
- import { ButtonComponent } from '@progress/kendo-angular-buttons';
22
- import { DateRangePopupLocalizedMessagesDirective } from './localization/daterange-popup-localized-messages.directive';
23
- import { CalendarViewEnum } from '../calendar/models/view.enum';
24
- import * as i0 from "@angular/core";
25
- import * as i1 from "@progress/kendo-angular-popup";
26
- import * as i2 from "./date-range.service";
27
- import * as i3 from "@progress/kendo-angular-l10n";
28
- import * as i4 from "@progress/kendo-angular-utils";
29
- /**
30
- * Represents the Kendo UI DateRangePopup component for Angular.
31
- *
32
- * @example
33
- * ```ts
34
- * import { DateInputsModule, DateRangeService } from '@progress/kendo-angular-dateinputs';
35
- *
36
- * _@Component({
37
- * providers: [DateRangeService],
38
- * selector: 'my-app',
39
- * template: `
40
- * <button #anchor (click)="popup.toggle()">Toggle</button>
41
- * <kendo-daterange-popup [anchor]="anchor" #popup></kendo-daterange-popup>
42
- * `
43
- * })
44
- * export class AppComponent {
45
- * }
46
- * ```
47
- */
48
- export class DateRangePopupComponent {
49
- popupService;
50
- dateRangeService;
51
- zone;
52
- renderer;
53
- localization;
54
- cdr;
55
- rtl;
56
- adaptiveService;
57
- container;
58
- actionSheet;
59
- defaultTemplate;
60
- contentTemplate;
61
- dateRangeSelectionDirective;
62
- viewCalendar;
63
- contentCalendar;
64
- /**
65
- * @hidden
66
- *
67
- * Determines whether to display the MultiViewCalendar header.
68
- */
69
- showCalendarHeader = true;
70
- /**
71
- * Specifies the focused date of the MultiViewCalendar component.
72
- * Defines which date receives focus when the component loads ([see example]({% slug dates_multiviewcalendar %}#toc-focused-dates)).
73
- *
74
- * If the MultiViewCalendar is out of the min or max range, it normalizes the defined `focusedDate`.
75
- */
76
- focusedDate;
77
- /**
78
- * Specifies the dates in the MultiViewCalendar that you want to disable ([see example]({% slug disabled_dates_multiviewcalendar %})).
79
- */
80
- disabledDates;
81
- /**
82
- * Specifies the initial view that the MultiViewCalendar displays when it loads ([see example]({% slug viewoptions_multiviewcalendar %})).
83
- * By default, the active view is `month`.
84
- *
85
- * You have to set `activeView` within the `topView`-`bottomView` range.
86
- *
87
- * @default 'month
88
- */
89
- activeView = CalendarViewEnum[CalendarViewEnum.month];
90
- /**
91
- * Specifies the lowest view level that users can navigate to ([see example](slug:viewdepth_multiviewcalendar)).
92
- *
93
- * @default 'month'
94
- */
95
- bottomView = CalendarViewEnum[CalendarViewEnum.month];
96
- /**
97
- * Specifies the highest view level that users can navigate to ([see example](slug:viewdepth_multiviewcalendar)).
98
- *
99
- * @default 'century'
100
- */
101
- topView = CalendarViewEnum[CalendarViewEnum.century];
102
- /**
103
- * Specifies the minimum date that users can select ([see example]({% slug dates_multiviewcalendar %}#toc-focused-dates)).
104
- *
105
- * @default '1900-01-01'
106
- */
107
- min;
108
- /**
109
- * Specifies the maximum date that users can select ([see example]({% slug dates_multiviewcalendar %}#toc-focused-dates)).
110
- *
111
- * @default '2099-12-31'
112
- */
113
- max;
114
- /**
115
- * Determines whether users can select dates in reverse order.
116
- * When you set `allowReverse` to `true`, the component does not validate if the start date comes after the end date.
117
- *
118
- * @default false
119
- */
120
- allowReverse = false;
121
- /**
122
- * Determines whether to animate transitions when users navigate between views.
123
- *
124
- * @default false
125
- */
126
- animateNavigation = false;
127
- /**
128
- * Determines whether the MultiViewCalendar is interactive ([see example]({% slug disabled_multiviewcalendar %})).
129
- * When you set `disabled` to `true`, users cannot interact with the component.
130
- *
131
- * @default false
132
- */
133
- disabled = false;
134
- /**
135
- * Specifies the number of calendar views to display side by side.
136
- *
137
- * @default 2
138
- */
139
- views = 2;
140
- /**
141
- * Determines whether to display week numbers in the `month` view ([see example]({% slug weeknumcolumn_multiviewcalendar %})).
142
- *
143
- * @default false
144
- */
145
- weekNumber = false;
146
- /**
147
- * Controls the popup animations.
148
- * When you set `animate` to `true`, the popup displays opening and closing animations.
149
- * For more information about controlling the popup animations,
150
- * refer to the article on [animations]({% slug animations_popup %}).
151
- *
152
- * @default true
153
- */
154
- animate = true;
155
- /**
156
- * Specifies the element that serves as an anchor for the popup.
157
- * The popup opens next to this element.
158
- * For more information, refer to the section on
159
- * [aligning to specific components]({% slug alignmentpositioning_popup %}#toc-aligning-to-components).
160
- */
161
- anchor;
162
- /**
163
- * Specifies the alignment point for the anchor element.
164
- * For more information, refer to the section on
165
- * [positioning]({% slug alignmentpositioning_popup %}#toc-positioning).
166
- */
167
- anchorAlign;
168
- /**
169
- * Determines whether to display a header for each view ([see example]({% slug viewheader_multiviewcalendar %})).
170
- * For example, displays the month name in the month view.
171
- *
172
- * @default false
173
- */
174
- showViewHeader = false;
175
- /**
176
- * Determines whether to display days from adjacent months in the current month view ([see example]({% slug viewoptions_multiviewcalendar %}#toc-displaying-other-month-days)).
177
- *
178
- * @default false
179
- */
180
- showOtherMonthDays = false;
181
- /**
182
- * Specifies where to render the popup container.
183
- * By default, the popup renders in the root component.
184
- *
185
- * @default 'root'
186
- */
187
- appendTo;
188
- /**
189
- * Configures how the popup behaves when it encounters viewport boundaries.
190
- * For more information, refer to the article on
191
- * [viewport boundary detection]({% slug viewportboundarydetection_popup %}).
192
- *
193
- * @default { horizontal: 'fit', vertical: 'flip' }
194
- */
195
- collision = { horizontal: 'fit', vertical: 'flip' };
196
- /**
197
- * Specifies the alignment point for the popup element.
198
- * For more information, refer to the section on
199
- * [positioning]({% slug alignmentpositioning_popup %}#toc-positioning).
200
- */
201
- popupAlign;
202
- /**
203
- * Specifies the margin around the popup in pixels.
204
- * Creates empty space between the popup and its anchor element.
205
- */
206
- margin;
207
- /**
208
- * Determines whether the component uses adaptive rendering for different screen sizes.
209
- * By default, adaptive rendering is disabled.
210
- *
211
- * @default 'none'
212
- */
213
- adaptiveMode = 'none';
214
- /**
215
- * Specifies the title text for the input element and the header of the action sheet.
216
- * Applies only when [`AdaptiveMode` is set to `auto`](slug:api_dateinputs_adaptivemode).
217
- *
218
- * @default ""
219
- */
220
- adaptiveTitle = "";
221
- /**
222
- * Specifies the subtitle text displayed in the header of the action sheet.
223
- * Applies only when [`AdaptiveMode` is set to `auto`](slug:api_dateinputs_adaptivemode).
224
- *
225
- * @default ""
226
- */
227
- adaptiveSubtitle = "";
228
- /**
229
- * @hidden
230
- *
231
- * TODO: Make visible when the Infinite Calendar is fixed to set properly the size option.
232
- * Sets the size of the component.
233
- * @default 'medium'
234
- */
235
- size;
236
- /**
237
- * Fires when the popup is about to open ([see example](slug:popup_daterange#toc-events)).
238
- * You can prevent this event to keep the popup closed.
239
- */
240
- open = new EventEmitter();
241
- /**
242
- * Fires when the popup is about to close ([see example](slug:popup_daterange#toc-events)).
243
- * You can prevent this event to keep the popup open.
244
- */
245
- close = new EventEmitter();
246
- /**
247
- * Fires when the calendar element loses focus ([see example](slug:popup_daterange#toc-events)).
248
- */
249
- onBlur = new EventEmitter();
250
- /**
251
- * Fires when the calendar element receives focus ([see example](slug:popup_daterange#toc-events)).
252
- */
253
- onFocus = new EventEmitter();
254
- /**
255
- * Fires when the popup closes due to an `ESC` keypress or when it leaves the viewport ([see example](slug:popup_daterange#toc-events)).
256
- */
257
- cancel = new EventEmitter();
258
- /**
259
- * Gets the active calendar that displays in the popup.
260
- *
261
- * When the popup is closed, the property returns `null`.
262
- */
263
- get calendar() {
264
- return this._calendar;
265
- }
266
- set calendar(calendar) {
267
- this._calendar = calendar;
268
- this.subscribeFocusBlur(calendar);
269
- }
270
- /**
271
- * Gets the active state of the component.
272
- * Returns `true` when the opened calendar is active.
273
- */
274
- get isActive() {
275
- // The actionsheet is expanding before the calendar gets activated
276
- // and if we only check for calendar.isActive a blur event handler in the date-rage-input.ts will close the actionsheet
277
- // TODO: Potentially the entire logic would need refactoring to avoid hacks like this one
278
- return (this.calendar && this.calendar.isActive)
279
- || (this.actionSheet && this.actionSheet.expanded);
280
- }
281
- /**
282
- * @hidden
283
- */
284
- get isAdaptiveModeEnabled() {
285
- return this.adaptiveMode === 'auto';
286
- }
287
- /**
288
- * @hidden
289
- */
290
- get isAdaptive() {
291
- return this.isAdaptiveModeEnabled && this.windowSize !== 'large';
292
- }
293
- /**
294
- * @hidden
295
- */
296
- popupRef;
297
- /**
298
- * @hidden
299
- */
300
- popupUID = guid();
301
- /**
302
- * @hidden
303
- */
304
- checkIcon = checkIcon;
305
- /**
306
- * @hidden
307
- */
308
- windowSize;
309
- /**
310
- * Gets or sets the visibility state of the component.
311
- */
312
- set show(show) {
313
- if (this._show === show) {
314
- return;
315
- }
316
- const event = new PreventableEvent();
317
- if (show) {
318
- this.open.emit(event);
319
- }
320
- else {
321
- this.close.emit(event);
322
- }
323
- if (event.isDefaultPrevented()) {
324
- return;
325
- }
326
- this.toggleDateRange(show);
327
- }
328
- get show() {
329
- return this._show;
330
- }
331
- /**
332
- * @hidden
333
- */
334
- handleAccept() {
335
- this.dateRangeService.setRange(this._rangeSelection);
336
- this.show = false;
337
- }
338
- activateSubscription;
339
- blurSubscription;
340
- focusSubscription;
341
- calendarSubscriptions = new Subscription();
342
- popupSubscriptions = new Subscription();
343
- windowBlurSubscription;
344
- localizationSubscriptions = new Subscription();
345
- resolvedPromise = Promise.resolve();
346
- _calendar;
347
- _show;
348
- _rangeSelection;
349
- constructor(popupService, dateRangeService, zone, renderer, localization, cdr, rtl, adaptiveService) {
350
- this.popupService = popupService;
351
- this.dateRangeService = dateRangeService;
352
- this.zone = zone;
353
- this.renderer = renderer;
354
- this.localization = localization;
355
- this.cdr = cdr;
356
- this.rtl = rtl;
357
- this.adaptiveService = adaptiveService;
358
- }
359
- ngOnInit() {
360
- this.dateRangeService.registerPopup(this);
361
- if (this.localization) {
362
- this.localizationSubscriptions.add(this.localization
363
- .changes
364
- .subscribe(() => this.cdr.markForCheck()));
365
- }
366
- }
367
- ngAfterViewInit() {
368
- this.calendarSubscriptions.add(this.contentCalendar.changes.subscribe((changes) => {
369
- this.calendar = changes.first;
370
- this.actionSheet.titleId = changes.first?.headerId;
371
- this.cdr.detectChanges();
372
- }));
373
- this.calendarSubscriptions.add(this.viewCalendar.changes.subscribe((changes) => {
374
- this.calendar = changes.first;
375
- this.actionSheet.titleId = changes.first?.headerId;
376
- this.cdr.detectChanges();
377
- }));
378
- this.calendarSubscriptions.add(this.dateRangeService.startInput$?.value?.valueChange.subscribe((res) => {
379
- if (this.calendar) {
380
- if (!res && this.dateRangeService.selectionRange.end) {
381
- this.calendar.shouldHoverWhenNoStart = true;
382
- }
383
- else {
384
- this.calendar.shouldHoverWhenNoStart = false;
385
- }
386
- }
387
- }));
388
- if (isWindowAvailable()) {
389
- this.zone.runOutsideAngular(() => this.windowBlurSubscription = fromEvent(window, 'blur').subscribe(this.handleWindowBlur.bind(this)));
390
- }
391
- }
392
- ngOnDestroy() {
393
- this.destroyPopup();
394
- this.calendarSubscriptions.unsubscribe();
395
- if (this.activateSubscription) {
396
- this.activateSubscription.unsubscribe();
397
- }
398
- if (this.blurSubscription) {
399
- this.blurSubscription.unsubscribe();
400
- this.focusSubscription.unsubscribe();
401
- }
402
- if (this.windowBlurSubscription) {
403
- this.windowBlurSubscription.unsubscribe();
404
- }
405
- }
406
- /**
407
- * @hidden
408
- *
409
- */
410
- onRangeSelectionChange(rangeSelection) {
411
- this.dateRangeService.setActiveRangeEnd(rangeSelection.activeRangeEnd);
412
- if (!this.isAdaptive) {
413
- this.dateRangeService.setRange(rangeSelection.selectionRange);
414
- }
415
- else {
416
- this._rangeSelection = rangeSelection.selectionRange;
417
- }
418
- }
419
- /**
420
- * Opens the popup component and focuses the calendar.
421
- */
422
- activate() {
423
- if (this.show === true) {
424
- return;
425
- }
426
- if (this.activateSubscription) {
427
- this.activateSubscription.unsubscribe();
428
- }
429
- this.show = true;
430
- this.cdr.markForCheck();
431
- this.zone.runOutsideAngular(() => {
432
- this.activateSubscription = merge(this.contentCalendar.changes, this.viewCalendar.changes).pipe(filter(changes => changes && changes.first), map(changes => changes.first)).subscribe((calendar) => setTimeout(() => {
433
- calendar.focus();
434
- this.addCalendarSubscription(calendar);
435
- }));
436
- });
437
- }
438
- /**
439
- * Focuses the calendar if it is available.
440
- */
441
- focus() {
442
- if (this.calendar) {
443
- this.calendar.focus();
444
- }
445
- }
446
- /**
447
- * Checks if a focused element is inside the popup.
448
- *
449
- * @returns {boolean} Returns `true` if the focused element is inside the popup.
450
- */
451
- hasActiveContent() {
452
- if (!isDocumentAvailable() || !this.popupRef) {
453
- return false;
454
- }
455
- return this.popupRef.popupElement.contains(document.activeElement);
456
- }
457
- /**
458
- * Toggles the visibility of the popup or action sheet.
459
- * When you use the `toggle` method to show or hide the popup or action sheet,
460
- * the `open` and `close` events do not fire.
461
- *
462
- * @param {boolean} show The state of the popup.
463
- */
464
- toggle(show) {
465
- this.resolvedPromise.then(() => {
466
- this.toggleDateRange((show === undefined) ? !this.show : show);
467
- });
468
- }
469
- /**
470
- * @hidden
471
- *
472
- * Closes the popup and triggers the `cancel` event.
473
- */
474
- cancelPopup() {
475
- this.show = false;
476
- this.cancel.emit();
477
- }
478
- /**
479
- * @hidden
480
- */
481
- onResize() {
482
- const currentWindowSize = this.adaptiveService.size;
483
- if (!this.show || this.windowSize === currentWindowSize) {
484
- return;
485
- }
486
- if (this.actionSheet.expanded) {
487
- this.toggleActionSheet(false);
488
- }
489
- else {
490
- this.togglePopup(false);
491
- }
492
- this.windowSize = currentWindowSize;
493
- }
494
- /**
495
- * @hidden
496
- */
497
- closePopup(event) {
498
- event.preventDefault();
499
- event.stopPropagation();
500
- this.toggle(false);
501
- if (this.dateRangeService.activeRangeEnd === 'start' || !this.dateRangeService.activeRangeEnd) {
502
- this.dateRangeService.startInput$.value.focus();
503
- }
504
- else {
505
- this.dateRangeService.endInput$.value.focus();
506
- }
507
- }
508
- /**
509
- * @hidden
510
- */
511
- handleTab(event) {
512
- event.preventDefault();
513
- event.stopPropagation();
514
- if (this.dateRangeService.activeRangeEnd === 'start' || !this.dateRangeService.activeRangeEnd) {
515
- this.dateRangeService.setActiveRangeEnd('end');
516
- }
517
- else {
518
- this.dateRangeService.endInput$.value.focus();
519
- }
520
- }
521
- /**
522
- * @hidden
523
- */
524
- handleShiftTab(event) {
525
- event.preventDefault();
526
- event.stopPropagation();
527
- if (this.dateRangeService.activeRangeEnd === 'end') {
528
- this.dateRangeService.setActiveRangeEnd('start');
529
- }
530
- else {
531
- this.dateRangeService.startInput$.value.focus();
532
- }
533
- }
534
- handleWindowBlur() {
535
- if (!this.show || this.actionSheet.expanded) {
536
- return;
537
- }
538
- if (hasObservers(this.close)) {
539
- this.zone.run(() => this.show = false);
540
- }
541
- else {
542
- this.show = false;
543
- }
544
- }
545
- handleMouseLeave() {
546
- this.dateRangeService.setRange(this.dateRangeService.selectionRange);
547
- }
548
- handleKeydown(event) {
549
- const { altKey } = event;
550
- const code = normalizeKeys(event);
551
- if (code === Keys.Escape || (altKey && code === Keys.ArrowUp)) {
552
- this.zone.run(() => this.cancelPopup());
553
- }
554
- }
555
- subscribeFocusBlur(calendar) {
556
- if (this.blurSubscription) {
557
- this.blurSubscription.unsubscribe();
558
- this.focusSubscription.unsubscribe();
559
- }
560
- if (!calendar) {
561
- return;
562
- }
563
- const calendarElement = calendar.element.nativeElement.querySelector('.k-calendar-view');
564
- this.blurSubscription = fromEvent(calendarElement, 'blur').subscribe(() => this.onBlur.emit());
565
- this.focusSubscription = fromEvent(calendarElement, 'focus').subscribe(() => this.onFocus.emit());
566
- }
567
- addPopupSubscriptions(...subscriptions) {
568
- if (!isPresent(this.popupSubscriptions)) {
569
- this.popupSubscriptions = new Subscription();
570
- }
571
- subscriptions.forEach(s => this.popupSubscriptions.add(s));
572
- }
573
- get _appendTo() {
574
- const appendTo = this.appendTo;
575
- if (!appendTo || appendTo === 'root') {
576
- return undefined;
577
- }
578
- return appendTo === 'component' ? this.container : appendTo;
579
- }
580
- togglePopup(show) {
581
- this._show = show;
582
- if (this.popupRef) {
583
- this.destroyPopup();
584
- }
585
- if (this._show) {
586
- const direction = this.rtl ? 'right' : 'left';
587
- this.popupRef = this.popupService.open({
588
- anchor: this.anchor,
589
- anchorAlign: this.anchorAlign || { vertical: 'bottom', horizontal: direction },
590
- animate: this.animate,
591
- appendTo: this._appendTo,
592
- collision: this.collision,
593
- content: (this.contentTemplate || {}).templateRef || this.defaultTemplate,
594
- margin: this.margin,
595
- popupClass: 'k-calendar-container k-daterangepicker-popup',
596
- popupAlign: this.popupAlign || { vertical: 'top', horizontal: direction },
597
- positionMode: 'absolute'
598
- });
599
- const { popupElement, popupAnchorViewportLeave } = this.popupRef;
600
- this.renderer.setAttribute(popupElement.querySelector('.k-popup'), 'id', this.popupUID);
601
- this.addPopupSubscriptions(this.zone.runOutsideAngular(() => fromEvent(popupElement, 'keydown').subscribe(this.handleKeydown.bind(this))), fromEvent(popupElement, 'mouseleave').subscribe(this.handleMouseLeave.bind(this)), popupAnchorViewportLeave.subscribe(() => this.cancelPopup()));
602
- }
603
- }
604
- destroyPopup() {
605
- if (isPresent(this.popupRef)) {
606
- this.popupRef.close();
607
- this.popupRef = null;
608
- }
609
- if (isPresent(this.popupSubscriptions)) {
610
- this.popupSubscriptions.unsubscribe();
611
- }
612
- }
613
- toggleDateRange(show) {
614
- this.windowSize = this.adaptiveService.size;
615
- if (this.isAdaptive) {
616
- this.toggleActionSheet(show);
617
- }
618
- else {
619
- this.togglePopup(show);
620
- }
621
- }
622
- toggleActionSheet(show) {
623
- if (show === this._show) {
624
- return;
625
- }
626
- if (show && !this.actionSheet.expanded) {
627
- this.actionSheet.toggle();
628
- this.renderer.setAttribute(this.actionSheet.element.nativeElement, 'id', this.popupUID);
629
- }
630
- else if (!show && this.actionSheet.expanded) {
631
- this.actionSheet.toggle();
632
- }
633
- this._show = show;
634
- }
635
- addCalendarSubscription = (calendar) => {
636
- this.calendarSubscriptions.add(calendar.viewList.focusedCellChange.subscribe((id) => {
637
- this.dateRangeService.setActiveDescendent(id);
638
- }));
639
- };
640
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateRangePopupComponent, deps: [{ token: i1.PopupService }, { token: i2.DateRangeService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i3.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: RTL, optional: true }, { token: i4.AdaptiveService }], target: i0.ɵɵFactoryTarget.Component });
641
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: DateRangePopupComponent, isStandalone: true, selector: "kendo-daterange-popup", inputs: { showCalendarHeader: "showCalendarHeader", focusedDate: "focusedDate", disabledDates: "disabledDates", activeView: "activeView", bottomView: "bottomView", topView: "topView", min: "min", max: "max", allowReverse: "allowReverse", animateNavigation: "animateNavigation", disabled: "disabled", views: "views", weekNumber: "weekNumber", animate: "animate", anchor: "anchor", anchorAlign: "anchorAlign", showViewHeader: "showViewHeader", showOtherMonthDays: "showOtherMonthDays", appendTo: "appendTo", collision: "collision", popupAlign: "popupAlign", margin: "margin", adaptiveMode: "adaptiveMode", adaptiveTitle: "adaptiveTitle", adaptiveSubtitle: "adaptiveSubtitle", size: "size" }, outputs: { open: "open", close: "close", onBlur: "blur", onFocus: "focus", cancel: "cancel" }, providers: [
642
- LocalizationService,
643
- {
644
- provide: L10N_PREFIX,
645
- useValue: 'kendo.daterangepopup'
646
- }
647
- ], queries: [{ propertyName: "contentTemplate", first: true, predicate: DateRangePopupTemplateDirective, descendants: true }, { propertyName: "contentCalendar", predicate: MultiViewCalendarComponent }], viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef }, { propertyName: "actionSheet", first: true, predicate: ["actionSheet"], descendants: true }, { propertyName: "defaultTemplate", first: true, predicate: ["defaultTemplate"], descendants: true }, { propertyName: "dateRangeSelectionDirective", first: true, predicate: DateRangeSelectionDirective, descendants: true }, { propertyName: "viewCalendar", predicate: MultiViewCalendarComponent, descendants: true }], exportAs: ["kendo-daterange-popup"], ngImport: i0, template: `
648
- <ng-container kendoDateRangePopupLocalizedMessages
649
- i18n-accept="kendo.daterangepopup.accept|The Accept button text in the timepicker component"
650
- accept="Set"
651
-
652
- i18n-acceptLabel="kendo.daterangepopup.acceptLabel|The label for the Accept button in the timepicker component"
653
- acceptLabel="Set time"
654
-
655
- i18n-cancel="kendo.daterangepopup.cancel|The Cancel button text in the timepicker component"
656
- cancel="Cancel"
657
-
658
- i18n-cancelLabel="kendo.daterangepopup.cancelLabel|The label for the Cancel button in the timepicker component"
659
- cancelLabel="Cancel changes"
660
-
661
- i18n-adaptiveCloseButtonTitle="kendo.daterangepopup.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
662
- adaptiveCloseButtonTitle="Close"
663
- >
664
- </ng-container>
665
- <ng-container #container></ng-container>
666
- <ng-template #defaultTemplate>
667
- <kendo-multiviewcalendar
668
- [activeView]="activeView"
669
- [bottomView]="bottomView"
670
- [animateNavigation]="animateNavigation"
671
- [disabled]="disabled"
672
- orientation="horizontal"
673
- [views]="views"
674
- [weekNumber]="weekNumber"
675
- [topView]="topView"
676
- [disabledDates]="disabledDates"
677
- [min]="min"
678
- [max]="max"
679
- [showCalendarHeader]="showCalendarHeader"
680
- [focusedDate]="focusedDate"
681
- [allowReverse]="allowReverse"
682
- [showViewHeader]="showViewHeader"
683
- [showOtherMonthDays]="showOtherMonthDays"
684
- selection="range"
685
- [size]="size"
686
- [value]="dateRangeService.selectionRange"
687
- (onClosePopup)="closePopup($event)"
688
- (onTabPress)="handleTab($event)"
689
- (onShiftTabPress)="handleShiftTab($event)"
690
- (rangeSelectionChange)="onRangeSelectionChange($event)"
691
- ></kendo-multiviewcalendar>
692
- </ng-template>
693
-
694
- <kendo-actionsheet
695
- #actionSheet
696
- (overlayClick)="show=false"
697
- (collapse)="onBlur.emit()"
698
- [cssClass]="{
699
- 'k-adaptive-actionsheet': true,
700
- 'k-actionsheet-fullscreen': windowSize === 'small',
701
- 'k-actionsheet-bottom': windowSize === 'medium'
702
- }"
703
- [cssStyle]="{
704
- height: windowSize === 'small' ? '100vh' : '60vh'
705
- }"
706
- >
707
- <ng-template kendoActionSheetTemplate>
708
- <!-- Resize sensor needs to be inside the template because the date-range-popup
709
- element itself always has 0x0 size and does not trigger the sensor.
710
- Note: The popup in non-adaptive mode closes on window blur -->
711
- @if (isAdaptiveModeEnabled) {
712
- <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
713
- }
714
- <div class="k-actionsheet-titlebar">
715
- <div class="k-actionsheet-titlebar-group">
716
- <div class="k-actionsheet-title">
717
- @if (adaptiveTitle) {
718
- <div class="k-text-center">{{ adaptiveTitle }}</div>
719
- }
720
- @if (adaptiveSubtitle) {
721
- <div class="k-actionsheet-subtitle k-text-center">{{ adaptiveSubtitle }}</div>
722
- }
723
- </div>
724
- <div class="k-actionsheet-actions">
725
- <button
726
- kendoButton
727
- type="button"
728
- icon="check"
729
- [attr.title]="localization.get('adaptiveCloseButtonTitle')"
730
- [svgIcon]="checkIcon"
731
- fillMode="flat"
732
- themeColor="primary"
733
- [tabIndex]="-1"
734
- size="large"
735
- innerCssClass="k-button-icon"
736
- (click)="handleAccept()">
737
- </button>
738
- </div>
739
- </div>
740
- </div>
741
- <div class="k-actionsheet-content">
742
- <div class="k-scrollable-wrap">
743
- <kendo-multiviewcalendar
744
- size="large"
745
- [animateNavigation]="animateNavigation"
746
- [disabled]="disabled"
747
- orientation="vertical"
748
- [views]="views"
749
- [weekNumber]="weekNumber"
750
- [disabledDates]="disabledDates"
751
- [activeView]="activeView"
752
- [bottomView]="bottomView"
753
- [topView]="topView"
754
- [min]="min"
755
- [max]="max"
756
- [showCalendarHeader]="showCalendarHeader"
757
- [focusedDate]="focusedDate"
758
- [allowReverse]="allowReverse"
759
- [showViewHeader]="showViewHeader"
760
- [showOtherMonthDays]="showOtherMonthDays"
761
- [focusedDate]="dateRangeService.focusedDate"
762
- [value]="dateRangeService.selectionRange"
763
- selection="range"
764
- (rangeSelectionChange)="onRangeSelectionChange($event)"
765
- >
766
- </kendo-multiviewcalendar>
767
- </div>
768
- </div>
769
- <div class="k-actions k-actions-stretched k-actions-horizontal k-actionsheet-footer">
770
- <button kendoButton
771
- class="k-time-cancel"
772
- type="button"
773
- size="large"
774
- [attr.title]="localization.get('cancelLabel')"
775
- [attr.aria-label]="localization.get('cancelLabel')"
776
- (click)="show=false"
777
- >
778
- {{localization.get('cancel')}}
779
- </button>
780
-
781
- <button kendoButton
782
- class="k-time-accept"
783
- type="button"
784
- size="large"
785
- themeColor="primary"
786
- [attr.title]="localization.get('acceptLabel')"
787
- [attr.aria-label]="localization.get('acceptLabel')"
788
- (click)="handleAccept()"
789
- >
790
- {{localization.get('accept')}}
791
- </button>
792
- </div>
793
- </ng-template>
794
- </kendo-actionsheet>
795
- `, isInline: true, dependencies: [{ kind: "directive", type: DateRangePopupLocalizedMessagesDirective, selector: "[kendoDateRangePopupLocalizedMessages]" }, { kind: "component", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "size", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "rangeSelectionChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { kind: "component", type: ActionSheetComponent, selector: "kendo-actionsheet", inputs: ["actions", "actionsLayout", "overlayClickClose", "title", "subtitle", "items", "cssClass", "cssStyle", "animation", "expanded", "titleId", "initialFocus"], outputs: ["expandedChange", "action", "expand", "collapse", "itemClick", "overlayClick"], exportAs: ["kendoActionSheet"] }, { kind: "directive", type: ActionSheetTemplateDirective, selector: "[kendoActionSheetTemplate]" }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
796
- }
797
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DateRangePopupComponent, decorators: [{
798
- type: Component,
799
- args: [{
800
- exportAs: 'kendo-daterange-popup',
801
- providers: [
802
- LocalizationService,
803
- {
804
- provide: L10N_PREFIX,
805
- useValue: 'kendo.daterangepopup'
806
- }
807
- ],
808
- selector: 'kendo-daterange-popup',
809
- template: `
810
- <ng-container kendoDateRangePopupLocalizedMessages
811
- i18n-accept="kendo.daterangepopup.accept|The Accept button text in the timepicker component"
812
- accept="Set"
813
-
814
- i18n-acceptLabel="kendo.daterangepopup.acceptLabel|The label for the Accept button in the timepicker component"
815
- acceptLabel="Set time"
816
-
817
- i18n-cancel="kendo.daterangepopup.cancel|The Cancel button text in the timepicker component"
818
- cancel="Cancel"
819
-
820
- i18n-cancelLabel="kendo.daterangepopup.cancelLabel|The label for the Cancel button in the timepicker component"
821
- cancelLabel="Cancel changes"
822
-
823
- i18n-adaptiveCloseButtonTitle="kendo.daterangepopup.adaptiveCloseButtonTitle|The title of the Close button of the ActionSheet that is rendered instead of the Popup when using small screen devices in adaptive mode"
824
- adaptiveCloseButtonTitle="Close"
825
- >
826
- </ng-container>
827
- <ng-container #container></ng-container>
828
- <ng-template #defaultTemplate>
829
- <kendo-multiviewcalendar
830
- [activeView]="activeView"
831
- [bottomView]="bottomView"
832
- [animateNavigation]="animateNavigation"
833
- [disabled]="disabled"
834
- orientation="horizontal"
835
- [views]="views"
836
- [weekNumber]="weekNumber"
837
- [topView]="topView"
838
- [disabledDates]="disabledDates"
839
- [min]="min"
840
- [max]="max"
841
- [showCalendarHeader]="showCalendarHeader"
842
- [focusedDate]="focusedDate"
843
- [allowReverse]="allowReverse"
844
- [showViewHeader]="showViewHeader"
845
- [showOtherMonthDays]="showOtherMonthDays"
846
- selection="range"
847
- [size]="size"
848
- [value]="dateRangeService.selectionRange"
849
- (onClosePopup)="closePopup($event)"
850
- (onTabPress)="handleTab($event)"
851
- (onShiftTabPress)="handleShiftTab($event)"
852
- (rangeSelectionChange)="onRangeSelectionChange($event)"
853
- ></kendo-multiviewcalendar>
854
- </ng-template>
855
-
856
- <kendo-actionsheet
857
- #actionSheet
858
- (overlayClick)="show=false"
859
- (collapse)="onBlur.emit()"
860
- [cssClass]="{
861
- 'k-adaptive-actionsheet': true,
862
- 'k-actionsheet-fullscreen': windowSize === 'small',
863
- 'k-actionsheet-bottom': windowSize === 'medium'
864
- }"
865
- [cssStyle]="{
866
- height: windowSize === 'small' ? '100vh' : '60vh'
867
- }"
868
- >
869
- <ng-template kendoActionSheetTemplate>
870
- <!-- Resize sensor needs to be inside the template because the date-range-popup
871
- element itself always has 0x0 size and does not trigger the sensor.
872
- Note: The popup in non-adaptive mode closes on window blur -->
873
- @if (isAdaptiveModeEnabled) {
874
- <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
875
- }
876
- <div class="k-actionsheet-titlebar">
877
- <div class="k-actionsheet-titlebar-group">
878
- <div class="k-actionsheet-title">
879
- @if (adaptiveTitle) {
880
- <div class="k-text-center">{{ adaptiveTitle }}</div>
881
- }
882
- @if (adaptiveSubtitle) {
883
- <div class="k-actionsheet-subtitle k-text-center">{{ adaptiveSubtitle }}</div>
884
- }
885
- </div>
886
- <div class="k-actionsheet-actions">
887
- <button
888
- kendoButton
889
- type="button"
890
- icon="check"
891
- [attr.title]="localization.get('adaptiveCloseButtonTitle')"
892
- [svgIcon]="checkIcon"
893
- fillMode="flat"
894
- themeColor="primary"
895
- [tabIndex]="-1"
896
- size="large"
897
- innerCssClass="k-button-icon"
898
- (click)="handleAccept()">
899
- </button>
900
- </div>
901
- </div>
902
- </div>
903
- <div class="k-actionsheet-content">
904
- <div class="k-scrollable-wrap">
905
- <kendo-multiviewcalendar
906
- size="large"
907
- [animateNavigation]="animateNavigation"
908
- [disabled]="disabled"
909
- orientation="vertical"
910
- [views]="views"
911
- [weekNumber]="weekNumber"
912
- [disabledDates]="disabledDates"
913
- [activeView]="activeView"
914
- [bottomView]="bottomView"
915
- [topView]="topView"
916
- [min]="min"
917
- [max]="max"
918
- [showCalendarHeader]="showCalendarHeader"
919
- [focusedDate]="focusedDate"
920
- [allowReverse]="allowReverse"
921
- [showViewHeader]="showViewHeader"
922
- [showOtherMonthDays]="showOtherMonthDays"
923
- [focusedDate]="dateRangeService.focusedDate"
924
- [value]="dateRangeService.selectionRange"
925
- selection="range"
926
- (rangeSelectionChange)="onRangeSelectionChange($event)"
927
- >
928
- </kendo-multiviewcalendar>
929
- </div>
930
- </div>
931
- <div class="k-actions k-actions-stretched k-actions-horizontal k-actionsheet-footer">
932
- <button kendoButton
933
- class="k-time-cancel"
934
- type="button"
935
- size="large"
936
- [attr.title]="localization.get('cancelLabel')"
937
- [attr.aria-label]="localization.get('cancelLabel')"
938
- (click)="show=false"
939
- >
940
- {{localization.get('cancel')}}
941
- </button>
942
-
943
- <button kendoButton
944
- class="k-time-accept"
945
- type="button"
946
- size="large"
947
- themeColor="primary"
948
- [attr.title]="localization.get('acceptLabel')"
949
- [attr.aria-label]="localization.get('acceptLabel')"
950
- (click)="handleAccept()"
951
- >
952
- {{localization.get('accept')}}
953
- </button>
954
- </div>
955
- </ng-template>
956
- </kendo-actionsheet>
957
- `,
958
- standalone: true,
959
- imports: [DateRangePopupLocalizedMessagesDirective, MultiViewCalendarComponent, ActionSheetComponent, ActionSheetTemplateDirective, ResizeSensorComponent, ButtonComponent]
960
- }]
961
- }], ctorParameters: () => [{ type: i1.PopupService }, { type: i2.DateRangeService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i3.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
962
- type: Optional
963
- }, {
964
- type: Inject,
965
- args: [RTL]
966
- }] }, { type: i4.AdaptiveService }], propDecorators: { container: [{
967
- type: ViewChild,
968
- args: ['container', { read: ViewContainerRef, static: false }]
969
- }], actionSheet: [{
970
- type: ViewChild,
971
- args: ['actionSheet']
972
- }], defaultTemplate: [{
973
- type: ViewChild,
974
- args: ['defaultTemplate', { static: false }]
975
- }], contentTemplate: [{
976
- type: ContentChild,
977
- args: [DateRangePopupTemplateDirective, { static: false }]
978
- }], dateRangeSelectionDirective: [{
979
- type: ViewChild,
980
- args: [DateRangeSelectionDirective, { static: false }]
981
- }], viewCalendar: [{
982
- type: ViewChildren,
983
- args: [MultiViewCalendarComponent]
984
- }], contentCalendar: [{
985
- type: ContentChildren,
986
- args: [MultiViewCalendarComponent]
987
- }], showCalendarHeader: [{
988
- type: Input
989
- }], focusedDate: [{
990
- type: Input
991
- }], disabledDates: [{
992
- type: Input
993
- }], activeView: [{
994
- type: Input
995
- }], bottomView: [{
996
- type: Input
997
- }], topView: [{
998
- type: Input
999
- }], min: [{
1000
- type: Input
1001
- }], max: [{
1002
- type: Input
1003
- }], allowReverse: [{
1004
- type: Input
1005
- }], animateNavigation: [{
1006
- type: Input
1007
- }], disabled: [{
1008
- type: Input
1009
- }], views: [{
1010
- type: Input
1011
- }], weekNumber: [{
1012
- type: Input
1013
- }], animate: [{
1014
- type: Input
1015
- }], anchor: [{
1016
- type: Input
1017
- }], anchorAlign: [{
1018
- type: Input
1019
- }], showViewHeader: [{
1020
- type: Input
1021
- }], showOtherMonthDays: [{
1022
- type: Input
1023
- }], appendTo: [{
1024
- type: Input
1025
- }], collision: [{
1026
- type: Input
1027
- }], popupAlign: [{
1028
- type: Input
1029
- }], margin: [{
1030
- type: Input
1031
- }], adaptiveMode: [{
1032
- type: Input
1033
- }], adaptiveTitle: [{
1034
- type: Input
1035
- }], adaptiveSubtitle: [{
1036
- type: Input
1037
- }], size: [{
1038
- type: Input
1039
- }], open: [{
1040
- type: Output
1041
- }], close: [{
1042
- type: Output
1043
- }], onBlur: [{
1044
- type: Output,
1045
- args: ['blur']
1046
- }], onFocus: [{
1047
- type: Output,
1048
- args: ['focus']
1049
- }], cancel: [{
1050
- type: Output
1051
- }] } });