dockview 1.5.2 → 1.6.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 (220) hide show
  1. package/dist/cjs/api/component.api.d.ts +3 -2
  2. package/dist/cjs/api/component.api.js +9 -2
  3. package/dist/cjs/api/component.api.js.map +1 -1
  4. package/dist/cjs/api/{groupPanelApi.d.ts → dockviewPanelApi.d.ts} +2 -2
  5. package/dist/cjs/api/{groupPanelApi.js → dockviewPanelApi.js} +4 -6
  6. package/dist/cjs/api/dockviewPanelApi.js.map +1 -0
  7. package/dist/cjs/api/gridviewPanelApi.d.ts +4 -3
  8. package/dist/cjs/api/gridviewPanelApi.js +4 -4
  9. package/dist/cjs/api/gridviewPanelApi.js.map +1 -1
  10. package/dist/cjs/api/panelApi.d.ts +7 -0
  11. package/dist/cjs/api/panelApi.js +17 -1
  12. package/dist/cjs/api/panelApi.js.map +1 -1
  13. package/dist/cjs/array.d.ts +1 -1
  14. package/dist/cjs/dnd/abstractDragHandler.d.ts +2 -2
  15. package/dist/cjs/dnd/abstractDragHandler.js +3 -3
  16. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
  17. package/dist/cjs/dnd/dataTransfer.d.ts +2 -2
  18. package/dist/cjs/dnd/dataTransfer.js.map +1 -1
  19. package/dist/cjs/dnd/dnd.d.ts +1 -1
  20. package/dist/cjs/dnd/dnd.js +7 -12
  21. package/dist/cjs/dnd/dnd.js.map +1 -1
  22. package/dist/cjs/dnd/droptarget.d.ts +20 -15
  23. package/dist/cjs/dnd/droptarget.js +152 -74
  24. package/dist/cjs/dnd/droptarget.js.map +1 -1
  25. package/dist/cjs/dnd/ghost.d.ts +1 -0
  26. package/dist/cjs/dnd/ghost.js +15 -0
  27. package/dist/cjs/dnd/ghost.js.map +1 -0
  28. package/dist/cjs/dnd/groupDragHandler.d.ts +11 -0
  29. package/dist/cjs/dnd/groupDragHandler.js +62 -0
  30. package/dist/cjs/dnd/groupDragHandler.js.map +1 -0
  31. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +1 -1
  32. package/dist/cjs/dockview/deserializer.d.ts +2 -1
  33. package/dist/cjs/dockview/dockviewComponent.d.ts +15 -7
  34. package/dist/cjs/dockview/dockviewComponent.js +215 -34
  35. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  36. package/dist/{esm/dockview/dockviewGroupPanel.d.ts → cjs/dockview/dockviewPanel.d.ts} +16 -5
  37. package/dist/cjs/dockview/{dockviewGroupPanel.js → dockviewPanel.js} +25 -21
  38. package/dist/cjs/dockview/dockviewPanel.js.map +1 -0
  39. package/dist/cjs/dockview/options.d.ts +32 -10
  40. package/dist/cjs/dockview/options.js +29 -0
  41. package/dist/cjs/dockview/options.js.map +1 -1
  42. package/dist/cjs/dockview/validation.d.ts +2 -0
  43. package/dist/cjs/dockview/validation.js +135 -0
  44. package/dist/cjs/dockview/validation.js.map +1 -0
  45. package/dist/cjs/gridview/baseComponentGridview.d.ts +1 -1
  46. package/dist/cjs/gridview/baseComponentGridview.js +5 -6
  47. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  48. package/dist/cjs/gridview/basePanelView.d.ts +2 -2
  49. package/dist/cjs/gridview/gridview.d.ts +9 -3
  50. package/dist/cjs/gridview/gridview.js +38 -7
  51. package/dist/cjs/gridview/gridview.js.map +1 -1
  52. package/dist/cjs/gridview/gridviewComponent.d.ts +2 -2
  53. package/dist/cjs/gridview/gridviewComponent.js +2 -3
  54. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  55. package/dist/cjs/gridview/gridviewPanel.d.ts +3 -3
  56. package/dist/cjs/gridview/gridviewPanel.js +1 -2
  57. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  58. package/dist/cjs/gridview/types.d.ts +1 -1
  59. package/dist/cjs/groupview/dnd.d.ts +2 -1
  60. package/dist/cjs/groupview/dnd.js +1 -0
  61. package/dist/cjs/groupview/dnd.js.map +1 -1
  62. package/dist/cjs/groupview/groupview.d.ts +6 -6
  63. package/dist/cjs/groupview/groupview.js +43 -25
  64. package/dist/cjs/groupview/groupview.js.map +1 -1
  65. package/dist/cjs/groupview/groupviewPanel.d.ts +3 -3
  66. package/dist/cjs/groupview/panel/content.d.ts +1 -1
  67. package/dist/cjs/groupview/tab.d.ts +2 -12
  68. package/dist/cjs/groupview/tab.js +13 -9
  69. package/dist/cjs/groupview/tab.js.map +1 -1
  70. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +5 -8
  71. package/dist/cjs/groupview/titlebar/tabsContainer.js +23 -30
  72. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  73. package/dist/cjs/groupview/titlebar/voidContainer.d.ts +15 -0
  74. package/dist/cjs/groupview/titlebar/voidContainer.js +74 -0
  75. package/dist/cjs/groupview/titlebar/voidContainer.js.map +1 -0
  76. package/dist/cjs/groupview/types.d.ts +18 -2
  77. package/dist/cjs/index.d.ts +3 -3
  78. package/dist/cjs/index.js +4 -3
  79. package/dist/cjs/index.js.map +1 -1
  80. package/dist/cjs/paneview/draggablePaneviewPanel.js +6 -5
  81. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
  82. package/dist/cjs/paneview/paneviewComponent.js +2 -2
  83. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  84. package/dist/cjs/paneview/paneviewPanel.js +1 -0
  85. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  86. package/dist/cjs/react/deserializer.d.ts +2 -1
  87. package/dist/cjs/react/deserializer.js +2 -2
  88. package/dist/cjs/react/deserializer.js.map +1 -1
  89. package/dist/cjs/react/dockview/defaultTab.d.ts +1 -1
  90. package/dist/cjs/react/dockview/dockview.d.ts +5 -4
  91. package/dist/cjs/react/dockview/dockview.js +1 -0
  92. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  93. package/dist/cjs/react/dockview/groupControlsRenderer.d.ts +1 -1
  94. package/dist/cjs/react/gridview/view.js +2 -1
  95. package/dist/cjs/react/gridview/view.js.map +1 -1
  96. package/dist/cjs/react/react.d.ts +1 -1
  97. package/dist/cjs/splitview/core/splitview.d.ts +4 -4
  98. package/dist/cjs/splitview/splitviewComponent.d.ts +1 -1
  99. package/dist/cjs/splitview/splitviewComponent.js +2 -2
  100. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  101. package/dist/cjs/splitview/splitviewPanel.js +1 -0
  102. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  103. package/dist/cjs/types.d.ts +2 -1
  104. package/dist/cjs/types.js +5 -0
  105. package/dist/cjs/types.js.map +1 -1
  106. package/dist/dockview.amd.js +1411 -987
  107. package/dist/dockview.amd.min.js +2 -2
  108. package/dist/dockview.amd.min.noStyle.js +2 -2
  109. package/dist/dockview.amd.noStyle.js +1410 -986
  110. package/dist/dockview.cjs.js +1394 -970
  111. package/dist/dockview.esm.js +1385 -964
  112. package/dist/dockview.esm.min.js +2 -2
  113. package/dist/dockview.js +1411 -987
  114. package/dist/dockview.min.js +2 -2
  115. package/dist/dockview.min.noStyle.js +2 -2
  116. package/dist/dockview.noStyle.js +1410 -986
  117. package/dist/esm/actionbar/actionsContainer.js +3 -3
  118. package/dist/esm/api/component.api.d.ts +3 -2
  119. package/dist/esm/api/component.api.js +16 -13
  120. package/dist/esm/api/{groupPanelApi.d.ts → dockviewPanelApi.d.ts} +2 -2
  121. package/dist/esm/api/{groupPanelApi.js → dockviewPanelApi.js} +16 -18
  122. package/dist/esm/api/gridviewPanelApi.d.ts +4 -3
  123. package/dist/esm/api/gridviewPanelApi.js +4 -4
  124. package/dist/esm/api/panelApi.d.ts +7 -0
  125. package/dist/esm/api/panelApi.js +33 -17
  126. package/dist/esm/api/paneviewPanelApi.js +3 -3
  127. package/dist/esm/array.d.ts +1 -1
  128. package/dist/esm/dnd/abstractDragHandler.d.ts +2 -2
  129. package/dist/esm/dnd/abstractDragHandler.js +3 -3
  130. package/dist/esm/dnd/dataTransfer.d.ts +2 -2
  131. package/dist/esm/dnd/dnd.d.ts +1 -1
  132. package/dist/esm/dnd/dnd.js +7 -12
  133. package/dist/esm/dnd/droptarget.d.ts +20 -15
  134. package/dist/esm/dnd/droptarget.js +149 -67
  135. package/dist/esm/dnd/ghost.d.ts +1 -0
  136. package/dist/esm/dnd/ghost.js +10 -0
  137. package/dist/esm/dnd/groupDragHandler.d.ts +11 -0
  138. package/dist/esm/dnd/groupDragHandler.js +38 -0
  139. package/dist/esm/dockview/components/tab/defaultTab.js +6 -6
  140. package/dist/esm/dockview/components/watermark/watermark.js +3 -3
  141. package/dist/esm/dockview/defaultGroupPanelView.d.ts +1 -1
  142. package/dist/esm/dockview/defaultGroupPanelView.js +5 -5
  143. package/dist/esm/dockview/deserializer.d.ts +2 -1
  144. package/dist/esm/dockview/dockviewComponent.d.ts +15 -7
  145. package/dist/esm/dockview/dockviewComponent.js +229 -65
  146. package/dist/{cjs/dockview/dockviewGroupPanel.d.ts → esm/dockview/dockviewPanel.d.ts} +16 -5
  147. package/dist/esm/dockview/{dockviewGroupPanel.js → dockviewPanel.js} +19 -15
  148. package/dist/esm/dockview/options.d.ts +32 -10
  149. package/dist/esm/dockview/options.js +24 -1
  150. package/dist/esm/dockview/validation.d.ts +2 -0
  151. package/dist/esm/dockview/validation.js +86 -0
  152. package/dist/esm/gridview/baseComponentGridview.d.ts +1 -1
  153. package/dist/esm/gridview/baseComponentGridview.js +31 -32
  154. package/dist/esm/gridview/basePanelView.d.ts +2 -2
  155. package/dist/esm/gridview/basePanelView.js +13 -13
  156. package/dist/esm/gridview/branchNode.js +47 -47
  157. package/dist/esm/gridview/gridview.d.ts +9 -3
  158. package/dist/esm/gridview/gridview.js +41 -15
  159. package/dist/esm/gridview/gridviewComponent.d.ts +2 -2
  160. package/dist/esm/gridview/gridviewComponent.js +17 -18
  161. package/dist/esm/gridview/gridviewPanel.d.ts +3 -3
  162. package/dist/esm/gridview/gridviewPanel.js +45 -45
  163. package/dist/esm/gridview/leafNode.js +23 -23
  164. package/dist/esm/gridview/types.d.ts +1 -1
  165. package/dist/esm/groupview/dnd.d.ts +2 -1
  166. package/dist/esm/groupview/dnd.js +1 -0
  167. package/dist/esm/groupview/groupview.d.ts +6 -6
  168. package/dist/esm/groupview/groupview.js +90 -72
  169. package/dist/esm/groupview/groupviewPanel.d.ts +3 -3
  170. package/dist/esm/groupview/groupviewPanel.js +4 -4
  171. package/dist/esm/groupview/panel/content.d.ts +1 -1
  172. package/dist/esm/groupview/panel/content.js +3 -3
  173. package/dist/esm/groupview/tab.d.ts +2 -12
  174. package/dist/esm/groupview/tab.js +15 -11
  175. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +5 -8
  176. package/dist/esm/groupview/titlebar/tabsContainer.js +54 -61
  177. package/dist/esm/groupview/titlebar/voidContainer.d.ts +15 -0
  178. package/dist/esm/groupview/titlebar/voidContainer.js +47 -0
  179. package/dist/esm/groupview/types.d.ts +18 -2
  180. package/dist/esm/hostedContainer.js +3 -3
  181. package/dist/esm/index.d.ts +3 -3
  182. package/dist/esm/index.js +2 -2
  183. package/dist/esm/lifecycle.js +3 -3
  184. package/dist/esm/paneview/defaultPaneviewHeader.js +3 -3
  185. package/dist/esm/paneview/draggablePaneviewPanel.js +7 -6
  186. package/dist/esm/paneview/paneview.js +21 -21
  187. package/dist/esm/paneview/paneviewComponent.js +30 -30
  188. package/dist/esm/paneview/paneviewPanel.js +45 -44
  189. package/dist/esm/react/deserializer.d.ts +2 -1
  190. package/dist/esm/react/deserializer.js +2 -2
  191. package/dist/esm/react/dockview/defaultTab.d.ts +1 -1
  192. package/dist/esm/react/dockview/dockview.d.ts +5 -4
  193. package/dist/esm/react/dockview/dockview.js +1 -0
  194. package/dist/esm/react/dockview/groupControlsRenderer.d.ts +1 -1
  195. package/dist/esm/react/dockview/groupControlsRenderer.js +8 -8
  196. package/dist/esm/react/dockview/reactContentPart.js +3 -3
  197. package/dist/esm/react/dockview/reactHeaderPart.js +3 -3
  198. package/dist/esm/react/dockview/reactWatermarkPart.js +3 -3
  199. package/dist/esm/react/dockview/v2/reactContentRenderer.js +9 -9
  200. package/dist/esm/react/dockview/v2/webviewContentRenderer.js +3 -3
  201. package/dist/esm/react/gridview/view.js +2 -1
  202. package/dist/esm/react/paneview/view.js +3 -3
  203. package/dist/esm/react/react.d.ts +1 -1
  204. package/dist/esm/splitview/core/splitview.d.ts +4 -4
  205. package/dist/esm/splitview/core/splitview.js +59 -59
  206. package/dist/esm/splitview/core/viewItem.js +15 -15
  207. package/dist/esm/splitview/splitviewComponent.d.ts +1 -1
  208. package/dist/esm/splitview/splitviewComponent.js +23 -23
  209. package/dist/esm/splitview/splitviewPanel.js +31 -30
  210. package/dist/esm/types.d.ts +2 -1
  211. package/dist/esm/types.js +3 -1
  212. package/dist/styles/dockview.css +23 -26
  213. package/package.json +12 -16
  214. package/dist/cjs/api/groupPanelApi.js.map +0 -1
  215. package/dist/cjs/dockview/dockviewGroupPanel.js.map +0 -1
  216. package/dist/cjs/groupview/groupPanel.d.ts +0 -32
  217. package/dist/cjs/groupview/groupPanel.js +0 -3
  218. package/dist/cjs/groupview/groupPanel.js.map +0 -1
  219. package/dist/esm/groupview/groupPanel.d.ts +0 -32
  220. package/dist/esm/groupview/groupPanel.js +0 -1
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { DockviewDropEvent } from '../../dockview/dockviewComponent';
3
3
  import { DockviewDndOverlayEvent } from '../../dockview/options';
4
- import { DockviewPanelApi } from '../../api/groupPanelApi';
4
+ import { DockviewPanelApi } from '../../api/dockviewPanelApi';
5
5
  import { DockviewApi } from '../../api/component.api';
6
6
  import { IWatermarkPanelProps } from './reactWatermarkPart';
7
7
  import { PanelCollection, PanelParameters } from '../types';
@@ -10,18 +10,18 @@ export interface IGroupPanelBaseProps<T extends {} = Record<string, any>> extend
10
10
  api: DockviewPanelApi;
11
11
  containerApi: DockviewApi;
12
12
  }
13
- export declare type IDockviewPanelHeaderProps<T extends {} = Record<string, any>> = IGroupPanelBaseProps<T>;
14
- export declare type IDockviewPanelProps<T extends {
13
+ export type IDockviewPanelHeaderProps<T extends {} = Record<string, any>> = IGroupPanelBaseProps<T>;
14
+ export type IDockviewPanelProps<T extends {
15
15
  [index: string]: any;
16
16
  } = any> = IGroupPanelBaseProps<T>;
17
17
  export interface DockviewReadyEvent {
18
18
  api: DockviewApi;
19
19
  }
20
20
  export interface IDockviewReactProps {
21
+ onReady: (event: DockviewReadyEvent) => void;
21
22
  components: PanelCollection<IDockviewPanelProps>;
22
23
  tabComponents?: PanelCollection<IDockviewPanelHeaderProps>;
23
24
  watermarkComponent?: React.FunctionComponent<IWatermarkPanelProps>;
24
- onReady: (event: DockviewReadyEvent) => void;
25
25
  tabHeight?: number;
26
26
  onDidDrop?: (event: DockviewDropEvent) => void;
27
27
  showDndOverlay?: (event: DockviewDndOverlayEvent) => boolean;
@@ -30,5 +30,6 @@ export interface IDockviewReactProps {
30
30
  disableAutoResizing?: boolean;
31
31
  defaultTabComponent?: React.FunctionComponent<IDockviewPanelHeaderProps>;
32
32
  groupControlComponent?: React.FunctionComponent<IDockviewGroupControlProps>;
33
+ singleTabMode?: 'fullwidth' | 'default';
33
34
  }
34
35
  export declare const DockviewReact: React.ForwardRefExoticComponent<IDockviewReactProps & React.RefAttributes<HTMLDivElement>>;
@@ -74,6 +74,7 @@ export const DockviewReact = React.forwardRef((props, ref) => {
74
74
  : undefined,
75
75
  showDndOverlay: props.showDndOverlay,
76
76
  createGroupControlElement: createGroupControlElement(props.groupControlComponent, { addPortal }),
77
+ singleTabMode: props.singleTabMode,
77
78
  });
78
79
  (_a = domRef.current) === null || _a === void 0 ? void 0 : _a.appendChild(dockview.element);
79
80
  dockview.deserializer = new ReactPanelDeserialzier(dockview);
@@ -4,7 +4,7 @@ import { PanelUpdateEvent } from '../../panel/types';
4
4
  import { GroupPanel, GroupviewPanelApi } from '../../groupview/groupviewPanel';
5
5
  import { DockviewApi } from '../../api/component.api';
6
6
  import { IDisposable } from '../../lifecycle';
7
- import { IDockviewPanel } from '../../groupview/groupPanel';
7
+ import { IDockviewPanel } from '../../dockview/dockviewPanel';
8
8
  export interface IDockviewGroupControlProps {
9
9
  api: GroupviewPanelApi;
10
10
  containerApi: DockviewApi;
@@ -1,14 +1,6 @@
1
1
  import { ReactPart } from '../react';
2
2
  import { CompositeDisposable, MutableDisposable, } from '../../lifecycle';
3
3
  export class ReactGroupControlsRendererPart {
4
- constructor(component, reactPortalStore, _group) {
5
- this.component = component;
6
- this.reactPortalStore = reactPortalStore;
7
- this._group = _group;
8
- this.mutableDisposable = new MutableDisposable();
9
- this._element = document.createElement('div');
10
- this._element.className = 'dockview-react-part';
11
- }
12
4
  get element() {
13
5
  return this._element;
14
6
  }
@@ -18,6 +10,14 @@ export class ReactGroupControlsRendererPart {
18
10
  get group() {
19
11
  return this._group;
20
12
  }
13
+ constructor(component, reactPortalStore, _group) {
14
+ this.component = component;
15
+ this.reactPortalStore = reactPortalStore;
16
+ this._group = _group;
17
+ this.mutableDisposable = new MutableDisposable();
18
+ this._element = document.createElement('div');
19
+ this._element.className = 'dockview-react-part';
20
+ }
21
21
  focus() {
22
22
  // TODO
23
23
  }
@@ -1,6 +1,9 @@
1
1
  import { ReactPart } from '../react';
2
2
  import { Emitter } from '../../events';
3
3
  export class ReactPanelContentPart {
4
+ get element() {
5
+ return this._element;
6
+ }
4
7
  constructor(id, component, reactPortalStore) {
5
8
  this.id = id;
6
9
  this.component = component;
@@ -12,9 +15,6 @@ export class ReactPanelContentPart {
12
15
  this._element = document.createElement('div');
13
16
  this._element.className = 'dockview-react-part';
14
17
  }
15
- get element() {
16
- return this._element;
17
- }
18
18
  focus() {
19
19
  // TODO
20
20
  }
@@ -1,6 +1,9 @@
1
1
  import { ReactPart } from '../react';
2
2
  import { DEFAULT_TAB_IDENTIFIER } from '../../dockview/components/tab/defaultTab';
3
3
  export class ReactPanelHeaderPart {
4
+ get element() {
5
+ return this._element;
6
+ }
4
7
  constructor(id, component, reactPortalStore) {
5
8
  this.id = id;
6
9
  this.component = component;
@@ -8,9 +11,6 @@ export class ReactPanelHeaderPart {
8
11
  this._element = document.createElement('div');
9
12
  this._element.className = 'dockview-react-part';
10
13
  }
11
- get element() {
12
- return this._element;
13
- }
14
14
  focus() {
15
15
  //noop
16
16
  }
@@ -1,5 +1,8 @@
1
1
  import { ReactPart } from '../react';
2
2
  export class ReactWatermarkPart {
3
+ get element() {
4
+ return this._element;
5
+ }
3
6
  constructor(id, component, reactPortalStore) {
4
7
  this.id = id;
5
8
  this.component = component;
@@ -10,9 +13,6 @@ export class ReactWatermarkPart {
10
13
  this._element = document.createElement('div');
11
14
  this._element.className = 'dockview-react-part';
12
15
  }
13
- get element() {
14
- return this._element;
15
- }
16
16
  init(parameters) {
17
17
  this.parameters = parameters;
18
18
  this.part = new ReactPart(this.element, this.reactPortalStore, this.component, {
@@ -1,6 +1,15 @@
1
1
  import { HostedContainer } from '../../../hostedContainer';
2
2
  import { ReactPart } from '../../react';
3
3
  export class ReactContentRenderer {
4
+ get element() {
5
+ return this._element;
6
+ }
7
+ get onDidBlur() {
8
+ return this._hostedContainer.onDidBlur;
9
+ }
10
+ get onDidFocus() {
11
+ return this._hostedContainer.onDidFocus;
12
+ }
4
13
  constructor(id, component, reactPortalStore) {
5
14
  this.id = id;
6
15
  this.component = component;
@@ -15,15 +24,6 @@ export class ReactContentRenderer {
15
24
  this._element.style.height = '100%';
16
25
  this._element.style.width = '100%';
17
26
  }
18
- get element() {
19
- return this._element;
20
- }
21
- get onDidBlur() {
22
- return this._hostedContainer.onDidBlur;
23
- }
24
- get onDidFocus() {
25
- return this._hostedContainer.onDidFocus;
26
- }
27
27
  focus() {
28
28
  // noop
29
29
  }
@@ -1,5 +1,8 @@
1
1
  import { HostedContainer } from '../../../hostedContainer';
2
2
  export class WebviewContentRenderer {
3
+ get element() {
4
+ return this._element;
5
+ }
3
6
  constructor(id) {
4
7
  this.id = id;
5
8
  this._hostedContainer = new HostedContainer({ id });
@@ -7,9 +10,6 @@ export class WebviewContentRenderer {
7
10
  this._element.style.height = '100%';
8
11
  this._element.style.width = '100%';
9
12
  }
10
- get element() {
11
- return this._element;
12
- }
13
13
  focus() {
14
14
  // noop
15
15
  }
@@ -1,9 +1,10 @@
1
1
  import { GridviewApi } from '../../api/component.api';
2
+ import { GridviewPanelApiImpl } from '../../api/gridviewPanelApi';
2
3
  import { GridviewPanel, } from '../../gridview/gridviewPanel';
3
4
  import { ReactPart } from '../react';
4
5
  export class ReactGridPanelView extends GridviewPanel {
5
6
  constructor(id, component, reactComponent, reactPortalStore) {
6
- super(id, component);
7
+ super(id, component, new GridviewPanelApiImpl(id));
7
8
  this.reactComponent = reactComponent;
8
9
  this.reactPortalStore = reactPortalStore;
9
10
  }
@@ -1,5 +1,8 @@
1
1
  import { ReactPart } from '../react';
2
2
  export class PanePanelSection {
3
+ get element() {
4
+ return this._element;
5
+ }
3
6
  constructor(id, component, reactPortalStore) {
4
7
  this.id = id;
5
8
  this.component = component;
@@ -8,9 +11,6 @@ export class PanePanelSection {
8
11
  this._element.style.height = '100%';
9
12
  this._element.style.width = '100%';
10
13
  }
11
- get element() {
12
- return this._element;
13
- }
14
14
  init(parameters) {
15
15
  this.part = new ReactPart(this.element, this.reactPortalStore, this.component, {
16
16
  params: parameters.params,
@@ -22,7 +22,7 @@ export declare class ReactPart<P extends object, C extends object = {}> implemen
22
22
  private createPortal;
23
23
  dispose(): void;
24
24
  }
25
- declare type PortalLifecycleHook = () => [
25
+ type PortalLifecycleHook = () => [
26
26
  React.ReactPortal[],
27
27
  (portal: React.ReactPortal) => IDisposable
28
28
  ];
@@ -38,18 +38,18 @@ export interface IView extends IBaseView {
38
38
  layout(size: number, orthogonalSize: number): void;
39
39
  setVisible(visible: boolean): void;
40
40
  }
41
- export declare type DistributeSizing = {
41
+ export type DistributeSizing = {
42
42
  type: 'distribute';
43
43
  };
44
- export declare type SplitSizing = {
44
+ export type SplitSizing = {
45
45
  type: 'split';
46
46
  index: number;
47
47
  };
48
- export declare type InvisibleSizing = {
48
+ export type InvisibleSizing = {
49
49
  type: 'invisible';
50
50
  cachedVisibleSize: number;
51
51
  };
52
- export declare type Sizing = DistributeSizing | SplitSizing | InvisibleSizing;
52
+ export type Sizing = DistributeSizing | SplitSizing | InvisibleSizing;
53
53
  export declare namespace Sizing {
54
54
  const Distribute: DistributeSizing;
55
55
  function Split(index: number): SplitSizing;
@@ -38,6 +38,65 @@ export var Sizing;
38
38
  Sizing.Invisible = Invisible;
39
39
  })(Sizing || (Sizing = {}));
40
40
  export class Splitview {
41
+ get size() {
42
+ return this._size;
43
+ }
44
+ set size(value) {
45
+ this._size = value;
46
+ }
47
+ get orthogonalSize() {
48
+ return this._orthogonalSize;
49
+ }
50
+ set orthogonalSize(value) {
51
+ this._orthogonalSize = value;
52
+ }
53
+ get length() {
54
+ return this.views.length;
55
+ }
56
+ get proportions() {
57
+ return this._proportions ? [...this._proportions] : undefined;
58
+ }
59
+ get orientation() {
60
+ return this._orientation;
61
+ }
62
+ set orientation(value) {
63
+ this._orientation = value;
64
+ const tmp = this.size;
65
+ this.size = this.orthogonalSize;
66
+ this.orthogonalSize = tmp;
67
+ removeClasses(this.element, 'horizontal', 'vertical');
68
+ this.element.classList.add(this.orientation == Orientation.HORIZONTAL
69
+ ? 'horizontal'
70
+ : 'vertical');
71
+ }
72
+ get minimumSize() {
73
+ return this.views.reduce((r, item) => r + item.minimumSize, 0);
74
+ }
75
+ get maximumSize() {
76
+ return this.length === 0
77
+ ? Number.POSITIVE_INFINITY
78
+ : this.views.reduce((r, item) => r + item.maximumSize, 0);
79
+ }
80
+ get startSnappingEnabled() {
81
+ return this._startSnappingEnabled;
82
+ }
83
+ set startSnappingEnabled(startSnappingEnabled) {
84
+ if (this._startSnappingEnabled === startSnappingEnabled) {
85
+ return;
86
+ }
87
+ this._startSnappingEnabled = startSnappingEnabled;
88
+ this.updateSashEnablement();
89
+ }
90
+ get endSnappingEnabled() {
91
+ return this._endSnappingEnabled;
92
+ }
93
+ set endSnappingEnabled(endSnappingEnabled) {
94
+ if (this._endSnappingEnabled === endSnappingEnabled) {
95
+ return;
96
+ }
97
+ this._endSnappingEnabled = endSnappingEnabled;
98
+ this.updateSashEnablement();
99
+ }
41
100
  constructor(container, options) {
42
101
  this.container = container;
43
102
  this.views = [];
@@ -167,65 +226,6 @@ export class Splitview {
167
226
  this.saveProportions();
168
227
  }
169
228
  }
170
- get size() {
171
- return this._size;
172
- }
173
- set size(value) {
174
- this._size = value;
175
- }
176
- get orthogonalSize() {
177
- return this._orthogonalSize;
178
- }
179
- set orthogonalSize(value) {
180
- this._orthogonalSize = value;
181
- }
182
- get length() {
183
- return this.views.length;
184
- }
185
- get proportions() {
186
- return this._proportions ? [...this._proportions] : undefined;
187
- }
188
- get orientation() {
189
- return this._orientation;
190
- }
191
- set orientation(value) {
192
- this._orientation = value;
193
- const tmp = this.size;
194
- this.size = this.orthogonalSize;
195
- this.orthogonalSize = tmp;
196
- removeClasses(this.element, 'horizontal', 'vertical');
197
- this.element.classList.add(this.orientation == Orientation.HORIZONTAL
198
- ? 'horizontal'
199
- : 'vertical');
200
- }
201
- get minimumSize() {
202
- return this.views.reduce((r, item) => r + item.minimumSize, 0);
203
- }
204
- get maximumSize() {
205
- return this.length === 0
206
- ? Number.POSITIVE_INFINITY
207
- : this.views.reduce((r, item) => r + item.maximumSize, 0);
208
- }
209
- get startSnappingEnabled() {
210
- return this._startSnappingEnabled;
211
- }
212
- set startSnappingEnabled(startSnappingEnabled) {
213
- if (this._startSnappingEnabled === startSnappingEnabled) {
214
- return;
215
- }
216
- this._startSnappingEnabled = startSnappingEnabled;
217
- this.updateSashEnablement();
218
- }
219
- get endSnappingEnabled() {
220
- return this._endSnappingEnabled;
221
- }
222
- set endSnappingEnabled(endSnappingEnabled) {
223
- if (this._endSnappingEnabled === endSnappingEnabled) {
224
- return;
225
- }
226
- this._endSnappingEnabled = endSnappingEnabled;
227
- this.updateSashEnablement();
228
- }
229
229
  style(styles) {
230
230
  if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {
231
231
  removeClasses(this.element, 'separator-border');
@@ -1,20 +1,5 @@
1
1
  import { clamp } from '../../math';
2
2
  export class ViewItem {
3
- constructor(container, view, size, disposable) {
4
- this.container = container;
5
- this.view = view;
6
- this.disposable = disposable;
7
- this._cachedVisibleSize = undefined;
8
- if (typeof size === 'number') {
9
- this._size = size;
10
- this._cachedVisibleSize = undefined;
11
- container.classList.add('visible');
12
- }
13
- else {
14
- this._size = 0;
15
- this._cachedVisibleSize = size.cachedVisibleSize;
16
- }
17
- }
18
3
  set size(size) {
19
4
  this._size = size;
20
5
  }
@@ -67,6 +52,21 @@ export class ViewItem {
67
52
  set enabled(enabled) {
68
53
  this.container.style.pointerEvents = enabled ? '' : 'none';
69
54
  }
55
+ constructor(container, view, size, disposable) {
56
+ this.container = container;
57
+ this.view = view;
58
+ this.disposable = disposable;
59
+ this._cachedVisibleSize = undefined;
60
+ if (typeof size === 'number') {
61
+ this._size = size;
62
+ this._cachedVisibleSize = undefined;
63
+ container.classList.add('visible');
64
+ }
65
+ else {
66
+ this._size = 0;
67
+ this._cachedVisibleSize = size.cachedVisibleSize;
68
+ }
69
+ }
70
70
  // layout(offset: number, layoutContext: TLayoutContext | undefined): void {
71
71
  // this.layoutContainer(offset);
72
72
  // this.view.layout(this.size, offset, layoutContext);
@@ -30,7 +30,7 @@ export interface AddSplitviewComponentOptions extends BaseComponentOptions {
30
30
  minimumSize?: number;
31
31
  maximumSize?: number;
32
32
  }
33
- export declare type SplitviewComponentUpdateOptions = Pick<SplitviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents'>;
33
+ export type SplitviewComponentUpdateOptions = Pick<SplitviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents'>;
34
34
  export interface ISplitviewComponent extends IDisposable {
35
35
  readonly minimumSize: number;
36
36
  readonly maximumSize: number;
@@ -6,29 +6,6 @@ import { createComponent } from '../panel/componentFactory';
6
6
  * A high-level implementation of splitview that works using 'panels'
7
7
  */
8
8
  export class SplitviewComponent extends CompositeDisposable {
9
- constructor(element, options) {
10
- super();
11
- this.element = element;
12
- this._disposable = new MutableDisposable();
13
- this._panels = new Map();
14
- this._onDidLayoutfromJSON = new Emitter();
15
- this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
16
- this._onDidAddView = new Emitter();
17
- this.onDidAddView = this._onDidAddView.event;
18
- this._onDidRemoveView = new Emitter();
19
- this.onDidRemoveView = this._onDidRemoveView.event;
20
- this._onDidLayoutChange = new Emitter();
21
- this.onDidLayoutChange = this._onDidLayoutChange.event;
22
- this._options = options;
23
- if (!options.components) {
24
- options.components = {};
25
- }
26
- if (!options.frameworkComponents) {
27
- options.frameworkComponents = {};
28
- }
29
- this.splitview = new Splitview(this.element, options);
30
- this.addDisposables(this._disposable, this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
31
- }
32
9
  get panels() {
33
10
  return this.splitview.getViews();
34
11
  }
@@ -66,6 +43,29 @@ export class SplitviewComponent extends CompositeDisposable {
66
43
  ? this.splitview.size
67
44
  : this.splitview.orthogonalSize;
68
45
  }
46
+ constructor(element, options) {
47
+ super();
48
+ this.element = element;
49
+ this._disposable = new MutableDisposable();
50
+ this._panels = new Map();
51
+ this._onDidLayoutfromJSON = new Emitter();
52
+ this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;
53
+ this._onDidAddView = new Emitter();
54
+ this.onDidAddView = this._onDidAddView.event;
55
+ this._onDidRemoveView = new Emitter();
56
+ this.onDidRemoveView = this._onDidRemoveView.event;
57
+ this._onDidLayoutChange = new Emitter();
58
+ this.onDidLayoutChange = this._onDidLayoutChange.event;
59
+ this._options = options;
60
+ if (!options.components) {
61
+ options.components = {};
62
+ }
63
+ if (!options.frameworkComponents) {
64
+ options.frameworkComponents = {};
65
+ }
66
+ this.splitview = new Splitview(this.element, options);
67
+ this.addDisposables(this._disposable, this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
68
+ }
69
69
  updateOptions(options) {
70
70
  const hasOrientationChanged = typeof options.orientation === 'string' &&
71
71
  this.options.orientation !== options.orientation;
@@ -3,36 +3,6 @@ import { SplitviewPanelApiImpl } from '../api/splitviewPanelApi';
3
3
  import { Orientation } from './core/splitview';
4
4
  import { Emitter } from '../events';
5
5
  export class SplitviewPanel extends BasePanelView {
6
- constructor(id, componentName) {
7
- super(id, componentName, new SplitviewPanelApiImpl(id));
8
- this._evaluatedMinimumSize = 0;
9
- this._evaluatedMaximumSize = Number.POSITIVE_INFINITY;
10
- this._minimumSize = 0;
11
- this._maximumSize = Number.POSITIVE_INFINITY;
12
- this._snap = false;
13
- this._onDidChange = new Emitter();
14
- this.onDidChange = this._onDidChange.event;
15
- this.addDisposables(this._onDidChange, this.api.onVisibilityChange((event) => {
16
- const { isVisible } = event;
17
- const { accessor } = this._params;
18
- accessor.setVisible(this, isVisible);
19
- }), this.api.onActiveChange(() => {
20
- const { accessor } = this._params;
21
- accessor.setActive(this);
22
- }), this.api.onDidConstraintsChangeInternal((event) => {
23
- if (typeof event.minimumSize === 'number' ||
24
- typeof event.minimumSize === 'function') {
25
- this._minimumSize = event.minimumSize;
26
- }
27
- if (typeof event.maximumSize === 'number' ||
28
- typeof event.maximumSize === 'function') {
29
- this._maximumSize = event.maximumSize;
30
- }
31
- this.updateConstraints();
32
- }), this.api.onDidSizeChange((event) => {
33
- this._onDidChange.fire({ size: event.size });
34
- }));
35
- }
36
6
  get priority() {
37
7
  return this._priority;
38
8
  }
@@ -65,6 +35,37 @@ export class SplitviewPanel extends BasePanelView {
65
35
  get snap() {
66
36
  return this._snap;
67
37
  }
38
+ constructor(id, componentName) {
39
+ super(id, componentName, new SplitviewPanelApiImpl(id));
40
+ this._evaluatedMinimumSize = 0;
41
+ this._evaluatedMaximumSize = Number.POSITIVE_INFINITY;
42
+ this._minimumSize = 0;
43
+ this._maximumSize = Number.POSITIVE_INFINITY;
44
+ this._snap = false;
45
+ this._onDidChange = new Emitter();
46
+ this.onDidChange = this._onDidChange.event;
47
+ this.api.initialize(this);
48
+ this.addDisposables(this._onDidChange, this.api.onVisibilityChange((event) => {
49
+ const { isVisible } = event;
50
+ const { accessor } = this._params;
51
+ accessor.setVisible(this, isVisible);
52
+ }), this.api.onActiveChange(() => {
53
+ const { accessor } = this._params;
54
+ accessor.setActive(this);
55
+ }), this.api.onDidConstraintsChangeInternal((event) => {
56
+ if (typeof event.minimumSize === 'number' ||
57
+ typeof event.minimumSize === 'function') {
58
+ this._minimumSize = event.minimumSize;
59
+ }
60
+ if (typeof event.maximumSize === 'number' ||
61
+ typeof event.maximumSize === 'function') {
62
+ this._maximumSize = event.maximumSize;
63
+ }
64
+ this.updateConstraints();
65
+ }), this.api.onDidSizeChange((event) => {
66
+ this._onDidChange.fire({ size: event.size });
67
+ }));
68
+ }
68
69
  setVisible(isVisible) {
69
70
  this.api._onDidVisibilityChange.fire({ isVisible });
70
71
  }
@@ -4,4 +4,5 @@ export interface Constructor<T> {
4
4
  export interface FrameworkFactory<T> {
5
5
  createComponent: (id: string, componentId: string, component: any) => T;
6
6
  }
7
- export declare type FunctionOrValue<T> = (() => T) | T;
7
+ export type FunctionOrValue<T> = (() => T) | T;
8
+ export declare function isBooleanValue(value: any): value is boolean;
package/dist/esm/types.js CHANGED
@@ -1 +1,3 @@
1
- export {};
1
+ export function isBooleanValue(value) {
2
+ return typeof value === 'boolean';
3
+ }