dockview 0.0.28 → 1.0.2

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 (355) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +60 -0
  3. package/dist/cjs/actionbar/actionsContainer.d.ts +7 -7
  4. package/dist/cjs/actionbar/actionsContainer.js +26 -26
  5. package/dist/cjs/api/component.api.d.ts +135 -131
  6. package/dist/cjs/api/component.api.js +486 -444
  7. package/dist/cjs/api/component.api.js.map +1 -1
  8. package/dist/cjs/api/gridviewPanelApi.d.ts +36 -36
  9. package/dist/cjs/api/gridviewPanelApi.js +46 -46
  10. package/dist/cjs/api/groupPanelApi.d.ts +44 -44
  11. package/dist/cjs/api/groupPanelApi.js +94 -94
  12. package/dist/cjs/api/groupPanelApi.js.map +1 -1
  13. package/dist/cjs/api/panelApi.d.ts +107 -107
  14. package/dist/cjs/api/panelApi.js +140 -140
  15. package/dist/cjs/api/paneviewPanelApi.d.ts +26 -26
  16. package/dist/cjs/api/paneviewPanelApi.js +56 -56
  17. package/dist/cjs/api/splitviewPanelApi.d.ts +33 -33
  18. package/dist/cjs/api/splitviewPanelApi.js +51 -51
  19. package/dist/cjs/array.d.ts +13 -13
  20. package/dist/cjs/array.js +77 -77
  21. package/dist/cjs/dnd/abstractDragHandler.d.ts +11 -11
  22. package/dist/cjs/dnd/abstractDragHandler.js +115 -115
  23. package/dist/cjs/dnd/dataTransfer.d.ts +56 -56
  24. package/dist/cjs/dnd/dataTransfer.js +144 -144
  25. package/dist/cjs/dnd/dataTransfer.js.map +1 -1
  26. package/dist/cjs/dnd/dnd.d.ts +40 -40
  27. package/dist/cjs/dnd/dnd.js +142 -142
  28. package/dist/cjs/dnd/droptarget.d.ts +33 -37
  29. package/dist/cjs/dnd/droptarget.js +177 -177
  30. package/dist/cjs/dnd/droptarget.js.map +1 -1
  31. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +44 -44
  32. package/dist/cjs/dockview/components/tab/defaultTab.js +186 -186
  33. package/dist/cjs/dockview/components/watermark/watermark.d.ts +20 -20
  34. package/dist/cjs/dockview/components/watermark/watermark.js +99 -99
  35. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +34 -34
  36. package/dist/cjs/dockview/defaultGroupPanelView.js +85 -83
  37. package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
  38. package/dist/cjs/dockview/deserializer.d.ts +14 -14
  39. package/dist/cjs/dockview/deserializer.js +47 -47
  40. package/dist/cjs/dockview/dockviewComponent.d.ts +121 -121
  41. package/dist/cjs/dockview/dockviewComponent.js +692 -692
  42. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  43. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +35 -35
  44. package/dist/cjs/dockview/dockviewGroupPanel.js +195 -195
  45. package/dist/cjs/dockview/options.d.ts +79 -79
  46. package/dist/cjs/dockview/options.js +2 -2
  47. package/dist/cjs/dom.d.ts +14 -14
  48. package/dist/cjs/dom.js +182 -182
  49. package/dist/cjs/events.d.ts +30 -23
  50. package/dist/cjs/events.js +108 -87
  51. package/dist/cjs/events.js.map +1 -1
  52. package/dist/cjs/functions.d.ts +1 -1
  53. package/dist/cjs/functions.js +41 -41
  54. package/dist/cjs/gridview/baseComponentGridview.d.ts +98 -98
  55. package/dist/cjs/gridview/baseComponentGridview.js +285 -292
  56. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  57. package/dist/cjs/gridview/basePanelView.d.ts +46 -46
  58. package/dist/cjs/gridview/basePanelView.js +115 -115
  59. package/dist/cjs/gridview/branchNode.d.ts +46 -46
  60. package/dist/cjs/gridview/branchNode.js +342 -342
  61. package/dist/cjs/gridview/gridview.d.ts +123 -123
  62. package/dist/cjs/gridview/gridview.js +476 -477
  63. package/dist/cjs/gridview/gridview.js.map +1 -1
  64. package/dist/cjs/gridview/gridviewComponent.d.ts +88 -88
  65. package/dist/cjs/gridview/gridviewComponent.js +303 -303
  66. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  67. package/dist/cjs/gridview/gridviewPanel.d.ts +62 -62
  68. package/dist/cjs/gridview/gridviewPanel.js +205 -205
  69. package/dist/cjs/gridview/leafNode.d.ts +31 -31
  70. package/dist/cjs/gridview/leafNode.js +164 -164
  71. package/dist/cjs/gridview/options.d.ts +18 -18
  72. package/dist/cjs/gridview/options.js +2 -2
  73. package/dist/cjs/gridview/types.d.ts +3 -3
  74. package/dist/cjs/gridview/types.js +2 -2
  75. package/dist/cjs/groupview/dnd.d.ts +5 -5
  76. package/dist/cjs/groupview/dnd.js +9 -9
  77. package/dist/cjs/groupview/groupPanel.d.ts +41 -41
  78. package/dist/cjs/groupview/groupPanel.js +2 -2
  79. package/dist/cjs/groupview/groupview.d.ts +154 -154
  80. package/dist/cjs/groupview/groupview.js +633 -633
  81. package/dist/cjs/groupview/groupview.js.map +1 -1
  82. package/dist/cjs/groupview/groupviewPanel.d.ts +18 -18
  83. package/dist/cjs/groupview/groupviewPanel.js +83 -83
  84. package/dist/cjs/groupview/panel/content.d.ts +30 -30
  85. package/dist/cjs/groupview/panel/content.js +99 -99
  86. package/dist/cjs/groupview/panel/hostedPanel.d.ts +22 -22
  87. package/dist/cjs/groupview/panel/hostedPanel.js +56 -56
  88. package/dist/cjs/groupview/panel/hostedPanel.js.map +1 -1
  89. package/dist/cjs/groupview/tab.d.ts +44 -44
  90. package/dist/cjs/groupview/tab.js +182 -182
  91. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +66 -66
  92. package/dist/cjs/groupview/titlebar/tabsContainer.js +260 -260
  93. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  94. package/dist/cjs/groupview/types.d.ts +59 -59
  95. package/dist/cjs/groupview/types.js +2 -2
  96. package/dist/cjs/hostedContainer.d.ts +23 -23
  97. package/dist/cjs/hostedContainer.js +73 -73
  98. package/dist/cjs/hostedContainer.js.map +1 -1
  99. package/dist/cjs/index.d.ts +28 -26
  100. package/dist/cjs/index.js +37 -35
  101. package/dist/cjs/index.js.map +1 -1
  102. package/dist/cjs/json.d.ts +1 -1
  103. package/dist/cjs/json.js +13 -13
  104. package/dist/cjs/lifecycle.d.ts +22 -22
  105. package/dist/cjs/lifecycle.js +87 -87
  106. package/dist/cjs/math.d.ts +4 -4
  107. package/dist/cjs/math.js +15 -15
  108. package/dist/cjs/math.js.map +1 -1
  109. package/dist/cjs/panel/componentFactory.d.ts +8 -8
  110. package/dist/cjs/panel/componentFactory.js +30 -30
  111. package/dist/cjs/panel/componentFactory.js.map +1 -1
  112. package/dist/cjs/panel/types.d.ts +34 -34
  113. package/dist/cjs/panel/types.js +2 -2
  114. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +18 -18
  115. package/dist/cjs/paneview/defaultPaneviewHeader.js +64 -64
  116. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +17 -17
  117. package/dist/cjs/paneview/draggablePaneviewPanel.js +111 -111
  118. package/dist/cjs/paneview/options.d.ts +25 -25
  119. package/dist/cjs/paneview/options.js +2 -2
  120. package/dist/cjs/paneview/paneview.d.ts +38 -38
  121. package/dist/cjs/paneview/paneview.js +195 -198
  122. package/dist/cjs/paneview/paneview.js.map +1 -1
  123. package/dist/cjs/paneview/paneviewComponent.d.ts +115 -113
  124. package/dist/cjs/paneview/paneviewComponent.js +338 -338
  125. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  126. package/dist/cjs/paneview/paneviewPanel.d.ts +85 -85
  127. package/dist/cjs/paneview/paneviewPanel.js +262 -262
  128. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  129. package/dist/cjs/react/deserializer.d.ts +8 -8
  130. package/dist/cjs/react/deserializer.js +39 -39
  131. package/dist/cjs/react/dockview/components.d.ts +11 -11
  132. package/dist/cjs/react/dockview/components.js +76 -76
  133. package/dist/cjs/react/dockview/dockview.d.ts +34 -34
  134. package/dist/cjs/react/dockview/dockview.js +151 -135
  135. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  136. package/dist/cjs/react/dockview/reactContentPart.d.ts +47 -47
  137. package/dist/cjs/react/dockview/reactContentPart.js +88 -88
  138. package/dist/cjs/react/dockview/reactHeaderPart.d.ts +24 -24
  139. package/dist/cjs/react/dockview/reactHeaderPart.js +50 -50
  140. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +30 -30
  141. package/dist/cjs/react/dockview/reactWatermarkPart.js +66 -66
  142. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +30 -30
  143. package/dist/cjs/react/dockview/v2/reactContentRenderer.js +90 -90
  144. package/dist/cjs/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  145. package/dist/cjs/react/dockview/v2/reactGroupPanelView.js +34 -34
  146. package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  147. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js +45 -45
  148. package/dist/cjs/react/gridview/gridview.d.ts +24 -24
  149. package/dist/cjs/react/gridview/gridview.js +104 -96
  150. package/dist/cjs/react/gridview/gridview.js.map +1 -1
  151. package/dist/cjs/react/gridview/view.d.ts +10 -10
  152. package/dist/cjs/react/gridview/view.js +40 -40
  153. package/dist/cjs/react/index.d.ts +9 -9
  154. package/dist/cjs/react/index.js +21 -21
  155. package/dist/cjs/react/paneview/paneview.d.ts +28 -28
  156. package/dist/cjs/react/paneview/paneview.js +142 -138
  157. package/dist/cjs/react/paneview/paneview.js.map +1 -1
  158. package/dist/cjs/react/paneview/view.d.ts +20 -20
  159. package/dist/cjs/react/paneview/view.js +44 -44
  160. package/dist/cjs/react/react.d.ts +35 -35
  161. package/dist/cjs/react/react.js +181 -181
  162. package/dist/cjs/react/react.js.map +1 -1
  163. package/dist/cjs/react/splitview/splitview.d.ts +24 -24
  164. package/dist/cjs/react/splitview/splitview.js +101 -93
  165. package/dist/cjs/react/splitview/splitview.js.map +1 -1
  166. package/dist/cjs/react/splitview/view.d.ts +10 -10
  167. package/dist/cjs/react/splitview/view.js +40 -40
  168. package/dist/cjs/react/types.d.ts +7 -7
  169. package/dist/cjs/react/types.js +2 -2
  170. package/dist/cjs/splitview/core/options.d.ts +26 -26
  171. package/dist/cjs/splitview/core/options.js +2 -2
  172. package/dist/cjs/splitview/core/splitview.d.ts +124 -124
  173. package/dist/cjs/splitview/core/splitview.js +908 -908
  174. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  175. package/dist/cjs/splitview/core/viewItem.d.ts +25 -25
  176. package/dist/cjs/splitview/core/viewItem.js +124 -124
  177. package/dist/cjs/splitview/splitviewComponent.d.ts +100 -100
  178. package/dist/cjs/splitview/splitviewComponent.js +327 -327
  179. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  180. package/dist/cjs/splitview/splitviewPanel.d.ts +47 -47
  181. package/dist/cjs/splitview/splitviewPanel.js +178 -178
  182. package/dist/cjs/types.d.ts +7 -7
  183. package/dist/cjs/types.js +2 -2
  184. package/dist/dockview.amd.js +6759 -6712
  185. package/dist/dockview.amd.min.js +3 -3
  186. package/dist/dockview.amd.min.noStyle.js +3 -3
  187. package/dist/dockview.amd.noStyle.js +6752 -6705
  188. package/dist/dockview.cjs.js +6755 -6708
  189. package/dist/dockview.esm.js +6750 -6707
  190. package/dist/dockview.esm.min.js +3 -3
  191. package/dist/dockview.js +6759 -6712
  192. package/dist/dockview.min.js +3 -3
  193. package/dist/dockview.min.noStyle.js +3 -3
  194. package/dist/dockview.noStyle.js +6752 -6705
  195. package/dist/esm/actionbar/actionsContainer.d.ts +7 -7
  196. package/dist/esm/actionbar/actionsContainer.js +17 -17
  197. package/dist/esm/api/component.api.d.ts +135 -131
  198. package/dist/esm/api/component.api.js +305 -287
  199. package/dist/esm/api/gridviewPanelApi.d.ts +36 -36
  200. package/dist/esm/api/gridviewPanelApi.js +24 -24
  201. package/dist/esm/api/groupPanelApi.d.ts +44 -44
  202. package/dist/esm/api/groupPanelApi.js +52 -52
  203. package/dist/esm/api/panelApi.d.ts +107 -107
  204. package/dist/esm/api/panelApi.js +98 -98
  205. package/dist/esm/api/paneviewPanelApi.d.ts +26 -26
  206. package/dist/esm/api/paneviewPanelApi.js +26 -26
  207. package/dist/esm/api/splitviewPanelApi.d.ts +33 -33
  208. package/dist/esm/api/splitviewPanelApi.js +29 -29
  209. package/dist/esm/array.d.ts +13 -13
  210. package/dist/esm/array.js +67 -67
  211. package/dist/esm/dnd/abstractDragHandler.d.ts +11 -11
  212. package/dist/esm/dnd/abstractDragHandler.js +37 -37
  213. package/dist/esm/dnd/dataTransfer.d.ts +56 -56
  214. package/dist/esm/dnd/dataTransfer.js +109 -109
  215. package/dist/esm/dnd/dnd.d.ts +40 -40
  216. package/dist/esm/dnd/dnd.js +109 -109
  217. package/dist/esm/dnd/droptarget.d.ts +33 -37
  218. package/dist/esm/dnd/droptarget.js +143 -143
  219. package/dist/esm/dockview/components/tab/defaultTab.d.ts +44 -44
  220. package/dist/esm/dockview/components/tab/defaultTab.js +130 -130
  221. package/dist/esm/dockview/components/watermark/watermark.d.ts +20 -20
  222. package/dist/esm/dockview/components/watermark/watermark.js +68 -68
  223. package/dist/esm/dockview/defaultGroupPanelView.d.ts +34 -34
  224. package/dist/esm/dockview/defaultGroupPanelView.js +57 -55
  225. package/dist/esm/dockview/deserializer.d.ts +14 -14
  226. package/dist/esm/dockview/deserializer.js +20 -20
  227. package/dist/esm/dockview/dockviewComponent.d.ts +121 -121
  228. package/dist/esm/dockview/dockviewComponent.js +533 -533
  229. package/dist/esm/dockview/dockviewGroupPanel.d.ts +35 -35
  230. package/dist/esm/dockview/dockviewGroupPanel.js +145 -145
  231. package/dist/esm/dockview/options.d.ts +79 -79
  232. package/dist/esm/dockview/options.js +1 -1
  233. package/dist/esm/dom.d.ts +14 -14
  234. package/dist/esm/dom.js +113 -113
  235. package/dist/esm/events.d.ts +30 -23
  236. package/dist/esm/events.js +89 -71
  237. package/dist/esm/functions.d.ts +1 -1
  238. package/dist/esm/functions.js +8 -8
  239. package/dist/esm/gridview/baseComponentGridview.d.ts +98 -98
  240. package/dist/esm/gridview/baseComponentGridview.js +217 -224
  241. package/dist/esm/gridview/basePanelView.d.ts +46 -46
  242. package/dist/esm/gridview/basePanelView.js +70 -70
  243. package/dist/esm/gridview/branchNode.d.ts +46 -46
  244. package/dist/esm/gridview/branchNode.js +218 -218
  245. package/dist/esm/gridview/gridview.d.ts +123 -123
  246. package/dist/esm/gridview/gridview.js +395 -396
  247. package/dist/esm/gridview/gridviewComponent.d.ts +88 -88
  248. package/dist/esm/gridview/gridviewComponent.js +238 -238
  249. package/dist/esm/gridview/gridviewPanel.d.ts +62 -62
  250. package/dist/esm/gridview/gridviewPanel.js +141 -141
  251. package/dist/esm/gridview/leafNode.d.ts +31 -31
  252. package/dist/esm/gridview/leafNode.js +97 -97
  253. package/dist/esm/gridview/options.d.ts +18 -18
  254. package/dist/esm/gridview/options.js +1 -1
  255. package/dist/esm/gridview/types.d.ts +3 -3
  256. package/dist/esm/gridview/types.js +1 -1
  257. package/dist/esm/groupview/dnd.d.ts +5 -5
  258. package/dist/esm/groupview/dnd.js +6 -6
  259. package/dist/esm/groupview/groupPanel.d.ts +41 -41
  260. package/dist/esm/groupview/groupPanel.js +1 -1
  261. package/dist/esm/groupview/groupview.d.ts +154 -154
  262. package/dist/esm/groupview/groupview.js +448 -448
  263. package/dist/esm/groupview/groupviewPanel.d.ts +18 -18
  264. package/dist/esm/groupview/groupviewPanel.js +41 -41
  265. package/dist/esm/groupview/panel/content.d.ts +30 -30
  266. package/dist/esm/groupview/panel/content.js +72 -72
  267. package/dist/esm/groupview/panel/hostedPanel.d.ts +22 -22
  268. package/dist/esm/groupview/panel/hostedPanel.js +43 -43
  269. package/dist/esm/groupview/tab.d.ts +44 -44
  270. package/dist/esm/groupview/tab.js +101 -101
  271. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +66 -66
  272. package/dist/esm/groupview/titlebar/tabsContainer.js +185 -185
  273. package/dist/esm/groupview/types.d.ts +59 -59
  274. package/dist/esm/groupview/types.js +1 -1
  275. package/dist/esm/hostedContainer.d.ts +23 -23
  276. package/dist/esm/hostedContainer.js +63 -63
  277. package/dist/esm/index.d.ts +28 -26
  278. package/dist/esm/index.js +23 -21
  279. package/dist/esm/json.d.ts +1 -1
  280. package/dist/esm/json.js +9 -9
  281. package/dist/esm/lifecycle.d.ts +22 -22
  282. package/dist/esm/lifecycle.js +38 -38
  283. package/dist/esm/math.d.ts +4 -4
  284. package/dist/esm/math.js +10 -10
  285. package/dist/esm/panel/componentFactory.d.ts +8 -8
  286. package/dist/esm/panel/componentFactory.js +24 -24
  287. package/dist/esm/panel/types.d.ts +34 -34
  288. package/dist/esm/panel/types.js +1 -1
  289. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +18 -18
  290. package/dist/esm/paneview/defaultPaneviewHeader.js +37 -37
  291. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +17 -17
  292. package/dist/esm/paneview/draggablePaneviewPanel.js +72 -72
  293. package/dist/esm/paneview/options.d.ts +25 -25
  294. package/dist/esm/paneview/options.js +1 -1
  295. package/dist/esm/paneview/paneview.d.ts +38 -38
  296. package/dist/esm/paneview/paneview.js +141 -144
  297. package/dist/esm/paneview/paneviewComponent.d.ts +115 -113
  298. package/dist/esm/paneview/paneviewComponent.js +247 -247
  299. package/dist/esm/paneview/paneviewPanel.d.ts +85 -85
  300. package/dist/esm/paneview/paneviewPanel.js +183 -183
  301. package/dist/esm/react/deserializer.d.ts +8 -8
  302. package/dist/esm/react/deserializer.js +34 -34
  303. package/dist/esm/react/dockview/components.d.ts +11 -11
  304. package/dist/esm/react/dockview/components.js +54 -54
  305. package/dist/esm/react/dockview/dockview.d.ts +34 -34
  306. package/dist/esm/react/dockview/dockview.js +113 -97
  307. package/dist/esm/react/dockview/reactContentPart.d.ts +47 -47
  308. package/dist/esm/react/dockview/reactContentPart.js +75 -75
  309. package/dist/esm/react/dockview/reactHeaderPart.d.ts +24 -24
  310. package/dist/esm/react/dockview/reactHeaderPart.js +41 -41
  311. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +30 -30
  312. package/dist/esm/react/dockview/reactWatermarkPart.js +56 -56
  313. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +30 -30
  314. package/dist/esm/react/dockview/v2/reactContentRenderer.js +72 -72
  315. package/dist/esm/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  316. package/dist/esm/react/dockview/v2/reactGroupPanelView.js +12 -12
  317. package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  318. package/dist/esm/react/dockview/v2/webviewContentRenderer.js +36 -36
  319. package/dist/esm/react/gridview/gridview.d.ts +24 -24
  320. package/dist/esm/react/gridview/gridview.js +66 -58
  321. package/dist/esm/react/gridview/view.d.ts +10 -10
  322. package/dist/esm/react/gridview/view.js +18 -18
  323. package/dist/esm/react/index.d.ts +9 -9
  324. package/dist/esm/react/index.js +9 -9
  325. package/dist/esm/react/paneview/paneview.d.ts +28 -28
  326. package/dist/esm/react/paneview/paneview.js +91 -87
  327. package/dist/esm/react/paneview/view.d.ts +20 -20
  328. package/dist/esm/react/paneview/view.js +35 -35
  329. package/dist/esm/react/react.d.ts +35 -35
  330. package/dist/esm/react/react.js +116 -116
  331. package/dist/esm/react/splitview/splitview.d.ts +24 -24
  332. package/dist/esm/react/splitview/splitview.js +63 -55
  333. package/dist/esm/react/splitview/view.d.ts +10 -10
  334. package/dist/esm/react/splitview/view.js +18 -18
  335. package/dist/esm/react/types.d.ts +7 -7
  336. package/dist/esm/react/types.js +1 -1
  337. package/dist/esm/splitview/core/options.d.ts +26 -26
  338. package/dist/esm/splitview/core/options.js +1 -1
  339. package/dist/esm/splitview/core/splitview.d.ts +124 -124
  340. package/dist/esm/splitview/core/splitview.js +689 -689
  341. package/dist/esm/splitview/core/viewItem.d.ts +25 -25
  342. package/dist/esm/splitview/core/viewItem.js +79 -79
  343. package/dist/esm/splitview/splitviewComponent.d.ts +100 -100
  344. package/dist/esm/splitview/splitviewComponent.js +241 -241
  345. package/dist/esm/splitview/splitviewPanel.d.ts +47 -47
  346. package/dist/esm/splitview/splitviewPanel.js +107 -107
  347. package/dist/esm/types.d.ts +7 -7
  348. package/dist/esm/types.js +1 -1
  349. package/dist/styles/dockview.css +45 -45
  350. package/package.json +75 -75
  351. package/dist/cjs/footnote.d.ts +0 -1
  352. package/dist/cjs/footnote.js +0 -20
  353. package/dist/cjs/footnote.js.map +0 -1
  354. package/dist/esm/footnote.d.ts +0 -1
  355. package/dist/esm/footnote.js +0 -19
@@ -1,185 +1,185 @@
1
- import { CompositeDisposable, } from '../../lifecycle';
2
- import { addDisposableListener, Emitter } from '../../events';
3
- import { MouseEventKind, Tab } from '../tab';
4
- import { last } from '../../array';
5
- import { getPanelData } from '../../dnd/dataTransfer';
6
- import { Droptarget } from '../../dnd/droptarget';
7
- import { DockviewDropTargets } from '../dnd';
8
- export class TabsContainer extends CompositeDisposable {
9
- constructor(accessor, group, options) {
10
- super();
11
- this.accessor = accessor;
12
- this.group = group;
13
- this.tabs = [];
14
- this.selectedIndex = -1;
15
- this.active = false;
16
- this._onDrop = new Emitter();
17
- this.onDrop = this._onDrop.event;
18
- this.addDisposables(this._onDrop);
19
- this._element = document.createElement('div');
20
- this._element.className = 'tabs-and-actions-container';
21
- this.height = options.tabHeight;
22
- this.actionContainer = document.createElement('div');
23
- this.actionContainer.className = 'action-container';
24
- this.tabContainer = document.createElement('div');
25
- this.tabContainer.className = 'tabs-container';
26
- this.voidContainer = document.createElement('div');
27
- this.voidContainer.className = 'void-container';
28
- this._element.appendChild(this.tabContainer);
29
- this._element.appendChild(this.voidContainer);
30
- this._element.appendChild(this.actionContainer);
31
- this.voidDropTarget = new Droptarget(this.voidContainer, {
32
- validOverlays: 'none',
33
- canDisplayOverlay: (event) => {
34
- var _a;
35
- const data = getPanelData();
36
- if (data) {
37
- // don't show the overlay if the tab being dragged is the last panel of this group
38
- return ((_a = last(this.tabs)) === null || _a === void 0 ? void 0 : _a.value.panelId) !== data.panelId;
39
- }
40
- return group.model.canDisplayOverlay(event, DockviewDropTargets.Panel);
41
- },
42
- });
43
- this.addDisposables(this.voidDropTarget.onDrop((event) => {
44
- this._onDrop.fire({
45
- event: event.event,
46
- index: this.tabs.length,
47
- });
48
- }), this.voidDropTarget, addDisposableListener(this.tabContainer, 'mousedown', (event) => {
49
- if (event.defaultPrevented) {
50
- return;
51
- }
52
- const isLeftClick = event.button === 0;
53
- if (isLeftClick) {
54
- this.accessor.doSetGroupActive(this.group);
55
- }
56
- }));
57
- }
58
- get panels() {
59
- return this.tabs.map((_) => _.value.panelId);
60
- }
61
- get size() {
62
- return this.tabs.length;
63
- }
64
- get height() {
65
- return this._height;
66
- }
67
- set height(value) {
68
- this._height = value;
69
- if (typeof value !== 'number') {
70
- this.element.style.removeProperty('--dv-tabs-and-actions-container-height');
71
- }
72
- else {
73
- this.element.style.setProperty('--dv-tabs-and-actions-container-height', `${value}px`);
74
- }
75
- }
76
- show() {
77
- this.element.style.display = '';
78
- }
79
- hide() {
80
- this.element.style.display = 'none';
81
- }
82
- setActionElement(element) {
83
- if (this.actions === element) {
84
- return;
85
- }
86
- if (this.actions) {
87
- this.actions.remove();
88
- this.actions = undefined;
89
- }
90
- if (element) {
91
- this.actionContainer.appendChild(element);
92
- this.actions = element;
93
- }
94
- }
95
- get element() {
96
- return this._element;
97
- }
98
- isActive(tab) {
99
- return (this.selectedIndex > -1 &&
100
- this.tabs[this.selectedIndex].value === tab);
101
- }
102
- at(index) {
103
- var _a;
104
- return (_a = this.tabs[index]) === null || _a === void 0 ? void 0 : _a.value;
105
- }
106
- indexOf(id) {
107
- return this.tabs.findIndex((tab) => tab.value.panelId === id);
108
- }
109
- setActive(isGroupActive) {
110
- this.active = isGroupActive;
111
- }
112
- addTab(tab, index = this.tabs.length) {
113
- if (index < 0 || index > this.tabs.length) {
114
- throw new Error('invalid location');
115
- }
116
- this.tabContainer.insertBefore(tab.value.element, this.tabContainer.children[index]);
117
- this.tabs = [
118
- ...this.tabs.slice(0, index),
119
- tab,
120
- ...this.tabs.slice(index),
121
- ];
122
- if (this.selectedIndex < 0) {
123
- this.selectedIndex = index;
124
- }
125
- }
126
- delete(id) {
127
- const index = this.tabs.findIndex((tab) => tab.value.panelId === id);
128
- const tabToRemove = this.tabs.splice(index, 1)[0];
129
- const { value, disposable } = tabToRemove;
130
- disposable.dispose();
131
- value.element.remove();
132
- }
133
- setActivePanel(panel) {
134
- this.tabs.forEach((tab) => {
135
- const isActivePanel = panel.id === tab.value.panelId;
136
- tab.value.setActive(isActivePanel);
137
- });
138
- }
139
- openPanel(panel, index = this.tabs.length) {
140
- var _a;
141
- if (this.tabs.find((tab) => tab.value.panelId === panel.id)) {
142
- return;
143
- }
144
- const tabToAdd = new Tab(panel.id, this.accessor, this.group);
145
- if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
146
- throw new Error('invalid header component');
147
- }
148
- tabToAdd.setContent(panel.view.tab);
149
- const disposable = CompositeDisposable.from(tabToAdd.onChanged((event) => {
150
- var _a;
151
- const alreadyFocused = panel.id === ((_a = this.group.model.activePanel) === null || _a === void 0 ? void 0 : _a.id) &&
152
- this.group.model.isContentFocused();
153
- this.accessor.fireMouseEvent(Object.assign(Object.assign({}, event), { panel, tab: true }));
154
- const isLeftClick = event.event.button === 0;
155
- if (!isLeftClick || event.event.defaultPrevented) {
156
- return;
157
- }
158
- switch (event.kind) {
159
- case MouseEventKind.CLICK:
160
- this.group.model.openPanel(panel, {
161
- skipFocus: alreadyFocused,
162
- });
163
- break;
164
- }
165
- }), tabToAdd.onDrop((event) => {
166
- this._onDrop.fire({
167
- event: event.event,
168
- index: this.tabs.findIndex((x) => x.value === tabToAdd),
169
- });
170
- }));
171
- const value = { value: tabToAdd, disposable };
172
- this.addTab(value, index);
173
- this.activePanel = panel;
174
- }
175
- closePanel(panel) {
176
- this.delete(panel.id);
177
- }
178
- dispose() {
179
- super.dispose();
180
- this.tabs.forEach((tab) => {
181
- tab.disposable.dispose();
182
- });
183
- this.tabs = [];
184
- }
185
- }
1
+ import { CompositeDisposable, } from '../../lifecycle';
2
+ import { addDisposableListener, Emitter } from '../../events';
3
+ import { MouseEventKind, Tab } from '../tab';
4
+ import { last } from '../../array';
5
+ import { getPanelData } from '../../dnd/dataTransfer';
6
+ import { Droptarget } from '../../dnd/droptarget';
7
+ import { DockviewDropTargets } from '../dnd';
8
+ export class TabsContainer extends CompositeDisposable {
9
+ constructor(accessor, group, options) {
10
+ super();
11
+ this.accessor = accessor;
12
+ this.group = group;
13
+ this.tabs = [];
14
+ this.selectedIndex = -1;
15
+ this.active = false;
16
+ this._onDrop = new Emitter();
17
+ this.onDrop = this._onDrop.event;
18
+ this.addDisposables(this._onDrop);
19
+ this._element = document.createElement('div');
20
+ this._element.className = 'tabs-and-actions-container';
21
+ this.height = options.tabHeight;
22
+ this.actionContainer = document.createElement('div');
23
+ this.actionContainer.className = 'action-container';
24
+ this.tabContainer = document.createElement('div');
25
+ this.tabContainer.className = 'tabs-container';
26
+ this.voidContainer = document.createElement('div');
27
+ this.voidContainer.className = 'void-container';
28
+ this._element.appendChild(this.tabContainer);
29
+ this._element.appendChild(this.voidContainer);
30
+ this._element.appendChild(this.actionContainer);
31
+ this.voidDropTarget = new Droptarget(this.voidContainer, {
32
+ validOverlays: 'none',
33
+ canDisplayOverlay: (event) => {
34
+ var _a;
35
+ const data = getPanelData();
36
+ if (data) {
37
+ // don't show the overlay if the tab being dragged is the last panel of this group
38
+ return ((_a = last(this.tabs)) === null || _a === void 0 ? void 0 : _a.value.panelId) !== data.panelId;
39
+ }
40
+ return group.model.canDisplayOverlay(event, DockviewDropTargets.Panel);
41
+ },
42
+ });
43
+ this.addDisposables(this.voidDropTarget.onDrop((event) => {
44
+ this._onDrop.fire({
45
+ event: event.nativeEvent,
46
+ index: this.tabs.length,
47
+ });
48
+ }), this.voidDropTarget, addDisposableListener(this.tabContainer, 'mousedown', (event) => {
49
+ if (event.defaultPrevented) {
50
+ return;
51
+ }
52
+ const isLeftClick = event.button === 0;
53
+ if (isLeftClick) {
54
+ this.accessor.doSetGroupActive(this.group);
55
+ }
56
+ }));
57
+ }
58
+ get panels() {
59
+ return this.tabs.map((_) => _.value.panelId);
60
+ }
61
+ get size() {
62
+ return this.tabs.length;
63
+ }
64
+ get height() {
65
+ return this._height;
66
+ }
67
+ set height(value) {
68
+ this._height = value;
69
+ if (typeof value !== 'number') {
70
+ this.element.style.removeProperty('--dv-tabs-and-actions-container-height');
71
+ }
72
+ else {
73
+ this.element.style.setProperty('--dv-tabs-and-actions-container-height', `${value}px`);
74
+ }
75
+ }
76
+ show() {
77
+ this.element.style.display = '';
78
+ }
79
+ hide() {
80
+ this.element.style.display = 'none';
81
+ }
82
+ setActionElement(element) {
83
+ if (this.actions === element) {
84
+ return;
85
+ }
86
+ if (this.actions) {
87
+ this.actions.remove();
88
+ this.actions = undefined;
89
+ }
90
+ if (element) {
91
+ this.actionContainer.appendChild(element);
92
+ this.actions = element;
93
+ }
94
+ }
95
+ get element() {
96
+ return this._element;
97
+ }
98
+ isActive(tab) {
99
+ return (this.selectedIndex > -1 &&
100
+ this.tabs[this.selectedIndex].value === tab);
101
+ }
102
+ at(index) {
103
+ var _a;
104
+ return (_a = this.tabs[index]) === null || _a === void 0 ? void 0 : _a.value;
105
+ }
106
+ indexOf(id) {
107
+ return this.tabs.findIndex((tab) => tab.value.panelId === id);
108
+ }
109
+ setActive(isGroupActive) {
110
+ this.active = isGroupActive;
111
+ }
112
+ addTab(tab, index = this.tabs.length) {
113
+ if (index < 0 || index > this.tabs.length) {
114
+ throw new Error('invalid location');
115
+ }
116
+ this.tabContainer.insertBefore(tab.value.element, this.tabContainer.children[index]);
117
+ this.tabs = [
118
+ ...this.tabs.slice(0, index),
119
+ tab,
120
+ ...this.tabs.slice(index),
121
+ ];
122
+ if (this.selectedIndex < 0) {
123
+ this.selectedIndex = index;
124
+ }
125
+ }
126
+ delete(id) {
127
+ const index = this.tabs.findIndex((tab) => tab.value.panelId === id);
128
+ const tabToRemove = this.tabs.splice(index, 1)[0];
129
+ const { value, disposable } = tabToRemove;
130
+ disposable.dispose();
131
+ value.element.remove();
132
+ }
133
+ setActivePanel(panel) {
134
+ this.tabs.forEach((tab) => {
135
+ const isActivePanel = panel.id === tab.value.panelId;
136
+ tab.value.setActive(isActivePanel);
137
+ });
138
+ }
139
+ openPanel(panel, index = this.tabs.length) {
140
+ var _a;
141
+ if (this.tabs.find((tab) => tab.value.panelId === panel.id)) {
142
+ return;
143
+ }
144
+ const tabToAdd = new Tab(panel.id, this.accessor, this.group);
145
+ if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
146
+ throw new Error('invalid header component');
147
+ }
148
+ tabToAdd.setContent(panel.view.tab);
149
+ const disposable = CompositeDisposable.from(tabToAdd.onChanged((event) => {
150
+ var _a;
151
+ const alreadyFocused = panel.id === ((_a = this.group.model.activePanel) === null || _a === void 0 ? void 0 : _a.id) &&
152
+ this.group.model.isContentFocused();
153
+ this.accessor.fireMouseEvent(Object.assign(Object.assign({}, event), { panel, tab: true }));
154
+ const isLeftClick = event.event.button === 0;
155
+ if (!isLeftClick || event.event.defaultPrevented) {
156
+ return;
157
+ }
158
+ switch (event.kind) {
159
+ case MouseEventKind.CLICK:
160
+ this.group.model.openPanel(panel, {
161
+ skipFocus: alreadyFocused,
162
+ });
163
+ break;
164
+ }
165
+ }), tabToAdd.onDrop((event) => {
166
+ this._onDrop.fire({
167
+ event: event.nativeEvent,
168
+ index: this.tabs.findIndex((x) => x.value === tabToAdd),
169
+ });
170
+ }));
171
+ const value = { value: tabToAdd, disposable };
172
+ this.addTab(value, index);
173
+ this.activePanel = panel;
174
+ }
175
+ closePanel(panel) {
176
+ this.delete(panel.id);
177
+ }
178
+ dispose() {
179
+ super.dispose();
180
+ this.tabs.forEach((tab) => {
181
+ tab.disposable.dispose();
182
+ });
183
+ this.tabs = [];
184
+ }
185
+ }
@@ -1,59 +1,59 @@
1
- import { IDisposable } from '../lifecycle';
2
- import { IDockviewComponent } from '../dockview/dockviewComponent';
3
- import { DockviewPanelApi } from '../api/groupPanelApi';
4
- import { PanelInitParameters, IPanel } from '../panel/types';
5
- import { DockviewApi } from '../api/component.api';
6
- import { GroupviewPanel } from './groupviewPanel';
7
- import { Event } from '../events';
8
- import { WrappedTab } from '../dockview/components/tab/defaultTab';
9
- export interface IRenderable {
10
- id: string;
11
- element: HTMLElement;
12
- onDidFocus?: Event<void>;
13
- onDidBlur?: Event<void>;
14
- }
15
- export interface HeaderPartInitParameters {
16
- title: string;
17
- suppressClosable?: boolean;
18
- }
19
- export interface GroupPanelPartInitParameters extends PanelInitParameters, HeaderPartInitParameters {
20
- api: DockviewPanelApi;
21
- containerApi: DockviewApi;
22
- }
23
- export interface GroupPanelContentPartInitParameters extends GroupPanelPartInitParameters {
24
- tab: WrappedTab;
25
- }
26
- export interface IWatermarkRenderer extends IPanel {
27
- readonly element: HTMLElement;
28
- init: (params: GroupPanelPartInitParameters) => void;
29
- updateParentGroup(group: GroupviewPanel, visible: boolean): void;
30
- }
31
- export interface ITabRenderer extends IPanel {
32
- readonly element: HTMLElement;
33
- init(parameters: GroupPanelPartInitParameters): void;
34
- updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
35
- }
36
- export interface IActionsRenderer extends IDisposable {
37
- readonly element: HTMLElement;
38
- }
39
- export interface IContentRenderer extends IPanel {
40
- readonly element: HTMLElement;
41
- readonly actions?: HTMLElement;
42
- readonly onDidFocus?: Event<void>;
43
- readonly onDidBlur?: Event<void>;
44
- updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
45
- init(parameters: GroupPanelContentPartInitParameters): void;
46
- close?(): Promise<boolean>;
47
- }
48
- export interface WatermarkPartInitParameters {
49
- accessor: IDockviewComponent;
50
- }
51
- export interface PanelHeaderPartConstructor {
52
- new (): ITabRenderer;
53
- }
54
- export interface PanelContentPartConstructor {
55
- new (): IContentRenderer;
56
- }
57
- export interface WatermarkConstructor {
58
- new (): IWatermarkRenderer;
59
- }
1
+ import { IDisposable } from '../lifecycle';
2
+ import { IDockviewComponent } from '../dockview/dockviewComponent';
3
+ import { DockviewPanelApi } from '../api/groupPanelApi';
4
+ import { PanelInitParameters, IPanel } from '../panel/types';
5
+ import { DockviewApi } from '../api/component.api';
6
+ import { GroupviewPanel } from './groupviewPanel';
7
+ import { Event } from '../events';
8
+ import { WrappedTab } from '../dockview/components/tab/defaultTab';
9
+ export interface IRenderable {
10
+ id: string;
11
+ element: HTMLElement;
12
+ onDidFocus?: Event<void>;
13
+ onDidBlur?: Event<void>;
14
+ }
15
+ export interface HeaderPartInitParameters {
16
+ title: string;
17
+ suppressClosable?: boolean;
18
+ }
19
+ export interface GroupPanelPartInitParameters extends PanelInitParameters, HeaderPartInitParameters {
20
+ api: DockviewPanelApi;
21
+ containerApi: DockviewApi;
22
+ }
23
+ export interface GroupPanelContentPartInitParameters extends GroupPanelPartInitParameters {
24
+ tab: WrappedTab;
25
+ }
26
+ export interface IWatermarkRenderer extends IPanel {
27
+ readonly element: HTMLElement;
28
+ init: (params: GroupPanelPartInitParameters) => void;
29
+ updateParentGroup(group: GroupviewPanel, visible: boolean): void;
30
+ }
31
+ export interface ITabRenderer extends IPanel {
32
+ readonly element: HTMLElement;
33
+ init(parameters: GroupPanelPartInitParameters): void;
34
+ updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
35
+ }
36
+ export interface IActionsRenderer extends IDisposable {
37
+ readonly element: HTMLElement;
38
+ }
39
+ export interface IContentRenderer extends IPanel {
40
+ readonly element: HTMLElement;
41
+ readonly actions?: HTMLElement;
42
+ readonly onDidFocus?: Event<void>;
43
+ readonly onDidBlur?: Event<void>;
44
+ updateParentGroup(group: GroupviewPanel, isPanelVisible: boolean): void;
45
+ init(parameters: GroupPanelContentPartInitParameters): void;
46
+ close?(): Promise<boolean>;
47
+ }
48
+ export interface WatermarkPartInitParameters {
49
+ accessor: IDockviewComponent;
50
+ }
51
+ export interface PanelHeaderPartConstructor {
52
+ new (): ITabRenderer;
53
+ }
54
+ export interface PanelContentPartConstructor {
55
+ new (): IContentRenderer;
56
+ }
57
+ export interface WatermarkConstructor {
58
+ new (): IWatermarkRenderer;
59
+ }
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,23 +1,23 @@
1
- import { Event } from './events';
2
- import { IDisposable } from './lifecycle';
3
- export interface HostedContainerOptions {
4
- id: string;
5
- parent?: HTMLElement;
6
- }
7
- export declare class HostedContainer implements IDisposable {
8
- private readonly options;
9
- private readonly _element;
10
- private readonly _onDidFocus;
11
- readonly onDidFocus: Event<void>;
12
- private readonly _onDidBlur;
13
- readonly onDidBlur: Event<void>;
14
- get element(): HTMLElement;
15
- constructor(options: HostedContainerOptions);
16
- hide(): void;
17
- show(): void;
18
- layout(element: HTMLElement, dimension?: {
19
- width: number;
20
- height: number;
21
- }): void;
22
- dispose(): void;
23
- }
1
+ import { Event } from './events';
2
+ import { IDisposable } from './lifecycle';
3
+ export interface HostedContainerOptions {
4
+ id: string;
5
+ parent?: HTMLElement;
6
+ }
7
+ export declare class HostedContainer implements IDisposable {
8
+ private readonly options;
9
+ private readonly _element;
10
+ private readonly _onDidFocus;
11
+ readonly onDidFocus: Event<void>;
12
+ private readonly _onDidBlur;
13
+ readonly onDidBlur: Event<void>;
14
+ get element(): HTMLElement;
15
+ constructor(options: HostedContainerOptions);
16
+ hide(): void;
17
+ show(): void;
18
+ layout(element: HTMLElement, dimension?: {
19
+ width: number;
20
+ height: number;
21
+ }): void;
22
+ dispose(): void;
23
+ }
@@ -1,63 +1,63 @@
1
- import { trackFocus } from './dom';
2
- import { Emitter } from './events';
3
- export class HostedContainer {
4
- constructor(options) {
5
- this.options = options;
6
- this._onDidFocus = new Emitter();
7
- this.onDidFocus = this._onDidFocus.event;
8
- this._onDidBlur = new Emitter();
9
- this.onDidBlur = this._onDidBlur.event;
10
- if (!options.parent) {
11
- options.parent = document.getElementById('app');
12
- options.parent.style.position = 'relative';
13
- }
14
- this._element = document.createElement('div');
15
- this._element.style.visibility = 'hidden';
16
- this._element.style.overflow = 'hidden';
17
- // this._element.style.pointerEvents = 'none';
18
- this._element.id = `webview-${options.id}`;
19
- this._element.tabIndex = -1;
20
- const { onDidFocus, onDidBlur } = trackFocus(this._element);
21
- onDidFocus(() => this._onDidFocus.fire());
22
- onDidBlur(() => this._onDidBlur.fire());
23
- /**
24
- * When dragging somebody
25
- */
26
- window.addEventListener('dragstart', (ev) => {
27
- this.element.style.pointerEvents = 'none';
28
- });
29
- window.addEventListener('dragend', (ev) => {
30
- this.element.style.pointerEvents = '';
31
- });
32
- window.addEventListener('mousemove', (ev) => {
33
- if (ev.buttons === 0) {
34
- this.element.style.pointerEvents = '';
35
- }
36
- });
37
- options.parent.appendChild(this._element);
38
- }
39
- get element() {
40
- return this._element;
41
- }
42
- hide() {
43
- this._element.style.visibility = 'hidden';
44
- }
45
- show() {
46
- this._element.style.visibility = 'visible';
47
- }
48
- layout(element, dimension) {
49
- if (!this.element || !this.element.parentElement) {
50
- return;
51
- }
52
- const frameRect = element.getBoundingClientRect();
53
- const containerRect = this.element.parentElement.getBoundingClientRect();
54
- this.element.style.position = 'absolute';
55
- this.element.style.top = `${frameRect.top - containerRect.top}px`;
56
- this.element.style.left = `${frameRect.left - containerRect.left}px`;
57
- this.element.style.width = `${dimension ? dimension.width : frameRect.width}px`;
58
- this.element.style.height = `${dimension ? dimension.height : frameRect.height}px`;
59
- }
60
- dispose() {
61
- this._element.remove();
62
- }
63
- }
1
+ import { trackFocus } from './dom';
2
+ import { Emitter } from './events';
3
+ export class HostedContainer {
4
+ constructor(options) {
5
+ this.options = options;
6
+ this._onDidFocus = new Emitter();
7
+ this.onDidFocus = this._onDidFocus.event;
8
+ this._onDidBlur = new Emitter();
9
+ this.onDidBlur = this._onDidBlur.event;
10
+ if (!options.parent) {
11
+ options.parent = document.getElementById('app');
12
+ options.parent.style.position = 'relative';
13
+ }
14
+ this._element = document.createElement('div');
15
+ this._element.style.visibility = 'hidden';
16
+ this._element.style.overflow = 'hidden';
17
+ // this._element.style.pointerEvents = 'none';
18
+ this._element.id = `webview-${options.id}`;
19
+ this._element.tabIndex = -1;
20
+ const { onDidFocus, onDidBlur } = trackFocus(this._element);
21
+ onDidFocus(() => this._onDidFocus.fire());
22
+ onDidBlur(() => this._onDidBlur.fire());
23
+ /**
24
+ * When dragging somebody
25
+ */
26
+ window.addEventListener('dragstart', (ev) => {
27
+ this.element.style.pointerEvents = 'none';
28
+ });
29
+ window.addEventListener('dragend', (ev) => {
30
+ this.element.style.pointerEvents = '';
31
+ });
32
+ window.addEventListener('mousemove', (ev) => {
33
+ if (ev.buttons === 0) {
34
+ this.element.style.pointerEvents = '';
35
+ }
36
+ });
37
+ options.parent.appendChild(this._element);
38
+ }
39
+ get element() {
40
+ return this._element;
41
+ }
42
+ hide() {
43
+ this._element.style.visibility = 'hidden';
44
+ }
45
+ show() {
46
+ this._element.style.visibility = 'visible';
47
+ }
48
+ layout(element, dimension) {
49
+ if (!this.element || !this.element.parentElement) {
50
+ return;
51
+ }
52
+ const frameRect = element.getBoundingClientRect();
53
+ const containerRect = this.element.parentElement.getBoundingClientRect();
54
+ this.element.style.position = 'absolute';
55
+ this.element.style.top = `${frameRect.top - containerRect.top}px`;
56
+ this.element.style.left = `${frameRect.left - containerRect.left}px`;
57
+ this.element.style.width = `${dimension ? dimension.width : frameRect.width}px`;
58
+ this.element.style.height = `${dimension ? dimension.height : frameRect.height}px`;
59
+ }
60
+ dispose() {
61
+ this._element.remove();
62
+ }
63
+ }