UNPKG

@progress/kendo-react-treeview

Version:

React TreeView displays hierarchical data in a traditional tree structure, supports user interaction. KendoReact TreeView package

9 lines (8 loc) 1.86 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ "use strict";const e=require("@progress/kendo-react-common");function p(d,t,n,l,r){switch(l){case e.Keys.left:return g();case e.Keys.right:return I();case e.Keys.up:return h();case e.Keys.down:return U();case e.Keys.home:return e.treeIdUtils.ZERO_LEVEL_ZERO_NODE_ID;case e.Keys.end:return c();default:return t}function g(){return e.treeIdUtils.isIdZeroLevel(t)||r.expanded(d)&&e.isEnabledAndAllParentsEnabled(t,n,r)?t:e.treeIdUtils.getDirectParentId(t)}function I(){return e.isItemExpandedAndWithChildren(d,r)?e.treeIdUtils.getFirstChildId(t):t}function h(){const o=Number(e.treeIdUtils.getShortId(t)),i=e.treeIdUtils.getDirectParentId(t);return o?a(e.treeIdUtils.createId(o-1,i),n,r):e.treeIdUtils.isIdZeroLevel(t)?t:i}function U(){return e.isItemExpandedAndWithChildren(d,r)?e.treeIdUtils.getFirstChildId(t):u(t,n,r)||t}function c(){let o=(n.length-1).toString(),i=n[n.length-1],s;for(;e.isItemExpandedAndWithChildren(i,r);)s=i[r.getChildrenField()],o=e.treeIdUtils.createId(s.length-1,o),i=s[s.length-1];return o}}function u(d,t,n){const l=e.treeIdUtils.getDirectParentId(d),r=l?e.treeIdUtils.getItemById(l,t,n.getChildrenField()):void 0,g=r?r[n.getChildrenField()]:t,I=Number(e.treeIdUtils.getShortId(d));return I<g.length-1?e.treeIdUtils.createId(I+1,l):r?u(l,t,n):void 0}function a(d,t,n){const l=e.treeIdUtils.getItemById(d,t,n.getChildrenField());return e.isItemExpandedAndWithChildren(l,n)?a(e.treeIdUtils.createId(l[n.getChildrenField()].length-1,d),t,n):d}module.exports=p;