@progress/kendo-react-treelist 15.2.0-develop.1 → 15.2.0-develop.3

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 (38) hide show
  1. package/TreeList.d.ts +10 -121
  2. package/TreeList.js +1 -1
  3. package/TreeList.mjs +840 -526
  4. package/TreeListNoRecords.d.ts +8 -6
  5. package/TreeListNoRecords.js +1 -1
  6. package/TreeListNoRecords.mjs +15 -12
  7. package/cells/EditCells/TreeListBooleanEditor.js +1 -1
  8. package/cells/EditCells/TreeListBooleanEditor.mjs +5 -5
  9. package/cells/EditCells/TreeListDateEditor.js +1 -1
  10. package/cells/EditCells/TreeListDateEditor.mjs +9 -9
  11. package/cells/EditCells/TreeListNumericEditor.js +1 -1
  12. package/cells/EditCells/TreeListNumericEditor.mjs +9 -9
  13. package/cells/EditCells/TreeListTextEditor.js +1 -1
  14. package/cells/EditCells/TreeListTextEditor.mjs +4 -4
  15. package/cells/TreeListCell.js +1 -1
  16. package/cells/TreeListCell.mjs +10 -10
  17. package/cells/TreeListSelectionCell.js +1 -1
  18. package/cells/TreeListSelectionCell.mjs +1 -1
  19. package/dist/cdn/js/kendo-react-treelist.js +1 -1
  20. package/header/TreeListHeaderSelectionCell.d.ts +10 -6
  21. package/header/TreeListHeaderSelectionCell.js +1 -1
  22. package/header/TreeListHeaderSelectionCell.mjs +16 -14
  23. package/index.d.mts +5 -7
  24. package/index.d.ts +5 -7
  25. package/index.js +1 -1
  26. package/index.mjs +49 -50
  27. package/interfaces/events.d.ts +6 -6
  28. package/package-metadata.js +1 -1
  29. package/package-metadata.mjs +2 -2
  30. package/package.json +9 -9
  31. package/rows/TreeListDraggableRow.d.ts +7 -26
  32. package/rows/TreeListDraggableRow.js +1 -1
  33. package/rows/TreeListDraggableRow.mjs +88 -77
  34. package/rows/TreeListRow.js +1 -1
  35. package/rows/TreeListRow.mjs +1 -1
  36. package/TreeListMcpWrapper.d.ts +0 -17
  37. package/TreeListMcpWrapper.js +0 -8
  38. package/TreeListMcpWrapper.mjs +0 -18
package/TreeList.d.ts CHANGED
@@ -5,83 +5,20 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- import { default as PropTypes } from 'prop-types';
9
- import { CommonDragLogic, TableKeyboardNavigationContextType } from '@progress/kendo-react-data-tools';
10
- import { TreeListCellProps } from './interfaces/TreeListCellProps';
11
8
  import { TreeListProps } from './interfaces/TreeListProps';
12
- import { TreeListHeaderCellProps } from './interfaces/TreeListHeaderCellProps';
13
- import { TreeListFilterCellProps } from './interfaces/TreeListFilterCellProps';
14
9
  import * as React from 'react';
15
10
  /**
16
- * Represents the [KendoReact TreeList component](https://www.telerik.com/kendo-react-ui/components/treelist/get-started).
11
+ * Represent the `ref` of the TreeList component.
17
12
  */
18
- export declare class TreeList extends React.Component<TreeListProps, Record<string, never>> {
19
- /**
20
- * @hidden
21
- */
22
- static propTypes: {
23
- data: PropTypes.Requireable<any[]>;
24
- resizable: PropTypes.Requireable<boolean>;
25
- reorderable: PropTypes.Requireable<boolean>;
26
- sortable: PropTypes.Requireable<NonNullable<boolean | PropTypes.InferProps<{
27
- mode: PropTypes.Requireable<string>;
28
- allowUnsort: PropTypes.Requireable<boolean>;
29
- }> | null | undefined>>;
30
- onSortChange: PropTypes.Requireable<(...args: any[]) => any>;
31
- sort: PropTypes.Requireable<any[]>;
32
- columns: PropTypes.Requireable<(object | null | undefined)[]>;
33
- columnVirtualization: PropTypes.Requireable<boolean>;
34
- filter: PropTypes.Requireable<any[]>;
35
- onFilterChange: PropTypes.Requireable<(...args: any[]) => any>;
36
- filterRow: PropTypes.Requireable<any>;
37
- toolbar: PropTypes.Requireable<any>;
38
- noRecords: PropTypes.Requireable<any>;
39
- onExpandChange: PropTypes.Requireable<(...args: any[]) => any>;
40
- expandField: PropTypes.Requireable<string>;
41
- subItemsField: PropTypes.Requireable<string>;
42
- selectedField: PropTypes.Requireable<string>;
43
- onSelectionChange: PropTypes.Requireable<(...args: any[]) => any>;
44
- onHeaderSelectionChange: PropTypes.Requireable<(...args: any[]) => any>;
45
- onRowClick: PropTypes.Requireable<(...args: any[]) => any>;
46
- onItemChange: PropTypes.Requireable<(...args: any[]) => any>;
47
- editField: PropTypes.Requireable<string>;
48
- scrollable: PropTypes.Requireable<string>;
49
- rowHeight: PropTypes.Requireable<number>;
50
- style: PropTypes.Requireable<object>;
51
- tableProps: PropTypes.Requireable<object>;
52
- pager: PropTypes.Requireable<any>;
53
- skip: PropTypes.Requireable<number>;
54
- take: PropTypes.Requireable<number>;
55
- onPageChange: PropTypes.Requireable<(...args: any[]) => any>;
56
- onDataStateChange: PropTypes.Requireable<(...args: any[]) => any>;
57
- onColumnResize: PropTypes.Requireable<(...args: any[]) => any>;
58
- onColumnReorder: PropTypes.Requireable<(...args: any[]) => any>;
59
- dataItemKey: PropTypes.Requireable<string>;
60
- navigatable: PropTypes.Requireable<boolean>;
61
- };
62
- /** @hidden */
63
- static contextType: React.Context<TableKeyboardNavigationContextType | undefined>;
13
+ export interface TreeListHandle {
64
14
  /**
65
15
  * The HTML element of the TreeList component.
66
16
  */
67
17
  element: HTMLDivElement | null;
68
- private wrapperScrollLeft;
69
- private wrapperScrollTop;
70
- private updateOnScroll;
71
- private tbodyOffsetTop;
72
- private prevData;
73
- private flattedData;
74
- private extendedColumn;
75
- private columnsMap;
76
- private columnResize;
77
- protected dragLogic: CommonDragLogic<TreeListCellProps, TreeListHeaderCellProps, TreeListFilterCellProps>;
78
- private get _treeListId();
79
- private get document();
80
- private contextStateRef;
81
- private navigationStateRef;
82
- private readonly showLicenseWatermark;
83
- private readonly licenseMessage;
84
- constructor(props: TreeListProps);
18
+ /**
19
+ * The props of the TreeList component.
20
+ */
21
+ readonly props: Readonly<TreeListProps>;
85
22
  /**
86
23
  * Method to allow the scroll to be set to a specific row index.
87
24
  *
@@ -90,56 +27,8 @@ export declare class TreeList extends React.Component<TreeListProps, Record<stri
90
27
  scrollIntoView: (options: {
91
28
  rowIndex?: number;
92
29
  }) => void;
93
- /**
94
- * @hidden
95
- */
96
- componentDidMount(): void;
97
- /**
98
- * @hidden
99
- */
100
- getSnapshotBeforeUpdate(): null;
101
- /**
102
- * @hidden
103
- */
104
- componentDidUpdate(prevProps: TreeListProps): void;
105
- /**
106
- * @hidden
107
- */
108
- componentWillUnmount(): void;
109
- /**
110
- * @hidden
111
- */
112
- render(): React.JSX.Element;
113
- private getExtendedColumn;
114
- private getColumnsMap;
115
- private get columns();
116
- private get flatData();
117
- private onKeyDown;
118
- private onFocus;
119
- private onRowDrag;
120
- private onRowDrop;
121
- private columnReorder;
122
- private onResize;
123
- private handleOnScroll;
124
- private calculateSizes;
125
- private itemChange;
126
- private selectionChange;
127
- private onHeaderSelectionChange;
128
- private selectionRelease;
129
- private sortChange;
130
- private headerFilterChange;
131
- private filterChange;
132
- private columnMenuFilterChange;
133
- private expandChange;
134
- private rowClick;
135
- private rowDoubleClick;
136
- private rowContextMenu;
137
- private onPageChange;
138
- private raiseDataEvent;
139
- private getDataState;
140
- private getArguments;
141
- private expandedSubItems;
142
- private getLeafDataItems;
143
- private expanded;
144
- private hasChildren;
145
30
  }
31
+ /**
32
+ * Represents the [KendoReact TreeList component](https://www.telerik.com/kendo-react-ui/components/treelist/get-started).
33
+ */
34
+ export declare const TreeList: React.ForwardRefExoticComponent<TreeListProps & React.RefAttributes<TreeListHandle>>;
package/TreeList.js CHANGED
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Q=require("react"),n=require("prop-types"),g=require("@progress/kendo-react-common"),h=require("@progress/kendo-react-data-tools"),A=require("./utils/index.js"),X=require("./cells/TreeListCell.js"),Y=require("./TreeListNoRecords.js"),Z=require("./rows/TreeListRow.js"),P=require("./package-metadata.js");function ee(R){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(R){for(const e in R)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(R,e);Object.defineProperty(l,e,t.get?t:{enumerable:!0,get:()=>R[e]})}}return l.default=R,Object.freeze(l)}const d=ee(Q),M=class M extends d.Component{constructor(l){super(l),this.element=null,this.wrapperScrollLeft=0,this.wrapperScrollTop=0,this.updateOnScroll=!1,this.tbodyOffsetTop=0,this.prevData=[],this.flattedData=[],this.extendedColumn=[],this.columnsMap=[],this.contextStateRef={current:void 0},this.navigationStateRef={current:void 0},this.showLicenseWatermark=!1,this.licenseMessage=void 0,this.scrollIntoView=e=>{if(!this.element)return;const{rowIndex:t=0}=e,{scrollable:o,rowHeight:s=0}=this.props;if(o==="virtual"||s)this.element.scroll(0,(t-1)*s);else{const r=this.element.querySelector(`tbody > tr:nth-child(${t})`);if(r){const i=r.offsetTop-this.tbodyOffsetTop;this.element.scroll(0,i)}}},this.getExtendedColumn=g.memoizeOne((e,t)=>h.readColumns(e,{prevId:0,idPrefix:t})),this.getColumnsMap=g.memoizeOne((e,t)=>h.mapColumns(e,t)),this.onKeyDown=e=>{if(h.tableKeyboardNavigation.onKeyDown(e,{navigatable:!1,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef}),this.props.onKeyDown){const{mode:t,cell:o}=h.getSelectionOptions(this.props.selectable),s={dataItems:this.getLeafDataItems(),mode:t,cell:o,componentId:this._treeListId,selectedField:this.props.selectedField||"",...this.getArguments(e)};this.props.onKeyDown.call(void 0,s)}},this.onFocus=e=>{h.tableKeyboardNavigation.onFocus(e,{contextStateRef:this.contextStateRef})},this.onRowDrag=e=>{this.props.onRowDrag&&this.props.onRowDrag.call(void 0,{...e,target:this})},this.onRowDrop=e=>{this.props.onRowDrop&&this.props.onRowDrop.call(void 0,{...e,target:this})},this.columnReorder=(e,t,o)=>{const s=this.extendedColumn[e].depth,r=c=>{do c++;while(c<this.extendedColumn.length&&this.extendedColumn[c].depth>s);return c},i=this.extendedColumn.splice(e,r(e)-e);if(this.extendedColumn.splice(e<t?r(t-i.length):t,0,...i),this.extendedColumn.filter(c=>c.declarationIndex>=0).forEach((c,m)=>c.orderIndex=m),this.props.onColumnReorder){const c={target:this,columns:this.columns,nativeEvent:o};this.props.onColumnReorder.call(void 0,c)}},this.onResize=(e,t,o,s,r)=>{if(this.props.onColumnResize){const i=this.extendedColumn.filter(m=>m.children.length===0).reduce((m,f)=>m+=parseFloat(String(f.width)),0),c={columns:this.columns,totalWidth:i,index:e,nativeEvent:s,newWidth:t,oldWidth:o,end:r,target:this};this.props.onColumnResize.call(void 0,c)}},this.handleOnScroll=e=>{const t=e.currentTarget.scrollLeft,o=e.currentTarget.scrollTop,{columnVirtualization:s,scrollable:r,rowHeight:i=0}=this.props,c=i,m=0;let f=!1;s&&Math.abs(this.wrapperScrollLeft-t)>m&&(this.wrapperScrollLeft=t,f=!0),r==="virtual"&&Math.abs(this.wrapperScrollTop-o)>c&&(this.wrapperScrollTop=o,f=!0),f&&(this.updateOnScroll=!0,this.forceUpdate())},this.calculateSizes=e=>{if(!e||this.props.scrollable==="none")return;const t=Array.from(e.childNodes),o=t.find(i=>i.nodeName==="TABLE"),s=this.props.toolbar&&t.find(i=>i.nodeType===1&&i.classList.contains("k-grid-toolbar"));let r=0;if(s){const i=s.style.boxSizing;s.style.boxSizing="border-box",r=parseFloat(String(window.getComputedStyle(s).height))||s.offsetHeight,s.style.boxSizing=i,s.getAttribute("style")||s.removeAttribute("style")}this.tbodyOffsetTop=o.tBodies[0].offsetTop,A.setHeaderRowsTop(o,r)},this.itemChange=e=>{const t=this.props.onItemChange;if(e.field===this.props.expandField){const o=this.props.onExpandChange;if(o){const s={...this.getArguments(e.syntheticEvent),dataItem:e.dataItem,level:e.level,value:e.value};o.call(void 0,s)}return}if(t){const o={...this.getArguments(e.syntheticEvent),dataItem:e.dataItem,level:e.level,field:e.field,value:e.value};t.call(void 0,o)}},this.onHeaderSelectionChange=e=>{if(this.props.onHeaderSelectionChange){const t={field:e.field,nativeEvent:e.syntheticEvent&&e.syntheticEvent.nativeEvent,syntheticEvent:e.syntheticEvent,target:this,dataItems:this.getLeafDataItems()};this.props.onHeaderSelectionChange.call(void 0,t)}},this.selectionRelease=e=>{if(this.props.onSelectionChange){const t={syntheticEvent:void 0,target:this,selectedField:this.props.selectedField||"",componentId:this._treeListId,dataItems:this.getLeafDataItems(),dataItem:null,level:[],...e};this.props.onSelectionChange.call(void 0,t)}},this.sortChange=(e,t,o)=>{this.raiseDataEvent(this.props.onSortChange,{sort:t,field:o},e)},this.headerFilterChange=(e,t,o)=>{this.raiseDataEvent(this.props.onFilterChange,{filter:t,field:o},e)},this.filterChange=e=>{const{filter:t,field:o}=e;this.raiseDataEvent(this.props.onFilterChange,{filter:t,field:o},e.syntheticEvent)},this.columnMenuFilterChange=(e,t,o)=>{const{onColumnMenuFilterChange:s}=this.props;if(!s||!o)return;const r={syntheticEvent:e,filter:t,field:o,target:this,nativeEvent:e.nativeEvent};s.call(void 0,r)},this.expandChange=(e,t,o)=>{const{expandField:s,onExpandChange:r}=this.props;if(s&&r){const i={...this.getArguments(e),dataItem:t,level:o,value:this.expanded(t)};r.call(void 0,i)}},this.rowClick=(e,t)=>{if(this.props.onRowClick&&e.target.nodeName==="TD"){const o={dataItem:t.dataItem,level:t.level,...this.getArguments(e)};this.props.onRowClick.call(void 0,o)}},this.rowDoubleClick=(e,t)=>{if(this.props.onRowDoubleClick&&e.target.nodeName==="TD"){const o={dataItem:t.dataItem,level:t.level,...this.getArguments(e)};this.props.onRowDoubleClick.call(void 0,o)}},this.rowContextMenu=(e,t)=>{if(this.props.onRowContextMenu&&e.target.nodeName==="TD"){const o={dataItem:t.dataItem,level:t.level,...this.getArguments(e)};this.props.onRowContextMenu.call(void 0,o)}},this.onPageChange=e=>{if(this.props.onPageChange){const t={...this.getArguments(e.syntheticEvent),skip:e.skip,take:e.take};this.props.onPageChange.call(void 0,t)}},this.expandedSubItems=e=>{const t=[];return this.expanded(e)&&this.hasChildren(e)&&t.push(...g.getNestedValue(this.props.subItemsField,e)),t},this.getLeafDataItems=()=>this.flatData.map(e=>e.dataItem),this.expanded=e=>!!g.getNestedValue(this.props.expandField,e),this.hasChildren=e=>!!g.getNestedValue(this.props.subItemsField,e),this.showLicenseWatermark=!g.validatePackage(P.packageMetadata,{component:"TreeList"}),this.licenseMessage=g.getLicenseMessage(P.packageMetadata),this.dragLogic=new h.CommonDragLogic(this.columnReorder,g.noop,g.noop),this.columnResize=new h.ColumnResize(this.onResize.bind(this)),h.tableKeyboardNavigation.onConstructor({navigatable:!!l.navigatable,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef})}get _treeListId(){return this.props.id+"-treelist"}get document(){if(g.canUseDOM)return this.element&&this.element.ownerDocument||document}componentDidMount(){this.calculateSizes(this.element),h.tableKeyboardNavigation.onComponentDidMount({scope:this.element||void 0,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef})}getSnapshotBeforeUpdate(){return h.tableKeyboardNavigation.onGetSnapshotBeforeUpdate({document:this.document,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef}),null}componentDidUpdate(l){l.columns!==this.props.columns&&this.calculateSizes(this.element),h.tableKeyboardNavigation.onComponentDidUpdate({scope:this.element||void 0,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef})}componentWillUnmount(){this.columnsMap=[],this.prevData=[],this.flattedData=[],this.updateOnScroll=!1,this.getExtendedColumn.clear(),this.getColumnsMap.clear()}render(){const{columns:l=[],filterRow:e,scrollable:t="scrollable",resizable:o=!1,reorderable:s=!1,skip:r,take:i}=this.props,c=l.some(a=>!!a.filter||!!a.filterCell)||e!==void 0,m=e||h.FilterRow,f=h.tableKeyboardNavigationTools.getIdPrefix(this.navigationStateRef),L=this.getExtendedColumn(l,f),O=L.length!==this.extendedColumn.length;this.extendedColumn=L,this.columnsMap=this.getColumnsMap(this.extendedColumn,O);const C=this.extendedColumn.filter(a=>a.children.length===0);this.columnResize.columns=this.extendedColumn,this.columnResize.resizable=o,this.dragLogic.columns=this.extendedColumn,this.dragLogic.reorderable=s,this.dragLogic.groupable=!1;const D=d.createElement(h.Header,{headerRow:d.createElement(h.HeaderRow,{sort:this.props.sort,sortable:this.props.sortable,sortChange:this.sortChange,selectionChange:this.onHeaderSelectionChange,columns:this.extendedColumn,columnsMap:this.columnsMap,cellRender:this.props.headerCellRender,columnResize:this.columnResize,columnMenu:this.props.columnMenu,columnMenuFilter:this.props.columnMenuFilter,columnMenuFilterChange:this.columnMenuFilterChange,pressHandler:this.dragLogic.pressHandler,dragHandler:this.dragLogic.dragHandler,releaseHandler:this.dragLogic.releaseHandler,filterChange:this.headerFilterChange}),reorderable:this.props.reorderable,filterRow:c&&d.createElement(m,{columns:C,filter:this.props.filter,filterChange:this.filterChange,sort:this.props.sort,ariaRowIndex:this.columnsMap.length+1})||void 0,columnResize:this.columnResize}),N=this.props.style||{},{colSpans:V,hiddenColumns:B}=h.tableColumnsVirtualization({enabled:this.props.columnVirtualization,columns:C,scrollLeft:this.wrapperScrollLeft,tableViewPortWidth:parseFloat((N.width||"").toString())}),U=(a,S,w,E,k,x)=>C.map((p,u)=>{if(B[u])return null;const v=p.id?p.id:u,F=`${p.className?p.className+" ":""}${p.locked?"k-grid-content-sticky":""}`,y={id:h.tableKeyboardNavigationTools.generateNavigatableId(`${w}-${String(u)}`,f),colSpan:V[u],dataItem:a.dataItem,field:p.field,format:p.format,className:F||void 0,render:this.props.cellRender,onChange:this.itemChange,selectionChange:this.props.onSelectionChange?T=>{this.selectionChange({event:T,item:a,columnIndex:u,dataIndex:k})}:void 0,level:a.level,expandable:p.expandable,expanded:E,hasChildren:this.hasChildren(a.dataItem),onExpandChange:this.expandChange,colIndex:u,ariaColumnIndex:p.ariaColumnIndex,style:p.left!==void 0&&{left:p.left,right:p.right,borderRightWidth:p.rightBorder?"1px":""}||{},isSelected:Array.isArray(x)&&x.indexOf(u)>-1};return S&&p.editCell?d.createElement(p.editCell,{key:v,...y,onChange:this.itemChange}):p.cell?d.createElement(p.cell,{key:v,...y}):d.createElement(X.TreeListCell,{key:v,...y})});let b=this.flatData;const K=b.length;r!==void 0&&i!==void 0&&(b=b.slice(r,r+i)),t==="virtual"&&(b=A.tableRowsVirtualization({rows:b,tableViewPortHeight:parseFloat((N.height||N.maxHeight||"").toString()),scrollTop:this.wrapperScrollTop}),this.updateOnScroll=!1);const j=b.map(a=>a.level),q=this.columnsMap.length+(c?1:0)+1,W=b.length>0&&b.map((a,S)=>{const w=g.getAbsoluteVirtualRowIndex(t,a,S),E=g.getNestedValue(this.props.editField,a.dataItem),k=this.props.dataItemKey&&g.getter(this.props.dataItemKey)(a.dataItem),x=String(k||a.level.join(".")),p=this.expanded(a.dataItem),u=this.props.selectedField?g.getNestedValue(this.props.selectedField,a.dataItem):void 0,v={key:x,level:a.level,levels:j,dataItem:a.dataItem,selectedField:this.props.selectedField,rowHeight:t==="virtual"?a.height:this.props.rowHeight,render:this.props.rowRender,onDrop:this.onRowDrop,onDrag:this.onRowDrag,onClick:I=>this.rowClick(I,a),onDoubleClick:I=>this.rowDoubleClick(I,a),onContextMenu:I=>this.rowContextMenu(I,a),isAltRow:w%2!==0,expanded:p,rowIndex:w,ariaRowIndex:q+w,ariaSetSize:a.levelCount,ariaPosInSet:a.level[a.level.length-1]+1,isSelected:typeof u=="boolean"&&u},F=this.props.editRow,y=this.props.row||Z.TreeListRow,T=U(a,E,x,p,w,u);return E&&F?d.createElement(F,{...v,key:v.key},T):d.createElement(y,{...v,key:v.key},T)})||d.createElement("tr",{className:"k-table-row k-grid-norecords"},d.createElement("td",{colSpan:C.length},this.props.noRecords||d.createElement(Y.TreeListNoRecords,null))),_=a=>this.props.sort&&this.props.sort.some(S=>S.field===a),$=d.createElement("colgroup",{ref:a=>{this.columnResize.colGroupMain=a}},C.map((a,S)=>d.createElement("col",{key:S.toString(),className:_(a.field)?"k-sorted":void 0,style:a.width!==void 0?{width:a.width}:void 0}))),G=this.props.columnVirtualization||this.props.scrollable==="virtual",J=this.props.selectable&&this.props.selectable.drag?"none":void 0,H=this.props.tableProps||{};return d.createElement(h.TableKeyboardNavigationContext.Provider,{value:this.contextStateRef.current},d.createElement("div",{id:this.props.id,style:this.props.style,className:g.classNames("k-grid","k-treelist",this.props.className,{"k-treelist-scrollable":t!=="none"}),ref:a=>{this.element=a},onScroll:G?this.handleOnScroll:void 0,onKeyDown:this.onKeyDown,onFocus:this.onFocus,"aria-rowcount":K,"aria-colcount":C.length,role:"treegrid",...h.tableKeyboardNavigationScopeAttributes},this.props.toolbar,d.createElement(h.TableSelection,{selectable:this.props.selectable,onRelease:this.selectionRelease},d.createElement("table",{className:"k-table k-grid-table",...H,style:{...H.style||{},userSelect:J},role:"presentation"},$,D,d.createElement("tbody",{className:"k-table-tbody",...h.tableKeyboardNavigationBodyAttributes,role:"presentation"},W))),this.props.pager&&d.createElement(this.props.pager,{className:"k-grid-pager",total:K,skip:r,take:i,onPageChange:this.onPageChange}),s&&d.createElement(d.Fragment,null,d.createElement(h.DropClue,{ref:this.dragLogic.refDropElementClue}),d.createElement(h.DragClue,{ref:this.dragLogic.refDragElementClue})),this.showLicenseWatermark&&d.createElement(g.WatermarkOverlay,{message:this.licenseMessage})))}get columns(){const l=this.extendedColumn.filter(t=>t.declarationIndex>=0&&t.parentIndex===-1),e=t=>(t.sort((o,s)=>o.declarationIndex-s.declarationIndex),t.map(o=>{const{declarationIndex:s,parentIndex:r,depth:i,colSpan:c,rowSpan:m,index:f,kFirst:L,groupable:O,children:C,...D}=o;return C.length?{children:e(C),...D}:D}));return e(l)}get flatData(){const{data:l=[],rowHeight:e=0}=this.props;let t=0;const o=r=>{const i={height:e,offsetTop:t};return t+=i.height,i},s=this.updateOnScroll&&this.prevData===l&&this.tbodyOffsetTop>0&&this.flattedData.length?this.flattedData:h.flatData(l,this.expandedSubItems,o);return this.prevData=l,this.flattedData=s,s}selectionChange(l){if(this.props.onSelectionChange){const{event:e,item:t,dataIndex:o,columnIndex:s}=l,{mode:r,cell:i}=h.getSelectionOptions(this.props.selectable),c={...this.getArguments(e.syntheticEvent),dataItem:t.dataItem,level:t.level,startColIndex:s,endColIndex:s,startRowIndex:o,endRowIndex:o,dataItems:this.getLeafDataItems(),altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,mode:r,cell:i,isDrag:!1,componentId:this._treeListId,selectedField:this.props.selectedField||""};this.props.onSelectionChange.call(void 0,c)}}raiseDataEvent(l,e,t){const o=this.props.onDataStateChange;if(l)l.call(void 0,{...this.getArguments(t),...e});else if(o){const s={...this.getArguments(t),dataState:{...this.getDataState(),...e}};o.call(void 0,s)}}getDataState(){return{filter:this.props.filter,sort:this.props.sort}}getArguments(l){return{nativeEvent:l&&l.nativeEvent,syntheticEvent:l,target:this}}};M.propTypes={data:n.array,resizable:n.bool,reorderable:n.bool,sortable:n.oneOfType([n.bool,n.shape({mode:n.oneOf(["single","multiple"]),allowUnsort:n.bool})]),onSortChange:n.func,sort:n.array,columns:n.arrayOf(n.object),columnVirtualization:n.bool,filter:n.array,onFilterChange:n.func,filterRow:n.any,toolbar:n.any,noRecords:n.any,onExpandChange:n.func,expandField:n.string,subItemsField:n.string,selectedField:n.string,onSelectionChange:n.func,onHeaderSelectionChange:n.func,onRowClick:n.func,onItemChange:n.func,editField:n.string,scrollable:n.oneOf(["none","scrollable","virtual"]),rowHeight:n.number,style:n.object,tableProps:n.object,pager:n.any,skip:n.number,take:n.number,onPageChange:n.func,onDataStateChange:n.func,onColumnResize:n.func,onColumnReorder:n.func,dataItemKey:n.string,navigatable:n.bool},M.contextType=h.TableKeyboardNavigationContext;let z=M;exports.TreeList=z;
8
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const jt=require("react"),c=require("prop-types"),h=require("@progress/kendo-react-common"),i=require("@progress/kendo-react-data-tools"),nt=require("./utils/index.js"),qt=require("./cells/TreeListCell.js"),Ut=require("./TreeListNoRecords.js"),_t=require("./rows/TreeListRow.js"),rt=require("./package-metadata.js");function $t(R){const V=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(R){for(const k in R)if(k!=="default"){const B=Object.getOwnPropertyDescriptor(R,k);Object.defineProperty(V,k,B.get?B:{enumerable:!0,get:()=>R[k]})}}return V.default=R,Object.freeze(V)}const t=$t(jt),xe=t.forwardRef((R,V)=>{var Ye;const{columns:k=[],filterRow:B,scrollable:A="scrollable",resizable:Ie=!1,reorderable:G=!1,skip:j,take:X,data:le=[],rowHeight:Ne,columnVirtualization:at,selectable:q,selectedField:ce,editField:ot,expandField:se,subItemsField:U,dataItemKey:De,id:Y,style:ie,className:Fe,toolbar:Te,noRecords:lt,tableProps:ct,pager:Z,sort:_,sortable:st,filter:it,columnMenu:ut,columnMenuFilter:dt,row:ft,editRow:Me,rowRender:gt,cellRender:ht,headerCellRender:mt}=R,y=t.useRef(null),ue=t.useRef(null),S=t.useRef(null),ee=t.useRef(null),H=t.useRef(null),$=t.useRef(null),He=t.useRef(!1),de=t.useRef(!1),fe=t.useRef(!1),ge=t.useRef(0),he=t.useRef(0),te=t.useRef(!1),ne=t.useRef(0),me=t.useRef([]),J=t.useRef([]),x=t.useRef([]),Q=t.useRef([]),s=t.useRef(R);s.current=R;const I=t.useRef({current:void 0}),F=t.useRef({current:void 0}),Le=t.useMemo(()=>!h.validatePackage(rt.packageMetadata,{component:"TreeList"}),[]),Ke=t.useMemo(()=>h.getLicenseMessage(rt.packageMetadata),[]),C=t.useRef(null),w=t.useRef(null),[,pt]=t.useReducer(e=>!e,!0),K=Y?Y+"-treelist":void 0,Pe=()=>{var e;if(h.canUseDOM)return((e=y.current)==null?void 0:e.ownerDocument)||document},ze=t.useCallback(e=>!!h.getNestedValue(se,e),[se]),We=t.useCallback(e=>!!h.getNestedValue(U,e),[U]),bt=t.useCallback(e=>{const n=[];return ze(e)&&We(e)&&n.push(...h.getNestedValue(U,e)),n},[ze,We,U]),pe=t.useMemo(()=>h.memoizeOne((e,n)=>i.readColumns(e,{prevId:0,idPrefix:n})),[]),be=t.useMemo(()=>h.memoizeOne((e,n)=>i.mapColumns(e,n)),[]),m=t.useRef(null),vt=t.useCallback(e=>{if(!y.current)return;const{rowIndex:n=0}=e,r=s.current,a=r.rowHeight||0,l=S.current||y.current;if(r.scrollable==="virtual"||a)l.scroll(0,(n-1)*a);else{const d=(S.current||y.current).querySelector(`tbody > tr:nth-child(${n})`);if(d){const o=d.offsetTop-ne.current;l.scroll(0,o)}}},[]);if(t.useImperativeHandle(m,()=>({get element(){return y.current},props:R,scrollIntoView:vt})),t.useImperativeHandle(V,()=>m.current),h.useWebMcpRegister("treelist",m,R,R.webMcp),!C.current){const e=(a,l,d,o,f)=>{var v,u,g;const p=(v=C.current)==null?void 0:v.colGroupMain;if(p){let E=0;const b=p.children;for(let M=0;M<b.length;M++){const O=b[M].style.width;if(!O){E=0;break}E+=parseFloat(O)}E=Math.round(E);const L=E?E+"px":"";H.current&&(H.current.style.width=L),$.current&&($.current.style.width=L)}if(s.current.onColumnResize){let E=0;const b=(g=(u=C.current)==null?void 0:u.colGroupMain)==null?void 0:g.children;if(b)for(let D=0;D<b.length;D++)E+=parseFloat(b[D].style.width||"0");const M=x.current.filter(D=>D.declarationIndex>=0&&D.parentIndex===-1),O=D=>(D.sort((oe,we)=>oe.declarationIndex-we.declarationIndex),D.map(oe=>{const{declarationIndex:we,parentIndex:At,depth:Gt,colSpan:ke,rowSpan:Se,index:Qt,kFirst:Xt,groupable:Yt,children:et,...tt}=oe;return et.length?{children:O(et),...tt}:tt})),Ze={columns:O(M),totalWidth:E,index:a,nativeEvent:o,newWidth:l,oldWidth:d,end:f,target:m.current};s.current.onColumnResize(Ze)}};C.current=new i.ColumnResize(e);const n=(a,l,d)=>{const o=x.current,f=o[a].depth,p=u=>{do u++;while(u<o.length&&o[u].depth>f);return u},v=o.splice(a,p(a)-a);if(o.splice(a<l?p(l-v.length):l,0,...v),o.filter(u=>u.declarationIndex>=0).forEach((u,g)=>u.orderIndex=g),s.current.onColumnReorder){const u=o.filter(b=>b.declarationIndex>=0&&b.parentIndex===-1),g=b=>(b.sort((L,M)=>L.declarationIndex-M.declarationIndex),b.map(L=>{const{declarationIndex:M,parentIndex:O,depth:Ze,colSpan:D,rowSpan:oe,index:we,kFirst:At,groupable:Gt,children:ke,...Se}=L;return ke.length?{children:g(ke),...Se}:Se})),E={target:m.current,columns:g(u),nativeEvent:d};s.current.onColumnReorder(E)}};w.current=new i.CommonDragLogic(n,h.noop,h.noop);const r=C.current.dragHandler.bind(C.current);C.current.dragHandler=(a,l,d,o)=>{Ct(),r(a,l,d,o)},i.tableKeyboardNavigation.onConstructor({navigatable:!!s.current.navigatable,contextStateRef:I.current,navigationStateRef:F.current})}const ve=t.useCallback(e=>{var d;if(!e||s.current.scrollable==="none")return;if(S.current){const o=S.current.querySelector("table");o!=null&&o.tBodies[0]&&(ne.current=o.tBodies[0].offsetTop);const f=(d=ee.current)==null?void 0:d.parentElement;if(f){const p=S.current.offsetWidth-S.current.clientWidth;f.style.paddingInlineEnd=p+"px"}return}const n=Array.from(e.childNodes),r=n.find(o=>o.nodeName==="TABLE"),a=s.current.toolbar&&n.find(o=>o.nodeType===1&&o.classList.contains("k-grid-toolbar"));let l=0;if(a){const o=a.style.boxSizing;a.style.boxSizing="border-box",l=parseFloat(String(window.getComputedStyle(a).height))||a.offsetHeight,a.style.boxSizing=o,a.getAttribute("style")||a.removeAttribute("style")}ne.current=r.tBodies[0].offsetTop,nt.setHeaderRowsTop(r,l)},[]),Ct=()=>{var v,u;const e=(v=C.current)==null?void 0:v.colGroupMain;if(!e||!H.current)return;const n=e.children,r=x.current.filter(g=>g.children.length===0),a=(u=C.current)==null?void 0:u.colGroupHeader,l=H.current.offsetWidth;let d=0,o=!0;for(let g=0;g<r.length;g++)if(r[g].width!==void 0)d+=parseFloat(String(r[g].width));else{o=!1;break}if(!o||!l||!d||Math.abs(l-d)<=1)return;He.current=!0;const f=l/d;let p=0;for(let g=0;g<r.length;g++){const E=parseFloat(String(r[g].width));let b;g===r.length-1?b=l-p:b=Math.round(E*f),p+=b,r[g].width=b,n[g]&&(n[g].style.width=b+"px"),a!=null&&a.children[g]&&(a.children[g].style.width=b+"px")}H.current&&(H.current.style.width=l+"px"),$.current&&($.current.style.width=l+"px")},re=()=>J.current.map(e=>e.dataItem),P=t.useCallback((e,n,r)=>{const a=s.current;if(e)e({nativeEvent:r==null?void 0:r.nativeEvent,syntheticEvent:r,target:m.current,...n});else if(a.onDataStateChange){const l={nativeEvent:r==null?void 0:r.nativeEvent,syntheticEvent:r,target:m.current,dataState:{filter:a.filter,sort:a.sort,...n}};a.onDataStateChange(l)}},[]),Rt=t.useCallback((e,n,r)=>{P(s.current.onSortChange,{sort:n,field:r},e)},[P]),Et=t.useCallback((e,n,r)=>{P(s.current.onFilterChange,{filter:n,field:r},e)},[P]),yt=t.useCallback(e=>{P(s.current.onFilterChange,{filter:e.filter,field:e.field},e.syntheticEvent)},[P]),wt=t.useCallback((e,n,r)=>{const a=s.current;if(!a.onColumnMenuFilterChange)return;const l={syntheticEvent:e,filter:n,field:r,target:m.current,nativeEvent:e.nativeEvent};a.onColumnMenuFilterChange(l)},[]),kt=t.useCallback((e,n,r)=>{const a=s.current;if(a.expandField&&a.onExpandChange){const l={nativeEvent:e==null?void 0:e.nativeEvent,syntheticEvent:e,target:m.current,dataItem:n,level:r,value:!!h.getNestedValue(a.expandField,n)};a.onExpandChange(l)}},[]),Oe=t.useCallback(e=>{var r,a;const n=s.current;if(e.field===n.expandField){if(n.onExpandChange){const l={nativeEvent:(r=e.syntheticEvent)==null?void 0:r.nativeEvent,syntheticEvent:e.syntheticEvent,target:m.current,dataItem:e.dataItem,level:e.level,value:e.value};n.onExpandChange(l)}return}if(n.onItemChange){const l={nativeEvent:(a=e.syntheticEvent)==null?void 0:a.nativeEvent,syntheticEvent:e.syntheticEvent,target:m.current,dataItem:e.dataItem,level:e.level,field:e.field,value:e.value};n.onItemChange(l)}},[]),St=t.useCallback(e=>{var r;const n=s.current;if(n.onSelectionChange){const{event:a,item:l,dataIndex:d,columnIndex:o}=e,{mode:f,cell:p}=i.getSelectionOptions(n.selectable),v={nativeEvent:(r=a.syntheticEvent)==null?void 0:r.nativeEvent,syntheticEvent:a.syntheticEvent,target:m.current,dataItem:l.dataItem,level:l.level,startColIndex:o,endColIndex:o,startRowIndex:d,endRowIndex:d,dataItems:re(),altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,mode:f,cell:p,isDrag:!1,componentId:K,selectedField:n.selectedField||""};n.onSelectionChange(v)}},[K]),xt=t.useCallback(e=>{var r;const n=s.current;if(n.onHeaderSelectionChange){const a={field:e.field,nativeEvent:(r=e.syntheticEvent)==null?void 0:r.nativeEvent,syntheticEvent:e.syntheticEvent,target:m.current,dataItems:re()};n.onHeaderSelectionChange(a)}},[]),Ve=t.useCallback(e=>{const n=s.current;if(n.onSelectionChange){const r={syntheticEvent:void 0,target:m.current,selectedField:n.selectedField||"",componentId:K,dataItems:re(),dataItem:null,level:[],...e};n.onSelectionChange(r)}},[K]),It=t.useCallback((e,n)=>{if(s.current.onRowClick&&e.target.nodeName==="TD"){const r={dataItem:n.dataItem,level:n.level,nativeEvent:e==null?void 0:e.nativeEvent,syntheticEvent:e,target:m.current};s.current.onRowClick(r)}},[]),Nt=t.useCallback((e,n)=>{if(s.current.onRowDoubleClick&&e.target.nodeName==="TD"){const r={dataItem:n.dataItem,level:n.level,nativeEvent:e==null?void 0:e.nativeEvent,syntheticEvent:e,target:m.current};s.current.onRowDoubleClick(r)}},[]),Dt=t.useCallback((e,n)=>{if(s.current.onRowContextMenu&&e.target.nodeName==="TD"){const r={dataItem:n.dataItem,level:n.level,nativeEvent:e==null?void 0:e.nativeEvent,syntheticEvent:e,target:m.current};s.current.onRowContextMenu(r)}},[]),Be=t.useCallback(e=>{var n;if(s.current.onPageChange){const r={nativeEvent:(n=e.syntheticEvent)==null?void 0:n.nativeEvent,syntheticEvent:e.syntheticEvent,target:m.current,skip:e.skip,take:e.take};s.current.onPageChange(r)}},[]),Ft=t.useCallback(e=>{s.current.onRowDrag&&s.current.onRowDrag({...e,target:m.current})},[]),Tt=t.useCallback(e=>{s.current.onRowDrop&&s.current.onRowDrop({...e,target:m.current})},[]),Ae=t.useCallback(e=>{if(i.tableKeyboardNavigation.onKeyDown(e,{navigatable:!!s.current.navigatable,contextStateRef:I.current,navigationStateRef:F.current}),s.current.onKeyDown){const{mode:n,cell:r}=i.getSelectionOptions(s.current.selectable),a={dataItems:re(),mode:n,cell:r,componentId:K,selectedField:s.current.selectedField,nativeEvent:e==null?void 0:e.nativeEvent,syntheticEvent:e,target:m.current};s.current.onKeyDown(a)}},[K]),Ge=t.useCallback(e=>{i.tableKeyboardNavigation.onFocus(e,{contextStateRef:I.current})},[]),Mt=t.useCallback(e=>{var p;const n=e.currentTarget.scrollLeft,r=e.currentTarget.scrollTop,a=s.current,d=a.rowHeight||0,o=0;let f=!1;if(a.columnVirtualization&&Math.abs(ge.current-n)>o&&(ge.current=n,f=!0),a.scrollable==="virtual"&&Math.abs(he.current-r)>d&&(he.current=r,f=!0),f){if(I.current.current&&F.current.current){const v=(p=Pe())==null?void 0:p.activeElement,u=v&&i.tableKeyboardNavigationTools.getNavigatableId(v);u&&u===I.current.current.activeId&&(F.current.current.activeElementIsFocused=!0)}te.current=!0,pt()}ee.current&&!fe.current&&(de.current=!0,ee.current.scrollLeft=n),fe.current=!1},[]),Ht=t.useCallback(e=>{if(de.current){de.current=!1;return}const n=e.currentTarget.scrollLeft;S.current&&S.current.scrollLeft!==n&&(fe.current=!0,S.current.scrollLeft=n)},[]),Ce=t.useRef(!1);t.useLayoutEffect(()=>(ve(y.current),i.tableKeyboardNavigation.onComponentDidMount({scope:ue.current||y.current||void 0,contextStateRef:I.current,navigationStateRef:F.current}),()=>{Ce.current=!1,Q.current=[],me.current=[],J.current=[],te.current=!1,pe.clear(),be.clear()}),[ve,pe,be]),t.useLayoutEffect(()=>{i.tableKeyboardNavigation.onGetSnapshotBeforeUpdate({document:Pe(),contextStateRef:I.current,navigationStateRef:F.current})});const je=t.useRef(k);t.useLayoutEffect(()=>{if(!Ce.current){Ce.current=!0;return}je.current!==k&&ve(y.current),je.current=k,i.tableKeyboardNavigation.onComponentDidUpdate({scope:ue.current||y.current||void 0,contextStateRef:I.current,navigationStateRef:F.current})});const qe=k.some(e=>!!e.filter||!!e.filterCell)||B!==void 0,Lt=B||i.FilterRow,Ue=i.tableKeyboardNavigationTools.getIdPrefix(F.current),_e=pe(k,Ue),Kt=_e.length!==x.current.length;x.current=_e,Q.current=be(x.current,Kt);const N=x.current.filter(e=>e.children.length===0);C.current.columns=x.current,C.current.resizable=Ie,w.current.columns=x.current,w.current.reorderable=G,w.current.groupable=!1;let T=(()=>{let e=0;const n=a=>{const l={height:Ne||0,offsetTop:e};return e+=l.height,l},r=te.current&&me.current===le&&ne.current>0&&J.current.length?J.current:i.flatData(le,bt,n);return me.current=le,J.current=r,r})();const ae=T.length;j!==void 0&&X!==void 0&&(T=T.slice(j,j+X));const Re=ie||{};A==="virtual"&&(T=nt.tableRowsVirtualization({rows:T,tableViewPortHeight:parseFloat((Re.height||Re.maxHeight||"").toString()),scrollTop:he.current}),te.current=!1);const{colSpans:Pt,hiddenColumns:zt}=i.tableColumnsVirtualization({enabled:at,columns:N,scrollLeft:ge.current,tableViewPortWidth:parseFloat((Re.width||"").toString())}),Wt=T.map(e=>e.level),Ot=Q.current.length+(qe?1:0)+1,$e=t.createElement(i.Header,{headerRow:t.createElement(i.HeaderRow,{sort:_,sortable:st,sortChange:Rt,selectionChange:xt,columns:x.current,columnsMap:Q.current,cellRender:mt,columnResize:C.current,columnMenu:ut,columnMenuFilter:dt,columnMenuFilterChange:wt,pressHandler:w.current.pressHandler,dragHandler:w.current.dragHandler,releaseHandler:w.current.releaseHandler,filterChange:Et}),reorderable:G,className:A!=="none"?"k-table-thead":void 0,role:A!=="none"?"rowgroup":void 0,filterRow:qe&&t.createElement(Lt,{columns:N,filter:it,filterChange:yt,sort:_,ariaRowIndex:Q.current.length+1})||void 0,columnResize:C.current}),Vt=(e,n,r,a,l,d)=>N.map((o,f)=>{if(zt[f])return null;const p=o.id?o.id:f,v=`${o.className?o.className+" ":""}${o.locked?"k-grid-content-sticky":""}`,u={id:i.tableKeyboardNavigationTools.generateNavigatableId(`${r}-${String(f)}`,Ue),colSpan:Pt[f],dataItem:e.dataItem,field:o.field,format:o.format,className:v||void 0,render:ht,onChange:Oe,selectionChange:R.onSelectionChange?g=>{St({event:g,item:e,columnIndex:f,dataIndex:l})}:void 0,level:e.level,expandable:o.expandable,expanded:a,hasChildren:!!h.getNestedValue(U,e.dataItem),onExpandChange:kt,colIndex:f,ariaColumnIndex:o.ariaColumnIndex,style:o.left!==void 0&&{left:o.left,right:o.right,borderRightWidth:o.rightBorder?"1px":""}||{},isSelected:Array.isArray(d)&&d.indexOf(f)>-1};return n&&o.editCell?t.createElement(o.editCell,{key:p,...u,onChange:Oe}):o.cell?t.createElement(o.cell,{key:p,...u}):t.createElement(qt.TreeListCell,{key:p,...u})}),Je=T.length>0&&T.map((e,n)=>{const r=h.getNestedValue(ot,e.dataItem),a=De&&h.getter(De)(e.dataItem),l=String(a||e.level.join(".")),d=!!h.getNestedValue(se,e.dataItem),o=ce?h.getNestedValue(ce,e.dataItem):void 0,f={key:l,level:e.level,levels:Wt,dataItem:e.dataItem,selectedField:ce,rowHeight:A==="virtual"?e.height:Ne,render:gt,onDrop:Tt,onDrag:Ft,onClick:u=>It(u,e),onDoubleClick:u=>Nt(u,e),onContextMenu:u=>Dt(u,e),isAltRow:n%2!==0,expanded:d,rowIndex:n,ariaRowIndex:Ot+n,ariaSetSize:e.levelCount,ariaPosInSet:e.level[e.level.length-1]+1,isSelected:typeof o=="boolean"&&o},p=ft||_t.TreeListRow,v=Vt(e,r,l,d,n,o);return r&&Me?t.createElement(Me,{...f,key:f.key},v):t.createElement(p,{...f,key:f.key},v)})||t.createElement("tr",{className:"k-table-row k-grid-norecords"},t.createElement("td",{colSpan:N.length},lt||t.createElement(Ut.TreeListNoRecords,null))),Bt=e=>_==null?void 0:_.some(n=>n.field===e),Ee=N.map(e=>t.createElement("col",{key:e.declarationIndex,className:Bt(e.field)?"k-sorted":void 0,style:e.width!==void 0?{width:e.width}:void 0})),Qe=q!=null&&q.drag?"none":void 0,z=ct||{},Xe=A!=="none";let W=0;if(Xe&&Ie&&He.current){let e=!0;for(let n=0;n<N.length;n++)if(N[n].width!==void 0)W+=parseFloat(String(N[n].width));else{e=!1;break}e||(W=0)}let ye;return W?ye={width:W}:(Ye=z.style)!=null&&Ye.width&&(ye={width:z.style.width}),Xe?t.createElement(i.TableKeyboardNavigationContext.Provider,{value:I.current.current},t.createElement("div",{id:Y,style:ie,className:h.classNames("k-grid","k-treelist","k-treelist-scrollable",Fe),ref:e=>{y.current=e},onKeyDown:Ae,onFocus:Ge},Te,t.createElement("div",{className:"k-grid-aria-root k-treelist",role:"treegrid","aria-rowcount":ae,"aria-colcount":N.length,ref:e=>{ue.current=e},...i.tableKeyboardNavigationScopeAttributes},t.createElement("div",{className:h.classNames("k-grid-header",{"k-grid-draggable-header":G})},t.createElement("div",{className:"k-grid-header-wrap",ref:e=>{ee.current=e},onScroll:Ht},t.createElement("table",{className:"k-table k-grid-header-table",role:"presentation",style:ye,ref:e=>{H.current=e}},t.createElement("colgroup",{ref:e=>{C.current.colGroupHeader=e}},Ee),$e))),t.createElement("div",{className:"k-grid-container"},t.createElement("div",{className:"k-grid-content",ref:e=>{S.current=e},onScroll:Mt},t.createElement(i.TableSelection,{selectable:q,onRelease:Ve},t.createElement("table",{className:"k-table k-grid-table",...z,style:{...z.style||{},userSelect:Qe,...W?{width:W}:{}},role:"presentation",ref:e=>{$.current=e}},t.createElement("colgroup",{ref:e=>{C.current.colGroupMain=e}},Ee),t.createElement("tbody",{className:"k-table-tbody",...i.tableKeyboardNavigationBodyAttributes,role:"rowgroup"},Je)))))),Z&&t.createElement(Z,{className:"k-grid-pager",total:ae,skip:j,take:X,onPageChange:Be}),G&&t.createElement(t.Fragment,null,t.createElement(i.DropClue,{ref:w.current.refDropElementClue}),t.createElement(i.DragClue,{ref:w.current.refDragElementClue})),Le&&t.createElement(h.WatermarkOverlay,{message:Ke}))):t.createElement(i.TableKeyboardNavigationContext.Provider,{value:I.current.current},t.createElement("div",{id:Y,style:ie,className:h.classNames("k-grid","k-treelist",Fe),ref:e=>{y.current=e},onKeyDown:Ae,onFocus:Ge,"aria-rowcount":ae,"aria-colcount":N.length,role:"treegrid",...i.tableKeyboardNavigationScopeAttributes},Te,t.createElement(i.TableSelection,{selectable:q,onRelease:Ve},t.createElement("table",{className:"k-table k-grid-table",...z,style:{...z.style||{},userSelect:Qe},role:"presentation"},t.createElement("colgroup",{ref:e=>{C.current.colGroupMain=e}},Ee),$e,t.createElement("tbody",{className:"k-table-tbody",...i.tableKeyboardNavigationBodyAttributes,role:"presentation"},Je))),Z&&t.createElement(Z,{className:"k-grid-pager",total:ae,skip:j,take:X,onPageChange:Be}),G&&t.createElement(t.Fragment,null,t.createElement(i.DropClue,{ref:w.current.refDropElementClue}),t.createElement(i.DragClue,{ref:w.current.refDragElementClue})),Le&&t.createElement(h.WatermarkOverlay,{message:Ke})))});xe.propTypes={data:c.array,resizable:c.bool,reorderable:c.bool,sortable:c.oneOfType([c.bool,c.shape({mode:c.oneOf(["single","multiple"]),allowUnsort:c.bool})]),onSortChange:c.func,sort:c.array,columns:c.arrayOf(c.object),columnVirtualization:c.bool,filter:c.array,onFilterChange:c.func,filterRow:c.any,toolbar:c.any,noRecords:c.any,onExpandChange:c.func,expandField:c.string,subItemsField:c.string,selectedField:c.string,onSelectionChange:c.func,onHeaderSelectionChange:c.func,onRowClick:c.func,onItemChange:c.func,editField:c.string,scrollable:c.oneOf(["none","scrollable","virtual"]),rowHeight:c.number,style:c.object,tableProps:c.object,pager:c.any,skip:c.number,take:c.number,onPageChange:c.func,onDataStateChange:c.func,onColumnResize:c.func,onColumnReorder:c.func,dataItemKey:c.string,navigatable:c.bool};xe.displayName="KendoReactTreeList";exports.TreeList=xe;