@deephaven/golden-layout 0.19.2-beta.0 → 0.19.2-beta.11
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/LayoutManager.d.ts +313 -0
- package/dist/LayoutManager.d.ts.map +1 -0
- package/dist/LayoutManager.js +468 -450
- package/dist/LayoutManager.js.map +1 -1
- package/dist/base.d.ts +16 -0
- package/dist/base.d.ts.map +1 -0
- package/dist/base.js +6 -6
- package/dist/base.js.map +1 -1
- package/dist/config/Config.d.ts +146 -0
- package/dist/config/Config.d.ts.map +1 -0
- package/dist/config/{defaultConfig.js → Config.js} +6 -6
- package/dist/config/Config.js.map +1 -0
- package/dist/config/ItemConfig.d.ts +66 -0
- package/dist/config/ItemConfig.d.ts.map +1 -0
- package/dist/config/ItemConfig.js +14 -0
- package/dist/config/ItemConfig.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +2 -6
- package/dist/config/index.js.map +1 -1
- package/dist/container/ItemContainer.d.ts +91 -0
- package/dist/container/ItemContainer.d.ts.map +1 -0
- package/dist/container/ItemContainer.js +110 -85
- package/dist/container/ItemContainer.js.map +1 -1
- package/dist/container/index.d.ts +3 -0
- package/dist/container/index.d.ts.map +1 -0
- package/dist/container/index.js +2 -4
- package/dist/container/index.js.map +1 -1
- package/dist/controls/BrowserPopout.d.ts +83 -0
- package/dist/controls/BrowserPopout.d.ts.map +1 -0
- package/dist/controls/BrowserPopout.js +135 -101
- package/dist/controls/BrowserPopout.js.map +1 -1
- package/dist/controls/DragProxy.d.ts +67 -0
- package/dist/controls/DragProxy.d.ts.map +1 -0
- package/dist/controls/DragProxy.js +135 -110
- package/dist/controls/DragProxy.js.map +1 -1
- package/dist/controls/DragSource.d.ts +30 -0
- package/dist/controls/DragSource.d.ts.map +1 -0
- package/dist/controls/DragSource.js +37 -29
- package/dist/controls/DragSource.js.map +1 -1
- package/dist/controls/DragSourceFromEvent.d.ts +30 -0
- package/dist/controls/DragSourceFromEvent.d.ts.map +1 -0
- package/dist/controls/DragSourceFromEvent.js +49 -36
- package/dist/controls/DragSourceFromEvent.js.map +1 -1
- package/dist/controls/DropTargetIndicator.d.ts +14 -0
- package/dist/controls/DropTargetIndicator.d.ts.map +1 -0
- package/dist/controls/DropTargetIndicator.js +18 -14
- package/dist/controls/DropTargetIndicator.js.map +1 -1
- package/dist/controls/Header.d.ts +145 -0
- package/dist/controls/Header.d.ts.map +1 -0
- package/dist/controls/Header.js +414 -271
- package/dist/controls/Header.js.map +1 -1
- package/dist/controls/HeaderButton.d.ts +9 -0
- package/dist/controls/HeaderButton.d.ts.map +1 -0
- package/dist/controls/HeaderButton.js +19 -13
- package/dist/controls/HeaderButton.js.map +1 -1
- package/dist/controls/Splitter.d.ts +12 -0
- package/dist/controls/Splitter.d.ts.map +1 -0
- package/dist/controls/Splitter.js +36 -20
- package/dist/controls/Splitter.js.map +1 -1
- package/dist/controls/Tab.d.ts +91 -0
- package/dist/controls/Tab.d.ts.map +1 -0
- package/dist/controls/Tab.js +131 -119
- package/dist/controls/Tab.js.map +1 -1
- package/dist/controls/TransitionIndicator.d.ts +25 -0
- package/dist/controls/TransitionIndicator.d.ts.map +1 -0
- package/dist/controls/TransitionIndicator.js +53 -39
- package/dist/controls/TransitionIndicator.js.map +1 -1
- package/dist/controls/index.d.ts +11 -0
- package/dist/controls/index.d.ts.map +1 -0
- package/dist/controls/index.js +10 -22
- package/dist/controls/index.js.map +1 -1
- package/dist/errors/ConfigurationError.d.ts +6 -0
- package/dist/errors/ConfigurationError.d.ts.map +1 -0
- package/dist/errors/ConfigurationError.js +15 -8
- package/dist/errors/ConfigurationError.js.map +1 -1
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +1 -4
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/items/AbstractContentItem.d.ts +233 -0
- package/dist/items/AbstractContentItem.d.ts.map +1 -0
- package/dist/items/AbstractContentItem.js +284 -242
- package/dist/items/AbstractContentItem.js.map +1 -1
- package/dist/items/Component.d.ts +30 -0
- package/dist/items/Component.d.ts.map +1 -0
- package/dist/items/Component.js +61 -42
- package/dist/items/Component.js.map +1 -1
- package/dist/items/Root.d.ts +18 -0
- package/dist/items/Root.d.ts.map +1 -0
- package/dist/items/Root.js +68 -38
- package/dist/items/Root.js.map +1 -1
- package/dist/items/RowOrColumn.d.ts +157 -0
- package/dist/items/RowOrColumn.d.ts.map +1 -0
- package/dist/items/RowOrColumn.js +219 -187
- package/dist/items/RowOrColumn.js.map +1 -1
- package/dist/items/Stack.d.ts +108 -0
- package/dist/items/Stack.d.ts.map +1 -0
- package/dist/items/Stack.js +218 -151
- package/dist/items/Stack.js.map +1 -1
- package/dist/items/index.d.ts +8 -0
- package/dist/items/index.d.ts.map +1 -0
- package/dist/items/index.js +7 -12
- package/dist/items/index.js.map +1 -1
- package/dist/utils/BubblingEvent.d.ts +8 -0
- package/dist/utils/BubblingEvent.d.ts.map +1 -0
- package/dist/utils/BubblingEvent.js +18 -9
- package/dist/utils/BubblingEvent.js.map +1 -1
- package/dist/utils/ConfigMinifier.d.ts +21 -0
- package/dist/utils/ConfigMinifier.d.ts.map +1 -0
- package/dist/utils/ConfigMinifier.js +121 -121
- package/dist/utils/ConfigMinifier.js.map +1 -1
- package/dist/utils/DragListener.d.ts +34 -0
- package/dist/utils/DragListener.d.ts.map +1 -0
- package/dist/utils/DragListener.js +103 -70
- package/dist/utils/DragListener.js.map +1 -1
- package/dist/utils/EventEmitter.d.ts +59 -0
- package/dist/utils/EventEmitter.d.ts.map +1 -0
- package/dist/utils/EventEmitter.js +64 -70
- package/dist/utils/EventEmitter.js.map +1 -1
- package/dist/utils/EventHub.d.ts +55 -0
- package/dist/utils/EventHub.d.ts.map +1 -0
- package/dist/utils/EventHub.js +83 -105
- package/dist/utils/EventHub.js.map +1 -1
- package/dist/utils/ReactComponentHandler.d.ts +54 -0
- package/dist/utils/ReactComponentHandler.d.ts.map +1 -0
- package/dist/utils/ReactComponentHandler.js +58 -56
- package/dist/utils/ReactComponentHandler.js.map +1 -1
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +7 -21
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/utils.d.ts +25 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/dist/utils/utils.js +21 -145
- package/dist/utils/utils.js.map +1 -1
- package/package.json +9 -5
- package/dist/config/ItemDefaultConfig.js +0 -8
- package/dist/config/ItemDefaultConfig.js.map +0 -1
- package/dist/config/defaultConfig.js.map +0 -1
|
@@ -1,39 +1,62 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
1
3
|
import $ from 'jquery';
|
|
2
|
-
import AbstractContentItem from
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
4
|
+
import AbstractContentItem from "./AbstractContentItem.js";
|
|
5
|
+
import { animFrame } from "../utils/index.js";
|
|
6
|
+
import { Splitter } from "../controls/index.js";
|
|
7
|
+
export default class RowOrColumn extends AbstractContentItem {
|
|
8
|
+
constructor(isColumn, layoutManager, config, parent) {
|
|
9
|
+
super(layoutManager, config, parent, $('<div class="lm_item lm_' + (isColumn ? 'column' : 'row') + '"></div>'));
|
|
10
|
+
|
|
11
|
+
_defineProperty(this, "isRow", void 0);
|
|
12
|
+
|
|
13
|
+
_defineProperty(this, "isColumn", void 0);
|
|
14
|
+
|
|
15
|
+
_defineProperty(this, "childElementContainer", void 0);
|
|
16
|
+
|
|
17
|
+
_defineProperty(this, "parent", void 0);
|
|
18
|
+
|
|
19
|
+
_defineProperty(this, "_splitter", []);
|
|
20
|
+
|
|
21
|
+
_defineProperty(this, "_splitterSize", void 0);
|
|
22
|
+
|
|
23
|
+
_defineProperty(this, "_splitterGrabSize", void 0);
|
|
24
|
+
|
|
25
|
+
_defineProperty(this, "_isColumn", void 0);
|
|
26
|
+
|
|
27
|
+
_defineProperty(this, "_dimension", void 0);
|
|
28
|
+
|
|
29
|
+
_defineProperty(this, "_splitterPosition", null);
|
|
30
|
+
|
|
31
|
+
_defineProperty(this, "_splitterMinPosition", null);
|
|
32
|
+
|
|
33
|
+
_defineProperty(this, "_splitterMaxPosition", null);
|
|
34
|
+
|
|
35
|
+
this.parent = parent;
|
|
36
|
+
this.isRow = !isColumn;
|
|
37
|
+
this.isColumn = isColumn;
|
|
38
|
+
this.childElementContainer = this.element;
|
|
39
|
+
this._splitterSize = layoutManager.config.dimensions.borderWidth;
|
|
40
|
+
this._splitterGrabSize = layoutManager.config.dimensions.borderGrabWidth;
|
|
41
|
+
this._isColumn = isColumn;
|
|
42
|
+
this._dimension = isColumn ? 'height' : 'width';
|
|
43
|
+
this._splitterPosition = null;
|
|
44
|
+
this._splitterMinPosition = null;
|
|
45
|
+
this._splitterMaxPosition = null;
|
|
46
|
+
}
|
|
24
47
|
/**
|
|
25
48
|
* Add a new contentItem to the Row or Column
|
|
26
49
|
*
|
|
27
|
-
* @param
|
|
28
|
-
* @param
|
|
29
|
-
*
|
|
30
|
-
* @param
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* @returns {void}
|
|
50
|
+
* @param contentItem
|
|
51
|
+
* @param index The position of the new item within the Row or Column.
|
|
52
|
+
* If no index is provided the item will be added to the end
|
|
53
|
+
* @param _$suspendResize If true the items won't be resized. This will leave the item in
|
|
54
|
+
* an inconsistent state and is only intended to be used if multiple
|
|
55
|
+
* children need to be added in one go and resize is called afterwards
|
|
35
56
|
*/
|
|
36
|
-
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
addChild(contentItem, index, _$suspendResize) {
|
|
37
60
|
var newItemSize, itemSize, i, splitterElement;
|
|
38
61
|
contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);
|
|
39
62
|
|
|
@@ -67,26 +90,29 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
67
90
|
if (this.contentItems[i] === contentItem) {
|
|
68
91
|
contentItem.config[this._dimension] = newItemSize;
|
|
69
92
|
} else {
|
|
70
|
-
|
|
93
|
+
var _this$contentItems$i$;
|
|
94
|
+
|
|
95
|
+
itemSize = ((_this$contentItems$i$ = this.contentItems[i].config[this._dimension]) !== null && _this$contentItems$i$ !== void 0 ? _this$contentItems$i$ : 0) * (100 - newItemSize) / 100;
|
|
71
96
|
this.contentItems[i].config[this._dimension] = itemSize;
|
|
72
97
|
}
|
|
73
98
|
}
|
|
74
99
|
|
|
75
100
|
this.callDownwards('setSize');
|
|
76
101
|
this.emitBubblingEvent('stateChanged');
|
|
77
|
-
}
|
|
78
|
-
|
|
102
|
+
}
|
|
79
103
|
/**
|
|
80
104
|
* Removes a child of this element
|
|
81
105
|
*
|
|
82
|
-
* @param
|
|
83
|
-
* @param
|
|
84
|
-
*
|
|
85
|
-
* @returns {void}
|
|
106
|
+
* @param contentItem
|
|
107
|
+
* @param keepChild If true the child will be removed, but not destroyed
|
|
86
108
|
*/
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
removeChild(contentItem, keepChild) {
|
|
112
|
+
var _contentItem$config$t;
|
|
113
|
+
|
|
114
|
+
var removedItemSize = (_contentItem$config$t = contentItem.config[this._dimension]) !== null && _contentItem$config$t !== void 0 ? _contentItem$config$t : 0,
|
|
115
|
+
index = this.contentItems.indexOf(contentItem),
|
|
90
116
|
splitterIndex = Math.max(index - 1, 0),
|
|
91
117
|
i,
|
|
92
118
|
childItem;
|
|
@@ -112,7 +138,9 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
112
138
|
|
|
113
139
|
for (i = 0; i < this.contentItems.length; i++) {
|
|
114
140
|
if (this.contentItems[i] !== contentItem) {
|
|
115
|
-
|
|
141
|
+
var _this$contentItems$i$2;
|
|
142
|
+
|
|
143
|
+
this.contentItems[i].config[this._dimension] = ((_this$contentItems$i$2 = this.contentItems[i].config[this._dimension]) !== null && _this$contentItems$i$2 !== void 0 ? _this$contentItems$i$2 : 0) + removedItemSize / (this.contentItems.length - 1);
|
|
116
144
|
}
|
|
117
145
|
}
|
|
118
146
|
|
|
@@ -126,30 +154,28 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
126
154
|
this.callDownwards('setSize');
|
|
127
155
|
this.emitBubblingEvent('stateChanged');
|
|
128
156
|
}
|
|
129
|
-
}
|
|
130
|
-
|
|
157
|
+
}
|
|
131
158
|
/**
|
|
132
159
|
* Replaces a child of this Row or Column with another contentItem
|
|
133
160
|
*
|
|
134
|
-
* @param
|
|
135
|
-
* @param
|
|
136
|
-
*
|
|
137
|
-
* @returns {void}
|
|
161
|
+
* @param oldChild
|
|
162
|
+
* @param newChild
|
|
138
163
|
*/
|
|
139
|
-
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
replaceChild(oldChild, newChild) {
|
|
140
167
|
var size = oldChild.config[this._dimension];
|
|
141
|
-
|
|
168
|
+
super.replaceChild(oldChild, newChild);
|
|
142
169
|
newChild.config[this._dimension] = size;
|
|
143
170
|
this.callDownwards('setSize');
|
|
144
171
|
this.emitBubblingEvent('stateChanged');
|
|
145
|
-
}
|
|
146
|
-
|
|
172
|
+
}
|
|
147
173
|
/**
|
|
148
174
|
* Called whenever the dimensions of this item or one of its parents change
|
|
149
|
-
*
|
|
150
|
-
* @returns {void}
|
|
151
175
|
*/
|
|
152
|
-
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
setSize() {
|
|
153
179
|
if (this.contentItems.length > 0) {
|
|
154
180
|
this._calculateRelativeSizes();
|
|
155
181
|
|
|
@@ -158,18 +184,15 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
158
184
|
|
|
159
185
|
this.emitBubblingEvent('stateChanged');
|
|
160
186
|
this.emit('resize');
|
|
161
|
-
}
|
|
162
|
-
|
|
187
|
+
}
|
|
163
188
|
/**
|
|
164
189
|
* Invoked recursively by the layout manager. AbstractContentItem.init appends
|
|
165
190
|
* the contentItem's DOM elements to the container, RowOrColumn init adds splitters
|
|
166
191
|
* in between them
|
|
167
|
-
*
|
|
168
|
-
* @package private
|
|
169
|
-
* @override AbstractContentItem._$init
|
|
170
|
-
* @returns {void}
|
|
171
192
|
*/
|
|
172
|
-
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
_$init() {
|
|
173
196
|
if (this.isInitialised === true) return;
|
|
174
197
|
var i;
|
|
175
198
|
|
|
@@ -178,18 +201,16 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
178
201
|
for (i = 0; i < this.contentItems.length - 1; i++) {
|
|
179
202
|
this.contentItems[i].element.after(this._createSplitter(i).element);
|
|
180
203
|
}
|
|
181
|
-
}
|
|
182
|
-
|
|
204
|
+
}
|
|
183
205
|
/**
|
|
184
206
|
* Turns the relative sizes calculated by _calculateRelativeSizes into
|
|
185
207
|
* absolute pixel values and applies them to the children's DOM elements
|
|
186
208
|
*
|
|
187
209
|
* Assigns additional pixels to counteract Math.floor
|
|
188
|
-
*
|
|
189
|
-
* @private
|
|
190
|
-
* @returns {void}
|
|
191
210
|
*/
|
|
192
|
-
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
_setAbsoluteSizes() {
|
|
193
214
|
var i,
|
|
194
215
|
sizeData = this._calculateAbsoluteSizes();
|
|
195
216
|
|
|
@@ -206,21 +227,21 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
206
227
|
this.contentItems[i].element.height(sizeData.totalHeight);
|
|
207
228
|
}
|
|
208
229
|
}
|
|
209
|
-
}
|
|
210
|
-
|
|
230
|
+
}
|
|
211
231
|
/**
|
|
212
232
|
* Calculates the absolute sizes of all of the children of this Item.
|
|
213
233
|
* @returns {object} - Set with absolute sizes and additional pixels.
|
|
214
234
|
*/
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
_calculateAbsoluteSizes() {
|
|
238
|
+
var _this$element$width, _this$element$height;
|
|
239
|
+
|
|
240
|
+
var totalSplitterSize = (this.contentItems.length - 1) * this._splitterSize;
|
|
241
|
+
var totalWidth = (_this$element$width = this.element.width()) !== null && _this$element$width !== void 0 ? _this$element$width : 0;
|
|
242
|
+
var totalHeight = (_this$element$height = this.element.height()) !== null && _this$element$height !== void 0 ? _this$element$height : 0;
|
|
243
|
+
var totalAssigned = 0;
|
|
244
|
+
var itemSizes = [];
|
|
224
245
|
|
|
225
246
|
if (this._isColumn) {
|
|
226
247
|
totalHeight -= totalSplitterSize;
|
|
@@ -228,26 +249,22 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
228
249
|
totalWidth -= totalSplitterSize;
|
|
229
250
|
}
|
|
230
251
|
|
|
231
|
-
for (i = 0; i < this.contentItems.length; i++) {
|
|
232
|
-
|
|
233
|
-
itemSize = Math.floor(totalHeight * (this.contentItems[i].config.height / 100));
|
|
234
|
-
} else {
|
|
235
|
-
itemSize = Math.floor(totalWidth * (this.contentItems[i].config.width / 100));
|
|
236
|
-
}
|
|
252
|
+
for (var i = 0; i < this.contentItems.length; i++) {
|
|
253
|
+
var _this$contentItems$i$3, _this$contentItems$i$4;
|
|
237
254
|
|
|
255
|
+
var itemSize = this._isColumn ? Math.floor(totalHeight * (((_this$contentItems$i$3 = this.contentItems[i].config.height) !== null && _this$contentItems$i$3 !== void 0 ? _this$contentItems$i$3 : 0) / 100)) : Math.floor(totalWidth * (((_this$contentItems$i$4 = this.contentItems[i].config.width) !== null && _this$contentItems$i$4 !== void 0 ? _this$contentItems$i$4 : 0) / 100));
|
|
238
256
|
totalAssigned += itemSize;
|
|
239
257
|
itemSizes.push(itemSize);
|
|
240
258
|
}
|
|
241
259
|
|
|
242
|
-
additionalPixel = Math.floor((this._isColumn ? totalHeight : totalWidth) - totalAssigned);
|
|
260
|
+
var additionalPixel = Math.floor((this._isColumn ? totalHeight : totalWidth) - totalAssigned);
|
|
243
261
|
return {
|
|
244
|
-
itemSizes
|
|
245
|
-
additionalPixel
|
|
246
|
-
totalWidth
|
|
247
|
-
totalHeight
|
|
262
|
+
itemSizes,
|
|
263
|
+
additionalPixel,
|
|
264
|
+
totalWidth,
|
|
265
|
+
totalHeight
|
|
248
266
|
};
|
|
249
|
-
}
|
|
250
|
-
|
|
267
|
+
}
|
|
251
268
|
/**
|
|
252
269
|
* Calculates the relative sizes of all children of this Item. The logic
|
|
253
270
|
* is as follows:
|
|
@@ -265,19 +282,19 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
265
282
|
* If there are items without set dimensions, distribute the remainder to 100 evenly between them
|
|
266
283
|
* If there are no items without set dimensions, increase all items sizes relative to
|
|
267
284
|
* their original size so that they add up to 100
|
|
268
|
-
*
|
|
269
|
-
* @private
|
|
270
|
-
* @returns {void}
|
|
271
285
|
*/
|
|
272
|
-
_calculateRelativeSizes: function _calculateRelativeSizes() {
|
|
273
|
-
var i,
|
|
274
|
-
total = 0,
|
|
275
|
-
itemsWithoutSetDimension = [],
|
|
276
|
-
dimension = this._isColumn ? 'height' : 'width';
|
|
277
286
|
|
|
278
|
-
|
|
287
|
+
|
|
288
|
+
_calculateRelativeSizes() {
|
|
289
|
+
var total = 0;
|
|
290
|
+
var itemsWithoutSetDimension = [];
|
|
291
|
+
var dimension = this._isColumn ? 'height' : 'width';
|
|
292
|
+
|
|
293
|
+
for (var i = 0; i < this.contentItems.length; i++) {
|
|
279
294
|
if (this.contentItems[i].config[dimension] !== undefined) {
|
|
280
|
-
|
|
295
|
+
var _this$contentItems$i$5;
|
|
296
|
+
|
|
297
|
+
total += (_this$contentItems$i$5 = this.contentItems[i].config[dimension]) !== null && _this$contentItems$i$5 !== void 0 ? _this$contentItems$i$5 : 0;
|
|
281
298
|
} else {
|
|
282
299
|
itemsWithoutSetDimension.push(this.contentItems[i]);
|
|
283
300
|
}
|
|
@@ -298,8 +315,8 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
298
315
|
|
|
299
316
|
|
|
300
317
|
if (Math.round(total) < 100 && itemsWithoutSetDimension.length > 0) {
|
|
301
|
-
for (
|
|
302
|
-
itemsWithoutSetDimension[
|
|
318
|
+
for (var _i = 0; _i < itemsWithoutSetDimension.length; _i++) {
|
|
319
|
+
itemsWithoutSetDimension[_i].config[dimension] = (100 - total) / itemsWithoutSetDimension.length;
|
|
303
320
|
}
|
|
304
321
|
|
|
305
322
|
this._respectMinItemWidth();
|
|
@@ -315,8 +332,8 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
315
332
|
|
|
316
333
|
|
|
317
334
|
if (Math.round(total) > 100) {
|
|
318
|
-
for (
|
|
319
|
-
itemsWithoutSetDimension[
|
|
335
|
+
for (var _i2 = 0; _i2 < itemsWithoutSetDimension.length; _i2++) {
|
|
336
|
+
itemsWithoutSetDimension[_i2].config[dimension] = 50;
|
|
320
337
|
total += 50;
|
|
321
338
|
}
|
|
322
339
|
}
|
|
@@ -325,43 +342,43 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
325
342
|
*/
|
|
326
343
|
|
|
327
344
|
|
|
328
|
-
for (
|
|
329
|
-
|
|
345
|
+
for (var _i3 = 0; _i3 < this.contentItems.length; _i3++) {
|
|
346
|
+
var _this$contentItems$_i;
|
|
347
|
+
|
|
348
|
+
this.contentItems[_i3].config[dimension] = ((_this$contentItems$_i = this.contentItems[_i3].config[dimension]) !== null && _this$contentItems$_i !== void 0 ? _this$contentItems$_i : 0) / total * 100;
|
|
330
349
|
}
|
|
331
350
|
|
|
332
351
|
this._respectMinItemWidth();
|
|
333
|
-
}
|
|
334
|
-
|
|
352
|
+
}
|
|
335
353
|
/**
|
|
336
354
|
* Adjusts the column widths to respect the dimensions minItemWidth if set.
|
|
337
|
-
* @returns {}
|
|
338
355
|
*/
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
entry;
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
_respectMinItemWidth() {
|
|
359
|
+
var _this$layoutManager$c;
|
|
360
|
+
|
|
361
|
+
var minItemWidth = this.layoutManager.config.dimensions ? (_this$layoutManager$c = this.layoutManager.config.dimensions.minItemWidth) !== null && _this$layoutManager$c !== void 0 ? _this$layoutManager$c : 0 : 0;
|
|
362
|
+
var entriesOverMin = [];
|
|
363
|
+
var totalOverMin = 0;
|
|
364
|
+
var totalUnderMin = 0;
|
|
365
|
+
var remainingWidth = 0;
|
|
366
|
+
var allEntries = [];
|
|
367
|
+
var entry;
|
|
352
368
|
|
|
353
369
|
if (this._isColumn || !minItemWidth || this.contentItems.length <= 1) {
|
|
354
370
|
return;
|
|
355
371
|
}
|
|
356
372
|
|
|
357
|
-
sizeData = this._calculateAbsoluteSizes();
|
|
373
|
+
var sizeData = this._calculateAbsoluteSizes();
|
|
358
374
|
/**
|
|
359
375
|
* Figure out how much we are under the min item size total and how much room we have to use.
|
|
360
376
|
*/
|
|
361
377
|
|
|
378
|
+
|
|
362
379
|
for (var i = 0; i < this.contentItems.length; i++) {
|
|
363
|
-
contentItem = this.contentItems[i];
|
|
364
|
-
itemSize = sizeData.itemSizes[i];
|
|
380
|
+
var contentItem = this.contentItems[i];
|
|
381
|
+
var itemSize = sizeData.itemSizes[i];
|
|
365
382
|
|
|
366
383
|
if (itemSize < minItemWidth) {
|
|
367
384
|
totalUnderMin += minItemWidth - itemSize;
|
|
@@ -391,12 +408,12 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
391
408
|
*/
|
|
392
409
|
|
|
393
410
|
|
|
394
|
-
reducePercent = totalUnderMin / totalOverMin;
|
|
411
|
+
var reducePercent = totalUnderMin / totalOverMin;
|
|
395
412
|
remainingWidth = totalUnderMin;
|
|
396
413
|
|
|
397
|
-
for (
|
|
398
|
-
entry = entriesOverMin[
|
|
399
|
-
reducedWidth = Math.round((entry.width - minItemWidth) * reducePercent);
|
|
414
|
+
for (var _i4 = 0; _i4 < entriesOverMin.length; _i4++) {
|
|
415
|
+
entry = entriesOverMin[_i4];
|
|
416
|
+
var reducedWidth = Math.round((entry.width - minItemWidth) * reducePercent);
|
|
400
417
|
remainingWidth -= reducedWidth;
|
|
401
418
|
entry.width -= reducedWidth;
|
|
402
419
|
}
|
|
@@ -413,138 +430,153 @@ utils.copy(RowOrColumn.prototype, {
|
|
|
413
430
|
*/
|
|
414
431
|
|
|
415
432
|
|
|
416
|
-
for (
|
|
417
|
-
this.contentItems[
|
|
433
|
+
for (var _i5 = 0; _i5 < this.contentItems.length; _i5++) {
|
|
434
|
+
this.contentItems[_i5].config.width = allEntries[_i5].width / sizeData.totalWidth * 100;
|
|
418
435
|
}
|
|
419
|
-
}
|
|
420
|
-
|
|
436
|
+
}
|
|
421
437
|
/**
|
|
422
438
|
* Instantiates a new lm.controls.Splitter, binds events to it and adds
|
|
423
439
|
* it to the array of splitters at the position specified as the index argument
|
|
424
440
|
*
|
|
425
441
|
* What it doesn't do though is append the splitter to the DOM
|
|
426
442
|
*
|
|
427
|
-
* @param
|
|
428
|
-
*
|
|
429
|
-
* @returns {lm.controls.Splitter}
|
|
443
|
+
* @param index The position of the splitter
|
|
444
|
+
* @returns The created splitter
|
|
430
445
|
*/
|
|
431
|
-
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
_createSplitter(index) {
|
|
432
449
|
var splitter;
|
|
433
|
-
splitter = new
|
|
434
|
-
splitter.on('drag',
|
|
435
|
-
splitter.on('dragStop',
|
|
436
|
-
splitter.on('dragStart',
|
|
450
|
+
splitter = new Splitter(this._isColumn, this._splitterSize, this._splitterGrabSize);
|
|
451
|
+
splitter.on('drag', this._onSplitterDrag.bind(this, splitter), this);
|
|
452
|
+
splitter.on('dragStop', this._onSplitterDragStop.bind(this, splitter), this);
|
|
453
|
+
splitter.on('dragStart', this._onSplitterDragStart.bind(this, splitter), this);
|
|
437
454
|
|
|
438
455
|
this._splitter.splice(index, 0, splitter);
|
|
439
456
|
|
|
440
457
|
return splitter;
|
|
441
|
-
}
|
|
442
|
-
|
|
458
|
+
}
|
|
443
459
|
/**
|
|
444
460
|
* Locates the instance of lm.controls.Splitter in the array of
|
|
445
461
|
* registered splitters and returns a map containing the contentItem
|
|
446
462
|
* before and after the splitters, both of which are affected if the
|
|
447
463
|
* splitter is moved
|
|
448
464
|
*
|
|
449
|
-
* @param
|
|
465
|
+
* @param splitter
|
|
450
466
|
*
|
|
451
|
-
* @returns
|
|
467
|
+
* @returns A map of contentItems that the splitter affects
|
|
452
468
|
*/
|
|
453
|
-
|
|
454
|
-
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
_getItemsForSplitter(splitter) {
|
|
472
|
+
var index = this._splitter.indexOf(splitter);
|
|
473
|
+
|
|
474
|
+
if (index < 0) {
|
|
475
|
+
throw new Error('Splitter not found in RowOrColumn');
|
|
476
|
+
}
|
|
477
|
+
|
|
455
478
|
return {
|
|
456
479
|
before: this.contentItems[index],
|
|
457
480
|
after: this.contentItems[index + 1]
|
|
458
481
|
};
|
|
459
|
-
}
|
|
460
|
-
|
|
482
|
+
}
|
|
461
483
|
/**
|
|
462
484
|
* Gets the minimum dimensions for the given item configuration array
|
|
463
485
|
* @param item
|
|
464
486
|
* @private
|
|
465
487
|
*/
|
|
466
|
-
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
_getMinimumDimensions(arr) {
|
|
467
491
|
var minWidth = 0,
|
|
468
492
|
minHeight = 0;
|
|
469
493
|
|
|
470
494
|
for (var i = 0; i < arr.length; ++i) {
|
|
471
|
-
|
|
472
|
-
|
|
495
|
+
var _arr$i$minWidth, _arr$i$minHeight;
|
|
496
|
+
|
|
497
|
+
minWidth = Math.max((_arr$i$minWidth = arr[i].minWidth) !== null && _arr$i$minWidth !== void 0 ? _arr$i$minWidth : 0, minWidth);
|
|
498
|
+
minHeight = Math.max((_arr$i$minHeight = arr[i].minHeight) !== null && _arr$i$minHeight !== void 0 ? _arr$i$minHeight : 0, minHeight);
|
|
473
499
|
}
|
|
474
500
|
|
|
475
501
|
return {
|
|
476
502
|
horizontal: minWidth,
|
|
477
503
|
vertical: minHeight
|
|
478
504
|
};
|
|
479
|
-
}
|
|
480
|
-
|
|
505
|
+
}
|
|
481
506
|
/**
|
|
482
507
|
* Invoked when a splitter's dragListener fires dragStart. Calculates the splitters
|
|
483
508
|
* movement area once (so that it doesn't need calculating on every mousemove event)
|
|
484
509
|
*
|
|
485
|
-
* @param
|
|
486
|
-
*
|
|
487
|
-
* @returns {void}
|
|
510
|
+
* @param splitter
|
|
488
511
|
*/
|
|
489
|
-
_onSplitterDragStart: function _onSplitterDragStart(splitter) {
|
|
490
|
-
var items = this._getItemsForSplitter(splitter),
|
|
491
|
-
minSize = this.layoutManager.config.dimensions[this._isColumn ? 'minItemHeight' : 'minItemWidth'];
|
|
492
512
|
|
|
493
|
-
|
|
513
|
+
|
|
514
|
+
_onSplitterDragStart(splitter) {
|
|
515
|
+
var _items$before$config$, _items$after$config$c, _items$before$element, _items$after$element$;
|
|
516
|
+
|
|
517
|
+
var items = this._getItemsForSplitter(splitter);
|
|
518
|
+
|
|
519
|
+
var minSize = this.layoutManager.config.dimensions[this._isColumn ? 'minItemHeight' : 'minItemWidth'];
|
|
520
|
+
|
|
521
|
+
var beforeMinDim = this._getMinimumDimensions((_items$before$config$ = items.before.config.content) !== null && _items$before$config$ !== void 0 ? _items$before$config$ : []);
|
|
494
522
|
|
|
495
523
|
var beforeMinSize = this._isColumn ? beforeMinDim.vertical : beforeMinDim.horizontal;
|
|
496
524
|
|
|
497
|
-
var afterMinDim = this._getMinimumDimensions(items.after.config.content);
|
|
525
|
+
var afterMinDim = this._getMinimumDimensions((_items$after$config$c = items.after.config.content) !== null && _items$after$config$c !== void 0 ? _items$after$config$c : []);
|
|
498
526
|
|
|
499
527
|
var afterMinSize = this._isColumn ? afterMinDim.vertical : afterMinDim.horizontal;
|
|
500
528
|
this._splitterPosition = 0;
|
|
501
|
-
this._splitterMinPosition = -1 * (items.before.element[this._dimension]() - (beforeMinSize || minSize));
|
|
502
|
-
this._splitterMaxPosition = items.after.element[this._dimension]() - (afterMinSize || minSize);
|
|
503
|
-
}
|
|
504
|
-
|
|
529
|
+
this._splitterMinPosition = -1 * (((_items$before$element = items.before.element[this._dimension]()) !== null && _items$before$element !== void 0 ? _items$before$element : 0) - (beforeMinSize || minSize));
|
|
530
|
+
this._splitterMaxPosition = ((_items$after$element$ = items.after.element[this._dimension]()) !== null && _items$after$element$ !== void 0 ? _items$after$element$ : 0) - (afterMinSize || minSize);
|
|
531
|
+
}
|
|
505
532
|
/**
|
|
506
533
|
* Invoked when a splitter's DragListener fires drag. Updates the splitters DOM position,
|
|
507
534
|
* but not the sizes of the elements the splitter controls in order to minimize resize events
|
|
508
535
|
*
|
|
509
|
-
* @param
|
|
510
|
-
* @param
|
|
511
|
-
* @param
|
|
512
|
-
*
|
|
513
|
-
* @returns {void}
|
|
536
|
+
* @param splitter
|
|
537
|
+
* @param offsetX Relative pixel values to the splitters original position. Can be negative
|
|
538
|
+
* @param offsetY Relative pixel values to the splitters original position. Can be negative
|
|
514
539
|
*/
|
|
515
|
-
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
_onSplitterDrag(splitter, offsetX, offsetY) {
|
|
516
543
|
var offset = this._isColumn ? offsetY : offsetX;
|
|
517
544
|
|
|
545
|
+
if (this._splitterMaxPosition == null || this._splitterMinPosition == null) {
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
|
|
518
549
|
if (offset > this._splitterMinPosition && offset < this._splitterMaxPosition) {
|
|
519
550
|
this._splitterPosition = offset;
|
|
520
551
|
splitter.element.css(this._isColumn ? 'top' : 'left', offset);
|
|
521
552
|
}
|
|
522
|
-
}
|
|
523
|
-
|
|
553
|
+
}
|
|
524
554
|
/**
|
|
525
555
|
* Invoked when a splitter's DragListener fires dragStop. Resets the splitters DOM position,
|
|
526
556
|
* and applies the new sizes to the elements before and after the splitter and their children
|
|
527
557
|
* on the next animation frame
|
|
528
558
|
*
|
|
529
559
|
* @param {lm.controls.Splitter} splitter
|
|
530
|
-
*
|
|
531
|
-
* @returns {void}
|
|
532
560
|
*/
|
|
533
|
-
_onSplitterDragStop: function _onSplitterDragStop(splitter) {
|
|
534
|
-
var items = this._getItemsForSplitter(splitter),
|
|
535
|
-
sizeBefore = items.before.element[this._dimension](),
|
|
536
|
-
sizeAfter = items.after.element[this._dimension](),
|
|
537
|
-
splitterPositionInRange = (this._splitterPosition + sizeBefore) / (sizeBefore + sizeAfter),
|
|
538
|
-
totalRelativeSize = items.before.config[this._dimension] + items.after.config[this._dimension];
|
|
539
561
|
|
|
562
|
+
|
|
563
|
+
_onSplitterDragStop(splitter) {
|
|
564
|
+
var _items$before$element2, _items$after$element$2, _this$_splitterPositi, _items$before$config$2, _items$after$config$t;
|
|
565
|
+
|
|
566
|
+
var items = this._getItemsForSplitter(splitter);
|
|
567
|
+
|
|
568
|
+
var sizeBefore = (_items$before$element2 = items.before.element[this._dimension]()) !== null && _items$before$element2 !== void 0 ? _items$before$element2 : 0;
|
|
569
|
+
var sizeAfter = (_items$after$element$2 = items.after.element[this._dimension]()) !== null && _items$after$element$2 !== void 0 ? _items$after$element$2 : 0;
|
|
570
|
+
var splitterPositionInRange = (((_this$_splitterPositi = this._splitterPosition) !== null && _this$_splitterPositi !== void 0 ? _this$_splitterPositi : 0) + sizeBefore) / (sizeBefore + sizeAfter);
|
|
571
|
+
var totalRelativeSize = ((_items$before$config$2 = items.before.config[this._dimension]) !== null && _items$before$config$2 !== void 0 ? _items$before$config$2 : 0) + ((_items$after$config$t = items.after.config[this._dimension]) !== null && _items$after$config$t !== void 0 ? _items$after$config$t : 0);
|
|
540
572
|
items.before.config[this._dimension] = splitterPositionInRange * totalRelativeSize;
|
|
541
573
|
items.after.config[this._dimension] = (1 - splitterPositionInRange) * totalRelativeSize;
|
|
542
574
|
splitter.element.css({
|
|
543
575
|
top: 0,
|
|
544
576
|
left: 0
|
|
545
577
|
});
|
|
546
|
-
|
|
578
|
+
animFrame(this.callDownwards.bind(this, 'setSize', undefined, undefined, undefined));
|
|
547
579
|
}
|
|
548
|
-
|
|
549
|
-
|
|
580
|
+
|
|
581
|
+
}
|
|
550
582
|
//# sourceMappingURL=RowOrColumn.js.map
|