@progress/kendo-angular-scheduler 19.3.0-develop.8 → 19.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -89,10 +89,10 @@ export class EditDialogComponent {
89
89
  this.subs.add(fromEvent(this.element.nativeElement, 'keydown')
90
90
  .pipe(filter(() => this.isActive))
91
91
  .subscribe((e) => {
92
- if (e.keyCode === Keys.Escape) {
92
+ if (e.code === Keys.Escape) {
93
93
  this.reset();
94
94
  }
95
- if (e.keyCode === Keys.Enter && (withModifiers(e, Modifiers.CtrlKey) || withModifiers(e, Modifiers.MetaKey))) {
95
+ if ((e.code === Keys.Enter || e.code === Keys.NumpadEnter) && (withModifiers(e, Modifiers.CtrlKey) || withModifiers(e, Modifiers.MetaKey))) {
96
96
  this.onSave(e);
97
97
  }
98
98
  e.stopPropagation();
@@ -272,7 +272,7 @@ export class EditDialogComponent {
272
272
  <input
273
273
  #title
274
274
  kendoTextBox
275
- placeholder='Title'
275
+ [attr.placeholder]="textFor('editorEventTitle')"
276
276
  [formControl]='getControl(fields.title)'
277
277
  />
278
278
  </kendo-formfield>
@@ -469,7 +469,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
469
469
  <input
470
470
  #title
471
471
  kendoTextBox
472
- placeholder='Title'
472
+ [attr.placeholder]="textFor('editorEventTitle')"
473
473
  [formControl]='getControl(fields.title)'
474
474
  />
475
475
  </kendo-formfield>
@@ -182,7 +182,7 @@ export class RecurrenceEndRuleEditorComponent {
182
182
  <span class="k-radio-wrap">
183
183
  <input kendoRecurrenceEndRuleRadioButton='k-endrule-until-{{uniqueId}}' />
184
184
  </span>
185
- <label [labelClass]="false" class='k-radio-label' for='k-endrule-until-{{uniqueId}}'>{{ textFor('endOn') }}</label>
185
+ <label [labelClass]="false" class='k-radio-label' [attr.id]="'k-endrule-until-' + uniqueId + '-label'" for='k-endrule-until-{{uniqueId}}'>{{ textFor('endOn') }}</label>
186
186
  <kendo-datepicker
187
187
  class="k-recur-until"
188
188
  [style.width.px]='150'
@@ -206,6 +206,7 @@ export class RecurrenceEndRuleEditorComponent {
206
206
  [disabledDates]="datePickerOptions.disabledDates"
207
207
  [popupSettings]="datePickerOptions.popupSettings"
208
208
  [(value)]='untilValue'
209
+ [inputAttributes]="{ 'aria-labelledby': 'k-endrule-until-' + uniqueId + '-label' }"
209
210
  (blur)="onUntilBlur()"
210
211
  (valueChange)='onUntilChange($event)'
211
212
  >
@@ -277,7 +278,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
277
278
  <span class="k-radio-wrap">
278
279
  <input kendoRecurrenceEndRuleRadioButton='k-endrule-until-{{uniqueId}}' />
279
280
  </span>
280
- <label [labelClass]="false" class='k-radio-label' for='k-endrule-until-{{uniqueId}}'>{{ textFor('endOn') }}</label>
281
+ <label [labelClass]="false" class='k-radio-label' [attr.id]="'k-endrule-until-' + uniqueId + '-label'" for='k-endrule-until-{{uniqueId}}'>{{ textFor('endOn') }}</label>
281
282
  <kendo-datepicker
282
283
  class="k-recur-until"
283
284
  [style.width.px]='150'
@@ -301,6 +302,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
301
302
  [disabledDates]="datePickerOptions.disabledDates"
302
303
  [popupSettings]="datePickerOptions.popupSettings"
303
304
  [(value)]='untilValue'
305
+ [inputAttributes]="{ 'aria-labelledby': 'k-endrule-until-' + uniqueId + '-label' }"
304
306
  (blur)="onUntilBlur()"
305
307
  (valueChange)='onUntilChange($event)'
306
308
  >
@@ -23,3 +23,4 @@ export { AddEvent } from './events/add-event';
23
23
  export { SlotDragStartEvent } from './events/slot-drag-start-event';
24
24
  export { SlotDragEvent } from './events/slot-drag-event';
25
25
  export { SlotDragEndEvent } from './events/slot-drag-end-event';
26
+ export { CreateEvent } from './events/create-event';
@@ -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 { ChangeDetectorRef, Directive, NgZone } from '@angular/core';
6
- import { Keys } from '@progress/kendo-angular-common';
6
+ import { Keys, normalizeNumpadKeys } from '@progress/kendo-angular-common';
7
7
  import { ZonedDate } from '@progress/kendo-date-math';
8
8
  import { Subscription } from 'rxjs';
9
9
  import { FocusService } from './focus.service';
@@ -35,7 +35,7 @@ export class ShortcutsDirective {
35
35
  viewState;
36
36
  dialogsService;
37
37
  shortcuts = [{
38
- match: e => e.keyCode === Keys.KeyC && noModifiers(e),
38
+ match: e => e.code === Keys.KeyC && noModifiers(e),
39
39
  action: e => {
40
40
  const scheduler = this.scheduler;
41
41
  const hours = new Date().getHours();
@@ -61,10 +61,14 @@ export class ShortcutsDirective {
61
61
  });
62
62
  }
63
63
  }, {
64
- match: e => e.keyCode >= Keys.Digit1 && e.keyCode <= Keys.Digit9 && withModifiers(e, Modifiers.AltKey),
64
+ match: e => {
65
+ const code = normalizeNumpadKeys(e);
66
+ return (code.startsWith('Digit') || code.startsWith('Numpad')) && withModifiers(e, Modifiers.AltKey);
67
+ },
65
68
  action: e => {
66
69
  const scheduler = this.scheduler;
67
- const viewIndex = e.keyCode - Keys.Digit0 - 1;
70
+ const code = normalizeNumpadKeys(e);
71
+ const viewIndex = this.digitToNumber(code, code.startsWith('Digit') ? 'Digit' : 'Numpad') - 1;
68
72
  const views = scheduler.views.toArray();
69
73
  const view = views[viewIndex];
70
74
  if (view) {
@@ -78,7 +82,7 @@ export class ShortcutsDirective {
78
82
  }
79
83
  }
80
84
  }, {
81
- match: e => e.keyCode === Keys.F10 && noModifiers(e),
85
+ match: e => e.code === Keys.F10 && noModifiers(e),
82
86
  action: (e) => {
83
87
  this.zone.run(() => {
84
88
  e.preventDefault();
@@ -87,7 +91,7 @@ export class ShortcutsDirective {
87
91
  });
88
92
  }
89
93
  }, {
90
- match: e => e.keyCode === Keys.KeyT && noModifiers(e),
94
+ match: e => e.code === Keys.KeyT && noModifiers(e),
91
95
  action: () => {
92
96
  this.zone.run(() => {
93
97
  this.scheduler.onNavigationAction({ type: 'today' });
@@ -95,7 +99,7 @@ export class ShortcutsDirective {
95
99
  });
96
100
  }
97
101
  }, {
98
- match: e => e.keyCode === Keys.KeyB && noModifiers(e),
102
+ match: e => e.code === Keys.KeyB && noModifiers(e),
99
103
  action: () => {
100
104
  this.zone.run(() => {
101
105
  this.scheduler.onNavigationAction({ type: 'toggle-business-hours' });
@@ -103,16 +107,23 @@ export class ShortcutsDirective {
103
107
  });
104
108
  }
105
109
  }, {
106
- match: (e) => (e.keyCode === Keys.ArrowLeft || e.keyCode === Keys.ArrowRight) && withModifiers(e, Modifiers.ShiftKey),
110
+ match: (e) => {
111
+ const code = normalizeNumpadKeys(e);
112
+ return (code === Keys.ArrowLeft || code === Keys.ArrowRight) && withModifiers(e, Modifiers.ShiftKey);
113
+ },
107
114
  action: (e) => {
108
- const type = e.keyCode === Keys.ArrowLeft ? 'prev' : 'next';
115
+ const code = normalizeNumpadKeys(e);
116
+ const type = code === Keys.ArrowLeft ? 'prev' : 'next';
109
117
  this.zone.run(() => {
110
118
  this.scheduler.onNavigationAction({ type });
111
119
  this.focusWait();
112
120
  });
113
121
  }
114
122
  }, {
115
- match: e => (e.keyCode === Keys.ArrowUp || e.keyCode === Keys.ArrowLeft) && noModifiers(e) && !isContentWrapper(e.target),
123
+ match: e => {
124
+ const code = normalizeNumpadKeys(e);
125
+ return (code === Keys.ArrowUp || code === Keys.ArrowLeft) && noModifiers(e) && !isContentWrapper(e.target);
126
+ },
116
127
  action: e => {
117
128
  //use the MultiViewCalendar navigation for Year View
118
129
  if (e.target.tagName === CALENDAR_TAG) {
@@ -126,14 +137,18 @@ export class ShortcutsDirective {
126
137
  if (!prevented) {
127
138
  const item = this.focusService.activeItem;
128
139
  const isFirstEvent = item.containerType === 'content' && item.element.nativeElement.matches(':first-of-type');
129
- const isUpArrow = e.keyCode === Keys.ArrowUp;
140
+ const code = normalizeNumpadKeys(e);
141
+ const isUpArrow = code === Keys.ArrowUp;
130
142
  // eslint-disable-next-line no-unused-expressions
131
143
  isFirstEvent && isUpArrow ? this.focusService.focusToolbar() : this.focusService.focusNext({ offset: -1 });
132
144
  e.preventDefault();
133
145
  }
134
146
  }
135
147
  }, {
136
- match: e => (e.keyCode === Keys.ArrowDown || e.keyCode === Keys.ArrowRight) && noModifiers(e) && !isContentWrapper(e.target),
148
+ match: e => {
149
+ const code = normalizeNumpadKeys(e);
150
+ return (code === Keys.ArrowDown || code === Keys.ArrowRight) && noModifiers(e) && !isContentWrapper(e.target);
151
+ },
137
152
  action: e => {
138
153
  //use the MultiViewCalendar navigation for Year View
139
154
  if (e.target.tagName === CALENDAR_TAG) {
@@ -147,7 +162,8 @@ export class ShortcutsDirective {
147
162
  if (!prevented) {
148
163
  const isInToolbar = this.focusService.activeItem.containerType === 'toolbar';
149
164
  const offset = 1;
150
- if (e.keyCode === Keys.ArrowDown && isInToolbar) {
165
+ const code = normalizeNumpadKeys(e);
166
+ if (code === Keys.ArrowDown && isInToolbar) {
151
167
  const focusableElementsArray = Array.from(this.focusService.focusableItems);
152
168
  const firstFocusableContentElementIndex = focusableElementsArray.findIndex(item => item.containerType === 'content');
153
169
  if (firstFocusableContentElementIndex > -1) {
@@ -162,13 +178,13 @@ export class ShortcutsDirective {
162
178
  }
163
179
  }];
164
180
  taskShortcuts = [{
165
- match: e => (e.keyCode === Keys.Delete || e.keyCode === Keys.Backspace) && noModifiers(e),
181
+ match: e => (e.code === Keys.Delete || e.code === Keys.Backspace) && noModifiers(e),
166
182
  action: (e, event) => {
167
183
  this.viewState.emitEvent('remove', { event: event, dataItem: event.dataItem });
168
184
  e.preventDefault();
169
185
  }
170
186
  }, {
171
- match: e => e.keyCode === Keys.Enter && noModifiers(e),
187
+ match: e => (e.code === Keys.Enter || e.code === Keys.NumpadEnter) && noModifiers(e),
172
188
  action: (e, event) => {
173
189
  this.viewState.emitEvent('eventDblClick', { type: 'dblclick', event: event, originalEvent: e });
174
190
  e.preventDefault();
@@ -208,6 +224,9 @@ export class ShortcutsDirective {
208
224
  element.closest('.k-views-dropdown');
209
225
  return isInToolbar && !isInBuiltInElement;
210
226
  }
227
+ digitToNumber(code, keyType) {
228
+ return parseInt(code.replace(keyType, ''), 10);
229
+ }
211
230
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShortcutsDirective, deps: [{ token: i1.SchedulerComponent }, { token: i2.DomEventsService }, { token: i3.FocusService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i4.ViewStateService }, { token: i5.DialogsService }], target: i0.ɵɵFactoryTarget.Directive });
212
231
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ShortcutsDirective, isStandalone: true, selector: "kendo-scheduler", ngImport: i0 });
213
232
  }
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1752479567,
14
- version: '19.3.0-develop.8',
13
+ publishDate: 1755030780,
14
+ version: '19.3.0',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -4,7 +4,7 @@
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { Component, ContentChild, ContentChildren, EventEmitter, HostBinding, Input, isDevMode, NgZone, Output, QueryList, ViewChild, ViewContainerRef, ChangeDetectorRef, ChangeDetectionStrategy, ElementRef, Renderer2 } from '@angular/core';
6
6
  import { L10N_PREFIX, LocalizationService } from '@progress/kendo-angular-l10n';
7
- import { ResizeSensorComponent, isDocumentAvailable, shouldShowValidationUI, anyChanged, isChanged, hasObservers, WatermarkOverlayComponent } from '@progress/kendo-angular-common';
7
+ import { ResizeSensorComponent, isDocumentAvailable, shouldShowValidationUI, getLicenseMessage, anyChanged, isChanged, hasObservers, WatermarkOverlayComponent } from '@progress/kendo-angular-common';
8
8
  import { getDate, ZonedDate, Day } from '@progress/kendo-date-math';
9
9
  import { take } from 'rxjs/operators';
10
10
  import { validatePackage } from '@progress/kendo-licensing';
@@ -500,6 +500,10 @@ export class SchedulerComponent {
500
500
  * @hidden
501
501
  */
502
502
  showLicenseWatermark = false;
503
+ /**
504
+ * @hidden
505
+ */
506
+ licenseMessage;
503
507
  /**
504
508
  * @hidden
505
509
  */
@@ -531,6 +535,7 @@ export class SchedulerComponent {
531
535
  this.renderer = renderer;
532
536
  this.focusService = focusService;
533
537
  const isValid = validatePackage(packageMetadata);
538
+ this.licenseMessage = getLicenseMessage(packageMetadata);
534
539
  this.showLicenseWatermark = shouldShowValidationUI(isValid);
535
540
  this.dateRangeStream = viewState.dateRange;
536
541
  this.selectedDateStream = viewContext.selectedDate;
@@ -1406,8 +1411,8 @@ export class SchedulerComponent {
1406
1411
  <div [loading]="loading" kendoSchedulerLoading>
1407
1412
  </div>
1408
1413
 
1409
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
1410
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]" }, { kind: "component", type: ToolbarComponent, selector: "kendo-scheduler-toolbar", inputs: ["selectedView", "views", "dateRange", "selectedDate", "template", "min", "max"], outputs: ["navigate", "toolbarWidthChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-scheduler-edit-dialog", inputs: ["resources", "timezone", "weekStart", "fields", "editTemplate"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: LoadingComponent, selector: "[kendoSchedulerLoading]", inputs: ["loading"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1414
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
1415
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]" }, { kind: "component", type: ToolbarComponent, selector: "kendo-scheduler-toolbar", inputs: ["selectedView", "views", "dateRange", "selectedDate", "template", "min", "max"], outputs: ["navigate", "toolbarWidthChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-scheduler-edit-dialog", inputs: ["resources", "timezone", "weekStart", "fields", "editTemplate"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: LoadingComponent, selector: "[kendoSchedulerLoading]", inputs: ["loading"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1411
1416
  }
1412
1417
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SchedulerComponent, decorators: [{
1413
1418
  type: Component,
@@ -1764,7 +1769,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1764
1769
  <div [loading]="loading" kendoSchedulerLoading>
1765
1770
  </div>
1766
1771
 
1767
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
1772
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
1768
1773
  `,
1769
1774
  standalone: true,
1770
1775
  imports: [LocalizedMessagesDirective, ToolbarComponent, NgTemplateOutlet, EditDialogComponent, ResizeSensorComponent, LoadingComponent, NgIf, WatermarkOverlayComponent]
@@ -67,7 +67,17 @@ function initTimeColumns(slotKeys, slotItems) {
67
67
  const intersectingEvents = intersects(event.item.startTime, event.item.endTime, current.item.startTime, current.item.endTime);
68
68
  const overlappingEvents = minHeightOverlaps(current.rect.top, event.rect.top);
69
69
  if (!(anyOverlappingEvents || intersectingEvents || overlappingEvents)) {
70
- columns--;
70
+ const currentSlotDay = new Date(slot.start).toDateString();
71
+ const hasPreviousSlotsWithMoreOrSameColumns = slotKeys.some(previousKey => {
72
+ const previousSlot = slotItems[previousKey].slot;
73
+ const previousSlotDay = new Date(previousSlot.start).toDateString();
74
+ return previousSlotDay === currentSlotDay &&
75
+ previousSlot.start < slot.start &&
76
+ previousSlot.columns >= (columns - 1);
77
+ });
78
+ if (!hasPreviousSlotsWithMoreOrSameColumns) {
79
+ columns--;
80
+ }
71
81
  event.columnIndex = idx;
72
82
  event.lastColumn = !events.some((e) => {
73
83
  const hasColumnIndex = e.columnIndex;
package/events.d.ts CHANGED
@@ -23,3 +23,4 @@ export { AddEvent } from './events/add-event';
23
23
  export { SlotDragStartEvent } from './events/slot-drag-start-event';
24
24
  export { SlotDragEvent } from './events/slot-drag-event';
25
25
  export { SlotDragEndEvent } from './events/slot-drag-end-event';
26
+ export { CreateEvent } from './events/create-event';
@@ -7,7 +7,7 @@ import { Directive, Optional, Injectable, EventEmitter, Input, Inject, isDevMode
7
7
  import * as i1$1 from '@progress/kendo-angular-l10n';
8
8
  import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
9
9
  import * as i7 from '@progress/kendo-angular-common';
10
- import { hasObservers, isDocumentAvailable, isVisible as isVisible$1, scrollbarWidth, isChanged, Keys, ResizeSensorComponent, shouldShowValidationUI, anyChanged, WatermarkOverlayComponent, guid, ResizeBatchService } from '@progress/kendo-angular-common';
10
+ import { hasObservers, isDocumentAvailable, isVisible as isVisible$1, scrollbarWidth, isChanged, Keys, ResizeSensorComponent, getLicenseMessage, shouldShowValidationUI, anyChanged, WatermarkOverlayComponent, guid, normalizeNumpadKeys, ResizeBatchService } from '@progress/kendo-angular-common';
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';
@@ -43,8 +43,8 @@ const packageMetadata = {
43
43
  productName: 'Kendo UI for Angular',
44
44
  productCode: 'KENDOUIANGULAR',
45
45
  productCodes: ['KENDOUIANGULAR'],
46
- publishDate: 1752479567,
47
- version: '19.3.0-develop.8',
46
+ publishDate: 1755030780,
47
+ version: '19.3.0',
48
48
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
49
49
  };
50
50
 
@@ -3687,7 +3687,7 @@ class RecurrenceEndRuleEditorComponent {
3687
3687
  <span class="k-radio-wrap">
3688
3688
  <input kendoRecurrenceEndRuleRadioButton='k-endrule-until-{{uniqueId}}' />
3689
3689
  </span>
3690
- <label [labelClass]="false" class='k-radio-label' for='k-endrule-until-{{uniqueId}}'>{{ textFor('endOn') }}</label>
3690
+ <label [labelClass]="false" class='k-radio-label' [attr.id]="'k-endrule-until-' + uniqueId + '-label'" for='k-endrule-until-{{uniqueId}}'>{{ textFor('endOn') }}</label>
3691
3691
  <kendo-datepicker
3692
3692
  class="k-recur-until"
3693
3693
  [style.width.px]='150'
@@ -3711,6 +3711,7 @@ class RecurrenceEndRuleEditorComponent {
3711
3711
  [disabledDates]="datePickerOptions.disabledDates"
3712
3712
  [popupSettings]="datePickerOptions.popupSettings"
3713
3713
  [(value)]='untilValue'
3714
+ [inputAttributes]="{ 'aria-labelledby': 'k-endrule-until-' + uniqueId + '-label' }"
3714
3715
  (blur)="onUntilBlur()"
3715
3716
  (valueChange)='onUntilChange($event)'
3716
3717
  >
@@ -3782,7 +3783,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3782
3783
  <span class="k-radio-wrap">
3783
3784
  <input kendoRecurrenceEndRuleRadioButton='k-endrule-until-{{uniqueId}}' />
3784
3785
  </span>
3785
- <label [labelClass]="false" class='k-radio-label' for='k-endrule-until-{{uniqueId}}'>{{ textFor('endOn') }}</label>
3786
+ <label [labelClass]="false" class='k-radio-label' [attr.id]="'k-endrule-until-' + uniqueId + '-label'" for='k-endrule-until-{{uniqueId}}'>{{ textFor('endOn') }}</label>
3786
3787
  <kendo-datepicker
3787
3788
  class="k-recur-until"
3788
3789
  [style.width.px]='150'
@@ -3806,6 +3807,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3806
3807
  [disabledDates]="datePickerOptions.disabledDates"
3807
3808
  [popupSettings]="datePickerOptions.popupSettings"
3808
3809
  [(value)]='untilValue'
3810
+ [inputAttributes]="{ 'aria-labelledby': 'k-endrule-until-' + uniqueId + '-label' }"
3809
3811
  (blur)="onUntilBlur()"
3810
3812
  (valueChange)='onUntilChange($event)'
3811
3813
  >
@@ -5871,10 +5873,10 @@ class EditDialogComponent {
5871
5873
  this.subs.add(fromEvent(this.element.nativeElement, 'keydown')
5872
5874
  .pipe(filter(() => this.isActive))
5873
5875
  .subscribe((e) => {
5874
- if (e.keyCode === Keys.Escape) {
5876
+ if (e.code === Keys.Escape) {
5875
5877
  this.reset();
5876
5878
  }
5877
- if (e.keyCode === Keys.Enter && (withModifiers(e, Modifiers.CtrlKey) || withModifiers(e, Modifiers.MetaKey))) {
5879
+ if ((e.code === Keys.Enter || e.code === Keys.NumpadEnter) && (withModifiers(e, Modifiers.CtrlKey) || withModifiers(e, Modifiers.MetaKey))) {
5878
5880
  this.onSave(e);
5879
5881
  }
5880
5882
  e.stopPropagation();
@@ -6054,7 +6056,7 @@ class EditDialogComponent {
6054
6056
  <input
6055
6057
  #title
6056
6058
  kendoTextBox
6057
- placeholder='Title'
6059
+ [attr.placeholder]="textFor('editorEventTitle')"
6058
6060
  [formControl]='getControl(fields.title)'
6059
6061
  />
6060
6062
  </kendo-formfield>
@@ -6251,7 +6253,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6251
6253
  <input
6252
6254
  #title
6253
6255
  kendoTextBox
6254
- placeholder='Title'
6256
+ [attr.placeholder]="textFor('editorEventTitle')"
6255
6257
  [formControl]='getControl(fields.title)'
6256
6258
  />
6257
6259
  </kendo-formfield>
@@ -8210,6 +8212,10 @@ class SchedulerComponent {
8210
8212
  * @hidden
8211
8213
  */
8212
8214
  showLicenseWatermark = false;
8215
+ /**
8216
+ * @hidden
8217
+ */
8218
+ licenseMessage;
8213
8219
  /**
8214
8220
  * @hidden
8215
8221
  */
@@ -8241,6 +8247,7 @@ class SchedulerComponent {
8241
8247
  this.renderer = renderer;
8242
8248
  this.focusService = focusService;
8243
8249
  const isValid = validatePackage(packageMetadata);
8250
+ this.licenseMessage = getLicenseMessage(packageMetadata);
8244
8251
  this.showLicenseWatermark = shouldShowValidationUI(isValid);
8245
8252
  this.dateRangeStream = viewState.dateRange;
8246
8253
  this.selectedDateStream = viewContext.selectedDate;
@@ -9116,8 +9123,8 @@ class SchedulerComponent {
9116
9123
  <div [loading]="loading" kendoSchedulerLoading>
9117
9124
  </div>
9118
9125
 
9119
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
9120
- `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]" }, { kind: "component", type: ToolbarComponent, selector: "kendo-scheduler-toolbar", inputs: ["selectedView", "views", "dateRange", "selectedDate", "template", "min", "max"], outputs: ["navigate", "toolbarWidthChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-scheduler-edit-dialog", inputs: ["resources", "timezone", "weekStart", "fields", "editTemplate"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: LoadingComponent, selector: "[kendoSchedulerLoading]", inputs: ["loading"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9126
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
9127
+ `, isInline: true, dependencies: [{ kind: "directive", type: LocalizedMessagesDirective, selector: "[kendoSchedulerLocalizedMessages]" }, { kind: "component", type: ToolbarComponent, selector: "kendo-scheduler-toolbar", inputs: ["selectedView", "views", "dateRange", "selectedDate", "template", "min", "max"], outputs: ["navigate", "toolbarWidthChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EditDialogComponent, selector: "kendo-scheduler-edit-dialog", inputs: ["resources", "timezone", "weekStart", "fields", "editTemplate"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: LoadingComponent, selector: "[kendoSchedulerLoading]", inputs: ["loading"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay]", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9121
9128
  }
9122
9129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SchedulerComponent, decorators: [{
9123
9130
  type: Component,
@@ -9474,7 +9481,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
9474
9481
  <div [loading]="loading" kendoSchedulerLoading>
9475
9482
  </div>
9476
9483
 
9477
- <div kendoWatermarkOverlay *ngIf="showLicenseWatermark"></div>
9484
+ <div kendoWatermarkOverlay *ngIf="showLicenseWatermark" [licenseMessage]="licenseMessage"></div>
9478
9485
  `,
9479
9486
  standalone: true,
9480
9487
  imports: [LocalizedMessagesDirective, ToolbarComponent, NgTemplateOutlet, EditDialogComponent, ResizeSensorComponent, LoadingComponent, NgIf, WatermarkOverlayComponent]
@@ -15455,7 +15462,17 @@ function initTimeColumns(slotKeys, slotItems) {
15455
15462
  const intersectingEvents = intersects(event.item.startTime, event.item.endTime, current.item.startTime, current.item.endTime);
15456
15463
  const overlappingEvents = minHeightOverlaps(current.rect.top, event.rect.top);
15457
15464
  if (!(anyOverlappingEvents || intersectingEvents || overlappingEvents)) {
15458
- columns--;
15465
+ const currentSlotDay = new Date(slot.start).toDateString();
15466
+ const hasPreviousSlotsWithMoreOrSameColumns = slotKeys.some(previousKey => {
15467
+ const previousSlot = slotItems[previousKey].slot;
15468
+ const previousSlotDay = new Date(previousSlot.start).toDateString();
15469
+ return previousSlotDay === currentSlotDay &&
15470
+ previousSlot.start < slot.start &&
15471
+ previousSlot.columns >= (columns - 1);
15472
+ });
15473
+ if (!hasPreviousSlotsWithMoreOrSameColumns) {
15474
+ columns--;
15475
+ }
15459
15476
  event.columnIndex = idx;
15460
15477
  event.lastColumn = !events.some((e) => {
15461
15478
  const hasColumnIndex = e.columnIndex;
@@ -20463,7 +20480,7 @@ class ShortcutsDirective {
20463
20480
  viewState;
20464
20481
  dialogsService;
20465
20482
  shortcuts = [{
20466
- match: e => e.keyCode === Keys.KeyC && noModifiers(e),
20483
+ match: e => e.code === Keys.KeyC && noModifiers(e),
20467
20484
  action: e => {
20468
20485
  const scheduler = this.scheduler;
20469
20486
  const hours = new Date().getHours();
@@ -20489,10 +20506,14 @@ class ShortcutsDirective {
20489
20506
  });
20490
20507
  }
20491
20508
  }, {
20492
- match: e => e.keyCode >= Keys.Digit1 && e.keyCode <= Keys.Digit9 && withModifiers(e, Modifiers.AltKey),
20509
+ match: e => {
20510
+ const code = normalizeNumpadKeys(e);
20511
+ return (code.startsWith('Digit') || code.startsWith('Numpad')) && withModifiers(e, Modifiers.AltKey);
20512
+ },
20493
20513
  action: e => {
20494
20514
  const scheduler = this.scheduler;
20495
- const viewIndex = e.keyCode - Keys.Digit0 - 1;
20515
+ const code = normalizeNumpadKeys(e);
20516
+ const viewIndex = this.digitToNumber(code, code.startsWith('Digit') ? 'Digit' : 'Numpad') - 1;
20496
20517
  const views = scheduler.views.toArray();
20497
20518
  const view = views[viewIndex];
20498
20519
  if (view) {
@@ -20506,7 +20527,7 @@ class ShortcutsDirective {
20506
20527
  }
20507
20528
  }
20508
20529
  }, {
20509
- match: e => e.keyCode === Keys.F10 && noModifiers(e),
20530
+ match: e => e.code === Keys.F10 && noModifiers(e),
20510
20531
  action: (e) => {
20511
20532
  this.zone.run(() => {
20512
20533
  e.preventDefault();
@@ -20515,7 +20536,7 @@ class ShortcutsDirective {
20515
20536
  });
20516
20537
  }
20517
20538
  }, {
20518
- match: e => e.keyCode === Keys.KeyT && noModifiers(e),
20539
+ match: e => e.code === Keys.KeyT && noModifiers(e),
20519
20540
  action: () => {
20520
20541
  this.zone.run(() => {
20521
20542
  this.scheduler.onNavigationAction({ type: 'today' });
@@ -20523,7 +20544,7 @@ class ShortcutsDirective {
20523
20544
  });
20524
20545
  }
20525
20546
  }, {
20526
- match: e => e.keyCode === Keys.KeyB && noModifiers(e),
20547
+ match: e => e.code === Keys.KeyB && noModifiers(e),
20527
20548
  action: () => {
20528
20549
  this.zone.run(() => {
20529
20550
  this.scheduler.onNavigationAction({ type: 'toggle-business-hours' });
@@ -20531,16 +20552,23 @@ class ShortcutsDirective {
20531
20552
  });
20532
20553
  }
20533
20554
  }, {
20534
- match: (e) => (e.keyCode === Keys.ArrowLeft || e.keyCode === Keys.ArrowRight) && withModifiers(e, Modifiers.ShiftKey),
20555
+ match: (e) => {
20556
+ const code = normalizeNumpadKeys(e);
20557
+ return (code === Keys.ArrowLeft || code === Keys.ArrowRight) && withModifiers(e, Modifiers.ShiftKey);
20558
+ },
20535
20559
  action: (e) => {
20536
- const type = e.keyCode === Keys.ArrowLeft ? 'prev' : 'next';
20560
+ const code = normalizeNumpadKeys(e);
20561
+ const type = code === Keys.ArrowLeft ? 'prev' : 'next';
20537
20562
  this.zone.run(() => {
20538
20563
  this.scheduler.onNavigationAction({ type });
20539
20564
  this.focusWait();
20540
20565
  });
20541
20566
  }
20542
20567
  }, {
20543
- match: e => (e.keyCode === Keys.ArrowUp || e.keyCode === Keys.ArrowLeft) && noModifiers(e) && !isContentWrapper(e.target),
20568
+ match: e => {
20569
+ const code = normalizeNumpadKeys(e);
20570
+ return (code === Keys.ArrowUp || code === Keys.ArrowLeft) && noModifiers(e) && !isContentWrapper(e.target);
20571
+ },
20544
20572
  action: e => {
20545
20573
  //use the MultiViewCalendar navigation for Year View
20546
20574
  if (e.target.tagName === CALENDAR_TAG) {
@@ -20554,14 +20582,18 @@ class ShortcutsDirective {
20554
20582
  if (!prevented) {
20555
20583
  const item = this.focusService.activeItem;
20556
20584
  const isFirstEvent = item.containerType === 'content' && item.element.nativeElement.matches(':first-of-type');
20557
- const isUpArrow = e.keyCode === Keys.ArrowUp;
20585
+ const code = normalizeNumpadKeys(e);
20586
+ const isUpArrow = code === Keys.ArrowUp;
20558
20587
  // eslint-disable-next-line no-unused-expressions
20559
20588
  isFirstEvent && isUpArrow ? this.focusService.focusToolbar() : this.focusService.focusNext({ offset: -1 });
20560
20589
  e.preventDefault();
20561
20590
  }
20562
20591
  }
20563
20592
  }, {
20564
- match: e => (e.keyCode === Keys.ArrowDown || e.keyCode === Keys.ArrowRight) && noModifiers(e) && !isContentWrapper(e.target),
20593
+ match: e => {
20594
+ const code = normalizeNumpadKeys(e);
20595
+ return (code === Keys.ArrowDown || code === Keys.ArrowRight) && noModifiers(e) && !isContentWrapper(e.target);
20596
+ },
20565
20597
  action: e => {
20566
20598
  //use the MultiViewCalendar navigation for Year View
20567
20599
  if (e.target.tagName === CALENDAR_TAG) {
@@ -20575,7 +20607,8 @@ class ShortcutsDirective {
20575
20607
  if (!prevented) {
20576
20608
  const isInToolbar = this.focusService.activeItem.containerType === 'toolbar';
20577
20609
  const offset = 1;
20578
- if (e.keyCode === Keys.ArrowDown && isInToolbar) {
20610
+ const code = normalizeNumpadKeys(e);
20611
+ if (code === Keys.ArrowDown && isInToolbar) {
20579
20612
  const focusableElementsArray = Array.from(this.focusService.focusableItems);
20580
20613
  const firstFocusableContentElementIndex = focusableElementsArray.findIndex(item => item.containerType === 'content');
20581
20614
  if (firstFocusableContentElementIndex > -1) {
@@ -20590,13 +20623,13 @@ class ShortcutsDirective {
20590
20623
  }
20591
20624
  }];
20592
20625
  taskShortcuts = [{
20593
- match: e => (e.keyCode === Keys.Delete || e.keyCode === Keys.Backspace) && noModifiers(e),
20626
+ match: e => (e.code === Keys.Delete || e.code === Keys.Backspace) && noModifiers(e),
20594
20627
  action: (e, event) => {
20595
20628
  this.viewState.emitEvent('remove', { event: event, dataItem: event.dataItem });
20596
20629
  e.preventDefault();
20597
20630
  }
20598
20631
  }, {
20599
- match: e => e.keyCode === Keys.Enter && noModifiers(e),
20632
+ match: e => (e.code === Keys.Enter || e.code === Keys.NumpadEnter) && noModifiers(e),
20600
20633
  action: (e, event) => {
20601
20634
  this.viewState.emitEvent('eventDblClick', { type: 'dblclick', event: event, originalEvent: e });
20602
20635
  e.preventDefault();
@@ -20636,6 +20669,9 @@ class ShortcutsDirective {
20636
20669
  element.closest('.k-views-dropdown');
20637
20670
  return isInToolbar && !isInBuiltInElement;
20638
20671
  }
20672
+ digitToNumber(code, keyType) {
20673
+ return parseInt(code.replace(keyType, ''), 10);
20674
+ }
20639
20675
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ShortcutsDirective, deps: [{ token: SchedulerComponent }, { token: DomEventsService }, { token: FocusService }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: ViewStateService }, { token: DialogsService }], target: i0.ɵɵFactoryTarget.Directive });
20640
20676
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: ShortcutsDirective, isStandalone: true, selector: "kendo-scheduler", ngImport: i0 });
20641
20677
  }
@@ -21211,5 +21247,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
21211
21247
  * Generated bundle index. Do not edit.
21212
21248
  */
21213
21249
 
21214
- export { AddEvent, AgendaDateTemplateDirective, AgendaTimeTemplateDirective, AgendaViewComponent, AllDayEventTemplateDirective, AllDaySlotTemplateDirective, BaseEditService, CancelEvent, 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 };
21250
+ 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 };
21215
21251
 
package/index.d.ts CHANGED
@@ -67,6 +67,7 @@ export { PDFCommandDirective } from './pdf/pdf-command.directive';
67
67
  export { PDFExportEvent } from './pdf/pdf-export-event';
68
68
  export { FocusableDirective } from './navigation';
69
69
  export { FocusService } from './navigation/focus.service';
70
+ export { FocusPosition } from './navigation/focus-position.interface';
70
71
  export { HintContainerComponent } from './views/common/hint-container.component';
71
72
  export { ViewFooterComponent } from './views/common/view-footer.component';
72
73
  export { RepeatPipe } from './views/common/repeat.pipe';
@@ -28,6 +28,7 @@ export declare class ShortcutsDirective {
28
28
  private onEventKeydown;
29
29
  private focusWait;
30
30
  private isInToolbarTemplate;
31
+ private digitToNumber;
31
32
  static ɵfac: i0.ɵɵFactoryDeclaration<ShortcutsDirective, never>;
32
33
  static ɵdir: i0.ɵɵDirectiveDeclaration<ShortcutsDirective, "kendo-scheduler", never, {}, {}, never, never, true, never>;
33
34
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-scheduler",
3
- "version": "19.3.0-develop.8",
3
+ "version": "19.3.0",
4
4
  "description": "Kendo UI Scheduler Angular - Outlook or Google-style angular scheduler calendar. Full-featured and customizable embedded scheduling from the creator developers trust for professional UI components.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -19,7 +19,7 @@
19
19
  "package": {
20
20
  "productName": "Kendo UI for Angular",
21
21
  "productCode": "KENDOUIANGULAR",
22
- "publishDate": 1752479567,
22
+ "publishDate": 1755030780,
23
23
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
24
24
  }
25
25
  },
@@ -31,24 +31,24 @@
31
31
  "@angular/platform-browser": "16 - 20",
32
32
  "@progress/kendo-data-query": "^1.0.0",
33
33
  "@progress/kendo-drawing": "^1.21.0",
34
- "@progress/kendo-licensing": "^1.5.0",
35
- "@progress/kendo-angular-tooltip": "19.3.0-develop.8",
36
- "@progress/kendo-angular-buttons": "19.3.0-develop.8",
37
- "@progress/kendo-angular-common": "19.3.0-develop.8",
38
- "@progress/kendo-angular-dateinputs": "19.3.0-develop.8",
39
- "@progress/kendo-angular-dialog": "19.3.0-develop.8",
40
- "@progress/kendo-angular-dropdowns": "19.3.0-develop.8",
41
- "@progress/kendo-angular-icons": "19.3.0-develop.8",
42
- "@progress/kendo-angular-inputs": "19.3.0-develop.8",
43
- "@progress/kendo-angular-intl": "19.3.0-develop.8",
44
- "@progress/kendo-angular-l10n": "19.3.0-develop.8",
45
- "@progress/kendo-angular-label": "19.3.0-develop.8",
46
- "@progress/kendo-angular-popup": "19.3.0-develop.8",
34
+ "@progress/kendo-licensing": "^1.7.0",
35
+ "@progress/kendo-angular-tooltip": "19.3.0",
36
+ "@progress/kendo-angular-buttons": "19.3.0",
37
+ "@progress/kendo-angular-common": "19.3.0",
38
+ "@progress/kendo-angular-dateinputs": "19.3.0",
39
+ "@progress/kendo-angular-dialog": "19.3.0",
40
+ "@progress/kendo-angular-dropdowns": "19.3.0",
41
+ "@progress/kendo-angular-icons": "19.3.0",
42
+ "@progress/kendo-angular-inputs": "19.3.0",
43
+ "@progress/kendo-angular-intl": "19.3.0",
44
+ "@progress/kendo-angular-l10n": "19.3.0",
45
+ "@progress/kendo-angular-label": "19.3.0",
46
+ "@progress/kendo-angular-popup": "19.3.0",
47
47
  "rxjs": "^6.5.3 || ^7.0.0"
48
48
  },
49
49
  "dependencies": {
50
50
  "tslib": "^2.3.1",
51
- "@progress/kendo-angular-schematics": "19.3.0-develop.8",
51
+ "@progress/kendo-angular-schematics": "19.3.0",
52
52
  "@progress/kendo-date-math": "^1.3.2",
53
53
  "@progress/kendo-draggable": "^3.0.2",
54
54
  "@progress/kendo-file-saver": "^1.0.7",
@@ -447,6 +447,10 @@ export declare class SchedulerComponent implements AfterContentInit, OnDestroy,
447
447
  * @hidden
448
448
  */
449
449
  showLicenseWatermark: boolean;
450
+ /**
451
+ * @hidden
452
+ */
453
+ licenseMessage?: string;
450
454
  /**
451
455
  * @hidden
452
456
  */
@@ -4,10 +4,10 @@ const schematics_1 = require("@angular-devkit/schematics");
4
4
  function default_1(options) {
5
5
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'SchedulerModule', package: 'scheduler', peerDependencies: {
6
6
  // peer deps of the dropdowns
7
- '@progress/kendo-angular-treeview': '19.3.0-develop.8',
8
- '@progress/kendo-angular-navigation': '19.3.0-develop.8',
7
+ '@progress/kendo-angular-treeview': '19.3.0',
8
+ '@progress/kendo-angular-navigation': '19.3.0',
9
9
  // peer dependency of kendo-angular-inputs
10
- '@progress/kendo-angular-dialog': '19.3.0-develop.8',
10
+ '@progress/kendo-angular-dialog': '19.3.0',
11
11
  // peer dependency of kendo-angular-icons
12
12
  '@progress/kendo-svg-icons': '^4.0.0'
13
13
  } });