Hi Team,
I would like request adding automatic line breaks for Kendo UI Charts to help avoid lengthy labels.
Thanks!
I need to get the output of a grid saving to pdf without sending the resulting PDF directly to the user. For example, a PDF export option "localexport: true" which would return the data to code instead of directly to the client.
Currently, the file data can be retrieved using the private _drawPDF method:
var grid = $("#grid").data("kendoGrid");
var progress = new $.Deferred();
grid
._drawPDF(progress)
.then((root) => {
return kendo.drawing.exportPDF(root, grid.options.pdf);
})
.done((data) => {
console.log(data);
});
Example: https://dojo.telerik.com/rjEORuHy.
However, the approach does not work well in all scenarios for example, when there are multiple pages - https://dojo.telerik.com/iiifASYZ/2
Thus, I would like to have a built -in method that will be suitable for all scenarios to generate and retreive the file data, without sending the file to the client.
Example: https://runner.telerik.io/fullscreen/yypoqSea
This example is based on the example from the docs with `navigatable: true` and enough data that the user needs to scroll in order to see the bottom row.
On Chrome on macOS, the filter menu cannot be used when `navigatable: true` and "Tap to click" is enabled in the macOS Trackpad settings. When clicking on the filter icon, the menu disappears very quickly (see screen recording). As a workaround, setting `navigatable` to false seems to resolve the problem. The same issue does not seem to occur on Safari, however, there is still odd behavior with the scrolling.
For some reason, screen size, resolution, and window settings impact the ability to reproduce the issue. The most reliable way for me to reproduce the issue was with Chrome in full screen on a 16-inch MacBook (13-inch works too) with the bookmarks bar showing and no external displays connected. Hiding the bookmarks bar or not using full screen seems to make it more difficult to reproduce.
Bug report
Grid's loader gets lost in the scrollable area height is greater than the viewport height
Reproduction of the problem
Dojo: https://dojo.telerik.com/hqknEyYx/2
Run and click on Export to Excel button
Worakround: https://dojo.telerik.com/gSsYgQpZ
excelExport: function (e) {
let gridHeight = $("#grid").height();
if (gridHeight < 700) {
$("div.k-loader-container-inner").addClass("smallHeight");
} else {
$("div.k-loader-container-inner").addClass("biggerHeight");
}
}
...
<style>
div.loaderPosition {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
div.biggerHeight {
position: absolute;
top: 50vh;
left: 50%;
transform: translate(-50%, -50%);
}
</style>
Environment
Kendo UI version: [all[
jQuery version: 3.4.1
Browser: [all]
The documentation of the Kendo-UI Diagram widget specifies the following signature of the zoom method (as do the corresponding TS typings):
zoom(zoom: number, point: kendo.dataviz.diagram.Point): void;
However, the JS implementation looks like this:
zoom: function(zoom, options)
where options is an object that may contain a field called "point" of type kendo.dataviz.diagram.Point.
When using zoom as documented, it ignores the specified point. This DOJO demonstrates the behavior.
When there's a DropDownList in the Toolbar's oveflow, clicking to open the DropDownList closes the overflow popup.
Regression introduced with 2023.1.117
Note: As of 2023.1.117, the DropDownList is no longer overflowing, despite overflow: "always". As of 2023.1.425 the DropDownList is again displayed in the overflow, and can no longer be opened.
The overflow popup closes
The overflow popup should remain open so that you can interact with the DropDownList
Bug report
Donut Chart Overlay looks different after Q2 2024
Before Q2 2024
After Q2 2024
Reproduction of the problem
Dojo demo: https://dojo.telerik.com/GHWBFuzv
Environment
Kendo UI version: 2024.2.514 or newer
Browser: [all]
When the DropDownList component is configured with Adaptive Mode and Filtering, opening the dropdown on a mobile device and attempting to type in the search field causes the popup to close immediately.
With Adaptive Mode and Filtering enabled, the DropDownList popup closes immediately when tapping the search field on a mobile device.
The DropDownList popup should remain open when tapping the search field on a mobile device, allowing users to enter text and filter options.
1678876
In the DropDownList component with filtering, opening the dropdown on a mobile device and attempting to type in the search field causes the popup to close immediately.
Regression introduced with 2025.1.211
The DropDownList popup closes immediately when tapping the search field on a mobile device.
The DropDownList popup should remain open when tapping the search field on a mobile device, allowing users to enter text and filter options.
The same way it is possible to make the search case-insensitive by setting columns.filterable.ignoreCase to true, it would be great if there was a way to add a custom filter (e.g. make the search diacritics-insensitive, with a custom function or as part of provided functionality). Thanks in advance.
Enhancement
Expose setOptions() for Kendo Wizard
Desired Behavior
setOptions shall update Wizard steps
wizard.setOptions({
steps: steps
});
Destroy current Wizard and reinitialize with new steps
let wizard = $("#wizard").data('kendoWizard');
wizard.destroy();
$("#wizard").empty();
let steps = [];
for (var i = 0; i < 4; i++) {
steps.push({
title: "Tab " + i,
content: "Tab Content " + i
});
}
$("#wizard").kendoWizard({
steps: steps
});
When there are multiple Forms on the same page, submiting one of the Forms triggers the other Forms validation.
The first Form is also validated and the field is marked as invalid.
Only the Form which button has been clicked have to be validated.
Kendo UI core lists several controls that are available in the library, but there is no mention that they are not actively maintained on main repository readme.
Several controls were obsoleted/unsupported in this commit - https://github.com/telerik/kendo-ui-core/commit/db16f60ee6ee43506173a9628723b3de1ed73266, but they are still listed in https://github.com/telerik/kendo-ui-core/blob/master/README.md or promotional graphics.
Please clarify its current/future status.
Best regards
K
In a Spreadsheet that has a scrollable Sheetbar, clicking the arrow icons to scroll the sheets refreshes the page.
Regression introduced with 2024.4.1112
Workaround - https://dojo.telerik.com/IVcuYtjD/5
The page refreshes
The page shouldn't refresh
There are many properties that can be set during initialization that cannot be changed through the API afterwards. Take the Kendo UI ToolBar for example. You can add a button to the toolbar and set the text, but you cannot change the text afterwards unless you update the element directly. It may seem like a simple thing to change the text of an element, like so: $("#myButton").text("New Text"). However, if you had set the imageUrl as well, setting the text like I did above would remove the image. Knowing that, you could get the text node and update the nodeValue. That may work today but could easily be broken during a Kendo UI update (for example, if the update included a change that wraps the text in a span). Having to deal with native elements after they have been created by the Kendo UI components is a dangerous practice for developers as it requires an internal knowledge of how elements are rendered based on the different options set. As mentioned above, it is also dangerous as any update could break our code. Therefore, it is imperative to expose methods that allow us to modify any properties through the API (where possible) to allow us to create clean and easy to maintain code. If you search the feedback, you will see many requests to add a method here and a method there. There is even a related one to this called "Kendo Mobile: Methods to set properties dynamically". Suggestion: When you have child elements, such as buttons on the toolbar, please allow us to update those widgets directly rather than through the parent. For example, instead of $("#myToolbar").data("kendoToolBar").enable("#myButton"), allow us to do something like this $("#myButton").data("kendoToolBarItem").enable();
In a scenario where a Validator is created with validateOnBlur:false, and is used to validate a NumericTextBox, if the component is focused and blurred after validation, the k-invalid class is removed.
The k-invalid class, and the styles associated with it, are removed
there is no binding for noData
e.g.
noData?: boolean | undefined;
interface ChartOptions {
name?: string | undefined;
autoBind?: boolean | undefined;
axisDefaults?: ChartAxisDefaults | undefined;
categoryAxis?: ChartCategoryAxisItem | ChartCategoryAxisItem[] | undefined;
chartArea?: ChartChartArea | undefined;
dataSource?: any|any|kendo.data.DataSource | undefined;
legend?: ChartLegend | undefined;
panes?: ChartPane[] | undefined;
pannable?: boolean | ChartPannable | undefined;
pdf?: ChartPdf | undefined;
persistSeriesVisibility?: boolean | undefined;
plotArea?: ChartPlotArea | undefined;
renderAs?: string | undefined;
series?: ChartSeriesItem[] | undefined;
seriesColors?: any;
seriesDefaults?: ChartSeriesDefaults | undefined;
theme?: string | undefined;
subtitle?: string | ChartSubtitle | undefined;
title?: string | ChartTitle | undefined;
tooltip?: ChartTooltip | undefined;
transitions?: boolean | undefined;
valueAxis?: ChartValueAxisItem | ChartValueAxisItem[] | undefined;
xAxis?: ChartXAxisItem | ChartXAxisItem[] | undefined;
yAxis?: ChartYAxisItem | ChartYAxisItem[] | undefined;
zoomable?: boolean | ChartZoomable | undefined;
axisLabelClick?(e: ChartAxisLabelClickEvent): void;
dataBound?(e: ChartDataBoundEvent): void;
drag?(e: ChartDragEvent): void;
dragEnd?(e: ChartDragEndEvent): void;
dragStart?(e: ChartDragStartEvent): void;
legendItemClick?(e: ChartLegendItemClickEvent): void;
legendItemHover?(e: ChartLegendItemHoverEvent): void;
legendItemLeave?(e: ChartLegendItemLeaveEvent): void;
noteClick?(e: ChartNoteClickEvent): void;
noteHover?(e: ChartNoteHoverEvent): void;
noteLeave?(e: ChartNoteLeaveEvent): void;
paneRender?(e: ChartPaneRenderEvent): void;
plotAreaClick?(e: ChartPlotAreaClickEvent): void;
plotAreaHover?(e: ChartPlotAreaHoverEvent): void;
plotAreaLeave?(e: ChartPlotAreaLeaveEvent): void;
render?(e: ChartRenderEvent): void;
select?(e: ChartSelectEvent): void;
selectEnd?(e: ChartSelectEndEvent): void;
selectStart?(e: ChartSelectStartEvent): void;
seriesClick?(e: ChartSeriesClickEvent): void;
seriesHover?(e: ChartSeriesHoverEvent): void;
seriesOver?(e: ChartSeriesOverEvent): void;
seriesLeave?(e: ChartSeriesLeaveEvent): void;
zoom?(e: ChartZoomEvent): void;
zoomEnd?(e: ChartZoomEndEvent): void;
zoomStart?(e: ChartZoomStartEvent): void;
}
It will be really useful if we could include a new 'filtering mode' in which operators like 'and' or 'or' are allowed in the filtering input box.
For instance, using the "doesnotcontain" with 'march or july or september' will allow users to exclude multiple conditions in a single filter