@progress/kendo-angular-scheduler 2.2.0-dev.202111260859 → 3.0.1-dev.202202071010
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/editing/date-time-picker.component.js +2 -1
- package/dist/es/editing/edit-dialog.component.js +1 -1
- package/dist/es/editing/recurrence/end-rule-radio-button.directive.js +5 -0
- package/dist/es/editing/recurrence/recurrence-monthly-yearly-editor.component.js +1 -1
- package/dist/es/editing/recurrence/repeat-on-radio-button.directive.js +5 -0
- package/dist/es/events/slot-drag-end-event.js +17 -0
- package/dist/es/events/slot-drag-event.js +18 -0
- package/dist/es/events/slot-drag-start-event.js +24 -0
- package/dist/es/events.js +3 -0
- package/dist/es/index.js +1 -0
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/scheduler.component.js +73 -1
- package/dist/es/scheduler.module.js +5 -1
- package/dist/es/toolbar/view-selector.component.js +1 -1
- package/dist/es/types/slot-selection.js +23 -0
- package/dist/es/types.js +1 -0
- package/dist/es/views/common/base-view.js +103 -8
- package/dist/es/views/common/slot-selectable.directive.js +117 -0
- package/dist/es/views/common/view-footer.component.js +1 -1
- package/dist/es/views/common/views-shared.module.js +2 -1
- package/dist/es/views/day-time/day-time-view.component.js +1 -1
- package/dist/es/views/day-time/day-time.module.js +2 -1
- package/dist/es/views/month/month-view-renderer.component.js +9 -5
- package/dist/es/views/multi-day/multi-day-view-renderer.component.js +3 -3
- package/dist/es/views/timeline/timeline-multi-day-view.component.js +1 -1
- package/dist/es/views/utils.js +49 -0
- package/dist/es/views/view-state.service.js +18 -0
- package/dist/es2015/editing/date-time-picker.component.js +7 -1
- package/dist/es2015/editing/edit-dialog.component.js +7 -7
- package/dist/es2015/editing/recurrence/end-rule-radio-button.directive.d.ts +1 -0
- package/dist/es2015/editing/recurrence/end-rule-radio-button.directive.js +5 -0
- package/dist/es2015/editing/recurrence/recurrence-monthly-yearly-editor.component.js +14 -5
- package/dist/es2015/editing/recurrence/repeat-on-radio-button.directive.d.ts +1 -0
- package/dist/es2015/editing/recurrence/repeat-on-radio-button.directive.js +5 -0
- package/dist/es2015/events/slot-drag-end-event.d.ts +10 -0
- package/dist/es2015/events/slot-drag-end-event.js +10 -0
- package/dist/es2015/events/slot-drag-event.d.ts +39 -0
- package/dist/es2015/events/slot-drag-event.js +16 -0
- package/dist/es2015/events/slot-drag-start-event.d.ts +41 -0
- package/dist/es2015/events/slot-drag-start-event.js +19 -0
- package/dist/es2015/events.d.ts +3 -0
- package/dist/es2015/events.js +3 -0
- package/dist/es2015/index.d.ts +2 -0
- package/dist/es2015/index.js +1 -0
- package/dist/es2015/index.metadata.json +1 -1
- package/dist/es2015/package-metadata.js +1 -1
- package/dist/es2015/scheduler.component.d.ts +27 -0
- package/dist/es2015/scheduler.component.js +73 -1
- package/dist/es2015/scheduler.module.js +5 -1
- package/dist/es2015/toolbar/view-selector.component.js +1 -1
- package/dist/es2015/types/datepicker-options.interface.d.ts +5 -5
- package/dist/es2015/types/slot-selection.d.ts +71 -0
- package/dist/es2015/types/slot-selection.js +19 -0
- package/dist/es2015/types.d.ts +2 -0
- package/dist/es2015/types.js +1 -0
- package/dist/es2015/views/common/base-view.d.ts +26 -5
- package/dist/es2015/views/common/base-view.js +103 -8
- package/dist/es2015/views/common/slot-selectable.directive.d.ts +45 -0
- package/dist/es2015/views/common/slot-selectable.directive.js +112 -0
- package/dist/es2015/views/common/view-footer.component.js +1 -1
- package/dist/es2015/views/common/views-shared.module.js +2 -1
- package/dist/es2015/views/day-time/day-time-view.component.js +1 -1
- package/dist/es2015/views/day-time/day-time.module.js +2 -1
- package/dist/es2015/views/month/month-view-renderer.component.d.ts +3 -2
- package/dist/es2015/views/month/month-view-renderer.component.js +17 -7
- package/dist/es2015/views/multi-day/multi-day-view-renderer.component.d.ts +1 -1
- package/dist/es2015/views/multi-day/multi-day-view-renderer.component.js +22 -4
- package/dist/es2015/views/timeline/timeline-multi-day-view.component.js +8 -1
- package/dist/es2015/views/utils.d.ts +29 -0
- package/dist/es2015/views/utils.js +49 -0
- package/dist/es2015/views/view-state.service.d.ts +24 -1
- package/dist/es2015/views/view-state.service.js +18 -0
- package/dist/fesm2015/index.js +1674 -1231
- package/dist/fesm5/index.js +1803 -1388
- package/dist/npm/editing/date-time-picker.component.js +2 -1
- package/dist/npm/editing/edit-dialog.component.js +1 -1
- package/dist/npm/editing/recurrence/end-rule-radio-button.directive.js +5 -0
- package/dist/npm/editing/recurrence/recurrence-monthly-yearly-editor.component.js +1 -1
- package/dist/npm/editing/recurrence/repeat-on-radio-button.directive.js +5 -0
- package/dist/npm/events/slot-drag-end-event.js +19 -0
- package/dist/npm/events/slot-drag-event.js +20 -0
- package/dist/npm/events/slot-drag-start-event.js +26 -0
- package/dist/npm/events.js +6 -0
- package/dist/npm/index.js +2 -0
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/scheduler.component.js +73 -1
- package/dist/npm/scheduler.module.js +4 -0
- package/dist/npm/toolbar/view-selector.component.js +1 -1
- package/dist/npm/types/slot-selection.js +25 -0
- package/dist/npm/types.js +2 -0
- package/dist/npm/views/common/base-view.js +102 -7
- package/dist/npm/views/common/slot-selectable.directive.js +119 -0
- package/dist/npm/views/common/view-footer.component.js +1 -1
- package/dist/npm/views/common/views-shared.module.js +2 -1
- package/dist/npm/views/day-time/day-time-view.component.js +1 -1
- package/dist/npm/views/day-time/day-time.module.js +2 -1
- package/dist/npm/views/month/month-view-renderer.component.js +8 -4
- package/dist/npm/views/multi-day/multi-day-view-renderer.component.js +3 -3
- package/dist/npm/views/timeline/timeline-multi-day-view.component.js +1 -1
- package/dist/npm/views/utils.js +53 -0
- package/dist/npm/views/view-state.service.js +18 -0
- package/dist/systemjs/kendo-angular-scheduler.js +1 -1
- package/package.json +27 -24
- package/schematics/ngAdd/index.js +1 -1
|
@@ -71,7 +71,8 @@ var SchedulerDateTimePickerComponent = /** @class */ (function () {
|
|
|
71
71
|
SCHEDULER_DATETIMEPICKER_VALUE_ACCESSOR
|
|
72
72
|
],
|
|
73
73
|
selector: 'kendo-scheduler-datetime-picker',
|
|
74
|
-
template: "\n <kendo-datepicker\n #datepicker\n [(value)]='date'\n (valueChange)='onValueChange($event)'\n ></kendo-datepicker>\n <kendo-timepicker *ngIf='!isAllDay'\n [(value)]='date'\n (valueChange)='onValueChange($event)'\n ></kendo-timepicker>\n "
|
|
74
|
+
template: "\n <kendo-datepicker\n #datepicker\n [(value)]='date'\n (valueChange)='onValueChange($event)'\n ></kendo-datepicker>\n <kendo-timepicker *ngIf='!isAllDay'\n [(value)]='date'\n (valueChange)='onValueChange($event)'\n ></kendo-timepicker>\n ",
|
|
75
|
+
styles: ["\n kendo-datepicker,\n kendo-timepicker {\n width: 170px;\n }\n "]
|
|
75
76
|
})
|
|
76
77
|
], SchedulerDateTimePickerComponent);
|
|
77
78
|
return SchedulerDateTimePickerComponent;
|
|
@@ -284,7 +284,7 @@ var EditDialogComponent = /** @class */ (function () {
|
|
|
284
284
|
EditDialogComponent = tslib_1.__decorate([
|
|
285
285
|
Component({
|
|
286
286
|
selector: 'kendo-scheduler-edit-dialog',
|
|
287
|
-
template: "\n <kendo-dialog (close)='onClose()' [minWidth]='700' *ngIf='isActive' title='{{ textFor(\"editorTitle\") }}' class='k-scheduler-edit-dialog' [autoFocusedElement]=\"autoFocusedElement\">\n <ng-container *ngIf='!editTemplate'>\n <div class='k-scheduler-edit-form'>\n <div class='k-edit-form-container'>\n <form novalidate [formGroup]='formGroup'>\n <div class='k-edit-label'>\n <label for='k-event-title'>{{ textFor('editorEventTitle') }}</label>\n </div>\n <div class='k-edit-field'>\n <input #title id='k-event-title'
|
|
287
|
+
template: "\n <kendo-dialog (close)='onClose()' [minWidth]='700' *ngIf='isActive' title='{{ textFor(\"editorTitle\") }}' class='k-scheduler-edit-dialog' [autoFocusedElement]=\"autoFocusedElement\">\n <ng-container *ngIf='!editTemplate'>\n <div class='k-scheduler-edit-form'>\n <div class='k-edit-form-container'>\n <form novalidate [formGroup]='formGroup'>\n <div class='k-edit-label'>\n <label for='k-event-title'>{{ textFor('editorEventTitle') }}</label>\n </div>\n <div class='k-edit-field'>\n <input #title id='k-event-title' kendoTextBox placeholder='Title' [formControl]='formGroup.get(fields.title)' />\n </div>\n\n <div class='k-edit-label'>\n <label (click)=\"startDateTimePicker.focus()\">{{ textFor('editorEventStart') }}</label>\n </div>\n <div class='k-edit-field'>\n <kendo-scheduler-datetime-picker #startDateTimePicker [formControl]='formGroup.get(fields.start)'\n [isAllDay]='getFormValue(fields.isAllDay)?.value'>\n </kendo-scheduler-datetime-picker>\n </div>\n\n <ng-container *ngIf=\"isStartTimeZoneVisible\">\n <div class='k-edit-label'>\n <label (click)=\"startTzPicker.focus()\">{{ textFor('editorEventStartTimeZone') }}</label>\n </div>\n\n <div class='k-edit-field'>\n <kendo-timezone-editor #startTzPicker [formControl]='formGroup.get(fields.startTimezone)'></kendo-timezone-editor>\n </div>\n </ng-container>\n\n <div class='k-edit-label'>\n <label (click)=\"endDateTimePicker.focus()\">{{ textFor('editorEventEnd') }}</label>\n </div>\n <div class='k-edit-field'>\n <kendo-scheduler-datetime-picker #endDateTimePicker [formControl]='formGroup.get(fields.end)'\n [isAllDay]='getFormValue(fields.isAllDay)?.value'>\n </kendo-scheduler-datetime-picker>\n </div>\n\n <ng-container *ngIf=\"isEndTimeZoneVisible\">\n <div class='k-edit-label'>\n <label (click)=\"endTzPicker.focus()\">{{ textFor('editorEventEndTimeZone') }}</label>\n </div>\n\n <div class='k-edit-field'>\n <kendo-timezone-editor #endTzPicker [formControl]='formGroup.get(fields.endTimezone)'></kendo-timezone-editor>\n </div>\n </ng-container>\n\n <div class='k-edit-field' *ngIf=\"hasAllDay\">\n <input type='checkbox' id='k-is-allday-chkbox' kendoCheckBox [formControl]='formGroup.get(fields.isAllDay)' />\n <label class='k-checkbox-label' for='k-is-allday-chkbox'>{{ textFor('editorEventAllDay') }}</label>\n </div>\n\n <div class='k-edit-field' *ngIf=\"hasStartTimeZone\">\n <input type='checkbox' id='k-set-timezone' kendoCheckBox\n formControlName='startTimezoneCheckbox' />\n <label class='k-checkbox-label' for='k-set-timezone'>{{ textFor('editorEventTimeZone') }}</label>\n\n <ng-container *ngIf=\"isStartTimeZoneVisible && hasEndTimeZone\">\n <input type='checkbox' id='k-use-separate' kendoCheckBox formControlName='endTimezoneCheckbox' />\n <label class='k-checkbox-label' for='k-use-separate'>{{ textFor('editorEventSeparateTimeZones') }}</label>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"isEditingSeries\">\n <kendo-recurrence-editor\n [formControl]='formGroup.get(fields.recurrenceRule)'\n [start]='recurrenceStart'\n [timezone]='eventTimezone'\n [weekStart]='weekStart'\n ></kendo-recurrence-editor>\n </ng-container>\n\n <ng-container *ngIf='getFormValue(fields.description)'>\n <div class='k-edit-label'>\n <label for='k-event-description'>{{ textFor('editorEventDescription') }}</label>\n </div>\n <div class='k-edit-field'>\n <textarea id='k-event-description' kendoTextArea [formControl]='formGroup.get(fields.description)'></textarea>\n </div>\n </ng-container>\n\n <ng-container *ngFor='let resource of resources'>\n <ng-container *ngIf='getFormValue(resource.field)'>\n <div class='k-edit-label'>\n <label (click)=\"onResourceClick(resource)\">\n {{ resource.name ? resource.name : resource.field }}\n </label>\n </div>\n <div class='k-edit-field'>\n <kendo-multiple-resource-editor\n *ngIf='resource.multiple'\n [formControl]='formGroup.get(resource.field)'\n [resource]='resource'>\n </kendo-multiple-resource-editor>\n <kendo-single-resource-editor\n *ngIf='!resource.multiple'\n [formControl]='formGroup.get(resource.field)'\n [resource]='resource'>\n </kendo-single-resource-editor>\n </div>\n </ng-container>\n </ng-container>\n </form>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf='editTemplate'>\n <form novalidate [formGroup]='formGroup'>\n <ng-container [ngTemplateOutlet]='editTemplate.templateRef'\n [ngTemplateOutletContext]=\"{\n $implicit: formGroup,\n formGroup: formGroup,\n dataItem: editedEvent,\n editMode: editMode,\n isNew: isNew\n }\">\n </ng-container>\n </form>\n </ng-container>\n\n <kendo-dialog-actions>\n <button kendoButton (click)=\"onCancel($event)\">{{ textFor('cancel') }}</button>\n <button kendoButton themeColor=\"primary\" (click)=\"onSave($event)\" [disabled]=\"!formGroup.valid\">{{ textFor('save') }}</button>\n </kendo-dialog-actions>\n </kendo-dialog>\n "
|
|
288
288
|
}),
|
|
289
289
|
tslib_1.__metadata("design:paramtypes", [NgZone,
|
|
290
290
|
EditService,
|
|
@@ -16,6 +16,7 @@ var EndRuleRadioButtonDirective = /** @class */ (function () {
|
|
|
16
16
|
this.changeDetector = changeDetector;
|
|
17
17
|
this.type = 'radio';
|
|
18
18
|
this.radioClass = true;
|
|
19
|
+
this.radioSizeClass = true;
|
|
19
20
|
this.destroyChange = this.renderer.listen(this.elem, 'change', this.onChange.bind(this));
|
|
20
21
|
}
|
|
21
22
|
EndRuleRadioButtonDirective.prototype.ngOnInit = function () {
|
|
@@ -56,6 +57,10 @@ var EndRuleRadioButtonDirective = /** @class */ (function () {
|
|
|
56
57
|
HostBinding('class.k-radio'),
|
|
57
58
|
tslib_1.__metadata("design:type", Boolean)
|
|
58
59
|
], EndRuleRadioButtonDirective.prototype, "radioClass", void 0);
|
|
60
|
+
tslib_1.__decorate([
|
|
61
|
+
HostBinding('class.k-radio-md'),
|
|
62
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
63
|
+
], EndRuleRadioButtonDirective.prototype, "radioSizeClass", void 0);
|
|
59
64
|
tslib_1.__decorate([
|
|
60
65
|
Input("kendoRecurrenceEndRuleRadioButton"),
|
|
61
66
|
tslib_1.__metadata("design:type", String)
|
|
@@ -267,7 +267,7 @@ var RecurrenceMonthlyYearlyEditorComponent = /** @class */ (function () {
|
|
|
267
267
|
RecurrenceMonthlyYearlyEditorComponent = tslib_1.__decorate([
|
|
268
268
|
Component({
|
|
269
269
|
selector: 'kendo-recurrence-monthly-yearly-editor',
|
|
270
|
-
template: "\n <div class='k-edit-label'>\n <label (click)=\"onRepeatOnLabelClick()\">{{ textForRepeatOn() }}</label>\n </div>\n <div class='k-edit-field'>\n <ul class='k-reset' [style.width.px]='650'>\n <li>\n <input kendoRecurrenceRepeatOnRadioButton='monthday-{{uniqueId}}' />\n\n <label class='k-radio-label' for='k-repeaton-monthday-{{uniqueId}}'>\n <ng-template [ngIf]=\"currentFreq === 'monthly'\">\n {{ textFor('monthlyDay') }}\n </ng-template>\n </label>\n\n <ng-template [ngIf]=\"currentFreq === 'yearly'\">\n <kendo-dropdownlist\n [data]='months'\n textField='text'\n valueField='value'\n [value]='currentMonthMonthDay'\n [valuePrimitive]='true'\n (valueChange)=\"onMonthChange($event, 'monthday')\"\n [disabled]=\"isDisabled('monthday')\">\n </kendo-dropdownlist>\n </ng-template>\n\n <kendo-numerictextbox\n [style.width.px]='70'\n [min]=\"numericOptions.min\"\n [max]=\"numericOptions.max\"\n [decimals]=\"0\"\n [format]=\"numericOptions.format\"\n [autoCorrect]=\"numericOptions.autoCorrect\"\n [readonly]=\"numericOptions.readonly\"\n [selectOnFocus]=\"numericOptions.selectOnFocus\"\n [spinners]=\"numericOptions.spinners\"\n [step]=\"numericOptions.step\"\n [title]=\"numericOptions.title\"\n [value]='monthDay'\n (valueChange)='onMonthDayChange($event)'\n [disabled]=\"isDisabled('monthday')\">\n </kendo-numerictextbox>\n </li>\n <li>\n <input kendoRecurrenceRepeatOnRadioButton='weekday-{{uniqueId}}' />\n <label class='k-radio-label' for='k-repeaton-weekday-{{uniqueId}}'></label>\n\n <kendo-dropdownlist\n [data]='offsetPositions'\n textField='text'\n valueField='value'\n [value]='offset'\n [valuePrimitive]='true'\n (valueChange)='onOffsetPositionChange($event)'\n [disabled]=\"isDisabled('weekday')\">\n </kendo-dropdownlist>\n\n <kendo-dropdownlist\n [data]=\"extendedWeekDays\"\n textField='text'\n valueField='value'\n [value]='weekDay'\n [valuePrimitive]='true'\n (valueChange)='onWeekDayChange($event)'\n [disabled]=\"isDisabled('weekday')\">\n </kendo-dropdownlist>\n\n <ng-template [ngIf]=\"currentFreq === 'yearly'\">\n <span>{{ textFor('yearlyOf') }}</span>\n\n <kendo-dropdownlist\n [data]='months'\n textField='text'\n valueField='value'\n [value]='currentMonthWeekDay'\n [valuePrimitive]='true'\n (valueChange)=\"onMonthChange($event, 'weekday')\"\n [disabled]=\"isDisabled('weekday')\">\n </kendo-dropdownlist>\n </ng-template>\n </li>\n </ul>\n </div>\n "
|
|
270
|
+
template: "\n <div class='k-edit-label'>\n <label (click)=\"onRepeatOnLabelClick()\">{{ textForRepeatOn() }}</label>\n </div>\n <div class='k-edit-field'>\n <ul class='k-reset' [style.width.px]='650'>\n <li>\n <input kendoRecurrenceRepeatOnRadioButton='monthday-{{uniqueId}}' />\n\n <label class='k-radio-label' for='k-repeaton-monthday-{{uniqueId}}'>\n <ng-template [ngIf]=\"currentFreq === 'monthly'\">\n {{ textFor('monthlyDay') }}\n </ng-template>\n </label>\n\n <ng-template [ngIf]=\"currentFreq === 'yearly'\">\n <kendo-dropdownlist\n [data]='months'\n textField='text'\n valueField='value'\n [value]='currentMonthMonthDay'\n [valuePrimitive]='true'\n (valueChange)=\"onMonthChange($event, 'monthday')\"\n [disabled]=\"isDisabled('monthday')\"\n [style.width.px]=\"170\"\n [style.margin]=\"'0 .4ex 0 1ex'\">\n </kendo-dropdownlist>\n </ng-template>\n\n <kendo-numerictextbox\n [style.width.px]='70'\n [min]=\"numericOptions.min\"\n [max]=\"numericOptions.max\"\n [decimals]=\"0\"\n [format]=\"numericOptions.format\"\n [autoCorrect]=\"numericOptions.autoCorrect\"\n [readonly]=\"numericOptions.readonly\"\n [selectOnFocus]=\"numericOptions.selectOnFocus\"\n [spinners]=\"numericOptions.spinners\"\n [step]=\"numericOptions.step\"\n [title]=\"numericOptions.title\"\n [value]='monthDay'\n (valueChange)='onMonthDayChange($event)'\n [disabled]=\"isDisabled('monthday')\"\n [style.margin]=\"'0 .4ex 0 1ex'\">\n </kendo-numerictextbox>\n </li>\n <li>\n <input kendoRecurrenceRepeatOnRadioButton='weekday-{{uniqueId}}' />\n <label class='k-radio-label' for='k-repeaton-weekday-{{uniqueId}}'></label>\n\n <kendo-dropdownlist\n [data]='offsetPositions'\n textField='text'\n valueField='value'\n [value]='offset'\n [valuePrimitive]='true'\n (valueChange)='onOffsetPositionChange($event)'\n [disabled]=\"isDisabled('weekday')\"\n [style.width.px]=\"170\"\n [style.margin]=\"'0 .4ex 0 1ex'\">\n </kendo-dropdownlist>\n\n <kendo-dropdownlist\n [data]=\"extendedWeekDays\"\n textField='text'\n valueField='value'\n [value]='weekDay'\n [valuePrimitive]='true'\n (valueChange)='onWeekDayChange($event)'\n [disabled]=\"isDisabled('weekday')\"\n [style.width.px]=\"170\"\n [style.margin]=\"'0 .4ex 0 1ex'\">\n </kendo-dropdownlist>\n\n <ng-template [ngIf]=\"currentFreq === 'yearly'\">\n <span>{{ textFor('yearlyOf') }}</span>\n\n <kendo-dropdownlist\n [data]='months'\n textField='text'\n valueField='value'\n [value]='currentMonthWeekDay'\n [valuePrimitive]='true'\n (valueChange)=\"onMonthChange($event, 'weekday')\"\n [disabled]=\"isDisabled('weekday')\"\n [style.width.px]=\"170\"\n [style.margin]=\"'0 .4ex 0 1ex'\">\n </kendo-dropdownlist>\n </ng-template>\n </li>\n </ul>\n </div>\n "
|
|
271
271
|
}),
|
|
272
272
|
tslib_1.__metadata("design:paramtypes", [RecurrenceService,
|
|
273
273
|
LocalizationService])
|
|
@@ -16,6 +16,7 @@ var RepeatOnRadioButtonDirective = /** @class */ (function () {
|
|
|
16
16
|
this.changeDetector = changeDetector;
|
|
17
17
|
this.type = 'radio';
|
|
18
18
|
this.radioClass = true;
|
|
19
|
+
this.radioSizeClass = true;
|
|
19
20
|
this.destroyChange = this.renderer.listen(this.elem, 'change', this.onChange.bind(this));
|
|
20
21
|
}
|
|
21
22
|
Object.defineProperty(RepeatOnRadioButtonDirective.prototype, "repeatOnRule", {
|
|
@@ -65,6 +66,10 @@ var RepeatOnRadioButtonDirective = /** @class */ (function () {
|
|
|
65
66
|
HostBinding('class.k-radio'),
|
|
66
67
|
tslib_1.__metadata("design:type", Boolean)
|
|
67
68
|
], RepeatOnRadioButtonDirective.prototype, "radioClass", void 0);
|
|
69
|
+
tslib_1.__decorate([
|
|
70
|
+
HostBinding('class.k-radio-md'),
|
|
71
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
72
|
+
], RepeatOnRadioButtonDirective.prototype, "radioSizeClass", void 0);
|
|
68
73
|
tslib_1.__decorate([
|
|
69
74
|
Input("kendoRecurrenceRepeatOnRadioButton"),
|
|
70
75
|
tslib_1.__metadata("design:type", String),
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { SlotDragEvent } from './slot-drag-event';
|
|
7
|
+
/**
|
|
8
|
+
* Arguments for the `slotDragEnd` event.
|
|
9
|
+
*/
|
|
10
|
+
var SlotDragEndEvent = /** @class */ (function (_super) {
|
|
11
|
+
tslib_1.__extends(SlotDragEndEvent, _super);
|
|
12
|
+
function SlotDragEndEvent() {
|
|
13
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
14
|
+
}
|
|
15
|
+
return SlotDragEndEvent;
|
|
16
|
+
}(SlotDragEvent));
|
|
17
|
+
export { SlotDragEndEvent };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
/**
|
|
6
|
+
* Arguments for the `slotDrag` event.
|
|
7
|
+
*/
|
|
8
|
+
var SlotDragEvent = /** @class */ (function () {
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
function SlotDragEvent(sender, args) {
|
|
13
|
+
this.sender = sender;
|
|
14
|
+
Object.assign(this, args);
|
|
15
|
+
}
|
|
16
|
+
return SlotDragEvent;
|
|
17
|
+
}());
|
|
18
|
+
export { SlotDragEvent };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import * as tslib_1 from "tslib";
|
|
6
|
+
import { PreventableEvent } from './preventable-event';
|
|
7
|
+
/**
|
|
8
|
+
* Arguments for the `slotDragStart` event.
|
|
9
|
+
* The event is preventable and if prevented, subsequent `slotDrag`, `slotDragEnd`, and `slotSelectionChange` will not be fired.
|
|
10
|
+
*/
|
|
11
|
+
var SlotDragStartEvent = /** @class */ (function (_super) {
|
|
12
|
+
tslib_1.__extends(SlotDragStartEvent, _super);
|
|
13
|
+
/**
|
|
14
|
+
* @hidden
|
|
15
|
+
*/
|
|
16
|
+
function SlotDragStartEvent(sender, args) {
|
|
17
|
+
var _this = _super.call(this) || this;
|
|
18
|
+
_this.sender = sender;
|
|
19
|
+
Object.assign(_this, args);
|
|
20
|
+
return _this;
|
|
21
|
+
}
|
|
22
|
+
return SlotDragStartEvent;
|
|
23
|
+
}(PreventableEvent));
|
|
24
|
+
export { SlotDragStartEvent };
|
package/dist/es/events.js
CHANGED
|
@@ -20,3 +20,6 @@ export { DragEvent } from './events/drag-event';
|
|
|
20
20
|
export { DragEndEvent } from './events/drag-end-event';
|
|
21
21
|
export { EditEvent } from './events/edit-event';
|
|
22
22
|
export { AddEvent } from './events/add-event';
|
|
23
|
+
export { SlotDragStartEvent } from './events/slot-drag-start-event';
|
|
24
|
+
export { SlotDragEvent } from './events/slot-drag-event';
|
|
25
|
+
export { SlotDragEndEvent } from './events/slot-drag-end-event';
|
package/dist/es/index.js
CHANGED
|
@@ -59,6 +59,7 @@ export { HintContainerComponent } from './views/common/hint-container.component'
|
|
|
59
59
|
export { RepeatPipe } from './views/common/repeat.pipe';
|
|
60
60
|
export { ResizeHintComponent } from './views/common/resize-hint.component';
|
|
61
61
|
export { ResourceIteratorPipe } from './views/common/resource-iterator.pipe';
|
|
62
|
+
export { SlotSelectableDirective } from './views/common/slot-selectable.directive';
|
|
62
63
|
export { ViewFooterComponent } from './views/common/view-footer.component';
|
|
63
64
|
export { ViewsSharedModule } from './views/common/views-shared.module';
|
|
64
65
|
export { WorkHoursFooterDirective } from './views/common/work-hours-footer.directive';
|
|
@@ -9,7 +9,7 @@ export var packageMetadata = {
|
|
|
9
9
|
name: '@progress/kendo-angular-scheduler',
|
|
10
10
|
productName: 'Kendo UI for Angular',
|
|
11
11
|
productCodes: ['KENDOUIANGULAR', 'KENDOUICOMPLETE'],
|
|
12
|
-
publishDate:
|
|
12
|
+
publishDate: 1644228429,
|
|
13
13
|
version: '',
|
|
14
14
|
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'
|
|
15
15
|
};
|
|
@@ -42,6 +42,9 @@ import { LoadingComponent } from './loading.component';
|
|
|
42
42
|
import { FocusService } from './navigation';
|
|
43
43
|
import { DomEventsService } from './views/common/dom-events.service';
|
|
44
44
|
import { closest } from './common/dom-queries';
|
|
45
|
+
import { alwaysFalse } from './views/utils';
|
|
46
|
+
import { SlotDragEvent } from './events/slot-drag-event';
|
|
47
|
+
import { SlotDragEndEvent } from './events/slot-drag-end-event';
|
|
45
48
|
var todayDate = function () { return getDate(new Date()); };
|
|
46
49
|
var ɵ0 = todayDate;
|
|
47
50
|
var DAYS_IN_WEEK = 7;
|
|
@@ -85,6 +88,12 @@ var SchedulerComponent = /** @class */ (function () {
|
|
|
85
88
|
* Specifies if the Scheduler is editable.
|
|
86
89
|
*/
|
|
87
90
|
this.editable = false;
|
|
91
|
+
/**
|
|
92
|
+
* Specifies if the Scheduler's day or time slots are selectable ([see example]({% slug slotselection_scheduler %}#toc-custom-callback)).
|
|
93
|
+
*
|
|
94
|
+
* When this input is set to `true`, the Scheduler component will emit [`slotDragStart`]({% slug api_scheduler_schedulercomponent %}#toc-slotdragstart), [`slotDrag`]({% slug api_scheduler_schedulercomponent %}#toc-slotdrag), and [`slotDragEnd`]({% slug api_scheduler_schedulercomponent %}#toc-slotdragend) events upon user interaction.
|
|
95
|
+
*/
|
|
96
|
+
this.selectable = false;
|
|
88
97
|
/**
|
|
89
98
|
* The height of the events in the **Month** and **Timeline** views, and the height of the **All day** events in the **Day** and **Week** views.
|
|
90
99
|
*/
|
|
@@ -136,6 +145,11 @@ var SchedulerComponent = /** @class */ (function () {
|
|
|
136
145
|
* Specifies the Scheduler current time marker settings.
|
|
137
146
|
*/
|
|
138
147
|
this.currentTimeMarker = true;
|
|
148
|
+
/**
|
|
149
|
+
* A callback that executes for each slot of the Scheduler view.
|
|
150
|
+
* If it returns `true`, the `k-state-selected` CSS class will be added to the cell, making it visibly selected.
|
|
151
|
+
*/
|
|
152
|
+
this.isSlotSelected = alwaysFalse;
|
|
139
153
|
/**
|
|
140
154
|
* @hidden
|
|
141
155
|
*/
|
|
@@ -210,6 +224,18 @@ var SchedulerComponent = /** @class */ (function () {
|
|
|
210
224
|
* Fires when the user stops dragging a Scheduler event.
|
|
211
225
|
*/
|
|
212
226
|
this.dragEnd = new EventEmitter();
|
|
227
|
+
/**
|
|
228
|
+
* Fires when the user starts drag-selecting a Scheduler slot range.
|
|
229
|
+
*/
|
|
230
|
+
this.slotDragStart = new EventEmitter();
|
|
231
|
+
/**
|
|
232
|
+
* Fires when the user is drag-selecting a Scheduler slot range.
|
|
233
|
+
*/
|
|
234
|
+
this.slotDrag = new EventEmitter();
|
|
235
|
+
/**
|
|
236
|
+
* Fires when the user stops drag-selecting a Scheduler slot range.
|
|
237
|
+
*/
|
|
238
|
+
this.slotDragEnd = new EventEmitter();
|
|
213
239
|
/**
|
|
214
240
|
* Fires when the user clicks the **PDF export** command button.
|
|
215
241
|
*/
|
|
@@ -400,6 +426,30 @@ var SchedulerComponent = /** @class */ (function () {
|
|
|
400
426
|
_this.resizeSensor.acceptSize();
|
|
401
427
|
}
|
|
402
428
|
}));
|
|
429
|
+
this.subs.add(this.viewState.slotSelectionStart
|
|
430
|
+
.subscribe(function (e) {
|
|
431
|
+
if (hasObservers(_this.slotDragStart)) {
|
|
432
|
+
_this.zone.run(function () {
|
|
433
|
+
_this.slotDragStart.emit(Object.assign(e, { sender: _this }));
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
}));
|
|
437
|
+
this.subs.add(this.viewState.slotSelectionDrag
|
|
438
|
+
.subscribe(function (value) {
|
|
439
|
+
if (hasObservers(_this.slotDrag)) {
|
|
440
|
+
_this.zone.run(function () {
|
|
441
|
+
_this.slotDrag.emit(new SlotDragEvent(_this, value));
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
}));
|
|
445
|
+
this.subs.add(this.viewState.slotSelectionEnd
|
|
446
|
+
.subscribe(function (value) {
|
|
447
|
+
if (hasObservers(_this.slotDragEnd)) {
|
|
448
|
+
_this.zone.run(function () {
|
|
449
|
+
_this.slotDragEnd.emit(new SlotDragEndEvent(_this, value));
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
}));
|
|
403
453
|
this.onViewIndexChange();
|
|
404
454
|
this.notifyOptionsChange = this.notifyOptionsChange.bind(this);
|
|
405
455
|
this.subs.add(this.allDayEventTemplate.changes.subscribe(this.notifyOptionsChange));
|
|
@@ -451,7 +501,7 @@ var SchedulerComponent = /** @class */ (function () {
|
|
|
451
501
|
if (anyChanged([
|
|
452
502
|
'group', 'resources', 'min', 'max', 'showWorkHours', 'startTime', 'scrollTime', 'endTime', 'eventHeight',
|
|
453
503
|
'workDayStart', 'workDayEnd', 'workWeekStart', 'workWeekEnd', 'weekStart', 'slotDuration', 'slotDivisions',
|
|
454
|
-
'editable', 'timezone', 'slotClass', 'slotFill', 'columnWidth', 'eventClass', 'eventStyles'
|
|
504
|
+
'editable', 'timezone', 'slotClass', 'slotFill', 'columnWidth', 'eventClass', 'eventStyles', 'isSlotSelected', 'selectable'
|
|
455
505
|
], changes)) {
|
|
456
506
|
this.notifyOptionsChange(changes);
|
|
457
507
|
}
|
|
@@ -704,6 +754,7 @@ var SchedulerComponent = /** @class */ (function () {
|
|
|
704
754
|
slotDivisions: this.slotDivisions,
|
|
705
755
|
eventHeight: this.eventHeight,
|
|
706
756
|
editable: this.editable,
|
|
757
|
+
selectable: this.selectable,
|
|
707
758
|
timezone: this.timezone,
|
|
708
759
|
currentTimeMarker: this.currentTimeMarker,
|
|
709
760
|
slotClass: this.slotClass,
|
|
@@ -711,6 +762,7 @@ var SchedulerComponent = /** @class */ (function () {
|
|
|
711
762
|
columnWidth: this.columnWidth,
|
|
712
763
|
eventClass: this.eventClass,
|
|
713
764
|
eventStyles: this.eventStyles,
|
|
765
|
+
isSlotSelected: this.isSlotSelected,
|
|
714
766
|
changes: changes
|
|
715
767
|
});
|
|
716
768
|
};
|
|
@@ -864,6 +916,10 @@ var SchedulerComponent = /** @class */ (function () {
|
|
|
864
916
|
Input(),
|
|
865
917
|
tslib_1.__metadata("design:type", Object)
|
|
866
918
|
], SchedulerComponent.prototype, "editable", void 0);
|
|
919
|
+
tslib_1.__decorate([
|
|
920
|
+
Input(),
|
|
921
|
+
tslib_1.__metadata("design:type", Boolean)
|
|
922
|
+
], SchedulerComponent.prototype, "selectable", void 0);
|
|
867
923
|
tslib_1.__decorate([
|
|
868
924
|
Input(),
|
|
869
925
|
tslib_1.__metadata("design:type", Date)
|
|
@@ -977,6 +1033,10 @@ var SchedulerComponent = /** @class */ (function () {
|
|
|
977
1033
|
Input(),
|
|
978
1034
|
tslib_1.__metadata("design:type", Function)
|
|
979
1035
|
], SchedulerComponent.prototype, "eventStyles", void 0);
|
|
1036
|
+
tslib_1.__decorate([
|
|
1037
|
+
Input(),
|
|
1038
|
+
tslib_1.__metadata("design:type", Function)
|
|
1039
|
+
], SchedulerComponent.prototype, "isSlotSelected", void 0);
|
|
980
1040
|
tslib_1.__decorate([
|
|
981
1041
|
Output(),
|
|
982
1042
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
@@ -1049,6 +1109,18 @@ var SchedulerComponent = /** @class */ (function () {
|
|
|
1049
1109
|
Output(),
|
|
1050
1110
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
1051
1111
|
], SchedulerComponent.prototype, "dragEnd", void 0);
|
|
1112
|
+
tslib_1.__decorate([
|
|
1113
|
+
Output(),
|
|
1114
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
1115
|
+
], SchedulerComponent.prototype, "slotDragStart", void 0);
|
|
1116
|
+
tslib_1.__decorate([
|
|
1117
|
+
Output(),
|
|
1118
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
1119
|
+
], SchedulerComponent.prototype, "slotDrag", void 0);
|
|
1120
|
+
tslib_1.__decorate([
|
|
1121
|
+
Output(),
|
|
1122
|
+
tslib_1.__metadata("design:type", EventEmitter)
|
|
1123
|
+
], SchedulerComponent.prototype, "slotDragEnd", void 0);
|
|
1052
1124
|
tslib_1.__decorate([
|
|
1053
1125
|
Output(),
|
|
1054
1126
|
tslib_1.__metadata("design:type", EventEmitter)
|
|
@@ -35,7 +35,7 @@ import { EditDialogComponent } from './editing/edit-dialog.component';
|
|
|
35
35
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
36
36
|
import { ButtonsModule } from '@progress/kendo-angular-buttons';
|
|
37
37
|
import { DateInputsModule } from '@progress/kendo-angular-dateinputs';
|
|
38
|
-
import { NumericTextBoxModule, TextBoxModule } from '@progress/kendo-angular-inputs';
|
|
38
|
+
import { CheckBoxModule, NumericTextBoxModule, TextAreaModule, TextBoxModule } from '@progress/kendo-angular-inputs';
|
|
39
39
|
import { DropDownsModule } from '@progress/kendo-angular-dropdowns';
|
|
40
40
|
import { SchedulerDateTimePickerComponent } from './editing/date-time-picker.component';
|
|
41
41
|
import { RecurrenceEditorComponent } from './editing/recurrence/recurrence-editor.component';
|
|
@@ -55,6 +55,7 @@ import { EditDialogTemplateDirective } from './editing/edit-dialog-template.dire
|
|
|
55
55
|
import { LoadingComponent } from './loading.component';
|
|
56
56
|
import { SharedModule } from './shared.module';
|
|
57
57
|
import { ShortcutsDirective } from './navigation/shortcuts.directive';
|
|
58
|
+
import { SlotSelectableDirective } from './views/common/slot-selectable.directive';
|
|
58
59
|
var TEMPLATES = [
|
|
59
60
|
AgendaDateTemplateDirective,
|
|
60
61
|
AgendaTimeTemplateDirective,
|
|
@@ -75,6 +76,7 @@ var declarations = [
|
|
|
75
76
|
DataBindingDirective,
|
|
76
77
|
ShortcutsDirective,
|
|
77
78
|
ReactiveEditingDirective,
|
|
79
|
+
SlotSelectableDirective,
|
|
78
80
|
SchedulerDateTimePickerComponent,
|
|
79
81
|
RecurrenceEditorComponent,
|
|
80
82
|
RecurrenceEndRuleEditorComponent,
|
|
@@ -104,6 +106,8 @@ var publicDirectives = [
|
|
|
104
106
|
].concat(declarations);
|
|
105
107
|
var importedKendoModules = [
|
|
106
108
|
ButtonsModule,
|
|
109
|
+
CheckBoxModule,
|
|
110
|
+
TextAreaModule,
|
|
107
111
|
DateInputsModule,
|
|
108
112
|
DialogModule,
|
|
109
113
|
NumericTextBoxModule,
|
|
@@ -77,7 +77,7 @@ var ToolbarViewSelectorComponent = /** @class */ (function () {
|
|
|
77
77
|
Component({
|
|
78
78
|
// tslint:disable-next-line:component-selector
|
|
79
79
|
selector: '[kendoSchedulerToolbarViewSelector]',
|
|
80
|
-
template: "\n <select *ngIf=\"ctx.views?.length > 1\"\n (change)=\"onChange($event)\"\n class=\"k-views-dropdown k-
|
|
80
|
+
template: "\n <select *ngIf=\"ctx.views?.length > 1\"\n (change)=\"onChange($event)\"\n class=\"k-views-dropdown k-picker-md k-rounded-md k-picker-solid k-dropdownlist k-picker\">\n <option *ngFor=\"let view of ctx.views\"\n [selected]=\"isSelected(view) == true\"\n [value]=\"view.name\"\n >\n {{ view.title }}\n </option>\n </select>\n <span class=\"k-scheduler-views k-button-group\">\n <button kendoButton\n type=\"button\"\n *ngFor=\"let view of ctx.views\"\n [selected]=\"isSelected(view)\"\n [attr.aria-pressed]=\"isSelected(view)\"\n (click)=\"select(view)\"\n >\n <span class=\"k-button-text\">\n {{ view.title }}\n </span>\n </button>\n </span>\n "
|
|
81
81
|
}),
|
|
82
82
|
tslib_1.__metadata("design:paramtypes", [ToolbarService])
|
|
83
83
|
], ToolbarViewSelectorComponent);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
/**
|
|
6
|
+
* The arguments for the [`isSlotSelected`]({% slug api_scheduler_schedulercomponent %}#toc-isslotselected) callback.
|
|
7
|
+
*/
|
|
8
|
+
var IsSlotSelectedArgs = /** @class */ (function () {
|
|
9
|
+
function IsSlotSelectedArgs() {
|
|
10
|
+
}
|
|
11
|
+
return IsSlotSelectedArgs;
|
|
12
|
+
}());
|
|
13
|
+
export { IsSlotSelectedArgs };
|
|
14
|
+
/**
|
|
15
|
+
* @hidden
|
|
16
|
+
*/
|
|
17
|
+
export var slotDragEventName;
|
|
18
|
+
(function (slotDragEventName) {
|
|
19
|
+
slotDragEventName["initDragSelect"] = "initDragSelect";
|
|
20
|
+
slotDragEventName["dragSelect"] = "dragSelect";
|
|
21
|
+
slotDragEventName["refreshSlotSelection"] = "refreshSlotSelection";
|
|
22
|
+
slotDragEventName["dragSelectRelease"] = "dragSelectRelease";
|
|
23
|
+
})(slotDragEventName || (slotDragEventName = {}));
|
package/dist/es/types.js
CHANGED
|
@@ -3,3 +3,4 @@
|
|
|
3
3
|
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
4
|
*-------------------------------------------------------------------------------------------*/
|
|
5
5
|
export * from './types/scheduler-view';
|
|
6
|
+
export { IsSlotSelectedArgs } from './types/slot-selection';
|