@progress/kendo-react-treelist 11.4.0-develop.6 → 11.4.0-develop.8
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.
- package/TreeList.js +1 -1
- package/TreeList.mjs +50 -50
- package/dist/cdn/js/kendo-react-treelist.js +1 -1
- package/index.d.mts +1 -0
- package/index.d.ts +1 -0
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +10 -10
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 G=require("react"),n=require("prop-types"),g=require("@progress/kendo-react-common"),h=require("@progress/kendo-react-data-tools"),H=require("./utils/index.js"),J=require("./cells/TreeListCell.js"),Q=require("./TreeListNoRecords.js"),X=require("./rows/TreeListRow.js"),Y=require("./package-metadata.js");function Z(y){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(y){for(const e in y)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(y,e);Object.defineProperty(l,e,t.get?t:{enumerable:!0,get:()=>y[e]})}}return l.default=y,Object.freeze(l)}const d=Z(G),F=class F 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.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=p=>{do p++;while(p<this.extendedColumn.length&&this.extendedColumn[p].depth>s);return p},i=this.extendedColumn.splice(e,r(e)-e);if(this.extendedColumn.splice(e<t?r(t-i.length):t,0,...i),this.extendedColumn.filter(p=>p.declarationIndex>=0).forEach((p,m)=>p.orderIndex=m),this.props.onColumnReorder){const p={target:this,columns:this.columns,nativeEvent:o};this.props.onColumnReorder.call(void 0,p)}},this.onResize=(e,t,o,s,r)=>{if(this.props.onColumnResize){const i=this.extendedColumn.filter(m=>m.children.length===0).reduce((m,C)=>m+=parseFloat(String(C.width)),0),p={columns:this.columns,totalWidth:i,index:e,nativeEvent:s,newWidth:t,oldWidth:o,end:r,target:this};this.props.onColumnResize.call(void 0,p)}},this.handleOnScroll=e=>{const t=e.currentTarget.scrollLeft,o=e.currentTarget.scrollTop,{columnVirtualization:s,scrollable:r,rowHeight:i=0}=this.props,p=i,m=0;let C=!1;s&&Math.abs(this.wrapperScrollLeft-t)>m&&(this.wrapperScrollLeft=t,C=!0),r==="virtual"&&Math.abs(this.wrapperScrollTop-o)>p&&(this.wrapperScrollTop=o,C=!0),C&&(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,H.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)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(Y.packageMetadata,{component:"TreeList"}),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,p=l.some(a=>!!a.filter||!!a.filterCell)||e!==void 0,m=e||h.FilterRow,C=h.tableKeyboardNavigationTools.getIdPrefix(this.navigationStateRef),T=this.getExtendedColumn(l,C),M=T.length!==this.extendedColumn.length;this.extendedColumn=T,this.columnsMap=this.getColumnsMap(this.extendedColumn,M);const b=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:p&&d.createElement(m,{columns:b,filter:this.props.filter,filterChange:this.filterChange,sort:this.props.sort,ariaRowIndex:this.columnsMap.length+1})||void 0,columnResize:this.columnResize}),L=this.props.style||{},{colSpans:P,hiddenColumns:A}=h.tableColumnsVirtualization({enabled:this.props.columnVirtualization,columns:b,scrollLeft:this.wrapperScrollLeft,tableViewPortWidth:parseFloat((L.width||"").toString())}),V=(a,f,I,E,k,x)=>b.map((c,u)=>{if(A[u])return null;const R=c.id?c.id:u,N=`${c.className?c.className+" ":""}${c.locked?"k-grid-content-sticky":""}`,w={id:h.tableKeyboardNavigationTools.generateNavigatableId(`${I}-${String(u)}`,C),colSpan:P[u],dataItem:a.dataItem,field:c.field,format:c.format,className:N||void 0,render:this.props.cellRender,onChange:this.itemChange,selectionChange:this.props.onSelectionChange?S=>{this.selectionChange({event:S,item:a,columnIndex:u,dataIndex:k})}:void 0,level:a.level,expandable:c.expandable,expanded:E,hasChildren:this.hasChildren(a.dataItem),onExpandChange:this.expandChange,colIndex:u,ariaColumnIndex:c.ariaColumnIndex,style:c.left!==void 0&&{left:c.left,right:c.right,borderRightWidth:c.rightBorder?"1px":""}||{},isSelected:Array.isArray(x)&&x.indexOf(u)>-1};return f&&c.editCell?d.createElement(c.editCell,{key:R,...w,onChange:this.itemChange}):c.cell?d.createElement(c.cell,{key:R,...w}):d.createElement(J.TreeListCell,{key:R,...w})});let v=this.flatData;const O=v.length;r!==void 0&&i!==void 0&&(v=v.slice(r,r+i)),t==="virtual"&&(v=H.tableRowsVirtualization({rows:v,tableViewPortHeight:parseFloat((L.height||L.maxHeight||"").toString()),scrollTop:this.wrapperScrollTop}),this.updateOnScroll=!1);const B=v.map(a=>a.level),U=this.columnsMap.length+(p?1:0)+1,j=v.length>0&&v.map((a,f)=>{const I=g.getNestedValue(this.props.editField,a.dataItem),E=this.props.dataItemKey&&g.getter(this.props.dataItemKey)(a.dataItem),k=String(E||a.level.join(".")),x=this.expanded(a.dataItem),c=this.props.selectedField?g.getNestedValue(this.props.selectedField,a.dataItem):void 0,u={key:k,level:a.level,levels:B,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:S=>this.rowClick(S,a),onDoubleClick:S=>this.rowDoubleClick(S,a),onContextMenu:S=>this.rowContextMenu(S,a),isAltRow:f%2!==0,expanded:x,rowIndex:f,ariaRowIndex:U+f,ariaSetSize:a.levelCount,ariaPosInSet:a.level[a.level.length-1]+1,isSelected:typeof c=="boolean"&&c},R=this.props.editRow,N=this.props.row||X.TreeListRow,w=V(a,I,k,x,f,c);return I&&R?d.createElement(R,{...u,key:u.key},w):d.createElement(N,{...u,key:u.key},w)})||d.createElement("tr",{className:"k-table-row k-grid-norecords"},d.createElement("td",{colSpan:b.length},this.props.noRecords||d.createElement(Q.TreeListNoRecords,null))),q=a=>this.props.sort&&this.props.sort.some(f=>f.field===a),W=d.createElement("colgroup",{ref:a=>{this.columnResize.colGroupMain=a}},b.map((a,f)=>d.createElement("col",{key:f.toString(),className:q(a.field)?"k-sorted":void 0,style:a.width!==void 0?{width:a.width}:void 0}))),_=this.props.columnVirtualization||this.props.scrollable==="virtual",$=this.props.selectable&&this.props.selectable.drag?"none":void 0,K=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-grid-md","k-treelist",this.props.className,{"k-treelist-scrollable":t!=="none"}),ref:a=>{this.element=a},onScroll:_?this.handleOnScroll:void 0,onKeyDown:this.onKeyDown,onFocus:this.onFocus,"aria-rowcount":O,"aria-colcount":b.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-table-md k-grid-table",...K,style:{...K.style||{},userSelect:$},role:"presentation"},W,D,d.createElement("tbody",{className:"k-table-tbody",...h.tableKeyboardNavigationBodyAttributes,role:"presentation"},j))),this.props.pager&&d.createElement(this.props.pager,{className:"k-grid-pager",total:O,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,null)))}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:p,rowSpan:m,index:C,kFirst:T,groupable:M,children:b,...D}=o;return b.length?{children:e(b),...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),p={...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,p)}}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}}};F.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},F.contextType=h.TableKeyboardNavigationContext;let z=F;exports.TreeList=z;
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const J=require("react"),a=require("prop-types"),g=require("@progress/kendo-react-common"),h=require("@progress/kendo-react-data-tools"),H=require("./utils/index.js"),Q=require("./cells/TreeListCell.js"),X=require("./TreeListNoRecords.js"),Y=require("./rows/TreeListRow.js"),P=require("./package-metadata.js");function Z(y){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(y){for(const e in y)if(e!=="default"){const t=Object.getOwnPropertyDescriptor(y,e);Object.defineProperty(l,e,t.get?t:{enumerable:!0,get:()=>y[e]})}}return l.default=y,Object.freeze(l)}const c=Z(J),F=class F extends c.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=p=>{do p++;while(p<this.extendedColumn.length&&this.extendedColumn[p].depth>s);return p},i=this.extendedColumn.splice(e,r(e)-e);if(this.extendedColumn.splice(e<t?r(t-i.length):t,0,...i),this.extendedColumn.filter(p=>p.declarationIndex>=0).forEach((p,m)=>p.orderIndex=m),this.props.onColumnReorder){const p={target:this,columns:this.columns,nativeEvent:o};this.props.onColumnReorder.call(void 0,p)}},this.onResize=(e,t,o,s,r)=>{if(this.props.onColumnResize){const i=this.extendedColumn.filter(m=>m.children.length===0).reduce((m,C)=>m+=parseFloat(String(C.width)),0),p={columns:this.columns,totalWidth:i,index:e,nativeEvent:s,newWidth:t,oldWidth:o,end:r,target:this};this.props.onColumnResize.call(void 0,p)}},this.handleOnScroll=e=>{const t=e.currentTarget.scrollLeft,o=e.currentTarget.scrollTop,{columnVirtualization:s,scrollable:r,rowHeight:i=0}=this.props,p=i,m=0;let C=!1;s&&Math.abs(this.wrapperScrollLeft-t)>m&&(this.wrapperScrollLeft=t,C=!0),r==="virtual"&&Math.abs(this.wrapperScrollTop-o)>p&&(this.wrapperScrollTop=o,C=!0),C&&(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,H.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)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,p=l.some(n=>!!n.filter||!!n.filterCell)||e!==void 0,m=e||h.FilterRow,C=h.tableKeyboardNavigationTools.getIdPrefix(this.navigationStateRef),T=this.getExtendedColumn(l,C),z=T.length!==this.extendedColumn.length;this.extendedColumn=T,this.columnsMap=this.getColumnsMap(this.extendedColumn,z);const b=this.extendedColumn.filter(n=>n.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=c.createElement(h.Header,{headerRow:c.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:p&&c.createElement(m,{columns:b,filter:this.props.filter,filterChange:this.filterChange,sort:this.props.sort,ariaRowIndex:this.columnsMap.length+1})||void 0,columnResize:this.columnResize}),M=this.props.style||{},{colSpans:A,hiddenColumns:V}=h.tableColumnsVirtualization({enabled:this.props.columnVirtualization,columns:b,scrollLeft:this.wrapperScrollLeft,tableViewPortWidth:parseFloat((M.width||"").toString())}),B=(n,f,I,E,k,x)=>b.map((d,u)=>{if(V[u])return null;const R=d.id?d.id:u,L=`${d.className?d.className+" ":""}${d.locked?"k-grid-content-sticky":""}`,w={id:h.tableKeyboardNavigationTools.generateNavigatableId(`${I}-${String(u)}`,C),colSpan:A[u],dataItem:n.dataItem,field:d.field,format:d.format,className:L||void 0,render:this.props.cellRender,onChange:this.itemChange,selectionChange:this.props.onSelectionChange?S=>{this.selectionChange({event:S,item:n,columnIndex:u,dataIndex:k})}:void 0,level:n.level,expandable:d.expandable,expanded:E,hasChildren:this.hasChildren(n.dataItem),onExpandChange:this.expandChange,colIndex:u,ariaColumnIndex:d.ariaColumnIndex,style:d.left!==void 0&&{left:d.left,right:d.right,borderRightWidth:d.rightBorder?"1px":""}||{},isSelected:Array.isArray(x)&&x.indexOf(u)>-1};return f&&d.editCell?c.createElement(d.editCell,{key:R,...w,onChange:this.itemChange}):d.cell?c.createElement(d.cell,{key:R,...w}):c.createElement(Q.TreeListCell,{key:R,...w})});let v=this.flatData;const O=v.length;r!==void 0&&i!==void 0&&(v=v.slice(r,r+i)),t==="virtual"&&(v=H.tableRowsVirtualization({rows:v,tableViewPortHeight:parseFloat((M.height||M.maxHeight||"").toString()),scrollTop:this.wrapperScrollTop}),this.updateOnScroll=!1);const U=v.map(n=>n.level),j=this.columnsMap.length+(p?1:0)+1,q=v.length>0&&v.map((n,f)=>{const I=g.getNestedValue(this.props.editField,n.dataItem),E=this.props.dataItemKey&&g.getter(this.props.dataItemKey)(n.dataItem),k=String(E||n.level.join(".")),x=this.expanded(n.dataItem),d=this.props.selectedField?g.getNestedValue(this.props.selectedField,n.dataItem):void 0,u={key:k,level:n.level,levels:U,dataItem:n.dataItem,selectedField:this.props.selectedField,rowHeight:t==="virtual"?n.height:this.props.rowHeight,render:this.props.rowRender,onDrop:this.onRowDrop,onDrag:this.onRowDrag,onClick:S=>this.rowClick(S,n),onDoubleClick:S=>this.rowDoubleClick(S,n),onContextMenu:S=>this.rowContextMenu(S,n),isAltRow:f%2!==0,expanded:x,rowIndex:f,ariaRowIndex:j+f,ariaSetSize:n.levelCount,ariaPosInSet:n.level[n.level.length-1]+1,isSelected:typeof d=="boolean"&&d},R=this.props.editRow,L=this.props.row||Y.TreeListRow,w=B(n,I,k,x,f,d);return I&&R?c.createElement(R,{...u,key:u.key},w):c.createElement(L,{...u,key:u.key},w)})||c.createElement("tr",{className:"k-table-row k-grid-norecords"},c.createElement("td",{colSpan:b.length},this.props.noRecords||c.createElement(X.TreeListNoRecords,null))),W=n=>this.props.sort&&this.props.sort.some(f=>f.field===n),_=c.createElement("colgroup",{ref:n=>{this.columnResize.colGroupMain=n}},b.map((n,f)=>c.createElement("col",{key:f.toString(),className:W(n.field)?"k-sorted":void 0,style:n.width!==void 0?{width:n.width}:void 0}))),$=this.props.columnVirtualization||this.props.scrollable==="virtual",G=this.props.selectable&&this.props.selectable.drag?"none":void 0,K=this.props.tableProps||{};return c.createElement(h.TableKeyboardNavigationContext.Provider,{value:this.contextStateRef.current},c.createElement("div",{id:this.props.id,style:this.props.style,className:g.classNames("k-grid k-grid-md","k-treelist",this.props.className,{"k-treelist-scrollable":t!=="none"}),ref:n=>{this.element=n},onScroll:$?this.handleOnScroll:void 0,onKeyDown:this.onKeyDown,onFocus:this.onFocus,"aria-rowcount":O,"aria-colcount":b.length,role:"treegrid",...h.tableKeyboardNavigationScopeAttributes},this.props.toolbar,c.createElement(h.TableSelection,{selectable:this.props.selectable,onRelease:this.selectionRelease},c.createElement("table",{className:"k-table k-table-md k-grid-table",...K,style:{...K.style||{},userSelect:G},role:"presentation"},_,D,c.createElement("tbody",{className:"k-table-tbody",...h.tableKeyboardNavigationBodyAttributes,role:"presentation"},q))),this.props.pager&&c.createElement(this.props.pager,{className:"k-grid-pager",total:O,skip:r,take:i,onPageChange:this.onPageChange}),s&&c.createElement(c.Fragment,null,c.createElement(h.DropClue,{ref:this.dragLogic.refDropElementClue}),c.createElement(h.DragClue,{ref:this.dragLogic.refDragElementClue})),this.showLicenseWatermark&&c.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:p,rowSpan:m,index:C,kFirst:T,groupable:z,children:b,...D}=o;return b.length?{children:e(b),...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),p={...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,p)}}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}}};F.propTypes={data:a.array,resizable:a.bool,reorderable:a.bool,sortable:a.oneOfType([a.bool,a.shape({mode:a.oneOf(["single","multiple"]),allowUnsort:a.bool})]),onSortChange:a.func,sort:a.array,columns:a.arrayOf(a.object),columnVirtualization:a.bool,filter:a.array,onFilterChange:a.func,filterRow:a.any,toolbar:a.any,noRecords:a.any,onExpandChange:a.func,expandField:a.string,subItemsField:a.string,selectedField:a.string,onSelectionChange:a.func,onHeaderSelectionChange:a.func,onRowClick:a.func,onItemChange:a.func,editField:a.string,scrollable:a.oneOf(["none","scrollable","virtual"]),rowHeight:a.number,style:a.object,tableProps:a.object,pager:a.any,skip:a.number,take:a.number,onPageChange:a.func,onDataStateChange:a.func,onColumnResize:a.func,onColumnReorder:a.func,dataItemKey:a.string,navigatable:a.bool},F.contextType=h.TableKeyboardNavigationContext;let N=F;exports.TreeList=N;
|
package/TreeList.mjs
CHANGED
|
@@ -7,16 +7,16 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import * as r from "react";
|
|
9
9
|
import n from "prop-types";
|
|
10
|
-
import { memoizeOne as H, getNestedValue as x, validatePackage as
|
|
11
|
-
import { readColumns as
|
|
12
|
-
import { setHeaderRowsTop as
|
|
13
|
-
import { TreeListCell as
|
|
14
|
-
import { TreeListNoRecords as
|
|
15
|
-
import { TreeListRow as
|
|
16
|
-
import { packageMetadata as
|
|
10
|
+
import { memoizeOne as H, getNestedValue as x, validatePackage as Y, getLicenseMessage as Z, noop as A, canUseDOM as ee, getter as te, classNames as oe, WatermarkOverlay as se } from "@progress/kendo-react-common";
|
|
11
|
+
import { readColumns as ne, mapColumns as ae, tableKeyboardNavigation as R, getSelectionOptions as K, CommonDragLogic as ie, ColumnResize as le, TableKeyboardNavigationContext as O, tableKeyboardNavigationTools as P, Header as re, HeaderRow as he, tableColumnsVirtualization as de, tableKeyboardNavigationScopeAttributes as ce, TableSelection as pe, tableKeyboardNavigationBodyAttributes as ge, DropClue as me, DragClue as ue, flatData as fe, FilterRow as Ce } from "@progress/kendo-react-data-tools";
|
|
12
|
+
import { setHeaderRowsTop as ve, tableRowsVirtualization as be } from "./utils/index.mjs";
|
|
13
|
+
import { TreeListCell as Se } from "./cells/TreeListCell.mjs";
|
|
14
|
+
import { TreeListNoRecords as Re } from "./TreeListNoRecords.mjs";
|
|
15
|
+
import { TreeListRow as we } from "./rows/TreeListRow.mjs";
|
|
16
|
+
import { packageMetadata as B } from "./package-metadata.mjs";
|
|
17
17
|
const k = class k extends r.Component {
|
|
18
18
|
constructor(h) {
|
|
19
|
-
super(h), 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.scrollIntoView = (e) => {
|
|
19
|
+
super(h), 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) => {
|
|
20
20
|
if (!this.element)
|
|
21
21
|
return;
|
|
22
22
|
const { rowIndex: t = 0 } = e, { scrollable: o, rowHeight: s = 0 } = this.props;
|
|
@@ -29,10 +29,10 @@ const k = class k extends r.Component {
|
|
|
29
29
|
this.element.scroll(0, i);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
}, this.getExtendedColumn = H((e, t) =>
|
|
32
|
+
}, this.getExtendedColumn = H((e, t) => ne(e, {
|
|
33
33
|
prevId: 0,
|
|
34
34
|
idPrefix: t
|
|
35
|
-
})), this.getColumnsMap = H((e, t) =>
|
|
35
|
+
})), this.getColumnsMap = H((e, t) => ae(e, t)), this.onKeyDown = (e) => {
|
|
36
36
|
if (R.onKeyDown(e, {
|
|
37
37
|
navigatable: !1,
|
|
38
38
|
contextStateRef: this.contextStateRef,
|
|
@@ -100,7 +100,7 @@ const k = class k extends r.Component {
|
|
|
100
100
|
const i = s.style.boxSizing;
|
|
101
101
|
s.style.boxSizing = "border-box", l = parseFloat(String(window.getComputedStyle(s).height)) || s.offsetHeight, s.style.boxSizing = i, s.getAttribute("style") || s.removeAttribute("style");
|
|
102
102
|
}
|
|
103
|
-
this.tbodyOffsetTop = o.tBodies[0].offsetTop,
|
|
103
|
+
this.tbodyOffsetTop = o.tBodies[0].offsetTop, ve(o, l);
|
|
104
104
|
}, this.itemChange = (e) => {
|
|
105
105
|
const t = this.props.onItemChange;
|
|
106
106
|
if (e.field === this.props.expandField) {
|
|
@@ -220,7 +220,7 @@ const k = class k extends r.Component {
|
|
|
220
220
|
}, this.expandedSubItems = (e) => {
|
|
221
221
|
const t = [];
|
|
222
222
|
return this.expanded(e) && this.hasChildren(e) && t.push(...x(this.props.subItemsField, e)), t;
|
|
223
|
-
}, this.getLeafDataItems = () => this.flatData.map((e) => e.dataItem), this.expanded = (e) => !!x(this.props.expandField, e), this.hasChildren = (e) => !!x(this.props.subItemsField, e), this.showLicenseWatermark = !
|
|
223
|
+
}, this.getLeafDataItems = () => this.flatData.map((e) => e.dataItem), this.expanded = (e) => !!x(this.props.expandField, e), this.hasChildren = (e) => !!x(this.props.subItemsField, e), this.showLicenseWatermark = !Y(B, { component: "TreeList" }), this.licenseMessage = Z(B), this.dragLogic = new ie(this.columnReorder, A, A), this.columnResize = new le(this.onResize.bind(this)), R.onConstructor({
|
|
224
224
|
navigatable: !!h.navigatable,
|
|
225
225
|
contextStateRef: this.contextStateRef,
|
|
226
226
|
navigationStateRef: this.navigationStateRef
|
|
@@ -230,7 +230,7 @@ const k = class k extends r.Component {
|
|
|
230
230
|
return this.props.id + "-treelist";
|
|
231
231
|
}
|
|
232
232
|
get document() {
|
|
233
|
-
if (
|
|
233
|
+
if (ee)
|
|
234
234
|
return this.element && this.element.ownerDocument || document;
|
|
235
235
|
}
|
|
236
236
|
/**
|
|
@@ -281,15 +281,15 @@ const k = class k extends r.Component {
|
|
|
281
281
|
reorderable: s = !1,
|
|
282
282
|
skip: l,
|
|
283
283
|
take: i
|
|
284
|
-
} = this.props, c = h.some((a) => !!a.filter || !!a.filterCell) || e !== void 0, g = e ||
|
|
285
|
-
this.extendedColumn = F, this.columnsMap = this.getColumnsMap(this.extendedColumn,
|
|
284
|
+
} = this.props, c = h.some((a) => !!a.filter || !!a.filterCell) || e !== void 0, g = e || Ce, u = P.getIdPrefix(this.navigationStateRef), F = this.getExtendedColumn(h, u), z = F.length !== this.extendedColumn.length;
|
|
285
|
+
this.extendedColumn = F, this.columnsMap = this.getColumnsMap(this.extendedColumn, z);
|
|
286
286
|
const f = this.extendedColumn.filter((a) => a.children.length === 0);
|
|
287
287
|
this.columnResize.columns = this.extendedColumn, this.columnResize.resizable = o, this.dragLogic.columns = this.extendedColumn, this.dragLogic.reorderable = s, this.dragLogic.groupable = !1;
|
|
288
288
|
const y = /* @__PURE__ */ r.createElement(
|
|
289
|
-
|
|
289
|
+
re,
|
|
290
290
|
{
|
|
291
291
|
headerRow: /* @__PURE__ */ r.createElement(
|
|
292
|
-
|
|
292
|
+
he,
|
|
293
293
|
{
|
|
294
294
|
sort: this.props.sort,
|
|
295
295
|
sortable: this.props.sortable,
|
|
@@ -321,21 +321,21 @@ const k = class k extends r.Component {
|
|
|
321
321
|
) || void 0,
|
|
322
322
|
columnResize: this.columnResize
|
|
323
323
|
}
|
|
324
|
-
),
|
|
324
|
+
), M = this.props.style || {}, { colSpans: U, hiddenColumns: W } = de({
|
|
325
325
|
enabled: this.props.columnVirtualization,
|
|
326
326
|
columns: f,
|
|
327
327
|
scrollLeft: this.wrapperScrollLeft,
|
|
328
|
-
tableViewPortWidth: parseFloat((
|
|
329
|
-
}),
|
|
330
|
-
if (
|
|
328
|
+
tableViewPortWidth: parseFloat((M.width || "").toString())
|
|
329
|
+
}), $ = (a, m, D, I, E, w) => f.map((d, p) => {
|
|
330
|
+
if (W[p])
|
|
331
331
|
return null;
|
|
332
|
-
const b = d.id ? d.id : p,
|
|
332
|
+
const b = d.id ? d.id : p, L = `${d.className ? d.className + " " : ""}${d.locked ? "k-grid-content-sticky" : ""}`, S = {
|
|
333
333
|
id: P.generateNavigatableId(`${D}-${String(p)}`, u),
|
|
334
|
-
colSpan:
|
|
334
|
+
colSpan: U[p],
|
|
335
335
|
dataItem: a.dataItem,
|
|
336
336
|
field: d.field,
|
|
337
337
|
format: d.format,
|
|
338
|
-
className:
|
|
338
|
+
className: L || void 0,
|
|
339
339
|
render: this.props.cellRender,
|
|
340
340
|
onChange: this.itemChange,
|
|
341
341
|
selectionChange: this.props.onSelectionChange ? (v) => {
|
|
@@ -355,20 +355,20 @@ const k = class k extends r.Component {
|
|
|
355
355
|
} || {},
|
|
356
356
|
isSelected: Array.isArray(w) && w.indexOf(p) > -1
|
|
357
357
|
};
|
|
358
|
-
return m && d.editCell ? /* @__PURE__ */ r.createElement(d.editCell, { key: b, ...S, onChange: this.itemChange }) : d.cell ? /* @__PURE__ */ r.createElement(d.cell, { key: b, ...S }) : /* @__PURE__ */ r.createElement(
|
|
358
|
+
return m && d.editCell ? /* @__PURE__ */ r.createElement(d.editCell, { key: b, ...S, onChange: this.itemChange }) : d.cell ? /* @__PURE__ */ r.createElement(d.cell, { key: b, ...S }) : /* @__PURE__ */ r.createElement(Se, { key: b, ...S });
|
|
359
359
|
});
|
|
360
360
|
let C = this.flatData;
|
|
361
361
|
const T = C.length;
|
|
362
|
-
l !== void 0 && i !== void 0 && (C = C.slice(l, l + i)), t === "virtual" && (C =
|
|
362
|
+
l !== void 0 && i !== void 0 && (C = C.slice(l, l + i)), t === "virtual" && (C = be({
|
|
363
363
|
rows: C,
|
|
364
|
-
tableViewPortHeight: parseFloat((
|
|
364
|
+
tableViewPortHeight: parseFloat((M.height || M.maxHeight || "").toString()),
|
|
365
365
|
scrollTop: this.wrapperScrollTop
|
|
366
366
|
}), this.updateOnScroll = !1);
|
|
367
|
-
const
|
|
368
|
-
const D = x(this.props.editField, a.dataItem), I = this.props.dataItemKey &&
|
|
367
|
+
const j = C.map((a) => a.level), G = this.columnsMap.length + (c ? 1 : 0) + 1, _ = C.length > 0 && C.map((a, m) => {
|
|
368
|
+
const D = x(this.props.editField, a.dataItem), I = this.props.dataItemKey && te(this.props.dataItemKey)(a.dataItem), E = String(I || a.level.join(".")), w = this.expanded(a.dataItem), d = this.props.selectedField ? x(this.props.selectedField, a.dataItem) : void 0, p = {
|
|
369
369
|
key: E,
|
|
370
370
|
level: a.level,
|
|
371
|
-
levels:
|
|
371
|
+
levels: j,
|
|
372
372
|
dataItem: a.dataItem,
|
|
373
373
|
selectedField: this.props.selectedField,
|
|
374
374
|
rowHeight: t === "virtual" ? a.height : this.props.rowHeight,
|
|
@@ -381,13 +381,13 @@ const k = class k extends r.Component {
|
|
|
381
381
|
isAltRow: m % 2 !== 0,
|
|
382
382
|
expanded: w,
|
|
383
383
|
rowIndex: m,
|
|
384
|
-
ariaRowIndex:
|
|
384
|
+
ariaRowIndex: G + m,
|
|
385
385
|
ariaSetSize: a.levelCount,
|
|
386
386
|
ariaPosInSet: a.level[a.level.length - 1] + 1,
|
|
387
387
|
isSelected: typeof d == "boolean" && d
|
|
388
|
-
}, b = this.props.editRow,
|
|
389
|
-
return D && b ? /* @__PURE__ */ r.createElement(b, { ...p, key: p.key }, S) : /* @__PURE__ */ r.createElement(
|
|
390
|
-
}) || /* @__PURE__ */ r.createElement("tr", { className: "k-table-row k-grid-norecords" }, /* @__PURE__ */ r.createElement("td", { colSpan: f.length }, this.props.noRecords || /* @__PURE__ */ r.createElement(
|
|
388
|
+
}, b = this.props.editRow, L = this.props.row || we, S = $(a, D, E, w, m, d);
|
|
389
|
+
return D && b ? /* @__PURE__ */ r.createElement(b, { ...p, key: p.key }, S) : /* @__PURE__ */ r.createElement(L, { ...p, key: p.key }, S);
|
|
390
|
+
}) || /* @__PURE__ */ r.createElement("tr", { className: "k-table-row k-grid-norecords" }, /* @__PURE__ */ r.createElement("td", { colSpan: f.length }, this.props.noRecords || /* @__PURE__ */ r.createElement(Re, null))), q = (a) => this.props.sort && this.props.sort.some((m) => m.field === a), J = /* @__PURE__ */ r.createElement(
|
|
391
391
|
"colgroup",
|
|
392
392
|
{
|
|
393
393
|
ref: (a) => {
|
|
@@ -398,49 +398,49 @@ const k = class k extends r.Component {
|
|
|
398
398
|
"col",
|
|
399
399
|
{
|
|
400
400
|
key: m.toString(),
|
|
401
|
-
className:
|
|
401
|
+
className: q(a.field) ? "k-sorted" : void 0,
|
|
402
402
|
style: a.width !== void 0 ? { width: a.width } : void 0
|
|
403
403
|
}
|
|
404
404
|
))
|
|
405
|
-
),
|
|
405
|
+
), Q = this.props.columnVirtualization || this.props.scrollable === "virtual", X = this.props.selectable && this.props.selectable.drag ? "none" : void 0, N = this.props.tableProps || {};
|
|
406
406
|
return /* @__PURE__ */ r.createElement(O.Provider, { value: this.contextStateRef.current }, /* @__PURE__ */ r.createElement(
|
|
407
407
|
"div",
|
|
408
408
|
{
|
|
409
409
|
id: this.props.id,
|
|
410
410
|
style: this.props.style,
|
|
411
|
-
className:
|
|
411
|
+
className: oe("k-grid k-grid-md", "k-treelist", this.props.className, {
|
|
412
412
|
"k-treelist-scrollable": t !== "none"
|
|
413
413
|
}),
|
|
414
414
|
ref: (a) => {
|
|
415
415
|
this.element = a;
|
|
416
416
|
},
|
|
417
|
-
onScroll:
|
|
417
|
+
onScroll: Q ? this.handleOnScroll : void 0,
|
|
418
418
|
onKeyDown: this.onKeyDown,
|
|
419
419
|
onFocus: this.onFocus,
|
|
420
420
|
"aria-rowcount": T,
|
|
421
421
|
"aria-colcount": f.length,
|
|
422
422
|
role: "treegrid",
|
|
423
|
-
...
|
|
423
|
+
...ce
|
|
424
424
|
},
|
|
425
425
|
this.props.toolbar,
|
|
426
|
-
/* @__PURE__ */ r.createElement(
|
|
426
|
+
/* @__PURE__ */ r.createElement(pe, { selectable: this.props.selectable, onRelease: this.selectionRelease }, /* @__PURE__ */ r.createElement(
|
|
427
427
|
"table",
|
|
428
428
|
{
|
|
429
429
|
className: "k-table k-table-md k-grid-table",
|
|
430
430
|
...N,
|
|
431
|
-
style: { ...N.style || {}, userSelect:
|
|
431
|
+
style: { ...N.style || {}, userSelect: X },
|
|
432
432
|
role: "presentation"
|
|
433
433
|
},
|
|
434
|
-
|
|
434
|
+
J,
|
|
435
435
|
y,
|
|
436
436
|
/* @__PURE__ */ r.createElement(
|
|
437
437
|
"tbody",
|
|
438
438
|
{
|
|
439
439
|
className: "k-table-tbody",
|
|
440
|
-
...
|
|
440
|
+
...ge,
|
|
441
441
|
role: "presentation"
|
|
442
442
|
},
|
|
443
|
-
|
|
443
|
+
_
|
|
444
444
|
)
|
|
445
445
|
)),
|
|
446
446
|
this.props.pager && /* @__PURE__ */ r.createElement(
|
|
@@ -453,8 +453,8 @@ const k = class k extends r.Component {
|
|
|
453
453
|
onPageChange: this.onPageChange
|
|
454
454
|
}
|
|
455
455
|
),
|
|
456
|
-
s && /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement(
|
|
457
|
-
this.showLicenseWatermark && /* @__PURE__ */ r.createElement(
|
|
456
|
+
s && /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement(me, { ref: this.dragLogic.refDropElementClue }), /* @__PURE__ */ r.createElement(ue, { ref: this.dragLogic.refDragElementClue })),
|
|
457
|
+
this.showLicenseWatermark && /* @__PURE__ */ r.createElement(se, { message: this.licenseMessage })
|
|
458
458
|
));
|
|
459
459
|
}
|
|
460
460
|
get columns() {
|
|
@@ -467,7 +467,7 @@ const k = class k extends r.Component {
|
|
|
467
467
|
rowSpan: g,
|
|
468
468
|
index: u,
|
|
469
469
|
kFirst: F,
|
|
470
|
-
groupable:
|
|
470
|
+
groupable: z,
|
|
471
471
|
children: f,
|
|
472
472
|
...y
|
|
473
473
|
} = o;
|
|
@@ -484,7 +484,7 @@ const k = class k extends r.Component {
|
|
|
484
484
|
const o = (l) => {
|
|
485
485
|
const i = { height: e, offsetTop: t };
|
|
486
486
|
return t += i.height, i;
|
|
487
|
-
}, s = this.updateOnScroll && this.prevData === h && this.tbodyOffsetTop > 0 && this.flattedData.length ? this.flattedData :
|
|
487
|
+
}, s = this.updateOnScroll && this.prevData === h && this.tbodyOffsetTop > 0 && this.flattedData.length ? this.flattedData : fe(h, this.expandedSubItems, o);
|
|
488
488
|
return this.prevData = h, this.flattedData = s, s;
|
|
489
489
|
}
|
|
490
490
|
selectionChange(h) {
|
|
@@ -580,7 +580,7 @@ k.propTypes = {
|
|
|
580
580
|
dataItemKey: n.string,
|
|
581
581
|
navigatable: n.bool
|
|
582
582
|
}, k.contextType = O;
|
|
583
|
-
let
|
|
583
|
+
let V = k;
|
|
584
584
|
export {
|
|
585
|
-
|
|
585
|
+
V as TreeList
|
|
586
586
|
};
|
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
13
13
|
*-------------------------------------------------------------------------------------------
|
|
14
14
|
*/
|
|
15
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types"),require("@progress/kendo-react-common"),require("@progress/kendo-react-data-tools"),require("@progress/kendo-react-intl"),require("@progress/kendo-svg-icons"),require("react-dom"),require("@progress/kendo-react-buttons"),require("@progress/kendo-react-inputs"),require("@progress/kendo-react-dateinputs")):"function"==typeof define&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-common","@progress/kendo-react-data-tools","@progress/kendo-react-intl","@progress/kendo-svg-icons","react-dom","@progress/kendo-react-buttons","@progress/kendo-react-inputs","@progress/kendo-react-dateinputs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoReactTreelist={},e.React,e.PropTypes,e.KendoReactCommon,e.KendoReactDataTools,e.KendoReactIntl,e.KendoSvgIcons,e.ReactDOM,e.KendoReactButtons,e.KendoReactInputs,e.KendoReactDateinputs)}(this,(function(e,t,a,o,r,n,l,s,i,d,c){"use strict";function h(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var o=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,o.get?o:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var p=h(t),u=h(s);function g(e,t,a){const o=Array.from(e.tHead&&e.tHead.rows||[]),r=[t];let n;const l=a||(e=>window.getComputedStyle(e).height||void 0);o.forEach((e=>{const t=l(e);r.push(function(e){return void 0!==e&&("number"==typeof e||/px$/i.test(String(e)))}(t)?parseFloat(String(t)):e.offsetHeight)}));for(let e=0;e<o.length;e++)n=r.slice(0,e+1).reduce(((e,t)=>e+t)),Array.from(o[e].cells).forEach((e=>e.style.top=n+"px"))}const m=1e6;function f(e){const{rows:t,tableViewPortHeight:a,scrollTop:o}=e;if(0===t.length)return[];const r=t[0].height,n=Math.min(Math.round(o/r),t.length),l=Math.round(a/r),s=Math.max(0,n-l),i=Math.min(t.length,n+2*l),d=t.slice(s,i),c=d[d.length-1];return s>0&&d.unshift({dataItem:{},level:[m],offsetTop:0,height:d[0].offsetTop,levelCount:0}),i<t.length-1&&d.push({dataItem:{},level:[m,m],offsetTop:c.offsetTop+c.height,height:(t.length-i)*r,levelCount:0}),d}const v=r.TABLE_ROW_INDEX_ATTRIBUTE,b=r.TABLE_COL_INDEX_ATTRIBUTE,C=r.TABLE_PREVENT_SELECTION_ELEMENT,x=e=>{const{hasChildren:t,level:a=[0],expanded:s,dataItem:i,format:d,id:c,ariaColumnIndex:h,isSelected:u}=e,g=o.getNestedValue(e.field,i),m=n.useInternationalization(),f=r.useTableKeyboardNavigation(c);let v="";const x=p.useCallback((t=>{t.isDefaultPrevented()||t.keyCode===o.Keys.enter&&e.expandable&&(t.preventDefault(),e.onExpandChange(t,i,a))}),[e.expandable,i,a]);null!=g&&(v=d?m.format(d,g):g.toString());const I=[];if(e.expandable){const r=e=>p.createElement("span",{key:e,className:"k-treelist-toggle k-icon k-svg-icon"},p.createElement("svg",{"aria-hidden":"true",focusable:"false",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}));I.push(...a.slice(1).map(((e,t)=>r(t)))),t?I.push(p.createElement(o.IconWrap,{className:"k-treelist-toggle",name:s?"caret-alt-down":"caret-alt-right",icon:s?l.caretAltDownIcon:l.caretAltRightIcon,key:"expand-collapse",onClick:t=>e.onExpandChange(t.syntheticEvent||t,i,a),[C]:!0})):I.push(r(I.length))}const y=p.createElement("td",{style:e.style,className:o.classNames("k-table-td",e.className,{"k-text-nowrap":e.expandable,"k-selected":u}),colSpan:e.colSpan,"aria-colindex":h,"aria-expanded":t?s:void 0,"aria-selected":u,role:"gridcell",onKeyDown:x,[b]:e.colIndex,...f},I,v);return e.render?e.render.call(void 0,y,e):y};x.displayName="KendoReactTreeListCell";const I="treelist.filterClearButton",y="treelist.filterEqOperator",E="treelist.filterNotEqOperator",S="treelist.filterIsNullOperator",R="treelist.filterIsNotNullOperator",k="treelist.filterIsEmptyOperator",w="treelist.filterIsNotEmptyOperator",T="treelist.filterStartsWithOperator",N="treelist.filterContainsOperator",D="treelist.filterNotContainsOperator",L="treelist.filterEndsWithOperator",O="treelist.filterGteOperator",F="treelist.filterGtOperator",K="treelist.filterLteOperator",P="treelist.filterLtOperator",z="treelist.filterIsTrue",M="treelist.filterIsFalse",A="treelist.filterBooleanAll",H="treelist.filterAfterOrEqualOperator",B="treelist.filterAfterOperator",q="treelist.filterBeforeOperator",j="treelist.filterBeforeOrEqualOperator",V="treelist.noRecords",_={[I]:"Clear",[y]:"Is equal to",[E]:"Is not equal to",[S]:"Is null",[R]:"Is not null",[k]:"Is empty",[w]:"Is not empty",[T]:"Starts with",[N]:"Contains",[D]:"Does not contain",[L]:"Ends with",[O]:"Is greater than or equal to",[F]:"Is greater than",[K]:"Is less than or equal to",[P]:"Is less than",[z]:"Is true",[M]:"Is false",[A]:"(All)",[H]:"Is after or equal to",[B]:"Is after",[q]:"Is before",[j]:"Is before or equal to",[V]:"No records available"};let U=class extends p.Component{render(){return this.props.children||n.provideLocalizationService(this).toLanguageString(V,_[V])}};n.registerForLocalization(U);const W=p.forwardRef(((e,t)=>{const{isSelected:a,rowHeight:r,isAltRow:n,expanded:l,ariaRowIndex:s,level:i,ariaSetSize:d,ariaPosInSet:c}=e,h=o.classNames("k-table-row","k-master-row",{"k-selected":a,"k-alt":n}),u=p.useMemo((()=>void 0!==r?{height:r+"px"}:void 0),[r]),g=p.createElement("tr",{onClick:e.onClick,onDoubleClick:e.onDoubleClick,onContextMenu:e.onContextMenu,className:h,style:u,ref:t,"aria-expanded":l,role:"row","aria-rowindex":s,"aria-level":i.length,"aria-posinset":c,"aria-setsize":d,[v]:e.rowIndex},e.children);return p.createElement(p.Fragment,null,e.render?e.render.call(void 0,g,e):g)}));W.displayName="KendoReactTreeListRow";const $={name:"@progress/kendo-react-treelist",productName:"KendoReact",productCode:"KENDOUIREACT",productCodes:["KENDOUIREACT"],publishDate:0,version:"11.4.0-develop.6",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},X=class extends p.Component{constructor(e){super(e),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.scrollIntoView=e=>{if(!this.element)return;const{rowIndex:t=0}=e,{scrollable:a,rowHeight:o=0}=this.props;if("virtual"===a||o)this.element.scroll(0,(t-1)*o);else{const e=this.element.querySelector(`tbody > tr:nth-child(${t})`);if(e){const t=e.offsetTop-this.tbodyOffsetTop;this.element.scroll(0,t)}}},this.getExtendedColumn=o.memoizeOne(((e,t)=>r.readColumns(e,{prevId:0,idPrefix:t}))),this.getColumnsMap=o.memoizeOne(((e,t)=>r.mapColumns(e,t))),this.onKeyDown=e=>{if(r.tableKeyboardNavigation.onKeyDown(e,{navigatable:!1,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef}),this.props.onKeyDown){const{mode:t,cell:a}=r.getSelectionOptions(this.props.selectable),o={dataItems:this.getLeafDataItems(),mode:t,cell:a,componentId:this._treeListId,selectedField:this.props.selectedField,...this.getArguments(e)};this.props.onKeyDown.call(void 0,o)}},this.onFocus=e=>{r.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,a)=>{const o=this.extendedColumn[e].depth,r=e=>{do{e++}while(e<this.extendedColumn.length&&this.extendedColumn[e].depth>o);return e},n=this.extendedColumn.splice(e,r(e)-e);if(this.extendedColumn.splice(e<t?r(t-n.length):t,0,...n),this.extendedColumn.filter((e=>e.declarationIndex>=0)).forEach(((e,t)=>e.orderIndex=t)),this.props.onColumnReorder){const e={target:this,columns:this.columns,nativeEvent:a};this.props.onColumnReorder.call(void 0,e)}},this.onResize=(e,t,a,o,r)=>{if(this.props.onColumnResize){const n=this.extendedColumn.filter((e=>0===e.children.length)).reduce(((e,t)=>e+parseFloat(String(t.width))),0),l={columns:this.columns,totalWidth:n,index:e,nativeEvent:o,newWidth:t,oldWidth:a,end:r,target:this};this.props.onColumnResize.call(void 0,l)}},this.handleOnScroll=e=>{const t=e.currentTarget.scrollLeft,a=e.currentTarget.scrollTop,{columnVirtualization:o,scrollable:r,rowHeight:n=0}=this.props,l=n;let s=!1;o&&Math.abs(this.wrapperScrollLeft-t)>0&&(this.wrapperScrollLeft=t,s=!0),"virtual"===r&&Math.abs(this.wrapperScrollTop-a)>l&&(this.wrapperScrollTop=a,s=!0),s&&(this.updateOnScroll=!0,this.forceUpdate())},this.calculateSizes=e=>{if(!e||"none"===this.props.scrollable)return;const t=Array.from(e.childNodes),a=t.find((e=>"TABLE"===e.nodeName)),o=this.props.toolbar&&t.find((e=>1===e.nodeType&&e.classList.contains("k-grid-toolbar")));let r=0;if(o){const e=o.style.boxSizing;o.style.boxSizing="border-box",r=parseFloat(String(window.getComputedStyle(o).height))||o.offsetHeight,o.style.boxSizing=e,o.getAttribute("style")||o.removeAttribute("style")}this.tbodyOffsetTop=a.tBodies[0].offsetTop,g(a,r)},this.itemChange=e=>{const t=this.props.onItemChange;if(e.field!==this.props.expandField){if(t){const a={...this.getArguments(e.syntheticEvent),dataItem:e.dataItem,level:e.level,field:e.field,value:e.value};t.call(void 0,a)}}else{const t=this.props.onExpandChange;if(t){const a={...this.getArguments(e.syntheticEvent),dataItem:e.dataItem,level:e.level,value:e.value};t.call(void 0,a)}}},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,a)=>{this.raiseDataEvent(this.props.onSortChange,{sort:t,field:a},e)},this.headerFilterChange=(e,t,a)=>{this.raiseDataEvent(this.props.onFilterChange,{filter:t,field:a},e)},this.filterChange=e=>{const{filter:t,field:a}=e;this.raiseDataEvent(this.props.onFilterChange,{filter:t,field:a},e.syntheticEvent)},this.columnMenuFilterChange=(e,t,a)=>{const{onColumnMenuFilterChange:o}=this.props;if(!o)return;const r={syntheticEvent:e,filter:t,field:a,target:this,nativeEvent:e.nativeEvent};o.call(void 0,r)},this.expandChange=(e,t,a)=>{const{expandField:o,onExpandChange:r}=this.props;if(o&&r){const o={...this.getArguments(e),dataItem:t,level:a,value:this.expanded(t)};r.call(void 0,o)}},this.rowClick=(e,t)=>{if(this.props.onRowClick&&"TD"===e.target.nodeName){const a={dataItem:t.dataItem,level:t.level,...this.getArguments(e)};this.props.onRowClick.call(void 0,a)}},this.rowDoubleClick=(e,t)=>{if(this.props.onRowDoubleClick&&"TD"===e.target.nodeName){const a={dataItem:t.dataItem,level:t.level,...this.getArguments(e)};this.props.onRowDoubleClick.call(void 0,a)}},this.rowContextMenu=(e,t)=>{if(this.props.onRowContextMenu&&"TD"===e.target.nodeName){const a={dataItem:t.dataItem,level:t.level,...this.getArguments(e)};this.props.onRowContextMenu.call(void 0,a)}},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(...o.getNestedValue(this.props.subItemsField,e)),t},this.getLeafDataItems=()=>this.flatData.map((e=>e.dataItem)),this.expanded=e=>!!o.getNestedValue(this.props.expandField,e),this.hasChildren=e=>!!o.getNestedValue(this.props.subItemsField,e),this.showLicenseWatermark=!o.validatePackage($,{component:"TreeList"}),this.dragLogic=new r.CommonDragLogic(this.columnReorder,o.noop,o.noop),this.columnResize=new r.ColumnResize(this.onResize.bind(this)),r.tableKeyboardNavigation.onConstructor({navigatable:!!e.navigatable,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef})}get _treeListId(){return this.props.id+"-treelist"}get document(){if(o.canUseDOM)return this.element&&this.element.ownerDocument||document}componentDidMount(){this.calculateSizes(this.element),r.tableKeyboardNavigation.onComponentDidMount({scope:this.element||void 0,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef})}getSnapshotBeforeUpdate(){return r.tableKeyboardNavigation.onGetSnapshotBeforeUpdate({document:this.document,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef}),null}componentDidUpdate(e){e.columns!==this.props.columns&&this.calculateSizes(this.element),r.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:e=[],filterRow:t,scrollable:a="scrollable",resizable:n=!1,reorderable:l=!1,skip:s,take:i}=this.props,d=e.some((e=>!!e.filter||!!e.filterCell))||void 0!==t,c=t||r.FilterRow,h=r.tableKeyboardNavigationTools.getIdPrefix(this.navigationStateRef),u=this.getExtendedColumn(e,h),g=u.length!==this.extendedColumn.length;this.extendedColumn=u,this.columnsMap=this.getColumnsMap(this.extendedColumn,g);const m=this.extendedColumn.filter((e=>0===e.children.length));this.columnResize.columns=this.extendedColumn,this.columnResize.resizable=n,this.dragLogic.columns=this.extendedColumn,this.dragLogic.reorderable=l,this.dragLogic.groupable=!1;const v=p.createElement(r.Header,{headerRow:p.createElement(r.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:d&&p.createElement(c,{columns:m,filter:this.props.filter,filterChange:this.filterChange,sort:this.props.sort,ariaRowIndex:this.columnsMap.length+1})||void 0,columnResize:this.columnResize}),b=this.props.style||{},{colSpans:C,hiddenColumns:I}=r.tableColumnsVirtualization({enabled:this.props.columnVirtualization,columns:m,scrollLeft:this.wrapperScrollLeft,tableViewPortWidth:parseFloat((b.width||"").toString())}),y=(e,t,a,o,n,l)=>m.map(((s,i)=>{if(I[i])return null;const d=s.id?s.id:i,c=`${s.className?s.className+" ":""}${s.locked?"k-grid-content-sticky":""}`,u={id:r.tableKeyboardNavigationTools.generateNavigatableId(`${a}-${String(i)}`,h),colSpan:C[i],dataItem:e.dataItem,field:s.field,format:s.format,className:c||void 0,render:this.props.cellRender,onChange:this.itemChange,selectionChange:this.props.onSelectionChange?t=>{this.selectionChange({event:t,item:e,columnIndex:i,dataIndex:n})}:void 0,level:e.level,expandable:s.expandable,expanded:o,hasChildren:this.hasChildren(e.dataItem),onExpandChange:this.expandChange,colIndex:i,ariaColumnIndex:s.ariaColumnIndex,style:void 0!==s.left&&{left:s.left,right:s.right,borderRightWidth:s.rightBorder?"1px":""}||{},isSelected:Array.isArray(l)&&l.indexOf(i)>-1};return t&&s.editCell?p.createElement(s.editCell,{key:d,...u,onChange:this.itemChange}):s.cell?p.createElement(s.cell,{key:d,...u}):p.createElement(x,{key:d,...u})}));let E=this.flatData;const S=E.length;void 0!==s&&void 0!==i&&(E=E.slice(s,s+i)),"virtual"===a&&(E=f({rows:E,tableViewPortHeight:parseFloat((b.height||b.maxHeight||"").toString()),scrollTop:this.wrapperScrollTop}),this.updateOnScroll=!1);const R=E.map((e=>e.level)),k=this.columnsMap.length+(d?1:0)+1,w=E.length>0&&E.map(((e,t)=>{const r=o.getNestedValue(this.props.editField,e.dataItem),n=this.props.dataItemKey&&o.getter(this.props.dataItemKey)(e.dataItem),l=String(n||e.level.join(".")),s=this.expanded(e.dataItem),i=this.props.selectedField?o.getNestedValue(this.props.selectedField,e.dataItem):void 0,d={key:l,level:e.level,levels:R,dataItem:e.dataItem,selectedField:this.props.selectedField,rowHeight:"virtual"===a?e.height:this.props.rowHeight,render:this.props.rowRender,onDrop:this.onRowDrop,onDrag:this.onRowDrag,onClick:t=>this.rowClick(t,e),onDoubleClick:t=>this.rowDoubleClick(t,e),onContextMenu:t=>this.rowContextMenu(t,e),isAltRow:t%2!=0,expanded:s,rowIndex:t,ariaRowIndex:k+t,ariaSetSize:e.levelCount,ariaPosInSet:e.level[e.level.length-1]+1,isSelected:"boolean"==typeof i&&i},c=this.props.editRow,h=this.props.row||W,u=y(e,r,l,s,t,i);return r&&c?p.createElement(c,{...d,key:d.key},u):p.createElement(h,{...d,key:d.key},u)}))||p.createElement("tr",{className:"k-table-row k-grid-norecords"},p.createElement("td",{colSpan:m.length},this.props.noRecords||p.createElement(U,null))),T=e=>this.props.sort&&this.props.sort.some((t=>t.field===e)),N=p.createElement("colgroup",{ref:e=>{this.columnResize.colGroupMain=e}},m.map(((e,t)=>p.createElement("col",{key:t.toString(),className:T(e.field)?"k-sorted":void 0,style:void 0!==e.width?{width:e.width}:void 0})))),D=this.props.columnVirtualization||"virtual"===this.props.scrollable,L=this.props.selectable&&this.props.selectable.drag?"none":void 0,O=this.props.tableProps||{};return p.createElement(r.TableKeyboardNavigationContext.Provider,{value:this.contextStateRef.current},p.createElement("div",{id:this.props.id,style:this.props.style,className:o.classNames("k-grid k-grid-md","k-treelist",this.props.className,{"k-treelist-scrollable":"none"!==a}),ref:e=>{this.element=e},onScroll:D?this.handleOnScroll:void 0,onKeyDown:this.onKeyDown,onFocus:this.onFocus,"aria-rowcount":S,"aria-colcount":m.length,role:"treegrid",...r.tableKeyboardNavigationScopeAttributes},this.props.toolbar,p.createElement(r.TableSelection,{selectable:this.props.selectable,onRelease:this.selectionRelease},p.createElement("table",{className:"k-table k-table-md k-grid-table",...O,style:{...O.style||{},userSelect:L},role:"presentation"},N,v,p.createElement("tbody",{className:"k-table-tbody",...r.tableKeyboardNavigationBodyAttributes,role:"presentation"},w))),this.props.pager&&p.createElement(this.props.pager,{className:"k-grid-pager",total:S,skip:s,take:i,onPageChange:this.onPageChange}),l&&p.createElement(p.Fragment,null,p.createElement(r.DropClue,{ref:this.dragLogic.refDropElementClue}),p.createElement(r.DragClue,{ref:this.dragLogic.refDragElementClue})),this.showLicenseWatermark&&p.createElement(o.WatermarkOverlay,null)))}get columns(){const e=this.extendedColumn.filter((e=>e.declarationIndex>=0&&-1===e.parentIndex)),t=e=>(e.sort(((e,t)=>e.declarationIndex-t.declarationIndex)),e.map((e=>{const{declarationIndex:a,parentIndex:o,depth:r,colSpan:n,rowSpan:l,index:s,kFirst:i,groupable:d,children:c,...h}=e;return c.length?{children:t(c),...h}:h})));return t(e)}get flatData(){const{data:e=[],rowHeight:t=0}=this.props;let a=0;const o=this.updateOnScroll&&this.prevData===e&&this.tbodyOffsetTop>0&&this.flattedData.length?this.flattedData:r.flatData(e,this.expandedSubItems,(e=>{const o={height:t,offsetTop:a};return a+=o.height,o}));return this.prevData=e,this.flattedData=o,o}selectionChange(e){if(this.props.onSelectionChange){const{event:t,item:a,dataIndex:o,columnIndex:n}=e,{mode:l,cell:s}=r.getSelectionOptions(this.props.selectable),i={...this.getArguments(t.syntheticEvent),dataItem:a.dataItem,level:a.level,startColIndex:n,endColIndex:n,startRowIndex:o,endRowIndex:o,dataItems:this.getLeafDataItems(),altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,mode:l,cell:s,isDrag:!1,componentId:this._treeListId,selectedField:this.props.selectedField||""};this.props.onSelectionChange.call(void 0,i)}}raiseDataEvent(e,t,a){const o=this.props.onDataStateChange;if(e)e.call(void 0,{...this.getArguments(a),...t});else if(o){const e={...this.getArguments(a),dataState:{...this.getDataState(),...t}};o.call(void 0,e)}}getDataState(){return{filter:this.props.filter,sort:this.props.sort}}getArguments(e){return{nativeEvent:e&&e.nativeEvent,syntheticEvent:e,target:this}}};X.propTypes={data:a.array,resizable:a.bool,reorderable:a.bool,sortable:a.oneOfType([a.bool,a.shape({mode:a.oneOf(["single","multiple"]),allowUnsort:a.bool})]),onSortChange:a.func,sort:a.array,columns:a.arrayOf(a.object),columnVirtualization:a.bool,filter:a.array,onFilterChange:a.func,filterRow:a.any,toolbar:a.any,noRecords:a.any,onExpandChange:a.func,expandField:a.string,subItemsField:a.string,selectedField:a.string,onSelectionChange:a.func,onHeaderSelectionChange:a.func,onRowClick:a.func,onItemChange:a.func,editField:a.string,scrollable:a.oneOf(["none","scrollable","virtual"]),rowHeight:a.number,style:a.object,tableProps:a.object,pager:a.any,skip:a.number,take:a.number,onPageChange:a.func,onDataStateChange:a.func,onColumnResize:a.func,onColumnReorder:a.func,dataItemKey:a.string,navigatable:a.bool},X.contextType=r.TableKeyboardNavigationContext;let G=X;const Y=e=>{const t=p.useCallback((t=>{e.selectionChange&&e.selectionChange({syntheticEvent:t})}),[e.selectionChange]),a=o.useId(),n=o.getNestedValue(e.field,e.dataItem),l=r.useTableKeyboardNavigation(e.id),s=p.createElement("td",{style:e.style,className:o.classNames("k-table-td",e.className),"aria-colindex":e.ariaColumnIndex,role:"gridcell",...l},p.createElement("input",{checked:"boolean"==typeof n&&n,id:a,type:"checkbox",className:"k-checkbox k-checkbox-md k-rounded-md",onChange:t}),p.createElement("label",{className:"k-checkbox-label",htmlFor:a}));return e.render?e.render.call(void 0,s,e):s};Y.displayName="KendoReactTreeListSelectionCell";let J=class extends p.Component{constructor(){super(...arguments),this._inputId=o.guid()}render(){return p.createElement(r.HeaderSelectionCell,{inputId:this._inputId,...this.props})}};const Q=e=>e.visible&&o.canUseDOM?u.createPortal(p.createElement("div",{className:"k-header k-drag-clue",style:{display:"block",position:"absolute",zIndex:2e4,padding:"8px 12px",top:e.top+"px",left:e.left+"px"}},p.createElement(o.IconWrap,{className:o.classNames("k-drag-status"),name:e.allowDrop?"plus":"cancel",icon:e.allowDrop?l.plusIcon:l.cancelIcon}),e.text),document.body):null;function Z(e,t,a){const o=a?a.elementFromPoint(e.clientX,e.clientY):null;return t&&o?o.closest(t):null}const ee={visible:!1,top:0,left:0,text:"",allowDrop:!1};let te=class extends p.Component{constructor(){super(...arguments),this.state={clueProps:{...ee}},this.draggable=p.createRef(),this.dragged=null,this.draggedOver=null,this.onPress=()=>this.dragged=this.props.level,this.onDrag=e=>{if(!o.canUseDOM)return;const t=this.draggable.current&&this.draggable.current.element,a=t?t.ownerDocument:document;if(!a)return;const r=e.event,n=this.dragged;if(t&&n){!r.isTouch&&"scroll"!==r.type&&r.originalEvent.preventDefault();const e=this.props.levels[function(e,t,a){if(!e.originalEvent)return-1;const o=Z(e,"tr",a);if(o){const e=t?t.childNodes:[];for(let t=0;t<e.length;t++)if(e[t]===o)return t}return-1}(r,t.parentNode,a)];this.draggedOver=e;const o=e?!n.every(((t,a)=>t===e[a])):!!Z(r,"k-grid k-grid-md",a);this.setState({clueProps:{visible:!0,top:r.pageY+10,left:r.pageX,text:t.innerText,allowDrop:o}}),this.props.onDrag&&this.props.onDrag.call(void 0,{nativeEvent:r.originalEvent,dragged:n,draggedOver:e,draggedItem:this.props.dataItem})}},this.onRelease=e=>{const t=e.event;if(this.dragged){const e=[...this.dragged],a=this.draggedOver&&[...this.draggedOver],o=this.state.clueProps.allowDrop;this.dragged=null,this.draggedOver=null,this.setState({clueProps:{...ee}});const r=this.props.dataItem;o&&this.props.onDrop&&this.props.onDrop.call(void 0,{nativeEvent:t.originalEvent,dragged:e,draggedOver:a,draggedItem:r})}}}render(){const{clueProps:e}=this.state;return p.createElement(p.Fragment,null,p.createElement(o.Draggable,{ref:this.draggable,onPress:this.onPress,onDrag:this.onDrag,onRelease:this.onRelease},p.createElement(W,{...this.props})),p.createElement(Q,{...e}))}};const ae=p.forwardRef(((e,t)=>{const{className:a,...r}=e,n=p.useRef(null),l=p.useRef(null);p.useImperativeHandle(l,(()=>({element:n.current,props:e}))),p.useImperativeHandle(t,(()=>l.current));const s=p.useMemo((()=>o.classNames("k-grid-toolbar",a)),[a]);return p.createElement(i.Toolbar,{id:e.id,ref:e=>{e&&(n.current=e.element)},className:s,...r},e.children)}));ae.displayName="KendoReactTreeListToolbar";const oe=[{text:N,operator:"contains"},{text:D,operator:"doesnotcontain"},{text:y,operator:"eq"},{text:E,operator:"neq"},{text:T,operator:"startswith"},{text:L,operator:"endswith"},{text:S,operator:"isnull"},{text:R,operator:"isnotnull"},{text:k,operator:"isempty"},{text:w,operator:"isnotempty"}],re=[{text:y,operator:"eq"},{text:E,operator:"neq"},{text:O,operator:"gte"},{text:F,operator:"gt"},{text:K,operator:"lte"},{text:P,operator:"lt"},{text:S,operator:"isnull"},{text:R,operator:"isnotnull"}],ne=[{text:y,operator:"eq"},{text:E,operator:"neq"},{text:H,operator:"gte"},{text:B,operator:"gt"},{text:q,operator:"lt"},{text:j,operator:"lte"},{text:S,operator:"isnull"},{text:R,operator:"isnotnull"}],le=[{text:A,operator:""},{text:z,operator:!0},{text:M,operator:!1}];function se(e,t){return{clearButtonTitle:e.toLanguageString(I,_[I]),operators:t.map((t=>({text:e.toLanguageString(t.text,_[t.text]),operator:t.operator})))}}const ie=e=>{const t=p.useCallback((t=>{e.onChange&&e.onChange({dataItem:e.dataItem,level:e.level,field:e.field,syntheticEvent:t,value:t.target.value})}),[e.onChange,e.dataItem,e.level,e.field]),a=r.useTableKeyboardNavigation(e.id),n=o.classNames({"k-selected":e.isSelected},e.className),l=p.createElement("td",{style:e.style,className:n,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,role:"gridcell",...a,[b]:e.colIndex},p.createElement("input",{style:{width:"100%"},className:"k-input",value:o.getNestedValue(e.field,e.dataItem)||"",onChange:t}));return e.render?e.render.call(void 0,l,e):l};ie.displayName="KendoReactTreeListTextEditor";const de=e=>{const t=p.useCallback((t=>{e.onChange&&e.onChange({dataItem:e.dataItem,level:e.level,field:e.field,syntheticEvent:t.syntheticEvent,value:t.value})}),[e.onChange,e.dataItem,e.level,e.field]),a=o.getNestedValue(e.field,e.dataItem),n=r.useTableKeyboardNavigation(e.id),l=o.classNames({"k-selected":e.isSelected},e.className),s=p.createElement("td",{style:e.style,className:l,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,role:"gridcell",...n,[b]:e.colIndex},p.createElement(d.NumericTextBox,{width:"100%",value:void 0===a?null:a,onChange:t}));return e.render?e.render.call(void 0,s,e):s};de.displayName="KendoReactTreeListNumericEditor";const ce=e=>{const t=p.useCallback((t=>{e.onChange&&e.onChange({dataItem:e.dataItem,level:e.level,field:e.field,syntheticEvent:t,value:t.target.checked})}),[e.onChange,e.dataItem,e.level,e.field]),a=o.useId(),n=r.useTableKeyboardNavigation(e.id),l=o.classNames({"k-selected":e.isSelected},e.className),s=p.createElement("td",{style:e.style,className:l,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,role:"gridcell",...n,[b]:e.colIndex},p.createElement("input",{checked:o.getNestedValue(e.field,e.dataItem)||!1,id:a,type:"checkbox",className:"k-checkbox k-checkbox-md k-rounded-md",onChange:t}),p.createElement("label",{className:"k-checkbox-label",htmlFor:a}));return e.render?e.render.call(void 0,s,e):s};ce.displayName="KendoReactTreeListBooleanEditor";const he=e=>{const t=p.useCallback((t=>{e.onChange&&e.onChange({dataItem:e.dataItem,level:e.level,field:e.field,syntheticEvent:t.syntheticEvent,value:t.value})}),[e.onChange,e.dataItem,e.level,e.field]),a=r.useTableKeyboardNavigation(e.id),n=o.classNames({"k-selected":e.isSelected},e.className),l=p.createElement("td",{style:e.style,className:n,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,role:"gridcell",...a,[b]:e.colIndex},p.createElement(c.DatePicker,{width:"100%",value:o.getNestedValue(e.field,e.dataItem),onChange:t}));return e.render?e.render.call(void 0,l,e):l};he.displayName="KendoReactTreeListDateEditor",Object.defineProperty(e,"getNestedValue",{enumerable:!0,get:function(){return o.getNestedValue}}),Object.defineProperty(e,"mapTree",{enumerable:!0,get:function(){return o.mapTree}}),Object.defineProperty(e,"mapTreeItem",{enumerable:!0,get:function(){return o.mapTreeItem}}),Object.defineProperty(e,"createDataTree",{enumerable:!0,get:function(){return r.createDataTree}}),Object.defineProperty(e,"extendDataItem",{enumerable:!0,get:function(){return r.extendDataItem}}),Object.defineProperty(e,"filterBy",{enumerable:!0,get:function(){return r.filterBy}}),Object.defineProperty(e,"flatData",{enumerable:!0,get:function(){return r.flatData}}),Object.defineProperty(e,"getItemPath",{enumerable:!0,get:function(){return r.getItemPath}}),Object.defineProperty(e,"getSelectedState",{enumerable:!0,get:function(){return r.getSelectedState}}),Object.defineProperty(e,"getSelectedStateFromKeyDown",{enumerable:!0,get:function(){return r.getSelectedStateFromKeyDown}}),Object.defineProperty(e,"modifySubItems",{enumerable:!0,get:function(){return r.modifySubItems}}),Object.defineProperty(e,"moveTreeItem",{enumerable:!0,get:function(){return r.moveTreeItem}}),Object.defineProperty(e,"orderBy",{enumerable:!0,get:function(){return r.orderBy}}),Object.defineProperty(e,"removeItems",{enumerable:!0,get:function(){return r.removeItems}}),Object.defineProperty(e,"setSelectedState",{enumerable:!0,get:function(){return r.setSelectedState}}),Object.defineProperty(e,"treeToFlat",{enumerable:!0,get:function(){return r.treeToFlat}}),e.TREELIST_COL_INDEX_ATTRIBUTE=b,e.TREELIST_PREVENT_SELECTION_ELEMENT=C,e.TREELIST_ROW_INDEX_ATTRIBUTE=v,e.TreeList=G,e.TreeListBooleanEditor=ce,e.TreeListBooleanFilter=function(e){const{operators:t,...a}=e;return p.createElement(r.BooleanFilterCell,{ariaLabel:"boolean filter",...se(n.useLocalization(),t||le),...a})},e.TreeListCell=x,e.TreeListDateEditor=he,e.TreeListDateFilter=function(e){const{operators:t,...a}=e;return p.createElement(r.DateFilterCell,{ariaLabel:"date filter",...se(n.useLocalization(),t||ne),...a})},e.TreeListDraggableRow=te,e.TreeListHeaderCell=e=>p.createElement(r.HeaderCell,{...e}),e.TreeListHeaderSelectionCell=J,e.TreeListNoRecords=U,e.TreeListNumericEditor=de,e.TreeListNumericFilter=function(e){const{operators:t,...a}=e;return p.createElement(r.NumericFilterCell,{ariaLabel:"numeric filter",...se(n.useLocalization(),t||re),...a})},e.TreeListRow=W,e.TreeListSelectionCell=Y,e.TreeListTextEditor=ie,e.TreeListTextFilter=function(e){const{operators:t,...a}=e;return p.createElement(r.TextFilterCell,{ariaLabel:"text filter",...se(n.useLocalization(),t||oe),...a})},e.TreeListToolbar=ae,e.setHeaderRowsTop=g,e.tableRowsVirtualization=f}));
|
|
15
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("prop-types"),require("@progress/kendo-react-common"),require("@progress/kendo-react-data-tools"),require("@progress/kendo-react-intl"),require("@progress/kendo-svg-icons"),require("react-dom"),require("@progress/kendo-react-buttons"),require("@progress/kendo-react-inputs"),require("@progress/kendo-react-dateinputs")):"function"==typeof define&&define.amd?define(["exports","react","prop-types","@progress/kendo-react-common","@progress/kendo-react-data-tools","@progress/kendo-react-intl","@progress/kendo-svg-icons","react-dom","@progress/kendo-react-buttons","@progress/kendo-react-inputs","@progress/kendo-react-dateinputs"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoReactTreelist={},e.React,e.PropTypes,e.KendoReactCommon,e.KendoReactDataTools,e.KendoReactIntl,e.KendoSvgIcons,e.ReactDOM,e.KendoReactButtons,e.KendoReactInputs,e.KendoReactDateinputs)}(this,(function(e,t,a,o,n,r,l,s,i,d,c){"use strict";function h(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var o=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,o.get?o:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}var p=h(t),u=h(s);function g(e,t,a){const o=Array.from(e.tHead&&e.tHead.rows||[]),n=[t];let r;const l=a||(e=>window.getComputedStyle(e).height||void 0);o.forEach((e=>{const t=l(e);n.push(function(e){return void 0!==e&&("number"==typeof e||/px$/i.test(String(e)))}(t)?parseFloat(String(t)):e.offsetHeight)}));for(let e=0;e<o.length;e++)r=n.slice(0,e+1).reduce(((e,t)=>e+t)),Array.from(o[e].cells).forEach((e=>e.style.top=r+"px"))}const m=1e6;function f(e){const{rows:t,tableViewPortHeight:a,scrollTop:o}=e;if(0===t.length)return[];const n=t[0].height,r=Math.min(Math.round(o/n),t.length),l=Math.round(a/n),s=Math.max(0,r-l),i=Math.min(t.length,r+2*l),d=t.slice(s,i),c=d[d.length-1];return s>0&&d.unshift({dataItem:{},level:[m],offsetTop:0,height:d[0].offsetTop,levelCount:0}),i<t.length-1&&d.push({dataItem:{},level:[m,m],offsetTop:c.offsetTop+c.height,height:(t.length-i)*n,levelCount:0}),d}const v=n.TABLE_ROW_INDEX_ATTRIBUTE,b=n.TABLE_COL_INDEX_ATTRIBUTE,C=n.TABLE_PREVENT_SELECTION_ELEMENT,x=e=>{const{hasChildren:t,level:a=[0],expanded:s,dataItem:i,format:d,id:c,ariaColumnIndex:h,isSelected:u}=e,g=o.getNestedValue(e.field,i),m=r.useInternationalization(),f=n.useTableKeyboardNavigation(c);let v="";const x=p.useCallback((t=>{t.isDefaultPrevented()||t.keyCode===o.Keys.enter&&e.expandable&&(t.preventDefault(),e.onExpandChange(t,i,a))}),[e.expandable,i,a]);null!=g&&(v=d?m.format(d,g):g.toString());const I=[];if(e.expandable){const n=e=>p.createElement("span",{key:e,className:"k-treelist-toggle k-icon k-svg-icon"},p.createElement("svg",{"aria-hidden":"true",focusable:"false",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}));I.push(...a.slice(1).map(((e,t)=>n(t)))),t?I.push(p.createElement(o.IconWrap,{className:"k-treelist-toggle",name:s?"caret-alt-down":"caret-alt-right",icon:s?l.caretAltDownIcon:l.caretAltRightIcon,key:"expand-collapse",onClick:t=>e.onExpandChange(t.syntheticEvent||t,i,a),[C]:!0})):I.push(n(I.length))}const y=p.createElement("td",{style:e.style,className:o.classNames("k-table-td",e.className,{"k-text-nowrap":e.expandable,"k-selected":u}),colSpan:e.colSpan,"aria-colindex":h,"aria-expanded":t?s:void 0,"aria-selected":u,role:"gridcell",onKeyDown:x,[b]:e.colIndex,...f},I,v);return e.render?e.render.call(void 0,y,e):y};x.displayName="KendoReactTreeListCell";const I="treelist.filterClearButton",y="treelist.filterEqOperator",E="treelist.filterNotEqOperator",S="treelist.filterIsNullOperator",R="treelist.filterIsNotNullOperator",k="treelist.filterIsEmptyOperator",w="treelist.filterIsNotEmptyOperator",T="treelist.filterStartsWithOperator",N="treelist.filterContainsOperator",D="treelist.filterNotContainsOperator",L="treelist.filterEndsWithOperator",O="treelist.filterGteOperator",F="treelist.filterGtOperator",K="treelist.filterLteOperator",P="treelist.filterLtOperator",M="treelist.filterIsTrue",z="treelist.filterIsFalse",A="treelist.filterBooleanAll",H="treelist.filterAfterOrEqualOperator",B="treelist.filterAfterOperator",q="treelist.filterBeforeOperator",j="treelist.filterBeforeOrEqualOperator",V="treelist.noRecords",_={[I]:"Clear",[y]:"Is equal to",[E]:"Is not equal to",[S]:"Is null",[R]:"Is not null",[k]:"Is empty",[w]:"Is not empty",[T]:"Starts with",[N]:"Contains",[D]:"Does not contain",[L]:"Ends with",[O]:"Is greater than or equal to",[F]:"Is greater than",[K]:"Is less than or equal to",[P]:"Is less than",[M]:"Is true",[z]:"Is false",[A]:"(All)",[H]:"Is after or equal to",[B]:"Is after",[q]:"Is before",[j]:"Is before or equal to",[V]:"No records available"};let U=class extends p.Component{render(){return this.props.children||r.provideLocalizationService(this).toLanguageString(V,_[V])}};r.registerForLocalization(U);const W=p.forwardRef(((e,t)=>{const{isSelected:a,rowHeight:n,isAltRow:r,expanded:l,ariaRowIndex:s,level:i,ariaSetSize:d,ariaPosInSet:c}=e,h=o.classNames("k-table-row","k-master-row",{"k-selected":a,"k-alt":r}),u=p.useMemo((()=>void 0!==n?{height:n+"px"}:void 0),[n]),g=p.createElement("tr",{onClick:e.onClick,onDoubleClick:e.onDoubleClick,onContextMenu:e.onContextMenu,className:h,style:u,ref:t,"aria-expanded":l,role:"row","aria-rowindex":s,"aria-level":i.length,"aria-posinset":c,"aria-setsize":d,[v]:e.rowIndex},e.children);return p.createElement(p.Fragment,null,e.render?e.render.call(void 0,g,e):g)}));W.displayName="KendoReactTreeListRow";const $={name:"@progress/kendo-react-treelist",productName:"KendoReact",productCode:"KENDOUIREACT",productCodes:["KENDOUIREACT"],publishDate:0,version:"11.4.0-develop.8",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},X=class extends p.Component{constructor(e){super(e),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:a,rowHeight:o=0}=this.props;if("virtual"===a||o)this.element.scroll(0,(t-1)*o);else{const e=this.element.querySelector(`tbody > tr:nth-child(${t})`);if(e){const t=e.offsetTop-this.tbodyOffsetTop;this.element.scroll(0,t)}}},this.getExtendedColumn=o.memoizeOne(((e,t)=>n.readColumns(e,{prevId:0,idPrefix:t}))),this.getColumnsMap=o.memoizeOne(((e,t)=>n.mapColumns(e,t))),this.onKeyDown=e=>{if(n.tableKeyboardNavigation.onKeyDown(e,{navigatable:!1,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef}),this.props.onKeyDown){const{mode:t,cell:a}=n.getSelectionOptions(this.props.selectable),o={dataItems:this.getLeafDataItems(),mode:t,cell:a,componentId:this._treeListId,selectedField:this.props.selectedField,...this.getArguments(e)};this.props.onKeyDown.call(void 0,o)}},this.onFocus=e=>{n.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,a)=>{const o=this.extendedColumn[e].depth,n=e=>{do{e++}while(e<this.extendedColumn.length&&this.extendedColumn[e].depth>o);return e},r=this.extendedColumn.splice(e,n(e)-e);if(this.extendedColumn.splice(e<t?n(t-r.length):t,0,...r),this.extendedColumn.filter((e=>e.declarationIndex>=0)).forEach(((e,t)=>e.orderIndex=t)),this.props.onColumnReorder){const e={target:this,columns:this.columns,nativeEvent:a};this.props.onColumnReorder.call(void 0,e)}},this.onResize=(e,t,a,o,n)=>{if(this.props.onColumnResize){const r=this.extendedColumn.filter((e=>0===e.children.length)).reduce(((e,t)=>e+parseFloat(String(t.width))),0),l={columns:this.columns,totalWidth:r,index:e,nativeEvent:o,newWidth:t,oldWidth:a,end:n,target:this};this.props.onColumnResize.call(void 0,l)}},this.handleOnScroll=e=>{const t=e.currentTarget.scrollLeft,a=e.currentTarget.scrollTop,{columnVirtualization:o,scrollable:n,rowHeight:r=0}=this.props,l=r;let s=!1;o&&Math.abs(this.wrapperScrollLeft-t)>0&&(this.wrapperScrollLeft=t,s=!0),"virtual"===n&&Math.abs(this.wrapperScrollTop-a)>l&&(this.wrapperScrollTop=a,s=!0),s&&(this.updateOnScroll=!0,this.forceUpdate())},this.calculateSizes=e=>{if(!e||"none"===this.props.scrollable)return;const t=Array.from(e.childNodes),a=t.find((e=>"TABLE"===e.nodeName)),o=this.props.toolbar&&t.find((e=>1===e.nodeType&&e.classList.contains("k-grid-toolbar")));let n=0;if(o){const e=o.style.boxSizing;o.style.boxSizing="border-box",n=parseFloat(String(window.getComputedStyle(o).height))||o.offsetHeight,o.style.boxSizing=e,o.getAttribute("style")||o.removeAttribute("style")}this.tbodyOffsetTop=a.tBodies[0].offsetTop,g(a,n)},this.itemChange=e=>{const t=this.props.onItemChange;if(e.field!==this.props.expandField){if(t){const a={...this.getArguments(e.syntheticEvent),dataItem:e.dataItem,level:e.level,field:e.field,value:e.value};t.call(void 0,a)}}else{const t=this.props.onExpandChange;if(t){const a={...this.getArguments(e.syntheticEvent),dataItem:e.dataItem,level:e.level,value:e.value};t.call(void 0,a)}}},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,a)=>{this.raiseDataEvent(this.props.onSortChange,{sort:t,field:a},e)},this.headerFilterChange=(e,t,a)=>{this.raiseDataEvent(this.props.onFilterChange,{filter:t,field:a},e)},this.filterChange=e=>{const{filter:t,field:a}=e;this.raiseDataEvent(this.props.onFilterChange,{filter:t,field:a},e.syntheticEvent)},this.columnMenuFilterChange=(e,t,a)=>{const{onColumnMenuFilterChange:o}=this.props;if(!o)return;const n={syntheticEvent:e,filter:t,field:a,target:this,nativeEvent:e.nativeEvent};o.call(void 0,n)},this.expandChange=(e,t,a)=>{const{expandField:o,onExpandChange:n}=this.props;if(o&&n){const o={...this.getArguments(e),dataItem:t,level:a,value:this.expanded(t)};n.call(void 0,o)}},this.rowClick=(e,t)=>{if(this.props.onRowClick&&"TD"===e.target.nodeName){const a={dataItem:t.dataItem,level:t.level,...this.getArguments(e)};this.props.onRowClick.call(void 0,a)}},this.rowDoubleClick=(e,t)=>{if(this.props.onRowDoubleClick&&"TD"===e.target.nodeName){const a={dataItem:t.dataItem,level:t.level,...this.getArguments(e)};this.props.onRowDoubleClick.call(void 0,a)}},this.rowContextMenu=(e,t)=>{if(this.props.onRowContextMenu&&"TD"===e.target.nodeName){const a={dataItem:t.dataItem,level:t.level,...this.getArguments(e)};this.props.onRowContextMenu.call(void 0,a)}},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(...o.getNestedValue(this.props.subItemsField,e)),t},this.getLeafDataItems=()=>this.flatData.map((e=>e.dataItem)),this.expanded=e=>!!o.getNestedValue(this.props.expandField,e),this.hasChildren=e=>!!o.getNestedValue(this.props.subItemsField,e),this.showLicenseWatermark=!o.validatePackage($,{component:"TreeList"}),this.licenseMessage=o.getLicenseMessage($),this.dragLogic=new n.CommonDragLogic(this.columnReorder,o.noop,o.noop),this.columnResize=new n.ColumnResize(this.onResize.bind(this)),n.tableKeyboardNavigation.onConstructor({navigatable:!!e.navigatable,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef})}get _treeListId(){return this.props.id+"-treelist"}get document(){if(o.canUseDOM)return this.element&&this.element.ownerDocument||document}componentDidMount(){this.calculateSizes(this.element),n.tableKeyboardNavigation.onComponentDidMount({scope:this.element||void 0,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef})}getSnapshotBeforeUpdate(){return n.tableKeyboardNavigation.onGetSnapshotBeforeUpdate({document:this.document,contextStateRef:this.contextStateRef,navigationStateRef:this.navigationStateRef}),null}componentDidUpdate(e){e.columns!==this.props.columns&&this.calculateSizes(this.element),n.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:e=[],filterRow:t,scrollable:a="scrollable",resizable:r=!1,reorderable:l=!1,skip:s,take:i}=this.props,d=e.some((e=>!!e.filter||!!e.filterCell))||void 0!==t,c=t||n.FilterRow,h=n.tableKeyboardNavigationTools.getIdPrefix(this.navigationStateRef),u=this.getExtendedColumn(e,h),g=u.length!==this.extendedColumn.length;this.extendedColumn=u,this.columnsMap=this.getColumnsMap(this.extendedColumn,g);const m=this.extendedColumn.filter((e=>0===e.children.length));this.columnResize.columns=this.extendedColumn,this.columnResize.resizable=r,this.dragLogic.columns=this.extendedColumn,this.dragLogic.reorderable=l,this.dragLogic.groupable=!1;const v=p.createElement(n.Header,{headerRow:p.createElement(n.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:d&&p.createElement(c,{columns:m,filter:this.props.filter,filterChange:this.filterChange,sort:this.props.sort,ariaRowIndex:this.columnsMap.length+1})||void 0,columnResize:this.columnResize}),b=this.props.style||{},{colSpans:C,hiddenColumns:I}=n.tableColumnsVirtualization({enabled:this.props.columnVirtualization,columns:m,scrollLeft:this.wrapperScrollLeft,tableViewPortWidth:parseFloat((b.width||"").toString())}),y=(e,t,a,o,r,l)=>m.map(((s,i)=>{if(I[i])return null;const d=s.id?s.id:i,c=`${s.className?s.className+" ":""}${s.locked?"k-grid-content-sticky":""}`,u={id:n.tableKeyboardNavigationTools.generateNavigatableId(`${a}-${String(i)}`,h),colSpan:C[i],dataItem:e.dataItem,field:s.field,format:s.format,className:c||void 0,render:this.props.cellRender,onChange:this.itemChange,selectionChange:this.props.onSelectionChange?t=>{this.selectionChange({event:t,item:e,columnIndex:i,dataIndex:r})}:void 0,level:e.level,expandable:s.expandable,expanded:o,hasChildren:this.hasChildren(e.dataItem),onExpandChange:this.expandChange,colIndex:i,ariaColumnIndex:s.ariaColumnIndex,style:void 0!==s.left&&{left:s.left,right:s.right,borderRightWidth:s.rightBorder?"1px":""}||{},isSelected:Array.isArray(l)&&l.indexOf(i)>-1};return t&&s.editCell?p.createElement(s.editCell,{key:d,...u,onChange:this.itemChange}):s.cell?p.createElement(s.cell,{key:d,...u}):p.createElement(x,{key:d,...u})}));let E=this.flatData;const S=E.length;void 0!==s&&void 0!==i&&(E=E.slice(s,s+i)),"virtual"===a&&(E=f({rows:E,tableViewPortHeight:parseFloat((b.height||b.maxHeight||"").toString()),scrollTop:this.wrapperScrollTop}),this.updateOnScroll=!1);const R=E.map((e=>e.level)),k=this.columnsMap.length+(d?1:0)+1,w=E.length>0&&E.map(((e,t)=>{const n=o.getNestedValue(this.props.editField,e.dataItem),r=this.props.dataItemKey&&o.getter(this.props.dataItemKey)(e.dataItem),l=String(r||e.level.join(".")),s=this.expanded(e.dataItem),i=this.props.selectedField?o.getNestedValue(this.props.selectedField,e.dataItem):void 0,d={key:l,level:e.level,levels:R,dataItem:e.dataItem,selectedField:this.props.selectedField,rowHeight:"virtual"===a?e.height:this.props.rowHeight,render:this.props.rowRender,onDrop:this.onRowDrop,onDrag:this.onRowDrag,onClick:t=>this.rowClick(t,e),onDoubleClick:t=>this.rowDoubleClick(t,e),onContextMenu:t=>this.rowContextMenu(t,e),isAltRow:t%2!=0,expanded:s,rowIndex:t,ariaRowIndex:k+t,ariaSetSize:e.levelCount,ariaPosInSet:e.level[e.level.length-1]+1,isSelected:"boolean"==typeof i&&i},c=this.props.editRow,h=this.props.row||W,u=y(e,n,l,s,t,i);return n&&c?p.createElement(c,{...d,key:d.key},u):p.createElement(h,{...d,key:d.key},u)}))||p.createElement("tr",{className:"k-table-row k-grid-norecords"},p.createElement("td",{colSpan:m.length},this.props.noRecords||p.createElement(U,null))),T=e=>this.props.sort&&this.props.sort.some((t=>t.field===e)),N=p.createElement("colgroup",{ref:e=>{this.columnResize.colGroupMain=e}},m.map(((e,t)=>p.createElement("col",{key:t.toString(),className:T(e.field)?"k-sorted":void 0,style:void 0!==e.width?{width:e.width}:void 0})))),D=this.props.columnVirtualization||"virtual"===this.props.scrollable,L=this.props.selectable&&this.props.selectable.drag?"none":void 0,O=this.props.tableProps||{};return p.createElement(n.TableKeyboardNavigationContext.Provider,{value:this.contextStateRef.current},p.createElement("div",{id:this.props.id,style:this.props.style,className:o.classNames("k-grid k-grid-md","k-treelist",this.props.className,{"k-treelist-scrollable":"none"!==a}),ref:e=>{this.element=e},onScroll:D?this.handleOnScroll:void 0,onKeyDown:this.onKeyDown,onFocus:this.onFocus,"aria-rowcount":S,"aria-colcount":m.length,role:"treegrid",...n.tableKeyboardNavigationScopeAttributes},this.props.toolbar,p.createElement(n.TableSelection,{selectable:this.props.selectable,onRelease:this.selectionRelease},p.createElement("table",{className:"k-table k-table-md k-grid-table",...O,style:{...O.style||{},userSelect:L},role:"presentation"},N,v,p.createElement("tbody",{className:"k-table-tbody",...n.tableKeyboardNavigationBodyAttributes,role:"presentation"},w))),this.props.pager&&p.createElement(this.props.pager,{className:"k-grid-pager",total:S,skip:s,take:i,onPageChange:this.onPageChange}),l&&p.createElement(p.Fragment,null,p.createElement(n.DropClue,{ref:this.dragLogic.refDropElementClue}),p.createElement(n.DragClue,{ref:this.dragLogic.refDragElementClue})),this.showLicenseWatermark&&p.createElement(o.WatermarkOverlay,{message:this.licenseMessage})))}get columns(){const e=this.extendedColumn.filter((e=>e.declarationIndex>=0&&-1===e.parentIndex)),t=e=>(e.sort(((e,t)=>e.declarationIndex-t.declarationIndex)),e.map((e=>{const{declarationIndex:a,parentIndex:o,depth:n,colSpan:r,rowSpan:l,index:s,kFirst:i,groupable:d,children:c,...h}=e;return c.length?{children:t(c),...h}:h})));return t(e)}get flatData(){const{data:e=[],rowHeight:t=0}=this.props;let a=0;const o=this.updateOnScroll&&this.prevData===e&&this.tbodyOffsetTop>0&&this.flattedData.length?this.flattedData:n.flatData(e,this.expandedSubItems,(e=>{const o={height:t,offsetTop:a};return a+=o.height,o}));return this.prevData=e,this.flattedData=o,o}selectionChange(e){if(this.props.onSelectionChange){const{event:t,item:a,dataIndex:o,columnIndex:r}=e,{mode:l,cell:s}=n.getSelectionOptions(this.props.selectable),i={...this.getArguments(t.syntheticEvent),dataItem:a.dataItem,level:a.level,startColIndex:r,endColIndex:r,startRowIndex:o,endRowIndex:o,dataItems:this.getLeafDataItems(),altKey:!1,ctrlKey:!1,shiftKey:!1,metaKey:!1,mode:l,cell:s,isDrag:!1,componentId:this._treeListId,selectedField:this.props.selectedField||""};this.props.onSelectionChange.call(void 0,i)}}raiseDataEvent(e,t,a){const o=this.props.onDataStateChange;if(e)e.call(void 0,{...this.getArguments(a),...t});else if(o){const e={...this.getArguments(a),dataState:{...this.getDataState(),...t}};o.call(void 0,e)}}getDataState(){return{filter:this.props.filter,sort:this.props.sort}}getArguments(e){return{nativeEvent:e&&e.nativeEvent,syntheticEvent:e,target:this}}};X.propTypes={data:a.array,resizable:a.bool,reorderable:a.bool,sortable:a.oneOfType([a.bool,a.shape({mode:a.oneOf(["single","multiple"]),allowUnsort:a.bool})]),onSortChange:a.func,sort:a.array,columns:a.arrayOf(a.object),columnVirtualization:a.bool,filter:a.array,onFilterChange:a.func,filterRow:a.any,toolbar:a.any,noRecords:a.any,onExpandChange:a.func,expandField:a.string,subItemsField:a.string,selectedField:a.string,onSelectionChange:a.func,onHeaderSelectionChange:a.func,onRowClick:a.func,onItemChange:a.func,editField:a.string,scrollable:a.oneOf(["none","scrollable","virtual"]),rowHeight:a.number,style:a.object,tableProps:a.object,pager:a.any,skip:a.number,take:a.number,onPageChange:a.func,onDataStateChange:a.func,onColumnResize:a.func,onColumnReorder:a.func,dataItemKey:a.string,navigatable:a.bool},X.contextType=n.TableKeyboardNavigationContext;let G=X;const Y=e=>{const t=p.useCallback((t=>{e.selectionChange&&e.selectionChange({syntheticEvent:t})}),[e.selectionChange]),a=o.useId(),r=o.getNestedValue(e.field,e.dataItem),l=n.useTableKeyboardNavigation(e.id),s=p.createElement("td",{style:e.style,className:o.classNames("k-table-td",e.className),"aria-colindex":e.ariaColumnIndex,role:"gridcell",...l},p.createElement("input",{checked:"boolean"==typeof r&&r,id:a,type:"checkbox",className:"k-checkbox k-checkbox-md k-rounded-md",onChange:t}),p.createElement("label",{className:"k-checkbox-label",htmlFor:a}));return e.render?e.render.call(void 0,s,e):s};Y.displayName="KendoReactTreeListSelectionCell";let J=class extends p.Component{constructor(){super(...arguments),this._inputId=o.guid()}render(){return p.createElement(n.HeaderSelectionCell,{inputId:this._inputId,...this.props})}};const Q=e=>e.visible&&o.canUseDOM?u.createPortal(p.createElement("div",{className:"k-header k-drag-clue",style:{display:"block",position:"absolute",zIndex:2e4,padding:"8px 12px",top:e.top+"px",left:e.left+"px"}},p.createElement(o.IconWrap,{className:o.classNames("k-drag-status"),name:e.allowDrop?"plus":"cancel",icon:e.allowDrop?l.plusIcon:l.cancelIcon}),e.text),document.body):null;function Z(e,t,a){const o=a?a.elementFromPoint(e.clientX,e.clientY):null;return t&&o?o.closest(t):null}const ee={visible:!1,top:0,left:0,text:"",allowDrop:!1};let te=class extends p.Component{constructor(){super(...arguments),this.state={clueProps:{...ee}},this.draggable=p.createRef(),this.dragged=null,this.draggedOver=null,this.onPress=()=>this.dragged=this.props.level,this.onDrag=e=>{if(!o.canUseDOM)return;const t=this.draggable.current&&this.draggable.current.element,a=t?t.ownerDocument:document;if(!a)return;const n=e.event,r=this.dragged;if(t&&r){!n.isTouch&&"scroll"!==n.type&&n.originalEvent.preventDefault();const e=this.props.levels[function(e,t,a){if(!e.originalEvent)return-1;const o=Z(e,"tr",a);if(o){const e=t?t.childNodes:[];for(let t=0;t<e.length;t++)if(e[t]===o)return t}return-1}(n,t.parentNode,a)];this.draggedOver=e;const o=e?!r.every(((t,a)=>t===e[a])):!!Z(n,"k-grid k-grid-md",a);this.setState({clueProps:{visible:!0,top:n.pageY+10,left:n.pageX,text:t.innerText,allowDrop:o}}),this.props.onDrag&&this.props.onDrag.call(void 0,{nativeEvent:n.originalEvent,dragged:r,draggedOver:e,draggedItem:this.props.dataItem})}},this.onRelease=e=>{const t=e.event;if(this.dragged){const e=[...this.dragged],a=this.draggedOver&&[...this.draggedOver],o=this.state.clueProps.allowDrop;this.dragged=null,this.draggedOver=null,this.setState({clueProps:{...ee}});const n=this.props.dataItem;o&&this.props.onDrop&&this.props.onDrop.call(void 0,{nativeEvent:t.originalEvent,dragged:e,draggedOver:a,draggedItem:n})}}}render(){const{clueProps:e}=this.state;return p.createElement(p.Fragment,null,p.createElement(o.Draggable,{ref:this.draggable,onPress:this.onPress,onDrag:this.onDrag,onRelease:this.onRelease},p.createElement(W,{...this.props})),p.createElement(Q,{...e}))}};const ae=p.forwardRef(((e,t)=>{const{className:a,...n}=e,r=p.useRef(null),l=p.useRef(null);p.useImperativeHandle(l,(()=>({element:r.current,props:e}))),p.useImperativeHandle(t,(()=>l.current));const s=p.useMemo((()=>o.classNames("k-grid-toolbar",a)),[a]);return p.createElement(i.Toolbar,{id:e.id,ref:e=>{e&&(r.current=e.element)},className:s,...n},e.children)}));ae.displayName="KendoReactTreeListToolbar";const oe=[{text:N,operator:"contains"},{text:D,operator:"doesnotcontain"},{text:y,operator:"eq"},{text:E,operator:"neq"},{text:T,operator:"startswith"},{text:L,operator:"endswith"},{text:S,operator:"isnull"},{text:R,operator:"isnotnull"},{text:k,operator:"isempty"},{text:w,operator:"isnotempty"}],ne=[{text:y,operator:"eq"},{text:E,operator:"neq"},{text:O,operator:"gte"},{text:F,operator:"gt"},{text:K,operator:"lte"},{text:P,operator:"lt"},{text:S,operator:"isnull"},{text:R,operator:"isnotnull"}],re=[{text:y,operator:"eq"},{text:E,operator:"neq"},{text:H,operator:"gte"},{text:B,operator:"gt"},{text:q,operator:"lt"},{text:j,operator:"lte"},{text:S,operator:"isnull"},{text:R,operator:"isnotnull"}],le=[{text:A,operator:""},{text:M,operator:!0},{text:z,operator:!1}];function se(e,t){return{clearButtonTitle:e.toLanguageString(I,_[I]),operators:t.map((t=>({text:e.toLanguageString(t.text,_[t.text]),operator:t.operator})))}}const ie=e=>{const t=p.useCallback((t=>{e.onChange&&e.onChange({dataItem:e.dataItem,level:e.level,field:e.field,syntheticEvent:t,value:t.target.value})}),[e.onChange,e.dataItem,e.level,e.field]),a=n.useTableKeyboardNavigation(e.id),r=o.classNames({"k-selected":e.isSelected},e.className),l=p.createElement("td",{style:e.style,className:r,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,role:"gridcell",...a,[b]:e.colIndex},p.createElement("input",{style:{width:"100%"},className:"k-input",value:o.getNestedValue(e.field,e.dataItem)||"",onChange:t}));return e.render?e.render.call(void 0,l,e):l};ie.displayName="KendoReactTreeListTextEditor";const de=e=>{const t=p.useCallback((t=>{e.onChange&&e.onChange({dataItem:e.dataItem,level:e.level,field:e.field,syntheticEvent:t.syntheticEvent,value:t.value})}),[e.onChange,e.dataItem,e.level,e.field]),a=o.getNestedValue(e.field,e.dataItem),r=n.useTableKeyboardNavigation(e.id),l=o.classNames({"k-selected":e.isSelected},e.className),s=p.createElement("td",{style:e.style,className:l,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,role:"gridcell",...r,[b]:e.colIndex},p.createElement(d.NumericTextBox,{width:"100%",value:void 0===a?null:a,onChange:t}));return e.render?e.render.call(void 0,s,e):s};de.displayName="KendoReactTreeListNumericEditor";const ce=e=>{const t=p.useCallback((t=>{e.onChange&&e.onChange({dataItem:e.dataItem,level:e.level,field:e.field,syntheticEvent:t,value:t.target.checked})}),[e.onChange,e.dataItem,e.level,e.field]),a=o.useId(),r=n.useTableKeyboardNavigation(e.id),l=o.classNames({"k-selected":e.isSelected},e.className),s=p.createElement("td",{style:e.style,className:l,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,role:"gridcell",...r,[b]:e.colIndex},p.createElement("input",{checked:o.getNestedValue(e.field,e.dataItem)||!1,id:a,type:"checkbox",className:"k-checkbox k-checkbox-md k-rounded-md",onChange:t}),p.createElement("label",{className:"k-checkbox-label",htmlFor:a}));return e.render?e.render.call(void 0,s,e):s};ce.displayName="KendoReactTreeListBooleanEditor";const he=e=>{const t=p.useCallback((t=>{e.onChange&&e.onChange({dataItem:e.dataItem,level:e.level,field:e.field,syntheticEvent:t.syntheticEvent,value:t.value})}),[e.onChange,e.dataItem,e.level,e.field]),a=n.useTableKeyboardNavigation(e.id),r=o.classNames({"k-selected":e.isSelected},e.className),l=p.createElement("td",{style:e.style,className:r,"aria-colindex":e.ariaColumnIndex,"aria-selected":e.isSelected,role:"gridcell",...a,[b]:e.colIndex},p.createElement(c.DatePicker,{width:"100%",value:o.getNestedValue(e.field,e.dataItem),onChange:t}));return e.render?e.render.call(void 0,l,e):l};he.displayName="KendoReactTreeListDateEditor",Object.defineProperty(e,"getNestedValue",{enumerable:!0,get:function(){return o.getNestedValue}}),Object.defineProperty(e,"mapTree",{enumerable:!0,get:function(){return o.mapTree}}),Object.defineProperty(e,"mapTreeItem",{enumerable:!0,get:function(){return o.mapTreeItem}}),Object.defineProperty(e,"createDataTree",{enumerable:!0,get:function(){return n.createDataTree}}),Object.defineProperty(e,"extendDataItem",{enumerable:!0,get:function(){return n.extendDataItem}}),Object.defineProperty(e,"filterBy",{enumerable:!0,get:function(){return n.filterBy}}),Object.defineProperty(e,"flatData",{enumerable:!0,get:function(){return n.flatData}}),Object.defineProperty(e,"getItemPath",{enumerable:!0,get:function(){return n.getItemPath}}),Object.defineProperty(e,"getSelectedState",{enumerable:!0,get:function(){return n.getSelectedState}}),Object.defineProperty(e,"getSelectedStateFromKeyDown",{enumerable:!0,get:function(){return n.getSelectedStateFromKeyDown}}),Object.defineProperty(e,"modifySubItems",{enumerable:!0,get:function(){return n.modifySubItems}}),Object.defineProperty(e,"moveTreeItem",{enumerable:!0,get:function(){return n.moveTreeItem}}),Object.defineProperty(e,"orderBy",{enumerable:!0,get:function(){return n.orderBy}}),Object.defineProperty(e,"removeItems",{enumerable:!0,get:function(){return n.removeItems}}),Object.defineProperty(e,"setSelectedState",{enumerable:!0,get:function(){return n.setSelectedState}}),Object.defineProperty(e,"treeToFlat",{enumerable:!0,get:function(){return n.treeToFlat}}),e.TREELIST_COL_INDEX_ATTRIBUTE=b,e.TREELIST_PREVENT_SELECTION_ELEMENT=C,e.TREELIST_ROW_INDEX_ATTRIBUTE=v,e.TreeList=G,e.TreeListBooleanEditor=ce,e.TreeListBooleanFilter=function(e){const{operators:t,...a}=e;return p.createElement(n.BooleanFilterCell,{ariaLabel:"boolean filter",...se(r.useLocalization(),t||le),...a})},e.TreeListCell=x,e.TreeListDateEditor=he,e.TreeListDateFilter=function(e){const{operators:t,...a}=e;return p.createElement(n.DateFilterCell,{ariaLabel:"date filter",...se(r.useLocalization(),t||re),...a})},e.TreeListDraggableRow=te,e.TreeListHeaderCell=e=>p.createElement(n.HeaderCell,{...e}),e.TreeListHeaderSelectionCell=J,e.TreeListNoRecords=U,e.TreeListNumericEditor=de,e.TreeListNumericFilter=function(e){const{operators:t,...a}=e;return p.createElement(n.NumericFilterCell,{ariaLabel:"numeric filter",...se(r.useLocalization(),t||ne),...a})},e.TreeListRow=W,e.TreeListSelectionCell=Y,e.TreeListTextEditor=ie,e.TreeListTextFilter=function(e){const{operators:t,...a}=e;return p.createElement(n.TextFilterCell,{ariaLabel:"text filter",...se(r.useLocalization(),t||oe),...a})},e.TreeListToolbar=ae,e.setHeaderRowsTop=g,e.tableRowsVirtualization=f}));
|
package/index.d.mts
CHANGED
|
@@ -192,6 +192,7 @@ export declare class TreeList extends React_2.Component<TreeListProps, {}> {
|
|
|
192
192
|
private contextStateRef;
|
|
193
193
|
private navigationStateRef;
|
|
194
194
|
private readonly showLicenseWatermark;
|
|
195
|
+
private readonly licenseMessage;
|
|
195
196
|
constructor(props: TreeListProps);
|
|
196
197
|
/**
|
|
197
198
|
* Method to allow the scroll to be set to a specific row index.
|
package/index.d.ts
CHANGED
|
@@ -192,6 +192,7 @@ export declare class TreeList extends React_2.Component<TreeListProps, {}> {
|
|
|
192
192
|
private contextStateRef;
|
|
193
193
|
private navigationStateRef;
|
|
194
194
|
private readonly showLicenseWatermark;
|
|
195
|
+
private readonly licenseMessage;
|
|
195
196
|
constructor(props: TreeListProps);
|
|
196
197
|
/**
|
|
197
198
|
* Method to allow the scroll to be set to a specific row index.
|
package/package-metadata.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 e={name:"@progress/kendo-react-treelist",productName:"KendoReact",productCode:"KENDOUIREACT",productCodes:["KENDOUIREACT"],publishDate:
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={name:"@progress/kendo-react-treelist",productName:"KendoReact",productCode:"KENDOUIREACT",productCodes:["KENDOUIREACT"],publishDate: 1754642839,version:"11.4.0-develop.8",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"};exports.packageMetadata=e;
|
package/package-metadata.mjs
CHANGED
|
@@ -10,8 +10,8 @@ const e = {
|
|
|
10
10
|
productName: "KendoReact",
|
|
11
11
|
productCode: "KENDOUIREACT",
|
|
12
12
|
productCodes: ["KENDOUIREACT"],
|
|
13
|
-
publishDate:
|
|
14
|
-
version: "11.4.0-develop.
|
|
13
|
+
publishDate: 1754642839,
|
|
14
|
+
version: "11.4.0-develop.8",
|
|
15
15
|
licensingDocsUrl: "https://www.telerik.com/kendo-react-ui/components/my-license/"
|
|
16
16
|
};
|
|
17
17
|
export {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@progress/kendo-react-treelist",
|
|
3
|
-
"version": "11.4.0-develop.
|
|
3
|
+
"version": "11.4.0-develop.8",
|
|
4
4
|
"description": "React TreeList enables the display of self-referencing tabular data. KendoReact TreeList package",
|
|
5
5
|
"author": "Progress",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
@@ -28,14 +28,14 @@
|
|
|
28
28
|
"@progress/kendo-data-query": "^1.0.0",
|
|
29
29
|
"@progress/kendo-date-math": "^1.4.1",
|
|
30
30
|
"@progress/kendo-drawing": "^1.21.2",
|
|
31
|
-
"@progress/kendo-licensing": "^1.
|
|
32
|
-
"@progress/kendo-react-common": "11.4.0-develop.
|
|
33
|
-
"@progress/kendo-react-data-tools": "11.4.0-develop.
|
|
34
|
-
"@progress/kendo-react-dateinputs": "11.4.0-develop.
|
|
35
|
-
"@progress/kendo-react-dialogs": "11.4.0-develop.
|
|
36
|
-
"@progress/kendo-react-dropdowns": "11.4.0-develop.
|
|
37
|
-
"@progress/kendo-react-inputs": "11.4.0-develop.
|
|
38
|
-
"@progress/kendo-react-intl": "11.4.0-develop.
|
|
31
|
+
"@progress/kendo-licensing": "^1.7.0",
|
|
32
|
+
"@progress/kendo-react-common": "11.4.0-develop.8",
|
|
33
|
+
"@progress/kendo-react-data-tools": "11.4.0-develop.8",
|
|
34
|
+
"@progress/kendo-react-dateinputs": "11.4.0-develop.8",
|
|
35
|
+
"@progress/kendo-react-dialogs": "11.4.0-develop.8",
|
|
36
|
+
"@progress/kendo-react-dropdowns": "11.4.0-develop.8",
|
|
37
|
+
"@progress/kendo-react-inputs": "11.4.0-develop.8",
|
|
38
|
+
"@progress/kendo-react-intl": "11.4.0-develop.8",
|
|
39
39
|
"@progress/kendo-svg-icons": "^4.0.0",
|
|
40
40
|
"react": "^16.8.2 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc",
|
|
41
41
|
"react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc"
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"package": {
|
|
77
77
|
"productName": "KendoReact",
|
|
78
78
|
"productCode": "KENDOUIREACT",
|
|
79
|
-
"publishDate":
|
|
79
|
+
"publishDate": 1754642839,
|
|
80
80
|
"licensingDocsUrl": "https://www.telerik.com/kendo-react-ui/components/my-license/"
|
|
81
81
|
}
|
|
82
82
|
},
|