@progress/kendo-angular-scheduler 21.1.1-develop.1 → 21.2.0-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/esm2022/editing/date-time-picker.component.mjs +59 -56
  2. package/esm2022/editing/edit-dialog.component.mjs +373 -359
  3. package/esm2022/editing/recurrence/recurrence-editor.component.mjs +262 -253
  4. package/esm2022/editing/recurrence/recurrence-frequency-editor.component.mjs +44 -41
  5. package/esm2022/editing/recurrence/recurrence-monthly-yearly-editor.component.mjs +190 -193
  6. package/esm2022/editing/recurrence/recurrence-weekday-rule-editor.component.mjs +44 -43
  7. package/esm2022/editing/resource-multiple-editor.component.mjs +49 -41
  8. package/esm2022/editing/resource-single-editor.component.mjs +35 -31
  9. package/esm2022/editing/timezone-editor.component.mjs +20 -17
  10. package/esm2022/package-metadata.mjs +2 -2
  11. package/esm2022/pdf/pdf-command.directive.mjs +27 -17
  12. package/esm2022/scheduler.component.mjs +631 -625
  13. package/esm2022/toolbar/toolbar.component.mjs +37 -37
  14. package/esm2022/toolbar/view-selector.component.mjs +42 -33
  15. package/esm2022/views/agenda/agenda-header-item.component.mjs +23 -19
  16. package/esm2022/views/agenda/agenda-header.component.mjs +28 -26
  17. package/esm2022/views/agenda/agenda-task-item.component.mjs +49 -29
  18. package/esm2022/views/agenda/agenda-view-list.component.mjs +117 -95
  19. package/esm2022/views/common/resize-hint.component.mjs +16 -9
  20. package/esm2022/views/common/view-footer.component.mjs +27 -25
  21. package/esm2022/views/day-time/day-time-view-item.component.mjs +125 -85
  22. package/esm2022/views/month/month-slot.component.mjs +39 -29
  23. package/esm2022/views/month/month-view-item.component.mjs +81 -61
  24. package/esm2022/views/month/month-view-renderer.component.mjs +349 -281
  25. package/esm2022/views/multi-day/day-view.component.mjs +72 -69
  26. package/esm2022/views/multi-day/multi-day-view-renderer.component.mjs +665 -515
  27. package/esm2022/views/multi-day/multi-day-view.component.mjs +76 -73
  28. package/esm2022/views/multi-day/week-view.component.mjs +78 -75
  29. package/esm2022/views/multi-day/work-week-view.component.mjs +80 -77
  30. package/esm2022/views/timeline/timeline-month-view.component.mjs +74 -71
  31. package/esm2022/views/timeline/timeline-multi-day-view.component.mjs +449 -359
  32. package/esm2022/views/timeline/timeline-view.component.mjs +68 -65
  33. package/esm2022/views/timeline/timeline-week-view.component.mjs +74 -71
  34. package/esm2022/views/year/year-view-internal.component.mjs +151 -131
  35. package/fesm2022/progress-kendo-angular-scheduler.mjs +4448 -3889
  36. package/package.json +15 -15
  37. package/schematics/ngAdd/index.js +7 -3
@@ -19,7 +19,7 @@ import { BaseView } from '../common/base-view';
19
19
  import { createTasks, noop, yearEnd, yearStart } from './utils';
20
20
  import { MonthSlotService } from '../month/month-slot.service';
21
21
  import { IconWrapperComponent } from '@progress/kendo-angular-icons';
22
- import { NgIf, NgFor, NgClass, NgStyle } from '@angular/common';
22
+ import { NgClass, NgStyle } from '@angular/common';
23
23
  import { take } from 'rxjs/operators';
24
24
  import * as i0 from "@angular/core";
25
25
  import * as i1 from "@progress/kendo-angular-l10n";
@@ -285,78 +285,88 @@ export class YearViewInternalComponent extends BaseView {
285
285
  return [];
286
286
  }
287
287
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: YearViewInternalComponent, deps: [{ token: i1.LocalizationService }, { token: i2.FocusService }, { token: i3.IntlService }, { token: i4.ViewContextService }, { token: i5.ViewStateService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i6.PDFService }, { token: i0.ElementRef }, { token: i7.MonthSlotService }, { token: i8.ScrollbarWidthService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
288
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: YearViewInternalComponent, isStandalone: true, selector: "year-view-internal", inputs: { newRange: "newRange", dateRangeFn: "dateRangeFn" }, providers: [MonthSlotService], viewQueries: [{ propertyName: "calendar", first: true, predicate: MultiViewCalendarComponent, descendants: true }, { propertyName: "tooltip", first: true, predicate: TooltipDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
288
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: YearViewInternalComponent, isStandalone: true, selector: "year-view-internal", inputs: { newRange: "newRange", dateRangeFn: "dateRangeFn" }, providers: [MonthSlotService], viewQueries: [{ propertyName: "calendar", first: true, predicate: MultiViewCalendarComponent, descendants: true }, { propertyName: "tooltip", first: true, predicate: TooltipDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: `
289
289
  <div #content class="k-scheduler-layout k-scheduler-layout-flex k-scheduler-yearview">
290
- <div class="k-scheduler-body">
291
- <kendo-multiviewcalendar
292
- [showOtherMonthDays]="false"
293
- [showCalendarHeader]="false"
294
- [showViewHeader]="true"
295
- [views]="12"
296
- [focusedDate]="focusedDate"
297
- kendoTooltip
298
- filter=".k-calendar-td"
299
- showOn="none"
300
- [tooltipTemplate]="template"
301
- position="right"
302
- tooltipContentClass="k-scheduler-tooltip"
303
- [tooltipWidth]="220"
304
- [collision]="{ horizontal: 'flip', vertical: 'flip' }"
305
- (valueChange)="onValueChange($event)"
306
- (blur)="onBlur()"
307
- >
308
- <ng-template kendoCalendarMonthCellTemplate let-date let-context="cellContext">
309
- <span *ngIf="!context.isOtherMonth" [attr.date]="date">{{ date.getDate() }}</span>
310
- <span *ngIf="!context.isOtherMonth && hasEvent(date)" class="k-day-indicator"></span>
311
- </ng-template>
312
- </kendo-multiviewcalendar>
313
- </div>
290
+ <div class="k-scheduler-body">
291
+ <kendo-multiviewcalendar
292
+ [showOtherMonthDays]="false"
293
+ [showCalendarHeader]="false"
294
+ [showViewHeader]="true"
295
+ [views]="12"
296
+ [focusedDate]="focusedDate"
297
+ kendoTooltip
298
+ filter=".k-calendar-td"
299
+ showOn="none"
300
+ [tooltipTemplate]="template"
301
+ position="right"
302
+ tooltipContentClass="k-scheduler-tooltip"
303
+ [tooltipWidth]="220"
304
+ [collision]="{ horizontal: 'flip', vertical: 'flip' }"
305
+ (valueChange)="onValueChange($event)"
306
+ (blur)="onBlur()"
307
+ >
308
+ <ng-template kendoCalendarMonthCellTemplate let-date let-context="cellContext">
309
+ @if (!context.isOtherMonth) {
310
+ <span [attr.date]="date">{{ date.getDate() }}</span>
311
+ }
312
+ @if (!context.isOtherMonth && hasEvent(date)) {
313
+ <span class="k-day-indicator"></span>
314
+ }
315
+ </ng-template>
316
+ </kendo-multiviewcalendar>
317
+ </div>
314
318
  </div>
315
319
  <ng-template #template let-anchor>
316
- <div
317
- class="k-tooltip-title k-text-center"
318
- (click)="navigateToDay(getDate(anchor))"
319
- (mousedown)="onMouseDown()"
320
+ <div
321
+ class="k-tooltip-title k-text-center"
322
+ (click)="navigateToDay(getDate(anchor))"
323
+ (mousedown)="onMouseDown()"
320
324
  >
321
- <div class="k-month">{{ intl.formatDate(getDate(anchor), 'MMM') }}</div>
322
- <div class="k-link k-day k-text-primary">{{ intl.formatDate(getDate(anchor), 'dd') }}</div>
323
- </div>
324
- <div class="k-tooltip-events-container" (mousedown)="onMouseDown()">
325
- <div class="k-tooltip-events">
326
- <div
327
- *ngFor="let event of eventsPerSelectedDay"
328
- class="k-tooltip-event k-event"
329
- [title]="eventTitle(event)"
330
- [ngClass]="getEventClasses(event, event.resources)"
331
- [ngStyle]="getEventStyles(event, event.resources[0], event.isAllDay)"
332
- >
333
- <kendo-icon-wrapper
334
- *ngIf="event.tail || event.mid"
335
- [name]="arrowIcons[0]"
336
- [svgIcon]="arrowSVGIcons[0]"
337
- >
338
- </kendo-icon-wrapper>
339
- <div class="k-event-title k-text-ellipsis">{{ event.event.title }}</div>
340
- <span class="k-spacer"></span>
341
- <span
342
- class="k-event-time"
343
- *ngIf="(event.isMultiDay && event.head && !event.isAllDay) || !event.isMultiDay"
344
- >{{ intl.formatDate(event.start, 't') }}</span
345
- >
346
- <kendo-icon-wrapper
347
- *ngIf="event.head || event.mid"
348
- [name]="arrowIcons[1]"
349
- [svgIcon]="arrowSVGIcons[1]"
325
+ <div class="k-month">{{ intl.formatDate(getDate(anchor), 'MMM') }}</div>
326
+ <div class="k-link k-day k-text-primary">{{ intl.formatDate(getDate(anchor), 'dd') }}</div>
327
+ </div>
328
+ <div class="k-tooltip-events-container" (mousedown)="onMouseDown()">
329
+ <div class="k-tooltip-events">
330
+ @for (event of eventsPerSelectedDay; track event) {
331
+ <div
332
+ class="k-tooltip-event k-event"
333
+ [title]="eventTitle(event)"
334
+ [ngClass]="getEventClasses(event, event.resources)"
335
+ [ngStyle]="getEventStyles(event, event.resources[0], event.isAllDay)"
336
+ >
337
+ @if (event.tail || event.mid) {
338
+ <kendo-icon-wrapper
339
+ [name]="arrowIcons[0]"
340
+ [svgIcon]="arrowSVGIcons[0]"
341
+ >
342
+ </kendo-icon-wrapper>
343
+ }
344
+ <div class="k-event-title k-text-ellipsis">{{ event.event.title }}</div>
345
+ <span class="k-spacer"></span>
346
+ @if ((event.isMultiDay && event.head && !event.isAllDay) || !event.isMultiDay) {
347
+ <span
348
+ class="k-event-time"
349
+ >{{ intl.formatDate(event.start, 't') }}</span
350
+ >
351
+ }
352
+ @if (event.head || event.mid) {
353
+ <kendo-icon-wrapper
354
+ [name]="arrowIcons[1]"
355
+ [svgIcon]="arrowSVGIcons[1]"
350
356
  >
351
- </kendo-icon-wrapper>
352
- </div>
353
- </div>
357
+ </kendo-icon-wrapper>
358
+ }
359
+ </div>
360
+ }
361
+ </div>
354
362
  </div>
355
- <div *ngIf="eventsPerSelectedDay.length === 0" class="k-no-data k-text-center">
363
+ @if (eventsPerSelectedDay.length === 0) {
364
+ <div class="k-no-data k-text-center">
356
365
  {{ localization.get('yearViewNoEvents') }}
357
- </div>
358
- </ng-template>
359
- `, isInline: true, dependencies: [{ kind: "component", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "size", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "rangeSelectionChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { kind: "directive", type: TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "titleTemplate", "showOn", "showAfter", "callout", "closable", "offset", "tooltipWidth", "tooltipHeight", "tooltipClass", "tooltipContentClass", "collision", "closeTitle", "tooltipTemplate"], exportAs: ["kendoTooltip"] }, { kind: "directive", type: MonthCellTemplateDirective, selector: "[kendoCalendarMonthCellTemplate]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
366
+ </div>
367
+ }
368
+ </ng-template>
369
+ `, isInline: true, dependencies: [{ kind: "component", type: MultiViewCalendarComponent, selector: "kendo-multiviewcalendar", inputs: ["showOtherMonthDays", "showCalendarHeader", "size", "id", "focusedDate", "footer", "min", "max", "rangeValidation", "disabledDatesRangeValidation", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "weekDaysFormat", "isActive", "disabledDates", "activeView", "bottomView", "topView", "showViewHeader", "animateNavigation", "weekNumber", "activeRangeEnd", "selectionRange", "views", "orientation", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "footerTemplate", "headerTitleTemplate", "headerTemplate"], outputs: ["activeViewChange", "navigate", "cellEnter", "cellLeave", "valueChange", "rangeSelectionChange", "blur", "focus", "focusCalendar", "onClosePopup", "onTabPress", "onShiftTabPress"], exportAs: ["kendo-multiviewcalendar"] }, { kind: "directive", type: TooltipDirective, selector: "[kendoTooltip]", inputs: ["filter", "position", "titleTemplate", "showOn", "showAfter", "callout", "closable", "offset", "tooltipWidth", "tooltipHeight", "tooltipClass", "tooltipContentClass", "collision", "closeTitle", "tooltipTemplate"], exportAs: ["kendoTooltip"] }, { kind: "directive", type: MonthCellTemplateDirective, selector: "[kendoCalendarMonthCellTemplate]" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconWrapperComponent, selector: "kendo-icon-wrapper", inputs: ["name", "svgIcon", "innerCssClass", "customFontClass", "size"], exportAs: ["kendoIconWrapper"] }] });
360
370
  }
361
371
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: YearViewInternalComponent, decorators: [{
362
372
  type: Component,
@@ -365,78 +375,88 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
365
375
  providers: [MonthSlotService],
366
376
  template: `
367
377
  <div #content class="k-scheduler-layout k-scheduler-layout-flex k-scheduler-yearview">
368
- <div class="k-scheduler-body">
369
- <kendo-multiviewcalendar
370
- [showOtherMonthDays]="false"
371
- [showCalendarHeader]="false"
372
- [showViewHeader]="true"
373
- [views]="12"
374
- [focusedDate]="focusedDate"
375
- kendoTooltip
376
- filter=".k-calendar-td"
377
- showOn="none"
378
- [tooltipTemplate]="template"
379
- position="right"
380
- tooltipContentClass="k-scheduler-tooltip"
381
- [tooltipWidth]="220"
382
- [collision]="{ horizontal: 'flip', vertical: 'flip' }"
383
- (valueChange)="onValueChange($event)"
384
- (blur)="onBlur()"
385
- >
386
- <ng-template kendoCalendarMonthCellTemplate let-date let-context="cellContext">
387
- <span *ngIf="!context.isOtherMonth" [attr.date]="date">{{ date.getDate() }}</span>
388
- <span *ngIf="!context.isOtherMonth && hasEvent(date)" class="k-day-indicator"></span>
389
- </ng-template>
390
- </kendo-multiviewcalendar>
391
- </div>
378
+ <div class="k-scheduler-body">
379
+ <kendo-multiviewcalendar
380
+ [showOtherMonthDays]="false"
381
+ [showCalendarHeader]="false"
382
+ [showViewHeader]="true"
383
+ [views]="12"
384
+ [focusedDate]="focusedDate"
385
+ kendoTooltip
386
+ filter=".k-calendar-td"
387
+ showOn="none"
388
+ [tooltipTemplate]="template"
389
+ position="right"
390
+ tooltipContentClass="k-scheduler-tooltip"
391
+ [tooltipWidth]="220"
392
+ [collision]="{ horizontal: 'flip', vertical: 'flip' }"
393
+ (valueChange)="onValueChange($event)"
394
+ (blur)="onBlur()"
395
+ >
396
+ <ng-template kendoCalendarMonthCellTemplate let-date let-context="cellContext">
397
+ @if (!context.isOtherMonth) {
398
+ <span [attr.date]="date">{{ date.getDate() }}</span>
399
+ }
400
+ @if (!context.isOtherMonth && hasEvent(date)) {
401
+ <span class="k-day-indicator"></span>
402
+ }
403
+ </ng-template>
404
+ </kendo-multiviewcalendar>
405
+ </div>
392
406
  </div>
393
407
  <ng-template #template let-anchor>
394
- <div
395
- class="k-tooltip-title k-text-center"
396
- (click)="navigateToDay(getDate(anchor))"
397
- (mousedown)="onMouseDown()"
408
+ <div
409
+ class="k-tooltip-title k-text-center"
410
+ (click)="navigateToDay(getDate(anchor))"
411
+ (mousedown)="onMouseDown()"
398
412
  >
399
- <div class="k-month">{{ intl.formatDate(getDate(anchor), 'MMM') }}</div>
400
- <div class="k-link k-day k-text-primary">{{ intl.formatDate(getDate(anchor), 'dd') }}</div>
401
- </div>
402
- <div class="k-tooltip-events-container" (mousedown)="onMouseDown()">
403
- <div class="k-tooltip-events">
404
- <div
405
- *ngFor="let event of eventsPerSelectedDay"
406
- class="k-tooltip-event k-event"
407
- [title]="eventTitle(event)"
408
- [ngClass]="getEventClasses(event, event.resources)"
409
- [ngStyle]="getEventStyles(event, event.resources[0], event.isAllDay)"
410
- >
411
- <kendo-icon-wrapper
412
- *ngIf="event.tail || event.mid"
413
- [name]="arrowIcons[0]"
414
- [svgIcon]="arrowSVGIcons[0]"
415
- >
416
- </kendo-icon-wrapper>
417
- <div class="k-event-title k-text-ellipsis">{{ event.event.title }}</div>
418
- <span class="k-spacer"></span>
419
- <span
420
- class="k-event-time"
421
- *ngIf="(event.isMultiDay && event.head && !event.isAllDay) || !event.isMultiDay"
422
- >{{ intl.formatDate(event.start, 't') }}</span
423
- >
424
- <kendo-icon-wrapper
425
- *ngIf="event.head || event.mid"
426
- [name]="arrowIcons[1]"
427
- [svgIcon]="arrowSVGIcons[1]"
413
+ <div class="k-month">{{ intl.formatDate(getDate(anchor), 'MMM') }}</div>
414
+ <div class="k-link k-day k-text-primary">{{ intl.formatDate(getDate(anchor), 'dd') }}</div>
415
+ </div>
416
+ <div class="k-tooltip-events-container" (mousedown)="onMouseDown()">
417
+ <div class="k-tooltip-events">
418
+ @for (event of eventsPerSelectedDay; track event) {
419
+ <div
420
+ class="k-tooltip-event k-event"
421
+ [title]="eventTitle(event)"
422
+ [ngClass]="getEventClasses(event, event.resources)"
423
+ [ngStyle]="getEventStyles(event, event.resources[0], event.isAllDay)"
424
+ >
425
+ @if (event.tail || event.mid) {
426
+ <kendo-icon-wrapper
427
+ [name]="arrowIcons[0]"
428
+ [svgIcon]="arrowSVGIcons[0]"
429
+ >
430
+ </kendo-icon-wrapper>
431
+ }
432
+ <div class="k-event-title k-text-ellipsis">{{ event.event.title }}</div>
433
+ <span class="k-spacer"></span>
434
+ @if ((event.isMultiDay && event.head && !event.isAllDay) || !event.isMultiDay) {
435
+ <span
436
+ class="k-event-time"
437
+ >{{ intl.formatDate(event.start, 't') }}</span
438
+ >
439
+ }
440
+ @if (event.head || event.mid) {
441
+ <kendo-icon-wrapper
442
+ [name]="arrowIcons[1]"
443
+ [svgIcon]="arrowSVGIcons[1]"
428
444
  >
429
- </kendo-icon-wrapper>
430
- </div>
431
- </div>
445
+ </kendo-icon-wrapper>
446
+ }
447
+ </div>
448
+ }
449
+ </div>
432
450
  </div>
433
- <div *ngIf="eventsPerSelectedDay.length === 0" class="k-no-data k-text-center">
451
+ @if (eventsPerSelectedDay.length === 0) {
452
+ <div class="k-no-data k-text-center">
434
453
  {{ localization.get('yearViewNoEvents') }}
435
- </div>
436
- </ng-template>
437
- `,
454
+ </div>
455
+ }
456
+ </ng-template>
457
+ `,
438
458
  standalone: true,
439
- imports: [MultiViewCalendarComponent, TooltipDirective, MonthCellTemplateDirective, NgIf, NgFor, NgClass, NgStyle, IconWrapperComponent]
459
+ imports: [MultiViewCalendarComponent, TooltipDirective, MonthCellTemplateDirective, NgClass, NgStyle, IconWrapperComponent]
440
460
  }]
441
461
  }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i2.FocusService }, { type: i3.IntlService }, { type: i4.ViewContextService }, { type: i5.ViewStateService }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: i6.PDFService }, { type: i0.ElementRef }, { type: i7.MonthSlotService }, { type: i8.ScrollbarWidthService }, { type: i0.ChangeDetectorRef }], propDecorators: { newRange: [{
442
462
  type: Input