@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.
Files changed (226) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +24 -0
  3. package/dist/cjs/index.js +40 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/ts/config/config.js +870 -0
  6. package/dist/cjs/ts/config/config.js.map +1 -0
  7. package/dist/cjs/ts/config/resolved-config.js +477 -0
  8. package/dist/cjs/ts/config/resolved-config.js.map +1 -0
  9. package/dist/cjs/ts/container/component-container.js +412 -0
  10. package/dist/cjs/ts/container/component-container.js.map +1 -0
  11. package/dist/cjs/ts/controls/browser-popout.js +298 -0
  12. package/dist/cjs/ts/controls/browser-popout.js.map +1 -0
  13. package/dist/cjs/ts/controls/drag-proxy.js +221 -0
  14. package/dist/cjs/ts/controls/drag-proxy.js.map +1 -0
  15. package/dist/cjs/ts/controls/drag-source.js +149 -0
  16. package/dist/cjs/ts/controls/drag-source.js.map +1 -0
  17. package/dist/cjs/ts/controls/drop-target-indicator.js +31 -0
  18. package/dist/cjs/ts/controls/drop-target-indicator.js.map +1 -0
  19. package/dist/cjs/ts/controls/header-button.js +34 -0
  20. package/dist/cjs/ts/controls/header-button.js.map +1 -0
  21. package/dist/cjs/ts/controls/header.js +366 -0
  22. package/dist/cjs/ts/controls/header.js.map +1 -0
  23. package/dist/cjs/ts/controls/splitter.js +42 -0
  24. package/dist/cjs/ts/controls/splitter.js.map +1 -0
  25. package/dist/cjs/ts/controls/tab.js +262 -0
  26. package/dist/cjs/ts/controls/tab.js.map +1 -0
  27. package/dist/cjs/ts/controls/tabs-container.js +236 -0
  28. package/dist/cjs/ts/controls/tabs-container.js.map +1 -0
  29. package/dist/cjs/ts/controls/transition-indicator.js +64 -0
  30. package/dist/cjs/ts/controls/transition-indicator.js.map +1 -0
  31. package/dist/cjs/ts/errors/external-error.js +46 -0
  32. package/dist/cjs/ts/errors/external-error.js.map +1 -0
  33. package/dist/cjs/ts/errors/internal-error.js +38 -0
  34. package/dist/cjs/ts/errors/internal-error.js.map +1 -0
  35. package/dist/cjs/ts/golden-layout.js +299 -0
  36. package/dist/cjs/ts/golden-layout.js.map +1 -0
  37. package/dist/cjs/ts/items/component-item.js +190 -0
  38. package/dist/cjs/ts/items/component-item.js.map +1 -0
  39. package/dist/cjs/ts/items/component-parentable-item.js +18 -0
  40. package/dist/cjs/ts/items/component-parentable-item.js.map +1 -0
  41. package/dist/cjs/ts/items/content-item.js +414 -0
  42. package/dist/cjs/ts/items/content-item.js.map +1 -0
  43. package/dist/cjs/ts/items/ground-item.js +352 -0
  44. package/dist/cjs/ts/items/ground-item.js.map +1 -0
  45. package/dist/cjs/ts/items/row-or-column.js +609 -0
  46. package/dist/cjs/ts/items/row-or-column.js.map +1 -0
  47. package/dist/cjs/ts/items/stack.js +841 -0
  48. package/dist/cjs/ts/items/stack.js.map +1 -0
  49. package/dist/cjs/ts/layout-manager.js +1618 -0
  50. package/dist/cjs/ts/layout-manager.js.map +1 -0
  51. package/dist/cjs/ts/utils/config-minifier.js +218 -0
  52. package/dist/cjs/ts/utils/config-minifier.js.map +1 -0
  53. package/dist/cjs/ts/utils/dom-constants.js +3 -0
  54. package/dist/cjs/ts/utils/dom-constants.js.map +1 -0
  55. package/dist/cjs/ts/utils/drag-listener.js +132 -0
  56. package/dist/cjs/ts/utils/drag-listener.js.map +1 -0
  57. package/dist/cjs/ts/utils/event-emitter.js +201 -0
  58. package/dist/cjs/ts/utils/event-emitter.js.map +1 -0
  59. package/dist/cjs/ts/utils/event-hub.js +135 -0
  60. package/dist/cjs/ts/utils/event-hub.js.map +1 -0
  61. package/dist/cjs/ts/utils/i18n-strings.js +74 -0
  62. package/dist/cjs/ts/utils/i18n-strings.js.map +1 -0
  63. package/dist/cjs/ts/utils/jquery-legacy.js +15 -0
  64. package/dist/cjs/ts/utils/jquery-legacy.js.map +1 -0
  65. package/dist/cjs/ts/utils/style-constants.js +11 -0
  66. package/dist/cjs/ts/utils/style-constants.js.map +1 -0
  67. package/dist/cjs/ts/utils/types.js +94 -0
  68. package/dist/cjs/ts/utils/types.js.map +1 -0
  69. package/dist/cjs/ts/utils/utils.js +211 -0
  70. package/dist/cjs/ts/utils/utils.js.map +1 -0
  71. package/dist/cjs/ts/virtual-layout.js +247 -0
  72. package/dist/cjs/ts/virtual-layout.js.map +1 -0
  73. package/dist/css/goldenlayout-base.css +319 -0
  74. package/dist/css/themes/goldenlayout-borderless-dark-theme.css +136 -0
  75. package/dist/css/themes/goldenlayout-dark-theme.css +139 -0
  76. package/dist/css/themes/goldenlayout-light-theme.css +129 -0
  77. package/dist/css/themes/goldenlayout-soda-theme.css +126 -0
  78. package/dist/css/themes/goldenlayout-translucent-theme.css +152 -0
  79. package/dist/esm/index.js +21 -0
  80. package/dist/esm/index.js.map +1 -0
  81. package/dist/esm/ts/config/config.js +864 -0
  82. package/dist/esm/ts/config/config.js.map +1 -0
  83. package/dist/esm/ts/config/resolved-config.js +474 -0
  84. package/dist/esm/ts/config/resolved-config.js.map +1 -0
  85. package/dist/esm/ts/container/component-container.js +408 -0
  86. package/dist/esm/ts/container/component-container.js.map +1 -0
  87. package/dist/esm/ts/controls/browser-popout.js +294 -0
  88. package/dist/esm/ts/controls/browser-popout.js.map +1 -0
  89. package/dist/esm/ts/controls/drag-proxy.js +217 -0
  90. package/dist/esm/ts/controls/drag-proxy.js.map +1 -0
  91. package/dist/esm/ts/controls/drag-source.js +145 -0
  92. package/dist/esm/ts/controls/drag-source.js.map +1 -0
  93. package/dist/esm/ts/controls/drop-target-indicator.js +27 -0
  94. package/dist/esm/ts/controls/drop-target-indicator.js.map +1 -0
  95. package/dist/esm/ts/controls/header-button.js +30 -0
  96. package/dist/esm/ts/controls/header-button.js.map +1 -0
  97. package/dist/esm/ts/controls/header.js +362 -0
  98. package/dist/esm/ts/controls/header.js.map +1 -0
  99. package/dist/esm/ts/controls/splitter.js +38 -0
  100. package/dist/esm/ts/controls/splitter.js.map +1 -0
  101. package/dist/esm/ts/controls/tab.js +258 -0
  102. package/dist/esm/ts/controls/tab.js.map +1 -0
  103. package/dist/esm/ts/controls/tabs-container.js +232 -0
  104. package/dist/esm/ts/controls/tabs-container.js.map +1 -0
  105. package/dist/esm/ts/controls/transition-indicator.js +60 -0
  106. package/dist/esm/ts/controls/transition-indicator.js.map +1 -0
  107. package/dist/esm/ts/errors/external-error.js +38 -0
  108. package/dist/esm/ts/errors/external-error.js.map +1 -0
  109. package/dist/esm/ts/errors/internal-error.js +31 -0
  110. package/dist/esm/ts/errors/internal-error.js.map +1 -0
  111. package/dist/esm/ts/golden-layout.js +295 -0
  112. package/dist/esm/ts/golden-layout.js.map +1 -0
  113. package/dist/esm/ts/items/component-item.js +186 -0
  114. package/dist/esm/ts/items/component-item.js.map +1 -0
  115. package/dist/esm/ts/items/component-parentable-item.js +14 -0
  116. package/dist/esm/ts/items/component-parentable-item.js.map +1 -0
  117. package/dist/esm/ts/items/content-item.js +410 -0
  118. package/dist/esm/ts/items/content-item.js.map +1 -0
  119. package/dist/esm/ts/items/ground-item.js +348 -0
  120. package/dist/esm/ts/items/ground-item.js.map +1 -0
  121. package/dist/esm/ts/items/row-or-column.js +605 -0
  122. package/dist/esm/ts/items/row-or-column.js.map +1 -0
  123. package/dist/esm/ts/items/stack.js +837 -0
  124. package/dist/esm/ts/items/stack.js.map +1 -0
  125. package/dist/esm/ts/layout-manager.js +1614 -0
  126. package/dist/esm/ts/layout-manager.js.map +1 -0
  127. package/dist/esm/ts/utils/config-minifier.js +215 -0
  128. package/dist/esm/ts/utils/config-minifier.js.map +1 -0
  129. package/dist/esm/ts/utils/dom-constants.js +2 -0
  130. package/dist/esm/ts/utils/dom-constants.js.map +1 -0
  131. package/dist/esm/ts/utils/drag-listener.js +128 -0
  132. package/dist/esm/ts/utils/drag-listener.js.map +1 -0
  133. package/dist/esm/ts/utils/event-emitter.js +197 -0
  134. package/dist/esm/ts/utils/event-emitter.js.map +1 -0
  135. package/dist/esm/ts/utils/event-hub.js +131 -0
  136. package/dist/esm/ts/utils/event-hub.js.map +1 -0
  137. package/dist/esm/ts/utils/i18n-strings.js +71 -0
  138. package/dist/esm/ts/utils/i18n-strings.js.map +1 -0
  139. package/dist/esm/ts/utils/jquery-legacy.js +11 -0
  140. package/dist/esm/ts/utils/jquery-legacy.js.map +1 -0
  141. package/dist/esm/ts/utils/style-constants.js +8 -0
  142. package/dist/esm/ts/utils/style-constants.js.map +1 -0
  143. package/dist/esm/ts/utils/types.js +91 -0
  144. package/dist/esm/ts/utils/types.js.map +1 -0
  145. package/dist/esm/ts/utils/utils.js +191 -0
  146. package/dist/esm/ts/utils/utils.js.map +1 -0
  147. package/dist/esm/ts/virtual-layout.js +243 -0
  148. package/dist/esm/ts/virtual-layout.js.map +1 -0
  149. package/dist/img/lm_close_black.png +0 -0
  150. package/dist/img/lm_close_tab_white.png +0 -0
  151. package/dist/img/lm_close_white.png +0 -0
  152. package/dist/img/lm_maximise_black.png +0 -0
  153. package/dist/img/lm_maximise_white.png +0 -0
  154. package/dist/img/lm_minimize_black.png +0 -0
  155. package/dist/img/lm_minimize_white.png +0 -0
  156. package/dist/img/lm_popin_black.png +0 -0
  157. package/dist/img/lm_popin_white.png +0 -0
  158. package/dist/img/lm_popout_black.png +0 -0
  159. package/dist/img/lm_popout_white.png +0 -0
  160. package/dist/less/goldenlayout-base.less +422 -0
  161. package/dist/less/themes/goldenlayout-borderless-dark-theme.less +230 -0
  162. package/dist/less/themes/goldenlayout-dark-theme.less +233 -0
  163. package/dist/less/themes/goldenlayout-light-theme.less +223 -0
  164. package/dist/less/themes/goldenlayout-soda-theme.less +211 -0
  165. package/dist/less/themes/goldenlayout-translucent-theme.less +237 -0
  166. package/dist/scss/goldenlayout-base.scss +422 -0
  167. package/dist/scss/themes/_goldenlayout-var-theme.scss +232 -0
  168. package/dist/types/golden-layout-untrimmed.d.ts +3428 -0
  169. package/dist/types/index.d.ts +2246 -0
  170. package/dist/types/tsdoc-metadata.json +11 -0
  171. package/package.json +107 -0
  172. package/src/TOOLCHAIN.md +54 -0
  173. package/src/img/lm_close_black.png +0 -0
  174. package/src/img/lm_close_tab_white.png +0 -0
  175. package/src/img/lm_close_white.png +0 -0
  176. package/src/img/lm_maximise_black.png +0 -0
  177. package/src/img/lm_maximise_white.png +0 -0
  178. package/src/img/lm_minimize_black.png +0 -0
  179. package/src/img/lm_minimize_white.png +0 -0
  180. package/src/img/lm_popin_black.png +0 -0
  181. package/src/img/lm_popin_white.png +0 -0
  182. package/src/img/lm_popout_black.png +0 -0
  183. package/src/img/lm_popout_white.png +0 -0
  184. package/src/index.ts +21 -0
  185. package/src/less/goldenlayout-base.less +422 -0
  186. package/src/less/themes/goldenlayout-borderless-dark-theme.less +230 -0
  187. package/src/less/themes/goldenlayout-dark-theme.less +233 -0
  188. package/src/less/themes/goldenlayout-light-theme.less +223 -0
  189. package/src/less/themes/goldenlayout-soda-theme.less +211 -0
  190. package/src/less/themes/goldenlayout-translucent-theme.less +237 -0
  191. package/src/scss/goldenlayout-base.scss +422 -0
  192. package/src/scss/themes/_goldenlayout-var-theme.scss +232 -0
  193. package/src/ts/config/config.ts +1283 -0
  194. package/src/ts/config/resolved-config.ts +621 -0
  195. package/src/ts/container/component-container.ts +500 -0
  196. package/src/ts/controls/browser-popout.ts +325 -0
  197. package/src/ts/controls/drag-proxy.ts +259 -0
  198. package/src/ts/controls/drag-source.ts +167 -0
  199. package/src/ts/controls/drop-target-indicator.ts +35 -0
  200. package/src/ts/controls/header-button.ts +39 -0
  201. package/src/ts/controls/header.ts +483 -0
  202. package/src/ts/controls/splitter.ts +50 -0
  203. package/src/ts/controls/tab.ts +293 -0
  204. package/src/ts/controls/tabs-container.ts +281 -0
  205. package/src/ts/controls/transition-indicator.ts +78 -0
  206. package/src/ts/errors/external-error.ts +39 -0
  207. package/src/ts/errors/internal-error.ts +34 -0
  208. package/src/ts/golden-layout.ts +365 -0
  209. package/src/ts/items/component-item.ts +252 -0
  210. package/src/ts/items/component-parentable-item.ts +16 -0
  211. package/src/ts/items/content-item.ts +513 -0
  212. package/src/ts/items/ground-item.ts +404 -0
  213. package/src/ts/items/row-or-column.ts +707 -0
  214. package/src/ts/items/stack.ts +975 -0
  215. package/src/ts/layout-manager.ts +1862 -0
  216. package/src/ts/utils/config-minifier.ts +235 -0
  217. package/src/ts/utils/dom-constants.ts +44 -0
  218. package/src/ts/utils/drag-listener.ts +178 -0
  219. package/src/ts/utils/event-emitter.ts +275 -0
  220. package/src/ts/utils/event-hub.ts +163 -0
  221. package/src/ts/utils/i18n-strings.ts +96 -0
  222. package/src/ts/utils/jquery-legacy.ts +12 -0
  223. package/src/ts/utils/style-constants.ts +6 -0
  224. package/src/ts/utils/types.ts +145 -0
  225. package/src/ts/utils/utils.ts +206 -0
  226. package/src/ts/virtual-layout.ts +328 -0
@@ -0,0 +1,258 @@
1
+ import { UnexpectedUndefinedError } from '../errors/internal-error';
2
+ import { DragListener } from '../utils/drag-listener';
3
+ /**
4
+ * Represents an individual tab within a Stack's header
5
+ * @public
6
+ */
7
+ export class Tab {
8
+ /** @internal */
9
+ constructor(
10
+ /** @internal */
11
+ _layoutManager,
12
+ /** @internal */
13
+ _componentItem,
14
+ /** @internal */
15
+ _closeEvent,
16
+ /** @internal */
17
+ _focusEvent,
18
+ /** @internal */
19
+ _dragStartEvent) {
20
+ var _a;
21
+ this._layoutManager = _layoutManager;
22
+ this._componentItem = _componentItem;
23
+ this._closeEvent = _closeEvent;
24
+ this._focusEvent = _focusEvent;
25
+ this._dragStartEvent = _dragStartEvent;
26
+ /** @internal */
27
+ this._isActive = false;
28
+ /** @internal */
29
+ this._tabClickListener = (ev) => this.onTabClickDown(ev);
30
+ /** @internal */
31
+ this._tabTouchStartListener = (ev) => this.onTabTouchStart(ev);
32
+ /** @internal */
33
+ this._closeClickListener = () => this.onCloseClick();
34
+ /** @internal */
35
+ this._closeTouchStartListener = () => this.onCloseTouchStart();
36
+ // /** @internal */
37
+ // private readonly _closeMouseDownListener = () => this.onCloseMousedown();
38
+ /** @internal */
39
+ this._dragStartListener = (x, y) => this.onDragStart(x, y);
40
+ /** @internal */
41
+ this._contentItemDestroyListener = () => this.onContentItemDestroy();
42
+ /** @internal */
43
+ this._tabTitleChangedListener = (title) => this.setTitle(title);
44
+ this._element = document.createElement('div');
45
+ this._element.classList.add("lm_tab" /* DomConstants.ClassName.Tab */);
46
+ this._titleElement = document.createElement('span');
47
+ this._titleElement.classList.add("lm_title" /* DomConstants.ClassName.Title */);
48
+ this._closeElement = document.createElement('div');
49
+ this._closeElement.classList.add("lm_close_tab" /* DomConstants.ClassName.CloseTab */);
50
+ this._element.appendChild(this._titleElement);
51
+ this._element.appendChild(this._closeElement);
52
+ if (_componentItem.isClosable) {
53
+ this._closeElement.style.display = '';
54
+ }
55
+ else {
56
+ this._closeElement.style.display = 'none';
57
+ }
58
+ this.setTitle(_componentItem.title);
59
+ this._componentItem.on('titleChanged', this._tabTitleChangedListener);
60
+ const reorderEnabled = (_a = _componentItem.reorderEnabled) !== null && _a !== void 0 ? _a : this._layoutManager.layoutConfig.settings.reorderEnabled;
61
+ if (reorderEnabled) {
62
+ this.enableReorder();
63
+ }
64
+ this._element.addEventListener('click', this._tabClickListener, { passive: true });
65
+ this._element.addEventListener('touchstart', this._tabTouchStartListener, { passive: true });
66
+ if (this._componentItem.isClosable) {
67
+ this._closeElement.addEventListener('click', this._closeClickListener, { passive: true });
68
+ this._closeElement.addEventListener('touchstart', this._closeTouchStartListener, { passive: true });
69
+ // this._closeElement.addEventListener('mousedown', this._closeMouseDownListener, { passive: true });
70
+ }
71
+ else {
72
+ this._closeElement.remove();
73
+ this._closeElement = undefined;
74
+ }
75
+ this._componentItem.setTab(this);
76
+ this._layoutManager.emit('tabCreated', this);
77
+ }
78
+ get isActive() { return this._isActive; }
79
+ // get header(): Header { return this._header; }
80
+ get componentItem() { return this._componentItem; }
81
+ /** @deprecated use {@link (Tab:class).componentItem} */
82
+ get contentItem() { return this._componentItem; }
83
+ get element() { return this._element; }
84
+ get titleElement() { return this._titleElement; }
85
+ get closeElement() { return this._closeElement; }
86
+ get reorderEnabled() { return this._dragListener !== undefined; }
87
+ set reorderEnabled(value) {
88
+ if (value !== this.reorderEnabled) {
89
+ if (value) {
90
+ this.enableReorder();
91
+ }
92
+ else {
93
+ this.disableReorder();
94
+ }
95
+ }
96
+ }
97
+ /**
98
+ * Sets the tab's title to the provided string and sets
99
+ * its title attribute to a pure text representation (without
100
+ * html tags) of the same string.
101
+ */
102
+ setTitle(title) {
103
+ this._titleElement.innerText = title;
104
+ this._element.title = title;
105
+ }
106
+ /**
107
+ * Sets this tab's active state. To programmatically
108
+ * switch tabs, use Stack.setActiveComponentItem( item ) instead.
109
+ */
110
+ setActive(isActive) {
111
+ if (isActive === this._isActive) {
112
+ return;
113
+ }
114
+ this._isActive = isActive;
115
+ if (isActive) {
116
+ this._element.classList.add("lm_active" /* DomConstants.ClassName.Active */);
117
+ }
118
+ else {
119
+ this._element.classList.remove("lm_active" /* DomConstants.ClassName.Active */);
120
+ }
121
+ }
122
+ /**
123
+ * Destroys the tab
124
+ * @internal
125
+ */
126
+ destroy() {
127
+ var _a, _b;
128
+ this._closeEvent = undefined;
129
+ this._focusEvent = undefined;
130
+ this._dragStartEvent = undefined;
131
+ this._element.removeEventListener('click', this._tabClickListener);
132
+ this._element.removeEventListener('touchstart', this._tabTouchStartListener);
133
+ (_a = this._closeElement) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', this._closeClickListener);
134
+ (_b = this._closeElement) === null || _b === void 0 ? void 0 : _b.removeEventListener('touchstart', this._closeTouchStartListener);
135
+ // this._closeElement?.removeEventListener('mousedown', this._closeMouseDownListener);
136
+ this._componentItem.off('titleChanged', this._tabTitleChangedListener);
137
+ if (this.reorderEnabled) {
138
+ this.disableReorder();
139
+ }
140
+ this._element.remove();
141
+ }
142
+ /** @internal */
143
+ setBlurred() {
144
+ this._element.classList.remove("lm_focused" /* DomConstants.ClassName.Focused */);
145
+ this._titleElement.classList.remove("lm_focused" /* DomConstants.ClassName.Focused */);
146
+ }
147
+ /** @internal */
148
+ setFocused() {
149
+ this._element.classList.add("lm_focused" /* DomConstants.ClassName.Focused */);
150
+ this._titleElement.classList.add("lm_focused" /* DomConstants.ClassName.Focused */);
151
+ }
152
+ /**
153
+ * Callback for the DragListener
154
+ * @param x - The tabs absolute x position
155
+ * @param y - The tabs absolute y position
156
+ * @internal
157
+ */
158
+ onDragStart(x, y) {
159
+ if (this._dragListener === undefined) {
160
+ throw new UnexpectedUndefinedError('TODSDLU10093');
161
+ }
162
+ else {
163
+ if (this._dragStartEvent === undefined) {
164
+ throw new UnexpectedUndefinedError('TODS23309');
165
+ }
166
+ else {
167
+ this._dragStartEvent(x, y, this._dragListener, this.componentItem);
168
+ }
169
+ }
170
+ }
171
+ /** @internal */
172
+ onContentItemDestroy() {
173
+ if (this._dragListener !== undefined) {
174
+ this._dragListener.destroy();
175
+ this._dragListener = undefined;
176
+ }
177
+ }
178
+ /**
179
+ * Callback when the tab is clicked
180
+ * @internal
181
+ */
182
+ onTabClickDown(event) {
183
+ const target = event.target;
184
+ if (target === this._element || target === this._titleElement) {
185
+ // left mouse button
186
+ if (event.button === 0) {
187
+ // event.stopPropagation();
188
+ this.notifyFocus();
189
+ // middle mouse button
190
+ }
191
+ else if (event.button === 1 && this._componentItem.isClosable) {
192
+ // event.stopPropagation();
193
+ this.notifyClose();
194
+ }
195
+ }
196
+ }
197
+ /** @internal */
198
+ onTabTouchStart(event) {
199
+ if (event.target === this._element) {
200
+ this.notifyFocus();
201
+ }
202
+ }
203
+ /**
204
+ * Callback when the tab's close button is clicked
205
+ * @internal
206
+ */
207
+ onCloseClick() {
208
+ this.notifyClose();
209
+ }
210
+ /** @internal */
211
+ onCloseTouchStart() {
212
+ this.notifyClose();
213
+ }
214
+ /**
215
+ * Callback to capture tab close button mousedown
216
+ * to prevent tab from activating.
217
+ * @internal
218
+ */
219
+ // private onCloseMousedown(): void {
220
+ // // event.stopPropagation();
221
+ // }
222
+ /** @internal */
223
+ notifyClose() {
224
+ if (this._closeEvent === undefined) {
225
+ throw new UnexpectedUndefinedError('TNC15007');
226
+ }
227
+ else {
228
+ this._closeEvent(this._componentItem);
229
+ }
230
+ }
231
+ /** @internal */
232
+ notifyFocus() {
233
+ if (this._focusEvent === undefined) {
234
+ throw new UnexpectedUndefinedError('TNA15007');
235
+ }
236
+ else {
237
+ this._focusEvent(this._componentItem);
238
+ }
239
+ }
240
+ /** @internal */
241
+ enableReorder() {
242
+ this._dragListener = new DragListener(this._element, [this._titleElement]);
243
+ this._dragListener.on('dragStart', this._dragStartListener);
244
+ this._componentItem.on('destroy', this._contentItemDestroyListener);
245
+ }
246
+ /** @internal */
247
+ disableReorder() {
248
+ if (this._dragListener === undefined) {
249
+ throw new UnexpectedUndefinedError('TDR87745');
250
+ }
251
+ else {
252
+ this._componentItem.off('destroy', this._contentItemDestroyListener);
253
+ this._dragListener.off('dragStart', this._dragStartListener);
254
+ this._dragListener = undefined;
255
+ }
256
+ }
257
+ }
258
+ //# sourceMappingURL=tab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.js","sourceRoot":"","sources":["../../../../src/ts/controls/tab.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,232 @@
1
+ import { AssertError } from '../errors/internal-error';
2
+ import { numberToPixels, pixelsToNumber } from '../utils/utils';
3
+ import { Tab } from './tab';
4
+ /** @internal */
5
+ export class TabsContainer {
6
+ constructor(_layoutManager, _componentRemoveEvent, _componentFocusEvent, _componentDragStartEvent, _dropdownActiveChangedEvent) {
7
+ this._layoutManager = _layoutManager;
8
+ this._componentRemoveEvent = _componentRemoveEvent;
9
+ this._componentFocusEvent = _componentFocusEvent;
10
+ this._componentDragStartEvent = _componentDragStartEvent;
11
+ this._dropdownActiveChangedEvent = _dropdownActiveChangedEvent;
12
+ // There is one tab per ComponentItem in stack. However they may not be ordered the same
13
+ this._tabs = [];
14
+ this._lastVisibleTabIndex = -1;
15
+ this._dropdownActive = false;
16
+ this._element = document.createElement('section');
17
+ this._element.classList.add("lm_tabs" /* DomConstants.ClassName.Tabs */);
18
+ this._dropdownElement = document.createElement('section');
19
+ this._dropdownElement.classList.add("lm_tabdropdown_list" /* DomConstants.ClassName.TabDropdownList */);
20
+ this._dropdownElement.style.display = 'none';
21
+ }
22
+ get tabs() { return this._tabs; }
23
+ get tabCount() { return this._tabs.length; }
24
+ get lastVisibleTabIndex() { return this._lastVisibleTabIndex; }
25
+ get element() { return this._element; }
26
+ get dropdownElement() { return this._dropdownElement; }
27
+ get dropdownActive() { return this._dropdownActive; }
28
+ destroy() {
29
+ for (let i = 0; i < this._tabs.length; i++) {
30
+ this._tabs[i].destroy();
31
+ }
32
+ }
33
+ /**
34
+ * Creates a new tab and associates it with a contentItem
35
+ * @param index - The position of the tab
36
+ */
37
+ createTab(componentItem, index) {
38
+ //If there's already a tab relating to the
39
+ //content item, don't do anything
40
+ for (let i = 0; i < this._tabs.length; i++) {
41
+ if (this._tabs[i].componentItem === componentItem) {
42
+ return;
43
+ }
44
+ }
45
+ const tab = new Tab(this._layoutManager, componentItem, (item) => this.handleTabCloseEvent(item), (item) => this.handleTabFocusEvent(item), (x, y, dragListener, item) => this.handleTabDragStartEvent(x, y, dragListener, item));
46
+ if (index === undefined) {
47
+ index = this._tabs.length;
48
+ }
49
+ this._tabs.splice(index, 0, tab);
50
+ if (index < this._element.childNodes.length) {
51
+ this._element.insertBefore(tab.element, this._element.childNodes[index]);
52
+ }
53
+ else {
54
+ this._element.appendChild(tab.element);
55
+ }
56
+ }
57
+ removeTab(componentItem) {
58
+ // componentItem cannot be ActiveComponentItem
59
+ for (let i = 0; i < this._tabs.length; i++) {
60
+ if (this._tabs[i].componentItem === componentItem) {
61
+ const tab = this._tabs[i];
62
+ tab.destroy();
63
+ this._tabs.splice(i, 1);
64
+ return;
65
+ }
66
+ }
67
+ throw new Error('contentItem is not controlled by this header');
68
+ }
69
+ processActiveComponentChanged(newActiveComponentItem) {
70
+ let activeIndex = -1;
71
+ for (let i = 0; i < this._tabs.length; i++) {
72
+ const isActive = this._tabs[i].componentItem === newActiveComponentItem;
73
+ this._tabs[i].setActive(isActive);
74
+ if (isActive) {
75
+ activeIndex = i;
76
+ }
77
+ }
78
+ if (activeIndex < 0) {
79
+ throw new AssertError('HSACI56632');
80
+ }
81
+ else {
82
+ if (this._layoutManager.layoutConfig.settings.reorderOnTabMenuClick) {
83
+ /**
84
+ * If the tab selected was in the dropdown, move everything down one to make way for this one to be the first.
85
+ * This will make sure the most used tabs stay visible.
86
+ */
87
+ if (this._lastVisibleTabIndex !== -1 && activeIndex > this._lastVisibleTabIndex) {
88
+ const activeTab = this._tabs[activeIndex];
89
+ for (let j = activeIndex; j > 0; j--) {
90
+ this._tabs[j] = this._tabs[j - 1];
91
+ }
92
+ this._tabs[0] = activeTab;
93
+ // updateTabSizes will always be called after this and it will reposition tab elements
94
+ }
95
+ }
96
+ }
97
+ }
98
+ /**
99
+ * Pushes the tabs to the tab dropdown if the available space is not sufficient
100
+ */
101
+ updateTabSizes(availableWidth, activeComponentItem) {
102
+ let dropDownActive = false;
103
+ const success = this.tryUpdateTabSizes(dropDownActive, availableWidth, activeComponentItem);
104
+ if (!success) {
105
+ dropDownActive = true;
106
+ // this will always succeed
107
+ this.tryUpdateTabSizes(dropDownActive, availableWidth, activeComponentItem);
108
+ }
109
+ if (dropDownActive !== this._dropdownActive) {
110
+ this._dropdownActive = dropDownActive;
111
+ this._dropdownActiveChangedEvent();
112
+ }
113
+ }
114
+ tryUpdateTabSizes(dropdownActive, availableWidth, activeComponentItem) {
115
+ if (this._tabs.length > 0) {
116
+ if (activeComponentItem === undefined) {
117
+ throw new Error('non-empty tabs must have active component item');
118
+ }
119
+ let cumulativeTabWidth = 0;
120
+ let tabOverlapAllowanceExceeded = false;
121
+ const tabOverlapAllowance = this._layoutManager.layoutConfig.settings.tabOverlapAllowance;
122
+ const activeIndex = this._tabs.indexOf(activeComponentItem.tab);
123
+ const activeTab = this._tabs[activeIndex];
124
+ this._lastVisibleTabIndex = -1;
125
+ for (let i = 0; i < this._tabs.length; i++) {
126
+ const tabElement = this._tabs[i].element;
127
+ //Put the tab in the tabContainer so its true width can be checked
128
+ if (tabElement.parentElement !== this._element) {
129
+ this._element.appendChild(tabElement);
130
+ }
131
+ const tabMarginRightPixels = getComputedStyle(activeTab.element).marginRight;
132
+ const tabMarginRight = pixelsToNumber(tabMarginRightPixels);
133
+ const tabWidth = tabElement.offsetWidth + tabMarginRight;
134
+ cumulativeTabWidth += tabWidth;
135
+ //Include the active tab's width if it isn't already
136
+ //This is to ensure there is room to show the active tab
137
+ let visibleTabWidth = 0;
138
+ if (activeIndex <= i) {
139
+ visibleTabWidth = cumulativeTabWidth;
140
+ }
141
+ else {
142
+ const activeTabMarginRightPixels = getComputedStyle(activeTab.element).marginRight;
143
+ const activeTabMarginRight = pixelsToNumber(activeTabMarginRightPixels);
144
+ visibleTabWidth = cumulativeTabWidth + activeTab.element.offsetWidth + activeTabMarginRight;
145
+ }
146
+ // If the tabs won't fit, check the overlap allowance.
147
+ if (visibleTabWidth > availableWidth) {
148
+ //Once allowance is exceeded, all remaining tabs go to menu.
149
+ if (!tabOverlapAllowanceExceeded) {
150
+ //No overlap for first tab or active tab
151
+ //Overlap spreads among non-active, non-first tabs
152
+ let overlap;
153
+ if (activeIndex > 0 && activeIndex <= i) {
154
+ overlap = (visibleTabWidth - availableWidth) / (i - 1);
155
+ }
156
+ else {
157
+ overlap = (visibleTabWidth - availableWidth) / i;
158
+ }
159
+ //Check overlap against allowance.
160
+ if (overlap < tabOverlapAllowance) {
161
+ for (let j = 0; j <= i; j++) {
162
+ const marginLeft = (j !== activeIndex && j !== 0) ? '-' + numberToPixels(overlap) : '';
163
+ this._tabs[j].element.style.zIndex = numberToPixels(i - j);
164
+ this._tabs[j].element.style.marginLeft = marginLeft;
165
+ }
166
+ this._lastVisibleTabIndex = i;
167
+ if (tabElement.parentElement !== this._element) {
168
+ this._element.appendChild(tabElement);
169
+ }
170
+ }
171
+ else {
172
+ tabOverlapAllowanceExceeded = true;
173
+ }
174
+ }
175
+ else if (i === activeIndex) {
176
+ //Active tab should show even if allowance exceeded. (We left room.)
177
+ tabElement.style.zIndex = 'auto';
178
+ tabElement.style.marginLeft = '';
179
+ if (tabElement.parentElement !== this._element) {
180
+ this._element.appendChild(tabElement);
181
+ }
182
+ }
183
+ if (tabOverlapAllowanceExceeded && i !== activeIndex) {
184
+ if (dropdownActive) {
185
+ //Tab menu already shown, so we just add to it.
186
+ tabElement.style.zIndex = 'auto';
187
+ tabElement.style.marginLeft = '';
188
+ if (tabElement.parentElement !== this._dropdownElement) {
189
+ this._dropdownElement.appendChild(tabElement);
190
+ }
191
+ }
192
+ else {
193
+ //We now know the tab menu must be shown, so we have to recalculate everything.
194
+ return false;
195
+ }
196
+ }
197
+ }
198
+ else {
199
+ this._lastVisibleTabIndex = i;
200
+ tabElement.style.zIndex = 'auto';
201
+ tabElement.style.marginLeft = '';
202
+ if (tabElement.parentElement !== this._element) {
203
+ this._element.appendChild(tabElement);
204
+ }
205
+ }
206
+ }
207
+ }
208
+ return true;
209
+ }
210
+ /**
211
+ * Shows drop down for additional tabs when there are too many to display.
212
+ */
213
+ showAdditionalTabsDropdown() {
214
+ this._dropdownElement.style.display = '';
215
+ }
216
+ /**
217
+ * Hides drop down for additional tabs when there are too many to display.
218
+ */
219
+ hideAdditionalTabsDropdown() {
220
+ this._dropdownElement.style.display = 'none';
221
+ }
222
+ handleTabCloseEvent(componentItem) {
223
+ this._componentRemoveEvent(componentItem);
224
+ }
225
+ handleTabFocusEvent(componentItem) {
226
+ this._componentFocusEvent(componentItem);
227
+ }
228
+ handleTabDragStartEvent(x, y, dragListener, componentItem) {
229
+ this._componentDragStartEvent(x, y, dragListener, componentItem);
230
+ }
231
+ }
232
+ //# sourceMappingURL=tabs-container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs-container.js","sourceRoot":"","sources":["../../../../src/ts/controls/tabs-container.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /** @internal @deprecated To be removed */
2
+ export class TransitionIndicator {
3
+ constructor() {
4
+ this._element = document.createElement('div');
5
+ this._element.classList.add("lm_transition_indicator" /* DomConstants.ClassName.TransitionIndicator */);
6
+ document.body.appendChild(this._element);
7
+ this._toElement = null;
8
+ this._fromDimensions = null;
9
+ this._totalAnimationDuration = 200;
10
+ this._animationStartTime = null;
11
+ }
12
+ destroy() {
13
+ this._element.remove();
14
+ }
15
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
16
+ transitionElements(fromElement, toElement) {
17
+ /**
18
+ * TODO - This is not quite as cool as expected. Review.
19
+ */
20
+ return;
21
+ // this._toElement = toElement;
22
+ // this._animationStartTime = now();
23
+ // this._fromDimensions = this._measure(fromElement);
24
+ // this._fromDimensions.opacity = 0.8;
25
+ // this._element.show().css(this._fromDimensions);
26
+ // animFrame(fnBind(this._nextAnimationFrame, this));
27
+ }
28
+ nextAnimationFrame() {
29
+ // if (this._toElement === null || this._fromDimensions === null || this._animationStartTime === null) {
30
+ // throw new UnexpectedNullError('TINAFTD97115');
31
+ // } else {
32
+ // const toDimensions = this.measure(this._toElement);
33
+ // const animationProgress = (now() - this._animationStartTime) / this._totalAnimationDuration;
34
+ // const currentFrameStyles = {};
35
+ // const cssProperty;
36
+ // if (animationProgress >= 1) {
37
+ // this._element.style.display = 'none';
38
+ // return;
39
+ // }
40
+ // toDimensions.opacity = 0;
41
+ // for (const cssProperty in this._fromDimensions) {
42
+ // currentFrameStyles[cssProperty] = this._fromDimensions[cssProperty] +
43
+ // (toDimensions[cssProperty] - this._fromDimensions[cssProperty]) *
44
+ // animationProgress;
45
+ // }
46
+ // this._element.css(currentFrameStyles);
47
+ // animFrame(fnBind(this._nextAnimationFrame, this));
48
+ // }
49
+ }
50
+ measure(element) {
51
+ const rect = element.getBoundingClientRect();
52
+ return {
53
+ left: rect.left,
54
+ top: rect.top,
55
+ width: element.offsetWidth,
56
+ height: element.offsetHeight,
57
+ };
58
+ }
59
+ }
60
+ //# sourceMappingURL=transition-indicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transition-indicator.js","sourceRoot":"","sources":["../../../../src/ts/controls/transition-indicator.ts"],"names":[],"mappings":"AAGA,0CAA0C;AAC1C,MAAM,OAAO,mBAAmB;IAO5B;QACI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,4EAA4C,CAAC;QACxE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC;QACnC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,OAAO;QACH,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;IAED,6DAA6D;IAC7D,kBAAkB,CAAC,WAAwB,EAAE,SAAsB;QAC/D;;WAEG;QACH,OAAO;QACP,+BAA+B;QAC/B,oCAAoC;QACpC,qDAAqD;QACrD,sCAAsC;QACtC,kDAAkD;QAClD,qDAAqD;IACzD,CAAC;IAEO,kBAAkB;QACtB,wGAAwG;QACxG,qDAAqD;QACrD,WAAW;QACX,0DAA0D;QAC1D,mGAAmG;QACnG,qCAAqC;QACrC,yBAAyB;QAEzB,oCAAoC;QACpC,gDAAgD;QAChD,kBAAkB;QAClB,QAAQ;QAER,gCAAgC;QAEhC,wDAAwD;QACxD,gFAAgF;QAChF,gFAAgF;QAChF,iCAAiC;QACjC,QAAQ;QAER,6CAA6C;QAC7C,yDAAyD;QACzD,IAAI;IACR,CAAC;IAEO,OAAO,CAAC,OAAoB;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAE7C,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,OAAO,CAAC,WAAW;YAC1B,MAAM,EAAE,OAAO,CAAC,YAAY;SAC/B,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1,38 @@
1
+ /** @public */
2
+ export class ExternalError extends Error {
3
+ /** @internal */
4
+ constructor(type, message) {
5
+ super(message);
6
+ this.type = type;
7
+ }
8
+ }
9
+ /** @public */
10
+ export class ConfigurationError extends ExternalError {
11
+ /** @internal */
12
+ constructor(message, node) {
13
+ super('Configuration', message);
14
+ this.node = node;
15
+ }
16
+ }
17
+ /** @public */
18
+ export class PopoutBlockedError extends ExternalError {
19
+ /** @internal */
20
+ constructor(message) {
21
+ super('PopoutBlocked', message);
22
+ }
23
+ }
24
+ /** @public */
25
+ export class ApiError extends ExternalError {
26
+ /** @internal */
27
+ constructor(message) {
28
+ super('API', message);
29
+ }
30
+ }
31
+ /** @public */
32
+ export class BindError extends ExternalError {
33
+ /** @internal */
34
+ constructor(message) {
35
+ super('Bind', message);
36
+ }
37
+ }
38
+ //# sourceMappingURL=external-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-error.js","sourceRoot":"","sources":["../../../../src/ts/errors/external-error.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,MAAM,OAAgB,aAAc,SAAQ,KAAK;IAC7C,gBAAgB;IAChB,YAA4B,IAAY,EAAE,OAAe;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC;QADS,SAAI,GAAJ,IAAI,CAAQ;IAExC,CAAC;CACJ;AAED,cAAc;AACd,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IACjD,gBAAgB;IAChB,YAAY,OAAe,EAAkB,IAAa;QACtD,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QADS,SAAI,GAAJ,IAAI,CAAS;IAE1D,CAAC;CACJ;AAED,cAAc;AACd,MAAM,OAAO,kBAAmB,SAAQ,aAAa;IACjD,gBAAgB;IAChB,YAAY,OAAe;QACvB,KAAK,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;CACJ;AAED,cAAc;AACd,MAAM,OAAO,QAAS,SAAQ,aAAa;IACvC,gBAAgB;IAChB,YAAY,OAAe;QACvB,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1B,CAAC;CACJ;AAED,cAAc;AACd,MAAM,OAAO,SAAU,SAAQ,aAAa;IACxC,gBAAgB;IAChB,YAAY,OAAe;QACvB,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;CACJ"}
@@ -0,0 +1,31 @@
1
+ /** @internal */
2
+ class InternalError extends Error {
3
+ constructor(type, code, message) {
4
+ super(`${type}: ${code}${message === undefined ? '' : ': ' + message}`);
5
+ }
6
+ }
7
+ /** @internal */
8
+ export class AssertError extends InternalError {
9
+ constructor(code, message) {
10
+ super('Assert', code, message);
11
+ }
12
+ }
13
+ /** @internal */
14
+ export class UnreachableCaseError extends InternalError {
15
+ constructor(code, variableValue, message) {
16
+ super('UnreachableCase', code, `${variableValue}${message === undefined ? '' : ': ' + message}`);
17
+ }
18
+ }
19
+ /** @internal */
20
+ export class UnexpectedNullError extends InternalError {
21
+ constructor(code, message) {
22
+ super('UnexpectedNull', code, message);
23
+ }
24
+ }
25
+ /** @internal */
26
+ export class UnexpectedUndefinedError extends InternalError {
27
+ constructor(code, message) {
28
+ super('UnexpectedUndefined', code, message);
29
+ }
30
+ }
31
+ //# sourceMappingURL=internal-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-error.js","sourceRoot":"","sources":["../../../../src/ts/errors/internal-error.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,MAAe,aAAc,SAAQ,KAAK;IACtC,YAAY,IAAY,EAAE,IAAY,EAAE,OAAgB;QACpD,KAAK,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC,CAAA;IAC3E,CAAC;CACJ;AAED,gBAAgB;AAChB,MAAM,OAAO,WAAY,SAAQ,aAAa;IAC1C,YAAY,IAAY,EAAE,OAAgB;QACtC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;CACJ;AAED,gBAAgB;AAChB,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACnD,YAAY,IAAY,EAAE,aAAoB,EAAE,OAAgB;QAC5D,KAAK,CAAC,iBAAiB,EAAE,IAAI,EAAE,GAAG,aAAa,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC,CAAA;IACpG,CAAC;CACJ;AAED,gBAAgB;AAChB,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAClD,YAAY,IAAY,EAAE,OAAgB;QACtC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1C,CAAC;CACJ;AAED,gBAAgB;AAChB,MAAM,OAAO,wBAAyB,SAAQ,aAAa;IACvD,YAAY,IAAY,EAAE,OAAgB;QACtC,KAAK,CAAC,qBAAqB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC/C,CAAC;CACJ"}