@progress/kendo-react-treeview 7.2.4-develop.3 → 7.2.4-develop.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/TreeView.js +8 -0
  2. package/TreeView.mjs +256 -0
  3. package/TreeViewDragAnalyzer.js +8 -0
  4. package/TreeViewDragAnalyzer.mjs +66 -0
  5. package/TreeViewDragClue.js +8 -0
  6. package/TreeViewDragClue.mjs +58 -0
  7. package/TreeViewItem.js +8 -0
  8. package/TreeViewItem.mjs +203 -0
  9. package/dist/cdn/js/kendo-react-treeview.js +8 -5
  10. package/handleTreeViewCheckChange.js +8 -0
  11. package/handleTreeViewCheckChange.mjs +63 -0
  12. package/index.d.mts +1141 -5
  13. package/index.d.ts +1141 -20
  14. package/index.js +8 -5
  15. package/index.mjs +29 -752
  16. package/moveTreeViewItem.js +8 -0
  17. package/moveTreeViewItem.mjs +48 -0
  18. package/package-metadata.js +8 -0
  19. package/package-metadata.mjs +19 -0
  20. package/package.json +3 -3
  21. package/processTreeViewItems.js +8 -0
  22. package/processTreeViewItems.mjs +84 -0
  23. package/utils/consts.js +8 -0
  24. package/utils/consts.mjs +21 -0
  25. package/utils/getItemIdUponKeyboardNavigation.js +8 -0
  26. package/utils/getItemIdUponKeyboardNavigation.mjs +57 -0
  27. package/ItemRenderProps.d.ts +0 -17
  28. package/TreeView.d.ts +0 -133
  29. package/TreeViewDragAnalyzer.d.ts +0 -139
  30. package/TreeViewDragClue.d.ts +0 -148
  31. package/TreeViewItem.d.ts +0 -106
  32. package/TreeViewOperationDescriptors.d.ts +0 -80
  33. package/TreeViewProps.d.ts +0 -149
  34. package/events.d.ts +0 -162
  35. package/handleTreeViewCheckChange.d.ts +0 -73
  36. package/moveTreeViewItem.d.ts +0 -113
  37. package/package-metadata.d.ts +0 -9
  38. package/processTreeViewItems.d.ts +0 -55
  39. package/utils/consts.d.ts +0 -44
  40. package/utils/getItemIdUponKeyboardNavigation.d.ts +0 -9
@@ -1,5 +1,8 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the package root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- (function(o,m){typeof exports=="object"&&typeof module!="undefined"?m(exports,require("react"),require("prop-types"),require("@progress/kendo-react-common"),require("@progress/kendo-svg-icons"),require("@progress/kendo-react-animation")):typeof define=="function"&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-common","@progress/kendo-svg-icons","@progress/kendo-react-animation"],m):(o=typeof globalThis!="undefined"?globalThis:o||self,m(o.KendoReactTreeview={},o.React,o.PropTypes,o.KendoReactCommon,o.KendoSvgIcons,o.KendoReactAnimation))})(this,function(o,m,p,s,b,z){"use strict";"use client";function B(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const c=B(m);function N(n,e,t,i,r){switch(i){case s.Keys.left:return l();case s.Keys.right:return d();case s.Keys.up:return a();case s.Keys.down:return I();case s.Keys.home:return s.treeIdUtils.ZERO_LEVEL_ZERO_NODE_ID;case s.Keys.end:return g();default:return e}function l(){return s.treeIdUtils.isIdZeroLevel(e)||r.expanded(n)&&s.isEnabledAndAllParentsEnabled(e,t,r)?e:s.treeIdUtils.getDirectParentId(e)}function d(){return s.isItemExpandedAndWithChildren(n,r)?s.treeIdUtils.getFirstChildId(e):e}function a(){const f=Number(s.treeIdUtils.getShortId(e)),h=s.treeIdUtils.getDirectParentId(e);return f?S(s.treeIdUtils.createId(f-1,h),t,r):s.treeIdUtils.isIdZeroLevel(e)?e:h}function I(){return s.isItemExpandedAndWithChildren(n,r)?s.treeIdUtils.getFirstChildId(e):C(e,t,r)||e}function g(){let f=(t.length-1).toString(),h=t[t.length-1],u;for(;s.isItemExpandedAndWithChildren(h,r);)u=h[r.getChildrenField()],f=s.treeIdUtils.createId(u.length-1,f),h=u[u.length-1];return f}}function C(n,e,t){const i=s.treeIdUtils.getDirectParentId(n),r=i?s.treeIdUtils.getItemById(i,e,t.getChildrenField()):void 0,l=r?r[t.getChildrenField()]:e,d=Number(s.treeIdUtils.getShortId(n));return d<l.length-1?s.treeIdUtils.createId(d+1,i):r?C(i,e,t):void 0}function S(n,e,t){const i=s.treeIdUtils.getItemById(n,e,t.getChildrenField());return s.isItemExpandedAndWithChildren(i,t)?S(s.treeIdUtils.createId(i[t.getChildrenField()].length-1,n),e,t):n}const U="expanded",G="text",H="disabled",E="items",W="hasChildren",O="selected",D="checked",_="checkIndeterminate",x="_kendoItemId",M="_kendoTreeViewGuid",{sizeMap:$}=s.kendoThemeMaps,V=c.createContext(n=>n);class A extends c.Component{constructor(){super(...arguments),this.onCheckChange=e=>{this.props.onCheckChange(e,this.item,this.itemId)},this.onExpandChange=e=>{this.props.onExpandChange(e,this.item,this.itemId)},this.onItemClick=e=>{this.props.onItemClick(e,this.item,this.itemId)},this.onPress=e=>{this.props.onPress(e.event,this.item,this.itemId)},this.onDrag=e=>{this.props.onDrag(e.event,this.item,this.itemId)},this.onRelease=e=>{this.props.onRelease(e.event,this.item,this.itemId)},this.onContextMenu=e=>{this.props.onContextMenu(e,this.item,this.itemId)},this.assignDraggableMeta=e=>{e&&(e[x]=this.props.itemId,e[M]=this.props.treeGuid)}}render(){const e=this.renderSubitemsIfApplicable(),t=this.renderItemInPart();return c.createElement("li",{className:s.classNames("k-treeview-item"),tabIndex:this.tabIndex,role:"treeitem","aria-expanded":this.ariaExpanded,"aria-selected":this.ariaSelected,"aria-checked":this.ariaChecked,"aria-disabled":this.disabled?!0:void 0,ref:i=>this.itemElement=i},c.createElement("div",{className:`k-treeview-${this.props.position}`,ref:this.assignDraggableMeta},this.renderExpandIcon(),this.renderCheckbox(),this.props.draggable?c.createElement(s.Draggable,{onPress:this.onPress,onDrag:this.onDrag,onRelease:this.onRelease},t):t),this.props.animate?c.createElement(z.Reveal,{transitionEnterDuration:200,transitionExitDuration:200,style:{display:"block"},children:e}):e)}componentDidMount(){const e=this.props.focusedItemId,t=this.itemId;e&&e===t&&this.props.onFocusDomElNeeded(this.itemElement),this.checkboxElement&&(this.checkboxElement.indeterminate=this.fieldsSvc.checkIndeterminate(this.item))}componentDidUpdate(e){const t=this.props.focusedItemId;if(t&&t!==e.focusedItemId&&t===this.itemId&&this.props.onFocusDomElNeeded(this.itemElement),this.checkboxElement){const i=this.fieldsSvc.checkIndeterminate(this.item);i!==e.fieldsService.checkIndeterminate(e.item)&&(this.checkboxElement.indeterminate=i)}}renderCheckbox(){if(this.props.checkboxes){const e=this.props.size;return c.createElement("div",{className:s.classNames("k-checkbox-wrap")},c.createElement("input",{type:"checkbox",className:s.classNames("k-checkbox k-rounded-md",{[`k-checkbox-${$[e]||e}`]:e,"k-disabled":this.disabled}),"aria-label":this.item.text,checked:!!this.fieldsSvc.checked(this.item),id:this.props.id,tabIndex:-1,onChange:this.onCheckChange,ref:t=>this.checkboxElement=t}),c.createElement("label",{className:"k-checkbox-label",htmlFor:this.props.id}))}else return}renderExpandIcon(){return this.props.expandIcons&&(this.fieldsSvc.hasChildren(this.item)||s.hasChildren(this.item,this.fieldsSvc.getChildrenField()))&&c.createElement("span",{className:s.classNames("k-treeview-toggle",{"k-disabled":this.disabled}),onClick:this.onExpandChange},c.createElement(s.IconWrap,{...this.getIconProps()}))}renderSubitemsIfApplicable(){const e=this.fieldsSvc.children(this.item);return s.isItemExpandedAndWithChildren(this.item,this.fieldsSvc)?c.createElement("ul",{className:"k-treeview-group",role:"group"},e.map((t,i)=>c.createElement(F,{item:t,position:i===0?"top":i===e.length-1?"bot":"mid",itemId:s.treeIdUtils.createId(i,this.itemId),treeGuid:this.props.treeGuid,animate:this.props.animate,focusedItemId:this.props.focusedItemId,tabbableItemId:this.props.tabbableItemId,fieldsService:this.props.fieldsService,itemUI:this.props.itemUI,checkboxes:this.props.checkboxes,ariaMultiSelectable:this.props.ariaMultiSelectable,onItemClick:this.props.onItemClick,onFocusDomElNeeded:this.props.onFocusDomElNeeded,draggable:this.props.draggable,onPress:this.props.onPress,onDrag:this.props.onDrag,onRelease:this.props.onRelease,expandIcons:this.props.expandIcons,onExpandChange:this.props.onExpandChange,onCheckChange:this.props.onCheckChange,onContextMenu:this.props.onContextMenu,key:i,size:this.props.size,disabled:this.disabled,isRtl:this.props.isRtl}))):void 0}renderItemInPart(){return c.createElement("span",{className:s.classNames("k-treeview-leaf",{"k-focus":this.props.focusedItemId===this.itemId,"k-selected":this.fieldsSvc.selected(this.item),"k-disabled":this.disabled}),style:{touchAction:"none"},onClick:this.onItemClick,onContextMenu:this.onContextMenu},c.createElement("span",{className:"k-treeview-leaf-text"},this.props.itemUI?c.createElement(this.props.itemUI,{item:this.item,itemHierarchicalIndex:this.itemId}):this.fieldsSvc.text(this.item)))}get fieldsSvc(){return this.props.fieldsService}get itemId(){return this.props.itemId}get item(){return this.props.item}get tabIndex(){return(this.props.focusedItemId||this.props.tabbableItemId)===this.itemId?0:-1}get ariaExpanded(){return this.fieldsSvc.hasChildren(this.item)||s.hasChildren(this.item,this.fieldsSvc.getChildrenField())?!!this.fieldsSvc.expanded(this.item):void 0}get disabled(){return this.props.disabled||this.fieldsSvc.disabled(this.item)}get ariaChecked(){if(this.props.checkboxes)return this.fieldsSvc.checked(this.item)?"true":this.fieldsSvc.checkIndeterminate(this.item)?"mixed":"false"}get ariaSelected(){return this.fieldsSvc.selected(this.item)?!0:this.props.ariaMultiSelectable?this.disabled?void 0:!1:void 0}getIconProps(){const e=this.fieldsSvc.expanded(this.item);return e&&!s.hasChildren(this.item,this.fieldsSvc.getChildrenField())?{name:"loading"}:e?{name:"caret-alt-down",icon:b.caretAltDownIcon}:{name:this.props.isRtl?"caret-alt-left":"caret-alt-right",icon:this.props.isRtl?b.caretAltLeftIcon:b.caretAltRightIcon}}}A.defaultProps={position:"top"};const F=s.withIdHOC(c.forwardRef((n,e)=>{const i=c.useContext(V).call(void 0,n);return c.createElement(A,{ref:e,...i})}));F.displayName="TreeViewItem";const j={name:"@progress/kendo-react-treeview",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:0,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},{sizeMap:q}=s.kendoThemeMaps;let v=class extends c.Component{constructor(e){super(e),this.state={focusedItemId:void 0,focusedItemPublicId:void 0,tabbableItemId:s.treeIdUtils.ZERO_LEVEL_ZERO_NODE_ID},this.fieldsSvc=null,this.allowExplicitFocus=!1,this._element=null,this.onFocusDomElNeeded=t=>{this.allowExplicitFocus&&this.focusDomItem(t)},this.onCheckChange=(t,i,r)=>{this.setFocus(r),this.dispatchCheckChange(t,i,r)},this.onExpandChange=(t,i,r)=>{this.setFocus(r),this.dispatchExpandChange(t,i,r)},this.onPress=(t,i,r)=>{this.props.onItemDragStart&&this.props.onItemDragStart.call(void 0,{target:this,item:i,itemHierarchicalIndex:r})},this.onDrag=(t,i,r)=>{const{pageX:l,pageY:d,clientX:a,clientY:I}=t;this.props.onItemDragOver&&this.props.onItemDragOver.call(void 0,{target:this,item:i,itemHierarchicalIndex:r,pageX:l,pageY:d,clientX:a,clientY:I})},this.onRelease=(t,i,r)=>{const{pageX:l,pageY:d,clientX:a,clientY:I}=t;this.props.onItemDragEnd&&this.props.onItemDragEnd.call(void 0,{target:this,item:i,itemHierarchicalIndex:r,pageX:l,pageY:d,clientX:a,clientY:I})},this.onItemClick=(t,i,r)=>{this.setFocus(r),this.dispatchItemClick(t,i,r)},this.onFocus=()=>{clearTimeout(this.blurRequest),this.state.focusedItemId===void 0&&this.data.length&&this.setFocus(this.state.tabbableItemId)},this.onBlur=()=>{clearTimeout(this.blurRequest),this.blurRequest=window.setTimeout(()=>this.setFocus(void 0),0)},this.onKeyDown=t=>{const i=this.getFocusedItem();if(i&&this.fieldsSvc){const r=N(i,this.state.focusedItemId,this.data,t.keyCode,this.fieldsSvc);r!==this.state.focusedItemId&&(t.preventDefault(),this.allowExplicitFocus=!0,this.setFocus(r)),this.dispatchEventsOnKeyDown(t,i)}},this.onContextMenu=(t,i,r)=>{if(this.props.onContextMenu){const l={target:this,syntheticEvent:t,nativeEvent:t.nativeEvent,item:i,itemID:r};this.props.onContextMenu.call(void 0,l)}},s.validatePackage(j)}get treeGuid(){return this.props.id+"-accessibility-id"}get element(){return this._element}render(){this.fieldsSvc=new s.TreeFieldsService(this.props);const{size:e,className:t}=this.props;return c.createElement("div",{id:this.props.id,style:this.props.style?this.props.style:void 0,className:s.classNames("k-treeview",{[`k-treeview-${q[e]||e}`]:e,["k-user-select-none"]:this.props.draggable,["k-rtl"]:this.props.dir==="rtl"},t),onKeyDown:this.onKeyDown,onFocus:this.onFocus,onBlur:this.onBlur,role:"tree","aria-multiselectable":this.ariaMultiSelectable?!0:void 0,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],ref:i=>this._element=i,tabIndex:this.props.tabIndex},c.createElement("ul",{className:"k-treeview-lines k-treeview-group",role:"group"},this.data.map((i,r)=>c.createElement(F,{id:this.props.id+"-item-"+r,item:i,position:r===0?"top":r===this.data.length-1?"bot":"mid",itemId:r.toString(),treeGuid:this.treeGuid,animate:this.props.animate,focusedItemId:this.state.focusedItemId,tabbableItemId:this.state.tabbableItemId,fieldsService:this.fieldsSvc,itemUI:this.props.item,checkboxes:this.props.checkboxes,ariaMultiSelectable:this.ariaMultiSelectable,onItemClick:this.onItemClick,onFocusDomElNeeded:this.onFocusDomElNeeded,draggable:this.props.draggable,onPress:this.onPress,onDrag:this.onDrag,onRelease:this.onRelease,expandIcons:this.props.expandIcons,onExpandChange:this.onExpandChange,onCheckChange:this.onCheckChange,onContextMenu:this.onContextMenu,key:r,size:e,isRtl:this.props.dir==="rtl"}))))}componentDidUpdate(){this.allowExplicitFocus=!1,this.refocusDueToFocusIdField()}dispatchEventsOnKeyDown(e,t){if(this.fieldsSvc===null)return;const i=()=>this.fieldsSvc&&s.isEnabledAndAllParentsEnabled(this.state.focusedItemId,this.data,this.fieldsSvc);e.keyCode===s.Keys.left&&this.fieldsSvc.expanded(t)&&i()?this.dispatchExpandChange(e,t,this.state.focusedItemId):e.keyCode===s.Keys.right&&!this.fieldsSvc.expanded(t)&&(this.fieldsSvc.hasChildren(t)||s.hasChildren(t,this.props.childrenField))&&i()?this.dispatchExpandChange(e,t,this.state.focusedItemId):e.keyCode===s.Keys.enter&&i()?this.dispatchItemClick(e,t,this.state.focusedItemId):e.keyCode===s.Keys.space&&i()&&(e.preventDefault(),this.dispatchCheckChange(e,t,this.state.focusedItemId))}setFocus(e){if(e&&this.fieldsSvc)if(this.fieldsSvc.focusIdField){const t=this.getItemById(e);this.setState({focusedItemId:e,focusedItemPublicId:this.fieldsSvc.focusId(t)})}else this.setState({focusedItemId:e});else this.setState(t=>({focusedItemId:void 0,focusedItemPublicId:void 0,tabbableItemId:t.focusedItemId}))}getFocusedItem(){return this.state.focusedItemId?this.getItemById(this.state.focusedItemId):void 0}getItemById(e){return s.treeIdUtils.getItemById(e,this.data,this.props.childrenField||E)}dispatchCheckChange(e,t,i){s.dispatchEvent(this.props.onCheckChange,e,this,{item:t,itemHierarchicalIndex:i})}dispatchExpandChange(e,t,i){s.dispatchEvent(this.props.onExpandChange,e,this,{item:t,itemHierarchicalIndex:i})}dispatchItemClick(e,t,i){s.dispatchEvent(this.props.onItemClick,e,this,{item:t,itemHierarchicalIndex:i})}refocusDueToFocusIdField(){if(this.fieldsSvc&&this.fieldsSvc.focusIdField){const e=this.state.focusedItemPublicId;if(e){const t=this.props.getFocusHierarchicalIndex?this.props.getFocusHierarchicalIndex(e):s.resolveItemId(e,this.fieldsSvc.focusIdField,this.data,this.props.childrenField);t!==this.state.focusedItemId&&(this.allowExplicitFocus=!0,this.setState({focusedItemId:t}))}}}get ariaMultiSelectable(){return this.props["aria-multiselectable"]===!0||this.props["aria-multiselectable"]==="true"}get data(){return this.props.data||[]}focusDomItem(e){e.focus()}get guid(){return this.treeGuid}};v.propTypes={data:p.arrayOf(p.any),animate:p.bool,tabIndex:p.number,focusIdField:p.string,getHierarchicalIndexById:p.func,onExpandChange:p.func,onItemClick:p.func,expandField:p.string,selectField:p.string,childrenField:p.string,hasChildrenField:p.string,textField:p.string,disableField:p.string,item:p.any,"aria-multiselectable":(n,e,t)=>n[e]!==void 0&&n[e]!==!0&&n[e]!==!1&&n[e]!=="true"&&n[e]!=="false"?new Error("Invalid prop `"+e+"` supplied to `"+t+"`. Validation failed."):null,"aria-label":p.string,"aria-labelledby":p.string,size:p.oneOf([null,"small","medium","large"]),dir:p.string},v.defaultProps={animate:!0,expandField:U,selectField:O,hasChildrenField:W,childrenField:E,textField:G,disableField:H,checkField:D,checkIndeterminateField:_,size:"medium"};function Y(n,e){if(!n||!n.length)return[];let t=n;const i=e.cloneField||"cloned",r=e.expandField||U,l=e.selectField||O,d=e.checkField||D,a=e.childrenField||E;return t=w(t,r,e.expand,i,a),t=w(t,l,e.select,i,a),t=w(t,d,e.check,i,a),Z(t,a,e.check),t}function w(n,e,t,i,r){if(t){let{ids:l,field:d}=T(t,e),a=!s.isArray(t)&&t.idField?s.resolveItemsIds(l,t.idField,n,r):l;return X(n,a,d,i,r)}else return n}function T(n,e){let t,i;return s.isArray(n)?(t=n,i=e):(t=n.ids||[],i=n.operationField||e),{ids:t,field:i}}function X(n,e,t,i,r){let l=n;return e.forEach(d=>{l=s.updateItem(l,d,a=>K(t,a),i,r)}),l}function K(n,e){const t=(n||"").split(".");let i=e;for(let r=0;r<t.length;r++){const l=t[r];if(r===t.length-1)i[l]=!0;else if(i[l]!==void 0)i[l]={...i[l]},i=i[l];else return}}function Z(n,e,t){if(t&&!s.isArray(t)&&t.applyCheckIndeterminate){const{field:i}=T(t,D),r=t.checkIndeterminateField||_;for(let l=0;l<n.length;l++){const d=n[l],a=d[e];a&&y(a,s.getNestedValue(i,d)?[]:[d],e,i,r)}}}function y(n,e,t,i,r){let l=!1;for(let d=0;d<n.length;d++){const a=n[d];if(s.getNestedValue(i,a)){if(!l)for(let I=0;I<e.length;I++)K(r,e[I]);l=!0,a[t]&&y(a[t],[],t,i,r)}else a[t]&&y(a[t],l?[a]:e.concat([a]),t,i,r)}}function Q(n,e,t,i,r,l){const d=l||E;if(!f())return I();const a=s.treeIdUtils.getItemById(n,e,d);if(!a)return I();if(!r||r===e){if(!g())return I();const h=s.removeItem(n,d,e),u=s.addItem(a,t,d,s.treeIdUtils.getDecrementedItemIdAfterRemoval(n,i),h);return r?{sourceData:u,targetData:u}:u}else{const h=s.removeItem(n,d,e),u=s.addItem(a,t,d,i,r);return{sourceData:h,targetData:u}}function I(){return r?{sourceData:e,targetData:r}:e}function g(){return!`${i}_`.startsWith(`${n}_`)}function f(){if(!e||!e.length||!n||!i||r&&!r.length)return!1;const h=!r||r===e?e:r;return!!s.treeIdUtils.getItemById(i,h,d)}}function J(n,e,t,i={},r){if(!t||!t.length)return[];const{ids:l,idField:d}=R(e),a=d?s.getNestedValue(d,n.item):n.itemHierarchicalIndex,I=l.indexOf(a),g=I===-1,f=r||E;let h;return i.singleMode?h=g?[a]:[]:(h=l.slice(),g?h.push(a):h.splice(I,1),i.checkChildren&&ee(n.item,n.itemHierarchicalIndex,g,d,f,h),i.checkParents&&te(n.itemHierarchicalIndex,g,d,f,h,t)),s.isArray(e)?h:Object.assign({},e,{ids:h})}function R(n){let e,t;return s.isArray(n)?e=n:(e=n.ids||[],t=n.idField),{ids:e,idField:t}}function ee(n,e,t,i,r,l){s.getAllDirectIndirectChildrenIds(n,e,r,i).forEach(d=>{t&&l.indexOf(d)===-1?l.push(d):!t&&l.indexOf(d)>-1&&l.splice(l.indexOf(d),1)})}function te(n,e,t,i,r,l){const d=f();let a=d.next();e?I():g();function I(){for(;!a.done;){const{id:h,item:u}=a.value;if(r.indexOf(h)===-1&&s.areAllDirectChildrenChecked(u,h,t,i,r))r.push(h),a=d.next();else break}}function g(){for(;!a.done;){const{id:h}=a.value,u=r.indexOf(h);if(u>-1)r.splice(u,1),a=d.next();else break}}function*f(){if(t){const h=s.getAllParents(n,i,l);for(let u=h.length-1;u>-1;u--)yield{id:s.getNestedValue(t,h[u]),item:e?h[u]:void 0}}else{let h=s.treeIdUtils.getDirectParentId(n);for(;h;)yield{id:h,item:e?s.treeIdUtils.getItemById(h,l,i):void 0},h=s.treeIdUtils.getDirectParentId(h)}}}class k extends c.PureComponent{constructor(){super(...arguments),this.state={visible:!1,top:0,left:0,text:"",operationClassName:"cancel"}}render(){const e={top:this.state.top+"px",left:this.state.left+"px"};return this.state.visible&&c.createElement("div",{className:"k-header k-drag-clue",style:{...this.props.style,...e}},c.createElement(s.IconWrap,{className:s.classNames("k-drag-status"),name:this.state.operationClassName&&s.toIconName(this.state.operationClassName),icon:this.state.operationClassName==="k-i-plus"?b.plusIcon:this.state.operationClassName==="k-i-insert-up"?b.insertTopIcon:this.state.operationClassName==="k-i-insert-down"?b.insertBottomIcon:this.state.operationClassName==="k-i-insert-middle"?b.insertMiddleIcon:b.cancelIcon}),this.state.text)}show(e,t,i,r){this.setState({visible:!0,top:e,left:t,text:i,operationClassName:r})}hide(){this.setState({visible:!1})}}k.defaultProps={style:{display:"block",position:"absolute",zIndex:2e4,padding:"4px 6px"}};const P=6;class ie{constructor(e){this.event=e,this.initialized=!1,this.destItemId="",this.destTreeViewGuid="",this.itemId=e.itemHierarchicalIndex,this.treeViewGuid=e.target.guid}init(){return this.initialized||(this.setDestimationMeta(document.elementFromPoint(this.event.clientX,this.event.clientY)),this.initialized=!0),this}get isDropAllowed(){return this.initialized&&this.destItemId&&this.destTreeViewGuid?!`${this.destTreeViewGuid}_${this.destItemId}_`.startsWith(`${this.treeViewGuid}_${this.itemId}_`):!1}get destinationMeta(){return{itemHierarchicalIndex:this.destItemId,treeViewGuid:this.destTreeViewGuid}}getDropOperation(){if(this.initialized&&this.isDropAllowed){const{top:e,height:t}=this.destDomNodeWithMeta.getBoundingClientRect();return e+t-this.event.clientY<P?"after":this.event.clientY-e<P?"before":"child"}else return}setDestimationMeta(e){let t=e;for(;t&&!t[x];)t=t.parentNode;t&&t[x]&&(this.destDomNodeWithMeta=t,this.destItemId=t[x],this.destTreeViewGuid=t[M])}}const L=s.withIdHOC(v);L.displayName="KendoReactTreeView",Object.defineProperty(o,"FieldsService",{enumerable:!0,get:()=>s.TreeFieldsService}),o.TreeView=L,o.TreeViewClassComponent=v,o.TreeViewDragAnalyzer=ie,o.TreeViewDragClue=k,o.TreeViewItemPropsContext=V,o.getItemIdUponKeyboardNavigation=N,o.handleTreeViewCheckChange=J,o.moveTreeViewItem=Q,o.processTreeViewItems=Y,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types"),require("@progress/kendo-react-common"),require("@progress/kendo-svg-icons"),require("@progress/kendo-react-animation")):"function"==typeof define&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-common","@progress/kendo-svg-icons","@progress/kendo-react-animation"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoReactTreeview={},e.React,e.PropTypes,e.KendoReactCommon,e.KendoSvgIcons,e.KendoReactAnimation)}(this,(function(e,t,i,s,n,r){"use strict";function d(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(i){if("default"!==i){var s=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:function(){return e[i]}})}})),t.default=e,Object.freeze(t)}var a=d(t);function o(e,t,i,n,r){switch(n){case s.Keys.left:return s.treeIdUtils.isIdZeroLevel(t)||r.expanded(e)&&s.isEnabledAndAllParentsEnabled(t,i,r)?t:s.treeIdUtils.getDirectParentId(t);case s.Keys.right:return s.isItemExpandedAndWithChildren(e,r)?s.treeIdUtils.getFirstChildId(t):t;case s.Keys.up:return function(){const e=Number(s.treeIdUtils.getShortId(t)),n=s.treeIdUtils.getDirectParentId(t);return e?c(s.treeIdUtils.createId(e-1,n),i,r):s.treeIdUtils.isIdZeroLevel(t)?t:n}();case s.Keys.down:return s.isItemExpandedAndWithChildren(e,r)?s.treeIdUtils.getFirstChildId(t):l(t,i,r)||t;case s.Keys.home:return s.treeIdUtils.ZERO_LEVEL_ZERO_NODE_ID;case s.Keys.end:return function(){let e,t=(i.length-1).toString(),n=i[i.length-1];for(;s.isItemExpandedAndWithChildren(n,r);)e=n[r.getChildrenField()],t=s.treeIdUtils.createId(e.length-1,t),n=e[e.length-1];return t}();default:return t}}function l(e,t,i){const n=s.treeIdUtils.getDirectParentId(e),r=n?s.treeIdUtils.getItemById(n,t,i.getChildrenField()):void 0,d=r?r[i.getChildrenField()]:t,a=Number(s.treeIdUtils.getShortId(e));return a<d.length-1?s.treeIdUtils.createId(a+1,n):r?l(n,t,i):void 0}function c(e,t,i){const n=s.treeIdUtils.getItemById(e,t,i.getChildrenField());return s.isItemExpandedAndWithChildren(n,i)?c(s.treeIdUtils.createId(n[i.getChildrenField()].length-1,e),t,i):e}const h="expanded",p="items",m="selected",u="checked",I="checkIndeterminate",f="_kendoItemId",g="_kendoTreeViewGuid",{sizeMap:b}=s.kendoThemeMaps,v=a.createContext((e=>e)),C=class extends a.Component{constructor(){super(...arguments),this.onCheckChange=e=>{this.props.onCheckChange(e,this.item,this.itemId)},this.onExpandChange=e=>{this.props.onExpandChange(e,this.item,this.itemId)},this.onItemClick=e=>{this.props.onItemClick(e,this.item,this.itemId)},this.onPress=e=>{this.props.onPress(e.event,this.item,this.itemId)},this.onDrag=e=>{this.props.onDrag(e.event,this.item,this.itemId)},this.onRelease=e=>{this.props.onRelease(e.event,this.item,this.itemId)},this.onContextMenu=e=>{this.props.onContextMenu(e,this.item,this.itemId)},this.assignDraggableMeta=e=>{e&&(e[f]=this.props.itemId,e[g]=this.props.treeGuid)}}render(){const e=this.renderSubitemsIfApplicable(),t=this.renderItemInPart();return a.createElement("li",{className:s.classNames("k-treeview-item"),tabIndex:this.tabIndex,role:"treeitem","aria-expanded":this.ariaExpanded,"aria-selected":this.ariaSelected,"aria-checked":this.ariaChecked,"aria-disabled":!!this.disabled||void 0,ref:e=>this.itemElement=e},a.createElement("div",{className:`k-treeview-${this.props.position}`,ref:this.assignDraggableMeta},this.renderExpandIcon(),this.renderCheckbox(),this.props.draggable?a.createElement(s.Draggable,{onPress:this.onPress,onDrag:this.onDrag,onRelease:this.onRelease},t):t),this.props.animate?a.createElement(r.Reveal,{transitionEnterDuration:200,transitionExitDuration:200,style:{display:"block"},children:e}):e)}componentDidMount(){const e=this.props.focusedItemId,t=this.itemId;e&&e===t&&this.props.onFocusDomElNeeded(this.itemElement),this.checkboxElement&&(this.checkboxElement.indeterminate=this.fieldsSvc.checkIndeterminate(this.item))}componentDidUpdate(e){const t=this.props.focusedItemId;if(t&&t!==e.focusedItemId&&t===this.itemId&&this.props.onFocusDomElNeeded(this.itemElement),this.checkboxElement){const t=this.fieldsSvc.checkIndeterminate(this.item);t!==e.fieldsService.checkIndeterminate(e.item)&&(this.checkboxElement.indeterminate=t)}}renderCheckbox(){if(this.props.checkboxes){const e=this.props.size;return a.createElement("div",{className:s.classNames("k-checkbox-wrap")},a.createElement("input",{type:"checkbox",className:s.classNames("k-checkbox k-rounded-md",{[`k-checkbox-${b[e]||e}`]:e,"k-disabled":this.disabled}),"aria-label":this.item.text,checked:!!this.fieldsSvc.checked(this.item),id:this.props.id,tabIndex:-1,onChange:this.onCheckChange,ref:e=>this.checkboxElement=e}),a.createElement("label",{className:"k-checkbox-label",htmlFor:this.props.id}))}}renderExpandIcon(){return this.props.expandIcons&&(this.fieldsSvc.hasChildren(this.item)||s.hasChildren(this.item,this.fieldsSvc.getChildrenField()))&&a.createElement("span",{className:s.classNames("k-treeview-toggle",{"k-disabled":this.disabled}),onClick:this.onExpandChange},a.createElement(s.IconWrap,{...this.getIconProps()}))}renderSubitemsIfApplicable(){const e=this.fieldsSvc.children(this.item);return s.isItemExpandedAndWithChildren(this.item,this.fieldsSvc)?a.createElement("ul",{className:"k-treeview-group",role:"group"},e.map(((t,i)=>a.createElement(k,{item:t,position:0===i?"top":i===e.length-1?"bot":"mid",itemId:s.treeIdUtils.createId(i,this.itemId),treeGuid:this.props.treeGuid,animate:this.props.animate,focusedItemId:this.props.focusedItemId,tabbableItemId:this.props.tabbableItemId,fieldsService:this.props.fieldsService,itemUI:this.props.itemUI,checkboxes:this.props.checkboxes,ariaMultiSelectable:this.props.ariaMultiSelectable,onItemClick:this.props.onItemClick,onFocusDomElNeeded:this.props.onFocusDomElNeeded,draggable:this.props.draggable,onPress:this.props.onPress,onDrag:this.props.onDrag,onRelease:this.props.onRelease,expandIcons:this.props.expandIcons,onExpandChange:this.props.onExpandChange,onCheckChange:this.props.onCheckChange,onContextMenu:this.props.onContextMenu,key:i,size:this.props.size,disabled:this.disabled,isRtl:this.props.isRtl})))):void 0}renderItemInPart(){return a.createElement("span",{className:s.classNames("k-treeview-leaf",{"k-focus":this.props.focusedItemId===this.itemId,"k-selected":this.fieldsSvc.selected(this.item),"k-disabled":this.disabled}),style:{touchAction:"none"},onClick:this.onItemClick,onContextMenu:this.onContextMenu},a.createElement("span",{className:"k-treeview-leaf-text"},this.props.itemUI?a.createElement(this.props.itemUI,{item:this.item,itemHierarchicalIndex:this.itemId}):this.fieldsSvc.text(this.item)))}get fieldsSvc(){return this.props.fieldsService}get itemId(){return this.props.itemId}get item(){return this.props.item}get tabIndex(){return(this.props.focusedItemId||this.props.tabbableItemId)===this.itemId?0:-1}get ariaExpanded(){return this.fieldsSvc.hasChildren(this.item)||s.hasChildren(this.item,this.fieldsSvc.getChildrenField())?!!this.fieldsSvc.expanded(this.item):void 0}get disabled(){return this.props.disabled||this.fieldsSvc.disabled(this.item)}get ariaChecked(){if(this.props.checkboxes)return this.fieldsSvc.checked(this.item)?"true":this.fieldsSvc.checkIndeterminate(this.item)?"mixed":"false"}get ariaSelected(){return!!this.fieldsSvc.selected(this.item)||(this.props.ariaMultiSelectable?!!this.disabled&&void 0:void 0)}getIconProps(){const e=this.fieldsSvc.expanded(this.item);return e&&!s.hasChildren(this.item,this.fieldsSvc.getChildrenField())?{name:"loading"}:e?{name:"caret-alt-down",icon:n.caretAltDownIcon}:{name:this.props.isRtl?"caret-alt-left":"caret-alt-right",icon:this.props.isRtl?n.caretAltLeftIcon:n.caretAltRightIcon}}};C.defaultProps={position:"top"};let x=C;const k=s.withIdHOC(a.forwardRef(((e,t)=>{const i=a.useContext(v).call(void 0,e);return a.createElement(x,{ref:t,...i})})));k.displayName="TreeViewItem";const E={name:"@progress/kendo-react-treeview",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:0,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},{sizeMap:F}=s.kendoThemeMaps,y=class extends a.Component{constructor(e){super(e),this.state={focusedItemId:void 0,focusedItemPublicId:void 0,tabbableItemId:s.treeIdUtils.ZERO_LEVEL_ZERO_NODE_ID},this.fieldsSvc=null,this.allowExplicitFocus=!1,this._element=null,this.onFocusDomElNeeded=e=>{this.allowExplicitFocus&&this.focusDomItem(e)},this.onCheckChange=(e,t,i)=>{this.setFocus(i),this.dispatchCheckChange(e,t,i)},this.onExpandChange=(e,t,i)=>{this.setFocus(i),this.dispatchExpandChange(e,t,i)},this.onPress=(e,t,i)=>{this.props.onItemDragStart&&this.props.onItemDragStart.call(void 0,{target:this,item:t,itemHierarchicalIndex:i})},this.onDrag=(e,t,i)=>{const{pageX:s,pageY:n,clientX:r,clientY:d}=e;this.props.onItemDragOver&&this.props.onItemDragOver.call(void 0,{target:this,item:t,itemHierarchicalIndex:i,pageX:s,pageY:n,clientX:r,clientY:d})},this.onRelease=(e,t,i)=>{const{pageX:s,pageY:n,clientX:r,clientY:d}=e;this.props.onItemDragEnd&&this.props.onItemDragEnd.call(void 0,{target:this,item:t,itemHierarchicalIndex:i,pageX:s,pageY:n,clientX:r,clientY:d})},this.onItemClick=(e,t,i)=>{this.setFocus(i),this.dispatchItemClick(e,t,i)},this.onFocus=()=>{clearTimeout(this.blurRequest),void 0===this.state.focusedItemId&&this.data.length&&this.setFocus(this.state.tabbableItemId)},this.onBlur=()=>{clearTimeout(this.blurRequest),this.blurRequest=window.setTimeout((()=>this.setFocus(void 0)),0)},this.onKeyDown=e=>{const t=this.getFocusedItem();if(t&&this.fieldsSvc){const i=o(t,this.state.focusedItemId,this.data,e.keyCode,this.fieldsSvc);i!==this.state.focusedItemId&&(e.preventDefault(),this.allowExplicitFocus=!0,this.setFocus(i)),this.dispatchEventsOnKeyDown(e,t)}},this.onContextMenu=(e,t,i)=>{if(this.props.onContextMenu){const s={target:this,syntheticEvent:e,nativeEvent:e.nativeEvent,item:t,itemID:i};this.props.onContextMenu.call(void 0,s)}},s.validatePackage(E)}get treeGuid(){return this.props.id+"-accessibility-id"}get element(){return this._element}render(){this.fieldsSvc=new s.TreeFieldsService(this.props);const{size:e,className:t}=this.props;return a.createElement("div",{id:this.props.id,style:this.props.style?this.props.style:void 0,className:s.classNames("k-treeview",{[`k-treeview-${F[e]||e}`]:e,"k-user-select-none":this.props.draggable,"k-rtl":"rtl"===this.props.dir},t),onKeyDown:this.onKeyDown,onFocus:this.onFocus,onBlur:this.onBlur,role:"tree","aria-multiselectable":!!this.ariaMultiSelectable||void 0,"aria-label":this.props["aria-label"],"aria-labelledby":this.props["aria-labelledby"],ref:e=>this._element=e,tabIndex:this.props.tabIndex},a.createElement("ul",{className:"k-treeview-lines k-treeview-group",role:"group"},this.data.map(((t,i)=>a.createElement(k,{id:this.props.id+"-item-"+i,item:t,position:0===i?"top":i===this.data.length-1?"bot":"mid",itemId:i.toString(),treeGuid:this.treeGuid,animate:this.props.animate,focusedItemId:this.state.focusedItemId,tabbableItemId:this.state.tabbableItemId,fieldsService:this.fieldsSvc,itemUI:this.props.item,checkboxes:this.props.checkboxes,ariaMultiSelectable:this.ariaMultiSelectable,onItemClick:this.onItemClick,onFocusDomElNeeded:this.onFocusDomElNeeded,draggable:this.props.draggable,onPress:this.onPress,onDrag:this.onDrag,onRelease:this.onRelease,expandIcons:this.props.expandIcons,onExpandChange:this.onExpandChange,onCheckChange:this.onCheckChange,onContextMenu:this.onContextMenu,key:i,size:e,isRtl:"rtl"===this.props.dir})))))}componentDidUpdate(){this.allowExplicitFocus=!1,this.refocusDueToFocusIdField()}dispatchEventsOnKeyDown(e,t){if(null===this.fieldsSvc)return;const i=()=>this.fieldsSvc&&s.isEnabledAndAllParentsEnabled(this.state.focusedItemId,this.data,this.fieldsSvc);e.keyCode===s.Keys.left&&this.fieldsSvc.expanded(t)&&i()||e.keyCode===s.Keys.right&&!this.fieldsSvc.expanded(t)&&(this.fieldsSvc.hasChildren(t)||s.hasChildren(t,this.props.childrenField))&&i()?this.dispatchExpandChange(e,t,this.state.focusedItemId):e.keyCode===s.Keys.enter&&i()?this.dispatchItemClick(e,t,this.state.focusedItemId):e.keyCode===s.Keys.space&&i()&&(e.preventDefault(),this.dispatchCheckChange(e,t,this.state.focusedItemId))}setFocus(e){if(e&&this.fieldsSvc)if(this.fieldsSvc.focusIdField){const t=this.getItemById(e);this.setState({focusedItemId:e,focusedItemPublicId:this.fieldsSvc.focusId(t)})}else this.setState({focusedItemId:e});else this.setState((e=>({focusedItemId:void 0,focusedItemPublicId:void 0,tabbableItemId:e.focusedItemId})))}getFocusedItem(){return this.state.focusedItemId?this.getItemById(this.state.focusedItemId):void 0}getItemById(e){return s.treeIdUtils.getItemById(e,this.data,this.props.childrenField||p)}dispatchCheckChange(e,t,i){s.dispatchEvent(this.props.onCheckChange,e,this,{item:t,itemHierarchicalIndex:i})}dispatchExpandChange(e,t,i){s.dispatchEvent(this.props.onExpandChange,e,this,{item:t,itemHierarchicalIndex:i})}dispatchItemClick(e,t,i){s.dispatchEvent(this.props.onItemClick,e,this,{item:t,itemHierarchicalIndex:i})}refocusDueToFocusIdField(){if(this.fieldsSvc&&this.fieldsSvc.focusIdField){const e=this.state.focusedItemPublicId;if(e){const t=this.props.getFocusHierarchicalIndex?this.props.getFocusHierarchicalIndex(e):s.resolveItemId(e,this.fieldsSvc.focusIdField,this.data,this.props.childrenField);t!==this.state.focusedItemId&&(this.allowExplicitFocus=!0,this.setState({focusedItemId:t}))}}}get ariaMultiSelectable(){return!0===this.props["aria-multiselectable"]||"true"===this.props["aria-multiselectable"]}get data(){return this.props.data||[]}focusDomItem(e){e.focus()}get guid(){return this.treeGuid}};y.propTypes={data:i.arrayOf(i.any),animate:i.bool,tabIndex:i.number,focusIdField:i.string,getHierarchicalIndexById:i.func,onExpandChange:i.func,onItemClick:i.func,expandField:i.string,selectField:i.string,childrenField:i.string,hasChildrenField:i.string,textField:i.string,disableField:i.string,item:i.any,"aria-multiselectable":(e,t,i)=>void 0!==e[t]&&!0!==e[t]&&!1!==e[t]&&"true"!==e[t]&&"false"!==e[t]?new Error("Invalid prop `"+t+"` supplied to `"+i+"`. Validation failed."):null,"aria-label":i.string,"aria-labelledby":i.string,size:i.oneOf([null,"small","medium","large"]),dir:i.string},y.defaultProps={animate:!0,expandField:h,selectField:m,hasChildrenField:"hasChildren",childrenField:p,textField:"text",disableField:"disabled",checkField:u,checkIndeterminateField:I,size:"medium"};let D=y;function S(e,t,i,n,r){if(i){let{ids:d,field:a}=w(i,t);return function(e,t,i,n,r){let d=e;return t.forEach((e=>{d=s.updateItem(d,e,(e=>N(i,e)),n,r)})),d}(e,!s.isArray(i)&&i.idField?s.resolveItemsIds(d,i.idField,e,r):d,a,n,r)}return e}function w(e,t){let i,n;return s.isArray(e)?(i=e,n=t):(i=e.ids||[],n=e.operationField||t),{ids:i,field:n}}function N(e,t){const i=(e||"").split(".");let s=t;for(let e=0;e<i.length;e++){const t=i[e];if(e===i.length-1)s[t]=!0;else{if(void 0===s[t])return;s[t]={...s[t]},s=s[t]}}}function P(e,t,i){if(i&&!s.isArray(i)&&i.applyCheckIndeterminate){const{field:n}=w(i,u),r=i.checkIndeterminateField||I;for(let i=0;i<e.length;i++){const d=e[i],a=d[t];a&&U(a,s.getNestedValue(n,d)?[]:[d],t,n,r)}}}function U(e,t,i,n,r){let d=!1;for(let a=0;a<e.length;a++){const o=e[a];if(s.getNestedValue(n,o)){if(!d)for(let e=0;e<t.length;e++)N(r,t[e]);d=!0,o[i]&&U(o[i],[],i,n,r)}else o[i]&&U(o[i],d?[o]:t.concat([o]),i,n,r)}}const M=class extends a.PureComponent{constructor(){super(...arguments),this.state={visible:!1,top:0,left:0,text:"",operationClassName:"cancel"}}render(){const e={top:this.state.top+"px",left:this.state.left+"px"};return this.state.visible&&a.createElement("div",{className:"k-header k-drag-clue",style:{...this.props.style,...e}},a.createElement(s.IconWrap,{className:s.classNames("k-drag-status"),name:this.state.operationClassName&&s.toIconName(this.state.operationClassName),icon:"k-i-plus"===this.state.operationClassName?n.plusIcon:"k-i-insert-up"===this.state.operationClassName?n.insertTopIcon:"k-i-insert-down"===this.state.operationClassName?n.insertBottomIcon:"k-i-insert-middle"===this.state.operationClassName?n.insertMiddleIcon:n.cancelIcon}),this.state.text)}show(e,t,i,s){this.setState({visible:!0,top:e,left:t,text:i,operationClassName:s})}hide(){this.setState({visible:!1})}};M.defaultProps={style:{display:"block",position:"absolute",zIndex:2e4,padding:"4px 6px"}};let R=M;const T=s.withIdHOC(D);T.displayName="KendoReactTreeView",Object.defineProperty(e,"FieldsService",{enumerable:!0,get:function(){return s.TreeFieldsService}}),e.TreeView=T,e.TreeViewClassComponent=D,e.TreeViewDragAnalyzer=class{constructor(e){this.event=e,this.initialized=!1,this.destItemId="",this.destTreeViewGuid="",this.itemId=e.itemHierarchicalIndex,this.treeViewGuid=e.target.guid}init(){return this.initialized||(this.setDestimationMeta(document.elementFromPoint(this.event.clientX,this.event.clientY)),this.initialized=!0),this}get isDropAllowed(){return!!(this.initialized&&this.destItemId&&this.destTreeViewGuid)&&!`${this.destTreeViewGuid}_${this.destItemId}_`.startsWith(`${this.treeViewGuid}_${this.itemId}_`)}get destinationMeta(){return{itemHierarchicalIndex:this.destItemId,treeViewGuid:this.destTreeViewGuid}}getDropOperation(){if(this.initialized&&this.isDropAllowed){const{top:e,height:t}=this.destDomNodeWithMeta.getBoundingClientRect();return e+t-this.event.clientY<6?"after":this.event.clientY-e<6?"before":"child"}}setDestimationMeta(e){let t=e;for(;t&&!t[f];)t=t.parentNode;t&&t[f]&&(this.destDomNodeWithMeta=t,this.destItemId=t[f],this.destTreeViewGuid=t[g])}},e.TreeViewDragClue=R,e.TreeViewItemPropsContext=v,e.getItemIdUponKeyboardNavigation=o,e.handleTreeViewCheckChange=function(e,t,i,n={},r){if(!i||!i.length)return[];const{ids:d,idField:a}=function(e){let t,i;return s.isArray(e)?t=e:(t=e.ids||[],i=e.idField),{ids:t,idField:i}}(t),o=a?s.getNestedValue(a,e.item):e.itemHierarchicalIndex,l=d.indexOf(o),c=-1===l,h=r||p;let m;return n.singleMode?m=c?[o]:[]:(m=d.slice(),c?m.push(o):m.splice(l,1),n.checkChildren&&function(e,t,i,n,r,d){s.getAllDirectIndirectChildrenIds(e,t,r,n).forEach((e=>{i&&-1===d.indexOf(e)?d.push(e):!i&&d.indexOf(e)>-1&&d.splice(d.indexOf(e),1)}))}(e.item,e.itemHierarchicalIndex,c,a,h,m),n.checkParents&&function(e,t,i,n,r,d){const a=h();let o=a.next();function l(){for(;!o.done;){const{id:e,item:t}=o.value;if(-1!==r.indexOf(e)||!s.areAllDirectChildrenChecked(t,e,i,n,r))break;r.push(e),o=a.next()}}function c(){for(;!o.done;){const{id:e}=o.value,t=r.indexOf(e);if(!(t>-1))break;r.splice(t,1),o=a.next()}}function*h(){if(i){const r=s.getAllParents(e,n,d);for(let e=r.length-1;e>-1;e--)yield{id:s.getNestedValue(i,r[e]),item:t?r[e]:void 0}}else{let i=s.treeIdUtils.getDirectParentId(e);for(;i;)yield{id:i,item:t?s.treeIdUtils.getItemById(i,d,n):void 0},i=s.treeIdUtils.getDirectParentId(i)}}t?l():c()}(e.itemHierarchicalIndex,c,a,h,m,i)),s.isArray(t)?m:Object.assign({},t,{ids:m})},e.moveTreeViewItem=function(e,t,i,n,r,d){const a=d||p;if(!function(){if(!t||!t.length||!e||!n||r&&!r.length)return!1;const i=r&&r!==t?r:t;return!!s.treeIdUtils.getItemById(n,i,a)}())return l();const o=s.treeIdUtils.getItemById(e,t,a);if(!o)return l();if(r&&r!==t){return{sourceData:s.removeItem(e,a,t),targetData:s.addItem(o,i,a,n,r)}}{if(`${n}_`.startsWith(`${e}_`))return l();const d=s.removeItem(e,a,t),c=s.addItem(o,i,a,s.treeIdUtils.getDecrementedItemIdAfterRemoval(e,n),d);return r?{sourceData:c,targetData:c}:c}function l(){return r?{sourceData:t,targetData:r}:t}},e.processTreeViewItems=function(e,t){if(!e||!e.length)return[];let i=e;const s=t.cloneField||"cloned",n=t.expandField||h,r=t.selectField||m,d=t.checkField||u,a=t.childrenField||p;return i=S(i,n,t.expand,s,a),i=S(i,r,t.select,s,a),i=S(i,d,t.check,s,a),P(i,a,t.check),i}}));
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";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;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import { getNestedValue as I, isArray as x, getAllDirectIndirectChildrenIds as m, areAllDirectChildrenChecked as p, getAllParents as g, treeIdUtils as u } from "@progress/kendo-react-common";
10
+ import { CHILDREN_FIELD as O } from "./utils/consts.mjs";
11
+ function b(i, n, t, s = {}, d) {
12
+ if (!t || !t.length)
13
+ return [];
14
+ const { ids: r, idField: l } = k(n), c = l ? I(l, i.item) : i.itemHierarchicalIndex, h = r.indexOf(c), o = h === -1, a = d || O;
15
+ let e;
16
+ return s.singleMode ? e = o ? [c] : [] : (e = r.slice(), o ? e.push(c) : e.splice(h, 1), s.checkChildren && C(i.item, i.itemHierarchicalIndex, o, l, a, e), s.checkParents && D(i.itemHierarchicalIndex, o, l, a, e, t)), x(n) ? e : Object.assign({}, n, { ids: e });
17
+ }
18
+ function k(i) {
19
+ let n, t;
20
+ return x(i) ? n = i : (n = i.ids || [], t = i.idField), { ids: n, idField: t };
21
+ }
22
+ function C(i, n, t, s, d, r) {
23
+ m(i, n, d, s).forEach((l) => {
24
+ t && r.indexOf(l) === -1 ? r.push(l) : !t && r.indexOf(l) > -1 && r.splice(r.indexOf(l), 1);
25
+ });
26
+ }
27
+ function D(i, n, t, s, d, r) {
28
+ const l = a();
29
+ let c = l.next();
30
+ n ? h() : o();
31
+ function h() {
32
+ for (; !c.done; ) {
33
+ const { id: e, item: f } = c.value;
34
+ if (d.indexOf(e) === -1 && p(f, e, t, s, d))
35
+ d.push(e), c = l.next();
36
+ else
37
+ break;
38
+ }
39
+ }
40
+ function o() {
41
+ for (; !c.done; ) {
42
+ const { id: e } = c.value, f = d.indexOf(e);
43
+ if (f > -1)
44
+ d.splice(f, 1), c = l.next();
45
+ else
46
+ break;
47
+ }
48
+ }
49
+ function* a() {
50
+ if (t) {
51
+ const e = g(i, s, r);
52
+ for (let f = e.length - 1; f > -1; f--)
53
+ yield { id: I(t, e[f]), item: n ? e[f] : void 0 };
54
+ } else {
55
+ let e = u.getDirectParentId(i);
56
+ for (; e; )
57
+ yield { id: e, item: n ? u.getItemById(e, r, s) : void 0 }, e = u.getDirectParentId(e);
58
+ }
59
+ }
60
+ }
61
+ export {
62
+ b as handleTreeViewCheckChange
63
+ };