@progress/kendo-angular-scheduler 3.0.3-dev.202204061046 → 3.1.0-dev.202204121440
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/dist/cdn/js/kendo-angular-scheduler.js +2 -2
- package/dist/cdn/main.js +1 -1
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/scheduler.component.js +9 -0
- package/dist/es/types/ongoing-events-settings.interface.js +4 -0
- package/dist/es/views/common/configuration-view-base.js +14 -0
- package/dist/es/views/constants.js +6 -0
- package/dist/es/views/day-time/day-time-view-base.js +15 -0
- package/dist/es/views/day-time/day-time-view.component.js +36 -2
- package/dist/es/views/month/month-view-renderer.component.js +47 -5
- package/dist/es/views/month/month-view.component.js +1 -1
- package/dist/es/views/multi-day/day-view.component.js +1 -1
- package/dist/es/views/multi-day/multi-day-view.component.js +1 -1
- package/dist/es/views/multi-day/week-view.component.js +1 -1
- package/dist/es/views/multi-day/work-week-view.component.js +1 -1
- package/dist/es/views/timeline/timeline-month-view.component.js +1 -1
- package/dist/es/views/timeline/timeline-view.component.js +1 -1
- package/dist/es/views/timeline/timeline-week-view.component.js +1 -1
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/es2015/scheduler.component.d.ts +5 -1
- package/dist/es2015/scheduler.component.js +9 -0
- package/dist/es2015/types/ongoing-events-settings.interface.d.ts +23 -0
- package/dist/es2015/types/ongoing-events-settings.interface.js +4 -0
- package/dist/es2015/types.d.ts +1 -0
- package/dist/es2015/views/common/configuration-view-base.d.ts +9 -1
- package/dist/es2015/views/common/configuration-view-base.js +10 -0
- package/dist/es2015/views/constants.d.ts +6 -0
- package/dist/es2015/views/constants.js +6 -0
- package/dist/es2015/views/day-time/day-time-view-base.d.ts +9 -1
- package/dist/es2015/views/day-time/day-time-view-base.js +11 -0
- package/dist/es2015/views/day-time/day-time-view.component.d.ts +6 -0
- package/dist/es2015/views/day-time/day-time-view.component.js +34 -2
- package/dist/es2015/views/month/month-view-renderer.component.d.ts +10 -1
- package/dist/es2015/views/month/month-view-renderer.component.js +45 -5
- package/dist/es2015/views/month/month-view.component.js +1 -0
- package/dist/es2015/views/multi-day/day-view.component.js +1 -0
- package/dist/es2015/views/multi-day/multi-day-view.component.js +1 -0
- package/dist/es2015/views/multi-day/week-view.component.js +1 -0
- package/dist/es2015/views/multi-day/work-week-view.component.js +1 -0
- package/dist/es2015/views/timeline/timeline-month-view.component.js +1 -0
- package/dist/es2015/views/timeline/timeline-view.component.js +1 -0
- package/dist/es2015/views/timeline/timeline-week-view.component.js +1 -0
- package/dist/fesm2015/index.js +190 -78
- package/dist/fesm5/index.js +171 -55
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/scheduler.component.js +9 -0
- package/dist/npm/types/ongoing-events-settings.interface.js +6 -0
- package/dist/npm/views/common/configuration-view-base.js +14 -0
- package/dist/npm/views/constants.js +6 -0
- package/dist/npm/views/day-time/day-time-view-base.js +15 -0
- package/dist/npm/views/day-time/day-time-view.component.js +34 -0
- package/dist/npm/views/month/month-view-renderer.component.js +49 -7
- package/dist/npm/views/month/month-view.component.js +1 -1
- package/dist/npm/views/multi-day/day-view.component.js +1 -1
- package/dist/npm/views/multi-day/multi-day-view.component.js +1 -1
- package/dist/npm/views/multi-day/week-view.component.js +1 -1
- package/dist/npm/views/multi-day/work-week-view.component.js +1 -1
- package/dist/npm/views/timeline/timeline-month-view.component.js +1 -1
- package/dist/npm/views/timeline/timeline-view.component.js +1 -1
- package/dist/npm/views/timeline/timeline-week-view.component.js +1 -1
- package/dist/systemjs/kendo-angular-scheduler.js +1 -1
- package/package.json +1 -1
package/dist/fesm2015/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
import { __decorate, __param, __metadata } from 'tslib';
|
|
6
|
-
import { Directive, Optional, TemplateRef, Injectable, EventEmitter, NgZone, Input, Renderer2, ElementRef, ChangeDetectorRef, Inject, isDevMode, HostBinding, Component, Output, ContentChild, ContentChildren, QueryList, ViewChild, ViewContainerRef, ChangeDetectionStrategy, ViewEncapsulation, forwardRef, NgModule, LOCALE_ID,
|
|
6
|
+
import { Directive, Optional, TemplateRef, Injectable, EventEmitter, NgZone, Input, Renderer2, ElementRef, ChangeDetectorRef, Inject, isDevMode, HostBinding, Component, Output, ContentChild, ContentChildren, QueryList, ViewChild, ViewContainerRef, ChangeDetectionStrategy, ViewEncapsulation, forwardRef, NgModule, LOCALE_ID, ViewChildren, Pipe, HostListener } from '@angular/core';
|
|
7
7
|
import { LocalizationService, L10N_PREFIX, RTL, MessageService, ComponentMessages } from '@progress/kendo-angular-l10n';
|
|
8
8
|
import { hasObservers, isDocumentAvailable, isChanged, anyChanged, ResizeSensorComponent, EventsModule, guid, Keys, ResizeSensorModule } from '@progress/kendo-angular-common';
|
|
9
9
|
import { isEqualDate, getDate, Day, ZonedDate, toLocalDate, MS_PER_DAY, addDays, firstDayOfMonth, addMonths, firstDayInWeek, timezoneNames } from '@progress/kendo-date-math';
|
|
@@ -32,7 +32,7 @@ const packageMetadata = {
|
|
|
32
32
|
name: '@progress/kendo-angular-scheduler',
|
|
33
33
|
productName: 'Kendo UI for Angular',
|
|
34
34
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
35
|
-
publishDate:
|
|
35
|
+
publishDate: 1649774242,
|
|
36
36
|
version: '',
|
|
37
37
|
licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/?utm_medium=product&utm_source=kendoangular&utm_campaign=kendo-ui-angular-purchase-license-keys-warning'
|
|
38
38
|
};
|
|
@@ -2228,6 +2228,10 @@ let SchedulerComponent = class SchedulerComponent {
|
|
|
2228
2228
|
* Specifies the Scheduler current time marker settings.
|
|
2229
2229
|
*/
|
|
2230
2230
|
this.currentTimeMarker = true;
|
|
2231
|
+
/**
|
|
2232
|
+
* Specifies the settings for the ongoing events highlight of the Scheduler.
|
|
2233
|
+
*/
|
|
2234
|
+
this.highlightOngoingEvents = true;
|
|
2231
2235
|
/**
|
|
2232
2236
|
* A callback that executes for each slot of the Scheduler view.
|
|
2233
2237
|
* If it returns `true`, the `k-state-selected` CSS class will be added to the cell, making it visibly selected.
|
|
@@ -2799,6 +2803,7 @@ let SchedulerComponent = class SchedulerComponent {
|
|
|
2799
2803
|
selectable: this.selectable,
|
|
2800
2804
|
timezone: this.timezone,
|
|
2801
2805
|
currentTimeMarker: this.currentTimeMarker,
|
|
2806
|
+
highlightOngoingEvents: this.highlightOngoingEvents,
|
|
2802
2807
|
slotClass: this.slotClass,
|
|
2803
2808
|
slotFill: this.slotFill,
|
|
2804
2809
|
columnWidth: this.columnWidth,
|
|
@@ -3058,6 +3063,10 @@ __decorate([
|
|
|
3058
3063
|
Input(),
|
|
3059
3064
|
__metadata("design:type", Object)
|
|
3060
3065
|
], SchedulerComponent.prototype, "currentTimeMarker", void 0);
|
|
3066
|
+
__decorate([
|
|
3067
|
+
Input(),
|
|
3068
|
+
__metadata("design:type", Object)
|
|
3069
|
+
], SchedulerComponent.prototype, "highlightOngoingEvents", void 0);
|
|
3061
3070
|
__decorate([
|
|
3062
3071
|
Input(),
|
|
3063
3072
|
__metadata("design:type", Function)
|
|
@@ -4529,6 +4538,12 @@ class ConfigurationViewBase extends SchedulerView {
|
|
|
4529
4538
|
get viewEventStyles() {
|
|
4530
4539
|
return isPresent(this.eventStyles) ? this.eventStyles : this.schedulerOptions.eventStyles;
|
|
4531
4540
|
}
|
|
4541
|
+
/**
|
|
4542
|
+
* @hidden
|
|
4543
|
+
*/
|
|
4544
|
+
get viewHighlightOngoingEvents() {
|
|
4545
|
+
return isPresent(this.highlightOngoingEvents) ? this.highlightOngoingEvents : this.schedulerOptions.highlightOngoingEvents;
|
|
4546
|
+
}
|
|
4532
4547
|
/**
|
|
4533
4548
|
* @hidden
|
|
4534
4549
|
*/
|
|
@@ -4557,6 +4572,10 @@ __decorate([
|
|
|
4557
4572
|
Input(),
|
|
4558
4573
|
__metadata("design:type", Function)
|
|
4559
4574
|
], ConfigurationViewBase.prototype, "eventStyles", void 0);
|
|
4575
|
+
__decorate([
|
|
4576
|
+
Input(),
|
|
4577
|
+
__metadata("design:type", Object)
|
|
4578
|
+
], ConfigurationViewBase.prototype, "highlightOngoingEvents", void 0);
|
|
4560
4579
|
__decorate([
|
|
4561
4580
|
ViewChild('content', { static: true }),
|
|
4562
4581
|
__metadata("design:type", TemplateRef)
|
|
@@ -5734,6 +5753,12 @@ const MS_PER_MINUTE = 60 * MS_PER_SECOND;
|
|
|
5734
5753
|
const BORDER_WIDTH = 1;
|
|
5735
5754
|
/** @hidden */
|
|
5736
5755
|
const DEFAULT_EVENT_HEIGHT = 25;
|
|
5756
|
+
/** @hidden */
|
|
5757
|
+
const ONGOING_EVENT_CSS_CLASS = 'k-event-ongoing';
|
|
5758
|
+
/** @hidden */
|
|
5759
|
+
const DAYS_IN_WEEK_COUNT = 7;
|
|
5760
|
+
/** @hidden */
|
|
5761
|
+
const WEEKS_COUNT = 6;
|
|
5737
5762
|
|
|
5738
5763
|
//better try to measure this one
|
|
5739
5764
|
const MORE_BUTTON_HEIGHT = 13;
|
|
@@ -6297,6 +6322,7 @@ MonthViewComponent = MonthViewComponent_1 = __decorate([
|
|
|
6297
6322
|
[monthDaySlotTemplate]="monthDaySlotTemplate?.templateRef"
|
|
6298
6323
|
[selectedDateFormat]="selectedDateFormat"
|
|
6299
6324
|
[selectedShortDateFormat]="selectedShortDateFormat"
|
|
6325
|
+
[highlightOngoingEvents]="viewHighlightOngoingEvents"
|
|
6300
6326
|
[weekStart]="viewWeekStart">
|
|
6301
6327
|
</month-view>
|
|
6302
6328
|
</ng-template>
|
|
@@ -7396,8 +7422,6 @@ __decorate([
|
|
|
7396
7422
|
__metadata("design:type", HintContainerComponent)
|
|
7397
7423
|
], BaseView.prototype, "hintContainer", void 0);
|
|
7398
7424
|
|
|
7399
|
-
const DAYS_IN_WEEK_COUNT = 7;
|
|
7400
|
-
const WEEKS_COUNT = 6;
|
|
7401
7425
|
/**
|
|
7402
7426
|
* @hidden
|
|
7403
7427
|
*/
|
|
@@ -7406,6 +7430,7 @@ let MonthViewRendererComponent = class MonthViewRendererComponent extends BaseVi
|
|
|
7406
7430
|
super(viewContext, viewState, intl, slotService, zone, renderer, element, pdfService, localization, changeDetector);
|
|
7407
7431
|
this.resizeHintFormat = { skeleton: 'Md' };
|
|
7408
7432
|
this.weeks = [];
|
|
7433
|
+
this.updateOngoingEvents = this.updateOngoingEvents.bind(this);
|
|
7409
7434
|
}
|
|
7410
7435
|
get monthDaySlotTemplateRef() {
|
|
7411
7436
|
return this.monthDaySlotTemplate || (this.schedulerMonthDaySlotTemplate || {}).templateRef;
|
|
@@ -7416,6 +7441,14 @@ let MonthViewRendererComponent = class MonthViewRendererComponent extends BaseVi
|
|
|
7416
7441
|
}
|
|
7417
7442
|
super.ngOnChanges(changes);
|
|
7418
7443
|
}
|
|
7444
|
+
ngAfterViewInit() {
|
|
7445
|
+
this.updateOngoingEvents();
|
|
7446
|
+
super.ngAfterViewInit();
|
|
7447
|
+
}
|
|
7448
|
+
ngOnDestroy() {
|
|
7449
|
+
clearTimeout(this.ongoingEventsTimeout);
|
|
7450
|
+
super.ngOnDestroy();
|
|
7451
|
+
}
|
|
7419
7452
|
horizontalColspan(resourceIndex) {
|
|
7420
7453
|
const resources = this.horizontalResources;
|
|
7421
7454
|
let result = DAYS_IN_WEEK_COUNT;
|
|
@@ -7543,6 +7576,28 @@ let MonthViewRendererComponent = class MonthViewRendererComponent extends BaseVi
|
|
|
7543
7576
|
slotByPosition(x, y) {
|
|
7544
7577
|
return this.slotService.slotByPosition(x, y);
|
|
7545
7578
|
}
|
|
7579
|
+
updateOngoingEvents() {
|
|
7580
|
+
const disabled = !this.highlightOngoingEvents || this.highlightOngoingEvents.enabled === false;
|
|
7581
|
+
if (!isDocumentAvailable() || disabled) {
|
|
7582
|
+
return;
|
|
7583
|
+
}
|
|
7584
|
+
clearTimeout(this.ongoingEventsTimeout);
|
|
7585
|
+
this.zone.runOutsideAngular(() => {
|
|
7586
|
+
this.ongoingEventsTimeout = setTimeout(this.updateOngoingEvents, this.highlightOngoingEvents.updateInterval || MS_PER_MINUTE);
|
|
7587
|
+
});
|
|
7588
|
+
this.toggleOngoingClass();
|
|
7589
|
+
}
|
|
7590
|
+
currentTime() {
|
|
7591
|
+
return new Date();
|
|
7592
|
+
}
|
|
7593
|
+
toggleOngoingClass() {
|
|
7594
|
+
const now = this.currentTime();
|
|
7595
|
+
const cssClass = isPresent(this.highlightOngoingEvents.cssClass) ? this.highlightOngoingEvents.cssClass : ONGOING_EVENT_CSS_CLASS;
|
|
7596
|
+
this.eventElements.forEach((event) => {
|
|
7597
|
+
const isOngoing = dateInRange(now, event.item.start, event.item.end);
|
|
7598
|
+
this.renderer[isOngoing ? 'addClass' : 'removeClass'](event.nativeElement, cssClass);
|
|
7599
|
+
});
|
|
7600
|
+
}
|
|
7546
7601
|
createDaySlots({ start }) {
|
|
7547
7602
|
const weeks = [];
|
|
7548
7603
|
let date = start;
|
|
@@ -7561,6 +7616,14 @@ __decorate([
|
|
|
7561
7616
|
Input(),
|
|
7562
7617
|
__metadata("design:type", TemplateRef)
|
|
7563
7618
|
], MonthViewRendererComponent.prototype, "monthDaySlotTemplate", void 0);
|
|
7619
|
+
__decorate([
|
|
7620
|
+
Input(),
|
|
7621
|
+
__metadata("design:type", Object)
|
|
7622
|
+
], MonthViewRendererComponent.prototype, "highlightOngoingEvents", void 0);
|
|
7623
|
+
__decorate([
|
|
7624
|
+
ViewChildren(MonthViewItemComponent),
|
|
7625
|
+
__metadata("design:type", QueryList)
|
|
7626
|
+
], MonthViewRendererComponent.prototype, "eventElements", void 0);
|
|
7564
7627
|
MonthViewRendererComponent = __decorate([
|
|
7565
7628
|
Component({
|
|
7566
7629
|
// tslint:disable-next-line:component-selector
|
|
@@ -8129,6 +8192,7 @@ const WORK_WEEK_END = 'workWeekEnd';
|
|
|
8129
8192
|
const SLOT_DURATION = 'slotDuration';
|
|
8130
8193
|
const SLOT_DIVISIONS = 'slotDivisions';
|
|
8131
8194
|
const CURRENT_TIME_MARKER = 'currentTimeMarker';
|
|
8195
|
+
const HIGHLIGHT_ONGOING_EVENTS = 'highlightOngoingEvents';
|
|
8132
8196
|
/**
|
|
8133
8197
|
* @hidden
|
|
8134
8198
|
*/
|
|
@@ -8202,6 +8266,12 @@ class DayTimeViewBase extends ConfigurationViewBase {
|
|
|
8202
8266
|
get viewCurrentTimeMarker() {
|
|
8203
8267
|
return this.optionValue(CURRENT_TIME_MARKER);
|
|
8204
8268
|
}
|
|
8269
|
+
/**
|
|
8270
|
+
* @hidden
|
|
8271
|
+
*/
|
|
8272
|
+
get viewHighlightOngoingEvents() {
|
|
8273
|
+
return this.optionValue(HIGHLIGHT_ONGOING_EVENTS);
|
|
8274
|
+
}
|
|
8205
8275
|
/**
|
|
8206
8276
|
* @hidden
|
|
8207
8277
|
*/
|
|
@@ -8268,6 +8338,10 @@ __decorate([
|
|
|
8268
8338
|
Input(),
|
|
8269
8339
|
__metadata("design:type", Object)
|
|
8270
8340
|
], DayTimeViewBase.prototype, "currentTimeMarker", void 0);
|
|
8341
|
+
__decorate([
|
|
8342
|
+
Input(),
|
|
8343
|
+
__metadata("design:type", Object)
|
|
8344
|
+
], DayTimeViewBase.prototype, "highlightOngoingEvents", void 0);
|
|
8271
8345
|
|
|
8272
8346
|
const SLOT_FILL = 'slotFill';
|
|
8273
8347
|
/**
|
|
@@ -8361,6 +8435,7 @@ DayViewComponent = DayViewComponent_1 = __decorate([
|
|
|
8361
8435
|
[name]="name"
|
|
8362
8436
|
[eventHeight]="viewEventHeight"
|
|
8363
8437
|
[currentTimeMarker]="viewCurrentTimeMarker"
|
|
8438
|
+
[highlightOngoingEvents]="viewHighlightOngoingEvents"
|
|
8364
8439
|
[showWorkHours]="shouldShowWorkHours"
|
|
8365
8440
|
[scrollTime]="viewScrollTime"
|
|
8366
8441
|
[startTime]="viewStartTime"
|
|
@@ -8478,6 +8553,7 @@ MultiDayViewComponent = MultiDayViewComponent_1 = __decorate([
|
|
|
8478
8553
|
[numberOfDays]="numberOfDays"
|
|
8479
8554
|
[eventHeight]="viewEventHeight"
|
|
8480
8555
|
[currentTimeMarker]="viewCurrentTimeMarker"
|
|
8556
|
+
[highlightOngoingEvents]="viewHighlightOngoingEvents"
|
|
8481
8557
|
[showWorkHours]="shouldShowWorkHours"
|
|
8482
8558
|
[scrollTime]="viewScrollTime"
|
|
8483
8559
|
[startTime]="viewStartTime"
|
|
@@ -8594,6 +8670,7 @@ WeekViewComponent = WeekViewComponent_1 = __decorate([
|
|
|
8594
8670
|
[getStartDate]="getStartDate"
|
|
8595
8671
|
[eventHeight]="viewEventHeight"
|
|
8596
8672
|
[currentTimeMarker]="viewCurrentTimeMarker"
|
|
8673
|
+
[highlightOngoingEvents]="viewHighlightOngoingEvents"
|
|
8597
8674
|
[showWorkHours]="shouldShowWorkHours"
|
|
8598
8675
|
[scrollTime]="viewScrollTime"
|
|
8599
8676
|
[startTime]="viewStartTime"
|
|
@@ -8692,6 +8769,7 @@ WorkWeekViewComponent = WorkWeekViewComponent_1 = __decorate([
|
|
|
8692
8769
|
[getNextDate]="getNextDate"
|
|
8693
8770
|
[eventHeight]="viewEventHeight"
|
|
8694
8771
|
[currentTimeMarker]="viewCurrentTimeMarker"
|
|
8772
|
+
[highlightOngoingEvents]="viewHighlightOngoingEvents"
|
|
8695
8773
|
[showWorkHours]="shouldShowWorkHours"
|
|
8696
8774
|
[scrollTime]="viewScrollTime"
|
|
8697
8775
|
[startTime]="viewStartTime"
|
|
@@ -9404,6 +9482,80 @@ function createTimeSlots(intlService, { showWorkHours, startTime, endTime, workD
|
|
|
9404
9482
|
return slots;
|
|
9405
9483
|
}
|
|
9406
9484
|
|
|
9485
|
+
/**
|
|
9486
|
+
* @hidden
|
|
9487
|
+
*/
|
|
9488
|
+
let DayTimeViewItemComponent = class DayTimeViewItemComponent extends BaseViewItem {
|
|
9489
|
+
constructor(intlService, slotService, localization, focusService, element, renderer, localeId) {
|
|
9490
|
+
super(slotService, localization, focusService, element, renderer, localeId);
|
|
9491
|
+
this.intlService = intlService;
|
|
9492
|
+
this.localeId = localeId;
|
|
9493
|
+
}
|
|
9494
|
+
get eventTime() {
|
|
9495
|
+
return this.intlService.format('{0:t}–{1:t}', toLocalDate(this.item.startTime), toLocalDate(this.item.endTime));
|
|
9496
|
+
}
|
|
9497
|
+
};
|
|
9498
|
+
__decorate([
|
|
9499
|
+
Input(),
|
|
9500
|
+
__metadata("design:type", Boolean)
|
|
9501
|
+
], DayTimeViewItemComponent.prototype, "vertical", void 0);
|
|
9502
|
+
__decorate([
|
|
9503
|
+
Input(),
|
|
9504
|
+
__metadata("design:type", Boolean)
|
|
9505
|
+
], DayTimeViewItemComponent.prototype, "isAllDay", void 0);
|
|
9506
|
+
DayTimeViewItemComponent = __decorate([
|
|
9507
|
+
Component({
|
|
9508
|
+
// tslint:disable-next-line:component-selector
|
|
9509
|
+
selector: '[dayTimeViewItem]',
|
|
9510
|
+
template: `
|
|
9511
|
+
<span class="k-event-actions">
|
|
9512
|
+
<span class="k-icon k-i-arrow-60-left" *ngIf="item.tail && !vertical"></span>
|
|
9513
|
+
<span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
|
|
9514
|
+
<span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
|
|
9515
|
+
</span>
|
|
9516
|
+
<ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
|
|
9517
|
+
[ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
|
|
9518
|
+
</ng-container>
|
|
9519
|
+
<div *ngIf="!eventTemplate" [attr.title]="eventTitle">
|
|
9520
|
+
<div class="k-event-template k-event-time" *ngIf="!isAllDay">{{ eventTime }}</div>
|
|
9521
|
+
<div class="k-event-template" aria-hidden="true">{{ item.event.title }}</div>
|
|
9522
|
+
</div>
|
|
9523
|
+
|
|
9524
|
+
<span class="k-event-actions">
|
|
9525
|
+
<span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
|
|
9526
|
+
<span class="k-icon k-i-close"></span>
|
|
9527
|
+
</span>
|
|
9528
|
+
<span class="k-icon k-i-arrow-60-right" *ngIf="item.head && !vertical"></span>
|
|
9529
|
+
</span>
|
|
9530
|
+
|
|
9531
|
+
<span class="k-event-top-actions" *ngIf="item.tail && vertical">
|
|
9532
|
+
<span class="k-icon k-i-arrow-60-up"></span>
|
|
9533
|
+
</span>
|
|
9534
|
+
|
|
9535
|
+
<span class="k-event-bottom-actions" *ngIf="item.head && vertical">
|
|
9536
|
+
<span class="k-icon k-i-arrow-60-down"></span>
|
|
9537
|
+
</span>
|
|
9538
|
+
|
|
9539
|
+
<ng-container *ngIf="resizable && vertical">
|
|
9540
|
+
<span class="k-resize-handle k-resize-n" *ngIf="!item.tail"></span>
|
|
9541
|
+
<span class="k-resize-handle k-resize-s" *ngIf="!item.head"></span>
|
|
9542
|
+
</ng-container>
|
|
9543
|
+
|
|
9544
|
+
<ng-container *ngIf="resizable && !vertical">
|
|
9545
|
+
<span class="k-resize-handle k-resize-w"></span>
|
|
9546
|
+
<span class="k-resize-handle k-resize-e"></span>
|
|
9547
|
+
</ng-container>
|
|
9548
|
+
`
|
|
9549
|
+
}),
|
|
9550
|
+
__param(6, Inject(LOCALE_ID)),
|
|
9551
|
+
__metadata("design:paramtypes", [IntlService,
|
|
9552
|
+
DayTimeSlotService,
|
|
9553
|
+
LocalizationService,
|
|
9554
|
+
FocusService,
|
|
9555
|
+
ElementRef,
|
|
9556
|
+
Renderer2, String])
|
|
9557
|
+
], DayTimeViewItemComponent);
|
|
9558
|
+
|
|
9407
9559
|
const getStartDate = date => getDate(date);
|
|
9408
9560
|
const getEndDate = (start, numberOfDays) => getDate(addDays(start, numberOfDays || 1));
|
|
9409
9561
|
const getNextDate = (date, count, numberOfDays) => getDate(addDays(date, numberOfDays * count));
|
|
@@ -9434,6 +9586,8 @@ class DayTimeViewComponent extends BaseView {
|
|
|
9434
9586
|
this.verticalTime = true;
|
|
9435
9587
|
this.initialUpdate = true;
|
|
9436
9588
|
this.updateCurrentTime = this.updateCurrentTime.bind(this);
|
|
9589
|
+
this.toggleOngoingClass = this.toggleOngoingClass.bind(this);
|
|
9590
|
+
this.updateOngoingEvents = this.updateOngoingEvents.bind(this);
|
|
9437
9591
|
}
|
|
9438
9592
|
get classNames() {
|
|
9439
9593
|
return `k-scheduler-${this.name}view`;
|
|
@@ -9462,6 +9616,7 @@ class DayTimeViewComponent extends BaseView {
|
|
|
9462
9616
|
ngOnDestroy() {
|
|
9463
9617
|
super.ngOnDestroy();
|
|
9464
9618
|
clearTimeout(this.currentTimeTimeout);
|
|
9619
|
+
clearTimeout(this.ongoingEventsTimeout);
|
|
9465
9620
|
}
|
|
9466
9621
|
verticalItem(leafIndex, resourceIndex) {
|
|
9467
9622
|
const data = this.verticalResources[resourceIndex].data || [];
|
|
@@ -9482,6 +9637,14 @@ class DayTimeViewComponent extends BaseView {
|
|
|
9482
9637
|
});
|
|
9483
9638
|
}
|
|
9484
9639
|
}
|
|
9640
|
+
toggleOngoingClass() {
|
|
9641
|
+
const now = this.currentTime();
|
|
9642
|
+
const cssClass = isPresent(this.highlightOngoingEvents.cssClass) ? this.highlightOngoingEvents.cssClass : ONGOING_EVENT_CSS_CLASS;
|
|
9643
|
+
this.eventElements.forEach((event) => {
|
|
9644
|
+
const isOngoing = dateInRange(now, event.item.start, event.item.end);
|
|
9645
|
+
this.renderer[isOngoing ? 'addClass' : 'removeClass'](event.nativeElement, cssClass);
|
|
9646
|
+
});
|
|
9647
|
+
}
|
|
9485
9648
|
scrollToTime(time = this.scrollTime) {
|
|
9486
9649
|
let date;
|
|
9487
9650
|
if (typeof time === 'string') {
|
|
@@ -9509,6 +9672,7 @@ class DayTimeViewComponent extends BaseView {
|
|
|
9509
9672
|
updateView() {
|
|
9510
9673
|
super.updateView();
|
|
9511
9674
|
this.updateCurrentTime();
|
|
9675
|
+
this.updateOngoingEvents();
|
|
9512
9676
|
if (this.initialUpdate) {
|
|
9513
9677
|
this.scrollToTime();
|
|
9514
9678
|
this.initialUpdate = false;
|
|
@@ -9547,6 +9711,17 @@ class DayTimeViewComponent extends BaseView {
|
|
|
9547
9711
|
this.positionCurrentTime();
|
|
9548
9712
|
}
|
|
9549
9713
|
}
|
|
9714
|
+
updateOngoingEvents() {
|
|
9715
|
+
const disabled = !this.highlightOngoingEvents || this.highlightOngoingEvents.enabled === false;
|
|
9716
|
+
if (!isDocumentAvailable() || disabled) {
|
|
9717
|
+
return;
|
|
9718
|
+
}
|
|
9719
|
+
clearTimeout(this.ongoingEventsTimeout);
|
|
9720
|
+
this.zone.runOutsideAngular(() => {
|
|
9721
|
+
this.ongoingEventsTimeout = setTimeout(this.updateOngoingEvents, this.highlightOngoingEvents.updateInterval || MS_PER_MINUTE);
|
|
9722
|
+
});
|
|
9723
|
+
this.toggleOngoingClass();
|
|
9724
|
+
}
|
|
9550
9725
|
positionCurrentTime() {
|
|
9551
9726
|
if (this.currentTimeElements && this.currentTimeElements.length) {
|
|
9552
9727
|
const date = this.currentDate.toUTCDate();
|
|
@@ -9760,10 +9935,18 @@ __decorate([
|
|
|
9760
9935
|
Input(),
|
|
9761
9936
|
__metadata("design:type", Object)
|
|
9762
9937
|
], DayTimeViewComponent.prototype, "currentTimeMarker", void 0);
|
|
9938
|
+
__decorate([
|
|
9939
|
+
Input(),
|
|
9940
|
+
__metadata("design:type", Object)
|
|
9941
|
+
], DayTimeViewComponent.prototype, "highlightOngoingEvents", void 0);
|
|
9763
9942
|
__decorate([
|
|
9764
9943
|
ViewChildren('currentTimeMarker'),
|
|
9765
9944
|
__metadata("design:type", QueryList)
|
|
9766
9945
|
], DayTimeViewComponent.prototype, "currentTimeElements", void 0);
|
|
9946
|
+
__decorate([
|
|
9947
|
+
ViewChildren(DayTimeViewItemComponent),
|
|
9948
|
+
__metadata("design:type", QueryList)
|
|
9949
|
+
], DayTimeViewComponent.prototype, "eventElements", void 0);
|
|
9767
9950
|
__decorate([
|
|
9768
9951
|
ViewChildren('currentTimeArrow'),
|
|
9769
9952
|
__metadata("design:type", QueryList)
|
|
@@ -10421,80 +10604,6 @@ DaySlotDirective = __decorate([
|
|
|
10421
10604
|
LocalizationService])
|
|
10422
10605
|
], DaySlotDirective);
|
|
10423
10606
|
|
|
10424
|
-
/**
|
|
10425
|
-
* @hidden
|
|
10426
|
-
*/
|
|
10427
|
-
let DayTimeViewItemComponent = class DayTimeViewItemComponent extends BaseViewItem {
|
|
10428
|
-
constructor(intlService, slotService, localization, focusService, element, renderer, localeId) {
|
|
10429
|
-
super(slotService, localization, focusService, element, renderer, localeId);
|
|
10430
|
-
this.intlService = intlService;
|
|
10431
|
-
this.localeId = localeId;
|
|
10432
|
-
}
|
|
10433
|
-
get eventTime() {
|
|
10434
|
-
return this.intlService.format('{0:t}–{1:t}', toLocalDate(this.item.startTime), toLocalDate(this.item.endTime));
|
|
10435
|
-
}
|
|
10436
|
-
};
|
|
10437
|
-
__decorate([
|
|
10438
|
-
Input(),
|
|
10439
|
-
__metadata("design:type", Boolean)
|
|
10440
|
-
], DayTimeViewItemComponent.prototype, "vertical", void 0);
|
|
10441
|
-
__decorate([
|
|
10442
|
-
Input(),
|
|
10443
|
-
__metadata("design:type", Boolean)
|
|
10444
|
-
], DayTimeViewItemComponent.prototype, "isAllDay", void 0);
|
|
10445
|
-
DayTimeViewItemComponent = __decorate([
|
|
10446
|
-
Component({
|
|
10447
|
-
// tslint:disable-next-line:component-selector
|
|
10448
|
-
selector: '[dayTimeViewItem]',
|
|
10449
|
-
template: `
|
|
10450
|
-
<span class="k-event-actions">
|
|
10451
|
-
<span class="k-icon k-i-arrow-60-left" *ngIf="item.tail && !vertical"></span>
|
|
10452
|
-
<span class="k-icon k-i-reload" *ngIf="isRecurrence"></span>
|
|
10453
|
-
<span class="k-icon k-i-non-recurrence" *ngIf="isRecurrenceException"></span>
|
|
10454
|
-
</span>
|
|
10455
|
-
<ng-container *ngIf="eventTemplate" [ngTemplateOutlet]="eventTemplate"
|
|
10456
|
-
[ngTemplateOutletContext]="{ $implicit: item.event, event: item.event, resources: resources }">
|
|
10457
|
-
</ng-container>
|
|
10458
|
-
<div *ngIf="!eventTemplate" [attr.title]="eventTitle">
|
|
10459
|
-
<div class="k-event-template k-event-time" *ngIf="!isAllDay">{{ eventTime }}</div>
|
|
10460
|
-
<div class="k-event-template" aria-hidden="true">{{ item.event.title }}</div>
|
|
10461
|
-
</div>
|
|
10462
|
-
|
|
10463
|
-
<span class="k-event-actions">
|
|
10464
|
-
<span *ngIf="removable" class="k-link k-event-delete" aria-hidden="true" [attr.title]="deleteMessage">
|
|
10465
|
-
<span class="k-icon k-i-close"></span>
|
|
10466
|
-
</span>
|
|
10467
|
-
<span class="k-icon k-i-arrow-60-right" *ngIf="item.head && !vertical"></span>
|
|
10468
|
-
</span>
|
|
10469
|
-
|
|
10470
|
-
<span class="k-event-top-actions" *ngIf="item.tail && vertical">
|
|
10471
|
-
<span class="k-icon k-i-arrow-60-up"></span>
|
|
10472
|
-
</span>
|
|
10473
|
-
|
|
10474
|
-
<span class="k-event-bottom-actions" *ngIf="item.head && vertical">
|
|
10475
|
-
<span class="k-icon k-i-arrow-60-down"></span>
|
|
10476
|
-
</span>
|
|
10477
|
-
|
|
10478
|
-
<ng-container *ngIf="resizable && vertical">
|
|
10479
|
-
<span class="k-resize-handle k-resize-n" *ngIf="!item.tail"></span>
|
|
10480
|
-
<span class="k-resize-handle k-resize-s" *ngIf="!item.head"></span>
|
|
10481
|
-
</ng-container>
|
|
10482
|
-
|
|
10483
|
-
<ng-container *ngIf="resizable && !vertical">
|
|
10484
|
-
<span class="k-resize-handle k-resize-w"></span>
|
|
10485
|
-
<span class="k-resize-handle k-resize-e"></span>
|
|
10486
|
-
</ng-container>
|
|
10487
|
-
`
|
|
10488
|
-
}),
|
|
10489
|
-
__param(6, Inject(LOCALE_ID)),
|
|
10490
|
-
__metadata("design:paramtypes", [IntlService,
|
|
10491
|
-
DayTimeSlotService,
|
|
10492
|
-
LocalizationService,
|
|
10493
|
-
FocusService,
|
|
10494
|
-
ElementRef,
|
|
10495
|
-
Renderer2, String])
|
|
10496
|
-
], DayTimeViewItemComponent);
|
|
10497
|
-
|
|
10498
10607
|
const DIRECTIVES = [TimeSlotDirective, DaySlotDirective, DayTimeViewItemComponent];
|
|
10499
10608
|
/**
|
|
10500
10609
|
* @hidden
|
|
@@ -10976,6 +11085,7 @@ TimelineViewComponent = TimelineViewComponent_1 = __decorate([
|
|
|
10976
11085
|
[eventHeight]="viewEventHeight"
|
|
10977
11086
|
[columnWidth]="viewColumnWidth"
|
|
10978
11087
|
[currentTimeMarker]="viewCurrentTimeMarker"
|
|
11088
|
+
[highlightOngoingEvents]="viewHighlightOngoingEvents"
|
|
10979
11089
|
[showWorkHours]="shouldShowWorkHours"
|
|
10980
11090
|
[scrollTime]="viewScrollTime"
|
|
10981
11091
|
[startTime]="viewStartTime"
|
|
@@ -11072,6 +11182,7 @@ TimelineWeekViewComponent = TimelineWeekViewComponent_1 = __decorate([
|
|
|
11072
11182
|
[eventHeight]="viewEventHeight"
|
|
11073
11183
|
[columnWidth]="viewColumnWidth"
|
|
11074
11184
|
[currentTimeMarker]="viewCurrentTimeMarker"
|
|
11185
|
+
[highlightOngoingEvents]="viewHighlightOngoingEvents"
|
|
11075
11186
|
[showWorkHours]="shouldShowWorkHours"
|
|
11076
11187
|
[scrollTime]="viewScrollTime"
|
|
11077
11188
|
[startTime]="viewStartTime"
|
|
@@ -11183,6 +11294,7 @@ TimelineMonthViewComponent = TimelineMonthViewComponent_1 = __decorate([
|
|
|
11183
11294
|
[eventHeight]="viewEventHeight"
|
|
11184
11295
|
[columnWidth]="viewColumnWidth"
|
|
11185
11296
|
[currentTimeMarker]="viewCurrentTimeMarker"
|
|
11297
|
+
[highlightOngoingEvents]="viewHighlightOngoingEvents"
|
|
11186
11298
|
[showWorkHours]="shouldShowWorkHours"
|
|
11187
11299
|
[scrollTime]="viewScrollTime"
|
|
11188
11300
|
[startTime]="viewStartTime"
|