dockview-core 1.15.3 → 1.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/cjs/api/component.api.d.ts +32 -6
  2. package/dist/cjs/api/component.api.js +42 -6
  3. package/dist/cjs/api/dockviewPanelApi.d.ts +1 -1
  4. package/dist/cjs/api/entryPoints.d.ts +9 -0
  5. package/dist/cjs/api/entryPoints.js +28 -0
  6. package/dist/cjs/dnd/abstractDragHandler.js +2 -65
  7. package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -1
  8. package/dist/cjs/dockview/dockviewComponent.d.ts +4 -2
  9. package/dist/cjs/dockview/dockviewComponent.js +60 -17
  10. package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +1 -1
  11. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +1 -1
  12. package/dist/cjs/dockview/dockviewGroupPanelModel.js +1 -1
  13. package/dist/cjs/dockview/dockviewPanel.d.ts +1 -1
  14. package/dist/cjs/dockview/dockviewPanel.js +1 -1
  15. package/dist/cjs/dockview/options.d.ts +2 -2
  16. package/dist/cjs/dockview/options.js +1 -0
  17. package/dist/cjs/dockview/types.d.ts +1 -1
  18. package/dist/cjs/dom.d.ts +3 -0
  19. package/dist/cjs/dom.js +66 -1
  20. package/dist/cjs/gridview/baseComponentGridview.d.ts +5 -2
  21. package/dist/cjs/gridview/baseComponentGridview.js +54 -3
  22. package/dist/cjs/gridview/gridviewComponent.d.ts +3 -4
  23. package/dist/cjs/gridview/gridviewComponent.js +4 -2
  24. package/dist/cjs/gridview/options.d.ts +1 -1
  25. package/dist/cjs/index.d.ts +2 -1
  26. package/dist/cjs/index.js +6 -1
  27. package/dist/cjs/{dnd → overlay}/overlay.d.ts +3 -0
  28. package/dist/cjs/{dnd → overlay}/overlay.js +41 -82
  29. package/dist/cjs/{overlayRenderContainer.d.ts → overlay/overlayRenderContainer.d.ts} +7 -5
  30. package/dist/cjs/{overlayRenderContainer.js → overlay/overlayRenderContainer.js} +41 -6
  31. package/dist/cjs/paneview/options.d.ts +1 -1
  32. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -1
  33. package/dist/cjs/paneview/paneviewComponent.js +68 -19
  34. package/dist/cjs/splitview/options.d.ts +1 -1
  35. package/dist/cjs/splitview/splitview.js +64 -71
  36. package/dist/cjs/splitview/splitviewComponent.d.ts +5 -5
  37. package/dist/cjs/splitview/splitviewComponent.js +70 -21
  38. package/dist/dockview-core.amd.js +301 -98
  39. package/dist/dockview-core.amd.js.map +1 -1
  40. package/dist/dockview-core.amd.min.js +2 -2
  41. package/dist/dockview-core.amd.min.js.map +1 -1
  42. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  43. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  44. package/dist/dockview-core.amd.noStyle.js +300 -97
  45. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  46. package/dist/dockview-core.cjs.js +301 -98
  47. package/dist/dockview-core.cjs.js.map +1 -1
  48. package/dist/dockview-core.esm.js +298 -99
  49. package/dist/dockview-core.esm.js.map +1 -1
  50. package/dist/dockview-core.esm.min.js +2 -2
  51. package/dist/dockview-core.esm.min.js.map +1 -1
  52. package/dist/dockview-core.js +301 -98
  53. package/dist/dockview-core.js.map +1 -1
  54. package/dist/dockview-core.min.js +2 -2
  55. package/dist/dockview-core.min.js.map +1 -1
  56. package/dist/dockview-core.min.noStyle.js +2 -2
  57. package/dist/dockview-core.min.noStyle.js.map +1 -1
  58. package/dist/dockview-core.noStyle.js +300 -97
  59. package/dist/dockview-core.noStyle.js.map +1 -1
  60. package/dist/esm/api/component.api.d.ts +32 -6
  61. package/dist/esm/api/component.api.js +42 -6
  62. package/dist/esm/api/dockviewPanelApi.d.ts +1 -1
  63. package/dist/esm/api/entryPoints.d.ts +9 -0
  64. package/dist/esm/api/entryPoints.js +21 -0
  65. package/dist/esm/dnd/abstractDragHandler.js +3 -11
  66. package/dist/esm/dockview/components/panel/content.js +1 -1
  67. package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -1
  68. package/dist/esm/dockview/dockviewComponent.d.ts +4 -2
  69. package/dist/esm/dockview/dockviewComponent.js +48 -13
  70. package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +1 -1
  71. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +1 -1
  72. package/dist/esm/dockview/dockviewGroupPanelModel.js +1 -1
  73. package/dist/esm/dockview/dockviewPanel.d.ts +1 -1
  74. package/dist/esm/dockview/dockviewPanel.js +1 -1
  75. package/dist/esm/dockview/options.d.ts +2 -2
  76. package/dist/esm/dockview/options.js +1 -0
  77. package/dist/esm/dockview/types.d.ts +1 -1
  78. package/dist/esm/dom.d.ts +3 -0
  79. package/dist/esm/dom.js +20 -0
  80. package/dist/esm/gridview/baseComponentGridview.d.ts +5 -2
  81. package/dist/esm/gridview/baseComponentGridview.js +19 -0
  82. package/dist/esm/gridview/gridviewComponent.d.ts +3 -4
  83. package/dist/esm/gridview/gridviewComponent.js +4 -2
  84. package/dist/esm/gridview/options.d.ts +1 -1
  85. package/dist/esm/index.d.ts +2 -1
  86. package/dist/esm/index.js +1 -0
  87. package/dist/esm/{dnd → overlay}/overlay.d.ts +3 -0
  88. package/dist/esm/{dnd → overlay}/overlay.js +36 -32
  89. package/dist/esm/{overlayRenderContainer.d.ts → overlay/overlayRenderContainer.d.ts} +7 -5
  90. package/dist/esm/{overlayRenderContainer.js → overlay/overlayRenderContainer.js} +39 -6
  91. package/dist/esm/paneview/options.d.ts +1 -1
  92. package/dist/esm/paneview/paneviewComponent.d.ts +2 -1
  93. package/dist/esm/paneview/paneviewComponent.js +19 -2
  94. package/dist/esm/splitview/options.d.ts +1 -1
  95. package/dist/esm/splitview/splitview.js +37 -27
  96. package/dist/esm/splitview/splitviewComponent.d.ts +5 -5
  97. package/dist/esm/splitview/splitviewComponent.js +19 -2
  98. package/dist/styles/dockview.css +78 -82
  99. package/package.json +1 -1
@@ -103,6 +103,7 @@ export declare class PaneviewComponent extends Resizable implements IPaneviewCom
103
103
  readonly onDidAddView: Event<PaneviewPanel>;
104
104
  private readonly _onDidRemoveView;
105
105
  readonly onDidRemoveView: Event<PaneviewPanel>;
106
+ private classNames;
106
107
  get id(): string;
107
108
  get panels(): PaneviewPanel[];
108
109
  set paneview(value: Paneview);
@@ -112,7 +113,7 @@ export declare class PaneviewComponent extends Resizable implements IPaneviewCom
112
113
  get height(): number;
113
114
  get width(): number;
114
115
  get options(): PaneviewComponentOptions;
115
- constructor(options: PaneviewComponentOptions);
116
+ constructor(parentElement: HTMLElement, options: PaneviewComponentOptions);
116
117
  setVisible(panel: PaneviewPanel, visible: boolean): void;
117
118
  focus(): void;
118
119
  updateOptions(options: Partial<PaneviewComponentOptions>): void;
@@ -25,6 +25,17 @@ var __assign = (this && this.__assign) || function () {
25
25
  };
26
26
  return __assign.apply(this, arguments);
27
27
  };
28
+ var __values = (this && this.__values) || function(o) {
29
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
30
+ if (m) return m.call(o);
31
+ if (o && typeof o.length === "number") return {
32
+ next: function () {
33
+ if (o && i >= o.length) o = void 0;
34
+ return { value: o && o[i++], done: !o };
35
+ }
36
+ };
37
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
38
+ };
28
39
  var __read = (this && this.__read) || function (o, n) {
29
40
  var m = typeof Symbol === "function" && o[Symbol.iterator];
30
41
  if (!m) return o;
@@ -41,17 +52,6 @@ var __read = (this && this.__read) || function (o, n) {
41
52
  }
42
53
  return ar;
43
54
  };
44
- var __values = (this && this.__values) || function(o) {
45
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
46
- if (m) return m.call(o);
47
- if (o && typeof o.length === "number") return {
48
- next: function () {
49
- if (o && i >= o.length) o = void 0;
50
- return { value: o && o[i++], done: !o };
51
- }
52
- };
53
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
54
- };
55
55
  Object.defineProperty(exports, "__esModule", { value: true });
56
56
  exports.PaneviewComponent = exports.PaneFramework = void 0;
57
57
  var component_api_1 = require("../api/component.api");
@@ -64,6 +64,7 @@ var draggablePaneviewPanel_1 = require("./draggablePaneviewPanel");
64
64
  var defaultPaneviewHeader_1 = require("./defaultPaneviewHeader");
65
65
  var math_1 = require("../math");
66
66
  var resizable_1 = require("../resizable");
67
+ var dom_1 = require("../dom");
67
68
  var nextLayoutId = (0, math_1.sequentialNumberGenerator)();
68
69
  var PaneFramework = /** @class */ (function (_super) {
69
70
  __extends(PaneFramework, _super);
@@ -83,8 +84,10 @@ var PaneFramework = /** @class */ (function (_super) {
83
84
  exports.PaneFramework = PaneFramework;
84
85
  var PaneviewComponent = /** @class */ (function (_super) {
85
86
  __extends(PaneviewComponent, _super);
86
- function PaneviewComponent(options) {
87
- var _this = _super.call(this, options.parentElement, options.disableAutoResizing) || this;
87
+ function PaneviewComponent(parentElement, options) {
88
+ var e_1, _a;
89
+ var _b, _c;
90
+ var _this = _super.call(this, parentElement, options.disableAutoResizing) || this;
88
91
  _this._id = nextLayoutId.next();
89
92
  _this._disposable = new lifecycle_1.MutableDisposable();
90
93
  _this._viewDisposables = new Map();
@@ -98,7 +101,22 @@ var PaneviewComponent = /** @class */ (function (_super) {
98
101
  _this.onDidAddView = _this._onDidAddView.event;
99
102
  _this._onDidRemoveView = new events_1.Emitter();
100
103
  _this.onDidRemoveView = _this._onDidRemoveView.event;
104
+ _this.classNames = [];
101
105
  _this.addDisposables(_this._onDidLayoutChange, _this._onDidLayoutfromJSON, _this._onDidDrop, _this._onDidAddView, _this._onDidRemoveView);
106
+ _this.classNames = (_c = (_b = options.className) === null || _b === void 0 ? void 0 : _b.split(' ')) !== null && _c !== void 0 ? _c : [];
107
+ try {
108
+ for (var _d = __values(_this.classNames), _e = _d.next(); !_e.done; _e = _d.next()) {
109
+ var className = _e.value;
110
+ (0, dom_1.toggleClass)(_this.element, className, true);
111
+ }
112
+ }
113
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
114
+ finally {
115
+ try {
116
+ if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
117
+ }
118
+ finally { if (e_1) throw e_1.error; }
119
+ }
102
120
  _this._options = options;
103
121
  if (!options.components) {
104
122
  options.components = {};
@@ -188,6 +206,37 @@ var PaneviewComponent = /** @class */ (function (_super) {
188
206
  //noop
189
207
  };
190
208
  PaneviewComponent.prototype.updateOptions = function (options) {
209
+ var e_2, _a, e_3, _b;
210
+ var _c, _d;
211
+ if ('className' in options) {
212
+ try {
213
+ for (var _e = __values(this.classNames), _f = _e.next(); !_f.done; _f = _e.next()) {
214
+ var className = _f.value;
215
+ (0, dom_1.toggleClass)(this.element, className, false);
216
+ }
217
+ }
218
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
219
+ finally {
220
+ try {
221
+ if (_f && !_f.done && (_a = _e.return)) _a.call(_e);
222
+ }
223
+ finally { if (e_2) throw e_2.error; }
224
+ }
225
+ this.classNames = (_d = (_c = options.className) === null || _c === void 0 ? void 0 : _c.split(' ')) !== null && _d !== void 0 ? _d : [];
226
+ try {
227
+ for (var _g = __values(this.classNames), _h = _g.next(); !_h.done; _h = _g.next()) {
228
+ var className = _h.value;
229
+ (0, dom_1.toggleClass)(this.element, className, true);
230
+ }
231
+ }
232
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
233
+ finally {
234
+ try {
235
+ if (_h && !_h.done && (_b = _g.return)) _b.call(_g);
236
+ }
237
+ finally { if (e_3) throw e_3.error; }
238
+ }
239
+ }
191
240
  this._options = __assign(__assign({}, this.options), options);
192
241
  };
193
242
  PaneviewComponent.prototype.addPanel = function (options) {
@@ -351,19 +400,19 @@ var PaneviewComponent = /** @class */ (function (_super) {
351
400
  this._onDidLayoutfromJSON.fire();
352
401
  };
353
402
  PaneviewComponent.prototype.clear = function () {
354
- var e_1, _a;
403
+ var e_4, _a;
355
404
  try {
356
405
  for (var _b = __values(this._viewDisposables.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
357
406
  var _d = __read(_c.value, 2), _ = _d[0], value = _d[1];
358
407
  value.dispose();
359
408
  }
360
409
  }
361
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
410
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
362
411
  finally {
363
412
  try {
364
413
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
365
414
  }
366
- finally { if (e_1) throw e_1.error; }
415
+ finally { if (e_4) throw e_4.error; }
367
416
  }
368
417
  this._viewDisposables.clear();
369
418
  this.paneview.dispose();
@@ -383,7 +432,7 @@ var PaneviewComponent = /** @class */ (function (_super) {
383
432
  }
384
433
  };
385
434
  PaneviewComponent.prototype.dispose = function () {
386
- var e_2, _a;
435
+ var e_5, _a;
387
436
  _super.prototype.dispose.call(this);
388
437
  try {
389
438
  for (var _b = __values(this._viewDisposables.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
@@ -391,12 +440,12 @@ var PaneviewComponent = /** @class */ (function (_super) {
391
440
  value.dispose();
392
441
  }
393
442
  }
394
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
443
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
395
444
  finally {
396
445
  try {
397
446
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
398
447
  }
399
- finally { if (e_2) throw e_2.error; }
448
+ finally { if (e_5) throw e_5.error; }
400
449
  }
401
450
  this._viewDisposables.clear();
402
451
  this.paneview.dispose();
@@ -19,5 +19,5 @@ export interface SplitviewComponentOptions extends SplitViewOptions {
19
19
  [componentName: string]: any;
20
20
  };
21
21
  frameworkWrapper?: FrameworkFactory<SplitviewPanel>;
22
- parentElement: HTMLElement;
22
+ className?: string;
23
23
  }
@@ -473,34 +473,21 @@ var Splitview = /** @class */ (function () {
473
473
  var sash_1 = document.createElement('div');
474
474
  sash_1.className = 'sash';
475
475
  var onPointerStart_1 = function (event) {
476
- var e_3, _a, e_4, _b;
476
+ var e_3, _a;
477
477
  try {
478
- for (var _c = __values(_this.viewItems), _d = _c.next(); !_d.done; _d = _c.next()) {
479
- var item = _d.value;
478
+ for (var _b = __values(_this.viewItems), _c = _b.next(); !_c.done; _c = _b.next()) {
479
+ var item = _c.value;
480
480
  item.enabled = false;
481
481
  }
482
482
  }
483
483
  catch (e_3_1) { e_3 = { error: e_3_1 }; }
484
484
  finally {
485
485
  try {
486
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
486
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
487
487
  }
488
488
  finally { if (e_3) throw e_3.error; }
489
489
  }
490
- var iframes = __spreadArray(__spreadArray([], __read((0, dom_1.getElementsByTagName)('iframe')), false), __read((0, dom_1.getElementsByTagName)('webview')), false);
491
- try {
492
- for (var iframes_1 = __values(iframes), iframes_1_1 = iframes_1.next(); !iframes_1_1.done; iframes_1_1 = iframes_1.next()) {
493
- var iframe = iframes_1_1.value;
494
- iframe.style.pointerEvents = 'none';
495
- }
496
- }
497
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
498
- finally {
499
- try {
500
- if (iframes_1_1 && !iframes_1_1.done && (_b = iframes_1.return)) _b.call(iframes_1);
501
- }
502
- finally { if (e_4) throw e_4.error; }
503
- }
490
+ var iframes = (0, dom_1.disableIframePointEvents)();
504
491
  var start = _this._orientation === Orientation.HORIZONTAL
505
492
  ? event.clientX
506
493
  : event.clientY;
@@ -565,33 +552,21 @@ var Splitview = /** @class */ (function () {
565
552
  _this.layoutViews();
566
553
  };
567
554
  var end = function () {
568
- var e_5, _a, e_6, _b;
555
+ var e_4, _a;
569
556
  try {
570
- for (var _c = __values(_this.viewItems), _d = _c.next(); !_d.done; _d = _c.next()) {
571
- var item = _d.value;
557
+ for (var _b = __values(_this.viewItems), _c = _b.next(); !_c.done; _c = _b.next()) {
558
+ var item = _c.value;
572
559
  item.enabled = true;
573
560
  }
574
561
  }
575
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
562
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
576
563
  finally {
577
564
  try {
578
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
579
- }
580
- finally { if (e_5) throw e_5.error; }
581
- }
582
- try {
583
- for (var iframes_2 = __values(iframes), iframes_2_1 = iframes_2.next(); !iframes_2_1.done; iframes_2_1 = iframes_2.next()) {
584
- var iframe = iframes_2_1.value;
585
- iframe.style.pointerEvents = 'auto';
565
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
586
566
  }
567
+ finally { if (e_4) throw e_4.error; }
587
568
  }
588
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
589
- finally {
590
- try {
591
- if (iframes_2_1 && !iframes_2_1.done && (_b = iframes_2.return)) _b.call(iframes_2);
592
- }
593
- finally { if (e_6) throw e_6.error; }
594
- }
569
+ iframes.release();
595
570
  _this.saveProportions();
596
571
  document.removeEventListener('pointermove', onPointerMove);
597
572
  document.removeEventListener('pointerup', end);
@@ -624,7 +599,7 @@ var Splitview = /** @class */ (function () {
624
599
  this._onDidAddView.fire(view);
625
600
  };
626
601
  Splitview.prototype.distributeViewSizes = function () {
627
- var e_7, _a, e_8, _b;
602
+ var e_5, _a, e_6, _b;
628
603
  var _this = this;
629
604
  var flexibleViewItems = [];
630
605
  var flexibleSize = 0;
@@ -637,12 +612,12 @@ var Splitview = /** @class */ (function () {
637
612
  }
638
613
  }
639
614
  }
640
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
615
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
641
616
  finally {
642
617
  try {
643
618
  if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
644
619
  }
645
- finally { if (e_7) throw e_7.error; }
620
+ finally { if (e_5) throw e_5.error; }
646
621
  }
647
622
  var size = Math.floor(flexibleSize / flexibleViewItems.length);
648
623
  try {
@@ -651,12 +626,12 @@ var Splitview = /** @class */ (function () {
651
626
  item.size = (0, math_1.clamp)(size, item.minimumSize, item.maximumSize);
652
627
  }
653
628
  }
654
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
629
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
655
630
  finally {
656
631
  try {
657
632
  if (flexibleViewItems_1_1 && !flexibleViewItems_1_1.done && (_b = flexibleViewItems_1.return)) _b.call(flexibleViewItems_1);
658
633
  }
659
- finally { if (e_8) throw e_8.error; }
634
+ finally { if (e_6) throw e_6.error; }
660
635
  }
661
636
  var indexes = (0, math_1.range)(this.viewItems.length);
662
637
  var lowPriorityIndexes = indexes.filter(function (i) { return _this.viewItems[i].priority === LayoutPriority.Low; });
@@ -740,7 +715,7 @@ var Splitview = /** @class */ (function () {
740
715
  this.saveProportions();
741
716
  };
742
717
  Splitview.prototype.distributeEmptySpace = function (lowPriorityIndex) {
743
- var e_9, _a, e_10, _b;
718
+ var e_7, _a, e_8, _b;
744
719
  var _this = this;
745
720
  var contentSize = this.viewItems.reduce(function (r, i) { return r + i.size; }, 0);
746
721
  var emptyDelta = this.size - contentSize;
@@ -753,12 +728,12 @@ var Splitview = /** @class */ (function () {
753
728
  (0, array_1.pushToStart)(indexes, index);
754
729
  }
755
730
  }
756
- catch (e_9_1) { e_9 = { error: e_9_1 }; }
731
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
757
732
  finally {
758
733
  try {
759
734
  if (highPriorityIndexes_2_1 && !highPriorityIndexes_2_1.done && (_a = highPriorityIndexes_2.return)) _a.call(highPriorityIndexes_2);
760
735
  }
761
- finally { if (e_9) throw e_9.error; }
736
+ finally { if (e_7) throw e_7.error; }
762
737
  }
763
738
  try {
764
739
  for (var lowPriorityIndexes_2 = __values(lowPriorityIndexes), lowPriorityIndexes_2_1 = lowPriorityIndexes_2.next(); !lowPriorityIndexes_2_1.done; lowPriorityIndexes_2_1 = lowPriorityIndexes_2.next()) {
@@ -766,12 +741,12 @@ var Splitview = /** @class */ (function () {
766
741
  (0, array_1.pushToEnd)(indexes, index);
767
742
  }
768
743
  }
769
- catch (e_10_1) { e_10 = { error: e_10_1 }; }
744
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
770
745
  finally {
771
746
  try {
772
747
  if (lowPriorityIndexes_2_1 && !lowPriorityIndexes_2_1.done && (_b = lowPriorityIndexes_2.return)) _b.call(lowPriorityIndexes_2);
773
748
  }
774
- finally { if (e_10) throw e_10.error; }
749
+ finally { if (e_8) throw e_8.error; }
775
750
  }
776
751
  if (typeof lowPriorityIndex === 'number') {
777
752
  (0, array_1.pushToEnd)(indexes, lowPriorityIndex);
@@ -808,29 +783,47 @@ var Splitview = /** @class */ (function () {
808
783
  if (this.viewItems.length === 0) {
809
784
  return;
810
785
  }
811
- var sashCount = this.viewItems.length - 1;
812
- var marginReducedSize = (this.margin * sashCount) / this.viewItems.length;
786
+ var visibleViewItems = this.viewItems.filter(function (i) { return i.visible; });
787
+ var sashCount = Math.max(0, visibleViewItems.length - 1);
788
+ var marginReducedSize = (this.margin * sashCount) / Math.max(1, visibleViewItems.length);
813
789
  var totalLeftOffset = 0;
814
790
  var viewLeftOffsets = [];
815
- for (var i = 0; i < this.viewItems.length - 1; i++) {
816
- totalLeftOffset += this.viewItems[i].size;
817
- viewLeftOffsets.push(totalLeftOffset);
818
- var offset = Math.min(Math.max(0, totalLeftOffset - 2), this.size - this.margin);
819
- if (this._orientation === Orientation.HORIZONTAL) {
820
- this.sashes[i].container.style.left = "".concat(offset, "px");
821
- this.sashes[i].container.style.top = "0px";
791
+ var sashWidth = 4; // hardcoded in css
792
+ var runningVisiblePanelCount = this.viewItems.reduce(function (arr, viewItem, i) {
793
+ var flag = viewItem.visible ? 1 : 0;
794
+ if (i === 0) {
795
+ arr.push(flag);
822
796
  }
823
- if (this._orientation === Orientation.VERTICAL) {
824
- this.sashes[i].container.style.left = "0px";
825
- this.sashes[i].container.style.top = "".concat(offset, "px");
797
+ else {
798
+ arr.push(arr[i - 1] + flag);
826
799
  }
827
- }
800
+ return arr;
801
+ }, []);
802
+ // calculate both view and cash positions
828
803
  this.viewItems.forEach(function (view, i) {
829
- var size = view.size - marginReducedSize;
830
- var offset = i === 0
804
+ totalLeftOffset += _this.viewItems[i].size;
805
+ viewLeftOffsets.push(totalLeftOffset);
806
+ var size = view.visible ? view.size - marginReducedSize : 0;
807
+ var visiblePanelsBeforeThisView = Math.max(0, runningVisiblePanelCount[i] - 1);
808
+ var offset = i === 0 || visiblePanelsBeforeThisView === 0
831
809
  ? 0
832
810
  : viewLeftOffsets[i - 1] +
833
- (i / sashCount) * marginReducedSize;
811
+ (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
812
+ if (i < _this.viewItems.length - 1) {
813
+ // calculate sash position
814
+ var newSize = view.visible
815
+ ? offset + size - sashWidth / 2 + _this.margin / 2
816
+ : offset;
817
+ if (_this._orientation === Orientation.HORIZONTAL) {
818
+ _this.sashes[i].container.style.left = "".concat(newSize, "px");
819
+ _this.sashes[i].container.style.top = "0px";
820
+ }
821
+ if (_this._orientation === Orientation.VERTICAL) {
822
+ _this.sashes[i].container.style.left = "0px";
823
+ _this.sashes[i].container.style.top = "".concat(newSize, "px");
824
+ }
825
+ }
826
+ // calculate view position
834
827
  if (_this._orientation === Orientation.HORIZONTAL) {
835
828
  view.container.style.width = "".concat(size, "px");
836
829
  view.container.style.left = "".concat(offset, "px");
@@ -847,7 +840,7 @@ var Splitview = /** @class */ (function () {
847
840
  });
848
841
  };
849
842
  Splitview.prototype.findFirstSnapIndex = function (indexes) {
850
- var e_11, _a, e_12, _b;
843
+ var e_9, _a, e_10, _b;
851
844
  try {
852
845
  // visible views first
853
846
  for (var indexes_1 = __values(indexes), indexes_1_1 = indexes_1.next(); !indexes_1_1.done; indexes_1_1 = indexes_1.next()) {
@@ -861,12 +854,12 @@ var Splitview = /** @class */ (function () {
861
854
  }
862
855
  }
863
856
  }
864
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
857
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
865
858
  finally {
866
859
  try {
867
860
  if (indexes_1_1 && !indexes_1_1.done && (_a = indexes_1.return)) _a.call(indexes_1);
868
861
  }
869
- finally { if (e_11) throw e_11.error; }
862
+ finally { if (e_9) throw e_9.error; }
870
863
  }
871
864
  try {
872
865
  // then, hidden views
@@ -882,12 +875,12 @@ var Splitview = /** @class */ (function () {
882
875
  }
883
876
  }
884
877
  }
885
- catch (e_12_1) { e_12 = { error: e_12_1 }; }
878
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
886
879
  finally {
887
880
  try {
888
881
  if (indexes_2_1 && !indexes_2_1.done && (_b = indexes_2.return)) _b.call(indexes_2);
889
882
  }
890
- finally { if (e_12) throw e_12.error; }
883
+ finally { if (e_10) throw e_10.error; }
891
884
  }
892
885
  return undefined;
893
886
  };
@@ -971,7 +964,7 @@ var Splitview = /** @class */ (function () {
971
964
  return element;
972
965
  };
973
966
  Splitview.prototype.dispose = function () {
974
- var e_13, _a;
967
+ var e_11, _a;
975
968
  this._onDidSashEnd.dispose();
976
969
  this._onDidAddView.dispose();
977
970
  this._onDidRemoveView.dispose();
@@ -987,12 +980,12 @@ var Splitview = /** @class */ (function () {
987
980
  viewItem.dispose();
988
981
  }
989
982
  }
990
- catch (e_13_1) { e_13 = { error: e_13_1 }; }
983
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
991
984
  finally {
992
985
  try {
993
986
  if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
994
987
  }
995
- finally { if (e_13) throw e_13.error; }
988
+ finally { if (e_11) throw e_11.error; }
996
989
  }
997
990
  this.element.remove();
998
991
  };
@@ -1,5 +1,5 @@
1
1
  import { IDisposable } from '../lifecycle';
2
- import { IView, LayoutPriority, Orientation, Sizing, Splitview } from './splitview';
2
+ import { IView, LayoutPriority, Orientation, Sizing, Splitview, SplitViewOptions } from './splitview';
3
3
  import { SplitviewComponentOptions } from './options';
4
4
  import { BaseComponentOptions, Parameters } from '../panel/types';
5
5
  import { Event } from '../events';
@@ -31,7 +31,6 @@ export interface AddSplitviewComponentOptions<T extends Parameters = Parameters>
31
31
  minimumSize?: number;
32
32
  maximumSize?: number;
33
33
  }
34
- export type SplitviewComponentUpdateOptions = Pick<SplitviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents'>;
35
34
  export interface ISplitviewComponent extends IDisposable {
36
35
  readonly minimumSize: number;
37
36
  readonly maximumSize: number;
@@ -43,7 +42,7 @@ export interface ISplitviewComponent extends IDisposable {
43
42
  readonly onDidRemoveView: Event<IView>;
44
43
  readonly onDidLayoutFromJSON: Event<void>;
45
44
  readonly panels: SplitviewPanel[];
46
- updateOptions(options: Partial<SplitviewComponentUpdateOptions>): void;
45
+ updateOptions(options: Partial<SplitViewOptions>): void;
47
46
  addPanel<T extends object = Parameters>(options: AddSplitviewComponentOptions<T>): ISplitviewPanel;
48
47
  layout(width: number, height: number): void;
49
48
  onDidLayoutChange: Event<void>;
@@ -73,6 +72,7 @@ export declare class SplitviewComponent extends Resizable implements ISplitviewC
73
72
  readonly onDidRemoveView: Event<IView>;
74
73
  private readonly _onDidLayoutChange;
75
74
  readonly onDidLayoutChange: Event<void>;
75
+ private classNames;
76
76
  get panels(): SplitviewPanel[];
77
77
  get options(): SplitviewComponentOptions;
78
78
  get length(): number;
@@ -83,8 +83,8 @@ export declare class SplitviewComponent extends Resizable implements ISplitviewC
83
83
  get maximumSize(): number;
84
84
  get height(): number;
85
85
  get width(): number;
86
- constructor(options: SplitviewComponentOptions);
87
- updateOptions(options: Partial<SplitviewComponentUpdateOptions>): void;
86
+ constructor(parentElement: HTMLElement, options: SplitviewComponentOptions);
87
+ updateOptions(options: Partial<SplitviewComponentOptions>): void;
88
88
  focus(): void;
89
89
  movePanel(from: number, to: number): void;
90
90
  setVisible(panel: SplitviewPanel, visible: boolean): void;