@progress/kendo-angular-scheduler 24.0.0-develop.4 → 24.0.0-develop.41

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.
@@ -7,7 +7,7 @@ import { Optional, Directive, Injectable, EventEmitter, Input, Inject, isDevMode
7
7
  import * as i1$1 from '@progress/kendo-angular-l10n';
8
8
  import { LocalizationService, L10N_PREFIX, RTL, ComponentMessages } from '@progress/kendo-angular-l10n';
9
9
  import * as i7 from '@progress/kendo-angular-common';
10
- import { getter, setter, hasObservers, isDocumentAvailable, isVisible as isVisible$1, scrollbarWidth, isChanged, Keys, ResizeSensorComponent, getLicenseMessage, shouldShowValidationUI, anyChanged, WatermarkOverlayComponent, guid, normalizeKeys, ResizeBatchService } from '@progress/kendo-angular-common';
10
+ import { getter, setter, hasObservers, isDocumentAvailable, isVisible as isVisible$1, scrollbarWidth, isChanged, Keys, ResizeSensorComponent, getLicenseMessage, shouldShowValidationUI, anyChanged, WatermarkOverlayComponent, KENDO_WEBMCP_HOST, guid, normalizeKeys, ResizeBatchService } from '@progress/kendo-angular-common';
11
11
  import { isEqualDate, ZonedDate, toLocalDate, getDate, timezoneNames, Day, MS_PER_DAY as MS_PER_DAY$1, addDays, firstDayOfMonth, lastDayOfMonth, firstDayInWeek, addMonths, addWeeks, addYears } from '@progress/kendo-date-math';
12
12
  import { auditTime, buffer, filter, map, debounceTime, take, distinctUntilChanged, switchMap, tap } from 'rxjs/operators';
13
13
  import { validatePackage } from '@progress/kendo-licensing';
@@ -20,8 +20,8 @@ import * as i4 from '@progress/kendo-angular-intl';
20
20
  import { formatDate, CldrIntlService, DatePipe, parseDate } from '@progress/kendo-angular-intl';
21
21
  import { MultiSelectComponent, ItemTemplateDirective, TagTemplateDirective, DropDownListComponent, ComboBoxComponent } from '@progress/kendo-angular-dropdowns';
22
22
  import { NgStyle, NgTemplateOutlet, AsyncPipe, NgClass } from '@angular/common';
23
- import { saveIcon, cancelOutlineIcon, calendarIcon, caretAltRightIcon, caretAltLeftIcon, filePdfIcon, arrowRotateCwIcon, arrowsNoRepeatIcon, xIcon, moreHorizontalIcon, clockIcon, caretAltUpIcon, caretAltDownIcon } from '@progress/kendo-svg-icons';
24
- import { ButtonGroupComponent, ButtonComponent, Button } from '@progress/kendo-angular-buttons';
23
+ import { saveIcon, cancelIcon, calendarIcon, chevronRightIcon, chevronLeftIcon, filePdfIcon, arrowRotateCwIcon, arrowsNoRepeatIcon, xIcon, moreHorizontalIcon, clockIcon, chevronUpIcon, chevronDownIcon } from '@progress/kendo-svg-icons';
24
+ import { ButtonGroupComponent, ButtonComponent, Button, SegmentedControlComponent } from '@progress/kendo-angular-buttons';
25
25
  import { NumericTextBoxComponent, NumericTextBoxCustomMessagesComponent, FormFieldComponent, TextBoxDirective, CheckBoxDirective, TextAreaDirective } from '@progress/kendo-angular-inputs';
26
26
  import { parseRule, serializeRule, expand } from '@progress/kendo-recurrence';
27
27
  import { DatePickerComponent, DatePickerCustomMessagesComponent, DateTimePickerComponent, DateTimePickerCustomMessagesComponent, CalendarComponent, CalendarCustomMessagesComponent, MultiViewCalendarComponent, MonthCellTemplateDirective, CalendarDOMService, CenturyViewService, DecadeViewService, MonthViewService, YearViewService, NavigationService, TimePickerDOMService, HoursService, MinutesService, SecondsService, MillisecondsService, DayPeriodService } from '@progress/kendo-angular-dateinputs';
@@ -43,8 +43,8 @@ const packageMetadata = {
43
43
  productName: 'Kendo UI for Angular',
44
44
  productCode: 'KENDOUIANGULAR',
45
45
  productCodes: ['KENDOUIANGULAR'],
46
- publishDate: 1776957489,
47
- version: '24.0.0-develop.4',
46
+ publishDate: 1779255877,
47
+ version: '24.0.0-develop.41',
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,9 +2400,10 @@ 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
- const renderedEvents = this.element.nativeElement.ownerDocument.querySelectorAll('.k-event');
2405
+ const schedulerElement = element.closest('.k-scheduler');
2406
+ const renderedEvents = schedulerElement ? schedulerElement.querySelectorAll('.k-event') : [];
2426
2407
  const method = value ? 'addClass' : 'removeClass';
2427
2408
  this.renderer[method](element, focusedClass);
2428
2409
  if (renderedEvents.length > 0) {
@@ -2579,6 +2560,20 @@ const intersects = (startTime, endTime, periodStart, periodEnd) => (startTime <
2579
2560
  /** @hidden */
2580
2561
  const dateInRange = (date, start, end) => start.getTime() <= date.getTime() && date.getTime() <= end.getTime();
2581
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 */
2582
2577
  const roundAllDayEnd = ({ start, end }) => {
2583
2578
  const startDate = start.stripTime();
2584
2579
  const endDate = end.stripTime();
@@ -4467,7 +4462,7 @@ class RecurrenceWeekdayRuleEditorComponent {
4467
4462
  </kendo-buttongroup>
4468
4463
  </div>
4469
4464
  </div>
4470
- `, isInline: true, dependencies: [{ kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
4465
+ `, isInline: true, dependencies: [{ kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
4471
4466
  }
4472
4467
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: RecurrenceWeekdayRuleEditorComponent, decorators: [{
4473
4468
  type: Component,
@@ -4727,7 +4722,7 @@ class RecurrenceFrequencyEditorComponent {
4727
4722
  </kendo-buttongroup>
4728
4723
  </div>
4729
4724
  </div>
4730
- `, isInline: true, dependencies: [{ kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
4725
+ `, isInline: true, dependencies: [{ kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: ButtonGroupComponent, selector: "kendo-buttongroup", inputs: ["disabled", "selection", "width", "tabIndex", "navigable"], outputs: ["navigate"], exportAs: ["kendoButtonGroup"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
4731
4726
  }
4732
4727
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: RecurrenceFrequencyEditorComponent, decorators: [{
4733
4728
  type: Component,
@@ -5910,7 +5905,7 @@ class EditDialogComponent {
5910
5905
  editedEvent;
5911
5906
  isNew;
5912
5907
  saveIcon = saveIcon;
5913
- cancelIcon = cancelOutlineIcon;
5908
+ cancelIcon = cancelIcon;
5914
5909
  subs;
5915
5910
  pendingNewEventData;
5916
5911
  constructor(ngZone, editService, localization, changeDetector, element, focusService, intl) {
@@ -6302,14 +6297,14 @@ class EditDialogComponent {
6302
6297
  >{{ textFor('save') }}</button>
6303
6298
  <button
6304
6299
  kendoButton
6305
- icon="cancel-outline"
6300
+ icon="cancel"
6306
6301
  [svgIcon]="cancelIcon"
6307
6302
  (click)="onCancel($event)"
6308
6303
  >{{ textFor('cancel') }}</button>
6309
6304
  </kendo-dialog-actions>
6310
6305
  </kendo-dialog>
6311
6306
  }
6312
- `, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "closable", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors", "colSpan"] }, { kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: SchedulerDateTimePickerComponent, selector: "kendo-scheduler-datetime-picker", inputs: ["isAllDay"], outputs: ["valueChange"] }, { kind: "directive", type: CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { kind: "directive", type: LabelDirective, selector: "label[for]", inputs: ["for", "labelClass"] }, { kind: "component", type: TimeZoneEditorComponent, selector: "kendo-timezone-editor", inputs: ["width"], outputs: ["valueChange"] }, { kind: "component", type: RecurrenceEditorComponent, selector: "kendo-recurrence-editor", inputs: ["start", "timezone", "weekStart", "repeatEveryOptions", "endAfterOptions", "repeatOnOptions", "endOnOptions"], outputs: ["valueChange"], exportAs: ["kendoRecurrenceEditor"] }, { kind: "directive", type: TextAreaDirective, selector: "textarea[kendoTextArea]", inputs: ["autoSize", "value"], outputs: ["valueChange"] }, { kind: "component", type: MultipleResourceEditorComponent, selector: "kendo-multiple-resource-editor" }, { kind: "component", type: SingleResourceEditorComponent, selector: "kendo-single-resource-editor" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
6307
+ `, isInline: true, dependencies: [{ kind: "component", type: DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "closable", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors", "colSpan"] }, { kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { kind: "component", type: SchedulerDateTimePickerComponent, selector: "kendo-scheduler-datetime-picker", inputs: ["isAllDay"], outputs: ["valueChange"] }, { kind: "directive", type: CheckBoxDirective, selector: "input[kendoCheckBox]", inputs: ["size", "rounded"] }, { kind: "directive", type: LabelDirective, selector: "label[for]", inputs: ["for", "labelClass"] }, { kind: "component", type: TimeZoneEditorComponent, selector: "kendo-timezone-editor", inputs: ["width"], outputs: ["valueChange"] }, { kind: "component", type: RecurrenceEditorComponent, selector: "kendo-recurrence-editor", inputs: ["start", "timezone", "weekStart", "repeatEveryOptions", "endAfterOptions", "repeatOnOptions", "endOnOptions"], outputs: ["valueChange"], exportAs: ["kendoRecurrenceEditor"] }, { kind: "directive", type: TextAreaDirective, selector: "textarea[kendoTextArea]", inputs: ["autoSize", "value"], outputs: ["valueChange"] }, { kind: "component", type: MultipleResourceEditorComponent, selector: "kendo-multiple-resource-editor" }, { kind: "component", type: SingleResourceEditorComponent, selector: "kendo-single-resource-editor" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
6313
6308
  }
6314
6309
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: EditDialogComponent, decorators: [{
6315
6310
  type: Component,
@@ -6506,7 +6501,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
6506
6501
  >{{ textFor('save') }}</button>
6507
6502
  <button
6508
6503
  kendoButton
6509
- icon="cancel-outline"
6504
+ icon="cancel"
6510
6505
  [svgIcon]="cancelIcon"
6511
6506
  (click)="onCancel($event)"
6512
6507
  >{{ textFor('cancel') }}</button>
@@ -6536,6 +6531,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
6536
6531
  type: Input
6537
6532
  }] } });
6538
6533
 
6534
+ const EMPTY_VIEWS = [];
6539
6535
  /**
6540
6536
  * A toolbar component that contains controls for switching views
6541
6537
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/scheduler/toolbar#including-the-built-in-components)).
@@ -6576,7 +6572,26 @@ class ToolbarViewSelectorComponent {
6576
6572
  get selectView() {
6577
6573
  return this.localization.get('selectView');
6578
6574
  }
6575
+ /**
6576
+ * @hidden
6577
+ */
6578
+ get viewItems() {
6579
+ const views = Array.from(this.ctx.views ?? EMPTY_VIEWS);
6580
+ if (!this.areSameViews(views) || this.cachedViewItems === null) {
6581
+ this.cachedViews = views;
6582
+ this.cachedViewItems = views.map(view => ({ text: view.title }));
6583
+ }
6584
+ return this.cachedViewItems;
6585
+ }
6586
+ /**
6587
+ * @hidden
6588
+ */
6589
+ get selectedViewIndex() {
6590
+ return Array.from(this.ctx.views ?? EMPTY_VIEWS).indexOf(this.ctx.selectedView);
6591
+ }
6579
6592
  detachDomEvents;
6593
+ cachedViews = null;
6594
+ cachedViewItems = null;
6580
6595
  constructor(service, localization) {
6581
6596
  this.service = service;
6582
6597
  this.localization = localization;
@@ -6597,11 +6612,20 @@ class ToolbarViewSelectorComponent {
6597
6612
  });
6598
6613
  }
6599
6614
  }
6615
+ /**
6616
+ * @hidden
6617
+ */
6618
+ onViewChange(index) {
6619
+ const view = Array.from(this.ctx.views ?? EMPTY_VIEWS)[index];
6620
+ if (view) {
6621
+ this.select(view);
6622
+ }
6623
+ }
6600
6624
  /**
6601
6625
  * @hidden
6602
6626
  */
6603
6627
  onChange(e) {
6604
- const view = this.ctx.views.find(view => view.name === e.target.value);
6628
+ const view = Array.from(this.ctx.views ?? EMPTY_VIEWS).find(view => view.name === e.target.value);
6605
6629
  if (view) {
6606
6630
  this.select(view);
6607
6631
  }
@@ -6612,6 +6636,15 @@ class ToolbarViewSelectorComponent {
6612
6636
  isSelected(view) {
6613
6637
  return this.ctx.selectedView === view;
6614
6638
  }
6639
+ areSameViews(views) {
6640
+ if (this.cachedViews === views) {
6641
+ return true;
6642
+ }
6643
+ if (this.cachedViews?.length !== views.length) {
6644
+ return false;
6645
+ }
6646
+ return this.cachedViews.every((view, index) => view === views[index]);
6647
+ }
6615
6648
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ToolbarViewSelectorComponent, deps: [{ token: ToolbarService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
6616
6649
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: ToolbarViewSelectorComponent, isStandalone: true, selector: "[kendoSchedulerToolbarViewSelector]", inputs: { toolbarWidth: "toolbarWidth", responsiveBreakpoint: "responsiveBreakpoint" }, ngImport: i0, template: `
6617
6650
  @if (ctx.views?.length > 1 && toolbarWidth <= responsiveBreakpoint) {
@@ -6632,26 +6665,16 @@ class ToolbarViewSelectorComponent {
6632
6665
  </select>
6633
6666
  }
6634
6667
  @if (toolbarWidth > responsiveBreakpoint) {
6635
- <span
6636
- class="k-toolbar-button-group k-scheduler-views k-button-group"
6637
- role="group"
6638
- >
6639
- @for (view of ctx.views; track view) {
6640
- <button kendoButton
6641
- type="button"
6642
- [selected]="isSelected(view)"
6643
- [attr.aria-pressed]="isSelected(view)"
6644
- (click)="select(view)"
6645
- [kendoSchedulerFocusIndex]="0"
6646
- containerType="toolbar">
6647
- <span class="k-button-text">
6648
- {{ view.title }}
6649
- </span>
6650
- </button>
6651
- }
6652
- </span>
6668
+ <kendo-segmented-control
6669
+ class="k-scheduler-views"
6670
+ [items]="viewItems"
6671
+ [selected]="selectedViewIndex"
6672
+ (selectedChange)="onViewChange($event)"
6673
+ [kendoSchedulerFocusIndex]="0"
6674
+ containerType="toolbar">
6675
+ </kendo-segmented-control>
6653
6676
  }
6654
- `, isInline: true, dependencies: [{ kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
6677
+ `, isInline: true, dependencies: [{ kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: SegmentedControlComponent, selector: "kendo-segmented-control", inputs: ["items", "layoutMode", "size", "selected"], outputs: ["selectedChange"] }] });
6655
6678
  }
6656
6679
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ToolbarViewSelectorComponent, decorators: [{
6657
6680
  type: Component,
@@ -6676,28 +6699,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
6676
6699
  </select>
6677
6700
  }
6678
6701
  @if (toolbarWidth > responsiveBreakpoint) {
6679
- <span
6680
- class="k-toolbar-button-group k-scheduler-views k-button-group"
6681
- role="group"
6682
- >
6683
- @for (view of ctx.views; track view) {
6684
- <button kendoButton
6685
- type="button"
6686
- [selected]="isSelected(view)"
6687
- [attr.aria-pressed]="isSelected(view)"
6688
- (click)="select(view)"
6689
- [kendoSchedulerFocusIndex]="0"
6690
- containerType="toolbar">
6691
- <span class="k-button-text">
6692
- {{ view.title }}
6693
- </span>
6694
- </button>
6695
- }
6696
- </span>
6702
+ <kendo-segmented-control
6703
+ class="k-scheduler-views"
6704
+ [items]="viewItems"
6705
+ [selected]="selectedViewIndex"
6706
+ (selectedChange)="onViewChange($event)"
6707
+ [kendoSchedulerFocusIndex]="0"
6708
+ containerType="toolbar">
6709
+ </kendo-segmented-control>
6697
6710
  }
6698
6711
  `,
6699
6712
  standalone: true,
6700
- imports: [FocusableDirective, ButtonComponent]
6713
+ imports: [FocusableDirective, SegmentedControlComponent]
6701
6714
  }]
6702
6715
  }], ctorParameters: () => [{ type: ToolbarService }, { type: i1$1.LocalizationService }], propDecorators: { toolbarWidth: [{
6703
6716
  type: Input
@@ -6705,7 +6718,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
6705
6718
  type: Input
6706
6719
  }] } });
6707
6720
 
6708
- const iconsMap = { caretAltLeftIcon, caretAltRightIcon, calendarIcon };
6721
+ const iconsMap = { chevronLeftIcon, chevronRightIcon, calendarIcon };
6709
6722
  /**
6710
6723
  * A toolbar component that contains controls for date navigation
6711
6724
  * ([see example](https://www.telerik.com/kendo-angular-ui/components/scheduler/toolbar#including-the-built-in-components)).
@@ -6734,7 +6747,6 @@ class ToolbarNavigationComponent {
6734
6747
  calendar.focus();
6735
6748
  }
6736
6749
  }
6737
- hostClass = true;
6738
6750
  /**
6739
6751
  * @hidden
6740
6752
  */
@@ -6908,19 +6920,19 @@ class ToolbarNavigationComponent {
6908
6920
  this.cd.detectChanges();
6909
6921
  }
6910
6922
  get arrowIcons() {
6911
- return !this.localization.rtl ? ['caret-alt-left', 'caret-alt-right'] : ['caret-alt-right', 'caret-alt-left'];
6923
+ return !this.localization.rtl ? ['chevron-left', 'chevron-right'] : ['chevron-right', 'chevron-left'];
6912
6924
  }
6913
6925
  get arrowSVGIcons() {
6914
- return !this.localization.rtl ? ['caretAltLeftIcon', 'caretAltRightIcon'] : ['caretAltRightIcon', 'caretAltLeftIcon'];
6926
+ return !this.localization.rtl ? ['chevronLeftIcon', 'chevronRightIcon'] : ['chevronRightIcon', 'chevronLeftIcon'];
6915
6927
  }
6916
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 });
6917
- 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: [
6918
6930
  PopupService
6919
6931
  ], viewQueries: [{ propertyName: "calendar", first: true, predicate: ["calendar"], descendants: true }], ngImport: i0, template: `
6920
- <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">
6921
6933
  <button kendoButton
6934
+ class="k-group-start"
6922
6935
  (click)="todayClick()"
6923
- class="k-nav-today"
6924
6936
  [attr.title]="todayText"
6925
6937
  [kendoSchedulerFocusIndex]="0"
6926
6938
  containerType="toolbar">
@@ -6928,7 +6940,6 @@ class ToolbarNavigationComponent {
6928
6940
  </button>
6929
6941
  <button kendoButton
6930
6942
  (click)="prevClick()"
6931
- class="k-nav-prev"
6932
6943
  [icon]="arrowIcons[0]"
6933
6944
  [svgIcon]="svgIcon(arrowSVGIcons[0])"
6934
6945
  [attr.title]="previousText"
@@ -6937,9 +6948,9 @@ class ToolbarNavigationComponent {
6937
6948
  containerType="toolbar">
6938
6949
  </button>
6939
6950
  <button kendoButton
6951
+ class="k-group-end"
6940
6952
  (click)="nextClick()"
6941
6953
  type="button"
6942
- class="k-nav-next"
6943
6954
  [icon]="arrowIcons[1]"
6944
6955
  [svgIcon]="svgIcon(arrowSVGIcons[1])"
6945
6956
  [attr.title]="nextText"
@@ -6961,7 +6972,7 @@ class ToolbarNavigationComponent {
6961
6972
  (keydown.enter)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
6962
6973
  (keydown.alt.arrowdown)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
6963
6974
  role="button"
6964
- class="k-nav-current"
6975
+ class="k-nav-current k-toolbar-button"
6965
6976
  [attr.aria-live]="'polite'"
6966
6977
  [kendoSchedulerFocusIndex]="0"
6967
6978
  containerType="toolbar">
@@ -6981,7 +6992,7 @@ class ToolbarNavigationComponent {
6981
6992
  </kendo-calendar-messages>
6982
6993
  </kendo-calendar>
6983
6994
  </ng-template>
6984
- `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: CalendarComponent, selector: "kendo-calendar", inputs: ["showOtherMonthDays", "id", "focusedDate", "min", "max", "rangeValidation", "weekDaysFormat", "footer", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate", "size", "activeRangeEnd"], outputs: ["closePopup", "activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { kind: "component", type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6995
+ `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: CalendarComponent, selector: "kendo-calendar", inputs: ["showOtherMonthDays", "id", "focusedDate", "min", "max", "rangeValidation", "weekDaysFormat", "footer", "selection", "allowReverse", "value", "disabled", "tabindex", "tabIndex", "disabledDates", "navigation", "activeView", "bottomView", "topView", "type", "animateNavigation", "weekNumber", "cellTemplate", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "navigationItemTemplate", "size", "activeRangeEnd"], outputs: ["closePopup", "activeViewChange", "navigate", "activeViewDateChange", "blur", "focus", "valueChange"], exportAs: ["kendo-calendar"] }, { kind: "component", type: CalendarCustomMessagesComponent, selector: "kendo-calendar-messages" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6985
6996
  }
6986
6997
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ToolbarNavigationComponent, decorators: [{
6987
6998
  type: Component,
@@ -6992,10 +7003,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
6992
7003
  PopupService
6993
7004
  ],
6994
7005
  template: `
6995
- <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">
6996
7007
  <button kendoButton
7008
+ class="k-group-start"
6997
7009
  (click)="todayClick()"
6998
- class="k-nav-today"
6999
7010
  [attr.title]="todayText"
7000
7011
  [kendoSchedulerFocusIndex]="0"
7001
7012
  containerType="toolbar">
@@ -7003,7 +7014,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7003
7014
  </button>
7004
7015
  <button kendoButton
7005
7016
  (click)="prevClick()"
7006
- class="k-nav-prev"
7007
7017
  [icon]="arrowIcons[0]"
7008
7018
  [svgIcon]="svgIcon(arrowSVGIcons[0])"
7009
7019
  [attr.title]="previousText"
@@ -7012,9 +7022,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7012
7022
  containerType="toolbar">
7013
7023
  </button>
7014
7024
  <button kendoButton
7025
+ class="k-group-end"
7015
7026
  (click)="nextClick()"
7016
7027
  type="button"
7017
- class="k-nav-next"
7018
7028
  [icon]="arrowIcons[1]"
7019
7029
  [svgIcon]="svgIcon(arrowSVGIcons[1])"
7020
7030
  [attr.title]="nextText"
@@ -7036,7 +7046,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7036
7046
  (keydown.enter)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
7037
7047
  (keydown.alt.arrowdown)="toggleSelectedDate({ nativeElement: anchor.element }, template)"
7038
7048
  role="button"
7039
- class="k-nav-current"
7049
+ class="k-nav-current k-toolbar-button"
7040
7050
  [attr.aria-live]="'polite'"
7041
7051
  [kendoSchedulerFocusIndex]="0"
7042
7052
  containerType="toolbar">
@@ -7063,9 +7073,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
7063
7073
  }], ctorParameters: () => [{ type: i1$2.PopupService }, { type: ToolbarService }, { type: i1$1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: ViewContextService }], propDecorators: { calendar: [{
7064
7074
  type: ViewChild,
7065
7075
  args: ['calendar', { static: false }]
7066
- }], hostClass: [{
7067
- type: HostBinding,
7068
- args: ['class.k-toolbar-group']
7069
7076
  }], min: [{
7070
7077
  type: Input
7071
7078
  }], max: [{
@@ -8267,10 +8274,6 @@ class SchedulerComponent {
8267
8274
  * @hidden
8268
8275
  */
8269
8276
  confirmationDialogContainerRef;
8270
- /**
8271
- * @hidden
8272
- */
8273
- loadingComponent;
8274
8277
  /**
8275
8278
  * @hidden
8276
8279
  */
@@ -8333,6 +8336,10 @@ class SchedulerComponent {
8333
8336
  get viewToolbar() {
8334
8337
  return this.viewState?.toolbarVisibilityByView.get(this.selectedView);
8335
8338
  }
8339
+ /**
8340
+ * @hidden
8341
+ */
8342
+ pdfLoading = false;
8336
8343
  direction;
8337
8344
  subs;
8338
8345
  viewIndex = 0;
@@ -8476,7 +8483,8 @@ class SchedulerComponent {
8476
8483
  }
8477
8484
  }));
8478
8485
  this.subs.add(this.pdfService.done.subscribe(() => {
8479
- this.loadingComponent.toggle(false);
8486
+ this.pdfLoading = false;
8487
+ this.changeDetector.markForCheck();
8480
8488
  }));
8481
8489
  this.subs.add(this.localization.changes.subscribe(({ rtl }) => {
8482
8490
  this.rtl = rtl;
@@ -8624,7 +8632,8 @@ class SchedulerComponent {
8624
8632
  * Saves the current view as PDF.
8625
8633
  */
8626
8634
  saveAsPDF() {
8627
- this.loadingComponent.toggle(true);
8635
+ this.pdfLoading = true;
8636
+ this.changeDetector.markForCheck();
8628
8637
  this.zone.runOutsideAngular(() => {
8629
8638
  // wait a tick in order for the loading element style to be updated by the browser.
8630
8639
  // if the export is synchronous, the browser will not update the element before the export is finished.
@@ -8901,11 +8910,15 @@ class SchedulerComponent {
8901
8910
  provide: L10N_PREFIX,
8902
8911
  useValue: 'kendo.scheduler'
8903
8912
  },
8913
+ {
8914
+ provide: KENDO_WEBMCP_HOST,
8915
+ useExisting: forwardRef(() => SchedulerComponent)
8916
+ },
8904
8917
  ToolbarService,
8905
8918
  ViewContextService,
8906
8919
  ViewStateService,
8907
- PDFService
8908
- ], 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: `
8920
+ PDFService,
8921
+ ], 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: `
8909
8922
  <ng-container kendoSchedulerLocalizedMessages
8910
8923
  i18n-allEvents="kendo.scheduler.allEvents|The All events text displayed in the timeline views when there is no vertical grouping."
8911
8924
  allEvents="All events"
@@ -9236,13 +9249,14 @@ class SchedulerComponent {
9236
9249
 
9237
9250
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
9238
9251
 
9239
- <div [loading]="loading" kendoSchedulerLoading>
9240
- </div>
9252
+ @if (loading || pdfLoading) {
9253
+ <div kendoSchedulerLoading></div>
9254
+ }
9241
9255
 
9242
9256
  @if (showLicenseWatermark) {
9243
9257
  <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
9244
9258
  }
9245
- `, 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 });
9259
+ `, 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 });
9246
9260
  }
9247
9261
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: SchedulerComponent, decorators: [{
9248
9262
  type: Component,
@@ -9264,10 +9278,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
9264
9278
  provide: L10N_PREFIX,
9265
9279
  useValue: 'kendo.scheduler'
9266
9280
  },
9281
+ {
9282
+ provide: KENDO_WEBMCP_HOST,
9283
+ useExisting: forwardRef(() => SchedulerComponent)
9284
+ },
9267
9285
  ToolbarService,
9268
9286
  ViewContextService,
9269
9287
  ViewStateService,
9270
- PDFService
9288
+ PDFService,
9271
9289
  ],
9272
9290
  template: `
9273
9291
  <ng-container kendoSchedulerLocalizedMessages
@@ -9600,8 +9618,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
9600
9618
 
9601
9619
  <kendo-resize-sensor (resize)="onResize()"></kendo-resize-sensor>
9602
9620
 
9603
- <div [loading]="loading" kendoSchedulerLoading>
9604
- </div>
9621
+ @if (loading || pdfLoading) {
9622
+ <div kendoSchedulerLoading></div>
9623
+ }
9605
9624
 
9606
9625
  @if (showLicenseWatermark) {
9607
9626
  <div kendoWatermarkOverlay [licenseMessage]="licenseMessage"></div>
@@ -9755,9 +9774,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
9755
9774
  }], confirmationDialogContainerRef: [{
9756
9775
  type: ViewChild,
9757
9776
  args: ["confirmationDialogContainer", { read: ViewContainerRef, static: true }]
9758
- }], loadingComponent: [{
9759
- type: ViewChild,
9760
- args: [LoadingComponent, { static: true }]
9761
9777
  }], allDayEventTemplate: [{
9762
9778
  type: ContentChildren,
9763
9779
  args: [AllDayEventTemplateDirective]
@@ -11133,8 +11149,8 @@ class AgendaListComponent {
11133
11149
  agendaTimeTemplate;
11134
11150
  agendaDateTemplate;
11135
11151
  editable;
11136
- caretAltLeftIcon = caretAltLeftIcon;
11137
- caretAltRightIcon = caretAltRightIcon;
11152
+ chevronLeftIcon = chevronLeftIcon;
11153
+ chevronRightIcon = chevronRightIcon;
11138
11154
  constructor(intlService, localization) {
11139
11155
  this.intlService = intlService;
11140
11156
  this.localization = localization;
@@ -11201,10 +11217,10 @@ class AgendaListComponent {
11201
11217
  }
11202
11218
  }
11203
11219
  get arrowIcons() {
11204
- return !this.localization.rtl ? ['caret-alt-left', 'caret-alt-right'] : ['caret-alt-right', 'caret-alt-left'];
11220
+ return !this.localization.rtl ? ['chevron-left', 'chevron-right'] : ['chevron-right', 'chevron-left'];
11205
11221
  }
11206
11222
  get arrowSVGIcons() {
11207
- return !this.localization.rtl ? [this.caretAltLeftIcon, this.caretAltRightIcon] : [this.caretAltRightIcon, this.caretAltLeftIcon];
11223
+ return !this.localization.rtl ? [this.chevronLeftIcon, this.chevronRightIcon] : [this.chevronRightIcon, this.chevronLeftIcon];
11208
11224
  }
11209
11225
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: AgendaListComponent, deps: [{ token: i4.IntlService }, { token: i1$1.LocalizationService }], target: i0.ɵɵFactoryTarget.Component });
11210
11226
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.20", type: AgendaListComponent, isStandalone: true, selector: "[kendoSchedulerAgendaList]", inputs: { tasks: "tasks", eventTemplate: "eventTemplate", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", agendaTimeTemplate: "agendaTimeTemplate", agendaDateTemplate: "agendaDateTemplate", editable: "editable" }, host: { properties: { "class.k-scheduler-content": "this.classes" } }, ngImport: i0, template: `
@@ -11387,9 +11403,9 @@ class AgendaHeaderComponent {
11387
11403
  @for (resource of resources; track resource) {
11388
11404
  <th class="k-scheduler-groupcolumn k-first" role="columnheader"><span class="k-sr-only">{{ resourceMessage }}</span></th>
11389
11405
  }
11390
- <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
11391
- <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
11392
- <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
11406
+ <th class="k-scheduler-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
11407
+ <th class="k-scheduler-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
11408
+ <th class="k-scheduler-cell" role="columnheader">{{ eventMessage }}</th>
11393
11409
  </tr>
11394
11410
  </tbody>
11395
11411
  </table>
@@ -11409,9 +11425,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
11409
11425
  @for (resource of resources; track resource) {
11410
11426
  <th class="k-scheduler-groupcolumn k-first" role="columnheader"><span class="k-sr-only">{{ resourceMessage }}</span></th>
11411
11427
  }
11412
- <th class="k-scheduler-cell k-heading-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
11413
- <th class="k-scheduler-cell k-heading-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
11414
- <th class="k-scheduler-cell k-heading-cell" role="columnheader">{{ eventMessage }}</th>
11428
+ <th class="k-scheduler-cell k-scheduler-datecolumn" role="columnheader">{{ dateMessage }}</th>
11429
+ <th class="k-scheduler-cell k-scheduler-timecolumn" role="columnheader">{{ timeMessage }}</th>
11430
+ <th class="k-scheduler-cell" role="columnheader">{{ eventMessage }}</th>
11415
11431
  </tr>
11416
11432
  </tbody>
11417
11433
  </table>
@@ -12644,8 +12660,10 @@ class BaseView {
12644
12660
  contentTable;
12645
12661
  times;
12646
12662
  timesHeader;
12663
+ timesHeaderTable;
12647
12664
  timesTable;
12648
12665
  headerWrap;
12666
+ headerTable;
12649
12667
  hintContainer;
12650
12668
  get eventTemplateRef() {
12651
12669
  return this.eventTemplate || (this.schedulerEventTemplate || {}).templateRef;
@@ -13646,7 +13664,7 @@ class BaseView {
13646
13664
  }
13647
13665
  }
13648
13666
  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 });
13649
- 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 });
13667
+ 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 });
13650
13668
  }
13651
13669
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BaseView, decorators: [{
13652
13670
  type: Directive
@@ -13687,12 +13705,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
13687
13705
  }], timesHeader: [{
13688
13706
  type: ViewChild,
13689
13707
  args: ['timesHeader', { static: false }]
13708
+ }], timesHeaderTable: [{
13709
+ type: ViewChild,
13710
+ args: ['timesHeaderTable', { static: false }]
13690
13711
  }], timesTable: [{
13691
13712
  type: ViewChild,
13692
13713
  args: ['timesTable', { static: false }]
13693
13714
  }], headerWrap: [{
13694
13715
  type: ViewChild,
13695
13716
  args: ['headerWrap', { static: false }]
13717
+ }], headerTable: [{
13718
+ type: ViewChild,
13719
+ args: ['headerTable', { static: false }]
13696
13720
  }], hintContainer: [{
13697
13721
  type: ViewChild,
13698
13722
  args: ['hintContainer', { static: false }]
@@ -13737,8 +13761,8 @@ class BaseViewItem {
13737
13761
  get removable() {
13738
13762
  return this.editable && this.editable.remove !== false;
13739
13763
  }
13740
- caretAltLeftIcon = caretAltLeftIcon;
13741
- caretAltRightIcon = caretAltRightIcon;
13764
+ chevronLeftIcon = chevronLeftIcon;
13765
+ chevronRightIcon = chevronRightIcon;
13742
13766
  rect;
13743
13767
  subs = new Subscription();
13744
13768
  constructor(slotService, localization, focusService, element, renderer, intl) {
@@ -13833,10 +13857,10 @@ class BaseViewItem {
13833
13857
  this.subs.unsubscribe();
13834
13858
  }
13835
13859
  get arrowIcons() {
13836
- return !this.localization.rtl ? ['caret-alt-left', 'caret-alt-right'] : ['caret-alt-right', 'caret-alt-left'];
13860
+ return !this.localization.rtl ? ['chevron-left', 'chevron-right'] : ['chevron-right', 'chevron-left'];
13837
13861
  }
13838
13862
  get arrowSVGIcons() {
13839
- return !this.localization.rtl ? [this.caretAltLeftIcon, this.caretAltRightIcon] : [this.caretAltRightIcon, this.caretAltLeftIcon];
13863
+ return !this.localization.rtl ? [this.chevronLeftIcon, this.chevronRightIcon] : [this.chevronRightIcon, this.chevronLeftIcon];
13840
13864
  }
13841
13865
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: BaseViewItem, deps: [{ token: BaseSlotService }, { token: i1$1.LocalizationService }, { token: FocusService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i4.IntlService }], target: i0.ɵɵFactoryTarget.Directive });
13842
13866
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.20", type: BaseViewItem, isStandalone: true, inputs: { item: "item", resourceIndex: "resourceIndex", rangeIndex: "rangeIndex", index: "index", eventTemplate: "eventTemplate", editable: "editable", dragHint: "dragHint", resources: "resources" }, host: { properties: { "class.k-event": "this.className", "attr.data-task-index": "this.taskIndex", "style.touch-action": "this.touchAction", "attr.aria-label": "this.eventTitle" } }, usesOnChanges: true, ngImport: i0 });
@@ -13877,8 +13901,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
13877
13901
  * @hidden
13878
13902
  */
13879
13903
  class MonthViewItemComponent extends BaseViewItem {
13880
- caretAltLeftIcon = caretAltLeftIcon;
13881
- caretAltRightIcon = caretAltRightIcon;
13904
+ chevronLeftIcon = chevronLeftIcon;
13905
+ chevronRightIcon = chevronRightIcon;
13882
13906
  arrowRotateCwIcon = arrowRotateCwIcon;
13883
13907
  arrowsNoRepeatIcon = arrowsNoRepeatIcon;
13884
13908
  xIcon = xIcon;
@@ -14460,12 +14484,15 @@ class MonthViewRendererComponent extends BaseView {
14460
14484
  super.ngOnChanges(changes);
14461
14485
  }
14462
14486
  ngOnInit() {
14463
- this.viewState.layoutEnd.subscribe(() => {
14487
+ this.subs.add(this.viewState.layoutEnd.subscribe(() => {
14464
14488
  if (this.adaptiveSlotHeight) {
14465
14489
  this.slotService.invalidate();
14466
14490
  this.reflow();
14467
14491
  }
14468
- });
14492
+ else {
14493
+ this.syncTables();
14494
+ }
14495
+ }));
14469
14496
  super.ngOnInit();
14470
14497
  }
14471
14498
  ngAfterViewInit() {
@@ -14552,6 +14579,24 @@ class MonthViewRendererComponent extends BaseView {
14552
14579
  }
14553
14580
  this.syncTables();
14554
14581
  }
14582
+ syncTables() {
14583
+ super.syncTables();
14584
+ if (!this.timesTable) {
14585
+ return;
14586
+ }
14587
+ const timesRows = this.timesTable.nativeElement.rows;
14588
+ if (!timesRows.length) {
14589
+ return;
14590
+ }
14591
+ const contentRows = this.contentTable.nativeElement.rows;
14592
+ const rowsCount = Math.min(timesRows.length, contentRows.length);
14593
+ for (let index = 0; index < rowsCount; index++) {
14594
+ const height = `${contentRows[index].offsetHeight}px`;
14595
+ if (timesRows[index].style.height !== height) {
14596
+ this.renderer.setStyle(timesRows[index], 'height', height);
14597
+ }
14598
+ }
14599
+ }
14555
14600
  onClick(e, eventType = e.type) {
14556
14601
  if (eventType === 'click') {
14557
14602
  const eventSlot = closestInScope(e.target, node => node.hasAttribute('data-slot-index'), this.element.nativeElement);
@@ -14674,7 +14719,7 @@ class MonthViewRendererComponent extends BaseView {
14674
14719
  <table class="k-scheduler-table" aria-hidden="true">
14675
14720
  <tbody>
14676
14721
  <tr>
14677
- <th class="k-scheduler-cell k-heading-cell"></th>
14722
+ <th class="k-scheduler-cell"></th>
14678
14723
  </tr>
14679
14724
  </tbody>
14680
14725
  </table>
@@ -14692,7 +14737,7 @@ class MonthViewRendererComponent extends BaseView {
14692
14737
  <tr>
14693
14738
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
14694
14739
  <th
14695
- class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14740
+ class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14696
14741
  @if (!groupHeaderTemplateRef) {
14697
14742
  {{ getField(item, resource.textField) }}
14698
14743
  }
@@ -14706,7 +14751,7 @@ class MonthViewRendererComponent extends BaseView {
14706
14751
  <tr>
14707
14752
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
14708
14753
  @for (day of weeks[0]; track itemIndex($index, day)) {
14709
- <th class="k-scheduler-cell k-heading-cell">
14754
+ <th class="k-scheduler-cell">
14710
14755
  {{ day | kendoDate: 'EEEE' }}
14711
14756
  </th>
14712
14757
  }
@@ -14728,7 +14773,7 @@ class MonthViewRendererComponent extends BaseView {
14728
14773
  <tr>
14729
14774
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
14730
14775
  @if (verticalItem(leafIndex, resourceIndex)) {
14731
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-heading-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
14776
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
14732
14777
  @if (!groupHeaderTemplateRef) {
14733
14778
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
14734
14779
  }
@@ -14739,12 +14784,12 @@ class MonthViewRendererComponent extends BaseView {
14739
14784
  </th>
14740
14785
  }
14741
14786
  }
14742
- <th class="k-slot-cell k-heading-cell k-empty-slot">
14787
+ <th class="k-slot-cell k-empty-slot">
14743
14788
  </th>
14744
14789
  </tr>
14745
14790
  @for (index of (numberOfWeeks - 1) | repeat; track itemIndex($index, index)) {
14746
14791
  <tr>
14747
- <th class="k-slot-cell k-heading-cell k-empty-slot"></th>
14792
+ <th class="k-slot-cell k-empty-slot"></th>
14748
14793
  </tr>
14749
14794
  }
14750
14795
  }
@@ -14865,7 +14910,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14865
14910
  <table class="k-scheduler-table" aria-hidden="true">
14866
14911
  <tbody>
14867
14912
  <tr>
14868
- <th class="k-scheduler-cell k-heading-cell"></th>
14913
+ <th class="k-scheduler-cell"></th>
14869
14914
  </tr>
14870
14915
  </tbody>
14871
14916
  </table>
@@ -14883,7 +14928,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14883
14928
  <tr>
14884
14929
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
14885
14930
  <th
14886
- class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14931
+ class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
14887
14932
  @if (!groupHeaderTemplateRef) {
14888
14933
  {{ getField(item, resource.textField) }}
14889
14934
  }
@@ -14897,7 +14942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14897
14942
  <tr>
14898
14943
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
14899
14944
  @for (day of weeks[0]; track itemIndex($index, day)) {
14900
- <th class="k-scheduler-cell k-heading-cell">
14945
+ <th class="k-scheduler-cell">
14901
14946
  {{ day | kendoDate: 'EEEE' }}
14902
14947
  </th>
14903
14948
  }
@@ -14919,7 +14964,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14919
14964
  <tr>
14920
14965
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
14921
14966
  @if (verticalItem(leafIndex, resourceIndex)) {
14922
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-heading-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
14967
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell" [ngClass]="{ 'k-last-resource': resourceIndex === verticalResources.length - 1 }">
14923
14968
  @if (!groupHeaderTemplateRef) {
14924
14969
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
14925
14970
  }
@@ -14930,12 +14975,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
14930
14975
  </th>
14931
14976
  }
14932
14977
  }
14933
- <th class="k-slot-cell k-heading-cell k-empty-slot">
14978
+ <th class="k-slot-cell k-empty-slot">
14934
14979
  </th>
14935
14980
  </tr>
14936
14981
  @for (index of (numberOfWeeks - 1) | repeat; track itemIndex($index, index)) {
14937
14982
  <tr>
14938
- <th class="k-slot-cell k-heading-cell k-empty-slot"></th>
14983
+ <th class="k-slot-cell k-empty-slot"></th>
14939
14984
  </tr>
14940
14985
  }
14941
14986
  }
@@ -15727,7 +15772,7 @@ class ViewFooterComponent {
15727
15772
  }
15728
15773
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ViewFooterComponent, deps: [{ token: ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
15729
15774
  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: `
15730
- <span class="k-scheduler-navigation">
15775
+ <span>
15731
15776
  @for (item of items; track item) {
15732
15777
  <button
15733
15778
  type="button"
@@ -15742,14 +15787,14 @@ class ViewFooterComponent {
15742
15787
  </button>
15743
15788
  }
15744
15789
  </span>
15745
- `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }] });
15790
+ `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }] });
15746
15791
  }
15747
15792
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: ViewFooterComponent, decorators: [{
15748
15793
  type: Component,
15749
15794
  args: [{
15750
15795
  selector: '[viewFooter]',
15751
15796
  template: `
15752
- <span class="k-scheduler-navigation">
15797
+ <span>
15753
15798
  @for (item of items; track item) {
15754
15799
  <button
15755
15800
  type="button"
@@ -15793,7 +15838,7 @@ class WorkHoursFooterDirective {
15793
15838
  footer;
15794
15839
  localization;
15795
15840
  showWorkHours = false;
15796
- footerItems = [{ cssClass: 'k-scheduler-fullday', fontIcon: 'clock', svgIcon: clockIcon, text: '' }];
15841
+ footerItems = [{ cssClass: 'k-scheduler-fullday k-toolbar-button', fontIcon: 'clock', svgIcon: clockIcon, text: '' }];
15797
15842
  constructor(footer, localization) {
15798
15843
  this.footer = footer;
15799
15844
  this.localization = localization;
@@ -16605,10 +16650,10 @@ function createTimeSlots(intlService, { showWorkHours, startTime, endTime, workD
16605
16650
  */
16606
16651
  class DayTimeViewItemComponent extends BaseViewItem {
16607
16652
  intlService;
16608
- caretAltLeftIcon = caretAltLeftIcon;
16609
- caretAltRightIcon = caretAltRightIcon;
16610
- caretAltUpIcon = caretAltUpIcon;
16611
- caretAltDownIcon = caretAltDownIcon;
16653
+ chevronLeftIcon = chevronLeftIcon;
16654
+ chevronRightIcon = chevronRightIcon;
16655
+ chevronUpIcon = chevronUpIcon;
16656
+ chevronDownIcon = chevronDownIcon;
16612
16657
  arrowRotateCwIcon = arrowRotateCwIcon;
16613
16658
  arrowsNoRepeatIcon = arrowsNoRepeatIcon;
16614
16659
  xIcon = xIcon;
@@ -16678,13 +16723,13 @@ class DayTimeViewItemComponent extends BaseViewItem {
16678
16723
 
16679
16724
  @if (item.tail && vertical) {
16680
16725
  <span class="k-event-top-actions">
16681
- <kendo-icon-wrapper name="caret-alt-up" [svgIcon]="caretAltUpIcon"></kendo-icon-wrapper>
16726
+ <kendo-icon-wrapper name="chevron-up" [svgIcon]="chevronUpIcon"></kendo-icon-wrapper>
16682
16727
  </span>
16683
16728
  }
16684
16729
 
16685
16730
  @if (item.head && vertical) {
16686
16731
  <span class="k-event-bottom-actions">
16687
- <kendo-icon-wrapper name="caret-alt-down" [svgIcon]="caretAltDownIcon"></kendo-icon-wrapper>
16732
+ <kendo-icon-wrapper name="chevron-down" [svgIcon]="chevronDownIcon"></kendo-icon-wrapper>
16688
16733
  </span>
16689
16734
  }
16690
16735
 
@@ -16762,13 +16807,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
16762
16807
 
16763
16808
  @if (item.tail && vertical) {
16764
16809
  <span class="k-event-top-actions">
16765
- <kendo-icon-wrapper name="caret-alt-up" [svgIcon]="caretAltUpIcon"></kendo-icon-wrapper>
16810
+ <kendo-icon-wrapper name="chevron-up" [svgIcon]="chevronUpIcon"></kendo-icon-wrapper>
16766
16811
  </span>
16767
16812
  }
16768
16813
 
16769
16814
  @if (item.head && vertical) {
16770
16815
  <span class="k-event-bottom-actions">
16771
- <kendo-icon-wrapper name="caret-alt-down" [svgIcon]="caretAltDownIcon"></kendo-icon-wrapper>
16816
+ <kendo-icon-wrapper name="chevron-down" [svgIcon]="chevronDownIcon"></kendo-icon-wrapper>
16772
16817
  </span>
16773
16818
  }
16774
16819
 
@@ -16898,9 +16943,11 @@ class DayTimeViewComponent extends BaseView {
16898
16943
  }
16899
16944
  timeSlotClass(slot, date, resourceIndex) {
16900
16945
  if (this.slotClass) {
16946
+ const start = dateWithTime(date, slot.start);
16947
+ const end = dateWithTime(date, slot.end);
16901
16948
  return this.slotClass({
16902
- start: dateWithTime(date, slot.start),
16903
- end: dateWithTime(date, slot.end),
16949
+ start: start,
16950
+ end: end < start ? addDays(end, 1) : end,
16904
16951
  resources: this.resourcesByIndex(resourceIndex),
16905
16952
  isAllDay: false
16906
16953
  });
@@ -17134,6 +17181,49 @@ class DayTimeViewComponent extends BaseView {
17134
17181
  this.workDayEndTime = toInvariantTime(endDate);
17135
17182
  }
17136
17183
  }
17184
+ syncDateHeaderHeight() {
17185
+ if (!isDocumentAvailable()) {
17186
+ return;
17187
+ }
17188
+ const dateRowIndex = this.horizontalResources.length + 1;
17189
+ const timesTable = this.timesHeaderTable?.nativeElement;
17190
+ const headerTable = this.headerTable?.nativeElement;
17191
+ const timesHeaderDateCell = timesTable?.rows[dateRowIndex - 1]?.cells[0];
17192
+ const headerDateCell = headerTable?.rows[dateRowIndex - 1]?.cells[0];
17193
+ const shouldSkipDateHeightSync = !timesHeaderDateCell || !headerDateCell || !this.dateHeaderTemplateRef;
17194
+ if (shouldSkipDateHeightSync) {
17195
+ if (timesHeaderDateCell && !this.dateHeaderTemplateRef) {
17196
+ this.renderer.removeStyle(timesHeaderDateCell, 'height');
17197
+ }
17198
+ return;
17199
+ }
17200
+ this.syncCellHeight(headerDateCell, timesHeaderDateCell);
17201
+ }
17202
+ syncGroupHeaderHeight() {
17203
+ if (!isDocumentAvailable()) {
17204
+ return;
17205
+ }
17206
+ const dateRowIndex = this.horizontalResources.length + 1;
17207
+ const timesTable = this.timesHeaderTable?.nativeElement;
17208
+ const headerTable = this.headerTable?.nativeElement;
17209
+ for (let rowIndex = 1; rowIndex < dateRowIndex; rowIndex++) {
17210
+ const timesHeaderCell = timesTable?.rows[rowIndex - 1]?.cells[0];
17211
+ if (!timesHeaderCell) {
17212
+ continue;
17213
+ }
17214
+ // Remove height when template is absent or grouping is vertical
17215
+ if (!this.groupHeaderTemplateRef || this.verticalResources.length) {
17216
+ this.renderer.removeStyle(timesHeaderCell, 'height');
17217
+ continue;
17218
+ }
17219
+ const headerCell = headerTable?.rows[rowIndex - 1]?.cells[0];
17220
+ if (!headerCell) {
17221
+ this.renderer.removeStyle(timesHeaderCell, 'height');
17222
+ continue;
17223
+ }
17224
+ this.syncCellHeight(headerCell, timesHeaderCell);
17225
+ }
17226
+ }
17137
17227
  slotByPosition(x, y, container) {
17138
17228
  const isDaySlot = container ? hasClasses(container.parentNode, 'k-scheduler-header-wrap') : y < 0;
17139
17229
  return this.slotService.slotByPosition(x, y, isDaySlot, Boolean(this.verticalResources.length));
@@ -17149,6 +17239,14 @@ class DayTimeViewComponent extends BaseView {
17149
17239
  }
17150
17240
  return fields;
17151
17241
  }
17242
+ syncCellHeight(sourceCell, targetCell) {
17243
+ const height = sourceCell.getBoundingClientRect().height;
17244
+ const currentHeight = targetCell.getBoundingClientRect().height;
17245
+ const paddingAndBorder = getVerticalPaddingAndBorder(targetCell);
17246
+ if (height !== currentHeight) {
17247
+ this.renderer.setStyle(targetCell, 'height', `${height - paddingAndBorder}px`);
17248
+ }
17249
+ }
17152
17250
  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 });
17153
17251
  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 });
17154
17252
  }
@@ -17462,6 +17560,11 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17462
17560
  slotService.layoutTimes({ fill: this.slotFill });
17463
17561
  this.syncTables();
17464
17562
  }
17563
+ syncTables() {
17564
+ super.syncTables();
17565
+ this.syncGroupHeaderHeight();
17566
+ this.syncDateHeaderHeight();
17567
+ }
17465
17568
  dragHorizontal(slot) {
17466
17569
  return slot.isDaySlot;
17467
17570
  }
@@ -17566,19 +17669,19 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17566
17669
  <tr class="k-scheduler-head">
17567
17670
  <td>
17568
17671
  <div class="k-scheduler-times" #timesHeader>
17569
- <table class="k-scheduler-table" aria-hidden="true">
17672
+ <table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
17570
17673
  <tbody>
17571
17674
  @for (resource of horizontalResources; track itemIndex($index, resource)) {
17572
17675
  <tr>
17573
- <th class="k-scheduler-cell k-heading-cell"></th>
17676
+ <th class="k-scheduler-cell"></th>
17574
17677
  </tr>
17575
17678
  }
17576
17679
  <tr [style.height]="'auto'">
17577
- <th class="k-scheduler-cell k-heading-cell"></th>
17680
+ <th class="k-scheduler-cell"></th>
17578
17681
  </tr>
17579
17682
  @if (allDaySlot && !verticalResources.length) {
17580
17683
  <tr>
17581
- <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
17684
+ <th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
17582
17685
  </tr>
17583
17686
  }
17584
17687
  </tbody>
@@ -17588,13 +17691,13 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17588
17691
  <td>
17589
17692
  <div class="k-scheduler-header" #header>
17590
17693
  <div class="k-scheduler-header-wrap" #headerWrap>
17591
- <table class="k-scheduler-table" aria-hidden="true">
17694
+ <table class="k-scheduler-table" #headerTable aria-hidden="true">
17592
17695
  <tbody>
17593
17696
  @for (resource of horizontalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
17594
17697
  <tr>
17595
17698
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
17596
17699
  <th
17597
- class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
17700
+ class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
17598
17701
  @if (!groupHeaderTemplateRef) {
17599
17702
  {{ getField(item, resource.textField) }}
17600
17703
  }
@@ -17608,7 +17711,7 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17608
17711
  <tr class="k-scheduler-date-group">
17609
17712
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
17610
17713
  @for (slot of daySlots; track itemIndex(index, slot); let index = $index) {
17611
- <th class="k-scheduler-cell k-heading-cell">
17714
+ <th class="k-scheduler-cell">
17612
17715
  @if (!dateHeaderTemplateRef) {
17613
17716
  <span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
17614
17717
  }
@@ -17720,7 +17823,7 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17720
17823
  <tr>
17721
17824
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
17722
17825
  @if (verticalItem(leafIndex, resourceIndex)) {
17723
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell k-heading-cell">
17826
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell">
17724
17827
  @if (!groupHeaderTemplateRef) {
17725
17828
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
17726
17829
  }
@@ -17732,14 +17835,14 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17732
17835
  }
17733
17836
  }
17734
17837
  @if (allDaySlot) {
17735
- <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
17838
+ <th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
17736
17839
  }
17737
17840
  </tr>
17738
17841
  }
17739
17842
  @for (slot of timeSlots; track itemIndex(timeSlotIndex, slot); let timeSlotIndex = $index) {
17740
17843
  <tr>
17741
17844
  @if (slot.isMajor) {
17742
- <th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell k-heading-cell">
17845
+ <th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell">
17743
17846
  @if (!majorTimeHeaderTemplateRef) {
17744
17847
  {{ slot.start | kendoDate: 't' }}
17745
17848
  }
@@ -17749,7 +17852,7 @@ class MultiDayViewRendererComponent extends DayTimeViewComponent {
17749
17852
  </th>
17750
17853
  }
17751
17854
  @if (!slot.isMajor) {
17752
- <th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell k-heading-cell">
17855
+ <th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell">
17753
17856
  @if (minorTimeHeaderTemplateRef) {
17754
17857
  <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
17755
17858
  </ng-container>
@@ -17929,19 +18032,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
17929
18032
  <tr class="k-scheduler-head">
17930
18033
  <td>
17931
18034
  <div class="k-scheduler-times" #timesHeader>
17932
- <table class="k-scheduler-table" aria-hidden="true">
18035
+ <table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
17933
18036
  <tbody>
17934
18037
  @for (resource of horizontalResources; track itemIndex($index, resource)) {
17935
18038
  <tr>
17936
- <th class="k-scheduler-cell k-heading-cell"></th>
18039
+ <th class="k-scheduler-cell"></th>
17937
18040
  </tr>
17938
18041
  }
17939
18042
  <tr [style.height]="'auto'">
17940
- <th class="k-scheduler-cell k-heading-cell"></th>
18043
+ <th class="k-scheduler-cell"></th>
17941
18044
  </tr>
17942
18045
  @if (allDaySlot && !verticalResources.length) {
17943
18046
  <tr>
17944
- <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
18047
+ <th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
17945
18048
  </tr>
17946
18049
  }
17947
18050
  </tbody>
@@ -17951,13 +18054,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
17951
18054
  <td>
17952
18055
  <div class="k-scheduler-header" #header>
17953
18056
  <div class="k-scheduler-header-wrap" #headerWrap>
17954
- <table class="k-scheduler-table" aria-hidden="true">
18057
+ <table class="k-scheduler-table" #headerTable aria-hidden="true">
17955
18058
  <tbody>
17956
18059
  @for (resource of horizontalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
17957
18060
  <tr>
17958
18061
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
17959
18062
  <th
17960
- class="k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
18063
+ class="k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
17961
18064
  @if (!groupHeaderTemplateRef) {
17962
18065
  {{ getField(item, resource.textField) }}
17963
18066
  }
@@ -17971,7 +18074,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
17971
18074
  <tr class="k-scheduler-date-group">
17972
18075
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
17973
18076
  @for (slot of daySlots; track itemIndex(index, slot); let index = $index) {
17974
- <th class="k-scheduler-cell k-heading-cell">
18077
+ <th class="k-scheduler-cell">
17975
18078
  @if (!dateHeaderTemplateRef) {
17976
18079
  <span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ slot.start | kendoDate: dateFormat }}</span>
17977
18080
  }
@@ -18083,7 +18186,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
18083
18186
  <tr>
18084
18187
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
18085
18188
  @if (verticalItem(leafIndex, resourceIndex)) {
18086
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell k-heading-cell">
18189
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-scheduler-cell k-slot-cell">
18087
18190
  @if (!groupHeaderTemplateRef) {
18088
18191
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
18089
18192
  }
@@ -18095,14 +18198,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
18095
18198
  }
18096
18199
  }
18097
18200
  @if (allDaySlot) {
18098
- <th class="k-scheduler-times-all-day k-scheduler-cell k-heading-cell" #allDayCell>{{ allDayMessage }}</th>
18201
+ <th class="k-scheduler-times-all-day k-scheduler-cell" #allDayCell>{{ allDayMessage }}</th>
18099
18202
  }
18100
18203
  </tr>
18101
18204
  }
18102
18205
  @for (slot of timeSlots; track itemIndex(timeSlotIndex, slot); let timeSlotIndex = $index) {
18103
18206
  <tr>
18104
18207
  @if (slot.isMajor) {
18105
- <th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell k-heading-cell">
18208
+ <th [ngClass]="{ 'k-slot-cell': slotDivisions === 1 }" class="k-scheduler-cell">
18106
18209
  @if (!majorTimeHeaderTemplateRef) {
18107
18210
  {{ slot.start | kendoDate: 't' }}
18108
18211
  }
@@ -18112,7 +18215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
18112
18215
  </th>
18113
18216
  }
18114
18217
  @if (!slot.isMajor) {
18115
- <th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell k-heading-cell">
18218
+ <th [ngClass]="{ 'k-slot-cell': timeSlotIndex % slotDivisions === slotDivisions - 1 }" class="k-scheduler-cell">
18116
18219
  @if (minorTimeHeaderTemplateRef) {
18117
18220
  <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: slot.start }">
18118
18221
  </ng-container>
@@ -18860,7 +18963,9 @@ class WorkWeekViewComponent extends WeekViewComponent {
18860
18963
  * @hidden
18861
18964
  */
18862
18965
  getStartDate(selectedDate) {
18863
- return firstDayInWeek(getDate(selectedDate), this.viewWorkWeekStart);
18966
+ const weekStartDate = firstDayInWeek(getDate(selectedDate), this.viewWeekStart);
18967
+ const workWeekOffset = (DAYS_IN_WEEK + this.viewWorkWeekStart - this.viewWeekStart) % DAYS_IN_WEEK;
18968
+ return getDate(addDays(weekStartDate, workWeekOffset));
18864
18969
  }
18865
18970
  /**
18866
18971
  * @hidden
@@ -19065,7 +19170,6 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19065
19170
  get classNames() {
19066
19171
  return `k-scheduler-${this.viewName}-view`;
19067
19172
  }
19068
- headerTable;
19069
19173
  get contentWidthPercentage() {
19070
19174
  const expectedWidth = this.columnWidth * this.slotsCount;
19071
19175
  const percentage = (expectedWidth / this.contentWidth) * 100;
@@ -19145,6 +19249,11 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19145
19249
  handleScroll() {
19146
19250
  this.headerWrap.nativeElement.scrollLeft = this.content.nativeElement.scrollLeft;
19147
19251
  }
19252
+ syncTables() {
19253
+ super.syncTables();
19254
+ this.syncGroupHeaderHeight();
19255
+ this.syncDateHeaderHeight();
19256
+ }
19148
19257
  createTasks(items, dateRange) {
19149
19258
  return createTasks$1(dateRange.start, dateRange.end, items, this.hiddenDays || []);
19150
19259
  }
@@ -19175,19 +19284,19 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19175
19284
  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 });
19176
19285
  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: [
19177
19286
  DayTimeSlotService
19178
- ], viewQueries: [{ propertyName: "headerTable", first: true, predicate: ["headerTable"], descendants: true }, { propertyName: "verticalResourceRows", predicate: ["verticalResourceRows"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
19287
+ ], viewQueries: [{ propertyName: "verticalResourceRows", predicate: ["verticalResourceRows"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
19179
19288
  <table class="k-scheduler-layout" [ngClass]="classNames">
19180
19289
  <tbody>
19181
19290
  <tr class="k-scheduler-head">
19182
19291
  <td>
19183
19292
  <div class="k-scheduler-times" #timesHeader>
19184
- <table class="k-scheduler-table" aria-hidden="true">
19293
+ <table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
19185
19294
  <tbody>
19186
- <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
19187
- <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
19295
+ <tr><th class="k-scheduler-cell"></th></tr>
19296
+ <tr><th class="k-slot-cell k-scheduler-cell"></th></tr>
19188
19297
  @for (resource of horizontalResources; track itemIndex($index, resource)) {
19189
19298
  <tr>
19190
- <th class="k-scheduler-cell k-heading-cell"></th>
19299
+ <th class="k-scheduler-cell"></th>
19191
19300
  </tr>
19192
19301
  }
19193
19302
  </tbody>
@@ -19210,7 +19319,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19210
19319
  <tr>
19211
19320
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
19212
19321
  <th
19213
- class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
19322
+ class="k-slot-cell k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
19214
19323
  @if (!groupHeaderTemplateRef) {
19215
19324
  {{ getField(item, resource.textField) }}
19216
19325
  }
@@ -19225,7 +19334,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19225
19334
  <tr class="k-scheduler-date-group">
19226
19335
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
19227
19336
  @for (daySlot of daySlots; track itemIndex(index, daySlot); let index = $index) {
19228
- <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
19337
+ <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-slot-cell">
19229
19338
  @if (!dateHeaderTemplateRef) {
19230
19339
  <span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
19231
19340
  }
@@ -19241,7 +19350,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19241
19350
  @for (daySlot of daySlots; track itemIndex(rangeIndex, daySlot); let rangeIndex = $index) {
19242
19351
  @for (timeSlot of timeSlots; track itemIndex(index, timeSlot); let index = $index) {
19243
19352
  @if (timeSlot.isMajor) {
19244
- <th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
19353
+ <th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell">
19245
19354
  @if (!majorTimeHeaderTemplateRef) {
19246
19355
  {{ timeSlot.start | kendoDate: 't' }}
19247
19356
  }
@@ -19253,7 +19362,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19253
19362
  @if (!timeSlot.isMajor && minorTimeHeaderTemplateRef) {
19254
19363
  <th
19255
19364
  [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
19256
- class="k-scheduler-cell k-heading-cell"
19365
+ class="k-scheduler-cell"
19257
19366
  >
19258
19367
  <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
19259
19368
  </ng-container>
@@ -19276,7 +19385,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19276
19385
  <tbody>
19277
19386
  @if (!verticalResources.length) {
19278
19387
  <tr>
19279
- <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
19388
+ <th rowspan="1" #titleCell class="k-scheduler-cell">
19280
19389
  {{ allEventsMessage }}
19281
19390
  </th>
19282
19391
  </tr>
@@ -19286,7 +19395,7 @@ class TimelineMultiDayViewComponent extends DayTimeViewComponent {
19286
19395
  <tr #verticalResourceRows>
19287
19396
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
19288
19397
  @if (verticalItem(leafIndex, resourceIndex)) {
19289
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
19398
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell">
19290
19399
  <div>
19291
19400
  @if (!groupHeaderTemplateRef) {
19292
19401
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
@@ -19424,13 +19533,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19424
19533
  <tr class="k-scheduler-head">
19425
19534
  <td>
19426
19535
  <div class="k-scheduler-times" #timesHeader>
19427
- <table class="k-scheduler-table" aria-hidden="true">
19536
+ <table class="k-scheduler-table" #timesHeaderTable aria-hidden="true">
19428
19537
  <tbody>
19429
- <tr><th class="k-scheduler-cell k-heading-cell"></th></tr>
19430
- <tr><th class="k-slot-cell k-scheduler-cell k-heading-cell"></th></tr>
19538
+ <tr><th class="k-scheduler-cell"></th></tr>
19539
+ <tr><th class="k-slot-cell k-scheduler-cell"></th></tr>
19431
19540
  @for (resource of horizontalResources; track itemIndex($index, resource)) {
19432
19541
  <tr>
19433
- <th class="k-scheduler-cell k-heading-cell"></th>
19542
+ <th class="k-scheduler-cell"></th>
19434
19543
  </tr>
19435
19544
  }
19436
19545
  </tbody>
@@ -19453,7 +19562,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19453
19562
  <tr>
19454
19563
  @for (item of horizontalResources | resourceIterator : resourceIndex; track itemIndex($index, item)) {
19455
19564
  <th
19456
- class="k-slot-cell k-scheduler-cell k-heading-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
19565
+ class="k-slot-cell k-scheduler-cell" [attr.colspan]="horizontalColspan(resourceIndex)">
19457
19566
  @if (!groupHeaderTemplateRef) {
19458
19567
  {{ getField(item, resource.textField) }}
19459
19568
  }
@@ -19468,7 +19577,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19468
19577
  <tr class="k-scheduler-date-group">
19469
19578
  @for (resource of horizontalResources | resourceIterator; track itemIndex($index, resource)) {
19470
19579
  @for (daySlot of daySlots; track itemIndex(index, daySlot); let index = $index) {
19471
- <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-heading-cell k-slot-cell">
19580
+ <th [attr.colspan]="timeSlots.length" class="k-scheduler-cell k-slot-cell">
19472
19581
  @if (!dateHeaderTemplateRef) {
19473
19582
  <span class="k-link k-nav-day" [attr.data-dayslot-index]="index">{{ daySlot.start | kendoDate: 'm'}}</span>
19474
19583
  }
@@ -19484,7 +19593,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19484
19593
  @for (daySlot of daySlots; track itemIndex(rangeIndex, daySlot); let rangeIndex = $index) {
19485
19594
  @for (timeSlot of timeSlots; track itemIndex(index, timeSlot); let index = $index) {
19486
19595
  @if (timeSlot.isMajor) {
19487
- <th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell k-heading-cell">
19596
+ <th [attr.colspan]="timeColspan(index)" class="k-scheduler-cell">
19488
19597
  @if (!majorTimeHeaderTemplateRef) {
19489
19598
  {{ timeSlot.start | kendoDate: 't' }}
19490
19599
  }
@@ -19496,7 +19605,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19496
19605
  @if (!timeSlot.isMajor && minorTimeHeaderTemplateRef) {
19497
19606
  <th
19498
19607
  [ngStyle]="{'border-left-color': 'transparent', 'border-right-color': 'transparent'}"
19499
- class="k-scheduler-cell k-heading-cell"
19608
+ class="k-scheduler-cell"
19500
19609
  >
19501
19610
  <ng-container [ngTemplateOutlet]="minorTimeHeaderTemplateRef" [ngTemplateOutletContext]="{ date: timeSlot.start }">
19502
19611
  </ng-container>
@@ -19519,7 +19628,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19519
19628
  <tbody>
19520
19629
  @if (!verticalResources.length) {
19521
19630
  <tr>
19522
- <th rowspan="1" #titleCell class="k-scheduler-cell k-heading-cell">
19631
+ <th rowspan="1" #titleCell class="k-scheduler-cell">
19523
19632
  {{ allEventsMessage }}
19524
19633
  </th>
19525
19634
  </tr>
@@ -19529,7 +19638,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19529
19638
  <tr #verticalResourceRows>
19530
19639
  @for (resource of verticalResources; track itemIndex(resourceIndex, resource); let resourceIndex = $index) {
19531
19640
  @if (verticalItem(leafIndex, resourceIndex)) {
19532
- <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell k-heading-cell">
19641
+ <th [attr.rowspan]="verticalRowspan(resourceIndex)" class="k-slot-cell k-scheduler-cell">
19533
19642
  <div>
19534
19643
  @if (!groupHeaderTemplateRef) {
19535
19644
  {{ getField(verticalItem(leafIndex, resourceIndex), resource.textField) }}
@@ -19667,9 +19776,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImpo
19667
19776
  }], verticalResourceRows: [{
19668
19777
  type: ViewChildren,
19669
19778
  args: ['verticalResourceRows']
19670
- }], headerTable: [{
19671
- type: ViewChild,
19672
- args: ['headerTable']
19673
19779
  }] } });
19674
19780
 
19675
19781
  /**
@@ -20276,16 +20382,16 @@ class YearViewInternalComponent extends BaseView {
20276
20382
  tooltip;
20277
20383
  get arrowIcons() {
20278
20384
  return !this.localization.rtl
20279
- ? ['caret-alt-left', 'caret-alt-right']
20280
- : ['caret-alt-right', 'caret-alt-left'];
20385
+ ? ['chevron-left', 'chevron-right']
20386
+ : ['chevron-right', 'chevron-left'];
20281
20387
  }
20282
20388
  get arrowSVGIcons() {
20283
20389
  return !this.localization.rtl
20284
- ? [this.caretAltLeftIcon, this.caretAltRightIcon]
20285
- : [this.caretAltRightIcon, this.caretAltLeftIcon];
20390
+ ? [this.chevronLeftIcon, this.chevronRightIcon]
20391
+ : [this.chevronRightIcon, this.chevronLeftIcon];
20286
20392
  }
20287
- caretAltLeftIcon = caretAltLeftIcon;
20288
- caretAltRightIcon = caretAltRightIcon;
20393
+ chevronLeftIcon = chevronLeftIcon;
20394
+ chevronRightIcon = chevronRightIcon;
20289
20395
  eventsPerSelectedDay = [];
20290
20396
  days = [];
20291
20397
  focusedDate;
@@ -20590,7 +20696,7 @@ class YearViewInternalComponent extends BaseView {
20590
20696
  </div>
20591
20697
  }
20592
20698
  </ng-template>
20593
- `, 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"] }] });
20699
+ `, 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", "themeColor", "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"] }] });
20594
20700
  }
20595
20701
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.20", ngImport: i0, type: YearViewInternalComponent, decorators: [{
20596
20702
  type: Component,
@@ -21562,7 +21668,7 @@ class ShortcutsDirective {
21562
21668
  }
21563
21669
  isInToolbarTemplate(element) {
21564
21670
  const isInToolbar = element.closest('.k-scheduler-toolbar');
21565
- const isInBuiltInElement = element.closest('.k-toolbar-group') ||
21671
+ const isInBuiltInElement = element.closest('[kendoschedulertoolbarnavigation]') ||
21566
21672
  element.closest('.k-scheduler-views') ||
21567
21673
  element.closest('.k-views-dropdown');
21568
21674
  return isInToolbar && !isInBuiltInElement;