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.
- package/dist/cjs/api/component.api.d.ts +3 -2
- package/dist/cjs/api/component.api.js +9 -2
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/api/{groupPanelApi.d.ts → dockviewPanelApi.d.ts} +2 -2
- package/dist/cjs/api/{groupPanelApi.js → dockviewPanelApi.js} +4 -6
- package/dist/cjs/api/dockviewPanelApi.js.map +1 -0
- package/dist/cjs/api/gridviewPanelApi.d.ts +4 -3
- package/dist/cjs/api/gridviewPanelApi.js +4 -4
- package/dist/cjs/api/gridviewPanelApi.js.map +1 -1
- package/dist/cjs/api/panelApi.d.ts +7 -0
- package/dist/cjs/api/panelApi.js +17 -1
- package/dist/cjs/api/panelApi.js.map +1 -1
- package/dist/cjs/array.d.ts +1 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts +2 -2
- package/dist/cjs/dnd/abstractDragHandler.js +3 -3
- package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
- package/dist/cjs/dnd/dataTransfer.d.ts +2 -2
- package/dist/cjs/dnd/dataTransfer.js.map +1 -1
- package/dist/cjs/dnd/dnd.d.ts +1 -1
- package/dist/cjs/dnd/dnd.js +7 -12
- package/dist/cjs/dnd/dnd.js.map +1 -1
- package/dist/cjs/dnd/droptarget.d.ts +20 -15
- package/dist/cjs/dnd/droptarget.js +152 -74
- package/dist/cjs/dnd/droptarget.js.map +1 -1
- package/dist/cjs/dnd/ghost.d.ts +1 -0
- package/dist/cjs/dnd/ghost.js +15 -0
- package/dist/cjs/dnd/ghost.js.map +1 -0
- package/dist/cjs/dnd/groupDragHandler.d.ts +11 -0
- package/dist/cjs/dnd/groupDragHandler.js +62 -0
- package/dist/cjs/dnd/groupDragHandler.js.map +1 -0
- package/dist/cjs/dockview/defaultGroupPanelView.d.ts +1 -1
- package/dist/cjs/dockview/deserializer.d.ts +2 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +15 -7
- package/dist/cjs/dockview/dockviewComponent.js +215 -34
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/{esm/dockview/dockviewGroupPanel.d.ts → cjs/dockview/dockviewPanel.d.ts} +16 -5
- package/dist/cjs/dockview/{dockviewGroupPanel.js → dockviewPanel.js} +25 -21
- package/dist/cjs/dockview/dockviewPanel.js.map +1 -0
- package/dist/cjs/dockview/options.d.ts +32 -10
- package/dist/cjs/dockview/options.js +29 -0
- package/dist/cjs/dockview/options.js.map +1 -1
- package/dist/cjs/dockview/validation.d.ts +2 -0
- package/dist/cjs/dockview/validation.js +135 -0
- package/dist/cjs/dockview/validation.js.map +1 -0
- package/dist/cjs/gridview/baseComponentGridview.d.ts +1 -1
- package/dist/cjs/gridview/baseComponentGridview.js +5 -6
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/basePanelView.d.ts +2 -2
- package/dist/cjs/gridview/gridview.d.ts +9 -3
- package/dist/cjs/gridview/gridview.js +38 -7
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts +2 -2
- package/dist/cjs/gridview/gridviewComponent.js +2 -3
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts +3 -3
- package/dist/cjs/gridview/gridviewPanel.js +1 -2
- package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
- package/dist/cjs/gridview/types.d.ts +1 -1
- package/dist/cjs/groupview/dnd.d.ts +2 -1
- package/dist/cjs/groupview/dnd.js +1 -0
- package/dist/cjs/groupview/dnd.js.map +1 -1
- package/dist/cjs/groupview/groupview.d.ts +6 -6
- package/dist/cjs/groupview/groupview.js +43 -25
- package/dist/cjs/groupview/groupview.js.map +1 -1
- package/dist/cjs/groupview/groupviewPanel.d.ts +3 -3
- package/dist/cjs/groupview/panel/content.d.ts +1 -1
- package/dist/cjs/groupview/tab.d.ts +2 -12
- package/dist/cjs/groupview/tab.js +13 -9
- package/dist/cjs/groupview/tab.js.map +1 -1
- package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +5 -8
- package/dist/cjs/groupview/titlebar/tabsContainer.js +23 -30
- package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
- package/dist/cjs/groupview/titlebar/voidContainer.d.ts +15 -0
- package/dist/cjs/groupview/titlebar/voidContainer.js +74 -0
- package/dist/cjs/groupview/titlebar/voidContainer.js.map +1 -0
- package/dist/cjs/groupview/types.d.ts +18 -2
- package/dist/cjs/index.d.ts +3 -3
- package/dist/cjs/index.js +4 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/paneview/draggablePaneviewPanel.js +6 -5
- package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.js +2 -2
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/paneview/paneviewPanel.js +1 -0
- package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
- package/dist/cjs/react/deserializer.d.ts +2 -1
- package/dist/cjs/react/deserializer.js +2 -2
- package/dist/cjs/react/deserializer.js.map +1 -1
- package/dist/cjs/react/dockview/defaultTab.d.ts +1 -1
- package/dist/cjs/react/dockview/dockview.d.ts +5 -4
- package/dist/cjs/react/dockview/dockview.js +1 -0
- package/dist/cjs/react/dockview/dockview.js.map +1 -1
- package/dist/cjs/react/dockview/groupControlsRenderer.d.ts +1 -1
- package/dist/cjs/react/gridview/view.js +2 -1
- package/dist/cjs/react/gridview/view.js.map +1 -1
- package/dist/cjs/react/react.d.ts +1 -1
- package/dist/cjs/splitview/core/splitview.d.ts +4 -4
- package/dist/cjs/splitview/splitviewComponent.d.ts +1 -1
- package/dist/cjs/splitview/splitviewComponent.js +2 -2
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/cjs/splitview/splitviewPanel.js +1 -0
- package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
- package/dist/cjs/types.d.ts +2 -1
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/dockview.amd.js +1411 -987
- package/dist/dockview.amd.min.js +2 -2
- package/dist/dockview.amd.min.noStyle.js +2 -2
- package/dist/dockview.amd.noStyle.js +1410 -986
- package/dist/dockview.cjs.js +1394 -970
- package/dist/dockview.esm.js +1385 -964
- package/dist/dockview.esm.min.js +2 -2
- package/dist/dockview.js +1411 -987
- package/dist/dockview.min.js +2 -2
- package/dist/dockview.min.noStyle.js +2 -2
- package/dist/dockview.noStyle.js +1410 -986
- package/dist/esm/actionbar/actionsContainer.js +3 -3
- package/dist/esm/api/component.api.d.ts +3 -2
- package/dist/esm/api/component.api.js +16 -13
- package/dist/esm/api/{groupPanelApi.d.ts → dockviewPanelApi.d.ts} +2 -2
- package/dist/esm/api/{groupPanelApi.js → dockviewPanelApi.js} +16 -18
- package/dist/esm/api/gridviewPanelApi.d.ts +4 -3
- package/dist/esm/api/gridviewPanelApi.js +4 -4
- package/dist/esm/api/panelApi.d.ts +7 -0
- package/dist/esm/api/panelApi.js +33 -17
- package/dist/esm/api/paneviewPanelApi.js +3 -3
- package/dist/esm/array.d.ts +1 -1
- package/dist/esm/dnd/abstractDragHandler.d.ts +2 -2
- package/dist/esm/dnd/abstractDragHandler.js +3 -3
- package/dist/esm/dnd/dataTransfer.d.ts +2 -2
- package/dist/esm/dnd/dnd.d.ts +1 -1
- package/dist/esm/dnd/dnd.js +7 -12
- package/dist/esm/dnd/droptarget.d.ts +20 -15
- package/dist/esm/dnd/droptarget.js +149 -67
- package/dist/esm/dnd/ghost.d.ts +1 -0
- package/dist/esm/dnd/ghost.js +10 -0
- package/dist/esm/dnd/groupDragHandler.d.ts +11 -0
- package/dist/esm/dnd/groupDragHandler.js +38 -0
- package/dist/esm/dockview/components/tab/defaultTab.js +6 -6
- package/dist/esm/dockview/components/watermark/watermark.js +3 -3
- package/dist/esm/dockview/defaultGroupPanelView.d.ts +1 -1
- package/dist/esm/dockview/defaultGroupPanelView.js +5 -5
- package/dist/esm/dockview/deserializer.d.ts +2 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +15 -7
- package/dist/esm/dockview/dockviewComponent.js +229 -65
- package/dist/{cjs/dockview/dockviewGroupPanel.d.ts → esm/dockview/dockviewPanel.d.ts} +16 -5
- package/dist/esm/dockview/{dockviewGroupPanel.js → dockviewPanel.js} +19 -15
- package/dist/esm/dockview/options.d.ts +32 -10
- package/dist/esm/dockview/options.js +24 -1
- package/dist/esm/dockview/validation.d.ts +2 -0
- package/dist/esm/dockview/validation.js +86 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +1 -1
- package/dist/esm/gridview/baseComponentGridview.js +31 -32
- package/dist/esm/gridview/basePanelView.d.ts +2 -2
- package/dist/esm/gridview/basePanelView.js +13 -13
- package/dist/esm/gridview/branchNode.js +47 -47
- package/dist/esm/gridview/gridview.d.ts +9 -3
- package/dist/esm/gridview/gridview.js +41 -15
- package/dist/esm/gridview/gridviewComponent.d.ts +2 -2
- package/dist/esm/gridview/gridviewComponent.js +17 -18
- package/dist/esm/gridview/gridviewPanel.d.ts +3 -3
- package/dist/esm/gridview/gridviewPanel.js +45 -45
- package/dist/esm/gridview/leafNode.js +23 -23
- package/dist/esm/gridview/types.d.ts +1 -1
- package/dist/esm/groupview/dnd.d.ts +2 -1
- package/dist/esm/groupview/dnd.js +1 -0
- package/dist/esm/groupview/groupview.d.ts +6 -6
- package/dist/esm/groupview/groupview.js +90 -72
- package/dist/esm/groupview/groupviewPanel.d.ts +3 -3
- package/dist/esm/groupview/groupviewPanel.js +4 -4
- package/dist/esm/groupview/panel/content.d.ts +1 -1
- package/dist/esm/groupview/panel/content.js +3 -3
- package/dist/esm/groupview/tab.d.ts +2 -12
- package/dist/esm/groupview/tab.js +15 -11
- package/dist/esm/groupview/titlebar/tabsContainer.d.ts +5 -8
- package/dist/esm/groupview/titlebar/tabsContainer.js +54 -61
- package/dist/esm/groupview/titlebar/voidContainer.d.ts +15 -0
- package/dist/esm/groupview/titlebar/voidContainer.js +47 -0
- package/dist/esm/groupview/types.d.ts +18 -2
- package/dist/esm/hostedContainer.js +3 -3
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.js +2 -2
- package/dist/esm/lifecycle.js +3 -3
- package/dist/esm/paneview/defaultPaneviewHeader.js +3 -3
- package/dist/esm/paneview/draggablePaneviewPanel.js +7 -6
- package/dist/esm/paneview/paneview.js +21 -21
- package/dist/esm/paneview/paneviewComponent.js +30 -30
- package/dist/esm/paneview/paneviewPanel.js +45 -44
- package/dist/esm/react/deserializer.d.ts +2 -1
- package/dist/esm/react/deserializer.js +2 -2
- package/dist/esm/react/dockview/defaultTab.d.ts +1 -1
- package/dist/esm/react/dockview/dockview.d.ts +5 -4
- package/dist/esm/react/dockview/dockview.js +1 -0
- package/dist/esm/react/dockview/groupControlsRenderer.d.ts +1 -1
- package/dist/esm/react/dockview/groupControlsRenderer.js +8 -8
- package/dist/esm/react/dockview/reactContentPart.js +3 -3
- package/dist/esm/react/dockview/reactHeaderPart.js +3 -3
- package/dist/esm/react/dockview/reactWatermarkPart.js +3 -3
- package/dist/esm/react/dockview/v2/reactContentRenderer.js +9 -9
- package/dist/esm/react/dockview/v2/webviewContentRenderer.js +3 -3
- package/dist/esm/react/gridview/view.js +2 -1
- package/dist/esm/react/paneview/view.js +3 -3
- package/dist/esm/react/react.d.ts +1 -1
- package/dist/esm/splitview/core/splitview.d.ts +4 -4
- package/dist/esm/splitview/core/splitview.js +59 -59
- package/dist/esm/splitview/core/viewItem.js +15 -15
- package/dist/esm/splitview/splitviewComponent.d.ts +1 -1
- package/dist/esm/splitview/splitviewComponent.js +23 -23
- package/dist/esm/splitview/splitviewPanel.js +31 -30
- package/dist/esm/types.d.ts +2 -1
- package/dist/esm/types.js +3 -1
- package/dist/styles/dockview.css +23 -26
- package/package.json +12 -16
- package/dist/cjs/api/groupPanelApi.js.map +0 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +0 -1
- package/dist/cjs/groupview/groupPanel.d.ts +0 -32
- package/dist/cjs/groupview/groupPanel.js +0 -3
- package/dist/cjs/groupview/groupPanel.js.map +0 -1
- package/dist/esm/groupview/groupPanel.d.ts +0 -32
- 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/
|
|
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
|
|
14
|
-
export
|
|
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 '../../
|
|
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
|
-
|
|
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
|
|
41
|
+
export type DistributeSizing = {
|
|
42
42
|
type: 'distribute';
|
|
43
43
|
};
|
|
44
|
-
export
|
|
44
|
+
export type SplitSizing = {
|
|
45
45
|
type: 'split';
|
|
46
46
|
index: number;
|
|
47
47
|
};
|
|
48
|
-
export
|
|
48
|
+
export type InvisibleSizing = {
|
|
49
49
|
type: 'invisible';
|
|
50
50
|
cachedVisibleSize: number;
|
|
51
51
|
};
|
|
52
|
-
export
|
|
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
|
|
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
|
}
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -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
|
|
7
|
+
export type FunctionOrValue<T> = (() => T) | T;
|
|
8
|
+
export declare function isBooleanValue(value: any): value is boolean;
|
package/dist/esm/types.js
CHANGED