dockview 1.7.0 → 1.7.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 (130) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -52
  3. package/dist/cjs/dockview/defaultTab.d.ts +5 -4
  4. package/dist/cjs/dockview/defaultTab.d.ts.map +1 -0
  5. package/dist/cjs/dockview/defaultTab.js +72 -72
  6. package/dist/cjs/dockview/dockview.d.ts +36 -32
  7. package/dist/cjs/dockview/dockview.d.ts.map +1 -0
  8. package/dist/cjs/dockview/dockview.js +196 -210
  9. package/dist/cjs/dockview/dockview.js.map +1 -1
  10. package/dist/cjs/dockview/groupControlsRenderer.d.ts +33 -32
  11. package/dist/cjs/dockview/groupControlsRenderer.d.ts.map +1 -0
  12. package/dist/cjs/dockview/groupControlsRenderer.js +86 -86
  13. package/dist/cjs/dockview/reactContentPart.d.ts +23 -22
  14. package/dist/cjs/dockview/reactContentPart.d.ts.map +1 -0
  15. package/dist/cjs/dockview/reactContentPart.js +50 -50
  16. package/dist/cjs/dockview/reactHeaderPart.d.ts +19 -18
  17. package/dist/cjs/dockview/reactHeaderPart.d.ts.map +1 -0
  18. package/dist/cjs/dockview/reactHeaderPart.js +43 -43
  19. package/dist/cjs/dockview/reactWatermarkPart.d.ts +25 -24
  20. package/dist/cjs/dockview/reactWatermarkPart.d.ts.map +1 -0
  21. package/dist/cjs/dockview/reactWatermarkPart.js +53 -53
  22. package/dist/cjs/gridview/gridview.d.ts +23 -22
  23. package/dist/cjs/gridview/gridview.d.ts.map +1 -0
  24. package/dist/cjs/gridview/gridview.js +96 -109
  25. package/dist/cjs/gridview/gridview.js.map +1 -1
  26. package/dist/cjs/gridview/view.d.ts +11 -10
  27. package/dist/cjs/gridview/view.d.ts.map +1 -0
  28. package/dist/cjs/gridview/view.js +39 -39
  29. package/dist/cjs/index.d.ts +11 -10
  30. package/dist/cjs/index.d.ts.map +1 -0
  31. package/dist/cjs/index.js +24 -24
  32. package/dist/cjs/paneview/paneview.d.ts +25 -24
  33. package/dist/cjs/paneview/paneview.d.ts.map +1 -0
  34. package/dist/cjs/paneview/paneview.js +139 -153
  35. package/dist/cjs/paneview/paneview.js.map +1 -1
  36. package/dist/cjs/paneview/view.d.ts +20 -19
  37. package/dist/cjs/paneview/view.d.ts.map +1 -0
  38. package/dist/cjs/paneview/view.js +44 -44
  39. package/dist/cjs/react.d.ts +36 -35
  40. package/dist/cjs/react.d.ts.map +1 -0
  41. package/dist/cjs/react.js +196 -196
  42. package/dist/cjs/splitview/splitview.d.ts +23 -22
  43. package/dist/cjs/splitview/splitview.d.ts.map +1 -0
  44. package/dist/cjs/splitview/splitview.js +91 -105
  45. package/dist/cjs/splitview/splitview.js.map +1 -1
  46. package/dist/cjs/splitview/view.d.ts +11 -10
  47. package/dist/cjs/splitview/view.d.ts.map +1 -0
  48. package/dist/cjs/splitview/view.js +39 -39
  49. package/dist/cjs/svg.d.ts +4 -3
  50. package/dist/cjs/svg.d.ts.map +1 -0
  51. package/dist/cjs/svg.js +35 -35
  52. package/dist/cjs/types.d.ts +8 -7
  53. package/dist/cjs/types.d.ts.map +1 -0
  54. package/dist/cjs/types.js +2 -2
  55. package/dist/dockview.amd.js +7040 -7091
  56. package/dist/dockview.amd.min.js +2 -2
  57. package/dist/dockview.amd.min.noStyle.js +2 -2
  58. package/dist/dockview.amd.noStyle.js +7038 -7089
  59. package/dist/dockview.cjs.js +7039 -7090
  60. package/dist/dockview.esm.js +7043 -7094
  61. package/dist/dockview.esm.min.js +2 -2
  62. package/dist/dockview.js +7040 -7091
  63. package/dist/dockview.min.js +2 -2
  64. package/dist/dockview.min.noStyle.js +2 -2
  65. package/dist/dockview.noStyle.js +7038 -7089
  66. package/dist/esm/dockview/defaultTab.d.ts +5 -4
  67. package/dist/esm/dockview/defaultTab.d.ts.map +1 -0
  68. package/dist/esm/dockview/defaultTab.js +35 -34
  69. package/dist/esm/dockview/defaultTab.js.map +1 -0
  70. package/dist/esm/dockview/dockview.d.ts +36 -32
  71. package/dist/esm/dockview/dockview.d.ts.map +1 -0
  72. package/dist/esm/dockview/dockview.js +155 -168
  73. package/dist/esm/dockview/dockview.js.map +1 -0
  74. package/dist/esm/dockview/groupControlsRenderer.d.ts +33 -32
  75. package/dist/esm/dockview/groupControlsRenderer.d.ts.map +1 -0
  76. package/dist/esm/dockview/groupControlsRenderer.js +69 -68
  77. package/dist/esm/dockview/groupControlsRenderer.js.map +1 -0
  78. package/dist/esm/dockview/reactContentPart.d.ts +23 -22
  79. package/dist/esm/dockview/reactContentPart.d.ts.map +1 -0
  80. package/dist/esm/dockview/reactContentPart.js +42 -41
  81. package/dist/esm/dockview/reactContentPart.js.map +1 -0
  82. package/dist/esm/dockview/reactHeaderPart.d.ts +19 -18
  83. package/dist/esm/dockview/reactHeaderPart.d.ts.map +1 -0
  84. package/dist/esm/dockview/reactHeaderPart.js +35 -34
  85. package/dist/esm/dockview/reactHeaderPart.js.map +1 -0
  86. package/dist/esm/dockview/reactWatermarkPart.d.ts +25 -24
  87. package/dist/esm/dockview/reactWatermarkPart.d.ts.map +1 -0
  88. package/dist/esm/dockview/reactWatermarkPart.js +45 -44
  89. package/dist/esm/dockview/reactWatermarkPart.js.map +1 -0
  90. package/dist/esm/gridview/gridview.d.ts +23 -22
  91. package/dist/esm/gridview/gridview.d.ts.map +1 -0
  92. package/dist/esm/gridview/gridview.js +55 -67
  93. package/dist/esm/gridview/gridview.js.map +1 -0
  94. package/dist/esm/gridview/view.d.ts +11 -10
  95. package/dist/esm/gridview/view.d.ts.map +1 -0
  96. package/dist/esm/gridview/view.js +18 -17
  97. package/dist/esm/gridview/view.js.map +1 -0
  98. package/dist/esm/index.d.ts +11 -10
  99. package/dist/esm/index.d.ts.map +1 -0
  100. package/dist/esm/index.js +9 -8
  101. package/dist/esm/index.js.map +1 -0
  102. package/dist/esm/paneview/paneview.d.ts +25 -24
  103. package/dist/esm/paneview/paneview.d.ts.map +1 -0
  104. package/dist/esm/paneview/paneview.js +85 -98
  105. package/dist/esm/paneview/paneview.js.map +1 -0
  106. package/dist/esm/paneview/view.d.ts +20 -19
  107. package/dist/esm/paneview/view.d.ts.map +1 -0
  108. package/dist/esm/paneview/view.js +36 -35
  109. package/dist/esm/paneview/view.js.map +1 -0
  110. package/dist/esm/react.d.ts +36 -35
  111. package/dist/esm/react.d.ts.map +1 -0
  112. package/dist/esm/react.js +128 -127
  113. package/dist/esm/react.js.map +1 -0
  114. package/dist/esm/splitview/splitview.d.ts +23 -22
  115. package/dist/esm/splitview/splitview.d.ts.map +1 -0
  116. package/dist/esm/splitview/splitview.js +50 -63
  117. package/dist/esm/splitview/splitview.js.map +1 -0
  118. package/dist/esm/splitview/view.d.ts +11 -10
  119. package/dist/esm/splitview/view.d.ts.map +1 -0
  120. package/dist/esm/splitview/view.js +18 -17
  121. package/dist/esm/splitview/view.js.map +1 -0
  122. package/dist/esm/svg.d.ts +4 -3
  123. package/dist/esm/svg.d.ts.map +1 -0
  124. package/dist/esm/svg.js +8 -7
  125. package/dist/esm/svg.js.map +1 -0
  126. package/dist/esm/types.d.ts +8 -7
  127. package/dist/esm/types.d.ts.map +1 -0
  128. package/dist/esm/types.js +2 -1
  129. package/dist/esm/types.js.map +1 -0
  130. package/package.json +5 -5
package/dist/cjs/react.js CHANGED
@@ -1,197 +1,197 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __read = (this && this.__read) || function (o, n) {
37
- var m = typeof Symbol === "function" && o[Symbol.iterator];
38
- if (!m) return o;
39
- var i = m.call(o), r, ar = [], e;
40
- try {
41
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
42
- }
43
- catch (error) { e = { error: error }; }
44
- finally {
45
- try {
46
- if (r && !r.done && (m = i["return"])) m.call(i);
47
- }
48
- finally { if (e) throw e.error; }
49
- }
50
- return ar;
51
- };
52
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
53
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
54
- if (ar || !(i in from)) {
55
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
56
- ar[i] = from[i];
57
- }
58
- }
59
- return to.concat(ar || Array.prototype.slice.call(from));
60
- };
61
- Object.defineProperty(exports, "__esModule", { value: true });
62
- exports.isReactElement = exports.usePortalsLifecycle = exports.ReactPart = exports.ReactPartContext = void 0;
63
- var React = __importStar(require("react"));
64
- var ReactDOM = __importStar(require("react-dom"));
65
- /**
66
- * This component is intended to interface between vanilla-js and React hence we need to be
67
- * creative in how we update props.
68
- * A ref of the component is exposed with an update method; which when called stores the props
69
- * as a ref within this component and forcefully triggers a re-render of the component using
70
- * the ref of props we just set on the renderered component as the props passed to the inner
71
- * component
72
- */
73
- var ReactComponentBridge = function (props, ref) {
74
- var _a = __read(React.useState(), 2), _ = _a[0], triggerRender = _a[1];
75
- var _props = React.useRef(props.componentProps);
76
- React.useImperativeHandle(ref, function () { return ({
77
- update: function (componentProps) {
78
- _props.current = __assign(__assign({}, _props.current), componentProps);
79
- /**
80
- * setting a arbitrary piece of state within this component will
81
- * trigger a re-render.
82
- * we use this rather than updating through a prop since we can
83
- * pass a ref into the vanilla-js world.
84
- */
85
- triggerRender(Date.now());
86
- },
87
- }); }, []);
88
- return React.createElement(props.component, _props.current);
89
- };
90
- ReactComponentBridge.displayName = 'DockviewReactJsBridge';
91
- /**
92
- * Since we are storing the React.Portal references in a rendered array they
93
- * require a key property like any other React element rendered in an array
94
- * to prevent excessive re-rendering
95
- */
96
- var uniquePortalKeyGenerator = (function () {
97
- var value = 1;
98
- return { next: function () { return "dockview_react_portal_key_".concat((value++).toString()); } };
99
- })();
100
- exports.ReactPartContext = React.createContext({});
101
- var ReactPart = /** @class */ (function () {
102
- function ReactPart(parent, portalStore, component, parameters, context) {
103
- this.parent = parent;
104
- this.portalStore = portalStore;
105
- this.component = component;
106
- this.parameters = parameters;
107
- this.context = context;
108
- this._initialProps = {};
109
- this.disposed = false;
110
- this.createPortal();
111
- }
112
- ReactPart.prototype.update = function (props) {
113
- if (this.disposed) {
114
- throw new Error('invalid operation: resource is already disposed');
115
- }
116
- if (!this.componentInstance) {
117
- // if the component is yet to be mounted store the props
118
- this._initialProps = __assign(__assign({}, this._initialProps), props);
119
- }
120
- else {
121
- this.componentInstance.update(props);
122
- }
123
- };
124
- ReactPart.prototype.createPortal = function () {
125
- var _this = this;
126
- if (this.disposed) {
127
- throw new Error('invalid operation: resource is already disposed');
128
- }
129
- if (typeof this.component !== 'function') {
130
- /**
131
- * we know this isn't a React.FunctionComponent so throw an error here.
132
- * if we do not intercept this the React library will throw a very obsure error
133
- * for the same reason, at least at this point we will emit a sensible stacktrace.
134
- */
135
- throw new Error('Invalid Operation. dockview only supports React Functional Components.');
136
- }
137
- var bridgeComponent = React.createElement(React.forwardRef(ReactComponentBridge), {
138
- component: this
139
- .component,
140
- componentProps: this.parameters,
141
- ref: function (element) {
142
- _this.componentInstance = element;
143
- if (Object.keys(_this._initialProps).length > 0) {
144
- _this.componentInstance.update(_this._initialProps);
145
- _this._initialProps = {}; // don't keep a reference to the users object once no longer required
146
- }
147
- },
148
- });
149
- var node = this.context
150
- ? React.createElement(exports.ReactPartContext.Provider, { value: this.context }, bridgeComponent)
151
- : bridgeComponent;
152
- var portal = ReactDOM.createPortal(node, this.parent, uniquePortalKeyGenerator.next());
153
- this.ref = {
154
- portal: portal,
155
- disposable: this.portalStore.addPortal(portal),
156
- };
157
- };
158
- ReactPart.prototype.dispose = function () {
159
- var _a;
160
- (_a = this.ref) === null || _a === void 0 ? void 0 : _a.disposable.dispose();
161
- this.disposed = true;
162
- };
163
- return ReactPart;
164
- }());
165
- exports.ReactPart = ReactPart;
166
- /**
167
- * A React Hook that returns an array of portals to be rendered by the user of this hook
168
- * and a disposable function to add a portal. Calling dispose removes this portal from the
169
- * portal array
170
- */
171
- var usePortalsLifecycle = function () {
172
- var _a = __read(React.useState([]), 2), portals = _a[0], setPortals = _a[1];
173
- React.useDebugValue("Portal count: ".concat(portals.length));
174
- var addPortal = React.useCallback(function (portal) {
175
- setPortals(function (existingPortals) { return __spreadArray(__spreadArray([], __read(existingPortals), false), [portal], false); });
176
- var disposed = false;
177
- return {
178
- dispose: function () {
179
- if (disposed) {
180
- throw new Error('invalid operation: resource already disposed');
181
- }
182
- disposed = true;
183
- setPortals(function (existingPortals) {
184
- return existingPortals.filter(function (p) { return p !== portal; });
185
- });
186
- },
187
- };
188
- }, []);
189
- return [portals, addPortal];
190
- };
191
- exports.usePortalsLifecycle = usePortalsLifecycle;
192
- // it does the job...
193
- function isReactElement(element) {
194
- return element === null || element === void 0 ? void 0 : element.type;
195
- }
196
- exports.isReactElement = isReactElement;
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __read = (this && this.__read) || function (o, n) {
37
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
38
+ if (!m) return o;
39
+ var i = m.call(o), r, ar = [], e;
40
+ try {
41
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
42
+ }
43
+ catch (error) { e = { error: error }; }
44
+ finally {
45
+ try {
46
+ if (r && !r.done && (m = i["return"])) m.call(i);
47
+ }
48
+ finally { if (e) throw e.error; }
49
+ }
50
+ return ar;
51
+ };
52
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
53
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
54
+ if (ar || !(i in from)) {
55
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
56
+ ar[i] = from[i];
57
+ }
58
+ }
59
+ return to.concat(ar || Array.prototype.slice.call(from));
60
+ };
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ exports.isReactElement = exports.usePortalsLifecycle = exports.ReactPart = exports.ReactPartContext = void 0;
63
+ var React = __importStar(require("react"));
64
+ var ReactDOM = __importStar(require("react-dom"));
65
+ /**
66
+ * This component is intended to interface between vanilla-js and React hence we need to be
67
+ * creative in how we update props.
68
+ * A ref of the component is exposed with an update method; which when called stores the props
69
+ * as a ref within this component and forcefully triggers a re-render of the component using
70
+ * the ref of props we just set on the renderered component as the props passed to the inner
71
+ * component
72
+ */
73
+ var ReactComponentBridge = function (props, ref) {
74
+ var _a = __read(React.useState(), 2), _ = _a[0], triggerRender = _a[1];
75
+ var _props = React.useRef(props.componentProps);
76
+ React.useImperativeHandle(ref, function () { return ({
77
+ update: function (componentProps) {
78
+ _props.current = __assign(__assign({}, _props.current), componentProps);
79
+ /**
80
+ * setting a arbitrary piece of state within this component will
81
+ * trigger a re-render.
82
+ * we use this rather than updating through a prop since we can
83
+ * pass a ref into the vanilla-js world.
84
+ */
85
+ triggerRender(Date.now());
86
+ },
87
+ }); }, []);
88
+ return React.createElement(props.component, _props.current);
89
+ };
90
+ ReactComponentBridge.displayName = 'DockviewReactJsBridge';
91
+ /**
92
+ * Since we are storing the React.Portal references in a rendered array they
93
+ * require a key property like any other React element rendered in an array
94
+ * to prevent excessive re-rendering
95
+ */
96
+ var uniquePortalKeyGenerator = (function () {
97
+ var value = 1;
98
+ return { next: function () { return "dockview_react_portal_key_".concat((value++).toString()); } };
99
+ })();
100
+ exports.ReactPartContext = React.createContext({});
101
+ var ReactPart = /** @class */ (function () {
102
+ function ReactPart(parent, portalStore, component, parameters, context) {
103
+ this.parent = parent;
104
+ this.portalStore = portalStore;
105
+ this.component = component;
106
+ this.parameters = parameters;
107
+ this.context = context;
108
+ this._initialProps = {};
109
+ this.disposed = false;
110
+ this.createPortal();
111
+ }
112
+ ReactPart.prototype.update = function (props) {
113
+ if (this.disposed) {
114
+ throw new Error('invalid operation: resource is already disposed');
115
+ }
116
+ if (!this.componentInstance) {
117
+ // if the component is yet to be mounted store the props
118
+ this._initialProps = __assign(__assign({}, this._initialProps), props);
119
+ }
120
+ else {
121
+ this.componentInstance.update(props);
122
+ }
123
+ };
124
+ ReactPart.prototype.createPortal = function () {
125
+ var _this = this;
126
+ if (this.disposed) {
127
+ throw new Error('invalid operation: resource is already disposed');
128
+ }
129
+ if (typeof this.component !== 'function') {
130
+ /**
131
+ * we know this isn't a React.FunctionComponent so throw an error here.
132
+ * if we do not intercept this the React library will throw a very obsure error
133
+ * for the same reason, at least at this point we will emit a sensible stacktrace.
134
+ */
135
+ throw new Error('Invalid Operation. dockview only supports React Functional Components.');
136
+ }
137
+ var bridgeComponent = React.createElement(React.forwardRef(ReactComponentBridge), {
138
+ component: this
139
+ .component,
140
+ componentProps: this.parameters,
141
+ ref: function (element) {
142
+ _this.componentInstance = element;
143
+ if (Object.keys(_this._initialProps).length > 0) {
144
+ _this.componentInstance.update(_this._initialProps);
145
+ _this._initialProps = {}; // don't keep a reference to the users object once no longer required
146
+ }
147
+ },
148
+ });
149
+ var node = this.context
150
+ ? React.createElement(exports.ReactPartContext.Provider, { value: this.context }, bridgeComponent)
151
+ : bridgeComponent;
152
+ var portal = ReactDOM.createPortal(node, this.parent, uniquePortalKeyGenerator.next());
153
+ this.ref = {
154
+ portal: portal,
155
+ disposable: this.portalStore.addPortal(portal),
156
+ };
157
+ };
158
+ ReactPart.prototype.dispose = function () {
159
+ var _a;
160
+ (_a = this.ref) === null || _a === void 0 ? void 0 : _a.disposable.dispose();
161
+ this.disposed = true;
162
+ };
163
+ return ReactPart;
164
+ }());
165
+ exports.ReactPart = ReactPart;
166
+ /**
167
+ * A React Hook that returns an array of portals to be rendered by the user of this hook
168
+ * and a disposable function to add a portal. Calling dispose removes this portal from the
169
+ * portal array
170
+ */
171
+ var usePortalsLifecycle = function () {
172
+ var _a = __read(React.useState([]), 2), portals = _a[0], setPortals = _a[1];
173
+ React.useDebugValue("Portal count: ".concat(portals.length));
174
+ var addPortal = React.useCallback(function (portal) {
175
+ setPortals(function (existingPortals) { return __spreadArray(__spreadArray([], __read(existingPortals), false), [portal], false); });
176
+ var disposed = false;
177
+ return {
178
+ dispose: function () {
179
+ if (disposed) {
180
+ throw new Error('invalid operation: resource already disposed');
181
+ }
182
+ disposed = true;
183
+ setPortals(function (existingPortals) {
184
+ return existingPortals.filter(function (p) { return p !== portal; });
185
+ });
186
+ },
187
+ };
188
+ }, []);
189
+ return [portals, addPortal];
190
+ };
191
+ exports.usePortalsLifecycle = usePortalsLifecycle;
192
+ // it does the job...
193
+ function isReactElement(element) {
194
+ return element === null || element === void 0 ? void 0 : element.type;
195
+ }
196
+ exports.isReactElement = isReactElement;
197
197
  //# sourceMappingURL=react.js.map
@@ -1,22 +1,23 @@
1
- import * as React from 'react';
2
- import { SplitviewApi, SplitviewPanelApi, Orientation } from 'dockview-core';
3
- import { PanelCollection, PanelParameters } from '../types';
4
- export interface SplitviewReadyEvent {
5
- api: SplitviewApi;
6
- }
7
- export interface ISplitviewPanelProps<T extends {
8
- [index: string]: any;
9
- } = any> extends PanelParameters<T> {
10
- api: SplitviewPanelApi;
11
- containerApi: SplitviewApi;
12
- }
13
- export interface ISplitviewReactProps {
14
- orientation?: Orientation;
15
- onReady: (event: SplitviewReadyEvent) => void;
16
- components: PanelCollection<ISplitviewPanelProps>;
17
- proportionalLayout?: boolean;
18
- hideBorders?: boolean;
19
- className?: string;
20
- disableAutoResizing?: boolean;
21
- }
22
- export declare const SplitviewReact: React.ForwardRefExoticComponent<ISplitviewReactProps & React.RefAttributes<HTMLDivElement>>;
1
+ import * as React from 'react';
2
+ import { SplitviewApi, SplitviewPanelApi, Orientation } from 'dockview-core';
3
+ import { PanelCollection, PanelParameters } from '../types';
4
+ export interface SplitviewReadyEvent {
5
+ api: SplitviewApi;
6
+ }
7
+ export interface ISplitviewPanelProps<T extends {
8
+ [index: string]: any;
9
+ } = any> extends PanelParameters<T> {
10
+ api: SplitviewPanelApi;
11
+ containerApi: SplitviewApi;
12
+ }
13
+ export interface ISplitviewReactProps {
14
+ orientation?: Orientation;
15
+ onReady: (event: SplitviewReadyEvent) => void;
16
+ components: PanelCollection<ISplitviewPanelProps>;
17
+ proportionalLayout?: boolean;
18
+ hideBorders?: boolean;
19
+ className?: string;
20
+ disableAutoResizing?: boolean;
21
+ }
22
+ export declare const SplitviewReact: React.ForwardRefExoticComponent<ISplitviewReactProps & React.RefAttributes<HTMLDivElement>>;
23
+ //# sourceMappingURL=splitview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splitview.d.ts","sourceRoot":"","sources":["../../../src/splitview/splitview.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACH,YAAY,EACZ,iBAAiB,EAGjB,WAAW,EACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG5D,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAAG,GAAG,CAC1E,SAAQ,eAAe,CAAC,CAAC,CAAC;IAC1B,GAAG,EAAE,iBAAiB,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACjC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC9C,UAAU,EAAE,eAAe,CAAC,oBAAoB,CAAC,CAAC;IAClD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,cAAc,6FAkE1B,CAAC"}
@@ -1,106 +1,92 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __read = (this && this.__read) || function (o, n) {
26
- var m = typeof Symbol === "function" && o[Symbol.iterator];
27
- if (!m) return o;
28
- var i = m.call(o), r, ar = [], e;
29
- try {
30
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
31
- }
32
- catch (error) { e = { error: error }; }
33
- finally {
34
- try {
35
- if (r && !r.done && (m = i["return"])) m.call(i);
36
- }
37
- finally { if (e) throw e.error; }
38
- }
39
- return ar;
40
- };
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.SplitviewReact = void 0;
43
- var React = __importStar(require("react"));
44
- var dockview_core_1 = require("dockview-core");
45
- var react_1 = require("../react");
46
- var view_1 = require("./view");
47
- exports.SplitviewReact = React.forwardRef(function (props, ref) {
48
- var domRef = React.useRef(null);
49
- var splitviewRef = React.useRef();
50
- var _a = __read((0, react_1.usePortalsLifecycle)(), 2), portals = _a[0], addPortal = _a[1];
51
- React.useImperativeHandle(ref, function () { return domRef.current; }, []);
52
- React.useEffect(function () {
53
- if (props.disableAutoResizing) {
54
- return function () {
55
- //
56
- };
57
- }
58
- var watcher = (0, dockview_core_1.watchElementResize)(domRef.current, function (entry) {
59
- var _a;
60
- var _b = entry.contentRect, width = _b.width, height = _b.height;
61
- (_a = splitviewRef.current) === null || _a === void 0 ? void 0 : _a.layout(width, height);
62
- });
63
- return function () {
64
- watcher.dispose();
65
- };
66
- }, [props.disableAutoResizing]);
67
- React.useEffect(function () {
68
- var splitview = new dockview_core_1.SplitviewComponent(domRef.current, {
69
- orientation: props.orientation || dockview_core_1.Orientation.HORIZONTAL,
70
- frameworkComponents: props.components,
71
- frameworkWrapper: {
72
- createComponent: function (id, componentId, component) {
73
- return new view_1.ReactPanelView(id, componentId, component, {
74
- addPortal: addPortal,
75
- });
76
- },
77
- },
78
- proportionalLayout: typeof props.proportionalLayout === 'boolean'
79
- ? props.proportionalLayout
80
- : true,
81
- styles: props.hideBorders
82
- ? { separatorBorder: 'transparent' }
83
- : undefined,
84
- });
85
- var _a = domRef.current, clientWidth = _a.clientWidth, clientHeight = _a.clientHeight;
86
- splitview.layout(clientWidth, clientHeight);
87
- if (props.onReady) {
88
- props.onReady({ api: new dockview_core_1.SplitviewApi(splitview) });
89
- }
90
- splitviewRef.current = splitview;
91
- return function () {
92
- splitview.dispose();
93
- };
94
- }, []);
95
- React.useEffect(function () {
96
- if (!splitviewRef.current) {
97
- return;
98
- }
99
- splitviewRef.current.updateOptions({
100
- frameworkComponents: props.components,
101
- });
102
- }, [props.components]);
103
- return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
104
- });
105
- exports.SplitviewReact.displayName = 'SplitviewComponent';
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __read = (this && this.__read) || function (o, n) {
26
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
27
+ if (!m) return o;
28
+ var i = m.call(o), r, ar = [], e;
29
+ try {
30
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
31
+ }
32
+ catch (error) { e = { error: error }; }
33
+ finally {
34
+ try {
35
+ if (r && !r.done && (m = i["return"])) m.call(i);
36
+ }
37
+ finally { if (e) throw e.error; }
38
+ }
39
+ return ar;
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.SplitviewReact = void 0;
43
+ var React = __importStar(require("react"));
44
+ var dockview_core_1 = require("dockview-core");
45
+ var react_1 = require("../react");
46
+ var view_1 = require("./view");
47
+ exports.SplitviewReact = React.forwardRef(function (props, ref) {
48
+ var domRef = React.useRef(null);
49
+ var splitviewRef = React.useRef();
50
+ var _a = __read((0, react_1.usePortalsLifecycle)(), 2), portals = _a[0], addPortal = _a[1];
51
+ React.useImperativeHandle(ref, function () { return domRef.current; }, []);
52
+ React.useEffect(function () {
53
+ var splitview = new dockview_core_1.SplitviewComponent({
54
+ parentElement: domRef.current,
55
+ orientation: props.orientation || dockview_core_1.Orientation.HORIZONTAL,
56
+ frameworkComponents: props.components,
57
+ frameworkWrapper: {
58
+ createComponent: function (id, componentId, component) {
59
+ return new view_1.ReactPanelView(id, componentId, component, {
60
+ addPortal: addPortal,
61
+ });
62
+ },
63
+ },
64
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
65
+ ? props.proportionalLayout
66
+ : true,
67
+ styles: props.hideBorders
68
+ ? { separatorBorder: 'transparent' }
69
+ : undefined,
70
+ });
71
+ var _a = domRef.current, clientWidth = _a.clientWidth, clientHeight = _a.clientHeight;
72
+ splitview.layout(clientWidth, clientHeight);
73
+ if (props.onReady) {
74
+ props.onReady({ api: new dockview_core_1.SplitviewApi(splitview) });
75
+ }
76
+ splitviewRef.current = splitview;
77
+ return function () {
78
+ splitview.dispose();
79
+ };
80
+ }, []);
81
+ React.useEffect(function () {
82
+ if (!splitviewRef.current) {
83
+ return;
84
+ }
85
+ splitviewRef.current.updateOptions({
86
+ frameworkComponents: props.components,
87
+ });
88
+ }, [props.components]);
89
+ return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
90
+ });
91
+ exports.SplitviewReact.displayName = 'SplitviewComponent';
106
92
  //# sourceMappingURL=splitview.js.map