@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.
- package/esm2022/events/more-events-click.mjs +24 -0
- package/esm2022/events/navigate-event.mjs +1 -1
- package/esm2022/events.mjs +1 -0
- package/esm2022/package-metadata.mjs +2 -2
- package/esm2022/scheduler.component.mjs +12 -2
- package/esm2022/views/agenda/agenda-view-internal.component.mjs +8 -4
- package/esm2022/views/agenda/agenda-view.component.mjs +3 -1
- package/esm2022/views/agenda/tasks.collection.mjs +7 -1
- package/esm2022/views/agenda/utils.mjs +2 -2
- package/esm2022/views/common/configuration-view-base.mjs +22 -2
- package/esm2022/views/common/slot-selectable.directive.mjs +3 -3
- package/esm2022/views/day-time/day-time-slot.service.mjs +1 -0
- package/esm2022/views/day-time/day-time-view.component.mjs +23 -10
- package/esm2022/views/month/month-view-renderer.component.mjs +33 -7
- package/esm2022/views/month/month-view.component.mjs +17 -5
- package/esm2022/views/month/multi-week-view.component.mjs +3 -1
- package/esm2022/views/month/utils.mjs +31 -1
- package/esm2022/views/multi-day/day-view.component.mjs +8 -1
- package/esm2022/views/multi-day/multi-day-view-renderer.component.mjs +18 -8
- package/esm2022/views/multi-day/multi-day-view.component.mjs +16 -2
- package/esm2022/views/multi-day/utils.mjs +7 -1
- package/esm2022/views/multi-day/week-view.component.mjs +3 -1
- package/esm2022/views/multi-day/work-week-view.component.mjs +3 -1
- package/esm2022/views/timeline/timeline-month-view.component.mjs +5 -1
- package/esm2022/views/timeline/timeline-multi-day-view.component.mjs +14 -4
- package/esm2022/views/timeline/timeline-view.component.mjs +8 -1
- package/esm2022/views/timeline/timeline-week-view.component.mjs +3 -1
- package/esm2022/views/timeline/utils.mjs +7 -1
- package/esm2022/views/utils.mjs +25 -3
- package/esm2022/views/year/year-view.component.mjs +7 -0
- package/events/more-events-click.d.ts +23 -0
- package/events/navigate-event.d.ts +1 -1
- package/events.d.ts +1 -0
- package/fesm2022/progress-kendo-angular-scheduler.mjs +333 -89
- package/package.json +15 -15
- package/scheduler.component.d.ts +8 -1
- package/schematics/ngAdd/index.js +3 -3
- package/views/agenda/agenda-view-internal.component.d.ts +3 -1
- package/views/agenda/tasks.collection.d.ts +3 -1
- package/views/agenda/utils.d.ts +1 -1
- package/views/common/configuration-view-base.d.ts +13 -1
- package/views/day-time/day-time-slot.service.d.ts +2 -0
- package/views/day-time/day-time-view.component.d.ts +2 -1
- package/views/month/month-view-renderer.component.d.ts +5 -2
- package/views/month/month-view.component.d.ts +9 -2
- package/views/month/utils.d.ts +2 -1
- package/views/multi-day/day-view.component.d.ts +6 -0
- package/views/multi-day/multi-day-view-renderer.component.d.ts +4 -2
- package/views/multi-day/multi-day-view.component.d.ts +8 -1
- package/views/multi-day/utils.d.ts +2 -1
- package/views/timeline/timeline-multi-day-view.component.d.ts +3 -1
- package/views/timeline/timeline-view.component.d.ts +6 -0
- package/views/timeline/utils.d.ts +2 -1
- package/views/utils.d.ts +7 -3
- 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:
|
|
47
|
-
version: '21.4.0-develop.
|
|
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
|
|
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: {
|
|
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: {
|
|
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
|
-
|
|
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
|
-
|
|
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: {
|
|
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
|
|
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
|
-
|
|
16796
|
-
|
|
16797
|
-
|
|
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
|
-
|
|
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: {
|
|
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: {
|
|
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
|
|