@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.84 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@progress/kendo-react-common"),I=require("./utils/consts.js");function g(i,t,n,d={},o){if(!n||!n.length)return[];const{ids:l,idField:r}=x(t),c=r?s.getNestedValue(r,i.item):i.itemHierarchicalIndex,u=l.indexOf(c),a=u===-1,h=o||I.CHILDREN_FIELD;let e;return d.singleMode?e=a?[c]:[]:(e=l.slice(),a?e.push(c):e.splice(u,1),d.checkChildren&&k(i.item,i.itemHierarchicalIndex,a,r,h,e),d.checkParents&&m(i.itemHierarchicalIndex,a,r,h,e,n)),s.isArray(t)?e:Object.assign({},t,{ids:e})}function x(i){let t,n;return s.isArray(i)?t=i:(t=i.ids||[],n=i.idField),{ids:t,idField:n}}function k(i,t,n,d,o,l){s.getAllDirectIndirectChildrenIds(i,t,o,d).forEach(r=>{n&&l.indexOf(r)===-1?l.push(r):!n&&l.indexOf(r)>-1&&l.splice(l.indexOf(r),1)})}function m(i,t,n,d,o,l){const r=h();let c=r.next();t?u():a();function u(){for(;!c.done;){const{id:e,item:f}=c.value;if(o.indexOf(e)===-1&&s.areAllDirectChildrenChecked(f,e,n,d,o))o.push(e),c=r.next();else break}}function a(){for(;!c.done;){const{id:e}=c.value,f=o.indexOf(e);if(f>-1)o.splice(f,1),c=r.next();else break}}function*h(){if(n){const e=s.getAllParents(i,d,l);for(let f=e.length-1;f>-1;f--)yield{id:s.getNestedValue(n,e[f]),item:t?e[f]:void 0}}else{let e=s.treeIdUtils.getDirectParentId(i);for(;e;)yield{id:e,item:t?s.treeIdUtils.getItemById(e,l,d):void 0},e=s.treeIdUtils.getDirectParentId(e)}}}exports.handleTreeViewCheckChange=g;