integralui-web-treeview
Version:
IntegralUI Web Lite - TreeView is a native Web Component that can help you to create and modify hierarchical structures on the fly
15 lines (12 loc) • 25.6 kB
JavaScript
/*
filename: integralui.treeview.js
version : 20.2.0
Copyright © 2020 Lidor Systems. All rights reserved.
This file is part of the "IntegralUI Web Lite" Library.
The contents of this file are subject to the IntegralUI Web Lite License, and may not be used except in compliance with the License.
A copy of the License should have been installed in the product's root installation directory or it can be found at
http://www.lidorsystems.com/products/web/lite/license-agreement.aspx.
This SOFTWARE is provided "AS IS", WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language
governing rights and limitations under the License. Any infringement will be prosecuted under applicable laws.
*/
import{c as css,h as html}from"../external/lit-element.js";import{c as classMap}from"../external/class-map.js";import{s as styleMap}from"../external/style-map.js";import{IntegralUIItemDisplayMode,IntegralUIMoveDirection,IntegralUITheme}from"./integralui.enums.js";import IntegralUIBaseList from"./integralui.base.list.js";import"./integralui.scrollbar.js";import{iuiTreeViewDefaultStyle}from"../styles/integralui.treeview.style.js";import{iuiTreeViewOfficeStyle}from"../themes/office/integralui.treeview.office.js";import{iuiTreeViewMidnightStyle}from"../themes/midnight/integralui.treeview.midnight.js";import{iuiTreeItemDefaultStyle}from"../styles/integralui.treeitem.style.js";import{iuiTreeItemOfficeStyle}from"../themes/office/integralui.treeitem.office.js";import{iuiTreeItemMidnightStyle}from"../themes/midnight/integralui.treeitem.midnight.js";class IntegralUITreeView extends IntegralUIBaseList{_ini(){super._ini();this._isChIts=!1;this._expTm=null;this._expIt=null;this._cItDsp=IntegralUIItemDisplayMode.Full;this._isExpVbl=!0;this._isLngPrc=!1;this._lngOj={data:null,width:0};this._cCtrStyStt=iuiTreeViewDefaultStyle;this._cItStyStt=iuiTreeItemDefaultStyle;this._cItThStt=css``;this._gnrCsNm="iui-treeview";this._iCsNm="iui-treeitem";this._iCntCsNm=this._iCsNm+"-content";this._expCsNm=this._iCsNm+"-expand-box";this._isExpTch=!1;this._uOpt();this._iniStyle();this._uDt()}connectedCallback(){super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback();if(this._expTm)clearTimeout(this._expTm);this._rstLyTm()}_iniStyle(){this._dfSty={general:{disabled:this._gnrCsNm+"-disabled",focused:this._gnrCsNm+"-focused",normal:this._gnrCsNm,hovered:this._gnrCsNm+"-hovered",selected:this._gnrCsNm+"-selected"},item:{general:{disabled:this._iCsNm+"-disabled",focused:this._iCsNm+"-focused",normal:this._iCsNm,hovered:this._iCsNm+"-hovered",selected:this._iCsNm+"-selected"},expandBox:{general:this._expCsNm,load:this._expCsNm+"-load",expanded:this._expCsNm+"-open",collapsed:this._expCsNm+"-close"},content:{disabled:this._iCntCsNm+"-disabled",focused:this._iCntCsNm+"-focused",normal:this._iCntCsNm,hovered:this._iCntCsNm+"-hovered",selected:this._iCntCsNm+"-selected"}}};this._uSty(this.controlStyle);this._uCtrCs();this.refresh()}attributeChangedCallback(t,e,i){super.attributeChangedCallback(t,e,i)}static get properties(){return{indent:{type:Number,reflect:!0},itemDisplay:{attribute:"item-display",converter:{fromAttribute:t=>"partial"===(t=t.replace(/"|'/,"").replace(/"|'/,"")).toLowerCase()?IntegralUIItemDisplayMode.Partial:IntegralUIItemDisplayMode.Full,toAttribute:(t,e)=>t===IntegralUIItemDisplayMode.Partial?"Partial":"Full"},reflect:!0},showExpandBox:{type:Boolean,attribute:"show-expandbox",reflect:!0}}}get indent(){return this._opt.indent}set indent(t){if(this._opt.indent!==t){const e=this._opt.indent;this._opt.indent=t;this.requestUpdate("indent",e);this.updateLayout()}}get itemDisplay(){return this._cItDsp}set itemDisplay(t){if(this._cItDsp!==t){const e=this._cItDsp;this._cItDsp=t;this.requestUpdate("itemDisplay",e);this.updateLayout()}}get showExpandBox(){return this._isExpVbl}set showExpandBox(t){if(this._isExpVbl!==t){const e=this._isExpVbl;this._isExpVbl=t;this.requestUpdate("showExpandBox",e);this.updateLayout()}}_iDClkEv(t,e){if(this._enbl){let i={cancel:!1,event:t,item:e.data};this._inkEv("itemDblClick",i);if(!0!==i.cancel)this.toggle(e.data)}}_uDt(){this._cDtaService.init([{data:this.items,fields:this._opt.dataFields}]);this.updateLayout()}_uOpt(t){if(t){this._opt={allowDrag:this._cmnSrv.isFieldAvailable(t.allowDrag,!1),allowDrop:this._cmnSrv.isFieldAvailable(t.allowDrop,!0),compactMode:this._cmnSrv.isFieldAvailable(t.compactMode,!1),dataFields:null,indent:this._cmnSrv.isFieldAvailable(t.indent,15),loadItems:[],selectedItem:this._cmnSrv.isFieldAvailable(t.selectedItem,this._opt.selectedItem?this._opt.selectedItem:null)};this._uShSc(t.showScroll)}else{this._opt={allowDrag:!1,allowDrop:!0,compactMode:!1,dataFields:null,indent:15,loadItems:[],selectedItem:null};this._uDtFields();this._uShSc()}}_uDtFields(t){if(t)this._opt.dataFields={allowDrag:t.allowDrag?t.allowDrag:"allowDrag",allowDrop:t.allowDrop?t.allowDrop:"allowDrop",allowEdit:t.allowEdit?t.allowEdit:"allowEdit",allowFocus:t.allowFocus?t.allowFocus:"allowFocus",autoCheck:t.autoCheck?t.autoCheck:"autoCheck",checkBoxSettings:t.checkBoxSettings?t.checkBoxSettings:"checkBoxSettings",checked:t.checked?t.checked:"checked",checkState:t.checkState?t.checkState:"checkState",content:t.content?t.content:"content",contentVisibility:t.contentVisibility?t.contentVisibility:"contentVisibility",contextMenu:t.contextMenu?t.contextMenu:"contextMenu",enabled:t.enabled?t.enabled:"enabled",expanded:t.expanded?t.expanded:"expanded",hasChildren:t.hasChildren?t.hasChildren:"hasChildren",icon:t.icon?t.icon:"icon",id:t.id?t.id:"id",items:t.items?t.items:"items",pid:t.pid?t.pid:"pid",selected:t.selected?t.selected:"selected",statusIcon:t.statusIcon?t.statusIcon:"statusIcon",style:t.style?t.style:"style",templateObj:t.templateObj?t.templateObj:"templateObj",text:t.text?t.text:"text",tooltip:t.tooltip?t.tooltip:"tooltip",value:t.value?t.value:"value",visible:t.value?t.visible:"visible"};else this._opt.dataFields={allowDrag:"allowDrag",allowDrop:"allowDrop",allowEdit:"allowEdit",allowFocus:"allowFocus",autoCheck:"autoCheck",checkBoxSettings:"checkBoxSettings",checked:"checked",checkState:"checkState",content:"content",contentVisibility:"contentVisibility",contextMenu:"contextMenu",enabled:"enabled",expanded:"expanded",hasChildren:"hasChildren",icon:"icon",id:"id",items:"items",pid:"pid",selected:"selected",statusIcon:"statusIcon",style:"style",templateObj:"templateObj",text:"text",tooltip:"tooltip",value:"value",visible:"visible"};if(this._cDtaService)this._cDtaService.updateDataFields(this._opt.dataFields)}_uCLt(){this._cLt.length=0;this._isChIts=!1;let t=this._cDtaService.getList();if(t)t.forEach(t=>this._adChIts(t,0,null,!1))}_adChIts(t,e,i,s,l){let h=!0;if(!t[this._opt.dataFields.items])return h=this._adItCLt(t,e,i,s,l);if(this._adItCLt(t,e,i,s,l)){h=!0;let i=0;if(s||this.isItemExpanded(t)){let l=t[this._opt.dataFields.items];if(l)l.forEach(l=>{if(this._adChIts(l,e+this._opt.indent,t[this._opt.dataFields.id],s,t))i++})}let l=!this.isItemExpanded(t)&&t[this._opt.dataFields.items]&&t[this._opt.dataFields.items].length>0&&this._isVblCh(t);if(!s&&!this._isChIts&&(i>0||l))this._isChIts=!0}return h}_adItCLt(t,e,i,s,l){t.type="item";if(!t[this._opt.dataFields.id])t[this._opt.dataFields.id]=this._cmnSrv.getUniqueId();if(i)t[this._opt.dataFields.pid]=i;let h=this._isItAlw(t);if(h)if(s)this._flLt.push(t);else this._cLt.push({data:t,indent:e});return h}_rstVbl(t){if(t)t.forEach(t=>{t[this._opt.dataFields.visible]=!0;this._rstVbl(t[this._opt.dataFields.items])})}_clpCh(t){if(t)t.forEach(t=>{t[this._opt.dataFields.expanded]=!1;this._clpCh(t[this._opt.dataFields.items])})}_uCh(t,e){t[this._opt.dataFields.items].forEach(t=>{if(!this._cmnSrv.isEqual(t[this._opt.dataFields.id],e[this._opt.dataFields.id])){t[this._opt.dataFields.expanded]=!1;t[this._opt.dataFields.visible]=this.isItemExpanded(e)&&this._isVblCh(e)?!1:!0}})}loadData(t,e,i,s){this._prcLdDt(t,e,i,s)}_uScItLt(){this._rstScItLt();this._scItLt.length=0;let t=1;for(let e=this._cIdx;e<this._cLt.length&&e<this._cIdx+this._vblRg;e++,t++){let i=this._cLt[e],s={data:i.data,indent:i.indent,index:e-this._cIdx,inlineStyle:this._gItInSty(i),style:{},tabIndex:t};this._uItSty(s);this._scItLt.push(s)}}_chCh(t){let e=!1,i=t[this._opt.dataFields.items];if(i)for(let t=0;t<i.length;t++)if(this._isItAlw(i[t])){e=!0;break}return e}_uITChIts(){let t=!1,e=this._cDtaService.getList();if(e)for(let i=0;i<e.length&&!(t=this._chCh(e[i]));i++);this.isThereChildItems=t}_prcItAdd(t,e){if(this._alwUp)this._uITChIts()}_prcItRmv(t,e){if(this._alwUp)this._uITChIts()}collapse(t){this.toggle(t,!1)}expand(t){this.toggle(t,!0)}_expMuDn(t,e){if(this._enbl){if(1===t.buttons&&!this._isExpTch)this.toggle(e);this._isExpTch=!1}t.stopPropagation()}_expMuUp(t){this._isExpTch=!1;t.stopPropagation()}_expTchSt(t,e){if(this._enbl){this._isExpTch=!0;this.toggle(e)}t.stopPropagation()}_expTchEd(t,e){}toggle(t,e){if(t){if(!t[this._opt.dataFields.hasChildren]&&(!t[this._opt.dataFields.items]||0===t[this._opt.dataFields.items].length))return;else if(e&&!1!==t[this._opt.dataFields.expanded])return;else if(!1===e&&!1===t[this._opt.dataFields.expanded])return;let i=void 0!==e?e:!1!==t[this._opt.dataFields.expanded]?!0:!1,s=void 0!==e?e:!i,l={cancel:!1,item:t};if(void 0!==e)if(e)this._inkEv("beforeExpand",l);else this._inkEv("beforeCollapse",l);else if(i)this._inkEv("beforeCollapse",l);else this._inkEv("beforeExpand",l);if(!0!==l.cancel){if(s!==t[this._opt.dataFields.expanded]){t[this._opt.dataFields.expanded]=s;this._uCLy(!1)}if(this.isItemExpanded(t))this._inkEv("afterExpand",{item:t});else this._inkEv("afterCollapse",{item:t})}}else{this.getFullList().forEach(t=>t[this._opt.dataFields.expanded]=e);this._uCLy(!1)}this.update()}exportToJSON(t,e,i){e=e?e:null;let s=!1===i?this.items:this.getFullList(),l=t?t:[this._opt.dataFields.allowDrag,this._opt.dataFields.allowDrop,this._opt.dataFields.allowEdit,this._opt.dataFields.allowFocus,this._opt.dataFields.autoCheck,this._opt.dataFields.canSelect,this._opt.dataFields.checkBoxSettings,this._opt.dataFields.checked,this._opt.dataFields.checkState,this._opt.dataFields.content,this._opt.dataFields.contextMenu,this._opt.dataFields.contentVisibility,this._opt.dataFields.enabled,this._opt.dataFields.expanded,this._opt.dataFields.fixed,this._opt.dataFields.fixChildren,this._opt.dataFields.hasChildren,this._opt.dataFields.icon,this._opt.dataFields.id,this._opt.dataFields.pid,this._opt.dataFields.selected,this._opt.dataFields.showCheckBox,this._opt.dataFields.statusIcon,this._opt.dataFields.style,this._opt.dataFields.templateObj,this._opt.dataFields.text,this._opt.dataFields.tooltip,this._opt.dataFields.value,this._opt.dataFields.visible];if(!1===i)l.push(this._opt.dataFields.items);return JSON.stringify(s,l,e)}_gDspMd(){return this._cItDsp===IntegralUIItemDisplayMode.Partial&&!this._hTplPnt&&!this._hSelTplPnt?IntegralUIItemDisplayMode.Partial:IntegralUIItemDisplayMode.Full}updateFullList(){this._flLt.length=0;let t=this._cDtaService.getList();if(t)t.forEach(t=>this.addChildItems(t,0,null,!0));return this._flLt}getItemLevel(t){let e=0,i=this.getItemParent(t);for(;i;){e++;i=this.getItemParent(i)}return e}getItemParent(t){return this._cDtaService.getParent(t)}_isChOf(t,e){let i=!1;if(t&&e){let s=e[this._opt.dataFields.items];if(s&&s.length>0)for(let e=0;e<s.length;e++){if(this._cmnSrv.isEqual(t[this._opt.dataFields.id],s[e][this._opt.dataFields.id])){i=!0;break}else i=this._isChOf(t,s[e]);if(i)break}}return i}_isPrnOf(t,e){let i=this._cDtaService.getParent(e);if(t&&e&&i&&this._cmnSrv.isEqual(t[this._opt.dataFields.id],i[this._opt.dataFields.id]))return!0;else return!1}isItemExpanded(t){return t?t[this._opt.dataFields.expanded]||void 0===t[this._opt.dataFields.expanded]?!0:!1:!0}isThereChildren(){return this._isChIts}_isVblCh(t){let e=!1;if(t){let i=t[this._opt.dataFields.items];if(i)for(let t=0;t<i.length;t++)if(this._isItAlw(i[t])){e=!0;break}}return e}_gItRIdx(t){let e=this._cDtaService.getList();return e?e.indexOf(t):-1}getPrevItem(t){let e=null;if(t){let i=this._cDtaService.getList(),s=this.getItemParent(t);if(s)i=s[this._opt.dataFields.items];let l=i.indexOf(t);if((l=l>0?l-1:-1)>=0)e=i[l]}return e}getNextItem(t){let e=null;if(t){let i=this._cDtaService.getList(),s=this.getItemParent(t);if(s)i=s[this._opt.dataFields.items];let l=i.indexOf(t);if((l=l<i.length-1?l+1:-1)>=0)e=i[l]}return e}moveItem(t,e,i,s){if(t){this._alwUp=!1;let l=-1;switch(e){case IntegralUIMoveDirection.At:l=s;break;case IntegralUIMoveDirection.Down:i=this.getNextItem(t);break;case IntegralUIMoveDirection.First:l=0;break;case IntegralUIMoveDirection.Last:l=this._gLstItIdx();break;case IntegralUIMoveDirection.Left:i=this.getItemParent(t);break;case IntegralUIMoveDirection.Right:case IntegralUIMoveDirection.Up:i=this.getPrevItem(t);break;default:l=-1}if(Array.isArray(t)){let s=[];for(let e=0;e<t.length;e++){let i=!1,l=this.getItemParent(t[e]);for(;l;){if(t.indexOf(l)>=0){i=!0;break}l=this.getItemParent(l)}if(!i)s.push(t[e])}if(s.length>0){if(this._gItCIdx(s[0])<=this._gItCIdx(s[s.length-1]))for(let t=0;t<s.length;t++)this.moveItemAt(s[t],i,e,l);else for(let t=s.length-1;t>=0;t--)this.moveItemAt(s[t],i,e,l)}}else this.moveItemAt(t,i,e,l);this._alwUp=!0;this._uCLy(!0);this._inkEv("itemMoved",{item:t})}}_prcLfArwKey(t,e){this.collapse(t.data);return null}_prcRtArwKey(t,e){this.expand(t.data);return null}_uBlkSz(){if(this._cItDsp===IntegralUIItemDisplayMode.Partial){if(!1!==this.virtualMode)this._uLngIt()}else{this._blkSz={width:this._scBrSz.width+2,height:this._scBrSz.height+2};this._lngItWhValue=this._gFItWh()}}_isItCLt(t){let e=!1;if(t)for(let i=0;i<this._cLt.length;i++)if(this._cLt[i].data.id===t.id){e=!0;break}return e}_gFItWh(){if(!this._isLngPrc&&this._cItDsp===IntegralUIItemDisplayMode.Partial&&(this._hTplPnt||this._hSelTplPnt))return this._lngItWh+"px";else return"auto"}_uLngIt(){let t=this;t._isLngPrc=!0;t._prvLngItWh=t._lngOj&&t._isItCLt(t._lngOj.data)?t._lngOj.width:0;setTimeout(function(){if(t._lngOj&&!t._isItCLt(t._lngOj.data))t._lngOj={data:null,width:0};let e=t._gItCntElList();if(e){t._clcLngIt(e);if(t._prvLngItWh<t._clRc.width)t._prvLngItWh=t._clRc.width}let i=t._cmnSrv.getPadding(t._eRf);t._blkSz.width=t._lngOj.width+(i.left+i.right);t._isLngPrc=!1;t._lngItWh=t._prvLngItWh;t._lngItWhValue=t._gFItWh();t._uScSz()},1)}_clcLngIt(t,e){let i=0;for(let s=0;s<t.length;s++)if(s<this._scItLt.length){let l=this._scItLt[s].data,h=this._gOjFmIt(l);if(h){let l=t[s].offsetWidth+h.indent;if(!e&&this._lngOj.data===h.data){this._clcLngIt(t,!0);break}if(i<l&&l>=this._lngOj.width){i=l;this._lngOj={data:h.data,width:i};this._prvLngItWh=i}}}}_uCLy(t){let e=this;if(e._alwUp){e._rstLyTm();e._uCLt();if(t)e.updateFullList();e._uScItLt();if(this._cItDsp===IntegralUIItemDisplayMode.Partial&&!1!==this._virtualMode)e._uLngIt();else e._uScSz();e._uTmr=setTimeout(function(){e._uBlkSz();e.update();e._uItEls();clearTimeout(e._uTmr)},1)}}_uScSz(){this._cntSz={width:this._clRc.width-2,height:this._clRc.height-2};this._scSz={width:this._cItDsp===IntegralUIItemDisplayMode.Partial?this._blkSz.width-this._clRc.width-2:0,height:this._avgItHt*this._cLt.length-this._clRc.height+this._avgItHt};if(this.isVerScrollVisible())this._cntSz.width-=18;if(this._cItDsp===IntegralUIItemDisplayMode.Partial&&this._scSz.width>=-6){if(this.isVerScrollVisible())this._scSz.width+=16;if(this._hTplPnt||this._hSelTplPnt)this._scSz.width+=4}if(this.isHorScrollVisible())this._scSz.height+=16;this._scSz.width=this._scSz.width>0?this._scSz.width:0;this._scSz.height=this._scSz.height>0?this._scSz.height:0;this._mxSclPs={x:this._scSz.width,y:this._scSz.height};if(this._cSclPs.x>this._mxSclPs.x)this._chgHScPs(this._mxSclPs.x);if(this._cSclPs.y>this._mxSclPs.y)this._chgVScPs(this._mxSclPs.y);this._scBrSz={width:this.isVerScrollVisible()?this._clRc.width-18:this._clRc.width-2,height:this.isHorScrollVisible()?this._clRc.height-18:this._clRc.height-2};this._scLChg={x:this._scBrSz.width,y:this._scBrSz.height}}beginLoad(t){if(t)if(this._opt.loadItems.indexOf(t)<0)this._opt.loadItems.push(t)}endLoad(t){let e=this._opt.loadItems.indexOf(t);if(e>=0)this._opt.loadItems.splice(e,1);this._uCLy(!0)}_isItLdg(t){return this._opt.loadItems.indexOf(t)>=0?!0:!1}scrollTo(t){if(!1!==this.virtualMode&&t){this.suspendLayout();let e=this.getItemParent(t);for(;null!==e;){this.expand(e);e=this.getItemParent(e)}this.resumeLayout();let i=this,s=setTimeout(function(){let e=i.getItemCurrentIndex(t);if(e>=0){i.scrollPos({x:i._cSclPs.x,y:i._avgItHt*(e-Math.floor(i._vblRg/2))});i.updateLayout()}clearTimeout(s)},150)}}_gCtrSty(){let t={cursor:this._ctrCrs,overflow:this.virtualMode?"hidden":"auto"};if(this._ctrSz.width>0)t.width=this._ctrSz.width+"px";if(this._ctrSz.height>0)t.height=this._ctrSz.height+"px";return t}_gBlkSty(){let t={};if(this._cItDsp===IntegralUIItemDisplayMode.Partial)t={width:this._blkSz.width+"px"};return t}_gItInSty(t){return t.data[this._opt.dataFields.style]||{}}_gItInCntSty(t){let e={};e["padding-left"]=t.indent+"px";return e}_isNIts(t){return t[this._opt.dataFields.items]&&0===t[this._opt.dataFields.items].length}_iHCh(t){return t[this._opt.dataFields.hasChildren]&&(this._isVblCh(t)||!t[this._opt.dataFields.items]||this._isNIts(t))}_uItSty(t){if(t){t.style={general:{},expandBox:{},content:{}};t.inlineStyle=this._gItInSty(t);t.style.general[this._iCsNm]=!0;t.style.general[this._opt.currentStyle.item.general.normal]=!0;t.style.content[this._iCntCsNm]=!0;t.style.content[this._opt.currentStyle.item.content.normal]=!0;if(this._gDspMd()===IntegralUIItemDisplayMode.Partial){t.style.content["iui-treeitem-content-block"]=!0;if(!this._isItEnb(t.data))t.style.content[this._opt.currentStyle.item.content.disabled]=!0;else if(this._isItSel(t.data))t.style.content[this._opt.currentStyle.item.content.selected]=!0;else if(this._isItHv(t.data))t.style.content[this._opt.currentStyle.item.content.hovered]=!0}else{t.style.general["iui-treeitem-block"]=!0;if(!this._isItEnb(t.data))t.style.general[this._opt.currentStyle.item.general.disabled]=!0;else if(this._isItSel(t.data))t.style.general[this._opt.currentStyle.item.general.selected]=!0;else if(this._isItHv(t.data))t.style.general[this._opt.currentStyle.item.general.hovered]=!0}if(this._opt.allowFocus&&this._cFOj&&t.data===this._cFOj.data)t.style.content[this._opt.currentStyle.item.content.focused]=!0;if(this._isChIts||t.data[this._opt.dataFields.hasChildren])t.style.expandBox[this._opt.currentStyle.item.expandBox.general]=!0;if(this._iHCh(t.data)||this._isVblCh(t.data))if(this._isItLdg(t.data))t.style.expandBox[this._opt.currentStyle.item.expandBox.load]=!0;else if(!1!==t.data[this._opt.dataFields.expanded])t.style.expandBox[this._opt.currentStyle.item.expandBox.expanded]=!0;else t.style.expandBox[this._opt.currentStyle.item.expandBox.collapsed]=!0}}_gItSty(t){if(t)return{general:this._gItGnSty(t.general),expandBox:this._gItExpSty(t.expandBox),content:this._gItCntSty(t.content)};else return this._gDfItSty()}_gItExpSty(t){if(this._cmnSrv.isString(t))return t;else if(t)return{general:this._cmnSrv.isFieldAvailable(t.disabled,this._expCsNm),load:this._cmnSrv.isFieldAvailable(t.focused,this._expCsNm+"-load"),expanded:this._cmnSrv.isFieldAvailable(t.normal,this._expCsNm+"-open"),collapsed:this._cmnSrv.isFieldAvailable(t.hovered,this._expCsNm+"-close")};else return this._gDfItESty()}_gDfItSty(){return{general:this._gDfItGnSty(),expandBox:this._gDfItESty(),content:this._gDfItCntSty()}}_gDfItESty(){return{general:this._dfSty.item.expandBox.general,load:this._dfSty.item.expandBox.load,expanded:this._dfSty.item.expandBox.expanded,collapsed:this._dfSty.item.expandBox.collapsed}}refresh(){if(this._alwUp){this._uCtrCs();this._scItLt.forEach(t=>this._uItSty(t));this.update();this._uRf()}}_uThSt(t){this._cThmSettings=css``;this._cItThStt=css``;switch(t){case IntegralUITheme.Office:this._cThmSettings.cssText=this._cmnSrv.replaceAll(iuiTreeViewOfficeStyle.cssText,"../icons",this._cRsPt);this._cItThStt.cssText=this._cmnSrv.replaceAll(iuiTreeItemOfficeStyle.cssText,"../icons",this._cRsPt);break;case IntegralUITheme.Midnight:this._cThmSettings.cssText=this._cmnSrv.replaceAll(iuiTreeViewMidnightStyle.cssText,"../icons",this._cRsPt);this._cItThStt.cssText=this._cmnSrv.replaceAll(iuiTreeItemMidnightStyle.cssText,"../icons",this._cRsPt);break;default:this._cThmSettings.cssText="";this._cItThStt.cssText=""}}_gItSelBlk(){if(this._hSelTplPnt&&!this._isUAct)return this._cSelItms.map((t,e)=>html`<span>\n ${this._isCntAlw(t,"select")?html`<div class="iui-treeview-block iui-treeview-block-select" style=${styleMap(this._gSelBlkRc(e))}>\n <div style=${styleMap({height:this._blkSelHt+"px"})}>\n ${this._gItTpl(t,"select")}\n </div>\n </div>`:html``}\n </span>`);else return html``}render(){return html`\n <style>\n ${this._cCtrStyStt}\n ${this._cItStyStt}\n ${this._cThmSettings}\n ${this._cItThStt}\n ${this._cCmSty}\n </style>\n <div data-ctrl="treeview" class=${classMap(this._gCtrCs())} style=${styleMap(this._gCtrSty())} @DOMMouseScroll="${t=>this._prcMuWh(t)}" @mousewheel="${t=>this._prcMuWh(t)}" @mouseenter="${t=>this._oCMuEnt(t)}" @mouseleave="${t=>this._oCMuLv(t)}" @mousemove="${t=>this._oCMuMv(t)}" @scroll="${t=>this._oSc(t)}">\n <ul style=${styleMap({width:this._cItDsp===IntegralUIItemDisplayMode.Partial?"9999px":this._blkSz.width+"px",height:this._cntSz.height+"px",margin:0,padding:0,"margin-left":-this._cSclPs.x+"px"})} @touchstart="${t=>this._ctrTchSt(t)}" @touchend="${t=>this._ctrTchEd(t)}">\n ${this._scItLt.map((t,e)=>html`\n <li data-item style=${styleMap(t.inlineStyle)}>\n <div class=${classMap(t.style.general)} style=${styleMap({display:this._cItDsp===IntegralUIItemDisplayMode.Partial?"inline-block":"block",width:this._lngItWhValue})} @mouseenter="${e=>this._iMuEnt(e,t)}" @mousemove="${e=>this._iMuMv(e,t)}" @mouseleave="${e=>this._iMuLv(e,t)}">\n <div style=${styleMap({"padding-left":t.indent+"px"})} @mousedown="${e=>this._iMuDn(e,t)}" @mouseup="${e=>this._iMuUp(e,t)}" @touchstart="${e=>this._iTchSt(e,t)}" @touchmove="${e=>this._iTchMu(e,t)}" @touchend="${e=>this._iTchEd(e,t)}">\n <div data-item-content class=${classMap(t.style.content)} style=${styleMap({display:this._cItDsp===IntegralUIItemDisplayMode.Partial?"inline-block":"block"})} tabindex="${t.tabIndex}" @focus="${()=>this._iGtFc(t)}" @blur="${()=>this._iLtFc(t)}" @keydown="${e=>this._iKeyDn(e,t)}" @keypress="${e=>this._iKeyPrs(e,t)}" @keyup="${e=>this._iKeyUp(e,t)}">\n ${this.showExpandBox?html`<span class=${classMap(t.style.expandBox)} @mousedown="${e=>this._expMuDn(e,t.data)}" @mouseup="${t=>this._expMuUp(t)}" @touchstart="${e=>this._expTchSt(e,t.data)}" @touchend="${e=>this._expTchEd(e,t.data)}"></span>`:html``}\n <div style="display:inline-block" @click="${e=>this._iClkEv(e,t)}" @dblclick="${e=>this._iDClkEv(e,t)}" @contextmenu="${e=>this._iRClkEv(e,t)}">\n ${this._gItTpl(t.data)}\n </div>\n </div>\n </div>\n </div>\n </li>\n `)}\n </ul>\n ${this.isVerScrollVisible()?html`<iui-scrollbar id="ver-scroll" .enabled="${this.enabled}" .value="${this._cSclPs.y}" .max="${this._mxSclPs.y}" .largeChange="${this._scLChg.y}" .height="${this._scBrSz.height}" .theme="${this._cThm}" @mouseenter="${t=>this._scMuEnt(t)}" @valueChanged="${t=>this._oVScChg(t)}" @scrollStart="${t=>this._oVScSt(t)}" @scrollEnd="${t=>this._oVScEd(t)}"></iui-scrollbar>`:html``}\n ${this.isHorScrollVisible()?html`<iui-scrollbar id="hor-scroll" .enabled="${this.enabled}" orientation="Horizontal" .value="${this._cSclPs.x}" .max="${this._mxSclPs.x}" .width="${this._scBrSz.width}" .theme="${this._cThm}" @mouseenter="${t=>this._scMuEnt(t)}" @valueChanged="${t=>this._oHScChg(t)}" @scrollStart="${t=>this._oHScSt(t)}" @scrollEnd="${t=>this._oHScEd(t)}"></iui-scrollbar>`:html``}\n ${this.isVerScrollVisible()&&this.isHorScrollVisible()?html`<div class="iui-scrollbar-corner" style="position:absolute;right:0;bottom:0;width:16px;height:16px;"></div>`:html``}\n </div>\n `}firstUpdated(t){let e=this;e._uRf();setTimeout(function(){e._hTplPnt=e.itemHoverTemplate?!0:!1;e._hSelTplPnt=e.itemSelectTemplate?!0:!1;e.updateLayout()},1)}updated(t){t.forEach((t,e)=>{});this._uFcIt()}_uCtrStyStt(t){this._cCtrStyStt=css``;this._cCtrStyStt.cssText=this._cmnSrv.replaceAll(iuiTreeViewDefaultStyle.cssText,"../icons",t);this._cItStyStt=css``;this._cItStyStt.cssText=this._cmnSrv.replaceAll(iuiTreeItemDefaultStyle.cssText,"../icons",t)}_uRf(){this._eRf=this.shadowRoot.querySelector("div[data-ctrl=treeview]")}}window.customElements.define("iui-treeview",IntegralUITreeView);export default IntegralUITreeView;