@progress/kendo-react-treeview 7.0.3-develop.4 → 7.0.3-develop.5

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.
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  /**
package/LICENSE.md CHANGED
@@ -8,4 +8,4 @@ This is commercial software. To use it, you need to agree to the [**End User Lic
8
8
 
9
9
  All available KendoReact commercial licenses may be obtained at the [KendoReact website](https://www.telerik.com/kendo-react-ui/pricing).
10
10
 
11
- *Copyright © 2023 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.*
11
+ *Copyright © 2024 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.*
package/NOTICE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Progress KendoReact 2023
1
+ Progress KendoReact 2024
2
2
 
3
3
  Copyright © 2018-2023 Progress Software Corporation and/or one of its subsidiaries or affiliates. All rights reserved.
4
4
 
package/README.md CHANGED
@@ -52,6 +52,6 @@ High-level component overview pages
52
52
 
53
53
  * [React TreeView Component](https://www.telerik.com/kendo-react-ui/treeview)
54
54
 
55
- *Copyright © 2023 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.*
55
+ *Copyright © 2024 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved.*
56
56
 
57
57
  *Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries.*
package/TreeView.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as React from 'react';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { TreeViewItemDragOverEvent, TreeViewItemDragEndEvent } from './events';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as React from 'react';
package/TreeViewItem.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import * as React from 'react';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { ComponentType } from 'react';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  (function(o,m){typeof exports=="object"&&typeof module<"u"?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<"u"?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,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-up"?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"})});
package/events.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { BaseEvent } from '@progress/kendo-react-common';
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { TreeViewExpandChangeEvent } from './events';
package/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  export * from './index';
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { TreeView as TreeViewClassComponent, type TreeViewHandle } from './TreeView';
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("react"),p=require("prop-types"),s=require("@progress/kendo-react-common"),f=require("@progress/kendo-svg-icons"),K=require("@progress/kendo-react-animation");function L(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const c=L(A);function F(r,e,t,i,n){switch(i){case s.Keys.left:return d();case s.Keys.right:return l();case s.Keys.up:return a();case s.Keys.down:return u();case s.Keys.home:return s.treeIdUtils.ZERO_LEVEL_ZERO_NODE_ID;case s.Keys.end:return I();default:return e}function d(){return s.treeIdUtils.isIdZeroLevel(e)||n.expanded(r)&&s.isEnabledAndAllParentsEnabled(e,t,n)?e:s.treeIdUtils.getDirectParentId(e)}function l(){return s.isItemExpandedAndWithChildren(r,n)?s.treeIdUtils.getFirstChildId(e):e}function a(){const m=Number(s.treeIdUtils.getShortId(e)),o=s.treeIdUtils.getDirectParentId(e);return m?w(s.treeIdUtils.createId(m-1,o),t,n):s.treeIdUtils.isIdZeroLevel(e)?e:o}function u(){return s.isItemExpandedAndWithChildren(r,n)?s.treeIdUtils.getFirstChildId(e):y(e,t,n)||e}function I(){let m=(t.length-1).toString(),o=t[t.length-1],h;for(;s.isItemExpandedAndWithChildren(o,n);)h=o[n.getChildrenField()],m=s.treeIdUtils.createId(h.length-1,m),o=h[h.length-1];return m}}function y(r,e,t){const i=s.treeIdUtils.getDirectParentId(r),n=i?s.treeIdUtils.getItemById(i,e,t.getChildrenField()):void 0,d=n?n[t.getChildrenField()]:e,l=Number(s.treeIdUtils.getShortId(r));return l<d.length-1?s.treeIdUtils.createId(l+1,i):n?y(i,e,t):void 0}function w(r,e,t){const i=s.treeIdUtils.getItemById(r,e,t.getChildrenField());return s.isItemExpandedAndWithChildren(i,t)?w(s.treeIdUtils.createId(i[t.getChildrenField()].length-1,r),e,t):r}const S="expanded",z="text",B="disabled",g="items",G="hasChildren",N="selected",x="checked",T="checkIndeterminate",b="_kendoItemId",P="_kendoTreeViewGuid",{sizeMap:H}=s.kendoThemeMaps,U=c.createContext(r=>r);class O 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[b]=this.props.itemId,e[P]=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(K.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-${H[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(v,{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:f.caretAltDownIcon}:{name:this.props.isRtl?"caret-alt-left":"caret-alt-right",icon:this.props.isRtl?f.caretAltLeftIcon:f.caretAltRightIcon}}}O.defaultProps={position:"top"};const v=s.withIdHOC(c.forwardRef((r,e)=>{const i=c.useContext(U).call(void 0,r);return c.createElement(O,{ref:e,...i})}));v.displayName="TreeViewItem";const W={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:$}=s.kendoThemeMaps;let C=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,n)=>{this.setFocus(n),this.dispatchCheckChange(t,i,n)},this.onExpandChange=(t,i,n)=>{this.setFocus(n),this.dispatchExpandChange(t,i,n)},this.onPress=(t,i,n)=>{this.props.onItemDragStart&&this.props.onItemDragStart.call(void 0,{target:this,item:i,itemHierarchicalIndex:n})},this.onDrag=(t,i,n)=>{const{pageX:d,pageY:l,clientX:a,clientY:u}=t;this.props.onItemDragOver&&this.props.onItemDragOver.call(void 0,{target:this,item:i,itemHierarchicalIndex:n,pageX:d,pageY:l,clientX:a,clientY:u})},this.onRelease=(t,i,n)=>{const{pageX:d,pageY:l,clientX:a,clientY:u}=t;this.props.onItemDragEnd&&this.props.onItemDragEnd.call(void 0,{target:this,item:i,itemHierarchicalIndex:n,pageX:d,pageY:l,clientX:a,clientY:u})},this.onItemClick=(t,i,n)=>{this.setFocus(n),this.dispatchItemClick(t,i,n)},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 n=F(i,this.state.focusedItemId,this.data,t.keyCode,this.fieldsSvc);n!==this.state.focusedItemId&&(t.preventDefault(),this.allowExplicitFocus=!0,this.setFocus(n)),this.dispatchEventsOnKeyDown(t,i)}},this.onContextMenu=(t,i,n)=>{if(this.props.onContextMenu){const d={target:this,syntheticEvent:t,nativeEvent:t.nativeEvent,item:i,itemID:n};this.props.onContextMenu.call(void 0,d)}},s.validatePackage(W)}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,className:s.classNames("k-treeview",{[`k-treeview-${$[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,n)=>c.createElement(v,{id:this.props.id+"-item-"+n,item:i,position:n===0?"top":n===this.data.length-1?"bot":"mid",itemId:n.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:n,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||g)}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}};C.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":(r,e,t)=>r[e]!==void 0&&r[e]!==!0&&r[e]!==!1&&r[e]!=="true"&&r[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};C.defaultProps={animate:!0,expandField:S,selectField:N,hasChildrenField:G,childrenField:g,textField:z,disableField:B,checkField:x,checkIndeterminateField:T,size:"medium"};function j(r,e){if(!r||!r.length)return[];let t=r;const i=e.cloneField||"cloned",n=e.expandField||S,d=e.selectField||N,l=e.checkField||x,a=e.childrenField||g;return t=E(t,n,e.expand,i,a),t=E(t,d,e.select,i,a),t=E(t,l,e.check,i,a),Y(t,a,e.check),t}function E(r,e,t,i,n){if(t){let{ids:d,field:l}=_(t,e),a=!s.isArray(t)&&t.idField?s.resolveItemsIds(d,t.idField,r,n):d;return q(r,a,l,i,n)}else return r}function _(r,e){let t,i;return s.isArray(r)?(t=r,i=e):(t=r.ids||[],i=r.operationField||e),{ids:t,field:i}}function q(r,e,t,i,n){let d=r;return e.forEach(l=>{d=s.updateItem(d,l,a=>R(t,a),i,n)}),d}function R(r,e){const t=(r||"").split(".");let i=e;for(let n=0;n<t.length;n++){const d=t[n];if(n===t.length-1)i[d]=!0;else if(i[d]!==void 0)i[d]={...i[d]},i=i[d];else return}}function Y(r,e,t){if(t&&!s.isArray(t)&&t.applyCheckIndeterminate){const{field:i}=_(t,x),n=t.checkIndeterminateField||T;for(let d=0;d<r.length;d++){const l=r[d],a=l[e];a&&k(a,s.getNestedValue(i,l)?[]:[l],e,i,n)}}}function k(r,e,t,i,n){let d=!1;for(let l=0;l<r.length;l++){const a=r[l];if(s.getNestedValue(i,a)){if(!d)for(let u=0;u<e.length;u++)R(n,e[u]);d=!0,a[t]&&k(a[t],[],t,i,n)}else a[t]&&k(a[t],d?[a]:e.concat([a]),t,i,n)}}function X(r,e,t,i,n,d){const l=d||g;if(!m())return u();const a=s.treeIdUtils.getItemById(r,e,l);if(!a)return u();if(!n||n===e){if(!I())return u();const o=s.removeItem(r,l,e),h=s.addItem(a,t,l,s.treeIdUtils.getDecrementedItemIdAfterRemoval(r,i),o);return n?{sourceData:h,targetData:h}:h}else{const o=s.removeItem(r,l,e),h=s.addItem(a,t,l,i,n);return{sourceData:o,targetData:h}}function u(){return n?{sourceData:e,targetData:n}:e}function I(){return!`${i}_`.startsWith(`${r}_`)}function m(){if(!e||!e.length||!r||!i||n&&!n.length)return!1;const o=!n||n===e?e:n;return!!s.treeIdUtils.getItemById(i,o,l)}}function Z(r,e,t,i={},n){if(!t||!t.length)return[];const{ids:d,idField:l}=Q(e),a=l?s.getNestedValue(l,r.item):r.itemHierarchicalIndex,u=d.indexOf(a),I=u===-1,m=n||g;let o;return i.singleMode?o=I?[a]:[]:(o=d.slice(),I?o.push(a):o.splice(u,1),i.checkChildren&&J(r.item,r.itemHierarchicalIndex,I,l,m,o),i.checkParents&&ee(r.itemHierarchicalIndex,I,l,m,o,t)),s.isArray(e)?o:Object.assign({},e,{ids:o})}function Q(r){let e,t;return s.isArray(r)?e=r:(e=r.ids||[],t=r.idField),{ids:e,idField:t}}function J(r,e,t,i,n,d){s.getAllDirectIndirectChildrenIds(r,e,n,i).forEach(l=>{t&&d.indexOf(l)===-1?d.push(l):!t&&d.indexOf(l)>-1&&d.splice(d.indexOf(l),1)})}function ee(r,e,t,i,n,d){const l=m();let a=l.next();e?u():I();function u(){for(;!a.done;){const{id:o,item:h}=a.value;if(n.indexOf(o)===-1&&s.areAllDirectChildrenChecked(h,o,t,i,n))n.push(o),a=l.next();else break}}function I(){for(;!a.done;){const{id:o}=a.value,h=n.indexOf(o);if(h>-1)n.splice(h,1),a=l.next();else break}}function*m(){if(t){const o=s.getAllParents(r,i,d);for(let h=o.length-1;h>-1;h--)yield{id:s.getNestedValue(t,o[h]),item:e?o[h]:void 0}}else{let o=s.treeIdUtils.getDirectParentId(r);for(;o;)yield{id:o,item:e?s.treeIdUtils.getItemById(o,d,i):void 0},o=s.treeIdUtils.getDirectParentId(o)}}}class M 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"?f.plusIcon:this.state.operationClassName==="k-i-insert-up"?f.insertTopIcon:this.state.operationClassName==="k-i-insert-up"?f.insertBottomIcon:this.state.operationClassName==="k-i-insert-middle"?f.insertMiddleIcon:f.cancelIcon}),this.state.text)}show(e,t,i,n){this.setState({visible:!0,top:e,left:t,text:i,operationClassName:n})}hide(){this.setState({visible:!1})}}M.defaultProps={style:{display:"block",position:"absolute",zIndex:2e4,padding:"4px 6px"}};const D=6;class te{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<D?"after":this.event.clientY-e<D?"before":"child"}else return}setDestimationMeta(e){let t=e;for(;t&&!t[b];)t=t.parentNode;t&&t[b]&&(this.destDomNodeWithMeta=t,this.destItemId=t[b],this.destTreeViewGuid=t[P])}}const V=s.withIdHOC(C);V.displayName="KendoReactTreeView";Object.defineProperty(exports,"FieldsService",{enumerable:!0,get:()=>s.TreeFieldsService});exports.TreeView=V;exports.TreeViewClassComponent=C;exports.TreeViewDragAnalyzer=te;exports.TreeViewDragClue=M;exports.TreeViewItemPropsContext=U;exports.getItemIdUponKeyboardNavigation=F;exports.handleTreeViewCheckChange=Z;exports.moveTreeViewItem=X;exports.processTreeViewItems=j;
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  "use client";
@@ -244,7 +244,7 @@ const ge = {
244
244
  name: "@progress/kendo-react-treeview",
245
245
  productName: "KendoReact",
246
246
  productCodes: ["KENDOUIREACT", "KENDOUICOMPLETE"],
247
- publishDate: 1703227588,
247
+ publishDate: 1704295664,
248
248
  version: "",
249
249
  licensingDocsUrl: "https://www.telerik.com/kendo-react-ui/components/my-license/"
250
250
  }, { sizeMap: be } = V;
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { PackageMetadata } from '@progress/kendo-licensing';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-react-treeview",
3
- "version": "7.0.3-develop.4",
3
+ "version": "7.0.3-develop.5",
4
4
  "description": "React TreeView displays hierarchical data in a traditional tree structure, supports user interaction. KendoReact TreeView package",
5
5
  "author": "Progress",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -23,8 +23,8 @@
23
23
  "sideEffects": false,
24
24
  "peerDependencies": {
25
25
  "@progress/kendo-licensing": "^1.3.4",
26
- "@progress/kendo-react-animation": "7.0.3-develop.4",
27
- "@progress/kendo-react-common": "7.0.3-develop.4",
26
+ "@progress/kendo-react-animation": "7.0.3-develop.5",
27
+ "@progress/kendo-react-common": "7.0.3-develop.5",
28
28
  "@progress/kendo-svg-icons": "^2.1.0",
29
29
  "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
30
30
  "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { TreeViewOperationDescriptors } from './TreeViewOperationDescriptors';
package/utils/consts.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2023 Progress Software Corporation. All rights reserved.
2
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
3
3
  * Licensed under commercial license. See LICENSE.md in the package root for more information
4
4
  *-------------------------------------------------------------------------------------------*/
5
5
  import { TreeFieldsService } from '@progress/kendo-react-common';