@deephaven/golden-layout 0.19.2-beta.10 → 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,49 +1,78 @@
1
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
+
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+
5
+ 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; }
6
+
1
7
  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 Stack = function Stack(layoutManager, config, parent) {
7
- AbstractContentItem.call(this, layoutManager, config, parent);
8
- this.element = $('<div class="lm_item lm_stack"></div>');
9
- this._activeContentItem = null;
10
- var cfg = layoutManager.config;
11
- this._header = {
12
- // defaults' reconstruction from old configuration style
13
- show: cfg.settings.hasHeaders === true && config.hasHeaders !== false,
14
- popout: cfg.settings.showPopoutIcon && cfg.labels.popout,
15
- maximise: cfg.settings.showMaximiseIcon && cfg.labels.maximise,
16
- close: cfg.settings.showCloseIcon && cfg.labels.close,
17
- minimise: cfg.labels.minimise
18
- }; // load simplified version of header configuration (https://github.com/deepstreamIO/golden-layout/pull/245)
19
-
20
- if (cfg.header) utils.copy(this._header, cfg.header);
21
- if (config.header) // load from stack
22
- utils.copy(this._header, config.header);
23
- if (config.content && config.content[0] && config.content[0].header) // load from component if stack omitted
24
- utils.copy(this._header, config.content[0].header);
25
- this._dropZones = {};
26
- this._dropSegment = null;
27
- this._contentAreaDimensions = null;
28
- this._dropIndex = null;
29
- this.isStack = true;
30
- this.childElementContainer = $('<div class="lm_items"></div>');
31
- this.header = new controls.Header(layoutManager, this);
32
- this.element.append(this.header.element);
33
- this.element.append(this.childElementContainer);
34
-
35
- this._setupHeaderPosition();
36
-
37
- this._$validateClosability();
38
- };
39
-
40
- utils.extend(Stack, AbstractContentItem);
41
- utils.copy(Stack.prototype, {
42
- setSize: function setSize() {
8
+ import AbstractContentItem, { isComponent } from "./AbstractContentItem.js";
9
+ import { Header } from "../controls/index.js";
10
+ export default class Stack extends AbstractContentItem {
11
+ constructor(layoutManager, config, parent) {
12
+ var _cfg$settings, _cfg$settings2, _cfg$labels, _cfg$settings3, _cfg$labels2, _cfg$settings4, _cfg$labels3, _cfg$labels$minimise, _cfg$labels4;
13
+
14
+ super(layoutManager, config, parent, $('<div class="lm_item lm_stack"></div>'));
15
+
16
+ _defineProperty(this, "_activeContentItem", null);
17
+
18
+ _defineProperty(this, "_header", void 0);
19
+
20
+ _defineProperty(this, "childElementContainer", $('<div class="lm_items"></div>'));
21
+
22
+ _defineProperty(this, "header", void 0);
23
+
24
+ _defineProperty(this, "parent", void 0);
25
+
26
+ _defineProperty(this, "isStack", true);
27
+
28
+ _defineProperty(this, "_dropZones", {});
29
+
30
+ _defineProperty(this, "_dropSegment", null);
31
+
32
+ _defineProperty(this, "_contentAreaDimensions", null);
33
+
34
+ _defineProperty(this, "_dropIndex", void 0);
35
+
36
+ _defineProperty(this, "_side", void 0);
37
+
38
+ _defineProperty(this, "_sided", false);
39
+
40
+ _defineProperty(this, "config", void 0);
41
+
42
+ this.parent = parent;
43
+ this.config = config;
44
+ var cfg = layoutManager.config;
45
+ this._side = false;
46
+ this._header = {
47
+ // defaults' reconstruction from old configuration style
48
+ show: ((_cfg$settings = cfg.settings) === null || _cfg$settings === void 0 ? void 0 : _cfg$settings.hasHeaders) && config.hasHeaders !== false,
49
+ popout: (_cfg$settings2 = cfg.settings) !== null && _cfg$settings2 !== void 0 && _cfg$settings2.showPopoutIcon ? (_cfg$labels = cfg.labels) === null || _cfg$labels === void 0 ? void 0 : _cfg$labels.popout : undefined,
50
+ maximise: (_cfg$settings3 = cfg.settings) !== null && _cfg$settings3 !== void 0 && _cfg$settings3.showMaximiseIcon ? (_cfg$labels2 = cfg.labels) === null || _cfg$labels2 === void 0 ? void 0 : _cfg$labels2.maximise : undefined,
51
+ close: (_cfg$settings4 = cfg.settings) !== null && _cfg$settings4 !== void 0 && _cfg$settings4.showCloseIcon ? (_cfg$labels3 = cfg.labels) === null || _cfg$labels3 === void 0 ? void 0 : _cfg$labels3.close : undefined,
52
+ minimise: (_cfg$labels$minimise = (_cfg$labels4 = cfg.labels) === null || _cfg$labels4 === void 0 ? void 0 : _cfg$labels4.minimise) !== null && _cfg$labels$minimise !== void 0 ? _cfg$labels$minimise : undefined
53
+ }; // load simplified version of header configuration (https://github.com/deepstreamIO/golden-layout/pull/245)
54
+
55
+ if (cfg.header) this._header = _objectSpread(_objectSpread({}, this._header), cfg.header);
56
+ if (config.header) // load from stack
57
+ this._header = _objectSpread(_objectSpread({}, this._header), config.header);
58
+ if (config.content && config.content[0] && config.content[0].header) // load from component if stack omitted
59
+ this._header = _objectSpread(_objectSpread({}, this._header), config.content[0].header);
60
+ this.header = new Header(layoutManager, this);
61
+ this.element.append(this.header.element);
62
+ this.element.append(this.childElementContainer);
63
+
64
+ this._setupHeaderPosition();
65
+
66
+ this._$validateClosability();
67
+ }
68
+
69
+ setSize() {
70
+ var _this$layoutManager$c, _this$layoutManager$c2, _this$element$width, _this$element$height;
71
+
43
72
  var i,
44
- headerSize = this._header.show ? this.layoutManager.config.dimensions.headerHeight : 0,
45
- contentWidth = this.element.width() - (this._sided ? headerSize : 0),
46
- contentHeight = this.element.height() - (!this._sided ? headerSize : 0);
73
+ headerSize = this._header.show ? (_this$layoutManager$c = (_this$layoutManager$c2 = this.layoutManager.config.dimensions) === null || _this$layoutManager$c2 === void 0 ? void 0 : _this$layoutManager$c2.headerHeight) !== null && _this$layoutManager$c !== void 0 ? _this$layoutManager$c : 0 : 0,
74
+ contentWidth = ((_this$element$width = this.element.width()) !== null && _this$element$width !== void 0 ? _this$element$width : 0) - (this._sided ? headerSize : 0),
75
+ contentHeight = ((_this$element$height = this.element.height()) !== null && _this$element$height !== void 0 ? _this$element$height : 0) - (!this._sided ? headerSize : 0);
47
76
  this.childElementContainer.width(contentWidth);
48
77
  this.childElementContainer.height(contentHeight);
49
78
 
@@ -53,23 +82,23 @@ utils.copy(Stack.prototype, {
53
82
 
54
83
  this.emit('resize');
55
84
  this.emitBubblingEvent('stateChanged');
56
- },
57
- _$init: function _$init() {
58
- var i, initialItem;
85
+ }
86
+
87
+ _$init() {
59
88
  if (this.isInitialised === true) return;
60
89
 
61
90
  this.header._attachWheelListener();
62
91
 
63
- AbstractContentItem.prototype._$init.call(this);
92
+ super._$init();
64
93
 
65
- for (i = 0; i < this.contentItems.length; i++) {
94
+ for (var i = 0; i < this.contentItems.length; i++) {
66
95
  this.header.createTab(this.contentItems[i]);
67
96
 
68
97
  this.contentItems[i]._$hide();
69
98
  }
70
99
 
71
100
  if (this.contentItems.length > 0) {
72
- initialItem = this.contentItems[this.config.activeItemIndex || 0];
101
+ var initialItem = this.contentItems[this.config.activeItemIndex || 0];
73
102
 
74
103
  if (!initialItem) {
75
104
  throw new Error('Configured activeItemIndex out of bounds');
@@ -77,9 +106,10 @@ utils.copy(Stack.prototype, {
77
106
 
78
107
  this.setActiveContentItem(initialItem);
79
108
  }
80
- },
81
- setActiveContentItem: function setActiveContentItem(contentItem) {
82
- if (utils.indexOf(contentItem, this.contentItems) === -1) {
109
+ }
110
+
111
+ setActiveContentItem(contentItem) {
112
+ if (this.contentItems.indexOf(contentItem) === -1) {
83
113
  throw new Error('contentItem is not a child of this stack');
84
114
  }
85
115
 
@@ -95,13 +125,15 @@ utils.copy(Stack.prototype, {
95
125
  this.emit('activeContentItemChanged', contentItem);
96
126
  this.layoutManager.emit('activeContentItemChanged', contentItem);
97
127
  this.emitBubblingEvent('stateChanged');
98
- },
99
- getActiveContentItem: function getActiveContentItem() {
128
+ }
129
+
130
+ getActiveContentItem() {
100
131
  return this.header.activeContentItem;
101
- },
102
- addChild: function addChild(contentItem, index) {
132
+ }
133
+
134
+ addChild(contentItem, index) {
103
135
  contentItem = this.layoutManager._$normalizeContentItem(contentItem, this);
104
- AbstractContentItem.prototype.addChild.call(this, contentItem, index);
136
+ super.addChild(contentItem, index);
105
137
  this.childElementContainer.append(contentItem.element);
106
138
  this.header.createTab(contentItem, index);
107
139
  this.setActiveContentItem(contentItem);
@@ -110,10 +142,12 @@ utils.copy(Stack.prototype, {
110
142
  this._$validateClosability();
111
143
 
112
144
  this.emitBubblingEvent('stateChanged');
113
- },
114
- removeChild: function removeChild(contentItem, keepChild) {
115
- var index = utils.indexOf(contentItem, this.contentItems);
116
- AbstractContentItem.prototype.removeChild.call(this, contentItem, keepChild);
145
+ }
146
+
147
+ removeChild(contentItem) {
148
+ var keepChild = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
149
+ var index = this.contentItems.indexOf(contentItem);
150
+ super.removeChild(contentItem, keepChild);
117
151
  this.header.removeTab(contentItem);
118
152
 
119
153
  if (this.header.activeContentItem === contentItem) {
@@ -127,35 +161,35 @@ utils.copy(Stack.prototype, {
127
161
  this._$validateClosability();
128
162
 
129
163
  this.emitBubblingEvent('stateChanged');
130
- },
131
-
164
+ }
132
165
  /**
133
166
  * Validates that the stack is still closable or not. If a stack is able
134
167
  * to close, but has a non closable component added to it, the stack is no
135
168
  * longer closable until all components are closable.
136
- *
137
- * @returns {void}
138
169
  */
139
- _$validateClosability: function _$validateClosability() {
140
- var isClosable, len, i;
141
- isClosable = this.header._isClosable();
142
170
 
143
- for (i = 0, len = this.contentItems.length; i < len; i++) {
171
+
172
+ _$validateClosability() {
173
+ var isClosable = this.header._isClosable();
174
+
175
+ for (var i = 0, len = this.contentItems.length; i < len; i++) {
176
+ var _this$contentItems$i$;
177
+
144
178
  if (!isClosable) {
145
179
  break;
146
180
  }
147
181
 
148
- isClosable = this.contentItems[i].config.isClosable;
182
+ isClosable = (_this$contentItems$i$ = this.contentItems[i].config.isClosable) !== null && _this$contentItems$i$ !== void 0 ? _this$contentItems$i$ : false;
149
183
  }
150
184
 
151
185
  this.header._$setClosable(isClosable);
152
- },
153
- _$destroy: function _$destroy() {
186
+ }
187
+
188
+ _$destroy() {
154
189
  AbstractContentItem.prototype._$destroy.call(this);
155
190
 
156
191
  this.header._$destroy();
157
- },
158
-
192
+ }
159
193
  /**
160
194
  * Ok, this one is going to be the tricky one: The user has dropped {contentItem} onto this stack.
161
195
  *
@@ -173,11 +207,11 @@ utils.copy(Stack.prototype, {
173
207
  * Same thing for rows and left / right drop segments... so in total there are 9 things that can potentially happen
174
208
  * (left, top, right, bottom) * is child of the right parent (row, column) + header drop
175
209
  *
176
- * @param {lm.item} contentItem
177
- *
178
- * @returns {void}
210
+ * @param contentItem
179
211
  */
180
- _$onDrop: function _$onDrop(contentItem) {
212
+
213
+
214
+ _$onDrop(contentItem) {
181
215
  /*
182
216
  * The item was dropped on the header area. Just add it as a child of this stack and
183
217
  * get the hell out of this logic
@@ -203,21 +237,18 @@ utils.copy(Stack.prototype, {
203
237
  */
204
238
 
205
239
 
206
- var isVertical = this._dropSegment === 'top' || this._dropSegment === 'bottom',
207
- isHorizontal = this._dropSegment === 'left' || this._dropSegment === 'right',
208
- insertBefore = this._dropSegment === 'top' || this._dropSegment === 'left',
209
- hasCorrectParent = isVertical && this.parent.isColumn || isHorizontal && this.parent.isRow,
210
- type = isVertical ? 'column' : 'row',
211
- dimension = isVertical ? 'height' : 'width',
212
- index,
213
- stack,
214
- rowOrColumn;
240
+ var isVertical = this._dropSegment === 'top' || this._dropSegment === 'bottom';
241
+ var isHorizontal = this._dropSegment === 'left' || this._dropSegment === 'right';
242
+ var insertBefore = this._dropSegment === 'top' || this._dropSegment === 'left';
243
+ var hasCorrectParent = isVertical && this.parent.isColumn || isHorizontal && this.parent.isRow;
244
+ var type = isVertical ? 'column' : 'row';
245
+ var dimension = isVertical ? 'height' : 'width';
215
246
  /*
216
247
  * The content item can be either a component or a stack. If it is a component, wrap it into a stack
217
248
  */
218
249
 
219
- if (contentItem.isComponent) {
220
- stack = this.layoutManager.createContentItem({
250
+ if (isComponent(contentItem)) {
251
+ var stack = this.layoutManager.createContentItem({
221
252
  type: 'stack',
222
253
  header: contentItem.config.header || {}
223
254
  }, this);
@@ -234,9 +265,11 @@ utils.copy(Stack.prototype, {
234
265
 
235
266
 
236
267
  if (hasCorrectParent) {
237
- index = utils.indexOf(this, this.parent.contentItems);
268
+ var _this$config$dimensio;
269
+
270
+ var index = this.parent.contentItems.indexOf(this);
238
271
  this.parent.addChild(contentItem, insertBefore ? index : index + 1, true);
239
- this.config[dimension] *= 0.5;
272
+ this.config[dimension] = ((_this$config$dimensio = this.config[dimension]) !== null && _this$config$dimensio !== void 0 ? _this$config$dimensio : 0) * 0.5;
240
273
  contentItem.config[dimension] = this.config[dimension];
241
274
  this.parent.callDownwards('setSize');
242
275
  /*
@@ -244,8 +277,7 @@ utils.copy(Stack.prototype, {
244
277
  * to create the appropriate contentItem for them to live in
245
278
  */
246
279
  } else {
247
- type = isVertical ? 'column' : 'row';
248
- rowOrColumn = this.layoutManager.createContentItem({
280
+ var rowOrColumn = this.layoutManager.createContentItem({
249
281
  type: type
250
282
  }, this);
251
283
  this.parent.replaceChild(this, rowOrColumn);
@@ -255,28 +287,29 @@ utils.copy(Stack.prototype, {
255
287
  contentItem.config[dimension] = 50;
256
288
  rowOrColumn.callDownwards('setSize');
257
289
  }
258
- },
259
-
290
+ }
260
291
  /**
261
292
  * If the user hovers above the header part of the stack, indicate drop positions for tabs.
262
293
  * otherwise indicate which segment of the body the dragged item would be dropped on
263
294
  *
264
- * @param {Int} x Absolute Screen X
265
- * @param {Int} y Absolute Screen Y
266
- *
267
- * @returns {void}
295
+ * @param x Absolute Screen X
296
+ * @param y Absolute Screen Y
268
297
  */
269
- _$highlightDropZone: function _$highlightDropZone(x, y) {
270
- var segment, area;
271
298
 
272
- for (segment in this._contentAreaDimensions) {
273
- area = this._contentAreaDimensions[segment].hoverArea;
299
+
300
+ _$highlightDropZone(x, y) {
301
+ if (!this._contentAreaDimensions) {
302
+ return;
303
+ }
304
+
305
+ for (var [segment, dimensions] of Object.entries(this._contentAreaDimensions)) {
306
+ var area = dimensions.hoverArea;
274
307
 
275
308
  if (area.x1 < x && area.x2 > x && area.y1 < y && area.y2 > y) {
276
309
  if (segment === 'header') {
277
310
  this._dropSegment = 'header';
278
311
 
279
- this._highlightHeaderDropZone(x, y);
312
+ this._highlightHeaderDropZone(x);
280
313
  } else {
281
314
  this._resetHeaderDropZone();
282
315
 
@@ -286,17 +319,23 @@ utils.copy(Stack.prototype, {
286
319
  return;
287
320
  }
288
321
  }
289
- },
290
- _$getArea: function _$getArea() {
322
+ }
323
+
324
+ _$getArea() {
291
325
  if (this.element.is(':visible') === false) {
292
326
  return null;
293
327
  }
294
328
 
295
- var getArea = AbstractContentItem.prototype._$getArea,
296
- headerArea = getArea.call(this, this.header.element),
297
- contentArea = getArea.call(this, this.childElementContainer),
298
- contentWidth = contentArea.x2 - contentArea.x1,
299
- contentHeight = contentArea.y2 - contentArea.y1;
329
+ var headerArea = super._$getArea(this.header.element);
330
+
331
+ var contentArea = super._$getArea(this.childElementContainer);
332
+
333
+ if (headerArea == null || contentArea == null) {
334
+ return null;
335
+ }
336
+
337
+ var contentWidth = contentArea.x2 - contentArea.x1;
338
+ var contentHeight = contentArea.y2 - contentArea.y1;
300
339
  this._contentAreaDimensions = {
301
340
  header: {
302
341
  hoverArea: {
@@ -341,7 +380,7 @@ utils.copy(Stack.prototype, {
341
380
  y2: contentArea.y2
342
381
  }
343
382
  };
344
- return getArea.call(this, this.element);
383
+ return super._$getArea(this.element);
345
384
  }
346
385
 
347
386
  this._contentAreaDimensions.left = {
@@ -400,30 +439,37 @@ utils.copy(Stack.prototype, {
400
439
  y2: contentArea.y2
401
440
  }
402
441
  };
403
- return getArea.call(this, this.element);
404
- },
405
- _highlightHeaderDropZone: function _highlightHeaderDropZone(x) {
406
- var tabsLength = this.header.tabs.length;
407
- var tabElement = null;
408
- var tabRect = null; // I've omitted code for side edge tabs here
442
+ return super._$getArea(this.element);
443
+ }
444
+
445
+ _highlightHeaderDropZone(x) {
446
+ var _tabsContainer$get, _this$layoutManager$t, _this$layoutManager$t2, _this$layoutManager$t3, _this$header$tabsCont, _this$header$tabsCont2, _this$layoutManager$t4, _this$header$tabsCont3, _this$header$tabsCont4, _this$header$tabsCont5, _this$layoutManager$d2, _this$header$element$6, _this$header$element$7, _this$header$element$8, _this$header$element$9, _this$header$element$10;
447
+
448
+ var tabsLength = this.header.tabs.length; // I've omitted code for side edge tabs here
409
449
  // illumon doesn't need it, will slowly pull that code out elsewhere too
410
450
  // Empty stack
411
451
 
412
452
  if (tabsLength === 0) {
453
+ var _this$layoutManager$d, _headerOffset$left, _headerOffset$left2, _this$header$element$, _this$header$element$2, _this$header$element$3, _this$header$element$4, _this$header$element$5;
454
+
413
455
  var headerOffset = this.header.element.offset(); // we don't have a placeholder to measure in the dom, lets just cheat and make it 100px.
414
456
 
415
- this.layoutManager.dropTargetIndicator.highlightArea({
416
- x1: headerOffset.left,
417
- x2: headerOffset.left + 100,
418
- y1: this.header.element.offset().top,
419
- y2: this.header.element.offset().top + this.header.element.innerHeight()
457
+ (_this$layoutManager$d = this.layoutManager.dropTargetIndicator) === null || _this$layoutManager$d === void 0 ? void 0 : _this$layoutManager$d.highlightArea({
458
+ x1: (_headerOffset$left = headerOffset === null || headerOffset === void 0 ? void 0 : headerOffset.left) !== null && _headerOffset$left !== void 0 ? _headerOffset$left : 0,
459
+ x2: ((_headerOffset$left2 = headerOffset === null || headerOffset === void 0 ? void 0 : headerOffset.left) !== null && _headerOffset$left2 !== void 0 ? _headerOffset$left2 : 0) + 100,
460
+ y1: (_this$header$element$ = (_this$header$element$2 = this.header.element.offset()) === null || _this$header$element$2 === void 0 ? void 0 : _this$header$element$2.top) !== null && _this$header$element$ !== void 0 ? _this$header$element$ : 0,
461
+ y2: ((_this$header$element$3 = (_this$header$element$4 = this.header.element.offset()) === null || _this$header$element$4 === void 0 ? void 0 : _this$header$element$4.top) !== null && _this$header$element$3 !== void 0 ? _this$header$element$3 : 0) + ((_this$header$element$5 = this.header.element.innerHeight()) !== null && _this$header$element$5 !== void 0 ? _this$header$element$5 : 0)
420
462
  });
421
463
  return;
422
464
  }
423
465
 
424
466
  var tabsContainer = this.header.tabsContainer;
425
- var tabsContainerRect = tabsContainer.get(0).getBoundingClientRect();
426
- var placeholderRect = this.layoutManager.tabDropPlaceholder.get(0).getBoundingClientRect();
467
+ var tabsContainerRect = (_tabsContainer$get = tabsContainer.get(0)) === null || _tabsContainer$get === void 0 ? void 0 : _tabsContainer$get.getBoundingClientRect();
468
+ var placeholderRect = (_this$layoutManager$t = this.layoutManager.tabDropPlaceholder.get(0)) === null || _this$layoutManager$t === void 0 ? void 0 : _this$layoutManager$t.getBoundingClientRect();
469
+
470
+ if (!tabsContainerRect || !placeholderRect) {
471
+ return;
472
+ }
427
473
 
428
474
  if (x < tabsContainerRect.left) {
429
475
  // is over left tab controls button
@@ -433,66 +479,87 @@ utils.copy(Stack.prototype, {
433
479
  // is over right tab controls button
434
480
  // move x to a new point to inside right edge of container
435
481
  x = tabsContainerRect.right - 1;
436
- } // if its not inide a placeholder,
482
+ }
437
483
 
484
+ var tabElement;
485
+ var tabRect; // if its not inide a placeholder,
438
486
 
439
487
  if (!(placeholderRect.left < x && x < placeholderRect.right)) {
440
488
  // which tab is it over ...
441
489
  for (var i = 0; i < tabsLength; i++) {
490
+ var _tabElement$get;
491
+
442
492
  tabElement = this.header.tabs[i].element;
443
- tabRect = tabElement.get(0).getBoundingClientRect();
493
+ tabRect = (_tabElement$get = tabElement.get(0)) === null || _tabElement$get === void 0 ? void 0 : _tabElement$get.getBoundingClientRect();
444
494
 
445
- if (tabRect.left < x && x < tabRect.right) {
495
+ if (tabRect && tabRect.left < x && x < tabRect.right) {
446
496
  this._dropIndex = i;
447
497
  break;
448
498
  }
449
499
  } // we have tabRect at this x,y from the loop above
450
500
 
451
501
 
452
- if (tabElement && x < tabRect.left + tabRect.width * 0.5) {
502
+ if (tabElement && tabRect && x < tabRect.left + tabRect.width * 0.5) {
453
503
  // mostly before an element, insert placeholder before
454
504
  tabElement.before(this.layoutManager.tabDropPlaceholder);
455
505
  } else if (tabElement) {
506
+ var _this$_dropIndex;
507
+
456
508
  // x is likely after the lhe last item, position after and increase drop index
457
- this._dropIndex = Math.min(this._dropIndex + 1, tabsLength);
509
+ this._dropIndex = Math.min(((_this$_dropIndex = this._dropIndex) !== null && _this$_dropIndex !== void 0 ? _this$_dropIndex : 0) + 1, tabsLength);
458
510
  tabElement.after(this.layoutManager.tabDropPlaceholder);
459
511
  }
460
512
  }
461
513
 
462
- var placeHolderLeft = this.layoutManager.tabDropPlaceholder.offset().left;
463
- placeHolderLeft = Math.max(placeHolderLeft, this.header.tabsContainer.offset().left);
464
- var placeHolderRight = placeHolderLeft + this.layoutManager.tabDropPlaceholder.width();
465
- placeHolderRight = Math.min(placeHolderRight, this.header.tabsContainer.offset().left + this.header.tabsContainer.innerWidth());
466
- this.layoutManager.dropTargetIndicator.highlightArea({
514
+ var placeHolderLeft = (_this$layoutManager$t2 = (_this$layoutManager$t3 = this.layoutManager.tabDropPlaceholder.offset()) === null || _this$layoutManager$t3 === void 0 ? void 0 : _this$layoutManager$t3.left) !== null && _this$layoutManager$t2 !== void 0 ? _this$layoutManager$t2 : 0;
515
+ placeHolderLeft = Math.max(placeHolderLeft, (_this$header$tabsCont = (_this$header$tabsCont2 = this.header.tabsContainer.offset()) === null || _this$header$tabsCont2 === void 0 ? void 0 : _this$header$tabsCont2.left) !== null && _this$header$tabsCont !== void 0 ? _this$header$tabsCont : 0);
516
+ var placeHolderRight = placeHolderLeft + ((_this$layoutManager$t4 = this.layoutManager.tabDropPlaceholder.width()) !== null && _this$layoutManager$t4 !== void 0 ? _this$layoutManager$t4 : 0);
517
+ placeHolderRight = Math.min(placeHolderRight, ((_this$header$tabsCont3 = (_this$header$tabsCont4 = this.header.tabsContainer.offset()) === null || _this$header$tabsCont4 === void 0 ? void 0 : _this$header$tabsCont4.left) !== null && _this$header$tabsCont3 !== void 0 ? _this$header$tabsCont3 : 0) + ((_this$header$tabsCont5 = this.header.tabsContainer.innerWidth()) !== null && _this$header$tabsCont5 !== void 0 ? _this$header$tabsCont5 : 0));
518
+ (_this$layoutManager$d2 = this.layoutManager.dropTargetIndicator) === null || _this$layoutManager$d2 === void 0 ? void 0 : _this$layoutManager$d2.highlightArea({
467
519
  x1: placeHolderLeft,
468
520
  x2: placeHolderRight,
469
- y1: this.header.element.offset().top,
470
- y2: this.header.element.offset().top + this.header.element.innerHeight()
521
+ y1: (_this$header$element$6 = (_this$header$element$7 = this.header.element.offset()) === null || _this$header$element$7 === void 0 ? void 0 : _this$header$element$7.top) !== null && _this$header$element$6 !== void 0 ? _this$header$element$6 : 0,
522
+ y2: ((_this$header$element$8 = (_this$header$element$9 = this.header.element.offset()) === null || _this$header$element$9 === void 0 ? void 0 : _this$header$element$9.top) !== null && _this$header$element$8 !== void 0 ? _this$header$element$8 : 0) + ((_this$header$element$10 = this.header.element.innerHeight()) !== null && _this$header$element$10 !== void 0 ? _this$header$element$10 : 0)
471
523
  });
472
- },
473
- _resetHeaderDropZone: function _resetHeaderDropZone() {
524
+ }
525
+
526
+ _resetHeaderDropZone() {
474
527
  this.layoutManager.tabDropPlaceholder.remove();
475
- },
476
- _setupHeaderPosition: function _setupHeaderPosition() {
477
- var side = ['right', 'left', 'bottom'].indexOf(this._header.show) >= 0 && this._header.show;
528
+ }
529
+
530
+ _setupHeaderPosition() {
531
+ var side = ['right', 'left', 'bottom'].some(elem => elem === this._header.show) ? this._header.show : undefined;
532
+
533
+ if (!side) {
534
+ return;
535
+ }
478
536
 
479
537
  this.header.element.toggle(!!this._header.show);
480
538
  this._side = side;
481
- this._sided = ['right', 'left'].indexOf(this._side) >= 0;
539
+ this._sided = ['right', 'left'].indexOf(this._side.toString()) >= 0;
482
540
  this.element.removeClass('lm_left lm_right lm_bottom');
483
541
  if (this._side) this.element.addClass('lm_' + this._side);
484
542
 
485
543
  if (this.element.find('.lm_header').length && this.childElementContainer) {
486
- var headerPosition = ['right', 'bottom'].indexOf(this._side) >= 0 ? 'before' : 'after';
544
+ var headerPosition = ['right', 'bottom'].indexOf(this._side.toString()) >= 0 ? 'before' : 'after';
487
545
  this.header.element[headerPosition](this.childElementContainer);
488
546
  this.callDownwards('setSize');
489
547
  }
490
- },
491
- _highlightBodyDropZone: function _highlightBodyDropZone(segment) {
492
- var highlightArea = this._contentAreaDimensions[segment].highlightArea;
493
- this.layoutManager.dropTargetIndicator.highlightArea(highlightArea);
548
+ }
549
+
550
+ _highlightBodyDropZone(segment) {
551
+ var _this$_contentAreaDim, _this$_contentAreaDim2;
552
+
553
+ var highlightArea = (_this$_contentAreaDim = this._contentAreaDimensions) === null || _this$_contentAreaDim === void 0 ? void 0 : (_this$_contentAreaDim2 = _this$_contentAreaDim[segment]) === null || _this$_contentAreaDim2 === void 0 ? void 0 : _this$_contentAreaDim2.highlightArea;
554
+
555
+ if (highlightArea) {
556
+ var _this$layoutManager$d3;
557
+
558
+ (_this$layoutManager$d3 = this.layoutManager.dropTargetIndicator) === null || _this$layoutManager$d3 === void 0 ? void 0 : _this$layoutManager$d3.highlightArea(highlightArea);
559
+ }
560
+
494
561
  this._dropSegment = segment;
495
562
  }
496
- });
497
- export default Stack;
563
+
564
+ }
498
565
  //# sourceMappingURL=Stack.js.map