dockview-react 6.6.0 → 7.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dockview/defaultTab.d.ts +7 -0
- package/dist/cjs/dockview/defaultTab.js +99 -0
- package/dist/cjs/dockview/dockview.d.ts +33 -0
- package/dist/cjs/dockview/dockview.js +285 -0
- package/dist/cjs/dockview/headerActionsRenderer.d.ts +24 -0
- package/dist/cjs/dockview/headerActionsRenderer.js +86 -0
- package/dist/cjs/dockview/reactContentPart.d.ts +21 -0
- package/dist/cjs/dockview/reactContentPart.js +52 -0
- package/dist/cjs/dockview/reactContextMenuItemPart.d.ts +14 -0
- package/dist/cjs/dockview/reactContextMenuItemPart.js +31 -0
- package/dist/cjs/dockview/reactGroupDragGhostPart.d.ts +20 -0
- package/dist/cjs/dockview/reactGroupDragGhostPart.js +32 -0
- package/dist/cjs/dockview/reactHeaderPart.d.ts +17 -0
- package/dist/cjs/dockview/reactHeaderPart.js +46 -0
- package/dist/cjs/dockview/reactTabGroupChipPart.d.ts +23 -0
- package/dist/cjs/dockview/reactTabGroupChipPart.js +36 -0
- package/dist/cjs/dockview/reactWatermarkPart.d.ts +18 -0
- package/dist/cjs/dockview/reactWatermarkPart.js +47 -0
- package/dist/cjs/gridview/gridview.d.ts +17 -0
- package/dist/cjs/gridview/gridview.js +105 -0
- package/dist/cjs/gridview/view.d.ts +9 -0
- package/dist/cjs/gridview/view.js +41 -0
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/paneview/paneview.d.ts +20 -0
- package/dist/cjs/paneview/paneview.js +137 -0
- package/dist/cjs/paneview/view.d.ts +19 -0
- package/dist/cjs/paneview/view.js +44 -0
- package/dist/cjs/react.d.ts +35 -0
- package/dist/cjs/react.js +183 -0
- package/dist/cjs/splitview/splitview.d.ts +17 -0
- package/dist/cjs/splitview/splitview.js +105 -0
- package/dist/cjs/splitview/view.d.ts +9 -0
- package/dist/cjs/splitview/view.js +39 -0
- package/dist/cjs/svg.d.ts +3 -0
- package/dist/cjs/svg.js +15 -0
- package/dist/cjs/types.d.ts +4 -0
- package/dist/cjs/types.js +2 -0
- package/dist/dockview-react.js +21650 -11
- package/dist/dockview-react.min.js +21 -2
- package/dist/dockview-react.min.js.map +1 -1
- package/dist/esm/dockview/defaultTab.d.ts +7 -0
- package/dist/esm/dockview/defaultTab.js +65 -0
- package/dist/esm/dockview/dockview.d.ts +33 -0
- package/dist/esm/dockview/dockview.js +252 -0
- package/dist/esm/dockview/headerActionsRenderer.d.ts +24 -0
- package/dist/esm/dockview/headerActionsRenderer.js +72 -0
- package/dist/esm/dockview/reactContentPart.d.ts +21 -0
- package/dist/esm/dockview/reactContentPart.js +43 -0
- package/dist/esm/dockview/reactContextMenuItemPart.d.ts +14 -0
- package/dist/esm/dockview/reactContextMenuItemPart.js +22 -0
- package/dist/esm/dockview/reactGroupDragGhostPart.d.ts +20 -0
- package/dist/esm/dockview/reactGroupDragGhostPart.js +23 -0
- package/dist/esm/dockview/reactHeaderPart.d.ts +17 -0
- package/dist/esm/dockview/reactHeaderPart.js +37 -0
- package/dist/esm/dockview/reactTabGroupChipPart.d.ts +23 -0
- package/dist/esm/dockview/reactTabGroupChipPart.js +27 -0
- package/dist/esm/dockview/reactWatermarkPart.d.ts +18 -0
- package/dist/esm/dockview/reactWatermarkPart.js +38 -0
- package/dist/esm/gridview/gridview.d.ts +17 -0
- package/dist/esm/gridview/gridview.js +72 -0
- package/dist/esm/gridview/view.d.ts +9 -0
- package/dist/esm/gridview/view.js +19 -0
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/paneview/paneview.d.ts +20 -0
- package/dist/esm/paneview/paneview.js +104 -0
- package/dist/esm/paneview/view.d.ts +19 -0
- package/dist/esm/paneview/view.js +35 -0
- package/dist/esm/react.d.ts +35 -0
- package/dist/esm/react.js +134 -0
- package/dist/esm/splitview/splitview.d.ts +17 -0
- package/dist/esm/splitview/splitview.js +72 -0
- package/dist/esm/splitview/view.d.ts +9 -0
- package/dist/esm/splitview/view.js +17 -0
- package/dist/esm/svg.d.ts +3 -0
- package/dist/esm/svg.js +7 -0
- package/dist/esm/types.d.ts +4 -0
- package/dist/esm/types.js +1 -0
- package/dist/package/main.cjs.js +1037 -5
- package/dist/package/main.cjs.min.js +2 -2
- package/dist/package/main.esm.min.mjs +2 -8
- package/dist/package/main.esm.mjs +1027 -1
- package/dist/styles/dockview.css +275 -13
- package/package.json +15 -2
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ReactPortalStore } from '../react';
|
|
3
|
+
import { IDockviewGroupPanel, IGroupDragGhostRenderer, DockviewApi } from 'dockview';
|
|
4
|
+
export interface IDockviewGroupDragGhostProps {
|
|
5
|
+
group: IDockviewGroupPanel;
|
|
6
|
+
api: DockviewApi;
|
|
7
|
+
}
|
|
8
|
+
export declare class ReactGroupDragGhostPart implements IGroupDragGhostRenderer {
|
|
9
|
+
private readonly component;
|
|
10
|
+
private readonly reactPortalStore;
|
|
11
|
+
private readonly _element;
|
|
12
|
+
private part?;
|
|
13
|
+
get element(): HTMLElement;
|
|
14
|
+
constructor(component: React.FunctionComponent<IDockviewGroupDragGhostProps>, reactPortalStore: ReactPortalStore);
|
|
15
|
+
init(params: {
|
|
16
|
+
group: IDockviewGroupPanel;
|
|
17
|
+
api: DockviewApi;
|
|
18
|
+
}): void;
|
|
19
|
+
dispose(): void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReactGroupDragGhostPart = void 0;
|
|
4
|
+
var react_1 = require("../react");
|
|
5
|
+
var ReactGroupDragGhostPart = /** @class */ (function () {
|
|
6
|
+
function ReactGroupDragGhostPart(component, reactPortalStore) {
|
|
7
|
+
this.component = component;
|
|
8
|
+
this.reactPortalStore = reactPortalStore;
|
|
9
|
+
this._element = document.createElement('div');
|
|
10
|
+
this._element.className = 'dv-react-part';
|
|
11
|
+
this._element.style.display = 'inline-flex';
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(ReactGroupDragGhostPart.prototype, "element", {
|
|
14
|
+
get: function () {
|
|
15
|
+
return this._element;
|
|
16
|
+
},
|
|
17
|
+
enumerable: false,
|
|
18
|
+
configurable: true
|
|
19
|
+
});
|
|
20
|
+
ReactGroupDragGhostPart.prototype.init = function (params) {
|
|
21
|
+
this.part = new react_1.ReactPart(this._element, this.reactPortalStore, this.component, {
|
|
22
|
+
group: params.group,
|
|
23
|
+
api: params.api,
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
ReactGroupDragGhostPart.prototype.dispose = function () {
|
|
27
|
+
var _a;
|
|
28
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
29
|
+
};
|
|
30
|
+
return ReactGroupDragGhostPart;
|
|
31
|
+
}());
|
|
32
|
+
exports.ReactGroupDragGhostPart = ReactGroupDragGhostPart;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ReactPortalStore } from '../react';
|
|
3
|
+
import { PanelUpdateEvent, ITabRenderer, TabPartInitParameters, IDockviewPanelHeaderProps } from 'dockview';
|
|
4
|
+
export declare class ReactPanelHeaderPart implements ITabRenderer {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
private readonly component;
|
|
7
|
+
private readonly reactPortalStore;
|
|
8
|
+
private readonly _element;
|
|
9
|
+
private part?;
|
|
10
|
+
get element(): HTMLElement;
|
|
11
|
+
constructor(id: string, component: React.FunctionComponent<IDockviewPanelHeaderProps>, reactPortalStore: ReactPortalStore);
|
|
12
|
+
focus(): void;
|
|
13
|
+
init(parameters: TabPartInitParameters): void;
|
|
14
|
+
update(event: PanelUpdateEvent): void;
|
|
15
|
+
layout(_width: number, _height: number): void;
|
|
16
|
+
dispose(): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReactPanelHeaderPart = void 0;
|
|
4
|
+
var react_1 = require("../react");
|
|
5
|
+
var ReactPanelHeaderPart = /** @class */ (function () {
|
|
6
|
+
function ReactPanelHeaderPart(id, component, reactPortalStore) {
|
|
7
|
+
this.id = id;
|
|
8
|
+
this.component = component;
|
|
9
|
+
this.reactPortalStore = reactPortalStore;
|
|
10
|
+
this._element = document.createElement('div');
|
|
11
|
+
this._element.className = 'dv-react-part';
|
|
12
|
+
this._element.style.height = '100%';
|
|
13
|
+
this._element.style.width = '100%';
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(ReactPanelHeaderPart.prototype, "element", {
|
|
16
|
+
get: function () {
|
|
17
|
+
return this._element;
|
|
18
|
+
},
|
|
19
|
+
enumerable: false,
|
|
20
|
+
configurable: true
|
|
21
|
+
});
|
|
22
|
+
ReactPanelHeaderPart.prototype.focus = function () {
|
|
23
|
+
//noop
|
|
24
|
+
};
|
|
25
|
+
ReactPanelHeaderPart.prototype.init = function (parameters) {
|
|
26
|
+
this.part = new react_1.ReactPart(this.element, this.reactPortalStore, this.component, {
|
|
27
|
+
params: parameters.params,
|
|
28
|
+
api: parameters.api,
|
|
29
|
+
containerApi: parameters.containerApi,
|
|
30
|
+
tabLocation: parameters.tabLocation,
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
ReactPanelHeaderPart.prototype.update = function (event) {
|
|
34
|
+
var _a;
|
|
35
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.update({ params: event.params });
|
|
36
|
+
};
|
|
37
|
+
ReactPanelHeaderPart.prototype.layout = function (_width, _height) {
|
|
38
|
+
// noop - retrieval from api
|
|
39
|
+
};
|
|
40
|
+
ReactPanelHeaderPart.prototype.dispose = function () {
|
|
41
|
+
var _a;
|
|
42
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
43
|
+
};
|
|
44
|
+
return ReactPanelHeaderPart;
|
|
45
|
+
}());
|
|
46
|
+
exports.ReactPanelHeaderPart = ReactPanelHeaderPart;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ReactPortalStore } from '../react';
|
|
3
|
+
import { ITabGroupChipRenderer, ITabGroup, DockviewApi } from 'dockview';
|
|
4
|
+
export interface IDockviewTabGroupChipProps {
|
|
5
|
+
tabGroup: ITabGroup;
|
|
6
|
+
api: DockviewApi;
|
|
7
|
+
}
|
|
8
|
+
export declare class ReactTabGroupChipPart implements ITabGroupChipRenderer {
|
|
9
|
+
private readonly component;
|
|
10
|
+
private readonly reactPortalStore;
|
|
11
|
+
private readonly _element;
|
|
12
|
+
private part?;
|
|
13
|
+
get element(): HTMLElement;
|
|
14
|
+
constructor(component: React.FunctionComponent<IDockviewTabGroupChipProps>, reactPortalStore: ReactPortalStore);
|
|
15
|
+
init(params: {
|
|
16
|
+
tabGroup: ITabGroup;
|
|
17
|
+
api: DockviewApi;
|
|
18
|
+
}): void;
|
|
19
|
+
update(params: {
|
|
20
|
+
tabGroup: ITabGroup;
|
|
21
|
+
}): void;
|
|
22
|
+
dispose(): void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReactTabGroupChipPart = void 0;
|
|
4
|
+
var react_1 = require("../react");
|
|
5
|
+
var ReactTabGroupChipPart = /** @class */ (function () {
|
|
6
|
+
function ReactTabGroupChipPart(component, reactPortalStore) {
|
|
7
|
+
this.component = component;
|
|
8
|
+
this.reactPortalStore = reactPortalStore;
|
|
9
|
+
this._element = document.createElement('div');
|
|
10
|
+
this._element.className = 'dv-react-part';
|
|
11
|
+
this._element.style.display = 'inline-flex';
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(ReactTabGroupChipPart.prototype, "element", {
|
|
14
|
+
get: function () {
|
|
15
|
+
return this._element;
|
|
16
|
+
},
|
|
17
|
+
enumerable: false,
|
|
18
|
+
configurable: true
|
|
19
|
+
});
|
|
20
|
+
ReactTabGroupChipPart.prototype.init = function (params) {
|
|
21
|
+
this.part = new react_1.ReactPart(this._element, this.reactPortalStore, this.component, {
|
|
22
|
+
tabGroup: params.tabGroup,
|
|
23
|
+
api: params.api,
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
ReactTabGroupChipPart.prototype.update = function (params) {
|
|
27
|
+
var _a;
|
|
28
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.update({ tabGroup: params.tabGroup });
|
|
29
|
+
};
|
|
30
|
+
ReactTabGroupChipPart.prototype.dispose = function () {
|
|
31
|
+
var _a;
|
|
32
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
33
|
+
};
|
|
34
|
+
return ReactTabGroupChipPart;
|
|
35
|
+
}());
|
|
36
|
+
exports.ReactTabGroupChipPart = ReactTabGroupChipPart;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ReactPortalStore } from '../react';
|
|
3
|
+
import { PanelUpdateEvent, IWatermarkRenderer, WatermarkRendererInitParameters, IWatermarkPanelProps } from 'dockview';
|
|
4
|
+
export declare class ReactWatermarkPart implements IWatermarkRenderer {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
private readonly component;
|
|
7
|
+
private readonly reactPortalStore;
|
|
8
|
+
private readonly _element;
|
|
9
|
+
private part?;
|
|
10
|
+
private readonly parameters;
|
|
11
|
+
get element(): HTMLElement;
|
|
12
|
+
constructor(id: string, component: React.FunctionComponent<IWatermarkPanelProps>, reactPortalStore: ReactPortalStore);
|
|
13
|
+
init(parameters: WatermarkRendererInitParameters): void;
|
|
14
|
+
focus(): void;
|
|
15
|
+
update(params: PanelUpdateEvent): void;
|
|
16
|
+
layout(_width: number, _height: number): void;
|
|
17
|
+
dispose(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReactWatermarkPart = void 0;
|
|
4
|
+
var react_1 = require("../react");
|
|
5
|
+
var ReactWatermarkPart = /** @class */ (function () {
|
|
6
|
+
function ReactWatermarkPart(id, component, reactPortalStore) {
|
|
7
|
+
this.id = id;
|
|
8
|
+
this.component = component;
|
|
9
|
+
this.reactPortalStore = reactPortalStore;
|
|
10
|
+
this._element = document.createElement('div');
|
|
11
|
+
this._element.className = 'dv-react-part';
|
|
12
|
+
this._element.style.height = '100%';
|
|
13
|
+
this._element.style.width = '100%';
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(ReactWatermarkPart.prototype, "element", {
|
|
16
|
+
get: function () {
|
|
17
|
+
return this._element;
|
|
18
|
+
},
|
|
19
|
+
enumerable: false,
|
|
20
|
+
configurable: true
|
|
21
|
+
});
|
|
22
|
+
ReactWatermarkPart.prototype.init = function (parameters) {
|
|
23
|
+
this.part = new react_1.ReactPart(this.element, this.reactPortalStore, this.component, {
|
|
24
|
+
group: parameters.group,
|
|
25
|
+
containerApi: parameters.containerApi,
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
ReactWatermarkPart.prototype.focus = function () {
|
|
29
|
+
// noop
|
|
30
|
+
};
|
|
31
|
+
ReactWatermarkPart.prototype.update = function (params) {
|
|
32
|
+
var _a, _b, _c;
|
|
33
|
+
if (this.parameters) {
|
|
34
|
+
this.parameters.params = params.params;
|
|
35
|
+
}
|
|
36
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.update({ params: (_c = (_b = this.parameters) === null || _b === void 0 ? void 0 : _b.params) !== null && _c !== void 0 ? _c : {} });
|
|
37
|
+
};
|
|
38
|
+
ReactWatermarkPart.prototype.layout = function (_width, _height) {
|
|
39
|
+
// noop - retrieval from api
|
|
40
|
+
};
|
|
41
|
+
ReactWatermarkPart.prototype.dispose = function () {
|
|
42
|
+
var _a;
|
|
43
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
44
|
+
};
|
|
45
|
+
return ReactWatermarkPart;
|
|
46
|
+
}());
|
|
47
|
+
exports.ReactWatermarkPart = ReactWatermarkPart;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { GridviewPanelApi, GridviewApi, GridviewOptions } from 'dockview';
|
|
3
|
+
import { PanelParameters } from '../types';
|
|
4
|
+
export interface GridviewReadyEvent {
|
|
5
|
+
api: GridviewApi;
|
|
6
|
+
}
|
|
7
|
+
export interface IGridviewPanelProps<T extends {
|
|
8
|
+
[index: string]: any;
|
|
9
|
+
} = any> extends PanelParameters<T> {
|
|
10
|
+
api: GridviewPanelApi;
|
|
11
|
+
containerApi: GridviewApi;
|
|
12
|
+
}
|
|
13
|
+
export interface IGridviewReactProps extends GridviewOptions {
|
|
14
|
+
onReady: (event: GridviewReadyEvent) => void;
|
|
15
|
+
components: Record<string, React.FunctionComponent<IGridviewPanelProps>>;
|
|
16
|
+
}
|
|
17
|
+
export declare const GridviewReact: React.ForwardRefExoticComponent<IGridviewReactProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,105 @@
|
|
|
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
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o), r, ar = [], e;
|
|
17
|
+
try {
|
|
18
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
+
}
|
|
20
|
+
catch (error) { e = { error: error }; }
|
|
21
|
+
finally {
|
|
22
|
+
try {
|
|
23
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
+
}
|
|
25
|
+
finally { if (e) throw e.error; }
|
|
26
|
+
}
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.GridviewReact = void 0;
|
|
34
|
+
var react_1 = __importDefault(require("react"));
|
|
35
|
+
var dockview_1 = require("dockview");
|
|
36
|
+
var view_1 = require("./view");
|
|
37
|
+
var react_2 = require("../react");
|
|
38
|
+
function extractCoreOptions(props) {
|
|
39
|
+
var coreOptions = dockview_1.PROPERTY_KEYS_GRIDVIEW.reduce(function (obj, key) {
|
|
40
|
+
if (key in props) {
|
|
41
|
+
obj[key] = props[key];
|
|
42
|
+
}
|
|
43
|
+
return obj;
|
|
44
|
+
}, {});
|
|
45
|
+
return coreOptions;
|
|
46
|
+
}
|
|
47
|
+
exports.GridviewReact = react_1.default.forwardRef(function (props, ref) {
|
|
48
|
+
var domRef = react_1.default.useRef(null);
|
|
49
|
+
var gridviewRef = react_1.default.useRef(undefined);
|
|
50
|
+
var _a = __read((0, react_2.usePortalsLifecycle)(), 2), portals = _a[0], addPortal = _a[1];
|
|
51
|
+
react_1.default.useImperativeHandle(ref, function () { return domRef.current; }, []);
|
|
52
|
+
var prevProps = react_1.default.useRef({});
|
|
53
|
+
react_1.default.useEffect(function () {
|
|
54
|
+
var changes = {};
|
|
55
|
+
dockview_1.PROPERTY_KEYS_GRIDVIEW.forEach(function (propKey) {
|
|
56
|
+
var key = propKey;
|
|
57
|
+
var propValue = props[key];
|
|
58
|
+
if (key in props && propValue !== prevProps.current[key]) {
|
|
59
|
+
changes[key] = propValue;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
if (gridviewRef.current) {
|
|
63
|
+
gridviewRef.current.updateOptions(changes);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// not yet fully initialized
|
|
67
|
+
}
|
|
68
|
+
prevProps.current = props;
|
|
69
|
+
}, dockview_1.PROPERTY_KEYS_GRIDVIEW.map(function (key) { return props[key]; }));
|
|
70
|
+
react_1.default.useEffect(function () {
|
|
71
|
+
if (!domRef.current) {
|
|
72
|
+
return function () {
|
|
73
|
+
// noop
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
var frameworkOptions = {
|
|
77
|
+
createComponent: function (options) {
|
|
78
|
+
return new view_1.ReactGridPanelView(options.id, options.name, props.components[options.name], { addPortal: addPortal });
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
var api = (0, dockview_1.createGridview)(domRef.current, __assign(__assign({}, extractCoreOptions(props)), frameworkOptions));
|
|
82
|
+
var _a = domRef.current, clientWidth = _a.clientWidth, clientHeight = _a.clientHeight;
|
|
83
|
+
api.layout(clientWidth, clientHeight);
|
|
84
|
+
if (props.onReady) {
|
|
85
|
+
props.onReady({ api: api });
|
|
86
|
+
}
|
|
87
|
+
gridviewRef.current = api;
|
|
88
|
+
return function () {
|
|
89
|
+
gridviewRef.current = undefined;
|
|
90
|
+
api.dispose();
|
|
91
|
+
};
|
|
92
|
+
}, []);
|
|
93
|
+
react_1.default.useEffect(function () {
|
|
94
|
+
if (!gridviewRef.current) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
gridviewRef.current.updateOptions({
|
|
98
|
+
createComponent: function (options) {
|
|
99
|
+
return new view_1.ReactGridPanelView(options.id, options.name, props.components[options.name], { addPortal: addPortal });
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
}, [props.components]);
|
|
103
|
+
return (react_1.default.createElement("div", { style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
104
|
+
});
|
|
105
|
+
exports.GridviewReact.displayName = 'GridviewComponent';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { GridviewPanel, IFrameworkPart } from 'dockview';
|
|
2
|
+
import { ReactPortalStore } from '../react';
|
|
3
|
+
import { IGridviewPanelProps } from './gridview';
|
|
4
|
+
export declare class ReactGridPanelView extends GridviewPanel {
|
|
5
|
+
private readonly reactComponent;
|
|
6
|
+
private readonly reactPortalStore;
|
|
7
|
+
constructor(id: string, component: string, reactComponent: React.FunctionComponent<IGridviewPanelProps>, reactPortalStore: ReactPortalStore);
|
|
8
|
+
getComponent(): IFrameworkPart;
|
|
9
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ReactGridPanelView = void 0;
|
|
19
|
+
var dockview_1 = require("dockview");
|
|
20
|
+
var react_1 = require("../react");
|
|
21
|
+
var ReactGridPanelView = /** @class */ (function (_super) {
|
|
22
|
+
__extends(ReactGridPanelView, _super);
|
|
23
|
+
function ReactGridPanelView(id, component, reactComponent, reactPortalStore) {
|
|
24
|
+
var _this = _super.call(this, id, component) || this;
|
|
25
|
+
_this.reactComponent = reactComponent;
|
|
26
|
+
_this.reactPortalStore = reactPortalStore;
|
|
27
|
+
return _this;
|
|
28
|
+
}
|
|
29
|
+
ReactGridPanelView.prototype.getComponent = function () {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
return new react_1.ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
|
|
32
|
+
params: (_b = (_a = this._params) === null || _a === void 0 ? void 0 : _a.params) !== null && _b !== void 0 ? _b : {},
|
|
33
|
+
api: this.api,
|
|
34
|
+
// TODO: fix casting hack
|
|
35
|
+
containerApi: new dockview_1.GridviewApi(this._params
|
|
36
|
+
.accessor),
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
return ReactGridPanelView;
|
|
40
|
+
}(dockview_1.GridviewPanel));
|
|
41
|
+
exports.ReactGridPanelView = ReactGridPanelView;
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1 +1,10 @@
|
|
|
1
1
|
export * from 'dockview';
|
|
2
|
+
export * from './dockview/dockview';
|
|
3
|
+
export * from './dockview/defaultTab';
|
|
4
|
+
export { IDockviewTabGroupChipProps } from './dockview/reactTabGroupChipPart';
|
|
5
|
+
export { IDockviewGroupDragGhostProps } from './dockview/reactGroupDragGhostPart';
|
|
6
|
+
export * from './splitview/splitview';
|
|
7
|
+
export * from './gridview/gridview';
|
|
8
|
+
export * from './paneview/paneview';
|
|
9
|
+
export * from './types';
|
|
10
|
+
export * from './react';
|
package/dist/cjs/index.js
CHANGED
|
@@ -15,3 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("dockview"), exports);
|
|
18
|
+
__exportStar(require("./dockview/dockview"), exports);
|
|
19
|
+
__exportStar(require("./dockview/defaultTab"), exports);
|
|
20
|
+
__exportStar(require("./splitview/splitview"), exports);
|
|
21
|
+
__exportStar(require("./gridview/gridview"), exports);
|
|
22
|
+
__exportStar(require("./paneview/paneview"), exports);
|
|
23
|
+
__exportStar(require("./types"), exports);
|
|
24
|
+
__exportStar(require("./react"), exports);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PaneviewPanelApi, PaneviewApi, PaneviewDidDropEvent, PaneviewOptions } from 'dockview';
|
|
3
|
+
import { PanelParameters } from '../types';
|
|
4
|
+
export interface PaneviewReadyEvent {
|
|
5
|
+
api: PaneviewApi;
|
|
6
|
+
}
|
|
7
|
+
export interface IPaneviewPanelProps<T extends {
|
|
8
|
+
[index: string]: any;
|
|
9
|
+
} = any> extends PanelParameters<T> {
|
|
10
|
+
api: PaneviewPanelApi;
|
|
11
|
+
containerApi: PaneviewApi;
|
|
12
|
+
title: string;
|
|
13
|
+
}
|
|
14
|
+
export interface IPaneviewReactProps extends PaneviewOptions {
|
|
15
|
+
onReady: (event: PaneviewReadyEvent) => void;
|
|
16
|
+
components: Record<string, React.FunctionComponent<IPaneviewPanelProps>>;
|
|
17
|
+
headerComponents?: Record<string, React.FunctionComponent<IPaneviewPanelProps>>;
|
|
18
|
+
onDidDrop?(event: PaneviewDidDropEvent): void;
|
|
19
|
+
}
|
|
20
|
+
export declare const PaneviewReact: React.ForwardRefExoticComponent<IPaneviewReactProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,137 @@
|
|
|
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
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o), r, ar = [], e;
|
|
17
|
+
try {
|
|
18
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
+
}
|
|
20
|
+
catch (error) { e = { error: error }; }
|
|
21
|
+
finally {
|
|
22
|
+
try {
|
|
23
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
+
}
|
|
25
|
+
finally { if (e) throw e.error; }
|
|
26
|
+
}
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
30
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
31
|
+
};
|
|
32
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
+
exports.PaneviewReact = void 0;
|
|
34
|
+
var react_1 = __importDefault(require("react"));
|
|
35
|
+
var dockview_1 = require("dockview");
|
|
36
|
+
var react_2 = require("../react");
|
|
37
|
+
var view_1 = require("./view");
|
|
38
|
+
function extractCoreOptions(props) {
|
|
39
|
+
var coreOptions = dockview_1.PROPERTY_KEYS_PANEVIEW.reduce(function (obj, key) {
|
|
40
|
+
if (key in props) {
|
|
41
|
+
obj[key] = props[key];
|
|
42
|
+
}
|
|
43
|
+
return obj;
|
|
44
|
+
}, {});
|
|
45
|
+
return coreOptions;
|
|
46
|
+
}
|
|
47
|
+
exports.PaneviewReact = react_1.default.forwardRef(function (props, ref) {
|
|
48
|
+
var domRef = react_1.default.useRef(null);
|
|
49
|
+
var paneviewRef = react_1.default.useRef(undefined);
|
|
50
|
+
var _a = __read((0, react_2.usePortalsLifecycle)(), 2), portals = _a[0], addPortal = _a[1];
|
|
51
|
+
react_1.default.useImperativeHandle(ref, function () { return domRef.current; }, []);
|
|
52
|
+
var prevProps = react_1.default.useRef({});
|
|
53
|
+
react_1.default.useEffect(function () {
|
|
54
|
+
var changes = {};
|
|
55
|
+
dockview_1.PROPERTY_KEYS_PANEVIEW.forEach(function (propKey) {
|
|
56
|
+
var key = propKey;
|
|
57
|
+
var propValue = props[key];
|
|
58
|
+
if (key in props && propValue !== prevProps.current[key]) {
|
|
59
|
+
changes[key] = propValue;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
if (paneviewRef.current) {
|
|
63
|
+
paneviewRef.current.updateOptions(changes);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// not yet fully initialized
|
|
67
|
+
}
|
|
68
|
+
prevProps.current = props;
|
|
69
|
+
}, dockview_1.PROPERTY_KEYS_PANEVIEW.map(function (key) { return props[key]; }));
|
|
70
|
+
react_1.default.useEffect(function () {
|
|
71
|
+
var _a;
|
|
72
|
+
if (!domRef.current) {
|
|
73
|
+
return function () {
|
|
74
|
+
// noop
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
var headerComponents = (_a = props.headerComponents) !== null && _a !== void 0 ? _a : {};
|
|
78
|
+
var frameworkOptions = {
|
|
79
|
+
createComponent: function (options) {
|
|
80
|
+
return new view_1.PanePanelSection(options.id, props.components[options.name], { addPortal: addPortal });
|
|
81
|
+
},
|
|
82
|
+
createHeaderComponent: function (options) {
|
|
83
|
+
return new view_1.PanePanelSection(options.id, headerComponents[options.name], { addPortal: addPortal });
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
var api = (0, dockview_1.createPaneview)(domRef.current, __assign(__assign({}, extractCoreOptions(props)), frameworkOptions));
|
|
87
|
+
var _b = domRef.current, clientWidth = _b.clientWidth, clientHeight = _b.clientHeight;
|
|
88
|
+
api.layout(clientWidth, clientHeight);
|
|
89
|
+
if (props.onReady) {
|
|
90
|
+
props.onReady({ api: api });
|
|
91
|
+
}
|
|
92
|
+
paneviewRef.current = api;
|
|
93
|
+
return function () {
|
|
94
|
+
paneviewRef.current = undefined;
|
|
95
|
+
api.dispose();
|
|
96
|
+
};
|
|
97
|
+
}, []);
|
|
98
|
+
react_1.default.useEffect(function () {
|
|
99
|
+
if (!paneviewRef.current) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
paneviewRef.current.updateOptions({
|
|
103
|
+
createComponent: function (options) {
|
|
104
|
+
return new view_1.PanePanelSection(options.id, props.components[options.name], { addPortal: addPortal });
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
}, [props.components]);
|
|
108
|
+
react_1.default.useEffect(function () {
|
|
109
|
+
var _a;
|
|
110
|
+
if (!paneviewRef.current) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
var headerComponents = (_a = props.headerComponents) !== null && _a !== void 0 ? _a : {};
|
|
114
|
+
paneviewRef.current.updateOptions({
|
|
115
|
+
createHeaderComponent: function (options) {
|
|
116
|
+
return new view_1.PanePanelSection(options.id, headerComponents[options.name], { addPortal: addPortal });
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
}, [props.headerComponents]);
|
|
120
|
+
react_1.default.useEffect(function () {
|
|
121
|
+
if (!paneviewRef.current) {
|
|
122
|
+
return function () {
|
|
123
|
+
// noop
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
var disposable = paneviewRef.current.onDidDrop(function (event) {
|
|
127
|
+
if (props.onDidDrop) {
|
|
128
|
+
props.onDidDrop(event);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return function () {
|
|
132
|
+
disposable.dispose();
|
|
133
|
+
};
|
|
134
|
+
}, [props.onDidDrop]);
|
|
135
|
+
return (react_1.default.createElement("div", { style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
136
|
+
});
|
|
137
|
+
exports.PaneviewReact.displayName = 'PaneviewComponent';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PanelUpdateEvent, IPanePart, PanePanelComponentInitParameter } from 'dockview';
|
|
3
|
+
import { ReactPortalStore } from '../react';
|
|
4
|
+
import { IPaneviewPanelProps } from './paneview';
|
|
5
|
+
export declare class PanePanelSection implements IPanePart {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
private readonly component;
|
|
8
|
+
private readonly reactPortalStore;
|
|
9
|
+
private readonly _element;
|
|
10
|
+
private part?;
|
|
11
|
+
get element(): HTMLElement;
|
|
12
|
+
constructor(id: string, component: React.FunctionComponent<IPaneviewPanelProps>, reactPortalStore: ReactPortalStore);
|
|
13
|
+
init(parameters: PanePanelComponentInitParameter): void;
|
|
14
|
+
toJSON(): {
|
|
15
|
+
id: string;
|
|
16
|
+
};
|
|
17
|
+
update(params: PanelUpdateEvent): void;
|
|
18
|
+
dispose(): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PanePanelSection = void 0;
|
|
4
|
+
var react_1 = require("../react");
|
|
5
|
+
var PanePanelSection = /** @class */ (function () {
|
|
6
|
+
function PanePanelSection(id, component, reactPortalStore) {
|
|
7
|
+
this.id = id;
|
|
8
|
+
this.component = component;
|
|
9
|
+
this.reactPortalStore = reactPortalStore;
|
|
10
|
+
this._element = document.createElement('div');
|
|
11
|
+
this._element.style.height = '100%';
|
|
12
|
+
this._element.style.width = '100%';
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(PanePanelSection.prototype, "element", {
|
|
15
|
+
get: function () {
|
|
16
|
+
return this._element;
|
|
17
|
+
},
|
|
18
|
+
enumerable: false,
|
|
19
|
+
configurable: true
|
|
20
|
+
});
|
|
21
|
+
PanePanelSection.prototype.init = function (parameters) {
|
|
22
|
+
this.part = new react_1.ReactPart(this.element, this.reactPortalStore, this.component, {
|
|
23
|
+
params: parameters.params,
|
|
24
|
+
api: parameters.api,
|
|
25
|
+
title: parameters.title,
|
|
26
|
+
containerApi: parameters.containerApi,
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
PanePanelSection.prototype.toJSON = function () {
|
|
30
|
+
return {
|
|
31
|
+
id: this.id,
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
PanePanelSection.prototype.update = function (params) {
|
|
35
|
+
var _a;
|
|
36
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.update(params.params);
|
|
37
|
+
};
|
|
38
|
+
PanePanelSection.prototype.dispose = function () {
|
|
39
|
+
var _a;
|
|
40
|
+
(_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
41
|
+
};
|
|
42
|
+
return PanePanelSection;
|
|
43
|
+
}());
|
|
44
|
+
exports.PanePanelSection = PanePanelSection;
|