smart-webcomponents
Version:
Web Components & Custom Elements for Professional Web Applications
27 lines (16 loc) • 442 kB
JavaScript
/* Smart UI v22.0.10 (2025-02-10)
Copyright (c) 2011-2024 jQWidgets.
License: https://htmlelements.com/license/ */ //
(function(){ if (typeof document === 'undefined') { return; }
/* Smart UI v19.1.1 (2024-June)
Copyright (c) 2011-2024 jQWidgets.
License: https://htmlelements.com/license/ */
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ 2612:
/***/ (() => {
Smart("smart-button",class extends Smart.ContentElement{static get properties(){return{value:{type:"string"},name:{type:"string"},type:{value:"button",type:"string"},clickMode:{allowedValues:["hover","press","release","pressAndRelease"],type:"string",value:"release"}}}static get styleUrls(){return["smart.button.css"]}template(){return"<button class=\"smart-button smart-unselectable\" inner-h-t-m-l='[[innerHTML]]' id='button' type='[[type]]' name='[[name]]' value='[[value]]' disabled='[[disabled]]' role=\"presentation\"></button>"}refresh(){}static get listeners(){return{"button.down":"_downHandler","button.mouseenter":"_mouseEnterHandler","button.mouseleave":"_mouseLeaveHandler","button.touchend":"_touchEndHandler","button.click":"_clickHandler","button.up":"_upHandler",up:"_upHandler","button.focus":"_focusHandler","button.blur":"_blurHandler"}}focus(){const e=this;e.$.button?e.$.button.focus():HTMLElement.prototype.focus.call(e)}blur(){const e=this;e.$.button?e.$.button.blur():HTMLElement.prototype.blur.call(e)}_upHandler(e){const t=this;if(e.stopPropagation(),t.$.setAttributeValue("active",!1),t.dataset.target){const n=document.querySelector(t.dataset.target);let a=t.dataset.toggle,r=t.dataset.arguments;const i="smart-window".toLowerCase();if(n&&n.nodeName.toLowerCase()===i&&"modal"===a&&(a="openModal"),"tab"===a||"pill"===a||"list"===a){const e=this.closest(".nav, .list-group"),a='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',r=!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?e.children(".active"):e.querySelectorAll("li > .active");if(e){const n=e.querySelectorAll(a);for(let e=0;e<n.length;e++)n[e].classList.remove("primary");for(let e=0;e<r.length;e++)r[e].classList.remove("active");let i=t.parentNode;for(;i;){if("LI"===i.nodeName){i.classList.add("active");break}i=i.parentNode}t.classList.add("primary")}return n.parentNode.querySelectorAll(".active").forEach((e=>{e.classList.remove("active"),e.classList.add("smart-hidden")})),n.classList.add("active"),void n.classList.remove("smart-hidden")}a&&n&&!n[a]&&"collapse"===a&&(setTimeout((()=>{n.classList.contains("smart-hidden")?n.classList.remove("smart-hidden"):n.classList.add("smart-hidden")})),e.originalEvent.preventDefault()),a&&n&&!n[a]&&"dropdown"===a?(setTimeout((()=>{n.opened=!n.opened})),e.originalEvent.preventDefault()):a&&n&&n[a]&&(setTimeout((()=>{r?n[a](r):n[a]()}),50),e.originalEvent.preventDefault())}}_focusHandler(){this.$.setAttributeValue("focus",!0),this.$.fireEvent("focus")}_blurHandler(){this.$.setAttributeValue("focus",!1),this.$.fireEvent("blur")}_clickHandler(e){const t=this;("release"!==t.clickMode&&"pressAndRelease"!==t.clickMode||t.readonly)&&(e.preventDefault(),e.stopPropagation())}_downHandler(e){const t=this;if(!(t.disabled||(t.hasRippleAnimation&&Smart.Utilities.Animation.Ripple.animate(t,e.pageX,e.pageY),t.$.setAttributeValue("active",!0),"press"!==t.clickMode&&"pressAndRelease"!==t.clickMode||t.readonly))){if(t.hasAttribute("smart-blazor"))return void t.$.dispatchEvent(new Event("click"));const n="buttons"in e?e.buttons:e.which;t.$.fireEvent("click",{buttons:n,clientX:e.clientX,clientY:e.clientY,pageX:e.pageX,pageY:e.pageY,screenX:e.screenX,screenY:e.screenY})}}_mouseEnterHandler(e){const t=this;if(!t.readonly&&(t.$button.setAttributeValue("hover",!0),t.$.setAttributeValue("hover",!0),"hover"===t.clickMode)){const n="buttons"in e?e.buttons:e.which;if(t.hasAttribute("smart-blazor"))return void t.$.dispatchEvent(new Event("click"));t.$.fireEvent("click",{buttons:n,clientX:e.clientX,clientY:e.clientY,pageX:e.pageX,pageY:e.pageY,screenX:e.screenX,screenY:e.screenY})}}_touchEndHandler(){const e=this;setTimeout((function(){e.$button.setAttributeValue("hover",!1),e.$.setAttributeValue("hover",!1)}),300)}_mouseLeaveHandler(){this.$button.setAttributeValue("hover",!1),this.$.setAttributeValue("hover",!1)}propertyChangedHandler(e,t,n){super.propertyChangedHandler(e,t,n);const a=this;"disabled"===e?(a._setFocusable(),a.$button&&a.$button.setAttributeValue("hover",!1),a.$.setAttributeValue("hover",!1),a instanceof Smart.RepeatButton&&a._stopRepeat()):"unfocusable"===e&&a._setFocusable()}_setFocusable(){const e=this,t=e.$.button?e.$.button:e;if(e.disabled||e.unfocusable)return t.removeAttribute("tabindex"),void(t.tabIndex=-1);t.tabIndex=e.tabIndex>0?e.tabIndex:0}ready(){const e=this;super.ready(),e.setAttribute("role","button"),e._setFocusable(),e.enableShadowDOM&&e.$.hiddenInput&&e.appendChild(e.$.hiddenInput)}}),Smart("smart-repeat-button",class extends Smart.Button{static get properties(){return{delay:{value:50,type:"number"},initialDelay:{value:150,type:"number"}}}static get listeners(){return{"button.down":"_startRepeat","button.mouseenter":"_overriddenHandler","button.mouseleave":"_overriddenHandler","button.pointerenter":"_updateInBoundsFlag","button.pointerleave":"_updateInBoundsFlag","button.touchmove":"_touchmoveHandler","document.up":"_stopRepeat"}}_clickHandler(e){const t=this;("release"!==t.clickMode||t.preventDefaultClick||t.readonly||t.disabled)&&(e.preventDefault(),e.stopPropagation(),t.preventDefaultClick=!1)}_updateInBoundsFlag(e){const t=this;-1!==e.type.indexOf("leave")?(t._isPointerInBounds=!1,t.$button.setAttributeValue("hover",!1),t.$.setAttributeValue("hover",!1)):(t._isPointerInBounds=!0,t.$button.setAttributeValue("hover",!0),t.$.setAttributeValue("hover",!0)),1!==("buttons"in e?e.buttons:e.which)&&t._stopRepeat(e)}_startRepeat(e){const t=this;t.setAttribute("active",""),t._initialTimer||t.readonly||(t._initialTimer=setTimeout((function(){t._repeatTimer=setInterval((()=>{if(t._isPointerInBounds){if(t.hasAttribute("smart-blazor"))return t.$.dispatchEvent(new Event("click")),void(t.preventDefaultClick=!0);const n="buttons"in e?e.buttons:e.which;t.$.fireEvent("click",{buttons:n,clientX:e.clientX,clientY:e.clientY,pageX:e.pageX,pageY:e.pageY,screenX:e.screenX,screenY:e.screenY}),t.preventDefaultClick=!0}}),t.delay)}),t.initialDelay))}_stopRepeat(e){const t=this;t.readonly||e&&("pointercancel"===e.type||e.originalEvent&&"pointercancel"===e.originalEvent.type)||(t.$.setAttributeValue("active",!1),t._repeatTimer&&(clearInterval(t._repeatTimer),t._repeatTimer=null),t._initialTimer&&(clearTimeout(t._initialTimer),t._initialTimer=null))}_touchmoveHandler(e){this.preventDefaultClick&&e.cancelable&&(e.preventDefault(),e.stopPropagation())}_overriddenHandler(){}}),Smart("smart-toggle-button",class extends Smart.Button{static get properties(){return{checked:{value:!1,type:"boolean?"},falseContent:{value:"",reflectToAttribute:!1,type:"string"},indeterminateContent:{value:"",reflectToAttribute:!1,type:"string"},indeterminate:{value:!1,type:"boolean"},trueContent:{value:"",reflectToAttribute:!1,type:"string"},indeterminateTemplate:{value:null,type:"any"},trueTemplate:{value:null,type:"any"},falseTemplate:{value:null,type:"any"},type:{value:"toggle",type:"string",defaultReflectToAttribute:!0,readonly:!0}}}static get listeners(){return{keydown:"_keyHandler",keyup:"_keyHandler",dragstart:"_dragStartHandler","button.click":"_buttonClickHandler","button.mouseenter":"_buttonMouseEnterHandler","button.mouseleave":"_buttonMouseLeaveHandler","document.up":"_documentUpHandler"}}ready(){super.ready(),this._setAriaState(),this._updateGroupValue()}_setAriaState(){const e=this,t=e.checked;null!==t?e.setAttribute("aria-pressed",t):e.setAttribute("aria-pressed","mixed")}_buttonClickHandler(){}_buttonMouseLeaveHandler(){this.removeAttribute("hover")}_buttonMouseEnterHandler(){const e=this;e.setAttribute("hover",""),e.disabled||e.readonly||"hover"!==e.clickMode||(e._changeCheckState("pointer"),e.focus(),e._updateHidenInputNameAndValue())}_documentUpHandler(e){const t=this;t._pressed&&(t._pressed=!1,t.disabled||t.readonly||"press"===t.clickMode||"pointercancel"===e.originalEvent.type||(t._changeCheckState("pointer"),t.focus(),t._updateHidenInputNameAndValue()))}_downHandler(e){const t=this;t.disabled||t.readonly||(t.hasRippleAnimation&&Smart.Utilities.Animation.Ripple.animate(t,e.pageX,e.pageY),t._pressed=!0,"press"!==t.clickMode&&"pressAndRelease"!==t.clickMode||(t._changeCheckState("pointer"),t.hasAttribute("smart-blazor")?t.$.dispatchEvent(new Event("click")):t.$.fireEvent("click"),t._updateHidenInputNameAndValue()),"press"===t.clickMode&&(e.preventDefault(),e.stopPropagation()))}_dragStartHandler(e){e.preventDefault()}_keyHandler(e){const t=this;if(!0!==t.disabled&&!t.readonly&&32===e.keyCode){if("keydown"===e.type)return void e.preventDefault();if("none"===t.switchMode)return;t._changeCheckState("keyboard"),t._updateHidenInputNameAndValue()}}_updateGroupValue(){const e=this;if(e.dataset.target){const t=document.querySelector(e.dataset.target);if(t){const n=document.querySelectorAll('[data-target="'+e.dataset.target+'"]'),a=[];if(e.checked){const n=e.dataset.property,a=e.dataset.value;if(n&&void 0!==t[n]){let e=a;"true"===e&&(e=!0),"false"===e&&(e=!1),t[n]=e}}for(let t=0;t<n.length;t++){const r=n[t];r.checked&&(r.name?(a.push(r.name),e.id&&r.setAttribute("data-id",e.id)):e.id&&a.push(e.id))}t.value=a.toString(),e._targetDispatchTimer&&clearTimeout(e._targetDispatchTimer),e._targetDispatchTimer=setTimeout((()=>{t.dispatchEvent(new Event("change"))}),100)}}}_changeCheckState(e){const t=this;let n=null;null===t.checked?t.checked=!0:(n=t.checked,t.checked=!t.checked),t._handleTextSelection(),t.$.fireEvent("change",{value:t.checked,oldValue:n,changeType:e}),t.checked?t.$.fireEvent("checkValue",{changeType:e}):t.$.fireEvent("uncheckValue",{changeType:e}),t._updateGroupValue(),t._setAriaState()}_handleTextSelection(){const e=this;e.$.addClass("smart-unselectable"),e.timer&&clearTimeout(e.timer),e.timer=setTimeout((()=>e.$.removeClass("smart-unselectable")),500)}propertyChangedHandler(e,t,n){super.propertyChangedHandler(e,t,n);const a=this;if("checked"===e)return a.$.fireEvent("change",{value:n,oldValue:t,changeType:"api"}),void a._setAriaState();switch(e){case"trueTemplate":a._handleTemplate(!0);break;case"falseTemplate":a._handleTemplate(!1);break;case"indeterminateTemplate":a._handleTemplate()}}_htmlBindOnInitialization(){const e=this;e._bindContentProperty("trueContent","smart-true-content"),e._bindContentProperty("falseContent","smart-false-content"),e._bindContentProperty("indeterminateContent","smart-indeterminate-content")}_bindContentProperty(e,t){const n=this;if(!n.$[e+"Container"])return;let a=document.createElement("div");a.innerHTML=n.innerHTML;let r,i=a.getElementsByClassName(t);if(i.length>0)for(let e=0;e<i.length;e++)r=i[e];""===n[e]&&(n[e]=void 0===r?"":r.outerHTML),n.$[e+"Container"].innerHTML=n[e]}_updateContentProperties(){const e=this;function t(t){e.$[t+"Container"]&&(e[t]=e.$[t+"Container"].innerHTML)}t("trueContent"),t("falseContent"),t("indeterminateContent")}_updateHidenInputValue(){const e=this;if(!e.$.hiddenInput)return;let t;t=null===e.checked?"null":!1===e.checked?"off":e.value||"on",e.$.hiddenInput.setAttribute("value",t)}_updateHidenInputName(){const e=this;if(!e.$.hiddenInput)return;let t=!1===e.checked?"":e.name||"";e.$.hiddenInput.setAttribute("name",t)}_updateHidenInputNameAndValue(){this._updateHidenInputName(),this._updateHidenInputValue()}_handleTemplate(e,t){const n=this;let a,r,i;if(!0===e?(a=n.trueTemplate,r=n.$.trueContentContainer,i=n.trueContent):!1===e?(a=n.falseTemplate,r=n.$.falseContentContainer,i=n.falseContent):(a=n.indeterminateTemplate,r=n.$.indeterminateContentContainer,i=n.indeterminateContent),t&&(r.innerHTML=i||""),null===a||!a)return;if("function"==typeof a)return void a(r,{value:i});if(!("content"in document.createElement("template")))return void n.error(n.localize("htmlTemplateNotSuported",{elementType:n.nodeName.toLowerCase()}));if(a=document.getElementById(a),null===a||!("content"in a))return void n.error(n.localize("invalidTemplate",{elementType:n.nodeName.toLowerCase(),property:"template"}));const o=a.content,l=o.childNodes.length,s=/{{\w+}}/g;let u,d=[];for(let e=0;e<l;e++)for(u=s.exec(o.childNodes[e].innerHTML);u;)d.push({childNodeIndex:e,bindingString:u[0]}),u=s.exec(o.childNodes[e].innerHTML);const c=d.length;let p,h,m=document.importNode(a.content,!0);for(let e=0;e<c;e++){p=m.childNodes[d[e].childNodeIndex],h=d.length;for(let t=0;t<h;t++)p.innerHTML=p.innerHTML.replace(d[e].bindingString,i)}r.innerHTML="";for(let e=0;e<m.childNodes.length;e++)m.childNodes[e].outerHTML&&(r.innerHTML+=m.childNodes[e].outerHTML)}});
/***/ }),
/***/ 6621:
/***/ (() => {
Smart("smart-docking-layout",class extends Smart.ContentElement{static get properties(){return{autoLoadState:{value:!1,type:"boolean"},autoSaveState:{value:!1,type:"boolean"},draggable:{value:!0,type:"boolean"},floatable:{value:!0,type:"boolean"},hideSplitterBars:{value:!1,type:"boolean"},layout:{value:[],type:"array",reflectToAttribute:!1},liveResize:{value:!1,type:"boolean"},messages:{value:{en:{invalidNode:'{{elementType}}: "{{method}}" method accepts an instance of Smart.TabsWindow',invalidNodeRemove:'{{elementType}}: "{{method}}" method accepts an instance of Smart.TabsWindow that is a child of the DockingLayout.',invalidNodeType:'{{elementType}}: The method "{{method}}" requires a "smart-tabs-window" element to be passed as an argument.',invalidTargetNode:'{{elementType}}: The method "{{method}}" requires an index of an item that is not hidden/closed. Only visible items that are part of the Layout are valid.',invalidIndex:'{{elementType}}: "{{method}}" method accepts an index of type number.',noId:"smartDockingLayout requires an id in order to save/load a state."}},type:"object",extend:!0},resizeStep:{value:5,type:"number"},snapMode:{value:"advanced",allowedValues:["simple","advanced"],type:"string"}}}static get listeners(){return{"autoHideWindow.close":"_autoHideWindowCloseHandler","autoHideWindow.resizeEnd":"_autoHideWindowResizeEndHandler","container.dock":"_dockEventHandler",move:"_moveHandler","document.down":"_documentDownHandler","document.move":"_documentMoveHandler","document.up":"_documentUpHandler","document.selectstart":"_documentSelectStartHandler","document.dragstart":"_documentDragStartHandler","container.tabStripResize":"_containerTabStripResizeHandler","horizontalHiddenItemsContainer.resize":"_resizeHandler","itemsContainer.close":"_itemsContainerCloseHandler","itemsContainer.autoHide":"_itemsContainerAutoHideHandler","itemsContainer.resizeEnd":"_itemsContainerResizeHandler",keydown:"_keyDownHandler",keyup:"_keyUpHandler",mouseleave:"_mouseLeaveHandler"}}static get styleUrls(){return["smart.dockinglayout.css"]}template(){return'<div id="container" role="presentation">\n <smart-splitter id="horizontalHiddenItemsContainer" class="smart-horizontal-hidden-items-container" orientation="horizontal">\n <smart-splitter-item class="smart-docking-layout-item-holder">\n <smart-splitter id="verticalHiddenItemsContainer" class="smart-vertical-hidden-items-container">\n <smart-splitter-item class="smart-docking-layout-item-holder">\n <smart-splitter id="itemsContainer" class="smart-items-container">\n <content></content>\n <smart-splitter-item id="placeholderItem" class="smart-placeholder" pinned>\n <smart-tabs-window tab-position="hidden" opened header-buttons=\'[]\'>\n <smart-tab-item></smart-tab-item>\n </smart-tabs-window>\n </smart-splitter-item>\n </smart-splitter>\n </smart-splitter-item>\n </smart-splitter>\n </smart-splitter-item>\n </smart-splitter>\n <smart-tabs-window id="tabsWindowFeedback" class="smart-tabs-window-feedback smart-hidden"></smart-tabs-window>\n <smart-tabs-window id="autoHideWindow" class="smart-docking-layout-auto-hide-window" pinned header-buttons=\'["close", "dock"]\'\n right-to-left="[[rightToLeft]]" tab-position="hidden">\n <smart-tab-item></smart-tab-item>\n </smart-tabs-window>\n </div>'}propertyChangedHandler(e,t,i){const a=this;switch(e){case"autoSaveState":a._handleAutoSave();break;case"layout":a._handleLayout();break;case"liveResize":case"resizeStep":{const t=a.getElementsByTagName("smart-splitter");for(let a=0;a<t.length;a++)t[a][e]=i;"liveResize"===e&&(a.$.autoHideWindow[e]=i);break}case"snapMode":a._handleSnapping(),a._snapFeedback=void 0;break;case"hideSplitterBars":a._setSplitterBarVisibility();break;case"rightToLeft":case"theme":a._items&&a._items.forEach((t=>t[e]=i));break;default:super.propertyChangedHandler(e,t,i)}}ready(){super.ready()}render(){const e=this;if(e.setAttribute("role","group"),e.autoLoadState){const t=e.loadState();t&&(e.layout=t)}e.$.itemsContainer.liveResize=e.liveResize,e.$.itemsContainer.resizeStep=e.resizeStep,e._handleLayout(),e.$tabsWindowFeedback.removeClass("smart-hidden"),e._setFocusable(),e.checkLicense(),super.render()}static get requires(){return{"Smart.TabsWindow":"smart.window.js","Smart.Splitter":"smart.splitter.js"}}appendChild(e){const t=this;if(!t.isCompleted){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.TabsWindow?t.insertBefore(e,null):t.error(t.localize("invalidNodeType",{elementType:t.nodeName.toLowerCase(),method:"appendChild"})):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"appendChild"}))}autoHideBottom(e){this._autoHide(e,"bottom")}autoHideLeft(e){this._autoHide(e,"left")}autoHideRight(e){this._autoHide(e,"right")}autoHideTop(e){this._autoHide(e,"top")}clearState(){const e=this;e.id?window.localStorage.removeItem("smartDockingLayout"+e.id):e.warn(e.localize("noId"))}dock(e){this._dock(e)}undock(e){const t=this;if("number"==typeof e?e=t._items[e]:"string"==typeof e&&(e=t._getItemById(e)),!e)return;if(!(t.shadowRoot||t).contains(e)&&t._getClosestDockingLayout(e)!==t)return;const i=e.getRootNode()&&e.getRootNode().host?e.getRootNode().host:void 0,a=e.closest("smart-splitter-item")||(i?i.closest("smart-splitter-item"):void 0);if(!a)return;const o=a.getBoundingClientRect();let s;if(e instanceof Smart.TabsWindow){e.autoHide?(t.$.autoHideWindow.close(),e._autoHideWindow&&(e.style.width=e._autoHideWindow.offsetWidth+"px",e.style.height=e._autoHideWindow.offsetHeight+"px"),"left"===e.tabPosition||"right"===e.tabPosition?e.style.height=t.offsetHeight+"px":e.style.width=t.offsetWidth+"px"):(e.style.width=e.offsetWidth+"px",e.style.height=e.offsetHeight+"px"),e.windowParent="body",e.opened=!0,e.autoHide&&(e.tabPosition="top"),e.autoHide=e.allowToggle=e.pinned=!1,e.style.maxWidth=e.style.maxHeight="",s=e;const i=a.closest("smart-splitter");i.removeChild(a),t._removeUnneccessaryItems(i)}else{if(!(e instanceof Smart.TabItem))return;{const o=e.closest("smart-tabs-window")||(i?i.closest("smart-tabs-window"):void 0);let n;1===o.items.length?(n=o,a.closest("smart-splitter").removeChild(a)):(n=t._createTabsWindowFromObject({label:e.label}),o.removeChild(e),n.appendChild(e)),"body"!==n.windowParent&&(n.windowParent="body"),n.parentElement!==t.getShadowRootOrBody()&&(t.getShadowRootOrBody().appendChild(n),t._ownTabWindow(n)),n.allowToggle=n.autoHide=n.pinned=!1,n.label=e.label,n.opened=!0,n._parentInfo={closestItem:o,position:e.index},s=n,e=o}}e._originalTabPosition?s.tabPosition=e._originalTabPosition:e.autoHide&&(s.tabPosition="top"),s.tabTextOrientation=e._originalTextOrientation||"horizontal",s===e&&(delete s._originalTabPosition,delete s._originalTextOrientation),t._setFloatingItemsHeaderButtons(s),s.style.left=o.left+"px",s.style.top=o.top+"px",s.resizeMode="both";const n=t._items.indexOf(e);if(s.layout=t,n>-1&&(t._items.splice(n,1),s.position&&(s.style.top=s.position.top,s.style.left=s.position.left,delete s.position)),0!==t._items.filter((e=>e.opened)).length||t.$.placeholderItem.parentElement||t.$.itemsContainer.appendChild(t.$.placeholderItem),t._validateWindowPosition(s),t._setAutoHidePaddings(),t._noStateChangeFiring||(t._handleAutoSave(),t.$.fireEvent("stateChange",{type:"float",item:s})),document.activeElement!==s){const e=document.scrollingElement||document.documentElement,t=e.scrollLeft,i=e.scrollTop;s.focus(),s.bringToFront(),window.scrollTo(t,i)}return s}insertBefore(e,t,i){const a=this;if(!a.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.insertBefore.apply(a,e.concat(Array.prototype.slice.call(arguments)))}let o,s=e;if(s instanceof Smart.TabsWindow?((e=document.createElement("smart-splitter-item")).size=s.size||"",e.max=s.max||"",e.min=s.min||"",e.locked=s.locked||!1,e.collapsible=s.collapsible||!1,e.collapsed=s.collapsed||!1,e.appendChild(s)):s instanceof Smart.SplitterItem?s=s.querySelector("smart-tabs-window"):a.error(a.localize("invalidNodeType",{elementType:a.nodeName.toLowerCase(),method:"insertBefore"})),s.opened=s.pinned=!0,s.style.width=s.style.height="",s.style.top=s.style.left="",s.style.paddingTop=s.style.paddingBottom="",s.style.paddingLeft=s.style.paddingRight="",e.style.top=e.style.left="",a._items.indexOf(s)>-1&&a._items.splice(a._items.indexOf(s),1),t){if(o=t.closest("smart-splitter"),o===a.$.verticalHiddenItemsContainer||o===a.$.horizontalHiddenItemsContainer?(o=a.$.itemsContainer,t=0===a._items.length?null:"top"===t.tabPosition||"left"===t.tabPosition?a._items[0]:a._items[a._items.length-1]):i&&(o=a.$.itemsContainer),!(t instanceof Smart.TabsWindow))return void a.error(a.localize("invalidNodeType",{elementType:a.nodeName.toLowerCase(),method:"insertBefore"}));o.autoFitMode="proportional",o.insertBefore(e,o._items.filter((e=>e.contains(t)))[0]),a._items.splice(a._items.indexOf(t),0,s)}else o=a.$.itemsContainer,a._dockingAutoHideTabItem&&(o.autoFitMode="end"),a._items.push(s),a.$.itemsContainer.insertBefore(e);if(o.autoFitMode="proportional",s.autoHide)a._autoHide(s,s.autoHidePosition);else{s.autoHide=s.allowToggle=!1,s._originalTabPosition&&(s.tabPosition=s._originalTabPosition,delete s._originalTabPosition),s._originalTextOrientation&&(s.tabTextOrientation=s._originalTextOrientation,delete s._originalTextOrientation),a._setDockedItemsHeaderButtons(s);const e=document.scrollingElement||document.documentElement,t=e.scrollLeft,i=e.scrollTop;s.focus(),window.scrollTo(t,i)}a._items.filter((e=>e.opened)).length>0&&a.$.placeholderItem.parentElement&&a.$.itemsContainer.removeChild(a.$.placeholderItem),s.layout=a,s.minimized=!1,s.maximized=!1,s.locked=!1,s.resizeMode="none",a._handleAutoHiddenSplitterBars(),a._setSplitterBarVisibility(),a._handleAutoSave(),a.$.fireEvent("stateChange",{type:"dock",item:s})}insertBeforeItem(e,t){this._insert(e,t,"top","insertBeforeItem")}insertAfterItem(e,t){this._insert(e,t,"bottom","insertAfterItem")}insertIntoLeft(e,t){this._insert(e,t,"inside-left","insertIntoLeft")}insertIntoRight(e,t){this._insert(e,t,"inside-right","insertIntoRight")}insertIntoTop(e,t){this._insert(e,t,"inside-top","insertIntoTop")}insertIntoBottom(e,t){this._insert(e,t,"inside-bottom","insertIntoBottom")}insertLayoutTop(e){this._insert(0,e,"layout-top","insertLayoutTop")}insertLayoutBottom(e){this._insert(0,e,"layout-bottom","insertLayoutBottom")}insertLayoutLeft(e){this._insert(0,e,"layout-left","insertLayoutLeft")}insertLayoutRight(e){this._insert(0,e,"layout-right","insertLayoutRight")}insertOutsideTargetGroupTop(e,t){this._insert(e,t,"outside-top","insertOutsideTargetGroupTop")}insertOutsideTargetGroupBottom(e,t){this._insert(e,t,"outside-bottom","insertOutsideTargetGroupBottom")}insertOutsideTargetGroupLeft(e,t){this._insert(e,t,"outside-left","insertOutsideTargetGroupLeft")}insertFloatingWindow(e,t,i){if(!e)return;let a="tabsWindow_"+Math.floor(65536*(1+Math.random())).toString(16).substring(1);e.id?a=e.id:e.id=a,this._insert(0,e);const o=this.undock(a);o&&(void 0!==t&&(o.style.left="number"==typeof t?t+"px":t),void 0!==i&&(o.style.top="number"==typeof i?i+"px":i))}insertOutsideTargetGroupRight(e,t){this._insert(e,t,"outside-right","insertOutsideTargetGroupRight")}getAutoHideItems(e){const t=this;function i(e){let t=[];if(!e._items)return t;for(let i=0;i<e._items.length;i++)e._items[i].$.hasClass("smart-docking-layout-item-holder")||t.push(e._items[i].getElementsByTagName("smart-tabs-window")[0]);return t}return e?i("horizontal"===e?t.$.horizontalHiddenItemsContainer:t.$.verticalHiddenItemsContainer):i(t.$.horizontalHiddenItemsContainer).concat(i(t.$.verticalHiddenItemsContainer))}getIndex(e){const t=this;if(t.isReady&&t._items.length)return t._items.indexOf(e)}get autoHideItems(){return this.isReady?this.getAutoHideItems():[]}get items(){const e=this;return e.isReady?e._items.filter((e=>e.opened)).concat(e.getAutoHideItems()):[]}get closedItems(){return this.isReady?this._items.filter((e=>!e.opened)):[]}get undockedItems(){const e=this;if(!e.isReady)return[];const t=document.getElementsByTagName("smart-tabs-window");let i=[];for(let a=0;a<t.length;a++)t[a].closest("smart-docking-layout")||e._getClosestDockingLayout(t[a])||t[a].layout!==e||(t[a].undocked=!0,i.push(t[a]));return i}getItemGroupElement(e){const t=this;if(t.isReady&&e&&e instanceof Smart.TabsWindow&&(t.shadowRoot||t).contains(e))return e.closest("smart-splitter")}getState(e){const t=this,i=t.getAutoHideItems(),a=t.undockedItems,o=[];for(let a=0;a<i.length;a++)o.push(t._createTabsWindowStructure(i[a],e));for(let i=0;i<a.length;i++)o.push(t._createTabsWindowStructure(a[i],e));return[{type:"LayoutGroup",items:o.concat(t._createLayoutStructure(t.$.itemsContainer,e)),orientation:t.$.itemsContainer.orientation}]}getClosestSplitterBars(e){const t=this;if(!t._items||!t._items.length)return;if("string"==typeof e?e=t._getItemById(e):"number"==typeof e&&(e=t._items[parseInt(e)]),!(e instanceof Smart.TabsWindow&&t._items.find((t=>t===e))))return;let i=e.closest("smart-splitter");for(;i&&!i.bars.length;)i=i.closest("smart-splitter");return i?i.bars:void 0}getJSONStructure(){return this.getState(!0)}loadState(e){const t=this;if(!e){if(!t.id)return void t.warn(t.localize("noId"));e=JSON.parse(window.localStorage.getItem("smartDockingLayout"+t.id))}if(e)return t._loadState(e),e}removeAt(e){const t=this;"number"==typeof e?e=t._items[e]:"string"==typeof e&&(e=t._getItemById(e)),e instanceof Smart.TabsWindow?e.closest("smart-docking-layout")===t||t._getClosestDockingLayout(e)===t?t.removeChild(e):t.error(t.localize("invalidNodeRemove",{elementType:t.nodeName.toLowerCase(),method:"remove"})):t.error(t.localize("invalidIndex",{elementType:t.nodeName.toLowerCase(),method:"remove"}))}removeAll(){this._removeAll()}removeChild(e){const t=this;if(!e)return void t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"removeChild"}));if(!(e instanceof Smart.TabsWindow))return void t.error(t.localize("invalidNodeType",{elementType:t.nodeName.toLowerCase(),method:"removeChild"}));if(!t.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.removeChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}const i=e.closest("smart-splitter-item");if(!i)return;const a=i.closest("smart-splitter");a&&(i.closest("smart-splitter").removeChild(i),t._items.splice(t._items.indexOf(e),1),t._removeUnneccessaryItems(a),0!==t._items.filter((e=>e.opened)).length||t.$.placeholderItem.parentElement||t.$.itemsContainer.appendChild(t.$.placeholderItem),e.layout=t,t._handleAutoSave(),t.$.fireEvent("stateChange",{type:"remove",item:e}))}saveState(){const e=this;e.id?window.localStorage.setItem("smartDockingLayout"+e.id,JSON.stringify(e.getJSONStructure())):e.warn(e.localize("noId"))}update(e,t){const i=this;if("number"==typeof e?e=i._items[parseInt(e)]:"string"==typeof e&&(e=i._getItemById(e)),!(e&&e instanceof Smart.TabsWindow))return void i.error(i.localize("invalidNodeType",{elementType:i.nodeName.toLowerCase(),method:"update"}));if(!(i.shadowRoot||i).contains(e)&&i._getClosestDockingLayout(e)!==i)return;if(!t||"object"!=typeof t)return;if(t.items)for(let i=0;i<t.items.length;i++){const a=t.items[i].index;"number"!=typeof a||isNaN(a)||(e.items&&!e.items[a]?e.insert(a,t.items[i]):e.update(t.items[i].index,t.items[i].label,t.items[i].content))}t.id&&(e.id=t.id),t.label&&(e.label=t.label),e.tabCloseButtons=t.tabCloseButtons||!1,t.headerButtons&&Array.isArray(t.headerButtons)&&(e.headerButtons=0===t.headerButtons.length?["close","autoHide"]:t.headerButtons);const a=e.closest("smart-splitter-item");a&&(e.autoHide?i._autoHide(e):(a.size=void 0!==t.size?t.size:a.size,a.min=void 0!==t.min?t.min:a.min,a.max=void 0!==t.max?t.max:a.max,a.locked=void 0!==t.locked?t.locked:a.locked,a.collapsible=void 0!==t.collapsible?t.collapsible:a.collapsible,a.collapsed=void 0!==t.collapsed?t.collapsed:a.collapsed))}_autoHide(e,t){const i=this;if("number"==typeof e?e=i._items[e]:"string"==typeof e&&(e=i._getItemById(e)),!e)return;if(e instanceof Smart.TabItem){const a=e.closest("smart-tabs-window")||(e.getRootNode()&&e.getRootNode().host?e.getRootNode().host.closest("smart-tabs-window"):void 0);if(a&&a.items.length<2)e=a;else{const o=e;if(a){if(a.autoHide&&a.tabPosition===t)return;a.removeChild(e)}(e=i._createTabsWindowFromObject({label:e.label})).appendChild(o)}}if(!(e instanceof Smart.TabsWindow))return void i.error(i.localize("invalidNodeType",{elementType:i.nodeName.toLowerCase(),method:"appendChild"}));let a,o=e.closest("smart-splitter-item");const s=e.closest("smart-splitter")||(e.isInShadowDOM?e.getRootNode().host:void 0)||i.$.itemsContainer,n=i._getAutoHidePositionDetails(t,e,o),d=n.autoHideSplitter;t=n.position,e.offsetHeight&&(a="left"===t||"right"===t?e.offsetWidth:e.offsetHeight),o||(o=document.createElement("smart-splitter-item"),o.appendChild(e)),o.min=30;const l="auto-hide-"+t;if(e.autoHide&&o.$.hasClass(l))return;const r=i._items.indexOf(e);i._items.splice(r,r>-1?1:0),0!==i._items.filter((e=>e.opened)).length||i.$.placeholderItem.parentElement||("left"===t?i.$.itemsContainer.insert(1,i.$.placeholderItem):i.$.itemsContainer.appendChild(i.$.placeholderItem)),i._handleAutoHideWindow({position:t,tabsWindow:e,splitterItem:o,autoHideName:l,splitterContainer:s,autoHideSplitter:d}),d.bars.map((e=>e.hide())),(!i.shadowRoot||i.shadowRoot&&i.isCompleted)&&i._setAutoHidePaddings();const m=e.items;if(m)for(let e=0;e<m.length;e++)m[e]._autoHideWindowSize||(m[e]._autoHideWindowSize=a);i.$.autoHideWindow.opened&&i.$.autoHideWindow._tabsWindow&&i.$.autoHideWindow._tabsWindow._setAutoHideWindowSize(i.$.autoHideWindow._tabsWindow.selectedIndex),i.isCompleted&&(i._handleAutoSave(),i.$.fireEvent("stateChange",{type:"autoHide",item:e}),i.shadowRoot&&setTimeout((function(){"top"===t||"bottom"===t?(i.$.horizontalHiddenItemsContainer.items.filter((e=>e.className.indexOf("auto-hide-")>-1)).forEach((e=>{const t=e.querySelector("smart-tabs-window");e.style.height="",t.refreshTabs()})),i.$.horizontalHiddenItemsContainer.refresh()):(i.$.verticalHiddenItemsContainer.items.filter((e=>e.className.indexOf("auto-hide-")>-1)).forEach((e=>{const t=e.querySelector("smart-tabs-window");e.style.width="",t.refreshTabs()})),i.$.verticalHiddenItemsContainer.refresh()),i._setAutoHidePaddings()}),150))}_moveHandler(e){this.hasAttribute("dragged")&&"touchmove"===e.originalEvent.type&&e.originalEvent.preventDefault()}_getAutoHidePositionDetails(e,t,i){const a=this,o=t.closest("smart-splitter")||a.$.itemsContainer,s=o?o._items.indexOf(i):0;let n;switch(e){case"top":case"bottom":n=a.$.horizontalHiddenItemsContainer;break;case"left":case"right":n=a.$.verticalHiddenItemsContainer;break;default:if("vertical"===o.orientation){n=a.$.verticalHiddenItemsContainer;const t=n.items.filter((e=>e.className.indexOf("auto-hide-")>-1));e=1===t.length&&1===a._items.length?t[0].$.hasClass("auto-hide-right")?"right":"left":s>=o.items.length/2?"right":"left"}else{n=a.$.horizontalHiddenItemsContainer;const t=n.items.filter((e=>e.className.indexOf("auto-hide-")>-1));e=1===t.length&&1===a._items.length?t[0].$.hasClass("auto-hide-bottom")?"bottom":"top":s>=o.items.length/2?"bottom":"top"}}return{autoHideSplitter:n,position:e}}_handleAutoHideWindow(e){const t=this,i=e.autoHideName,a=e.splitterItem,o=e.splitterContainer,s=e.position,n=e.autoHideSplitter;let d=e.tabsWindow,l=(t.shadowRoot||t).querySelector("."+i),r="offset"+("left"===s||"right"===s?"Width":"Height");if(d.locked=!1,l){const e=[].slice.call(d.isCompleted?d.items:d.children),i=l.querySelector("smart-tabs-window"),s=i.items.length;for(let t=0;t<e.length;t++)i.insert(s,{node:e[t]}),e[t]._autoHideWindowSize=d[r];a.parentElement&&o.removeChild(a),t._removeUnneccessaryItems(o),d=i}else{o&&o.contains(a)&&o.removeChild(a),!t._initializingItems&&d.autoHide||(d._originalTabPosition=d.tabPosition,d._originalTextOrientation=d.tabTextOrientation,d._originalLocked=d.locked),d.autoHideWindow=t.$.autoHideWindow,d.autoHide=d.allowToggle=!0,d.selectedIndex=null,d.$.tabsElement&&d.$.tabsElement.selectedIndex!==d.selectedIndex&&(d.$.tabsElement.selectedIndex=d.selectedIndex),d.tabTextOrientation="right"===s||"left"===s?"vertical":"horizontal",d.tabPosition=s,d.style.top=d.style.left="",d.style.width=d.style.height="",d.opened=!0,d.resizeMode="none";for(let e=0;e<a.classList.length;e++)a.classList[e].indexOf("auto-hide-")>-1&&a.$.removeClass(a.classList[e]);if(a.$.addClass(i),a.style.paddingLeft=a.style.paddingRight=a.style.paddingTop=a.style.paddingBottom="",a.min&&(a.min=""),t._removeUnneccessaryItems(o),"top"===s||"left"===s?n.insert(0,a):n.appendChild(a),n.autoFitMode="proportional",!Smart.Utilities.Core.Browser.Safari||"left"!==s&&"right"!==s){if(Smart.Utilities.Core.Browser.Firefox&&("top"===s||"bottom"===s)){const e=(d.shadowRoot||d).querySelector(".smart-tab-strip");e&&(d.size=e.offsetHeight)}d.size="auto"}else{const e=d.querySelector(".smart-tab-strip");d.size=e.offsetWidth}d.min&&(d.min=""),d.min=30,d.locked=!0,n.autoFitMode="end"}}_autoHideWindowCloseHandler(){const e=this.$.autoHideWindow._tabsWindow,t=document.scrollingElement||document.documentElement,i=t.scrollLeft,a=t.scrollTop;if(e._moveContent(e._autoHideWindow.items[0],e._autoHideWindow._tab),!this.$.autoHideWindow.opened)return e.selectedIndex=null,void(document.activeElement!==e.$.tabsElement&&(e.$.tabsElement.focus(),window.scrollTo(i,a)));e.allowToggle&&null!==e.$.tabsElement.selectedIndex&&(e.select(e.$.tabsElement.selectedIndex),document.activeElement!==e.$.tabsElement&&(e.$.tabsElement.focus(),window.scrollTo(i,a)))}_autoHideWindowResizeEndHandler(e){const t=e.target,i="left"===t.resizeMode||"right"===t.resizeMode?"width":"height";t._tab&&(t._tab._autoHideWindowSize=e.detail[i])}_cancelDragOperation(e){const t=this;t.removeAttribute("dragged"),t._dragDetails.windowFeedback.removeAttribute("tabs-window-dragged"),t._dragDetails.windowFeedback.removeAttribute("ontop"),t._returnItemToOrigin(t._dragDetails.windowFeedback),t._noStateChangeFiring=!0,e||t._endDrag()}_createTabsWindowFromObject(e,t){const i=this,a=document.createElement("smart-tabs-window");let o,s=["close","autoHide"];if(a.layout=i,e.id&&(a.id=e.id),e.disabled&&(a.disabled=e.disabled),e.label&&(a.label=e.label),e.headerPosition&&(a.headerPosition=e.headerPosition),e.tabCloseButtons&&(a.tabCloseButtons=e.tabCloseButtons),e.dropPosition&&(a.dropPosition=e.dropPosition),e.resizeMode&&(a.resizeMode=e.resizeMode),a.animation=i.animation,a.rightToLeft=i.rightToLeft,a.theme=i.theme,a.draggable=void 0===e.draggable||e.draggable,a.floatable=void 0===e.floatable||e.floatable,a.tabCloseButtons=e.tabCloseButtons?e.tabCloseButtons:a.tabCloseButtons,e.autoHide?(a.autoHideWindow=i.$.autoHideWindow,a.autoHide=a.allowToggle=e.autoHide,a.autoHidePosition=e.autoHidePosition):e.undocked&&(s=["close","maximize","minimize"],a.undocked=e.undocked,a.position={top:e.top?(e.top+"").indexOf("%")>-1?e.top:parseFloat(e.top)+"px":void 0,left:e.left?(e.left+"").indexOf("%")>-1?e.left:parseFloat(e.left)+"px":void 0,width:e.width,height:e.height}),a.tabPosition=e.tabPosition||a.tabPosition,a.opened=a.pinned=!0,e.headerButtons&&(s=e.headerButtons),(!e.headerButtons||Array.isArray(e.headerButtons)&&0===e.headerButtons.length)&&(s=["close","autoHide"]),a.headerButtons=s,a.size=e.size||"",a.max=e.max||"",a.min=e.min?e.min:30,a.locked=e.locked||!1,a.collapsible=e.collapsible||!1,a.collapsed=e.collapsed||!1,e.items&&Array.isArray(e.items))for(let i=0;i<e.items.length;i++){if(t&&e.items[i].instance)o=e.items[i].instance,o.index=null,o.id=e.items[i].id||"";else{o=document.createElement("smart-tab-item"),o.label=e.items[i].label?e.items[i].label:"",o.id=e.items[i].id||"";const t=e.items[i].content;if(/^[#.]{1}\w(\w|-)+$/gm.test(t)){const e=document.querySelectorAll(t);for(let t=0;t<e.length;t++){const i=e[t];o.appendChild(i instanceof HTMLTemplateElement?document.importNode(i.content,!0):i)}}else o.content=e.items[i].content?e.items[i].content:"";o.selected=!!e.items[i].selected&&e.items[i].selected,a._isItemSelected=!0}o.draggable=void 0===e.items[i].draggable||e.items[i].draggable,o.floatable=void 0===e.items[i].floatable||e.items[i].floatable,e.items[i].id&&(o.id=e.items[i].id),a.appendChild(o)}return a}_createItemsFromArray(e,t){const i=this;let a=e;const o=a.length;i._removeAll(!0),i._initializingItems=!0;const s=i.undockedItems;for(let e=0;e<s.length;e++)s[e].layout=null,s[e].parentElement.removeChild(s[e]);let n;1===o&&a[0].type&&"layoutgroup"===a[0].type.toLowerCase()&&(i.$.itemsContainer.orientation=a[0].orientation||i.$.itemsContainer.orientation,i.$.itemsContainer.liveResize=a[0].liveResize||i.$.itemsContainer.liveResize,i.$.itemsContainer.resizeMode=a[0].resizeMode||i.$.itemsContainer.resizeMode,a=a[0].items),i.$.itemsContainer.autoFitMode="end";for(let e=0;e<a.length;e++)n=i._createLayoutItem(a[e],t),n&&(i.$.placeholderItem.parentElement&&i.$.itemsContainer.removeChild(i.$.placeholderItem),i.$.itemsContainer.appendChild(n));0===i._items.filter((e=>e.opened)).length?i.$.placeholderItem.parentElement||i.$.itemsContainer.appendChild(i.$.placeholderItem):i.$.placeholderItem.parentElement&&i.$.itemsContainer.removeChild(i.$.placeholderItem),i.$.itemsContainer.autoFitMode="proportional",delete i._initializingItems}_createLayoutItem(e,t){if(!e)return;const i=this,a=document.createElement("smart-splitter-item");let o;if(e.type&&"layoutgroup"===e.type.toLowerCase()){let a;o=document.createElement("smart-splitter"),o._isInShadowDOM=i.isInShadowDOM,o.autoFitMode="proportional",e.id&&(o.id=e.id),e.orientation&&(o.orientation=e.orientation),e.resizeMode&&(o.resizeMode=e.resizeMode),o.liveResize=i.liveResize,o.resizeStep=i.resizeStep;for(let s=0;s<e.items.length;s++)a=i._createLayoutItem(e.items[s],t),a&&o.appendChild(a);if(!o.querySelector("smart-splitter-item"))return}else{if(o=i._createTabsWindowFromObject(e.type&&"layoutgroup"===e.type.toLowerCase()?e.items[0]:e,t),o.autoHide)return i._autoHide(o,o.autoHidePosition),void delete o.autoHidePosition;if(o.undocked)return i.undock(o),i.getShadowRootOrBody().appendChild(o),i._ownTabWindow(o),o.opened=!0,o.pinned=!1,o.layout=i,o.position&&(o.style.left=o.position.left,o.style.top=o.position.top,o.style.width=o.position.width,o.style.height=o.position.height,delete o.position),void(o.size&&(o.style.left=o.position.left,o.style.top=o.position.top));i._items.push(o)}return a.size=e.size||"",a.max=e.max||"",a.min=e.min||30,a.locked=e.locked||!1,a.collapsible=e.collapsible||!1,a.collapsed=e.collapsed||!1,a.appendChild(o),a}_createLayoutStructure(e,t){const i=this,a=[];let o,s,n=e._items;const d=n[0].$.content.children[0];function l(e){let t=e.firstElementChild;for(;t;){if(t instanceof Smart.Splitter)return t;if(t instanceof Smart.TabsWindow)return t;t=t.nextElementSibling}}1===n.length&&d instanceof Smart.Splitter&&(n=d._items,e===i.$.itemsContainer&&(i.$.itemsContainer.orientation=d.orientation));for(let d=0;d<n.length;d++)if(n[d]!==i.$.placeholderItem){if(s=l(n[d].$.content),s instanceof Smart.TabsWindow)o=i._createTabsWindowStructure(s,t);else if(s instanceof Smart.Splitter){for(;1===s._items.length&&s._items[0].$.content.children[0]instanceof Smart.Splitter;)s=s._items[0].$.content.children[0];o=1===s._items.length?i._createTabsWindowStructure(s._items[0].$.content.children[0],t):{type:"LayoutGroup",items:i._createLayoutStructure(s,t),orientation:s.orientation},s.id&&(o.id=s.id),"adjacent"!==s.resizeMode&&(o.resizeMode=s.resizeMode),5!==s.resizeStep&&(o.resizeStep=s.resizeStep),s.liveResize&&(o.resizeStep=s.liveResize)}o.size=n[d][e._measurements.size],n[d].locked&&(o.locked=!0),n[d].min&&(o.min=n[d].min),n[d].max&&(o.max=n[d].max),a.push(o)}return a}_createTabsWindowStructure(e,t){function i(e){const i={type:"LayoutPanelItem"};return i.label=e.label||"",e.selected&&(i.selected=e.selected),e.disabled&&(i.disabled=e.disabled),i.draggable=void 0===e.draggable||e.draggable,i.floatable=void 0===e.floatable||e.floatable,t||(i.instance=e),e.id&&(i.id=e.id),i}const a={type:"LayoutPanel"};if(e.id&&(a.id=e.id),e.disabled&&(a.disabled=e.disabled),e.label&&(a.label=e.label),e.autoHide?(a.autoHide=e.autoHide,a.autoHidePosition=e.tabPosition):"top"!==e.tabPosition&&(a.tabPosition=e.tabPosition),e.headerButtons&&(a.headerButtons=e.headerButtons),e.headerPosition&&(a.headerPosition=e.headerPosition),e.closest("smart-docking-layout")||this._getClosestDockingLayout(e)||(a.undocked=!0,a.top=e.style.top,a.left=e.style.left,a.width=e.style.width,a.height=e.style.height),e.dropPosition&&"all"!==e.dropPosition[0]&&(a.dropPosition=e.dropPosition),a.draggable=void 0===e.draggable||e.draggable,a.floatable=void 0===e.floatable||e.floatable,void 0!==e.floatable&&(a.floatable=e.floatable),"none"!==e.resizeMode&&(a.resizeMode=e.resizeMode),e.items){a.items=[];for(let t=0;t<e.items.length;t++)a.items.push(i(e.items[t]))}return a}_containerTabStripResizeHandler(e){const t=this,i=e.target.closest("smart-splitter");i!==t.$.horizontalHiddenItemsContainer&&i!==t.$.verticalHiddenItemsContainer||(i._resizeEventHandler(),t._setAutoHidePaddings())}_getItemById(e){const t=this,i=e;if(e=document.getElementById(i))return e;if(t.shadowRoot&&!(e=t.shadowRoot.querySelector("#"+i))){let a=t.items;for(let t=0;t<a.length;t++){const o=a[t];if(o.shadowRoot&&(e=o.shadowRoot.querySelector("#"+i)))return e}a=document.querySelectorAll("smart-tabs-window");for(let o=0;o<a.length;o++){const s=a[o];if(s.layout===t&&s.shadowRoot&&(e=s.shadowRoot.querySelector("#"+i)))return e}}}_dock(e,t){const i=this;if("number"==typeof e?e=i._items[e]:"string"==typeof e&&(e=i._getItemById(e)),!e)return;let a;const o=e.id;if(e instanceof Smart.TabItem){const t=i._handleTabItemDocking(e);e=t.tabsWindow,a=t.newTabsWindow}else"object"!=typeof e||e instanceof HTMLElement||(e=i._createTabsWindowFromObject(e));if(!(e instanceof Smart.TabsWindow&&e.autoHide))return void((i._items.indexOf(e)<0||!e.opened&&!e.parentElement)&&(e.autoHide=!1,0===e.items.length&&"simple"===i.snapMode&&e.parentElement.removeChild(e),o&&(e.id=o),t?i._insert(-1,e,t?"layout-"+t:void 0):i.appendChild(e)));if(!(i.shadowRoot||i).contains(e))return;const s=e.closest("smart-splitter-item"),n=e.closest("smart-splitter"),d=!s.nextElementSibling;t||(t="horizontal"===n.orientation?d?"bottom":"top":d?"right":"left"),0===e.items.length&&s.closest("smart-splitter").removeChild(s),a&&(e=a),e.autoHide&&(i.$.verticalHiddenItemsContainer.contains(e)?i.$.verticalHiddenItemsContainer.removeChild(e.closest("smart-splitter-item")):i.$.horizontalHiddenItemsContainer.contains(e)&&i.$.horizontalHiddenItemsContainer.removeChild(e.closest("smart-splitter-item")),e.tabPosition=e._originalTabPosition||"top",delete e._originalTabPosition),i._setDockedItemsHeaderButtons(e),e.autoHide=e.allowToggle=e.maximized=e.minimized=e.collapsed=e.locked=!1,e.tabTextOrientation="horizontal",e.headerButtons=i.$.autoHideWindow.headerButtons,i.$.autoHideWindow.close(),o&&(e.id=o),i._insert(-1,e,"layout-"+t),i._setAutoHidePaddings(),delete i._dockingAutoHideTabItem}_handleTabItemDocking(e){const t=this,i=(e.isInShadowDOM?e.getRootNode().host:e).closest("smart-tabs-window");let a;if(i){const o=t.$.autoHideWindow;if(!i.autoHide)return{tabsWindow:i,newTabsWindow:i};t._dockingAutoHideTabItem=!0,a=1===i.items.length?i:document.createElement("smart-tabs-window"),delete e._autoHideWindowSize,a.size="left"===o.resizeMode||"right"===o.resizeMode?o.offsetWidth:o.offsetHeight,i.removeChild(e),0!==i.items.length||a.id||(t.shadowRoot||t).contains(i)||i.parentElement.removeChild(i),a.tabCloseButtons=i.tabCloseButtons,a.dropPosition=i.dropPosition,a.draggable=e.draggable,a.floatable=e.floatable}return a||(a=document.createElement("smart-tabs-window")),a.animation=t.animation,a.rightToLeft=t.rightToLeft,a.theme=t.theme,a.min=30,a.opened=a.pinned=a.autoHide=!0,a.style.maxWidth=a.style.maxHeight="",a._originalTabPosition=i._originalTabPosition||void 0,a._originalTextOrientation=i._originalTextOrientation||void 0,a!==i&&(delete i._originalTabPosition,delete i._originalTextOrientation),a.label=e.label,a.appendChild(e),{tabsWindow:e=i,newTabsWindow:a}}_dockEventHandler(e){const t=this;let i=e.target;i._tabsWindow&&(i=i._tabsWindow),i.autoHide?t._dock(i.items[i.selectedIndex]):t._autoHide(i,t._items.indexOf(i)<(t._items.length-1)/2)}_documentDownHandler(e){const t=this;let i=e.originalEvent.target;if(i.shadowRoot)for(i=e.originalEvent.composedPath()[0];i;){if(i.closest(".smart-window")){i=i.closest(".smart-window");break}i=i.getRootNode().host}else i=i.closest(".smart-window");if(t.$.autoHideWindow._tabsWindow&&(!i||i!==t.$.autoHideWindow&&i!==t.$.autoHideWindow._tabsWindow)&&(t.$.autoHideWindow._tabsWindow.selectedIndex=null),t._dragDetails)return void t._cancelDragOperation();if(!(i instanceof Smart.TabsWindow)||!t.draggable||t.disabled)return;if(t._dragDetails||i.maximized||i.minimized||!Smart.Utilities.Core.isMobile&&1!==e.which||i._dragDetails&&"resize"===i._dragDetails.type&&i._dragDetails.started)return;const a=e.originalEvent.target.shadowRoot?e.originalEvent.composedPath()[0]:e.originalEvent.target;if(i=a.closest(".smart-header-section")||a.closest(".smart-tab-label-container"),t._dragDetails={},i&&i.classList.contains("smart-header-section")&&("simple"===t.snapMode||a.closest(".smart-buttons-container"))&&(i=void 0),t._dragDetails.windowFeedback=t.$.tabsWindowFeedback,i){const a=i.getRootNode()&&i.getRootNode().host?i.getRootNode().host:i;if(t._dragDetails.selectedTabsWindow=i.closest("smart-tabs-window")||(a?a.closest("smart-tabs-window"):void 0),t._dragDetails.selectedTabsWindow===t.$.autoHideWindow){if(t._dragDetails.selectedItem=t.$.autoHideWindow._tabsWindow.closest("smart-splitter-item"),!t.$.autoHideWindow._tabsWindow.draggable)return void(t._dragDetails=void 0)}else t._dragDetails.selectedItem=t._dragDetails.selectedTabsWindow.closest("smart-splitter-item");if(!t._dragDetails.selectedTabsWindow||!t._dragDetails.selectedTabsWindow.draggable||t._dragDetails.selectedTabsWindow.layout!==t)return void(t._dragDetails=void 0);if(t._dragDetails.offset={x:0,y:0},t._dragDetails.selectedTabLabel=i,t._dragDetails.x=e.pageX,t._dragDetails.y=e.pageY,t._dragDetails.selectedTabLabel.$.hasClass("smart-header-section")){if(!t._dragDetails.selectedItem&&t._dragDetails.selectedTabsWindow.pinned)return void(t._dragDetails=void 0);t._dragDetails.windowFeedback=t._dragDetails.selectedTabsWindow;const a=i.getBoundingClientRect();t._dragDetails.offset.x=e.clientX-a.left,t._dragDetails.offset.y=e.clientY-a.top}else{if(!t._dragDetails.selectedTabLabel.tab||void 0!==t._dragDetails.selectedTabLabel.tab.draggable&&!t._dragDetails.selectedTabLabel.tab.draggable)return void(t._dragDetails=void 0);1===t._dragDetails.selectedTabsWindow.items.length&&(t._dragDetails.windowFeedback=t._dragDetails.selectedTabsWindow,t._dragDetails.windowFeedback.floatable=t._dragDetails.selectedTabsWindow.items[0].floatable)}}t._items.map((e=>e.removeAttribute("ontop"))),t._dragDetails.windowFeedback!==t.$.autoHideWindow&&t._dragDetails.windowFeedback.setAttribute("ontop","")}_getClosestDockingLayout(e){const t=this,i=(t.shadowRoot||t.isInShadowDOM?t.getRootNode().host:t).nodeName.toLowerCase(),a=this._getClosestElement(i,e);return a?t:a}_getClosestElement(e,t){if(!t||!this.isInShadowDOM)return;if(!t.getRootNode())return;let i=t.getRootNode().host;for(;i;){if(!i.closest)return;if(i.closest(e))return i.closest(e);i=i.getRootNode()?i.getRootNode().host:void 0}}_documentMoveHandler(e){const t=this,i=Smart.Utilities.Core.isMobile?document.elementFromPoint(e.pageX-window.pageXOffset,e.pageY-window.pageYOffset):t.isInShadowDOM||e.originalEvent.target.shadowRoot?e.originalEvent.composedPath()[0]:e.originalEvent.target;if(t.disabled||!t._dragDetails||t._dragDetails&&!t._dragDetails.selectedTabsWindow||!i)return;if(Math.abs(e.pageX-t._dragDetails.x)<=5&&Math.abs(e.pageY-t._dragDetails.y)<=5)return;const a=document.scrollingElement||document.documentElement,o=a.scrollLeft,s=a.scrollTop,n=t._dragDetails.selectedTabsWindow;if(t._dragDetails.isInsideTheLayout=i.closest&&i.closest("smart-docking-layout")===t,t._dragDetails.isInsideTheLayout||!t.shadowRoot&&!t.isInShadowDOM||(t._dragDetails.isInsideTheLayout=t._getClosestDockingLayout(i)),t._dragDetails.started=!0,t._dragDetails.windowFeedback===t.$.autoHideWindow){const e=t._dragDetails.selectedTabsWindow.getBoundingClientRect();let i;1===t.$.autoHideWindow._tabsWindow.items.length?i=t.$.autoHi