dockview-core 7.0.3 → 8.0.0

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 (374) hide show
  1. package/LICENCE.md +21 -0
  2. package/README.md +17 -86
  3. package/dist/cjs/api/component.api.d.ts +100 -9
  4. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +45 -1
  5. package/dist/cjs/api/dockviewPanelApi.d.ts +21 -0
  6. package/dist/cjs/dismissableLayer.d.ts +57 -0
  7. package/dist/cjs/dnd/backend.d.ts +2 -2
  8. package/dist/cjs/dnd/dropTargetAnchorContainer.d.ts +12 -0
  9. package/dist/cjs/dnd/droptarget.d.ts +94 -0
  10. package/dist/cjs/dnd/ghost.d.ts +1 -0
  11. package/dist/cjs/dnd/pointer/longPress.d.ts +2 -2
  12. package/dist/cjs/dnd/pointer/pointerDragController.d.ts +5 -2
  13. package/dist/cjs/dnd/pointer/pointerDragSource.d.ts +1 -1
  14. package/dist/cjs/dnd/pointer/pointerDropTarget.d.ts +30 -1
  15. package/dist/cjs/dnd/pointer/pointerGhost.d.ts +1 -1
  16. package/dist/cjs/dockview/accessibilityMessages.d.ts +6 -0
  17. package/dist/cjs/dockview/advancedDnDService.d.ts +46 -0
  18. package/dist/cjs/dockview/components/panel/content.d.ts +1 -1
  19. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +2 -0
  20. package/dist/cjs/dockview/components/tab/tab.d.ts +2 -0
  21. package/dist/cjs/dockview/components/titlebar/floatingTitleBar.d.ts +2 -2
  22. package/dist/cjs/dockview/components/titlebar/groupDragSource.d.ts +1 -1
  23. package/dist/cjs/dockview/components/titlebar/tabGroupChip.d.ts +1 -1
  24. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.d.ts +73 -2
  25. package/dist/cjs/dockview/components/titlebar/tabGroups.d.ts +1 -1
  26. package/dist/cjs/dockview/components/titlebar/tabReorderController.d.ts +295 -0
  27. package/dist/cjs/dockview/components/titlebar/tabs.d.ts +120 -50
  28. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +48 -0
  29. package/dist/cjs/dockview/dndCapabilities.d.ts +1 -1
  30. package/dist/cjs/dockview/dockviewComponent.d.ts +303 -19
  31. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +5 -0
  32. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +52 -2
  33. package/dist/cjs/dockview/dockviewPanel.d.ts +12 -0
  34. package/dist/cjs/dockview/dockviewShell.d.ts +48 -24
  35. package/dist/cjs/dockview/edgeGroupService.d.ts +20 -0
  36. package/dist/cjs/dockview/events.d.ts +6 -0
  37. package/dist/cjs/dockview/liveRegionService.d.ts +18 -5
  38. package/dist/cjs/dockview/moduleContracts.d.ts +480 -14
  39. package/dist/cjs/dockview/modules.d.ts +101 -22
  40. package/dist/cjs/dockview/options.d.ts +337 -30
  41. package/dist/cjs/dockview/optionsModules.d.ts +73 -0
  42. package/dist/cjs/dockview/popoutWindowService.d.ts +15 -10
  43. package/dist/cjs/dockview/rootDropTargetService.d.ts +11 -0
  44. package/dist/cjs/dockview/tabGroupAccent.d.ts +1 -1
  45. package/dist/cjs/dockview/tabGroupChipsService.d.ts +10 -0
  46. package/dist/cjs/dockview/theme.d.ts +2 -2
  47. package/dist/cjs/dockview/types.d.ts +3 -0
  48. package/dist/cjs/dom.d.ts +9 -1
  49. package/dist/cjs/gridview/baseComponentGridview.d.ts +2 -2
  50. package/dist/cjs/gridview/gridview.d.ts +2 -0
  51. package/dist/cjs/index.d.ts +35 -29
  52. package/dist/cjs/lifecycle.d.ts +1 -0
  53. package/dist/cjs/overlay/overlay.d.ts +4 -2
  54. package/dist/cjs/overlay/overlayRenderContainer.d.ts +8 -0
  55. package/dist/cjs/paneview/paneview.d.ts +2 -1
  56. package/dist/cjs/paneview/paneviewComponent.d.ts +3 -0
  57. package/dist/cjs/paneview/paneviewPanel.d.ts +5 -0
  58. package/dist/cjs/svg.d.ts +1 -0
  59. package/dist/cjs/types.d.ts +8 -0
  60. package/dist/dockview-core.js +18391 -19679
  61. package/dist/dockview-core.min.js +4138 -6
  62. package/dist/dockview-core.min.noStyle.js +6 -7
  63. package/dist/dockview-core.noStyle.js +18390 -19656
  64. package/dist/package/main.cjs.js +18002 -19268
  65. package/dist/package/main.cjs.min.js +6 -6
  66. package/dist/package/main.esm.min.mjs +6 -6
  67. package/dist/package/main.esm.mjs +17959 -19260
  68. package/package.json +81 -77
  69. package/dist/cjs/api/component.api.js +0 -1242
  70. package/dist/cjs/api/dockviewGroupPanelApi.js +0 -200
  71. package/dist/cjs/api/dockviewPanelApi.js +0 -172
  72. package/dist/cjs/api/entryPoints.js +0 -27
  73. package/dist/cjs/api/gridviewPanelApi.js +0 -45
  74. package/dist/cjs/api/panelApi.js +0 -133
  75. package/dist/cjs/api/paneviewPanelApi.js +0 -57
  76. package/dist/cjs/api/splitviewPanelApi.js +0 -47
  77. package/dist/cjs/array.js +0 -66
  78. package/dist/cjs/constants.js +0 -11
  79. package/dist/cjs/dnd/backend.js +0 -171
  80. package/dist/cjs/dnd/dataTransfer.js +0 -100
  81. package/dist/cjs/dnd/dnd.js +0 -74
  82. package/dist/cjs/dnd/dropOverlay.js +0 -197
  83. package/dist/cjs/dnd/dropTargetAnchorContainer.js +0 -104
  84. package/dist/cjs/dnd/droptarget.js +0 -362
  85. package/dist/cjs/dnd/ghost.js +0 -17
  86. package/dist/cjs/dnd/pointer/index.js +0 -13
  87. package/dist/cjs/dnd/pointer/longPress.js +0 -151
  88. package/dist/cjs/dnd/pointer/pointerDragController.js +0 -243
  89. package/dist/cjs/dnd/pointer/pointerDragSource.js +0 -197
  90. package/dist/cjs/dnd/pointer/pointerDropTarget.js +0 -198
  91. package/dist/cjs/dnd/pointer/pointerGhost.js +0 -44
  92. package/dist/cjs/dnd/pointer/types.js +0 -2
  93. package/dist/cjs/dockview/accessibilityMessages.js +0 -51
  94. package/dist/cjs/dockview/allModules.js +0 -25
  95. package/dist/cjs/dockview/components/panel/content.js +0 -213
  96. package/dist/cjs/dockview/components/popupService.js +0 -132
  97. package/dist/cjs/dockview/components/tab/defaultTab.js +0 -70
  98. package/dist/cjs/dockview/components/tab/tab.js +0 -281
  99. package/dist/cjs/dockview/components/titlebar/floatingTitleBar.js +0 -95
  100. package/dist/cjs/dockview/components/titlebar/groupDragSource.js +0 -218
  101. package/dist/cjs/dockview/components/titlebar/tabGroupChip.js +0 -104
  102. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.js +0 -477
  103. package/dist/cjs/dockview/components/titlebar/tabGroups.js +0 -854
  104. package/dist/cjs/dockview/components/titlebar/tabOverflowControl.js +0 -19
  105. package/dist/cjs/dockview/components/titlebar/tabs.js +0 -2016
  106. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +0 -458
  107. package/dist/cjs/dockview/components/titlebar/voidContainer.js +0 -120
  108. package/dist/cjs/dockview/components/watermark/watermark.js +0 -40
  109. package/dist/cjs/dockview/deserializer.js +0 -39
  110. package/dist/cjs/dockview/dndCapabilities.js +0 -39
  111. package/dist/cjs/dockview/dockviewComponent.js +0 -3896
  112. package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +0 -70
  113. package/dist/cjs/dockview/dockviewGroupPanel.js +0 -204
  114. package/dist/cjs/dockview/dockviewGroupPanelModel.js +0 -1514
  115. package/dist/cjs/dockview/dockviewPanel.js +0 -265
  116. package/dist/cjs/dockview/dockviewPanelModel.js +0 -105
  117. package/dist/cjs/dockview/dockviewShell.js +0 -744
  118. package/dist/cjs/dockview/edgeGroupService.js +0 -128
  119. package/dist/cjs/dockview/events.js +0 -67
  120. package/dist/cjs/dockview/floatingGroupService.js +0 -231
  121. package/dist/cjs/dockview/framework.js +0 -2
  122. package/dist/cjs/dockview/headerActionsService.js +0 -149
  123. package/dist/cjs/dockview/liveRegionService.js +0 -185
  124. package/dist/cjs/dockview/moduleContracts.js +0 -2
  125. package/dist/cjs/dockview/modules.js +0 -304
  126. package/dist/cjs/dockview/options.js +0 -103
  127. package/dist/cjs/dockview/popoutWindowService.js +0 -261
  128. package/dist/cjs/dockview/rootDropTargetService.js +0 -87
  129. package/dist/cjs/dockview/strictEventsSequencing.js +0 -63
  130. package/dist/cjs/dockview/tabGroup.js +0 -219
  131. package/dist/cjs/dockview/tabGroupAccent.js +0 -126
  132. package/dist/cjs/dockview/theme.js +0 -139
  133. package/dist/cjs/dockview/types.js +0 -2
  134. package/dist/cjs/dockview/validate.js +0 -76
  135. package/dist/cjs/dockview/watermarkService.js +0 -61
  136. package/dist/cjs/dom.js +0 -543
  137. package/dist/cjs/events.js +0 -296
  138. package/dist/cjs/framwork.js +0 -2
  139. package/dist/cjs/gridview/baseComponentGridview.js +0 -330
  140. package/dist/cjs/gridview/basePanelView.js +0 -162
  141. package/dist/cjs/gridview/branchNode.js +0 -372
  142. package/dist/cjs/gridview/gridview.js +0 -776
  143. package/dist/cjs/gridview/gridviewComponent.js +0 -363
  144. package/dist/cjs/gridview/gridviewPanel.js +0 -249
  145. package/dist/cjs/gridview/leafNode.js +0 -169
  146. package/dist/cjs/gridview/options.js +0 -17
  147. package/dist/cjs/gridview/types.js +0 -2
  148. package/dist/cjs/index.js +0 -105
  149. package/dist/cjs/lifecycle.js +0 -80
  150. package/dist/cjs/math.js +0 -38
  151. package/dist/cjs/overlay/overlay.js +0 -602
  152. package/dist/cjs/overlay/overlayRenderContainer.js +0 -309
  153. package/dist/cjs/panel/types.js +0 -2
  154. package/dist/cjs/paneview/defaultPaneviewHeader.js +0 -92
  155. package/dist/cjs/paneview/draggablePaneviewPanel.js +0 -141
  156. package/dist/cjs/paneview/options.js +0 -44
  157. package/dist/cjs/paneview/paneview.js +0 -203
  158. package/dist/cjs/paneview/paneviewComponent.js +0 -430
  159. package/dist/cjs/paneview/paneviewPanel.js +0 -275
  160. package/dist/cjs/popoutWindow.js +0 -244
  161. package/dist/cjs/resizable.js +0 -97
  162. package/dist/cjs/scrollbar.js +0 -169
  163. package/dist/cjs/splitview/options.js +0 -19
  164. package/dist/cjs/splitview/splitview.js +0 -999
  165. package/dist/cjs/splitview/splitviewComponent.js +0 -401
  166. package/dist/cjs/splitview/splitviewPanel.js +0 -179
  167. package/dist/cjs/splitview/viewItem.js +0 -119
  168. package/dist/cjs/svg.js +0 -43
  169. package/dist/cjs/types.js +0 -2
  170. package/dist/dockview-core.min.js.map +0 -1
  171. package/dist/dockview-core.min.noStyle.js.map +0 -1
  172. package/dist/esm/api/component.api.d.ts +0 -640
  173. package/dist/esm/api/component.api.js +0 -887
  174. package/dist/esm/api/dockviewGroupPanelApi.d.ts +0 -109
  175. package/dist/esm/api/dockviewGroupPanelApi.js +0 -155
  176. package/dist/esm/api/dockviewPanelApi.d.ts +0 -84
  177. package/dist/esm/api/dockviewPanelApi.js +0 -124
  178. package/dist/esm/api/entryPoints.d.ts +0 -9
  179. package/dist/esm/api/entryPoints.js +0 -21
  180. package/dist/esm/api/gridviewPanelApi.d.ts +0 -37
  181. package/dist/esm/api/gridviewPanelApi.js +0 -23
  182. package/dist/esm/api/panelApi.d.ts +0 -100
  183. package/dist/esm/api/panelApi.js +0 -87
  184. package/dist/esm/api/paneviewPanelApi.d.ts +0 -26
  185. package/dist/esm/api/paneviewPanelApi.js +0 -27
  186. package/dist/esm/api/splitviewPanelApi.d.ts +0 -32
  187. package/dist/esm/api/splitviewPanelApi.js +0 -25
  188. package/dist/esm/array.d.ts +0 -13
  189. package/dist/esm/array.js +0 -57
  190. package/dist/esm/constants.d.ts +0 -8
  191. package/dist/esm/constants.js +0 -8
  192. package/dist/esm/dnd/backend.d.ts +0 -70
  193. package/dist/esm/dnd/backend.js +0 -148
  194. package/dist/esm/dnd/dataTransfer.d.ts +0 -31
  195. package/dist/esm/dnd/dataTransfer.js +0 -67
  196. package/dist/esm/dnd/dnd.d.ts +0 -32
  197. package/dist/esm/dnd/dnd.js +0 -51
  198. package/dist/esm/dnd/dropOverlay.d.ts +0 -20
  199. package/dist/esm/dnd/dropOverlay.js +0 -192
  200. package/dist/esm/dnd/dropTargetAnchorContainer.d.ts +0 -16
  201. package/dist/esm/dnd/dropTargetAnchorContainer.js +0 -73
  202. package/dist/esm/dnd/droptarget.d.ts +0 -116
  203. package/dist/esm/dnd/droptarget.js +0 -316
  204. package/dist/esm/dnd/ghost.d.ts +0 -4
  205. package/dist/esm/dnd/ghost.js +0 -14
  206. package/dist/esm/dnd/pointer/index.d.ts +0 -11
  207. package/dist/esm/dnd/pointer/index.js +0 -5
  208. package/dist/esm/dnd/pointer/longPress.d.ts +0 -32
  209. package/dist/esm/dnd/pointer/longPress.js +0 -127
  210. package/dist/esm/dnd/pointer/pointerDragController.d.ts +0 -60
  211. package/dist/esm/dnd/pointer/pointerDragController.js +0 -193
  212. package/dist/esm/dnd/pointer/pointerDragSource.d.ts +0 -61
  213. package/dist/esm/dnd/pointer/pointerDragSource.js +0 -173
  214. package/dist/esm/dnd/pointer/pointerDropTarget.d.ts +0 -39
  215. package/dist/esm/dnd/pointer/pointerDropTarget.js +0 -168
  216. package/dist/esm/dnd/pointer/pointerGhost.d.ts +0 -30
  217. package/dist/esm/dnd/pointer/pointerGhost.js +0 -39
  218. package/dist/esm/dnd/pointer/types.d.ts +0 -16
  219. package/dist/esm/dnd/pointer/types.js +0 -1
  220. package/dist/esm/dockview/accessibilityMessages.d.ts +0 -32
  221. package/dist/esm/dockview/accessibilityMessages.js +0 -30
  222. package/dist/esm/dockview/allModules.d.ts +0 -8
  223. package/dist/esm/dockview/allModules.js +0 -22
  224. package/dist/esm/dockview/components/panel/content.d.ts +0 -54
  225. package/dist/esm/dockview/components/panel/content.js +0 -185
  226. package/dist/esm/dockview/components/popupService.d.ts +0 -21
  227. package/dist/esm/dockview/components/popupService.js +0 -108
  228. package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -12
  229. package/dist/esm/dockview/components/tab/defaultTab.js +0 -43
  230. package/dist/esm/dockview/components/tab/tab.d.ts +0 -44
  231. package/dist/esm/dockview/components/tab/tab.js +0 -242
  232. package/dist/esm/dockview/components/titlebar/floatingTitleBar.d.ts +0 -34
  233. package/dist/esm/dockview/components/titlebar/floatingTitleBar.js +0 -65
  234. package/dist/esm/dockview/components/titlebar/groupDragSource.d.ts +0 -51
  235. package/dist/esm/dockview/components/titlebar/groupDragSource.js +0 -178
  236. package/dist/esm/dockview/components/titlebar/tabGroupChip.d.ts +0 -37
  237. package/dist/esm/dockview/components/titlebar/tabGroupChip.js +0 -77
  238. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.d.ts +0 -72
  239. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.js +0 -360
  240. package/dist/esm/dockview/components/titlebar/tabGroups.d.ts +0 -107
  241. package/dist/esm/dockview/components/titlebar/tabGroups.js +0 -621
  242. package/dist/esm/dockview/components/titlebar/tabOverflowControl.d.ts +0 -8
  243. package/dist/esm/dockview/components/titlebar/tabOverflowControl.js +0 -16
  244. package/dist/esm/dockview/components/titlebar/tabs.d.ts +0 -167
  245. package/dist/esm/dockview/components/titlebar/tabs.js +0 -1653
  246. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +0 -104
  247. package/dist/esm/dockview/components/titlebar/tabsContainer.js +0 -359
  248. package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +0 -21
  249. package/dist/esm/dockview/components/titlebar/voidContainer.js +0 -92
  250. package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -8
  251. package/dist/esm/dockview/components/watermark/watermark.js +0 -14
  252. package/dist/esm/dockview/deserializer.d.ts +0 -12
  253. package/dist/esm/dockview/deserializer.js +0 -34
  254. package/dist/esm/dockview/dndCapabilities.d.ts +0 -19
  255. package/dist/esm/dockview/dndCapabilities.js +0 -36
  256. package/dist/esm/dockview/dockviewComponent.d.ts +0 -626
  257. package/dist/esm/dockview/dockviewComponent.js +0 -3214
  258. package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +0 -45
  259. package/dist/esm/dockview/dockviewFloatingGroupPanel.js +0 -44
  260. package/dist/esm/dockview/dockviewGroupPanel.d.ts +0 -35
  261. package/dist/esm/dockview/dockviewGroupPanel.js +0 -142
  262. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +0 -358
  263. package/dist/esm/dockview/dockviewGroupPanelModel.js +0 -1180
  264. package/dist/esm/dockview/dockviewPanel.d.ts +0 -69
  265. package/dist/esm/dockview/dockviewPanel.js +0 -178
  266. package/dist/esm/dockview/dockviewPanelModel.d.ts +0 -37
  267. package/dist/esm/dockview/dockviewPanelModel.js +0 -81
  268. package/dist/esm/dockview/dockviewShell.d.ts +0 -150
  269. package/dist/esm/dockview/dockviewShell.js +0 -678
  270. package/dist/esm/dockview/edgeGroupService.d.ts +0 -38
  271. package/dist/esm/dockview/edgeGroupService.js +0 -63
  272. package/dist/esm/dockview/events.d.ts +0 -38
  273. package/dist/esm/dockview/events.js +0 -34
  274. package/dist/esm/dockview/floatingGroupService.d.ts +0 -37
  275. package/dist/esm/dockview/floatingGroupService.js +0 -150
  276. package/dist/esm/dockview/framework.d.ts +0 -65
  277. package/dist/esm/dockview/framework.js +0 -1
  278. package/dist/esm/dockview/headerActionsService.d.ts +0 -32
  279. package/dist/esm/dockview/headerActionsService.js +0 -86
  280. package/dist/esm/dockview/liveRegionService.d.ts +0 -53
  281. package/dist/esm/dockview/liveRegionService.js +0 -159
  282. package/dist/esm/dockview/moduleContracts.d.ts +0 -119
  283. package/dist/esm/dockview/moduleContracts.js +0 -1
  284. package/dist/esm/dockview/modules.d.ts +0 -110
  285. package/dist/esm/dockview/modules.js +0 -170
  286. package/dist/esm/dockview/options.d.ts +0 -474
  287. package/dist/esm/dockview/options.js +0 -77
  288. package/dist/esm/dockview/popoutWindowService.d.ts +0 -95
  289. package/dist/esm/dockview/popoutWindowService.js +0 -175
  290. package/dist/esm/dockview/rootDropTargetService.d.ts +0 -35
  291. package/dist/esm/dockview/rootDropTargetService.js +0 -82
  292. package/dist/esm/dockview/strictEventsSequencing.d.ts +0 -7
  293. package/dist/esm/dockview/strictEventsSequencing.js +0 -41
  294. package/dist/esm/dockview/tabGroup.d.ts +0 -99
  295. package/dist/esm/dockview/tabGroup.js +0 -144
  296. package/dist/esm/dockview/tabGroupAccent.d.ts +0 -65
  297. package/dist/esm/dockview/tabGroupAccent.js +0 -114
  298. package/dist/esm/dockview/theme.d.ts +0 -86
  299. package/dist/esm/dockview/theme.js +0 -136
  300. package/dist/esm/dockview/types.d.ts +0 -53
  301. package/dist/esm/dockview/types.js +0 -1
  302. package/dist/esm/dockview/validate.d.ts +0 -0
  303. package/dist/esm/dockview/validate.js +0 -76
  304. package/dist/esm/dockview/watermarkService.d.ts +0 -30
  305. package/dist/esm/dockview/watermarkService.js +0 -56
  306. package/dist/esm/dom.d.ts +0 -60
  307. package/dist/esm/dom.js +0 -375
  308. package/dist/esm/events.d.ts +0 -79
  309. package/dist/esm/events.js +0 -219
  310. package/dist/esm/framwork.d.ts +0 -4
  311. package/dist/esm/framwork.js +0 -1
  312. package/dist/esm/gridview/baseComponentGridview.d.ts +0 -111
  313. package/dist/esm/gridview/baseComponentGridview.js +0 -237
  314. package/dist/esm/gridview/basePanelView.d.ts +0 -40
  315. package/dist/esm/gridview/basePanelView.js +0 -91
  316. package/dist/esm/gridview/branchNode.d.ts +0 -57
  317. package/dist/esm/gridview/branchNode.js +0 -257
  318. package/dist/esm/gridview/gridview.d.ts +0 -158
  319. package/dist/esm/gridview/gridview.js +0 -681
  320. package/dist/esm/gridview/gridviewComponent.d.ts +0 -88
  321. package/dist/esm/gridview/gridviewComponent.js +0 -265
  322. package/dist/esm/gridview/gridviewPanel.d.ts +0 -77
  323. package/dist/esm/gridview/gridviewPanel.js +0 -182
  324. package/dist/esm/gridview/leafNode.d.ts +0 -34
  325. package/dist/esm/gridview/leafNode.js +0 -102
  326. package/dist/esm/gridview/options.d.ts +0 -15
  327. package/dist/esm/gridview/options.js +0 -14
  328. package/dist/esm/gridview/types.d.ts +0 -3
  329. package/dist/esm/gridview/types.js +0 -1
  330. package/dist/esm/index.d.ts +0 -58
  331. package/dist/esm/index.js +0 -44
  332. package/dist/esm/lifecycle.d.ts +0 -25
  333. package/dist/esm/lifecycle.js +0 -56
  334. package/dist/esm/math.d.ts +0 -5
  335. package/dist/esm/math.js +0 -32
  336. package/dist/esm/overlay/overlay.d.ts +0 -91
  337. package/dist/esm/overlay/overlay.js +0 -520
  338. package/dist/esm/overlay/overlayRenderContainer.d.ts +0 -24
  339. package/dist/esm/overlay/overlayRenderContainer.js +0 -249
  340. package/dist/esm/panel/types.d.ts +0 -33
  341. package/dist/esm/panel/types.js +0 -1
  342. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +0 -21
  343. package/dist/esm/paneview/defaultPaneviewHeader.js +0 -65
  344. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +0 -38
  345. package/dist/esm/paneview/draggablePaneviewPanel.js +0 -107
  346. package/dist/esm/paneview/options.d.ts +0 -30
  347. package/dist/esm/paneview/options.js +0 -22
  348. package/dist/esm/paneview/paneview.d.ts +0 -41
  349. package/dist/esm/paneview/paneview.js +0 -148
  350. package/dist/esm/paneview/paneviewComponent.d.ts +0 -133
  351. package/dist/esm/paneview/paneviewComponent.js +0 -306
  352. package/dist/esm/paneview/paneviewPanel.d.ts +0 -98
  353. package/dist/esm/paneview/paneviewPanel.js +0 -192
  354. package/dist/esm/popoutWindow.d.ts +0 -38
  355. package/dist/esm/popoutWindow.js +0 -170
  356. package/dist/esm/resizable.d.ts +0 -12
  357. package/dist/esm/resizable.js +0 -66
  358. package/dist/esm/scrollbar.d.ts +0 -15
  359. package/dist/esm/scrollbar.js +0 -139
  360. package/dist/esm/splitview/options.d.ts +0 -21
  361. package/dist/esm/splitview/options.js +0 -16
  362. package/dist/esm/splitview/splitview.d.ts +0 -145
  363. package/dist/esm/splitview/splitview.js +0 -770
  364. package/dist/esm/splitview/splitviewComponent.d.ts +0 -101
  365. package/dist/esm/splitview/splitviewComponent.js +0 -267
  366. package/dist/esm/splitview/splitviewPanel.d.ts +0 -45
  367. package/dist/esm/splitview/splitviewPanel.js +0 -108
  368. package/dist/esm/splitview/viewItem.d.ts +0 -25
  369. package/dist/esm/splitview/viewItem.js +0 -74
  370. package/dist/esm/svg.d.ts +0 -3
  371. package/dist/esm/svg.js +0 -31
  372. package/dist/esm/types.d.ts +0 -31
  373. package/dist/esm/types.js +0 -1
  374. package/dist/styles/dockview.css +0 -3436
@@ -1,854 +0,0 @@
1
- "use strict";
2
- var __values = (this && this.__values) || function(o) {
3
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
- if (m) return m.call(o);
5
- if (o && typeof o.length === "number") return {
6
- next: function () {
7
- if (o && i >= o.length) o = void 0;
8
- return { value: o && o[i++], done: !o };
9
- }
10
- };
11
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
- };
13
- var __read = (this && this.__read) || function (o, n) {
14
- var m = typeof Symbol === "function" && o[Symbol.iterator];
15
- if (!m) return o;
16
- var i = m.call(o), r, ar = [], e;
17
- try {
18
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
- }
20
- catch (error) { e = { error: error }; }
21
- finally {
22
- try {
23
- if (r && !r.done && (m = i["return"])) m.call(i);
24
- }
25
- finally { if (e) throw e.error; }
26
- }
27
- return ar;
28
- };
29
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
30
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31
- if (ar || !(i in from)) {
32
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
33
- ar[i] = from[i];
34
- }
35
- }
36
- return to.concat(ar || Array.prototype.slice.call(from));
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.TabGroupManager = void 0;
40
- var dom_1 = require("../../../dom");
41
- var events_1 = require("../../../events");
42
- var dataTransfer_1 = require("../../../dnd/dataTransfer");
43
- var backend_1 = require("../../../dnd/backend");
44
- var longPress_1 = require("../../../dnd/pointer/longPress");
45
- var lifecycle_1 = require("../../../lifecycle");
46
- var dndCapabilities_1 = require("../../dndCapabilities");
47
- var tabGroupAccent_1 = require("../../tabGroupAccent");
48
- var tabGroupChip_1 = require("./tabGroupChip");
49
- var droptarget_1 = require("../../../dnd/droptarget");
50
- var tabGroupIndicator_1 = require("./tabGroupIndicator");
51
- var EMPTY_MAP = new Map();
52
- var TabGroupManager = /** @class */ (function () {
53
- function TabGroupManager(_ctx, _callbacks) {
54
- this._ctx = _ctx;
55
- this._callbacks = _callbacks;
56
- this._chipRenderers = new Map();
57
- this._indicator = null;
58
- this._skipNextCollapseAnimation = false;
59
- this._pendingTransitionCleanups = new Map();
60
- }
61
- Object.defineProperty(TabGroupManager.prototype, "chipRenderers", {
62
- get: function () {
63
- return this._chipRenderers;
64
- },
65
- enumerable: false,
66
- configurable: true
67
- });
68
- Object.defineProperty(TabGroupManager.prototype, "groupUnderlines", {
69
- get: function () {
70
- var _a, _b;
71
- return (_b = (_a = this._indicator) === null || _a === void 0 ? void 0 : _a.underlines) !== null && _b !== void 0 ? _b : EMPTY_MAP;
72
- },
73
- enumerable: false,
74
- configurable: true
75
- });
76
- Object.defineProperty(TabGroupManager.prototype, "skipNextCollapseAnimation", {
77
- get: function () {
78
- return this._skipNextCollapseAnimation;
79
- },
80
- set: function (value) {
81
- this._skipNextCollapseAnimation = value;
82
- },
83
- enumerable: false,
84
- configurable: true
85
- });
86
- /**
87
- * Synchronize chip elements and CSS classes for all tab groups
88
- * in the parent group model. Call after any tab group mutation.
89
- */
90
- TabGroupManager.prototype.update = function () {
91
- var e_1, _a, e_2, _b;
92
- var _c;
93
- var model = this._ctx.group.model;
94
- var tabGroups = model.getTabGroups();
95
- // Track which group IDs are still active
96
- var activeGroupIds = new Set();
97
- try {
98
- for (var tabGroups_1 = __values(tabGroups), tabGroups_1_1 = tabGroups_1.next(); !tabGroups_1_1.done; tabGroups_1_1 = tabGroups_1.next()) {
99
- var tabGroup = tabGroups_1_1.value;
100
- activeGroupIds.add(tabGroup.id);
101
- this._ensureChipForGroup(tabGroup);
102
- this._positionChipForGroup(tabGroup);
103
- }
104
- }
105
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
106
- finally {
107
- try {
108
- if (tabGroups_1_1 && !tabGroups_1_1.done && (_a = tabGroups_1.return)) _a.call(tabGroups_1);
109
- }
110
- finally { if (e_1) throw e_1.error; }
111
- }
112
- try {
113
- // Remove chips for dissolved/destroyed groups
114
- for (var _d = __values(this._chipRenderers), _e = _d.next(); !_e.done; _e = _d.next()) {
115
- var _f = __read(_e.value, 2), groupId = _f[0], entry = _f[1];
116
- if (!activeGroupIds.has(groupId)) {
117
- entry.chip.element.remove();
118
- entry.chip.dispose();
119
- (_c = entry.dragSourcesDisposable) === null || _c === void 0 ? void 0 : _c.dispose();
120
- entry.disposable.dispose();
121
- this._chipRenderers.delete(groupId);
122
- }
123
- }
124
- }
125
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
126
- finally {
127
- try {
128
- if (_e && !_e.done && (_b = _d.return)) _b.call(_d);
129
- }
130
- finally { if (e_2) throw e_2.error; }
131
- }
132
- // Update CSS classes on all tabs
133
- this._updateTabGroupClasses();
134
- };
135
- /**
136
- * Re-read the active palette and re-apply colors to chips, tabs and
137
- * the indicator. Called when `tabGroupColors` / `tabGroupAccent`
138
- * options change at runtime.
139
- */
140
- TabGroupManager.prototype.refreshAccents = function () {
141
- var e_3, _a;
142
- var _b, _c;
143
- try {
144
- for (var _d = __values(this._ctx.group.model.getTabGroups()), _e = _d.next(); !_e.done; _e = _d.next()) {
145
- var tabGroup = _e.value;
146
- var entry = this._chipRenderers.get(tabGroup.id);
147
- (_c = entry === null || entry === void 0 ? void 0 : (_b = entry.chip).update) === null || _c === void 0 ? void 0 : _c.call(_b, { tabGroup: tabGroup });
148
- }
149
- }
150
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
151
- finally {
152
- try {
153
- if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
154
- }
155
- finally { if (e_3) throw e_3.error; }
156
- }
157
- this._updateTabGroupClasses();
158
- };
159
- TabGroupManager.prototype.positionAllChips = function () {
160
- var e_4, _a;
161
- if (this._chipRenderers.size === 0) {
162
- return;
163
- }
164
- try {
165
- for (var _b = __values(this._ctx.group.model.getTabGroups()), _c = _b.next(); !_c.done; _c = _b.next()) {
166
- var tabGroup = _c.value;
167
- this._positionChipForGroup(tabGroup);
168
- }
169
- }
170
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
171
- finally {
172
- try {
173
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
174
- }
175
- finally { if (e_4) throw e_4.error; }
176
- }
177
- };
178
- TabGroupManager.prototype.updateDirection = function () {
179
- var e_5, _a;
180
- var isVertical = this._ctx.getDirection() === 'vertical';
181
- try {
182
- for (var _b = __values(this._chipRenderers), _c = _b.next(); !_c.done; _c = _b.next()) {
183
- var _d = __read(_c.value, 2), entry = _d[1];
184
- entry.dropTarget.setTargetZones(isVertical ? ['top'] : ['left']);
185
- }
186
- }
187
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
188
- finally {
189
- try {
190
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
191
- }
192
- finally { if (e_5) throw e_5.error; }
193
- }
194
- };
195
- TabGroupManager.prototype.snapshotChipWidths = function () {
196
- var e_6, _a;
197
- var widths = new Map();
198
- try {
199
- for (var _b = __values(this._chipRenderers), _c = _b.next(); !_c.done; _c = _b.next()) {
200
- var _d = __read(_c.value, 2), groupId = _d[0], entry = _d[1];
201
- widths.set(groupId, entry.chip.element.getBoundingClientRect().width);
202
- }
203
- }
204
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
205
- finally {
206
- try {
207
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
208
- }
209
- finally { if (e_6) throw e_6.error; }
210
- }
211
- return widths;
212
- };
213
- TabGroupManager.prototype.positionUnderlines = function () {
214
- var _a;
215
- (_a = this._indicator) === null || _a === void 0 ? void 0 : _a.positionUnderlines();
216
- };
217
- TabGroupManager.prototype.trackUnderlines = function () {
218
- var _a;
219
- (_a = this._indicator) === null || _a === void 0 ? void 0 : _a.trackUnderlines();
220
- };
221
- TabGroupManager.prototype.setGroupDragImage = function (event, tabGroup, chipEl) {
222
- if (!event.dataTransfer) {
223
- return;
224
- }
225
- var isVertical = this._ctx.getDirection() === 'vertical';
226
- // Clone the entire tabs list so cloned nodes inherit all
227
- // theme styles, CSS variables and class-based rules.
228
- var clone = this._ctx.tabsList.cloneNode(true);
229
- if (isVertical) {
230
- // Force horizontal orientation for the drag ghost by
231
- // removing vertical CSS classes and overriding writing-mode.
232
- clone.classList.remove('dv-tabs-container-vertical', 'dv-vertical');
233
- clone.classList.add('dv-horizontal');
234
- clone.style.writingMode = 'horizontal-tb';
235
- clone.style.height = "".concat(this._ctx.tabsList.offsetWidth, "px");
236
- }
237
- else {
238
- clone.style.height = "".concat(this._ctx.tabsList.offsetHeight, "px");
239
- }
240
- clone.style.width = 'auto';
241
- clone.style.overflow = 'visible';
242
- clone.style.pointerEvents = 'none';
243
- // Remove all elements except the chip so the drag ghost
244
- // shows only the chip regardless of the group's expanded state.
245
- var children = Array.from(clone.children);
246
- var realChildren = Array.from(this._ctx.tabsList.children);
247
- for (var i = children.length - 1; i >= 0; i--) {
248
- var real = realChildren[i];
249
- if (real === chipEl) {
250
- continue; // keep the chip only
251
- }
252
- children[i].remove();
253
- }
254
- // Wrap the clone in a minimal ancestor chain so that CSS
255
- // selectors like `.dv-groupview.dv-active-group > .dv-tabs-and-actions-container .dv-tabs-container > .dv-tab`
256
- // match the cloned tabs and apply correct color/background.
257
- var wrapper = document.createElement('div');
258
- wrapper.className = 'dv-groupview dv-active-group';
259
- wrapper.style.position = 'fixed';
260
- wrapper.style.top = '-10000px';
261
- wrapper.style.left = '0px';
262
- wrapper.style.height = 'auto';
263
- wrapper.style.width = 'auto';
264
- wrapper.style.pointerEvents = 'none';
265
- var actionsWrapper = document.createElement('div');
266
- actionsWrapper.className = 'dv-tabs-and-actions-container';
267
- actionsWrapper.style.height = 'auto';
268
- actionsWrapper.style.width = 'auto';
269
- wrapper.appendChild(actionsWrapper);
270
- actionsWrapper.appendChild(clone);
271
- // Append inside the dockview root so CSS variables are inherited
272
- this._ctx.accessor.element.appendChild(wrapper);
273
- // Compute cursor offset relative to the wrapper element.
274
- // The cloned chip is the first .dv-tab-group-chip in the clone.
275
- var clonedChip = clone.querySelector('.dv-tab-group-chip');
276
- var chipRect = chipEl.getBoundingClientRect();
277
- var cursorInChipX = event.clientX - chipRect.left;
278
- var cursorInChipY = event.clientY - chipRect.top;
279
- if (clonedChip) {
280
- var clonedChipRect = clonedChip.getBoundingClientRect();
281
- var wrapperRect = wrapper.getBoundingClientRect();
282
- var offsetX = clonedChipRect.left - wrapperRect.left + cursorInChipX;
283
- var offsetY = clonedChipRect.top - wrapperRect.top + cursorInChipY;
284
- event.dataTransfer.setDragImage(wrapper, offsetX, offsetY);
285
- }
286
- else {
287
- event.dataTransfer.setDragImage(wrapper, cursorInChipX, cursorInChipY);
288
- }
289
- // Clean up after the browser captures the image
290
- requestAnimationFrame(function () {
291
- wrapper.remove();
292
- });
293
- };
294
- TabGroupManager.prototype.cleanupTransition = function (panelId) {
295
- var _a;
296
- (_a = this._pendingTransitionCleanups.get(panelId)) === null || _a === void 0 ? void 0 : _a();
297
- this._pendingTransitionCleanups.delete(panelId);
298
- };
299
- TabGroupManager.prototype.updateDragAndDropState = function () {
300
- var e_7, _a;
301
- var _b, _c, _d;
302
- var caps = (0, dndCapabilities_1.resolveDndCapabilities)(this._ctx.accessor.options);
303
- try {
304
- for (var _e = __values(this._chipRenderers.values()), _f = _e.next(); !_f.done; _f = _e.next()) {
305
- var entry = _f.value;
306
- entry.chip.element.draggable = caps.html5;
307
- (_b = entry.html5DragSource) === null || _b === void 0 ? void 0 : _b.setDisabled(!caps.html5);
308
- (_c = entry.pointerDragSource) === null || _c === void 0 ? void 0 : _c.setDisabled(!caps.pointer);
309
- (_d = entry.pointerDragSource) === null || _d === void 0 ? void 0 : _d.setTouchOnly(!caps.pointerHandlesMouse);
310
- }
311
- }
312
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
313
- finally {
314
- try {
315
- if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
316
- }
317
- finally { if (e_7) throw e_7.error; }
318
- }
319
- };
320
- /**
321
- * Synchronously dispose the chip drag sources for an in-flight chip
322
- * drag. Called from `_commitGroupMove` so the transfer payload +
323
- * iframe shield are released BEFORE the cross-group move detaches
324
- * the chip (chip dispose is scheduled on a microtask via
325
- * `_scheduleTabGroupUpdate`, which is too late for callers that read
326
- * `getPanelData()` synchronously after the move).
327
- *
328
- * A cross-group move dissolves the source chip entirely, but a
329
- * within-group reorder keeps the same chip element — so the sources are
330
- * cleared to `undefined` here and the subsequent `update()` re-arms them
331
- * via `_ensureChipForGroup`. Without that re-arm the chip would fire a
332
- * native `dragstart` (the element keeps `draggable=true`) but never set
333
- * a transfer payload, leaving the group permanently undraggable after
334
- * its first move. (#1410)
335
- */
336
- TabGroupManager.prototype.disposeChipDrag = function (tabGroupId) {
337
- var _a;
338
- var entry = this._chipRenderers.get(tabGroupId);
339
- if (!entry) {
340
- return;
341
- }
342
- // Optional-chained because tests may inject minimal entries
343
- // that skip the manager's normal `_ensureChipForGroup` flow.
344
- (_a = entry.dragSourcesDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
345
- entry.html5DragSource = undefined;
346
- entry.pointerDragSource = undefined;
347
- entry.dragSourcesDisposable = undefined;
348
- };
349
- /** Cloned chip rect used as the pointer follow-finger ghost. */
350
- TabGroupManager.prototype._buildChipGhostElement = function (chipEl) {
351
- var style = getComputedStyle(chipEl);
352
- var clone = chipEl.cloneNode(true);
353
- Array.from(style).forEach(function (key) {
354
- clone.style.setProperty(key, style.getPropertyValue(key), style.getPropertyPriority(key));
355
- });
356
- clone.style.position = 'absolute';
357
- return clone;
358
- };
359
- TabGroupManager.prototype.disposeAll = function () {
360
- var e_8, _a, e_9, _b;
361
- var _c, _d;
362
- (_c = this._indicator) === null || _c === void 0 ? void 0 : _c.dispose();
363
- this._indicator = null;
364
- try {
365
- for (var _e = __values(this._pendingTransitionCleanups), _f = _e.next(); !_f.done; _f = _e.next()) {
366
- var _g = __read(_f.value, 2), cleanup = _g[1];
367
- cleanup();
368
- }
369
- }
370
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
371
- finally {
372
- try {
373
- if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
374
- }
375
- finally { if (e_8) throw e_8.error; }
376
- }
377
- this._pendingTransitionCleanups.clear();
378
- try {
379
- for (var _h = __values(this._chipRenderers), _j = _h.next(); !_j.done; _j = _h.next()) {
380
- var _k = __read(_j.value, 2), entry = _k[1];
381
- entry.chip.element.remove();
382
- entry.chip.dispose();
383
- (_d = entry.dragSourcesDisposable) === null || _d === void 0 ? void 0 : _d.dispose();
384
- entry.disposable.dispose();
385
- }
386
- }
387
- catch (e_9_1) { e_9 = { error: e_9_1 }; }
388
- finally {
389
- try {
390
- if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
391
- }
392
- finally { if (e_9) throw e_9.error; }
393
- }
394
- this._chipRenderers.clear();
395
- };
396
- TabGroupManager.prototype._ensureIndicator = function () {
397
- var _this = this;
398
- var _a, _b, _c;
399
- var mode = (_b = (_a = this._ctx.accessor.options.theme) === null || _a === void 0 ? void 0 : _a.tabGroupIndicator) !== null && _b !== void 0 ? _b : 'wrap';
400
- var Ctor = mode === 'none' ? tabGroupIndicator_1.NoneTabGroupIndicator : tabGroupIndicator_1.WrapTabGroupIndicator;
401
- // Re-create if the indicator type changed (e.g. theme switch)
402
- if (this._indicator && !(this._indicator instanceof Ctor)) {
403
- this._indicator.dispose();
404
- this._indicator = null;
405
- }
406
- (_c = this._indicator) !== null && _c !== void 0 ? _c : (this._indicator = new Ctor({
407
- tabsList: this._ctx.tabsList,
408
- getTabGroups: function () { return _this._ctx.group.model.getTabGroups(); },
409
- getActivePanelId: function () { var _a; return (_a = _this._ctx.group.activePanel) === null || _a === void 0 ? void 0 : _a.id; },
410
- getTabMap: function () { return _this._ctx.getTabMap(); },
411
- getChipElement: function (id) { var _a; return (_a = _this._chipRenderers.get(id)) === null || _a === void 0 ? void 0 : _a.chip.element; },
412
- getDirection: function () { return _this._ctx.getDirection(); },
413
- getHeaderPosition: function () { return _this._ctx.group.model.headerPosition; },
414
- getColorPalette: function () { return _this._ctx.accessor.tabGroupColorPalette; },
415
- }));
416
- };
417
- /**
418
- * Create the HTML5 + pointer drag sources for a chip (and the direct
419
- * dragend listener that clears the transfer synchronously). Extracted so
420
- * both the initial chip build and the post-move re-arm in
421
- * `_ensureChipForGroup` share one wiring path. (#1410)
422
- */
423
- TabGroupManager.prototype._createChipDragSources = function (chip, tabGroup) {
424
- var _this = this;
425
- var caps = (0, dndCapabilities_1.resolveDndCapabilities)(this._ctx.accessor.options);
426
- chip.element.draggable = caps.html5;
427
- var panelTransfer = dataTransfer_1.LocalSelectionTransfer.getInstance();
428
- // Shared `getData` for both backends. Sets a group-level
429
- // PanelTransfer (panelId=null, tabGroupId identifies the group).
430
- // The returned disposer clears it on drag end.
431
- var getData = function () {
432
- panelTransfer.setData([
433
- new dataTransfer_1.PanelTransfer(_this._ctx.accessor.id, _this._ctx.group.id, null, tabGroup.id),
434
- ], dataTransfer_1.PanelTransfer.prototype);
435
- return {
436
- dispose: function () {
437
- panelTransfer.clearData(dataTransfer_1.PanelTransfer.prototype);
438
- },
439
- };
440
- };
441
- // The chip's HTML5 drag image is the cloned tabs list (chip only),
442
- // mounted inside the dockview root for CSS-variable inheritance and
443
- // positioned against the chip's in-place rect. Layout-dependent
444
- // offset means we set the drag image directly in `onDragStart`
445
- // (inside the dragstart handler) rather than via the generic
446
- // `createGhost` factory, which only knows about ghost specs that
447
- // can be appended to `document.body`.
448
- var html5DragSource = backend_1.html5Backend.createDragSource(chip.element, {
449
- getData: getData,
450
- disabled: !caps.html5,
451
- isCancelled: function () {
452
- return !(0, dndCapabilities_1.resolveDndCapabilities)(_this._ctx.accessor.options).html5;
453
- },
454
- onDragStart: function (event) {
455
- // Type guard via `dataTransfer` — `instanceof DragEvent`
456
- // would throw in jsdom which doesn't ship a DragEvent
457
- // constructor.
458
- if ('dataTransfer' in event && event.dataTransfer) {
459
- _this.setGroupDragImage(event, tabGroup, chip.element);
460
- }
461
- _this._callbacks.onChipDragStart(tabGroup, chip, event);
462
- },
463
- onDragEnd: function (event) {
464
- var _a, _b;
465
- (_b = (_a = _this._callbacks).onChipDragEnd) === null || _b === void 0 ? void 0 : _b.call(_a, tabGroup, chip, event);
466
- },
467
- });
468
- // Synchronous panelTransfer cleanup directly on the chip element.
469
- // `Html5DragSource`'s dragend defers data disposal via `setTimeout(0)`
470
- // so drop handlers can read the payload — but a chip drag that
471
- // ends via `moveGroupOrPanel` (no actual drop event) needs the
472
- // singleton cleared immediately, otherwise a synchronous
473
- // `getPanelData()` after the move still sees the stale chip
474
- // payload. Attached directly (not via `addDisposableListener`) so
475
- // the listener survives chip disposal in the detach-then-dragend
476
- // cross-group path; `once: true` auto-removes after the single
477
- // dragend that we care about. (#1254)
478
- var onDragEndClear = function () {
479
- panelTransfer.clearData(dataTransfer_1.PanelTransfer.prototype);
480
- };
481
- chip.element.addEventListener('dragend', onDragEndClear, {
482
- once: true,
483
- });
484
- var pointerDragSource = backend_1.pointerBackend.createDragSource(chip.element, {
485
- getData: getData,
486
- disabled: !caps.pointer,
487
- touchOnly: !caps.pointerHandlesMouse,
488
- isCancelled: function () {
489
- return !(0, dndCapabilities_1.resolveDndCapabilities)(_this._ctx.accessor.options).pointer;
490
- },
491
- createGhost: function () { return ({
492
- element: _this._buildChipGhostElement(chip.element),
493
- offsetX: 8,
494
- offsetY: 8,
495
- }); },
496
- onDragStart: function (event) {
497
- _this._callbacks.onChipDragStart(tabGroup, chip, event);
498
- },
499
- });
500
- return {
501
- html5DragSource: html5DragSource,
502
- pointerDragSource: pointerDragSource,
503
- disposable: {
504
- dispose: function () {
505
- html5DragSource.dispose();
506
- pointerDragSource.dispose();
507
- chip.element.removeEventListener('dragend', onDragEndClear);
508
- },
509
- },
510
- };
511
- };
512
- TabGroupManager.prototype._ensureChipForGroup = function (tabGroup) {
513
- var _this = this;
514
- var existing = this._chipRenderers.get(tabGroup.id);
515
- if (existing) {
516
- // A committed group move tears down the chip's drag sources via
517
- // `disposeChipDrag`, but a within-group reorder keeps the same
518
- // chip element alive. Re-arm the sources so the group stays
519
- // draggable; without this the chip is stuck after its first
520
- // move — `dragstart` still fires (the element keeps
521
- // `draggable=true`) but no transfer payload is set. (#1410)
522
- if (!existing.html5DragSource) {
523
- var sources = this._createChipDragSources(existing.chip, tabGroup);
524
- existing.html5DragSource = sources.html5DragSource;
525
- existing.pointerDragSource = sources.pointerDragSource;
526
- existing.dragSourcesDisposable = sources.disposable;
527
- }
528
- return;
529
- }
530
- var createChip = this._ctx.accessor.options.createTabGroupChipComponent;
531
- var chip = createChip
532
- ? createChip(tabGroup)
533
- : new tabGroupChip_1.TabGroupChip(this._ctx.accessor.tabGroupColorPalette);
534
- chip.init({ tabGroup: tabGroup, api: this._ctx.accessor.api });
535
- var dragSources = this._createChipDragSources(chip, tabGroup);
536
- var disposables = [
537
- tabGroup.onDidChange(function () {
538
- var _a;
539
- (_a = chip.update) === null || _a === void 0 ? void 0 : _a.call(chip, { tabGroup: tabGroup });
540
- _this._updateTabGroupClasses();
541
- }),
542
- tabGroup.onDidPanelChange(function () {
543
- _this._positionChipForGroup(tabGroup);
544
- _this._updateTabGroupClasses();
545
- }),
546
- tabGroup.onDidCollapseChange(function () {
547
- _this._updateTabGroupClasses();
548
- }),
549
- ];
550
- // Context menu: built-in TabGroupChip already aggregates right-click
551
- // + touch long-press into `onContextMenu`. Custom chip renderers
552
- // don't, so attach a long-press detector and contextmenu listener
553
- // directly on their element.
554
- var onContextMenu = function (event) {
555
- var _a, _b;
556
- // A long-press on a chip should preempt the in-flight pointer
557
- // drag and open the menu instead. Resolve the source from the
558
- // entry so a post-move re-armed source is cancelled, not the
559
- // stale one captured at build time. (#1410)
560
- (_b = (_a = _this._chipRenderers
561
- .get(tabGroup.id)) === null || _a === void 0 ? void 0 : _a.pointerDragSource) === null || _b === void 0 ? void 0 : _b.cancelPending();
562
- _this._callbacks.onChipContextMenu(tabGroup, event);
563
- };
564
- if (chip instanceof tabGroupChip_1.TabGroupChip) {
565
- disposables.push(chip.onContextMenu(onContextMenu));
566
- }
567
- else {
568
- disposables.push(new longPress_1.LongPressDetector(chip.element, {
569
- onLongPress: onContextMenu,
570
- }), (0, events_1.addDisposableListener)(chip.element, 'contextmenu', onContextMenu));
571
- }
572
- // The chip sits before its group's first tab in the DOM, so it
573
- // covers the "drop before the group" position. Without a drop
574
- // target here, dropping a tab over the chip is a dead zone —
575
- // particularly visible when the group is first in the tabs list
576
- // and there's no preceding tab whose right zone covers position 0.
577
- // The smooth animation path already shifts the chip's margin to
578
- // open a gap, so suppress the overlay in that mode.
579
- var isVertical = this._ctx.getDirection() === 'vertical';
580
- var dropTarget = new droptarget_1.Droptarget(chip.element, {
581
- acceptedTargetZones: isVertical ? ['top'] : ['left'],
582
- overlayModel: {
583
- activationSize: { value: 100, type: 'percentage' },
584
- },
585
- canDisplayOverlay: function (event, position) {
586
- var _a;
587
- if (_this._ctx.group.locked) {
588
- return false;
589
- }
590
- if (_this._ctx.accessor.options.disableDnd) {
591
- return false;
592
- }
593
- var data = (0, dataTransfer_1.getPanelData)();
594
- if (_this._ctx.accessor.id === (data === null || data === void 0 ? void 0 : data.viewId)) {
595
- if (((_a = _this._ctx.accessor.options.theme) === null || _a === void 0 ? void 0 : _a.tabAnimation) ===
596
- 'smooth') {
597
- return false;
598
- }
599
- return true;
600
- }
601
- return _this._ctx.group.model.canDisplayOverlay(event, position, 'tab');
602
- },
603
- });
604
- disposables.push(dropTarget, dropTarget.onDrop(function (event) {
605
- _this._callbacks.onChipDrop(tabGroup, event);
606
- }));
607
- var disposable = new (lifecycle_1.CompositeDisposable.bind.apply(lifecycle_1.CompositeDisposable, __spreadArray([void 0], __read(disposables), false)))();
608
- this._chipRenderers.set(tabGroup.id, {
609
- chip: chip,
610
- html5DragSource: dragSources.html5DragSource,
611
- pointerDragSource: dragSources.pointerDragSource,
612
- dragSourcesDisposable: dragSources.disposable,
613
- disposable: disposable,
614
- dropTarget: dropTarget,
615
- });
616
- // Group is born collapsed (cross-group drop, layout restore, etc.):
617
- // its tabs are about to be added without the collapsed class. Skip
618
- // the animation in the upcoming _updateTabGroupClasses call so they
619
- // apply the class instantly instead of transitioning from expanded.
620
- if (tabGroup.collapsed) {
621
- this._skipNextCollapseAnimation = true;
622
- }
623
- };
624
- TabGroupManager.prototype._positionChipForGroup = function (tabGroup) {
625
- var entry = this._chipRenderers.get(tabGroup.id);
626
- if (!entry) {
627
- return;
628
- }
629
- var chipEl = entry.chip.element;
630
- var panelIds = tabGroup.panelIds;
631
- if (panelIds.length === 0) {
632
- chipEl.remove();
633
- return;
634
- }
635
- // Find the first tab element of this group
636
- var firstPanelId = panelIds[0];
637
- var firstTabEntry = this._ctx.getTabMap().get(firstPanelId);
638
- if (!firstTabEntry) {
639
- chipEl.remove();
640
- return;
641
- }
642
- // Insert chip before the first tab of the group
643
- var firstTabEl = firstTabEntry.value.element;
644
- if (chipEl.nextSibling !== firstTabEl) {
645
- this._ctx.tabsList.insertBefore(chipEl, firstTabEl);
646
- }
647
- };
648
- TabGroupManager.prototype._updateTabGroupClasses = function () {
649
- var e_10, _a, e_11, _b, e_12, _c, e_13, _d, e_14, _e, e_15, _f, e_16, _g;
650
- var _this = this;
651
- var _h;
652
- var model = this._ctx.group.model;
653
- var tabGroups = model.getTabGroups();
654
- var tabs = this._ctx.getTabs();
655
- var tabMap = this._ctx.getTabMap();
656
- var hasAnimation = false;
657
- // Build a lookup: panelId → tabGroup
658
- var panelGroupMap = new Map();
659
- try {
660
- for (var tabGroups_2 = __values(tabGroups), tabGroups_2_1 = tabGroups_2.next(); !tabGroups_2_1.done; tabGroups_2_1 = tabGroups_2.next()) {
661
- var tg = tabGroups_2_1.value;
662
- try {
663
- for (var _j = (e_11 = void 0, __values(tg.panelIds)), _k = _j.next(); !_k.done; _k = _j.next()) {
664
- var pid = _k.value;
665
- panelGroupMap.set(pid, tg);
666
- }
667
- }
668
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
669
- finally {
670
- try {
671
- if (_k && !_k.done && (_b = _j.return)) _b.call(_j);
672
- }
673
- finally { if (e_11) throw e_11.error; }
674
- }
675
- }
676
- }
677
- catch (e_10_1) { e_10 = { error: e_10_1 }; }
678
- finally {
679
- try {
680
- if (tabGroups_2_1 && !tabGroups_2_1.done && (_a = tabGroups_2.return)) _a.call(tabGroups_2);
681
- }
682
- finally { if (e_10) throw e_10.error; }
683
- }
684
- var _loop_1 = function (tabEntry) {
685
- var tab = tabEntry.value;
686
- var panelId = tab.panel.id;
687
- var tg = panelGroupMap.get(panelId);
688
- var isGrouped = !!tg;
689
- (0, dom_1.toggleClass)(tab.element, 'dv-tab--grouped', isGrouped);
690
- if (tg) {
691
- var ids = tg.panelIds;
692
- var isFirst = ids[0] === panelId;
693
- var isLast = ids[ids.length - 1] === panelId;
694
- (0, dom_1.toggleClass)(tab.element, 'dv-tab--group-first', isFirst);
695
- (0, dom_1.toggleClass)(tab.element, 'dv-tab--group-last', isLast);
696
- // Expose the resolved group color as a CSS custom property
697
- // so pure-CSS themes can use it for borders, backgrounds, etc.
698
- (0, tabGroupAccent_1.applyTabGroupAccent)(tab.element, tg.color, this_1._ctx.accessor.tabGroupColorPalette);
699
- // Collapse / expand with animation
700
- var isCollapsed = tab.element.classList.contains('dv-tab--group-collapsed');
701
- if (!tg.collapsed && isCollapsed) {
702
- // Collapsed → expanding: animate back
703
- hasAnimation = true;
704
- tab.element.classList.remove('dv-tab--group-collapsed');
705
- tab.element.classList.add('dv-tab--group-expanding');
706
- // Clean up any previous transitionend listener
707
- // from a rapid collapse/expand cycle
708
- (_h = this_1._pendingTransitionCleanups.get(panelId)) === null || _h === void 0 ? void 0 : _h();
709
- var onEnd_1 = function () {
710
- tab.element.classList.remove('dv-tab--group-expanding');
711
- tab.element.style.removeProperty('width');
712
- tab.element.removeEventListener('transitionend', onEnd_1);
713
- clearTimeout(fallbackTimer_1);
714
- _this._pendingTransitionCleanups.delete(panelId);
715
- };
716
- // Fallback in case transitionend never fires
717
- // (e.g. element removed from DOM mid-transition)
718
- var fallbackTimer_1 = setTimeout(onEnd_1, 300);
719
- this_1._pendingTransitionCleanups.set(panelId, onEnd_1);
720
- tab.element.addEventListener('transitionend', onEnd_1);
721
- }
722
- }
723
- else {
724
- (0, dom_1.toggleClass)(tab.element, 'dv-tab--group-first', false);
725
- (0, dom_1.toggleClass)(tab.element, 'dv-tab--group-last', false);
726
- tab.element.classList.remove('dv-tab--group-collapsed', 'dv-tab--group-expanding');
727
- tab.element.style.removeProperty('width');
728
- tab.element.style.removeProperty('--dv-tab-group-color');
729
- }
730
- };
731
- var this_1 = this;
732
- try {
733
- for (var tabs_1 = __values(tabs), tabs_1_1 = tabs_1.next(); !tabs_1_1.done; tabs_1_1 = tabs_1.next()) {
734
- var tabEntry = tabs_1_1.value;
735
- _loop_1(tabEntry);
736
- }
737
- }
738
- catch (e_12_1) { e_12 = { error: e_12_1 }; }
739
- finally {
740
- try {
741
- if (tabs_1_1 && !tabs_1_1.done && (_c = tabs_1.return)) _c.call(tabs_1);
742
- }
743
- finally { if (e_12) throw e_12.error; }
744
- }
745
- // Track active group IDs for underline/collapse handling
746
- var activeGroupIds = new Set();
747
- try {
748
- // Handle collapse animation per group
749
- for (var tabGroups_3 = __values(tabGroups), tabGroups_3_1 = tabGroups_3.next(); !tabGroups_3_1.done; tabGroups_3_1 = tabGroups_3.next()) {
750
- var tg = tabGroups_3_1.value;
751
- activeGroupIds.add(tg.id);
752
- // Collapse animation
753
- var hasNewCollapse = tg.collapsed &&
754
- tg.panelIds.some(function (pid) {
755
- var te = tabMap.get(pid);
756
- return (te &&
757
- !te.value.element.classList.contains('dv-tab--group-collapsed'));
758
- });
759
- if (hasNewCollapse) {
760
- if (this._skipNextCollapseAnimation) {
761
- // Apply collapsed state instantly (no animation).
762
- // Disable transitions so the CSS transition on
763
- // dv-tab--group-collapsed doesn't fire.
764
- var affected = [];
765
- try {
766
- for (var _l = (e_14 = void 0, __values(tg.panelIds)), _m = _l.next(); !_m.done; _m = _l.next()) {
767
- var pid = _m.value;
768
- var te = tabMap.get(pid);
769
- if (te) {
770
- te.value.element.style.transition = 'none';
771
- te.value.element.classList.add('dv-tab--group-collapsed');
772
- affected.push(te.value.element);
773
- }
774
- }
775
- }
776
- catch (e_14_1) { e_14 = { error: e_14_1 }; }
777
- finally {
778
- try {
779
- if (_m && !_m.done && (_e = _l.return)) _e.call(_l);
780
- }
781
- finally { if (e_14) throw e_14.error; }
782
- }
783
- if (affected.length > 0) {
784
- void affected[0].offsetHeight; // single reflow
785
- try {
786
- for (var affected_1 = (e_15 = void 0, __values(affected)), affected_1_1 = affected_1.next(); !affected_1_1.done; affected_1_1 = affected_1.next()) {
787
- var el = affected_1_1.value;
788
- el.style.removeProperty('transition');
789
- }
790
- }
791
- catch (e_15_1) { e_15 = { error: e_15_1 }; }
792
- finally {
793
- try {
794
- if (affected_1_1 && !affected_1_1.done && (_f = affected_1.return)) _f.call(affected_1);
795
- }
796
- finally { if (e_15) throw e_15.error; }
797
- }
798
- }
799
- }
800
- else {
801
- hasAnimation = true;
802
- var isVert = this._ctx.getDirection() === 'vertical';
803
- try {
804
- for (var _o = (e_16 = void 0, __values(tg.panelIds)), _p = _o.next(); !_p.done; _p = _o.next()) {
805
- var pid = _p.value;
806
- var te = tabMap.get(pid);
807
- if (te &&
808
- !te.value.element.classList.contains('dv-tab--group-collapsed')) {
809
- var rect = te.value.element.getBoundingClientRect();
810
- if (isVert) {
811
- te.value.element.style.height = "".concat(rect.height, "px");
812
- }
813
- else {
814
- te.value.element.style.width = "".concat(rect.width, "px");
815
- }
816
- void te.value.element.offsetHeight; // force reflow
817
- te.value.element.classList.add('dv-tab--group-collapsed');
818
- }
819
- }
820
- }
821
- catch (e_16_1) { e_16 = { error: e_16_1 }; }
822
- finally {
823
- try {
824
- if (_p && !_p.done && (_g = _o.return)) _g.call(_o);
825
- }
826
- finally { if (e_16) throw e_16.error; }
827
- }
828
- }
829
- }
830
- }
831
- }
832
- catch (e_13_1) { e_13 = { error: e_13_1 }; }
833
- finally {
834
- try {
835
- if (tabGroups_3_1 && !tabGroups_3_1.done && (_d = tabGroups_3.return)) _d.call(tabGroups_3);
836
- }
837
- finally { if (e_13) throw e_13.error; }
838
- }
839
- this._skipNextCollapseAnimation = false;
840
- // Sync indicator underlines and position them
841
- this._ensureIndicator();
842
- if (this._indicator) {
843
- this._indicator.syncUnderlineElements(activeGroupIds);
844
- if (hasAnimation) {
845
- this._indicator.trackUnderlines();
846
- }
847
- else {
848
- this._indicator.positionUnderlines();
849
- }
850
- }
851
- };
852
- return TabGroupManager;
853
- }());
854
- exports.TabGroupManager = TabGroupManager;