@progress/kendo-angular-scheduler 24.0.0-develop.32 → 24.0.0-develop.34

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.
@@ -43,8 +43,8 @@ const packageMetadata = {
43
43
  productName: 'Kendo UI for Angular',
44
44
  productCode: 'KENDOUIANGULAR',
45
45
  productCodes: ['KENDOUIANGULAR'],
46
- publishDate: 1778850598,
47
- version: '24.0.0-develop.32',
46
+ publishDate: 1779091829,
47
+ version: '24.0.0-develop.34',
48
48
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
49
49
  };
50
50
 
@@ -2323,24 +2323,9 @@ class PDFExportEvent extends PreventableEvent {
2323
2323
  * @hidden
2324
2324
  */
2325
2325
  class LoadingComponent {
2326
- element;
2327
- renderer;
2328
2326
  hostClasses = true;
2329
- loading;
2330
- get display() {
2331
- return this.loading || this.force ? 'block' : 'none';
2332
- }
2333
- force;
2334
- constructor(element, renderer) {
2335
- this.element = element;
2336
- this.renderer = renderer;
2337
- }
2338
- toggle(value) {
2339
- this.force = value;
2340
- this.renderer.setStyle(this.element.nativeElement, 'display', this.display);
2341
- }
2342
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: LoadingComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
2343
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: LoadingComponent, isStandalone: true, selector: "[kendoSchedulerLoading]", inputs: { loading: "loading" }, host: { properties: { "class.k-loading-mask": "this.hostClasses", "style.display": "this.display" } }, ngImport: i0, template: `
2327
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: LoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2328
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: LoadingComponent, isStandalone: true, selector: "[kendoSchedulerLoading]", host: { properties: { "class.k-loading-mask": "this.hostClasses" } }, ngImport: i0, template: `
2344
2329
  <div class="k-loading-image"></div>
2345
2330
  <div class="k-loading-color"></div>
2346
2331
  `, isInline: true });
@@ -2355,14 +2340,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
2355
2340
  `,
2356
2341
  standalone: true
2357
2342
  }]
2358
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { hostClasses: [{
2343
+ }], propDecorators: { hostClasses: [{
2359
2344
  type: HostBinding,
2360
2345
  args: ['class.k-loading-mask']
2361
- }], loading: [{
2362
- type: Input
2363
- }], display: [{
2364
- type: HostBinding,
2365
- args: ['style.display']
2366
2346
  }] } });
2367
2347
 
2368
2348
  /**
@@ -2420,7 +2400,7 @@ class FocusableDirective {
2420
2400
  }
2421
2401
  toggleFocus(value) {
2422
2402
  const element = this.element.nativeElement;
2423
- const isFooterButton = element.matches('.k-scheduler-navigation .k-button');
2403
+ const isFooterButton = element.matches('[viewfooter] .k-button');
2424
2404
  const focusedClass = element.matches('.k-button-group .k-button') || isFooterButton ? 'k-focus' : 'k-selected';
2425
2405
  const schedulerElement = element.closest('.k-scheduler');
2426
2406
  const renderedEvents = schedulerElement ? schedulerElement.querySelectorAll('.k-event') : [];
@@ -2580,6 +2560,20 @@ const intersects = (startTime, endTime, periodStart, periodEnd) => (startTime <
2580
2560
  /** @hidden */
2581
2561
  const dateInRange = (date, start, end) => start.getTime() <= date.getTime() && date.getTime() <= end.getTime();
2582
2562
  /** @hidden */
2563
+ const getVerticalPaddingAndBorder = (element) => {
2564
+ if (!isDocumentAvailable() || !element) {
2565
+ return 0;
2566
+ }
2567
+ const styles = getComputedStyle(element);
2568
+ const values = [
2569
+ parseFloat(styles.paddingTop || '0'),
2570
+ parseFloat(styles.paddingBottom || '0'),
2571
+ parseFloat(styles.borderTopWidth || '0'),
2572
+ parseFloat(styles.borderBottomWidth || '0')
2573
+ ];
2574
+ return values.reduce((total, value) => total + (Number.isFinite(value) ? value : 0), 0);
2575
+ };
2576
+ /** @hidden */
2583
2577
  const roundAllDayEnd = ({ start, end }) => {
2584
2578
  const startDate = start.stripTime();
2585
2579
  const endDate = end.stripTime();
@@ -6753,7 +6747,6 @@ class ToolbarNavigationComponent {
6753
6747
  calendar.focus();
6754
6748
  }
6755
6749
  }
6756
- hostClass = true;
6757
6750
  /**
6758
6751
  * @hidden
6759
6752
  */
@@ -6933,13 +6926,13 @@ class ToolbarNavigationComponent {
6933
6926
  return !this.localization.rtl ? ['chevronLeftIcon', 'chevronRightIcon'] : ['chevronRightIcon', 'chevronLeftIcon'];
6934
6927
  }
6935
6928
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ToolbarNavigationComponent, deps: [{ token: i1$2.PopupService }, { token: ToolbarService }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }], target: i0.ɵɵFactoryTarget.Component });
6936
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: ToolbarNavigationComponent, isStandalone: true, selector: "[kendoSchedulerToolbarNavigation]", inputs: { min: "min", max: "max", activeView: "activeView", bottomView: "bottomView" }, host: { properties: { "class.k-toolbar-group": "this.hostClass" } }, providers: [
6929
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: ToolbarNavigationComponent, isStandalone: true, selector: "[kendoSchedulerToolbarNavigation]", inputs: { min: "min", max: "max", activeView: "activeView", bottomView: "bottomView" }, providers: [
6937
6930
  PopupService
6938
6931
  ], viewQueries: [{ propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true }], ngImport: i0, template: `
6939
- <span class="k-scheduler-navigation k-button-group" role="group">
6932
+ <span class="k-button-group k-toolbar-button-group k-scheduler-navigation" role="group">
6940
6933
  <button kendoButton
6934
+ class="k-group-start"
6941
6935
  (click)="todayClick()"
6942
- class="k-nav-today"
6943
6936
  [attr.title]="todayText"
6944
6937
  [kendoSchedulerFocusIndex]="0"
6945
6938
  containerType="toolbar">
@@ -6947,7 +6940,6 @@ class ToolbarNavigationComponent {
6947
6940
  </button>
6948
6941
  <button kendoButton
6949
6942
  (click)="prevClick()"
6950
- class="k-nav-prev"
6951
6943
  [icon]="arrowIcons[0]"
6952
6944
  [svgIcon]="svgIcon(arrowSVGIcons[0])"
6953
6945
  [attr.title]="previousText"
@@ -6956,9 +6948,9 @@ class ToolbarNavigationComponent {
6956
6948
  containerType="toolbar">
6957
6949
  </button>
6958
6950
  <button kendoButton
6951
+ class="k-group-end"
6959
6952
  (click)="nextClick()"
6960
6953
  type="button"
6961
- class="k-nav-next"
6962
6954
  [icon]="arrowIcons[1]"
6963
6955
  [svgIcon]="svgIcon(arrowSVGIcons[1])"
6964
6956
  [attr.title]="nextText"
@@ -6980,7 +6972,7 @@ class ToolbarNavigationComponent {
6980
6972
  (keydown.enter)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
6981
6973
  (keydown.alt.arrowdown)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
6982
6974
  role="button"
6983
- class="k-nav-current"
6975
+ class="k-nav-current k-toolbar-button"
6984
6976
  [attr.aria-live]="'polite'"
6985
6977
  [kendoSchedulerFocusIndex]="0"
6986
6978
  containerType="toolbar">
@@ -7011,10 +7003,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7011
7003
  PopupService
7012
7004
  ],
7013
7005
  template: `
7014
- <span class="k-scheduler-navigation k-button-group" role="group">
7006
+ <span class="k-button-group k-toolbar-button-group k-scheduler-navigation" role="group">
7015
7007
  <button kendoButton
7008
+ class="k-group-start"
7016
7009
  (click)="todayClick()"
7017
- class="k-nav-today"
7018
7010
  [attr.title]="todayText"
7019
7011
  [kendoSchedulerFocusIndex]="0"
7020
7012
  containerType="toolbar">
@@ -7022,7 +7014,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7022
7014
  </button>
7023
7015
  <button kendoButton
7024
7016
  (click)="prevClick()"
7025
- class="k-nav-prev"
7026
7017
  [icon]="arrowIcons[0]"
7027
7018
  [svgIcon]="svgIcon(arrowSVGIcons[0])"
7028
7019
  [attr.title]="previousText"
@@ -7031,9 +7022,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7031
7022
  containerType="toolbar">
7032
7023
  </button>
7033
7024
  <button kendoButton
7025
+ class="k-group-end"
7034
7026
  (click)="nextClick()"
7035
7027
  type="button"
7036
- class="k-nav-next"
7037
7028
  [icon]="arrowIcons[1]"
7038
7029
  [svgIcon]="svgIcon(arrowSVGIcons[1])"
7039
7030
  [attr.title]="nextText"
@@ -7055,7 +7046,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7055
7046
  (keydown.enter)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
7056
7047
  (keydown.alt.arrowdown)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
7057
7048
  role="button"
7058
- class="k-nav-current"
7049
+ class="k-nav-current k-toolbar-button"
7059
7050
  [attr.aria-live]="'polite'"
7060
7051
  [kendoSchedulerFocusIndex]="0"
7061
7052
  containerType="toolbar">
@@ -7082,9 +7073,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7082
7073
  }], ctorParameters: () => [{ type: i1$2.PopupService }, { type: ToolbarService }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }], propDecorators: { calendar: [{
7083
7074
  type: ViewChild,
7084
7075
  args: ['calendar', { static: false }]
7085
- }], hostClass: [{
7086
- type: HostBinding,
7087
- args: ['class.k-toolbar-group']
7088
7076
  }], min: [{
7089
7077
  type: Input
7090
7078
  }], max: [{
@@ -8286,10 +8274,6 @@ class SchedulerComponent {
8286
8274
  * @hidden
8287
8275
  */
8288
8276
  confirmationDialogContainerRef;
8289
- /**
8290
- * @hidden
8291
- */
8292
- loadingComponent;
8293
8277
  /**
8294
8278
  * @hidden
8295
8279
  */
@@ -8352,6 +8336,10 @@ class SchedulerComponent {
8352
8336
  get viewToolbar() {
8353
8337
  return this.viewState?.toolbarVisibilityByView.get(this.selectedView);
8354
8338
  }
8339
+ /**
8340
+ * @hidden
8341
+ */
8342
+ pdfLoading = false;
8355
8343
  direction;
8356
8344
  subs;
8357
8345
  viewIndex = 0;
@@ -8495,7 +8483,8 @@ class SchedulerComponent {
8495
8483
  }
8496
8484
  }));
8497
8485
  this.subs.add(this.pdfService.done.subscribe(() => {
8498
- this.loadingComponent.toggle(false);
8486
+ this.pdfLoading = false;
8487
+ this.changeDetector.markForCheck();
8499
8488
  }));
8500
8489
  this.subs.add(this.localization.changes.subscribe(({ rtl }) => {
8501
8490
  this.rtl = rtl;
@@ -8643,7 +8632,8 @@ class SchedulerComponent {
8643
8632
  * Saves the current view as PDF.
8644
8633
  */
8645
8634
  saveAsPDF() {
8646
- this.loadingComponent.toggle(true);
8635
+ this.pdfLoading = true;
8636
+ this.changeDetector.markForCheck();
8647
8637
  this.zone.runOutsideAngular(() => {
8648
8638
  // wait a tick in order for the loading element style to be updated by the browser.
8649
8639
  // if the export is synchronous, the browser will not update the element before the export is finished.
@@ -8924,7 +8914,7 @@ class SchedulerComponent {
8924
8914
  ViewContextService,
8925
8915
  ViewStateService,
8926
8916
  PDFService
8927
- ], queries: [{ propertyName: "editDialogTemplate", first: true, predicate: EditDialogTemplateDirective, descendants: true }, { propertyName: "toolbarTemplate", first: true, predicate: ToolbarTemplateDirective, descendants: true }, { propertyName: "views", predicate: SchedulerView }, { propertyName: "allDayEventTemplate", predicate: AllDayEventTemplateDirective }, { propertyName: "eventTemplate", predicate: EventTemplateDirective }, { propertyName: "timeSlotTemplate", predicate: TimeSlotTemplateDirective }, { propertyName: "minorTimeHeaderTemplate", predicate: MinorTimeHeaderTemplateDirective }, { propertyName: "majorTimeHeaderTemplate", predicate: MajorTimeHeaderTemplateDirective }, { propertyName: "monthDaySlotTemplate", predicate: MonthDaySlotTemplateDirective }, { propertyName: "multiWeekDaySlotTemplate", predicate: MultiWeekDaySlotTemplateDirective }, { propertyName: "dateHeaderTemplate", predicate: DateHeaderTemplateDirective }, { propertyName: "allDaySlotTemplate", predicate: AllDaySlotTemplateDirective }, { propertyName: "groupHeaderTemplate", predicate: GroupHeaderTemplateDirective }, { propertyName: "agendaDateTemplate", predicate: AgendaDateTemplateDirective }, { propertyName: "agendaTimeTemplate", predicate: AgendaTimeTemplateDirective }], viewQueries: [{ propertyName: "resizeSensor", first: true, predicate: ResizeSensorComponent, descendants: true, static: true }, { propertyName: "confirmationDialogContainerRef", first: true, predicate: ["confirmationDialogContainer"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "loadingComponent", first: true, predicate: LoadingComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
8917
+ ], queries: [{ propertyName: "editDialogTemplate", first: true, predicate: EditDialogTemplateDirective, descendants: true }, { propertyName: "toolbarTemplate", first: true, predicate: ToolbarTemplateDirective, descendants: true }, { propertyName: "views", predicate: SchedulerView }, { propertyName: "allDayEventTemplate", predicate: AllDayEventTemplateDirective }, { propertyName: "eventTemplate", predicate: EventTemplateDirective }, { propertyName: "timeSlotTemplate", predicate: TimeSlotTemplateDirective }, { propertyName: "minorTimeHeaderTemplate", predicate: MinorTimeHeaderTemplateDirective }, { propertyName: "majorTimeHeaderTemplate", predicate: MajorTimeHeaderTemplateDirective }, { propertyName: "monthDaySlotTemplate", predicate: MonthDaySlotTemplateDirective }, { propertyName: "multiWeekDaySlotTemplate", predicate: MultiWeekDaySlotTemplateDirective }, { propertyName: "dateHeaderTemplate", predicate: DateHeaderTemplateDirective }, { propertyName: "allDaySlotTemplate", predicate: AllDaySlotTemplateDirective }, { propertyName: "groupHeaderTemplate", predicate: GroupHeaderTemplateDirective }, { propertyName: "agendaDateTemplate", predicate: AgendaDateTemplateDirective }, { propertyName: "agendaTimeTemplate", predicate: AgendaTimeTemplateDirective }], viewQueries: [{ propertyName: "resizeSensor", first: true, predicate: ResizeSensorComponent, descendants: true, static: true }, { propertyName: "confirmationDialogContainerRef", first: true, predicate: ["confirmationDialogContainer"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
8928
8918
  <ng-container kendoSchedulerLocalizedMessages
8929
8919
  i18n-allEvents="kendo.scheduler.allEvents|The All events text displayed in the timeline views when there is no vertical grouping."
8930
8920
  allEvents="All events"
@@ -9255,13 +9245,14 @@ class SchedulerComponent {
9255
9245
 
9256
9246
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
9257
9247
 
9258
- <div [loading]="loading" kendoSchedulerLoading>
9259
- </div>
9248
+ @if (loading || pdfLoading) {
9249
+ <div kendoSchedulerLoading></div>
9250
+ }
9260
9251
 
9261
9252
  @if (showLicenseWatermark) {
9262
9253
  <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
9263
9254
  }
9264
- `, 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: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay], kendo-watermark-overlay", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9255
+ `, 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]" }, { kind: "component", type: WatermarkOverlayComponent, selector: "div[kendoWatermarkOverlay], kendo-watermark-overlay", inputs: ["licenseMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
9265
9256
  }
9266
9257
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: SchedulerComponent, decorators: [{
9267
9258
  type: Component,
@@ -9619,8 +9610,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
9619
9610
 
9620
9611
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
9621
9612
 
9622
- <div [loading]="loading" kendoSchedulerLoading>
9623
- </div>
9613
+ @if (loading || pdfLoading) {
9614
+ <div kendoSchedulerLoading></div>
9615
+ }
9624
9616
 
9625
9617
  @if (showLicenseWatermark) {
9626
9618
  <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
@@ -9774,9 +9766,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
9774
9766
  }], confirmationDialogContainerRef: [{
9775
9767
  type: ViewChild,
9776
9768
  args: ["confirmationDialogContainer", { read: ViewContainerRef, static: true }]
9777
- }], loadingComponent: [{
9778
- type: ViewChild,
9779
- args: [LoadingComponent, { static: true }]
9780
9769
  }], allDayEventTemplate: [{
9781
9770
  type: ContentChildren,
9782
9771
  args: [AllDayEventTemplateDirective]
@@ -11406,9 +11395,9 @@ class AgendaHeaderComponent {
11406
11395
  @for (resource of resources; track resource) {
11407
11396
  <th class="k-scheduler-groupcolumn k-first" role="columnheader"><span class="k-sr-only">{{ resourceMessage }}</span></th>
11408
11397
  }
11409
- <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
11410
- <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
11411
- <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
11398
+ <th class="k-scheduler-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
11399
+ <th class="k-scheduler-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
11400
+ <th class="k-scheduler-cell" role="columnheader">{{ eventMessage }}</th>
11412
11401
  </tr>
11413
11402
  </tbody>
11414
11403
  </table>
@@ -11428,9 +11417,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
11428
11417
  @for (resource of resources; track resource) {
11429
11418
  <th class="k-scheduler-groupcolumn k-first" role="columnheader"><span class="k-sr-only">{{ resourceMessage }}</span></th>
11430
11419
  }
11431
- <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
11432
- <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
11433
- <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
11420
+ <th class="k-scheduler-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
11421
+ <th class="k-scheduler-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
11422
+ <th class="k-scheduler-cell" role="columnheader">{{ eventMessage }}</th>
11434
11423
  </tr>
11435
11424
  </tbody>
11436
11425
  </table>
@@ -12663,8 +12652,10 @@ class BaseView {
12663
12652
  contentTable;
12664
12653
  times;
12665
12654
  timesHeader;
12655
+ timesHeaderTable;
12666
12656
  timesTable;
12667
12657
  headerWrap;
12658
+ headerTable;
12668
12659
  hintContainer;
12669
12660
  get eventTemplateRef() {
12670
12661
  return this.eventTemplate || (this.schedulerEventTemplate || {}).templateRef;
@@ -13665,7 +13656,7 @@ class BaseView {
13665
13656
  }
13666
13657
  }
13667
13658
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BaseView, deps: [{ token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }, { token: BaseSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: PDFService }, { token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i7.ScrollbarService }], target: i0.ɵɵFactoryTarget.Directive });
13668
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: BaseView, isStandalone: true, inputs: { eventTemplate: "eventTemplate", groupHeaderTemplate: "groupHeaderTemplate", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", eventHeight: "eventHeight", showToolbar: "showToolbar", showFooter: "showFooter", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", weekStart: "weekStart" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "contentTable", first: true, predicate: ["contentTable"], descendants: true }, { propertyName: "times", first: true, predicate: ["times"], descendants: true }, { propertyName: "timesHeader", first: true, predicate: ["timesHeader"], descendants: true }, { propertyName: "timesTable", first: true, predicate: ["timesTable"], descendants: true }, { propertyName: "headerWrap", first: true, predicate: ["headerWrap"], descendants: true }, { propertyName: "hintContainer", first: true, predicate: ["hintContainer"], descendants: true }], usesOnChanges: true, ngImport: i0 });
13659
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: BaseView, isStandalone: true, inputs: { eventTemplate: "eventTemplate", groupHeaderTemplate: "groupHeaderTemplate", selectedDateFormat: "selectedDateFormat", selectedShortDateFormat: "selectedShortDateFormat", eventHeight: "eventHeight", showToolbar: "showToolbar", showFooter: "showFooter", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", weekStart: "weekStart" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "contentTable", first: true, predicate: ["contentTable"], descendants: true }, { propertyName: "times", first: true, predicate: ["times"], descendants: true }, { propertyName: "timesHeader", first: true, predicate: ["timesHeader"], descendants: true }, { propertyName: "timesHeaderTable", first: true, predicate: ["timesHeaderTable"], descendants: true }, { propertyName: "timesTable", first: true, predicate: ["timesTable"], descendants: true }, { propertyName: "headerWrap", first: true, predicate: ["headerWrap"], descendants: true }, { propertyName: "headerTable", first: true, predicate: ["headerTable"], descendants: true }, { propertyName: "hintContainer", first: true, predicate: ["hintContainer"], descendants: true }], usesOnChanges: true, ngImport: i0 });
13669
13660
  }
13670
13661
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BaseView, decorators: [{
13671
13662
  type: Directive
@@ -13706,12 +13697,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
13706
13697
  }], timesHeader: [{
13707
13698
  type: ViewChild,
13708
13699
  args: ['timesHeader', { static: false }]
13700
+ }], timesHeaderTable: [{
13701
+ type: ViewChild,
13702
+ args: ['timesHeaderTable', { static: false }]
13709
13703
  }], timesTable: [{
13710
13704
  type: ViewChild,
13711
13705
  args: ['timesTable', { static: false }]
13712
13706
  }], headerWrap: [{
13713
13707
  type: ViewChild,
13714
13708
  args: ['headerWrap', { static: false }]
13709
+ }], headerTable: [{
13710
+ type: ViewChild,
13711
+ args: ['headerTable', { static: false }]
13715
13712
  }], hintContainer: [{
13716
13713
  type: ViewChild,
13717
13714
  args: ['hintContainer', { static: false }]
@@ -14479,12 +14476,15 @@ class MonthViewRendererComponent extends BaseView {
14479
14476
  super.ngOnChanges(changes);
14480
14477
  }
14481
14478
  ngOnInit() {
14482
- this.viewState.layoutEnd.subscribe(() => {
14479
+ this.subs.add(this.viewState.layoutEnd.subscribe(() => {
14483
14480
  if (this.adaptiveSlotHeight) {
14484
14481
  this.slotService.invalidate();
14485
14482
  this.reflow();
14486
14483
  }
14487
- });
14484
+ else {
14485
+ this.syncTables();
14486
+ }
14487
+ }));
14488
14488
  super.ngOnInit();
14489
14489
  }
14490
14490
  ngAfterViewInit() {
@@ -14571,6 +14571,24 @@ class MonthViewRendererComponent extends BaseView {
14571
14571
  }
14572
14572
  this.syncTables();
14573
14573
  }
14574
+ syncTables() {
14575
+ super.syncTables();
14576
+ if (!this.timesTable) {
14577
+ return;
14578
+ }
14579
+ const timesRows = this.timesTable.nativeElement.rows;
14580
+ if (!timesRows.length) {
14581
+ return;
14582
+ }
14583
+ const contentRows = this.contentTable.nativeElement.rows;
14584
+ const rowsCount = Math.min(timesRows.length, contentRows.length);
14585
+ for (let index = 0; index < rowsCount; index++) {
14586
+ const height = `${contentRows[index].offsetHeight}px`;
14587
+ if (timesRows[index].style.height !== height) {
14588
+ this.renderer.setStyle(timesRows[index], 'height', height);
14589
+ }
14590
+ }
14591
+ }
14574
14592
  onClick(e, eventType = e.type) {
14575
14593
  if (eventType === 'click') {
14576
14594
  const eventSlot = closestInScope(e.target, node => node.hasAttribute('data-slot-index'), this.element.nativeElement);
@@ -14693,7 +14711,7 @@ class MonthViewRendererComponent extends BaseView {
14693
14711
  <table class="k-scheduler-table" aria-hidden="true">
14694
14712
  <tbody>
14695
14713
  <tr>
14696
- <th class="k-scheduler-cell k-heading-cell"></th>
14714
+ <th class="k-scheduler-cell"></th>
14697
14715
  </tr>
14698
14716
  </tbody>
14699
14717
  </table>
@@ -14711,7 +14729,7 @@ class MonthViewRendererComponent extends BaseView {
14711
14729
  <tr>
14712
14730
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
14713
14731
  <th
14714
- class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14732
+ class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14715
14733
  @if (!groupHeaderTemplateRef) {
14716
14734
  {{ getField(item, resource.textField) }}
14717
14735
  }
@@ -14725,7 +14743,7 @@ class MonthViewRendererComponent extends BaseView {
14725
14743
  <tr>
14726
14744
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
14727
14745
  @for (day of weeks[0]; track itemIndex($index, day)) {
14728
- <th class="k-scheduler-cell k-heading-cell">
14746
+ <th class="k-scheduler-cell">
14729
14747
  {{ day | kendoDate: 'EEEE' }}
14730
14748
  </th>
14731
14749
  }
@@ -14747,7 +14765,7 @@ class MonthViewRendererComponent extends BaseView {
14747
14765
  <tr>
14748
14766
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
14749
14767
  @if (verticalItem(leafIndex, resourceIndex)) {
14750
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-heading-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
14768
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
14751
14769
  @if (!groupHeaderTemplateRef) {
14752
14770
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
14753
14771
  }
@@ -14758,12 +14776,12 @@ class MonthViewRendererComponent extends BaseView {
14758
14776
  </th>
14759
14777
  }
14760
14778
  }
14761
- <th class="k-slot-cell k-heading-cell k-empty-slot">
14779
+ <th class="k-slot-cell k-empty-slot">
14762
14780
  </th>
14763
14781
  </tr>
14764
14782
  @for (index of (numberOfWeeks - 1) | repeat; track itemIndex($index, index)) {
14765
14783
  <tr>
14766
- <th class="k-slot-cell k-heading-cell k-empty-slot"></th>
14784
+ <th class="k-slot-cell k-empty-slot"></th>
14767
14785
  </tr>
14768
14786
  }
14769
14787
  }
@@ -14884,7 +14902,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14884
14902
  <table class="k-scheduler-table" aria-hidden="true">
14885
14903
  <tbody>
14886
14904
  <tr>
14887
- <th class="k-scheduler-cell k-heading-cell"></th>
14905
+ <th class="k-scheduler-cell"></th>
14888
14906
  </tr>
14889
14907
  </tbody>
14890
14908
  </table>
@@ -14902,7 +14920,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14902
14920
  <tr>
14903
14921
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
14904
14922
  <th
14905
- class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14923
+ class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14906
14924
  @if (!groupHeaderTemplateRef) {
14907
14925
  {{ getField(item, resource.textField) }}
14908
14926
  }
@@ -14916,7 +14934,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14916
14934
  <tr>
14917
14935
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
14918
14936
  @for (day of weeks[0]; track itemIndex($index, day)) {
14919
- <th class="k-scheduler-cell k-heading-cell">
14937
+ <th class="k-scheduler-cell">
14920
14938
  {{ day | kendoDate: 'EEEE' }}
14921
14939
  </th>
14922
14940
  }
@@ -14938,7 +14956,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14938
14956
  <tr>
14939
14957
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
14940
14958
  @if (verticalItem(leafIndex, resourceIndex)) {
14941
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-heading-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
14959
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
14942
14960
  @if (!groupHeaderTemplateRef) {
14943
14961
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
14944
14962
  }
@@ -14949,12 +14967,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14949
14967
  </th>
14950
14968
  }
14951
14969
  }
14952
- <th class="k-slot-cell k-heading-cell k-empty-slot">
14970
+ <th class="k-slot-cell k-empty-slot">
14953
14971
  </th>
14954
14972
  </tr>
14955
14973
  @for (index of (numberOfWeeks - 1) | repeat; track itemIndex($index, index)) {
14956
14974
  <tr>
14957
- <th class="k-slot-cell k-heading-cell k-empty-slot"></th>
14975
+ <th class="k-slot-cell k-empty-slot"></th>
14958
14976
  </tr>
14959
14977
  }
14960
14978
  }
@@ -15746,7 +15764,7 @@ class ViewFooterComponent {
15746
15764
  }
15747
15765
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ViewFooterComponent, deps: [{ token: ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
15748
15766
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ViewFooterComponent, isStandalone: true, selector: "[viewFooter]", inputs: { items: "items" }, outputs: { itemClick: "itemClick" }, host: { properties: { "class.k-scheduler-footer": "this.hostClasses", "class.k-toolbar": "this.hostClasses", "attr.role": "this.toolbarRole", "style.justify-content": "this.inlineJustifyContentStyle" } }, ngImport: i0, template: `
15749
- <span class="k-scheduler-navigation">
15767
+ <span>
15750
15768
  @for (item of items; track item) {
15751
15769
  <button
15752
15770
  type="button"
@@ -15768,7 +15786,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
15768
15786
  args: [{
15769
15787
  selector: '[viewFooter]',
15770
15788
  template: `
15771
- <span class="k-scheduler-navigation">
15789
+ <span>
15772
15790
  @for (item of items; track item) {
15773
15791
  <button
15774
15792
  type="button"
@@ -15812,7 +15830,7 @@ class WorkHoursFooterDirective {
15812
15830
  footer;
15813
15831
  localization;
15814
15832
  showWorkHours = false;
15815
- footerItems = [{ cssClass: 'k-scheduler-fullday', fontIcon: 'clock', svgIcon: clockIcon, text: '' }];
15833
+ footerItems = [{ cssClass: 'k-scheduler-fullday k-toolbar-button', fontIcon: 'clock', svgIcon: clockIcon, text: '' }];
15816
15834
  constructor(footer, localization) {
15817
15835
  this.footer = footer;
15818
15836
  this.localization = localization;
@@ -17155,6 +17173,49 @@ class DayTimeViewComponent extends BaseView {
17155
17173
  this.workDayEndTime = toInvariantTime(endDate);
17156
17174
  }
17157
17175
  }
17176
+ syncDateHeaderHeight() {
17177
+ if (!isDocumentAvailable()) {
17178
+ return;
17179
+ }
17180
+ const dateRowIndex = this.horizontalResources.length + 1;
17181
+ const timesTable = this.timesHeaderTable?.nativeElement;
17182
+ const headerTable = this.headerTable?.nativeElement;
17183
+ const timesHeaderDateCell = timesTable?.rows[dateRowIndex - 1]?.cells[0];
17184
+ const headerDateCell = headerTable?.rows[dateRowIndex - 1]?.cells[0];
17185
+ const shouldSkipDateHeightSync = !timesHeaderDateCell || !headerDateCell || !this.dateHeaderTemplateRef;
17186
+ if (shouldSkipDateHeightSync) {
17187
+ if (timesHeaderDateCell && !this.dateHeaderTemplateRef) {
17188
+ this.renderer.removeStyle(timesHeaderDateCell, 'height');
17189
+ }
17190
+ return;
17191
+ }
17192
+ this.syncCellHeight(headerDateCell, timesHeaderDateCell);
17193
+ }
17194
+ syncGroupHeaderHeight() {
17195
+ if (!isDocumentAvailable()) {
17196
+ return;
17197
+ }
17198
+ const dateRowIndex = this.horizontalResources.length + 1;
17199
+ const timesTable = this.timesHeaderTable?.nativeElement;
17200
+ const headerTable = this.headerTable?.nativeElement;
17201
+ for (let rowIndex = 1; rowIndex < dateRowIndex; rowIndex++) {
17202
+ const timesHeaderCell = timesTable?.rows[rowIndex - 1]?.cells[0];
17203
+ if (!timesHeaderCell) {
17204
+ continue;
17205
+ }
17206
+ // Remove height when template is absent or grouping is vertical
17207
+ if (!this.groupHeaderTemplateRef || this.verticalResources.length) {
17208
+ this.renderer.removeStyle(timesHeaderCell, 'height');
17209
+ continue;
17210
+ }
17211
+ const headerCell = headerTable?.rows[rowIndex - 1]?.cells[0];
17212
+ if (!headerCell) {
17213
+ this.renderer.removeStyle(timesHeaderCell, 'height');
17214
+ continue;
17215
+ }
17216
+ this.syncCellHeight(headerCell, timesHeaderCell);
17217
+ }
17218
+ }
17158
17219
  slotByPosition(x, y, container) {
17159
17220
  const isDaySlot = container ? hasClasses(container.parentNode, 'k-scheduler-header-wrap') : y < 0;
17160
17221
  return this.slotService.slotByPosition(x, y, isDaySlot, Boolean(this.verticalResources.length));
@@ -17170,6 +17231,14 @@ class DayTimeViewComponent extends BaseView {
17170
17231
  }
17171
17232
  return fields;
17172
17233
  }
17234
+ syncCellHeight(sourceCell, targetCell) {
17235
+ const height = sourceCell.getBoundingClientRect().height;
17236
+ const currentHeight = targetCell.getBoundingClientRect().height;
17237
+ const paddingAndBorder = getVerticalPaddingAndBorder(targetCell);
17238
+ if (height !== currentHeight) {
17239
+ this.renderer.setStyle(targetCell, 'height', `${height - paddingAndBorder}px`);
17240
+ }
17241
+ }
17173
17242
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: DayTimeViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }, { token: DayTimeSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: PDFService }, { token: i1$1.LocalizationService }, { token: i7.ScrollbarService }], target: i0.ɵɵFactoryTarget.Component });
17174
17243
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.20", type: DayTimeViewComponent, isStandalone: true, selector: "kendo-day-time-view", inputs: { timeSlotTemplate: "timeSlotTemplate", dateHeaderTemplate: "dateHeaderTemplate", majorTimeHeaderTemplate: "majorTimeHeaderTemplate", minorTimeHeaderTemplate: "minorTimeHeaderTemplate", numberOfDays: "numberOfDays", scrollTime: "scrollTime", startTime: "startTime", endTime: "endTime", workDayStart: "workDayStart", workDayEnd: "workDayEnd", workWeekStart: "workWeekStart", workWeekEnd: "workWeekEnd", slotDuration: "slotDuration", slotDivisions: "slotDivisions", showWorkHours: "showWorkHours", getStartDate: "getStartDate", getEndDate: "getEndDate", getNextDate: "getNextDate", currentTimeMarker: "currentTimeMarker", highlightOngoingEvents: "highlightOngoingEvents" }, viewQueries: [{ propertyName: "currentTimeElements", predicate: ["currentTimeMarker"], descendants: true }, { propertyName: "eventElements", predicate: DayTimeViewItemComponent, descendants: true }, { propertyName: "currentTimeArrows", predicate: ["currentTimeArrow"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
17175
17244
  }
@@ -17483,6 +17552,11 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17483
17552
  slotService.layoutTimes({ fill: this.slotFill });
17484
17553
  this.syncTables();
17485
17554
  }
17555
+ syncTables() {
17556
+ super.syncTables();
17557
+ this.syncGroupHeaderHeight();
17558
+ this.syncDateHeaderHeight();
17559
+ }
17486
17560
  dragHorizontal(slot) {
17487
17561
  return slot.isDaySlot;
17488
17562
  }
@@ -17587,19 +17661,19 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17587
17661
  <tr class="k-scheduler-head">
17588
17662
  <td>
17589
17663
  <div class="k-scheduler-times" #timesHeader>
17590
- <table class="k-scheduler-table" aria-hidden="true">
17664
+ <table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
17591
17665
  <tbody>
17592
17666
  @for (resource of horizontalResources; track itemIndex($index, resource)) {
17593
17667
  <tr>
17594
- <th class="k-scheduler-cell k-heading-cell"></th>
17668
+ <th class="k-scheduler-cell"></th>
17595
17669
  </tr>
17596
17670
  }
17597
17671
  <tr [style.height]="'auto'">
17598
- <th class="k-scheduler-cell k-heading-cell"></th>
17672
+ <th class="k-scheduler-cell"></th>
17599
17673
  </tr>
17600
17674
  @if (allDaySlot && !verticalResources.length) {
17601
17675
  <tr>
17602
- <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
17676
+ <th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
17603
17677
  </tr>
17604
17678
  }
17605
17679
  </tbody>
@@ -17609,13 +17683,13 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17609
17683
  <td>
17610
17684
  <div class="k-scheduler-header" #header>
17611
17685
  <div class="k-scheduler-header-wrap" #headerWrap>
17612
- <table class="k-scheduler-table" aria-hidden="true">
17686
+ <table class="k-scheduler-table" #headerTable aria-hidden="true">
17613
17687
  <tbody>
17614
17688
  @for (resource of horizontalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
17615
17689
  <tr>
17616
17690
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
17617
17691
  <th
17618
- class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
17692
+ class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
17619
17693
  @if (!groupHeaderTemplateRef) {
17620
17694
  {{ getField(item, resource.textField) }}
17621
17695
  }
@@ -17629,7 +17703,7 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17629
17703
  <tr class="k-scheduler-date-group">
17630
17704
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
17631
17705
  @for (slot of daySlots; track itemIndex(index, slot); let index = $index) {
17632
- <th class="k-scheduler-cell k-heading-cell">
17706
+ <th class="k-scheduler-cell">
17633
17707
  @if (!dateHeaderTemplateRef) {
17634
17708
  <span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
17635
17709
  }
@@ -17741,7 +17815,7 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17741
17815
  <tr>
17742
17816
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
17743
17817
  @if (verticalItem(leafIndex, resourceIndex)) {
17744
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell k-heading-cell">
17818
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell">
17745
17819
  @if (!groupHeaderTemplateRef) {
17746
17820
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
17747
17821
  }
@@ -17753,14 +17827,14 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17753
17827
  }
17754
17828
  }
17755
17829
  @if (allDaySlot) {
17756
- <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
17830
+ <th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
17757
17831
  }
17758
17832
  </tr>
17759
17833
  }
17760
17834
  @for (slot of timeSlots; track itemIndex(timeSlotIndex, slot); let timeSlotIndex = $index) {
17761
17835
  <tr>
17762
17836
  @if (slot.isMajor) {
17763
- <th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell k-heading-cell">
17837
+ <th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell">
17764
17838
  @if (!majorTimeHeaderTemplateRef) {
17765
17839
  {{ slot.start | kendoDate: 't' }}
17766
17840
  }
@@ -17770,7 +17844,7 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17770
17844
  </th>
17771
17845
  }
17772
17846
  @if (!slot.isMajor) {
17773
- <th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell k-heading-cell">
17847
+ <th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell">
17774
17848
  @if (minorTimeHeaderTemplateRef) {
17775
17849
  <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
17776
17850
  </ng-container>
@@ -17950,19 +18024,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
17950
18024
  <tr class="k-scheduler-head">
17951
18025
  <td>
17952
18026
  <div class="k-scheduler-times" #timesHeader>
17953
- <table class="k-scheduler-table" aria-hidden="true">
18027
+ <table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
17954
18028
  <tbody>
17955
18029
  @for (resource of horizontalResources; track itemIndex($index, resource)) {
17956
18030
  <tr>
17957
- <th class="k-scheduler-cell k-heading-cell"></th>
18031
+ <th class="k-scheduler-cell"></th>
17958
18032
  </tr>
17959
18033
  }
17960
18034
  <tr [style.height]="'auto'">
17961
- <th class="k-scheduler-cell k-heading-cell"></th>
18035
+ <th class="k-scheduler-cell"></th>
17962
18036
  </tr>
17963
18037
  @if (allDaySlot && !verticalResources.length) {
17964
18038
  <tr>
17965
- <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
18039
+ <th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
17966
18040
  </tr>
17967
18041
  }
17968
18042
  </tbody>
@@ -17972,13 +18046,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
17972
18046
  <td>
17973
18047
  <div class="k-scheduler-header" #header>
17974
18048
  <div class="k-scheduler-header-wrap" #headerWrap>
17975
- <table class="k-scheduler-table" aria-hidden="true">
18049
+ <table class="k-scheduler-table" #headerTable aria-hidden="true">
17976
18050
  <tbody>
17977
18051
  @for (resource of horizontalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
17978
18052
  <tr>
17979
18053
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
17980
18054
  <th
17981
- class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
18055
+ class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
17982
18056
  @if (!groupHeaderTemplateRef) {
17983
18057
  {{ getField(item, resource.textField) }}
17984
18058
  }
@@ -17992,7 +18066,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
17992
18066
  <tr class="k-scheduler-date-group">
17993
18067
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
17994
18068
  @for (slot of daySlots; track itemIndex(index, slot); let index = $index) {
17995
- <th class="k-scheduler-cell k-heading-cell">
18069
+ <th class="k-scheduler-cell">
17996
18070
  @if (!dateHeaderTemplateRef) {
17997
18071
  <span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
17998
18072
  }
@@ -18104,7 +18178,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
18104
18178
  <tr>
18105
18179
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
18106
18180
  @if (verticalItem(leafIndex, resourceIndex)) {
18107
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell k-heading-cell">
18181
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell">
18108
18182
  @if (!groupHeaderTemplateRef) {
18109
18183
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
18110
18184
  }
@@ -18116,14 +18190,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
18116
18190
  }
18117
18191
  }
18118
18192
  @if (allDaySlot) {
18119
- <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
18193
+ <th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
18120
18194
  }
18121
18195
  </tr>
18122
18196
  }
18123
18197
  @for (slot of timeSlots; track itemIndex(timeSlotIndex, slot); let timeSlotIndex = $index) {
18124
18198
  <tr>
18125
18199
  @if (slot.isMajor) {
18126
- <th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell k-heading-cell">
18200
+ <th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell">
18127
18201
  @if (!majorTimeHeaderTemplateRef) {
18128
18202
  {{ slot.start | kendoDate: 't' }}
18129
18203
  }
@@ -18133,7 +18207,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
18133
18207
  </th>
18134
18208
  }
18135
18209
  @if (!slot.isMajor) {
18136
- <th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell k-heading-cell">
18210
+ <th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell">
18137
18211
  @if (minorTimeHeaderTemplateRef) {
18138
18212
  <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
18139
18213
  </ng-container>
@@ -19088,7 +19162,6 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19088
19162
  get classNames() {
19089
19163
  return `k-scheduler-${this.viewName}-view`;
19090
19164
  }
19091
- headerTable;
19092
19165
  get contentWidthPercentage() {
19093
19166
  const expectedWidth = this.columnWidth * this.slotsCount;
19094
19167
  const percentage = (expectedWidth / this.contentWidth) * 100;
@@ -19168,6 +19241,11 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19168
19241
  handleScroll() {
19169
19242
  this.headerWrap.nativeElement.scrollLeft = this.content.nativeElement.scrollLeft;
19170
19243
  }
19244
+ syncTables() {
19245
+ super.syncTables();
19246
+ this.syncGroupHeaderHeight();
19247
+ this.syncDateHeaderHeight();
19248
+ }
19171
19249
  createTasks(items, dateRange) {
19172
19250
  return createTasks$1(dateRange.start, dateRange.end, items, this.hiddenDays || []);
19173
19251
  }
@@ -19198,19 +19276,19 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19198
19276
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: TimelineMultiDayViewComponent, deps: [{ token: i1$1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: ViewContextService }, { token: ViewStateService }, { token: i4.IntlService }, { token: DayTimeSlotService }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: PDFService }, { token: i7.ScrollbarService }], target: i0.ɵɵFactoryTarget.Component });
19199
19277
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: TimelineMultiDayViewComponent, isStandalone: true, selector: "timeline-multi-day-view", inputs: { hiddenDays: "hiddenDays", name: "name", columnWidth: "columnWidth", viewName: "viewName" }, providers: [
19200
19278
  DayTimeSlotService
19201
- ], viewQueries: [{ propertyName: "headerTable", first: true, predicate: ["headerTable"], descendants: true }, { propertyName: "verticalResourceRows", predicate: ["verticalResourceRows"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
19279
+ ], viewQueries: [{ propertyName: "verticalResourceRows", predicate: ["verticalResourceRows"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
19202
19280
  <table class="k-scheduler-layout" [ngClass]="classNames">
19203
19281
  <tbody>
19204
19282
  <tr class="k-scheduler-head">
19205
19283
  <td>
19206
19284
  <div class="k-scheduler-times" #timesHeader>
19207
- <table class="k-scheduler-table" aria-hidden="true">
19285
+ <table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
19208
19286
  <tbody>
19209
- <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
19210
- <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
19287
+ <tr><th class="k-scheduler-cell"></th></tr>
19288
+ <tr><th class="k-slot-cell k-scheduler-cell"></th></tr>
19211
19289
  @for (resource of horizontalResources; track itemIndex($index, resource)) {
19212
19290
  <tr>
19213
- <th class="k-scheduler-cell k-heading-cell"></th>
19291
+ <th class="k-scheduler-cell"></th>
19214
19292
  </tr>
19215
19293
  }
19216
19294
  </tbody>
@@ -19233,7 +19311,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19233
19311
  <tr>
19234
19312
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
19235
19313
  <th
19236
- class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
19314
+ class="k-slot-cell k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
19237
19315
  @if (!groupHeaderTemplateRef) {
19238
19316
  {{ getField(item, resource.textField) }}
19239
19317
  }
@@ -19248,7 +19326,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19248
19326
  <tr class="k-scheduler-date-group">
19249
19327
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
19250
19328
  @for (daySlot of daySlots; track itemIndex(index, daySlot); let index = $index) {
19251
- <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
19329
+ <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-slot-cell">
19252
19330
  @if (!dateHeaderTemplateRef) {
19253
19331
  <span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
19254
19332
  }
@@ -19264,7 +19342,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19264
19342
  @for (daySlot of daySlots; track itemIndex(rangeIndex, daySlot); let rangeIndex = $index) {
19265
19343
  @for (timeSlot of timeSlots; track itemIndex(index, timeSlot); let index = $index) {
19266
19344
  @if (timeSlot.isMajor) {
19267
- <th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
19345
+ <th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell">
19268
19346
  @if (!majorTimeHeaderTemplateRef) {
19269
19347
  {{ timeSlot.start | kendoDate: 't' }}
19270
19348
  }
@@ -19276,7 +19354,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19276
19354
  @if (!timeSlot.isMajor && minorTimeHeaderTemplateRef) {
19277
19355
  <th
19278
19356
  [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
19279
- class="k-scheduler-cell k-heading-cell"
19357
+ class="k-scheduler-cell"
19280
19358
  >
19281
19359
  <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
19282
19360
  </ng-container>
@@ -19299,7 +19377,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19299
19377
  <tbody>
19300
19378
  @if (!verticalResources.length) {
19301
19379
  <tr>
19302
- <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
19380
+ <th rowspan="1" #titleCell class="k-scheduler-cell">
19303
19381
  {{ allEventsMessage }}
19304
19382
  </th>
19305
19383
  </tr>
@@ -19309,7 +19387,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19309
19387
  <tr #verticalResourceRows>
19310
19388
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
19311
19389
  @if (verticalItem(leafIndex, resourceIndex)) {
19312
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
19390
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell">
19313
19391
  <div>
19314
19392
  @if (!groupHeaderTemplateRef) {
19315
19393
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
@@ -19447,13 +19525,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19447
19525
  <tr class="k-scheduler-head">
19448
19526
  <td>
19449
19527
  <div class="k-scheduler-times" #timesHeader>
19450
- <table class="k-scheduler-table" aria-hidden="true">
19528
+ <table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
19451
19529
  <tbody>
19452
- <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
19453
- <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
19530
+ <tr><th class="k-scheduler-cell"></th></tr>
19531
+ <tr><th class="k-slot-cell k-scheduler-cell"></th></tr>
19454
19532
  @for (resource of horizontalResources; track itemIndex($index, resource)) {
19455
19533
  <tr>
19456
- <th class="k-scheduler-cell k-heading-cell"></th>
19534
+ <th class="k-scheduler-cell"></th>
19457
19535
  </tr>
19458
19536
  }
19459
19537
  </tbody>
@@ -19476,7 +19554,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19476
19554
  <tr>
19477
19555
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
19478
19556
  <th
19479
- class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
19557
+ class="k-slot-cell k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
19480
19558
  @if (!groupHeaderTemplateRef) {
19481
19559
  {{ getField(item, resource.textField) }}
19482
19560
  }
@@ -19491,7 +19569,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19491
19569
  <tr class="k-scheduler-date-group">
19492
19570
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
19493
19571
  @for (daySlot of daySlots; track itemIndex(index, daySlot); let index = $index) {
19494
- <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
19572
+ <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-slot-cell">
19495
19573
  @if (!dateHeaderTemplateRef) {
19496
19574
  <span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
19497
19575
  }
@@ -19507,7 +19585,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19507
19585
  @for (daySlot of daySlots; track itemIndex(rangeIndex, daySlot); let rangeIndex = $index) {
19508
19586
  @for (timeSlot of timeSlots; track itemIndex(index, timeSlot); let index = $index) {
19509
19587
  @if (timeSlot.isMajor) {
19510
- <th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
19588
+ <th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell">
19511
19589
  @if (!majorTimeHeaderTemplateRef) {
19512
19590
  {{ timeSlot.start | kendoDate: 't' }}
19513
19591
  }
@@ -19519,7 +19597,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19519
19597
  @if (!timeSlot.isMajor && minorTimeHeaderTemplateRef) {
19520
19598
  <th
19521
19599
  [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
19522
- class="k-scheduler-cell k-heading-cell"
19600
+ class="k-scheduler-cell"
19523
19601
  >
19524
19602
  <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
19525
19603
  </ng-container>
@@ -19542,7 +19620,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19542
19620
  <tbody>
19543
19621
  @if (!verticalResources.length) {
19544
19622
  <tr>
19545
- <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
19623
+ <th rowspan="1" #titleCell class="k-scheduler-cell">
19546
19624
  {{ allEventsMessage }}
19547
19625
  </th>
19548
19626
  </tr>
@@ -19552,7 +19630,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19552
19630
  <tr #verticalResourceRows>
19553
19631
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
19554
19632
  @if (verticalItem(leafIndex, resourceIndex)) {
19555
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
19633
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell">
19556
19634
  <div>
19557
19635
  @if (!groupHeaderTemplateRef) {
19558
19636
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
@@ -19690,9 +19768,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19690
19768
  }], verticalResourceRows: [{
19691
19769
  type: ViewChildren,
19692
19770
  args: ['verticalResourceRows']
19693
- }], headerTable: [{
19694
- type: ViewChild,
19695
- args: ['headerTable']
19696
19771
  }] } });
19697
19772
 
19698
19773
  /**
@@ -21585,7 +21660,7 @@ class ShortcutsDirective {
21585
21660
  }
21586
21661
  isInToolbarTemplate(element) {
21587
21662
  const isInToolbar = element.closest('.k-scheduler-toolbar');
21588
- const isInBuiltInElement = element.closest('.k-toolbar-group') ||
21663
+ const isInBuiltInElement = element.closest('[kendoschedulertoolbarnavigation]') ||
21589
21664
  element.closest('.k-scheduler-views') ||
21590
21665
  element.closest('.k-views-dropdown');
21591
21666
  return isInToolbar && !isInBuiltInElement;
@@ -2,20 +2,12 @@
2
2
  * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the project root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
- import { Renderer2, ElementRef } from '@angular/core';
6
5
  import * as i0 from "@angular/core";
7
6
  /**
8
7
  * @hidden
9
8
  */
10
9
  export declare class LoadingComponent {
11
- private element;
12
- private renderer;
13
10
  hostClasses: boolean;
14
- loading: boolean;
15
- get display(): string;
16
- private force;
17
- constructor(element: ElementRef, renderer: Renderer2);
18
- toggle(value: boolean): void;
19
11
  static ɵfac: i0.ɵɵFactoryDeclaration<LoadingComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<LoadingComponent, "[kendoSchedulerLoading]", never, { "loading": { "alias": "loading"; "required": false; }; }, {}, never, never, true, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoadingComponent, "[kendoSchedulerLoading]", never, {}, {}, never, never, true, never>;
21
13
  }
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1778850598,
11
- "version": "24.0.0-develop.32",
10
+ "publishDate": 1779091829,
11
+ "version": "24.0.0-develop.34",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-scheduler",
3
- "version": "24.0.0-develop.32",
3
+ "version": "24.0.0-develop.34",
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",
@@ -34,7 +34,7 @@
34
34
  "package": {
35
35
  "productName": "Kendo UI for Angular",
36
36
  "productCode": "KENDOUIANGULAR",
37
- "publishDate": 1778850598,
37
+ "publishDate": 1779091829,
38
38
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
39
39
  }
40
40
  },
@@ -47,23 +47,23 @@
47
47
  "@progress/kendo-data-query": "^1.7.3",
48
48
  "@progress/kendo-drawing": "^1.25.0",
49
49
  "@progress/kendo-licensing": "^1.11.0",
50
- "@progress/kendo-angular-tooltip": "24.0.0-develop.32",
51
- "@progress/kendo-angular-buttons": "24.0.0-develop.32",
52
- "@progress/kendo-angular-common": "24.0.0-develop.32",
53
- "@progress/kendo-angular-dateinputs": "24.0.0-develop.32",
54
- "@progress/kendo-angular-dialog": "24.0.0-develop.32",
55
- "@progress/kendo-angular-dropdowns": "24.0.0-develop.32",
56
- "@progress/kendo-angular-icons": "24.0.0-develop.32",
57
- "@progress/kendo-angular-inputs": "24.0.0-develop.32",
58
- "@progress/kendo-angular-intl": "24.0.0-develop.32",
59
- "@progress/kendo-angular-l10n": "24.0.0-develop.32",
60
- "@progress/kendo-angular-label": "24.0.0-develop.32",
61
- "@progress/kendo-angular-popup": "24.0.0-develop.32",
50
+ "@progress/kendo-angular-tooltip": "24.0.0-develop.34",
51
+ "@progress/kendo-angular-buttons": "24.0.0-develop.34",
52
+ "@progress/kendo-angular-common": "24.0.0-develop.34",
53
+ "@progress/kendo-angular-dateinputs": "24.0.0-develop.34",
54
+ "@progress/kendo-angular-dialog": "24.0.0-develop.34",
55
+ "@progress/kendo-angular-dropdowns": "24.0.0-develop.34",
56
+ "@progress/kendo-angular-icons": "24.0.0-develop.34",
57
+ "@progress/kendo-angular-inputs": "24.0.0-develop.34",
58
+ "@progress/kendo-angular-intl": "24.0.0-develop.34",
59
+ "@progress/kendo-angular-l10n": "24.0.0-develop.34",
60
+ "@progress/kendo-angular-label": "24.0.0-develop.34",
61
+ "@progress/kendo-angular-popup": "24.0.0-develop.34",
62
62
  "rxjs": "^6.5.3 || ^7.0.0"
63
63
  },
64
64
  "dependencies": {
65
65
  "tslib": "^2.3.1",
66
- "@progress/kendo-angular-schematics": "24.0.0-develop.32",
66
+ "@progress/kendo-angular-schematics": "24.0.0-develop.34",
67
67
  "@progress/kendo-date-math": "^1.3.2",
68
68
  "@progress/kendo-draggable": "^3.0.2",
69
69
  "@progress/kendo-file-saver": "^1.0.7",
@@ -34,7 +34,6 @@ import { IntlService } from '@progress/kendo-angular-intl';
34
34
  import { EditEventArgs } from './types/edit-event-args.interface';
35
35
  import { PDFService } from './pdf/pdf.service';
36
36
  import { PDFExportEvent } from './pdf/pdf-export-event';
37
- import { LoadingComponent } from './loading.component';
38
37
  import { FocusService, FocusPosition } from './navigation';
39
38
  import { DomEventsService } from './views/common/dom-events.service';
40
39
  import { CreateEvent } from './events/create-event';
@@ -405,10 +404,6 @@ export declare class SchedulerComponent implements AfterContentInit, OnDestroy,
405
404
  * @hidden
406
405
  */
407
406
  confirmationDialogContainerRef: ViewContainerRef;
408
- /**
409
- * @hidden
410
- */
411
- loadingComponent: LoadingComponent;
412
407
  /**
413
408
  * @hidden
414
409
  */
@@ -469,6 +464,10 @@ export declare class SchedulerComponent implements AfterContentInit, OnDestroy,
469
464
  * @hidden
470
465
  */
471
466
  get viewToolbar(): boolean;
467
+ /**
468
+ * @hidden
469
+ */
470
+ pdfLoading: boolean;
472
471
  private direction;
473
472
  private subs;
474
473
  private viewIndex;
@@ -9,10 +9,10 @@ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function default_1(options) {
10
10
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'SchedulerModule', package: 'scheduler', peerDependencies: {
11
11
  // peer deps of the dropdowns
12
- '@progress/kendo-angular-treeview': '24.0.0-develop.32',
13
- '@progress/kendo-angular-navigation': '24.0.0-develop.32',
12
+ '@progress/kendo-angular-treeview': '24.0.0-develop.34',
13
+ '@progress/kendo-angular-navigation': '24.0.0-develop.34',
14
14
  // peer dependency of kendo-angular-inputs
15
- '@progress/kendo-angular-dialog': '24.0.0-develop.32',
15
+ '@progress/kendo-angular-dialog': '24.0.0-develop.34',
16
16
  // peer dependency of kendo-angular-icons
17
17
  '@progress/kendo-svg-icons': '^4.0.0'
18
18
  } });
@@ -43,7 +43,6 @@ export declare class ToolbarNavigationComponent implements OnDestroy {
43
43
  private cd;
44
44
  private viewContext;
45
45
  set calendar(calendar: CalendarComponent);
46
- hostClass: boolean;
47
46
  /**
48
47
  * @hidden
49
48
  */
@@ -47,8 +47,10 @@ export declare abstract class BaseView implements OnInit, OnChanges, AfterViewIn
47
47
  contentTable: ElementRef;
48
48
  times: ElementRef;
49
49
  timesHeader: ElementRef;
50
+ timesHeaderTable: ElementRef;
50
51
  timesTable: ElementRef;
51
52
  headerWrap: ElementRef;
53
+ headerTable: ElementRef;
52
54
  hintContainer: HintContainerComponent;
53
55
  get eventTemplateRef(): TemplateRef<any>;
54
56
  get groupHeaderTemplateRef(): TemplateRef<any>;
@@ -89,8 +89,11 @@ export declare abstract class DayTimeViewComponent extends BaseView implements O
89
89
  protected createDaySlots(multiDayEnd?: Date): any[];
90
90
  protected createTimeSlots(): any[];
91
91
  protected initWorkDay(): void;
92
+ protected syncDateHeaderHeight(): void;
93
+ protected syncGroupHeaderHeight(): void;
92
94
  protected slotByPosition(x: number, y: number, container?: any): any;
93
95
  protected slotFields(slot: any): any;
96
+ private syncCellHeight;
94
97
  static ɵfac: i0.ɵɵFactoryDeclaration<DayTimeViewComponent, never>;
95
98
  static ɵcmp: i0.ɵɵComponentDeclaration<DayTimeViewComponent, "kendo-day-time-view", never, { "timeSlotTemplate": { "alias": "timeSlotTemplate"; "required": false; }; "dateHeaderTemplate": { "alias": "dateHeaderTemplate"; "required": false; }; "majorTimeHeaderTemplate": { "alias": "majorTimeHeaderTemplate"; "required": false; }; "minorTimeHeaderTemplate": { "alias": "minorTimeHeaderTemplate"; "required": false; }; "numberOfDays": { "alias": "numberOfDays"; "required": false; }; "scrollTime": { "alias": "scrollTime"; "required": false; }; "startTime": { "alias": "startTime"; "required": false; }; "endTime": { "alias": "endTime"; "required": false; }; "workDayStart": { "alias": "workDayStart"; "required": false; }; "workDayEnd": { "alias": "workDayEnd"; "required": false; }; "workWeekStart": { "alias": "workWeekStart"; "required": false; }; "workWeekEnd": { "alias": "workWeekEnd"; "required": false; }; "slotDuration": { "alias": "slotDuration"; "required": false; }; "slotDivisions": { "alias": "slotDivisions"; "required": false; }; "showWorkHours": { "alias": "showWorkHours"; "required": false; }; "getStartDate": { "alias": "getStartDate"; "required": false; }; "getEndDate": { "alias": "getEndDate"; "required": false; }; "getNextDate": { "alias": "getNextDate"; "required": false; }; "currentTimeMarker": { "alias": "currentTimeMarker"; "required": false; }; "highlightOngoingEvents": { "alias": "highlightOngoingEvents"; "required": false; }; }, {}, never, never, true, never>;
96
99
  }
@@ -62,6 +62,7 @@ export declare class MonthViewRendererComponent extends BaseView implements OnCh
62
62
  protected createTasks(items: ViewItem[], dateRange: DateRange): any[];
63
63
  protected onTasksChange(): void;
64
64
  protected reflow(): void;
65
+ protected syncTables(): void;
65
66
  protected onClick(e: any, eventType?: string): void;
66
67
  protected slotByIndex(index: any, _args: any): any;
67
68
  protected onSelectDate(date: Date): void;
@@ -50,6 +50,7 @@ export declare class MultiDayViewRendererComponent extends DayTimeViewComponent
50
50
  protected createTasks(items: ViewItem[], dateRange: DateRange): any[];
51
51
  protected onTasksChange(): void;
52
52
  protected reflow(): void;
53
+ protected syncTables(): void;
53
54
  protected dragHorizontal(slot: any): boolean;
54
55
  protected updateHintContainer(): void;
55
56
  protected onRelease(args: any): void;
@@ -24,7 +24,6 @@ export declare class TimelineMultiDayViewComponent extends DayTimeViewComponent
24
24
  viewName: string;
25
25
  verticalResourceRows: QueryList<ElementRef>;
26
26
  get classNames(): string;
27
- headerTable: ElementRef;
28
27
  get contentWidthPercentage(): number;
29
28
  protected verticalTime: boolean;
30
29
  private contentWidth;
@@ -37,6 +36,7 @@ export declare class TimelineMultiDayViewComponent extends DayTimeViewComponent
37
36
  horizontalColspan(resourceIndex: number): any;
38
37
  verticalRowspan(resourceIndex: number): any;
39
38
  handleScroll(): void;
39
+ protected syncTables(): void;
40
40
  protected createTasks(items: ViewItem[], dateRange: DateRange): any[];
41
41
  protected onTasksChange(): void;
42
42
  protected dragRanges(slot: any): any;
package/views/utils.d.ts CHANGED
@@ -15,6 +15,8 @@ export declare const intersects: (startTime: Date, endTime: Date, periodStart: D
15
15
  /** @hidden */
16
16
  export declare const dateInRange: (date: Date, start: Date, end: Date) => boolean;
17
17
  /** @hidden */
18
+ export declare const getVerticalPaddingAndBorder: (element: HTMLElement) => number;
19
+ /** @hidden */
18
20
  export declare const roundAllDayEnd: ({ start, end }: {
19
21
  start: any;
20
22
  end: any;