@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.
Files changed (144) hide show
  1. package/dist/LayoutManager.d.ts +313 -0
  2. package/dist/LayoutManager.d.ts.map +1 -0
  3. package/dist/LayoutManager.js +468 -450
  4. package/dist/LayoutManager.js.map +1 -1
  5. package/dist/base.d.ts +16 -0
  6. package/dist/base.d.ts.map +1 -0
  7. package/dist/base.js +6 -6
  8. package/dist/base.js.map +1 -1
  9. package/dist/config/Config.d.ts +146 -0
  10. package/dist/config/Config.d.ts.map +1 -0
  11. package/dist/config/{defaultConfig.js → Config.js} +6 -6
  12. package/dist/config/Config.js.map +1 -0
  13. package/dist/config/ItemConfig.d.ts +66 -0
  14. package/dist/config/ItemConfig.d.ts.map +1 -0
  15. package/dist/config/ItemConfig.js +14 -0
  16. package/dist/config/ItemConfig.js.map +1 -0
  17. package/dist/config/index.d.ts +3 -0
  18. package/dist/config/index.d.ts.map +1 -0
  19. package/dist/config/index.js +2 -6
  20. package/dist/config/index.js.map +1 -1
  21. package/dist/container/ItemContainer.d.ts +91 -0
  22. package/dist/container/ItemContainer.d.ts.map +1 -0
  23. package/dist/container/ItemContainer.js +110 -85
  24. package/dist/container/ItemContainer.js.map +1 -1
  25. package/dist/container/index.d.ts +3 -0
  26. package/dist/container/index.d.ts.map +1 -0
  27. package/dist/container/index.js +2 -4
  28. package/dist/container/index.js.map +1 -1
  29. package/dist/controls/BrowserPopout.d.ts +83 -0
  30. package/dist/controls/BrowserPopout.d.ts.map +1 -0
  31. package/dist/controls/BrowserPopout.js +135 -101
  32. package/dist/controls/BrowserPopout.js.map +1 -1
  33. package/dist/controls/DragProxy.d.ts +67 -0
  34. package/dist/controls/DragProxy.d.ts.map +1 -0
  35. package/dist/controls/DragProxy.js +135 -110
  36. package/dist/controls/DragProxy.js.map +1 -1
  37. package/dist/controls/DragSource.d.ts +30 -0
  38. package/dist/controls/DragSource.d.ts.map +1 -0
  39. package/dist/controls/DragSource.js +37 -29
  40. package/dist/controls/DragSource.js.map +1 -1
  41. package/dist/controls/DragSourceFromEvent.d.ts +30 -0
  42. package/dist/controls/DragSourceFromEvent.d.ts.map +1 -0
  43. package/dist/controls/DragSourceFromEvent.js +49 -36
  44. package/dist/controls/DragSourceFromEvent.js.map +1 -1
  45. package/dist/controls/DropTargetIndicator.d.ts +14 -0
  46. package/dist/controls/DropTargetIndicator.d.ts.map +1 -0
  47. package/dist/controls/DropTargetIndicator.js +18 -14
  48. package/dist/controls/DropTargetIndicator.js.map +1 -1
  49. package/dist/controls/Header.d.ts +145 -0
  50. package/dist/controls/Header.d.ts.map +1 -0
  51. package/dist/controls/Header.js +414 -271
  52. package/dist/controls/Header.js.map +1 -1
  53. package/dist/controls/HeaderButton.d.ts +9 -0
  54. package/dist/controls/HeaderButton.d.ts.map +1 -0
  55. package/dist/controls/HeaderButton.js +19 -13
  56. package/dist/controls/HeaderButton.js.map +1 -1
  57. package/dist/controls/Splitter.d.ts +12 -0
  58. package/dist/controls/Splitter.d.ts.map +1 -0
  59. package/dist/controls/Splitter.js +36 -20
  60. package/dist/controls/Splitter.js.map +1 -1
  61. package/dist/controls/Tab.d.ts +91 -0
  62. package/dist/controls/Tab.d.ts.map +1 -0
  63. package/dist/controls/Tab.js +131 -119
  64. package/dist/controls/Tab.js.map +1 -1
  65. package/dist/controls/TransitionIndicator.d.ts +25 -0
  66. package/dist/controls/TransitionIndicator.d.ts.map +1 -0
  67. package/dist/controls/TransitionIndicator.js +53 -39
  68. package/dist/controls/TransitionIndicator.js.map +1 -1
  69. package/dist/controls/index.d.ts +11 -0
  70. package/dist/controls/index.d.ts.map +1 -0
  71. package/dist/controls/index.js +10 -22
  72. package/dist/controls/index.js.map +1 -1
  73. package/dist/errors/ConfigurationError.d.ts +6 -0
  74. package/dist/errors/ConfigurationError.d.ts.map +1 -0
  75. package/dist/errors/ConfigurationError.js +15 -8
  76. package/dist/errors/ConfigurationError.js.map +1 -1
  77. package/dist/errors/index.d.ts +2 -0
  78. package/dist/errors/index.d.ts.map +1 -0
  79. package/dist/errors/index.js +1 -4
  80. package/dist/errors/index.js.map +1 -1
  81. package/dist/index.d.ts +9 -0
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +7 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/items/AbstractContentItem.d.ts +233 -0
  86. package/dist/items/AbstractContentItem.d.ts.map +1 -0
  87. package/dist/items/AbstractContentItem.js +284 -242
  88. package/dist/items/AbstractContentItem.js.map +1 -1
  89. package/dist/items/Component.d.ts +30 -0
  90. package/dist/items/Component.d.ts.map +1 -0
  91. package/dist/items/Component.js +61 -42
  92. package/dist/items/Component.js.map +1 -1
  93. package/dist/items/Root.d.ts +18 -0
  94. package/dist/items/Root.d.ts.map +1 -0
  95. package/dist/items/Root.js +68 -38
  96. package/dist/items/Root.js.map +1 -1
  97. package/dist/items/RowOrColumn.d.ts +157 -0
  98. package/dist/items/RowOrColumn.d.ts.map +1 -0
  99. package/dist/items/RowOrColumn.js +219 -187
  100. package/dist/items/RowOrColumn.js.map +1 -1
  101. package/dist/items/Stack.d.ts +108 -0
  102. package/dist/items/Stack.d.ts.map +1 -0
  103. package/dist/items/Stack.js +218 -151
  104. package/dist/items/Stack.js.map +1 -1
  105. package/dist/items/index.d.ts +8 -0
  106. package/dist/items/index.d.ts.map +1 -0
  107. package/dist/items/index.js +7 -12
  108. package/dist/items/index.js.map +1 -1
  109. package/dist/utils/BubblingEvent.d.ts +8 -0
  110. package/dist/utils/BubblingEvent.d.ts.map +1 -0
  111. package/dist/utils/BubblingEvent.js +18 -9
  112. package/dist/utils/BubblingEvent.js.map +1 -1
  113. package/dist/utils/ConfigMinifier.d.ts +21 -0
  114. package/dist/utils/ConfigMinifier.d.ts.map +1 -0
  115. package/dist/utils/ConfigMinifier.js +121 -121
  116. package/dist/utils/ConfigMinifier.js.map +1 -1
  117. package/dist/utils/DragListener.d.ts +34 -0
  118. package/dist/utils/DragListener.d.ts.map +1 -0
  119. package/dist/utils/DragListener.js +103 -70
  120. package/dist/utils/DragListener.js.map +1 -1
  121. package/dist/utils/EventEmitter.d.ts +59 -0
  122. package/dist/utils/EventEmitter.d.ts.map +1 -0
  123. package/dist/utils/EventEmitter.js +64 -70
  124. package/dist/utils/EventEmitter.js.map +1 -1
  125. package/dist/utils/EventHub.d.ts +55 -0
  126. package/dist/utils/EventHub.d.ts.map +1 -0
  127. package/dist/utils/EventHub.js +83 -105
  128. package/dist/utils/EventHub.js.map +1 -1
  129. package/dist/utils/ReactComponentHandler.d.ts +54 -0
  130. package/dist/utils/ReactComponentHandler.d.ts.map +1 -0
  131. package/dist/utils/ReactComponentHandler.js +58 -56
  132. package/dist/utils/ReactComponentHandler.js.map +1 -1
  133. package/dist/utils/index.d.ts +8 -0
  134. package/dist/utils/index.d.ts.map +1 -0
  135. package/dist/utils/index.js +7 -21
  136. package/dist/utils/index.js.map +1 -1
  137. package/dist/utils/utils.d.ts +25 -0
  138. package/dist/utils/utils.d.ts.map +1 -0
  139. package/dist/utils/utils.js +21 -145
  140. package/dist/utils/utils.js.map +1 -1
  141. package/package.json +9 -5
  142. package/dist/config/ItemDefaultConfig.js +0 -8
  143. package/dist/config/ItemDefaultConfig.js.map +0 -1
  144. 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 './AbstractContentItem.js';
3
- import utils from '../utils/index.js';
4
- import controls from '../controls/index.js';
5
-
6
- var RowOrColumn = function RowOrColumn(isColumn, layoutManager, config, parent) {
7
- AbstractContentItem.call(this, layoutManager, config, parent);
8
- this.isRow = !isColumn;
9
- this.isColumn = isColumn;
10
- this.element = $('<div class="lm_item lm_' + (isColumn ? 'column' : 'row') + '"></div>');
11
- this.childElementContainer = this.element;
12
- this._splitterSize = layoutManager.config.dimensions.borderWidth;
13
- this._splitterGrabSize = layoutManager.config.dimensions.borderGrabWidth;
14
- this._isColumn = isColumn;
15
- this._dimension = isColumn ? 'height' : 'width';
16
- this._splitter = [];
17
- this._splitterPosition = null;
18
- this._splitterMinPosition = null;
19
- this._splitterMaxPosition = null;
20
- };
21
-
22
- utils.extend(RowOrColumn, AbstractContentItem);
23
- utils.copy(RowOrColumn.prototype, {
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 {lm.item.AbstractContentItem} contentItem
28
- * @param {[int]} index The position of the new item within the Row or Column.
29
- * If no index is provided the item will be added to the end
30
- * @param {[bool]} _$suspendResize If true the items won't be resized. This will leave the item in
31
- * an inconsistent state and is only intended to be used if multiple
32
- * children need to be added in one go and resize is called afterwards
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
- addChild: function addChild(contentItem, index, _$suspendResize) {
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
- itemSize = this.contentItems[i].config[this._dimension] *= (100 - newItemSize) / 100;
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 {lm.items.AbstractContentItem} contentItem
83
- * @param {boolean} keepChild If true the child will be removed, but not destroyed
84
- *
85
- * @returns {void}
106
+ * @param contentItem
107
+ * @param keepChild If true the child will be removed, but not destroyed
86
108
  */
87
- removeChild: function removeChild(contentItem, keepChild) {
88
- var removedItemSize = contentItem.config[this._dimension],
89
- index = utils.indexOf(contentItem, this.contentItems),
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
- this.contentItems[i].config[this._dimension] += removedItemSize / (this.contentItems.length - 1);
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 {lm.items.AbstractContentItem} oldChild
135
- * @param {lm.items.AbstractContentItem} newChild
136
- *
137
- * @returns {void}
161
+ * @param oldChild
162
+ * @param newChild
138
163
  */
139
- replaceChild: function replaceChild(oldChild, newChild) {
164
+
165
+
166
+ replaceChild(oldChild, newChild) {
140
167
  var size = oldChild.config[this._dimension];
141
- AbstractContentItem.prototype.replaceChild.call(this, oldChild, newChild);
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
- setSize: function setSize() {
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
- _$init: function _$init() {
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
- _setAbsoluteSizes: function _setAbsoluteSizes() {
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
- _calculateAbsoluteSizes: function _calculateAbsoluteSizes() {
216
- var i,
217
- totalSplitterSize = (this.contentItems.length - 1) * this._splitterSize,
218
- totalWidth = this.element.width(),
219
- totalHeight = this.element.height(),
220
- totalAssigned = 0,
221
- additionalPixel,
222
- itemSize,
223
- itemSizes = [];
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
- if (this._isColumn) {
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: itemSizes,
245
- additionalPixel: additionalPixel,
246
- totalWidth: totalWidth,
247
- totalHeight: 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
- for (i = 0; i < this.contentItems.length; i++) {
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
- total += this.contentItems[i].config[dimension];
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 (i = 0; i < itemsWithoutSetDimension.length; i++) {
302
- itemsWithoutSetDimension[i].config[dimension] = (100 - total) / itemsWithoutSetDimension.length;
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 (i = 0; i < itemsWithoutSetDimension.length; i++) {
319
- itemsWithoutSetDimension[i].config[dimension] = 50;
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 (i = 0; i < this.contentItems.length; i++) {
329
- this.contentItems[i].config[dimension] = this.contentItems[i].config[dimension] / total * 100;
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
- _respectMinItemWidth: function _respectMinItemWidth() {
340
- var minItemWidth = this.layoutManager.config.dimensions ? this.layoutManager.config.dimensions.minItemWidth || 0 : 0,
341
- sizeData = null,
342
- entriesOverMin = [],
343
- totalOverMin = 0,
344
- totalUnderMin = 0,
345
- remainingWidth = 0,
346
- itemSize = 0,
347
- contentItem = null,
348
- reducePercent,
349
- reducedWidth,
350
- allEntries = [],
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 (i = 0; i < entriesOverMin.length; i++) {
398
- entry = entriesOverMin[i];
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 (i = 0; i < this.contentItems.length; i++) {
417
- this.contentItems[i].config.width = allEntries[i].width / sizeData.totalWidth * 100;
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 {Int} index The position of the splitter
428
- *
429
- * @returns {lm.controls.Splitter}
443
+ * @param index The position of the splitter
444
+ * @returns The created splitter
430
445
  */
431
- _createSplitter: function _createSplitter(index) {
446
+
447
+
448
+ _createSplitter(index) {
432
449
  var splitter;
433
- splitter = new controls.Splitter(this._isColumn, this._splitterSize, this._splitterGrabSize);
434
- splitter.on('drag', utils.fnBind(this._onSplitterDrag, this, [splitter]), this);
435
- splitter.on('dragStop', utils.fnBind(this._onSplitterDragStop, this, [splitter]), this);
436
- splitter.on('dragStart', utils.fnBind(this._onSplitterDragStart, this, [splitter]), this);
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 {lm.controls.Splitter} splitter
465
+ * @param splitter
450
466
  *
451
- * @returns {Object} A map of contentItems that the splitter affects
467
+ * @returns A map of contentItems that the splitter affects
452
468
  */
453
- _getItemsForSplitter: function _getItemsForSplitter(splitter) {
454
- var index = utils.indexOf(splitter, this._splitter);
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
- _getMinimumDimensions: function _getMinimumDimensions(arr) {
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
- minWidth = Math.max(arr[i].minWidth || 0, minWidth);
472
- minHeight = Math.max(arr[i].minHeight || 0, minHeight);
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 {lm.controls.Splitter} splitter
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
- var beforeMinDim = this._getMinimumDimensions(items.before.config.content);
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 {lm.controls.Splitter} splitter
510
- * @param {Int} offsetX Relative pixel values to the splitters original position. Can be negative
511
- * @param {Int} offsetY Relative pixel values to the splitters original position. Can be negative
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
- _onSplitterDrag: function _onSplitterDrag(splitter, offsetX, offsetY) {
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
- utils.animFrame(utils.fnBind(this.callDownwards, this, ['setSize']));
578
+ animFrame(this.callDownwards.bind(this, 'setSize', undefined, undefined, undefined));
547
579
  }
548
- });
549
- export default RowOrColumn;
580
+
581
+ }
550
582
  //# sourceMappingURL=RowOrColumn.js.map