@progress/kendo-react-treeview 6.1.1 → 7.0.0-develop.2

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 (70) hide show
  1. package/{dist/es/ItemRenderProps.d.ts → ItemRenderProps.d.ts} +4 -0
  2. package/LICENSE.md +1 -1
  3. package/{dist/npm/TreeView.d.ts → TreeView.d.ts} +5 -1
  4. package/{dist/es/TreeViewDragAnalyzer.d.ts → TreeViewDragAnalyzer.d.ts} +5 -1
  5. package/{dist/npm/TreeViewDragClue.d.ts → TreeViewDragClue.d.ts} +5 -1
  6. package/{dist/npm/TreeViewItem.d.ts → TreeViewItem.d.ts} +5 -1
  7. package/{dist/es/TreeViewOperationDescriptors.d.ts → TreeViewOperationDescriptors.d.ts} +4 -0
  8. package/{dist/es/TreeViewProps.d.ts → TreeViewProps.d.ts} +4 -0
  9. package/dist/cdn/js/kendo-react-treeview.js +5 -1
  10. package/{dist/es/events.d.ts → events.d.ts} +4 -1
  11. package/{dist/npm/handleTreeViewCheckChange.d.ts → handleTreeViewCheckChange.d.ts} +4 -0
  12. package/{dist/es/main.d.ts → index.d.ts} +9 -5
  13. package/index.js +5 -0
  14. package/index.mjs +745 -0
  15. package/{dist/npm/moveTreeViewItem.d.ts → moveTreeViewItem.d.ts} +4 -0
  16. package/package-metadata.d.ts +9 -0
  17. package/package.json +28 -37
  18. package/{dist/es/processTreeViewItems.d.ts → processTreeViewItems.d.ts} +4 -0
  19. package/{dist/npm/utils → utils}/consts.d.ts +4 -0
  20. package/utils/getItemIdUponKeyboardNavigation.d.ts +9 -0
  21. package/about.md +0 -3
  22. package/dist/es/ItemRenderProps.js +0 -2
  23. package/dist/es/TreeView.d.ts +0 -124
  24. package/dist/es/TreeView.js +0 -334
  25. package/dist/es/TreeViewDragAnalyzer.js +0 -186
  26. package/dist/es/TreeViewDragClue.d.ts +0 -144
  27. package/dist/es/TreeViewDragClue.js +0 -171
  28. package/dist/es/TreeViewItem.d.ts +0 -96
  29. package/dist/es/TreeViewItem.js +0 -255
  30. package/dist/es/TreeViewOperationDescriptors.js +0 -2
  31. package/dist/es/TreeViewProps.js +0 -1
  32. package/dist/es/events.js +0 -1
  33. package/dist/es/handleTreeViewCheckChange.d.ts +0 -69
  34. package/dist/es/handleTreeViewCheckChange.js +0 -193
  35. package/dist/es/main.js +0 -10
  36. package/dist/es/moveTreeViewItem.d.ts +0 -109
  37. package/dist/es/moveTreeViewItem.js +0 -155
  38. package/dist/es/package-metadata.d.ts +0 -5
  39. package/dist/es/package-metadata.js +0 -11
  40. package/dist/es/processTreeViewItems.js +0 -163
  41. package/dist/es/utils/consts.d.ts +0 -40
  42. package/dist/es/utils/consts.js +0 -40
  43. package/dist/es/utils/getItemIdUponKeyboardNavigation.d.ts +0 -5
  44. package/dist/es/utils/getItemIdUponKeyboardNavigation.js +0 -76
  45. package/dist/npm/ItemRenderProps.d.ts +0 -13
  46. package/dist/npm/ItemRenderProps.js +0 -3
  47. package/dist/npm/TreeView.js +0 -337
  48. package/dist/npm/TreeViewDragAnalyzer.d.ts +0 -135
  49. package/dist/npm/TreeViewDragAnalyzer.js +0 -189
  50. package/dist/npm/TreeViewDragClue.js +0 -174
  51. package/dist/npm/TreeViewItem.js +0 -258
  52. package/dist/npm/TreeViewOperationDescriptors.d.ts +0 -76
  53. package/dist/npm/TreeViewOperationDescriptors.js +0 -3
  54. package/dist/npm/TreeViewProps.d.ts +0 -137
  55. package/dist/npm/TreeViewProps.js +0 -2
  56. package/dist/npm/events.d.ts +0 -159
  57. package/dist/npm/events.js +0 -2
  58. package/dist/npm/handleTreeViewCheckChange.js +0 -197
  59. package/dist/npm/main.d.ts +0 -14
  60. package/dist/npm/main.js +0 -21
  61. package/dist/npm/moveTreeViewItem.js +0 -159
  62. package/dist/npm/package-metadata.d.ts +0 -5
  63. package/dist/npm/package-metadata.js +0 -14
  64. package/dist/npm/processTreeViewItems.d.ts +0 -51
  65. package/dist/npm/processTreeViewItems.js +0 -167
  66. package/dist/npm/utils/consts.js +0 -43
  67. package/dist/npm/utils/getItemIdUponKeyboardNavigation.d.ts +0 -5
  68. package/dist/npm/utils/getItemIdUponKeyboardNavigation.js +0 -79
  69. package/dist/systemjs/kendo-react-treeview.js +0 -1
  70. package/e2e-next/basic.tests.ts +0 -24
@@ -1,4 +1,7 @@
1
- /// <reference types="react" />
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
4
+ *-------------------------------------------------------------------------------------------*/
2
5
  import { BaseEvent } from '@progress/kendo-react-common';
3
6
  import { TreeView } from './TreeView';
4
7
  /**
@@ -1,3 +1,7 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
4
+ *-------------------------------------------------------------------------------------------*/
1
5
  import { TreeViewExpandChangeEvent } from './events';
2
6
  import { TreeViewCheckDescriptor } from './TreeViewOperationDescriptors';
3
7
  /**
@@ -1,11 +1,15 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
4
+ *-------------------------------------------------------------------------------------------*/
1
5
  import { TreeView } from './TreeView';
2
- import { TreeViewItemClickEvent, TreeViewExpandChangeEvent, TreeViewCheckChangeEvent, TreeViewItemDragOverEvent, TreeViewItemDragStartEvent, TreeViewItemDragEndEvent } from './events';
6
+ import type { TreeViewItemClickEvent, TreeViewExpandChangeEvent, TreeViewCheckChangeEvent, TreeViewItemDragOverEvent, TreeViewItemDragStartEvent, TreeViewItemDragEndEvent } from './events';
3
7
  import { processTreeViewItems } from './processTreeViewItems';
4
8
  import { moveTreeViewItem } from './moveTreeViewItem';
5
- import { handleTreeViewCheckChange, TreeViewCheckChangeSettings } from './handleTreeViewCheckChange';
6
- import { TreeViewOperationDescriptor, TreeViewOperationDescriptors, TreeViewCheckDescriptor } from './TreeViewOperationDescriptors';
7
- import { ItemRenderProps } from './ItemRenderProps';
8
- import { TreeViewProps } from './TreeViewProps';
9
+ import { handleTreeViewCheckChange, type TreeViewCheckChangeSettings } from './handleTreeViewCheckChange';
10
+ import type { TreeViewOperationDescriptor, TreeViewOperationDescriptors, TreeViewCheckDescriptor } from './TreeViewOperationDescriptors';
11
+ import { type ItemRenderProps } from './ItemRenderProps';
12
+ import { type TreeViewProps } from './TreeViewProps';
9
13
  import { TreeViewDragClue } from './TreeViewDragClue';
10
14
  import { TreeViewDragAnalyzer } from './TreeViewDragAnalyzer';
11
15
  import { TreeViewItemPropsContext } from './TreeViewItem';
package/index.js ADDED
@@ -0,0 +1,5 @@
1
+ /**-----------------------------------------------------------------------------------------
2
+ * Copyright © 2023 Progress Software Corporation. All rights reserved.
3
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
4
+ *-------------------------------------------------------------------------------------------*/
5
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const V=require("react"),K=require("prop-types"),s=require("@progress/kendo-react-common"),f=require("@progress/kendo-svg-icons"),L=require("@progress/kendo-react-animation");function F(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=F(V),p=F(K);function y(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?S(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):w(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 w(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?w(i,e,t):void 0}function S(r,e,t){const i=s.treeIdUtils.getItemById(r,e,t.getChildrenField());return s.isItemExpandedAndWithChildren(i,t)?S(s.treeIdUtils.createId(i[t.getChildrenField()].length-1,r),e,t):r}const N="expanded",G="text",z="disabled",g="items",B="hasChildren",T="selected",x="checked",P="checkIndeterminate",b="_kendoItemId",U="_kendoTreeViewGuid",{sizeMap:W}=s.kendoThemeMaps,_=c.createContext(r=>r);class M extends c.Component{constructor(){super(...arguments),this.itemGuid=s.guid(),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[U]=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(L.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-${W[e]||e}`]:e,"k-disabled":this.disabled}),"aria-label":this.item.text,checked:!!this.fieldsSvc.checked(this.item),id:this.itemGuid,tabIndex:-1,onChange:this.onCheckChange,ref:t=>this.checkboxElement=t}),c.createElement("label",{className:"k-checkbox-label",htmlFor:this.itemGuid}))}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(k,{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}}}M.defaultProps={position:"top"};const k=c.forwardRef((r,e)=>{const i=c.useContext(_).call(void 0,r);return c.createElement(M,{ref:e,...i})});k.displayName="TreeViewItem";const H={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;class v 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.treeGuid=s.guid(),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=y(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(H)}get element(){return this._element}render(){this.fieldsSvc=new s.TreeFieldsService(this.props);const{size:e,className:t}=this.props;return c.createElement("div",{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(k,{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}}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":(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};v.defaultProps={animate:!0,expandField:N,selectField:T,hasChildrenField:B,childrenField:g,textField:G,disableField:z,checkField:x,checkIndeterminateField:P,size:"medium"};function j(r,e){if(!r||!r.length)return[];let t=r;const i=e.cloneField||"cloned",n=e.expandField||N,d=e.selectField||T,l=e.checkField||x,a=e.childrenField||g;return t=C(t,n,e.expand,i,a),t=C(t,d,e.select,i,a),t=C(t,l,e.check,i,a),Y(t,a,e.check),t}function C(r,e,t,i,n){if(t){let{ids:d,field:l}=O(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 O(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}=O(t,x),n=t.checkIndeterminateField||P;for(let d=0;d<r.length;d++){const l=r[d],a=l[e];a&&E(a,s.getNestedValue(i,l)?[]:[l],e,i,n)}}}function E(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]&&E(a[t],[],t,i,n)}else a[t]&&E(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 A 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})}}A.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[U])}}Object.defineProperty(exports,"FieldsService",{enumerable:!0,get:()=>s.TreeFieldsService});exports.TreeView=v;exports.TreeViewDragAnalyzer=te;exports.TreeViewDragClue=A;exports.TreeViewItemPropsContext=_;exports.getItemIdUponKeyboardNavigation=y;exports.handleTreeViewCheckChange=Z;exports.moveTreeViewItem=X;exports.processTreeViewItems=j;