dockview 2.1.3 → 3.0.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/dockview/dockview.d.ts +0 -1
- package/dist/cjs/dockview/dockview.js +3 -3
- package/dist/cjs/dockview/headerActionsRenderer.js +1 -1
- package/dist/cjs/dockview/reactContentPart.js +1 -1
- package/dist/cjs/dockview/reactHeaderPart.js +1 -1
- package/dist/cjs/dockview/reactWatermarkPart.js +1 -1
- package/dist/cjs/gridview/gridview.d.ts +2 -7
- package/dist/cjs/gridview/gridview.js +47 -20
- package/dist/cjs/paneview/paneview.d.ts +2 -6
- package/dist/cjs/paneview/paneview.js +54 -36
- package/dist/cjs/paneview/view.d.ts +2 -2
- package/dist/cjs/splitview/splitview.d.ts +2 -7
- package/dist/cjs/splitview/splitview.js +52 -20
- package/dist/dockview.amd.js +295 -251
- package/dist/dockview.amd.js.map +1 -1
- package/dist/dockview.amd.min.js +2 -2
- package/dist/dockview.amd.min.js.map +1 -1
- package/dist/dockview.amd.min.noStyle.js +2 -2
- package/dist/dockview.amd.min.noStyle.js.map +1 -1
- package/dist/dockview.amd.noStyle.js +295 -251
- package/dist/dockview.amd.noStyle.js.map +1 -1
- package/dist/dockview.cjs.js +295 -251
- package/dist/dockview.cjs.js.map +1 -1
- package/dist/dockview.esm.js +291 -251
- package/dist/dockview.esm.js.map +1 -1
- package/dist/dockview.esm.min.js +2 -2
- package/dist/dockview.esm.min.js.map +1 -1
- package/dist/dockview.js +295 -251
- package/dist/dockview.js.map +1 -1
- package/dist/dockview.min.js +2 -2
- package/dist/dockview.min.js.map +1 -1
- package/dist/dockview.min.noStyle.js +2 -2
- package/dist/dockview.min.noStyle.js.map +1 -1
- package/dist/dockview.noStyle.js +295 -251
- package/dist/dockview.noStyle.js.map +1 -1
- package/dist/esm/dockview/dockview.d.ts +0 -1
- package/dist/esm/dockview/dockview.js +4 -4
- package/dist/esm/dockview/headerActionsRenderer.js +1 -1
- package/dist/esm/dockview/reactContentPart.js +1 -1
- package/dist/esm/dockview/reactHeaderPart.js +1 -1
- package/dist/esm/dockview/reactWatermarkPart.js +1 -1
- package/dist/esm/gridview/gridview.d.ts +2 -7
- package/dist/esm/gridview/gridview.js +36 -20
- package/dist/esm/paneview/paneview.d.ts +2 -6
- package/dist/esm/paneview/paneview.js +53 -33
- package/dist/esm/paneview/view.d.ts +2 -2
- package/dist/esm/splitview/splitview.d.ts +2 -7
- package/dist/esm/splitview/splitview.js +41 -20
- package/package.json +2 -2
package/dist/dockview.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview
|
|
3
|
-
* @version
|
|
3
|
+
* @version 3.0.0
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -130,6 +130,17 @@ class DockviewEvent {
|
|
|
130
130
|
this._defaultPrevented = true;
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
|
+
class AcceptableEvent {
|
|
134
|
+
constructor() {
|
|
135
|
+
this._isAccepted = false;
|
|
136
|
+
}
|
|
137
|
+
get isAccepted() {
|
|
138
|
+
return this._isAccepted;
|
|
139
|
+
}
|
|
140
|
+
accept() {
|
|
141
|
+
this._isAccepted = true;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
133
144
|
class LeakageMonitor {
|
|
134
145
|
constructor() {
|
|
135
146
|
this.events = new Map();
|
|
@@ -1521,6 +1532,23 @@ class Splitview {
|
|
|
1521
1532
|
}
|
|
1522
1533
|
}
|
|
1523
1534
|
|
|
1535
|
+
const PROPERTY_KEYS_SPLITVIEW = (() => {
|
|
1536
|
+
/**
|
|
1537
|
+
* by readong the keys from an empty value object TypeScript will error
|
|
1538
|
+
* when we add or remove new properties to `DockviewOptions`
|
|
1539
|
+
*/
|
|
1540
|
+
const properties = {
|
|
1541
|
+
orientation: undefined,
|
|
1542
|
+
descriptor: undefined,
|
|
1543
|
+
proportionalLayout: undefined,
|
|
1544
|
+
styles: undefined,
|
|
1545
|
+
margin: undefined,
|
|
1546
|
+
disableAutoResizing: undefined,
|
|
1547
|
+
className: undefined,
|
|
1548
|
+
};
|
|
1549
|
+
return Object.keys(properties);
|
|
1550
|
+
})();
|
|
1551
|
+
|
|
1524
1552
|
class Paneview extends CompositeDisposable {
|
|
1525
1553
|
get onDidAddView() {
|
|
1526
1554
|
return this.splitview.onDidAddView;
|
|
@@ -2650,6 +2678,21 @@ class Gridview {
|
|
|
2650
2678
|
}
|
|
2651
2679
|
}
|
|
2652
2680
|
|
|
2681
|
+
const PROPERTY_KEYS_GRIDVIEW = (() => {
|
|
2682
|
+
/**
|
|
2683
|
+
* by readong the keys from an empty value object TypeScript will error
|
|
2684
|
+
* when we add or remove new properties to `DockviewOptions`
|
|
2685
|
+
*/
|
|
2686
|
+
const properties = {
|
|
2687
|
+
disableAutoResizing: undefined,
|
|
2688
|
+
proportionalLayout: undefined,
|
|
2689
|
+
orientation: undefined,
|
|
2690
|
+
hideBorders: undefined,
|
|
2691
|
+
className: undefined,
|
|
2692
|
+
};
|
|
2693
|
+
return Object.keys(properties);
|
|
2694
|
+
})();
|
|
2695
|
+
|
|
2653
2696
|
class Resizable extends CompositeDisposable {
|
|
2654
2697
|
get element() {
|
|
2655
2698
|
return this._element;
|
|
@@ -3127,15 +3170,10 @@ class PaneviewApi {
|
|
|
3127
3170
|
* Invoked when a Drag'n'Drop event occurs that the component was unable to handle. Exposed for custom Drag'n'Drop functionality.
|
|
3128
3171
|
*/
|
|
3129
3172
|
get onDidDrop() {
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
emitter.dispose = () => {
|
|
3135
|
-
disposable.dispose();
|
|
3136
|
-
emitter.dispose();
|
|
3137
|
-
};
|
|
3138
|
-
return emitter.event;
|
|
3173
|
+
return this.component.onDidDrop;
|
|
3174
|
+
}
|
|
3175
|
+
get onUnhandledDragOverEvent() {
|
|
3176
|
+
return this.component.onUnhandledDragOverEvent;
|
|
3139
3177
|
}
|
|
3140
3178
|
constructor(component) {
|
|
3141
3179
|
this.component = component;
|
|
@@ -4062,6 +4100,28 @@ function calculateQuadrantAsPixels(overlayType, x, y, width, height, threshold)
|
|
|
4062
4100
|
return 'center';
|
|
4063
4101
|
}
|
|
4064
4102
|
|
|
4103
|
+
const PROPERTY_KEYS_PANEVIEW = (() => {
|
|
4104
|
+
/**
|
|
4105
|
+
* by readong the keys from an empty value object TypeScript will error
|
|
4106
|
+
* when we add or remove new properties to `DockviewOptions`
|
|
4107
|
+
*/
|
|
4108
|
+
const properties = {
|
|
4109
|
+
disableAutoResizing: undefined,
|
|
4110
|
+
disableDnd: undefined,
|
|
4111
|
+
className: undefined,
|
|
4112
|
+
};
|
|
4113
|
+
return Object.keys(properties);
|
|
4114
|
+
})();
|
|
4115
|
+
class PaneviewUnhandledDragOverEvent extends AcceptableEvent {
|
|
4116
|
+
constructor(nativeEvent, position, getData, panel) {
|
|
4117
|
+
super();
|
|
4118
|
+
this.nativeEvent = nativeEvent;
|
|
4119
|
+
this.position = position;
|
|
4120
|
+
this.getData = getData;
|
|
4121
|
+
this.panel = panel;
|
|
4122
|
+
}
|
|
4123
|
+
}
|
|
4124
|
+
|
|
4065
4125
|
class WillFocusEvent extends DockviewEvent {
|
|
4066
4126
|
constructor() {
|
|
4067
4127
|
super();
|
|
@@ -4485,6 +4545,9 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
4485
4545
|
this.accessor = accessor;
|
|
4486
4546
|
this._onDidDrop = new Emitter();
|
|
4487
4547
|
this.onDidDrop = this._onDidDrop.event;
|
|
4548
|
+
this._onUnhandledDragOverEvent = new Emitter();
|
|
4549
|
+
this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
|
|
4550
|
+
this.addDisposables(this._onDidDrop, this._onUnhandledDragOverEvent);
|
|
4488
4551
|
if (!disableDnd) {
|
|
4489
4552
|
this.initDragFeatures();
|
|
4490
4553
|
}
|
|
@@ -4511,7 +4574,7 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
4511
4574
|
overlayModel: {
|
|
4512
4575
|
activationSize: { type: 'percentage', value: 50 },
|
|
4513
4576
|
},
|
|
4514
|
-
canDisplayOverlay: (event) => {
|
|
4577
|
+
canDisplayOverlay: (event, position) => {
|
|
4515
4578
|
const data = getPaneData();
|
|
4516
4579
|
if (data) {
|
|
4517
4580
|
if (data.paneId !== this.id &&
|
|
@@ -4519,14 +4582,9 @@ class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
4519
4582
|
return true;
|
|
4520
4583
|
}
|
|
4521
4584
|
}
|
|
4522
|
-
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
getData: getPaneData,
|
|
4526
|
-
panel: this,
|
|
4527
|
-
});
|
|
4528
|
-
}
|
|
4529
|
-
return false;
|
|
4585
|
+
const firedEvent = new PaneviewUnhandledDragOverEvent(event, position, getPaneData, this);
|
|
4586
|
+
this._onUnhandledDragOverEvent.fire(firedEvent);
|
|
4587
|
+
return firedEvent.isAccepted;
|
|
4530
4588
|
},
|
|
4531
4589
|
});
|
|
4532
4590
|
this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {
|
|
@@ -4981,15 +5039,7 @@ class TabsContainer extends CompositeDisposable {
|
|
|
4981
5039
|
this._element.appendChild(this.leftActionsContainer);
|
|
4982
5040
|
this._element.appendChild(this.voidContainer.element);
|
|
4983
5041
|
this._element.appendChild(this.rightActionsContainer);
|
|
4984
|
-
this.addDisposables(this.
|
|
4985
|
-
if (e.api.group === this.group) {
|
|
4986
|
-
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
4987
|
-
}
|
|
4988
|
-
}), this.accessor.onDidRemovePanel((e) => {
|
|
4989
|
-
if (e.api.group === this.group) {
|
|
4990
|
-
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
4991
|
-
}
|
|
4992
|
-
}), this._onWillShowOverlay, this._onDrop, this._onTabDragStart, this._onGroupDragStart, this.voidContainer, this.voidContainer.onDragStart((event) => {
|
|
5042
|
+
this.addDisposables(this._onWillShowOverlay, this._onDrop, this._onTabDragStart, this._onGroupDragStart, this.voidContainer, this.voidContainer.onDragStart((event) => {
|
|
4993
5043
|
this._onGroupDragStart.fire({
|
|
4994
5044
|
nativeEvent: event,
|
|
4995
5045
|
group: this.group,
|
|
@@ -5034,20 +5084,6 @@ class TabsContainer extends CompositeDisposable {
|
|
|
5034
5084
|
setActive(_isGroupActive) {
|
|
5035
5085
|
// noop
|
|
5036
5086
|
}
|
|
5037
|
-
addTab(tab, index = this.tabs.length) {
|
|
5038
|
-
if (index < 0 || index > this.tabs.length) {
|
|
5039
|
-
throw new Error('invalid location');
|
|
5040
|
-
}
|
|
5041
|
-
this.tabContainer.insertBefore(tab.value.element, this.tabContainer.children[index]);
|
|
5042
|
-
this.tabs = [
|
|
5043
|
-
...this.tabs.slice(0, index),
|
|
5044
|
-
tab,
|
|
5045
|
-
...this.tabs.slice(index),
|
|
5046
|
-
];
|
|
5047
|
-
if (this.selectedIndex < 0) {
|
|
5048
|
-
this.selectedIndex = index;
|
|
5049
|
-
}
|
|
5050
|
-
}
|
|
5051
5087
|
delete(id) {
|
|
5052
5088
|
const index = this.tabs.findIndex((tab) => tab.value.panel.id === id);
|
|
5053
5089
|
const tabToRemove = this.tabs.splice(index, 1)[0];
|
|
@@ -5055,6 +5091,7 @@ class TabsContainer extends CompositeDisposable {
|
|
|
5055
5091
|
disposable.dispose();
|
|
5056
5092
|
value.dispose();
|
|
5057
5093
|
value.element.remove();
|
|
5094
|
+
this.updateClassnames();
|
|
5058
5095
|
}
|
|
5059
5096
|
setActivePanel(panel) {
|
|
5060
5097
|
this.tabs.forEach((tab) => {
|
|
@@ -5123,25 +5160,37 @@ class TabsContainer extends CompositeDisposable {
|
|
|
5123
5160
|
}
|
|
5124
5161
|
this.tabs = [];
|
|
5125
5162
|
}
|
|
5163
|
+
addTab(tab, index = this.tabs.length) {
|
|
5164
|
+
if (index < 0 || index > this.tabs.length) {
|
|
5165
|
+
throw new Error('invalid location');
|
|
5166
|
+
}
|
|
5167
|
+
this.tabContainer.insertBefore(tab.value.element, this.tabContainer.children[index]);
|
|
5168
|
+
this.tabs = [
|
|
5169
|
+
...this.tabs.slice(0, index),
|
|
5170
|
+
tab,
|
|
5171
|
+
...this.tabs.slice(index),
|
|
5172
|
+
];
|
|
5173
|
+
if (this.selectedIndex < 0) {
|
|
5174
|
+
this.selectedIndex = index;
|
|
5175
|
+
}
|
|
5176
|
+
this.updateClassnames();
|
|
5177
|
+
}
|
|
5178
|
+
updateClassnames() {
|
|
5179
|
+
toggleClass(this._element, 'dv-single-tab', this.size === 1);
|
|
5180
|
+
}
|
|
5126
5181
|
}
|
|
5127
5182
|
|
|
5128
|
-
class DockviewUnhandledDragOverEvent {
|
|
5129
|
-
get isAccepted() {
|
|
5130
|
-
return this._isAccepted;
|
|
5131
|
-
}
|
|
5183
|
+
class DockviewUnhandledDragOverEvent extends AcceptableEvent {
|
|
5132
5184
|
constructor(nativeEvent, target, position, getData, group) {
|
|
5185
|
+
super();
|
|
5133
5186
|
this.nativeEvent = nativeEvent;
|
|
5134
5187
|
this.target = target;
|
|
5135
5188
|
this.position = position;
|
|
5136
5189
|
this.getData = getData;
|
|
5137
5190
|
this.group = group;
|
|
5138
|
-
this._isAccepted = false;
|
|
5139
|
-
}
|
|
5140
|
-
accept() {
|
|
5141
|
-
this._isAccepted = true;
|
|
5142
5191
|
}
|
|
5143
5192
|
}
|
|
5144
|
-
const
|
|
5193
|
+
const PROPERTY_KEYS_DOCKVIEW = (() => {
|
|
5145
5194
|
/**
|
|
5146
5195
|
* by readong the keys from an empty value object TypeScript will error
|
|
5147
5196
|
* when we add or remove new properties to `DockviewOptions`
|
|
@@ -7641,10 +7690,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
7641
7690
|
this._api = new DockviewApi(this);
|
|
7642
7691
|
this.updateWatermark();
|
|
7643
7692
|
}
|
|
7644
|
-
dispose() {
|
|
7645
|
-
this.clear(); // explicitly clear the layout before cleaning up
|
|
7646
|
-
super.dispose();
|
|
7647
|
-
}
|
|
7648
7693
|
setVisible(panel, visible) {
|
|
7649
7694
|
switch (panel.api.location.type) {
|
|
7650
7695
|
case 'grid':
|
|
@@ -7828,30 +7873,29 @@ class DockviewComponent extends BaseGrid {
|
|
|
7828
7873
|
}
|
|
7829
7874
|
}
|
|
7830
7875
|
else if (this.getPanel(group.id)) {
|
|
7831
|
-
|
|
7876
|
+
group.model.renderContainer =
|
|
7877
|
+
this.overlayRenderContainer;
|
|
7878
|
+
returnedGroup = group;
|
|
7832
7879
|
if (floatingBox) {
|
|
7833
|
-
this.addFloatingGroup(
|
|
7880
|
+
this.addFloatingGroup(group, {
|
|
7834
7881
|
height: floatingBox.height,
|
|
7835
7882
|
width: floatingBox.width,
|
|
7836
7883
|
position: floatingBox,
|
|
7837
7884
|
});
|
|
7838
7885
|
}
|
|
7839
7886
|
else {
|
|
7840
|
-
this.doRemoveGroup(
|
|
7887
|
+
this.doRemoveGroup(group, {
|
|
7841
7888
|
skipDispose: true,
|
|
7842
7889
|
skipActive: true,
|
|
7843
7890
|
skipPopoutReturn: true,
|
|
7844
7891
|
});
|
|
7845
|
-
|
|
7846
|
-
this.overlayRenderContainer;
|
|
7847
|
-
removedGroup.model.location = { type: 'grid' };
|
|
7848
|
-
returnedGroup = removedGroup;
|
|
7892
|
+
group.model.location = { type: 'grid' };
|
|
7849
7893
|
this.movingLock(() => {
|
|
7850
7894
|
// suppress group add events since the group already exists
|
|
7851
|
-
this.doAddGroup(
|
|
7895
|
+
this.doAddGroup(group, [0]);
|
|
7852
7896
|
});
|
|
7853
7897
|
}
|
|
7854
|
-
this.doSetGroupAndPanelActive(
|
|
7898
|
+
this.doSetGroupAndPanelActive(group);
|
|
7855
7899
|
}
|
|
7856
7900
|
}));
|
|
7857
7901
|
this._popoutGroups.push(value);
|
|
@@ -8992,31 +9036,6 @@ class DockviewComponent extends BaseGrid {
|
|
|
8992
9036
|
}
|
|
8993
9037
|
}
|
|
8994
9038
|
|
|
8995
|
-
function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
|
|
8996
|
-
const Component = typeof componentName === 'string'
|
|
8997
|
-
? components[componentName]
|
|
8998
|
-
: undefined;
|
|
8999
|
-
const FrameworkComponent = typeof componentName === 'string'
|
|
9000
|
-
? frameworkComponents[componentName]
|
|
9001
|
-
: undefined;
|
|
9002
|
-
if (Component && FrameworkComponent) {
|
|
9003
|
-
throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
|
|
9004
|
-
}
|
|
9005
|
-
if (FrameworkComponent) {
|
|
9006
|
-
if (!createFrameworkComponent) {
|
|
9007
|
-
throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
|
|
9008
|
-
}
|
|
9009
|
-
return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
|
|
9010
|
-
}
|
|
9011
|
-
if (!Component) {
|
|
9012
|
-
if (fallback) {
|
|
9013
|
-
return fallback();
|
|
9014
|
-
}
|
|
9015
|
-
throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
|
|
9016
|
-
}
|
|
9017
|
-
return new Component(id, componentName);
|
|
9018
|
-
}
|
|
9019
|
-
|
|
9020
9039
|
class GridviewComponent extends BaseGrid {
|
|
9021
9040
|
get orientation() {
|
|
9022
9041
|
return this.gridview.orientation;
|
|
@@ -9034,10 +9053,13 @@ class GridviewComponent extends BaseGrid {
|
|
|
9034
9053
|
this._deserializer = value;
|
|
9035
9054
|
}
|
|
9036
9055
|
constructor(parentElement, options) {
|
|
9056
|
+
var _a;
|
|
9037
9057
|
super(parentElement, {
|
|
9038
|
-
proportionalLayout: options.proportionalLayout,
|
|
9058
|
+
proportionalLayout: (_a = options.proportionalLayout) !== null && _a !== void 0 ? _a : true,
|
|
9039
9059
|
orientation: options.orientation,
|
|
9040
|
-
styles: options.
|
|
9060
|
+
styles: options.hideBorders
|
|
9061
|
+
? { separatorBorder: 'transparent' }
|
|
9062
|
+
: undefined,
|
|
9041
9063
|
disableAutoResizing: options.disableAutoResizing,
|
|
9042
9064
|
className: options.className,
|
|
9043
9065
|
});
|
|
@@ -9057,12 +9079,6 @@ class GridviewComponent extends BaseGrid {
|
|
|
9057
9079
|
}), this.onDidActiveChange((event) => {
|
|
9058
9080
|
this._onDidActiveGroupChange.fire(event);
|
|
9059
9081
|
}));
|
|
9060
|
-
if (!this.options.components) {
|
|
9061
|
-
this.options.components = {};
|
|
9062
|
-
}
|
|
9063
|
-
if (!this.options.frameworkComponents) {
|
|
9064
|
-
this.options.frameworkComponents = {};
|
|
9065
|
-
}
|
|
9066
9082
|
}
|
|
9067
9083
|
updateOptions(options) {
|
|
9068
9084
|
super.updateOptions(options);
|
|
@@ -9112,14 +9128,11 @@ class GridviewComponent extends BaseGrid {
|
|
|
9112
9128
|
const height = this.height;
|
|
9113
9129
|
this.gridview.deserialize(grid, {
|
|
9114
9130
|
fromJSON: (node) => {
|
|
9115
|
-
var _a, _b;
|
|
9116
9131
|
const { data } = node;
|
|
9117
|
-
const view =
|
|
9118
|
-
|
|
9119
|
-
|
|
9120
|
-
|
|
9121
|
-
}
|
|
9122
|
-
: undefined);
|
|
9132
|
+
const view = this.options.createComponent({
|
|
9133
|
+
id: data.id,
|
|
9134
|
+
name: data.component,
|
|
9135
|
+
});
|
|
9123
9136
|
queue.push(() => view.init({
|
|
9124
9137
|
params: data.params,
|
|
9125
9138
|
minimumWidth: data.minimumWidth,
|
|
@@ -9197,7 +9210,7 @@ class GridviewComponent extends BaseGrid {
|
|
|
9197
9210
|
this.doAddGroup(removedPanel, relativeLocation, options.size);
|
|
9198
9211
|
}
|
|
9199
9212
|
addPanel(options) {
|
|
9200
|
-
var _a, _b, _c, _d
|
|
9213
|
+
var _a, _b, _c, _d;
|
|
9201
9214
|
let relativeLocation = (_a = options.location) !== null && _a !== void 0 ? _a : [0];
|
|
9202
9215
|
if ((_b = options.position) === null || _b === void 0 ? void 0 : _b.referencePanel) {
|
|
9203
9216
|
const referenceGroup = (_c = this._groups.get(options.position.referencePanel)) === null || _c === void 0 ? void 0 : _c.value;
|
|
@@ -9213,14 +9226,12 @@ class GridviewComponent extends BaseGrid {
|
|
|
9213
9226
|
relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
|
|
9214
9227
|
}
|
|
9215
9228
|
}
|
|
9216
|
-
const view =
|
|
9217
|
-
|
|
9218
|
-
|
|
9219
|
-
|
|
9220
|
-
}
|
|
9221
|
-
: undefined);
|
|
9229
|
+
const view = this.options.createComponent({
|
|
9230
|
+
id: options.id,
|
|
9231
|
+
name: options.component,
|
|
9232
|
+
});
|
|
9222
9233
|
view.init({
|
|
9223
|
-
params: (
|
|
9234
|
+
params: (_d = options.params) !== null && _d !== void 0 ? _d : {},
|
|
9224
9235
|
minimumWidth: options.minimumWidth,
|
|
9225
9236
|
maximumWidth: options.maximumWidth,
|
|
9226
9237
|
minimumHeight: options.minimumHeight,
|
|
@@ -9348,12 +9359,6 @@ class SplitviewComponent extends Resizable {
|
|
|
9348
9359
|
this._classNames = new Classnames(this.element);
|
|
9349
9360
|
this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
|
|
9350
9361
|
this._options = options;
|
|
9351
|
-
if (!options.components) {
|
|
9352
|
-
options.components = {};
|
|
9353
|
-
}
|
|
9354
|
-
if (!options.frameworkComponents) {
|
|
9355
|
-
options.frameworkComponents = {};
|
|
9356
|
-
}
|
|
9357
9362
|
this.splitview = new Splitview(this.element, options);
|
|
9358
9363
|
this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
|
|
9359
9364
|
}
|
|
@@ -9416,18 +9421,17 @@ class SplitviewComponent extends Resizable {
|
|
|
9416
9421
|
return this.panels.find((view) => view.id === id);
|
|
9417
9422
|
}
|
|
9418
9423
|
addPanel(options) {
|
|
9419
|
-
var _a
|
|
9424
|
+
var _a;
|
|
9420
9425
|
if (this._panels.has(options.id)) {
|
|
9421
9426
|
throw new Error(`panel ${options.id} already exists`);
|
|
9422
9427
|
}
|
|
9423
|
-
const view =
|
|
9424
|
-
|
|
9425
|
-
|
|
9426
|
-
|
|
9427
|
-
: undefined);
|
|
9428
|
+
const view = this.options.createComponent({
|
|
9429
|
+
id: options.id,
|
|
9430
|
+
name: options.component,
|
|
9431
|
+
});
|
|
9428
9432
|
view.orientation = this.splitview.orientation;
|
|
9429
9433
|
view.init({
|
|
9430
|
-
params: (
|
|
9434
|
+
params: (_a = options.params) !== null && _a !== void 0 ? _a : {},
|
|
9431
9435
|
minimumSize: options.minimumSize,
|
|
9432
9436
|
maximumSize: options.maximumSize,
|
|
9433
9437
|
snap: options.snap,
|
|
@@ -9489,17 +9493,14 @@ class SplitviewComponent extends Resizable {
|
|
|
9489
9493
|
descriptor: {
|
|
9490
9494
|
size,
|
|
9491
9495
|
views: views.map((view) => {
|
|
9492
|
-
var _a, _b;
|
|
9493
9496
|
const data = view.data;
|
|
9494
9497
|
if (this._panels.has(data.id)) {
|
|
9495
9498
|
throw new Error(`panel ${data.id} already exists`);
|
|
9496
9499
|
}
|
|
9497
|
-
const panel =
|
|
9498
|
-
|
|
9499
|
-
|
|
9500
|
-
|
|
9501
|
-
}
|
|
9502
|
-
: undefined);
|
|
9500
|
+
const panel = this.options.createComponent({
|
|
9501
|
+
id: data.id,
|
|
9502
|
+
name: data.component,
|
|
9503
|
+
});
|
|
9503
9504
|
queue.push(() => {
|
|
9504
9505
|
var _a;
|
|
9505
9506
|
panel.init({
|
|
@@ -9682,16 +9683,12 @@ class PaneviewComponent extends Resizable {
|
|
|
9682
9683
|
this.onDidAddView = this._onDidAddView.event;
|
|
9683
9684
|
this._onDidRemoveView = new Emitter();
|
|
9684
9685
|
this.onDidRemoveView = this._onDidRemoveView.event;
|
|
9685
|
-
this.
|
|
9686
|
+
this._onUnhandledDragOverEvent = new Emitter();
|
|
9687
|
+
this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
|
|
9688
|
+
this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView, this._onUnhandledDragOverEvent);
|
|
9686
9689
|
this._classNames = new Classnames(this.element);
|
|
9687
9690
|
this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
|
|
9688
9691
|
this._options = options;
|
|
9689
|
-
if (!options.components) {
|
|
9690
|
-
options.components = {};
|
|
9691
|
-
}
|
|
9692
|
-
if (!options.frameworkComponents) {
|
|
9693
|
-
options.frameworkComponents = {};
|
|
9694
|
-
}
|
|
9695
9692
|
this.paneview = new Paneview(this.element, {
|
|
9696
9693
|
// only allow paneview in the vertical orientation for now
|
|
9697
9694
|
orientation: Orientation.VERTICAL,
|
|
@@ -9716,22 +9713,19 @@ class PaneviewComponent extends Resizable {
|
|
|
9716
9713
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
9717
9714
|
}
|
|
9718
9715
|
addPanel(options) {
|
|
9719
|
-
var _a
|
|
9720
|
-
const body =
|
|
9721
|
-
|
|
9722
|
-
|
|
9723
|
-
|
|
9724
|
-
: undefined);
|
|
9716
|
+
var _a;
|
|
9717
|
+
const body = this.options.createComponent({
|
|
9718
|
+
id: options.id,
|
|
9719
|
+
name: options.component,
|
|
9720
|
+
});
|
|
9725
9721
|
let header;
|
|
9726
|
-
if (options.headerComponent) {
|
|
9727
|
-
header =
|
|
9728
|
-
|
|
9729
|
-
|
|
9730
|
-
|
|
9731
|
-
}
|
|
9732
|
-
: undefined);
|
|
9722
|
+
if (options.headerComponent && this.options.createHeaderComponent) {
|
|
9723
|
+
header = this.options.createHeaderComponent({
|
|
9724
|
+
id: options.id,
|
|
9725
|
+
name: options.headerComponent,
|
|
9726
|
+
});
|
|
9733
9727
|
}
|
|
9734
|
-
|
|
9728
|
+
if (!header) {
|
|
9735
9729
|
header = new DefaultHeader();
|
|
9736
9730
|
}
|
|
9737
9731
|
const view = new PaneFramework({
|
|
@@ -9749,7 +9743,7 @@ class PaneviewComponent extends Resizable {
|
|
|
9749
9743
|
const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;
|
|
9750
9744
|
const index = typeof options.index === 'number' ? options.index : undefined;
|
|
9751
9745
|
view.init({
|
|
9752
|
-
params: (
|
|
9746
|
+
params: (_a = options.params) !== null && _a !== void 0 ? _a : {},
|
|
9753
9747
|
minimumBodySize: options.minimumBodySize,
|
|
9754
9748
|
maximumBodySize: options.maximumBodySize,
|
|
9755
9749
|
isExpanded: options.isExpanded,
|
|
@@ -9814,24 +9808,20 @@ class PaneviewComponent extends Resizable {
|
|
|
9814
9808
|
descriptor: {
|
|
9815
9809
|
size,
|
|
9816
9810
|
views: views.map((view) => {
|
|
9817
|
-
var _a, _b, _c, _d;
|
|
9818
9811
|
const data = view.data;
|
|
9819
|
-
const body =
|
|
9820
|
-
|
|
9821
|
-
|
|
9822
|
-
|
|
9823
|
-
}
|
|
9824
|
-
: undefined);
|
|
9812
|
+
const body = this.options.createComponent({
|
|
9813
|
+
id: data.id,
|
|
9814
|
+
name: data.component,
|
|
9815
|
+
});
|
|
9825
9816
|
let header;
|
|
9826
|
-
if (data.headerComponent
|
|
9827
|
-
|
|
9828
|
-
|
|
9829
|
-
|
|
9830
|
-
|
|
9831
|
-
|
|
9832
|
-
: undefined);
|
|
9817
|
+
if (data.headerComponent &&
|
|
9818
|
+
this.options.createHeaderComponent) {
|
|
9819
|
+
header = this.options.createHeaderComponent({
|
|
9820
|
+
id: data.id,
|
|
9821
|
+
name: data.headerComponent,
|
|
9822
|
+
});
|
|
9833
9823
|
}
|
|
9834
|
-
|
|
9824
|
+
if (!header) {
|
|
9835
9825
|
header = new DefaultHeader();
|
|
9836
9826
|
}
|
|
9837
9827
|
const panel = new PaneFramework({
|
|
@@ -9879,9 +9869,11 @@ class PaneviewComponent extends Resizable {
|
|
|
9879
9869
|
this.paneview.dispose();
|
|
9880
9870
|
}
|
|
9881
9871
|
doAddPanel(panel) {
|
|
9882
|
-
const disposable = panel.onDidDrop((event) => {
|
|
9872
|
+
const disposable = new CompositeDisposable(panel.onDidDrop((event) => {
|
|
9883
9873
|
this._onDidDrop.fire(event);
|
|
9884
|
-
})
|
|
9874
|
+
}), panel.onUnhandledDragOverEvent((event) => {
|
|
9875
|
+
this._onUnhandledDragOverEvent.fire(event);
|
|
9876
|
+
}));
|
|
9885
9877
|
this._viewDisposables.set(panel.id, disposable);
|
|
9886
9878
|
}
|
|
9887
9879
|
doRemovePanel(panel) {
|
|
@@ -10164,7 +10156,7 @@ class ReactPanelContentPart {
|
|
|
10164
10156
|
this._onDidBlur = new Emitter();
|
|
10165
10157
|
this.onDidBlur = this._onDidBlur.event;
|
|
10166
10158
|
this._element = document.createElement('div');
|
|
10167
|
-
this._element.className = '
|
|
10159
|
+
this._element.className = 'dv-react-part';
|
|
10168
10160
|
this._element.style.height = '100%';
|
|
10169
10161
|
this._element.style.width = '100%';
|
|
10170
10162
|
}
|
|
@@ -10202,7 +10194,7 @@ class ReactPanelHeaderPart {
|
|
|
10202
10194
|
this.component = component;
|
|
10203
10195
|
this.reactPortalStore = reactPortalStore;
|
|
10204
10196
|
this._element = document.createElement('div');
|
|
10205
|
-
this._element.className = '
|
|
10197
|
+
this._element.className = 'dv-react-part';
|
|
10206
10198
|
this._element.style.height = '100%';
|
|
10207
10199
|
this._element.style.width = '100%';
|
|
10208
10200
|
}
|
|
@@ -10238,7 +10230,7 @@ class ReactWatermarkPart {
|
|
|
10238
10230
|
this.component = component;
|
|
10239
10231
|
this.reactPortalStore = reactPortalStore;
|
|
10240
10232
|
this._element = document.createElement('div');
|
|
10241
|
-
this._element.className = '
|
|
10233
|
+
this._element.className = 'dv-react-part';
|
|
10242
10234
|
this._element.style.height = '100%';
|
|
10243
10235
|
this._element.style.width = '100%';
|
|
10244
10236
|
}
|
|
@@ -10280,7 +10272,7 @@ class ReactHeaderActionsRendererPart {
|
|
|
10280
10272
|
this._group = _group;
|
|
10281
10273
|
this.mutableDisposable = new MutableDisposable();
|
|
10282
10274
|
this._element = document.createElement('div');
|
|
10283
|
-
this._element.className = '
|
|
10275
|
+
this._element.className = 'dv-react-part';
|
|
10284
10276
|
this._element.style.height = '100%';
|
|
10285
10277
|
this._element.style.width = '100%';
|
|
10286
10278
|
}
|
|
@@ -10339,8 +10331,8 @@ function createGroupControlElement(component, store) {
|
|
|
10339
10331
|
: undefined;
|
|
10340
10332
|
}
|
|
10341
10333
|
const DEFAULT_REACT_TAB = 'props.defaultTabComponent';
|
|
10342
|
-
function extractCoreOptions(props) {
|
|
10343
|
-
const coreOptions =
|
|
10334
|
+
function extractCoreOptions$3(props) {
|
|
10335
|
+
const coreOptions = PROPERTY_KEYS_DOCKVIEW.reduce((obj, key) => {
|
|
10344
10336
|
if (key in props) {
|
|
10345
10337
|
obj[key] = props[key];
|
|
10346
10338
|
}
|
|
@@ -10356,7 +10348,7 @@ const DockviewReact = React.forwardRef((props, ref) => {
|
|
|
10356
10348
|
const prevProps = React.useRef({});
|
|
10357
10349
|
React.useEffect(() => {
|
|
10358
10350
|
const changes = {};
|
|
10359
|
-
|
|
10351
|
+
PROPERTY_KEYS_DOCKVIEW.forEach((propKey) => {
|
|
10360
10352
|
const key = propKey;
|
|
10361
10353
|
const propValue = props[key];
|
|
10362
10354
|
if (key in props && propValue !== prevProps.current[key]) {
|
|
@@ -10367,7 +10359,7 @@ const DockviewReact = React.forwardRef((props, ref) => {
|
|
|
10367
10359
|
dockviewRef.current.updateOptions(changes);
|
|
10368
10360
|
}
|
|
10369
10361
|
prevProps.current = props;
|
|
10370
|
-
},
|
|
10362
|
+
}, PROPERTY_KEYS_DOCKVIEW.map((key) => props[key]));
|
|
10371
10363
|
React.useEffect(() => {
|
|
10372
10364
|
var _a;
|
|
10373
10365
|
if (!domRef.current) {
|
|
@@ -10403,7 +10395,7 @@ const DockviewReact = React.forwardRef((props, ref) => {
|
|
|
10403
10395
|
? DEFAULT_REACT_TAB
|
|
10404
10396
|
: undefined,
|
|
10405
10397
|
};
|
|
10406
|
-
const api = createDockview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
|
|
10398
|
+
const api = createDockview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions$3(props)), frameworkOptions));
|
|
10407
10399
|
const { clientWidth, clientHeight } = domRef.current;
|
|
10408
10400
|
api.layout(clientWidth, clientHeight);
|
|
10409
10401
|
if (props.onReady) {
|
|
@@ -10614,31 +10606,47 @@ class ReactPanelView extends SplitviewPanel {
|
|
|
10614
10606
|
}
|
|
10615
10607
|
}
|
|
10616
10608
|
|
|
10609
|
+
function extractCoreOptions$2(props) {
|
|
10610
|
+
const coreOptions = PROPERTY_KEYS_SPLITVIEW.reduce((obj, key) => {
|
|
10611
|
+
if (key in props) {
|
|
10612
|
+
obj[key] = props[key];
|
|
10613
|
+
}
|
|
10614
|
+
return obj;
|
|
10615
|
+
}, {});
|
|
10616
|
+
return coreOptions;
|
|
10617
|
+
}
|
|
10617
10618
|
const SplitviewReact = React.forwardRef((props, ref) => {
|
|
10618
10619
|
const domRef = React.useRef(null);
|
|
10619
10620
|
const splitviewRef = React.useRef();
|
|
10620
10621
|
const [portals, addPortal] = usePortalsLifecycle();
|
|
10621
10622
|
React.useImperativeHandle(ref, () => domRef.current, []);
|
|
10623
|
+
const prevProps = React.useRef({});
|
|
10622
10624
|
React.useEffect(() => {
|
|
10623
|
-
|
|
10624
|
-
|
|
10625
|
-
|
|
10626
|
-
|
|
10627
|
-
|
|
10628
|
-
|
|
10629
|
-
|
|
10630
|
-
return new ReactPanelView(id, componentId, component, {
|
|
10631
|
-
addPortal,
|
|
10632
|
-
});
|
|
10633
|
-
},
|
|
10634
|
-
},
|
|
10635
|
-
proportionalLayout: typeof props.proportionalLayout === 'boolean'
|
|
10636
|
-
? props.proportionalLayout
|
|
10637
|
-
: true,
|
|
10638
|
-
styles: props.hideBorders
|
|
10639
|
-
? { separatorBorder: 'transparent' }
|
|
10640
|
-
: undefined,
|
|
10625
|
+
const changes = {};
|
|
10626
|
+
PROPERTY_KEYS_SPLITVIEW.forEach((propKey) => {
|
|
10627
|
+
const key = propKey;
|
|
10628
|
+
const propValue = props[key];
|
|
10629
|
+
if (key in props && propValue !== prevProps.current[key]) {
|
|
10630
|
+
changes[key] = propValue;
|
|
10631
|
+
}
|
|
10641
10632
|
});
|
|
10633
|
+
if (splitviewRef.current) {
|
|
10634
|
+
splitviewRef.current.updateOptions(changes);
|
|
10635
|
+
}
|
|
10636
|
+
prevProps.current = props;
|
|
10637
|
+
}, PROPERTY_KEYS_SPLITVIEW.map((key) => props[key]));
|
|
10638
|
+
React.useEffect(() => {
|
|
10639
|
+
if (!domRef.current) {
|
|
10640
|
+
return () => {
|
|
10641
|
+
// noop
|
|
10642
|
+
};
|
|
10643
|
+
}
|
|
10644
|
+
const frameworkOptions = {
|
|
10645
|
+
createComponent: (options) => {
|
|
10646
|
+
return new ReactPanelView(options.id, options.name, props.components[options.name], { addPortal });
|
|
10647
|
+
},
|
|
10648
|
+
};
|
|
10649
|
+
const api = createSplitview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions$2(props)), frameworkOptions));
|
|
10642
10650
|
const { clientWidth, clientHeight } = domRef.current;
|
|
10643
10651
|
api.layout(clientWidth, clientHeight);
|
|
10644
10652
|
if (props.onReady) {
|
|
@@ -10654,7 +10662,9 @@ const SplitviewReact = React.forwardRef((props, ref) => {
|
|
|
10654
10662
|
return;
|
|
10655
10663
|
}
|
|
10656
10664
|
splitviewRef.current.updateOptions({
|
|
10657
|
-
|
|
10665
|
+
createComponent: (options) => {
|
|
10666
|
+
return new ReactPanelView(options.id, options.name, props.components[options.name], { addPortal });
|
|
10667
|
+
},
|
|
10658
10668
|
});
|
|
10659
10669
|
}, [props.components]);
|
|
10660
10670
|
return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
@@ -10679,36 +10689,47 @@ class ReactGridPanelView extends GridviewPanel {
|
|
|
10679
10689
|
}
|
|
10680
10690
|
}
|
|
10681
10691
|
|
|
10692
|
+
function extractCoreOptions$1(props) {
|
|
10693
|
+
const coreOptions = PROPERTY_KEYS_GRIDVIEW.reduce((obj, key) => {
|
|
10694
|
+
if (key in props) {
|
|
10695
|
+
obj[key] = props[key];
|
|
10696
|
+
}
|
|
10697
|
+
return obj;
|
|
10698
|
+
}, {});
|
|
10699
|
+
return coreOptions;
|
|
10700
|
+
}
|
|
10682
10701
|
const GridviewReact = React.forwardRef((props, ref) => {
|
|
10683
10702
|
const domRef = React.useRef(null);
|
|
10684
10703
|
const gridviewRef = React.useRef();
|
|
10685
10704
|
const [portals, addPortal] = usePortalsLifecycle();
|
|
10686
10705
|
React.useImperativeHandle(ref, () => domRef.current, []);
|
|
10706
|
+
const prevProps = React.useRef({});
|
|
10707
|
+
React.useEffect(() => {
|
|
10708
|
+
const changes = {};
|
|
10709
|
+
PROPERTY_KEYS_GRIDVIEW.forEach((propKey) => {
|
|
10710
|
+
const key = propKey;
|
|
10711
|
+
const propValue = props[key];
|
|
10712
|
+
if (key in props && propValue !== prevProps.current[key]) {
|
|
10713
|
+
changes[key] = propValue;
|
|
10714
|
+
}
|
|
10715
|
+
});
|
|
10716
|
+
if (gridviewRef.current) {
|
|
10717
|
+
gridviewRef.current.updateOptions(changes);
|
|
10718
|
+
}
|
|
10719
|
+
prevProps.current = props;
|
|
10720
|
+
}, PROPERTY_KEYS_GRIDVIEW.map((key) => props[key]));
|
|
10687
10721
|
React.useEffect(() => {
|
|
10688
|
-
var _a;
|
|
10689
10722
|
if (!domRef.current) {
|
|
10690
10723
|
return () => {
|
|
10691
10724
|
// noop
|
|
10692
10725
|
};
|
|
10693
10726
|
}
|
|
10694
|
-
const
|
|
10695
|
-
|
|
10696
|
-
|
|
10697
|
-
? props.proportionalLayout
|
|
10698
|
-
: true,
|
|
10699
|
-
orientation: (_a = props.orientation) !== null && _a !== void 0 ? _a : Orientation.HORIZONTAL,
|
|
10700
|
-
frameworkComponents: props.components,
|
|
10701
|
-
frameworkComponentFactory: {
|
|
10702
|
-
createComponent: (id, componentId, component) => {
|
|
10703
|
-
return new ReactGridPanelView(id, componentId, component, {
|
|
10704
|
-
addPortal,
|
|
10705
|
-
});
|
|
10706
|
-
},
|
|
10727
|
+
const frameworkOptions = {
|
|
10728
|
+
createComponent: (options) => {
|
|
10729
|
+
return new ReactGridPanelView(options.id, options.name, props.components[options.name], { addPortal });
|
|
10707
10730
|
},
|
|
10708
|
-
|
|
10709
|
-
|
|
10710
|
-
: undefined,
|
|
10711
|
-
});
|
|
10731
|
+
};
|
|
10732
|
+
const api = createGridview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions$1(props)), frameworkOptions));
|
|
10712
10733
|
const { clientWidth, clientHeight } = domRef.current;
|
|
10713
10734
|
api.layout(clientWidth, clientHeight);
|
|
10714
10735
|
if (props.onReady) {
|
|
@@ -10724,7 +10745,9 @@ const GridviewReact = React.forwardRef((props, ref) => {
|
|
|
10724
10745
|
return;
|
|
10725
10746
|
}
|
|
10726
10747
|
gridviewRef.current.updateOptions({
|
|
10727
|
-
|
|
10748
|
+
createComponent: (options) => {
|
|
10749
|
+
return new ReactGridPanelView(options.id, options.name, props.components[options.name], { addPortal });
|
|
10750
|
+
},
|
|
10728
10751
|
});
|
|
10729
10752
|
}, [props.components]);
|
|
10730
10753
|
return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
@@ -10766,32 +10789,52 @@ class PanePanelSection {
|
|
|
10766
10789
|
}
|
|
10767
10790
|
}
|
|
10768
10791
|
|
|
10792
|
+
function extractCoreOptions(props) {
|
|
10793
|
+
const coreOptions = PROPERTY_KEYS_PANEVIEW.reduce((obj, key) => {
|
|
10794
|
+
if (key in props) {
|
|
10795
|
+
obj[key] = props[key];
|
|
10796
|
+
}
|
|
10797
|
+
return obj;
|
|
10798
|
+
}, {});
|
|
10799
|
+
return coreOptions;
|
|
10800
|
+
}
|
|
10769
10801
|
const PaneviewReact = React.forwardRef((props, ref) => {
|
|
10770
10802
|
const domRef = React.useRef(null);
|
|
10771
10803
|
const paneviewRef = React.useRef();
|
|
10772
10804
|
const [portals, addPortal] = usePortalsLifecycle();
|
|
10773
10805
|
React.useImperativeHandle(ref, () => domRef.current, []);
|
|
10806
|
+
const prevProps = React.useRef({});
|
|
10774
10807
|
React.useEffect(() => {
|
|
10775
|
-
const
|
|
10776
|
-
|
|
10808
|
+
const changes = {};
|
|
10809
|
+
PROPERTY_KEYS_PANEVIEW.forEach((propKey) => {
|
|
10810
|
+
const key = propKey;
|
|
10811
|
+
const propValue = props[key];
|
|
10812
|
+
if (key in props && propValue !== prevProps.current[key]) {
|
|
10813
|
+
changes[key] = propValue;
|
|
10814
|
+
}
|
|
10777
10815
|
});
|
|
10778
|
-
|
|
10779
|
-
|
|
10780
|
-
|
|
10781
|
-
|
|
10782
|
-
|
|
10783
|
-
|
|
10784
|
-
|
|
10785
|
-
|
|
10786
|
-
|
|
10787
|
-
|
|
10788
|
-
|
|
10789
|
-
|
|
10790
|
-
|
|
10791
|
-
|
|
10816
|
+
if (paneviewRef.current) {
|
|
10817
|
+
paneviewRef.current.updateOptions(changes);
|
|
10818
|
+
}
|
|
10819
|
+
prevProps.current = props;
|
|
10820
|
+
}, PROPERTY_KEYS_PANEVIEW.map((key) => props[key]));
|
|
10821
|
+
React.useEffect(() => {
|
|
10822
|
+
var _a;
|
|
10823
|
+
if (!domRef.current) {
|
|
10824
|
+
return () => {
|
|
10825
|
+
// noop
|
|
10826
|
+
};
|
|
10827
|
+
}
|
|
10828
|
+
const headerComponents = (_a = props.headerComponents) !== null && _a !== void 0 ? _a : {};
|
|
10829
|
+
const frameworkOptions = {
|
|
10830
|
+
createComponent: (options) => {
|
|
10831
|
+
return new PanePanelSection(options.id, props.components[options.name], { addPortal });
|
|
10792
10832
|
},
|
|
10793
|
-
|
|
10794
|
-
|
|
10833
|
+
createHeaderComponent: (options) => {
|
|
10834
|
+
return new PanePanelSection(options.id, headerComponents[options.name], { addPortal });
|
|
10835
|
+
},
|
|
10836
|
+
};
|
|
10837
|
+
const api = createPaneview(domRef.current, Object.assign(Object.assign({}, extractCoreOptions(props)), frameworkOptions));
|
|
10795
10838
|
const { clientWidth, clientHeight } = domRef.current;
|
|
10796
10839
|
api.layout(clientWidth, clientHeight);
|
|
10797
10840
|
if (props.onReady) {
|
|
@@ -10807,44 +10850,41 @@ const PaneviewReact = React.forwardRef((props, ref) => {
|
|
|
10807
10850
|
return;
|
|
10808
10851
|
}
|
|
10809
10852
|
paneviewRef.current.updateOptions({
|
|
10810
|
-
|
|
10853
|
+
createComponent: (options) => {
|
|
10854
|
+
return new PanePanelSection(options.id, props.components[options.name], { addPortal });
|
|
10855
|
+
},
|
|
10811
10856
|
});
|
|
10812
10857
|
}, [props.components]);
|
|
10813
10858
|
React.useEffect(() => {
|
|
10859
|
+
var _a;
|
|
10814
10860
|
if (!paneviewRef.current) {
|
|
10815
10861
|
return;
|
|
10816
10862
|
}
|
|
10863
|
+
const headerComponents = (_a = props.headerComponents) !== null && _a !== void 0 ? _a : {};
|
|
10817
10864
|
paneviewRef.current.updateOptions({
|
|
10818
|
-
|
|
10865
|
+
createHeaderComponent: (options) => {
|
|
10866
|
+
return new PanePanelSection(options.id, headerComponents[options.name], { addPortal });
|
|
10867
|
+
},
|
|
10819
10868
|
});
|
|
10820
10869
|
}, [props.headerComponents]);
|
|
10821
10870
|
React.useEffect(() => {
|
|
10822
10871
|
if (!paneviewRef.current) {
|
|
10823
10872
|
return () => {
|
|
10824
|
-
//
|
|
10873
|
+
// noop
|
|
10825
10874
|
};
|
|
10826
10875
|
}
|
|
10827
|
-
const
|
|
10828
|
-
const disposable = api.onDidDrop((event) => {
|
|
10876
|
+
const disposable = paneviewRef.current.onDidDrop((event) => {
|
|
10829
10877
|
if (props.onDidDrop) {
|
|
10830
|
-
props.onDidDrop(
|
|
10878
|
+
props.onDidDrop(event);
|
|
10831
10879
|
}
|
|
10832
10880
|
});
|
|
10833
10881
|
return () => {
|
|
10834
10882
|
disposable.dispose();
|
|
10835
10883
|
};
|
|
10836
10884
|
}, [props.onDidDrop]);
|
|
10837
|
-
React.useEffect(() => {
|
|
10838
|
-
if (!paneviewRef.current) {
|
|
10839
|
-
return;
|
|
10840
|
-
}
|
|
10841
|
-
paneviewRef.current.updateOptions({
|
|
10842
|
-
showDndOverlay: props.showDndOverlay,
|
|
10843
|
-
});
|
|
10844
|
-
}, [props.showDndOverlay]);
|
|
10845
10885
|
return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
|
|
10846
10886
|
});
|
|
10847
10887
|
PaneviewReact.displayName = 'PaneviewComponent';
|
|
10848
10888
|
|
|
10849
|
-
export { BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable, DockviewDefaultTab, DockviewDidDropEvent, Disposable as DockviewDisposable, Emitter as DockviewEmitter, Event as DockviewEvent, DockviewGroupPanel, DockviewGroupPanelModel, MutableDisposable as DockviewMutableDisposable, DockviewPanel, DockviewReact, DockviewUnhandledDragOverEvent, DockviewWillDropEvent, DraggablePaneviewPanel, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, LayoutPriority, Orientation,
|
|
10889
|
+
export { BaseGrid, ContentContainer, DefaultDockviewDeserialzier, DefaultTab, DockviewApi, DockviewComponent, CompositeDisposable as DockviewCompositeDisposable, DockviewDefaultTab, DockviewDidDropEvent, Disposable as DockviewDisposable, Emitter as DockviewEmitter, Event as DockviewEvent, DockviewGroupPanel, DockviewGroupPanelModel, MutableDisposable as DockviewMutableDisposable, DockviewPanel, DockviewReact, DockviewUnhandledDragOverEvent, DockviewWillDropEvent, DraggablePaneviewPanel, Gridview, GridviewApi, GridviewComponent, GridviewPanel, GridviewReact, LayoutPriority, Orientation, PROPERTY_KEYS_DOCKVIEW, PROPERTY_KEYS_GRIDVIEW, PROPERTY_KEYS_PANEVIEW, PROPERTY_KEYS_SPLITVIEW, PaneFramework, PaneTransfer, PanelTransfer, Paneview, PaneviewApi, PaneviewComponent, PaneviewPanel, PaneviewReact, PaneviewUnhandledDragOverEvent, ReactPart, ReactPartContext, SashState, Sizing, Splitview, SplitviewApi, SplitviewComponent, SplitviewPanel, SplitviewReact, Tab, WillShowOverlayLocationEvent, createDockview, createGridview, createPaneview, createSplitview, directionToPosition, getDirectionOrientation, getGridLocation, getLocationOrientation, getPaneData, getPanelData, getRelativeLocation, indexInParent, isGridBranchNode, isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, isReactComponent, orthogonal, positionToDirection, toTarget, usePortalsLifecycle };
|
|
10850
10890
|
//# sourceMappingURL=dockview.esm.js.map
|