@jimka/typescript-ui 0.3.0 → 0.4.1

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 (238) hide show
  1. package/dist/lib/{AbstractBooleanInput-C3O4kv7_.js → AbstractBooleanInput-DE5NNJT0.js} +2 -2
  2. package/dist/lib/{AbstractBooleanInput-C3O4kv7_.js.map → AbstractBooleanInput-DE5NNJT0.js.map} +1 -1
  3. package/dist/lib/{AbstractInput-DFWniHqq.js → AbstractInput-BxfrmD2W.js} +2 -2
  4. package/dist/lib/{AbstractInput-DFWniHqq.js.map → AbstractInput-BxfrmD2W.js.map} +1 -1
  5. package/dist/lib/{AnchorConstraints-CSUcj8Wx.js → AnchorConstraints-DdDYSDkf.js} +2 -2
  6. package/dist/lib/{AnchorConstraints-CSUcj8Wx.js.map → AnchorConstraints-DdDYSDkf.js.map} +1 -1
  7. package/dist/lib/{AnimatedDropdown-e9urCXK1.js → AnimatedDropdown-QLNasu_Y.js} +2 -2
  8. package/dist/lib/{AnimatedDropdown-e9urCXK1.js.map → AnimatedDropdown-QLNasu_Y.js.map} +1 -1
  9. package/dist/lib/Border-CKKUk5G9.js +2 -0
  10. package/dist/lib/Border-CKKUk5G9.js.map +1 -0
  11. package/dist/lib/Button-MZDYJOMC.js +2 -0
  12. package/dist/lib/{Button-B36rBMKC.js.map → Button-MZDYJOMC.js.map} +1 -1
  13. package/dist/lib/{Card-P8iUH2-C.js → Card-a4dzYrbX.js} +2 -2
  14. package/dist/lib/{Card-P8iUH2-C.js.map → Card-a4dzYrbX.js.map} +1 -1
  15. package/dist/lib/ComboBox-C04SfXAR.js +2 -0
  16. package/dist/lib/ComboBox-C04SfXAR.js.map +1 -0
  17. package/dist/lib/Component-fRQvgaEY.js +2 -0
  18. package/dist/lib/Component-fRQvgaEY.js.map +1 -0
  19. package/dist/lib/Container-0bsG2Q8Z.js +2 -0
  20. package/dist/lib/{Container-xUbHk6l_.js.map → Container-0bsG2Q8Z.js.map} +1 -1
  21. package/dist/lib/{DOM-BeR95tE8.js → DOM-67StIm5G.js} +2 -2
  22. package/dist/lib/DOM-67StIm5G.js.map +1 -0
  23. package/dist/lib/DragChain-CYGuT7OA.js +2 -0
  24. package/dist/lib/DragChain-CYGuT7OA.js.map +1 -0
  25. package/dist/lib/DragManager-DRor_-1x.js +2 -0
  26. package/dist/lib/DragManager-DRor_-1x.js.map +1 -0
  27. package/dist/lib/{FieldDecorator-BaTGfKiW.js → FieldDecorator-Bpx8J8n9.js} +2 -2
  28. package/dist/lib/{FieldDecorator-BaTGfKiW.js.map → FieldDecorator-Bpx8J8n9.js.map} +1 -1
  29. package/dist/lib/{Fit-E-EIZv1k.js → Fit-CL1m1nIZ.js} +2 -2
  30. package/dist/lib/{Fit-E-EIZv1k.js.map → Fit-CL1m1nIZ.js.map} +1 -1
  31. package/dist/lib/Glyph-wN7bk7mg.js +2 -0
  32. package/dist/lib/Glyph-wN7bk7mg.js.map +1 -0
  33. package/dist/lib/{Grid-BXS2T8MT.js → Grid-DHHmaB-Y.js} +2 -2
  34. package/dist/lib/{Grid-BXS2T8MT.js.map → Grid-DHHmaB-Y.js.map} +1 -1
  35. package/dist/lib/GridConstraints-DVc1BmlP.js +2 -0
  36. package/dist/lib/GridConstraints-DVc1BmlP.js.map +1 -0
  37. package/dist/lib/Header-2hKwQo_u.js +2 -0
  38. package/dist/lib/Header-2hKwQo_u.js.map +1 -0
  39. package/dist/lib/IconText-DC7Xe34b.js +2 -0
  40. package/dist/lib/IconText-DC7Xe34b.js.map +1 -0
  41. package/dist/lib/LayoutConstraints-LIHYYd2F.js +2 -0
  42. package/dist/lib/LayoutConstraints-LIHYYd2F.js.map +1 -0
  43. package/dist/lib/{LayoutSerialization-D1OHmxSB.js → LayoutSerialization-D5bBas4W.js} +2 -2
  44. package/dist/lib/{LayoutSerialization-D1OHmxSB.js.map → LayoutSerialization-D5bBas4W.js.map} +1 -1
  45. package/dist/lib/LayoutSizes-qNaURyiw.js +2 -0
  46. package/dist/lib/LayoutSizes-qNaURyiw.js.map +1 -0
  47. package/dist/lib/List-CG4NvwuV.js +2 -0
  48. package/dist/lib/List-CG4NvwuV.js.map +1 -0
  49. package/dist/lib/MemoryStore-DT6iWWco.js.map +1 -1
  50. package/dist/lib/Menu-CrZy2u0g.js +2 -0
  51. package/dist/lib/Menu-CrZy2u0g.js.map +1 -0
  52. package/dist/lib/MenuButton-wy_0RskC.js +2 -0
  53. package/dist/lib/MenuButton-wy_0RskC.js.map +1 -0
  54. package/dist/lib/{Panel-D9lTLGqP.js → Panel-Rd9zkNXx.js} +2 -2
  55. package/dist/lib/{Panel-D9lTLGqP.js.map → Panel-Rd9zkNXx.js.map} +1 -1
  56. package/dist/lib/Position-Ck_KD4cR.js +2 -0
  57. package/dist/lib/Position-Ck_KD4cR.js.map +1 -0
  58. package/dist/lib/{ProgressSpinner-glv-29eK.js → ProgressSpinner-yt-VXyCb.js} +2 -2
  59. package/dist/lib/{ProgressSpinner-glv-29eK.js.map → ProgressSpinner-yt-VXyCb.js.map} +1 -1
  60. package/dist/lib/{RadioButton-R4S3c9WD.js → RadioButton-D23rId-V.js} +2 -2
  61. package/dist/lib/{RadioButton-R4S3c9WD.js.map → RadioButton-D23rId-V.js.map} +1 -1
  62. package/dist/lib/{RovingTabIndex-Dgt01LOE.js → RovingTabIndex-DFJyoveq.js} +2 -2
  63. package/dist/lib/{RovingTabIndex-Dgt01LOE.js.map → RovingTabIndex-DFJyoveq.js.map} +1 -1
  64. package/dist/lib/Scrollbar-SOj9psiP.js +2 -0
  65. package/dist/lib/Scrollbar-SOj9psiP.js.map +1 -0
  66. package/dist/lib/Slider-DBnAZ-F7.js +2 -0
  67. package/dist/lib/Slider-DBnAZ-F7.js.map +1 -0
  68. package/dist/lib/{Spacer-B57i2-_G.js → Spacer-qalSEJ5i.js} +2 -2
  69. package/dist/lib/{Spacer-B57i2-_G.js.map → Spacer-qalSEJ5i.js.map} +1 -1
  70. package/dist/lib/TabButton-DKECTTk1.js +2 -0
  71. package/dist/lib/TabButton-DKECTTk1.js.map +1 -0
  72. package/dist/lib/{Text-Bni4icFY.js → Text-KB5LksJl.js} +2 -2
  73. package/dist/lib/{Text-Bni4icFY.js.map → Text-KB5LksJl.js.map} +1 -1
  74. package/dist/lib/Tooltip-Dro4DOZs.js +3 -0
  75. package/dist/lib/{Tooltip-BUy6uFKN.js.map → Tooltip-Dro4DOZs.js.map} +1 -1
  76. package/dist/lib/VBox-P3WFGkPc.js +2 -0
  77. package/dist/lib/VBox-P3WFGkPc.js.map +1 -0
  78. package/dist/lib/VirtualScroller-Bv4KXGKW.js +2 -0
  79. package/dist/lib/VirtualScroller-Bv4KXGKW.js.map +1 -0
  80. package/dist/lib/component/button.es.js +1 -1
  81. package/dist/lib/component/button.es.js.map +1 -1
  82. package/dist/lib/component/chart.es.js +1 -1
  83. package/dist/lib/component/chart.es.js.map +1 -1
  84. package/dist/lib/component/container.es.js +1 -1
  85. package/dist/lib/component/container.es.js.map +1 -1
  86. package/dist/lib/component/diagram.es.js +1 -1
  87. package/dist/lib/component/diagram.es.js.map +1 -1
  88. package/dist/lib/component/display.es.js +1 -1
  89. package/dist/lib/component/display.es.js.map +1 -1
  90. package/dist/lib/component/editor.es.js +2 -2
  91. package/dist/lib/component/editor.es.js.map +1 -1
  92. package/dist/lib/component/input.es.js +1 -1
  93. package/dist/lib/component/input.es.js.map +1 -1
  94. package/dist/lib/component/list.es.js +1 -1
  95. package/dist/lib/component/list.es.js.map +1 -1
  96. package/dist/lib/component/menubar.es.js +1 -1
  97. package/dist/lib/component/menubar.es.js.map +1 -1
  98. package/dist/lib/component/table.es.js +2 -2
  99. package/dist/lib/component/table.es.js.map +1 -1
  100. package/dist/lib/component/tree.es.js +1 -1
  101. package/dist/lib/component/tree.es.js.map +1 -1
  102. package/dist/lib/core.es.js +1 -1
  103. package/dist/lib/core.es.js.map +1 -1
  104. package/dist/lib/layout.es.js +1 -1
  105. package/dist/lib/layout.es.js.map +1 -1
  106. package/dist/lib/overlay.es.js +1 -1
  107. package/dist/lib/overlay.es.js.map +1 -1
  108. package/dist/lib/primitive.es.js +1 -1
  109. package/dist/lib/router.es.js +1 -1
  110. package/dist/lib/selectionsEqual-Ci3_uflt.js +2 -0
  111. package/dist/lib/selectionsEqual-Ci3_uflt.js.map +1 -0
  112. package/dist/lib/types/component/button/MenuButton.d.ts +1 -0
  113. package/dist/lib/types/component/button/SplitButton.d.ts +1 -0
  114. package/dist/lib/types/component/button/TabButton.d.ts +1 -0
  115. package/dist/lib/types/component/button/TabCloseButton.d.ts +1 -1
  116. package/dist/lib/types/component/chart/ChartLegend.d.ts +0 -1
  117. package/dist/lib/types/component/container/CollapseButton.d.ts +0 -1
  118. package/dist/lib/types/component/container/DialogBackdrop.d.ts +1 -1
  119. package/dist/lib/types/component/container/MenuItem.d.ts +4 -0
  120. package/dist/lib/types/component/container/MenuSeparator.d.ts +1 -1
  121. package/dist/lib/types/component/container/Scrollbar.d.ts +1 -0
  122. package/dist/lib/types/component/container/SplitGutter.d.ts +2 -2
  123. package/dist/lib/types/component/container/StatusBar.d.ts +1 -1
  124. package/dist/lib/types/component/container/TabPanel.d.ts +3 -0
  125. package/dist/lib/types/component/container/VirtualScroller.d.ts +1 -0
  126. package/dist/lib/types/component/container/WindowBorder.d.ts +1 -1
  127. package/dist/lib/types/component/diagram/DiagramNode.d.ts +1 -1
  128. package/dist/lib/types/component/display/Canvas.d.ts +8 -2
  129. package/dist/lib/types/component/display/Glyph.d.ts +2 -1
  130. package/dist/lib/types/component/display/Header.d.ts +1 -1
  131. package/dist/lib/types/component/display/IconLabel.d.ts +1 -1
  132. package/dist/lib/types/component/display/IconText.d.ts +1 -1
  133. package/dist/lib/types/component/display/Image.d.ts +1 -1
  134. package/dist/lib/types/component/display/Video.d.ts +1 -1
  135. package/dist/lib/types/component/display/WebGLCanvas.d.ts +8 -2
  136. package/dist/lib/types/component/editor/CodeEditor.d.ts +1 -1
  137. package/dist/lib/types/component/input/AbstractPickerField.d.ts +1 -1
  138. package/dist/lib/types/component/input/AutoCompleteDropdown.d.ts +1 -1
  139. package/dist/lib/types/component/input/Link.d.ts +1 -2
  140. package/dist/lib/types/component/input/NumberSpinner.d.ts +1 -1
  141. package/dist/lib/types/component/input/PasswordField.d.ts +1 -1
  142. package/dist/lib/types/component/input/SpinButton.d.ts +1 -1
  143. package/dist/lib/types/component/input/TextArea.d.ts +1 -1
  144. package/dist/lib/types/component/input/TextField.d.ts +3 -1
  145. package/dist/lib/types/component/input/UsernameField.d.ts +1 -1
  146. package/dist/lib/types/component/list/AbstractMarkerList.d.ts +9 -1
  147. package/dist/lib/types/component/list/BulletedList.d.ts +1 -0
  148. package/dist/lib/types/component/list/ListItem.d.ts +10 -4
  149. package/dist/lib/types/component/list/NumberedList.d.ts +1 -0
  150. package/dist/lib/types/component/menubar/MenuBar.d.ts +1 -0
  151. package/dist/lib/types/component/menubar/MenuBarButton.d.ts +1 -2
  152. package/dist/lib/types/component/menubar/ToolBar.d.ts +2 -1
  153. package/dist/lib/types/component/menubar/ToolBarSeparator.d.ts +1 -1
  154. package/dist/lib/types/component/shared/VirtualRowView.d.ts +13 -1
  155. package/dist/lib/types/component/table/Body.d.ts +15 -2
  156. package/dist/lib/types/component/table/CellGeometry.d.ts +6 -0
  157. package/dist/lib/types/component/table/Column.d.ts +4 -0
  158. package/dist/lib/types/component/table/ColumnConfig.d.ts +3 -0
  159. package/dist/lib/types/component/table/Header.d.ts +24 -2
  160. package/dist/lib/types/component/table/Row.d.ts +13 -2
  161. package/dist/lib/types/component/table/Table.d.ts +26 -4
  162. package/dist/lib/types/component/table/TableExporter.d.ts +1 -1
  163. package/dist/lib/types/component/table/TablePanel.d.ts +2 -1
  164. package/dist/lib/types/component/table/cell/Cell.d.ts +1 -1
  165. package/dist/lib/types/component/table/cell/Header.d.ts +3 -0
  166. package/dist/lib/types/component/table/index.d.ts +1 -1
  167. package/dist/lib/types/component/tree/Tree.d.ts +1 -0
  168. package/dist/lib/types/core/Aria.d.ts +1 -1
  169. package/dist/lib/types/core/Body.d.ts +8 -2
  170. package/dist/lib/types/core/BorderWidths.d.ts +12 -0
  171. package/dist/lib/types/core/Component.d.ts +7 -0
  172. package/dist/lib/types/core/DOM.d.ts +4 -0
  173. package/dist/lib/types/core/DragChain.d.ts +3 -0
  174. package/dist/lib/types/core/Event.d.ts +2 -0
  175. package/dist/lib/types/core/Favicon.d.ts +7 -0
  176. package/dist/lib/types/core/FirstLayoutGate.d.ts +5 -0
  177. package/dist/lib/types/core/Theme.d.ts +1 -0
  178. package/dist/lib/types/core/Util.d.ts +1 -0
  179. package/dist/lib/types/core/index.d.ts +2 -0
  180. package/dist/lib/types/layout/Accordion.d.ts +0 -1
  181. package/dist/lib/types/layout/FlowLayout.d.ts +4 -0
  182. package/dist/lib/types/layout/HFlow.d.ts +3 -0
  183. package/dist/lib/types/layout/LayoutConstraints.d.ts +1 -0
  184. package/dist/lib/types/layout/LayoutSerialization.d.ts +3 -0
  185. package/dist/lib/types/layout/VFlow.d.ts +1 -0
  186. package/dist/lib/types/overlay/AbstractWindow.d.ts +1 -1
  187. package/dist/lib/types/overlay/Dock.d.ts +2 -0
  188. package/dist/lib/types/overlay/DropZoneOverlay.d.ts +1 -0
  189. package/dist/lib/types/overlay/Popover.d.ts +1 -1
  190. package/dist/lib/validation.es.js +1 -1
  191. package/llms.txt +1 -0
  192. package/package.json +2 -2
  193. package/dist/lib/Border-Dq6dXkmS.js +0 -2
  194. package/dist/lib/Border-Dq6dXkmS.js.map +0 -1
  195. package/dist/lib/Button-B36rBMKC.js +0 -2
  196. package/dist/lib/ComboBox-BjAhXXkY.js +0 -2
  197. package/dist/lib/ComboBox-BjAhXXkY.js.map +0 -1
  198. package/dist/lib/Component-CHTzJxEf.js +0 -2
  199. package/dist/lib/Component-CHTzJxEf.js.map +0 -1
  200. package/dist/lib/Container-xUbHk6l_.js +0 -2
  201. package/dist/lib/DOM-BeR95tE8.js.map +0 -1
  202. package/dist/lib/DragManager-T5Oljd0F.js +0 -2
  203. package/dist/lib/DragManager-T5Oljd0F.js.map +0 -1
  204. package/dist/lib/Glyph-CnNslL95.js +0 -2
  205. package/dist/lib/Glyph-CnNslL95.js.map +0 -1
  206. package/dist/lib/GridConstraints-D_kbd-h2.js +0 -2
  207. package/dist/lib/GridConstraints-D_kbd-h2.js.map +0 -1
  208. package/dist/lib/HBox-Dm3xgsDE.js +0 -2
  209. package/dist/lib/HBox-Dm3xgsDE.js.map +0 -1
  210. package/dist/lib/Header-CqFc2OUx.js +0 -2
  211. package/dist/lib/Header-CqFc2OUx.js.map +0 -1
  212. package/dist/lib/IconText-CTM2r0Tv.js +0 -2
  213. package/dist/lib/IconText-CTM2r0Tv.js.map +0 -1
  214. package/dist/lib/LayoutConstraints-DkctJZXB.js +0 -2
  215. package/dist/lib/LayoutConstraints-DkctJZXB.js.map +0 -1
  216. package/dist/lib/LayoutSizes-CvMmMgHJ.js +0 -2
  217. package/dist/lib/LayoutSizes-CvMmMgHJ.js.map +0 -1
  218. package/dist/lib/List-DHeOPAK2.js +0 -2
  219. package/dist/lib/List-DHeOPAK2.js.map +0 -1
  220. package/dist/lib/Menu-B6ippw-p.js +0 -2
  221. package/dist/lib/Menu-B6ippw-p.js.map +0 -1
  222. package/dist/lib/MenuButton-Bjm1OyB-.js +0 -2
  223. package/dist/lib/MenuButton-Bjm1OyB-.js.map +0 -1
  224. package/dist/lib/Position-DRSlWn4Z.js +0 -2
  225. package/dist/lib/Position-DRSlWn4Z.js.map +0 -1
  226. package/dist/lib/Scrollbar-CiVV3axj.js +0 -2
  227. package/dist/lib/Scrollbar-CiVV3axj.js.map +0 -1
  228. package/dist/lib/Slider-_JVvuQ8M.js +0 -2
  229. package/dist/lib/Slider-_JVvuQ8M.js.map +0 -1
  230. package/dist/lib/TabButton-DEypdlZf.js +0 -2
  231. package/dist/lib/TabButton-DEypdlZf.js.map +0 -1
  232. package/dist/lib/Tooltip-BUy6uFKN.js +0 -3
  233. package/dist/lib/VBox-Dr7Ge9M6.js +0 -2
  234. package/dist/lib/VBox-Dr7Ge9M6.js.map +0 -1
  235. package/dist/lib/VirtualScroller-BPy6KmSX.js +0 -2
  236. package/dist/lib/VirtualScroller-BPy6KmSX.js.map +0 -1
  237. package/dist/lib/selectionsEqual-2PJrcimg.js +0 -2
  238. package/dist/lib/selectionsEqual-2PJrcimg.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{t as e}from"./DOM-BeR95tE8.js";import{a as t,l as n,t as r}from"./Position-DRSlWn4Z.js";import{d as i,m as a,p as o,t as s}from"./Component-CHTzJxEf.js";import{t as c}from"./ListenerBag-WPdKuuds.js";import{t as l}from"./Container-xUbHk6l_.js";import{a as u}from"./Tooltip-BUy6uFKN.js";import{d,i as f,l as p,n as m,o as h,r as g,t as _}from"./LayoutSizes-CvMmMgHJ.js";import{i as v,n as y}from"./Border-Dq6dXkmS.js";import{t as b}from"./LayoutConstraints-DkctJZXB.js";import{n as x,r as S,t as C}from"./DragManager-T5Oljd0F.js";var w=4,T=1,Split=class extends i{_orientation=`horizontal`;_sizes=new Map;_gutters=[];_collapsed=new Map;_weights=new Map;_pendingCollapsed=[];_listeners=new c;_pendingSizes=null;_dragOriginPointer=0;_dragOriginLhsSize=0;_dragOriginRhsSize=0;_lastAvailableMain=0;_collapseAnimation=null;_pendingCollapseTransitions=[];constructor(e){super(),e&&this.applyOptions(e)}applyOptions(e){if(super.applyOptions(e),e.orientation!==void 0&&this.setOrientation(e.orientation),e.collapsedPanes!==void 0&&(this._pendingCollapsed=[...e.collapsedPanes]),e.paneSizes!==void 0&&(this._pendingSizes=e.paneSizes.map(e=>({...e}))),e.listeners!==void 0){let t=e.listeners;for(let e of Object.keys(t)){let n=t[e];n!==void 0&&this.on(e,n)}}}on(e,t){return this._listeners.add(e,t),this}off(e,t){return this._listeners.remove(e,t),this}emit(e,...t){this._listeners.fire(e,...t)}isPaneCollapsed(e){let t=this.getContainer();if(!t)return!1;let n=t.getLaidOutComponents()[e];return n?this._collapsed.get(n)??!1:!1}collapsesTowardStart(e){return e===`west`||e===`north`}paneDirection(e){return this.getLayoutConstraints(e)?.collapseDirection??(this._orientation===`horizontal`?`west`:`north`)}paneCollapsible(e){return this.getLayoutConstraints(e)?.collapsible!==!1}gutterTargetPane(e,t){let n=t[e+1];if(n&&this.paneCollapsible(n)&&!this.collapsesTowardStart(this.paneDirection(n)))return e+1;let r=t[e];return r&&this.paneCollapsible(r)&&this.collapsesTowardStart(this.paneDirection(r))?e:-1}paneServingGutter(e,t){let n=this.paneDirection(t[e]);return this.collapsesTowardStart(n)?e<t.length-1&&this.gutterTargetPane(e,t)===e?e:-1:e>0&&this.gutterTargetPane(e-1,t)===e?e-1:-1}setPaneCollapsed(e,t){let n=this.getContainer();if(!n)return this;let r=n.getLaidOutComponents(),i=r[e];if(!i||this.paneServingGutter(e,r)<0||(this._collapsed.get(i)??!1)===t)return this;this._collapsed.set(i,t),this.emit(`panecollapse`,e,t);let a=[...r.map(e=>({component:e,relayout:!0})),...this._gutters.map(e=>({component:e,relayout:!1}))];return this._collapseAnimation=v(n,i,a,this._collapseAnimation,this._pendingCollapseTransitions,()=>{this._collapseAnimation=null}),this}getOrientation(){return this._orientation}setOrientation(e){return this._orientation=e,this}setPaneSize(e,t){return this._sizes.set(e,t),this}getPaneSize(e){return this._sizes.get(e)}setPaneResizeWeight(e,t){return this._weights.set(e,t),this}getPaneResizeWeight(e){return this._weights.get(e)}effectiveResizeWeight(e,t){return this._weights.get(e)??this.getLayoutConstraints(e)?.weight??t}clampMain(e,t,r){let i=e.getMinSize(),a=e.getMaxSize(),o=i?r?i.width:i.height:0,s=a?r?a.width:a.height:1/0;return n.clamp(t,o,s)}isPinnedMain(e,t){let n=e.getMinSize(),r=e.getMaxSize();return(n?t?n.width:n.height:0)===(r?t?r.width:r.height:1/0)}isResizePinnedMain(e){return this.effectiveResizeWeight(e,T)===0}seedFromPreferred(e,t){for(let n of e){if(this._sizes.has(n))continue;let e=n.getPreferredSizeConstraint();if(!e)continue;let r=t?e.width:e.height;this._sizes.set(n,this.clampMain(n,r,t))}}transferPaneSize(e,t){let n=this._sizes.get(e);if(n===void 0)return this;this._sizes.set(t,n),this._sizes.delete(e);let r=this._collapsed.get(e);r!==void 0&&(this._collapsed.set(t,r),this._collapsed.delete(e));let i=this._weights.get(e);return i!==void 0&&(this._weights.set(t,i),this._weights.delete(e)),this}getPaneRatios(){let e=this.getContainer();if(!e)return[];let t=e.getComponents();return t.length===0?[]:g(t.map(e=>this._sizes.get(e)??0),t.length)}getPreferredSize(){return this.computeContentSize(e=>e.getPreferredSize())}getMinSize(){return this.computeContentSize(e=>e.getMinSize())}getMaxSize(){return{width:t,height:t}}computeContentSize(e){let t=this.getContainer();if(!t)return null;let n=t.getLaidOutComponents(),r=t.getPerimeterSize(),i=this._orientation===`horizontal`,a=0,o=0;for(let t=0;t<n.length;t+=1){let r=e(n[t]);r&&(a+=i?r.width:r.height,o=Math.max(o,i?r.height:r.width))}return a+=this.gutterTotal(n.length),i?{width:a+r.left+r.right,height:o+r.top+r.bottom}:{width:o+r.left+r.right,height:a+r.top+r.bottom}}applyPaneRatios(e){let t=this.getContainer();if(!t)return this;let n=t.getComponents(),r=n.length;if(r===0)return this;let i=g(e,r),a=t.getInnerSize(),o=a?this._orientation===`horizontal`?a.width:a.height:0,s=Math.max(0,o-this.gutterTotal(r)),c=s>0?s:1;return n.forEach((e,t)=>{this._sizes.set(e,i[t]*c)}),this._lastAvailableMain=c,t.scheduleLayout(),this}paneSizeUnits(e){return e.map(e=>this.isResizePinnedMain(e)?`px`:`ratio`)}getPaneSizes(){let e=this.getContainer();if(!e)return[];let t=e.getComponents();if(t.length===0)return[];let n=this.paneSizeUnits(t);return this._pendingSizes!==null&&m(this._pendingSizes,n)?this._pendingSizes.map(e=>({...e})):f(n,t.map(e=>this._sizes.get(e)??0))}applyPaneSizes(e){let t=this.getContainer();if(!t)return this;let n=t.getComponents();if(!m(e,this.paneSizeUnits(n)))return this;let r=t.getInnerSize(),i=r?this._orientation===`horizontal`?r.width:r.height:0,a=Math.max(0,i-this.gutterTotal(n.length)),o=_(e,a);return n.forEach((e,t)=>this.setPaneSize(e,o[t])),this._lastAvailableMain=a>0?a:1,t.scheduleLayout(),this}setPaneCollapsedImmediate(e,t){let n=this.getContainer();if(!n)return this;let r=n.getLaidOutComponents(),i=r[e];return!i||t&&this.paneServingGutter(e,r)<0?this:(this._collapsed.set(i,t),this.emit(`panecollapse`,e,t),n.scheduleLayout(),this)}onDragStart(e,t,n){let r=this._gutters.indexOf(t),i=e.getLaidOutComponents()[r],a=e.getLaidOutComponents()[r+1];this._dragOriginPointer=n,this._orientation===`horizontal`?(this._dragOriginLhsSize=i.getWidth(),this._dragOriginRhsSize=a.getWidth()):(this._dragOriginLhsSize=i.getHeight(),this._dragOriginRhsSize=a.getHeight())}onDrag(e,t,n){let r=this._gutters.indexOf(t),i=e.getLaidOutComponents()[r],a=e.getLaidOutComponents()[r+1],o=this._orientation===`horizontal`,s=this._dragOriginLhsSize+this._dragOriginRhsSize,c=i.getMinSize(),l=a.getMinSize(),u=i.getMaxSize(),d=a.getMaxSize(),f=c?o?c.width:c.height:0,p=l?o?l.width:l.height:0,m=u?o?u.width:u.height:1/0,h=d?o?d.width:d.height:1/0,g=n-this._dragOriginPointer,_=Math.max(f,s-h),v=Math.min(m,s-p),y=this._dragOriginLhsSize+g;y=Math.max(_,Math.min(v,y));let b=s-y,x=y-(o?i.getWidth():i.getHeight());o?(i.setWidth(y),t.setX(t.getX()+x),a.setX(a.getX()+x),a.setWidth(b)):(i.setHeight(y),t.setY(t.getY()+x),a.setY(a.getY()+x),a.setHeight(b)),this._sizes.set(i,y),this._sizes.set(a,b),i.doLayout(),a.doLayout()}onDragEnd(){this.emit(`paneresize`,this.getPaneSizes())}detach(){this._collapseAnimation?.(),this._collapseAnimation=null;let t=(this.getContainer()?.getComponents().length??0)>0;for(let e of this._pendingCollapseTransitions)t?e.settle():e.cancel();this._pendingCollapseTransitions.length=0,super.detach();for(let t of this._gutters){let n=t.getElement();e.sink.removeChild(e.source.getParentNode(n),n),t.destroy()}return this._gutters=[],this}gutterTotal(e){return Math.max(0,e-1)*w}computeTotalMinSize(){let e=this.getContainer();if(!e)return{width:0,height:0};let t=e.getLaidOutComponents();if(t.length===0)return{width:0,height:0};let n=t.length-1,r=0,i=0;for(let e=0;e<t.length;e+=1){let a=t[e],o=this._sizes.get(a),s=this._collapsed.get(a)??!1,c=e<n;if(s&&c)r+=18;else{if(!s)if(o!=null)r+=o;else{let e=a.getMinSize();e&&(r+=this._orientation===`horizontal`?e.width:e.height)}c&&(r+=w)}let l=a.getMinSize();l&&(i=Math.max(i,this._orientation===`horizontal`?l.height:l.width))}return this._orientation===`horizontal`?{width:r,height:i}:{width:i,height:r}}doLayout(){let t=this,n=this.getContainer();if(!n)return;let r=n.getInnerSize();if(!r)return;let i=this._orientation===`horizontal`?r.width:r.height;r=this.inflateForOverflow(r);let a=n.getElement(),s=n.getLaidOutComponents(),c=n.getContentInsets(),l=s.length-1;for(let r=this._gutters.length;r<l;r+=1){let i=new y(this._orientation,{expandedBackground:`transparent`}),o=r;i.on(`dragstart`,function(e){t.onDragStart(n,i,e)}),i.on(`drag`,function(e){t.onDrag(n,i,e)}),i.on(`dragend`,()=>this.onDragEnd()),i.on(`collapse`,function(){let e=t.gutterTargetPane(o,n.getLaidOutComponents());e>=0&&t.setPaneCollapsed(e,!t.isPaneCollapsed(e))}),this._gutters.push(i),e.sink.appendChild(a,i.getElement(!0))}let u=c.getLeft(),d=c.getTop();this.recalculateSizes(),this.applyPendingSizes(),this.applyPendingCollapsed(s);let f=this._orientation===`horizontal`,p=f?r.height:r.width,m=this.computeMainAxisSizes(s,i),h=new Set;for(let e=0;e<s.length;e+=1){let t=s[e],n=this.paneServingGutter(e,s);if((this._collapsed.get(t)??!1)&&n>=0){let e=this._gutters[n];e.setCollapseDirection(this.paneDirection(t)),e.setCollapsible(!0),this.placeGutterAsStrip(e,t,u,d,p,f,this.paneDirection(t)),h.add(n),f?u+=18:d+=18;continue}let r=m.get(t);if(t.setVisible(!0),this.placeComponent(t,u,d,f?r:p,f?p:r,o.BOTH),t.setClipPath(n>=0?`inset(0 0 0 0)`:null),f?u+=r:d+=r,e<l){let t=this._gutters[e],n=this.gutterTargetPane(e,s);!(n>=0&&(this._collapsed.get(s[n])??!1)&&this.paneServingGutter(n,s)===e)&&!h.has(e)&&(t.setOpaque(!1),t.setVisible(!0),t.setCollapsible(n>=0),n>=0&&t.setCollapseDirection(this.paneDirection(s[n])),t.setX(u),t.setY(d),f?(t.setWidth(w),t.setHeight(p),u+=w):(t.setWidth(p),t.setHeight(w),d+=w),h.add(e))}}for(let e=0;e<this._gutters.length;e+=1)h.has(e)||this._gutters[e].setVisible(!1)}placeGutterAsStrip(e,t,n,r,i,a,s){e.setOpaque(!0),e.setVisible(!0),e.setX(n),e.setY(r),a?(e.setWidth(18),e.setHeight(i)):(e.setWidth(i),e.setHeight(18));let c=this._sizes.get(t)??18,l=this.collapsesTowardStart(s);if(t.setVisible(!0),a){let e=l?n:n+18-c;this.placeComponent(t,e,r,c,i,o.BOTH)}else{let e=l?r:r+18-c;this.placeComponent(t,n,e,i,c,o.BOTH)}t.setClipPath(this.paneClipInset(s))}paneClipInset(e){switch(e){case`east`:return`inset(0 0 0 100%)`;case`north`:return`inset(0 0 100% 0)`;case`south`:return`inset(100% 0 0 0)`;default:return`inset(0 100% 0 0)`}}applyPendingSizes(){let e=this._pendingSizes;e!==null&&(this._pendingSizes=null,this.applyPaneSizes(e))}applyPendingCollapsed(e){if(this._pendingCollapsed.length!==0){for(let t of this._pendingCollapsed){let n=e[t];n&&this.paneServingGutter(t,e)>=0&&this._collapsed.set(n,!0)}this._pendingCollapsed=[]}}computeMainAxisSizes(e,t){let n=e.length-1,r=0,i=0,a=0;for(let t=0;t<e.length;t+=1){let o=e[t];(this._collapsed.get(o)??!1)&&this.paneServingGutter(t,e)>=0?(i+=1,!this.collapsesTowardStart(this.paneDirection(o))&&t<n&&(a+=1)):r+=this._sizes.get(o)??0}let o=Math.max(0,t-this.gutterTotal(e.length)),s=Math.max(0,o-i*(18-w)+a*w),c=r>0?s/r:0,l=new Map;for(let t=0;t<e.length;t+=1){let n=e[t],r=(this._collapsed.get(n)??!1)&&this.paneServingGutter(t,e)>=0;l.set(n,r?0:(this._sizes.get(n)??0)*c)}return l}recalculateSizes(){let e=this.getContainer();if(!e)return;let t=e.getInnerSize();if(!t)return;let n=e.getComponents();for(let e of[...this._sizes.keys()])n.indexOf(e)<0&&(this._sizes.delete(e),this._collapsed.delete(e));for(let e of[...this._weights.keys()])n.indexOf(e)<0&&this._weights.delete(e);let r=this._orientation===`horizontal`?t.width:t.height,i=Math.max(0,r-this.gutterTotal(n.length)),a=this._orientation===`horizontal`;this.seedFromPreferred(n,a);for(let e of n){let t=this._sizes.get(e);t!==void 0&&this._sizes.set(e,this.clampMain(e,t,a))}if(this._lastAvailableMain>0&&i>0&&i!==this._lastAvailableMain&&this._sizes.size>0){let e=i-this._lastAvailableMain,t=0;for(let e=0;e<n.length;e+=1){let r=n[e];t+=this.effectiveResizeWeight(r,this._sizes.get(r)??0)}if(t>0)for(let r=0;r<n.length;r+=1){let i=n[r],a=this._sizes.get(i);if(a!=null){let n=this.effectiveResizeWeight(i,a);this._sizes.set(i,Math.max(0,a+n/t*e))}}}if(this._lastAvailableMain===0&&i>0&&this._sizes.size>0){let e=0;for(let t=0;t<n.length;t+=1){let r=this.effectiveResizeWeight(n[t],0);r>0&&(e+=r)}if(e>0){let t=0;for(let e=0;e<n.length;e+=1)t+=this._sizes.get(n[e])??0;let r=i-t;for(let t=0;t<n.length;t+=1){let i=n[t],o=this.effectiveResizeWeight(i,0);if(o>0){let t=this._sizes.get(i)??0;this._sizes.set(i,this.clampMain(i,t+o/e*r,a))}}}}let o=0;for(let e=0;e<n.length;e+=1){let t=n[e];this._sizes.has(t)&&(o+=1)}for(let e=0;e<n.length;e+=1){let t=n[e],r=this._sizes.get(t);if(r==null){if(this._sizes.size!=0){r=0;for(let e=0;e<n.length;e+=1){let t=n[e],i=this._sizes.get(t);if(i==null)continue;let a=i*(1/(o+1));r+=a,i-=a,this._sizes.set(t,i)}}else r=i;this._sizes.set(t,r),o+=1}}let s=0,c=0,l=0;for(let e=0;e<n.length;e+=1){let t=n[e],r=this._sizes.get(t)??0;this.isPinnedMain(t,a)?s+=r:this.isResizePinnedMain(t)?c+=r:l+=r}if(i>0){let e=Math.max(0,i-s),t=1,r=1,o=1;l>0&&e>=c?o=(e-c)/l:c>0?(o=0,r=e/c):s>0&&(t=i/s);for(let e=0;e<n.length;e+=1){let i=n[e],s=this._sizes.get(i);if(s==null)continue;let c=this.isPinnedMain(i,a)?t:this.isResizePinnedMain(i)?r:o;c!==1&&this._sizes.set(i,s*c)}}i>0&&(this._lastAvailableMain=i)}},E=a(Split),D=.25,DropZoneHighlight=class extends s{_valid=!0;constructor(){super(),this.setPosition(r.ABSOLUTE),this.setPointerEvents(`none`),this.setBackgroundColor(`var(--ts-ui-drag-dropzone-active-bg)`),this.setVisible(!1)}placeBand(e,t,n,r){this.setX(e),this.setY(t),this.setWidth(n),this.setHeight(r),this.setVisible(!0)}setValid(e){this._valid!==e&&(this._valid=e,this.setBackgroundColor(e?`var(--ts-ui-drag-dropzone-active-bg)`:`var(--ts-ui-drag-dropzone-invalid-bg)`))}hide(){this.setVisible(!1)}},O=u.Band.Window-1,DropZoneOverlay=class extends s{_highlight=new DropZoneHighlight;_zone=null;_valid=!0;constructor(){super(),this.setPosition(r.ABSOLUTE),this.setZIndex(O),this.setPointerEvents(`none`),this.setBackgroundColor(`var(--ts-ui-drag-dropzone-bg)`),this.setBorder({border:`1px solid var(--ts-ui-drag-dropzone-border)`})}attachTo(t){let n=this.getElement(!0);this.setX(0),this.setY(0),this.setWidth(t.getWidth()),this.setHeight(t.getHeight());let r=t.getElement(!0);e.source.getParentElement(n)!==r&&e.sink.appendChild(r,n);let i=this._highlight.getElement(!0);e.source.getParentElement(i)!==n&&e.sink.appendChild(n,i)}setHighlight(e,t=!0){if(e===this._zone&&t===this._valid)return;if(this._zone=e,this._valid=t,e===null){this._highlight.hide();return}this._highlight.setValid(t);let n=this.getWidth(),r=this.getHeight(),i=D,a=0,o=0,s=n,c=r;switch(e){case`top`:a=0,o=0,s=n,c=r*i;break;case`bottom`:a=0,o=r*(1-i),s=n,c=r*i;break;case`left`:a=0,o=0,s=n*i,c=r;break;case`right`:a=n*(1-i),o=0,s=n*i,c=r;break;case`center`:a=n*i,o=r*i,s=n*(1-2*i),c=r*(1-2*i);break}this._highlight.placeBand(a,o,s,c)}highlightFull(){this._zone=null,this._valid=!0,this._highlight.setValid(!0),this._highlight.placeBand(0,0,this.getWidth(),this.getHeight())}detach(){this._zone=null,this._valid=!0,this.removeElement()}},k=a(DropZoneOverlay),DockRegion=class{_region;_overlay=new k;_teardown;_onStructureChanged;_raiseTimer=null;constructor(e,t){this._region=e,this._onStructureChanged=t??null,this._teardown=C.makeDropTarget(e,{accepts:e=>e.dragData.tabDrag===!0,suppressValidityTint:!0,onDragOver:e=>{let t=e.dragData.componentId,n=this.dropZone(e.clientX,e.clientY);return this._overlay.attachTo(this._region),this._overlay.setHighlight(n,this.isLegalDrop(t,n)),this.scheduleSpringRaise(),null},onDragLeave:()=>{this._overlay.detach(),this.clearSpringRaise()},onDrop:e=>{let t=e.dragData.componentId,n=this.dropZone(e.clientX,e.clientY);if(this._overlay.detach(),this.clearSpringRaise(),!this.isLegalDrop(t,n))return!1;let r=S.get(t);if(!r)return!1;n===`center`?this.dockAsTab(r):this.splitOnEdge(r,n),this.raiseHostWindow(),this._onStructureChanged?.()}})}destroy(){this._teardown(),this._overlay.detach(),this.clearSpringRaise()}hostWindow(){for(let e=this._region;e;e=e.getParentComponent())if(e instanceof d)return e;return null}raiseHostWindow(){this.hostWindow()?.bringToFront()}scheduleSpringRaise(){this._raiseTimer===null&&(this._raiseTimer=setTimeout(()=>{this._raiseTimer=null,C.isDragging()&&this.raiseHostWindow()},x))}clearSpringRaise(){this._raiseTimer!==null&&(clearTimeout(this._raiseTimer),this._raiseTimer=null)}dropZone(e,t){return this.isSeedRegion()?`center`:this.computeZone(e,t)}isSeedRegion(){return this._region.getComponents().every(e=>this._region.getLayoutConstraints(e)?.transient===!0)}computeZone(t,n){let r=e.source.getViewportRect(this._region),i=(t-r.left)/r.width,a=(n-r.top)/r.height,o=D,s=i,c=1-i,l=a,u=1-a,d=Math.min(s,c,l,u);return d>=o?`center`:d===s?`left`:d===c?`right`:d===l?`top`:`bottom`}isLegalDrop(e,t){for(let t=this._region;t;t=t.getParentComponent())if(t.getId()===e)return!1;let n=this._region.getComponents();return n.length===1&&n[0].getId()===e?!1:t===`center`?!this.isRedundantCenterDrop(e):!this.isRedundantEdgeDrop(e,t)}isRedundantCenterDrop(e){let t=S.get(e);if(!t)return!1;let n=t.getParentComponent();if(this._region.getLayoutManager()instanceof h)return n===this._region;let r=this._region.getParentComponent();return r?.getLayoutManager()instanceof h&&n===r}isRedundantEdgeDrop(e,t){let n=S.get(e);if(!n)return!1;let r=n.getParentComponent();if(!r||r.getComponents().length!==1)return!1;let i=t===`left`||t===`right`?`horizontal`:`vertical`,a=t===`top`||t===`left`,o=this._region.getLayoutManager();if(o instanceof E&&String(o.getOrientation())===i){if(r.getParentComponent()!==this._region)return!1;let e=this._region.getComponents();return a?e[0]===r:e[e.length-1]===r}let s=this._region.getParentComponent(),c=s?.getLayoutManager()instanceof h?s:this._region,l=c?.getParentComponent();if(!l)return!1;let u=l.getLayoutManager();if(!(u instanceof E&&String(u.getOrientation())===i)||r.getParentComponent()!==l)return!1;let d=l.getComponents(),f=d.indexOf(c),p=d.indexOf(r);return a?p===f-1:p===f+1}splitOnEdge(e,t){let n=t===`left`||t===`right`?`horizontal`:`vertical`,r=t===`top`||t===`left`,i=this.newStack();i.moveComponent(e);let a=this._region.getLayoutManager();if(a instanceof E&&String(a.getOrientation())===n){this._region.moveComponent(i,r?0:this._region.getComponents().length);return}let o=this._region.getParentComponent(),s=o?.getLayoutManager()instanceof h?o:this._region,c=s.getParentComponent();if(!c)return;let u=c.getLayoutManager(),d=c.getComponents().indexOf(s);if(u instanceof E&&String(u.getOrientation())===n){c.moveComponent(i,r?d:d+1);return}let f=new l({layoutManager:new E({orientation:n})});c.moveComponent(f,d);let p=this.ensureStacked(s);f.moveComponent(i,+!r),f.moveComponent(p,+!!r),u instanceof E&&u.transferPaneSize(s,f)}ensureStacked(e){let t=e.getLayoutManager();if(t instanceof h||t instanceof E)return e;let n=this.newStack();return n.moveComponent(e),n}newStack(){let e=new l({layoutManager:new h({reorderable:!0,compact:!0})});return e.getLayoutManager().on(`empty`,()=>this.pruneEmptyStack(e)),e}pruneEmptyStack(e){let t=e.getParentComponent();t&&t.getLayoutManager()instanceof E&&(t.removeComponent(e),this.collapseIfSinglePaneSplit(t))}collapseIfSinglePaneSplit(e){if(!(e.getLayoutManager()instanceof E))return;let t=e.getComponents();if(t.length!==1)return;let n=e.getParentComponent();if(!n)return;let r=n.getComponents().indexOf(e),i=n.getLayoutManager();i instanceof E&&i.transferPaneSize(e,t[0]),n.moveComponent(t[0],r),n.removeComponent(e)}dockAsTab(e){if(this._region.getLayoutManager()instanceof h){this._region.moveComponent(e),this._region.scheduleLayout();return}let t=this._region.getParentComponent();if(!t)return;if(t.getLayoutManager()instanceof h){t.moveComponent(e),t.scheduleLayout();return}let n=t.getComponents().indexOf(this._region),r=this.newStack();t.moveComponent(r,n),r.moveComponent(this._region),r.moveComponent(e),r.scheduleLayout()}};function managerKind(e){let t=e.getLayoutManager();return t?t.getClassName().replace(/^_/,``):``}function panelIdOf(e){return e.getId()}function serializableChildren(e){return e.getComponents().filter(t=>e.getLayoutConstraints(t)?.transient!==!0)}function nodeFor(e){let t=managerKind(e);if(t===`Split`){let t=e.getLayoutManager(),n=e.getComponents().map(nodeFor);return{kind:`split`,orientation:t.getOrientation()===`vertical`?`vertical`:`horizontal`,children:n,ratios:t.getPaneRatios(),collapsed:n.map((e,n)=>t.isPaneCollapsed(n))}}if(t===`Tab`){let t=e.getLayoutManager();return{kind:`tab`,children:serializableChildren(e).map(nodeFor),activeIndex:t.getActiveTabIndex()}}let n=e.getParentComponent()?.getLayoutConstraints(e)?.glyph??null;return{kind:`panel`,panelId:panelIdOf(e),glyph:n}}function windowContentOf(e){return e.getComponents().find(t=>!e.isChromeComponent(t))??null}function windowNodeFor(e){let t=windowContentOf(e);return t?{kind:`window`,content:nodeFor(t),header:e.getTitle(),rect:e.getRect(),state:e.getWindowState(),restoreRect:e.getRestoreRect()}:null}function serializeLayout(e){let t=p.getOpenWindows().map(windowNodeFor).filter(e=>e!==null);return{version:1,root:nodeFor(e),windows:t}}function collectLeaves(e,t){serializableChildren(e).forEach(e=>{let n=managerKind(e);n===`Split`||n===`Tab`?collectLeaves(e,t):t.push(e)})}function parkLeaves(e,t,n){let r=[];collectLeaves(e,r),t.forEach(e=>{let t=windowContentOf(e);if(!t)return;let n=managerKind(t);n===`Split`||n===`Tab`?collectLeaves(t,r):r.push(t)});let i=new Map;return r.forEach(e=>{let t=panelIdOf(e);n(t)===e&&(i.set(t,e),e.getParentComponent()?.removeComponent(e))}),i}function hostsComponent(e,t){for(let n=t;n;n=n.getParentComponent())if(n===e)return!0;return!1}function constraintsFor(e){if(e.kind!==`panel`||!e.glyph)return;let t=new b;return t.glyph=e.glyph,t}function materializeNode(e,t,n){if(e.kind===`panel`){let r=t.get(e.panelId)??n(e.panelId);return r||console.warn(`restoreLayout: no component for panelId "${e.panelId}"; skipping.`),r}let r=new s;return populateContainer(r,e,t,n),r}function populateContainer(e,t,n,r){if(t.kind===`split`){let i=new E({orientation:t.orientation});e.setLayoutManager(i);let a=[];t.children.forEach((i,o)=>{let s=materializeNode(i,n,r);s&&(e.moveComponent(s,void 0,constraintsFor(i)),a.push({ratio:t.ratios[o]??0,collapsed:t.collapsed[o]??!1}))}),i.applyPaneRatios(a.map(e=>e.ratio)),a.forEach((e,t)=>{e.collapsed&&i.setPaneCollapsedImmediate(t,!0)})}else{let i=new h({reorderable:!0,compact:!0});e.setLayoutManager(i),t.children.forEach(t=>{let a=materializeNode(t,n,r);a&&(e.moveComponent(a,void 0,constraintsFor(t)),i.createTab(a))}),i.setActiveTabIndex(t.activeIndex)}}function applyWindow(e,t,n){let r=e.content??(e.panelId?{kind:`panel`,panelId:e.panelId,glyph:null}:null);if(!r){console.warn(`restoreLayout: window node has neither content nor panelId; skipping.`);return}let i=materializeNode(r,t,n);if(!i)return;let a=new p(e.header);a.moveComponent(i,void 0,constraintsFor(r));let o=e.state===`normal`?e.rect:e.restoreRect??e.rect;a.applyRect(o),a.show(),e.state!==`normal`&&a.setWindowState(e.state)}function restoreLayout(e,t,n){let r=p.getOpenWindows().filter(t=>!hostsComponent(t,e)),i=parkLeaves(e,r,n);if(r.forEach(e=>e.onExitAction()),e.removeAllComponents(),t.root.kind===`panel`){let r=materializeNode(t.root,i,n);r&&e.moveComponent(r,void 0,constraintsFor(t.root))}else populateContainer(e,t.root,i,n);t.windows.forEach(e=>applyWindow(e,i,n))}export{E as a,k as i,serializeLayout as n,DockRegion as r,restoreLayout as t};
2
- //# sourceMappingURL=LayoutSerialization-D1OHmxSB.js.map
1
+ import{t as e}from"./DOM-67StIm5G.js";import{a as t,l as n,t as r}from"./Position-Ck_KD4cR.js";import{f as i,h as a,m as o,t as s}from"./Component-fRQvgaEY.js";import{t as c}from"./ListenerBag-WPdKuuds.js";import{t as l}from"./Container-0bsG2Q8Z.js";import{a as u}from"./Tooltip-Dro4DOZs.js";import{d,i as f,l as p,n as m,o as h,r as g,t as _}from"./LayoutSizes-qNaURyiw.js";import{i as v,n as y}from"./Border-CKKUk5G9.js";import{t as b}from"./LayoutConstraints-LIHYYd2F.js";import{n as x,r as S,t as C}from"./DragManager-DRor_-1x.js";var w=4,T=1,Split=class extends i{_orientation=`horizontal`;_sizes=new Map;_gutters=[];_collapsed=new Map;_weights=new Map;_pendingCollapsed=[];_listeners=new c;_pendingSizes=null;_dragOriginPointer=0;_dragOriginLhsSize=0;_dragOriginRhsSize=0;_lastAvailableMain=0;_collapseAnimation=null;_pendingCollapseTransitions=[];constructor(e){super(),e&&this.applyOptions(e)}applyOptions(e){if(super.applyOptions(e),e.orientation!==void 0&&this.setOrientation(e.orientation),e.collapsedPanes!==void 0&&(this._pendingCollapsed=[...e.collapsedPanes]),e.paneSizes!==void 0&&(this._pendingSizes=e.paneSizes.map(e=>({...e}))),e.listeners!==void 0){let t=e.listeners;for(let e of Object.keys(t)){let n=t[e];n!==void 0&&this.on(e,n)}}}on(e,t){return this._listeners.add(e,t),this}off(e,t){return this._listeners.remove(e,t),this}emit(e,...t){this._listeners.fire(e,...t)}isPaneCollapsed(e){let t=this.getContainer();if(!t)return!1;let n=t.getLaidOutComponents()[e];return n?this._collapsed.get(n)??!1:!1}collapsesTowardStart(e){return e===`west`||e===`north`}paneDirection(e){return this.getLayoutConstraints(e)?.collapseDirection??(this._orientation===`horizontal`?`west`:`north`)}paneCollapsible(e){return this.getLayoutConstraints(e)?.collapsible!==!1}gutterTargetPane(e,t){let n=t[e+1];if(n&&this.paneCollapsible(n)&&!this.collapsesTowardStart(this.paneDirection(n)))return e+1;let r=t[e];return r&&this.paneCollapsible(r)&&this.collapsesTowardStart(this.paneDirection(r))?e:-1}paneServingGutter(e,t){let n=this.paneDirection(t[e]);return this.collapsesTowardStart(n)?e<t.length-1&&this.gutterTargetPane(e,t)===e?e:-1:e>0&&this.gutterTargetPane(e-1,t)===e?e-1:-1}setPaneCollapsed(e,t){let n=this.getContainer();if(!n)return this;let r=n.getLaidOutComponents(),i=r[e];if(!i||this.paneServingGutter(e,r)<0||(this._collapsed.get(i)??!1)===t)return this;this._collapsed.set(i,t),this.emit(`panecollapse`,e,t);let a=[...r.map(e=>({component:e,relayout:!0})),...this._gutters.map(e=>({component:e,relayout:!1}))];return this._collapseAnimation=v(n,i,a,this._collapseAnimation,this._pendingCollapseTransitions,()=>{this._collapseAnimation=null}),this}getOrientation(){return this._orientation}setOrientation(e){return this._orientation=e,this}setPaneSize(e,t){return this._sizes.set(e,t),this}getPaneSize(e){return this._sizes.get(e)}setPaneResizeWeight(e,t){return this._weights.set(e,t),this}getPaneResizeWeight(e){return this._weights.get(e)}effectiveResizeWeight(e,t){return this._weights.get(e)??this.getLayoutConstraints(e)?.weight??t}clampMain(e,t,r){let i=e.getMinSize(),a=e.getMaxSize(),o=i?r?i.width:i.height:0,s=a?r?a.width:a.height:1/0;return n.clamp(t,o,s)}isPinnedMain(e,t){let n=e.getMinSize(),r=e.getMaxSize();return(n?t?n.width:n.height:0)===(r?t?r.width:r.height:1/0)}isResizePinnedMain(e){return this.effectiveResizeWeight(e,T)===0}seedFromPreferred(e,t){for(let n of e){if(this._sizes.has(n))continue;let e=n.getPreferredSizeConstraint();if(!e)continue;let r=t?e.width:e.height;this._sizes.set(n,this.clampMain(n,r,t))}}transferPaneSize(e,t){let n=this._sizes.get(e);if(n===void 0)return this;this._sizes.set(t,n),this._sizes.delete(e);let r=this._collapsed.get(e);r!==void 0&&(this._collapsed.set(t,r),this._collapsed.delete(e));let i=this._weights.get(e);return i!==void 0&&(this._weights.set(t,i),this._weights.delete(e)),this}getPaneRatios(){let e=this.getContainer();if(!e)return[];let t=e.getComponents();return t.length===0?[]:g(t.map(e=>this._sizes.get(e)??0),t.length)}getPreferredSize(){return this.computeContentSize(e=>e.getPreferredSize())}getMinSize(){return this.computeContentSize(e=>e.getMinSize())}getMaxSize(){return{width:t,height:t}}computeContentSize(e){let t=this.getContainer();if(!t)return null;let n=t.getLaidOutComponents(),r=t.getPerimeterSize(),i=this._orientation===`horizontal`,a=0,o=0;for(let t=0;t<n.length;t+=1){let r=e(n[t]);r&&(a+=i?r.width:r.height,o=Math.max(o,i?r.height:r.width))}return a+=this.gutterTotal(n.length),i?{width:a+r.left+r.right,height:o+r.top+r.bottom}:{width:o+r.left+r.right,height:a+r.top+r.bottom}}applyPaneRatios(e){let t=this.getContainer();if(!t)return this;let n=t.getComponents(),r=n.length;if(r===0)return this;let i=g(e,r),a=t.getInnerSize(),o=a?this._orientation===`horizontal`?a.width:a.height:0,s=Math.max(0,o-this.gutterTotal(r)),c=s>0?s:1;return n.forEach((e,t)=>{this._sizes.set(e,i[t]*c)}),this._lastAvailableMain=c,t.scheduleLayout(),this}paneSizeUnits(e){return e.map(e=>this.isResizePinnedMain(e)?`px`:`ratio`)}getPaneSizes(){let e=this.getContainer();if(!e)return[];let t=e.getComponents();if(t.length===0)return[];let n=this.paneSizeUnits(t);return this._pendingSizes!==null&&m(this._pendingSizes,n)?this._pendingSizes.map(e=>({...e})):f(n,t.map(e=>this._sizes.get(e)??0))}applyPaneSizes(e){let t=this.getContainer();if(!t)return this;let n=t.getComponents();if(!m(e,this.paneSizeUnits(n)))return this;let r=t.getInnerSize(),i=r?this._orientation===`horizontal`?r.width:r.height:0,a=Math.max(0,i-this.gutterTotal(n.length)),o=_(e,a);return n.forEach((e,t)=>this.setPaneSize(e,o[t])),this._lastAvailableMain=a>0?a:1,t.scheduleLayout(),this}setPaneCollapsedImmediate(e,t){let n=this.getContainer();if(!n)return this;let r=n.getLaidOutComponents(),i=r[e];return!i||t&&this.paneServingGutter(e,r)<0?this:(this._collapsed.set(i,t),this.emit(`panecollapse`,e,t),n.scheduleLayout(),this)}onDragStart(e,t,n){let r=this._gutters.indexOf(t),i=e.getLaidOutComponents()[r],a=e.getLaidOutComponents()[r+1];this._dragOriginPointer=n,this._orientation===`horizontal`?(this._dragOriginLhsSize=i.getWidth(),this._dragOriginRhsSize=a.getWidth()):(this._dragOriginLhsSize=i.getHeight(),this._dragOriginRhsSize=a.getHeight())}onDrag(e,t,n){let r=this._gutters.indexOf(t),i=e.getLaidOutComponents()[r],a=e.getLaidOutComponents()[r+1],o=this._orientation===`horizontal`,s=this._dragOriginLhsSize+this._dragOriginRhsSize,c=i.getMinSize(),l=a.getMinSize(),u=i.getMaxSize(),d=a.getMaxSize(),f=c?o?c.width:c.height:0,p=l?o?l.width:l.height:0,m=u?o?u.width:u.height:1/0,h=d?o?d.width:d.height:1/0,g=n-this._dragOriginPointer,_=Math.max(f,s-h),v=Math.min(m,s-p),y=this._dragOriginLhsSize+g;y=Math.max(_,Math.min(v,y));let b=s-y,x=y-(o?i.getWidth():i.getHeight());o?(i.setWidth(y),t.setX(t.getX()+x),a.setX(a.getX()+x),a.setWidth(b)):(i.setHeight(y),t.setY(t.getY()+x),a.setY(a.getY()+x),a.setHeight(b)),this._sizes.set(i,y),this._sizes.set(a,b),i.doLayout(),a.doLayout()}onDragEnd(){this.emit(`paneresize`,this.getPaneSizes())}detach(){this._collapseAnimation?.(),this._collapseAnimation=null;let t=(this.getContainer()?.getComponents().length??0)>0;for(let e of this._pendingCollapseTransitions)t?e.settle():e.cancel();this._pendingCollapseTransitions.length=0,super.detach();for(let t of this._gutters){let n=t.getElement();e.sink.removeChild(e.source.getParentNode(n),n),t.dispose()}return this._gutters=[],this}gutterTotal(e){return Math.max(0,e-1)*w}computeTotalMinSize(){let e=this.getContainer();if(!e)return{width:0,height:0};let t=e.getLaidOutComponents();if(t.length===0)return{width:0,height:0};let n=t.length-1,r=0,i=0;for(let e=0;e<t.length;e+=1){let a=t[e],o=this._sizes.get(a),s=this._collapsed.get(a)??!1,c=e<n;if(s&&c)r+=18;else{if(!s)if(o!=null)r+=o;else{let e=a.getMinSize();e&&(r+=this._orientation===`horizontal`?e.width:e.height)}c&&(r+=w)}let l=a.getMinSize();l&&(i=Math.max(i,this._orientation===`horizontal`?l.height:l.width))}return this._orientation===`horizontal`?{width:r,height:i}:{width:i,height:r}}doLayout(){let t=this,n=this.getContainer();if(!n)return;let r=n.getInnerSize();if(!r)return;let i=this._orientation===`horizontal`?r.width:r.height;r=this.inflateForOverflow(r);let a=n.getElement(),s=n.getLaidOutComponents(),c=n.getContentInsets(),l=s.length-1;for(let r=this._gutters.length;r<l;r+=1){let i=new y(this._orientation,{expandedBackground:`transparent`}),o=r;i.on(`dragstart`,function(e){t.onDragStart(n,i,e)}),i.on(`drag`,function(e){t.onDrag(n,i,e)}),i.on(`dragend`,()=>this.onDragEnd()),i.on(`collapse`,function(){let e=t.gutterTargetPane(o,n.getLaidOutComponents());e>=0&&t.setPaneCollapsed(e,!t.isPaneCollapsed(e))}),this._gutters.push(i),e.sink.appendChild(a,i.getElement(!0))}let u=c.getLeft(),d=c.getTop();this.recalculateSizes(),this.applyPendingSizes(),this.applyPendingCollapsed(s);let f=this._orientation===`horizontal`,p=f?r.height:r.width,m=this.computeMainAxisSizes(s,i),h=new Set;for(let e=0;e<s.length;e+=1){let t=s[e],n=this.paneServingGutter(e,s);if((this._collapsed.get(t)??!1)&&n>=0){let e=this._gutters[n];e.setCollapseDirection(this.paneDirection(t)),e.setCollapsible(!0),this.placeGutterAsStrip(e,t,u,d,p,f,this.paneDirection(t)),h.add(n),f?u+=18:d+=18;continue}let r=m.get(t);if(t.setVisible(!0),this.placeComponent(t,u,d,f?r:p,f?p:r,o.BOTH),t.setClipPath(n>=0?`inset(0 0 0 0)`:null),f?u+=r:d+=r,e<l){let t=this._gutters[e],n=this.gutterTargetPane(e,s);!(n>=0&&(this._collapsed.get(s[n])??!1)&&this.paneServingGutter(n,s)===e)&&!h.has(e)&&(t.setOpaque(!1),t.setVisible(!0),t.setCollapsible(n>=0),n>=0&&t.setCollapseDirection(this.paneDirection(s[n])),t.setX(u),t.setY(d),f?(t.setWidth(w),t.setHeight(p),u+=w):(t.setWidth(p),t.setHeight(w),d+=w),h.add(e))}}for(let e=0;e<this._gutters.length;e+=1)h.has(e)||this._gutters[e].setVisible(!1)}placeGutterAsStrip(e,t,n,r,i,a,s){e.setOpaque(!0),e.setVisible(!0),e.setX(n),e.setY(r),a?(e.setWidth(18),e.setHeight(i)):(e.setWidth(i),e.setHeight(18));let c=this._sizes.get(t)??18,l=this.collapsesTowardStart(s);if(t.setVisible(!0),a){let e=l?n:n+18-c;this.placeComponent(t,e,r,c,i,o.BOTH)}else{let e=l?r:r+18-c;this.placeComponent(t,n,e,i,c,o.BOTH)}t.setClipPath(this.paneClipInset(s))}paneClipInset(e){switch(e){case`east`:return`inset(0 0 0 100%)`;case`north`:return`inset(0 0 100% 0)`;case`south`:return`inset(100% 0 0 0)`;default:return`inset(0 100% 0 0)`}}applyPendingSizes(){let e=this._pendingSizes;e!==null&&(this._pendingSizes=null,this.applyPaneSizes(e))}applyPendingCollapsed(e){if(this._pendingCollapsed.length!==0){for(let t of this._pendingCollapsed){let n=e[t];n&&this.paneServingGutter(t,e)>=0&&this._collapsed.set(n,!0)}this._pendingCollapsed=[]}}computeMainAxisSizes(e,t){let n=e.length-1,r=0,i=0,a=0;for(let t=0;t<e.length;t+=1){let o=e[t];(this._collapsed.get(o)??!1)&&this.paneServingGutter(t,e)>=0?(i+=1,!this.collapsesTowardStart(this.paneDirection(o))&&t<n&&(a+=1)):r+=this._sizes.get(o)??0}let o=Math.max(0,t-this.gutterTotal(e.length)),s=Math.max(0,o-i*(18-w)+a*w),c=r>0?s/r:0,l=new Map;for(let t=0;t<e.length;t+=1){let n=e[t],r=(this._collapsed.get(n)??!1)&&this.paneServingGutter(t,e)>=0;l.set(n,r?0:(this._sizes.get(n)??0)*c)}return l}recalculateSizes(){let e=this.getContainer();if(!e)return;let t=e.getInnerSize();if(!t)return;let n=e.getComponents();for(let e of[...this._sizes.keys()])n.indexOf(e)<0&&(this._sizes.delete(e),this._collapsed.delete(e));for(let e of[...this._weights.keys()])n.indexOf(e)<0&&this._weights.delete(e);let r=this._orientation===`horizontal`?t.width:t.height,i=Math.max(0,r-this.gutterTotal(n.length)),a=this._orientation===`horizontal`;this.seedFromPreferred(n,a);for(let e of n){let t=this._sizes.get(e);t!==void 0&&this._sizes.set(e,this.clampMain(e,t,a))}if(this._lastAvailableMain>0&&i>0&&i!==this._lastAvailableMain&&this._sizes.size>0){let e=i-this._lastAvailableMain,t=0;for(let e=0;e<n.length;e+=1){let r=n[e];t+=this.effectiveResizeWeight(r,this._sizes.get(r)??0)}if(t>0)for(let r=0;r<n.length;r+=1){let i=n[r],a=this._sizes.get(i);if(a!=null){let n=this.effectiveResizeWeight(i,a);this._sizes.set(i,Math.max(0,a+n/t*e))}}}if(this._lastAvailableMain===0&&i>0&&this._sizes.size>0){let e=0;for(let t=0;t<n.length;t+=1){let r=this.effectiveResizeWeight(n[t],0);r>0&&(e+=r)}if(e>0){let t=0;for(let e=0;e<n.length;e+=1)t+=this._sizes.get(n[e])??0;let r=i-t;for(let t=0;t<n.length;t+=1){let i=n[t],o=this.effectiveResizeWeight(i,0);if(o>0){let t=this._sizes.get(i)??0;this._sizes.set(i,this.clampMain(i,t+o/e*r,a))}}}}let o=0;for(let e=0;e<n.length;e+=1){let t=n[e];this._sizes.has(t)&&(o+=1)}for(let e=0;e<n.length;e+=1){let t=n[e],r=this._sizes.get(t);if(r==null){if(this._sizes.size!=0){r=0;for(let e=0;e<n.length;e+=1){let t=n[e],i=this._sizes.get(t);if(i==null)continue;let a=i*(1/(o+1));r+=a,i-=a,this._sizes.set(t,i)}}else r=i;this._sizes.set(t,r),o+=1}}let s=0,c=0,l=0;for(let e=0;e<n.length;e+=1){let t=n[e],r=this._sizes.get(t)??0;this.isPinnedMain(t,a)?s+=r:this.isResizePinnedMain(t)?c+=r:l+=r}if(i>0){let e=Math.max(0,i-s),t=1,r=1,o=1;l>0&&e>=c?o=(e-c)/l:c>0?(o=0,r=e/c):s>0&&(t=i/s);for(let e=0;e<n.length;e+=1){let i=n[e],s=this._sizes.get(i);if(s==null)continue;let c=this.isPinnedMain(i,a)?t:this.isResizePinnedMain(i)?r:o;c!==1&&this._sizes.set(i,s*c)}}i>0&&(this._lastAvailableMain=i)}},E=a(Split),D=.25,DropZoneHighlight=class extends s{_valid=!0;constructor(){super(),this.setPosition(r.ABSOLUTE),this.setPointerEvents(`none`),this.setBackgroundColor(`var(--ts-ui-drag-dropzone-active-bg)`),this.setVisible(!1)}placeBand(e,t,n,r){this.setX(e),this.setY(t),this.setWidth(n),this.setHeight(r),this.setVisible(!0)}setValid(e){this._valid!==e&&(this._valid=e,this.setBackgroundColor(e?`var(--ts-ui-drag-dropzone-active-bg)`:`var(--ts-ui-drag-dropzone-invalid-bg)`))}hide(){this.setVisible(!1)}},O=u.Band.Window-1,DropZoneOverlay=class extends s{_highlight=new DropZoneHighlight;_zone=null;_valid=!0;constructor(){super(),this.setPosition(r.ABSOLUTE),this.setZIndex(O),this.setPointerEvents(`none`),this.setBackgroundColor(`var(--ts-ui-drag-dropzone-bg)`),this.setBorder({border:`1px solid var(--ts-ui-drag-dropzone-border)`})}attachTo(t){let n=this.getElement(!0);this.setX(0),this.setY(0),this.setWidth(t.getWidth()),this.setHeight(t.getHeight());let r=t.getElement(!0);e.source.getParentElement(n)!==r&&e.sink.appendChild(r,n);let i=this._highlight.getElement(!0);e.source.getParentElement(i)!==n&&e.sink.appendChild(n,i)}setHighlight(e,t=!0){if(e===this._zone&&t===this._valid)return;if(this._zone=e,this._valid=t,e===null){this._highlight.hide();return}this._highlight.setValid(t);let n=this.getWidth(),r=this.getHeight(),i=D,a=0,o=0,s=n,c=r;switch(e){case`top`:a=0,o=0,s=n,c=r*i;break;case`bottom`:a=0,o=r*(1-i),s=n,c=r*i;break;case`left`:a=0,o=0,s=n*i,c=r;break;case`right`:a=n*(1-i),o=0,s=n*i,c=r;break;case`center`:a=n*i,o=r*i,s=n*(1-2*i),c=r*(1-2*i);break}this._highlight.placeBand(a,o,s,c)}highlightFull(){this._zone=null,this._valid=!0,this._highlight.setValid(!0),this._highlight.placeBand(0,0,this.getWidth(),this.getHeight())}detach(){this._zone=null,this._valid=!0,this.removeElement()}destructor(){this._highlight.dispose(),super.destructor()}},k=a(DropZoneOverlay),DockRegion=class{_region;_overlay=new k;_teardown;_onStructureChanged;_raiseTimer=null;constructor(e,t){this._region=e,this._onStructureChanged=t??null,this._teardown=C.makeDropTarget(e,{accepts:e=>e.dragData.tabDrag===!0,suppressValidityTint:!0,onDragOver:e=>{let t=e.dragData.componentId,n=this.dropZone(e.clientX,e.clientY);return this._overlay.attachTo(this._region),this._overlay.setHighlight(n,this.isLegalDrop(t,n)),this.scheduleSpringRaise(),null},onDragLeave:()=>{this._overlay.detach(),this.clearSpringRaise()},onDrop:e=>{let t=e.dragData.componentId,n=this.dropZone(e.clientX,e.clientY);if(this._overlay.detach(),this.clearSpringRaise(),!this.isLegalDrop(t,n))return!1;let r=S.get(t);if(!r)return!1;n===`center`?this.dockAsTab(r):this.splitOnEdge(r,n),this.raiseHostWindow(),this._onStructureChanged?.()}})}destroy(){this._teardown(),this._overlay.dispose(),this.clearSpringRaise()}hostWindow(){for(let e=this._region;e;e=e.getParentComponent())if(e instanceof d)return e;return null}raiseHostWindow(){this.hostWindow()?.bringToFront()}scheduleSpringRaise(){this._raiseTimer===null&&(this._raiseTimer=setTimeout(()=>{this._raiseTimer=null,C.isDragging()&&this.raiseHostWindow()},x))}clearSpringRaise(){this._raiseTimer!==null&&(clearTimeout(this._raiseTimer),this._raiseTimer=null)}dropZone(e,t){return this.isSeedRegion()?`center`:this.computeZone(e,t)}isSeedRegion(){return this._region.getComponents().every(e=>this._region.getLayoutConstraints(e)?.transient===!0)}computeZone(t,n){let r=e.source.getViewportRect(this._region),i=(t-r.left)/r.width,a=(n-r.top)/r.height,o=D,s=i,c=1-i,l=a,u=1-a,d=Math.min(s,c,l,u);return d>=o?`center`:d===s?`left`:d===c?`right`:d===l?`top`:`bottom`}isLegalDrop(e,t){for(let t=this._region;t;t=t.getParentComponent())if(t.getId()===e)return!1;let n=this._region.getComponents();return n.length===1&&n[0].getId()===e?!1:t===`center`?!this.isRedundantCenterDrop(e):!this.isRedundantEdgeDrop(e,t)}isRedundantCenterDrop(e){let t=S.get(e);if(!t)return!1;let n=t.getParentComponent();if(this._region.getLayoutManager()instanceof h)return n===this._region;let r=this._region.getParentComponent();return r?.getLayoutManager()instanceof h&&n===r}isRedundantEdgeDrop(e,t){let n=S.get(e);if(!n)return!1;let r=n.getParentComponent();if(!r||r.getComponents().length!==1)return!1;let i=t===`left`||t===`right`?`horizontal`:`vertical`,a=t===`top`||t===`left`,o=this._region.getLayoutManager();if(o instanceof E&&String(o.getOrientation())===i){if(r.getParentComponent()!==this._region)return!1;let e=this._region.getComponents();return a?e[0]===r:e[e.length-1]===r}let s=this._region.getParentComponent(),c=s?.getLayoutManager()instanceof h?s:this._region,l=c?.getParentComponent();if(!l)return!1;let u=l.getLayoutManager();if(!(u instanceof E&&String(u.getOrientation())===i)||r.getParentComponent()!==l)return!1;let d=l.getComponents(),f=d.indexOf(c),p=d.indexOf(r);return a?p===f-1:p===f+1}splitOnEdge(e,t){let n=t===`left`||t===`right`?`horizontal`:`vertical`,r=t===`top`||t===`left`,i=this.newStack();i.moveComponent(e);let a=this._region.getLayoutManager();if(a instanceof E&&String(a.getOrientation())===n){this._region.moveComponent(i,r?0:this._region.getComponents().length);return}let o=this._region.getParentComponent(),s=o?.getLayoutManager()instanceof h?o:this._region,c=s.getParentComponent();if(!c)return;let u=c.getLayoutManager(),d=c.getComponents().indexOf(s);if(u instanceof E&&String(u.getOrientation())===n){c.moveComponent(i,r?d:d+1);return}let f=new l({layoutManager:new E({orientation:n})});c.moveComponent(f,d);let p=this.ensureStacked(s);f.moveComponent(i,+!r),f.moveComponent(p,+!!r),u instanceof E&&u.transferPaneSize(s,f)}ensureStacked(e){let t=e.getLayoutManager();if(t instanceof h||t instanceof E)return e;let n=this.newStack();return n.moveComponent(e),n}newStack(){let e=new l({layoutManager:new h({reorderable:!0,compact:!0})});return e.getLayoutManager().on(`empty`,()=>this.pruneEmptyStack(e)),e}pruneEmptyStack(e){let t=e.getParentComponent();t&&t.getLayoutManager()instanceof E&&(t.removeComponent(e),this.collapseIfSinglePaneSplit(t))}collapseIfSinglePaneSplit(e){if(!(e.getLayoutManager()instanceof E))return;let t=e.getComponents();if(t.length!==1)return;let n=e.getParentComponent();if(!n)return;let r=n.getComponents().indexOf(e),i=n.getLayoutManager();i instanceof E&&i.transferPaneSize(e,t[0]),n.moveComponent(t[0],r),n.removeComponent(e)}dockAsTab(e){if(this._region.getLayoutManager()instanceof h){this._region.moveComponent(e),this._region.scheduleLayout();return}let t=this._region.getParentComponent();if(!t)return;if(t.getLayoutManager()instanceof h){t.moveComponent(e),t.scheduleLayout();return}let n=t.getComponents().indexOf(this._region),r=this.newStack();t.moveComponent(r,n),r.moveComponent(this._region),r.moveComponent(e),r.scheduleLayout()}};function managerKind(e){let t=e.getLayoutManager();return t?t.getClassName().replace(/^_/,``):``}function panelIdOf(e){return e.getId()}function serializableChildren(e){return e.getComponents().filter(t=>e.getLayoutConstraints(t)?.transient!==!0)}function nodeFor(e){let t=managerKind(e);if(t===`Split`){let t=e.getLayoutManager(),n=e.getComponents().map(nodeFor);return{kind:`split`,orientation:t.getOrientation()===`vertical`?`vertical`:`horizontal`,children:n,ratios:t.getPaneRatios(),collapsed:n.map((e,n)=>t.isPaneCollapsed(n))}}if(t===`Tab`){let t=e.getLayoutManager();return{kind:`tab`,children:serializableChildren(e).map(nodeFor),activeIndex:t.getActiveTabIndex()}}let n=e.getParentComponent()?.getLayoutConstraints(e),r=n?.glyph??null,i=n?.tooltip??null;return{kind:`panel`,panelId:panelIdOf(e),glyph:r,tooltip:i,closeable:n?.closeable,disposeOnClose:n?.disposeOnClose}}function windowContentOf(e){return e.getComponents().find(t=>!e.isChromeComponent(t))??null}function windowNodeFor(e){let t=windowContentOf(e);return t?{kind:`window`,content:nodeFor(t),header:e.getTitle(),rect:e.getRect(),state:e.getWindowState(),restoreRect:e.getRestoreRect()}:null}function serializeLayout(e){let t=p.getOpenWindows().map(windowNodeFor).filter(e=>e!==null);return{version:1,root:nodeFor(e),windows:t}}function collectLeaves(e,t){e.getComponents().slice().forEach(n=>{if(e.getLayoutConstraints(n)?.transient===!0){e.removeComponent(n);return}let r=managerKind(n);r===`Split`||r===`Tab`?collectLeaves(n,t):t.push(n)})}function parkLeaves(e,t,n){let r=[];collectLeaves(e,r),t.forEach(e=>{let t=windowContentOf(e);if(!t)return;let n=managerKind(t);n===`Split`||n===`Tab`?collectLeaves(t,r):r.push(t)});let i=new Map;return r.forEach(e=>{let t=panelIdOf(e);n(t)===e&&(i.set(t,e),e.getParentComponent()?.removeComponent(e))}),i}function hostsComponent(e,t){for(let n=t;n;n=n.getParentComponent())if(n===e)return!0;return!1}function constraintsFor(e){if(e.kind!==`panel`||!(e.glyph!=null||e.tooltip!=null||e.closeable!==void 0||e.disposeOnClose!==void 0))return;let t=new b;return t.glyph=e.glyph??null,t.tooltip=e.tooltip??null,t.closeable=e.closeable,t.disposeOnClose=e.disposeOnClose,t}function materializeNode(e,t,n){if(e.kind===`panel`){let r=t.get(e.panelId)??n(e.panelId);return r||console.warn(`restoreLayout: no component for panelId "${e.panelId}"; skipping.`),r}let r=new s;return populateContainer(r,e,t,n),r}function populateContainer(e,t,n,r){if(t.kind===`split`){let i=new E({orientation:t.orientation});e.setLayoutManager(i);let a=[];t.children.forEach((i,o)=>{let s=materializeNode(i,n,r);s&&(e.moveComponent(s,void 0,constraintsFor(i)),a.push({ratio:t.ratios[o]??0,collapsed:t.collapsed[o]??!1}))}),i.applyPaneRatios(a.map(e=>e.ratio)),a.forEach((e,t)=>{e.collapsed&&i.setPaneCollapsedImmediate(t,!0)})}else{let i=new h({reorderable:!0,compact:!0});e.setLayoutManager(i),t.children.forEach(t=>{let a=materializeNode(t,n,r);a&&(e.moveComponent(a,void 0,constraintsFor(t)),i.createTab(a))}),i.setActiveTabIndex(t.activeIndex)}}function applyWindow(e,t,n){let r=e.content??(e.panelId?{kind:`panel`,panelId:e.panelId,glyph:null}:null);if(!r){console.warn(`restoreLayout: window node has neither content nor panelId; skipping.`);return}let i=materializeNode(r,t,n);if(!i)return;let a=new p(e.header);a.moveComponent(i,void 0,constraintsFor(r));let o=e.state===`normal`?e.rect:e.restoreRect??e.rect;a.applyRect(o),a.show(),e.state!==`normal`&&a.setWindowState(e.state)}function restoreLayout(e,t,n){let r=p.getOpenWindows().filter(t=>!hostsComponent(t,e)),i=parkLeaves(e,r,n);if(r.forEach(e=>e.onExitAction()),e.disposeAllComponents(),t.root.kind===`panel`){let r=materializeNode(t.root,i,n);r&&e.moveComponent(r,void 0,constraintsFor(t.root))}else populateContainer(e,t.root,i,n);t.windows.forEach(e=>applyWindow(e,i,n))}export{E as a,k as i,serializeLayout as n,DockRegion as r,restoreLayout as t};
2
+ //# sourceMappingURL=LayoutSerialization-D5bBas4W.js.map