@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.
- package/dist/LayoutManager.js +60 -260
- package/dist/LayoutManager.js.map +1 -1
- package/dist/base.js.map +1 -1
- package/dist/config/Config.js.map +1 -1
- package/dist/config/ItemConfig.js.map +1 -1
- package/dist/container/ItemContainer.js +14 -50
- package/dist/container/ItemContainer.js.map +1 -1
- package/dist/container/index.js.map +1 -1
- package/dist/controls/BrowserPopout.js +17 -63
- package/dist/controls/BrowserPopout.js.map +1 -1
- package/dist/controls/DragProxy.js +13 -73
- package/dist/controls/DragProxy.js.map +1 -1
- package/dist/controls/DragSource.js +3 -19
- package/dist/controls/DragSource.js.map +1 -1
- package/dist/controls/DragSourceFromEvent.js +5 -24
- package/dist/controls/DragSourceFromEvent.js.map +1 -1
- package/dist/controls/DropTargetIndicator.js +0 -7
- package/dist/controls/DropTargetIndicator.js.map +1 -1
- package/dist/controls/Header.js +89 -233
- package/dist/controls/Header.js.map +1 -1
- package/dist/controls/HeaderButton.js +0 -9
- package/dist/controls/HeaderButton.js.map +1 -1
- package/dist/controls/Splitter.js +0 -14
- package/dist/controls/Splitter.js.map +1 -1
- package/dist/controls/Tab.js +21 -62
- package/dist/controls/Tab.js.map +1 -1
- package/dist/controls/TransitionIndicator.js +2 -21
- package/dist/controls/TransitionIndicator.js.map +1 -1
- package/dist/controls/index.js.map +1 -1
- package/dist/errors/ConfigurationError.js +0 -5
- package/dist/errors/ConfigurationError.js.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/items/AbstractContentItem.js +37 -133
- package/dist/items/AbstractContentItem.js.map +1 -1
- package/dist/items/Component.js +2 -27
- package/dist/items/Component.js.map +1 -1
- package/dist/items/Root.js +1 -26
- package/dist/items/Root.js.map +1 -1
- package/dist/items/RowOrColumn.js +32 -128
- package/dist/items/RowOrColumn.js.map +1 -1
- package/dist/items/Stack.js +27 -115
- package/dist/items/Stack.js.map +1 -1
- package/dist/items/index.js.map +1 -1
- package/dist/utils/BubblingEvent.js +0 -6
- package/dist/utils/BubblingEvent.js.map +1 -1
- package/dist/utils/ConfigMinifier.js +13 -26
- package/dist/utils/ConfigMinifier.js.map +1 -1
- package/dist/utils/DragListener.js +8 -47
- package/dist/utils/DragListener.js.map +1 -1
- package/dist/utils/EventEmitter.js +5 -25
- package/dist/utils/EventEmitter.js.map +1 -1
- package/dist/utils/EventHub.js +8 -27
- package/dist/utils/EventHub.js.map +1 -1
- package/dist/utils/ReactComponentHandler.js +6 -35
- package/dist/utils/ReactComponentHandler.js.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/utils.js +5 -11
- package/dist/utils/utils.js.map +1 -1
- package/package.json +2 -2
package/dist/controls/Tab.js
CHANGED
|
@@ -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();
|
|
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
|
-
}
|
|
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'
|
|
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
|
-
|
|
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
|
package/dist/controls/Tab.js.map
CHANGED
|
@@ -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;
|
|
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":"
|
|
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,
|
|
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":"
|
|
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"}
|
package/dist/errors/index.js.map
CHANGED
|
@@ -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,
|
|
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,
|
|
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"}
|