dockview 3.1.0 → 3.1.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.
@@ -57,8 +57,9 @@ function useTitle(api) {
57
57
  return title;
58
58
  }
59
59
  var DockviewDefaultTab = function (_a) {
60
- var api = _a.api, _containerApi = _a.containerApi, _params = _a.params, hideClose = _a.hideClose, closeActionOverride = _a.closeActionOverride, rest = __rest(_a, ["api", "containerApi", "params", "hideClose", "closeActionOverride"]);
60
+ var api = _a.api, _containerApi = _a.containerApi, _params = _a.params, hideClose = _a.hideClose, closeActionOverride = _a.closeActionOverride, onPointerDown = _a.onPointerDown, onPointerUp = _a.onPointerUp, onPointerLeave = _a.onPointerLeave, rest = __rest(_a, ["api", "containerApi", "params", "hideClose", "closeActionOverride", "onPointerDown", "onPointerUp", "onPointerLeave"]);
61
61
  var title = useTitle(api);
62
+ var isMiddleMouseButton = react_1.default.useRef(false);
62
63
  var onClose = react_1.default.useCallback(function (event) {
63
64
  event.preventDefault();
64
65
  if (closeActionOverride) {
@@ -68,12 +69,27 @@ var DockviewDefaultTab = function (_a) {
68
69
  api.close();
69
70
  }
70
71
  }, [api, closeActionOverride]);
71
- var onPointerDown = react_1.default.useCallback(function (e) {
72
- e.preventDefault();
72
+ var onBtnPointerDown = react_1.default.useCallback(function (event) {
73
+ event.preventDefault();
73
74
  }, []);
74
- return (react_1.default.createElement("div", __assign({ "data-testid": "dockview-dv-default-tab" }, rest, { className: "dv-default-tab" }),
75
+ var _onPointerDown = react_1.default.useCallback(function (event) {
76
+ isMiddleMouseButton.current = event.button === 1;
77
+ onPointerDown === null || onPointerDown === void 0 ? void 0 : onPointerDown(event);
78
+ }, [onPointerDown]);
79
+ var _onPointerUp = react_1.default.useCallback(function (event) {
80
+ if (isMiddleMouseButton && event.button === 1 && !hideClose) {
81
+ isMiddleMouseButton.current = false;
82
+ onClose(event);
83
+ }
84
+ onPointerUp === null || onPointerUp === void 0 ? void 0 : onPointerUp(event);
85
+ }, [onPointerUp, onClose, hideClose]);
86
+ var _onPointerLeave = react_1.default.useCallback(function (event) {
87
+ isMiddleMouseButton.current = false;
88
+ onPointerLeave === null || onPointerLeave === void 0 ? void 0 : onPointerLeave(event);
89
+ }, [onPointerLeave]);
90
+ return (react_1.default.createElement("div", __assign({ "data-testid": "dockview-dv-default-tab" }, rest, { onPointerDown: _onPointerDown, onPointerUp: _onPointerUp, onPointerLeave: _onPointerLeave, className: "dv-default-tab" }),
75
91
  react_1.default.createElement("span", { className: "dv-default-tab-content" }, title),
76
- !hideClose && (react_1.default.createElement("div", { className: "dv-default-tab-action", onPointerDown: onPointerDown, onClick: onClose },
92
+ !hideClose && (react_1.default.createElement("div", { className: "dv-default-tab-action", onPointerDown: onBtnPointerDown, onClick: onClose },
77
93
  react_1.default.createElement(svg_1.CloseButton, null)))));
78
94
  };
79
95
  exports.DockviewDefaultTab = DockviewDefaultTab;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview
3
- * @version 3.1.0
3
+ * @version 3.1.1
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -4772,8 +4772,8 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4772
4772
  this.accessor = accessor;
4773
4773
  this.group = group;
4774
4774
  this.content = undefined;
4775
- this._onChanged = new Emitter();
4776
- this.onChanged = this._onChanged.event;
4775
+ this._onPointDown = new Emitter();
4776
+ this.onPointerDown = this._onPointDown.event;
4777
4777
  this._onDropped = new Emitter();
4778
4778
  this.onDrop = this._onDropped.event;
4779
4779
  this._onDragStart = new Emitter();
@@ -4803,13 +4803,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4803
4803
  },
4804
4804
  });
4805
4805
  this.onWillShowOverlay = this.dropTarget.onWillShowOverlay;
4806
- this.addDisposables(this._onChanged, this._onDropped, this._onDragStart, dragHandler.onDragStart((event) => {
4806
+ this.addDisposables(this._onPointDown, this._onDropped, this._onDragStart, dragHandler.onDragStart((event) => {
4807
4807
  this._onDragStart.fire(event);
4808
4808
  }), dragHandler, addDisposableListener(this._element, 'pointerdown', (event) => {
4809
- if (event.defaultPrevented) {
4810
- return;
4811
- }
4812
- this._onChanged.fire(event);
4809
+ this._onPointDown.fire(event);
4813
4810
  }), this.dropTarget.onDrop((event) => {
4814
4811
  this._onDropped.fire(event);
4815
4812
  }), this.dropTarget);
@@ -5110,7 +5107,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5110
5107
  tab.setContent(panel.view.tab);
5111
5108
  const disposable = new CompositeDisposable(tab.onDragStart((event) => {
5112
5109
  this._onTabDragStart.fire({ nativeEvent: event, panel });
5113
- }), tab.onChanged((event) => {
5110
+ }), tab.onPointerDown((event) => {
5114
5111
  if (event.defaultPrevented) {
5115
5112
  return;
5116
5113
  }
@@ -5137,9 +5134,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5137
5134
  this.group.model.openPanel(panel);
5138
5135
  }
5139
5136
  break;
5140
- case 1: // middle click
5141
- panel.api.close();
5142
- break;
5143
5137
  }
5144
5138
  }), tab.onDrop((event) => {
5145
5139
  this._onDrop.fire({
@@ -10577,8 +10571,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10577
10571
  return title;
10578
10572
  }
10579
10573
  const DockviewDefaultTab = (_a) => {
10580
- var { api, containerApi: _containerApi, params: _params, hideClose, closeActionOverride } = _a, rest = __rest(_a, ["api", "containerApi", "params", "hideClose", "closeActionOverride"]);
10574
+ var { api, containerApi: _containerApi, params: _params, hideClose, closeActionOverride, onPointerDown, onPointerUp, onPointerLeave } = _a, rest = __rest(_a, ["api", "containerApi", "params", "hideClose", "closeActionOverride", "onPointerDown", "onPointerUp", "onPointerLeave"]);
10581
10575
  const title = useTitle(api);
10576
+ const isMiddleMouseButton = React.useRef(false);
10582
10577
  const onClose = React.useCallback((event) => {
10583
10578
  event.preventDefault();
10584
10579
  if (closeActionOverride) {
@@ -10588,12 +10583,27 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
10588
10583
  api.close();
10589
10584
  }
10590
10585
  }, [api, closeActionOverride]);
10591
- const onPointerDown = React.useCallback((e) => {
10592
- e.preventDefault();
10586
+ const onBtnPointerDown = React.useCallback((event) => {
10587
+ event.preventDefault();
10593
10588
  }, []);
10594
- return (React.createElement("div", Object.assign({ "data-testid": "dockview-dv-default-tab" }, rest, { className: "dv-default-tab" }),
10589
+ const _onPointerDown = React.useCallback((event) => {
10590
+ isMiddleMouseButton.current = event.button === 1;
10591
+ onPointerDown === null || onPointerDown === void 0 ? void 0 : onPointerDown(event);
10592
+ }, [onPointerDown]);
10593
+ const _onPointerUp = React.useCallback((event) => {
10594
+ if (isMiddleMouseButton && event.button === 1 && !hideClose) {
10595
+ isMiddleMouseButton.current = false;
10596
+ onClose(event);
10597
+ }
10598
+ onPointerUp === null || onPointerUp === void 0 ? void 0 : onPointerUp(event);
10599
+ }, [onPointerUp, onClose, hideClose]);
10600
+ const _onPointerLeave = React.useCallback((event) => {
10601
+ isMiddleMouseButton.current = false;
10602
+ onPointerLeave === null || onPointerLeave === void 0 ? void 0 : onPointerLeave(event);
10603
+ }, [onPointerLeave]);
10604
+ return (React.createElement("div", Object.assign({ "data-testid": "dockview-dv-default-tab" }, rest, { onPointerDown: _onPointerDown, onPointerUp: _onPointerUp, onPointerLeave: _onPointerLeave, className: "dv-default-tab" }),
10595
10605
  React.createElement("span", { className: "dv-default-tab-content" }, title),
10596
- !hideClose && (React.createElement("div", { className: "dv-default-tab-action", onPointerDown: onPointerDown, onClick: onClose },
10606
+ !hideClose && (React.createElement("div", { className: "dv-default-tab-action", onPointerDown: onBtnPointerDown, onClick: onClose },
10597
10607
  React.createElement(CloseButton, null)))));
10598
10608
  };
10599
10609