Pending Review
Last Updated: 28 Jul 2026 15:04 by Michael
Created by: Michael
Comments: 0
Category: Kendo UI for Angular
Type: Bug Report
0

Hi,

This works with Angular 20, must be a change related to that.

If I assign data to the TreeView synchronously, it works, but e.g. in a setTimeout, it doesn't any more. (I assign the full array, change detection is set to eager.)

Reproduction can be found here: https://codesandbox.io/p/devbox/mutable-glade-39twhs?workspaceId=ws_P4gPDf6RC2r5W8xExWQehV

Best regards,
Michael

Pending Review
Last Updated: 27 Jul 2026 14:38 by Svitlana
Created by: Svitlana
Comments: 0
Category: Kendo UI for Angular
Type: Bug Report
0

`@progress/kendo-intl` incorrectly formats timezone offsets whose minute component is non-zero.

For example, a JavaScript `Date` with the historical Warsaw offset `UTC+01:24` is formatted as `+01:04` instead of `+01:24`.

This affects all tested `Z`, `X`, and `x` timezone format variants.

Environment

- `@progress/kendo-angular-intl`: `24.2.0`
- `@progress/kendo-intl`: `3.2.1`

- Browser/Node timezone: `Europe/Warsaw`
- Operating system: Windows
- Format: `yyyy-MM-ddTHH:mm:ssZZZZZ`

The same formatting implementation appears in `@progress/kendo-intl` versions `3.1.2` and `3.2.1`.

Reproduction

const { formatDate } = require('@progress/kendo-intl');

process.env.TZ = 'Europe/Warsaw';

const date = new Date(1900, 0, 1, 16, 0, 0);

console.log(date.toString());
console.log(date.getTimezoneOffset());
console.log(formatDate(date, 'yyyy-MM-ddTHH:mm:ssZZZZZ'));

Actual Result

Mon Jan 01 1900 16:00:00 GMT+0124
-84
1900-01-01T16:00:00+01:04

Expected Result

1900-01-01T16:00:00+01:24

Date#getTimezoneOffset() returns -84, meaning the local timezone is 84 minutes ahead of UTC:

84 minutes = 1 hour 24 minutes

Other Examples

The issue is not limited to positive offsets:

getTimezoneOffset()ExpectedActual
-84+01:24+01:04
210-03:30-03:05

UTC is also formatted differently depending on the token, but that behavior may be intentional:

OffsetExpected ISO representationZZZZZ result
0+00:00 or ZZ

Tested Format Specifiers

All applicable format variants use the same incorrect minute calculation:

Z      -> +0104
ZZ     -> +0104
ZZZ    -> +0104
ZZZZ   -> GMT+01:04
ZZZZZ  -> +01:04

X      -> +0104
XX     -> +0104
XXX    -> +01:04
XXXX   -> +0104
XXXXX  -> +01:04

x      -> +0104
xxx    -> +01:04
xxxxx  -> +01:04

Changing from ZZZZZ to XXXXX or XXX therefore does not resolve the problem.

Suspected Root Cause

The current formatter appears to perform approximately this calculation:

const offset = date.getTimezoneOffset() / 60;
const hoursMinutes = Math.abs(offset).toString().split('.');
const minutes = hoursMinutes[1] || 0;

For an 84-minute offset:

84 / 60 = 1.4

The decimal portion "4" is then treated as four minutes and padded to "04".

However, the fractional part represents a fraction of an hour:

0.4 hours * 60 = 24 minutes

Likewise, for 210 minutes:

210 / 60 = 3.5

The formatter produces 03:05, although 0.5 hours is 30 minutes.

Suggested Fix

Timezone offsets should remain integer minute values throughout formatting:

function formatTimeZone(date, info, options) {
    const totalMinutes = date.getTimezoneOffset();
    const absoluteMinutes = Math.abs(totalMinutes);
    const hours = Math.floor(absoluteMinutes / 60);
    const minutes = absoluteMinutes % 60;
    const sign = totalMinutes <= 0 ? '+' : '-';

    // Continue applying shortHours, separator, optionalMinutes,
    // localizedName and zZeroOffset options using hours and minutes.
}

The important calculations are:

const hours = Math.floor(Math.abs(offsetMinutes) / 60);
const minutes = Math.abs(offsetMinutes) % 60;

Converting the offset to a decimal hour and splitting its string representation is not reliable.

Suggested Regression Tests

it('formats a positive timezone offset with minutes', () => {
    const date = new Date(2024, 5, 25, 12, 7, 5);
    vi.spyOn(date, 'getTimezoneOffset').mockReturnValue(-84);

    expect(formatDate(date, 'yyyy-MM-ddTHH:mm:ssZZZZZ'))
        .toBe('2024-06-25T12:07:05+01:24');
});

it('formats a negative timezone offset with minutes', () => {
    const date = new Date(2024, 5, 25, 12, 7, 5);
    vi.spyOn(date, 'getTimezoneOffset').mockReturnValue(210);

    expect(formatDate(date, 'yyyy-MM-ddTHH:mm:ssZZZZZ'))
        .toBe('2024-06-25T12:07:05-03:30');
});

Other useful cases include:

-345 -> +05:45
-330 -> +05:30
210 -> -03:30
0 -> Z or +00:00, depending on the selected token

Impact

This can corrupt serialized date-time values when they are passed to systems that honor the emitted offset, including .NET DateTimeOffset.

Example:

Intended: 1900-01-01T16:00:00+01:24
Emitted:  1900-01-01T16:00:00+01:04

These values represent instants 20 minutes apart.

The issue affects:

  • Historical dates from regions that previously used local mean time.
  • Current timezones with half-hour or quarter-hour offsets.
  • Any test or custom Date implementation returning a non-whole-hour offset.

Examples of modern fractional offsets include UTC+05:30, UTC+05:45, UTC+09:30, and UTC-03:30.

Additional Context

We initially encountered this with Europe/Warsaw and 1900-01-01. The JavaScript runtime correctly reports Warsaw's historical offset as UTC+01:24. The incorrect UTC+01:04 value is introduced only during Kendo formatting.

We have implemented a temporary application-level workaround that formats the date portion with Kendo and calculates the timezone offset directly from integer minutes.

StackBlitz

 

Unplanned
Last Updated: 27 Jul 2026 07:26 by ADMIN

Hello,

 

I have prepared an example, here's how you reproduce the bug (https://stackblitz.com/edit/angular-2nwrn7db?file=src%2Fapp%2Fapp.component.ts):

1. Move the Product Name column between the Category and Unit Price columns
2. Save the Grid state using the Save State button
3. Reload the page
4. Restore the saved state using the Load State button
5. The multi-column Test (k-grid0-col4) has the wrong OrderIndex (0 instead of 4)

Best regards,

Igor

Unplanned
Last Updated: 24 Jul 2026 13:46 by Kendo UI
Created by: Kendo UI
Comments: 0
Category: MultiViewCalendar
Type: Feature Request
1

Currently, there is no public API to customize the visible month window. The built-in header buttons move the months window by a two-month span.

Provide a way in the MultiViewCalendar to programmatically shift the displayed months by one month backward or forward. For example:

  1. Calendar currently shows June and July
  2. User clicks a Previous button - calendar should show May and June
  3. Or, user clicks a Next button - calendar should show July and August
Unplanned
Last Updated: 22 Jul 2026 07:30 by ADMIN
Created by: Kendo UI
Comments: 2
Category: Scheduler
Type: Feature Request
7


Due to the internal mechanism by which the Scheduler displays events per day, some events are shrunk without reason, because others are shrunk due to overlap.

In the following screenshot, the Scheduler Event 1 has enough space to occupy the entire column, but is shrunk the same as Event 2 (which is shrunk due to the overlap with Event 3). Internally, each day use column separation logic to distribute the events. Since all three events fall into the same slot, the entire column is divided by 3 and events are distributed among them. Since Event 1 is the first event, it has been shown in the first 1/3. This isn't optimal, as this case proves it.

Here is how Kendo Scheduler behaves compared to Google Calendar in this case





Google Calendar

Duplicated
Last Updated: 16 Jul 2026 08:38 by ADMIN

When dateinput format is "d/M/y" and "allowCaretMode" is enabled, users are unable to enter valid dates. Tested with dateinput and datepicker components.

Steps to reproduce

  1. Setup a kendo-dateinput component with "allowCaretMode" set to "true" and the "format" set to "d/M/y" (see stackblitz below).
  2. Enter a valid single-digit day and valid single-digit month into the input.
  3. Try typing a year.
  4. Observe that only one character of the year can be entered and the input locks up, preventing the user from completing a valid date.
  5. Try typing a double digit month.
  6. Observe that only one character of the month can be entered and the input locks up.
  7. Try typing a double digit day.
  8. Observe that only one character of the day can be entered and the input locks up.

Stackblitz example - angular v22 + kendo v24

https://stackblitz.com/edit/angular-kendo-dateinput-bug-rdocwtvr

Expected Behaviour:

The user should be able to enter a full year, month, and day after typing a valid single-digit day and month.

Observed Behaviour:

After entering a single-digit day and month, the input locks up, preventing the user from typing more than one character for the year or month. This prevents users from entering valid dates, making the input unusable in this scenario.

Thanks

Unplanned
Last Updated: 16 Jul 2026 07:52 by ADMIN
Created by: Rama Mohan
Comments: 2
Category: DropDownTree
Type: Feature Request
6
Provide virtual scrolling for DropDownTree component.
Unplanned
Last Updated: 16 Jul 2026 07:44 by Rodrigo
We have a use case where we need to set a specific user-defined order or a priority for the event to be displayed as first.

For example, a way to set in the data for the event "Morning" to display first instead of "Laboratory Equipment". It cannot depend on the time range.



Thank you!
Unplanned
Last Updated: 16 Jul 2026 07:19 by Kendo UI
Created by: Kendo UI
Comments: 0
Category: Diagram
Type: Feature Request
1

Currently, the Diagram component allows setting the zoom level through the zoom property, but it does not provide a way to specify the zoom location or point. As a result, zooming always centers on the (0,0) coordinate.

Add built-in support for programmatically zooming into a specific point through the DiagramComponent API. This can be a method similar to the one available in the Kendo UI for jQuery Diagram widget:

Unplanned
Last Updated: 09 Jul 2026 04:56 by ADMIN
Created by: shoy
Comments: 3
Category: Kendo UI for Angular
Type: Feature Request
1

Signal Forms are now stable with Angular@22.

It would be nice to have an ability to use all kendo widgets with new form API.

Unplanned
Last Updated: 08 Jul 2026 07:38 by ADMIN

It would be great if you would allow loading single sheets instead of all the sheets every time. I receive data per sheet from my server.

Also the Spreadsheet fails to trigger events for:

  • row added
  • row deleted
  • column width changed
  • row height changed
  • cell style changed
  • format changed 
  • cells merged
Planned
Last Updated: 07 Jul 2026 13:06 by ADMIN
Created by: Kendo UI
Comments: 2
Category: Editor
Type: Feature Request
13

Provide a built-in option to paste Excel data inside the Editor formatted as a table (like the KendoReact Editor):

 

 

Unplanned
Last Updated: 06 Jul 2026 07:24 by ADMIN

The built-in kendoDropDownFilter directive normalizes text using String.prototype.toLowerCase() when caseSensitive: false. This is locale-insensitive and produces incorrect results for languages with non-standard case-folding rules, most notably Turkish.

The correct fix is to use String.prototype.toLocaleLowerCase(locale), which respects locale-specific case rules. The DropDownFilterSettings interface should expose a locale option for this:

filterSettings = {
  caseSensitive: false,
  operator: 'startsWith',
  locale: 'tr-TR'   // ← proposed new option
};

Affected components: kendoDropDownFilter directive (used with AutoCompleteComponent, ComboBoxComponent, MultiColumnComboBoxComponent, DropDownListComponent, MultiSelectComponent).

 

Completed
Last Updated: 01 Jul 2026 14:30 by ADMIN
Created by: Chris
Comments: 4
Category: Kendo UI for Angular
Type: Bug Report
0

For the Kendo DatePicker, if you try to set the size on a kendo-datepicker with plain text, it will not render and give a console error of "ERROR TypeError: Cannot read properties of undefined (reading 'nativeElement')".

Errors:

// HTML

<kendo-datepicker size="small" ... />

---

But on the other hand, it does work if you create a field of type "DateInputSize" and pass that variable to the size.

Works:

// TS

protected size: DateInputSize = 'small';

// HTML

<kendo-datepicker [size]="size" ... />



Unplanned
Last Updated: 25 Jun 2026 07:31 by ADMIN

Please repeat the following steps to reproduce this critical accessibility issue:

  1. Go to https://www.telerik.com/kendo-angular-ui/components/editor#angular-editor-example
  2. In the Angular Editor Example. click in the editor and type one letter to enable the "Undo" toolbar button
  3. Navigate to toolbar via Shift+Tab key
  4. Use the left or right arrow key to navigate to "Undo" button 
  5. Use Enter to trigger the "Undo" button which should then re-focus the editor and disable the "Undo" button
  6. Immediately press Shift+Tab key to navigate back to the toolbar with the "Undo" button disabled

Expected behaviour: The disabled "Undo" button is focused so that toolbar navigation with left or right arrow keys is enabled.
Experienced behaviour: The toolbar is permanently unfocusable with keyboard navigation and the element (theme selector) before the toolbar is focused. It is no longer possible to navigate to any buttons in the toolbar with Tab or Shift+Tab at this point. This happens with any toolbar button that becomes disabled after triggering such as the "outdent" button.

NOTE: The expected behaviour actually works in the jQuery Editor (https://demos.telerik.com/kendo-ui/editor/all-tools), so the Angular Editor should be fixed to match.

Unplanned
Last Updated: 25 Jun 2026 06:25 by ADMIN
Created by: Thomas
Comments: 1
Category: ColorPalette
Type: Feature Request
1

it seems like for defining a custom color palette it's currently not possible to use css variables. When doing something like this:

  public colorPaletteSettings: PaletteSettings = {
    palette: ['var(--my-color)', '#e2a293', '#d4735e'],    columns: 3,
    tileSize: {
      width: 60,
      height: 30
    }
  }

I get a "Cannot parse color: var(--my-color)". 
Am I missing something?

If not, is this feature planned to be implemented sometime soon?

For me, I absolutely need this feature since I want to maintain the link between colors used within the application. We have custom colors defined as css variables. I want those colors to appear inside the kendo colorpicker palette and when selecting one I want this css variable to be used, let's say as a colored line in a graph component. when later changing the value of the css variable the color within the graph should update. that's why converting my css variables into hex values does not work for me, since it's breaking the link. 

On a sidenote - is it possibel to define a custom palette preset, like the ones available: 

  public palettes: string[] = [
    "office",
    "clarity",
    "slipstream",
    "basic",
    "monochrome",
  ];



Thanks for your help.
Thomas

Unplanned
Last Updated: 15 Jun 2026 10:31 by ADMIN

Hi,

We're heavily using the Scheduler component, but we've hit a problem with `slotClick` in scenarios involving multiple scheduler instances on the same page.

With two schedulers on one page, slot detection for the second scheduler (used in context-menu flows via slotByPosition) can be wrong.

Detaild repro: Stackblitz

Repro steps:
- Right-click any slot in Scheduler #2.
- slotClick gives expected slot, but slotByPosition(...) can resolve incorrectly/undefined, which can cause error in the app when code depends on slotByPosition.

The issue:
- BaseSlotService.calculateScaleX() uses document.querySelector(".k-scheduler"), which always picks the first scheduler in DOM.
- With two schedulers on one page, slot detection for the second scheduler (used in context-menu flows via slotByPosition) can be wrong.
- Relevant code:
const h = document.querySelector(".k-scheduler");
return h.getBoundingClientRect().width / h.offsetWidth;
- Expected: the instance of scheduler used in the calculation should be the one that fired event, not the first one from DOM.

 

In Development
Last Updated: 12 Jun 2026 14:42 by ADMIN
Hi,

If we format kendo-datepicker to (MMMM/dd/yyyy) and if we enter number of month in input then it is not reflecting and shows month in input field.

As you can see in screenshot, I called (valueChange) event to see the changed value, I have enter 10 in month input field so it shows two value in console, first one is when 1 is press and second is when 0 is pressed after 1 so it gives null and in input field it shows month instead of October.

It is working if we enter first letter of month but it should work if we enter month in number.

Please fix this issue asap.

Thanks.

Unplanned
Last Updated: 12 Jun 2026 07:31 by ADMIN
Created by: Anderson
Comments: 1
Category: TreeList
Type: Feature Request
0

Hi Telerik Support Team,

I would like to request a feature enhancement for the Kendo UI for Angular TreeList component, specifically regarding the selection mechanisms.

Feature Request:

Please consider adding a (selectAllChange) event emitter to the <kendo-treelist-checkbox-column> component, similar to how selection events are handled or how other advanced components expose header checkbox interactions.

Use Case / Motivation:

Currently, when a user clicks the "Select-All" checkbox in the header, it is difficult to intercept this specific action efficiently to run custom business logic, perform secondary async operations, or manually update external states that depend strictly on the "all selected/unselected" toggle.

While we can listen to general selection changes on the TreeList, having a dedicated (selectAllChange) event that emits the current state (e.g., true, false, or even a custom event object) would provide much cleaner control over the application state, especially in complex data-binding scenarios.

Proposed Syntax:

<kendo-treelist-checkbox-column 
    [showSelectAll]="true" 
    (selectAllChange)="onSelectAllChange($event)">
</kendo-treelist-checkbox-column>

 

Completed
Last Updated: 10 Jun 2026 08:41 by ADMIN

Hi,

When the first day of the week is changed dynamically through a custom IntlService, the Calendar weekday headers are updated, but the date cells are not repositioned. (The first day is changed as described in your guide: https://www.telerik.com/kendo-angular-ui/components/knowledge-base/calendar-first-day )

Reproduction (forked from your example): https://stackblitz.com/edit/angular-tqvypgwg
Click on "Set first day to Monday ": the weekday headers are updated to start with Monday, but the date cells remain in their previous positions.

Best regards,
Michael

1 2 3 4 5 6