Just as a first note, the documentation on how to write a custom `messagesMap` function for use in the `Pager` component is extremely vague. Without access to the KendoReact source code, it would have been near impossible.
First request: on the `GridProps` API page, the `pager` prop is defined as being the type "null" or `ComponentType<PagerProps>`. Please convert the text "ComponentType<PagerProps>" into a link to the `PagerProps` page. This will greatly aid in quickly linking to the appropriate documentation.
Second request (and the bulk of the feature request): please make (at least) the pager-related constants and default messages (string templates) available to consuming components. As of v5.4.0 of `@progress/kendo-react-data-tools`, the constants are exported from {kendo-react-private}/packages/datatools/src/messages/index.ts and they are consumed within the `Pager` (and subcomponents), but are not re-exported.
Not having access to the pager-related constants (`pagerInfo`, `pagerFirstPage`, `pagerPreviousPage`, `pagerNextPage`, `pagerLastPage`, `pagerItemPerPage`, `pagerPage`, `pagerOf` and `pagerTotalPages`) means it's a complete shot in the dark at how to write an override function to supply as the `messagesMap` prop. Not only that, but without access to the pager-related default messages (string templates) and given the way the `Pager`'s `render` method is written, we are unable to change just one or just a couple messages; we have to address all nine.
Right now in v5.4.0, the way the `Pager`'s `render` method is written, it simply checks to see if `messagesMap` is non-null (lines 214 through 223 of Pager.tsx, lines 38-43 of PagerInput.tsx and lines 36 and 37 of PagerPageSizes.tsx). This means that if we pass in a custom function for `messagesMap`, the custom function will be used to evaluate the message/string-template for `pagerFirstPage`, `pagerPreviousPage`, `pagerNextPage`, `pagerLastPage`, `pagerInfo`, `pagerPage`, `pagerOf`, `pagerTotalPages` and `pagerItemPerPage` (just in those three, aforementioned files). This means that we have to somehow know that `pagerInfo`, for example, will come through to the custom function as the string "pager.info" or that `pagerPage` will come through as "pager.page" so that the custom function knows which `messageKey` it's being passed so it can send out the object with the appropriate message/string-template as the object's `defaultMessage` property.
Instead, if the pager-related constants and default messages were exposed, we could very easily write a custom `messagesMap` function that could address any number of the nine default messages.
As an example, the Telerik/Kendo default string template for `pagerInfo` is "{0} - {1} of {2} items" that could be better scoped to the type of data the grid shows. Let's say the grid displays products and we'd like the pager to show "Displaying products 5 - 10 of 302" in the bottom right. If the pager-related constants and messages were exposed, this becomes a very simple task while not disturbing all other Telerik/Kendo default messages:
import React from 'react';
import { Grid, GridColumn, GridNoRecords, GridColumnMenuFilter } from '@progress/kendo-react-grid';
import { pagerInfo, pagerOf, messages as defaultPagerMessages, Pager } from '@progress/kendo-react-data-tools';
export default function MyComponent() {
const customMessagesMap = messageKey => {
switch (messageKey) {
case pagerInfo: return { messageKey, defaultMessage: 'Displaying products {0} - {1} of {2}' };
default: return { messageKey, defaultMessage: defaultPagerMessages[messageKey] };
}
};
const CustomPager = () => (
<Pager
skip={...}
take={...}
total={...}
buttonCount={...}
type="numeric"
info={true}
pageSizes={[...]}
messagesMap={customMessagesMap}
);
return (
<div className='my-component'>
<Grid data={[...]} pager={CustomPager}>
<GridColumn ... />
</Grid>
</div>
);
};Test Environment:
OS: Windows_11Browser: Version 103.0.1264.71 (Official Build) (64-bit)
Prerequisite steps:
1. Go to system settings.
2. Navigate to 'Accessibility' and activate it.
3. Navigate to 'Contrast theme' and activate it.
4. Select 'Desert/Aquatic' High Contrast theme in the combo box.
Repro Steps:
1. Open given URL https://canvasjs.com/docs/charts/chart-options/axisx/viewport-minimum/ in Edge.
2. Graph page will be open.
3. Turn on High contrast theme.
4. Verify that Graphs are not adapting high contrast Aquatic and Desert modes or not.
Actual Behavior:
Graphs are not adapting high contrast Aquatic and Desert modes. They remain same as in normal mode.
Expected Behavior:
Graphs should adapt high contrast Aquatic and Desert modes as defined. All elements should adapt to respective modes properly.
Hi,
I would like to request a feature for the scatter line type chart for the crosshair line depending on axis to snap to points on the scatter chart.
An example of this would be like showing X axis crosshair only and having on hover of mouse to snap to nearest dot. (not showing crosshair between points, but always on a point.)
The closest working example I can find of this on kendo react is the bar chart for crosshair tool tip first example https://www.telerik.com/kendo-react-ui/components/charts/chart/elements/crosshairs/ but after talking to support it does not support scatter line chart.
but only with category axis(X axis).
The desired behavior would be the above but on a scatter line chart using separate axis y or x crosshair only and having them to snap to points instead of hovering between points. If you do hover between points, it should snap to nearest point to mouse cursor.
This sandbox has the behavior but only for a bar chart. https://stackblitz.com/edit/react-qnn9h4?file=app%2Fmain.jsx
We have the requirement to have a data grid with drag and drop configured to support auto scroll when the data grid has no fixed height set and overflow/scrollbar is enabled on the a parent element (div or body).
Full details as per support ticket 1571735.
Dear Kendo,
I'm currently working on a data grid that has virtual scrolling enabled. When a user is scrolling fairly quickly, the screen will constantly flash white. See video in attachment.
I see this same behaviour in the example provided in the docs here: https://stackblitz.com/run/?file=app%2Fmain.jsx although it is slightly less noticeable.
What can we do to fix this?
Thanks in advance.
Kind regards,
Peter
Hi,
I would like to be able to select all items from the treeview using a keyboard combination, I mean something like select an item +press and hold shift key and select another item and all items in between get selected.
Hi Team,
While browsing i came across a feature called social control+login+singup in 1 place. Does Kendo react has anything like below
exportdefaultLogin
and profile template like below:
Data-attribute is missing on a NumericTextbox. Add it in a similar way as for example TextInput and Checkbox.
import * as React from 'react';
import * as ReactDOM from 'react-dom';
import {
NumericTextBox,
Checkbox,
TextBox,
} from '@progress/kendo-react-inputs';
const App = () => {
return (
<div>
<label>
<TextBox data-test="5" />
</label>
<br />
<label>
<NumericTextBox data-test="5" />
</label>
<br />
<label>
<Checkbox data-test="5" />
</label>
</div>
);
};
ReactDOM.render(<App />, document.querySelector('my-app'));When I press on a day from the past the DatePicker automatically scrolls to the next/previous year. Please check the attached video.
Is there any workaround for this issue ?
After significant amounts of negative feedback we have now stopped using the KendoReact DatePicker as the calendar part of the control doesn't make it clear how to change the month/year. I am aware that you click on the {Month Year} label at the top, but this is obviously not intuitive at all based on the extensive user feedback (it took me a while to figure out the first time as well).
When you start using the control for older dates (e.g. Date of Birth), scrolling is just not feasible particularly on mobile and so users get incredibly frustrated as they just want to change the month/year in a more manual manner to go back in time significantly. Many other date picker controls use visual cues such as up/down carets next to the Month/Year to suggest it can be adjusted.
Please get your UX experts to look at improving this as it could be a really simple fix that would make a massive difference to users
Hi,
I would like to request a feature for the hovering to show tooltip behaviour in Kendo React Charts.
Currently, the tooltip on hover behavior for most or almost all Kendo React Charts is that it shows the tooltip only if you hover directly on a point or bar. This means that upon hovering on tiny data representation like dots or bars will be very difficult for the user to show a tooltip for.
For example the following sandboxes:
Bar graph with small and large data: https://stackblitz.com/edit/react-xtmkdz?file=app%2Fmain.jsx
Line graph with small data dots and large data dots: https://stackblitz.com/edit/react-wg75ag?file=app%2Fmain.jsx
In these sandboxes, hovering over the smallest bar is very difficult and is also the same for the line graph for tiny "marker" sizes.
I am requesting a feature where Kendo React Chart tooltip can:
I have seen this feature in other popular React Chart libraries like Recharts https://recharts.org/en-US
Bar chart:
https://recharts.org/en-US/examples/StackedBarChart
In this example, hovering anywhere inside that grey box area with mouse will show tooltip for that Page A:
For line charts in Recharts: https://recharts.org/en-US/examples/SimpleLineChart
Hovering at the drawn mouse location in this chart shows tooltip for the point below.
I am hoping Kendo React in the future supports this feature as the current implementation of the tooltip is very rigid and clunky.
It would be nice if ListView could have the option of actually being a list (ul, ol or dl) element. In many cases, I believe this would be more semantically correct and it would help screen readers understand more about the content. My suggestion would to make this configurable if possible. I've seen some libraries allow you to pass in the element type so you can override / change the markup and I think this would be nice to have here (and possibly other places).
Hi Team,
There is some unexpected behavior when resizing events after switching the Scheduler to 'Show Full Day'. Take a look at my sandbox, you'll notice, its barely anything, let alone anything fancy.
Replicate:
1. Create a new event that starts at 8am.
2. Switch the view to 'Show Full Day'
3. Using the start time resize handle and drag it up, to start earlier. And you will notice the dragItem actually drags down, and when you release the handle, the event appears in the correct place
This will only happen on the first resize when switching to 'Show full day'. You can replicate it more by switching back and forth between full day and business hours.
Similar Scenarios include:
1. Placing the event to end at 8am, switching to business hours and back, then drag the end time down, the dragItem will be positioned to start at 8am, but say its 7am and you will see the rest.
2. Placing the event to overlap 8am, will yield both problems.
Again this only happens on the first resize after switching views, and I've only tested it in DayView, so it might affect WeekView as well. There appears to be no issue when events overlap the endWorkTime.
Thanks,
Grant
Hi,
Please see the following example of the dropdownlist with bootstrap theme applied:
https://stackblitz.com/edit/react-ejxe44?file=index.html
I have updated the bootstrap cdn to latest. Notice that bootstrap styling is applied to the dropdowns including focus shadowing.
Now please see the exact same example but with theme customisation using a custom scss file:
https://stackblitz.com/edit/react-tuq49c-g6ofwn?file=index.scss
Notice that bootstrap styling is no longer applied to the dropdowns, which do not have focus shadowing.
Kind regards,
David
Hi Team,
If you take a look at my demo, I have 2 scheduler events, and I've created a custom SchedulerItem that renders the background of one of them to be blue.
When dragging the items around, the dragItem mains the same color with a bit of opacity, cool.
When resizing, the orange (?) one works great, this is the default color theme. However when I resize the blue one, while resizing, the resizeItem is an opaque blue, but the SchedulerItem underneath reverts back to the original default color scheme thereby mixing the colors.
Please advise.
Thanks,
Grant
Hello,
we are using kendo-react-pdf and I am trying to see if it can generate tagged PDFs to make it accessible. Or can you tell me if there is another kendo pdf component that is capabable of creating these tags?
thanks so much,
Rebecca
The KendoReact `Upload` component displays a "file validation message" when an upload/save attempt fails, as can be seen in the following screenshot.
This message is provided by the `getFileValidationMessage()` method of the `UploadListSingleItem` class and is triggered when the passed parameter, `isUploadFailed` is `true`.
`isUploadFailed` is determined by the method `getFileStatus()` provided by the local-to-the-Upload-component utils file. This method is returning `isUploadFailed` as true only when the compared file status is set to `UploadFileStatus.UploadFailed`.
This is wonderful when uploading/saving - and it's great to show the user that something failed during the attempted upload/save.
I request similar functionality when performing file removal so we could similarly alert the user that the attempted removal of the file failed. Something similar to the below:
Hi, I am Lavanya
I am using kendo UI past few days the react-coffee warehouse is very useful to learn . But the finance application is in typescript so unable to learn the whole application. so kindly give any sample application in js or jsx .if possible.
thanks
];
this is my data I want to use a column chart using this data x-axis as month and y-axis sales how can i use this data
Hi, I am Lavanya!
in my dropdown list, there are horizontal layouts I need to change to the vertical dropdown list
and also I have attached bar data in that I need to make a dropdown filter of the month how can I use that