dockview 1.8.1 → 1.8.3
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 +4 -1
- package/dist/cjs/dockview/defaultTab.d.ts.map +1 -1
- package/dist/cjs/dockview/defaultTab.js +18 -11
- package/dist/cjs/dockview/defaultTab.js.map +1 -1
- package/dist/cjs/dockview/dockview.d.ts +4 -0
- package/dist/cjs/dockview/dockview.d.ts.map +1 -1
- package/dist/cjs/dockview/dockview.js +9 -0
- package/dist/cjs/dockview/dockview.js.map +1 -1
- package/dist/cjs/react.d.ts.map +1 -1
- package/dist/cjs/react.js.map +1 -1
- package/dist/cjs/types.d.ts +2 -1
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/dockview.amd.js +229 -116
- 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 +228 -115
- package/dist/dockview.amd.noStyle.js.map +1 -1
- package/dist/dockview.cjs.js +229 -116
- package/dist/dockview.cjs.js.map +1 -1
- package/dist/dockview.esm.js +229 -116
- 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 +229 -116
- 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 +228 -115
- package/dist/dockview.noStyle.js.map +1 -1
- package/dist/esm/dockview/defaultTab.d.ts +4 -1
- package/dist/esm/dockview/defaultTab.d.ts.map +1 -1
- package/dist/esm/dockview/defaultTab.js +18 -11
- package/dist/esm/dockview/defaultTab.js.map +1 -1
- package/dist/esm/dockview/dockview.d.ts +4 -0
- package/dist/esm/dockview/dockview.d.ts.map +1 -1
- package/dist/esm/dockview/dockview.js +9 -0
- package/dist/esm/dockview/dockview.js.map +1 -1
- package/dist/esm/react.d.ts.map +1 -1
- package/dist/esm/react.js.map +1 -1
- package/dist/esm/types.d.ts +2 -1
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/styles/dockview.css +3 -3
- package/package.json +3 -3
package/dist/dockview.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview
|
|
3
|
-
* @version 1.8.
|
|
3
|
+
* @version 1.8.3
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
var css_248z = "@import \"dockview-core/dist/styles/dockview.css\";\n.tab .dockview-react-tab {\n display: flex;\n padding: 0px 8px;\n align-items: center;\n height: 100%;\n}\n.tab .dockview-react-tab .dockview-react-tab-title {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dockview-react-tab .
|
|
60
|
+
var css_248z = "@import \"dockview-core/dist/styles/dockview.css\";\n.tab .dockview-react-tab {\n display: flex;\n padding: 0px 8px;\n align-items: center;\n height: 100%;\n}\n.tab .dockview-react-tab .dockview-react-tab-title {\n padding: 0px 8px;\n flex-grow: 1;\n}\n.tab .dockview-react-tab .dv-react-tab-close-btn {\n padding: 4px;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n}\n.tab .dockview-react-tab .dv-react-tab-close-btn:hover {\n border-radius: 2px;\n background-color: var(--dv-icon-hover-background-color);\n}\n.tab.inactive-tab:not(:hover) .dv-react-tab-close-btn {\n visibility: hidden;\n}\n.dockview-react-part {\n height: 100%;\n width: 100%;\n}";
|
|
61
61
|
styleInject(css_248z);
|
|
62
62
|
|
|
63
63
|
class TransferObject {
|
|
@@ -294,9 +294,6 @@
|
|
|
294
294
|
get isDisposed() {
|
|
295
295
|
return this._isDisposed;
|
|
296
296
|
}
|
|
297
|
-
static from(...args) {
|
|
298
|
-
return new CompositeDisposable(...args);
|
|
299
|
-
}
|
|
300
297
|
constructor(...args) {
|
|
301
298
|
this._isDisposed = false;
|
|
302
299
|
this._disposables = args;
|
|
@@ -2500,6 +2497,12 @@
|
|
|
2500
2497
|
get onDidDrop() {
|
|
2501
2498
|
return this.component.onDidDrop;
|
|
2502
2499
|
}
|
|
2500
|
+
get onWillDragGroup() {
|
|
2501
|
+
return this.component.onWillDragGroup;
|
|
2502
|
+
}
|
|
2503
|
+
get onWillDragPanel() {
|
|
2504
|
+
return this.component.onWillDragPanel;
|
|
2505
|
+
}
|
|
2503
2506
|
get panels() {
|
|
2504
2507
|
return this.component.panels;
|
|
2505
2508
|
}
|
|
@@ -2962,7 +2965,7 @@
|
|
|
2962
2965
|
}
|
|
2963
2966
|
configure() {
|
|
2964
2967
|
this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {
|
|
2965
|
-
if (this.isCancelled(event)) {
|
|
2968
|
+
if (event.defaultPrevented || this.isCancelled(event)) {
|
|
2966
2969
|
event.preventDefault();
|
|
2967
2970
|
return;
|
|
2968
2971
|
}
|
|
@@ -2982,19 +2985,23 @@
|
|
|
2982
2985
|
}
|
|
2983
2986
|
this.el.classList.add('dv-dragged');
|
|
2984
2987
|
setTimeout(() => this.el.classList.remove('dv-dragged'), 0);
|
|
2985
|
-
this.dataDisposable.value = this.getData(event
|
|
2988
|
+
this.dataDisposable.value = this.getData(event);
|
|
2989
|
+
this._onDragStart.fire(event);
|
|
2986
2990
|
if (event.dataTransfer) {
|
|
2987
2991
|
event.dataTransfer.effectAllowed = 'move';
|
|
2988
|
-
|
|
2989
|
-
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
2994
|
-
|
|
2995
|
-
|
|
2996
|
-
|
|
2997
|
-
|
|
2992
|
+
const hasData = event.dataTransfer.items.length > 0;
|
|
2993
|
+
if (!hasData) {
|
|
2994
|
+
/**
|
|
2995
|
+
* Although this is not used by dockview many third party dnd libraries will check
|
|
2996
|
+
* dataTransfer.types to determine valid drag events.
|
|
2997
|
+
*
|
|
2998
|
+
* For example: in react-dnd if dataTransfer.types is not set then the dragStart event will be cancelled
|
|
2999
|
+
* through .preventDefault(). Since this is applied globally to all drag events this would break dockviews
|
|
3000
|
+
* dnd logic. You can see the code at
|
|
3001
|
+
* https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
|
|
3002
|
+
*/
|
|
3003
|
+
event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
|
|
3004
|
+
}
|
|
2998
3005
|
}
|
|
2999
3006
|
}), addDisposableListener(this.el, 'dragend', () => {
|
|
3000
3007
|
this.pointerEventsDisposable.dispose();
|
|
@@ -3003,44 +3010,45 @@
|
|
|
3003
3010
|
}
|
|
3004
3011
|
}
|
|
3005
3012
|
|
|
3013
|
+
class TabDragHandler extends DragHandler {
|
|
3014
|
+
constructor(element, accessor, group, panel) {
|
|
3015
|
+
super(element);
|
|
3016
|
+
this.accessor = accessor;
|
|
3017
|
+
this.group = group;
|
|
3018
|
+
this.panel = panel;
|
|
3019
|
+
this.panelTransfer = LocalSelectionTransfer.getInstance();
|
|
3020
|
+
}
|
|
3021
|
+
getData(event) {
|
|
3022
|
+
this.panelTransfer.setData([new PanelTransfer(this.accessor.id, this.group.id, this.panel.id)], PanelTransfer.prototype);
|
|
3023
|
+
return {
|
|
3024
|
+
dispose: () => {
|
|
3025
|
+
this.panelTransfer.clearData(PanelTransfer.prototype);
|
|
3026
|
+
},
|
|
3027
|
+
};
|
|
3028
|
+
}
|
|
3029
|
+
}
|
|
3006
3030
|
class Tab extends CompositeDisposable {
|
|
3007
3031
|
get element() {
|
|
3008
3032
|
return this._element;
|
|
3009
3033
|
}
|
|
3010
|
-
constructor(
|
|
3034
|
+
constructor(panel, accessor, group) {
|
|
3011
3035
|
super();
|
|
3012
|
-
this.
|
|
3036
|
+
this.panel = panel;
|
|
3013
3037
|
this.accessor = accessor;
|
|
3014
3038
|
this.group = group;
|
|
3039
|
+
this.content = undefined;
|
|
3015
3040
|
this._onChanged = new Emitter();
|
|
3016
3041
|
this.onChanged = this._onChanged.event;
|
|
3017
3042
|
this._onDropped = new Emitter();
|
|
3018
3043
|
this.onDrop = this._onDropped.event;
|
|
3044
|
+
this._onDragStart = new Emitter();
|
|
3045
|
+
this.onDragStart = this._onDragStart.event;
|
|
3019
3046
|
this._element = document.createElement('div');
|
|
3020
3047
|
this._element.className = 'tab';
|
|
3021
3048
|
this._element.tabIndex = 0;
|
|
3022
3049
|
this._element.draggable = true;
|
|
3023
3050
|
toggleClass(this.element, 'inactive-tab', true);
|
|
3024
|
-
this.
|
|
3025
|
-
constructor() {
|
|
3026
|
-
super(...arguments);
|
|
3027
|
-
this.panelTransfer = LocalSelectionTransfer.getInstance();
|
|
3028
|
-
}
|
|
3029
|
-
getData() {
|
|
3030
|
-
this.panelTransfer.setData([new PanelTransfer(accessor.id, group.id, panelId)], PanelTransfer.prototype);
|
|
3031
|
-
return {
|
|
3032
|
-
dispose: () => {
|
|
3033
|
-
this.panelTransfer.clearData(PanelTransfer.prototype);
|
|
3034
|
-
},
|
|
3035
|
-
};
|
|
3036
|
-
}
|
|
3037
|
-
})(this._element));
|
|
3038
|
-
this.addDisposables(addDisposableListener(this._element, 'mousedown', (event) => {
|
|
3039
|
-
if (event.defaultPrevented) {
|
|
3040
|
-
return;
|
|
3041
|
-
}
|
|
3042
|
-
this._onChanged.fire(event);
|
|
3043
|
-
}));
|
|
3051
|
+
const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
|
|
3044
3052
|
this.droptarget = new Droptarget(this._element, {
|
|
3045
3053
|
acceptedTargetZones: ['center'],
|
|
3046
3054
|
canDisplayOverlay: (event, position) => {
|
|
@@ -3054,12 +3062,19 @@
|
|
|
3054
3062
|
// don't allow group move to drop on self
|
|
3055
3063
|
return false;
|
|
3056
3064
|
}
|
|
3057
|
-
return this.
|
|
3065
|
+
return this.panel.id !== data.panelId;
|
|
3058
3066
|
}
|
|
3059
3067
|
return this.group.model.canDisplayOverlay(event, position, exports.DockviewDropTargets.Tab);
|
|
3060
3068
|
},
|
|
3061
3069
|
});
|
|
3062
|
-
this.addDisposables(this.
|
|
3070
|
+
this.addDisposables(this._onChanged, this._onDropped, this._onDragStart, dragHandler.onDragStart((event) => {
|
|
3071
|
+
this._onDragStart.fire(event);
|
|
3072
|
+
}), dragHandler, addDisposableListener(this._element, 'mousedown', (event) => {
|
|
3073
|
+
if (event.defaultPrevented) {
|
|
3074
|
+
return;
|
|
3075
|
+
}
|
|
3076
|
+
this._onChanged.fire(event);
|
|
3077
|
+
}), this.droptarget.onDrop((event) => {
|
|
3063
3078
|
this._onDropped.fire(event);
|
|
3064
3079
|
}), this.droptarget);
|
|
3065
3080
|
}
|
|
@@ -3091,9 +3106,9 @@
|
|
|
3091
3106
|
}
|
|
3092
3107
|
|
|
3093
3108
|
class GroupDragHandler extends DragHandler {
|
|
3094
|
-
constructor(element,
|
|
3109
|
+
constructor(element, accessor, group) {
|
|
3095
3110
|
super(element);
|
|
3096
|
-
this.
|
|
3111
|
+
this.accessor = accessor;
|
|
3097
3112
|
this.group = group;
|
|
3098
3113
|
this.panelTransfer = LocalSelectionTransfer.getInstance();
|
|
3099
3114
|
this.addDisposables(addDisposableListener(element, 'mousedown', (e) => {
|
|
@@ -3113,8 +3128,9 @@
|
|
|
3113
3128
|
}
|
|
3114
3129
|
return false;
|
|
3115
3130
|
}
|
|
3116
|
-
getData(
|
|
3117
|
-
|
|
3131
|
+
getData(dragEvent) {
|
|
3132
|
+
const dataTransfer = dragEvent.dataTransfer;
|
|
3133
|
+
this.panelTransfer.setData([new PanelTransfer(this.accessor.id, this.group.id, null)], PanelTransfer.prototype);
|
|
3118
3134
|
const style = window.getComputedStyle(this.el);
|
|
3119
3135
|
const bgColor = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-background-color');
|
|
3120
3136
|
const color = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-color');
|
|
@@ -3149,14 +3165,16 @@
|
|
|
3149
3165
|
this.group = group;
|
|
3150
3166
|
this._onDrop = new Emitter();
|
|
3151
3167
|
this.onDrop = this._onDrop.event;
|
|
3168
|
+
this._onDragStart = new Emitter();
|
|
3169
|
+
this.onDragStart = this._onDragStart.event;
|
|
3152
3170
|
this._element = document.createElement('div');
|
|
3153
3171
|
this._element.className = 'void-container';
|
|
3154
3172
|
this._element.tabIndex = 0;
|
|
3155
3173
|
this._element.draggable = true;
|
|
3156
|
-
this.addDisposables(this._onDrop, addDisposableListener(this._element, 'click', () => {
|
|
3174
|
+
this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'click', () => {
|
|
3157
3175
|
this.accessor.doSetGroupActive(this.group);
|
|
3158
3176
|
}));
|
|
3159
|
-
const handler = new GroupDragHandler(this._element, accessor
|
|
3177
|
+
const handler = new GroupDragHandler(this._element, accessor, group);
|
|
3160
3178
|
this.voidDropTarget = new Droptarget(this._element, {
|
|
3161
3179
|
acceptedTargetZones: ['center'],
|
|
3162
3180
|
canDisplayOverlay: (event, position) => {
|
|
@@ -3174,7 +3192,9 @@
|
|
|
3174
3192
|
return group.model.canDisplayOverlay(event, position, exports.DockviewDropTargets.Panel);
|
|
3175
3193
|
},
|
|
3176
3194
|
});
|
|
3177
|
-
this.addDisposables(handler,
|
|
3195
|
+
this.addDisposables(handler, handler.onDragStart((event) => {
|
|
3196
|
+
this._onDragStart.fire(event);
|
|
3197
|
+
}), this.voidDropTarget.onDrop((event) => {
|
|
3178
3198
|
this._onDrop.fire(event);
|
|
3179
3199
|
}), this.voidDropTarget);
|
|
3180
3200
|
}
|
|
@@ -3182,7 +3202,7 @@
|
|
|
3182
3202
|
|
|
3183
3203
|
class TabsContainer extends CompositeDisposable {
|
|
3184
3204
|
get panels() {
|
|
3185
|
-
return this.tabs.map((_) => _.value.
|
|
3205
|
+
return this.tabs.map((_) => _.value.panel.id);
|
|
3186
3206
|
}
|
|
3187
3207
|
get size() {
|
|
3188
3208
|
return this.tabs.length;
|
|
@@ -3236,7 +3256,7 @@
|
|
|
3236
3256
|
this.tabs[this.selectedIndex].value === tab);
|
|
3237
3257
|
}
|
|
3238
3258
|
indexOf(id) {
|
|
3239
|
-
return this.tabs.findIndex((tab) => tab.value.
|
|
3259
|
+
return this.tabs.findIndex((tab) => tab.value.panel.id === id);
|
|
3240
3260
|
}
|
|
3241
3261
|
constructor(accessor, group) {
|
|
3242
3262
|
super();
|
|
@@ -3247,7 +3267,11 @@
|
|
|
3247
3267
|
this._hidden = false;
|
|
3248
3268
|
this._onDrop = new Emitter();
|
|
3249
3269
|
this.onDrop = this._onDrop.event;
|
|
3250
|
-
this.
|
|
3270
|
+
this._onTabDragStart = new Emitter();
|
|
3271
|
+
this.onTabDragStart = this._onTabDragStart.event;
|
|
3272
|
+
this._onGroupDragStart = new Emitter();
|
|
3273
|
+
this.onGroupDragStart = this._onGroupDragStart.event;
|
|
3274
|
+
this.addDisposables(this._onDrop, this._onTabDragStart, this._onGroupDragStart);
|
|
3251
3275
|
this._element = document.createElement('div');
|
|
3252
3276
|
this._element.className = 'tabs-and-actions-container';
|
|
3253
3277
|
toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
|
|
@@ -3271,7 +3295,12 @@
|
|
|
3271
3295
|
this._element.appendChild(this.leftActionsContainer);
|
|
3272
3296
|
this._element.appendChild(this.voidContainer.element);
|
|
3273
3297
|
this._element.appendChild(this.rightActionsContainer);
|
|
3274
|
-
this.addDisposables(this.voidContainer, this.voidContainer.
|
|
3298
|
+
this.addDisposables(this.voidContainer, this.voidContainer.onDragStart((event) => {
|
|
3299
|
+
this._onGroupDragStart.fire({
|
|
3300
|
+
nativeEvent: event,
|
|
3301
|
+
group: this.group,
|
|
3302
|
+
});
|
|
3303
|
+
}), this.voidContainer.onDrop((event) => {
|
|
3275
3304
|
this._onDrop.fire({
|
|
3276
3305
|
event: event.nativeEvent,
|
|
3277
3306
|
index: this.tabs.length,
|
|
@@ -3317,7 +3346,7 @@
|
|
|
3317
3346
|
}
|
|
3318
3347
|
}
|
|
3319
3348
|
delete(id) {
|
|
3320
|
-
const index = this.tabs.findIndex((tab) => tab.value.
|
|
3349
|
+
const index = this.tabs.findIndex((tab) => tab.value.panel.id === id);
|
|
3321
3350
|
const tabToRemove = this.tabs.splice(index, 1)[0];
|
|
3322
3351
|
const { value, disposable } = tabToRemove;
|
|
3323
3352
|
disposable.dispose();
|
|
@@ -3326,21 +3355,23 @@
|
|
|
3326
3355
|
}
|
|
3327
3356
|
setActivePanel(panel) {
|
|
3328
3357
|
this.tabs.forEach((tab) => {
|
|
3329
|
-
const isActivePanel = panel.id === tab.value.
|
|
3358
|
+
const isActivePanel = panel.id === tab.value.panel.id;
|
|
3330
3359
|
tab.value.setActive(isActivePanel);
|
|
3331
3360
|
});
|
|
3332
3361
|
}
|
|
3333
3362
|
openPanel(panel, index = this.tabs.length) {
|
|
3334
3363
|
var _a;
|
|
3335
|
-
if (this.tabs.find((tab) => tab.value.
|
|
3364
|
+
if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {
|
|
3336
3365
|
return;
|
|
3337
3366
|
}
|
|
3338
|
-
const
|
|
3367
|
+
const tab = new Tab(panel, this.accessor, this.group);
|
|
3339
3368
|
if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
|
|
3340
3369
|
throw new Error('invalid header component');
|
|
3341
3370
|
}
|
|
3342
|
-
|
|
3343
|
-
const disposable = CompositeDisposable
|
|
3371
|
+
tab.setContent(panel.view.tab);
|
|
3372
|
+
const disposable = new CompositeDisposable(tab.onDragStart((event) => {
|
|
3373
|
+
this._onTabDragStart.fire({ nativeEvent: event, panel });
|
|
3374
|
+
}), tab.onChanged((event) => {
|
|
3344
3375
|
var _a;
|
|
3345
3376
|
const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;
|
|
3346
3377
|
const isFloatingWithOnePanel = this.group.api.isFloating && this.size === 1;
|
|
@@ -3348,8 +3379,8 @@
|
|
|
3348
3379
|
!isFloatingWithOnePanel &&
|
|
3349
3380
|
event.shiftKey) {
|
|
3350
3381
|
event.preventDefault();
|
|
3351
|
-
const panel = this.accessor.getGroupPanel(
|
|
3352
|
-
const { top, left } =
|
|
3382
|
+
const panel = this.accessor.getGroupPanel(tab.panel.id);
|
|
3383
|
+
const { top, left } = tab.element.getBoundingClientRect();
|
|
3353
3384
|
const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();
|
|
3354
3385
|
this.accessor.addFloatingGroup(panel, {
|
|
3355
3386
|
x: left - rootLeft,
|
|
@@ -3366,13 +3397,13 @@
|
|
|
3366
3397
|
this.group.model.openPanel(panel, {
|
|
3367
3398
|
skipFocus: alreadyFocused,
|
|
3368
3399
|
});
|
|
3369
|
-
}),
|
|
3400
|
+
}), tab.onDrop((event) => {
|
|
3370
3401
|
this._onDrop.fire({
|
|
3371
3402
|
event: event.nativeEvent,
|
|
3372
|
-
index: this.tabs.findIndex((x) => x.value ===
|
|
3403
|
+
index: this.tabs.findIndex((x) => x.value === tab),
|
|
3373
3404
|
});
|
|
3374
3405
|
}));
|
|
3375
|
-
const value = { value:
|
|
3406
|
+
const value = { value: tab, disposable };
|
|
3376
3407
|
this.addTab(value, index);
|
|
3377
3408
|
}
|
|
3378
3409
|
closePanel(panel) {
|
|
@@ -3400,7 +3431,7 @@
|
|
|
3400
3431
|
}
|
|
3401
3432
|
set locked(value) {
|
|
3402
3433
|
this._locked = value;
|
|
3403
|
-
toggleClass(this.container, 'locked-groupview', value);
|
|
3434
|
+
toggleClass(this.container, 'locked-groupview', value === 'no-drop-target' || value);
|
|
3404
3435
|
}
|
|
3405
3436
|
get isActive() {
|
|
3406
3437
|
return this._isGroupActive;
|
|
@@ -3457,6 +3488,10 @@
|
|
|
3457
3488
|
this.onMove = this._onMove.event;
|
|
3458
3489
|
this._onDidDrop = new Emitter();
|
|
3459
3490
|
this.onDidDrop = this._onDidDrop.event;
|
|
3491
|
+
this._onTabDragStart = new Emitter();
|
|
3492
|
+
this.onTabDragStart = this._onTabDragStart.event;
|
|
3493
|
+
this._onGroupDragStart = new Emitter();
|
|
3494
|
+
this.onGroupDragStart = this._onGroupDragStart.event;
|
|
3460
3495
|
this._onDidAddPanel = new Emitter();
|
|
3461
3496
|
this.onDidAddPanel = this._onDidAddPanel.event;
|
|
3462
3497
|
this._onDidRemovePanel = new Emitter();
|
|
@@ -3469,7 +3504,8 @@
|
|
|
3469
3504
|
this.dropTarget = new Droptarget(this.contentContainer.element, {
|
|
3470
3505
|
acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],
|
|
3471
3506
|
canDisplayOverlay: (event, position) => {
|
|
3472
|
-
if (this.locked
|
|
3507
|
+
if (this.locked === 'no-drop-target' ||
|
|
3508
|
+
(this.locked && position === 'center')) {
|
|
3473
3509
|
return false;
|
|
3474
3510
|
}
|
|
3475
3511
|
const data = getPanelData();
|
|
@@ -3495,8 +3531,12 @@
|
|
|
3495
3531
|
});
|
|
3496
3532
|
container.append(this.tabsContainer.element, this.contentContainer.element);
|
|
3497
3533
|
this.header.hidden = !!options.hideHeader;
|
|
3498
|
-
this.locked =
|
|
3499
|
-
this.addDisposables(this.tabsContainer.
|
|
3534
|
+
this.locked = options.locked || false;
|
|
3535
|
+
this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this.tabsContainer.onTabDragStart((event) => {
|
|
3536
|
+
this._onTabDragStart.fire(event);
|
|
3537
|
+
}), this.tabsContainer.onGroupDragStart((event) => {
|
|
3538
|
+
this._onGroupDragStart.fire(event);
|
|
3539
|
+
}), this.tabsContainer.onDrop((event) => {
|
|
3500
3540
|
this.handleDropEvent(event.event, 'center', event.index);
|
|
3501
3541
|
}), this.contentContainer.onDidFocus(() => {
|
|
3502
3542
|
this.accessor.doSetGroupActive(this.groupPanel, true);
|
|
@@ -3551,8 +3591,8 @@
|
|
|
3551
3591
|
activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,
|
|
3552
3592
|
id: this.id,
|
|
3553
3593
|
};
|
|
3554
|
-
if (this.locked) {
|
|
3555
|
-
result.locked =
|
|
3594
|
+
if (this.locked !== false) {
|
|
3595
|
+
result.locked = this.locked;
|
|
3556
3596
|
}
|
|
3557
3597
|
if (this.header.hidden) {
|
|
3558
3598
|
result.hideHeader = true;
|
|
@@ -3802,6 +3842,9 @@
|
|
|
3802
3842
|
return false;
|
|
3803
3843
|
}
|
|
3804
3844
|
handleDropEvent(event, position, index) {
|
|
3845
|
+
if (this.locked === 'no-drop-target') {
|
|
3846
|
+
return;
|
|
3847
|
+
}
|
|
3805
3848
|
const data = getPanelData();
|
|
3806
3849
|
if (data && data.viewId === this.accessor.id) {
|
|
3807
3850
|
if (data.panelId === null) {
|
|
@@ -5259,6 +5302,12 @@
|
|
|
5259
5302
|
return pushToTop;
|
|
5260
5303
|
})();
|
|
5261
5304
|
class Overlay extends CompositeDisposable {
|
|
5305
|
+
set minimumInViewportWidth(value) {
|
|
5306
|
+
this.options.minimumInViewportWidth = value;
|
|
5307
|
+
}
|
|
5308
|
+
set minimumInViewportHeight(value) {
|
|
5309
|
+
this.options.minimumInViewportHeight = value;
|
|
5310
|
+
}
|
|
5262
5311
|
constructor(options) {
|
|
5263
5312
|
super();
|
|
5264
5313
|
this.options = options;
|
|
@@ -5304,9 +5353,11 @@
|
|
|
5304
5353
|
const overlayRect = this._element.getBoundingClientRect();
|
|
5305
5354
|
// region: ensure bounds within allowable limits
|
|
5306
5355
|
// a minimum width of minimumViewportWidth must be inside the viewport
|
|
5307
|
-
const xOffset = Math.max(0, overlayRect.width
|
|
5356
|
+
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
5308
5357
|
// a minimum height of minimumViewportHeight must be inside the viewport
|
|
5309
|
-
const yOffset =
|
|
5358
|
+
const yOffset = typeof this.options.minimumInViewportHeight === 'number'
|
|
5359
|
+
? Math.max(0, this.getMinimumHeight(overlayRect.height))
|
|
5360
|
+
: 0;
|
|
5310
5361
|
const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
5311
5362
|
const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
5312
5363
|
this._element.style.left = `${left}px`;
|
|
@@ -5352,9 +5403,10 @@
|
|
|
5352
5403
|
y: e.clientY - overlayRect.top,
|
|
5353
5404
|
};
|
|
5354
5405
|
}
|
|
5355
|
-
const xOffset = Math.max(0, overlayRect.width
|
|
5356
|
-
const yOffset = Math.max(0,
|
|
5357
|
-
this.
|
|
5406
|
+
const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));
|
|
5407
|
+
const yOffset = Math.max(0, this.options.minimumInViewportHeight
|
|
5408
|
+
? this.getMinimumHeight(overlayRect.height)
|
|
5409
|
+
: 0);
|
|
5358
5410
|
const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));
|
|
5359
5411
|
const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));
|
|
5360
5412
|
this.setBounds({ top, left });
|
|
@@ -5428,14 +5480,11 @@
|
|
|
5428
5480
|
let height = undefined;
|
|
5429
5481
|
let left = undefined;
|
|
5430
5482
|
let width = undefined;
|
|
5431
|
-
const
|
|
5432
|
-
const minimumInViewportWidth = this.options.minimumInViewportWidth;
|
|
5433
|
-
function moveTop() {
|
|
5483
|
+
const moveTop = () => {
|
|
5434
5484
|
top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +
|
|
5435
5485
|
startPosition.originalHeight >
|
|
5436
5486
|
containerRect.height
|
|
5437
|
-
? containerRect.height
|
|
5438
|
-
minimumInViewportHeight
|
|
5487
|
+
? this.getMinimumHeight(containerRect.height)
|
|
5439
5488
|
: Math.max(0, startPosition.originalY +
|
|
5440
5489
|
startPosition.originalHeight -
|
|
5441
5490
|
Overlay.MINIMUM_HEIGHT));
|
|
@@ -5443,21 +5492,23 @@
|
|
|
5443
5492
|
startPosition.originalY +
|
|
5444
5493
|
startPosition.originalHeight -
|
|
5445
5494
|
top;
|
|
5446
|
-
}
|
|
5447
|
-
|
|
5495
|
+
};
|
|
5496
|
+
const moveBottom = () => {
|
|
5448
5497
|
top =
|
|
5449
5498
|
startPosition.originalY -
|
|
5450
5499
|
startPosition.originalHeight;
|
|
5451
|
-
height = clamp(y - top, top < 0
|
|
5452
|
-
|
|
5500
|
+
height = clamp(y - top, top < 0 &&
|
|
5501
|
+
typeof this.options
|
|
5502
|
+
.minimumInViewportHeight === 'number'
|
|
5503
|
+
? -top +
|
|
5504
|
+
this.options.minimumInViewportHeight
|
|
5453
5505
|
: Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);
|
|
5454
|
-
}
|
|
5455
|
-
|
|
5506
|
+
};
|
|
5507
|
+
const moveLeft = () => {
|
|
5456
5508
|
left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +
|
|
5457
5509
|
startPosition.originalWidth >
|
|
5458
5510
|
containerRect.width
|
|
5459
|
-
? containerRect.width
|
|
5460
|
-
minimumInViewportWidth
|
|
5511
|
+
? this.getMinimumWidth(containerRect.width)
|
|
5461
5512
|
: Math.max(0, startPosition.originalX +
|
|
5462
5513
|
startPosition.originalWidth -
|
|
5463
5514
|
Overlay.MINIMUM_WIDTH));
|
|
@@ -5465,15 +5516,18 @@
|
|
|
5465
5516
|
startPosition.originalX +
|
|
5466
5517
|
startPosition.originalWidth -
|
|
5467
5518
|
left;
|
|
5468
|
-
}
|
|
5469
|
-
|
|
5519
|
+
};
|
|
5520
|
+
const moveRight = () => {
|
|
5470
5521
|
left =
|
|
5471
5522
|
startPosition.originalX -
|
|
5472
5523
|
startPosition.originalWidth;
|
|
5473
|
-
width = clamp(x - left, left < 0
|
|
5474
|
-
|
|
5524
|
+
width = clamp(x - left, left < 0 &&
|
|
5525
|
+
typeof this.options
|
|
5526
|
+
.minimumInViewportWidth === 'number'
|
|
5527
|
+
? -left +
|
|
5528
|
+
this.options.minimumInViewportWidth
|
|
5475
5529
|
: Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);
|
|
5476
|
-
}
|
|
5530
|
+
};
|
|
5477
5531
|
switch (direction) {
|
|
5478
5532
|
case 'top':
|
|
5479
5533
|
moveTop();
|
|
@@ -5517,6 +5571,18 @@
|
|
|
5517
5571
|
}));
|
|
5518
5572
|
}));
|
|
5519
5573
|
}
|
|
5574
|
+
getMinimumWidth(width) {
|
|
5575
|
+
if (typeof this.options.minimumInViewportWidth === 'number') {
|
|
5576
|
+
return width - this.options.minimumInViewportWidth;
|
|
5577
|
+
}
|
|
5578
|
+
return 0;
|
|
5579
|
+
}
|
|
5580
|
+
getMinimumHeight(height) {
|
|
5581
|
+
if (typeof this.options.minimumInViewportHeight === 'number') {
|
|
5582
|
+
return height - this.options.minimumInViewportHeight;
|
|
5583
|
+
}
|
|
5584
|
+
return height;
|
|
5585
|
+
}
|
|
5520
5586
|
dispose() {
|
|
5521
5587
|
this._element.remove();
|
|
5522
5588
|
super.dispose();
|
|
@@ -5537,6 +5603,7 @@
|
|
|
5537
5603
|
}
|
|
5538
5604
|
}
|
|
5539
5605
|
|
|
5606
|
+
const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
5540
5607
|
class DockviewComponent extends BaseGrid {
|
|
5541
5608
|
get orientation() {
|
|
5542
5609
|
return this.gridview.orientation;
|
|
@@ -5567,6 +5634,10 @@
|
|
|
5567
5634
|
this.nextGroupId = sequentialNumberGenerator();
|
|
5568
5635
|
this._deserializer = new DefaultDockviewDeserialzier(this);
|
|
5569
5636
|
this.watermark = null;
|
|
5637
|
+
this._onWillDragPanel = new Emitter();
|
|
5638
|
+
this.onWillDragPanel = this._onWillDragPanel.event;
|
|
5639
|
+
this._onWillDragGroup = new Emitter();
|
|
5640
|
+
this.onWillDragGroup = this._onWillDragGroup.event;
|
|
5570
5641
|
this._onDidDrop = new Emitter();
|
|
5571
5642
|
this.onDidDrop = this._onDidDrop.event;
|
|
5572
5643
|
this._onDidRemovePanel = new Emitter();
|
|
@@ -5579,7 +5650,7 @@
|
|
|
5579
5650
|
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
5580
5651
|
this.floatingGroups = [];
|
|
5581
5652
|
toggleClass(this.gridview.element, 'dv-dockview', true);
|
|
5582
|
-
this.addDisposables(this._onDidDrop, exports.DockviewEvent.any(this.onDidAddGroup, this.onDidRemoveGroup)(() => {
|
|
5653
|
+
this.addDisposables(this._onWillDragPanel, this._onWillDragGroup, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, exports.DockviewEvent.any(this.onDidAddGroup, this.onDidRemoveGroup)(() => {
|
|
5583
5654
|
this.updateWatermark();
|
|
5584
5655
|
}), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
5585
5656
|
this._bufferOnDidLayoutChange.fire();
|
|
@@ -5616,7 +5687,7 @@
|
|
|
5616
5687
|
return true;
|
|
5617
5688
|
}
|
|
5618
5689
|
if (this.options.showDndOverlay) {
|
|
5619
|
-
if (position === 'center') {
|
|
5690
|
+
if (position === 'center' && this.gridview.length !== 0) {
|
|
5620
5691
|
/**
|
|
5621
5692
|
* for external events only show the four-corner drag overlays, disable
|
|
5622
5693
|
* the center position so that external drag events can fall through to the group
|
|
@@ -5652,7 +5723,7 @@
|
|
|
5652
5723
|
this.updateWatermark();
|
|
5653
5724
|
}
|
|
5654
5725
|
addFloatingGroup(item, coord, options) {
|
|
5655
|
-
var _a, _b;
|
|
5726
|
+
var _a, _b, _c, _d, _e, _f;
|
|
5656
5727
|
let group;
|
|
5657
5728
|
if (item instanceof DockviewPanel) {
|
|
5658
5729
|
group = this.createGroup();
|
|
@@ -5680,8 +5751,12 @@
|
|
|
5680
5751
|
width: (_b = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _b !== void 0 ? _b : 300,
|
|
5681
5752
|
left: overlayLeft,
|
|
5682
5753
|
top: overlayTop,
|
|
5683
|
-
minimumInViewportWidth:
|
|
5684
|
-
|
|
5754
|
+
minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
5755
|
+
? undefined
|
|
5756
|
+
: (_d = (_c = this.options.floatingGroupBounds) === null || _c === void 0 ? void 0 : _c.minimumWidthWithinViewport) !== null && _d !== void 0 ? _d : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
5757
|
+
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
5758
|
+
? undefined
|
|
5759
|
+
: (_f = (_e = this.options.floatingGroupBounds) === null || _e === void 0 ? void 0 : _e.minimumHeightWithinViewport) !== null && _f !== void 0 ? _f : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
5685
5760
|
});
|
|
5686
5761
|
const el = group.element.querySelector('.void-container');
|
|
5687
5762
|
if (!el) {
|
|
@@ -5752,12 +5827,37 @@
|
|
|
5752
5827
|
}
|
|
5753
5828
|
}
|
|
5754
5829
|
updateOptions(options) {
|
|
5830
|
+
var _a, _b;
|
|
5755
5831
|
const hasOrientationChanged = typeof options.orientation === 'string' &&
|
|
5756
5832
|
this.gridview.orientation !== options.orientation;
|
|
5833
|
+
const hasFloatingGroupOptionsChanged = options.floatingGroupBounds !== undefined &&
|
|
5834
|
+
options.floatingGroupBounds !== this.options.floatingGroupBounds;
|
|
5757
5835
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
5758
5836
|
if (hasOrientationChanged) {
|
|
5759
5837
|
this.gridview.orientation = options.orientation;
|
|
5760
5838
|
}
|
|
5839
|
+
if (hasFloatingGroupOptionsChanged) {
|
|
5840
|
+
for (const group of this.floatingGroups) {
|
|
5841
|
+
switch (this.options.floatingGroupBounds) {
|
|
5842
|
+
case 'boundedWithinViewport':
|
|
5843
|
+
group.overlay.minimumInViewportHeight = undefined;
|
|
5844
|
+
group.overlay.minimumInViewportWidth = undefined;
|
|
5845
|
+
break;
|
|
5846
|
+
case undefined:
|
|
5847
|
+
group.overlay.minimumInViewportHeight =
|
|
5848
|
+
DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;
|
|
5849
|
+
group.overlay.minimumInViewportWidth =
|
|
5850
|
+
DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;
|
|
5851
|
+
break;
|
|
5852
|
+
default:
|
|
5853
|
+
group.overlay.minimumInViewportHeight =
|
|
5854
|
+
(_a = this.options.floatingGroupBounds) === null || _a === void 0 ? void 0 : _a.minimumHeightWithinViewport;
|
|
5855
|
+
group.overlay.minimumInViewportWidth =
|
|
5856
|
+
(_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport;
|
|
5857
|
+
}
|
|
5858
|
+
group.overlay.setBounds({});
|
|
5859
|
+
}
|
|
5860
|
+
}
|
|
5761
5861
|
this.layout(this.gridview.width, this.gridview.height, true);
|
|
5762
5862
|
}
|
|
5763
5863
|
layout(width, height, forceResize) {
|
|
@@ -6240,7 +6340,11 @@
|
|
|
6240
6340
|
const view = new DockviewGroupPanel(this, id, options);
|
|
6241
6341
|
view.init({ params: {}, accessor: null }); // required to initialized .part and allow for correct disposal of group
|
|
6242
6342
|
if (!this._groups.has(view.id)) {
|
|
6243
|
-
const disposable = new CompositeDisposable(view.model.
|
|
6343
|
+
const disposable = new CompositeDisposable(view.model.onTabDragStart((event) => {
|
|
6344
|
+
this._onWillDragPanel.fire(event);
|
|
6345
|
+
}), view.model.onGroupDragStart((event) => {
|
|
6346
|
+
this._onWillDragGroup.fire(event);
|
|
6347
|
+
}), view.model.onMove((event) => {
|
|
6244
6348
|
const { groupId, itemId, target, index } = event;
|
|
6245
6349
|
this.moveGroupOrPanel(view, groupId, itemId, target, index);
|
|
6246
6350
|
}), view.model.onDidDrop((event) => {
|
|
@@ -6279,13 +6383,6 @@
|
|
|
6279
6383
|
var _a;
|
|
6280
6384
|
return (_a = Array.from(this._groups.values()).find((group) => group.value.model.containsPanel(panel))) === null || _a === void 0 ? void 0 : _a.value;
|
|
6281
6385
|
}
|
|
6282
|
-
dispose() {
|
|
6283
|
-
this._onDidActivePanelChange.dispose();
|
|
6284
|
-
this._onDidAddPanel.dispose();
|
|
6285
|
-
this._onDidRemovePanel.dispose();
|
|
6286
|
-
this._onDidLayoutFromJSON.dispose();
|
|
6287
|
-
super.dispose();
|
|
6288
|
-
}
|
|
6289
6386
|
}
|
|
6290
6387
|
|
|
6291
6388
|
class GridviewComponent extends BaseGrid {
|
|
@@ -7583,6 +7680,7 @@
|
|
|
7583
7680
|
createRightHeaderActionsElement: createGroupControlElement(props.rightHeaderActionsComponent, { addPortal }),
|
|
7584
7681
|
singleTabMode: props.singleTabMode,
|
|
7585
7682
|
disableFloatingGroups: props.disableFloatingGroups,
|
|
7683
|
+
floatingGroupBounds: props.floatingGroupBounds,
|
|
7586
7684
|
});
|
|
7587
7685
|
const { clientWidth, clientHeight } = domRef.current;
|
|
7588
7686
|
dockview.layout(clientWidth, clientHeight);
|
|
@@ -7617,6 +7715,14 @@
|
|
|
7617
7715
|
frameworkComponents: props.components,
|
|
7618
7716
|
});
|
|
7619
7717
|
}, [props.components]);
|
|
7718
|
+
React__namespace.useEffect(() => {
|
|
7719
|
+
if (!dockviewRef.current) {
|
|
7720
|
+
return;
|
|
7721
|
+
}
|
|
7722
|
+
dockviewRef.current.updateOptions({
|
|
7723
|
+
floatingGroupBounds: props.floatingGroupBounds,
|
|
7724
|
+
});
|
|
7725
|
+
}, [props.floatingGroupBounds]);
|
|
7620
7726
|
React__namespace.useEffect(() => {
|
|
7621
7727
|
if (!dockviewRef.current) {
|
|
7622
7728
|
return;
|
|
@@ -7723,25 +7829,32 @@
|
|
|
7723
7829
|
React__namespace.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" })));
|
|
7724
7830
|
|
|
7725
7831
|
const DockviewDefaultTab = (_a) => {
|
|
7726
|
-
var { api, containerApi: _containerApi, params: _params } = _a, rest = __rest(_a, ["api", "containerApi", "params"]);
|
|
7832
|
+
var { api, containerApi: _containerApi, params: _params, hideClose, closeActionOverride } = _a, rest = __rest(_a, ["api", "containerApi", "params", "hideClose", "closeActionOverride"]);
|
|
7727
7833
|
const onClose = React__namespace.useCallback((event) => {
|
|
7728
|
-
event.
|
|
7729
|
-
|
|
7730
|
-
|
|
7834
|
+
event.preventDefault();
|
|
7835
|
+
if (closeActionOverride) {
|
|
7836
|
+
closeActionOverride();
|
|
7837
|
+
}
|
|
7838
|
+
else {
|
|
7839
|
+
api.close();
|
|
7840
|
+
}
|
|
7841
|
+
}, [api, closeActionOverride]);
|
|
7842
|
+
const onMouseDown = React__namespace.useCallback((e) => {
|
|
7843
|
+
e.preventDefault();
|
|
7844
|
+
}, []);
|
|
7731
7845
|
const onClick = React__namespace.useCallback((event) => {
|
|
7846
|
+
if (event.defaultPrevented) {
|
|
7847
|
+
return;
|
|
7848
|
+
}
|
|
7732
7849
|
api.setActive();
|
|
7733
7850
|
if (rest.onClick) {
|
|
7734
7851
|
rest.onClick(event);
|
|
7735
7852
|
}
|
|
7736
7853
|
}, [api, rest.onClick]);
|
|
7737
|
-
|
|
7738
|
-
const cn = ['dockview-react-tab-action'];
|
|
7739
|
-
return cn.join(',');
|
|
7740
|
-
}, []);
|
|
7741
|
-
return (React__namespace.createElement("div", Object.assign({}, rest, { onClick: onClick, className: "dockview-react-tab" }),
|
|
7854
|
+
return (React__namespace.createElement("div", Object.assign({ "data-testid": "dockview-default-tab" }, rest, { onClick: onClick, className: "dockview-react-tab" }),
|
|
7742
7855
|
React__namespace.createElement("span", { className: "dockview-react-tab-title" }, api.title),
|
|
7743
|
-
React__namespace.createElement("div", { className:
|
|
7744
|
-
React__namespace.createElement(CloseButton, null))));
|
|
7856
|
+
!hideClose && (React__namespace.createElement("div", { className: "dv-react-tab-close-btn", onMouseDown: onMouseDown, onClick: onClose },
|
|
7857
|
+
React__namespace.createElement(CloseButton, null)))));
|
|
7745
7858
|
};
|
|
7746
7859
|
|
|
7747
7860
|
class ReactPanelView extends SplitviewPanel {
|