@deephaven/golden-layout 0.22.3-beta.18 → 0.22.3-beta.21

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 (60) hide show
  1. package/dist/LayoutManager.js +60 -260
  2. package/dist/LayoutManager.js.map +1 -1
  3. package/dist/base.js.map +1 -1
  4. package/dist/config/Config.js.map +1 -1
  5. package/dist/config/ItemConfig.js.map +1 -1
  6. package/dist/container/ItemContainer.js +14 -50
  7. package/dist/container/ItemContainer.js.map +1 -1
  8. package/dist/container/index.js.map +1 -1
  9. package/dist/controls/BrowserPopout.js +17 -63
  10. package/dist/controls/BrowserPopout.js.map +1 -1
  11. package/dist/controls/DragProxy.js +13 -73
  12. package/dist/controls/DragProxy.js.map +1 -1
  13. package/dist/controls/DragSource.js +3 -19
  14. package/dist/controls/DragSource.js.map +1 -1
  15. package/dist/controls/DragSourceFromEvent.js +5 -24
  16. package/dist/controls/DragSourceFromEvent.js.map +1 -1
  17. package/dist/controls/DropTargetIndicator.js +0 -7
  18. package/dist/controls/DropTargetIndicator.js.map +1 -1
  19. package/dist/controls/Header.js +89 -233
  20. package/dist/controls/Header.js.map +1 -1
  21. package/dist/controls/HeaderButton.js +0 -9
  22. package/dist/controls/HeaderButton.js.map +1 -1
  23. package/dist/controls/Splitter.js +0 -14
  24. package/dist/controls/Splitter.js.map +1 -1
  25. package/dist/controls/Tab.js +21 -62
  26. package/dist/controls/Tab.js.map +1 -1
  27. package/dist/controls/TransitionIndicator.js +2 -21
  28. package/dist/controls/TransitionIndicator.js.map +1 -1
  29. package/dist/controls/index.js.map +1 -1
  30. package/dist/errors/ConfigurationError.js +0 -5
  31. package/dist/errors/ConfigurationError.js.map +1 -1
  32. package/dist/errors/index.js.map +1 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/items/AbstractContentItem.js +37 -133
  35. package/dist/items/AbstractContentItem.js.map +1 -1
  36. package/dist/items/Component.js +2 -27
  37. package/dist/items/Component.js.map +1 -1
  38. package/dist/items/Root.js +1 -26
  39. package/dist/items/Root.js.map +1 -1
  40. package/dist/items/RowOrColumn.js +32 -128
  41. package/dist/items/RowOrColumn.js.map +1 -1
  42. package/dist/items/Stack.js +27 -115
  43. package/dist/items/Stack.js.map +1 -1
  44. package/dist/items/index.js.map +1 -1
  45. package/dist/utils/BubblingEvent.js +0 -6
  46. package/dist/utils/BubblingEvent.js.map +1 -1
  47. package/dist/utils/ConfigMinifier.js +13 -26
  48. package/dist/utils/ConfigMinifier.js.map +1 -1
  49. package/dist/utils/DragListener.js +8 -47
  50. package/dist/utils/DragListener.js.map +1 -1
  51. package/dist/utils/EventEmitter.js +5 -25
  52. package/dist/utils/EventEmitter.js.map +1 -1
  53. package/dist/utils/EventHub.js +8 -27
  54. package/dist/utils/EventHub.js.map +1 -1
  55. package/dist/utils/ReactComponentHandler.js +6 -35
  56. package/dist/utils/ReactComponentHandler.js.map +1 -1
  57. package/dist/utils/index.js.map +1 -1
  58. package/dist/utils/utils.js +5 -11
  59. package/dist/utils/utils.js.map +1 -1
  60. package/package.json +2 -2
@@ -1,10 +1,8 @@
1
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
-
3
2
  import $ from 'jquery';
4
3
  import { isComponent } from "../items/index.js";
5
4
  import { DragListener } from "../utils/index.js";
6
5
  import DragProxy from "./DragProxy.js";
7
-
8
6
  /**
9
7
  * Represents an individual tab within a Stack's header
10
8
  *
@@ -15,25 +13,17 @@ export default class Tab {
15
13
  /**
16
14
  * The tab's html template
17
15
  */
16
+
18
17
  constructor(header, contentItem) {
19
18
  var _this$_layoutManager$;
20
-
21
19
  _defineProperty(this, "header", void 0);
22
-
23
20
  _defineProperty(this, "contentItem", void 0);
24
-
25
21
  _defineProperty(this, "element", $(Tab._template));
26
-
27
22
  _defineProperty(this, "titleElement", void 0);
28
-
29
23
  _defineProperty(this, "closeElement", void 0);
30
-
31
24
  _defineProperty(this, "isActive", false);
32
-
33
25
  _defineProperty(this, "_layoutManager", void 0);
34
-
35
26
  _defineProperty(this, "_dragListener", void 0);
36
-
37
27
  this.header = header;
38
28
  this.contentItem = contentItem;
39
29
  this.titleElement = this.element.find('.lm_title');
@@ -42,123 +32,102 @@ export default class Tab {
42
32
  this.setTitle(contentItem.config.title);
43
33
  this.contentItem.on('titleChanged', this.setTitle, this);
44
34
  this._layoutManager = this.contentItem.layoutManager;
45
-
46
35
  if ((_this$_layoutManager$ = this._layoutManager.config.settings) !== null && _this$_layoutManager$ !== void 0 && _this$_layoutManager$.reorderEnabled && contentItem.config.reorderEnabled) {
47
36
  this._dragListener = new DragListener(this.element);
48
-
49
37
  this._dragListener.on('dragStart', this._onDragStart, this);
50
-
51
38
  this.contentItem.on('destroy', this._dragListener.destroy, this._dragListener);
52
39
  }
53
-
54
40
  this._onTabClick = this._onTabClick.bind(this);
55
41
  this._onCloseClick = this._onCloseClick.bind(this);
56
42
  this._onTabContentFocusIn = this._onTabContentFocusIn.bind(this);
57
43
  this._onTabContentFocusOut = this._onTabContentFocusOut.bind(this);
58
44
  this.element.on('click', this._onTabClick);
59
45
  this.element.on('auxclick', this._onTabClick);
60
-
61
46
  if (this.contentItem.config.isClosable) {
62
47
  this.closeElement.on('click', this._onCloseClick);
63
48
  this.closeElement.on('mousedown', this._onCloseMousedown);
64
49
  } else {
65
50
  this.closeElement.remove();
66
51
  }
67
-
68
52
  this.contentItem.tab = this;
69
53
  this.contentItem.emit('tab', this);
70
54
  this.contentItem.layoutManager.emit('tabCreated', this);
71
-
72
55
  if (isComponent(this.contentItem)) {
73
56
  // add focus class to tab when content
74
57
  this.contentItem.container._contentElement.on('focusin click', this._onTabContentFocusIn).on('focusout', this._onTabContentFocusOut);
75
-
76
58
  this.contentItem.container.tab = this;
77
59
  this.contentItem.container.emit('tab', this);
78
60
  }
79
61
  }
62
+
80
63
  /**
81
64
  * Sets the tab's title to the provided string and sets
82
65
  * its title attribute to a pure text representation (without
83
66
  * html tags) of the same string.
84
67
  * @param title can contain html
85
68
  */
86
-
87
-
88
69
  setTitle() {
89
70
  var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
90
71
  // Disabling for illumon project, we want to manage our own tooltips
91
72
  // this.element.attr( 'title', lm.utils.stripTags( title ) );
92
73
  this.titleElement.html(title);
93
74
  }
75
+
94
76
  /**
95
77
  * Sets this tab's active state. To programmatically
96
78
  * switch tabs, use header.setActiveContentItem( item ) instead.
97
79
  * @param isActive
98
80
  */
99
-
100
-
101
81
  setActive(isActive) {
102
82
  if (isActive === this.isActive) {
103
83
  return;
104
84
  }
105
-
106
85
  this.isActive = isActive;
107
-
108
86
  if (isActive) {
109
87
  this.element.addClass('lm_active');
110
88
  } else {
111
89
  this.element.removeClass('lm_active');
112
90
  }
113
91
  }
92
+
114
93
  /**
115
94
  * Destroys the tab
116
95
  *
117
96
  * @private
118
97
  * @returns {void}
119
98
  */
120
-
121
-
122
99
  _$destroy() {
123
100
  this.element.off('click', this._onTabClick);
124
101
  this.element.off('auxclick', this._onTabClick);
125
102
  this.closeElement.off('click', this._onCloseClick);
126
-
127
103
  if (isComponent(this.contentItem)) {
128
104
  this.contentItem.container._contentElement.off();
129
105
  }
130
-
131
106
  if (this._dragListener) {
132
107
  this.contentItem.off('destroy', this._dragListener.destroy, this._dragListener);
133
-
134
108
  this._dragListener.off('dragStart', this._onDragStart);
135
-
136
109
  this._dragListener = undefined;
137
110
  }
138
-
139
111
  this.element.remove();
140
112
  }
113
+
141
114
  /**
142
115
  * Callback for the DragListener
143
116
  *
144
117
  * @param x The tabs absolute x position
145
118
  * @param y The tabs absolute y position
146
119
  */
147
-
148
-
149
120
  _onDragStart(x, y) {
150
121
  var _this$contentItem$par;
151
-
152
122
  if ((_this$contentItem$par = this.contentItem.parent) !== null && _this$contentItem$par !== void 0 && _this$contentItem$par.isMaximised) {
153
123
  this.contentItem.parent.toggleMaximise();
154
124
  }
155
-
156
125
  if (!this._dragListener) {
157
126
  return;
158
127
  }
159
-
160
128
  new DragProxy(x, y, this._dragListener, this._layoutManager, this.contentItem, this.header.parent);
161
129
  }
130
+
162
131
  /**
163
132
  * Callback when the contentItem is focused in
164
133
  *
@@ -169,18 +138,16 @@ export default class Tab {
169
138
  * again here. This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the bubbling surrogate
170
139
  * propagates *after* the non-bubbling base), but that seems less bad than duplication."
171
140
  */
172
-
173
-
174
141
  _onTabContentFocusIn() {
175
142
  if (isComponent(this.contentItem) && !this.contentItem.container._contentElement[0].contains(document.activeElement)) {
176
143
  // jquery 3.4.0 and later, jquery method optimizes out the focus from
177
144
  // happening in proper order. Can use HTMLElement.focus() to avoid.
178
145
  this.contentItem.container._contentElement[0].focus(); // [0] needed to use dom focus, not jquery method
179
-
180
146
  }
181
147
 
182
148
  this.element.addClass('lm_focusin');
183
149
  }
150
+
184
151
  /**
185
152
  * Callback when the contentItem is focused out
186
153
  *
@@ -189,83 +156,75 @@ export default class Tab {
189
156
  * @private
190
157
  * @returns {void}
191
158
  */
192
-
193
-
194
159
  _onTabContentFocusOut() {
195
160
  if (isComponent(this.contentItem) && !this.contentItem.container._contentElement[0].contains(document.activeElement)) {
196
161
  this.element.removeClass('lm_focusin');
197
162
  }
198
163
  }
164
+
199
165
  /**
200
166
  * Callback when the tab is clicked
201
167
  *
202
168
  * @param event
203
169
  */
204
-
205
-
206
170
  _onTabClick(event) {
207
171
  // left mouse button or tap
208
172
  if (!event || event.button === 0) {
209
173
  var _this$element$get;
210
-
211
174
  var activeContentItem = this.header.parent.getActiveContentItem();
212
-
213
175
  if (this.contentItem !== activeContentItem && isComponent(this.contentItem)) {
214
176
  this.header.parent.setActiveContentItem(this.contentItem);
215
177
  this.contentItem.container.emit('tabClicked');
216
178
  } else if (isComponent(this.contentItem) && !this.contentItem.container._contentElement[0].contains(document.activeElement)) {
217
179
  // if no focus inside put focus onto the container
218
180
  // so focusin always fires for tabclicks
219
- this.contentItem.container._contentElement.focus(); // still emit tab clicked event, so panels can also
220
- // do it's own focus handling if desired
221
-
181
+ this.contentItem.container._contentElement.focus();
222
182
 
183
+ // still emit tab clicked event, so panels can also
184
+ // do it's own focus handling if desired
223
185
  this.contentItem.container.emit('tabClicked');
224
- } // might have been called from the dropdown
225
-
226
-
227
- this.header._hideAdditionalTabsDropdown(); // makes sure clicked tabs scrollintoview (either those partially offscreen or in dropdown)
186
+ }
228
187
 
188
+ // might have been called from the dropdown
189
+ this.header._hideAdditionalTabsDropdown();
229
190
 
191
+ // makes sure clicked tabs scrollintoview (either those partially offscreen or in dropdown)
230
192
  (_this$element$get = this.element.get(0)) === null || _this$element$get === void 0 ? void 0 : _this$element$get.scrollIntoView({
231
- inline: 'nearest' // behaviour smooth is not possible here, as when a tab becomes active it may attempt to take focus
193
+ inline: 'nearest'
194
+ // behaviour smooth is not possible here, as when a tab becomes active it may attempt to take focus
232
195
  // which interupts any scroll behaviour from completeting
196
+ });
233
197
 
234
- }); // middle mouse button
198
+ // middle mouse button
235
199
  } else if (event.button === 1 && this.contentItem.config.isClosable) {
236
200
  this._onCloseClick(event);
237
201
  }
238
202
  }
203
+
239
204
  /**
240
205
  * Callback when the tab's close button is
241
206
  * clicked
242
207
  *
243
208
  * @param event
244
209
  */
245
-
246
-
247
210
  _onCloseClick(event) {
248
211
  event.stopPropagation();
249
-
250
212
  if (isComponent(this.contentItem)) {
251
213
  this.contentItem.container.close();
252
214
  } else {
253
215
  this.header.parent.removeChild(this.contentItem);
254
216
  }
255
217
  }
218
+
256
219
  /**
257
220
  * Callback to capture tab close button mousedown
258
221
  * to prevent tab from activating.
259
222
  *
260
223
  * @param event
261
224
  */
262
-
263
-
264
225
  _onCloseMousedown(event) {
265
226
  event.stopPropagation();
266
227
  }
267
-
268
228
  }
269
-
270
229
  _defineProperty(Tab, "_template", ['<li class="lm_tab">', '<span class="lm_title_before"></span>', '<span class="lm_title"></span>', '<div class="lm_close_tab"></div>', '</li>'].join(''));
271
230
  //# sourceMappingURL=Tab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","names":["$","isComponent","DragListener","DragProxy","Tab","constructor","header","contentItem","_template","titleElement","element","find","closeElement","config","isClosable","setTitle","title","on","_layoutManager","layoutManager","settings","reorderEnabled","_dragListener","_onDragStart","destroy","_onTabClick","bind","_onCloseClick","_onTabContentFocusIn","_onTabContentFocusOut","_onCloseMousedown","remove","tab","emit","container","_contentElement","html","setActive","isActive","addClass","removeClass","_$destroy","off","undefined","x","y","parent","isMaximised","toggleMaximise","contains","document","activeElement","focus","event","button","activeContentItem","getActiveContentItem","setActiveContentItem","_hideAdditionalTabsDropdown","get","scrollIntoView","inline","stopPropagation","close","removeChild","join"],"sources":["../../src/controls/Tab.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { AbstractContentItem } from '../items';\nimport { isComponent } from '../items';\nimport type LayoutManager from '../LayoutManager';\nimport { DragListener } from '../utils';\nimport DragProxy from './DragProxy';\nimport type Header from './Header';\n\n/**\n * Represents an individual tab within a Stack's header\n *\n * @param header\n * @param contentItem\n */\nexport default class Tab {\n /**\n * The tab's html template\n */\n private static _template = [\n '<li class=\"lm_tab\">',\n '<span class=\"lm_title_before\"></span>',\n '<span class=\"lm_title\"></span>',\n '<div class=\"lm_close_tab\"></div>',\n '</li>',\n ].join('');\n\n header: Header;\n contentItem: AbstractContentItem;\n element = $(Tab._template);\n titleElement: JQuery<HTMLElement>;\n closeElement: JQuery<HTMLElement>;\n isActive = false;\n\n private _layoutManager: LayoutManager;\n private _dragListener?: DragListener;\n\n constructor(header: Header, contentItem: AbstractContentItem) {\n this.header = header;\n this.contentItem = contentItem;\n this.titleElement = this.element.find('.lm_title');\n this.closeElement = this.element.find('.lm_close_tab');\n this.closeElement[contentItem.config.isClosable ? 'show' : 'hide']();\n\n this.setTitle(contentItem.config.title);\n this.contentItem.on('titleChanged', this.setTitle, this);\n\n this._layoutManager = this.contentItem.layoutManager;\n\n if (\n this._layoutManager.config.settings?.reorderEnabled &&\n contentItem.config.reorderEnabled\n ) {\n this._dragListener = new DragListener(this.element);\n this._dragListener.on('dragStart', this._onDragStart, this);\n this.contentItem.on(\n 'destroy',\n this._dragListener.destroy,\n this._dragListener\n );\n }\n\n this._onTabClick = this._onTabClick.bind(this);\n this._onCloseClick = this._onCloseClick.bind(this);\n this._onTabContentFocusIn = this._onTabContentFocusIn.bind(this);\n this._onTabContentFocusOut = this._onTabContentFocusOut.bind(this);\n\n this.element.on('click', this._onTabClick);\n this.element.on('auxclick', this._onTabClick);\n\n if (this.contentItem.config.isClosable) {\n this.closeElement.on('click', this._onCloseClick);\n this.closeElement.on('mousedown', this._onCloseMousedown);\n } else {\n this.closeElement.remove();\n }\n\n this.contentItem.tab = this;\n this.contentItem.emit('tab', this);\n this.contentItem.layoutManager.emit('tabCreated', this);\n\n if (isComponent(this.contentItem)) {\n // add focus class to tab when content\n this.contentItem.container._contentElement\n .on('focusin click', this._onTabContentFocusIn)\n .on('focusout', this._onTabContentFocusOut);\n\n this.contentItem.container.tab = this;\n this.contentItem.container.emit('tab', this);\n }\n }\n\n /**\n * Sets the tab's title to the provided string and sets\n * its title attribute to a pure text representation (without\n * html tags) of the same string.\n * @param title can contain html\n */\n setTitle(title = '') {\n // Disabling for illumon project, we want to manage our own tooltips\n // this.element.attr( 'title', lm.utils.stripTags( title ) );\n this.titleElement.html(title);\n }\n\n /**\n * Sets this tab's active state. To programmatically\n * switch tabs, use header.setActiveContentItem( item ) instead.\n * @param isActive\n */\n setActive(isActive: boolean) {\n if (isActive === this.isActive) {\n return;\n }\n this.isActive = isActive;\n\n if (isActive) {\n this.element.addClass('lm_active');\n } else {\n this.element.removeClass('lm_active');\n }\n }\n\n /**\n * Destroys the tab\n *\n * @private\n * @returns {void}\n */\n _$destroy() {\n this.element.off('click', this._onTabClick);\n this.element.off('auxclick', this._onTabClick);\n this.closeElement.off('click', this._onCloseClick);\n if (isComponent(this.contentItem)) {\n this.contentItem.container._contentElement.off();\n }\n if (this._dragListener) {\n this.contentItem.off(\n 'destroy',\n this._dragListener.destroy,\n this._dragListener\n );\n this._dragListener.off('dragStart', this._onDragStart);\n this._dragListener = undefined;\n }\n this.element.remove();\n }\n\n /**\n * Callback for the DragListener\n *\n * @param x The tabs absolute x position\n * @param y The tabs absolute y position\n */\n _onDragStart(x: number, y: number) {\n if (this.contentItem.parent?.isMaximised) {\n this.contentItem.parent.toggleMaximise();\n }\n\n if (!this._dragListener) {\n return;\n }\n\n new DragProxy(\n x,\n y,\n this._dragListener,\n this._layoutManager,\n this.contentItem,\n this.header.parent\n );\n }\n\n /**\n * Callback when the contentItem is focused in\n *\n * Why [0].focus():\n * https://github.com/jquery/jquery/commit/fe5f04de8fde9c69ed48283b99280aa6df3795c7\n * From jquery source: \"If this is an inner synthetic event for an event with a bubbling surrogate (focus or blur),\n * assume that the surrogate already propagated from triggering the native event and prevent that from happening\n * again here. This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the bubbling surrogate\n * propagates *after* the non-bubbling base), but that seems less bad than duplication.\"\n */\n _onTabContentFocusIn() {\n if (\n isComponent(this.contentItem) &&\n !this.contentItem.container._contentElement[0].contains(\n document.activeElement\n )\n ) {\n // jquery 3.4.0 and later, jquery method optimizes out the focus from\n // happening in proper order. Can use HTMLElement.focus() to avoid.\n this.contentItem.container._contentElement[0].focus(); // [0] needed to use dom focus, not jquery method\n }\n this.element.addClass('lm_focusin');\n }\n\n /**\n * Callback when the contentItem is focused out\n *\n * @param {jQuery DOM event} event\n *\n * @private\n * @returns {void}\n */\n _onTabContentFocusOut() {\n if (\n isComponent(this.contentItem) &&\n !this.contentItem.container._contentElement[0].contains(\n document.activeElement\n )\n ) {\n this.element.removeClass('lm_focusin');\n }\n }\n\n /**\n * Callback when the tab is clicked\n *\n * @param event\n */\n _onTabClick(event?: JQuery.TriggeredEvent) {\n // left mouse button or tap\n if (!event || event.button === 0) {\n var activeContentItem = this.header.parent.getActiveContentItem();\n if (\n this.contentItem !== activeContentItem &&\n isComponent(this.contentItem)\n ) {\n this.header.parent.setActiveContentItem(this.contentItem);\n this.contentItem.container.emit('tabClicked');\n } else if (\n isComponent(this.contentItem) &&\n !this.contentItem.container._contentElement[0].contains(\n document.activeElement\n )\n ) {\n // if no focus inside put focus onto the container\n // so focusin always fires for tabclicks\n this.contentItem.container._contentElement.focus();\n\n // still emit tab clicked event, so panels can also\n // do it's own focus handling if desired\n this.contentItem.container.emit('tabClicked');\n }\n\n // might have been called from the dropdown\n this.header._hideAdditionalTabsDropdown();\n\n // makes sure clicked tabs scrollintoview (either those partially offscreen or in dropdown)\n this.element.get(0)?.scrollIntoView({\n inline: 'nearest',\n // behaviour smooth is not possible here, as when a tab becomes active it may attempt to take focus\n // which interupts any scroll behaviour from completeting\n });\n\n // middle mouse button\n } else if (event.button === 1 && this.contentItem.config.isClosable) {\n this._onCloseClick(event);\n }\n }\n\n /**\n * Callback when the tab's close button is\n * clicked\n *\n * @param event\n */\n _onCloseClick(event: JQuery.TriggeredEvent) {\n event.stopPropagation();\n if (isComponent(this.contentItem)) {\n this.contentItem.container.close();\n } else {\n this.header.parent.removeChild(this.contentItem);\n }\n }\n\n /**\n * Callback to capture tab close button mousedown\n * to prevent tab from activating.\n *\n * @param event\n */\n _onCloseMousedown(event: Event) {\n event.stopPropagation();\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tab.js","names":["$","isComponent","DragListener","DragProxy","Tab","constructor","header","contentItem","_template","titleElement","element","find","closeElement","config","isClosable","setTitle","title","on","_layoutManager","layoutManager","settings","reorderEnabled","_dragListener","_onDragStart","destroy","_onTabClick","bind","_onCloseClick","_onTabContentFocusIn","_onTabContentFocusOut","_onCloseMousedown","remove","tab","emit","container","_contentElement","html","setActive","isActive","addClass","removeClass","_$destroy","off","undefined","x","y","parent","isMaximised","toggleMaximise","contains","document","activeElement","focus","event","button","activeContentItem","getActiveContentItem","setActiveContentItem","_hideAdditionalTabsDropdown","get","scrollIntoView","inline","stopPropagation","close","removeChild","join"],"sources":["../../src/controls/Tab.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { AbstractContentItem } from '../items';\nimport { isComponent } from '../items';\nimport type LayoutManager from '../LayoutManager';\nimport { DragListener } from '../utils';\nimport DragProxy from './DragProxy';\nimport type Header from './Header';\n\n/**\n * Represents an individual tab within a Stack's header\n *\n * @param header\n * @param contentItem\n */\nexport default class Tab {\n /**\n * The tab's html template\n */\n private static _template = [\n '<li class=\"lm_tab\">',\n '<span class=\"lm_title_before\"></span>',\n '<span class=\"lm_title\"></span>',\n '<div class=\"lm_close_tab\"></div>',\n '</li>',\n ].join('');\n\n header: Header;\n contentItem: AbstractContentItem;\n element = $(Tab._template);\n titleElement: JQuery<HTMLElement>;\n closeElement: JQuery<HTMLElement>;\n isActive = false;\n\n private _layoutManager: LayoutManager;\n private _dragListener?: DragListener;\n\n constructor(header: Header, contentItem: AbstractContentItem) {\n this.header = header;\n this.contentItem = contentItem;\n this.titleElement = this.element.find('.lm_title');\n this.closeElement = this.element.find('.lm_close_tab');\n this.closeElement[contentItem.config.isClosable ? 'show' : 'hide']();\n\n this.setTitle(contentItem.config.title);\n this.contentItem.on('titleChanged', this.setTitle, this);\n\n this._layoutManager = this.contentItem.layoutManager;\n\n if (\n this._layoutManager.config.settings?.reorderEnabled &&\n contentItem.config.reorderEnabled\n ) {\n this._dragListener = new DragListener(this.element);\n this._dragListener.on('dragStart', this._onDragStart, this);\n this.contentItem.on(\n 'destroy',\n this._dragListener.destroy,\n this._dragListener\n );\n }\n\n this._onTabClick = this._onTabClick.bind(this);\n this._onCloseClick = this._onCloseClick.bind(this);\n this._onTabContentFocusIn = this._onTabContentFocusIn.bind(this);\n this._onTabContentFocusOut = this._onTabContentFocusOut.bind(this);\n\n this.element.on('click', this._onTabClick);\n this.element.on('auxclick', this._onTabClick);\n\n if (this.contentItem.config.isClosable) {\n this.closeElement.on('click', this._onCloseClick);\n this.closeElement.on('mousedown', this._onCloseMousedown);\n } else {\n this.closeElement.remove();\n }\n\n this.contentItem.tab = this;\n this.contentItem.emit('tab', this);\n this.contentItem.layoutManager.emit('tabCreated', this);\n\n if (isComponent(this.contentItem)) {\n // add focus class to tab when content\n this.contentItem.container._contentElement\n .on('focusin click', this._onTabContentFocusIn)\n .on('focusout', this._onTabContentFocusOut);\n\n this.contentItem.container.tab = this;\n this.contentItem.container.emit('tab', this);\n }\n }\n\n /**\n * Sets the tab's title to the provided string and sets\n * its title attribute to a pure text representation (without\n * html tags) of the same string.\n * @param title can contain html\n */\n setTitle(title = '') {\n // Disabling for illumon project, we want to manage our own tooltips\n // this.element.attr( 'title', lm.utils.stripTags( title ) );\n this.titleElement.html(title);\n }\n\n /**\n * Sets this tab's active state. To programmatically\n * switch tabs, use header.setActiveContentItem( item ) instead.\n * @param isActive\n */\n setActive(isActive: boolean) {\n if (isActive === this.isActive) {\n return;\n }\n this.isActive = isActive;\n\n if (isActive) {\n this.element.addClass('lm_active');\n } else {\n this.element.removeClass('lm_active');\n }\n }\n\n /**\n * Destroys the tab\n *\n * @private\n * @returns {void}\n */\n _$destroy() {\n this.element.off('click', this._onTabClick);\n this.element.off('auxclick', this._onTabClick);\n this.closeElement.off('click', this._onCloseClick);\n if (isComponent(this.contentItem)) {\n this.contentItem.container._contentElement.off();\n }\n if (this._dragListener) {\n this.contentItem.off(\n 'destroy',\n this._dragListener.destroy,\n this._dragListener\n );\n this._dragListener.off('dragStart', this._onDragStart);\n this._dragListener = undefined;\n }\n this.element.remove();\n }\n\n /**\n * Callback for the DragListener\n *\n * @param x The tabs absolute x position\n * @param y The tabs absolute y position\n */\n _onDragStart(x: number, y: number) {\n if (this.contentItem.parent?.isMaximised) {\n this.contentItem.parent.toggleMaximise();\n }\n\n if (!this._dragListener) {\n return;\n }\n\n new DragProxy(\n x,\n y,\n this._dragListener,\n this._layoutManager,\n this.contentItem,\n this.header.parent\n );\n }\n\n /**\n * Callback when the contentItem is focused in\n *\n * Why [0].focus():\n * https://github.com/jquery/jquery/commit/fe5f04de8fde9c69ed48283b99280aa6df3795c7\n * From jquery source: \"If this is an inner synthetic event for an event with a bubbling surrogate (focus or blur),\n * assume that the surrogate already propagated from triggering the native event and prevent that from happening\n * again here. This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the bubbling surrogate\n * propagates *after* the non-bubbling base), but that seems less bad than duplication.\"\n */\n _onTabContentFocusIn() {\n if (\n isComponent(this.contentItem) &&\n !this.contentItem.container._contentElement[0].contains(\n document.activeElement\n )\n ) {\n // jquery 3.4.0 and later, jquery method optimizes out the focus from\n // happening in proper order. Can use HTMLElement.focus() to avoid.\n this.contentItem.container._contentElement[0].focus(); // [0] needed to use dom focus, not jquery method\n }\n this.element.addClass('lm_focusin');\n }\n\n /**\n * Callback when the contentItem is focused out\n *\n * @param {jQuery DOM event} event\n *\n * @private\n * @returns {void}\n */\n _onTabContentFocusOut() {\n if (\n isComponent(this.contentItem) &&\n !this.contentItem.container._contentElement[0].contains(\n document.activeElement\n )\n ) {\n this.element.removeClass('lm_focusin');\n }\n }\n\n /**\n * Callback when the tab is clicked\n *\n * @param event\n */\n _onTabClick(event?: JQuery.TriggeredEvent) {\n // left mouse button or tap\n if (!event || event.button === 0) {\n var activeContentItem = this.header.parent.getActiveContentItem();\n if (\n this.contentItem !== activeContentItem &&\n isComponent(this.contentItem)\n ) {\n this.header.parent.setActiveContentItem(this.contentItem);\n this.contentItem.container.emit('tabClicked');\n } else if (\n isComponent(this.contentItem) &&\n !this.contentItem.container._contentElement[0].contains(\n document.activeElement\n )\n ) {\n // if no focus inside put focus onto the container\n // so focusin always fires for tabclicks\n this.contentItem.container._contentElement.focus();\n\n // still emit tab clicked event, so panels can also\n // do it's own focus handling if desired\n this.contentItem.container.emit('tabClicked');\n }\n\n // might have been called from the dropdown\n this.header._hideAdditionalTabsDropdown();\n\n // makes sure clicked tabs scrollintoview (either those partially offscreen or in dropdown)\n this.element.get(0)?.scrollIntoView({\n inline: 'nearest',\n // behaviour smooth is not possible here, as when a tab becomes active it may attempt to take focus\n // which interupts any scroll behaviour from completeting\n });\n\n // middle mouse button\n } else if (event.button === 1 && this.contentItem.config.isClosable) {\n this._onCloseClick(event);\n }\n }\n\n /**\n * Callback when the tab's close button is\n * clicked\n *\n * @param event\n */\n _onCloseClick(event: JQuery.TriggeredEvent) {\n event.stopPropagation();\n if (isComponent(this.contentItem)) {\n this.contentItem.container.close();\n } else {\n this.header.parent.removeChild(this.contentItem);\n }\n }\n\n /**\n * Callback to capture tab close button mousedown\n * to prevent tab from activating.\n *\n * @param event\n */\n _onCloseMousedown(event: Event) {\n event.stopPropagation();\n }\n}\n"],"mappings":"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"}
@@ -1,31 +1,24 @@
1
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
-
3
2
  import $ from 'jquery';
4
3
  import { animFrame } from "../utils/index.js";
5
4
  export default class TransitionIndicator {
6
5
  constructor() {
7
6
  _defineProperty(this, "_element", $('<div class="lm_transition_indicator"></div>'));
8
-
9
7
  _defineProperty(this, "_toElement", null);
10
-
11
8
  _defineProperty(this, "_fromDimensions", {});
12
-
13
9
  _defineProperty(this, "_totalAnimationDuration", 200);
14
-
15
10
  _defineProperty(this, "_animationStartTime", null);
16
-
17
11
  $(document.body).append(this._element);
18
12
  }
19
-
20
13
  destroy() {
21
14
  this._element.remove();
22
15
  }
23
-
24
16
  transitionElements(fromElement, toElement) {
25
17
  /**
26
18
  * TODO - This is not quite as cool as expected. Review.
27
19
  */
28
- return; // this._toElement = toElement;
20
+ return;
21
+ // this._toElement = toElement;
29
22
  // this._animationStartTime = utils.now();
30
23
  // this._fromDimensions = this._measure(fromElement);
31
24
  // this._fromDimensions.opacity = 0.8;
@@ -37,33 +30,22 @@ export default class TransitionIndicator {
37
30
  if (!this._toElement || this._animationStartTime == null) {
38
31
  return;
39
32
  }
40
-
41
33
  var toDimensions = this._measure(this._toElement);
42
-
43
34
  var animationProgress = (Date.now() - this._animationStartTime) / this._totalAnimationDuration;
44
-
45
35
  var currentFrameStyles = {};
46
-
47
36
  if (animationProgress >= 1) {
48
37
  this._element.hide();
49
-
50
38
  return;
51
39
  }
52
-
53
40
  toDimensions.opacity = 0;
54
41
  var keys = Object.keys(this._fromDimensions);
55
-
56
42
  for (var cssProperty of keys) {
57
43
  var _this$_fromDimensions, _toDimensions$cssProp, _this$_fromDimensions2;
58
-
59
44
  currentFrameStyles[cssProperty] = ((_this$_fromDimensions = this._fromDimensions[cssProperty]) !== null && _this$_fromDimensions !== void 0 ? _this$_fromDimensions : 0) + (((_toDimensions$cssProp = toDimensions[cssProperty]) !== null && _toDimensions$cssProp !== void 0 ? _toDimensions$cssProp : 0) - ((_this$_fromDimensions2 = this._fromDimensions[cssProperty]) !== null && _this$_fromDimensions2 !== void 0 ? _this$_fromDimensions2 : 0)) * animationProgress;
60
45
  }
61
-
62
46
  this._element.css(currentFrameStyles);
63
-
64
47
  animFrame(this._nextAnimationFrame.bind(this));
65
48
  }
66
-
67
49
  _measure(element) {
68
50
  var offset = element.offset();
69
51
  return {
@@ -73,6 +55,5 @@ export default class TransitionIndicator {
73
55
  height: element.outerHeight()
74
56
  };
75
57
  }
76
-
77
58
  }
78
59
  //# sourceMappingURL=TransitionIndicator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransitionIndicator.js","names":["$","animFrame","TransitionIndicator","constructor","document","body","append","_element","destroy","remove","transitionElements","fromElement","toElement","_nextAnimationFrame","_toElement","_animationStartTime","toDimensions","_measure","animationProgress","Date","now","_totalAnimationDuration","currentFrameStyles","hide","opacity","keys","Object","_fromDimensions","cssProperty","css","bind","element","offset","left","top","width","outerWidth","height","outerHeight"],"sources":["../../src/controls/TransitionIndicator.ts"],"sourcesContent":["import $ from 'jquery';\nimport { animFrame } from '../utils';\n\nexport type TransitionDimensions = {\n left?: number;\n top?: number;\n width?: number;\n height?: number;\n opacity?: number;\n};\n\nexport default class TransitionIndicator {\n private _element = $('<div class=\"lm_transition_indicator\"></div>');\n private _toElement: JQuery<HTMLElement> | null = null;\n\n private _fromDimensions: TransitionDimensions = {};\n private _totalAnimationDuration = 200;\n private _animationStartTime: number | null = null;\n\n constructor() {\n $(document.body).append(this._element);\n }\n\n destroy() {\n this._element.remove();\n }\n\n transitionElements(\n fromElement: JQuery<HTMLElement>,\n toElement: JQuery<HTMLElement>\n ) {\n /**\n * TODO - This is not quite as cool as expected. Review.\n */\n return;\n // this._toElement = toElement;\n // this._animationStartTime = utils.now();\n // this._fromDimensions = this._measure(fromElement);\n // this._fromDimensions.opacity = 0.8;\n // this._element.show().css(this._fromDimensions);\n // utils.animFrame(utils.fnBind(this._nextAnimationFrame, this));\n }\n\n _nextAnimationFrame() {\n if (!this._toElement || this._animationStartTime == null) {\n return;\n }\n\n const toDimensions: TransitionDimensions = this._measure(this._toElement);\n const animationProgress =\n (Date.now() - this._animationStartTime) / this._totalAnimationDuration;\n const currentFrameStyles: TransitionDimensions = {};\n\n if (animationProgress >= 1) {\n this._element.hide();\n return;\n }\n\n toDimensions.opacity = 0;\n\n const keys = Object.keys(this._fromDimensions) as [\n keyof TransitionDimensions\n ];\n\n for (let cssProperty of keys) {\n currentFrameStyles[cssProperty] =\n (this._fromDimensions[cssProperty] ?? 0) +\n ((toDimensions[cssProperty] ?? 0) -\n (this._fromDimensions[cssProperty] ?? 0)) *\n animationProgress;\n }\n\n this._element.css(currentFrameStyles);\n animFrame(this._nextAnimationFrame.bind(this));\n }\n\n _measure(element: JQuery<HTMLElement>) {\n const offset = element.offset();\n\n return {\n left: offset?.left,\n top: offset?.top,\n width: element.outerWidth(),\n height: element.outerHeight(),\n };\n }\n}\n"],"mappings":";;AAAA,OAAOA,CAAP,MAAc,QAAd;SACSC,S;AAUT,eAAe,MAAMC,mBAAN,CAA0B;EAQvCC,WAAW,GAAG;IAAA,kCAPKH,CAAC,CAAC,6CAAD,CAON;;IAAA,oCANmC,IAMnC;;IAAA,yCAJkC,EAIlC;;IAAA,iDAHoB,GAGpB;;IAAA,6CAF+B,IAE/B;;IACZA,CAAC,CAACI,QAAQ,CAACC,IAAV,CAAD,CAAiBC,MAAjB,CAAwB,KAAKC,QAA7B;EACD;;EAEDC,OAAO,GAAG;IACR,KAAKD,QAAL,CAAcE,MAAd;EACD;;EAEDC,kBAAkB,CAChBC,WADgB,EAEhBC,SAFgB,EAGhB;IACA;AACJ;AACA;IACI,OAJA,CAKA;IACA;IACA;IACA;IACA;IACA;EACD;;EAEDC,mBAAmB,GAAG;IACpB,IAAI,CAAC,KAAKC,UAAN,IAAoB,KAAKC,mBAAL,IAA4B,IAApD,EAA0D;MACxD;IACD;;IAED,IAAMC,YAAkC,GAAG,KAAKC,QAAL,CAAc,KAAKH,UAAnB,CAA3C;;IACA,IAAMI,iBAAiB,GACrB,CAACC,IAAI,CAACC,GAAL,KAAa,KAAKL,mBAAnB,IAA0C,KAAKM,uBADjD;;IAEA,IAAMC,kBAAwC,GAAG,EAAjD;;IAEA,IAAIJ,iBAAiB,IAAI,CAAzB,EAA4B;MAC1B,KAAKX,QAAL,CAAcgB,IAAd;;MACA;IACD;;IAEDP,YAAY,CAACQ,OAAb,GAAuB,CAAvB;IAEA,IAAMC,IAAI,GAAGC,MAAM,CAACD,IAAP,CAAY,KAAKE,eAAjB,CAAb;;IAIA,KAAK,IAAIC,WAAT,IAAwBH,IAAxB,EAA8B;MAAA;;MAC5BH,kBAAkB,CAACM,WAAD,CAAlB,GACE,0BAAC,KAAKD,eAAL,CAAqBC,WAArB,CAAD,yEAAsC,CAAtC,IACA,CAAC,0BAACZ,YAAY,CAACY,WAAD,CAAb,yEAA8B,CAA9B,+BACE,KAAKD,eAAL,CAAqBC,WAArB,CADF,2EACuC,CADvC,CAAD,IAEEV,iBAJJ;IAKD;;IAED,KAAKX,QAAL,CAAcsB,GAAd,CAAkBP,kBAAlB;;IACArB,SAAS,CAAC,KAAKY,mBAAL,CAAyBiB,IAAzB,CAA8B,IAA9B,CAAD,CAAT;EACD;;EAEDb,QAAQ,CAACc,OAAD,EAA+B;IACrC,IAAMC,MAAM,GAAGD,OAAO,CAACC,MAAR,EAAf;IAEA,OAAO;MACLC,IAAI,EAAED,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEC,IADT;MAELC,GAAG,EAAEF,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEE,GAFR;MAGLC,KAAK,EAAEJ,OAAO,CAACK,UAAR,EAHF;MAILC,MAAM,EAAEN,OAAO,CAACO,WAAR;IAJH,CAAP;EAMD;;AA1EsC"}
1
+ {"version":3,"file":"TransitionIndicator.js","names":["$","animFrame","TransitionIndicator","constructor","document","body","append","_element","destroy","remove","transitionElements","fromElement","toElement","_nextAnimationFrame","_toElement","_animationStartTime","toDimensions","_measure","animationProgress","Date","now","_totalAnimationDuration","currentFrameStyles","hide","opacity","keys","Object","_fromDimensions","cssProperty","css","bind","element","offset","left","top","width","outerWidth","height","outerHeight"],"sources":["../../src/controls/TransitionIndicator.ts"],"sourcesContent":["import $ from 'jquery';\nimport { animFrame } from '../utils';\n\nexport type TransitionDimensions = {\n left?: number;\n top?: number;\n width?: number;\n height?: number;\n opacity?: number;\n};\n\nexport default class TransitionIndicator {\n private _element = $('<div class=\"lm_transition_indicator\"></div>');\n private _toElement: JQuery<HTMLElement> | null = null;\n\n private _fromDimensions: TransitionDimensions = {};\n private _totalAnimationDuration = 200;\n private _animationStartTime: number | null = null;\n\n constructor() {\n $(document.body).append(this._element);\n }\n\n destroy() {\n this._element.remove();\n }\n\n transitionElements(\n fromElement: JQuery<HTMLElement>,\n toElement: JQuery<HTMLElement>\n ) {\n /**\n * TODO - This is not quite as cool as expected. Review.\n */\n return;\n // this._toElement = toElement;\n // this._animationStartTime = utils.now();\n // this._fromDimensions = this._measure(fromElement);\n // this._fromDimensions.opacity = 0.8;\n // this._element.show().css(this._fromDimensions);\n // utils.animFrame(utils.fnBind(this._nextAnimationFrame, this));\n }\n\n _nextAnimationFrame() {\n if (!this._toElement || this._animationStartTime == null) {\n return;\n }\n\n const toDimensions: TransitionDimensions = this._measure(this._toElement);\n const animationProgress =\n (Date.now() - this._animationStartTime) / this._totalAnimationDuration;\n const currentFrameStyles: TransitionDimensions = {};\n\n if (animationProgress >= 1) {\n this._element.hide();\n return;\n }\n\n toDimensions.opacity = 0;\n\n const keys = Object.keys(this._fromDimensions) as [\n keyof TransitionDimensions\n ];\n\n for (let cssProperty of keys) {\n currentFrameStyles[cssProperty] =\n (this._fromDimensions[cssProperty] ?? 0) +\n ((toDimensions[cssProperty] ?? 0) -\n (this._fromDimensions[cssProperty] ?? 0)) *\n animationProgress;\n }\n\n this._element.css(currentFrameStyles);\n animFrame(this._nextAnimationFrame.bind(this));\n }\n\n _measure(element: JQuery<HTMLElement>) {\n const offset = element.offset();\n\n return {\n left: offset?.left,\n top: offset?.top,\n width: element.outerWidth(),\n height: element.outerHeight(),\n };\n }\n}\n"],"mappings":";AAAA,OAAOA,CAAC,MAAM,QAAQ;AAAC,SACdC,SAAS;AAUlB,eAAe,MAAMC,mBAAmB,CAAC;EAQvCC,WAAW,GAAG;IAAA,kCAPKH,CAAC,CAAC,6CAA6C,CAAC;IAAA,oCAClB,IAAI;IAAA,yCAEL,CAAC,CAAC;IAAA,iDAChB,GAAG;IAAA,6CACQ,IAAI;IAG/CA,CAAC,CAACI,QAAQ,CAACC,IAAI,CAAC,CAACC,MAAM,CAAC,IAAI,CAACC,QAAQ,CAAC;EACxC;EAEAC,OAAO,GAAG;IACR,IAAI,CAACD,QAAQ,CAACE,MAAM,EAAE;EACxB;EAEAC,kBAAkB,CAChBC,WAAgC,EAChCC,SAA8B,EAC9B;IACA;AACJ;AACA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;EACF;;EAEAC,mBAAmB,GAAG;IACpB,IAAI,CAAC,IAAI,CAACC,UAAU,IAAI,IAAI,CAACC,mBAAmB,IAAI,IAAI,EAAE;MACxD;IACF;IAEA,IAAMC,YAAkC,GAAG,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACH,UAAU,CAAC;IACzE,IAAMI,iBAAiB,GACrB,CAACC,IAAI,CAACC,GAAG,EAAE,GAAG,IAAI,CAACL,mBAAmB,IAAI,IAAI,CAACM,uBAAuB;IACxE,IAAMC,kBAAwC,GAAG,CAAC,CAAC;IAEnD,IAAIJ,iBAAiB,IAAI,CAAC,EAAE;MAC1B,IAAI,CAACX,QAAQ,CAACgB,IAAI,EAAE;MACpB;IACF;IAEAP,YAAY,CAACQ,OAAO,GAAG,CAAC;IAExB,IAAMC,IAAI,GAAGC,MAAM,CAACD,IAAI,CAAC,IAAI,CAACE,eAAe,CAE5C;IAED,KAAK,IAAIC,WAAW,IAAIH,IAAI,EAAE;MAAA;MAC5BH,kBAAkB,CAACM,WAAW,CAAC,GAC7B,0BAAC,IAAI,CAACD,eAAe,CAACC,WAAW,CAAC,yEAAI,CAAC,IACvC,CAAC,0BAACZ,YAAY,CAACY,WAAW,CAAC,yEAAI,CAAC,+BAC7B,IAAI,CAACD,eAAe,CAACC,WAAW,CAAC,2EAAI,CAAC,CAAC,IACxCV,iBAAiB;IACvB;IAEA,IAAI,CAACX,QAAQ,CAACsB,GAAG,CAACP,kBAAkB,CAAC;IACrCrB,SAAS,CAAC,IAAI,CAACY,mBAAmB,CAACiB,IAAI,CAAC,IAAI,CAAC,CAAC;EAChD;EAEAb,QAAQ,CAACc,OAA4B,EAAE;IACrC,IAAMC,MAAM,GAAGD,OAAO,CAACC,MAAM,EAAE;IAE/B,OAAO;MACLC,IAAI,EAAED,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,IAAI;MAClBC,GAAG,EAAEF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEE,GAAG;MAChBC,KAAK,EAAEJ,OAAO,CAACK,UAAU,EAAE;MAC3BC,MAAM,EAAEN,OAAO,CAACO,WAAW;IAC7B,CAAC;EACH;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","BrowserPopout","DragProxy","DragSource","DragSourceFromEvent","DropTargetIndicator","Header","HeaderButton","Splitter","Tab","TransitionIndicator"],"sources":["../../src/controls/index.ts"],"sourcesContent":["export { default as BrowserPopout } from './BrowserPopout';\nexport { default as DragProxy } from './DragProxy';\nexport { default as DragSource } from './DragSource';\nexport { default as DragSourceFromEvent } from './DragSourceFromEvent';\nexport { default as DropTargetIndicator } from './DropTargetIndicator';\nexport { default as Header } from './Header';\nexport { default as HeaderButton } from './HeaderButton';\nexport { default as Splitter } from './Splitter';\nexport { default as Tab } from './Tab';\nexport { default as TransitionIndicator } from './TransitionIndicator';\n"],"mappings":"SAASA,OAAO,IAAIC,a;SACXD,OAAO,IAAIE,S;SACXF,OAAO,IAAIG,U;SACXH,OAAO,IAAII,mB;SACXJ,OAAO,IAAIK,mB;SACXL,OAAO,IAAIM,M;SACXN,OAAO,IAAIO,Y;SACXP,OAAO,IAAIQ,Q;SACXR,OAAO,IAAIS,G;SACXT,OAAO,IAAIU,mB"}
1
+ {"version":3,"file":"index.js","names":["default","BrowserPopout","DragProxy","DragSource","DragSourceFromEvent","DropTargetIndicator","Header","HeaderButton","Splitter","Tab","TransitionIndicator"],"sources":["../../src/controls/index.ts"],"sourcesContent":["export { default as BrowserPopout } from './BrowserPopout';\nexport { default as DragProxy } from './DragProxy';\nexport { default as DragSource } from './DragSource';\nexport { default as DragSourceFromEvent } from './DragSourceFromEvent';\nexport { default as DropTargetIndicator } from './DropTargetIndicator';\nexport { default as Header } from './Header';\nexport { default as HeaderButton } from './HeaderButton';\nexport { default as Splitter } from './Splitter';\nexport { default as Tab } from './Tab';\nexport { default as TransitionIndicator } from './TransitionIndicator';\n"],"mappings":"SAASA,OAAO,IAAIC,aAAa;AAAA,SACxBD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,UAAU;AAAA,SACrBH,OAAO,IAAII,mBAAmB;AAAA,SAC9BJ,OAAO,IAAIK,mBAAmB;AAAA,SAC9BL,OAAO,IAAIM,MAAM;AAAA,SACjBN,OAAO,IAAIO,YAAY;AAAA,SACvBP,OAAO,IAAIQ,QAAQ;AAAA,SACnBR,OAAO,IAAIS,GAAG;AAAA,SACdT,OAAO,IAAIU,mBAAmB"}
@@ -1,17 +1,12 @@
1
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
-
3
2
  class ConfigurationError extends Error {
4
3
  constructor(message, node) {
5
4
  super();
6
-
7
5
  _defineProperty(this, "node", void 0);
8
-
9
6
  this.name = 'Configuration Error';
10
7
  this.message = message;
11
8
  this.node = node;
12
9
  }
13
-
14
10
  }
15
-
16
11
  export default ConfigurationError;
17
12
  //# sourceMappingURL=ConfigurationError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigurationError.js","names":["ConfigurationError","Error","constructor","message","node","name"],"sources":["../../src/errors/ConfigurationError.ts"],"sourcesContent":["class ConfigurationError extends Error {\n node: unknown;\n\n constructor(message: string, node?: unknown) {\n super();\n\n this.name = 'Configuration Error';\n this.message = message;\n this.node = node;\n }\n}\n\nexport default ConfigurationError;\n"],"mappings":";;AAAA,MAAMA,kBAAN,SAAiCC,KAAjC,CAAuC;EAGrCC,WAAW,CAACC,OAAD,EAAkBC,IAAlB,EAAkC;IAC3C;;IAD2C;;IAG3C,KAAKC,IAAL,GAAY,qBAAZ;IACA,KAAKF,OAAL,GAAeA,OAAf;IACA,KAAKC,IAAL,GAAYA,IAAZ;EACD;;AAToC;;AAYvC,eAAeJ,kBAAf"}
1
+ {"version":3,"file":"ConfigurationError.js","names":["ConfigurationError","Error","constructor","message","node","name"],"sources":["../../src/errors/ConfigurationError.ts"],"sourcesContent":["class ConfigurationError extends Error {\n node: unknown;\n\n constructor(message: string, node?: unknown) {\n super();\n\n this.name = 'Configuration Error';\n this.message = message;\n this.node = node;\n }\n}\n\nexport default ConfigurationError;\n"],"mappings":";AAAA,MAAMA,kBAAkB,SAASC,KAAK,CAAC;EAGrCC,WAAW,CAACC,OAAe,EAAEC,IAAc,EAAE;IAC3C,KAAK,EAAE;IAAC;IAER,IAAI,CAACC,IAAI,GAAG,qBAAqB;IACjC,IAAI,CAACF,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;AACF;AAEA,eAAeJ,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","ConfigurationError"],"sources":["../../src/errors/index.ts"],"sourcesContent":["export { default as ConfigurationError } from './ConfigurationError';\n"],"mappings":"SAASA,OAAO,IAAIC,kB"}
1
+ {"version":3,"file":"index.js","names":["default","ConfigurationError"],"sources":["../../src/errors/index.ts"],"sourcesContent":["export { default as ConfigurationError } from './ConfigurationError';\n"],"mappings":"SAASA,OAAO,IAAIC,kBAAkB"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["LayoutManager"],"sources":["../src/index.ts"],"sourcesContent":["import LayoutManager from './LayoutManager';\n\nexport default LayoutManager;\nexport * from './config';\nexport * from './container';\nexport * from './controls';\nexport * from './errors';\nexport * from './items';\nexport * from './utils';\n"],"mappings":"OAAOA,a;AAEP,eAAeA,aAAf"}
1
+ {"version":3,"file":"index.js","names":["LayoutManager"],"sources":["../src/index.ts"],"sourcesContent":["import LayoutManager from './LayoutManager';\n\nexport default LayoutManager;\nexport * from './config';\nexport * from './container';\nexport * from './controls';\nexport * from './errors';\nexport * from './items';\nexport * from './utils';\n"],"mappings":"OAAOA,aAAa;AAEpB,eAAeA,aAAa;AAAC;AAAA;AAAA;AAAA;AAAA;AAAA"}