@progress/kendo-angular-scheduler 25.4.0-develop.2 → 25.4.0-develop.20

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.
@@ -44,8 +44,8 @@ const packageMetadata = {
44
44
  productName: 'Kendo UI for Angular',
45
45
  productCode: 'KENDOUIANGULAR',
46
46
  productCodes: ['KENDOUIANGULAR'],
47
- publishDate: 1791979066,
48
- version: '25.4.0-develop.2',
47
+ publishDate: 1793261918,
48
+ version: '25.4.0-develop.20',
49
49
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
50
50
  };
51
51
 
@@ -2944,7 +2944,8 @@ function isRecurrenceException(task) {
2944
2944
  return task.event && isPresent(task.event.recurrenceId) && !task.event.recurrenceRule;
2945
2945
  }
2946
2946
  /** @hidden */
2947
- const rectContains = (rect, left, top, scaleX = 1) => rect.left * scaleX <= left && left <= rect.left * scaleX + rect.width * scaleX && rect.top * scaleX <= top && top <= rect.top * scaleX + rect.height * scaleX;
2947
+ const rectContains = (rect, left, top, scaleX = 1, scaleY = 1) => rect.left * scaleX <= left && left <= rect.left * scaleX + rect.width * scaleX &&
2948
+ rect.top * scaleY <= top && top <= rect.top * scaleY + rect.height * scaleY;
2948
2949
  /** @hidden */
2949
2950
  const rectContainsX = (rect, left, scaleX = 1) => rect.left * scaleX <= left && left <= rect.left * scaleX + rect.width * scaleX;
2950
2951
  /** @hidden */
@@ -3112,14 +3113,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
3112
3113
  type: Output
3113
3114
  }] } });
3114
3115
 
3115
- /**
3116
- * @hidden
3117
- */
3118
- const MULTIPLE_RESOURCE_VALUE_ACCESSOR = {
3119
- multi: true,
3120
- provide: NG_VALUE_ACCESSOR,
3121
- useExisting: forwardRef(() => MultipleResourceEditorComponent)
3122
- };
3123
3116
  /**
3124
3117
  * @hidden
3125
3118
  */
@@ -3135,7 +3128,7 @@ class MultipleResourceEditorComponent extends ResourceEditorBase {
3135
3128
  }
3136
3129
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: MultipleResourceEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3137
3130
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.33", type: MultipleResourceEditorComponent, isStandalone: true, selector: "kendo-multiple-resource-editor", providers: [
3138
- MULTIPLE_RESOURCE_VALUE_ACCESSOR
3131
+ { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MultipleResourceEditorComponent) }
3139
3132
  ], viewQueries: [{ propertyName: "resourceMultiSelect", first: true, predicate: ["resourceMultiSelect"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
3140
3133
  <kendo-multiselect
3141
3134
  #resourceMultiSelect
@@ -3168,7 +3161,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
3168
3161
  type: Component,
3169
3162
  args: [{
3170
3163
  providers: [
3171
- MULTIPLE_RESOURCE_VALUE_ACCESSOR
3164
+ { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => MultipleResourceEditorComponent) }
3172
3165
  ],
3173
3166
  selector: 'kendo-multiple-resource-editor',
3174
3167
  template: `
@@ -3206,14 +3199,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
3206
3199
  args: ['resourceMultiSelect', { static: true }]
3207
3200
  }] } });
3208
3201
 
3209
- /**
3210
- * @hidden
3211
- */
3212
- const SINGLE_RESOURCE_VALUE_ACCESSOR = {
3213
- multi: true,
3214
- provide: NG_VALUE_ACCESSOR,
3215
- useExisting: forwardRef(() => SingleResourceEditorComponent)
3216
- };
3217
3202
  /**
3218
3203
  * @hidden
3219
3204
  */
@@ -3224,7 +3209,7 @@ class SingleResourceEditorComponent extends ResourceEditorBase {
3224
3209
  }
3225
3210
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: SingleResourceEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3226
3211
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.33", type: SingleResourceEditorComponent, isStandalone: true, selector: "kendo-single-resource-editor", providers: [
3227
- SINGLE_RESOURCE_VALUE_ACCESSOR
3212
+ { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SingleResourceEditorComponent) }
3228
3213
  ], viewQueries: [{ propertyName: "resourceDropDown", first: true, predicate: ["resourceDropDown"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
3229
3214
  <kendo-dropdownlist
3230
3215
  #resourceDropDown
@@ -3250,7 +3235,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
3250
3235
  type: Component,
3251
3236
  args: [{
3252
3237
  providers: [
3253
- SINGLE_RESOURCE_VALUE_ACCESSOR
3238
+ { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => SingleResourceEditorComponent) }
3254
3239
  ],
3255
3240
  selector: 'kendo-single-resource-editor',
3256
3241
  template: `
@@ -4632,7 +4617,7 @@ class RecurrenceWeekdayRuleEditorComponent {
4632
4617
  </div>
4633
4618
  </div>
4634
4619
  </div>
4635
- `, isInline: true, dependencies: [{ kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { 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"] }] });
4620
+ `, isInline: true, dependencies: [{ kind: "component", type: LabelComponent, selector: "kendo-label", inputs: ["text", "for", "optional", "labelCssStyle", "labelCssClass"], exportAs: ["kendoLabel"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "endIcon", "endSvgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }] });
4636
4621
  }
4637
4622
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: RecurrenceWeekdayRuleEditorComponent, decorators: [{
4638
4623
  type: Component,
@@ -5182,14 +5167,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
5182
5167
  type: Optional
5183
5168
  }] }] });
5184
5169
 
5185
- /**
5186
- * @hidden
5187
- */
5188
- const RECURRENCE_VALUE_ACCESSOR = {
5189
- multi: true,
5190
- provide: NG_VALUE_ACCESSOR,
5191
- useExisting: forwardRef(() => RecurrenceEditorComponent)
5192
- };
5193
5170
  /**
5194
5171
  * Represents the Kendo UI Recurrence Editor component for Angular. Use this component to let users set recurrence rules for Scheduler events.
5195
5172
  *
@@ -5353,7 +5330,7 @@ class RecurrenceEditorComponent {
5353
5330
  provide: L10N_PREFIX,
5354
5331
  useValue: 'kendo.recurrenceeditor'
5355
5332
  },
5356
- RECURRENCE_VALUE_ACCESSOR,
5333
+ { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RecurrenceEditorComponent) },
5357
5334
  RecurrenceService
5358
5335
  ], exportAs: ["kendoRecurrenceEditor"], usesOnChanges: true, ngImport: i0, template: `
5359
5336
  <ng-container kendoRecurrenceEditorLocalizedMessages
@@ -5526,7 +5503,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
5526
5503
  provide: L10N_PREFIX,
5527
5504
  useValue: 'kendo.recurrenceeditor'
5528
5505
  },
5529
- RECURRENCE_VALUE_ACCESSOR,
5506
+ { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RecurrenceEditorComponent) },
5530
5507
  RecurrenceService
5531
5508
  ],
5532
5509
  selector: 'kendo-recurrence-editor',
@@ -5711,14 +5688,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
5711
5688
  type: Output
5712
5689
  }] } });
5713
5690
 
5714
- /**
5715
- * @hidden
5716
- */
5717
- const TIME_ZONE_VALUE_ACCESSOR = {
5718
- multi: true,
5719
- provide: NG_VALUE_ACCESSOR,
5720
- useExisting: forwardRef(() => TimeZoneEditorComponent)
5721
- };
5722
5691
  /**
5723
5692
  * Represents the Kendo UI TimeZone Editor component for Angular.
5724
5693
  *
@@ -5812,7 +5781,7 @@ class TimeZoneEditorComponent {
5812
5781
  }
5813
5782
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: TimeZoneEditorComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
5814
5783
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.33", type: TimeZoneEditorComponent, isStandalone: true, selector: "kendo-timezone-editor", inputs: { width: "width" }, outputs: { valueChange: "valueChange" }, providers: [
5815
- TIME_ZONE_VALUE_ACCESSOR
5784
+ { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TimeZoneEditorComponent) }
5816
5785
  ], viewQueries: [{ propertyName: "tzComboBox", first: true, predicate: ["tzcombobox"], descendants: true, static: true }, { propertyName: "tzComboBoxControl", first: true, predicate: ["tzcomboboxControl"], descendants: true, static: true }], ngImport: i0, template: `
5817
5786
  @if (!formControl) {
5818
5787
  <kendo-dropdownlist
@@ -5845,7 +5814,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
5845
5814
  type: Component,
5846
5815
  args: [{
5847
5816
  providers: [
5848
- TIME_ZONE_VALUE_ACCESSOR
5817
+ { multi: true, provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => TimeZoneEditorComponent) }
5849
5818
  ],
5850
5819
  selector: 'kendo-timezone-editor',
5851
5820
  template: `
@@ -6566,7 +6535,7 @@ class EditDialogComponent {
6566
6535
  </kendo-dialog>
6567
6536
  }
6568
6537
  }
6569
- `, 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.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: "component", type: FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors", "colSpan"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { 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", "recurrenceSummaryTemplate", "recurrenceRule"], outputs: ["valueChange"], exportAs: ["kendoRecurrenceEditor"] }, { kind: "component", type: TextAreaComponent, selector: "kendo-textarea", inputs: ["focusableId", "flow", "inputAttributes", "adornmentsOrientation", "rows", "cols", "maxlength", "maxResizableRows", "tabindex", "tabIndex", "resizable", "size", "rounded", "fillMode", "showPrefixSeparator", "showSuffixSeparator", "value"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoTextArea"] }, { 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"] }, { kind: "component", type: SwitchComponent, selector: "kendo-switch", inputs: ["focusableId", "onLabel", "offLabel", "checked", "disabled", "readonly", "tabindex", "size", "thumbRounded", "trackRounded", "tabIndex"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoSwitch"] }, { kind: "component", type: SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon", "variant"], exportAs: ["kendoSVGIcon"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }, { kind: "component", type: TimePickerComponent, selector: "kendo-timepicker", inputs: ["focusableId", "disabled", "readonly", "readOnlyInput", "clearButton", "format", "formatPlaceholder", "placeholder", "min", "max", "incompleteDateValidation", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "cancelButton", "nowButton", "steps", "popupSettings", "tabindex", "tabIndex", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "adaptiveMode", "value", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-timepicker"] }, { kind: "component", type: TimePickerCustomMessagesComponent, selector: "kendo-timepicker-messages" }] });
6538
+ `, 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.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: "component", type: FormFieldComponent, selector: "kendo-formfield", inputs: ["showHints", "orientation", "showErrors", "colSpan"] }, { kind: "directive", type: TextBoxDirective, selector: "input[kendoTextBox]", inputs: ["value"] }, { 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", "recurrenceSummaryTemplate", "recurrenceRule"], outputs: ["valueChange"], exportAs: ["kendoRecurrenceEditor"] }, { kind: "component", type: TextAreaComponent, selector: "kendo-textarea", inputs: ["focusableId", "flow", "inputAttributes", "adornmentsOrientation", "rows", "cols", "maxlength", "maxResizableRows", "tabindex", "tabIndex", "resizable", "size", "rounded", "fillMode", "showPrefixSeparator", "showSuffixSeparator", "value"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoTextArea"] }, { 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", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "endIcon", "endSvgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "component", type: SwitchComponent, selector: "kendo-switch", inputs: ["focusableId", "onLabel", "offLabel", "checked", "disabled", "readonly", "tabindex", "size", "thumbRounded", "trackRounded", "tabIndex"], outputs: ["focus", "blur", "valueChange"], exportAs: ["kendoSwitch"] }, { kind: "component", type: SVGIconComponent, selector: "kendo-svg-icon, kendo-svgicon", inputs: ["icon", "variant"], exportAs: ["kendoSVGIcon"] }, { kind: "component", type: DatePickerComponent, selector: "kendo-datepicker", inputs: ["focusableId", "cellTemplate", "clearButton", "inputAttributes", "monthCellTemplate", "yearCellTemplate", "decadeCellTemplate", "centuryCellTemplate", "weekNumberTemplate", "headerTitleTemplate", "headerTemplate", "footerTemplate", "footer", "navigationItemTemplate", "weekDaysFormat", "showOtherMonthDays", "activeView", "bottomView", "topView", "calendarType", "animateCalendarNavigation", "disabled", "readonly", "readOnlyInput", "popupSettings", "navigation", "min", "max", "incompleteDateValidation", "autoCorrectParts", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "autoFill", "focusedDate", "value", "format", "twoDigitYearMax", "formatPlaceholder", "placeholder", "tabindex", "tabIndex", "disabledDates", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "disabledDatesValidation", "weekNumber", "size", "rounded", "fillMode", "adaptiveMode"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-datepicker"] }, { kind: "component", type: DatePickerCustomMessagesComponent, selector: "kendo-datepicker-messages" }, { kind: "component", type: TimePickerComponent, selector: "kendo-timepicker", inputs: ["focusableId", "disabled", "readonly", "readOnlyInput", "clearButton", "format", "formatPlaceholder", "placeholder", "min", "max", "incompleteDateValidation", "autoSwitchParts", "autoSwitchKeys", "enableMouseWheel", "allowCaretMode", "cancelButton", "nowButton", "steps", "popupSettings", "tabindex", "tabIndex", "adaptiveTitle", "adaptiveSubtitle", "rangeValidation", "adaptiveMode", "value", "size", "rounded", "fillMode", "inputAttributes"], outputs: ["valueChange", "focus", "blur", "open", "close", "escape"], exportAs: ["kendo-timepicker"] }, { kind: "component", type: TimePickerCustomMessagesComponent, selector: "kendo-timepicker-messages" }] });
6570
6539
  }
6571
6540
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: EditDialogComponent, decorators: [{
6572
6541
  type: Component,
@@ -7002,7 +6971,7 @@ class ToolbarViewSelectorComponent {
7002
6971
  </kendo-segmented-control>
7003
6972
  }
7004
6973
  }
7005
- `, isInline: true, dependencies: [{ kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: SegmentedControlComponent, selector: "kendo-segmented-control", inputs: ["items", "layoutMode", "size", "rounded", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }] });
6974
+ `, isInline: true, dependencies: [{ kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: SegmentedControlComponent, selector: "kendo-segmented-control", inputs: ["items", "layoutMode", "size", "rounded", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: DropDownButtonComponent, selector: "kendo-dropdownbutton", inputs: ["arrowIcon", "icon", "svgIcon", "endIcon", "endSvgIcon", "iconClass", "imageUrl", "textField", "data", "size", "rounded", "fillMode", "themeColor", "buttonAttributes"], outputs: ["itemClick", "focus", "blur"], exportAs: ["kendoDropDownButton"] }] });
7006
6975
  }
7007
6976
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: ToolbarViewSelectorComponent, decorators: [{
7008
6977
  type: Component,
@@ -7335,7 +7304,7 @@ class ToolbarNavigationComponent {
7335
7304
  </kendo-calendar-messages>
7336
7305
  </kendo-calendar>
7337
7306
  </ng-template>
7338
- `, 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 });
7307
+ `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "endIcon", "endSvgIcon"], 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 });
7339
7308
  }
7340
7309
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: ToolbarNavigationComponent, decorators: [{
7341
7310
  type: Component,
@@ -7620,7 +7589,7 @@ class ToolbarComponent {
7620
7589
  }
7621
7590
 
7622
7591
  <kendo-resize-sensor (resize)="resizeHandler()" [style]="'display: contents;'"></kendo-resize-sensor>
7623
- `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ToolbarNavigationComponent, selector: "[kendoSchedulerToolbarNavigation]", inputs: ["min", "max", "activeView", "bottomView", "responsiveLevel"] }, { kind: "component", type: ToolbarViewSelectorComponent, selector: "[kendoSchedulerToolbarViewSelector]", inputs: ["displayMode", "focusIndex", "responsiveLevel"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { 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"] }] });
7592
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ToolbarNavigationComponent, selector: "[kendoSchedulerToolbarNavigation]", inputs: ["min", "max", "activeView", "bottomView", "responsiveLevel"] }, { kind: "component", type: ToolbarViewSelectorComponent, selector: "[kendoSchedulerToolbarViewSelector]", inputs: ["displayMode", "focusIndex", "responsiveLevel"] }, { kind: "component", type: ResizeSensorComponent, selector: "kendo-resize-sensor", inputs: ["rateLimit"], outputs: ["resize"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "endIcon", "endSvgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }] });
7624
7593
  }
7625
7594
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: ToolbarComponent, decorators: [{
7626
7595
  type: Component,
@@ -12757,6 +12726,7 @@ class BaseSlotService {
12757
12726
  containerSize = 0;
12758
12727
  slotsChange = new EventEmitter();
12759
12728
  groups = [];
12729
+ schedulerElement = null;
12760
12730
  registerItem(component) {
12761
12731
  const group = this.itemGroup(component);
12762
12732
  group.registerItem(component);
@@ -12773,6 +12743,9 @@ class BaseSlotService {
12773
12743
  }
12774
12744
  }
12775
12745
  registerSlot(slot) {
12746
+ if (slot.nativeElement) {
12747
+ this.schedulerElement = slot.nativeElement.closest('.k-scheduler');
12748
+ }
12776
12749
  const group = this.slotGroup(slot);
12777
12750
  group.registerSlot(slot);
12778
12751
  }
@@ -12817,13 +12790,17 @@ class BaseSlotService {
12817
12790
  }
12818
12791
  return this.groups[index];
12819
12792
  }
12820
- calculateScaleX() {
12793
+ calculateScale(axis) {
12821
12794
  if (!isDocumentAvailable()) {
12822
12795
  return;
12823
12796
  }
12824
- const schedulerEl = document.querySelector('.k-scheduler');
12825
- const scaleX = schedulerEl.getBoundingClientRect().width / schedulerEl.offsetWidth;
12826
- return scaleX;
12797
+ const schedulerEl = this.schedulerElement?.closest('.k-scheduler');
12798
+ if (!schedulerEl) {
12799
+ return;
12800
+ }
12801
+ const bounds = schedulerEl.getBoundingClientRect();
12802
+ const scale = axis === 'x' ? bounds.width / schedulerEl.offsetWidth : bounds.height / schedulerEl.offsetHeight;
12803
+ return scale;
12827
12804
  }
12828
12805
  }
12829
12806
 
@@ -13161,11 +13138,13 @@ class MonthSlotService extends BaseSlotService {
13161
13138
  }
13162
13139
  slotByPosition(x, y) {
13163
13140
  let range;
13141
+ const scaleX = this.calculateScale('x');
13142
+ const scaleY = this.calculateScale('y');
13164
13143
  for (let i = 0; i < this.groups.length; i++) {
13165
13144
  const group = this.groups[i];
13166
- range = group.dayRanges.find(r => rectContains(r.rect, x, y, this.calculateScaleX()));
13145
+ range = group.dayRanges.find(r => rectContains(r.rect, x, y, scaleX, scaleY));
13167
13146
  if (range) {
13168
- return range.slots.find(slot => rectContains(slot.rect, x, y, this.calculateScaleX()));
13147
+ return range.slots.find(slot => rectContains(slot.rect, x, y, scaleX, scaleY));
13169
13148
  }
13170
13149
  }
13171
13150
  }
@@ -13187,9 +13166,11 @@ class MonthSlotService extends BaseSlotService {
13187
13166
  };
13188
13167
  }
13189
13168
  groupSlotByPosition(currentSlot, x, y) {
13190
- const range = this.groups[currentSlot.id.resourceIndex].dayRanges.find(r => rectContains(r.rect, x, y, this.calculateScaleX()));
13169
+ const scaleX = this.calculateScale('x');
13170
+ const scaleY = this.calculateScale('y');
13171
+ const range = this.groups[currentSlot.id.resourceIndex].dayRanges.find(r => rectContains(r.rect, x, y, scaleX, scaleY));
13191
13172
  if (range) {
13192
- return range.slots.find(slot => rectContains(slot.rect, x, y, this.calculateScaleX()));
13173
+ return range.slots.find(slot => rectContains(slot.rect, x, y, scaleX, scaleY));
13193
13174
  }
13194
13175
  }
13195
13176
  resizeRanges(currentSlot, task, resizeStart, offset) {
@@ -13588,7 +13569,7 @@ class BaseView {
13588
13569
  }
13589
13570
  }
13590
13571
  getEventStyles(item, itemResource, isAllDay) {
13591
- const result = { backgroundColor: itemResource.color, borderColor: itemResource.color };
13572
+ const result = { '--kendo-scheduler-event-color': itemResource.color };
13592
13573
  if (this.eventStyles) {
13593
13574
  Object.assign(result, this.eventStyles({
13594
13575
  event: item.event,
@@ -13918,8 +13899,7 @@ class BaseView {
13918
13899
  right: !this.localization.rtl ? '' : toPx(origin),
13919
13900
  width: size.width,
13920
13901
  height: size.height,
13921
- backgroundColor: color,
13922
- borderColor: color
13902
+ '--kendo-scheduler-event-color': color
13923
13903
  };
13924
13904
  if (this.eventStyles) {
13925
13905
  Object.assign(styles, this.eventStyles(this.dragHintEventStyleArgs()));
@@ -14063,19 +14043,21 @@ class BaseView {
14063
14043
  this.updateDragContainer(args);
14064
14044
  const eventRect = resizing.target.getBoundingClientRect();
14065
14045
  const handleOffset = 2;
14046
+ const pageOffsetX = args.pageX - args.clientX;
14047
+ const pageOffsetY = args.pageY - args.clientY;
14066
14048
  let pageX = args.pageX;
14067
14049
  let pageY = args.pageY;
14068
14050
  if (resizing.direction === 'w') {
14069
- pageX = eventRect.left + handleOffset;
14051
+ pageX = eventRect.left + pageOffsetX + handleOffset;
14070
14052
  }
14071
14053
  else if (resizing.direction === 'e') {
14072
- pageX = eventRect.right - handleOffset;
14054
+ pageX = eventRect.right + pageOffsetX - handleOffset;
14073
14055
  }
14074
14056
  else if (resizing.direction === 'n') {
14075
- pageY = eventRect.top + handleOffset;
14057
+ pageY = eventRect.top + pageOffsetY + handleOffset;
14076
14058
  }
14077
14059
  else if (resizing.direction === 's') {
14078
- pageY = eventRect.bottom - handleOffset;
14060
+ pageY = eventRect.bottom + pageOffsetY - handleOffset;
14079
14061
  }
14080
14062
  const { x, y } = this.coordinatesOffset(pageX, pageY);
14081
14063
  resizing.slot = this.slotByPosition(Math.ceil(x), Math.ceil(y), this.container);
@@ -14117,6 +14099,7 @@ class BaseView {
14117
14099
  const direction = resizing.direction;
14118
14100
  const horizontal = direction === 'w' || direction === 'e';
14119
14101
  const resizeStart = direction === 'w' || direction === 'n';
14102
+ const color = this.resizeResourceColor(resizing.task, resizing.slot);
14120
14103
  this.resizeHints = [];
14121
14104
  for (let idx = 0; idx < ranges.length; idx++) {
14122
14105
  const range = ranges[idx];
@@ -14135,15 +14118,26 @@ class BaseView {
14135
14118
  },
14136
14119
  start: first && !resizeStart ? resizing.start : firstSlot.start,
14137
14120
  end: last && resizeStart ? resizing.end : lastSlot.end,
14138
- class: resizing.hintClass
14121
+ class: resizing.hintClass,
14122
+ color
14139
14123
  });
14140
14124
  }
14141
14125
  }
14126
+ resizeResourceColor(task, slot) {
14127
+ const taskResources = task?.resources || [];
14128
+ const resourceIndex = slot?.id?.resourceIndex;
14129
+ const itemResource = taskResources.find(r => r.leafIdx === resourceIndex) || taskResources[0];
14130
+ return itemResource?.color;
14131
+ }
14142
14132
  coordinatesOffset(x, y, container = this.container, offset = this.containerOffset) {
14143
- const position = x - offset.left + container.scrollLeft;
14133
+ const schedulerEl = container?.closest('.k-scheduler');
14134
+ const schedulerRect = schedulerEl?.getBoundingClientRect();
14135
+ const scaleX = schedulerRect ? schedulerRect.width / schedulerEl.offsetWidth : 1;
14136
+ const scaleY = schedulerRect ? schedulerRect.height / schedulerEl.offsetHeight : 1;
14137
+ const position = x - offset.left + container.scrollLeft * scaleX;
14144
14138
  return {
14145
14139
  x: !this.localization.rtl ? position : this.slotService.containerSize - position,
14146
- y: y - offset.top + container.scrollTop
14140
+ y: y - offset.top + container.scrollTop * scaleY
14147
14141
  };
14148
14142
  }
14149
14143
  scrollContainer(callback, args) {
@@ -14882,6 +14876,9 @@ class ResizeHintComponent {
14882
14876
  hint;
14883
14877
  format;
14884
14878
  marqueeClasses = true;
14879
+ get color() {
14880
+ return this.hint.color || null;
14881
+ }
14885
14882
  get left() {
14886
14883
  return this.hint.rect.left;
14887
14884
  }
@@ -14901,7 +14898,7 @@ class ResizeHintComponent {
14901
14898
  return toLocalDate(this.hint.end);
14902
14899
  }
14903
14900
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: ResizeHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14904
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.33", type: ResizeHintComponent, isStandalone: true, selector: "[kendoResizeHint]", inputs: { hint: "hint", format: "format" }, host: { properties: { "class.k-marquee": "this.marqueeClasses", "class.k-scheduler-marquee": "this.marqueeClasses", "class.k-first": "this.marqueeClasses", "class.k-last": "this.marqueeClasses", "style.left.px": "this.left", "style.right.px": "this.left", "style.top.px": "this.top", "style.width.px": "this.width", "style.height.px": "this.height" } }, ngImport: i0, template: `
14901
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.33", type: ResizeHintComponent, isStandalone: true, selector: "[kendoResizeHint]", inputs: { hint: "hint", format: "format" }, host: { properties: { "class.k-marquee": "this.marqueeClasses", "class.k-scheduler-marquee": "this.marqueeClasses", "class.k-first": "this.marqueeClasses", "class.k-last": "this.marqueeClasses", "style.--kendo-marquee-color": "this.color", "style.left.px": "this.left", "style.right.px": "this.left", "style.top.px": "this.top", "style.width.px": "this.width", "style.height.px": "this.height" } }, ngImport: i0, template: `
14905
14902
  <div class="k-marquee-color"></div>
14906
14903
  <div class="k-marquee-text">
14907
14904
  @if (hint.first) {
@@ -14947,6 +14944,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
14947
14944
  }, {
14948
14945
  type: HostBinding,
14949
14946
  args: ['class.k-last']
14947
+ }], color: [{
14948
+ type: HostBinding,
14949
+ args: ['style.--kendo-marquee-color']
14950
14950
  }], left: [{
14951
14951
  type: HostBinding,
14952
14952
  args: ['style.left.px']
@@ -15097,9 +15097,6 @@ class MonthSlotComponent extends BaseSlotDirective {
15097
15097
  get end() {
15098
15098
  return addUTCDays(this.start, 1);
15099
15099
  }
15100
- isFirstDayOfMonth(day) {
15101
- return isEqualDate(day, firstDayOfMonth(day));
15102
- }
15103
15100
  get linkHeight() {
15104
15101
  if (this._linkHeight === null) {
15105
15102
  const element = firstElementChild(this.nativeElement);
@@ -15145,7 +15142,7 @@ class MonthSlotComponent extends BaseSlotDirective {
15145
15142
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.33", type: MonthSlotComponent, isStandalone: true, selector: "[monthSlot]", inputs: { moreEvents: "moreEvents", resourcesByIndex: "resourcesByIndex", monthDaySlotTemplateRef: "monthDaySlotTemplateRef", eventsPerDay: "eventsPerDay", eventHeight: "eventHeight", adaptiveSlotHeight: "adaptiveSlotHeight", day: ["monthSlot", "day"] }, usesInheritance: true, ngImport: i0, template: `
15146
15143
  @if (!monthDaySlotTemplateRef) {
15147
15144
  <span class="k-link k-nav-day">
15148
- {{ day | kendoDate: isFirstDayOfMonth(day) ? 'MMM dd' : 'dd' }}
15145
+ {{ day | kendoDate: 'dd' }}
15149
15146
  </span>
15150
15147
  }
15151
15148
  @if (monthDaySlotTemplateRef) {
@@ -15164,7 +15161,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImpo
15164
15161
  template: `
15165
15162
  @if (!monthDaySlotTemplateRef) {
15166
15163
  <span class="k-link k-nav-day">
15167
- {{ day | kendoDate: isFirstDayOfMonth(day) ? 'MMM dd' : 'dd' }}
15164
+ {{ day | kendoDate: 'dd' }}
15168
15165
  </span>
15169
15166
  }
15170
15167
  @if (monthDaySlotTemplateRef) {
@@ -15250,7 +15247,7 @@ class EventsPopoverComponent {
15250
15247
  }
15251
15248
  getEventStyles(event) {
15252
15249
  const itemResource = event.resources?.[0];
15253
- const result = { backgroundColor: itemResource?.color, borderColor: itemResource?.color };
15250
+ const result = { '--kendo-scheduler-event-color': itemResource?.color };
15254
15251
  if (this.eventStyles) {
15255
15252
  Object.assign(result, this.eventStyles({
15256
15253
  event: event.event,
@@ -16011,7 +16008,7 @@ class MonthViewRendererComponent extends BaseView {
16011
16008
  </tr>
16012
16009
  </tbody>
16013
16010
  </table>
16014
- `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MonthSlotComponent, selector: "[monthSlot]", inputs: ["moreEvents", "resourcesByIndex", "monthDaySlotTemplateRef", "eventsPerDay", "eventHeight", "adaptiveSlotHeight", "monthSlot"] }, { kind: "component", type: MonthViewItemComponent, selector: "[monthViewItem]" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "directive", type: PopoverContainerDirective, selector: "[kendoPopoverContainer]", inputs: ["filter"], exportAs: ["kendoPopoverContainer"] }, { kind: "component", type: EventsPopoverComponent, selector: "kendo-scheduler-events-popover", inputs: ["date", "events", "eventClass", "eventStyles", "noEventsMessage", "editable"], outputs: ["navigateToDay", "eventClick", "eventDblClick"] }, { 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: "pipe", type: RepeatPipe, name: "repeat" }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: DatePipe, name: "kendoDate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
16011
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MonthSlotComponent, selector: "[monthSlot]", inputs: ["moreEvents", "resourcesByIndex", "monthDaySlotTemplateRef", "eventsPerDay", "eventHeight", "adaptiveSlotHeight", "monthSlot"] }, { kind: "component", type: MonthViewItemComponent, selector: "[monthViewItem]" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }, { kind: "component", type: HintContainerComponent, selector: "kendo-hint-container" }, { kind: "component", type: ResizeHintComponent, selector: "[kendoResizeHint]", inputs: ["hint", "format"] }, { kind: "directive", type: PopoverContainerDirective, selector: "[kendoPopoverContainer]", inputs: ["filter"], exportAs: ["kendoPopoverContainer"] }, { kind: "component", type: EventsPopoverComponent, selector: "kendo-scheduler-events-popover", inputs: ["date", "events", "eventClass", "eventStyles", "noEventsMessage", "editable"], outputs: ["navigateToDay", "eventClick", "eventDblClick"] }, { kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "endIcon", "endSvgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "pipe", type: RepeatPipe, name: "repeat" }, { kind: "pipe", type: ResourceIteratorPipe, name: "resourceIterator" }, { kind: "pipe", type: DatePipe, name: "kendoDate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
16015
16012
  }
16016
16013
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: MonthViewRendererComponent, decorators: [{
16017
16014
  type: Component,
@@ -16949,7 +16946,7 @@ class ViewFooterComponent {
16949
16946
  </button>
16950
16947
  }
16951
16948
  </span>
16952
- `, 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"] }] });
16949
+ `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "endIcon", "endSvgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }] });
16953
16950
  }
16954
16951
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.33", ngImport: i0, type: ViewFooterComponent, decorators: [{
16955
16952
  type: Component,
@@ -17089,6 +17086,7 @@ function addMinHeightOverflowEvents(sorted, slots, slotItems) {
17089
17086
  function initTimeColumns(slotKeys, slotItems) {
17090
17087
  // Break slots into groups with overlapping events.
17091
17088
  let columns = 0;
17089
+ let maxGroupColumns = 0;
17092
17090
  let groupSlots = [];
17093
17091
  slotKeys.forEach(key => {
17094
17092
  const { slot, events } = slotItems[key];
@@ -17185,14 +17183,24 @@ function initTimeColumns(slotKeys, slotItems) {
17185
17183
  event.columnIndex = maxColumn + 1;
17186
17184
  }
17187
17185
  }
17186
+ const slotColumnCount = events.reduce((maximumColumnCount, event) => {
17187
+ const eventColumnIndex = event.columnIndex;
17188
+ if (!isNumber(eventColumnIndex)) {
17189
+ return maximumColumnCount;
17190
+ }
17191
+ const eventColumnCount = eventColumnIndex + 1;
17192
+ return Math.max(maximumColumnCount, eventColumnCount);
17193
+ }, 0);
17194
+ maxGroupColumns = Math.max(maxGroupColumns, slotColumnCount);
17188
17195
  if (groupEnd) {
17189
- groupSlots.forEach(item => item.columns = columns);
17196
+ groupSlots.forEach(item => item.columns = Math.max(columns, maxGroupColumns));
17190
17197
  groupSlots = [];
17191
17198
  columns = 0;
17199
+ maxGroupColumns = 0;
17192
17200
  }
17193
17201
  });
17194
17202
  // The maximum number of overlapping events in the group is used to create the same number of columns.
17195
- groupSlots.forEach(slot => slot.columns = columns);
17203
+ groupSlots.forEach(slot => slot.columns = Math.max(columns, maxGroupColumns));
17196
17204
  }
17197
17205
  function findTimeRowIndex(events, event) {
17198
17206
  if (event.rowIndex !== undefined) {
@@ -17593,38 +17601,42 @@ class DayTimeSlotService extends BaseSlotService {
17593
17601
  slotByPosition(x, y, isDaySlot, includeDayRanges) {
17594
17602
  if (isDaySlot) {
17595
17603
  for (let i = 0; i < this.groups.length; i++) {
17596
- const foundRange = this.groups[i].dayRanges.find(r => rectContainsX(r.rect, x, this.calculateScaleX()));
17604
+ const foundRange = this.groups[i].dayRanges.find(r => rectContainsX(r.rect, x, this.calculateScale('x')));
17597
17605
  if (foundRange) {
17598
- return foundRange.slots.find(slot => rectContainsX(slot.rect, x, this.calculateScaleX()));
17606
+ return foundRange.slots.find(slot => rectContainsX(slot.rect, x, this.calculateScale('x')));
17599
17607
  }
17600
17608
  }
17601
17609
  }
17602
17610
  else {
17611
+ const scaleX = this.calculateScale('x');
17612
+ const scaleY = this.calculateScale('y');
17603
17613
  for (let i = 0; i < this.groups.length; i++) {
17604
17614
  let range;
17605
17615
  if (includeDayRanges) {
17606
- range = this.groups[i].dayRanges.find(r => rectContains(r.rect, x, y, this.calculateScaleX()));
17616
+ range = this.groups[i].dayRanges.find(r => rectContains(r.rect, x, y, scaleX, scaleY));
17607
17617
  }
17608
17618
  if (!range) {
17609
- range = this.groups[i].timeRanges.find(r => rectContains(r.rect, x, y, this.calculateScaleX()));
17619
+ range = this.groups[i].timeRanges.find(r => rectContains(r.rect, x, y, scaleX, scaleY));
17610
17620
  }
17611
17621
  if (range) {
17612
- return range.slots.find(slot => rectContains(slot.rect, x, y, this.calculateScaleX()));
17622
+ return range.slots.find(slot => rectContains(slot.rect, x, y, scaleX, scaleY));
17613
17623
  }
17614
17624
  }
17615
17625
  }
17616
17626
  }
17617
17627
  groupSlotByPosition(currentSlot, x, y) {
17618
17628
  const group = this.groups[currentSlot.id.resourceIndex];
17629
+ const scaleX = this.calculateScale('x');
17630
+ const scaleY = this.calculateScale('y');
17619
17631
  let range;
17620
17632
  if (currentSlot.isDaySlot) {
17621
- range = group.dayRanges.find(r => rectContains(r.rect, x, y, this.calculateScaleX()));
17633
+ range = group.dayRanges.find(r => rectContains(r.rect, x, y, scaleX, scaleY));
17622
17634
  }
17623
17635
  else {
17624
- range = group.timeRanges.find(r => rectContains(r.rect, x, y, this.calculateScaleX()));
17636
+ range = group.timeRanges.find(r => rectContains(r.rect, x, y, scaleX, scaleY));
17625
17637
  }
17626
17638
  if (range) {
17627
- return range.slots.find(slot => rectContains(slot.rect, x, y, this.calculateScaleX()));
17639
+ return range.slots.find(slot => rectContains(slot.rect, x, y, scaleX, scaleY));
17628
17640
  }
17629
17641
  }
17630
17642
  dragRanges(currentSlot, offset, timeRanges) {
package/index.d.ts CHANGED
@@ -6107,6 +6107,7 @@ declare class ResizeHintComponent {
6107
6107
  hint: any;
6108
6108
  format: string;
6109
6109
  marqueeClasses: boolean;
6110
+ get color(): string;
6110
6111
  get left(): number;
6111
6112
  get top(): number;
6112
6113
  get width(): number;
@@ -6143,6 +6144,7 @@ interface SlotDirective {
6143
6144
  rect: Rect;
6144
6145
  id: SlotID;
6145
6146
  key: string;
6147
+ nativeElement?: HTMLElement;
6146
6148
  invalidate(): void;
6147
6149
  }
6148
6150
  /**
@@ -6174,6 +6176,7 @@ declare abstract class BaseSlotService {
6174
6176
  containerSize: number;
6175
6177
  slotsChange: EventEmitter<any>;
6176
6178
  protected groups: ResourceGroup[];
6179
+ private schedulerElement;
6177
6180
  abstract forEachSlot(callback: any): void;
6178
6181
  abstract createGroup(index: number): ResourceGroup;
6179
6182
  abstract resizeRanges(currentSlot: any, task: any, resizeStart: boolean, offset?: any): any;
@@ -6187,7 +6190,7 @@ declare abstract class BaseSlotService {
6187
6190
  protected clearEmptyGroups(): void;
6188
6191
  protected itemGroup(item: ViewItem): ResourceGroup;
6189
6192
  protected slotGroup(slot: SlotDirective): ResourceGroup;
6190
- protected calculateScaleX(): number;
6193
+ protected calculateScale(axis: 'x' | 'y'): number;
6191
6194
  }
6192
6195
 
6193
6196
  /** @hidden */
@@ -6479,6 +6482,7 @@ declare abstract class BaseView implements OnInit, OnChanges, AfterViewInit, OnD
6479
6482
  protected initResize(args: any): void;
6480
6483
  protected resize(args: any): void;
6481
6484
  protected updateResizeHints(ranges: any[], _start: Date, _end: Date): void;
6485
+ protected resizeResourceColor(task: any, slot: any): string;
6482
6486
  protected coordinatesOffset(x: number, y: number, container?: any, offset?: any): any;
6483
6487
  protected scrollContainer(callback: any, args: any): void;
6484
6488
  protected emitEvent(name: string, args: any): boolean;
@@ -7,7 +7,7 @@ export const packageMetadata = {
7
7
  "productCodes": [
8
8
  "KENDOUIANGULAR"
9
9
  ],
10
- "publishDate": 1791979066,
11
- "version": "25.4.0-develop.2",
10
+ "publishDate": 1793261918,
11
+ "version": "25.4.0-develop.20",
12
12
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
13
13
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-scheduler",
3
- "version": "25.4.0-develop.2",
3
+ "version": "25.4.0-develop.20",
4
4
  "description": "Kendo UI Scheduler Angular - Outlook or Google-style angular scheduler calendar. Full-featured and customizable embedded scheduling from the creator developers trust for professional UI components.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -80,7 +80,7 @@
80
80
  "package": {
81
81
  "productName": "Kendo UI for Angular",
82
82
  "productCode": "KENDOUIANGULAR",
83
- "publishDate": 1791979066,
83
+ "publishDate": 1793261918,
84
84
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
85
85
  }
86
86
  },
@@ -93,23 +93,23 @@
93
93
  "@progress/kendo-data-query": "^1.7.3",
94
94
  "@progress/kendo-drawing": "^1.25.0",
95
95
  "@progress/kendo-licensing": "^1.11.0",
96
- "@progress/kendo-angular-tooltip": "25.4.0-develop.2",
97
- "@progress/kendo-angular-buttons": "25.4.0-develop.2",
98
- "@progress/kendo-angular-common": "25.4.0-develop.2",
99
- "@progress/kendo-angular-dateinputs": "25.4.0-develop.2",
100
- "@progress/kendo-angular-dialog": "25.4.0-develop.2",
101
- "@progress/kendo-angular-dropdowns": "25.4.0-develop.2",
102
- "@progress/kendo-angular-icons": "25.4.0-develop.2",
103
- "@progress/kendo-angular-inputs": "25.4.0-develop.2",
104
- "@progress/kendo-angular-intl": "25.4.0-develop.2",
105
- "@progress/kendo-angular-l10n": "25.4.0-develop.2",
106
- "@progress/kendo-angular-label": "25.4.0-develop.2",
107
- "@progress/kendo-angular-popup": "25.4.0-develop.2",
96
+ "@progress/kendo-angular-tooltip": "25.4.0-develop.20",
97
+ "@progress/kendo-angular-buttons": "25.4.0-develop.20",
98
+ "@progress/kendo-angular-common": "25.4.0-develop.20",
99
+ "@progress/kendo-angular-dateinputs": "25.4.0-develop.20",
100
+ "@progress/kendo-angular-dialog": "25.4.0-develop.20",
101
+ "@progress/kendo-angular-dropdowns": "25.4.0-develop.20",
102
+ "@progress/kendo-angular-icons": "25.4.0-develop.20",
103
+ "@progress/kendo-angular-inputs": "25.4.0-develop.20",
104
+ "@progress/kendo-angular-intl": "25.4.0-develop.20",
105
+ "@progress/kendo-angular-l10n": "25.4.0-develop.20",
106
+ "@progress/kendo-angular-label": "25.4.0-develop.20",
107
+ "@progress/kendo-angular-popup": "25.4.0-develop.20",
108
108
  "rxjs": "^6.5.3 || ^7.0.0"
109
109
  },
110
110
  "dependencies": {
111
111
  "tslib": "^2.3.1",
112
- "@progress/kendo-angular-schematics": "25.4.0-develop.2",
112
+ "@progress/kendo-angular-schematics": "25.4.0-develop.20",
113
113
  "@progress/kendo-date-math": "^1.3.2",
114
114
  "@progress/kendo-draggable": "^3.0.2",
115
115
  "@progress/kendo-file-saver": "^1.0.7",
@@ -9,10 +9,10 @@ const schematics_1 = require("@angular-devkit/schematics");
9
9
  function default_1(options) {
10
10
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'SchedulerModule', package: 'scheduler', peerDependencies: {
11
11
  // peer deps of the dropdowns
12
- '@progress/kendo-angular-treeview': '25.4.0-develop.2',
13
- '@progress/kendo-angular-navigation': '25.4.0-develop.2',
12
+ '@progress/kendo-angular-treeview': '25.4.0-develop.20',
13
+ '@progress/kendo-angular-navigation': '25.4.0-develop.20',
14
14
  // peer dependency of kendo-angular-inputs
15
- '@progress/kendo-angular-dialog': '25.4.0-develop.2',
15
+ '@progress/kendo-angular-dialog': '25.4.0-develop.20',
16
16
  // peer dependency of kendo-angular-icons
17
17
  '@progress/kendo-svg-icons': '^4.0.0'
18
18
  } });