-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathsmart.splitter.js
6 lines (4 loc) · 63.7 KB
/
smart.splitter.js
1
2
3
4
5
6
/* Smart UI v15.2.0 (2023-04-20)
Copyright (c) 2011-2023 jQWidgets.
License: https://htmlelements.com/license/ */ //
Smart("smart-splitter-item",class extends Smart.ContentElement{static get properties(){return{collapsed:{value:!1,type:"boolean"},collapsible:{value:!1,type:"boolean"},locked:{value:!1,type:"boolean"},max:{value:"",type:"any",validator:"_propertyValidator"},min:{value:"",type:"any",validator:"_propertyValidator"},size:{value:"",type:"any",validator:"_propertyValidator"}}}get enableShadowDOM(){return!1}template(){return'<div id="container" role="presentation">\n <div class="smart-content" id="content" inner-h-t-m-l="[[innerHTML]]" role="presentation">\n <content></content>\n </div>\n </div>'}static get listeners(){return{mouseenter:"_mouseEventsHandler",mouseleave:"_mouseEventsHandler",styleChanged:"_styleChangedEventHandler"}}propertyChangedHandler(e,t,i){const s=this;switch(e){case"collapsed":s._ignorePropertyValue=!0,i?s.collapse():s.expand();break;case"collapsible":s._updateNearSplitterBars();break;case"size":case"min":case"max":s._setSize(e,i);break;default:super.propertyChangedHandler(e,t,i)}}attached(){super.attached();const e=this;e._sizeLimits||(e._sizeLimits={});const t=getComputedStyle(e);e.min||(e._sizeLimits.minWidth=parseFloat(t.getPropertyValue("min-width"))||0,e._sizeLimits.minHeight=parseFloat(t.getPropertyValue("min-height"))||0),e.max||(e._sizeLimits.maxWidth=parseFloat(t.getPropertyValue("max-width"))||0,e._sizeLimits.maxHeight=parseFloat(t.getPropertyValue("max-height"))||0)}detached(){super.detached(),this.$.removeClass("animate")}appendChild(e){const t=this;if(e){if(!t.isCompleted||e instanceof HTMLElement&&e.classList.contains("smart-resize-trigger-container")){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.appendChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}t.$.content.appendChild(e)}else t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"appendChild",node:"node"}))}collapse(e){const t=this;if(t.collapsible){if(t._ignorePropertyValue||!t.collapsed){const i=t.closest("smart-splitter")||(t.getRootNode()&&t.getRootNode().host?t.getRootNode().host.closest("smart-splitter"):void 0);if(!i)return;const s=i._items.indexOf(t);s===i._items.length-1?e=!0:0===s&&(e=!1);const n=e?-1:1;let a,r=s+n,o=i._items[r];for(;o&&o.collapsed;)r+=n,o=i._items[r];if(!o)return void(t.collapsed=!1);delete t._ignorePropertyValue,t._sizeBeforeCollapse||(t._sizeBeforeCollapse=t[i._measurements.size]),o._sizeBeforeCollapse||(o._sizeBeforeCollapse=o[i._measurements.size]),t.previousElementSibling instanceof Smart.SplitterBar?a=t.previousElementSibling:t.nextElementSibling instanceof Smart.SplitterBar&&(a=t.nextElementSibling);const l=o[i._measurements.size]+t[i._measurements.size],m=a?a[i._measurements.size]:t._sizeLimits[i._measurements.minDimension],d=l-m;if(l&&d<m)return void(t.collapsed=!1);if(i.hasAnimation&&!i._isInitializing&&(t.style[i._measurements.dimension]||(t.style[i._measurements.dimension]=t[i._measurements.size]+"px"),t.$.addClass("animate"),o.$.addClass("animate"),t.addEventListener("transitionend",t._transitionEndHandler,{once:!0}),t.addEventListener("transitioncancel",t._transitionEndHandler,{once:!0}),o.addEventListener("transitionend",t._transitionEndHandler,{once:!0}),o.addEventListener("transitioncancel",t._transitionEndHandler,{once:!0})),!t._paddings){const e=getComputedStyle(t);t._paddings=(parseFloat(e.getPropertyValue("padding-"+i._measurements.position))||0)+(parseFloat(e.getPropertyValue("padding-"+i._measurements.position2))||0)}void 0!==o._sizeBeforeCollapse&&(o._sizeBeforeCollapse=o._sizeBeforeCollapse+t._sizeBeforeCollapse),o._sizeLimits&&o._sizeLimits[i._measurements.maxDimension]&&l>o._sizeLimits[i._measurements.maxDimension]&&(o._sizeLimits.ignoreUpdate=!0,o._sizeBeforeCollapse?o.style[i._measurements.maxDimension]=o._sizeBeforeCollapse+"px":o.style[i._measurements.maxDimension]=""),o.set("size",""),o._sizeBeforeCollapse&&(o.style[i._measurements.dimension]=o._sizeBeforeCollapse+"px"),t.style[i._measurements.dimension]=t.style[i._measurements.minDimension]="0",t.style.padding="0",t._neighbourItem=o,t.collapsed=!0,i.$.fireEvent("collapse",{itemIndex:i._items.indexOf(t)}),e?(t.previousElementSibling.itemCollapsed=!0,t.previousElementSibling.showFarButton=!(t.previousElementSibling.showNearButton=!1)):(t.nextElementSibling.itemCollapsed=!0,t.nextElementSibling.showNearButton=!(t.nextElementSibling.showFarButton=!1))}}else t.collapsed=!1}expand(){const e=this;if(e._ignorePropertyValue||e.collapsed){const t=e.closest("smart-splitter")||(e.getRootNode()&&e.getRootNode().host?e.getRootNode().host.closest("smart-splitter"):void 0);if(!t)return void(e.collapsed=!0);if(!e._neighbourItem)return void(e.collapsed=!0);if(delete e._ignorePropertyValue,!e._neighbourItem._ignorePropertyValue&&e._neighbourItem.collapsed){let i=t._items.indexOf(e._neighbourItem);const s=t._items.indexOf(e)>t._items.indexOf(e._neighbourItem)?-1:1;for(e._neighbourItem=t._items[i];e._neighbourItem&&e._neighbourItem.collapsed;)i+=s,e._neighbourItem=t._items[i]}if(!e._neighbourItem)return void(e.collapsed=!0);e.min&&e._setSize("min",e.min,!0);const i=e._neighbourItem._sizeBeforeCollapse,s=e._sizeLimits[t._measurements.minDimension],n=e._neighbourItem._sizeLimits[t._measurements.minDimension],a=i-s;if(i&&a<n)return void(e.collapsed=!0);if(!e._neighbourItem._paddings){const i=getComputedStyle(e._neighbourItem);e._neighbourItem._paddings=(parseFloat(i.getPropertyValue("padding-"+t._measurements.position))||0)+(parseFloat(i.getPropertyValue("padding-"+t._measurements.position2))||0)}if(!e._paddings){const i=getComputedStyle(e);e._paddings=(parseFloat(i.getPropertyValue("padding-"+t._measurements.position))||0)+(parseFloat(i.getPropertyValue("padding-"+t._measurements.position2))||0)}if((e.size+"").indexOf("%")>-1&&(!e._sizeBeforeCollapse||0===e._sizeBeforeCollapse)&&e._neighbourItem._sizeBeforeCollapse){let i=0;t._items.map((e=>i+=e.collapsed?0:e.style[t._measurements.dimension]&&e.style[t._measurements.dimension].indexOf("%")<-1&&e._sizeBeforeCollapse?e._sizeBeforeCollapse:e.getBoundingClientRect()[t._measurements.dimension])),e._sizeBeforeCollapse=i*parseFloat(e.size)/100}const r=Math.min(Math.max(s,e._sizeBeforeCollapse),i-e._neighbourItem._paddings-e._paddings-n);if(r<0)return void(e.collapsed=!0);e.min&&(e.style[t._measurements.minDimension]=0),e.hasAnimation&&!t._isInitializing&&(e.$.addClass("animate"),e._neighbourItem.$.addClass("animate"),e.addEventListener("transitionend",e._transitionEndHandler,{once:!0}),e.addEventListener("transitioncancel",e._transitionEndHandler,{once:!0}),e._neighbourItem.addEventListener("transitionend",e._transitionEndHandler,{once:!0}),e._neighbourItem.addEventListener("transitioncancel",e._transitionEndHandler,{once:!0})),e.style.padding="",e.min&&(e.style[t._measurements.minDimension]=e._sizeLimits[t._measurements.minDimension]+"px"),e.style[t._measurements.dimension]=(e._sizeBeforeCollapse=r)+"px",e._neighbourItem.style[t._measurements.dimension]=(e._neighbourItem._sizeBeforeCollapse=Math.max(e._neighbourItem._sizeLimits[t._measurements.minDimension],i-r))+"px",e._neighbourItem._sizeLimits[t._measurements.maxDimension]&&(e._neighbourItem.style[t._measurements.maxDimension]=e._neighbourItem._sizeLimits[t._measurements.maxDimension]+"px"),e.collapsed=!1,t.$.fireEvent("expand",{itemIndex:t._items.indexOf(e)}),t._items.indexOf(e)>t._items.indexOf(e._neighbourItem)?(e.previousElementSibling.itemCollapsed=!1,e.previousElementSibling.showNearButton=e._neighbourItem.collapsible):(e.nextElementSibling.itemCollapsed=!1,e.nextElementSibling.showFarButton=e._neighbourItem.collapsible);const o=t._items[t._items.indexOf(e)-1],l=t._items[t._items.indexOf(e)+1];if(o){const t=o.nextElementSibling;t&&t instanceof Smart.SplitterBar&&(o.collapsed?t.showNearButton=e.collapsible:(t.itemCollapsed=!1,t.showNearButton=o.collapsible,t.showFarButton=e.collapsible))}if(l){const t=l.previousElementSibling;t&&t instanceof Smart.SplitterBar&&(l.collapsed?t.showFarButton=l.collapsed:(t.itemCollapsed=!1,t.showNearButton=e.collapsible,t.showFarButton=l.collapsible))}delete e._neighbourItem}}insertBefore(e,t){const i=this;if(e){if(!i.isCompleted||e instanceof HTMLElement&&e.classList.contains("smart-resize-trigger-container")){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.insertBefore.apply(i,e.concat(Array.prototype.slice.call(arguments)))}i.$.content.insertBefore(e,t||null)}else i.error(i.localize("invalidNode",{elementType:i.nodeName.toLowerCase(),method:"insertBefore",node:"node"}))}lock(){this.locked=!0}unlock(){this.locked=!1}ready(){super.ready()}render(){const e=this,t=e.closest("smart-splitter"),i=t&&t.isCompleted;e.setAttribute("role","region"),e._sizeLimits={};let s="string"==typeof e.min&&e.min.indexOf("%")>-1;const n=isNaN(parseFloat(e.min))?0:parseFloat(e.min),a=isNaN(parseFloat(e.max))?0:parseFloat(e.max);if(e._sizeLimits.minWidth=e._sizeLimits.minHeight=s&&i?n*t[t._measurements.size]/100:n,s="string"==typeof e.max&&e.max.indexOf("%")>-1,e._sizeLimits.maxWidth=e._sizeLimits.maxHeight=s&&i?a*t[t._measurements.size]/100:a,e.size){s="string"==typeof e.size&&e.size.indexOf("%")>-1;const n="auto"===e.size?e.size:isNaN(parseFloat(e.size))?0:parseFloat(e.size)+(s?"%":"px");i?e.style[t._measurements.dimension]=n:e.style.width=e.style.height=n}e.min&&e._setSize("min",e.min),e.max&&e._setSize("max",e.max),e._updateNearSplitterBars(),e.checkLicense(),super.render()}removeChild(e){const t=this;if(e){if(!t.isCompleted||e instanceof HTMLElement&&e.classList.contains("smart-resize-trigger-container")){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.appendChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}t.$.content.removeChild(e)}else t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"removeChild",node:"node"}))}_expand(){const e=this;if(e._neighbourItem&&e._neighbourItem.parentElement)return void e.expand();const t=e.closest("smart-splitter");t&&(delete e._neighbourItem,e.collapsed=!1,t.$.fireEvent("expand",{itemIndex:t._items.indexOf(e)}),e.style[t._measurements.minDimension]=e.min?e._sizeLimits[t._measurements.minDimension]+"px":"",e.style[t._measurements.dimension]=e._sizeBeforeCollapse+"px",t._items.length<2||e.previousElementSibling instanceof Smart.SplitterBar&&(e.previousElementSibling.itemCollapsed=!1,e.previousElementSibling.showNearButton=t._items[t._items.indexOf(e)-1].collapsible))}_mouseEventsHandler(e){const t=this.closest("smart-splitter")||this.getRootNode().host;(t&&!t.disabled||Smart.Utilities.Core.isMobile)&&("mouseenter"===e.type?this.setAttribute("hover",""):this.removeAttribute("hover"))}_propertyValidator(e,t){return"number"!=typeof t&&"string"!=typeof t?e:t}_setSize(e,t,i){const s=this;if(s.isCompleted&&s.locked)return;const n=s.closest("smart-splitter");if(!n)return;if(!n.isCompleted)return void n.whenReady((()=>s._setSize(e,t)));const a="string"==typeof t&&t.indexOf("%")>-1,r=function(){const e=n.bars;let t=0;for(let i=0;i<e.length;i++)t+=e[i][n._measurements.size];return n.$.container[n._measurements.size]-t}(),o=e=>100*e/r;switch(t=isNaN(parseFloat(t))?"":parseFloat(t),s._sizeLimits||(s._sizeLimits={}),e){case"size":{const e=s[n._measurements.size];"auto"!==arguments[1]&&arguments[1]?a?(s.style[n._measurements.dimension]=t+"%",s._sizeBeforeCollapse=t*r/100):s.style[n._measurements.dimension]=(s._sizeBeforeCollapse=t||0)+"px":(s.style[n._measurements.dimension]=arguments[1],s._sizeBeforeCollapse=s[n._measurements.size]),s._validateSize();const i=e-s._sizeBeforeCollapse;if(s._originalSize&&(s._originalSize=a?t+"%":s._sizeBeforeCollapse),n.hasAttribute("orientation-change"))break;const o=n._items[n._items.length-1];if(s===o){let e=n._items.find((e=>e!==s&&!e.collapsed&&!e.locked&&!e.size));if(!e)for(let t=Math.max(0,n._items.length-2);t>=0;t--)if(!n._items[t].collapsed&&!n._items[t].locked&&n._items[t]!==s){e=n._items[t];break}e&&(e.style[n._measurements.dimension]=(e._sizeBeforeCollapse=Math.max(0,e[n._measurements.size]+i))+"px")}break}case"min":if(t=a?t*r/100:t,s._sizeLimits.minWidth=s._sizeLimits.minHeight=t,s.style[n._measurements.minDimension]=s.collapsed||!t?"":a?o(t)+"%":t+"px",s.style["min"+n._measurements.restricredDimension]="",s._validateSize(),t||n._noNeighbourValidation||n._validateNeighbourSizeLimits(s),s.size)return void s._setSize("size",s.size,i);break;case"max":if(s._sizeLimits.maxWidth=s._sizeLimits.maxHeight=a?t*r/100:t,s.style[n._measurements.maxDimension]=t?a?o(t)+"%":t+"px":"",s.style["max"+n._measurements.restricredDimension]="",s._validateSize(),t||n._noNeighbourValidation||n._validateNeighbourSizeLimits(s),s.size)return void s._setSize("size",s.size,i)}i||n._noItemSizeValidation||n._validateItemSize(!0)}_validateSize(){const e=this,t=e.closest("smart-splitter");if(e.collapsed&&!t)return;const i=t._measurements,s=e._sizeBeforeCollapse?e._sizeBeforeCollapse:e.getBoundingClientRect()[i.dimension];function n(t){const n=t+"Dimension",a=e.style[i[n]],r=e._sizeLimits[i[n]];var o;("min"===t&&s<r||"max"===t&&s>r)&&(e.style[i.dimension]="string"==typeof(o=a)&&o.indexOf("%")>-1?a:r+"px",e._sizeBeforeCollapse=r)}e.min&&n("min"),e.max&&n("max")}_styleChangedEventHandler(e){const t=this;if(t.locked)return;if(t._sizeLimits.ignoreUpdate)return void delete t._sizeLimits.ignoreUpdate;if(t.collapsed)return;const i=t.closest("smart-splitter");let s;e.detail.styleProperties["min-width"]?(s=e.detail.styleProperties["min-width"][i&&"horizontal"===i.orientation?"oldValue":"value"],t._sizeLimits.minWidth=(parseFloat(s)||0)*(s&&s.indexOf("%")>-1?i[i._measurements.size]/100:1)):e.detail.styleProperties["max-width"]?(s=e.detail.styleProperties["max-width"][i&&"horizontal"===i.orientation?"oldValue":"value"],t._sizeLimits.maxWidth=(parseFloat(s)||0)*(s&&s.indexOf("%")>-1?i[i._measurements.size]/100:1)):e.detail.styleProperties["min-height"]?(s=e.detail.styleProperties["min-height"][i&&"horizontal"===i.orientation?"value":"oldValue"],t._sizeLimits.minHeight=(parseFloat(s)||0)*(s&&s.indexOf("%")>-1?i[i._measurements.size]/100:1)):e.detail.styleProperties["max-height"]&&(s=e.detail.styleProperties["max-height"][i&&"horizontal"===i.orientation?"value":"oldValue"],t._sizeLimits.maxHeight=(parseFloat(s)||0)*(s&&s.indexOf("%")>-1?i[i._measurements.size]/100:1))}_transitionEndHandler(){const e=this;(e.isCompleted||!e.$.hasClass("animate"))&&(e.$.removeClass("animate"),e._neighbourItem&&e._neighbourItem.$.hasClass("animate")&&e._neighbourItem.$.removeClass("animate"),(e.size+"").indexOf("%")>-1||e._neighbourItem&&(e._neighbourItem.size+"").indexOf("%")>-1)&&((e.shadowRoot&&e.getRootNode()?e.getRootNode().host:null)||e.closest("smart-splitter"))._validateItemSize()}_updateNearSplitterBars(){const e=this;e.previousElementSibling instanceof Smart.SplitterBar&&(e.previousElementSibling.showFarButton=e.collapsible),e.nextElementSibling instanceof Smart.SplitterBar&&(e.nextElementSibling.showNearButton=e.collapsible)}}),Smart("smart-splitter-bar",class extends Smart.BaseElement{static get properties(){return{showNearButton:{value:!1,type:"boolean"},showFarButton:{value:!1,type:"boolean"},itemCollapsed:{value:!1,type:"boolean"},locked:{value:!1,type:"boolean"}}}get enableShadowDOM(){return!1}template(){return'<div id="container" role="presentation">\n <div class="smart-splitter-far-collapse-button" id="farCollapseButton" role="button" aria-label="Collapse next">\n <span id="arrowNear" class="smart-arrow" aria-hidden="true"></span>\n </div>\n <div class="smart-splitter-resize-button" id="resizeButton" aria-hidden="true">\n <span></span>\n </div>\n <div class="smart-splitter-near-collapse-button" id="nearCollapseButton" role="button" aria-label="Collapse previous">\n <span id="arrowFar" class="smart-arrow" aria-hidden="true"></span>\n </div>\n </div>'}static get listeners(){return{mouseenter:"_mouseEventsHandler",mouseleave:"_mouseEventsHandler",mouseover:"_mouseEventsHandler",mouseout:"_mouseEventsHandler",focus:"_focusEventHandler",blur:"_focusEventHandler"}}propertyChangedHandler(e,t,i){const s=this;switch(e){case"unfocusable":s._setFocusable();break;default:super.propertyChangedHandler(e,t,i)}}ready(){super.ready();const e=this;e.setAttribute("role","separator"),e.setAttribute("aria-label","Resize"),e._setFocusable()}hide(){const e=this,t=e.closest("smart-splitter");if(e.$.addClass("smart-hidden"),t){const i=t.items;if(t.hasAnimation){let t;for(let s=0;s<i.length;s++)i[s].$.hasClass("animate")&&(t=!0,i[s].addEventListener("transitionend",(function(){e.closest("smart-splitter")._autoFitItems()}),{once:!0}));if(t)return}t._autoFitItems()}}show(){const e=this,t=e.closest("smart-splitter");if(e.$.removeClass("smart-hidden"),t){const i=t.items;if(t.hasAnimation){let t;for(let s=0;s<i.length;s++)i[s].$.hasClass("animate")&&(t=!0,i[s].addEventListener("transitionend",(function(){e.closest("smart-splitter")._validateItemSize()}),{once:!0}));if(t)return}t._validateItemSize()}}lock(){const e=this;e.locked=e.unfocusable=!0,e.showNearButton||e.showFarButton||e._setFocusable()}unlock(){const e=this;e.locked=e.unfocusable=!1,e._setFocusable()}_focusEventHandler(e){"focus"===e.type?this.setAttribute("focus",""):this.removeAttribute("focus")}_setFocusable(){const e=this;e.disabled||e.unfocusable?e.removeAttribute("tabindex"):e.tabIndex=e.tabIndex>0?e.tabIndex:0}_handleHoveredState(e,t){const i=this;switch(t){case"mouseenter":if(!e._getTargetItem(i,"previousElementSibling")||!("adjacent"===e.resizeMode?e._getTargetItem(i,"nextElementSibling"):e._getTargetItem(i,"previousElementSibling",!0)))return;i.setAttribute("hover","");break;case"mouseleave":i.removeAttribute("hover")}}_mouseEventsHandler(e){const t=this,i=t.closest("smart-splitter")||t.getRootNode().host;i&&i.disabled||Smart.Utilities.Core.isMobile||("mouseenter"!==e.type&&"mouseleave"!==e.type?e.target.closest(".smart-splitter-far-collapse-button")!==t.$.farCollapseButton?e.target.closest(".smart-splitter-near-collapse-button")!==t.$.nearCollapseButton?e.target.closest(".smart-splitter-resize-button")===t.$.resizeButton&&("mouseover"===e.type?t.$.resizeButton.setAttribute("hover",""):t.$.resizeButton.removeAttribute("hover")):"mouseover"===e.type?t.$.nearCollapseButton.setAttribute("hover",""):t.$.nearCollapseButton.removeAttribute("hover"):"mouseover"===e.type?t.$.farCollapseButton.setAttribute("hover",""):t.$.farCollapseButton.removeAttribute("hover"):t._handleHoveredState(i,e.type))}}),Smart("smart-splitter",class extends Smart.ContentElement{static get properties(){return{autoFitMode:{allowedValues:["end","proportional","overflow"],value:"proportional",type:"string"},dataSource:{value:null,type:"object?",reflectToAttribute:!1},orientation:{allowedValues:["horizontal","vertical"],value:"vertical",type:"string"},keepProportionsOnResize:{value:!1,type:"boolean"},resizeMode:{allowedValues:["none","adjacent","end","proportional"],value:"adjacent",type:"string"},resizeStep:{value:5,type:"number"},liveResize:{value:!1,type:"boolean"},messages:{extend:!0,value:{en:{invalidIndex:'{{elementType}}: "{{method}}" method accepts an index of type number.',indexOutOfBound:'{{elementType}}: Out of bound index/indexes in "{{method}}" method.',invalidNode:'{{elementType}}: "{{method}}" method accepts an object or an array of objects as it\'s second parameter.',invalidSettings:'{{elementType}}: "{{method}}" method accepts a string or an object as it\'s second parameter.',invalidType:'{{elementType}}: "{{propertyName}}" must be of type string or number.'}},type:"object"}}}static get listeners(){return{focus:"_focusHandler",blur:"_focusHandler",down:"_downHandler",move:"_moveHandler","document.dragstart":"_dragStartHandler","document.move":"_documentMoveHandler","document.up":"_documentUpHandler",keydown:"_keyDownHandler",resize:"_resizeEventHandler"}}get enableShadowDOM(){const e=this,t=Smart.EnableShadowDOM;return e._isInShadowDOM?!e._isInShadowDOM:e.isCompleted?null!==e.shadowRoot:t}static get styleUrls(){return["smart.button.css","smart.splitter.css"]}template(){return'<div id="container" role="presentation">\n <content></content>\n </div>'}propertyChangedHandler(e,t,i){const s=this;switch(e){case"autoFitMode":s._validateItemSize();break;case"dataSource":s._createLayout();break;case"resizeMode":delete s._dragDetails;break;case"orientation":s.bars.forEach((e=>e.setAttribute("aria-orientation",i))),s._setMeasurements(),s.setAttribute("orientation-change","");for(let e=0;e<s._items.length;e++){const t=s._items[e];t.collapsed?(t.style[s._measurements.dimension]="",t.style[s._measurements.restricredDimension.toLowerCase()]="100%"):(t.size?(t.style[s._measurements.dimension]="",t._setSize("size",t.size,!0)):t.style[s._measurements.dimension]=t["offset"+s._measurements.restricredDimension]+"px",t.style[s._measurements.restricredDimension.toLowerCase()]="100%",t._setSize("min",t.min,!0),t._setSize("max",t.max,!0))}s._validateItemSize(),s.removeAttribute("orientation-change");break;case"unfocusable":s._setFocusable();break;default:super.propertyChangedHandler(e,t,i)}}appendChild(e){const t=this;if(!t.isCompleted||e instanceof HTMLElement&&e.classList.contains("smart-resize-trigger-container")){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.appendChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}e&&e instanceof Smart.SplitterItem?t.insertBefore(e,null):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"appendChild",node:"node"}))}attached(){super.attached();const e=this;e.isRendered&&e._validateItemSize()}collapse(e,t){const i=this;if("number"==typeof e&&(e=i._items[e]),!e)return;const s=i.closest("smart-splitter")||(i.getRootNode()&&i.getRootNode().host?i.getRootNode().host.closest("smart-splitter"):void 0);e instanceof Smart.SplitterItem&&s===i||"number"==typeof e&&i._items[e]?e.collapse(t):i.error(i.localize("invalidIndex",{elementType:i.nodeName.toLowerCase(),method:"collapse"}))}expand(e){const t=this;if("number"==typeof e&&(e=t._items[e]),!e)return;const i=t.closest("smart-splitter")||(t.getRootNode()&&t.getRootNode().host?t.getRootNode().host.closest("smart-splitter"):void 0);e instanceof Smart.SplitterItem&&i===t||"number"==typeof e&&t._items[e]?e.expand():t.error(t.localize("invalidIndex",{elementType:t.nodeName.toLowerCase(),method:"expand"}))}hideBar(e){const t=this;"number"==typeof e&&(e=t.bars[e]),e instanceof Smart.SplitterBar?e instanceof Smart.SplitterBar&&(t.enableShadowDOM?e.getRootNode().host:e.closest("smart-splitter"))===t&&e.hide():t.error(t.localize("indexOutOfBound",{elementType:t.nodeName.toLowerCase(),method:"hideBar"}))}get items(){if(!this.isReady)return[];const e=this.$.container.children;let t=[];for(let i=0;i<e.length;i++)(e[i]instanceof Smart.SplitterItem||"smart-splitter-item"===e[i].tagName.toLowerCase())&&t.push(e[i]);return t}insert(e,t){const i=this;if("string"==typeof t&&(t={content:t}),!t||"object"!=typeof t)return void i.error(i.localize("invalidSettings",{elementType:i.nodeName.toLowerCase(),method:"insert"}));if("number"!=typeof e)return void i.error(i.localize("invalidIndex",{elementType:i.nodeName.toLowerCase(),method:"insert"}));const s=t instanceof Smart.SplitterItem?t:i._createItem(t);if(i.contains(s)){if(i._items.indexOf(s)===e)return;i.removeChild(s)}e>=i._items.length||0===i._items.length?i.appendChild(s):i.insertBefore(s,i._items[e])}insertBefore(e,t){const i=this;function s(){const s=function(){let t=e.previousElementSibling;for(;t;){if(t instanceof Smart.SplitterItem)return t;t=t.previousElementSibling}}(),a=i._items[0];if("overflow"!==i.autoFitMode&&1===i._items.length){const e=a.locked;a.locked=!1,a._setSize("size",a.size||"",!0),a.locked=e}i._resizeHostItemOnInsert(s,e,n),i._items&&i._items.splice(t?i._items.indexOf(t):i._items.length,0,e),s&&(s.max&&s._setSize("max",s.max,!0),s.min&&s._setSize("min",s.min,!0)),i._validateItemSize()}if(!i.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.insertBefore.apply(i,e.concat(Array.prototype.slice.call(arguments)))}if(!(e&&e instanceof Smart.SplitterItem))return void i.error(i.localize("invalidNode",{elementType:i.nodeName.toLowerCase(),method:"insertBefore",node:"newNode/referenceNode"}));if(t&&!(t instanceof Smart.SplitterItem))return void i.error(i.localize("invalidNode",{elementType:i.nodeName.toLowerCase(),method:"insertBefore",node:"newNode/referenceNode"}));if(e.style[i._measurements.restricredDimension.toLowerCase()]="100%",e.size){const t="string"==typeof e.size&&e.size.indexOf("%")>-1?"%":"px";e.style[i._measurements.dimension]="auto"===e.size?e.size:isNaN(parseFloat(e.size))?"":parseFloat(e.size)+t,"overflow"!==i.autoFitMode&&1===i._items.length&&(i._items[0].size="")}else e.style[i._measurements.dimension]="";if(e._sizeBeforeCollapse)if(e.size){const t="string"==typeof e.size&&e.size.indexOf("%")>-1?"%":"px";e.style[i._measurements.dimension]="auto"===e.size?e.size:isNaN(parseFloat(e.size))?0:parseFloat(e.size)+t,e._sizeBeforeCollapse=e[i._measurements.size]}else delete e._sizeBeforeCollapse;e.style["max"+i._measurements.restricredDimension]="none",e.style[i._measurements.maxDimension]=e._sizeLimits&&e.max?e._sizeLimits[i._measurements.maxDimension]+"px":"",e.collapsed?(e.style.minWidth=e.style.minHeight="",e.style[i._measurements.minDimension]=e.style[i._measurements.dimension]="0"):e.style[i._measurements.minDimension]=e._sizeLimits&&e.min?e._sizeLimits[i._measurements.minDimension]+"px":"";for(let e=0;e<i._items.length;e++)i._items[e]._sizeBeforeCollapse||(i._items[e]._sizeBeforeCollapse=i._items[e][i._measurements.size]);let n;i.$.container.insertBefore(e,t||null);const a=i.bars;e.previousElementSibling instanceof Smart.SplitterItem?(n=i._createBar(e,e.previousElementSibling),i.$.container.insertBefore(n,e)):e.nextElementSibling instanceof Smart.SplitterItem&&(n=i._createBar(e,e.nextElementSibling),i.$.container.insertBefore(n,e.nextElementSibling)),n&&a.length>0&&(n.style[i._measurements.restricredDimension.toLowerCase()]=a[0].style[i._measurements.restricredDimension.toLowerCase()]),e.isCompleted?s():(e.__onCompleted=e._onCompleted,e._onCompleted=function(){e.__onCompleted&&(e.__onCompleted(),delete e.__onCompleted),s()})}lockItem(e){const t=this;e instanceof Smart.SplitterItem?e.lock():"number"==typeof e&&t._items[e]?(e=t._items[e])&&e.lock():t.error(t.localize("invalidIndex",{elementType:t.nodeName.toLowerCase(),method:"lockItem"}))}lockBar(e){const t=this;e instanceof Smart.SplitterBar?e.lock():"number"==typeof e?(e=t.bars[e])&&e.lock():t.error(t.localize("invalidIndex",{elementType:t.nodeName.toLowerCase(),method:"lockBar"}))}get hasStyleObserver(){return"resize"}ready(){super.ready()}render(){const e=this;e.setAttribute("role","group"),e._isInitializing=!0,e._createLayout(),delete e._isInitializing,e._setFocusable(),super.render()}refresh(){this._resizeEventHandler()}removeAt(e){const t=this;e instanceof Smart.SplitterItem&&e.closest("smart-splitter")===t?t.removeChild(e):"number"==typeof e?e>t._items.length||e<0?t.error(t.localize("indexOutOfBound",{elementType:t.nodeName.toLowerCase(),method:"remove"})):t.removeChild(t._items[e]):t.error(t.localize("invalidIndex",{elementType:t.nodeName.toLowerCase(),method:"remove"}))}removeAll(){this._items=[],this.$.container.innerHTML=""}removeChild(e){const t=this;function i(e,i,s){let n=e,a=t._items[n];for(;a&&a.collapsed;)a=t._items[n+=s];return a}if(!t.isCompleted||e instanceof HTMLElement&&e.classList.contains("smart-resize-trigger-container")){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.removeChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}if(!(e&&e instanceof Smart.SplitterItem))return void t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"removeChild",node:"node"}));if(!t._items)return;let s=t._items.indexOf(e);e.collapsed?t.$.container.removeChild(t._items.indexOf(e._neighbourItem)>s?e.nextElementSibling:e.previousElementSibling):e.previousElementSibling instanceof Smart.SplitterBar?t.$.container.removeChild(e.previousElementSibling):e.nextElementSibling instanceof Smart.SplitterBar&&t.$.container.removeChild(e.nextElementSibling),t._items.splice(s,1),s=Math.max(0,s-1);let n=0;const a=t._items.filter((e=>!e.collapsed&&!e.locked)),r=e._sizeBeforeCollapse||e[t._measurements.size];if(a.map((e=>n+=(e.style[t._measurements.dimension]?e._sizeBeforeCollapse:0)||e[t._measurements.size])),t.$.content.removeChild(e),1===t._items.length&&t._items[0].collapsed||t._items.length>0&&t._items.map((e=>e.collapsed)).indexOf(!1)<0){const e=t._items[t._items.length-1];let i=e.context;e.context=e,e._expand(),e.context=i}for(let n=0;n<t._items.length;n++)if(t._items[n].collapsed&&t._items[n]._neighbourItem===e){let e,a;t._items[n]._neighbourItem=i(s,t._items[n],1),t._items[n]._neighbourItem?(e=t._items[n].nextElementSibling,e&&(a=e.context,e.context=e,e.itemCollapsed=!0,e.showNearButton=!(e.showFarButton=!1),e.context=a)):(t._items[n]._neighbourItem=i(s,t._items[n],-1),e=t._items[n].previousElementSibling,e&&(a=e.context,e.context=e,e.itemCollapsed=!0,e.showFarButton=!(e.showNearButton=!1),e.context=a))}if("proportional"===t.autoFitMode){let e,i,s;for(let o=0;o<a.length;o++)e=a[o]._sizeBeforeCollapse||a[o][t._measurements.size],i=e+r*(e/n),s=a[o]._sizeLimits[t._measurements.minDimension]||0,a[o].style[t._measurements.dimension]=(a[o]._sizeBeforeCollapse=Math.max(0,i))+"px",s>e&&(a[o][t._measurements.minDimension]=i+"px")}t._autoFitItems()}showBar(e){const t=this;e instanceof Smart.SplitterBar?e.show():"number"==typeof e?(e=t.bars[e])instanceof Smart.SplitterBar?e.show():t.error(t.localize("indexOutOfBound",{elementType:t.nodeName.toLowerCase(),method:"showBar"})):t.error(t.localize("invalidIndex",{elementType:t.nodeName.toLowerCase(),method:"showBar"}))}get bars(){if(!this.isReady)return[];const e=this.$.container.children;let t=[];for(let i=0;i<e.length;i++)(e[i]instanceof Smart.SplitterBar||"smart-splitter-bar"===e[i].tagName.toLowerCase())&&t.push(e[i]);return t}unlockItem(e){const t=this;e instanceof Smart.SplitterItem?e.unlock():"number"==typeof e&&t._items[e]?(e=t._items[e])&&e.unlock():t.error(t.localize("invalidIndex",{elementType:t.nodeName.toLowerCase(),method:"unlockItem"}))}unlockBar(e){const t=this;e instanceof Smart.SplitterBar?e.unlock():"number"==typeof e?(e=t.bars[e])&&e.unlock():t.error(t.localize("invalidIndex",{elementType:t.nodeName.toLowerCase(),method:"unlockBar"}))}update(e,t){const i=this;if("number"!=typeof e||(e=i._items[e])){if(e instanceof Smart.SplitterItem&&t&&(i.enableShadowDOM?e.getRootNode().host:i.closest("smart-splitter"))===i)for(let i in t)void 0!==e[i]&&(e[i]=t[i])}else i.error(i.localize("invalidIndex",{elementType:i.nodeName.toLowerCase(),method:"update"}))}_autoFitItems(){const e=this,t=e._items.length;if(0===t||"overflow"===e.autoFitMode)return;let i,s=[],n=[],a=[];for(let r=t-1;r>=0;r--)e._items[r].collapsed?n.push(e._items[r]):e._items[r].locked?s.push(e._items[r]):i?e._items[r].size||a.push(e._items[r]):i=e._items[r];i&&i.size&&a.length>0&&(i=a.filter((t=>!t.max&&!t._sizeLimits[e._measurements.maxDimension]))[0]||i),n.length===t&&(i=n[0],i.expand(),i.unlock()),e._autoFitLastItem(i,n,s)}_autoFitLastItem(e,t,i){const s=this,n=s._items.length;let a;if(1===n&&s._items[0].locked&&(a=s._items[0],a.locked=!1),i.length===n&&i[0].unlock(),e||(e=i[0]).unlock(),1===s._items.length)e._setSize("size","100%",!0),delete e._originalSize;else{const t="offset"+("width"===s._measurements.dimension?"Width":"Height");let i=0,n=0;s._items.map((e=>i+=e.collapsed?0:e.style[s._measurements.dimension]&&e.style[s._measurements.dimension].indexOf("%")<-1&&e._sizeBeforeCollapse?e._sizeBeforeCollapse:e[t])),s.bars.map((e=>n+=e[s._measurements.size]));const a=i+n,r=s.$.container[t];if(a!==r){let i;i=e.style[s._measurements.dimension].indexOf("%")<-1&&e._sizeBeforeCollapse?e._sizeBeforeCollapse:e[t];let n=Math.abs(r-a),o=a<r?1:-1;const l=Math.max(0,i+o*n);e.style[s._measurements.dimension]=(e._sizeBeforeCollapse=l)+"px",delete e._originalSize,s._validateItemLimits(e,l)}}a&&(a.locked=!0)}_validateItemLimits(e,t){const i=this,s=i.$.container.getBoundingClientRect()[i._measurements.dimension];let n,a,r;r=e._min||e.min,r&&(n="string"==typeof r&&r.indexOf("%")>-1,a=n?parseFloat(r)*s/100:parseFloat(r),a>t?(e.style[i._measurements.minDimension]=n?100*t/s+"%":t+"px",e._sizeLimits[i._measurements.minDimension]=t,e._min=r,e.set("min",e.style[i._measurements.minDimension])):a<t&&(e.style[i._measurements.minDimension]=n?100*a/s+"%":a+"px",e._sizeLimits[i._measurements.minDimension]=a,e.set("min",r),delete e._min)),r=e._max||e.max,r&&(n="string"==typeof r&&r.indexOf("%")>-1,a=n?parseFloat(r)*s/100:parseFloat(r),a<t?(e.style[i._measurements.maxDimension]=n?100*t/s+"%":t+"px",e._sizeLimits[i._measurements.maxDimension]=t,e._max=r,e.set("max",e.style[i._measurements.maxDimension])):a>t&&(e.style[i._measurements.maxDimension]=n?100*a/s+"%":a+"px",e._sizeLimits[i._measurements.maxDimension]=a,e.set("max",r),delete e._max))}_autoFitItemsProportionally(e,t){const i=this,s=i._items.filter((e=>!e.collapsed&&!e.locked));let n,a,r,o=e[i._measurements.size],l=0;if(s.map((e=>l+=e._sizeBeforeCollapse||e[i._measurements.size])),t&&(l-=t[i._measurements.size]),e.size&&!e.isCompleted&&(e._setSize("size",o),o=e._sizeBeforeCollapse),o=Math.min(i.$.container[i._measurements.size]/2,e[i._measurements.size]),"string"==typeof e.size&&e.size.indexOf("%")>-1){const t=i.$.container.getBoundingClientRect()[i._measurements.dimension];e._sizeBeforeCollapse=o,e.style[i._measurements.dimension]=100*o/t+"%"}else e.style[i._measurements.dimension]=(e._sizeBeforeCollapse=o)+"px";for(let e=0;e<s.length;e++)n=s[e]._sizeBeforeCollapse||s[e][i._measurements.size],a=n/l*(l-o),r=s[e]._sizeLimits[i._measurements.minDimension]||0,s[e].style[i._measurements.dimension]=(s[e]._sizeBeforeCollapse=Math.max(r,a))+"px",delete s[e]._originalSize}_createLayout(){const e=this;if(e._items=[],"string"==typeof e.dataSource&&(e.dataSource=JSON.parse(e.dataSource)),null!==e.dataSource&&Array.isArray(e.dataSource)){e.$.container.innerHTML="";let t,i=document.createDocumentFragment();for(let s=0;s<e.dataSource.length;s++)t=e._createItem(e.dataSource[s]),i.appendChild(t);e._handleSplitterBars(i)}else e._handleSplitterBars(e.$.container)}_createBar(e,t){const i=this,s=document.createElement("smart-splitter-bar");return e.collapsed?(s.itemCollapsed=!0,i._items.indexOf(e)===i._items.length-1?s.showNearButton=!0:s.showFarButton=!0):(e.collapsible&&(s.showNearButton=!0),t&&t instanceof Smart.SplitterItem&&t.collapsible&&(t===e.nextElementSibling?s.showFarButton=!0:s.showNearButton=!0)),s.setAttribute("aria-controls",e.id+(t?" "+t.id:"")),s.setAttribute("aria-orientation",i.orientation),s}_createItem(e){const t=document.createElement("smart-splitter-item");return e.id&&(t.id=e.id),t.innerHTML=e.content||"",t.collapsible=e.collapsible||!1,t.collapsed=e.collapsed||!1,t.locked=e.locked||!1,e.max&&(t.max=e.max),e.min&&(t.min=e.min),e.size&&(t.size=e.size),t}_completeResizing(e){const t=this;if(t._dragDetails){if(t._splitBarDummy&&t._splitBarDummy.parentElement){if(!e)if(t._dragDetails.firstItem.style[t._measurements.dimension]=(t._dragDetails.firstItem._sizeBeforeCollapse=t._dragDetails.firstItem.currentSize+t._dragDetails.firstItem._paddings)+"px",delete t._dragDetails.firstItem._originalSize,"proportional"!==t.resizeMode)t._dragDetails.secondItem.style[t._measurements.dimension]=(t._dragDetails.secondItem._sizeBeforeCollapse=t._dragDetails.splitAreaSize-t._dragDetails.firstItem.currentSize+t._dragDetails.secondItem._paddings)+"px",delete t._dragDetails.secondItem._originalSize;else{const e=t._dragDetails.itemProportions.length;if(e>1)for(let i=0;i<e;i++)t._dragDetails.itemProportions[i].item.style[t._measurements.dimension]=(t._dragDetails.itemProportions[i].item._sizeBeforeCollapse=t._dragDetails.itemProportions[i].currentSize+t._dragDetails.itemProportions[i].item._paddings)+"px",delete t._dragDetails.itemProportions[i]._originalSize;else t._dragDetails.secondItem[0].style[t._measurements.dimension]=(t._dragDetails.secondItem[0]._sizeBeforeCollapse=Math.floor(t._dragDetails.splitAreaSize-t._dragDetails.firstItem.currentSize+t._dragDetails.firstItem._paddings))+"px",delete t._dragDetails.secondItem[0]._originalSize}t._validateBarsSize(),t.$.fireEvent("resizeEnd",{firstItem:{index:t._items.indexOf(t._dragDetails.firstItem),oldSize:t._dragDetails.firstItem.originalSize,newSize:t._dragDetails.firstItem[t._measurements.size]},secondItem:Array.isArray(t._dragDetails.secondItem)?{index:t._dragDetails.secondItem.map((e=>t._items.indexOf(e))),oldSize:t._dragDetails.secondItem.map((e=>e.originalSize)),newSize:t._dragDetails.secondItem.map((e=>e[t._measurements.size]))}:{index:t._items.indexOf(t._dragDetails.secondItem),oldSize:t._dragDetails.secondItem.originalSize,newSize:t._dragDetails.secondItem[t._measurements.size]}}),t._splitBarDummy.classList.remove("limit-reached"),t._splitBarDummy.parentElement.removeChild(t._splitBarDummy)}t.removeAttribute("dragged"),delete t._dragDetails,delete t._keyboardResizing}}_dragStartHandler(e){this._dragDetails&&e.preventDefault()}_downHandler(e){const t=this;if(e.stopPropagation(),t.disabled)return;if(t._keyboardResizing)return void t._completeResizing();const i=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;let s=i.closest("smart-splitter");s||(s=i.getRootNode()&&i.getRootNode().host?i.getRootNode().host.closest("smart-splitter"):void 0);const n=i&&i.closest?i.closest("smart-splitter-bar"):null;if(n&&s===t){if(i.closest(".smart-splitter-near-collapse-button")===n.$.nearCollapseButton)return void(t._collapseButtonPressed={splitBar:n,item:n.previousElementSibling,target:n.$.nearCollapseButton,farCollapse:!1});if(i.closest(".smart-splitter-far-collapse-button")===n.$.farCollapseButton)return void(t._collapseButtonPressed={splitBar:n,item:n.nextElementSibling,target:n.$.farCollapseButton,farCollapse:!0});n.itemCollapsed||n.locked||"none"===t.resizeMode||t._setDragDetails(n,e)}}_moveHandler(){this.hasAttribute("dragged")&&Smart.Utilities.Core.isMobile&&event.originalEvent.preventDefault()}_documentMoveHandler(e){const t=this;t._keyboardResizing||t.disabled||t._resize(e)}_documentUpHandler(e){const t=this;if(t.removeAttribute("dragging-not-allowed"),t.removeAttribute("show-locked-items"),t.disabled)return delete t._dragDetails,void delete t._collapseButtonPressed;const i=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;return t._completeResizing(),t._collapseButtonPressed&&i.closest("."+t._collapseButtonPressed.target.classList[0])===t._collapseButtonPressed.target?(t._collapseButtonPressed.item.collapsed?t.expand(t._collapseButtonPressed.item):t.collapse(t._collapseButtonPressed.item,t._collapseButtonPressed.farCollapse),void delete t._collapseButtonPressed):void 0}_ensureItemsReady(e,t){const i=this,s=function(){const i=function(t){for(let i=0;i<e.length;i++)e[i].context="node"===t?e[i]:document};i("node"),t(),i()};if(0===e.length)s();else{i._nodesReadyListeners=0;for(let t=0;t<e.length;t++){const n=e[t],a=function(){i._nodesReadyListeners--,0===i._nodesReadyListeners&&(s(),delete i._nodesReadyListeners)}.bind(i);n.isCompleted||(i._nodesReadyListeners++,n._onCompleted=a)}0===i._nodesReadyListeners&&s()}}_focusHandler(e){"focus"===e.type?this.setAttribute("focus",""):this.removeAttribute("focus")}_getTargetItem(e,t,i){const s=this;let n=i?s._items[s._items.length-1]:e[t];for(;n;){if(n instanceof Smart.SplitterItem&&!n.collapsed){if(!n.locked)return n;s._dragDetails&&!s._dragDetails.firstItem&&(s._dragDetails.lockedItemsSize+=n[s._measurements.size]+(n.previousElementSibling instanceof Smart.SplitterBar?n.previousElementSibling[s._measurements.size]:0))}n=n[t]}}_handleSplitterBars(e){const t=this;if(t._items.length<1&&(t._items=e.parentElement?t.items:Array.from(e.children)),t._measurements||t._setMeasurements(),t._items.length<2){const i=t.bars;for(let t=0;t<i.length;t++)e.removeChild(i[t])}let i;t._noItemSizeValidation=!0,e.parentElement||e===t.$.container||(t.$.container.appendChild(e),e=t.$.container),t._noItemSizeValidation=!1;for(let s=0;s<t._items.length;s++){if(i=t._items[s],0===s)for(;e.firstElementChild&&e.firstElementChild!==i;)e.removeChild(e.firstElementChild);i.style[t._measurements.restricredDimension.toLowerCase()]="100%",i.style["max"+t._measurements.restricredDimension]="none",i.size||(i.style[t._measurements.dimension]=i._sizeBeforeCollapse?i._sizeBeforeCollapse+"px":"");const n=i.min,a=i.max;if("string"==typeof n&&n.indexOf("%")>-1&&i._setSize("min",n),"string"==typeof a&&a.indexOf("%")>-1&&i._setSize("max",a),i.style[t._measurements.maxDimension]=i.max?i._sizeLimits[t._measurements.maxDimension]+"px":"",i.nextElementSibling){let e=i.nextElementSibling;if(e instanceof Smart.SplitterItem||"smart-splitter-item"===e.tagName.toLowerCase())i.parentNode.insertBefore(t._createBar(i,i.nextElementSibling),i.nextElementSibling);else for((e instanceof Smart.SplitterBar||"smart-splitter-bar"===e.tagName.toLowerCase())&&(e=e.nextElementSibling);e&&(!(e instanceof Smart.SplitterItem)||"smart-splitter-item"!==e.tagName.toLowerCase());)e.parentNode.removeChild(e),e=e.nextElementSibling}if(i.collapsed){const e=i.collapsible;i.style.minWidth=i.style.minHeight="",i.style[t._measurements.minDimension]="0",i._ignorePropertyValue=!0,i.collapsible=!0,i.collapse(),i.collapsible=e}else i.style[t._measurements.minDimension]=i._sizeLimits&&i.min?i._sizeLimits[t._measurements.minDimension]+"px":""}if(i)for(;e.lastElementChild!==i;)e.removeChild(e.lastElementChild);t._ensureItemsReady(t._items,t._validateItemSize.bind(t))}_keyDownHandler(e){const t=this;if(t.disabled)return;let i=t.enableShadowDOM?t.shadowRoot.activeElement:document.activeElement;if("w"===e.key&&e.altKey){e.preventDefault();const s=t.enableShadowDOM?t.shadowRoot.querySelector("smart-splitter-bar"):t.querySelector("smart-splitter-bar");return i!==s&&t._completeResizing(!0),void s.focus()}if(!e.ctrlKey&&t._splitBarDummy&&t._splitBarDummy.parentElement)i=t._splitBarDummy;else if(!(i instanceof Smart.SplitterBar))return;if((t.enableShadowDOM?i.getRootNode().host:i.closest("smart-splitter"))===t)switch(e.key){case"ArrowLeft":case"ArrowRight":case"ArrowUp":case"ArrowDown":{if(("ArrowUp"===e.key||"ArrowDown"===e.key)&&"vertical"===t.orientation)return;if(("ArrowLeft"===e.key||"ArrowRight"===e.key)&&"horizontal"===t.orientation)return;e.preventDefault();const s="ArrowLeft"===e.key||"ArrowUp"===e.key?-1:1;if(e.ctrlKey){let e,n;return t._completeResizing(!0),s<0?(n=i.previousElementSibling,e=i.nextElementSibling):(e=i.previousElementSibling,n=i.nextElementSibling),void(e.collapsed?e.expand():n.collapse(s>0))}if(i.locked)return;if("none"===t.resizeMode)return;let n;t._keyboardResizing=!0,t._dragDetails?n=t._dragDetails.position+s*t.resizeStep:(t._setDragDetails(i),n=i[t._measurements.offset]+s*t.resizeStep),t._resize({pageX:n,pageY:n});break}case"Enter":t._completeResizing();break;case"Escape":case"Tab":t._completeResizing(!0)}}_mouseEventsHandler(e){"mouseenter"!==e.type||Smart.Utilities.Core.isMobile?this.removeAttribute("hover"):this.setAttribute("hover","")}_recalcItemSize(e,t,i){const s=this;let n,a;if(i||(i=t),e>0)for(let r=0;r<t;r++)a=s._dragDetails.itemProportions[r].item._sizeLimits[s._measurements.minDimension],s._dragDetails.itemProportions[r].currentSize>a&&(n=s._dragDetails.itemProportions[r].currentSize-a<e/i?s._dragDetails.itemProportions[r].currentSize-a:e/i,e-=n,s._dragDetails.itemProportions[r].currentSize=Math.max(a,s._dragDetails.itemProportions[r].currentSize-n),delete s._dragDetails.itemProportions[r]._originalSize),i=Math.max(1,i-1);else{const a=s._dragDetails.splitAreaSize-s._dragDetails.firstItem.currentSize-(t>1?s._dragDetails.secondItemTotalMinSize-s._dragDetails.itemProportions[0].item._sizeLimits[s._measurements.minDimension]:0);let r;for(let o=0;o<t;o++)r=s._dragDetails.itemProportions[o].item._sizeLimits[s._measurements.maxDimension]?Math.min(s._dragDetails.itemProportions[o].item._sizeLimits[s._measurements.maxDimension],a):a,s._dragDetails.itemProportions[o].currentSize<r&&(n=s._dragDetails.itemProportions[o].currentSize-e/i>r?-1*(r-s._dragDetails.itemProportions[o].currentSize):e/i,e-=n,s._dragDetails.itemProportions[o].currentSize=Math.min(r,s._dragDetails.itemProportions[o].currentSize-n),delete s._dragDetails.itemProportions[o]._originalSize),i=Math.max(1,i-1)}Math.abs(e)>.1&&s._recalcItemSize(e,t,i)}_resize(e){const t=this;if(!t._dragDetails)return;let i,s=e[t._measurements.pagePosition]-t._dragDetails.position;const n=Math.sign(s),a=t._dragDetails.firstItem._sizeLimits[t._measurements.minDimension],r=t._dragDetails.firstItem._sizeLimits[t._measurements.maxDimension];let o,l;if(t.hasAttribute("dragged")||t.$.fireEvent("resizeStart",{firstItem:{index:t._items.indexOf(t._dragDetails.firstItem),size:t._dragDetails.firstItem[t._measurements.size]},secondItem:Array.isArray(t._dragDetails.secondItem)?{index:t._dragDetails.secondItem.map((e=>t._items.indexOf(e))),size:t._dragDetails.secondItem.map((e=>e[t._measurements.size]))}:{index:t._items.indexOf(t._dragDetails.secondItem),size:t._dragDetails.secondItem[t._measurements.size]}}),t.setAttribute("dragged",""),Math.abs(s)<t.resizeStep)return;let m=Math.max(t.resizeStep,Math.floor(Math.abs(s)/t.resizeStep)*t.resizeStep);const d=s-n*m;switch(t.resizeMode){case"adjacent":case"end":for(n>0?(o=t._dragDetails.splitAreaSize-t._dragDetails.firstItem.currentSize,l=()=>o-t._dragDetails.secondItemTotalMinSize>=m||r&&t._dragDetails.firstItem.currentSize+t.resizeStep<=r,i=()=>r&&t._dragDetails.firstItem.currentSize===r||o-t.resizeStep<=t._dragDetails.secondItemTotalMinSize):(o=t._dragDetails.firstItem.currentSize,l=()=>o-a>=m||t._dragDetails.secondItemTotalMaxSize&&t._dragDetails.splitAreaSize-t._dragDetails.firstItem.currentSize+t.resizeStep<=t._dragDetails.secondItemTotalMaxSize,i=()=>t._dragDetails.secondItemTotalMaxSize&&t._dragDetails.splitAreaSize-t._dragDetails.firstItem.currentSize===t._dragDetails.secondItemTotalMaxSize||o-t.resizeStep<=a),s=0;m>0;)l()&&(s+=n*t.resizeStep),m-=t.resizeStep;t._resizeItem(e,s,d);break;case"proportional":{const s=t._dragDetails.splitAreaSize-t._dragDetails.firstItem.currentSize;let _,p;for(n>0?(o=Math.abs(s-t._dragDetails.secondItemTotalMinSize),l=()=>o>=m||r&&t._dragDetails.firstItem.currentSize+t.resizeStep<=r,i=()=>r&&t._dragDetails.firstItem.currentSize===r||t._dragDetails.splitAreaSize-t._dragDetails.firstItem.currentSize-t.resizeStep<t._dragDetails.secondItemTotalMinSize):(o=t._dragDetails.firstItem.currentSize,l=()=>o-a>=m&&(!t._dragDetails.secondItemTotalMaxSize||t._dragDetails.splitAreaSize-t._dragDetails.firstItem.currentSize+t.resizeStep<=t._dragDetails.secondItemTotalMaxSize),i=()=>t._dragDetails.secondItemTotalMaxSize&&t._dragDetails.splitAreaSize+t.resizeStep-t._dragDetails.firstItem.currentSize>=t._dragDetails.secondItemTotalMaxSize||t._dragDetails.firstItem.currentSize-t.resizeStep<a);m>0;)l()&&(p=!0,_=Math.min(r?Math.min(r,t._dragDetails.splitAreaSize-t._dragDetails.secondItemTotalMinSize):t._dragDetails.splitAreaSize-t._dragDetails.secondItemTotalMinSize,Math.max(a,t._dragDetails.firstItem.currentSize+n*t.resizeStep)),t._dragDetails.firstItem.currentSize=t._dragDetails.firstItem._sizeBeforeCollapse=Math.floor(_)),m-=t.resizeStep;if(!p)break;const c=t._dragDetails.splitAreaSize-t._dragDetails.firstItem.currentSize,u=t._dragDetails.itemProportions.length;if(t._recalcItemSize(s-c,u),t.liveResize)if(t._dragDetails.firstItem.style[t._measurements.dimension]=t._dragDetails.firstItem.currentSize+t._dragDetails.firstItem._paddings+"px",u>1)for(let e=0;e<u;e++)t._dragDetails.itemProportions[e].item.style[t._measurements.dimension]=t._dragDetails.itemProportions[e].item._sizeBeforeCollapse=t._dragDetails.itemProportions[e].currentSize+t._dragDetails.itemProportions[e].item._paddings+"px";else t._dragDetails.secondItem[0].style[t._measurements.dimension]=(t._dragDetails.secondItem[0]._sizeBeforeCollapse=Math.floor(c+t._dragDetails.itemProportions[0].item._paddings))+"px";else t._splitBarDummy.style[t._measurements.position]=t._dragDetails.firstItem[t._measurements.offset]+t._dragDetails.firstItem.currentSize+t._dragDetails.lockedItemsSize+t._dragDetails.firstItem._paddings+"px";const g=t._dragDetails.firstItem.getBoundingClientRect()["vertical"===t.orientation?"left":"top"]+t._dragDetails.splitBarOffset,f=r&&t._dragDetails.splitAreaSize-r>t._dragDetails.secondItemTotalMinSize?r:t._dragDetails.splitAreaSize-t._dragDetails.secondItemTotalMinSize;t._dragDetails.position=Math.max(g+(t._dragDetails.secondItemTotalMaxSize?Math.max(t._dragDetails.splitAreaSize-t._dragDetails.secondItemTotalMaxSize,a):a)+t._dragDetails.lockedItemsSize+t._dragDetails.firstItem._paddings,Math.min(g+f+t._dragDetails.lockedItemsSize+t._dragDetails.firstItem._paddings,e[t._measurements.pagePosition]-d));break}}t.liveResize||(i()?t._splitBarDummy.classList.add("limit-reached"):t._splitBarDummy.classList.remove("limit-reached")),t._validateBarsSize()}_resizeEventHandler(e){const t=this;if(t._items){if(e&&(t.enableShadowDOM?e.composedPath()[0]:e.target)!==t)return;t._resizeEventFired=!0,t._validateItemSize(),t._resizeEventFired=!1}}_resizeHostItemOnInsert(e,t,i){const s=this;if("proportional"===s.autoFitMode)return void s._autoFitItemsProportionally(t,i);if(!e||e.locked||"overflow"===s.autoFitMode)return;t.size&&(e=function(){let e=t.previousElementSibling;for(;e;){if(e instanceof Smart.SplitterItem&&!e.size)return e;e=e.previousElementSibling}}()||e);const n=e[s._measurements.size]-t[s._measurements.size]-i[s._measurements.size],a=Math.max(e._sizeLimits[s._measurements.minDimension],n);e.style[s._measurements.maxDimension]=e.max?isNaN(parseFloat(e.max))?"":parseFloat(e.max)+typeof e.max=="string"&&e.max.indexOf("%")>-1?"%":"px":"";const r=e.style[s._measurements.maxDimension]?parseFloat(e.style[s._measurements.maxDimension]):0;t.size?e.style[s._measurements.dimension]=(e._sizeBeforeCollapse=r?Math.min(r,a):a)+"px":(e.style[s._measurements.dimension]=e.size?"auto"===e.size?e.size:isNaN(parseFloat(e.size))?0:parseFloat(e.size)+("string"==typeof e.size&&e.size.indexOf("%")>-1?"%":"px"):"",e._sizeBeforeCollapse=e[s._measurements.size])}_resizeItem(e,t,i){const s=this;let n=Math.max(s._dragDetails.firstItem._sizeLimits[s._measurements.minDimension]||0,Math.min(s._dragDetails.splitAreaSize-s._dragDetails.secondItem._sizeLimits[s._measurements.minDimension],s._dragDetails.firstItem._sizeLimits[s._measurements.maxDimension]?Math.min(s._dragDetails.firstItem._sizeLimits[s._measurements.maxDimension],s._dragDetails.firstItem.currentSize+t):s._dragDetails.firstItem.currentSize+t)),a=s._dragDetails.firstItem._sizeLimits[s._measurements.minDimension]||0;s._dragDetails.secondItem._sizeLimits[s._measurements.maxDimension]&&s._dragDetails.splitAreaSize-n>s._dragDetails.secondItem._sizeLimits[s._measurements.maxDimension]&&(a=n=s._dragDetails.splitAreaSize-(s._dragDetails.secondItem._sizeLimits[s._measurements.maxDimension]||0)),s._dragDetails.firstItem.currentSize=n,s.liveResize?(s._dragDetails.firstItem.style[s._measurements.dimension]=(s._dragDetails.firstItem._sizeBeforeCollapse=n+s._dragDetails.firstItem._paddings)+"px",s._dragDetails.secondItem.style[s._measurements.dimension]=(s._dragDetails.secondItem._sizeBeforeCollapse=s._dragDetails.splitAreaSize-n+s._dragDetails.firstItem._paddings)+"px",delete s._dragDetails.firstItem._originalSize,delete s._dragDetails._originalSize):s._splitBarDummy.style[s._measurements.position]=s._dragDetails.firstItem[s._measurements.offset]+n+s._dragDetails.lockedItemsSize+s._dragDetails.firstItem._paddings+"px";const r=s._dragDetails.firstItem.getBoundingClientRect()["vertical"===s.orientation?"left":"top"]+s._dragDetails.splitBarOffset;s._dragDetails.position=Math.max(r+a+s._dragDetails.firstItem._paddings,Math.min(r+s._dragDetails.splitAreaSize-(s._dragDetails.secondItem._sizeLimits[s._measurements.minDimension]||0)+s._dragDetails.lockedItemsSize+s._dragDetails.firstItem._paddings,e[s._measurements.pagePosition]-i)),s._dragDetails.firstItem._sizeLimits[s._measurements.maxDimension]&&(s._dragDetails.position=Math.min(r+s._dragDetails.firstItem._sizeLimits[s._measurements.maxDimension],s._dragDetails.position))}_setFocusable(){const e=this;e.disabled||e.unfocusable?e.removeAttribute("tabindex"):e.tabIndex=e.tabIndex>0?e.tabIndex:0}_setDragDetails(e,t){const i=this;if(i._dragDetails={},i._measurements||i._setMeasurements(),i._dragDetails.scrollAmount=e.parentElement[i._measurements.scroll],i._dragDetails.lockedItemsSize=0,i.setAttribute("show-locked-items",""),!(i._dragDetails.firstItem=i._getTargetItem(e,"previousElementSibling")))return delete i._dragDetails,void i.setAttribute("dragging-not-allowed","");i._dragDetails.firstItem.set("size",""),i._dragDetails.firstItem.currentSize=i._dragDetails.firstItem[i._measurements.size],i._dragDetails.firstItem.originalSize=i._dragDetails.firstItem.currentSize;let s,n=getComputedStyle(i._dragDetails.firstItem);if(i._dragDetails.firstItem._paddings=(parseFloat(n.getPropertyValue("padding-"+i._measurements.position))||0)+(parseFloat(n.getPropertyValue("padding-"+i._measurements.position2))||0),i._dragDetails.firstItem.currentSize-=i._dragDetails.firstItem._paddings,i._dragDetails.splitAreaSize=0,i._dragDetails.secondItemTotalMaxSize=0,i._dragDetails.secondItemTotalMinSize=0,"proportional"===i.resizeMode){if(i._setProportionalDetails())return}else if(i._setAdjacentOrEndDetails(e))return;t&&"object"==typeof t?s=e.getBoundingClientRect()[i._measurements.position]:(t={pageX:e[i._measurements.offset],pageY:e[i._measurements.offset]},s=e[i._measurements.offset]),i._dragDetails.position=t[i._measurements.pagePosition],i._dragDetails.splitBarOffset=i._dragDetails.position-s,i.liveResize||(i._splitBarDummy||(i._splitBarDummy=document.createElement("div"),i._splitBarDummy.classList.add("smart-splitter-bar-feedback"),i._splitBarDummy.setAttribute(i.orientation,"")),i._splitBarDummy.style.width=e.offsetWidth+"px",i._splitBarDummy.style.height=e.offsetHeight+"px",i._splitBarDummy.style.top=e.offsetTop+"px",i._splitBarDummy.style.left=e.offsetLeft+"px",i._splitBarDummy.setAttribute(i.orientation,""),e.parentElement.appendChild(i._splitBarDummy))}_setAdjacentOrEndDetails(e){const t=this;if(!(t._dragDetails.secondItem="adjacent"===t.resizeMode?t._getTargetItem(e,"nextElementSibling"):t._getTargetItem(e,"previousElementSibling",!0)))return delete t._dragDetails,t.setAttribute("dragging-not-allowed",""),!0;t._dragDetails.secondItem.set("size",""),t._dragDetails.secondItem.currentSize=t._dragDetails.secondItem[t._measurements.size],t._dragDetails.secondItem.originalSize=t._dragDetails.secondItem.currentSize;const i=getComputedStyle(t._dragDetails.secondItem);t._dragDetails.secondItem._paddings=(parseFloat(i.getPropertyValue("padding-"+t._measurements.position))||0)+(parseFloat(i.getPropertyValue("padding-"+t._measurements.position2))||0),t._dragDetails.secondItem.currentSize-=t._dragDetails.secondItem._paddings,t._dragDetails.splitAreaSize=t._dragDetails.firstItem.currentSize+t._dragDetails.secondItem.currentSize,t._dragDetails.secondItemTotalMaxSize=t._dragDetails.secondItem._sizeLimits[t._measurements.maxDimension],t._dragDetails.secondItemTotalMinSize=t._dragDetails.secondItem._sizeLimits[t._measurements.minDimension]}_setMeasurements(){const e=this;e._measurements={},"horizontal"===e.orientation?(e._measurements.dimension="height",e._measurements.minDimension="minHeight",e._measurements.maxDimension="maxHeight",e._measurements.restricredDimension="Width",e._measurements.size="offsetHeight",e._measurements.offset="offsetTop",e._measurements.position="top",e._measurements.position2="bottom",e._measurements.pagePosition="pageY",e._measurements.scroll="scrollTop"):(e._measurements.dimension="width",e._measurements.minDimension="minWidth",e._measurements.maxDimension="maxWidth",e._measurements.restricredDimension="Height",e._measurements.size="offsetWidth",e._measurements.offset="offsetLeft",e._measurements.position="left",e._measurements.position2="right",e._measurements.pagePosition="pageX",e._measurements.scroll="scrollLeft"),e._measurements.overflow=getComputedStyle(e).getPropertyValue("overflow")}_setProportionalDetails(){const e=this;if(e._dragDetails.secondItem=e._items.slice(e._items.indexOf(e._dragDetails.firstItem)+1).filter((e=>!e.collapsed&&!e.locked)),0===e._dragDetails.secondItem.length)return delete e._dragDetails,!0;let t;e._dragDetails.splitAreaSize+=e._dragDetails.firstItem.currentSize,e._dragDetails.itemProportions=[];for(let i=0;i<e._dragDetails.secondItem.length;i++){e._dragDetails.secondItem[i].set("size",""),e._dragDetails.secondItem[i].currentSize=e._dragDetails.secondItem[i][e._measurements.size],e._dragDetails.secondItem[i].originalSize=e._dragDetails.secondItem[i].currentSize;const s=getComputedStyle(e._dragDetails.secondItem[i]);e._dragDetails.secondItem[i]._paddings=(parseFloat(s.getPropertyValue("padding-"+e._measurements.position))||0)+(parseFloat(s.getPropertyValue("padding-"+e._measurements.position2))||0),e._dragDetails.secondItem[i].currentSize-=e._dragDetails.secondItem[i]._paddings,e._dragDetails.splitAreaSize+=e._dragDetails.secondItem[i].currentSize,e._dragDetails.itemProportions.push({item:e._dragDetails.secondItem[i],currentSize:e._dragDetails.secondItem[i].currentSize}),e._dragDetails.secondItem[i]._sizeLimits[e._measurements.maxDimension]||(t=!0),e._dragDetails.secondItemTotalMinSize+=e._dragDetails.secondItem[i]._sizeLimits[e._measurements.minDimension],e._dragDetails.secondItemTotalMaxSize+=e._dragDetails.secondItem[i]._sizeLimits[e._measurements.maxDimension]}t&&(e._dragDetails.secondItemTotalMaxSize=0)}_validateBarsSize(){const e=this;if("100%"!==(getComputedStyle(e).getPropertyValue("--smart-splitter-bar-fit-size")+"").trim())return void e.bars.forEach((t=>t.style[e._measurements.restricredDimension.toLowerCase()]=null));if(!e._dragDetails&&"vertical"===e.orientation&&e.resizeTrigger){const t=e.offsetHeight;if(e.resizeTrigger.style.display="none",e.offsetHeight===t)return e.resizeTrigger.style.display=null,void e.bars.forEach((t=>t.style[e._measurements.restricredDimension.toLowerCase()]=null));e.resizeTrigger.style.display=null}let t=e._items[0];const i="offset"+e._measurements.restricredDimension,s=e.bars;if(0!==s.length){for(let s=0;s<e._items.length;s++)e._items[s][i]>t[i]&&(t=e._items[s]);t&&t[i]!==s[0][i]&&s.forEach((s=>s.style[e._measurements.restricredDimension.toLowerCase()]=t[i]+"px"))}}_validateItemSize(e){const t=this;if("overflow"===t.autoFitMode)return void t._validateBarsSize();const i=t._items,s=t._measurements.dimension,n="offset"+("width"===s?"Width":"Height"),a=t.$.container[n],r=e=>"string"==typeof e&&e.indexOf("%")>-1;let o=0;for(let e=0;e<i.length;e++){const l=i[e];if(l.min&&r(l.min)&&(l._sizeLimits[t._measurements.minDimension]=parseFloat(l.min)*a/100),l.max&&r(l.max)&&(l._sizeLimits[t._measurements.maxDimension]=parseFloat(l.max)*a/100),!l.collapsed){const e=l.style[s];o+=e&&e.indexOf("%")<-1&&l._sizeBeforeCollapse?l._sizeBeforeCollapse:l[n]}}if(t.keepProportionsOnResize&&t._resizeEventFired)t._keepItemProportionsOnResize();else{if("horizontal"===t.orientation&&t.resizeTrigger){const e=t.offsetHeight;if(t.resizeTrigger.style.display="none",t.offsetHeight!==e)return void(t.resizeTrigger.style.display=null);t.resizeTrigger.style.display=null}let i=o+t.bars.reduce(((e,i)=>e+i[t._measurements.size]),0)-a;i>0?t._validateItemsSizeOverflowing(i,e):i<0&&t._validateItemsSizeUnderflowing(i,e)}if(t._autoFitItems(),t._validateBarsSize(),t._splitterSize=a,t.enableShadowDOM){const e=t.getRootNode().host;e&&e.enableShadowDOM&&e.isCompleted&&e._validateItemSize&&e._validateItemSize()}}_validateNeighbourSizeLimits(e){const t=this;function i(e){e&&(e.min&&e._setSize("min",e.min,!0),e.max&&e._setSize("max",e.max,!0))}if(!t._items||!t._items.length)return;t._noNeighbourValidation=!0;const s=t._items.indexOf(e);i(t._items[s-1]),i(t._items[s+1]),delete t._noNeighbourValidation}_keepItemProportionsOnResize(){const e=this;let t=0,i=[];for(let s=0;s<e._items.length;s++)e._items[s].collapsed||(i.push(e._items[s]),t+=e._items[s]._sizeBeforeCollapse||e._items[s][e._measurements.size]);if(e._splitterSize&&(t=e._splitterSize),1===e._items.length)return;const s=e.$.container.getBoundingClientRect()[e._measurements.dimension];for(let n=0;n<i.length;n++){const a=i[n],r=a.style[e._measurements.dimension],o=a.style[e._measurements.minDimension];if(r.indexOf("%")>-1||o.indexOf("%")>-1){e._validateItemLimits(a,a[e._measurements.size]/t*s);continue}const l=a._sizeBeforeCollapse||a[e._measurements.size],m=l/t*s;if(l!==m){if(a.style[e._measurements.dimension]=m+"px",s!==e.$.container.getBoundingClientRect()[e._measurements.dimension])return void(a.style[e._measurements.dimension]=l+"px");a.style[e._measurements.dimension]=(a._sizeBeforeCollapse=m)+"px",e._validateItemLimits(a,m)}}}_validateItemsSizeOverflowing(e,t){const i=this,s=i._items.length;let n,a,r,o,l=0,m=[],d="offset"+("width"===i._measurements.dimension?"Width":"Height"),_=i.$.container;for(let e=0;e<i._items.length;e++){const t=i._items[e];r=t.style[i._measurements.dimension],r||(r=window.getComputedStyle(i).getPropertyValue("--smart-splitter-item-size")||""),a=r.indexOf("%")>-1?r:t[i._measurements.size],r||t.size||0===t.size||delete t._originalSize;const s="auto"===a&&t.size&&isNaN(parseFloat(t.size))||"auto"===t.size;t._originalSize=t._originalSize&&!s?t._originalSize:a,m.push(t.locked)}m.indexOf(!1)<0&&(o=i._items[i._items.length-1],o.locked=!1);for(let t=s-1;t>=0;t--){const s=i._items[t];s.collapsed||s.locked||0===e||((s._originalSize+"").indexOf("%")>-1?(n=s.style[i._measurements.dimension]||s[i._measurements.size],"string"==typeof n&&n.indexOf("%")>-1&&(n=parseFloat(n)/100*_[d]),s.style[i._measurements.dimension]=s._originalSize,s._sizeBeforeCollapse=_[d]*parseFloat(s._originalSize)/100,e-=parseFloat(n)-s._sizeBeforeCollapse):(n=s[d],l=n-e,s.style[i._measurements.dimension]=(s._sizeBeforeCollapse=Math.max(s._sizeLimits?s._sizeLimits[i._measurements.minDimension]:0,l))+"px",e-=n-s._sizeBeforeCollapse))}if(e>0)for(let a=s-1;a>=0;a--){const s=i._items[a];if(s.collapsed||s.locked)continue;n=s[d],l=n-e;let r=s._sizeLimits[i._measurements.minDimension]||s.min;r&&(r=(r+"").indexOf("%")>-1?parseFloat(r)/100*s.parentElement[i._measurements.size]:parseFloat(r),r>l&&(s._sizeLimits.ignoreUpdate=!t,s.style[i._measurements.minDimension]=Math.max(0,l)+"px")),0===e&&s._originalSize&&(s._originalSize+"").indexOf("%")>-1||(s._sizeLimits.ignoreUpdate=!t,s.style[i._measurements.dimension]=(s._sizeBeforeCollapse=Math.max(0,l))+"px",e-=n-s._sizeBeforeCollapse)}o&&(o.locked=!0)}_validateItemsSizeUnderflowing(e,t){const i=this,s=i._items.length;let n,a,r=0;e=Math.abs(e),i._items.length>0&&i._items.map((e=>e.locked)).indexOf(!1)<0&&(a=i._items[i._items.length-1],a.locked=!1);for(let a=0;a<s;a++){const s=i._items[a];if(!(s.collapsed||s[i._measurements.size]>=(s._sizeLimits?s._sizeLimits[i._measurements.minDimension]:0))&&(n=s[i._measurements.size],r=s[i._measurements.size]+e,s[i._measurements.size]<s._sizeLimits[i._measurements.minDimension]&&(s._sizeLimits.ignoreUpdate=!t,s.style[i._measurements.minDimension]=(s._sizeBeforeCollapse=Math.max(0,Math.min(s._sizeLimits[i._measurements.minDimension],r)))+"px"),(e-=(s._sizeBeforeCollapse||s[i._measurements.size])-n)<=0))break}const o=i.$.container["offset"+("width"===i._measurements.dimension?"Width":"Height")];if(e>0)for(let t=0;t<s;t++){const s=i._items[t];let n;if(!s.collapsed&&!s.locked&&void 0!==s._originalSize){if((s._originalSize+"").indexOf("%")>-1){const t=parseFloat(s._originalSize)*o/100;r=Math.min(t,s[i._measurements.size]+e),n=r-s[i._measurements.size],s[i._measurements.minDimension]<s._sizeLimits[i._measurements.minDimension]&&(s.style[i._measurements.minDimension]=Math.min(s._sizeLimits[i._measurements.minDimension],r)+"px"),s.style[i._measurements.dimension]=t===r?s._originalSize:r+"px",s._sizeBeforeCollapse=Math.max(0,r),e-=n}else s[i._measurements.size]>=s._originalSize?(e+=s[i._measurements.size]-s._originalSize,s.style[i._measurements.dimension]=(s._sizeBeforeCollapse=s._originalSize)+"px"):(r=Math.min(s._originalSize,s[i._measurements.size]+e),n=r-s[i._measurements.size],s[i._measurements.minDimension]<s._sizeLimits[i._measurements.minDimension]&&(s.style[i._measurements.minDimension]=Math.min(s._sizeLimits[i._measurements.minDimension],r)+"px"),s.style[i._measurements.dimension]=(s._sizeBeforeCollapse=Math.max(0,Math.min(r,s._originalSize)))+"px",e-=n);if(e<=0)break}}a&&(a.locked=!0)}});