dockview-core 1.12.0 → 1.13.1
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 +2 -1
- package/dist/cjs/api/component.api.js +7 -0
- package/dist/cjs/api/dockviewGroupPanelApi.d.ts +5 -1
- package/dist/cjs/api/dockviewGroupPanelApi.js +19 -1
- package/dist/cjs/dnd/droptarget.d.ts +1 -1
- package/dist/cjs/dnd/droptarget.js +4 -10
- package/dist/cjs/dockview/components/panel/content.js +0 -8
- package/dist/cjs/dockview/dockviewComponent.d.ts +6 -4
- package/dist/cjs/dockview/dockviewComponent.js +73 -68
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +3 -0
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +18 -19
- package/dist/cjs/dockview/dockviewPanelModel.js +21 -24
- package/dist/cjs/dockview/framework.d.ts +38 -0
- package/dist/cjs/dockview/framework.js +2 -0
- package/dist/cjs/dockview/options.d.ts +68 -46
- package/dist/cjs/dockview/options.js +43 -1
- package/dist/cjs/dockview/types.d.ts +4 -10
- package/dist/cjs/events.d.ts +13 -2
- package/dist/cjs/events.js +44 -12
- package/dist/cjs/framwork.d.ts +4 -0
- package/dist/cjs/framwork.js +2 -0
- package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -4
- package/dist/cjs/gridview/baseComponentGridview.js +3 -7
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +1 -1
- package/dist/dockview-core.amd.js +2121 -2040
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +2121 -2040
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +2121 -2040
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +2120 -2041
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +2121 -2040
- package/dist/dockview-core.js.map +1 -1
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +2121 -2040
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +2 -1
- package/dist/esm/api/component.api.js +3 -0
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +5 -1
- package/dist/esm/api/dockviewGroupPanelApi.js +18 -1
- package/dist/esm/dnd/droptarget.d.ts +1 -1
- package/dist/esm/dnd/droptarget.js +4 -10
- package/dist/esm/dockview/components/panel/content.js +0 -8
- package/dist/esm/dockview/dockviewComponent.d.ts +6 -4
- package/dist/esm/dockview/dockviewComponent.js +72 -69
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +3 -0
- package/dist/esm/dockview/dockviewGroupPanelModel.js +18 -19
- package/dist/esm/dockview/dockviewPanelModel.js +21 -13
- package/dist/esm/dockview/framework.d.ts +38 -0
- package/dist/esm/dockview/framework.js +1 -0
- package/dist/esm/dockview/options.d.ts +68 -46
- package/dist/esm/dockview/options.js +36 -0
- package/dist/esm/dockview/types.d.ts +4 -10
- package/dist/esm/events.d.ts +13 -2
- package/dist/esm/events.js +37 -6
- package/dist/esm/framwork.d.ts +4 -0
- package/dist/esm/framwork.js +1 -0
- package/dist/esm/gridview/baseComponentGridview.d.ts +3 -4
- package/dist/esm/gridview/baseComponentGridview.js +4 -8
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +1 -1
- package/package.json +2 -2
|
@@ -1,19 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
3
|
exports.DockviewPanelModel = void 0;
|
|
15
4
|
var defaultTab_1 = require("./components/tab/defaultTab");
|
|
16
|
-
var componentFactory_1 = require("../panel/componentFactory");
|
|
17
5
|
var DockviewPanelModel = /** @class */ (function () {
|
|
18
6
|
function DockviewPanelModel(accessor, id, contentComponent, tabComponent) {
|
|
19
7
|
this.accessor = accessor;
|
|
@@ -38,7 +26,7 @@ var DockviewPanelModel = /** @class */ (function () {
|
|
|
38
26
|
configurable: true
|
|
39
27
|
});
|
|
40
28
|
DockviewPanelModel.prototype.init = function (params) {
|
|
41
|
-
this.content.init(
|
|
29
|
+
this.content.init(params);
|
|
42
30
|
this.tab.init(params);
|
|
43
31
|
};
|
|
44
32
|
DockviewPanelModel.prototype.updateParentGroup = function (_group, _isPanelVisible) {
|
|
@@ -59,20 +47,29 @@ var DockviewPanelModel = /** @class */ (function () {
|
|
|
59
47
|
(_d = (_c = this.tab).dispose) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
60
48
|
};
|
|
61
49
|
DockviewPanelModel.prototype.createContentComponent = function (id, componentName) {
|
|
62
|
-
|
|
63
|
-
|
|
50
|
+
return this.accessor.options.createComponent({
|
|
51
|
+
id: id,
|
|
52
|
+
name: componentName,
|
|
53
|
+
});
|
|
64
54
|
};
|
|
65
55
|
DockviewPanelModel.prototype.createTabComponent = function (id, componentName) {
|
|
66
|
-
var
|
|
67
|
-
if (
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
56
|
+
var name = componentName !== null && componentName !== void 0 ? componentName : this.accessor.options.defaultTabComponent;
|
|
57
|
+
if (name) {
|
|
58
|
+
if (this.accessor.options.createTabComponent) {
|
|
59
|
+
var component = this.accessor.options.createTabComponent({
|
|
60
|
+
id: id,
|
|
61
|
+
name: name,
|
|
62
|
+
});
|
|
63
|
+
if (component) {
|
|
64
|
+
return component;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
return new defaultTab_1.DefaultTab();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
console.warn("dockview: tabComponent '".concat(componentName, "' was not found. falling back to the default tab."));
|
|
75
71
|
}
|
|
72
|
+
return new defaultTab_1.DefaultTab();
|
|
76
73
|
};
|
|
77
74
|
return DockviewPanelModel;
|
|
78
75
|
}());
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { DockviewApi } from '../api/component.api';
|
|
2
|
+
import { DockviewGroupPanelApi } from '../api/dockviewGroupPanelApi';
|
|
3
|
+
import { DockviewPanelApi } from '../api/dockviewPanelApi';
|
|
4
|
+
import { PanelParameters } from '../framwork';
|
|
5
|
+
import { DockviewGroupPanel, IDockviewGroupPanel } from './dockviewGroupPanel';
|
|
6
|
+
import { IDockviewPanel } from './dockviewPanel';
|
|
7
|
+
export interface IGroupPanelBaseProps<T extends {
|
|
8
|
+
[index: string]: any;
|
|
9
|
+
} = any> extends PanelParameters<T> {
|
|
10
|
+
api: DockviewPanelApi;
|
|
11
|
+
containerApi: DockviewApi;
|
|
12
|
+
}
|
|
13
|
+
export type IDockviewPanelHeaderProps<T extends {
|
|
14
|
+
[index: string]: any;
|
|
15
|
+
} = any> = IGroupPanelBaseProps<T>;
|
|
16
|
+
export type IDockviewPanelProps<T extends {
|
|
17
|
+
[index: string]: any;
|
|
18
|
+
} = any> = IGroupPanelBaseProps<T>;
|
|
19
|
+
export interface IDockviewHeaderActionsProps {
|
|
20
|
+
api: DockviewGroupPanelApi;
|
|
21
|
+
containerApi: DockviewApi;
|
|
22
|
+
panels: IDockviewPanel[];
|
|
23
|
+
activePanel: IDockviewPanel | undefined;
|
|
24
|
+
isGroupActive: boolean;
|
|
25
|
+
group: DockviewGroupPanel;
|
|
26
|
+
}
|
|
27
|
+
export interface IGroupHeaderProps {
|
|
28
|
+
api: DockviewGroupPanelApi;
|
|
29
|
+
containerApi: DockviewApi;
|
|
30
|
+
group: IDockviewGroupPanel;
|
|
31
|
+
}
|
|
32
|
+
export interface IWatermarkPanelProps {
|
|
33
|
+
containerApi: DockviewApi;
|
|
34
|
+
group?: IDockviewGroupPanel;
|
|
35
|
+
}
|
|
36
|
+
export interface DockviewReadyEvent {
|
|
37
|
+
api: DockviewApi;
|
|
38
|
+
}
|
|
@@ -1,74 +1,33 @@
|
|
|
1
1
|
import { DockviewApi } from '../api/component.api';
|
|
2
2
|
import { Direction } from '../gridview/baseComponentGridview';
|
|
3
3
|
import { IGridView } from '../gridview/gridview';
|
|
4
|
-
import { IContentRenderer, ITabRenderer,
|
|
4
|
+
import { IContentRenderer, ITabRenderer, IWatermarkRenderer } from './types';
|
|
5
5
|
import { Parameters } from '../panel/types';
|
|
6
6
|
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
|
7
|
-
import { ISplitviewStyles, Orientation } from '../splitview/splitview';
|
|
8
7
|
import { PanelTransfer } from '../dnd/dataTransfer';
|
|
9
8
|
import { IDisposable } from '../lifecycle';
|
|
10
9
|
import { DroptargetOverlayModel, Position } from '../dnd/droptarget';
|
|
11
10
|
import { DockviewGroupDropLocation, GroupOptions } from './dockviewGroupPanelModel';
|
|
12
11
|
import { IDockviewPanel } from './dockviewPanel';
|
|
13
|
-
import { ComponentConstructor, FrameworkFactory } from '../panel/componentFactory';
|
|
14
|
-
import { DockviewGroupPanelApi } from '../api/dockviewGroupPanelApi';
|
|
15
12
|
import { DockviewPanelRenderer } from '../overlayRenderContainer';
|
|
13
|
+
import { IGroupHeaderProps } from './framework';
|
|
16
14
|
export interface IHeaderActionsRenderer extends IDisposable {
|
|
17
15
|
readonly element: HTMLElement;
|
|
18
|
-
init(params:
|
|
19
|
-
containerApi: DockviewApi;
|
|
20
|
-
api: DockviewGroupPanelApi;
|
|
21
|
-
}): void;
|
|
22
|
-
}
|
|
23
|
-
export interface GroupPanelFrameworkComponentFactory {
|
|
24
|
-
content: FrameworkFactory<IContentRenderer>;
|
|
25
|
-
tab: FrameworkFactory<ITabRenderer>;
|
|
26
|
-
watermark: FrameworkFactory<IWatermarkRenderer>;
|
|
16
|
+
init(params: IGroupHeaderProps): void;
|
|
27
17
|
}
|
|
28
18
|
export interface TabContextMenuEvent {
|
|
29
19
|
event: MouseEvent;
|
|
30
20
|
api: DockviewApi;
|
|
31
21
|
panel: IDockviewPanel;
|
|
32
22
|
}
|
|
33
|
-
export interface DockviewRenderFunctions {
|
|
34
|
-
tabComponents?: {
|
|
35
|
-
[componentName: string]: ComponentConstructor<ITabRenderer>;
|
|
36
|
-
};
|
|
37
|
-
components?: {
|
|
38
|
-
[componentName: string]: ComponentConstructor<IContentRenderer>;
|
|
39
|
-
};
|
|
40
|
-
frameworkTabComponents?: {
|
|
41
|
-
[componentName: string]: any;
|
|
42
|
-
};
|
|
43
|
-
frameworkComponents?: {
|
|
44
|
-
[componentName: string]: any;
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
23
|
export interface ViewFactoryData {
|
|
48
24
|
content: string;
|
|
49
25
|
tab?: string;
|
|
50
26
|
}
|
|
51
|
-
export interface
|
|
52
|
-
nativeEvent: DragEvent;
|
|
53
|
-
target: DockviewGroupDropLocation;
|
|
54
|
-
position: Position;
|
|
55
|
-
group?: DockviewGroupPanel;
|
|
56
|
-
getData: () => PanelTransfer | undefined;
|
|
57
|
-
}
|
|
58
|
-
export interface DockviewComponentOptions extends DockviewRenderFunctions {
|
|
27
|
+
export interface DockviewOptions {
|
|
59
28
|
disableAutoResizing?: boolean;
|
|
60
|
-
|
|
61
|
-
watermarkFrameworkComponent?: any;
|
|
62
|
-
frameworkComponentFactory?: GroupPanelFrameworkComponentFactory;
|
|
63
|
-
orientation?: Orientation;
|
|
64
|
-
styles?: ISplitviewStyles;
|
|
65
|
-
defaultTabComponent?: string;
|
|
66
|
-
showDndOverlay?: (event: DockviewDndOverlayEvent) => boolean;
|
|
67
|
-
createRightHeaderActionsElement?: (group: DockviewGroupPanel) => IHeaderActionsRenderer;
|
|
68
|
-
createLeftHeaderActionsElement?: (group: DockviewGroupPanel) => IHeaderActionsRenderer;
|
|
69
|
-
createPrefixHeaderActionsElement?: (group: DockviewGroupPanel) => IHeaderActionsRenderer;
|
|
29
|
+
hideBorders?: boolean;
|
|
70
30
|
singleTabMode?: 'fullwidth' | 'default';
|
|
71
|
-
parentElement: HTMLElement;
|
|
72
31
|
disableFloatingGroups?: boolean;
|
|
73
32
|
floatingGroupBounds?: 'boundedWithinViewport' | {
|
|
74
33
|
minimumHeightWithinViewport?: number;
|
|
@@ -81,6 +40,44 @@ export interface DockviewComponentOptions extends DockviewRenderFunctions {
|
|
|
81
40
|
locked?: boolean;
|
|
82
41
|
disableDnd?: boolean;
|
|
83
42
|
}
|
|
43
|
+
export interface DockviewDndOverlayEvent {
|
|
44
|
+
nativeEvent: DragEvent;
|
|
45
|
+
target: DockviewGroupDropLocation;
|
|
46
|
+
position: Position;
|
|
47
|
+
group?: DockviewGroupPanel;
|
|
48
|
+
getData: () => PanelTransfer | undefined;
|
|
49
|
+
isAccepted: boolean;
|
|
50
|
+
accept(): void;
|
|
51
|
+
}
|
|
52
|
+
export declare class DockviewUnhandledDragOverEvent implements DockviewDndOverlayEvent {
|
|
53
|
+
readonly nativeEvent: DragEvent;
|
|
54
|
+
readonly target: DockviewGroupDropLocation;
|
|
55
|
+
readonly position: Position;
|
|
56
|
+
readonly getData: () => PanelTransfer | undefined;
|
|
57
|
+
readonly group?: DockviewGroupPanel | undefined;
|
|
58
|
+
private _isAccepted;
|
|
59
|
+
get isAccepted(): boolean;
|
|
60
|
+
constructor(nativeEvent: DragEvent, target: DockviewGroupDropLocation, position: Position, getData: () => PanelTransfer | undefined, group?: DockviewGroupPanel | undefined);
|
|
61
|
+
accept(): void;
|
|
62
|
+
}
|
|
63
|
+
export declare const PROPERTY_KEYS: (keyof DockviewOptions)[];
|
|
64
|
+
export interface DockviewFrameworkOptions {
|
|
65
|
+
parentElement: HTMLElement;
|
|
66
|
+
defaultTabComponent?: string;
|
|
67
|
+
createRightHeaderActionComponent?: (group: DockviewGroupPanel) => IHeaderActionsRenderer;
|
|
68
|
+
createLeftHeaderActionComponent?: (group: DockviewGroupPanel) => IHeaderActionsRenderer;
|
|
69
|
+
createPrefixHeaderActionComponent?: (group: DockviewGroupPanel) => IHeaderActionsRenderer;
|
|
70
|
+
createTabComponent?: (options: {
|
|
71
|
+
id: string;
|
|
72
|
+
name: string;
|
|
73
|
+
}) => ITabRenderer | undefined;
|
|
74
|
+
createComponent: (options: {
|
|
75
|
+
id: string;
|
|
76
|
+
name: string;
|
|
77
|
+
}) => IContentRenderer;
|
|
78
|
+
createWatermarkComponent?: () => IWatermarkRenderer;
|
|
79
|
+
}
|
|
80
|
+
export type DockviewComponentOptions = DockviewOptions & DockviewFrameworkOptions;
|
|
84
81
|
export interface PanelOptions<P extends object = Parameters> {
|
|
85
82
|
component: string;
|
|
86
83
|
tabComponent?: string;
|
|
@@ -118,11 +115,36 @@ type AddPanelPositionUnion = {
|
|
|
118
115
|
type AddPanelOptionsUnion = AddPanelFloatingGroupUnion | AddPanelPositionUnion;
|
|
119
116
|
export type AddPanelOptions<P extends object = Parameters> = {
|
|
120
117
|
params?: P;
|
|
118
|
+
/**
|
|
119
|
+
* The unique id for the panel
|
|
120
|
+
*/
|
|
121
121
|
id: string;
|
|
122
|
+
/**
|
|
123
|
+
* The title for the panel which can be accessed within both the tab and component.
|
|
124
|
+
*
|
|
125
|
+
* If using the default tab renderer this title will be displayed in the tab.
|
|
126
|
+
*/
|
|
122
127
|
title?: string;
|
|
128
|
+
/**
|
|
129
|
+
* The id of the component renderer
|
|
130
|
+
*/
|
|
123
131
|
component: string;
|
|
132
|
+
/**
|
|
133
|
+
* The id of the tab componnet renderer
|
|
134
|
+
*/
|
|
124
135
|
tabComponent?: string;
|
|
136
|
+
/**
|
|
137
|
+
* The rendering mode of the panel.
|
|
138
|
+
*
|
|
139
|
+
* This dictates what happens to the HTML of the panel when it is hidden.
|
|
140
|
+
*/
|
|
125
141
|
renderer?: DockviewPanelRenderer;
|
|
142
|
+
/**
|
|
143
|
+
* If true then add the panel without setting it as the active panel.
|
|
144
|
+
*
|
|
145
|
+
* Defaults to `false` which forces newly added panels to become active.
|
|
146
|
+
*/
|
|
147
|
+
inactive?: boolean;
|
|
126
148
|
} & Partial<AddPanelOptionsUnion>;
|
|
127
149
|
type AddGroupOptionsWithPanel = {
|
|
128
150
|
referencePanel: string | IDockviewPanel;
|
|
@@ -1,6 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isGroupOptionsWithGroup = exports.isGroupOptionsWithPanel = exports.isPanelOptionsWithGroup = exports.isPanelOptionsWithPanel = void 0;
|
|
3
|
+
exports.isGroupOptionsWithGroup = exports.isGroupOptionsWithPanel = exports.isPanelOptionsWithGroup = exports.isPanelOptionsWithPanel = exports.PROPERTY_KEYS = exports.DockviewUnhandledDragOverEvent = void 0;
|
|
4
|
+
var DockviewUnhandledDragOverEvent = /** @class */ (function () {
|
|
5
|
+
function DockviewUnhandledDragOverEvent(nativeEvent, target, position, getData, group) {
|
|
6
|
+
this.nativeEvent = nativeEvent;
|
|
7
|
+
this.target = target;
|
|
8
|
+
this.position = position;
|
|
9
|
+
this.getData = getData;
|
|
10
|
+
this.group = group;
|
|
11
|
+
this._isAccepted = false;
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(DockviewUnhandledDragOverEvent.prototype, "isAccepted", {
|
|
14
|
+
get: function () {
|
|
15
|
+
return this._isAccepted;
|
|
16
|
+
},
|
|
17
|
+
enumerable: false,
|
|
18
|
+
configurable: true
|
|
19
|
+
});
|
|
20
|
+
DockviewUnhandledDragOverEvent.prototype.accept = function () {
|
|
21
|
+
this._isAccepted = true;
|
|
22
|
+
};
|
|
23
|
+
return DockviewUnhandledDragOverEvent;
|
|
24
|
+
}());
|
|
25
|
+
exports.DockviewUnhandledDragOverEvent = DockviewUnhandledDragOverEvent;
|
|
26
|
+
exports.PROPERTY_KEYS = (function () {
|
|
27
|
+
/**
|
|
28
|
+
* by readong the keys from an empty value object TypeScript will error
|
|
29
|
+
* when we add or remove new properties to `DockviewOptions`
|
|
30
|
+
*/
|
|
31
|
+
var properties = {
|
|
32
|
+
disableAutoResizing: undefined,
|
|
33
|
+
hideBorders: undefined,
|
|
34
|
+
singleTabMode: undefined,
|
|
35
|
+
disableFloatingGroups: undefined,
|
|
36
|
+
floatingGroupBounds: undefined,
|
|
37
|
+
popoutUrl: undefined,
|
|
38
|
+
defaultRenderer: undefined,
|
|
39
|
+
debug: undefined,
|
|
40
|
+
rootOverlayModel: undefined,
|
|
41
|
+
locked: undefined,
|
|
42
|
+
disableDnd: undefined,
|
|
43
|
+
};
|
|
44
|
+
return Object.keys(properties);
|
|
45
|
+
})();
|
|
4
46
|
function isPanelOptionsWithPanel(data) {
|
|
5
47
|
if (data.referencePanel) {
|
|
6
48
|
return true;
|
|
@@ -2,7 +2,6 @@ import { IDockviewComponent } from './dockviewComponent';
|
|
|
2
2
|
import { DockviewPanelApi } from '../api/dockviewPanelApi';
|
|
3
3
|
import { PanelInitParameters, IPanel } from '../panel/types';
|
|
4
4
|
import { DockviewApi } from '../api/component.api';
|
|
5
|
-
import { Event } from '../events';
|
|
6
5
|
import { Optional } from '../types';
|
|
7
6
|
import { DockviewGroupPanel, IDockviewGroupPanel } from './dockviewGroupPanel';
|
|
8
7
|
import { DockviewPanelRenderer } from '../overlayRenderContainer';
|
|
@@ -13,27 +12,22 @@ export interface GroupPanelPartInitParameters extends PanelInitParameters, Heade
|
|
|
13
12
|
api: DockviewPanelApi;
|
|
14
13
|
containerApi: DockviewApi;
|
|
15
14
|
}
|
|
16
|
-
export interface GroupPanelContentPartInitParameters extends GroupPanelPartInitParameters {
|
|
17
|
-
tab: ITabRenderer;
|
|
18
|
-
}
|
|
19
15
|
export interface WatermarkRendererInitParameters {
|
|
20
16
|
containerApi: DockviewApi;
|
|
21
17
|
group?: IDockviewGroupPanel;
|
|
22
18
|
}
|
|
23
|
-
export interface IWatermarkRenderer extends Optional<Omit<IPanel, 'id' | 'init'>, 'dispose' | 'update' | 'layout' | 'toJSON'> {
|
|
19
|
+
export interface IWatermarkRenderer extends Optional<Omit<IPanel, 'id' | 'init'>, 'dispose' | 'update' | 'layout' | 'toJSON' | 'focus'> {
|
|
24
20
|
readonly element: HTMLElement;
|
|
25
21
|
init: (params: WatermarkRendererInitParameters) => void;
|
|
26
22
|
updateParentGroup(group: DockviewGroupPanel, visible: boolean): void;
|
|
27
23
|
}
|
|
28
|
-
export interface ITabRenderer extends Optional<Omit<IPanel, 'id'>, 'dispose' | 'update' | 'layout' | 'toJSON'> {
|
|
24
|
+
export interface ITabRenderer extends Optional<Omit<IPanel, 'id'>, 'dispose' | 'update' | 'layout' | 'toJSON' | 'focus'> {
|
|
29
25
|
readonly element: HTMLElement;
|
|
30
26
|
init(parameters: GroupPanelPartInitParameters): void;
|
|
31
27
|
}
|
|
32
|
-
export interface IContentRenderer extends Optional<Omit<IPanel, 'id'>, 'dispose' | 'update' | 'layout' | 'toJSON'> {
|
|
28
|
+
export interface IContentRenderer extends Optional<Omit<IPanel, 'id'>, 'dispose' | 'update' | 'layout' | 'toJSON' | 'focus'> {
|
|
33
29
|
readonly element: HTMLElement;
|
|
34
|
-
|
|
35
|
-
readonly onDidBlur?: Event<void>;
|
|
36
|
-
init(parameters: GroupPanelContentPartInitParameters): void;
|
|
30
|
+
init(parameters: GroupPanelPartInitParameters): void;
|
|
37
31
|
}
|
|
38
32
|
export interface WatermarkPartInitParameters {
|
|
39
33
|
accessor: IDockviewComponent;
|
package/dist/cjs/events.d.ts
CHANGED
|
@@ -47,9 +47,20 @@ export declare class Emitter<T> implements IDisposable {
|
|
|
47
47
|
}
|
|
48
48
|
export declare function addDisposableWindowListener<K extends keyof WindowEventMap>(element: Window, type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): IDisposable;
|
|
49
49
|
export declare function addDisposableListener<K extends keyof HTMLElementEventMap>(element: HTMLElement, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): IDisposable;
|
|
50
|
-
|
|
51
|
-
|
|
50
|
+
/**
|
|
51
|
+
*
|
|
52
|
+
* Event Emitter that fires events from a Microtask callback, only one event will fire per event-loop cycle.
|
|
53
|
+
*
|
|
54
|
+
* It's kind of like using an `asapScheduler` in RxJs with additional logic to only fire once per event-loop cycle.
|
|
55
|
+
* This implementation exists to avoid external dependencies.
|
|
56
|
+
*
|
|
57
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask
|
|
58
|
+
* @see https://rxjs.dev/api/index/const/asapScheduler
|
|
59
|
+
*/
|
|
60
|
+
export declare class AsapEvent implements IDisposable {
|
|
52
61
|
private readonly _onFired;
|
|
62
|
+
private _currentFireCount;
|
|
63
|
+
private _queued;
|
|
53
64
|
readonly onEvent: Event<void>;
|
|
54
65
|
fire(): void;
|
|
55
66
|
dispose(): void;
|
package/dist/cjs/events.js
CHANGED
|
@@ -11,7 +11,7 @@ var __values = (this && this.__values) || function(o) {
|
|
|
11
11
|
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
12
12
|
};
|
|
13
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
-
exports.
|
|
14
|
+
exports.AsapEvent = exports.addDisposableListener = exports.addDisposableWindowListener = exports.Emitter = exports.DockviewEvent = exports.Event = void 0;
|
|
15
15
|
var Event;
|
|
16
16
|
(function (Event) {
|
|
17
17
|
Event.any = function () {
|
|
@@ -217,24 +217,56 @@ function addDisposableListener(element, type, listener, options) {
|
|
|
217
217
|
};
|
|
218
218
|
}
|
|
219
219
|
exports.addDisposableListener = addDisposableListener;
|
|
220
|
-
|
|
221
|
-
|
|
220
|
+
/**
|
|
221
|
+
*
|
|
222
|
+
* Event Emitter that fires events from a Microtask callback, only one event will fire per event-loop cycle.
|
|
223
|
+
*
|
|
224
|
+
* It's kind of like using an `asapScheduler` in RxJs with additional logic to only fire once per event-loop cycle.
|
|
225
|
+
* This implementation exists to avoid external dependencies.
|
|
226
|
+
*
|
|
227
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask
|
|
228
|
+
* @see https://rxjs.dev/api/index/const/asapScheduler
|
|
229
|
+
*/
|
|
230
|
+
var AsapEvent = /** @class */ (function () {
|
|
231
|
+
function AsapEvent() {
|
|
232
|
+
var _this = this;
|
|
222
233
|
this._onFired = new Emitter();
|
|
223
|
-
this.
|
|
234
|
+
this._currentFireCount = 0;
|
|
235
|
+
this._queued = false;
|
|
236
|
+
this.onEvent = function (e) {
|
|
237
|
+
/**
|
|
238
|
+
* when the event is first subscribed to take note of the current fire count
|
|
239
|
+
*/
|
|
240
|
+
var fireCountAtTimeOfEventSubscription = _this._currentFireCount;
|
|
241
|
+
return _this._onFired.event(function () {
|
|
242
|
+
/**
|
|
243
|
+
* if the current fire count is greater than the fire count at event subscription
|
|
244
|
+
* then the event has been fired since we subscribed and it's ok to "on_next" the event.
|
|
245
|
+
*
|
|
246
|
+
* if the count is not greater then what we are recieving is an event from the microtask
|
|
247
|
+
* queue that was triggered before we actually subscribed and therfore we should ignore it.
|
|
248
|
+
*/
|
|
249
|
+
if (_this._currentFireCount > fireCountAtTimeOfEventSubscription) {
|
|
250
|
+
e();
|
|
251
|
+
}
|
|
252
|
+
});
|
|
253
|
+
};
|
|
224
254
|
}
|
|
225
|
-
|
|
255
|
+
AsapEvent.prototype.fire = function () {
|
|
226
256
|
var _this = this;
|
|
227
|
-
|
|
228
|
-
|
|
257
|
+
this._currentFireCount++;
|
|
258
|
+
if (this._queued) {
|
|
259
|
+
return;
|
|
229
260
|
}
|
|
230
|
-
this.
|
|
261
|
+
this._queued = true;
|
|
262
|
+
queueMicrotask(function () {
|
|
263
|
+
_this._queued = false;
|
|
231
264
|
_this._onFired.fire();
|
|
232
|
-
clearTimeout(_this.timer);
|
|
233
265
|
});
|
|
234
266
|
};
|
|
235
|
-
|
|
267
|
+
AsapEvent.prototype.dispose = function () {
|
|
236
268
|
this._onFired.dispose();
|
|
237
269
|
};
|
|
238
|
-
return
|
|
270
|
+
return AsapEvent;
|
|
239
271
|
}());
|
|
240
|
-
exports.
|
|
272
|
+
exports.AsapEvent = AsapEvent;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Event,
|
|
1
|
+
import { Event, AsapEvent } from '../events';
|
|
2
2
|
import { Gridview, IGridView } from './gridview';
|
|
3
3
|
import { Position } from '../dnd/droptarget';
|
|
4
4
|
import { IValueDisposable } from '../lifecycle';
|
|
@@ -51,15 +51,14 @@ export declare abstract class BaseGrid<T extends IGridPanelView> extends Resizab
|
|
|
51
51
|
protected readonly _groups: Map<string, IValueDisposable<T>>;
|
|
52
52
|
protected readonly gridview: Gridview;
|
|
53
53
|
protected _activeGroup: T | undefined;
|
|
54
|
-
private _onDidLayoutChange;
|
|
55
|
-
readonly onDidLayoutChange: Event<void>;
|
|
56
54
|
private readonly _onDidRemove;
|
|
57
55
|
readonly onDidRemove: Event<T>;
|
|
58
56
|
private readonly _onDidAdd;
|
|
59
57
|
readonly onDidAdd: Event<T>;
|
|
60
58
|
private readonly _onDidActiveChange;
|
|
61
59
|
readonly onDidActiveChange: Event<T | undefined>;
|
|
62
|
-
protected readonly _bufferOnDidLayoutChange:
|
|
60
|
+
protected readonly _bufferOnDidLayoutChange: AsapEvent;
|
|
61
|
+
readonly onDidLayoutChange: Event<void>;
|
|
63
62
|
get id(): string;
|
|
64
63
|
get size(): number;
|
|
65
64
|
get groups(): T[];
|
|
@@ -56,15 +56,14 @@ var BaseGrid = /** @class */ (function (_super) {
|
|
|
56
56
|
var _this = _super.call(this, document.createElement('div'), options.disableAutoResizing) || this;
|
|
57
57
|
_this._id = nextLayoutId.next();
|
|
58
58
|
_this._groups = new Map();
|
|
59
|
-
_this._onDidLayoutChange = new events_1.Emitter();
|
|
60
|
-
_this.onDidLayoutChange = _this._onDidLayoutChange.event;
|
|
61
59
|
_this._onDidRemove = new events_1.Emitter();
|
|
62
60
|
_this.onDidRemove = _this._onDidRemove.event;
|
|
63
61
|
_this._onDidAdd = new events_1.Emitter();
|
|
64
62
|
_this.onDidAdd = _this._onDidAdd.event;
|
|
65
63
|
_this._onDidActiveChange = new events_1.Emitter();
|
|
66
64
|
_this.onDidActiveChange = _this._onDidActiveChange.event;
|
|
67
|
-
_this._bufferOnDidLayoutChange = new events_1.
|
|
65
|
+
_this._bufferOnDidLayoutChange = new events_1.AsapEvent();
|
|
66
|
+
_this.onDidLayoutChange = _this._bufferOnDidLayoutChange.onEvent;
|
|
68
67
|
_this.element.style.height = '100%';
|
|
69
68
|
_this.element.style.width = '100%';
|
|
70
69
|
options.parentElement.appendChild(_this.element);
|
|
@@ -79,8 +78,6 @@ var BaseGrid = /** @class */ (function (_super) {
|
|
|
79
78
|
_this._bufferOnDidLayoutChange.fire();
|
|
80
79
|
}), events_1.Event.any(_this.onDidAdd, _this.onDidRemove, _this.onDidActiveChange)(function () {
|
|
81
80
|
_this._bufferOnDidLayoutChange.fire();
|
|
82
|
-
}), _this._bufferOnDidLayoutChange.onEvent(function () {
|
|
83
|
-
_this._onDidLayoutChange.fire();
|
|
84
81
|
}), _this._bufferOnDidLayoutChange);
|
|
85
82
|
return _this;
|
|
86
83
|
}
|
|
@@ -166,7 +163,7 @@ var BaseGrid = /** @class */ (function (_super) {
|
|
|
166
163
|
});
|
|
167
164
|
BaseGrid.prototype.setVisible = function (panel, visible) {
|
|
168
165
|
this.gridview.setViewVisible((0, gridview_1.getGridLocation)(panel.element), visible);
|
|
169
|
-
this.
|
|
166
|
+
this._bufferOnDidLayoutChange.fire();
|
|
170
167
|
};
|
|
171
168
|
BaseGrid.prototype.isVisible = function (panel) {
|
|
172
169
|
return this.gridview.isViewVisible((0, gridview_1.getGridLocation)(panel.element));
|
|
@@ -278,7 +275,6 @@ var BaseGrid = /** @class */ (function (_super) {
|
|
|
278
275
|
this._onDidActiveChange.dispose();
|
|
279
276
|
this._onDidAdd.dispose();
|
|
280
277
|
this._onDidRemove.dispose();
|
|
281
|
-
this._onDidLayoutChange.dispose();
|
|
282
278
|
try {
|
|
283
279
|
for (var _b = __values(this.groups), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
284
280
|
var group = _c.value;
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -12,14 +12,15 @@ export { SplitviewComponentOptions, PanelViewInitParameters, } from './splitview
|
|
|
12
12
|
export * from './paneview/paneview';
|
|
13
13
|
export * from './gridview/gridview';
|
|
14
14
|
export { GridviewComponentOptions } from './gridview/options';
|
|
15
|
-
export * from './dockview/dockviewGroupPanelModel';
|
|
16
15
|
export * from './gridview/baseComponentGridview';
|
|
17
16
|
export * from './paneview/draggablePaneviewPanel';
|
|
18
17
|
export * from './dockview/components/panel/content';
|
|
19
18
|
export * from './dockview/components/tab/tab';
|
|
19
|
+
export * from './dockview/dockviewGroupPanelModel';
|
|
20
20
|
export { TabDragEvent, GroupDragEvent, } from './dockview/components/titlebar/tabsContainer';
|
|
21
21
|
export * from './dockview/types';
|
|
22
22
|
export * from './dockview/dockviewGroupPanel';
|
|
23
|
+
export { IGroupPanelBaseProps, IDockviewPanelHeaderProps, IDockviewPanelProps, IDockviewHeaderActionsProps, IGroupHeaderProps, IWatermarkPanelProps, DockviewReadyEvent, } from './dockview/framework';
|
|
23
24
|
export * from './dockview/options';
|
|
24
25
|
export * from './dockview/dockviewPanel';
|
|
25
26
|
export * from './dockview/components/tab/defaultTab';
|
package/dist/cjs/index.js
CHANGED
|
@@ -31,11 +31,11 @@ __exportStar(require("./panel/componentFactory"), exports);
|
|
|
31
31
|
__exportStar(require("./splitview/splitview"), exports);
|
|
32
32
|
__exportStar(require("./paneview/paneview"), exports);
|
|
33
33
|
__exportStar(require("./gridview/gridview"), exports);
|
|
34
|
-
__exportStar(require("./dockview/dockviewGroupPanelModel"), exports);
|
|
35
34
|
__exportStar(require("./gridview/baseComponentGridview"), exports);
|
|
36
35
|
__exportStar(require("./paneview/draggablePaneviewPanel"), exports);
|
|
37
36
|
__exportStar(require("./dockview/components/panel/content"), exports);
|
|
38
37
|
__exportStar(require("./dockview/components/tab/tab"), exports);
|
|
38
|
+
__exportStar(require("./dockview/dockviewGroupPanelModel"), exports);
|
|
39
39
|
__exportStar(require("./dockview/types"), exports);
|
|
40
40
|
__exportStar(require("./dockview/dockviewGroupPanel"), exports);
|
|
41
41
|
__exportStar(require("./dockview/options"), exports);
|