I realise the real villain here is Angular change detection, but anyways...
https://stackblitz.com/edit/angular-3r25bb?file=src%2Fapp%2Fapp.component.ts
This is sort of halfway between a bug and a feature: I've noticed when i add any kind of mouse event to a tree view node template then some global change detection kicks in, and in turn this seems to cause the svg carets in treeview to be constantly regenerated e.g. open the above stackblitz and move the mouse up and down the tree - if you look in the chrome inspector elements tab and go to the <kendo-svgicon> carets you will see their child nodes ( > svg > path) glow as they are being replaced - even though the replacement nodes are no different. If you edit the data in these nodes e.g. path coords, you'll see it get replaced when the mouse is moved up/down the tree again
This doesn't seem to affect any other parts of the tree view, just the carets... is there a chance this could be looked into why this is happening, and hopefully stopped? (our ultimate reason is we're also listening to DomChange events with a mutation observer on the tree and these changes cause many DomChange events that swamp the ones we actually want.)
(Also, I have looked into changing the change detection behaviour in angular but it isn't fine-grained enough to ignore just one particular declaration of an event listener in a template - it's all big sweeping component-level changes or using renderer classes and native listeners which are unwieldy, especially when the target concerned is in a ng-template like in this instance.)
Hi,
Having a scrollTo method, similar to the one in the Grid component(API), would be a very useful feature for the TreeView component.
Hello,
Do You have plans, to provide extended 'desktop-like' multiselection of nodes with ctrl/meta or shift key pressed?
Since the itemLookup as the selectedKeys works with index and is not able to search the tree by a key value, which in my opinion is really a must-have feature for the tree.
It would be by far easier if we could have a method findParentsByKey and findParentItemsByKey and define a key and values and get the full results.
Like for example
findParentsByKey(id, 123) - this could return an array of objects of the key/values of the parents of the node with id: 123.
findParentItemsByKey(id, 123) - return only the parent nodes (only those with children), an array of objects with the key/values of each parent item.
When you have a very long list of items to display in the tree view its not always ideal to have a vertical scroll. In order to better utilize space and allow for the user to see more options on the screen at once it would be nice to have a configuration to allow for the list to be split up into columns. So for example if you have a list of 90 items, you can maybe have 3 columns of 30 items each. Please see the attached image that demonstrates what I am referring too.
The Kendo Silverlight does have something similar: https://docs.telerik.com/devtools/silverlight/controls/radtreeview/how-to/create-horizontal-treeview
Request related to - https://github.com/telerik/kendo-angular/issues/3452
Currently, the default filtering mode, known as "lenient", halts its search as soon as a match is identified, showcasing all child elements of that match irrespective of their correspondence with the filter term. However, due to this design, using "lenient" mode while simultaneously auto-expanding child elements matching the filter term is not feasible.
In the "lenient" mode, the algorithm terminates its comparison upon encountering a match. Consequently, utilizing "lenient" mode along with automatic expansion of potential child matches requires switching to the "strict" filtering mode. This compels the algorithm to perform comprehensive comparisons throughout the entire tree, ensuring explicit identification and expansion of all matches.
https://stackblitz.com/edit/angular-5oxrjd-m3qsi6?file=app%2Fapp.component.ts
An enhancement can be introduced by incorporating a setting that drives the algorithm to perform exhaustive comparisons even within "lenient" mode, introducing the capability to expand matches while maintaining the current operational design.
Provide an option to specify the drag target.
Currently, we can click anywhere on the item and drag it. But there are scenarios where the items should be draggable only when clicking an icon.
Hi,
We are facing a notable poor performance in tree view when loading about 1500 tree nodes with custom template and it is taking approximately 32 Seconds to load it. You have already provided load more option to virtualize data but this is not so user friendly and suggested listview which has virtualization also not good fit to replace treeview. I wonder how this virtual scroll is missed in tree view!!. It is very important component to our project If you could provide this feature will be great.
Thanks& regards,
Ramesh M
Please provide a built - in feature that allows to achieve the behavior demonstrated at the following link:
https://www.lidorsystems.com/support/articles/angular/treeview/treeview-compact-view/
thank you
Hi,
The tree view enables us to drag and drop one item at a time. we have a scenario where i want to drag and drop multiple items. tree view also enables multiple selection of items but not supporting drag and drop of multiple items. Could you please provide some solution to dag and drop multiple items
Thanks& regards,
Ramesh M
My suggestion for the Angular treeview is to expose a doubleClick event, as opposed to just the single click event (or the selection node event). This would help in preventing events from firing unless the user has double clicked a node (as an option).
[isDisabled]="disabled || isDisabled(node, nodeIndex(index))"
Because of the hardcoded disabled property, isDisabled cannot be reliably used to control which item is disabled.
Disabling the parent node automatically disables the entire tree under it and isDisabled is never called for those items.
It should behave like other functions - isChecked, isExpanded, isVisible etc - where you have full control over which item does what.
Hi,
Please provide a property that can be used to associate the node pageSize with a specific property of the data items.
thanks
Hi,
Please provide an option that allows exposing the TreeView nodes' indexes. Such a feature will be especially helpful when rearranging the TreeView nodes by dragging.
Thank you
Hi,
The tree view enables us to drag and drop one item at a time. we have a scenario where i want to drag and drop multiple items. tree view also enables multiple selection of items but not supporting drag and drop of multiple items. Could you please provide some solution to dag and drop multiple items
Please provide an optional callback function when rebindChildren has finished and the tree is stable again.
Thanks