We would like to use Kendo React to build a micro frontend UI but we did not found any relevant information that this is currently supported.
The main issue we are facing is how it isolate Kendo theme styling between different micro frontends.
Let's say we have 2 micro frontends A and B:
- A is using Kendo v6.
- B is using Kendo v7 (or some other future/past version).
Both of them will include their global Kendo styles which will collide.
After some investigation, we came up with 2 possible approaches:
We have experimented with the second approach and it seems like a way to go. It also required to append all popups to root DOM node of a micro frontend which can be done easily using PopupPropsContext.
But adding a class to all Kendo CSS selector is technically not a trivial task. It would be nice if Kendo supported this out of the box, for example by providing some SCSS configuration variable.
Currently, there is a following signature of function "rowRender" passed to React Grid:
rowRender?: (row: React.ReactElement<HTMLTableRowElement>, props: GridRowProps) => React.ReactNode;
I managed to access something which I assume represents this index somehow by using "row._owner.index" although I'm not completely sure if that is always identical to the index of the row being rendered.
It would be very helpful if an index of a rendered row could be accessed as follows:
rowRender?: (row: React.ReactElement<HTMLTableRowElement>, props: GridRowProps, index: number) => React.ReactNode;
Any chance you could provide simple sample code (stackblitz ideally) demonstrating how to combine multiple PDFExport's into a single PDF file?
The need to combine comes from wanting page numbering to start at 1 within each individual pdf render.
Totally open to using the lower level exportPDF from the drawing library... perhaps there's a straightforward path to combining the individual DataURI's? also open to using additional 3rd party npmjs libraries.
Not only would I like control over the group order (like from this thread https://feedback.telerik.com/kendo-react-ui/1523636-need-to-be-able-to-have-more-control-over-the-order-of-groups-in-the-kendo-grid-sort-on-the-text-is-insufficient), it would be awesome if we could sort groups themselves.
I understand that the current set up sorts children within groups but not the groups themselves. However, sorting within and between groups is a bit more intuitive to the user when they see visually-grouped information and try to sort on it => most of our users expect the groups to get sorted as well.
Although I can write my own sorting functionality, it can get out of hand quickly with ascending/descending, numeric vs alphabetic columns, and multi-sort vs single sort, but KendoReact already has the capability to sort in these three ways with its non-grouped grid functionality.
To Whom It May Concern,
I am requesting the Kendo team to implement a new feature of programmatically setting a Grid's page for the Kendo React Grid.
This can be accomplished by having a listener for the Grid's state. For example, when the Grid's skip props is changed, the Grid's page will also change to the number of elements skipped.
Please consider implementing this feature.
Thank you.
Sincerely,
Andrew J. Yang
Keysight Technologies
Hi there,
I can see there is a column chooser component for the Angular Data Grid e.g. https://www.telerik.com/kendo-angular-ui/components/grid/columns/menu/#toc-column-chooser-item but there is not an equivalent for the React Data Grid (unless you code it yourself).
The DevExpress React Grid does have this feature https://devexpress.github.io/devextreme-reactive/react/grid/docs/guides/column-visibility/ so we were wondering if such a thing is planned React Data Grid?
Thanks very much,
James
There is an inconsistency with the DateRange picker in the way element focus is set when closing the date selection popup by mouse vs keyboard. When using the mouse to close the date range selection popup, element focus becomes lost/reset.
You can simulate this from the example page https://www.telerik.com/kendo-react-ui/components/dateinputs/daterangepicker/
Steps to simulate good behavior (this works correctly):
* click the 'from' input text element (causes the popup to open and the text input to have focus)
* press 'escape' to close the popup (the popup is closed, and the 'from' input element retains focus)
* press 'tab' (focus moves to the 'to' text input element)
Steps to simulate behavior that could be improved:
* click or tab into the 'from' input element (causes the popup to open and the text input to have focus)
* click (with the mouse) outside the popup to close it (the popup is closed, and focus appears to be lost.)
* press 'tab' (focus moves to the 'from' input element again because we are back at the beginning of the tab order list)
This input can lead you into a tab order loop if you mix pressing 'tab' to advance focus, and using the mouse to click to close the date selection popup.
Feature request: when clicking to close the popup, element focus should be retained in the 'from' or 'to' text input; whichever had focus before the popup close, the same as pressing 'escape' to close the popup.
Hi,
the current filter is great but a little bit difficult to use. I would like to see an inline filter like the following screenshot:
It is used by many applications. Just to name a few
* Gitlab (where the screenshot is from)
* Contentful (CMS)
* Google Cloud Console
I would like to use my custom component as the chat input. Is it possible to add new prop to chat component? Similar to DatePicker's "dateInput" prop.
When using the tab strip, it'd be nice if there were an event that fired before the tab changed so that we could abort a tab chat. For example, if a tab has some input fields that allow a user to change some setting but they change the tab without hitting save or something. It'd be nice if I could pop up a modal and ask them to save before changing tab.
The function could just return true or false to allow the tab change, etc.
Hello
There was an error calling “ chart.surface.redraw() ”
onRender = (args,mapValues,stackedOrderBy) => {
const chart = args.target.chartInstance;
const valueAxis = chart.findAxisByName("valueAxis");
const categoryAxis = chart.findAxisByName("categoryAxis");
if (!chart) return;
let x= 1;
if( stackedOrderBy!="Ascending")
x=-1;
let axis = categoryAxis.options;
axis.categories = axis.categories.sort(function (a, b) {
if (mapValues[a] < mapValues[b]) {
return -1*x;
}
if (mapValues[a] > mapValues[b]) {
return 1*x;
}
return 0;
});
chart.surface.redraw();
<Grid
style={{ height: '400px', width: '500px' }}
data={products}
reorderable
>
<Column field="ProductID" title="ID" width="45px" locked />
<Column field="ProductName" title="Name" width="250px" />
<Column field="Category.CategoryName" title="CategoryName" />
<Column field="UnitPrice" title="Price" width="90px" />
<Column field="UnitsInStock" title="In stock" width="90px" />
<Column field="UnitsOnOrder" title="On order" width="90px" />
<Column field="Discontinued" width="120px" locked={true} />
<Column field="QuantityPerUnit" title="Additional details" width="250px" />
</Grid>
Q:
From the last conversation through the webinar
jQuery Filter looks cool! What about Kendo React Filter?
Right now we do not have a KendoReact Filter component, but feel free to drop us a line in our feedback portal and we will consider implementing it.
When then CSS "rotate(90deg) translate(...)" is applied to KendoReact Chart, the coordinates of tooltip are incorrect.
In order to display KendoReact Chart on mobile phones on a horizontal screen, CSS "rotate(90deg) translate(...)" is applied to KendoReact Chart,
but the coordinates of tooltip are incorrect.
sourcecode:
let w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;In order to display KendoReact Chart on mobile phones on a horizontal screen, CSS "rotate(90deg) translate(...)" is applied to KendoReact Chart,
but the coordinates of tooltip are incorrect.
let w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
let h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
let x = (h-w)/2;
let ts = "rotate(90deg) translate("+x+"px,"+x+"px)";
const maxstyle={
transform:ts,
width:h,
height:w,
top:0,
left:0,
paddingLeft:5,
paddingRight:5,
paddingTop:5,
transformOrigin:"center center",
background:'#f5f5f9',
overflow:"hidden",
position:"fixed",
zIndex:10000
};