Unplanned
Last Updated: 26 Jul 2023 08:22 by ADMIN
Created by: Ting
Comments: 1
Category: KendoReact
Type: Feature Request
1

Feature request

I am using the `AutoComplete` component to implement a search input and I want to be notified when the user selects an item (via mouse click or keyboard navigation) from the popup list.

I found an undocumented prop `handleItemSelect` on the `AutoCompleteHandle` ref object, and used it to implement my feature successfully.

Please can you expose `handleItemSelect` as an event on the `AutoCompleteProps` API.

Unplanned
Last Updated: 26 Jul 2023 07:59 by ADMIN

Hello, 

I'm trying to implement an accessible table using your Grid React component. The idea is for the users to be able to navigate the table using the keyboard if need be. Because we are a government contractor we have to make our product accessible and, testable using the Government issued tool for testing, ANDI

When I use a normal table, I can implement scopes in the table header, either for the column or the row and thus create relationships between headers and cells as well as, use the keyboard to navigate the entire table.

When the same table is implemented with the Grid component, there are no scopes in the header then again, both header and body are separate even though they reside inside a div with role=grid on it which in turn, contains two divs, one for the header and one for the body each in turn, implementing a table: one for what would be the headers and one for what would be the body. I'm attaching screenshots even though I'm sure you know the product.

The fact that both the <thead> and the <tbody> reside in different places, even though they are within the grid, makes it impossible to add associations furthermore, we're using a data-table and the grid. I tried using different props but, as long as both the header and the body are separate, the ANDI tools can't find the table.

Question is, is there a way to make this table truly accessible just as a one created using the semantic table tags?

Declined
Last Updated: 26 Jul 2023 07:37 by ADMIN

Hello,

Our team is using MobX-State-Tree (MST) and KendoReact TreeList control with virtual scrolling enabled. According to documentation MST model stores data as an observable array (https://mobx-state-tree.js.org/API/#array and https://mobx.js.org/api.html#observablearray).

The MST model’s field ‘tree’ is not a regular array, but a LegacyObservableArray.

From UI standpoint: 

  • initially all tree nodes are collapsed

  • user clicks on i.e. 3rd tree node

  • selection is not displayed on any tree node (3rd node expected to be selected)

  • user expands 1st tree node - selection is set on the 3rd tree node

The following warning appears in the browser console. 

Warning: Failed prop type: Invalid prop `data` of type `object` supplied to `TreeList`, expected `array`.

    in TreeList (created by wrappedComponent)

    in wrappedComponent (created by wrappedComponent)

    in div (created by wrappedComponent)

    in div (created by wrappedComponent)

    in wrappedComponent

Model is defined as:

const TreeViewModel = types

    .model('TreeViewModel', {

        selectedItemUUID: types.maybe(types.string),

        tree: types.optional(types.array(TreeNodeModel), []),

        isLoaded: types.maybe(types.optional(types.boolean, false)),

        treeTypes: types.optional(types.array(TreeNodeTypeModel), []),

    })

    .views((self) => ({

        get treeCollection(): any {      

            return self.tree;

        },

    }))

Component is defined as:

        return (<>

            {!viewModel.isLoaded && loadingPanel}

            <div className='treeListContainer' ref={stageCanvasRef}>

                {treeListContainerHeight && <TreeList

                    style={{ maxHeight: `${treeListContainerHeight}px`, overflow: 'auto', }}

                    data={viewModel.treeCollection}

                    expandField={expandField}

                    subItemsField={subItemsField}

                    columns={columns}

                    selectedField={selectedField}

                    rowHeight={40}

                    scrollable="virtual"

                />}

            </div>

        </>);

The following workaround allows converting an observable array to a regular array.

    .views((self) => ({

        get treeCollection(): any {      

            return JSON.parse(JSON.stringify(self.tree));    // or self.tree.slice()

        },

    }))

This solution affects performance due to array copy. 

Besides this TreeList uses an array copy. User’s selection and expanding don’t trigger related changes in the initial observable array in the model.

Related event handlers (i.e. onSelectionChange, onExpandChange) should be extended to make appropriate changes in the MST model.

Can you please extend KendoReact controls to support observable arrays?

Is there a better solution?


Unplanned
Last Updated: 25 Jul 2023 07:40 by ADMIN
Created by: Derek
Comments: 1
Category: KendoReact
Type: Feature Request
5

I have need for a Captcha component for a public-facing form. Most of the Telerik products include a captcha component, but not KendoReact.

Can we expect this to be added at some point?

Unplanned
Last Updated: 25 Jul 2023 07:13 by ADMIN
Created by: RS
Comments: 1
Category: KendoReact
Type: Feature Request
0
The ability for the developer to add click events / hover events for the X/Y axis labels in the Heatmap, so the developer can access the dataItem data to display in a hover state or click event.  
Unplanned
Last Updated: 18 Jul 2023 04:31 by ADMIN
Created by: Cole
Comments: 1
Category: KendoReact
Type: Feature Request
2
Per the attached support ticket non consecutive dates at a custom interval are not currently supported by kendo react scheduler. I have a use case that would benefit from being able to display every 7 days so that you can plan and schedule across weeks rather than each individual day.
Unplanned
Last Updated: 18 Jul 2023 04:28 by ADMIN
Created by: Tel
Comments: 1
Category: KendoReact
Type: Feature Request
1

Hello,

I am using React Multiselect in my project. I need every item in the multiselect component selectable with checkboxes and multiselect itself filterable. It would be very nice if you add this features to Multiselect component as built in. There is a workaround which I share links below for this but we need to do all this stuff manually.

1. Checkboxes:

 

2. Filterable

 

Thanks

Unplanned
Last Updated: 18 Jul 2023 04:20 by ADMIN
Created by: Mel
Comments: 1
Category: KendoReact
Type: Feature Request
0
Please add a master list of icons from the WebComponentsIcons font so I can use the icons in Adobe XD. It could be an XD file, or a way to copy the icon glyph from the website like Font Awesome has.
Won't Fix
Last Updated: 18 Jul 2023 04:16 by ADMIN
Created by: Ryan
Comments: 2
Category: KendoReact
Type: Bug Report
0
The CSS styling of the Stepper component breaks when there is only 1 step defined. It may sound weird to only have 1 step but the items prop is an array and therefor should support 1 single step. Currently when only 1 step is defined the stepper bar extends like it's going to a 2nd step but just stops. It'd be nice if visually that progress bar just didn't show up if there was no 2nd step.
Unplanned
Last Updated: 18 Jul 2023 04:11 by ADMIN
Created by: Fabian
Comments: 1
Category: KendoReact
Type: Feature Request
9

Despite having a similar intention (typing and selecting), the components MultiSelect and ComboBox look and behave quite differently:

  • The ComboBox has a button on the right side and only opens when this button is clicked or when the user types in the input field.
  • The MultiSelect has no such button but opens when clicking inside the input field.

It would be great if the MultiSelect component also has a button on the right and only opens when the button is clicked or when the user starts typing in the input field.

Unplanned
Last Updated: 18 Jul 2023 03:55 by ADMIN
Created by: Matthew
Comments: 1
Category: KendoReact
Type: Feature Request
1

In Kendo angular you can tell the tooltips to flip when they collide with the edge of the viewport:

https://stackblitz.com/edit/angular-gaezr2?file=app/app.component.ts

A problem with angular is it can't detect a collision in both directions. In the above example, the top tooltip only flips downwards but not to the right.

As for Kendo React there is less control. It seems to always want to "fit" with no option to flip when a collision happens. I have prepared 3 examples below. for position left, right and default:

https://stackblitz.com/edit/react-vfdvtk?file=app/main.jsx

Won't Fix
Last Updated: 18 Jul 2023 03:48 by ADMIN

Steps:

1. Create web component with shadow-root.

2. Attach all.css styles behide shadow root.

3. Add compoent with icon from WebComponentIcon font.

Result:

Icon are not displayed properly.


Won't Fix
Last Updated: 18 Jul 2023 03:47 by ADMIN
Created by: Vlado
Comments: 11
Category: KendoReact
Type: Bug Report
0

UPDATE: This is live code I prepared for you: https://stackblitz.com/edit/react-ts-dhhsaz?file=index.tsx

I get error:

 Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
1. You might have mismatching versions of React and the renderer (such as React DOM)
2. You might be breaking the Rules of Hooks
3. You might have more than one copy of React in the same app

But error appears to be inside KendoDrawer component. I can't figure out what is wrong. This is my component:

import React, { useState } from 'react';
import { withRouter, useLocation, useHistory } from 'react-router-dom';

import { Drawer, DrawerContent } from '@progress/kendo-react-layout';
import { Button } from '@progress/kendo-react-buttons';



export const SidebarDrawer = (props:any) => {

    const items = [
        { text: 'Povezivanje', icon: 'k-i-inbox', selected: true, route: '/povezivanje' },
        { separator: true },
        { text: 'Notifications', icon: 'k-i-bell', route: '/notifications' },
        { text: 'Calendar', icon: 'k-i-calendar', route: '/calendar' },
        { separator: true },
        { text: 'Attachments', icon: 'k-i-hyperlink-email', route: '/attachments' },
        { text: 'Favourites', icon: 'k-i-star-outline', route: '/favourites' }
    ];

    const [expanded, setExpanded] = React.useState(true);
    const [position, setPosition] = React.useState(true);
    const [selectedId, setSelectedId] = React.useState(items.findIndex(x => x.selected === true));

    let positionMode = position ? 'start' : 'end';

    const handleSelect = (ev:any) => {
        setSelectedId(ev.itemIndex);
        setExpanded(false);
    };

    const handleClick = () => { setExpanded(prevState => !prevState); };

    const handleChange = () => { setPosition(prevState => !prevState); };

    const drawerProps = {
        expanded: expanded,
        position: positionMode,
        mode: 'push',
        items: items.map(
            (item, index) => ({ ...item, selected: index === selectedId })),

        onSelect: handleSelect,
    }

    return (
        <Drawer {...drawerProps}>
            <DrawerContent>
                {props.children}
            </DrawerContent>
        </Drawer >
    );

};

export default withRouter(SidebarDrawer);

And this is how I use it inside App component:

import React, { useState } from 'react';
import { hot } from 'react-hot-loader';
import { Button } from '@progress/kendo-react-buttons'
import { Grid, GridColumn, GridDetailRow, GridToolbar } from '@progress/kendo-react-grid';
import '@progress/kendo-theme-bootstrap/dist/all.css';

import 'bootstrap/dist/css/bootstrap.min.css';
import { Drawer, DrawerContent } from '@progress/kendo-react-layout';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';

import urlConstants from 'ClientApp/constants/urlConstants'
import { Connecting } from '../containers/connecting/Connecting';
import SidebarDrawer from 'ClientApp/components/SidebarDrawer/SidebarDrawer';

export const App: React.FC = () => {


    return (
        <React.Fragment>
            <Router>
                <SidebarDrawer>
                    <Switch>
                        <Route exact={true} path="/" component={Connecting} />

                    </Switch>
                </SidebarDrawer>
            </Router>
        </React.Fragment>
            )
}

export default hot(module)(App);
Unplanned
Last Updated: 18 Jul 2023 03:45 by ADMIN
Created by: Ryan
Comments: 1
Category: KendoReact
Type: Feature Request
2
It'd be nice if you could associate an icon with an Input component. For example, when making a search input - specify that you'd like the search icon to be before or after it. Inputs have their own unique set of padding, so it'd be nice if this could be specified right there with the component somehow.
Unplanned
Last Updated: 12 Jul 2023 12:07 by ADMIN
Created by: Derek
Comments: 1
Category: KendoReact
Type: Feature Request
1
We often create Excel templates for offline data collection. It would be helpful if there was a way to configure cell validation, so that the exported template could be pre-configured for specific data types (ie date, currency) or to select a value from a pre-set list. 
Unplanned
Last Updated: 06 Jul 2023 06:59 by ADMIN

Hi, 

I'm working on a grid which has an action cell with buttons, which of course i dont want to export, but when i try to pass a custom column configuration to the export it fallbacks to the grid's one.

I made further investigation on the kendo-react-private repository and i found out that effectively there's a preference for the grid columns rather than custom

more precisely on kendo-react-private>packages>excel>src>ExcelExport.tsx (line 201~206)


const columns = this.extractColumns(
            gridColumns ||
            externalColumns ||
            this.props.columns ||
            React.Children.toArray(children)
        );

this is the piece of code i was talking about.

as you can see if gridColumns has a value is preferred rather than externalColumns

it would be nice to have a property onto the grid column definition stating if that column should be exported or not (best case)

or just preferring externalColumns to gridColumns (base case)

Unplanned
Last Updated: 28 Jun 2023 13:44 by ADMIN
Created by: Jessen
Comments: 1
Category: KendoReact
Type: Feature Request
1

Hi

Would it be possible to add an option/prop to the KendoReact spreadsheet component to make the whole workbook or specific sheets read-only, instead of specifying cell ranges?

This would make it easier when users need to view a file/spreadsheet without editing it.

Thanks

Unplanned
Last Updated: 27 Jun 2023 10:27 by ADMIN

My team is using KendoReact Gantt to build a web app for manage/planning task in Scrum

It is nice to have feature which display and customizable the current time marker on Gantt.

Unplanned
Last Updated: 20 Jun 2023 11:07 by ADMIN

Integrated tooltip to react data grid, but when I drag & drop column header to group it by column, It displays the tooltip text instead of column field title

Completed
Last Updated: 18 Jun 2023 11:23 by ADMIN
Created by: Henk
Comments: 1
Category: KendoReact
Type: Feature Request
28
Native REACT spreadsheet component