@genesis-community/golden-layout 2.6.0
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/LICENSE +21 -0
- package/README.md +24 -0
- package/dist/cjs/index.js +40 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/ts/config/config.js +870 -0
- package/dist/cjs/ts/config/config.js.map +1 -0
- package/dist/cjs/ts/config/resolved-config.js +477 -0
- package/dist/cjs/ts/config/resolved-config.js.map +1 -0
- package/dist/cjs/ts/container/component-container.js +412 -0
- package/dist/cjs/ts/container/component-container.js.map +1 -0
- package/dist/cjs/ts/controls/browser-popout.js +298 -0
- package/dist/cjs/ts/controls/browser-popout.js.map +1 -0
- package/dist/cjs/ts/controls/drag-proxy.js +221 -0
- package/dist/cjs/ts/controls/drag-proxy.js.map +1 -0
- package/dist/cjs/ts/controls/drag-source.js +149 -0
- package/dist/cjs/ts/controls/drag-source.js.map +1 -0
- package/dist/cjs/ts/controls/drop-target-indicator.js +31 -0
- package/dist/cjs/ts/controls/drop-target-indicator.js.map +1 -0
- package/dist/cjs/ts/controls/header-button.js +34 -0
- package/dist/cjs/ts/controls/header-button.js.map +1 -0
- package/dist/cjs/ts/controls/header.js +366 -0
- package/dist/cjs/ts/controls/header.js.map +1 -0
- package/dist/cjs/ts/controls/splitter.js +42 -0
- package/dist/cjs/ts/controls/splitter.js.map +1 -0
- package/dist/cjs/ts/controls/tab.js +262 -0
- package/dist/cjs/ts/controls/tab.js.map +1 -0
- package/dist/cjs/ts/controls/tabs-container.js +236 -0
- package/dist/cjs/ts/controls/tabs-container.js.map +1 -0
- package/dist/cjs/ts/controls/transition-indicator.js +64 -0
- package/dist/cjs/ts/controls/transition-indicator.js.map +1 -0
- package/dist/cjs/ts/errors/external-error.js +46 -0
- package/dist/cjs/ts/errors/external-error.js.map +1 -0
- package/dist/cjs/ts/errors/internal-error.js +38 -0
- package/dist/cjs/ts/errors/internal-error.js.map +1 -0
- package/dist/cjs/ts/golden-layout.js +299 -0
- package/dist/cjs/ts/golden-layout.js.map +1 -0
- package/dist/cjs/ts/items/component-item.js +190 -0
- package/dist/cjs/ts/items/component-item.js.map +1 -0
- package/dist/cjs/ts/items/component-parentable-item.js +18 -0
- package/dist/cjs/ts/items/component-parentable-item.js.map +1 -0
- package/dist/cjs/ts/items/content-item.js +414 -0
- package/dist/cjs/ts/items/content-item.js.map +1 -0
- package/dist/cjs/ts/items/ground-item.js +352 -0
- package/dist/cjs/ts/items/ground-item.js.map +1 -0
- package/dist/cjs/ts/items/row-or-column.js +609 -0
- package/dist/cjs/ts/items/row-or-column.js.map +1 -0
- package/dist/cjs/ts/items/stack.js +841 -0
- package/dist/cjs/ts/items/stack.js.map +1 -0
- package/dist/cjs/ts/layout-manager.js +1618 -0
- package/dist/cjs/ts/layout-manager.js.map +1 -0
- package/dist/cjs/ts/utils/config-minifier.js +218 -0
- package/dist/cjs/ts/utils/config-minifier.js.map +1 -0
- package/dist/cjs/ts/utils/dom-constants.js +3 -0
- package/dist/cjs/ts/utils/dom-constants.js.map +1 -0
- package/dist/cjs/ts/utils/drag-listener.js +132 -0
- package/dist/cjs/ts/utils/drag-listener.js.map +1 -0
- package/dist/cjs/ts/utils/event-emitter.js +201 -0
- package/dist/cjs/ts/utils/event-emitter.js.map +1 -0
- package/dist/cjs/ts/utils/event-hub.js +135 -0
- package/dist/cjs/ts/utils/event-hub.js.map +1 -0
- package/dist/cjs/ts/utils/i18n-strings.js +74 -0
- package/dist/cjs/ts/utils/i18n-strings.js.map +1 -0
- package/dist/cjs/ts/utils/jquery-legacy.js +15 -0
- package/dist/cjs/ts/utils/jquery-legacy.js.map +1 -0
- package/dist/cjs/ts/utils/style-constants.js +11 -0
- package/dist/cjs/ts/utils/style-constants.js.map +1 -0
- package/dist/cjs/ts/utils/types.js +94 -0
- package/dist/cjs/ts/utils/types.js.map +1 -0
- package/dist/cjs/ts/utils/utils.js +211 -0
- package/dist/cjs/ts/utils/utils.js.map +1 -0
- package/dist/cjs/ts/virtual-layout.js +247 -0
- package/dist/cjs/ts/virtual-layout.js.map +1 -0
- package/dist/css/goldenlayout-base.css +319 -0
- package/dist/css/themes/goldenlayout-borderless-dark-theme.css +136 -0
- package/dist/css/themes/goldenlayout-dark-theme.css +139 -0
- package/dist/css/themes/goldenlayout-light-theme.css +129 -0
- package/dist/css/themes/goldenlayout-soda-theme.css +126 -0
- package/dist/css/themes/goldenlayout-translucent-theme.css +152 -0
- package/dist/esm/index.js +21 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/ts/config/config.js +864 -0
- package/dist/esm/ts/config/config.js.map +1 -0
- package/dist/esm/ts/config/resolved-config.js +474 -0
- package/dist/esm/ts/config/resolved-config.js.map +1 -0
- package/dist/esm/ts/container/component-container.js +408 -0
- package/dist/esm/ts/container/component-container.js.map +1 -0
- package/dist/esm/ts/controls/browser-popout.js +294 -0
- package/dist/esm/ts/controls/browser-popout.js.map +1 -0
- package/dist/esm/ts/controls/drag-proxy.js +217 -0
- package/dist/esm/ts/controls/drag-proxy.js.map +1 -0
- package/dist/esm/ts/controls/drag-source.js +145 -0
- package/dist/esm/ts/controls/drag-source.js.map +1 -0
- package/dist/esm/ts/controls/drop-target-indicator.js +27 -0
- package/dist/esm/ts/controls/drop-target-indicator.js.map +1 -0
- package/dist/esm/ts/controls/header-button.js +30 -0
- package/dist/esm/ts/controls/header-button.js.map +1 -0
- package/dist/esm/ts/controls/header.js +362 -0
- package/dist/esm/ts/controls/header.js.map +1 -0
- package/dist/esm/ts/controls/splitter.js +38 -0
- package/dist/esm/ts/controls/splitter.js.map +1 -0
- package/dist/esm/ts/controls/tab.js +258 -0
- package/dist/esm/ts/controls/tab.js.map +1 -0
- package/dist/esm/ts/controls/tabs-container.js +232 -0
- package/dist/esm/ts/controls/tabs-container.js.map +1 -0
- package/dist/esm/ts/controls/transition-indicator.js +60 -0
- package/dist/esm/ts/controls/transition-indicator.js.map +1 -0
- package/dist/esm/ts/errors/external-error.js +38 -0
- package/dist/esm/ts/errors/external-error.js.map +1 -0
- package/dist/esm/ts/errors/internal-error.js +31 -0
- package/dist/esm/ts/errors/internal-error.js.map +1 -0
- package/dist/esm/ts/golden-layout.js +295 -0
- package/dist/esm/ts/golden-layout.js.map +1 -0
- package/dist/esm/ts/items/component-item.js +186 -0
- package/dist/esm/ts/items/component-item.js.map +1 -0
- package/dist/esm/ts/items/component-parentable-item.js +14 -0
- package/dist/esm/ts/items/component-parentable-item.js.map +1 -0
- package/dist/esm/ts/items/content-item.js +410 -0
- package/dist/esm/ts/items/content-item.js.map +1 -0
- package/dist/esm/ts/items/ground-item.js +348 -0
- package/dist/esm/ts/items/ground-item.js.map +1 -0
- package/dist/esm/ts/items/row-or-column.js +605 -0
- package/dist/esm/ts/items/row-or-column.js.map +1 -0
- package/dist/esm/ts/items/stack.js +837 -0
- package/dist/esm/ts/items/stack.js.map +1 -0
- package/dist/esm/ts/layout-manager.js +1614 -0
- package/dist/esm/ts/layout-manager.js.map +1 -0
- package/dist/esm/ts/utils/config-minifier.js +215 -0
- package/dist/esm/ts/utils/config-minifier.js.map +1 -0
- package/dist/esm/ts/utils/dom-constants.js +2 -0
- package/dist/esm/ts/utils/dom-constants.js.map +1 -0
- package/dist/esm/ts/utils/drag-listener.js +128 -0
- package/dist/esm/ts/utils/drag-listener.js.map +1 -0
- package/dist/esm/ts/utils/event-emitter.js +197 -0
- package/dist/esm/ts/utils/event-emitter.js.map +1 -0
- package/dist/esm/ts/utils/event-hub.js +131 -0
- package/dist/esm/ts/utils/event-hub.js.map +1 -0
- package/dist/esm/ts/utils/i18n-strings.js +71 -0
- package/dist/esm/ts/utils/i18n-strings.js.map +1 -0
- package/dist/esm/ts/utils/jquery-legacy.js +11 -0
- package/dist/esm/ts/utils/jquery-legacy.js.map +1 -0
- package/dist/esm/ts/utils/style-constants.js +8 -0
- package/dist/esm/ts/utils/style-constants.js.map +1 -0
- package/dist/esm/ts/utils/types.js +91 -0
- package/dist/esm/ts/utils/types.js.map +1 -0
- package/dist/esm/ts/utils/utils.js +191 -0
- package/dist/esm/ts/utils/utils.js.map +1 -0
- package/dist/esm/ts/virtual-layout.js +243 -0
- package/dist/esm/ts/virtual-layout.js.map +1 -0
- package/dist/img/lm_close_black.png +0 -0
- package/dist/img/lm_close_tab_white.png +0 -0
- package/dist/img/lm_close_white.png +0 -0
- package/dist/img/lm_maximise_black.png +0 -0
- package/dist/img/lm_maximise_white.png +0 -0
- package/dist/img/lm_minimize_black.png +0 -0
- package/dist/img/lm_minimize_white.png +0 -0
- package/dist/img/lm_popin_black.png +0 -0
- package/dist/img/lm_popin_white.png +0 -0
- package/dist/img/lm_popout_black.png +0 -0
- package/dist/img/lm_popout_white.png +0 -0
- package/dist/less/goldenlayout-base.less +422 -0
- package/dist/less/themes/goldenlayout-borderless-dark-theme.less +230 -0
- package/dist/less/themes/goldenlayout-dark-theme.less +233 -0
- package/dist/less/themes/goldenlayout-light-theme.less +223 -0
- package/dist/less/themes/goldenlayout-soda-theme.less +211 -0
- package/dist/less/themes/goldenlayout-translucent-theme.less +237 -0
- package/dist/scss/goldenlayout-base.scss +422 -0
- package/dist/scss/themes/_goldenlayout-var-theme.scss +232 -0
- package/dist/types/golden-layout-untrimmed.d.ts +3428 -0
- package/dist/types/index.d.ts +2246 -0
- package/dist/types/tsdoc-metadata.json +11 -0
- package/package.json +107 -0
- package/src/TOOLCHAIN.md +54 -0
- package/src/img/lm_close_black.png +0 -0
- package/src/img/lm_close_tab_white.png +0 -0
- package/src/img/lm_close_white.png +0 -0
- package/src/img/lm_maximise_black.png +0 -0
- package/src/img/lm_maximise_white.png +0 -0
- package/src/img/lm_minimize_black.png +0 -0
- package/src/img/lm_minimize_white.png +0 -0
- package/src/img/lm_popin_black.png +0 -0
- package/src/img/lm_popin_white.png +0 -0
- package/src/img/lm_popout_black.png +0 -0
- package/src/img/lm_popout_white.png +0 -0
- package/src/index.ts +21 -0
- package/src/less/goldenlayout-base.less +422 -0
- package/src/less/themes/goldenlayout-borderless-dark-theme.less +230 -0
- package/src/less/themes/goldenlayout-dark-theme.less +233 -0
- package/src/less/themes/goldenlayout-light-theme.less +223 -0
- package/src/less/themes/goldenlayout-soda-theme.less +211 -0
- package/src/less/themes/goldenlayout-translucent-theme.less +237 -0
- package/src/scss/goldenlayout-base.scss +422 -0
- package/src/scss/themes/_goldenlayout-var-theme.scss +232 -0
- package/src/ts/config/config.ts +1283 -0
- package/src/ts/config/resolved-config.ts +621 -0
- package/src/ts/container/component-container.ts +500 -0
- package/src/ts/controls/browser-popout.ts +325 -0
- package/src/ts/controls/drag-proxy.ts +259 -0
- package/src/ts/controls/drag-source.ts +167 -0
- package/src/ts/controls/drop-target-indicator.ts +35 -0
- package/src/ts/controls/header-button.ts +39 -0
- package/src/ts/controls/header.ts +483 -0
- package/src/ts/controls/splitter.ts +50 -0
- package/src/ts/controls/tab.ts +293 -0
- package/src/ts/controls/tabs-container.ts +281 -0
- package/src/ts/controls/transition-indicator.ts +78 -0
- package/src/ts/errors/external-error.ts +39 -0
- package/src/ts/errors/internal-error.ts +34 -0
- package/src/ts/golden-layout.ts +365 -0
- package/src/ts/items/component-item.ts +252 -0
- package/src/ts/items/component-parentable-item.ts +16 -0
- package/src/ts/items/content-item.ts +513 -0
- package/src/ts/items/ground-item.ts +404 -0
- package/src/ts/items/row-or-column.ts +707 -0
- package/src/ts/items/stack.ts +975 -0
- package/src/ts/layout-manager.ts +1862 -0
- package/src/ts/utils/config-minifier.ts +235 -0
- package/src/ts/utils/dom-constants.ts +44 -0
- package/src/ts/utils/drag-listener.ts +178 -0
- package/src/ts/utils/event-emitter.ts +275 -0
- package/src/ts/utils/event-hub.ts +163 -0
- package/src/ts/utils/i18n-strings.ts +96 -0
- package/src/ts/utils/jquery-legacy.ts +12 -0
- package/src/ts/utils/style-constants.ts +6 -0
- package/src/ts/utils/types.ts +145 -0
- package/src/ts/utils/utils.ts +206 -0
- package/src/ts/virtual-layout.ts +328 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VirtualLayout = void 0;
|
|
4
|
+
const config_1 = require("./config/config");
|
|
5
|
+
const resolved_config_1 = require("./config/resolved-config");
|
|
6
|
+
const external_error_1 = require("./errors/external-error");
|
|
7
|
+
const internal_error_1 = require("./errors/internal-error");
|
|
8
|
+
const layout_manager_1 = require("./layout-manager");
|
|
9
|
+
const i18n_strings_1 = require("./utils/i18n-strings");
|
|
10
|
+
/** @public */
|
|
11
|
+
class VirtualLayout extends layout_manager_1.LayoutManager {
|
|
12
|
+
/** @internal */
|
|
13
|
+
constructor(configOrOptionalContainer, containerOrBindComponentEventHandler, unbindComponentEventHandler, skipInit) {
|
|
14
|
+
super(VirtualLayout.createLayoutManagerConstructorParameters(configOrOptionalContainer, containerOrBindComponentEventHandler));
|
|
15
|
+
/** @internal @deprecated use while constructor is not determinate */
|
|
16
|
+
this._bindComponentEventHanlderPassedInConstructor = false; // remove when constructor is determinate
|
|
17
|
+
/** @internal @deprecated use while constructor is not determinate */
|
|
18
|
+
this._creationTimeoutPassed = false; // remove when constructor is determinate
|
|
19
|
+
if (containerOrBindComponentEventHandler !== undefined) {
|
|
20
|
+
if (typeof containerOrBindComponentEventHandler === 'function') {
|
|
21
|
+
this.bindComponentEvent = containerOrBindComponentEventHandler;
|
|
22
|
+
this._bindComponentEventHanlderPassedInConstructor = true;
|
|
23
|
+
if (unbindComponentEventHandler !== undefined) {
|
|
24
|
+
this.unbindComponentEvent = unbindComponentEventHandler;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (!this._bindComponentEventHanlderPassedInConstructor) {
|
|
29
|
+
// backward compatibility
|
|
30
|
+
if (this.isSubWindow) {
|
|
31
|
+
// document.body.style.visibility = 'hidden';
|
|
32
|
+
// Set up layoutConfig since constructor is not determinate and may exit early. Other functions may need
|
|
33
|
+
// this.layoutConfig. this.layoutConfig is again calculated in the same way when init() completes.
|
|
34
|
+
// Remove this when constructor is determinate.
|
|
35
|
+
if (this._constructorOrSubWindowLayoutConfig === undefined) {
|
|
36
|
+
throw new internal_error_1.UnexpectedUndefinedError('VLC98823');
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
const resolvedLayoutConfig = config_1.LayoutConfig.resolve(this._constructorOrSubWindowLayoutConfig);
|
|
40
|
+
// remove root from layoutConfig
|
|
41
|
+
this.layoutConfig = Object.assign(Object.assign({}, resolvedLayoutConfig), { root: undefined });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (skipInit !== true) {
|
|
46
|
+
if (!this.deprecatedConstructor) {
|
|
47
|
+
this.init();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
destroy() {
|
|
52
|
+
this.bindComponentEvent = undefined;
|
|
53
|
+
this.unbindComponentEvent = undefined;
|
|
54
|
+
super.destroy();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates the actual layout. Must be called after all initial components
|
|
58
|
+
* are registered. Recurses through the configuration and sets up
|
|
59
|
+
* the item tree.
|
|
60
|
+
*
|
|
61
|
+
* If called before the document is ready it adds itself as a listener
|
|
62
|
+
* to the document.ready event
|
|
63
|
+
* @deprecated LayoutConfig should not be loaded in {@link (LayoutManager:class)} constructor, but rather in a
|
|
64
|
+
* {@link (LayoutManager:class).loadLayout} call. If LayoutConfig is not specified in {@link (LayoutManager:class)} constructor,
|
|
65
|
+
* then init() will be automatically called internally and should not be called externally.
|
|
66
|
+
*/
|
|
67
|
+
init() {
|
|
68
|
+
/**
|
|
69
|
+
* If the document isn't ready yet, wait for it.
|
|
70
|
+
*/
|
|
71
|
+
if (!this._bindComponentEventHanlderPassedInConstructor && (document.readyState === 'loading' || document.body === null)) {
|
|
72
|
+
document.addEventListener('DOMContentLoaded', () => this.init(), { passive: true });
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* If this is a subwindow, wait a few milliseconds for the original
|
|
77
|
+
* page's js calls to be executed, then replace the bodies content
|
|
78
|
+
* with GoldenLayout
|
|
79
|
+
*/
|
|
80
|
+
if (!this._bindComponentEventHanlderPassedInConstructor && this.isSubWindow === true && !this._creationTimeoutPassed) {
|
|
81
|
+
setTimeout(() => this.init(), 7);
|
|
82
|
+
this._creationTimeoutPassed = true;
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (this.isSubWindow === true) {
|
|
86
|
+
if (!this._bindComponentEventHanlderPassedInConstructor) {
|
|
87
|
+
this.clearHtmlAndAdjustStylesForSubWindow();
|
|
88
|
+
}
|
|
89
|
+
// Expose this instance on the window object to allow the opening window to interact with it
|
|
90
|
+
window.__glInstance = this;
|
|
91
|
+
}
|
|
92
|
+
super.init();
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Clears existing HTML and adjusts style to make window suitable to be a popout sub window
|
|
96
|
+
* Curently is automatically called when window is a subWindow and bindComponentEvent is not passed in the constructor
|
|
97
|
+
* If bindComponentEvent is not passed in the constructor, the application must either call this function explicitly or
|
|
98
|
+
* (preferably) make the window suitable as a subwindow.
|
|
99
|
+
* In the future, it is planned that this function is NOT automatically called in any circumstances. Applications will
|
|
100
|
+
* need to determine whether a window is a Golden Layout popout window and either call this function explicitly or
|
|
101
|
+
* hide HTML not relevant to the popout.
|
|
102
|
+
* See apitest for an example of how HTML is hidden when popout windows are displayed
|
|
103
|
+
*/
|
|
104
|
+
clearHtmlAndAdjustStylesForSubWindow() {
|
|
105
|
+
const headElement = document.head;
|
|
106
|
+
const appendNodeLists = new Array(4);
|
|
107
|
+
appendNodeLists[0] = document.querySelectorAll('body link');
|
|
108
|
+
appendNodeLists[1] = document.querySelectorAll('body style');
|
|
109
|
+
appendNodeLists[2] = document.querySelectorAll('template');
|
|
110
|
+
appendNodeLists[3] = document.querySelectorAll('.gl_keep');
|
|
111
|
+
for (let listIdx = 0; listIdx < appendNodeLists.length; listIdx++) {
|
|
112
|
+
const appendNodeList = appendNodeLists[listIdx];
|
|
113
|
+
for (let nodeIdx = 0; nodeIdx < appendNodeList.length; nodeIdx++) {
|
|
114
|
+
const node = appendNodeList[nodeIdx];
|
|
115
|
+
headElement.appendChild(node);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
const bodyElement = document.body;
|
|
119
|
+
bodyElement.innerHTML = '';
|
|
120
|
+
bodyElement.style.visibility = 'visible';
|
|
121
|
+
this.checkAddDefaultPopinButton();
|
|
122
|
+
/*
|
|
123
|
+
* This seems a bit pointless, but actually causes a reflow/re-evaluation getting around
|
|
124
|
+
* slickgrid's "Cannot find stylesheet." bug in chrome
|
|
125
|
+
*/
|
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
127
|
+
const x = document.body.offsetHeight;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Will add button if not popinOnClose specified in settings
|
|
131
|
+
* @returns true if added otherwise false
|
|
132
|
+
*/
|
|
133
|
+
checkAddDefaultPopinButton() {
|
|
134
|
+
if (this.layoutConfig.settings.popInOnClose) {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
const popInButtonElement = document.createElement('div');
|
|
139
|
+
popInButtonElement.classList.add("lm_popin" /* DomConstants.ClassName.Popin */);
|
|
140
|
+
popInButtonElement.setAttribute('title', this.layoutConfig.header.dock);
|
|
141
|
+
const iconElement = document.createElement('div');
|
|
142
|
+
iconElement.classList.add("lm_icon" /* DomConstants.ClassName.Icon */);
|
|
143
|
+
const bgElement = document.createElement('div');
|
|
144
|
+
bgElement.classList.add("lm_bg" /* DomConstants.ClassName.Bg */);
|
|
145
|
+
popInButtonElement.appendChild(iconElement);
|
|
146
|
+
popInButtonElement.appendChild(bgElement);
|
|
147
|
+
popInButtonElement.addEventListener('click', () => this.emit('popIn'));
|
|
148
|
+
document.body.appendChild(popInButtonElement);
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/** @internal */
|
|
153
|
+
bindComponent(container, itemConfig) {
|
|
154
|
+
if (this.bindComponentEvent !== undefined) {
|
|
155
|
+
const bindableComponent = this.bindComponentEvent(container, itemConfig);
|
|
156
|
+
return bindableComponent;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
if (this.getComponentEvent !== undefined) {
|
|
160
|
+
return {
|
|
161
|
+
virtual: false,
|
|
162
|
+
component: this.getComponentEvent(container, itemConfig),
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
// There is no component registered for this type, and we don't have a getComponentEvent defined.
|
|
167
|
+
// This might happen when the user pops out a dialog and the component types are not registered upfront.
|
|
168
|
+
const text = i18n_strings_1.i18nStrings[2 /* I18nStringId.ComponentTypeNotRegisteredAndBindComponentEventHandlerNotAssigned */];
|
|
169
|
+
const message = `${text}: ${JSON.stringify(itemConfig)}`;
|
|
170
|
+
throw new external_error_1.BindError(message);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/** @internal */
|
|
175
|
+
unbindComponent(container, virtual, component) {
|
|
176
|
+
if (this.unbindComponentEvent !== undefined) {
|
|
177
|
+
this.unbindComponentEvent(container);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
if (!virtual && this.releaseComponentEvent !== undefined) {
|
|
181
|
+
if (component === undefined) {
|
|
182
|
+
throw new internal_error_1.UnexpectedUndefinedError('VCUCRCU333998');
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
this.releaseComponentEvent(container, component);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
exports.VirtualLayout = VirtualLayout;
|
|
192
|
+
/** @public */
|
|
193
|
+
(function (VirtualLayout) {
|
|
194
|
+
/** @internal
|
|
195
|
+
* Veriable to hold the state whether we already checked if we are running in a sub window.
|
|
196
|
+
* Fixes popout and creation of nested golden-layouts.
|
|
197
|
+
*/
|
|
198
|
+
let subWindowChecked = false;
|
|
199
|
+
/** @internal */
|
|
200
|
+
function createLayoutManagerConstructorParameters(configOrOptionalContainer, containerOrBindComponentEventHandler) {
|
|
201
|
+
const windowConfigKey = subWindowChecked ? null : new URL(document.location.href).searchParams.get('gl-window');
|
|
202
|
+
subWindowChecked = true;
|
|
203
|
+
const isSubWindow = windowConfigKey !== null;
|
|
204
|
+
let containerElement;
|
|
205
|
+
let config;
|
|
206
|
+
if (windowConfigKey !== null) {
|
|
207
|
+
const windowConfigStr = localStorage.getItem(windowConfigKey);
|
|
208
|
+
if (windowConfigStr === null) {
|
|
209
|
+
throw new Error('Null gl-window Config');
|
|
210
|
+
}
|
|
211
|
+
localStorage.removeItem(windowConfigKey);
|
|
212
|
+
const minifiedWindowConfig = JSON.parse(windowConfigStr);
|
|
213
|
+
const resolvedConfig = resolved_config_1.ResolvedLayoutConfig.unminifyConfig(minifiedWindowConfig);
|
|
214
|
+
config = config_1.LayoutConfig.fromResolved(resolvedConfig);
|
|
215
|
+
if (configOrOptionalContainer instanceof HTMLElement) {
|
|
216
|
+
containerElement = configOrOptionalContainer;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
if (configOrOptionalContainer === undefined) {
|
|
221
|
+
config = undefined;
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
if (configOrOptionalContainer instanceof HTMLElement) {
|
|
225
|
+
config = undefined;
|
|
226
|
+
containerElement = configOrOptionalContainer;
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
// backwards compatibility
|
|
230
|
+
config = configOrOptionalContainer;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
if (containerElement === undefined) {
|
|
234
|
+
if (containerOrBindComponentEventHandler instanceof HTMLElement) {
|
|
235
|
+
containerElement = containerOrBindComponentEventHandler;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return {
|
|
240
|
+
constructorOrSubWindowLayoutConfig: config,
|
|
241
|
+
isSubWindow,
|
|
242
|
+
containerElement,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
VirtualLayout.createLayoutManagerConstructorParameters = createLayoutManagerConstructorParameters;
|
|
246
|
+
})(VirtualLayout = exports.VirtualLayout || (exports.VirtualLayout = {}));
|
|
247
|
+
//# sourceMappingURL=virtual-layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtual-layout.js","sourceRoot":"","sources":["../../../src/ts/virtual-layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
.lm_root {
|
|
2
|
+
position: relative;
|
|
3
|
+
}
|
|
4
|
+
.lm_row > .lm_item {
|
|
5
|
+
float: left;
|
|
6
|
+
}
|
|
7
|
+
.lm_content {
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
position: relative;
|
|
10
|
+
}
|
|
11
|
+
.lm_dragging,
|
|
12
|
+
.lm_dragging * {
|
|
13
|
+
cursor: move !important;
|
|
14
|
+
-webkit-user-select: none;
|
|
15
|
+
user-select: none;
|
|
16
|
+
}
|
|
17
|
+
.lm_maximised {
|
|
18
|
+
position: absolute;
|
|
19
|
+
top: 0;
|
|
20
|
+
left: 0;
|
|
21
|
+
z-index: 40;
|
|
22
|
+
}
|
|
23
|
+
.lm_maximise_placeholder {
|
|
24
|
+
display: none;
|
|
25
|
+
}
|
|
26
|
+
.lm_splitter {
|
|
27
|
+
position: relative;
|
|
28
|
+
z-index: 2;
|
|
29
|
+
touch-action: none;
|
|
30
|
+
}
|
|
31
|
+
.lm_splitter.lm_vertical .lm_drag_handle {
|
|
32
|
+
width: 100%;
|
|
33
|
+
position: absolute;
|
|
34
|
+
cursor: ns-resize;
|
|
35
|
+
touch-action: none;
|
|
36
|
+
-webkit-user-select: none;
|
|
37
|
+
user-select: none;
|
|
38
|
+
}
|
|
39
|
+
.lm_splitter.lm_horizontal {
|
|
40
|
+
float: left;
|
|
41
|
+
height: 100%;
|
|
42
|
+
}
|
|
43
|
+
.lm_splitter.lm_horizontal .lm_drag_handle {
|
|
44
|
+
height: 100%;
|
|
45
|
+
position: absolute;
|
|
46
|
+
cursor: ew-resize;
|
|
47
|
+
touch-action: none;
|
|
48
|
+
-webkit-user-select: none;
|
|
49
|
+
user-select: none;
|
|
50
|
+
}
|
|
51
|
+
.lm_header {
|
|
52
|
+
overflow: visible;
|
|
53
|
+
position: relative;
|
|
54
|
+
z-index: 1;
|
|
55
|
+
-webkit-user-select: none;
|
|
56
|
+
user-select: none;
|
|
57
|
+
}
|
|
58
|
+
.lm_header [class^=lm_] {
|
|
59
|
+
box-sizing: content-box !important;
|
|
60
|
+
}
|
|
61
|
+
.lm_header .lm_controls {
|
|
62
|
+
position: absolute;
|
|
63
|
+
right: 3px;
|
|
64
|
+
display: flex;
|
|
65
|
+
}
|
|
66
|
+
.lm_header .lm_controls > * {
|
|
67
|
+
cursor: pointer;
|
|
68
|
+
float: left;
|
|
69
|
+
width: 18px;
|
|
70
|
+
height: 18px;
|
|
71
|
+
text-align: center;
|
|
72
|
+
}
|
|
73
|
+
.lm_header .lm_tabs {
|
|
74
|
+
position: absolute;
|
|
75
|
+
display: flex;
|
|
76
|
+
}
|
|
77
|
+
.lm_header .lm_tab {
|
|
78
|
+
cursor: pointer;
|
|
79
|
+
float: left;
|
|
80
|
+
height: 14px;
|
|
81
|
+
margin-top: 1px;
|
|
82
|
+
padding: 0px 10px 5px;
|
|
83
|
+
padding-right: 25px;
|
|
84
|
+
position: relative;
|
|
85
|
+
touch-action: none;
|
|
86
|
+
}
|
|
87
|
+
.lm_header .lm_tab i {
|
|
88
|
+
width: 2px;
|
|
89
|
+
height: 19px;
|
|
90
|
+
position: absolute;
|
|
91
|
+
}
|
|
92
|
+
.lm_header .lm_tab i.lm_left {
|
|
93
|
+
top: 0;
|
|
94
|
+
left: -2px;
|
|
95
|
+
}
|
|
96
|
+
.lm_header .lm_tab i.lm_right {
|
|
97
|
+
top: 0;
|
|
98
|
+
right: -2px;
|
|
99
|
+
}
|
|
100
|
+
.lm_header .lm_tab .lm_title {
|
|
101
|
+
display: inline-block;
|
|
102
|
+
overflow: hidden;
|
|
103
|
+
text-overflow: ellipsis;
|
|
104
|
+
}
|
|
105
|
+
.lm_header .lm_tab .lm_close_tab {
|
|
106
|
+
width: 14px;
|
|
107
|
+
height: 14px;
|
|
108
|
+
position: absolute;
|
|
109
|
+
top: 0;
|
|
110
|
+
right: 0;
|
|
111
|
+
text-align: center;
|
|
112
|
+
}
|
|
113
|
+
.lm_stack {
|
|
114
|
+
position: relative;
|
|
115
|
+
}
|
|
116
|
+
.lm_stack > .lm_items {
|
|
117
|
+
overflow: hidden;
|
|
118
|
+
}
|
|
119
|
+
.lm_stack.lm_left > .lm_items {
|
|
120
|
+
position: absolute;
|
|
121
|
+
left: 20px;
|
|
122
|
+
top: 0;
|
|
123
|
+
}
|
|
124
|
+
.lm_stack.lm_right > .lm_items {
|
|
125
|
+
position: absolute;
|
|
126
|
+
right: 20px;
|
|
127
|
+
top: 0;
|
|
128
|
+
}
|
|
129
|
+
.lm_stack.lm_right > .lm_header {
|
|
130
|
+
position: absolute;
|
|
131
|
+
right: 0;
|
|
132
|
+
top: 0;
|
|
133
|
+
}
|
|
134
|
+
.lm_stack.lm_bottom > .lm_items {
|
|
135
|
+
position: absolute;
|
|
136
|
+
bottom: 20px;
|
|
137
|
+
}
|
|
138
|
+
.lm_stack.lm_bottom > .lm_header {
|
|
139
|
+
position: absolute;
|
|
140
|
+
bottom: 0;
|
|
141
|
+
}
|
|
142
|
+
.lm_left.lm_stack .lm_header,
|
|
143
|
+
.lm_right.lm_stack .lm_header {
|
|
144
|
+
height: 100%;
|
|
145
|
+
}
|
|
146
|
+
.lm_left.lm_dragProxy .lm_header,
|
|
147
|
+
.lm_right.lm_dragProxy .lm_header,
|
|
148
|
+
.lm_left.lm_dragProxy .lm_items,
|
|
149
|
+
.lm_right.lm_dragProxy .lm_items {
|
|
150
|
+
float: left;
|
|
151
|
+
}
|
|
152
|
+
.lm_left.lm_dragProxy .lm_header,
|
|
153
|
+
.lm_right.lm_dragProxy .lm_header,
|
|
154
|
+
.lm_left.lm_stack .lm_header,
|
|
155
|
+
.lm_right.lm_stack .lm_header {
|
|
156
|
+
width: 20px;
|
|
157
|
+
vertical-align: top;
|
|
158
|
+
}
|
|
159
|
+
.lm_left.lm_dragProxy .lm_header .lm_tabs,
|
|
160
|
+
.lm_right.lm_dragProxy .lm_header .lm_tabs,
|
|
161
|
+
.lm_left.lm_stack .lm_header .lm_tabs,
|
|
162
|
+
.lm_right.lm_stack .lm_header .lm_tabs {
|
|
163
|
+
transform-origin: left top;
|
|
164
|
+
top: 0;
|
|
165
|
+
width: 1000px;
|
|
166
|
+
/*hack*/
|
|
167
|
+
}
|
|
168
|
+
.lm_left.lm_dragProxy .lm_header .lm_controls,
|
|
169
|
+
.lm_right.lm_dragProxy .lm_header .lm_controls,
|
|
170
|
+
.lm_left.lm_stack .lm_header .lm_controls,
|
|
171
|
+
.lm_right.lm_stack .lm_header .lm_controls {
|
|
172
|
+
bottom: 0;
|
|
173
|
+
flex-flow: column;
|
|
174
|
+
}
|
|
175
|
+
.lm_dragProxy.lm_left .lm_header .lm_tabs,
|
|
176
|
+
.lm_stack.lm_left .lm_header .lm_tabs {
|
|
177
|
+
transform: rotate(-90deg) scaleX(-1);
|
|
178
|
+
left: 0;
|
|
179
|
+
}
|
|
180
|
+
.lm_dragProxy.lm_left .lm_header .lm_tabs .lm_tab,
|
|
181
|
+
.lm_stack.lm_left .lm_header .lm_tabs .lm_tab {
|
|
182
|
+
transform: scaleX(-1);
|
|
183
|
+
margin-top: 1px;
|
|
184
|
+
}
|
|
185
|
+
.lm_dragProxy.lm_left .lm_header .lm_tabdropdown_list,
|
|
186
|
+
.lm_stack.lm_left .lm_header .lm_tabdropdown_list {
|
|
187
|
+
top: initial;
|
|
188
|
+
right: initial;
|
|
189
|
+
left: 20px;
|
|
190
|
+
}
|
|
191
|
+
.lm_dragProxy.lm_right .lm_content {
|
|
192
|
+
float: left;
|
|
193
|
+
}
|
|
194
|
+
.lm_dragProxy.lm_right .lm_header .lm_tabs,
|
|
195
|
+
.lm_stack.lm_right .lm_header .lm_tabs {
|
|
196
|
+
transform: rotate(90deg) scaleX(1);
|
|
197
|
+
left: 100%;
|
|
198
|
+
margin-left: 0;
|
|
199
|
+
}
|
|
200
|
+
.lm_dragProxy.lm_right .lm_header .lm_controls,
|
|
201
|
+
.lm_stack.lm_right .lm_header .lm_controls {
|
|
202
|
+
left: 3px;
|
|
203
|
+
}
|
|
204
|
+
.lm_dragProxy.lm_right .lm_header .lm_tabdropdown_list,
|
|
205
|
+
.lm_stack.lm_right .lm_header .lm_tabdropdown_list {
|
|
206
|
+
top: initial;
|
|
207
|
+
right: 20px;
|
|
208
|
+
}
|
|
209
|
+
.lm_dragProxy.lm_bottom .lm_header,
|
|
210
|
+
.lm_stack.lm_bottom .lm_header {
|
|
211
|
+
width: 100%;
|
|
212
|
+
}
|
|
213
|
+
.lm_dragProxy.lm_bottom .lm_header .lm_tab,
|
|
214
|
+
.lm_stack.lm_bottom .lm_header .lm_tab {
|
|
215
|
+
margin-top: 0;
|
|
216
|
+
border-top: none;
|
|
217
|
+
}
|
|
218
|
+
.lm_dragProxy.lm_bottom .lm_header .lm_controls,
|
|
219
|
+
.lm_stack.lm_bottom .lm_header .lm_controls {
|
|
220
|
+
top: 3px;
|
|
221
|
+
}
|
|
222
|
+
.lm_dragProxy.lm_bottom .lm_header .lm_tabdropdown_list,
|
|
223
|
+
.lm_stack.lm_bottom .lm_header .lm_tabdropdown_list {
|
|
224
|
+
top: initial;
|
|
225
|
+
bottom: 20px;
|
|
226
|
+
}
|
|
227
|
+
.lm_drop_tab_placeholder {
|
|
228
|
+
float: left;
|
|
229
|
+
width: 100px;
|
|
230
|
+
visibility: hidden;
|
|
231
|
+
}
|
|
232
|
+
.lm_header .lm_controls .lm_tabdropdown:before {
|
|
233
|
+
content: '';
|
|
234
|
+
width: 0;
|
|
235
|
+
height: 0;
|
|
236
|
+
vertical-align: middle;
|
|
237
|
+
display: inline-block;
|
|
238
|
+
border-top: 5px dashed;
|
|
239
|
+
border-right: 5px solid transparent;
|
|
240
|
+
border-left: 5px solid transparent;
|
|
241
|
+
color: white;
|
|
242
|
+
}
|
|
243
|
+
.lm_header .lm_tabdropdown_list {
|
|
244
|
+
position: absolute;
|
|
245
|
+
top: 20px;
|
|
246
|
+
right: 0;
|
|
247
|
+
z-index: 5;
|
|
248
|
+
overflow: hidden;
|
|
249
|
+
}
|
|
250
|
+
.lm_header .lm_tabdropdown_list .lm_tab {
|
|
251
|
+
clear: both;
|
|
252
|
+
padding-right: 10px;
|
|
253
|
+
margin: 0;
|
|
254
|
+
}
|
|
255
|
+
.lm_header .lm_tabdropdown_list .lm_tab .lm_title {
|
|
256
|
+
width: 100px;
|
|
257
|
+
}
|
|
258
|
+
.lm_header .lm_tabdropdown_list .lm_close_tab {
|
|
259
|
+
display: none !important;
|
|
260
|
+
}
|
|
261
|
+
/***********************************
|
|
262
|
+
* Drag Proxy
|
|
263
|
+
***********************************/
|
|
264
|
+
.lm_dragProxy {
|
|
265
|
+
position: absolute;
|
|
266
|
+
top: 0;
|
|
267
|
+
left: 0;
|
|
268
|
+
z-index: 30;
|
|
269
|
+
}
|
|
270
|
+
.lm_dragProxy .lm_header {
|
|
271
|
+
background: transparent;
|
|
272
|
+
}
|
|
273
|
+
.lm_dragProxy .lm_content {
|
|
274
|
+
border-top: none;
|
|
275
|
+
overflow: hidden;
|
|
276
|
+
}
|
|
277
|
+
.lm_dropTargetIndicator {
|
|
278
|
+
display: none;
|
|
279
|
+
position: absolute;
|
|
280
|
+
z-index: 35;
|
|
281
|
+
transition: all 200ms ease;
|
|
282
|
+
}
|
|
283
|
+
.lm_dropTargetIndicator .lm_inner {
|
|
284
|
+
width: 100%;
|
|
285
|
+
height: 100%;
|
|
286
|
+
position: relative;
|
|
287
|
+
top: 0;
|
|
288
|
+
left: 0;
|
|
289
|
+
}
|
|
290
|
+
.lm_transition_indicator {
|
|
291
|
+
display: none;
|
|
292
|
+
width: 20px;
|
|
293
|
+
height: 20px;
|
|
294
|
+
position: absolute;
|
|
295
|
+
top: 0;
|
|
296
|
+
left: 0;
|
|
297
|
+
z-index: 20;
|
|
298
|
+
}
|
|
299
|
+
.lm_popin {
|
|
300
|
+
width: 20px;
|
|
301
|
+
height: 20px;
|
|
302
|
+
position: absolute;
|
|
303
|
+
bottom: 0;
|
|
304
|
+
right: 0;
|
|
305
|
+
z-index: 9999;
|
|
306
|
+
}
|
|
307
|
+
.lm_popin > * {
|
|
308
|
+
width: 100%;
|
|
309
|
+
height: 100%;
|
|
310
|
+
position: absolute;
|
|
311
|
+
top: 0;
|
|
312
|
+
left: 0;
|
|
313
|
+
}
|
|
314
|
+
.lm_popin > .lm_bg {
|
|
315
|
+
z-index: 10;
|
|
316
|
+
}
|
|
317
|
+
.lm_popin > .lm_icon {
|
|
318
|
+
z-index: 20;
|
|
319
|
+
}
|