UNPKG

primevue

Version:

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![npm version](https://badge.fury.io/js/primevue.svg)](https://badge.fury.io/js/primevue) [![Discord Chat](https://img.shields.io/discord/55794023

2 lines (1 loc) 37.5 kB
import{ObjectUtils as e,DomHandler as t}from"primevue/utils";import{FilterService as l}from"primevue/api";import o from"primevue/ripple";import{resolveDirective as n,openBlock as i,createElementBlock as s,normalizeStyle as r,normalizeClass as a,withDirectives as d,createElementVNode as c,createCommentVNode as h,createBlock as u,resolveDynamicComponent as p,toDisplayString as m,resolveComponent as f,Fragment as b,renderList as y,createTextVNode as g,renderSlot as k,createSlots as x,withCtx as C}from"vue";import S from"primevue/paginator";var z={name:"BodyCell",emits:["node-toggle","checkbox-toggle"],props:{node:{type:Object,default:null},column:{type:Object,default:null},level:{type:Number,default:0},indentation:{type:Number,default:1},leaf:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1},selectionMode:{type:String,default:null},checked:{type:Boolean,default:!1},partialChecked:{type:Boolean,default:!1}},data:()=>({styleObject:{},checkboxFocused:!1}),mounted(){this.columnProp("frozen")&&this.updateStickyPosition()},updated(){this.columnProp("frozen")&&this.updateStickyPosition()},methods:{toggle(){this.$emit("node-toggle",this.node)},columnProp(t){return e.getVNodeProp(this.column,t)},updateStickyPosition(){if(this.columnProp("frozen")){if("right"===this.columnProp("alignFrozen")){let e=0,l=this.$el.nextElementSibling;l&&(e=t.getOuterWidth(l)+parseFloat(l.style.right||0)),this.styleObject.right=e+"px"}else{let e=0,l=this.$el.previousElementSibling;l&&(e=t.getOuterWidth(l)+parseFloat(l.style.left||0)),this.styleObject.left=e+"px"}}},resolveFieldData:(t,l)=>e.resolveFieldData(t,l),toggleCheckbox(){this.$emit("checkbox-toggle")},onCheckboxFocus(){this.checkboxFocused=!0},onCheckboxBlur(){this.checkboxFocused=!1}},computed:{containerClass(){return[this.columnProp("bodyClass"),this.columnProp("class"),{"p-frozen-column":this.columnProp("frozen")}]},containerStyle(){let e=this.columnProp("bodyStyle"),t=this.columnProp("style");return this.columnProp("frozen")?[t,e,this.styleObject]:[t,e]},togglerStyle(){return{marginLeft:this.level*this.indentation+"rem",visibility:this.leaf?"hidden":"visible"}},togglerIcon(){return["p-treetable-toggler-icon pi",{"pi-chevron-right":!this.expanded,"pi-chevron-down":this.expanded}]},checkboxSelectionMode(){return"checkbox"===this.selectionMode},checkboxClass(){return["p-checkbox-box",{"p-highlight":this.checked,"p-focus":this.checkboxFocused,"p-indeterminate":this.partialChecked}]},checkboxIcon(){return["p-checkbox-icon",{"pi pi-check":this.checked,"pi pi-minus":this.partialChecked}]}},directives:{ripple:o}};const P=["aria-checked"],v={class:"p-hidden-accessible"},M={key:3};z.render=function(e,t,l,o,f,b){const y=n("ripple");return i(),s("td",{style:r(b.containerStyle),class:a(b.containerClass)},[b.columnProp("expander")?d((i(),s("button",{key:0,type:"button",class:"p-treetable-toggler p-link",onClick:t[0]||(t[0]=(...e)=>b.toggle&&b.toggle(...e)),style:r(b.togglerStyle),tabindex:"-1"},[c("i",{class:a(b.togglerIcon)},null,2)],4)),[[y]]):h("",!0),b.checkboxSelectionMode&&b.columnProp("expander")?(i(),s("div",{key:1,class:a(["p-checkbox p-treetable-checkbox p-component",{"p-checkbox-focused":f.checkboxFocused}]),onClick:t[3]||(t[3]=(...e)=>b.toggleCheckbox&&b.toggleCheckbox(...e)),role:"checkbox","aria-checked":l.checked},[c("div",v,[c("input",{type:"checkbox",onFocus:t[1]||(t[1]=(...e)=>b.onCheckboxFocus&&b.onCheckboxFocus(...e)),onBlur:t[2]||(t[2]=(...e)=>b.onCheckboxBlur&&b.onCheckboxBlur(...e))},null,32)]),c("div",{ref:"checkboxEl",class:a(b.checkboxClass)},[c("span",{class:a(b.checkboxIcon)},null,2)],2)],10,P)):h("",!0),l.column.children&&l.column.children.body?(i(),u(p(l.column.children.body),{key:2,node:l.node,column:l.column},null,8,["node","column"])):(i(),s("span",M,m(b.resolveFieldData(l.node.data,b.columnProp("field"))),1))],6)};var w={name:"TreeTableRow",emits:["node-click","node-toggle","checkbox-change","nodeClick","nodeToggle","checkboxChange"],props:{node:{type:null,default:null},parentNode:{type:null,default:null},columns:{type:null,default:null},expandedKeys:{type:null,default:null},selectionKeys:{type:null,default:null},selectionMode:{type:String,default:null},level:{type:Number,default:0},indentation:{type:Number,default:1}},nodeTouched:!1,methods:{columnProp:(t,l)=>e.getVNodeProp(t,l),toggle(){this.$emit("node-toggle",this.node)},onClick(e){t.isClickable(e.target)||t.hasClass(e.target,"p-treetable-toggler")||t.hasClass(e.target.parentElement,"p-treetable-toggler")||(this.$emit("node-click",{originalEvent:e,nodeTouched:this.nodeTouched,node:this.node}),this.nodeTouched=!1)},onTouchEnd(){this.nodeTouched=!0},onKeyDown(e){if(e.target===this.$el){const t=this.$el;switch(e.which){case 40:{const l=t.nextElementSibling;l&&l.focus(),e.preventDefault();break}case 38:{const l=t.previousElementSibling;l&&l.focus(),e.preventDefault();break}case 37:case 39:this.leaf||(this.$emit("node-toggle",this.node),e.preventDefault());break;case 13:this.onClick(e),e.preventDefault()}}},toggleCheckbox(){let e=this.selectionKeys?{...this.selectionKeys}:{};const t=!this.checked;this.propagateDown(this.node,t,e),this.$emit("checkbox-change",{node:this.node,check:t,selectionKeys:e})},propagateDown(e,t,l){if(t?l[e.key]={checked:!0,partialChecked:!1}:delete l[e.key],e.children&&e.children.length)for(let o of e.children)this.propagateDown(o,t,l)},propagateUp(e){let t=e.check,l={...e.selectionKeys},o=0,n=!1;for(let e of this.node.children)l[e.key]&&l[e.key].checked?o++:l[e.key]&&l[e.key].partialChecked&&(n=!0);t&&o===this.node.children.length?l[this.node.key]={checked:!0,partialChecked:!1}:(t||delete l[this.node.key],n||o>0&&o!==this.node.children.length?l[this.node.key]={checked:!1,partialChecked:!0}:l[this.node.key]={checked:!1,partialChecked:!1}),this.$emit("checkbox-change",{node:e.node,check:e.check,selectionKeys:l})},onCheckboxChange(e){let t=e.check,l={...e.selectionKeys},o=0,n=!1;for(let e of this.node.children)l[e.key]&&l[e.key].checked?o++:l[e.key]&&l[e.key].partialChecked&&(n=!0);t&&o===this.node.children.length?l[this.node.key]={checked:!0,partialChecked:!1}:(t||delete l[this.node.key],n||o>0&&o!==this.node.children.length?l[this.node.key]={checked:!1,partialChecked:!0}:l[this.node.key]={checked:!1,partialChecked:!1}),this.$emit("checkbox-change",{node:e.node,check:e.check,selectionKeys:l})}},computed:{containerClass(){return[this.node.styleClass,{"p-highlight":this.selected}]},hasChildren(){return this.node.children&&this.node.children.length>0},expanded(){return this.expandedKeys&&!0===this.expandedKeys[this.node.key]},leaf(){return!1!==this.node.leaf&&!(this.node.children&&this.node.children.length)},selected(){return!(!this.selectionMode||!this.selectionKeys)&&!0===this.selectionKeys[this.node.key]},childLevel(){return this.level+1},checked(){return!!this.selectionKeys&&(this.selectionKeys[this.node.key]&&this.selectionKeys[this.node.key].checked)},partialChecked(){return!!this.selectionKeys&&(this.selectionKeys[this.node.key]&&this.selectionKeys[this.node.key].partialChecked)}},components:{TTBodyCell:z}};w.render=function(e,t,l,o,n,d){const p=f("TTBodyCell"),m=f("TreeTableRow",!0);return i(),s(b,null,[c("tr",{class:a(d.containerClass),onClick:t[1]||(t[1]=(...e)=>d.onClick&&d.onClick(...e)),onKeydown:t[2]||(t[2]=(...e)=>d.onKeyDown&&d.onKeyDown(...e)),onTouchend:t[3]||(t[3]=(...e)=>d.onTouchEnd&&d.onTouchEnd(...e)),style:r(l.node.style),tabindex:"0"},[(i(!0),s(b,null,y(l.columns,((o,n)=>(i(),s(b,{key:d.columnProp(o,"columnKey")||d.columnProp(o,"field")||n},[d.columnProp(o,"hidden")?h("",!0):(i(),u(p,{key:0,column:o,node:l.node,level:l.level,leaf:d.leaf,indentation:l.indentation,expanded:d.expanded,selectionMode:l.selectionMode,checked:d.checked,partialChecked:d.partialChecked,onNodeToggle:t[0]||(t[0]=t=>e.$emit("node-toggle",t)),onCheckboxToggle:d.toggleCheckbox},null,8,["column","node","level","leaf","indentation","expanded","selectionMode","checked","partialChecked","onCheckboxToggle"]))],64)))),128))],38),d.expanded&&l.node.children&&l.node.children.length?(i(!0),s(b,{key:0},y(l.node.children,(o=>(i(),u(m,{key:o.key,columns:l.columns,node:o,parentNode:l.node,level:l.level+1,expandedKeys:l.expandedKeys,selectionMode:l.selectionMode,selectionKeys:l.selectionKeys,indentation:l.indentation,onNodeToggle:t[4]||(t[4]=t=>e.$emit("node-toggle",t)),onNodeClick:t[5]||(t[5]=t=>e.$emit("node-click",t)),onCheckboxChange:d.onCheckboxChange},null,8,["columns","node","parentNode","level","expandedKeys","selectionMode","selectionKeys","indentation","onCheckboxChange"])))),128)):h("",!0)],64)};var F={name:"HeaderCell",emits:["column-click","column-resizestart"],props:{column:{type:Object,default:null},resizableColumns:{type:Boolean,default:!1},sortField:{type:[String,Function],default:null},sortOrder:{type:Number,default:null},multiSortMeta:{type:Array,default:null},sortMode:{type:String,default:"single"}},data:()=>({styleObject:{}}),mounted(){this.columnProp("frozen")&&this.updateStickyPosition()},updated(){this.columnProp("frozen")&&this.updateStickyPosition()},methods:{columnProp(t){return e.getVNodeProp(this.column,t)},updateStickyPosition(){if(this.columnProp("frozen")){if("right"===this.columnProp("alignFrozen")){let e=0,l=this.$el.nextElementSibling;l&&(e=t.getOuterWidth(l)+parseFloat(l.style.right||0)),this.styleObject.right=e+"px"}else{let e=0,l=this.$el.previousElementSibling;l&&(e=t.getOuterWidth(l)+parseFloat(l.style.left||0)),this.styleObject.left=e+"px"}let e=this.$el.parentElement.nextElementSibling;if(e){let l=t.index(this.$el);e.children[l].style.left=this.styleObject.left,e.children[l].style.right=this.styleObject.right}}},onClick(e){this.$emit("column-click",{originalEvent:e,column:this.column})},onKeyDown(e){13===e.which&&"TH"===e.currentTarget.nodeName&&t.hasClass(e.currentTarget,"p-sortable-column")&&this.$emit("column-click",{originalEvent:e,column:this.column})},onResizeStart(e){this.$emit("column-resizestart",e)},getMultiSortMetaIndex(){let e=-1;for(let t=0;t<this.multiSortMeta.length;t++){let l=this.multiSortMeta[t];if(l.field===this.columnProp("field")||l.field===this.columnProp("sortField")){e=t;break}}return e},isMultiSorted(){return this.columnProp("sortable")&&this.getMultiSortMetaIndex()>-1},isColumnSorted(){return"single"===this.sortMode?this.sortField&&(this.sortField===this.columnProp("field")||this.sortField===this.columnProp("sortField")):this.isMultiSorted()}},computed:{containerClass(){return[this.columnProp("headerClass"),this.columnProp("class"),{"p-sortable-column":this.columnProp("sortable"),"p-resizable-column":this.resizableColumns,"p-highlight":this.isColumnSorted(),"p-frozen-column":this.columnProp("frozen")}]},containerStyle(){let e=this.columnProp("headerStyle"),t=this.columnProp("style");return this.columnProp("frozen")?[t,e,this.styleObject]:[t,e]},sortableColumnIcon(){let e=!1,t=null;if("single"===this.sortMode)e=this.sortField&&(this.sortField===this.columnProp("field")||this.sortField===this.columnProp("sortField")),t=e?this.sortOrder:0;else if("multiple"===this.sortMode){let l=this.getMultiSortMetaIndex();l>-1&&(e=!0,t=this.multiSortMeta[l].order)}return["p-sortable-column-icon pi pi-fw",{"pi-sort-alt":!e,"pi-sort-amount-up-alt":e&&t>0,"pi-sort-amount-down":e&&t<0}]},ariaSort(){if(this.columnProp("sortable")){const e=this.sortableColumnIcon;return e[1]["pi-sort-amount-down"]?"descending":e[1]["pi-sort-amount-up-alt"]?"ascending":"none"}return null}}};const K=["tabindex","aria-sort"],$={key:2,class:"p-column-title"},_={key:4,class:"p-sortable-column-badge"};F.render=function(e,t,l,o,n,d){return i(),s("th",{style:r([d.containerStyle]),class:a(d.containerClass),onClick:t[1]||(t[1]=(...e)=>d.onClick&&d.onClick(...e)),onKeydown:t[2]||(t[2]=(...e)=>d.onKeyDown&&d.onKeyDown(...e)),tabindex:d.columnProp("sortable")?"0":null,"aria-sort":d.ariaSort},[l.resizableColumns&&!d.columnProp("frozen")?(i(),s("span",{key:0,class:"p-column-resizer",onMousedown:t[0]||(t[0]=(...e)=>d.onResizeStart&&d.onResizeStart(...e))},null,32)):h("",!0),l.column.children&&l.column.children.header?(i(),u(p(l.column.children.header),{key:1,column:l.column},null,8,["column"])):h("",!0),d.columnProp("header")?(i(),s("span",$,m(d.columnProp("header")),1)):h("",!0),d.columnProp("sortable")?(i(),s("span",{key:3,class:a(d.sortableColumnIcon)},null,2)):h("",!0),d.isMultiSorted()?(i(),s("span",_,m(d.getMultiSortMetaIndex()+1),1)):h("",!0)],46,K)};var T={name:"FooterCell",props:{column:{type:Object,default:null}},data:()=>({styleObject:{}}),mounted(){this.columnProp("frozen")&&this.updateStickyPosition()},updated(){this.columnProp("frozen")&&this.updateStickyPosition()},methods:{columnProp(t){return e.getVNodeProp(this.column,t)},updateStickyPosition(){if(this.columnProp("frozen")){if("right"===this.columnProp("alignFrozen")){let e=0,l=this.$el.nextElementSibling;l&&(e=t.getOuterWidth(l)+parseFloat(l.style.right||0)),this.styleObject.right=e+"px"}else{let e=0,l=this.$el.previousElementSibling;l&&(e=t.getOuterWidth(l)+parseFloat(l.style.left||0)),this.styleObject.left=e+"px"}}}},computed:{containerClass(){return[this.columnProp("footerClass"),this.columnProp("class"),{"p-frozen-column":this.columnProp("frozen")}]},containerStyle(){let e=this.columnProp("footerStyle"),t=this.columnProp("style");return this.columnProp("frozen")?[t,e,this.styleObject]:[t,e]}}};T.render=function(e,t,l,o,n,d){return i(),s("td",{style:r(d.containerStyle),class:a(d.containerClass)},[l.column.children&&l.column.children.footer?(i(),u(p(l.column.children.footer),{key:0,column:l.column},null,8,["column"])):h("",!0),g(" "+m(d.columnProp("footer")),1)],6)};var O={name:"TreeTable",emits:["node-expand","node-collapse","update:expandedKeys","update:selectionKeys","node-select","node-unselect","update:first","update:rows","page","update:sortField","update:sortOrder","update:multiSortMeta","sort","filter","column-resize-end"],props:{value:{type:null,default:null},expandedKeys:{type:null,default:null},selectionKeys:{type:null,default:null},selectionMode:{type:String,default:null},metaKeySelection:{type:Boolean,default:!0},rows:{type:Number,default:0},first:{type:Number,default:0},totalRecords:{type:Number,default:0},paginator:{type:Boolean,default:!1},paginatorPosition:{type:String,default:"bottom"},alwaysShowPaginator:{type:Boolean,default:!0},paginatorTemplate:{type:String,default:"FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink RowsPerPageDropdown"},pageLinkSize:{type:Number,default:5},rowsPerPageOptions:{type:Array,default:null},currentPageReportTemplate:{type:String,default:"({currentPage} of {totalPages})"},lazy:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},loadingIcon:{type:String,default:"pi pi-spinner"},rowHover:{type:Boolean,default:!1},autoLayout:{type:Boolean,default:!1},sortField:{type:[String,Function],default:null},sortOrder:{type:Number,default:null},defaultSortOrder:{type:Number,default:1},multiSortMeta:{type:Array,default:null},sortMode:{type:String,default:"single"},removableSort:{type:Boolean,default:!1},filters:{type:Object,default:null},filterMode:{type:String,default:"lenient"},filterLocale:{type:String,default:void 0},resizableColumns:{type:Boolean,default:!1},columnResizeMode:{type:String,default:"fit"},indentation:{type:Number,default:1},showGridlines:{type:Boolean,default:!1},scrollable:{type:Boolean,default:!1},scrollDirection:{type:String,default:"vertical"},scrollHeight:{type:String,default:null},responsiveLayout:{type:String,default:null}},documentColumnResizeListener:null,documentColumnResizeEndListener:null,lastResizeHelperX:null,resizeColumnElement:null,data(){return{d_expandedKeys:this.expandedKeys||{},d_first:this.first,d_rows:this.rows,d_sortField:this.sortField,d_sortOrder:this.sortOrder,d_multiSortMeta:this.multiSortMeta?[...this.multiSortMeta]:[]}},watch:{expandedKeys(e){this.d_expandedKeys=e},first(e){this.d_first=e},rows(e){this.d_rows=e},sortField(e){this.d_sortField=e},sortOrder(e){this.d_sortOrder=e},multiSortMeta(e){this.d_multiSortMeta=e}},mounted(){this.scrollable&&"vertical"!==this.scrollDirection&&this.updateScrollWidth()},updated(){this.scrollable&&"vertical"!==this.scrollDirection&&this.updateScrollWidth()},methods:{columnProp:(t,l)=>e.getVNodeProp(t,l),onNodeToggle(e){const t=e.key;this.d_expandedKeys[t]?(delete this.d_expandedKeys[t],this.$emit("node-collapse",e)):(this.d_expandedKeys[t]=!0,this.$emit("node-expand",e)),this.d_expandedKeys={...this.d_expandedKeys},this.$emit("update:expandedKeys",this.d_expandedKeys)},onNodeClick(e){if(this.rowSelectionMode&&!1!==e.node.selectable){const t=!e.nodeTouched&&this.metaKeySelection?this.handleSelectionWithMetaKey(e):this.handleSelectionWithoutMetaKey(e);this.$emit("update:selectionKeys",t)}},handleSelectionWithMetaKey(e){const t=e.originalEvent,l=e.node,o=t.metaKey||t.ctrlKey;let n;return this.isNodeSelected(l)&&o?(this.isSingleSelectionMode()?n={}:(n={...this.selectionKeys},delete n[l.key]),this.$emit("node-unselect",l)):(this.isSingleSelectionMode()?n={}:this.isMultipleSelectionMode()&&(n=o&&this.selectionKeys?{...this.selectionKeys}:{}),n[l.key]=!0,this.$emit("node-select",l)),n},handleSelectionWithoutMetaKey(e){const t=e.node,l=this.isNodeSelected(t);let o;return this.isSingleSelectionMode()?l?(o={},this.$emit("node-unselect",t)):(o={},o[t.key]=!0,this.$emit("node-select",t)):l?(o={...this.selectionKeys},delete o[t.key],this.$emit("node-unselect",t)):(o=this.selectionKeys?{...this.selectionKeys}:{},o[t.key]=!0,this.$emit("node-select",t)),o},onCheckboxChange(e){this.$emit("update:selectionKeys",e.selectionKeys),e.check?this.$emit("node-select",e.node):this.$emit("node-unselect",e.node)},isSingleSelectionMode(){return"single"===this.selectionMode},isMultipleSelectionMode(){return"multiple"===this.selectionMode},onPage(e){this.d_first=e.first,this.d_rows=e.rows;let t=this.createLazyLoadEvent(e);t.pageCount=e.pageCount,t.page=e.page,this.$emit("update:first",this.d_first),this.$emit("update:rows",this.d_rows),this.$emit("page",t)},resetPage(){this.d_first=0,this.$emit("update:first",this.d_first)},getFilterColumnHeaderClass(e){return["p-filter-column",this.columnProp(e,"filterHeaderClass"),{"p-frozen-column":this.columnProp(e,"frozen")}]},onColumnHeaderClick(e){let l=e.originalEvent,o=e.column;if(this.columnProp(o,"sortable")){const e=l.target,n=this.columnProp(o,"sortField")||this.columnProp(o,"field");if(t.hasClass(e,"p-sortable-column")||t.hasClass(e,"p-column-title")||t.hasClass(e,"p-sortable-column-icon")||t.hasClass(e.parentElement,"p-sortable-column-icon")){if(t.clearSelection(),"single"===this.sortMode)this.d_sortField===n?this.removableSort&&-1*this.d_sortOrder===this.defaultSortOrder?(this.d_sortOrder=null,this.d_sortField=null):this.d_sortOrder=-1*this.d_sortOrder:(this.d_sortOrder=this.defaultSortOrder,this.d_sortField=n),this.$emit("update:sortField",this.d_sortField),this.$emit("update:sortOrder",this.d_sortOrder),this.resetPage();else if("multiple"===this.sortMode){l.metaKey||l.ctrlKey||(this.d_multiSortMeta=this.d_multiSortMeta.filter((e=>e.field===n))),this.addMultiSortField(n),this.$emit("update:multiSortMeta",this.d_multiSortMeta)}this.$emit("sort",this.createLazyLoadEvent(l))}}},addMultiSortField(e){let t=this.d_multiSortMeta.findIndex((t=>t.field===e));t>=0?this.removableSort&&-1*this.d_multiSortMeta[t].order===this.defaultSortOrder?this.d_multiSortMeta.splice(t,1):this.d_multiSortMeta[t]={field:e,order:-1*this.d_multiSortMeta[t].order}:this.d_multiSortMeta.push({field:e,order:this.defaultSortOrder}),this.d_multiSortMeta=[...this.d_multiSortMeta]},sortSingle(e){return this.sortNodesSingle(e)},sortNodesSingle(t){let l=[...t];return l.sort(((t,l)=>{const o=e.resolveFieldData(t.data,this.d_sortField),n=e.resolveFieldData(l.data,this.d_sortField);let i=null;return i=null==o&&null!=n?-1:null!=o&&null==n?1:null==o&&null==n?0:"string"==typeof o&&"string"==typeof n?o.localeCompare(n,void 0,{numeric:!0}):o<n?-1:o>n?1:0,this.d_sortOrder*i})),l},sortMultiple(e){return this.sortNodesMultiple(e)},sortNodesMultiple(e){let t=[...e];return t.sort(((e,t)=>this.multisortField(e,t,0))),t},multisortField(t,l,o){const n=e.resolveFieldData(t.data,this.d_multiSortMeta[o].field),i=e.resolveFieldData(l.data,this.d_multiSortMeta[o].field);let s=null;if(null==n&&null!=i)s=-1;else if(null!=n&&null==i)s=1;else if(null==n&&null==i)s=0;else{if(n===i)return this.d_multiSortMeta.length-1>o?this.multisortField(t,l,o+1):0;if(("string"==typeof n||n instanceof String)&&("string"==typeof i||i instanceof String))return this.d_multiSortMeta[o].order*n.localeCompare(i,void 0,{numeric:!0});s=n<i?-1:1}return this.d_multiSortMeta[o].order*s},filter(e){let t=[];const o="strict"===this.filterMode;for(let n of e){let e={...n},i=!0,s=!1;for(let t=0;t<this.columns.length;t++){let n=this.columns[t],r=this.columnProp(n,"field");if(Object.prototype.hasOwnProperty.call(this.filters,this.columnProp(n,"field"))){let t=this.columnProp(n,"filterMatchMode")||"startsWith",s={filterField:r,filterValue:this.filters[this.columnProp(n,"field")],filterConstraint:l.filters[t],strict:o};if((!o||this.findFilteredNodes(e,s)||this.isFilterMatched(e,s))&&(o||this.isFilterMatched(e,s)||this.findFilteredNodes(e,s))||(i=!1),!i)break}if(this.hasGlobalFilter()&&!s){let t={...e},n={filterField:r,filterValue:this.filters.global,filterConstraint:l.filters.contains,strict:o};(o&&(this.findFilteredNodes(t,n)||this.isFilterMatched(t,n))||!o&&(this.isFilterMatched(t,n)||this.findFilteredNodes(t,n)))&&(s=!0,e=t)}}let r=i;this.hasGlobalFilter()&&(r=i&&s),r&&t.push(e)}let n=this.createLazyLoadEvent(event);return n.filteredValue=t,this.$emit("filter",n),t},findFilteredNodes(e,t){if(e){let l=!1;if(e.children){let o=[...e.children];e.children=[];for(let n of o){let o={...n};this.isFilterMatched(o,t)&&(l=!0,e.children.push(o))}}if(l)return!0}},isFilterMatched(t,{filterField:l,filterValue:o,filterConstraint:n,strict:i}){let s=!1;return n(e.resolveFieldData(t.data,l),o,this.filterLocale)&&(s=!0),(!s||i&&!this.isNodeLeaf(t))&&(s=this.findFilteredNodes(t,{filterField:l,filterValue:o,filterConstraint:n,strict:i})||s),s},isNodeSelected(e){return!(!this.selectionMode||!this.selectionKeys)&&!0===this.selectionKeys[e.key]},isNodeLeaf:e=>!1!==e.leaf&&!(e.children&&e.children.length),createLazyLoadEvent(e){let t;return this.hasFilters()&&(t={},this.columns.forEach((e=>{this.columnProp(e,"field")&&(t[e.props.field]=this.columnProp(e,"filterMatchMode"))}))),{originalEvent:e,first:this.d_first,rows:this.d_rows,sortField:this.d_sortField,sortOrder:this.d_sortOrder,multiSortMeta:this.d_multiSortMeta,filters:this.filters,filterMatchModes:t}},onColumnResizeStart(e){let l=t.getOffset(this.$el).left;this.resizeColumnElement=e.target.parentElement,this.columnResizing=!0,this.lastResizeHelperX=e.pageX-l+this.$el.scrollLeft,this.bindColumnResizeEvents()},onColumnResize(e){let l=t.getOffset(this.$el).left;t.addClass(this.$el,"p-unselectable-text"),this.$refs.resizeHelper.style.height=this.$el.offsetHeight+"px",this.$refs.resizeHelper.style.top="0px",this.$refs.resizeHelper.style.left=e.pageX-l+this.$el.scrollLeft+"px",this.$refs.resizeHelper.style.display="block"},onColumnResizeEnd(){let e=this.$refs.resizeHelper.offsetLeft-this.lastResizeHelperX,l=this.resizeColumnElement.offsetWidth,o=l+e,n=this.resizeColumnElement.style.minWidth||15;if(l+e>parseInt(n,10)){if("fit"===this.columnResizeMode){let t=this.resizeColumnElement.nextElementSibling,l=t.offsetWidth-e;o>15&&l>15&&(this.scrollable?this.resizeTableCells(o,l):(this.resizeColumnElement.style.width=o+"px",t&&(t.style.width=l+"px")))}else"expand"===this.columnResizeMode&&(this.$refs.table.style.width=this.$refs.table.offsetWidth+e+"px",this.scrollable?this.resizeTableCells(o):this.resizeColumnElement.style.width=o+"px");this.$emit("column-resize-end",{element:this.resizeColumnElement,delta:e})}this.$refs.resizeHelper.style.display="none",this.resizeColumn=null,t.removeClass(this.$el,"p-unselectable-text"),this.unbindColumnResizeEvents()},resizeTableCells(e,l){let o=t.index(this.resizeColumnElement),n=this.$refs.table.children;for(let t of n)for(let n of t.children){let t=n.children[o];if(t.style.flex="0 0 "+e+"px","fit"===this.columnResizeMode){let e=t.nextElementSibling;e&&(e.style.flex="0 0 "+l+"px")}}},bindColumnResizeEvents(){this.documentColumnResizeListener||(this.documentColumnResizeListener=document.addEventListener("mousemove",(()=>{this.columnResizing&&this.onColumnResize(event)}))),this.documentColumnResizeEndListener||(this.documentColumnResizeEndListener=document.addEventListener("mouseup",(()=>{this.columnResizing&&(this.columnResizing=!1,this.onColumnResizeEnd())})))},unbindColumnResizeEvents(){this.documentColumnResizeListener&&(document.removeEventListener("document",this.documentColumnResizeListener),this.documentColumnResizeListener=null),this.documentColumnResizeEndListener&&(document.removeEventListener("document",this.documentColumnResizeEndListener),this.documentColumnResizeEndListener=null)},onColumnKeyDown(e,l){13===e.which&&"TH"===e.currentTarget.nodeName&&t.hasClass(e.currentTarget,"p-sortable-column")&&this.onColumnHeaderClick(e,l)},hasColumnFilter(){if(this.columns)for(let e of this.columns)if(e.children&&e.children.filter)return!0;return!1},hasFilters(){return this.filters&&Object.keys(this.filters).length>0&&this.filters.constructor===Object},hasGlobalFilter(){return this.filters&&Object.prototype.hasOwnProperty.call(this.filters,"global")},updateScrollWidth(){this.$refs.table.style.width=this.$refs.table.scrollWidth+"px"}},computed:{containerClass(){return["p-treetable p-component",{"p-treetable-hoverable-rows":this.rowHover||this.rowSelectionMode,"p-treetable-auto-layout":this.autoLayout,"p-treetable-resizable":this.resizableColumns,"p-treetable-resizable-fit":this.resizableColumns&&"fit"===this.columnResizeMode,"p-treetable-gridlines":this.showGridlines,"p-treetable-scrollable":this.scrollable,"p-treetable-scrollable-vertical":this.scrollable&&"vertical"===this.scrollDirection,"p-treetable-scrollable-horizontal":this.scrollable&&"horizontal"===this.scrollDirection,"p-treetable-scrollable-both":this.scrollable&&"both"===this.scrollDirection,"p-treetable-flex-scrollable":this.scrollable&&"flex"===this.scrollHeight,"p-treetable-responsive-scroll":"scroll"===this.responsiveLayout}]},columns(){let e=[];return this.$slots.default().forEach((t=>{t.children&&t.children instanceof Array?e=[...e,...t.children]:"Column"===t.type.name&&e.push(t)})),e},processedData(){if(this.lazy)return this.value;if(this.value&&this.value.length){let e=this.value;return this.sorted&&("single"===this.sortMode?e=this.sortSingle(e):"multiple"===this.sortMode&&(e=this.sortMultiple(e))),this.hasFilters()&&(e=this.filter(e)),e}return null},dataToRender(){const e=this.processedData;if(this.paginator){const t=this.lazy?0:this.d_first;return e.slice(t,t+this.d_rows)}return e},empty(){const e=this.processedData;return!e||0===e.length},sorted(){return this.d_sortField||this.d_multiSortMeta&&this.d_multiSortMeta.length>0},hasFooter(){let e=!1;for(let t of this.columns)if(this.columnProp(t,"footer")||t.children&&t.children.footer){e=!0;break}return e},paginatorTop(){return this.paginator&&("bottom"!==this.paginatorPosition||"both"===this.paginatorPosition)},paginatorBottom(){return this.paginator&&("top"!==this.paginatorPosition||"both"===this.paginatorPosition)},singleSelectionMode(){return this.selectionMode&&"single"===this.selectionMode},multipleSelectionMode(){return this.selectionMode&&"multiple"===this.selectionMode},rowSelectionMode(){return this.singleSelectionMode||this.multipleSelectionMode},totalRecordsLength(){if(this.lazy)return this.totalRecords;{const e=this.processedData;return e?e.length:0}},loadingIconClass(){return["p-treetable-loading-icon pi-spin",this.loadingIcon]}},components:{TTRow:w,TTPaginator:S,TTHeaderCell:F,TTFooterCell:T}};const R={key:0,class:"p-treetable-loading"},E={class:"p-treetable-loading-overlay p-component-overlay"},L={key:1,class:"p-treetable-header"},N={ref:"table"},D={class:"p-treetable-thead"},H={key:0},B={class:"p-treetable-tbody"},j={key:1,class:"p-treetable-emptymessage"},W=["colspan"],I={key:0,class:"p-treetable-tfoot"},V={key:4,class:"p-treetable-footer"},A={ref:"resizeHelper",class:"p-column-resizer-helper p-highlight",style:{display:"none"}};!function(e,t){void 0===t&&(t={});var l=t.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css","top"===l&&o.firstChild?o.insertBefore(n,o.firstChild):o.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}}("\n.p-treetable {\n position: relative;\n}\n.p-treetable table {\n border-collapse: collapse;\n width: 100%;\n table-layout: fixed;\n}\n.p-treetable .p-sortable-column {\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.p-treetable-responsive-scroll > .p-treetable-wrapper {\n overflow-x: auto;\n}\n.p-treetable-responsive-scroll > .p-treetable-wrapper > table,\n.p-treetable-auto-layout > .p-treetable-wrapper > table {\n table-layout: auto;\n}\n.p-treetable-hoverable-rows .p-treetable-tbody > tr {\n cursor: pointer;\n}\n.p-treetable-toggler {\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n vertical-align: middle;\n overflow: hidden;\n position: relative;\n}\n.p-treetable-toggler + .p-checkbox {\n vertical-align: middle;\n}\n.p-treetable-toggler + .p-checkbox + span {\n vertical-align: middle;\n}\n\n/* Resizable */\n.p-treetable-resizable > .p-treetable-wrapper {\n overflow-x: auto;\n}\n.p-treetable-resizable .p-treetable-thead > tr > th,\n.p-treetable-resizable .p-treetable-tfoot > tr > td,\n.p-treetable-resizable .p-treetable-tbody > tr > td {\n overflow: hidden;\n}\n.p-treetable-resizable .p-resizable-column:not(.p-frozen-column) {\n background-clip: padding-box;\n position: relative;\n}\n.p-treetable-resizable-fit .p-resizable-column:last-child .p-column-resizer {\n display: none;\n}\n.p-treetable .p-column-resizer {\n display: block;\n position: absolute !important;\n top: 0;\n right: 0;\n margin: 0;\n width: .5rem;\n height: 100%;\n padding: 0px;\n cursor:col-resize;\n border: 1px solid transparent;\n}\n.p-treetable .p-column-resizer-helper {\n width: 1px;\n position: absolute;\n z-index: 10;\n display: none;\n}\n.p-treetable .p-treetable-loading-overlay {\n position: absolute;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n z-index: 2;\n}\n\n/* Scrollable */\n.p-treetable-scrollable .p-treetable-wrapper {\n position: relative;\n overflow: auto;\n}\n.p-treetable-scrollable .p-treetable-table {\n display: block;\n}\n.p-treetable-scrollable .p-treetable-thead,\n.p-treetable-scrollable .p-treetable-tbody,\n.p-treetable-scrollable .p-treetable-tfoot {\n display: block;\n}\n.p-treetable-scrollable .p-treetable-thead > tr,\n.p-treetable-scrollable .p-treetable-tbody > tr,\n.p-treetable-scrollable .p-treetable-tfoot > tr {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n width: 100%;\n}\n.p-treetable-scrollable .p-treetable-thead > tr > th,\n.p-treetable-scrollable .p-treetable-tbody > tr > td,\n.p-treetable-scrollable .p-treetable-tfoot > tr > td {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-flex: 1;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n.p-treetable-scrollable .p-treetable-thead {\n position: sticky;\n top: 0;\n z-index: 1;\n}\n.p-treetable-scrollable .p-treetable-tfoot {\n position: sticky;\n bottom: 0;\n z-index: 1;\n}\n.p-treetable-scrollable .p-frozen-column {\n position: sticky;\n background: inherit;\n}\n.p-treetable-scrollable th.p-frozen-column {\n z-index: 1;\n}\n.p-treetable-scrollable-both .p-treetable-thead > tr > th,\n.p-treetable-scrollable-both .p-treetable-tbody > tr > td,\n.p-treetable-scrollable-both .p-treetable-tfoot > tr > td,\n.p-treetable-scrollable-horizontal .p-treetable-thead > tr > th\n.p-treetable-scrollable-horizontal .p-treetable-tbody > tr > td,\n.p-treetable-scrollable-horizontal .p-treetable-tfoot > tr > td {\n -webkit-box-flex: 0;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n.p-treetable-flex-scrollable {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n height: 100%;\n}\n.p-treetable-flex-scrollable .p-treetable-wrapper {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n height: 100%;\n}\n"),O.render=function(e,t,l,o,n,d){const m=f("TTPaginator"),g=f("TTHeaderCell"),S=f("TTRow"),z=f("TTFooterCell");return i(),s("div",{class:a(d.containerClass),"data-scrollselectors":".p-treetable-scrollable-body"},[l.loading?(i(),s("div",R,[c("div",E,[c("i",{class:a(d.loadingIconClass)},null,2)])])):h("",!0),e.$slots.header?(i(),s("div",L,[k(e.$slots,"header")])):h("",!0),d.paginatorTop?(i(),u(m,{key:2,rows:n.d_rows,first:n.d_first,totalRecords:d.totalRecordsLength,pageLinkSize:l.pageLinkSize,template:l.paginatorTemplate,rowsPerPageOptions:l.rowsPerPageOptions,currentPageReportTemplate:l.currentPageReportTemplate,class:"p-paginator-top",onPage:t[0]||(t[0]=e=>d.onPage(e)),alwaysShow:l.alwaysShowPaginator},x({_:2},[e.$slots.paginatorstart?{name:"start",fn:C((()=>[k(e.$slots,"paginatorstart")]))}:void 0,e.$slots.paginatorend?{name:"end",fn:C((()=>[k(e.$slots,"paginatorend")]))}:void 0]),1032,["rows","first","totalRecords","pageLinkSize","template","rowsPerPageOptions","currentPageReportTemplate","alwaysShow"])):h("",!0),c("div",{class:"p-treetable-wrapper",style:r({maxHeight:l.scrollHeight})},[c("table",N,[c("thead",D,[c("tr",null,[(i(!0),s(b,null,y(d.columns,((e,t)=>(i(),s(b,{key:d.columnProp(e,"columnKey")||d.columnProp(e,"field")||t},[d.columnProp(e,"hidden")?h("",!0):(i(),u(g,{key:0,column:e,resizableColumns:l.resizableColumns,sortField:n.d_sortField,sortOrder:n.d_sortOrder,multiSortMeta:n.d_multiSortMeta,sortMode:l.sortMode,onColumnClick:d.onColumnHeaderClick,onColumnResizestart:d.onColumnResizeStart},null,8,["column","resizableColumns","sortField","sortOrder","multiSortMeta","sortMode","onColumnClick","onColumnResizestart"]))],64)))),128))]),d.hasColumnFilter()?(i(),s("tr",H,[(i(!0),s(b,null,y(d.columns,((e,t)=>(i(),s(b,{key:d.columnProp(e,"columnKey")||d.columnProp(e,"field")||t},[d.columnProp(e,"hidden")?h("",!0):(i(),s("th",{key:0,class:a(d.getFilterColumnHeaderClass(e)),style:r([d.columnProp(e,"style"),d.columnProp(e,"filterHeaderStyle")])},[e.children&&e.children.filter?(i(),u(p(e.children.filter),{key:0,column:e},null,8,["column"])):h("",!0)],6))],64)))),128))])):h("",!0)]),c("tbody",B,[d.empty?(i(),s("tr",j,[c("td",{colspan:d.columns.length},[k(e.$slots,"empty")],8,W)])):(i(!0),s(b,{key:0},y(d.dataToRender,(e=>(i(),u(S,{key:e.key,columns:d.columns,node:e,level:0,expandedKeys:n.d_expandedKeys,onNodeToggle:d.onNodeToggle,indentation:l.indentation,selectionMode:l.selectionMode,selectionKeys:l.selectionKeys,onNodeClick:d.onNodeClick,onCheckboxChange:d.onCheckboxChange},null,8,["columns","node","expandedKeys","onNodeToggle","indentation","selectionMode","selectionKeys","onNodeClick","onCheckboxChange"])))),128))]),d.hasFooter?(i(),s("tfoot",I,[c("tr",null,[(i(!0),s(b,null,y(d.columns,((e,t)=>(i(),s(b,{key:d.columnProp(e,"columnKey")||d.columnProp(e,"field")||t},[d.columnProp(e,"hidden")?h("",!0):(i(),u(z,{key:0,column:e},null,8,["column"]))],64)))),128))])])):h("",!0)],512)],4),d.paginatorBottom?(i(),u(m,{key:3,rows:n.d_rows,first:n.d_first,totalRecords:d.totalRecordsLength,pageLinkSize:l.pageLinkSize,template:l.paginatorTemplate,rowsPerPageOptions:l.rowsPerPageOptions,currentPageReportTemplate:l.currentPageReportTemplate,class:"p-paginator-bottom",onPage:t[1]||(t[1]=e=>d.onPage(e)),alwaysShow:l.alwaysShowPaginator},x({_:2},[e.$slots.paginatorstart?{name:"start",fn:C((()=>[k(e.$slots,"paginatorstart")]))}:void 0,e.$slots.paginatorend?{name:"end",fn:C((()=>[k(e.$slots,"paginatorend")]))}:void 0]),1032,["rows","first","totalRecords","pageLinkSize","template","rowsPerPageOptions","currentPageReportTemplate","alwaysShow"])):h("",!0),e.$slots.footer?(i(),s("div",V,[k(e.$slots,"footer")])):h("",!0),c("div",A,null,512)],2)};export{O as default};