dockview 1.1.0 → 1.2.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 (88) hide show
  1. package/dist/cjs/api/component.api.d.ts +1 -3
  2. package/dist/cjs/api/component.api.js +0 -14
  3. package/dist/cjs/api/component.api.js.map +1 -1
  4. package/dist/cjs/dnd/abstractDragHandler.d.ts +1 -1
  5. package/dist/cjs/dnd/abstractDragHandler.js +1 -2
  6. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
  7. package/dist/cjs/dockview/deserializer.js.map +1 -1
  8. package/dist/cjs/dockview/dockviewComponent.d.ts +5 -3
  9. package/dist/cjs/dockview/dockviewComponent.js +45 -38
  10. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  11. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +1 -0
  12. package/dist/cjs/dockview/dockviewGroupPanel.js +8 -0
  13. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  14. package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -20
  15. package/dist/cjs/gridview/baseComponentGridview.js +9 -43
  16. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  17. package/dist/cjs/gridview/branchNode.js +1 -1
  18. package/dist/cjs/gridview/branchNode.js.map +1 -1
  19. package/dist/cjs/gridview/gridview.js +1 -0
  20. package/dist/cjs/gridview/gridview.js.map +1 -1
  21. package/dist/cjs/gridview/gridviewComponent.js +0 -1
  22. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  23. package/dist/cjs/gridview/leafNode.js +1 -1
  24. package/dist/cjs/gridview/leafNode.js.map +1 -1
  25. package/dist/cjs/groupview/groupPanel.d.ts +1 -0
  26. package/dist/cjs/index.d.ts +2 -2
  27. package/dist/cjs/index.js +8 -4
  28. package/dist/cjs/index.js.map +1 -1
  29. package/dist/cjs/paneview/paneview.js +3 -2
  30. package/dist/cjs/paneview/paneview.js.map +1 -1
  31. package/dist/cjs/paneview/paneviewComponent.d.ts +1 -0
  32. package/dist/cjs/paneview/paneviewComponent.js +4 -0
  33. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  34. package/dist/cjs/react/dockview/components.js +5 -1
  35. package/dist/cjs/react/dockview/components.js.map +1 -1
  36. package/dist/cjs/react/dockview/dockview.js +14 -1
  37. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  38. package/dist/cjs/react/gridview/gridview.js +9 -2
  39. package/dist/cjs/react/gridview/gridview.js.map +1 -1
  40. package/dist/cjs/react/index.js +5 -1
  41. package/dist/cjs/react/index.js.map +1 -1
  42. package/dist/cjs/react/paneview/paneview.js +5 -1
  43. package/dist/cjs/react/paneview/paneview.js.map +1 -1
  44. package/dist/cjs/react/react.js +5 -1
  45. package/dist/cjs/react/react.js.map +1 -1
  46. package/dist/cjs/react/splitview/splitview.js +8 -2
  47. package/dist/cjs/react/splitview/splitview.js.map +1 -1
  48. package/dist/cjs/splitview/core/splitview.js +1 -1
  49. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  50. package/dist/cjs/splitview/splitviewComponent.js +1 -0
  51. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  52. package/dist/dockview.amd.js +168 -207
  53. package/dist/dockview.amd.min.js +2 -2
  54. package/dist/dockview.amd.min.noStyle.js +2 -2
  55. package/dist/dockview.amd.noStyle.js +167 -206
  56. package/dist/dockview.cjs.js +168 -207
  57. package/dist/dockview.esm.js +168 -201
  58. package/dist/dockview.esm.min.js +2 -2
  59. package/dist/dockview.js +168 -207
  60. package/dist/dockview.min.js +2 -2
  61. package/dist/dockview.min.noStyle.js +2 -2
  62. package/dist/dockview.noStyle.js +167 -206
  63. package/dist/esm/api/component.api.d.ts +1 -3
  64. package/dist/esm/api/component.api.js +0 -6
  65. package/dist/esm/dnd/abstractDragHandler.d.ts +1 -1
  66. package/dist/esm/dnd/abstractDragHandler.js +1 -2
  67. package/dist/esm/dockview/dockviewComponent.d.ts +5 -3
  68. package/dist/esm/dockview/dockviewComponent.js +20 -36
  69. package/dist/esm/dockview/dockviewGroupPanel.d.ts +1 -0
  70. package/dist/esm/dockview/dockviewGroupPanel.js +4 -0
  71. package/dist/esm/gridview/baseComponentGridview.d.ts +3 -20
  72. package/dist/esm/gridview/baseComponentGridview.js +9 -43
  73. package/dist/esm/gridview/branchNode.js +1 -1
  74. package/dist/esm/gridview/gridview.js +1 -0
  75. package/dist/esm/gridview/gridviewComponent.js +1 -2
  76. package/dist/esm/groupview/groupPanel.d.ts +1 -0
  77. package/dist/esm/index.d.ts +2 -2
  78. package/dist/esm/index.js +1 -2
  79. package/dist/esm/paneview/paneview.js +1 -1
  80. package/dist/esm/paneview/paneviewComponent.d.ts +1 -0
  81. package/dist/esm/paneview/paneviewComponent.js +4 -0
  82. package/dist/esm/react/dockview/dockview.js +9 -0
  83. package/dist/esm/react/gridview/gridview.js +4 -1
  84. package/dist/esm/react/splitview/splitview.js +3 -1
  85. package/dist/esm/splitview/core/splitview.js +1 -1
  86. package/dist/esm/splitview/splitviewComponent.js +1 -0
  87. package/dist/styles/dockview.css +9 -8
  88. package/package.json +11 -11
package/dist/dockview.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview
3
- * @version 1.1.0
3
+ * @version 1.2.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -58,9 +58,79 @@
58
58
  }
59
59
  }
60
60
 
61
- var css_248z = ".dockview-theme-dark {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-activegroup-visiblepanel-tab-background-color: dodgerblue;\n --dv-tabs-and-actions-container-height: 18px;\n --dv-tabs-and-actions-container-font-size: 11px;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container a:active {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.actions-bar .actions-container .close-action {\n background-color: white;\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n cursor: pointer;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n pointer-events: none;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.left, .drop-target > .drop-target-dropzone > .drop-target-selection.right {\n width: 50%;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.right {\n transform: translate(100%, 0%);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n transform: translate(0%, 100%);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.top, .drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n height: 50%;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.custom-dragging {\n height: 24px;\n line-height: 24px;\n font-size: 11px;\n width: 100px;\n background-color: dodgerblue;\n color: ghostwhite;\n border-radius: 11px;\n position: absolute;\n padding-left: 10px;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n}\n.pane-container .view .default-header > span {\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.dockview-react-part {\n height: 100%;\n width: 100%;\n}\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n}\n.split-view-container .sash-container .sash:active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dragged {\n transform: translate3d(0px, 0px, 0px);\n /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab.dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding-left: 10px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n width: 28px;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list a:active:hover {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n}\n.tab .default-tab .action-container .tab-list .tab-action.disable-close {\n display: none;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-bar {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}";
61
+ var css_248z = ".dockview-theme-dark {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n}\n\n.dockview-theme-light {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: white;\n --dv-tabs-and-actions-container-background-color: #f3f3f3;\n --dv-activegroup-visiblepanel-tab-background-color: white;\n --dv-activegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-inactivegroup-visiblepanel-tab-background-color: white;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #ececec;\n --dv-tab-divider-color: white;\n --dv-activegroup-visiblepanel-tab-color: rgb(51, 51, 51);\n --dv-activegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-visiblepanel-tab-color: rgba(51, 51, 51, 0.7);\n --dv-inactivegroup-hiddenpanel-tab-color: rgba(51, 51, 51, 0.35);\n --dv-separator-border: rgba(128, 128, 128, 0.35);\n --dv-paneview-header-border-color: rgb(51, 51, 51);\n}\n\n.dockview-theme-vs {\n --dv-paneview-active-outline-color: dodgerblue;\n --dv-tabs-and-actions-container-font-size: 13px;\n --dv-tabs-and-actions-container-height: 35px;\n --dv-tab-close-icon: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"/></svg>');\n --dv-drag-over-background-color: rgba(83, 89, 93, 0.5);\n --dv-drag-over-border-color: white;\n --dv-tabs-container-scrollbar-color: #888;\n --dv-group-view-background-color: #1e1e1e;\n --dv-tabs-and-actions-container-background-color: #252526;\n --dv-activegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-activegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-inactivegroup-visiblepanel-tab-background-color: #1e1e1e;\n --dv-inactivegroup-hiddenpanel-tab-background-color: #2d2d2d;\n --dv-tab-divider-color: #1e1e1e;\n --dv-activegroup-visiblepanel-tab-color: white;\n --dv-activegroup-hiddenpanel-tab-color: #969696;\n --dv-inactivegroup-visiblepanel-tab-color: #8f8f8f;\n --dv-inactivegroup-hiddenpanel-tab-color: #626262;\n --dv-separator-border: rgb(68, 68, 68);\n --dv-paneview-header-border-color: rgba(204, 204, 204, 0.2);\n --dv-activegroup-visiblepanel-tab-background-color: dodgerblue;\n --dv-tabs-and-actions-container-height: 18px;\n --dv-tabs-and-actions-container-font-size: 11px;\n}\n.dockview-theme-vs .groupview.active-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-activegroup-visiblepanel-tab-background-color);\n}\n.dockview-theme-vs .groupview.inactive-group > .tabs-and-actions-container {\n border-bottom: 2px solid var(--dv-inactivegroup-visiblepanel-tab-background-color);\n}\n.actions-bar {\n text-align: right;\n width: 28px;\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.actions-bar .actions-container {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.actions-bar .actions-container a:active {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.actions-bar .actions-container .close-action {\n background-color: white;\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n cursor: pointer;\n}\n.drop-target {\n position: relative;\n}\n.drop-target > .drop-target-dropzone {\n position: absolute;\n left: 0px;\n top: 0px;\n height: 100%;\n width: 100%;\n z-index: 10000;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection {\n position: relative;\n box-sizing: border-box;\n height: 100%;\n width: 100%;\n background-color: var(--dv-drag-over-background-color);\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n will-change: transform;\n pointer-events: none;\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.left {\n transform: translateX(-25%) scaleX(50%);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.right {\n transform: translateX(25%) scaleX(50%);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.top {\n transform: translateY(-25%) scaleY(50%);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.bottom {\n transform: translateY(25%) scaleY(50%);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-top {\n border-top: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-bottom {\n border-bottom: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-left {\n border-left: 1px solid var(--dv-drag-over-border-color);\n}\n.drop-target > .drop-target-dropzone > .drop-target-selection.small-right {\n border-right: 1px solid var(--dv-drag-over-border-color);\n}\n.custom-dragging {\n height: 24px;\n line-height: 24px;\n font-size: 11px;\n width: 100px;\n background-color: dodgerblue;\n color: ghostwhite;\n border-radius: 11px;\n position: absolute;\n padding-left: 10px;\n}\n\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-activegroup-hiddenpanel-tab-background-color);\n color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.active-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-activegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-background-color);\n color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.active-tab .tab-action {\n background-color: var(--dv-inactivegroup-visiblepanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-background-color);\n color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n.groupview.inactive-group > .tabs-and-actions-container > .tabs-container > .tab.inactive-tab .tab-action {\n background-color: var(--dv-inactivegroup-hiddenpanel-tab-color);\n}\n\n/**\n * when a tab is dragged we lose the above stylings because they are conditional on parent elements\n * therefore we also set some stylings for the dragging event\n **/\n.tab.dragging {\n background-color: var(--dv-activegroup-visiblepanel-tab-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.grid-view,\n.branch-node {\n height: 100%;\n width: 100%;\n}\n.groupview {\n display: flex;\n flex-direction: column;\n height: 100%;\n background-color: var(--dv-group-view-background-color);\n overflow: hidden;\n}\n.groupview:focus {\n outline: none;\n}\n.groupview.empty > .tabs-and-actions-container {\n display: none;\n}\n.groupview > .content-container {\n flex-grow: 1;\n overflow: hidden;\n outline: none;\n}\n.pane-container {\n height: 100%;\n width: 100%;\n}\n.pane-container.animated .view {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.pane-container .view {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n padding: 0px !important;\n}\n.pane-container .view:not(:first-child)::before {\n background-color: transparent !important;\n}\n.pane-container .view:not(:first-child) .pane > .pane-header {\n border-top: 1px solid var(--dv-paneview-header-border-color);\n}\n.pane-container .view .default-header {\n background-color: var(--dv-group-view-background-color);\n color: var(--dv-activegroup-visiblepanel-tab-color);\n display: flex;\n padding: 0px 8px;\n}\n.pane-container .view .default-header > span {\n flex-grow: 1;\n}\n.pane-container:first-of-type > .pane > .pane-header {\n border-top: none !important;\n}\n.pane-container .pane {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n height: 100%;\n}\n.pane-container .pane .pane-header {\n box-sizing: border-box;\n user-select: none;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-header.pane-draggable {\n cursor: pointer;\n}\n.pane-container .pane .pane-header:focus:before, .pane-container .pane .pane-header:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.pane-container .pane .pane-body {\n overflow-y: auto;\n overflow-x: hidden;\n flex-grow: 1;\n position: relative;\n outline: none;\n}\n.pane-container .pane .pane-body:focus:before, .pane-container .pane .pane-body:focus-within:before {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 5;\n content: \"\";\n pointer-events: none;\n outline: 1px solid;\n outline-width: -1px;\n outline-style: solid;\n outline-offset: -1px;\n outline-color: var(--dv-paneview-active-outline-color);\n}\n.tabs-and-actions-container {\n display: flex;\n background-color: var(--dv-tabs-and-actions-container-background-color);\n flex-shrink: 0;\n box-sizing: border-box;\n height: var(--dv-tabs-and-actions-container-height);\n font-size: var(--dv-tabs-and-actions-container-font-size);\n}\n.tabs-and-actions-container.hidden {\n display: none;\n}\n.tabs-and-actions-container .void-container {\n display: flex;\n flex-grow: 1;\n}\n.tabs-and-actions-container .tabs-container {\n display: flex;\n overflow-x: overlay;\n overflow-y: hidden;\n scrollbar-width: thin;\n /* Track */\n /* Handle */\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar {\n height: 3px;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-track {\n background: transparent;\n}\n.tabs-and-actions-container .tabs-container::-webkit-scrollbar-thumb {\n background: var(--dv-tabs-container-scrollbar-color);\n}\n.tabs-and-actions-container .tabs-container .tab {\n -webkit-user-drag: element;\n outline: none;\n min-width: 75px;\n cursor: pointer;\n position: relative;\n box-sizing: border-box;\n}\n.tabs-and-actions-container .tabs-container .tab:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-tab-divider-color);\n width: 1px;\n height: 100%;\n}\n.dockview-react-part {\n height: 100%;\n width: 100%;\n}\n.split-view-container {\n position: relative;\n overflow: hidden;\n height: 100%;\n width: 100%;\n}\n.split-view-container.animation .view,\n.split-view-container.animation .sash {\n transition-duration: 0.15s;\n transition-timing-function: ease-out;\n}\n.split-view-container.horizontal {\n height: 100%;\n}\n.split-view-container.horizontal > .sash-container > .sash {\n height: 100%;\n width: 4px;\n}\n.split-view-container.horizontal > .sash-container > .sash.enabled {\n cursor: ew-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.horizontal > .sash-container > .sash.maximum {\n cursor: w-resize;\n}\n.split-view-container.horizontal > .sash-container > .sash.minimum {\n cursor: e-resize;\n}\n.split-view-container.horizontal > .view-container > .view:not(:first-child)::before {\n height: 100%;\n width: 1px;\n}\n.split-view-container.vertical {\n width: 100%;\n}\n.split-view-container.vertical > .sash-container > .sash {\n width: 100%;\n height: 4px;\n}\n.split-view-container.vertical > .sash-container > .sash.enabled {\n cursor: ns-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.disabled {\n cursor: default;\n}\n.split-view-container.vertical > .sash-container > .sash.maximum {\n cursor: n-resize;\n}\n.split-view-container.vertical > .sash-container > .sash.minimum {\n cursor: s-resize;\n}\n.split-view-container.vertical > .view-container > .view {\n width: 100%;\n}\n.split-view-container.vertical > .view-container > .view:not(:first-child)::before {\n height: 1px;\n width: 100%;\n}\n.split-view-container .sash-container {\n height: 100%;\n width: 100%;\n position: absolute;\n}\n.split-view-container .sash-container .sash {\n position: absolute;\n z-index: 99;\n outline: none;\n}\n.split-view-container .sash-container .sash:active {\n transition: background-color 0.1s ease-in-out;\n background-color: var(--dv-active-sash-color, transparent);\n}\n.split-view-container .sash-container .sash:hover {\n background-color: var(--dv-active-sash-color, transparent);\n transition: background-color 0.1s ease-in-out;\n transition-delay: 0.5s;\n}\n.split-view-container .view-container {\n position: relative;\n height: 100%;\n width: 100%;\n}\n.split-view-container .view-container .view {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n position: absolute;\n}\n.split-view-container.separator-border .view:not(:first-child)::before {\n content: \" \";\n position: absolute;\n top: 0;\n left: 0;\n z-index: 5;\n pointer-events: none;\n background-color: var(--dv-separator-border);\n}\n.dragged {\n transform: translate3d(0px, 0px, 0px);\n /* forces tab to be drawn on a separate layer (see https://github.com/microsoft/vscode/issues/18733) */\n}\n\n.tab {\n flex-shrink: 0;\n}\n.tab.dragging .tab-action {\n background-color: var(--dv-activegroup-visiblepanel-tab-color);\n}\n.tab.active-tab > .default-tab .tab-action {\n visibility: visible;\n}\n.tab.inactive-tab > .default-tab .tab-action {\n visibility: hidden;\n}\n.tab.inactive-tab > .default-tab:hover .tab-action {\n visibility: visible;\n}\n.tab .default-tab {\n position: relative;\n height: 100%;\n display: flex;\n min-width: 80px;\n align-items: center;\n padding-left: 10px;\n white-space: nowrap;\n text-overflow: elipsis;\n}\n.tab .default-tab .tab-content {\n flex-grow: 1;\n}\n.tab .default-tab .action-container {\n text-align: right;\n width: 28px;\n display: flex;\n}\n.tab .default-tab .action-container .tab-list {\n display: flex;\n padding: 0px;\n margin: 0px;\n justify-content: flex-end;\n}\n.tab .default-tab .action-container .tab-list a:active:hover {\n -webkit-mask-size: 100% 100% !important;\n mask-size: 100% 100% !important;\n}\n.tab .default-tab .action-container .tab-list .tab-action {\n height: 16px;\n width: 16px;\n display: block;\n -webkit-mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n mask: var(--dv-tab-close-icon) 50% 50%/90% 90% no-repeat;\n margin-right: \"0.5em\";\n}\n.tab .default-tab .action-container .tab-list .tab-action.disable-close {\n display: none;\n}\n.watermark {\n display: flex;\n width: 100%;\n}\n.watermark.has-actions .watermark-title .actions-bar {\n display: none;\n}\n.watermark .watermark-title {\n height: 35px;\n width: 100%;\n display: flex;\n}\n.watermark .watermark-content {\n flex-grow: 1;\n}";
62
62
  styleInject(css_248z);
63
63
 
64
+ class TransferObject {
65
+ constructor() {
66
+ //
67
+ }
68
+ }
69
+ class PanelTransfer extends TransferObject {
70
+ constructor(viewId, groupId, panelId) {
71
+ super();
72
+ this.viewId = viewId;
73
+ this.groupId = groupId;
74
+ this.panelId = panelId;
75
+ }
76
+ }
77
+ class PaneTransfer extends TransferObject {
78
+ constructor(viewId, paneId) {
79
+ super();
80
+ this.viewId = viewId;
81
+ this.paneId = paneId;
82
+ }
83
+ }
84
+ /**
85
+ * A singleton to store transfer data during drag & drop operations that are only valid within the application.
86
+ */
87
+ class LocalSelectionTransfer {
88
+ constructor() {
89
+ // protect against external instantiation
90
+ }
91
+ static getInstance() {
92
+ return LocalSelectionTransfer.INSTANCE;
93
+ }
94
+ hasData(proto) {
95
+ return proto && proto === this.proto;
96
+ }
97
+ clearData(proto) {
98
+ if (this.hasData(proto)) {
99
+ this.proto = undefined;
100
+ this.data = undefined;
101
+ }
102
+ }
103
+ getData(proto) {
104
+ if (this.hasData(proto)) {
105
+ return this.data;
106
+ }
107
+ return undefined;
108
+ }
109
+ setData(data, proto) {
110
+ if (proto) {
111
+ this.data = data;
112
+ this.proto = proto;
113
+ }
114
+ }
115
+ }
116
+ LocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();
117
+ function getPanelData() {
118
+ const panelTransfer = LocalSelectionTransfer.getInstance();
119
+ const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);
120
+ if (!isPanelEvent) {
121
+ return undefined;
122
+ }
123
+ return panelTransfer.getData(PanelTransfer.prototype)[0];
124
+ }
125
+ function getPaneData() {
126
+ const paneTransfer = LocalSelectionTransfer.getInstance();
127
+ const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);
128
+ if (!isPanelEvent) {
129
+ return undefined;
130
+ }
131
+ return paneTransfer.getData(PaneTransfer.prototype)[0];
132
+ }
133
+
64
134
  exports.Event = void 0;
65
135
  (function (Event) {
66
136
  Event.any = (...children) => {
@@ -150,116 +220,6 @@
150
220
  }
151
221
  }
152
222
 
153
- exports.Disposable = void 0;
154
- (function (Disposable) {
155
- Disposable.NONE = {
156
- dispose: () => {
157
- // noop
158
- },
159
- };
160
- })(exports.Disposable || (exports.Disposable = {}));
161
- class CompositeDisposable {
162
- constructor(...args) {
163
- this.disposables = args;
164
- }
165
- static from(...args) {
166
- return new CompositeDisposable(...args);
167
- }
168
- addDisposables(...args) {
169
- args.forEach((arg) => this.disposables.push(arg));
170
- }
171
- dispose() {
172
- this.disposables.forEach((arg) => arg.dispose());
173
- }
174
- }
175
- class MutableDisposable {
176
- constructor() {
177
- this._disposable = exports.Disposable.NONE;
178
- }
179
- set value(disposable) {
180
- if (this._disposable) {
181
- this._disposable.dispose();
182
- }
183
- this._disposable = disposable;
184
- }
185
- dispose() {
186
- if (this._disposable) {
187
- this._disposable.dispose();
188
- this._disposable = exports.Disposable.NONE;
189
- }
190
- }
191
- }
192
-
193
- class TransferObject {
194
- constructor() {
195
- //
196
- }
197
- }
198
- class PanelTransfer extends TransferObject {
199
- constructor(viewId, groupId, panelId) {
200
- super();
201
- this.viewId = viewId;
202
- this.groupId = groupId;
203
- this.panelId = panelId;
204
- }
205
- }
206
- class PaneTransfer extends TransferObject {
207
- constructor(viewId, paneId) {
208
- super();
209
- this.viewId = viewId;
210
- this.paneId = paneId;
211
- }
212
- }
213
- /**
214
- * A singleton to store transfer data during drag & drop operations that are only valid within the application.
215
- */
216
- class LocalSelectionTransfer {
217
- constructor() {
218
- // protect against external instantiation
219
- }
220
- static getInstance() {
221
- return LocalSelectionTransfer.INSTANCE;
222
- }
223
- hasData(proto) {
224
- return proto && proto === this.proto;
225
- }
226
- clearData(proto) {
227
- if (this.hasData(proto)) {
228
- this.proto = undefined;
229
- this.data = undefined;
230
- }
231
- }
232
- getData(proto) {
233
- if (this.hasData(proto)) {
234
- return this.data;
235
- }
236
- return undefined;
237
- }
238
- setData(data, proto) {
239
- if (proto) {
240
- this.data = data;
241
- this.proto = proto;
242
- }
243
- }
244
- }
245
- LocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();
246
- function getPanelData() {
247
- const panelTransfer = LocalSelectionTransfer.getInstance();
248
- const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);
249
- if (!isPanelEvent) {
250
- return undefined;
251
- }
252
- return panelTransfer.getData(PanelTransfer.prototype)[0];
253
- }
254
- function getPaneData() {
255
- const paneTransfer = LocalSelectionTransfer.getInstance();
256
- const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);
257
- if (!isPanelEvent) {
258
- return undefined;
259
- }
260
- return paneTransfer.getData(PaneTransfer.prototype)[0];
261
- }
262
-
263
223
  class SplitviewApi {
264
224
  constructor(component) {
265
225
  this.component = component;
@@ -420,9 +380,6 @@
420
380
  get height() {
421
381
  return this.component.height;
422
382
  }
423
- get onGridEvent() {
424
- return this.component.onGridEvent;
425
- }
426
383
  get onDidLayoutChange() {
427
384
  return this.component.onDidLayoutChange;
428
385
  }
@@ -512,9 +469,6 @@
512
469
  get totalPanels() {
513
470
  return this.component.totalPanels;
514
471
  }
515
- get onGridEvent() {
516
- return this.component.onGridEvent;
517
- }
518
472
  get onDidActiveGroupChange() {
519
473
  return this.component.onDidActiveGroupChange;
520
474
  }
@@ -598,6 +552,46 @@
598
552
  }
599
553
  }
600
554
 
555
+ var Disposable;
556
+ (function (Disposable) {
557
+ Disposable.NONE = {
558
+ dispose: () => {
559
+ // noop
560
+ },
561
+ };
562
+ })(Disposable || (Disposable = {}));
563
+ class CompositeDisposable {
564
+ constructor(...args) {
565
+ this.disposables = args;
566
+ }
567
+ static from(...args) {
568
+ return new CompositeDisposable(...args);
569
+ }
570
+ addDisposables(...args) {
571
+ args.forEach((arg) => this.disposables.push(arg));
572
+ }
573
+ dispose() {
574
+ this.disposables.forEach((arg) => arg.dispose());
575
+ }
576
+ }
577
+ class MutableDisposable {
578
+ constructor() {
579
+ this._disposable = Disposable.NONE;
580
+ }
581
+ set value(disposable) {
582
+ if (this._disposable) {
583
+ this._disposable.dispose();
584
+ }
585
+ this._disposable = disposable;
586
+ }
587
+ dispose() {
588
+ if (this._disposable) {
589
+ this._disposable.dispose();
590
+ this._disposable = Disposable.NONE;
591
+ }
592
+ }
593
+ }
594
+
601
595
  function watchElementResize(element, cb) {
602
596
  const observer = new ResizeObserver((entires) => {
603
597
  const firstEntry = entires[0];
@@ -1543,13 +1537,13 @@
1543
1537
  this._onDidSashEnd.dispose();
1544
1538
  this._onDidAddView.dispose();
1545
1539
  this._onDidRemoveView.dispose();
1546
- this.element.remove();
1547
1540
  for (let i = 0; i < this.element.children.length; i++) {
1548
1541
  if (this.element.children.item(i) === this.element) {
1549
1542
  this.element.removeChild(this.element);
1550
1543
  break;
1551
1544
  }
1552
1545
  }
1546
+ this.element.remove();
1553
1547
  }
1554
1548
  }
1555
1549
 
@@ -1678,7 +1672,6 @@
1678
1672
  }
1679
1673
  dispose() {
1680
1674
  super.dispose();
1681
- this.splitview.dispose();
1682
1675
  if (this.animationTimer) {
1683
1676
  clearTimeout(this.animationTimer);
1684
1677
  this.animationTimer = undefined;
@@ -1687,6 +1680,7 @@
1687
1680
  paneItem.disposable.dispose();
1688
1681
  });
1689
1682
  this.paneItems = [];
1683
+ this.splitview.dispose();
1690
1684
  this.element.remove();
1691
1685
  }
1692
1686
  }
@@ -2005,7 +1999,7 @@
2005
1999
  this.children = [];
2006
2000
  this._onDidChange = new Emitter();
2007
2001
  this.onDidChange = this._onDidChange.event;
2008
- this._childrenDisposable = exports.Disposable.NONE;
2002
+ this._childrenDisposable = Disposable.NONE;
2009
2003
  this._orthogonalSize = orthogonalSize;
2010
2004
  this._size = size;
2011
2005
  this.element = document.createElement('div');
@@ -2030,7 +2024,7 @@
2030
2024
  : true,
2031
2025
  };
2032
2026
  }),
2033
- size: this.orthogonalSize,
2027
+ size: this.size,
2034
2028
  };
2035
2029
  this.children = childDescriptors.map((c) => c.node);
2036
2030
  this.splitview = new Splitview(this.element, {
@@ -2351,6 +2345,7 @@
2351
2345
  this.disposable.dispose();
2352
2346
  this._onDidChange.dispose();
2353
2347
  this.root.dispose();
2348
+ this.element.remove();
2354
2349
  }
2355
2350
  clear() {
2356
2351
  const orientation = this.root.orientation;
@@ -3381,19 +3376,6 @@
3381
3376
  }
3382
3377
  }
3383
3378
 
3384
- exports.GroupChangeKind = void 0;
3385
- (function (GroupChangeKind) {
3386
- GroupChangeKind["ADD_PANEL"] = "ADD_PANEL";
3387
- GroupChangeKind["REMOVE_PANEL"] = "REMOVE_PANEL";
3388
- GroupChangeKind["PANEL_ACTIVE"] = "PANEL_ACTIVE";
3389
- //
3390
- GroupChangeKind["GROUP_ACTIVE"] = "GROUP_ACTIVE";
3391
- GroupChangeKind["ADD_GROUP"] = "ADD_GROUP";
3392
- GroupChangeKind["REMOVE_GROUP"] = "REMOVE_GROUP";
3393
- //
3394
- GroupChangeKind["LAYOUT_FROM_JSON"] = "LAYOUT_FROM_JSON";
3395
- GroupChangeKind["LAYOUT"] = "LAYOUT";
3396
- })(exports.GroupChangeKind || (exports.GroupChangeKind = {}));
3397
3379
  const nextLayoutId = sequentialNumberGenerator();
3398
3380
  function toTarget(direction) {
3399
3381
  switch (direction) {
@@ -3416,9 +3398,6 @@
3416
3398
  this._element = _element;
3417
3399
  this._id = nextLayoutId.next();
3418
3400
  this._groups = new Map();
3419
- //
3420
- this._onGridEvent = new Emitter();
3421
- this.onGridEvent = this._onGridEvent.event;
3422
3401
  this._onDidLayoutChange = new Emitter();
3423
3402
  this.onDidLayoutChange = this._onDidLayoutChange.event;
3424
3403
  this._onDidRemoveGroup = new Emitter();
@@ -3427,30 +3406,18 @@
3427
3406
  this.onDidAddGroup = this._onDidAddGroup.event;
3428
3407
  this._onDidActiveGroupChange = new Emitter();
3429
3408
  this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
3409
+ this._bufferOnDidLayoutChange = new TickDelayedEvent();
3430
3410
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
3431
3411
  this.element.appendChild(this.gridview.element);
3432
3412
  this.layout(0, 0, true); // set some elements height/widths
3433
3413
  this.addDisposables(this.gridview.onDidChange(() => {
3434
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT });
3414
+ this._onDidLayoutChange.fire();
3435
3415
  }));
3436
- this.addDisposables((() => {
3437
- const tickDelayedEvent = new TickDelayedEvent();
3438
- return new CompositeDisposable(this.onGridEvent((event) => {
3439
- if ([
3440
- exports.GroupChangeKind.ADD_GROUP,
3441
- exports.GroupChangeKind.REMOVE_GROUP,
3442
- exports.GroupChangeKind.ADD_PANEL,
3443
- exports.GroupChangeKind.REMOVE_PANEL,
3444
- exports.GroupChangeKind.GROUP_ACTIVE,
3445
- exports.GroupChangeKind.PANEL_ACTIVE,
3446
- exports.GroupChangeKind.LAYOUT,
3447
- ].includes(event.kind)) {
3448
- tickDelayedEvent.fire();
3449
- }
3450
- }), tickDelayedEvent.onEvent(() => {
3451
- this._onDidLayoutChange.fire();
3452
- }), tickDelayedEvent);
3453
- })());
3416
+ this.addDisposables(exports.Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
3417
+ this._bufferOnDidLayoutChange.fire();
3418
+ }), this._bufferOnDidLayoutChange.onEvent(() => {
3419
+ this._onDidLayoutChange.fire();
3420
+ }), this._bufferOnDidLayoutChange);
3454
3421
  }
3455
3422
  get id() {
3456
3423
  return this._id;
@@ -3487,14 +3454,13 @@
3487
3454
  }
3488
3455
  setVisible(panel, visible) {
3489
3456
  this.gridview.setViewVisible(getGridLocation(panel.element), visible);
3490
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT });
3457
+ this._onDidLayoutChange.fire();
3491
3458
  }
3492
3459
  isVisible(panel) {
3493
3460
  return this.gridview.isViewVisible(getGridLocation(panel.element));
3494
3461
  }
3495
3462
  doAddGroup(group, location = [0], size) {
3496
3463
  this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
3497
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.ADD_GROUP });
3498
3464
  this._onDidAddGroup.fire(group);
3499
3465
  this.doSetGroupActive(group);
3500
3466
  }
@@ -3508,7 +3474,6 @@
3508
3474
  item.disposable.dispose();
3509
3475
  this._groups.delete(group.id);
3510
3476
  }
3511
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.REMOVE_GROUP });
3512
3477
  this._onDidRemoveGroup.fire(group);
3513
3478
  if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
3514
3479
  const groups = Array.from(this._groups.values());
@@ -3537,9 +3502,6 @@
3537
3502
  }
3538
3503
  }
3539
3504
  this._activeGroup = group;
3540
- this._onGridEvent.fire({
3541
- kind: exports.GroupChangeKind.GROUP_ACTIVE,
3542
- });
3543
3505
  this._onDidActiveGroupChange.fire(group);
3544
3506
  }
3545
3507
  removeGroup(group) {
@@ -3596,7 +3558,6 @@
3596
3558
  }
3597
3559
  dispose() {
3598
3560
  super.dispose();
3599
- this._onGridEvent.dispose();
3600
3561
  this._onDidActiveGroupChange.dispose();
3601
3562
  this._onDidAddGroup.dispose();
3602
3563
  this._onDidRemoveGroup.dispose();
@@ -3778,6 +3739,10 @@
3778
3739
  this.update({ params: { title } });
3779
3740
  }));
3780
3741
  }
3742
+ get params() {
3743
+ var _a;
3744
+ return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;
3745
+ }
3781
3746
  get title() {
3782
3747
  return this._title;
3783
3748
  }
@@ -4454,7 +4419,9 @@
4454
4419
  this.onDidLayoutfromJSON = this._onDidLayoutfromJSON.event;
4455
4420
  this._onDidActivePanelChange = new Emitter();
4456
4421
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
4457
- this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop);
4422
+ this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop, exports.Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
4423
+ this._bufferOnDidLayoutChange.fire();
4424
+ }));
4458
4425
  this._options = options;
4459
4426
  if (!this.options.components) {
4460
4427
  this.options.components = {};
@@ -4588,11 +4555,12 @@
4588
4555
  };
4589
4556
  }
4590
4557
  fromJSON(data) {
4558
+ const groups = Array.from(this._groups.values()).map((_) => _.value);
4559
+ for (const group of groups) {
4560
+ // remove the group will automatically remove the panels
4561
+ this.removeGroup(group, true);
4562
+ }
4591
4563
  this.gridview.clear();
4592
- this.panels.forEach((panel) => {
4593
- panel.dispose();
4594
- });
4595
- this._groups.clear();
4596
4564
  if (!this.deserializer) {
4597
4565
  throw new Error('invalid deserializer');
4598
4566
  }
@@ -4616,7 +4584,6 @@
4616
4584
  }
4617
4585
  }
4618
4586
  this.gridview.layout(this.width, this.height);
4619
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT_FROM_JSON });
4620
4587
  this._onDidLayoutfromJSON.fire();
4621
4588
  }
4622
4589
  closeAllGroups() {
@@ -4666,13 +4633,13 @@
4666
4633
  }
4667
4634
  return panel;
4668
4635
  }
4669
- removePanel(panel) {
4636
+ removePanel(panel, options = { removeEmptyGroup: true }) {
4670
4637
  const group = panel.group;
4671
4638
  if (!group) {
4672
4639
  throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
4673
4640
  }
4674
4641
  group.model.removePanel(panel);
4675
- if (group.model.size === 0) {
4642
+ if (group.model.size === 0 && options.removeEmptyGroup) {
4676
4643
  this.removeGroup(group);
4677
4644
  }
4678
4645
  }
@@ -4704,16 +4671,14 @@
4704
4671
  this.doAddGroup(group);
4705
4672
  }
4706
4673
  }
4707
- removeGroup(group) {
4674
+ removeGroup(group, skipActive = false) {
4708
4675
  const panels = [...group.model.panels]; // reassign since group panels will mutate
4709
- panels.forEach((panel) => {
4710
- this.removePanel(panel);
4711
- });
4712
- if (this._groups.size === 1) {
4713
- this._activeGroup = group;
4714
- return;
4676
+ for (const panel of panels) {
4677
+ this.removePanel(panel, {
4678
+ removeEmptyGroup: false,
4679
+ });
4715
4680
  }
4716
- super.removeGroup(group);
4681
+ super.doRemoveGroup(group, { skipActive });
4717
4682
  }
4718
4683
  moveGroupOrPanel(referenceGroup, groupId, itemId, target, index) {
4719
4684
  var _a;
@@ -4768,15 +4733,11 @@
4768
4733
  }
4769
4734
  }
4770
4735
  doSetGroupActive(group, skipFocus) {
4771
- var _a, _b, _c;
4736
+ var _a, _b;
4772
4737
  const isGroupAlreadyFocused = this._activeGroup === group;
4773
4738
  super.doSetGroupActive(group, skipFocus);
4774
4739
  if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.model.activePanel)) {
4775
- this._onGridEvent.fire({
4776
- kind: exports.GroupChangeKind.PANEL_ACTIVE,
4777
- panel: (_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel,
4778
- });
4779
- this._onDidActivePanelChange.fire((_c = this._activeGroup) === null || _c === void 0 ? void 0 : _c.model.activePanel);
4740
+ this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel);
4780
4741
  }
4781
4742
  }
4782
4743
  createGroup(options) {
@@ -4807,28 +4768,16 @@
4807
4768
  }), view.model.onDidGroupChange((event) => {
4808
4769
  switch (event.kind) {
4809
4770
  case exports.GroupChangeKind2.ADD_PANEL:
4810
- this._onGridEvent.fire({
4811
- kind: exports.GroupChangeKind.ADD_PANEL,
4812
- panel: event.panel,
4813
- });
4814
4771
  if (event.panel) {
4815
4772
  this._onDidAddPanel.fire(event.panel);
4816
4773
  }
4817
4774
  break;
4818
4775
  case exports.GroupChangeKind2.REMOVE_PANEL:
4819
- this._onGridEvent.fire({
4820
- kind: exports.GroupChangeKind.REMOVE_PANEL,
4821
- panel: event.panel,
4822
- });
4823
4776
  if (event.panel) {
4824
4777
  this._onDidRemovePanel.fire(event.panel);
4825
4778
  }
4826
4779
  break;
4827
4780
  case exports.GroupChangeKind2.PANEL_ACTIVE:
4828
- this._onGridEvent.fire({
4829
- kind: exports.GroupChangeKind.PANEL_ACTIVE,
4830
- panel: event.panel,
4831
- });
4832
4781
  this._onDidActivePanelChange.fire(event.panel);
4833
4782
  break;
4834
4783
  }
@@ -4999,7 +4948,6 @@
4999
4948
  this.doSetGroupActive(panel);
5000
4949
  }
5001
4950
  }
5002
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT_FROM_JSON });
5003
4951
  this._onDidLayoutfromJSON.fire();
5004
4952
  }
5005
4953
  movePanel(panel, options) {
@@ -5360,6 +5308,7 @@
5360
5308
  value.dispose();
5361
5309
  });
5362
5310
  this.panels.clear();
5311
+ this.splitview.dispose();
5363
5312
  super.dispose();
5364
5313
  }
5365
5314
  }
@@ -5949,6 +5898,10 @@
5949
5898
  queue.forEach((f) => f());
5950
5899
  }
5951
5900
  }
5901
+ dispose() {
5902
+ super.dispose();
5903
+ this.paneview.dispose();
5904
+ }
5952
5905
  }
5953
5906
 
5954
5907
  class SplitviewPanel extends BasePanelView {
@@ -6442,6 +6395,7 @@
6442
6395
  return () => {
6443
6396
  disposable.dispose();
6444
6397
  dockview.dispose();
6398
+ element.remove();
6445
6399
  };
6446
6400
  }, []);
6447
6401
  React__namespace.useEffect(() => {
@@ -6452,6 +6406,14 @@
6452
6406
  frameworkComponents: props.components,
6453
6407
  });
6454
6408
  }, [props.components]);
6409
+ React__namespace.useEffect(() => {
6410
+ if (!dockviewRef.current) {
6411
+ return;
6412
+ }
6413
+ dockviewRef.current.updateOptions({
6414
+ watermarkFrameworkComponent: props.watermarkComponent,
6415
+ });
6416
+ }, [props.watermarkComponent]);
6455
6417
  React__namespace.useEffect(() => {
6456
6418
  if (!dockviewRef.current) {
6457
6419
  return;
@@ -6587,7 +6549,9 @@
6587
6549
  });
6588
6550
  },
6589
6551
  },
6590
- proportionalLayout: props.proportionalLayout,
6552
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
6553
+ ? props.proportionalLayout
6554
+ : true,
6591
6555
  styles: props.hideBorders
6592
6556
  ? { separatorBorder: 'transparent' }
6593
6557
  : undefined,
@@ -6655,7 +6619,9 @@
6655
6619
  var _a;
6656
6620
  const element = document.createElement('div');
6657
6621
  const gridview = new GridviewComponent(element, {
6658
- proportionalLayout: !!props.proportionalLayout,
6622
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
6623
+ ? props.proportionalLayout
6624
+ : true,
6659
6625
  orientation: props.orientation,
6660
6626
  frameworkComponents: props.components,
6661
6627
  frameworkComponentFactory: {
@@ -6678,6 +6644,7 @@
6678
6644
  gridviewRef.current = gridview;
6679
6645
  return () => {
6680
6646
  gridview.dispose();
6647
+ element.remove();
6681
6648
  };
6682
6649
  }, []);
6683
6650
  React__namespace.useEffect(() => {
@@ -6814,13 +6781,11 @@
6814
6781
  PaneviewReact.displayName = 'PaneviewComponent';
6815
6782
 
6816
6783
  exports.BaseGrid = BaseGrid;
6817
- exports.CompositeDisposable = CompositeDisposable;
6818
6784
  exports.ContentContainer = ContentContainer;
6819
6785
  exports.DockviewApi = DockviewApi;
6820
6786
  exports.DockviewComponent = DockviewComponent;
6821
6787
  exports.DockviewComponents = DockviewComponents;
6822
6788
  exports.DockviewReact = DockviewReact;
6823
- exports.Emitter = Emitter;
6824
6789
  exports.Gridview = Gridview;
6825
6790
  exports.GridviewApi = GridviewApi;
6826
6791
  exports.GridviewComponent = GridviewComponent;
@@ -6828,7 +6793,6 @@
6828
6793
  exports.GridviewReact = GridviewReact;
6829
6794
  exports.Groupview = Groupview;
6830
6795
  exports.LocalSelectionTransfer = LocalSelectionTransfer;
6831
- exports.MutableDisposable = MutableDisposable;
6832
6796
  exports.PaneFramework = PaneFramework;
6833
6797
  exports.PaneTransfer = PaneTransfer;
6834
6798
  exports.PanelTransfer = PanelTransfer;
@@ -6847,9 +6811,6 @@
6847
6811
  exports.SplitviewPanel = SplitviewPanel;
6848
6812
  exports.SplitviewReact = SplitviewReact;
6849
6813
  exports.Tab = Tab$1;
6850
- exports.TickDelayedEvent = TickDelayedEvent;
6851
- exports.addDisposableListener = addDisposableListener;
6852
- exports.addDisposableWindowListener = addDisposableWindowListener;
6853
6814
  exports.getDirectionOrientation = getDirectionOrientation;
6854
6815
  exports.getGridLocation = getGridLocation;
6855
6816
  exports.getLocationOrientation = getLocationOrientation;