@forsion/unit 2.13.2 → 2.13.4

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 (207) hide show
  1. package/main.mjs +25 -3
  2. package/package.json +1 -1
  3. package/release.json +5 -5
  4. package/web/assets/ArtificialView-DLh75dAI.js +1 -0
  5. package/web/assets/AutomationBuilder-DNWWGnFr.js +1 -0
  6. package/web/assets/CalendarConfigView-G7je7k9-.js +1 -0
  7. package/web/assets/{CalendarView-D7ZUE_dr.js → CalendarView-B2MtaOJk.js} +1 -1
  8. package/web/assets/{CapabilityMenu-CrsaTtDe.js → CapabilityMenu-DJaZ_Cyt.js} +1 -1
  9. package/web/assets/{CheckboxInput-DVO2-1J7.js → CheckboxInput-FYXLaZke.js} +1 -1
  10. package/web/assets/{Chrome-BvpbCvo1.js → Chrome-CFonajM4.js} +1 -1
  11. package/web/assets/{CodeView-CB4kG7Y6.js → CodeView-GZ0BAgoW.js} +3 -3
  12. package/web/assets/DashboardGridView-D9s9pez_.css +1 -0
  13. package/web/assets/DashboardGridView-Xgw4wa0_.js +17 -0
  14. package/web/assets/{EventCard-c6s4uGBu.js → EventCard-_39F_I5M.js} +1 -1
  15. package/web/assets/ExcalidrawCanvas-rXujil36.js +1 -0
  16. package/web/assets/{FloatingToc-ldOYWe2C.js → FloatingToc-DNqAkkI0.js} +1 -1
  17. package/web/assets/GitCloneDialog-Bj9G3o-n.css +1 -0
  18. package/web/assets/GitCloneDialog-CQx-O4j1.js +1 -0
  19. package/web/assets/HomepageView-DcWmTPQO.css +1 -0
  20. package/web/assets/HomepageView-MYEk3RCs.js +3 -0
  21. package/web/assets/{ImageStudioPanels-DgMYAsHj.js → ImageStudioPanels-4wnb2XF4.js} +2 -2
  22. package/web/assets/ImageStudioView-qrmW8pfx.js +1 -0
  23. package/web/assets/InlineAiPanel-B3kd1ob2.js +1 -0
  24. package/web/assets/InlineAiPanel-DZZijfif.css +1 -0
  25. package/web/assets/InlineFiles-Clnqh9jD.js +1 -0
  26. package/web/assets/MarkdownBlock-DQTuoen3.css +1 -0
  27. package/web/assets/MarkdownBlock-DT_wsaja.js +58 -0
  28. package/web/assets/ModelPill-JaIH3ffZ.js +2 -0
  29. package/web/assets/MuseLibraryView-16p1zsxz.css +1 -0
  30. package/web/assets/MuseLibraryView-DOJVVeU6.js +2 -0
  31. package/web/assets/{MuseView-3GL4Ltoj.js → MuseView-uxTmjVQa.js} +2 -2
  32. package/web/assets/{PageHistoryPanel-BMQC-V_l.js → PageHistoryPanel-Bn4-XmdK.js} +2 -2
  33. package/web/assets/{PdfAnnotator-CyAw8sgq.js → PdfAnnotator-Cq8cklTz.js} +1 -1
  34. package/web/assets/PenRow-COOYAaxx.js +1 -0
  35. package/web/assets/ProductView-DPTveulg.js +1 -0
  36. package/web/assets/RightPanel-BJUacrsf.js +4 -0
  37. package/web/assets/RightPanel-D0zk1g3I.css +1 -0
  38. package/web/assets/{SketchCard-DAD0jR0i.js → SketchCard-B_UU5sxV.js} +3 -3
  39. package/web/assets/{StudioGuestSurface-DlUKXBXv.js → StudioGuestSurface-yBa4QKfX.js} +1 -1
  40. package/web/assets/TargetHealthNotice-BLzDB-Xl.css +1 -0
  41. package/web/assets/TargetHealthNotice-CgkdTdhB.js +47 -0
  42. package/web/assets/{TodoListView-_yFkPUrw.js → TodoListView-CricdCfW.js} +1 -1
  43. package/web/assets/{Tooltip-DXuy9-1_.js → Tooltip-o8ZqIb3L.js} +1 -1
  44. package/web/assets/UnifiedPage-BWAyqj65.js +69 -0
  45. package/web/assets/ViewSelectionBar-35x8TiLA.js +2 -0
  46. package/web/assets/{amadeus-manual.en-DzRWr4BL.js → amadeus-manual.en-B8J-svqq.js} +1 -1
  47. package/web/assets/{amadeus-manual.zh-DW32DkL7.js → amadeus-manual.zh-CkCOFnrg.js} +1 -1
  48. package/web/assets/appStore-CI1_L5OS.js +3357 -0
  49. package/web/assets/appStore-DQc2marq.css +1 -0
  50. package/web/assets/{arrow-up-right-KPFbRA41.js → arrow-up-right-BDsMFoNQ.js} +1 -1
  51. package/web/assets/{astryxBridge-Bupzouso.js → astryxBridge-CH_c5xjo.js} +3 -3
  52. package/web/assets/automationListSource-CB6AWkL_.js +1 -0
  53. package/web/assets/{boardSurface-BHuMoQN-.js → boardSurface-CLvEUjbF.js} +1 -1
  54. package/web/assets/{book-open-CBeNsIpo.js → book-open-BLzEdGfu.js} +1 -1
  55. package/web/assets/{calendarNavStore-Duyhbmm_.js → calendarNavStore-BHUNxDx8.js} +1 -1
  56. package/web/assets/{canvasPrefs-CxfyDTMT.js → canvasPrefs-CvE7mgyq.js} +1 -1
  57. package/web/assets/{chatBoxSurface-OBzO1Z5E.js → chatBoxSurface-CuuHLzs5.js} +1 -1
  58. package/web/assets/{circle-question-mark-M8QUJJYk.js → circle-question-mark-BM4ZRxQS.js} +1 -1
  59. package/web/assets/{circle-x-Szwop5L_.js → circle-x-DTcNGZDT.js} +1 -1
  60. package/web/assets/{client-CPUljePZ.js → client-CaivGZFR.js} +5 -5
  61. package/web/assets/{code-xml-n9mgGgkv.js → code-xml-AE3mT4T5.js} +1 -1
  62. package/web/assets/{codeStudioStore-DXMQwRzG.js → codeStudioStore-DhyMazGT.js} +1 -1
  63. package/web/assets/codingNavigation-B0kVsy4x.js +53 -0
  64. package/web/assets/codingNavigation-DHCidM4N.css +1 -0
  65. package/web/assets/{create-C19zqt5N.js → create-1JI2I47p.js} +2 -2
  66. package/web/assets/dashboardSurface-CIE5HybN.js +1 -0
  67. package/web/assets/{deskCapture-B_LKZSPt.js → deskCapture-COW7aG5Y.js} +1 -1
  68. package/web/assets/{diff2html-DrCCWvpR.js → diff2html-Daje9Kkm.js} +1 -1
  69. package/web/assets/{docx-preview-Bi7wekSM.js → docx-preview-CABR7n30.js} +1 -1
  70. package/web/assets/emoji-DZ9CA_3l.css +1 -0
  71. package/web/assets/emoji-DphwSxPx.js +1 -0
  72. package/web/assets/{floatingTocSurface-rc1ZC7-I.js → floatingTocSurface-BOm2QYBK.js} +1 -1
  73. package/web/assets/{foldActions-BGocXE-o.js → foldActions-DNbJPlPl.js} +1 -1
  74. package/web/assets/{folder-CoOsfQ64.js → folder-DotgUhYD.js} +1 -1
  75. package/web/assets/{folder-plus-d5MwIMlf.js → folder-plus-aJgL9NeP.js} +1 -1
  76. package/web/assets/gestures-dqncPOwo.js +1 -0
  77. package/web/assets/git-branch-CwR2qic6.js +1 -0
  78. package/web/assets/{hand-fuehbnkI.js → hand-XNkzNiW2.js} +1 -1
  79. package/web/assets/{hard-drive-Bh1DmZg0.js → hard-drive-CfWKRoAE.js} +1 -1
  80. package/web/assets/i18n-CykmULlm.css +1 -0
  81. package/web/assets/i18n.generated-BwynSSMk.js +15 -0
  82. package/web/assets/{imageStudio-Dgl1wZNB.js → imageStudio-CWgLpC_d.js} +2 -2
  83. package/web/assets/imageStudio-DZ0qGU2s.css +1 -0
  84. package/web/assets/{index-2tD0kijW.js → index-B65ULikK.js} +1 -1
  85. package/web/assets/{index-BPqoEOV_.js → index-BGfvNj7R.js} +1 -1
  86. package/web/assets/{index-38xsQSS9.js → index-BIIeiIap.js} +1 -1
  87. package/web/assets/{index-B5UW6SaE.js → index-BOzsniE1.js} +89 -89
  88. package/web/assets/{index-YRWOePBS.js → index-BfrjVzia.js} +1 -1
  89. package/web/assets/{index-CnDAYLti.js → index-Bi9UtjVz.js} +1 -1
  90. package/web/assets/{index-fViJsYjM.js → index-C1uilc9i.js} +1 -1
  91. package/web/assets/{index-CPLtf9Vc.js → index-C3Dc3Ivz.js} +1 -1
  92. package/web/assets/{index-B8Co6KG3.js → index-CJF_Ld1Y.js} +1 -1
  93. package/web/assets/{index-lfow5R3O.js → index-CMARP4oV.js} +1 -1
  94. package/web/assets/{index-Dx9aIoyo.js → index-C_RsQVNm.js} +1 -1
  95. package/web/assets/{index-D4CSH-v1.js → index-ChyxZMm8.js} +1 -1
  96. package/web/assets/{index-7kdR1oL8.js → index-CoKcOaZg.js} +1 -1
  97. package/web/assets/{index-Ce1sNSS8.js → index-CuviSCbk.js} +1 -1
  98. package/web/assets/{index-Ch0FIsJX.js → index-Cw43kua8.js} +1 -1
  99. package/web/assets/{index-DvOrTnw2.js → index-D1fu6XQN.js} +1 -1
  100. package/web/assets/{index-QjVOA7QM.js → index-DG-hXb63.js} +1 -1
  101. package/web/assets/index-DjnTfJpN.js +1 -0
  102. package/web/assets/{index-DcRyQ3eU.js → index-Dtw0abst.js} +1 -1
  103. package/web/assets/{index-Dy07SBfH.js → index-O05r2Ty6.js} +1 -1
  104. package/web/assets/{index-BCG8Wnc4.js → index-W3ErfZiX.js} +1 -1
  105. package/web/assets/{index-e-MxdHFO.js → index-Yc56b3XX.js} +1 -1
  106. package/web/assets/{index-Dff-DL1v.js → index-d4jCdYJH.js} +1 -1
  107. package/web/assets/{index-Dc8iMctf.js → index-gt5JBIFf.js} +1 -1
  108. package/web/assets/{index-Df9jregv.js → index-siHtlYTM.js} +1 -1
  109. package/web/assets/{invitePage-Dgl3-c_m.js → invitePage-Bgveo6Hj.js} +1 -1
  110. package/web/assets/{ipc-CNlIRMtU.js → ipc-B6hkgxQL.js} +1 -1
  111. package/web/assets/{jszip.min-tyV0GaJg.js → jszip.min-eU-k-vEy.js} +1 -1
  112. package/web/assets/{layout-grid-DFmwM9NU.js → layout-grid-CraV7nhh.js} +1 -1
  113. package/web/assets/linkFollow-BpvDWzUx.js +8 -0
  114. package/web/assets/{list-tree-i07HsP3D.js → list-tree-cLJw-jYQ.js} +1 -1
  115. package/web/assets/{listFold-Aea6I0Sa.js → listFold-M8s5JYEC.js} +1 -1
  116. package/web/assets/{lock-TSDKuCod.js → lock-DBkXXwaI.js} +1 -1
  117. package/web/assets/lock-open-C-9-AWct.js +1 -0
  118. package/web/assets/{log-out-DK84lW5n.js → log-out-C8bDXj9P.js} +1 -1
  119. package/web/assets/main-CMk6twzA.js +20 -0
  120. package/web/assets/markdownEditorSurface-DgQ0TUWH.js +3 -0
  121. package/web/assets/{message-square-plus-3wFslIMY.js → message-square-plus-8pfimvem.js} +1 -1
  122. package/web/assets/{messages-DEAGRsC3.js → messages-CKtabOqy.js} +1 -1
  123. package/web/assets/minus-CfA9fAN3.js +1 -0
  124. package/web/assets/mobileEntry-NcMcK0LV.js +13 -0
  125. package/web/assets/{nativeDownload-B3JGkABw.js → nativeDownload-CNtwSCy0.js} +1 -1
  126. package/web/assets/pageChrome-BR4cfIaA.js +1 -0
  127. package/web/assets/pageChrome-BbUhILy0.css +1 -0
  128. package/web/assets/{pageTree-DZ7Eiro-.js → pageTree-BYYPgZm_.js} +4 -4
  129. package/web/assets/{pen-tool-ChGmX6g_.js → pen-tool-C5ftHCnm.js} +1 -1
  130. package/web/assets/{pencil-CJsJD7M_.js → pencil-ehhM9_9k.js} +1 -1
  131. package/web/assets/phoneList-B6gwUJZF.js +9 -0
  132. package/web/assets/phoneList-iRdfiKA8.css +1 -0
  133. package/web/assets/pluginChat-DTTWWiUS.js +2 -0
  134. package/web/assets/{redo-2-CI57sDFr.js → redo-2-DCEAgQlN.js} +1 -1
  135. package/web/assets/{rotate-ccw-xgT_0UN9.js → rotate-ccw-DdkrbRAB.js} +1 -1
  136. package/web/assets/selectionActions-BQD2kox1.js +2 -0
  137. package/web/assets/selectionBarSurface-CzUZmJDJ.js +1 -0
  138. package/web/assets/server-Ddu9f1k3.js +1 -0
  139. package/web/assets/sharePage-CNrm2xTC.js +2 -0
  140. package/web/assets/{shareViewer-DKPWhTJv.js → shareViewer-BiMqIBxP.js} +2 -2
  141. package/web/assets/{star-C9KTji9N.js → star-Dxv7XANS.js} +1 -1
  142. package/web/assets/tableSurface-Bly1iCXc.js +1 -0
  143. package/web/assets/{terminal-DPZazOQ2.js → terminal-CAmmC9cV.js} +1 -1
  144. package/web/assets/{terminalView-CsJmxE_m.js → terminalView-lbcBgG0c.js} +1 -1
  145. package/web/assets/theme-CUWFlazV.css +1 -0
  146. package/web/assets/{type-C5J875vb.js → type-Dz6rnTvG.js} +1 -1
  147. package/web/assets/{undo-2-BOUt5qks.js → undo-2-B7izWNb_.js} +1 -1
  148. package/web/assets/{unitAccount-BIAIxKNp.js → unitAccount-DGwGsmC3.js} +1 -1
  149. package/web/assets/{unitBridge-b2C6zb3a.js → unitBridge-CE2yAvm0.js} +1 -1
  150. package/web/assets/{unitCloudTransport-NGtDDKWo.js → unitCloudTransport-BGFwkaDM.js} +1 -1
  151. package/web/assets/{unitOwnerAccess-CwH9ApZT.js → unitOwnerAccess-D4nKS6Gg.js} +1 -1
  152. package/web/assets/{unitShim-CY8EVkKD.js → unitShim-2_2hhGxS.js} +3 -3
  153. package/web/assets/{upload-CrbEAW8C.js → upload-DqpRRAhG.js} +1 -1
  154. package/web/assets/userSpaces-VFu4s05v.js +1 -0
  155. package/web/assets/viewportLock-3AOdDmwi.js +631 -0
  156. package/web/assets/viewportLock-djvL8fUQ.css +1 -0
  157. package/web/assets/{zoom-in-BcuPvIYd.js → zoom-in-Bf-eKTnH.js} +1 -1
  158. package/web/index.html +2 -2
  159. package/web/assets/ArtificialView-Bs_6B211.js +0 -1
  160. package/web/assets/AutomationBuilder-C-IFaaBp.js +0 -1
  161. package/web/assets/CalendarConfigView-DEsNvVkD.js +0 -1
  162. package/web/assets/DashboardGridView-hpRmBr9B.css +0 -1
  163. package/web/assets/DashboardGridView-tgaj9-SM.js +0 -17
  164. package/web/assets/ExcalidrawCanvas-NdV86AR3.js +0 -1
  165. package/web/assets/HomepageView-4joJWYlg.js +0 -1
  166. package/web/assets/HomepageView-Cxf3AWBu.css +0 -1
  167. package/web/assets/ImageStudioView-_CYHoOoG.js +0 -1
  168. package/web/assets/InlineFiles-BIfsx3R-.js +0 -1
  169. package/web/assets/MarkdownBlock--__nPQGh.css +0 -1
  170. package/web/assets/MarkdownBlock-wYEaBBOr.js +0 -58
  171. package/web/assets/ModelPill-DveHcLqq.js +0 -2
  172. package/web/assets/MuseLibraryView-Do9RnKiq.js +0 -2
  173. package/web/assets/PenRow-BSB-h5Pb.js +0 -1
  174. package/web/assets/ProductView-B96OeHOP.js +0 -1
  175. package/web/assets/RightPanel-BgSeCLnw.js +0 -4
  176. package/web/assets/RunLocationPicker-CEmFio4n.css +0 -1
  177. package/web/assets/RunLocationPicker-M1UoJyjf.js +0 -38
  178. package/web/assets/UnifiedPage-EJNWKzxN.js +0 -68
  179. package/web/assets/appStore-CidPWYa0.js +0 -3254
  180. package/web/assets/appStore-DeaC1U32.css +0 -1
  181. package/web/assets/automationListSource-1aOVKBLw.js +0 -1
  182. package/web/assets/codingNavigation-CCjs1kon.js +0 -53
  183. package/web/assets/codingNavigation-yp19w6uu.css +0 -1
  184. package/web/assets/dashboardSurface-BwcH16Qc.js +0 -1
  185. package/web/assets/emoji-DczIG8SO.js +0 -1
  186. package/web/assets/gestures-CXFaEydn.js +0 -1
  187. package/web/assets/i18n-DjziAw8r.css +0 -1
  188. package/web/assets/i18n.generated-BiQFRL2U.js +0 -15
  189. package/web/assets/imageStudio--KF9gwHA.css +0 -1
  190. package/web/assets/index-BqGpbntz.js +0 -1
  191. package/web/assets/linkFollow-iP2zfbA3.js +0 -8
  192. package/web/assets/main-D7CEGndC.js +0 -20
  193. package/web/assets/markdownEditorSurface-DISu_twy.js +0 -3
  194. package/web/assets/minus-BBdfT_sc.js +0 -1
  195. package/web/assets/mobileEntry-5UaAITwY.js +0 -13
  196. package/web/assets/pageChrome-BDHHmRnt.css +0 -1
  197. package/web/assets/pageChrome-DFi9zs6F.js +0 -1
  198. package/web/assets/phoneList-DrxIwJxQ.js +0 -9
  199. package/web/assets/phoneList-DvpzD3zT.css +0 -1
  200. package/web/assets/pluginChat-0QI9a8Q1.js +0 -2
  201. package/web/assets/sharePage-C2Yqx0NQ.js +0 -2
  202. package/web/assets/tableSurface-cYs6dX6B.js +0 -1
  203. package/web/assets/theme-Dgqst5S9.css +0 -1
  204. package/web/assets/userSpaces-B_Njvel_.js +0 -1
  205. package/web/assets/viewportLock-Bi3orrUs.css +0 -1
  206. package/web/assets/viewportLock-DZ927PNz.js +0 -629
  207. package/web/assets/workflow-DY2Cnaei.js +0 -1
@@ -0,0 +1,9 @@
1
+ import{J as Ie,pn as Vn,po as W,ac as rt,ab as Ri,aa as Nn,ad as Wn,g5 as Hn,pp as Fn,aE as Bn,aF as $n,ax as Un,j2 as jn,pq as Yn,pr as Xn,ps as Xt,pt as Jn,ae as Vi,v as ke,aS as Zn,ff as Kn,j1 as qn,aA as Qn,aP as es,dz as ts,pu as is,b9 as Jt,aM as Zt,an as ns,aq as ss,ak as it,bk as os,pv as rs,aN as as,pw as ls,fe as ds,px as hs,py as cs,pz as us,am as Kt,pA as Ni,ap as ps,pB as ms,pC as vs,pD as gs,pE as fs,pF as ht,pG as Wi,pH as Hi,pI as _s,pJ as bs,pK as ws,pL as Ds,pM as Cs,pN as ys,u as Ss,cf as xs,V as Gs,pO as Ps,pP as Ts,pQ as As}from"./appStore-CI1_L5OS.js";import{R as M,d as k,j as A,r as Is,u as Fi,t as Es}from"./index-BOzsniE1.js";import"./client-CaivGZFR.js";import{c as Bi}from"./nativeDownload-CNtwSCy0.js";const zs=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 6v6l4 2",key:"mmk7yg"}]],vl=Ie("clock",zs);const Os=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 15h18",key:"5xshup"}]],Ms=Ie("panel-bottom",Os);const ks=[["path",{d:"M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4",key:"daa4of"}],["rect",{width:"10",height:"7",x:"12",y:"13",rx:"2",key:"1nb8gs"}]],Ls=Ie("picture-in-picture-2",ks);const Rs=[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]],gl=Ie("pin",Rs);const Vs=[["path",{d:"M20 9V7a2 2 0 0 0-2-2h-6",key:"19z8uc"}],["path",{d:"m15 2-3 3 3 3",key:"177bxs"}],["path",{d:"M20 13v5a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2",key:"d36hnl"}]],Ns=Ie("rotate-ccw-square",Vs);const Ws=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],fl=Ie("square-pen",Ws);var Hs={};class $i{}class Q extends $i{constructor(e,t,i,n){super(),this.viewId=e,this.groupId=t,this.panelId=i,this.tabGroupId=n}}class Le extends $i{constructor(e,t){super(),this.viewId=e,this.paneId=t}}class oe{constructor(){}static getInstance(){return oe.INSTANCE}hasData(e){return e&&e===this.proto}clearData(e){this.hasData(e)&&(this.proto=void 0,this.data=void 0)}getData(e){if(this.hasData(e))return this.data}setData(e,t){t&&(this.data=e,this.proto=t)}}oe.INSTANCE=new oe;function $(){const o=oe.getInstance();if(o.hasData(Q.prototype))return o.getData(Q.prototype)[0]}function Ee(){const o=oe.getInstance();if(o.hasData(Le.prototype))return o.getData(Le.prototype)[0]}var N;(function(o){o.NONE={dispose:()=>{}};function e(t){return{dispose:()=>{t()}}}o.from=e})(N||(N={}));class E{get isDisposed(){return this._isDisposed}constructor(...e){this._isDisposed=!1,this._disposables=new Set(e)}addDisposables(...e){e.forEach(t=>this._disposables.add(t))}removeDisposable(e){this._disposables.delete(e)}dispose(){this._isDisposed||(this._isDisposed=!0,this._disposables.forEach(e=>e.dispose()),this._disposables.clear())}}class X{constructor(){this._disposable=N.NONE}set value(e){this._disposable&&this._disposable.dispose(),this._disposable=e}dispose(){this._disposable&&(this._disposable.dispose(),this._disposable=N.NONE)}}var ee;(function(o){o.any=(...e)=>t=>{const i=e.map(n=>n(t));return{dispose:()=>{i.forEach(n=>{n.dispose()})}}}})(ee||(ee={}));class Ot{constructor(){this._defaultPrevented=!1}get defaultPrevented(){return this._defaultPrevented}preventDefault(){this._defaultPrevented=!0}}class Ui{constructor(){this._isAccepted=!1}get isAccepted(){return this._isAccepted}accept(){this._isAccepted=!0}}class Fs{constructor(){this.events=new Map}get size(){return this.events.size}add(e,t){this.events.set(e,t)}delete(e){this.events.delete(e)}clear(){this.events.clear()}}class nt{static create(){var e;return new nt((e=new Error().stack)!==null&&e!==void 0?e:"")}constructor(e){this.value=e}print(){console.warn("dockview: stacktrace",this.value)}}class Bs{constructor(e,t){this.callback=e,this.stacktrace=t}}class f{static setLeakageMonitorEnabled(e){e!==f.ENABLE_TRACKING&&f.MEMORY_LEAK_WATCHER.clear(),f.ENABLE_TRACKING=e}get value(){return this._last}constructor(e){this.options=e,this._listeners=[],this._disposed=!1,this._pauseTokens=new Set}get event(){return this._event||(this._event=e=>{var t;!((t=this.options)===null||t===void 0)&&t.replay&&this._last!==void 0&&e(this._last);const i=new Bs(e,f.ENABLE_TRACKING?nt.create():void 0);return this._listeners.push(i),{dispose:()=>{const n=this._listeners.indexOf(i);n>-1&&this._listeners.splice(n,1)}}},f.ENABLE_TRACKING&&f.MEMORY_LEAK_WATCHER.add(this._event,nt.create())),this._event}fire(e){var t;if(!(this._pauseTokens.size>0)){!((t=this.options)===null||t===void 0)&&t.replay&&(this._last=e);for(const i of this._listeners)i.callback(e)}}pause(){const e={};return this._pauseTokens.add(e),N.from(()=>this._pauseTokens.delete(e))}dispose(){this._disposed||(this._disposed=!0,this._listeners.length>0&&(f.ENABLE_TRACKING&&queueMicrotask(()=>{var e;for(const t of this._listeners)console.warn("dockview: stacktrace",(e=t.stacktrace)===null||e===void 0?void 0:e.print())}),this._listeners=[]),f.ENABLE_TRACKING&&this._event&&f.MEMORY_LEAK_WATCHER.delete(this._event))}}f.ENABLE_TRACKING=!1;f.MEMORY_LEAK_WATCHER=new Fs;function P(o,e,t,i){return o.addEventListener(e,t,i),{dispose:()=>{o.removeEventListener(e,t,i)}}}class qt{constructor(){this._onFired=new f,this._currentFireCount=0,this._queued=!1,this.onEvent=e=>{const t=this._currentFireCount;return this._onFired.event(()=>{this._currentFireCount>t&&e()})}}fire(){this._currentFireCount++,!this._queued&&(this._queued=!0,queueMicrotask(()=>{this._queued=!1,this._onFired.fire()}))}dispose(){this._onFired.dispose()}}class $s extends E{constructor(e){super(),this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this._value=null,this.addDisposables(this._onDidChange,Ue(e,t=>{const i=t.target.scrollWidth>t.target.clientWidth,n=t.target.scrollHeight>t.target.clientHeight;this._value={hasScrollX:i,hasScrollY:n},this._onDidChange.fire(this._value)}))}}function Ue(o,e){const t=new ResizeObserver(i=>{requestAnimationFrame(()=>{const n=i[0];e(n)})});return t.observe(o),{dispose:()=>{t.unobserve(o),t.disconnect()}}}const re=(o,...e)=>{for(const t of e)o.classList.contains(t)&&o.classList.remove(t)},ae=(o,...e)=>{for(const t of e)o.classList.contains(t)||o.classList.add(t)},x=(o,e,t)=>{const i=o.classList.contains(e);t&&!i&&o.classList.add(e),!t&&i&&o.classList.remove(e)};function vt(o,e){for(;o;){if(o===e)return!0;o=o.parentNode}return!1}function ji(o){return new Us(o)}class Us extends E{constructor(e){super(),this._onDidFocus=new f,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new f,this.onDidBlur=this._onDidBlur.event,this.addDisposables(this._onDidFocus,this._onDidBlur);let t=vt(document.activeElement,e),i=!1;const n=()=>{i=!1,t||(t=!0,this._onDidFocus.fire())},s=()=>{t&&(i=!0,window.setTimeout(()=>{i&&(i=!1,t=!1,this._onDidBlur.fire())},0))};this._refreshStateHandler=()=>{vt(document.activeElement,e)!==t&&(t?s():n())},this.addDisposables(P(e,"focus",n,!0)),this.addDisposables(P(e,"blur",s,!0))}refreshState(){this._refreshStateHandler()}}const Yi="dv-quasiPreventDefault";function Xi(o){o[Yi]=!0}function Qt(o){return o[Yi]}function js(o,e,t={}){const i=Array.from(e),{nonce:n}=t,s=typeof n=="function"?n(o):n;for(const r of i){if(r.href){const h=o.createElement("link");h.href=r.href,h.type=r.type,h.rel="stylesheet",o.head.appendChild(h);continue}let a=[];try{r.cssRules&&(a=Array.from(r.cssRules).map(h=>h.cssText))}catch(h){console.warn("dockview: failed to access stylesheet rules due to security restrictions",h)}const l=o.createDocumentFragment();for(const h of a){const d=o.createElement("style");s&&d.setAttribute("nonce",s),d.appendChild(o.createTextNode(h)),l.appendChild(d)}o.head.appendChild(l)}}function gt(o){const{left:e,top:t,width:i,height:n}=o.getBoundingClientRect();return{left:e+window.scrollX,top:t+window.scrollY,width:i,height:n}}function Ys(o){let e=o;for(;e?.parentNode;){if(e.parentNode===document)return!0;e.parentNode instanceof DocumentFragment?e=e.parentNode.host:e=e.parentNode}return!1}function Xs(o,e){o.setAttribute("data-testid",e)}function Js(o,e){const t=[];function i(s){if(s.nodeType===Node.ELEMENT_NODE){o.includes(s.tagName)&&t.push(s),s.shadowRoot&&i(s.shadowRoot);for(const r of s.children)i(r)}}const n=e instanceof Document?e.documentElement:e;return i(n),t}function We(o=document){const e=Js(["IFRAME","WEBVIEW"],o),t=new WeakMap;for(const i of e)t.set(i,i.style.pointerEvents),i.style.pointerEvents="none";return{release:()=>{var i;for(const n of e)n.style.pointerEvents=(i=t.get(n))!==null&&i!==void 0?i:"auto";e.splice(0,e.length)}}}function Zs(o){function e(n){const s=[];for(let r=0;r<n.classList.length;r++)s.push(n.classList.item(r));return s}let t,i=o;for(;i!==null&&(t=e(i).find(n=>n.startsWith("dockview-theme-")),typeof t!="string");)i=i.parentElement;return t}class at{constructor(e){this.element=e,this._classNames=[]}setClassNames(e){for(const t of this._classNames)x(this.element,t,!1);this._classNames=e.split(" ").filter(t=>t.trim().length>0);for(const t of this._classNames)x(this.element,t,!0)}}const Ji=100;function ei(o,e){const t=gt(o),i=gt(e);return!(t.left<i.left||t.left+t.width>i.left+i.width||t.top<i.top||t.top+t.height>i.top+i.height)}function Ks(o){const e=new f;let t=o.screenX,i=o.screenY,n;const s=()=>{if(o.closed)return;const r=o.screenX,a=o.screenY;(r!==t||a!==i)&&(clearTimeout(n),n=setTimeout(()=>{e.fire()},Ji),t=r,i=a),requestAnimationFrame(s)};return s(),e}function qs(o,e){let t;return new E(P(o,"resize",()=>{clearTimeout(t),t=setTimeout(()=>{e()},Ji)}))}function Qs(o,e,t={buffer:10}){const i=t.buffer,n=o.getBoundingClientRect(),s=e.getBoundingClientRect();let r=0,a=0;const l=n.left-s.left,h=n.top-s.top,d=n.bottom-s.bottom,c=n.right-s.right;l<i?r=i-l:c>i&&(r=-i-c),h<i?a=i-h:d>i&&(a=-d-i),(r!==0||a!==0)&&(o.style.transform=`translate(${r}px, ${a}px)`)}function Zi(o){let e=o;for(;e&&(e.style.zIndex==="auto"||e.style.zIndex==="");)e=e.parentElement;return e}function ge(o){if(o.length===0)throw new Error("Invalid tail call");return[o.slice(0,o.length-1),o[o.length-1]]}function Ki(o,e){if(o.length!==e.length)return!1;for(let t=0;t<o.length;t++)if(o[t]!==e[t])return!1;return!0}function ct(o,e){const t=o.indexOf(e);t>-1&&(o.splice(t,1),o.unshift(e))}function Ye(o,e){const t=o.indexOf(e);t>-1&&(o.splice(t,1),o.push(e))}function eo(o,e){for(let t=0;t<o.length;t++){const i=o[t];if(e(i))return t}return-1}function qi(o,e){const t=o.findIndex(i=>i===e);return t>-1?(o.splice(t,1),!0):!1}const B=(o,e,t)=>e>t?e:Math.min(t,Math.max(o,e)),Mt=()=>{let o=1;return{next:()=>(o++).toString()}},ne=(o,e)=>{const t=[];if(typeof e!="number"&&(e=o,o=0),o<=e)for(let i=o;i<e;i++)t.push(i);else for(let i=o;i>e;i--)t.push(i);return t};class to{set size(e){this._size=e}get size(){return this._size}get cachedVisibleSize(){return this._cachedVisibleSize}get visible(){return typeof this._cachedVisibleSize>"u"}get minimumSize(){return this.visible?this.view.minimumSize:0}get viewMinimumSize(){return this.view.minimumSize}get maximumSize(){return this.visible?this.view.maximumSize:0}get viewMaximumSize(){return this.view.maximumSize}get priority(){return this.view.priority}get snap(){return!!this.view.snap}set enabled(e){this.container.style.pointerEvents=e?"":"none"}constructor(e,t,i,n){this.container=e,this.view=t,this.disposable=n,this._cachedVisibleSize=void 0,typeof i=="number"?(this._size=i,this._cachedVisibleSize=void 0,e.classList.add("visible")):(this._size=0,this._cachedVisibleSize=i.cachedVisibleSize)}setVisible(e,t){var i;e!==this.visible&&(e?(this.size=B((i=this._cachedVisibleSize)!==null&&i!==void 0?i:0,this.viewMinimumSize,this.viewMaximumSize),this._cachedVisibleSize=void 0):(this._cachedVisibleSize=typeof t=="number"?t:this.size,this.size=0),this.container.classList.toggle("visible",e),this.view.setVisible&&this.view.setVisible(e))}dispose(){return this.disposable.dispose(),this.view}}var z;(function(o){o.HORIZONTAL="HORIZONTAL",o.VERTICAL="VERTICAL"})(z||(z={}));var K;(function(o){o[o.MAXIMUM=0]="MAXIMUM",o[o.MINIMUM=1]="MINIMUM",o[o.DISABLED=2]="DISABLED",o[o.ENABLED=3]="ENABLED"})(K||(K={}));var j;(function(o){o.Low="low",o.High="high",o.Normal="normal"})(j||(j={}));var Z;(function(o){o.Distribute={type:"distribute"};function e(i){return{type:"split",index:i}}o.Split=e;function t(i){return{type:"invisible",cachedVisibleSize:i}}o.Invisible=t})(Z||(Z={}));class xe{get contentSize(){return this._contentSize}get size(){return this._size}set size(e){this._size=e}get orthogonalSize(){return this._orthogonalSize}set orthogonalSize(e){this._orthogonalSize=e}get length(){return this.viewItems.length}get proportions(){return this._proportions?[...this._proportions]:void 0}get orientation(){return this._orientation}set orientation(e){this._orientation=e;const t=this.size;this.size=this.orthogonalSize,this.orthogonalSize=t,re(this.element,"dv-horizontal","dv-vertical"),this.element.classList.add(this.orientation==z.HORIZONTAL?"dv-horizontal":"dv-vertical")}get minimumSize(){return this.viewItems.reduce((e,t)=>e+t.minimumSize,0)}get maximumSize(){return this.length===0?Number.POSITIVE_INFINITY:this.viewItems.reduce((e,t)=>e+t.maximumSize,0)}get startSnappingEnabled(){return this._startSnappingEnabled}set startSnappingEnabled(e){this._startSnappingEnabled!==e&&(this._startSnappingEnabled=e,this.updateSashEnablement())}get endSnappingEnabled(){return this._endSnappingEnabled}set endSnappingEnabled(e){this._endSnappingEnabled!==e&&(this._endSnappingEnabled=e,this.updateSashEnablement())}get disabled(){return this._disabled}set disabled(e){this._disabled=e,x(this.element,"dv-splitview-disabled",e)}get margin(){return this._margin}set margin(e){this._margin=e,x(this.element,"dv-splitview-has-margin",e!==0)}constructor(e,t){var i,n;this.container=e,this.viewItems=[],this.sashes=[],this._size=0,this._orthogonalSize=0,this._contentSize=0,this._proportions=void 0,this._startSnappingEnabled=!0,this._endSnappingEnabled=!0,this._disabled=!1,this._margin=0,this._onDidSashEnd=new f,this.onDidSashEnd=this._onDidSashEnd.event,this._onDidAddView=new f,this.onDidAddView=this._onDidAddView.event,this._onDidRemoveView=new f,this.onDidRemoveView=this._onDidRemoveView.event,this.resize=(s,r,a=this.viewItems.map(u=>u.size),l,h,d=Number.NEGATIVE_INFINITY,c=Number.POSITIVE_INFINITY,p,v)=>{if(s<0||s>this.viewItems.length)return 0;const u=ne(s,-1),m=ne(s+1,this.viewItems.length);if(h)for(const I of h)ct(u,I),ct(m,I);if(l)for(const I of l)Ye(u,I),Ye(m,I);const g=u.map(I=>this.viewItems[I]),_=u.map(I=>a[I]),w=m.map(I=>this.viewItems[I]),b=m.map(I=>a[I]),D=u.reduce((I,L)=>I+this.viewItems[L].minimumSize-a[L],0),T=u.reduce((I,L)=>I+this.viewItems[L].maximumSize-a[L],0),C=m.length===0?Number.POSITIVE_INFINITY:m.reduce((I,L)=>I+a[L]-this.viewItems[L].minimumSize,0),S=m.length===0?Number.NEGATIVE_INFINITY:m.reduce((I,L)=>I+a[L]-this.viewItems[L].maximumSize,0),y=Math.max(D,S),G=Math.min(C,T);let O=!1;if(p){const I=this.viewItems[p.index],L=r>=p.limitDelta;O=L!==I.visible,I.setVisible(L,p.size)}if(!O&&v){const I=this.viewItems[v.index],L=r<v.limitDelta;O=L!==I.visible,I.setVisible(L,v.size)}if(O)return this.resize(s,r,a,l,h,d,c);const R=B(r,y,G);let V=0,F=R;for(let I=0;I<g.length;I++){const L=g[I],le=B(_[I]+F,L.minimumSize,L.maximumSize),ye=le-_[I];V+=ye,F-=ye,L.size=le}let Y=V;for(let I=0;I<w.length;I++){const L=w[I],le=B(b[I]-Y,L.minimumSize,L.maximumSize),ye=le-b[I];Y+=ye,L.size=le}return r},this._orientation=(i=t.orientation)!==null&&i!==void 0?i:z.VERTICAL,this.element=this.createContainer(),this.margin=(n=t.margin)!==null&&n!==void 0?n:0,this.proportionalLayout=t.proportionalLayout===void 0?!0:!!t.proportionalLayout,this.viewContainer=this.createViewContainer(),this.sashContainer=this.createSashContainer(),this.element.appendChild(this.sashContainer),this.element.appendChild(this.viewContainer),this.container.appendChild(this.element),this.style(t.styles),t.descriptor&&(this._size=t.descriptor.size,t.descriptor.views.forEach((s,r)=>{const a=s.visible===void 0||s.visible?s.size:{type:"invisible",cachedVisibleSize:s.size},l=s.view;this.addView(l,a,r,!0)}),this._contentSize=this.viewItems.reduce((s,r)=>s+r.size,0),this.saveProportions())}style(e){e?.separatorBorder==="transparent"?(re(this.element,"dv-separator-border"),this.element.style.removeProperty("--dv-separator-border")):(ae(this.element,"dv-separator-border"),e?.separatorBorder&&this.element.style.setProperty("--dv-separator-border",e.separatorBorder))}isViewVisible(e){if(e<0||e>=this.viewItems.length)throw new Error("Index out of bounds");return this.viewItems[e].visible}setViewVisible(e,t){if(e<0||e>=this.viewItems.length)throw new Error("Index out of bounds");const i=this.viewItems[e];i.setVisible(t,i.size),this.distributeEmptySpace(e),this.layoutViews(),this.saveProportions()}getViewSize(e){return e<0||e>=this.viewItems.length?-1:this.viewItems[e].size}resizeView(e,t){if(e<0||e>=this.viewItems.length)return;const i=ne(this.viewItems.length).filter(a=>a!==e),n=[...i.filter(a=>this.viewItems[a].priority===j.Low),e],s=i.filter(a=>this.viewItems[a].priority===j.High),r=this.viewItems[e];t=Math.round(t),t=B(t,r.minimumSize,Math.min(r.maximumSize,this._size)),r.size=t,this.relayout(n,s)}getViews(){return this.viewItems.map(e=>e.view)}onDidChange(e,t){const i=this.viewItems.indexOf(e);if(i<0||i>=this.viewItems.length)return;t=typeof t=="number"?t:e.size,t=B(t,e.minimumSize,e.maximumSize),e.size=t;const n=ne(this.viewItems.length).filter(a=>a!==i),s=[...n.filter(a=>this.viewItems[a].priority===j.Low),i],r=n.filter(a=>this.viewItems[a].priority===j.High);this.relayout([...s,i],r)}addView(e,t={type:"distribute"},i=this.viewItems.length,n){const s=document.createElement("div");s.className="dv-view",s.appendChild(e.element);let r;typeof t=="number"?r=t:t.type==="split"?r=this.getViewSize(t.index)/2:t.type==="invisible"?r={cachedVisibleSize:t.cachedVisibleSize}:r=e.minimumSize;const a=e.onDidChange(h=>this.onDidChange(l,h.size)),l=new to(s,e,r,{dispose:()=>{a.dispose(),this.viewContainer.removeChild(s)}});if(i===this.viewItems.length?this.viewContainer.appendChild(s):this.viewContainer.insertBefore(s,this.viewContainer.children.item(i)),this.viewItems.splice(i,0,l),this.viewItems.length>1){const h=document.createElement("div");h.className="dv-sash";const d=p=>{for(const I of this.viewItems)I.enabled=!1;const v=We(),u=this._orientation===z.HORIZONTAL?p.clientX:p.clientY,m=eo(this.sashes,I=>I.container===h),g=this.viewItems.map(I=>I.size);let _,w;const b=ne(m,-1),D=ne(m+1,this.viewItems.length),T=b.reduce((I,L)=>I+(this.viewItems[L].minimumSize-g[L]),0),C=b.reduce((I,L)=>I+(this.viewItems[L].viewMaximumSize-g[L]),0),S=D.length===0?Number.POSITIVE_INFINITY:D.reduce((I,L)=>I+(g[L]-this.viewItems[L].minimumSize),0),y=D.length===0?Number.NEGATIVE_INFINITY:D.reduce((I,L)=>I+(g[L]-this.viewItems[L].viewMaximumSize),0),G=Math.max(T,y),O=Math.min(S,C),R=this.findFirstSnapIndex(b),V=this.findFirstSnapIndex(D);if(typeof R=="number"){const I=this.viewItems[R],L=Math.floor(I.viewMinimumSize/2);_={index:R,limitDelta:I.visible?G-L:G+L,size:I.size}}if(typeof V=="number"){const I=this.viewItems[V],L=Math.floor(I.viewMinimumSize/2);w={index:V,limitDelta:I.visible?O+L:O-L,size:I.size}}const F=I=>{const le=(this._orientation===z.HORIZONTAL?I.clientX:I.clientY)-u;this.resize(m,le,g,void 0,void 0,G,O,_,w),this.distributeEmptySpace(),this.layoutViews()},Y=()=>{for(const I of this.viewItems)I.enabled=!0;v.release(),this.saveProportions(),document.removeEventListener("pointermove",F),document.removeEventListener("pointerup",Y),document.removeEventListener("pointercancel",Y),document.removeEventListener("contextmenu",Y),this._onDidSashEnd.fire(void 0)};document.addEventListener("pointermove",F),document.addEventListener("pointerup",Y),document.addEventListener("pointercancel",Y),document.addEventListener("contextmenu",Y)};h.addEventListener("pointerdown",d);const c={container:h,disposable:()=>{h.removeEventListener("pointerdown",d),this.sashContainer.removeChild(h)}};this.sashContainer.appendChild(h),this.sashes.push(c)}n||this.relayout([i]),!n&&typeof t!="number"&&t.type==="distribute"&&this.distributeViewSizes(),this._onDidAddView.fire(e)}distributeViewSizes(){const e=[];let t=0;for(const a of this.viewItems)a.maximumSize-a.minimumSize>0&&(e.push(a),t+=a.size);const i=Math.floor(t/e.length);for(const a of e)a.size=B(i,a.minimumSize,a.maximumSize);const n=ne(this.viewItems.length),s=n.filter(a=>this.viewItems[a].priority===j.Low),r=n.filter(a=>this.viewItems[a].priority===j.High);this.relayout(s,r)}removeView(e,t,i=!1){const n=this.viewItems.splice(e,1)[0];if(n.dispose(),this.viewItems.length>=1){const s=Math.max(e-1,0);this.sashes.splice(s,1)[0].disposable()}return i||this.relayout(),t&&t.type==="distribute"&&this.distributeViewSizes(),this._onDidRemoveView.fire(n.view),n.view}getViewCachedVisibleSize(e){if(e<0||e>=this.viewItems.length)throw new Error("Index out of bounds");return this.viewItems[e].cachedVisibleSize}moveView(e,t){const i=this.getViewCachedVisibleSize(e),n=typeof i>"u"?this.getViewSize(e):Z.Invisible(i),s=this.removeView(e,void 0,!0);this.addView(s,n,t)}layout(e,t){const i=Math.max(this.size,this._contentSize);if(this.size=e,this.orthogonalSize=t,this.proportions){let n=0;for(let s=0;s<this.viewItems.length;s++){const r=this.viewItems[s],a=this.proportions[s];typeof a=="number"?n+=a:e-=r.size}for(let s=0;s<this.viewItems.length;s++){const r=this.viewItems[s],a=this.proportions[s];typeof a=="number"&&n>0&&(r.size=B(Math.round(a*e/n),r.minimumSize,r.maximumSize))}}else{const n=ne(this.viewItems.length),s=n.filter(a=>this.viewItems[a].priority===j.Low),r=n.filter(a=>this.viewItems[a].priority===j.High);this.resize(this.viewItems.length-1,e-i,void 0,s,r)}this.distributeEmptySpace(),this.layoutViews()}relayout(e,t){const i=this.viewItems.reduce((n,s)=>n+s.size,0);this.resize(this.viewItems.length-1,this._size-i,void 0,e,t),this.distributeEmptySpace(),this.layoutViews(),this.saveProportions()}distributeEmptySpace(e){const t=this.viewItems.reduce((a,l)=>a+l.size,0);let i=this.size-t;const n=ne(this.viewItems.length-1,-1),s=n.filter(a=>this.viewItems[a].priority===j.Low),r=n.filter(a=>this.viewItems[a].priority===j.High);for(const a of r)ct(n,a);for(const a of s)Ye(n,a);typeof e=="number"&&Ye(n,e);for(let a=0;i!==0&&a<n.length;a++){const l=this.viewItems[n[a]],h=B(l.size+i,l.minimumSize,l.maximumSize),d=h-l.size;i-=d,l.size=h}}saveProportions(){this.proportionalLayout&&this._contentSize>0&&(this._proportions=this.viewItems.map(e=>e.visible?e.size/this._contentSize:void 0))}layoutViews(){if(this._contentSize=this.viewItems.reduce((l,h)=>l+h.size,0),this.updateSashEnablement(),this.viewItems.length===0)return;const e=this.viewItems.filter(l=>l.visible),t=Math.max(0,e.length-1),i=this.margin*t/Math.max(1,e.length);let n=0;const s=[],r=4,a=this.viewItems.reduce((l,h,d)=>{const c=h.visible?1:0;return d===0?l.push(c):l.push(l[d-1]+c),l},[]);this.viewItems.forEach((l,h)=>{n+=this.viewItems[h].size,s.push(n);const d=l.visible?l.size-i:0,c=Math.max(0,a[h]-1),p=h===0||c===0?0:s[h-1]+c/t*i;if(h<this.viewItems.length-1){const v=l.visible?p+d-r/2+this.margin/2:p;this._orientation===z.HORIZONTAL&&(this.sashes[h].container.style.left=`${v}px`,this.sashes[h].container.style.top="0px"),this._orientation===z.VERTICAL&&(this.sashes[h].container.style.left="0px",this.sashes[h].container.style.top=`${v}px`)}this._orientation===z.HORIZONTAL&&(l.container.style.width=`${d}px`,l.container.style.left=`${p}px`,l.container.style.top="",l.container.style.height=""),this._orientation===z.VERTICAL&&(l.container.style.height=`${d}px`,l.container.style.top=`${p}px`,l.container.style.width="",l.container.style.left=""),l.view.layout(l.size-i,this._orthogonalSize)})}findFirstSnapIndex(e){for(const t of e){const i=this.viewItems[t];if(i.visible&&i.snap)return t}for(const t of e){const i=this.viewItems[t];if(i.visible&&i.maximumSize-i.minimumSize>0)return;if(!i.visible&&i.snap)return t}}updateSashEnablement(){let e=!1;const t=this.viewItems.map(l=>e=l.size-l.minimumSize>0||e);e=!1;const i=this.viewItems.map(l=>e=l.maximumSize-l.size>0||e),n=[...this.viewItems].reverse();e=!1;const s=n.map(l=>e=l.size-l.minimumSize>0||e).reverse();e=!1;const r=n.map(l=>e=l.maximumSize-l.size>0||e).reverse();let a=0;for(let l=0;l<this.sashes.length;l++){const h=this.sashes[l],d=this.viewItems[l];a+=d.size;const c=!(t[l]&&r[l+1]),p=!(i[l]&&s[l+1]);if(c&&p){const v=ne(l,-1),u=ne(l+1,this.viewItems.length),m=this.findFirstSnapIndex(v),g=this.findFirstSnapIndex(u),_=typeof m=="number"&&!this.viewItems[m].visible,w=typeof g=="number"&&!this.viewItems[g].visible;_&&s[l]&&(a>0||this.startSnappingEnabled)?this.updateSash(h,K.MINIMUM):w&&t[l]&&(a<this._contentSize||this.endSnappingEnabled)?this.updateSash(h,K.MAXIMUM):this.updateSash(h,K.DISABLED)}else c&&!p?this.updateSash(h,K.MINIMUM):!c&&p?this.updateSash(h,K.MAXIMUM):this.updateSash(h,K.ENABLED)}}updateSash(e,t){x(e.container,"dv-disabled",t===K.DISABLED),x(e.container,"dv-enabled",t===K.ENABLED),x(e.container,"dv-maximum",t===K.MAXIMUM),x(e.container,"dv-minimum",t===K.MINIMUM)}createViewContainer(){const e=document.createElement("div");return e.className="dv-view-container",e}createSashContainer(){const e=document.createElement("div");return e.className="dv-sash-container",e}createContainer(){const e=document.createElement("div"),t=this._orientation===z.HORIZONTAL?"dv-horizontal":"dv-vertical";return e.className=`dv-split-view-container ${t}`,e}dispose(){this._onDidSashEnd.dispose(),this._onDidAddView.dispose(),this._onDidRemoveView.dispose();for(let e=0;e<this.element.children.length;e++)if(this.element.children.item(e)===this.element){this.element.removeChild(this.element);break}for(const e of this.viewItems)e.dispose();this.element.remove()}}const ft=Object.keys({orientation:void 0,descriptor:void 0,proportionalLayout:void 0,styles:void 0,margin:void 0,disableAutoResizing:void 0,className:void 0});class ti extends E{get onDidAddView(){return this.splitview.onDidAddView}get onDidRemoveView(){return this.splitview.onDidRemoveView}get minimumSize(){return this.splitview.minimumSize}get maximumSize(){return this.splitview.maximumSize}get orientation(){return this.splitview.orientation}get size(){return this.splitview.size}get orthogonalSize(){return this.splitview.orthogonalSize}constructor(e,t){var i;super(),this.paneItems=[],this.skipAnimation=!1,this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this._orientation=(i=t.orientation)!==null&&i!==void 0?i:z.VERTICAL,this.element=document.createElement("div"),this.element.className="dv-pane-container",e.appendChild(this.element),this.splitview=new xe(this.element,{orientation:this._orientation,proportionalLayout:!1,descriptor:t.descriptor}),this.getPanes().forEach(n=>{const s=new E(n.onDidChangeExpansionState(()=>{this.setupAnimation(),this._onDidChange.fire(void 0)})),r={pane:n,disposable:{dispose:()=>{s.dispose()}}};this.paneItems.push(r),n.orthogonalSize=this.splitview.orthogonalSize}),this.addDisposables(this._onDidChange,this.splitview.onDidSashEnd(()=>{this._onDidChange.fire(void 0)}),this.splitview.onDidAddView(()=>{this._onDidChange.fire()}),this.splitview.onDidRemoveView(()=>{this._onDidChange.fire()}))}setViewVisible(e,t){this.splitview.setViewVisible(e,t)}addPane(e,t,i=this.splitview.length,n=!1){const s=e.onDidChangeExpansionState(()=>{this.setupAnimation(),this._onDidChange.fire(void 0)}),r={pane:e,disposable:{dispose:()=>{s.dispose()}}};this.paneItems.splice(i,0,r),e.orthogonalSize=this.splitview.orthogonalSize,this.splitview.addView(e,t,i,n)}getViewSize(e){return this.splitview.getViewSize(e)}getPanes(){return this.splitview.getViews()}removePane(e,t={skipDispose:!1}){const i=this.paneItems.splice(e,1)[0];return this.splitview.removeView(e),t.skipDispose||(i.disposable.dispose(),i.pane.dispose()),i}moveView(e,t){if(e===t)return;const i=this.removePane(e,{skipDispose:!0});this.skipAnimation=!0;try{this.addPane(i.pane,i.pane.size,t,!1)}finally{this.skipAnimation=!1}}layout(e,t){this.splitview.layout(e,t)}setupAnimation(){this.skipAnimation||(this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=void 0),ae(this.element,"dv-animated"),this.animationTimer=setTimeout(()=>{this.animationTimer=void 0,re(this.element,"dv-animated")},200))}dispose(){super.dispose(),this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=void 0),this.paneItems.forEach(e=>{e.disposable.dispose(),e.pane.dispose()}),this.paneItems=[],this.splitview.dispose(),this.element.remove()}}class J{get minimumWidth(){return this.view.minimumWidth}get maximumWidth(){return this.view.maximumWidth}get minimumHeight(){return this.view.minimumHeight}get maximumHeight(){return this.view.maximumHeight}get priority(){return this.view.priority}get snap(){return this.view.snap}get minimumSize(){return this.orientation===z.HORIZONTAL?this.minimumHeight:this.minimumWidth}get maximumSize(){return this.orientation===z.HORIZONTAL?this.maximumHeight:this.maximumWidth}get minimumOrthogonalSize(){return this.orientation===z.HORIZONTAL?this.minimumWidth:this.minimumHeight}get maximumOrthogonalSize(){return this.orientation===z.HORIZONTAL?this.maximumWidth:this.maximumHeight}get orthogonalSize(){return this._orthogonalSize}get size(){return this._size}get element(){return this.view.element}get width(){return this.orientation===z.HORIZONTAL?this.orthogonalSize:this.size}get height(){return this.orientation===z.HORIZONTAL?this.size:this.orthogonalSize}constructor(e,t,i,n=0){this.view=e,this.orientation=t,this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this._orthogonalSize=i,this._size=n,this._disposable=this.view.onDidChange(s=>{s?this._onDidChange.fire({size:this.orientation===z.VERTICAL?s.width:s.height,orthogonalSize:this.orientation===z.VERTICAL?s.height:s.width}):this._onDidChange.fire({})})}setVisible(e){this.view.setVisible&&this.view.setVisible(e)}layout(e,t){this._size=e,this._orthogonalSize=t,this.view.layout(this.width,this.height)}dispose(){this._onDidChange.dispose(),this._disposable.dispose()}}class U extends E{get width(){return this.orientation===z.HORIZONTAL?this.size:this.orthogonalSize}get height(){return this.orientation===z.HORIZONTAL?this.orthogonalSize:this.size}get minimumSize(){return this.children.length===0?0:Math.max(...this.children.map((e,t)=>this.splitview.isViewVisible(t)?e.minimumOrthogonalSize:0))}get maximumSize(){return Math.min(...this.children.map((e,t)=>this.splitview.isViewVisible(t)?e.maximumOrthogonalSize:Number.POSITIVE_INFINITY))}get minimumOrthogonalSize(){return this.splitview.minimumSize}get maximumOrthogonalSize(){return this.splitview.maximumSize}get orthogonalSize(){return this._orthogonalSize}get size(){return this._size}get minimumWidth(){return this.orientation===z.HORIZONTAL?this.minimumOrthogonalSize:this.minimumSize}get minimumHeight(){return this.orientation===z.HORIZONTAL?this.minimumSize:this.minimumOrthogonalSize}get maximumWidth(){return this.orientation===z.HORIZONTAL?this.maximumOrthogonalSize:this.maximumSize}get maximumHeight(){return this.orientation===z.HORIZONTAL?this.maximumSize:this.maximumOrthogonalSize}get priority(){if(this.children.length===0)return j.Normal;const e=this.children.map(t=>typeof t.priority>"u"?j.Normal:t.priority);return e.some(t=>t===j.High)?j.High:e.some(t=>t===j.Low)?j.Low:j.Normal}get disabled(){return this.splitview.disabled}set disabled(e){this.splitview.disabled=e}get margin(){return this.splitview.margin}set margin(e){this.splitview.margin=e,this.children.forEach(t=>{t instanceof U&&(t.margin=e)})}constructor(e,t,i,n,s,r,a,l){if(super(),this.orientation=e,this.proportionalLayout=t,this.styles=i,this._childrenDisposable=N.NONE,this.children=[],this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this._onDidVisibilityChange=new f,this.onDidVisibilityChange=this._onDidVisibilityChange.event,this._orthogonalSize=s,this._size=n,this.element=document.createElement("div"),this.element.className="dv-branch-node",!l)this.splitview=new xe(this.element,{orientation:this.orientation,proportionalLayout:t,styles:i,margin:a}),this.splitview.layout(this.size,this.orthogonalSize);else{const h={views:l.map(d=>({view:d.node,size:d.node.size,visible:d.node instanceof J&&d.visible!==void 0?d.visible:!0})),size:this.orthogonalSize};this.children=l.map(d=>d.node),this.splitview=new xe(this.element,{orientation:this.orientation,descriptor:h,proportionalLayout:t,styles:i,margin:a})}this.disabled=r,this.addDisposables(this._onDidChange,this._onDidVisibilityChange,this.splitview.onDidSashEnd(()=>{this._onDidChange.fire({})})),this.setupChildrenEvents()}setVisible(e){}isChildVisible(e){if(e<0||e>=this.children.length)throw new Error("Invalid index");return this.splitview.isViewVisible(e)}setChildVisible(e,t){if(e<0||e>=this.children.length)throw new Error("Invalid index");if(this.splitview.isViewVisible(e)===t)return;const i=this.splitview.contentSize===0;this.splitview.setViewVisible(e,t);const n=this.splitview.contentSize===0;(t&&i||!t&&n)&&this._onDidVisibilityChange.fire({visible:t})}moveChild(e,t){if(e===t)return;if(e<0||e>=this.children.length)throw new Error("Invalid from index");e<t&&t--,this.splitview.moveView(e,t);const i=this._removeChild(e);this._addChild(i,t)}getChildSize(e){if(e<0||e>=this.children.length)throw new Error("Invalid index");return this.splitview.getViewSize(e)}resizeChild(e,t){if(e<0||e>=this.children.length)throw new Error("Invalid index");this.splitview.resizeView(e,t)}layout(e,t){this._size=t,this._orthogonalSize=e,this.splitview.layout(t,e)}addChild(e,t,i,n){if(i<0||i>this.children.length)throw new Error("Invalid index");this.splitview.addView(e,t,i,n),this._addChild(e,i)}getChildCachedVisibleSize(e){if(e<0||e>=this.children.length)throw new Error("Invalid index");return this.splitview.getViewCachedVisibleSize(e)}removeChild(e,t){if(e<0||e>=this.children.length)throw new Error("Invalid index");return this.splitview.removeView(e,t),this._removeChild(e)}_addChild(e,t){this.children.splice(t,0,e),this.setupChildrenEvents()}_removeChild(e){const[t]=this.children.splice(e,1);return this.setupChildrenEvents(),t}setupChildrenEvents(){this._childrenDisposable.dispose(),this._childrenDisposable=new E(ee.any(...this.children.map(e=>e.onDidChange))(e=>{this._onDidChange.fire({size:e.orthogonalSize})}),...this.children.map((e,t)=>e instanceof U?e.onDidVisibilityChange(({visible:i})=>{this.setChildVisible(t,i)}):N.NONE))}dispose(){this._childrenDisposable.dispose(),this.splitview.dispose(),this.children.forEach(e=>e.dispose()),super.dispose()}}function _t(o,e){if(o instanceof J)return o;if(o instanceof U)return _t(o.children[e?o.children.length-1:0],e);throw new Error("invalid node")}function Qi(o,e,t){if(o instanceof U){const i=new U(o.orientation,o.proportionalLayout,o.styles,e,t,o.disabled,o.margin);for(let n=o.children.length-1;n>=0;n--){const s=o.children[n];i.addChild(Qi(s,s.size,s.orthogonalSize),s.size,0,!0)}return i}else return new J(o.view,o.orientation,t)}function bt(o,e,t){if(o instanceof U){const i=new U(he(o.orientation),o.proportionalLayout,o.styles,e,t,o.disabled,o.margin);let n=0;for(let s=o.children.length-1;s>=0;s--){const r=o.children[s],a=r instanceof U?r.orthogonalSize:r.size;let l=o.size===0?0:Math.round(e*a/o.size);n+=l,s===0&&(l+=e-n),i.addChild(bt(r,t,l),l,0,!0)}return i}else return new J(o.view,he(o.orientation),t)}function io(o){const e=o.parentElement;if(!e)throw new Error("Invalid grid element");let t=e.firstElementChild,i=0;for(;t!==o&&t!==e.lastElementChild&&t;)t=t.nextElementSibling,i++;return i}function H(o){const e=o.parentElement;if(!e)throw new Error("Invalid grid element");if(/\bdv-grid-view\b/.test(e.className))return[];const t=io(e),i=e.parentElement.parentElement.parentElement;return[...H(i),t]}function q(o,e,t){const i=so(o,e),n=no(t);if(i===n){const[s,r]=ge(e);let a=r;return(t==="right"||t==="bottom")&&(a+=1),[...s,a]}else{const s=t==="right"||t==="bottom"?1:0;return[...e,s]}}function no(o){return o==="top"||o==="bottom"?z.VERTICAL:z.HORIZONTAL}function so(o,e){return e.length%2===0?he(o):o}const he=o=>o===z.HORIZONTAL?z.VERTICAL:z.HORIZONTAL;function oo(o){return!!o.children}const wt=(o,e)=>{const t=e===z.VERTICAL?o.box.width:o.box.height;return oo(o)?{type:"branch",data:o.children.map(i=>wt(i,he(e))),size:t}:typeof o.cachedVisibleSize=="number"?{type:"leaf",data:o.view.toJSON(),size:o.cachedVisibleSize,visible:!1}:{type:"leaf",data:o.view.toJSON(),size:t}};class en{get length(){return this._root?this._root.children.length:0}get orientation(){return this.root.orientation}set orientation(e){if(this.root.orientation===e)return;const{size:t,orthogonalSize:i}=this.root;this.root=bt(this.root,i,t),this.root.layout(t,i)}get width(){return this.root.width}get height(){return this.root.height}get minimumWidth(){return this.root.minimumWidth}get minimumHeight(){return this.root.minimumHeight}get maximumWidth(){return this.root.maximumHeight}get maximumHeight(){return this.root.maximumHeight}get locked(){return this._locked}set locked(e){this._locked=e;const t=[this.root];for(;t.length>0;){const i=t.pop();i instanceof U&&(i.disabled=e,t.push(...i.children))}}get margin(){return this._margin}set margin(e){this._margin=e,this.root.margin=e}maximizedView(){var e;return(e=this._maximizedNode)===null||e===void 0?void 0:e.leaf.view}hasMaximizedView(){return this._maximizedNode!==void 0}maximizeView(e){var t;const i=H(e.element),[n,s]=this.getNode(i);if(!(s instanceof J)||((t=this._maximizedNode)===null||t===void 0?void 0:t.leaf)===s)return;this.hasMaximizedView()&&this.exitMaximizedView(),wt(this.getView(),this.orientation);const r=[];function a(l,h){for(let d=0;d<l.children.length;d++){const c=l.children[d];c instanceof J?c!==h&&(l.isChildVisible(d)?l.setChildVisible(d,!1):r.push(c)):a(c,h)}}a(this.root,s),this._maximizedNode={leaf:s,hiddenOnMaximize:r},this._onDidMaximizedNodeChange.fire({view:s.view,isMaximized:!0})}exitMaximizedView(){if(!this._maximizedNode)return;const e=this._maximizedNode.hiddenOnMaximize;function t(n){for(let s=n.children.length-1;s>=0;s--){const r=n.children[s];r instanceof J?e.includes(r)||n.setChildVisible(s,!0):t(r)}}t(this.root);const i=this._maximizedNode.leaf;this._maximizedNode=void 0,this._onDidMaximizedNodeChange.fire({view:i.view,isMaximized:!1})}serialize(){const e=this.maximizedView();let t;e&&(t=H(e.element));const i=this._onDidMaximizedNodeChange.pause();try{this.hasMaximizedView()&&this.exitMaximizedView();const s={root:wt(this.getView(),this.orientation),width:this.width,height:this.height,orientation:this.orientation};return t&&(s.maximizedNode={location:t}),e&&this.maximizeView(e),s}finally{i.dispose()}}dispose(){this.disposable.dispose(),this._onDidChange.dispose(),this._onDidMaximizedNodeChange.dispose(),this._onDidViewVisibilityChange.dispose(),this.root.dispose(),this._maximizedNode=void 0,this.element.remove()}clear(){const e=this.root.orientation;this.root=new U(e,this.proportionalLayout,this.styles,this.root.size,this.root.orthogonalSize,this.locked,this.margin)}deserialize(e,t){const i=e.orientation,n=i===z.VERTICAL?e.height:e.width;if(this._deserialize(e.root,i,t,n),this.layout(e.width,e.height),e.maximizedNode){const s=e.maximizedNode.location,[r,a]=this.getNode(s);if(!(a instanceof J))return;this.maximizeView(a.view)}}_deserialize(e,t,i,n){this.root=this._deserializeNode(e,t,i,n)}_deserializeNode(e,t,i,n){var s;let r;if(e.type==="branch"){const l=e.data.map(h=>({node:this._deserializeNode(h,he(t),i,e.size),visible:h.visible}));r=new U(t,this.proportionalLayout,this.styles,e.size,n,this.locked,this.margin,l)}else{const a=i.fromJSON(e);typeof e.visible=="boolean"&&((s=a.setVisible)===null||s===void 0||s.call(a,e.visible)),r=new J(a,t,n,e.size)}return r}get root(){return this._root}set root(e){const t=this._root;t&&(t.dispose(),this._maximizedNode=void 0,this.element.removeChild(t.element)),this._root=e,this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(i=>{this._onDidChange.fire(i)})}normalize(){if(!this._root||this._root.children.length!==1)return;const e=this.root,t=e.children[0];if(t instanceof J)return;e.element.remove();const i=e.removeChild(0);e.dispose(),i.dispose(),this._root=Qi(t,t.size,t.orthogonalSize),this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(n=>{this._onDidChange.fire(n)})}insertOrthogonalSplitviewAtRoot(){if(!this._root)return;const e=this.root;if(e.element.remove(),this._root=new U(he(e.orientation),this.proportionalLayout,this.styles,this.root.orthogonalSize,this.root.size,this.locked,this.margin),e.children.length!==0)if(e.children.length===1){const t=e.children[0];e.removeChild(0).dispose(),e.dispose(),this._root.addChild(bt(t,t.orthogonalSize,t.size),Z.Distribute,0)}else this._root.addChild(e,Z.Distribute,0);this.element.appendChild(this._root.element),this.disposable.value=this._root.onDidChange(t=>{this._onDidChange.fire(t)})}next(e){return this.progmaticSelect(e)}previous(e){return this.progmaticSelect(e,!0)}getView(e){const t=e?this.getNode(e)[1]:this.root;return this._getViews(t,this.orientation)}_getViews(e,t,i){const n={height:e.height,width:e.width};if(e instanceof J)return{box:n,view:e.view,cachedVisibleSize:i};const s=[];for(let r=0;r<e.children.length;r++){const a=e.children[r],l=e.getChildCachedVisibleSize(r);s.push(this._getViews(a,he(t),l))}return{box:n,children:s}}progmaticSelect(e,t=!1){const[i,n]=this.getNode(e);if(!(n instanceof J))throw new Error("invalid location");for(let s=i.length-1;s>-1;s--){const r=i[s],a=e[s]||0;if(t?a-1>-1:a+1<r.children.length)return _t(r.children[t?a-1:a+1],t)}return _t(this.root,t)}constructor(e,t,i,n,s){this.proportionalLayout=e,this.styles=t,this._locked=!1,this._margin=0,this._maximizedNode=void 0,this.disposable=new X,this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this._onDidViewVisibilityChange=new f,this.onDidViewVisibilityChange=this._onDidViewVisibilityChange.event,this._onDidMaximizedNodeChange=new f,this.onDidMaximizedNodeChange=this._onDidMaximizedNodeChange.event,this.element=document.createElement("div"),this.element.className="dv-grid-view",this._locked=n??!1,this._margin=s??0,this.root=new U(i,e,t,0,0,this.locked,this.margin)}isViewVisible(e){const[t,i]=ge(e),[,n]=this.getNode(t);if(!(n instanceof U))throw new Error("Invalid from location");return n.isChildVisible(i)}setViewVisible(e,t){this.hasMaximizedView()&&this.exitMaximizedView();const[i,n]=ge(e),[,s]=this.getNode(i);if(!(s instanceof U))throw new Error("Invalid from location");this._onDidViewVisibilityChange.fire(),s.setChildVisible(n,t)}moveView(e,t,i){this.hasMaximizedView()&&this.exitMaximizedView();const[,n]=this.getNode(e);if(!(n instanceof U))throw new Error("Invalid location");n.moveChild(t,i)}addView(e,t,i){this.hasMaximizedView()&&this.exitMaximizedView();const[n,s]=ge(i),[r,a]=this.getNode(n);if(a instanceof U){const l=new J(e,he(a.orientation),a.orthogonalSize);a.addChild(l,t,s)}else{const[l,...h]=[...r].reverse(),[d,...c]=[...n].reverse();let p=0;const v=l.getChildCachedVisibleSize(d);typeof v=="number"&&(p=Z.Invisible(v)),l.removeChild(d).dispose();const m=new U(a.orientation,this.proportionalLayout,this.styles,a.size,a.orthogonalSize,this.locked,this.margin);l.addChild(m,a.size,d);const g=new J(a.view,l.orientation,a.size);m.addChild(g,p,0),typeof t!="number"&&t.type==="split"&&(t={type:"split",index:0});const _=new J(e,l.orientation,a.size);m.addChild(_,t,s)}}remove(e,t){const i=H(e.element);return this.removeView(i,t)}removeView(e,t){this.hasMaximizedView()&&this.exitMaximizedView();const[i,n]=ge(e),[s,r]=this.getNode(i);if(!(r instanceof U))throw new Error("Invalid location");const a=r.children[n];if(!(a instanceof J))throw new Error("Invalid location");if(r.removeChild(n,t),a.dispose(),r.children.length!==1)return a.view;const l=r.children[0];if(s.length===0)return l instanceof J||(r.removeChild(0,t),this.root=l),a.view;const[h,...d]=[...s].reverse(),[c,...p]=[...i].reverse(),v=r.isChildVisible(0);r.removeChild(0,t);const u=h.children.map((m,g)=>h.getChildSize(g));if(h.removeChild(c,t).dispose(),l instanceof U){u.splice(c,1,...l.children.map(m=>m.size));for(let m=0;m<l.children.length;m++){const g=l.children[m];h.addChild(g,g.size,c+m)}for(;l.children.length>0;)l.removeChild(0)}else{const m=new J(l.view,he(l.orientation),l.size),g=v?l.orthogonalSize:Z.Invisible(l.orthogonalSize);h.addChild(m,g,c)}l.dispose();for(let m=0;m<u.length;m++)h.resizeChild(m,u[m]);return a.view}layout(e,t){const[i,n]=this.root.orientation===z.HORIZONTAL?[t,e]:[e,t];this.root.layout(i,n)}getNode(e,t=this.root,i=[]){if(e.length===0)return[i,t];if(!(t instanceof U))throw new Error("Invalid location");const[n,...s]=e;if(n<0||n>=t.children.length)throw new Error("Invalid location");const r=t.children[n];return i.push(t),this.getNode(s,r,i)}}const Dt=Object.keys({disableAutoResizing:void 0,proportionalLayout:void 0,orientation:void 0,hideBorders:void 0,className:void 0});class kt extends E{get element(){return this._element}get disableResizing(){return this._disableResizing}set disableResizing(e){this._disableResizing=e}constructor(e,t=!1){super(),this._lastWidth=-1,this._lastHeight=-1,this._disableResizing=t,this._element=e,this.addDisposables(Ue(this._element,i=>{if(this.isDisposed||this.disableResizing||!this._element.offsetParent||!Ys(this._element))return;const n=Math.round(i.contentRect.width),s=Math.round(i.contentRect.height);n===this._lastWidth&&s===this._lastHeight||(this._lastWidth=n,this._lastHeight=s,this.layout(n,s))}))}}const ro=Mt();function st(o){switch(o){case"left":return"left";case"right":return"right";case"above":return"top";case"below":return"bottom";default:return"center"}}class tn extends kt{get id(){return this._id}get size(){return this._groups.size}get groups(){return Array.from(this._groups.values()).map(e=>e.value)}get width(){return this.gridview.width}get height(){return this.gridview.height}get minimumHeight(){return this.gridview.minimumHeight}get maximumHeight(){return this.gridview.maximumHeight}get minimumWidth(){return this.gridview.minimumWidth}get maximumWidth(){return this.gridview.maximumWidth}get activeGroup(){return this._activeGroup}get locked(){return this.gridview.locked}set locked(e){this.gridview.locked=e}constructor(e,t){var i;super(document.createElement("div"),t.disableAutoResizing),this._id=ro.next(),this._groups=new Map,this._onDidRemove=new f,this.onDidRemove=this._onDidRemove.event,this._onDidAdd=new f,this.onDidAdd=this._onDidAdd.event,this._onDidMaximizedChange=new f,this.onDidMaximizedChange=this._onDidMaximizedChange.event,this._onDidActiveChange=new f,this.onDidActiveChange=this._onDidActiveChange.event,this._bufferOnDidLayoutChange=new qt,this.onDidLayoutChange=this._bufferOnDidLayoutChange.onEvent,this._onDidViewVisibilityChangeMicroTaskQueue=new qt,this.onDidViewVisibilityChangeMicroTaskQueue=this._onDidViewVisibilityChangeMicroTaskQueue.onEvent,this.element.style.height="100%",this.element.style.width="100%",this._classNames=new at(this.element),this._classNames.setClassNames((i=t.className)!==null&&i!==void 0?i:""),e.appendChild(this.element),this.gridview=new en(!!t.proportionalLayout,t.styles,t.orientation,t.locked,t.margin),this.gridview.locked=!!t.locked,this.element.appendChild(this.gridview.element),this.layout(0,0,!0),this.addDisposables(this.gridview.onDidMaximizedNodeChange(n=>{this._onDidMaximizedChange.fire({panel:n.view,isMaximized:n.isMaximized})}),this.gridview.onDidViewVisibilityChange(()=>this._onDidViewVisibilityChangeMicroTaskQueue.fire()),this.onDidViewVisibilityChangeMicroTaskQueue(()=>{this.forceRelayout()}),N.from(()=>{var n;(n=this.element.parentElement)===null||n===void 0||n.removeChild(this.element)}),this.gridview.onDidChange(()=>{this._bufferOnDidLayoutChange.fire()}),ee.any(this.onDidAdd,this.onDidRemove,this.onDidActiveChange)(()=>{this._bufferOnDidLayoutChange.fire()}),this._onDidMaximizedChange,this._onDidViewVisibilityChangeMicroTaskQueue,this._bufferOnDidLayoutChange)}setVisible(e,t){this.gridview.setViewVisible(H(e.element),t),this._bufferOnDidLayoutChange.fire()}isVisible(e){return this.gridview.isViewVisible(H(e.element))}updateOptions(e){var t,i,n,s;e.proportionalLayout,e.orientation&&(this.gridview.orientation=e.orientation),"disableResizing"in e&&(this.disableResizing=(t=e.disableAutoResizing)!==null&&t!==void 0?t:!1),"locked"in e&&(this.locked=(i=e.locked)!==null&&i!==void 0?i:!1),"margin"in e&&(this.gridview.margin=(n=e.margin)!==null&&n!==void 0?n:0),"className"in e&&this._classNames.setClassNames((s=e.className)!==null&&s!==void 0?s:"")}maximizeGroup(e){this.gridview.maximizeView(e),this.doSetGroupActive(e)}isMaximizedGroup(e){return this.gridview.maximizedView()===e}exitMaximizedGroup(){this.gridview.exitMaximizedView()}hasMaximizedGroup(){return this.gridview.hasMaximizedView()}doAddGroup(e,t=[0],i,n=this.gridview){n.addView(e,i??Z.Distribute,t),this._onDidAdd.fire(e)}doRemoveGroup(e,t){if(!this._groups.has(e.id))throw new Error("invalid operation");const i=this._groups.get(e.id),n=this.gridview.remove(e,Z.Distribute);if(i&&!t?.skipDispose&&(i.disposable.dispose(),i.value.dispose(),this._groups.delete(e.id),this._onDidRemove.fire(e)),!t?.skipActive&&this._activeGroup===e){const s=Array.from(this._groups.values());this.doSetGroupActive(s.length>0?s[0].value:void 0)}return n}getPanel(e){var t;return(t=this._groups.get(e))===null||t===void 0?void 0:t.value}doSetGroupActive(e){this._activeGroup!==e&&(this._activeGroup&&this._activeGroup.setActive(!1),e&&e.setActive(!0),this._activeGroup=e,this._onDidActiveChange.fire(e))}removeGroup(e){this.doRemoveGroup(e)}moveToNext(e){var t;if(e||(e={}),!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}const i=H(e.group.element),n=(t=this.gridview.next(i))===null||t===void 0?void 0:t.view;this.doSetGroupActive(n)}moveToPrevious(e){var t;if(e||(e={}),!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}const i=H(e.group.element),n=(t=this.gridview.previous(i))===null||t===void 0?void 0:t.view;this.doSetGroupActive(n)}forceRelayout(){this.layout(this.width,this.height,!0)}layout(e,t,i){(i||e!==this.width||t!==this.height)&&(this.gridview.element.style.height=`${t}px`,this.gridview.element.style.width=`${e}px`,this.gridview.layout(e,t))}dispose(){this._onDidActiveChange.dispose(),this._onDidAdd.dispose(),this._onDidRemove.dispose();for(const e of this.groups)e.dispose();this.gridview.dispose(),super.dispose()}}class nn{get minimumSize(){return this.component.minimumSize}get maximumSize(){return this.component.maximumSize}get width(){return this.component.width}get height(){return this.component.height}get length(){return this.component.length}get orientation(){return this.component.orientation}get panels(){return this.component.panels}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidAddView(){return this.component.onDidAddView}get onDidRemoveView(){return this.component.onDidRemoveView}constructor(e){this.component=e}removePanel(e,t){this.component.removePanel(e,t)}focus(){this.component.focus()}getPanel(e){return this.component.getPanel(e)}layout(e,t){return this.component.layout(e,t)}addPanel(e){return this.component.addPanel(e)}movePanel(e,t){this.component.movePanel(e,t)}fromJSON(e){this.component.fromJSON(e)}toJSON(){return this.component.toJSON()}clear(){this.component.clear()}updateOptions(e){this.component.updateOptions(e)}dispose(){this.component.dispose()}}class He{get minimumSize(){return this.component.minimumSize}get maximumSize(){return this.component.maximumSize}get width(){return this.component.width}get height(){return this.component.height}get panels(){return this.component.panels}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get onDidAddView(){return this.component.onDidAddView}get onDidRemoveView(){return this.component.onDidRemoveView}get onDidDrop(){return this.component.onDidDrop}get onUnhandledDragOver(){return this.component.onUnhandledDragOver}constructor(e){this.component=e}removePanel(e){this.component.removePanel(e)}getPanel(e){return this.component.getPanel(e)}movePanel(e,t){this.component.movePanel(e,t)}focus(){this.component.focus()}layout(e,t){this.component.layout(e,t)}addPanel(e){return this.component.addPanel(e)}fromJSON(e){this.component.fromJSON(e)}toJSON(){return this.component.toJSON()}clear(){this.component.clear()}updateOptions(e){this.component.updateOptions(e)}dispose(){this.component.dispose()}}class sn{get width(){return this.component.width}get height(){return this.component.height}get minimumHeight(){return this.component.minimumHeight}get maximumHeight(){return this.component.maximumHeight}get minimumWidth(){return this.component.minimumWidth}get maximumWidth(){return this.component.maximumWidth}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidAddPanel(){return this.component.onDidAddGroup}get onDidRemovePanel(){return this.component.onDidRemoveGroup}get onDidActivePanelChange(){return this.component.onDidActiveGroupChange}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get panels(){return this.component.groups}get orientation(){return this.component.orientation}set orientation(e){this.component.updateOptions({orientation:e})}constructor(e){this.component=e}focus(){this.component.focus()}layout(e,t,i=!1){this.component.layout(e,t,i)}addPanel(e){return this.component.addPanel(e)}removePanel(e,t){this.component.removePanel(e,t)}movePanel(e,t){this.component.movePanel(e,t)}getPanel(e){return this.component.getPanel(e)}fromJSON(e){return this.component.fromJSON(e)}toJSON(){return this.component.toJSON()}clear(){this.component.clear()}updateOptions(e){this.component.updateOptions(e)}dispose(){this.component.dispose()}}class Lt{get id(){return this.component.id}get width(){return this.component.width}get height(){return this.component.height}get minimumHeight(){return this.component.minimumHeight}get maximumHeight(){return this.component.maximumHeight}get minimumWidth(){return this.component.minimumWidth}get maximumWidth(){return this.component.maximumWidth}get size(){return this.component.size}get tabGroupColors(){return this.component.tabGroupColorPalette.entries()}get totalPanels(){return this.component.totalPanels}get onDidActiveGroupChange(){return this.component.onDidActiveGroupChange}get onDidAddGroup(){return this.component.onDidAddGroup}get onDidRemoveGroup(){return this.component.onDidRemoveGroup}get onDidActivePanelChange(){return this.component.onDidActivePanelChange}get onDidAddPanel(){return this.component.onDidAddPanel}get onDidRemovePanel(){return this.component.onDidRemovePanel}get onDidMovePanel(){return this.component.onDidMovePanel}get onDidLayoutFromJSON(){return this.component.onDidLayoutFromJSON}get onDidLayoutChange(){return this.component.onDidLayoutChange}get onDidDrop(){return this.component.onDidDrop}get onWillDrop(){return this.component.onWillDrop}get onWillMutateLayout(){return this.component.onWillMutateLayout}get onDidMutateLayout(){return this.component.onDidMutateLayout}get onWillShowOverlay(){return this.component.onWillShowOverlay}get onWillDragGroup(){return this.component.onWillDragGroup}get onWillDragPanel(){return this.component.onWillDragPanel}get onUnhandledDragOver(){return this.component.onUnhandledDragOver}get onDidPopoutGroupSizeChange(){return this.component.onDidPopoutGroupSizeChange}get onDidPopoutGroupPositionChange(){return this.component.onDidPopoutGroupPositionChange}get onDidAddPopoutGroup(){return this.component.onDidAddPopoutGroup}get onDidRemovePopoutGroup(){return this.component.onDidRemovePopoutGroup}get onDidOpenPopoutWindowFail(){return this.component.onDidOpenPopoutWindowFail}getPopouts(){return this.component.getPopouts()}get onDidCreateTabGroup(){return this.component.onDidCreateTabGroup}get onDidDestroyTabGroup(){return this.component.onDidDestroyTabGroup}get onDidAddPanelToTabGroup(){return this.component.onDidAddPanelToTabGroup}get onDidRemovePanelFromTabGroup(){return this.component.onDidRemovePanelFromTabGroup}get onDidTabGroupChange(){return this.component.onDidTabGroupChange}get onDidTabGroupCollapsedChange(){return this.component.onDidTabGroupCollapsedChange}get panels(){return this.component.panels}get groups(){return this.component.groups}adjacentGroupInDirection(e,t){return this.component.adjacentGroupInDirection(e,t)}get activePanel(){return this.component.activePanel}get activeGroup(){return this.component.activeGroup}constructor(e){this.component=e}focus(){this.component.focus()}getPanel(e){return this.component.getGroupPanel(e)}layout(e,t,i=!1){this.component.layout(e,t,i)}addPanel(e){return this.component.withOrigin("api",()=>this.component.addPanel(e))}removePanel(e){this.component.withOrigin("api",()=>this.component.removePanel(e))}addGroup(e){return this.component.addGroup(e)}closeAllGroups(){return this.component.withOrigin("api",()=>this.component.closeAllGroups())}removeGroup(e){this.component.withOrigin("api",()=>this.component.removeGroup(e))}getGroup(e){return this.component.getPanel(e)}addFloatingGroup(e,t){return this.component.withOrigin("api",()=>this.component.addFloatingGroup(e,t))}fromJSON(e,t){this.component.withOrigin("api",()=>this.component.fromJSON(e,t))}toJSON(){return this.component.toJSON()}clear(){this.component.withOrigin("api",()=>this.component.clear())}moveToNext(e){this.component.moveToNext(e)}moveToPrevious(e){this.component.moveToPrevious(e)}maximizeGroup(e){this.component.maximizeGroup(e.group)}hasMaximizedGroup(){return this.component.hasMaximizedGroup()}exitMaximizedGroup(){this.component.exitMaximizedGroup()}get onDidMaximizedGroupChange(){return this.component.onDidMaximizedGroupChange}addPopoutGroup(e,t){return this.component.withOrigin("api",()=>this.component.addPopoutGroup(e,t))}addEdgeGroup(e,t){return this.component.addEdgeGroup(e,t)}getEdgeGroup(e){return this.component.getEdgeGroup(e)}setEdgeGroupVisible(e,t){this.component.setEdgeGroupVisible(e,t)}isEdgeGroupVisible(e){return this.component.isEdgeGroupVisible(e)}removeEdgeGroup(e){this.component.removeEdgeGroup(e)}updateOptions(e){this.component.updateOptions(e)}_getGroupModel(e){const t=this.component.getPanel(e);if(!t)throw new Error(`dockview: group '${e}' not found`);return t.model}createTabGroup(e){const t=this._getGroupModel(e.groupId);return this.component.withOrigin("api",()=>t.createTabGroup({label:e.label,color:e.color,componentParams:e.componentParams}))}dissolveTabGroup(e){const t=this._getGroupModel(e.groupId);this.component.withOrigin("api",()=>t.dissolveTabGroup(e.tabGroupId))}addPanelToTabGroup(e){const t=this._getGroupModel(e.groupId);this.component.withOrigin("api",()=>t.addPanelToTabGroup(e.tabGroupId,e.panelId,e.index))}removePanelFromTabGroup(e){const t=this._getGroupModel(e.groupId);this.component.withOrigin("api",()=>t.removePanelFromTabGroup(e.panelId))}getTabGroups(e){return this._getGroupModel(e.groupId).getTabGroups()}getTabGroupForPanel(e){return this._getGroupModel(e.groupId).getTabGroupForPanel(e.panelId)}moveTabGroup(e){this._getGroupModel(e.groupId).moveTabGroup(e.tabGroupId,e.index)}dispose(){this.component.dispose()}}class on extends E{constructor(e,t){super(),this.element=e,this.callbacks=t,this.target=null,this.registerListeners()}onDragEnter(e){this.target=e.target,this.callbacks.onDragEnter(e)}onDragOver(e){e.preventDefault(),this.callbacks.onDragOver&&this.callbacks.onDragOver(e)}onDragLeave(e){this.target===e.target&&(this.target=null,this.callbacks.onDragLeave(e))}onDragEnd(e){this.target=null,this.callbacks.onDragEnd(e)}onDrop(e){this.callbacks.onDrop(e)}registerListeners(){this.addDisposables(P(this.element,"dragenter",e=>{this.onDragEnter(e)},!0)),this.addDisposables(P(this.element,"dragover",e=>{this.onDragOver(e)},!0)),this.addDisposables(P(this.element,"dragleave",e=>{this.onDragLeave(e)})),this.addDisposables(P(this.element,"dragend",e=>{this.onDragEnd(e)})),this.addDisposables(P(this.element,"drop",e=>{this.onDrop(e)}))}}const ao={value:50,type:"percentage"},lo=100,ho=100;function Ct(){const o=document.createElement("div");o.className="dv-drop-target-dropzone";const e=document.createElement("div");return e.className="dv-drop-target-selection",o.appendChild(e),{dropzone:o,selection:e}}function rn(o,e,t,i){var n,s,r;const a=(n=i?.smallWidthBoundary)!==null&&n!==void 0?n:lo,l=(s=i?.smallHeightBoundary)!==null&&s!==void 0?s:ho,h=e<a,d=t<l,c=o==="left",p=o==="right",v=o==="top",u=o==="bottom",m=!h&&p,g=!h&&c,_=!d&&v,w=!d&&u;let b=1;const D=(r=i?.size)!==null&&r!==void 0?r:ao;return D.type==="percentage"?b=B(D.value,0,100)/100:((m||g)&&(b=B(0,D.value,e)/e),(_||w)&&(b=B(0,D.value,t)/t)),{isSmallX:h,isSmallY:d,isLeft:c,isRight:p,isTop:v,isBottom:u,rightClass:m,leftClass:g,topClass:_,bottomClass:w,size:b}}function an(o,e,t,i,n){const s=rn(e,t,i,n),{rightClass:r,leftClass:a,topClass:l,bottomClass:h,size:d}=s,c={top:"0px",left:"0px",width:"100%",height:"100%"};r?(c.left=`${100*(1-d)}%`,c.width=`${100*d}%`):a?c.width=`${100*d}%`:l?c.height=`${100*d}%`:h&&(c.top=`${100*(1-d)}%`,c.height=`${100*d}%`),s.isSmallX&&s.isLeft&&(c.width="4px"),s.isSmallX&&s.isRight&&(c.left=`${t-4}px`,c.width="4px"),s.isSmallY&&s.isTop&&(c.height="4px"),s.isSmallY&&s.isBottom&&(c.top=`${i-4}px`,c.height="4px"),o.style.top=c.top,o.style.left=c.left,o.style.width=c.width,o.style.height=c.height,o.style.visibility="visible",(!o.style.transform||o.style.transform==="")&&(o.style.transform="translate3d(0, 0, 0)");const p=s.isSmallX&&(s.isLeft||s.isRight)||s.isSmallY&&(s.isTop||s.isBottom);x(o,"dv-drop-target-small-vertical",s.isSmallY),x(o,"dv-drop-target-small-horizontal",s.isSmallX),x(o,"dv-drop-target-selection-line",p),x(o,"dv-drop-target-left",s.isLeft),x(o,"dv-drop-target-right",s.isRight),x(o,"dv-drop-target-top",s.isTop),x(o,"dv-drop-target-bottom",s.isBottom),x(o,"dv-drop-target-center",e==="center")}function co(o,e){const t=`${Math.round(e.top)}px`,i=`${Math.round(e.left)}px`,n=`${Math.round(e.width)}px`,s=`${Math.round(e.height)}px`;return o.style.top!==t||o.style.left!==i||o.style.width!==n||o.style.height!==s}function uo(o,e){o.style.top=`${Math.round(e.top)}px`,o.style.left=`${Math.round(e.left)}px`,o.style.width=`${Math.round(e.width)}px`,o.style.height=`${Math.round(e.height)}px`,o.style.visibility="visible",(!o.style.transform||o.style.transform==="")&&(o.style.transform="translate3d(0, 0, 0)")}function ln(o){const e=rn(o.quadrant,o.width,o.height,o.overlayModel),{rightClass:t,leftClass:i,topClass:n,bottomClass:s,size:r}=e,a=o.outlineElement.getBoundingClientRect(),l=o.targetModel.getElements(void 0,o.outlineElement),h=l.root,d=l.overlay,c=h.getBoundingClientRect(),p=a.top-c.top,v=a.left-c.left,u={top:p,left:v,width:o.width,height:o.height};return t?(u.left=v+o.width*(1-r),u.width=o.width*r):i?u.width=o.width*r:n?u.height=o.height*r:s&&(u.top=p+o.height*(1-r),u.height=o.height*r),e.isSmallX&&e.isLeft&&(u.width=4),e.isSmallX&&e.isRight&&(u.left=v+o.width-4,u.width=4),e.isSmallY&&e.isTop&&(u.height=4),e.isSmallY&&e.isBottom&&(u.top=p+o.height-4,u.height=4),co(d,u)?(uo(d,u),d.className=`dv-drop-target-anchor${o.className?` ${o.className}`:""}`,x(d,"dv-drop-target-left",e.isLeft),x(d,"dv-drop-target-right",e.isRight),x(d,"dv-drop-target-top",e.isTop),x(d,"dv-drop-target-bottom",e.isBottom),x(d,"dv-drop-target-anchor-line",e.isSmallX&&(e.isLeft||e.isRight)||e.isSmallY&&(e.isTop||e.isBottom)),x(d,"dv-drop-target-center",o.quadrant==="center"),l.changed&&(x(d,"dv-drop-target-anchor-container-changed",!0),setTimeout(()=>{x(d,"dv-drop-target-anchor-container-changed",!1)},10)),{boundsChanged:!0,targetChanged:l.changed}):{boundsChanged:!1,targetChanged:l.changed}}class dn extends Ot{get nativeEvent(){return this.options.nativeEvent}get position(){return this.options.position}constructor(e){super(),this.options=e}}function ii(o){switch(o){case"above":return"top";case"below":return"bottom";case"left":return"left";case"right":return"right";case"within":return"center";default:throw new Error(`invalid direction '${o}'`)}}function po(o){switch(o){case"top":return"above";case"bottom":return"below";case"left":return"left";case"right":return"right";case"center":return"within";default:throw new Error(`invalid position '${o}'`)}}const mo={value:20,type:"percentage"};class fe extends E{get disabled(){return this._disabled}set disabled(e){this._disabled=e}get state(){return this._state}constructor(e,t){super(),this.element=e,this.options=t,this._onDrop=new f,this.onDrop=this._onDrop.event,this._onWillShowOverlay=new f,this.onWillShowOverlay=this._onWillShowOverlay.event,this._disabled=!1,this._acceptedTargetZonesSet=new Set(this.options.acceptedTargetZones),this.dnd=new on(this.element,{onDragEnter:()=>{var i,n,s;(s=(n=(i=this.options).getOverrideTarget)===null||n===void 0?void 0:n.call(i))===null||s===void 0||s.getElements()},onDragOver:i=>{var n,s,r,a,l,h,d;fe.ACTUAL_TARGET=this;const c=(s=(n=this.options).getOverrideTarget)===null||s===void 0?void 0:s.call(n);if(this._acceptedTargetZonesSet.size===0){if(c)return;this.removeDropTarget();return}const p=(l=(a=(r=this.options).getOverlayOutline)===null||a===void 0?void 0:a.call(r))!==null&&l!==void 0?l:this.element,v=p.offsetWidth,u=p.offsetHeight;if(v===0||u===0)return;const m=i.currentTarget.getBoundingClientRect(),g=((h=i.clientX)!==null&&h!==void 0?h:0)-m.left,_=((d=i.clientY)!==null&&d!==void 0?d:0)-m.top,w=this.calculateQuadrant(this._acceptedTargetZonesSet,g,_,v,u);if(this.isAlreadyUsed(i)||w===null){this.removeDropTarget();return}if(!this.options.canDisplayOverlay(i,w)){if(c)return;this.removeDropTarget();return}const b=new dn({nativeEvent:i,position:w});if(this._onWillShowOverlay.fire(b),b.defaultPrevented){this.removeDropTarget();return}if(this.markAsUsed(i),!c){if(!this.targetElement){const D=Ct();this.targetElement=D.dropzone,this.overlayElement=D.selection,this._state="center",p.classList.add("dv-drop-target"),p.append(this.targetElement)}}this.toggleClasses(w,v,u),this._state=w},onDragLeave:()=>{var i,n;!((n=(i=this.options).getOverrideTarget)===null||n===void 0)&&n.call(i)||this.removeDropTarget()},onDragEnd:i=>{var n,s;const r=(s=(n=this.options).getOverrideTarget)===null||s===void 0?void 0:s.call(n);r&&fe.ACTUAL_TARGET===this&&this._state&&(i.stopPropagation(),this._onDrop.fire({position:this._state,nativeEvent:i})),this.removeDropTarget(),r?.clear()},onDrop:i=>{var n,s,r;i.preventDefault();const a=this._state;this.removeDropTarget(),(r=(s=(n=this.options).getOverrideTarget)===null||s===void 0?void 0:s.call(n))===null||r===void 0||r.clear(),a&&(i.stopPropagation(),this._onDrop.fire({position:a,nativeEvent:i}))}}),this.addDisposables(this._onDrop,this._onWillShowOverlay,this.dnd)}setTargetZones(e){this._acceptedTargetZonesSet=new Set(e)}setOverlayModel(e){this.options.overlayModel=e}dispose(){this.removeDropTarget(),super.dispose()}markAsUsed(e){e[fe.USED_EVENT_ID]=!0}isAlreadyUsed(e){const t=e[fe.USED_EVENT_ID];return typeof t=="boolean"&&t}toggleClasses(e,t,i){var n,s,r,a,l;const h=(s=(n=this.options).getOverrideTarget)===null||s===void 0?void 0:s.call(n);if(h){const d=(l=(a=(r=this.options).getOverlayOutline)===null||a===void 0?void 0:a.call(r))!==null&&l!==void 0?l:this.element;ln({outlineElement:d,targetModel:h,quadrant:e,width:t,height:i,overlayModel:this.options.overlayModel,className:this.options.className});return}this.overlayElement&&an(this.overlayElement,e,t,i,this.options.overlayModel)}calculateQuadrant(e,t,i,n,s){var r,a;const l=(a=(r=this.options.overlayModel)===null||r===void 0?void 0:r.activationSize)!==null&&a!==void 0?a:mo;return l.type==="percentage"?hn(e,t,i,n,s,l.value):cn(e,t,i,n,s,l.value)}removeDropTarget(){var e;this.targetElement&&(this._state=void 0,(e=this.targetElement.parentElement)===null||e===void 0||e.classList.remove("dv-drop-target"),this.targetElement.remove(),this.targetElement=void 0,this.overlayElement=void 0)}showOverlay(e){var t,i,n,s,r;const a=(i=(t=this.options).getOverrideTarget)===null||i===void 0?void 0:i.call(t),l=(r=(s=(n=this.options).getOverlayOutline)===null||s===void 0?void 0:s.call(n))!==null&&r!==void 0?r:this.element,h=l.offsetWidth,d=l.offsetHeight;if(!a&&!this.targetElement){const c=Ct();this.targetElement=c.dropzone,this.overlayElement=c.selection,l.classList.add("dv-drop-target"),l.append(this.targetElement)}this.toggleClasses(e,h,d),this._state=e}clearOverlay(){var e,t,i;this.removeDropTarget(),(i=(t=(e=this.options).getOverrideTarget)===null||t===void 0?void 0:t.call(e))===null||i===void 0||i.clear(),this._state=void 0}}fe.USED_EVENT_ID="__dockview_droptarget_event_is_used__";function hn(o,e,t,i,n,s){const r=100*e/i,a=100*t/n;return o.has("left")&&r<s?"left":o.has("right")&&r>100-s?"right":o.has("top")&&a<s?"top":o.has("bottom")&&a>100-s?"bottom":o.has("center")?"center":null}function cn(o,e,t,i,n,s){return o.has("left")&&e<s?"left":o.has("right")&&e>i-s?"right":o.has("top")&&t<s?"top":o.has("bottom")&&t>n-s?"bottom":o.has("center")?"center":null}function vo(o,e,t){var i,n;ae(e,"dv-dragged"),e.style.top="-9999px",document.body.appendChild(e),o.setDragImage(e,(i=t?.x)!==null&&i!==void 0?i:0,(n=t?.y)!==null&&n!==void 0?n:0),setTimeout(()=>{re(e,"dv-dragged"),e.remove()},0)}class _e extends E{static getInstance(){return _e._instance||(_e._instance=new _e),_e._instance}constructor(){super(),this._targets=new Set,this._targetByElement=new Map,this._onDragStart=new f,this.onDragStart=this._onDragStart.event,this._onDragMove=new f,this.onDragMove=this._onDragMove.event,this._onDragEnd=new f,this.onDragEnd=this._onDragEnd.event,this.addDisposables(this._onDragStart,this._onDragMove,this._onDragEnd)}get active(){return this._active}registerTarget(e){return this._targets.add(e),this._targetByElement.set(e.element,e),{dispose:()=>{this._targets.delete(e),this._targetByElement.get(e.element)===e&&this._targetByElement.delete(e.element),this._currentTarget===e&&(this._currentTarget=void 0)}}}beginDrag(e){var t,i,n;this._active&&this.cancel();const{pointerEvent:s,source:r}=e,a=e.getData();this._active={pointerId:s.pointerId,startX:s.clientX,startY:s.clientY,source:r},this._onDragMoveCallback=e.onDragMove,this._onDragEndCallback=e.onDragEnd,this._dataDisposable=a,this._ghost=e.ghost,this._iframeShield=We((t=r.ownerDocument)!==null&&t!==void 0?t:document);const l={clientX:s.clientX,clientY:s.clientY,pointerEvent:s};this._onDragStart.fire(l);const h=(n=(i=r.ownerDocument)===null||i===void 0?void 0:i.defaultView)!==null&&n!==void 0?n:window;this._moveListener=P(h,"pointermove",d=>{!this._active||d.pointerId!==this._active.pointerId||this._handleMove(d)}),this._upListener=P(h,"pointerup",d=>{!this._active||d.pointerId!==this._active.pointerId||this._handleEnd(d,!0)}),this._cancelListener=P(h,"pointercancel",d=>{!this._active||d.pointerId!==this._active.pointerId||this._handleEnd(d,!1)})}cancel(){var e,t;this._active&&((e=this._currentTarget)===null||e===void 0||e.handleDragLeave(),this._teardown(),(t=this._dataDisposable)===null||t===void 0||t.dispose(),this._dataDisposable=void 0)}_findTargetUnder(e,t){var i,n;const r=((n=(i=this._active)===null||i===void 0?void 0:i.source.ownerDocument)!==null&&n!==void 0?n:document).elementsFromPoint(e,t);for(const a of r){let l=a;for(;l;){const h=this._targetByElement.get(l);if(h)return h;l=l.parentElement}}}_handleMove(e){var t,i,n;(t=this._ghost)===null||t===void 0||t.update(e.clientX,e.clientY);const s={clientX:e.clientX,clientY:e.clientY,pointerEvent:e},r=this._findTargetUnder(e.clientX,e.clientY);r!==this._currentTarget&&((i=this._currentTarget)===null||i===void 0||i.handleDragLeave(),this._currentTarget=r),r&&r.handleDragOver(s),(n=this._onDragMoveCallback)===null||n===void 0||n.call(this,s),this._onDragMove.fire(s)}_handleEnd(e,t){var i;const n={clientX:e.clientX,clientY:e.clientY,pointerEvent:e};t&&this._currentTarget?this._currentTarget.handleDrop(n):(i=this._currentTarget)===null||i===void 0||i.handleDragLeave();const s=this._onDragEndCallback,r=this._dataDisposable;this._teardown(),this._dataDisposable=void 0,setTimeout(()=>r?.dispose(),0),s?.(n,t),this._onDragEnd.fire(n)}_teardown(){var e,t,i,n,s;this._currentTarget=void 0,this._active=void 0,this._onDragMoveCallback=void 0,this._onDragEndCallback=void 0,(e=this._ghost)===null||e===void 0||e.dispose(),this._ghost=void 0,(t=this._iframeShield)===null||t===void 0||t.release(),this._iframeShield=void 0,(i=this._moveListener)===null||i===void 0||i.dispose(),(n=this._upListener)===null||n===void 0||n.dispose(),(s=this._cancelListener)===null||s===void 0||s.dispose(),this._moveListener=void 0,this._upListener=void 0,this._cancelListener=void 0}}const go={value:20,type:"percentage"};class fo extends E{get disabled(){return this._disabled}set disabled(e){this._disabled=e,e&&this._removeOverlay()}get state(){return this._state}constructor(e,t){super(),this.element=e,this.options=t,this._onDrop=new f,this.onDrop=this._onDrop.event,this._onWillShowOverlay=new f,this.onWillShowOverlay=this._onWillShowOverlay.event,this._disabled=!1,this._acceptedTargetZonesSet=new Set(t.acceptedTargetZones);const i={element:this.element,handleDragOver:n=>this._onDragOver(n),handleDragLeave:()=>this._onDragLeave(),handleDrop:n=>this._onDropEvent(n)};this.addDisposables(this._onDrop,this._onWillShowOverlay,_e.getInstance().registerTarget(i))}setTargetZones(e){this._acceptedTargetZonesSet=new Set(e)}setOverlayModel(e){this.options.overlayModel=e}dispose(){this._removeOverlay(),super.dispose()}_onDragOver(e){var t,i,n,s,r;if(this._disabled){this._removeOverlay();return}const a=(i=(t=this.options).getOverrideTarget)===null||i===void 0?void 0:i.call(t);if(this._acceptedTargetZonesSet.size===0){if(a)return;this._removeOverlay();return}const l=(r=(s=(n=this.options).getOverlayOutline)===null||s===void 0?void 0:s.call(n))!==null&&r!==void 0?r:this.element,h=l.offsetWidth,d=l.offsetHeight;if(h===0||d===0)return;const c=l.getBoundingClientRect(),p=e.clientX-c.left,v=e.clientY-c.top,u=this._calculateQuadrant(p,v,h,d);if(u===null){this._removeOverlay();return}if(!this.options.canDisplayOverlay(e.pointerEvent,u)){if(a)return;this._removeOverlay();return}const m=new dn({nativeEvent:e.pointerEvent,position:u});if(this._onWillShowOverlay.fire(m),m.defaultPrevented){this._removeOverlay();return}if(a){ln({outlineElement:l,targetModel:a,quadrant:u,width:h,height:d,overlayModel:this.options.overlayModel,className:this.options.className}),this._state=u;return}if(!this._targetElement){const g=Ct();this._targetElement=g.dropzone,this._overlayElement=g.selection,this._state="center",this.element.classList.add("dv-drop-target"),this.element.append(this._targetElement)}this._overlayElement&&an(this._overlayElement,u,h,d,this.options.overlayModel),this._state=u}_onDragLeave(){var e,t;const i=(t=(e=this.options).getOverrideTarget)===null||t===void 0?void 0:t.call(e);if(i){this._state=void 0,i.clear();return}this._removeOverlay()}_onDropEvent(e){var t,i;const n=this._state,s=(i=(t=this.options).getOverrideTarget)===null||i===void 0?void 0:i.call(t);this._removeOverlay(),s?.clear(),n&&this._onDrop.fire({position:n,nativeEvent:e.pointerEvent})}_calculateQuadrant(e,t,i,n){var s,r;const a=(r=(s=this.options.overlayModel)===null||s===void 0?void 0:s.activationSize)!==null&&r!==void 0?r:go;return a.type==="percentage"?hn(this._acceptedTargetZonesSet,e,t,i,n,a.value):cn(this._acceptedTargetZonesSet,e,t,i,n,a.value)}_removeOverlay(){var e;this._targetElement?(this._state=void 0,(e=this._targetElement.parentElement)===null||e===void 0||e.classList.remove("dv-drop-target"),this._targetElement.remove(),this._targetElement=void 0,this._overlayElement=void 0):this._state=void 0}}const _o=5,bo=250,wo=8;class Do extends E{constructor(e,t){var i;super(),this.element=e,this.options=t,this._disabled=!1,this._armed=!1,this._startX=0,this._startY=0,this._touchOnly=(i=t.touchOnly)!==null&&i!==void 0?i:!0,this.addDisposables(P(this.element,"pointerdown",n=>{this._onPointerDown(n)}))}setDisabled(e){this._disabled=e,e&&this._cancelPending()}setTouchOnly(e){this._touchOnly!==e&&(this._touchOnly=e,e&&this._cancelPending())}_shouldHandle(e){var t,i;return!(this._disabled||this._touchOnly&&e.pointerType!=="touch"&&e.pointerType!=="pen"||!((i=(t=this.options).isCancelled)===null||i===void 0)&&i.call(t,e))}_onPointerDown(e){var t,i,n,s,r;if(!this._shouldHandle(e))return;this._cancelPending(),this._pendingPointerId=e.pointerId,this._startX=e.clientX,this._startY=e.clientY,this._startEvent=e;const a=e.pointerType==="touch"||e.pointerType==="pen",l=this.options.touchInitiationDelay,h=(t=typeof l=="function"?l():l)!==null&&t!==void 0?t:bo;this._armed=!a||h<=0,a&&h>0&&isFinite(h)&&(this._armTimer=setTimeout(()=>{this._armTimer=void 0,this._armed=!0},h));const d=(i=this.options.threshold)!==null&&i!==void 0?i:_o,c=this.options.pressTolerance,p=(n=typeof c=="function"?c():c)!==null&&n!==void 0?n:wo,v=(r=(s=this.element.ownerDocument)===null||s===void 0?void 0:s.defaultView)!==null&&r!==void 0?r:window;this._pendingMoveListener=P(v,"pointermove",u=>{if(u.pointerId!==this._pendingPointerId)return;const m=u.clientX-this._startX,g=u.clientY-this._startY,_=Math.hypot(m,g);if(this._armed){_>=d&&this._beginDrag(u);return}_>p&&this._beginDrag(u)}),this._pendingUpListener=P(v,"pointerup",u=>{u.pointerId===this._pendingPointerId&&this._cancelPending()}),this._pendingCancelListener=P(v,"pointercancel",u=>{u.pointerId===this._pendingPointerId&&this._cancelPending()})}cancelPending(){this._cancelPending()}_cancelPending(){var e,t,i;this._pendingPointerId=void 0,this._armTimer!==void 0&&(clearTimeout(this._armTimer),this._armTimer=void 0),this._armed=!1,(e=this._pendingMoveListener)===null||e===void 0||e.dispose(),(t=this._pendingUpListener)===null||t===void 0||t.dispose(),(i=this._pendingCancelListener)===null||i===void 0||i.dispose(),this._pendingMoveListener=void 0,this._pendingUpListener=void 0,this._pendingCancelListener=void 0,this._startEvent=void 0}_beginDrag(e){var t,i,n,s,r;const a=(t=this._startEvent)!==null&&t!==void 0?t:e;this._cancelPending(),(n=(i=this.options).onDragStart)===null||n===void 0||n.call(i,a);const l=(r=(s=this.options).createGhost)===null||r===void 0?void 0:r.call(s,a);_e.getInstance().beginDrag({pointerEvent:e,source:this.element,getData:()=>this.options.getData(a),ghost:l,onDragMove:this.options.onDragMove,onDragEnd:this.options.onDragEnd})}dispose(){this._cancelPending(),super.dispose()}}class Co{constructor(e){var t,i,n,s,r;this._disposed=!1,this.element=e.element,this.offsetX=(t=e.offsetX)!==null&&t!==void 0?t:0,this.offsetY=(i=e.offsetY)!==null&&i!==void 0?i:0,this.element.style.position="fixed",this.element.style.left="0px",this.element.style.top="0px",this.element.style.pointerEvents="none",this.element.style.zIndex="99999",this.element.style.opacity=String((n=e.opacity)!==null&&n!==void 0?n:.8),this.element.style.willChange="transform",this.element.style.transform=`translate3d(${e.initialX-this.offsetX}px, ${e.initialY-this.offsetY}px, 0)`,((r=(s=e.owner)===null||s===void 0?void 0:s.ownerDocument)!==null&&r!==void 0?r:document).body.appendChild(this.element)}update(e,t){this._disposed||(this.element.style.transform=`translate3d(${e-this.offsetX}px, ${t-this.offsetY}px, 0)`)}dispose(){this._disposed||(this._disposed=!0,this.element.remove())}}class yo extends E{constructor(e,t){super(),this.el=e,this.opts=t,this._dataDisposable=new X,this._pointerEventsDisposable=new X,this._disabled=!!t.disabled,this.addDisposables(this._dataDisposable,this._pointerEventsDisposable,P(this.el,"dragstart",i=>{var n,s,r,a,l,h,d,c,p;if(i.defaultPrevented||this._disabled||!((s=(n=this.opts).isCancelled)===null||s===void 0)&&s.call(n,i)){i.preventDefault();return}const v=We((r=this.el.ownerDocument)!==null&&r!==void 0?r:document);this._pointerEventsDisposable.value={dispose:()=>v.release()},this.el.classList.add("dv-dragged"),setTimeout(()=>this.el.classList.remove("dv-dragged"),0),this._dataDisposable.value=this.opts.getData(i);const u=(l=(a=this.opts).createGhost)===null||l===void 0?void 0:l.call(a,i);if(u&&i.dataTransfer&&(vo(i.dataTransfer,u.element,{x:(h=u.offsetX)!==null&&h!==void 0?h:0,y:(d=u.offsetY)!==null&&d!==void 0?d:0}),u.dispose)){const m=u.dispose;setTimeout(()=>m(),0)}i.dataTransfer&&(i.dataTransfer.effectAllowed="move",i.dataTransfer.items.length===0&&i.dataTransfer.setData("text/plain","")),(p=(c=this.opts).onDragStart)===null||p===void 0||p.call(c,i)}),P(this.el,"dragend",i=>{var n,s;this._pointerEventsDisposable.dispose(),setTimeout(()=>this._dataDisposable.dispose(),0),(s=(n=this.opts).onDragEnd)===null||s===void 0||s.call(n,i)}))}setDisabled(e){this._disabled=e}setTouchOnly(e){}cancelPending(){}}class So{constructor(){this.kind="html5"}createDropTarget(e,t){return new fe(e,t)}createDragSource(e,t){return new yo(e,t)}}class xo{constructor(){this.kind="pointer"}createDropTarget(e,t){return new fo(e,t)}createDragSource(e,t){const i=t.createGhost?s=>{const r=t.createGhost(s);if(!r)return;const a=new Co({element:r.element,initialX:s.clientX,initialY:s.clientY,offsetX:r.offsetX,offsetY:r.offsetY,owner:e});if(r.dispose){const l=a.dispose.bind(a),h=r.dispose;a.dispose=()=>{l(),h()}}return a}:void 0,n=new Do(e,{getData:t.getData,isCancelled:t.isCancelled,onDragStart:t.onDragStart,onDragEnd:t.onDragEnd?s=>t.onDragEnd(s.pointerEvent):void 0,createGhost:i,touchOnly:t.touchOnly,touchInitiationDelay:t.touchInitiationDelay,pressTolerance:t.pressTolerance,threshold:t.threshold});return t.disabled&&n.setDisabled(!0),n}}const Ce=new So,be=new xo,yt=Object.keys({disableAutoResizing:void 0,disableDnd:void 0,className:void 0});class Go extends Ui{constructor(e,t,i,n){super(),this.nativeEvent=e,this.position=t,this.getData=i,this.panel=n}}class un extends Ot{constructor(){super()}}class pn extends E{get isFocused(){return this._isFocused}get isActive(){return this._isActive}get isVisible(){return this._isVisible}get width(){return this._width}get height(){return this._height}constructor(e,t){super(),this.id=e,this.component=t,this._isFocused=!1,this._isActive=!1,this._isVisible=!0,this._width=0,this._height=0,this._parameters={},this.panelUpdatesDisposable=new X,this._onDidDimensionChange=new f,this.onDidDimensionsChange=this._onDidDimensionChange.event,this._onDidChangeFocus=new f,this.onDidFocusChange=this._onDidChangeFocus.event,this._onWillFocus=new f,this.onWillFocus=this._onWillFocus.event,this._onDidVisibilityChange=new f,this.onDidVisibilityChange=this._onDidVisibilityChange.event,this._onWillVisibilityChange=new f,this.onWillVisibilityChange=this._onWillVisibilityChange.event,this._onDidActiveChange=new f,this.onDidActiveChange=this._onDidActiveChange.event,this._onActiveChange=new f,this.onActiveChange=this._onActiveChange.event,this._onDidParametersChange=new f,this.onDidParametersChange=this._onDidParametersChange.event,this.addDisposables(this.onDidFocusChange(i=>{this._isFocused=i.isFocused}),this.onDidActiveChange(i=>{this._isActive=i.isActive}),this.onDidVisibilityChange(i=>{this._isVisible=i.isVisible}),this.onDidDimensionsChange(i=>{this._width=i.width,this._height=i.height}),this.panelUpdatesDisposable,this._onDidDimensionChange,this._onDidChangeFocus,this._onDidVisibilityChange,this._onDidActiveChange,this._onWillFocus,this._onActiveChange,this._onWillFocus,this._onWillVisibilityChange,this._onDidParametersChange)}getParameters(){return this._parameters}initialize(e){this.panelUpdatesDisposable.value=this._onDidParametersChange.event(t=>{this._parameters=t,e.update({params:t})})}setVisible(e){this._onWillVisibilityChange.fire({isVisible:e})}setActive(){this._onActiveChange.fire()}updateParameters(e){this._onDidParametersChange.fire(e)}}class mn extends pn{constructor(e,t){super(e,t),this._onDidConstraintsChangeInternal=new f,this.onDidConstraintsChangeInternal=this._onDidConstraintsChangeInternal.event,this._onDidConstraintsChange=new f({replay:!0}),this.onDidConstraintsChange=this._onDidConstraintsChange.event,this._onDidSizeChange=new f,this.onDidSizeChange=this._onDidSizeChange.event,this.addDisposables(this._onDidConstraintsChangeInternal,this._onDidConstraintsChange,this._onDidSizeChange)}setConstraints(e){this._onDidConstraintsChangeInternal.fire(e)}setSize(e){this._onDidSizeChange.fire(e)}}class Po extends mn{set pane(e){this._pane=e}constructor(e,t){super(e,t),this._onDidExpansionChange=new f({replay:!0}),this.onDidExpansionChange=this._onDidExpansionChange.event,this._onMouseEnter=new f({}),this.onMouseEnter=this._onMouseEnter.event,this._onMouseLeave=new f({}),this.onMouseLeave=this._onMouseLeave.event,this.addDisposables(this._onDidExpansionChange,this._onMouseEnter,this._onMouseLeave)}setExpanded(e){var t;(t=this._pane)===null||t===void 0||t.setExpanded(e)}get isExpanded(){var e;return!!(!((e=this._pane)===null||e===void 0)&&e.isExpanded())}}class Rt extends E{get element(){return this._element}get width(){return this._width}get height(){return this._height}get params(){var e;return(e=this._params)===null||e===void 0?void 0:e.params}constructor(e,t,i){super(),this.id=e,this.component=t,this.api=i,this._height=0,this._width=0,this._element=document.createElement("div"),this._element.tabIndex=-1,this._element.style.outline="none",this._element.style.height="100%",this._element.style.width="100%",this._element.style.overflow="hidden";const n=ji(this._element);this.addDisposables(this.api,n.onDidFocus(()=>{this.api._onDidChangeFocus.fire({isFocused:!0})}),n.onDidBlur(()=>{this.api._onDidChangeFocus.fire({isFocused:!1})}),n)}focus(){const e=new un;this.api._onWillFocus.fire(e),!e.defaultPrevented&&this._element.focus()}layout(e,t){this._width=e,this._height=t,this.api._onDidDimensionChange.fire({width:e,height:t}),this.part&&this._params&&this.part.update(this._params.params)}init(e){this._params=e,this.part=this.getComponent()}update(e){var t,i;this._params=Object.assign(Object.assign({},this._params),{params:Object.assign(Object.assign({},(t=this._params)===null||t===void 0?void 0:t.params),e.params)});for(const n of Object.keys(e.params))e.params[n]===void 0&&delete this._params.params[n];(i=this.part)===null||i===void 0||i.update({params:this._params.params})}toJSON(){var e,t;const i=(t=(e=this._params)===null||e===void 0?void 0:e.params)!==null&&t!==void 0?t:{};return{id:this.id,component:this.component,params:Object.keys(i).length>0?i:void 0}}dispose(){var e;this.api.dispose(),(e=this.part)===null||e===void 0||e.dispose(),super.dispose()}}class To extends Rt{set orientation(e){this._orientation=e}get orientation(){return this._orientation}get minimumSize(){const e=this.headerSize,i=this.isExpanded()?this._minimumBodySize:0;return e+i}get maximumSize(){const e=this.headerSize,i=this.isExpanded()?this._maximumBodySize:0;return e+i}get size(){return this._size}get orthogonalSize(){return this._orthogonalSize}set orthogonalSize(e){this._orthogonalSize=e}get minimumBodySize(){return this._minimumBodySize}set minimumBodySize(e){this._minimumBodySize=typeof e=="number"?e:0}get maximumBodySize(){return this._maximumBodySize}set maximumBodySize(e){this._maximumBodySize=typeof e=="number"?e:Number.POSITIVE_INFINITY}get headerVisible(){return this._headerVisible}set headerVisible(e){this._headerVisible=e,this.header.style.display=e?"":"none"}constructor(e){super(e.id,e.component,new Po(e.id,e.component)),this._onDidChangeExpansionState=new f({replay:!0}),this.onDidChangeExpansionState=this._onDidChangeExpansionState.event,this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this._orthogonalSize=0,this._size=0,this._isExpanded=!1,this.api.pane=this,this.api.initialize(this),this.headerSize=e.headerSize,this.headerComponent=e.headerComponent,this._minimumBodySize=e.minimumBodySize,this._maximumBodySize=e.maximumBodySize,this._isExpanded=e.isExpanded,this._headerVisible=e.isHeaderVisible,this._onDidChangeExpansionState.fire(this.isExpanded()),this._orientation=e.orientation,this.element.classList.add("dv-pane"),this.addDisposables(this.api.onWillVisibilityChange(t=>{const{isVisible:i}=t,{accessor:n}=this._params;n.setVisible(this,i)}),this.api.onDidSizeChange(t=>{this._onDidChange.fire({size:t.size})}),P(this.element,"mouseenter",t=>{this.api._onMouseEnter.fire(t)}),P(this.element,"mouseleave",t=>{this.api._onMouseLeave.fire(t)})),this.addDisposables(this._onDidChangeExpansionState,this.onDidChangeExpansionState(t=>{this.api._onDidExpansionChange.fire({isExpanded:t})}),this.api.onDidFocusChange(t=>{this.header&&(t.isFocused?ae(this.header,"focused"):re(this.header,"focused"))})),this.renderOnce()}setVisible(e){this.api._onDidVisibilityChange.fire({isVisible:e})}setActive(e){this.api._onDidActiveChange.fire({isActive:e})}isExpanded(){return this._isExpanded}setExpanded(e){this._isExpanded!==e&&(this._isExpanded=e,e?(this.animationTimer&&clearTimeout(this.animationTimer),this.body&&this.element.appendChild(this.body)):this.animationTimer=setTimeout(()=>{var t;(t=this.body)===null||t===void 0||t.remove()},200),this._onDidChange.fire(e?{size:this.width}:{}),this._onDidChangeExpansionState.fire(e))}layout(e,t){this._size=e,this._orthogonalSize=t;const[i,n]=this.orientation===z.HORIZONTAL?[e,t]:[t,e];super.layout(i,n)}init(e){var t,i;super.init(e),typeof e.minimumBodySize=="number"&&(this.minimumBodySize=e.minimumBodySize),typeof e.maximumBodySize=="number"&&(this.maximumBodySize=e.maximumBodySize),this.bodyPart=this.getBodyComponent(),this.headerPart=this.getHeaderComponent(),this.bodyPart.init(Object.assign(Object.assign({},e),{api:this.api})),this.headerPart.init(Object.assign(Object.assign({},e),{api:this.api})),(t=this.body)===null||t===void 0||t.append(this.bodyPart.element),(i=this.header)===null||i===void 0||i.append(this.headerPart.element),typeof e.isExpanded=="boolean"&&this.setExpanded(e.isExpanded)}toJSON(){const e=this._params;return Object.assign(Object.assign({},super.toJSON()),{headerComponent:this.headerComponent,title:e.title})}renderOnce(){this.header=document.createElement("div"),this.header.tabIndex=0,this.header.className="dv-pane-header",this.header.style.height=`${this.headerSize}px`,this.header.style.lineHeight=`${this.headerSize}px`,this.header.style.minHeight=`${this.headerSize}px`,this.header.style.maxHeight=`${this.headerSize}px`,this.element.appendChild(this.header),this.body=document.createElement("div"),this.body.className="dv-pane-body",this.element.appendChild(this.body)}getComponent(){return{update:e=>{var t,i;(t=this.bodyPart)===null||t===void 0||t.update({params:e}),(i=this.headerPart)===null||i===void 0||i.update({params:e})},dispose:()=>{var e,t;(e=this.bodyPart)===null||e===void 0||e.dispose(),(t=this.headerPart)===null||t===void 0||t.dispose()}}}}class Ao extends To{constructor(e){super({id:e.id,component:e.component,headerComponent:e.headerComponent,orientation:e.orientation,isExpanded:e.isExpanded,isHeaderVisible:!0,headerSize:e.headerSize,minimumBodySize:e.minimumBodySize,maximumBodySize:e.maximumBodySize}),this._onDidDrop=new f,this.onDidDrop=this._onDidDrop.event,this._onUnhandledDragOver=new f,this.onUnhandledDragOver=this._onUnhandledDragOver.event,this.accessor=e.accessor,this.addDisposables(this._onDidDrop,this._onUnhandledDragOver),e.disableDnd||this.initDragFeatures()}initDragFeatures(){if(!this.header)return;const e=this.id,t=this.accessor.id;this.header.draggable=!0;const i={getData:()=>(oe.getInstance().setData([new Le(t,e)],Le.prototype),{dispose:()=>{oe.getInstance().clearData(Le.prototype)}})};this.html5DragSource=Ce.createDragSource(this.header,i),this.pointerDragSource=be.createDragSource(this.header,i);const s={acceptedTargetZones:["top","bottom"],overlayModel:{activationSize:{type:"percentage",value:50}},canDisplayOverlay:(r,a)=>{const l=Ee();if(l&&l.paneId!==this.id&&l.viewId===this.accessor.id)return!0;const h=new Go(r,a,Ee,this);return this._onUnhandledDragOver.fire(h),h.isAccepted}};this.target=Ce.createDropTarget(this.element,s),this.pointerTarget=be.createDropTarget(this.element,s),this.addDisposables(this._onDidDrop,this.html5DragSource,this.pointerDragSource,this.target,this.pointerTarget,this.target.onDrop(r=>{this.onDrop(r)}),this.pointerTarget.onDrop(r=>{this.onDrop(r)}))}onDrop(e){const t=Ee();if(!t||t.viewId!==this.accessor.id){this._onDidDrop.fire(Object.assign(Object.assign({},e),{panel:this,api:new He(this.accessor),getData:Ee}));return}const i=this._params.containerApi,n=t.paneId,s=i.getPanel(n);if(!s){this._onDidDrop.fire(Object.assign(Object.assign({},e),{panel:this,getData:Ee,api:new He(this.accessor)}));return}const r=i.panels,a=r.indexOf(s);let l=i.panels.indexOf(this);(e.position==="left"||e.position==="top")&&(l=Math.max(0,l-1)),(e.position==="right"||e.position==="bottom")&&(a>l&&l++,l=Math.min(r.length-1,l)),i.movePanel(a,l)}}let Io=0;const Eo=()=>`dv-tabpanel-${Io++}`;class zo extends E{get element(){return this._element}constructor(e,t){var i,n,s,r,a,l,h;super(),this.accessor=e,this.group=t,this.disposable=new X,this._onDidFocus=new f,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new f,this.onDidBlur=this._onDidBlur.event,this._element=document.createElement("div"),this._element.className="dv-content-container",this._element.tabIndex=-1,this._element.id=Eo(),this._element.setAttribute("role","tabpanel"),this.addDisposables(this._onDidFocus,this._onDidBlur);const d=()=>{var p;return(p=t.dropTargetContainer)===null||p===void 0?void 0:p.model},c=(p,v)=>{if(this.group.locked==="no-drop-target"||this.group.locked&&v==="center")return!1;const u=$();return!u&&p.shiftKey&&this.group.location.type!=="floating"?!1:u&&u.viewId===this.accessor.id?!0:this.group.canDisplayOverlay(p,v,"content")};this.dropTarget=new fe(this.element,{getOverlayOutline:()=>{var p;return((p=e.options.theme)===null||p===void 0?void 0:p.dndPanelOverlay)==="group"?this.element.parentElement:null},className:"dv-drop-target-content",acceptedTargetZones:["top","bottom","left","right","center"],canDisplayOverlay:c,getOverrideTarget:d,overlayModel:(n=(i=this.accessor).resolveDropOverlayModel)===null||n===void 0?void 0:n.call(i,"content")}),this.pointerDropTarget=be.createDropTarget(this.element,{acceptedTargetZones:["top","bottom","left","right","center"],canDisplayOverlay:c,getOverlayOutline:()=>{var p;return((p=e.options.theme)===null||p===void 0?void 0:p.dndPanelOverlay)==="group"?this.element.parentElement:null},className:"dv-drop-target-content",getOverrideTarget:d,overlayModel:(r=(s=this.accessor).resolveDropOverlayModel)===null||r===void 0?void 0:r.call(s,"content")}),this.addDisposables(this.dropTarget,this.pointerDropTarget,(h=(l=(a=this.accessor).onDidOptionsChange)===null||l===void 0?void 0:l.call(a,()=>{var p,v,u;const m=(u=(v=(p=this.accessor).resolveDropOverlayModel)===null||v===void 0?void 0:v.call(p,"content"))!==null&&u!==void 0?u:{};this.dropTarget.setOverlayModel(m),this.pointerDropTarget.setOverlayModel(m)}))!==null&&h!==void 0?h:N.NONE)}show(){this.element.style.display=""}hide(){this.element.style.display="none"}setLabelledBy(e){e?this._element.setAttribute("aria-labelledby",e):this._element.removeAttribute("aria-labelledby")}renderPanel(e,t={asActive:!0}){var i,n,s,r;const a=t.asActive||this.panel&&this.group.isPanelActive(this.panel);this.panel&&this.panel.view.content.element.parentElement===this._element&&(this._element.removeChild(this.panel.view.content.element),(n=(i=this.panel.view.content).onHide)===null||n===void 0||n.call(i)),this.panel=e;let l;switch(e.api.renderer){case"onlyWhenVisible":this.group.renderContainer.detatch(e),this.panel&&a&&(this._element.appendChild(this.panel.view.content.element),(r=(s=this.panel.view.content).onShow)===null||r===void 0||r.call(s)),l=this._element;break;case"always":e.view.content.element.parentElement===this._element&&this._element.removeChild(e.view.content.element),l=this.group.renderContainer.attach({panel:e,referenceContainer:this});break;default:throw new Error(`dockview: invalid renderer type '${e.api.renderer}'`)}if(a){const h=ji(l);this.focusTracker=h;const d=new E;d.addDisposables(h,h.onDidFocus(()=>this._onDidFocus.fire()),h.onDidBlur(()=>this._onDidBlur.fire())),this.disposable.value=d}}openPanel(e){this.panel!==e&&this.renderPanel(e)}layout(e,t){}closePanel(){var e,t,i;this.panel&&this.panel.api.renderer==="onlyWhenVisible"&&((e=this.panel.view.content.element.parentElement)===null||e===void 0||e.removeChild(this.panel.view.content.element),(i=(t=this.panel.view.content).onHide)===null||i===void 0||i.call(t)),this.panel=void 0}dispose(){this.disposable.dispose(),super.dispose()}refreshFocusState(){var e;!((e=this.focusTracker)===null||e===void 0)&&e.refreshState&&this.focusTracker.refreshState()}}const Oo=500,Mo=8;class Vt extends E{constructor(e,t){super(),this.element=e,this.options=t,this._startX=0,this._startY=0,this.addDisposables(P(this.element,"pointerdown",i=>{this._onPointerDown(i)}))}_onPointerDown(e){var t,i,n,s,r;if(((t=this.options.touchOnly)!==null&&t!==void 0?t:!0)&&e.pointerType!=="touch"&&e.pointerType!=="pen")return;this._cancelPending(),this._pointerId=e.pointerId,this._startX=e.clientX,this._startY=e.clientY;const l=(i=this.options.delay)!==null&&i!==void 0?i:Oo,h=(n=this.options.tolerance)!==null&&n!==void 0?n:Mo,d=(r=(s=this.element.ownerDocument)===null||s===void 0?void 0:s.defaultView)!==null&&r!==void 0?r:window;this._timer=setTimeout(()=>{this._timer=void 0,this._cancelPending(),this._installContextMenuGuard(d),this._installClickGuard(d),this.options.onLongPress(e)},l),this._moveListener=P(d,"pointermove",c=>{if(c.pointerId!==this._pointerId)return;const p=c.clientX-this._startX,v=c.clientY-this._startY;Math.hypot(p,v)>h&&this._cancelPending()}),this._upListener=P(d,"pointerup",c=>{c.pointerId===this._pointerId&&this._cancelPending()}),this._cancelListener=P(d,"pointercancel",c=>{c.pointerId===this._pointerId&&this._cancelPending()})}_installContextMenuGuard(e){let t;const i=setTimeout(()=>t?.dispose(),500);t=P(e,"contextmenu",n=>{n.preventDefault(),clearTimeout(i),t?.dispose()},{capture:!0})}_installClickGuard(e){let t;const i=setTimeout(()=>t?.dispose(),500);t=P(e,"click",n=>{const s=n.target;s&&this.element.contains(s)&&(n.preventDefault(),n.stopPropagation()),clearTimeout(i),t?.dispose()},{capture:!0})}_cancelPending(){var e,t,i;this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0),this._pointerId=void 0,(e=this._moveListener)===null||e===void 0||e.dispose(),(t=this._upListener)===null||t===void 0||t.dispose(),(i=this._cancelListener)===null||i===void 0||i.dispose(),this._moveListener=void 0,this._upListener=void 0,this._cancelListener=void 0}dispose(){this._cancelPending(),super.dispose()}}function ue(o){if(o.disableDnd)return{html5:!1,pointer:!1,pointerHandlesMouse:!1};switch(o.dndStrategy){case"pointer":return{html5:!1,pointer:!0,pointerHandlesMouse:!0};case"html5":return{html5:!0,pointer:!1,pointerHandlesMouse:!1};default:return ko()?{html5:!1,pointer:!0,pointerHandlesMouse:!0}:{html5:!0,pointer:!0,pointerHandlesMouse:!1}}}function ko(){if(typeof window>"u"||!window.matchMedia)return!1;const o=window.matchMedia("(pointer: coarse)").matches,e=window.matchMedia("(pointer: fine)").matches;return o&&!e}let Lo=0;const Ro=()=>`dv-tab-${Lo++}`;class Vo extends E{get element(){return this._element}constructor(e,t,i){var n,s;super(),this.panel=e,this.accessor=t,this.group=i,this.content=void 0,this.panelTransfer=oe.getInstance(),this._direction="horizontal",this._onPointDown=new f,this.onPointerDown=this._onPointDown.event,this._onTabClick=new f,this.onTabClick=this._onTabClick.event,this._onDropped=new f,this.onDrop=this._onDropped.event,this._onDragStart=new f,this.onDragStart=this._onDragStart.event,this._onDragEnd=new f,this.onDragEnd=this._onDragEnd.event;const r=ue(this.accessor.options);this._element=document.createElement("div"),this._element.className="dv-tab",this._element.tabIndex=-1,this._element.draggable=r.html5,this._element.id=Ro(),this._element.setAttribute("role","tab"),this._element.setAttribute("aria-selected","false");const a=(s=(n=this.group)===null||n===void 0?void 0:n.model)===null||s===void 0?void 0:s.contentContainerId;a&&this._element.setAttribute("aria-controls",a),x(this.element,"dv-inactive-tab",!0);const l=(d,c)=>{var p;if(this.group.locked)return!1;const v=$();return v&&this.accessor.id===v.viewId?((p=this.accessor.options.theme)===null||p===void 0?void 0:p.tabAnimation)!=="smooth":this.group.model.canDisplayOverlay(d,c,"tab")};this.dropTarget=Ce.createDropTarget(this._element,{acceptedTargetZones:["left","right"],overlayModel:this._buildOverlayModel(),canDisplayOverlay:l,getOverrideTarget:()=>{var d;return(d=i.model.dropTargetContainer)===null||d===void 0?void 0:d.model}}),this.pointerDropTarget=be.createDropTarget(this._element,{acceptedTargetZones:["left","right"],overlayModel:this._buildOverlayModel(),canDisplayOverlay:l,getOverrideTarget:()=>{var d;return(d=i.model.dropTargetContainer)===null||d===void 0?void 0:d.model}});const h={getData:()=>(this.panelTransfer.setData([new Q(this.accessor.id,this.group.id,this.panel.id)],Q.prototype),{dispose:()=>{this.panelTransfer.clearData(Q.prototype)}}),createGhost:()=>({element:this._buildGhostElement(),offsetX:30,offsetY:-10}),onDragStart:d=>{var c;this._onDragStart.fire(d),!(d instanceof PointerEvent)&&((c=this.accessor.options.theme)===null||c===void 0?void 0:c.tabAnimation)==="smooth"&&requestAnimationFrame(()=>{x(this.element,"dv-tab--dragging",!0)})},onDragEnd:d=>{this._onDragEnd.fire(d)}};this.html5DragSource=Ce.createDragSource(this._element,Object.assign(Object.assign({},h),{disabled:!r.html5})),this.pointerDragSource=be.createDragSource(this._element,Object.assign(Object.assign({},h),{disabled:!r.pointer,touchOnly:!r.pointerHandlesMouse,isCancelled:()=>!ue(this.accessor.options).pointer})),this.onWillShowOverlay=ee.any(this.dropTarget.onWillShowOverlay,this.pointerDropTarget.onWillShowOverlay),this.addDisposables(this._onPointDown,this._onTabClick,this._onDropped,this._onDragStart,this._onDragEnd,this.accessor.onDidOptionsChange(()=>{const d=this._buildOverlayModel();this.dropTarget.setOverlayModel(d),this.pointerDropTarget.setOverlayModel(d)}),P(this._element,"dragend",()=>{x(this.element,"dv-tab--dragging",!1)}),this.html5DragSource,P(this._element,"pointerdown",d=>{this._onPointDown.fire(d)}),P(this._element,"click",d=>{this._onTabClick.fire(d)}),P(this._element,"contextmenu",d=>{var c;(c=this.accessor.contextMenuService)===null||c===void 0||c.show(this.panel,this.group,d)}),new Vt(this._element,{onLongPress:d=>{var c;this.pointerDragSource.cancelPending(),(c=this.accessor.contextMenuService)===null||c===void 0||c.show(this.panel,this.group,d)}}),this.dropTarget.onDrop(d=>{this._onDropped.fire(d)}),this.pointerDropTarget.onDrop(d=>{this._onDropped.fire(d)}),this.dropTarget,this.pointerDropTarget,this.pointerDragSource)}setActive(e){x(this.element,"dv-active-tab",e),x(this.element,"dv-inactive-tab",!e),this._element.setAttribute("aria-selected",e?"true":"false"),this._element.tabIndex=e?0:-1}setContent(e){this.content&&this._element.removeChild(this.content.element),this.content=e,this._element.appendChild(this.content.element)}_buildOverlayModel(){var e,t,i;const n=(t=(e=this.accessor).resolveDropOverlayModel)===null||t===void 0?void 0:t.call(e,"tab",this.group);if(n)return n;const s=((i=this.accessor.options.theme)===null||i===void 0?void 0:i.dndTabIndicator)==="line"?Number.POSITIVE_INFINITY:0;return{activationSize:{value:50,type:"percentage"},smallWidthBoundary:s,smallHeightBoundary:s}}setDirection(e){this._direction=e;const t=e==="vertical"?["top","bottom"]:["left","right"];this.dropTarget.setTargetZones(t),this.pointerDropTarget.setTargetZones(t)}updateDragAndDropState(){const e=ue(this.accessor.options);this._element.draggable=e.html5,this.html5DragSource.setDisabled(!e.html5),this.pointerDragSource.setDisabled(!e.pointer),this.pointerDragSource.setTouchOnly(!e.pointerHandlesMouse)}_buildGhostElement(){const e=getComputedStyle(this.element),t=this.element.cloneNode(!0),i=this._direction==="vertical",n=new Set(["writing-mode","inline-size","block-size","min-inline-size","min-block-size","max-inline-size","max-block-size","margin-inline","margin-inline-start","margin-inline-end","margin-block","margin-block-start","margin-block-end","padding-inline","padding-inline-start","padding-inline-end","padding-block","padding-block-start","padding-block-end"]);return Array.from(e).forEach(s=>{i&&n.has(s)||t.style.setProperty(s,e.getPropertyValue(s),e.getPropertyPriority(s))}),i&&(t.style.setProperty("writing-mode","horizontal-tb"),t.style.setProperty("width",e.height),t.style.setProperty("height",e.width)),t.style.position="absolute",t.classList.add("dv-tab-ghost-drag"),t}}class Fe{get kind(){return this.options.kind}get nativeEvent(){return this.event.nativeEvent}get position(){return this.event.position}get defaultPrevented(){return this.event.defaultPrevented}get panel(){return this.options.panel}get api(){return this.options.api}get group(){return this.options.group}preventDefault(){this.event.preventDefault()}getData(){return this.options.getData()}constructor(e,t){this.event=e,this.options=t}}const No=500;class vn extends E{get group(){return this.groupAccessor()}constructor(e){var t,i,n;super(),this.panelTransfer=oe.getInstance(),this._onDragStart=new f,this.onDragStart=this._onDragStart.event,this._element=e.element,this.accessor=e.accessor;const s=e.group;this.groupAccessor=typeof s=="function"?s:()=>s,this.isFloatingMoveHandle=(t=e.isFloatingMoveHandle)!==null&&t!==void 0?t:(()=>!0);const r=ue(this.accessor.options);this._element.draggable=r.html5,x(this._element,"dv-draggable",r.html5||r.pointer),this.addDisposables(this._onDragStart);const a=()=>{const u=document.createElement("div"),m=window.getComputedStyle(this._element),g=m.getPropertyValue("--dv-activegroup-visiblepanel-tab-background-color"),_=m.getPropertyValue("--dv-activegroup-visiblepanel-tab-color");return u.style.backgroundColor=g,u.style.color=_,u.style.padding="2px 8px",u.style.height="24px",u.style.fontSize="11px",u.style.lineHeight="20px",u.style.borderRadius="12px",u.style.whiteSpace="nowrap",u.style.boxSizing="border-box",u.style.display="inline-block",u.textContent=`Multiple Panels (${this.group.size})`,u},h={getData:()=>(this.panelTransfer.setData([new Q(this.accessor.id,this.group.id,null)],Q.prototype),{dispose:()=>{this.panelTransfer.clearData(Q.prototype)}}),createGhost:()=>{var u,m;const g=(m=(u=this.accessor).buildGroupDragGhost)===null||m===void 0?void 0:m.call(u,this.group);return g||{element:a(),offsetX:30,offsetY:-10}},onDragStart:u=>{this._onDragStart.fire(u)}};this.html5DragSource=Ce.createDragSource(this._element,Object.assign(Object.assign({},h),{disabled:!r.html5,isCancelled:u=>!!(this.group.api.location.type==="floating"&&this.isFloatingMoveHandle()&&!u.shiftKey||this.group.api.location.type==="edge"&&this.group.size===0)}));const d=()=>{var u,m,g;return((g=(m=(u=this.group)===null||u===void 0?void 0:u.api)===null||m===void 0?void 0:m.location)===null||g===void 0?void 0:g.type)==="floating"&&this.isFloatingMoveHandle()};this.pointerDragSource=be.createDragSource(this._element,Object.assign(Object.assign({},h),{disabled:!r.pointer,touchOnly:!r.pointerHandlesMouse,touchInitiationDelay:()=>d()?No:250,pressTolerance:()=>d()?1/0:8,isCancelled:()=>!ue(this.accessor.options).pointer||this.group.api.location.type==="edge"&&this.group.size===0,onDragStart:u=>{var m;(m=this.getFloatingOverlay())===null||m===void 0||m.cancelPendingDrag(),this._onDragStart.fire(u)}}));const c=new X,p=()=>{const u=this.getFloatingOverlay();c.value=u?u.onDidStartMoving(()=>{this.pointerDragSource.cancelPending()}):N.NONE};p(),this.addDisposables(c);const v=(n=(i=this.group)===null||i===void 0?void 0:i.api)===null||n===void 0?void 0:n.onDidLocationChange;v&&this.addDisposables(v(p)),this.addDisposables(this.html5DragSource,this.pointerDragSource)}updateDragAndDropState(){const e=ue(this.accessor.options);this._element.draggable=e.html5,x(this._element,"dv-draggable",e.html5||e.pointer),this.html5DragSource.setDisabled(!e.html5),this.pointerDragSource.setDisabled(!e.pointer),this.pointerDragSource.setTouchOnly(!e.pointerHandlesMouse)}getFloatingOverlay(){var e,t;if(this.group)return(t=(e=this.accessor.floatingGroups)===null||e===void 0?void 0:e.find(i=>i.group===this.group))===null||t===void 0?void 0:t.overlay}}class Wo extends E{get element(){return this._element}constructor(e,t){var i,n,s,r,a,l,h;super(),this.accessor=e,this.group=t,this._onDrop=new f,this.onDrop=this._onDrop.event,this._onDragStart=new f,this.onDragStart=this._onDragStart.event,this._element=document.createElement("div"),this._element.className="dv-void-container",this.addDisposables(this._onDrop,this._onDragStart,P(this._element,"pointerdown",()=>{this.accessor.doSetGroupActive(this.group)}),P(this._element,"pointerdown",c=>{c.shiftKey&&Xi(c)},!0)),this.dragSource=new vn({element:this._element,accessor:this.accessor,group:this.group,isFloatingMoveHandle:()=>!this._element.closest(".dv-resize-container-with-titlebar")});const d=(c,p)=>{if(this.group.api.locked)return!1;const v=$();return v&&this.accessor.id===v.viewId?!0:t.model.canDisplayOverlay(c,p,"header_space")};this.dropTarget=Ce.createDropTarget(this._element,{acceptedTargetZones:["center"],canDisplayOverlay:d,getOverrideTarget:()=>{var c;return(c=t.model.dropTargetContainer)===null||c===void 0?void 0:c.model},overlayModel:(n=(i=this.accessor).resolveDropOverlayModel)===null||n===void 0?void 0:n.call(i,"header_space",this.group)}),this.pointerDropTarget=be.createDropTarget(this._element,{acceptedTargetZones:["center"],canDisplayOverlay:d,getOverrideTarget:()=>{var c;return(c=t.model.dropTargetContainer)===null||c===void 0?void 0:c.model},overlayModel:(r=(s=this.accessor).resolveDropOverlayModel)===null||r===void 0?void 0:r.call(s,"header_space",this.group)}),this.onWillShowOverlay=ee.any(this.dropTarget.onWillShowOverlay,this.pointerDropTarget.onWillShowOverlay),this.addDisposables(this.dragSource,this.dragSource.onDragStart(c=>{this._onDragStart.fire(c)}),this.dropTarget.onDrop(c=>{this._onDrop.fire(c)}),this.pointerDropTarget.onDrop(c=>{this._onDrop.fire(c)}),this.dropTarget,this.pointerDropTarget,(h=(l=(a=this.accessor).onDidOptionsChange)===null||l===void 0?void 0:l.call(a,()=>{var c,p,v;const u=(v=(p=(c=this.accessor).resolveDropOverlayModel)===null||p===void 0?void 0:p.call(c,"header_space",this.group))!==null&&v!==void 0?v:{};this.dropTarget.setOverlayModel(u),this.pointerDropTarget.setOverlayModel(u)}))!==null&&h!==void 0?h:N.NONE)}updateDragAndDropState(){this.dragSource.updateDragAndDropState()}}class lt extends E{get element(){return this._element}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._scrollOffset=0,this._orientation=e,re(this._scrollbar,"dv-scrollbar-vertical","dv-scrollbar-horizontal"),e==="vertical"?ae(this._scrollbar,"dv-scrollbar-vertical"):ae(this._scrollbar,"dv-scrollbar-horizontal"))}constructor(e){super(),this.scrollableElement=e,this._scrollOffset=0,this._orientation="horizontal",this._element=document.createElement("div"),this._element.className="dv-scrollable",this._scrollbar=document.createElement("div"),this._scrollbar.className="dv-scrollbar dv-scrollbar-horizontal",this.element.appendChild(e),this.element.appendChild(this._scrollbar),this.addDisposables(P(this.element,"wheel",t=>{this._scrollOffset+=t.deltaY*lt.MouseWheelSpeed,this.calculateScrollbarStyles()}),P(this._scrollbar,"pointerdown",t=>{t.preventDefault(),x(this.element,"dv-scrollable-scrolling",!0);const i=this._orientation==="horizontal"?t.clientX:t.clientY,n=this._scrollOffset,s=a=>{const l=this._orientation==="horizontal"?a.clientX-i:a.clientY-i,h=this._orientation==="horizontal"?this.element.clientWidth:this.element.clientHeight,d=this._orientation==="horizontal"?this.scrollableElement.scrollWidth:this.scrollableElement.scrollHeight,c=h/d;this._scrollOffset=n+l/c,this.calculateScrollbarStyles()},r=()=>{x(this.element,"dv-scrollable-scrolling",!1),document.removeEventListener("pointermove",s),document.removeEventListener("pointerup",r),document.removeEventListener("pointercancel",r)};document.addEventListener("pointermove",s),document.addEventListener("pointerup",r),document.addEventListener("pointercancel",r)}),P(this.element,"scroll",()=>{this.calculateScrollbarStyles()}),P(this.scrollableElement,"scroll",()=>{this._scrollOffset=this._orientation==="horizontal"?this.scrollableElement.scrollLeft:this.scrollableElement.scrollTop,this.calculateScrollbarStyles()}),Ue(this.element,()=>{x(this.element,"dv-scrollable-resizing",!0),this._animationTimer&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(()=>{clearTimeout(this._animationTimer),x(this.element,"dv-scrollable-resizing",!1)},500),this.calculateScrollbarStyles()}))}calculateScrollbarStyles(){const e=this._orientation==="horizontal"?this.element.clientWidth:this.element.clientHeight,t=this._orientation==="horizontal"?this.scrollableElement.scrollWidth:this.scrollableElement.scrollHeight;if(t>e){const n=e*(e/t);this._orientation==="horizontal"?(this._scrollbar.style.width=`${n}px`,this._scrollbar.style.height=""):(this._scrollbar.style.height=`${n}px`,this._scrollbar.style.width=""),this._scrollOffset=B(this._scrollOffset,0,t-e),this._orientation==="horizontal"?this.scrollableElement.scrollLeft=this._scrollOffset:this.scrollableElement.scrollTop=this._scrollOffset;const s=this._scrollOffset/(t-e);this._orientation==="horizontal"?(this._scrollbar.style.left=`${(e-n)*s}px`,this._scrollbar.style.top=""):(this._scrollbar.style.top=`${(e-n)*s}px`,this._scrollbar.style.left="")}else this._orientation==="horizontal"?(this._scrollbar.style.width="0px",this._scrollbar.style.left="0px"):(this._scrollbar.style.height="0px",this._scrollbar.style.top="0px"),this._scrollOffset=0}}lt.MouseWheelSpeed=1;const Nt=[{id:"grey",value:"var(--dv-tab-group-color-grey)",label:"Grey"},{id:"blue",value:"var(--dv-tab-group-color-blue)",label:"Blue"},{id:"red",value:"var(--dv-tab-group-color-red)",label:"Red"},{id:"yellow",value:"var(--dv-tab-group-color-yellow)",label:"Yellow"},{id:"green",value:"var(--dv-tab-group-color-green)",label:"Green"},{id:"pink",value:"var(--dv-tab-group-color-pink)",label:"Pink"},{id:"purple",value:"var(--dv-tab-group-color-purple)",label:"Purple"},{id:"cyan",value:"var(--dv-tab-group-color-cyan)",label:"Cyan"},{id:"orange",value:"var(--dv-tab-group-color-orange)",label:"Orange"}];class gn{constructor(e,t=!0){this._entries=e.slice(),this._byId=new Map(e.map(i=>[i.id,i])),this._enabled=t}get enabled(){return this._enabled}set enabled(e){this._enabled=e}setEntries(e){this._entries=e.slice(),this._byId=new Map(e.map(t=>[t.id,t]))}entries(){return this._entries}has(e){return this._byId.has(e)}get(e){return this._byId.get(e)}defaultId(){var e;return(e=this._entries[0])===null||e===void 0?void 0:e.id}resolveValue(e){if(!this._enabled||!e)return;const t=this._byId.get(e);return t?t.value:e}}let ut;function fn(){return ut||(ut=new gn(Nt,!0)),ut}function Wt(o,e,t){const i=(t??fn()).resolveValue(e);i===void 0?o.style.removeProperty("--dv-tab-group-color"):o.style.setProperty("--dv-tab-group-color",i)}function _n(o,e){return(e??fn()).resolveValue(o)}class ni extends E{get element(){return this._element}constructor(e){super(),this._palette=e,this._onClick=new f,this.onClick=this._onClick.event,this._onContextMenu=new f,this.onContextMenu=this._onContextMenu.event,this._element=document.createElement("div"),this._element.className="dv-tab-group-chip",this._element.tabIndex=0,this._label=document.createElement("span"),this._label.className="dv-tab-group-chip-label",this._element.appendChild(this._label),this.addDisposables(this._onClick,this._onContextMenu,new Vt(this._element,{onLongPress:t=>{this._onContextMenu.fire(t)}}),P(this._element,"click",t=>{this._onClick.fire(t)}),P(this._element,"contextmenu",t=>{this._onContextMenu.fire(t)}))}init(e){this._tabGroup=e.tabGroup,this.updateColor(e.tabGroup.color),this.updateLabel(e.tabGroup.label),this.updateCollapsed(e.tabGroup.collapsed),this.addDisposables(e.tabGroup.onDidChange(()=>{this._tabGroup&&(this.updateColor(this._tabGroup.color),this.updateLabel(this._tabGroup.label))}),e.tabGroup.onDidCollapseChange(t=>{this.updateCollapsed(t)}),this._onClick.event(()=>{var t;(t=this._tabGroup)===null||t===void 0||t.toggle()}))}update(e){this._tabGroup=e.tabGroup,this.updateColor(e.tabGroup.color),this.updateLabel(e.tabGroup.label),this.updateCollapsed(e.tabGroup.collapsed)}updateColor(e){var t;Wt(this._element,e,this._palette),x(this._element,"dv-tab-group-chip--accent-off",((t=this._palette)===null||t===void 0?void 0:t.enabled)===!1)}updateLabel(e){this._label.textContent=e,x(this._label,"dv-tab-group-chip-label--empty",!e)}updateCollapsed(e){x(this._element,"dv-tab-group-chip--collapsed",e)}}class bn{get underlines(){return this._underlines}constructor(e){this._ctx=e,this._underlines=new Map,this._rafId=null}positionUnderlines(){requestAnimationFrame(()=>{this._positionUnderlinesSync()})}trackUnderlines(){this._rafId!==null&&cancelAnimationFrame(this._rafId);const e=performance.now(),t=250,i=()=>{this._positionUnderlinesSync(),performance.now()-e<t?this._rafId=requestAnimationFrame(i):this._rafId=null};this._rafId=requestAnimationFrame(i)}syncUnderlineElements(e){for(const t of e)if(!this._underlines.has(t)){const i=document.createElement("div");i.className="dv-tab-group-underline",this._ctx.tabsList.appendChild(i),this._underlines.set(t,i)}for(const[t,i]of this._underlines)e.has(t)||(i.remove(),this._underlines.delete(t))}getUnderline(e){return this._underlines.get(e)}dispose(){this._rafId!==null&&(cancelAnimationFrame(this._rafId),this._rafId=null);for(const[,e]of this._underlines)e.remove();this._underlines.clear()}_positionUnderlinesSync(){const e=this._ctx.tabsList.getBoundingClientRect(),t=this._ctx.getTabGroups(),i=this._ctx.getDirection()==="vertical",n=i?e.width:e.height,s=this._ctx.getActivePanelId(),r=this._ctx.getTabMap();for(const a of t){const l=this._underlines.get(a.id);if(!l)continue;const h=a.panelIds;if(h.length===0){l.style.display="none";continue}l.style.display="";const d=this._ctx.getChipElement(a.id);let c;if(d){const w=d.getBoundingClientRect(),b=getComputedStyle(d),D=i?Number.parseFloat(b.marginTop)||0:Number.parseFloat(b.marginLeft)||0;c=i?w.top-e.top-D:w.left-e.left-D}else{const w=h[0],b=r.get(w);if(b){const D=b.value.element.getBoundingClientRect();c=i?D.top-e.top:D.left-e.left}else c=0}const p=h[h.length-1],v=r.get(p);if(!v){i?(l.style.top=`${c}px`,l.style.height="0px",l.style.left="",l.style.width=""):(l.style.left=`${c}px`,l.style.width="0px",l.style.top="",l.style.height="");continue}const u=v.value.element.getBoundingClientRect();let m=i?u.bottom-e.top:u.right-e.left,g=m-c;if((a.collapsed||a.panelIds.some(w=>{const b=r.get(w);return b&&b.value.element.classList.contains("dv-tab--group-expanding")}))&&d){const w=d.getBoundingClientRect(),b=i?w.top+w.height/2-e.top:w.left+w.width/2-e.left;let D=0,T=0;for(const S of a.panelIds){const y=r.get(S);if(!y)continue;const G=y.value.element;i?(D+=G.getBoundingClientRect().height,T+=G.scrollHeight):(D+=G.getBoundingClientRect().width,T+=G.scrollWidth)}const C=T>0?Math.min(1,D/T):0;c=b+(c-b)*C,m=b+(m-b)*C,g=Math.max(0,m-c)}i?(l.style.top=`${c}px`,l.style.height=`${Math.max(0,g)}px`,l.style.left="",l.style.width=""):(l.style.left=`${c}px`,l.style.width=`${Math.max(0,g)}px`,l.style.top="",l.style.height=""),this.applyShape(l,a,c,g,n,s,e,i)}}}class Ho extends bn{_applyStraightLine(e,t,i,n,s,r){r?(e.setAttribute("width",String(n)),e.setAttribute("height",String(s)),i.style.width=`${n}px`,i.style.height=`${s}px`,t.setAttribute("d",`M ${n/2},0 L ${n/2},${s}`)):(e.setAttribute("width",String(s)),e.setAttribute("height",String(n)),i.style.width=`${s}px`,i.style.height=`${n}px`,t.setAttribute("d",`M 0,${n/2} L ${s},${n/2}`))}applyShape(e,t,i,n,s,r,a,l){const d=s,c=n,p=_n(t.color,this._ctx.getColorPalette());if(c<=0||d<=0||p===void 0){e.style.display="none";return}e.style.display="";let v;r&&t.panelIds.includes(r)&&(v=this._ctx.getTabMap().get(r));let u=e.firstElementChild,m;if(!u||u.tagName!=="svg"?(e.replaceChildren(),u=document.createElementNS("http://www.w3.org/2000/svg","svg"),u.style.display="block",m=document.createElementNS("http://www.w3.org/2000/svg","path"),m.setAttribute("fill","none"),u.appendChild(m),e.appendChild(u)):m=u.firstElementChild,m.setAttribute("stroke",p),m.setAttribute("stroke-width",String(2)),!v){this._applyStraightLine(u,m,e,2,c,l);return}const g=v.value.element.getBoundingClientRect();let _,w;if(l?(_=Math.max(0,g.top-a.top-i),w=Math.min(c,g.bottom-a.top-i)):(_=Math.max(0,g.left-a.left-i),w=Math.min(c,g.right-a.left-i)),w<=_){this._applyStraightLine(u,m,e,2,c,l);return}const b=6,D=2/2,T=this._ctx.getHeaderPosition();if(l){const C=d,S=c;u.setAttribute("width",String(C)),u.setAttribute("height",String(S)),e.style.width=`${C}px`,e.style.height=`${S}px`;const y=T==="right",G=y?C-D:D,O=y?D:C-D,R=y?-1:1,V=[`M ${G},0`,`L ${G},${_-b}`,`Q ${G},${_} ${G+R*b},${_}`,`L ${O-R*b},${_}`,`Q ${O},${_} ${O},${_+b}`,`L ${O},${w-b}`,`Q ${O},${w} ${O-R*b},${w}`,`L ${G+R*b},${w}`,`Q ${G},${w} ${G},${w+b}`,`L ${G},${S}`].join(" ");m.setAttribute("d",V)}else{const C=c,S=d;u.setAttribute("width",String(C)),u.setAttribute("height",String(S)),e.style.width=`${C}px`,e.style.height=`${S}px`;const y=T==="bottom",G=y?D:S-D,O=y?S-D:D,R=y?1:-1,V=[`M 0,${G}`,`L ${_-b},${G}`,`Q ${_},${G} ${_},${G+R*b}`,`L ${_},${O-R*b}`,`Q ${_},${O} ${_+b},${O}`,`L ${w-b},${O}`,`Q ${w},${O} ${w},${O-R*b}`,`L ${w},${G+R*b}`,`Q ${w},${G} ${w+b},${G}`,`L ${C},${G}`].join(" ");m.setAttribute("d",V)}}}class Fo extends bn{applyShape(e,t,i,n,s,r,a,l){const d=_n(t.color,this._ctx.getColorPalette());if(n<=0||d===void 0){e.style.display="none";return}e.style.display="",e.firstElementChild&&e.replaceChildren(),e.style.backgroundColor=d,l?(e.style.width="2px",e.style.height=`${n}px`):(e.style.width=`${n}px`,e.style.height="2px")}}const Bo=new Map;class $o{get chipRenderers(){return this._chipRenderers}get groupUnderlines(){var e,t;return(t=(e=this._indicator)===null||e===void 0?void 0:e.underlines)!==null&&t!==void 0?t:Bo}get skipNextCollapseAnimation(){return this._skipNextCollapseAnimation}set skipNextCollapseAnimation(e){this._skipNextCollapseAnimation=e}constructor(e,t){this._ctx=e,this._callbacks=t,this._chipRenderers=new Map,this._indicator=null,this._skipNextCollapseAnimation=!1,this._pendingTransitionCleanups=new Map}update(){const t=this._ctx.group.model.getTabGroups(),i=new Set;for(const n of t)i.add(n.id),this._ensureChipForGroup(n),this._positionChipForGroup(n);for(const[n,s]of this._chipRenderers)i.has(n)||(s.chip.element.remove(),s.chip.dispose(),s.disposable.dispose(),this._chipRenderers.delete(n));this._updateTabGroupClasses()}refreshAccents(){var e,t;for(const i of this._ctx.group.model.getTabGroups()){const n=this._chipRenderers.get(i.id);(t=n==null?void 0:(e=n.chip).update)===null||t===void 0||t.call(e,{tabGroup:i})}this._updateTabGroupClasses()}positionAllChips(){if(this._chipRenderers.size!==0)for(const e of this._ctx.group.model.getTabGroups())this._positionChipForGroup(e)}updateDirection(){const e=this._ctx.getDirection()==="vertical";for(const[,t]of this._chipRenderers)t.dropTarget.setTargetZones(e?["top"]:["left"])}snapshotChipWidths(){const e=new Map;for(const[t,i]of this._chipRenderers)e.set(t,i.chip.element.getBoundingClientRect().width);return e}positionUnderlines(){var e;(e=this._indicator)===null||e===void 0||e.positionUnderlines()}trackUnderlines(){var e;(e=this._indicator)===null||e===void 0||e.trackUnderlines()}setGroupDragImage(e,t,i){if(!e.dataTransfer)return;const n=this._ctx.getDirection()==="vertical",s=this._ctx.tabsList.cloneNode(!0);n?(s.classList.remove("dv-tabs-container-vertical","dv-vertical"),s.classList.add("dv-horizontal"),s.style.writingMode="horizontal-tb",s.style.height=`${this._ctx.tabsList.offsetWidth}px`):s.style.height=`${this._ctx.tabsList.offsetHeight}px`,s.style.width="auto",s.style.overflow="visible",s.style.pointerEvents="none";const r=Array.from(s.children),a=Array.from(this._ctx.tabsList.children);for(let u=r.length-1;u>=0;u--)a[u]!==i&&r[u].remove();const l=document.createElement("div");l.className="dv-groupview dv-active-group",l.style.position="fixed",l.style.top="-10000px",l.style.left="0px",l.style.height="auto",l.style.width="auto",l.style.pointerEvents="none";const h=document.createElement("div");h.className="dv-tabs-and-actions-container",h.style.height="auto",h.style.width="auto",l.appendChild(h),h.appendChild(s),this._ctx.accessor.element.appendChild(l);const d=s.querySelector(".dv-tab-group-chip"),c=i.getBoundingClientRect(),p=e.clientX-c.left,v=e.clientY-c.top;if(d){const u=d.getBoundingClientRect(),m=l.getBoundingClientRect(),g=u.left-m.left+p,_=u.top-m.top+v;e.dataTransfer.setDragImage(l,g,_)}else e.dataTransfer.setDragImage(l,p,v);requestAnimationFrame(()=>{l.remove()})}cleanupTransition(e){var t;(t=this._pendingTransitionCleanups.get(e))===null||t===void 0||t(),this._pendingTransitionCleanups.delete(e)}updateDragAndDropState(){const e=ue(this._ctx.accessor.options);for(const t of this._chipRenderers.values())t.chip.element.draggable=e.html5,t.html5DragSource.setDisabled(!e.html5),t.pointerDragSource.setDisabled(!e.pointer),t.pointerDragSource.setTouchOnly(!e.pointerHandlesMouse)}disposeChipDrag(e){var t,i;const n=this._chipRenderers.get(e);n&&((t=n.html5DragSource)===null||t===void 0||t.dispose(),(i=n.pointerDragSource)===null||i===void 0||i.dispose())}_buildChipGhostElement(e){const t=getComputedStyle(e),i=e.cloneNode(!0);return Array.from(t).forEach(n=>{i.style.setProperty(n,t.getPropertyValue(n),t.getPropertyPriority(n))}),i.style.position="absolute",i}disposeAll(){var e;(e=this._indicator)===null||e===void 0||e.dispose(),this._indicator=null;for(const[,t]of this._pendingTransitionCleanups)t();this._pendingTransitionCleanups.clear();for(const[,t]of this._chipRenderers)t.chip.element.remove(),t.chip.dispose(),t.disposable.dispose();this._chipRenderers.clear()}_ensureIndicator(){var e,t;const n=((t=(e=this._ctx.accessor.options.theme)===null||e===void 0?void 0:e.tabGroupIndicator)!==null&&t!==void 0?t:"wrap")==="none"?Fo:Ho;this._indicator&&!(this._indicator instanceof n)&&(this._indicator.dispose(),this._indicator=null),this._indicator||(this._indicator=new n({tabsList:this._ctx.tabsList,getTabGroups:()=>this._ctx.group.model.getTabGroups(),getActivePanelId:()=>{var s;return(s=this._ctx.group.activePanel)===null||s===void 0?void 0:s.id},getTabMap:()=>this._ctx.getTabMap(),getChipElement:s=>{var r;return(r=this._chipRenderers.get(s))===null||r===void 0?void 0:r.chip.element},getDirection:()=>this._ctx.getDirection(),getHeaderPosition:()=>this._ctx.group.model.headerPosition,getColorPalette:()=>this._ctx.accessor.tabGroupColorPalette}))}_ensureChipForGroup(e){if(this._chipRenderers.has(e.id))return;const t=this._ctx.accessor.options.createTabGroupChipComponent,i=t?t(e):new ni(this._ctx.accessor.tabGroupColorPalette);i.init({tabGroup:e,api:this._ctx.accessor.api});const n=ue(this._ctx.accessor.options);i.element.draggable=n.html5;const s=oe.getInstance(),r=()=>(s.setData([new Q(this._ctx.accessor.id,this._ctx.group.id,null,e.id)],Q.prototype),{dispose:()=>{s.clearData(Q.prototype)}}),a=Ce.createDragSource(i.element,{getData:r,disabled:!n.html5,isCancelled:()=>!ue(this._ctx.accessor.options).html5,onDragStart:u=>{"dataTransfer"in u&&u.dataTransfer&&this.setGroupDragImage(u,e,i.element),this._callbacks.onChipDragStart(e,i,u)},onDragEnd:u=>{var m,g;(g=(m=this._callbacks).onChipDragEnd)===null||g===void 0||g.call(m,e,i,u)}});i.element.addEventListener("dragend",()=>{s.clearData(Q.prototype)},{once:!0});const l=be.createDragSource(i.element,{getData:r,disabled:!n.pointer,touchOnly:!n.pointerHandlesMouse,isCancelled:()=>!ue(this._ctx.accessor.options).pointer,createGhost:()=>({element:this._buildChipGhostElement(i.element),offsetX:8,offsetY:8}),onDragStart:u=>{this._callbacks.onChipDragStart(e,i,u)}}),h=[e.onDidChange(()=>{var u;(u=i.update)===null||u===void 0||u.call(i,{tabGroup:e}),this._updateTabGroupClasses()}),e.onDidPanelChange(()=>{this._positionChipForGroup(e),this._updateTabGroupClasses()}),e.onDidCollapseChange(()=>{this._updateTabGroupClasses()}),a,l],d=u=>{l.cancelPending(),this._callbacks.onChipContextMenu(e,u)};i instanceof ni?h.push(i.onContextMenu(d)):h.push(new Vt(i.element,{onLongPress:d}),P(i.element,"contextmenu",d));const c=this._ctx.getDirection()==="vertical",p=new fe(i.element,{acceptedTargetZones:c?["top"]:["left"],overlayModel:{activationSize:{value:100,type:"percentage"}},canDisplayOverlay:(u,m)=>{var g;if(this._ctx.group.locked||this._ctx.accessor.options.disableDnd)return!1;const _=$();return _&&this._ctx.accessor.id===_.viewId?((g=this._ctx.accessor.options.theme)===null||g===void 0?void 0:g.tabAnimation)!=="smooth":this._ctx.group.model.canDisplayOverlay(u,m,"tab")}});h.push(p,p.onDrop(u=>{this._callbacks.onChipDrop(e,u)}));const v=new E(...h);this._chipRenderers.set(e.id,{chip:i,html5DragSource:a,pointerDragSource:l,disposable:v,dropTarget:p}),e.collapsed&&(this._skipNextCollapseAnimation=!0)}_positionChipForGroup(e){const t=this._chipRenderers.get(e.id);if(!t)return;const i=t.chip.element,n=e.panelIds;if(n.length===0){i.remove();return}const s=n[0],r=this._ctx.getTabMap().get(s);if(!r){i.remove();return}const a=r.value.element;i.nextSibling!==a&&this._ctx.tabsList.insertBefore(i,a)}_updateTabGroupClasses(){var e;const i=this._ctx.group.model.getTabGroups(),n=this._ctx.getTabs(),s=this._ctx.getTabMap();let r=!1;const a=new Map;for(const h of i)for(const d of h.panelIds)a.set(d,h);for(const h of n){const d=h.value,c=d.panel.id,p=a.get(c),v=!!p;if(x(d.element,"dv-tab--grouped",v),p){const u=p.panelIds,m=u[0]===c,g=u[u.length-1]===c;x(d.element,"dv-tab--group-first",m),x(d.element,"dv-tab--group-last",g),Wt(d.element,p.color,this._ctx.accessor.tabGroupColorPalette);const _=d.element.classList.contains("dv-tab--group-collapsed");if(!p.collapsed&&_){r=!0,d.element.classList.remove("dv-tab--group-collapsed"),d.element.classList.add("dv-tab--group-expanding"),(e=this._pendingTransitionCleanups.get(c))===null||e===void 0||e();const w=()=>{d.element.classList.remove("dv-tab--group-expanding"),d.element.style.removeProperty("width"),d.element.removeEventListener("transitionend",w),clearTimeout(b),this._pendingTransitionCleanups.delete(c)},b=setTimeout(w,300);this._pendingTransitionCleanups.set(c,w),d.element.addEventListener("transitionend",w)}}else x(d.element,"dv-tab--group-first",!1),x(d.element,"dv-tab--group-last",!1),d.element.classList.remove("dv-tab--group-collapsed","dv-tab--group-expanding"),d.element.style.removeProperty("width"),d.element.style.removeProperty("--dv-tab-group-color")}const l=new Set;for(const h of i)if(l.add(h.id),h.collapsed&&h.panelIds.some(c=>{const p=s.get(c);return p&&!p.value.element.classList.contains("dv-tab--group-collapsed")}))if(this._skipNextCollapseAnimation){const c=[];for(const p of h.panelIds){const v=s.get(p);v&&(v.value.element.style.transition="none",v.value.element.classList.add("dv-tab--group-collapsed"),c.push(v.value.element))}if(c.length>0){c[0].offsetHeight;for(const p of c)p.style.removeProperty("transition")}}else{r=!0;const c=this._ctx.getDirection()==="vertical";for(const p of h.panelIds){const v=s.get(p);if(v&&!v.value.element.classList.contains("dv-tab--group-collapsed")){const u=v.value.element.getBoundingClientRect();c?v.value.element.style.height=`${u.height}px`:v.value.element.style.width=`${u.width}px`,v.value.element.offsetHeight,v.value.element.classList.add("dv-tab--group-collapsed")}}}this._skipNextCollapseAnimation=!1,this._ensureIndicator(),this._indicator&&(this._indicator.syncUnderlineElements(l),r?this._indicator.trackUnderlines():this._indicator.positionUnderlines())}}class Uo extends E{get showTabsOverflowControl(){return this._showTabsOverflowControl}set showTabsOverflowControl(e){if(this._showTabsOverflowControl!=e&&(this._showTabsOverflowControl=e,e)){const t=new $s(this._tabsList);this._observerDisposable.value=new E(t,t.onDidChange(i=>{const n=i.hasScrollX||i.hasScrollY;this.toggleDropdown({reset:!n}),this._tabGroupManager.groupUnderlines.size>0&&this._tabGroupManager.positionUnderlines()}),P(this._tabsList,"scroll",()=>{this.toggleDropdown({reset:!1}),this._tabGroupManager.groupUnderlines.size>0&&this._tabGroupManager.positionUnderlines()}))}}get element(){return this._element}set voidContainer(e){var t;(t=this._voidContainerListeners)===null||t===void 0||t.dispose(),this._voidContainerListeners=null,this._voidContainer=e,e&&(this._voidContainerListeners=new E(P(e,"dragover",i=>{this._animState&&i.preventDefault()}),P(e,"drop",i=>{var n;!((n=this._animState)===null||n===void 0)&&n.sourceTabGroupId&&this._animState.currentInsertionIndex!==null&&(i.preventDefault(),i.stopPropagation(),this.handleVoidDrop())})))}handleVoidDrop(){var e,t;if(!(!((e=this._animState)===null||e===void 0)&&e.sourceTabGroupId))return!1;const i=this._animState.sourceTabGroupId,n=(t=this._animState.currentInsertionIndex)!==null&&t!==void 0?t:this._tabs.length;return this._animState=null,this._commitGroupMove(i,n),!0}get panels(){return this._tabs.map(e=>e.value.panel.id)}get size(){return this._tabs.length}get tabs(){return this._tabs.map(e=>e.value)}get direction(){return this._direction}set direction(e){if(this._direction!==e){this._direction=e,this._tabsList.setAttribute("aria-orientation",e==="vertical"?"vertical":"horizontal"),this._scrollbar&&(this._scrollbar.orientation=e),re(this._tabsList,"dv-horizontal","dv-vertical"),e==="vertical"?ae(this._tabsList,"dv-tabs-container-vertical","dv-vertical"):(re(this._tabsList,"dv-tabs-container-vertical"),ae(this._tabsList,"dv-horizontal"));for(const t of this._tabs)t.value.setDirection(e);this._tabGroupManager.updateDirection()}}constructor(e,t,i){super(),this.group=e,this.accessor=t,this._observerDisposable=new X,this._scrollbar=null,this._tabs=[],this._tabMap=new Map,this.selectedIndex=-1,this._showTabsOverflowControl=!1,this._direction="horizontal",this._animState=null,this._pendingMarginCleanups=new Map,this._pendingCollapse=!1,this._flipTransitionCleanup=null,this._voidContainer=null,this._voidContainerListeners=null,this._extendedDropZone=null,this._pointerInsideTabsList=!1,this._onTabDragStart=new f,this.onTabDragStart=this._onTabDragStart.event,this._onDrop=new f,this.onDrop=this._onDrop.event,this._onWillShowOverlay=new f,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onOverflowTabsChange=new f,this.onOverflowTabsChange=this._onOverflowTabsChange.event,this._tabsList=document.createElement("div"),this._tabsList.className="dv-tabs-container",this._tabsList.setAttribute("role","tablist"),this._tabsList.setAttribute("aria-orientation",this._direction==="vertical"?"vertical":"horizontal"),this.showTabsOverflowControl=i.showTabsOverflowControl,t.options.scrollbars==="native"?this._element=this._tabsList:(this._scrollbar=new lt(this._tabsList),this._scrollbar.orientation=this.direction,this._element=this._scrollbar.element,this.addDisposables(this._scrollbar)),this._tabGroupManager=new $o({group:this.group,accessor:this.accessor,tabsList:this._tabsList,getTabs:()=>this._tabs,getTabMap:()=>this._tabMap,getDirection:()=>this._direction},{onChipContextMenu:(n,s)=>{var r;(r=this.accessor.contextMenuService)===null||r===void 0||r.showForChip(n,this.group,s)},onChipDragStart:(n,s,r)=>{this._handleChipDragStart(n,s,r)},onChipDragEnd:()=>{this.resetDragAnimation()},onChipDrop:(n,s)=>{this._handleChipDrop(n,s)}}),this.addDisposables(this._onOverflowTabsChange,this._observerDisposable,this._onWillShowOverlay,this._onDrop,this._onTabDragStart,{dispose:()=>{var n;(n=this._flipTransitionCleanup)===null||n===void 0||n.call(this)}},_e.getInstance().onDragEnd(()=>{this._pointerInsideTabsList=!1,this.resetDragAnimation()}),_e.getInstance().onDragMove(n=>{this._handlePointerDragMove(n.clientX,n.clientY)}),P(this.element,"pointerdown",n=>{if(n.defaultPrevented)return;n.button===0&&this.accessor.doSetGroupActive(this.group)}),P(this._tabsList,"wheel",n=>{const s=this._direction==="vertical",r=s?n.deltaY||n.deltaX:n.deltaX||n.deltaY;if(r===0)return;const a=s?this._tabsList.scrollHeight-this._tabsList.clientHeight:this._tabsList.scrollWidth-this._tabsList.clientWidth;if(a<=0)return;const l=s?this._tabsList.scrollTop:this._tabsList.scrollLeft;r<0&&l<=0||r>0&&l>=a||(n.preventDefault(),n.stopPropagation(),s?this._tabsList.scrollTop=l+r:this._tabsList.scrollLeft=l+r)},{passive:!1}),P(this._tabsList,"keydown",n=>{this._onKeyDown(n)}),P(this._tabsList,"dragover",n=>{this._processDragOver(n.clientX)&&n.preventDefault()},!0),P(this._tabsList,"dragleave",n=>{this._processDragLeave(n.relatedTarget)},!0),P(this._tabsList,"dragend",()=>{this.resetDragAnimation()}),P(this._tabsList,"drop",n=>{var s,r,a;if(!this._animState||this._animState.currentInsertionIndex===null||((s=this.accessor.options.theme)===null||s===void 0?void 0:s.tabAnimation)!=="smooth"&&!this._animState.sourceTabGroupId)return;n.stopPropagation(),n.preventDefault(),(a=(r=this.group.model.dropTargetContainer)===null||r===void 0?void 0:r.model)===null||a===void 0||a.clear();const l=this._animState;if(this._animState=null,this._pendingCollapse=!1,l.sourceTabGroupId){this._commitGroupMove(l.sourceTabGroupId,l.currentInsertionIndex);return}const h=l.currentInsertionIndex,d=l.sourceIndex,c=h-(d!==-1&&d<h?1:0),p=this.group.model.getTabGroupForPanel(l.sourceTabId);if(c===d&&!l.targetTabGroupId&&!p){this._uncollapsSourceTab(l.sourceTabId),this.resetTabTransforms();return}this._uncollapsSourceTab(l.sourceTabId);const v=this.snapshotTabPositions();this.resetTabTransforms(),this._onDrop.fire({event:n,index:c,targetTabGroupId:l.targetTabGroupId}),this.runFlipAnimation(v,l.sourceTabId,l.sourceIndex===-1,{from:Math.min(d,c),to:Math.max(d,c)})},!0),N.from(()=>{var n;(n=this._voidContainerListeners)===null||n===void 0||n.dispose(),this.resetDragAnimation(),this._tabGroupManager.disposeAll();for(const{value:s,disposable:r}of this._tabs)r.dispose(),s.dispose();this._tabs=[],this._tabMap.clear()}))}indexOf(e){return this._tabs.findIndex(t=>t.value.panel.id===e)}getTabId(e){var t;return(t=this._tabMap.get(e))===null||t===void 0?void 0:t.value.element.id}isActive(e){return this.selectedIndex>-1&&this._tabs[this.selectedIndex].value===e}_onKeyDown(e){const t=this._tabs.findIndex(a=>a.value.element===e.target);if(t===-1)return;const i=this._direction==="vertical",n=i?"ArrowDown":"ArrowRight",s=i?"ArrowUp":"ArrowLeft",r=this._tabs.length-1;switch(e.key){case n:e.preventDefault(),this._focusTab(Math.min(t+1,r));break;case s:e.preventDefault(),this._focusTab(Math.max(t-1,0));break;case"Home":e.preventDefault(),this._focusTab(0);break;case"End":e.preventDefault(),this._focusTab(r);break;case"Enter":case" ":e.preventDefault(),this.accessor.withOrigin("user",()=>this._tabs[t].value.panel.api.setActive());break;case"Delete":case"Backspace":e.preventDefault(),this._closeTab(t);break}}_closeTab(e){var t,i,n,s,r;const a=(t=this._tabs[e])===null||t===void 0?void 0:t.value;if(!a)return;const l=(r=(n=(i=this._tabs[e+1])===null||i===void 0?void 0:i.value)!==null&&n!==void 0?n:(s=this._tabs[e-1])===null||s===void 0?void 0:s.value)===null||r===void 0?void 0:r.panel.id;if(a.panel.api.close(),l!==void 0){const h=this._tabs.findIndex(d=>d.value.panel.id===l);h>-1&&this._focusTab(h)}}_focusTab(e){for(let t=0;t<this._tabs.length;t++)this._tabs[t].value.element.tabIndex=t===e?0:-1;this._tabs[e].value.element.focus()}focusActiveTab(){var e;if(this._tabs.length===0)return;const t=(e=this.group.activePanel)===null||e===void 0?void 0:e.id,i=t?this._tabs.findIndex(n=>n.value.panel.id===t):-1;this._focusTab(i>-1?i:0)}setActivePanel(e){const t=this._direction==="vertical";let i=0;for(const n of this._tabs){const s=e.id===n.value.panel.id;if(n.value.setActive(s),s){const r=n.value.element,a=r.parentElement;t?(i<a.scrollTop||i+r.clientHeight>a.scrollTop+a.clientHeight)&&(a.scrollTop=i):(i<a.scrollLeft||i+r.clientWidth>a.scrollLeft+a.clientWidth)&&(a.scrollLeft=i)}i+=t?n.value.element.clientHeight:n.value.element.clientWidth}this._tabGroupManager.groupUnderlines.size>0&&this._tabGroupManager.positionUnderlines()}openPanel(e,t=this._tabs.length){if(this._tabMap.has(e.id))return;const i=new Vo(e,this.accessor,this.group);i.setContent(e.view.tab),this._direction!=="horizontal"&&i.setDirection(this._direction);const n=new E(i.onDragStart(r=>{var a;if(this._onTabDragStart.fire({nativeEvent:r,panel:e}),((a=this.accessor.options.theme)===null||a===void 0?void 0:a.tabAnimation)==="smooth"){const l=i.element.getBoundingClientRect().width,h=this._tabs.findIndex(d=>d.value===i);this._animState={sourceTabId:e.id,sourceIndex:h,tabPositions:this.snapshotTabPositions(),chipPositions:this._tabGroupManager.snapshotChipWidths(),currentInsertionIndex:null,targetTabGroupId:null,sourceTabGroupId:null,sourceGroupPanelIds:null,sourceChipWidth:0,cursorOffsetFromDragLeft:l/2,sourceGapWidth:l,containerLeft:this._tabsList.getBoundingClientRect().left},this._pendingCollapse=!0,requestAnimationFrame(()=>{var d,c;this._pendingCollapse=!1,this._animState&&(i.element.style.transition="none",x(i.element,"dv-tab--dragging",!0),i.element.offsetHeight,(d=(c=this._animState).currentInsertionIndex)!==null&&d!==void 0||(c.currentInsertionIndex=h),this.applyDragOverTransforms(!0),i.element.style.removeProperty("transition"))})}}),i.onTabClick(r=>{r.defaultPrevented||this.group.api.location.type==="edge"&&(this.group.activePanel===e?this.group.api.isCollapsed()?this.group.api.expand():this.group.api.collapse():(this.group.model.openPanel(e),this.group.api.isCollapsed()&&this.group.api.expand()))}),i.onPointerDown(r=>{if(r.defaultPrevented)return;const a=!this.accessor.options.disableFloatingGroups,l=this.group.api.location.type==="floating"&&this.size===1;if(a&&!l&&r.shiftKey){r.preventDefault();const h=this.accessor.getGroupPanel(i.panel.id),{top:d,left:c}=i.element.getBoundingClientRect(),{top:p,left:v}=this.accessor.element.getBoundingClientRect();this.accessor.addFloatingGroup(h,{x:c-v,y:d-p,inDragMode:!0});return}r.button===0&&(this.group.api.location.type==="edge"||this.group.activePanel!==e&&this.group.model.openPanel(e))}),i.onDrop(r=>{var a,l,h,d;const c=this._animState;this._animState=null,this._pendingCollapse=!1;const p=this._tabs.findIndex(v=>v.value===i);if(c){const v=r.position==="right"?p+1:p;if(c.sourceTabGroupId){this._commitGroupMove(c.sourceTabGroupId,(a=c.currentInsertionIndex)!==null&&a!==void 0?a:v);return}this._uncollapsSourceTab(c.sourceTabId);const u=this.snapshotTabPositions();this.resetTabTransforms(),this._onDrop.fire({event:r.nativeEvent,index:v,targetTabGroupId:c.targetTabGroupId}),((l=this.accessor.options.theme)===null||l===void 0?void 0:l.tabAnimation)==="smooth"&&this.runFlipAnimation(u,c.sourceTabId,c.sourceIndex===-1,c.sourceIndex!==-1?{from:Math.min(c.sourceIndex,v),to:Math.max(c.sourceIndex,v)}:void 0)}else{const v=this._direction==="vertical"?"bottom":"right",u=r.position===v?p+1:p,m=$(),g=m?this._tabs.findIndex(b=>b.value.panel.id===m.panelId):-1,_=u-(g!==-1&&g<u?1:0),w=(d=(h=this.group.model.getTabGroupForPanel(i.panel.id))===null||h===void 0?void 0:h.id)!==null&&d!==void 0?d:null;this._onDrop.fire({event:r.nativeEvent,index:_,targetTabGroupId:w})}}),i.onWillShowOverlay(r=>{this._onWillShowOverlay.fire(new Fe(r,{kind:"tab",panel:this.group.activePanel,api:this.accessor.api,group:this.group,getData:$}))})),s={value:i,disposable:n};this.addTab(s,t),this._tabGroupManager.positionAllChips(),this._animState&&(this._animState.tabPositions=this.snapshotTabPositions(),this._animState.chipPositions=this._tabGroupManager.snapshotChipWidths(),this.applyDragOverTransforms())}delete(e){var t;((t=this._animState)===null||t===void 0?void 0:t.sourceTabId)===e&&(this.resetTabTransforms(),this._animState=null),this._tabGroupManager.cleanupTransition(e);const i=this.indexOf(e),n=this._tabs.splice(i,1)[0];if(this._tabMap.delete(e),n){const{value:s,disposable:r}=n;r.dispose(),s.dispose(),s.element.remove()}this._animState&&(this._animState.tabPositions=this.snapshotTabPositions(),this._animState.chipPositions=this._tabGroupManager.snapshotChipWidths(),this.applyDragOverTransforms())}addTab(e,t=this._tabs.length){if(t<0||t>this._tabs.length)throw new Error("invalid location");const i=t<this._tabs.length?this._tabs[t].value.element:null;this._tabsList.insertBefore(e.value.element,i),this._tabs=[...this._tabs.slice(0,t),e,...this._tabs.slice(t)],this._tabMap.set(e.value.panel.id,e),this.selectedIndex<0&&(this.selectedIndex=t)}toggleDropdown(e){if(e.reset){this._onOverflowTabsChange.fire({tabs:[],tabGroups:[],reset:!0});return}const t=this._tabs.filter(s=>!ei(s.value.element,this._tabsList)).map(s=>s.value.panel.id),i=new Set(t),n=[];for(const s of this.group.model.getTabGroups()){const r=this._tabGroupManager.chipRenderers.get(s.id),a=r&&!ei(r.chip.element,this._tabsList),l=s.panelIds.length>0&&s.panelIds.every(h=>i.has(h));if((a||l)&&(n.push(s.id),s.collapsed))for(const h of s.panelIds)i.has(h)||(i.add(h),t.push(h))}this._onOverflowTabsChange.fire({tabs:t,tabGroups:n,reset:!1})}updateDragAndDropState(){for(const e of this._tabs)e.value.updateDragAndDropState();this._tabGroupManager.updateDragAndDropState()}updateTabGroups(){this._tabGroupManager.update()}refreshTabGroupAccent(){this._tabGroupManager.refreshAccents()}_handleChipDragStart(e,t,i){var n;const s=e.panelIds[0],r=s?this._tabs.findIndex(d=>d.value.panel.id===s):-1,a=t.element.getBoundingClientRect();let l=a.width;for(const d of e.panelIds){const c=this._tabMap.get(d);c&&(l+=c.value.element.getBoundingClientRect().width)}if(this._animState={sourceTabId:"",sourceIndex:r,tabPositions:this.snapshotTabPositions(),chipPositions:this._tabGroupManager.snapshotChipWidths(),currentInsertionIndex:null,targetTabGroupId:null,sourceTabGroupId:e.id,sourceGroupPanelIds:new Set(e.panelIds),sourceChipWidth:a.width,cursorOffsetFromDragLeft:i.clientX-a.left,sourceGapWidth:l,containerLeft:this._tabsList.getBoundingClientRect().left},((n=this.accessor.options.theme)===null||n===void 0?void 0:n.tabAnimation)!=="smooth")return;const h=new Set(e.panelIds);this._pendingCollapse=!0,requestAnimationFrame(()=>{var d,c;if(this._pendingCollapse=!1,!this._animState)return;for(const u of this._tabs)h.has(u.value.panel.id)&&(u.value.element.style.transition="none",x(u.value.element,"dv-tab--dragging",!0));const p=this._tabGroupManager.chipRenderers.get(e.id);p&&(p.chip.element.style.transition="none",x(p.chip.element,"dv-tab-group-chip--dragging",!0)),this._tabsList.offsetHeight;const v=this._tabGroupManager.groupUnderlines.get(e.id);v&&(v.style.display="none"),(d=(c=this._animState).currentInsertionIndex)!==null&&d!==void 0||(c.currentInsertionIndex=r),this.applyDragOverTransforms(!0);for(const u of this._tabs)h.has(u.value.panel.id)&&u.value.element.style.removeProperty("transition");p&&p.chip.element.style.removeProperty("transition")})}_handleChipDrop(e,t){const i=e.panelIds[0];if(!i)return;const n=this._tabs.findIndex(l=>l.value.panel.id===i);if(n===-1)return;const s=$(),r=s&&s.groupId===this.group.id&&s.panelId?this._tabs.findIndex(l=>l.value.panel.id===s.panelId):-1,a=n-(r!==-1&&r<n?1:0);this._onDrop.fire({event:t.nativeEvent,index:a,targetTabGroupId:null})}setExtendedDropZone(e){this._extendedDropZone=e}setExternalInsertionIndex(e){this._animState&&e!==this._animState.currentInsertionIndex&&(this._animState.currentInsertionIndex=e,this.applyDragOverTransforms())}clearExternalAnimState(){this._animState&&(this.resetTabTransforms(),this._animState.sourceIndex===-1?this._animState=null:this._animState.currentInsertionIndex=null)}snapshotTabPositions(){const e=new Map;for(const t of this._tabs)e.set(t.value.panel.id,t.value.element.getBoundingClientRect());return e}getAverageTabWidth(){if(this._tabs.length===0)return 0;const e=this._direction==="vertical";let t=0;for(const i of this._tabs){const n=i.value.element.getBoundingClientRect();t+=e?n.height:n.width}return t/this._tabs.length}_handlePointerDragMove(e,t){var i;const s=((i=this._tabsList.ownerDocument)!==null&&i!==void 0?i:document).elementFromPoint(e,t);if(!(!!s&&(this._tabsList.contains(s)||!!this._extendedDropZone&&this._extendedDropZone.contains(s)))){this._pointerInsideTabsList&&(this._pointerInsideTabsList=!1,this._processDragLeave(s));return}this._pointerInsideTabsList=!0,this._processDragOver(e)}_processDragOver(e){var t,i,n,s;if(this.accessor.options.disableDnd)return!1;if(this._animState){const r=$();r?.tabGroupId&&r.groupId!==this.group.id&&this._animState.sourceTabGroupId!==r.tabGroupId&&(this._animState=null)}if(!this._animState){const r=$();if(((t=this.accessor.options.theme)===null||t===void 0?void 0:t.tabAnimation)==="default"&&!r?.tabGroupId)return!1;if(r&&(r.panelId||r.tabGroupId)&&r.groupId!==this.group.id){const a=this.getAverageTabWidth();if(r.tabGroupId){const l=this.accessor.getPanel(r.groupId),h=l?.model.getTabGroups().find(p=>p.id===r.tabGroupId),d=(i=h?.panelIds.length)!==null&&i!==void 0?i:1,c=a*d+a;this._animState={sourceTabId:"",sourceIndex:-1,tabPositions:this.snapshotTabPositions(),chipPositions:this._tabGroupManager.snapshotChipWidths(),currentInsertionIndex:null,targetTabGroupId:null,sourceTabGroupId:r.tabGroupId,sourceGroupPanelIds:h?new Set(h.panelIds):new Set,sourceChipWidth:a,cursorOffsetFromDragLeft:c/2,sourceGapWidth:c,containerLeft:this._tabsList.getBoundingClientRect().left}}else this._animState={sourceTabId:r.panelId,sourceIndex:-1,tabPositions:this.snapshotTabPositions(),chipPositions:this._tabGroupManager.snapshotChipWidths(),currentInsertionIndex:null,targetTabGroupId:null,sourceTabGroupId:null,sourceGroupPanelIds:null,sourceChipWidth:0,cursorOffsetFromDragLeft:a/2,sourceGapWidth:a,containerLeft:this._tabsList.getBoundingClientRect().left}}else return!1}return this._animState.sourceIndex!==-1&&((s=(n=this.group.model.dropTargetContainer)===null||n===void 0?void 0:n.model)===null||s===void 0||s.clear()),this.handleDragOver({clientX:e}),!0}_processDragLeave(e){var t,i,n;if(!this._animState||e&&this._tabsList.contains(e))return;if(e&&(!((t=this._extendedDropZone)===null||t===void 0)&&t.contains(e))){this.resetTabTransforms(),this._animState.currentInsertionIndex=null;return}this._voidContainer&&e&&(e===this._voidContainer||this._voidContainer.contains(e))||(this.resetTabTransforms(),this._animState.sourceIndex===-1?((n=(i=this.group.model.dropTargetContainer)===null||i===void 0?void 0:i.model)===null||n===void 0||n.clear(),this._animState=null):this._animState.currentInsertionIndex=null)}handleDragOver(e){var t,i,n,s,r;if(!this._animState)return;const a=e.clientX;let l=null,h=null;const d=this._animState.sourceGroupPanelIds,p=a-this._animState.cursorOffsetFromDragLeft-this._animState.containerLeft;let v=0;const u=new Map;if(this._tabGroupManager.chipRenderers.size>0){const m=this.group.model.getTabGroups();for(const g of m)g.id!==this._animState.sourceTabGroupId&&g.panelIds.length>0&&u.set(g.panelIds[0],g.id)}for(let m=0;m<this._tabs.length;m++){const g=this._tabs[m].value;if(g.panel.id===this._animState.sourceTabId||d?.has(g.panel.id))continue;const _=u.get(g.panel.id);if(_){const D=(t=this._animState.chipPositions.get(_))!==null&&t!==void 0?t:0;if(v+D>p){l??(l=m);break}v+=D}const w=this._animState.tabPositions.get(g.panel.id),b=w?w.width:g.element.getBoundingClientRect().width;if(v+b/2<=p)v+=b,l=m+1;else{l??(l=m);break}}if(l!==null&&this._tabGroupManager.chipRenderers.size>0){const m=!!this._animState.sourceTabGroupId,g=this.group.model.getTabGroups();let _=0;for(let w=0;w<this._tabs.length;w++){const b=this._tabs[w].value;if(b.panel.id===this._animState.sourceTabId||d?.has(b.panel.id))continue;if(w>=l)break;const D=u.get(b.panel.id);D&&(_+=(i=this._animState.chipPositions.get(D))!==null&&i!==void 0?i:0);const T=this._animState.tabPositions.get(b.panel.id);_+=T?T.width:b.element.getBoundingClientRect().width}for(const w of g){const b=w.panelIds.filter(y=>y!==this._animState.sourceTabId&&!d?.has(y));if(b.length===0)continue;const D=this._tabs.findIndex(y=>y.value.panel.id===b[0]),T=this._tabs.findIndex(y=>y.value.panel.id===b[b.length-1]);if(D===-1||T===-1)continue;const C=l>=D&&l<=T,S=!C&&l===D-1;if(!(!C&&!S)){if(m&&C){const y=(D+T+1)/2;l<y?l=D:l=T+1;break}if(m&&S)break;if(S){let y=!0;for(let R=l;R<D;R++){const V=this._tabs[R].value.panel.id;if(V!==this._animState.sourceTabId&&!d?.has(V)){y=!1;break}}if(!y)continue;const G=(n=this._animState.chipPositions.get(w.id))!==null&&n!==void 0?n:0,O=w.collapsed?this._animState.containerLeft+_+G/2:this._animState.containerLeft+_+G;a>=O&&(l=D,h=w.id);break}if(C){const y=(s=this._animState.chipPositions.get(w.id))!==null&&s!==void 0?s:0,G=this._animState.containerLeft+_+y;l===D?a>=G&&(h=w.id):h=w.id;break}}}}l===this._animState.currentInsertionIndex&&h===this._animState.targetTabGroupId||(this._animState.currentInsertionIndex=l,this._animState.targetTabGroupId=h,((r=this.accessor.options.theme)===null||r===void 0?void 0:r.tabAnimation)==="smooth"&&this.applyDragOverTransforms())}_removeClassInstantlyBatch(e,t){const i=[];for(const n of e)n.classList.contains(t)&&(n.style.transition="none",x(n,t,!1),i.push(n));if(i.length>0){i[0].offsetHeight;for(const n of i)n.style.removeProperty("transition")}}_uncollapsSourceTab(e){const t=this._tabMap.get(e);t&&this._removeClassInstantlyBatch([t.value.element],"dv-tab--dragging")}applyDragOverTransforms(e=!1){if(!this._animState||this._animState.currentInsertionIndex===null){this.resetTabTransforms();return}if(this._pendingCollapse)return;const t=this._animState.currentInsertionIndex;let i;const n=this._animState.sourceGroupPanelIds;if(this._animState.sourceTabGroupId&&n)i=this._animState.sourceGapWidth;else{const d=this._animState.tabPositions.get(this._animState.sourceTabId);i=d?d.width:this.getAverageTabWidth()}let s=null;if(this._tabGroupManager.chipRenderers.size>0){const d=this.group.model.getTabGroups();for(const c of d){if(c.id===this._animState.sourceTabGroupId||c.panelIds.includes(this._animState.sourceTabId))continue;const p=c.panelIds.filter(m=>m!==this._animState.sourceTabId&&!n?.has(m));if(p.length===0)continue;const v=this._tabs.findIndex(m=>m.value.panel.id===p[0]);if((!this._animState.targetTabGroupId||this._animState.targetTabGroupId===c.id&&c.collapsed)&&v>=t){let m=!1;for(let g=t;g<v;g++){const _=this._tabs[g].value.panel.id;if(_!==this._animState.sourceTabId&&!n?.has(_)){m=!0;break}}if(!m){const g=this._tabGroupManager.chipRenderers.get(c.id);g&&(s=g.chip.element)}break}}}const r=d=>d.classList.contains("dv-tab-group-chip")?"dv-tab-group-chip--shifting":"dv-tab--shifting",a=(d,c)=>{e?(d.style.transition="none",d.style.marginLeft=c,d.offsetHeight,d.style.removeProperty("transition")):d.style.marginLeft=c,x(d,r(d),!0)},l=d=>{const c=r(d),p=this._pendingMarginCleanups.get(d);if(p&&p(),e||!d.style.marginLeft)d.style.removeProperty("margin-left"),x(d,c,!1);else{d.style.marginLeft="0px",x(d,c,!0);const v=()=>{d.style.removeProperty("margin-left"),x(d,c,!1),d.removeEventListener("transitionend",v),clearTimeout(u),this._pendingMarginCleanups.delete(d)},u=setTimeout(v,300);this._pendingMarginCleanups.set(d,v),d.addEventListener("transitionend",v)}};let h=!1;for(const[d,c]of this._tabGroupManager.chipRenderers)d!==this._animState.sourceTabGroupId&&l(c.chip.element);s&&(a(s,`${i}px`),h=!0);for(let d=0;d<this._tabs.length;d++){const c=this._tabs[d].value;c.panel.id!==this._animState.sourceTabId&&(n?.has(c.panel.id)||(!h&&d>=t?(a(c.element,`${i}px`),h=!0):l(c.element)))}this._tabGroupManager.trackUnderlines()}resetTabTransforms(){for(const[,e]of this._pendingMarginCleanups)e();this._pendingMarginCleanups.clear();for(const e of this._tabs)e.value.element.style.removeProperty("margin-left"),e.value.element.style.removeProperty("margin-right"),e.value.element.style.removeProperty("margin-top"),e.value.element.style.removeProperty("margin-bottom"),e.value.element.style.removeProperty("transform"),x(e.value.element,"dv-tab--shifting",!1);for(const[,e]of this._tabGroupManager.chipRenderers)e.chip.element.style.removeProperty("margin-left"),x(e.chip.element,"dv-tab-group-chip--shifting",!1);this._tabGroupManager.positionUnderlines()}_commitGroupMove(e,t){var i,n;const s=$();if(this._tabGroupManager.disposeChipDrag(e),this.group.model.getTabGroups().some(a=>a.id===e))if(((i=this.accessor.options.theme)===null||i===void 0?void 0:i.tabAnimation)==="smooth"){this._clearGroupDragClasses(e);const a=this.snapshotTabPositions();this.resetTabTransforms(),this.group.model.moveTabGroup(e,t),this.runFlipAnimation(a,"",!1)}else this._tabGroupManager.skipNextCollapseAnimation=!0,this.group.model.moveTabGroup(e,t);else s&&(this.resetTabTransforms(),this.accessor.moveGroupOrPanel({from:{groupId:s.groupId,tabGroupId:(n=s.tabGroupId)!==null&&n!==void 0?n:e},to:{group:this.group,position:"center",index:t}}))}_clearGroupDragClasses(e){const t=this._tabGroupManager.chipRenderers.get(e);t&&this._removeClassInstantlyBatch([t.chip.element],"dv-tab-group-chip--dragging"),this._removeClassInstantlyBatch(this._tabs.map(n=>n.value.element),"dv-tab--dragging");const i=this._tabGroupManager.groupUnderlines.get(e);i&&i.style.removeProperty("display"),this._tabGroupManager.skipNextCollapseAnimation=!0}resetDragAnimation(){if(this._pendingCollapse=!1,this._animState){this.resetTabTransforms(),this._animState.sourceTabGroupId?this._clearGroupDragClasses(this._animState.sourceTabGroupId):this._removeClassInstantlyBatch(this._tabs.map(e=>e.value.element),"dv-tab--dragging"),this._animState=null;for(const[,e]of this._tabGroupManager.groupUnderlines)e.style.removeProperty("display")}}runFlipAnimation(e,t,i=!1,n){const s=this._direction==="vertical";let r=!1;for(let a=0;a<this._tabs.length;a++){const l=this._tabs[a],h=l.value.panel.id;if(h===t){if(i){const v=l.value.element.getBoundingClientRect();l.value.element.style.transform=s?`translateY(${v.height}px)`:`translateX(${v.width}px)`,x(l.value.element,"dv-tab--shifting",!0),r=!0}continue}if(n!==void 0&&(a<n.from||a>n.to))continue;const d=e.get(h);if(!d)continue;const c=l.value.element.getBoundingClientRect(),p=s?d.top-c.top:d.left-c.left;Math.abs(p)<1||(l.value.element.style.transform=s?`translateY(${p}px)`:`translateX(${p}px)`,x(l.value.element,"dv-tab--shifting",!0),r=!0)}r&&requestAnimationFrame(()=>{var a;for(const d of this._tabs)d.value.element.style.transform&&(d.value.element.style.transform="");this._tabGroupManager.trackUnderlines(),(a=this._flipTransitionCleanup)===null||a===void 0||a.call(this);const l=d=>{if(d.propertyName==="transform"){h();for(const c of this._tabs)x(c.value.element,"dv-tab--shifting",!1);this._tabGroupManager.positionUnderlines()}},h=()=>{this._tabsList.removeEventListener("transitionend",l),this._flipTransitionCleanup=null};this._flipTransitionCleanup=h,this._tabsList.addEventListener("transitionend",l)})}}const Ht=o=>{const e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttributeNS(null,"height",o.height),e.setAttributeNS(null,"width",o.width),e.setAttributeNS(null,"viewBox",o.viewbox),e.setAttributeNS(null,"aria-hidden","false"),e.setAttributeNS(null,"focusable","false"),e.classList.add("dv-svg");const t=document.createElementNS("http://www.w3.org/2000/svg","path");return t.setAttributeNS(null,"d",o.path),e.appendChild(t),e},jo=()=>Ht({width:"11",height:"11",viewbox:"0 0 28 28",path:"M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z"}),Yo=()=>Ht({width:"11",height:"11",viewbox:"0 0 24 15",path:"M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z"}),wn=()=>Ht({width:"11",height:"11",viewbox:"0 0 15 25",path:"M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z"});function Xo(){const o=document.createElement("div");o.className="dv-tabs-overflow-dropdown-default";const e=document.createElement("span");e.textContent="";const t=wn();return o.appendChild(t),o.appendChild(e),{element:o,update:i=>{e.textContent=`${i.tabs}`}}}class Jo extends E{get onTabDragStart(){return this.tabs.onTabDragStart}get panels(){return this.tabs.panels}get size(){return this.tabs.size}get hidden(){return this._hidden}set hidden(e){this._hidden=e,this.element.style.display=e?"none":""}get direction(){return this._direction}set direction(e){this._direction=e,e==="vertical"?(ae(this._element,"dv-groupview-header-vertical"),ae(this.rightActionsContainer,"dv-right-actions-container-vertical"),this.tabs.direction=e):(re(this._element,"dv-groupview-header-vertical"),re(this.rightActionsContainer,"dv-right-actions-container-vertical"),this.tabs.direction=e)}get element(){return this._element}constructor(e,t){super(),this.accessor=e,this.group=t,this._hidden=!1,this._direction="horizontal",this.dropdownPart=null,this._overflowTabs=[],this._overflowTabGroups=[],this._dropdownDisposable=new X,this._onDrop=new f,this.onDrop=this._onDrop.event,this._onGroupDragStart=new f,this.onGroupDragStart=this._onGroupDragStart.event,this._onWillShowOverlay=new f,this.onWillShowOverlay=this._onWillShowOverlay.event,this._element=document.createElement("div"),this._element.className="dv-tabs-and-actions-container",x(this._element,"dv-full-width-single-tab",this.accessor.options.singleTabMode==="fullwidth"),this.rightActionsContainer=document.createElement("div"),this.rightActionsContainer.className="dv-right-actions-container",this.leftActionsContainer=document.createElement("div"),this.leftActionsContainer.className="dv-left-actions-container",this.preActionsContainer=document.createElement("div"),this.preActionsContainer.className="dv-pre-actions-container",this.tabs=new Uo(t,e,{showTabsOverflowControl:!e.options.disableTabsOverflowList}),this.voidContainer=new Wo(this.accessor,this.group),this.tabs.voidContainer=this.voidContainer.element,this._element.appendChild(this.preActionsContainer),this._element.appendChild(this.tabs.element),this._element.appendChild(this.leftActionsContainer),this._element.appendChild(this.voidContainer.element),this._element.appendChild(this.rightActionsContainer),this.tabs.setExtendedDropZone(this._element),this.addDisposables(this.tabs.onDrop(i=>this._onDrop.fire(i)),this.tabs.onWillShowOverlay(i=>this._onWillShowOverlay.fire(i)),e.onDidOptionsChange(()=>{this.tabs.showTabsOverflowControl=!e.options.disableTabsOverflowList}),this.tabs.onOverflowTabsChange(i=>{this.toggleDropdown(i)}),this.tabs,this._onWillShowOverlay,this._onDrop,this._onGroupDragStart,this.voidContainer,this.voidContainer.onDragStart(i=>{this._onGroupDragStart.fire({nativeEvent:i,group:this.group})}),this.voidContainer.onDrop(i=>{this.tabs.handleVoidDrop()||this._onDrop.fire({event:i.nativeEvent,index:this.tabs.size})}),this.voidContainer.onWillShowOverlay(i=>{this._onWillShowOverlay.fire(new Fe(i,{kind:"header_space",panel:this.group.activePanel,api:this.accessor.api,group:this.group,getData:$}))}),P(this.leftActionsContainer,"dragleave",i=>{const n=i.relatedTarget;!this.leftActionsContainer.contains(n)&&!this._element.contains(n)&&this.tabs.clearExternalAnimState()}),P(this.voidContainer.element,"dragleave",i=>{const n=i.relatedTarget;this.voidContainer.element.contains(n)||(this._element.contains(n)?this.tabs.setExternalInsertionIndex(null):this.tabs.clearExternalAnimState())}),P(this.voidContainer.element,"pointerdown",i=>{if(i.defaultPrevented)return;if(!this.accessor.options.disableFloatingGroups&&i.shiftKey&&this.group.api.location.type!=="floating"&&this.group.api.location.type!=="edge"){i.preventDefault();const{top:s,left:r}=this.element.getBoundingClientRect(),{top:a,left:l}=this.accessor.element.getBoundingClientRect();this.accessor.addFloatingGroup(this.group,{x:r-l+20,y:s-a+20,inDragMode:!0})}}))}show(){this.hidden||(this.element.style.display="")}hide(){this._element.style.display="none"}setRightActionsElement(e){this.rightActions!==e&&(this.rightActions&&(this.rightActions.remove(),this.rightActions=void 0),e&&(this.rightActionsContainer.appendChild(e),this.rightActions=e))}setLeftActionsElement(e){this.leftActions!==e&&(this.leftActions&&(this.leftActions.remove(),this.leftActions=void 0),e&&(this.leftActionsContainer.appendChild(e),this.leftActions=e))}setPrefixActionsElement(e){this.preActions!==e&&(this.preActions&&(this.preActions.remove(),this.preActions=void 0),e&&(this.preActionsContainer.appendChild(e),this.preActions=e))}isActive(e){return this.tabs.isActive(e)}indexOf(e){return this.tabs.indexOf(e)}getTabId(e){return this.tabs.getTabId(e)}setActive(e){}delete(e){this.tabs.delete(e),this.updateClassnames()}setActivePanel(e){this.tabs.setActivePanel(e)}focusActiveTab(){this.tabs.focusActiveTab()}openPanel(e,t=this.tabs.size){this.tabs.openPanel(e,t),this.updateClassnames()}closePanel(e){this.delete(e.id)}updateClassnames(){x(this._element,"dv-single-tab",this.size===1)}toggleDropdown(e){const t=e.reset?[]:e.tabs,i=e.reset?[]:e.tabGroups;this._overflowTabs=t,this._overflowTabGroups=i;const n=this._overflowTabs.length;if(n>0&&this.dropdownPart){this.dropdownPart.update({tabs:n});return}if(n===0){this._dropdownDisposable.dispose();return}const s=document.createElement("div");s.className="dv-tabs-overflow-dropdown-root";const r=Xo();r.update({tabs:n}),this.dropdownPart=r,s.appendChild(r.element),this.rightActionsContainer.prepend(s),this._dropdownDisposable.value=new E(N.from(()=>{var a,l;s.remove(),(l=(a=this.dropdownPart)===null||a===void 0?void 0:a.dispose)===null||l===void 0||l.call(a),this.dropdownPart=null}),P(s,"pointerdown",a=>{a.preventDefault()},{capture:!0}),P(s,"click",a=>{const l=document.createElement("div");l.style.overflow="auto",l.className="dv-tabs-overflow-container";const h=new Set(this._overflowTabGroups),d=this.group.model.getTabGroups(),c=new Map;for(const u of d)if(h.has(u.id))for(const m of u.panelIds)c.set(m,u);const p=new Set;for(const u of this.tabs.tabs.filter(m=>this._overflowTabs.includes(m.panel.id))){const m=c.get(u.panel.id);if(m&&!p.has(m.id)){p.add(m.id);const D=document.createElement("div");D.className="dv-tabs-overflow-group-header";const T=document.createElement("span");T.className="dv-tabs-overflow-group-color",Wt(T,m.color,this.accessor.tabGroupColorPalette),D.appendChild(T);const C=document.createElement("span");if(C.className="dv-tabs-overflow-group-label",C.textContent=m.label||m.id,D.appendChild(C),m.collapsed){const S=document.createElement("span");S.className="dv-tabs-overflow-group-collapsed-badge",S.textContent=`${m.panelIds.length}`,D.appendChild(S)}D.addEventListener("click",()=>{this.accessor.getPopupServiceForGroup(this.group).close(),m.collapsed&&m.expand();const S=m.panelIds[0];if(S){const y=this.group.panels.find(G=>G.id===S);this.accessor.withOrigin("user",()=>y?.api.setActive())}}),l.appendChild(D)}const g=this.group.panels.find(D=>D===u.panel),w=g.view.createTabRenderer("headerOverflow").element,b=document.createElement("div");x(b,"dv-tab",!0),x(b,"dv-active-tab",g.api.isActive),x(b,"dv-inactive-tab",!g.api.isActive),m&&x(b,"dv-tab--grouped",!0),b.addEventListener("click",D=>{this.accessor.getPopupServiceForGroup(this.group).close(),!D.defaultPrevented&&(m?.collapsed&&m.expand(),u.element.scrollIntoView(),this.accessor.withOrigin("user",()=>u.panel.api.setActive()))}),b.appendChild(w),l.appendChild(b)}const v=Zi(s);this.accessor.getPopupServiceForGroup(this.group).openPopover(l,{x:a.clientX,y:a.clientY,zIndex:v?.style.zIndex?`calc(${v.style.zIndex} * 2)`:void 0})}))}updateDragAndDropState(){this.tabs.updateDragAndDropState(),this.voidContainer.updateDragAndDropState()}updateTabGroups(){this.tabs.updateTabGroups()}refreshTabGroupAccent(){this.tabs.refreshTabGroupAccent()}}class Dn extends Ui{constructor(e,t,i,n,s){super(),this.nativeEvent=e,this.target=t,this.position=i,this.getData=n,this.group=s}}const St=Object.keys({disableAutoResizing:void 0,hideBorders:void 0,singleTabMode:void 0,disableFloatingGroups:void 0,floatingGroupBounds:void 0,transformFloatingGroupDrag:void 0,floatingGroupDragHandle:void 0,popoutUrl:void 0,nonce:void 0,defaultRenderer:void 0,defaultHeaderPosition:void 0,debug:void 0,locked:void 0,disableDnd:void 0,dndStrategy:void 0,className:void 0,noPanelsOverlay:void 0,dndEdges:void 0,theme:void 0,disableTabsOverflowList:void 0,scrollbars:void 0,getTabContextMenuItems:void 0,getTabGroupChipContextMenuItems:void 0,createTabGroupChipComponent:void 0,createGroupDragGhostComponent:void 0,dropOverlayModel:void 0,announcements:void 0,getAnnouncement:void 0,announcer:void 0,messages:void 0,keyboardNavigation:void 0,tabGroupColors:void 0,tabGroupAccent:void 0});function Zo(o){return!!o.referencePanel}function Ko(o){return!!o.referenceGroup}function qo(o){return!!o.referencePanel}function Qo(o){return!!o.referenceGroup}class er extends E{get label(){return this._label}get color(){return this._color}get componentParams(){return this._componentParams}setLabel(e){this.isDisposed||this._label===e||(this._label=e,this._onDidChange.fire())}setColor(e){if(this.isDisposed)return;const t=e===""?void 0:e;this._color!==t&&(this._color=t,this._onDidChange.fire())}setComponentParams(e){this.isDisposed||(this._componentParams=e,this._onDidChange.fire())}get collapsed(){return this._collapsed}get panelIds(){return this._panelIds}get size(){return this._panelIds.length}get isEmpty(){return this._panelIds.length===0}constructor(e,t){var i,n;super(),this.id=e,this._collapsed=!1,this._panelIds=[],this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this._onDidPanelChange=new f,this.onDidPanelChange=this._onDidPanelChange.event,this._onDidCollapseChange=new f,this.onDidCollapseChange=this._onDidCollapseChange.event,this._onDidDestroy=new f,this.onDidDestroy=this._onDidDestroy.event,this._label=(i=t?.label)!==null&&i!==void 0?i:"",this._color=t?.color===""?void 0:t?.color,this._collapsed=(n=t?.collapsed)!==null&&n!==void 0?n:!1,this._componentParams=t?.componentParams,this.addDisposables(this._onDidChange,this._onDidPanelChange,this._onDidCollapseChange,this._onDidDestroy)}addPanel(e,t){if(this.isDisposed||this._panelIds.includes(e))return;const i=t!==void 0?Math.max(0,Math.min(t,this._panelIds.length)):this._panelIds.length;this._panelIds.splice(i,0,e),this._onDidPanelChange.fire({panelId:e,type:"add"})}removePanel(e){if(this.isDisposed)return!1;const t=this._panelIds.indexOf(e);return t===-1?!1:(this._panelIds.splice(t,1),this._onDidPanelChange.fire({panelId:e,type:"remove"}),!0)}indexOfPanel(e){return this._panelIds.indexOf(e)}containsPanel(e){return this._panelIds.includes(e)}collapse(){this.isDisposed||this._collapsed||(this._collapsed=!0,this._onDidCollapseChange.fire(!0))}expand(){this.isDisposed||!this._collapsed||(this._collapsed=!1,this._onDidCollapseChange.fire(!1))}toggle(){this._collapsed?this.expand():this.collapse()}toJSON(){const e={id:this.id,collapsed:this._collapsed,panelIds:[...this._panelIds]};return this._label&&(e.label=this._label),this._color!==void 0&&(e.color=this._color),this._componentParams!==void 0&&(e.componentParams=this._componentParams),e}dispose(){this._onDidDestroy.fire(),super.dispose()}}class Ft extends Ot{get nativeEvent(){return this.options.nativeEvent}get position(){return this.options.position}get panel(){return this.options.panel}get group(){return this.options.group}get api(){return this.options.api}constructor(e){super(),this.options=e}getData(){return this.options.getData()}}class Cn extends Ft{get kind(){return this._kind}constructor(e){super(e),this._kind=e.kind}}class tr extends E{get tabGroups(){return this._tabGroups}get element(){throw new Error("dockview: not supported")}get activePanel(){return this._activePanel}get contentContainerId(){return this.contentContainer.element.id}get contentDropTarget(){return this.contentContainer.dropTarget}get locked(){return this._locked}set locked(e){this._locked=e,x(this.container,"dv-locked-groupview",e==="no-drop-target"||e)}get isActive(){return this._isGroupActive}get panels(){return this._panels}get size(){return this._panels.length}get isEmpty(){return this._panels.length===0}get hasWatermark(){return!!(this.watermark&&this.container.contains(this.watermark.element))}get header(){return this.tabsContainer}get isContentFocused(){return document.activeElement?vt(document.activeElement,this.contentContainer.element):!1}get headerPosition(){var e;return(e=this._headerPosition)!==null&&e!==void 0?e:"top"}set headerPosition(e){var t;this._headerPosition=e,re(this.container,"dv-groupview-header-top","dv-groupview-header-bottom","dv-groupview-header-left","dv-groupview-header-right"),ae(this.container,`dv-groupview-header-${e}`);const i=e==="top"||e==="bottom"?"horizontal":"vertical";this.tabsContainer.direction=i,this.header.direction=i,!((t=this._activePanel)===null||t===void 0)&&t.layout&&this._activePanel.layout(this._width,this._height),this.updateHeaderActions()}get location(){return this._location}set location(e){this._location=e,x(this.container,"dv-groupview-floating",!1),x(this.container,"dv-groupview-popout",!1),x(this.container,"dv-groupview-edge",!1);const t=i=>{this.contentContainer.dropTarget.setTargetZones(i),this.contentContainer.pointerDropTarget.setTargetZones(i)};switch(e.type){case"grid":t(["top","bottom","left","right","center"]);break;case"floating":t(["top","bottom","left","right","center"]),x(this.container,"dv-groupview-floating",!0);break;case"popout":t(["top","bottom","left","right","center"]),x(this.container,"dv-groupview-popout",!0);break;case"edge":t(["center"]),x(this.container,"dv-groupview-edge",!0);break}this.groupPanel.api._onDidLocationChange.fire({location:this.location})}constructor(e,t,i,n,s){var r,a;super(),this.container=e,this.accessor=t,this.id=i,this.options=n,this.groupPanel=s,this._isGroupActive=!1,this._locked=!1,this._location={type:"grid"},this.mostRecentlyUsed=[],this._overwriteRenderContainer=null,this._overwriteDropTargetContainer=null,this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this._width=0,this._height=0,this._panels=[],this._panelDisposables=new Map,this._tabGroupDisposables=new Map,this._pendingMicrotaskDisposables=new Set,this._onMove=new f,this.onMove=this._onMove.event,this._onDidDrop=new f,this.onDidDrop=this._onDidDrop.event,this._onWillDrop=new f,this.onWillDrop=this._onWillDrop.event,this._onWillShowOverlay=new f,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onTabDragStart=new f,this.onTabDragStart=this._onTabDragStart.event,this._onGroupDragStart=new f,this.onGroupDragStart=this._onGroupDragStart.event,this._onDidAddPanel=new f,this.onDidAddPanel=this._onDidAddPanel.event,this._onDidPanelTitleChange=new f,this.onDidPanelTitleChange=this._onDidPanelTitleChange.event,this._onDidPanelParametersChange=new f,this.onDidPanelParametersChange=this._onDidPanelParametersChange.event,this._onDidRemovePanel=new f,this.onDidRemovePanel=this._onDidRemovePanel.event,this._onDidActivePanelChange=new f,this.onDidActivePanelChange=this._onDidActivePanelChange.event,this._onUnhandledDragOver=new f,this.onUnhandledDragOver=this._onUnhandledDragOver.event,this._tabGroups=[],this._tabGroupMap=new Map,this._panelToTabGroup=new Map,this._tabGroupIdCounter=0,this._pendingTabGroupUpdate=!1,this._onDidCreateTabGroup=new f,this.onDidCreateTabGroup=this._onDidCreateTabGroup.event,this._onDidDestroyTabGroup=new f,this.onDidDestroyTabGroup=this._onDidDestroyTabGroup.event,this._onDidAddPanelToTabGroup=new f,this.onDidAddPanelToTabGroup=this._onDidAddPanelToTabGroup.event,this._onDidRemovePanelFromTabGroup=new f,this.onDidRemovePanelFromTabGroup=this._onDidRemovePanelFromTabGroup.event,this._onDidTabGroupChange=new f,this.onDidTabGroupChange=this._onDidTabGroupChange.event,this._onDidTabGroupCollapsedChange=new f,this.onDidTabGroupCollapsedChange=this._onDidTabGroupCollapsedChange.event,x(this.container,"dv-groupview",!0),this.container.setAttribute("role","region"),this._api=new Lt(this.accessor),this.tabsContainer=new Jo(this.accessor,this.groupPanel),this.contentContainer=new zo(this.accessor,this),e.append(this.tabsContainer.element,this.contentContainer.element),this.header.hidden=!!n.hideHeader,this.locked=(r=n.locked)!==null&&r!==void 0?r:!1,this.headerPosition=(a=n.headerPosition)!==null&&a!==void 0?a:t.defaultHeaderPosition,this.addDisposables(this._onDidPanelTitleChange.event(()=>this.updateAccessibleLabel()),this._onTabDragStart,this._onGroupDragStart,this._onWillShowOverlay,this.tabsContainer.onTabDragStart(l=>{this._onTabDragStart.fire(l)}),this.tabsContainer.onGroupDragStart(l=>{this._onGroupDragStart.fire(l)}),this.tabsContainer.onDrop(l=>{var h;const d=$(),c=(h=d?.panelId)!==null&&h!==void 0?h:null;if(this.handleDropEvent("header",l.event,"center",l.index),c&&l.targetTabGroupId){const p=this._tabGroupMap.get(l.targetTabGroupId);let v;if(p){const u=this._panels.findIndex(m=>m.id===c);if(u!==-1){v=0;for(const m of p.panelIds)this._panels.findIndex(_=>_.id===m)<u&&v++}}this.addPanelToTabGroup(l.targetTabGroupId,c,v)}else c&&l.targetTabGroupId===null&&this.removePanelFromTabGroup(c)}),this.contentContainer.onDidFocus(()=>{this.accessor.doSetGroupActive(this.groupPanel)}),this.contentContainer.onDidBlur(()=>{}),this.contentContainer.dropTarget.onDrop(l=>{this.handleDropEvent("content",l.nativeEvent,l.position)}),this.contentContainer.pointerDropTarget.onDrop(l=>{this.handleDropEvent("content",l.nativeEvent,l.position)}),this.tabsContainer.onWillShowOverlay(l=>{this._onWillShowOverlay.fire(l)}),this.contentContainer.dropTarget.onWillShowOverlay(l=>{this._onWillShowOverlay.fire(new Fe(l,{kind:"content",panel:this.activePanel,api:this._api,group:this.groupPanel,getData:$}))}),this.contentContainer.pointerDropTarget.onWillShowOverlay(l=>{this._onWillShowOverlay.fire(new Fe(l,{kind:"content",panel:this.activePanel,api:this._api,group:this.groupPanel,getData:$}))}),this._onMove,this._onDidChange,this._onDidDrop,this._onWillDrop,this._onDidAddPanel,this._onDidRemovePanel,this._onDidActivePanelChange,this._onUnhandledDragOver,this._onDidPanelTitleChange,this._onDidPanelParametersChange,this._onDidCreateTabGroup,this._onDidDestroyTabGroup,this._onDidAddPanelToTabGroup,this._onDidRemovePanelFromTabGroup,this._onDidTabGroupChange,this._onDidTabGroupCollapsedChange,this._onDidCreateTabGroup.event(()=>{this._scheduleTabGroupUpdate()}),this._onDidDestroyTabGroup.event(()=>{this._scheduleTabGroupUpdate()}),this._onDidAddPanelToTabGroup.event(()=>{this._scheduleTabGroupUpdate()}),this._onDidRemovePanelFromTabGroup.event(()=>{this._scheduleTabGroupUpdate()}),this._onDidTabGroupChange.event(()=>{this._scheduleTabGroupUpdate()}),this._onDidTabGroupCollapsedChange.event(()=>{this._scheduleTabGroupUpdate()}))}_scheduleTabGroupUpdate(){this._pendingTabGroupUpdate||(this._pendingTabGroupUpdate=!0,queueMicrotask(()=>{this._pendingTabGroupUpdate=!1,this.isDisposed||this.tabsContainer.updateTabGroups()}))}_bracketTabGroupMutation(e){return this.accessor.mutation?this.accessor.mutation("tab-group",e):e()}createTabGroup(e){return this._bracketTabGroupMutation(()=>this._doCreateTabGroup(e))}_doCreateTabGroup(e){var t;const i=(t=e?.id)!==null&&t!==void 0?t:`tg-${this.id}-${this._tabGroupIdCounter++}`,n=new er(i,{label:e?.label,color:e?.color,collapsed:e?.collapsed,componentParams:e?.componentParams});return this._tabGroups.push(n),this._tabGroupMap.set(i,n),this._tabGroupDisposables.set(i,new E(n.onDidChange(()=>{this._onDidTabGroupChange.fire({tabGroup:n})}),n.onDidCollapseChange(s=>{s?this._handleGroupCollapse(n):this._handleGroupExpand(n),this._onDidTabGroupCollapsedChange.fire({tabGroup:n})}),n.onDidDestroy(()=>{this._removeTabGroupInternal(n)}))),this._onDidCreateTabGroup.fire({tabGroup:n}),n}dissolveTabGroup(e){const t=this._tabGroupMap.get(e);t&&this._bracketTabGroupMutation(()=>{const i=[...t.panelIds];for(const n of i)t.removePanel(n),this._panelToTabGroup.delete(n),this._onDidRemovePanelFromTabGroup.fire({tabGroup:t,panelId:n});t.dispose()})}addPanelToTabGroup(e,t,i){const n=this._tabGroupMap.get(e);if(!n||!this._panels.some(r=>r.id===t))return;const s=this.getTabGroupForPanel(t);s&&s.id===e||this._bracketTabGroupMutation(()=>{s&&this.removePanelFromTabGroup(t),n.addPanel(t,i),this._panelToTabGroup.set(t,n),this._enforceContiguity(n,t),this._onDidAddPanelToTabGroup.fire({tabGroup:n,panelId:t})})}movePanelWithinGroup(e,t,i){const n=this._tabGroupMap.get(e);!n||!n.containsPanel(t)||(n.removePanel(t),n.addPanel(t,i),this._enforceContiguity(n,t),this.tabsContainer.updateTabGroups())}movePanelBetweenGroups(e,t,i){const n=this._findTabGroupForPanel(e),s=this._tabGroupMap.get(t);s&&(n&&(n.removePanel(e),this._panelToTabGroup.delete(e),this._onDidRemovePanelFromTabGroup.fire({tabGroup:n,panelId:e}),n.isEmpty&&n.dispose()),s.addPanel(e,i),this._panelToTabGroup.set(e,s),this._enforceContiguity(s,e),this._onDidAddPanelToTabGroup.fire({tabGroup:s,panelId:e}))}moveTabGroup(e,t){const i=this._tabGroupMap.get(e);if(!i||i.panelIds.length===0)return;const n=new Set(i.panelIds),s=i.panelIds.map(h=>this._panels.find(d=>d.id===h)).filter(h=>h!==void 0);if(s.length===0)return;let r=0;for(let h=0;h<Math.min(t,this._panels.length);h++)n.has(this._panels[h].id)&&r++;for(const h of s){const d=this._panels.indexOf(h);d!==-1&&this._panels.splice(d,1)}const a=t-r,l=Math.max(0,Math.min(a,this._panels.length));this._panels.splice(l,0,...s);for(const h of this._panels)this.tabsContainer.delete(h.id);for(let h=0;h<this._panels.length;h++)this.tabsContainer.openPanel(this._panels[h],h);this.tabsContainer.updateTabGroups()}_enforceContiguity(e,t){const i=this._panels.find(l=>l.id===t);if(!i)return;const n=e.indexOfPanel(t),s=this._computeGlobalIndex(e,n),r=this._panels.indexOf(i);if(r===s)return;this._panels.splice(r,1);const a=s>r?s-1:s;this._panels.splice(a,0,i),this.tabsContainer.delete(t),this.tabsContainer.openPanel(i,a)}_computeGlobalIndex(e,t){const i=e.panelIds;if(i.length<=1){const n=this._panels.find(s=>s.id===i[0]);return n?this._panels.indexOf(n):this._panels.length}for(let n=0;n<i.length;n++){if(n===t)continue;const s=this._panels.find(r=>r.id===i[n]);if(s){const r=this._panels.indexOf(s);return Math.max(0,r+(t-n))}}return this._panels.length}removePanelFromTabGroup(e){const t=this._findTabGroupForPanel(e);t&&this._bracketTabGroupMutation(()=>{t.removePanel(e),this._panelToTabGroup.delete(e),this._onDidRemovePanelFromTabGroup.fire({tabGroup:t,panelId:e}),t.isEmpty&&t.dispose()})}getTabGroups(){return this._tabGroups}updateTabGroups(){this.tabsContainer.updateTabGroups()}refreshTabGroupAccent(){this.tabsContainer.refreshTabGroupAccent()}refreshWatermark(){var e,t;this.watermark&&(this.watermark.element.remove(),(t=(e=this.watermark).dispose)===null||t===void 0||t.call(e),this.watermark=void 0),this.updateContainer()}getTabGroupForPanel(e){return this._findTabGroupForPanel(e)}_findTabGroupForPanel(e){return this._panelToTabGroup.get(e)}_removeTabGroupInternal(e){const t=this._tabGroups.indexOf(e);if(t!==-1){this._tabGroups.splice(t,1),this._tabGroupMap.delete(e.id);for(const n of e.panelIds)this._panelToTabGroup.delete(n);this._onDidDestroyTabGroup.fire({tabGroup:e});const i=this._tabGroupDisposables.get(e.id);this._tabGroupDisposables.delete(e.id),i&&(this._pendingMicrotaskDisposables.add(i),queueMicrotask(()=>{this._pendingMicrotaskDisposables.delete(i),i.dispose()}))}}_handleGroupCollapse(e){if(!this._activePanel||!e.containsPanel(this._activePanel.id))return;const t=this._panels.indexOf(this._activePanel);for(let i=t+1;i<this._panels.length;i++){const n=this._panels[i],s=this._findTabGroupForPanel(n.id);if(!s||!s.collapsed){this.doSetActivePanel(n),this.updateContainer();return}}for(let i=t-1;i>=0;i--){const n=this._panels[i],s=this._findTabGroupForPanel(n.id);if(!s||!s.collapsed){this.doSetActivePanel(n),this.updateContainer();return}}this.contentContainer.closePanel(),this.doSetActivePanel(void 0),this.updateContainer()}_handleGroupExpand(e){if(this._activePanel)return;const t=e.panelIds[0];if(t){const i=this._panels.find(n=>n.id===t);i&&(this.doSetActivePanel(i),this.updateContainer())}}restoreTabGroups(e){for(const t of e){const i=t.id.match(/-(\d+)$/);if(i){const n=parseInt(i[1],10)+1;n>this._tabGroupIdCounter&&(this._tabGroupIdCounter=n)}}for(const t of e){const i=this.createTabGroup({id:t.id,label:t.label,color:t.color,componentParams:t.componentParams}),n=this._tabGroupMap.get(i.id);for(const s of t.panelIds)this._panels.some(r=>r.id===s)&&(i.addPanel(s),this._panelToTabGroup.set(s,n),this._enforceContiguity(n,s));t.collapsed&&i.collapse(),i.isEmpty&&i.dispose()}}focusContent(){this.contentContainer.element.focus()}focusActiveTab(){this.tabsContainer.focusActiveTab()}set renderContainer(e){this.panels.forEach(t=>{this.renderContainer.detatch(t)}),this._overwriteRenderContainer=e,this.panels.forEach(t=>{this.rerender(t)})}get renderContainer(){var e;return(e=this._overwriteRenderContainer)!==null&&e!==void 0?e:this.accessor.overlayRenderContainer}set dropTargetContainer(e){this._overwriteDropTargetContainer=e}get dropTargetContainer(){var e;return(e=this._overwriteDropTargetContainer)!==null&&e!==void 0?e:this.accessor.rootDropTargetContainer}initialize(){this.options.panels&&this.options.panels.forEach(e=>{this.doAddPanel(e)}),this.options.activePanel&&this.openPanel(this.options.activePanel),this.setActive(this.isActive,!0),this.updateContainer(),this.updateHeaderActions()}updateHeaderActions(){var e;(e=this.accessor.headerActionsService)===null||e===void 0||e.refresh(this.groupPanel)}attachHeaderAction(e,t){switch(e){case"left":this.tabsContainer.setLeftActionsElement(t);break;case"right":this.tabsContainer.setRightActionsElement(t);break;case"prefix":this.tabsContainer.setPrefixActionsElement(t);break}}rerender(e){this.contentContainer.renderPanel(e,{asActive:!1})}indexOf(e){return this.tabsContainer.indexOf(e.id)}toJSON(){var e;const t={views:this.tabsContainer.panels,activeView:(e=this._activePanel)===null||e===void 0?void 0:e.id,id:this.id};return this.locked!==!1&&(t.locked=this.locked),this.header.hidden&&(t.hideHeader=!0),this.headerPosition!=="top"&&(t.headerPosition=this.headerPosition),this._tabGroups.length>0&&(t.tabGroups=this._tabGroups.map(i=>i.toJSON())),t}moveToNext(e){e||(e={}),e.panel||(e.panel=this.activePanel);const t=e.panel?this.panels.indexOf(e.panel):-1;let i;if(t<this.panels.length-1)i=t+1;else if(!e.suppressRoll)i=0;else return;this.openPanel(this.panels[i])}moveToPrevious(e){if(e||(e={}),e.panel||(e.panel=this.activePanel),!e.panel)return;const t=this.panels.indexOf(e.panel);let i;if(t>0)i=t-1;else if(!e.suppressRoll)i=this.panels.length-1;else return;this.openPanel(this.panels[i])}containsPanel(e){return this.panels.includes(e)}init(e){}update(e){}focus(){var e;(e=this._activePanel)===null||e===void 0||e.focus()}openPanel(e,t={}){(typeof t.index!="number"||t.index>this.panels.length)&&(t.index=this.panels.length);const i=!!t.skipSetActive;if(e.updateParentGroup(this.groupPanel,{skipSetActive:t.skipSetActive}),this.doAddPanel(e,t.index,{skipSetActive:i}),this._activePanel===e){this.contentContainer.renderPanel(e,{asActive:!0});return}i||this.doSetActivePanel(e),t.skipSetGroupActive||this.accessor.doSetGroupActive(this.groupPanel),t.skipSetActive||this.updateContainer()}removePanel(e,t={skipSetActive:!1}){const i=typeof e=="string"?e:e.id,n=this._panels.find(s=>s.id===i);if(!n)throw new Error("invalid operation");return this._removePanel(n,t)}closeAllPanels(){if(this.panels.length>0){const e=[...this.panels];for(const t of e)this.doClose(t)}else this.accessor.removeGroup(this.groupPanel)}closePanel(e){this.doClose(e)}doClose(e){const t=this.panels.length===1&&this.accessor.groups.length===1;this.accessor.removePanel(e,t&&this.accessor.options.noPanelsOverlay==="emptyGroup"?{removeEmptyGroup:!1}:void 0)}isPanelActive(e){return this._activePanel===e}updateActions(e){this.tabsContainer.setRightActionsElement(e)}setActive(e,t=!1){if(!(!t&&this.isActive===e)){if(this._isGroupActive=e,x(this.container,"dv-active-group",e),x(this.container,"dv-inactive-group",!e),this.tabsContainer.setActive(this.isActive),!this._activePanel&&this.panels.length>0){const i=this._panels.find(n=>{const s=this._findTabGroupForPanel(n.id);return!s||!s.collapsed});i&&this.doSetActivePanel(i)}this.updateContainer()}}layout(e,t){var i;this._width=e,this._height=t,this.contentContainer.layout(this._width,this._height),!((i=this._activePanel)===null||i===void 0)&&i.layout&&this._activePanel.layout(this._width,this._height)}_removePanel(e,t){const i=this._activePanel===e;if(this.doRemovePanel(e),i&&this.panels.length>0){const n=this.mostRecentlyUsed[0];this.openPanel(n,{skipSetActive:t.skipSetActive,skipSetGroupActive:t.skipSetActiveGroup})}return this._activePanel&&this.panels.length===0&&this.doSetActivePanel(void 0),t.skipSetActive||this.updateContainer(),e}doRemovePanel(e){const t=this.panels.indexOf(e);if(this._activePanel===e&&this.contentContainer.closePanel(),this.tabsContainer.delete(e.id),this._panels.splice(t,1),this.mostRecentlyUsed.includes(e)){const n=this.mostRecentlyUsed.indexOf(e);this.mostRecentlyUsed.splice(n,1)}const i=this._panelDisposables.get(e.id);i&&(i.dispose(),this._panelDisposables.delete(e.id)),this.removePanelFromTabGroup(e.id),this._onDidRemovePanel.fire({panel:e})}doAddPanel(e,t=this.panels.length,i={skipSetActive:!1}){const s=this._panels.indexOf(e)>-1;this.tabsContainer.show(),this.contentContainer.show(),this.tabsContainer.openPanel(e,t),i.skipSetActive?e.api.renderer==="always"&&this.contentContainer.renderPanel(e,{asActive:!1}):this.contentContainer.openPanel(e),!s&&(this.updateMru(e),this.panels.splice(t,0,e),this._panelDisposables.set(e.id,new E(e.api.onDidTitleChange(r=>this._onDidPanelTitleChange.fire(r)),e.api.onDidParametersChange(r=>this._onDidPanelParametersChange.fire(r)))),this._onDidAddPanel.fire({panel:e}))}doSetActivePanel(e){var t,i,n;this._activePanel!==e&&(this._activePanel=e,e&&(this.tabsContainer.setActivePanel(e),this.contentContainer.setLabelledBy(this.tabsContainer.getTabId(e.id)),this.contentContainer.openPanel(e),e.layout(this._width,this._height),this.updateMru(e),this.contentContainer.refreshFocusState(),this._onDidActivePanelChange.fire({panel:e,origin:(n=(i=(t=this.accessor).currentOrigin)===null||i===void 0?void 0:i.call(t))!==null&&n!==void 0?n:"user"})),this.updateAccessibleLabel())}updateAccessibleLabel(){var e;const t=(e=this._activePanel)===null||e===void 0?void 0:e.title;t?this.container.setAttribute("aria-label",t):this.container.removeAttribute("aria-label")}updateMru(e){this.mostRecentlyUsed.includes(e)&&this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(e),1),this.mostRecentlyUsed=[e,...this.mostRecentlyUsed]}updateContainer(){var e,t;this.panels.forEach(n=>n.runEvents());const i=this.isEmpty||!this._activePanel;if(i&&!this.watermark){const n=this.accessor.createWatermarkComponent();n.init({containerApi:this._api,group:this.groupPanel}),this.watermark=n,P(this.watermark.element,"pointerdown",()=>{this.isActive||this.accessor.doSetGroupActive(this.groupPanel)}),this.contentContainer.element.appendChild(this.watermark.element)}!i&&this.watermark&&(this.watermark.element.remove(),(t=(e=this.watermark).dispose)===null||t===void 0||t.call(e),this.watermark=void 0)}canDisplayOverlay(e,t,i){const n=new Dn(e,i,t,$,this.accessor.getPanel(this.id));return this._onUnhandledDragOver.fire(n),n.isAccepted}handleDropEvent(e,t,i,n){if(this.locked==="no-drop-target")return;function s(){switch(e){case"header":return typeof n=="number"?"tab":"header_space";case"content":return"content"}}const r=typeof n=="number"?this.panels[n]:void 0,a=new Cn({nativeEvent:t,position:i,panel:r,getData:()=>$(),kind:s(),group:this.groupPanel,api:this._api});if(this._onWillDrop.fire(a),a.defaultPrevented)return;const l=$();if(l&&l.viewId===this.accessor.id){if(e==="content"&&l.groupId===this.id&&(i==="center"||l.panelId===null&&!l.tabGroupId)||e==="header"&&l.groupId===this.id&&l.panelId===null&&!l.tabGroupId)return;if(l.panelId===null){const{groupId:v}=l;this._onMove.fire({target:i,groupId:v,index:n,tabGroupId:l.tabGroupId});return}if(this.tabsContainer.indexOf(l.panelId)!==-1&&this.tabsContainer.size===1)return;const{groupId:d,panelId:c}=l;if(this.id===d&&!i&&this.tabsContainer.indexOf(c)===n)return;this._onMove.fire({target:i,groupId:l.groupId,itemId:l.panelId,index:n})}else this._onDidDrop.fire(new Ft({nativeEvent:t,position:i,panel:r,getData:()=>$(),group:this.groupPanel,api:this._api}))}updateDragAndDropState(){this.tabsContainer.updateDragAndDropState()}dispose(){var e,t,i;super.dispose(),(e=this.watermark)===null||e===void 0||e.element.remove(),(i=(t=this.watermark)===null||t===void 0?void 0:t.dispose)===null||i===void 0||i.call(t),this.watermark=void 0;for(const n of[...this._tabGroups])n.dispose();for(const n of this._tabGroupDisposables.values())n.dispose();this._tabGroupDisposables.clear();for(const n of this._pendingMicrotaskDisposables)n.dispose();this._pendingMicrotaskDisposables.clear();for(const n of this.panels)n.dispose();this.tabsContainer.dispose(),this.contentContainer.dispose()}}class Bt extends pn{constructor(e,t,i){super(e,t),this._onDidConstraintsChangeInternal=new f,this.onDidConstraintsChangeInternal=this._onDidConstraintsChangeInternal.event,this._onDidConstraintsChange=new f,this.onDidConstraintsChange=this._onDidConstraintsChange.event,this._onDidSizeChange=new f,this.onDidSizeChange=this._onDidSizeChange.event,this.addDisposables(this._onDidConstraintsChangeInternal,this._onDidConstraintsChange,this._onDidSizeChange),i&&this.initialize(i)}setConstraints(e){this._onDidConstraintsChangeInternal.fire(e)}setSize(e){this._onDidSizeChange.fire(e)}}class yn extends Rt{get priority(){return this._priority}get snap(){return this._snap}get minimumWidth(){return this.__minimumWidth()}get minimumHeight(){return this.__minimumHeight()}get maximumHeight(){return this.__maximumHeight()}get maximumWidth(){return this.__maximumWidth()}__minimumWidth(){const e=typeof this._minimumWidth=="function"?this._minimumWidth():this._minimumWidth;return e!==this._evaluatedMinimumWidth&&(this._evaluatedMinimumWidth=e,this.updateConstraints()),e}__maximumWidth(){const e=typeof this._maximumWidth=="function"?this._maximumWidth():this._maximumWidth;return e!==this._evaluatedMaximumWidth&&(this._evaluatedMaximumWidth=e,this.updateConstraints()),e}__minimumHeight(){const e=typeof this._minimumHeight=="function"?this._minimumHeight():this._minimumHeight;return e!==this._evaluatedMinimumHeight&&(this._evaluatedMinimumHeight=e,this.updateConstraints()),e}__maximumHeight(){const e=typeof this._maximumHeight=="function"?this._maximumHeight():this._maximumHeight;return e!==this._evaluatedMaximumHeight&&(this._evaluatedMaximumHeight=e,this.updateConstraints()),e}get isActive(){return this.api.isActive}get isVisible(){return this.api.isVisible}constructor(e,t,i,n){super(e,t,n??new Bt(e,t)),this._evaluatedMinimumWidth=0,this._evaluatedMaximumWidth=Number.MAX_SAFE_INTEGER,this._evaluatedMinimumHeight=0,this._evaluatedMaximumHeight=Number.MAX_SAFE_INTEGER,this._minimumWidth=0,this._minimumHeight=0,this._maximumWidth=Number.MAX_SAFE_INTEGER,this._maximumHeight=Number.MAX_SAFE_INTEGER,this._snap=!1,this._onDidChange=new f,this.onDidChange=this._onDidChange.event,typeof i?.minimumWidth=="number"&&(this._minimumWidth=i.minimumWidth),typeof i?.maximumWidth=="number"&&(this._maximumWidth=i.maximumWidth),typeof i?.minimumHeight=="number"&&(this._minimumHeight=i.minimumHeight),typeof i?.maximumHeight=="number"&&(this._maximumHeight=i.maximumHeight),this.api.initialize(this),this.addDisposables(this.api.onWillVisibilityChange(s=>{const{isVisible:r}=s,{accessor:a}=this._params;a.setVisible(this,r)}),this.api.onActiveChange(()=>{const{accessor:s}=this._params;s.doSetGroupActive(this)}),this.api.onDidConstraintsChangeInternal(s=>{(typeof s.minimumWidth=="number"||typeof s.minimumWidth=="function")&&(this._minimumWidth=s.minimumWidth),(typeof s.minimumHeight=="number"||typeof s.minimumHeight=="function")&&(this._minimumHeight=s.minimumHeight),(typeof s.maximumWidth=="number"||typeof s.maximumWidth=="function")&&(this._maximumWidth=s.maximumWidth),(typeof s.maximumHeight=="number"||typeof s.maximumHeight=="function")&&(this._maximumHeight=s.maximumHeight)}),this.api.onDidSizeChange(s=>{this._onDidChange.fire({height:s.height,width:s.width})}),this._onDidChange)}setVisible(e){this.api._onDidVisibilityChange.fire({isVisible:e})}setActive(e){this.api._onDidActiveChange.fire({isActive:e})}init(e){e.maximumHeight&&(this._maximumHeight=e.maximumHeight),e.minimumHeight&&(this._minimumHeight=e.minimumHeight),e.maximumWidth&&(this._maximumWidth=e.maximumWidth),e.minimumWidth&&(this._minimumWidth=e.minimumWidth),this._priority=e.priority,this._snap=!!e.snap,super.init(e),typeof e.isVisible=="boolean"&&this.setVisible(e.isVisible)}updateConstraints(){this.api._onDidConstraintsChange.fire({minimumWidth:this._evaluatedMinimumWidth,maximumWidth:this._evaluatedMaximumWidth,minimumHeight:this._evaluatedMinimumHeight,maximumHeight:this._evaluatedMaximumHeight})}toJSON(){const e=super.toJSON(),t=n=>n===Number.MAX_SAFE_INTEGER?void 0:n,i=n=>n<=0?void 0:n;return Object.assign(Object.assign({},e),{minimumHeight:i(this.minimumHeight),maximumHeight:t(this.maximumHeight),minimumWidth:i(this.minimumWidth),maximumWidth:t(this.maximumWidth),snap:this.snap,priority:this.priority})}}const ve="dockview: DockviewGroupPanelApiImpl not initialized";class ir extends Bt{get location(){if(!this._group)throw new Error(ve);return this._group.model.location}get boundingBox(){if(!this._group||this._group.model.location.type==="popout")return;const e=this.accessor.element.getBoundingClientRect(),t=this._group.element.getBoundingClientRect();return{left:t.left-e.left,top:t.top-e.top,width:t.width,height:t.height}}get locked(){if(!this._group)throw new Error(ve);return this._group.locked}set locked(e){if(!this._group)throw new Error(ve);this._group.locked=e}constructor(e,t){super(e,"__dockviewgroup__"),this.accessor=t,this._onDidLocationChange=new f,this.onDidLocationChange=this._onDidLocationChange.event,this._onDidActivePanelChange=new f,this.onDidActivePanelChange=this._onDidActivePanelChange.event,this._onDidCollapsedChange=new f,this.onDidCollapsedChange=this._onDidCollapsedChange.event,this.addDisposables(this._onDidLocationChange,this._onDidActivePanelChange,this._onDidCollapsedChange,this._onDidVisibilityChange.event(i=>{i.isVisible&&this._pendingSize&&(super.setSize(this._pendingSize),this._pendingSize=void 0)}))}setSize(e){this._pendingSize=Object.assign({},e),super.setSize(e)}close(){if(this._group)return this.accessor.removeGroup(this._group)}getWindow(){return this.location.type==="popout"?this.location.getWindow():window}setHeaderPosition(e){if(!this._group)throw new Error(ve);this._group.model.headerPosition=e}getHeaderPosition(){if(!this._group)throw new Error(ve);return this._group.model.headerPosition}moveTo(e){var t,i,n,s;if(!this._group)throw new Error(ve);const r=(t=e.group)!==null&&t!==void 0?t:this.accessor.addGroup({direction:po((i=e.position)!==null&&i!==void 0?i:"right"),skipSetActive:(n=e.skipSetActive)!==null&&n!==void 0?n:!1});this.accessor.moveGroupOrPanel({from:{groupId:this._group.id},to:{group:r,position:e.group&&(s=e.position)!==null&&s!==void 0?s:"center",index:e.index},skipSetActive:e.skipSetActive})}maximize(){if(!this._group)throw new Error(ve);this.location.type==="grid"&&this.accessor.maximizeGroup(this._group)}isMaximized(){if(!this._group)throw new Error(ve);return this.accessor.isMaximizedGroup(this._group)}exitMaximized(){if(!this._group)throw new Error(ve);this.isMaximized()&&this.accessor.exitMaximizedGroup()}collapse(){this._group&&this.accessor.setEdgeGroupCollapsed(this._group,!0)}expand(){this._group&&this.accessor.setEdgeGroupCollapsed(this._group,!1)}isCollapsed(){return this._group?this.accessor.isEdgeGroupCollapsed(this._group):!1}initialize(e){this._group=e}}const nr=100,sr=100;class Xe extends yn{get minimumWidth(){var e;if(typeof this._explicitConstraints.minimumWidth=="number")return this._explicitConstraints.minimumWidth;const t=(e=this.activePanel)===null||e===void 0?void 0:e.minimumWidth;return typeof t=="number"?t:super.__minimumWidth()}get minimumHeight(){var e;if(typeof this._explicitConstraints.minimumHeight=="number")return this._explicitConstraints.minimumHeight;const t=(e=this.activePanel)===null||e===void 0?void 0:e.minimumHeight;return typeof t=="number"?t:super.__minimumHeight()}get maximumWidth(){var e;if(typeof this._explicitConstraints.maximumWidth=="number")return this._explicitConstraints.maximumWidth;const t=(e=this.activePanel)===null||e===void 0?void 0:e.maximumWidth;return typeof t=="number"?t:super.__maximumWidth()}get maximumHeight(){var e;if(typeof this._explicitConstraints.maximumHeight=="number")return this._explicitConstraints.maximumHeight;const t=(e=this.activePanel)===null||e===void 0?void 0:e.maximumHeight;return typeof t=="number"?t:super.__maximumHeight()}get panels(){return this._model.panels}get activePanel(){return this._model.activePanel}get size(){return this._model.size}get model(){return this._model}get locked(){return this._model.locked}set locked(e){this._model.locked=e}get header(){return this._model.header}constructor(e,t,i){var n,s,r,a,l,h;super(t,"groupview_default",{minimumHeight:(s=(n=i.constraints)===null||n===void 0?void 0:n.minimumHeight)!==null&&s!==void 0?s:sr,minimumWidth:(a=(r=i.constraints)===null||r===void 0?void 0:r.minimumWidth)!==null&&a!==void 0?a:nr,maximumHeight:(l=i.constraints)===null||l===void 0?void 0:l.maximumHeight,maximumWidth:(h=i.constraints)===null||h===void 0?void 0:h.maximumWidth},new ir(t,e)),this._explicitConstraints={},this.api.initialize(this),this._model=new tr(this.element,e,t,i,this),this.addDisposables(this.model.onDidActivePanelChange(d=>{this.api._onDidActivePanelChange.fire(d)}),this.api.onDidConstraintsChangeInternal(d=>{d.minimumWidth!==void 0&&(this._explicitConstraints.minimumWidth=typeof d.minimumWidth=="function"?d.minimumWidth():d.minimumWidth),d.minimumHeight!==void 0&&(this._explicitConstraints.minimumHeight=typeof d.minimumHeight=="function"?d.minimumHeight():d.minimumHeight),d.maximumWidth!==void 0&&(this._explicitConstraints.maximumWidth=typeof d.maximumWidth=="function"?d.maximumWidth():d.maximumWidth),d.maximumHeight!==void 0&&(this._explicitConstraints.maximumHeight=typeof d.maximumHeight=="function"?d.maximumHeight():d.maximumHeight)}))}focus(){this.api.isActive||this.api.setActive(),super.focus()}initialize(){this._model.initialize()}setActive(e){super.setActive(e),this.model.setActive(e)}layout(e,t){super.layout(e,t),this.model.layout(e,t)}getComponent(){return this._model}toJSON(){return this.model.toJSON()}}const or={className:"dockview-theme-abyss",tabGroupIndicator:"none"};class rr extends Bt{get location(){return this.group.api.location}get title(){return this.panel.title}get isGroupActive(){return this.group.isActive}get renderer(){return this.panel.renderer}set group(e){const t=this._group;this._group!==e&&(this._group=e,this._onDidGroupChange.fire({}),this.setupGroupEventListeners(t),this._onDidLocationChange.fire({location:this.group.api.location}))}get group(){return this._group}get tabComponent(){return this._tabComponent}constructor(e,t,i,n,s){super(e.id,n),this.panel=e,this.accessor=i,this._onDidTitleChange=new f,this.onDidTitleChange=this._onDidTitleChange.event,this._onDidActiveGroupChange=new f,this.onDidActiveGroupChange=this._onDidActiveGroupChange.event,this._onDidGroupChange=new f,this.onDidGroupChange=this._onDidGroupChange.event,this._onDidRendererChange=new f,this.onDidRendererChange=this._onDidRendererChange.event,this._onDidLocationChange=new f,this.onDidLocationChange=this._onDidLocationChange.event,this.groupEventsDisposable=new X,this._tabComponent=s,this.initialize(e),this._group=t,this.setupGroupEventListeners(),this.addDisposables(this.groupEventsDisposable,this._onDidRendererChange,this._onDidTitleChange,this._onDidGroupChange,this._onDidActiveGroupChange,this._onDidLocationChange)}getWindow(){return this.group.api.getWindow()}setActive(){this.accessor.withOrigin("api",()=>super.setActive())}moveTo(e){var t,i;this.accessor.moveGroupOrPanel({from:{groupId:this._group.id,panelId:this.panel.id},to:{group:(t=e.group)!==null&&t!==void 0?t:this._group,position:e.group&&(i=e.position)!==null&&i!==void 0?i:"center",index:e.index},skipSetActive:e.skipSetActive})}setTitle(e){this.panel.setTitle(e)}setRenderer(e){this.panel.setRenderer(e)}close(){this.group.model.closePanel(this.panel)}maximize(){this.group.api.maximize()}isMaximized(){return this.group.api.isMaximized()}exitMaximized(){this.group.api.exitMaximized()}setupGroupEventListeners(e){var t;let i=(t=e?.isActive)!==null&&t!==void 0?t:!1;this.groupEventsDisposable.value=new E(this.group.api.onDidVisibilityChange(n=>{const s=!n.isVisible&&this.isVisible,r=n.isVisible&&!this.isVisible,a=this.group.model.isPanelActive(this.panel);(s||r&&a)&&this._onDidVisibilityChange.fire(n)}),this.group.api.onDidLocationChange(n=>{this.group===this.panel.group&&this._onDidLocationChange.fire(n)}),this.group.api.onDidActiveChange(()=>{this.group===this.panel.group&&i!==this.isGroupActive&&(i=this.isGroupActive,this._onDidActiveGroupChange.fire({isActive:this.isGroupActive}))}))}}class Pe extends E{get params(){return this._params}get title(){return this._title}get group(){return this._group}get renderer(){var e;return(e=this._renderer)!==null&&e!==void 0?e:this.accessor.renderer}get minimumWidth(){return this._minimumWidth}get minimumHeight(){return this._minimumHeight}get maximumWidth(){return this._maximumWidth}get maximumHeight(){return this._maximumHeight}constructor(e,t,i,n,s,r,a,l){super(),this.id=e,this.accessor=n,this.containerApi=s,this.view=a,this._renderer=l.renderer,this._group=r,this._minimumWidth=l.minimumWidth,this._minimumHeight=l.minimumHeight,this._maximumWidth=l.maximumWidth,this._maximumHeight=l.maximumHeight,this.api=new rr(this,this._group,n,t,i),this.addDisposables(this.api.onActiveChange(()=>{n.setActivePanel(this)}),this.api.onDidSizeChange(h=>{this.group.api.setSize(h)}),this.api.onDidRendererChange(()=>{this.group.model.rerender(this)}))}init(e){this._params=e.params,this.view.init(Object.assign(Object.assign({},e),{api:this.api,containerApi:this.containerApi})),this.setTitle(e.title)}focus(){const e=new un;this.api._onWillFocus.fire(e),!e.defaultPrevented&&(this.api.isActive||this.api.setActive())}toJSON(){return{id:this.id,contentComponent:this.view.contentComponent,tabComponent:this.view.tabComponent,params:Object.keys(this._params||{}).length>0?this._params:void 0,title:this.title,renderer:this._renderer,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,minimumWidth:this._minimumWidth,maximumWidth:this._maximumWidth}}setTitle(e){e!==this.title&&(this._title=e,this.view.setTitle(e),this.api._onDidTitleChange.fire({title:e}))}setRenderer(e){e!==this.renderer&&(this._renderer=e,this.api._onDidRendererChange.fire({renderer:e}))}update(e){var t;this._params=Object.assign(Object.assign({},(t=this._params)!==null&&t!==void 0?t:{}),e.params);for(const i of Object.keys(e.params))e.params[i]===void 0&&delete this._params[i];this.view.update({params:this._params})}updateFromStateModel(e){var t,i,n;this._maximumHeight=e.maximumHeight,this._minimumHeight=e.minimumHeight,this._maximumWidth=e.maximumWidth,this._minimumWidth=e.minimumWidth,this.update({params:(t=e.params)!==null&&t!==void 0?t:{}}),this.setTitle((i=e.title)!==null&&i!==void 0?i:this.id),this.setRenderer((n=e.renderer)!==null&&n!==void 0?n:this.accessor.renderer)}updateParentGroup(e,t){this._group=e,this.api.group=this._group;const i=this._group.model.isPanelActive(this),n=this.group.api.isActive&&i;t?.skipSetActive||this.api.isActive!==n&&this.api._onDidActiveChange.fire({isActive:this.group.api.isActive&&i}),this.api.isVisible!==i&&this.api._onDidVisibilityChange.fire({isVisible:i})}runEvents(){const e=this._group.model.isPanelActive(this),t=this.group.api.isActive&&e;this.api.isActive!==t&&this.api._onDidActiveChange.fire({isActive:this.group.api.isActive&&e}),this.api.isVisible!==e&&this.api._onDidVisibilityChange.fire({isVisible:e})}layout(e,t){this.api._onDidDimensionChange.fire({width:e,height:t}),this.view.layout(e,t)}dispose(){this.api.dispose(),this.view.dispose()}}class si extends E{get element(){return this._element}constructor(){super(),this._element=document.createElement("div"),this._element.className="dv-default-tab",this._content=document.createElement("div"),this._content.className="dv-default-tab-content",this.action=document.createElement("div"),this.action.className="dv-default-tab-action",this.action.appendChild(jo()),this._element.appendChild(this._content),this._element.appendChild(this.action),this.render()}init(e){this._title=e.title,this.addDisposables(e.api.onDidTitleChange(t=>{this._title=t.title,this.render()}),P(this.action,"pointerdown",t=>{t.preventDefault()}),P(this.action,"click",t=>{t.defaultPrevented||(t.preventDefault(),e.api.close())})),this.render()}render(){var e;this._content.textContent!==this._title&&(this._content.textContent=(e=this._title)!==null&&e!==void 0?e:"")}}class Sn{get content(){return this._content}get tab(){return this._tab}constructor(e,t,i,n){this.accessor=e,this.id=t,this.contentComponent=i,this.tabComponent=n,this._content=this.createContentComponent(this.id,i),this._tab=this.createTabComponent(this.id,n)}createTabRenderer(e){var t;const i=this.createTabComponent(this.id,this.tabComponent);return this._params&&i.init(Object.assign(Object.assign({},this._params),{tabLocation:e})),this._updateEvent&&((t=i.update)===null||t===void 0||t.call(i,this._updateEvent)),i}init(e){this._params=e,this.content.init(e),this.tab.init(Object.assign(Object.assign({},e),{tabLocation:"header"}))}setTitle(e){this._params&&(this._params.title=e)}layout(e,t){var i,n;(n=(i=this.content).layout)===null||n===void 0||n.call(i,e,t)}update(e){var t,i,n,s;this._updateEvent=e,(i=(t=this.content).update)===null||i===void 0||i.call(t,e),(s=(n=this.tab).update)===null||s===void 0||s.call(n,e)}dispose(){var e,t,i,n;(t=(e=this.content).dispose)===null||t===void 0||t.call(e),(n=(i=this.tab).dispose)===null||n===void 0||n.call(i)}createContentComponent(e,t){return this.accessor.options.createComponent({id:e,name:t})}createTabComponent(e,t){const i=t??this.accessor.options.defaultTabComponent;if(i){if(this.accessor.options.createTabComponent){const n=this.accessor.options.createTabComponent({id:e,name:i});return n||new si}console.warn(`dockview: tabComponent '${t}' was not found. falling back to the default tab.`)}return new si}}class ar{constructor(e){this.accessor=e}fromJSON(e,t){var i,n;const s=e.id,r=e.params,a=e.title,l=e.view,h=l?l.content.id:(i=e.contentComponent)!==null&&i!==void 0?i:"unknown",d=l?(n=l.tab)===null||n===void 0?void 0:n.id:e.tabComponent,c=new Sn(this.accessor,s,h,d),p=new Pe(s,h,d,this.accessor,new Lt(this.accessor),t,c,{renderer:e.renderer,minimumWidth:e.minimumWidth,minimumHeight:e.minimumHeight,maximumWidth:e.maximumWidth,maximumHeight:e.maximumHeight});return p.init({title:a??s,params:r??{}}),p}}class lr extends E{get element(){return this._element}constructor(){super(),this._element=document.createElement("div"),this._element.className="dv-watermark"}init(e){}}class dr{constructor(){this._orderedList=[]}push(e){this._orderedList=[...this._orderedList.filter(t=>t!==e),e],this.update()}destroy(e){this._orderedList=this._orderedList.filter(t=>t!==e),this.update()}update(){for(let e=0;e<this._orderedList.length;e++)this._orderedList[e].setAttribute("aria-level",`${e}`),this._orderedList[e].style.zIndex=`calc(var(--dv-overlay-z-index, 999) + ${e*2})`}}const Je=new dr;class de extends E{set minimumInViewportWidth(e){this.options.minimumInViewportWidth=e}set minimumInViewportHeight(e){this.options.minimumInViewportHeight=e}get element(){return this._element}get isVisible(){return this._isVisible}get headerHeight(){var e,t;return(t=(e=this.options.header)===null||e===void 0?void 0:e.offsetHeight)!==null&&t!==void 0?t:0}constructor(e){super(),this.options=e,this._element=document.createElement("div"),this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this._onDidChangeEnd=new f,this.onDidChangeEnd=this._onDidChangeEnd.event,this._onDidStartMoving=new f,this.onDidStartMoving=this._onDidStartMoving.event,this._dragMove=new X,this._dragCancelled=!1,this.addDisposables(this._onDidChange,this._onDidChangeEnd,this._onDidStartMoving,this._dragMove),this._element.className="dv-resize-container",this._element.setAttribute("role","dialog"),this._element.setAttribute("aria-modal","false"),this._isVisible=!0,this.setupResize("top"),this.setupResize("bottom"),this.setupResize("left"),this.setupResize("right"),this.setupResize("topleft"),this.setupResize("topright"),this.setupResize("bottomleft"),this.setupResize("bottomright"),this.options.header&&(x(this._element,"dv-resize-container-with-titlebar",!0),this._element.appendChild(this.options.header)),this._element.appendChild(this.options.content),this.options.container.appendChild(this._element),this.setBounds(Object.assign(Object.assign(Object.assign(Object.assign({height:this.options.height,width:this.options.width},"top"in this.options&&{top:this.options.top}),"bottom"in this.options&&{bottom:this.options.bottom}),"left"in this.options&&{left:this.options.left}),"right"in this.options&&{right:this.options.right})),Je.push(this._element)}setVisible(e){e!==this.isVisible&&(this._isVisible=e,x(this.element,"dv-hidden",!this.isVisible))}bringToFront(){Je.push(this._element)}setBounds(e={}){typeof e.height=="number"&&(this._element.style.height=`${e.height}px`),typeof e.width=="number"&&(this._element.style.width=`${e.width}px`),"top"in e&&typeof e.top=="number"&&(this._element.style.top=`${e.top}px`,this._element.style.bottom="auto",this.verticalAlignment="top"),"bottom"in e&&typeof e.bottom=="number"&&(this._element.style.bottom=`${e.bottom}px`,this._element.style.top="auto",this.verticalAlignment="bottom"),"left"in e&&typeof e.left=="number"&&(this._element.style.left=`${e.left}px`,this._element.style.right="auto",this.horiziontalAlignment="left"),"right"in e&&typeof e.right=="number"&&(this._element.style.right=`${e.right}px`,this._element.style.left="auto",this.horiziontalAlignment="right");const t=this.options.container.getBoundingClientRect(),i=this._element.getBoundingClientRect(),n=Math.max(0,this.getMinimumWidth(i.width)),s=Math.max(0,this.getMinimumHeight(i.height));if(this.verticalAlignment==="top"){const r=B(i.top-t.top,-s,Math.max(0,t.height-i.height+s));this._element.style.top=`${r}px`,this._element.style.bottom="auto"}if(this.verticalAlignment==="bottom"){const r=B(t.bottom-i.bottom,-s,Math.max(0,t.height-i.height+s));this._element.style.bottom=`${r}px`,this._element.style.top="auto"}if(this.horiziontalAlignment==="left"){const r=B(i.left-t.left,-n,Math.max(0,t.width-i.width+n));this._element.style.left=`${r}px`,this._element.style.right="auto"}if(this.horiziontalAlignment==="right"){const r=B(t.right-i.right,-n,Math.max(0,t.width-i.width+n));this._element.style.right=`${r}px`,this._element.style.left="auto"}this._onDidChange.fire()}toJSON(){const e=this.options.container.getBoundingClientRect(),t=this._element.getBoundingClientRect(),i={};return this.verticalAlignment==="top"?i.top=parseFloat(this._element.style.top):this.verticalAlignment==="bottom"?i.bottom=parseFloat(this._element.style.bottom):i.top=t.top-e.top,this.horiziontalAlignment==="left"?i.left=parseFloat(this._element.style.left):this.horiziontalAlignment==="right"?i.right=parseFloat(this._element.style.right):i.left=t.left-e.left,i.width=t.width,i.height=t.height,i}cancelPendingDrag(){this._dragMove.value&&(this._dragCancelled=!0,x(this._element,"dv-resize-container-dragging",!1),this._dragMove.value=N.NONE)}setupDrag(e,t={inDragMode:!1}){const i=(n,s)=>{var r,a,l;let h=null,d=!1;this._dragCancelled=!1;const c=this.options.transformDragPosition?(l=(a=(r=this.options).getSiblingBoxes)===null||a===void 0?void 0:a.call(r))!==null&&l!==void 0?l:[]:[],p=We();if(n&&typeof s=="number"&&typeof n.setPointerCapture=="function")try{n.setPointerCapture(s)}catch{}const v=()=>{x(this._element,"dv-resize-container-dragging",!1),this._dragMove.value=N.NONE,this._onDidChangeEnd.fire()};this._dragMove.value=new E({dispose:()=>{if(p.release(),n&&typeof s=="number"&&typeof n.releasePointerCapture=="function")try{n.releasePointerCapture(s)}catch{}}},P(window,"pointermove",u=>{if(this._dragCancelled)return;const m=this.options.container.getBoundingClientRect(),g=u.clientX-m.left,_=u.clientY-m.top;x(this._element,"dv-resize-container-dragging",!0);const w=this._element.getBoundingClientRect();h===null&&(h={x:u.clientX-w.left,y:u.clientY-w.top});const b=Math.max(0,this.getMinimumWidth(w.width)),D=Math.max(0,this.getMinimumHeight(w.height));let T=_-h.y,C=g-h.x;if(this.options.transformDragPosition){const Y=this.options.transformDragPosition({proposed:{top:T,left:C,width:w.width,height:w.height},container:{width:m.width,height:m.height},others:c});Y&&(T=Y.top,C=Y.left)}const S=Math.max(0,m.height-w.height+D),y=Math.max(0,m.width-w.width+b),G=B(T,-D,S),O=B(m.height-w.height-T,-D,S),R=B(C,-b,y),V=B(m.width-w.width-C,-b,y),F={};G<=O?F.top=G:F.bottom=O,R<=V?F.left=R:F.right=V,this.setBounds(F),d||(d=!0,this._onDidStartMoving.fire())}),P(window,"pointerup",v),P(window,"pointercancel",v))};this.addDisposables(P(e,"pointerdown",n=>{if(n.defaultPrevented){n.preventDefault();return}Qt(n)||i(e,n.pointerId)}),P(this.options.content,"pointerdown",n=>{n.defaultPrevented||Qt(n)||n.shiftKey&&i(this.options.content,n.pointerId)}),P(this.options.content,"pointerdown",()=>{Je.push(this._element)},!0)),t.inDragMode&&i()}setupResize(e){const t=document.createElement("div");t.className=`dv-resize-handle-${e}`,this._element.appendChild(t);const i=new X;this.addDisposables(i,P(t,"pointerdown",n=>{n.preventDefault();let s=null;const r=We(),a=n.pointerId;if(typeof t.setPointerCapture=="function")try{t.setPointerCapture(a)}catch{}const l=()=>{i.dispose(),this._onDidChangeEnd.fire()};i.value=new E(P(window,"pointermove",h=>{const d=this.options.container.getBoundingClientRect(),c=this._element.getBoundingClientRect(),p=h.clientY-d.top,v=h.clientX-d.left;s===null&&(s={originalY:p,originalHeight:c.height,originalX:v,originalWidth:c.width});let u,m,g,_,w,b;const D=()=>{const G=s.originalY+s.originalHeight>d.height?Math.max(0,d.height-de.MINIMUM_HEIGHT):Math.max(0,s.originalY+s.originalHeight-de.MINIMUM_HEIGHT);u=B(p,0,G),g=s.originalY+s.originalHeight-u,m=d.height-u-g},T=()=>{u=s.originalY-s.originalHeight;const G=u<0&&typeof this.options.minimumInViewportHeight=="number"?-u+this.options.minimumInViewportHeight:de.MINIMUM_HEIGHT,O=d.height-Math.max(0,u);g=B(p-u,G,O),m=d.height-u-g},C=()=>{const G=s.originalX+s.originalWidth>d.width?Math.max(0,d.width-de.MINIMUM_WIDTH):Math.max(0,s.originalX+s.originalWidth-de.MINIMUM_WIDTH);_=B(v,0,G),b=s.originalX+s.originalWidth-_,w=d.width-_-b},S=()=>{_=s.originalX-s.originalWidth;const G=_<0&&typeof this.options.minimumInViewportWidth=="number"?-_+this.options.minimumInViewportWidth:de.MINIMUM_WIDTH,O=d.width-Math.max(0,_);b=B(v-_,G,O),w=d.width-_-b};switch(e){case"top":D();break;case"bottom":T();break;case"left":C();break;case"right":S();break;case"topleft":D(),C();break;case"topright":D(),S();break;case"bottomleft":T(),C();break;case"bottomright":T(),S();break}const y={};u<=m?y.top=u:y.bottom=m,_<=w?y.left=_:y.right=w,y.height=g,y.width=b,this.setBounds(y)}),{dispose:()=>{if(r.release(),typeof t.releasePointerCapture=="function")try{t.releasePointerCapture(a)}catch{}}},P(window,"pointerup",l),P(window,"pointercancel",l))}))}getMinimumWidth(e){return typeof this.options.minimumInViewportWidth=="number"?e-this.options.minimumInViewportWidth:0}getMinimumHeight(e){return typeof this.options.minimumInViewportHeight=="number"?e-this.options.minimumInViewportHeight:0}dispose(){Je.destroy(this._element),this._element.remove(),super.dispose()}}de.MINIMUM_HEIGHT=20;de.MINIMUM_WIDTH=20;class hr extends E{get element(){return this._element}get group(){return this._group}setGroup(e){this._group=e}constructor(e,t){super(),this.accessor=e,this._onDragStart=new f,this.onDragStart=this._onDragStart.event,this._group=t,this._element=document.createElement("div"),this._element.className="dv-floating-titlebar",this.addDisposables(this._onDragStart,P(this._element,"pointerdown",()=>{this.accessor.doSetGroupActive(this._group)}),P(this._element,"pointerdown",i=>{i.shiftKey&&Xi(i)},!0)),this.dragSource=new vn({element:this._element,accessor:this.accessor,group:()=>this._group}),this.addDisposables(this.dragSource,this.dragSource.onDragStart(i=>{this._onDragStart.fire(i)}))}updateDragAndDropState(){this.dragSource.updateDragAndDropState()}}function te(o){return{moduleName:o.name,services:{[o.serviceKey]:o.create},init:o.init?(e,t)=>o.init(e,t[o.serviceKey]):void 0,dependsOn:o.dependsOn}}const oi=new Set;function Se(o,e,t){if(o!==void 0)return o;const i=`${e}|${t??""}`;if(oi.has(i))return;oi.add(i);const n=t?` for ${t}`:"";console.error(`dockview: module "${e}" is not registered${n}.`)}class cr{constructor(){this._modules=new Map,this._services={},this._initDisposables=[]}get services(){return this._services}register(e){if(!this._modules.has(e.moduleName)){if(e.dependsOn)for(const t of e.dependsOn)this.register(t);this._modules.set(e.moduleName,e)}}initialize(e){for(const t of this._modules.values())if(t.services)for(const[i,n]of Object.entries(t.services))this._services[i]=n(e)}postConstruct(e){for(const t of this._modules.values())t.init&&this._initDisposables.push(t.init(e,this._services))}has(e){return this._modules.has(e)}dispose(){for(const e of this._initDisposables)e.dispose();this._initDisposables.length=0;for(const e of Object.values(this._services))e!==void 0&&typeof e.dispose=="function"&&e.dispose()}}const xt=[];function ur(o){for(const e of o)xt.some(t=>t.moduleName===e.moduleName)||xt.push(e)}function pr(){return[...xt]}let xn=!1;function mr(){xn=!0}function vr(){return xn}const ot=100,we={left:100,top:100,width:300,height:300},gr=100;class fr extends E{get group(){return this._group}setTitleBar(e){this._titleBar=e}setAnchorGroup(e){var t;this._group=e,(t=this._titleBar)===null||t===void 0||t.setGroup(e)}constructor(e,t,i){super(),this.overlay=t,this.gridview=i,this._group=e,this.addDisposables(t,{dispose:()=>this.gridview.dispose()})}position(e){this.overlay.setBounds(e)}}class _r{get floatingGroups(){return this._floatingGroups}constructor(e){this._floatingGroups=[],this._host=e}add(e,t,i){const n=new fr(e,t,i),s=new E(e.api.onDidActiveChange(a=>{a.isActive&&t.bringToFront()}),(()=>{let a=-1,l=-1;return Ue(i.element,h=>{const d=Math.round(h.contentRect.width),c=Math.round(h.contentRect.height);d===a&&c===l||(a=d,l=c,i.layout(d,c))})})()),r=()=>{var a;const l=(a=e.activePanel)===null||a===void 0?void 0:a.title;l?t.element.setAttribute("aria-label",l):t.element.removeAttribute("aria-label")};return r(),n.addDisposables(e.api.onDidActivePanelChange(()=>r()),t.onDidChange(()=>{i.layout(i.width,i.height)}),t.onDidChangeEnd(()=>{this._host.fireLayoutChange()}),e.onDidChange(a=>{t.setBounds({height:typeof a?.height=="number"?a.height+t.headerHeight:a?.height,width:a?.width})}),{dispose:()=>{s.dispose(),qi(this._floatingGroups,n),e.model.location={type:"grid"}}}),this._floatingGroups.push(n),n}findByGroup(e){return this._floatingGroups.find(t=>t.group===e||t.gridview.element.contains(e.element))}serialize(){return this._floatingGroups.map(e=>{const t=e.gridview.serialize(),i=e.overlay.toJSON(),n=t.root;return n.type==="branch"&&n.data.length===1&&n.data[0].type==="leaf"?{data:n.data[0].data,position:i}:{grid:t,position:i}})}constrainBounds(){for(const e of this._floatingGroups)e.overlay.setBounds()}updateBounds(e){var t,i;if("floatingGroupBounds"in e)for(const n of this._floatingGroups){switch(e.floatingGroupBounds){case"boundedWithinViewport":n.overlay.minimumInViewportHeight=void 0,n.overlay.minimumInViewportWidth=void 0;break;case void 0:n.overlay.minimumInViewportHeight=ot,n.overlay.minimumInViewportWidth=ot;break;default:n.overlay.minimumInViewportHeight=(t=e.floatingGroupBounds)===null||t===void 0?void 0:t.minimumHeightWithinViewport,n.overlay.minimumInViewportWidth=(i=e.floatingGroupBounds)===null||i===void 0?void 0:i.minimumWidthWithinViewport}n.overlay.setBounds()}}disposeAll(){for(const e of[...this._floatingGroups])e.dispose()}dispose(){this.disposeAll()}}const br=te({name:"FloatingGroup",serviceKey:"floatingGroupService",create:o=>new _r(o)});class wr{constructor(e){this._entries=[],this._popupServices=new Map,this._restorationCleanups=new Set,this._restorationPromise=Promise.resolve(),this._onDidRemove=new f,this.onDidRemove=this._onDidRemove.event,this._host=e}get entries(){return this._entries}get restorationPromise(){return this._restorationPromise}add(e){this._entries.push(e)}remove(e){qi(this._entries,e)&&!this._host.isDisposed&&this._onDidRemove.fire(e)}findByGroup(e){return this._entries.find(t=>t.popoutGroup===e||t.gridview.element.contains(e.element))}findReferenceGroupId(e){var t;return(t=this._entries.find(i=>i.popoutGroup===e))===null||t===void 0?void 0:t.referenceGroup}observeGridviewSize(e,t,i){var n;const s=(n=e.window)===null||n===void 0?void 0:n.ResizeObserver;if(!s)return;let r=-1,a=-1;const l=()=>{const d=e.window;if(this._host.isDisposed||!d||d.closed)return;const c=Math.round(t.element.clientWidth),p=Math.round(t.element.clientHeight);c===r&&p===a||(r=c,a=p,c>0&&p>0&&t.layout(c,p),i.updateAllPositions())},h=new s(()=>{var d;const c=(d=e.window)===null||d===void 0?void 0:d.requestAnimationFrame;c?c.call(e.window,l):l()});return h.observe(t.element),{dispose:()=>h.disconnect()}}getPopupService(e){return this._popupServices.get(e)}setPopupService(e,t){this._popupServices.set(e,t)}deletePopupService(e){this._popupServices.delete(e)}scheduleRestoration(e,t,i){return new Promise(n=>{const s=()=>{this._restorationCleanups.delete(s),clearTimeout(r),i?.(),n()},r=setTimeout(()=>{if(this._restorationCleanups.delete(s),this._host.isDisposed){n();return}t(),n()},e);this._restorationCleanups.add(s)})}finishRestoration(e){this._restorationPromise=Promise.all(e).then(()=>{})}cancelPendingRestorations(){for(const e of[...this._restorationCleanups])e();this._restorationCleanups.clear()}serialize(){return this._entries.map(e=>{const t=e.gridview.serialize(),i=t.root,n=e.popoutGroup.api.location.type==="popout"?e.popoutGroup.api.location.popoutUrl:void 0,s={gridReferenceGroup:e.referenceGroup,position:e.window.dimensions(),url:n};return i.type==="branch"&&i.data.length===1&&i.data[0].type==="leaf"?Object.assign(Object.assign({},s),{data:i.data[0].data}):Object.assign(Object.assign({},s),{grid:t})})}disposeAll(){for(const e of[...this._entries])e.disposable.dispose()}dispose(){this.cancelPendingRestorations(),this.disposeAll(),this._onDidRemove.dispose()}}const Dr=te({name:"PopoutWindow",serviceKey:"popoutWindowService",create:o=>new wr(o)});class Cr{constructor(e){this._watermark=null,this._host=e}update(){if(this._host.hasVisibleGridGroup()){this._unmount();return}if(this._watermark)return;this._watermark=this._host.createWatermarkComponent(),this._watermark.init({containerApi:this._host.api});const e=document.createElement("div");e.className="dv-watermark-container",Xs(e,"watermark-component"),e.appendChild(this._watermark.element),this._host.mountElement.appendChild(e)}refresh(){this._unmount(),this.update()}_unmount(){var e,t;this._watermark&&(this._watermark.element.parentElement.remove(),(t=(e=this._watermark).dispose)===null||t===void 0||t.call(e),this._watermark=null)}dispose(){this._unmount()}}const yr=te({name:"Watermark",serviceKey:"watermarkService",create:o=>new Cr(o),init:(o,e)=>(e.update(),new E(ee.any(o.onDidAdd,o.onDidRemove)(()=>{e.update()}),o.onDidViewVisibilityChangeMicroTaskQueue(()=>{e.update()})))});class Sr{constructor(){this._edgeGroups=new Map,this._edgeGroupDisposables=new Map}add(e,t,i){this._edgeGroups.set(e,t),this._edgeGroupDisposables.set(e,i)}remove(e){var t;(t=this._edgeGroupDisposables.get(e))===null||t===void 0||t.dispose(),this._edgeGroupDisposables.delete(e),this._edgeGroups.delete(e)}get(e){return this._edgeGroups.get(e)}has(e){return this._edgeGroups.has(e)}hasAny(){return this._edgeGroups.size>0}entries(){return this._edgeGroups.entries()}includes(e){for(const t of this._edgeGroups.values())if(t===e)return!0;return!1}findPositionOf(e){for(const[t,i]of this._edgeGroups)if(i===e)return t}disposeAll(){for(const e of this._edgeGroupDisposables.values())e.dispose();this._edgeGroupDisposables.clear(),this._edgeGroups.clear()}dispose(){this.disposeAll()}}const xr=te({name:"EdgeGroup",serviceKey:"edgeGroupService",create:()=>new Sr}),pt={activationSize:{type:"pixels",value:10},size:{type:"pixels",value:20}};class Gr{constructor(e){const t=(n,s)=>{const r=$();return r?r.viewId!==e.id?!1:s==="center"?e.isGridEmpty():!0:s==="center"&&!e.isGridEmpty()?!1:e.dispatchUnhandledDragOver(n,s)},i=typeof e.options.dndEdges=="object"&&e.options.dndEdges!==null?e.options.dndEdges:pt;this._html5Target=Ce.createDropTarget(e.element,{className:"dv-drop-target-edge",canDisplayOverlay:t,acceptedTargetZones:["top","bottom","left","right","center"],overlayModel:i,getOverrideTarget:()=>e.rootDropTargetOverrideTarget()}),this._pointerTarget=be.createDropTarget(e.element,{className:"dv-drop-target-edge",canDisplayOverlay:t,acceptedTargetZones:["top","bottom","left","right","center"],overlayModel:i,getOverrideTarget:()=>e.rootDropTargetOverrideTarget()}),this.onWillShowOverlay=ee.any(this._html5Target.onWillShowOverlay,this._pointerTarget.onWillShowOverlay),this.onDrop=ee.any(this._html5Target.onDrop,this._pointerTarget.onDrop),this.setOptions(e.options)}setOptions(e){if("dndEdges"in e){const t=typeof e.dndEdges=="boolean"&&e.dndEdges===!1;this._html5Target.disabled=t,this._pointerTarget.disabled=t,typeof e.dndEdges=="object"&&e.dndEdges!==null?(this._html5Target.setOverlayModel(e.dndEdges),this._pointerTarget.setOverlayModel(e.dndEdges)):(this._html5Target.setOverlayModel(pt),this._pointerTarget.setOverlayModel(pt))}}dispose(){this._html5Target.dispose(),this._pointerTarget.dispose()}}const Pr=te({name:"RootDropTarget",serviceKey:"rootDropTargetService",create:o=>new Gr(o)}),Tr={left:"createLeftHeaderActionComponent",right:"createRightHeaderActionComponent",prefix:"createPrefixHeaderActionComponent"};class Ar{constructor(e){this._perGroup=new Map,this._host=e}refresh(e){if(!e?.model)return;const t=this._ensureState(e);this._refreshSlot("left",e,t.left),this._refreshSlot("right",e,t.right),this._refreshSlot("prefix",e,t.prefix)}refreshAll(){for(const e of this._host.groups)this.refresh(e)}disposeGroup(e){const t=this._perGroup.get(e);t&&(t.left.dispose(),t.right.dispose(),t.prefix.dispose(),this._perGroup.delete(e))}dispose(){for(const e of[...this._perGroup.keys()])this.disposeGroup(e)}_ensureState(e){let t=this._perGroup.get(e);return t||(t={left:new X,right:new X,prefix:new X},this._perGroup.set(e,t)),t}_refreshSlot(e,t,i){const n=this._host.options[Tr[e]];if(n){const s=n(t);i.value=s,s.init({containerApi:this._host.api,api:t.api,group:t}),t.model.attachHeaderAction(e,s.element)}else i.dispose(),t.model.attachHeaderAction(e,void 0)}}const Ir=te({name:"HeaderActions",serviceKey:"headerActionsService",create:o=>new Ar(o),init:(o,e)=>new E(o.onDidRemoveGroup(t=>{e.disposeGroup(t)}))});function Er(o,e){return o==="center"?`Tab into ${e}`:`Split ${o} of ${e}`}function zr(o,e){return o==="center"?`docked into ${e}`:`split ${o} of ${e}`}const ri={panelOpened:o=>`${o} opened`,panelClosed:o=>`${o} closed`,groupMaximized:o=>`${o} maximized`,groupRestored:o=>`${o} restored`,groupFloated:o=>`${o} floated`,groupDocked:o=>`${o} docked`,groupPoppedOut:o=>`${o} opened in a new window`,movePickTarget:(o,e,t,i)=>`Moving ${o}. Target ${e}, ${t} of ${i}. Enter to choose where, Escape to cancel.`,movePickEdge:(o,e)=>`${Er(o,e)}. Arrows to change, Enter to confirm, Escape to go back.`,moveCommitted:(o,e,t)=>`${o} ${zr(t,e)}.`,moveCancelled:()=>"Move cancelled.",moveNotAllowed:()=>"That move is not allowed."};function Gn(o){return o?Object.assign(Object.assign({},ri),o):ri}const ai=o=>o==="load"||o==="clear";function li(o){const e=document.createElement("div");return e.className=o==="assertive"?"dv-live-region-assertive":"dv-live-region",e.setAttribute("role",o==="assertive"?"alert":"status"),e.setAttribute("aria-live",o),e.setAttribute("aria-atomic","true"),Object.assign(e.style,{position:"absolute",width:"1px",height:"1px",margin:"-1px",padding:"0",overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(50%)",whiteSpace:"nowrap",border:"0"}),e}class Or extends E{constructor(e){super(),this._suppressDepth=0,this._locationSubs=new Map,this._host=e,this._polite=li("polite"),this._assertive=li("assertive"),e.element.appendChild(this._polite),e.element.appendChild(this._assertive),this.addDisposables({dispose:()=>this._polite.remove()},{dispose:()=>this._assertive.remove()},e.onDidAddPanel(t=>this._announce(t,"open")),e.onDidRemovePanel(t=>this._announce(t,"close")),e.onWillMutateLayout(t=>{ai(t.kind)&&this._suppressDepth++}),e.onDidMutateLayout(t=>{ai(t.kind)&&(this._suppressDepth=Math.max(0,this._suppressDepth-1))}),e.onDidMaximizedGroupChange(t=>{const i=t.group.activePanel;i&&this._announce(i,t.isMaximized?"maximize":"restore")}),e.onDidAddGroup(t=>this._trackLocation(t)),e.onDidRemoveGroup(t=>{var i;(i=this._locationSubs.get(t.id))===null||i===void 0||i.dispose(),this._locationSubs.delete(t.id)}),{dispose:()=>{this._locationSubs.forEach(t=>t.dispose()),this._locationSubs.clear()}})}_trackLocation(e){let t=e.api.location.type;const i=e.api.onDidLocationChange(n=>{const s=n.location.type;if(s===t)return;t=s;const r=e.activePanel;if(!r)return;const a=s==="floating"?"float":s==="popout"?"popout":"dock";this._announce(r,a)});this._locationSubs.set(e.id,i)}announce(e,t="polite"){if(this._host.options.announcements===!1||this._suppressDepth>0||!e)return;const i=this._host.options.announcer;if(i){i({message:e,politeness:t});return}const n=t==="assertive"?this._assertive:this._polite;n.textContent="",n.textContent=e}_announce(e,t){var i,n;const s=(n=(i=this._host.options).getAnnouncement)===null||n===void 0?void 0:n.call(i,{kind:t,panel:e});s===null||s===""||this.announce(s??this._defaultMessage(e,t))}_defaultMessage(e,t){var i;const n=Gn(this._host.options.messages),s=(i=e.title)!==null&&i!==void 0?i:e.id;switch(t){case"open":return n.panelOpened(s);case"close":return n.panelClosed(s);case"maximize":return n.groupMaximized(s);case"restore":return n.groupRestored(s);case"float":return n.groupFloated(s);case"dock":return n.groupDocked(s);case"popout":return n.groupPoppedOut(s)}}}const Pn=te({name:"LiveRegion",serviceKey:"liveRegionService",create:o=>new Or(o)}),Mr=[br,Dr,yr,xr,Pr,Ir,Pn];class kr{constructor(){this.cache=new Map,this.currentFrameId=0,this.rafId=null}getPosition(e){const t=this.cache.get(e);if(t&&t.frameId===this.currentFrameId)return t.rect;this.scheduleFrameUpdate();const i=gt(e);return this.cache.set(e,{rect:i,frameId:this.currentFrameId}),i}invalidate(){this.currentFrameId++}scheduleFrameUpdate(){this.rafId||(this.rafId=requestAnimationFrame(()=>{this.currentFrameId++,this.rafId=null}))}}function Lr(){const o=document.createElement("div");return o.tabIndex=-1,o}class di extends E{constructor(e,t){super(),this.element=e,this.accessor=t,this.map={},this._disposed=!1,this.positionCache=new kr,this.pendingUpdates=new Set,this.addDisposables(N.from(()=>{for(const i of Object.values(this.map))i.disposable.dispose(),i.destroy.dispose();this._disposed=!0}))}updateAllPositions(){if(!this._disposed){this.positionCache.invalidate();for(const e of Object.values(this.map))e.panel.api.isVisible&&e.resize&&e.resize()}}detatch(e){if(this.map[e.api.id]){const{disposable:t,destroy:i}=this.map[e.api.id];return t.dispose(),i.dispose(),delete this.map[e.api.id],!0}return!1}attach(e){const{panel:t,referenceContainer:i}=e;if(!this.map[t.api.id]){const c=Lr();c.className="dv-render-overlay",c.style.visibility="hidden",this.map[t.api.id]={panel:t,disposable:N.NONE,destroy:N.NONE,element:c}}const n=this.map[t.api.id].element,s=t.view.content.element;s.parentElement!==n&&n.appendChild(s),n.parentElement!==this.element&&this.element.appendChild(n);const r=()=>{const c=t.api.id;this.pendingUpdates.has(c)||(this.pendingUpdates.add(c),requestAnimationFrame(()=>{if(this.pendingUpdates.delete(c),this.isDisposed||!this.map[c])return;const p=this.positionCache.getPosition(i.element),v=this.positionCache.getPosition(this.element),u=p.left-v.left,m=p.top-v.top,g=p.width,_=p.height;n.style.left=`${u}px`,n.style.top=`${m}px`,n.style.width=`${g}px`,n.style.height=`${_}px`,t.api.isVisible?(n.style.visibility="",n.style.pointerEvents=""):(n.style.visibility="hidden",n.style.pointerEvents="none"),x(n,"dv-render-overlay-float",t.group.api.location.type==="floating")}))},a=()=>{t.api.isVisible?(this.positionCache.invalidate(),r(),n.style.pointerEvents=""):(n.style.visibility="hidden",n.style.pointerEvents="none")},l=new X,h=()=>{t.api.location.type==="floating"?queueMicrotask(()=>{const c=this.accessor.floatingGroups.find(m=>m.group===t.api.group);if(!c)return;const p=c.overlay.element,v=()=>{const m=Number(p.getAttribute("aria-level"));n.style.zIndex=`calc(var(--dv-overlay-z-index, 999) + ${m*2+1})`},u=new MutationObserver(()=>{v()});l.value=N.from(()=>u.disconnect()),u.observe(p,{attributeFilter:["aria-level"],attributes:!0}),v()}):n.style.zIndex=""},d=new E(l,new on(n,{onDragEnd:c=>{i.dropTarget.dnd.onDragEnd(c)},onDragEnter:c=>{i.dropTarget.dnd.onDragEnter(c)},onDragLeave:c=>{i.dropTarget.dnd.onDragLeave(c)},onDrop:c=>{i.dropTarget.dnd.onDrop(c)},onDragOver:c=>{i.dropTarget.dnd.onDragOver(c)}}),t.api.onDidVisibilityChange(()=>{a()}),t.api.onDidDimensionsChange(()=>{t.api.isVisible&&r()}),t.api.onDidLocationChange(()=>{h()}));return this.map[t.api.id].destroy=N.from(()=>{var c;s.parentElement===n&&n.removeChild(s),(c=n.parentElement)===null||c===void 0||c.removeChild(n)}),h(),queueMicrotask(()=>{this.isDisposed||a()}),this.map[t.api.id].disposable.dispose(),this.map[t.api.id].disposable=d,this.map[t.api.id].resize=r,n}}function Rr(o,e,t,i){function n(s){return s instanceof t?s:new t(function(r){r(s)})}return new(t||(t=Promise))(function(s,r){function a(d){try{h(i.next(d))}catch(c){r(c)}}function l(d){try{h(i.throw(d))}catch(c){r(c)}}function h(d){d.done?s(d.value):n(d.value).then(a,l)}h((i=i.apply(o,[])).next())})}function Vr(o){let e;try{e=new URL(o,window.location.href)}catch{throw new Error(`dockview: invalid popout URL: ${o}`)}if(!(e.protocol==="http:"||e.protocol==="https:")||e.origin!==window.location.origin)throw new Error(`dockview: popout URL must be same-origin http(s); got: ${o}`)}class Nr extends E{get window(){var e,t;return(t=(e=this._window)===null||e===void 0?void 0:e.value)!==null&&t!==void 0?t:null}constructor(e,t,i){super(),this.target=e,this.className=t,this.options=i,this._onWillClose=new f,this.onWillClose=this._onWillClose.event,this._onDidClose=new f,this.onDidClose=this._onDidClose.event,this._window=null,this.addDisposables(this._onWillClose,this._onDidClose,{dispose:()=>{this.close()}})}dimensions(){if(!this._window)return null;const e=this._window.value.screenX,t=this._window.value.screenY,i=this._window.value.innerWidth,n=this._window.value.innerHeight;return{top:t,left:e,width:i,height:n}}close(){var e,t;this._window&&(this._onWillClose.fire(),(t=(e=this.options).onWillClose)===null||t===void 0||t.call(e,{id:this.target,window:this._window.value}),this._window.disposable.dispose(),this._window=null,this._onDidClose.fire())}open(){return Rr(this,void 0,void 0,function*(){var e,t;if(this._window)throw new Error("instance of popout window is already open");const i=`${this.options.url}`;Vr(i);const n=Object.entries({top:this.options.top,left:this.options.left,width:this.options.width,height:this.options.height}).map(([l,h])=>`${l}=${h}`).join(","),s=window.open(i,this.target,n);if(!s)return null;const r=new E;this._window={value:s,disposable:r},r.addDisposables(N.from(()=>{s.close()}),P(window,"beforeunload",()=>{this.close()}));const a=this.createPopoutWindowContainer();return this.className&&a.classList.add(this.className),(t=(e=this.options).onDidOpen)===null||t===void 0||t.call(e,{id:this.target,window:s}),new Promise((l,h)=>{s.addEventListener("unload",d=>{}),s.addEventListener("load",()=>{try{const d=s.document;d.title=document.title,d.body.appendChild(a),js(d,window.document.styleSheets,{nonce:this.options.nonce}),P(s,"beforeunload",()=>{this.close()}),l(a)}catch(d){h(d)}})})})}createPopoutWindowContainer(){const e=document.createElement("div");return e.classList.add("dv-popout-window"),e.id="dv-popout-window",e.style.position="absolute",e.style.width="100%",e.style.height="100%",e.style.top="0px",e.style.left="0px",e}}class Wr extends E{constructor(e){super(),this.accessor=e,this.init()}init(){const e=new Set,t=new Set;this.addDisposables(this.accessor.onDidAddPanel(i=>{if(e.has(i.api.id))throw new Error(`dockview: Invalid event sequence. [onDidAddPanel] called for panel ${i.api.id} but panel already exists`);e.add(i.api.id)}),this.accessor.onDidRemovePanel(i=>{if(e.has(i.api.id))e.delete(i.api.id);else throw new Error(`dockview: Invalid event sequence. [onDidRemovePanel] called for panel ${i.api.id} but panel does not exists`)}),this.accessor.onDidAddGroup(i=>{if(t.has(i.api.id))throw new Error(`dockview: Invalid event sequence. [onDidAddGroup] called for group ${i.api.id} but group already exists`);t.add(i.api.id)}),this.accessor.onDidRemoveGroup(i=>{if(t.has(i.api.id))t.delete(i.api.id);else throw new Error(`dockview: Invalid event sequence. [onDidRemoveGroup] called for group ${i.api.id} but group does not exists`)}))}}function Hr(o){if(!o.matchMedia)return!1;const e=o.matchMedia("(pointer: coarse)").matches,t=o.matchMedia("(pointer: fine)").matches;return e&&!t}class hi extends E{constructor(e,t=window){super(),this._active=null,this._activeDisposable=new X,this._root=e,this._window=t,this._element=t.document.createElement("div"),this._element.className="dv-popover-anchor",this._element.style.position="relative",this._root.prepend(this._element),this.addDisposables(N.from(()=>{this.close()}),this._activeDisposable)}updateRoot(e){e.prepend(this._element),this._root=e}openPopover(e,t){var i;this.close();const n=this._window.document.createElement("div");n.style.position="absolute",n.style.zIndex=(i=t.zIndex)!==null&&i!==void 0?i:"var(--dv-overlay-z-index)",n.appendChild(e);const s=this._element.getBoundingClientRect(),r=s.left,a=s.top;n.style.top=`${t.y-a}px`,n.style.left=`${t.x-r}px`,this._element.appendChild(n),this._active=n;const l=Date.now(),h=200;this._activeDisposable.value=new E(P(this._window,"pointerdown",d=>{var c;if(Date.now()-l<h)return;const p=d.target;if(!(p instanceof HTMLElement))return;let v=p;for(;v&&v!==n;)v=(c=v?.parentElement)!==null&&c!==void 0?c:null;v||this.close()}),P(this._window,"keydown",d=>{(d.key==="Escape"||d.key==="Enter")&&this.close()}),P(this._window,"resize",()=>{Hr(this._window)||this.close()})),this._window.requestAnimationFrame(()=>{Qs(n,this._root)})}close(){this._active&&(this._active.remove(),this._activeDisposable.dispose(),this._active=null)}}class ci extends E{get disabled(){return this._disabled}set disabled(e){var t;this.disabled!==e&&(this._disabled=e,e&&((t=this.model)===null||t===void 0||t.clear()))}get model(){if(!this.disabled)return{clear:()=>{var e;this._model&&((e=this._model.root.parentElement)===null||e===void 0||e.removeChild(this._model.root)),this._model=void 0},exists:()=>!!this._model,getElements:(e,t)=>{const i=this._outline!==t;if(this._outline=t,this._model)return this._model.changed=i,this._model;const n=this.createContainer(),s=this.createAnchor();if(this._model={root:n,overlay:s,changed:i},n.appendChild(s),this.element.appendChild(n),e?.target instanceof HTMLElement){const r=e.target.getBoundingClientRect(),a=this.element.getBoundingClientRect();s.style.left=`${r.left-a.left}px`,s.style.top=`${r.top-a.top}px`}return this._model}}}constructor(e,t){super(),this.element=e,this._disabled=!1,this._disabled=t.disabled,this.addDisposables(N.from(()=>{var i;(i=this.model)===null||i===void 0||i.clear()}))}createContainer(){const e=document.createElement("div");return e.className="dv-drop-target-container",e}createAnchor(){const e=document.createElement("div");return e.className="dv-drop-target-anchor",e.style.visibility="hidden",e}}class Fr{get minimumSize(){return this._isCollapsed?this._collapsedSize:this._expandedMinimumSize}get maximumSize(){return this._isCollapsed?this._collapsedSize:this._expandedMaximumSize}get element(){return this._group.element}get isCollapsed(){return this._isCollapsed}get lastExpandedSize(){return this._lastExpandedSize}get collapsedSize(){return this._collapsedSize}constructor(e,t,i){var n,s,r;this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this.snap=!1,this.priority=j.Low,this._isCollapsed=!1,this._group=t,this._orientation=i,t.element.classList.add("dv-edge-group"),t.element.dataset.testid=`dv-edge-group-${e.id}`,this._collapsedSize=(n=e.collapsedSize)!==null&&n!==void 0?n:35,this._expandedMaximumSize=(s=e.maximumSize)!==null&&s!==void 0?s:Number.POSITIVE_INFINITY,this._expandedMinimumSize=e.minimumSize!==void 0?e.minimumSize:this._collapsedSize+50,this._lastExpandedSize=(r=e.initialSize)!==null&&r!==void 0?r:200,e.collapsed&&(this._isCollapsed=!0,t.element.classList.add("dv-edge-collapsed"))}layout(e,t){this._isCollapsed||(this._lastExpandedSize=e),this._orientation==="horizontal"?this._group.layout(e,t):this._group.layout(t,e)}setCollapsed(e){this._isCollapsed!==e&&(this._isCollapsed=e,this._group.element.classList.toggle("dv-edge-collapsed",e))}setVisible(e){}restoreExpandedSize(e){this._lastExpandedSize=e}updateCollapsedSize(e,t){this._collapsedSize=e,this._expandedMinimumSize=t}dispose(){this._onDidChange.dispose()}}class Br{get element(){return this._dockviewElement}constructor(e,t){this._dockviewElement=e,this._layoutDockview=t,this.priority=j.High,this.minimumSize=100,this.maximumSize=Number.POSITIVE_INFINITY,this._onDidChange=new f,this.onDidChange=this._onDidChange.event}layout(e,t){this._layoutDockview(t,e)}setVisible(e){}dispose(){this._onDidChange.dispose()}}class $r{get element(){return this._element}constructor(e,t=0){this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this.minimumSize=100,this.maximumSize=Number.POSITIVE_INFINITY,this.priority=j.High,this._element=document.createElement("div"),this._element.className="dv-shell-middle-column",this._element.style.height="100%",this._element.style.width="100%",this._splitview=new xe(this._element,{orientation:z.VERTICAL,proportionalLayout:!1,margin:t}),this._centerIndex=0,this._splitview.addView(e,{type:"distribute"},0)}addTopView(e,t){this._splitview.addView(e,t,0),this._topIndex=0,this._centerIndex+=1,this._bottomIndex!==void 0&&(this._bottomIndex+=1)}addBottomView(e,t){const i=this._splitview.length;this._splitview.addView(e,t,i),this._bottomIndex=i}removeView(e){const t=e==="top"?this._topIndex:this._bottomIndex;t!==void 0&&(this._splitview.removeView(t),e==="top"?(this._topIndex=void 0,this._centerIndex-=1,this._bottomIndex!==void 0&&(this._bottomIndex-=1)):this._bottomIndex=void 0)}layout(e,t){this._splitview.layout(t,e)}setVisible(e){}setViewVisible(e,t){const i=e==="top"?this._topIndex:this._bottomIndex;i!==void 0&&this._splitview.setViewVisible(i,t)}isViewVisible(e){const t=e==="top"?this._topIndex:this._bottomIndex;return t!==void 0?this._splitview.isViewVisible(t):!1}getViewSize(e){const t=e==="top"?this._topIndex:this._bottomIndex;return t!==void 0?this._splitview.getViewSize(t):0}resizeView(e,t){const i=e==="top"?this._topIndex:this._bottomIndex;i!==void 0&&this._splitview.resizeView(i,t)}updateMargin(e){this._splitview.margin=e}dispose(){this._onDidChange.dispose(),this._splitview.dispose()}}function Ur(o,e,t){var i;const n=((i=o.collapsedSize)!==null&&i!==void 0?i:e)+t,s=Object.assign(Object.assign({},o),{collapsedSize:n});return o.minimumSize!==void 0&&(s.minimumSize=o.minimumSize+t),s}class jr{constructor(e,t,i,n=0,s=35){this._disposables=new E,this._viewConfigs=new Map,this._currentWidth=0,this._currentHeight=0,this._gap=n,this._defaultCollapsedSize=s,this._shellElement=document.createElement("div"),this._shellElement.className="dv-shell",this._shellElement.style.height="100%",this._shellElement.style.width="100%",this._shellElement.style.position="relative",e.appendChild(this._shellElement);const r=new Br(t,i);this._middleColumn=new $r(r,n),this._outerSplitview=new xe(this._shellElement,{orientation:z.HORIZONTAL,proportionalLayout:!1,margin:n}),this._middleIndex=0,this._outerSplitview.addView(this._middleColumn,{type:"distribute"},0),this._disposables.addDisposables(Ue(this._shellElement,a=>{const l=Math.round(a.contentRect.width),h=Math.round(a.contentRect.height);l===this._currentWidth&&h===this._currentHeight||(this._currentWidth=l,this._currentHeight=h,this.layout(l,h))}),this._outerSplitview,this._middleColumn,r)}get element(){return this._shellElement}addEdgeView(e,t,i){if(this.hasEdgeGroup(e))throw new Error(`dockview: edge group already registered at position '${e}'`);this._viewConfigs.set(e,t);const n=1+(this._viewConfigs.has("left")?1:0)+(this._viewConfigs.has("right")?1:0),s=1+(this._viewConfigs.has("top")?1:0)+(this._viewConfigs.has("bottom")?1:0),r=n>1?this._gap*(n-1)/n:0,a=s>1?this._gap*(s-1)/s:0,l=e==="left"||e==="right",h=l?r:a,d=l?"horizontal":"vertical",c=new Fr(Ur(Object.assign({collapsedSize:this._defaultCollapsedSize},t),this._defaultCollapsedSize,h),i,d),p=c.isCollapsed?c.collapsedSize:c.lastExpandedSize;switch(e){case"left":this._outerSplitview.addView(c,p,0),this._leftIndex=0,this._middleIndex+=1,this._rightIndex!==void 0&&(this._rightIndex+=1),this._leftView=c;break;case"right":{const v=this._outerSplitview.length;this._outerSplitview.addView(c,p,v),this._rightIndex=v,this._rightView=c}break;case"top":this._middleColumn.addTopView(c,p),this._topView=c;break;case"bottom":this._middleColumn.addBottomView(c,p),this._bottomView=c;break}return this._disposables.addDisposables(c),this.updateTheme(this._gap,this._defaultCollapsedSize),c}layout(e,t){this._outerSplitview.layout(e,t)}updateTheme(e,t){var i,n,s,r;this._gap=e,this._defaultCollapsedSize=t;const a=1+(this._viewConfigs.has("left")?1:0)+(this._viewConfigs.has("right")?1:0),l=1+(this._viewConfigs.has("top")?1:0)+(this._viewConfigs.has("bottom")?1:0),h=a>1?e*(a-1)/a:0,d=l>1?e*(l-1)/l:0;this._outerSplitview.margin=e,this._middleColumn.updateMargin(e);const c=(g,_,w)=>{var b;const T=((b=_.collapsedSize)!==null&&b!==void 0?b:t)+w,C=_.minimumSize,S=C!==void 0?C+w:T+50;g.updateCollapsedSize(T,S)},p=this._viewConfigs.get("top");this._topView&&p&&c(this._topView,p,d);const v=this._viewConfigs.get("bottom");this._bottomView&&v&&c(this._bottomView,v,d);const u=this._viewConfigs.get("left");this._leftView&&u&&c(this._leftView,u,h);const m=this._viewConfigs.get("right");this._rightView&&m&&c(this._rightView,m,h),!((i=this._leftView)===null||i===void 0)&&i.isCollapsed&&this._leftIndex!==void 0&&this._outerSplitview.resizeView(this._leftIndex,this._leftView.collapsedSize),!((n=this._rightView)===null||n===void 0)&&n.isCollapsed&&this._rightIndex!==void 0&&this._outerSplitview.resizeView(this._rightIndex,this._rightView.collapsedSize),!((s=this._topView)===null||s===void 0)&&s.isCollapsed&&this._middleColumn.resizeView("top",this._topView.collapsedSize),!((r=this._bottomView)===null||r===void 0)&&r.isCollapsed&&this._middleColumn.resizeView("bottom",this._bottomView.collapsedSize),this._currentWidth>0&&this._currentHeight>0&&this.layout(this._currentWidth,this._currentHeight)}removeEdgeView(e){const t=this._getView(e);if(t){switch(e){case"left":this._outerSplitview.removeView(this._leftIndex),this._leftIndex=void 0,this._leftView=void 0,this._middleIndex-=1,this._rightIndex!==void 0&&(this._rightIndex-=1);break;case"right":this._outerSplitview.removeView(this._rightIndex),this._rightIndex=void 0,this._rightView=void 0;break;case"top":this._middleColumn.removeView("top"),this._topView=void 0;break;case"bottom":this._middleColumn.removeView("bottom"),this._bottomView=void 0;break}this._disposables.removeDisposable(t),t.dispose(),this._viewConfigs.delete(e),this.updateTheme(this._gap,this._defaultCollapsedSize)}}hasEdgeGroup(e){switch(e){case"top":return this._topView!==void 0;case"bottom":return this._bottomView!==void 0;case"left":return this._leftView!==void 0;case"right":return this._rightView!==void 0}}setEdgeGroupVisible(e,t){switch(e){case"left":this._leftIndex!==void 0&&this._outerSplitview.setViewVisible(this._leftIndex,t);break;case"right":this._rightIndex!==void 0&&this._outerSplitview.setViewVisible(this._rightIndex,t);break;case"top":case"bottom":this._middleColumn.setViewVisible(e,t);break}}isEdgeGroupVisible(e){switch(e){case"left":return this._leftIndex!==void 0?this._outerSplitview.isViewVisible(this._leftIndex):!1;case"right":return this._rightIndex!==void 0?this._outerSplitview.isViewVisible(this._rightIndex):!1;case"top":case"bottom":return this._middleColumn.isViewVisible(e)}}setEdgeGroupCollapsed(e,t){const i=this._getView(e);if(!i)return;i.setCollapsed(t);const n=t?i.collapsedSize:i.lastExpandedSize;switch(e){case"left":this._leftIndex!==void 0&&this._outerSplitview.resizeView(this._leftIndex,n);break;case"right":this._rightIndex!==void 0&&this._outerSplitview.resizeView(this._rightIndex,n);break;case"top":case"bottom":this._middleColumn.resizeView(e,n);break}}isEdgeGroupCollapsed(e){var t,i;return(i=(t=this._getView(e))===null||t===void 0?void 0:t.isCollapsed)!==null&&i!==void 0?i:!1}_getView(e){switch(e){case"top":return this._topView;case"bottom":return this._bottomView;case"left":return this._leftView;case"right":return this._rightView}}toJSON(){const e={};return this._leftView&&this._leftIndex!==void 0&&(e.left={size:this._leftView.isCollapsed?this._leftView.lastExpandedSize:this._outerSplitview.getViewSize(this._leftIndex),visible:this._outerSplitview.isViewVisible(this._leftIndex),collapsed:this._leftView.isCollapsed||void 0}),this._rightView&&this._rightIndex!==void 0&&(e.right={size:this._rightView.isCollapsed?this._rightView.lastExpandedSize:this._outerSplitview.getViewSize(this._rightIndex),visible:this._outerSplitview.isViewVisible(this._rightIndex),collapsed:this._rightView.isCollapsed||void 0}),this._topView&&(e.top={size:this._topView.isCollapsed?this._topView.lastExpandedSize:this._middleColumn.getViewSize("top"),visible:this._middleColumn.isViewVisible("top"),collapsed:this._topView.isCollapsed||void 0}),this._bottomView&&(e.bottom={size:this._bottomView.isCollapsed?this._bottomView.lastExpandedSize:this._middleColumn.getViewSize("bottom"),visible:this._middleColumn.isViewVisible("bottom"),collapsed:this._bottomView.isCollapsed||void 0}),e}fromJSON(e){var t,i,n,s,r,a,l,h,d,c,p,v,u,m,g,_,w,b,D,T;e.left&&this._leftIndex!==void 0&&((t=this._leftView)===null||t===void 0||t.restoreExpandedSize(e.left.size),(i=this._leftView)===null||i===void 0||i.setCollapsed((n=e.left.collapsed)!==null&&n!==void 0?n:!1),this._outerSplitview.resizeView(this._leftIndex,e.left.collapsed&&(r=(s=this._leftView)===null||s===void 0?void 0:s.collapsedSize)!==null&&r!==void 0?r:e.left.size),e.left.visible||this._outerSplitview.setViewVisible(this._leftIndex,!1)),e.right&&this._rightIndex!==void 0&&((a=this._rightView)===null||a===void 0||a.restoreExpandedSize(e.right.size),(l=this._rightView)===null||l===void 0||l.setCollapsed((h=e.right.collapsed)!==null&&h!==void 0?h:!1),this._outerSplitview.resizeView(this._rightIndex,e.right.collapsed&&(c=(d=this._rightView)===null||d===void 0?void 0:d.collapsedSize)!==null&&c!==void 0?c:e.right.size),e.right.visible||this._outerSplitview.setViewVisible(this._rightIndex,!1)),e.top&&((p=this._topView)===null||p===void 0||p.restoreExpandedSize(e.top.size),(v=this._topView)===null||v===void 0||v.setCollapsed((u=e.top.collapsed)!==null&&u!==void 0?u:!1),this._middleColumn.resizeView("top",e.top.collapsed&&(g=(m=this._topView)===null||m===void 0?void 0:m.collapsedSize)!==null&&g!==void 0?g:e.top.size),e.top.visible||this._middleColumn.setViewVisible("top",!1)),e.bottom&&((_=this._bottomView)===null||_===void 0||_.restoreExpandedSize(e.bottom.size),(w=this._bottomView)===null||w===void 0||w.setCollapsed((b=e.bottom.collapsed)!==null&&b!==void 0?b:!1),this._middleColumn.resizeView("bottom",e.bottom.collapsed&&(T=(D=this._bottomView)===null||D===void 0?void 0:D.collapsedSize)!==null&&T!==void 0?T:e.bottom.size),e.bottom.visible||this._middleColumn.setViewVisible("bottom",!1))}dispose(){var e;this._disposables.dispose(),(e=this._shellElement.parentElement)===null||e===void 0||e.removeChild(this._shellElement)}}function Yr(o){var e;const t=(e=o.tabGroupColors)!==null&&e!==void 0?e:Nt,i=o.tabGroupAccent!=="off";return new gn(t,i)}function Ze(o){const e=o.from.activePanel;[...o.from.panels].map(i=>{const n=o.from.model.removePanel(i);return o.from.model.renderContainer.detatch(i),n}).forEach(i=>{o.to.model.openPanel(i,{skipSetActive:e!==i,skipSetGroupActive:!0})})}let ui=!1;function Xr(){typeof process<"u"&&Hs||ui||vr()||(ui=!0,console.warn('dockview: do not use "dockview-core" directly — it is an internal package. Use the "dockview" package, the JavaScript version of dockview, instead. This notice is shown once.'))}class Jr extends tn{fireDidCreateTabGroup(e){this._onDidCreateTabGroup.fire(e)}fireDidDestroyTabGroup(e){this._onDidDestroyTabGroup.fire(e)}fireDidAddPanelToTabGroup(e){this._onDidAddPanelToTabGroup.fire(e)}fireDidRemovePanelFromTabGroup(e){this._onDidRemovePanelFromTabGroup.fire(e)}fireDidTabGroupChange(e){this._onDidTabGroupChange.fire(e)}fireDidTabGroupCollapsedChange(e){this._onDidTabGroupCollapsedChange.fire(e)}get orientation(){return this.gridview.orientation}get totalPanels(){return this.panels.length}get panels(){return this.groups.flatMap(e=>e.panels)}get options(){return this._options}get tabGroupColorPalette(){return this._tabGroupColorPalette}get activePanel(){const e=this.activeGroup;if(e)return e.activePanel}get renderer(){var e;return(e=this.options.defaultRenderer)!==null&&e!==void 0?e:"onlyWhenVisible"}get defaultHeaderPosition(){var e;return(e=this.options.defaultHeaderPosition)!==null&&e!==void 0?e:"top"}get api(){return this._api}get floatingGroups(){var e,t,i;return(i=(t=(e=this._moduleRegistry)===null||e===void 0?void 0:e.services.floatingGroupService)===null||t===void 0?void 0:t.floatingGroups)!==null&&i!==void 0?i:[]}_gatherFloatingGroupBoxes(e){var t;const n=((t=this._floatingOverlayHost)!==null&&t!==void 0?t:this.gridview.element).getBoundingClientRect();return this.floatingGroups.filter(s=>s.group!==e).map(s=>{const r=s.overlay.element.getBoundingClientRect();return{left:r.left-n.left,top:r.top-n.top,width:r.width,height:r.height}})}get _floatingGroupService(){return this._moduleRegistry.services.floatingGroupService}get _popoutWindowService(){return this._moduleRegistry.services.popoutWindowService}get _watermarkService(){return this._moduleRegistry.services.watermarkService}get _edgeGroupService(){return this._moduleRegistry.services.edgeGroupService}get _rootDropTargetService(){return this._moduleRegistry.services.rootDropTargetService}get _advancedDnDService(){return this._moduleRegistry.services.advancedDnDService}get headerActionsService(){return this._moduleRegistry.services.headerActionsService}isGridEmpty(){return this.gridview.length===0}rootDropTargetOverrideTarget(){var e;return(e=this.rootDropTargetContainer)===null||e===void 0?void 0:e.model}dispatchUnhandledDragOver(e,t){const i=new Dn(e,"edge",t,$);return this._onUnhandledDragOver.fire(i),i.isAccepted}fireWillDragPanel(e){this._onWillDragPanel.fire(e)}fireWillDragGroup(e){this._onWillDragGroup.fire(e)}fireWillDrop(e){this._onWillDrop.fire(e)}fireWillShowOverlay(e){this._onWillShowOverlay.fire(e)}buildGroupDragGhost(e){var t;return(t=this._advancedDnDService)===null||t===void 0?void 0:t.buildGroupDragGhost(e)}resolveDropOverlayModel(e,t){var i;return(i=this._advancedDnDService)===null||i===void 0?void 0:i.resolveOverlayModel(e,t)}get rootElement(){var e,t;return(t=(e=this._shellManager)===null||e===void 0?void 0:e.element)!==null&&t!==void 0?t:this.element}adjacentGroup(e,t){var i;if(e.api.location.type!=="grid")return;const n=H(e.element);return(i=t?this.gridview.previous(n):this.gridview.next(n))===null||i===void 0?void 0:i.view}adjacentGroupInDirection(e,t){if(e.api.location.type!=="grid")return;const i=e.element.getBoundingClientRect(),n=i.left+i.width/2,s=i.top+i.height/2;let r,a=Number.POSITIVE_INFINITY;for(const l of this.groups){if(l===e||l.api.location.type!=="grid")continue;const h=l.element.getBoundingClientRect(),d=h.left+h.width/2-n,c=h.top+h.height/2-s;if(!(t==="left"?d<0&&Math.abs(d)>=Math.abs(c):t==="right"?d>0&&Math.abs(d)>=Math.abs(c):t==="up"?c<0&&Math.abs(c)>=Math.abs(d):c>0&&Math.abs(c)>=Math.abs(d)))continue;const v=d*d+c*c;v<a&&(a=v,r=l)}return r}showDropPreview(e,t){var i,n;return(n=(i=this._advancedDnDService)===null||i===void 0?void 0:i.showPreviewOverlay(e,t))!==null&&n!==void 0?n:N.NONE}announce(e){var t;(t=this._moduleRegistry.services.liveRegionService)===null||t===void 0||t.announce(e)}dockPanel(e,t,i){this.moveGroupOrPanel({from:{groupId:e.group.id,panelId:e.id},to:{group:t,position:i}})}get contextMenuService(){return this._moduleRegistry.services.contextMenuService}get mountElement(){return this.gridview.element}hasVisibleGridGroup(){return this.groups.some(e=>e.api.location.type==="grid"&&e.api.isVisible)}fireLayoutChange(){this._bufferOnDidLayoutChange.fire()}get popoutRestorationPromise(){var e,t;return(t=(e=this._popoutWindowService)===null||e===void 0?void 0:e.restorationPromise)!==null&&t!==void 0?t:Promise.resolve()}constructor(e,t){var i,n,s,r,a;super(e,{proportionalLayout:!0,orientation:z.HORIZONTAL,styles:t.hideBorders?{separatorBorder:"transparent"}:void 0,disableAutoResizing:t.disableAutoResizing,locked:t.locked,margin:(n=(i=t.theme)===null||i===void 0?void 0:i.gap)!==null&&n!==void 0?n:0,className:t.className}),this.nextGroupId=Mt(),this._deserializer=new ar(this),this._moduleRegistry=new cr,this._onWillDragPanel=new f,this.onWillDragPanel=this._onWillDragPanel.event,this._onWillDragGroup=new f,this.onWillDragGroup=this._onWillDragGroup.event,this._onDidDrop=new f,this.onDidDrop=this._onDidDrop.event,this._onWillDrop=new f,this.onWillDrop=this._onWillDrop.event,this._mutationDepth=0,this._origin="user",this._originDepth=0,this._onWillMutateLayout=new f,this.onWillMutateLayout=this._onWillMutateLayout.event,this._onDidMutateLayout=new f,this.onDidMutateLayout=this._onDidMutateLayout.event,this._onWillShowOverlay=new f,this.onWillShowOverlay=this._onWillShowOverlay.event,this._onUnhandledDragOver=new f,this.onUnhandledDragOver=this._onUnhandledDragOver.event,this._onDidRemovePanel=new f,this.onDidRemovePanel=this._onDidRemovePanel.event,this._onDidAddPanel=new f,this.onDidAddPanel=this._onDidAddPanel.event,this._onDidPopoutGroupSizeChange=new f,this.onDidPopoutGroupSizeChange=this._onDidPopoutGroupSizeChange.event,this._onDidPopoutGroupPositionChange=new f,this.onDidPopoutGroupPositionChange=this._onDidPopoutGroupPositionChange.event,this._onDidAddPopoutGroup=new f,this.onDidAddPopoutGroup=this._onDidAddPopoutGroup.event,this._onDidRemovePopoutGroup=new f,this.onDidRemovePopoutGroup=this._onDidRemovePopoutGroup.event,this._onDidOpenPopoutWindowFail=new f,this.onDidOpenPopoutWindowFail=this._onDidOpenPopoutWindowFail.event,this._onDidLayoutFromJSON=new f,this.onDidLayoutFromJSON=this._onDidLayoutFromJSON.event,this._onDidActivePanelChange=new f({replay:!0}),this.onDidActivePanelChange=this._onDidActivePanelChange.event,this._onDidMovePanel=new f,this.onDidMovePanel=this._onDidMovePanel.event,this._onDidCreateTabGroup=new f,this.onDidCreateTabGroup=this._onDidCreateTabGroup.event,this._onDidDestroyTabGroup=new f,this.onDidDestroyTabGroup=this._onDidDestroyTabGroup.event,this._onDidAddPanelToTabGroup=new f,this.onDidAddPanelToTabGroup=this._onDidAddPanelToTabGroup.event,this._onDidRemovePanelFromTabGroup=new f,this.onDidRemovePanelFromTabGroup=this._onDidRemovePanelFromTabGroup.event,this._onDidTabGroupChange=new f,this.onDidTabGroupChange=this._onDidTabGroupChange.event,this._onDidTabGroupCollapsedChange=new f,this.onDidTabGroupCollapsedChange=this._onDidTabGroupCollapsedChange.event,this._onDidMaximizedGroupChange=new f,this.onDidMaximizedGroupChange=this._onDidMaximizedGroupChange.event,this._inShellLayout=!1,this._onDidRemoveGroup=new f,this.onDidRemoveGroup=this._onDidRemoveGroup.event,this._onDidAddGroup=new f,this.onDidAddGroup=this._onDidAddGroup.event,this._onDidOptionsChange=new f,this.onDidOptionsChange=this._onDidOptionsChange.event,this._onDidActiveGroupChange=new f,this.onDidActiveGroupChange=this._onDidActiveGroupChange.event,this._moving=!1,this._options=t,this._tabGroupColorPalette=Yr(t);const l=t.modules,h=l??[...Mr,...pr()];for(const p of h)this._moduleRegistry.register(p);this._moduleRegistry.initialize(this);const d=this._popoutWindowService;d&&this.addDisposables(d.onDidRemove(p=>{this._onDidRemovePopoutGroup.fire({id:p.popoutGroup.id,group:p.popoutGroup,window:p.getWindow()})})),Xr(),this.popupService=new hi(this.element),this._api=new Lt(this),this.disableResizing=!0,e.removeChild(this.element),this._shellManager=new jr(e,this.element,(p,v)=>this._layoutFromShell(p,v),(r=(s=t.theme)===null||s===void 0?void 0:s.gap)!==null&&r!==void 0?r:0,(a=t.theme)===null||a===void 0?void 0:a.edgeGroupCollapsedSize),this.popupService.updateRoot(this._shellManager.element),this._shellThemeClassnames=new at(this._shellManager.element),this.rootDropTargetContainer=new ci(this._shellManager.element,{disabled:!0}),this.overlayRenderContainer=new di(this._shellManager.element,this),this._floatingOverlayHost=document.createElement("div"),this._floatingOverlayHost.className="dv-floating-overlay-host",this._shellManager.element.appendChild(this._floatingOverlayHost),x(this.gridview.element,"dv-dockview",!0),x(this.element,"dv-debug",!!t.debug),this.updateTheme(),t.debug&&this.addDisposables(new Wr(this)),this.addDisposables(this.rootDropTargetContainer,this.overlayRenderContainer,this._onWillDragPanel,this._onWillDragGroup,this._onWillShowOverlay,this._onDidActivePanelChange,this._onDidAddPanel,this._onDidRemovePanel,this._onDidLayoutFromJSON,this._onDidDrop,this._onWillDrop,this._onWillMutateLayout,this._onDidMutateLayout,this._onDidMovePanel,this._onDidMovePanel.event(()=>{this.debouncedUpdateAllPositions()}),this._onDidAddGroup,this._onDidRemoveGroup,this._onDidActiveGroupChange,this._onUnhandledDragOver,this._onDidMaximizedGroupChange,this._onDidPopoutGroupSizeChange,this._onDidPopoutGroupPositionChange,this._onDidAddPopoutGroup,this._onDidRemovePopoutGroup,this._onDidOpenPopoutWindowFail,this._onDidCreateTabGroup,this._onDidDestroyTabGroup,this._onDidAddPanelToTabGroup,this._onDidRemovePanelFromTabGroup,this._onDidTabGroupChange,this._onDidTabGroupCollapsedChange,ee.any(this.onDidPopoutGroupSizeChange,this.onDidPopoutGroupPositionChange,this.onDidCreateTabGroup,this.onDidDestroyTabGroup,this.onDidAddPanelToTabGroup,this.onDidRemovePanelFromTabGroup,this.onDidTabGroupChange,this.onDidTabGroupCollapsedChange)(()=>{this.fireLayoutChange()}),this._onDidOptionsChange,this.onDidAdd(p=>{this._moving||this._onDidAddGroup.fire(p)}),this.onDidRemove(p=>{this._moving||this._onDidRemoveGroup.fire(p)}),this.onDidActiveChange(p=>{this._moving||this._onDidActiveGroupChange.fire(p)}),this.onDidMaximizedChange(p=>{this._onDidMaximizedGroupChange.fire({group:p.panel,isMaximized:p.isMaximized})}),ee.any(this.onDidAddPanel,this.onDidRemovePanel,this.onDidAddGroup,this.onDidRemove,this.onDidRemoveGroup,this.onDidMovePanel,this.onDidActivePanelChange)(()=>{this._bufferOnDidLayoutChange.fire()}),N.from(()=>{var p;this._moduleRegistry.dispose(),(p=this._shellManager)===null||p===void 0||p.dispose()}));const c=this._rootDropTargetService;c&&this.addDisposables(c.onWillShowOverlay(p=>{this.gridview.length>0&&p.position==="center"||this._onWillShowOverlay.fire(new Fe(p,{kind:"edge",panel:void 0,api:this._api,group:void 0,getData:$}))}),c.onDrop(p=>{var v;const u=new Cn({nativeEvent:p.nativeEvent,position:p.position,panel:void 0,api:this._api,group:void 0,getData:$,kind:"edge"});if(this._onWillDrop.fire(u),u.defaultPrevented)return;const m=$();m?this.moveGroupOrPanel({from:{groupId:m.groupId,panelId:(v=m.panelId)!==null&&v!==void 0?v:void 0},to:{group:this.orthogonalize(p.position),position:"center"}}):this._onDidDrop.fire(new Ft({nativeEvent:p.nativeEvent,position:p.position,panel:void 0,api:this._api,group:void 0,getData:$}))})),this._moduleRegistry.postConstruct(this)}setVisible(e,t){switch(e.api.location.type){case"grid":super.setVisible(e,t);break;case"floating":{const i=this.floatingGroups.find(n=>n.group===e);i&&(i.overlay.setVisible(t),e.api._onDidVisibilityChange.fire({isVisible:t}));break}case"popout":console.warn("dockview: You cannot hide a group that is in a popout window");break}}getPopupServiceForGroup(e){var t,i;return(i=(t=this._popoutWindowService)===null||t===void 0?void 0:t.getPopupService(e.id))!==null&&i!==void 0?i:this.popupService}addPopoutGroup(e,t){return this.mutation("popout",()=>this._doAddPopoutGroup(e,t))}getPopouts(){var e,t;return(t=(e=this._popoutWindowService)===null||e===void 0?void 0:e.entries.map(i=>({id:i.popoutGroup.id,group:i.popoutGroup,window:i.getWindow()})))!==null&&t!==void 0?t:[]}_doAddPopoutGroup(e,t){var i,n,s,r,a;const l=Se(this._popoutWindowService,"PopoutWindow","api.addPopoutGroup");if(!l||e instanceof Xe&&e.model.location.type==="edge")return Promise.resolve(!1);if(e instanceof Pe&&e.group.size===1)return this.addPopoutGroup(e.group,t);const h=Zs(this.gridview.element),d=this.element;function c(){return t?.position?t.position:e instanceof Xe?e.element.getBoundingClientRect():e.group?e.group.element.getBoundingClientRect():d.getBoundingClientRect()}const p=c(),v=(n=(i=t?.overridePopoutGroup)===null||i===void 0?void 0:i.id)!==null&&n!==void 0?n:this.getNextGroupId(),u=(s=t?.popoutUrl)!==null&&s!==void 0?s:(r=this.options)===null||r===void 0?void 0:r.popoutUrl,m=new Nr(`${this.id}-${v}`,h??"",{url:u??"/popout.html",left:window.screenX+p.left,top:window.screenY+p.top,width:p.width,height:p.height,onDidOpen:t?.onDidOpen,onWillClose:t?.onWillClose,nonce:(a=this.options)===null||a===void 0?void 0:a.nonce}),g=new E(m,m.onDidClose(()=>{g.dispose()}));return m.open().then(_=>{var w,b,D;if(m.isDisposed)return!1;const T=t?.referenceGroup?t.referenceGroup:e instanceof Pe?e.group:e,C=e.api.location.type,S=T.element.parentElement!==null;let y;if(t?.overridePopoutGridview?y=(w=t.overridePopoutGroup)!==null&&w!==void 0?w:T:S?t?.overridePopoutGroup?y=t.overridePopoutGroup:(y=this.createGroup({id:v}),_&&this._onDidAddGroup.fire(y)):y=T,_===null)return this.handleBlockedPopout({group:y,referenceGroup:T,options:t,popoutWindowDisposable:g}),!1;const G=document.createElement("div");G.className="dv-overlay-render-container";const O=new di(G,this);y.model.renderContainer=O;const R=(b=t?.overridePopoutGridview)!==null&&b!==void 0?b:this.createNestedGridview();t?.overridePopoutGridview||R.addView(y,Z.Distribute,[0]),R.element.style.width="100%",R.element.style.height="100%",R.layout(m.window.innerWidth,m.window.innerHeight);let V=!1;const F=()=>{V||(V=!0,R.dispose())};let Y;if(!t?.overridePopoutGroup&&!t?.overridePopoutGridview&&S)if(e instanceof Pe)this.movingLock(()=>{const ie=T.model.removePanel(e);y.model.openPanel(ie)});else switch(this.movingLock(()=>Ze({from:T,to:y})),C){case"grid":T.api.setVisible(!1);break;case"floating":case"popout":Y=(D=this.floatingGroups.find(ie=>ie.group.api.id===e.api.id))===null||D===void 0?void 0:D.overlay.toJSON(),this.removeGroup(T);break}_.classList.add("dv-dockview"),_.style.overflow="hidden",_.appendChild(G),_.appendChild(R.element);const I=document.createElement("div"),L=new ci(I,{disabled:this.rootDropTargetContainer.disabled});_.appendChild(I),y.model.dropTargetContainer=L;const le=new hi(_,m.window);if(l.setPopupService(y.id,le),g.addDisposables(le,N.from(()=>{l.deletePopupService(y.id)})),y.model.location={type:"popout",getWindow:()=>m.window,popoutUrl:u},t?.overridePopoutGridview){const ie=this.groups.filter(me=>R.element.contains(me.element));for(const me of ie)me.model.renderContainer=O,me.model.dropTargetContainer=L,me.model.location={type:"popout",getWindow:()=>m.window,popoutUrl:u}}S&&e.api.location.type==="grid"&&e.api.setVisible(!1),this.doSetGroupAndPanelActive(y);const ye=l.observeGridviewSize(m,R,O);ye&&g.addDisposables(ye),g.addDisposables(y.api.onDidActiveChange(ie=>{var me;ie.isActive&&((me=m.window)===null||me===void 0||me.focus())}),y.api.onWillFocus(()=>{var ie;(ie=m.window)===null||ie===void 0||ie.focus()}));const jt={},Rn=S&&T&&this.getPanel(T.id),je={window:m,popoutGroup:y,gridview:R,overlayRenderContainer:O,dropTargetContainer:L,getWindow:()=>m.window,popoutUrl:u,referenceGroup:Rn?T.id:void 0,disposable:{dispose:()=>(g.dispose(),jt.returnedGroup)}},Yt=Ks(m.window);return g.addDisposables(Yt,qs(m.window,()=>{this._onDidPopoutGroupSizeChange.fire({width:m.window.innerWidth,height:m.window.innerHeight,group:y})}),Yt.event(()=>{this._onDidPopoutGroupPositionChange.fire({screenX:m.window.screenX,screenY:m.window.screenX,group:y})}),P(m.window,"resize",()=>{R.layout(m.window.innerWidth,m.window.innerHeight)}),O,N.from(()=>this.disposePopoutWindow({group:y,referenceGroup:T,popoutGridview:R,isGroupAddedToDom:S,floatingBox:Y,disposePopoutGridview:F,closeResult:jt}))),l.add(je),this._onDidAddPopoutGroup.fire({id:je.popoutGroup.id,group:je.popoutGroup,window:je.getWindow()}),!0}).catch(_=>(console.error("dockview: failed to create popout.",_),!1))}handleBlockedPopout(e){const{group:t,referenceGroup:i,options:n,popoutWindowDisposable:s}=e;if(console.error("dockview: failed to create popout. perhaps you need to allow pop-ups for this website"),s.dispose(),this._onDidOpenPopoutWindowFail.fire(),n?.overridePopoutGridview){const r=n.overridePopoutGridview,a=this.groups.filter(l=>r.element.contains(l.element));for(const l of a)this.movingLock(()=>{r.remove(l),this.redockGroupToMainGrid(l)});r.dispose(),i&&!i.api.isVisible&&i.api.setVisible(!0);return}t===i?this.gridview.element.contains(t.element)||(this.movingLock(()=>this.doAddGroup(t,[0])),t.model.location={type:"grid"}):(this.movingLock(()=>Ze({from:t,to:i})),t.model.size===0&&this._groups.has(t.id)&&(t.dispose(),this._groups.delete(t.id),this._onDidRemoveGroup.fire(t))),i.api.isVisible||i.api.setVisible(!0)}redockGroupToMainGrid(e){e.model.renderContainer=this.overlayRenderContainer,e.model.dropTargetContainer=this.rootDropTargetContainer,e.model.location={type:"grid"},this.doAddGroup(e,[0])}disposePopoutWindow(e){var t;const{group:i,referenceGroup:n,popoutGridview:s,isGroupAddedToDom:r,floatingBox:a,disposePopoutGridview:l,closeResult:h}=e;if(this.isDisposed){l();return}const d=!!(!((t=this._popoutWindowService)===null||t===void 0)&&t.entries.find(u=>u.gridview===s)),c=this.groups.filter(u=>s.element.contains(u.element)),p=c.includes(i),v=p&&c.length===1;if(d)for(const u of c)u!==i&&this.movingLock(()=>{this.doRemoveGroup(u,{skipDispose:!0,skipActive:!0,skipPopoutReturn:!0}),this.redockGroupToMainGrid(u)});if(p&&r&&this.getPanel(n.id))this.movingLock(()=>Ze({from:i,to:n})),n.api.isVisible||n.api.setVisible(!0),this.getPanel(i.id)&&this.doRemoveGroup(i,{skipPopoutAssociated:!0});else if(p&&this.getPanel(i.id)){if(i.model.renderContainer=this.overlayRenderContainer,i.model.dropTargetContainer=this.rootDropTargetContainer,h.returnedGroup=i,!d){l();return}a&&v?this.addFloatingGroup(i,{height:a.height,width:a.width,position:a}):(this.doRemoveGroup(i,{skipDispose:!0,skipActive:!0,skipPopoutReturn:!0}),i.model.location={type:"grid"},this.movingLock(()=>{this.doAddGroup(i,[0])})),this.doSetGroupAndPanelActive(i)}l()}addFloatingGroup(e,t){this.mutation("float",()=>this._doAddFloatingGroup(e,t))}_doAddFloatingGroup(e,t){var i;if(!Se(this._floatingGroupService,"FloatingGroup","api.addFloatingGroup")||e instanceof Xe&&e.model.location.type==="edge")return;let s;if(e instanceof Pe)s=this.createGroup(),this._onDidAddGroup.fire(s),this.movingLock(()=>this.removePanel(e,{removeEmptyGroup:!0,skipDispose:!0,skipSetActiveGroup:!0})),this.movingLock(()=>s.model.openPanel(e,{skipSetGroupActive:!0}));else{s=e;const h=(i=this._popoutWindowService)===null||i===void 0?void 0:i.findReferenceGroupId(s),d=h?this.getPanel(h):void 0;typeof t?.skipRemoveGroup=="boolean"&&t.skipRemoveGroup||(d?(this.movingLock(()=>Ze({from:e,to:d})),this.doRemoveGroup(e,{skipPopoutReturn:!0,skipPopoutAssociated:!0}),this.doRemoveGroup(d,{skipDispose:!0}),s=d):this.doRemoveGroup(e,{skipDispose:!0,skipPopoutReturn:!0,skipPopoutAssociated:!1}))}function r(){if(t?.position){const h={};return"left"in t.position?h.left=Math.max(t.position.left,0):"right"in t.position?h.right=Math.max(t.position.right,0):h.left=we.left,"top"in t.position?h.top=Math.max(t.position.top,0):"bottom"in t.position?h.bottom=Math.max(t.position.bottom,0):h.top=we.top,typeof t.width=="number"?h.width=Math.max(t.width,0):h.width=we.width,typeof t.height=="number"?h.height=Math.max(t.height,0):h.height=we.height,h}return{left:typeof t?.x=="number"?Math.max(t.x,0):we.left,top:typeof t?.y=="number"?Math.max(t.y,0):we.top,width:typeof t?.width=="number"?Math.max(t.width,0):we.width,height:typeof t?.height=="number"?Math.max(t.height,0):we.height}}const a=r(),l=this.createNestedGridview();l.addView(s,Z.Distribute,[0]),this.mountFloatingWindow(l,s,[s],a,{dragHandle:t?.dragHandle,inDragMode:t?.inDragMode,skipActiveGroup:t?.skipActiveGroup})}createNestedGridview(e=z.HORIZONTAL){var t,i;return new en(!0,this.options.hideBorders?{separatorBorder:"transparent"}:void 0,e,!1,(i=(t=this.options.theme)===null||t===void 0?void 0:t.gap)!==null&&i!==void 0?i:0)}mountFloatingWindow(e,t,i,n,s){var r,a,l,h,d,c,p,v;const u=Se(this._floatingGroupService,"FloatingGroup","api.addFloatingGroup");if(!u)return;const g=((a=(r=s?.dragHandle)!==null&&r!==void 0?r:this.options.floatingGroupDragHandle)!==null&&a!==void 0?a:"titlebar")==="titlebar"?new hr(this,t):void 0,_=new de(Object.assign(Object.assign({container:(l=this._floatingOverlayHost)!==null&&l!==void 0?l:this.gridview.element,content:e.element,header:g?.element},n),{minimumInViewportWidth:this.options.floatingGroupBounds==="boundedWithinViewport"?void 0:(d=(h=this.options.floatingGroupBounds)===null||h===void 0?void 0:h.minimumWidthWithinViewport)!==null&&d!==void 0?d:ot,minimumInViewportHeight:this.options.floatingGroupBounds==="boundedWithinViewport"?void 0:(p=(c=this.options.floatingGroupBounds)===null||c===void 0?void 0:c.minimumHeightWithinViewport)!==null&&p!==void 0?p:ot,transformDragPosition:this.options.transformFloatingGroupDrag?D=>this.options.transformFloatingGroupDrag({group:t,proposed:D.proposed,container:D.container,others:D.others}):void 0,getSiblingBoxes:()=>this._gatherFloatingGroupBoxes(t)})),w=(v=g?.element)!==null&&v!==void 0?v:t.element.querySelector(".dv-void-container");if(!w)throw new Error("dockview: failed to find drag handle");_.setupDrag(w,{inDragMode:typeof s?.inDragMode=="boolean"?s.inDragMode:!1});const b=u.add(t,_,e);g&&(b.setTitleBar(g),b.addDisposables(g,N.from(()=>b.setTitleBar(void 0)),g.onDragStart(D=>{this._onWillDragGroup.fire({nativeEvent:D,group:b.group})})));for(const D of i)D.model.location={type:"floating"};s?.skipActiveGroup||this.doSetGroupAndPanelActive(t)}orthogonalize(e,t){switch(this.gridview.normalize(),e){case"top":case"bottom":this.gridview.orientation===z.HORIZONTAL&&this.gridview.insertOrthogonalSplitviewAtRoot();break;case"left":case"right":this.gridview.orientation===z.VERTICAL&&this.gridview.insertOrthogonalSplitviewAtRoot();break}switch(e){case"top":case"left":case"center":return this.createGroupAtLocation([0],void 0,t);case"bottom":case"right":return this.createGroupAtLocation([this.gridview.length],void 0,t);default:throw new Error(`dockview: unsupported position ${e}`)}}updateOptions(e){var t,i,n,s,r;super.updateOptions(e),(t=this._floatingGroupService)===null||t===void 0||t.updateBounds(e),(i=this._rootDropTargetService)===null||i===void 0||i.setOptions(e);const a=this.options.disableDnd,l=this.options.dndStrategy;this._options=Object.assign(Object.assign({},this.options),e);const h=this.options.disableDnd,d=this.options.dndStrategy;if((a!==h||l!==d)&&this.updateDragAndDropState(),"theme"in e&&this.updateTheme(),("createRightHeaderActionComponent"in e||"createLeftHeaderActionComponent"in e||"createPrefixHeaderActionComponent"in e)&&((n=this.headerActionsService)===null||n===void 0||n.refreshAll()),"createWatermarkComponent"in e){(s=this._watermarkService)===null||s===void 0||s.refresh();for(const c of this.groups)c.model.refreshWatermark()}if("tabGroupColors"in e||"tabGroupAccent"in e){this._tabGroupColorPalette.setEntries((r=this._options.tabGroupColors)!==null&&r!==void 0?r:Nt),this._tabGroupColorPalette.enabled=this._options.tabGroupAccent!=="off";for(const c of this.groups)c.model.refreshTabGroupAccent()}this._onDidOptionsChange.fire(),this._layoutFromShell(this.gridview.width,this.gridview.height)}layout(e,t,i){var n,s;this._shellManager&&!this._inShellLayout?this._shellManager.layout(e,t):super.layout(e,t,i),this._syncFloatingOverlayHost(),(s=(n=this._moduleRegistry)===null||n===void 0?void 0:n.services.floatingGroupService)===null||s===void 0||s.constrainBounds()}_syncFloatingOverlayHost(){if(!this._floatingOverlayHost||!this._shellManager)return;const e=this._shellManager.element.getBoundingClientRect(),t=this.element.getBoundingClientRect(),i=this._floatingOverlayHost;i.style.left=`${t.left-e.left}px`,i.style.top=`${t.top-e.top}px`,i.style.width=`${t.width}px`,i.style.height=`${t.height}px`}_layoutFromShell(e,t){this._inShellLayout=!0,this.layout(e,t,!0),this._inShellLayout=!1}forceRelayout(){this._shellManager?this._layoutFromShell(this.width,this.height):super.forceRelayout()}addEdgeGroup(e,t){const i=Se(this._edgeGroupService,"EdgeGroup","api.addEdgeGroup");if(!i)throw new Error("dockview: EdgeGroup module is not registered");if(i.has(e))throw new Error(`dockview: edge group already exists at position '${e}'`);return this.mutation("add",()=>{const n=this.createGroup({id:t.id});n.model.location={type:"edge",position:e},n.model.headerPosition=e;const s=n.model.onDidRemovePanel(()=>{n.model.isEmpty&&this.setEdgeGroupCollapsed(n,!0)});return i.add(e,n,s),this._onDidAddGroup.fire(n),this._shellManager.addEdgeView(e,t,n),n.api})}getEdgeGroup(e){var t,i;return(i=(t=this._edgeGroupService)===null||t===void 0?void 0:t.get(e))===null||i===void 0?void 0:i.api}setEdgeGroupVisible(e,t){this._shellManager.setEdgeGroupVisible(e,t)}isEdgeGroupVisible(e){return this._shellManager.isEdgeGroupVisible(e)}removeEdgeGroup(e){const t=Se(this._edgeGroupService,"EdgeGroup","api.removeEdgeGroup");if(!t)return;const i=t.get(e);if(!i)throw new Error(`dockview: no edge group exists at position '${e}'`);this.mutation("remove",()=>{for(const n of[...i.panels])this.removePanel(n,{removeEmptyGroup:!1,skipDispose:!1});this._shellManager.removeEdgeView(e),t.remove(e),i.dispose(),this._groups.delete(i.id),this._onDidRemoveGroup.fire(i)})}setEdgeGroupCollapsed(e,t){var i;const n=(i=this._edgeGroupService)===null||i===void 0?void 0:i.findPositionOf(e);n&&this._shellManager.isEdgeGroupCollapsed(n)!==t&&(this._shellManager.setEdgeGroupCollapsed(n,t),e.api._onDidCollapsedChange.fire({isCollapsed:t}))}isEdgeGroupCollapsed(e){var t;const i=(t=this._edgeGroupService)===null||t===void 0?void 0:t.findPositionOf(e);return i?this._shellManager.isEdgeGroupCollapsed(i):!1}updateDragAndDropState(){for(const e of this.groups)e.model.updateDragAndDropState()}focus(){var e;(e=this.activeGroup)===null||e===void 0||e.focus()}getGroupPanel(e){return this.panels.find(t=>t.id===e)}setActivePanel(e){e.group.model.openPanel(e),this.doSetGroupAndPanelActive(e.group)}moveToNext(e={}){var t;if(!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}if(e.includePanel&&e.group&&e.group.activePanel!==e.group.panels[e.group.panels.length-1]){e.group.model.moveToNext({suppressRoll:!0});return}const i=H(e.group.element),n=(t=this.gridview.next(i))===null||t===void 0?void 0:t.view;this.doSetGroupAndPanelActive(n)}moveToPrevious(e={}){var t;if(!e.group){if(!this.activeGroup)return;e.group=this.activeGroup}if(e.includePanel&&e.group&&e.group.activePanel!==e.group.panels[0]){e.group.model.moveToPrevious({suppressRoll:!0});return}const i=H(e.group.element),n=(t=this.gridview.previous(i))===null||t===void 0?void 0:t.view;n&&this.doSetGroupAndPanelActive(n)}toJSON(){var e,t,i,n,s,r,a,l;const h=this.gridview.serialize(),d=this.panels.reduce((m,g)=>(m[g.id]=g.toJSON(),m),{}),c=(t=(e=this._floatingGroupService)===null||e===void 0?void 0:e.serialize())!==null&&t!==void 0?t:[],p=(n=(i=this._popoutWindowService)===null||i===void 0?void 0:i.serialize())!==null&&n!==void 0?n:[],v={grid:h,panels:d,activeGroup:(s=this.activeGroup)===null||s===void 0?void 0:s.id};c.length>0&&(v.floatingGroups=c),p.length>0&&(v.popoutGroups=p);const u=(a=(r=this._edgeGroupService)===null||r===void 0?void 0:r.entries())!==null&&a!==void 0?a:[];if(!((l=this._edgeGroupService)===null||l===void 0)&&l.hasAny()){const m=this._shellManager.toJSON();for(const[g,_]of u){const w=m[g];w&&(w.group=_.toJSON())}v.edgeGroups=m}return v}fromJSON(e,t){this.mutation("load",()=>this._doFromJSON(e,t))}_doFromJSON(e,t){var i,n,s,r,a,l,h;(i=this._popoutWindowService)===null||i===void 0||i.cancelPendingRestorations();const d=new Map;let c;if(t?.reuseExistingPanels){c=this.createGroup(),this._groups.delete(c.api.id);const m=Object.keys(e.panels);for(const g of this.panels)m.includes(g.api.id)&&d.set(g.api.id,g);this.movingLock(()=>{Array.from(d.values()).forEach(g=>{this.moveGroupOrPanel({from:{groupId:g.api.group.api.id,panelId:g.api.id},to:{group:c,position:"center"},keepEmptyGroups:!0})})})}if(this.clear(),typeof e!="object"||e===null)throw new Error("dockview: serialized layout must be a non-null object");const{grid:p,panels:v,activeGroup:u}=e;if(p.root.type!=="branch"||!Array.isArray(p.root.data))throw new Error("dockview: root must be of type branch");try{const m=this.width,g=this.height,_=b=>{const{id:D,locked:T,hideHeader:C,headerPosition:S,views:y,activeView:G}=b;if(typeof D!="string")throw new Error("dockview: group id must be of type string");const O=this.createGroup({id:D,locked:!!T,hideHeader:!!C,headerPosition:S});this._onDidAddGroup.fire(O);const R=[];for(const V of y){const F=d.get(V);if(c&&F)this.movingLock(()=>{c.model.removePanel(F)}),R.push(F),F.updateFromStateModel(v[V]);else{const Y=this._deserializer.fromJSON(v[V],O);R.push(Y)}}for(let V=0;V<y.length;V++){const F=R[V],Y=typeof G=="string"&&G===F.id;d.has(F.api.id)?this.movingLock(()=>{O.model.openPanel(F,{skipSetActive:!Y,skipSetGroupActive:!0})}):O.model.openPanel(F,{skipSetActive:!Y,skipSetGroupActive:!0})}return b.tabGroups&&b.tabGroups.length>0&&O.model.restoreTabGroups(b.tabGroups),!O.activePanel&&O.panels.length>0&&O.model.openPanel(O.panels[O.panels.length-1],{skipSetGroupActive:!0}),O};this.gridview.deserialize(p,{fromJSON:b=>_(b.data)}),this._layoutFromShell(m,g),e.edgeGroups&&this.deserializeEdgeGroups(e.edgeGroups,v),this.deserializeFloatingWindows((n=e.floatingGroups)!==null&&n!==void 0?n:[],_);const w=this.deserializePopoutWindows((s=e.popoutGroups)!==null&&s!==void 0?s:[],_);if((r=this._popoutWindowService)===null||r===void 0||r.finishRestoration(w),(a=this._floatingGroupService)===null||a===void 0||a.constrainBounds(),typeof u=="string"){const b=this.getPanel(u);b&&this.doSetGroupAndPanelActive(b)}(l=this._watermarkService)===null||l===void 0||l.update()}catch(m){console.error("dockview: failed to deserialize layout. Reverting changes",m);for(const g of this.groups)for(const _ of g.panels)this.removePanel(_,{removeEmptyGroup:!1,skipDispose:!1});for(const g of this.groups)g.dispose(),this._groups.delete(g.id),this._onDidRemoveGroup.fire(g);throw(h=this._floatingGroupService)===null||h===void 0||h.disposeAll(),this.clear(),m}this.debouncedUpdateAllPositions(),this._onDidLayoutFromJSON.fire()}deserializeNestedGridview(e,t){const i=this.createNestedGridview(e.orientation),n=[];return i.deserialize(e,{fromJSON:s=>{const r=t(s.data);return n.push(r),r}}),{gridview:i,members:n}}deserializeEdgeGroups(e,t){var i;const n=Se(this._edgeGroupService,"EdgeGroup","fromJSON edge restoration");if(n){for(const s of["top","bottom","left","right"]){const r=e[s];if(r&&!n.has(s)){const a=r.group,l=(i=a?.id)!==null&&i!==void 0?i:`${s}-group`;this.addEdgeGroup(s,{id:l})}}for(const[s,r]of n.entries()){const a=e[s],l=a?.group;if(l){const{views:h,activeView:d}=l,c=[];for(const p of h)if(t[p]){const v=this._deserializer.fromJSON(t[p],r);c.push(v)}for(let p=0;p<c.length;p++){const v=c[p],u=d===v.id;r.model.openPanel(v,{skipSetActive:!u,skipSetGroupActive:!0})}l.tabGroups&&l.tabGroups.length>0&&r.model.restoreTabGroups(l.tabGroups),!r.activePanel&&r.panels.length>0&&r.model.openPanel(r.panels[r.panels.length-1],{skipSetGroupActive:!0})}}this._shellManager.fromJSON(e)}}deserializeFloatingWindows(e,t){for(const i of e){const{data:n,grid:s,position:r}=i;if(s){const{gridview:a,members:l}=this.deserializeNestedGridview(s,t);if(l.length===0)continue;this.mountFloatingWindow(a,l[0],l,r,{inDragMode:!1})}else if(n){const a=t(n);this.addFloatingGroup(a,{position:r,width:r.width,height:r.height,skipRemoveGroup:!0,inDragMode:!1})}}}deserializePopoutWindows(e,t){const i=e.length>0?Se(this._popoutWindowService,"PopoutWindow","fromJSON popout restoration"):this._popoutWindowService;return i?e.flatMap((n,s)=>{const{data:r,grid:a,position:l,gridReferenceGroup:h,url:d}=n;let c,p=[];if(a){const u=this.deserializeNestedGridview(a,t);if(c=u.gridview,p=u.members,p.length===0)return c.dispose(),[]}const v=a?p[0]:t(r);return i.scheduleRestoration(s*gr,()=>{this.addPopoutGroup(v,{position:l??void 0,overridePopoutGroup:h?v:void 0,overridePopoutGridview:c,referenceGroup:h?this.getPanel(h):void 0,popoutUrl:d})},()=>{for(const u of p.length>0?p:[v])if(!this.isDisposed&&this._groups.has(u.id)&&u.element.parentElement===null){for(const m of[...u.panels])this.removePanel(m,{removeEmptyGroup:!1});u.dispose(),this._groups.delete(u.id),this._onDidRemoveGroup.fire(u)}})}):[]}clear(){this.mutation("clear",()=>this._doClear())}_doClear(){var e;const t=Array.from(this._groups.values()).map(n=>n.value),i=!!this.activeGroup;for(const n of t){if(!((e=this._edgeGroupService)===null||e===void 0)&&e.includes(n)){const s=[...n.panels];for(const r of s)this.removePanel(r,{removeEmptyGroup:!1});continue}this.removeGroup(n,{skipActive:!0})}i&&this.doSetGroupAndPanelActive(void 0),this.gridview.clear()}closeAllGroups(){this.mutation("remove",()=>{for(const e of this._groups.entries()){const[t,i]=e;i.value.model.closeAllPanels()}})}addPanel(e){return this.mutation("add",()=>this._doAddPanel(e))}_doAddPanel(e){var t,i;if(this.panels.find(l=>l.id===e.id))throw new Error(`dockview: panel with id ${e.id} already exists`);let n;if(e.position&&e.floating)throw new Error("dockview: you can only provide one of: position, floating as arguments to .addPanel(...)");const s={width:e.initialWidth,height:e.initialHeight};let r;if(e.position)if(Zo(e.position)){const l=typeof e.position.referencePanel=="string"?this.getGroupPanel(e.position.referencePanel):e.position.referencePanel;if(r=e.position.index,!l)throw new Error(`dockview: referencePanel '${e.position.referencePanel}' does not exist`);n=this.findGroup(l)}else if(Ko(e.position)){if(n=typeof e.position.referenceGroup=="string"?(t=this._groups.get(e.position.referenceGroup))===null||t===void 0?void 0:t.value:e.position.referenceGroup,r=e.position.index,!n)throw new Error(`dockview: referenceGroup '${e.position.referenceGroup}' does not exist`)}else{const l=this.orthogonalize(ii(e.position.direction)),h=this.createPanel(e,l);return l.model.openPanel(h,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:r}),e.inactive||this.doSetGroupAndPanelActive(l),l.api.setSize({height:s?.height,width:s?.width}),h}else n=this.activeGroup;let a;if(n){const l=st(((i=e.position)===null||i===void 0?void 0:i.direction)||"within");if(e.floating){const h=this.createGroup();this._onDidAddGroup.fire(h);const d=typeof e.floating=="object"&&e.floating!==null?e.floating:{};this.addFloatingGroup(h,Object.assign(Object.assign({},d),{inDragMode:!1,skipRemoveGroup:!0,skipActiveGroup:!0})),a=this.createPanel(e,h),h.model.openPanel(a,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:r})}else if(n.api.location.type==="floating"||n.api.location.type==="edge"||l==="center")a=this.createPanel(e,n),n.model.openPanel(a,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:r}),n.api.setSize({width:s?.width,height:s?.height}),e.inactive||this.doSetGroupAndPanelActive(n);else{const h=H(n.element),d=q(this.gridview.orientation,h,l),c=this.createGroupAtLocation(d,this.orientationAtLocation(d)===z.VERTICAL?s?.height:s?.width);a=this.createPanel(e,c),c.model.openPanel(a,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:r}),e.inactive||this.doSetGroupAndPanelActive(c)}}else if(e.floating){const l=this.createGroup();this._onDidAddGroup.fire(l);const h=typeof e.floating=="object"&&e.floating!==null?e.floating:{};this.addFloatingGroup(l,Object.assign(Object.assign({},h),{inDragMode:!1,skipRemoveGroup:!0,skipActiveGroup:!0})),a=this.createPanel(e,l),l.model.openPanel(a,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:r})}else{const l=this.createGroupAtLocation([0],this.gridview.orientation===z.VERTICAL?s?.height:s?.width);a=this.createPanel(e,l),l.model.openPanel(a,{skipSetActive:e.inactive,skipSetGroupActive:e.inactive,index:r}),e.inactive||this.doSetGroupAndPanelActive(l)}return a}removePanel(e,t={removeEmptyGroup:!0}){this.mutation("remove",()=>this._doRemovePanel(e,t))}_doRemovePanel(e,t={removeEmptyGroup:!0}){const i=e.group;if(!i)throw new Error(`dockview: cannot remove panel ${e.id}. it's missing a group.`);i.model.removePanel(e,{skipSetActiveGroup:t.skipSetActiveGroup}),t.skipDispose||(e.group.model.renderContainer.detatch(e),e.dispose()),i.size===0&&t.removeEmptyGroup&&this.removeGroup(i,{skipActive:t.skipSetActiveGroup})}createWatermarkComponent(){return this.options.createWatermarkComponent?this.options.createWatermarkComponent():new lr}addGroup(e){return this.mutation("add",()=>this._doAddGroup(e))}_doAddGroup(e){var t;if(e){let i;if(qo(e)){const h=typeof e.referencePanel=="string"?this.panels.find(d=>d.id===e.referencePanel):e.referencePanel;if(!h)throw new Error(`dockview: reference panel ${e.referencePanel} does not exist`);if(i=this.findGroup(h),!i)throw new Error(`dockview: reference group for reference panel ${e.referencePanel} does not exist`)}else if(Qo(e)){if(i=typeof e.referenceGroup=="string"?(t=this._groups.get(e.referenceGroup))===null||t===void 0?void 0:t.value:e.referenceGroup,!i)throw new Error(`dockview: reference group ${e.referenceGroup} does not exist`)}else{const h=this.orthogonalize(ii(e.direction),e);return e.skipSetActive||this.doSetGroupAndPanelActive(h),h}const n=st(e.direction||"within"),s=H(i.element),r=q(this.gridview.orientation,s,n),a=this.createGroup(e),l=this.getLocationOrientation(r)===z.VERTICAL?e.initialHeight:e.initialWidth;return this.doAddGroup(a,r,l),e.skipSetActive||this.doSetGroupAndPanelActive(a),a}else{const i=this.createGroup(e);return this.doAddGroup(i),this.doSetGroupAndPanelActive(i),i}}getLocationOrientation(e){return e.length%2==0&&this.gridview.orientation===z.HORIZONTAL?z.HORIZONTAL:z.VERTICAL}removeGroup(e,t){this.mutation("remove",()=>this.doRemoveGroup(e,t))}detachFromNestedWindow(e){var t,i;const n=(t=this._floatingGroupService)===null||t===void 0?void 0:t.findByGroup(e);if(n){const r=this.nestedWindowMembers(e);return r.length<=1?!1:(n.gridview.remove(e),n.group===e&&n.setAnchorGroup(r.find(a=>a!==e)),!0)}const s=(i=this._popoutWindowService)===null||i===void 0?void 0:i.findByGroup(e);if(s){const r=this.nestedWindowMembers(e);return r.length<=1?!1:(s.gridview.remove(e),s.popoutGroup===e&&(s.popoutGroup=r.find(a=>a!==e)),!0)}return!1}disposeGroupRecord(e){e.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e)}activateFallbackGroupIfRemoved(e,t){if(!t&&this._activeGroup===e){const i=Array.from(this._groups.values());this.doSetGroupAndPanelActive(i.length>0?i[0].value:void 0)}}doRemoveGroup(e,t){var i,n,s,r,a;if(!((i=this._edgeGroupService)===null||i===void 0)&&i.includes(e))return e;const l=[...e.panels];if(!t?.skipDispose)for(const c of l)this.removePanel(c,{removeEmptyGroup:!1,skipDispose:(n=t?.skipDispose)!==null&&n!==void 0?n:!1});const h=this.activePanel;if(e.api.location.type==="floating"){const c=(s=this._floatingGroupService)===null||s===void 0?void 0:s.findByGroup(e);if(!c)throw new Error("dockview: failed to find floating group");return this.detachFromNestedWindow(e)?(t?.skipDispose?e.model.location={type:"grid"}:this.disposeGroupRecord(e),this.activateFallbackGroupIfRemoved(e,t?.skipActive),e):(t?.skipDispose||this.disposeGroupRecord(e),c.dispose(),this.activateFallbackGroupIfRemoved(e,t?.skipActive),e)}if(e.api.location.type==="popout"){const c=(r=this._popoutWindowService)===null||r===void 0?void 0:r.findByGroup(e);if(!c)throw new Error("dockview: failed to find popout group");if(this.detachFromNestedWindow(e))return t?.skipDispose?e.model.location={type:"grid"}:this.disposeGroupRecord(e),this.activateFallbackGroupIfRemoved(e,t?.skipActive),e;if(!t?.skipDispose){if(!t?.skipPopoutAssociated){const v=c.referenceGroup?this.getPanel(c.referenceGroup):void 0;v&&v.panels.length===0&&this.removeGroup(v)}c.popoutGroup.dispose(),this._groups.delete(e.id),this._onDidRemoveGroup.fire(e)}(a=this._popoutWindowService)===null||a===void 0||a.remove(c);const p=c.disposable.dispose();return!t?.skipPopoutReturn&&p&&(this.doAddGroup(p,[0]),this.doSetGroupAndPanelActive(p)),this.activateFallbackGroupIfRemoved(e,t?.skipActive),c.popoutGroup}if(!this.gridview.element.contains(e.element)){if(!t?.skipDispose){const c=this._groups.get(e.id);c?.disposable.dispose(),this.disposeGroupRecord(e)}return this.activateFallbackGroupIfRemoved(e,t?.skipActive),e}const d=super.doRemoveGroup(e,t);return t?.skipActive||this.activePanel!==h&&this.fireActivePanelChange(this.activePanel),d}debouncedUpdateAllPositions(){this._updatePositionsFrameId!==void 0&&cancelAnimationFrame(this._updatePositionsFrameId),this._updatePositionsFrameId=requestAnimationFrame(()=>{var e,t;this._updatePositionsFrameId=void 0,this.overlayRenderContainer.updateAllPositions();for(const i of(t=(e=this._popoutWindowService)===null||e===void 0?void 0:e.entries)!==null&&t!==void 0?t:[])i.overlayRenderContainer.updateAllPositions()})}movingLock(e){const t=this._moving;try{return this._moving=!0,e()}finally{this._moving=t}}mutation(e,t){const i=this._mutationDepth===0,n=this._origin;i&&this._onWillMutateLayout.fire({kind:e,origin:n}),this._mutationDepth++;try{return t()}finally{this._mutationDepth--,i&&this._onDidMutateLayout.fire({kind:e,origin:n})}}currentOrigin(){return this._origin}withOrigin(e,t){if(this._originDepth>0||this._mutationDepth>0)return t();const i=this._origin;this._origin=e,this._originDepth++;try{return t()}finally{this._originDepth--,this._origin=i}}fireActivePanelChange(e){this._onDidActivePanelChange.fire({panel:e,origin:this._origin})}moveGroupOrPanel(e){this.mutation("move",()=>this._doMoveGroupOrPanel(e))}_doMoveGroupOrPanel(e){var t,i;const n=e.to.group,s=e.from.groupId,r=e.from.panelId,a=e.to.position,l=e.to.index,h=s?(t=this._groups.get(s))===null||t===void 0?void 0:t.value:void 0;if(!h)throw new Error(`dockview: Failed to find group id ${s}`);if(r===void 0){e.from.tabGroupId?this.moveTabGroupToGroup({sourceGroup:h,tabGroupId:e.from.tabGroupId,destinationGroup:n,destinationTarget:a,destinationIndex:l,skipSetActive:e.skipSetActive,keepEmptyGroups:e.keepEmptyGroups}):this.moveGroup({from:{group:h},to:{group:n,position:a},skipSetActive:e.skipSetActive});return}if(!a||a==="center"){const d=this.movingLock(()=>h.model.removePanel(r,{skipSetActive:!1,skipSetActiveGroup:!0}));if(!d)throw new Error(`dockview: No panel with id ${r}`);!e.keepEmptyGroups&&h.model.size===0&&this.doRemoveGroup(h,{skipActive:!0});const c=n.model.size===0;this.movingLock(()=>{var p;return n.model.openPanel(d,{index:l,skipSetActive:((p=e.skipSetActive)!==null&&p!==void 0?p:!1)&&!c,skipSetGroupActive:!0})}),e.skipSetActive||this.doSetGroupAndPanelActive(n),this._onDidMovePanel.fire({panel:d,from:h})}else{const d=this.getGridviewForGroup(n),c=H(n.element),p=q(d.orientation,c,a);if(h.size<2){const[v,u]=ge(p);if(h.api.location.type==="grid"&&d===this.gridview){const w=H(h.element),[b,D]=ge(w);if(Ki(b,v)){this.gridview.moveView(b,D,u),this._onDidMovePanel.fire({panel:this.getGroupPanel(r),from:h});return}}if(h.api.location.type==="popout"&&this.nestedWindowMembers(h).length<=1){const w=(i=this._popoutWindowService)===null||i===void 0?void 0:i.findByGroup(h);if(!w)return;const b=this.movingLock(()=>w.popoutGroup.model.removePanel(w.popoutGroup.panels[0],{skipSetActive:!0,skipSetActiveGroup:!0}));this.doRemoveGroup(h,{skipActive:!0});const D=q(d.orientation,H(n.element),a),T=this.createGroupAtLocation(D,void 0,void 0,d);this.movingLock(()=>T.model.openPanel(b,{skipSetActive:!0})),this.doSetGroupAndPanelActive(T),this._onDidMovePanel.fire({panel:this.getGroupPanel(r),from:h});return}if(h.api.location.type==="edge"){const w=this.movingLock(()=>h.model.removePanel(r,{skipSetActive:!1,skipSetActiveGroup:!0}));if(!w)throw new Error(`dockview: No panel with id ${r}`);const b=this.createGroupAtLocation(p,void 0,void 0,d);this.movingLock(()=>b.model.openPanel(w,{skipSetGroupActive:!0})),this.doSetGroupAndPanelActive(b),this._onDidMovePanel.fire({panel:w,from:h});return}const m=this.movingLock(()=>this.doRemoveGroup(h,{skipActive:!0,skipDispose:!0})),g=H(n.element),_=q(d.orientation,g,a);this.movingLock(()=>this.doAddGroup(m,_,void 0,d)),this.setGroupLocationForRoot(m,d),this.doSetGroupAndPanelActive(m),this._onDidMovePanel.fire({panel:this.getGroupPanel(r),from:h})}else{const v=this.movingLock(()=>h.model.removePanel(r,{skipSetActive:!1,skipSetActiveGroup:!0}));if(!v)throw new Error(`dockview: No panel with id ${r}`);const u=q(d.orientation,c,a),m=this.createGroupAtLocation(u,void 0,void 0,d);this.movingLock(()=>m.model.openPanel(v,{skipSetGroupActive:!0})),this.doSetGroupAndPanelActive(m),this._onDidMovePanel.fire({panel:v,from:h})}}}moveTabGroupToGroup(e){const{sourceGroup:t,tabGroupId:i,destinationGroup:n,destinationTarget:s,destinationIndex:r}=e,a=t.model.getTabGroups().find(_=>_.id===i);if(!a||a.panelIds.length===0)return;const l=a.label,h=a.color,d=a.collapsed,c=a.componentParams,p=[...a.panelIds],v=s&&s!=="center"?H(n.element):void 0,u=this.movingLock(()=>p.map(_=>t.model.removePanel(_,{skipSetActive:!1,skipSetActiveGroup:!0})).filter(_=>_!==void 0));if(u.length===0)return;const m=_=>{this.movingLock(()=>{for(const b of u)_.model.openPanel(b,{index:r,skipSetActive:!0,skipSetGroupActive:!0})});const w=_.model.createTabGroup({label:l,color:h,collapsed:d,componentParams:c});for(const b of u)_.model.addPanelToTabGroup(w.id,b.id);e.skipSetActive||this.doSetGroupAndPanelActive(_);for(const b of u)this._onDidMovePanel.fire({panel:b,from:t})};let g;if(!s||s==="center"||!v)g=n;else{const _=q(this.gridview.orientation,v,s);g=this.createGroupAtLocation(_)}!e.keepEmptyGroups&&t.model.size===0&&t!==g&&this.doRemoveGroup(t,{skipActive:!0}),m(g)}moveGroup(e){this.mutation("move",()=>this._doMoveGroup(e))}maximizeGroup(e){this.mutation("maximize",()=>super.maximizeGroup(e))}exitMaximizedGroup(){this.mutation("maximize",()=>super.exitMaximizedGroup())}_doMoveGroup(e){var t,i,n;const s=e.from.group,r=e.to.group,a=e.to.position;let l=s;if(a==="center"){const h=s.activePanel,d=s.model.getTabGroups().map(p=>({label:p.label,color:p.color,collapsed:p.collapsed,componentParams:p.componentParams,panelIds:[...p.panelIds]})),c=this.movingLock(()=>[...s.panels].map(p=>s.model.removePanel(p.id,{skipSetActive:!0})));s?.model.size===0&&this.doRemoveGroup(s,{skipActive:!0}),this.movingLock(()=>{for(const p of c)r.model.openPanel(p,{skipSetActive:p!==h,skipSetGroupActive:!0})});for(const p of d){const v=r.model.createTabGroup({label:p.label,color:p.color,collapsed:p.collapsed,componentParams:p.componentParams});for(const u of p.panelIds)r.model.addPanelToTabGroup(v.id,u)}e.skipSetActive!==!0?this.doSetGroupAndPanelActive(r):this.activePanel||this.doSetGroupAndPanelActive(r)}else{if(s.api.location.type==="edge"){const h=s.activePanel,d=s.model.getTabGroups().map(p=>({label:p.label,color:p.color,collapsed:p.collapsed,componentParams:p.componentParams,panelIds:[...p.panelIds]})),c=this.movingLock(()=>[...s.panels].map(p=>s.model.removePanel(p.id,{skipSetActive:!0})));l=this.createGroup(),this._onDidAddGroup.fire(l),this.movingLock(()=>{for(const p of c)l.model.openPanel(p,{skipSetActive:p!==h,skipSetGroupActive:!0})});for(const p of d){const v=l.model.createTabGroup({label:p.label,color:p.color,collapsed:p.collapsed,componentParams:p.componentParams});for(const u of p.panelIds)l.model.addPanelToTabGroup(v.id,u)}}else switch(s.api.location.type){case"grid":this.gridview.removeView(H(s.element));break;case"floating":{const h=(t=this._floatingGroupService)===null||t===void 0?void 0:t.findByGroup(s);if(!h)throw new Error("dockview: failed to find floating group");this.detachFromNestedWindow(s)||h.dispose();break}case"popout":{const h=(i=this._popoutWindowService)===null||i===void 0?void 0:i.findByGroup(s);if(!h)throw new Error("dockview: failed to find popout group");if(this.detachFromNestedWindow(s))break;if((n=this._popoutWindowService)===null||n===void 0||n.remove(h),h.referenceGroup){const d=this.getPanel(h.referenceGroup);d&&!d.api.isVisible&&this.doRemoveGroup(d,{skipActive:!0})}h.window.dispose();break}}if(r.api.location.type==="grid"||r.api.location.type==="floating"||r.api.location.type==="popout"){const h=this.getGridviewForGroup(r),d=H(r.element),c=q(h.orientation,d,a);let p;switch(h.orientation){case z.VERTICAL:p=d.length%2==0?s.api.width:s.api.height;break;case z.HORIZONTAL:p=d.length%2==0?s.api.height:s.api.width;break}h.addView(l,p,c),this.setGroupLocationForRoot(l,h)}}if(l.panels.forEach(h=>{this._onDidMovePanel.fire({panel:h,from:s})}),this.debouncedUpdateAllPositions(),e.skipSetActive===!1){const h=r??s;this.doSetGroupAndPanelActive(h)}else l!==s&&e.skipSetActive!==!0&&this.doSetGroupAndPanelActive(l)}doSetGroupActive(e){var t;super.doSetGroupActive(e);const i=this.activePanel;!this._moving&&i!==((t=this._onDidActivePanelChange.value)===null||t===void 0?void 0:t.panel)&&this.fireActivePanelChange(i)}doSetGroupAndPanelActive(e){var t;super.doSetGroupActive(e);const i=this.activePanel;e&&this.hasMaximizedGroup()&&!this.isMaximizedGroup(e)&&this.exitMaximizedGroup(),!this._moving&&i!==((t=this._onDidActivePanelChange.value)===null||t===void 0?void 0:t.panel)&&this.fireActivePanelChange(i)}getNextGroupId(){let e=this.nextGroupId.next();for(;this._groups.has(e);)e=this.nextGroupId.next();return e}createGroup(e){e||(e={});let t=e?.id;if(t&&this._groups.has(e.id)&&(console.warn(`dockview: Duplicate group id ${e?.id}. reassigning group id to avoid errors`),t=void 0),!t)for(t=this.nextGroupId.next();this._groups.has(t);)t=this.nextGroupId.next();const i=new Xe(this,t,e);if(i.init({params:{},accessor:this}),!this._groups.has(i.id)){const n=new E(i.model.onTabDragStart(s=>{var r;(r=this._advancedDnDService)===null||r===void 0||r.dispatchWillDragPanel(s)}),i.model.onGroupDragStart(s=>{var r;(r=this._advancedDnDService)===null||r===void 0||r.dispatchWillDragGroup(s)}),i.model.onMove(s=>{const{groupId:r,itemId:a,target:l,index:h,tabGroupId:d}=s;this.moveGroupOrPanel({from:{groupId:r,panelId:a,tabGroupId:d},to:{group:i,position:l,index:h}})}),i.model.onDidDrop(s=>{this._onDidDrop.fire(s)}),i.model.onWillDrop(s=>{var r;(r=this._advancedDnDService)===null||r===void 0||r.dispatchWillDrop(s)}),i.model.onWillShowOverlay(s=>{var r;if(this.options.disableDnd){s.preventDefault();return}(r=this._advancedDnDService)===null||r===void 0||r.dispatchWillShowOverlay(s)}),i.model.onUnhandledDragOver(s=>{this._onUnhandledDragOver.fire(s)}),i.model.onDidAddPanel(s=>{this._moving||this._onDidAddPanel.fire(s.panel)}),i.model.onDidRemovePanel(s=>{this._moving||this._onDidRemovePanel.fire(s.panel)}),i.model.onDidActivePanelChange(s=>{var r;this._moving||s.panel===this.activePanel&&((r=this._onDidActivePanelChange.value)===null||r===void 0?void 0:r.panel)!==s.panel&&this.fireActivePanelChange(s.panel)}),ee.any(i.model.onDidPanelTitleChange,i.model.onDidPanelParametersChange)(()=>{this._bufferOnDidLayoutChange.fire()}));this._groups.set(i.id,{value:i,disposable:n})}return i.initialize(),i}createPanel(e,t){var i,n,s;const r=e.component,a=(i=e.tabComponent)!==null&&i!==void 0?i:this.options.defaultTabComponent,l=new Sn(this,e.id,r,a),h=new Pe(e.id,r,a,this,this._api,t,l,{renderer:e.renderer,minimumWidth:e.minimumWidth,minimumHeight:e.minimumHeight,maximumWidth:e.maximumWidth,maximumHeight:e.maximumHeight});return h.init({title:(n=e.title)!==null&&n!==void 0?n:e.id,params:(s=e?.params)!==null&&s!==void 0?s:{}}),h}createGroupAtLocation(e,t,i,n=this.gridview){const s=this.createGroup(i);return this.doAddGroup(s,e,t,n),this.setGroupLocationForRoot(s,n),s}setGroupLocationForRoot(e,t){var i;const n=(i=this._popoutWindowService)===null||i===void 0?void 0:i.entries.find(s=>s.gridview===t);if(n){e.model.renderContainer!==n.overlayRenderContainer&&(e.model.renderContainer=n.overlayRenderContainer),e.model.dropTargetContainer=n.dropTargetContainer,e.model.location={type:"popout",getWindow:n.getWindow,popoutUrl:n.popoutUrl};return}e.model.renderContainer!==this.overlayRenderContainer&&(e.model.renderContainer=this.overlayRenderContainer),e.model.dropTargetContainer=this.rootDropTargetContainer,e.model.location=t===this.gridview?{type:"grid"}:{type:"floating"}}getGridviewForGroup(e){var t,i;const n=(t=this._floatingGroupService)===null||t===void 0?void 0:t.findByGroup(e);if(n)return n.gridview;const s=(i=this._popoutWindowService)===null||i===void 0?void 0:i.findByGroup(e);return s?s.gridview:this.gridview}nestedWindowMembers(e){const t=this.getGridviewForGroup(e);return t===this.gridview?[]:this.groups.filter(i=>t.element.contains(i.element))}findGroup(e){var t;return(t=Array.from(this._groups.values()).find(i=>i.value.model.containsPanel(e)))===null||t===void 0?void 0:t.value}orientationAtLocation(e){const t=this.gridview.orientation;return e.length%2==1?t:he(t)}updateTheme(){var e,t,i,n,s,r,a,l,h,d;const c=(e=this._options.theme)!==null&&e!==void 0?e:or;(t=this._shellThemeClassnames)===null||t===void 0||t.setClassNames(c.className);const p=(i=c.gap)!==null&&i!==void 0?i:0;this.gridview.margin=p;for(const u of this.floatingGroups)u.gridview.margin=p;for(const u of(s=(n=this._popoutWindowService)===null||n===void 0?void 0:n.entries)!==null&&s!==void 0?s:[])u.gridview.margin=p;(r=this._shellManager)===null||r===void 0||r.updateTheme(p,(a=c.edgeGroupCollapsedSize)!==null&&a!==void 0?a:35),c.dndOverlayBorder!==void 0?(this.element.style.setProperty("--dv-drag-over-border",c.dndOverlayBorder),(l=this._shellManager)===null||l===void 0||l.element.style.setProperty("--dv-drag-over-border",c.dndOverlayBorder)):(this.element.style.removeProperty("--dv-drag-over-border"),(h=this._shellManager)===null||h===void 0||h.element.style.removeProperty("--dv-drag-over-border")),c.dndOverlayMounting==="absolute"?this.rootDropTargetContainer.disabled=!1:this.rootDropTargetContainer.disabled=!0;const v=((d=c.tabGroupIndicator)!==null&&d!==void 0?d:"wrap")==="none";x(this.element,"dv-tab-group-indicator-none",v),this._shellManager&&x(this._shellManager.element,"dv-tab-group-indicator-none",v);for(const u of this.groups)u.model.updateTabGroups()}}class Zr extends tn{get orientation(){return this.gridview.orientation}set orientation(e){this.gridview.orientation=e}get options(){return this._options}get deserializer(){return this._deserializer}set deserializer(e){this._deserializer=e}constructor(e,t){var i;super(e,{proportionalLayout:(i=t.proportionalLayout)!==null&&i!==void 0?i:!0,orientation:t.orientation,styles:t.hideBorders?{separatorBorder:"transparent"}:void 0,disableAutoResizing:t.disableAutoResizing,className:t.className}),this._onDidLayoutfromJSON=new f,this.onDidLayoutFromJSON=this._onDidLayoutfromJSON.event,this._onDidRemoveGroup=new f,this.onDidRemoveGroup=this._onDidRemoveGroup.event,this._onDidAddGroup=new f,this.onDidAddGroup=this._onDidAddGroup.event,this._onDidActiveGroupChange=new f,this.onDidActiveGroupChange=this._onDidActiveGroupChange.event,this._options=t,this.addDisposables(this._onDidAddGroup,this._onDidRemoveGroup,this._onDidActiveGroupChange,this.onDidAdd(n=>{this._onDidAddGroup.fire(n)}),this.onDidRemove(n=>{this._onDidRemoveGroup.fire(n)}),this.onDidActiveChange(n=>{this._onDidActiveGroupChange.fire(n)}))}updateOptions(e){super.updateOptions(e);const t=typeof e.orientation=="string"&&this.gridview.orientation!==e.orientation;this._options=Object.assign(Object.assign({},this.options),e),t&&(this.gridview.orientation=e.orientation),this.layout(this.gridview.width,this.gridview.height,!0)}removePanel(e){this.removeGroup(e)}toJSON(){var e;return{grid:this.gridview.serialize(),activePanel:(e=this.activeGroup)===null||e===void 0?void 0:e.id}}setVisible(e,t){this.gridview.setViewVisible(H(e.element),t)}setActive(e){this._groups.forEach((t,i)=>{t.value.setActive(e===t.value)})}focus(){var e;(e=this.activeGroup)===null||e===void 0||e.focus()}fromJSON(e){this.clear();const{grid:t,activePanel:i}=e;try{const n=[],s=this.width,r=this.height;if(this.gridview.deserialize(t,{fromJSON:a=>{const{data:l}=a,h=this.options.createComponent({id:l.id,name:l.component});return n.push(()=>h.init({params:l.params,minimumWidth:l.minimumWidth,maximumWidth:l.maximumWidth,minimumHeight:l.minimumHeight,maximumHeight:l.maximumHeight,priority:l.priority,snap:!!l.snap,accessor:this,isVisible:a.visible})),this._onDidAddGroup.fire(h),this.registerPanel(h),h}}),this.layout(s,r,!0),n.forEach(a=>a()),typeof i=="string"){const a=this.getPanel(i);a&&this.doSetGroupActive(a)}}catch(n){for(const s of this.groups)s.dispose(),this._groups.delete(s.id),this._onDidRemoveGroup.fire(s);throw this.clear(),n}this._onDidLayoutfromJSON.fire()}clear(){const e=this.activeGroup,t=Array.from(this._groups.values());for(const i of t)i.disposable.dispose(),this.doRemoveGroup(i.value,{skipActive:!0});e&&this.doSetGroupActive(void 0),this.gridview.clear()}movePanel(e,t){var i;let n;const s=this.gridview.remove(e),r=(i=this._groups.get(t.reference))===null||i===void 0?void 0:i.value;if(!r)throw new Error(`reference group ${t.reference} does not exist`);const a=st(t.direction);if(a==="center")throw new Error(`${a} not supported as an option`);{const l=H(r.element);n=q(this.gridview.orientation,l,a)}this.doAddGroup(s,n,t.size)}addPanel(e){var t,i,n,s;let r=(t=e.location)!==null&&t!==void 0?t:[0];if(!((i=e.position)===null||i===void 0)&&i.referencePanel){const l=(n=this._groups.get(e.position.referencePanel))===null||n===void 0?void 0:n.value;if(!l)throw new Error(`reference group ${e.position.referencePanel} does not exist`);const h=st(e.position.direction);if(h==="center")throw new Error(`${h} not supported as an option`);{const d=H(l.element);r=q(this.gridview.orientation,d,h)}}const a=this.options.createComponent({id:e.id,name:e.component});return a.init({params:(s=e.params)!==null&&s!==void 0?s:{},minimumWidth:e.minimumWidth,maximumWidth:e.maximumWidth,minimumHeight:e.minimumHeight,maximumHeight:e.maximumHeight,priority:e.priority,snap:!!e.snap,accessor:this,isVisible:!0}),this.doAddGroup(a,r,e.size),this.registerPanel(a),this.doSetGroupActive(a),a}registerPanel(e){const t=new E(e.api.onDidFocusChange(i=>{i.isFocused&&this._groups.forEach(n=>{const s=n.value;s!==e?s.setActive(!1):s.setActive(!0)})}));this._groups.set(e.id,{value:e,disposable:t})}moveGroup(e,t,i){const n=this.getPanel(t);if(!n)throw new Error("invalid operation");const s=H(e.element),r=q(this.gridview.orientation,s,i),[a,l]=ge(r),h=H(n.element),[d,c]=ge(h);if(Ki(d,a)){this.gridview.moveView(d,c,l);return}const p=this.doRemoveGroup(n,{skipActive:!0,skipDispose:!0}),v=H(e.element),u=q(this.gridview.orientation,v,i);this.doAddGroup(p,u)}removeGroup(e){super.removeGroup(e)}dispose(){super.dispose(),this._onDidLayoutfromJSON.dispose()}}class Kr extends kt{get panels(){return this.splitview.getViews()}get options(){return this._options}get length(){return this._panels.size}get orientation(){return this.splitview.orientation}get splitview(){return this._splitview}set splitview(e){this._splitview&&this._splitview.dispose(),this._splitview=e,this._splitviewChangeDisposable.value=new E(this._splitview.onDidSashEnd(()=>{this._onDidLayoutChange.fire(void 0)}),this._splitview.onDidAddView(t=>this._onDidAddView.fire(t)),this._splitview.onDidRemoveView(t=>this._onDidRemoveView.fire(t)))}get minimumSize(){return this.splitview.minimumSize}get maximumSize(){return this.splitview.maximumSize}get height(){return this.splitview.orientation===z.HORIZONTAL?this.splitview.orthogonalSize:this.splitview.size}get width(){return this.splitview.orientation===z.HORIZONTAL?this.splitview.size:this.splitview.orthogonalSize}constructor(e,t){var i;super(document.createElement("div"),t.disableAutoResizing),this._splitviewChangeDisposable=new X,this._panels=new Map,this._onDidLayoutfromJSON=new f,this.onDidLayoutFromJSON=this._onDidLayoutfromJSON.event,this._onDidAddView=new f,this.onDidAddView=this._onDidAddView.event,this._onDidRemoveView=new f,this.onDidRemoveView=this._onDidRemoveView.event,this._onDidLayoutChange=new f,this.onDidLayoutChange=this._onDidLayoutChange.event,this.element.style.height="100%",this.element.style.width="100%",this._classNames=new at(this.element),this._classNames.setClassNames((i=t.className)!==null&&i!==void 0?i:""),e.appendChild(this.element),this._options=t,this.splitview=new xe(this.element,t),this.addDisposables(this._onDidAddView,this._onDidLayoutfromJSON,this._onDidRemoveView,this._onDidLayoutChange)}updateOptions(e){var t,i;"className"in e&&this._classNames.setClassNames((t=e.className)!==null&&t!==void 0?t:""),"disableResizing"in e&&(this.disableResizing=(i=e.disableAutoResizing)!==null&&i!==void 0?i:!1),typeof e.orientation=="string"&&(this.splitview.orientation=e.orientation),this._options=Object.assign(Object.assign({},this.options),e),this.splitview.layout(this.splitview.size,this.splitview.orthogonalSize)}focus(){var e;(e=this._activePanel)===null||e===void 0||e.focus()}movePanel(e,t){this.splitview.moveView(e,t)}setVisible(e,t){const i=this.panels.indexOf(e);this.splitview.setViewVisible(i,t)}setActive(e,t){this._activePanel=e,this.panels.filter(i=>i!==e).forEach(i=>{i.api._onDidActiveChange.fire({isActive:!1}),t||i.focus()}),e.api._onDidActiveChange.fire({isActive:!0}),t||e.focus()}removePanel(e,t){const i=this._panels.get(e.id);if(!i)throw new Error(`unknown splitview panel ${e.id}`);i.dispose(),this._panels.delete(e.id);const n=this.panels.findIndex(a=>a===e);this.splitview.removeView(n,t).dispose();const r=this.panels;r.length>0&&this.setActive(r[r.length-1])}getPanel(e){return this.panels.find(t=>t.id===e)}addPanel(e){var t;if(this._panels.has(e.id))throw new Error(`panel ${e.id} already exists`);const i=this.options.createComponent({id:e.id,name:e.component});i.orientation=this.splitview.orientation,i.init({params:(t=e.params)!==null&&t!==void 0?t:{},minimumSize:e.minimumSize,maximumSize:e.maximumSize,snap:e.snap,priority:e.priority,accessor:this});const n=typeof e.size=="number"?e.size:Z.Distribute,s=typeof e.index=="number"?e.index:void 0;return this.splitview.addView(i,n,s),this.doAddView(i),this.setActive(i),i}layout(e,t){const[i,n]=this.splitview.orientation===z.HORIZONTAL?[e,t]:[t,e];this.splitview.layout(i,n)}doAddView(e){const t=e.api.onDidFocusChange(i=>{i.isFocused&&this.setActive(e,!0)});this._panels.set(e.id,t)}toJSON(){var e;return{views:this.splitview.getViews().map((i,n)=>({size:this.splitview.getViewSize(n),data:i.toJSON(),snap:!!i.snap,priority:i.priority})),activeView:(e=this._activePanel)===null||e===void 0?void 0:e.id,size:this.splitview.size,orientation:this.splitview.orientation}}fromJSON(e){this.clear();const{views:t,orientation:i,size:n,activeView:s}=e,r=[],a=this.width,l=this.height;if(this.splitview=new xe(this.element,{orientation:i,proportionalLayout:this.options.proportionalLayout,descriptor:{size:n,views:t.map(h=>{const d=h.data;if(this._panels.has(d.id))throw new Error(`panel ${d.id} already exists`);const c=this.options.createComponent({id:d.id,name:d.component});return r.push(()=>{var p;c.init({params:(p=d.params)!==null&&p!==void 0?p:{},minimumSize:d.minimumSize,maximumSize:d.maximumSize,snap:h.snap,priority:h.priority,accessor:this})}),c.orientation=i,this.doAddView(c),setTimeout(()=>{this._onDidAddView.fire(c)},0),{size:h.size,view:c}})}}),this.layout(a,l),r.forEach(h=>h()),typeof s=="string"){const h=this.getPanel(s);h&&this.setActive(h)}this._onDidLayoutfromJSON.fire()}clear(){for(const e of this._panels.values())e.dispose();for(this._panels.clear();this.splitview.length>0;)this.splitview.removeView(0,Z.Distribute,!0).dispose()}dispose(){for(const t of this._panels.values())t.dispose();this._panels.clear();const e=this.splitview.getViews();this._splitviewChangeDisposable.dispose(),this.splitview.dispose();for(const t of e)t.dispose();this.element.remove(),super.dispose()}}class pi extends E{get element(){return this._element}constructor(){super(),this._expandedIcon=Yo(),this._collapsedIcon=wn(),this.disposable=new X,this.apiRef={api:null},this._element=document.createElement("div"),this.element.className="dv-default-header",this._content=document.createElement("span"),this._expander=document.createElement("div"),this._expander.className="dv-pane-header-icon",this.element.appendChild(this._expander),this.element.appendChild(this._content),this.addDisposables(P(this._element,"click",()=>{var e;(e=this.apiRef.api)===null||e===void 0||e.setExpanded(!this.apiRef.api.isExpanded)}))}init(e){this.apiRef.api=e.api,this._content.textContent=e.title,this.updateIcon(),this.disposable.value=e.api.onDidExpansionChange(()=>{this.updateIcon()})}updateIcon(){var e;const t=!!(!((e=this.apiRef.api)===null||e===void 0)&&e.isExpanded);x(this._expander,"collapsed",!t),t?(this._expander.contains(this._collapsedIcon)&&this._collapsedIcon.remove(),this._expander.contains(this._expandedIcon)||this._expander.appendChild(this._expandedIcon)):(this._expander.contains(this._expandedIcon)&&this._expandedIcon.remove(),this._expander.contains(this._collapsedIcon)||this._expander.appendChild(this._collapsedIcon))}update(e){}dispose(){this.disposable.dispose(),super.dispose()}}const qr=Mt(),mi=22,vi=0,gi=Number.MAX_SAFE_INTEGER;class fi extends Ao{constructor(e){super({accessor:e.accessor,id:e.id,component:e.component,headerComponent:e.headerComponent,orientation:e.orientation,isExpanded:e.isExpanded,disableDnd:e.disableDnd,headerSize:e.headerSize,minimumBodySize:e.minimumBodySize,maximumBodySize:e.maximumBodySize}),this.options=e}getBodyComponent(){return this.options.body}getHeaderComponent(){return this.options.header}}class Qr extends kt{get id(){return this._id}get panels(){return this.paneview.getPanes()}set paneview(e){this._paneview=e,this._disposable.value=new E(this._paneview.onDidChange(()=>{this._onDidLayoutChange.fire(void 0)}),this._paneview.onDidAddView(t=>this._onDidAddView.fire(t)),this._paneview.onDidRemoveView(t=>this._onDidRemoveView.fire(t)))}get paneview(){return this._paneview}get minimumSize(){return this.paneview.minimumSize}get maximumSize(){return this.paneview.maximumSize}get height(){return this.paneview.orientation===z.HORIZONTAL?this.paneview.orthogonalSize:this.paneview.size}get width(){return this.paneview.orientation===z.HORIZONTAL?this.paneview.size:this.paneview.orthogonalSize}get options(){return this._options}constructor(e,t){var i;super(document.createElement("div"),t.disableAutoResizing),this._id=qr.next(),this._disposable=new X,this._viewDisposables=new Map,this._onDidLayoutfromJSON=new f,this.onDidLayoutFromJSON=this._onDidLayoutfromJSON.event,this._onDidLayoutChange=new f,this.onDidLayoutChange=this._onDidLayoutChange.event,this._onDidDrop=new f,this.onDidDrop=this._onDidDrop.event,this._onDidAddView=new f,this.onDidAddView=this._onDidAddView.event,this._onDidRemoveView=new f,this.onDidRemoveView=this._onDidRemoveView.event,this._onUnhandledDragOver=new f,this.onUnhandledDragOver=this._onUnhandledDragOver.event,this.element.style.height="100%",this.element.style.width="100%",this.addDisposables(this._onDidLayoutChange,this._onDidLayoutfromJSON,this._onDidDrop,this._onDidAddView,this._onDidRemoveView,this._onUnhandledDragOver),this._classNames=new at(this.element),this._classNames.setClassNames((i=t.className)!==null&&i!==void 0?i:""),e.appendChild(this.element),this._options=t,this.paneview=new ti(this.element,{orientation:z.VERTICAL}),this.addDisposables(this._disposable)}setVisible(e,t){const i=this.panels.indexOf(e);this.paneview.setViewVisible(i,t)}focus(){}updateOptions(e){var t,i;"className"in e&&this._classNames.setClassNames((t=e.className)!==null&&t!==void 0?t:""),"disableResizing"in e&&(this.disableResizing=(i=e.disableAutoResizing)!==null&&i!==void 0?i:!1),this._options=Object.assign(Object.assign({},this.options),e)}addPanel(e){var t,i;const n=this.options.createComponent({id:e.id,name:e.component});let s;e.headerComponent&&this.options.createHeaderComponent&&(s=this.options.createHeaderComponent({id:e.id,name:e.headerComponent})),s||(s=new pi);const r=new fi({id:e.id,component:e.component,headerComponent:e.headerComponent,header:s,body:n,orientation:z.VERTICAL,isExpanded:!!e.isExpanded,disableDnd:!!this.options.disableDnd,accessor:this,headerSize:(t=e.headerSize)!==null&&t!==void 0?t:mi,minimumBodySize:vi,maximumBodySize:gi});this.doAddPanel(r);const a=typeof e.size=="number"?e.size:Z.Distribute,l=typeof e.index=="number"?e.index:void 0;return r.init({params:(i=e.params)!==null&&i!==void 0?i:{},minimumBodySize:e.minimumBodySize,maximumBodySize:e.maximumBodySize,isExpanded:e.isExpanded,title:e.title,containerApi:new He(this),accessor:this}),this.paneview.addPane(r,a,l),r.orientation=this.paneview.orientation,r}removePanel(e){const i=this.panels.findIndex(n=>n===e);this.paneview.removePane(i),this.doRemovePanel(e)}movePanel(e,t){this.paneview.moveView(e,t)}getPanel(e){return this.panels.find(t=>t.id===e)}layout(e,t){const[i,n]=this.paneview.orientation===z.HORIZONTAL?[e,t]:[t,e];this.paneview.layout(i,n)}toJSON(){const e=n=>n===Number.MAX_SAFE_INTEGER||n===Number.POSITIVE_INFINITY?void 0:n,t=n=>n<=0?void 0:n;return{views:this.paneview.getPanes().map((n,s)=>({size:this.paneview.getViewSize(s),data:n.toJSON(),minimumSize:t(n.minimumBodySize),maximumSize:e(n.maximumBodySize),headerSize:n.headerSize,expanded:n.isExpanded()})),size:this.paneview.size}}fromJSON(e){this.clear();const{views:t,size:i}=e,n=[],s=this.width,r=this.height;this.paneview=new ti(this.element,{orientation:z.VERTICAL,descriptor:{size:i,views:t.map(a=>{var l,h,d;const c=a.data,p=this.options.createComponent({id:c.id,name:c.component});let v;c.headerComponent&&this.options.createHeaderComponent&&(v=this.options.createHeaderComponent({id:c.id,name:c.headerComponent})),v||(v=new pi);const u=new fi({id:c.id,component:c.component,headerComponent:c.headerComponent,header:v,body:p,orientation:z.VERTICAL,isExpanded:!!a.expanded,disableDnd:!!this.options.disableDnd,accessor:this,headerSize:(l=a.headerSize)!==null&&l!==void 0?l:mi,minimumBodySize:(h=a.minimumSize)!==null&&h!==void 0?h:vi,maximumBodySize:(d=a.maximumSize)!==null&&d!==void 0?d:gi});return this.doAddPanel(u),n.push(()=>{var m;u.init({params:(m=c.params)!==null&&m!==void 0?m:{},minimumBodySize:a.minimumSize,maximumBodySize:a.maximumSize,title:c.title,isExpanded:!!a.expanded,containerApi:new He(this),accessor:this}),u.orientation=this.paneview.orientation}),setTimeout(()=>{this._onDidAddView.fire(u)},0),{size:a.size,view:u}})}}),this.layout(s,r),n.forEach(a=>a()),this._onDidLayoutfromJSON.fire()}clear(){for(const[e,t]of this._viewDisposables.entries())t.dispose();this._viewDisposables.clear(),this.paneview.dispose()}doAddPanel(e){const t=new E(e.onDidDrop(i=>{this._onDidDrop.fire(i)}),e.onUnhandledDragOver(i=>{this._onUnhandledDragOver.fire(i)}));this._viewDisposables.set(e.id,t)}doRemovePanel(e){const t=this._viewDisposables.get(e.id);t&&(t.dispose(),this._viewDisposables.delete(e.id))}dispose(){super.dispose();for(const[e,t]of this._viewDisposables.entries())t.dispose();this._viewDisposables.clear(),this.element.remove(),this.paneview.dispose()}}class ea extends Rt{get priority(){return this._priority}set orientation(e){this._orientation=e}get orientation(){return this._orientation}get minimumSize(){const e=typeof this._minimumSize=="function"?this._minimumSize():this._minimumSize;return e!==this._evaluatedMinimumSize&&(this._evaluatedMinimumSize=e,this.updateConstraints()),e}get maximumSize(){const e=typeof this._maximumSize=="function"?this._maximumSize():this._maximumSize;return e!==this._evaluatedMaximumSize&&(this._evaluatedMaximumSize=e,this.updateConstraints()),e}get snap(){return this._snap}constructor(e,t){super(e,t,new mn(e,t)),this._evaluatedMinimumSize=0,this._evaluatedMaximumSize=Number.POSITIVE_INFINITY,this._minimumSize=0,this._maximumSize=Number.POSITIVE_INFINITY,this._snap=!1,this._onDidChange=new f,this.onDidChange=this._onDidChange.event,this.api.initialize(this),this.addDisposables(this._onDidChange,this.api.onWillVisibilityChange(i=>{const{isVisible:n}=i,{accessor:s}=this._params;s.setVisible(this,n)}),this.api.onActiveChange(()=>{const{accessor:i}=this._params;i.setActive(this)}),this.api.onDidConstraintsChangeInternal(i=>{(typeof i.minimumSize=="number"||typeof i.minimumSize=="function")&&(this._minimumSize=i.minimumSize),(typeof i.maximumSize=="number"||typeof i.maximumSize=="function")&&(this._maximumSize=i.maximumSize),this.updateConstraints()}),this.api.onDidSizeChange(i=>{this._onDidChange.fire({size:i.size})}))}setVisible(e){this.api._onDidVisibilityChange.fire({isVisible:e})}setActive(e){this.api._onDidActiveChange.fire({isActive:e})}layout(e,t){const[i,n]=this.orientation===z.HORIZONTAL?[e,t]:[t,e];super.layout(i,n)}init(e){super.init(e),this._priority=e.priority,e.minimumSize&&(this._minimumSize=e.minimumSize),e.maximumSize&&(this._maximumSize=e.maximumSize),e.snap&&(this._snap=e.snap)}toJSON(){const e=i=>i===Number.MAX_SAFE_INTEGER||i===Number.POSITIVE_INFINITY?void 0:i,t=i=>i<=0?void 0:i;return Object.assign(Object.assign({},super.toJSON()),{minimumSize:t(this.minimumSize),maximumSize:e(this.maximumSize)})}updateConstraints(){this.api._onDidConstraintsChange.fire({maximumSize:this._evaluatedMaximumSize,minimumSize:this._evaluatedMinimumSize})}}function ta(o,e){return new Jr(o,e).api}function ia(o,e){const t=new Kr(o,e);return new nn(t)}function na(o,e){const t=new Zr(o,e);return new sn(t)}function sa(o,e){const t=new Qr(o,e);return new He(t)}class oa{constructor(e){this._host=e}attachToGroup(e){return new E(e.model.onDidCreateTabGroup(t=>{this._host.fireDidCreateTabGroup(t)}),e.model.onDidDestroyTabGroup(t=>{this._host.fireDidDestroyTabGroup(t)}),e.model.onDidAddPanelToTabGroup(t=>{this._host.fireDidAddPanelToTabGroup(t)}),e.model.onDidRemovePanelFromTabGroup(t=>{this._host.fireDidRemovePanelFromTabGroup(t)}),e.model.onDidTabGroupChange(t=>{this._host.fireDidTabGroupChange(t)}),e.model.onDidTabGroupCollapsedChange(t=>{this._host.fireDidTabGroupCollapsedChange(t)}))}dispose(){}}const ra=te({name:"TabGroupChips",serviceKey:"tabGroupChipsService",create:o=>new oa(o),init:(o,e)=>{const t=new Map;return new E(o.onDidAddGroup(i=>{t.set(i,e.attachToGroup(i))}),o.onDidRemoveGroup(i=>{var n;(n=t.get(i))===null||n===void 0||n.dispose(),t.delete(i)}),{dispose:()=>{for(const i of t.values())i.dispose();t.clear()}})}});function _i(o){if(!(o instanceof HTMLElement))return;const e=Zi(o);return e?.style.zIndex?`calc(${e.style.zIndex} * 2)`:void 0}let aa=0;const la=()=>`dv-ctx-menu-item-${aa++}`;function ze(o){return typeof o=="object"}function Oe(o,e,t,i){const n=document.createElement("div");return n.className="dv-context-menu-item",n.setAttribute("role","menuitem"),i&&(n.classList.add("dv-context-menu-item--disabled"),n.setAttribute("aria-disabled","true")),n.textContent=o,i||n.addEventListener("click",()=>{t(),e()}),n}function bi(){const o=document.createElement("div");return o.className="dv-context-menu-separator",o.setAttribute("role","separator"),o}function da(){if(typeof window>"u"||!window.matchMedia)return!1;const o=window.matchMedia("(pointer: coarse)").matches,e=window.matchMedia("(pointer: fine)").matches;return o&&!e}function ha(o){const e=document.createElement("div");e.className="dv-context-menu-rename";const t=document.createElement("input");return t.className="dv-context-menu-rename-input",t.type="text",t.placeholder="Name This Group",t.value=o.label,t.addEventListener("input",()=>{o.setLabel(t.value)}),t.addEventListener("keydown",i=>{i.key!=="Escape"&&i.key!=="Enter"&&i.stopPropagation()}),t.addEventListener("click",i=>{i.stopPropagation()}),e.appendChild(t),da()||requestAnimationFrame(()=>{t.focus(),t.select()}),e}function ca(o,e){const t=document.createElement("div");if(t.className="dv-context-menu-color-picker",!e.enabled)return t;for(const i of e.entries()){const n=document.createElement("div");n.className="dv-context-menu-color-swatch",n.style.setProperty("--dv-tab-group-color",i.value),i.label&&(n.title=i.label),o.color===i.id&&n.classList.add("dv-context-menu-color-swatch--selected"),n.addEventListener("click",()=>{o.setColor(i.id)}),t.appendChild(n)}return t}class ua{constructor(e){this.accessor=e}show(e,t,i){var n,s;if(!this.accessor.options.getTabContextMenuItems)return;const r=this.accessor.options.getTabContextMenuItems({panel:e,group:t,api:this.accessor.api,event:i});if(r.length===0)return;i.preventDefault();const a=this.accessor.getPopupServiceForGroup(t),l=()=>a.close(),h=document.createElement("div");h.className="dv-context-menu",h.setAttribute("role","menu");for(const d of r)if(d==="separator")h.appendChild(bi());else if(d==="close")h.appendChild(Oe("Close",l,()=>e.api.close()));else if(d==="closeOthers")h.appendChild(Oe("Close Others",l,()=>{t.panels.filter(c=>c!==e).forEach(c=>c.api.close())}));else if(d==="closeAll")h.appendChild(Oe("Close All",l,()=>{[...t.panels].forEach(c=>c.api.close())}));else if(ze(d)&&d.element)h.appendChild(d.element);else if(ze(d)&&d.component){const c=(s=(n=this.accessor.options).createContextMenuItemComponent)===null||s===void 0?void 0:s.call(n,{id:la(),component:d.component});c&&(c.init({panel:e,group:t,api:this.accessor.api,close:l,componentProps:d.componentProps}),h.appendChild(c.element))}else ze(d)&&d.label&&h.appendChild(Oe(d.label,l,()=>{var c;return(c=d.action)===null||c===void 0?void 0:c.call(d)},d.disabled));a.openPopover(h,{x:i.clientX,y:i.clientY,zIndex:_i(i.target)})}showForChip(e,t,i){if(!this.accessor.options.getTabGroupChipContextMenuItems)return;const n=this.accessor.options.getTabGroupChipContextMenuItems({tabGroup:e,group:t,api:this.accessor.api,event:i});if(n.length===0)return;i.preventDefault();const s=this.accessor.getPopupServiceForGroup(t),r=()=>s.close(),a=document.createElement("div");a.className="dv-context-menu",a.setAttribute("role","menu");for(const l of n)l==="separator"?a.appendChild(bi()):l==="rename"?a.appendChild(ha(e)):l==="colorPicker"?a.appendChild(ca(e,this.accessor.tabGroupColorPalette)):ze(l)&&l.element?a.appendChild(l.element):ze(l)&&l.label&&a.appendChild(Oe(l.label,r,()=>{var h;return(h=l.action)===null||h===void 0?void 0:h.call(l)},l.disabled));s.openPopover(a,{x:i.clientX,y:i.clientY,zIndex:_i(i.target)})}}const pa=te({name:"ContextMenu",serviceKey:"contextMenuService",create:o=>new ua(o)}),ma=30,va=-10;class ga{constructor(e){this.host=e}dispatchWillDragPanel(e){this.host.fireWillDragPanel(e)}dispatchWillDragGroup(e){this.host.fireWillDragGroup(e)}dispatchWillDrop(e){this.host.fireWillDrop(e)}dispatchWillShowOverlay(e){this.host.fireWillShowOverlay(e)}buildGroupDragGhost(e){const t=this.host.options.createGroupDragGhostComponent;if(!t)return;const i=t(e);return i.init({group:e,api:this.host.api}),{element:i.element,offsetX:ma,offsetY:va,dispose:i.dispose?()=>{var n;return(n=i.dispose)===null||n===void 0?void 0:n.call(i)}:void 0}}resolveOverlayModel(e,t){var i,n;return(n=(i=this.host.options).dropOverlayModel)===null||n===void 0?void 0:n.call(i,{location:e,group:t})}showPreviewOverlay(e,t){const i=e.model.contentDropTarget;return i.showOverlay(t),N.from(()=>i.clearOverlay())}dispose(){}}const Tn=te({name:"AdvancedDnD",serviceKey:"advancedDnDService",create:o=>new ga(o)}),Gt="data-dv-kbd-moving";function ce(o,e){const t=e.toLowerCase().split("+"),i=t[t.length-1],n=t.slice(0,-1);return o.ctrlKey===n.includes("ctrl")&&o.shiftKey===n.includes("shift")&&o.altKey===n.includes("alt")&&o.metaKey===(n.includes("meta")||n.includes("cmd"))&&o.key.toLowerCase()===i}function Pt(o){const e=o.keyboardNavigation;if(e)return e===!0?{}:e}const fa={nextTab:"ctrl+]",prevTab:"ctrl+[",focusNextGroup:"f6",focusPrevGroup:"shift+f6",focusTabs:"ctrl+shift+\\"};class _a extends E{constructor(e){super(),this.host=e,this._focusWasInside=!1;const t=e.rootElement.ownerDocument,i=r=>this._onKeyDown(r);t.addEventListener("keydown",i,!0);const n=r=>{const a=r.target;a instanceof HTMLElement&&this.host.rootElement.contains(a)&&!a.closest('[role="dialog"]')&&(this._lastNonFloatFocus=a)};t.addEventListener("focusin",n,!0);const s=r=>this._onFloatingEscape(r);t.addEventListener("keydown",s,!1),this.addDisposables({dispose:()=>t.removeEventListener("keydown",i,!0)},{dispose:()=>t.removeEventListener("focusin",n,!0)},{dispose:()=>t.removeEventListener("keydown",s,!1)},e.onWillMutateLayout(r=>{r.kind==="remove"&&this._nav&&(this._focusWasInside=this._isFocusInside())}),e.onDidMutateLayout(r=>{r.kind==="remove"&&this._nav&&this._focusWasInside&&!this._isFocusInside()&&this._restoreFocus()}))}get _moveActive(){return this.host.rootElement.hasAttribute(Gt)}_isFocusInside(){const e=this.host.rootElement.ownerDocument.activeElement;return e instanceof Node&&this.host.rootElement.contains(e)}_onFloatingEscape(e){if(!this._nav||this._moveActive||e.defaultPrevented||e.key!=="Escape")return;const t=e.target;if(!(t instanceof Element))return;const i=t.closest('[role="dialog"]');!i||!this.host.rootElement.contains(i)||(e.preventDefault(),e.stopPropagation(),this._returnFocusFromFloat())}_trapFloatTab(e){const t=e.target;if(!(t instanceof Element))return!1;const i=t.closest('[role="dialog"]');if(!i||!this.host.rootElement.contains(i))return!1;e.preventDefault();const n=this._tabbables(i);if(n.length===0)return!0;const s=i.ownerDocument.activeElement,r=s instanceof HTMLElement?n.indexOf(s):-1,a=n.length,l=r===-1?e.shiftKey?a-1:0:(r+(e.shiftKey?-1:1)+a)%a;return n[l].focus(),!0}_tabbables(e){const t=e.querySelectorAll("a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]");return Array.from(t).filter(i=>i.tabIndex>=0)}_returnFocusFromFloat(){var e;const t=this._lastNonFloatFocus;if(t&&t.isConnected&&this.host.rootElement.contains(t)&&!t.closest('[role="dialog"]')){t.focus();return}(e=this.host.groups.find(i=>i.api.location.type==="grid"))===null||e===void 0||e.model.focusContent()}get _nav(){return Pt(this.host.options)}get _keymap(){var e;return Object.assign(Object.assign({},fa),(e=this._nav)===null||e===void 0?void 0:e.keymap)}_onKeyDown(e){if(!this._nav||this._moveActive||!(e.target instanceof Node)||!this.host.rootElement.contains(e.target)||e.key==="Tab"&&this._trapFloatTab(e))return;const t=this._keymap;ce(e,t.nextTab)?(this._consume(e),this._switchTab(!1)):ce(e,t.prevTab)?(this._consume(e),this._switchTab(!0)):ce(e,t.focusNextGroup)?(this._consume(e),this._cycleGroup(!1)):ce(e,t.focusPrevGroup)?(this._consume(e),this._cycleGroup(!0)):ce(e,t.focusTabs)&&(this._consume(e),this._focusTabs())}_focusTabs(){var e;(e=this.host.activeGroup)===null||e===void 0||e.model.focusActiveTab()}_switchTab(e){const t=this.host.activeGroup;t&&(e?t.model.moveToPrevious():t.model.moveToNext(),t.model.focusContent())}_cycleGroup(e){const t=this.host.activeGroup,i=t?this.host.adjacentGroup(t,e):this.host.groups[0];this._focusGroup(i)}_focusGroup(e){e&&(e.api.setActive(),e.model.focusContent())}_restoreFocus(){var e;(e=this.host.activeGroup)===null||e===void 0||e.model.focusContent()}_consume(e){e.preventDefault(),e.stopPropagation()}}const ba=te({name:"Accessibility",serviceKey:"accessibilityService",create:o=>new _a(o)}),wa={ArrowLeft:"left",ArrowRight:"right",ArrowUp:"top",ArrowDown:"bottom"},Me={focusGroupLeft:"ctrl+shift+arrowleft",focusGroupRight:"ctrl+shift+arrowright",focusGroupUp:"ctrl+shift+arrowup",focusGroupDown:"ctrl+shift+arrowdown",dock:"ctrl+m"};class Da extends E{constructor(e){super(),this.host=e,this._move=null;const t=e.rootElement.ownerDocument,i=n=>this._onKeyDown(n);t.addEventListener("keydown",i,!0),this.addDisposables({dispose:()=>this._exit()},{dispose:()=>t.removeEventListener("keydown",i,!0)})}get _enabled(){return!!Pt(this.host.options)}get _keymap(){var e,t,i,n,s,r,a;const l=(t=(e=Pt(this.host.options))===null||e===void 0?void 0:e.keymap)!==null&&t!==void 0?t:{};return{focusGroupLeft:(i=l.focusGroupLeft)!==null&&i!==void 0?i:Me.focusGroupLeft,focusGroupRight:(n=l.focusGroupRight)!==null&&n!==void 0?n:Me.focusGroupRight,focusGroupUp:(s=l.focusGroupUp)!==null&&s!==void 0?s:Me.focusGroupUp,focusGroupDown:(r=l.focusGroupDown)!==null&&r!==void 0?r:Me.focusGroupDown,dock:(a=l.dock)!==null&&a!==void 0?a:Me.dock}}get _messages(){return Gn(this.host.options.messages)}_onKeyDown(e){if(!this._enabled)return;if(this._move){this._onMoveKey(e);return}if(!(e.target instanceof Node)||!this.host.rootElement.contains(e.target))return;const t=this._keymap;ce(e,t.dock)?this._enterMoveMode(e):ce(e,t.focusGroupLeft)?(this._consume(e),this._focusGroupInDirection("left")):ce(e,t.focusGroupRight)?(this._consume(e),this._focusGroupInDirection("right")):ce(e,t.focusGroupUp)?(this._consume(e),this._focusGroupInDirection("up")):ce(e,t.focusGroupDown)&&(this._consume(e),this._focusGroupInDirection("down"))}_focusGroupInDirection(e){const t=this.host.activeGroup;t&&this._focusGroup(this.host.adjacentGroupInDirection(t,e))}_focusGroup(e){e&&(e.api.setActive(),e.model.focusContent())}_restoreFocus(){var e;(e=this.host.activeGroup)===null||e===void 0||e.model.focusContent()}_enterMoveMode(e){const t=this.host.activePanel,i=this.host.groups;if(!t||i.length===0)return;e.preventDefault(),e.stopPropagation();const n=Math.max(0,i.indexOf(t.group));this._move={source:t,groups:i,groupIndex:n,phase:"target",position:"center"},this.host.rootElement.setAttribute(Gt,""),this._render()}_onMoveKey(e){const t=this._move;if(e.key==="Escape"){this._consume(e),t.phase==="edge"?(t.phase="target",t.position="center",this._render()):(this._exit(),this.host.announce(this._messages.moveCancelled()),this._restoreFocus());return}if(e.key==="Enter"){this._consume(e),t.phase==="target"?(t.phase="edge",t.position="center",this._render()):this._commit();return}if(t.phase==="target"){const n=t.groups.length;e.key==="ArrowRight"||e.key==="ArrowDown"?(this._consume(e),t.groupIndex=(t.groupIndex+1)%n,this._render()):(e.key==="ArrowLeft"||e.key==="ArrowUp")&&(this._consume(e),t.groupIndex=(t.groupIndex-1+n)%n,this._render());return}const i=wa[e.key];i?(this._consume(e),t.position=i,this._render()):(e.key===" "||e.key==="c"||e.key==="C")&&(this._consume(e),t.position="center",this._render())}_render(){var e,t;const i=this._move,n=i.groups[i.groupIndex];this._clearPreview(),this._preview=this.host.showDropPreview(n,i.position);const s=(t=(e=n.activePanel)===null||e===void 0?void 0:e.title)!==null&&t!==void 0?t:n.id,r=this._messages;i.phase==="target"?this.host.announce(r.movePickTarget(this._label(i.source),s,i.groupIndex+1,i.groups.length)):this.host.announce(r.movePickEdge(i.position,s))}_commit(){var e,t;const i=this._move,n=i.groups[i.groupIndex],s=i.position,r=i.source,a=(t=(e=n.activePanel)===null||e===void 0?void 0:e.title)!==null&&t!==void 0?t:n.id,l=this._messages;this._exit();try{this.host.dockPanel(r,n,s),this.host.announce(l.moveCommitted(this._label(r),a,s))}catch{this.host.announce(l.moveNotAllowed())}this._restoreFocus()}_exit(){this._clearPreview(),this._move=null,this.host.rootElement.removeAttribute(Gt)}_clearPreview(){var e;(e=this._preview)===null||e===void 0||e.dispose(),this._preview=void 0}_consume(e){e.preventDefault(),e.stopPropagation()}_label(e){var t;return(t=e.title)!==null&&t!==void 0?t:e.id}}te({name:"KeyboardDocking",serviceKey:"keyboardDockingService",create:o=>new Da(o),dependsOn:[Tn,Pn]});const Ca=[ra,pa,Tn,ba];ur(Ca);mr();const An=(o,e)=>{const[,t]=M.useState(0),i=M.useRef(o.componentProps);return M.useImperativeHandle(e,()=>({update:n=>{i.current=Object.assign(Object.assign({},i.current),n),t(s=>s+1)}}),[]),M.createElement(o.component,i.current)};An.displayName="DockviewReactJsBridge";const ya=(()=>{let o=1;return{next:()=>`dockview_react_portal_key_${(o++).toString()}`}})(),Sa=M.createContext({});class pe{constructor(e,t,i,n,s){this.parent=e,this.portalStore=t,this.component=i,this.parameters=n,this.context=s,this._initialProps={},this.disposed=!1,this.createPortal()}update(e){if(this.disposed)throw new Error("invalid operation: resource is already disposed");this.componentInstance?this.componentInstance.update(e):this._initialProps=Object.assign(Object.assign({},this._initialProps),e)}createPortal(){if(this.disposed)throw new Error("invalid operation: resource is already disposed");if(!xa(this.component))throw new Error("Dockview: Only React.memo(...), React.ForwardRef(...) and functional components are accepted as components");const e=M.createElement(M.forwardRef(An),{component:this.component,componentProps:this.parameters,ref:n=>{this.componentInstance=n,Object.keys(this._initialProps).length>0&&(this.componentInstance.update(this._initialProps),this._initialProps={})}}),t=this.context?M.createElement(Sa.Provider,{value:this.context},e):e,i=Vn.createPortal(t,this.parent,ya.next());this.ref={portal:i,disposable:this.portalStore.addPortal(i)}}dispose(){var e;(e=this.ref)===null||e===void 0||e.disposable.dispose(),this.disposed=!0}}const dt=()=>{const[o,e]=M.useState([]);M.useDebugValue(`Portal count: ${o.length}`);const t=M.useCallback(i=>{e(s=>[...s,i]);let n=!1;return N.from(()=>{if(n)throw new Error("invalid operation: resource already disposed");n=!0,e(s=>s.filter(r=>r!==i))})},[]);return[o,t]};function xa(o){return typeof o=="function"||!!o?.$$typeof}class wi{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._onDidFocus=new f,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new f,this.onDidBlur=this._onDidBlur.event,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}focus(){}init(e){this.part=new pe(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,containerApi:e.containerApi})}update(e){var t;(t=this.part)===null||t===void 0||t.update({params:e.params})}layout(e,t){}dispose(){var e;this._onDidFocus.dispose(),this._onDidBlur.dispose(),(e=this.part)===null||e===void 0||e.dispose()}}class Di{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}focus(){}init(e){this.part=new pe(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,containerApi:e.containerApi,tabLocation:e.tabLocation})}update(e){var t;(t=this.part)===null||t===void 0||t.update({params:e.params})}layout(e,t){}dispose(){var e;(e=this.part)===null||e===void 0||e.dispose()}}class Ci{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new pe(this.element,this.reactPortalStore,this.component,{group:e.group,containerApi:e.containerApi})}focus(){}update(e){var t,i,n;this.parameters&&(this.parameters.params=e.params),(t=this.part)===null||t===void 0||t.update({params:(n=(i=this.parameters)===null||i===void 0?void 0:i.params)!==null&&n!==void 0?n:{}})}layout(e,t){}dispose(){var e;(e=this.part)===null||e===void 0||e.dispose()}}class Ga{get element(){return this._element}get part(){return this._part}constructor(e,t,i){this.component=e,this.reactPortalStore=t,this._group=i,this.mutableDisposable=new X,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.mutableDisposable.value=new E(this._group.model.onDidAddPanel(()=>{this.updatePanels()}),this._group.model.onDidRemovePanel(()=>{this.updatePanels()}),this._group.model.onDidActivePanelChange(()=>{this.updateActivePanel()}),e.api.onDidActiveChange(()=>{this.updateGroupActive()}),e.api.onDidLocationChange(t=>{this.updateLocation(t.location)})),this._part=new pe(this.element,this.reactPortalStore,this.component,{api:e.api,containerApi:e.containerApi,panels:this._group.model.panels,activePanel:this._group.model.activePanel,isGroupActive:this._group.api.isActive,group:this._group,headerPosition:this._group.model.headerPosition,location:e.api.location})}dispose(){var e;this.mutableDisposable.dispose(),(e=this._part)===null||e===void 0||e.dispose()}update(e){var t;(t=this._part)===null||t===void 0||t.update(e.params)}updatePanels(){this.update({params:{panels:this._group.model.panels}})}updateActivePanel(){this.update({params:{activePanel:this._group.model.activePanel}})}updateGroupActive(){this.update({params:{isGroupActive:this._group.api.isActive}})}updateLocation(e){this.update({params:{location:e}})}}class Pa{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new pe(this._element,this.reactPortalStore,this.component,e)}dispose(){var e;(e=this.part)===null||e===void 0||e.dispose()}}class yi{get element(){return this._element}constructor(e,t){this.component=e,this.reactPortalStore=t,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.display="inline-flex"}init(e){this.part=new pe(this._element,this.reactPortalStore,this.component,{tabGroup:e.tabGroup,api:e.api})}update(e){var t;(t=this.part)===null||t===void 0||t.update({tabGroup:e.tabGroup})}dispose(){var e;(e=this.part)===null||e===void 0||e.dispose()}}class Si{get element(){return this._element}constructor(e,t){this.component=e,this.reactPortalStore=t,this._element=document.createElement("div"),this._element.className="dv-react-part",this._element.style.display="inline-flex"}init(e){this.part=new pe(this._element,this.reactPortalStore,this.component,{group:e.group,api:e.api})}dispose(){var e;(e=this.part)===null||e===void 0||e.dispose()}}function Ge(o,e){return o?t=>new Ga(o,e,t):void 0}const Ke="props.defaultTabComponent";function Ta(o){return St.reduce((t,i)=>(i in o&&(t[i]=o[i]),t),{})}const In=M.forwardRef((o,e)=>{const t=M.useRef(null),i=M.useRef(void 0),[n,s]=dt();M.useImperativeHandle(e,()=>t.current,[]);const r=M.useRef({});return M.useEffect(()=>{const a={};St.forEach(l=>{const h=l,d=o[h];h in o&&d!==r.current[h]&&(a[h]=d)}),i.current&&i.current.updateOptions(a),r.current=o},St.map(a=>o[a])),M.useEffect(()=>{var a;if(!t.current)return;const l=(a=o.tabComponents)!==null&&a!==void 0?a:{};o.defaultTabComponent&&(l[Ke]=o.defaultTabComponent);const h={createLeftHeaderActionComponent:Ge(o.leftHeaderActionsComponent,{addPortal:s}),createRightHeaderActionComponent:Ge(o.rightHeaderActionsComponent,{addPortal:s}),createPrefixHeaderActionComponent:Ge(o.prefixHeaderActionsComponent,{addPortal:s}),createComponent:u=>new wi(u.id,o.components[u.name],{addPortal:s}),createTabComponent(u){return new Di(u.id,l[u.name],{addPortal:s})},createWatermarkComponent:o.watermarkComponent?()=>new Ci("watermark",o.watermarkComponent,{addPortal:s}):void 0,defaultTabComponent:o.defaultTabComponent?Ke:void 0,createContextMenuItemComponent:u=>{if(u.component)return new Pa(u.id,u.component,{addPortal:s})}},d=Ta(o);if(o.tabGroupChipComponent){const u=o.tabGroupChipComponent;d.createTabGroupChipComponent=()=>new yi(u,{addPortal:s})}if(o.groupDragGhostComponent){const u=o.groupDragGhostComponent;d.createGroupDragGhostComponent=()=>new Si(u,{addPortal:s})}const c=ta(t.current,Object.assign(Object.assign({},d),h)),{clientWidth:p,clientHeight:v}=t.current;return c.layout(p,v),o.onReady&&o.onReady({api:c}),i.current=c,()=>{i.current=void 0,c.dispose()}},[]),M.useEffect(()=>{if(!i.current)return()=>{};const a=i.current.onDidDrop(l=>{o.onDidDrop&&o.onDidDrop(l)});return()=>{a.dispose()}},[o.onDidDrop]),M.useEffect(()=>{if(!i.current)return()=>{};const a=i.current.onWillDrop(l=>{o.onWillDrop&&o.onWillDrop(l)});return()=>{a.dispose()}},[o.onWillDrop]),M.useEffect(()=>{i.current&&i.current.updateOptions({createTabGroupChipComponent:o.tabGroupChipComponent?()=>new yi(o.tabGroupChipComponent,{addPortal:s}):void 0})},[o.tabGroupChipComponent]),M.useEffect(()=>{i.current&&i.current.updateOptions({createGroupDragGhostComponent:o.groupDragGhostComponent?()=>new Si(o.groupDragGhostComponent,{addPortal:s}):void 0})},[o.groupDragGhostComponent]),M.useEffect(()=>{i.current&&i.current.updateOptions({createComponent:a=>new wi(a.id,o.components[a.name],{addPortal:s})})},[o.components]),M.useEffect(()=>{var a;if(!i.current)return;const l=(a=o.tabComponents)!==null&&a!==void 0?a:{};o.defaultTabComponent&&(l[Ke]=o.defaultTabComponent),i.current.updateOptions({defaultTabComponent:o.defaultTabComponent?Ke:void 0,createTabComponent(h){return new Di(h.id,l[h.name],{addPortal:s})}})},[o.tabComponents,o.defaultTabComponent]),M.useEffect(()=>{i.current&&i.current.updateOptions({createWatermarkComponent:o.watermarkComponent?()=>new Ci("watermark",o.watermarkComponent,{addPortal:s}):void 0})},[o.watermarkComponent]),M.useEffect(()=>{i.current&&i.current.updateOptions({createRightHeaderActionComponent:Ge(o.rightHeaderActionsComponent,{addPortal:s})})},[o.rightHeaderActionsComponent]),M.useEffect(()=>{i.current&&i.current.updateOptions({createLeftHeaderActionComponent:Ge(o.leftHeaderActionsComponent,{addPortal:s})})},[o.leftHeaderActionsComponent]),M.useEffect(()=>{i.current&&i.current.updateOptions({createPrefixHeaderActionComponent:Ge(o.prefixHeaderActionsComponent,{addPortal:s})})},[o.prefixHeaderActionsComponent]),M.createElement("div",{style:{height:"100%",width:"100%"},ref:t},n)});In.displayName="DockviewComponent";class xi extends ea{constructor(e,t,i,n){super(e,t),this.reactComponent=i,this.reactPortalStore=n}getComponent(){var e,t;return new pe(this.element,this.reactPortalStore,this.reactComponent,{params:(t=(e=this._params)===null||e===void 0?void 0:e.params)!==null&&t!==void 0?t:{},api:this.api,containerApi:new nn(this._params.accessor)})}}function Aa(o){return ft.reduce((t,i)=>(i in o&&(t[i]=o[i]),t),{})}const Ia=M.forwardRef((o,e)=>{const t=M.useRef(null),i=M.useRef(void 0),[n,s]=dt();M.useImperativeHandle(e,()=>t.current,[]);const r=M.useRef({});return M.useEffect(()=>{const a={};ft.forEach(l=>{const h=l,d=o[h];h in o&&d!==r.current[h]&&(a[h]=d)}),i.current&&i.current.updateOptions(a),r.current=o},ft.map(a=>o[a])),M.useEffect(()=>{if(!t.current)return()=>{};const a={createComponent:c=>new xi(c.id,c.name,o.components[c.name],{addPortal:s})},l=ia(t.current,Object.assign(Object.assign({},Aa(o)),a)),{clientWidth:h,clientHeight:d}=t.current;return l.layout(h,d),o.onReady&&o.onReady({api:l}),i.current=l,()=>{i.current=void 0,l.dispose()}},[]),M.useEffect(()=>{i.current&&i.current.updateOptions({createComponent:a=>new xi(a.id,a.name,o.components[a.name],{addPortal:s})})},[o.components]),M.createElement("div",{style:{height:"100%",width:"100%"},ref:t},n)});Ia.displayName="SplitviewComponent";class Gi extends yn{constructor(e,t,i,n){super(e,t),this.reactComponent=i,this.reactPortalStore=n}getComponent(){var e,t;return new pe(this.element,this.reactPortalStore,this.reactComponent,{params:(t=(e=this._params)===null||e===void 0?void 0:e.params)!==null&&t!==void 0?t:{},api:this.api,containerApi:new sn(this._params.accessor)})}}function Ea(o){return Dt.reduce((t,i)=>(i in o&&(t[i]=o[i]),t),{})}const za=M.forwardRef((o,e)=>{const t=M.useRef(null),i=M.useRef(void 0),[n,s]=dt();M.useImperativeHandle(e,()=>t.current,[]);const r=M.useRef({});return M.useEffect(()=>{const a={};Dt.forEach(l=>{const h=l,d=o[h];h in o&&d!==r.current[h]&&(a[h]=d)}),i.current&&i.current.updateOptions(a),r.current=o},Dt.map(a=>o[a])),M.useEffect(()=>{if(!t.current)return()=>{};const a={createComponent:c=>new Gi(c.id,c.name,o.components[c.name],{addPortal:s})},l=na(t.current,Object.assign(Object.assign({},Ea(o)),a)),{clientWidth:h,clientHeight:d}=t.current;return l.layout(h,d),o.onReady&&o.onReady({api:l}),i.current=l,()=>{i.current=void 0,l.dispose()}},[]),M.useEffect(()=>{i.current&&i.current.updateOptions({createComponent:a=>new Gi(a.id,a.name,o.components[a.name],{addPortal:s})})},[o.components]),M.createElement("div",{style:{height:"100%",width:"100%"},ref:t},n)});za.displayName="GridviewComponent";class qe{get element(){return this._element}constructor(e,t,i){this.id=e,this.component=t,this.reactPortalStore=i,this._element=document.createElement("div"),this._element.style.height="100%",this._element.style.width="100%"}init(e){this.part=new pe(this.element,this.reactPortalStore,this.component,{params:e.params,api:e.api,title:e.title,containerApi:e.containerApi})}toJSON(){return{id:this.id}}update(e){var t;(t=this.part)===null||t===void 0||t.update(e.params)}dispose(){var e;(e=this.part)===null||e===void 0||e.dispose()}}function Oa(o){return yt.reduce((t,i)=>(i in o&&(t[i]=o[i]),t),{})}const Ma=M.forwardRef((o,e)=>{const t=M.useRef(null),i=M.useRef(void 0),[n,s]=dt();M.useImperativeHandle(e,()=>t.current,[]);const r=M.useRef({});return M.useEffect(()=>{const a={};yt.forEach(l=>{const h=l,d=o[h];h in o&&d!==r.current[h]&&(a[h]=d)}),i.current&&i.current.updateOptions(a),r.current=o},yt.map(a=>o[a])),M.useEffect(()=>{var a;if(!t.current)return()=>{};const l=(a=o.headerComponents)!==null&&a!==void 0?a:{},h={createComponent:v=>new qe(v.id,o.components[v.name],{addPortal:s}),createHeaderComponent:v=>new qe(v.id,l[v.name],{addPortal:s})},d=sa(t.current,Object.assign(Object.assign({},Oa(o)),h)),{clientWidth:c,clientHeight:p}=t.current;return d.layout(c,p),o.onReady&&o.onReady({api:d}),i.current=d,()=>{i.current=void 0,d.dispose()}},[]),M.useEffect(()=>{i.current&&i.current.updateOptions({createComponent:a=>new qe(a.id,o.components[a.name],{addPortal:s})})},[o.components]),M.useEffect(()=>{var a;if(!i.current)return;const l=(a=o.headerComponents)!==null&&a!==void 0?a:{};i.current.updateOptions({createHeaderComponent:h=>new qe(h.id,l[h.name],{addPortal:s})})},[o.headerComponents]),M.useEffect(()=>{if(!i.current)return()=>{};const a=i.current.onDidDrop(l=>{o.onDidDrop&&o.onDidDrop(l)});return()=>{a.dispose()}},[o.onDidDrop]),M.createElement("div",{style:{height:"100%",width:"100%"},ref:t},n)});Ma.displayName="PaneviewComponent";function ka(o){return o.key!=="Tab"||o.altKey||!o.ctrlKey&&!o.metaKey?0:o.shiftKey?-1:1}function La(o,e){const t=o?.group,i=t?.panels??[];if(!t||i.length<2)return!1;const n=t.activePanel??o,s=i.findIndex(a=>a.id===n?.id);if(s<0)return!1;const r=i[(s+e+i.length)%i.length];return!r||r.id===n?.id?!1:(r.api.setActive(),!0)}function Re(o,e,t){const i=os(t);return i?o("lcl.withHotkey",{label:e,key:i}):e}function En(o,e){const t=o??{},{__loc:i,__type:n,...s}=t,r=typeof n=="string"&&n||e||"";return r&&r!=="__extend"?{type:r,params:s}:null}function Ra(o){const e=o.params??{},{__loc:t,__type:i,...n}=e;return{id:o.api.id,type:typeof i=="string"&&i||o.api.component||"",loc:t==="left"||t==="right"||t==="bottom"?t:"main",params:n,setTitle:s=>{rs(o.api.id),o.api.setTitle(s)},setParams:s=>W.getState().leafById(o.api.id)?.setParams(s),close:()=>{W.getState().isPinnedLeaf(o.api.id)||o.api.close()}}}let Pi;function zn(o){return function(t){const i=Ra(t),n=(t.params??{}).__loc??"main",[s,r]=k.useState(()=>{if(n!=="main")return!1;const d=Pi!==o.type;return Pi=o.type,d}),a=`${i.id}:${i.type}:${Yn(i.params)}`,l=k.useRef(null);k.useEffect(()=>{const d=l.current;if(!d)return;const c=Xn(d),p=t.api.onDidVisibilityChange(v=>{v.isVisible&&c.restore()});return()=>{p.dispose(),c.dispose()}},[t.api]);const h=d=>A.jsx("div",{ref:l,className:`wb-view wb-view--${n}${s?" wb-view-enter":""}`,onAnimationEnd:c=>{c.animationName==="wb-view-enter"&&c.target===c.currentTarget&&r(!1)},children:A.jsx(as,{children:A.jsx(k.Suspense,{fallback:A.jsx(ds,{variant:hs(o.type,n)}),children:n==="main"?A.jsx(Xt,{present:ls,owner:t.api,ownerKey:a,children:c=>o.factory({leaf:i,params:i.params,extendView:c})}):o.factory({leaf:i,params:i.params,extendView:d})})})});return n==="main"?h():A.jsx(Xt,{present:Jn,ownerKey:a,children:h})}}function Va(o){return function(t){const i=(t.params??{}).__type||"",n=Vi(i);if(!n)return null;let s=o.get(i);return s||(s=zn(n),o.set(i,s)),A.jsx(s,{...t},i)}}const Na=({api:o,params:e})=>{const[,t]=k.useState(0);k.useEffect(()=>{const u=o.onDidTitleChange(()=>t(m=>m+1));return t(m=>m+1),()=>u.dispose()},[o]);const i=e?.__type||o.component||"",n=Vi(i),s=i==="__extend"?Jt:n?.icon,r=n?.TabIcon,a=W(u=>!u.isPinnedLeaf(o.id))&&n?.closable!==!1,l=e?.__loc,h=l==="left"||l==="right",[d,c]=k.useState(null),{t:p}=rt(),v=k.useRef(null);return k.useEffect(()=>{if(!d)return;const u=()=>c(null);return window.addEventListener("click",u),window.addEventListener("contextmenu",u),()=>{window.removeEventListener("click",u),window.removeEventListener("contextmenu",u)}},[d]),k.useEffect(()=>{const u=v.current;if(!u||i==="__extend")return;const m=g=>Ua(g,u,o.id);return u.addEventListener("dragstart",m),()=>u.removeEventListener("dragstart",m)},[o.id]),A.jsxs("div",{ref:v,className:`wb-tab${h?" wb-tab--icon":""}${l==="left"?" wb-tab--left":""}${i==="sidebar-empty"||i==="home"?" wb-tab--empty":""}`,title:o.title,"data-transient":i==="__extend"?"true":void 0,draggable:i!=="__extend",onContextMenu:a?u=>{u.preventDefault(),u.stopPropagation(),c({x:u.clientX,y:u.clientY})}:void 0,children:[r?A.jsx(r,{params:e??{},size:h?15:13}):s&&A.jsx(s,{size:h?15:13,className:"wb-tab-ic"}),!h&&A.jsx("span",{className:"wb-tab-name",children:o.title}),!h&&a&&A.jsx("button",{className:"wb-tab-close",title:p("lcl.tab.close"),draggable:!1,onPointerDown:u=>u.stopPropagation(),onMouseDown:u=>{u.stopPropagation(),u.preventDefault()},onClick:u=>{u.stopPropagation(),u.preventDefault(),W.getState().closeLeaf(o.id)},children:A.jsx(Zt,{size:12})}),d&&ns.createPortal(A.jsxs(ss,{className:"ctx-menu",x:d.x,y:d.y,onClick:u=>u.stopPropagation(),onContextMenu:u=>u.preventDefault(),children:[i!=="__extend"&&it()&&A.jsxs("button",{onClick:()=>{const u=En(e,o.component),m=it();u&&m&&(m.detach([u]),W.getState().closeLeaf(o.id)),c(null)},children:[A.jsx(Jt,{size:13})," ",p("lcl.tab.moveToWindow")]}),A.jsxs("button",{onClick:()=>{W.getState().closeLeaf(o.id),c(null)},children:[A.jsx(Zt,{size:13})," ",p("lcl.tab.close")]})]}),document.body)]})};function Wa(o,e){return{name:o?"lcl-dark":"lcl-light",className:`dockview-theme-${o?"dark":"light"} dockview-theme-lcl`,colorScheme:o?"dark":"light",gap:e?8:0,tabAnimation:"smooth",dndOverlayMounting:"relative"}}function On(o){return o.some(e=>{const t=e.params?.__loc;return!t||t==="main"})}function Ha(){return function({panels:e,activePanel:t}){const i=!W(d=>d.leftVisible),{t:n}=rt();Ri(d=>d.overrides),W(d=>d.mainTabs);const s=ke(d=>d.stacks),r=t?.id??null,a=r?s[r]:void 0,l=!!a&&a.idx>0,h=!!a&&a.idx>=0&&a.idx<a.entries.length-1;return On(e)?A.jsxs("div",{className:`dv-prefix${i?" dv-prefix--edge":""}`,children:[A.jsx("button",{className:"dv-nav-btn",disabled:!l,title:Re(n,n("lcl.nav.back"),"nav-back"),onClick:()=>{r&&ke.getState().back(r)},children:A.jsx(Zn,{size:15})}),A.jsx("button",{className:"dv-nav-btn",disabled:!h,title:Re(n,n("lcl.nav.forward"),"nav-forward"),onClick:()=>{r&&ke.getState().forward(r)},children:A.jsx(Kn,{size:15})}),A.jsx("button",{className:`dv-edge-toggle${i?"":" is-on"}`,"aria-pressed":!i,title:Re(n,n("lcl.edge.left"),"toggle-left"),onClick:()=>W.getState().toggleSidebar("left"),children:A.jsx(qn,{size:15})})]}):null}}function Fa(){return function({panels:e}){const{t}=rt();return On(e)?A.jsx("button",{className:"dv-new-tab",title:t("lcl.tab.new"),onClick:()=>{const i=es();i?.newPage?i.newPage():W.getState().openView("launcher",{},"main",{newTab:!0})},children:A.jsx(Qn,{size:15})}):null}}let De=null,Ae=null,se=null;const Mn="application/x-forsion-open",Qe=o=>!!se&&"open"in se&&!!o.dataTransfer?.types.includes(Mn),kn=new WeakSet;function Ba(o){return!o.closest(".dv-react-part")&&!!o.closest(".wb-dockview, .dv-render-overlay")}function Ti(o){const e=o.preventDefault;o.preventDefault=function(){const t=o.currentTarget;t instanceof Element&&!Ba(t)&&kn.add(o),e.call(o)}}let Ai=0,Ve=null,Ne=null;function Ii(o){const e=document.createElement("div");return e.className=o,document.body.appendChild(e),e}function Tt(){Ve&&(Ve.style.display="none"),Ne&&(Ne.style.display="none")}function Ei(o){if(o.mode==="tab"){Ne&&(Ne.style.display="none");const e=Ve??=Ii("wb-drop-line");e.style.display="block";const t=Kt(e);e.style.left=`${Math.round(o.lineX)/t-1}px`,e.style.top=`${Math.round(o.top)/t}px`,e.style.height=`${Math.round(o.height)/t}px`}else{Ve&&(Ve.style.display="none");const e=Ne??=Ii("wb-drop-zone");e.style.display="block";const t=Kt(e);e.style.left=`${Math.round(o.rect.left)/t}px`,e.style.top=`${Math.round(o.rect.top)/t}px`,e.style.width=`${Math.round(o.rect.width)/t}px`,e.style.height=`${Math.round(o.rect.height)/t}px`}}function et(){De=null,Ae=null,se=null,document.documentElement.dataset.dvDragging&&delete document.documentElement.dataset.dvDragging,document.querySelector(".dv-tab.wb-tab-dragging")?.classList.remove("wb-tab-dragging"),Tt()}function _l(o,e){if(De=null,Ae=null,se=e,o){"open"in e||(o.effectAllowed="copy");try{o.setData(Mn,"open"in e?"item":e.type)}catch{}}document.documentElement.dataset.dvDragging="1"}function Ln(o,e){const t=W.getState();let i;"open"in e?(ps(),e.open(),i=gs()):i=t.openView(e.type,e.params??{},"main",{newTab:!0})?.id,i&&t.dropView(i,o)}function $a(o,e){const t=Ni(o.group),i=W.getState();if(t==="main"){Ln(o,e);return}(t==="left"?i.leftVisible:t==="right"?i.rightVisible:i.bottomVisible)||i.toggleSidebar(t),i.openView(e.type,e.params??{},t)}function Ua(o,e,t){if(o.stopPropagation(),!o.dataTransfer)return;se=null,De=t;const i=W.getState().api?.getPanel(t);Ae=En(i?.params,i?.component),o.dataTransfer.effectAllowed="move",o.dataTransfer.setData("application/x-tangu-view",t),document.documentElement.dataset.dvDragging="1",e.closest(".dv-tab")?.classList.add("wb-tab-dragging")}const bl=({dark:o,soft:e,buildDefault:t})=>{const i=W(u=>u.bottomVisible),n=W(u=>u.rightVisible),{t:s}=rt();Ri(u=>u.overrides);const r=k.useRef(null);k.useEffect(()=>{const u=r.current,m=u?.parentElement;if(!u||!m)return;let g=0;const _=()=>{cancelAnimationFrame(g),g=requestAnimationFrame(()=>{m.style.setProperty("--dv-edge-actions-w",`${u.offsetWidth+10}px`);const T=u.getBoundingClientRect();m.querySelectorAll(".dv-tabs-and-actions-container").forEach(C=>{w.has(C)||(w.add(C),b.observe(C));const S=C.getBoundingClientRect();C.classList.toggle("dv-under-edge",S.width>0&&S.top<T.bottom&&S.bottom>T.top&&S.right>T.left&&S.left<T.right),C.classList.toggle("dv-under-lights",S.width>0&&S.left<70&&S.top<28)})})},w=new WeakSet,b=new ResizeObserver(_);_(),b.observe(m),b.observe(u);const D=W.subscribe(_);return()=>{cancelAnimationFrame(g),b.disconnect(),D()}},[]);const a=Nn(u=>u.commands.find(m=>m.id==="open-mini")),[l,h]=k.useState(0);k.useEffect(()=>Wn(()=>h(u=>u+1)),[]);const d=k.useMemo(()=>{const u={};for(const m of Hn())u[m.type]=zn(m);return u.__extend=m=>A.jsx(Fn,{id:m.api.id,side:m.params.__loc}),u.__frame=Va(new Map),u},[l]),c=k.useMemo(()=>Ha(),[]),p=k.useMemo(()=>Fa(),[]);k.useEffect(()=>{const u=C=>{const S=W.getState().api,y=S?cs(S,C.clientX,C.clientY):null;return y&&S&&De&&!us(S,De,y)?null:y},m=C=>{if(!De&&!se)return;if(se&&"open"in se){Qe(C)&&Ti(C);return}const S=u(C);if(!S){Tt(),C.dataTransfer&&(C.dataTransfer.dropEffect="none");return}C.preventDefault(),C.dataTransfer&&(C.dataTransfer.dropEffect=se?"copy":"move"),Ei(S)},g=C=>{const S=De,y=se;if(!S&&!y)return;if(y&&"open"in y){Qe(C)&&Ti(C);return}C.preventDefault();const G=u(C);G&&(y?$a(G,y):S&&W.getState().dropView(S,G)),et()},_=C=>{const S=C.target instanceof Element?C.target:null;if(kn.has(C)||S&&(S.isContentEditable||S.closest("input, textarea")))return null;const y=u(C);return y&&Ni(y.group)==="main"?y:null},w=C=>{if(!Qe(C))return;const S=_(C);if(!S){Tt();return}C.preventDefault(),C.dataTransfer&&(C.dataTransfer.dropEffect=C.dataTransfer.effectAllowed==="move"?"move":"copy"),Ei(S)},b=C=>{if(!Qe(C))return;const S=_(C),y=se;et(),!(!S||!y)&&(C.preventDefault(),Ln(S,y))},D=C=>{const S=it();if(!Ae||!S?.dragUpdate||!C.screenX&&!C.screenY)return;const y=Date.now();y-Ai<30||(Ai=y,S.dragUpdate(C.screenX,C.screenY,Ae))},T=C=>{const S=De,y=Ae,G=it(),O=C.clientX<0||C.clientY<0||C.clientX>window.innerWidth||C.clientY>window.innerHeight;S&&y&&G?.drop&&O&&!W.getState().isPinnedLeaf(S)&&G.drop(C.screenX,C.screenY,y).then(R=>{R&&W.getState().closeLeaf(S)}),et()};return window.addEventListener("dragover",m,!0),window.addEventListener("drop",g,!0),window.addEventListener("drag",D,!0),window.addEventListener("dragend",T,!0),window.addEventListener("dragover",w),window.addEventListener("drop",b),()=>{window.removeEventListener("dragover",w),window.removeEventListener("drop",b),window.removeEventListener("dragover",m,!0),window.removeEventListener("drop",g,!0),window.removeEventListener("drag",D,!0),window.removeEventListener("dragend",T,!0),et()}},[]),k.useEffect(()=>{const u=m=>{const g=ka(m);if(g){const _=W.getState().api?.activePanel;La(_,g)&&(m.preventDefault(),m.stopPropagation());return}if((m.metaKey||m.ctrlKey)&&m.altKey&&(m.key==="ArrowLeft"||m.key==="ArrowRight")){m.preventDefault(),m.stopPropagation();const _=W.getState().api,w=_?ts(_)?.id:null;if(!w)return;m.key==="ArrowLeft"?ke.getState().back(w):ke.getState().forward(w)}};return window.addEventListener("keydown",u,!0),()=>window.removeEventListener("keydown",u,!0)},[]),k.useEffect(()=>{if(typeof ResizeObserver>"u")return;const u=document.querySelector(".wb-dockview");if(!u)return;let m=null;const g=new ResizeObserver(()=>{m&&clearTimeout(m),m=setTimeout(()=>W.getState().repinSides(),120)});return g.observe(u),()=>{g.disconnect(),m&&clearTimeout(m)}},[]);const v=u=>{const m=W.getState();if(m.setApi(u.api),t&&m.setDefaultBuilder(t),!is(u.api)){try{u.api.clear()}catch{}t?.()}const _=()=>{m.syncPanelState(),m.noteLayoutChange(),ms(u.api),vs()};u.api.onDidLayoutChange(_),u.api.onDidActivePanelChange(({panel:b})=>{m.setFocusedLeaf(b),m.refreshTabs()});const w=(u.api.activePanel?.params??{}).__type;m.setFocusedLeaf(w==="chat"?u.api.activePanel:u.api.panels.find(b=>(b.params??{}).__type==="chat")),m.refreshTabs()};return A.jsxs(A.Fragment,{children:[A.jsx(In,{className:`wb-dockview${e?" wb-soft":""}`,theme:Wa(o,e),defaultTabComponent:Na,prefixHeaderActionsComponent:c,rightHeaderActionsComponent:p,components:d,disableDnd:!0,onReady:v}),A.jsxs("div",{className:"dv-edge-actions",ref:r,children:[A.jsx("button",{className:"dv-edge-toggle dv-edge-reset",title:s("lcl.edge.reset"),onClick:()=>W.getState().resetLayout({undoable:!0}),children:A.jsx(Ns,{size:15})}),a&&A.jsx("button",{className:"dv-edge-toggle dv-edge-mini",title:s("lcl.withHotkey",{label:Un(a.title),key:Bn("mod+shift+m",$n())}),onClick:()=>{a.run()},children:A.jsx(Ls,{size:15})}),A.jsx("button",{className:`dv-edge-toggle dv-edge-bottom${i?" is-on":""}`,"aria-pressed":i,title:Re(s,s("lcl.edge.bottom"),"toggle-bottom"),onClick:()=>W.getState().toggleSidebar("bottom"),children:A.jsx(Ms,{size:15})}),A.jsx("button",{className:`dv-edge-toggle dv-edge-right${n?" is-on":""}`,"aria-pressed":n,title:Re(s,s("lcl.edge.right"),"toggle-right"),onClick:()=>W.getState().toggleSidebar("right"),children:A.jsx(jn,{size:15})})]})]})};function wl(o,e={}){return!1}function Dl(o,e,t){const[i,n]=k.useState(null),s=k.useRef({build:e,onClose:t});s.current={build:e,onClose:t};const r=o!=null&&o!==!1,a=r&&i!==o&&!1;return k.useEffect(()=>{if(!r){i!==null&&n(null);return}},[o,i,r]),!a}function zi(o,e){if(typeof o=="function")return o(e);o!=null&&(o.current=e)}function ja(...o){return e=>{let t=!1;const i=o.map(n=>{const s=zi(n,e);return!t&&typeof s=="function"&&(t=!0),s});if(t)return()=>{for(let n=0;n<i.length;n++){const s=i[n];typeof s=="function"?s():zi(o[n],null)}}}}function Ya(...o){return k.useCallback(ja(...o),o)}class Xa extends k.Component{getSnapshotBeforeUpdate(e){const t=this.props.childRef.current;if(ht(t)&&e.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const i=t.offsetParent,n=ht(i)&&i.offsetWidth||0,s=ht(i)&&i.offsetHeight||0,r=getComputedStyle(t),a=this.props.sizeRef.current;a.height=parseFloat(r.height),a.width=parseFloat(r.width),a.top=t.offsetTop,a.left=t.offsetLeft,a.right=n-a.width-a.left,a.bottom=s-a.height-a.top,a.direction=r.direction}return null}componentDidUpdate(){}render(){return this.props.children}}function Ja({children:o,isPresent:e,anchorX:t,anchorY:i,root:n,pop:s}){const r=k.useId(),a=k.useRef(null),l=k.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0,direction:"ltr"}),{nonce:h}=k.useContext(fs),d=o.props?.ref??o?.ref,c=Ya(a,d);return k.useInsertionEffect(()=>{const{width:p,height:v,top:u,left:m,right:g,bottom:_,direction:w}=l.current;if(e||s===!1||!a.current||!p||!v)return;const b=w==="rtl",D=t==="left"?b?`right: ${g}`:`left: ${m}`:b?`left: ${m}`:`right: ${g}`,T=i==="bottom"?`bottom: ${_}`:`top: ${u}`;a.current.dataset.motionPopId=r;const C=document.createElement("style");h&&(C.nonce=h);const S=n??document.head;return S.appendChild(C),C.sheet&&C.sheet.insertRule(`
2
+ [data-motion-pop-id="${r}"] {
3
+ position: absolute !important;
4
+ width: ${p}px !important;
5
+ height: ${v}px !important;
6
+ ${D}px !important;
7
+ ${T}px !important;
8
+ }
9
+ `),()=>{a.current?.removeAttribute("data-motion-pop-id"),S.contains(C)&&S.removeChild(C)}},[e]),A.jsx(Xa,{isPresent:e,childRef:a,sizeRef:l,pop:s,children:s===!1?o:k.cloneElement(o,{ref:c})})}const Za=({children:o,initial:e,isPresent:t,onExitComplete:i,custom:n,presenceAffectsLayout:s,mode:r,anchorX:a,anchorY:l,root:h})=>{const d=Wi(Ka),c=k.useId(),p=k.useRef(t),v=k.useRef(i);Hi(()=>{p.current=t,v.current=i});let u=!0,m=k.useMemo(()=>(u=!1,{id:c,initial:e,isPresent:t,custom:n,onExitComplete:g=>{d.set(g,!0);for(const _ of d.values())if(!_)return;i&&i()},register:g=>(d.set(g,!1),()=>{d.delete(g),!p.current&&!d.size&&v.current?.()})}),[t,d,i]);return s&&u&&(m={...m}),k.useMemo(()=>{d.forEach((g,_)=>d.set(_,!1))},[t]),k.useEffect(()=>{!t&&!d.size&&i&&i()},[t]),o=A.jsx(Ja,{pop:r==="popLayout",isPresent:t,anchorX:a,anchorY:l,root:h,children:o}),A.jsx(_s.Provider,{value:m,children:o})};function Ka(){return new Map}const tt=o=>o.key||"";function Oi(o){const e=[];return k.Children.forEach(o,t=>{k.isValidElement(t)&&e.push(t)}),e}const Cl=({children:o,custom:e,initial:t=!0,onExitComplete:i,presenceAffectsLayout:n=!0,mode:s="sync",propagate:r=!1,anchorX:a="left",anchorY:l="top",root:h})=>{const[d,c]=bs(r),p=k.useMemo(()=>Oi(o),[o]),v=r&&!d?[]:p.map(tt),u=k.useRef(!0),m=k.useRef(p),g=Wi(()=>new Map),_=k.useRef(new Set),[w,b]=k.useState(p),[D,T]=k.useState(p);Hi(()=>{u.current=!1,m.current=p;for(let y=0;y<D.length;y++){const G=tt(D[y]);v.includes(G)?(g.delete(G),_.current.delete(G)):g.get(G)!==!0&&g.set(G,!1)}},[D,v.length,v.join("-")]);const C=[];if(p!==w){let y=[...p];for(let G=0;G<D.length;G++){const O=D[G],R=tt(O);v.includes(R)||(y.splice(G,0,O),C.push(O))}return s==="wait"&&C.length&&(y=C),T(Oi(y)),b(p),null}const{forceRender:S}=k.useContext(ws);return A.jsx(A.Fragment,{children:D.map(y=>{const G=tt(y),O=r&&!d?!1:p===D||v.includes(G),R=()=>{if(_.current.has(G))return;if(g.has(G))_.current.add(G),g.set(G,!0);else return;let V=!0;g.forEach(F=>{F||(V=!1)}),V&&(S?.(),T(m.current),r&&c?.(),i&&i())};return A.jsx(Za,{isPresent:O,initial:!u.current||t?void 0:!1,custom:e,presenceAffectsLayout:n,mode:s,root:h,onExitComplete:O?void 0:R,anchorX:a,anchorY:l,children:y},G)})})};function yl(){!Ds.current&&Cs();const[o]=k.useState(ys.current);return o}const At="forsion_tangu_recent_views",qa=24;function Qa(){try{const o=JSON.parse(localStorage.getItem(At)||"[]");return Array.isArray(o)?o.filter(e=>e&&e.key&&e.id):[]}catch{return[]}}const Sl=Bi(o=>({items:Qa(),record:e=>o(t=>{const i=[{...e,ts:Date.now()},...t.items.filter(n=>n.key!==e.key)].slice(0,qa);try{localStorage.setItem(At,JSON.stringify(i))}catch{}return{items:i}}),remove:e=>o(t=>{const i=t.items.filter(n=>n.key!==e);try{localStorage.setItem(At,JSON.stringify(i))}catch{}return{items:i}})})),el=14,tl=10.5,il=4.5;function $t(o){return el+o*tl}function xl(o){return $t(o)-il}const nl=18.4,sl=5.5;function Gl(o){return $t(o)+nl+sl}const ol=1e3,rl=100,Be=Bi(o=>({anchor:null,lines:[],open:(e,t)=>o({anchor:e,lines:t}),close:()=>o({anchor:null,lines:[]})}));let It,Et=0,Ut=0;function Mi(o,e,t){const i=o.getBoundingClientRect();(async()=>{let n;try{n=await e()}catch{n=null}Ut!==t||!n?.length||Be.getState().open(i,n)})()}function ki(o,e){window.clearTimeout(It);const t=++Ut;Et>0&&Date.now()-Et<=rl?Mi(o,e,t):It=window.setTimeout(()=>Mi(o,e,t),ol)}function Te(){window.clearTimeout(It),Ut++,Be.getState().anchor&&(Et=Date.now()),Be.getState().close()}function Pl(o,e){const t={onMouseEnter:i=>ki(i.currentTarget,o),onMouseLeave:Te};return e?.focus&&(t.onFocus=i=>{let n=!0;try{n=i.currentTarget.matches(":focus-visible")}catch{}n&&ki(i.currentTarget,o)},t.onBlur=Te),t}function Li(o){return xs(o,{year:"always"})}const mt=(o,e)=>Ss.getState().tr(o,e);async function Tl(o,e){const t=await window.tangu?.statPath?.(o).catch(()=>null);if(!t)return null;if(t.isDir)return[mt("tip.folder",{files:t.files??0,folders:t.folders??0})];const i=[e,mt("tip.modified",{t:Li(t.mtimeMs)})];return t.birthtimeMs&&i.push(mt("tip.created",{t:Li(t.birthtimeMs)})),i}function Al(){const o=Be(r=>r.anchor),e=Be(r=>r.lines),t=k.useRef(null),[i,n]=k.useState(!1);if(k.useLayoutEffect(()=>{if(!o||!t.current)return;const r=t.current.offsetWidth;n(o.right+10+r>window.innerWidth-8)},[o,e]),k.useEffect(()=>{if(o)return window.addEventListener("scroll",Te,!0),window.addEventListener("resize",Te),()=>{window.removeEventListener("scroll",Te,!0),window.removeEventListener("resize",Te)}},[o]),!o)return null;const s=i?{right:window.innerWidth-o.left+10,top:o.top+o.height/2}:{left:o.right+10,top:o.top+o.height/2};return A.jsx("div",{ref:t,className:"amx-tip","data-flip":i||void 0,style:s,role:"tooltip",children:e.map((r,a)=>A.jsx("div",{className:a===0?"amx-tip-head":void 0,children:r},a))},`${o.top}:${e[0]}`)}function Il({items:o}){return A.jsx(A.Fragment,{children:o.map(e=>A.jsxs("button",{type:"button",className:e.danger?"danger":void 0,"data-act":e.act,disabled:e.disabled,onClick:e.run,children:[e.icon," ",e.label]},e.id))})}function El({className:o,depth:e=1,style:t,title:i,lead:n,children:s,trailing:r,selId:a,as:l="div",elRef:h,...d}){const c=l;return A.jsxs(c,{ref:h,className:`t2s-srow${o?` ${o}`:""}`,"data-sel-id":a,title:i,style:{paddingLeft:$t(e),...t},...d,children:[n!==void 0&&A.jsx("span",{className:"t2s-lead",children:n}),s,r]})}Is({"phonelist.sec.pinned":{zh:"置顶",en:"Pinned"},"phonelist.sec.today":{zh:"今天",en:"Today"},"phonelist.sec.yesterday":{zh:"昨天",en:"Yesterday"},"phonelist.sec.week":{zh:"这一周",en:"This week"},"phonelist.sec.earlier":{zh:"更早",en:"Earlier"},"phonelist.hint.ok":{zh:"知道了",en:"Got it"},"phonelist.pull.idle":{zh:"下拉搜索",en:"Pull down to search"},"phonelist.pull.armed":{zh:"松开搜索",en:"Release to search"}});function zl(o,e=Date.now()){if(!o)return"earlier";const t=new Date(e);return t.setHours(0,0,0,0),o>=t.getTime()?"today":(t.setDate(t.getDate()-1),o>=t.getTime()?"yesterday":(t.setDate(t.getDate()-5),o>=t.getTime()?"week":"earlier"))}function Ol(o,e){const t=[];let i=null;for(const n of o){const s=e(n);s!==i&&(t.push({section:s}),i=s),t.push({item:n})}return t}function Ml({bucket:o}){return A.jsx("div",{className:"pl-sec",role:"heading","aria-level":3,"data-section":o,children:Es(`phonelist.sec.${o}`)})}function kl({label:o,items:e,value:t,onChange:i}){return A.jsx("div",{className:"pl-chips",role:"tablist","aria-label":o,children:e.map(n=>A.jsx("button",{type:"button",role:"tab","data-filter":n.id,"aria-selected":t===n.id,className:t===n.id?"on":void 0,onClick:()=>i(n.id),children:n.label},n.id))})}function Ll({label:o,icon:e,onClick:t,onMenu:i}){return A.jsx("button",{type:"button",className:"pl-fab","data-act":"list-fab","aria-label":o,onClick:t,onContextMenu:i&&(n=>{n.preventDefault(),n.stopPropagation();const s=n.currentTarget.getBoundingClientRect();i({x:s.left,y:s.top})}),children:e})}const $e=new WeakMap;let zt=0;typeof window<"u"&&window.addEventListener("resize",()=>{zt+=1});function al(o){const e=o.target?.closest?.(".pl-swipe");for(const t of document.querySelectorAll(".pl-swipe[data-open]"))t!==e&&$e.get(t)?.close()}function Rl({actions:o,children:e}){const t=k.useRef(null),i=o.length>0;if(k.useEffect(()=>i&&t.current?dl(t.current):void 0,[i]),!i)return A.jsx(A.Fragment,{children:e});const n=()=>{t.current&&$e.get(t.current)?.close()};return A.jsx("div",{className:"pl-swipe",ref:t,onClickCapture:s=>{const r=t.current;if(r){if($e.get(r)?.justDragged()){s.preventDefault(),s.stopPropagation();return}s.target.closest(".pl-swipe-acts")||!r.hasAttribute("data-open")||(s.preventDefault(),s.stopPropagation(),n())}},children:A.jsxs("div",{className:"pl-swipe-track",children:[e,A.jsx("div",{className:"pl-swipe-acts",children:o.map(s=>A.jsx("button",{type:"button",className:`pl-swipe-act${s.tone?` ${s.tone}`:""}`,"data-act":s.id,"aria-label":s.label,title:s.label,onClick:r=>{r.stopPropagation(),n(),s.run()},children:s.icon},s.id))})]})})}const ll=10;function dl(o){const e=o.firstElementChild,t=e.lastElementChild;let i=0,n=!1,s=null;const r=()=>((!s||s.epoch!==zt||s.n!==t.childElementCount)&&(s={k:o.getBoundingClientRect().width/o.offsetWidth||1,w:t.offsetWidth,epoch:zt,n:t.childElementCount}),s);let a=null;const l=g=>{i=g,e.style.transform=g?`translateX(${g.toFixed(2)}px)`:""},h=()=>{const g=getComputedStyle(e).transform;return g&&g!=="none"?new DOMMatrixReadOnly(g).m41:0},d=(g,_)=>{o.toggleAttribute("data-open",g!==0),e.style.willChange="";const w=g-i,b=Math.abs(w)<.5?null:Ps(_*1e3/w,As,{give:ll/Math.abs(w)});e.style.transition=b?`transform ${b.ms}ms ${b.easing}`:Math.abs(w)<.5||Ts()?"":"transform 0.3s cubic-bezier(0.2, 0.9, 0.3, 1)",l(g)},c=()=>o.matches(".mb-shell[data-list-first] .pl-swipe"),p=g=>{if(n=!1,a||!g.isPrimary||g.button>0||!c())return;const _=e.style.transition?h():i;e.style.transition="",l(_),a={id:g.pointerId,x0:g.clientX,y0:g.clientY,from:_,k:1,w:0,on:null,trail:[[g.timeStamp,_]]}},v=g=>{if(!a||g.pointerId!==a.id)return;if(a.on===null){const w=g.clientX-a.x0,b=g.clientY-a.y0;if(Math.hypot(w,b)<8)return;if(a.on=Math.abs(w)>Math.abs(b)&&!(a.from===0&&w>0),!a.on){a.from!==0&&d(0,0),a=null;return}({k:a.k,w:a.w}=r());try{o.setPointerCapture(g.pointerId)}catch{}e.style.willChange="transform",al({target:o})}let _=a.from+(g.clientX-a.x0)/a.k;for(_<-a.w?_=-a.w+(_+a.w)*.3:_>0&&(_*=.3),l(_),a.trail.push([g.timeStamp,_]);a.trail.length>2&&g.timeStamp-a.trail[0][0]>100;)a.trail.shift()},u=g=>{if(!a||g.pointerId!==a.id)return;const _=a;if(a=null,!_.on){if(i!==0||o.hasAttribute("data-open")){const y=g.type==="pointercancel"||!o.hasAttribute("data-open")?0:-r().w;Math.abs(i-y)>.5&&d(y,0)}return}n=!0;const[w,b]=_.trail[_.trail.length-1],[D,T]=_.trail[0],C=g.type==="pointercancel"||g.timeStamp-w>80||w<=D?0:(b-T)/(w-D),S=C<-.3?!0:C>.3?!1:i<-_.w/2;d(S?-_.w:0,C)},m=g=>{g.target===e&&(e.style.transition="")};return e.addEventListener("transitionend",m),o.addEventListener("pointerdown",p),o.addEventListener("pointermove",v),o.addEventListener("pointerup",u),o.addEventListener("pointercancel",u),$e.set(o,{close:()=>{!a&&(i!==0||o.hasAttribute("data-open"))&&(i=e.style.transition?h():i,d(0,0))},justDragged:()=>{const g=n;return n=!1,g}}),()=>{e.removeEventListener("transitionend",m),o.removeEventListener("pointerdown",p),o.removeEventListener("pointermove",v),o.removeEventListener("pointerup",u),o.removeEventListener("pointercancel",u),$e.delete(o)}}const hl=84;function Vl(o,e){const t=k.useRef(e);t.current=e;const i=!!e;k.useEffect(()=>{const n=o.current;if(!n||!i)return;let s=-1,r=0;const a=p=>{r=p,p?n.style.setProperty("--pl-pull",p.toFixed(3)):n.style.removeProperty("--pl-pull"),n.toggleAttribute("data-pull-armed",p>=1)},l=p=>{s=n.scrollTop<=0&&p.touches.length===1?p.touches[0].clientY:-1},h=p=>{if(!(s<0)){if(n.scrollTop>0){s=-1,a(0);return}a(Math.max(0,Math.min(1.25,(p.touches[0].clientY-s)/hl)))}},d=()=>{s=-1,a(0)},c=()=>{const p=r>=1;d(),p&&t.current?.()};return n.addEventListener("touchstart",l,{passive:!0}),n.addEventListener("touchmove",h,{passive:!0}),n.addEventListener("touchend",c),n.addEventListener("touchcancel",d),()=>{n.removeEventListener("touchstart",l),n.removeEventListener("touchmove",h),n.removeEventListener("touchend",c),n.removeEventListener("touchcancel",d),a(0)}},[o,i])}function Nl(){const{t:o}=Fi();return A.jsx("div",{className:"pl-pull","aria-hidden":"true",children:A.jsxs("span",{className:"pl-pull-pill",children:[A.jsx(Gs,{}),A.jsx("span",{className:"pl-pull-idle",children:o("phonelist.pull.idle")}),A.jsx("span",{className:"pl-pull-armed",children:o("phonelist.pull.armed")})]})})}function Wl({id:o,children:e}){const{t}=Fi(),i=`forsion_phone_list_hint_${o}`,[n,s]=k.useState(()=>{try{return!localStorage.getItem(i)}catch{return!1}});return n?A.jsxs("div",{className:"pl-hint",role:"note","data-hint":o,children:[A.jsx("span",{children:e}),A.jsx("button",{type:"button",onClick:()=>{try{localStorage.setItem(i,"1")}catch{}s(!1)},children:t("phonelist.hint.ok")})]}):null}export{Cl as A,vl as C,Al as H,Ll as L,gl as P,fl as S,bl as W,Ms as a,Dl as b,kl as c,Wl as d,Il as e,El as f,mt as g,Vl as h,al as i,Nl as j,xl as k,Rl as l,Sl as m,Gl as n,Tl as o,wl as p,Te as q,$t as r,_l as s,Pl as t,yl as u,zl as v,Ol as w,Ml as x};