@progress/kendo-angular-scheduler 21.4.0-develop.1 → 21.4.0-develop.3

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 (55) hide show
  1. package/esm2022/events/more-events-click.mjs +24 -0
  2. package/esm2022/events/navigate-event.mjs +1 -1
  3. package/esm2022/events.mjs +1 -0
  4. package/esm2022/package-metadata.mjs +2 -2
  5. package/esm2022/scheduler.component.mjs +12 -2
  6. package/esm2022/views/agenda/agenda-view-internal.component.mjs +8 -4
  7. package/esm2022/views/agenda/agenda-view.component.mjs +3 -1
  8. package/esm2022/views/agenda/tasks.collection.mjs +7 -1
  9. package/esm2022/views/agenda/utils.mjs +2 -2
  10. package/esm2022/views/common/configuration-view-base.mjs +22 -2
  11. package/esm2022/views/common/slot-selectable.directive.mjs +3 -3
  12. package/esm2022/views/day-time/day-time-slot.service.mjs +1 -0
  13. package/esm2022/views/day-time/day-time-view.component.mjs +23 -10
  14. package/esm2022/views/month/month-view-renderer.component.mjs +33 -7
  15. package/esm2022/views/month/month-view.component.mjs +17 -5
  16. package/esm2022/views/month/multi-week-view.component.mjs +3 -1
  17. package/esm2022/views/month/utils.mjs +31 -1
  18. package/esm2022/views/multi-day/day-view.component.mjs +8 -1
  19. package/esm2022/views/multi-day/multi-day-view-renderer.component.mjs +18 -8
  20. package/esm2022/views/multi-day/multi-day-view.component.mjs +16 -2
  21. package/esm2022/views/multi-day/utils.mjs +7 -1
  22. package/esm2022/views/multi-day/week-view.component.mjs +3 -1
  23. package/esm2022/views/multi-day/work-week-view.component.mjs +3 -1
  24. package/esm2022/views/timeline/timeline-month-view.component.mjs +5 -1
  25. package/esm2022/views/timeline/timeline-multi-day-view.component.mjs +14 -4
  26. package/esm2022/views/timeline/timeline-view.component.mjs +8 -1
  27. package/esm2022/views/timeline/timeline-week-view.component.mjs +3 -1
  28. package/esm2022/views/timeline/utils.mjs +7 -1
  29. package/esm2022/views/utils.mjs +25 -3
  30. package/esm2022/views/year/year-view.component.mjs +7 -0
  31. package/events/more-events-click.d.ts +23 -0
  32. package/events/navigate-event.d.ts +1 -1
  33. package/events.d.ts +1 -0
  34. package/fesm2022/progress-kendo-angular-scheduler.mjs +333 -89
  35. package/package.json +15 -15
  36. package/scheduler.component.d.ts +8 -1
  37. package/schematics/ngAdd/index.js +3 -3
  38. package/views/agenda/agenda-view-internal.component.d.ts +3 -1
  39. package/views/agenda/tasks.collection.d.ts +3 -1
  40. package/views/agenda/utils.d.ts +1 -1
  41. package/views/common/configuration-view-base.d.ts +13 -1
  42. package/views/day-time/day-time-slot.service.d.ts +2 -0
  43. package/views/day-time/day-time-view.component.d.ts +2 -1
  44. package/views/month/month-view-renderer.component.d.ts +5 -2
  45. package/views/month/month-view.component.d.ts +9 -2
  46. package/views/month/utils.d.ts +2 -1
  47. package/views/multi-day/day-view.component.d.ts +6 -0
  48. package/views/multi-day/multi-day-view-renderer.component.d.ts +4 -2
  49. package/views/multi-day/multi-day-view.component.d.ts +8 -1
  50. package/views/multi-day/utils.d.ts +2 -1
  51. package/views/timeline/timeline-multi-day-view.component.d.ts +3 -1
  52. package/views/timeline/timeline-view.component.d.ts +6 -0
  53. package/views/timeline/utils.d.ts +2 -1
  54. package/views/utils.d.ts +7 -3
  55. package/views/year/year-view.component.d.ts +6 -0
@@ -11,7 +11,6 @@ import { getter, setter, hasObservers, isDocumentAvailable, isVisible as isVisib
11
11
  import { isEqualDate, ZonedDate, toLocalDate, getDate, timezoneNames, Day, MS_PER_DAY as MS_PER_DAY$1, addDays, firstDayOfMonth, lastDayOfMonth, firstDayInWeek, addMonths, addWeeks, addYears } from '@progress/kendo-date-math';
12
12
  import { auditTime, buffer, filter, map, debounceTime, take, distinctUntilChanged, switchMap, tap } from 'rxjs/operators';
13
13
  import { validatePackage } from '@progress/kendo-licensing';
14
- import { PreventableEvent as PreventableEvent$1, DatePickerComponent, DatePickerCustomMessagesComponent, DateTimePickerComponent, DateTimePickerCustomMessagesComponent, CalendarComponent, CalendarCustomMessagesComponent, MultiViewCalendarComponent, MonthCellTemplateDirective, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService, TimePickerDOMService, HoursService, MinutesService, SecondsService, MillisecondsService, DayPeriodService } from '@progress/kendo-angular-dateinputs';
15
14
  import { Subject, BehaviorSubject, fromEvent, Subscription, combineLatest, merge } from 'rxjs';
16
15
  import * as i4$1 from '@angular/forms';
17
16
  import { NG_VALUE_ACCESSOR, NgControl, ReactiveFormsModule, FormControl, FormGroup } from '@angular/forms';
@@ -25,6 +24,7 @@ import { saveIcon, cancelOutlineIcon, caretAltLeftIcon, caretAltRightIcon, calen
25
24
  import { Button, ButtonGroupComponent, ButtonComponent } from '@progress/kendo-angular-buttons';
26
25
  import { NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, FormFieldComponent, TextBoxDirective, CheckBoxDirective, TextAreaDirective } from '@progress/kendo-angular-inputs';
27
26
  import { parseRule, serializeRule, expand } from '@progress/kendo-recurrence';
27
+ import { DatePickerComponent, DatePickerCustomMessagesComponent, DateTimePickerComponent, DateTimePickerCustomMessagesComponent, CalendarComponent, CalendarCustomMessagesComponent, MultiViewCalendarComponent, MonthCellTemplateDirective, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService, TimePickerDOMService, HoursService, MinutesService, SecondsService, MillisecondsService, DayPeriodService } from '@progress/kendo-angular-dateinputs';
28
28
  import { LabelComponent, LabelDirective } from '@progress/kendo-angular-label';
29
29
  import * as i1$2 from '@progress/kendo-angular-popup';
30
30
  import { PopupService } from '@progress/kendo-angular-popup';
@@ -43,8 +43,8 @@ const packageMetadata = {
43
43
  productName: 'Kendo UI for Angular',
44
44
  productCode: 'KENDOUIANGULAR',
45
45
  productCodes: ['KENDOUIANGULAR'],
46
- publishDate: 1765536541,
47
- version: '21.4.0-develop.1',
46
+ publishDate: 1765793778,
47
+ version: '21.4.0-develop.3',
48
48
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
49
49
  };
50
50
 
@@ -74,10 +74,35 @@ class DateChangeEvent {
74
74
  }
75
75
  }
76
76
 
77
+ /**
78
+ * @hidden
79
+ */
80
+ class PreventableEvent {
81
+ prevented = false;
82
+ /**
83
+ * Prevents the default action for a specified event.
84
+ * In this way, the source component suppresses
85
+ * the built-in behavior that follows the event.
86
+ */
87
+ preventDefault() {
88
+ this.prevented = true;
89
+ }
90
+ /**
91
+ * Returns `true` if the event was prevented
92
+ * by any of its subscribers.
93
+ *
94
+ * @returns `true` if the default action was prevented.
95
+ * Otherwise, returns `false`.
96
+ */
97
+ isDefaultPrevented() {
98
+ return this.prevented;
99
+ }
100
+ }
101
+
77
102
  /**
78
103
  * Represents the arguments for the `navigate` event.
79
104
  */
80
- class NavigateEvent extends PreventableEvent$1 {
105
+ class NavigateEvent extends PreventableEvent {
81
106
  /**
82
107
  * Provides the navigation action that triggered the event.
83
108
  */
@@ -228,31 +253,6 @@ class CreateEvent {
228
253
  }
229
254
  }
230
255
 
231
- /**
232
- * @hidden
233
- */
234
- class PreventableEvent {
235
- prevented = false;
236
- /**
237
- * Prevents the default action for a specified event.
238
- * In this way, the source component suppresses
239
- * the built-in behavior that follows the event.
240
- */
241
- preventDefault() {
242
- this.prevented = true;
243
- }
244
- /**
245
- * Returns `true` if the event was prevented
246
- * by any of its subscribers.
247
- *
248
- * @returns `true` if the default action was prevented.
249
- * Otherwise, returns `false`.
250
- */
251
- isDefaultPrevented() {
252
- return this.prevented;
253
- }
254
- }
255
-
256
256
  /**
257
257
  * Represents the arguments for the `dragEnd` event.
258
258
  */
@@ -621,6 +621,26 @@ class AddEvent extends PreventableEvent {
621
621
  }
622
622
  }
623
623
 
624
+ /**
625
+ * Represents the arguments for the `moreEventsClick` event.
626
+ */
627
+ class MoreEventsClickEvent extends PreventableEvent {
628
+ /**
629
+ * The events that are displayed in the day slot.
630
+ */
631
+ displayedEvents;
632
+ /**
633
+ * The events that are hidden from the day slot.
634
+ */
635
+ moreEvents;
636
+ /**
637
+ * @hidden
638
+ */
639
+ constructor() {
640
+ super();
641
+ }
642
+ }
643
+
624
644
  /**
625
645
  * Represents the arguments for the `slotDragStart` event.
626
646
  *
@@ -2543,6 +2563,17 @@ const isVisible = (element) => {
2543
2563
  return (hasSize || hasPosition) && window.getComputedStyle(element).visibility !== 'hidden';
2544
2564
  };
2545
2565
 
2566
+ /**
2567
+ * @hidden
2568
+ */
2569
+ const allDaysHidden = (days) => {
2570
+ for (let day = 0; day <= 6; day++) {
2571
+ if (!days?.includes(day)) {
2572
+ return false;
2573
+ }
2574
+ }
2575
+ return true;
2576
+ };
2546
2577
  /** @hidden */
2547
2578
  const intersects = (startTime, endTime, periodStart, periodEnd) => (startTime < periodStart && endTime > periodEnd) ||
2548
2579
  (periodStart <= startTime && startTime < periodEnd) ||
@@ -2740,23 +2771,34 @@ function isEmptyResource(resources) {
2740
2771
  /**
2741
2772
  * @hidden
2742
2773
  */
2743
- function resourcesMatch(res1, res2) {
2774
+ function resourcesMatch(res1, res2, resourceConfigs) {
2744
2775
  if (res1.length !== res2.length) {
2745
2776
  return false;
2746
2777
  }
2747
2778
  if (isEmptyResource(res1) && isEmptyResource(res2)) {
2748
2779
  return true;
2749
2780
  }
2781
+ // When resource configurations are provided, use their valueField to compare
2782
+ if (resourceConfigs?.length > 0) {
2783
+ return res1.every((r1, index) => {
2784
+ const config = resourceConfigs[index];
2785
+ if (!config?.valueField) {
2786
+ return res2.some(r2 => r2.value === r1.value);
2787
+ }
2788
+ const value1 = getField(r1, config.valueField);
2789
+ return res2.some(r2 => getField(r2, config.valueField) === value1);
2790
+ });
2791
+ }
2750
2792
  return res1.every(r1 => res2.some(r2 => r2.value === r1.value));
2751
2793
  }
2752
2794
  /**
2753
2795
  * @hidden
2754
2796
  */
2755
- function isSameRange(range1, range2) {
2797
+ function isSameRange(range1, range2, resourceConfigs) {
2756
2798
  return (range1.start.getTime() === range2.start.getTime() &&
2757
2799
  range1.end.getTime() === range2.end.getTime() &&
2758
2800
  range1.isAllDay === range2.isAllDay &&
2759
- resourcesMatch(range1.resources, range2.resources));
2801
+ resourcesMatch(range1.resources, range2.resources, resourceConfigs));
2760
2802
  }
2761
2803
  /** @hidden */
2762
2804
  function findRowIndex(events, data) {
@@ -8039,6 +8081,13 @@ class SchedulerComponent {
8039
8081
  * The function returns a value supported by [`ngStyle`](link:site.data.urls.angular['ngstyleapi']).
8040
8082
  */
8041
8083
  eventStyles;
8084
+ /**
8085
+ * Specifies the days that will be hidden from the view.
8086
+ * Applies to **Week**, **MultiWeek**, **WorkWeek**, **Month**, **MultiDay**, **TimeLineWeek**, **TimeLineMonth**, and **Agenda** views.
8087
+ * Accepts an array of `Day` enum values.
8088
+ *
8089
+ */
8090
+ hiddenDays;
8042
8091
  /**
8043
8092
  * A callback that is executed for each slot of the Scheduler view.
8044
8093
  * If it returns `true`, the `k-selected` CSS class will be added to the cell, making it visibly selected.
@@ -8407,7 +8456,7 @@ class SchedulerComponent {
8407
8456
  'group', 'resources', 'min', 'max', 'showWorkHours', 'startTime', 'scrollTime', 'endTime', 'eventHeight',
8408
8457
  'workDayStart', 'workDayEnd', 'workWeekStart', 'workWeekEnd', 'weekStart', 'slotDuration', 'slotDivisions',
8409
8458
  'editable', 'timezone', 'slotClass', 'slotFill', 'columnWidth', 'eventClass', 'eventStyles', 'isSlotSelected',
8410
- 'selectable', 'allDaySlot', 'showToolbar', 'showFooter'
8459
+ 'selectable', 'allDaySlot', 'showToolbar', 'showFooter', 'hiddenDays'
8411
8460
  ], changes)) {
8412
8461
  this.notifyOptionsChange(changes);
8413
8462
  }
@@ -8670,6 +8719,7 @@ class SchedulerComponent {
8670
8719
  columnWidth: this.columnWidth,
8671
8720
  eventClass: this.eventClass,
8672
8721
  eventStyles: this.eventStyles,
8722
+ hiddenDays: this.hiddenDays,
8673
8723
  isSlotSelected: this.isSlotSelected,
8674
8724
  changes: changes
8675
8725
  });
@@ -8795,7 +8845,7 @@ class SchedulerComponent {
8795
8845
  });
8796
8846
  }
8797
8847
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SchedulerComponent, deps: [{ token: i0.ElementRef }, { token: ViewContextService }, { token: ViewStateService }, { token: EditService }, { token: DialogsService }, { token: i4.IntlService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: PDFService }, { token: i1$1.LocalizationService }, { token: DomEventsService }, { token: i0.Renderer2 }, { token: FocusService }], target: i0.ɵɵFactoryTarget.Component });
8798
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SchedulerComponent, isStandalone: true, selector: "kendo-scheduler", inputs: { selectedViewIndex: "selectedViewIndex", editable: "editable", selectable: "selectable", min: "min", max: "max", eventHeight: "eventHeight", columnWidth: "columnWidth", showWorkHours: "showWorkHours", startTime: "startTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", weekStart: "weekStart", slotDuration: "slotDuration", slotDivisions: "slotDivisions", slotFill: "slotFill", allDaySlot: "allDaySlot", scrollTime: "scrollTime", group: "group", resources: "resources", loading: "loading", timezone: "timezone", events: "events", selectedDate: "selectedDate", modelFields: "modelFields", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents", showToolbar: "showToolbar", showFooter: "showFooter", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", isSlotSelected: "isSlotSelected" }, outputs: { selectedViewIndexChange: "selectedViewIndexChange", navigate: "navigate", dateChange: "dateChange", slotClick: "slotClick", slotDblClick: "slotDblClick", create: "create", eventClick: "eventClick", eventDblClick: "eventDblClick", eventKeydown: "eventKeydown", cancel: "cancel", save: "save", remove: "remove", resizeStart: "resizeStart", resize: "resize", resizeEnd: "resizeEnd", dragStart: "dragStart", drag: "drag", dragEnd: "dragEnd", slotDragStart: "slotDragStart", slotDrag: "slotDrag", slotDragEnd: "slotDragEnd", pdfExport: "pdfExport", schedulerResize: "schedulerResize" }, host: { properties: { "class.k-scheduler": "this.hostClasses", "attr.role": "this.ariaRole", "class.k-rtl": "this.rtl", "attr.dir": "this.dir" } }, providers: [
8848
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SchedulerComponent, isStandalone: true, selector: "kendo-scheduler", inputs: { selectedViewIndex: "selectedViewIndex", editable: "editable", selectable: "selectable", min: "min", max: "max", eventHeight: "eventHeight", columnWidth: "columnWidth", showWorkHours: "showWorkHours", startTime: "startTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", weekStart: "weekStart", slotDuration: "slotDuration", slotDivisions: "slotDivisions", slotFill: "slotFill", allDaySlot: "allDaySlot", scrollTime: "scrollTime", group: "group", resources: "resources", loading: "loading", timezone: "timezone", events: "events", selectedDate: "selectedDate", modelFields: "modelFields", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents", showToolbar: "showToolbar", showFooter: "showFooter", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", hiddenDays: "hiddenDays", isSlotSelected: "isSlotSelected" }, outputs: { selectedViewIndexChange: "selectedViewIndexChange", navigate: "navigate", dateChange: "dateChange", slotClick: "slotClick", slotDblClick: "slotDblClick", create: "create", eventClick: "eventClick", eventDblClick: "eventDblClick", eventKeydown: "eventKeydown", cancel: "cancel", save: "save", remove: "remove", resizeStart: "resizeStart", resize: "resize", resizeEnd: "resizeEnd", dragStart: "dragStart", drag: "drag", dragEnd: "dragEnd", slotDragStart: "slotDragStart", slotDrag: "slotDrag", slotDragEnd: "slotDragEnd", pdfExport: "pdfExport", schedulerResize: "schedulerResize" }, host: { properties: { "class.k-scheduler": "this.hostClasses", "attr.role": "this.ariaRole", "class.k-rtl": "this.rtl", "attr.dir": "this.dir" } }, providers: [
8799
8849
  EditService,
8800
8850
  DialogsService,
8801
8851
  DomEventsService,
@@ -9593,6 +9643,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
9593
9643
  type: Input
9594
9644
  }], eventStyles: [{
9595
9645
  type: Input
9646
+ }], hiddenDays: [{
9647
+ type: Input
9596
9648
  }], isSlotSelected: [{
9597
9649
  type: Input
9598
9650
  }], selectedViewIndexChange: [{
@@ -10247,7 +10299,7 @@ class SlotSelectableDirective {
10247
10299
  this.cdr = cdr;
10248
10300
  this.scheduler.selectable = true;
10249
10301
  this.subscriptions.add(this.slotSelectionChangeSource
10250
- .pipe(distinctUntilChanged(isSameRange)).subscribe((v) => {
10302
+ .pipe(distinctUntilChanged((range1, range2) => isSameRange(range1, range2, this.scheduler.resources))).subscribe((v) => {
10251
10303
  this.slotSelectionChange.emit(v);
10252
10304
  }));
10253
10305
  const start$ = this.scheduler.slotDragStart;
@@ -10281,7 +10333,7 @@ class SlotSelectableDirective {
10281
10333
  if (!start || !end || !this.selectedRange) {
10282
10334
  return false;
10283
10335
  }
10284
- const match = resourcesMatch(this.selectedRange.resources, resources);
10336
+ const match = resourcesMatch(this.selectedRange.resources, resources, this.scheduler.resources);
10285
10337
  if (!match) {
10286
10338
  return false; // Limit selection to the grouped resource where the drag started.
10287
10339
  }
@@ -10293,7 +10345,7 @@ class SlotSelectableDirective {
10293
10345
  this.cdr.markForCheck();
10294
10346
  }
10295
10347
  onDrag({ start, end, resources }) {
10296
- const match = resourcesMatch(this.selectionOriginResources, resources);
10348
+ const match = resourcesMatch(this.selectionOriginResources, resources, this.scheduler.resources);
10297
10349
  if (!match) {
10298
10350
  return; // Don't change selection when dragging over a different grouped resource's cells.
10299
10351
  }
@@ -10400,6 +10452,16 @@ class ConfigurationViewBase extends SchedulerView {
10400
10452
  changeDetector;
10401
10453
  viewContext;
10402
10454
  viewState;
10455
+ /**
10456
+ * Specifies the days that will be hidden from the view.
10457
+ * Accepts an array of `Day` enum values.
10458
+ **/
10459
+ set hiddenDays(_hiddenDays) {
10460
+ this._hiddenDays = _hiddenDays;
10461
+ }
10462
+ get hiddenDays() {
10463
+ return this._hiddenDays;
10464
+ }
10403
10465
  /**
10404
10466
  * Defines a function that is executed for every slot in the view.
10405
10467
  * The function returns a value which is supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']) [see example](slug:styling_scheduler#slot-styling).
@@ -10471,8 +10533,16 @@ class ConfigurationViewBase extends SchedulerView {
10471
10533
  get viewWeekStart() {
10472
10534
  return this.schedulerOptions.weekStart;
10473
10535
  }
10536
+ /**
10537
+ * @hidden
10538
+ */
10539
+ get viewHiddenDays() {
10540
+ const result = isPresent(this.hiddenDays) ? this.hiddenDays : (this.schedulerOptions.hiddenDays);
10541
+ return result;
10542
+ }
10474
10543
  subs;
10475
10544
  schedulerOptions = {};
10545
+ _hiddenDays;
10476
10546
  constructor(localization, changeDetector, viewContext, viewState) {
10477
10547
  super();
10478
10548
  this.localization = localization;
@@ -10496,11 +10566,13 @@ class ConfigurationViewBase extends SchedulerView {
10496
10566
  }
10497
10567
  _showToolbar;
10498
10568
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfigurationViewBase, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }], target: i0.ɵɵFactoryTarget.Directive });
10499
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ConfigurationViewBase, inputs: { slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", highlightOngoingEvents: "highlightOngoingEvents", showToolbar: "showToolbar" }, queries: [{ propertyName: "eventTemplate", first: true, predicate: EventTemplateDirective, descendants: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: GroupHeaderTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["content"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
10569
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ConfigurationViewBase, inputs: { hiddenDays: "hiddenDays", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", highlightOngoingEvents: "highlightOngoingEvents", showToolbar: "showToolbar" }, queries: [{ propertyName: "eventTemplate", first: true, predicate: EventTemplateDirective, descendants: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: GroupHeaderTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["content"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
10500
10570
  }
10501
10571
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfigurationViewBase, decorators: [{
10502
10572
  type: Directive
10503
- }], ctorParameters: () => [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }, { type: ViewStateService }], propDecorators: { slotClass: [{
10573
+ }], ctorParameters: () => [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }, { type: ViewStateService }], propDecorators: { hiddenDays: [{
10574
+ type: Input
10575
+ }], slotClass: [{
10504
10576
  type: Input
10505
10577
  }], eventClass: [{
10506
10578
  type: Input
@@ -10536,6 +10608,10 @@ function flattenGroupsAndAddIds(scope) {
10536
10608
  return function* flattenGroups(groups) {
10537
10609
  for (let index = 0; index < groups.length; index++) {
10538
10610
  const groupItem = groups[index];
10611
+ const dayOfWeek = groupItem.items[0]?.startDate?.getDay();
10612
+ if (scope.hiddenDays?.includes(dayOfWeek)) {
10613
+ continue;
10614
+ }
10539
10615
  yield {
10540
10616
  type: "group",
10541
10617
  dataItem: groupItem,
@@ -10573,13 +10649,15 @@ class TaskCollection {
10573
10649
  end;
10574
10650
  events;
10575
10651
  counter; // used to give unique ids to event elements
10652
+ hiddenDays;
10576
10653
  static empty() {
10577
10654
  return (new EmptyIterator());
10578
10655
  }
10579
- constructor(start, end, events) {
10656
+ constructor(start, end, events, hiddenDays) {
10580
10657
  this.start = start;
10581
10658
  this.end = end;
10582
10659
  this.events = events;
10660
+ this.hiddenDays = hiddenDays || [];
10583
10661
  this.counter = seed;
10584
10662
  seed++;
10585
10663
  this.createIterator = compose(flattenGroupsAndAddIds(this), processEvents(this.start, this.end));
@@ -10748,7 +10826,7 @@ function groupByResource(groupedResources, resourceGroups, dateRange) {
10748
10826
  /**
10749
10827
  * @hidden
10750
10828
  */
10751
- function groupEvents(items, { taskResources, resourceGroups, spans, allResources, dateRange }) {
10829
+ function groupEvents(items, { taskResources, resourceGroups, spans, allResources, dateRange, hiddenDays }) {
10752
10830
  const groups = resourceGroups || [{}];
10753
10831
  const periodStart = toUTCDate(dateRange.start);
10754
10832
  const periodEnd = toUTCDate(dateRange.end);
@@ -10771,7 +10849,7 @@ function groupEvents(items, { taskResources, resourceGroups, spans, allResources
10771
10849
  if (resourceGroups) {
10772
10850
  return groupByResource(taskResources, groups, dateRange);
10773
10851
  }
10774
- groups[0].tasks = new TaskCollection(periodStart, periodEnd, splitTasks(periodStart, periodEnd, groups[0].tasks || []));
10852
+ groups[0].tasks = new TaskCollection(periodStart, periodEnd, splitTasks(periodStart, periodEnd, groups[0].tasks || []), hiddenDays);
10775
10853
  return groups;
10776
10854
  }
10777
10855
 
@@ -11295,6 +11373,7 @@ class AgendaViewInternalComponent {
11295
11373
  pdfService;
11296
11374
  localization;
11297
11375
  selectedDate;
11376
+ hiddenDays;
11298
11377
  eventTemplate;
11299
11378
  slotClass;
11300
11379
  eventClass;
@@ -11364,7 +11443,7 @@ class AgendaViewInternalComponent {
11364
11443
  this.subs.add(this.pdfService.createElement.subscribe(this.createPDFElement.bind(this)));
11365
11444
  }
11366
11445
  ngOnChanges(changes) {
11367
- if (anyChanged(['selectedDateFormat', 'selectedShortDateFormat', 'numberOfDays'], changes)) {
11446
+ if (anyChanged(['selectedDateFormat', 'selectedShortDateFormat', 'numberOfDays', 'hiddenDays'], changes)) {
11368
11447
  this.viewState.notifyDateRange(this.dateRange(this.selectedDate));
11369
11448
  }
11370
11449
  }
@@ -11478,7 +11557,8 @@ class AgendaViewInternalComponent {
11478
11557
  resourceGroups,
11479
11558
  allResources: this.resources,
11480
11559
  spans: this.spans,
11481
- dateRange: this.range
11560
+ dateRange: this.range,
11561
+ hiddenDays: this.hiddenDays
11482
11562
  });
11483
11563
  return eventGroups;
11484
11564
  }
@@ -11592,7 +11672,7 @@ class AgendaViewInternalComponent {
11592
11672
  }
11593
11673
  }
11594
11674
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgendaViewInternalComponent, deps: [{ token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: PDFService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
11595
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AgendaViewInternalComponent, isStandalone: true, selector: "agenda-view-internal", inputs: { eventTemplate: "eventTemplate", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", agendaTimeTemplate: "agendaTimeTemplate", agendaDateTemplate: "agendaDateTemplate", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfDays: "numberOfDays" }, viewQueries: [{ propertyName: "headerWrap", first: true, predicate: ["headerWrap"], descendants: true, read: ElementRef, static: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
11675
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: AgendaViewInternalComponent, isStandalone: true, selector: "agenda-view-internal", inputs: { hiddenDays: "hiddenDays", eventTemplate: "eventTemplate", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", agendaTimeTemplate: "agendaTimeTemplate", agendaDateTemplate: "agendaDateTemplate", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfDays: "numberOfDays" }, viewQueries: [{ propertyName: "headerWrap", first: true, predicate: ["headerWrap"], descendants: true, read: ElementRef, static: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
11596
11676
  <table class="k-scheduler-layout k-scheduler-agendaview" role="grid">
11597
11677
  <tbody role="none">
11598
11678
  <tr class="k-scheduler-head">
@@ -11651,7 +11731,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
11651
11731
  standalone: true,
11652
11732
  imports: [AgendaHeaderComponent, AgendaListComponent, AsyncPipe]
11653
11733
  }]
11654
- }], ctorParameters: () => [{ type: ViewContextService }, { type: ViewStateService }, { type: i4.IntlService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: PDFService }, { type: i1$1.LocalizationService }], propDecorators: { eventTemplate: [{
11734
+ }], ctorParameters: () => [{ type: ViewContextService }, { type: ViewStateService }, { type: i4.IntlService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: PDFService }, { type: i1$1.LocalizationService }], propDecorators: { hiddenDays: [{
11735
+ type: Input
11736
+ }], eventTemplate: [{
11655
11737
  type: Input
11656
11738
  }], slotClass: [{
11657
11739
  type: Input
@@ -11737,6 +11819,7 @@ class AgendaViewComponent extends ConfigurationViewBase {
11737
11819
  <ng-template #content>
11738
11820
  <agenda-view-internal
11739
11821
  [numberOfDays]="numberOfDays"
11822
+ [hiddenDays]="viewHiddenDays"
11740
11823
  [eventTemplate]="eventTemplate?.templateRef"
11741
11824
  [slotClass]="viewSlotClass"
11742
11825
  [eventClass]="viewEventClass"
@@ -11747,7 +11830,7 @@ class AgendaViewComponent extends ConfigurationViewBase {
11747
11830
  [selectedShortDateFormat]="selectedShortDateFormat">
11748
11831
  </agenda-view-internal>
11749
11832
  </ng-template>
11750
- `, isInline: true, dependencies: [{ kind: "component", type: AgendaViewInternalComponent, selector: "agenda-view-internal", inputs: ["eventTemplate", "slotClass", "eventClass", "eventStyles", "agendaTimeTemplate", "agendaDateTemplate", "selectedDateFormat", "selectedShortDateFormat", "numberOfDays"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11833
+ `, isInline: true, dependencies: [{ kind: "component", type: AgendaViewInternalComponent, selector: "agenda-view-internal", inputs: ["hiddenDays", "eventTemplate", "slotClass", "eventClass", "eventStyles", "agendaTimeTemplate", "agendaDateTemplate", "selectedDateFormat", "selectedShortDateFormat", "numberOfDays"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
11751
11834
  }
11752
11835
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AgendaViewComponent, decorators: [{
11753
11836
  type: Component,
@@ -11762,6 +11845,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
11762
11845
  <ng-template #content>
11763
11846
  <agenda-view-internal
11764
11847
  [numberOfDays]="numberOfDays"
11848
+ [hiddenDays]="viewHiddenDays"
11765
11849
  [eventTemplate]="eventTemplate?.templateRef"
11766
11850
  [slotClass]="viewSlotClass"
11767
11851
  [eventClass]="viewEventClass"
@@ -12330,7 +12414,7 @@ const last = (arr) => arr[arr.length - 1];
12330
12414
  /**
12331
12415
  * @hidden
12332
12416
  */
12333
- const createTasks$3 = (periodStart, periodEnd, items, ranges) => {
12417
+ const createTasks$3 = (periodStart, periodEnd, items, ranges, hiddenDays = []) => {
12334
12418
  const tasks = [];
12335
12419
  const utcStart = toUTCDate(periodStart);
12336
12420
  const utcEnd = toUTCDate(periodEnd);
@@ -12343,6 +12427,9 @@ const createTasks$3 = (periodStart, periodEnd, items, ranges) => {
12343
12427
  if (intersects(startTime, endTime, utcStart, utcEnd)) {
12344
12428
  for (let rangeIdx = 0; rangeIdx < ranges.length; rangeIdx++) {
12345
12429
  const range = ranges[rangeIdx];
12430
+ if (!range[0]) {
12431
+ continue;
12432
+ }
12346
12433
  const rangeStart = toUTCDate(range[0]);
12347
12434
  const rangeEnd = addUTCDays(toUTCDate(last(range)), 1);
12348
12435
  if (intersects(startTime, endTime, rangeStart, rangeEnd)) {
@@ -12359,6 +12446,12 @@ const createTasks$3 = (periodStart, periodEnd, items, ranges) => {
12359
12446
  };
12360
12447
  task.head = task.endTime > rangeEnd;
12361
12448
  task.tail = task.startTime < rangeStart;
12449
+ if (hiddenDays.includes(task.endTime.getDay())) {
12450
+ task.head = true;
12451
+ }
12452
+ if (hiddenDays.includes(task.startTime.getDay())) {
12453
+ task.tail = true;
12454
+ }
12362
12455
  let slotMatch;
12363
12456
  range.forEach(slot => {
12364
12457
  const slotStartTime = slot;
@@ -12368,6 +12461,27 @@ const createTasks$3 = (periodStart, periodEnd, items, ranges) => {
12368
12461
  }
12369
12462
  });
12370
12463
  task.isMultiDay = task.event.end > slotMatch?.end || task.head || task.tail;
12464
+ const eventStart = task.event.start;
12465
+ const eventEnd = task.event.end;
12466
+ let sameDate = eventStart.getFullYear() === eventEnd.getFullYear() &&
12467
+ eventStart.getMonth() === eventEnd.getMonth() &&
12468
+ eventStart.getDate() === eventEnd.getDate();
12469
+ // Also treat as same date if end is at 00:00:00 the following day
12470
+ if (!sameDate &&
12471
+ eventEnd.getHours() === 0 &&
12472
+ eventEnd.getMinutes() === 0 &&
12473
+ eventEnd.getSeconds() === 0 &&
12474
+ eventEnd.getMilliseconds() === 0) {
12475
+ const nextDay = new Date(eventStart);
12476
+ nextDay.setDate(nextDay.getDate() + 1);
12477
+ sameDate = nextDay.getFullYear() === eventEnd.getFullYear() &&
12478
+ nextDay.getMonth() === eventEnd.getMonth() &&
12479
+ nextDay.getDate() === eventEnd.getDate();
12480
+ }
12481
+ // Skip task if it starts and ends on the same date and that date is a hidden day
12482
+ if (hiddenDays?.length > 0 && sameDate && hiddenDays.includes(eventStart.getDay())) {
12483
+ continue;
12484
+ }
12371
12485
  tasks.push(task);
12372
12486
  }
12373
12487
  }
@@ -14229,6 +14343,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
14229
14343
  * @hidden
14230
14344
  */
14231
14345
  class MonthViewRendererComponent extends BaseView {
14346
+ hiddenDays;
14232
14347
  monthDaySlotTemplate;
14233
14348
  highlightOngoingEvents;
14234
14349
  type;
@@ -14246,6 +14361,7 @@ class MonthViewRendererComponent extends BaseView {
14246
14361
  * Determines the displayed date range and formats the selected date (for Month and Multi-Week views)
14247
14362
  */
14248
14363
  dateRangeFn;
14364
+ moreEventsClick = new EventEmitter();
14249
14365
  resizeHintFormat = { skeleton: 'Md' };
14250
14366
  weeks = [];
14251
14367
  eventElements;
@@ -14259,7 +14375,7 @@ class MonthViewRendererComponent extends BaseView {
14259
14375
  this.updateOngoingEvents = this.updateOngoingEvents.bind(this);
14260
14376
  }
14261
14377
  ngOnChanges(changes) {
14262
- if (isChanged('weekStart', changes)) {
14378
+ if (isChanged('weekStart', changes) || isChanged('hiddenDays', changes)) {
14263
14379
  this.onSelectDate(this.selectedDate);
14264
14380
  }
14265
14381
  super.ngOnChanges(changes);
@@ -14336,7 +14452,7 @@ class MonthViewRendererComponent extends BaseView {
14336
14452
  }
14337
14453
  createTasks(items, dateRange) {
14338
14454
  this.weeks = this.createDaySlots(dateRange);
14339
- return createTasks$3(dateRange.start, dateRange.end, items, this.weeks);
14455
+ return createTasks$3(dateRange.start, dateRange.end, items, this.weeks, this.hiddenDays);
14340
14456
  }
14341
14457
  onTasksChange() {
14342
14458
  updateTaskData(this.tasks);
@@ -14364,8 +14480,25 @@ class MonthViewRendererComponent extends BaseView {
14364
14480
  if (eventSlot && navigateToDay) {
14365
14481
  const index = eventSlot.getAttribute('data-slot-index');
14366
14482
  const slot = this.slotService.slotByIndex(index);
14483
+ const [resourceIndex, rangeIndex] = index.split(':').map(part => parseInt(part, 10));
14484
+ const group = this.slotService['groups'][resourceIndex];
14485
+ const range = group.dayRanges[rangeIndex];
14367
14486
  this.zone.run(() => {
14368
- this.viewState.navigateTo({ viewName: 'day', date: toLocalDate(slot.start) });
14487
+ const moreEventsEvent = new MoreEventsClickEvent();
14488
+ const filterSlotEvents = (isHidden) => range.items
14489
+ .filter(viewItem => {
14490
+ const itemData = viewItem.item.data[resourceIndex];
14491
+ return itemData.hidden === isHidden &&
14492
+ viewItem.item.startTime < slot.end &&
14493
+ viewItem.item.endTime > slot.start;
14494
+ })
14495
+ .map(viewItem => viewItem.item.event);
14496
+ moreEventsEvent.displayedEvents = filterSlotEvents(false);
14497
+ moreEventsEvent.moreEvents = filterSlotEvents(true);
14498
+ this.moreEventsClick.emit(moreEventsEvent);
14499
+ if (!moreEventsEvent.isDefaultPrevented()) {
14500
+ this.viewState.navigateTo({ viewName: 'day', date: toLocalDate(slot.start) });
14501
+ }
14369
14502
  });
14370
14503
  return;
14371
14504
  }
@@ -14440,14 +14573,16 @@ class MonthViewRendererComponent extends BaseView {
14440
14573
  const week = [];
14441
14574
  weeks.push(week);
14442
14575
  for (let dayIdx = 0; dayIdx < DAYS_IN_WEEK_COUNT; dayIdx++) {
14443
- week.push(date);
14576
+ if ((this.hiddenDays || []).indexOf(date.getDay()) === -1) {
14577
+ week.push(date);
14578
+ }
14444
14579
  date = addDays(date, 1);
14445
14580
  }
14446
14581
  }
14447
14582
  return weeks;
14448
14583
  }
14449
14584
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MonthViewRendererComponent, deps: [{ token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }, { token: MonthSlotService }, { token: i0.NgZone }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: PDFService }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i7.ScrollbarWidthService }], target: i0.ɵɵFactoryTarget.Component });
14450
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MonthViewRendererComponent, isStandalone: true, selector: "month-view", inputs: { monthDaySlotTemplate: "monthDaySlotTemplate", highlightOngoingEvents: "highlightOngoingEvents", type: "type", eventsPerDay: "eventsPerDay", adaptiveSlotHeight: "adaptiveSlotHeight", numberOfWeeks: "numberOfWeeks", newRange: "newRange", dateRangeFn: "dateRangeFn" }, providers: [
14585
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MonthViewRendererComponent, isStandalone: true, selector: "month-view", inputs: { hiddenDays: "hiddenDays", monthDaySlotTemplate: "monthDaySlotTemplate", highlightOngoingEvents: "highlightOngoingEvents", type: "type", eventsPerDay: "eventsPerDay", adaptiveSlotHeight: "adaptiveSlotHeight", numberOfWeeks: "numberOfWeeks", newRange: "newRange", dateRangeFn: "dateRangeFn" }, outputs: { moreEventsClick: "moreEventsClick" }, providers: [
14451
14586
  MonthSlotService
14452
14587
  ], viewQueries: [{ propertyName: "eventElements", predicate: MonthViewItemComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
14453
14588
  <table class="k-scheduler-layout k-scheduler-monthview">
@@ -14827,7 +14962,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
14827
14962
  standalone: true,
14828
14963
  imports: [NgTemplateOutlet, NgClass, MonthSlotComponent, MonthViewItemComponent, NgStyle, FocusableDirective, HintContainerComponent, ResizeHintComponent, RepeatPipe, ResourceIteratorPipe, DatePipe, AsyncPipe]
14829
14964
  }]
14830
- }], ctorParameters: () => [{ type: ViewContextService }, { type: ViewStateService }, { type: i4.IntlService }, { type: MonthSlotService }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: PDFService }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i7.ScrollbarWidthService }], propDecorators: { monthDaySlotTemplate: [{
14965
+ }], ctorParameters: () => [{ type: ViewContextService }, { type: ViewStateService }, { type: i4.IntlService }, { type: MonthSlotService }, { type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: PDFService }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i7.ScrollbarWidthService }], propDecorators: { hiddenDays: [{
14966
+ type: Input
14967
+ }], monthDaySlotTemplate: [{
14831
14968
  type: Input
14832
14969
  }], highlightOngoingEvents: [{
14833
14970
  type: Input
@@ -14843,6 +14980,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
14843
14980
  type: Input
14844
14981
  }], dateRangeFn: [{
14845
14982
  type: Input
14983
+ }], moreEventsClick: [{
14984
+ type: Output
14846
14985
  }], eventElements: [{
14847
14986
  type: ViewChildren,
14848
14987
  args: [MonthViewItemComponent]
@@ -14903,6 +15042,12 @@ class MonthViewComponent extends ConfigurationViewBase {
14903
15042
  * @default '{0:y}'
14904
15043
  */
14905
15044
  selectedShortDateFormat = '{0:y}';
15045
+ /**
15046
+ * Fires when the **more events** button in the Month view is clicked.
15047
+ * Allows you to prevent the default navigation to the Day view or provide custom handling.
15048
+ * The event provides arrays of `displayedEvents` and `moreEvents` for the clicked day.
15049
+ */
15050
+ moreEventsClick = new EventEmitter();
14906
15051
  monthDaySlotTemplate;
14907
15052
  /**
14908
15053
  * The invariant name for this view.
@@ -14944,7 +15089,7 @@ class MonthViewComponent extends ConfigurationViewBase {
14944
15089
  return firstDayOfMonth(addMonths(date, direction));
14945
15090
  }
14946
15091
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MonthViewComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }], target: i0.ɵɵFactoryTarget.Component });
14947
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MonthViewComponent, isStandalone: true, selector: "kendo-scheduler-month-view", inputs: { eventsPerDay: "eventsPerDay", eventHeight: "eventHeight", adaptiveSlotHeight: "adaptiveSlotHeight", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, providers: [{
15092
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MonthViewComponent, isStandalone: true, selector: "kendo-scheduler-month-view", inputs: { eventsPerDay: "eventsPerDay", eventHeight: "eventHeight", adaptiveSlotHeight: "adaptiveSlotHeight", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat" }, outputs: { moreEventsClick: "moreEventsClick" }, providers: [{
14948
15093
  provide: SchedulerView,
14949
15094
  useExisting: forwardRef(() => MonthViewComponent)
14950
15095
  }], queries: [{ propertyName: "monthDaySlotTemplate", first: true, predicate: MonthDaySlotTemplateDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
@@ -14952,6 +15097,7 @@ class MonthViewComponent extends ConfigurationViewBase {
14952
15097
  <month-view
14953
15098
  type="month"
14954
15099
  [eventHeight]="viewEventHeight"
15100
+ [hiddenDays]="viewHiddenDays"
14955
15101
  [adaptiveSlotHeight]="adaptiveSlotHeight"
14956
15102
  [eventsPerDay]="eventsPerDay"
14957
15103
  [eventTemplate]="eventTemplate?.templateRef"
@@ -14965,10 +15111,11 @@ class MonthViewComponent extends ConfigurationViewBase {
14965
15111
  [highlightOngoingEvents]="viewHighlightOngoingEvents"
14966
15112
  [weekStart]="viewWeekStart"
14967
15113
  [dateRangeFn]="dateRange"
14968
- [newRange]="newRange">
15114
+ [newRange]="newRange"
15115
+ (moreEventsClick)="moreEventsClick.emit($event)">
14969
15116
  </month-view>
14970
15117
  </ng-template>
14971
- `, isInline: true, dependencies: [{ kind: "component", type: MonthViewRendererComponent, selector: "month-view", inputs: ["monthDaySlotTemplate", "highlightOngoingEvents", "type", "eventsPerDay", "adaptiveSlotHeight", "numberOfWeeks", "newRange", "dateRangeFn"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15118
+ `, isInline: true, dependencies: [{ kind: "component", type: MonthViewRendererComponent, selector: "month-view", inputs: ["hiddenDays", "monthDaySlotTemplate", "highlightOngoingEvents", "type", "eventsPerDay", "adaptiveSlotHeight", "numberOfWeeks", "newRange", "dateRangeFn"], outputs: ["moreEventsClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
14972
15119
  }
14973
15120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MonthViewComponent, decorators: [{
14974
15121
  type: Component,
@@ -14984,6 +15131,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
14984
15131
  <month-view
14985
15132
  type="month"
14986
15133
  [eventHeight]="viewEventHeight"
15134
+ [hiddenDays]="viewHiddenDays"
14987
15135
  [adaptiveSlotHeight]="adaptiveSlotHeight"
14988
15136
  [eventsPerDay]="eventsPerDay"
14989
15137
  [eventTemplate]="eventTemplate?.templateRef"
@@ -14997,7 +15145,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
14997
15145
  [highlightOngoingEvents]="viewHighlightOngoingEvents"
14998
15146
  [weekStart]="viewWeekStart"
14999
15147
  [dateRangeFn]="dateRange"
15000
- [newRange]="newRange">
15148
+ [newRange]="newRange"
15149
+ (moreEventsClick)="moreEventsClick.emit($event)">
15001
15150
  </month-view>
15002
15151
  </ng-template>
15003
15152
  `,
@@ -15014,6 +15163,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
15014
15163
  type: Input
15015
15164
  }], selectedShortDateFormat: [{
15016
15165
  type: Input
15166
+ }], moreEventsClick: [{
15167
+ type: Output
15017
15168
  }], monthDaySlotTemplate: [{
15018
15169
  type: ContentChild,
15019
15170
  args: [MonthDaySlotTemplateDirective, { static: false }]
@@ -15128,6 +15279,7 @@ class MultiWeekViewComponent extends ConfigurationViewBase {
15128
15279
  <month-view
15129
15280
  type="multiWeek"
15130
15281
  [eventHeight]="viewEventHeight"
15282
+ [hiddenDays]="viewHiddenDays"
15131
15283
  [adaptiveSlotHeight]="adaptiveSlotHeight"
15132
15284
  [eventsPerDay]="eventsPerDay"
15133
15285
  [eventTemplate]="eventTemplate?.templateRef"
@@ -15145,7 +15297,7 @@ class MultiWeekViewComponent extends ConfigurationViewBase {
15145
15297
  [newRange]="newRange">
15146
15298
  </month-view>
15147
15299
  </ng-template>
15148
- `, isInline: true, dependencies: [{ kind: "component", type: MonthViewRendererComponent, selector: "month-view", inputs: ["monthDaySlotTemplate", "highlightOngoingEvents", "type", "eventsPerDay", "adaptiveSlotHeight", "numberOfWeeks", "newRange", "dateRangeFn"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15300
+ `, isInline: true, dependencies: [{ kind: "component", type: MonthViewRendererComponent, selector: "month-view", inputs: ["hiddenDays", "monthDaySlotTemplate", "highlightOngoingEvents", "type", "eventsPerDay", "adaptiveSlotHeight", "numberOfWeeks", "newRange", "dateRangeFn"], outputs: ["moreEventsClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15149
15301
  }
15150
15302
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MultiWeekViewComponent, decorators: [{
15151
15303
  type: Component,
@@ -15161,6 +15313,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
15161
15313
  <month-view
15162
15314
  type="multiWeek"
15163
15315
  [eventHeight]="viewEventHeight"
15316
+ [hiddenDays]="viewHiddenDays"
15164
15317
  [adaptiveSlotHeight]="adaptiveSlotHeight"
15165
15318
  [eventsPerDay]="eventsPerDay"
15166
15319
  [eventTemplate]="eventTemplate?.templateRef"
@@ -16016,6 +16169,7 @@ class DayTimeResourceGroup {
16016
16169
  * @hidden
16017
16170
  */
16018
16171
  class DayTimeSlotService extends BaseSlotService {
16172
+ hiddenDays = [];
16019
16173
  layoutDays(eventHeight = 25) {
16020
16174
  this.groups.forEach((group) => group.forEachDateRange(range => range?.slots.forEach(slot => {
16021
16175
  slot.element.nativeElement.style.height = '';
@@ -16230,7 +16384,7 @@ const isMultiDay = ({ start, end }) => {
16230
16384
  };
16231
16385
  //check start and times or update day ranges to have them
16232
16386
  /** @hidden */
16233
- const createTasks$2 = (periodStart, periodEnd, items, ranges) => {
16387
+ const createTasks$2 = (periodStart, periodEnd, items, ranges, hiddenDays = []) => {
16234
16388
  const tasks = [];
16235
16389
  const utcStart = toUTCDate(periodStart);
16236
16390
  const utcEnd = toUTCDate(periodEnd);
@@ -16266,6 +16420,12 @@ const createTasks$2 = (periodStart, periodEnd, items, ranges) => {
16266
16420
  const previousRange = ranges[rangeIndex - 1];
16267
16421
  task.head = (nextRange ? nextRange.start : utcEnd) < endTime;
16268
16422
  task.tail = startTime < (previousRange ? previousRange.end : utcStart);
16423
+ if (hiddenDays.includes(task.endTime.getDay())) {
16424
+ task.head = true;
16425
+ }
16426
+ if (hiddenDays.includes(task.startTime.getDay())) {
16427
+ task.tail = true;
16428
+ }
16269
16429
  }
16270
16430
  }
16271
16431
  }
@@ -16560,6 +16720,7 @@ class DayTimeViewComponent extends BaseView {
16560
16720
  currentDate;
16561
16721
  verticalTime = true;
16562
16722
  initialUpdate = true;
16723
+ dates = [];
16563
16724
  constructor(changeDetector, viewContext, viewState, intl, slotService, zone, renderer, element, pdfService, localization, scrollBarWidthService) {
16564
16725
  super(viewContext, viewState, intl, slotService, zone, renderer, element, pdfService, localization, changeDetector, scrollBarWidthService);
16565
16726
  this.changeDetector = changeDetector;
@@ -16618,7 +16779,7 @@ class DayTimeViewComponent extends BaseView {
16618
16779
  let date;
16619
16780
  if (typeof time === 'string') {
16620
16781
  const scrollDate = this.intl.parseDate(time);
16621
- if (!scrollDate) {
16782
+ if (!(scrollDate && this.daySlots[0]?.start)) {
16622
16783
  return;
16623
16784
  }
16624
16785
  date = toUTCTime(this.daySlots[0].start, scrollDate);
@@ -16786,19 +16947,31 @@ class DayTimeViewComponent extends BaseView {
16786
16947
  const shortText = this.intl.format(this.selectedShortDateFormat, start, rangeEnd);
16787
16948
  return { start, end, text, shortText };
16788
16949
  }
16789
- createDaySlots() {
16950
+ createDaySlots(multiDayEnd) {
16951
+ if (!multiDayEnd) {
16952
+ this.dates = [];
16953
+ }
16790
16954
  let current = this.getStartDate(this.selectedDate);
16791
- const end = this.getEndDate(current, this.numberOfDays);
16792
- const dates = [];
16955
+ const end = multiDayEnd || this.getEndDate(current, this.numberOfDays);
16956
+ const hiddenDays = this.slotService.hiddenDays;
16793
16957
  while (current < end) {
16794
16958
  const next = addDays(current, 1);
16795
- dates.push({
16796
- start: current,
16797
- end: next
16798
- });
16959
+ const isTimelineView = this.name === 'timelineWeek' || this.name === 'timelineMonth';
16960
+ const isDisplayedDay = hiddenDays.indexOf(current.getDay()) === -1;
16961
+ const hasSpace = isTimelineView || this.dates.length < this.numberOfDays;
16962
+ if (isDisplayedDay && hasSpace) {
16963
+ this.dates.push({
16964
+ start: current,
16965
+ end: next
16966
+ });
16967
+ }
16799
16968
  current = next;
16800
16969
  }
16801
- return dates;
16970
+ if (this.name === 'multiDay' && !allDaysHidden(hiddenDays) && this.dates.length < this.numberOfDays) {
16971
+ const updatedEnd = addDays(end, this.numberOfDays - this.dates.length);
16972
+ return this.createDaySlots(updatedEnd);
16973
+ }
16974
+ return this.dates;
16802
16975
  }
16803
16976
  createTimeSlots() {
16804
16977
  return createTimeSlots(this.intl, {
@@ -17024,6 +17197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
17024
17197
  * @hidden
17025
17198
  */
17026
17199
  class MultiDayViewRendererComponent extends DayTimeViewComponent {
17200
+ hiddenDays;
17027
17201
  allDaySlot;
17028
17202
  name = 'day';
17029
17203
  slotFill;
@@ -17065,12 +17239,16 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17065
17239
  if (changes.slotFill) {
17066
17240
  this.changes.next(null);
17067
17241
  }
17242
+ if (changes.hiddenDays) {
17243
+ this.slotService.hiddenDays = this.hiddenDays || [];
17244
+ }
17068
17245
  if (anyChanged(['startTime', 'endTime', 'showWorkHours', 'workDayStart',
17069
17246
  'workDayEnd', 'workWeekStart', 'workWeekEnd', 'allDaySlot'], changes)) {
17070
17247
  this.viewRangeChange.next(null);
17071
17248
  }
17072
17249
  if (isChanged('numberOfDays', changes, true /* skipFirstChange */) ||
17073
- isChanged('weekStart', changes)) {
17250
+ isChanged('weekStart', changes) ||
17251
+ isChanged('hiddenDays', changes)) {
17074
17252
  this.daySlots = this.createDaySlots();
17075
17253
  this.viewState.notifyDateRange(this.dateRange());
17076
17254
  }
@@ -17101,6 +17279,9 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17101
17279
  });
17102
17280
  }
17103
17281
  }
17282
+ isMiddleSlot(index) {
17283
+ return index + 1 < this.timeSlots.length && !this.timeSlots[index + 1].isMajor;
17284
+ }
17104
17285
  createTasks(items, dateRange) {
17105
17286
  const startTimeSlot = this.timeSlots[0];
17106
17287
  const endTimeSlot = this.timeSlots[this.timeSlots.length - 1].end;
@@ -17109,13 +17290,16 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17109
17290
  start: toUTCTime(daySlot.start, startTimeSlot.start),
17110
17291
  end: nextDateEnd ? toUTCDate(daySlot.end) : toUTCTime(daySlot.start, endTimeSlot)
17111
17292
  }));
17112
- return createTasks$2(dateRange.start, dateRange.end, items, ranges);
17293
+ return createTasks$2(dateRange.start, dateRange.end, items, ranges, this.hiddenDays || []);
17113
17294
  }
17114
17295
  onTasksChange() {
17115
17296
  this.items.next(this.tasks.filter(task => !task.isAllDay));
17116
17297
  this.allDayItems.next(this.tasks.filter(task => task.isAllDay));
17117
17298
  }
17118
17299
  reflow() {
17300
+ if (allDaysHidden(this.hiddenDays)) {
17301
+ return;
17302
+ }
17119
17303
  const slotService = this.slotService;
17120
17304
  if (!this.verticalResources.length) {
17121
17305
  this.updateContentHeight();
@@ -17236,11 +17420,8 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17236
17420
  }
17237
17421
  return 0;
17238
17422
  }
17239
- isMiddleSlot(index) {
17240
- return index + 1 < this.timeSlots.length && !this.timeSlots[index + 1].isMajor;
17241
- }
17242
17423
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MultiDayViewRendererComponent, deps: [{ token: i1$1.LocalizationService }, { token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }, { token: DayTimeSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: PDFService }, { token: i7.ScrollbarWidthService }], target: i0.ɵɵFactoryTarget.Component });
17243
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MultiDayViewRendererComponent, isStandalone: true, selector: "multi-day-view", inputs: { allDaySlot: "allDaySlot", name: "name", slotFill: "slotFill", allDaySlotTemplate: "allDaySlotTemplate", allDayEventTemplate: "allDayEventTemplate" }, providers: [
17424
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MultiDayViewRendererComponent, isStandalone: true, selector: "multi-day-view", inputs: { hiddenDays: "hiddenDays", allDaySlot: "allDaySlot", name: "name", slotFill: "slotFill", allDaySlotTemplate: "allDaySlotTemplate", allDayEventTemplate: "allDayEventTemplate" }, providers: [
17244
17425
  DayTimeSlotService
17245
17426
  ], viewQueries: [{ propertyName: "headerHintContainer", first: true, predicate: ["headerHintContainer"], descendants: true }, { propertyName: "dayCells", predicate: ["allDayCell"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
17246
17427
  <table class="k-scheduler-layout" role="presentation" [ngClass]="classNames">
@@ -17964,7 +18145,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
17964
18145
  standalone: true,
17965
18146
  imports: [NgClass, NgTemplateOutlet, DaySlotDirective, DayTimeViewItemComponent, NgStyle, FocusableDirective, HintContainerComponent, ResizeHintComponent, TimeSlotDirective, ResourceIteratorPipe, DatePipe, AsyncPipe]
17966
18147
  }]
17967
- }], ctorParameters: () => [{ type: i1$1.LocalizationService }, { type: ViewContextService }, { type: ViewStateService }, { type: i4.IntlService }, { type: DayTimeSlotService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: PDFService }, { type: i7.ScrollbarWidthService }], propDecorators: { allDaySlot: [{
18148
+ }], ctorParameters: () => [{ type: i1$1.LocalizationService }, { type: ViewContextService }, { type: ViewStateService }, { type: i4.IntlService }, { type: DayTimeSlotService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: PDFService }, { type: i7.ScrollbarWidthService }], propDecorators: { hiddenDays: [{
18149
+ type: Input
18150
+ }], allDaySlot: [{
17968
18151
  type: Input
17969
18152
  }], name: [{
17970
18153
  type: Input
@@ -18034,6 +18217,13 @@ class DayViewComponent extends MultiDayViewBase {
18034
18217
  * @default 'day'
18035
18218
  */
18036
18219
  name = 'day';
18220
+ /**
18221
+ * @hidden
18222
+ * Used to override the hiddenDays as this options is not applicable for Day view.
18223
+ */
18224
+ set hiddenDays(_hiddenDays) {
18225
+ // no-op
18226
+ }
18037
18227
  _selectedDateFormat = '{0:D}';
18038
18228
  _selectedShortDateFormat = '{0:d}';
18039
18229
  constructor(localization, changeDetector, viewContext, viewState) {
@@ -18080,7 +18270,7 @@ class DayViewComponent extends MultiDayViewBase {
18080
18270
  <div viewFooter kendoWorkHoursFooter [showWorkHours]="shouldShowWorkHours" (itemClick)="showWorkHours = !shouldShowWorkHours"></div>
18081
18271
  }
18082
18272
  </ng-template>
18083
- `, isInline: true, dependencies: [{ kind: "component", type: MultiDayViewRendererComponent, selector: "multi-day-view", inputs: ["allDaySlot", "name", "slotFill", "allDaySlotTemplate", "allDayEventTemplate"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18273
+ `, isInline: true, dependencies: [{ kind: "component", type: MultiDayViewRendererComponent, selector: "multi-day-view", inputs: ["hiddenDays", "allDaySlot", "name", "slotFill", "allDaySlotTemplate", "allDayEventTemplate"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18084
18274
  }
18085
18275
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DayViewComponent, decorators: [{
18086
18276
  type: Component,
@@ -18184,6 +18374,16 @@ class MultiDayViewComponent extends DayViewComponent {
18184
18374
  * @default 1
18185
18375
  */
18186
18376
  numberOfDays = 1;
18377
+ /**
18378
+ * Specifies the days that will be hidden from the view.
18379
+ * Accepts an array of `Day` enum values.
18380
+ **/
18381
+ set hiddenDays(value) {
18382
+ this._hiddenDays = value;
18383
+ }
18384
+ get hiddenDays() {
18385
+ return this._hiddenDays;
18386
+ }
18187
18387
  /**
18188
18388
  * @hidden
18189
18389
  */
@@ -18207,7 +18407,7 @@ class MultiDayViewComponent extends DayViewComponent {
18207
18407
  super(localization, changeDetector, viewContext, viewState);
18208
18408
  }
18209
18409
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MultiDayViewComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
18210
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MultiDayViewComponent, isStandalone: true, selector: "kendo-scheduler-multi-day-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfDays: "numberOfDays" }, providers: [{
18410
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MultiDayViewComponent, isStandalone: true, selector: "kendo-scheduler-multi-day-view", inputs: { selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", numberOfDays: "numberOfDays", hiddenDays: "hiddenDays" }, providers: [{
18211
18411
  provide: SchedulerView,
18212
18412
  useExisting: forwardRef(() => MultiDayViewComponent)
18213
18413
  }], usesInheritance: true, ngImport: i0, template: `
@@ -18216,6 +18416,7 @@ class MultiDayViewComponent extends DayViewComponent {
18216
18416
  viewName="day"
18217
18417
  [allDaySlot]="allDaySlot"
18218
18418
  [name]="name"
18419
+ [hiddenDays]="viewHiddenDays"
18219
18420
  [numberOfDays]="numberOfDays"
18220
18421
  [eventHeight]="viewEventHeight"
18221
18422
  [currentTimeMarker]="viewCurrentTimeMarker"
@@ -18249,7 +18450,7 @@ class MultiDayViewComponent extends DayViewComponent {
18249
18450
  <div viewFooter kendoWorkHoursFooter [showWorkHours]="shouldShowWorkHours" (itemClick)="showWorkHours = !shouldShowWorkHours"></div>
18250
18451
  }
18251
18452
  </ng-template>
18252
- `, isInline: true, dependencies: [{ kind: "component", type: MultiDayViewRendererComponent, selector: "multi-day-view", inputs: ["allDaySlot", "name", "slotFill", "allDaySlotTemplate", "allDayEventTemplate"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18453
+ `, isInline: true, dependencies: [{ kind: "component", type: MultiDayViewRendererComponent, selector: "multi-day-view", inputs: ["hiddenDays", "allDaySlot", "name", "slotFill", "allDaySlotTemplate", "allDayEventTemplate"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18253
18454
  }
18254
18455
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MultiDayViewComponent, decorators: [{
18255
18456
  type: Component,
@@ -18266,6 +18467,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
18266
18467
  viewName="day"
18267
18468
  [allDaySlot]="allDaySlot"
18268
18469
  [name]="name"
18470
+ [hiddenDays]="viewHiddenDays"
18269
18471
  [numberOfDays]="numberOfDays"
18270
18472
  [eventHeight]="viewEventHeight"
18271
18473
  [currentTimeMarker]="viewCurrentTimeMarker"
@@ -18309,6 +18511,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
18309
18511
  type: Input
18310
18512
  }], numberOfDays: [{
18311
18513
  type: Input
18514
+ }], hiddenDays: [{
18515
+ type: Input
18312
18516
  }] } });
18313
18517
 
18314
18518
  /**
@@ -18377,6 +18581,7 @@ class WeekViewComponent extends MultiDayViewBase {
18377
18581
  [name]="name"
18378
18582
  [allDaySlot]="viewAllDaySlot"
18379
18583
  [numberOfDays]="7"
18584
+ [hiddenDays]="viewHiddenDays"
18380
18585
  [getStartDate]="getStartDate"
18381
18586
  [eventHeight]="viewEventHeight"
18382
18587
  [currentTimeMarker]="viewCurrentTimeMarker"
@@ -18411,7 +18616,7 @@ class WeekViewComponent extends MultiDayViewBase {
18411
18616
  <div viewFooter kendoWorkHoursFooter [showWorkHours]="shouldShowWorkHours" (itemClick)="showWorkHours = !shouldShowWorkHours"></div>
18412
18617
  }
18413
18618
  </ng-template>
18414
- `, isInline: true, dependencies: [{ kind: "component", type: MultiDayViewRendererComponent, selector: "multi-day-view", inputs: ["allDaySlot", "name", "slotFill", "allDaySlotTemplate", "allDayEventTemplate"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18619
+ `, isInline: true, dependencies: [{ kind: "component", type: MultiDayViewRendererComponent, selector: "multi-day-view", inputs: ["hiddenDays", "allDaySlot", "name", "slotFill", "allDaySlotTemplate", "allDayEventTemplate"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18415
18620
  }
18416
18621
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WeekViewComponent, decorators: [{
18417
18622
  type: Component,
@@ -18428,6 +18633,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
18428
18633
  [name]="name"
18429
18634
  [allDaySlot]="viewAllDaySlot"
18430
18635
  [numberOfDays]="7"
18636
+ [hiddenDays]="viewHiddenDays"
18431
18637
  [getStartDate]="getStartDate"
18432
18638
  [eventHeight]="viewEventHeight"
18433
18639
  [currentTimeMarker]="viewCurrentTimeMarker"
@@ -18537,6 +18743,7 @@ class WorkWeekViewComponent extends WeekViewComponent {
18537
18743
  [allDaySlot]="viewAllDaySlot"
18538
18744
  [name]="name"
18539
18745
  [numberOfDays]="numberOfDays"
18746
+ [hiddenDays]="viewHiddenDays"
18540
18747
  [getStartDate]="getStartDate"
18541
18748
  [getNextDate]="getNextDate"
18542
18749
  [eventHeight]="viewEventHeight"
@@ -18571,7 +18778,7 @@ class WorkWeekViewComponent extends WeekViewComponent {
18571
18778
  <div viewFooter kendoWorkHoursFooter [showWorkHours]="shouldShowWorkHours" (itemClick)="showWorkHours = !shouldShowWorkHours"></div>
18572
18779
  }
18573
18780
  </ng-template>
18574
- `, isInline: true, dependencies: [{ kind: "component", type: MultiDayViewRendererComponent, selector: "multi-day-view", inputs: ["allDaySlot", "name", "slotFill", "allDaySlotTemplate", "allDayEventTemplate"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18781
+ `, isInline: true, dependencies: [{ kind: "component", type: MultiDayViewRendererComponent, selector: "multi-day-view", inputs: ["hiddenDays", "allDaySlot", "name", "slotFill", "allDaySlotTemplate", "allDayEventTemplate"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
18575
18782
  }
18576
18783
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WorkWeekViewComponent, decorators: [{
18577
18784
  type: Component,
@@ -18589,6 +18796,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
18589
18796
  [allDaySlot]="viewAllDaySlot"
18590
18797
  [name]="name"
18591
18798
  [numberOfDays]="numberOfDays"
18799
+ [hiddenDays]="viewHiddenDays"
18592
18800
  [getStartDate]="getStartDate"
18593
18801
  [getNextDate]="getNextDate"
18594
18802
  [eventHeight]="viewEventHeight"
@@ -18659,7 +18867,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
18659
18867
  /**
18660
18868
  * @hidden
18661
18869
  */
18662
- const createTasks$1 = (periodStart, periodEnd, items) => {
18870
+ const createTasks$1 = (periodStart, periodEnd, items, hiddenDays = []) => {
18663
18871
  const tasks = [];
18664
18872
  const utcStart = toUTCDate(periodStart);
18665
18873
  const utcEnd = toUTCDate(periodEnd);
@@ -18681,6 +18889,12 @@ const createTasks$1 = (periodStart, periodEnd, items) => {
18681
18889
  tasks.push(task);
18682
18890
  task.head = task.endTime > utcEnd;
18683
18891
  task.tail = task.startTime < utcStart;
18892
+ if (hiddenDays.includes(task.endTime.getDay())) {
18893
+ task.head = true;
18894
+ }
18895
+ if (hiddenDays.includes(task.startTime.getDay())) {
18896
+ task.tail = true;
18897
+ }
18684
18898
  }
18685
18899
  }
18686
18900
  return tasks;
@@ -18708,6 +18922,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
18708
18922
  * @hidden
18709
18923
  */
18710
18924
  class TimelineMultiDayViewComponent extends DayTimeViewComponent {
18925
+ hiddenDays;
18711
18926
  name = 'timeline';
18712
18927
  columnWidth = 100;
18713
18928
  viewName = 'timeline';
@@ -18730,6 +18945,13 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
18730
18945
  if (changes.columnWidth) {
18731
18946
  this.changes.next(null);
18732
18947
  }
18948
+ if (changes.hiddenDays) {
18949
+ this.slotService.hiddenDays = this.hiddenDays || [];
18950
+ }
18951
+ if (anyChanged(['hiddenDays', 'numberOfDays'], changes)) {
18952
+ this.daySlots = this.createDaySlots();
18953
+ this.viewState.notifyDateRange(this.dateRange(this.selectedDate));
18954
+ }
18733
18955
  super.ngOnChanges(changes);
18734
18956
  }
18735
18957
  reflow() {
@@ -18789,7 +19011,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
18789
19011
  this.headerWrap.nativeElement.scrollLeft = this.content.nativeElement.scrollLeft;
18790
19012
  }
18791
19013
  createTasks(items, dateRange) {
18792
- return createTasks$1(dateRange.start, dateRange.end, items);
19014
+ return createTasks$1(dateRange.start, dateRange.end, items, this.hiddenDays || []);
18793
19015
  }
18794
19016
  onTasksChange() {
18795
19017
  this.items.next(this.tasks);
@@ -18816,7 +19038,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
18816
19038
  return this.headerWrap.nativeElement.querySelector('tr:last-child').offsetTop;
18817
19039
  }
18818
19040
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimelineMultiDayViewComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }, { token: DayTimeSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: PDFService }, { token: i7.ScrollbarWidthService }], target: i0.ɵɵFactoryTarget.Component });
18819
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TimelineMultiDayViewComponent, isStandalone: true, selector: "timeline-multi-day-view", inputs: { name: "name", columnWidth: "columnWidth", viewName: "viewName" }, providers: [
19041
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: TimelineMultiDayViewComponent, isStandalone: true, selector: "timeline-multi-day-view", inputs: { hiddenDays: "hiddenDays", name: "name", columnWidth: "columnWidth", viewName: "viewName" }, providers: [
18820
19042
  DayTimeSlotService
18821
19043
  ], viewQueries: [{ propertyName: "headerTable", first: true, predicate: ["headerTable"], descendants: true }, { propertyName: "verticalResourceRows", predicate: ["verticalResourceRows"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
18822
19044
  <table class="k-scheduler-layout" [ngClass]="classNames">
@@ -19300,7 +19522,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
19300
19522
  standalone: true,
19301
19523
  imports: [NgClass, NgTemplateOutlet, NgStyle, TimeSlotDirective, DayTimeViewItemComponent, FocusableDirective, HintContainerComponent, ResizeHintComponent, ResourceIteratorPipe, DatePipe, AsyncPipe, SortPipe]
19302
19524
  }]
19303
- }], ctorParameters: () => [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }, { type: ViewStateService }, { type: i4.IntlService }, { type: DayTimeSlotService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: PDFService }, { type: i7.ScrollbarWidthService }], propDecorators: { name: [{
19525
+ }], ctorParameters: () => [{ type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }, { type: ViewStateService }, { type: i4.IntlService }, { type: DayTimeSlotService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: PDFService }, { type: i7.ScrollbarWidthService }], propDecorators: { hiddenDays: [{
19526
+ type: Input
19527
+ }], name: [{
19304
19528
  type: Input
19305
19529
  }], columnWidth: [{
19306
19530
  type: Input
@@ -19410,6 +19634,8 @@ class TimelineMonthViewComponent extends TimelineBase {
19410
19634
  <timeline-multi-day-view
19411
19635
  viewName="timeline-month"
19412
19636
  [name]="name"
19637
+ [hiddenDays]="viewHiddenDays"
19638
+ [numberOfDays]="31 * numberOfMonths"
19413
19639
  [getNextDate]="getNextDate"
19414
19640
  [getStartDate]="getStartDate"
19415
19641
  [getEndDate]="getEndDate"
@@ -19443,7 +19669,7 @@ class TimelineMonthViewComponent extends TimelineBase {
19443
19669
  <div viewFooter kendoWorkHoursFooter [showWorkHours]="shouldShowWorkHours" (itemClick)="showWorkHours = !shouldShowWorkHours"></div>
19444
19670
  }
19445
19671
  </ng-template>
19446
- `, isInline: true, dependencies: [{ kind: "component", type: TimelineMultiDayViewComponent, selector: "timeline-multi-day-view", inputs: ["name", "columnWidth", "viewName"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19672
+ `, isInline: true, dependencies: [{ kind: "component", type: TimelineMultiDayViewComponent, selector: "timeline-multi-day-view", inputs: ["hiddenDays", "name", "columnWidth", "viewName"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19447
19673
  }
19448
19674
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimelineMonthViewComponent, decorators: [{
19449
19675
  type: Component,
@@ -19459,6 +19685,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
19459
19685
  <timeline-multi-day-view
19460
19686
  viewName="timeline-month"
19461
19687
  [name]="name"
19688
+ [hiddenDays]="viewHiddenDays"
19689
+ [numberOfDays]="31 * numberOfMonths"
19462
19690
  [getNextDate]="getNextDate"
19463
19691
  [getStartDate]="getStartDate"
19464
19692
  [getEndDate]="getEndDate"
@@ -19570,6 +19798,13 @@ class TimelineViewComponent extends TimelineBase {
19570
19798
  * @default 'timeline'
19571
19799
  */
19572
19800
  name = 'timeline';
19801
+ /**
19802
+ * @hidden
19803
+ * Used to override the hiddenDays as this options is not applicable for Timeline view.
19804
+ */
19805
+ set hiddenDays(_hiddenDays) {
19806
+ // no-op
19807
+ }
19573
19808
  constructor(localization, changeDetector, viewContext, viewState) {
19574
19809
  super(localization, changeDetector, viewContext, viewState);
19575
19810
  }
@@ -19612,7 +19847,7 @@ class TimelineViewComponent extends TimelineBase {
19612
19847
  <div viewFooter kendoWorkHoursFooter [showWorkHours]="shouldShowWorkHours" (itemClick)="showWorkHours = !shouldShowWorkHours"></div>
19613
19848
  }
19614
19849
  </ng-template>
19615
- `, isInline: true, dependencies: [{ kind: "component", type: TimelineMultiDayViewComponent, selector: "timeline-multi-day-view", inputs: ["name", "columnWidth", "viewName"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19850
+ `, isInline: true, dependencies: [{ kind: "component", type: TimelineMultiDayViewComponent, selector: "timeline-multi-day-view", inputs: ["hiddenDays", "name", "columnWidth", "viewName"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19616
19851
  }
19617
19852
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimelineViewComponent, decorators: [{
19618
19853
  type: Component,
@@ -19736,6 +19971,7 @@ class TimelineWeekViewComponent extends TimelineBase {
19736
19971
  <timeline-multi-day-view
19737
19972
  viewName="timeline-week"
19738
19973
  [name]="name"
19974
+ [hiddenDays]="viewHiddenDays"
19739
19975
  [numberOfDays]="7 * numberOfWeeks"
19740
19976
  [getStartDate]="getStartDate"
19741
19977
  [eventHeight]="viewEventHeight"
@@ -19769,7 +20005,7 @@ class TimelineWeekViewComponent extends TimelineBase {
19769
20005
  <div viewFooter kendoWorkHoursFooter [showWorkHours]="shouldShowWorkHours" (itemClick)="showWorkHours = !shouldShowWorkHours"></div>
19770
20006
  }
19771
20007
  </ng-template>
19772
- `, isInline: true, dependencies: [{ kind: "component", type: TimelineMultiDayViewComponent, selector: "timeline-multi-day-view", inputs: ["name", "columnWidth", "viewName"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20008
+ `, isInline: true, dependencies: [{ kind: "component", type: TimelineMultiDayViewComponent, selector: "timeline-multi-day-view", inputs: ["hiddenDays", "name", "columnWidth", "viewName"] }, { kind: "component", type: ViewFooterComponent, selector: "[viewFooter]", inputs: ["items"], outputs: ["itemClick"] }, { kind: "directive", type: WorkHoursFooterDirective, selector: "[kendoWorkHoursFooter]", inputs: ["showWorkHours"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19773
20009
  }
19774
20010
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TimelineWeekViewComponent, decorators: [{
19775
20011
  type: Component,
@@ -19785,6 +20021,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
19785
20021
  <timeline-multi-day-view
19786
20022
  viewName="timeline-week"
19787
20023
  [name]="name"
20024
+ [hiddenDays]="viewHiddenDays"
19788
20025
  [numberOfDays]="7 * numberOfWeeks"
19789
20026
  [getStartDate]="getStartDate"
19790
20027
  [eventHeight]="viewEventHeight"
@@ -20363,6 +20600,13 @@ class YearViewComponent extends ConfigurationViewBase {
20363
20600
  * @default 'year'
20364
20601
  */
20365
20602
  name = 'year';
20603
+ /**
20604
+ * @hidden
20605
+ * Used to override the hiddenDays as this options is not applicable for Year view.
20606
+ */
20607
+ set hiddenDays(_hiddenDays) {
20608
+ // no-op
20609
+ }
20366
20610
  constructor(localization, changeDetector, viewContext, viewState, intl) {
20367
20611
  super(localization, changeDetector, viewContext, viewState);
20368
20612
  this.intl = intl;
@@ -21770,5 +22014,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
21770
22014
  * Generated bundle index. Do not edit.
21771
22015
  */
21772
22016
 
21773
- export { AddEvent, AgendaDateTemplateDirective, AgendaTimeTemplateDirective, AgendaViewComponent, AllDayEventTemplateDirective, AllDaySlotTemplateDirective, BaseEditService, CancelEvent, CreateEvent, CrudOperation, DataBindingDirective, DateChangeEvent, DateHeaderTemplateDirective, DaySlotDirective, DayTimeSlotService, DayTimeViewItemComponent, DayViewComponent, DragEndEvent, DragEvent, DragStartEvent, EditDialogComponent, EditDialogTemplateDirective, EditEvent, EditEventBase, EditMode, EndRuleRadioButtonDirective, EventClickEvent, EventKeydownEvent, EventTemplateDirective, FocusService, FocusableDirective, GroupHeaderTemplateDirective, HintContainerComponent, IsSlotSelectedArgs, KENDO_SCHEDULER, KENDO_SCHEDULERPDF, LoadingComponent, LocalizedMessagesDirective, MajorTimeHeaderTemplateDirective, MinorTimeHeaderTemplateDirective, MonthDaySlotTemplateDirective, MonthViewComponent, MultiDayViewComponent, MultiWeekDaySlotTemplateDirective, MultiWeekViewComponent, MultipleResourceEditorComponent, NavigateEvent, PDFCommandDirective, PDFComponent, PDFExportEvent, PDFModule, PDFService, ReactiveEditingDirective, RecurrenceEditorComponent, RecurrenceEditorCustomMessagesComponent, RecurrenceEditorLocalizedMessagesDirective, RecurrenceEndRuleEditorComponent, RecurrenceFrequencyEditorComponent, RecurrenceIntervalEditorComponent, RecurrenceMonthlyYearlyEditorComponent, RecurrenceWeekdayRuleEditorComponent, RemoveEvent, RepeatOnRadioButtonDirective, RepeatPipe, ResizeEndEvent, ResizeEvent, ResizeHintComponent, ResizeStartEvent, ResourceIteratorPipe, SaveEvent, SchedulerComponent, SchedulerCustomMessagesComponent, SchedulerDateTimePickerComponent, SchedulerModule, SchedulerView, SchedulerViewDirective, ShortcutsDirective, SingleResourceEditorComponent, SlotClickEvent, SlotDragEndEvent, SlotDragEvent, SlotDragStartEvent, SlotSelectableDirective, SortPipe, TimeSlotDirective, TimeSlotTemplateDirective, TimeZoneEditorComponent, TimelineBase, TimelineMonthViewComponent, TimelineMultiDayViewComponent, TimelineViewComponent, TimelineWeekViewComponent, ToolbarNavigationComponent, ToolbarService, ToolbarTemplateDirective, ToolbarViewSelectorComponent, VIEW_EVENT_MAP, ViewContextService, ViewFooterComponent, ViewStateService, WeekViewComponent, WorkHoursFooterDirective, WorkWeekViewComponent, YearViewComponent, YearViewInternalComponent };
22017
+ export { AddEvent, AgendaDateTemplateDirective, AgendaTimeTemplateDirective, AgendaViewComponent, AllDayEventTemplateDirective, AllDaySlotTemplateDirective, BaseEditService, CancelEvent, CreateEvent, CrudOperation, DataBindingDirective, DateChangeEvent, DateHeaderTemplateDirective, DaySlotDirective, DayTimeSlotService, DayTimeViewItemComponent, DayViewComponent, DragEndEvent, DragEvent, DragStartEvent, EditDialogComponent, EditDialogTemplateDirective, EditEvent, EditEventBase, EditMode, EndRuleRadioButtonDirective, EventClickEvent, EventKeydownEvent, EventTemplateDirective, FocusService, FocusableDirective, GroupHeaderTemplateDirective, HintContainerComponent, IsSlotSelectedArgs, KENDO_SCHEDULER, KENDO_SCHEDULERPDF, LoadingComponent, LocalizedMessagesDirective, MajorTimeHeaderTemplateDirective, MinorTimeHeaderTemplateDirective, MonthDaySlotTemplateDirective, MonthViewComponent, MoreEventsClickEvent, MultiDayViewComponent, MultiWeekDaySlotTemplateDirective, MultiWeekViewComponent, MultipleResourceEditorComponent, NavigateEvent, PDFCommandDirective, PDFComponent, PDFExportEvent, PDFModule, PDFService, ReactiveEditingDirective, RecurrenceEditorComponent, RecurrenceEditorCustomMessagesComponent, RecurrenceEditorLocalizedMessagesDirective, RecurrenceEndRuleEditorComponent, RecurrenceFrequencyEditorComponent, RecurrenceIntervalEditorComponent, RecurrenceMonthlyYearlyEditorComponent, RecurrenceWeekdayRuleEditorComponent, RemoveEvent, RepeatOnRadioButtonDirective, RepeatPipe, ResizeEndEvent, ResizeEvent, ResizeHintComponent, ResizeStartEvent, ResourceIteratorPipe, SaveEvent, SchedulerComponent, SchedulerCustomMessagesComponent, SchedulerDateTimePickerComponent, SchedulerModule, SchedulerView, SchedulerViewDirective, ShortcutsDirective, SingleResourceEditorComponent, SlotClickEvent, SlotDragEndEvent, SlotDragEvent, SlotDragStartEvent, SlotSelectableDirective, SortPipe, TimeSlotDirective, TimeSlotTemplateDirective, TimeZoneEditorComponent, TimelineBase, TimelineMonthViewComponent, TimelineMultiDayViewComponent, TimelineViewComponent, TimelineWeekViewComponent, ToolbarNavigationComponent, ToolbarService, ToolbarTemplateDirective, ToolbarViewSelectorComponent, VIEW_EVENT_MAP, ViewContextService, ViewFooterComponent, ViewStateService, WeekViewComponent, WorkHoursFooterDirective, WorkWeekViewComponent, YearViewComponent, YearViewInternalComponent };
21774
22018