UNPKG

@progress/kendo-react-treeview

Version:

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

63 lines (62 loc) 2.08 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { Keys as a, treeIdUtils as n, isEnabledAndAllParentsEnabled as s, isItemExpandedAndWithChildren as c } from "@progress/kendo-react-common"; function F(o, e, t, g, r) { switch (g) { case a.left: return I(); case a.right: return l(); case a.up: return y(); case a.down: return C(); case a.home: return n.ZERO_LEVEL_ZERO_NODE_ID; case a.end: return E(); default: return e; } function I() { return n.isIdZeroLevel(e) || // For expanded disabled items, navigate directly to the parent. // Collapse cannot happen because an event is not fired to the client. r.expanded(o) && s(e, t, r) ? e : n.getDirectParentId(e); } function l() { return c(o, r) ? n.getFirstChildId(e) : e; } function y() { const d = Number(n.getShortId(e)), u = n.getDirectParentId(e); return d ? i(n.createId(d - 1, u), t, r) : n.isIdZeroLevel(e) ? e : u; } function C() { return c(o, r) ? n.getFirstChildId(e) : p(e, t, r) || e; } function E() { let d = (t.length - 1).toString(), u = t[t.length - 1], h; for (; c(u, r); ) h = u[r.getChildrenField()], d = n.createId(h.length - 1, d), u = h[h.length - 1]; return d; } } function p(o, e, t) { const g = n.getDirectParentId(o), r = g ? n.getItemById(g, e, t.getChildrenField()) : void 0, I = r ? r[t.getChildrenField()] : e, l = Number(n.getShortId(o)); return l < I.length - 1 ? n.createId(l + 1, g) : r ? p(g, e, t) : void 0; } function i(o, e, t) { const g = n.getItemById(o, e, t.getChildrenField()); return c(g, t) ? i( n.createId(g[t.getChildrenField()].length - 1, o), e, t ) : o; } export { F as default };