smart-webcomponents-react 13.1.1 → 13.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/alertwindow/alertwindow.d.ts +10 -0
  2. package/alertwindow/alertwindow.esm.js +23 -1
  3. package/alertwindow/alertwindow.umd.js +23 -1
  4. package/barcode/barcode.d.ts +4 -2
  5. package/datetimepicker/datetimepicker.d.ts +8 -0
  6. package/datetimepicker/datetimepicker.esm.js +55 -0
  7. package/datetimepicker/datetimepicker.umd.js +860 -805
  8. package/dialogwindow/dialogwindow.d.ts +10 -0
  9. package/dialogwindow/dialogwindow.esm.js +23 -1
  10. package/dialogwindow/dialogwindow.umd.js +23 -1
  11. package/dockinglayout/dockinglayout.d.ts +6 -0
  12. package/dockinglayout/dockinglayout.esm.js +15 -0
  13. package/dockinglayout/dockinglayout.umd.js +15 -0
  14. package/grid/grid.d.ts +16 -1
  15. package/grid/grid.esm.js +29 -0
  16. package/grid/grid.umd.js +29 -0
  17. package/index.d.ts +225 -7
  18. package/kanban/kanban.d.ts +26 -1
  19. package/kanban/kanban.esm.js +56 -1
  20. package/kanban/kanban.umd.js +56 -1
  21. package/layout/dockinglayout.d.ts +6 -0
  22. package/multilinewindow/multilinewindow.d.ts +10 -0
  23. package/multilinewindow/multilinewindow.esm.js +23 -1
  24. package/multilinewindow/multilinewindow.umd.js +23 -1
  25. package/package.json +1 -1
  26. package/progresswindow/progresswindow.d.ts +10 -0
  27. package/progresswindow/progresswindow.esm.js +23 -1
  28. package/progresswindow/progresswindow.umd.js +23 -1
  29. package/promptwindow/promptwindow.d.ts +10 -0
  30. package/promptwindow/promptwindow.esm.js +23 -1
  31. package/promptwindow/promptwindow.umd.js +23 -1
  32. package/qrcode/package.json +7 -0
  33. package/qrcode/qrcode.d.ts +141 -0
  34. package/qrcode/qrcode.esm.js +376 -0
  35. package/qrcode/qrcode.umd.js +387 -0
  36. package/source/modules/smart.accordion.js +1 -1
  37. package/source/modules/smart.array.js +1 -1
  38. package/source/modules/smart.barcode.js +2 -2
  39. package/source/modules/smart.breadcrumb.js +1 -1
  40. package/source/modules/smart.button.js +1 -1
  41. package/source/modules/smart.buttongroup.js +1 -1
  42. package/source/modules/smart.calendar.js +2 -2
  43. package/source/modules/smart.card.js +1 -1
  44. package/source/modules/smart.cardview.js +5 -5
  45. package/source/modules/smart.carousel.js +1 -1
  46. package/source/modules/smart.chart.js +2 -2
  47. package/source/modules/smart.checkbox.js +1 -1
  48. package/source/modules/smart.checkinput.js +1 -1
  49. package/source/modules/smart.chip.js +1 -1
  50. package/source/modules/smart.colorinput.js +1 -1
  51. package/source/modules/smart.colorpanel.js +1 -1
  52. package/source/modules/smart.colorpicker.js +1 -1
  53. package/source/modules/smart.combobox.js +1 -1
  54. package/source/modules/smart.common.js +3 -3
  55. package/source/modules/smart.countryinput.js +1 -1
  56. package/source/modules/smart.dateinput.js +3 -3
  57. package/source/modules/smart.daterangeinput.js +3 -3
  58. package/source/modules/smart.datetimepicker.js +3 -3
  59. package/source/modules/smart.dockinglayout.js +4 -4
  60. package/source/modules/smart.dropdownbutton.js +1 -1
  61. package/source/modules/smart.dropdownlist.js +1 -1
  62. package/source/modules/smart.editor.js +3 -3
  63. package/source/modules/smart.element.js +1 -1
  64. package/source/modules/smart.fileupload.js +1 -1
  65. package/source/modules/smart.form.js +1 -1
  66. package/source/modules/smart.formulaparser.js +1 -1
  67. package/source/modules/smart.ganttchart.js +7 -7
  68. package/source/modules/smart.gauge.js +2 -2
  69. package/source/modules/smart.grid.js +16 -16
  70. package/source/modules/smart.gridpanel.js +5 -5
  71. package/source/modules/smart.input.js +1 -1
  72. package/source/modules/smart.kanban.js +6 -6
  73. package/source/modules/smart.layout.js +1 -1
  74. package/source/modules/smart.led.js +1 -1
  75. package/source/modules/smart.listbox.js +1 -1
  76. package/source/modules/smart.listmenu.js +1 -1
  77. package/source/modules/smart.map.js +1 -1
  78. package/source/modules/smart.maskedtextbox.js +1 -1
  79. package/source/modules/smart.menu.js +1 -1
  80. package/source/modules/smart.multicomboinput.js +1 -1
  81. package/source/modules/smart.multiinput.js +1 -1
  82. package/source/modules/smart.multilinetextbox.js +1 -1
  83. package/source/modules/smart.multisplitbutton.js +1 -1
  84. package/source/modules/smart.numberinput.js +1 -1
  85. package/source/modules/smart.numerictextbox.js +1 -1
  86. package/source/modules/smart.pager.js +1 -1
  87. package/source/modules/smart.passwordinput.js +1 -1
  88. package/source/modules/smart.passwordtextbox.js +1 -1
  89. package/source/modules/smart.path.js +1 -1
  90. package/source/modules/smart.phoneinput.js +1 -1
  91. package/source/modules/smart.pivottable.js +6 -6
  92. package/source/modules/smart.progressbar.js +1 -1
  93. package/source/modules/smart.qrcode.js +117 -0
  94. package/source/modules/smart.querybuilder.js +3 -3
  95. package/source/modules/smart.radiobutton.js +1 -1
  96. package/source/modules/smart.rating.js +1 -1
  97. package/source/modules/smart.router.js +2 -2
  98. package/source/modules/smart.scheduler.js +5 -5
  99. package/source/modules/smart.scrollbar.js +1 -1
  100. package/source/modules/smart.slider.js +2 -2
  101. package/source/modules/smart.sortable.js +1 -1
  102. package/source/modules/smart.splitter.js +1 -1
  103. package/source/modules/smart.switchbutton.js +1 -1
  104. package/source/modules/smart.table.js +5 -5
  105. package/source/modules/smart.tabs.js +2 -2
  106. package/source/modules/smart.tank.js +2 -2
  107. package/source/modules/smart.textarea.js +1 -1
  108. package/source/modules/smart.textbox.js +1 -1
  109. package/source/modules/smart.timeinput.js +1 -1
  110. package/source/modules/smart.timepicker.js +1 -1
  111. package/source/modules/smart.toast.js +1 -1
  112. package/source/modules/smart.tooltip.js +1 -1
  113. package/source/modules/smart.tree.js +2 -2
  114. package/source/modules/smart.validator.js +1 -1
  115. package/source/modules/smart.window.js +2 -2
  116. package/source/smart.accordion.js +1 -1
  117. package/source/smart.ajax.js +1 -1
  118. package/source/smart.array.js +1 -1
  119. package/source/smart.barcode.js +2 -2
  120. package/source/smart.bootstrap.js +1 -1
  121. package/source/smart.breadcrumb.js +1 -1
  122. package/source/smart.button.js +1 -1
  123. package/source/smart.buttongroup.js +1 -1
  124. package/source/smart.calendar.js +1 -1
  125. package/source/smart.card.js +1 -1
  126. package/source/smart.cardview.js +1 -1
  127. package/source/smart.carousel.js +1 -1
  128. package/source/smart.chart.annotations.js +1 -1
  129. package/source/smart.chart.api.js +1 -1
  130. package/source/smart.chart.core.js +1 -1
  131. package/source/smart.chart.js +1 -1
  132. package/source/smart.chart.rangeselector.js +1 -1
  133. package/source/smart.chart.waterfall.js +1 -1
  134. package/source/smart.checkbox.js +1 -1
  135. package/source/smart.checkinput.js +1 -1
  136. package/source/smart.chip.js +1 -1
  137. package/source/smart.colorinput.js +1 -1
  138. package/source/smart.colorpanel.js +1 -1
  139. package/source/smart.colorpicker.js +1 -1
  140. package/source/smart.combobox.js +1 -1
  141. package/source/smart.complex.js +1 -1
  142. package/source/smart.core.js +1 -1
  143. package/source/smart.countryinput.js +1 -1
  144. package/source/smart.data.js +2 -2
  145. package/source/smart.date.js +2 -2
  146. package/source/smart.dateformatpanel.js +1 -1
  147. package/source/smart.dateinput.js +2 -2
  148. package/source/smart.daterangeinput.js +1 -1
  149. package/source/smart.datetimepicker.js +2 -2
  150. package/source/smart.dockinglayout.js +2 -2
  151. package/source/smart.draw.js +1 -1
  152. package/source/smart.dropdownbutton.js +1 -1
  153. package/source/smart.dropdownlist.js +1 -1
  154. package/source/smart.editor.js +2 -2
  155. package/source/smart.element.js +1 -1
  156. package/source/smart.elements.js +21 -21
  157. package/source/smart.export.js +1 -1
  158. package/source/smart.fileupload.js +1 -1
  159. package/source/smart.filter.js +1 -1
  160. package/source/smart.filterbuilder.js +1 -1
  161. package/source/smart.filterpanel.js +1 -1
  162. package/source/smart.form.js +1 -1
  163. package/source/smart.format.js +1 -1
  164. package/source/smart.formulaparser.js +1 -1
  165. package/source/smart.ganttchart.js +1 -1
  166. package/source/smart.gauge.js +1 -1
  167. package/source/smart.grid.cell.js +2 -2
  168. package/source/smart.grid.chart.js +1 -1
  169. package/source/smart.grid.column.js +2 -2
  170. package/source/smart.grid.core.js +2 -2
  171. package/source/smart.grid.dialog.js +2 -2
  172. package/source/smart.grid.edit.js +2 -2
  173. package/source/smart.grid.export.js +1 -1
  174. package/source/smart.grid.filter.js +2 -2
  175. package/source/smart.grid.group.js +1 -1
  176. package/source/smart.grid.js +1 -1
  177. package/source/smart.grid.menu.js +1 -1
  178. package/source/smart.grid.pager.js +1 -1
  179. package/source/smart.grid.reorder.js +2 -2
  180. package/source/smart.grid.resize.js +1 -1
  181. package/source/smart.grid.row.js +1 -1
  182. package/source/smart.grid.select.js +2 -2
  183. package/source/smart.grid.sort.js +2 -2
  184. package/source/smart.grid.toolbar.js +1 -1
  185. package/source/smart.grid.tree.js +1 -1
  186. package/source/smart.grid.view.js +2 -2
  187. package/source/smart.gridpanel.js +1 -1
  188. package/source/smart.input.js +1 -1
  189. package/source/smart.kanban.js +2 -2
  190. package/source/smart.layout.js +1 -1
  191. package/source/smart.led.js +1 -1
  192. package/source/smart.listbox.js +1 -1
  193. package/source/smart.listmenu.js +1 -1
  194. package/source/smart.map.js +1 -1
  195. package/source/smart.maskedtextbox.js +1 -1
  196. package/source/smart.math.js +1 -1
  197. package/source/smart.menu.js +1 -1
  198. package/source/smart.multicomboinput.js +1 -1
  199. package/source/smart.multiinput.js +1 -1
  200. package/source/smart.multilinetextbox.js +1 -1
  201. package/source/smart.multisplitbutton.js +1 -1
  202. package/source/smart.numberformatpanel.js +1 -1
  203. package/source/smart.numberinput.js +1 -1
  204. package/source/smart.numeric.js +1 -1
  205. package/source/smart.numerictextbox.js +1 -1
  206. package/source/smart.pager.js +1 -1
  207. package/source/smart.passwordinput.js +1 -1
  208. package/source/smart.passwordtextbox.js +1 -1
  209. package/source/smart.path.js +1 -1
  210. package/source/smart.phoneinput.js +1 -1
  211. package/source/smart.pivottable.js +1 -1
  212. package/source/smart.powerbutton.js +1 -1
  213. package/source/smart.progressbar.js +1 -1
  214. package/source/smart.qrcode.js +6 -0
  215. package/source/smart.radiobutton.js +1 -1
  216. package/source/smart.rating.js +1 -1
  217. package/source/smart.router.js +1 -1
  218. package/source/smart.scheduler.js +1 -1
  219. package/source/smart.scrollbar.js +1 -1
  220. package/source/smart.slider.js +1 -1
  221. package/source/smart.sortable.js +1 -1
  222. package/source/smart.splitter.js +1 -1
  223. package/source/smart.switchbutton.js +1 -1
  224. package/source/smart.table.js +2 -2
  225. package/source/smart.tabs.js +2 -2
  226. package/source/smart.tank.js +1 -1
  227. package/source/smart.textarea.js +1 -1
  228. package/source/smart.textbox.js +1 -1
  229. package/source/smart.tickintervalhandler.js +1 -1
  230. package/source/smart.timeinput.js +1 -1
  231. package/source/smart.timepicker.js +1 -1
  232. package/source/smart.toast.js +1 -1
  233. package/source/smart.tooltip.js +1 -1
  234. package/source/smart.tree.js +2 -2
  235. package/source/smart.validationpanel.js +1 -1
  236. package/source/smart.validator.js +1 -1
  237. package/source/smart.window.js +2 -2
  238. package/source/styles/components/smart.base.css +1 -1
  239. package/source/styles/components/smart.grid.css +1 -1
  240. package/source/styles/components/smart.kanban.css +1 -1
  241. package/source/styles/default/scss/smart.grid.scss +13 -17
  242. package/source/styles/default/scss/smart.kanban.scss +289 -233
  243. package/source/styles/default/scss/smart.qrcode.scss +6 -0
  244. package/source/styles/default/smart.grid.css +15 -16
  245. package/source/styles/default/smart.kanban.css +247 -200
  246. package/source/styles/default/smart.qrcode.css +6 -0
  247. package/source/styles/default/smart.variables.css +2 -2
  248. package/source/styles/smart.default.css +3 -3
  249. package/source/typescript/smart.barcode.d.ts +4 -2
  250. package/source/typescript/smart.datetimepicker.d.ts +10 -0
  251. package/source/typescript/smart.dockinglayout.d.ts +7 -0
  252. package/source/typescript/smart.elements.d.ts +225 -7
  253. package/source/typescript/smart.grid.d.ts +18 -1
  254. package/source/typescript/smart.kanban.d.ts +27 -2
  255. package/source/typescript/smart.qrcode.d.ts +134 -0
  256. package/source/typescript/smart.tree.d.ts +17 -2
  257. package/source/typescript/smart.window.d.ts +10 -0
  258. package/tabs/tabswindow.d.ts +10 -0
  259. package/tabswindow/tabswindow.d.ts +10 -0
  260. package/tabswindow/tabswindow.esm.js +23 -1
  261. package/tabswindow/tabswindow.umd.js +23 -1
  262. package/timepicker/datetimepicker.d.ts +8 -0
  263. package/tree/tree.d.ts +14 -2
  264. package/tree/tree.esm.js +45 -2
  265. package/tree/tree.umd.js +45 -2
  266. package/waitwindow/waitwindow.d.ts +10 -0
  267. package/waitwindow/waitwindow.esm.js +23 -1
  268. package/waitwindow/waitwindow.umd.js +23 -1
  269. package/window/alertwindow.d.ts +10 -0
  270. package/window/dialogwindow.d.ts +10 -0
  271. package/window/multilinewindow.d.ts +10 -0
  272. package/window/progresswindow.d.ts +10 -0
  273. package/window/promptwindow.d.ts +10 -0
  274. package/window/tabswindow.d.ts +10 -0
  275. package/window/waitwindow.d.ts +10 -0
  276. package/window/window.d.ts +10 -0
  277. package/window/window.esm.js +23 -1
  278. package/window/window.umd.js +23 -1
@@ -17,7 +17,7 @@ Smart("smart-button",class extends Smart.ContentElement{static get properties(){
17
17
  /***/ 6621:
18
18
  /***/ (() => {
19
19
 
20
- 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)}}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")}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.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;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),t?i._insert(-1,e,t?"layout-"+t:void 0):i.appendChild(e)));if(!(i.shadowRoot||i).contains(e))return;const o=e.closest("smart-splitter-item"),s=e.closest("smart-splitter"),n=!o.nextElementSibling;t||(t="horizontal"===s.orientation?n?"bottom":"top":n?"right":"left"),0===e.items.length&&o.closest("smart-splitter").removeChild(o),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",i.$.autoHideWindow.close(),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.$.autoHideWindow._tabsWindow:(i=document.createElement("smart-tabs-window"),i.draggable=!0,i.min=30,i.layout=t),i.style.width=e.width+"px",i.style.height=e.height+"px",i.style.left=e.left+"px",i.style.top=e.top+"px",i.setAttribute("ontop",""),t._dragDetails.windowFeedback=i,t.$.autoHideWindow.$.addClass("no-transition"),t.$.autoHideWindow.close(),t.$.autoHideWindow.$.removeClass("no-transition")}if(t._setDragDetailsOnMove(i),t.$.autoHideWindow.close(),t._dragDetails.windowFeedback.classList.contains("smart-tabs-window-feedback")){if(t._dragDetails._parentInfo||(t._dragDetails._parentInfo={closestItem:n,position:t._originalTabIndex||t._dragDetails.selectedTabLabel.tab.index},t._originalTabIndex=void 0),t.getShadowRootOrBody().contains(t._dragDetails.windowFeedback)||t.getShadowRootOrBody().appendChild(t._dragDetails.windowFeedback),t._dragDetails.selectedItem){const e=t._dragDetails.selectedItem.closest("smart-splitter");!t._dragDetails.windowFeedback.size&&e&&(t._dragDetails.windowFeedback.size=t._dragDetails.selectedTabsWindow[e._measurements.size])}}else t._handleWindowOnDrag();t._dragDetails.selectedTabLabel.classList.contains("smart-header-section")||t._dragDetails.windowFeedback.setAttribute("tabs-window-dragged",""),(t._dragDetails.windowFeedback.hasAttribute("tabs-window-dragged")||t._dragDetails.selectedTabsWindow===t.$.autoHideWindow||t._dragDetails._parentInfo&&"string"==typeof t._dragDetails._parentInfo.position)&&(t._dragDetails.windowFeedback.style.left=e.pageX-t._dragDetails.offset.x+"px",t._dragDetails.windowFeedback.style.top=e.pageY-t._dragDetails.offset.y+"px",t._setWindowFeedbackSize()),t._dragDetails.windowFeedback.opened=!0,document.activeElement!==t&&(t.focus(),window.scrollTo(o,s));let d=t._dragDetails.hoveredTabsWindow?i.closest(".smart-tabs-header-section"):void 0;d||!t.shadowRoot&&!t.isInShadowDOM||(d=t._getClosestElement(".smart-tabs-header-section",i)),t._dragDetails.hoveredTabArea=d||(t._dragDetails.hoveredTabsWindow&&i.closest(".smart-tabs-content-section")?t._dragDetails.hoveredTabsWindow.$.tabsElement.$.tabContentSection:t._dragDetails.hoveredTabsWindow),t.shadowRoot&&t._dragDetails.selectedTabsWindow===t._dragDetails.windowFeedback&&requestAnimationFrame((()=>{t._dragDetails&&t._dragDetails.windowFeedback.refreshTabHeader()})),t._setSnappingMarkers(e,d)}_setDragDetailsOnMove(e){const t=this;let i;if(!t.hasAttribute("dragged")){t._originalBodyOverflow={overflowX:document.body.style.overflowX,overflowY:document.body.style.overflowY,overflow:document.body.style.overflow};const e=(document.scrollingElement||document.documentElement).scrollHeight>document.documentElement.clientHeight,a=(document.scrollingElement||document.documentElement).scrollWidth>document.documentElement.clientWidth;let o=t._dragDetails.selectedTabsWindow;if(document.body.style.overflow=document.body.style.overflowX=document.body.style.overflowY="",e&&!a?document.body.style.overflowX="hidden":a&&!e?document.body.style.overflowY="hidden":a||e||(document.body.style.overflow="hidden"),t._dragDetails.windowFeedback.$.hasClass("smart-tabs-window-feedback")||o===t.$.autoHideWindow){const e=t._dragDetails.selectedTabLabel.tab||t.$.autoHideWindow._tab;let i=t.$.tabsWindowFeedback;o===t.$.autoHideWindow&&(o=t.$.autoHideWindow._tabsWindow,i=t._dragDetails.windowFeedback,i.label=e.label,i.draggable=e.draggable,i.floatable=e.floatable),Smart.Utilities.Core.isMobile&&navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform)&&(t._dragDetails.selectedTabLabel._lazyRemove=!0),e.parentElement&&(o.removeChild(e),t._dragDetails.selectedItem&&!t._dragDetails.selectedItem.style.width&&t._dragDetails.selectedItem.closest("smart-splitter").refresh()),t._originalTabIndex=e.index,i.appendChild(e);const a=t._dragDetails.selectedTabsWindow;if(a===t.$.autoHideWindow)a._tabsWindow.items.length>1&&(i.tabPosition=a.tabPosition,i.tabTextOrientation=a._originalTextOrientation||a.tabTextOrientation);else{const e=a.autoHide;i.tabPosition=a._originalTabPosition||(e?"top":a.tabPosition),i.tabTextOrientation=a._originalTextOrientation||(e?"horizontal":a.tabTextOrientation)}if(e._autoHideWindowSize)i.size=e._autoHideWindowSize;else if(o.autoHide){const e="offset"+("top"===o.tabPosition||"bottom"===o.tabPosition?"Height":"Width");i.size=(o._autoHideWindow||o)[e]}}i=t._dragDetails.selectedTabsWindow.closest("smart-docking-layout"),!i&&t.shadowRoot&&(i=t._getClosestDockingLayout(t._dragDetails.selectedTabsWindow)),i||t._dragDetails.windowFeedback._originalPinnedState||(t._dragDetails.windowFeedback._originalPinnedState=t._dragDetails.windowFeedback.pinned),t._dragDetails.windowFeedback.pinned=!1,t.setAttribute("dragged","")}t._dragDetails.hoveredItem=e.closest("smart-splitter-item"),t._dragDetails.hoveredItem||!t.shadowRoot&&!t.isInShadowDOM||(t._dragDetails.hoveredItem=t._getClosestElement("smart-splitter-item",e)),t._dragDetails.hoveredItem?(i=t._dragDetails.hoveredItem.closest("smart-docking-layout"),!i&&t.shadowRoot&&(i=t._getClosestDockingLayout(t._dragDetails.hoveredItem)),i&&i===t?t._dragDetails.hoveredTabsWindow=t._dragDetails.hoveredItem.querySelector("smart-tabs-window"):t._dragDetails.hoveredItem=t._dragDetails.hoveredTabsWindow=void 0):t._dragDetails.hoveredTabsWindow=e.closest("smart-tabs-window")||(e.getRootNode()&&e.getRootNode().host?e.getRootNode().host.closest("smart-tabs-window"):void 0),t._dragDetails.hoveredTabsWindow&&(i=t._dragDetails.hoveredTabsWindow.closest("smart-docking-layout"),!i&&t.shadowRoot&&(i=t._getClosestDockingLayout(t._dragDetails.hoveredTabsWindow)),i&&i!==t?t._dragDetails.hoveredTabsWindow=void 0:t._dragDetails.hoveredTabsWindow.bringToFront())}_documentDragStartHandler(e){const t=this;(t.contains(e.target)||t.contains(e.composedPath()[0])||"simple"===t.snapMode&&t._dragDetails&&t._dragDetails.selectedTabLabel)&&e.preventDefault()}_documentSelectStartHandler(e){this._dragDetails&&this._dragDetails.started&&e.preventDefault()}_documentUpHandler(e){const t=this,i=e.originalEvent||e,a=i.target.getRootNode().host?i.composedPath()[0]:i.target;if(!t._dragDetails||t._dragDetails&&!t._dragDetails.started||t.disabled)return void delete t._dragDetails;t._noStateChangeFiring=!0,t.removeAttribute("dragged"),t._dragDetails.windowFeedback.removeAttribute("tabs-window-dragged"),t._dragDetails.windowFeedback.removeAttribute("ontop");let o=a.closest&&a.closest("smart-docking-layout");o||!t.shadowRoot&&!t.isInShadowDOM||(o=t._getClosestDockingLayout(a)),e.ctrlKey&&(t._snapFeedback._position=o=void 0);const s=t._snapFeedback?t._snapFeedback._position:void 0;if(!o&&!s||o&&!t._dragDetails.hoveredTabArea&&!s)t._dropWindowOutsideLayout(e,s,o);else if(t._dragDetails.hoveredTabsWindow&&s){if(t._dragDetails.hoveredTabArea&&t._dragDetails.hoveredTabArea.classList.contains("smart-tabs-header-section")){let e,i,o,s=t._dragDetails.hoveredTabsWindow.itemLabels.length,n=a.closest(".smart-tab-label-container");if(n&&!n.$.hasClass("smart-add-new-tab")&&n.tab||(n=t._dragDetails.hoveredTabsWindow.itemLabels[s-1],e=!0),i=t._dragDetails.selectedTabLabel.$.hasClass("smart-tab-label-container")&&t._dragDetails.windowFeedback.$.hasClass("smart-tabs-window-feedback")?[t._dragDetails.selectedTabLabel.tab]:[].slice.call(t._dragDetails.windowFeedback.items),t._dragDetails.hoveredTabsWindow.autoHide){const e=t._dragDetails.hoveredTabsWindow.tabPosition;o=t._dragDetails.windowFeedback["offset"+("top"===e||"bottom"===e?"Height":"Width")]}for(let a=0;a<i.length;a++)i[a]._autoHideWindowSize=o||t._dragDetails.windowFeedback.size,t._dragDetails.windowFeedback.removeChild(i[a]),t._dragDetails.hoveredTabsWindow.insert(e?s:n.tab.index,{node:i[a]}),s=t._dragDetails.hoveredTabsWindow.items.length;t._dragDetails.targetWindow=t._dragDetails.hoveredTabsWindow}else t._dragDetails.targetWindow=t._handleItemNesting(),t._eventAlreadyFired=!0;t.$.autoHideWindow.close(),t._noStateChangeFiring=!1}if(t.shadowRoot||t.isInShadowDOM){const e=t._dragDetails.targetWindow;setTimeout((()=>e.refreshTabHeader()),100)}t._endDrag()}_dropWindowOutsideLayout(e,t,i){const a=this;let o;if(a.floatable&&(void 0===a._dragDetails.windowFeedback.floatable||a._dragDetails.windowFeedback.floatable)){if(a._dragDetails.windowFeedback.classList.contains("smart-tabs-window-feedback")){const t=a._dragDetails.windowFeedback.items[0];if(t&&void 0!==t.floatable&&!t.floatable)return void a._cancelDragOperation(!0);const i=a._dragDetails.selectedTabLabel.tab;let s=document.createElement("smart-tabs-window");s.opened=!0,s.animation=a.animation,s.rightToLeft=a.rightToLeft,s.theme=a.theme,s.label=i.label,a._dragDetails.windowFeedback.removeChild(i),a._dragDetails.selectedTabLabel.tab.$.removeClass("smart-visibility-hidden"),s.appendChild(a._dragDetails.selectedTabLabel.tab),s.style.left=e.pageX+"px",s.style.top=e.pageY+"px",s.style.maxWidth=s.style.maxHeight="",s.resizeMode=a._dragDetails.selectedTabsWindow.resizeMode,s.tabCloseButtons=a._dragDetails.selectedTabsWindow.tabCloseButtons,s.tabTextOrientation=a._dragDetails.windowFeedback.tabTextOrientation,s.tabPosition=a._dragDetails.windowFeedback.tabPosition,s.min=30,s.style.width=a._dragDetails.windowFeedback.style.width,s.style.height=a._dragDetails.windowFeedback.style.height,s.draggable=void 0===i.draggable||i.draggable,s.floatable=void 0===i.floatable||i.floatable,a.getShadowRootOrBody().appendChild(s),s.pinned=s.autoHide=s.allowToggle=!1,a._noStateChangeFiring=!1,o=s}else a._dragDetails._parentInfo&&a._dragDetails._parentInfo.closestItem?(a._dragDetails.windowFeedback.parentElement!==a.getShadowRootOrBody()&&(a._dragDetails.windowFeedback.windowParent="body",a.getShadowRootOrBody().appendChild(a._dragDetails.windowFeedback)),a._dragDetails.windowFeedback.style.maxWidth=a._dragDetails.windowFeedback.style.maxHeight="",a._dragDetails.windowFeedback.pinned=a._dragDetails.windowFeedback.allowToggle=a._dragDetails.windowFeedback.autoHide=!1,a._dragDetails.selectedTabLabel.$.hasClass("smart-tab-label-container")&&(a._dragDetails.windowFeedback.label=a._dragDetails.selectedTabLabel.tab.label)):t||a._dragDetails.selectedItem instanceof Smart.SplitterItem||!a._dragDetails.selectedTabLabel.$.hasClass("smart-tab-label-container")||a._returnItemToOrigin(a._dragDetails.windowFeedback),o=a._dragDetails.windowFeedback,o.locked=!1,a._dragDetails.selectedItem&&(a._noStateChangeFiring=!1);a.$.autoHideWindow.close(),i||(a._dragDetails.windowFeedback.pinned=!1),a._validateWindowPosition(o),a._dragDetails._parentInfo&&(o._parentInfo={closestItem:a._dragDetails._parentInfo.closestItem,position:a._dragDetails._parentInfo.position}),o.layout=a,a._dragDetails.targetWindow=o,o.resizeMode="both",a._setFloatingItemsHeaderButtons(o),a._ownTabWindow(o)}else a._cancelDragOperation(!0)}_endDrag(){const e=this,t=e._dragDetails,i=e._dragDetails.windowFeedback;if(e.$.tabsWindowFeedback.close(),t.isInsideTheLayout&&0===i.$.tabsElement._tabs.length&&!i.$.hasClass("smart-tabs-window-feedback")&&i.remove(),(e.shadowRoot||e).contains(e._dragDetails.windowFeedback)||void 0===e._dragDetails.windowFeedback._originalPinnedState||(e._dragDetails.windowFeedback.pinned=e._dragDetails.windowFeedback._originalPinnedState,delete e._dragDetails.windowFeedback._originalPinnedState),e._originalBodyOverflow&&(document.body.style.overflow=e._originalBodyOverflow.overflow,document.body.style.overflowX=e._originalBodyOverflow.overflowX,document.body.style.overflowY=e._originalBodyOverflow.overflowY,delete e._originalBodyOverflow),e._dragDetails.targetWindow?(e._dragDetails.targetWindow.focus(),e._dragDetails.selectedTabsWindow&&e._dragDetails.selectedTabsWindow.removeAttribute("active")):e._dragDetails.windowFeedback.bringToFront(),e._dragDetails.started=!1,e._dragDetails.hoveredItem=e._dragDetails.hoveredTabsWindow=e._dragDetails.isInsideTheLayout=void 0,i.removeAttribute("dragged"),e._handleSnapping(),e._dragDetails.selectedTabsWindow&&delete e._dragDetails.selectedTabsWindow._ownerLayout,0===i.items.length&&((e.shadowRoot||e).contains(i)&&(i.opened=!1),i.$.hasClass("smart-tabs-window-feedback")&&e.$.container.appendChild(i)),!e._eventAlreadyFired&&!e._noStateChangeFiring){e._handleAutoSave();let t={item:e._dragDetails.targetWindow};t.type=e._items.indexOf(e._dragDetails.targetWindow)>-1?"dock":"float",e.$.fireEvent("stateChange",t)}e._noStateChangeFiring=e._eventAlreadyFired=void 0,e._dragDetails._parentInfo&&e._dragDetails._parentInfo.closestItem&&e._removeUnneccessaryItems(e._dragDetails._parentInfo.closestItem.closest("smart-splitter"));let a=e._getClosestDockingLayout(i);if(i.closest("smart-docking-layout")||a)return i.style.top=i.style.left="",void delete e._dragDetails;i.top&&(i.style.top=i.top),i.left&&(i.style.left=i.left),e._dragDetails.selectedTabLabel&&e._dragDetails.selectedTabLabel._lazyRemove&&(e._dragDetails.selectedTabLabel&&e._dragDetails.selectedTabLabel.remove(),delete e._dragDetails.selectedTabLabel._lazyRemove),i._cancelDragging(),delete e._dragDetails}_getTabItemContent(e){const t=e.isCompleted?e.$.content:e,i=document.createDocumentFragment();for(;t.firstChild;)i.appendChild(t.firstChild);return i}_getHeaderLabelDimensions(e){const t=this;function i(e){if(!t._dragDetails)return clearInterval(t._scrollInterval),void(t._scrollInterval=void 0);o.scrollLeft+=e,a._updateScrollButtonVisibility(),a._positionTabSelectionBar(a._tabLabelContainers[a.selectedIndex],!0)}if(!t._dragDetails||!t._dragDetails.hoveredTabsWindow)return;const a=t._dragDetails.hoveredTabsWindow.$.tabsElement,o=a.$.tabStrip,s=o.getBoundingClientRect(),n="left"===a.tabPosition||"right"===a.tabPosition,d=t.rightToLeft&&Smart.Utilities.Core.Browser.Chrome?o.scrollLeft-(o.scrollWidth-o.offsetWidth):o.scrollLeft;let l=0,r=0;"horizontal"===a.tabTextOrientation?l=a.$.scrollButtonNear.offsetWidth:r=a.$.scrollButtonNear.offsetHeight,"top"!==a.tabPosition&&"bottom"!==a.tabPosition||(t._scrollInterval&&clearInterval(t._scrollInterval),t._scrollInterval=setInterval((function(){e&&(d||t.rightToLeft)&&e.clientX<=s.left+Math.max(l,20)?i(-1):e&&d!==(t.rightToLeft?0:o.scrollWidth)&&e.clientX>=s.left+s.width-Math.max(l,20)?i(1):(clearInterval(t._scrollInterval),t._scrollInterval=void 0)}),1));let m,c,g=0,p=0;if(t._dragDetails.hoveredTabArea)m=t._dragDetails.hoveredTabArea.offsetWidth,c=t._dragDetails.hoveredTabArea.offsetHeight,g=t._dragDetails.hoveredTabArea.offsetLeft,p=t._dragDetails.hoveredTabArea.offsetTop;else if(o.children.length>0){const e=a.$.tabStrip.children[a.$.tabStrip.children.length-1];g=e.offsetLeft+(t.rightToLeft?-1:1)*(n?0:e.offsetWidth),p=e.offsetTop+(n?e.offsetHeight:0),m=e.offsetWidth,c=e.offsetHeight}t._dragDetails.hoveredTabArea=a.$.tabsHeaderSection;const h=t._dragDetails.hoveredTabArea.getBoundingClientRect(),_=s.left-h.left+h.left+g-d-l,b=s.top-h.top+h.top+p-o.scrollTop-r,f=Math.min(g-d-l,0),u=Math.min(p-o.scrollTop-r,0);return{width:Math.min(s.width,Math.max(0,m+f),Math.max(0,s.left+s.width-_)),height:Math.min(s.height,Math.max(0,c+u),Math.max(0,s.top+s.height-b)),top:b+window.pageYOffset-u,left:_+window.pageXOffset-f}}_handleAutoSave(){this.autoSaveState&&this.saveState()}_handleAutoHiddenSplitterBars(){const e=this.$.itemsContainer.querySelectorAll(".auto-hide-left,.auto-hide-right, .auto-hide-top, .auto-hide-bottom");for(let t=0;t<e.length;t++)e[t].previousElementSibling instanceof Smart.SplitterBar?e[t].previousElementSibling.hide():e[t].nextElementSibling instanceof Smart.SplitterBar&&e[t].nextElementSibling.hide()}_handleItemPositionInserting(e,t,i){const a=this;e.autoHide||i.indexOf("layout")>-1?a._handleLayoutItemInserting(t,e,i):i.indexOf("outside-")>-1?a._handleOutsideItemInserting(t,e,i):(i.indexOf("inside-")>-1?a._handleInsideItemInserting(t,e,i):a._handleNormalItemInserting(t,e,i),a._handleAutoSave(),a.$.fireEvent("stateChange",{type:"dock",item:e}),a._setSplitterBarVisibility())}_handleInsideItemInserting(e,t,i){const a=this,o=document.createElement("smart-splitter-item"),s=document.createElement("smart-splitter-item");let n,d=e.closest("smart-splitter-item"),l=e.closest("smart-splitter"),r=a._items.indexOf(e);n=l&&1===l._items.length?l:document.createElement("smart-splitter"),n._isInShadowDOM=a.isInShadowDOM,n.autoFitMode="proportional",n.liveResize=a.liveResize,n.resizeStep=a.resizeStep,t.windowParent=null,o.appendChild(t),e.windowParent=null,i=i.replace("inside-",""),n.orientation="top"===i||"bottom"===i?"horizontal":"vertical";const m=d["horizontal"===n.orientation?"offsetHeight":"offsetWidth"]/2;if(n.parentElement?n.insertBefore(o,"top"===i||"left"===i?d:null):(s.appendChild(e),e.min&&(s.min=e.min),"top"===i||"left"===i?(n.appendChild(o),n.appendChild(s)):(n.appendChild(s),n.appendChild(o)),d.appendChild(n)),t.size){const e="string"==typeof t.size&&t.size.indexOf("%")>-1;o.size=e?t.size:Math.min(m,parseFloat(t.size))}o.max=t.max||"",o.min=t.min?t.min:30,o.locked=t.locked||!1,o.collapsible=t.collapsible||!1,o.collapsed=t.collapsed||!1,"bottom"!==i&&"right"!==i||(r=Math.min(r+1,a._items.length)),t.pinned=!0,t.autoHide=t.allowToggle=t.maximized=t.minimized=t.collapsed=!1,t._originalTabPosition?(t.tabPosition=t._originalTabPosition,delete t._originalTabPosition):t.tabPosition="top",t._originalTextOrientation?(t.tabTextOrientation=t._originalTextOrientation,delete t._originalTextOrientation):t.tabTextOrientation="horizontal",a._items.splice(r,0,t),a._handleAutoHiddenSplitterBars()}_handleLayoutItemInserting(e,t,i){const a=this,o=document.createElement("smart-splitter-item"),s="bottom"===i||"top"===i?"offsetHeight":"offsetWidth";if(t.size||(t.size=t[s]),i=i.replace("layout-",""),o.size=t.size||"",o.max=t.max||"",o.min=t.min||"",o.locked=t.locked||!1,o.collapsible=t.collapsible||!1,o.collapsed=t.collapsed||!1,o.size&&!a._dockingAutoHideTabItem&&(o.size=Math.min(a[s]/2,parseFloat(t.size))),("horizontal"!==a.$.itemsContainer.orientation||"right"!==i&&"left"!==i)&&("vertical"!==a.$.itemsContainer.orientation||"top"!==i&&"bottom"!==i)){const e=i.indexOf("left")>-1||i.indexOf("top")>-1?a._items.filter((e=>e.opened))[0]:void 0;return t.windowParent=null,o.appendChild(t),a.insertBefore(o,e,a.$.itemsContainer),!0}{let e,s=a.$.itemsContainer.orientation;const n=a.$.itemsContainer,d=[].slice.call(n._items),l=function(e,t){n.appendChild(e),n.insertBefore(t,"right"===i||"bottom"===i?null:e)};t.windowParent=null,o.appendChild(t),d.map((e=>e.size=e[n._measurements.size])),"right"===i||"bottom"===i?a._items.push(t):a._items.splice(0,0,t),n.removeAll(),n.orientation="top"===i||"bottom"===i?"horizontal":"vertical";const r=n[n._measurements.size]-o.size;if(d.length>1){const t=document.createElement("smart-splitter");t._isInShadowDOM=a.isInShadowDOM,t.autoFitMode="end",t.orientation=s,t.liveResize=a.liveResize,t.resizeStep=a.resizeStep,e=document.createElement("smart-splitter-item"),e.min=30,e.appendChild(t),e.size=r,l(e,o);for(let e=0;e<d.length;e++)t.appendChild(d[e]);t.autoFitMode="proportional"}else d[0].size=r,a._dockingAutoHideTabItem&&(n.autoFitMode="end"),l(d[0],o),n.autoFitMode="proportional";a._handleAutoHiddenSplitterBars(),a._handleAutoSave(),a.$.fireEvent("stateChange",{type:"dock",item:t}),a._setSplitterBarVisibility()}}_handleNormalItemInserting(e,t,i){let a=e.closest("smart-splitter-item");const o=this,s=e.closest("smart-splitter"),n=document.createElement("smart-splitter-item"),d="right"===i||"bottom"===i?s._items.indexOf(a)+1:s._items.indexOf(a);let l=o._items.indexOf(e);t.windowParent=null,n.appendChild(t),n.size=t.size||"",n.min=t.min||"",s.insert(d,n),"bottom"!==i&&"right"!==i||(l=Math.min(l+1,o._items.length)),t.pinned=!0,t.locked=!1,t.autoHide=t.allowToggle=t.maximized=t.minimized=t.collapsed=!1,t._originalTabPosition?(t.tabPosition=t._originalTabPosition,delete o._originalTabPosition):t.tabPosition="top",t._originalTextOrientation?(t.tabTextOrientation=t._originalTextOrientation,delete t._originalTextOrientation):t.tabTextOrientation="horizontal",o._items.splice(l,0,t),o._handleAutoHiddenSplitterBars()}_handleOutsideItemInserting(e,t,i){const a=this,o=document.createElement("smart-splitter-item");let s=e.closest("smart-splitter");if(s||(s=a.$.itemsContainer),o.size=t.size||"",o.max=t.max||"",o.min=t.min||"",o.locked=t.locked||!1,o.collapsible=t.collapsible||!1,o.collapsed=t.collapsed||!1,s===a.$.itemsContainer)return t.windowParent=null,o.appendChild(t),a.insertBefore(o,i.indexOf("left")>-1||i.indexOf("top")>-1?a._items[0]:void 0,a.$.itemsContainer),!0;{let n=s.closest("smart-splitter-item");const d=document.createElement("smart-splitter"),l=document.createElement("smart-splitter-item");if(d._isInShadowDOM=a.isInShadowDOM,i=i.replace("outside-",""),d.autoFitMode="proportional",d.liveResize=a.liveResize,d.resizeStep=a.resizeStep,t.windowParent=null,o.appendChild(t),l.min=30,l.appendChild(s),d.orientation="top"===i||"bottom"===i?"horizontal":"vertical",n.appendChild(d),"right"===i||"bottom"===i?(d.appendChild(l),d.appendChild(o),a._items.splice(a._items.indexOf(e)+1,0,t)):(d.appendChild(o),d.appendChild(l),a._items.splice(a._items.indexOf(e),0,t)),o.size){const e=o.size;o.size="",o.size=e}else o.size=d[d._measurements.size]/2;a._handleAutoHiddenSplitterBars(),a._handleAutoSave(),a.$.fireEvent("stateChange",{type:"dock",item:t}),a._setSplitterBarVisibility()}}refresh(){this._handleLayout()}_handleLayout(){const e=this;if(e._items=[],"string"==typeof e.layout&&(e.layout=JSON.parse(e.layout)),null!==e.layout&&Array.isArray(e.layout))return void e._createItemsFromArray(e.layout);const t=Array.from(e.$.itemsContainer.children);e.$.itemsContainer.innerHTML="";for(let i=0;i<t.length;i++){"Smart-TABS-WINDOW"!==t[i].tagName&&t[i].parentElement.removeChild(t[i]),t[i].layout=e;const a=document.createElement("smart-splitter-item");a.appendChild(t[i]),e.$.itemsContainer.appendChild(a),e._items.push(t[i])}}_handleSnapping(e,t){const i=this;"simple"===i.snapMode?i._handleSimpleSnapping(e,t):i._handleAdvancedSnapping(t)}_handleAdvancedSnapping(e){const t=this;if(!t._dragDetails)return;if(t._snapFeedback&&!t._dragDetails.hoveredTabsWindow&&(t._snapFeedback._position=void 0,t._snapFeedback.areaHighlighter&&t._snapFeedback.areaHighlighter.remove(),t._snapFeedback.headerHighlighter&&t._snapFeedback.headerHighlighter.remove(),!t._dragDetails.hoveredItem)){if(t._snapFeedback.innerSnapElement&&t._snapFeedback.innerSnapElement.remove(),t._snapFeedback.outherSnapElement&&!t._dragDetails.isInsideTheLayout){const e=[].slice.call(t.$.container.children);for(let i=0;i<e.length;i++)e[i].className.indexOf("smart-docking-layout-snap")>-1&&t._snapFeedback.outherSnapElement.appendChild(e[i])}return}if(t._snapFeedback||(t._snapFeedback={innerSnapElement:document.createElement("div"),outherSnapElement:document.createElement("div"),areaHighlighter:document.createElement("div"),headerHighlighter:document.createElement("div")},t._snapFeedback.innerSnapElement.classList.add("smart-docking-layout-snap"),t._snapFeedback.areaHighlighter.classList.add("smart-docking-layout-snap-highlighter"),t._snapFeedback.headerHighlighter.classList.add("smart-docking-layout-snap-highlighter-header"),t._snapFeedback.innerSnapElement.innerHTML='\n <div>\n <div class="top">\n <div><div></div></div>\n </div>\n </div>\n <div>\n <div class="left">\n <div><div></div></div>\n </div>\n <div class="center">\n <div><div></div></div>\n </div>\n <div class="right">\n <div><div></div></div>\n </div>\n </div>\n <div>\n <div class="bottom">\n <div><div></div></div>\n </div>\n </div>',t._snapFeedback.outherSnapElement.innerHTML='\n <div class="smart-docking-layout-snap layout-top">\n <div><div></div></div>\n </div>\n <div class="smart-docking-layout-snap layout-left">\n <div><div></div></div>\n </div>\n <div class="smart-docking-layout-snap layout-right">\n <div><div></div></div>\n </div>\n <div class="smart-docking-layout-snap layout-bottom">\n <div><div></div></div>\n </div>'),t._snapFeedback.areaHighlighter.parentElement&&(t._snapFeedback.areaHighlighter.removeAttribute("position"),t._snapFeedback.areaHighlighter.classList.remove("smart-hidden")),t._snapFeedback.areaHighlighter.style.width="",t._snapFeedback.areaHighlighter.style.height="",t._snapFeedback._position=!t._dragDetails.hoveredItem||t._dragDetails.hoveredItem instanceof Smart.SplitterItem?"":t._dragDetails.hoveredItem.className,t._dragDetails.hoveredItem&&t._dragDetails.hoveredItem.className.indexOf("layout-")>-1){t._snapFeedback._position=t._snapFeedback._position.replace("smart-docking-layout-snap ",""),t._snapFeedback.areaHighlighter.setAttribute("position",t._snapFeedback._position);const e=t._dragDetails.selectedTabsWindow;return void(e.dropPosition.indexOf("all")>-1||e.dropPosition.indexOf(t._snapFeedback._position)>-1?(t._dragDetails.hoveredItem.setAttribute("show",""),t.$.container.appendChild(t._snapFeedback.areaHighlighter),t._dragDetails.hoveredTabsWindow=!0,["layout-left","layout-right"].indexOf(t._snapFeedback._position)>-1?t._snapFeedback.areaHighlighter.style.width=t._dragDetails.windowFeedback.style.width||t._dragDetails.windowFeedback.offsetWidth+"px":["layout-top","layout-bottom"].indexOf(t._snapFeedback._position)>-1&&(t._snapFeedback.areaHighlighter.style.height=t._dragDetails.windowFeedback.style.height||t._dragDetails.windowFeedback.offsetHeight+"px")):(t._dragDetails.hoveredItem.removeAttribute("show"),t._snapFeedback._position=void 0))}let i=t._dragDetails.hoveredTabsWindow?t._dragDetails.hoveredTabsWindow.dropPosition:["all"];if(0===i.length&&(i=["all"]),t._dragDetails.hoveredTabsWindow instanceof Smart.TabsWindow&&t._dragDetails.hoveredTabArea&&t._dragDetails.hoveredTabArea.closest(".smart-tabs-header-section")&&(i.indexOf("all")>-1||i.indexOf("header")>-1)){t._dragDetails.hoveredTabArea=t._dragDetails.hoveredTabArea.classList.contains("smart-tab-label-container")?t._dragDetails.hoveredTabArea:void 0;const i=t._getHeaderLabelDimensions(e),a=t._snapFeedback.headerHighlighter;a.style.width=i.width+"px",a.style.height=i.height+"px",a.style.top=i.top+"px",a.style.left=i.left+"px",a.classList.remove("smart-hidden"),t.getShadowRootOrBody().contains(a)||t.getShadowRootOrBody().appendChild(a),t._snapFeedback._position="header"}else t._scrollInterval&&(clearInterval(t._scrollInterval),t._scrollInterval=void 0),t._snapFeedback.headerHighlighter.style.width=t._snapFeedback.headerHighlighter.style.height=0;const a=t._snapFeedback.innerSnapElement.closest("smart-splitter-item");if(t._dragDetails.hoveredItem instanceof Smart.SplitterItem){if(a&&t._dragDetails.hoveredItem!==a&&a.removeChild(t._snapFeedback.innerSnapElement),t._dragDetails.hoveredItem.className.indexOf("auto-hide")<0){const e=t._snapFeedback.innerSnapElement.querySelectorAll(".top, .bottom, .left, .right, .center");for(let t=0;t<e.length;t++)i.indexOf(e[t].className)>-1||0===i.indexOf("all")?e[t].setAttribute("show",""):e[t].removeAttribute("show");t._snapFeedback.innerSnapElement.classList.remove("smart-hidden"),t._dragDetails.hoveredItem.contains(t._snapFeedback.innerSnapElement)||t._dragDetails.hoveredItem.appendChild(t._snapFeedback.innerSnapElement)}const e=[].slice.call(t._snapFeedback.outherSnapElement.children),o=t._dragDetails.selectedTabsWindow;let s;for(let i=0;i<e.length;i++)s=e[i].className.replace("smart-docking-layout-snap ",""),e[i].classList.remove("smart-hidden"),o.dropPosition.indexOf("all")>-1||o.dropPosition.indexOf(s)>-1?e[i].setAttribute("show",""):e[i].removeAttribute("show"),t.$.container.appendChild(e[i])}if(!t._snapFeedback._position||i.indexOf("all")<0&&i.indexOf(t._snapFeedback._position)<0)t._snapFeedback._position=t._dragDetails.hoveredTabArea=void 0;else if("center"===t._snapFeedback._position&&t._items.filter((e=>e.opened)).length>0&&(t._dragDetails.hoveredTabArea=t._dragDetails.hoveredTabsWindow.$.tabsElement.$.tabsHeaderSection),["left","right"].indexOf(t._snapFeedback._position)>-1?t._snapFeedback.areaHighlighter.style.width=t._dragDetails.windowFeedback.style.width||t._dragDetails.windowFeedback.offsetWidth+"px":["top","bottom"].indexOf(t._snapFeedback._position)>-1&&(t._snapFeedback.areaHighlighter.style.height=t._dragDetails.windowFeedback.style.height||t._dragDetails.windowFeedback.offsetHeight+"px"),t._snapFeedback.areaHighlighter.setAttribute("position",t._snapFeedback._position),"header"===t._snapFeedback._position)t._dragDetails.hoveredTabsWindow.$.tabsElement.$.tabContentSection.appendChild(t._snapFeedback.areaHighlighter);else{const e=t._dragDetails.hoveredTabsWindow.closest("smart-splitter").orientation;("left"!==t._snapFeedback._position&&"right"!==t._snapFeedback._position||"horizontal"!==e)&&("top"!==t._snapFeedback._position&&"bottom"!==t._snapFeedback._position||"vertical"!==e)||(t._snapFeedback._position="inside-"+t._snapFeedback._position),t._dragDetails.hoveredItem.closest("smart-splitter-item").appendChild(t._snapFeedback.areaHighlighter)}}_handleSimpleSnapping(e,t){const i=this;if(!e)return i._dragDetails&&(i._dragDetails.hoveredTabsWindow=i._dragDetails.hoveredTabArea=void 0),void(i._snapFeedback instanceof HTMLElement&&(i._snapFeedback._position=void 0,i.getShadowRootOrBody().contains(i._snapFeedback)&&i._snapFeedback.classList.add("smart-visibility-hidden")));i._snapFeedback||(i._snapFeedback=document.createElement("div"),i._snapFeedback.addEventListener("transitionend",(function(){i._snapFeedback.classList.contains("smart-visibility-hidden")&&i.getShadowRootOrBody().contains(i._snapFeedback)&&i._snapFeedback.remove()})));for(let e=0;e<i._snapFeedback.classList.length;e++)i._snapFeedback.classList[e].indexOf("smart-docking-snap-")>-1&&i._snapFeedback.classList.remove(i._snapFeedback.classList[e]);i._snapFeedback._position=e,e=e.replace("inside-",""),i._snapFeedback.classList.add("smart-docking-snap-"+e+"-feedback"),i._snapFeedback.classList.remove("smart-visibility-hidden");let a,o,s,n,d,l=0===e.indexOf("layout")?i._dragDetails.selectedTabsWindow.dropPosition:i._dragDetails.hoveredTabsWindow.dropPosition;0===l.length&&(l=["all"]),l.indexOf("all")>-1||l.indexOf(e)>-1?i._snapFeedback.removeAttribute("disabled"):(i._snapFeedback.setAttribute("disabled",""),i._snapFeedback._position=void 0);const r=i.getBoundingClientRect(),m=getComputedStyle(i._dragDetails.hoveredTabsWindow.$.contentSection),c=parseFloat(m.getPropertyValue("padding-left")||0),g=parseFloat(m.getPropertyValue("padding-right")||0),p=parseFloat(m.getPropertyValue("padding-top")||0),h=parseFloat(m.getPropertyValue("padding-bottom")||0),_=i.$.verticalHiddenItemsContainer.getElementsByClassName("auto-hide-left")[0],b=i.$.horizontalHiddenItemsContainer.getElementsByClassName("auto-hide-top")[0];switch(i._snapFeedback.style.display="",e){case"header":{const e=i._getHeaderLabelDimensions(t);a=e.width,o=e.height,s=e.top,n=e.left,a&&o||(i._snapFeedback.style.display="none");break}case"left":case"right":d=i._dragDetails.hoveredTabArea.getBoundingClientRect(),o=i._dragDetails.hoveredTabArea.offsetHeight,a=i._dragDetails.hoveredTabArea.offsetWidth/2,s=d.top+window.pageYOffset,n=d.left+("right"===e?i._dragDetails.hoveredTabArea.offsetWidth/2:0)+window.pageXOffset;break;case"top":case"bottom":d=i._dragDetails.hoveredTabArea.getBoundingClientRect(),o=i._dragDetails.hoveredTabArea.offsetHeight/2,a=i._dragDetails.hoveredTabArea.offsetWidth,s=d.top+window.pageYOffset+("bottom"===e?i._dragDetails.hoveredTabArea.offsetHeight/2:0),n=d.left+window.pageXOffset;break;case"layout-left":case"layout-right":i.getShadowRootOrBody().contains(i._snapFeedback)&&void 0===i._snapFeedback.maxWidth&&(i._snapFeedback.maxWidth=parseFloat(getComputedStyle(i._snapFeedback).getPropertyValue("max-width"))||0),a=.07*i.$.itemsContainer.offsetWidth-(c+g),i._snapFeedback.maxWidth&&(a=Math.min(i._snapFeedback.maxWidth,a)),o=i.$.itemsContainer.offsetHeight-(p+h),s=r.top+window.pageYOffset+p+(b?b.offsetHeight:0),n=r.left+window.pageXOffset+("layout-left"===e?c:0)+(_?_.offsetWidth:0)+("layout-right"===e?i.$.itemsContainer.offsetWidth-a-g:0);break;case"layout-top":case"layout-bottom":i.getShadowRootOrBody().contains(i._snapFeedback)&&void 0===i._snapFeedback.maxHeight&&(i._snapFeedback.maxHeight=parseFloat(getComputedStyle(i._snapFeedback).getPropertyValue("max-height"))||0),o=.07*i.$.itemsContainer.offsetHeight-(p+h),i._snapFeedback.maxHeight&&(o=Math.min(i._snapFeedback.maxHeight,o)),a=i.$.itemsContainer.offsetWidth-(c+g),s=r.top+window.pageYOffset+(b?b.offsetHeight:0)+("layout-bottom"===e?i.$.itemsContainer.offsetHeight-o+p:p),n=r.left+window.pageXOffset+c+(_?_.offsetWidth:0)}i._snapFeedback.style.height=o+"px",i._snapFeedback.style.width=a+"px",i._snapFeedback.style.left=n+"px",i._snapFeedback.style.top=s+"px",i._snapFeedback._position||(i._dragDetails.hoveredTabArea=void 0),i._snapFeedback&&!i.getShadowRootOrBody().contains(i._snapFeedback)&&i.getShadowRootOrBody().appendChild(i._snapFeedback)}_handleItemNesting(){const e=this;let t=e._dragDetails.windowFeedback;if(t.classList.contains("smart-tabs-window-feedback")){let i=document.createElement("smart-tabs-window");const a=e._dragDetails.selectedTabLabel.tab;i.min=30,i.opened=i.pinned=!0,i.headerPosition=e._dragDetails.selectedTabsWindow.headerPosition,i.tabCloseButtons=e._dragDetails.selectedTabsWindow.tabCloseButtons,e._dragDetails.selectedTabsWindow.autoHide?(i.tabTextOrientation=e._dragDetails.selectedTabsWindow._originalTextOrientation||"horizontal",i.tabPosition=e._dragDetails.selectedTabsWindow._originalTabPosition||"top"):(i.tabPosition=e._dragDetails.selectedTabsWindow.tabPosition,i.tabTextOrientation=e._dragDetails.selectedTabsWindow.tabTextOrientation),i.animation=e.animation,i.rightToLeft=e.rightToLeft,i.theme=e.theme,e._snapFeedback._position.indexOf("top")>-1||e._snapFeedback._position.indexOf("bottom")>-1?i.size=parseFloat(t.style.height)||t.offsetHeight:i.size=parseFloat(t.style.width)||t.offsetWidth,i.label=a.label,i.id="",e._dragDetails.windowFeedback.removeChild(a),i.appendChild(a),i.style.left=i.style.top="",i.draggable=void 0===a.draggable||a.draggable,i.floatable=void 0===a.floatable||a.floatable,t=i}else{const i=t.context;t.context=t,t.windowParent=null,t.context=i,t.animation=e.animation,t.rightToLeft=e.rightToLeft,t.theme=e.theme,e._snapFeedback._position.indexOf("top")>-1||e._snapFeedback._position.indexOf("bottom")>-1?t.size=parseFloat(t.style.height)||t.offsetHeight:t.size=parseFloat(t.style.width)||t.offsetWidth,t.style.top=t.style.left=t.style.width=t.style.height="",t.pinned=!0,t.locked=t._originalLocked,t._originalTabPosition||(e._dragDetails.selectedTabsWindow.classList.contains("smart-docking-layout-auto-hide-window")?t._originalTabPosition="top":t._originalTabPosition=t.tabPosition)}return e._insert(e._items.indexOf(e._dragDetails.hoveredTabsWindow),t,e._snapFeedback._position),e._disownTabWindow(t),t}_handleWindowOnDrag(){const e=this;if(e._dragDetails.windowFeedback.hasAttribute("dragged"))return;let t=e._dragDetails.selectedItem,i=e._dragDetails.selectedTabsWindow,a=i.closest("smart-splitter");if(e._setWindowFeedbackSize(),i!==e.$.autoHideWindow||e._dragDetails._parentInfo){if(a&&a!==e.$.itemsContainer&&1===a._items.length)for(;1===a._items.length&&a!==e.$.itemsContainer;)a=a.parentElement.closest("smart-splitter"),t=t.parentElement.closest("smart-splitter-item");if(!e._dragDetails._parentInfo)if(e._dragDetails._parentInfo={},i.closest("smart-docking-layout")===e||e._getClosestDockingLayout(i)===e){if(i.autoHide)e._dragDetails._parentInfo.closestItem=e.$.itemsContainer,e._dragDetails._parentInfo.position=i.tabPosition,i._originalTabPosition&&(i.tabPosition=i._originalTabPosition),i._originalTextOrientation&&(i.tabTextOrientation=i._originalTextOrientation);else if(a){const i=a._items.indexOf(t);1===a._items.length?(e._dragDetails._parentInfo.position="horizontal"===a.orientation?"top":"left",e._dragDetails._parentInfo.closestItem=void 0):(0===i?(e._dragDetails._parentInfo.position="horizontal"===a.orientation?"top":"left",e._dragDetails._parentInfo.closestItem=a._items[i+1].getElementsByTagName("smart-tabs-window")[0]):(e._dragDetails._parentInfo.position="horizontal"===a.orientation?"bottom":"right",e._dragDetails._parentInfo.closestItem=a._items[i-1].getElementsByTagName("smart-tabs-window")[0]),e._dragDetails._parentInfo.closestItemSize=e._dragDetails._parentInfo.closestItem[a._measurements.size],a!==e._dragDetails._parentInfo.closestItem.closest("smart-splitter")?a===e.$.itemsContainer?e._dragDetails._parentInfo.position="layout-"+e._dragDetails._parentInfo.position:e._dragDetails._parentInfo.position="outside-"+e._dragDetails._parentInfo.position:2===a._items.length&&(e._dragDetails._parentInfo.position="inside-"+e._dragDetails._parentInfo.position))}}else e._dragDetails._parentInfo.position={top:i.offsetTop,left:i.offsetLeft}}else e._dragDetails._parentInfo={},i._tabsWindow.items.length>1?(e._dragDetails._parentInfo.closestItem=i._tabsWindow,e._dragDetails._parentInfo.position=e.$.autoHideWindow._tab.index):(e._dragDetails._parentInfo.closestItem=e.$.itemsContainer,e._dragDetails._parentInfo.position=i._tabsWindow.tabPosition,e._dragDetails.windowFeedback.headerButtons=e.$.autoHideWindow._tabsWindow.headerButtons,e._noStateChangeFiring=!0,e.undock(e._dragDetails.windowFeedback)),e._originalTabIndex=void 0;if(a)e._dragDetails.windowFeedback.size=e._dragDetails.windowFeedback[a._measurements.size];else if(i===e.$.autoHideWindow){const t=e.$.autoHideWindow._tabsWindow.tabPosition;e._dragDetails.windowFeedback.size=e.$.autoHideWindow["offset"+("top"===t||"bottom"===t?"Height":"Width")]}e._dragDetails.windowFeedback.setAttribute("dragged",""),e._dragDetails.windowFeedback.parentElement!==e.getShadowRootOrBody()&&(e._dragDetails.windowFeedback.windowParent="body",e.getShadowRootOrBody().appendChild(e._dragDetails.windowFeedback),e._ownTabWindow(e._dragDetails.windowFeedback)),("advanced"!==e.snapMode&&"none"===e._dragDetails.windowFeedback.tabPosition||e._dragDetails.windowFeedback.autoHide)&&(e._dragDetails.windowFeedback.tabPosition=e._dragDetails.windowFeedback._originalTabPosition||"top"),e._dragDetails.windowFeedback.autoHide=!1,e._dragDetails.windowFeedback.allowToggle=!1;const o=e._items.indexOf(e._dragDetails.windowFeedback);if(o>-1&&e._items.splice(o,1),t&&t.parentElement){if(0!==e._items.filter((e=>e.opened)).length||e.$.placeholderItem.parentElement||(e.$.itemsContainer._items[0].className.indexOf("auto-hide")>-1?e.$.itemsContainer.insert(1,e.$.placeholderItem):e.$.itemsContainer.insert(0,e.$.placeholderItem)),a){if(a.removeChild(t),a===e.$.itemsContainer){const e=a.querySelectorAll("smart-splitter");for(let t=0;t<e.length;t++)"vertical"===e[t].orientation&&e[t].refresh()}e._dragDetails.initialSplitterOrientation="horizontal"===a.orientation,e._removeUnneccessaryItems(a)}else i===e.$.autoHideWindow&&0===e.$.autoHideWindow._tabsWindow.items.length&&e.$.autoHideWindow._tabsWindow.closest("smart-splitter").removeChild(t);e._setAutoHidePaddings()}}_setWindowFeedbackSize(){const e=this,t=e._dragDetails.selectedTabsWindow;if(!e._dragDetails._isWindowFeedbackSizeSet){let i,a;t.autoHide&&t._autoHideWindow?"top"===t.tabPosition||"bottom"===t.tabPosition?(i=t.offsetWidth+"px",a=t._autoHideWindow.offsetHeight+"px"):(i=t._autoHideWindow.offsetWidth+"px",a=t.offsetHeight+"px"):(i=t.style.width||t.offsetWidth+"px",a=t.style.height||t.offsetHeight+"px"),e._dragDetails.windowFeedback.style.width=i,e._dragDetails.windowFeedback.style.height=a,e._dragDetails._isWindowFeedbackSizeSet=!0}}_insert(e,t,i){const a=this;let o;if("string"==typeof e?(o=a._getItemById(t),o&&(e=a._items.indexOf(o))):e instanceof Smart.TabsWindow&&a.contains(e)&&(e=a._items.indexOf(e)),"number"!=typeof e)return void a.error(a.localize("invalidIndex",{elementType:a.nodeName.toLowerCase(),method:arguments[3]||"insert"}));if("object"!=typeof t||t instanceof HTMLElement){if("string"==typeof t)t=a._getItemById(t);else if(t instanceof Smart.TabItem){let e=t.closest("smart-tabs-window");if(!e&&a.shadowRoot&&t.getRootNode()&&t.getRootNode().host&&(e=t.getRootNode().host.closest("smart-tabs-window")),e&&e.autoHide)return void a._dock(e,i);t=a._createTabsWindowFromObject({label:t.label,items:[{label:t.label,content:t.content}]})}}else t=a._createTabsWindowFromObject(t);if(!(t&&t instanceof Smart.TabsWindow))return void a.error(a.localize("invalidNode",{elementType:a.nodeName.toLowerCase(),method:arguments[3]||"insert"}));if((a.shadowRoot||a).contains(t)&&t.autoHide)return void a._dock(t,i);if(i&&i.indexOf("layout")>-1){const t=a._items.filter((e=>e.opened));e=t>0?i.indexOf("left")>-1||i.indexOf("top")>-1?0:t[t.length-1]:0}o=a._items[e],a._items[e]&&!a._items[e].opened&&(o=a._items.filter((e=>e.opened))[0]),0===a._items.length&&(a.$.itemsContainer.orientation=i.indexOf("left")>-1||i.indexOf("right")>-1?"vertical":"horizontal"),t.style.top=t.style.left="",t.style.width=t.style.height="",t.opened=!0,t.pinned=!0;const s=t.closest("smart-splitter-item");if(o){if(delete t._parentInfo,t.autoHide&&(a.$.verticalHiddenItemsContainer.contains(t)?a.$.verticalHiddenItemsContainer.removeChild(t.closest("smart-splitter-item")):a.$.horizontalHiddenItemsContainer.contains(t)&&a.$.horizontalHiddenItemsContainer.removeChild(t.closest("smart-splitter-item"))),i?a._handleItemPositionInserting(t,o,i):a.insertBefore(t,o||null),s){const e=s.closest("smart-splitter");e&&e.removeChild(s)}if(t.autoHide)a._autoHide(t,i);else{const e=document.scrollingElement||document.documentElement,i=e.scrollLeft,a=e.scrollTop;t.focus(),window.scrollTo(i,a)}a._items.filter((e=>e.opened)).length>0&&a.$.placeholderItem.parentElement&&a.$.itemsContainer.removeChild(a.$.placeholderItem),t.layout=a,t.resizeMode="none",t.minimized=!1,t.maximized=!1,a._setDockedItemsHeaderButtons(t)}else if(a.insertBefore(t,o||null),s){let e=s.closest("smart-splitter");!e&&a.shadowRoot&&s.getRootNode()&&s.getRootNode().host&&(e=s.getRootNode().host.closest("smart-splitter")),e&&e.removeChild(s)}}_itemsContainerCloseHandler(e){const t=this;if(e.target instanceof Smart.Tabs){const i=e.target;return void(0===i._tabs.length&&t.removeChild(i.closest("smart-tabs-window")))}if(!(e.target instanceof Smart.TabsWindow))return;const i=e.target.closest("smart-splitter-item"),a=i.closest("smart-splitter");a&&(a.removeChild(i),t._removeUnneccessaryItems(a)),e.target.close(),e.target.remove(),0!==t._items.filter((e=>e.opened)).length||t.$.placeholderItem.parentElement||t.$.itemsContainer.appendChild(t.$.placeholderItem)}_itemsContainerAutoHideHandler(e){const t=this,i=e.detail.button,a=i.closest("smart-tabs-window")||i.getRootNode().host;if(!a)return;const o=a.closest("smart-splitter-item");if(!o)return;const s=a.closest("smart-splitter");if(!s)return;const n=s.items,d="horizontal"===s.orientation,l=n.indexOf(o)>=n.length/2;d?l?t.autoHideBottom(a):t.autoHideTop(a):l?t.autoHideRight(a):t.autoHideLeft(a)}_itemsContainerMenuHandler(e){const t=this,i=t.$.menu,a=t.getBoundingClientRect(),o=e.detail.button.getBoundingClientRect();i.open(o.left-a.left,o.top-a.top),t._menuOpenButton=e.detail.button}_itemsContainerResizeHandler(){const e=event.target._items?event.target._items[event.detail.firstItem.index]:void 0;this._handleAutoSave(),this.$.fireEvent("stateChange",{type:"resize",item:e})}_keyDownHandler(e){const t=this;if(!t.disabled&&t.hasAttribute("dragged")&&t._snapFeedback)if(e.preventDefault(),"Control"===e.key)if("advanced"===t.snapMode){for(let e in t._snapFeedback)if(t._snapFeedback[e]instanceof HTMLElement){if("outherSnapElement"===e){const e=t.$.container.children;for(let t=0;t<e.length;t++)e[t].className.indexOf("smart-docking-layout-snap")>-1&&e[t].classList.add("smart-hidden");continue}t._snapFeedback[e].classList.add("smart-hidden")}}else t._snapFeedback.classList.add("smart-hidden");else"Escape"===e.key&&t._cancelDragOperation()}_keyUpHandler(e){const t=this;if(!t.disabled&&"Control"===e.key&&t.hasAttribute("dragged")&&t._snapFeedback)if(e.preventDefault(),"advanced"===t.snapMode){for(let e in t._snapFeedback)if(t._snapFeedback[e]instanceof HTMLElement){if("outherSnapElement"===e){const e=t.$.container.children;for(let t=0;t<e.length;t++)e[t].className.indexOf("smart-docking-layout-snap")>-1&&e[t].classList.remove("smart-hidden");continue}t._snapFeedback[e].classList.remove("smart-hidden")}t._handleSnapping()}else t._snapFeedback.classList.remove("smart-hidden")}_loadState(e){this._createItemsFromArray(e,!0)}_removeAll(e){const t=this;function i(e){const t=e._items;if(t)for(let i=0;i<t.length;i++)t[i].$.hasClass("smart-docking-layout-item-holder")||e.removeChild(t[i])}t.$.itemsContainer.removeAll(),i(t.$.horizontalHiddenItemsContainer),i(t.$.verticalHiddenItemsContainer),t._items=[],e||t.$.itemsContainer.appendChild(t.$.placeholderItem)}_removeUnneccessaryItems(e){if(!e)return;const t=this;let i;for(;e._items&&0===e._items.length&&e!==t.$.itemsContainer;)(i=e.closest("smart-splitter-item")).removeChild(e),(e=i.closest("smart-splitter")).removeChild(i)}_returnItemToOrigin(e){const t=this;if(!e||!t._dragDetails)return;let i=t._dragDetails._parentInfo;if(i)if("number"==typeof i.position){const t=[].slice.call(e.items);for(let a=0;a<t.length;a++)e.removeChild(t[a]),i.closestItem.insert(i.position,{node:t[a]})}else"object"==typeof i.position?(e.style.top=i.position.top+"px",e.style.left=i.position.left+"px"):i.closestItem?i.closestItem===t.$.itemsContainer?t._autoHide(e,i.position):t._insert(t._items.indexOf(i.closestItem),e,i.position):t.appendChild(e)}_setAutoHidePaddings(){const e=this,t=e.$.verticalHiddenItemsContainer.getElementsByClassName("auto-hide-left")[0],i=e.$.verticalHiddenItemsContainer.getElementsByClassName("auto-hide-right")[0],a=e.$.horizontalHiddenItemsContainer.getElementsByClassName("auto-hide-top")[0],o=e.$.horizontalHiddenItemsContainer.getElementsByClassName("auto-hide-bottom")[0];a&&(a.style.paddingLeft=t?t.offsetWidth+"px":"",a.style.paddingRight=i?i.offsetWidth+"px":""),o&&(o.style.paddingLeft=t?t.offsetWidth+"px":"",o.style.paddingRight=i?i.offsetWidth+"px":"")}_setDockedItemsHeaderButtons(e){let t=e.headerButtons,i=["close","maximize","minimize"],a=t.filter((e=>i.indexOf(e)<0));a=0===a.length?["close","autoHide"]:t,e.headerButtons=a}_setFloatingItemsHeaderButtons(e){const t=this._dragDetails,i=["close","autoHide"];t.selectedTabsWindow&&t.selectedTabsWindow.classList.contains("smart-docking-layout-auto-hide-window")?e._originalTabPosition="top":e._originalTabPosition=e.tabPosition;let a=e.headerButtons.filter((e=>i.indexOf(e)<0));a=0===a.length?["close","maximize","minimize"]:e.headerButtons,e.headerButtons=a}_setFocusable(){const e=this;if(e.disabled||e.unfocusable)e.removeAttribute("tabindex");else{let t=e.tabIndex>0?e.tabIndex:0;e.setAttribute("tabindex",t)}}_setSnappingMarkers(e,t){const i=this;let a=Smart.Utilities.Core.isMobile?document.elementFromPoint(e.pageX-window.pageXOffset,e.pageY-window.pageYOffset):e.originalEvent.target,o=a.closest&&a.closest("smart-docking-layout");if((a.shadowRoot||i.isInShadowDOM)&&(a=e.originalEvent.composedPath()[0]),o||(o=i._getClosestDockingLayout(a)),"advanced"===i.snapMode){if(e.ctrlKey)return;return i._dragDetails.hoveredItem=a.closest(".smart-docking-layout-snap")?a:i._dragDetails.hoveredItem&&i._dragDetails.hoveredItem.getElementsByTagName("smart-splitter").length>0?void 0:i._dragDetails.hoveredItem,i._dragDetails.hoveredTabArea=t?a.closest(".smart-tab-label-container")||t:i._dragDetails.hoveredTabArea,void i._handleSnapping("",e)}if(!o||o!==i)return void i._handleSnapping();if(!i._dragDetails.hoveredTabsWindow||i._dragDetails.windowFeedback!==i.$.tabsWindowFeedback&&i._dragDetails.hoveredTabsWindow===i._dragDetails.selectedTabsWindow)return i._dragDetails.hoveredItem=a.closest(".smart-docking-layout-snap")?a:i._dragDetails.hoveredItem&&i._dragDetails.hoveredItem.getElementsByTagName("smart-splitter").length>0?void 0:i._dragDetails.hoveredItem,void i._handleSnapping();let s={};if(i._dragDetails.hoveredItem){const e=i._dragDetails.hoveredItem.getBoundingClientRect(),t=i.$.itemsContainer.getBoundingClientRect();s.left=i._dragDetails.hoveredItem?e.left-t.left:0,s.top=i._dragDetails.hoveredItem?e.top-t.top:0}else s.left=s.top=0;const n=i.getBoundingClientRect(),d=i.$.itemsContainer.getBoundingClientRect(),l=Math.max(0,e.pageX-window.pageXOffset-n.left-(d.left-n.left)),r=Math.max(0,e.pageY-window.pageYOffset-n.top-(d.top-n.top));if(i._dragDetails.hoveredTabArea===t)i._dragDetails.hoveredTabArea=a.closest(".smart-tab-label-container"),i._handleSnapping("header",e);else if(i._dragDetails.hoveredItem&&!i._dragDetails.hoveredTabsWindow.autoHide)if(l<.05*i.$.itemsContainer.offsetWidth&&l<.15*i._dragDetails.hoveredItem.offsetWidth)i._handleSnapping("layout-left");else if(l>.95*i.$.itemsContainer.offsetWidth&&l>.85*i._dragDetails.hoveredItem.offsetWidth+i._dragDetails.hoveredItem.offsetLeft)i._handleSnapping("layout-right");else if(r<.05*i.$.itemsContainer.offsetHeight)i._handleSnapping("layout-top");else if(r>.95*i.$.itemsContainer.offsetHeight)i._handleSnapping("layout-bottom");else if(a.closest(".smart-tabs-content-section")){const e=i._dragDetails.hoveredItem.closest("smart-splitter").orientation;l<s.left+.3*i._dragDetails.hoveredTabArea.offsetWidth?i._handleSnapping("horizontal"===e?"inside-left":"left"):l>s.left+.7*i._dragDetails.hoveredTabArea.offsetWidth?i._handleSnapping("horizontal"===e?"inside-right":"right"):r<s.top+i._dragDetails.hoveredTabArea.offsetTop+.5*i._dragDetails.hoveredTabArea.offsetHeight+i._dragDetails.hoveredTabsWindow.$.headerSection.offsetHeight?i._handleSnapping("vertical"===e?"inside-top":"top"):i._handleSnapping("vertical"===e?"inside-bottom":"bottom")}else i._handleSnapping();else i._handleSnapping()}_setSplitterBarVisibility(){const e=this,t=e.$.itemsContainer.getElementsByTagName("smart-splitter-bar");for(let i=0;i<t.length;i++)e.hideSplitterBars?t[i].hide():t[i].show()}_validateWindowPosition(e){e.$.addClass("no-transition","");const t=document.scrollingElement||document.documentElement;t.scrollTop>0?e.style.top=(parseFloat(e.style.top)||e.offsetTop)+"px":e.style.top=Math.max(0,Math.min(parseFloat(e.style.top)||e.offsetTop,document.documentElement.clientHeight-e.offsetHeight))+"px",t.scrollLeft>0?e.style.left=(parseFloat(e.style.left)||e.offsetLeft)+"px":e.style.left=Math.max(0,Math.min(parseFloat(e.style.left)||e.offsetLeft,document.documentElement.clientWidth-e.offsetWidth))+"px",requestAnimationFrame((()=>e.$.removeClass("no-transition")))}_ownTabWindow(e){const t=this,i=e.id;let a=t.getAttribute("aria-owns");a?(a=a.split(" "),-1===a.indexOf(i)&&(a.push(i),t.setAttribute("aria-owns",a.join(" ")))):t.setAttribute("aria-owns",i)}_disownTabWindow(e){const t=this,i=e.id;let a=t.getAttribute("aria-owns");if(!a)return;a=a.split(" ");const o=a.indexOf(i);-1!==o&&(a.splice(o,1).join(" "),a.length>0?t.setAttribute("aria-owns",a):t.removeAttribute("aria-owns"))}_resizeHandler(){const e=this;e.$.autoHideWindow.opened&&e.$.autoHideWindow._tabsWindow&&e.$.autoHideWindow._tabsWindow._setAutoHideWindowSize(e.$.autoHideWindow._tabsWindow.selectedIndex)}});
20
+ 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.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.$.autoHideWindow._tabsWindow:(i=document.createElement("smart-tabs-window"),i.draggable=!0,i.min=30,i.layout=t),i.style.width=e.width+"px",i.style.height=e.height+"px",i.style.left=e.left+"px",i.style.top=e.top+"px",i.setAttribute("ontop",""),t._dragDetails.windowFeedback=i,t.$.autoHideWindow.$.addClass("no-transition"),t.$.autoHideWindow.close(),t.$.autoHideWindow.$.removeClass("no-transition")}if(t._setDragDetailsOnMove(i),t.$.autoHideWindow.close(),t._dragDetails.windowFeedback.classList.contains("smart-tabs-window-feedback")){if(t._dragDetails._parentInfo||(t._dragDetails._parentInfo={closestItem:n,position:t._originalTabIndex||t._dragDetails.selectedTabLabel.tab.index},t._originalTabIndex=void 0),t.getShadowRootOrBody().contains(t._dragDetails.windowFeedback)||t.getShadowRootOrBody().appendChild(t._dragDetails.windowFeedback),t._dragDetails.selectedItem){const e=t._dragDetails.selectedItem.closest("smart-splitter");!t._dragDetails.windowFeedback.size&&e&&(t._dragDetails.windowFeedback.size=t._dragDetails.selectedTabsWindow[e._measurements.size])}}else t._handleWindowOnDrag();t._dragDetails.selectedTabLabel.classList.contains("smart-header-section")||t._dragDetails.windowFeedback.setAttribute("tabs-window-dragged",""),(t._dragDetails.windowFeedback.hasAttribute("tabs-window-dragged")||t._dragDetails.selectedTabsWindow===t.$.autoHideWindow||t._dragDetails._parentInfo&&"string"==typeof t._dragDetails._parentInfo.position)&&(t._dragDetails.windowFeedback.style.left=e.pageX-t._dragDetails.offset.x+"px",t._dragDetails.windowFeedback.style.top=e.pageY-t._dragDetails.offset.y+"px",t._setWindowFeedbackSize()),t._dragDetails.windowFeedback.opened=!0,document.activeElement!==t&&(t.focus(),window.scrollTo(o,s));let d=t._dragDetails.hoveredTabsWindow?i.closest(".smart-tabs-header-section"):void 0;d||!t.shadowRoot&&!t.isInShadowDOM||(d=t._getClosestElement(".smart-tabs-header-section",i)),t._dragDetails.hoveredTabArea=d||(t._dragDetails.hoveredTabsWindow&&i.closest(".smart-tabs-content-section")?t._dragDetails.hoveredTabsWindow.$.tabsElement.$.tabContentSection:t._dragDetails.hoveredTabsWindow),t.shadowRoot&&t._dragDetails.selectedTabsWindow===t._dragDetails.windowFeedback&&requestAnimationFrame((()=>{t._dragDetails&&t._dragDetails.windowFeedback.refreshTabHeader()})),t._setSnappingMarkers(e,d)}_setDragDetailsOnMove(e){const t=this;let i;if(!t.hasAttribute("dragged")){t._originalBodyOverflow={overflowX:document.body.style.overflowX,overflowY:document.body.style.overflowY,overflow:document.body.style.overflow};const e=(document.scrollingElement||document.documentElement).scrollHeight>document.documentElement.clientHeight,a=(document.scrollingElement||document.documentElement).scrollWidth>document.documentElement.clientWidth;let o=t._dragDetails.selectedTabsWindow;if(document.body.style.overflow=document.body.style.overflowX=document.body.style.overflowY="",e&&!a?document.body.style.overflowX="hidden":a&&!e?document.body.style.overflowY="hidden":a||e||(document.body.style.overflow="hidden"),t._dragDetails.windowFeedback.$.hasClass("smart-tabs-window-feedback")||o===t.$.autoHideWindow){const e=t._dragDetails.selectedTabLabel.tab||t.$.autoHideWindow._tab;let i=t.$.tabsWindowFeedback;o===t.$.autoHideWindow&&(o=t.$.autoHideWindow._tabsWindow,i=t._dragDetails.windowFeedback,i.label=e.label,i.draggable=e.draggable,i.floatable=e.floatable),Smart.Utilities.Core.isMobile&&navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform)&&(t._dragDetails.selectedTabLabel._lazyRemove=!0),e.parentElement&&(o.removeChild(e),t._dragDetails.selectedItem&&!t._dragDetails.selectedItem.style.width&&t._dragDetails.selectedItem.closest("smart-splitter").refresh()),t._originalTabIndex=e.index,i.appendChild(e);const a=t._dragDetails.selectedTabsWindow;if(a===t.$.autoHideWindow)a._tabsWindow.items.length>1&&(i.tabPosition=a.tabPosition,i.tabTextOrientation=a._originalTextOrientation||a.tabTextOrientation);else{const e=a.autoHide;i.tabPosition=a._originalTabPosition||(e?"top":a.tabPosition),i.tabTextOrientation=a._originalTextOrientation||(e?"horizontal":a.tabTextOrientation)}if(e._autoHideWindowSize)i.size=e._autoHideWindowSize;else if(o.autoHide){const e="offset"+("top"===o.tabPosition||"bottom"===o.tabPosition?"Height":"Width");i.size=(o._autoHideWindow||o)[e]}}i=t._dragDetails.selectedTabsWindow.closest("smart-docking-layout"),!i&&t.shadowRoot&&(i=t._getClosestDockingLayout(t._dragDetails.selectedTabsWindow)),i||t._dragDetails.windowFeedback._originalPinnedState||(t._dragDetails.windowFeedback._originalPinnedState=t._dragDetails.windowFeedback.pinned),t._dragDetails.windowFeedback.pinned=!1,t.setAttribute("dragged","")}t._dragDetails.hoveredItem=e.closest("smart-splitter-item"),t._dragDetails.hoveredItem||!t.shadowRoot&&!t.isInShadowDOM||(t._dragDetails.hoveredItem=t._getClosestElement("smart-splitter-item",e)),t._dragDetails.hoveredItem?(i=t._dragDetails.hoveredItem.closest("smart-docking-layout"),!i&&t.shadowRoot&&(i=t._getClosestDockingLayout(t._dragDetails.hoveredItem)),i&&i===t?t._dragDetails.hoveredTabsWindow=t._dragDetails.hoveredItem.querySelector("smart-tabs-window"):t._dragDetails.hoveredItem=t._dragDetails.hoveredTabsWindow=void 0):t._dragDetails.hoveredTabsWindow=e.closest("smart-tabs-window")||(e.getRootNode()&&e.getRootNode().host?e.getRootNode().host.closest("smart-tabs-window"):void 0),t._dragDetails.hoveredTabsWindow&&(i=t._dragDetails.hoveredTabsWindow.closest("smart-docking-layout"),!i&&t.shadowRoot&&(i=t._getClosestDockingLayout(t._dragDetails.hoveredTabsWindow)),i&&i!==t?t._dragDetails.hoveredTabsWindow=void 0:t._dragDetails.hoveredTabsWindow.bringToFront())}_documentDragStartHandler(e){const t=this;(t.contains(e.target)||t.contains(e.composedPath()[0])||"simple"===t.snapMode&&t._dragDetails&&t._dragDetails.selectedTabLabel)&&e.preventDefault()}_documentSelectStartHandler(e){this._dragDetails&&this._dragDetails.started&&e.preventDefault()}_documentUpHandler(e){const t=this,i=e.originalEvent||e,a=i.target.getRootNode().host?i.composedPath()[0]:i.target;if(!t._dragDetails||t._dragDetails&&!t._dragDetails.started||t.disabled)return void delete t._dragDetails;t._noStateChangeFiring=!0,t.removeAttribute("dragged"),t._dragDetails.windowFeedback.removeAttribute("tabs-window-dragged"),t._dragDetails.windowFeedback.removeAttribute("ontop");let o=a.closest&&a.closest("smart-docking-layout");o||!t.shadowRoot&&!t.isInShadowDOM||(o=t._getClosestDockingLayout(a)),e.ctrlKey&&(t._snapFeedback._position=o=void 0);const s=t._snapFeedback?t._snapFeedback._position:void 0;if(!o&&!s||o&&!t._dragDetails.hoveredTabArea&&!s)t._dropWindowOutsideLayout(e,s,o);else if(t._dragDetails.hoveredTabsWindow&&s){if(t._dragDetails.hoveredTabArea&&t._dragDetails.hoveredTabArea.classList.contains("smart-tabs-header-section")){let e,i,o,s=t._dragDetails.hoveredTabsWindow.itemLabels.length,n=a.closest(".smart-tab-label-container");if(n&&!n.$.hasClass("smart-add-new-tab")&&n.tab||(n=t._dragDetails.hoveredTabsWindow.itemLabels[s-1],e=!0),i=t._dragDetails.selectedTabLabel.$.hasClass("smart-tab-label-container")&&t._dragDetails.windowFeedback.$.hasClass("smart-tabs-window-feedback")?[t._dragDetails.selectedTabLabel.tab]:[].slice.call(t._dragDetails.windowFeedback.items),t._dragDetails.hoveredTabsWindow.autoHide){const e=t._dragDetails.hoveredTabsWindow.tabPosition;o=t._dragDetails.windowFeedback["offset"+("top"===e||"bottom"===e?"Height":"Width")]}for(let a=0;a<i.length;a++)i[a]._autoHideWindowSize=o||t._dragDetails.windowFeedback.size,t._dragDetails.windowFeedback.removeChild(i[a]),t._dragDetails.hoveredTabsWindow.insert(e?s:n.tab.index,{node:i[a]}),s=t._dragDetails.hoveredTabsWindow.items.length;t._dragDetails.targetWindow=t._dragDetails.hoveredTabsWindow}else t._dragDetails.targetWindow=t._handleItemNesting(),t._eventAlreadyFired=!0;t.$.autoHideWindow.close(),t._noStateChangeFiring=!1}if(t.shadowRoot||t.isInShadowDOM){const e=t._dragDetails.targetWindow;setTimeout((()=>e.refreshTabHeader()),100)}t._endDrag()}_dropWindowOutsideLayout(e,t,i){const a=this;let o;if(a.floatable&&(void 0===a._dragDetails.windowFeedback.floatable||a._dragDetails.windowFeedback.floatable)){if(a._dragDetails.windowFeedback.classList.contains("smart-tabs-window-feedback")){const t=a._dragDetails.windowFeedback.items[0];if(t&&void 0!==t.floatable&&!t.floatable)return void a._cancelDragOperation(!0);const i=a._dragDetails.selectedTabLabel.tab;let s=document.createElement("smart-tabs-window");s.opened=!0,s.animation=a.animation,s.rightToLeft=a.rightToLeft,s.theme=a.theme,s.label=i.label,a._dragDetails.windowFeedback.removeChild(i),a._dragDetails.selectedTabLabel.tab.$.removeClass("smart-visibility-hidden"),s.appendChild(a._dragDetails.selectedTabLabel.tab),s.style.left=e.pageX+"px",s.style.top=e.pageY+"px",s.style.maxWidth=s.style.maxHeight="",s.resizeMode=a._dragDetails.selectedTabsWindow.resizeMode,s.tabCloseButtons=a._dragDetails.selectedTabsWindow.tabCloseButtons,s.tabTextOrientation=a._dragDetails.windowFeedback.tabTextOrientation,s.tabPosition=a._dragDetails.windowFeedback.tabPosition,s.min=30,s.style.width=a._dragDetails.windowFeedback.style.width,s.style.height=a._dragDetails.windowFeedback.style.height,s.draggable=void 0===i.draggable||i.draggable,s.floatable=void 0===i.floatable||i.floatable,a.getShadowRootOrBody().appendChild(s),s.pinned=s.autoHide=s.allowToggle=!1,a._noStateChangeFiring=!1,o=s}else a._dragDetails._parentInfo&&a._dragDetails._parentInfo.closestItem?(a._dragDetails.windowFeedback.parentElement!==a.getShadowRootOrBody()&&(a._dragDetails.windowFeedback.windowParent="body",a.getShadowRootOrBody().appendChild(a._dragDetails.windowFeedback)),a._dragDetails.windowFeedback.style.maxWidth=a._dragDetails.windowFeedback.style.maxHeight="",a._dragDetails.windowFeedback.pinned=a._dragDetails.windowFeedback.allowToggle=a._dragDetails.windowFeedback.autoHide=!1,a._dragDetails.selectedTabLabel.$.hasClass("smart-tab-label-container")&&(a._dragDetails.windowFeedback.label=a._dragDetails.selectedTabLabel.tab.label)):t||a._dragDetails.selectedItem instanceof Smart.SplitterItem||!a._dragDetails.selectedTabLabel.$.hasClass("smart-tab-label-container")||a._returnItemToOrigin(a._dragDetails.windowFeedback),o=a._dragDetails.windowFeedback,o.locked=!1,a._dragDetails.selectedItem&&(a._noStateChangeFiring=!1);a.$.autoHideWindow.close(),i||(a._dragDetails.windowFeedback.pinned=!1),a._validateWindowPosition(o),a._dragDetails._parentInfo&&(o._parentInfo={closestItem:a._dragDetails._parentInfo.closestItem,position:a._dragDetails._parentInfo.position}),o.layout=a,a._dragDetails.targetWindow=o,o.resizeMode="both",a._setFloatingItemsHeaderButtons(o),a._ownTabWindow(o)}else a._cancelDragOperation(!0)}_endDrag(){const e=this,t=e._dragDetails,i=e._dragDetails.windowFeedback;if(e.$.tabsWindowFeedback.close(),t.isInsideTheLayout&&0===i.$.tabsElement._tabs.length&&!i.$.hasClass("smart-tabs-window-feedback")&&i.remove(),(e.shadowRoot||e).contains(e._dragDetails.windowFeedback)||void 0===e._dragDetails.windowFeedback._originalPinnedState||(e._dragDetails.windowFeedback.pinned=e._dragDetails.windowFeedback._originalPinnedState,delete e._dragDetails.windowFeedback._originalPinnedState),e._originalBodyOverflow&&(document.body.style.overflow=e._originalBodyOverflow.overflow,document.body.style.overflowX=e._originalBodyOverflow.overflowX,document.body.style.overflowY=e._originalBodyOverflow.overflowY,delete e._originalBodyOverflow),e._dragDetails.targetWindow?(e._dragDetails.targetWindow.focus(),e._dragDetails.selectedTabsWindow&&e._dragDetails.selectedTabsWindow.removeAttribute("active")):e._dragDetails.windowFeedback.bringToFront(),e._dragDetails.started=!1,e._dragDetails.hoveredItem=e._dragDetails.hoveredTabsWindow=e._dragDetails.isInsideTheLayout=void 0,i.removeAttribute("dragged"),e._handleSnapping(),e._dragDetails.selectedTabsWindow&&delete e._dragDetails.selectedTabsWindow._ownerLayout,0===i.items.length&&((e.shadowRoot||e).contains(i)&&(i.opened=!1),i.$.hasClass("smart-tabs-window-feedback")&&e.$.container.appendChild(i)),!e._eventAlreadyFired&&!e._noStateChangeFiring){e._handleAutoSave();let t={item:e._dragDetails.targetWindow};t.type=e._items.indexOf(e._dragDetails.targetWindow)>-1?"dock":"float",e.$.fireEvent("stateChange",t)}e._noStateChangeFiring=e._eventAlreadyFired=void 0,e._dragDetails._parentInfo&&e._dragDetails._parentInfo.closestItem&&e._removeUnneccessaryItems(e._dragDetails._parentInfo.closestItem.closest("smart-splitter"));let a=e._getClosestDockingLayout(i);if(i.closest("smart-docking-layout")||a)return i.style.top=i.style.left="",void delete e._dragDetails;i.top&&(i.style.top=i.top),i.left&&(i.style.left=i.left),e._dragDetails.selectedTabLabel&&e._dragDetails.selectedTabLabel._lazyRemove&&(e._dragDetails.selectedTabLabel&&e._dragDetails.selectedTabLabel.remove(),delete e._dragDetails.selectedTabLabel._lazyRemove),i._cancelDragging(),delete e._dragDetails}_getTabItemContent(e){const t=e.isCompleted?e.$.content:e,i=document.createDocumentFragment();for(;t.firstChild;)i.appendChild(t.firstChild);return i}_getHeaderLabelDimensions(e){const t=this;function i(e){if(!t._dragDetails)return clearInterval(t._scrollInterval),void(t._scrollInterval=void 0);o.scrollLeft+=e,a._updateScrollButtonVisibility(),a._positionTabSelectionBar(a._tabLabelContainers[a.selectedIndex],!0)}if(!t._dragDetails||!t._dragDetails.hoveredTabsWindow)return;const a=t._dragDetails.hoveredTabsWindow.$.tabsElement,o=a.$.tabStrip,s=o.getBoundingClientRect(),n="left"===a.tabPosition||"right"===a.tabPosition,d=t.rightToLeft&&Smart.Utilities.Core.Browser.Chrome?o.scrollLeft-(o.scrollWidth-o.offsetWidth):o.scrollLeft;let l=0,r=0;"horizontal"===a.tabTextOrientation?l=a.$.scrollButtonNear.offsetWidth:r=a.$.scrollButtonNear.offsetHeight,"top"!==a.tabPosition&&"bottom"!==a.tabPosition||(t._scrollInterval&&clearInterval(t._scrollInterval),t._scrollInterval=setInterval((function(){e&&(d||t.rightToLeft)&&e.clientX<=s.left+Math.max(l,20)?i(-1):e&&d!==(t.rightToLeft?0:o.scrollWidth)&&e.clientX>=s.left+s.width-Math.max(l,20)?i(1):(clearInterval(t._scrollInterval),t._scrollInterval=void 0)}),1));let m,c,g=0,p=0;if(t._dragDetails.hoveredTabArea)m=t._dragDetails.hoveredTabArea.offsetWidth,c=t._dragDetails.hoveredTabArea.offsetHeight,g=t._dragDetails.hoveredTabArea.offsetLeft,p=t._dragDetails.hoveredTabArea.offsetTop;else if(o.children.length>0){const e=a.$.tabStrip.children[a.$.tabStrip.children.length-1];g=e.offsetLeft+(t.rightToLeft?-1:1)*(n?0:e.offsetWidth),p=e.offsetTop+(n?e.offsetHeight:0),m=e.offsetWidth,c=e.offsetHeight}t._dragDetails.hoveredTabArea=a.$.tabsHeaderSection;const h=t._dragDetails.hoveredTabArea.getBoundingClientRect(),_=s.left-h.left+h.left+g-d-l,b=s.top-h.top+h.top+p-o.scrollTop-r,f=Math.min(g-d-l,0),u=Math.min(p-o.scrollTop-r,0);return{width:Math.min(s.width,Math.max(0,m+f),Math.max(0,s.left+s.width-_)),height:Math.min(s.height,Math.max(0,c+u),Math.max(0,s.top+s.height-b)),top:b+window.pageYOffset-u,left:_+window.pageXOffset-f}}_handleAutoSave(){this.autoSaveState&&this.saveState()}_handleAutoHiddenSplitterBars(){const e=this.$.itemsContainer.querySelectorAll(".auto-hide-left,.auto-hide-right, .auto-hide-top, .auto-hide-bottom");for(let t=0;t<e.length;t++)e[t].previousElementSibling instanceof Smart.SplitterBar?e[t].previousElementSibling.hide():e[t].nextElementSibling instanceof Smart.SplitterBar&&e[t].nextElementSibling.hide()}_handleItemPositionInserting(e,t,i){const a=this;e.autoHide||i.indexOf("layout")>-1?a._handleLayoutItemInserting(t,e,i):i.indexOf("outside-")>-1?a._handleOutsideItemInserting(t,e,i):(i.indexOf("inside-")>-1?a._handleInsideItemInserting(t,e,i):a._handleNormalItemInserting(t,e,i),a._handleAutoSave(),a.$.fireEvent("stateChange",{type:"dock",item:e}),a._setSplitterBarVisibility())}_handleInsideItemInserting(e,t,i){const a=this,o=document.createElement("smart-splitter-item"),s=document.createElement("smart-splitter-item");let n,d=e.closest("smart-splitter-item"),l=e.closest("smart-splitter"),r=a._items.indexOf(e);n=l&&1===l._items.length?l:document.createElement("smart-splitter"),n._isInShadowDOM=a.isInShadowDOM,n.autoFitMode="proportional",n.liveResize=a.liveResize,n.resizeStep=a.resizeStep,t.windowParent=null,o.appendChild(t),e.windowParent=null,i=i.replace("inside-",""),n.orientation="top"===i||"bottom"===i?"horizontal":"vertical";const m=d["horizontal"===n.orientation?"offsetHeight":"offsetWidth"]/2;if(n.parentElement?n.insertBefore(o,"top"===i||"left"===i?d:null):(s.appendChild(e),e.min&&(s.min=e.min),"top"===i||"left"===i?(n.appendChild(o),n.appendChild(s)):(n.appendChild(s),n.appendChild(o)),d.appendChild(n)),t.size){const e="string"==typeof t.size&&t.size.indexOf("%")>-1;o.size=e?t.size:Math.min(m,parseFloat(t.size))}o.max=t.max||"",o.min=t.min?t.min:30,o.locked=t.locked||!1,o.collapsible=t.collapsible||!1,o.collapsed=t.collapsed||!1,"bottom"!==i&&"right"!==i||(r=Math.min(r+1,a._items.length)),t.pinned=!0,t.autoHide=t.allowToggle=t.maximized=t.minimized=t.collapsed=!1,t._originalTabPosition?(t.tabPosition=t._originalTabPosition,delete t._originalTabPosition):t.tabPosition="top",t._originalTextOrientation?(t.tabTextOrientation=t._originalTextOrientation,delete t._originalTextOrientation):t.tabTextOrientation="horizontal",a._items.splice(r,0,t),a._handleAutoHiddenSplitterBars()}_handleLayoutItemInserting(e,t,i){const a=this,o=document.createElement("smart-splitter-item"),s="bottom"===i||"top"===i?"offsetHeight":"offsetWidth";if(t.size||(t.size=t[s]),i=i.replace("layout-",""),o.size=t.size||"",o.max=t.max||"",o.min=t.min||"",o.locked=t.locked||!1,o.collapsible=t.collapsible||!1,o.collapsed=t.collapsed||!1,o.size&&!a._dockingAutoHideTabItem&&(o.size=Math.min(a[s]/2,parseFloat(t.size))),("horizontal"!==a.$.itemsContainer.orientation||"right"!==i&&"left"!==i)&&("vertical"!==a.$.itemsContainer.orientation||"top"!==i&&"bottom"!==i)){const e=i.indexOf("left")>-1||i.indexOf("top")>-1?a._items.filter((e=>e.opened))[0]:void 0;return t.windowParent=null,o.appendChild(t),a.insertBefore(o,e,a.$.itemsContainer),!0}{let e,s=a.$.itemsContainer.orientation;const n=a.$.itemsContainer,d=[].slice.call(n._items),l=function(e,t){n.appendChild(e),n.insertBefore(t,"right"===i||"bottom"===i?null:e)};t.windowParent=null,o.appendChild(t),d.map((e=>e.size=e[n._measurements.size])),"right"===i||"bottom"===i?a._items.push(t):a._items.splice(0,0,t),n.removeAll(),n.orientation="top"===i||"bottom"===i?"horizontal":"vertical";const r=n[n._measurements.size]-o.size;if(d.length>1){const t=document.createElement("smart-splitter");t._isInShadowDOM=a.isInShadowDOM,t.autoFitMode="end",t.orientation=s,t.liveResize=a.liveResize,t.resizeStep=a.resizeStep,e=document.createElement("smart-splitter-item"),e.min=30,e.appendChild(t),e.size=r,l(e,o);for(let e=0;e<d.length;e++)t.appendChild(d[e]);t.autoFitMode="proportional"}else d[0].size=r,a._dockingAutoHideTabItem&&(n.autoFitMode="end"),l(d[0],o),n.autoFitMode="proportional";a._handleAutoHiddenSplitterBars(),a._handleAutoSave(),a.$.fireEvent("stateChange",{type:"dock",item:t}),a._setSplitterBarVisibility()}}_handleNormalItemInserting(e,t,i){let a=e.closest("smart-splitter-item");const o=this,s=e.closest("smart-splitter"),n=document.createElement("smart-splitter-item"),d="right"===i||"bottom"===i?s._items.indexOf(a)+1:s._items.indexOf(a);let l=o._items.indexOf(e);t.windowParent=null,n.appendChild(t),n.size=t.size||"",n.min=t.min||"",s.insert(d,n),"bottom"!==i&&"right"!==i||(l=Math.min(l+1,o._items.length)),t.pinned=!0,t.locked=!1,t.autoHide=t.allowToggle=t.maximized=t.minimized=t.collapsed=!1,t._originalTabPosition?(t.tabPosition=t._originalTabPosition,delete o._originalTabPosition):t.tabPosition="top",t._originalTextOrientation?(t.tabTextOrientation=t._originalTextOrientation,delete t._originalTextOrientation):t.tabTextOrientation="horizontal",o._items.splice(l,0,t),o._handleAutoHiddenSplitterBars()}_handleOutsideItemInserting(e,t,i){const a=this,o=document.createElement("smart-splitter-item");let s=e.closest("smart-splitter");if(s||(s=a.$.itemsContainer),o.size=t.size||"",o.max=t.max||"",o.min=t.min||"",o.locked=t.locked||!1,o.collapsible=t.collapsible||!1,o.collapsed=t.collapsed||!1,s===a.$.itemsContainer)return t.windowParent=null,o.appendChild(t),a.insertBefore(o,i.indexOf("left")>-1||i.indexOf("top")>-1?a._items[0]:void 0,a.$.itemsContainer),!0;{let n=s.closest("smart-splitter-item");const d=document.createElement("smart-splitter"),l=document.createElement("smart-splitter-item");if(d._isInShadowDOM=a.isInShadowDOM,i=i.replace("outside-",""),d.autoFitMode="proportional",d.liveResize=a.liveResize,d.resizeStep=a.resizeStep,t.windowParent=null,o.appendChild(t),l.min=30,l.appendChild(s),d.orientation="top"===i||"bottom"===i?"horizontal":"vertical",n.appendChild(d),"right"===i||"bottom"===i?(d.appendChild(l),d.appendChild(o),a._items.splice(a._items.indexOf(e)+1,0,t)):(d.appendChild(o),d.appendChild(l),a._items.splice(a._items.indexOf(e),0,t)),o.size){const e=o.size;o.size="",o.size=e}else o.size=d[d._measurements.size]/2;a._handleAutoHiddenSplitterBars(),a._handleAutoSave(),a.$.fireEvent("stateChange",{type:"dock",item:t}),a._setSplitterBarVisibility()}}refresh(){this._handleLayout()}_handleLayout(){const e=this;if(e._items=[],"string"==typeof e.layout&&(e.layout=JSON.parse(e.layout)),null!==e.layout&&Array.isArray(e.layout))return void e._createItemsFromArray(e.layout);const t=Array.from(e.$.itemsContainer.children);e.$.itemsContainer.innerHTML="";for(let i=0;i<t.length;i++){"Smart-TABS-WINDOW"!==t[i].tagName&&t[i].parentElement.removeChild(t[i]),t[i].layout=e;const a=document.createElement("smart-splitter-item");a.appendChild(t[i]),e.$.itemsContainer.appendChild(a),e._items.push(t[i])}}_handleSnapping(e,t){const i=this;"simple"===i.snapMode?i._handleSimpleSnapping(e,t):i._handleAdvancedSnapping(t)}_handleAdvancedSnapping(e){const t=this;if(!t._dragDetails)return;if(t._snapFeedback&&!t._dragDetails.hoveredTabsWindow&&(t._snapFeedback._position=void 0,t._snapFeedback.areaHighlighter&&t._snapFeedback.areaHighlighter.remove(),t._snapFeedback.headerHighlighter&&t._snapFeedback.headerHighlighter.remove(),!t._dragDetails.hoveredItem)){if(t._snapFeedback.innerSnapElement&&t._snapFeedback.innerSnapElement.remove(),t._snapFeedback.outherSnapElement&&!t._dragDetails.isInsideTheLayout){const e=[].slice.call(t.$.container.children);for(let i=0;i<e.length;i++)e[i].className.indexOf("smart-docking-layout-snap")>-1&&t._snapFeedback.outherSnapElement.appendChild(e[i])}return}if(t._snapFeedback||(t._snapFeedback={innerSnapElement:document.createElement("div"),outherSnapElement:document.createElement("div"),areaHighlighter:document.createElement("div"),headerHighlighter:document.createElement("div")},t._snapFeedback.innerSnapElement.classList.add("smart-docking-layout-snap"),t._snapFeedback.areaHighlighter.classList.add("smart-docking-layout-snap-highlighter"),t._snapFeedback.headerHighlighter.classList.add("smart-docking-layout-snap-highlighter-header"),t._snapFeedback.innerSnapElement.innerHTML='\n <div>\n <div class="top">\n <div><div></div></div>\n </div>\n </div>\n <div>\n <div class="left">\n <div><div></div></div>\n </div>\n <div class="center">\n <div><div></div></div>\n </div>\n <div class="right">\n <div><div></div></div>\n </div>\n </div>\n <div>\n <div class="bottom">\n <div><div></div></div>\n </div>\n </div>',t._snapFeedback.outherSnapElement.innerHTML='\n <div class="smart-docking-layout-snap layout-top">\n <div><div></div></div>\n </div>\n <div class="smart-docking-layout-snap layout-left">\n <div><div></div></div>\n </div>\n <div class="smart-docking-layout-snap layout-right">\n <div><div></div></div>\n </div>\n <div class="smart-docking-layout-snap layout-bottom">\n <div><div></div></div>\n </div>'),t._snapFeedback.areaHighlighter.parentElement&&(t._snapFeedback.areaHighlighter.removeAttribute("position"),t._snapFeedback.areaHighlighter.classList.remove("smart-hidden")),t._snapFeedback.areaHighlighter.style.width="",t._snapFeedback.areaHighlighter.style.height="",t._snapFeedback._position=!t._dragDetails.hoveredItem||t._dragDetails.hoveredItem instanceof Smart.SplitterItem?"":t._dragDetails.hoveredItem.className,t._dragDetails.hoveredItem&&t._dragDetails.hoveredItem.className.indexOf("layout-")>-1){t._snapFeedback._position=t._snapFeedback._position.replace("smart-docking-layout-snap ",""),t._snapFeedback.areaHighlighter.setAttribute("position",t._snapFeedback._position);const e=t._dragDetails.selectedTabsWindow;return void(e.dropPosition.indexOf("all")>-1||e.dropPosition.indexOf(t._snapFeedback._position)>-1?(t._dragDetails.hoveredItem.setAttribute("show",""),t.$.container.appendChild(t._snapFeedback.areaHighlighter),t._dragDetails.hoveredTabsWindow=!0,["layout-left","layout-right"].indexOf(t._snapFeedback._position)>-1?t._snapFeedback.areaHighlighter.style.width=t._dragDetails.windowFeedback.style.width||t._dragDetails.windowFeedback.offsetWidth+"px":["layout-top","layout-bottom"].indexOf(t._snapFeedback._position)>-1&&(t._snapFeedback.areaHighlighter.style.height=t._dragDetails.windowFeedback.style.height||t._dragDetails.windowFeedback.offsetHeight+"px")):(t._dragDetails.hoveredItem.removeAttribute("show"),t._snapFeedback._position=void 0))}let i=t._dragDetails.hoveredTabsWindow?t._dragDetails.hoveredTabsWindow.dropPosition:["all"];if(0===i.length&&(i=["all"]),t._dragDetails.hoveredTabsWindow instanceof Smart.TabsWindow&&t._dragDetails.hoveredTabArea&&t._dragDetails.hoveredTabArea.closest(".smart-tabs-header-section")&&(i.indexOf("all")>-1||i.indexOf("header")>-1)){t._dragDetails.hoveredTabArea=t._dragDetails.hoveredTabArea.classList.contains("smart-tab-label-container")?t._dragDetails.hoveredTabArea:void 0;const i=t._getHeaderLabelDimensions(e),a=t._snapFeedback.headerHighlighter;a.style.width=i.width+"px",a.style.height=i.height+"px",a.style.top=i.top+"px",a.style.left=i.left+"px",a.classList.remove("smart-hidden"),t.getShadowRootOrBody().contains(a)||t.getShadowRootOrBody().appendChild(a),t._snapFeedback._position="header"}else t._scrollInterval&&(clearInterval(t._scrollInterval),t._scrollInterval=void 0),t._snapFeedback.headerHighlighter.style.width=t._snapFeedback.headerHighlighter.style.height=0;const a=t._snapFeedback.innerSnapElement.closest("smart-splitter-item");if(t._dragDetails.hoveredItem instanceof Smart.SplitterItem){if(a&&t._dragDetails.hoveredItem!==a&&a.removeChild(t._snapFeedback.innerSnapElement),t._dragDetails.hoveredItem.className.indexOf("auto-hide")<0){const e=t._snapFeedback.innerSnapElement.querySelectorAll(".top, .bottom, .left, .right, .center");for(let t=0;t<e.length;t++)i.indexOf(e[t].className)>-1||0===i.indexOf("all")?e[t].setAttribute("show",""):e[t].removeAttribute("show");t._snapFeedback.innerSnapElement.classList.remove("smart-hidden"),t._dragDetails.hoveredItem.contains(t._snapFeedback.innerSnapElement)||t._dragDetails.hoveredItem.appendChild(t._snapFeedback.innerSnapElement)}const e=[].slice.call(t._snapFeedback.outherSnapElement.children),o=t._dragDetails.selectedTabsWindow;let s;for(let i=0;i<e.length;i++)s=e[i].className.replace("smart-docking-layout-snap ",""),e[i].classList.remove("smart-hidden"),o.dropPosition.indexOf("all")>-1||o.dropPosition.indexOf(s)>-1?e[i].setAttribute("show",""):e[i].removeAttribute("show"),t.$.container.appendChild(e[i])}if(!t._snapFeedback._position||i.indexOf("all")<0&&i.indexOf(t._snapFeedback._position)<0)t._snapFeedback._position=t._dragDetails.hoveredTabArea=void 0;else if("center"===t._snapFeedback._position&&t._items.filter((e=>e.opened)).length>0&&(t._dragDetails.hoveredTabArea=t._dragDetails.hoveredTabsWindow.$.tabsElement.$.tabsHeaderSection),["left","right"].indexOf(t._snapFeedback._position)>-1?t._snapFeedback.areaHighlighter.style.width=t._dragDetails.windowFeedback.style.width||t._dragDetails.windowFeedback.offsetWidth+"px":["top","bottom"].indexOf(t._snapFeedback._position)>-1&&(t._snapFeedback.areaHighlighter.style.height=t._dragDetails.windowFeedback.style.height||t._dragDetails.windowFeedback.offsetHeight+"px"),t._snapFeedback.areaHighlighter.setAttribute("position",t._snapFeedback._position),"header"===t._snapFeedback._position)t._dragDetails.hoveredTabsWindow.$.tabsElement.$.tabContentSection.appendChild(t._snapFeedback.areaHighlighter);else{const e=t._dragDetails.hoveredTabsWindow.closest("smart-splitter").orientation;("left"!==t._snapFeedback._position&&"right"!==t._snapFeedback._position||"horizontal"!==e)&&("top"!==t._snapFeedback._position&&"bottom"!==t._snapFeedback._position||"vertical"!==e)||(t._snapFeedback._position="inside-"+t._snapFeedback._position),t._dragDetails.hoveredItem.closest("smart-splitter-item").appendChild(t._snapFeedback.areaHighlighter)}}_handleSimpleSnapping(e,t){const i=this;if(!e)return i._dragDetails&&(i._dragDetails.hoveredTabsWindow=i._dragDetails.hoveredTabArea=void 0),void(i._snapFeedback instanceof HTMLElement&&(i._snapFeedback._position=void 0,i.getShadowRootOrBody().contains(i._snapFeedback)&&i._snapFeedback.classList.add("smart-visibility-hidden")));i._snapFeedback||(i._snapFeedback=document.createElement("div"),i._snapFeedback.addEventListener("transitionend",(function(){i._snapFeedback.classList.contains("smart-visibility-hidden")&&i.getShadowRootOrBody().contains(i._snapFeedback)&&i._snapFeedback.remove()})));for(let e=0;e<i._snapFeedback.classList.length;e++)i._snapFeedback.classList[e].indexOf("smart-docking-snap-")>-1&&i._snapFeedback.classList.remove(i._snapFeedback.classList[e]);i._snapFeedback._position=e,e=e.replace("inside-",""),i._snapFeedback.classList.add("smart-docking-snap-"+e+"-feedback"),i._snapFeedback.classList.remove("smart-visibility-hidden");let a,o,s,n,d,l=0===e.indexOf("layout")?i._dragDetails.selectedTabsWindow.dropPosition:i._dragDetails.hoveredTabsWindow.dropPosition;0===l.length&&(l=["all"]),l.indexOf("all")>-1||l.indexOf(e)>-1?i._snapFeedback.removeAttribute("disabled"):(i._snapFeedback.setAttribute("disabled",""),i._snapFeedback._position=void 0);const r=i.getBoundingClientRect(),m=getComputedStyle(i._dragDetails.hoveredTabsWindow.$.contentSection),c=parseFloat(m.getPropertyValue("padding-left")||0),g=parseFloat(m.getPropertyValue("padding-right")||0),p=parseFloat(m.getPropertyValue("padding-top")||0),h=parseFloat(m.getPropertyValue("padding-bottom")||0),_=i.$.verticalHiddenItemsContainer.getElementsByClassName("auto-hide-left")[0],b=i.$.horizontalHiddenItemsContainer.getElementsByClassName("auto-hide-top")[0];switch(i._snapFeedback.style.display="",e){case"header":{const e=i._getHeaderLabelDimensions(t);a=e.width,o=e.height,s=e.top,n=e.left,a&&o||(i._snapFeedback.style.display="none");break}case"left":case"right":d=i._dragDetails.hoveredTabArea.getBoundingClientRect(),o=i._dragDetails.hoveredTabArea.offsetHeight,a=i._dragDetails.hoveredTabArea.offsetWidth/2,s=d.top+window.pageYOffset,n=d.left+("right"===e?i._dragDetails.hoveredTabArea.offsetWidth/2:0)+window.pageXOffset;break;case"top":case"bottom":d=i._dragDetails.hoveredTabArea.getBoundingClientRect(),o=i._dragDetails.hoveredTabArea.offsetHeight/2,a=i._dragDetails.hoveredTabArea.offsetWidth,s=d.top+window.pageYOffset+("bottom"===e?i._dragDetails.hoveredTabArea.offsetHeight/2:0),n=d.left+window.pageXOffset;break;case"layout-left":case"layout-right":i.getShadowRootOrBody().contains(i._snapFeedback)&&void 0===i._snapFeedback.maxWidth&&(i._snapFeedback.maxWidth=parseFloat(getComputedStyle(i._snapFeedback).getPropertyValue("max-width"))||0),a=.07*i.$.itemsContainer.offsetWidth-(c+g),i._snapFeedback.maxWidth&&(a=Math.min(i._snapFeedback.maxWidth,a)),o=i.$.itemsContainer.offsetHeight-(p+h),s=r.top+window.pageYOffset+p+(b?b.offsetHeight:0),n=r.left+window.pageXOffset+("layout-left"===e?c:0)+(_?_.offsetWidth:0)+("layout-right"===e?i.$.itemsContainer.offsetWidth-a-g:0);break;case"layout-top":case"layout-bottom":i.getShadowRootOrBody().contains(i._snapFeedback)&&void 0===i._snapFeedback.maxHeight&&(i._snapFeedback.maxHeight=parseFloat(getComputedStyle(i._snapFeedback).getPropertyValue("max-height"))||0),o=.07*i.$.itemsContainer.offsetHeight-(p+h),i._snapFeedback.maxHeight&&(o=Math.min(i._snapFeedback.maxHeight,o)),a=i.$.itemsContainer.offsetWidth-(c+g),s=r.top+window.pageYOffset+(b?b.offsetHeight:0)+("layout-bottom"===e?i.$.itemsContainer.offsetHeight-o+p:p),n=r.left+window.pageXOffset+c+(_?_.offsetWidth:0)}i._snapFeedback.style.height=o+"px",i._snapFeedback.style.width=a+"px",i._snapFeedback.style.left=n+"px",i._snapFeedback.style.top=s+"px",i._snapFeedback._position||(i._dragDetails.hoveredTabArea=void 0),i._snapFeedback&&!i.getShadowRootOrBody().contains(i._snapFeedback)&&i.getShadowRootOrBody().appendChild(i._snapFeedback)}_handleItemNesting(){const e=this;let t=e._dragDetails.windowFeedback;if(t.classList.contains("smart-tabs-window-feedback")){let i=document.createElement("smart-tabs-window");const a=e._dragDetails.selectedTabLabel.tab;i.min=30,i.opened=i.pinned=!0,i.headerPosition=e._dragDetails.selectedTabsWindow.headerPosition,i.tabCloseButtons=e._dragDetails.selectedTabsWindow.tabCloseButtons,e._dragDetails.selectedTabsWindow.autoHide?(i.tabTextOrientation=e._dragDetails.selectedTabsWindow._originalTextOrientation||"horizontal",i.tabPosition=e._dragDetails.selectedTabsWindow._originalTabPosition||"top"):(i.tabPosition=e._dragDetails.selectedTabsWindow.tabPosition,i.tabTextOrientation=e._dragDetails.selectedTabsWindow.tabTextOrientation),i.animation=e.animation,i.rightToLeft=e.rightToLeft,i.theme=e.theme,e._snapFeedback._position.indexOf("top")>-1||e._snapFeedback._position.indexOf("bottom")>-1?i.size=parseFloat(t.style.height)||t.offsetHeight:i.size=parseFloat(t.style.width)||t.offsetWidth,i.label=a.label,i.id="",e._dragDetails.windowFeedback.removeChild(a),i.appendChild(a),i.style.left=i.style.top="",i.draggable=void 0===a.draggable||a.draggable,i.floatable=void 0===a.floatable||a.floatable,t=i}else{const i=t.context;t.context=t,t.windowParent=null,t.context=i,t.animation=e.animation,t.rightToLeft=e.rightToLeft,t.theme=e.theme,e._snapFeedback._position.indexOf("top")>-1||e._snapFeedback._position.indexOf("bottom")>-1?t.size=parseFloat(t.style.height)||t.offsetHeight:t.size=parseFloat(t.style.width)||t.offsetWidth,t.style.top=t.style.left=t.style.width=t.style.height="",t.pinned=!0,t.locked=t._originalLocked,t._originalTabPosition||(e._dragDetails.selectedTabsWindow.classList.contains("smart-docking-layout-auto-hide-window")?t._originalTabPosition="top":t._originalTabPosition=t.tabPosition)}return e._insert(e._items.indexOf(e._dragDetails.hoveredTabsWindow),t,e._snapFeedback._position),e._disownTabWindow(t),t}_handleWindowOnDrag(){const e=this;if(e._dragDetails.windowFeedback.hasAttribute("dragged"))return;let t=e._dragDetails.selectedItem,i=e._dragDetails.selectedTabsWindow,a=i.closest("smart-splitter");if(e._setWindowFeedbackSize(),i!==e.$.autoHideWindow||e._dragDetails._parentInfo){if(a&&a!==e.$.itemsContainer&&1===a._items.length)for(;1===a._items.length&&a!==e.$.itemsContainer;)a=a.parentElement.closest("smart-splitter"),t=t.parentElement.closest("smart-splitter-item");if(!e._dragDetails._parentInfo)if(e._dragDetails._parentInfo={},i.closest("smart-docking-layout")===e||e._getClosestDockingLayout(i)===e){if(i.autoHide)e._dragDetails._parentInfo.closestItem=e.$.itemsContainer,e._dragDetails._parentInfo.position=i.tabPosition,i._originalTabPosition&&(i.tabPosition=i._originalTabPosition),i._originalTextOrientation&&(i.tabTextOrientation=i._originalTextOrientation);else if(a){const i=a._items.indexOf(t);1===a._items.length?(e._dragDetails._parentInfo.position="horizontal"===a.orientation?"top":"left",e._dragDetails._parentInfo.closestItem=void 0):(0===i?(e._dragDetails._parentInfo.position="horizontal"===a.orientation?"top":"left",e._dragDetails._parentInfo.closestItem=a._items[i+1].getElementsByTagName("smart-tabs-window")[0]):(e._dragDetails._parentInfo.position="horizontal"===a.orientation?"bottom":"right",e._dragDetails._parentInfo.closestItem=a._items[i-1].getElementsByTagName("smart-tabs-window")[0]),e._dragDetails._parentInfo.closestItemSize=e._dragDetails._parentInfo.closestItem[a._measurements.size],a!==e._dragDetails._parentInfo.closestItem.closest("smart-splitter")?a===e.$.itemsContainer?e._dragDetails._parentInfo.position="layout-"+e._dragDetails._parentInfo.position:e._dragDetails._parentInfo.position="outside-"+e._dragDetails._parentInfo.position:2===a._items.length&&(e._dragDetails._parentInfo.position="inside-"+e._dragDetails._parentInfo.position))}}else e._dragDetails._parentInfo.position={top:i.offsetTop,left:i.offsetLeft}}else e._dragDetails._parentInfo={},i._tabsWindow.items.length>1?(e._dragDetails._parentInfo.closestItem=i._tabsWindow,e._dragDetails._parentInfo.position=e.$.autoHideWindow._tab.index):(e._dragDetails._parentInfo.closestItem=e.$.itemsContainer,e._dragDetails._parentInfo.position=i._tabsWindow.tabPosition,e._dragDetails.windowFeedback.headerButtons=e.$.autoHideWindow._tabsWindow.headerButtons,e._noStateChangeFiring=!0,e.undock(e._dragDetails.windowFeedback)),e._originalTabIndex=void 0;if(a)e._dragDetails.windowFeedback.size=e._dragDetails.windowFeedback[a._measurements.size];else if(i===e.$.autoHideWindow){const t=e.$.autoHideWindow._tabsWindow.tabPosition;e._dragDetails.windowFeedback.size=e.$.autoHideWindow["offset"+("top"===t||"bottom"===t?"Height":"Width")]}e._dragDetails.windowFeedback.setAttribute("dragged",""),e._dragDetails.windowFeedback.parentElement!==e.getShadowRootOrBody()&&(e._dragDetails.windowFeedback.windowParent="body",e.getShadowRootOrBody().appendChild(e._dragDetails.windowFeedback),e._ownTabWindow(e._dragDetails.windowFeedback)),("advanced"!==e.snapMode&&"none"===e._dragDetails.windowFeedback.tabPosition||e._dragDetails.windowFeedback.autoHide)&&(e._dragDetails.windowFeedback.tabPosition=e._dragDetails.windowFeedback._originalTabPosition||"top"),e._dragDetails.windowFeedback.autoHide=!1,e._dragDetails.windowFeedback.allowToggle=!1;const o=e._items.indexOf(e._dragDetails.windowFeedback);if(o>-1&&e._items.splice(o,1),t&&t.parentElement){if(0!==e._items.filter((e=>e.opened)).length||e.$.placeholderItem.parentElement||(e.$.itemsContainer._items[0].className.indexOf("auto-hide")>-1?e.$.itemsContainer.insert(1,e.$.placeholderItem):e.$.itemsContainer.insert(0,e.$.placeholderItem)),a){if(a.removeChild(t),a===e.$.itemsContainer){const e=a.querySelectorAll("smart-splitter");for(let t=0;t<e.length;t++)"vertical"===e[t].orientation&&e[t].refresh()}e._dragDetails.initialSplitterOrientation="horizontal"===a.orientation,e._removeUnneccessaryItems(a)}else i===e.$.autoHideWindow&&0===e.$.autoHideWindow._tabsWindow.items.length&&e.$.autoHideWindow._tabsWindow.closest("smart-splitter").removeChild(t);e._setAutoHidePaddings()}}_setWindowFeedbackSize(){const e=this,t=e._dragDetails.selectedTabsWindow;if(!e._dragDetails._isWindowFeedbackSizeSet){let i,a;t.autoHide&&t._autoHideWindow?"top"===t.tabPosition||"bottom"===t.tabPosition?(i=t.offsetWidth+"px",a=t._autoHideWindow.offsetHeight+"px"):(i=t._autoHideWindow.offsetWidth+"px",a=t.offsetHeight+"px"):(i=t.style.width||t.offsetWidth+"px",a=t.style.height||t.offsetHeight+"px"),e._dragDetails.windowFeedback.style.width=i,e._dragDetails.windowFeedback.style.height=a,e._dragDetails._isWindowFeedbackSizeSet=!0}}_insert(e,t,i){const a=this;let o;if("string"==typeof e?(o=a._getItemById(t),o&&(e=a._items.indexOf(o))):e instanceof Smart.TabsWindow&&a.contains(e)&&(e=a._items.indexOf(e)),"number"!=typeof e)return void a.error(a.localize("invalidIndex",{elementType:a.nodeName.toLowerCase(),method:arguments[3]||"insert"}));if("object"!=typeof t||t instanceof HTMLElement){if("string"==typeof t)t=a._getItemById(t);else if(t instanceof Smart.TabItem){let e=t.closest("smart-tabs-window");if(!e&&a.shadowRoot&&t.getRootNode()&&t.getRootNode().host&&(e=t.getRootNode().host.closest("smart-tabs-window")),e&&e.autoHide)return void a._dock(e,i);t=a._createTabsWindowFromObject({label:t.label,items:[{label:t.label,content:t.content}]})}}else t=a._createTabsWindowFromObject(t);if(!(t&&t instanceof Smart.TabsWindow))return void a.error(a.localize("invalidNode",{elementType:a.nodeName.toLowerCase(),method:arguments[3]||"insert"}));if((a.shadowRoot||a).contains(t)&&t.autoHide)return void a._dock(t,i);if(i&&i.indexOf("layout")>-1){const t=a._items.filter((e=>e.opened));e=t>0?i.indexOf("left")>-1||i.indexOf("top")>-1?0:t[t.length-1]:0}o=a._items[e],a._items[e]&&!a._items[e].opened&&(o=a._items.filter((e=>e.opened))[0]),0===a._items.length&&(a.$.itemsContainer.orientation=i.indexOf("left")>-1||i.indexOf("right")>-1?"vertical":"horizontal"),t.style.top=t.style.left="",t.style.width=t.style.height="",t.opened=!0,t.pinned=!0;const s=t.closest("smart-splitter-item");if(o){if(delete t._parentInfo,t.autoHide&&(a.$.verticalHiddenItemsContainer.contains(t)?a.$.verticalHiddenItemsContainer.removeChild(t.closest("smart-splitter-item")):a.$.horizontalHiddenItemsContainer.contains(t)&&a.$.horizontalHiddenItemsContainer.removeChild(t.closest("smart-splitter-item"))),i?a._handleItemPositionInserting(t,o,i):a.insertBefore(t,o||null),s){const e=s.closest("smart-splitter");e&&e.removeChild(s)}if(t.autoHide)a._autoHide(t,i);else{const e=document.scrollingElement||document.documentElement,i=e.scrollLeft,a=e.scrollTop;t.focus(),window.scrollTo(i,a)}a._items.filter((e=>e.opened)).length>0&&a.$.placeholderItem.parentElement&&a.$.itemsContainer.removeChild(a.$.placeholderItem),t.layout=a,t.resizeMode="none",t.minimized=!1,t.maximized=!1,a._setDockedItemsHeaderButtons(t)}else if(a.insertBefore(t,o||null),s){let e=s.closest("smart-splitter");!e&&a.shadowRoot&&s.getRootNode()&&s.getRootNode().host&&(e=s.getRootNode().host.closest("smart-splitter")),e&&e.removeChild(s)}}_itemsContainerCloseHandler(e){const t=this;if(e.target instanceof Smart.Tabs){const i=e.target;return void(0===i._tabs.length&&t.removeChild(i.closest("smart-tabs-window")))}if(!(e.target instanceof Smart.TabsWindow))return;const i=e.target.closest("smart-splitter-item"),a=i.closest("smart-splitter");a&&(a.removeChild(i),t._removeUnneccessaryItems(a)),e.target.close(),e.target.remove(),0!==t._items.filter((e=>e.opened)).length||t.$.placeholderItem.parentElement||t.$.itemsContainer.appendChild(t.$.placeholderItem)}_itemsContainerAutoHideHandler(e){const t=this,i=e.detail.button,a=i.closest("smart-tabs-window")||i.getRootNode().host;if(!a)return;const o=a.closest("smart-splitter-item");if(!o)return;const s=a.closest("smart-splitter");if(!s)return;const n=s.items,d="horizontal"===s.orientation,l=n.indexOf(o)>=n.length/2;d?l?t.autoHideBottom(a):t.autoHideTop(a):l?t.autoHideRight(a):t.autoHideLeft(a)}_itemsContainerMenuHandler(e){const t=this,i=t.$.menu,a=t.getBoundingClientRect(),o=e.detail.button.getBoundingClientRect();i.open(o.left-a.left,o.top-a.top),t._menuOpenButton=e.detail.button}_itemsContainerResizeHandler(){const e=event.target._items?event.target._items[event.detail.firstItem.index]:void 0;this._handleAutoSave(),this.$.fireEvent("stateChange",{type:"resize",item:e})}_keyDownHandler(e){const t=this;if(!t.disabled&&t.hasAttribute("dragged")&&t._snapFeedback)if(e.preventDefault(),"Control"===e.key)if("advanced"===t.snapMode){for(let e in t._snapFeedback)if(t._snapFeedback[e]instanceof HTMLElement){if("outherSnapElement"===e){const e=t.$.container.children;for(let t=0;t<e.length;t++)e[t].className.indexOf("smart-docking-layout-snap")>-1&&e[t].classList.add("smart-hidden");continue}t._snapFeedback[e].classList.add("smart-hidden")}}else t._snapFeedback.classList.add("smart-hidden");else"Escape"===e.key&&t._cancelDragOperation()}_keyUpHandler(e){const t=this;if(!t.disabled&&"Control"===e.key&&t.hasAttribute("dragged")&&t._snapFeedback)if(e.preventDefault(),"advanced"===t.snapMode){for(let e in t._snapFeedback)if(t._snapFeedback[e]instanceof HTMLElement){if("outherSnapElement"===e){const e=t.$.container.children;for(let t=0;t<e.length;t++)e[t].className.indexOf("smart-docking-layout-snap")>-1&&e[t].classList.remove("smart-hidden");continue}t._snapFeedback[e].classList.remove("smart-hidden")}t._handleSnapping()}else t._snapFeedback.classList.remove("smart-hidden")}_loadState(e){this._createItemsFromArray(e,!0)}_removeAll(e){const t=this;function i(e){const t=e._items;if(t)for(let i=0;i<t.length;i++)t[i].$.hasClass("smart-docking-layout-item-holder")||e.removeChild(t[i])}t.$.itemsContainer.removeAll(),i(t.$.horizontalHiddenItemsContainer),i(t.$.verticalHiddenItemsContainer),t._items=[],e||t.$.itemsContainer.appendChild(t.$.placeholderItem)}_removeUnneccessaryItems(e){if(!e)return;const t=this;let i;for(;e._items&&0===e._items.length&&e!==t.$.itemsContainer;)(i=e.closest("smart-splitter-item")).removeChild(e),(e=i.closest("smart-splitter")).removeChild(i)}_returnItemToOrigin(e){const t=this;if(!e||!t._dragDetails)return;let i=t._dragDetails._parentInfo;if(i)if("number"==typeof i.position){const t=[].slice.call(e.items);for(let a=0;a<t.length;a++)e.removeChild(t[a]),i.closestItem.insert(i.position,{node:t[a]})}else"object"==typeof i.position?(e.style.top=i.position.top+"px",e.style.left=i.position.left+"px"):i.closestItem?i.closestItem===t.$.itemsContainer?t._autoHide(e,i.position):t._insert(t._items.indexOf(i.closestItem),e,i.position):t.appendChild(e)}_setAutoHidePaddings(){const e=this,t=e.$.verticalHiddenItemsContainer.getElementsByClassName("auto-hide-left")[0],i=e.$.verticalHiddenItemsContainer.getElementsByClassName("auto-hide-right")[0],a=e.$.horizontalHiddenItemsContainer.getElementsByClassName("auto-hide-top")[0],o=e.$.horizontalHiddenItemsContainer.getElementsByClassName("auto-hide-bottom")[0];a&&(a.style.paddingLeft=t?t.offsetWidth+"px":"",a.style.paddingRight=i?i.offsetWidth+"px":""),o&&(o.style.paddingLeft=t?t.offsetWidth+"px":"",o.style.paddingRight=i?i.offsetWidth+"px":"")}_setDockedItemsHeaderButtons(e){let t=e.headerButtons,i=["close","maximize","minimize"],a=t.filter((e=>i.indexOf(e)<0));a=0===a.length?["close","autoHide"]:t,e.headerButtons=a}_setFloatingItemsHeaderButtons(e){const t=this._dragDetails,i=["close","autoHide"];t&&t.selectedTabsWindow&&t.selectedTabsWindow.classList.contains("smart-docking-layout-auto-hide-window")?e._originalTabPosition="top":e._originalTabPosition=e.tabPosition;let a=e.headerButtons.filter((e=>i.indexOf(e)<0));a=0===a.length?["close","maximize","minimize"]:e.headerButtons,e.headerButtons=a}_setFocusable(){const e=this;if(e.disabled||e.unfocusable)e.removeAttribute("tabindex");else{let t=e.tabIndex>0?e.tabIndex:0;e.setAttribute("tabindex",t)}}_setSnappingMarkers(e,t){const i=this;let a=Smart.Utilities.Core.isMobile?document.elementFromPoint(e.pageX-window.pageXOffset,e.pageY-window.pageYOffset):e.originalEvent.target,o=a.closest&&a.closest("smart-docking-layout");if((a.shadowRoot||i.isInShadowDOM)&&(a=e.originalEvent.composedPath()[0]),o||(o=i._getClosestDockingLayout(a)),"advanced"===i.snapMode){if(e.ctrlKey)return;return i._dragDetails.hoveredItem=a.closest(".smart-docking-layout-snap")?a:i._dragDetails.hoveredItem&&i._dragDetails.hoveredItem.getElementsByTagName("smart-splitter").length>0?void 0:i._dragDetails.hoveredItem,i._dragDetails.hoveredTabArea=t?a.closest(".smart-tab-label-container")||t:i._dragDetails.hoveredTabArea,void i._handleSnapping("",e)}if(!o||o!==i)return void i._handleSnapping();if(!i._dragDetails.hoveredTabsWindow||i._dragDetails.windowFeedback!==i.$.tabsWindowFeedback&&i._dragDetails.hoveredTabsWindow===i._dragDetails.selectedTabsWindow)return i._dragDetails.hoveredItem=a.closest(".smart-docking-layout-snap")?a:i._dragDetails.hoveredItem&&i._dragDetails.hoveredItem.getElementsByTagName("smart-splitter").length>0?void 0:i._dragDetails.hoveredItem,void i._handleSnapping();let s={};if(i._dragDetails.hoveredItem){const e=i._dragDetails.hoveredItem.getBoundingClientRect(),t=i.$.itemsContainer.getBoundingClientRect();s.left=i._dragDetails.hoveredItem?e.left-t.left:0,s.top=i._dragDetails.hoveredItem?e.top-t.top:0}else s.left=s.top=0;const n=i.getBoundingClientRect(),d=i.$.itemsContainer.getBoundingClientRect(),l=Math.max(0,e.pageX-window.pageXOffset-n.left-(d.left-n.left)),r=Math.max(0,e.pageY-window.pageYOffset-n.top-(d.top-n.top));if(i._dragDetails.hoveredTabArea===t)i._dragDetails.hoveredTabArea=a.closest(".smart-tab-label-container"),i._handleSnapping("header",e);else if(i._dragDetails.hoveredItem&&!i._dragDetails.hoveredTabsWindow.autoHide)if(l<.05*i.$.itemsContainer.offsetWidth&&l<.15*i._dragDetails.hoveredItem.offsetWidth)i._handleSnapping("layout-left");else if(l>.95*i.$.itemsContainer.offsetWidth&&l>.85*i._dragDetails.hoveredItem.offsetWidth+i._dragDetails.hoveredItem.offsetLeft)i._handleSnapping("layout-right");else if(r<.05*i.$.itemsContainer.offsetHeight)i._handleSnapping("layout-top");else if(r>.95*i.$.itemsContainer.offsetHeight)i._handleSnapping("layout-bottom");else if(a.closest(".smart-tabs-content-section")){const e=i._dragDetails.hoveredItem.closest("smart-splitter").orientation;l<s.left+.3*i._dragDetails.hoveredTabArea.offsetWidth?i._handleSnapping("horizontal"===e?"inside-left":"left"):l>s.left+.7*i._dragDetails.hoveredTabArea.offsetWidth?i._handleSnapping("horizontal"===e?"inside-right":"right"):r<s.top+i._dragDetails.hoveredTabArea.offsetTop+.5*i._dragDetails.hoveredTabArea.offsetHeight+i._dragDetails.hoveredTabsWindow.$.headerSection.offsetHeight?i._handleSnapping("vertical"===e?"inside-top":"top"):i._handleSnapping("vertical"===e?"inside-bottom":"bottom")}else i._handleSnapping();else i._handleSnapping()}_setSplitterBarVisibility(){const e=this,t=e.$.itemsContainer.getElementsByTagName("smart-splitter-bar");for(let i=0;i<t.length;i++)e.hideSplitterBars?t[i].hide():t[i].show()}_validateWindowPosition(e){e.$.addClass("no-transition","");const t=document.scrollingElement||document.documentElement;t.scrollTop>0?e.style.top=(parseFloat(e.style.top)||e.offsetTop)+"px":e.style.top=Math.max(0,Math.min(parseFloat(e.style.top)||e.offsetTop,document.documentElement.clientHeight-e.offsetHeight))+"px",t.scrollLeft>0?e.style.left=(parseFloat(e.style.left)||e.offsetLeft)+"px":e.style.left=Math.max(0,Math.min(parseFloat(e.style.left)||e.offsetLeft,document.documentElement.clientWidth-e.offsetWidth))+"px",requestAnimationFrame((()=>e.$.removeClass("no-transition")))}_ownTabWindow(e){const t=this,i=e.id;let a=t.getAttribute("aria-owns");a?(a=a.split(" "),-1===a.indexOf(i)&&(a.push(i),t.setAttribute("aria-owns",a.join(" ")))):t.setAttribute("aria-owns",i)}_disownTabWindow(e){const t=this,i=e.id;let a=t.getAttribute("aria-owns");if(!a)return;a=a.split(" ");const o=a.indexOf(i);-1!==o&&(a.splice(o,1).join(" "),a.length>0?t.setAttribute("aria-owns",a):t.removeAttribute("aria-owns"))}_resizeHandler(){const e=this;e.$.autoHideWindow.opened&&e.$.autoHideWindow._tabsWindow&&e.$.autoHideWindow._tabsWindow._setAutoHideWindowSize(e.$.autoHideWindow._tabsWindow.selectedIndex)}});
21
21
 
22
22
  /***/ }),
23
23
 
@@ -45,14 +45,14 @@ Smart("smart-splitter-item",class extends Smart.ContentElement{static get proper
45
45
  /***/ 9532:
46
46
  /***/ (() => {
47
47
 
48
- Smart("smart-tab-item",class extends Smart.ContentElement{static get properties(){return{closeButtonHidden:{value:!1,type:"boolean"},index:{value:null,type:"number?"},selected:{value:!1,type:"boolean"},label:{value:"",type:"string"},labelSize:{value:null,type:"number?"}}}get enableShadowDOM(){return!1}render(){this.setAttribute("role","tabpanel"),this.firstElementChild.setAttribute("role","presentation"),super.render()}attached(){const e=this;super.attached(),e.isCompleted&&(e.$.removeClass("right"),e.$.removeClass("left"),e.$.removeClass("top"),e.$.removeClass("bottom"),e.$.removeClass("animate"))}propertyChangedHandler(e,t,o){super.propertyChangedHandler(e,t,o);const n=this;if(n._preventPropertyChangedHandler)delete n._preventPropertyChangedHandler;else switch(e){case"closeButtonHidden":n.$.fireEvent("closeButtonVisibilityChange",{hidden:o});break;case"disabled":{const e=n.tabLabelContainer;e&&(o?e.setAttribute("disabled",""):e.removeAttribute("disabled"));break}case"index":n.$.fireEvent("indexChange",{newIndex:o,oldIndex:t,tabItem:n});break;case"label":{const e=n.closest("smart-tabs");e?e._updateTabLabel(n,o):n.setAttribute("aria-label",o);break}case"selected":n.tabLabelContainer&&n.tabLabelContainer.setAttribute("aria-selected",o);break;case"labelSize":n.$.fireEvent("labelSizeChange",{size:o})}}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)))}t.firstElementChild.appendChild(e)}insertBefore(e,t){const o=this;if(!o.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.insertBefore.apply(o,e.concat(Array.prototype.slice.call(arguments)))}o.firstElementChild.insertBefore(e,t)}_setIndex(e){const t=this,o=t.context;t.context=t,t.index=e,t.context=o}}),Smart("smart-tab-items-group",class extends Smart.ContentElement{static get properties(){return{label:{value:"",type:"string"},labelSize:{value:null,type:"number?"}}}get enableShadowDOM(){return!1}template(){return""}propertyChangedHandler(e,t,o){super.propertyChangedHandler(e,t,o);const n=this;if(n._preventPropertyChangedHandler)delete n._preventPropertyChangedHandler;else switch(e){case"label":{const e=n.closest("smart-tabs");if(!e)return;const a=e._groups.indexOf(t);if(a<0)break;const r=Array.from(e.$.tabStrip.querySelectorAll(".smart-tab-group-container")).find((e=>e.group===t));Array.from(n.querySelectorAll("smart-tab-item")).forEach((e=>e.group=o)),r.querySelector(".smart-tab-label-text-container").innerHTML=o,r.setAttribute("aria-label",o),r.group=o,e._groups[a]=o;break}case"labelSize":this.$.fireEvent("labelSizeChange",{size:o})}}}),Smart("smart-tabs",class extends Smart.BaseElement{static get properties(){return{addNewTab:{value:!1,type:"boolean"},addNewTabAutoCreate:{value:!0,type:"boolean"},allowToggle:{value:!1,type:"boolean"},closeButtonMode:{value:"default",allowedValues:["default","selected"],type:"string"},closeButtons:{value:!1,type:"boolean"},collapsed:{value:!1,type:"boolean"},collapsible:{value:!1,type:"boolean"},dataSource:{value:null,type:"array?",reflectToAttribute:!1},enableMouseWheelAction:{value:!1,type:"boolean"},messages:{value:{en:{ambiguousIndexes:"smart-tabs: Initially set smart-tab-item indexes are ambiguous and are ignored in favour of the HTML structure.",detailsObjectRequired:'smart-tabs: The method "insert" requires a details Object to be passed as a second argument.',invalidIndex:'smart-tabs: "{{method}}" method accepts an index of type number.',referenceNodeNotChild:"smart-tabs: Passed {{argument}} is not part of this smart-tabs element.",tabItemRequired:'smart-tabs: The method "{{method}}" requires a "smart-tab-item" element to be passed as an argument.'}},type:"object",extend:!0},name:{value:"",type:"string"},overflow:{value:"auto",allowedValues:["auto","hidden","scroll"],type:"string"},reorder:{value:!1,type:"boolean"},resize:{value:!1,type:"boolean"},scrollButtonsPosition:{value:"both",allowedValues:["near","far","both"],type:"string"},scrollMode:{value:"paging",allowedValues:["paging","continuous"],type:"string"},selectedIndex:{value:null,type:"number?"},selectionMode:{value:"click",allowedValues:["click","dblclick","mouseenter","none"],type:"string"},tabLayout:{value:"scroll",allowedValues:["scroll","dropDown","wrap","shrink"],type:"string",defaultReflectToAttribute:!0},tabPosition:{value:"top",allowedValues:["top","bottom","left","right","hidden"],type:"string"},tabTextOrientation:{value:"horizontal",allowedValues:["horizontal","vertical"],type:"string"}}}static get listeners(){return{closeButtonVisibilityChange:"_closeButtonVisibilityChangeHandler",indexChange:"_indexChangeHandler",keydown:"_keydownHandler",labelSizeChange:"_labelSizeChangeHandler",resize:"_applyTabOverflow",styleChanged:"_applyTabOverflow","container.dblclick":"_containerHandler","container.down":"_containerHandler","container.mouseout":"_containerHandler","container.mouseover":"_containerHandler","scrollButtonFar.click":"_scrollButtonClickHandler","scrollButtonNear.click":"_scrollButtonClickHandler","tabContentSection.transitionend":"_tabContentSectionTransitionendHandler","tabsHeaderItems.wheel":"_tabsHeaderItemsWheelHandler","tabStrip.mouseleave":"_tabStripMouseleaveHandler","tabStrip.move":"_tabStripMoveHandler","tabStrip.touchmove":"_tabStripTouchmoveHandler","tabStrip.touchstart":"_tabStripTouchstartHandler","document.move":"_documentMoveHandler","document.selectstart":"_selectStartHandler","document.up":"_documentUpHandler"}}static get requires(){return{"Smart.RepeatButton":"smart.button.js"}}static get styleUrls(){return["smart.tabs.css"]}template(){return'<div id="container">\n <div id="tabsHeaderSection" class="smart-header smart-tabs-header-section">\n <div id="tabsHeaderItems" class="smart-tabs-header-items">\n <smart-repeat-button id="scrollButtonNear" class="smart-tabs-scroll-button smart-nav-button smart-spin-button smart-hidden" animation="[[animation]]" unfocusable>\n <div id="arrowNear" class="smart-arrow" aria-hidden="true"></div>\n </smart-repeat-button>\n <div id="tabStrip" class="smart-tab-strip"></div>\n <smart-repeat-button id="scrollButtonFar" class="smart-tabs-scroll-button smart-nav-button smart-spin-button smart-hidden" animation="[[animation]]" unfocusable>\n <div id="arrowFar" class="smart-arrow" aria-hidden="true"></div>\n </smart-repeat-button>\n <div id="dropDownButton" class="smart-drop-down-button" role="button" aria-expanded="false" aria-label="Open tab selection popup">\n <div id="dropDownButtonArrow" class="smart-drop-down-button-arrow smart-unselectable" aria-hidden="true"></div>\n </div>\n <span id="tabSelectionBar" class="smart-tabs-selection-bar" role="presentation"></span>\n <div id="resizeToken" class="smart-tabs-resize-token smart-hidden" role="presentation"></div>\n </div>\n <div id="tabHeaderControls" class="smart-tabs-header-controls"></div>\n </div>\n <div id="tabContentSection" class="smart-tabs-content-section">\n <content></content>\n </div>\n <div id="dropDownButtonDropDown" class="smart-drop-down-button-drop-down smart-hidden"></div>\n <input id="hiddenInput" type="hidden" name="[[name]]">\n </div>'}attached(){const e=this;super.attached(),e.isCompleted&&e.isRendered&&e._applyTabOverflow()}ready(){super.ready(),this._flexWritingModeNoFullSupport=!0}render(){this._createElement(),super.render()}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 instanceof Smart.TabItem||t.error(t.localize("tabItemRequired",{method:"appendChild"})),t.isRendered?t.insert(t._tabs.length,{node:e}):t.whenRendered((()=>t.insert(t._tabs.length,{node:e})))}collapse(){const e=this;e.collapsible&&!e.collapsed&&(e.collapsed=!0)}ensureVisible(e){const t=this;if(null===e||"wrap"===t.tabLayout||"shrink"===t.tabLayout||"hidden"===t.tabPosition)return;t._validateIndex(e,"ensureVisible"),e=Math.max(0,Math.min(e,t._tabs.length-1));const o=t._tabs[e].group,n=t.$.tabStrip,a=n.getBoundingClientRect(),r=(null===o?t._tabLabelContainers[e]:t._groupLabels[t._groups.indexOf(o)]).getBoundingClientRect();"top"===t.tabPosition||"bottom"===t.tabPosition?(a.left>r.left?n.scrollLeft+=Math.round(r.left-a.left):n.scrollLeft+=Math.round(r.right-a.right),t.addNewTab&&e===t._tabs.length-1&&(n.scrollLeft=n.scrollWidth-n.offsetWidth)):"left"!==t.tabPosition&&"right"!==t.tabPosition||!(a.top>r.top||a.bottom<r.bottom)?(n.scrollLeft=t._getScrollLeft(0),t.$.tabStrip.scrollTop=0):n.scrollTop+=Math.round(r.bottom-n.offsetHeight-a.top),t._updateScrollButtonVisibility(),t.resize&&t._getTabCoordinates()}expand(){const e=this;e.collapsible&&e.collapsed&&(e.collapsed=!1)}getOffsetFromEdgeOfElement(e){const t=this;t._validateIndex(e,"getOffsetFromEdgeOfElement"),e=Math.max(0,Math.min(e,t._tabs.length-1));const o=t._tabs[e],n=t.tabPosition;return"hidden"!==n?Math.abs(o.getBoundingClientRect()[n]-t.getBoundingClientRect()[n]):o.getBoundingClientRect().top-t.getBoundingClientRect().top}getTabs(){const e=this,t=e._tabs;return t?t.slice(0):Array.from(e.shadowRoot?e.shadowRoot.querySelectorAll("smart-tab-item"):e.getElementsByTagName("smart-tab-item"))}insert(e,t){const o=this;let n,a;if(o._validateIndex(e,"insert"),(void 0===t||void 0===t.label&&void 0===t.content&&void 0===t.node)&&o.error(o.localize("detailsObjectRequired")),void 0===t.node)n=t.group,a=document.createElement("smart-tab-item"),a.label=void 0!==t.label?t.label:"",a.labelSize=void 0!==t.labelSize?t.labelSize:null,a.content=t.content;else if(a=t.node,void 0!==a.index&&null!==a.index){const e=a.context;a.context=a,a.index=null,a.context=e}a.$.addClass("smart-visibility-hidden"),a.group=null;const r=o._addTabLabelContainer(a),s=r.tabLabelContainer,i=r.dropDownLabelContainer;s.tab=a,a.tabLabelContainer=s;const l={index:e,tab:a,tabLabelContainer:s,dropDownLabelContainer:i};if(o._setAriaRelations(a,s,i),0===o._groups.length&&void 0===n)o._insertNoGrouping(l);else if(null!=n){l.group=n;const e=o.$.tabContentSection.querySelector('smart-tab-items-group[label="'+n+'"]');null!==e?(l.smartTabItemsGroup=e,o._insertIntoExistingGroup(l)):o._insertIntoNewGroup(l)}else o._insertNearAGroup(l);o._getReorderItems(),null===o.selectedIndex&&!o.allowToggle&&o._tabs.length&&o._select(0,!0),null!==a.group&&null!==a.labelSize&&"shrink"!==o.tabLayout&&s.style.removeProperty([o._orientationSettings.dimension]),o._applyTabOverflow()}insertBefore(e,t){const o=this;if(!o.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.insertBefore.apply(o,e.concat(Array.prototype.slice.call(arguments)))}let n;e instanceof Smart.TabItem&&(null==t||t instanceof Smart.TabItem)||o.error(o.localize("tabItemRequired",{method:"insertBefore"})),o.contains(e)&&(e.selected&&(n=!0),o.removeAt(e.index)),null!=t?(o.contains(t)||o.error(o.localize("referenceNodeNotChild",{argument:"referenceNode"})),o.insert(t.index,{node:e})):o.insert(o._tabs.length,{node:e}),n&&o._select(e.index,!1)}refreshTabHeader(){const e=this;"scroll"===e.tabLayout&&e._checkOverflowScroll(),e._positionTabSelectionBar(e._tabLabelContainers?e._tabLabelContainers[e.selectedIndex]:void 0,!0)}removeAt(e){const t=this,o=t._tabs.length;if(0===o)return;t._validateIndex(e,"remove"),e=Math.max(0,Math.min(e,o-1));const n=t._tabs[e],a=t._tabLabelContainers[e];if(a._lazyRemove?a.classList.add("smart-hidden"):a.parentElement.removeChild(a),n.parentElement.removeChild(n),null!==n.group){const e=t.$.tabContentSection.querySelector('smart-tab-items-group[label="'+n.group+'"]');if(0===e.childElementCount){const o=t._groups.indexOf(n.group);t.$.tabStrip.removeChild(t._groupLabels[o]),t._groups.splice(o,1),t.$.container.removeChild(t._groupLabels[0].dropDown),t._groupLabels.splice(o,1),t.$.tabContentSection.removeChild(e)}}o>1?e<t.selectedIndex?t.selectedIndex--:e===t.selectedIndex&&(e===o-1?t._select(e-1,!1):(t._select(e+1,!1),t.selectedIndex--)):(t.selectedIndex=null,t.$.tabContentSection.innerHTML=""),t._tabLabelContainers.splice(e,1),t.$.dropDownButtonDropDown.removeChild(t.$.dropDownButtonDropDown.children[e]),t._tabs.splice(e,1),t._focusedItem===n&&(t._focusedItem=t._tabs[t._focusedItem.index]),t._updateTabIndexes(),t._getReorderItems(),t._applyTabOverflow(),t.ensureVisible(t.selectedIndex),t.$.hiddenInput.value=t.selectedIndex}removeChild(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.removeChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}e instanceof Smart.TabItem||t.error(t.localize("tabItemRequired",{method:"removeChild"})),t.contains(e)||t.error(t.localize("referenceNodeNotChild",{argument:"node"})),t.removeAt(e.index)}select(e){const t=this;0!==t._tabs.length&&(t._validateIndex(e,"select"),e=Math.max(0,Math.min(e,t._tabs.length-1)),t.ensureVisible(e),t._select(e,!0))}_setFocusable(){const e=this;e.disabled||e.unfocusable?e.removeAttribute("tabindex"):(null===e.getAttribute("tabindex")||e.getAttribute("tabindex")<0)&&e.setAttribute("tabindex",0)}getTabs(){return 0===this._tabs.length?[]:this._tabs}getTabContent(e){return this._getTabProperty(e,"content")}getTabLabel(e){return this._getTabProperty(e,"label")}_getTabProperty(e,t){if(0===this._tabs.length)return null;const o=this._tabs[e];return o?o[t]:null}setTabLabel(e,t){const o=this;if(0===o._tabs.length)return;o._validateIndex(e,"update"),e=Math.max(0,Math.min(e,o._tabs.length-1));const n=o._tabs[e];void 0!==t&&n.label!==t&&o._updateTabLabel(n,t)}update(e,t,o){const n=this;if(0===n._tabs.length)return;n._validateIndex(e,"update"),e=Math.max(0,Math.min(e,n._tabs.length-1));const a=n._tabs[e];void 0!==t&&a.label!==t&&n._updateTabLabel(a,t),void 0!==o&&(a.content=o)}_createElement(){const e=this;e.$.dropDownButton.id||(e.$.dropDownButton.id=e.id+"DropDownButton"),e.$.dropDownButtonDropDown.id||(e.$.dropDownButtonDropDown.id=e.id+"DropDown"),e.setAttribute("role","tablist"),e.$.dropDownButton.setAttribute("role","button"),e.$.dropDownButton.setAttribute("aria-haspopup",!0),e.$.dropDownButton.setAttribute("aria-owns",e.$.dropDownButtonDropDown.id),e.$.dropDownButtonDropDown.setAttribute("role","menu"),e.disabled&&(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0),e.rightToLeft&&(e.$.tabsHeaderItems.removeChild(e.$.dropDownButton),"top"===e.tabPosition||"bottom"===e.tabPosition?e.$.tabsHeaderItems.insertBefore(e.$.dropDownButton,e.$.scrollButtonNear):e.$.tabsHeaderItems.insertBefore(e.$.dropDownButton,e.$.tabSelectionBar)),e._handlePosition(e.tabPosition),e._handleScrollButtonsPosition(e.scrollButtonsPosition,"both"),null!==e.dataSource&&e._processDataSource(),e._setFocusable(),e.collapsed&&!e.collapsible&&(e.collapsed=!1),e.collapsible&&e.allowToggle&&(e.allowToggle=!1),e._processHTML(),null===e.selectedIndex&&e.$.tabContentSection.setAttribute("show-placeholder",""),setTimeout((()=>e.refreshTabHeader()),300),e.$.hiddenInput.value=e.selectedIndex,e.enableShadowDOM&&HTMLElement.prototype.appendChild.apply(e,[e.$.hiddenInput])}propertyChangedHandler(e,t,o){super.propertyChangedHandler(e,t,o);const n=this;switch(e){case"addNewTab":o?n._insertAddNewTab():(n.$.tabStrip.removeChild(n._addNewTab),delete n._addNewTab),n._applyTabOverflow();break;case"allowToggle":o&&n.collapsible?(n.collapsed&&n._toggleCollapsedState(),n.collapsible=!1):o||null!==n.selectedIndex||(n.ensureVisible(n.selectedIndex=0),n._select(n.selectedIndex,!0,null));break;case"closeButtonMode":if("selected"===o){for(let e=0;e<n._tabs.length;e++)n._disableCloseButton(e);n._enableCloseButton(n.selectedIndex)}else{n._disableCloseButton(n.selectedIndex);const e=n._tabLabelContainers;for(let t=0;t<e.length;t++){const o=e[t];o.closeButtonEnabled=!0!==n._tabs[t].closeButtonHidden,n._showCloseButton(o)}}n._applyTabOverflow();break;case"closeButtons":{const e=n._tabLabelContainers,t=o?n._showCloseButton:n._hideCloseButton;for(let o=0;o<e.length;o++)t(e[o]);n._applyTabOverflow();break}case"collapsed":if(!n.collapsible&&o)return void(n.collapsed=!1);break;case"collapsible":!o&&n.collapsed&&(n.collapsed=!1),n.allowToggle=!1,void 0===n.selectedIndex&&n.select(n._focusedItem.index);break;case"dataSource":n.selectedIndex=null;for(let e=0;e<n._groupLabels.length;e++)n.$.container.removeChild(n._groupLabels[e].dropDown);n.$.tabStrip.innerHTML="",n._processDataSource(),n._processHTML();break;case"disabled":n._setFocusable(),n.$.scrollButtonNear.disabled=o,n.$.scrollButtonFar.disabled=o,o||n._updateScrollButtonVisibility(),n._closeDropDownButtonDropDown();break;case"messages":case"scrollMode":case"selectionMode":case"readonly":case"reorder":break;case"overflow":if("scroll"!==n.tabLayout)return;n.$.tabStrip.scrollLeft=n._getScrollLeft(0),n.$.tabStrip.scrollTop=0,"hidden"===o?(n.$tabsHeaderSection.removeClass("scroll-buttons-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden")):n._checkOverflowScroll(),n._getTabCoordinates();break;case"tabPosition":n.$.tabSelectionBar.style.transition="none",n._tabPositionChanging=!0,n._closeGroupDropDown(),n._handlePosition(o,t),"shrink"!==n.tabLayout&&n._applyLabelSizes("tabPosition"),n.rightToLeft&&(n.$.tabsHeaderItems.removeChild(n.$.dropDownButton),"top"===n.tabPosition||"bottom"===n.tabPosition?n.$.tabsHeaderItems.insertBefore(n.$.dropDownButton,n.$.scrollButtonNear):n.$.tabsHeaderItems.insertBefore(n.$.dropDownButton,n.$.tabSelectionBar)),n._applyTabOverflow(),delete n._tabPositionChanging,requestAnimationFrame((function(){n.$.tabSelectionBar.style.transition=null}));break;case"resize":o&&n._getTabCoordinates();break;case"rightToLeft":n._positionTabSelectionBar(n._tabLabelContainers[n.selectedIndex],!0),n.$.tabsHeaderItems.removeChild(n.$.dropDownButton),!o||"top"!==n.tabPosition&&"bottom"!==n.tabPosition?n.$.tabsHeaderItems.insertBefore(n.$.dropDownButton,n.$.tabSelectionBar):n.$.tabsHeaderItems.insertBefore(n.$.dropDownButton,n.$.scrollButtonNear),n.ensureVisible(n.selectedIndex);break;case"scrollButtonsPosition":n._handleScrollButtonsPosition(o,t);break;case"selectedIndex":{if(isNaN(o)&&(n.selectedIndex=o=t),!n.allowToggle&&null===o)return void(n.selectedIndex=t);let e=o;null!==o&&(e=Math.max(0,Math.min(o,n._tabs.length-1)),n.ensureVisible(e)),n._select(e,!0,t);break}case"tabLayout":"scroll"===t&&(n.$tabsHeaderSection.removeClass("scroll-buttons-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden")),"shrink"===o?n._applyLabelSizes("shrink",!0):"shrink"===t&&n._applyLabelSizes("shrink",!1),n._applyTabOverflow(),"scroll"===o&&n.disabled&&(n.$.scrollButtonNear.disabled=!0,n.$.scrollButtonFar.disabled=!0),n.ensureVisible(n.selectedIndex);break;case"tabTextOrientation":n._applyTabOverflow(),n.ensureVisible(n.selectedIndex);break;case"unfocusable":n._setFocusable()}}_addGroupContainer(e,t){const o=this,n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("div"),s=document.createElement("div"),i=document.createElement("div");return n.className="smart-tab-group-container smart-unselectable",n.$=Smart.Utilities.Extend(n),n.setAttribute("role","group"),n.setAttribute("aria-expanded",!1),n.setAttribute("aria-haspopup",!0),n.setAttribute("aria-label",e),a.className="smart-tab-label-text-wrapper",a.setAttribute("role","presentation"),a.setAttribute("aria-hidden",!0),null!==t&&"shrink"!==o.tabLayout&&(n.style[o._orientationSettings.dimension]=parseInt(t,10)+"px"),r.className="smart-tab-label-text-container",r.innerHTML=e,s.className="smart-tab-group-arrow",i.className="smart-tab-group-drop-down smart-hidden",i.$=Smart.Utilities.Extend(i),i.id=o.id+"GroupDropDown"+e,i.setAttribute("role","tablist"),i.setAttribute("aria-orientation","vertical"),n.setAttribute("aria-owns",i.id),a.appendChild(r),a.appendChild(s),n.appendChild(a),o.$.container.appendChild(i),n.group=e,n.dropDown=i,i.groupContainer=n,{label:n,dropDown:i}}_addGroupElements(e){const t=this,o=e.groups,n=e.groupLabels,a=e.group,r=o.indexOf(a),s=e.tabLabelContainer;let i;if(-1!==r)i=n[r],i.dropDown.appendChild(s);else{o.push(a);const r=t._addGroupContainer(a,e.smartTabItemsGroup.labelSize),l=r.dropDown;i=r.label,l.appendChild(s),l.groupContainer=r.label,e.documentFragment.appendChild(i),n.push(i)}t.selectedIndex===e.i&&(t._selectedGroup=i,i.$.addClass("smart-tab-group-selected"))}_addNewTabHandler(e,t,o){const n=this;n._swiping||(o?(e.removeAttribute("hover"),n.addNewTabAutoCreate&&(n.insert(n._tabs.length,{label:"New Tab",content:""}),n._select(n._tabs.length-1,!0)),n.$.fireEvent("addNewTabClick")):n._reordering||n._swiping||("mouseover"===t?e.setAttribute("hover",""):"mouseout"===t&&e.removeAttribute("hover")))}_addTabLabelContainer(e,t){const o=this,n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("div"),s=document.createElement("div");let i;return e&&(e.disabled?n.setAttribute("disabled",""):n.removeAttribute("disabled")),n.className="smart-tab-label-container smart-unselectable",a.className="smart-tab-label-text-wrapper",r.className="smart-tab-label-text-container",r.setAttribute("role","presentation"),s.className="smart-tab-close-button",s.setAttribute("role","button"),s.setAttribute("aria-label","Close"),void 0===t?(o.closeButtons?"default"===o.closeButtonMode&&e.closeButtonHidden||"selected"===o.closeButtonMode&&!e.selected?(s.classList.add("smart-hidden"),n.closeButtonEnabled=!1):(r.classList.add("smart-close-button-enabled"),n.closeButtonEnabled=!0):(s.classList.add("smart-hidden"),n.closeButtonEnabled=!0),i=document.createElement("div"),i.className="smart-tab-label-container smart-unselectable",e&&null===e.group&&null!==e.labelSize&&"shrink"!==o.tabLayout&&(n.style[o._orientationSettings.dimension]=parseInt(e.labelSize,10)+"px")):(s.classList.add("smart-hidden"),n.closeButtonEnabled=!1),o._setLabel(e?e.label:"+",r,i),r.$=Smart.Utilities.Extend(r),s.$=Smart.Utilities.Extend(s),a.appendChild(r),a.appendChild(s),n.appendChild(a),n.$=Smart.Utilities.Extend(n),{tabLabelContainer:n,dropDownLabelContainer:i}}_animateSelection(e,t,o){const n=this;let a="right",r="left";if(n.rightToLeft&&(a="left",a="right"),n._animatedTab=e,n._animatedOldTab=t,n._animatedTab&&n._animatedOldTab){"left"!==n.tabPosition&&"right"!==n.tabPosition||(a="top",r="bottom");for(let e=0;e<n._tabs.length;e++)n._tabs[e].$.removeClass(a),n._tabs[e].$.removeClass(r),n._tabs[e].$.removeClass("animate");if(e===t)return e.$.hasClass("smart-visibility-hidden")?e.$.removeClass("smart-visibility-hidden"):e.$.addClass("smart-visibility-hidden"),void(n._animatedOldTab.classToRemove=a);o?(e.$.addClass(a),e.$.removeClass("smart-visibility-hidden"),t.$.addClass("smart-visibility-hidden"),requestAnimationFrame((()=>{t.$.addClass("animate"),e.$.addClass("animate"),requestAnimationFrame((()=>{t.$.addClass(r),e.$.removeClass(a)}))})),n._animatedOldTab.classToRemove=r):(e.$.addClass(r),e.$.removeClass("smart-visibility-hidden"),t.$.addClass("smart-visibility-hidden"),requestAnimationFrame((()=>{t.$.addClass("animate"),e.$.addClass("animate"),requestAnimationFrame((()=>{t.$.addClass(a),e.$.removeClass(r)}))})),n._animatedOldTab.classToRemove=a)}}_applyConditionalTabOverflow(){const e=this,t="left"===e.tabPosition||"right"===e.tabPosition,o=e.$.tabStrip;if("scroll"!==e.tabLayout){if(e._flexWritingModeNoFullSupport&&"shrink"===e.tabLayout&&t&&o.scrollHeight>o.offsetHeight){const t=o.children,n=100/t.length+"%";o.$.addClass("shrink-tabs-vertical");for(let e=0;e<t.length;e++)t[e].style.height=n,t[e].firstElementChild.firstElementChild.classList.add("smart-tab-label-text-container-full-height");e._inlineStyleTabStripChildren=!0}}else e._checkOverflowScroll()}_applyLabelSizes(e,t){const o=this,n=o._orientationSettings.dimension,a="width"===n?"height":"width";for(let r=0;r<o._reorderItems.length;r++){const s=o._reorderItems[r],i=o._getCorrespondingCustomElement(s);null!==i.labelSize&&("tabPosition"===e&&s.style.removeProperty(a),t?s.style.removeProperty(n):s.style[n]=parseInt(i.labelSize,10)+"px")}}refresh(){this._applyTabOverflow()}_applyTabOverflow(){const e=this;if(!e._tabs)return;if(e._removeInlineStyle(),0===e._tabs.length)return void e._toggleNavigationElementsVisibility();const t=e.tabLayout,o=e.tabPosition,n="left"===o||"right"===o,a=e.$.tabStrip;switch(e._closeDropDownButtonDropDown(),t){case"scroll":case"dropDown":e._flexWritingModeNoFullSupport&&"vertical"===e.tabTextOrientation&&n&&e._fixTabStripNotChrome(a);break;case"wrap":if("vertical"===e.tabTextOrientation)if(e._flexWritingModeNoFullSupport)if(n)e._fixTabStripNotChrome(a);else{const t=a.children;let o=t[0].offsetHeight;for(let e=1;e<t.length;e++)o=Math.max(o,t[e].offsetHeight);for(let e=1;e<t.length;e++)t[e].style.height=o+"px";e._inlineStyleTabStripChildren=!0}else n||a.scrollHeight>a.offsetHeight&&(a.style.height=a.scrollHeight+"px",e._inlineStyleTabStrip=!0);else n&&a.scrollWidth>a.offsetWidth&&(a.style.width=a.scrollWidth+"px","right"===o&&(a.style.flexWrap="wrap-reverse"),e._inlineStyleTabStrip=!0);break;case"shrink":if(n){if(e._flexWritingModeNoFullSupport&&"vertical"===e.tabTextOrientation){const t=a.children,o=window.getComputedStyle(t[0].firstElementChild),n=parseInt(o.paddingLeft,10)+parseInt(o.paddingRight,10);let r=0;for(let e=0;e<t.length;e++)r=Math.max(r,t[e].firstElementChild.firstElementChild.offsetWidth);a.style.width=n+r+"px",e._inlineStyleTabStrip=!0;break}}else a.scrollWidth>a.offsetWidth&&a.$.addClass("shrink-tabs")}e._applyConditionalTabOverflow(),e._getTabCoordinates(),e._fixTabStripFlex(t),e._toggleNavigationElementsVisibility(),e._positionTabSelectionBar(e._tabLabelContainers[e.selectedIndex],!0)}_checkOverflowScroll(){const e=this,t=e.$tabsHeaderSection,o=e.$.tabStrip,n=e.overflow;if("hidden"===n)return;let a,r,s;if("left"!==e.tabPosition&&"right"!==e.tabPosition){const t=Math.abs(e._getScrollLeft());a=Math.round(o.scrollWidth)>Math.round(o.offsetWidth),e.rightToLeft?(s=Math.round(t)>0,r=Math.round(o.offsetWidth+t)<Math.round(o.scrollWidth)):(r=Math.round(t)>0,s=Math.round(o.offsetWidth+t)<Math.round(o.scrollWidth))}else a=Math.round(o.scrollHeight)>Math.round(o.offsetHeight),r=Math.round(o.scrollTop)>0,s=Math.round(o.offsetHeight+o.scrollTop)<Math.round(o.scrollHeight);"scroll"===n&&(t.addClass("scroll-buttons-shown"),e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden")),a?"auto"===n?(t.hasClass("scroll-buttons-shown")||t.addClass("scroll-buttons-shown"),r?e.$scrollButtonNear.removeClass("smart-hidden"):e.$scrollButtonNear.addClass("smart-hidden"),s?e.$scrollButtonFar.removeClass("smart-hidden"):e.$scrollButtonFar.addClass("smart-hidden"),!1===(r&&s)?t.addClass("one-button-shown"):t.removeClass("one-button-shown"),e.disabled||(e.$.scrollButtonNear.disabled=!1,e.$.scrollButtonFar.disabled=!1)):(t.removeClass("one-button-shown"),e.disabled?(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0):(e.$.scrollButtonNear.disabled=!r,e.$.scrollButtonFar.disabled=!s)):!a&&"auto"===n&&t.hasClass("scroll-buttons-shown")?(t.removeClass("scroll-buttons-shown"),t.removeClass("one-button-shown"),e.$scrollButtonNear.addClass("smart-hidden"),e.$scrollButtonFar.addClass("smart-hidden")):a||"scroll"!==n||(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0)}_closeButtonVisibilityChangeHandler(e){const t=this,o=(Smart.EnableShadowDOM?e.composedPath()[0]:e.target).index;"selected"!==t.closeButtonMode?e.detail.hidden?t._disableCloseButton(o):t._enableCloseButton(o):t._tabLabelContainers[o].closeButtonEnabled=e.detail.hidden}_closeDropDownButtonDropDown(){const e=this;e._dropDownButtonDropDownOpened&&(e.$.dropDownButton.setAttribute("aria-expanded",!1),e.$dropDownButtonDropDown.addClass("smart-hidden"),e._dropDownButtonDropDownOpened=!1)}_closeGroupDropDown(){const e=this;if(!e._openDropDown)return;const t=e._openDropDown.groupContainer;e._openDropDown.rippleInProgress?setTimeout((function(){e._openDropDown&&(t.setAttribute("aria-expanded",!1),e._openDropDown.$.addClass("smart-hidden"),delete e._openDropDown.rippleInProgress,e._openDropDown=void 0)}),450):(t.setAttribute("aria-expanded",!1),e._openDropDown.$.addClass("smart-hidden"),e._openDropDown=void 0)}_containerHandler(e){const t=this,o=e.type;if(t.disabled||t.readonly||t._resizing&&"mouseout"!==o||("down"===o||"up"===o)&&1!==e.which&&!Smart.Utilities.Core.isMobile)return;const n=t.shadowRoot||t.isInShadowDOM?(e.originalEvent||e).composedPath()[0]:(e.originalEvent||e).target;t.$.tabContentSection.contains(n)||(t.$.dropDownButton.contains(n)?t._dropDownButtonHandler(n,e):t.$.dropDownButtonDropDown.contains(n)?t._dropDownButtonHandler(n,e,!0):t._tabStripHandler(n,e))}_disableCloseButton(e){const t=this,o=t._tabLabelContainers[e];o.closeButtonEnabled=!1,t.closeButtons&&t._hideCloseButton(o)}_documentMoveHandler(e){const t=this,o=t._orientationSettings;if(t._reordering){t._reorderStartThrown||(t._fireDragEvent(e,"dragStart"),t._reorderStartThrown=!0);const n=e[o.coordinate],a="wrap"!==t.tabLayout?function(e){return n>=e[o.from]&&n<=e[o.to]}:function(t){return e.pageX>=t.fromX&&e.pageX<=t.toX&&e.pageY>=t.fromY&&e.pageY<=t.toY};let r=!1;for(let e=0;e<t._tabCoordinates.length;e++)if(a(t._tabCoordinates[e])){r=e;break}!0!==t._preventReorder&&!1!==r&&r!==t._draggedIndex&&(t._reorderTabs(t._draggedIndex,r),t._closeGroupDropDown(),t._draggedIndex=r,t._getReorderItems(),t._getTabCoordinates());const s=t._tabCoordinates[t._draggedIndex];"wrap"!==t.tabLayout&&(n<s[o.from]||n>s[o.to])||"wrap"===t.tabLayout&&(null!==e.originalEvent.target.closest(".smart-tab-label-container")||null!==e.originalEvent.target.closest(".smart-tab-group-container"))&&!(e.pageX>=s.fromX&&e.pageX<=s.toX&&e.pageY>=s.fromY&&e.pageY<=s.toY)?t._preventReorder=!0:t._preventReorder=!1}else t._resizing&&(t.$.resizeToken.style[o.edge]=e[o.coordinate]-t._tabsHeaderSectionCoordinate+"px",t.$resizeToken.removeClass("smart-hidden"))}_documentUpHandler(e){const t=this;let o=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;t.$.container.contains(o)&&t._containerHandler(e),t._touchmoveInside?t._endSwiping(e,Date.now()):(delete t._dragStartDetails,delete t._swiping),delete t._touchCoords,delete t._touchmoveInside,!t._openDropDown||t._openDropDown.rippleInProgress||o!==document&&o.closest(".smart-tab-group-container")===t._openDropDown.groupContainer||"pointercancel"===e.originalEvent.type||t._closeGroupDropDown(),t.$.dropDownButton.contains(o)||"pointercancel"===e.originalEvent.type||t._closeDropDownButtonDropDown(),t._endReordering(e,o),t._resize(e),void 0!==t._tabToResize&&(t._tabToResize=void 0),delete t._downTarget}_dropDownButtonHandler(e,t,o){const n=this,a=t.type;if(o){if(e.classList.contains("smart-tab-label-container"))switch(a){case"down":n._downTarget=e;break;case"mouseout":e.removeAttribute("hover");break;case"mouseover":e.setAttribute("hover","");break;case"up":e===n._downTarget&&t.originalEvent&&"pointercancel"!==t.originalEvent.type&&(n.select(Array.from(n.$.dropDownButtonDropDown.children).indexOf(e)),n._closeDropDownButtonDropDown())}}else if("down"===a)n._downTarget=n.$.dropDownButton;else if("up"===a&&n._downTarget===n.$.dropDownButton)if(n._dropDownButtonDropDownOpened)n._closeDropDownButtonDropDown();else{const e=n.tabPosition;let t,o;switch(n.$.dropDownButton.setAttribute("aria-expanded",!0),e){case"top":t=n.$.dropDownButton.offsetLeft,o=n.$.tabsHeaderSection.offsetTop+n.$.dropDownButton.offsetHeight;break;case"bottom":t=n.$.dropDownButton.offsetLeft,o=n.$.tabsHeaderSection.offsetTop;break;case"left":t=n.$.dropDownButton.offsetWidth,o=n.$.dropDownButton.offsetTop;break;case"right":t=n.$.tabsHeaderSection.offsetLeft,o=n.$.dropDownButton.offsetTop}n.$.dropDownButtonDropDown.style.left=t+"px",n.$.dropDownButtonDropDown.style.top=o+"px",n.$dropDownButtonDropDown.removeClass("smart-hidden"),n._dropDownButtonDropDownOpened=!0}}_enableCloseButton(e){const t=this,o=t._tabLabelContainers[e];o.closeButtonEnabled=!0,t.closeButtons&&t._showCloseButton(o)}_endReordering(e,t){const o=this;o._reordering&&(o._draggedHoveredTab&&(o._draggedHoveredTab.contains(t)||o._draggedHoveredTab.removeAttribute("hover"),delete o._draggedHoveredTab),o._reorderedIndex=void 0,o._reordering=!1,o._reorderStartThrown=!1,o.removeAttribute("dragged"),e&&o._fireDragEvent(e,"dragEnd"))}_endSwiping(e,t){const o=this;if(!o._dragStartDetails)return;const n=o._orientationSettings,a=o.$.tabStrip,r=Math.abs(o._dragStartDetails.startTime-t),s=200/r,i=(o._dragStartDetails[n.startCoordinate]-e[n.coordinate])*s;let l=Math.abs(i);const d=function(){if(o.rightToLeft&&"scrollLeft"===n.scrollDirection){const e=Math.abs(o._getScrollLeft());if(i<0&&e===a[n.scrollSize]-a[n.size]||i>0&&0===e)return!1}else if(i>0&&a[n.scrollDirection]===a[n.scrollSize]-a[n.size]||i<0&&0===a[n.scrollDirection])return!1;return!0};let c=.03*Math.abs(i)*s;const b=function(){if(c>5){const e=(l-c)/Math.abs(i);e<.1?c/=1.25:e<.15?c/=1.2:e<.2?c/=1.15:e<.25?c/=1.1:e<.3&&(c/=1.05)}c=Math.round(c);const e=a[n.scrollDirection];o.rightToLeft&&"scrollLeft"===n.scrollDirection?Smart.Utilities.Core.Browser.Chrome?a[n.scrollDirection]=i>0?Math.max(e+c,0):Math.min(e-c,a[n.scrollSize]-a[n.size]):a[n.scrollDirection]=i>0?Math.min(e+c,a[n.scrollSize]-a[n.size]):Math.min(e-c,0):a[n.scrollDirection]=i>0?Math.min(e+c,a[n.scrollSize]-a[n.size]):Math.max(e-c,0),l-=c,o._updateScrollButtonVisibility(!0);const t=d();l>0&&t?o._scrollingAnimationFrame=window.requestAnimationFrame(b):o._wheelInProgress=!1};o._scrollingAnimationFrame&&cancelAnimationFrame(o._scrollingAnimationFrame),r<500&&d()?o._scrollingAnimationFrame=window.requestAnimationFrame(b):o._wheelInProgress=!1,delete o._dragStartDetails,o._swiping&&delete o._swiping}_fireDragEvent(e,t){const o=this,n=o.$.tabStrip.children[o._draggedIndex],a=n.tab;let r,s,i;a?(r=a.selected,s=a.index,i=a.label):i=n.group,o.$.fireEvent(t,{position:{left:e.pageX,top:e.pageY},left:e.pageX,top:e.pageY,target:n,selected:r,index:s,label:i})}_fixTabStripNotChrome(e){const t=this;function o(){const o=[].slice.call(e.children).filter((e=>!e._lazyRemove));let n=o[0].getBoundingClientRect(),a=n.left,r=a+o[0].offsetWidth;for(let e=1;e<o.length;e++)n=o[e].getBoundingClientRect(),a=Math.min(a,n.left),r=Math.max(r,n.left+o[e].offsetWidth);e.style.width=r-a+"px",t._inlineStyleTabStrip=!0}0!==t._tabs.length&&(o(),Smart.Utilities.Core.Browser.Safari&&setTimeout((function(){e.parentElement.classList.add("smart-hidden"),setTimeout((function(){e.parentElement.classList.remove("smart-hidden"),o()}),10)}),10),t.$.fireEvent("tabStripResize"))}_fixTabStripFlex(e){const t=this;t._flexWritingModeNoFullSupport||"vertical"!==t.tabTextOrientation||"left"!==t.tabPosition&&"right"!==t.tabPosition||setTimeout((function(){t.$tabsHeaderSection.addClass("smart-hidden"),setTimeout((function(){t.$tabsHeaderSection.removeClass("smart-hidden"),t._getTabCoordinates(),"scroll"===e&&t._checkOverflowScroll()}),10)}),10)}_getCorrespondingCustomElement(e){return e.$.hasClass("smart-tab-label-container")?e.tab:this.$.tabContentSection.querySelector('smart-tab-items-group[label="'+e.group+'"]')}_getReorderItems(){const e=this;let t;0===e._groups.length?t=e._tabLabelContainers:(t=Array.from(e.$.tabStrip.children),e.addNewTab&&t.pop()),e._reorderItems=t}_getTabCoordinates(){const e=this;if(!e.reorder&&!e.resize||"hidden"===e.tabPosition)return;const t=[],o=window.scrollX||window.pageXOffset,n=window.scrollY||window.pageYOffset;for(let a=0;a<e._reorderItems.length;a++){const r=e._reorderItems[a],s=r.getBoundingClientRect(),i=window.getComputedStyle(r),l=parseFloat(i.marginLeft),d=parseFloat(i.marginRight),c=parseFloat(i.marginTop),b=parseFloat(i.marginBottom);t.push({fromX:s.left-l+o,toX:s.right+d+o,fromY:s.top-c+n,toY:s.bottom+b+n})}e._tabCoordinates=t}_getTabs(){const e=this;let t=e.shadowRoot?e.shadowRoot.querySelectorAll("smart-tab-item"):e.getElementsByTagName("smart-tab-item");if(e.querySelector("smart-tabs")){t=e.shadowRoot?e.shadowRoot.querySelectorAll("smart-tab-item"):e.getElementsByTagName("smart-tab-item");let o=[];const n=e.querySelector(".smart-tabs-content-section");if(n){for(let e=0;e<t.length;e++)t[e].parentNode===n&&o.push(t[e]);t=o}}null!==e.selectedIndex&&(0===t.length?e.selectedIndex=null:e.selectedIndex=Math.max(0,Math.min(e.selectedIndex,t.length-1))),e._tabs=Array.from(t),e.$.hiddenInput.value=e.selectedIndex}_groupContainerHandler(e,t){const o=this,n=e.dropDown;if("down"===t)return o._downTarget=e,void(o.reorder&&o._reorderItems.length>1&&(o._getTabCoordinates(),o._reordering=!0,o.setAttribute("dragged",""),o._draggedIndex=Array.from(o.$.tabStrip.children).indexOf(e)));o._reordering||o._swiping||(n===o._openDropDown||"mouseover"!==t||e.classList.contains("smart-tab-group-selected")?"mouseout"===t&&e.removeAttribute("hover"):e.setAttribute("hover","")),"up"!==t||o._downTarget!==e||void 0!==o._reorderedIndex||o._swiping||(n===o._openDropDown?(o._closeGroupDropDown(),e.classList.contains("smart-tab-group-selected")||e.setAttribute("hover","")):o._openGroupDropDown(e))}_handlePosition(e,t){const o=this;if(-1===[void 0,"top","left","hidden"].indexOf(t)||"bottom"!==e&&"right"!==e?"bottom"!==t&&"right"!==t||-1===["top","left","hidden"].indexOf(e)||o.$.container.insertBefore(o.$.tabsHeaderSection,o.$.tabContentSection):o.$.container.insertBefore(o.$.tabContentSection,o.$.tabsHeaderSection),"hidden"===e)return o._orientationSettings={coordinate:"pageY",dimension:"height",edge:"top",from:"fromY",size:"offsetHeight",to:"toY",scrollDirection:"scrollTop",scrollSize:"scrollHeight",startCoordinate:"startY",wheelOffset:35},o.removeAttribute("horizontal"),o.removeAttribute("vertical"),void o.setAttribute("aria-orientation","horizontal");"top"===e||"bottom"===e?(o._orientationSettings={coordinate:"pageX",dimension:"width",edge:"left",from:"fromX",size:"offsetWidth",to:"toX",scrollDirection:"scrollLeft",scrollSize:"scrollWidth",startCoordinate:"startX",wheelOffset:70},o.removeAttribute("vertical"),o.setAttribute("horizontal",""),o.$arrowNear.removeClass("smart-arrow-up"),o.$arrowNear.addClass("smart-arrow-left"),o.$arrowFar.removeClass("smart-arrow-down"),o.$arrowFar.addClass("smart-arrow-right"),o.setAttribute("aria-orientation","horizontal"),o.$.scrollButtonNear.setAttribute("aria-label","Scroll left"),o.$.scrollButtonFar.setAttribute("aria-label","Scroll right")):(o._orientationSettings={coordinate:"pageY",dimension:"height",edge:"top",from:"fromY",size:"offsetHeight",to:"toY",scrollDirection:"scrollTop",scrollSize:"scrollHeight",startCoordinate:"startY",wheelOffset:35},o.removeAttribute("horizontal"),o.setAttribute("vertical",""),o.$arrowNear.removeClass("smart-arrow-left"),o.$arrowNear.addClass("smart-arrow-up"),o.$arrowFar.removeClass("smart-arrow-right"),o.$arrowFar.addClass("smart-arrow-down"),o.setAttribute("aria-orientation","vertical"),o.$.scrollButtonNear.setAttribute("aria-label","Scroll up"),o.$.scrollButtonFar.setAttribute("aria-label","Scroll down"))}_handleScrollButtonsPosition(e,t){const o=this,n=o.$.tabsHeaderItems;e!==t&&("both"===e?"near"===t?n.insertBefore(o.$.scrollButtonFar,o.$.dropDownButton):n.insertBefore(o.$.scrollButtonNear,o.$.tabStrip):"near"===e?("far"===t&&n.insertBefore(o.$.scrollButtonNear,o.$.tabStrip),n.insertBefore(o.$.scrollButtonFar,o.$.tabStrip)):("near"===t&&n.insertBefore(o.$.scrollButtonFar,o.$.dropDownButton),n.insertBefore(o.$.scrollButtonNear,o.$.scrollButtonFar)))}_hideCloseButton(e){e.firstElementChild.children[0].$.removeClass("smart-close-button-enabled"),e.firstElementChild.children[1].$.addClass("smart-hidden")}_indexChangeHandler(e){const t=this,o=e.detail.oldIndex,n=Math.max(0,Math.min(e.detail.newIndex,t._tabs.length-1));if(o!==n){if(0===t._groups.length)t._reorderTabs(o,n);else{const a=e.detail.tabItem;a._setIndex(o),t.removeAt(o),t.insert(n,{node:a}),t.selectedIndex===o&&t._select(n,!1)}t._reorderedIndex=void 0}}_insertAddNewTab(){const e=this,t=e._addTabLabelContainer(void 0,!0).tabLabelContainer;t.$.addClass("smart-add-new-tab"),e.$.tabStrip.appendChild(t),e._addNewTab=t}_insertIntoExistingGroup(e){const t=this,o=e.smartTabItemsGroup,n=e.tab,a=e.tabLabelContainer,r=e.group,s=t._groupLabels[t._groups.indexOf(r)].dropDown;let i=e.index;i=Math.max(0,Math.min(i,o.childElementCount)),s.insertBefore(a,s.children[i]);const l=o.children[i];let d;d=l?l.index:o.children[i-1].index+1,o.insertBefore(n,l),t._tabLabelContainers.splice(d,0,a),t.$.dropDownButtonDropDown.insertBefore(e.dropDownLabelContainer,t.$.dropDownButtonDropDown.children[d]||null),t._tabs.splice(d,0,n),i=d,n.group=r,t._updateIndexes(i)}_insertIntoNewGroup(e){const t=this,o=e.tab,n=e.tabLabelContainer,a=e.group,r=t._addGroupContainer(a),s=r.label;r.dropDown.appendChild(n),t._groups.push(a);let i=Math.max(0,Math.min(e.index,t.$.tabStrip.childElementCount)),l=i;t._addNewTab&&l===t.$.tabStrip.childElementCount&&l--,t.$.tabStrip.insertBefore(s,t.$.tabStrip.children[l]||null),t._groupLabels.push(s);const d=document.createElement("smart-tab-items-group");d.appendChild(o),t.$.tabContentSection.insertBefore(d,t.$.tabContentSection.children[i]),d.label=a;const c=d.previousElementSibling;let b=0;c&&(c instanceof Smart.TabItem?b=c.index+1:c&&(b=c.lastElementChild.index+1)),t._tabLabelContainers.splice(b,0,n),t.$.dropDownButtonDropDown.insertBefore(e.dropDownLabelContainer,t.$.dropDownButtonDropDown.children[b]||null),t._tabs.splice(b,0,o),i=b,o.group=a,t._updateIndexes(i)}_insertNearAGroup(e){const t=this,o=e.tab,n=e.tabLabelContainer;let a=e.index;a=Math.max(0,Math.min(a,t._tabs.length));const r=t._tabs[a-1],s=t._tabs[a],i=s?s.group:void 0;r&&null!==r.group&&s&&null!==i?(s.tabLabelContainer.parentElement.insertBefore(n,s.tabLabelContainer),s.parentElement.insertBefore(o,s),o.group=i):s?null!==i?(t.$.tabStrip.insertBefore(n,t._groupLabels[t._groups.indexOf(i)]),t.$.tabContentSection.insertBefore(o,t.$.tabContentSection.querySelector('smart-tab-items-group[label="'+i+'"]'))):(t.$.tabStrip.insertBefore(n,s.tabLabelContainer),t.$.tabContentSection.insertBefore(o,s)):(t.$.tabStrip.insertBefore(n,t._addNewTab||null),t.$.tabContentSection.appendChild(o)),t._tabLabelContainers.splice(a,0,n),t.$.dropDownButtonDropDown.insertBefore(e.dropDownLabelContainer,t.$.dropDownButtonDropDown.children[a]||null),t._tabs.splice(a,0,o),t._updateIndexes(a)}_insertNoGrouping(e){const t=this,o=Math.max(0,Math.min(e.index,t._tabs.length)),n=e.tab,a=e.tabLabelContainer;t.$.tabStrip.insertBefore(a,t._tabLabelContainers[o]||t._addNewTab||null),t.$.tabContentSection.insertBefore(n,t._tabs[o]||null),t._tabLabelContainers.splice(o,0,a),t.$.dropDownButtonDropDown.insertBefore(e.dropDownLabelContainer,t.$.dropDownButtonDropDown.children[o]||null),t._tabs.splice(o,0,n),t._updateIndexes(o)}_keydownHandler(e){const t=this,o=e.key;if((t.isInShadowDOM?t.getRootNode().activeElement:document.activeElement)!==t||-1===["ArrowLeft","ArrowDown","ArrowRight","ArrowUp","End","Home","Enter"," ","Escape"].indexOf(o)||t.disabled||t.readonly||"none"===t.selectionMode||!t.allowToggle&&null===t.selectedIndex||t._reordering||t._swiping)return;e.preventDefault();const n=t._tabs.length-1;let a,r,s,i,l=0;switch(t.rightToLeft?(s="ArrowRight",i="ArrowLeft"):(s="ArrowLeft",i="ArrowRight"),o){case s:case"ArrowUp":if(t.collapsible&&e.ctrlKey)return void(o===s?"right"===t.tabPosition?t.expand():"left"===t.tabPosition&&t.collapse():"ArrowUp"===o&&("bottom"===t.tabPosition?t.expand():"top"===t.tabPosition&&t.collapse()));if(l=-1,0===t.selectedIndex){r=!0;break}a=t.selectedIndex+l;break;case i:case"ArrowDown":if(t.collapsible&&e.ctrlKey)return void(o===i?"right"===t.tabPosition?t.collapse():"left"===t.tabPosition&&t.expand():"ArrowDown"===o&&("bottom"===t.tabPosition?t.collapse():"top"===t.tabPosition&&t.expand()));if(l=1,t.selectedIndex===n){r=!0;break}a=t.selectedIndex+l;break;case"End":if(t.selectedIndex===n){r=!0;break}a=n;break;case"Home":if(0===t.selectedIndex){r=!0;break}a=0;break;case"Enter":case" ":if(!t.allowToggle)return;if(t._focusedItem){t.select(t._focusedItem.index);const e=t._focusedItem.tabLabelContainer.closest(".smart-tab-group-drop-down");e&&t._openGroupDropDown(e.groupContainer)}return;case"Escape":return void(t._openDropDown&&t._closeGroupDropDown())}if(t.allowToggle&&t._tabs.length>0){t._focusedItem?t._focusedItem.tabLabelContainer.removeAttribute("focus"):t._focusedItem=t._focusedItem||t._tabs[t.selectedIndex]||t._tabs[0],t._focusedItem=t._tabs[Math.min(Math.max(0,t._focusedItem.index+l),n)],t._focusedItem.tabLabelContainer.setAttribute("focus",""),t.ensureVisible(t._focusedItem.index);const e=t._focusedItem.tabLabelContainer.closest(".smart-tab-group-drop-down");e&&e.groupContainer?(t._openDropDown&&t._openDropDown!==e.dropDown&&t._closeGroupDropDown(),t._openGroupDropDown(e.groupContainer)):t._openDropDown&&t._closeGroupDropDown()}else r||t.select(a)}_labelContainerHandler(e,t,o){const n=this,a="up"===o&&n._downTarget===e;if("down"===o&&(n._downTarget=e,"click"===n.selectionMode&&e!==n._addNewTab))if(Smart.Utilities.Core.isMobile&&null===e.tab.group){const o=n.$.tabStrip[n._orientationSettings.scrollDirection];setTimeout((function(){o===n.$.tabStrip[n._orientationSettings.scrollDirection]&&n._ripple(t,e)&&n._openDropDown&&n._openDropDown.contains(e)&&(n._openDropDown.rippleInProgress=!0)}),100)}else n._ripple(t,e)&&n._openDropDown&&n._openDropDown.contains(e)&&(n._openDropDown.rippleInProgress=!0);if(e===n._addNewTab)return void n._addNewTabHandler(e,o,a);const r=e.tab.index,s=!(n._reordering&&void 0!==n._reorderedIndex);a&&r===n.selectedIndex&&(n._closeGroupDropDown(),s&&null===e.tab.group&&n._toggleCollapsedState()),!n._swiping&&(s&&"click"===n.selectionMode&&a||!n._reordering&&(n.selectionMode===o||"mouseenter"===n.selectionMode&&"mouseover"===o))&&n._select(r,!0),n._reordering||n._swiping||"click"!==n.selectionMode&&"dblclick"!==n.selectionMode||("mouseover"!==o||e.hasAttribute("selected")?"mouseout"===o&&e.removeAttribute("hover"):e.setAttribute("hover","")),n.reorder&&"down"===o&&null===e.tab.group&&n._reorderItems.length>1&&(n._getTabCoordinates(),n._reordering=!0,n.setAttribute("dragged",""),e.hasAttribute("hover")&&(n._draggedHoveredTab=e),0===n._groups.length?n._draggedIndex=e.tab.index:n._draggedIndex=Array.from(n.$.tabStrip.children).indexOf(e))}_labelSizeChangeHandler(e){const t=this,o=e.detail.size;let n;"shrink"!==t.tabLayout&&(n=e.target instanceof Smart.TabItem?e.target.tabLabelContainer:t._groupLabels[t._groups.indexOf(e.target.label)],null!==o?n.style[t._orientationSettings.dimension]=parseInt(o,10)+"px":n.style.removeProperty(t._orientationSettings.dimension),t._applyTabOverflow())}_openGroupDropDown(e){const t=this;e&&(t._openDropDown&&t._openDropDown.$.addClass("smart-hidden"),e.dropDown.$.removeClass("smart-hidden"),t._positionGroupDropDown(e),t._openDropDown=e.dropDown,e.removeAttribute("hover"),e.setAttribute("aria-expanded",!0))}_orderTabs(){const e=this,t=[],o=[];let n=!0,a=!1;if(0===e.getElementsByTagName("smart-tab-items-group").length)for(let r=0;r<e._tabs.length;r++){const s=e._tabs[r],i=s.index;if(n&&null!==i&&(n=!1),-1!==t.indexOf(i||0)&&(a=!0,null!==i))break;t.push(i||0),o.push({tab:s,index:i})}if(!a){const e=t.slice(0).sort((function(e,t){return e-t}));JSON.stringify(t)===JSON.stringify(e)&&(n=!0)}if(n||a){n||e.warn(e.localize("ambiguousIndexes"));for(let t=0;t<e._tabs.length;t++)e._tabs[t]._setIndex(t)}else{o.sort((function(e,t){return e.index-t.index}));for(let t=0;t<o.length;t++){const n=o[t].tab;n._setIndex(t),e.$.tabContentSection.removeChild(n)}for(let t=0;t<o.length;t++){const n=o[t].tab;e.$.tabContentSection.appendChild(n),e._tabs[t]=n}}}_populateTabStrip(){const e=this,t=document.createDocumentFragment(),o=[],n=[],a=[];let r=null;for(let s=0;s<e._tabs.length;s++){const i=e._tabs[s],l=i.parentElement,d=l instanceof Smart.TabItemsGroup?l.label:null;i.group=d;const c=e._addTabLabelContainer(i),b=c.tabLabelContainer,p=c.dropDownLabelContainer;e.selectedIndex===s&&(b.$.addClass("smart-tab-selected"),b.setAttribute("selected",""),r=b),i.tabLabelContainer=b,b.tab=i,o.push(b),e._setAriaRelations(i,b,p),null===d?t.appendChild(b):e._addGroupElements({documentFragment:t,groups:n,groupLabels:a,i:s,group:d,tabLabelContainer:b,smartTabItemsGroup:l}),e.$.dropDownButtonDropDown.appendChild(p)}e.$.tabStrip.appendChild(t),e._tabLabelContainers=o,e._groups=n,e._groupLabels=a,e._positionTabSelectionBar(r,!0)}_setAriaRelations(e,t,o){const n=this.id;e.id||(e.id=n+"TabItem"+e.index),t.id||(t.id=n+"TabLabelContainer"+e.index),t.setAttribute("role","tab"),t.setAttribute("aria-controls",e.id),t.setAttribute("aria-label",e.label),t.setAttribute("aria-selected",e.selected),e.setAttribute("aria-label",e.label),o.setAttribute("role","menuitem"),o.setAttribute("aria-controls",e.id)}_positionTabSelectionBar(e,t){const o=this;if(!e)return;const n=o.tabPosition;let a,r,s,i;if(t&&(o.$.tabSelectionBar.style.transition="none"),e.tab.group&&(e=o._groupLabels[o._groups.indexOf(e.tab.group)]),"top"===n||"bottom"===n){if("wrap"===o.tabLayout?(r=e.offsetTop,"top"===n&&(r+=e.offsetHeight-o.$.tabSelectionBar.offsetHeight),r+="px"):r=null,i=null,o.rightToLeft&&"horizontal"===o.tabTextOrientation)if(Smart.Utilities.Core.Browser.Chrome){const t=o.$.tabStrip;a=-(t.scrollLeft-(t.scrollWidth-t.offsetWidth))+e.offsetLeft+"px"}else a=-o.$.tabStrip.scrollLeft+e.offsetLeft+"px";else a=-o.$.tabStrip.scrollLeft+e.offsetLeft+"px";s=e.offsetWidth+"px"}else"left"!==n&&"right"!==n||("wrap"===o.tabLayout?(a=e.offsetLeft,"left"===n&&(a+=e.offsetWidth-o.$.tabSelectionBar.offsetWidth),a+="px"):a=null,s=null,r=-o.$.tabStrip.scrollTop+e.offsetTop+"px",i=e.offsetHeight+"px");function l(){o.$.tabSelectionBar.style.top=r,o.$.tabSelectionBar.style.height=i,o.$.tabSelectionBar.style.left=a,o.$.tabSelectionBar.style.width=s}Smart.Utilities.Core.isMobile&&o.hasAnimation&&!t?requestAnimationFrame((function(){requestAnimationFrame(l)})):l(),t&&!o._tabPositionChanging&&requestAnimationFrame((()=>o.$.tabSelectionBar.style.transition=null))}_positionGroupDropDown(e){const t=this,o=t.tabPosition,n=e.dropDown,a=window.getComputedStyle(t.$.tabsHeaderSection),r=parseFloat(a[t.rightToLeft?"paddingRight":"paddingLeft"]),s=parseFloat(a.paddingTop);if("top"===o||"bottom"===o){const a=!1;if(t.rightToLeft?n.style.left=e.offsetLeft-t._getScrollLeft()-r-n.offsetWidth+e.offsetWidth+"px":n.style.left=e.offsetLeft-t.$.tabStrip.scrollLeft+r+"px","top"===o)a||(n.style.top=e.offsetTop+e.offsetHeight+s+"px");else{let o=e.getBoundingClientRect().top-t.$.container.getBoundingClientRect().top+s;a&&(o+=t.$.tabStrip.offsetHeight),n.style.top=o+"px"}}else n.style.top=e.offsetTop-t.$.tabStrip.scrollTop+s+"px",n.style.left="left"===o?e.offsetLeft+e.offsetWidth+r+"px":e.getBoundingClientRect().left-t.$.container.getBoundingClientRect().left+r+"px"}_processDataSource(){const e=this,t=e.dataSource;function o(e,t){let n;if(Array.isArray(e.items)&&e.items.length>0){n=document.createElement("smart-tab-items-group");for(let t=0;t<e.items.length;t++)e.items[t].items||o(e.items[t],n)}else n=document.createElement("smart-tab-item"),!0===e.closeButtonHidden&&(n.closeButtonHidden=!0),void 0!==e.content&&(n.innerHTML=e.content),void 0!==e.index&&(n.index=e.index),!0===e.selected&&(n.selected=e.selected);void 0!==e.label&&(n.label=e.label),void 0!==e.labelSize&&(n.labelSize=e.labelSize),t.appendChild(n)}if(e.$.tabContentSection.innerHTML="",null!==t)for(let n=0;n<t.length;n++)o(t[n],e.$.tabContentSection)}_processHTML(){const e=this;e._getTabs(),e._orderTabs(),e._validateInitialSelection(),e._populateTabStrip(),e.addNewTab&&e._insertAddNewTab(),e._getReorderItems(),e._applyTabOverflow(),e.ensureVisible(e.selectedIndex),e.$.hiddenInput.value=e.selectedIndex}_removeInlineStyle(){const e=this,t=e.$.tabStrip;if(e._inlineStyleTabStripChildren){const o=t.children;for(let e=0;e<o.length;e++)o[e].removeAttribute("style"),o[e].firstElementChild.firstElementChild.classList.remove("smart-tab-label-text-container-full-height");delete e._inlineStyleTabStripChildren}e._inlineStyleTabStrip&&(t.removeAttribute("style"),delete e._inlineStyleTabStrip),t.$.removeClass("shrink-tabs"),t.$.removeClass("shrink-tabs-vertical")}_reorderTabs(e,t){function o(e,t,o){const n=e[t];e.splice(t,1),e.splice(o,0,n)}const n=this,a=n.$.tabStrip[n._orientationSettings.scrollDirection];if(0===n._groups.length){const a=n._tabs,r=n._tabLabelContainers,s=e>t?t:t+1;let i;n.selectedIndex===e?n.selectedIndex=t:n.selectedIndex<=t&&n.selectedIndex>e?n.selectedIndex--:n.selectedIndex>=t&&n.selectedIndex<e&&n.selectedIndex++,i=r[s]?r[s]:n.addNewTab?n._addNewTab:null,n.$.tabStrip.insertBefore(r[e],i),n.$.dropDownButtonDropDown.insertBefore(n.$.dropDownButtonDropDown.children[e],n.$.dropDownButtonDropDown.children[s]||null),n.$.tabContentSection.insertBefore(a[e],a[s]||null),o(a,e,t),o(r,e,t),n._updateTabIndexes()}else n._reorderTabsGrouping(e,t);n.$.tabStrip[n._orientationSettings.scrollDirection]=a,n.$.fireEvent("reorder",{index:t,oldIndex:e,newIndex:t,originalIndex:e}),n._reorderedIndex=t,n._positionTabSelectionBar(n._tabLabelContainers[n.selectedIndex],!0),n.$.hiddenInput.value=n.selectedIndex}_reorderTabsGrouping(e,t){const o=this,n=o.$.tabStrip.children,a=o.$.tabContentSection.children,r=e>t?t:t+1,s=o._tabs[o.selectedIndex];o.$.tabStrip.insertBefore(n[e],n[r]||null),o.$.tabContentSection.insertBefore(a[e],a[r]||null),o._groupLabels=Array.from(o.$.tabStrip.getElementsByClassName("smart-tab-group-container")),o._groups=[];for(let e=0;e<o._groupLabels.length;e++)o._groups.push(o._groupLabels[e].group);o._tabs=Array.from(o.$.tabContentSection.getElementsByTagName("smart-tab-item"));const i=document.createDocumentFragment();let l=[];for(let e=0;e<o._tabs.length;e++)i.appendChild(o.$.dropDownButtonDropDown.children[o._tabs[e].index].cloneNode(!0));o.$.dropDownButtonDropDown.innerHTML="",o.$.dropDownButtonDropDown.appendChild(i);for(let e=0;e<o.$.tabStrip.childElementCount;e++){const t=o.$.tabStrip.children[e];t.$.hasClass("smart-tab-label-container")&&t!==o._addNewTab?l.push(t):t.$.hasClass("smart-tab-group-container")&&(l=l.concat(Array.from(t.dropDown.children)))}o._tabLabelContainers=l,o._updateTabIndexes(),s&&(o.selectedIndex=s.index)}_resize(e){const t=this;if(!t._resizing)return;const o=t._orientationSettings,n=e[o.coordinate]-t._resizeFrom,a=t._getCorrespondingCustomElement(t._tabToResize);let r;r=null===a.labelSize?t._tabToResize[o.size]:a.labelSize;const s=Math.max(10,r+n);s!==r&&(a._preventPropertyChangedHandler=!0,a.labelSize=s,t._tabToResize.style[o.dimension]=parseInt(s,10)+"px"),t.$resizeToken.addClass("smart-hidden"),t._applyTabOverflow(),t._resizing=!1,t.removeAttribute("resizing")}_ripple(e,t){if(this.hasRippleAnimation){const o=document.createElement("div");return o.className="ripple-agent",t.firstElementChild.appendChild(o),setTimeout((function(){t.firstElementChild.removeChild(o)}),1e3),Smart.Utilities.Animation.Ripple.animate(o,e.pageX,e.pageY),!0}}_scrollButtonClickHandler(e){const t=this,o=t.$.tabStrip;let n=e.target.closest("smart-repeat-button")===t.$.scrollButtonNear?-1:1;if("paging"===t.scrollMode){const a=t._orientationSettings,r={};return t._dragStartDetails={startX:0,startY:0,pageX:0,pageY:0,startTime:Date.now(),target:e.target},t._wheelInProgress=!0,r[a.coordinate]=-n*(o[a.size]/1.1428571428571428),void t._endSwiping(r,t._dragStartDetails.startTime+175)}t.hasAttribute("horizontal")?o.scrollLeft+=10*n:o.scrollTop+=10*n,t._updateScrollButtonVisibility(!0)}_getScrollLeft(e){const t=this,o=t.$.tabStrip;return void 0===e?t.rightToLeft&&Smart.Utilities.Core.Browser.Chrome?o.scrollLeft-(o.scrollWidth-o.offsetWidth):o.scrollLeft:(!t.rightToLeft||"top"!==t.tabPosition&&"bottom"!==t.tabPosition||(Smart.Utilities.Core.Browser.Chrome?e=o.scrollWidth-o.offsetWidth-e:e*=-1),e)}_select(e,t,o){const n=this,a=n.hasAnimation;void 0===o&&(o=n.selectedIndex);const r=n._tabs[e];if(!r||r.disabled||e===o&&(!n.allowToggle||n.allowToggle&&"mouseenter"===n.selectionMode))n.$.hiddenInput.value=n.selectedIndex;else{if(n._focusedItem&&n._focusedItem.tabLabelContainer.removeAttribute("focus"),null!==o){const t=n._tabs[o];a?n._animateSelection(r,t,e>o):t.$.addClass("smart-visibility-hidden"),t.selected=!1,n._tabLabelContainers[o].$.removeClass("smart-tab-selected"),n._tabLabelContainers[o].removeAttribute("selected"),n.closeButtons&&"selected"===n.closeButtonMode&&n._disableCloseButton(o)}null!==e&&(n._tabLabelContainers[e].removeAttribute("hover"),n.closeButtons&&"selected"===n.closeButtonMode&&n._enableCloseButton(e)),!n.allowToggle||null!==e&&(void 0!==arguments[2]?o:n.selectedIndex)!==e?(r.selected=!0,n.$.tabContentSection.removeAttribute("show-placeholder"),null!==o&&a||r.$.removeClass("smart-visibility-hidden"),n.selectedIndex=e,n._focusedItem=n._tabs[e],n._focusedItem.tabLabelContainer.$.addClass("smart-tab-selected"),n._focusedItem.tabLabelContainer.setAttribute("selected",""),n._positionTabSelectionBar(n._focusedItem.tabLabelContainer,null===o)):(n.selectedIndex=null,n.$.tabContentSection.setAttribute("show-placeholder",""),n.allowToggle&&(n._focusedItem=n._tabs[null===e?o:e],n._focusedItem&&n._focusedItem.tabLabelContainer.setAttribute("focus",""))),t&&(n.$.hiddenInput.value=n.selectedIndex,n.$.fireEvent("change",{index:n.selectedIndex,oldIndex:o})),n._closeGroupDropDown(),r&&null!==r.group?(n._selectedGroup&&n._selectedGroup.$.removeClass("smart-tab-group-selected"),null!==n.selectedIndex&&(n._selectedGroup=n._groupLabels[n._groups.indexOf(r.group)],n._selectedGroup.$.addClass("smart-tab-group-selected"))):n._selectedGroup&&(n._selectedGroup.$.removeClass("smart-tab-group-selected"),delete n._selectedGroup),n.$.hiddenInput.value=n.selectedIndex}}_selectStartHandler(e){(this._reordering||this._resizing)&&e.preventDefault()}_setLabel(e,t,o){const n=e?document.getElementById(e):null;if(null!==n&&"template"===n.tagName.toLowerCase()){const e=document.importNode(n.content,!0);if(t.appendChild(e),o){const e=document.importNode(n.content,!0);o.appendChild(e)}}else""===e&&(e="&nbsp;"),t.innerHTML=e,o&&(o.innerHTML=e)}_showCloseButton(e){e.closeButtonEnabled&&(e.firstElementChild.children[0].$.addClass("smart-close-button-enabled"),e.firstElementChild.children[1].$.removeClass("smart-hidden"))}_tabContentSectionTransitionendHandler(e){const t=this,o=e.target;o instanceof Smart.TabItem&&(o===t._animatedOldTab?(o.$.addClass("smart-hidden"),o.$.removeClass("animate"),o.$.removeClass(t._animatedOldTab.classToRemove),o.$.removeClass("smart-hidden"),delete t._animatedOldTab):o===t._animatedTab&&(o.$.removeClass("animate"),delete t._animatedTab),o.classList.remove("left"),o.classList.remove("right"),o.classList.remove("top"),o.classList.remove("bottom"))}_tabsHeaderItemsWheelHandler(e){const t=this;if(!t.enableMouseWheelAction||t.disabled)return;const o=t.$.tabStrip,n=t._orientationSettings,a=o[n.size],r=o[n.scrollSize],s=o[n.scrollDirection],i=e.deltaY;if(a===r||0===s&&i<0||s+a===r&&i>0)return;if(e.preventDefault(),t._wheelInProgress)return;t._dragStartDetails={startX:e.pageX,startY:e.pageY,pageX:e.pageX,pageY:e.pageY,startTime:Date.now(),target:e.target},t._wheelInProgress=!0;const l={};l[n.coordinate]=e[n.coordinate]+(e.deltaY>0?-1:1)*n.wheelOffset,t._endSwiping(l,t._dragStartDetails.startTime+100)}_tabStripHandler(e,t){const o=this,n=t.type;if("down"===n&&void 0!==o._tabToResize)return o._resizing=!0,void(o._tabsHeaderSectionCoordinate=o.$.tabsHeaderSection.getBoundingClientRect()[o._orientationSettings.edge]);"down"===n&&Smart.Utilities.Core.isMobile&&(o._dragStartDetails={startX:t.pageX,startY:t.pageY,pageX:t.pageX,pageY:t.pageY,startTime:Date.now(),originalTime:Date.now(),target:t.originalEvent.target});const a=e.closest("smart-repeat-button");if("up"===n&&a)return o.focus(),void(o.resize&&o._getTabCoordinates());if(e.classList.contains("smart-tab-close-button"))if("up"===n){if(e===o._downTarget){const t=e.parentElement.parentElement.tab.index;return void(o.$.fireEvent("closing",{index:t}).defaultPrevented||(o.removeAt(t),o.$.fireEvent("close",{index:t})))}}else{if("down"===n)return void(o._downTarget=e);o._reordering||o._swiping||("mouseover"===n?e.setAttribute("hover",""):"mouseout"===n&&e.removeAttribute("hover"))}const r=e.closest(".smart-tab-label-container");if(null!==r)return void(t.originalEvent&&"pointercancel"===t.originalEvent.type?r.tab.group&&delete r.parentElement.rippleInProgress:o._labelContainerHandler(r,t,n));const s=e.closest(".smart-tab-group-container");null!==s&&o._groupContainerHandler(s,n)}_tabStripMouseleaveHandler(){const e=this;e.resize&&!e._resizing&&e.hasAttribute("resizing")&&e.removeAttribute("resizing")}_tabStripMoveHandler(e){const t=this;if(t._dragStartDetails&&!t._dragStartDetails.checked&&(Date.now()-t._dragStartDetails.originalTime<500?(t._endReordering(void 0,void 0),t._dragStartDetails.checked=!0):delete t._dragStartDetails),t._dragStartDetails&&(Math.abs(t._dragStartDetails.pageX-e.pageX)>=5||Math.abs(t._dragStartDetails.pageY-e.pageY)>=5)){const o=t._orientationSettings,n=t._dragStartDetails[o.coordinate]-e[o.coordinate],a=t.$.tabStrip[o.scrollDirection];return t.$.tabStrip[o.scrollDirection]+=n,a!==t.$.tabStrip[o.scrollDirection]&&t._updateScrollButtonVisibility(),t._dragStartDetails={startX:t._dragStartDetails.startX,startY:t._dragStartDetails.startY,pageX:e.pageX,pageY:e.pageY,startTime:t._dragStartDetails.startTime,originalTime:t._dragStartDetails.originalTime,target:e.originalEvent.target,checked:t._dragStartDetails.checked},void(t._swiping=!0)}if(!t.resize||t._resizing||t._reordering||"shrink"===t.tabLayout)return;const o=t._orientationSettings,n=e[o.coordinate],a=t._tabCoordinates;let r;for(let e=0;e<a.length;e++){const s=a[e][o.to];if(n>=s-4&&n<=s+4){r=t._reorderItems[e],t._resizeFrom=n;break}}void 0!==r?(t._tabToResize=r,t.setAttribute("resizing","")):(t._tabToResize=void 0,t.removeAttribute("resizing"))}_tabStripTouchmoveHandler(e){const t=this;if(t._touchmoveInside&&e.cancelable)return e.preventDefault(),void e.stopPropagation();const o=t.$.tabStrip,n=t._orientationSettings,a=o[n.size],r=o[n.scrollSize],s=t._touchCoords;if(a===r||!s)return;const i=e.touches[0],l=o[n.scrollDirection],d=i[n.coordinate],c=parseFloat(d.toFixed(5)),b=s["pageY"===n.coordinate?1:0],p=parseFloat(b.toFixed(5));t._touchCoords=[i.pageX,i.pageY],0===l&&c>=p||l+a===r&&c<=p||(d!==b&&(t._touchmoveInside=!0),e.cancelable&&(e.preventDefault(),e.stopPropagation()))}_tabStripTouchstartHandler(e){const t=e.touches[0];this._touchCoords=[t.pageX,t.pageY]}_toggleCollapsedState(){const e=this;e.collapsible&&(e.collapsed?e.expand():e.collapse())}_toggleNavigationElementsVisibility(){const e=this,t=e._tabs.length;let o;if(0===t)o="addClass";else{if(1!==t)return;o="removeClass"}"scroll"===e.tabLayout&&"scroll"===e.overflow?(e.$scrollButtonNear[o]("smart-hidden"),e.$scrollButtonFar[o]("smart-hidden")):"dropDown"===e.tabLayout&&e.$dropDownButton[o]("smart-hidden")}_updateIndexes(e){const t=this;null!==t.selectedIndex&&e<=t.selectedIndex&&t.selectedIndex++,t._updateTabIndexes()}_updateScrollButtonVisibility(e){const t=this;if("scroll"!==t.tabLayout||"hidden"===t.overflow)return void t._positionTabSelectionBar(t._tabLabelContainers[t.selectedIndex],e);const o=t.$tabsHeaderSection,n=t.$.tabStrip,a=t._orientationSettings;let r=!0,s=!0;if(t.rightToLeft&&"scrollLeft"===a.scrollDirection){const e=Math.abs(t._getScrollLeft());0===Math.round(e)&&(s=!1),Math.round(n[a.size]+e)>=Math.round(n[a.scrollSize])-1&&(r=!1)}else 0===Math.round(n[a.scrollDirection])&&(r=!1),Math.round(n[a.size]+n[a.scrollDirection])>=Math.round(n[a.scrollSize])-1&&(s=!1);if("auto"===t.overflow){if(r&&s)return t.$scrollButtonNear.removeClass("smart-hidden"),t.$scrollButtonFar.removeClass("smart-hidden"),o.removeClass("one-button-shown"),void(t._tabLabelContainers[t.selectedIndex]&&t._positionTabSelectionBar(t._tabLabelContainers[t.selectedIndex],e));r?t.$scrollButtonNear.removeClass("smart-hidden"):t.$scrollButtonNear.addClass("smart-hidden"),s?t.$scrollButtonFar.removeClass("smart-hidden"):t.$scrollButtonFar.addClass("smart-hidden"),o.addClass("one-button-shown"),t._getTabCoordinates()}else"scroll"!==t.overflow||t.disabled||(t.$.scrollButtonNear.disabled=!r,t.$.scrollButtonFar.disabled=!s);t._tabLabelContainers[t.selectedIndex]&&t._positionTabSelectionBar(t._tabLabelContainers[t.selectedIndex],e)}_updateTabIndexes(){const e=this;if(e._tabs.length>0)for(let t=0;t<e._tabs.length;t++)e._tabs[t]._setIndex(t);else e.selectedIndex=null;e.$.hiddenInput.value=e.selectedIndex}_updateTabLabel(e,t){const o=this,n=e.index,a=o._tabLabelContainers[n].firstElementChild.children[0],r=o.$.dropDownButtonDropDown.children[n];e.set("label",t),a.innerHTML="",r.innerHTML="",o._setLabel(t,a,r),o._applyTabOverflow(),e.setAttribute("aria-label",t),e.tabLabelContainer&&e.tabLabelContainer.setAttribute("aria-label",t)}_validateIndex(e,t){if(isNaN(parseInt(e,10))||"object"==typeof e){const e=this;e.error(e.localize("invalidIndex",{method:t}))}}_validateInitialSelection(){const e=this;let t=e.selectedIndex;for(let o=0;o<e._tabs.length;o++){const n=e._tabs[o];t===o?(n.selected=!0,n.$.removeClass("smart-visibility-hidden")):n.selected?null===t?(t=o,n.$.removeClass("smart-visibility-hidden")):(n.selected=!1,n.$.addClass("smart-visibility-hidden")):n.$.addClass("smart-visibility-hidden")}e._tabs.length>0&&null===t&&!e.allowToggle&&(t=0,e._tabs[0].selected=!0,e._tabs[0].$.removeClass("smart-visibility-hidden")),e.selectedIndex=t,null!==e.selectedIndex&&(e._focusedItem=e._tabs[e.selectedIndex])}});
48
+ Smart("smart-tab-item",class extends Smart.ContentElement{static get properties(){return{closeButtonHidden:{value:!1,type:"boolean"},index:{value:null,type:"number?"},selected:{value:!1,type:"boolean"},label:{value:"",type:"string"},labelSize:{value:null,type:"number?"}}}get enableShadowDOM(){return!1}render(){this.setAttribute("role","tabpanel"),this.firstElementChild.setAttribute("role","presentation"),super.render()}attached(){const e=this;super.attached(),e.isCompleted&&(e.$.removeClass("right"),e.$.removeClass("left"),e.$.removeClass("top"),e.$.removeClass("bottom"),e.$.removeClass("animate"))}propertyChangedHandler(e,t,o){super.propertyChangedHandler(e,t,o);const n=this;if(n._preventPropertyChangedHandler)delete n._preventPropertyChangedHandler;else switch(e){case"closeButtonHidden":n.$.fireEvent("closeButtonVisibilityChange",{hidden:o});break;case"disabled":{const e=n.tabLabelContainer;e&&(o?e.setAttribute("disabled",""):e.removeAttribute("disabled"));break}case"index":n.$.fireEvent("indexChange",{newIndex:o,oldIndex:t,tabItem:n});break;case"label":{const e=n.closest("smart-tabs");e?e._updateTabLabel(n,o):n.setAttribute("aria-label",o);break}case"selected":n.tabLabelContainer&&n.tabLabelContainer.setAttribute("aria-selected",o);break;case"labelSize":n.$.fireEvent("labelSizeChange",{size:o})}}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)))}t.firstElementChild.appendChild(e)}insertBefore(e,t){const o=this;if(!o.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.insertBefore.apply(o,e.concat(Array.prototype.slice.call(arguments)))}o.firstElementChild.insertBefore(e,t)}_setIndex(e){const t=this,o=t.context;t.context=t,t.index=e,t.context=o}}),Smart("smart-tab-items-group",class extends Smart.ContentElement{static get properties(){return{label:{value:"",type:"string"},labelSize:{value:null,type:"number?"}}}get enableShadowDOM(){return!1}template(){return""}propertyChangedHandler(e,t,o){super.propertyChangedHandler(e,t,o);const n=this;if(n._preventPropertyChangedHandler)delete n._preventPropertyChangedHandler;else switch(e){case"label":{const e=n.closest("smart-tabs");if(!e)return;const a=e._groups.indexOf(t);if(a<0)break;const r=Array.from(e.$.tabStrip.querySelectorAll(".smart-tab-group-container")).find((e=>e.group===t));Array.from(n.querySelectorAll("smart-tab-item")).forEach((e=>e.group=o)),r.querySelector(".smart-tab-label-text-container").innerHTML=o,r.setAttribute("aria-label",o),r.group=o,e._groups[a]=o;break}case"labelSize":this.$.fireEvent("labelSizeChange",{size:o})}}}),Smart("smart-tabs",class extends Smart.BaseElement{static get properties(){return{addNewTab:{value:!1,type:"boolean"},addNewTabAutoCreate:{value:!0,type:"boolean"},allowToggle:{value:!1,type:"boolean"},closeButtonMode:{value:"default",allowedValues:["default","selected"],type:"string"},closeButtons:{value:!1,type:"boolean"},collapsed:{value:!1,type:"boolean"},collapsible:{value:!1,type:"boolean"},dataSource:{value:null,type:"array?",reflectToAttribute:!1},enableMouseWheelAction:{value:!1,type:"boolean"},messages:{value:{en:{ambiguousIndexes:"smart-tabs: Initially set smart-tab-item indexes are ambiguous and are ignored in favour of the HTML structure.",detailsObjectRequired:'smart-tabs: The method "insert" requires a details Object to be passed as a second argument.',invalidIndex:'smart-tabs: "{{method}}" method accepts an index of type number.',referenceNodeNotChild:"smart-tabs: Passed {{argument}} is not part of this smart-tabs element.",tabItemRequired:'smart-tabs: The method "{{method}}" requires a "smart-tab-item" element to be passed as an argument.'}},type:"object",extend:!0},name:{value:"",type:"string"},overflow:{value:"auto",allowedValues:["auto","hidden","scroll"],type:"string"},reorder:{value:!1,type:"boolean"},resize:{value:!1,type:"boolean"},scrollButtonsPosition:{value:"both",allowedValues:["near","far","both"],type:"string"},scrollMode:{value:"paging",allowedValues:["paging","continuous"],type:"string"},selectedIndex:{value:null,type:"number?"},selectionMode:{value:"click",allowedValues:["click","dblclick","mouseenter","none"],type:"string"},tabLayout:{value:"scroll",allowedValues:["scroll","dropDown","wrap","shrink"],type:"string",defaultReflectToAttribute:!0},tabPosition:{value:"top",allowedValues:["top","bottom","left","right","hidden"],type:"string"},tabTextOrientation:{value:"horizontal",allowedValues:["horizontal","vertical"],type:"string"}}}static get listeners(){return{closeButtonVisibilityChange:"_closeButtonVisibilityChangeHandler",indexChange:"_indexChangeHandler",keydown:"_keydownHandler",labelSizeChange:"_labelSizeChangeHandler",resize:"_applyTabOverflow",styleChanged:"_applyTabOverflow","container.dblclick":"_containerHandler","container.down":"_containerHandler","container.mouseout":"_containerHandler","container.mouseover":"_containerHandler","scrollButtonFar.click":"_scrollButtonClickHandler","scrollButtonNear.click":"_scrollButtonClickHandler","tabContentSection.transitionend":"_tabContentSectionTransitionendHandler","tabsHeaderItems.wheel":"_tabsHeaderItemsWheelHandler","tabStrip.mouseleave":"_tabStripMouseleaveHandler","tabStrip.move":"_tabStripMoveHandler","tabStrip.touchmove":"_tabStripTouchmoveHandler","tabStrip.touchstart":"_tabStripTouchstartHandler","document.move":"_documentMoveHandler","document.selectstart":"_selectStartHandler","document.up":"_documentUpHandler"}}static get requires(){return{"Smart.RepeatButton":"smart.button.js"}}static get styleUrls(){return["smart.tabs.css"]}template(){return'<div id="container">\n <div id="tabsHeaderSection" class="smart-header smart-tabs-header-section">\n <div id="tabsHeaderItems" class="smart-tabs-header-items">\n <smart-repeat-button id="scrollButtonNear" class="smart-tabs-scroll-button smart-nav-button smart-spin-button smart-hidden" animation="[[animation]]" unfocusable>\n <div id="arrowNear" class="smart-arrow" aria-hidden="true"></div>\n </smart-repeat-button>\n <div id="tabStrip" class="smart-tab-strip"></div>\n <smart-repeat-button id="scrollButtonFar" class="smart-tabs-scroll-button smart-nav-button smart-spin-button smart-hidden" animation="[[animation]]" unfocusable>\n <div id="arrowFar" class="smart-arrow" aria-hidden="true"></div>\n </smart-repeat-button>\n <div id="dropDownButton" class="smart-drop-down-button" role="button" aria-expanded="false" aria-label="Open tab selection popup">\n <div id="dropDownButtonArrow" class="smart-drop-down-button-arrow smart-unselectable" aria-hidden="true"></div>\n </div>\n <span id="tabSelectionBar" class="smart-tabs-selection-bar" role="presentation"></span>\n <div id="resizeToken" class="smart-tabs-resize-token smart-hidden" role="presentation"></div>\n </div>\n <div id="tabHeaderControls" class="smart-tabs-header-controls"></div>\n </div>\n <div id="tabContentSection" class="smart-tabs-content-section">\n <content></content>\n </div>\n <div id="dropDownButtonDropDown" class="smart-drop-down-button-drop-down smart-hidden"></div>\n <input id="hiddenInput" type="hidden" name="[[name]]">\n </div>'}attached(){const e=this;super.attached(),e.isCompleted&&e.isRendered&&e._applyTabOverflow()}ready(){super.ready(),this._flexWritingModeNoFullSupport=!0}render(){this._createElement(),super.render()}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 instanceof Smart.TabItem||t.error(t.localize("tabItemRequired",{method:"appendChild"})),t.isRendered?t.insert(t._tabs.length,{node:e}):t.whenRendered((()=>t.insert(t._tabs.length,{node:e})))}collapse(){const e=this;e.collapsible&&!e.collapsed&&(e.collapsed=!0)}ensureVisible(e){const t=this;if(null===e||"wrap"===t.tabLayout||"shrink"===t.tabLayout||"hidden"===t.tabPosition)return;t._validateIndex(e,"ensureVisible"),e=Math.max(0,Math.min(e,t._tabs.length-1));const o=t._tabs[e].group,n=t.$.tabStrip,a=n.getBoundingClientRect(),r=(null===o?t._tabLabelContainers[e]:t._groupLabels[t._groups.indexOf(o)]).getBoundingClientRect();"top"===t.tabPosition||"bottom"===t.tabPosition?(a.left>r.left?n.scrollLeft+=Math.round(r.left-a.left):n.scrollLeft+=Math.round(r.right-a.right),t.addNewTab&&e===t._tabs.length-1&&(n.scrollLeft=n.scrollWidth-n.offsetWidth)):"left"!==t.tabPosition&&"right"!==t.tabPosition||!(a.top>r.top||a.bottom<r.bottom)?(n.scrollLeft=t._getScrollLeft(0),t.$.tabStrip.scrollTop=0):n.scrollTop+=Math.round(r.bottom-n.offsetHeight-a.top),t._updateScrollButtonVisibility(),t.resize&&t._getTabCoordinates()}expand(){const e=this;e.collapsible&&e.collapsed&&(e.collapsed=!1)}getOffsetFromEdgeOfElement(e){const t=this;t._validateIndex(e,"getOffsetFromEdgeOfElement"),e=Math.max(0,Math.min(e,t._tabs.length-1));const o=t._tabs[e],n=t.tabPosition;return"hidden"!==n?Math.abs(o.getBoundingClientRect()[n]-t.getBoundingClientRect()[n]):o.getBoundingClientRect().top-t.getBoundingClientRect().top}getTabs(){const e=this,t=e._tabs;return t?t.slice(0):Array.from(e.shadowRoot?e.shadowRoot.querySelectorAll("smart-tab-item"):e.getElementsByTagName("smart-tab-item"))}insert(e,t){const o=this;let n,a;if(o._validateIndex(e,"insert"),(void 0===t||void 0===t.label&&void 0===t.content&&void 0===t.node)&&o.error(o.localize("detailsObjectRequired")),void 0===t.node)n=t.group,a=document.createElement("smart-tab-item"),a.label=void 0!==t.label?t.label:"",a.labelSize=void 0!==t.labelSize?t.labelSize:null,a.content=t.content;else if(a=t.node,void 0!==a.index&&null!==a.index){const e=a.context;a.context=a,a.index=null,a.context=e}a.$.addClass("smart-visibility-hidden"),a.group=null;const r=o._addTabLabelContainer(a),s=r.tabLabelContainer,i=r.dropDownLabelContainer;s.tab=a,a.tabLabelContainer=s;const l={index:e,tab:a,tabLabelContainer:s,dropDownLabelContainer:i};if(o._setAriaRelations(a,s,i),0===o._groups.length&&void 0===n)o._insertNoGrouping(l);else if(null!=n){l.group=n;const e=o.$.tabContentSection.querySelector('smart-tab-items-group[label="'+n+'"]');null!==e?(l.smartTabItemsGroup=e,o._insertIntoExistingGroup(l)):o._insertIntoNewGroup(l)}else o._insertNearAGroup(l);o._getReorderItems(),null===o.selectedIndex&&!o.allowToggle&&o._tabs.length&&o._select(0,!0),null!==a.group&&null!==a.labelSize&&"shrink"!==o.tabLayout&&s.style.removeProperty([o._orientationSettings.dimension]),o._applyTabOverflow()}insertBefore(e,t){const o=this;if(!o.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.insertBefore.apply(o,e.concat(Array.prototype.slice.call(arguments)))}let n;e instanceof Smart.TabItem&&(null==t||t instanceof Smart.TabItem)||o.error(o.localize("tabItemRequired",{method:"insertBefore"})),o.contains(e)&&(e.selected&&(n=!0),o.removeAt(e.index)),null!=t?(o.contains(t)||o.error(o.localize("referenceNodeNotChild",{argument:"referenceNode"})),o.insert(t.index,{node:e})):o.insert(o._tabs.length,{node:e}),n&&o._select(e.index,!1)}refreshTabHeader(){const e=this;"scroll"===e.tabLayout&&e._checkOverflowScroll(),e._positionTabSelectionBar(e._tabLabelContainers?e._tabLabelContainers[e.selectedIndex]:void 0,!0)}removeAt(e){const t=this,o=t._tabs.length;if(0===o)return;t._validateIndex(e,"remove"),e=Math.max(0,Math.min(e,o-1));const n=t._tabs[e],a=t._tabLabelContainers[e];if(a._lazyRemove?a.classList.add("smart-hidden"):a.parentElement.removeChild(a),n.parentElement.removeChild(n),null!==n.group){const e=t.$.tabContentSection.querySelector('smart-tab-items-group[label="'+n.group+'"]');if(0===e.childElementCount){const o=t._groups.indexOf(n.group);t.$.tabStrip.removeChild(t._groupLabels[o]),t._groups.splice(o,1),t.$.container.removeChild(t._groupLabels[0].dropDown),t._groupLabels.splice(o,1),t.$.tabContentSection.removeChild(e)}}o>1?e<t.selectedIndex?t.selectedIndex--:e===t.selectedIndex&&(e===o-1?t._select(e-1,!1):(t._select(e+1,!1),t.selectedIndex--)):(t.selectedIndex=null,t.$.tabContentSection.innerHTML=""),t._tabLabelContainers.splice(e,1),t.$.dropDownButtonDropDown.removeChild(t.$.dropDownButtonDropDown.children[e]),t._tabs.splice(e,1),t._focusedItem===n&&(t._focusedItem=t._tabs[t._focusedItem.index]),t._updateTabIndexes(),t._getReorderItems(),t._applyTabOverflow(),t.ensureVisible(t.selectedIndex),t.$.hiddenInput.value=t.selectedIndex}removeChild(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.removeChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}e instanceof Smart.TabItem||t.error(t.localize("tabItemRequired",{method:"removeChild"})),t.contains(e)||t.error(t.localize("referenceNodeNotChild",{argument:"node"})),t.removeAt(e.index)}select(e){const t=this;0!==t._tabs.length&&(t._validateIndex(e,"select"),e=Math.max(0,Math.min(e,t._tabs.length-1)),t.ensureVisible(e),t._select(e,!0))}_setFocusable(){const e=this;e.disabled||e.unfocusable?e.removeAttribute("tabindex"):(null===e.getAttribute("tabindex")||e.getAttribute("tabindex")<0)&&e.setAttribute("tabindex",0)}getTabContent(e){const t=this._getTabProperty(e,"content");return t&&t.innerHTML?t.innerHTML:t}getTabLabel(e){return this._getTabProperty(e,"label")}_getTabProperty(e,t){if(0===this._tabs.length)return null;const o=this._tabs[e];return o?o[t]:null}setTabLabel(e,t){const o=this;if(0===o._tabs.length)return;o._validateIndex(e,"update"),e=Math.max(0,Math.min(e,o._tabs.length-1));const n=o._tabs[e];void 0!==t&&n.label!==t&&o._updateTabLabel(n,t)}update(e,t,o){const n=this;if(0===n._tabs.length)return;n._validateIndex(e,"update"),e=Math.max(0,Math.min(e,n._tabs.length-1));const a=n._tabs[e];void 0!==t&&a.label!==t&&n._updateTabLabel(a,t),void 0!==o&&(a.content=o)}_createElement(){const e=this;e.$.dropDownButton.id||(e.$.dropDownButton.id=e.id+"DropDownButton"),e.$.dropDownButtonDropDown.id||(e.$.dropDownButtonDropDown.id=e.id+"DropDown"),e.setAttribute("role","tablist"),e.$.dropDownButton.setAttribute("role","button"),e.$.dropDownButton.setAttribute("aria-haspopup",!0),e.$.dropDownButton.setAttribute("aria-owns",e.$.dropDownButtonDropDown.id),e.$.dropDownButtonDropDown.setAttribute("role","menu"),e.disabled&&(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0),e.rightToLeft&&(e.$.tabsHeaderItems.removeChild(e.$.dropDownButton),"top"===e.tabPosition||"bottom"===e.tabPosition?e.$.tabsHeaderItems.insertBefore(e.$.dropDownButton,e.$.scrollButtonNear):e.$.tabsHeaderItems.insertBefore(e.$.dropDownButton,e.$.tabSelectionBar)),e._handlePosition(e.tabPosition),e._handleScrollButtonsPosition(e.scrollButtonsPosition,"both"),null!==e.dataSource&&e._processDataSource(),e._setFocusable(),e.collapsed&&!e.collapsible&&(e.collapsed=!1),e.collapsible&&e.allowToggle&&(e.allowToggle=!1),e._processHTML(),null===e.selectedIndex&&e.$.tabContentSection.setAttribute("show-placeholder",""),setTimeout((()=>e.refreshTabHeader()),300),e.$.hiddenInput.value=e.selectedIndex,e.enableShadowDOM&&HTMLElement.prototype.appendChild.apply(e,[e.$.hiddenInput])}propertyChangedHandler(e,t,o){super.propertyChangedHandler(e,t,o);const n=this;switch(e){case"addNewTab":o?n._insertAddNewTab():(n.$.tabStrip.removeChild(n._addNewTab),delete n._addNewTab),n._applyTabOverflow();break;case"allowToggle":o&&n.collapsible?(n.collapsed&&n._toggleCollapsedState(),n.collapsible=!1):o||null!==n.selectedIndex||(n.ensureVisible(n.selectedIndex=0),n._select(n.selectedIndex,!0,null));break;case"closeButtonMode":if("selected"===o){for(let e=0;e<n._tabs.length;e++)n._disableCloseButton(e);n._enableCloseButton(n.selectedIndex)}else{n._disableCloseButton(n.selectedIndex);const e=n._tabLabelContainers;for(let t=0;t<e.length;t++){const o=e[t];o.closeButtonEnabled=!0!==n._tabs[t].closeButtonHidden,n._showCloseButton(o)}}n._applyTabOverflow();break;case"closeButtons":{const e=n._tabLabelContainers,t=o?n._showCloseButton:n._hideCloseButton;for(let o=0;o<e.length;o++)t(e[o]);n._applyTabOverflow();break}case"collapsed":if(!n.collapsible&&o)return void(n.collapsed=!1);break;case"collapsible":!o&&n.collapsed&&(n.collapsed=!1),n.allowToggle=!1,void 0===n.selectedIndex&&n.select(n._focusedItem.index);break;case"dataSource":n.selectedIndex=null;for(let e=0;e<n._groupLabels.length;e++)n.$.container.removeChild(n._groupLabels[e].dropDown);n.$.tabStrip.innerHTML="",n._processDataSource(),n._processHTML();break;case"disabled":n._setFocusable(),n.$.scrollButtonNear.disabled=o,n.$.scrollButtonFar.disabled=o,o||n._updateScrollButtonVisibility(),n._closeDropDownButtonDropDown();break;case"messages":case"scrollMode":case"selectionMode":case"readonly":case"reorder":break;case"overflow":if("scroll"!==n.tabLayout)return;n.$.tabStrip.scrollLeft=n._getScrollLeft(0),n.$.tabStrip.scrollTop=0,"hidden"===o?(n.$tabsHeaderSection.removeClass("scroll-buttons-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden")):n._checkOverflowScroll(),n._getTabCoordinates();break;case"tabPosition":n.$.tabSelectionBar.style.transition="none",n._tabPositionChanging=!0,n._closeGroupDropDown(),n._handlePosition(o,t),"shrink"!==n.tabLayout&&n._applyLabelSizes("tabPosition"),n.rightToLeft&&(n.$.tabsHeaderItems.removeChild(n.$.dropDownButton),"top"===n.tabPosition||"bottom"===n.tabPosition?n.$.tabsHeaderItems.insertBefore(n.$.dropDownButton,n.$.scrollButtonNear):n.$.tabsHeaderItems.insertBefore(n.$.dropDownButton,n.$.tabSelectionBar)),n._applyTabOverflow(),delete n._tabPositionChanging,requestAnimationFrame((function(){n.$.tabSelectionBar.style.transition=null}));break;case"resize":o&&n._getTabCoordinates();break;case"rightToLeft":n._positionTabSelectionBar(n._tabLabelContainers[n.selectedIndex],!0),n.$.tabsHeaderItems.removeChild(n.$.dropDownButton),!o||"top"!==n.tabPosition&&"bottom"!==n.tabPosition?n.$.tabsHeaderItems.insertBefore(n.$.dropDownButton,n.$.tabSelectionBar):n.$.tabsHeaderItems.insertBefore(n.$.dropDownButton,n.$.scrollButtonNear),n.ensureVisible(n.selectedIndex);break;case"scrollButtonsPosition":n._handleScrollButtonsPosition(o,t);break;case"selectedIndex":{if(isNaN(o)&&(n.selectedIndex=o=t),!n.allowToggle&&null===o)return void(n.selectedIndex=t);let e=o;null!==o&&(e=Math.max(0,Math.min(o,n._tabs.length-1)),n.ensureVisible(e)),n._select(e,!0,t);break}case"tabLayout":"scroll"===t&&(n.$tabsHeaderSection.removeClass("scroll-buttons-shown"),n.$scrollButtonNear.addClass("smart-hidden"),n.$scrollButtonFar.addClass("smart-hidden")),"shrink"===o?n._applyLabelSizes("shrink",!0):"shrink"===t&&n._applyLabelSizes("shrink",!1),n._applyTabOverflow(),"scroll"===o&&n.disabled&&(n.$.scrollButtonNear.disabled=!0,n.$.scrollButtonFar.disabled=!0),n.ensureVisible(n.selectedIndex);break;case"tabTextOrientation":n._applyTabOverflow(),n.ensureVisible(n.selectedIndex);break;case"unfocusable":n._setFocusable()}}_addGroupContainer(e,t){const o=this,n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("div"),s=document.createElement("div"),i=document.createElement("div");return n.className="smart-tab-group-container smart-unselectable",n.$=Smart.Utilities.Extend(n),n.setAttribute("role","group"),n.setAttribute("aria-expanded",!1),n.setAttribute("aria-haspopup",!0),n.setAttribute("aria-label",e),a.className="smart-tab-label-text-wrapper",a.setAttribute("role","presentation"),a.setAttribute("aria-hidden",!0),null!==t&&"shrink"!==o.tabLayout&&(n.style[o._orientationSettings.dimension]=parseInt(t,10)+"px"),r.className="smart-tab-label-text-container",r.innerHTML=e,s.className="smart-tab-group-arrow",i.className="smart-tab-group-drop-down smart-hidden",i.$=Smart.Utilities.Extend(i),i.id=o.id+"GroupDropDown"+e,i.setAttribute("role","tablist"),i.setAttribute("aria-orientation","vertical"),n.setAttribute("aria-owns",i.id),a.appendChild(r),a.appendChild(s),n.appendChild(a),o.$.container.appendChild(i),n.group=e,n.dropDown=i,i.groupContainer=n,{label:n,dropDown:i}}_addGroupElements(e){const t=this,o=e.groups,n=e.groupLabels,a=e.group,r=o.indexOf(a),s=e.tabLabelContainer;let i;if(-1!==r)i=n[r],i.dropDown.appendChild(s);else{o.push(a);const r=t._addGroupContainer(a,e.smartTabItemsGroup.labelSize),l=r.dropDown;i=r.label,l.appendChild(s),l.groupContainer=r.label,e.documentFragment.appendChild(i),n.push(i)}t.selectedIndex===e.i&&(t._selectedGroup=i,i.$.addClass("smart-tab-group-selected"))}_addNewTabHandler(e,t,o){const n=this;n._swiping||(o?(e.removeAttribute("hover"),n.addNewTabAutoCreate&&(n.insert(n._tabs.length,{label:"New Tab",content:""}),n._select(n._tabs.length-1,!0)),n.$.fireEvent("addNewTabClick")):n._reordering||n._swiping||("mouseover"===t?e.setAttribute("hover",""):"mouseout"===t&&e.removeAttribute("hover")))}_addTabLabelContainer(e,t){const o=this,n=document.createElement("div"),a=document.createElement("div"),r=document.createElement("div"),s=document.createElement("div");let i;return e&&(e.disabled?n.setAttribute("disabled",""):n.removeAttribute("disabled")),n.className="smart-tab-label-container smart-unselectable",a.className="smart-tab-label-text-wrapper",r.className="smart-tab-label-text-container",r.setAttribute("role","presentation"),s.className="smart-tab-close-button",s.setAttribute("role","button"),s.setAttribute("aria-label","Close"),void 0===t?(o.closeButtons?"default"===o.closeButtonMode&&e.closeButtonHidden||"selected"===o.closeButtonMode&&!e.selected?(s.classList.add("smart-hidden"),n.closeButtonEnabled=!1):(r.classList.add("smart-close-button-enabled"),n.closeButtonEnabled=!0):(s.classList.add("smart-hidden"),n.closeButtonEnabled=!0),i=document.createElement("div"),i.className="smart-tab-label-container smart-unselectable",e&&null===e.group&&null!==e.labelSize&&"shrink"!==o.tabLayout&&(n.style[o._orientationSettings.dimension]=parseInt(e.labelSize,10)+"px")):(s.classList.add("smart-hidden"),n.closeButtonEnabled=!1),o._setLabel(e?e.label:"+",r,i),r.$=Smart.Utilities.Extend(r),s.$=Smart.Utilities.Extend(s),a.appendChild(r),a.appendChild(s),n.appendChild(a),n.$=Smart.Utilities.Extend(n),{tabLabelContainer:n,dropDownLabelContainer:i}}_animateSelection(e,t,o){const n=this;let a="right",r="left";if(n.rightToLeft&&(a="left",a="right"),n._animatedTab=e,n._animatedOldTab=t,n._animatedTab&&n._animatedOldTab){"left"!==n.tabPosition&&"right"!==n.tabPosition||(a="top",r="bottom");for(let e=0;e<n._tabs.length;e++)n._tabs[e].$.removeClass(a),n._tabs[e].$.removeClass(r),n._tabs[e].$.removeClass("animate");if(e===t)return e.$.hasClass("smart-visibility-hidden")?e.$.removeClass("smart-visibility-hidden"):e.$.addClass("smart-visibility-hidden"),void(n._animatedOldTab.classToRemove=a);o?(e.$.addClass(a),e.$.removeClass("smart-visibility-hidden"),t.$.addClass("smart-visibility-hidden"),requestAnimationFrame((()=>{t.$.addClass("animate"),e.$.addClass("animate"),requestAnimationFrame((()=>{t.$.addClass(r),e.$.removeClass(a)}))})),n._animatedOldTab.classToRemove=r):(e.$.addClass(r),e.$.removeClass("smart-visibility-hidden"),t.$.addClass("smart-visibility-hidden"),requestAnimationFrame((()=>{t.$.addClass("animate"),e.$.addClass("animate"),requestAnimationFrame((()=>{t.$.addClass(a),e.$.removeClass(r)}))})),n._animatedOldTab.classToRemove=a)}}_applyConditionalTabOverflow(){const e=this,t="left"===e.tabPosition||"right"===e.tabPosition,o=e.$.tabStrip;if("scroll"!==e.tabLayout){if(e._flexWritingModeNoFullSupport&&"shrink"===e.tabLayout&&t&&o.scrollHeight>o.offsetHeight){const t=o.children,n=100/t.length+"%";o.$.addClass("shrink-tabs-vertical");for(let e=0;e<t.length;e++)t[e].style.height=n,t[e].firstElementChild.firstElementChild.classList.add("smart-tab-label-text-container-full-height");e._inlineStyleTabStripChildren=!0}}else e._checkOverflowScroll()}_applyLabelSizes(e,t){const o=this,n=o._orientationSettings.dimension,a="width"===n?"height":"width";for(let r=0;r<o._reorderItems.length;r++){const s=o._reorderItems[r],i=o._getCorrespondingCustomElement(s);null!==i.labelSize&&("tabPosition"===e&&s.style.removeProperty(a),t?s.style.removeProperty(n):s.style[n]=parseInt(i.labelSize,10)+"px")}}refresh(){this._applyTabOverflow()}_applyTabOverflow(){const e=this;if(!e._tabs)return;if(e._removeInlineStyle(),0===e._tabs.length)return void e._toggleNavigationElementsVisibility();const t=e.tabLayout,o=e.tabPosition,n="left"===o||"right"===o,a=e.$.tabStrip;switch(e._closeDropDownButtonDropDown(),t){case"scroll":case"dropDown":e._flexWritingModeNoFullSupport&&"vertical"===e.tabTextOrientation&&n&&e._fixTabStripNotChrome(a);break;case"wrap":if("vertical"===e.tabTextOrientation)if(e._flexWritingModeNoFullSupport)if(n)e._fixTabStripNotChrome(a);else{const t=a.children;let o=t[0].offsetHeight;for(let e=1;e<t.length;e++)o=Math.max(o,t[e].offsetHeight);for(let e=1;e<t.length;e++)t[e].style.height=o+"px";e._inlineStyleTabStripChildren=!0}else n||a.scrollHeight>a.offsetHeight&&(a.style.height=a.scrollHeight+"px",e._inlineStyleTabStrip=!0);else n&&a.scrollWidth>a.offsetWidth&&(a.style.width=a.scrollWidth+"px","right"===o&&(a.style.flexWrap="wrap-reverse"),e._inlineStyleTabStrip=!0);break;case"shrink":if(n){if(e._flexWritingModeNoFullSupport&&"vertical"===e.tabTextOrientation){const t=a.children,o=window.getComputedStyle(t[0].firstElementChild),n=parseInt(o.paddingLeft,10)+parseInt(o.paddingRight,10);let r=0;for(let e=0;e<t.length;e++)r=Math.max(r,t[e].firstElementChild.firstElementChild.offsetWidth);a.style.width=n+r+"px",e._inlineStyleTabStrip=!0;break}}else a.scrollWidth>a.offsetWidth&&a.$.addClass("shrink-tabs")}e._applyConditionalTabOverflow(),e._getTabCoordinates(),e._fixTabStripFlex(t),e._toggleNavigationElementsVisibility(),e._positionTabSelectionBar(e._tabLabelContainers[e.selectedIndex],!0)}_checkOverflowScroll(){const e=this,t=e.$tabsHeaderSection,o=e.$.tabStrip,n=e.overflow;if("hidden"===n)return;let a,r,s;if("left"!==e.tabPosition&&"right"!==e.tabPosition){const t=Math.abs(e._getScrollLeft());a=Math.round(o.scrollWidth)>Math.round(o.offsetWidth),e.rightToLeft?(s=Math.round(t)>0,r=Math.round(o.offsetWidth+t)<Math.round(o.scrollWidth)):(r=Math.round(t)>0,s=Math.round(o.offsetWidth+t)<Math.round(o.scrollWidth))}else a=Math.round(o.scrollHeight)>Math.round(o.offsetHeight),r=Math.round(o.scrollTop)>0,s=Math.round(o.offsetHeight+o.scrollTop)<Math.round(o.scrollHeight);"scroll"===n&&(t.addClass("scroll-buttons-shown"),e.$scrollButtonNear.removeClass("smart-hidden"),e.$scrollButtonFar.removeClass("smart-hidden")),a?"auto"===n?(t.hasClass("scroll-buttons-shown")||t.addClass("scroll-buttons-shown"),r?e.$scrollButtonNear.removeClass("smart-hidden"):e.$scrollButtonNear.addClass("smart-hidden"),s?e.$scrollButtonFar.removeClass("smart-hidden"):e.$scrollButtonFar.addClass("smart-hidden"),!1===(r&&s)?t.addClass("one-button-shown"):t.removeClass("one-button-shown"),e.disabled||(e.$.scrollButtonNear.disabled=!1,e.$.scrollButtonFar.disabled=!1)):(t.removeClass("one-button-shown"),e.disabled?(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0):(e.$.scrollButtonNear.disabled=!r,e.$.scrollButtonFar.disabled=!s)):!a&&"auto"===n&&t.hasClass("scroll-buttons-shown")?(t.removeClass("scroll-buttons-shown"),t.removeClass("one-button-shown"),e.$scrollButtonNear.addClass("smart-hidden"),e.$scrollButtonFar.addClass("smart-hidden")):a||"scroll"!==n||(e.$.scrollButtonNear.disabled=!0,e.$.scrollButtonFar.disabled=!0)}_closeButtonVisibilityChangeHandler(e){const t=this,o=(Smart.EnableShadowDOM?e.composedPath()[0]:e.target).index;"selected"!==t.closeButtonMode?e.detail.hidden?t._disableCloseButton(o):t._enableCloseButton(o):t._tabLabelContainers[o].closeButtonEnabled=e.detail.hidden}_closeDropDownButtonDropDown(){const e=this;e._dropDownButtonDropDownOpened&&(e.$.dropDownButton.setAttribute("aria-expanded",!1),e.$dropDownButtonDropDown.addClass("smart-hidden"),e._dropDownButtonDropDownOpened=!1)}_closeGroupDropDown(){const e=this;if(!e._openDropDown)return;const t=e._openDropDown.groupContainer;e._openDropDown.rippleInProgress?setTimeout((function(){e._openDropDown&&(t.setAttribute("aria-expanded",!1),e._openDropDown.$.addClass("smart-hidden"),delete e._openDropDown.rippleInProgress,e._openDropDown=void 0)}),450):(t.setAttribute("aria-expanded",!1),e._openDropDown.$.addClass("smart-hidden"),e._openDropDown=void 0)}_containerHandler(e){const t=this,o=e.type;if(t.disabled||t.readonly||t._resizing&&"mouseout"!==o||("down"===o||"up"===o)&&1!==e.which&&!Smart.Utilities.Core.isMobile)return;const n=t.shadowRoot||t.isInShadowDOM?(e.originalEvent||e).composedPath()[0]:(e.originalEvent||e).target;t.$.tabContentSection.contains(n)||(t.$.dropDownButton.contains(n)?t._dropDownButtonHandler(n,e):t.$.dropDownButtonDropDown.contains(n)?t._dropDownButtonHandler(n,e,!0):t._tabStripHandler(n,e))}_disableCloseButton(e){const t=this,o=t._tabLabelContainers[e];o.closeButtonEnabled=!1,t.closeButtons&&t._hideCloseButton(o)}_documentMoveHandler(e){const t=this,o=t._orientationSettings;if(t._reordering){t._reorderStartThrown||(t._fireDragEvent(e,"dragStart"),t._reorderStartThrown=!0);const n=e[o.coordinate],a="wrap"!==t.tabLayout?function(e){return n>=e[o.from]&&n<=e[o.to]}:function(t){return e.pageX>=t.fromX&&e.pageX<=t.toX&&e.pageY>=t.fromY&&e.pageY<=t.toY};let r=!1;for(let e=0;e<t._tabCoordinates.length;e++)if(a(t._tabCoordinates[e])){r=e;break}!0!==t._preventReorder&&!1!==r&&r!==t._draggedIndex&&(t._reorderTabs(t._draggedIndex,r),t._closeGroupDropDown(),t._draggedIndex=r,t._getReorderItems(),t._getTabCoordinates());const s=t._tabCoordinates[t._draggedIndex];"wrap"!==t.tabLayout&&(n<s[o.from]||n>s[o.to])||"wrap"===t.tabLayout&&(null!==e.originalEvent.target.closest(".smart-tab-label-container")||null!==e.originalEvent.target.closest(".smart-tab-group-container"))&&!(e.pageX>=s.fromX&&e.pageX<=s.toX&&e.pageY>=s.fromY&&e.pageY<=s.toY)?t._preventReorder=!0:t._preventReorder=!1}else t._resizing&&(t.$.resizeToken.style[o.edge]=e[o.coordinate]-t._tabsHeaderSectionCoordinate+"px",t.$resizeToken.removeClass("smart-hidden"))}_documentUpHandler(e){const t=this;let o=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;t.$.container.contains(o)&&t._containerHandler(e),t._touchmoveInside?t._endSwiping(e,Date.now()):(delete t._dragStartDetails,delete t._swiping),delete t._touchCoords,delete t._touchmoveInside,!t._openDropDown||t._openDropDown.rippleInProgress||o!==document&&o.closest(".smart-tab-group-container")===t._openDropDown.groupContainer||"pointercancel"===e.originalEvent.type||t._closeGroupDropDown(),t.$.dropDownButton.contains(o)||"pointercancel"===e.originalEvent.type||t._closeDropDownButtonDropDown(),t._endReordering(e,o),t._resize(e),void 0!==t._tabToResize&&(t._tabToResize=void 0),delete t._downTarget}_dropDownButtonHandler(e,t,o){const n=this,a=t.type;if(o){if(e.classList.contains("smart-tab-label-container"))switch(a){case"down":n._downTarget=e;break;case"mouseout":e.removeAttribute("hover");break;case"mouseover":e.setAttribute("hover","");break;case"up":e===n._downTarget&&t.originalEvent&&"pointercancel"!==t.originalEvent.type&&(n.select(Array.from(n.$.dropDownButtonDropDown.children).indexOf(e)),n._closeDropDownButtonDropDown())}}else if("down"===a)n._downTarget=n.$.dropDownButton;else if("up"===a&&n._downTarget===n.$.dropDownButton)if(n._dropDownButtonDropDownOpened)n._closeDropDownButtonDropDown();else{const e=n.tabPosition;let t,o;switch(n.$.dropDownButton.setAttribute("aria-expanded",!0),e){case"top":t=n.$.dropDownButton.offsetLeft,o=n.$.tabsHeaderSection.offsetTop+n.$.dropDownButton.offsetHeight;break;case"bottom":t=n.$.dropDownButton.offsetLeft,o=n.$.tabsHeaderSection.offsetTop;break;case"left":t=n.$.dropDownButton.offsetWidth,o=n.$.dropDownButton.offsetTop;break;case"right":t=n.$.tabsHeaderSection.offsetLeft,o=n.$.dropDownButton.offsetTop}n.$.dropDownButtonDropDown.style.left=t+"px",n.$.dropDownButtonDropDown.style.top=o+"px",n.$dropDownButtonDropDown.removeClass("smart-hidden"),n._dropDownButtonDropDownOpened=!0}}_enableCloseButton(e){const t=this,o=t._tabLabelContainers[e];o.closeButtonEnabled=!0,t.closeButtons&&t._showCloseButton(o)}_endReordering(e,t){const o=this;o._reordering&&(o._draggedHoveredTab&&(o._draggedHoveredTab.contains(t)||o._draggedHoveredTab.removeAttribute("hover"),delete o._draggedHoveredTab),o._reorderedIndex=void 0,o._reordering=!1,o._reorderStartThrown=!1,o.removeAttribute("dragged"),e&&o._fireDragEvent(e,"dragEnd"))}_endSwiping(e,t){const o=this;if(!o._dragStartDetails)return;const n=o._orientationSettings,a=o.$.tabStrip,r=Math.abs(o._dragStartDetails.startTime-t),s=200/r,i=(o._dragStartDetails[n.startCoordinate]-e[n.coordinate])*s;let l=Math.abs(i);const d=function(){if(o.rightToLeft&&"scrollLeft"===n.scrollDirection){const e=Math.abs(o._getScrollLeft());if(i<0&&e===a[n.scrollSize]-a[n.size]||i>0&&0===e)return!1}else if(i>0&&a[n.scrollDirection]===a[n.scrollSize]-a[n.size]||i<0&&0===a[n.scrollDirection])return!1;return!0};let c=.03*Math.abs(i)*s;const b=function(){if(c>5){const e=(l-c)/Math.abs(i);e<.1?c/=1.25:e<.15?c/=1.2:e<.2?c/=1.15:e<.25?c/=1.1:e<.3&&(c/=1.05)}c=Math.round(c);const e=a[n.scrollDirection];o.rightToLeft&&"scrollLeft"===n.scrollDirection?Smart.Utilities.Core.Browser.Chrome?a[n.scrollDirection]=i>0?Math.max(e+c,0):Math.min(e-c,a[n.scrollSize]-a[n.size]):a[n.scrollDirection]=i>0?Math.min(e+c,a[n.scrollSize]-a[n.size]):Math.min(e-c,0):a[n.scrollDirection]=i>0?Math.min(e+c,a[n.scrollSize]-a[n.size]):Math.max(e-c,0),l-=c,o._updateScrollButtonVisibility(!0);const t=d();l>0&&t?o._scrollingAnimationFrame=window.requestAnimationFrame(b):o._wheelInProgress=!1};o._scrollingAnimationFrame&&cancelAnimationFrame(o._scrollingAnimationFrame),r<500&&d()?o._scrollingAnimationFrame=window.requestAnimationFrame(b):o._wheelInProgress=!1,delete o._dragStartDetails,o._swiping&&delete o._swiping}_fireDragEvent(e,t){const o=this,n=o.$.tabStrip.children[o._draggedIndex],a=n.tab;let r,s,i;a?(r=a.selected,s=a.index,i=a.label):i=n.group,o.$.fireEvent(t,{position:{left:e.pageX,top:e.pageY},left:e.pageX,top:e.pageY,target:n,selected:r,index:s,label:i})}_fixTabStripNotChrome(e){const t=this;function o(){const o=[].slice.call(e.children).filter((e=>!e._lazyRemove));let n=o[0].getBoundingClientRect(),a=n.left,r=a+o[0].offsetWidth;for(let e=1;e<o.length;e++)n=o[e].getBoundingClientRect(),a=Math.min(a,n.left),r=Math.max(r,n.left+o[e].offsetWidth);e.style.width=r-a+"px",t._inlineStyleTabStrip=!0}0!==t._tabs.length&&(o(),Smart.Utilities.Core.Browser.Safari&&setTimeout((function(){e.parentElement.classList.add("smart-hidden"),setTimeout((function(){e.parentElement.classList.remove("smart-hidden"),o()}),10)}),10),t.$.fireEvent("tabStripResize"))}_fixTabStripFlex(e){const t=this;t._flexWritingModeNoFullSupport||"vertical"!==t.tabTextOrientation||"left"!==t.tabPosition&&"right"!==t.tabPosition||setTimeout((function(){t.$tabsHeaderSection.addClass("smart-hidden"),setTimeout((function(){t.$tabsHeaderSection.removeClass("smart-hidden"),t._getTabCoordinates(),"scroll"===e&&t._checkOverflowScroll()}),10)}),10)}_getCorrespondingCustomElement(e){return e.$.hasClass("smart-tab-label-container")?e.tab:this.$.tabContentSection.querySelector('smart-tab-items-group[label="'+e.group+'"]')}_getReorderItems(){const e=this;let t;0===e._groups.length?t=e._tabLabelContainers:(t=Array.from(e.$.tabStrip.children),e.addNewTab&&t.pop()),e._reorderItems=t}_getTabCoordinates(){const e=this;if(!e.reorder&&!e.resize||"hidden"===e.tabPosition)return;const t=[],o=window.scrollX||window.pageXOffset,n=window.scrollY||window.pageYOffset;for(let a=0;a<e._reorderItems.length;a++){const r=e._reorderItems[a],s=r.getBoundingClientRect(),i=window.getComputedStyle(r),l=parseFloat(i.marginLeft),d=parseFloat(i.marginRight),c=parseFloat(i.marginTop),b=parseFloat(i.marginBottom);t.push({fromX:s.left-l+o,toX:s.right+d+o,fromY:s.top-c+n,toY:s.bottom+b+n})}e._tabCoordinates=t}_getTabs(){const e=this;let t=e.shadowRoot?e.shadowRoot.querySelectorAll("smart-tab-item"):e.getElementsByTagName("smart-tab-item");if(e.querySelector("smart-tabs")){t=e.shadowRoot?e.shadowRoot.querySelectorAll("smart-tab-item"):e.getElementsByTagName("smart-tab-item");let o=[];const n=e.querySelector(".smart-tabs-content-section");if(n){for(let e=0;e<t.length;e++)t[e].parentNode===n&&o.push(t[e]);t=o}}null!==e.selectedIndex&&(0===t.length?e.selectedIndex=null:e.selectedIndex=Math.max(0,Math.min(e.selectedIndex,t.length-1))),e._tabs=Array.from(t),e.$.hiddenInput.value=e.selectedIndex}_groupContainerHandler(e,t){const o=this,n=e.dropDown;if("down"===t)return o._downTarget=e,void(o.reorder&&o._reorderItems.length>1&&(o._getTabCoordinates(),o._reordering=!0,o.setAttribute("dragged",""),o._draggedIndex=Array.from(o.$.tabStrip.children).indexOf(e)));o._reordering||o._swiping||(n===o._openDropDown||"mouseover"!==t||e.classList.contains("smart-tab-group-selected")?"mouseout"===t&&e.removeAttribute("hover"):e.setAttribute("hover","")),"up"!==t||o._downTarget!==e||void 0!==o._reorderedIndex||o._swiping||(n===o._openDropDown?(o._closeGroupDropDown(),e.classList.contains("smart-tab-group-selected")||e.setAttribute("hover","")):o._openGroupDropDown(e))}_handlePosition(e,t){const o=this;if(-1===[void 0,"top","left","hidden"].indexOf(t)||"bottom"!==e&&"right"!==e?"bottom"!==t&&"right"!==t||-1===["top","left","hidden"].indexOf(e)||o.$.container.insertBefore(o.$.tabsHeaderSection,o.$.tabContentSection):o.$.container.insertBefore(o.$.tabContentSection,o.$.tabsHeaderSection),"hidden"===e)return o._orientationSettings={coordinate:"pageY",dimension:"height",edge:"top",from:"fromY",size:"offsetHeight",to:"toY",scrollDirection:"scrollTop",scrollSize:"scrollHeight",startCoordinate:"startY",wheelOffset:35},o.removeAttribute("horizontal"),o.removeAttribute("vertical"),void o.setAttribute("aria-orientation","horizontal");"top"===e||"bottom"===e?(o._orientationSettings={coordinate:"pageX",dimension:"width",edge:"left",from:"fromX",size:"offsetWidth",to:"toX",scrollDirection:"scrollLeft",scrollSize:"scrollWidth",startCoordinate:"startX",wheelOffset:70},o.removeAttribute("vertical"),o.setAttribute("horizontal",""),o.$arrowNear.removeClass("smart-arrow-up"),o.$arrowNear.addClass("smart-arrow-left"),o.$arrowFar.removeClass("smart-arrow-down"),o.$arrowFar.addClass("smart-arrow-right"),o.setAttribute("aria-orientation","horizontal"),o.$.scrollButtonNear.setAttribute("aria-label","Scroll left"),o.$.scrollButtonFar.setAttribute("aria-label","Scroll right")):(o._orientationSettings={coordinate:"pageY",dimension:"height",edge:"top",from:"fromY",size:"offsetHeight",to:"toY",scrollDirection:"scrollTop",scrollSize:"scrollHeight",startCoordinate:"startY",wheelOffset:35},o.removeAttribute("horizontal"),o.setAttribute("vertical",""),o.$arrowNear.removeClass("smart-arrow-left"),o.$arrowNear.addClass("smart-arrow-up"),o.$arrowFar.removeClass("smart-arrow-right"),o.$arrowFar.addClass("smart-arrow-down"),o.setAttribute("aria-orientation","vertical"),o.$.scrollButtonNear.setAttribute("aria-label","Scroll up"),o.$.scrollButtonFar.setAttribute("aria-label","Scroll down"))}_handleScrollButtonsPosition(e,t){const o=this,n=o.$.tabsHeaderItems;e!==t&&("both"===e?"near"===t?n.insertBefore(o.$.scrollButtonFar,o.$.dropDownButton):n.insertBefore(o.$.scrollButtonNear,o.$.tabStrip):"near"===e?("far"===t&&n.insertBefore(o.$.scrollButtonNear,o.$.tabStrip),n.insertBefore(o.$.scrollButtonFar,o.$.tabStrip)):("near"===t&&n.insertBefore(o.$.scrollButtonFar,o.$.dropDownButton),n.insertBefore(o.$.scrollButtonNear,o.$.scrollButtonFar)))}_hideCloseButton(e){e.firstElementChild.children[0].$.removeClass("smart-close-button-enabled"),e.firstElementChild.children[1].$.addClass("smart-hidden")}_indexChangeHandler(e){const t=this,o=e.detail.oldIndex,n=Math.max(0,Math.min(e.detail.newIndex,t._tabs.length-1));if(o!==n){if(0===t._groups.length)t._reorderTabs(o,n);else{const a=e.detail.tabItem;a._setIndex(o),t.removeAt(o),t.insert(n,{node:a}),t.selectedIndex===o&&t._select(n,!1)}t._reorderedIndex=void 0}}_insertAddNewTab(){const e=this,t=e._addTabLabelContainer(void 0,!0).tabLabelContainer;t.$.addClass("smart-add-new-tab"),e.$.tabStrip.appendChild(t),e._addNewTab=t}_insertIntoExistingGroup(e){const t=this,o=e.smartTabItemsGroup,n=e.tab,a=e.tabLabelContainer,r=e.group,s=t._groupLabels[t._groups.indexOf(r)].dropDown;let i=e.index;i=Math.max(0,Math.min(i,o.childElementCount)),s.insertBefore(a,s.children[i]);const l=o.children[i];let d;d=l?l.index:o.children[i-1].index+1,o.insertBefore(n,l),t._tabLabelContainers.splice(d,0,a),t.$.dropDownButtonDropDown.insertBefore(e.dropDownLabelContainer,t.$.dropDownButtonDropDown.children[d]||null),t._tabs.splice(d,0,n),i=d,n.group=r,t._updateIndexes(i)}_insertIntoNewGroup(e){const t=this,o=e.tab,n=e.tabLabelContainer,a=e.group,r=t._addGroupContainer(a),s=r.label;r.dropDown.appendChild(n),t._groups.push(a);let i=Math.max(0,Math.min(e.index,t.$.tabStrip.childElementCount)),l=i;t._addNewTab&&l===t.$.tabStrip.childElementCount&&l--,t.$.tabStrip.insertBefore(s,t.$.tabStrip.children[l]||null),t._groupLabels.push(s);const d=document.createElement("smart-tab-items-group");d.appendChild(o),t.$.tabContentSection.insertBefore(d,t.$.tabContentSection.children[i]),d.label=a;const c=d.previousElementSibling;let b=0;c&&(c instanceof Smart.TabItem?b=c.index+1:c&&(b=c.lastElementChild.index+1)),t._tabLabelContainers.splice(b,0,n),t.$.dropDownButtonDropDown.insertBefore(e.dropDownLabelContainer,t.$.dropDownButtonDropDown.children[b]||null),t._tabs.splice(b,0,o),i=b,o.group=a,t._updateIndexes(i)}_insertNearAGroup(e){const t=this,o=e.tab,n=e.tabLabelContainer;let a=e.index;a=Math.max(0,Math.min(a,t._tabs.length));const r=t._tabs[a-1],s=t._tabs[a],i=s?s.group:void 0;r&&null!==r.group&&s&&null!==i?(s.tabLabelContainer.parentElement.insertBefore(n,s.tabLabelContainer),s.parentElement.insertBefore(o,s),o.group=i):s?null!==i?(t.$.tabStrip.insertBefore(n,t._groupLabels[t._groups.indexOf(i)]),t.$.tabContentSection.insertBefore(o,t.$.tabContentSection.querySelector('smart-tab-items-group[label="'+i+'"]'))):(t.$.tabStrip.insertBefore(n,s.tabLabelContainer),t.$.tabContentSection.insertBefore(o,s)):(t.$.tabStrip.insertBefore(n,t._addNewTab||null),t.$.tabContentSection.appendChild(o)),t._tabLabelContainers.splice(a,0,n),t.$.dropDownButtonDropDown.insertBefore(e.dropDownLabelContainer,t.$.dropDownButtonDropDown.children[a]||null),t._tabs.splice(a,0,o),t._updateIndexes(a)}_insertNoGrouping(e){const t=this,o=Math.max(0,Math.min(e.index,t._tabs.length)),n=e.tab,a=e.tabLabelContainer;t.$.tabStrip.insertBefore(a,t._tabLabelContainers[o]||t._addNewTab||null),t.$.tabContentSection.insertBefore(n,t._tabs[o]||null),t._tabLabelContainers.splice(o,0,a),t.$.dropDownButtonDropDown.insertBefore(e.dropDownLabelContainer,t.$.dropDownButtonDropDown.children[o]||null),t._tabs.splice(o,0,n),t._updateIndexes(o)}_keydownHandler(e){const t=this,o=e.key;if((t.isInShadowDOM?t.getRootNode().activeElement:document.activeElement)!==t||-1===["ArrowLeft","ArrowDown","ArrowRight","ArrowUp","End","Home","Enter"," ","Escape"].indexOf(o)||t.disabled||t.readonly||"none"===t.selectionMode||!t.allowToggle&&null===t.selectedIndex||t._reordering||t._swiping)return;e.preventDefault();const n=t._tabs.length-1;let a,r,s,i,l=0;switch(t.rightToLeft?(s="ArrowRight",i="ArrowLeft"):(s="ArrowLeft",i="ArrowRight"),o){case s:case"ArrowUp":if(t.collapsible&&e.ctrlKey)return void(o===s?"right"===t.tabPosition?t.expand():"left"===t.tabPosition&&t.collapse():"ArrowUp"===o&&("bottom"===t.tabPosition?t.expand():"top"===t.tabPosition&&t.collapse()));if(l=-1,0===t.selectedIndex){r=!0;break}a=t.selectedIndex+l;break;case i:case"ArrowDown":if(t.collapsible&&e.ctrlKey)return void(o===i?"right"===t.tabPosition?t.collapse():"left"===t.tabPosition&&t.expand():"ArrowDown"===o&&("bottom"===t.tabPosition?t.collapse():"top"===t.tabPosition&&t.expand()));if(l=1,t.selectedIndex===n){r=!0;break}a=t.selectedIndex+l;break;case"End":if(t.selectedIndex===n){r=!0;break}a=n;break;case"Home":if(0===t.selectedIndex){r=!0;break}a=0;break;case"Enter":case" ":if(!t.allowToggle)return;if(t._focusedItem){t.select(t._focusedItem.index);const e=t._focusedItem.tabLabelContainer.closest(".smart-tab-group-drop-down");e&&t._openGroupDropDown(e.groupContainer)}return;case"Escape":return void(t._openDropDown&&t._closeGroupDropDown())}if(t.allowToggle&&t._tabs.length>0){t._focusedItem?t._focusedItem.tabLabelContainer.removeAttribute("focus"):t._focusedItem=t._focusedItem||t._tabs[t.selectedIndex]||t._tabs[0],t._focusedItem=t._tabs[Math.min(Math.max(0,t._focusedItem.index+l),n)],t._focusedItem.tabLabelContainer.setAttribute("focus",""),t.ensureVisible(t._focusedItem.index);const e=t._focusedItem.tabLabelContainer.closest(".smart-tab-group-drop-down");e&&e.groupContainer?(t._openDropDown&&t._openDropDown!==e.dropDown&&t._closeGroupDropDown(),t._openGroupDropDown(e.groupContainer)):t._openDropDown&&t._closeGroupDropDown()}else r||t.select(a)}_labelContainerHandler(e,t,o){const n=this,a="up"===o&&n._downTarget===e;if("down"===o&&(n._downTarget=e,"click"===n.selectionMode&&e!==n._addNewTab))if(Smart.Utilities.Core.isMobile&&null===e.tab.group){const o=n.$.tabStrip[n._orientationSettings.scrollDirection];setTimeout((function(){o===n.$.tabStrip[n._orientationSettings.scrollDirection]&&n._ripple(t,e)&&n._openDropDown&&n._openDropDown.contains(e)&&(n._openDropDown.rippleInProgress=!0)}),100)}else n._ripple(t,e)&&n._openDropDown&&n._openDropDown.contains(e)&&(n._openDropDown.rippleInProgress=!0);if(e===n._addNewTab)return void n._addNewTabHandler(e,o,a);const r=e.tab.index,s=!(n._reordering&&void 0!==n._reorderedIndex);a&&r===n.selectedIndex&&(n._closeGroupDropDown(),s&&null===e.tab.group&&n._toggleCollapsedState()),!n._swiping&&(s&&"click"===n.selectionMode&&a||!n._reordering&&(n.selectionMode===o||"mouseenter"===n.selectionMode&&"mouseover"===o))&&n._select(r,!0),n._reordering||n._swiping||"click"!==n.selectionMode&&"dblclick"!==n.selectionMode||("mouseover"!==o||e.hasAttribute("selected")?"mouseout"===o&&e.removeAttribute("hover"):e.setAttribute("hover","")),n.reorder&&"down"===o&&null===e.tab.group&&n._reorderItems.length>1&&(n._getTabCoordinates(),n._reordering=!0,n.setAttribute("dragged",""),e.hasAttribute("hover")&&(n._draggedHoveredTab=e),0===n._groups.length?n._draggedIndex=e.tab.index:n._draggedIndex=Array.from(n.$.tabStrip.children).indexOf(e))}_labelSizeChangeHandler(e){const t=this,o=e.detail.size;let n;"shrink"!==t.tabLayout&&(n=e.target instanceof Smart.TabItem?e.target.tabLabelContainer:t._groupLabels[t._groups.indexOf(e.target.label)],null!==o?n.style[t._orientationSettings.dimension]=parseInt(o,10)+"px":n.style.removeProperty(t._orientationSettings.dimension),t._applyTabOverflow())}_openGroupDropDown(e){const t=this;e&&(t._openDropDown&&t._openDropDown.$.addClass("smart-hidden"),e.dropDown.$.removeClass("smart-hidden"),t._positionGroupDropDown(e),t._openDropDown=e.dropDown,e.removeAttribute("hover"),e.setAttribute("aria-expanded",!0))}_orderTabs(){const e=this,t=[],o=[];let n=!0,a=!1;if(0===e.getElementsByTagName("smart-tab-items-group").length)for(let r=0;r<e._tabs.length;r++){const s=e._tabs[r],i=s.index;if(n&&null!==i&&(n=!1),-1!==t.indexOf(i||0)&&(a=!0,null!==i))break;t.push(i||0),o.push({tab:s,index:i})}if(!a){const e=t.slice(0).sort((function(e,t){return e-t}));JSON.stringify(t)===JSON.stringify(e)&&(n=!0)}if(n||a){n||e.warn(e.localize("ambiguousIndexes"));for(let t=0;t<e._tabs.length;t++)e._tabs[t]._setIndex(t)}else{o.sort((function(e,t){return e.index-t.index}));for(let t=0;t<o.length;t++){const n=o[t].tab;n._setIndex(t),e.$.tabContentSection.removeChild(n)}for(let t=0;t<o.length;t++){const n=o[t].tab;e.$.tabContentSection.appendChild(n),e._tabs[t]=n}}}_populateTabStrip(){const e=this,t=document.createDocumentFragment(),o=[],n=[],a=[];let r=null;for(let s=0;s<e._tabs.length;s++){const i=e._tabs[s],l=i.parentElement,d=l instanceof Smart.TabItemsGroup?l.label:null;i.group=d;const c=e._addTabLabelContainer(i),b=c.tabLabelContainer,p=c.dropDownLabelContainer;e.selectedIndex===s&&(b.$.addClass("smart-tab-selected"),b.setAttribute("selected",""),r=b),i.tabLabelContainer=b,b.tab=i,o.push(b),e._setAriaRelations(i,b,p),null===d?t.appendChild(b):e._addGroupElements({documentFragment:t,groups:n,groupLabels:a,i:s,group:d,tabLabelContainer:b,smartTabItemsGroup:l}),e.$.dropDownButtonDropDown.appendChild(p)}e.$.tabStrip.appendChild(t),e._tabLabelContainers=o,e._groups=n,e._groupLabels=a,e._positionTabSelectionBar(r,!0)}_setAriaRelations(e,t,o){const n=this.id;e.id||(e.id=n+"TabItem"+e.index),t.id||(t.id=n+"TabLabelContainer"+e.index),t.setAttribute("role","tab"),t.setAttribute("aria-controls",e.id),t.setAttribute("aria-label",e.label),t.setAttribute("aria-selected",e.selected),e.setAttribute("aria-label",e.label),o.setAttribute("role","menuitem"),o.setAttribute("aria-controls",e.id)}_positionTabSelectionBar(e,t){const o=this;if(!e)return;const n=o.tabPosition;let a,r,s,i;if(t&&(o.$.tabSelectionBar.style.transition="none"),e.tab.group&&(e=o._groupLabels[o._groups.indexOf(e.tab.group)]),"top"===n||"bottom"===n){if("wrap"===o.tabLayout?(r=e.offsetTop,"top"===n&&(r+=e.offsetHeight-o.$.tabSelectionBar.offsetHeight),r+="px"):r=null,i=null,o.rightToLeft&&"horizontal"===o.tabTextOrientation)if(Smart.Utilities.Core.Browser.Chrome){const t=o.$.tabStrip;a=-(t.scrollLeft-(t.scrollWidth-t.offsetWidth))+e.offsetLeft+"px"}else a=-o.$.tabStrip.scrollLeft+e.offsetLeft+"px";else a=-o.$.tabStrip.scrollLeft+e.offsetLeft+"px";s=e.offsetWidth+"px"}else"left"!==n&&"right"!==n||("wrap"===o.tabLayout?(a=e.offsetLeft,"left"===n&&(a+=e.offsetWidth-o.$.tabSelectionBar.offsetWidth),a+="px"):a=null,s=null,r=-o.$.tabStrip.scrollTop+e.offsetTop+"px",i=e.offsetHeight+"px");function l(){o.$.tabSelectionBar.style.top=r,o.$.tabSelectionBar.style.height=i,o.$.tabSelectionBar.style.left=a,o.$.tabSelectionBar.style.width=s}Smart.Utilities.Core.isMobile&&o.hasAnimation&&!t?requestAnimationFrame((function(){requestAnimationFrame(l)})):l(),t&&!o._tabPositionChanging&&requestAnimationFrame((()=>o.$.tabSelectionBar.style.transition=null))}_positionGroupDropDown(e){const t=this,o=t.tabPosition,n=e.dropDown,a=window.getComputedStyle(t.$.tabsHeaderSection),r=parseFloat(a[t.rightToLeft?"paddingRight":"paddingLeft"]),s=parseFloat(a.paddingTop);if("top"===o||"bottom"===o){const a=!1;if(t.rightToLeft?n.style.left=e.offsetLeft-t._getScrollLeft()-r-n.offsetWidth+e.offsetWidth+"px":n.style.left=e.offsetLeft-t.$.tabStrip.scrollLeft+r+"px","top"===o)a||(n.style.top=e.offsetTop+e.offsetHeight+s+"px");else{let o=e.getBoundingClientRect().top-t.$.container.getBoundingClientRect().top+s;a&&(o+=t.$.tabStrip.offsetHeight),n.style.top=o+"px"}}else n.style.top=e.offsetTop-t.$.tabStrip.scrollTop+s+"px",n.style.left="left"===o?e.offsetLeft+e.offsetWidth+r+"px":e.getBoundingClientRect().left-t.$.container.getBoundingClientRect().left+r+"px"}_processDataSource(){const e=this,t=e.dataSource;function o(e,t){let n;if(Array.isArray(e.items)&&e.items.length>0){n=document.createElement("smart-tab-items-group");for(let t=0;t<e.items.length;t++)e.items[t].items||o(e.items[t],n)}else n=document.createElement("smart-tab-item"),!0===e.closeButtonHidden&&(n.closeButtonHidden=!0),void 0!==e.content&&(n.innerHTML=e.content),void 0!==e.index&&(n.index=e.index),!0===e.selected&&(n.selected=e.selected);void 0!==e.label&&(n.label=e.label),void 0!==e.labelSize&&(n.labelSize=e.labelSize),t.appendChild(n)}if(e.$.tabContentSection.innerHTML="",null!==t)for(let n=0;n<t.length;n++)o(t[n],e.$.tabContentSection)}_processHTML(){const e=this;e._getTabs(),e._orderTabs(),e._validateInitialSelection(),e._populateTabStrip(),e.addNewTab&&e._insertAddNewTab(),e._getReorderItems(),e._applyTabOverflow(),e.ensureVisible(e.selectedIndex),e.$.hiddenInput.value=e.selectedIndex}_removeInlineStyle(){const e=this,t=e.$.tabStrip;if(e._inlineStyleTabStripChildren){const o=t.children;for(let e=0;e<o.length;e++)o[e].removeAttribute("style"),o[e].firstElementChild.firstElementChild.classList.remove("smart-tab-label-text-container-full-height");delete e._inlineStyleTabStripChildren}e._inlineStyleTabStrip&&(t.removeAttribute("style"),delete e._inlineStyleTabStrip),t.$.removeClass("shrink-tabs"),t.$.removeClass("shrink-tabs-vertical")}_reorderTabs(e,t){function o(e,t,o){const n=e[t];e.splice(t,1),e.splice(o,0,n)}const n=this,a=n.$.tabStrip[n._orientationSettings.scrollDirection];if(0===n._groups.length){const a=n._tabs,r=n._tabLabelContainers,s=e>t?t:t+1;let i;n.selectedIndex===e?n.selectedIndex=t:n.selectedIndex<=t&&n.selectedIndex>e?n.selectedIndex--:n.selectedIndex>=t&&n.selectedIndex<e&&n.selectedIndex++,i=r[s]?r[s]:n.addNewTab?n._addNewTab:null,n.$.tabStrip.insertBefore(r[e],i),n.$.dropDownButtonDropDown.insertBefore(n.$.dropDownButtonDropDown.children[e],n.$.dropDownButtonDropDown.children[s]||null),n.$.tabContentSection.insertBefore(a[e],a[s]||null),o(a,e,t),o(r,e,t),n._updateTabIndexes()}else n._reorderTabsGrouping(e,t);n.$.tabStrip[n._orientationSettings.scrollDirection]=a,n.$.fireEvent("reorder",{index:t,oldIndex:e,newIndex:t,originalIndex:e}),n._reorderedIndex=t,n._positionTabSelectionBar(n._tabLabelContainers[n.selectedIndex],!0),n.$.hiddenInput.value=n.selectedIndex}_reorderTabsGrouping(e,t){const o=this,n=o.$.tabStrip.children,a=o.$.tabContentSection.children,r=e>t?t:t+1,s=o._tabs[o.selectedIndex];o.$.tabStrip.insertBefore(n[e],n[r]||null),o.$.tabContentSection.insertBefore(a[e],a[r]||null),o._groupLabels=Array.from(o.$.tabStrip.getElementsByClassName("smart-tab-group-container")),o._groups=[];for(let e=0;e<o._groupLabels.length;e++)o._groups.push(o._groupLabels[e].group);o._tabs=Array.from(o.$.tabContentSection.getElementsByTagName("smart-tab-item"));const i=document.createDocumentFragment();let l=[];for(let e=0;e<o._tabs.length;e++)i.appendChild(o.$.dropDownButtonDropDown.children[o._tabs[e].index].cloneNode(!0));o.$.dropDownButtonDropDown.innerHTML="",o.$.dropDownButtonDropDown.appendChild(i);for(let e=0;e<o.$.tabStrip.childElementCount;e++){const t=o.$.tabStrip.children[e];t.$.hasClass("smart-tab-label-container")&&t!==o._addNewTab?l.push(t):t.$.hasClass("smart-tab-group-container")&&(l=l.concat(Array.from(t.dropDown.children)))}o._tabLabelContainers=l,o._updateTabIndexes(),s&&(o.selectedIndex=s.index)}_resize(e){const t=this;if(!t._resizing)return;const o=t._orientationSettings,n=e[o.coordinate]-t._resizeFrom,a=t._getCorrespondingCustomElement(t._tabToResize);let r;r=null===a.labelSize?t._tabToResize[o.size]:a.labelSize;const s=Math.max(10,r+n);s!==r&&(a._preventPropertyChangedHandler=!0,a.labelSize=s,t._tabToResize.style[o.dimension]=parseInt(s,10)+"px"),t.$resizeToken.addClass("smart-hidden"),t._applyTabOverflow(),t._resizing=!1,t.removeAttribute("resizing")}_ripple(e,t){if(this.hasRippleAnimation){const o=document.createElement("div");return o.className="ripple-agent",t.firstElementChild.appendChild(o),setTimeout((function(){t.firstElementChild.removeChild(o)}),1e3),Smart.Utilities.Animation.Ripple.animate(o,e.pageX,e.pageY),!0}}_scrollButtonClickHandler(e){const t=this,o=t.$.tabStrip;let n=e.target.closest("smart-repeat-button")===t.$.scrollButtonNear?-1:1;if("paging"===t.scrollMode){const a=t._orientationSettings,r={};return t._dragStartDetails={startX:0,startY:0,pageX:0,pageY:0,startTime:Date.now(),target:e.target},t._wheelInProgress=!0,r[a.coordinate]=-n*(o[a.size]/1.1428571428571428),void t._endSwiping(r,t._dragStartDetails.startTime+175)}t.hasAttribute("horizontal")?o.scrollLeft+=10*n:o.scrollTop+=10*n,t._updateScrollButtonVisibility(!0)}_getScrollLeft(e){const t=this,o=t.$.tabStrip;return void 0===e?t.rightToLeft&&Smart.Utilities.Core.Browser.Chrome?o.scrollLeft-(o.scrollWidth-o.offsetWidth):o.scrollLeft:(!t.rightToLeft||"top"!==t.tabPosition&&"bottom"!==t.tabPosition||(Smart.Utilities.Core.Browser.Chrome?e=o.scrollWidth-o.offsetWidth-e:e*=-1),e)}_select(e,t,o){const n=this,a=n.hasAnimation;void 0===o&&(o=n.selectedIndex);const r=n._tabs[e];if(!r||r.disabled||e===o&&(!n.allowToggle||n.allowToggle&&"mouseenter"===n.selectionMode))n.$.hiddenInput.value=n.selectedIndex;else{if(n._focusedItem&&n._focusedItem.tabLabelContainer.removeAttribute("focus"),null!==o){const t=n._tabs[o];a?n._animateSelection(r,t,e>o):t.$.addClass("smart-visibility-hidden"),t.selected=!1,n._tabLabelContainers[o].$.removeClass("smart-tab-selected"),n._tabLabelContainers[o].removeAttribute("selected"),n.closeButtons&&"selected"===n.closeButtonMode&&n._disableCloseButton(o)}null!==e&&(n._tabLabelContainers[e].removeAttribute("hover"),n.closeButtons&&"selected"===n.closeButtonMode&&n._enableCloseButton(e)),!n.allowToggle||null!==e&&(void 0!==arguments[2]?o:n.selectedIndex)!==e?(r.selected=!0,n.$.tabContentSection.removeAttribute("show-placeholder"),null!==o&&a||r.$.removeClass("smart-visibility-hidden"),n.selectedIndex=e,n._focusedItem=n._tabs[e],n._focusedItem.tabLabelContainer.$.addClass("smart-tab-selected"),n._focusedItem.tabLabelContainer.setAttribute("selected",""),n._positionTabSelectionBar(n._focusedItem.tabLabelContainer,null===o)):(n.selectedIndex=null,n.$.tabContentSection.setAttribute("show-placeholder",""),n.allowToggle&&(n._focusedItem=n._tabs[null===e?o:e],n._focusedItem&&n._focusedItem.tabLabelContainer.setAttribute("focus",""))),t&&(n.$.hiddenInput.value=n.selectedIndex,n.$.fireEvent("change",{index:n.selectedIndex,oldIndex:o})),n._closeGroupDropDown(),r&&null!==r.group?(n._selectedGroup&&n._selectedGroup.$.removeClass("smart-tab-group-selected"),null!==n.selectedIndex&&(n._selectedGroup=n._groupLabels[n._groups.indexOf(r.group)],n._selectedGroup.$.addClass("smart-tab-group-selected"))):n._selectedGroup&&(n._selectedGroup.$.removeClass("smart-tab-group-selected"),delete n._selectedGroup),n.$.hiddenInput.value=n.selectedIndex}}_selectStartHandler(e){(this._reordering||this._resizing)&&e.preventDefault()}_setLabel(e,t,o){const n=e?document.getElementById(e):null;if(null!==n&&"template"===n.tagName.toLowerCase()){const e=document.importNode(n.content,!0);if(t.appendChild(e),o){const e=document.importNode(n.content,!0);o.appendChild(e)}}else""===e&&(e="&nbsp;"),t.innerHTML=e,o&&(o.innerHTML=e)}_showCloseButton(e){e.closeButtonEnabled&&(e.firstElementChild.children[0].$.addClass("smart-close-button-enabled"),e.firstElementChild.children[1].$.removeClass("smart-hidden"))}_tabContentSectionTransitionendHandler(e){const t=this,o=e.target;o instanceof Smart.TabItem&&(o===t._animatedOldTab?(o.$.addClass("smart-hidden"),o.$.removeClass("animate"),o.$.removeClass(t._animatedOldTab.classToRemove),o.$.removeClass("smart-hidden"),delete t._animatedOldTab):o===t._animatedTab&&(o.$.removeClass("animate"),delete t._animatedTab),o.classList.remove("left"),o.classList.remove("right"),o.classList.remove("top"),o.classList.remove("bottom"))}_tabsHeaderItemsWheelHandler(e){const t=this;if(!t.enableMouseWheelAction||t.disabled)return;const o=t.$.tabStrip,n=t._orientationSettings,a=o[n.size],r=o[n.scrollSize],s=o[n.scrollDirection],i=e.deltaY;if(a===r||0===s&&i<0||s+a===r&&i>0)return;if(e.preventDefault(),t._wheelInProgress)return;t._dragStartDetails={startX:e.pageX,startY:e.pageY,pageX:e.pageX,pageY:e.pageY,startTime:Date.now(),target:e.target},t._wheelInProgress=!0;const l={};l[n.coordinate]=e[n.coordinate]+(e.deltaY>0?-1:1)*n.wheelOffset,t._endSwiping(l,t._dragStartDetails.startTime+100)}_tabStripHandler(e,t){const o=this,n=t.type;if("down"===n&&void 0!==o._tabToResize)return o._resizing=!0,void(o._tabsHeaderSectionCoordinate=o.$.tabsHeaderSection.getBoundingClientRect()[o._orientationSettings.edge]);"down"===n&&Smart.Utilities.Core.isMobile&&(o._dragStartDetails={startX:t.pageX,startY:t.pageY,pageX:t.pageX,pageY:t.pageY,startTime:Date.now(),originalTime:Date.now(),target:t.originalEvent.target});const a=e.closest("smart-repeat-button");if("up"===n&&a)return o.focus(),void(o.resize&&o._getTabCoordinates());if(e.classList.contains("smart-tab-close-button"))if("up"===n){if(e===o._downTarget){const t=e.parentElement.parentElement.tab.index;return void(o.$.fireEvent("closing",{index:t}).defaultPrevented||(o.removeAt(t),o.$.fireEvent("close",{index:t})))}}else{if("down"===n)return void(o._downTarget=e);o._reordering||o._swiping||("mouseover"===n?e.setAttribute("hover",""):"mouseout"===n&&e.removeAttribute("hover"))}const r=e.closest(".smart-tab-label-container");if(null!==r)return void(t.originalEvent&&"pointercancel"===t.originalEvent.type?r.tab.group&&delete r.parentElement.rippleInProgress:o._labelContainerHandler(r,t,n));const s=e.closest(".smart-tab-group-container");null!==s&&o._groupContainerHandler(s,n)}_tabStripMouseleaveHandler(){const e=this;e.resize&&!e._resizing&&e.hasAttribute("resizing")&&e.removeAttribute("resizing")}_tabStripMoveHandler(e){const t=this;if(t._dragStartDetails&&!t._dragStartDetails.checked&&(Date.now()-t._dragStartDetails.originalTime<500?(t._endReordering(void 0,void 0),t._dragStartDetails.checked=!0):delete t._dragStartDetails),t._dragStartDetails&&(Math.abs(t._dragStartDetails.pageX-e.pageX)>=5||Math.abs(t._dragStartDetails.pageY-e.pageY)>=5)){const o=t._orientationSettings,n=t._dragStartDetails[o.coordinate]-e[o.coordinate],a=t.$.tabStrip[o.scrollDirection];return t.$.tabStrip[o.scrollDirection]+=n,a!==t.$.tabStrip[o.scrollDirection]&&t._updateScrollButtonVisibility(),t._dragStartDetails={startX:t._dragStartDetails.startX,startY:t._dragStartDetails.startY,pageX:e.pageX,pageY:e.pageY,startTime:t._dragStartDetails.startTime,originalTime:t._dragStartDetails.originalTime,target:e.originalEvent.target,checked:t._dragStartDetails.checked},void(t._swiping=!0)}if(!t.resize||t._resizing||t._reordering||"shrink"===t.tabLayout)return;const o=t._orientationSettings,n=e[o.coordinate],a=t._tabCoordinates;let r;for(let e=0;e<a.length;e++){const s=a[e][o.to];if(n>=s-4&&n<=s+4){r=t._reorderItems[e],t._resizeFrom=n;break}}void 0!==r?(t._tabToResize=r,t.setAttribute("resizing","")):(t._tabToResize=void 0,t.removeAttribute("resizing"))}_tabStripTouchmoveHandler(e){const t=this;if(t._touchmoveInside&&e.cancelable)return e.preventDefault(),void e.stopPropagation();const o=t.$.tabStrip,n=t._orientationSettings,a=o[n.size],r=o[n.scrollSize],s=t._touchCoords;if(a===r||!s)return;const i=e.touches[0],l=o[n.scrollDirection],d=i[n.coordinate],c=parseFloat(d.toFixed(5)),b=s["pageY"===n.coordinate?1:0],p=parseFloat(b.toFixed(5));t._touchCoords=[i.pageX,i.pageY],0===l&&c>=p||l+a===r&&c<=p||(d!==b&&(t._touchmoveInside=!0),e.cancelable&&(e.preventDefault(),e.stopPropagation()))}_tabStripTouchstartHandler(e){const t=e.touches[0];this._touchCoords=[t.pageX,t.pageY]}_toggleCollapsedState(){const e=this;e.collapsible&&(e.collapsed?e.expand():e.collapse())}_toggleNavigationElementsVisibility(){const e=this,t=e._tabs.length;let o;if(0===t)o="addClass";else{if(1!==t)return;o="removeClass"}"scroll"===e.tabLayout&&"scroll"===e.overflow?(e.$scrollButtonNear[o]("smart-hidden"),e.$scrollButtonFar[o]("smart-hidden")):"dropDown"===e.tabLayout&&e.$dropDownButton[o]("smart-hidden")}_updateIndexes(e){const t=this;null!==t.selectedIndex&&e<=t.selectedIndex&&t.selectedIndex++,t._updateTabIndexes()}_updateScrollButtonVisibility(e){const t=this;if("scroll"!==t.tabLayout||"hidden"===t.overflow)return void t._positionTabSelectionBar(t._tabLabelContainers[t.selectedIndex],e);const o=t.$tabsHeaderSection,n=t.$.tabStrip,a=t._orientationSettings;let r=!0,s=!0;if(t.rightToLeft&&"scrollLeft"===a.scrollDirection){const e=Math.abs(t._getScrollLeft());0===Math.round(e)&&(s=!1),Math.round(n[a.size]+e)>=Math.round(n[a.scrollSize])-1&&(r=!1)}else 0===Math.round(n[a.scrollDirection])&&(r=!1),Math.round(n[a.size]+n[a.scrollDirection])>=Math.round(n[a.scrollSize])-1&&(s=!1);if("auto"===t.overflow){if(r&&s)return t.$scrollButtonNear.removeClass("smart-hidden"),t.$scrollButtonFar.removeClass("smart-hidden"),o.removeClass("one-button-shown"),void(t._tabLabelContainers[t.selectedIndex]&&t._positionTabSelectionBar(t._tabLabelContainers[t.selectedIndex],e));r?t.$scrollButtonNear.removeClass("smart-hidden"):t.$scrollButtonNear.addClass("smart-hidden"),s?t.$scrollButtonFar.removeClass("smart-hidden"):t.$scrollButtonFar.addClass("smart-hidden"),o.addClass("one-button-shown"),t._getTabCoordinates()}else"scroll"!==t.overflow||t.disabled||(t.$.scrollButtonNear.disabled=!r,t.$.scrollButtonFar.disabled=!s);t._tabLabelContainers[t.selectedIndex]&&t._positionTabSelectionBar(t._tabLabelContainers[t.selectedIndex],e)}_updateTabIndexes(){const e=this;if(e._tabs.length>0)for(let t=0;t<e._tabs.length;t++)e._tabs[t]._setIndex(t);else e.selectedIndex=null;e.$.hiddenInput.value=e.selectedIndex}_updateTabLabel(e,t){const o=this,n=e.index,a=o._tabLabelContainers[n].firstElementChild.children[0],r=o.$.dropDownButtonDropDown.children[n];e.set("label",t),a.innerHTML="",r.innerHTML="",o._setLabel(t,a,r),o._applyTabOverflow(),e.setAttribute("aria-label",t),e.tabLabelContainer&&e.tabLabelContainer.setAttribute("aria-label",t)}_validateIndex(e,t){if(isNaN(parseInt(e,10))||"object"==typeof e){const e=this;e.error(e.localize("invalidIndex",{method:t}))}}_validateInitialSelection(){const e=this;let t=e.selectedIndex;for(let o=0;o<e._tabs.length;o++){const n=e._tabs[o];t===o?(n.selected=!0,n.$.removeClass("smart-visibility-hidden")):n.selected?null===t?(t=o,n.$.removeClass("smart-visibility-hidden")):(n.selected=!1,n.$.addClass("smart-visibility-hidden")):n.$.addClass("smart-visibility-hidden")}e._tabs.length>0&&null===t&&!e.allowToggle&&(t=0,e._tabs[0].selected=!0,e._tabs[0].$.removeClass("smart-visibility-hidden")),e.selectedIndex=t,null!==e.selectedIndex&&(e._focusedItem=e._tabs[e.selectedIndex])}});
49
49
 
50
50
  /***/ }),
51
51
 
52
52
  /***/ 8466:
53
53
  /***/ (() => {
54
54
 
55
- Smart("smart-window",class extends Smart.ContentElement{static get properties(){return{collapsed:{value:!1,type:"boolean"},closeOnMaskClick:{value:!1,type:"boolean"},disableSnap:{value:!1,type:"boolean"},footerPosition:{value:"bottom",allowedValues:["bottom","none"],type:"string"},footerTemplate:{value:null,type:"any"},headerButtons:{value:["close","maximize","minimize"],type:"array"},headerPosition:{value:"top",allowedValues:["top","bottom","left","right","none"],type:"string"},headerTemplate:{value:null,type:"any"},label:{value:"",type:"string"},liveResize:{value:!1,type:"boolean"},maximized:{value:!1,type:"boolean"},modal:{value:!1,type:"boolean"},minimized:{value:!1,type:"boolean"},opened:{value:!1,type:"boolean"},pinned:{value:!1,type:"boolean"},resizeIndicator:{value:!1,type:"boolean"},resizeMode:{allowedValues:["none","horizontal","vertical","both","top","bottom","left","right"],value:"none",type:"string"},windowParent:{value:null,type:"any"}}}static get listeners(){return{"document.dragstart":"_dragStartHandler","document.focusin":"_documentFocusInEventHandler","document.move":"_documentMoveHandler","document.up":"_documentUpHandler","document.wheel":"_mouseWheelHandler","document.selectstart":"_documentSelectStartHandler",down:"_downHandler",focus:"_focusHandler",blur:"_focusHandler",move:"_moveHandler",keydown:"_keyDownHandler",keyup:"_keyUpHandler"}}get hasStyleObserver(){return!1}static get styleUrls(){return["smart.button.css","smart.window.css"]}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header" role="presentation">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container" role="presentation">\n <button id="pinButton" class="smart-button smart-element smart-pin-button" aria-label="Pin"></button>\n <button id="collapseButton" class="smart-button smart-element smart-collapse-button" aria-label="Collapse"></button>\n <button id="minimizeButton" class="smart-button smart-element smart-minimize-button"aria-label="Minimize"></button>\n <button id="maximizeButton" class="smart-button smart-element smart-maximize-button" aria-label="Maximize"></button>\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content" inner-h-t-m-l="[[innerHTML]]"><content></content></div>\n <div id="footer" class="smart-footer"></div>\n </div>\n </div>'}propertyChangedHandler(e,t,a){const i=this;switch(e){case"collapsed":a?i.collapse(!0):i.expand(!0);break;case"disabled":case"unfocusable":i._setFocusable();break;case"headerTemplate":case"footerTemplate":i._applyLayoutTemplate(i.$[e.split(/[T]/)[0]],a);break;case"headerButtons":i._setHeaderButtons();break;case"headerPosition":{const e=i.minimized;i._preventEventFiring=!0,i.restore(),delete i._preventEventFiring,e&&i.minimize();break}case"label":i.$.header.innerHTML=i.label;break;case"maximized":a?i.maximize(!0):i.restore(e);break;case"modal":i._setModal(),i.setAttribute("aria-modal",a);break;case"minimized":a?i.minimize(!0):i.restore(e);break;case"opened":a?i.open(!0):i.close(!0);break;case"resizeMode":i.$.container.classList.remove("smart-window-resizing-bottom-right","smart-window-resizing-top-right","smart-window-resizing-top-left","smart-window-resizing-bottom-left","smart-window-resizing-top","smart-window-resizing-bottom","smart-window-resizing-left","smart-window-resizing-right");break;case"windowParent":i._setElementParent(a);break;default:super.propertyChangedHandler(e,t,a)}}ready(){super.ready(),this._windowParent={initialParent:this.parentElement}}render(){const e=this,t=e.animation;e.$.header.id||(e.$.header.id=e.id+"Header"),e.$.content.id||(e.$.content.id=e.id+"Content"),e.opened||(e.animation="none"),e._windowParent={initialParent:e.parentElement},e.$.addClass("smart-window"),e._createElement(),e._setElementParent(e.windowParent),e._setHeaderButtons(),e.headerTemplate&&e._applyLayoutTemplate(e.$.header,e.headerTemplate),e.footerTemplate&&e._applyLayoutTemplate(e.$.footer,e.footerTemplate),e.opened?e.open():e.close(),e.maximized&&e.maximize(!0),e.minimized&&e.minimize(!0),e.collapsed&&e.collapse(!0),e.pinned?e.pin():e.unpin(),e._setFocusable(),e.animation=t,e.setAttribute("aria-modal",e.modal),e.setAttribute("aria-labelledby",e.$.header.id),e._setupDismissTargets(),super.render()}refresh(){const e=this;e.headerTemplate&&e._applyLayoutTemplate(e.$.header,e.headerTemplate),e.footerTemplate&&e._applyLayoutTemplate(e.$.footer,e.footerTemplate),e.opened?e.open():e.close(),e.maximized&&e.maximize(!0),e.minimized&&e.minimize(!0),e.collapsed&&e.collapse(!0),e.pinned?e.pin():e.unpin()}static get requires(){return{"Smart.Button":"smart.button.js"}}_setFocusable(){const e=this;if(e.disabled||e.unfocusable)e.removeAttribute("tabindex");else{let t=e.tabIndex>0?e.tabIndex:0;e.setAttribute("tabindex",t)}}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?t.$.content.appendChild(e):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"appendChild",node:"node"}))}collapse(e){const t=this;!e&&t.collapsed||(t.collapsed=!0,t.$.fireEvent("collapse"),"left"===t.headerPosition||"right"===t.headerPosition?t.style.width="":t.style.height="")}close(e){const t=this;if(e||!t.$.hasClass("smart-visibility-hidden")){if(t.isCompleted){if(t.$.fireEvent("closing").defaultPrevented)return;t.$.addClass("smart-visibility-hidden"),t.opened=!1,t.isRendered&&t.$.fireEvent("close")}else t.$.addClass("smart-visibility-hidden"),t.opened=!1;t._setModal(),t.removeAttribute("ontop")}}attached(){super.attached();const e=this;e.isRendered,e._windowParent.parent&&e._windowParent.parent!==e.getShadowRootOrBody()&&e._windowParent.parent.querySelectorAll("smart-window, smart-dialog-window, smart-progress-window, smart-wait-window, smart-alert-window, smart-prompt-window, smart-multiline-prompt-window")&&"static"===window.getComputedStyle(e._windowParent.parent).getPropertyValue("position")&&(e._windowParent.parent.style.position="relative"),e.opened&&e._modal&&e.parentElement.insertBefore(e._modal,e)}bringToFront(){const e=this;if(!e.parentElement)return;const t=e.parentElement.closest(".smart-window");if(t)return void t.bringToFront();const a=document.body.getElementsByClassName("smart-window");let i=[];for(let e=0;e<a.length;e++){const t=a[e];t.removeAttribute("ontop"),t.opened&&i.push(t)}1===i.length&&i[0]===e||e.setAttribute("ontop","")}clear(){const e=this;e.isCompleted&&"Smart-WINDOW"===e.nodeName&&(e.innerHTML=e.$.content.innerHTML="")}detached(){super.detached();const e=this;e._windowParent.parent&&!e._windowParent.parent.querySelectorAll("smart-window, smart-dialog-window, smart-progress-window, smart-wait-window, smart-alert-window, smart-prompt-window, smart-multiline-prompt-window")&&(e._windowParent.parent.style.position=""),e._modal&&e._modal.parentElement&&e._modal.parentElement.removeChild(e._modal),e._resizeDummy&&e._resizeDummy.parentElement&&e._handleWindowResizeDummy(),e._refreshMinimizedWindowsPosition()}expand(e){const t=this;(e||t.collapsed)&&(t.collapsed=!1,t.$.fireEvent("expand"),t.maximized?"left"===t.headerPosition||"right"===t.headerPosition?t.style.width=Math.max(t._windowParent.scrollElement.scrollWidth,t._windowParent.element.clientWidth)-t._windowParent.borderWidth+"px":t.style.height=Math.max(t._windowParent.scrollElement.scrollHeight,t._windowParent.element.clientHeight)-t._windowParent.borderWidth+"px":"left"===t.headerPosition||"right"===t.headerPosition?t.style.width=t.className.indexOf("smart-window-snapped-")<0&&t._dragDetails?t._dragDetails.width+"px":"":t.style.height=t.className.indexOf("smart-window-snapped-")<0&&t._dragDetails?t._dragDetails.height+"px":"")}maximize(e){const t=this;if(!e&&t.maximized)return;t.minimized&&t._restoreFromMinimization(e),t._setDragDetails("minimize"),"none"!==t.resizeMode&&t.$.container.classList.remove("smart-window-resizing-bottom-right","smart-window-resizing-top-right","smart-window-resizing-top-left","smart-window-resizing-bottom-left","smart-window-resizing-top","smart-window-resizing-bottom","smart-window-resizing-left","smart-window-resizing-right"),t._snapDummy&&t.$.hasClass("smart-window-snapped-"+t._snapDummy._position)&&t.classList.remove("smart-window-snapped-"+t._snapDummy._position),t.maximized=!0,t.$.fireEvent("maximize"),t.style.left=t.style.top=0,t.style.maxWidth=t.style.maxHeight="none";const a=t._windowParent.scrollElement.scrollHeight,i=t._windowParent.scrollElement.scrollWidth,n=t._windowParent.element.clientHeight,o=t._windowParent.element.clientWidth,s=Math.max(a,n),r=Math.max(i,o);"top"===t.headerPosition||"bottom"===t.headerPosition?(t.style.width=i>o?r-t._windowParent.borderWidth+"px":"100%",t.collapsed||(t.style.height=a>n?s-t._windowParent.borderWidth+"px":"100%")):(t.collapsed||(t.style.width=i>o?r-t._windowParent.borderWidth+"px":"100%"),t.style.height=a>n?s-t._windowParent.borderWidth+"px":"100%"),"100%"!==t.style.height&&t.addEventListener("transitionend",(function e(){if(!t.maximized||!t.hasAnimation)return;const a=t._windowParent.scrollElement.scrollHeight,i=t._windowParent.element.clientHeight,n=Math.max(a,i);("top"===t.headerPosition||"bottom"===t.headerPosition)&&t.collapsed||(t.style.height=a>i?n-t._windowParent.borderWidth+"px":"100%"),t.removeEventListener("transitionend",e)}))}minimize(e){const t=this;if(!e&&t.minimized)return;t.maximized&&(t._preventEventFiring=!0,t.restore(),delete t._preventEventFiring),t._setDragDetails(),t.minimized=!0,t.$.fireEvent("minimize"),t._snapDummy&&t.$.hasClass("smart-window-snapped-"+t._snapDummy._position)&&(t.$.removeClass("smart-window-snapped-"+t._snapDummy._position),t.style.right=t.style.top=t.style.left="");const a=t._getAllMinimizedWindows(t._windowParent.element);if(a.length>0){const e=a[a.length-1];t.style.left=(e.offsetLeft+e.offsetWidth+t._dragDetails.minWidth+10>t._windowParent.element.clientWidth?e.offsetLeft:e.offsetLeft+e.offsetWidth+5)+"px",t.style.top=e.offsetTop+"px"}else t.style.left="5px",t.style.top=t._windowParent.element.clientHeight+t._windowParent.scrollElement.scrollTop-t.$.headerSection.offsetHeight-5+"px";t.style.width="",t.style.height=t.$.headerSection.offsetHeight+"px"}_createElement(){this.setAttribute("role","dialog")}removeChild(e){const t=this;if(!t.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.removeChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}e?t.$.content.removeChild(e):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"removeChild",node:"node"}))}restore(e){const t=this;if("maximized"===e||t.maximized?(t.maximized=!1,t.style.width=t.style.height=t.style.top=t.style.left=""):("minimized"===e||t.minimized)&&t._restoreFromMinimization(e),t._preventEventFiring||t.$.fireEvent("restore"),t.style.maxWidth=t.style.maxHeight="",t._dragDetails){if(t.style.left=Math.max(0,Math.min(t._dragDetails.windowX,t._windowParent.element.clientWidth-t._dragDetails.width))+"px",t.style.top=Math.max(0,Math.min(t._dragDetails.windowY,t._windowParent.scrollElement.scrollHeight-t._dragDetails.height))+"px",t.collapsed)return void("top"===t.headerPosition||"bottom"===t.headerPosition?t.style.width=t._dragDetails.width+"px":t.style.height=t._dragDetails.height+"px");t._dragDetails.resized&&(t.style.width=t._dragDetails.width+"px",t.style.height=t._dragDetails.height+"px")}}toggle(){const e=this;e.opened?e.close():e.open()}openModal(){this.modal=!0,this.open()}open(e){const t=this;if(e||t.$.hasClass("smart-visibility-hidden")){if(t.isCompleted){if(t.$.fireEvent("opening").defaultPrevented)return;t.$.removeClass("smart-visibility-hidden"),t.opened=!0,t.$.fireEvent("open")}else t.$.removeClass("smart-visibility-hidden"),t.opened=!0;t.bringToFront(),t._setModal(),t._handleActiveState(),t.hasAnimation?t.addEventListener("transitionend",a):a()}function a(e){if(!t.hasAnimation||e&&e.target===t){if(t.removeEventListener("transitionend",a),t._onOpenCallback)return void t._onOpenCallback();t.focus()}}}_setupDismissTargets(){const e=this;if(e.querySelector('[data-dismiss="modal"]')){const t=e.querySelectorAll('[data-dismiss="modal"]'),a=()=>{e.close()};for(let e=0;e<t.length;e++)t[e].removeEventListener("click",a,null),t[e].addEventListener("click",a)}}pin(){this.pinned=!0}unpin(){this.pinned=!1}_applyLayoutTemplate(e,t){const a=this;if(!t)return e.innerHTML="",void(e===a.$.header&&a.label&&(e.innerHTML=a.label));"content"in document.createElement("template")?(t instanceof HTMLTemplateElement||(t=document.getElementById(t)),null!==t&&"content"in t?(e.innerHTML="",e.appendChild(document.importNode(t.content,!0))):a.error(a.localize("invalidTemplate",{elementType:a.nodeName.toLowerCase(),property:e===a.$.footer?"footerTemplate":"headerTemplate"}))):a.error(a.localize("htmlTemplateNotSuported",{elementType:a.nodeName.toLowerCase()}))}_cancelDragging(e){const t=this;if(t._dragDetails&&t._dragDetails.started&&"drag"===t._dragDetails.type){if(!e){const a=t.getBoundingClientRect();e={pageX:a.left,pageY:a.top}}t.$.fireEvent("dragEnd",{left:e.pageX,top:e.pageY}),t.removeAttribute("dragged"),t._dragDetails.started=!1,delete t._mouseManipulation}}_documentFocusInEventHandler(e){const t=this;t._changingFocus&&(t.contains(e.target)||t.contains(e.composedPath()[0])||t.focus(),delete t._changingFocus)}_downHandler(e){const t=this;let a=Smart.Utilities.Core.isMobile?document.elementFromPoint(e.pageX-window.pageXOffset,e.pageY-window.pageYOffset):e.originalEvent.target;if((t.shadowRoot||t.isInShadowDOM)&&(a=e.originalEvent.composedPath()[0]),e.stopPropagation(),t.disabled||!Smart.Utilities.Core.isMobile&&1!==e.which)return;if(t._tabsWindow&&(t._tabsWindow._isAutoHideWindowClicked=!0),t.hasAttribute("ontop")||t.bringToFront(),a.closest&&a.closest(".smart-buttons-container")===t.$.buttonsContainer){if(t._buttonPressed=a.closest(".smart-button"),t._buttonPressed)return}else if(a.getRootNode()&&a.getRootNode().host&&(t._buttonPressed=a.getRootNode().host,t._buttonPressed.closest(".smart-buttons-container")===t.$.buttonsContainer))return;t._isWindowContentClicked=a.closest(".smart-content");let i=t.closest("smart-docking-layout");if(t.isInShadowDOM&&!i){let e=t.getRootNode().host;for(;e&&(i=e.closest("smart-docking-layout"),!i)&&e.getRootNode();)e=e.getRootNode().host}if(!(t instanceof Smart.TabsWindow&&i&&i.disabled)){if(t._handleActiveState(),!(t instanceof Smart.TabsWindow&&i))return a.closest(".smart-header-section")===t.$.headerSection&&(void 0===t._dblClickDetails&&(t._dblClickDetails={clicks:0}),clearTimeout(t._dblClickDetails.timeOut),t._dblClickDetails.clicks++,t._dblClickDetails.timeOut=setTimeout((function(){t._dblClickDetails&&(t._dblClickDetails.clicks=0)}),300),2===t._dblClickDetails.clicks)?(t._headerDblCickHandler(e),void(t._dblClickDetails.clicks=0)):void(t.maximized||(Smart.Utilities.Core.isMobile&&t._moveHandler(e),!t.pinned&&!t.minimized&&t.$.container.className.indexOf("smart-window-resizing")<0&&(a=a.closest(".smart-header-section"),a&&a===t.$.headerSection&&(t._mouseManipulation=!0,t._setDragDetails("drag",e))),"none"!==t.resizeMode&&t.$.container.className.indexOf("smart-window-resizing")>-1&&(t._mouseManipulation=!0,t._setDragDetails("resize",e))));t.$.hasClass("smart-docking-layout-auto-hide-window")&&(Smart.Utilities.Core.isMobile&&t._moveHandler(e),"none"!==t.resizeMode&&t.$.container.className.indexOf("smart-window-resizing")>-1&&(t._mouseManipulation=!0,t._setDragDetails("resize",e)))}}_documentMoveHandler(e){const t=this;!t._dragDetails||!t._dragDetails.started||t.minimized||!t._mouseManipulation||Math.abs(e.pageX-t._dragDetails.x)<=5&&Math.abs(e.pageY-t._dragDetails.y)<=5||(t.hasAttribute("dragged")||t.hasAttribute("resized")||t.$.fireEvent(t._dragDetails.type+"Start",{left:e.pageX,top:e.pageY,width:t.offsetWidth,height:t.offsetHeight}),e.stopPropagation(),"drag"!==t._dragDetails.type||t.pinned?(t._dragDetails.resized=!0,t._resize(t._dragDetails.side,e),t._dragDetails.x=Math.max(t._windowParent.offsetLeft+t._dragDetails.left,Math.min(t._windowParent.offsetLeft+t._dragDetails.left+(t._dragDetails.side.toLowerCase().indexOf("left")>-1?0:t._dragDetails.newWidth),e.pageX)),t._dragDetails.y=Math.max(t._windowParent.offsetTop+t._dragDetails.top,Math.min(t._windowParent.offsetTop+t._dragDetails.top+(t._dragDetails.side.toLowerCase().indexOf("top")>-1?0:t._dragDetails.newHeight),e.pageY))):(t.setAttribute("dragged",""),t._snapDummy&&t.$.hasClass("smart-window-snapped-"+t._snapDummy._position)&&(t.$.removeClass("smart-window-snapped-"+t._snapDummy._position),t.style.right=t.style.top=t.style.left="",t.collapsed||(t.style.height=t._dragDetails.height+"px",t.style.width=t._dragDetails.width+"px")),t._drag(e,"both"),t._dragDetails.x=Math.max(t._windowParent.offsetLeft+t._dragDetails.offsetX-t._windowParent.scrollElement.scrollLeft,Math.min(t._windowParent.offsetLeft+t._windowParent.element.offsetWidth-(t._windowParent.element.offsetWidth-t.offsetLeft)+t._dragDetails.offsetX,e.pageX)),t._dragDetails.y=Math.max(t._windowParent.offsetTop+t._dragDetails.offsetY-t._windowParent.scrollElement.scrollTop,Math.min(t._windowParent.offsetTop+t._windowParent.element.offsetHeight-(t._windowParent.element.offsetHeight-t.offsetTop)+t._dragDetails.offsetY,e.pageY)),e.pageX>=t._windowParent.offsetLeft+t._windowParent.scrollElement.scrollWidth-1?t._handleSnapping("right"):e.pageY<=t._windowParent.offsetTop?t._handleSnapping("top"):e.pageX<=t._windowParent.offsetLeft?t._handleSnapping("left"):t._handleSnapping()))}_documentUpHandler(e){const t=this,a=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;if(t.disabled)return t.removeAttribute("active"),delete t._buttonPressed,void delete t._isWindowContentClicked;if(t._dragDetails&&t._dragDetails.started&&(t.hasAttribute("resized")&&(t.$.fireEvent(t._dragDetails.type+"End",{left:e.pageX,top:e.pageY,width:t._dragDetails.newWidth,height:t._dragDetails.newHeight}),t.removeAttribute("resized"),t._handleWindowResizeDummy(),t.$.container.classList.remove("smart-window-resizing-bottom-right","smart-window-resizing-top-right","smart-window-resizing-top-left","smart-window-resizing-bottom-left","smart-window-resizing-top","smart-window-resizing-bottom","smart-window-resizing-left","smart-window-resizing-right")),setTimeout((function(){t.$.removeClass("no-transition")}),20),t.hasAttribute("dragged")&&(t.$.fireEvent(t._dragDetails.type+"End",{left:e.pageX,top:e.pageY}),t.removeAttribute("dragged")),t._dragDetails.started=!1,delete t._mouseManipulation),t._snapDummy&&!t._snapDummy.classList.contains("smart-visibility-hidden")){switch(t._snapDummy._position){case"left":case"top":t.style.left=t.style.top="0",t.style.right="auto";break;case"right":t.style.left="auto",t.style.top=t.style.right="0"}t.style.width="top"===t._snapDummy._position?"100%":"50%",t.style.height="100%",t.$.addClass("smart-window-snapped-"+t._snapDummy._position),t._handleSnapping()}t._modal&&a===t._modal&&!t._isWindowContentClicked&&(t.closeOnMaskClick?t.close():t.focus()),t._isWindowButton(a)&&t.focus(),delete t._isWindowContentClicked,delete t._buttonPressed;const i=t.shadowRoot&&t._windowParent.element&&t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;if(!t.hasAttribute("active")||i===t)return;if(!a.closest)return;let n=a.closest(".smart-window");for(;n&&n!==t;)n=n.parentElement,n&&(n=n.closest(".smart-window"));t.opened&&n!==t&&t.removeAttribute("active")}_documentSelectStartHandler(e){this._dragDetails&&this._dragDetails.started&&e.preventDefault()}_drag(e,t){const a=this;if(!e||a.pinned||a.maximized)return;let i,n;a._dragDetails&&a._dragDetails.started||a._setDragDetails("drag",e),a.$.addClass("no-transition"),"object"==typeof e?(i=e.pageX-a._dragDetails.x,n=e.pageY-a._dragDetails.y):i=n=e;const o=Math.max(a._windowParent.element.clientHeight,a._windowParent.scrollElement.scrollHeight),s=Math.max(a._windowParent.element.clientWidth,a._windowParent.scrollElement.scrollWidth);switch(t){case"horizontal":a._dragDetails.windowX=Math.max(0,Math.min(a._dragDetails.windowX+i,s-a.offsetWidth)),a.style.left=a._dragDetails.windowX+"px";break;case"vertical":a._dragDetails.windowY=Math.max(0,Math.min(a._dragDetails.windowY+n,o-a.offsetHeight)),a.style.top=a._dragDetails.windowY+"px";break;case"both":a._dragDetails.windowX=Math.max(0,Math.min(a._dragDetails.windowX+i,s-a.offsetWidth)),a._dragDetails.windowY=Math.max(0,Math.min(a._dragDetails.windowY+n,o-a.offsetHeight)),a.style.left=a._dragDetails.windowX+"px",a.style.top=a._dragDetails.windowY+"px"}a._dragDetails.top=a.offsetTop,a._dragDetails.left=a.offsetLeft}_dragStartHandler(e){this._dragDetails&&this._dragDetails.started&&e.preventDefault()}_focusHandler(e){const t=this;"focus"===e.type?(t.setAttribute("focus",""),t.bringToFront()):t._buttonPressed||(t.removeAttribute("focus"),t._dragDetails&&t._dragDetails.started&&t._handleWindowResizeDummy())}_getAllMinimizedWindows(e){const t=this;let a=[];e||(e=t._windowParent.element);const i=e.querySelectorAll("smart-window");for(let e=0;e<i.length;e++)i[e]!==t&&i[e].hasAttribute("minimized")&&a.push(i[e]);return a.sort((function(e,t){let a=e.getBoundingClientRect(),i=t.getBoundingClientRect();return a.right-i.right})),a}_handleSnapping(e){const t=this;e?t.disableSnap||t.collapsed||(t._snapDummy||(t._snapDummy=document.createElement("div"),t._snapDummy.addEventListener("transitionend",(function(){t._snapDummy.classList.contains("smart-visibility-hidden")&&t._snapDummy.parentElement&&t._snapDummy.parentElement.removeChild(t._snapDummy)}))),t._snapDummy.className="smart-window-snap-"+e+"-feedback",t._snapDummy._position=e,t._snapDummy.parentElement||t._windowParent.element.appendChild(t._snapDummy)):t._snapDummy&&t._snapDummy.parentElement&&t._snapDummy.classList.add("smart-visibility-hidden")}_headerDblCickHandler(e){const t=this,a=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;a!==t.$.headerSection&&a!==t.$.header||t.$.maximizeButton&&0===t.$.maximizeButton.offsetHeight||(t.maximized?t.restore():t.maximize())}_isWindowButton(e){const t=this;for(;e&&(e.closest&&e.closest(".smart-buttons-container"))!==t.$.buttonsContainer;)e=e.getRootNode().host;if(!e)return;const a=/smart-(\w+[-]*\w*)-button/gi;if((e=e.closest(".smart-button"))&&e===t._buttonPressed)switch(e){case t.$.closeButton:return t.close(),!0;case t.$.collapseButton:return t.collapsed?t.expand():t.collapse(),!0;case t.$.maximizeButton:return t.maximized?t.restore():t.maximize(),!0;case t.$.minimizeButton:return t.minimized?t.restore():t.minimize(),!0;case t.$.pinButton:return t.pinned?t.unpin():t.pin(),!0;default:if(!a.test(e.className))return;return t.$.fireEvent(Smart.Utilities.Core.toCamelCase(e.className.match(a).toString().replace("smart-","").replace("-button","")),{button:e}),!0}}_keyDownHandler(e){const t=this;if(delete t._changingFocus,t.disabled||(t.hasAttribute("dragged")||t.hasAttribute("resized"))&&t._mouseManipulation)return;const a="ArrowDown"===e.key||"ArrowRight"===e.key?10:-10,i=t.enableShadowDOM&&t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;switch(e.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":{if(t.minimized||i!==t)return;let n=e.key.indexOf("Right")>-1||e.key.indexOf("Left")>-1;e.preventDefault();const o=(t.isInShadowDOM?t.getRootNode().host:t).closest("smart-docking-layout");if(!n&&e.altKey&&!(t instanceof Smart.TabsWindow&&o))return void("ArrowUp"===e.key?t.maximize():t.restore());if(t.maximized)return;if(t.$.addClass("no-transition"),e.ctrlKey&&"none"!==t.resizeMode&&!t.collapsed)return n=-1===["horizontal","vertical","both"].indexOf(t.resizeMode)?t.resizeMode:n?"right":"bottom",t.hasAttribute("dragged")&&t._cancelDragging(e),t.hasAttribute("resized")||t.$.fireEvent("resizeStart",{position:{x:e.pageX,y:e.pageY}}),void t._resize(n,a);t.pinned||(t.hasAttribute("dragged")||(t.setAttribute("dragged",""),t.$.fireEvent("dragStart",{left:e.pageX,top:e.pageY})),t._drag(a,n?"horizontal":"vertical")),t.$.removeClass("no-transition");break}case"Escape":t.headerButtons.indexOf("close")>-1&&t.close();break;case"p":e.altKey&&t.headerButtons.indexOf("pin")>-1&&(t.pinned?t.unpin():t.pin());break;case"c":e.altKey&&t.headerButtons.indexOf("collapse")>-1&&(t.collapsed?t.expand():t.collapse());break;case"m":e.altKey&&t.headerButtons.indexOf("minimize")>-1&&(t.minimized?t.restore():t.minimize());break;case"Tab":t.opened&&t.modal&&(t._changingFocus=!0);break;case"Enter":case" ":{let a;if(t.shadowRoot||t.isInShadowDOM?(a=e.composedPath()[0],t._buttonPressed=a.getRootNode().host):(a=e.target.closest&&e.target.closest(".smart-button"),t._buttonPressed=a),!a)return;t._isWindowButton(a),delete t._buttonPressed;break}}}_keyUpHandler(e){const t=this;if(e.key){if("Control"===e.key&&t._dragDetails&&t.hasAttribute("resized")&&!t._mouseManipulation){if(!t._dragDetails.started)return;"drag"!==t._dragDetails.type&&(t.removeAttribute("resized"),t.$.fireEvent("resizeEnd",{left:e.pageX,top:e.pageY,width:t._dragDetails.newWidth,height:t._dragDetails.newHeight}),t._handleWindowResizeDummy()),t._dragDetails.started=!1}e.key.indexOf("Arrow")>-1&&t.hasAttribute("dragged")&&!t._mouseManipulation&&t._cancelDragging(e)}}_mouseWheelHandler(e){const t=this;!t.disabled&&t._dragDetails&&t._dragDetails.started&&(e.deltaY<0&&t._windowParent.scrollElement.scrollTop+e.deltaY<=0?t.style.top=Math.max(0,t._dragDetails.windowY)+"px":e.deltaY>0&&(t._dragDetails.windowY+t.offsetHeight+e.deltaY>=t._windowParent.scrollElement.scrollHeight||t._windowParent.scrollElement.scrollTop+t._windowParent.element.clientHeight===t._windowParent.scrollElement.scrollHeight)||("drag"===t._dragDetails.type?(t._dragDetails.windowY+=e.deltaY,t.style.top=t._dragDetails.windowY+"px"):(t._dragDetails.height+=e.deltaY,t.style.height=t._dragDetails.height+"px")))}_moveHandler(e){const t=this;if(!(t.disabled||t.collapsed||t.maximized||t.minimized||(Smart.Utilities.Core.isMobile&&navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform)&&t.hasAttribute("dragged")&&e.originalEvent.preventDefault(),t._mouseManipulation||(t.$.container.className.indexOf("smart-window-resizing")>-1&&t.$.container.classList.remove("smart-window-resizing-bottom-right","smart-window-resizing-top-right","smart-window-resizing-top-left","smart-window-resizing-bottom-left","smart-window-resizing-top","smart-window-resizing-bottom","smart-window-resizing-left","smart-window-resizing-right"),"none"===t.resizeMode)))){const a=t.getBoundingClientRect(),i=e.clientY<a.top+10,n=e.clientY>a.bottom-10,o=e.clientX>a.right-10,s=e.clientX<a.left+10;switch(t.resizeMode){case"none":break;case"both":if(t.resizeIndicator)return void(n&&o&&t.$.container.classList.add("smart-window-resizing-bottom-right"));if(s||o)return i?void t.$.container.classList.add("smart-window-resizing-top-"+(s?"left":"right")):n?void t.$.container.classList.add("smart-window-resizing-bottom-"+(s?"left":"right")):void t.$.container.classList.add("smart-window-resizing-"+(s?"left":"right"));if(i||n){if(o)return void t.$.container.classList.add("smart-window-resizing-"+(i?"top-right":"bottom-right"));if(s)return void t.$.container.classList.add("smart-window-resizing-"+(i?"top-left":"bottom-left"));t.$.container.classList.add("smart-window-resizing-"+(i?"top":"bottom"))}break;case"horizontal":if(t.resizeIndicator)return void(n&&o&&t.$.container.classList.add("smart-window-resizing-right"));if(s)return void t.$.container.classList.add("smart-window-resizing-left");o&&t.$.container.classList.add("smart-window-resizing-right");break;case"vertical":if(t.resizeIndicator)return void(n&&o&&t.$.container.classList.add("smart-window-resizing-bottom"));if(i)return void t.$.container.classList.add("smart-window-resizing-top");n&&t.$.container.classList.add("smart-window-resizing-bottom");break;case"top":if(i){if(t.resizeIndicator&&!s)return;t.$.container.classList.add("smart-window-resizing-top")}break;case"bottom":if(n){if(t.resizeIndicator&&!o)return;t.$.container.classList.add("smart-window-resizing-bottom")}break;case"left":if(s){if(t.resizeIndicator&&!i)return;t.$.container.classList.add("smart-window-resizing-left")}break;case"right":if(o){if(t.resizeIndicator&&!n)return;t.$.container.classList.add("smart-window-resizing-right")}}}}_handleActiveState(){const e=this,t=document.querySelectorAll(".smart-window");for(let a=0;a<t.length;a++)t[a].contains(e)||e.contains(t[a])||(t[a].removeAttribute("active"),t[a].removeAttribute("focus"));e.setAttribute("active","")}_handleWindowResizeDummy(){const e=this;if(e._resizeDummy||(e._resizeDummy=document.createElement("div"),e._resizeDummy.classList.add("smart-window-resize-feedback")),!e.hasAttribute("resized"))return e._resizeDummy&&e._resizeDummy.remove(),void(!e.liveResize&&"resize"===e._dragDetails.type&&e._dragDetails.started&&(e.style.top=e._dragDetails.top+"px",e.style.left=e._dragDetails.left+"px",e.style.width=e._dragDetails.newWidth+"px",e.style.height=e._dragDetails.newHeight+"px"));e._resizeDummy.parentElement||e._resizeDummy.getRootNode().host||(e._resizeDummy.style.width=e.offsetWidth+"px",e._resizeDummy.style.height=e.offsetHeight+"px",e._resizeDummy.style.top=e.offsetTop+"px",e._resizeDummy.style.left=e.offsetLeft+"px",e._windowParent.element.appendChild(e._resizeDummy))}_resize(e,t){const a=this;let i;if((!a._dragDetails||a._dragDetails&&"drag"===a._dragDetails.type)&&a._setDragDetails("resize"),!a._dragDetails)return;a._dragDetails.started=!0,a.hasAttribute("resized")||(a.setAttribute("resized",""),a.hasAnimation&&a.$.addClass("no-transition")),a.liveResize||a._handleWindowResizeDummy();const n=a._snapDummy&&a.$.hasClass("smart-window-snapped-"+a._snapDummy._position)?"snapWindowWidth":"width";switch(e){case"left":i="object"==typeof t?t.pageX-a._dragDetails.x:t,i=i>0?Math.min(i,a._dragDetails[n]-a._dragDetails.minWidth):-1*Math.min(a._dragDetails.maxWidth?a._dragDetails.maxWidth-a._dragDetails[n]:a._dragDetails.left,Math.abs(i)),a._dragDetails[n]=Math.min(a._dragDetails[n]+a._dragDetails.left-a._windowParent.scrollElement.scrollLeft,a._dragDetails[n]-i),a._dragDetails.windowX=Math.max(a._windowParent.scrollElement.scrollLeft,a._dragDetails.windowX+i),"object"!=typeof t&&(a._dragDetails[n]=Math.max(a._dragDetails[n],a._dragDetails.minWidth)),a._dragDetails[n]>=a._dragDetails.minWidth&&(a._dragDetails.left=a._dragDetails.windowX,a._dragDetails.newWidth=a._dragDetails[n]);break;case"right":{const e=a._windowParent.element.clientWidth!==a._windowParent.element.offsetWidth?a._windowParent.borderWidth:0,n=a._snapDummy&&a.$.hasClass("smart-window-snapped-"+a._snapDummy._position)?"snapWindowWidth":"width";i="object"==typeof t?t.pageX-a._dragDetails.x:t,i>0&&a._dragDetails.maxWidth&&(i=Math.min(a._dragDetails.maxWidth-a._dragDetails[n],i)),a._dragDetails[n]=Math.min(a._windowParent.element.clientWidth+a._windowParent.scrollElement.scrollLeft-a._dragDetails.left-e,Math.max(0,a._dragDetails[n]+i)),"object"!=typeof t&&(a._dragDetails[n]=Math.max(a._dragDetails[n],a._dragDetails.minWidth)),a._dragDetails.left=a.offsetLeft,a._dragDetails.newWidth=Math.max(a._dragDetails.minWidth,a._dragDetails[n]);break}case"top":a._snapDummy&&a.$.hasClass("smart-window-snapped-"+a._snapDummy._position)&&(a._dragDetails.height=a._dragDetails.snapWindowHeight),i="object"==typeof t?t.pageY-a._dragDetails.y:t,i=i>0?Math.min(i,a._dragDetails.height-a._dragDetails.minHeight):-1*Math.min(a._dragDetails.maxHeight?a._dragDetails.maxHeight-a._dragDetails.height:a._dragDetails.top,Math.abs(i)),a._dragDetails.snapWindowHeight=a._dragDetails.height=Math.min(a._dragDetails.height+a._dragDetails.top-a._windowParent.scrollElement.scrollTop,a._dragDetails.height-i),a._dragDetails.windowY=Math.max(a._windowParent.scrollElement.scrollTop,a._dragDetails.windowY+i),"object"!=typeof t&&(a._dragDetails.snapWindowHeight=a._dragDetails.height=Math.max(a._dragDetails.height,a._dragDetails.minHeight)),a._dragDetails.height>=a._dragDetails.minHeight&&(a._dragDetails.top=a._dragDetails.windowY,a._dragDetails.newHeight=a._dragDetails.height),a._dragDetails.newWidth=Math.max(a._dragDetails[n],a._dragDetails.newWidth);break;case"bottom":a._snapDummy&&a.$.hasClass("smart-window-snapped-"+a._snapDummy._position)&&(a._dragDetails.height=a._dragDetails.snapWindowHeight),i="object"==typeof t?t.pageY-a._dragDetails.y:t,i>0&&a._dragDetails.maxHeight&&(i=Math.min(a._dragDetails.maxHeight-a._dragDetails.height,i)),a._dragDetails.snapWindowHeight=a._dragDetails.height=Math.min(a._windowParent.element.clientHeight+a._windowParent.scrollElement.scrollTop-a._dragDetails.top-a._windowParent.borderWidth,Math.max(0,a._dragDetails.height+i)),"object"!=typeof t&&(a._dragDetails.snapWindowHeight=a._dragDetails.height=Math.max(a._dragDetails.height,a._dragDetails.minHeight)),a._dragDetails.newHeight=Math.max(a._dragDetails.minHeight,a._dragDetails.height),a._dragDetails.newWidth=Math.max(a._dragDetails[n],a._dragDetails.newWidth);break;case"bottomLeftCorner":a._resize("bottom",t),a._resize("left",t);break;case"bottomRightCorner":a._resize("bottom",t),a._resize("right",t);break;case"topLeftCorner":a._resize("top",t),a._resize("left",t);break;case"topRightCorner":a._resize("top",t),a._resize("right",t)}const o=a.liveResize?a:a._resizeDummy;a._dragDetails.newHeight=Math.max(a._dragDetails.snapWindowHeight,a._dragDetails.newHeight),o.style.top=a._dragDetails.top+"px",o.style.left=a._dragDetails.left+"px",o.style.width=a._dragDetails.newWidth+"px",o.style.height=a._dragDetails.newHeight+"px"}_restoreFromMinimization(){const e=this;e.minimized=!1,e.style.width=e.style.height=e.style.top=e.style.left="",e._refreshMinimizedWindowsPosition()}_refreshMinimizedWindowsPosition(){const e=this,t=e._getAllMinimizedWindows();if(0===t.length)return;let a;t[0].style.left="5px";for(let i=1;i<t.length;i++)parseFloat(t[i-1].style.left)+t[i-1].offsetWidth+t[i].offsetWidth+10<e._windowParent.element.clientWidth?(t[i].style.left=parseFloat(t[i-1].style.left)+t[i-1].offsetWidth+5+"px",t[i].style.top=t[i-1].offsetTop+"px",a=t[i]):(t[i].style.left=parseFloat(a.style.left)+"px",t[i].style.top=a.offsetTop+"px")}_setHeaderButtons(){const e=this,t=e.headerButtons,a=e.$.buttonsContainer.children,i=function(t){const a=e.$.buttonsContainer.getElementsByClassName("smart-"+(t+"").split(/(?=[A-Z])/).join("-").toLowerCase()+"-button")[0];return a&&a.classList.remove("smart-hidden"),a};for(let e=0;e<a.length;e++)a[e].classList.add("smart-hidden");if(t.length>0)for(let a=0;a<t.length;a++){let n=i(t[a]);if(!n){const e=(t[a]+"").split(/(?=[A-Z])/);n=document.createElement("button"),n.setAttribute("aria-label",e.map((e=>e.slice(0,1).toUpperCase()+e.slice(1))).join(" ")),n.classList.add("smart-"+e.join("-").toLowerCase()+"-button","smart-button","smart-element")}e.$.buttonsContainer.insertBefore(n,e.$.buttonsContainer.firstElementChild)}}_setDragDetails(e,t){const a=this;if(a._dragDetails||(a._dragDetails={}),void 0===a._dragDetails.minWidth||void 0===a._dragDetails.minHeight||void 0===a._dragDetails.maxWidth||void 0===a._dragDetails.maxHeight){const e=getComputedStyle(a);a._dragDetails.minWidth=parseFloat(e.getPropertyValue("min-width"))||0,a._dragDetails.minHeight=parseFloat(e.getPropertyValue("min-height"))||0,a._dragDetails.maxWidth=parseFloat(e.getPropertyValue("max-width"))||0,a._dragDetails.maxHeight=parseFloat(e.getPropertyValue("max-height"))||0}a._dragDetails.windowX=a.offsetLeft,a._dragDetails.windowY=a.offsetTop;const i=a.getBoundingClientRect();if(a._snapDummy&&a.$.hasClass("smart-window-snapped-"+a._snapDummy._position))"right"===a.headerPosition&&a.collapsed&&(a._dragDetails.offsetX=i.left+a.offsetWidth-t.clientX);else{const n=a.parentElement===document.body?document.documentElement.getBoundingClientRect():a.parentElement?a.parentElement.getBoundingClientRect():document.documentElement.getBoundingClientRect(),o=window.scrollX||window.pageXOffset,s=window.scrollY||window.pageYOffset;a._windowParent.offsetLeft=n.left+o,a._windowParent.offsetTop=n.top+s,t&&"object"==typeof t&&(a._dragDetails.offsetX=t.clientX-i.left,a._dragDetails.offsetY=t.clientY-i.top),a.collapsed||(a.hasAnimation&&"minimize"===e?(a._dragDetails.width=a._dragDetails.width?a._dragDetails.width:a.offsetWidth,a._dragDetails.height=a._dragDetails.height?a._dragDetails.height:a.offsetHeight):(a._dragDetails.width=a.offsetWidth,a._dragDetails.height=a.offsetHeight),(a.style.width||a.style.height)&&(a._dragDetails.resized=!0))}if("minimize"!==e&&e&&(a._dragDetails.type=e,a._dragDetails.started=!0,a._dragDetails.snapWindowWidth=a.offsetWidth,a._dragDetails.snapWindowHeight=a.offsetHeight,t&&"object"==typeof t?(a._dragDetails.x=t.pageX,a._dragDetails.y=t.pageY):(a._dragDetails.x=a.offsetLeft,a._dragDetails.y=a.offsetTop),"resize"===e)){if("none"===a.resizeMode)return void delete a._dragDetails;a._dragDetails.top=a.offsetTop,a._dragDetails.left=a.offsetLeft,a._dragDetails.newWidth=a._dragDetails.width,a._dragDetails.newHeight=a._dragDetails.height,a.$container.hasClass("smart-window-resizing-right")?a._dragDetails.side="right":a.$container.hasClass("smart-window-resizing-left")?a._dragDetails.side="left":a.$container.hasClass("smart-window-resizing-top")?a._dragDetails.side="top":a.$container.hasClass("smart-window-resizing-bottom")?a._dragDetails.side="bottom":a.$container.hasClass("smart-window-resizing-top-left")?a._dragDetails.side="topLeftCorner":a.$container.hasClass("smart-window-resizing-bottom-left")?a._dragDetails.side="bottomLeftCorner":a.$container.hasClass("smart-window-resizing-top-right")?a._dragDetails.side="topRightCorner":a.$container.hasClass("smart-window-resizing-bottom-right")&&(a._dragDetails.side="bottomRightCorner")}}_setElementParent(e){const t=this;if(t._windowParent.element=void 0,t._windowParent.parent&&!t._windowParent.parent.querySelectorAll("smart-window, smart-dialog-window, smart-progress-window, smart-wait-window, smart-alert-window, smart-prompt-window, smart-multiline-prompt-window")&&(t._windowParent.parent.style.position=""),e instanceof HTMLElement)t._windowParent.element=e;else if("string"==typeof e)if("body"===e){const e=t.getRootNode();t._windowParent.element=e&&e.host?t.getShadowRootOrBody():document.body}else t._windowParent.element=document.getElementById(e);if(t._windowParent.element||(t._windowParent.initialParent?t._windowParent.element=t._windowParent.initialParent.parentElement?t._windowParent.initialParent:t.getShadowRootOrBody():t._windowParent.element=t.getShadowRootOrBody()),t.parentElement!==t._windowParent.element&&t._windowParent.element.appendChild(t),t._windowParent.element===document.body)t._windowParent.element=document.documentElement,t._windowParent.scrollElement=document.scrollingElement,t._windowParent.parent=document.body,t._windowParent.borderWidth=0;else{if(t.parentElement instanceof Smart.Window&&!t.parentElement.isCompleted)return void t.parentElement.whenRendered((function(){t.parentElement.appendChild(t),t._setElementParent(t.windowParent)}));t._windowParent.element instanceof Smart.Window&&(t._windowParent.element=t._windowParent.element.$.content);const e=getComputedStyle(t.parentElement),a=e.getPropertyValue("position");t._windowParent.borderWidth=2*parseInt(e.getPropertyValue("border-width")||0),t._windowParent.parent=t.parentElement,t._windowParent.scrollElement=t._windowParent.element,"static"===a&&(t.parentElement.style.position="relative")}t._setModal(),t.style.left&&t.offsetLeft>t._windowParent.scrollElement.scrollWidth&&(t.style.left=t._windowParent.scrollElement.scrollWidth-t.offsetWidth+"px"),t.style.top&&t.offsetTop>t._windowParent.scrollElement.scrollHeight&&(t.style.top=t._windowParent.scrollElement.scrollHeight-t.offsetHeight+"px")}_setModal(){const e=this;if(delete e._changingFocus,e._windowParent.element)if(e.modal)if(e._modal||(e._modal=document.createElement("div"),e._modal.classList.add("smart-modal")),e._windowParent.parent!==document.body?e._modal.setAttribute("nested-modal",""):e._modal.removeAttribute("nested-modal"),e._modal._window=e,e.opened&&!e._modal.parentElement){const t=parseInt(getComputedStyle(e).getPropertyValue("z-index"));isNaN(t)||(e._modal.style.zIndex=t-1),e.parentElement.insertBefore(e._modal,e)}else e._modal.parentElement&&e._modal.parentElement.removeChild(e._modal);else e._modal&&e._modal.parentElement&&(e._modal.parentElement.removeChild(e._modal),delete e._modal)}}),Smart("smart-dialog-window",class extends Smart.Window{static get properties(){return{cancelLabel:{value:"Cancel",type:"string"},confirmLabel:{value:"Ok",type:"string"},disableSnap:{value:!0,readOnly:!0,type:"boolean"},headerButtons:{value:["close"],type:"array"},modal:{value:!0,readOnly:!0,type:"boolean",defaultReflectToAttribute:!0}}}static get listeners(){return{"footer.click":"_footerClickHandler"}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="pinButton" class="smart-pin-button" aria-label="Pin"></button>\n <button id="collapseButton" class="smart-button smart-element smart-collapse-button" aria-label="Collapse"></button>\n <button id="minimizeButton" class="smart-button smart-element smart-minimize-button" aria-label="Minimize"></button>\n <button id="maximizeButton" class="smart-button smart-element smart-maximize-button" aria-label="Maximize"></button>\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content">\n <content></content>\n </div>\n <div id="footer" class="smart-footer">\n <button id="confirmButton" class="smart-button smart-element smart-confirm-button">[[confirmLabel]]</button>\n <button id="cancelButton" class="smart-button smart-element smart-cancel-button">[[cancelLabel]]</button>\n </div>\n </div>\n </div>'}_createElement(){const e=this;e.setAttribute("role","alertdialog"),e.setAttribute("aria-describedby",e.$.content.id)}_footerClickHandler(e){const t=this,a=e.target;a.closest(".smart-confirm-button")?t.$.fireEvent("confirm"):a.closest(".smart-cancel-button")&&t.$.fireEvent("cancel")}_keyDownHandler(e){const t=this;if(delete t._changingFocus,t.disabled||(t.hasAttribute("dragged")||t.hasAttribute("resized"))&&t._mouseManipulation)return;e.stopPropagation();const a="ArrowDown"===e.key||"ArrowRight"===e.key?10:-10,i=t.enableShadowDOM&&t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;switch(e.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":{if(t.minimized||i!==t)return;const n=e.key.indexOf("Right")>-1||e.key.indexOf("Left")>-1;if(e.preventDefault(),!n&&e.altKey)return void("ArrowUp"===e.key?t.maximize():t.restore());if(t.$.addClass("no-transition"),t.maximized)return;if(e.ctrlKey&&"none"!==t.resizeMode)return t.hasAttribute("dragged")&&t._cancelDragging(e),t.hasAttribute("resized")||t.$.fireEvent("resizeStart",{position:{x:e.pageX,y:e.pageY}}),void t._resize(n?"right":"bottom",a);t.pinned||(t.hasAttribute("dragged")||(t.setAttribute("dragged",""),t.$.fireEvent("dragStart",{left:e.pageX,top:e.pageY})),t._drag(a,n?"horizontal":"vertical")),t.$.removeClass("no-transition");break}case"Escape":t.headerButtons.indexOf("close")>-1&&t.close();break;case"Tab":t.opened&&t.modal&&(t._changingFocus=!0);break;case"Enter":case" ":{let a;if(t.shadowRoot||t.isInShadowDOM?(a=e.composedPath()[0],t._buttonPressed=a.getRootNode().host):(a=e.target.closest&&e.target.closest(".smart-button"),t._buttonPressed=a),!a)return;t._isWindowButton(a),delete t._buttonPressed;break}}}}),Smart("smart-alert-window",class extends Smart.DialogWindow{static get properties(){return{headerButtons:{value:[],type:"array"}}}_createElement(){const e=this;e.setAttribute("role","alertdialog"),e.setAttribute("aria-describedby",e.$.content.id)}}),Smart("smart-prompt-window",class extends Smart.DialogWindow{static get properties(){return{autoComplete:{allowedValues:["none","manual","auto","inline"],type:"string",value:"manual"},confirmLabel:{value:"Ok",type:"string"},cancelLabel:{value:"Cancel",type:"string"},disableSnap:{value:!0,readOnly:!0,type:"boolean"},displayMode:{value:"default",allowedValues:["default","escaped"],type:"string"},headerButtons:{value:["close"],type:"array"},form:{value:"",type:"string"},hint:{value:null,type:"any?"},maxLength:{value:null,type:"number?"},minLength:{value:2,type:"number"},messages:{extend:!0,value:{en:{missingReference:"{{elementType}}: Missing reference to {{files}}."}},type:"object"},modal:{value:!0,readOnly:!0,type:"boolean",defaultReflectToAttribute:!0},name:{value:"",type:"string"},placeholder:{value:"",type:"string"},promptLabel:{value:"",type:"string?"},required:{value:!1,type:"boolean"},requiredMessage:{value:"",type:"string"},selectAllOnFocus:{value:!1,type:"boolean"},value:{value:"",type:"string"}}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content">\n <content></content>\n <smart-text-box id="textBox"\n animation="[[animation]]"\n auto-complete="[[autoComplete]]"\n max-length="[[maxLength]]"\n value="{{value}}"\n form="[[form]]"\n label="[[promptLabel]]"\n hint="[[hint]]"\n display-mode="[[displayMode]]"\n max-length="[[maxLength]]"\n placeholder="[[placeholder]]"\n required="[[required]]"\n required-message="[[requiredMessage]]"\n select-all-on-focus="[[selectAllOnFocus]]"\n theme="[[theme]]"\n right-to-left="[[rightToLeft]]">\n </smart-text-box>\n </div>\n <div id="footer" class="smart-footer">\n <button id="confirmButton" class="smart-button smart-element smart-confirm-button flat">[[confirmLabel]]</button>\n <button id="cancelButton" class="smart-button smart-element smart-cancel-button flat">[[cancelLabel]]</button>\n </div>\n </div>\n </div>'}static get listeners(){return{"footer.click":"_footerClickHandler"}}static get requires(){return{"Smart.TextBox":"smart.textbox.js"}}_footerClickHandler(e){const t=this,a=e.target;a.closest(".smart-confirm-button")?t.$.fireEvent("confirm",{value:t.$.textBox.value}):a.closest(".smart-cancel-button")&&t.$.fireEvent("cancel",{value:t.$.textBox.value})}_keyDownHandler(e){const t=this;function a(){t._dragDetails&&(t._dragDetails.started=!1),t.$.removeClass("no-transition")}if(delete t._changingFocus,t.disabled||t._dragDetails&&t._dragDetails.started)return;e.stopPropagation();const i="ArrowDown"===e.key||"ArrowRight"===e.key?10:-10,n=t.enableShadowDOM&&t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;switch(t.$.removeClass("no-transition"),e.key){case"ArrowUp":case"ArrowDown":if(n!==t)return;if(e.preventDefault(),e.altKey)return"ArrowUp"===e.key?t.maximize():t.restore(),void a();if(t.$.addClass("no-transition"),e.ctrlKey)return t._resize("bottom",i),void a();t._drag(i,"vertical");break;case"ArrowLeft":case"ArrowRight":if(n!==t)return;if(e.preventDefault(),t.$.addClass("no-transition"),e.ctrlKey)return t._resize("right",i),void a();t._drag(i,"horizontal"),t.$.removeClass("no-transition");break;case"Escape":t.headerButtons.indexOf("close")>-1&&t.close();break;case"Tab":t.opened&&t.modal&&(t._changingFocus=!0);break;case"Enter":case" ":{let a;if(t.shadowRoot||t.isInShadowDOM?(a=e.composedPath()[0],t._buttonPressed=a.getRootNode().host):(a=e.target.closest&&e.target.closest(".smart-button"),t._buttonPressed=a),!a)return;t._isWindowButton(a),delete t._buttonPressed;break}}a()}}),Smart("smart-multiline-prompt-window",class extends Smart.PromptWindow{static get properties(){return{autoCapitalize:{value:"none",allowedValues:["none","words","characters"],type:"string"},autoExpand:{value:!1,type:"boolean"},headerButtons:{value:["close"],type:"array"},horizontalScrollBarVisibility:{type:"string",value:"auto",allowedValues:["auto","disabled","hidden","visible"]},modal:{value:!0,readOnly:!0,type:"boolean",defaultReflectToAttribute:!0},selectionDirection:{value:"none",allowedValues:["forward","backward","none"],type:"string"},selectionEnd:{value:0,reflectToAttribute:!1,type:"number"},selectionStart:{value:0,reflectToAttribute:!1,type:"number"},spellCheck:{value:!1,type:"boolean"},verticalScrollBarVisibility:{type:"string",value:"auto",allowedValues:["auto","disabled","hidden","visible"]},wrap:{value:"soft",allowedValues:["hard","soft","off"],type:"string"}}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content">\n <content></content>\n <smart-multiline-text-box id="textBox"\n animation="[[animation]]"\n horizontal-scroll-bar-visibility= "[[horizontalScrollBarVisibility]]"\n vertical-scroll-bar-visibility= "[[verticalScrollBarVisibility]]"\n auto-capitalize="[[autoCapitalize]]"\n auto-expand = "[[autoExpand]]"\n selection-direction= "[[selectionDirection]]"\n selection-end= "[[selectionEnd]]"\n selection-start="[[selectionStart]]"\n spell-check= "[[spellCheck]]"\n wrap="[[wrap]]"\n max-length="[[maxLength]]"\n value="{{value}}"\n form="[[form]]"\n label="[[promptLabel]]"\n hint="[[hint]]"\n display-mode="[[displayMode]]"\n max-length="[[maxLength]]"\n placeholder="[[placeholder]]"\n required="[[required]]"\n required-message="[[requiredMessage]]"\n select-all-on-focus="[[selectAllOnFocus]]"\n theme="[[theme]]"\n right-to-left="[[rightToLeft]]">\n </smart-multiline-text-box>\n </div>\n <div id="footer" class="smart-footer">\n <button id="confirmButton" class="smart-button smart-element smart-confirm-button flat">[[confirmLabel]]</button>\n <button id="cancelButton" class="smart-button smart-element smart-cancel-button flat">[[cancelLabel]]</button>\n </div>\n </div>\n </div>'}static get listeners(){return{"footer.click":"_footerClickHandler"}}static get requires(){return{"Smart.MultilineTextBox":"smart.multilinetextbox.js"}}_footerClickHandler(e){const t=this,a=e.target;a.closest(".smart-confirm-button")?t.$.fireEvent("confirm",{value:t.$.textBox.value}):a.closest(".smart-cancel-button")&&t.$.fireEvent("cancel",{value:t.$.textBox.value})}}),Smart("smart-progress-window",class extends Smart.Window{static get properties(){return{completeLabel:{value:"Continue",type:"string"},disableSnap:{value:!0,readOnly:!0,type:"boolean"},headerButtons:{value:["close"],type:"array"},indeterminate:{value:!1,type:"boolean"},inverted:{value:!1,type:"boolean"},formatFunction:{value:null,type:"function"},max:{value:100,type:"number"},modal:{value:!0,readOnly:!0,type:"boolean",defaultReflectToAttribute:!0},min:{value:0,type:"number"},showProgressValue:{value:!1,type:"boolean"},value:{value:0,type:"number?"}}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content" inner-h-t-m-l="[[innerHTML]]">\n <content></content>\n </div>\n <div id="footer" class="smart-footer">\n <smart-progress-bar id="progressBar"\n animation="[[animation]]"\n min="[[min]]"\n max="[[max]]"\n indeterminate="[[inditerminate]]"\n inverted="[[inverted]]"\n format-function="[[formatFunction]]"\n show-progress-value="[[showProgressValue]]"\n theme="[[theme]]"\n right-to-left="[[rightToLeft]]"\n value="{{value}}">\n </smart-progress-bar>\n <button id="completeButton" class="smart-button smart-element smart-complete-button smart-visibility-hidden">[[completeLabel]]</button>\n </div>\n </div>\n </div>'}static get requires(){return{"Smart.ProgressBar":"smart.progressbar.js"}}propertyChangedHandler(e,t,a){const i=this;switch(e){case"value":i._handleCompletion();break;default:super.propertyChangedHandler(e,t,a)}}_createElement(){this.setAttribute("role","dialog"),this._handleCompletion()}_handleCompletion(){const e=this;e.$.completeButton&&(e.value>=e.max?(e.$completeButton.removeClass("smart-visibility-hidden"),e.$progressBar.addClass("smart-visibility-hidden")):(e.$completeButton.addClass("smart-visibility-hidden"),e.$progressBar.removeClass("smart-visibility-hidden")))}_keyDownHandler(e){const t=this;function a(){t._dragDetails&&(t._dragDetails.started=!1),t.$.removeClass("no-transition")}if(delete t._changingFocus,t.disabled||t._dragDetails&&t._dragDetails.started)return;e.stopPropagation();const i="ArrowDown"===e.key||"ArrowRight"===e.key?10:-10,n=t.enableShadowDOM&&t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;switch(t.$.removeClass("no-transition"),e.key){case"ArrowUp":case"ArrowDown":if(n!==t)return;if(e.preventDefault(),e.altKey)return"ArrowUp"===e.key?t.maximize():t.restore(),void a();if(t.$.addClass("no-transition"),e.ctrlKey)return t._resize("bottom",i),void a();t._drag(i,"vertical"),t.$.removeClass("no-transition");break;case"ArrowLeft":case"ArrowRight":if(n!==t)return;if(e.preventDefault(),t.$.addClass("no-transition"),e.ctrlKey)return t._resize("right",i),void a();t._drag(i,"horizontal"),t.$.removeClass("no-transition");break;case"Escape":t.headerButtons.indexOf("close")>-1&&t.close();break;case"Tab":t.opened&&t.modal&&(t._changingFocus=!0);break;case"Enter":case" ":{let a;if(t.shadowRoot||t.isInShadowDOM?(a=e.composedPath()[0],t._buttonPressed=a.getRootNode().host):(a=e.target.closest&&e.target.closest(".smart-button"),t._buttonPressed=a),!a)return;t._isWindowButton(a),delete t._buttonPressed;break}}a()}}),Smart("smart-tabs-window",class extends Smart.Window{static get properties(){return{disableSnap:{value:!0,readOnly:!0,type:"boolean"},dropPosition:{value:["all"],type:"array"},addNewTab:{value:!1,type:"boolean"},allowToggle:{value:!1,type:"boolean"},autoHide:{value:!1,type:"boolean"},autoHideWindow:{value:null,type:"any"},dataSource:{value:null,type:"array?",reflectToAttribute:!1},tabCloseButtonMode:{value:"default",allowedValues:["default","selected"],type:"string"},tabCloseButtons:{value:!1,type:"boolean"},messages:{value:{en:{ambiguousIndexes:"smart-tabs: Initially set smart-tab-item indexes are ambiguous and are ignored in favour of the HTML structure.",detailsObjectRequired:'smart-tabs: The method "insert" requires a details Object to be passed as a second argument.',invalidIndex:'smart-tabs: "{{method}}" method accepts an index of type number.',referenceNodeNotChild:"smart-tabs: Passed {{argument}} is not part of this smart-tabs element.",tabItemRequired:'smart-tabs: The method "{{method}}" requires a "smart-tab-item" element to be passed as an argument.'}},type:"object",extend:!0},tabOverflow:{value:"auto",allowedValues:["auto","hidden","scroll"],type:"string"},tabReorder:{value:!1,type:"boolean"},tabResize:{value:!1,type:"boolean"},tabScrollButtonsPosition:{value:"both",allowedValues:["near","far","both"],type:"string"},selectedIndex:{value:null,type:"number?"},selectionMode:{value:"click",allowedValues:["click","dblclick","mouseenter","none"],type:"string"},collapsed:{value:!1,type:"boolean"},collapsible:{value:!1,type:"boolean"},locked:{value:!1,type:"boolean"},max:{value:"",type:"any"},min:{value:"",type:"any"},size:{value:"",type:"any"},tabLayout:{value:"scroll",allowedValues:["scroll","dropdown","wrap","shrink"],type:"string",defaultReflectToAttribute:!0},tabPosition:{value:"top",allowedValues:["top","bottom","left","right","hidden"],type:"string"},tabTextOrientation:{value:"horizontal",allowedValues:["horizontal","vertical"],type:"string"},layout:{value:null,type:"any"}}}static get listeners(){return{"tabsElement.blur":"_tabsFocusHandler","tabsElement.change":"_tabsChangeHandler","tabsElement.focus":"_tabsFocusHandler","autoHideWindow.close":"_autoHideWindowCloseHandler","autoHideWindow.open":"_autoHideWindowOpenHandler"}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="minimizeButton" class="smart-button smart-element smart-minimize-button" aria-label="Minimize"></button>\n <button id="maximizeButton" class="smart-button smart-element smart-maximize-button" aria-label="Maximize"></button>\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div id="contentSection" class="smart-content">\n <smart-tabs id="tabsElement"\n animation="[[animation]]"\n add-new-tab="[[addNewTab]]"\n allow-toggle="[[allowToggle]]"\n close-button-mode="[[tabCloseButtonMode]]"\n close-buttons="[[tabCloseButtons]]"\n disabled="[[disabled]]"\n overflow="[[tabOverflow]]"\n reorder="[[tabReorder]]"\n resize="[[tabResize]]"\n scroll-buttons-position="[[tabScrollButtonsPosition]]"\n selected-index="{{selectedIndex}}"\n selection-mode="[[selectionMode]]"\n tab-layout="[[tabLayout]]"\n tab-position="[[tabPosition]]"\n tab-text-orientation="[[tabTextOrientation]]"\n theme="[[theme]]"\n right-to-left="[[rightToLeft]]">\n <content></content>\n </smart-tabs>\n </div>\n <div id="footer" class="smart-footer smart-hidden"></div>\n </div>\n </div>'}static get requires(){return{"Smart.Tabs":"smart.tabs.js"}}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.TabItem||t.error(t.localize("tabItemRequired",{method:"removeChild"})),t.$.tabsElement.appendChild(e)):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"appendChild",node:"node"}))}insert(e,t){this.$.tabsElement.insert(e,t);const a=this.$.tabsElement._tabs[e];a&&(a.draggable=void 0===t.draggable||t.draggable,a.floatable=void 0===t.floatable||t.floatable)}insertBefore(e,t){this.$.tabsElement.insertBefore(e,t)}removeAt(e){this.$.tabsElement.removeAt(e)}removeChild(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.removeChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}e?(e instanceof Smart.TabItem||t.error(t.localize("tabItemRequired",{method:"removeChild"})),(t.shadowRoot||t).contains(e)||t.error(t.localize("referenceNodeNotChild",{argument:"node"})),t.$.tabsElement.removeChild(e)):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"removeChild",node:"node"}))}refreshTabHeader(){const e=this;e.$.tabsElement&&e.$.tabsElement.isCompleted&&e.$.tabsElement.refreshTabHeader()}refreshTabs(){const e=this;e.$.tabsElement&&e.$.tabsElement.isCompleted&&e.$.tabsElement._applyTabOverflow()}select(e){this.$.tabsElement.select(e)}update(e,t,a){this.$.tabsElement.update(e,t,a)}get items(){return this.isCompleted&&this.$.tabsElement?this.$.tabsElement._tabs:null}get itemLabels(){return this.$?this.$.tabsElement._tabLabelContainers:null}get siblings(){const e=this;let t=[];if(!e.isCompleted)return t;const a=e.closest("smart-splitter");if(!a||!a.closest("smart-docking-layout"))return t;const i=a._items;if(!i||!i.length)return t;for(let n=0;n<i.length;n++){const o=i[n];o!==e.closest("smart-splitter-item")&&o.querySelector("smart-tabs-window").closest("smart-splitter")===a&&t.push(o.querySelector("smart-tabs-window"))}return t}propertyChangedHandler(e,t,a){const i=this;switch("collapsed"!==e&&super.propertyChangedHandler(e,t,a),e){case"theme":""!==t&&(i.$.closeButton.classList.remove(t),i.$.collapseButton.classList.remove(t),i.$.maximizeButton.classList.remove(t),i.$.pinButton.classList.remove(t)),i._applyTheme(a);break;case"autoHideWindow":i._handleAutoHideWindow();break;case"autoHide":a||(null!==i.$.tabsElement.selectedIndex&&(i.$.tabsElement._tabs[i.$.tabsElement.selectedIndex]._autoHideWindowSize=void 0),i._autoHideWindow&&i._autoHideWindow.close());break;case"dataSource":i.$.tabsElement.dataSource=a;break;case"layout":i._handleLayoutProperty();break;case"collapsible":case"collapsed":case"locked":case"max":case"min":case"size":{const n=i.getRootNode(),o=(n&&n.host?n.host:i).closest("smart-docking-layout"),s=i.closest("smart-splitter-item");if(!o)return void("collapsed"===e&&super.propertyChangedHandler(e,t,a));s&&(s[e]=a);break}}}_applyTheme(e){if(""!==e){const t=this.$.buttonsContainer.children;for(let a=0;a<t.length;a++)t[a].classList.add(e)}}_autoHideWindowCloseHandler(){const e=this;e.allowToggle&&null!==e.$.tabsElement.selectedIndex&&e.$.tabsElement.select(e.$.tabsElement.selectedIndex),e._autoHideWindow&&e._moveContent(e._autoHideWindow.items[0],e._autoHideWindow._tab)}_autoHideWindowOpenHandler(){const e=this;e.$.tabsElement.selectedIndex&&e._handleAutoHide(e.$.tabsElement.selectedIndex)}_createElement(){const e=this;e.setAttribute("role","dialog"),e.$.tabsElement.$.tabHeaderControls&&!e.$.tabsElement.$.tabHeaderControls.innerHTML&&e.$.tabsElement.$tabHeaderControls.addClass("smart-hidden"),e.$.tabsElement.dataSource=e.dataSource,e._applyTheme(e.theme),e._handleAutoHideWindow(),e.autoHide&&e._handleAutoHide(e.$.tabsElement.selectedIndex),e.allowToggle||e.selectedIndex||null===e.$.tabsElement.selectedIndex||(e.selectedIndex=e.$.tabsElement.selectedIndex,e.$.tabsElement.setAttribute("selected-index",e.selectedIndex)),e._handleLayoutProperty();const t=(e.isInShadowDOM?e.getRootNode().host:e||e).closest("smart-docking-layout"),a=e.closest("smart-splitter-item");t&&a&&(a.collapsible=e.collapsible,a.collapsed=e.collapsed,a.min=e.min,a.max=e.max,a.size=e.size,a.locked=e.locked)}attached(){super.attached();const e=this;e.classList.add("smart-window"),e.shadowRoot&&e.$.root.classList.add("smart-window")}_handleLayoutProperty(){const e=this;let t=e.closest("smart-docking-layout");if(Smart.DockingLayout){if(!e.ownerLayout&&e.getRootNode()){let a=e.getRootNode().host;for(;a;){if(!a.closest)return;if(a.closest("smart-docking-layout")){t=a.closest("smart-docking-layout");break}a=a.getRootNode()?a.getRootNode().host:void 0}}t?e.layout=t:e.layout instanceof Smart.DockingLayout||"string"==typeof e.layout&&(e.layout=document.getElementById(e.layout))}}_headerDblCickHandler(e){const t=this,a=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;e.ctrlKey||a!==t.$.headerSection&&a!==t.$.header||t.$.maximizeButton&&0===t.$.maximizeButton.offsetHeight||(t.maximized?t.restore():t.maximize())}_documentUpHandler(e){const t=this;let a=e.originalEvent.target.closest?e.originalEvent.target.closest(".smart-window"):e.originalEvent.target,i=a===t||a===t._autoHideWindow||t._isAutoHideWindowClicked,n=t.closest("smart-docking-layout");(t.shadowRoot||t.isInShadowDOM)&&(a=e.originalEvent.composedPath()[0],i=a.getRootNode()===t.shadowRoot||a.closest(".smart-window")===t||a.closest(".smart-window")===t._autoHideWindow||t._isAutoHideWindowClicked),n=((t.isInShadowDOM?t.getRootNode().host:t)||t).closest("smart-docking-layout"),n&&n.disabled?delete t._isWindowContentClicked:(super._documentUpHandler(e),delete t._isAutoHideWindowClicked,t.autoHide&&t._autoHideWindow&&(i&&t._autoHideWindow.opened||(t.selectedIndex=null,t._autoHideWindow.parentElement&&t._autoHideWindow.parentElement.closest(".smart-window")===t&&t._autoHideWindow.close())))}_handleAutoHide(e){const t=this;if(!t.autoHide||null===e)return;if(t._autoHideWindow||t._handleAutoHideWindow(!0),!t._autoHideWindow)return;t._autoHideWindow._tabsWindow&&t._autoHideWindow._tabsWindow!==t&&(t._autoHideWindow._tabsWindow.selectedIndex=null);const a=t.$.tabsElement._tabs[e];t._autoHideWindow._tab!==a&&t._moveContent(t._autoHideWindow.items[0],t._autoHideWindow._tab),t._autoHideWindow.label=a.label,t._autoHideWindow.draggable=a.draggable,t._autoHideWindow.floatable=a.floatable,t._autoHideWindow._tab=a,t._moveContent(t._autoHideWindow._tab,t._autoHideWindow.items[0]),t._autoHideWindow.bringToFront(),t._setAutoHideWindowSize(e),t._autoHideWindow.open(),t._autoHideWindow._tabsWindow=t,t._autoHideWindow.controlledBy&&t._autoHideWindow.controlledBy.removeAttribute("aria-controls"),t._autoHideWindow.controlledBy=t.$.tabsElement._tabLabelContainers[e],t._autoHideWindow.controlledBy.setAttribute("aria-controls",t._autoHideWindow.id)}_moveHandler(e){const t=this,a=t.closest("smart-docking-layout");a&&a.items.indexOf(t)>-1||(Smart.Utilities.Core.isMobile&&navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform)&&t.layout instanceof Smart.DockingLayout&&t.layout.hasAttribute("dragged")&&e.originalEvent.preventDefault(),super._moveHandler(e))}_setAutoHideWindowSize(e){const t=this;if(!t._autoHideWindow)return;t._autoHideWindow.$.addClass("no-transition"),t._autoHideWindow.style.maxWidth=t._autoHideWindow.style.maxHeight="";const a=t.$.tabsElement._tabs[e],i=(t._autoHideWindow.isInShadowDOM?t._autoHideWindow.getRootNode().host:t._autoHideWindow).closest("smart-docking-layout")||t._autoHideWindow.parentElement;let n,o;if(a){if("top"===t.tabPosition||"bottom"===t.tabPosition){t._autoHideWindow.resizeMode="top"===t.tabPosition?"bottom":"top",t._autoHideWindow.style.width=t.$.tabsElement.offsetWidth+"px",n=i.getBoundingClientRect(),o=t.$.tabsElement.getBoundingClientRect();let e=a._autoHideWindowSize&&parseFloat(a._autoHideWindowSize)||"";Smart.DockingLayout&&i instanceof Smart.DockingLayout&&(e&&(e=Math.min(i.$.itemsContainer.offsetHeight,e)+"px"),t._autoHideWindow.style.maxHeight=i.$.itemsContainer.offsetHeight+"px"),t._autoHideWindow.style.height=e,t._autoHideWindow.style.left=o.left-n.left+"px",t._autoHideWindow&&("top"===t.tabPosition?t._autoHideWindow.style.top=o.top+-n.top+o.height+"px":t._autoHideWindow.style.top=o.top-n.top-t._autoHideWindow.offsetHeight+"px")}else{t._autoHideWindow.resizeMode="left"===t.tabPosition?"right":"left",t._autoHideWindow.style.height=t.$.tabsElement.offsetHeight+"px";let e=a._autoHideWindowSize&&parseFloat(a._autoHideWindowSize)||"";i instanceof Smart.DockingLayout&&(e&&(e=Math.min(i.$.itemsContainer.offsetWidth,e)+"px"),t._autoHideWindow.style.maxWidth=i.$.itemsContainer.offsetWidth+"px"),t._autoHideWindow.style.width=e,n=i.getBoundingClientRect(),o=t.$.tabsElement.getBoundingClientRect(),t._autoHideWindow.style.top=o.top-n.top+"px","left"===t.tabPosition?t._autoHideWindow.style.left=o.left-n.left+t.$.tabsElement.offsetWidth+"px":t._autoHideWindow.style.left=o.left-n.left-t._autoHideWindow.offsetWidth+"px"}t._autoHideWindow._dragDetails&&(t._autoHideWindow._dragDetails.maxWidth=void 0),t._autoHideWindow._setDragDetails("resize"),t._autoHideWindow._dragDetails.started=!1,t._autoHideWindow.$.removeClass("no-transition")}}_handleAutoHideWindow(e){const t=this;if(t.autoHideWindow){if(t._autoHideWindow&&t._autoHideWindow.parentElement.removeChild(t._autoHideWindow),"string"==typeof t.autoHideWindow)return void(t._autoHideWindow=document.getElementById(t.autoHideWindow));if(t.autoHideWindow instanceof Smart.Window)return void(t._autoHideWindow=t.autoHideWindow)}if(!e||t._autoHideWindow||2===t.$.contentSection.children.length&&t.$.contentSection.children[1]instanceof Smart.Window)return;const a=document.createElement("smart-window");a.$=Smart.Utilities.Extend(a),a.disableSnap=a.pinned=!0,a.headerButtons=["close"],t.$.contentSection.appendChild(a),t._autoHideWindow=a}_moveContent(e,t){if(!e||!t)return;const a=[].slice.call(e.$.content.childNodes);for(let e=0;e<a.length;e++)t.appendChild(a[e])}_tabsChangeHandler(e){const t=this;if(e.target===t.$.tabsElement&&t.autoHide){if(t._autoHideWindow||t._handleAutoHideWindow(!0),null!==e.detail.oldIndex&&t._autoHideWindow.opened&&(t.$.tabsElement._tabs[e.detail.oldIndex]._autoHideWindowSize=t._autoHideWindow.style["right"===t.$.tabsElement.tabPosition||"left"===t.$.tabsElement.tabPosition?"width":"height"]),!t.autoHide||null===e.detail.index||void 0===e.detail.index)return t._autoHideWindow.setAttribute("active",""),void t._autoHideWindow.close();t._handleAutoHide(e.detail.index)}}_tabsFocusHandler(e){const t=this;"focus"===e.type?(t.bringToFront(),t.setAttribute("focus","")):t.removeAttribute("focus")}}),Smart("smart-wait-window",class extends Smart.ProgressWindow{static get properties(){return{headerButtons:{value:[],type:"array"},disableSnap:{value:!0,readOnly:!0,type:"boolean"},modal:{value:!0,readOnly:!0,type:"boolean",defaultReflectToAttribute:!0},pinned:{value:!0,type:"boolean",readOnly:!0}}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content">\n <content></content>\n <smart-progress-bar id="progressBar" animation="[[animation]]" indeterminate theme="[[theme]]" right-to-left="[[rightToLeft]]"></smart-progress-bar>\n </div>\n <div id="footer" class="smart-footer"></div>\n </div>\n </div>'}_keyDownHandler(e){const t=this;function a(){t._dragDetails&&(t._dragDetails.started=!1),t.$.removeClass("no-transition")}if(delete t._changingFocus,t.disabled||t._dragDetails&&t._dragDetails.started)return;const i=t.shadowRoot||t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;e.stopPropagation();const n="ArrowDown"===e.key||"ArrowRight"===e.key?10:-10;switch(t.$.removeClass("no-transition"),e.key){case"ArrowUp":case"ArrowDown":if(i!==t)return;if(e.preventDefault(),e.altKey)return"ArrowUp"===e.key?t.maximize():t.restore(),void a();if(t.$.addClass("no-transition"),e.ctrlKey)return t._resize("bottom",n),void a();t._drag(n,"vertical");break;case"ArrowLeft":case"ArrowRight":if(i!==t)return;if(e.preventDefault(),t.$.addClass("no-transition"),e.ctrlKey)return t._resize("right",n),void a();t._drag(n,"horizontal");break;case"Tab":t.opened&&t.modal&&(t._changingFocus=!0);break;case"Enter":case" ":{let a;if(t.shadowRoot||t.isInShadowDOM?(a=e.composedPath()[0],t._buttonPressed=a.getRootNode().host):(a=e.target.closest&&e.target.closest(".smart-button"),t._buttonPressed=a),!a)return;t._isWindowButton(a),delete t._buttonPressed;break}}a()}});
55
+ Smart("smart-window",class extends Smart.ContentElement{static get properties(){return{collapsed:{value:!1,type:"boolean"},closeOnMaskClick:{value:!1,type:"boolean"},disableEscape:{value:!1,type:"boolean"},disableSnap:{value:!1,type:"boolean"},footerPosition:{value:"bottom",allowedValues:["bottom","none"],type:"string"},footerTemplate:{value:null,type:"any"},headerButtons:{value:["close","maximize","minimize"],type:"array"},headerPosition:{value:"top",allowedValues:["top","bottom","left","right","none"],type:"string"},headerTemplate:{value:null,type:"any"},disableKeyboard:{value:!1,type:"boolean"},label:{value:"",type:"string"},liveResize:{value:!1,type:"boolean"},maximized:{value:!1,type:"boolean"},modal:{value:!1,type:"boolean"},minimized:{value:!1,type:"boolean"},opened:{value:!1,type:"boolean"},pinned:{value:!1,type:"boolean"},resizeIndicator:{value:!1,type:"boolean"},resizeMode:{allowedValues:["none","horizontal","vertical","both","top","bottom","left","right"],value:"none",type:"string"},windowParent:{value:null,type:"any"}}}static get listeners(){return{"document.dragstart":"_dragStartHandler","document.focusin":"_documentFocusInEventHandler","document.move":"_documentMoveHandler","document.up":"_documentUpHandler","document.wheel":"_mouseWheelHandler","document.selectstart":"_documentSelectStartHandler",down:"_downHandler",focus:"_focusHandler",blur:"_focusHandler",move:"_moveHandler",keydown:"_keyDownHandler",keyup:"_keyUpHandler"}}get hasStyleObserver(){return!1}static get styleUrls(){return["smart.button.css","smart.window.css"]}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header" role="presentation">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container" role="presentation">\n <button id="pinButton" class="smart-button smart-element smart-pin-button" aria-label="Pin"></button>\n <button id="collapseButton" class="smart-button smart-element smart-collapse-button" aria-label="Collapse"></button>\n <button id="minimizeButton" class="smart-button smart-element smart-minimize-button"aria-label="Minimize"></button>\n <button id="maximizeButton" class="smart-button smart-element smart-maximize-button" aria-label="Maximize"></button>\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content" inner-h-t-m-l="[[innerHTML]]"><content></content></div>\n <div id="footer" class="smart-footer"></div>\n </div>\n </div>'}propertyChangedHandler(e,t,a){const i=this;switch(e){case"collapsed":a?i.collapse(!0):i.expand(!0);break;case"disabled":case"unfocusable":i._setFocusable();break;case"headerTemplate":case"footerTemplate":i._applyLayoutTemplate(i.$[e.split(/[T]/)[0]],a);break;case"headerButtons":i._setHeaderButtons();break;case"headerPosition":{const e=i.minimized;i._preventEventFiring=!0,i.restore(),delete i._preventEventFiring,e&&i.minimize();break}case"label":i.$.header.innerHTML=i.label;break;case"maximized":a?i.maximize(!0):i.restore(e);break;case"modal":i._setModal(),i.setAttribute("aria-modal",a);break;case"minimized":a?i.minimize(!0):i.restore(e);break;case"opened":a?i.open(!0):i.close(!0);break;case"resizeMode":i.$.container.classList.remove("smart-window-resizing-bottom-right","smart-window-resizing-top-right","smart-window-resizing-top-left","smart-window-resizing-bottom-left","smart-window-resizing-top","smart-window-resizing-bottom","smart-window-resizing-left","smart-window-resizing-right");break;case"windowParent":i._setElementParent(a);break;default:super.propertyChangedHandler(e,t,a)}}ready(){super.ready(),this._windowParent={initialParent:this.parentElement}}render(){const e=this,t=e.animation;e.$.header.id||(e.$.header.id=e.id+"Header"),e.$.content.id||(e.$.content.id=e.id+"Content"),e.opened||(e.animation="none"),e._windowParent={initialParent:e.parentElement},e.$.addClass("smart-window"),e._createElement(),e._setElementParent(e.windowParent),e._setHeaderButtons(),e.headerTemplate&&e._applyLayoutTemplate(e.$.header,e.headerTemplate),e.footerTemplate&&e._applyLayoutTemplate(e.$.footer,e.footerTemplate),e.opened?e.open():e.close(),e.maximized&&e.maximize(!0),e.minimized&&e.minimize(!0),e.collapsed&&e.collapse(!0),e.pinned?e.pin():e.unpin(),e._setFocusable(),e.animation=t,e.setAttribute("aria-modal",e.modal),e.setAttribute("aria-labelledby",e.$.header.id),e._setupDismissTargets(),super.render()}refresh(){const e=this;e.headerTemplate&&e._applyLayoutTemplate(e.$.header,e.headerTemplate),e.footerTemplate&&e._applyLayoutTemplate(e.$.footer,e.footerTemplate),e.opened?e.open():e.close(),e.maximized&&e.maximize(!0),e.minimized&&e.minimize(!0),e.collapsed&&e.collapse(!0),e.pinned?e.pin():e.unpin()}static get requires(){return{"Smart.Button":"smart.button.js"}}_setFocusable(){const e=this;if(e.disabled||e.unfocusable)e.removeAttribute("tabindex");else{let t=e.tabIndex>0?e.tabIndex:0;e.setAttribute("tabindex",t)}}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?t.$.content.appendChild(e):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"appendChild",node:"node"}))}collapse(e){const t=this;!e&&t.collapsed||(t.collapsed=!0,t.$.fireEvent("collapse"),"left"===t.headerPosition||"right"===t.headerPosition?t.style.width="":t.style.height="")}close(e){const t=this;if(e||!t.$.hasClass("smart-visibility-hidden")){if(t.isCompleted){if(t.$.fireEvent("closing").defaultPrevented)return;t.$.addClass("smart-visibility-hidden"),t.opened=!1,t.isRendered&&t.$.fireEvent("close")}else t.$.addClass("smart-visibility-hidden"),t.opened=!1;t._setModal(),t.removeAttribute("ontop")}}attached(){super.attached();const e=this;e.isRendered,e._windowParent.parent&&e._windowParent.parent!==e.getShadowRootOrBody()&&e._windowParent.parent.querySelectorAll("smart-window, smart-dialog-window, smart-progress-window, smart-wait-window, smart-alert-window, smart-prompt-window, smart-multiline-prompt-window")&&"static"===window.getComputedStyle(e._windowParent.parent).getPropertyValue("position")&&(e._windowParent.parent.style.position="relative"),e.opened&&e._modal&&e.parentElement.insertBefore(e._modal,e)}bringToFront(){const e=this;if(!e.parentElement)return;const t=e.parentElement.closest(".smart-window");if(t)return void t.bringToFront();const a=document.body.getElementsByClassName("smart-window");let i=[];for(let e=0;e<a.length;e++){const t=a[e];t.removeAttribute("ontop"),t.opened&&i.push(t)}1===i.length&&i[0]===e||e.setAttribute("ontop","")}clear(){const e=this;e.isCompleted&&"Smart-WINDOW"===e.nodeName&&(e.innerHTML=e.$.content.innerHTML="")}detached(){super.detached();const e=this;e._windowParent.parent&&!e._windowParent.parent.querySelectorAll("smart-window, smart-dialog-window, smart-progress-window, smart-wait-window, smart-alert-window, smart-prompt-window, smart-multiline-prompt-window")&&(e._windowParent.parent.style.position=""),e._modal&&e._modal.parentElement&&e._modal.parentElement.removeChild(e._modal),e._resizeDummy&&e._resizeDummy.parentElement&&e._handleWindowResizeDummy(),e._refreshMinimizedWindowsPosition()}expand(e){const t=this;(e||t.collapsed)&&(t.collapsed=!1,t.$.fireEvent("expand"),t.maximized?"left"===t.headerPosition||"right"===t.headerPosition?t.style.width=Math.max(t._windowParent.scrollElement.scrollWidth,t._windowParent.element.clientWidth)-t._windowParent.borderWidth+"px":t.style.height=Math.max(t._windowParent.scrollElement.scrollHeight,t._windowParent.element.clientHeight)-t._windowParent.borderWidth+"px":"left"===t.headerPosition||"right"===t.headerPosition?t.style.width=t.className.indexOf("smart-window-snapped-")<0&&t._dragDetails?t._dragDetails.width+"px":"":t.style.height=t.className.indexOf("smart-window-snapped-")<0&&t._dragDetails?t._dragDetails.height+"px":"")}maximize(e){const t=this;if(!e&&t.maximized)return;t.minimized&&t._restoreFromMinimization(e),t._setDragDetails("minimize"),"none"!==t.resizeMode&&t.$.container.classList.remove("smart-window-resizing-bottom-right","smart-window-resizing-top-right","smart-window-resizing-top-left","smart-window-resizing-bottom-left","smart-window-resizing-top","smart-window-resizing-bottom","smart-window-resizing-left","smart-window-resizing-right"),t._snapDummy&&t.$.hasClass("smart-window-snapped-"+t._snapDummy._position)&&t.classList.remove("smart-window-snapped-"+t._snapDummy._position),t.maximized=!0,t.$.fireEvent("maximize"),t.style.left=t.style.top=0,t.style.maxWidth=t.style.maxHeight="none";const a=t._windowParent.scrollElement.scrollHeight,i=t._windowParent.scrollElement.scrollWidth,n=t._windowParent.element.clientHeight,o=t._windowParent.element.clientWidth,s=Math.max(a,n),r=Math.max(i,o);"top"===t.headerPosition||"bottom"===t.headerPosition?(t.style.width=i>o?r-t._windowParent.borderWidth+"px":"100%",t.collapsed||(t.style.height=a>n?s-t._windowParent.borderWidth+"px":"100%")):(t.collapsed||(t.style.width=i>o?r-t._windowParent.borderWidth+"px":"100%"),t.style.height=a>n?s-t._windowParent.borderWidth+"px":"100%"),"100%"!==t.style.height&&t.addEventListener("transitionend",(function e(){if(!t.maximized||!t.hasAnimation)return;const a=t._windowParent.scrollElement.scrollHeight,i=t._windowParent.element.clientHeight,n=Math.max(a,i);("top"===t.headerPosition||"bottom"===t.headerPosition)&&t.collapsed||(t.style.height=a>i?n-t._windowParent.borderWidth+"px":"100%"),t.removeEventListener("transitionend",e)}))}minimize(e){const t=this;if(!e&&t.minimized)return;t.maximized&&(t._preventEventFiring=!0,t.restore(),delete t._preventEventFiring),t._setDragDetails(),t.minimized=!0,t.$.fireEvent("minimize"),t._snapDummy&&t.$.hasClass("smart-window-snapped-"+t._snapDummy._position)&&(t.$.removeClass("smart-window-snapped-"+t._snapDummy._position),t.style.right=t.style.top=t.style.left="");const a=t._getAllMinimizedWindows(t._windowParent.element);if(a.length>0){const e=a[a.length-1];t.style.left=(e.offsetLeft+e.offsetWidth+t._dragDetails.minWidth+10>t._windowParent.element.clientWidth?e.offsetLeft:e.offsetLeft+e.offsetWidth+5)+"px",t.style.top=e.offsetTop+"px"}else t.style.left="5px",t.style.top=t._windowParent.element.clientHeight+t._windowParent.scrollElement.scrollTop-t.$.headerSection.offsetHeight-5+"px";t.style.width="",t.style.height=t.$.headerSection.offsetHeight+"px"}_createElement(){this.setAttribute("role","dialog")}removeChild(e){const t=this;if(!t.isCompleted){const e=Array.prototype.slice.call(arguments,2);return HTMLElement.prototype.removeChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}e?t.$.content.removeChild(e):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"removeChild",node:"node"}))}restore(e){const t=this;if("maximized"===e||t.maximized?(t.maximized=!1,t.style.width=t.style.height=t.style.top=t.style.left=""):("minimized"===e||t.minimized)&&t._restoreFromMinimization(e),t._preventEventFiring||t.$.fireEvent("restore"),t.style.maxWidth=t.style.maxHeight="",t._dragDetails){if(t.style.left=Math.max(0,Math.min(t._dragDetails.windowX,t._windowParent.element.clientWidth-t._dragDetails.width))+"px",t.style.top=Math.max(0,Math.min(t._dragDetails.windowY,t._windowParent.scrollElement.scrollHeight-t._dragDetails.height))+"px",t.collapsed)return void("top"===t.headerPosition||"bottom"===t.headerPosition?t.style.width=t._dragDetails.width+"px":t.style.height=t._dragDetails.height+"px");t._dragDetails.resized&&(t.style.width=t._dragDetails.width+"px",t.style.height=t._dragDetails.height+"px")}}toggle(){const e=this;e.opened?e.close():e.open()}openModal(){this.modal=!0,this.open()}open(e){const t=this;if(e||t.$.hasClass("smart-visibility-hidden")){if(t.isCompleted){if(t.$.fireEvent("opening").defaultPrevented)return;t.$.removeClass("smart-visibility-hidden"),t.opened=!0,t.$.fireEvent("open")}else t.$.removeClass("smart-visibility-hidden"),t.opened=!0;t.bringToFront(),t._setModal(),t._handleActiveState(),t.hasAnimation?t.addEventListener("transitionend",a):a()}function a(e){if(!t.hasAnimation||e&&e.target===t){if(t.removeEventListener("transitionend",a),t._onOpenCallback)return void t._onOpenCallback();t.focus()}}}_setupDismissTargets(){const e=this;if(e.querySelector('[data-dismiss="modal"]')){const t=e.querySelectorAll('[data-dismiss="modal"]'),a=()=>{e.close()};for(let e=0;e<t.length;e++)t[e].removeEventListener("click",a,null),t[e].addEventListener("click",a)}}pin(){this.pinned=!0}unpin(){this.pinned=!1}_applyLayoutTemplate(e,t){const a=this;if(!t)return e.innerHTML="",void(e===a.$.header&&a.label&&(e.innerHTML=a.label));"content"in document.createElement("template")?(t instanceof HTMLTemplateElement||(t=document.getElementById(t)),null!==t&&"content"in t?(e.innerHTML="",e.appendChild(document.importNode(t.content,!0))):a.error(a.localize("invalidTemplate",{elementType:a.nodeName.toLowerCase(),property:e===a.$.footer?"footerTemplate":"headerTemplate"}))):a.error(a.localize("htmlTemplateNotSuported",{elementType:a.nodeName.toLowerCase()}))}_cancelDragging(e){const t=this;if(t._dragDetails&&t._dragDetails.started&&"drag"===t._dragDetails.type){if(!e){const a=t.getBoundingClientRect();e={pageX:a.left,pageY:a.top}}t.$.fireEvent("dragEnd",{left:e.pageX,top:e.pageY}),t.removeAttribute("dragged"),t._dragDetails.started=!1,delete t._mouseManipulation}}_documentFocusInEventHandler(e){const t=this;t._changingFocus&&(t.contains(e.target)||t.contains(e.composedPath()[0])||t.focus(),delete t._changingFocus)}_downHandler(e){const t=this;let a=Smart.Utilities.Core.isMobile?document.elementFromPoint(e.pageX-window.pageXOffset,e.pageY-window.pageYOffset):e.originalEvent.target;if((t.shadowRoot||t.isInShadowDOM)&&(a=e.originalEvent.composedPath()[0]),e.stopPropagation(),t.disabled||!Smart.Utilities.Core.isMobile&&1!==e.which)return;if(t._tabsWindow&&(t._tabsWindow._isAutoHideWindowClicked=!0),t.hasAttribute("ontop")||t.bringToFront(),a.closest&&a.closest(".smart-buttons-container")===t.$.buttonsContainer){if(t._buttonPressed=a.closest(".smart-button"),t._buttonPressed)return}else if(a.getRootNode()&&a.getRootNode().host&&(t._buttonPressed=a.getRootNode().host,t._buttonPressed.closest(".smart-buttons-container")===t.$.buttonsContainer))return;t._isWindowContentClicked=a.closest(".smart-content");let i=t.closest("smart-docking-layout");if(t.isInShadowDOM&&!i){let e=t.getRootNode().host;for(;e&&(i=e.closest("smart-docking-layout"),!i)&&e.getRootNode();)e=e.getRootNode().host}if(!(t instanceof Smart.TabsWindow&&i&&i.disabled)){if(t._handleActiveState(),!(t instanceof Smart.TabsWindow&&i))return a.closest(".smart-header-section")===t.$.headerSection&&(void 0===t._dblClickDetails&&(t._dblClickDetails={clicks:0}),clearTimeout(t._dblClickDetails.timeOut),t._dblClickDetails.clicks++,t._dblClickDetails.timeOut=setTimeout((function(){t._dblClickDetails&&(t._dblClickDetails.clicks=0)}),300),2===t._dblClickDetails.clicks)?(t._headerDblCickHandler(e),void(t._dblClickDetails.clicks=0)):void(t.maximized||(Smart.Utilities.Core.isMobile&&t._moveHandler(e),!t.pinned&&!t.minimized&&t.$.container.className.indexOf("smart-window-resizing")<0&&(a=a.closest(".smart-header-section"),a&&a===t.$.headerSection&&(t._mouseManipulation=!0,t._setDragDetails("drag",e))),"none"!==t.resizeMode&&t.$.container.className.indexOf("smart-window-resizing")>-1&&(t._mouseManipulation=!0,t._setDragDetails("resize",e))));t.$.hasClass("smart-docking-layout-auto-hide-window")&&(Smart.Utilities.Core.isMobile&&t._moveHandler(e),"none"!==t.resizeMode&&t.$.container.className.indexOf("smart-window-resizing")>-1&&(t._mouseManipulation=!0,t._setDragDetails("resize",e)))}}_documentMoveHandler(e){const t=this;!t._dragDetails||!t._dragDetails.started||t.minimized||!t._mouseManipulation||Math.abs(e.pageX-t._dragDetails.x)<=5&&Math.abs(e.pageY-t._dragDetails.y)<=5||(t.hasAttribute("dragged")||t.hasAttribute("resized")||t.$.fireEvent(t._dragDetails.type+"Start",{left:e.pageX,top:e.pageY,width:t.offsetWidth,height:t.offsetHeight}),e.stopPropagation(),"drag"!==t._dragDetails.type||t.pinned?(t._dragDetails.resized=!0,t._resize(t._dragDetails.side,e),t._dragDetails.x=Math.max(t._windowParent.offsetLeft+t._dragDetails.left,Math.min(t._windowParent.offsetLeft+t._dragDetails.left+(t._dragDetails.side.toLowerCase().indexOf("left")>-1?0:t._dragDetails.newWidth),e.pageX)),t._dragDetails.y=Math.max(t._windowParent.offsetTop+t._dragDetails.top,Math.min(t._windowParent.offsetTop+t._dragDetails.top+(t._dragDetails.side.toLowerCase().indexOf("top")>-1?0:t._dragDetails.newHeight),e.pageY))):(t.setAttribute("dragged",""),t._snapDummy&&t.$.hasClass("smart-window-snapped-"+t._snapDummy._position)&&(t.$.removeClass("smart-window-snapped-"+t._snapDummy._position),t.style.right=t.style.top=t.style.left="",t.collapsed||(t.style.height=t._dragDetails.height+"px",t.style.width=t._dragDetails.width+"px")),t._drag(e,"both"),t._dragDetails.x=Math.max(t._windowParent.offsetLeft+t._dragDetails.offsetX-t._windowParent.scrollElement.scrollLeft,Math.min(t._windowParent.offsetLeft+t._windowParent.element.offsetWidth-(t._windowParent.element.offsetWidth-t.offsetLeft)+t._dragDetails.offsetX,e.pageX)),t._dragDetails.y=Math.max(t._windowParent.offsetTop+t._dragDetails.offsetY-t._windowParent.scrollElement.scrollTop,Math.min(t._windowParent.offsetTop+t._windowParent.element.offsetHeight-(t._windowParent.element.offsetHeight-t.offsetTop)+t._dragDetails.offsetY,e.pageY)),e.pageX>=t._windowParent.offsetLeft+t._windowParent.scrollElement.scrollWidth-1?t._handleSnapping("right"):e.pageY<=t._windowParent.offsetTop?t._handleSnapping("top"):e.pageX<=t._windowParent.offsetLeft?t._handleSnapping("left"):t._handleSnapping()))}_documentUpHandler(e){const t=this,a=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;if(t.disabled)return t.removeAttribute("active"),delete t._buttonPressed,void delete t._isWindowContentClicked;if(t._dragDetails&&t._dragDetails.started&&(t.hasAttribute("resized")&&(t.$.fireEvent(t._dragDetails.type+"End",{left:e.pageX,top:e.pageY,width:t._dragDetails.newWidth,height:t._dragDetails.newHeight}),t.removeAttribute("resized"),t._handleWindowResizeDummy(),t.$.container.classList.remove("smart-window-resizing-bottom-right","smart-window-resizing-top-right","smart-window-resizing-top-left","smart-window-resizing-bottom-left","smart-window-resizing-top","smart-window-resizing-bottom","smart-window-resizing-left","smart-window-resizing-right")),setTimeout((function(){t.$.removeClass("no-transition")}),20),t.hasAttribute("dragged")&&(t.$.fireEvent(t._dragDetails.type+"End",{left:e.pageX,top:e.pageY}),t.removeAttribute("dragged")),t._dragDetails.started=!1,delete t._mouseManipulation),t._snapDummy&&!t._snapDummy.classList.contains("smart-visibility-hidden")){switch(t._snapDummy._position){case"left":case"top":t.style.left=t.style.top="0",t.style.right="auto";break;case"right":t.style.left="auto",t.style.top=t.style.right="0"}t.style.width="top"===t._snapDummy._position?"100%":"50%",t.style.height="100%",t.$.addClass("smart-window-snapped-"+t._snapDummy._position),t._handleSnapping()}t._modal&&a===t._modal&&!t._isWindowContentClicked&&(t.closeOnMaskClick?t.close():t.focus()),t._isWindowButton(a)&&t.focus(),delete t._isWindowContentClicked,delete t._buttonPressed;const i=t.shadowRoot&&t._windowParent.element&&t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;if(!t.hasAttribute("active")||i===t)return;if(!a.closest)return;let n=a.closest(".smart-window");for(;n&&n!==t;)n=n.parentElement,n&&(n=n.closest(".smart-window"));t.opened&&n!==t&&t.removeAttribute("active")}_documentSelectStartHandler(e){this._dragDetails&&this._dragDetails.started&&e.preventDefault()}_drag(e,t){const a=this;if(!e||a.pinned||a.maximized)return;let i,n;a._dragDetails&&a._dragDetails.started||a._setDragDetails("drag",e),a.$.addClass("no-transition"),"object"==typeof e?(i=e.pageX-a._dragDetails.x,n=e.pageY-a._dragDetails.y):i=n=e;const o=Math.max(a._windowParent.element.clientHeight,a._windowParent.scrollElement.scrollHeight),s=Math.max(a._windowParent.element.clientWidth,a._windowParent.scrollElement.scrollWidth);switch(t){case"horizontal":a._dragDetails.windowX=Math.max(0,Math.min(a._dragDetails.windowX+i,s-a.offsetWidth)),a.style.left=a._dragDetails.windowX+"px";break;case"vertical":a._dragDetails.windowY=Math.max(0,Math.min(a._dragDetails.windowY+n,o-a.offsetHeight)),a.style.top=a._dragDetails.windowY+"px";break;case"both":a._dragDetails.windowX=Math.max(0,Math.min(a._dragDetails.windowX+i,s-a.offsetWidth)),a._dragDetails.windowY=Math.max(0,Math.min(a._dragDetails.windowY+n,o-a.offsetHeight)),a.style.left=a._dragDetails.windowX+"px",a.style.top=a._dragDetails.windowY+"px"}a._dragDetails.top=a.offsetTop,a._dragDetails.left=a.offsetLeft}_dragStartHandler(e){this._dragDetails&&this._dragDetails.started&&e.preventDefault()}_focusHandler(e){const t=this;"focus"===e.type?(t.setAttribute("focus",""),t.bringToFront()):t._buttonPressed||(t.removeAttribute("focus"),t._dragDetails&&t._dragDetails.started&&t._handleWindowResizeDummy())}_getAllMinimizedWindows(e){const t=this;let a=[];e||(e=t._windowParent.element);const i=e.querySelectorAll("smart-window");for(let e=0;e<i.length;e++)i[e]!==t&&i[e].hasAttribute("minimized")&&a.push(i[e]);return a.sort((function(e,t){let a=e.getBoundingClientRect(),i=t.getBoundingClientRect();return a.right-i.right})),a}_handleSnapping(e){const t=this;e?t.disableSnap||t.collapsed||(t._snapDummy||(t._snapDummy=document.createElement("div"),t._snapDummy.addEventListener("transitionend",(function(){t._snapDummy.classList.contains("smart-visibility-hidden")&&t._snapDummy.parentElement&&t._snapDummy.parentElement.removeChild(t._snapDummy)}))),t._snapDummy.className="smart-window-snap-"+e+"-feedback",t._snapDummy._position=e,t._snapDummy.parentElement||t._windowParent.element.appendChild(t._snapDummy)):t._snapDummy&&t._snapDummy.parentElement&&t._snapDummy.classList.add("smart-visibility-hidden")}_headerDblCickHandler(e){const t=this,a=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;a!==t.$.headerSection&&a!==t.$.header||t.$.maximizeButton&&0===t.$.maximizeButton.offsetHeight||(t.maximized?t.restore():t.maximize())}_isWindowButton(e){const t=this;for(;e&&(e.closest&&e.closest(".smart-buttons-container"))!==t.$.buttonsContainer;)e=e.getRootNode().host;if(!e)return;const a=/smart-(\w+[-]*\w*)-button/gi;if((e=e.closest(".smart-button"))&&e===t._buttonPressed)switch(e){case t.$.closeButton:return t.close(),!0;case t.$.collapseButton:return t.collapsed?t.expand():t.collapse(),!0;case t.$.maximizeButton:return t.maximized?t.restore():t.maximize(),!0;case t.$.minimizeButton:return t.minimized?t.restore():t.minimize(),!0;case t.$.pinButton:return t.pinned?t.unpin():t.pin(),!0;default:if(!a.test(e.className))return;return t.$.fireEvent(Smart.Utilities.Core.toCamelCase(e.className.match(a).toString().replace("smart-","").replace("-button","")),{button:e}),!0}}_keyDownHandler(e){const t=this;if(delete t._changingFocus,t.disabled||(t.hasAttribute("dragged")||t.hasAttribute("resized"))&&t._mouseManipulation)return;const a="ArrowDown"===e.key||"ArrowRight"===e.key?10:-10,i=t.enableShadowDOM&&t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;if(!t.disableKeyboard)switch(e.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":{if(t.minimized||i!==t)return;let n=e.key.indexOf("Right")>-1||e.key.indexOf("Left")>-1;e.preventDefault();const o=(t.isInShadowDOM?t.getRootNode().host:t).closest("smart-docking-layout");if(!n&&e.altKey&&!(t instanceof Smart.TabsWindow&&o))return void("ArrowUp"===e.key?t.maximize():t.restore());if(t.maximized)return;if(t.$.addClass("no-transition"),e.ctrlKey&&"none"!==t.resizeMode&&!t.collapsed)return n=-1===["horizontal","vertical","both"].indexOf(t.resizeMode)?t.resizeMode:n?"right":"bottom",t.hasAttribute("dragged")&&t._cancelDragging(e),t.hasAttribute("resized")||t.$.fireEvent("resizeStart",{position:{x:e.pageX,y:e.pageY}}),void t._resize(n,a);t.pinned||(t.hasAttribute("dragged")||(t.setAttribute("dragged",""),t.$.fireEvent("dragStart",{left:e.pageX,top:e.pageY})),t._drag(a,n?"horizontal":"vertical")),t.$.removeClass("no-transition");break}case"Escape":t.disableEscape||t.headerButtons.indexOf("close")>-1&&t.close();break;case"p":e.altKey&&t.headerButtons.indexOf("pin")>-1&&(t.pinned?t.unpin():t.pin());break;case"c":e.altKey&&t.headerButtons.indexOf("collapse")>-1&&(t.collapsed?t.expand():t.collapse());break;case"m":e.altKey&&t.headerButtons.indexOf("minimize")>-1&&(t.minimized?t.restore():t.minimize());break;case"Tab":t.opened&&t.modal&&(t._changingFocus=!0);break;case"Enter":case" ":{let a;if(t.shadowRoot||t.isInShadowDOM?(a=e.composedPath()[0],t._buttonPressed=a.getRootNode().host):(a=e.target.closest&&e.target.closest(".smart-button"),t._buttonPressed=a),!a)return;t._isWindowButton(a),delete t._buttonPressed;break}}}_keyUpHandler(e){const t=this;if(e.key&&!t.disableKeyboard){if("Control"===e.key&&t._dragDetails&&t.hasAttribute("resized")&&!t._mouseManipulation){if(!t._dragDetails.started)return;"drag"!==t._dragDetails.type&&(t.removeAttribute("resized"),t.$.fireEvent("resizeEnd",{left:e.pageX,top:e.pageY,width:t._dragDetails.newWidth,height:t._dragDetails.newHeight}),t._handleWindowResizeDummy()),t._dragDetails.started=!1}e.key.indexOf("Arrow")>-1&&t.hasAttribute("dragged")&&!t._mouseManipulation&&t._cancelDragging(e)}}_mouseWheelHandler(e){const t=this;!t.disabled&&t._dragDetails&&t._dragDetails.started&&(e.deltaY<0&&t._windowParent.scrollElement.scrollTop+e.deltaY<=0?t.style.top=Math.max(0,t._dragDetails.windowY)+"px":e.deltaY>0&&(t._dragDetails.windowY+t.offsetHeight+e.deltaY>=t._windowParent.scrollElement.scrollHeight||t._windowParent.scrollElement.scrollTop+t._windowParent.element.clientHeight===t._windowParent.scrollElement.scrollHeight)||("drag"===t._dragDetails.type?(t._dragDetails.windowY+=e.deltaY,t.style.top=t._dragDetails.windowY+"px"):(t._dragDetails.height+=e.deltaY,t.style.height=t._dragDetails.height+"px")))}_moveHandler(e){const t=this;if(!(t.disabled||t.collapsed||t.maximized||t.minimized||(Smart.Utilities.Core.isMobile&&navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform)&&t.hasAttribute("dragged")&&e.originalEvent.preventDefault(),t._mouseManipulation||(t.$.container.className.indexOf("smart-window-resizing")>-1&&t.$.container.classList.remove("smart-window-resizing-bottom-right","smart-window-resizing-top-right","smart-window-resizing-top-left","smart-window-resizing-bottom-left","smart-window-resizing-top","smart-window-resizing-bottom","smart-window-resizing-left","smart-window-resizing-right"),"none"===t.resizeMode)))){const a=t.getBoundingClientRect(),i=e.clientY<a.top+10,n=e.clientY>a.bottom-10,o=e.clientX>a.right-10,s=e.clientX<a.left+10;switch(t.resizeMode){case"none":break;case"both":if(t.resizeIndicator)return void(n&&o&&t.$.container.classList.add("smart-window-resizing-bottom-right"));if(s||o)return i?void t.$.container.classList.add("smart-window-resizing-top-"+(s?"left":"right")):n?void t.$.container.classList.add("smart-window-resizing-bottom-"+(s?"left":"right")):void t.$.container.classList.add("smart-window-resizing-"+(s?"left":"right"));if(i||n){if(o)return void t.$.container.classList.add("smart-window-resizing-"+(i?"top-right":"bottom-right"));if(s)return void t.$.container.classList.add("smart-window-resizing-"+(i?"top-left":"bottom-left"));t.$.container.classList.add("smart-window-resizing-"+(i?"top":"bottom"))}break;case"horizontal":if(t.resizeIndicator)return void(n&&o&&t.$.container.classList.add("smart-window-resizing-right"));if(s)return void t.$.container.classList.add("smart-window-resizing-left");o&&t.$.container.classList.add("smart-window-resizing-right");break;case"vertical":if(t.resizeIndicator)return void(n&&o&&t.$.container.classList.add("smart-window-resizing-bottom"));if(i)return void t.$.container.classList.add("smart-window-resizing-top");n&&t.$.container.classList.add("smart-window-resizing-bottom");break;case"top":if(i){if(t.resizeIndicator&&!s)return;t.$.container.classList.add("smart-window-resizing-top")}break;case"bottom":if(n){if(t.resizeIndicator&&!o)return;t.$.container.classList.add("smart-window-resizing-bottom")}break;case"left":if(s){if(t.resizeIndicator&&!i)return;t.$.container.classList.add("smart-window-resizing-left")}break;case"right":if(o){if(t.resizeIndicator&&!n)return;t.$.container.classList.add("smart-window-resizing-right")}}}}_handleActiveState(){const e=this,t=document.querySelectorAll(".smart-window");for(let a=0;a<t.length;a++)t[a].contains(e)||e.contains(t[a])||(t[a].removeAttribute("active"),t[a].removeAttribute("focus"));e.setAttribute("active","")}_handleWindowResizeDummy(){const e=this;if(e._resizeDummy||(e._resizeDummy=document.createElement("div"),e._resizeDummy.classList.add("smart-window-resize-feedback")),!e.hasAttribute("resized"))return e._resizeDummy&&e._resizeDummy.remove(),void(!e.liveResize&&"resize"===e._dragDetails.type&&e._dragDetails.started&&(e.style.top=e._dragDetails.top+"px",e.style.left=e._dragDetails.left+"px",e.style.width=e._dragDetails.newWidth+"px",e.style.height=e._dragDetails.newHeight+"px"));e._resizeDummy.parentElement||e._resizeDummy.getRootNode().host||(e._resizeDummy.style.width=e.offsetWidth+"px",e._resizeDummy.style.height=e.offsetHeight+"px",e._resizeDummy.style.top=e.offsetTop+"px",e._resizeDummy.style.left=e.offsetLeft+"px",e._windowParent.element.appendChild(e._resizeDummy))}_resize(e,t){const a=this;let i;if((!a._dragDetails||a._dragDetails&&"drag"===a._dragDetails.type)&&a._setDragDetails("resize"),!a._dragDetails)return;a._dragDetails.started=!0,a.hasAttribute("resized")||(a.setAttribute("resized",""),a.hasAnimation&&a.$.addClass("no-transition")),a.liveResize||a._handleWindowResizeDummy();const n=a._snapDummy&&a.$.hasClass("smart-window-snapped-"+a._snapDummy._position)?"snapWindowWidth":"width";switch(e){case"left":i="object"==typeof t?t.pageX-a._dragDetails.x:t,i=i>0?Math.min(i,a._dragDetails[n]-a._dragDetails.minWidth):-1*Math.min(a._dragDetails.maxWidth?a._dragDetails.maxWidth-a._dragDetails[n]:a._dragDetails.left,Math.abs(i)),a._dragDetails[n]=Math.min(a._dragDetails[n]+a._dragDetails.left-a._windowParent.scrollElement.scrollLeft,a._dragDetails[n]-i),a._dragDetails.windowX=Math.max(a._windowParent.scrollElement.scrollLeft,a._dragDetails.windowX+i),"object"!=typeof t&&(a._dragDetails[n]=Math.max(a._dragDetails[n],a._dragDetails.minWidth)),a._dragDetails[n]>=a._dragDetails.minWidth&&(a._dragDetails.left=a._dragDetails.windowX,a._dragDetails.newWidth=a._dragDetails[n]);break;case"right":{const e=a._windowParent.element.clientWidth!==a._windowParent.element.offsetWidth?a._windowParent.borderWidth:0,n=a._snapDummy&&a.$.hasClass("smart-window-snapped-"+a._snapDummy._position)?"snapWindowWidth":"width";i="object"==typeof t?t.pageX-a._dragDetails.x:t,i>0&&a._dragDetails.maxWidth&&(i=Math.min(a._dragDetails.maxWidth-a._dragDetails[n],i)),a._dragDetails[n]=Math.min(a._windowParent.element.clientWidth+a._windowParent.scrollElement.scrollLeft-a._dragDetails.left-e,Math.max(0,a._dragDetails[n]+i)),"object"!=typeof t&&(a._dragDetails[n]=Math.max(a._dragDetails[n],a._dragDetails.minWidth)),a._dragDetails.left=a.offsetLeft,a._dragDetails.newWidth=Math.max(a._dragDetails.minWidth,a._dragDetails[n]);break}case"top":a._snapDummy&&a.$.hasClass("smart-window-snapped-"+a._snapDummy._position)&&(a._dragDetails.height=a._dragDetails.snapWindowHeight),i="object"==typeof t?t.pageY-a._dragDetails.y:t,i=i>0?Math.min(i,a._dragDetails.height-a._dragDetails.minHeight):-1*Math.min(a._dragDetails.maxHeight?a._dragDetails.maxHeight-a._dragDetails.height:a._dragDetails.top,Math.abs(i)),a._dragDetails.snapWindowHeight=a._dragDetails.height=Math.min(a._dragDetails.height+a._dragDetails.top-a._windowParent.scrollElement.scrollTop,a._dragDetails.height-i),a._dragDetails.windowY=Math.max(a._windowParent.scrollElement.scrollTop,a._dragDetails.windowY+i),"object"!=typeof t&&(a._dragDetails.snapWindowHeight=a._dragDetails.height=Math.max(a._dragDetails.height,a._dragDetails.minHeight)),a._dragDetails.height>=a._dragDetails.minHeight&&(a._dragDetails.top=a._dragDetails.windowY,a._dragDetails.newHeight=a._dragDetails.height),a._dragDetails.newWidth=Math.max(a._dragDetails[n],a._dragDetails.newWidth);break;case"bottom":a._snapDummy&&a.$.hasClass("smart-window-snapped-"+a._snapDummy._position)&&(a._dragDetails.height=a._dragDetails.snapWindowHeight),i="object"==typeof t?t.pageY-a._dragDetails.y:t,i>0&&a._dragDetails.maxHeight&&(i=Math.min(a._dragDetails.maxHeight-a._dragDetails.height,i)),a._dragDetails.snapWindowHeight=a._dragDetails.height=Math.min(a._windowParent.element.clientHeight+a._windowParent.scrollElement.scrollTop-a._dragDetails.top-a._windowParent.borderWidth,Math.max(0,a._dragDetails.height+i)),"object"!=typeof t&&(a._dragDetails.snapWindowHeight=a._dragDetails.height=Math.max(a._dragDetails.height,a._dragDetails.minHeight)),a._dragDetails.newHeight=Math.max(a._dragDetails.minHeight,a._dragDetails.height),a._dragDetails.newWidth=Math.max(a._dragDetails[n],a._dragDetails.newWidth);break;case"bottomLeftCorner":a._resize("bottom",t),a._resize("left",t);break;case"bottomRightCorner":a._resize("bottom",t),a._resize("right",t);break;case"topLeftCorner":a._resize("top",t),a._resize("left",t);break;case"topRightCorner":a._resize("top",t),a._resize("right",t)}const o=a.liveResize?a:a._resizeDummy;a._dragDetails.newHeight=Math.max(a._dragDetails.snapWindowHeight,a._dragDetails.newHeight),o.style.top=a._dragDetails.top+"px",o.style.left=a._dragDetails.left+"px",o.style.width=a._dragDetails.newWidth+"px",o.style.height=a._dragDetails.newHeight+"px"}_restoreFromMinimization(){const e=this;e.minimized=!1,e.style.width=e.style.height=e.style.top=e.style.left="",e._refreshMinimizedWindowsPosition()}_refreshMinimizedWindowsPosition(){const e=this,t=e._getAllMinimizedWindows();if(0===t.length)return;let a;t[0].style.left="5px";for(let i=1;i<t.length;i++)parseFloat(t[i-1].style.left)+t[i-1].offsetWidth+t[i].offsetWidth+10<e._windowParent.element.clientWidth?(t[i].style.left=parseFloat(t[i-1].style.left)+t[i-1].offsetWidth+5+"px",t[i].style.top=t[i-1].offsetTop+"px",a=t[i]):(t[i].style.left=parseFloat(a.style.left)+"px",t[i].style.top=a.offsetTop+"px")}_setHeaderButtons(){const e=this,t=e.headerButtons,a=e.$.buttonsContainer.children,i=function(t){const a=e.$.buttonsContainer.getElementsByClassName("smart-"+(t+"").split(/(?=[A-Z])/).join("-").toLowerCase()+"-button")[0];return a&&a.classList.remove("smart-hidden"),a};for(let e=0;e<a.length;e++)a[e].classList.add("smart-hidden");if(t.length>0)for(let a=0;a<t.length;a++){let n=i(t[a]);if(!n){const e=(t[a]+"").split(/(?=[A-Z])/);n=document.createElement("button"),n.setAttribute("aria-label",e.map((e=>e.slice(0,1).toUpperCase()+e.slice(1))).join(" ")),n.classList.add("smart-"+e.join("-").toLowerCase()+"-button","smart-button","smart-element")}e.$.buttonsContainer.insertBefore(n,e.$.buttonsContainer.firstElementChild)}}_setDragDetails(e,t){const a=this;if(a._dragDetails||(a._dragDetails={}),void 0===a._dragDetails.minWidth||void 0===a._dragDetails.minHeight||void 0===a._dragDetails.maxWidth||void 0===a._dragDetails.maxHeight){const e=getComputedStyle(a);a._dragDetails.minWidth=parseFloat(e.getPropertyValue("min-width"))||0,a._dragDetails.minHeight=parseFloat(e.getPropertyValue("min-height"))||0,a._dragDetails.maxWidth=parseFloat(e.getPropertyValue("max-width"))||0,a._dragDetails.maxHeight=parseFloat(e.getPropertyValue("max-height"))||0}a._dragDetails.windowX=a.offsetLeft,a._dragDetails.windowY=a.offsetTop;const i=a.getBoundingClientRect();if(a._snapDummy&&a.$.hasClass("smart-window-snapped-"+a._snapDummy._position))"right"===a.headerPosition&&a.collapsed&&(a._dragDetails.offsetX=i.left+a.offsetWidth-t.clientX);else{const n=a.parentElement===document.body?document.documentElement.getBoundingClientRect():a.parentElement?a.parentElement.getBoundingClientRect():document.documentElement.getBoundingClientRect(),o=window.scrollX||window.pageXOffset,s=window.scrollY||window.pageYOffset;a._windowParent.offsetLeft=n.left+o,a._windowParent.offsetTop=n.top+s,t&&"object"==typeof t&&(a._dragDetails.offsetX=t.clientX-i.left,a._dragDetails.offsetY=t.clientY-i.top),a.collapsed||(a.hasAnimation&&"minimize"===e?(a._dragDetails.width=a._dragDetails.width?a._dragDetails.width:a.offsetWidth,a._dragDetails.height=a._dragDetails.height?a._dragDetails.height:a.offsetHeight):(a._dragDetails.width=a.offsetWidth,a._dragDetails.height=a.offsetHeight),(a.style.width||a.style.height)&&(a._dragDetails.resized=!0))}if("minimize"!==e&&e&&(a._dragDetails.type=e,a._dragDetails.started=!0,a._dragDetails.snapWindowWidth=a.offsetWidth,a._dragDetails.snapWindowHeight=a.offsetHeight,t&&"object"==typeof t?(a._dragDetails.x=t.pageX,a._dragDetails.y=t.pageY):(a._dragDetails.x=a.offsetLeft,a._dragDetails.y=a.offsetTop),"resize"===e)){if("none"===a.resizeMode)return void delete a._dragDetails;a._dragDetails.top=a.offsetTop,a._dragDetails.left=a.offsetLeft,a._dragDetails.newWidth=a._dragDetails.width,a._dragDetails.newHeight=a._dragDetails.height,a.$container.hasClass("smart-window-resizing-right")?a._dragDetails.side="right":a.$container.hasClass("smart-window-resizing-left")?a._dragDetails.side="left":a.$container.hasClass("smart-window-resizing-top")?a._dragDetails.side="top":a.$container.hasClass("smart-window-resizing-bottom")?a._dragDetails.side="bottom":a.$container.hasClass("smart-window-resizing-top-left")?a._dragDetails.side="topLeftCorner":a.$container.hasClass("smart-window-resizing-bottom-left")?a._dragDetails.side="bottomLeftCorner":a.$container.hasClass("smart-window-resizing-top-right")?a._dragDetails.side="topRightCorner":a.$container.hasClass("smart-window-resizing-bottom-right")&&(a._dragDetails.side="bottomRightCorner")}}_setElementParent(e){const t=this;if(t._windowParent.element=void 0,t._windowParent.parent&&!t._windowParent.parent.querySelectorAll("smart-window, smart-dialog-window, smart-progress-window, smart-wait-window, smart-alert-window, smart-prompt-window, smart-multiline-prompt-window")&&(t._windowParent.parent.style.position=""),e instanceof HTMLElement)t._windowParent.element=e;else if("string"==typeof e)if("body"===e){const e=t.getRootNode();t._windowParent.element=e&&e.host?t.getShadowRootOrBody():document.body}else t._windowParent.element=document.getElementById(e);if(t._windowParent.element||(t._windowParent.initialParent?t._windowParent.element=t._windowParent.initialParent.parentElement?t._windowParent.initialParent:t.getShadowRootOrBody():t._windowParent.element=t.getShadowRootOrBody()),t.parentElement!==t._windowParent.element&&t._windowParent.element.appendChild(t),t._windowParent.element===document.body)t._windowParent.element=document.documentElement,t._windowParent.scrollElement=document.scrollingElement,t._windowParent.parent=document.body,t._windowParent.borderWidth=0;else{if(t.parentElement instanceof Smart.Window&&!t.parentElement.isCompleted)return void t.parentElement.whenRendered((function(){t.parentElement.appendChild(t),t._setElementParent(t.windowParent)}));t._windowParent.element instanceof Smart.Window&&(t._windowParent.element=t._windowParent.element.$.content);const e=getComputedStyle(t.parentElement),a=e.getPropertyValue("position");t._windowParent.borderWidth=2*parseInt(e.getPropertyValue("border-width")||0),t._windowParent.parent=t.parentElement,t._windowParent.scrollElement=t._windowParent.element,"static"===a&&(t.parentElement.style.position="relative")}t._setModal(),t.style.left&&t.offsetLeft>t._windowParent.scrollElement.scrollWidth&&(t.style.left=t._windowParent.scrollElement.scrollWidth-t.offsetWidth+"px"),t.style.top&&t.offsetTop>t._windowParent.scrollElement.scrollHeight&&(t.style.top=t._windowParent.scrollElement.scrollHeight-t.offsetHeight+"px")}_setModal(){const e=this;if(delete e._changingFocus,e._windowParent.element)if(e.modal)if(e._modal||(e._modal=document.createElement("div"),e._modal.classList.add("smart-modal")),e._windowParent.parent!==document.body?e._modal.setAttribute("nested-modal",""):e._modal.removeAttribute("nested-modal"),e._modal._window=e,e.opened&&!e._modal.parentElement){const t=parseInt(getComputedStyle(e).getPropertyValue("z-index"));isNaN(t)||(e._modal.style.zIndex=t-1),e.parentElement.insertBefore(e._modal,e)}else e._modal.parentElement&&e._modal.parentElement.removeChild(e._modal);else e._modal&&e._modal.parentElement&&(e._modal.parentElement.removeChild(e._modal),delete e._modal)}}),Smart("smart-dialog-window",class extends Smart.Window{static get properties(){return{cancelLabel:{value:"Cancel",type:"string"},confirmLabel:{value:"Ok",type:"string"},disableSnap:{value:!0,readOnly:!0,type:"boolean"},headerButtons:{value:["close"],type:"array"},modal:{value:!0,readOnly:!0,type:"boolean",defaultReflectToAttribute:!0}}}static get listeners(){return{"footer.click":"_footerClickHandler"}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="pinButton" class="smart-pin-button" aria-label="Pin"></button>\n <button id="collapseButton" class="smart-button smart-element smart-collapse-button" aria-label="Collapse"></button>\n <button id="minimizeButton" class="smart-button smart-element smart-minimize-button" aria-label="Minimize"></button>\n <button id="maximizeButton" class="smart-button smart-element smart-maximize-button" aria-label="Maximize"></button>\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content">\n <content></content>\n </div>\n <div id="footer" class="smart-footer">\n <button id="confirmButton" class="smart-button smart-element smart-confirm-button">[[confirmLabel]]</button>\n <button id="cancelButton" class="smart-button smart-element smart-cancel-button">[[cancelLabel]]</button>\n </div>\n </div>\n </div>'}_createElement(){const e=this;e.setAttribute("role","alertdialog"),e.setAttribute("aria-describedby",e.$.content.id)}_footerClickHandler(e){const t=this,a=e.target;a.closest(".smart-confirm-button")?t.$.fireEvent("confirm"):a.closest(".smart-cancel-button")&&t.$.fireEvent("cancel")}_keyDownHandler(e){const t=this;if(delete t._changingFocus,t.disabled||(t.hasAttribute("dragged")||t.hasAttribute("resized"))&&t._mouseManipulation)return;if(t.disableKeyboard)return;e.stopPropagation();const a="ArrowDown"===e.key||"ArrowRight"===e.key?10:-10,i=t.enableShadowDOM&&t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;switch(e.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":{if(t.minimized||i!==t)return;const n=e.key.indexOf("Right")>-1||e.key.indexOf("Left")>-1;if(e.preventDefault(),!n&&e.altKey)return void("ArrowUp"===e.key?t.maximize():t.restore());if(t.$.addClass("no-transition"),t.maximized)return;if(e.ctrlKey&&"none"!==t.resizeMode)return t.hasAttribute("dragged")&&t._cancelDragging(e),t.hasAttribute("resized")||t.$.fireEvent("resizeStart",{position:{x:e.pageX,y:e.pageY}}),void t._resize(n?"right":"bottom",a);t.pinned||(t.hasAttribute("dragged")||(t.setAttribute("dragged",""),t.$.fireEvent("dragStart",{left:e.pageX,top:e.pageY})),t._drag(a,n?"horizontal":"vertical")),t.$.removeClass("no-transition");break}case"Escape":t.disableEscape||t.headerButtons.indexOf("close")>-1&&t.close();break;case"Tab":t.opened&&t.modal&&(t._changingFocus=!0);break;case"Enter":case" ":{let a;if(t.shadowRoot||t.isInShadowDOM?(a=e.composedPath()[0],t._buttonPressed=a.getRootNode().host):(a=e.target.closest&&e.target.closest(".smart-button"),t._buttonPressed=a),!a)return;t._isWindowButton(a),delete t._buttonPressed;break}}}}),Smart("smart-alert-window",class extends Smart.DialogWindow{static get properties(){return{headerButtons:{value:[],type:"array"}}}_createElement(){const e=this;e.setAttribute("role","alertdialog"),e.setAttribute("aria-describedby",e.$.content.id)}}),Smart("smart-prompt-window",class extends Smart.DialogWindow{static get properties(){return{autoComplete:{allowedValues:["none","manual","auto","inline"],type:"string",value:"manual"},confirmLabel:{value:"Ok",type:"string"},cancelLabel:{value:"Cancel",type:"string"},disableSnap:{value:!0,readOnly:!0,type:"boolean"},displayMode:{value:"default",allowedValues:["default","escaped"],type:"string"},headerButtons:{value:["close"],type:"array"},form:{value:"",type:"string"},hint:{value:null,type:"any?"},maxLength:{value:null,type:"number?"},minLength:{value:2,type:"number"},messages:{extend:!0,value:{en:{missingReference:"{{elementType}}: Missing reference to {{files}}."}},type:"object"},modal:{value:!0,readOnly:!0,type:"boolean",defaultReflectToAttribute:!0},name:{value:"",type:"string"},placeholder:{value:"",type:"string"},promptLabel:{value:"",type:"string?"},required:{value:!1,type:"boolean"},requiredMessage:{value:"",type:"string"},selectAllOnFocus:{value:!1,type:"boolean"},value:{value:"",type:"string"}}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content">\n <content></content>\n <smart-text-box id="textBox"\n animation="[[animation]]"\n auto-complete="[[autoComplete]]"\n max-length="[[maxLength]]"\n value="{{value}}"\n form="[[form]]"\n label="[[promptLabel]]"\n hint="[[hint]]"\n display-mode="[[displayMode]]"\n max-length="[[maxLength]]"\n placeholder="[[placeholder]]"\n required="[[required]]"\n required-message="[[requiredMessage]]"\n select-all-on-focus="[[selectAllOnFocus]]"\n theme="[[theme]]"\n right-to-left="[[rightToLeft]]">\n </smart-text-box>\n </div>\n <div id="footer" class="smart-footer">\n <button id="confirmButton" class="smart-button smart-element smart-confirm-button flat">[[confirmLabel]]</button>\n <button id="cancelButton" class="smart-button smart-element smart-cancel-button flat">[[cancelLabel]]</button>\n </div>\n </div>\n </div>'}static get listeners(){return{"footer.click":"_footerClickHandler"}}static get requires(){return{"Smart.TextBox":"smart.textbox.js"}}_footerClickHandler(e){const t=this,a=e.target;a.closest(".smart-confirm-button")?t.$.fireEvent("confirm",{value:t.$.textBox.value}):a.closest(".smart-cancel-button")&&t.$.fireEvent("cancel",{value:t.$.textBox.value})}_keyDownHandler(e){const t=this;function a(){t._dragDetails&&(t._dragDetails.started=!1),t.$.removeClass("no-transition")}if(delete t._changingFocus,t.disabled||t._dragDetails&&t._dragDetails.started)return;if(t.disableKeyboard)return;e.stopPropagation();const i="ArrowDown"===e.key||"ArrowRight"===e.key?10:-10,n=t.enableShadowDOM&&t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;switch(t.$.removeClass("no-transition"),e.key){case"ArrowUp":case"ArrowDown":if(n!==t)return;if(e.preventDefault(),e.altKey)return"ArrowUp"===e.key?t.maximize():t.restore(),void a();if(t.$.addClass("no-transition"),e.ctrlKey)return t._resize("bottom",i),void a();t._drag(i,"vertical");break;case"ArrowLeft":case"ArrowRight":if(n!==t)return;if(e.preventDefault(),t.$.addClass("no-transition"),e.ctrlKey)return t._resize("right",i),void a();t._drag(i,"horizontal"),t.$.removeClass("no-transition");break;case"Escape":t.disableEscape||t.headerButtons.indexOf("close")>-1&&t.close();break;case"Tab":t.opened&&t.modal&&(t._changingFocus=!0);break;case"Enter":case" ":{let a;if(t.shadowRoot||t.isInShadowDOM?(a=e.composedPath()[0],t._buttonPressed=a.getRootNode().host):(a=e.target.closest&&e.target.closest(".smart-button"),t._buttonPressed=a),!a)return;t._isWindowButton(a),delete t._buttonPressed;break}}a()}}),Smart("smart-multiline-prompt-window",class extends Smart.PromptWindow{static get properties(){return{autoCapitalize:{value:"none",allowedValues:["none","words","characters"],type:"string"},autoExpand:{value:!1,type:"boolean"},headerButtons:{value:["close"],type:"array"},horizontalScrollBarVisibility:{type:"string",value:"auto",allowedValues:["auto","disabled","hidden","visible"]},modal:{value:!0,readOnly:!0,type:"boolean",defaultReflectToAttribute:!0},selectionDirection:{value:"none",allowedValues:["forward","backward","none"],type:"string"},selectionEnd:{value:0,reflectToAttribute:!1,type:"number"},selectionStart:{value:0,reflectToAttribute:!1,type:"number"},spellCheck:{value:!1,type:"boolean"},verticalScrollBarVisibility:{type:"string",value:"auto",allowedValues:["auto","disabled","hidden","visible"]},wrap:{value:"soft",allowedValues:["hard","soft","off"],type:"string"}}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content">\n <content></content>\n <smart-multiline-text-box id="textBox"\n animation="[[animation]]"\n horizontal-scroll-bar-visibility= "[[horizontalScrollBarVisibility]]"\n vertical-scroll-bar-visibility= "[[verticalScrollBarVisibility]]"\n auto-capitalize="[[autoCapitalize]]"\n auto-expand = "[[autoExpand]]"\n selection-direction= "[[selectionDirection]]"\n selection-end= "[[selectionEnd]]"\n selection-start="[[selectionStart]]"\n spell-check= "[[spellCheck]]"\n wrap="[[wrap]]"\n max-length="[[maxLength]]"\n value="{{value}}"\n form="[[form]]"\n label="[[promptLabel]]"\n hint="[[hint]]"\n display-mode="[[displayMode]]"\n max-length="[[maxLength]]"\n placeholder="[[placeholder]]"\n required="[[required]]"\n required-message="[[requiredMessage]]"\n select-all-on-focus="[[selectAllOnFocus]]"\n theme="[[theme]]"\n right-to-left="[[rightToLeft]]">\n </smart-multiline-text-box>\n </div>\n <div id="footer" class="smart-footer">\n <button id="confirmButton" class="smart-button smart-element smart-confirm-button flat">[[confirmLabel]]</button>\n <button id="cancelButton" class="smart-button smart-element smart-cancel-button flat">[[cancelLabel]]</button>\n </div>\n </div>\n </div>'}static get listeners(){return{"footer.click":"_footerClickHandler"}}static get requires(){return{"Smart.MultilineTextBox":"smart.multilinetextbox.js"}}_footerClickHandler(e){const t=this,a=e.target;a.closest(".smart-confirm-button")?t.$.fireEvent("confirm",{value:t.$.textBox.value}):a.closest(".smart-cancel-button")&&t.$.fireEvent("cancel",{value:t.$.textBox.value})}}),Smart("smart-progress-window",class extends Smart.Window{static get properties(){return{completeLabel:{value:"Continue",type:"string"},disableSnap:{value:!0,readOnly:!0,type:"boolean"},headerButtons:{value:["close"],type:"array"},indeterminate:{value:!1,type:"boolean"},inverted:{value:!1,type:"boolean"},formatFunction:{value:null,type:"function"},max:{value:100,type:"number"},modal:{value:!0,readOnly:!0,type:"boolean",defaultReflectToAttribute:!0},min:{value:0,type:"number"},showProgressValue:{value:!1,type:"boolean"},value:{value:0,type:"number?"}}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content" inner-h-t-m-l="[[innerHTML]]">\n <content></content>\n </div>\n <div id="footer" class="smart-footer">\n <smart-progress-bar id="progressBar"\n animation="[[animation]]"\n min="[[min]]"\n max="[[max]]"\n indeterminate="[[inditerminate]]"\n inverted="[[inverted]]"\n format-function="[[formatFunction]]"\n show-progress-value="[[showProgressValue]]"\n theme="[[theme]]"\n right-to-left="[[rightToLeft]]"\n value="{{value}}">\n </smart-progress-bar>\n <button id="completeButton" class="smart-button smart-element smart-complete-button smart-visibility-hidden">[[completeLabel]]</button>\n </div>\n </div>\n </div>'}static get requires(){return{"Smart.ProgressBar":"smart.progressbar.js"}}propertyChangedHandler(e,t,a){const i=this;switch(e){case"value":i._handleCompletion();break;default:super.propertyChangedHandler(e,t,a)}}_createElement(){this.setAttribute("role","dialog"),this._handleCompletion()}_handleCompletion(){const e=this;e.$.completeButton&&(e.value>=e.max?(e.$completeButton.removeClass("smart-visibility-hidden"),e.$progressBar.addClass("smart-visibility-hidden")):(e.$completeButton.addClass("smart-visibility-hidden"),e.$progressBar.removeClass("smart-visibility-hidden")))}_keyDownHandler(e){const t=this;function a(){t._dragDetails&&(t._dragDetails.started=!1),t.$.removeClass("no-transition")}if(delete t._changingFocus,t.disabled||t._dragDetails&&t._dragDetails.started)return;if(t.disableKeyboard)return;e.stopPropagation();const i="ArrowDown"===e.key||"ArrowRight"===e.key?10:-10,n=t.enableShadowDOM&&t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;switch(t.$.removeClass("no-transition"),e.key){case"ArrowUp":case"ArrowDown":if(n!==t)return;if(e.preventDefault(),e.altKey)return"ArrowUp"===e.key?t.maximize():t.restore(),void a();if(t.$.addClass("no-transition"),e.ctrlKey)return t._resize("bottom",i),void a();t._drag(i,"vertical"),t.$.removeClass("no-transition");break;case"ArrowLeft":case"ArrowRight":if(n!==t)return;if(e.preventDefault(),t.$.addClass("no-transition"),e.ctrlKey)return t._resize("right",i),void a();t._drag(i,"horizontal"),t.$.removeClass("no-transition");break;case"Escape":t.disableEscape||t.headerButtons.indexOf("close")>-1&&t.close();break;case"Tab":t.opened&&t.modal&&(t._changingFocus=!0);break;case"Enter":case" ":{let a;if(t.shadowRoot||t.isInShadowDOM?(a=e.composedPath()[0],t._buttonPressed=a.getRootNode().host):(a=e.target.closest&&e.target.closest(".smart-button"),t._buttonPressed=a),!a)return;t._isWindowButton(a),delete t._buttonPressed;break}}a()}}),Smart("smart-tabs-window",class extends Smart.Window{static get properties(){return{disableSnap:{value:!0,readOnly:!0,type:"boolean"},dropPosition:{value:["all"],type:"array"},addNewTab:{value:!1,type:"boolean"},allowToggle:{value:!1,type:"boolean"},autoHide:{value:!1,type:"boolean"},autoHideWindow:{value:null,type:"any"},dataSource:{value:null,type:"array?",reflectToAttribute:!1},tabCloseButtonMode:{value:"default",allowedValues:["default","selected"],type:"string"},tabCloseButtons:{value:!1,type:"boolean"},messages:{value:{en:{ambiguousIndexes:"smart-tabs: Initially set smart-tab-item indexes are ambiguous and are ignored in favour of the HTML structure.",detailsObjectRequired:'smart-tabs: The method "insert" requires a details Object to be passed as a second argument.',invalidIndex:'smart-tabs: "{{method}}" method accepts an index of type number.',referenceNodeNotChild:"smart-tabs: Passed {{argument}} is not part of this smart-tabs element.",tabItemRequired:'smart-tabs: The method "{{method}}" requires a "smart-tab-item" element to be passed as an argument.'}},type:"object",extend:!0},tabOverflow:{value:"auto",allowedValues:["auto","hidden","scroll"],type:"string"},tabReorder:{value:!1,type:"boolean"},tabResize:{value:!1,type:"boolean"},tabScrollButtonsPosition:{value:"both",allowedValues:["near","far","both"],type:"string"},selectedIndex:{value:null,type:"number?"},selectionMode:{value:"click",allowedValues:["click","dblclick","mouseenter","none"],type:"string"},collapsed:{value:!1,type:"boolean"},collapsible:{value:!1,type:"boolean"},locked:{value:!1,type:"boolean"},max:{value:"",type:"any"},min:{value:"",type:"any"},size:{value:"",type:"any"},tabLayout:{value:"scroll",allowedValues:["scroll","dropdown","wrap","shrink"],type:"string",defaultReflectToAttribute:!0},tabPosition:{value:"top",allowedValues:["top","bottom","left","right","hidden"],type:"string"},tabTextOrientation:{value:"horizontal",allowedValues:["horizontal","vertical"],type:"string"},layout:{value:null,type:"any"}}}static get listeners(){return{"tabsElement.blur":"_tabsFocusHandler","tabsElement.change":"_tabsChangeHandler","tabsElement.focus":"_tabsFocusHandler","autoHideWindow.close":"_autoHideWindowCloseHandler","autoHideWindow.open":"_autoHideWindowOpenHandler"}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="minimizeButton" class="smart-button smart-element smart-minimize-button" aria-label="Minimize"></button>\n <button id="maximizeButton" class="smart-button smart-element smart-maximize-button" aria-label="Maximize"></button>\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div id="contentSection" class="smart-content">\n <smart-tabs id="tabsElement"\n animation="[[animation]]"\n add-new-tab="[[addNewTab]]"\n allow-toggle="[[allowToggle]]"\n close-button-mode="[[tabCloseButtonMode]]"\n close-buttons="[[tabCloseButtons]]"\n disabled="[[disabled]]"\n overflow="[[tabOverflow]]"\n reorder="[[tabReorder]]"\n resize="[[tabResize]]"\n scroll-buttons-position="[[tabScrollButtonsPosition]]"\n selected-index="{{selectedIndex}}"\n selection-mode="[[selectionMode]]"\n tab-layout="[[tabLayout]]"\n tab-position="[[tabPosition]]"\n tab-text-orientation="[[tabTextOrientation]]"\n theme="[[theme]]"\n right-to-left="[[rightToLeft]]">\n <content></content>\n </smart-tabs>\n </div>\n <div id="footer" class="smart-footer smart-hidden"></div>\n </div>\n </div>'}static get requires(){return{"Smart.Tabs":"smart.tabs.js"}}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.TabItem||t.error(t.localize("tabItemRequired",{method:"removeChild"})),t.$.tabsElement.appendChild(e)):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"appendChild",node:"node"}))}insert(e,t){this.$.tabsElement.insert(e,t);const a=this.$.tabsElement._tabs[e];a&&(a.draggable=void 0===t.draggable||t.draggable,a.floatable=void 0===t.floatable||t.floatable)}insertBefore(e,t){this.$.tabsElement.insertBefore(e,t)}removeAt(e){this.$.tabsElement.removeAt(e)}removeChild(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.removeChild.apply(t,e.concat(Array.prototype.slice.call(arguments)))}e?(e instanceof Smart.TabItem||t.error(t.localize("tabItemRequired",{method:"removeChild"})),(t.shadowRoot||t).contains(e)||t.error(t.localize("referenceNodeNotChild",{argument:"node"})),t.$.tabsElement.removeChild(e)):t.error(t.localize("invalidNode",{elementType:t.nodeName.toLowerCase(),method:"removeChild",node:"node"}))}refreshTabHeader(){const e=this;e.$.tabsElement&&e.$.tabsElement.isCompleted&&e.$.tabsElement.refreshTabHeader()}refreshTabs(){const e=this;e.$.tabsElement&&e.$.tabsElement.isCompleted&&e.$.tabsElement._applyTabOverflow()}select(e){this.$.tabsElement.select(e)}update(e,t,a){this.$.tabsElement.update(e,t,a)}get items(){return this.isCompleted&&this.$.tabsElement?this.$.tabsElement._tabs:null}get itemLabels(){return this.$?this.$.tabsElement._tabLabelContainers:null}get siblings(){const e=this;let t=[];if(!e.isCompleted)return t;const a=e.closest("smart-splitter");if(!a||!a.closest("smart-docking-layout"))return t;const i=a._items;if(!i||!i.length)return t;for(let n=0;n<i.length;n++){const o=i[n];o!==e.closest("smart-splitter-item")&&o.querySelector("smart-tabs-window").closest("smart-splitter")===a&&t.push(o.querySelector("smart-tabs-window"))}return t}propertyChangedHandler(e,t,a){const i=this;switch("collapsed"!==e&&super.propertyChangedHandler(e,t,a),e){case"theme":""!==t&&(i.$.closeButton.classList.remove(t),i.$.collapseButton.classList.remove(t),i.$.maximizeButton.classList.remove(t),i.$.pinButton.classList.remove(t)),i._applyTheme(a);break;case"autoHideWindow":i._handleAutoHideWindow();break;case"autoHide":a||(null!==i.$.tabsElement.selectedIndex&&(i.$.tabsElement._tabs[i.$.tabsElement.selectedIndex]._autoHideWindowSize=void 0),i._autoHideWindow&&i._autoHideWindow.close());break;case"dataSource":i.$.tabsElement.dataSource=a;break;case"layout":i._handleLayoutProperty();break;case"collapsible":case"collapsed":case"locked":case"max":case"min":case"size":{const n=i.getRootNode(),o=(n&&n.host?n.host:i).closest("smart-docking-layout"),s=i.closest("smart-splitter-item");if(!o)return void("collapsed"===e&&super.propertyChangedHandler(e,t,a));s&&(s[e]=a);break}}}_applyTheme(e){if(""!==e){const t=this.$.buttonsContainer.children;for(let a=0;a<t.length;a++)t[a].classList.add(e)}}_autoHideWindowCloseHandler(){const e=this;e.allowToggle&&null!==e.$.tabsElement.selectedIndex&&e.$.tabsElement.select(e.$.tabsElement.selectedIndex),e._autoHideWindow&&e._moveContent(e._autoHideWindow.items[0],e._autoHideWindow._tab)}_autoHideWindowOpenHandler(){const e=this;e.$.tabsElement.selectedIndex&&e._handleAutoHide(e.$.tabsElement.selectedIndex)}_createElement(){const e=this;e.setAttribute("role","dialog"),e.$.tabsElement.$.tabHeaderControls&&!e.$.tabsElement.$.tabHeaderControls.innerHTML&&e.$.tabsElement.$tabHeaderControls.addClass("smart-hidden"),e.$.tabsElement.dataSource=e.dataSource,e._applyTheme(e.theme),e._handleAutoHideWindow(),e.autoHide&&e._handleAutoHide(e.$.tabsElement.selectedIndex),e.allowToggle||e.selectedIndex||null===e.$.tabsElement.selectedIndex||(e.selectedIndex=e.$.tabsElement.selectedIndex,e.$.tabsElement.setAttribute("selected-index",e.selectedIndex)),e._handleLayoutProperty();const t=(e.isInShadowDOM?e.getRootNode().host:e||e).closest("smart-docking-layout"),a=e.closest("smart-splitter-item");t&&a&&(a.collapsible=e.collapsible,a.collapsed=e.collapsed,a.min=e.min,a.max=e.max,a.size=e.size,a.locked=e.locked)}attached(){super.attached();const e=this;e.classList.add("smart-window"),e.shadowRoot&&e.$.root.classList.add("smart-window")}_handleLayoutProperty(){const e=this;let t=e.closest("smart-docking-layout");if(Smart.DockingLayout){if(!e.ownerLayout&&e.getRootNode()){let a=e.getRootNode().host;for(;a;){if(!a.closest)return;if(a.closest("smart-docking-layout")){t=a.closest("smart-docking-layout");break}a=a.getRootNode()?a.getRootNode().host:void 0}}t?e.layout=t:e.layout instanceof Smart.DockingLayout||"string"==typeof e.layout&&(e.layout=document.getElementById(e.layout))}}_headerDblCickHandler(e){const t=this,a=t.shadowRoot||t.isInShadowDOM?e.originalEvent.composedPath()[0]:e.originalEvent.target;e.ctrlKey||a!==t.$.headerSection&&a!==t.$.header||t.$.maximizeButton&&0===t.$.maximizeButton.offsetHeight||(t.maximized?t.restore():t.maximize())}_documentUpHandler(e){const t=this;let a=e.originalEvent.target.closest?e.originalEvent.target.closest(".smart-window"):e.originalEvent.target,i=a===t||a===t._autoHideWindow||t._isAutoHideWindowClicked,n=t.closest("smart-docking-layout");(t.shadowRoot||t.isInShadowDOM)&&(a=e.originalEvent.composedPath()[0],i=a.getRootNode()===t.shadowRoot||a.closest(".smart-window")===t||a.closest(".smart-window")===t._autoHideWindow||t._isAutoHideWindowClicked),n=((t.isInShadowDOM?t.getRootNode().host:t)||t).closest("smart-docking-layout"),n&&n.disabled?delete t._isWindowContentClicked:(super._documentUpHandler(e),delete t._isAutoHideWindowClicked,t.autoHide&&t._autoHideWindow&&(i&&t._autoHideWindow.opened||(t.selectedIndex=null,t._autoHideWindow.parentElement&&t._autoHideWindow.parentElement.closest(".smart-window")===t&&t._autoHideWindow.close())))}_handleAutoHide(e){const t=this;if(!t.autoHide||null===e)return;if(t._autoHideWindow||t._handleAutoHideWindow(!0),!t._autoHideWindow)return;t._autoHideWindow._tabsWindow&&t._autoHideWindow._tabsWindow!==t&&(t._autoHideWindow._tabsWindow.selectedIndex=null);const a=t.$.tabsElement._tabs[e];t._autoHideWindow._tab!==a&&t._moveContent(t._autoHideWindow.items[0],t._autoHideWindow._tab),t._autoHideWindow.label=a.label,t._autoHideWindow.draggable=a.draggable,t._autoHideWindow.floatable=a.floatable,t._autoHideWindow._tab=a,t._autoHideWindow.headerButtons=t.headerButtons,t._moveContent(t._autoHideWindow._tab,t._autoHideWindow.items[0]),t._autoHideWindow.bringToFront(),t._setAutoHideWindowSize(e),t._autoHideWindow.open(),t._autoHideWindow._tabsWindow=t,t._autoHideWindow.controlledBy&&t._autoHideWindow.controlledBy.removeAttribute("aria-controls"),t._autoHideWindow.controlledBy=t.$.tabsElement._tabLabelContainers[e],t._autoHideWindow.controlledBy.setAttribute("aria-controls",t._autoHideWindow.id)}_moveHandler(e){const t=this,a=t.closest("smart-docking-layout");a&&a.items.indexOf(t)>-1||(Smart.Utilities.Core.isMobile&&navigator.platform&&/iPad|iPhone|iPod/.test(navigator.platform)&&t.layout instanceof Smart.DockingLayout&&t.layout.hasAttribute("dragged")&&e.originalEvent.preventDefault(),super._moveHandler(e))}_setAutoHideWindowSize(e){const t=this;if(!t._autoHideWindow)return;t._autoHideWindow.$.addClass("no-transition"),t._autoHideWindow.style.maxWidth=t._autoHideWindow.style.maxHeight="";const a=t.$.tabsElement._tabs[e],i=(t._autoHideWindow.isInShadowDOM?t._autoHideWindow.getRootNode().host:t._autoHideWindow).closest("smart-docking-layout")||t._autoHideWindow.parentElement;let n,o;if(a){if("top"===t.tabPosition||"bottom"===t.tabPosition){t._autoHideWindow.resizeMode="top"===t.tabPosition?"bottom":"top",t._autoHideWindow.style.width=t.$.tabsElement.offsetWidth+"px",n=i.getBoundingClientRect(),o=t.$.tabsElement.getBoundingClientRect();let e=a._autoHideWindowSize&&parseFloat(a._autoHideWindowSize)||"";Smart.DockingLayout&&i instanceof Smart.DockingLayout&&(e&&(e=Math.min(i.$.itemsContainer.offsetHeight,e)+"px"),t._autoHideWindow.style.maxHeight=i.$.itemsContainer.offsetHeight+"px"),t._autoHideWindow.style.height=e,t._autoHideWindow.style.left=o.left-n.left+"px",t._autoHideWindow&&("top"===t.tabPosition?t._autoHideWindow.style.top=o.top+-n.top+o.height+"px":t._autoHideWindow.style.top=o.top-n.top-t._autoHideWindow.offsetHeight+"px")}else{t._autoHideWindow.resizeMode="left"===t.tabPosition?"right":"left",t._autoHideWindow.style.height=t.$.tabsElement.offsetHeight+"px";let e=a._autoHideWindowSize&&parseFloat(a._autoHideWindowSize)||"";i instanceof Smart.DockingLayout&&(e&&(e=Math.min(i.$.itemsContainer.offsetWidth,e)+"px"),t._autoHideWindow.style.maxWidth=i.$.itemsContainer.offsetWidth+"px"),t._autoHideWindow.style.width=e,n=i.getBoundingClientRect(),o=t.$.tabsElement.getBoundingClientRect(),t._autoHideWindow.style.top=o.top-n.top+"px","left"===t.tabPosition?t._autoHideWindow.style.left=o.left-n.left+t.$.tabsElement.offsetWidth+"px":t._autoHideWindow.style.left=o.left-n.left-t._autoHideWindow.offsetWidth+"px"}t._autoHideWindow._dragDetails&&(t._autoHideWindow._dragDetails.maxWidth=void 0),t._autoHideWindow._setDragDetails("resize"),t._autoHideWindow._dragDetails.started=!1,t._autoHideWindow.$.removeClass("no-transition")}}_handleAutoHideWindow(e){const t=this;if(t.autoHideWindow){if(t._autoHideWindow&&t._autoHideWindow.parentElement.removeChild(t._autoHideWindow),"string"==typeof t.autoHideWindow)return void(t._autoHideWindow=document.getElementById(t.autoHideWindow));if(t.autoHideWindow instanceof Smart.Window)return void(t._autoHideWindow=t.autoHideWindow)}if(!e||t._autoHideWindow||2===t.$.contentSection.children.length&&t.$.contentSection.children[1]instanceof Smart.Window)return;const a=document.createElement("smart-window");a.$=Smart.Utilities.Extend(a),a.disableSnap=a.pinned=!0,a.headerButtons=["close"],t.$.contentSection.appendChild(a),t._autoHideWindow=a}_moveContent(e,t){if(!e||!t)return;const a=[].slice.call(e.$.content.childNodes);for(let e=0;e<a.length;e++)t.appendChild(a[e])}_tabsChangeHandler(e){const t=this;if(e.target===t.$.tabsElement&&t.autoHide){if(t._autoHideWindow||t._handleAutoHideWindow(!0),null!==e.detail.oldIndex&&t._autoHideWindow.opened&&(t.$.tabsElement._tabs[e.detail.oldIndex]._autoHideWindowSize=t._autoHideWindow.style["right"===t.$.tabsElement.tabPosition||"left"===t.$.tabsElement.tabPosition?"width":"height"]),!t.autoHide||null===e.detail.index||void 0===e.detail.index)return t._autoHideWindow.setAttribute("active",""),void t._autoHideWindow.close();t._handleAutoHide(e.detail.index)}}_tabsFocusHandler(e){const t=this;"focus"===e.type?(t.bringToFront(),t.setAttribute("focus","")):t.removeAttribute("focus")}}),Smart("smart-wait-window",class extends Smart.ProgressWindow{static get properties(){return{headerButtons:{value:[],type:"array"},disableSnap:{value:!0,readOnly:!0,type:"boolean"},modal:{value:!0,readOnly:!0,type:"boolean",defaultReflectToAttribute:!0},pinned:{value:!0,type:"boolean",readOnly:!0}}}template(){return'<div role="presentation">\n <div class="smart-content-container" id="container">\n <div id="headerSection" class="smart-header-section" role="heading" aria-level="1">\n <div id="header" class="smart-header">[[label]]</div>\n <div id="buttonsContainer" class="smart-buttons-container">\n <button id="closeButton" class="smart-button smart-element smart-close-button" aria-label="Close"></button>\n </div>\n </div>\n <div class="smart-content">\n <content></content>\n <smart-progress-bar id="progressBar" animation="[[animation]]" indeterminate theme="[[theme]]" right-to-left="[[rightToLeft]]"></smart-progress-bar>\n </div>\n <div id="footer" class="smart-footer"></div>\n </div>\n </div>'}_keyDownHandler(e){const t=this;function a(){t._dragDetails&&(t._dragDetails.started=!1),t.$.removeClass("no-transition")}if(delete t._changingFocus,t.disabled||t._dragDetails&&t._dragDetails.started)return;const i=t.shadowRoot||t._windowParent.element.getRootNode()?t._windowParent.element.getRootNode().activeElement:document.activeElement;e.stopPropagation();const n="ArrowDown"===e.key||"ArrowRight"===e.key?10:-10;switch(t.$.removeClass("no-transition"),e.key){case"ArrowUp":case"ArrowDown":if(i!==t)return;if(e.preventDefault(),e.altKey)return"ArrowUp"===e.key?t.maximize():t.restore(),void a();if(t.$.addClass("no-transition"),e.ctrlKey)return t._resize("bottom",n),void a();t._drag(n,"vertical");break;case"ArrowLeft":case"ArrowRight":if(i!==t)return;if(e.preventDefault(),t.$.addClass("no-transition"),e.ctrlKey)return t._resize("right",n),void a();t._drag(n,"horizontal");break;case"Tab":t.opened&&t.modal&&(t._changingFocus=!0);break;case"Enter":case" ":{let a;if(t.shadowRoot||t.isInShadowDOM?(a=e.composedPath()[0],t._buttonPressed=a.getRootNode().host):(a=e.target.closest&&e.target.closest(".smart-button"),t._buttonPressed=a),!a)return;t._isWindowButton(a),delete t._buttonPressed;break}}a()}});
56
56
 
57
57
  /***/ })
58
58
 
@@ -133,7 +133,7 @@ var __webpack_exports__ = {};
133
133
  /* harmony import */ var _smart_dockinglayout_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6621);
134
134
  /* harmony import */ var _smart_dockinglayout_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_smart_dockinglayout_js__WEBPACK_IMPORTED_MODULE_6__);
135
135
 
136
- /* Smart UI v13.1.1 (2022-03-23)
136
+ /* Smart UI v13.1.26 (2022-04-05)
137
137
  Copyright (c) 2011-2021 jQWidgets.
138
138
  License: https://htmlelements.com/license/ */ //
139
139