dockview-react 6.6.1 → 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,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IFrameworkPart, DockviewIDisposable } from 'dockview';
|
|
3
|
+
export interface ReactPortalStore {
|
|
4
|
+
addPortal: (portal: React.ReactPortal) => DockviewIDisposable;
|
|
5
|
+
}
|
|
6
|
+
export declare const ReactPartContext: React.Context<{}>;
|
|
7
|
+
export declare class ReactPart<P extends object, C extends object = {}> implements IFrameworkPart {
|
|
8
|
+
private readonly parent;
|
|
9
|
+
private readonly portalStore;
|
|
10
|
+
private readonly component;
|
|
11
|
+
private readonly parameters;
|
|
12
|
+
private readonly context?;
|
|
13
|
+
private _initialProps;
|
|
14
|
+
private componentInstance?;
|
|
15
|
+
private ref?;
|
|
16
|
+
private disposed;
|
|
17
|
+
constructor(parent: HTMLElement, portalStore: ReactPortalStore, component: React.FunctionComponent<P>, parameters: P, context?: C | undefined);
|
|
18
|
+
update(props: {
|
|
19
|
+
[index: string]: any;
|
|
20
|
+
}): void;
|
|
21
|
+
private createPortal;
|
|
22
|
+
dispose(): void;
|
|
23
|
+
}
|
|
24
|
+
type PortalLifecycleHook = () => [
|
|
25
|
+
React.ReactPortal[],
|
|
26
|
+
(portal: React.ReactPortal) => DockviewIDisposable
|
|
27
|
+
];
|
|
28
|
+
/**
|
|
29
|
+
* A React Hook that returns an array of portals to be rendered by the user of this hook
|
|
30
|
+
* and a disposable function to add a portal. Calling dispose removes this portal from the
|
|
31
|
+
* portal array
|
|
32
|
+
*/
|
|
33
|
+
export declare const usePortalsLifecycle: PortalLifecycleHook;
|
|
34
|
+
export declare function isReactComponent(component: any): boolean;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,183 @@
|
|
|
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
30
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
31
|
+
if (ar || !(i in from)) {
|
|
32
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
33
|
+
ar[i] = from[i];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
37
|
+
};
|
|
38
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
|
+
};
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.usePortalsLifecycle = exports.ReactPart = exports.ReactPartContext = void 0;
|
|
43
|
+
exports.isReactComponent = isReactComponent;
|
|
44
|
+
var react_1 = __importDefault(require("react"));
|
|
45
|
+
var react_dom_1 = __importDefault(require("react-dom"));
|
|
46
|
+
var dockview_1 = require("dockview");
|
|
47
|
+
/**
|
|
48
|
+
* This component is intended to interface between vanilla-js and React hence we need to be
|
|
49
|
+
* creative in how we update props.
|
|
50
|
+
* A ref of the component is exposed with an update method; which when called stores the props
|
|
51
|
+
* as a ref within this component and forcefully triggers a re-render of the component using
|
|
52
|
+
* the ref of props we just set on the renderered component as the props passed to the inner
|
|
53
|
+
* component
|
|
54
|
+
*/
|
|
55
|
+
var ReactComponentBridge = function (props, ref) {
|
|
56
|
+
var _a = __read(react_1.default.useState(0), 2), triggerRender = _a[1];
|
|
57
|
+
var _props = react_1.default.useRef(props.componentProps);
|
|
58
|
+
react_1.default.useImperativeHandle(ref, function () { return ({
|
|
59
|
+
update: function (componentProps) {
|
|
60
|
+
_props.current = __assign(__assign({}, _props.current), componentProps);
|
|
61
|
+
/**
|
|
62
|
+
* setting a arbitrary piece of state within this component will
|
|
63
|
+
* trigger a re-render.
|
|
64
|
+
* we use this rather than updating through a prop since we can
|
|
65
|
+
* pass a ref into the vanilla-js world.
|
|
66
|
+
*
|
|
67
|
+
* Use a monotonic counter rather than `Date.now()` so two
|
|
68
|
+
* updates within the same millisecond still produce distinct
|
|
69
|
+
* state values and avoid React's bailout.
|
|
70
|
+
*/
|
|
71
|
+
triggerRender(function (n) { return n + 1; });
|
|
72
|
+
},
|
|
73
|
+
}); }, []);
|
|
74
|
+
return react_1.default.createElement(props.component, _props.current);
|
|
75
|
+
};
|
|
76
|
+
ReactComponentBridge.displayName = 'DockviewReactJsBridge';
|
|
77
|
+
/**
|
|
78
|
+
* Since we are storing the React.Portal references in a rendered array they
|
|
79
|
+
* require a key property like any other React element rendered in an array
|
|
80
|
+
* to prevent excessive re-rendering
|
|
81
|
+
*/
|
|
82
|
+
var uniquePortalKeyGenerator = (function () {
|
|
83
|
+
var value = 1;
|
|
84
|
+
return { next: function () { return "dockview_react_portal_key_".concat((value++).toString()); } };
|
|
85
|
+
})();
|
|
86
|
+
exports.ReactPartContext = react_1.default.createContext({});
|
|
87
|
+
var ReactPart = /** @class */ (function () {
|
|
88
|
+
function ReactPart(parent, portalStore, component, parameters, context) {
|
|
89
|
+
this.parent = parent;
|
|
90
|
+
this.portalStore = portalStore;
|
|
91
|
+
this.component = component;
|
|
92
|
+
this.parameters = parameters;
|
|
93
|
+
this.context = context;
|
|
94
|
+
this._initialProps = {};
|
|
95
|
+
this.disposed = false;
|
|
96
|
+
this.createPortal();
|
|
97
|
+
}
|
|
98
|
+
ReactPart.prototype.update = function (props) {
|
|
99
|
+
if (this.disposed) {
|
|
100
|
+
throw new Error('invalid operation: resource is already disposed');
|
|
101
|
+
}
|
|
102
|
+
if (!this.componentInstance) {
|
|
103
|
+
// if the component is yet to be mounted store the props
|
|
104
|
+
this._initialProps = __assign(__assign({}, this._initialProps), props);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this.componentInstance.update(props);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
ReactPart.prototype.createPortal = function () {
|
|
111
|
+
var _this = this;
|
|
112
|
+
if (this.disposed) {
|
|
113
|
+
throw new Error('invalid operation: resource is already disposed');
|
|
114
|
+
}
|
|
115
|
+
if (!isReactComponent(this.component)) {
|
|
116
|
+
/**
|
|
117
|
+
* we know this isn't a React.FunctionComponent so throw an error here.
|
|
118
|
+
* if we do not intercept then React library will throw a very obsure error
|
|
119
|
+
* for the same reason... at least at this point we will emit a sensible stacktrace.
|
|
120
|
+
*/
|
|
121
|
+
throw new Error('Dockview: Only React.memo(...), React.ForwardRef(...) and functional components are accepted as components');
|
|
122
|
+
}
|
|
123
|
+
var bridgeComponent = react_1.default.createElement(react_1.default.forwardRef(ReactComponentBridge), {
|
|
124
|
+
component: this
|
|
125
|
+
.component,
|
|
126
|
+
componentProps: this.parameters,
|
|
127
|
+
ref: function (element) {
|
|
128
|
+
_this.componentInstance = element;
|
|
129
|
+
if (Object.keys(_this._initialProps).length > 0) {
|
|
130
|
+
_this.componentInstance.update(_this._initialProps);
|
|
131
|
+
_this._initialProps = {}; // don't keep a reference to the users object once no longer required
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
var node = this.context
|
|
136
|
+
? react_1.default.createElement(exports.ReactPartContext.Provider, { value: this.context }, bridgeComponent)
|
|
137
|
+
: bridgeComponent;
|
|
138
|
+
var portal = react_dom_1.default.createPortal(node, this.parent, uniquePortalKeyGenerator.next());
|
|
139
|
+
this.ref = {
|
|
140
|
+
portal: portal,
|
|
141
|
+
disposable: this.portalStore.addPortal(portal),
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
ReactPart.prototype.dispose = function () {
|
|
145
|
+
var _a;
|
|
146
|
+
(_a = this.ref) === null || _a === void 0 ? void 0 : _a.disposable.dispose();
|
|
147
|
+
this.disposed = true;
|
|
148
|
+
};
|
|
149
|
+
return ReactPart;
|
|
150
|
+
}());
|
|
151
|
+
exports.ReactPart = ReactPart;
|
|
152
|
+
/**
|
|
153
|
+
* A React Hook that returns an array of portals to be rendered by the user of this hook
|
|
154
|
+
* and a disposable function to add a portal. Calling dispose removes this portal from the
|
|
155
|
+
* portal array
|
|
156
|
+
*/
|
|
157
|
+
var usePortalsLifecycle = function () {
|
|
158
|
+
var _a = __read(react_1.default.useState([]), 2), portals = _a[0], setPortals = _a[1];
|
|
159
|
+
react_1.default.useDebugValue("Portal count: ".concat(portals.length));
|
|
160
|
+
var addPortal = react_1.default.useCallback(function (portal) {
|
|
161
|
+
setPortals(function (existingPortals) { return __spreadArray(__spreadArray([], __read(existingPortals), false), [portal], false); });
|
|
162
|
+
var disposed = false;
|
|
163
|
+
return dockview_1.DockviewDisposable.from(function () {
|
|
164
|
+
if (disposed) {
|
|
165
|
+
throw new Error('invalid operation: resource already disposed');
|
|
166
|
+
}
|
|
167
|
+
disposed = true;
|
|
168
|
+
setPortals(function (existingPortals) {
|
|
169
|
+
return existingPortals.filter(function (p) { return p !== portal; });
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
}, []);
|
|
173
|
+
return [portals, addPortal];
|
|
174
|
+
};
|
|
175
|
+
exports.usePortalsLifecycle = usePortalsLifecycle;
|
|
176
|
+
function isReactComponent(component) {
|
|
177
|
+
/**
|
|
178
|
+
* Yes, we could use "react-is" but that would introduce an unwanted peer dependency
|
|
179
|
+
* so for now we will check in a rather crude fashion...
|
|
180
|
+
*/
|
|
181
|
+
return (typeof component === 'function' /** Functional Componnts */ ||
|
|
182
|
+
!!(component === null || component === void 0 ? void 0 : component.$$typeof) /** React.memo(...) Components */);
|
|
183
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SplitviewApi, SplitviewPanelApi, SplitviewOptions } from 'dockview';
|
|
3
|
+
import { PanelParameters } from '../types';
|
|
4
|
+
export interface SplitviewReadyEvent {
|
|
5
|
+
api: SplitviewApi;
|
|
6
|
+
}
|
|
7
|
+
export interface ISplitviewPanelProps<T extends {
|
|
8
|
+
[index: string]: any;
|
|
9
|
+
} = any> extends PanelParameters<T> {
|
|
10
|
+
api: SplitviewPanelApi;
|
|
11
|
+
containerApi: SplitviewApi;
|
|
12
|
+
}
|
|
13
|
+
export interface ISplitviewReactProps extends SplitviewOptions {
|
|
14
|
+
onReady: (event: SplitviewReadyEvent) => void;
|
|
15
|
+
components: Record<string, React.FunctionComponent<ISplitviewPanelProps>>;
|
|
16
|
+
}
|
|
17
|
+
export declare const SplitviewReact: React.ForwardRefExoticComponent<ISplitviewReactProps & 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.SplitviewReact = 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_SPLITVIEW.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.SplitviewReact = react_1.default.forwardRef(function (props, ref) {
|
|
48
|
+
var domRef = react_1.default.useRef(null);
|
|
49
|
+
var splitviewRef = 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_SPLITVIEW.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 (splitviewRef.current) {
|
|
63
|
+
splitviewRef.current.updateOptions(changes);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// not yet fully initialized
|
|
67
|
+
}
|
|
68
|
+
prevProps.current = props;
|
|
69
|
+
}, dockview_1.PROPERTY_KEYS_SPLITVIEW.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.ReactPanelView(options.id, options.name, props.components[options.name], { addPortal: addPortal });
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
var api = (0, dockview_1.createSplitview)(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
|
+
splitviewRef.current = api;
|
|
88
|
+
return function () {
|
|
89
|
+
splitviewRef.current = undefined;
|
|
90
|
+
api.dispose();
|
|
91
|
+
};
|
|
92
|
+
}, []);
|
|
93
|
+
react_1.default.useEffect(function () {
|
|
94
|
+
if (!splitviewRef.current) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
splitviewRef.current.updateOptions({
|
|
98
|
+
createComponent: function (options) {
|
|
99
|
+
return new view_1.ReactPanelView(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.SplitviewReact.displayName = 'SplitviewComponent';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SplitviewPanel } from 'dockview';
|
|
2
|
+
import { ReactPart, ReactPortalStore } from '../react';
|
|
3
|
+
import { ISplitviewPanelProps } from './splitview';
|
|
4
|
+
export declare class ReactPanelView extends SplitviewPanel {
|
|
5
|
+
private readonly reactComponent;
|
|
6
|
+
private readonly reactPortalStore;
|
|
7
|
+
constructor(id: string, component: string, reactComponent: React.FunctionComponent<ISplitviewPanelProps>, reactPortalStore: ReactPortalStore);
|
|
8
|
+
getComponent(): ReactPart<ISplitviewPanelProps>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
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.ReactPanelView = void 0;
|
|
19
|
+
var dockview_1 = require("dockview");
|
|
20
|
+
var react_1 = require("../react");
|
|
21
|
+
var ReactPanelView = /** @class */ (function (_super) {
|
|
22
|
+
__extends(ReactPanelView, _super);
|
|
23
|
+
function ReactPanelView(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
|
+
ReactPanelView.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
|
+
containerApi: new dockview_1.SplitviewApi(this._params.accessor),
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
return ReactPanelView;
|
|
38
|
+
}(dockview_1.SplitviewPanel));
|
|
39
|
+
exports.ReactPanelView = ReactPanelView;
|
package/dist/cjs/svg.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ExpandMore = exports.CloseButton = void 0;
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var CloseButton = function () { return (react_1.default.createElement("svg", { height: "11", width: "11", viewBox: "0 0 28 28", "aria-hidden": 'false', focusable: false, className: "dv-svg" },
|
|
9
|
+
react_1.default.createElement("path", { d: "M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z" }))); };
|
|
10
|
+
exports.CloseButton = CloseButton;
|
|
11
|
+
var ExpandMore = function () {
|
|
12
|
+
return (react_1.default.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 15", "aria-hidden": 'false', focusable: false, className: "dv-svg" },
|
|
13
|
+
react_1.default.createElement("path", { d: "M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z" })));
|
|
14
|
+
};
|
|
15
|
+
exports.ExpandMore = ExpandMore;
|