dockview 4.3.1 → 4.4.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.
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview
3
- * @version 4.3.1
3
+ * @version 4.4.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -3652,6 +3652,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3652
3652
  get onDidPopoutGroupPositionChange() {
3653
3653
  return this.component.onDidPopoutGroupPositionChange;
3654
3654
  }
3655
+ get onDidOpenPopoutWindowFail() {
3656
+ return this.component.onDidOpenPopoutWindowFail;
3657
+ }
3655
3658
  /**
3656
3659
  * All panel objects.
3657
3660
  */
@@ -8231,6 +8234,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8231
8234
  this.onDidPopoutGroupSizeChange = this._onDidPopoutGroupSizeChange.event;
8232
8235
  this._onDidPopoutGroupPositionChange = new Emitter();
8233
8236
  this.onDidPopoutGroupPositionChange = this._onDidPopoutGroupPositionChange.event;
8237
+ this._onDidOpenPopoutWindowFail = new Emitter();
8238
+ this.onDidOpenPopoutWindowFail = this._onDidOpenPopoutWindowFail.event;
8234
8239
  this._onDidLayoutFromJSON = new Emitter();
8235
8240
  this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
8236
8241
  this._onDidActivePanelChange = new Emitter({ replay: true });
@@ -8295,7 +8300,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8295
8300
  if (options.debug) {
8296
8301
  this.addDisposables(new StrictEventsSequencing(this));
8297
8302
  }
8298
- this.addDisposables(this.rootDropTargetContainer, this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this._onDidMaximizedGroupChange, this._onDidOptionsChange, this._onDidPopoutGroupSizeChange, this._onDidPopoutGroupPositionChange, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
8303
+ this.addDisposables(this.rootDropTargetContainer, this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this._onDidMaximizedGroupChange, this._onDidOptionsChange, this._onDidPopoutGroupSizeChange, this._onDidPopoutGroupPositionChange, this._onDidOpenPopoutWindowFail, this.onDidViewVisibilityChangeMicroTaskQueue(() => {
8299
8304
  this.updateWatermark();
8300
8305
  }), this.onDidAdd((event) => {
8301
8306
  if (!this._moving) {
@@ -8441,13 +8446,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8441
8446
  if (_window.isDisposed) {
8442
8447
  return false;
8443
8448
  }
8444
- if (popoutContainer === null) {
8445
- popoutWindowDisposable.dispose();
8446
- return false;
8447
- }
8448
- const gready = document.createElement('div');
8449
- gready.className = 'dv-overlay-render-container';
8450
- const overlayRenderContainer = new OverlayRenderContainer(gready, this);
8451
8449
  const referenceGroup = (options === null || options === void 0 ? void 0 : options.referenceGroup)
8452
8450
  ? options.referenceGroup
8453
8451
  : itemToPopout instanceof DockviewPanel
@@ -8455,7 +8453,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8455
8453
  : itemToPopout;
8456
8454
  const referenceLocation = itemToPopout.api.location.type;
8457
8455
  /**
8458
- * The group that is being added doesn't already exist within the DOM, the most likely occurance
8456
+ * The group that is being added doesn't already exist within the DOM, the most likely occurrence
8459
8457
  * of this case is when being called from the `fromJSON(...)` method
8460
8458
  */
8461
8459
  const isGroupAddedToDom = referenceGroup.element.parentElement !== null;
@@ -8468,8 +8466,28 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8468
8466
  }
8469
8467
  else {
8470
8468
  group = this.createGroup({ id: groupId });
8471
- this._onDidAddGroup.fire(group);
8469
+ if (popoutContainer) {
8470
+ this._onDidAddGroup.fire(group);
8471
+ }
8472
8472
  }
8473
+ if (popoutContainer === null) {
8474
+ console.error('dockview: failed to create popout. perhaps you need to allow pop-ups for this website');
8475
+ popoutWindowDisposable.dispose();
8476
+ this._onDidOpenPopoutWindowFail.fire();
8477
+ // if the popout window was blocked, we need to move the group back to the reference group
8478
+ // and set it to visible
8479
+ this.movingLock(() => moveGroupWithoutDestroying({
8480
+ from: group,
8481
+ to: referenceGroup,
8482
+ }));
8483
+ if (!referenceGroup.api.isVisible) {
8484
+ referenceGroup.api.setVisible(true);
8485
+ }
8486
+ return false;
8487
+ }
8488
+ const gready = document.createElement('div');
8489
+ gready.className = 'dv-overlay-render-container';
8490
+ const overlayRenderContainer = new OverlayRenderContainer(gready, this);
8473
8491
  group.model.renderContainer = overlayRenderContainer;
8474
8492
  group.layout(_window.window.innerWidth, _window.window.innerHeight);
8475
8493
  let floatingBox;
@@ -8626,7 +8644,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
8626
8644
  return true;
8627
8645
  })
8628
8646
  .catch((err) => {
8629
- console.error('dockview: failed to create popout window', err);
8647
+ console.error('dockview: failed to create popout.', err);
8630
8648
  return false;
8631
8649
  });
8632
8650
  }